LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogR2VybWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUCgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEFud2VuZHVuZ3NlaW5zdGVsbHVuZ2VuICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNTAKICAgIExURVhUICAgICAgICAgICAiV2luZSBrYW5uIGb8ciBqZWRlIEFud2VuZHVuZyBlaW5lIHVudGVyc2NoaWVkbGljaGUgV2luZG93c3ZlcnNpb24gbmFjaGFobWVuLiBEaWVzZXIgUmVpdGVyIGlzdCBtaXQgZGVuIEJpYmxpb3RoZWstIHVuZCBHcmFmaWstUmVpdGVyIHZlcmtu/HBmdCwgZGFtaXQgZW50d2VkZXIgc3lzdGVtd2VpdGUgb2RlciBhbndlbmR1bmdzYWJo5G5naWdlIEVpbnN0ZWxsdW5nZW4gaW4gZGllc2VuIFJlaXRlcm4gdm9yZ2Vub21tZW4gd2VyZGVuIGv2bm5lbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTUsMjAsMjI3LDM1CiAgICBDT05UUk9MICAgICAgICAgIkFud2VuZHVuZ2VuIixJRENfQVBQX0xJU1RWSUVXLCJTeXNMaXN0VmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTFZTX0xJU1QgfCBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMsCiAgICAgICAgICAgICAgICAgICAgMTUsNTUsMjMwLDE1NQogICAgUFVTSEJVVFRPTgkgICAgIkFudy4gJmhpbnp1ZvxnZW4iLElEQ19BUFBfQUREQVBQLCA5MCwyMTQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICJBbncuICZlbnRmZXJuZW4iLElEQ19BUFBfUkVNT1ZFQVBQLCAxNzAsMjE0LDc1LDE0CiAgICBMVEVYVCAgICAgICAgICAgIiZXaW5kb3dzIFZlcnNpb246IixJRENfU1RBVElDLDE3LDIzNiw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMzQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUCSAgICAiQmlsZHNjaGlybWZhcmJ0aWVmZTogIixJRENfU1RBVElDLDgsMTAsNzAsMzAKICAgIENPTUJPQk9YCSAgICBJRENfU0NSRUVOX0RFUFRILDgwLDgsMTcwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIEdST1VQQk9YICAgICAgICAiIEZlbnN0ZXJlaW5zdGVsbHVuZ2VuICIsSURDX1NUQVRJQyw4LDI1LDI0NCwxMjAKCiAgICBDT05UUk9MCSAgICAiRXJsYXViZSBEaXJlY3RYIEFud2VuZHVuZ2VuLCBkYXNzIGRpZSBNYXVzIGRhcyBBbndlbmR1bmdzZmVuc3RlciBuaWNodCB2ZXJsYXNzZW4ga2Fubi4iLElEQ19EWF9NT1VTRV9HUkFCLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzUsMjMwLDgKICAgIENPTlRST0wJICAgICJBa3RpdmllcnVuZyBkZXIgRG9wcGVscHVmZmVydW5nIGRlcyBEZXNrdG9wcyIsSURDX0RPVUJMRV9CVUZGRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NSwyMzAsOAogICAgCiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgb2YgdGhpcyBleHBsYW5hdGlvbiBjb3VsZCBiZSBhIGxvdCBiZXR0ZXIgKi8KICAgIExURVhUICAgICAgICAgICAiU2llIGv2bm5lbiBlbnR3ZWRlciBlaW5lbiBXaW5kb3dzIERlc2t0b3AgZW11bGllcmVuLCBpbiBkZW0gYWxsZSBGZW5zdGVyIGluIGVpbmVtICd2aXJ0dWVsbGVuIEJpbGRzY2hpcm0nIHp1c2FtbWVuIHNpbmQsIG9kZXIgU2llIGxhc3NlbiBlcyB6dSwgZGFzcyBkaWUgRmVuc3RlciBhdWYgaWhyZW4gbm9ybWFsZW4gRGVza3RvcCBwbGF0emllcnQgd2VyZGVuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSw3MywyMjgsMjgKICAgIExURVhUICAgICAgICAgICAiRGVza3RvcC1HcvbfZToiLElEQ19ERVNLVE9QX1NJWkUsMTUsMTE1LDUwLDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTE0LDExNSw4LDgsV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiRW11bGllcmUgZWluZW4gdmlydHVlbGxlbiBEZXNrdG9wIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMDAsMjMwLDEwCgkJICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDcwLDExNSw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDEyMywxMTUsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgCiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCwxNDAsMjQ0LDEyMAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIlZlcnRleCBTaGFkZXIgVW50ZXJzdPx0enVuZzogIixJRENfU1RBVElDLDE1LDE1MCw4MCwzNQogICAgQ09NQk9CT1ggICAgICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxNTAsMTUwLDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBDT05UUk9MICAgICAgICAgIkVybGF1YmUgUGl4ZWwgU2hhZGVyICh3ZW5uIGVzIGR1cmNoIGRpZSBIYXJkd2FyZSB1bnRlcnN0/HR6dCB3aXJkKSIsIElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTcwLDIzMCwxMApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCDcYmVyc2NocmVpYnVuZyAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRExMcyAoRHluYW1pYyBMaW5rIExpYnJhcmllcykga/ZubmVuIGVpbnplbG4gZWluZ2VzdGVsbHQgd2VyZGVuLCBlbnR3ZWRlciBCdWlsdGluIChnZXN0ZWxsdCBkdXJjaCBXaW5lKSBvZGVyIE5hdGl2ZSAodm9uIFdpbmRvd3Mgb2RlciBkdXJjaCBkaWUgQW53ZW5kdW5nIGdlc3RlbGx0KS4iCiAgICAgICAgICAgICAgICAgICAgLCAgSURDX1NUQVRJQywxNSwxNywyMjgsMzIKICAgIExURVhUICAgICAgICAgICAiTmV1ZSDcYmVyc2NocmVpYnVuZyBm/HI6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImSGluenVm/GdlbiAiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIkJlc3RlaGVuZGUg3GJlcnNjaHJlaWJ1bmdlbjoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkJlYXJiZWl0ZW4iLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZFbnRmZXJuZW4iLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTEwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQmVhcmJlaXRlINxiZXJzY2hyZWlidW5nIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBMYWRlcmVpaGVuZm9sZ2UgIixJRENfU1RBVElDLDgsNCw5NCw2NgogICAgQ09OVFJPTCAgICAgICAgICImQnVpbHRpbiAoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJk5hdGl2ZSAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiQnVpJmx0aW4gZGFubiBOYXRpdmUiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpJnZlIGRhbm4gQnVpbHRpbiIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZBdXNzY2hhbHRlbiIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJBYmJyZWNoZW4iLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBMYXVmd2Vya3N6dW9yZG51bmcgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIiZIaW56dWb8Z2VuIixJRENfQlVUVE9OX0FERCwxNSw5OCw0MSwxNAogICAgUFVTSEJVVFRPTiAgICAgICImRW50ZmVybmVuIixJRENfQlVUVE9OX1JFTU9WRSw2MCw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICImQXV0b21hdGlzY2giLCBJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDk4LDQ5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIiZQZmFkOiIsSURDX1NUQVRJQywxNSwxMjMsMjAsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE1NSwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJkR1cmNoc3VjaGVuIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwMSwxMjAsNDUsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIiZUeXA6IixJRENfU1RBVElDLDE0LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVCAgICAgICAgICAgIkJlemVpY2hudW5nIHVuZCBTZXJpZW5udW1tZXIiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDEyNSwxMAoKICAgIFBVU0hCVVRUT04gICAgICAiJlplaWdlIEVyd2VpdGVydCIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTc4LDEzNiw2OCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBdXRvbWF0aXNjaCAmdm9tIEdlcuR0OiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTY5LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIkR1cmNoJnN1Y2hlbiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwMSwxNzYsNDUsMTMKICAgIENPTlRST0wgICAgICAgICAiJm1hbnVlbGxlcyAgWnV3ZWlzZW46IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNzksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIiZCZXplaWNobnVuZzoiLElEQ19TVEFUSUNfTEFCRUwsMzMsMjA4LDQxLDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNzgsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJTJmVyaWVubnI6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsNDEsMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNzgsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiWmVpZ2UgRG90LURhdGVpZW4gYW4iLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAiQXVkaW8gVHJlaWJlcjogIixJRENfU1RBVElDLDEwLDIwLDYwLDgKICAgIENPTUJPQk9YICAgIElEQ19BVURJT19EUklWRVIsNzAsMTgsODUsODUsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAiQXV0b21hdGlzY2giLElEQ19BVURJT19BVVRPREVURUNULDE3MCwyMCw1OSwxNAogICAgUFVTSEJVVFRPTiAgIktvbmZpZ3VyaWVyZW4iLElEQ19BVURJT19DT05GSUdVUkUsMTcwLDQwLDU5LDE0CiAgICBQVVNIQlVUVE9OICAiS29udHJvbGxzY2hpcm0iLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw2MCw1OSwxNAogICAgQ09OVFJPTCAgICAgIkdlcuR0ZSIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTAsNDAsMTUwLDE2MAogICAgR1JPVVBCT1ggICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwICAgIAogICAgTFRFWFQgICAgICAgIkhhcmR3YXJlIEJlc2NobGV1bmlndW5nOiAiLCBJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1ggICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjEzLDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICJUcmVpYmVyIEVtdWxhdGlvbiIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIzMCwyMzAsMTAKRU5ECgpJRERfQVBQRUFSQU5DRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJNb3RpdjoiLElEQ19TVEFUSUMsOCwxMCwyNDQsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDgsMTgsMjQ0LDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJNb3RpdiBpbnN0YWxsaWVyZW4uLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwzMiwxMDAsMTQKICAgIExURVhUICAgICAgICAgICAiRmFyYmU6IixJRENfVEhFTUVfQ09MT1JURVhULDgsNDgsMjQ0LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTyw4LDU2LDI0NCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiR3L232U6IixJRENfVEhFTUVfU0laRVRFWFQsOCw3NCwyNDQsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sOCw4MiwyNDQsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiQW53ZW5kdW5nZW4iCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiQmlibGlvdGhla2VuIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkxhdWZ3ZXJrZSIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICJCaXR0ZSB35GhsZW4gU2llIGVpbiBVbml4LVZlcnplaWNobmlzIGb8ciBkYXMgTGF1ZndlcmsuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIlZlcnN0ZWNrZSBFcndlaXRlcnQiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiWmVpZ2UgRXJ3ZWl0ZXJ0IgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihLZWluIE1vdGl2KSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICJHcmFmaWsiCiAgICBJRFNfVEFCX0FQUEVBUkFOQ0UgICAgICAiRGFyc3RlbGx1bmciCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiQXVkaW8iCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAi3GJlciIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lLUtvbmZpZ3VyYXRpb24iCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAiTW90aXYtRGF0ZWllbiIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJNb3Rpdi1EYXRlaSBhdXN35GhsZW4iCkVORAo=