LyoKICogIERhbmlzaCByZXNvdXJjZXMgZm9yIFRhc2sgTWFuYWdlcgogKgogKiAgQ29weXJpZ2h0IDIwMDggSmVucyBBbGJyZXRzZW4gPGplbnNAYWxicmV0c2VuLmRrPgogKgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX0RBTklTSCwgU1VCTEFOR19ERUZBVUxUCgovKgogTWVudQoqLwoKSURSX1RBU0tNQU5BR0VSIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImRmlsIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJk55IG9wZ2F2ZSAoS/hyLi4uKSIsICAgICAgICAgSURfRklMRV9ORVcKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFmc2x1dCBvcGdhdmViZWhhbmRsZXJlbiIsICAgSURfRklMRV9FWElUCiAgICBFTkQKICAgIFBPUFVQICImSW5kc3RpbGxpbmdlciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBbHRpZCD4dmVyc3QiLCAgICAgICAgICAgICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJk1pbmlt6XIgdmVkIGJydWciLCAgICAgICAgICAgSURfT1BUSU9OU19NSU5JTUlaRU9OVVNFCiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIlMma2p1bCBu5XIgbWluaW1lcnQiLCAgICAgICAgIElEX09QVElPTlNfSElERVdIRU5NSU5JTUlaRUQKICAgICAgICAsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiVmkmcyAxNi1iaXRzIGpvYiIsICAgICAgICAgICAgSURfT1BUSU9OU19TSE9XMTZCSVRUQVNLUwogICAgICAgICwgQ0hFQ0tFRAogICAgRU5ECiAgICBQT1BVUCAiJlZpcyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIk9wZGF0ZSZyIG51IiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgICAgIFBPUFVQICImT3BkYXRlcmluZ3NmcmVrdmVucyIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJkj4aiIsICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX0hJR0gKICAgICAgICAgICAgTUVOVUlURU0gIiZOb3JtYWwiLCAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwKICAgICAgICAgICAgLCBDSEVDS0VECiAgICAgICAgICAgIE1FTlVJVEVNICImTGF2IiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfTE9XCiAgICAgICAgICAgIE1FTlVJVEVNICImUGF1c2UiLCAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfUEFVU0VECgogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJTJnRvcmUgaWtvbmVyIiwgICAgICAgICAgICAgICBJRF9WSUVXX0xBUkdFCiAgICAgICAgTUVOVUlURU0gIlMmbeUgaWtvbmVyIiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfU01BTEwKICAgICAgICBNRU5VSVRFTSAiJkRldGFsamVyIiwgICAgICAgICAgICAgICAgICAgSURfVklFV19ERVRBSUxTLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZW5mxnIGtvbG9ubmVyLi4uIiwgICAgICAgICAgIElEX1ZJRVdfU0VMRUNUQ09MVU1OUwogICAgICAgIFBPUFVQICImUHJvY2Vzc29yaGlzdG9yaWsiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIkVuIGdyYWYsIGFsbGUgcHImb2Nlc3NvcmVyIixJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhBTEwKCiAgICAgICAgICAgIE1FTlVJVEVNICJFbiBncmFmICZwZXIgcHJvY2Vzc29yIiwgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSFBFUkNQVQogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSAiVmkmcyBrZXJuZXRpZGVyIiwgICAgICAgICAgICAgSURfVklFV19TSE9XS0VSTkVMVElNRVMKICAgIEVORAogICAgUE9QVVAgIlZpbiZkdWVyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiT3BzdGlsICZ2YW5kcmV0IiwgICAgICAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICAgICAgTUVOVUlURU0gIk9wc3RpbCAmbG9kcmV0IiwgICAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgICAgICBNRU5VSVRFTSAiJk1pbmlt6XIiLCAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgICAgIE1FTlVJVEVNICJNYSZrc2lt6XIiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIiZLb3J0c3RhayIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgICAgIE1FTlVJVEVNICImVmlzIPh2ZXJzdCIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVAogICAgRU5ECiAgICBQT1BVUCAiJkhq5mxwIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiRW1uZXIgaSAmaGrmbHAgZm9yIE9wZ2F2ZWJlaGFuZGxlciIsIElEX0hFTFBfVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZPbSBPcGdhdmViZWhhbmRsZXIiLCAgICAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9XSU5ET1dTTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBNRU5VSVRFTSAiT3BzdGlsICZ2YW5kcmV0IiwgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgTUVOVUlURU0gIk9wc3RpbCAmbG9kcmV0IiwgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZCiAgICBNRU5VSVRFTSAiJk1pbmlt6XIiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgIE1FTlVJVEVNICJNYSZrc2lt6XIiLCAgICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NQVhJTUlaRQogICAgTUVOVUlURU0gIiZLb3J0c3RhayIsICAgICAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0NBU0NBREUKICAgIE1FTlVJVEVNICJWJmlzIPh2ZXJzdCIsICAgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQKRU5ECgpJRFJfQVBQTElDQVRJT05fUEFHRV9DT05URVhUMSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiRFVNTVkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTnkgb3BnYXZlIChL+HIuLi4pIiwgICAgICAgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU3RvcmUgaWtvbmVyIiwgICAgICAgICAgICAgICBJRF9WSUVXX0xBUkdFCiAgICAgICAgTUVOVUlURU0gIlMmbeUgaWtvbmVyIiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfU01BTEwKICAgICAgICBNRU5VSVRFTSAiJkRldGFsamVyIiwgICAgICAgICAgICAgICAgICAgSURfVklFV19ERVRBSUxTLCBDSEVDS0VECiAgICBFTkQKRU5ECgpJRFJfQVBQTElDQVRJT05fUEFHRV9DT05URVhUMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiRFVNTVkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJTJmtpZnQgdGlsIiwgICAgICAgICAgICAgICAgICBJRF9BUFBMSUNBVElPTl9QQUdFX1NXSVRDSFRPCiAgICAgICAgTUVOVUlURU0gIlZpcyAm+HZlcnN0IiwgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9wc3RpbCAmdmFuZHJldCIsICAgICAgICAgICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgIE1FTlVJVEVNICJPcHN0aWxsICZsb2RyZXQiLCAgICAgICAgICAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZCiAgICAgICAgTUVOVUlURU0gIiZNaW5pbelyIiwgICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgICAgICBNRU5VSVRFTSAiTWEma3NpbelyIiwgICAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NQVhJTUlaRQogICAgICAgIE1FTlVJVEVNICImS29ydHN0YWsiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWZzbHV0IG9wZ2F2JmUiLCAgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9FTkRUQVNLCiAgICAgICAgTUVOVUlURU0gIiZH5SB0aWwgcHJvY2VzcyIsICAgICAgICAgICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfR09UT1BST0NFU1MKICAgIEVORApFTkQKCklEUl9UUkFZX1BPUFVQIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkdlbm9wJnJldCIsICAgICAgICAgICAgICAgICAgIElEX1JFU1RPUkUKICAgICAgICBNRU5VSVRFTSAiQWZzbHUmdCIsICAgICAgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZBbHRpZCD4dmVyc3QiLCAgICAgICAgICAgICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AKICAgIEVORApFTkQKCklEUl9QUk9DRVNTX1BBR0VfQ09OVEVYVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiRFVNTVkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJBZnNsdXQgcHJvYyZlc3MiLCAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1MKICAgICAgICBNRU5VSVRFTSAiQWZzbHUmdCBwcm9jZXNzdHLmIiwgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTVFJFRQoKICAgICAgICBNRU5VSVRFTSAiJkZlamxz+GciLCAgICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9ERUJVRwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICJBbmdpICZwcmlvcml0ZXQiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZTYW10aWQiLCAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9SRUFMVElNRQoKICAgICAgICAgICAgTUVOVUlURU0gIiZI+GoiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9ISUdICgogICAgICAgICAgICBNRU5VSVRFTSAiT3ZlciBub3JtJmFsIiwgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0FCT1ZFTk9STUFMCgogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbCIsICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX05PUk1BTAoKICAgICAgICAgICAgTUVOVUlURU0gIiZVbmRlciBub3JtYWwiLCAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9CRUxPV05PUk1BTAoKICAgICAgICAgICAgTUVOVUlURU0gIiZMYXYiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9MT1cKCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gIiZBbmdpdiBzbOZndHNrYWIuLi4iLCAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUQUZGSU5JVFkKCU1FTlVJVEVNICImUmVkaWdlciBmZWpsc/hnbmluZ3NrYW5hbGVyLi4uIiwgSURfUFJPQ0VTU19QQUdFX0RFQlVHQ0hBTk5FTFMKICAgIEVORApFTkQKCi8qCiBEaWFsb2cKKi8KCklERF9BQk9VVEJPWCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjU5LCAyMTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk9tIE9wZ2F2ZWJlaGFuZGxlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJPcGdhdmViZWhhbmRsZXIgMS4wXG5PcGhhdnNyZXQgMTk5OSAtIDIwMDEgdGlsaPhyZXJcbkJyaWFuIFBhbG1lciAoYnJpYW5wQHJlYWN0b3Mub3JnKVxuT3ZlcnNhdCBhZlxuSmVucyBBbGJyZXRzZW4gKGplbnNAYWxicmV0c2VuLmRrKSIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywiU3RhdGljIixTU19MRUZUTk9XT1JEV1JBUCB8IFdTX0dST1VQLDUzLDIwLAogICAgICAgICAgICAgICAgICAgIDIwMCw1MAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxODMsMTg5LDQ0LDE0LFdTX0dST1VQCiAgICBJQ09OICAgICAgICAgICAgSURJX1RBU0tNQU5BR0VSLElEQ19TVEFUSUMsMTksMzAsMjAsMjAKICAgIEVESVRURVhUICAgICAgICBJRENfTElDRU5TRV9FRElULDUzLDYzLDE3NCwxMDcsRVNfTVVMVElMSU5FIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IFdTX1ZTQ1JPTEwKRU5ECgpJRERfVEFTS01HUl9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjQsIDI0NgpTVFlMRSBEU19DRU5URVIgfCBXU19NSU5JTUlaRUJPWCB8IFdTX01BWElNSVpFQk9YIHwgV1NfUE9QVVAgfAogICAgV1NfQ0xJUFNJQkxJTkdTIHwgV1NfQ0xJUENISUxEUkVOIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgV1NfVEhJQ0tGUkFNRQpDQVBUSU9OICJPcGdhdmViZWhhbmRsZXIiCk1FTlUgSURSX1RBU0tNQU5BR0VSCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiVGFiMSIsSURDX1RBQiwiU3lzVGFiQ29udHJvbDMyIixXU19UQUJTVE9QLDMsMywyNTcsMjI4CkVORAoKSUREX0FQUExJQ0FUSU9OX1BBR0UgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0MiIsSURDX0FQUExJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSE9XU0VMQUxXQVlTIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCw3LDcsMjMzLDE3NwogICAgUFVTSEJVVFRPTiAgICAgICImTnkgb3BnYXZlLi4uIixJRENfTkVXVEFTSywxODcsMTg5LDUzLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZTa2lmdCB0aWwiLElEQ19TV0lUQ0hUTywxMzEsMTg5LDUzLDE0LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIkFmc2x1dCBvcGdhdiZlIixJRENfRU5EVEFTSyw3NSwxODksNTMsMTQsV1NfRElTQUJMRUQKRU5ECgpJRERfUFJPQ0VTU19QQUdFIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfQ09OVFJPTCB8IFdTX0NISUxEIHwgV1NfQ0xJUENISUxEUkVOCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19QUk9DRVNTTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTIHwgTFZTX09XTkVSREFUQSB8CiAgICAgICAgICAgICAgICAgICAgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCw3LDcsMjMzLDE3NwogICAgUFVTSEJVVFRPTiAgICAgICJBZnNsdXQgcHJvYyZlc3MiLElEQ19FTkRQUk9DRVNTLDE3MSwxODksNjksMTQKICAgIENPTlRST0wgICAgICAgICAiVmkmcyBwcm9jZXNzZXIgZnJhIGFsbGUgYnJ1Z2VyZSIsSURDX1NIT1dBTExQUk9DRVNTRVMsCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDE5MSwxMTEsMTAKRU5ECgovKklERF9QRVJGT1JNQU5DRV9QQUdFIERJQUxPR0VYIDAsIDAsIDI0NywgMjEwKi8KSUREX1BFUkZPUk1BTkNFX1BBR0UgRElBTE9HRVggRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIlByb2Nlc3NvcmJydWciLElEQ19DUFVfVVNBR0VfRlJBTUUsNSw1LDYwLDU0LFdTX1RBQlNUT1AsIFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkh1a29tbWVsc2VzYnJ1ZyIsSURDX01FTV9VU0FHRV9GUkFNRSw1LDYzLDYwLDU0LEJTX0xFRlRURVhULCBXU19FWF9UUkFOU1BBUkVOVAogICAgR1JPVVBCT1ggICAgICAgICJUb3RhbHQiLElEQ19UT1RBTFNfRlJBTUUsNSwxMjIsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiVmlydHVlbCBodWtvbW1lbHNlIChLKSIsSURDX0NPTU1JVF9DSEFSR0VfRlJBTUUsNSwxNjYsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiRnlzaXNrIGh1a29tbWVsc2UgKEspIixJRENfUEhZU0lDQUxfTUVNT1JZX0ZSQU1FLDEzMSwxMjIsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiS2VybmUgaHVrb21tZWxzZSAoSykiLElEQ19LRVJORUxfTUVNT1JZX0ZSQU1FLDEzMSwxNjYsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIExURVhUICAgICAgICAgICAiSOVuZHRhZyIsSURTX1RPVEFMU19IQU5ETEVfQ09VTlQsMTIsMTMxLDI3LDgKICAgIExURVhUICAgICAgICAgICAiVHLlZGUiLElEU19UT1RBTFNfVEhSRUFEX0NPVU5ULDEyLDE0MCwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlByb2Nlc3NlciIsSURTX1RPVEFMU19QUk9DRVNTX0NPVU5ULDEyLDE0OSwzNCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19IQU5ETEVfQ09VTlQsNjUsMTMxLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfVEhSRUFEX0NPVU5ULDY1LDE0MCw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX1BST0NFU1NfQ09VTlQsNjUsMTQ5LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgTFRFWFQgICAgICAgICAgICJUb3RhbHQiLElEU19DT01NSVRfQ0hBUkdFX1RPVEFMLDEyLDE3NSwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIkdy5m5zZSIsSURTX0NPTU1JVF9DSEFSR0VfTElNSVQsMTIsMTg0LDI1LDgKICAgIExURVhUICAgICAgICAgICAiVG9wIixJRFNfQ09NTUlUX0NIQVJHRV9QRUFLLDEyLDE5MywzNCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfVE9UQUwsNjUsMTc0LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX0xJTUlULDY1LDE4NCw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9QRUFLLDY1LDE5Myw0NSw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiVG90YWx0IixJRFNfUEhZU0lDQUxfTUVNT1JZX1RPVEFMLDEzNywxMzEsMjcsOAogICAgTFRFWFQgICAgICAgICAgICJUaWxn5m5nZWxpZyIsSURTX1BIWVNJQ0FMX01FTU9SWV9BVkFJTEFCTEUsMTM3LDE0MCwzNSw4CiAgICBMVEVYVCAgICAgICAgICAgIlN5c3RlbSIsSURTX1BIWVNJQ0FMX01FTU9SWV9TWVNURU1fQ0FDSEUsMTM3LDE0OSwzNSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9UT1RBTCwxODUsMTMxLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfQVZBSUxBQkxFLDE4NSwxNDAsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9TWVNURU1fQ0FDSEUsMTg1LDE0OSw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiVG90YWx0IixJRFNfS0VSTkVMX01FTU9SWV9UT1RBTCwxMzcsMTc0LDI3LDgKICAgIExURVhUICAgICAgICAgICAiUGFnaW5lcmV0IixJRFNfS0VSTkVMX01FTU9SWV9QQUdFRCwxMzcsMTg0LDMwLDgKICAgIExURVhUICAgICAgICAgICAiSWtrZSBwYWdpbmVyZXQiLElEU19LRVJORUxfTUVNT1JZX05PTlBBR0VELDEzNywxOTMsNDAsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX1RPVEFMLDE4NSwxNzQsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfUEFHRUQsMTg1LDE4NCw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9OT05QQUdFRCwxODUsMTkzLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgR1JPVVBCT1ggICAgICAgICJIaXN0b3JpayBmb3IgcHJvY2Vzc29yYnJ1ZyIsSURDX0NQVV9VU0FHRV9ISVNUT1JZX0ZSQU1FLDc0LDUsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiSGlzdG9yaWsgZm9yIGh1a29tbWVsc2VzYnJ1ZyIsSURDX01FTU9SWV9VU0FHRV9ISVNUT1JZX0ZSQU1FLDc0LDYzLDE2OCw1NCwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBQVVNIQlVUVE9OICAgICAgIlZpc25pbmcgYWYgcHJvY2Vzc29yYnJ1ZyIsSURDX0NQVV9VU0FHRV9HUkFQSCwxMiwxNyw0NywzNywwLAoJCSAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIlZpc25pbmcgYWYgaHVrb21tZWxzZXNicnVnIixJRENfTUVNX1VTQUdFX0dSQVBILDEyLDc1LDQ3LDM3LDAsCiAgICAgICAgICAgICAgICAgICAgV1NfRVhfQ0xJRU5URURHRQogICAgUFVTSEJVVFRPTiAgICAgICJIaXN0b3JpayBmb3IgcHJvY2Vzc29yYnJ1ZyIsSURDX0NQVV9VU0FHRV9ISVNUT1JZX0dSQVBILDgxLDE3LAogICAgICAgICAgICAgICAgICAgIDE1MywzNywwLFdTX0VYX0NMSUVOVEVER0UKICAgIFBVU0hCVVRUT04gICAgICAiSGlzdG9yaWsgZm9yIGh1a29tbWVsc2VzYnJ1ZyIsSURDX01FTV9VU0FHRV9ISVNUT1JZX0dSQVBILDgxLDc1LAogICAgICAgICAgICAgICAgICAgIDE1MywzNywwLFdTX0VYX0NMSUVOVEVER0UKRU5ECgpJRERfREVCVUdfQ0hBTk5FTFNfRElBTE9HIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ3LCAyMTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRmVqbHP4Z25pbmdza2FuYWxlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0MiIsSURDX0RFQlVHX0NIQU5ORUxTX0xJU1QsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUyB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfAoJCSAgICBMVlNfU09SVEFTQ0VORElORyw3LDcsMjMzLDE3NwogICAgUFVTSEJVVFRPTiAgICAgICJMdWsiLElET0ssMTcxLDE4OSw2OSwxNApFTkQKCklERF9BRkZJTklUWV9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyMzEsIDE1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJQcm9jZXNzbOZndHNrYWIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTIwLDEzMyw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGxlciIsSURDQU5DRUwsMTc0LDEzMyw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICJJbmRzdGlsbGluZ2VuIGZvciBwcm9jZXNzbOZndHNrYWIgYmVzdGVtbWVyIGh2aWxrZSBwcm9jZXNzb3JlciBwcm9jZXNzZW4ga2FuIGv4cmUgcOUuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDUsNSwyMjAsMTYKICAgICAgICAgICAgICAgICAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAwIixJRENfQ1BVMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLAogICAgICAgICAgICAgICAgICAgIDExLDI4LDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDEiLElEQ19DUFUxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDQxLDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDIiLElEQ19DUFUyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDU0LDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDMiLElEQ19DUFUzLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDY3LDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDQiLElEQ19DUFU0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDgwLDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDUiLElEQ19DUFU1LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDkzLDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDYiLElEQ19DUFU2LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDEwNiwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciA3IixJRENfQ1BVNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMSwxMTksMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgOCIsSURDX0NQVTgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNjEsMjgsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgOSIsSURDX0NQVTksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNjEsNDEsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTAiLElEQ19DUFUxMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw1NCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxMSIsSURDX0NQVTExLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDY3LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDEyIixJRENfQ1BVMTIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsODAsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMTMiLElEQ19DUFUxMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw5Myw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxNCIsSURDX0NQVTE0LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDEwNiw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxNSIsSURDX0NQVTE1LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDExOSw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxNiIsSURDX0NQVTE2LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiwyOCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxNyIsSURDX0NQVTE3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw0MSw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxOCIsSURDX0NQVTE4LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw1NCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAxOSIsSURDX0NQVTE5LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw2Nyw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyMCIsSURDX0NQVTIwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw4MCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyMSIsSURDX0NQVTIxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiw5Myw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAyMiIsSURDX0NQVTIyLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiwxMDYsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJQcm9jZXNzb3IgMjMiLElEQ19DUFUyMywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxMTYsMTE5LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDI0IixJRENfQ1BVMjQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDI4LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDI1IixJRENfQ1BVMjUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDQxLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDI2IixJRENfQ1BVMjYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDU0LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDI3IixJRENfQ1BVMjcsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDY3LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDI4IixJRENfQ1BVMjgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDgwLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDI5IixJRENfQ1BVMjksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDkzLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDMwIixJRENfQ1BVMzAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDEwNiw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIlByb2Nlc3NvciAzMSIsSURDX0NQVTMxLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDE3NSwxMTksNDEsMTAKRU5ECgpJRERfQ09MVU1OU19ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDAsIDE5OQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJW5mxnIGtvbG9ubmVyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDg0LDE3OCw1MCwxNAogICAgUFVTSEJVVFRPTiAgICAgICJBbm51bGxlciIsSURDQU5DRUwsMTM4LDE3OCw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICJW5mxnIGtvbG9ubmVybmUgc29tIHZpc2VzIHDlIHByb2Nlc3NpZGVuIGkgb3BnYXZlYmVoYW5kbGVyZW4uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDcsNywxODEsMTcKICAgIENPTlRST0wgICAgICAgICAiJlByb2dyYW1uYXZuIixJRENfSU1BR0VOQU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDcsMjgsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQSUQgKFByb2Nlc3MgSUQpIixJRENfUElELCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywzOSwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlByb2Nlc3NvcmJydWciLElEQ19DUFVVU0FHRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw1MCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiUHJvYyZlc3NvcnRpZCIsSURDX0NQVVRJTUUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNjEsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZIdWtvbW1lbHNlc2JydWciLElEQ19NRU1PUllVU0FHRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNyw3MiwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSHVrb21tZWxzZXNicnVnLSZkZWx0YSIsSURDX01FTU9SWVVTQUdFREVMVEEsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgzLDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJI+Gplc3RlIEh1a29tbWVsc2VzYnJ1JmciLElEQ19QRUFLTUVNT1JZVVNBR0UsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDk0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJTaWRlJmZlamwiLElEQ19QQUdFRkFVTFRTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDEwNSwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiQnImdWdlcm9iamVrdGVyIixJRENfVVNFUk9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTE2LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJJbmQvVWQgbOZzaW5nZXIiLElEQ19JT1JFQURTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDEyNywxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSW5kL1VkIGzmc3RlIGJ5dGVzIixJRENfSU9SRUFEQllURVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDEzOCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiJlNlc3Npb24gSUQiLElEQ19TRVNTSU9OSUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTQ5LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJCcnVnZXImbmF2biIsSURDX1VTRVJOQU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDE2MCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiU2lkZWZlamwtZGVsdCZhIixJRENfUEFHRUZBVUxUU0RFTFRBLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTE3LDI4LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJTdPhycmVsc2UgcOUgJnZpcnR1ZWx0IGh1a29tbWVsc2UiLElEQ19WSVJUVUFMTUVNT1JZU0laRSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDExNywzOSwxMjAsMTAKICAgIENPTlRST0wgICAgICAgICAiUGEmZ2luZXJldCBzYW1saW5nIixJRENfUEFHRURQT09MLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMTcsNTAsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZJa2tlLXBhZ2luZXJldCBzYW1saW5nIixJRENfTk9OUEFHRURQT09MLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTE3LDYxLDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICJCYXNpc3Amcmlvcml0ZXQiLElEQ19CQVNFUFJJT1JJVFksIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMTcsNzIsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkFudGFsICZo5W5kdGFnIixJRENfSEFORExFQ09VTlQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExNyw4MywxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiQW50YWwgJnRy5WRlIixJRENfVEhSRUFEQ09VTlQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExNyw5NCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiR0RJLW9iamVrdGVyIixJRENfR0RJT0JKRUNUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTE3LDEwNSwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSW5kL1VkLXNrcml2bmluZ2VyIixJRENfSU9XUklURVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExNywxMTYsMTAwLDEwCiAgICBDT05UUk9MICAgICAgICAgIkluZC9VZCBieXRlcyBza3JldmV0IixJRENfSU9XUklURUJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTE3LDEyNywxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSW5kL1VkIGFuZGV0IixJRENfSU9PVEhFUiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTE3LDEzOCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiSW5kL1VkIGJ5dGVzIGFuZGV0IixJRENfSU9PVEhFUkJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTE3LDE0OSwxMDAsMTAKRU5ECgovKgogU3RyaW5nIFRhYmxlCiovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIk9wZ2F2ZWJlaGFuZGxlciIKICAgIElEQ19UQVNLTUdSICAgICAgICAgICAgICJPcGdhdmViZWhhbmRsZXIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0ZJTEVfTkVXICAgICAgICAgICAgICJL+HJlciBldCBueXQgcHJvZ3JhbSIKICAgIElEX09QVElPTlNfQUxXQVlTT05UT1AgICJPcGdhdmViZWhhbmRsZXJlbiB2aXNlcyBmb3JhbiBhbmRyZSBwcm9ncmFtbWVyIG1lZCBtaW5kcmUgZGVuIG1pbmltZXLpcyIKICAgIElEX09QVElPTlNfTUlOSU1JWkVPTlVTRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9wZ2F2ZWJlaGFuZGxlciBtaW5pbWVy6XMgbuVyIGR1IHNraWZ0ZXIgdGlsIGVuIGFuZGVuIHByb2Nlc3MiCiAgICBJRF9PUFRJT05TX0hJREVXSEVOTUlOSU1JWkVEICJTa2p1bCBvcGdhdmViZWhhbmRsZXJlbiBu5XIgZGVuIG1pbmltZXLpcyIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJUdmluZyBvcGdhdmViZWhhbmRsZXJlbiB0aWwgYXQgb3BkYXRlcmUgbnUsIHVhbnNldCBvcGRhdGVyaW5nc2ZyZWt2ZW5zIgogICAgSURfVklFV19MQVJHRSAgICAgICAgICAgIlZpc2VyIG9wZ2F2ZXIgbWVkIHN0b3JlIGlrb25lciIKICAgIElEX1ZJRVdfU01BTEwgICAgICAgICAgICJWaXNlciBvcGdhdmVyIG1lZCBzbeUgaWtvbmVyIgogICAgSURfVklFV19ERVRBSUxTICAgICAgICAgIlZpc2VyIGluZm9ybWF0aW9uIG9tIGh2ZXIgb3BnYXZlIgogICAgSURfVklFV19VUERBVEVTUEVFRF9ISUdIICJPcGRhdGVyZXIgdmlzbmluZ2VuIHRvIGdhbmdlciBwZXIgc2VrdW5kIgogICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwgIk9wZGF0ZXJlciB2aXNuaW5nZW4gaHZlcnQgYW5kZXQgc2VrdW5kIgogICAgSURfVklFV19VUERBVEVTUEVFRF9MT1cgIk9wZGF0ZXJlciB2aXNuaW5nZW4gaHZlcnQgZmplcmRlIHNla3VuZCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQgIk9wZGF0ZXJlciBpa2tlIGF1dG9tYXRpc2siCiAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdGlsbGVyIHZpbmR1ZXJuZSBw5SBza3JpdmVib3JkZXQgb3AgdmFuZHJldCAiCiAgICBJRF9XSU5ET1dTX1RJTEVWRVJUSUNBTExZICJTdGlsbGVyIHZpbmR1ZXJuZSBw5SBza3JpdmVib3JkZXQgb3AgbG9kcmV0ICIKICAgIElEX1dJTkRPV1NfTUlOSU1JWkUgICAgICJNaW5pbWVy6XIgdmluZHVlcm5lIgogICAgSURfV0lORE9XU19NQVhJTUlaRSAgICAgIk1ha3NpbWVy6XIgdmluZHVlcm5lIgogICAgSURfV0lORE9XU19DQVNDQURFICAgICAgIlZpc2VyIHZpbmR1ZXJuZSBvdmVucOUgaGluYW5kZW4gZGlhZ29uYWx0IGhlbm92ZXIgc2tyaXZlYm9yZGV0IgogICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQgIkhlbnRlciB2aW5kdWV0IGZyZW0sIG1lbiBz5nR0ZXIgZGV0IGlra2UgaSBmb2t1cyIKICAgIElEX0hFTFBfVE9QSUNTICAgICAgICAgICJWaXNlciBoauZscGVlbW5lciBvbSBvcGdhdmViZWhhbmRsZXJlbiIKICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJWaXNlciBwcm9ncmFtaW5mb3JtYXRpb24sIHZlcnNpb25udW1tZXIgb2cgb3BoYXZzcmV0IgogICAgSURfRklMRV9FWElUICAgICAgICAgICAgIkFmc2x1dHRlciBPcGdhdmViZWhhbmRsZXJlbiIKICAgIElEX09QVElPTlNfU0hPVzE2QklUVEFTS1MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJWaXNlciAxNi1iaXRzIHByb2dyYW1tZXIgdW5kZXIgJ250dmRtLmV4ZSciCiAgICBJRF9WSUVXX1NFTEVDVENPTFVNTlMgICAiVuZsZ2VyIGh2aWxrZSBrb2xvbm5lciBzb20gdmlzZXMgcOUgcHJvY2Vzc2lkZW4iCiAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUyAiVmlzZXIga2VybmV0aWQgaSB5ZGVsc2VzZ3JhZmVybmUiCiAgICBJRF9WSUVXX0NQVUhJU1RPUllfT05FR1JBUEhBTEwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbiBlbmtlbHQgaGlzdG9yaWsgdmlzZXIgdG90YWwgcHJvY2Vzc29yYnJ1ZyIKICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSFBFUkNQVSAiSHZlciBwcm9jZXNzb3IgaGFyIHNpbiBlZ2VuIGdyYWYiCiAgICBJRF9BUFBMSUNBVElPTl9QQUdFX1NXSVRDSFRPCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGVudGVyIGVuIG9wZ2F2ZSB0aWwgZm9yZ3J1bmRlbiwgb2cgc+Z0dGVyIGRlbiBpIGZva3VzIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FTkRUQVNLICAgICAgICAgICAgICAiR2l2ZXIgZGVuIHZhbGd0ZSBvcGdhdmUgYmVza2VkIG9tIGF0IGFmc2x1dHRlIgogICAgSURfR09UT1BST0NFU1MgICAgICAgICAgIlNraWZ0ZXIgZm9rdXMgdGlsIGRlbiB2YWxndGUgb3BnYXZlcyBwcm9jZXNzIgogICAgSURfUkVTVE9SRSAgICAgICAgICAgICAgIkdlbm9wcmV0dGVyIG9wZ2F2ZWJlaGFuZGxlcmVuIGZyYSBkZW5zIHNranVsdGUgc3RhdHVzIgogICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1MgIkZqZXJuZXIgcHJvY2Vzc2VuIGZyYSBzeXN0ZW1ldCIKICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTVFJFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZqZXJuZXIgZGVubmUgcHJvY2VzcyBvZyBhbGxlIGVmdGVya29tbWVyZSBmcmEgc3lzdGVtZXQiCiAgICBJRF9QUk9DRVNTX1BBR0VfREVCVUcgICAiVGlsc2x1dHRlciBmZWpsc/hnZXJlbiB0aWwgZGVubmUgcHJvY2VzcyIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRBRkZJTklUWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIktvbnRyb2xsZXJlciBodmlsa2UgcHJvY2Vzc29yZXIgcHJvY2Vzc2VuIGthbiBr+HJlIHDlIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX1JFQUxUSU1FCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU+Z0dGVyIHByb2Nlc3NlbiB0aWwgc2FtdGlkc3ByaW9yaXRldCIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9ISUdIICJT5nR0ZXIgcHJvY2Vzc2VuIHRpbCBo+GogcHJpb3JpdGV0IgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0FCT1ZFTk9STUFMCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU+Z0dGVyIHByb2Nlc3NlbiB0aWwgb3ZlciBub3JtYWwgcHJpb3JpdGV0IgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX05PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlPmdHRlciBwcm9jZXNzZW4gdGlsIG5vcm1hbCBwcmlvcml0ZXQiCiAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQkVMT1dOT1JNQUwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJT5nR0ZXIgcHJvY2Vzc2VuIHRpbCB1bmRlciBub3JtYWwgcHJpb3JpdGV0IgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0xPVyAiU+Z0dGVyIHByb2Nlc3NlbiB0aWwgbGF2IHByaW9yaXRldCIKICAgIElEU19MSUNFTlNFICAgICAgICAgICAgICJEZXR0ZSBwcm9ncmFtIGVyIGZyaSBwcm9ncmFtdmFyZTsgZHUga2FuIHJlZGlzdHJpYnVlcmUgZGV0IGkgaGVuaG9sZCB0aWwgdmlsa+VyZW5lIGkgJ0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZScsIHVkZ2l2ZXQgYWYgJ3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24nOyBlbnRlbiB2ZXJzaW9uIDIuMSBhZiBsaWNlbnNlbiwgZWxsZXIgKGh2aXMgZHUg+G5za2VyKSBlbiBueWVyZSB2ZXJzaW9uLlxyXG5cclxuRGV0dGUgcHJvZ3JhbSBkaXN0cmlidWVyZXMgbWVkIGV0IGjlYiBvbSBhdCBkZXQgZXIgbnl0dGlndCwgbWVuIFVERU4gRU5IVkVSIEZPUk0gRk9SIEdBUkFOVEk7IGlra2UgZW5nYW5nIGdhcmFudGkgZm9yIEhBTkRFTFNEWUdUSUdIRUQgZWxsZXIgRUdORVRIRUQgRk9SIEVUIFNQRUNJRUxUIEZPUk3FTC4gU2UgJ0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZScgZm9yIGRldGFsamVyLlxyXG5cclxuRHUgc2thbCBoYXZlIGblZXQgZW4ga29waSBhZiAnR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlJyBzYW1tZW4gbWVkIHByb2dyYW1tZXQ7IGh2aXMgaWtrZSwgc2tyaXYgdGlsICd0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBJy4iCkVORAo=