LyoKICogUmVnZWRpdCBOb3J3ZWdpYW4gQm9rbeVsIHJlc291cmNlcwogKgogKiBDb3B5cmlnaHQgMjAwNS0yMDA3IEFsZXhhbmRlciBOLiBT+HJuZXMgPGFsZXhAdGhlaGFuZG9mYWdvbnkuY29tPgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpMQU5HVUFHRSBMQU5HX05PUldFR0lBTiwgU1VCTEFOR19OT1JXRUdJQU5fQk9LTUFMCgovKgogKiBNZW51CiAqLwoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJlJlZ2lzdGVyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkltcG9ydGVyIHJlZ2lzdGVyZmlsIC4gLiAuIiwgICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gIiZFa3Nwb3J0ZXIgcmVnaXN0ZXJmaWwgLiAuIC4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiS29ibGUgJnRpbCBuZXR0dmVya3NyZWdpc3RlciAuIC4gLiIsIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJLb2JsZSAmZnJhIG5ldHR2ZXJrc3JlZ2lzdGVyIC4gLiAuIiwgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTa3JpdiB1dFx0Q3RybCtQIiwgICAgICAgICAgICAgIElEX1JFR0lTVFJZX1BSSU5ULCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkF2c2x1dHQiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiUiZlZGlnZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImRW5kcmUiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZOeSIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiTvgma2tlbCIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAiJlN0cmVuZ3ZlcmRpIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZCaW7mcnZlcmRpIiwgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQtdmVyZGkiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRmxlcnN0cmVuZ3ZlcmRpIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19NVUxUSV9TVFJJTkdWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2xldHRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIiZHaSBueXR0IG5hdm5cdEYyIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXIgbvhra2VsbmF2biIsICAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZGaW5uXHRDdHJsK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkZpbm4gJm5lc3RlXHRGMyIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZWaXMiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImU3RhdHVzbGluamUiLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRGUmbCBvcHAiLCAgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1NQTElUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9wcGRhdGUmclx0RjUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZGYXZvcml0dGVyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiTGVnZyB0aWwgaSBmJmF2b3JpdHRlciIsICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICJGamUmcm4gZmF2b3JpdHQiLCAgICAgICAgICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFCiAgICBFTkQKICAgIFBPUFVQICImSGplbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJFbW5lciBpICZoamVscFx0RjEiLCAgICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImT20gUmVnaXN0ZXJyZWRpZ2VyaW5nIiwgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImRW5kcmUiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiRW5kcmUgYmlu5nJkYXRhIiwgICAgICAgICAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIiZTbGV0dFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImR2kgbnl0dCBuYXZuIiwgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgRU5ECiAgUE9QVVAgIiIKICBCRUdJTgogICAgICAgIFBPUFVQICImTnkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIk74JmtrZWwiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZTdHJlbmd2ZXJkaSIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImQmlu5nJ2ZXJkaSIsICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JELXZlcmRpIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkZsZXJzdHJlbmd2ZXJkaSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNsZXR0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImR2kgbnl0dCBuYXZuXHRGMiIsICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS29waWVyIG74a2tlbG5hdm4iLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRmlublx0Q3RybCtGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogIEVORApFTkQKCgovKgogKiBEaWFsb2cKICovCgpJRERfRVhQT1JUX1RFTVBMQVRFIERJQUxPRyBESVNDQVJEQUJMRSAgNTAsIDUwLCAyNzgsIDU0ClNUWUxFIERTXzNETE9PSyB8IERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19DTElQU0lCTElOR1MgfAogICAgV1NfQk9SREVSCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICImRWtzcG9ydGVyIHJlZ2lzdGVyIiwgSURDX0VYUE9SVF9CQVNFLCA2LCA2LCAyNjYsIDQyLCBXU19HUk9VUAogICAgQVVUT1JBRElPQlVUVE9OICImQWx0IiwgSURDX0VYUE9SVF9BTEwsIDEyLCAxNSwgMjQ0LCAxMgogICAgQVVUT1JBRElPQlVUVE9OICImTWVya2V0IGRlbDoiLCBJRENfRVhQT1JUX1NFTEVDVEVELCAxMiwgMzAsIDcwLCAxMgogICAgRURJVFRFWFQgSURDX0VYUE9SVF9QQVRILCA4MiwgMzAsIDE4NCwgMTIKRU5ECgpJRERfRklORCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRmlubiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpMVEVYVCAgICAgICAgICAgIkZpbm46IixJRENfU1RBVElDLDUsNywxMTksOApFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNDAsNSwxMjUsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTApMVEVYVCAgICAgICAgICAgIkZpbm4gaToiLElEQ19TVEFUSUMsNSwgMjIsIDExOSwgOApDSEVDS0JPWCAgICAgICAgIk74a2xlciIsIElEQ19GSU5EX0tFWVMsIDUsIDM0LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IEJTX0FVVE9DSEVDS0JPWApDSEVDS0JPWCAgICAgICAgIlZlcmRpbmF2biIsIElEQ19GSU5EX1ZBTFVFUywgNSwgNDYsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWApDSEVDS0JPWCAgICAgICAgIlZlcmRpaW5uaG9sZCIsIElEQ19GSU5EX0NPTlRFTlQsIDUsIDU4LCA5MCwgMTAsIFdTX1RBQlNUT1AgfCBCU19BVVRPQ0hFQ0tCT1gKQ0hFQ0tCT1ggICAgICAgICJLdW4gaGVsZSBzdHJlbmdlciIsIElEQ19GSU5EX1dIT0xFLCA1LCA3MCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCkRFRlBVU0hCVVRUT04gICAiRmlubiIsSURPSywxNzUsNSwzMCwxMSxXU19HUk9VUApQVVNIQlVUVE9OICAgICAgIkx1a2siLElEQ0FOQ0VMLDE3NSwyMiwzMCwxMSwgV1NfR1JPVVAKRU5ECgpJRERfQURERkFWT1JJVEUgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkxlZ2cgdGlsIGZhdm9yaXR0IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCkxURVhUICAgICAgICAgICAiTmF2bjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CkVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCkRFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDQwLDMwLDExLFdTX0dST1VQClBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxNzUsNDAsMzAsMTEsIFdTX0dST1VQCkVORAoKSUREX0RFTEZBVk9SSVRFIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDkwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJGamVybiBmYXZvcml0dCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgpMVEVYVCAgICAgICAgICAgIk5hdm46IixJRENfU1RBVElDLDUsNSwxMTksOApMSVNUQk9YICAgICAgICAgSURDX05BTUVfTElTVCw1LDE1LDIwMCw1MiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMCkRFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDczLDMwLDExLFdTX0dST1VQClBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxNzUsNzMsMzAsMTEsIFdTX0dST1VQCkVORAoKSUREX0VESVRfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJSZWRpZ2VyIHN0cmVuZyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJkaW5hdm46IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJWZXJkaWRhdGE6IixJRENfU1RBVElDLDUsMzAsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw2MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICJBdmJyeXQiLElEQ0FOQ0VMLDE3NSw2MCwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0RXT1JEIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDEwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfTk9JRExFTVNHIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUmVkaWdlciBEV09SRCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJWZXJkaW5hdm46IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJWZXJkaWRhdGE6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsOTAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiQmFzZSIsIElEQ19EV09SRF9CQVNFLCAxMjAsIDMwLCA4NSwgMzcsIEJTX0dST1VQQk9YCiAgICBBVVRPUkFESU9CVVRUT04gIkhla3NhZGVzaW1hbCIsIElEQ19EV09SRF9IRVgsIDEzMCwgNDAsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgQVVUT1JBRElPQlVUVE9OICJEZXNpbWFsIiwgSURDX0RXT1JEX0RFQywgMTMwLCA1MiwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICJBdmJyeXQiLElEQ0FOQ0VMLDE3NSw4MCwzMCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0JJTkFSWSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX05PSURMRU1TRyB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlJlZGlnZXIgYmlu5nIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiVmVyZGluYXZuOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpZGF0YToiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1ZBTFVFX0RBVEEsIkhleEVkaXQiLFdTX1RBQlNUT1AsNCw0MCwxNjAsNDAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDgwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIkF2YnJ5dCIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfTVVMVElfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDE3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUmVkaWdlciBmbGVyc3RyZW5nIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIlZlcmRpbmF2bjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAiVmVyZGlkYXRhOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfSFNDUk9MTCB8IFdTX1ZTQ1JPTEwgfCBFU19NVUxUSUxJTkUgfCBFU19XQU5UUkVUVVJOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCwxNjAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiQXZicnl0IixJRENBTkNFTCwxNzUsMTYwLDMwLDExLFdTX0dST1VQCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJOYXZuIgogICAgSURTX0xJU1RfQ09MVU1OX1RZUEUgICAgIlR5cGUiCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAiRGF0YSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIlJlZ2lzdGVycmVkaWdlcmluZyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgIklubmVob2xkZXIga29tbWFuZG9lciBmb3Ig5SBhcmJlaWRlIG1lZCBoZWxlIHJlZ2lzdGVyZXQiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiSW5uZWhvbGRlciBrb21tYW5kb2VyIGZvciDlIHJlZGlnZXJlIHZlcmRpZXIgb2cgbvhrbGVyIgogICAgSURfVklFV19NRU5VICAgICAgICAgICAgIklubmVob2xkZXIga29tbWFub2RlciBmb3Ig5SB0aWxwYXNzZSByZWdpc3RlcnZpbmR1ZXQiCiAgICBJRF9GQVZPUklURVNfTUVOVSAgICAgICAiSW5uZWhvbGRlciBrb21tYW5kb2VyIGZvciDlIGblIHRpbGdhbmcgdGlsIG74a2xlciBzb20gYnJ1a2VzIG9mdGUiCiAgICBJRF9IRUxQX01FTlUgICAgICAgICAgICAiSW5uZWhvbGRlciBrb21tYW5kb2VyIGZvciDlIHZpc2UgaGplbHAgb2cgaW5mb3JtYXNqb24gb20gUmVnaXN0ZXJyZWRpZ2VyaW5nIgogICAgSURfRURJVF9ORVdfTUVOVSAgICAgICAgIklubmVob2xkZXIga29tbWFuZG9lciBmb3Ig5SBvcHByZXR0ZSBueWUgbvhrbGVyIGVsbGVyIHZlcmRpZXIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICJFbmRyZXIgdmVyZGllbnMgZGF0YSIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICJMZWdnZXIgdGlsIGVuIG55IG74a2tlbCIKICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFICJMZWdnZXIgdGlsIGVuIG55IHN0cmVuZ3ZlcmRpIgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIkxlZ2dlciB0aWwgZW4gbnkgYmlu5nJ2ZXJkaXMiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiTGVnZ2VyIHRpbCBlbiBueSBkb2JiZWx0b3JkLXZlcmRpIgogICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUgIkxlZ2dlciB0aWwgZW4gbnkgZmxlcnN0cmVuZ3ZlcmRpIgogICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFICJJbXBvcnRlcmVyIGVuIHRla3N0ZmlsIGlubiBpIHJlZ2lzdGVyZXQiCiAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFa3Nwb3J0ZXJlciBoZWxlIGVsbGVyIGRlbGVyIGF2IHJlZ2lzdGVyZXQgdGlsIGVuIHRla3N0ZmlsIgogICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIktvYmxlciB0aWwgcmVnaXN0ZXJldCBw5SBlbiBhbm5lbiBtYXNraW4iCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS29ibGVyIGZyYSByZWdpc3RlcmV0IHDlIGVuIGFubmVuIG1hc2tpbiIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJTa3JpdmVyIHV0IGhlbGUgZWxsZXIgZGVsZXIgYXYgcmVnaXN0ZXJldCIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIlZpc2VyIGhqZWxwIHRpbCBSZWdpc3RlcnJlZGlnZXJpbmciICovCiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiVmlzZXIgcHJvZ3JhbWluZm9ybWFzam9uLCB2ZXJzam9ubnVtbWVyIG9nIGtvcGlyZXR0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiQXZzbHV0dGVyIFJlZ2lzdGVycmVkaWdlcmluZyIKICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAiTGVnZ2VyIG74a2xlciB0aWwgaSBmYXZvcml0dGxpc3RlbiIKICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURSAiRmplcm5lciBu+GtsZXIgZnJhIGZhdm9yaXR0bGlzdGVuIgogICAgSURfVklFV19TVEFUVVNCQVIgICAgICAgIlZpc2VyIGVsbGVyIHNranVsZXIgc3RhdHVzbGluamVucyIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJFbmRyZXIgcG9zaXNqb25lbiB0aWwgZGVsaW5nc2xpbmplbiBtZWxsb20gdG8gcnV0ZXIiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiT3BwZGF0ZXJlciB2aW5kdWV0IgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIlNsZXR0ZXIgdXR2YWxnZXQiCiAgICBJRF9FRElUX1JFTkFNRSAgICAgICAgICAiR2lyIG55dHQgbmF2biB0aWwgdXR2YWxnZXQiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiS29waWVyZXIgbmF2bmV0IHRpbCBkZW4gdmFsZ3RlIG74a2tlbGVuIHRpbCB1dGtsaXBwc3RhdmxlbiIKICAgIElEX0VESVRfRklORCAgICAgICAgICAgICJGaW5uZXIgZW4gdGVrc3RzdHJlbmcgaSBlbiBu+GtrZWwsIHZlcmRpIGVsbGVyIGRhdGEiCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAiRmlubmVyIG5lc3RlIHRyZWZmIHRpbCB0ZWtzdGVuIHNwZXNpZmlzZXJ0IGkgZm9ycmlnZSBz+GsiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUgkJICAgICJGZWlsIgogICAgSURTX0JBRF9LRVkJCSAgICAiS3VubmUgaWtrZSBzcPhycmUgbvhra2VsZW4gJyVzJyIKICAgIElEU19CQURfVkFMVUUgICAgICAgICAgICJLdW5uZSBpa2tlIHNw+PhyZSB2ZXJkaWVuICclcyciCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAiS3VubmUgaWtrZSByZWRpZ2VyZSBu+GtsZXIgYXYgdHlwZW4gJyVsZCciCiAgICBJRFNfVE9PX0JJR19WQUxVRSAgICAgICAiVmVyZGllbiBlciBmb3Igc3RvciAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJCZWtyZWZ0IHNsZXR0aW5nIGF2IHZlcmRpIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIlZpcmtlbGlnIHNsZXR0ZSB2ZXJkaWVuICclcyc/IgogICAgSURTX05FV0tFWSAgICAgICAgICAgICAgIk55IG74a2tlbCAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAiTnkgdmVyZGkgIyVkIgogICAgSURTX05PVEZPVU5EICAgICAgICAgICAgIkZhbnQgaWtrZSBz+Gtlc3RyZW5nZW4gqyVzuyIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgpJRFNfRklMRURJQUxPR19JTVBPUlRfVElUTEUgICAiSW1wb3J0ZXIgcmVnaXN0ZXJmaWwiCklEU19GSUxFRElBTE9HX0VYUE9SVF9USVRMRSAgICJFa3Nwb3J0ZXIgcmVnaXN0ZXJmaWwiCklEU19GSUxFRElBTE9HX0ZJTFRFUiAgICAgICAgICJSZWdpc3RlcmZpbGVyXDAqLnJlZ1wwV2luOXgtL05UNC1yZWdpc3RlcmZpbGVyIChSRUdFRElUNClcMCoucmVnXDBBbGxlIGZpbGVyICgqLiopXDAqLipcMFwwIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCklEU19SRUdJU1RSWV9ST09UX05BTUUgICAgICAgICAgICJNaW4gZGF0YW1hc2tpbiIKSURTX1JFR0lTVFJZX0RFRkFVTFRfVkFMVUUgICAgICAgIihTdGFuZGFyZCkiCklEU19SRUdJU1RSWV9WQUxVRV9OT1RfU0VUICAgICAgICIodmVyZGkgaWtrZSBvcHBnaXR0KSIKSURTX1JFR0lTVFJZX1ZBTFVFX0NBTlRfRElTUExBWSAgIihrbGFydGUgaWtrZSB2aXNlIHZlcmRpKSIKSURTX1JFR0lTVFJZX1VOS05PV05fVFlQRSAgICAgICAgIih1a2plbnQgJWQpIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgoKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KCi8qCiAqU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICpCRUdJTgogKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiVmlzZXIgaGplbHAgdGlsIFJlZ2lzdGVycmVkaWdlcmluZy4iCiAqICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJWaXNlciBwcm9ncmFtaW5mb3JtYXNqb24sIHZlcnNqb25udW1tZXIgb2cga29waXJldHQuIgogKkVORAogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K