Specific exposures (n = 68)
c. Worked on/adjacent to pit/pile
e. Exposed to human remains
f. Worked in search, rescue, recovery Sep-Oct 2001
g. Know someone who died 9/11
h. Know someone injured 9/11
j. Slept on-site Sep-Oct 2001
Descriptives
Full neuroimaging sample
================================================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
--------------------------------------------------------------------------------
CAPS5_PM_total 68 8.853 13.717 0 0 12 46
CTQ_emoNeglect 67 8.164 4.002 5.000 5.000 10.000 25.000
CTQ_physNeglect 68 6.441 2.903 5 5 7 24
CTQ_emoAbuse 67 6.836 3.471 5.000 5.000 7.000 25.000
CTQ_physAbuse 68 6.279 1.794 5 5 7 13
CTQ_sexAbuse 68 6.338 4.280 5 5 5 24
TLEQ_totalExclCT_nonW 67 9.478 17.372 0.000 5.000 8.500 107.000
TLEQ_sexualViolencePost18_nonW 67 0.045 0.208 0.000 0.000 0.000 1.000
WTCexposure_score 60 4.567 2.158 0.000 3.000 6.000 10.000
--------------------------------------------------------------------------------
Low-exposed controls (n = 17)
==============================================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
------------------------------------------------------------------------------
CAPS5_PM_total 17 1.235 1.715 0 0 2 5
CTQ_emoNeglect 17 6.588 2.181 5 5 7 13
CTQ_physNeglect 17 5.647 1.367 5 5 5 9
CTQ_emoAbuse 17 5.824 1.811 5 5 6 12
CTQ_physAbuse 17 5.706 1.047 5 5 6 9
CTQ_sexAbuse 17 5.176 0.728 5 5 5 8
TLEQ_totalExclCT_nonW 17 5.235 2.107 0 4 6 8
TLEQ_sexualViolencePost18_nonW 17 0.059 0.243 0 0 0 1
WTCexposure_score 15 1.867 0.915 0.000 1.000 2.500 3.000
------------------------------------------------------------------------------
Resilient (n = 31)
=================================================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
---------------------------------------------------------------------------------
CAPS5_PM_total 31 0.968 1.169 0 0 2 4
CTQ_emoNeglect 31 7.290 3.079 5 5 8.5 16
CTQ_physNeglect 31 5.484 1.235 5 5 5 10
CTQ_emoAbuse 31 5.774 1.802 5 5 6 14
CTQ_physAbuse 31 5.613 0.955 5 5 6 9
CTQ_sexAbuse 31 5.935 3.540 5 5 5 24
TLEQ_totalExclCT_nonW 30 12.767 25.605 1.000 4.250 9.000 107.000
TLEQ_sexualViolencePost18_nonW 30 0.000 0.000 0.000 0.000 0.000 0.000
WTCexposure_score 30 5.500 1.225 4.000 5.000 6.000 9.000
---------------------------------------------------------------------------------
PTSD (n = 20)
================================================================================
Statistic N Mean St. Dev. Min Pctl(25) Pctl(75) Max
--------------------------------------------------------------------------------
CAPS5_PM_total 20 27.550 11.727 10 18.8 37 46
CTQ_emoNeglect 19 11.000 5.153 5.000 7.000 14.000 25.000
CTQ_physNeglect 20 8.600 4.333 5 5.8 10 24
CTQ_emoAbuse 19 9.474 5.059 5.000 6.000 11.000 25.000
CTQ_physAbuse 20 7.800 2.353 5 5.8 9 13
CTQ_sexAbuse 20 7.950 6.337 5 5 5 23
TLEQ_totalExclCT_nonW 20 8.150 2.978 3 6 10.2 15
TLEQ_sexualViolencePost18_nonW 20 0.100 0.308 0 0 0 1
WTCexposure_score 15 5.400 2.293 2.000 3.500 7.000 10.000
--------------------------------------------------------------------------------
Data visualization
n WTC exposures
Full neuroimaging sample
Warning: Removed 8 rows containing non-finite values (stat_bin).

By group
Warning: Removed 8 rows containing non-finite values (stat_bin).
Warning: Removed 8 rows containing non-finite values (stat_boxplot).
Warning: Removed 8 rows containing missing values (geom_point).
Warning: Removed 8 rows containing missing values (geom_point).

CAPS-5 PM
Full neuroimaging sample

By group

CTQ emotional neglect
Full neuroimaging sample
Warning: Removed 1 rows containing non-finite values (stat_bin).

By group
Warning: Removed 1 rows containing non-finite values (stat_bin).
Warning: Removed 1 rows containing non-finite values (stat_boxplot).
Warning: Removed 1 rows containing missing values (geom_point).
Warning: Removed 1 rows containing missing values (geom_point).

CTQ physical neglect
Full neuroimaging sample

By group

CTQ emotional abuse
Full neuroimaging sample
Warning: Removed 1 rows containing non-finite values (stat_bin).

By group
Warning: Removed 1 rows containing non-finite values (stat_bin).
Warning: Removed 1 rows containing non-finite values (stat_boxplot).
Warning: Removed 1 rows containing missing values (geom_point).
Warning: Removed 1 rows containing missing values (geom_point).

CTQ physical abuse
Full neuroimaging sample

By group

CTQ sexual abuse
Full neuroimaging sample

By group

TLEQ total excluding childhood trauma (non-weighted)
Full neuroimaging sample
Warning: Removed 1 rows containing non-finite values (stat_bin).

By group
Warning: Removed 1 rows containing non-finite values (stat_bin).
Warning: Removed 1 rows containing non-finite values (stat_boxplot).
Warning: Removed 1 rows containing missing values (geom_point).
Warning: Removed 1 rows containing missing values (geom_point).

TLEQ sexual violence >18 yrs (non-weighted)
Full neuroimaging sample
Warning: Removed 1 rows containing non-finite values (stat_count).

By group
Warning: Removed 1 rows containing non-finite values (stat_count).

LS0tCnRpdGxlOiAiTWVldGluZyAwMi0yMy0yMiIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKLS0tCgoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UpCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gIi9Wb2x1bWVzL0V4dGVybmFsL1dUQ19yZXNpbGllbmNlX2ltYWdpbmcvYW5hbHlzaXMvTWVldGluZyAwMi0yMy0yMiIpCmBgYAoKYGBge3IsIGVjaG89RkFMU0V9CiNzZXR1cApsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KG1pY2UpCmxpYnJhcnkoZ2xtbmV0KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZ2djb3JycGxvdCkKbGlicmFyeShzdHJpbmdyKQpsaWJyYXJ5KGZvcmVpZ24pCmxpYnJhcnkoc3RhcmdhemVyKQpsaWJyYXJ5KGNvd3Bsb3QpCgpybShsaXN0ID0gbHMoKSkKCiNsb2FkIGRlbW9ncmFwaGljIGFuZCBzZWxmLXJlcG9ydCBkYXRhIGZvciBOV1RDIHBhcnRpY2lwYW50cyBzbyBmYXIgCmRzRGF0YTwtcmVhZC5jc3YoIlN0dWR5TWVhc3VyZXMtQWduZXNOV1RDaW5pdGlhbGFuYWxfREFUQV8yMDIyLTAyLTIzXzEwMzEuY3N2Iiwgc3RyaXAud2hpdGU9VFJVRSwgbmEuc3RyaW5ncz0iIikKI2xvYWQgY2xpbmljaWFuLWRldGVybWluZWQgZGF0YSBmb3IgTldUQyBwYXJ0aWNpcGFudHMgc28gZmFyCmNsRGF0YTwtcmVhZC5jc3YoIkNsaW5pY2lhbk1lYXN1cmVzLUFnbmVzTldUQ2NsaW5pY2FsaW5pX0RBVEFfMjAyMi0wMi0yM18xMDMzLmNzdiIsIHN0cmlwLndoaXRlPVRSVUUsIG5hLnN0cmluZ3M9IiIpCnYyRGF0YTwtcmVhZC5jc3YoIkNVUlJFTlRTdWJqZWN0RW5yb2xsLVZpc2l0MkNvbXBsZXRlcnNGb3JTX0RBVEFfMjAyMi0wMi0yM18xMDM2LmNzdiIsIHN0cmlwLndoaXRlPVRSVUUsIG5hLnN0cmluZ3M9IiIpCmJpZHNfaWQ8LXJlYWQuY3N2KCIvVm9sdW1lcy9FeHRlcm5hbC9XVENfcmVzaWxpZW5jZV9pbWFnaW5nL3BwdF9jb2RpbmdfY3VycmVudF9ub1BISS5jc3YiLCBzdHJpcC53aGl0ZT1UUlVFLCBuYS5zdHJpbmdzPSIiKQoKIyBnZXQgc3BlY2lmaWMgZXhwb3N1cmVzCiMgMTAgV1RDIGV4cG9zdXJlIHZhcmlhYmxlcyBhcmUgbGFiZWxlZCBpbmRleF9hIHRvIGluZGV4X2ouCiNhLiAgICAgICBBcnJpdmVkIFdUQyA5LzExLTEzCiNiLiAgICAgICBXb3JrZWQgaW4gRHVzdCBDbG91ZAojYy4gICAgICAgV29ya2VkIG9uL2FkamFjZW50IHRvIHBpdC9waWxlCiNkLiAgICAgICBXb3JrZWQgZ3JlYXRlciB0aGFuIG1lZGlhbiBob3VycwojZS4gICAgICAgRXhwb3NlZCB0byBodW1hbiByZW1haW5zCiNmLiAgICAgICAgV29ya2VkIGluIHNlYXJjaCwgcmVzY3VlLCByZWNvdmVyeSBzZXAtb2N0CiNnLiAgICAgICBLbm93IHNvbWVvbmUgd2hvIGRpZWQgOS8xMQojaC4gICAgICAgS25vdyBzb21lb25lIGluanVyZWQgOS8xMQojaS4gICAgICAgICBJbmp1cmVkIGF0IFdUQwojai4gICAgICAgICBTbGVwdCBvbi1zaXRlIGR1cmluZyBTZXAtT2N0IDIwMDEKCmV4cG9zdXJlczwtcmVhZC5jc3YoInd0Y19tcmlfc3R1ZHlfcGFydGljaXBhbnRzX3dpdGhfaW5kaWNlcy5jc3YiLCBzdHJpcC53aGl0ZT1UUlVFLCBuYS5zdHJpbmdzPSIiKQoKIyMjIwogCiNyZW5hbWUgSUQgdmFyaWFibGUgdG8gbWF0Y2ggdmFyaWFibGUgaW4gY2xpbmljaWFuICYgc3R1ZHkgbWVhc3VyZXMgJiBkcm9wIHZhcnMgYXMgbmVlZGVkCnYyRGF0YSA8LSBkcGx5cjo6cmVuYW1lKHYyRGF0YSwgcmVjb3JkX2lkID0gbnd0Y19pZCwgYmlvbWFya2Vyc19pZCA9IGJpb21faWQsIGV4dHJhY3RfaWQgPSBkY19leHRyYWN0aWQpIApiaWRzX2lkIDwtIGRwbHlyOjpyZW5hbWUoYmlkc19pZCwgcmVjb3JkX2lkID0gTldUQ19JRCwgYmlkc19pZCA9IEJJRFNfSUQpIApiaWRzX2lkIDwtIGRwbHlyOjpzZWxlY3QoYmlkc19pZCwgYyhyZWNvcmRfaWQsIGJpZHNfaWQsIHRyYWRpdGlvbmFsX3Jlc3BvbmRlciwgaGFuZGVkX0wsIG1lZF9wc3ljaG9hY3RpdmVfY3VycikpCgojIHJlbW92ZSBzdWJqZWN0cyAiVEVTVCIgZnJvbSB2MkRhdGEsIGFuZCAiTldUQy0wNTMgSW50ZXJ2YWwiIGZyb20gZHNEYXRhCmRzRGF0YSA8LSBkcGx5cjo6ZmlsdGVyKGRzRGF0YSwgIWdyZXBsKCJOV1RDLTA1MyBJbnRlcnZhbCBEYXRhIHByZSBWMyIscmVjb3JkX2lkKSkKdjJEYXRhIDwtIGRwbHlyOjpmaWx0ZXIodjJEYXRhLCAhZ3JlcGwoIlRFU1QiLHJlY29yZF9pZCkpCgojbWVyZ2UgdG9nZXRoZXIKZGF0YTE8LW1lcmdlKGNsRGF0YSxkc0RhdGEsYnk9InJlY29yZF9pZCIpCmRhdGE8LW1lcmdlKGRhdGExLHYyRGF0YSxieT0icmVjb3JkX2lkIikgJT4lIGRwbHlyOjpmaWx0ZXIoZm1yaV9zY2FuID09IDEpICNzZWxlY3Qgb25seSBwYXJ0aWNpcGFudHMgd2hvIChzbyBmYXIpIGNvbXBsZXRlZCB0aGUgc2NhbiAodmlzaXQgMikKZGF0YTwtbWVyZ2UoZGF0YSxiaWRzX2lkLCBieT0icmVjb3JkX2lkIikKCiMgcmVjb2RlIDUtY2F0ZWdvcnkgYGdyb3VwYCB2YXJpYWJsZSBpbnRvIDMgZ3JvdXBzCiMgMSA9IEhpZ2hseSBSZXNpbGllbnQgKDEpCiMgMiA9IFN5bXB0b21hdGljIChQVFNEKSAoMikKIyAzID0gTG93LUV4cG9zZWQgQ29udHJvbCAoMykKIyA0ID0gSW50ZXJtZWRpYXRlLUxvdyAoUmVzaWxpZW50KSAoNCkKIyA1ID0gSW50ZXJtZWRpYXRlLUhpZ2ggKFJlc2lsaWVudCkKZGF0YSA8LSBkYXRhICU+JSBkcGx5cjo6bXV0YXRlKGdyb3VwID0gcmVjb2RlX2ZhY3Rvcihncm91cCwgYDNgID0gMCwgYDFgID0gMSwgYDJgID0gMiwgYDRgID0gMSwgYDVgPTEpKQojIG5vdyAwID0gbG93LWV4cG9zZWQgY29udHJvbCwgMSA9IHJlc2lsaWVudCwgMiA9IFBUU0QKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIy1TRUxGIFJFUE9SVEVEIFRSQVVNQSBISVNUT1JZCiNjYWxjdWxhdGUgc2VsZi1yZXBvcnRlZCBjaGlsZGhvb2QgdHJhdW1hIGV4cG9zdXJlIChDVFEpCmN0cTwtZGF0YVssIGdyZXAocGF0dGVybiA9J15jdHFfLionLCBuYW1lcyhkYXRhKSldCmN0cVtjKDIsNSw3LDEzLDE5LDI2LDI4KV08LWxhcHBseShjdHFbYygyLDUsNywxMywxOSwyNiwyOCldLCBGVU49ZnVuY3Rpb24oeCkgI3JldmVyc2UgY29kZWQgaXRlbXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2RlKHgsJzEnPTUsJzInPTQsJzMnPTMsJzMuNSc9MywnNCc9MiwnNSc9MSkpCmRhdGEkQ1RRX2Vtb0FidXNlPC1yb3dTdW1zKGN0cVtjKDMsOCwxNCwxOCwyNSldKQpkYXRhJENUUV9waHlzQWJ1c2U8LXJvd1N1bXMoY3RxW2MoOSwxMSwxMiwxNSwxNyldKQpkYXRhJENUUV9zZXhBYnVzZTwtcm93U3VtcyhjdHFbYygyMCwyMSwyMywyNCwyNyldKQpkYXRhJENUUV9lbW9OZWdsZWN0PC1yb3dTdW1zKGN0cVtjKDUsNywxMywxOSwyOCldKSAgCmRhdGEkQ1RRX3BoeXNOZWdsZWN0PC1yb3dTdW1zKGN0cVtjKDEsMiw0LDYsMjYpXSkKY29sbmFtZXMoY3RxKTwtcGFzdGUwKCd1c2UuJywgbmFtZXMoY3RxKSkKZGF0YTwtY2JpbmQoZGF0YSwgY3RxKQoKI2NhbGN1bGF0ZSBzZWxmLXJlcG9ydGVkIGxpZmV0aW1lIHRyYXVtYXRpYyBldmVudHMgKFRMRVEpCiMxLiBGb3IgcGFydGljaXBhbnRzIHdobyBhcmVuJ3QgZnJvbSB0aGUgYmlvbWFya2VycyBzbyBoYXZlIGZ1bGwgVExFUToKI2ZyZXF1ZW5jeSB3ZWlnaHRlZCBzY29yZXM6CnRsZXE8LWRhdGFbZGF0YSRiaW9tYXJrZXJzX2NvbXBsZXRlcj09MCwgZ3JlcChwYXR0ZXJuID0nXnRsZXFfLionLCBuYW1lcyhkYXRhKSldCnRsZXE8LXRsZXFbYygxOjIzKV0gI3RyaW0gKzNtIGRhdGEKZGF0YSRUTEVRX3RvdGFsW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTBdPC1yb3dTdW1zKHRsZXFbMToyM10pCiNleGNsdWRpbmcgY2hpbGRob29kIGFnZWQgdHJhdW1hIGl0ZW1zIChmb3IgY29tYmluYXRpb24gd2l0aCBDVFEgc2NvcmVzKQp0bGVxW2MoMTIsMTMsMTUsMTYsMTcpXTwtMCAjdGhlc2UgaXRlbXMgb24gdGhlIHRsZXEgYXNrIGFib3V0IHBoeXNpY2FsL3NleHVhbCBhYnVzZSA8MTh5ZWFycyBvZiBhZ2UKZGF0YSRUTEVRX3RvdGFsRXhjbENUW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTBdPC1yb3dTdW1zKHRsZXFbMToyM10pCiNub24tZnJlcXVlbmN5IHdlaWdodGVkIHNjb3JlczoKdGxlcTwtZGF0YVtkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wLCBncmVwKHBhdHRlcm4gPSdedGxlcV8uKicsIG5hbWVzKGRhdGEpKV0KdGxlcTwtdGxlcVtjKDE6MjMpXSAjdHJpbSArM20gZGF0YQp0bGVxWyxdPC1sYXBwbHkodGxlcVssXSwgRlVOPWZ1bmN0aW9uKHgpIAogICAgICAgICByZWNvZGUoeCwnMCc9MCwnMSc9MSwnMic9MSwnMyc9MSkpICNiaW5hcmlzZQpkYXRhJFRMRVFfdG90YWxfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wXTwtcm93U3Vtcyh0bGVxWzE6MjNdKQpkYXRhJFRMRVFfc2V4dWFsVmlvbGVuY2VQb3N0MThfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wXTwtdGxlcSR0bGVxXzE4CnRsZXFbYygxMiwxMywxNSwxNiwxNyldPC0wICN0aGVzZSBpdGVtcyBvbiB0aGUgdGxlcSBhc2sgYWJvdXQgcGh5c2ljYWwvc2V4dWFsIGFidXNlIDwxOHllYXJzIG9mIGFnZQpkYXRhJFRMRVFfdG90YWxFeGNsQ1Rfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0wXTwtcm93U3Vtcyh0bGVxWzE6MjNdKQoKIzIuIEZvciBwYXJ0aWNpcGFudHMgd2hvIHdlcmUgZnJvbSB0aGUgYmlvbWFya2VycyBzdHVkeSBuZWVkIHRvIGZpcnN0IGV4dHJhY3QgdG8KI29sZCBUTEVRIHZhbHVlcyBmcm9tIGJpb21hcmtlcnMgZGF0YWJhc2UgZmlsZToKYmlvTWRhdGE8LXJlYWQuc3BzcygiL1ZvbHVtZXMvRXh0ZXJuYWwvV1RDX3Jlc2lsaWVuY2VfaW1hZ2luZy9kYXRhL2NsaW5pY2FsX2RhdGEvcmVmX2RhdGEvbWVyZ2VkX2Jpb21hcmtlcnNfNm5vdjIwMTlfQ0xFQU5fMS5zYXYiLCB0by5kYXRhLmZyYW1lPVRSVUUsIG1heC52YWx1ZS5sYWJlbHM9MSkKdGxlcUJpbzwtYmlvTWRhdGFbLGdyZXAocGF0dGVybiA9J150bGVxLionLCBuYW1lcyhiaW9NZGF0YSkpXQp0bGVxQmlvPC10bGVxQmlvW2MoOCwxMSwxNCwxOCwyMSwyNCwyNywzMCwzMywzNiwzOSw0Miw0NSw0OCw1MSw1NCw1Nyw2MCw2Myw2Niw2OSw3Miw3NSldICNvbmx5IGZyZXEgaXRlbXMKI25vdyBtZXJnZSB0aGVzZSB2YWx1ZXMgaW50byB0aGUgTldUQyBkYXRhc2V0IHVzaW5nIFdUQyBkYXRhY2VudGVyICdleHRyYWN0SURzJwpjb2xuYW1lcyh0bGVxQmlvKTwtcGFzdGUoImJpb01kYXRhIiwgY29sbmFtZXModGxlcUJpbyksIHNlcCA9ICJfIikgI2NoYW5nZSBjb2x1bW4gbmFtZXMgdG8gYWxsb3cgZGlzdGluY3Rpb24gZnJvbSBleGlzdGluZyBUTEVRcwp0bGVxQmlvJGJpb21hcmtlcnNfaWQ8LWJpb01kYXRhJHN1YmplY3RpZCAjYWRkIE5XVEMgc3ViIG51bWJlcnMgdG8gYWxsb3cgbWVyZ2luZwpkYXRhPC1tZXJnZShkYXRhLCB0bGVxQmlvLCBieT0iYmlvbWFya2Vyc19pZCIsIGFsbC54PVRSVUUpCiN0aGVuIGF0dGVtcHQgdG8gYWRkIG5ldyAoc2luY2UgYmlvbWFya2Vycykgc2NvcmVzIHRvIGJpb21hcmtlcnMgc2NvcmVzOgp0bGVxQmlvPC1kYXRhW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTEsIGdyZXAocGF0dGVybiA9J15iaW9NZGF0YV90bGVxLionLCBuYW1lcyhkYXRhKSldCnRsZXFTaW5jZUJpbzwtZGF0YVtkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0xLCBncmVwKHBhdHRlcm4gPSdedGxlcV9iaW9fLionLCBuYW1lcyhkYXRhKSldCnRsZXFCaW9Ub3RhbDwtdGxlcUJpbyArIHRsZXFTaW5jZUJpbwojZm9yIGZyZXF1ZW5jeSB3ZWlnaHRlZCBzY29yZXM6CnRsZXFCaW9Ub3RhbFssXTwtbGFwcGx5KHRsZXFCaW9Ub3RhbFssXSwgRlVOPWZ1bmN0aW9uKHgpIAogICAgICAgICAgICAgICAgIHJlY29kZSh4LCcwJz0wLCcxJz0xLCcyJz0yLCczJz0zLCc0Jz0zLCc1Jz0zLCc2Jz0zKSkgI3N0b3AgYW55IGluZGl2aWR1YWwgaXRlbSBtYXhpbmcgb3V0ICg+MykKZGF0YSRUTEVRX3RvdGFsW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTFdPC1yb3dTdW1zKHRsZXFCaW9Ub3RhbFsxOjIzXSkgI05CIGNhbid0IGNvbXBsZXRlbHkgYWNjdXJhdGVseSBtZXJnZSBjYXRlZ29yaWVzIHNvIHRoZXNlIHNjb3JlcyBtYXkgcmVwcmVzZW50IGFuIG92ZXJlc3RpbWF0ZSBpbiBiaW9tYXJrZXJzIHBwdHMKdGxlcUJpb1RvdGFsW2MoMTIsMTMsMTUsMTYsMTcpXTwtMCAjdGhlc2UgaXRlbXMgb24gdGhlIHRsZXEgYXNrIGFib3V0IHBoeXNpY2FsL3NleHVhbCBhYnVzZSA8MTh5ZWFycyBvZiBhZ2UKZGF0YSRUTEVRX3RvdGFsRXhjbENUW2RhdGEkYmlvbWFya2Vyc19jb21wbGV0ZXI9PTFdPC1yb3dTdW1zKHRsZXFCaW9Ub3RhbFsxOjIzXSkKI2ZvciBub24gZnJlcXVlbmN5IHdlaWdodGVkIHNjb3JlczoKdGxlcUJpb1RvdGFsPC10bGVxQmlvICsgdGxlcVNpbmNlQmlvCnRsZXFCaW9Ub3RhbFssXTwtbGFwcGx5KHRsZXFCaW9Ub3RhbFssXSwgRlVOPWZ1bmN0aW9uKHgpIAogICAgICAgICAgICAgICAgICByZWNvZGUoeCwnMCc9MCwnMSc9MSwnMic9MSwnMyc9MSwnNCc9MSwnNSc9MSwnNic9MSkpICNiaW5hcmlzZQpkYXRhJFRMRVFfdG90YWxfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0xXTwtcm93U3Vtcyh0bGVxQmlvVG90YWxbMToyM10pICNub25XZWlnaHRlZCBzY29yZXMgc2hvdWxkIGJlIGFjY3VyYXRlIHRob3VnaCA6LSkKZGF0YSRUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vbldbZGF0YSRiaW9tYXJrZXJzX2NvbXBsZXRlcj09MV08LXRsZXFCaW9Ub3RhbCRiaW9NZGF0YV90bGVxMThfdG91Y2gxOG5vY29uc2VudAp0bGVxQmlvVG90YWxbYygxMiwxMywxNSwxNiwxNyldPC0wICN0aGVzZSBpdGVtcyBvbiB0aGUgdGxlcSBhc2sgYWJvdXQgcGh5c2ljYWwvc2V4dWFsIGFidXNlIDwxOHllYXJzIG9mIGFnZQpkYXRhJFRMRVFfdG90YWxFeGNsQ1Rfbm9uV1tkYXRhJGJpb21hcmtlcnNfY29tcGxldGVyPT0xXTwtcm93U3Vtcyh0bGVxQmlvVG90YWxbMToyM10pCgoKI3JldHJpZXZlIG51bWJlciBvZiBXVEMtc3BlY2lmaWMgdHJhdW1hdGljIGV4cG9zdXJlcyAoZnJvbSBXVEMgZGF0YWNlbnRlciBkYXRhKQpkYXRhQ2RhdGE8LXJlYWQuc3BzcygiL1ZvbHVtZXMvRXh0ZXJuYWwvV1RDX3Jlc2lsaWVuY2VfaW1hZ2luZy9kYXRhL2NsaW5pY2FsX2RhdGEvcmVmX2RhdGEvbWVyZ2VkX3NjcmVlbmluZ19kYXRhX2Zvcl9OSS5zYXYiLCB0by5kYXRhLmZyYW1lPVRSVUUpCnRtcDwtZGF0YS5mcmFtZShtYXRyaXgobmNvbD0yLG5yb3c9bnJvdyhkYXRhQ2RhdGEpKSkKY29sbmFtZXModG1wKTwtYygiZXh0cmFjdF9pZCIsIldUQ2V4cG9zdXJlX3Njb3JlIikKdG1wJGV4dHJhY3RfaWQ8LWRhdGFDZGF0YSRleHRyYWN0aWQKdG1wJFdUQ2V4cG9zdXJlX3Njb3JlPC1kYXRhQ2RhdGEkdHJhdW1hdGljX2V4cG9zdXJlX2luZGV4CmRhdGE8LW1lcmdlKGRhdGEsIHRtcCwgYnk9ImV4dHJhY3RfaWQiLCBhbGwueD1UUlVFKQoKIyMgbWFudWFsbHkgaW5wdXQgdGhlIGV4cG9zdXJlIHNjb3JlcyBmb3IgcGVvcGxlIHdobyBkaWRuJ3QgaGF2ZSB0aGVtIGluIHRoZSBmaWxlCiNkYXRhJFdUQ2V4cG9zdXJlX3Njb3JlW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wMzQiXTwtMiAjdGhpcyBzdWIgbm90IGluIGRzLCBubyBmbXJpCmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2OCJdPC00CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3MyJdPC01CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3NCJdPC00CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3NiJdPC0zCmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3OCJdPC00CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA4MyJdPC0yCiNoYWNrIGZvciBwcHQgd2hvIHNlZW1zIHVuZGVyLXNjb3JlZCBiYXNlZCBvbiB0aGVpciBpbnRlcnZpZXcgZm9yIHRoaXMgc3R1ZHk6CmRhdGEkV1RDZXhwb3N1cmVfc2NvcmVbZGF0YSRyZWNvcmRfaWQ9PSdOV1RDLTAzMSddPC0zCgojIGRvbid0IGhhdmUgdGhlc2U6CiNOV1RDLTA4NAojTldUQy0wOTQKI05XVEMtMDkzCiNOV1RDLTA5MQoKCiMjIG1hbnVhbGx5IGlucHV0IHRyYWRpdGlvbmFsIHJlc3BvbmRlciBzdGF0dXMgZm9yIHBlb3BsZSBtaXNzaW5nCmRhdGEkdHJhZGl0aW9uYWxfcmVzcG9uZGVyW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wOTMiXTwtMQpkYXRhJHRyYWRpdGlvbmFsX3Jlc3BvbmRlcltkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDk0Il08LTAKZGF0YSR0cmFkaXRpb25hbF9yZXNwb25kZXJbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2MCJdPC0wCiMgZG9uJ3QgaGF2ZSBOV1RDLTA5MQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIy1DTElOSUNBTi1SQVRFRCBQU1lDSE9QQVRIT0xPR1kKI2NhbGN1bGF0ZSBjbGluaWNpYW4tcmF0ZWQgUFRTRCBzeW1wdG9tIHNldmVyaXR5IChDQVBTLTUgcGFzdCBtb250aCBpbnRlcnZpZXcpCiNzY29yZSBhY2NvcmRpbmcgdG8gUm9iIFBpZXRyemNrJ3MgNyBzeW1wdG9tIGRpbWVuc2lvbnMsIHdoaWNoIHByb3ZpZGVkIHRoZQojYmVzdCBmaXQgdG8gdGhlIGRhdGEgaW4gdHdvIGluZGVwZWRlbnQgc2FtcGxlcyBvZiBkaXZlcnNlIHRyYXVtYS1leHBvc2VkIGluZGl2aWR1YWxzLAojc2VlIEFybW91ciBldCBhbC4gMjAxNToKI2h0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzAwMjIzOTU2MTQwMDMxODUpCmRhdGEkQ0FQUzVfUE1fdG90YWw8LWRhdGEkcHRzZF90b3Rfc2V2X3Bhc3RfbW9udGgKI0IuIGludHJ1c2lvbiAocmUtZXhwZXJpZW5jaW5nKSBzeW1wdG9tcwpjYXBzX2I8LWRhdGFbLCBncmVwKHBhdHRlcm4gPSdeYi4qLl9wYXN0X21vbnRoJywgbmFtZXMoZGF0YSkpXQpkYXRhJENBUFM1X1BNX3JlRXhwPC1yb3dTdW1zKGNhcHNfYikKI0MuIGF2b2lkYW5jZSBzeW1wdG9tcwpjYXBzX2M8LWRhdGFbLCBncmVwKHBhdHRlcm4gPSdeYy4qLl9wYXN0X21vbnRoJywgbmFtZXMoZGF0YSkpXQpkYXRhJENBUFM1X1BNX2F2b2lkPC1yb3dTdW1zKGNhcHNfYykKI0QuIGNvZ25pdGlvbiBhbmQgbW9vZCBzeW1wdG9tcyBbUm9iIHN1YmRpdmlkZXMgaW50byBuZWdhdGl2ZSBhZmZlY3QgYW5kIGFuaGVkb25pYV0KY2Fwc19kPC1kYXRhWywgZ3JlcChwYXR0ZXJuID0nXmQuKi5fcGFzdF9tb250aCcsIG5hbWVzKGRhdGEpKV0KZGF0YSRDQVBTNV9QTV9uZWdBZmY8LXJvd1N1bXMoY2Fwc19kWzE6NF0pCmRhdGEkQ0FQUzVfUE1fYW5oZWQ8LXJvd1N1bXMoY2Fwc19kWzU6N10pCiNFLiBhcm91c2FsIGFuZCByZWFjdGl2aXR5IHN5bXB0b21zIFtSb2Igc3ViZGl2aWRlcyBpbnRvIGV4dGVybmFsaXppbmcKI2JlaGF2aW91ciwgYW54aW91cyBhcm91c2FsLCBhbmQgZHlzcGhvcmljIGFyb3VzYWxdCmNhcHNfZTwtZGF0YVssIGdyZXAocGF0dGVybiA9J15lLiouX3Bhc3RfbW9udGgnLCBuYW1lcyhkYXRhKSldCmRhdGEkQ0FQUzVfUE1fZXh0QmVoPC1yb3dTdW1zKGNhcHNfZVsxOjJdKQpkYXRhJENBUFM1X1BNX2FueEFyb3U8LXJvd1N1bXMoY2Fwc19lWzM6NF0pCmRhdGEkQ0FQUzVfUE1fZHlzQXJvdTwtcm93U3VtcyhjYXBzX2VbNTo2XSkKCiNjdXJyZW50b3RoZXIgcHN5Y2hpYXRyaWMgZGlhZ25vc2VzIGVuZG9yc2VkIChhY2NvcmRpbmcgdG8gU0NJRC1WIGludGVydmlldykKZGF0YSRtZGRfY3VycmVudFtpcy5uYShkYXRhJG1kZF9jdXJyZW50KV08LTAgI21ham9yIGRlcHJlc3NpdmUgZGlzb3JkZXIKZGF0YSRwZGRfY3VycmVudFtpcy5uYShkYXRhJHBkZF9jdXJyZW50KV08LTAgI3BlcnNpc3RlbnQgZHlzdGh5bWljIGRpc29yZGVyCmRhdGEkcGFuaWNfY3VycmVudFtpcy5uYShkYXRhJHBhbmljX2N1cnJlbnQpXTwtMCAjcGFuaWMgZGlzb3JkZXIKZGF0YSRnYWRfY3VycmVudFtpcy5uYShkYXRhJGdhZF9jdXJyZW50KV08LTAgI2dlbmVyYWxpemVkIGFueGlldHkgZGlzb3JkZXIKCiMjIG1hbnVhbGx5IGlucHV0IHRyYWRpdGlvbmFsIHJlc3BvbmRlciBzdGF0dXMgZm9yIHBlb3BsZSBtaXNzaW5nCmRhdGEkdHJhZGl0aW9uYWxfcmVzcG9uZGVyW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wOTMiXTwtMQpkYXRhJHRyYWRpdGlvbmFsX3Jlc3BvbmRlcltkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDk0Il08LTAKZGF0YSR0cmFkaXRpb25hbF9yZXNwb25kZXJbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2MCJdPC0wCiMgZG9uJ3QgaGF2ZSBOV1RDLTA5MQoKIyMgRklYIEdST1VQCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3MiJdPC0wCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3NiJdPC0wCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTAzMiJdPC0wCmRhdGEkZ3JvdXBbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA2OSJdPC0wCgoKCgoKIyBzdWJzZXQgZGF0YSBmb3IgY3VycmVudCBhbmFseXNlcwpoaXN0X2RhdGEgPC0gZGF0YSAlPiUgZHBseXI6OnNlbGVjdCgKICByZWNvcmRfaWQsCiAgZ3JvdXAsCiAgYmlkc19pZCwKICBtZGRfY3VycmVudCwKICBwZGRfY3VycmVudCwKICBnYWRfY3VycmVudCwKICBwYW5pY19jdXJyZW50LAogIENBUFM1X1BNX3RvdGFsLAogIENUUV9lbW9OZWdsZWN0LAogIENUUV9waHlzTmVnbGVjdCwKICBDVFFfZW1vQWJ1c2UsCiAgQ1RRX3BoeXNBYnVzZSwKICBDVFFfc2V4QWJ1c2UsCiAgVExFUV90b3RhbEV4Y2xDVF9ub25XLAogIFRMRVFfc2V4dWFsVmlvbGVuY2VQb3N0MThfbm9uVywKICBXVENleHBvc3VyZV9zY29yZSwKICB0cmFkaXRpb25hbF9yZXNwb25kZXIpICU+JSBkcGx5cjo6bXV0YXRlKG1kZF9jdXJyZW50ID0gYXMuZmFjdG9yKG1kZF9jdXJyZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZF9jdXJyZW50ID0gYXMuZmFjdG9yKHBkZF9jdXJyZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhZF9jdXJyZW50ID0gYXMuZmFjdG9yKGdhZF9jdXJyZW50KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljX2N1cnJlbnQgPSBhcy5mYWN0b3IocGFuaWNfY3VycmVudCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFkaXRpb25hbF9yZXNwb25kZXIgPSBhcy5mYWN0b3IodHJhZGl0aW9uYWxfcmVzcG9uZGVyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwID0gcmVjb2RlX2ZhY3Rvcihncm91cCwgIjAiID0gIkxvdy1leHBvc2VkIiwgIjEiID0gIlJlc2lsaWVudCIsICIyIiA9ICJQVFNEIikpCgoKCgpgYGAKCmBgYHtyfQojIyBtZXJnZSBpbiBzcGVjaWZpYyBleHBvc3VyZXMKZXhwb3N1cmVzIDwtIGV4cG9zdXJlcyAlPiUgZHBseXI6OnJlbmFtZShyZWNvcmRfaWQgPSBud3RjX2lkKSAlPiUgbXV0YXRlX2VhY2goZnVucyhmYWN0b3IpLCBzdGFydHNfd2l0aCgiaW5kZXgiKSkKCmhpc3RfZGF0YSA8LSBsZWZ0X2pvaW4oaGlzdF9kYXRhLCBleHBvc3VyZXMsIGJ5PSJyZWNvcmRfaWQiKQpoaXN0X2RhdGEgPC0gaGlzdF9kYXRhICU+JSBtdXRhdGUoVExFUV9zZXh1YWxWaW9sZW5jZVBvc3QxOF9ub25XID0gYXMuaW50ZWdlcihUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vblcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVExFUV90b3RhbEV4Y2xDVF9ub25XID0gYXMuaW50ZWdlcihUTEVRX3RvdGFsRXhjbENUX25vblcpKQpgYGAKCiMjIyBTcGVjaWZpYyBleHBvc3VyZXMgKG4gPSA2OCkKCiMjIyMgYS4gQXJyaXZlZCBXVEMgOS8xMS0xMwpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2EpCmBgYAoKCiMjIyMgYi4gV29ya2VkIGluIGR1c3QgY2xvdWQKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9iKQpgYGAKCgojIyMjIGMuIFdvcmtlZCBvbi9hZGphY2VudCB0byBwaXQvcGlsZQpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2MpCmBgYAoKCiMjIyMgZC4gV29ya2VkIGdyZWF0ZXIgdGhhbiBtZWRpYW4gaG91cnMKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9kKQpgYGAKCgojIyMjIGUuIEV4cG9zZWQgdG8gaHVtYW4gcmVtYWlucwpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2UpCmBgYAoKCiMjIyMgZi4gV29ya2VkIGluIHNlYXJjaCwgcmVzY3VlLCByZWNvdmVyeSBTZXAtT2N0IDIwMDEKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9mKQpgYGAKCgojIyMjIGcuIEtub3cgc29tZW9uZSB3aG8gZGllZCA5LzExCmBgYHtyfQpoaXN0X2RhdGEgJT4lIGdyb3VwX2J5KGdyb3VwKSAlPiUgY291bnQoaW5kZXhfZykKYGBgCgoKIyMjIyBoLiBLbm93IHNvbWVvbmUgaW5qdXJlZCA5LzExCmBgYHtyfQpoaXN0X2RhdGEgJT4lIGdyb3VwX2J5KGdyb3VwKSAlPiUgY291bnQoaW5kZXhfaCkKYGBgCgoKIyMjIyBpLiBJbmp1cmVkIGF0IFdUQwpgYGB7cn0KaGlzdF9kYXRhICU+JSBncm91cF9ieShncm91cCkgJT4lIGNvdW50KGluZGV4X2kpCmBgYAoKCiMjIyMgai4gU2xlcHQgb24tc2l0ZSBTZXAtT2N0IDIwMDEKYGBge3J9Cmhpc3RfZGF0YSAlPiUgZ3JvdXBfYnkoZ3JvdXApICU+JSBjb3VudChpbmRleF9qKQpgYGAKCgoKIyMjIERlc2NyaXB0aXZlcwoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3IsIHJlc3VsdHM9J21hcmt1cCd9CgpkYXQ8LSBoaXN0X2RhdGEKc3RhcmdhemVyKGRhdCwgdHlwZT0idGV4dCIpCmBgYAoKIyMjIyBMb3ctZXhwb3NlZCBjb250cm9scyAobiA9IDE3KQpgYGB7ciwgcmVzdWx0cz0nbWFya3VwJ30KCmRhdDwtIGhpc3RfZGF0YSAlPiUgZmlsdGVyKGdyb3VwPT0iTG93LWV4cG9zZWQiKQpzdGFyZ2F6ZXIoZGF0LCB0eXBlPSJ0ZXh0IikKYGBgCgojIyMjIFJlc2lsaWVudCAobiA9IDMxKQpgYGB7ciwgcmVzdWx0cz0nbWFya3VwJ30KCmRhdDwtIGhpc3RfZGF0YSAlPiUgZmlsdGVyKGdyb3VwPT0iUmVzaWxpZW50IikKc3RhcmdhemVyKGRhdCwgdHlwZT0idGV4dCIpCmBgYAoKIyMjIyBQVFNEIChuID0gMjApCmBgYHtyLCByZXN1bHRzPSdtYXJrdXAnfQoKZGF0PC0gaGlzdF9kYXRhICU+JSBmaWx0ZXIoZ3JvdXA9PSJQVFNEIikKc3RhcmdhemVyKGRhdCwgdHlwZT0idGV4dCIpCmBgYAoKCgoKCgojIyBEYXRhIHZpc3VhbGl6YXRpb24KCiMjIyBfbl8gV1RDIGV4cG9zdXJlcwoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoV1RDZXhwb3N1cmVfc2NvcmUpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSwgZmlsbD0iZGFya3Zpb2xldCIpICsKICAgIHhsYWIoIldUQyBleHBvc3VyZXMiKSArIHRoZW1lX2J3KCkgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEwLCBieSA9IDEpKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQoKICBwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoV1RDZXhwb3N1cmVfc2NvcmUsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUpICsKICB4bGFiKCJXVEMgZXhwb3N1cmVzIikgKyBmYWNldF93cmFwKH5ncm91cCkgKyB0aGVtZV9idygpCiAKIHAyIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhjb2xvcj1ncm91cCwgeT1XVENleHBvc3VyZV9zY29yZSwgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJXVEMgZXhwb3N1cmVzIikgKyB4bGFiKCJHcm91cCIpCiAKcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKIApgYGAKCgoKIyMjIENBUFMtNSBQTQoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ0FQUzVfUE1fdG90YWwpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCxjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ0FQUy01IFBNIFRvdGFsIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCA1MCwgYnkgPSA1KSkKIHAxCmBgYAoKIyMjIyBCeSBncm91cApgYGB7cn0KCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENBUFM1X1BNX3RvdGFsLCBjb2xvcj1ncm91cCwgZmlsbD1ncm91cCkpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLGNvbG91cj0nYmxhY2snLHNpemU9LjUpICsKICAgIHhsYWIoIkNBUFMtNSBQTSBUb3RhbCIpICsgZmFjZXRfd3JhcCh+Z3JvdXApICsgdGhlbWVfYncoKQogCiAgcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PUNBUFM1X1BNX3RvdGFsLCB4PWdyb3VwLGxhYmVsPWJpZHNfaWQpKSArIAogICAgICAgZ2VvbV9ib3hwbG90KCkgKyBnZW9tX3BvaW50KCkgKyAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjAxLCBoZWlnaHQ9LjAxKSArCiAgeWxhYigiQ0FQUy01IFBNIFRvdGFsIikgKyB4bGFiKCJHcm91cCIpCgogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKCmBgYAoKIyMjIENUUSBlbW90aW9uYWwgbmVnbGVjdAoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX2Vtb05lZ2xlY3QpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCxjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ1RRIGVtbyBuZWdsZWN0IikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgYnkgPSA1KSkKIHAxCmBgYAoKIyMjIyBCeSBncm91cApgYGB7cn0KICAKICBwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX2Vtb05lZ2xlY3QsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBlbW8gbmVnbGVjdCIpICsgZmFjZXRfd3JhcCh+Z3JvdXApICsgdGhlbWVfYncoKQogCiBwMiA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoY29sb3I9Z3JvdXAsIHk9Q1RRX2Vtb05lZ2xlY3QsIHg9Z3JvdXApKSArIAogICAgICAgZ2VvbV9ib3hwbG90KCkgKyBnZW9tX3BvaW50KCkgKyAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjAxLCBoZWlnaHQ9LjAxKSArCiAgeWxhYigiQ1RRIGVtbyBuZWdsZWN0IikgKyB4bGFiKCJHcm91cCIpCiAKIHBsb3RfZ3JpZChwMSxwMiwgbGFiZWxzID0gIkFVVE8iLCBncmVlZHk9VFJVRSwgc2NhbGU9MSwgbGFiZWxfc2l6ZT0xMCwgbmNvbD0xLCBucm93PTIpCgpgYGAKCgojIyMgQ1RRIHBoeXNpY2FsIG5lZ2xlY3QKCiMjIyMgRnVsbCBuZXVyb2ltYWdpbmcgc2FtcGxlCmBgYHtyfQoKcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9waHlzTmVnbGVjdCkpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLCBjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ1RRIHBoeXNpY2FsIG5lZ2xlY3QiKSArIHRoZW1lX2J3KCkgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDMwLCBieSA9IDUpKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQogCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9waHlzTmVnbGVjdCwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBwaHlzaWNhbCBuZWdsZWN0IikgKyBmYWNldF93cmFwKH5ncm91cCkgKyB0aGVtZV9idygpCiAKIHAyIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhjb2xvcj1ncm91cCwgeT1DVFFfcGh5c05lZ2xlY3QsIHg9Z3JvdXApKSArIAogICAgICAgZ2VvbV9ib3hwbG90KCkgKyBnZW9tX3BvaW50KCkgKyAgZ2VvbV9qaXR0ZXIod2lkdGggPSAwLjAxLCBoZWlnaHQ9LjAxKSArCiAgeWxhYigiQ1RRIHBoeXNpY2FsIG5lZ2xlY3QiKSArIHhsYWIoIkdyb3VwIikKIAogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKYGBgCiAKIAojIyMgQ1RRIGVtb3Rpb25hbCBhYnVzZQoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX2Vtb0FidXNlKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUsIGZpbGw9ImRhcmt2aW9sZXQiKSArCiAgICB4bGFiKCJDVFEgZW1vIGFidXNlIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgYnkgPSA1KSkKCiBwMQpgYGAKCiMjIyMgQnkgZ3JvdXAKYGBge3J9CiAgCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9lbW9BYnVzZSwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBlbW8gYWJ1c2UiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkKIAogcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PUNUUV9lbW9BYnVzZSwgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJDVFEgZW1vIGFidXNlIikgKyB4bGFiKCJHcm91cCIpCiAKIHBsb3RfZ3JpZChwMSxwMiwgbGFiZWxzID0gIkFVVE8iLCBncmVlZHk9VFJVRSwgc2NhbGU9MSwgbGFiZWxfc2l6ZT0xMCwgbmNvbD0xLCBucm93PTIpCmBgYAogCiMjIyBDVFEgcGh5c2ljYWwgYWJ1c2UKCiMjIyMgRnVsbCBuZXVyb2ltYWdpbmcgc2FtcGxlCmBgYHtyfQoKcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9waHlzQWJ1c2UpKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSwgZmlsbD0iZGFya3Zpb2xldCIpICsKICAgIHhsYWIoIkNUUSBwaHlzIGFidXNlIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAzMCwgYnkgPSAxKSkKIHAxCmBgYAoKIyMjIyBCeSBncm91cApgYGB7cn0KICAKICBwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoQ1RRX3BoeXNBYnVzZSwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBwaHlzIGFidXNlIikgKyBmYWNldF93cmFwKH5ncm91cCkgKyB0aGVtZV9idygpCiAKIHAyIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhjb2xvcj1ncm91cCwgeT1DVFFfcGh5c0FidXNlLCB4PWdyb3VwKSkgKyAKICAgICAgIGdlb21fYm94cGxvdCgpICsgZ2VvbV9wb2ludCgpICsgIGdlb21faml0dGVyKHdpZHRoID0gMC4wMSwgaGVpZ2h0PS4wMSkgKwogIHlsYWIoIkNUUSBwaHlzIGFidXNlIikgKyB4bGFiKCJHcm91cCIpCiAKIHBsb3RfZ3JpZChwMSxwMiwgbGFiZWxzID0gIkFVVE8iLCBncmVlZHk9VFJVRSwgc2NhbGU9MSwgbGFiZWxfc2l6ZT0xMCwgbmNvbD0xLCBucm93PTIpCmBgYAoKIyMjIENUUSBzZXh1YWwgYWJ1c2UKCiMjIyMgRnVsbCBuZXVyb2ltYWdpbmcgc2FtcGxlCmBgYHtyfQoKcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9zZXhBYnVzZSkpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLCBjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiQ1RRIHNleCBhYnVzZSIpICsgdGhlbWVfYncoKSArIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMzAsIGJ5ID0gNSkpCiBwMQpgYGAKCiMjIyMgQnkgZ3JvdXAKYGBge3J9CiAgCiAgcDEgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKENUUV9zZXhBYnVzZSwgY29sb3I9Z3JvdXAsIGZpbGw9Z3JvdXApKSArIAogICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCwgY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIkNUUSBzZXggYWJ1c2UiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkKIAogcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PUNUUV9zZXhBYnVzZSwgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJDVFEgc2V4IGFidXNlIikgKyB4bGFiKCJHcm91cCIpCgogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKYGBgCgoKCgojIyMgVExFUSB0b3RhbCBleGNsdWRpbmcgY2hpbGRob29kIHRyYXVtYSAobm9uLXdlaWdodGVkKQoKIyMjIyBGdWxsIG5ldXJvaW1hZ2luZyBzYW1wbGUKYGBge3J9CgpwMSA8LSBnZ3Bsb3QoaGlzdF9kYXRhLCBhZXMoVExFUV90b3RhbEV4Y2xDVF9ub25XKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUsIGZpbGw9ImRhcmt2aW9sZXQiKSArCiAgICB4bGFiKCJUTEVRIGV4Y2wuQ1QiKSAgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEzMCwgYnkgPSAxMCkpICsgdGhlbWVfYncoKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQogIAogIHAxIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhUTEVRX3RvdGFsRXhjbENUX25vblcsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIGdlb21faGlzdG9ncmFtKGJpbnM9MjAsIGNvbG91cj0nYmxhY2snLHNpemU9LjUpICsKICB4bGFiKCJUTEVRIGV4Y2wuQ1QiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkKIAogcDIgPC0gZ2dwbG90KGhpc3RfZGF0YSwgYWVzKGNvbG9yPWdyb3VwLCB5PVRMRVFfdG90YWxFeGNsQ1Rfbm9uVywgeD1ncm91cCkpICsgCiAgICAgICBnZW9tX2JveHBsb3QoKSArIGdlb21fcG9pbnQoKSArICBnZW9tX2ppdHRlcih3aWR0aCA9IDAuMDEsIGhlaWdodD0uMDEpICsKICB5bGFiKCJUTEVRIGV4Y2wuQ1QiKSArIHhsYWIoIkdyb3VwIikKIAogcGxvdF9ncmlkKHAxLHAyLCBsYWJlbHMgPSAiQVVUTyIsIGdyZWVkeT1UUlVFLCBzY2FsZT0xLCBsYWJlbF9zaXplPTEwLCBuY29sPTEsIG5yb3c9MikKYGBgCgoKCiMjIyBUTEVRIHNleHVhbCB2aW9sZW5jZSA+MTggeXJzIChub24td2VpZ2h0ZWQpCgojIyMjIEZ1bGwgbmV1cm9pbWFnaW5nIHNhbXBsZQpgYGB7cn0KCnAxIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vblcpKSArIAogICAgICAgc3RhdF9jb3VudChjb2xvdXI9J2JsYWNrJyxzaXplPS41LCBmaWxsPSJkYXJrdmlvbGV0IikgKwogICAgeGxhYigiVExFUSBzZXh1YWwgdmlvbGVuY2UgPjE4IHlycyIpICsgdGhlbWVfYncoKSArIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgMSwgYnkgPSAxKSkgKwogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwgNzAsIGJ5ID0gMTApKQogcDEKYGBgCgojIyMjIEJ5IGdyb3VwCmBgYHtyfQogIAogIHAxIDwtIGdncGxvdChoaXN0X2RhdGEsIGFlcyhUTEVRX3NleHVhbFZpb2xlbmNlUG9zdDE4X25vblcsIGNvbG9yPWdyb3VwLCBmaWxsPWdyb3VwKSkgKyAKICAgICAgIHN0YXRfY291bnQoY29sb3VyPSdibGFjaycsc2l6ZT0uNSkgKwogIHhsYWIoIlRMRVEgc2V4dWFsIHZpb2xlbmNlID4xOCB5cnMiKSArIGZhY2V0X3dyYXAofmdyb3VwKSArIHRoZW1lX2J3KCkgKyBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDAsIDEsIGJ5ID0gMSkpCiBwMQpgYGA=