LyoKICogV2luZUZpbGUKICogU3dlZGlzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA1IERhdmlkIE5vcmRlbmJlcmcKICogQ29weXJpZ2h0IDIwMDggRGFuaWVsIE55bGFuZGVyIDxwb0BkYW5pZWxueWxhbmRlci5zZT4KICogQ29weXJpZ2h0IDIwMDkgQW5kZXJzIEpvbnNzb24KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19TV0VESVNILCBTVUJMQU5HX05FVVRSQUwKCi8qIE1lbnUgKi8KCgpJRE1fV0lORUZJTEUgTUVOVSBGSVhFRCBJTVBVUkUKewogICAgUE9QVVAgIiZBcmtpdiIgewogICAgICAgIE1FTlVJVEVNICIm1nBwbmFcdEVudGVyIiwgICAgICAgICAgICAgICBJRF9BQ1RJVkFURQogICAgICAgIE1FTlVJVEVNICImRmx5dHRhLi4uXHRGNyIsICAgICAgICAgICAgICBJRF9GSUxFX01PVkUKICAgICAgICBNRU5VSVRFTSAiJktvcGllcmEuLi5cdEY4IiwgICAgICAgICAgICAgSURfRklMRV9DT1BZCiAgICAgICAgTUVOVUlURU0gIiZJIHVya2xpcHAuLi5cdEY5IiwgICAgICAgICAgIDExOAogICAgICAgIE1FTlVJVEVNICImVGEgYm9ydFx0RGVsIiwgICAgICAgICAgICAgICBJRF9GSUxFX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImQnl0IG5hbW4uLi4iLCAgICAgICAgICAgICAgICAxMDkKICAgICAgICBNRU5VSVRFTSAiJkVnZW5za2FwZXIuLi5cdEFsdCtFbnRlciIsICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb21wcmltZXJhLi4uIiwgICAgICAgICAgICAgIDExOQogICAgICAgIE1FTlVJVEVNICJQYWNrYSAmdXBwLi4uIiwgICAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkv2ci4uLiIsICAgICAgICAgICAgICAgICAgICAgSURfRVhFQ1VURQogICAgICAgIE1FTlVJVEVNICImU2tyaXYgdXQuLi4iLCAgICAgICAgICAgICAgICAxMDIKICAgICAgICBNRU5VSVRFTSAiQXNzb2NpZXJhLi4uIiwgICAgICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNrYXBhIG1hcHAuLi4iLCAgICAgICAgICAgICAgIDExMQogICAgICAgIE1FTlVJVEVNICImU/ZrLi4uIiwgICAgICAgICAgICAgICAgICAgICAxMDQKICAgICAgICBNRU5VSVRFTSAiJlbkbGogZmlsZXIuLi4iLCAgICAgICAgICAgICAgMTE2CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dGFcdEFsdCtYIiwgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbHNlCiAgICAgICAgTUVOVUlURU0gIiZBdnNsdXRhIiwgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZW5kaWYKICAgIH0KCiAgICBQT1BVUCAiJkRpc2siIHsKICAgICAgICBNRU5VSVRFTSAiJktvcGllcmEgZGlzay4uLiIsICAgICAgICAgICAgMjAxCiAgICAgICAgTUVOVUlURU0gIiZOYW1uZ2UgZGlzay4uLiIsICAgICAgICAgICAgIDIwMgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRm9ybWF0ZXJhIGRpc2suLi4iLCAgICAgICAgICBJRF9GT1JNQVRfRElTSwojaWZkZWYgX1dJTjk1CiAgICAgICAgTUVOVUlURU0gIiZTa2FwYSBzeXN0ZW1kaXNrLi4uIiwgLTEgLypUT0RPKi8KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFuc2x1dCAmbuR0dmVya3NlbmhldCIsICAgICAgIElEX0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNICImS29wcGxhIGlmcuVuIG7kdHZlcmtzZW5oZXQiLCBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGVsYSB1dC4uLiIsICAgICAgICAgICAgICAgICAgMjU0CiAgICAgICAgTUVOVUlURU0gIiZUYSBib3J0IHV0ZGVsbmluZy4uLiIsICAgICAgIDI1NQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVuRsaiBlbmhldC4uLiIsICAgICAgICAgICAgICAyNTEKICAgIH0KCiAgICBQT1BVUCAiJlRy5GQiIHsKICAgICAgICBNRU5VSVRFTSAiJk7kc3RhIG5pduVcdCsiLCAgICAgICAgICAgICAgMzAxCiAgICAgICAgTUVOVUlURU0gIlV09mthICZ0cuRkXHQqIiwgICAgICAgICAgICAgIDMwMgogICAgICAgIE1FTlVJVEVNICJVdPZrYSAmYWxsYVx0Q3RybCsqIiwgICAgICAgICAzMDMKICAgICAgICBNRU5VSVRFTSAiS29sbGFwc2EgJnRy5GRcdC0iLCAgICAgICAgICAgMzA0CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZNYXJrZXJhIHVuZGVybWFwcGFyIiwgICAgICAgIDUwNQogICAgfQoKICAgIFBPUFVQICImVmlzYSIgewogICAgICAgIE1FTlVJVEVNICImVHLkZCBvY2ggbWFwcCIsICAgICAgICAgICAgICA0MTMKICAgICAgICBNRU5VSVRFTSAiRW5kYXN0IHRyJuRkIiwgICAgICAgICAgICAgICAgICA0MTEKICAgICAgICBNRU5VSVRFTSAiRW5kYXN0ICZtYXBwIiwgICAgICAgICAgICAgICAgICA0MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGUmbGEiLCAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmFtbiIsICAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX05BTUUKICAgICAgICBNRU5VSVRFTSAiJkFsbGEgZmlsZGV0YWxqZXIiLCAgICAgICAgICAgSURfVklFV19BTExfQVRUUklCVVRFUywgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImVmlzc2EgZGV0YWxqZXIuLi4iLCAgICAgICAgICBJRF9WSUVXX1NFTEVDVEVEX0FUVFJJQlVURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNvcnRlcmEgZWZ0ZXIgbmFtbiIsICAgICAgICAgSURfVklFV19TT1JUX05BTUUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyYSBlZnRlciB0JnlwIiwgICAgICAgICAgSURfVklFV19TT1JUX1RZUEUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyYSBlZnRlciBzdCZvcmxlayIsICAgICAgSURfVklFV19TT1JUX1NJWkUKICAgICAgICBNRU5VSVRFTSAiU29ydGVyYSBlZnRlciAmZGF0dW0iLCAgICAgICAgSURfVklFV19TT1JUX0RBVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU29ydGVyYSBlZnRlciAmLi4uIiwgICAgICAgICAgSURfVklFV19GSUxURVIKICAgIH0KCiAgICBQT1BVUCAiJkluc3TkbGxuaW5nYXIiIHsKICAgICAgICBNRU5VSVRFTSAiJkJla3LkZnRlbHNlLi4uIiwgICAgICAgICAgICAgNTAxCiAgICAgICAgTUVOVUlURU0gIiZUZWNrZW5zbml0dC4uLiIsICAgICAgICAgICAgIElEX1NFTEVDVF9GT05UCiAgICAgICAgTUVOVUlURU0gIiZLb25maWd1cmVyYSB2ZXJrdHlnc2bkbHQuLi4iLCA1MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlZlcmt0eWdzZuRsdCIsICAgICAgICAgICAgICAgSURfVklFV19UT09MX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImRW5oZXRzZuRsdCIsICAgICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICJTdCZhdHVzZuRsdCIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIkgmZWxza+RybVx0Q3RybCtTaGlmdCtTIiwgICAgSURfVklFV19GVUxMU0NSRUVOCiNlbmRpZgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTWluaW1lcmEgdmlkIGv2cm5pbmciLCAgICAgICA1MDQKICAgICAgICBNRU5VSVRFTSAiJlNwYXJhIORuZHJpbmdhciB2aWQgc3TkbmduaW5nIiwgNTExCiAgICB9CgogICAgUE9QVVAgIiZT5GtlcmhldCIgewogICAgICAgIE1FTlVJVEVNICImxXRrb21zdC4uLiIsICAgICAgICAgICAgICAgICA2MDUKICAgICAgICBNRU5VSVRFTSAiJkxvZ2duaW5nLi4uIiwgICAgICAgICAgICAgICAgNjA2CiAgICAgICAgTUVOVUlURU0gIibEZ2FyZS4uLiIsICAgICAgICAgICAgICAgICAgIDYwNwogICAgfQoKICAgIFBPUFVQICImRvZuc3RlciIgewogICAgICAgIE1FTlVJVEVNICJOeXR0ICZm9m5zdGVyIiwgICAgICAgICAgICAgICBJRF9XSU5ET1dfTkVXCiAgICAgICAgTUVOVUlURU0gItZ2ZXJsYXBwYW5kZVx0Q3RybCtGNSIsICAgICAgIElEX1dJTkRPV19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIk9yZG5hICZob3Jpc29udGVsbHQiLCAgICAgICAgIElEX1dJTkRPV19USUxFX0hPUloKICAgICAgICBNRU5VSVRFTSAiT3JkbmEgJnZlcnRpa2FsdFx0Q3RybCtGNCIsICAgSURfV0lORE9XX1RJTEVfVkVSVAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIk9yZG5hIGF1dG9tYXRpc2t0IiwgICAgICAgICAgIElEX1dJTkRPV19BVVRPU09SVAojZW5kaWYKICAgICAgICBNRU5VSVRFTSAiT3JkbmEgJnN5bWJvbGVyIiwgICAgICAgICAgICAgSURfV0lORE9XX0FSUkFOR0UKICAgICAgICBNRU5VSVRFTSAiJlVwcGRhdGVyYVx0RjUiLCAgICAgICAgICAgICAgSURfUkVGUkVTSAogICAgfQoKICAgIFBPUFVQICImPyIgewogICAgICAgIE1FTlVJVEVNICImSGrkbHBhdnNuaXR0XHRGMSIsICAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIkhq5GxwICZz9msuLi5cdEYxIiwgICAgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiJkFuduRuZGEgaGrkbHBlblx0RjEiLCAgICAgICAgSURfSEVMUF9VU0lORwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJJbmZvcm1hdGlvbiBvbSAmV2luZWZpbGUuLi4iLCBJRF9BQk9VVAogICAgfQp9CgoKSUREX0VYRUNVVEUgRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiS/ZyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIiZLb21tYW5kbzoiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIENPTlRST0wgICAgICAgICAiU29tICZzeW1ib2wiLCAyMTQsICJCdXR0b24iLCBCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUCwzLCA0NSwgNzEsIDEyCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIiwgMSwgMTU4LCA2LCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IiwgMiwgMTU4LCAyMywgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZIauRscCIsIDI1NCwgMTU4LCA0MywgNDcsIDE0Cn0KCklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVuRsaiBt5WwiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgQ09OVFJPTCAgICAgICAgICIiLCAxMDEsICJTdGF0aWMiLCBTU19TSU1QTEV8U1NfTk9QUkVGSVgsIDMsIDYsIDE2MiwgMTAKICAgIENPTlRST0wgICAgICAgICAiJlP2a3bkZzoiLCAtMSwgIlN0YXRpYyIsIFNTX0xFRlROT1dPUkRXUkFQfFdTX0dST1VQLCAzLCAxOCwgNjAsIDEwCiAgICBFRElUVEVYVCAgICAgICAgMjAxLCAzLCAyOSwgMTM0LCAxMiwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdmJyeXQiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkJs5GRkcmEiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfRElBTE9HX1ZJRVdfVFlQRSBESUFMT0cgRElTQ0FSREFCTEUgMTUsIDEzLCAxNjEsIDk3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkVmdGVyIGZpbHR5cCIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiJk5hbW46IiwtMSw3LDgsMjIsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfVklFV19QQVRURVJOLDMxLDcsNjMsMTIsRVNfQVVUT0hTQ1JPTEwKICAgIEdST1VQQk9YICAgICAgICAiRmlsdHlwIiwtMSw3LDIzLDg3LDU2CiAgICBDT05UUk9MICAgICAgICAgIiZLYXRhbG9nZXIiLElEQ19WSUVXX1RZUEVfRElSRUNUT1JJRVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMywzMiw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImUHJvZ3JhbSIsSURDX1ZJRVdfVFlQRV9QUk9HUkFNUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDQzLDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZEb2t1bWVudCIsSURDX1ZJRVdfVFlQRV9ET0NVTUVOVFMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw1NCw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImQW5kcmEgZmlsZXIiLElEQ19WSUVXX1RZUEVfT1RIRVJTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNjUsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiVmlzYSBn9m1kYS8mc3lzdGVtLWZpbGVyIixJRENfVklFV19UWVBFX0hJRERFTiwKICAgICAgICAgICAgICAgICAgICAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODEsMTA2LDkKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTA0LDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxMDQsMjQsNTAsMTQKRU5ECgpJRERfRElBTE9HX1BST1BFUlRJRVMgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDgsIDIxNQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJFZ2Vuc2thcGVyIGb2ciAlcyIKRk9OVCA4LCAiTVMgU2FucyBTZXJpZiIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTkxLDcsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxOTEsMjksNTAsMTQKICAgIExURVhUICAgICAgICAgICAiJkZpbG5hbW46IiwtMSw3LDcsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9GSUxFTkFNRSw3MSw3LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiRiZ1bGwgc/ZrduRnOiIsLTEsNywxOCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1BBVEgsNzEsMTgsMTIwLDksIEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU2lzdCDkbmRyYWQ6IiwtMSw3LDI5LDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfTEFTVENIQU5HRSw3MSwyOSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlZlcnNpb246IiwtMSw3LDQwLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfVkVSU0lPTiw3MSw0MCwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkNvcCZ5cmlnaHQ6IiwtMSw3LDUxLDU5LDkKICAgIEVESVRURVhUICAgICAgICBJRENfU1RBVElDX1BST1BfQ09QWVJJR0hULDcxLDUxLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiU3RvcmxlazoiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQXR0cmlidXQiLC0xLDcsNzksMTU4LDQ2CiAgICBDT05UUk9MICAgICAgICAgIlNrJnJpdnNreWRkYWQiLElEQ19DSEVDS19SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJkRvbGQiLElEQ19DSEVDS19ISURERU4sIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw5Miw5MSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgIiZBcmtpdiIsSURDX0NIRUNLX0FSQ0hJVkUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMDEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICImU3lzdGVtIixJRENfQ0hFQ0tfU1lTVEVNLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOTIsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJktvbXByaW1lcmFkIixJRENfQ0hFQ0tfQ09NUFJFU1NFRCwiQnV0dG9uIiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNywxMTEsNjgsOQogICAgR1JPVVBCT1ggICAgICAgICImVmVyc2lvbnNpbmZvIiwtMSw3LDEyOSwyMzQsNzkKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9QUk9QX1ZFUlNJT05fVFlQRVMsMTMsMTM5LDEwNyw2MyxMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEVESVRURVhUICAgICAgICBJRENfTElTVF9QUk9QX1ZFUlNJT05fVkFMVUVTLDEyMywxMzksMTExLDYzLEVTX01VTFRJTElORSB8IEVTX1JFQURPTkxZIHwgV1NfVlNDUk9MTApFTkQKCgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfRk9OVF9TRUxfRExHX05BTUUgICAiVmVya3N05GxsIHRlY2tlbnNuaXR0c2luc3TkbGxuaW5nYXIiCiAgICBJRFNfRk9OVF9TRUxfRVJST1IgICAgICAiRXR0IGZlbCB1cHBzdG9kIG7kciBldHQgbnl0dCB0ZWNrZW5zbml0dCB2YWxkZXMuIgp9CgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfV0lORUZJTEUgICAgICAgICAgICAiV2luZWZpbGUiCiAgICBJRFNfRVJST1IgICAgICAgICAgICAgICAiRmVsIgogICAgSURTX1JPT1RfRlMgICAgICAgICAgICAgInJvb3QgZnMiCiAgICBJRFNfVU5JWEZTICAgICAgICAgICAgICAidW5peGZzIgogICAgSURTX0RFU0tUT1AgICAgICAgICAgICAgIlNrcml2Ym9yZCIKICAgIElEU19TSEVMTCAgICAgICAgICAgICAgICJTa2FsIgogICAgSURTX1RJVExFRk1UICAgICAgICAgICAgIiVzIC0gJXMiCiAgICBJRFNfTk9fSU1QTCAgICAgICAgICAgICAiSW50ZSBpbXBsZW1lbnRlcmF0IORubnUiCiAgICBJRFNfV0lORV9GSUxFICAgICAgICAgICAiV2luZWZpbGUiCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19DT0xfTkFNRSAgICAgICAgICAgICJOYW1uIgogICAgSURTX0NPTF9TSVpFICAgICAgICAgICAgIlN0b3JsZWsiCiAgICBJRFNfQ09MX0NEQVRFICAgICAgICAgICAiQ0RhdHVtIgogICAgSURTX0NPTF9BREFURSAgICAgICAgICAgIkFEYXR1bSIKICAgIElEU19DT0xfTURBVEUgICAgICAgICAgICJNRGF0dW0iCiAgICBJRFNfQ09MX0lEWCAgICAgICAgICAgICAiSW5kZXgvSW5vZGUiCiAgICBJRFNfQ09MX0xJTktTICAgICAgICAgICAiTORua2FyIgogICAgSURTX0NPTF9BVFRSICAgICAgICAgICAgIkF0dHJpYnV0IgogICAgSURTX0NPTF9TRUMgICAgICAgICAgICAgIlPka2VyaGV0IgoKICAgIElEU19GUkVFX1NQQUNFX0ZNVCAgICAgICIlcyBhdiAlcyBsZWRpZ3QiCn0K