LyoKICogVHVya2lzaCByZXNvdXJjZXMgZm9yIHJlZ2VkaXQKICoKICogQ29weXJpZ2h0IDIwMDYgRmF0aWggQf79Y/0KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCi8qCiAqIE1lbnUKICovCgpJRENfUkVHRURJVCBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJkRvc3lhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJsf9a/3+IiwgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJllhcmT9bSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZIYWtr/W5kYS4uLiIsICAgICAgICAgICAgICAgIElEX0hFTFBfQUJPVVQKICAgIEVORApFTkQKCklEUl9SRUdFRElUX01FTlUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiZLYXn9dCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkthef10IERvc3lhc/0gJkFsLi4uIiwgICAgICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICJLYXn9dCBEb3N5YXP9ICZLYXlkZXQuLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQSbwIEtheWT9bmEgQmHwbGFuLi4uIiwgICAgICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIkHwIEtheWT9IEJh8GxhbnT9c/1u/SBLb3Bhci4uLiIsIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJZYSZ6ZP1yXHRDdHJsK1AiLCAgICAgICAgICAgICBJRF9SRUdJU1RSWV9QUklOVCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibH/Wv9/iIsICAgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZE/HplbiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEZfBp/nRpciIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZZZW5pIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImQW5haHRhciIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZEaXpnZSBEZfBlcmkiLCAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibda2lsaSBEZfBlciIsICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibHaWZ0IFP2emP8ayBEZfBlcmkiLCAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImWWVuaWRlbiBBZGxhbmT9clx0RjIiLCAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQW5haHRhciBBZP1u/SBLb3B5YWxhIiwgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCdWxcdEN0cmwrRiIsICAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIiZTb25yYWtpbmkgQnVsXHRGMyIsICAgICAgICAgIElEX0VESVRfRklORE5FWFQsIEdSQVlFRAogICAgRU5ECiAgICBQT1BVUCAiJkf2cvxu/G0iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJEdXJ1bSAmx3VidfB1IiwgICAgICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBJnlyYeciLCAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImWWVuaWxlXHRGNSIsICAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZT/WsgS3VsbGFu/WxhbmxhciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlP9ayBLdWxsYW79bGFubGFyYSBFa2xlIiwgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICJT/WsgS3VsbGFu/WxhbmxhcmRhbiBTaWwiLCAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUKICAgIEVORAogICAgUE9QVVAgIiZZYXJk/W0iCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImWWFyZP1tIEtvbnVsYXL9XHRGMSIsICAgICAgICBJRF9IRUxQX0hFTFBUT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2lzdGVtIEthef10IET8emVubGV5aWNpc2kgJkhha2v9bmRhIiwgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImRGXwaf50aXIiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQoJTUVOVUlURU0gIt1raWxpIFZlcml5aSBEZfBp/nRpciIsICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJlNpbFx0RGVsIiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImWWVuaWRlbiBBZGxhbmT9ciIsICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJlllbmkiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZBbmFodGFyIiwgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIiZEaXpnZSBEZfBlcmkiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICIm3WtpbGkgRGXwZXIiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJsdpZnQgU/Z6Y/xrIERl8GVyaSIsICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU2lsXHREZWwiLCAgICAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICImWWVuaWRlbiBBZGxhbmT9clx0RjIiLCAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQW5haHRhciBBZP1u/SBLb3B5YWxhIiwgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCdWxcdEN0cmwrRiIsICAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9GSU5EIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJCdWwiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiQnVsOiIsSURDX1NUQVRJQyw1LDcsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw0MCw1LDEyNSwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBMVEVYVCAgICAgICAgICAgIktvbnVtOiIsSURDX1NUQVRJQyw1LCAyMiwgMTE5LCA4CiAgICBDSEVDS0JPWCAgICAgICAgIkFuYWh0YXJsYXIiLCBJRENfRklORF9LRVlTLCA1LCAzNCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBCU19BVVRPQ0hFQ0tCT1gKICAgIENIRUNLQk9YICAgICAgICAiRGXwZXIgYWRsYXL9IiwgSURDX0ZJTkRfVkFMVUVTLCA1LCA0NiwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIkRl8GVyIGnnZXJp8GkiLCBJRENfRklORF9DT05URU5ULCA1LCA1OCwgOTAsIDEwLCBXU19UQUJTVE9QIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIllhbG79emNhIHT8bSBz9npj/GtsZXIiLCBJRENfRklORF9XSE9MRSwgNSwgNzAsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgREVGUFVTSEJVVFRPTiAgICJCdWwiLElET0ssMTc1LDUsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiS2FwYXQiLElEQ0FOQ0VMLDE3NSwyMiwzMCwxMSwgV1NfR1JPVVAKRU5ECgpJRERfQURERkFWT1JJVEUgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlP9ayBLdWxsYW79bGFubGFyYSBFa2xlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIkFkOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE0MCw0MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLdcHRhbCIsSURDQU5DRUwsMTc1LDQwLDMwLDExLCBXU19HUk9VUApFTkQKCklERF9ERUxGQVZPUklURSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiU/1rIEt1bGxhbv1sYW5sYXJkYW4gU2lsIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIkFkOiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIExJU1RCT1ggICAgICAgICBJRENfTkFNRV9MSVNULDUsMTUsMjAwLDUyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IFdTX1ZTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiVGFtYW0iLElET0ssMTQwLDczLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIt1wdGFsIixJRENBTkNFTCwxNzUsNzMsMzAsMTEsIFdTX0dST1VQCkVORAoKSUREX0VESVRfU1RSSU5HIERJQUxPRyBESVNDQVJEQUJMRSAgMjIsIDE3LCAyMTAsIDc1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJEaXpnZXlpIET8emVubGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiRGXwZXIgYWT9OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJEZfBlciB2ZXJpc2k6IixJRENfU1RBVElDLDUsMzAsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE0MCw2MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICLdcHRhbCIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLHaWZ0IERpemdleWkgRPx6ZW5sZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJEZfBlciBhZP06IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEx8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIkRl8GVyIHZlcmlzaToiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJUYWJhbiIsIElEQ19EV09SRF9CQVNFLCAxMjAsIDMwLCA4NSwgMzcsIEJTX0dST1VQQk9YCiAgICBBVVRPUkFESU9CVVRUT04gIk9uYWx0/Wz9IiwgSURDX0RXT1JEX0hFWCwgMTMwLCA0MCwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBBVVRPUkFESU9CVVRUT04gIk9ubHUiLCBJRENfRFdPUkRfREVDLCAxMzAsIDUyLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIERFRlBVU0hCVVRUT04gICAiVGFtYW0iLElET0ssMTQwLDgwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIt1wdGFsIixJRENBTkNFTCwxNzUsODAsMzAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9CSU5BUlkgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLda2lsaXlpIET8emVubGUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiRGXwZXIgYWT9OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJEZfBlciB2ZXJpc2k6IixJRENfU1RBVElDLDUsMzAsOTAsOAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19WQUxVRV9EQVRBLCJIZXhFZGl0IixXU19UQUJTVE9QLDQsNDAsMTYwLDQwCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDE0MCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICLdcHRhbCIsSURDQU5DRUwsMTc1LDgwLDMwLDExLFdTX0dST1VQCkVORAoKLyoKICogU3RyaW5nIFRhYmxlCiAqLwoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19MSVNUX0NPTFVNTl9OQU1FICAgICJBZCIKICAgIElEU19MSVNUX0NPTFVNTl9UWVBFICAgICJU/HIiCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAiVmVyaSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0FQUF9USVRMRSAgICAgICAgICAgIkthef10IETcemVubGV5aWNpIgogICAgSURDX1JFR0VESVQgICAgICAgICAgICAgIlJFR0VESVQiCiAgICBJRENfUkVHRURJVF9GUkFNRSAgICAgICAiUkVHRURJVF9GUkFNRSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgIlT8bSBrYXn9dGxhcmxhIOdhbP3+bWFrIGnnaW4ga29tdXRsYXL9IGnnZXJpciIKICAgIElEX0VESVRfTUVOVSAgICAgICAgICAgICJEZfBlcmxlcmkgdmV5YSBhbmFodGFybGFy/SBk/HplbmxlbWVrIGnnaW4ga29tdXRsYXL9IGnnZXJpciIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICJLYXn9dCBwZW5jZXJlc2luaSD2emVsbGX+dGlybWVrIGnnaW4ga29tdXRsYXL9IGnnZXJpciIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICJT/Wsga3VsbGFu/WxhbiBhbmFodGFybGFyYSBlcmn+bWVrIGnnaW4ga29tdXRsYXL9IGnnZXJpciIKICAgIElEX0hFTFBfTUVOVSAgICAgICAgICAgICJLYXn9dCBk/HplbmxleWljaSBoYWtr/W5kYSB5YXJk/W0gdmUgYmlsZ2kgZ/ZzdGVybWVrIGnnaW4ga29tdXRsYXL9IGnnZXJpciIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJZZW5pIGFuYWh0YXJsYXIgdmUgZGXwZXJsZXIg/HJldG1layBp52luIGtvbXV0bGFy/SBp52VyaXIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX0VESVRfTU9ESUZZICAgICAgICAgICJEZfBlciB2ZXJpc2luaSBkZfBp/nRpcmlyIgogICAgSURfRURJVF9ORVdfS0VZICAgICAgICAgIlllbmkgYmlyIGFuYWh0YXIgZWtsZXIiCiAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRSAiWWVuaSBiaXIgZGl6ZSBkZfBlcmkgZWtsZXIiCiAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRSAiWWVuaSBiaXIgaWtpbGkgZGXwZXIgZWtsZXIiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiWWVuaSBiaXIg52lmdCBz9npj/GsgZGXwZXJpIGVrbGVyIgogICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFICJTaXN0ZW0ga2F5ZP1uYSBiaXIgbWV0aW4gZG9zeWFz/W79IGFrdGFy/XIiCiAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaXN0ZW0ga2F5ZP1u/W4gYmlyIGv9c239bv0gdmV5YSB0/G38bvwgYmlyIG1ldGluIGRvc3lhc/1uYSBha3Rhcv1yIgogICAgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlV6YWsgYmlyIGJpbGdpc2F5YXL9biBrYXlk/W5hIGJh8Gxhbv1yIgogICAgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlV6YWsgYmlyIGJpbGdpc2F5YXL9biBrYXlk/W5hIG9sYW4gYmHwbGFudP15/SBrZXNlciIKICAgIElEX1JFR0lTVFJZX1BSSU5UICAgICAgICJTaXN0ZW0ga2F5ZP1u/W4gYmlyIGv9c239bv0gdmV5YSB0/G38bvwgeWF6ZP1y/XIiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJQcm9ncmFtIGJpbGdpc2luaSwgc/xy/G0gbnVtYXJhc/1u/SB2ZSB0ZWxpZiBoYWtr/W79IGf2c3RlcmlyIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiS2F5/XQgZPx6ZW5sZXlpY2lzaW5kZW4g5/1rYXIiCiAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMgIlP9ayBrdWxsYW79bGFubGFyIGxpc3Rlc2luZSBhbmFodGFybGFy/SBla2xlciIKICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURSAiU/1rIGt1bGxhbv1sYW5sYXIgbGlzdGVzaW5kZW4gYW5haHRhcmxhcv0gc2lsZXIiCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiRHVydW0g53VidfB1bnUgZ/ZzdGVyaXIgdmV5YSBnaXpsZXIiCiAgICBJRF9WSUVXX1NQTElUICAgICAgICAgICAi3WtpIHBhbmVsIGFyYXP9bmRha2kgYXlyYWP9biBrb251bXVudSBkZfBp/nRpcmlyIgogICAgSURfVklFV19SRUZSRVNIICAgICAgICAgIlBlbmNlcmV5aSB5ZW5pbGVyIgogICAgSURfRURJVF9ERUxFVEUgICAgICAgICAgIlNl52ltaSBzaWxlciIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJTZedpbWkgeWVuaWRlbiBhZGxhbmT9ciIKICAgIElEX0VESVRfQ09QWUtFWU5BTUUgICAgICJTZedpbGkgYW5haHRhciBhZP1u/SBwYW5veWEga29weWFsYXIiCiAgICBJRF9FRElUX0ZJTkQgICAgICAgICAgICAiQmlyIGFuYWh0YXIsIGRl8GVyIHZleWEgdmVyaSBp52VyaXNpbmRla2kgbWV0aW4gZGl6ZXNpbmkgYnVsdXIiCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAi1m5jZWtpIGFyYW1hZGEgYmVsaXJsZW5lbiBtZXRuaW4gYmlyIHNvbnJha2kgZf5sZf5tZXNpbmkgYnVsdXIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19FUlJPUgkJICAgICJIYXRhIgogICAgSURTX0JBRF9LRVkJCSAgICAiJyVzJyBhbmFodGFy/SBzb3JndWxhbmFtYWT9IgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIiclcycgZGXwZXJpIHNvcmd1bGFuYW1hZP0iCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAiQnUgdPxyICglbGQpIGFuYWh0YXJsYXIgZGXwaf50aXJpbGVtZXoiCiAgICBJRFNfVE9PX0JJR19WQUxVRSAgICAgICAiRGXwZXIg529rIGL8efxrICglbGQpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIkRl8GVyIHNpbG1leWkgb25heWxhIgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIiclcycgZGXwZXJpbmkgc2lsbWVrIGlzdGVkafBpbml6ZGVuIGVtaW4gbWlzaW5pej8iCiAgICBJRFNfTkVXS0VZICAgICAgICAgICAgICAiWWVuaSBBbmFodGFyICMlZCIKICAgIElEU19ORVdWQUxVRSAgICAgICAgICAgICJZZW5pIERl8GVyICMlZCIKICAgIElEU19OT1RGT1VORCAgICAgICAgICAgICJBcmFtYSBkaXplc2kgJyVzJyBidWx1bmFtYWT9IgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgoKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KCi8qCiAqU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICpCRUdJTgogKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiT3BlbnMgUmVnaXN0cnkgRWRpdG9yIEhlbHAuIgogKiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiRGlzcGxheXMgcHJvZ3JhbSBpbmZvcm1hdGlvbiwgdmVyc2lvbiBudW1iZXIsIGFuZCBjb3B5cmlnaHQuIgogKkVORAogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K