Figure

Table
Phase 3 Randomized Clinical Trial Mixed-Model Results evaluating quality of life DLQI Total Scale & Individual Subscales
Standardized Effects (95% CI) and Standardized Differences (95% CI) and p-values
LAB Placebo Active Within TRT between VISIT Overall
Baseline Week 16 Baseline Week 16 Placebo Active Difference

Influenced Clothes You Wear
DLQI104

2.19 (1.94, 2.43) 1.92 (1.68, 2.16) 2.23 (2.03, 2.42) 0.74 (0.57, 0.90) −0.26 (−0.50, −0.03)
p=0.025
−1.49 (−1.67, −1.31)
p<0.001
−1.22 (−1.52, −0.93)
p<0.001

How Embarrassed, Self Conscious
DLQI102

2.31 (2.06, 2.55) 2.28 (2.03, 2.53) 2.36 (2.16, 2.55) 0.77 (0.62, 0.93) −0.03 (−0.26, 0.21)
p=0.83
−1.58 (−1.76, −1.40)
p<0.001
−1.56 (−1.85, −1.26)
p<0.001

How Itchy, Sore, Painful, Stinging
DLQI101

2.84 (2.61, 3.08) 2.64 (2.41, 2.88) 2.93 (2.73, 3.13) 1.23 (1.09, 1.38) −0.20 (−0.43, 0.03)
p=0.084
−1.70 (−1.88, −1.51)
p<0.001
−1.49 (−1.79, −1.20)
p<0.001

How Much a Problem is Treatment
DLQI110

1.21 (1.00, 1.41) 1.09 (0.89, 1.30) 1.29 (1.14, 1.44) 0.27 (0.13, 0.41) −0.11 (−0.34, 0.12)
p=0.35
−1.02 (−1.19, −0.85)
p<0.001
−0.91 (−1.20, −0.62)
p<0.001

DLQI Total Score
DLQI_SCORE

2.32 (2.07, 2.56) 2.02 (1.78, 2.27) 2.37 (2.18, 2.57) 0.67 (0.51, 0.83) −0.29 (−0.52, −0.06)
p=0.014
−1.70 (−1.89, −1.52)
p<0.001
−1.41 (−1.70, −1.12)
p<0.001

Affected Social, Leisure Activity
DLQI105

1.66 (1.44, 1.89) 1.15 (0.93, 1.37) 1.54 (1.37, 1.70) 0.33 (0.18, 0.48) −0.51 (−0.74, −0.28)
p<0.001
−1.20 (−1.38, −1.03)
p<0.001
−0.70 (−0.98, −0.41)
p<0.001

Interfered Shopping, Home, Yard
DLQI103

1.13 (0.93, 1.34) 0.92 (0.71, 1.12) 1.22 (1.07, 1.38) 0.20 (0.06, 0.35) −0.21 (−0.44, 0.02)
p=0.071
−1.02 (−1.19, −0.85)
p<0.001
−0.81 (−1.09, −0.52)
p<0.001

Made It Difficult to Do Any Sports
DLQI106

1.23 (1.01, 1.45) 1.01 (0.79, 1.23) 1.19 (1.03, 1.35) 0.26 (0.11, 0.41) −0.22 (−0.45, 0.01)
p=0.060
−0.93 (−1.10, −0.76)
p<0.001
−0.71 (−0.99, −0.42)
p<0.001

Caused Any Sexual Difficulties
DLQI109

0.99 (0.78, 1.19) 0.79 (0.58, 1.00) 0.92 (0.77, 1.07) 0.18 (0.04, 0.33) −0.19 (−0.42, 0.04)
p=0.10
−0.73 (−0.90, −0.56)
p<0.001
−0.54 (−0.83, −0.26)
p<0.001

Problem Partner, Friends, Relative
DLQI108

1.05 (0.84, 1.25) 0.86 (0.65, 1.07) 1.17 (1.01, 1.32) 0.27 (0.13, 0.41) −0.19 (−0.42, 0.04)
p=0.11
−0.90 (−1.07, −0.73)
p<0.001
−0.71 (−0.99, −0.42)
p<0.001

Prevented Working or Studying
DLQI107

0.37 (0.20, 0.55) 0.28 (0.10, 0.46) 0.54 (0.42, 0.67) 0.05 (−0.08, 0.18) −0.09 (−0.32, 0.14)
p=0.44
−0.50 (−0.66, −0.33)
p<0.001
−0.41 (−0.69, −0.12)
p=0.005
Table (Raw)
Phase 3 Randomized Clinical Trial Mixed-Model Results evaluating quality of life DLQI Total Scale & Individual Subscales
Effects (95% CI) and Differences (95% CI) and p-values
LAB Placebo Active Within TRT between VISIT Overall
Baseline Week 16 Baseline Week 16 Placebo Active Difference

Influenced Clothes You Wear
DLQI104

1.63 (1.47, 1.79) 1.44 (1.27, 1.60) 1.66 (1.55, 1.78) 0.55 (0.43, 0.67) −0.20 (−0.37, −0.03)
p=0.025
−1.11 (−1.24, −0.99)
p<0.001
−0.92 (−1.13, −0.70)
p<0.001

How Embarrassed, Self Conscious
DLQI102

1.61 (1.46, 1.76) 1.60 (1.44, 1.75) 1.65 (1.54, 1.75) 0.54 (0.43, 0.65) −0.02 (−0.18, 0.14)
p=0.83
−1.10 (−1.22, −0.99)
p<0.001
−1.09 (−1.29, −0.89)
p<0.001

How Itchy, Sore, Painful, Stinging
DLQI101

1.97 (1.85, 2.10) 1.83 (1.70, 1.96) 2.03 (1.94, 2.12) 0.86 (0.76, 0.95) −0.14 (−0.30, 0.02)
p=0.083
−1.18 (−1.29, −1.06)
p<0.001
−1.04 (−1.23, −0.84)
p<0.001

How Much a Problem is Treatment
DLQI110

0.88 (0.74, 1.02) 0.80 (0.65, 0.94) 0.94 (0.84, 1.04) 0.20 (0.09, 0.30) −0.08 (−0.25, 0.09)
p=0.35
−0.75 (−0.87, −0.63)
p<0.001
−0.67 (−0.87, −0.46)
p<0.001

DLQI Total Score
DLQI_SCORE

10.57 (9.60, 11.54) 9.24 (8.25, 10.23) 10.83 (10.14, 11.52) 3.06 (2.36, 3.77) −1.33 (−2.38, −0.28)
p=0.013
−7.77 (−8.52, −7.02)
p<0.001
−6.44 (−7.73, −5.15)
p<0.001

Affected Social, Leisure Activity
DLQI105

1.11 (0.97, 1.24) 0.77 (0.63, 0.91) 1.02 (0.93, 1.12) 0.22 (0.12, 0.32) −0.34 (−0.49, −0.18)
p<0.001
−0.80 (−0.91, −0.69)
p<0.001
−0.46 (−0.65, −0.27)
p<0.001

Interfered Shopping, Home, Yard
DLQI103

0.74 (0.61, 0.87) 0.60 (0.47, 0.73) 0.80 (0.71, 0.89) 0.13 (0.04, 0.23) −0.14 (−0.29, 0.01)
p=0.070
−0.67 (−0.77, −0.56)
p<0.001
−0.53 (−0.71, −0.34)
p<0.001

Made It Difficult to Do Any Sports
DLQI106

0.82 (0.68, 0.96) 0.67 (0.53, 0.81) 0.79 (0.69, 0.89) 0.17 (0.07, 0.27) −0.15 (−0.30, 0.01)
p=0.059
−0.62 (−0.73, −0.51)
p<0.001
−0.47 (−0.66, −0.28)
p<0.001

Caused Any Sexual Difficulties
DLQI109

0.61 (0.49, 0.74) 0.49 (0.37, 0.62) 0.57 (0.48, 0.66) 0.11 (0.02, 0.21) −0.12 (−0.26, 0.02)
p=0.10
−0.46 (−0.56, −0.35)
p<0.001
−0.34 (−0.51, −0.16)
p<0.001

Problem Partner, Friends, Relative
DLQI108

0.64 (0.52, 0.76) 0.53 (0.40, 0.65) 0.71 (0.63, 0.80) 0.17 (0.08, 0.25) −0.11 (−0.26, 0.03)
p=0.11
−0.55 (−0.65, −0.45)
p<0.001
−0.43 (−0.61, −0.26)
p<0.001

Prevented Working or Studying
DLQI107

0.26 (0.14, 0.38) 0.20 (0.07, 0.32) 0.38 (0.29, 0.47) 0.03 (−0.06, 0.12) −0.06 (−0.22, 0.10)
p=0.44
−0.35 (−0.46, −0.23)
p<0.001
−0.28 (−0.48, −0.09)
p=0.005
LS0tDQp0aXRsZTogICI8aDQ+IDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9WSVMtU0lHL1dvbmRlcmZ1bC1XZWRuZXNkYXlzL3RyZWUvbWFzdGVyL2RhdGEvMjAyMS8yMDIxLTAxLTEzJz4gVmlzdWFsaXphdGlvbiBvZiBETFFJIE1peGVkIE1vZGVscyBSZXN1bHRzPC9hPiBieSBBZ3VzdGluIENhbGF0cm9uaSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBzZWxmX2NvbnRhaW5kZWQ6IFRSVUUNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICB0b2M6IGZhbHNlDQotLS0NCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCi5tYWluLWNvbnRhaW5lciB7DQptYXgtd2lkdGg6IDEyMDBweDsNCm1hcmdpbi1sZWZ0OiBhdXRvOw0KbWFyZ2luLXJpZ2h0OiBhdXRvO30NCjwvc3R5bGU+DQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Kb3B0aW9ucyh3aWR0aCA9IDIwMCkNCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIGV2YWwgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgY29tbWVudCA9IE5BLCBjYWNoZSA9IEZBTFNFKQ0KYGBgDQoNCmBgYHtyIHBhY2thZ2VzfQ0KcGFjbWFuOjpwX2xvYWQocmlvLCB0aWR5dmVyc2UpDQpwYWNtYW46OnBfbG9hZChsbWU0LCBlbW1lYW5zKQ0KcGFjbWFuOjpwX2xvYWQoZ2dkaXN0LCBkaXN0cmlidXRpb25hbCkNCnBhY21hbjo6cF9sb2FkKGd0c3VtbWFyeSkNCiNkZXZ0b29sczo6aW5zdGFsbF9naXRodWIoInRldW5icmFuZC9nZ2g0eCIpDQpsaWJyYXJ5KGdnaDR4KQ0KcGFjbWFuOjpwX2xvYWQoZ2dkZW5kcm8pDQpwYWNtYW46OnBfbG9hZChnZ3RleHQpDQpwYWNtYW46OnBfbG9hZChwYXRjaHdvcmspDQpwYWNtYW46OnBfbG9hZChndCkNCmBgYA0KDQpgYGB7ciBpbXBvcnQgZGF0YX0NCmRmMSA8LSBpbXBvcnQoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9WSVMtU0lHL1dvbmRlcmZ1bC1XZWRuZXNkYXlzL21hc3Rlci9kYXRhLzIwMjEvMjAyMS0wMS0xMy93dzIwMjBfZGxxaS5jc3YiKSAlPiUgDQogICBkcm9wX25hKERMUUlfU0NPUkUpICU+JSANCiAgIG11dGF0ZShWSVNJVF9pID0gYXMuaW50ZWdlcihhcy5mYWN0b3IoVklTSVQpKSkNCg0KZXhwb3J0KGRmMSwgImRscWlfbWl4ZWQuY3N2IikNCmBgYA0KDQpgYGB7ciBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KIyBmdW4gY29kZSB0byBkZXJpdmUgY2hhbmdlDQpkZjFfY2hnIDwtIGltcG9ydCgiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1ZJUy1TSUcvV29uZGVyZnVsLVdlZG5lc2RheXMvbWFzdGVyL2RhdGEvMjAyMS8yMDIxLTAxLTEzL3d3MjAyMF9kbHFpLmNzdiIpICU+JSANCiAgIHNlbGVjdChVU1VCSklELCBWSVNJVCwgVFJULCBzdGFydHNfd2l0aCgiRExRSSIpKSAlPiUgDQogICBhcnJhbmdlKFVTVUJKSUQsIFZJU0lUKSAlPiUgDQogICBncm91cF9ieShVU1VCSklELCBUUlQpICU+JSANCiAgICMgZmlsdGVyKG4oKSA+IDEpICU+JSAjIGtlZXAgcGFydGljaXBhbnRzIHdpdGggMiB2aXNpdHMNCiAgIHRyYW5zbXV0ZShhY3Jvc3Moc3RhcnRzX3dpdGgoIkRMUUkiKSwgfi54IC0gbGFnKC54KSwgLm5hbWVzID0gInsuY29sfV9DSEciKSkgJT4lDQogICByb3d3aXNlKCkgJT4lIA0KICAgZmlsdGVyKCBzdW0oaXMubmEoY19hY3Jvc3Moc3RhcnRzX3dpdGgoIkRMUUkiKSkpKSA8IDExICkNCmBgYA0KDQpgYGB7ciB2YXJpYWJsZSBsYWJlbHN9DQpkbCA8LSBjKERMUUkxMDEgPQknSG93IEl0Y2h5LCBTb3JlLCBQYWluZnVsLCBTdGluZ2luZyA8YnI+PGJyPkRMUUkxMDEnLA0KICAgICAgICBETFFJMTAyID0JJ0hvdyBFbWJhcnJhc3NlZCwgU2VsZiBDb25zY2lvdXMgPGJyPjxicj5ETFFJMTAyJywNCiAgICAgICAgRExRSTEwMyA9CSdJbnRlcmZlcmVkIFNob3BwaW5nLCBIb21lLCBZYXJkIDxicj48YnI+RExRSTEwMycsDQogICAgICAgIERMUUkxMDQgPQknSW5mbHVlbmNlZCBDbG90aGVzIFlvdSBXZWFyIDxicj48YnI+RExRSTEwNCcsDQogICAgICAgIERMUUkxMDUgPQknQWZmZWN0ZWQgU29jaWFsLCBMZWlzdXJlIEFjdGl2aXR5IDxicj48YnI+RExRSTEwNScsDQogICAgICAgIERMUUkxMDYgPQknTWFkZSBJdCBEaWZmaWN1bHQgdG8gRG8gQW55IFNwb3J0cyA8YnI+PGJyPkRMUUkxMDYnLA0KICAgICAgICBETFFJMTA3ID0JJ1ByZXZlbnRlZCBXb3JraW5nIG9yIFN0dWR5aW5nIDxicj48YnI+RExRSTEwNycsDQogICAgICAgIERMUUkxMDggPQknUHJvYmxlbSBQYXJ0bmVyLCBGcmllbmRzLCBSZWxhdGl2ZSA8YnI+PGJyPkRMUUkxMDgnLA0KICAgICAgICBETFFJMTA5ID0JJ0NhdXNlZCBBbnkgU2V4dWFsIERpZmZpY3VsdGllcyA8YnI+PGJyPkRMUUkxMDknLA0KICAgICAgICBETFFJMTEwID0JJ0hvdyBNdWNoIGEgUHJvYmxlbSBpcyBUcmVhdG1lbnQgPGJyPjxicj5ETFFJMTEwJywNCiAgICAgICAgRExRSV9TQ09SRSA9CScqKkRMUUkgVG90YWwgU2NvcmUqKiA8YnI+PGJyPkRMUUlfU0NPUkUnKQ0KDQpjbCA8LSBjKE1FQU4gID0gIlRSVCBieSBWSVNJVCIsDQogICAgICAgIERJRkYgID0gIldpdGhpbiBUUlQgYmV0d2VlbiBWSVNJVCBEaWZmZXJlbmNlcyIsDQogICAgICAgIERFTFRBID0gIkJldHdlZW4gVFJUIGJldHdlZW4gVklTSVQgRGlmZmVyZW5jZSIpDQpgYGANCg0KYGBge3IgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCiMgTWluaSBNaXhlZC1Nb2RlbCBleGFtcGxlDQptIDwtIGxtZXIoRExRSV9TQ09SRSB+IFZJU0lUKlRSVCArICgxfFVTVUJKSUQpLCBkYXRhID0gZGYxKQ0KZSA8LSBlbW1lYW5zKG0sIH4gVklTSVQqVFJUKQ0KcyA8LSBlZmZfc2l6ZShlLCBzaWdtYSA9IHNpZ21hKG0pLCBlZGYgPSA3MDAsIG1ldGhvZCA9ICdpZGVudGl0eScpDQpjIDwtIGNvbnRyYXN0KGUsIG1ldGhvZCA9IGxpc3QoZGlmZl9hID0gYygtMSwgMSwgIDAsIDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZfYiA9IGMoIDAsIDAsIC0xLCAxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX2QgPSBjKDEsIC0xLCAtMSwgMSkpKQ0KZiA8LSBlZmZfc2l6ZShjLCBzaWdtYSA9IHNpZ21hKG0pLCBlZGYgPSA3MDAsIG1ldGhvZCA9ICdpZGVudGl0eScpDQoNCnN1bW1hcnkoZSwgaW5mZXIgPSBUUlVFKQ0Kc3VtbWFyeShjLCBpbmZlciA9IFRSVUUpDQoNCiMgTWluaSBSZXBlYXRlZCBNaXhlZC1Nb2RlbCBleGFtcGxlDQpwYWNtYW46OnBfbG9hZChubG1lKQ0KbSA8LSBnbHMoRExRSV9TQ09SRSB+IFZJU0lUKlRSVCwNCiAgICAgICAgIGRhdGEgPSBkZjEsDQogICAgICAgICBtZXRob2QgPSAiUkVNTCIsDQogICAgICAgICBjb3JyZWxhdGlvbiA9IG5sbWU6OmNvclN5bW0oIGZvcm0gPSB+VklTSVRfaXxVU1VCSklEKSwNCiAgICAgICAgIHdlaWdodHMgICAgID0gbmxtZTo6dmFySWRlbnQoZm9ybSA9IH4xfFZJU0lUKSkNCg0KZSA8LSBlbW1lYW5zKG0sIH4gVklTSVQqVFJULCBtb2RlID0gImRmLmVycm9yIikNCnMgPC0gZWZmX3NpemUoZSwgc2lnbWEgPSBzaWdtYShtKSwgZWRmID0gNzAwLCBtZXRob2QgPSAnaWRlbnRpdHknKQ0KYyA8LSBjb250cmFzdChlLCBtZXRob2QgPSBsaXN0KGRpZmZfYSA9IGMoLTEsIDEsICAwLCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX2IgPSBjKCAwLCAwLCAtMSwgMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9kID0gYygxLCAtMSwgLTEsIDEpKSkNCmYgPC0gZWZmX3NpemUoYywgc2lnbWEgPSBzaWdtYShtKSwgZWRmID0gNzAwLCBtZXRob2QgPSAnaWRlbnRpdHknKQ0KDQpzdW1tYXJ5KGUsIGluZmVyID0gVFJVRSkNCnN1bW1hcnkoYywgaW5mZXIgPSBUUlVFKQ0KDQojIE1pbmkgYmF5ZXNpYW4gZXhhbXBsZQ0KcGFjbWFuOjpwX2xvYWQoYnJtcykNCm0gPC0gYnJtKERMUUlfU0NPUkUgfiBWSVNJVCpUUlQgKyAoMSB8IFVTVUJKSUQpLCBkYXRhID0gZGYxLCBmYW1pbHkgPSBnYXVzc2lhbigpKQ0KZSA8LSBlbW1lYW5zKG0sIH4gVklTSVQqVFJULCBwb2ludC5lc3QgPSBtZWFuKQ0KcyA8LSBjb250cmFzdChlLCBtZXRob2QgPSBsaXN0KGRpZmZfYSA9IGMoLTEsIDEsICAwLCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX2IgPSBjKCAwLCAwLCAtMSwgMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9kID0gYygxLCAtMSwgLTEsIDEpKSkNCg0Kc3VtbWFyeShlLCBwb2ludC5lc3QgPSBtZWFuLCBpbmZlciA9IFRSVUUpDQpzdW1tYXJ5KHMsIHBvaW50LmVzdCA9IG1lYW4sIGluZmVyID0gVFJVRSkNCmBgYA0KDQpgYGB7ciBydW4gQUxMIG1vZGVsc30NCmRmMiA8LSBkZjEgJT4lIA0KICAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjb250YWlucygiRExRSSIpLA0KICAgICAgICAgICAgICAgIG5hbWVzX3RvID0gIlZBUiIsDQogICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gIlZBTCIpICU+JSANCiAgIG5lc3RfYnkoVkFSKSAlPiUgDQogICBtdXRhdGUobSA9IGxpc3QoIGxtZXIoVkFMIH4gVklTSVQqVFJUICsgKDF8VVNVQkpJRCksIGRhdGEgPSBkYXRhKSApLCANCiAgICAgICAgICBlID0gbGlzdCggZW1tZWFucyhtLCB+IFZJU0lUKlRSVCkgKSwNCiAgICAgICAgICBzID0gbGlzdCggZWZmX3NpemUoZSwgc2lnbWEgPSBzaWdtYShtKSwgZWRmID0gNzAwLCBtZXRob2QgPSAnaWRlbnRpdHknKSApLA0KICAgICAgICAgIGMgPSBsaXN0KCBjb250cmFzdChlLCBtZXRob2QgPSBsaXN0KGRpZmZfYSA9IGMoLTEsIDEsICAwLCAwKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX2IgPSBjKCAwLCAwLCAtMSwgMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZl9kID0gYygxLCAtMSwgLTEsIDEpKSkgKSwNCiAgICAgICAgICBmID0gbGlzdCggZWZmX3NpemUoYywgc2lnbWEgPSBzaWdtYShtKSwgZWRmID0gNzAwLCBtZXRob2QgPSAnaWRlbnRpdHknKSApLA0KICAgICAgICAgIHIgPSBsaXN0KA0KICAgICAgICAgICAgIGJpbmRfcm93cygNCiAgICAgICAgICAgICAgICBzdW1tYXJ5KGUsIGluZmVyID0gVFJVRSkgJT4lIGFzLmRhdGEuZnJhbWUoKSwNCiAgICAgICAgICAgICAgICBzdW1tYXJ5KGMsIGluZmVyID0gVFJVRSkgJT4lIGFzLmRhdGEuZnJhbWUoKSAlPiUgDQogICAgICAgICAgICAgICAgICAgcmVuYW1lKGVtbWVhbiA9IGVzdGltYXRlLCBUUlQgPSBjb250cmFzdCkgKSAlPiUgDQogICAgICAgICAgICAgICAgbXV0YXRlKGNvbnRyYXN0ID0gcGFzdGUoVklTSVQsIFRSVCkpDQogICAgICAgICAgKSwNCiAgICAgICAgICBnID0gbGlzdCgNCiAgICAgICAgICAgICBiaW5kX3Jvd3MoDQogICAgICAgICAgICAgICAgc3VtbWFyeShzLCBpbmZlciA9IFRSVUUpICU+JSBhcy5kYXRhLmZyYW1lKCksDQogICAgICAgICAgICAgICAgc3VtbWFyeShmLCBpbmZlciA9IFRSVUUpICU+JSBhcy5kYXRhLmZyYW1lKCkgICkNCiAgICAgICAgICApLA0KICAgKQ0KYGBgDQoNCg0KYGBge3IgdW5uZXN0IHJhd30NCmRmMyA8LSBkZjIgJT4lIA0KICAgc2VsZWN0KFZBUiwgcikgJT4lIA0KICAgdW5uZXN0KHIpICU+JSANCiAgIG11dGF0ZShjb250cmFzdCA9IHN0cl9yZW1vdmUoY29udHJhc3QsICJOQSAiKSkgJT4lIA0KICAgbXV0YXRlKEdSUCA9IGNhc2Vfd2hlbigNCiAgICAgIGNvbnRyYXN0ICAlaW4lIGMoIkJhc2VsaW5lIEEiLCAiV2VlayAxNiBBIiwNCiAgICAgICAgICAgICAgICAgICAgICAgIkJhc2VsaW5lIEIiLCAiV2VlayAxNiBCIikgfiAiTUVBTiIsDQogICAgICBjb250cmFzdCAgJWluJSBjKCJkaWZmX2EiLCAiZGlmZl9iIikgICAgICAgIH4gIkRJRkYiLA0KICAgICAgY29udHJhc3QgICVpbiUgYygiZGlmZl9kIikgICAgICAgICAgICAgICAgICB+ICJERUxUQSIpDQogICApICU+JSANCiAgIG11dGF0ZShUUlQgPSBjYXNlX3doZW4oDQogICAgICBjb250cmFzdCAgJWluJSBjKCJCYXNlbGluZSBBIiwgIldlZWsgMTYgQSIsICJkaWZmX2EiKSB+ICJBIiwNCiAgICAgIGNvbnRyYXN0ICAlaW4lIGMoIkJhc2VsaW5lIEIiLCAiV2VlayAxNiBCIiwgImRpZmZfYiIpIH4gIkIiKQ0KICAgKSAlPiUgDQogICBtdXRhdGUoVklTSVQgPSBjYXNlX3doZW4oDQogICAgICBjb250cmFzdCAgJWluJSBjKCJCYXNlbGluZSBBIiwgIkJhc2VsaW5lIEIiKSB+ICJCYXNlbGluZSIsDQogICAgICBjb250cmFzdCAgJWluJSBjKCJXZWVrIDE2IEEiLCAiV2VlayAxNiBCIikgICB+ICJXZWVrIDE2IikNCiAgICkNCmBgYA0KDQpgYGB7ciB1bm5lc3QgU3RhbmRhcmRpemVkfQ0KZGYzcyA8LSBkZjIgJT4lIA0KICAgc2VsZWN0KFZBUiwgZykgJT4lIA0KICAgdW5uZXN0KGcpICU+JSANCiAgIG11dGF0ZShHUlAgPSBjYXNlX3doZW4oDQogICAgICBjb250cmFzdCAgJWluJSBjKCJCYXNlbGluZSBBIiwgIldlZWsgMTYgQSIsDQogICAgICAgICAgICAgICAgICAgICAgICJCYXNlbGluZSBCIiwgIldlZWsgMTYgQiIpIH4gIk1FQU4iLA0KICAgICAgY29udHJhc3QgICVpbiUgYygiZGlmZl9hIiwgImRpZmZfYiIpICAgICAgICB+ICJESUZGIiwNCiAgICAgIGNvbnRyYXN0ICAlaW4lIGMoImRpZmZfZCIpICAgICAgICAgICAgICAgICAgfiAiREVMVEEiKQ0KICAgKSAlPiUgDQogICBtdXRhdGUoVFJUID0gY2FzZV93aGVuKA0KICAgICAgY29udHJhc3QgICVpbiUgYygiQmFzZWxpbmUgQSIsICJXZWVrIDE2IEEiLCAiZGlmZl9hIikgfiAiQSIsDQogICAgICBjb250cmFzdCAgJWluJSBjKCJCYXNlbGluZSBCIiwgIldlZWsgMTYgQiIsICJkaWZmX2IiKSB+ICJCIikNCiAgICkgJT4lIA0KICAgbXV0YXRlKFZJU0lUID0gY2FzZV93aGVuKA0KICAgICAgY29udHJhc3QgICVpbiUgYygiQmFzZWxpbmUgQSIsICJCYXNlbGluZSBCIikgfiAiQmFzZWxpbmUiLA0KICAgICAgY29udHJhc3QgICVpbiUgYygiV2VlayAxNiBBIiwgIldlZWsgMTYgQiIpICAgfiAiV2VlayAxNiIpDQogICApIA0KYGBgDQoNCmBgYHtyIGRlbmRvZ3JhbTF9DQp5MSA8LSBkZjEgJT4lIA0KICAgI2ZpbHRlcihWSVNJVCA9PSAiQmFzZWxpbmUiKSAlPiUgDQogICBzZWxlY3Qoc3RhcnRzX3dpdGgoIkRMUUkiKSkNCg0KYzEgPC0gY29yKHkxLCBtZXRob2Q9InBlYXJzb24iKQ0KZDEgPC0gYXMuZGlzdCgxLWMxKQ0KaDEgPC0gaGNsdXN0KGQxLCBtZXRob2QgPSAiY29tcGxldGUiKQ0KDQpnZ19kMSA8LSBnZ2RlbmRyb2dyYW0oaDEsIHJvdGF0ZSA9IFRSVUUpICsNCiAgIGxhYnModGl0bGUgPSAiICIpICsNCiAgIHRoZW1lX2RlbmRybygpICsNCiAgIHRoZW1lKHBsb3QubWFyZ2luID0gbWFyZ2luKDAsIDAsIDAsIDAsICJwdCIpKQ0KDQpkZjNzIDwtIGRmM3MgJT4lIA0KICAgbXV0YXRlKFZBUiA9IGZhY3RvcihWQVIsIGxldmVscyA9IHJldihoMSRsYWJlbHNbaDEkb3JkZXJdKSApLA0KICAgICAgICAgIEdSUCA9IGZhY3RvcihHUlAsIGxldmVscyA9IGMoIk1FQU4iLCJESUZGIiwiREVMVEEiKSkgKQ0KDQpkZjMgPC0gZGYzICU+JSANCiAgIG11dGF0ZShWQVIgPSBmYWN0b3IoVkFSLCBsZXZlbHMgPSByZXYoaDEkbGFiZWxzW2gxJG9yZGVyXSkgKSwNCiAgICAgICAgICBHUlAgPSBmYWN0b3IoR1JQLCBsZXZlbHMgPSBjKCJNRUFOIiwiRElGRiIsIkRFTFRBIikpICkNCmBgYA0KDQoNCmBgYHtyIHRhYmxlIGRhdGF9DQpkZjQgPC0gZGYzICU+JSANCiAgIHNlbGVjdChWQVIsIEMgPSBjb250cmFzdCwgRSA9IGVtbWVhbiwgTCA9IGxvd2VyLkNMLCBVID0gdXBwZXIuQ0wsIFAgPSBwLnZhbHVlKSAlPiUNCiAgIG11dGF0ZShDID0gZmFjdG9yKEMsIGxhYmVscyA9IGMoIkJfQSIsIkJfQiIsIkRfQSIsIkRfQiIsIkRfRCIsIldfQSIsIldfQiIpKSAlPiUgDQogICAgICAgICAgICAgZmN0X3JlbGV2ZWwoIkJfQSIsIkJfQiIsIldfQSIsIldfQiIsIkRfQSIsIkRfQiIsIkRfRCIpDQogICApICU+JSANCiAgIHBpdm90X3dpZGVyKGlkX2NvbHMgPSBWQVIsDQogICAgICAgICAgICAgICBuYW1lc19mcm9tID0gQywNCiAgICAgICAgICAgICAgIHZhbHVlc19mcm9tID0gYyhFLCBMLCBVLCBQKSkNCg0KZGY0cyA8LSBkZjNzICU+JSANCiAgIHNlbGVjdChWQVIsIEMgPSBjb250cmFzdCwgRSA9IGVmZmVjdC5zaXplLCBMID0gbG93ZXIuQ0wsIFUgPSB1cHBlci5DTCwgUCA9IHAudmFsdWUpICU+JQ0KICAgbXV0YXRlKEMgPSBmYWN0b3IoQywgbGFiZWxzID0gYygiQl9BIiwiQl9CIiwiRF9BIiwiRF9CIiwiRF9EIiwiV19BIiwiV19CIikpICU+JSANCiAgICAgICAgICAgICBmY3RfcmVsZXZlbCgiQl9BIiwiQl9CIiwiV19BIiwiV19CIiwiRF9BIiwiRF9CIiwiRF9EIikNCiAgICkgJT4lIA0KICAgcGl2b3Rfd2lkZXIoaWRfY29scyA9IFZBUiwNCiAgICAgICAgICAgICAgIG5hbWVzX2Zyb20gPSBDLA0KICAgICAgICAgICAgICAgdmFsdWVzX2Zyb20gPSBjKEUsIEwsIFUsIFApKQ0KDQpkZjUgPC0gYmluZF9yb3dzKGRmNCAlPiUgbXV0YXRlKE1PREVMID0gIlJhdyIpLA0KICAgICAgICAgICAgICAgICBkZjRzICU+JSBtdXRhdGUoTU9ERUwgPSAiU3RhbmRhcmRpemVkIikpDQpgYGANCg0KYGBge3IgZ2dfZjF9DQojIEZpZ3VyZSBGMQ0KZ2dfZjEgPC0gZ2dwbG90KGRhdGEgPSBkZjNzLA0KICAgICAgICAgICAgICAgIGFlcyh4ID0gZWZmZWN0LnNpemUsDQogICAgICAgICAgICAgICAgICAgIHkgPSBWQVIpKSArDQogICBnZW9tX3ZsaW5lKGRhdGEgPSB0cmliYmxlKH5HUlAsIH5WQUwsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNRUFOIiwgTkEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJESUZGIiwgMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRFTFRBIiwwKSAlPiUgDQogICAgICAgICAgICAgICAgIG11dGF0ZShHUlAgPSBmYWN0b3IoR1JQKSAlPiUgZmN0X3JlbGV2ZWwoIk1FQU4iLCJESUZGIiwiREVMVEEiKSksIA0KICAgICAgICAgICAgICBhZXMoeGludGVyY2VwdCA9IFZBTCksIGNvbG9yID0gJ2dyYXk1MCcgKSArDQogICBnZW9tX3ZsaW5lKGRhdGEgPSBkZjNzICU+JSANCiAgICAgICAgICAgICAgICAgZmlsdGVyKEdSUCA9PSAiTUVBTiIsIFZJU0lUID09ICJCYXNlbGluZSIpICU+JSANCiAgICAgICAgICAgICAgICAgc2VsZWN0KEdSUCwgVkFSLCBlZmZlY3Quc2l6ZSkgJT4lIA0KICAgICAgICAgICAgICAgICBncm91cF9ieShHUlAsIFZBUikgJT4lDQogICAgICAgICAgICAgICAgIHN1bW1hcml6ZSh4aW50ID0gbWVhbihlZmZlY3Quc2l6ZSkpLA0KICAgICAgICAgICAgICBhZXMoeGludGVyY2VwdCA9IHhpbnQpLCBjb2xvciA9ICdncmF5NTAnKSArDQogICBzdGF0X2Rpc3RfaGFsZmV5ZShnZ3N1YnNldChUUlQgPT0gIkEiKSwNCiAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcgPSBhZXMoZmlsbDEgPSBjb250cmFzdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IxID0gY29udHJhc3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3QgPSBkaXN0X3N0dWRlbnRfdChkZiA9IGRmLCBtdSA9IGVmZmVjdC5zaXplLCBzaWdtYSA9IFNFKSksDQogICAgICAgICAgICAgICAgICAgICAud2lkdGggPSBjKDAuOTUpLA0KICAgICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUsDQogICAgICAgICAgICAgICAgICAgICBqdXN0aWZpY2F0aW9uID0gLTAuMTAsDQogICAgICAgICAgICAgICAgICAgICBzaXplID0gMSwNCiAgICAgICAgICAgICAgICAgICAgIHNpZGUgPSAndG9wJykgKw0KICAgc3RhdF9kaXN0X2hhbGZleWUoZ2dzdWJzZXQoVFJUID09ICJCIiksDQogICAgICAgICAgICAgICAgICAgICBtYXBwaW5nID0gYWVzKGZpbGwyID0gY29udHJhc3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yMiA9IGNvbnRyYXN0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0ID0gZGlzdF9zdHVkZW50X3QoZGYgPSBkZiwgbXUgPSBlZmZlY3Quc2l6ZSwgc2lnbWEgPSBTRSkpLA0KICAgICAgICAgICAgICAgICAgICAgLndpZHRoID0gYygwLjk1KSwNCiAgICAgICAgICAgICAgICAgICAgIGFscGhhID0gMC41LA0KICAgICAgICAgICAgICAgICAgICAganVzdGlmaWNhdGlvbiA9IDEuMTAsDQogICAgICAgICAgICAgICAgICAgICBzaXplID0gMSwNCiAgICAgICAgICAgICAgICAgICAgIHNpZGUgPSAnYm90dG9tJykgKw0KICAgc3RhdF9kaXN0X2hhbGZleWUoZ2dzdWJzZXQoR1JQID09ICJERUxUQSIpLA0KICAgICAgICAgICAgICAgICAgICAgbWFwcGluZyA9IGFlcyhkaXN0ID0gZGlzdF9zdHVkZW50X3QoZGYgPSBkZiwgbXUgPSBlZmZlY3Quc2l6ZSwgc2lnbWEgPSBTRSkpLA0KICAgICAgICAgICAgICAgICAgICAgLndpZHRoID0gYygwLjk1KSwNCiAgICAgICAgICAgICAgICAgICAgIHNpemUgPSAxLA0KICAgICAgICAgICAgICAgICAgICAgc2lkZSA9ICdib3RoJykgKw0KICAgZ2VvbV9yaWNodGV4dChnZ3N1YnNldChHUlAgPT0gIkRFTFRBIiksDQogICAgICAgICAgICAgICAgIG1hcHBpbmcgPSBhZXMoeSA9IDEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9IDMuNywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IHN0cl9nbHVlKCJ7c3R5bGVfcmF0aW8oZWZmZWN0LnNpemUpfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7c3R5bGVfcmF0aW8obG93ZXIuQ0wpfSwge3N0eWxlX3JhdGlvKHVwcGVyLkNMKX0pIDxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3R5bGVfcHZhbHVlKHAudmFsdWUsIDIsIHByZXBlbmRfcCA9IFRSVUUpfSIpKSwNCiAgICAgICAgICAgICAgICAgc2l6ZSA9IDIuNSwNCiAgICAgICAgICAgICAgICAgaGp1c3QgPSAiaW53YXJkIiwNCiAgICAgICAgICAgICAgICAgY29sb3IgPSAnZ3JheTc1JywNCiAgICAgICAgICAgICAgICAgdGV4dC5jb2xvciA9ICdibGFjaycsDQogICAgICAgICAgICAgICAgIGZpbGwgPSAnd2hpdGUnKSArDQogICBzY2FsZV9saXN0ZWQoc2NhbGVsaXN0ID0gbGlzdCgNCiAgICAgIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyAgPSBSQ29sb3JCcmV3ZXI6OmJyZXdlci5wYWwoOSwiQmx1ZXMiKVtjKDUsNyw4KV0sICBhZXN0aGV0aWNzID0gImZpbGwxIiksDQogICAgICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgID0gUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKDksIkdyZWVucyIpW2MoNSw3LDgpXSwgYWVzdGhldGljcyA9ICJmaWxsMiIpLA0KICAgICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IFJDb2xvckJyZXdlcjo6YnJld2VyLnBhbCg5LCJCbHVlcyIpW2MoNSw3LDgpXSwgIGFlc3RoZXRpY3MgPSAiY29sb3IxIiksDQogICAgICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzID0gUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKDksIkdyZWVucyIpW2MoNSw3LDgpXSwgYWVzdGhldGljcyA9ICJjb2xvcjIiKSksIA0KICAgICAgcmVwbGFjZXMgPSBjKCJmaWxsIiwgImZpbGwiLCAiY29sb3IiLCAiY29sb3IiKSkgKw0KICAgZmFjZXRfZ3JpZChWQVIgfiBHUlAsDQogICAgICAgICAgICAgIHNjYWxlcyA9ICdmcmVlX3knLA0KICAgICAgICAgICAgICBzd2l0Y2ggPSAneScsDQogICAgICAgICAgICAgIGxhYmVsbGVyID0gbGFiZWxsZXIoVkFSID0gZGwsIEdSUCA9IGNsKSkgKw0KICAgI2ZvcmNlX3BhbmVsc2l6ZXMoY29scyA9IGMoMywyLDIpKSArDQogICBzY2FsZV95X2Rpc2NyZXRlKHBvc2l0aW9uID0gInJpZ2h0IikgKw0KICAgbGFicyh4ID0gIlN0YW5kYXJkaXplZCBlZmZlY3Qtc2l6ZSAoX0NvaGVuJ3MgZF8pIiwNCiAgICAgICAgeSA9IE5VTEwpICsNCiAgIHRoZW1lX2J3KCkgKw0KICAgdGhlbWUocGxvdC5tYXJnaW4gPSBtYXJnaW4oNS41LCAwLCA1LjUsIDUuNSwgInB0IiksDQogICAgICAgICBsZWdlbmQucG9zaXRpb24gICA9ICJub25lIiwNCiAgICAgICAgIHN0cmlwLnRleHQueS5sZWZ0ID0gZWxlbWVudF9tYXJrZG93bihhbmdsZSA9IDAsIGhqdXN0ID0gMSksDQogICAgICAgICBzdHJpcC5wbGFjZW1lbnQgICA9ICJvdXRzaWRlIiwgDQogICAgICAgICBheGlzLnRpY2tzLnkucmlnaHQgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICBheGlzLnRleHQueS5yaWdodCAgPSBlbGVtZW50X2JsYW5rKCksDQogICAgICAgICBheGlzLnRpdGxlLnggPSBlbGVtZW50X21hcmtkb3duKGhqdXN0ID0gMC41KQ0KICAgKQ0KYGBgDQoNCiMjIyMgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KIyMjIyMgRmlndXJlDQoNCmBgYHtyIGdnX2YxIGNvbWJpbmVkLCBmaWcuaGVpZ2h0ID0gOS41LCBmaWcud2lkdGggPSAxMn0NCmdnX2YxICsgZ2dfZDEgKw0KICAgcGxvdF9sYXlvdXQod2lkdGhzID0gYyg2LDEpKSArDQogICBwbG90X2Fubm90YXRpb24oDQogICAgICB0aXRsZSAgICAgPSAiUGhhc2UgMyBSYW5kb21pemVkIENsaW5pY2FsIFRyaWFsIE1peGVkLU1vZGVsIFJlc3VsdHMgZXZhbHVhdGluZyBxdWFsaXR5IG9mIGxpZmUgKipETFFJIFRvdGFsIFNjYWxlKiogJiBJbmRpdmlkdWFsIFN1YnNjYWxlcyIsDQogICAgICBzdWJ0aXRsZSAgPSAiU3RhbmRhcmRpemVkIEVmZmVjdHMgKE1FQU4pIGFuZCA5NSUgQ0kgZm9yIA0KICAgICAgPHNwYW4gc3R5bGU9J2NvbG9yOiMyMTcxQjU7Jz48Yj5QbGFjZWJvIChuPTE1MCkgPC9iPjwvc3Bhbj4gYW5kIA0KICAgICAgPHNwYW4gc3R5bGU9J2NvbG9yOiMyMzhCNDU7Jz48Yj5BY3RpdmUgKG49NDUwKSA8L2I+PC9zcGFuPiBhdA0KICAgICAgPHNwYW4gc3R5bGU9J2NvbG9yOiM2QkFFRDY7Jz5CYXNlbGluZTwvc3Bhbj58PHNwYW4gc3R5bGU9J2NvbG9yOiM3NEM0NzY7Jz5CYXNlbGluZTwvc3Bhbj4gYW5kIA0KICAgICAgPHNwYW4gc3R5bGU9J2NvbG9yOiMyMTcxQjU7Jz5XZWVrIDE2PC9zcGFuPnw8c3BhbiBzdHlsZT0nY29sb3I6IzIzOEI0NTsnPldlZWsgMTY8L3NwYW4+DQogICAgICA8c3BhbiBzdHlsZT0nZm9udC1zaXplOjhwdDsgY29sb3I6YmxhY2snPnZlcnRpY2FsIGxpbmVzIGFyZSBtZWFuIHJlc3VsdHMgYXQgQmFzZWxpbmU8L3NwYW4+IDxicj4NCiAgICAgIFN0YW5kYXJkaXplZCBEaWZmZXJlbmNlIChERUxUQSkgYW5kIDk1JSBDSSBiZXR3ZWVuIFZJU0lUIHdpdGhpbiBUUlQgKGkuZS4NCiAgICAgIDxzcGFuIHN0eWxlPSdjb2xvcjojMjM4QjQ1Oyc+PGI+QWN0aXZlPC9iPjwvc3Bhbj4NCiAgICAgIDxzcGFuIHN0eWxlPSdjb2xvcjojMjM4QjQ1Oyc+KFdlZWsgMTY8L3NwYW4+IC0NCiAgICAgIDxzcGFuIHN0eWxlPSdjb2xvcjojNzRDNDc2Oyc+QmFzZWxpbmUpPC9zcGFuPg0KICAgICAgPHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZTo4cHQ7IGNvbG9yOmJsYWNrJz5vdmVybGFwcGluZyBkZW5zaXRpZXMgdG8gdGhlIHZlcnRpY2FsIGxpbmVzIG5vdCBzaWduaWZpY2FudCBkaWZmZXJlbnQgZnJvbSAwPC9zcGFuPiA8YnI+DQogICAgICBTdGFuZGFyZGl6ZWQgRGlmZmVyZW5jZSAoREVMVEEtREVMVEEpIGFuZCA5NSUgQ0kgYmV0d2VlbiBUUlQgYmV0d2VlbiBWSVNJVCA8YnI+DQogICAgICBIaWVyYXJjaGljYWwgQ2x1c3RlcmluZyBkZW5kcm9ncmFtIHJlc3VsdHMgb2YgUGVhcnNvbiBjb3JyZWxhdGlvbiBiZXR3ZWVuICoqRExRSSBUb3RhbCoqICYgSW5kaXZpZHVhbCBTdWJzY2FsZXMiLA0KICAgICAgdGhlbWUgPSB0aGVtZShwbG90LnRpdGxlLnBvc2l0aW9uID0gInBsb3QiLA0KICAgICAgICAgICAgICAgICAgICBwbG90LnRpdGxlICAgID0gZWxlbWVudF9tYXJrZG93bihsaW5laGVpZ2h0ID0gMS4xKSwNCiAgICAgICAgICAgICAgICAgICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfbWFya2Rvd24obGluZWhlaWdodCA9IDEuMSkpDQogICApDQpgYGANCg0KIyMjIyMgVGFibGUNCmBgYHtyfQ0KIyAxLUVTVElNQVRFIEVzdGltYXRlLCBMb3dlciwgVXBwZXIsIFB2YWx1ZQ0KIyAyLVRJTUUgICAgIEJhc2VsaW5lLCBXZWVrLCBEaWZmICANCiMgMy1HUk9VUCAgICBBLCBCLCBEaWZmDQpkbDIgPC0gZGF0YS5mcmFtZShMQUIgPSBkbCkgJT4lIA0KICAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJWQVIiKSAlPiUgDQogICBtdXRhdGUoTEFCID0gc3RyX3JlbW92ZShMQUIsICI8YnI+IikpDQoNCmRmNHMgJT4lIA0KICAgc2VsZWN0KC1QX0JfQSwgLVBfQl9CLCAtUF9XX0EsIC1QX1dfQikgJT4lDQogICBhcnJhbmdlKFZBUikgJT4lIA0KICAgdW5ncm91cCgpICU+JQ0KICAgbGVmdF9qb2luKGRsMikgJT4lIA0KICAgZ3QoKSAlPiUgDQogICBmbXRfbWFya2Rvd24oY29sdW1ucyA9IFRSVUUpICU+JSANCiAgIGZtdF9udW1iZXIoY29sdW1ucyA9IHN0YXJ0c193aXRoKGMoIkVfIiwiTF8iLCJVXyIpKSwgZGVjaW1hbHMgPSAyKSAlPiUgDQogICBmbXQoDQogICAgICBjb2x1bW5zID0gc3RhcnRzX3dpdGgoIlAiKSwNCiAgICAgIGZucyA9IGZ1bmN0aW9uKHgpIHsNCiAgICAgICAgIGd0c3VtbWFyeTo6c3R5bGVfcHZhbHVlKHgsIGRpZ2l0cyA9IDIsIHByZXBlbmRfcCA9IFRSVUUpDQogICAgICB9DQogICApICU+JSANCiAgIGNvbHNfbWVyZ2UoDQogICAgICBjb2x1bW5zID0gdmFycyhFX0JfQSwgTF9CX0EsIFVfQl9BKSwNCiAgICAgIGhpZGVfY29sdW1ucyA9IHZhcnMoTF9CX0EsIFVfQl9BKSwNCiAgICAgIHBhdHRlcm4gPSAiezF9ICh7Mn0sIHszfSkiDQogICApICU+JQ0KICAgY29sc19tZXJnZSgNCiAgICAgIGNvbHVtbnMgPSB2YXJzKEVfV19BLCBMX1dfQSwgVV9XX0EpLA0KICAgICAgaGlkZV9jb2x1bW5zID0gdmFycyhMX1dfQSwgVV9XX0EpLA0KICAgICAgcGF0dGVybiA9ICJ7MX0gKHsyfSwgezN9KSINCiAgICkgJT4lDQogICBjb2xzX21lcmdlKA0KICAgICAgY29sdW1ucyA9IHZhcnMoRV9EX0EsIExfRF9BLCBVX0RfQSwgUF9EX0EpLA0KICAgICAgaGlkZV9jb2x1bW5zID0gdmFycyhMX0RfQSwgVV9EX0EsIFBfRF9BKSwNCiAgICAgIHBhdHRlcm4gPSAiezF9ICh7Mn0sIHszfSk8YnI+ezR9Ig0KICAgKSAlPiUNCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9BKSwNCiAgICAgICAgIHJvd3MgPSBQX0RfQSA8IDAuMDUpDQogICApICU+JSANCiAgIGNvbHNfbWVyZ2UoDQogICAgICBjb2x1bW5zID0gdmFycyhFX0JfQiwgTF9CX0IsIFVfQl9CKSwNCiAgICAgIGhpZGVfY29sdW1ucyA9IHZhcnMoTF9CX0IsIFVfQl9CKSwNCiAgICAgIHBhdHRlcm4gPSAiezF9ICh7Mn0sIHszfSkiDQogICApICU+JSANCiAgIGNvbHNfbWVyZ2UoDQogICAgICBjb2x1bW5zID0gdmFycyhFX1dfQiwgTF9XX0IsIFVfV19CKSwNCiAgICAgIGhpZGVfY29sdW1ucyA9IHZhcnMoTF9XX0IsIFVfV19CKSwNCiAgICAgIHBhdHRlcm4gPSAiezF9ICh7Mn0sIHszfSkiDQogICApICU+JSANCiAgIGNvbHNfbWVyZ2UoDQogICAgICBjb2x1bW5zID0gdmFycyhFX0RfQiwgTF9EX0IsIFVfRF9CLCBQX0RfQiksDQogICAgICBoaWRlX2NvbHVtbnMgPSB2YXJzKExfRF9CLCBVX0RfQiwgUF9EX0IpLA0KICAgICAgcGF0dGVybiA9ICJ7MX0gKHsyfSwgezN9KTxicj57NH0iDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9CKSwNCiAgICAgICAgIHJvd3MgPSBQX0RfQiA8IDAuMDUpDQogICApICU+JQ0KICAgY29sc19tZXJnZSgNCiAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9ELCBMX0RfRCwgVV9EX0QsIFBfRF9EKSwNCiAgICAgIGhpZGVfY29sdW1ucyA9IHZhcnMoTF9EX0QsIFVfRF9ELCBQX0RfRCksDQogICAgICBwYXR0ZXJuID0gInsxfSAoezJ9LCB7M30pPGJyPns0fSINCiAgICkgJT4lIA0KICAgdGFiX3N0eWxlKA0KICAgICAgc3R5bGUgPSBsaXN0KA0KICAgICAgICAgY2VsbF90ZXh0KHdlaWdodCA9ICJib2xkIikNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9EX0QpLA0KICAgICAgICAgcm93cyA9IFBfRF9EIDwgMC4wNSkNCiAgICkgJT4lIA0KICAgIyBjb2xvcnMNCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjNkJBRUQ2IiwNCiAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9CX0EpDQogICAgICApDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjMjE3MUI1IiwNCiAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9XX0EpDQogICAgICApDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjMDg1MTlDIiwNCiAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9EX0EpDQogICAgICApDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjNzRDNDc2IiwNCiAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9CX0IpDQogICAgICApDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjMjM4QjQ1IiwNCiAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9XX0IpDQogICAgICApDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjMDA2RDJDIiwNCiAgICAgICAgICAgICAgICAgICBhbHBoYSA9IDAuNSkNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoRV9EX0IpDQogICAgICApDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfZmlsbChjb2xvciA9ICIjYmZiZmJmIikNCiAgICAgICksDQogICAgICBsb2NhdGlvbnMgPSBjZWxsc19ib2R5KA0KICAgICAgICAgY29sdW1ucyA9IHZhcnMoTEFCLCBFX0RfRCkNCiAgICAgICkNCiAgICkgJT4lIA0KICAgY29sc19tb3ZlX3RvX3N0YXJ0KGNvbHVtbnMgPSB2YXJzKExBQikpICU+JSANCiAgIGNvbHNfaGlkZShjb2x1bW5zID0gdmFycyhWQVIpKSAlPiUgDQogICBjb2xzX2xhYmVsKA0KICAgICAgRV9CX0EgPSAiQmFzZWxpbmUiLA0KICAgICAgRV9XX0EgPSAiV2VlayAxNiIsDQogICAgICBFX0JfQgk9ICJCYXNlbGluZSIsDQogICAgICBFX1dfQgk9ICJXZWVrIDE2IiwNCiAgICAgIEVfRF9BCT0gIlBsYWNlYm8iLA0KICAgICAgRV9EX0IJPSAiQWN0aXZlIiwNCiAgICAgIEVfRF9EID0gIkRpZmZlcmVuY2UiDQogICApICU+JSANCiAgIGNvbHNfd2lkdGgoc3RhcnRzX3dpdGgoYygiRV8iKSkgfiBweCgxMzUpLA0KICAgICAgICAgICAgICB2YXJzKExBQikgfiBweCgyMDApKSAlPiUNCiAgIGNvbHNfYWxpZ24oInJpZ2h0IiwNCiAgICAgICAgICAgICAgY29sdW1ucyA9IHZhcnMoTEFCKSkgJT4lIA0KICAgdGFiX3NwYW5uZXIobGFiZWwgPSAiUGxhY2VibyIsDQogICAgICAgICAgICAgICB2YXJzKEVfQl9BLCBFX1dfQSkpICU+JSANCiAgIHRhYl9zcGFubmVyKGxhYmVsID0gIkFjdGl2ZSIsDQogICAgICAgICAgICAgICB2YXJzKEVfQl9CLCBFX1dfQikpICU+JSANCiAgIHRhYl9zcGFubmVyKGxhYmVsID0gIldpdGhpbiBUUlQgYmV0d2VlbiBWSVNJVCIsDQogICAgICAgICAgICAgICB2YXJzKEVfRF9BLCBFX0RfQikpICU+JSANCiAgIHRhYl9zcGFubmVyKGxhYmVsID0gIk92ZXJhbGwiLA0KICAgICAgICAgICAgICAgdmFycyhFX0RfRCkpICU+JSANCiAgIHRhYl9vcHRpb25zKHRhYmxlLmZvbnQuc2l6ZSAgICAgID0gcHgoMTIpLA0KICAgICAgICAgICAgICAgZGF0YV9yb3cucGFkZGluZyAgICAgPSBweCg1KSwNCiAgICAgICAgICAgICAgIHRhYmxlX2JvZHkuaGxpbmVzLndpZHRoID0gcHgoNSksDQogICAgICAgICAgICAgICB0YWJsZV9ib2R5LmhsaW5lcy5jb2xvciA9ICJ3aGl0ZSIpICU+JSANCiAgIG9wdF90YWJsZV9saW5lcyhleHRlbnQgPSAiZGVmYXVsdCIpICU+JSANCiAgIHRhYl9oZWFkZXIodGl0bGUgPSBodG1sKCJQaGFzZSAzIFJhbmRvbWl6ZWQgQ2xpbmljYWwgVHJpYWwgTWl4ZWQtTW9kZWwgUmVzdWx0cyBldmFsdWF0aW5nIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVhbGl0eSBvZiBsaWZlIDxiPkRMUUkgVG90YWwgU2NhbGU8L2I+ICYgSW5kaXZpZHVhbCBTdWJzY2FsZXMiKSwNCiAgICAgICAgICAgICAgc3VidGl0bGUgID0gIlN0YW5kYXJkaXplZCBFZmZlY3RzICg5NSUgQ0kpIGFuZCBTdGFuZGFyZGl6ZWQgRGlmZmVyZW5jZXMgKDk1JSBDSSkgYW5kIHAtdmFsdWVzIikgJT4lIA0KICAgdGFiX3N0dWJoZWFkKGxhYmVsID0gIiIpICU+JSANCiAgIG9wdF9hbGlnbl90YWJsZV9oZWFkZXIoIGFsaWduID0gImxlZnQiKQ0KYGBgDQoNCiMjIyMjIFRhYmxlIChSYXcpDQpgYGB7cn0NCmRmNCAlPiUgDQogICBzZWxlY3QoLVBfQl9BLCAtUF9CX0IsIC1QX1dfQSwgLVBfV19CKSAlPiUNCiAgIGFycmFuZ2UoZGY0cyRWQVIpICU+JSANCiAgIHVuZ3JvdXAoKSAlPiUNCiAgIGxlZnRfam9pbihkbDIpICU+JSANCiAgIGd0KCkgJT4lIA0KICAgZm10X21hcmtkb3duKGNvbHVtbnMgPSBUUlVFKSAlPiUgDQogICBmbXRfbnVtYmVyKGNvbHVtbnMgPSBzdGFydHNfd2l0aChjKCJFXyIsIkxfIiwiVV8iKSksIGRlY2ltYWxzID0gMikgJT4lIA0KICAgZm10KA0KICAgICAgY29sdW1ucyA9IHN0YXJ0c193aXRoKCJQIiksDQogICAgICBmbnMgPSBmdW5jdGlvbih4KSB7DQogICAgICAgICBndHN1bW1hcnk6OnN0eWxlX3B2YWx1ZSh4LCBkaWdpdHMgPSAyLCBwcmVwZW5kX3AgPSBUUlVFKQ0KICAgICAgfQ0KICAgKSAlPiUgDQogICBjb2xzX21lcmdlKA0KICAgICAgY29sdW1ucyA9IHZhcnMoRV9CX0EsIExfQl9BLCBVX0JfQSksDQogICAgICBoaWRlX2NvbHVtbnMgPSB2YXJzKExfQl9BLCBVX0JfQSksDQogICAgICBwYXR0ZXJuID0gInsxfSAoezJ9LCB7M30pIg0KICAgKSAlPiUNCiAgIGNvbHNfbWVyZ2UoDQogICAgICBjb2x1bW5zID0gdmFycyhFX1dfQSwgTF9XX0EsIFVfV19BKSwNCiAgICAgIGhpZGVfY29sdW1ucyA9IHZhcnMoTF9XX0EsIFVfV19BKSwNCiAgICAgIHBhdHRlcm4gPSAiezF9ICh7Mn0sIHszfSkiDQogICApICU+JQ0KICAgY29sc19tZXJnZSgNCiAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9BLCBMX0RfQSwgVV9EX0EsIFBfRF9BKSwNCiAgICAgIGhpZGVfY29sdW1ucyA9IHZhcnMoTF9EX0EsIFVfRF9BLCBQX0RfQSksDQogICAgICBwYXR0ZXJuID0gInsxfSAoezJ9LCB7M30pPGJyPns0fSINCiAgICkgJT4lDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX3RleHQod2VpZ2h0ID0gImJvbGQiKQ0KICAgICAgKSwNCiAgICAgIGxvY2F0aW9ucyA9IGNlbGxzX2JvZHkoDQogICAgICAgICBjb2x1bW5zID0gdmFycyhFX0RfQSksDQogICAgICAgICByb3dzID0gUF9EX0EgPCAwLjA1KQ0KICAgKSAlPiUgDQogICBjb2xzX21lcmdlKA0KICAgICAgY29sdW1ucyA9IHZhcnMoRV9CX0IsIExfQl9CLCBVX0JfQiksDQogICAgICBoaWRlX2NvbHVtbnMgPSB2YXJzKExfQl9CLCBVX0JfQiksDQogICAgICBwYXR0ZXJuID0gInsxfSAoezJ9LCB7M30pIg0KICAgKSAlPiUgDQogICBjb2xzX21lcmdlKA0KICAgICAgY29sdW1ucyA9IHZhcnMoRV9XX0IsIExfV19CLCBVX1dfQiksDQogICAgICBoaWRlX2NvbHVtbnMgPSB2YXJzKExfV19CLCBVX1dfQiksDQogICAgICBwYXR0ZXJuID0gInsxfSAoezJ9LCB7M30pIg0KICAgKSAlPiUgDQogICBjb2xzX21lcmdlKA0KICAgICAgY29sdW1ucyA9IHZhcnMoRV9EX0IsIExfRF9CLCBVX0RfQiwgUF9EX0IpLA0KICAgICAgaGlkZV9jb2x1bW5zID0gdmFycyhMX0RfQiwgVV9EX0IsIFBfRF9CKSwNCiAgICAgIHBhdHRlcm4gPSAiezF9ICh7Mn0sIHszfSk8YnI+ezR9Ig0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX3RleHQod2VpZ2h0ID0gImJvbGQiKQ0KICAgICAgKSwNCiAgICAgIGxvY2F0aW9ucyA9IGNlbGxzX2JvZHkoDQogICAgICAgICBjb2x1bW5zID0gdmFycyhFX0RfQiksDQogICAgICAgICByb3dzID0gUF9EX0IgPCAwLjA1KQ0KICAgKSAlPiUNCiAgIGNvbHNfbWVyZ2UoDQogICAgICBjb2x1bW5zID0gdmFycyhFX0RfRCwgTF9EX0QsIFVfRF9ELCBQX0RfRCksDQogICAgICBoaWRlX2NvbHVtbnMgPSB2YXJzKExfRF9ELCBVX0RfRCwgUF9EX0QpLA0KICAgICAgcGF0dGVybiA9ICJ7MX0gKHsyfSwgezN9KTxicj57NH0iDQogICApICU+JSANCiAgIHRhYl9zdHlsZSgNCiAgICAgIHN0eWxlID0gbGlzdCgNCiAgICAgICAgIGNlbGxfdGV4dCh3ZWlnaHQgPSAiYm9sZCIpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9EKSwNCiAgICAgICAgIHJvd3MgPSBQX0RfRCA8IDAuMDUpDQogICApICU+JSANCiAgICMgY29sb3JzDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiIzZCQUVENiIsDQogICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfQl9BKQ0KICAgICAgKQ0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiIzIxNzFCNSIsDQogICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfV19BKQ0KICAgICAgKQ0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiIzA4NTE5QyIsDQogICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9BKQ0KICAgICAgKQ0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiIzc0QzQ3NiIsDQogICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfQl9CKQ0KICAgICAgKQ0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiIzIzOEI0NSIsDQogICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfV19CKQ0KICAgICAgKQ0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiIzAwNkQyQyIsDQogICAgICAgICAgICAgICAgICAgYWxwaGEgPSAwLjUpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKEVfRF9CKQ0KICAgICAgKQ0KICAgKSAlPiUgDQogICB0YWJfc3R5bGUoDQogICAgICBzdHlsZSA9IGxpc3QoDQogICAgICAgICBjZWxsX2ZpbGwoY29sb3IgPSAiI2JmYmZiZiIpDQogICAgICApLA0KICAgICAgbG9jYXRpb25zID0gY2VsbHNfYm9keSgNCiAgICAgICAgIGNvbHVtbnMgPSB2YXJzKExBQiwgRV9EX0QpDQogICAgICApDQogICApICU+JSANCiAgIGNvbHNfbW92ZV90b19zdGFydChjb2x1bW5zID0gdmFycyhMQUIpKSAlPiUgDQogICBjb2xzX2hpZGUoY29sdW1ucyA9IHZhcnMoVkFSKSkgJT4lIA0KICAgY29sc19sYWJlbCgNCiAgICAgIEVfQl9BID0gIkJhc2VsaW5lIiwNCiAgICAgIEVfV19BID0gIldlZWsgMTYiLA0KICAgICAgRV9CX0IJPSAiQmFzZWxpbmUiLA0KICAgICAgRV9XX0IJPSAiV2VlayAxNiIsDQogICAgICBFX0RfQQk9ICJQbGFjZWJvIiwNCiAgICAgIEVfRF9CCT0gIkFjdGl2ZSIsDQogICAgICBFX0RfRCA9ICJEaWZmZXJlbmNlIg0KICAgKSAlPiUgDQogICBjb2xzX3dpZHRoKHN0YXJ0c193aXRoKGMoIkVfIikpIH4gcHgoMTM1KSwNCiAgICAgICAgICAgICAgdmFycyhMQUIpIH4gcHgoMjAwKSkgJT4lDQogICBjb2xzX2FsaWduKCJyaWdodCIsDQogICAgICAgICAgICAgIGNvbHVtbnMgPSB2YXJzKExBQikpICU+JSANCiAgIHRhYl9zcGFubmVyKGxhYmVsID0gIlBsYWNlYm8iLA0KICAgICAgICAgICAgICAgdmFycyhFX0JfQSwgRV9XX0EpKSAlPiUgDQogICB0YWJfc3Bhbm5lcihsYWJlbCA9ICJBY3RpdmUiLA0KICAgICAgICAgICAgICAgdmFycyhFX0JfQiwgRV9XX0IpKSAlPiUgDQogICB0YWJfc3Bhbm5lcihsYWJlbCA9ICJXaXRoaW4gVFJUIGJldHdlZW4gVklTSVQiLA0KICAgICAgICAgICAgICAgdmFycyhFX0RfQSwgRV9EX0IpKSAlPiUgDQogICB0YWJfc3Bhbm5lcihsYWJlbCA9ICJPdmVyYWxsIiwNCiAgICAgICAgICAgICAgIHZhcnMoRV9EX0QpKSAlPiUgDQogICB0YWJfb3B0aW9ucyh0YWJsZS5mb250LnNpemUgICAgICA9IHB4KDEyKSwNCiAgICAgICAgICAgICAgIGRhdGFfcm93LnBhZGRpbmcgICAgID0gcHgoNSksDQogICAgICAgICAgICAgICB0YWJsZV9ib2R5LmhsaW5lcy53aWR0aCA9IHB4KDUpLA0KICAgICAgICAgICAgICAgdGFibGVfYm9keS5obGluZXMuY29sb3IgPSAid2hpdGUiKSAlPiUgDQogICB0YWJfaGVhZGVyKHRpdGxlID0gaHRtbCgiUGhhc2UgMyBSYW5kb21pemVkIENsaW5pY2FsIFRyaWFsIE1peGVkLU1vZGVsIFJlc3VsdHMgZXZhbHVhdGluZyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1YWxpdHkgb2YgbGlmZSA8Yj5ETFFJIFRvdGFsIFNjYWxlPC9iPiAmIEluZGl2aWR1YWwgU3Vic2NhbGVzIiksDQogICAgICAgICAgICAgIHN1YnRpdGxlICA9ICJFZmZlY3RzICg5NSUgQ0kpIGFuZCBEaWZmZXJlbmNlcyAoOTUlIENJKSBhbmQgcC12YWx1ZXMiKSAlPiUgDQogICB0YWJfc3R1YmhlYWQobGFiZWwgPSAiIikgJT4lIA0KICAgb3B0X2FsaWduX3RhYmxlX2hlYWRlciggYWxpZ24gPSAibGVmdCIpDQpgYGA=