LyoKICogKEdlcm1hbikgUmVnZWRpdCByZXNvdXJjZXMKICoKICogQ29weXJpZ2h0IDIwMDQgTWljaGFlbCBGcml0c2NoZXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfTkVVVFJBTAoKLyoKICogTWVudQogKi8KCklEQ19SRUdFRElUIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImRGF0ZWkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImQmVlbmRlbiIsICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImSGlsZmUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICIm3GJlciAuLi4iLCAgICAgICAgICAgICAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9SRUdFRElUX01FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZSZWdpc3RyeSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlJlZ2lzdHJ5ICZpbXBvcnRpZXJlbi4uLiIsICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQoKICAgICAgICBNRU5VSVRFTSAiUmVnaXN0cnkgJmV4cG9ydGllcmVuLi4uIiwgICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTWl0IE5ldHp3ZXJrcmVnaXN0cnkgdmVyYmluZGVuLi4uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZWb24gTmV0endlcmtyZWdpc3RyeSB0cmVubmVuLi4uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZEcnVja2VuXHRTdHJnK1AiLCAgICAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQmVlbmRlbiIsICAgICAgICAgICAgICAgICAgICAgICBJRF9SRUdJU1RSWV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImQmVhcmJlaXRlbiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibEbmRlcm4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZOZXUiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZTY2hs/HNzZWwiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZaZWljaGVua2V0dGUiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImQmlu5HJ3ZXJ0IiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIFdlcnQiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZM9nNjaGVuXHRFbnRmIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiJlVtYmVuZW5uZW4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNjaGz8c3NlbG5hbWUgJmtvcGllcmVuIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlN1Y2hlblx0U3RyZytGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICImTuRjaHN0ZXMgZmluZGVuXHRGMyIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZBbnNpY2h0IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiU3RhdHVzJmxlaXN0ZSIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVHJlbm5lbiIsICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFrdHVhbGlzaWVyZW5cdEY1IiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICBFTkQKICAgIFBPUFVQICImRmF2b3JpdGVuIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiWnUgZGVuIEZhdm9yaXRlbiAmaGluenVm/GdlbiIsICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICJWb24gZGVuIEZhdm9yaXRlbiAmbPZzY2hlbiIsICAgICAgICAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIiZIaWxmZSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZIaWxmZXRoZW1lblx0RjEiLCAgICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICIm3GJlciBSZWdpc3RyeSBFZGl0b3IiLCAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9QT1BVUF9NRU5VUyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgUE9QVVAgIiIKICBCRUdJTgoJTUVOVUlURU0gIibEbmRlcm4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiQmlu5HJlIERhdGVuIORuZGVybiIsICAgICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJkz2c2NoZW5cdEVudGYiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQoJTUVOVUlURU0gIiZVbWJlbm5lbmVuIiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJk5ldSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJlNjaGz8c3NlbCIsICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAiJlplaWNoZW5rZXR0ZSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZCaW7kcndlcnQiLCAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQgV2VydCIsICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZM9nNjaGVuXHRFbnRmIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiJlVtYmVuZW5uZW4iLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNjaGz8c3NlbG5hbWUgJmtvcGllcmVuIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlN1Y2hlblx0U3RyZytGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogIEVORApFTkQKCgovKgogKiBEaWFsb2cKICovCgpJRERfRVhQT1JUX1RFTVBMQVRFIERJQUxPRyBESVNDQVJEQUJMRSAgNTAsIDUwLCAyNzgsIDU0ClNUWUxFIERTXzNETE9PSyB8IERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19DTElQU0lCTElOR1MgfAogICAgV1NfQk9SREVSCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICJSZWdpc3RyeSAmZXhwb3J0aWVyZW4iLCBJRENfRVhQT1JUX0JBU0UsIDYsIDYsIDI2NiwgNDIsIFdTX0dST1VQCiAgICBBVVRPUkFESU9CVVRUT04gIiZBbGxlcyIsIElEQ19FWFBPUlRfQUxMLCAxMiwgMTUsIDI0NCwgMTIKICAgIEFVVE9SQURJT0JVVFRPTiAiQXVzZ2V35GhsdGVyICZad2VpZzoiLCBJRENfRVhQT1JUX1NFTEVDVEVELCAxMiwgMzAsIDkwLCAxMgogICAgRURJVFRFWFQgSURDX0VYUE9SVF9QQVRILCAxMDIsIDMwLCAxNjQsIDEyCkVORAoKSUREX0ZJTkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgODUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlN1Y2hlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJTdWNoZW46IixJRENfU1RBVElDLDUsNywxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDQwLDUsMTEwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiU3VjaGVuIG5hY2g6IixJRENfU1RBVElDLDUsIDIyLCAxMTksIDgKICAgIENIRUNLQk9YICAgICAgICAiU2NobPxzc2VsbiIsIElEQ19GSU5EX0tFWVMsIDUsIDM0LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICJXZXJ0ZW4iLCBJRENfRklORF9WQUxVRVMsIDUsIDQ2LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIENIRUNLQk9YICAgICAgICAiRGF0ZW4iLCBJRENfRklORF9DT05URU5ULCA1LCA1OCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIktvbXBsZXR0ZSBaZWljaGVuZm9sZ2UgdmVyZ2xlaWNoZW4iLCBJRENfRklORF9XSE9MRSwgNSwgNzAsIDE1MCwgMTAsIFdTX1RBQlNUT1AgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIERFRlBVU0hCVVRUT04gICAiU3VjaGVuIixJRE9LLDE2MCw1LDQ1LDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkFiYnJlY2hlbiIsSURDQU5DRUwsMTYwLDIyLDQ1LDExLCBXU19HUk9VUApFTkQKCklERF9BRERGQVZPUklURSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLDE3LCAyMTAsIDU1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJadSBkZW4gRmF2b3JpdGVuIGhpbnp1ZvxnZW4iCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICJOQU1FOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICJPSyIsSURPSywxNDAsNDAsMzAsMTEsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAiQWJicmVjaGVuIixJRENBTkNFTCwxNzUsNDAsMzAsMTEsIFdTX0dST1VQCkVORAoKSUREX0RFTEZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsMTcsIDIxMCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlZvbiBkZW4gRmF2b3JpdGVuIGVudGZlcm5lbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIk5hbWU6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgTElTVEJPWCAgICAgICAgSURDX05BTUVfTElTVCw1LDE1LDIwMCw1MiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAiT0siLElET0ssMTQwLDczLDMwLDExLCBXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgIkFiYnJlY2hlbiIsSURDQU5DRUwsMTc1LDczLDMwLDExLCBXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiWmVpY2hlbmtldHRlIORuZGVybiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImTmFtZToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIiZEYXRlbjoiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkFiYnJlY2hlbiIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEV09SRCBXZXJ0IGVkaXRpZXJlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImTmFtZToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIiZEYXRlbjoiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJCYXNpcyIsIElEQ19EV09SRF9CQVNFLCAxMjAsIDMwLCA4NSwgMzcsIEJTX0dST1VQQk9YCiAgICBBVVRPUkFESU9CVVRUT04gIkhleGFkZXppbWFsIiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIkRlemltYWwiLCBJRENfRFdPUkRfREVDLCAxMzAsIDUyLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDgwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkFiYnJlY2hlbiIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfQklOQVJZIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiQmlu5HJlbiBXZXJ0IGVkaXRpZXJlbiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImTmFtZToiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIiZEYXRlbjoiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1ZBTFVFX0RBVEEsIkhleEVkaXQiLFdTX1RBQlNUT1AsNCw0MCwxNjAsNDAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDgwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIkFiYnJlY2hlbiIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJOYW1lIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cCIKICAgIElEU19MSVNUX0NPTFVNTl9EQVRBICAgICJEYXRlbiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIlJlZ2lzdHJ5IEVkaXRvciIKICAgIElEQ19SRUdFRElUICAgICAgICAgICAgICJSRUdFRElUIgogICAgSURDX1JFR0VESVRfRlJBTUUgICAgICAgIlJFR0VESVRfRlJBTUUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX01FTlUgICAgICAgICJCZWZlaGxlIGb8ciBkYXMgQmVhcmJlaXRlbiBkZXIgZ2FuemVuIFJlZ2lzdHJ5IgogICAgSURfRURJVF9NRU5VICAgICAgICAgICAgIkJlZmVobGUgZvxyIHVtIFNjaGz8c3NlbCBvZGVyIFdlcnRlIHp1IORuZGVybiIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICJCZWZlaGxlIHVtIGRhcyBGZW5zdGVyIGFuenVwYXNzZW4iCiAgICBJRF9GQVZPUklURVNfTUVOVSAgICAgICAiQmVmZWhsZSBm/HIgZGllIEZhdm9yaXRlbiIKICAgIElEX0hFTFBfTUVOVSAgICAgICAgICAgICJCZWZlaGxlIHVtIGRpZSBIaWxmZSBvZGVyIEluZm9ybWF0aW9uZW4g/GJlciBkYXMgUHJvZ3JhbW0gYW56dXplaWdlbiIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJCZWZlaGxlIGb8ciBkYXMgRXJzdGVsbGVuIHZvbiBuZXVlbiBTY2hs/HNzZWxuIG9kZXIgRGF0ZW4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICLEbmRlcnQgZGllIERhdGVuIGVpbmVzIFdlcnRlcyIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICJG/Gd0IGVpbmVuIG5ldWVuIFNjaGz8c3NlbCBoaW56dSIKICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFICJG/Gd0IGVpbmVuIG5ldWUgWmVpY2hlbmtldHRlIGhpbnp1ICIKICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFICJG/Gd0IGVpbmVuIG5ldWVuIEJpbuRyd2VydCBoaW56dSIKICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUgICJG/Gd0IGVpbmVuIG5ldWVuIERXT1JEIFdlcnQgaGluenUiCiAgICBJRF9SRUdJU1RSWV9JTVBPUlRSRUdJU1RSWUZJTEUgIkltcG9ydGllcnQgZWluZSBUZXh0ZGF0ZWkgaW4gZGllIFJlZ2lzdHJ5IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwb3J0aWVydCBUZWlsZSBvZGVyIGRpZSBnYW56ZSBSZWdpc3RyeSBpbiBlaW5lIFRleHRkYXRlaSIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWZXJiaW5kZXQgenUgZWluZXIgUmVnaXN0cnkgZWluZXMgRnJlbWRjb21wdXRlcnMiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVHJlbm50IGRpZSBWZXJiaW5kdW5nIHp1IGRlciBSZWdpc3RyeSBlaW5lcyBGcmVtZGNvbXB1dGVycyIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJEcnVja3QgVGVpbGUgb2RlciBkaWUgZ2VzYW10ZSBSZWdpc3RyeSBhdXMiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICLWZmZuZXQgZGllIEhpbGZlIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIlplaWd0IFByb2dyYW1tbmFtZSwgVmVyc2lvbiB1bmQgQ29weXJpZ2h0IGFuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiQmVlbmRldCBkZW4gUmVnaXN0cnkgRWRpdG9yIgogICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTICJG/Gd0IFNjaGz8c3NlbCB6dSBkZW4gRmF2b3JpdGVuIGhpbnp1IgogICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFICJM9nNjaHQgU2NobPxzc2VsIHZvbiBkZW4gRmF2b3JpdGVuIgogICAgSURfVklFV19TVEFUVVNCQVIgICAgICAgIlplaWd0IG9kZXIgdmVyc3RlY2t0IGRpZSBTdGF0dXNsZWlzdGUiCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAixG5kZXJ0IGRpZSBQb3NpdGlvbiBkYXMgRmVuc3RlcnRlaWxlcnMiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiQWt0dWFsaXNpZXJ0IGRhcyBGZW5zdGVyIgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIkz2c2NodCBkaWUgQXVzd2FobCIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJCZW5lbm50IGRpZSBBdXN3YWhsIHVtIgogICAgSURfRURJVF9DT1BZS0VZTkFNRSAgICAgIktvcGllcnQgZGVuIFNjaGz8c3NlbG5hbWVuIGluIGRpZSBad2lzY2hlbmFibGFnZSIKICAgIElEX0VESVRfRklORCAgICAgICAgICAgICJGaW5kZXQgZWluZSBaZWljaGVua2V0dGUgaW4gZWluZW0gU2NobPxzc2VsLCBlaW5lbSBOYW1lbiBvZGVyIGluIERhdGVuIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIkZpbmRldCBkaWUgbuRjaHN0ZSBaZWljaGVua2V0dGUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUiAgICAgICAgICAgICAgICJGZWhsZXIiCiAgICBJRFNfQkFEX0tFWSAgICAgICAgICAgICAiS2FubiBkZW4gU2NobPxzc2VsICclcycgbmljaHQgbGVzZW4iCiAgICBJRFNfQkFEX1ZBTFVFICAgICAgICAgICAiS2FubiBkZW4gV2VydCAnJXMnIG5pY2h0IGxlc2VuIgogICAgSURTX1VOU1VQUE9SVEVEX1RZUEUgICAgIkthbm4gU2NobPxzc2VsIHZvbiBkaWVzZW0gVHlwICglbGQpIG5pY2h0IORuZGVybiIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICJEZXIgV2VydCBpc3QgenUgZ3Jv3yAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJCaXR0ZSBiZXN05HRpZ2VuIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIldvbGxlbiBTaWUgJyVzJyB3aXJrbGljaCBs9nNjaGVuPyIKICAgIElEU19ORVdLRVkgICAgICAgICAgICAgICJOZXVlciBTY2hs/HNzZWwgIyVkIgogICAgSURTX05FV1ZBTFVFICAgICAgICAgICAgIk5ldWVyIFdlcnQgIyVkIgogICAgSURTX05PVEZPVU5EICAgICAgICAgICAgIlN1Y2hmb2xnZSAnJXMnIHd1cmRlIG5pY2h0IGdlZnVuZGVuLiIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0ZJTEVESUFMT0dfSU1QT1JUX1RJVExFICAgIlJlZ2lzdHJ5LURhdGVpIGltcG9ydGllcmVuIgogICAgSURTX0ZJTEVESUFMT0dfRVhQT1JUX1RJVExFICAgIlJlZ2lzdHJ5LURhdGVpIGV4cG9ydGllcmVuIgogICAgSURTX0ZJTEVESUFMT0dfRklMVEVSICAgICAgICAgIlJlZ2lzdHJ5LURhdGVpZW5cMCoucmVnXDBXaW45eC9OVDQgUmVnaXN0cnktRGF0ZWllbiAoUkVHRURJVDQpXDAqLnJlZ1wwQWxsZSBEYXRlaWVuICgqLiopXDAqLipcMFwwIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfUkVHSVNUUllfUk9PVF9OQU1FICAgICAgICAgICAiQXJiZWl0c3BsYXR6IgogICAgSURTX1JFR0lTVFJZX0RFRkFVTFRfVkFMVUUgICAgICAgIihTdGFuZGFyZCkiCiAgICBJRFNfUkVHSVNUUllfVkFMVUVfTk9UX1NFVCAgICAgICAiKFdlcnQgbmljaHQgZ2VzZXR6dCkiCiAgICBJRFNfUkVHSVNUUllfVkFMVUVfQ0FOVF9ESVNQTEFZICAiKGthbm4gV2VydCBuaWNodCBkYXJzdGVsbGVuKSIKICAgIElEU19SRUdJU1RSWV9VTktOT1dOX1RZUEUgICAgICAgICIodW5iZWthbm50ICVkKSIKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgovKgogKiBURVhUSU5DTFVERQogKi8KCjEgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKCgovKgogKiBTdHJpbmcgVGFibGUKICovCgovKgogKlNUUklOR1RBQkxFIERJU0NBUkRBQkxFCiAqQkVHSU4KICogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgItZmZm5ldCBkaWUgSGlsZmUuIgogKiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiWmVpZ3QgUHJvZ3JhbW1uYW1lLCBWZXJzaW9uIHVuZCBDb3B5cmlnaHQgYW4iCiAqRU5ECiAqLwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo=