LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUG9ydHVndWVzZSBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIE1hcmNlbG8gRHVhcnRlCiAqIENvcHlyaWdodCAyMDA0IEFt6XJpY28gSm9z6SBNZWxvCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ORVVUUkFMCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJz428gZG8gV2luZToiLElEQ19TVEFUSUMsMTE5LDE3LDU1LDgKICAgIExURVhUICAgICAgICAgICAiQ1ZTIixJRENfV0lORVZFUiwxNzksMTcsNTYsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQIHwgU1NfQ0VOVEVSSU1BR0UgfCAKICAgICAgICAgICAgICAgICAgICBTU19SRUFMU0laRUlNQUdFIHwgV1NfQk9SREVSLDE1LDE3LDE1NywxMTEsIFdTX0VYX1RSQU5TUEFSRU5UCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBDVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIENvbmZpZ3VyYef1ZXMgZGEgYXBsaWNh5+NvICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZSBwb2RlIGltaXRhciB24XJpb3MgZXN0aWxvcyBlIHZlcnP1ZXMgZG8gV2luZG93cyBwYXJhIGNhZGEgYXBsaWNh5+NvIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywyMAogICAgQ09OVFJPTCAgICAgICAgICJBcGxpY2Hn9WVzIixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNDAsMjMwLDE0MAogICAgUFVTSEJVVFRPTgkgICAgIkFkaWNvbmFyIGFwbGljYefjby4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDE4NCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIlJlbW92ZXIgYXBsaWNh5+NvIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDE4NCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICJWZXJz428gZG8gV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjA0LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIwMiwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIAogICAgTFRFWFQgICAgICAgICAgICJWZXJz428gZG8gRE9TOiIsSURDX1NUQVRJQywxNywyMjMsNTcsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ET1NWRVIsODMsMjI0LDE2Myw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQJICAgICJQcm9mdW5kaWRhZGUgZGUgY29yZXM6ICIsSURDX1NUQVRJQyw4LDEwLDgwLDMwCiAgICBDT01CT0JPWAkgICAgSURDX1NDUkVFTl9ERVBUSCw4NSw4LDE2NSw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MCSAgICAiUHJvZ3JhbWFzIERpcmVjdFggcG9kZW0gaW1wZWRpciBxdWUgbyBtb3VzZSBkZWl4ZSBhIGphbmVsYT8iLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzUsMjMwLDgKICAgIENPTlRST0wJICAgICJQZXJtaXRpciBidWZmZXIgZHVwbG8gZG8gZGVza3RvcCIsSURDX0RPVUJMRV9CVUZGRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NSwyMzAsOAogICAgCiAgICBHUk9VUEJPWCAgICAgICAgIiBDb25maWd1cmHn9WVzIGRlIGphbmVsYSAiLElEQ19TVEFUSUMsOCwyNSwyNDQsMTIwCgogICAgLyogRklYTUU6IHRoZSB3b3JkaW5nIG9mIHRoaXMgZXhwbGFuYXRpb24gY291bGQgYmUgYSBsb3QgYmV0dGVyICovCiAgICBMVEVYVCAgICAgICAgICAgIlZvY+ogcG9kZSBlc2NvbGhlciBlbXVsYXRhciB1bWEg4XJlYSBkZSB0cmFiYWxobywgb25kZSB0b2RhcyBhcyBqYW5lbGFzIHPjbyBjb25maW5hZGFzIGVtIHVtYSAndGVsYSB2aXJ0dWFsJywgb3UgcG9kZSB0ZXIgdW1hIGphbmVsYSBjb2xvY2FkYSBuYSBzdWEg4XJlYSBkZSB0cmFiYWxobyBwYWRy428uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDczLDIyOCwyOAogICAgTFRFWFQgICAgICAgICAgICJUYW1hbmhvIGRhIOFyZWEgZGUgdHJhYmFsaG86IixJRENfREVTS1RPUF9TSVpFLDE1LDExNSwxMDAsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxNjQsMTE1LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICJFbXVsYXIgdW1hIOFyZWEgZGUgdHJhYmFsaG8gdmlydHVhbCIsSURDX0VOQUJMRV9ERVNLVE9QLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTAwLDIyOCwxMAoJCSAgICAKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9XSURUSCwxMjAsMTE1LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTczLDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgkJICAgIApFTkQKCgpMQU5HVUFHRSBMQU5HX1BPUlRVR1VFU0UsIFNVQkxBTkdfREVGQVVMVAoKSUREX0RMTENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJTb2JyZWVzY3JldmVyIERMTHMiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiQmlibGlvdGVjYXMgcG9kZW0gc2VyIGVzcGVjaWZpY2FkYXMgaW5kaXZpZHVhbG1lbnRlIGNvbW8gJ2J1aWx0aW4nIG91ICduYXRpdmUnLiBVbWEgZW50cmFkYSBETEwgY29tbyAiIioiIiDpIHBlcnRpbmVudGUgYSB0b2RhcyBhcyBETExzIG7jbyBlc3BlY2lmaWNhZGFzIGV4cGxpY2l0YW1lbnRlLiIKICAgICAgICAgICAgICAgICAgICAsICBJRENfU1RBVElDLDE1LDE3LDIyOCwzMgogICAgQ09OVFJPTCAgICAgICAgICJTb2JyZWVzY3JldmVyIERMTHMiLCBJRENfVFJFRV9ETExTLCAiU3lzVHJlZVZpZXczMiIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBUVlNfTElORVNBVFJPT1QgfCBUVlNfSEFTTElORVMgfCBUVlNfU0hPV1NFTEFMV0FZUyB8IFRWU19IQVNCVVRUT05TLCAxNSw1MCwxNDIsMTg3CiAgICBMVEVYVCAgICAgICAgICAgIk9yZGVtIGRlIGNhcmdhOiIsSURDX1NUQVRJQywxNjMsNTAsNjAsOAogICAgQ09OVFJPTCAgICAgICAgICJCdWlsdGluIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNjMsNjUsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTmF0aXZlIChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsODAsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiQnVpbHRpbiwgTmF0aXZlIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYzLDk1LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIk5hdGl2ZSwgQnVpbHRpbiIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2MywxMTAsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiRGVzYWJpbGl0YWRhIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNjMsMTI1LDc1LDEwCiAgICBQVVNIQlVUVE9OCSAgICAiQWRpY2lvbmFyIGFwbGljYefjby4uLiIsSURDX0RMTFNfQUREQVBQLDE2MywxNDQsODIsMTQKICAgIFBVU0hCVVRUT04JICAgICJSZW1vdmVyIGFwbGljYefjbyIsSURDX0RMTFNfUkVNT1ZFQVBQLCAxNjMsMTY0LDgyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiQWRpY2lvbmFyIGNhcmdhIGRlIERMTDoiLElEQ19ETExTX0FERERMTCwgMTYzLDE4NCw4MiwxNAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExMSVNULDE2MywyMDQsODIsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04JICAgICJSZW1vdmVyIGNhcmdhIGRlIERMTCIsSURDX0RMTFNfUkVNT1ZFRExMLDE2MywyMjQsODIsMTQKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKCklERF9TWVNURU1DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIlVuaWRhZGVzIixJRENfU1RBVElDLDgsNCwyNDQsMTIwCiAgICBMSVNUQk9YICAgICAgICAgSURDX0xJU1RfRFJJVkVTLDE1LDIzLDE3OSw5MCxXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIiZBZGljaW9uYXIiLElEQ19EUklWRV9BREQsMTk3LDIyLDUwLDIyCiAgICBQVVNIQlVUVE9OICAgICAgIiZSZW1vdmVyIixJRENfRFJJVkVfUkVNT1ZFLDE5Nyw1MSw1MCwyMgogICAgUFVTSEJVVFRPTiAgICAgICImRWRpdGFyIixJRENfRFJJVkVfRURJVCwxOTcsODAsNTAsMjIKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX1BPUlRVR1VFU0VfQlJBWklMSUFOCgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiT3V0cmFzIHVuaWRhZGVzIixJRENfU1RBVElDLDcsMTA3LDI0NiwxMTIKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9EUklWRVMsMTQsMTE4LDIzMiw3NixMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiQWRpY2lvbmFyLi4uIixJRENfQlVUVE9OX0FERCwxNCwxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiUmVtb3ZlciIsSURDX0JVVFRPTl9SRU1PVkUsNTUsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkVkaXRhci4uLiIsSURDX0JVVFRPTl9FRElULDk3LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJBdXRvZGV0ZWN0YXIuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxOTcsMTk5LDQ5LDE0CiAgICBMVEVYVAkgICAgIkFWSVNPOiBQYXJlY2UgcXVlIHZvY+ogbuNvIHRlbSB1bWEgdW5pZGFkZSBDIGRlZmluaWRhLiBDbGlxdWUgZW0gJ0FkaWNpb25hcicgcGFyYSBhZGljaW9uYXIgdW1hLiIsIElEU19EUklWRV9OT19DLCA3LDIyMywyNTAsMTEwCkVORAoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX1BPUlRVR1VFU0UKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJPdXRyYXMgdW5pZGFkZXMiLElEQ19TVEFUSUMsNywxMDcsMjQ2LDExMgogICAgTElTVEJPWCAgICAgICAgIElEQ19MSVNUX0RSSVZFUywxNCwxMTgsMjMyLDc2LExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJBZGljaW9uYXIuLi4iLElEQ19CVVRUT05fQURELDE0LDE5OSwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICJSZW1vdmVyIixJRENfQlVUVE9OX1JFTU9WRSw1NSwxOTksMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiRWRpdGFyLi4uIixJRENfQlVUVE9OX0VESVQsOTcsMTk5LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF1dG9kZXRlY3Rhci4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5NywxOTksNDksMTQKICAgIExURVhUCSAgICAiQVZJU086IFBhcmVjZSBxdWUgbuNvIHRlbSB1bWEgdW5pZGFkZSBDIGRlZmluaWRhLiBDbGlxdWUgZW0gJ0FkaWNpb25hcicgcGFyYSBhZGljaW9uYXIgdW1hLiIsIElEU19EUklWRV9OT19DLCA3LDIyMywyNTAsMTEwCkVORAoKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ORVVUUkFMCgpJRERfRFJJVkVfRURJVCBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDIwMywgMTY5ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkNvbmZpZ3VyYefjbyBkZSB1bmlkYWRlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIiZPSyIsSURfQlVUVE9OX09LLDE0NSwxNTAsNTAsMTMKICAgIExURVhUICAgICAgICAgICAiTGV0cmE6IixJRENfU1RBVElDLDUsMjMsMjYsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDYzLDExNCw3OCwxMyxFU19BVVRPSFNDUk9MTAogICAgTFRFWFQgICAgICAgICAgICJS83R1bG86IixJRENfU1RBVElDX0xBQkVMLDMzLDExNywyOSwxMgogICAgTFRFWFQgICAgICAgICAgICJT6XJpZToiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDEyNywyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCw2MywxMjQsNzgsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiVGlwbzoiLElEQ19TVEFUSUMsNSw1NCwyMSwxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsMzEsNSwxMTcsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiQ2FtaW5obzoiLElEQ19TVEFUSUMsNSwxMCwyMCw5CiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX0xFVFRFUiwzMSwyMCw3Nyw2MCxDQlNfRFJPUERPV05MSVNUICB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIlByb2N1cmFyLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDE1NCw1LDQwLDEzCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsMzEsMzYsNzcsNjAsQ0JTX0RST1BET1dOTElTVCB8IAogICAgICAgICAgICAgICAgICAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIk1vc3RyYXIgQXZhbudhZG8iLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDEzNCwzNCw2MCwxNgogICAgQ09OVFJPTCAgICAgICAgICJBdXRvZGV0ZWN0YXIgZG8gZGlzcG9zaXRpdm86IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMjEsNzksOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMzMsODksMTA4LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIlByb2N1cmFyLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMTQ4LDg5LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIkFzc29jaWFyIG1hbnVhbG1lbnRlOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMjEsMTA0LDY5LDEwCiAgICBHUk9VUEJPWCAgICAgICAgIlLzdHVsbyBlIG76bWVybyBkZSBz6XJpZSIsSURDX0JPWF9MQUJFTFNFUklBTCw2LDY4LDE4OSw3OQoKRU5ECiAKCkxBTkdVQUdFIExBTkdfUE9SVFVHVUVTRSwgU1VCTEFOR19ERUZBVUxUCgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUCSJEcml2ZXIgZGUg4XVkaW86ICIsSURDX1NUQVRJQywxMCwyMCw2MCw4CiAgICBDT01CT0JPWAlJRENfQVVESU9fRFJJVkVSLDcwLDE4LDg1LDg1LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTgkiQXV0b2RldGVjdGFyIixJRENfQVVESU9fQVVUT0RFVEVDVCwxNzAsMjAsNDksMTQKRU5ECgoKTEFOR1VBR0UgTEFOR19QT1JUVUdVRVNFLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIApCRUdJTgogICAgSURTX1dJTkVfVkVSU0lPTiAgICAgICAgIkNWUyIKICAgIElEU19UQUJfR0VORVJBTCAgICAgICAgICJHZXJhbCIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJCaWJsaW90ZWNhcyIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICJVbmlkYWRlcyIKRU5ECg==