LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAyMDA4IEplbnMgQWxicmV0c2VuIDxqZW5zQGFsYnJldHNlbi5kaz4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKTEFOR1VBR0UgTEFOR19EQU5JU0gsIFNVQkxBTkdfREVGQVVMVAoKLyogTWVudSAqLwoKTUFJTl9NRU5VIE1FTlUKewogUE9QVVAgIiZGaWwiIHsKICAgTUVOVUlURU0gIiZOeSAuLi4iLCAgICAgICAgICAgICAgUE1fTkVXCiAgIE1FTlVJVEVNICLFYmVuXHRFbnRlciIsICAgICAgICAgICAgIFBNX09QRU4KICAgTUVOVUlURU0gIiZGbHl0IC4uLlx0RjciLCAgICAgICAgICAgICBQTV9NT1ZFLCAgICAgIEdSQVlFRAogICBNRU5VSVRFTSAiJktvcGllciAuLi5cdEY4IiwgICAgICAgICAgICAgUE1fQ09QWSwgICAgICBHUkFZRUQKICAgTUVOVUlURU0gIiZTbGV0XHRFbnRmIiwgICAgICAgICAgIFBNX0RFTEVURQogICBNRU5VSVRFTSAiJkF0dHJpYnV0dGVyIC4uLlx0QWx0K0VudGVyIiwgICAgICAgUE1fQVRUUklCVVRFUwogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIksm+HIgLi4uIiwgICAgICAgICAgUE1fRVhFQ1VURQogICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgTUVOVUlURU0gIkEmZnNsdXQgV2luZSAuLi4iLCAgICAgICAgICAgICBQTV9FWElUCiB9CiBQT1BVUCAiJkluZHN0aWxsaW5nZXIiIHsKICAgTUVOVUlURU0gIiZBdXRvIGFycmFuZ+lyIiwgIFBNX0FVVE9fQVJSQU5HRQogICBNRU5VSVRFTSAiJk1pbmlt6XIgdmVkIG9wc3RhcnQiLCAgICBQTV9NSU5fT05fUlVOCiAgIE1FTlVJVEVNICJHZW0g5m5kcmluZ2VyIHZlZCBhZiZzbHV0dGluZyIsIFBNX1NBVkVfU0VUVElOR1MKIH0KIFBPUFVQICImVmluZHVlciIgewogICBNRU5VSVRFTSAiJk92ZXJsYXBwZXRcdFNoaWZ0K0Y1IiwgICAgICAgUE1fT1ZFUkxBUAogICBNRU5VSVRFTSAiJlNpZGUgdmVkIHNpZGVcdFNoaWZ0K0Y0IiwgIFBNX1NJREVfQllfU0lERQogICBNRU5VSVRFTSAiQXJyYW5n6XIgJmlrb25lciIsICAgICAgIFBNX0FSUkFOR0UKIH0KClBPUFVQICImSGrmbHAiIHsKICAgTUVOVUlURU0gIiZJbmRob2xkIiwgICAgICAgICBQTV9DT05URU5UUwogICBNRU5VSVRFTSAiJlP4ZyAuLi4iLCAgICAgICAgICAgUE1fU0VBUkNICiAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICBNRU5VSVRFTSAiJkhq5mxwIHRpbCBoauZscCIsICAgICBQTV9IRUxQT05IRUxQCiAgIE1FTlVJVEVNICImVmVqbGVkbmluZyIsICAgICAgICAgUE1fVFVUT1JJQUwKICAgTUVOVUlURU0gU0VQQVJBVE9SCgogICBQT1BVUCAiJkluZm9ybWF0aW9uIC4uLiIgewogICAgIE1FTlVJVEVNICImTGljZW5zIiwgICAgICAgIFBNX0xJQ0VOU0UKICAgICBNRU5VSVRFTSAiSSZuZ2VuIEdhcmFudGkiLCAgICBQTV9OT19XQVJSQU5UWQogICAgIE1FTlVJVEVNICImT20gV0lORSIsICAgICBQTV9BQk9VVF9XSU5FCiAgIH0KIH0KfQoKLyogRGlhbG9nIGBOZXcnICovCgpESUFMT0dfTkVXIERJQUxPRyAwLCAwLCAxNzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk55Igp7ClJBRElPQlVUVE9OICAgIiIsICAgICAgICAgICAgICAgICBQTV9ORVdfR1JPVVAsICAgIDEwLCAxNSwgIDEwLCAxNQpMVEVYVCAgICAgICAgICJQcm9ncmFtJmdydXBwZSIsICAgUE1fTkVXX0dST1VQLCAgICAyMCwgMTgsICA4MCwgMTUKUkFESU9CVVRUT04gICAiIiwgICAgICAgICAgICAgICAgIFBNX05FV19QUk9HUkFNLCAgMTAsIDM1LCAgMTAsIDE1CkxURVhUICAgICAgICAgIiZQcm9ncmFtIiwgUE1fTkVXX1BST0dSQU0sICAyMCwgMzgsICA4MCwgMTUKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICBJRE9LLCAgICAgICAgICAgMTA1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgSURDQU5DRUwsICAgICAgIDEwNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhq5mxwIiwgICAgICAgIFBNX0hFTFAsICAgICAgICAxMDUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgTW92ZScgKi8KCkRJQUxPR19NT1ZFIERJQUxPRyAwLCAwLCAyNTAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkZseXQgcHJvZ3JhbSIKewpMVEVYVCAgICAgICAgICJGbHl0IHByb2dyYW06IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICJGcmEgZ3J1cHBlOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJlRpbCBncnVwcGU6IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBDb3B5JyAqLwoKRElBTE9HX0NPUFkgRElBTE9HIDAsIDAsIDI1MCwgNjUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiS29waWVyIHByb2dyYW0iCnsKTFRFWFQgICAgICAgICAiS29waWVyIHByb2dyYW06IiwgICAgSURJR05PUkUsICAgICAgICAgICAgNSwgIDUsICA5MCwgMTUKTFRFWFQgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICBQTV9QUk9HUkFNLCAgICAgICAgIDk1LCAgNSwgIDkwLCAxNQpMVEVYVCAgICAgICAgICJGcmEgZ3J1cHBlOiIsIElESUdOT1JFLCAgICAgICAgICAgIDUsIDEzLCAgOTAsIDE1CkxURVhUICAgICAgICAgIiIsICAgICAgICAgICAgICAgICAgICAgUE1fRlJPTV9HUk9VUCwgICAgICA5NSwgMTMsICA5MCwgMTUKTFRFWFQgICAgICAgICAiJlRpbCBncnVwcGU6IiwgICBQTV9UT19HUk9VUF9UWFQsICAgICA1LCAyOCwgMTQwLCAxNQpDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1RPX0dST1VQLCAgICAgICAgIDUsIDM4LCAxNDAsIDUwLCBXU19UQUJTVE9QIHwgQ0JTX0RST1BET1dOTElTVApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICBJRE9LLCAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgICAgIElEQ0FOQ0VMLCAgICAgICAgICAxODUsIDI1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgICAgICAgUE1fSEVMUCwgICAgICAgICAgIDE4NSwgNDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBHcm91cCBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX0dST1VQIERJQUxPRyAwLCAwLCAyMzAsIDY1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2dyYW1ncnVwcGVhdHRyaWJ1dHRlciIKewpMVEVYVCAgICAgIiZCZXNrcml2ZWxzZToiLCBQTV9ERVNDUklQVElPTl9UWFQsICAgMDUsIDE4LCAgNTAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA2MCwgMTgsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICImR3J1cHBlZmlsOiIsICAgICAgICBQTV9GSUxFX1RYVCwgICAgICAgICAgMDUsIDM4LCAgNTAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0ZJTEUsICAgICAgICAgICAgICA2MCwgMzgsICA5MCwgMTUsIFdTX1RBQlNUT1AKREVGUFVTSEJVVFRPTiAiT0siLCAgICAgICAgICAgIElET0ssICAgICAgICAgICAgICAgIDE1NSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5udWxsZXIiLCAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTU1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImSGrmbHAiLCAgICAgICAgICBQTV9IRUxQLCAgICAgICAgICAgICAxNTUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgUHJvZ3JhbSBhdHRyaWJ1dGVzJyAqLwoKRElBTE9HX1BST0dSQU0gRElBTE9HIDAsIDAsIDI1MCwgMTA1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlByb2dyYW1hdHRyaWJ1dHRlciIKewpMVEVYVCAgICAgICAgICImQmVza3JpdmVsc2U6IiwgIFBNX0RFU0NSSVBUSU9OX1RYVCwgICAwNSwgMTAsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0RFU0NSSVBUSU9OLCAgICAgICA4MCwgMTAsICA5MCwgMTUsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJktvbW1hbmRvbGluaWU6IiwgUE1fQ09NTUFORF9MSU5FX1RYVCwgIDA1LCAyNSwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fQ09NTUFORF9MSU5FLCAgICAgIDgwLCAyNSwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICImQXJiZWpkc2thdGFsb2c6IiwgICAgUE1fRElSRUNUT1JZX1RYVCwgICAgIDA1LCA0MCwgIDYwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE1fRElSRUNUT1JZLCAgICAgICAgIDgwLCA0MCwgIDkwLCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgICAgICJUYXN0ZSBrb21iaW5hdGlvbjoiLCAgICAgIFBNX0hPVF9LRVlfVFhULCAgICAgICAwNSwgNTUsICA2MCwgMTAKRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0hPVF9LRVksICAgICAgICAgICA4MCwgNTUsICA5MCwgMTUsIFdTX1RBQlNUT1AKSUNPTiAgICAgICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0lDT04sICAgICAgICAgICAgICAyMCwgNzAKQ0hFQ0tCT1ggICAgICAiIiwgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTCwgICAgICAgICAgICA4MCwgNzUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJk1pbmlt6XIgdmVkIG9wc3RhcnQiLCAgICAgICBJRElHTk9SRSwgICAgICAgICAgICAgOTUsIDc1LCAgNzUsIDEwCkRFRlBVU0hCVVRUT04gIk9LIiwgICAgICAgICAgICAgICAgICAgSURPSywgICAgICAgICAgICAgICAgMTg1LCAgNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICJBbm51bGxlciIsICAgICAgICAgICAgICAgSURDQU5DRUwsICAgICAgICAgICAgMTg1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImR2VubmVtc2UgLi4uIiwgICAgICAgICAgICAgICBQTV9CUk9XU0UsICAgICAgICAgICAxODUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIsZuZHJlICZpa29uIC4uLiIsIFBNX09USEVSX1NZTUJPTCwgICAgIDE4NSwgNjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkhq5mxwIiwgICAgICAgICAgICAgICAgIFBNX0hFTFAsICAgICAgICAgICAgIDE4NSwgODUsICA2MCwgMTUsIFdTX1RBQlNUT1AKfQoKLyogRGlhbG9nIGBTeW1ib2wnICovCgpESUFMT0dfU1lNQk9MIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsZuZHJlIGlrb24iCnsKTFRFWFQgICAgICImRmlsbmF2bjoiLCAgICBQTV9JQ09OX0ZJTEVfVFhULCAgICA1LCAxNSwgIDQwLCAxMApFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICBQTV9JQ09OX0ZJTEUsICAgICAgIDQ1LCAxNSwgIDg1LCAxNSwgV1NfVEFCU1RPUApMVEVYVCAgICAgIkfmbGRlbmRlICZpa29uOiIsIFBNX1NZTUJPTF9MSVNUX1RYVCwgIDUsIDMwLCAxMjUsIDEwCkNPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgIFBNX1NZTUJPTF9MSVNULCAgICAgIDUsIDQwLCAxMjUsIDUwLAogICBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgV1NfVEFCU1RPUApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgSURPSywgICAgICAgICAgICAgIDEzNSwgIDUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiQW5udWxsZXIiLCAgICAgSURDQU5DRUwsICAgICAgICAgIDEzNSwgMjUsICA2MCwgMTUsIFdTX1RBQlNUT1AKUFVTSEJVVFRPTiAgICAiJkdlbm5lbXNlIC4uLiIsICAgIFBNX0JST1dTRSwgICAgICAgICAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgIFBNX0hFTFAsICAgICAgICAgICAxMzUsIDY1LCAgNjAsIDE1LCBXU19UQUJTVE9QCn0KCi8qIERpYWxvZyBgRXhlY3V0ZScgKi8KCkRJQUxPR19FWEVDVVRFIERJQUxPRyAwLCAwLCAyMDAsIDg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkv4ciBwcm9ncmFtIgp7CkxURVhUICAgICAiJktvbW1hbmRvbGluaWU6IiwgSURJR05PUkUsICAgMDUsIDE1LCAxMjAsIDEwCkVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNX0NPTU1BTkQsIDA1LCAyNSwgMTIwLCAxNSwgV1NfVEFCU1RPUApDSEVDS0JPWCAgICAgICIiLCAgICAgICAgICAgICAgICAgICAgICBQTV9TWU1CT0wsICAwNSwgNDUsICAxMCwgMTAsIFdTX1RBQlNUT1AKTFRFWFQgICAgICAgICAiJk1pbmlt6XIgdmVkIG9wc3RhcnQiLCAgIElESUdOT1JFLCAgIDIwLCA0NSwgMTIwLCAxMApERUZQVVNIQlVUVE9OICJPSyIsICAgICAgICAgICAgICAgSURPSywgICAgICAxMzUsICA1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIkFubnVsbGVyIiwgICAgICAgICAgIElEQ0FOQ0VMLCAgMTM1LCAyNSwgIDYwLCAxNSwgV1NfVEFCU1RPUApQVVNIQlVUVE9OICAgICImR2VubmVtc2UgLi4uIiwgICAgICAgICAgUE1fQlJPV1NFLCAxMzUsIDQ1LCAgNjAsIDE1LCBXU19UQUJTVE9QClBVU0hCVVRUT04gICAgIiZIauZscCIsICAgICAgICAgICAgIFBNX0hFTFAsICAgMTM1LCA2NSwgIDYwLCAxNSwgV1NfVEFCU1RPUAp9CgovKiBTdHJpbmdzICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CklEU19QUk9HUkFNX01BTkFHRVIsCQkiUHJvZ3JhbWJlaGFuZGxpbmciCklEU19FUlJPUiwJCQkiRkVJTCIKSURTX1dBUk5JTkcsCQkJIkFEVkFSU0VMIgpJRFNfSU5GTywJCQkiSW5mb3JtYXRpb24iCklEU19ERUxFVEUsCQkJIlNsZXQiCklEU19ERUxFVEVfR1JPVVBfcywJCSJTbGV0IGdydXBwZW4gJyVzJz8iCklEU19ERUxFVEVfUFJPR1JBTV9zLAkJIlNsZXQgcHJvZ3JhbW1ldCAnJXMnPyIKSURTX05PVF9JTVBMRU1FTlRFRCwJCSJJa2tlIGltcGxlbWVudGVyZXQiCklEU19GSUxFX1JFQURfRVJST1JfcywJCSJGZWpsIHZlZCBs5nNpbmcgYWYgJyVzJy4iCklEU19GSUxFX1dSSVRFX0VSUk9SX3MsCQkiRmVqbCB2ZWQgc2tyaXZuaW5nIHRpbCAnJXMnLiIKSURTX0dSUEZJTEVfUkVBRF9FUlJPUl9zLAkiXApLdW5uZSBpa2tlID9wbmUgZ3J1cHBlZmlsZW4gJyVzJy5cblwKVmlsIGR1IHByP3ZlIG1lcj8iCklEU19PVVRfT0ZfTUVNT1JZLAkJIklra2Ugbm9rIGh1a29tbWVsc2UuIgpJRFNfV0lOSEVMUF9FUlJPUiwJCSJoauZscCBlciBpa2tlIHRpbGdqZW5nZWxpZy4iCklEU19VTktOT1dOX0ZFQVRVUkVfcywJCSJVa2VuZHQgZmVhdHVyZSBpICclcyciCklEU19GSUxFX05PVF9PVkVSV1JJVFRFTl9zLAkiRmlsZW4gJyVzJyBmYW5kdGVzIGFsbGVyZWRlLCBvZyBibGV2IGlra2Ugb3ZlcnNrcmV2ZXQuIgpJRFNfU0FWRV9HUk9VUF9BU19zLAkJIkdlbSBncnVwcGVuIHNvbSAnJXMnIGZvciBhdCB1bmRn5SBhdCBvdmVyc2tyaXZlIGRlIG9yaWdpbmFsZSBmaWxlci4iCklEU19OT19IT1RfS0VZLAkJCSJJbmdlbiIKSURTX0FMTF9GSUxFUywJCQkiQWxsZSBmaWxlciAoKi4qKSIKSURTX1BST0dSQU1TLAkJCSJQcm9ncmFtbWVyIgpJRFNfTElCUkFSSUVTX0RMTCwJCSJCaWJsaW90ZWtlciAoKi5kbGwpIgpJRFNfU1lNQk9MX0ZJTEVTLAkJIklrb24gZmlsZXIiCklEU19TWU1CT0xTX0lDTywJCSJJa29uZXIgKCouaWNvKSIKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMSUNFTlMiCklEU19MSUNFTlNFLAoiRGV0dGUgYmlibGlvdGVrZXQgZXIgZnJpIHNvZnR3YXJlOyBkdSBrYW4gcmVkaXN0cmlidWVyZSBkZXQgIFwKb2cvZWxsZXIg5m5kcmUgZGV0IHVuZGVyIHZpbGvlcmVuZSBpIKtHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZbssIHVkZ2l2ZXQgYWYgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZW50ZW4gXAp2ZXJzaW9uIDIuMSBhZiBMaWNlbnNlbiwgZWxsZXIgKGh2aXMgZHUg+G5za2VyIGRldCkgZW4gbnllcmUgdmVyc2lvbi5cblwKRGV0dGUgYmlibGlvdGVrIGRpc3RyaWJ1ZXJlcyBpIGjlYiBvbSBhdCBkZXQgZXIgbnl0dGlnLCBcCm1lbiBVREVOIEVOSFZFUiBHQVJBTlRJOyBpa2tlIGVuZ2FuZyBlbiB1ZHRyeWt0IGdhcmFudGkgZm9yIFwKSEFOREVMU0RZR1RJR0hFRCBlbGxlciBFR05FVEhFRCBGT1IgRVQgU1BFQ0lFTFQgRk9STcVMLiBTZSCrR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2W7IGZvciBmbGVyZSBkZXRhbGplci5cblwKRHUgc2thbCBoYXZlIG1vZHRhZ2V0IGV0IGVrc2VtcGxhciBhZiCrR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2W7IHNhbW1lbiBtZWQgZGV0dGUgYmlibGlvdGVrOyBodmlzIGlra2UsIHNrcml2IHRpbDogdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBIgoKSURTX1dBUlJBTlRZX0NBUFRJT04sICJJTkdFTiBHQVJBTlRJIgpJRFNfV0FSUkFOVFksCiJEZXR0ZSBiaWJsaW90ZWtldCBkaXN0cmlidWVyZXMgaSBkZXQgaOViIGF0IGRldCBlciBueXR0aWcsIFwKbWVuIFVERU4gRU5IVkVSIEdBUkFOVEk7IGlra2UgZW5nYW5nIGVuIHVkdHJ5a3QgZ2FyYW50aWVuIGZvciBcCkhBTkRFTFNEWUdUSUdIRUQgZWxsZXIgRUdORVRIRUQgRk9SIEVUIFNQRUNJRUxUIEZPUk3FTC4gU2Ugq0dOVSBcCkxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNluyBmb3IgZmxlcmUgZGV0YWxqZXIuIgp9Cg==