LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IFBpb3RyIENhYmFuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJzaHJlc2RlZi5oIgoKTEFOR1VBR0UgTEFOR19QT0xJU0gsIFNVQkxBTkdfREVGQVVMVAoKTUVOVV8wMDEgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJTUVOVUlURU0gIiZEdb9lIElrb255IiwJRkNJRE1fU0hWSUVXX0JJR0lDT04KCU1FTlVJVEVNICImTWGzZSBJa29ueSIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCU1FTlVJVEVNICImTGlzdGEiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCglNRU5VSVRFTSAiJlN6Y3plZ/OzeSIsCQlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwpFTkQKCi8qCiBzaGVsbHZpZXcgYmFja2dyb3VuZCBtZW51CiovCk1FTlVfMDAyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBQT1BVUCAiJldpZG9rIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICImRHW/ZSBJa29ueSIsCUZDSURNX1NIVklFV19CSUdJQ09OCgkgICAgTUVOVUlURU0gIiZNYbNlIElrb255IiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJICAgIE1FTlVJVEVNICImTGlzdGEiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCgkgICAgTUVOVUlURU0gIiZTemN6ZWfzs3kiLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICJSb3ptaWWc5iAmaWtvbnkgd2Vks3VnIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICImTmF6d3kiLAkweDMwCS8qIGNvbHVtbiAwICovCgkgICAgTUVOVUlURU0gIiZUeXB1IiwJMHgzMgkvKiBjb2x1bW4gMiAqLwoJICAgIE1FTlVJVEVNICImV2llbGtvnGNpIiwJMHgzMQkvKiAuLi4gKi8KCSAgICBNRU5VSVRFTSAiJkRhdHkiLAkweDMzCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgICAgTUVOVUlURU0gIiZBdXRvcm96bWllc3pjemFuaWUiLAlGQ0lETV9TSFZJRVdfQVVUT0FSUkFOR0UKCSAgRU5ECgkgIE1FTlVJVEVNICImV3ly83duYWogaWtvbnkiLAlGQ0lETV9TSFZJRVdfU05BUFRPR1JJRAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZPZJx3aWW/IiwJCUZDSURNX1NIVklFV19SRUZSRVNICgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiVyZrbGVqIiwJCUZDSURNX1NIVklFV19JTlNFUlQKCSAgTUVOVUlURU0gIldrbGVqIHMma3LzdCIsCUZDSURNX1NIVklFV19JTlNFUlRMSU5LCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiJk5vd3kiCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIiZGb2xkZXIiLAlGQ0lETV9TSFZJRVdfTkVXRk9MREVSCgkgICAgTUVOVUlURU0gIiZTa3LzdCIsCUZDSURNX1NIVklFV19ORVdMSU5LCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIEVORAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlezYZxjaXdvnGNpIiwJRkNJRE1fU0hWSUVXX1BST1BFUlRJRVMKCUVORApFTkQKCi8qCiBzaGVsbHZpZXcgaXRlbSBtZW51CiovCk1FTlVfU0hWX0ZJTEUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIE1FTlVJVEVNICImV3liaWVyeiIJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNICImRWtzcGxvcnVqIiwJCUZDSURNX1NIVklFV19FWFBMT1JFCgkgIE1FTlVJVEVNICImT3R383J6IiwJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJld5dG5paiIsCQlGQ0lETV9TSFZJRVdfQ1VUCgkgIE1FTlVJVEVNICImS29waXVqIiwJCUZDSURNX1NIVklFV19DT1BZCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiVXR383J6ICZza3LzdCIsCUZDSURNX1NIVklFV19DUkVBVEVMSU5LCgkgIE1FTlVJVEVNICImVXN18SIsCQlGQ0lETV9TSFZJRVdfREVMRVRFCgkgIE1FTlVJVEVNICImWm1pZfEgbmF6d+oiLAkJRkNJRE1fU0hWSUVXX1JFTkFNRQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlezJmGcY2l3b5xjaSIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgpNRU5VX0NQQU5FTCBNRU5VCkJFR0lOCiAgICBQT1BVUCAiJkZpbGUiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJFJnhpdCIsIElETV9DUEFORUxfRVhJVAogICAgRU5ECgogICAgUE9QVVAgIiZWaWV3IgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkR1v2UgSWtvbnkiLCBGQ0lETV9TSFZJRVdfQklHSUNPTgogICAgICAgIE1FTlVJVEVNICImTWGzZSBJa29ueSIsIEZDSURNX1NIVklFV19TTUFMTElDT04KICAgICAgICBNRU5VSVRFTSAiJkxpc3RhIiwgRkNJRE1fU0hWSUVXX0xJU1RWSUVXCiAgICAgICAgTUVOVUlURU0gIiZTemN6ZWfzs3kiLCBGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwogICAgRU5ECgogICAgUE9QVVAgIiZIZWxwIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkFib3V0IENvbnRyb2wgUGFuZWwuLi4iLCBJRE1fQ1BBTkVMX0FCT1VUCiAgICBFTkQKRU5ECgpTSEJSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMTUsIDQwLCAxODgsIDE5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICJXeWJpZXJ6IGZvbGRlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIDEsIDgwLCAxNzYsIDUwLCAxMiwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW51bHVqIiwgMiwgMTM0LCAxNzYsIDUwLCAxMiwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiIiwgSUREX1RJVExFLCA0LCA0LCAxODAsIDEyCiBMVEVYVCAiIiwgSUREX1NUQVRVUywgNCwgMjUsIDE4MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAogCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgk0LCA0MCwgMTgwLCAxMjAKfQoKU0hORVdCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIld5YmllcnogZm9sZGVyIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICIiLCBJRERfVElUTEUsIDEwLCA4LCAxOTgsIDI0CiBMVEVYVCAiIiwgSUREX1NUQVRVUywgMTAsIDI1LCAxOTgsIDEyCiBMVEVYVCAiRm9sZGVyOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCglUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CglXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJlV0d/NyeiBub3d5IGZvbGRlciIsIElERF9NQUtFTkVXRk9MREVSLCAxMiwgMTc0LCA3MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxMDIsIDE3NCwgNTAsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbnVsdWoiLCBJRENBTkNFTCwgMTU2LCAxNzQsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KClNIRUxMX1lFU1RPQUxMX01TR0JPWCBESUFMT0cgMjAwLCAxMDAsIDI4MCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIktvbXVuaWthdCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBERUZQVVNIQlVUVE9OICImVGFrIiwgSURZRVMsIDM0LCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIlRhayBuYSAmd3N6eXN0a2llIiwgSUREX1lFU1RPQUxMLCA5MiwgNjksIDY1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICImTmllIiwgSUROTywgMTYyLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIiZBbnVsdWoiLCBJRENBTkNFTCwgMjIwLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIElDT04gIiIsIElERF9JQ09OLCAxMCwgMTAsIDE2LCAxNgogICAgTFRFWFQgIiIsIElERF9NRVNTQUdFLCA0MCwgMTAsIDIzOCwgNTIsIDAKfQoKU0hFTExfQUJPVVRfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjIwLCAxNTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIk8gJXMiCkZPTlQgMTAsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTUzLCAxMzMsIDYwLCAxMiwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJkxpY2VuY2phIFdpbmUiLCBJRENfQUJPVVRfTElDRU5TRSwgMTUzLCAxMTMsIDYwLCAxMiwgV1NfVEFCU1RPUAogTElTVEJPWCBJRENfQUJPVVRfTElTVEJPWCwgOCwgNjUsIDEzNywgODIsIExCU19OT1RJRlkgfCBXU19WU0NST0xMIHwgV1NfQk9SREVSCiBJQ09OICIiLCBzdGMxLCAxMCwgMTAsIDMwLCAzMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDEsIDQyLCAxMCwgMTcwLCAxMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDIsIDQyLCAyMiwgMTcwLCAxMAogTFRFWFQgIlVydWNob21pb255IG5hICVzIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMywgNDIsIDM0LCAxNzAsIDEwCiBMVEVYVCAiTW+/ZXN6IGtvcnp5c3Rh5iB6IFdpbmUnYSBkemnqa2k6IiwgSURDX0FCT1VUX1dJTkVfVEVYVCwgOCwgNTUsIDEzNywgMTAKfQoKU0hFTExfUlVOX0RMRyBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICJXcGlzeiBuYXp36iBwcm9ncmFtdSwga2F0YWxvZ3UgbHViIGRva3VtZW50dSwgYSBXaW5lIG90d29yenkgZ28gZGxhIGNpZWJpZS4iLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAiJk90d/NyejoiLCAxMjMwNSwgNywgMzksIDI0LCAxMAogQ09OVFJPTCAiIiwgMTIyOTgsICJDT01CT0JPWCIsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IFdTX1ZTQ1JPTEwgfCBXU19WSVNJQkxFIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19EUk9QRE9XTiwgMzYsIDM3LCAxODMsIDEwMAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA2MiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW51bHVqIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJlByemVnbLlkYWouLi4iLCAxMjI4OCwgMTcwLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCn0KClNUUklOR1RBQkxFCnsKICAgICAgICAvKiBjb2x1bW5zIGluIHRoZSBzaGVsbHZpZXcgKi8KCUlEU19TSFZfQ09MVU1OMQkJIlBsaWsiCglJRFNfU0hWX0NPTFVNTjIJCSJXaWVsa2+c5iIKCUlEU19TSFZfQ09MVU1OMwkJIlR5cCIKCUlEU19TSFZfQ09MVU1ONAkJIk1vZHlmaWthY2phIgoJSURTX1NIVl9DT0xVTU41CQkiQXRyeWJ1dHkiCglJRFNfU0hWX0NPTFVNTjYJCSJXaWVsa2+c5iIKCUlEU19TSFZfQ09MVU1ONwkJIkRvc3TqcG5hIHdpZWxrb5zmIgoJSURTX1NIVl9DT0xVTU44CQkiTmF6d2EiCglJRFNfU0hWX0NPTFVNTjkJCSJLb21lbnRhcnoiCglJRFNfU0hWX0NPTFVNTjEwICAgICAgICAiV7NhnGNpY2llbCIKCUlEU19TSFZfQ09MVU1OMTEgICAgICAgICJHcnVwYSIKCUlEU19TSFZfQ09MVU1OX0RFTEZST00JIkxva2FjamEgb3J5Z2luYWxuYSIKCUlEU19TSFZfQ09MVU1OX0RFTERBVEUJIkRhdGEgdXN1bmnqY2lhIgoKICAgICAgICAvKiBzcGVjaWFsIGZvbGRlcnMgKi8KCUlEU19ERVNLVE9QCQkiUHVscGl0IgoJSURTX01ZQ09NUFVURVIJCSJN82oga29tcHV0ZXIiCglJRFNfUkVDWUNMRUJJTl9GT0xERVJfTkFNRQkiS29zeiIKCUlEU19DT05UUk9MUEFORUwJIkNvbnRyb2wgUGFuZWwiCgoJLyogY29udGV4dCBtZW51cyAqLwoJSURTX1ZJRVdfTEFSR0UJCSImRHW/ZSBJa29ueSIKCUlEU19WSUVXX1NNQUxMCQkiJk1hs2UgSWtvbnkiCglJRFNfVklFV19MSVNUCQkiJkxpc3RhIgoJSURTX1ZJRVdfREVUQUlMUwkiJlN6Y3plZ/OzeSIKCUlEU19TRUxFQ1QJCSJaYXpuYWN6IgoJSURTX09QRU4JCSJPdHfzcnoiCgoJSURTX0NSRUFURUZPTERFUl9ERU5JRUQgIk5pZSBtb2fqIHV0d29yennmIG5vd2VnbyBrYXRhbG9ndTogQnJhayBkb3N06nB1LiIKCUlEU19DUkVBVEVGT0xERVJfQ0FQVElPTiAiQrO5ZCBwcnp5IHR3b3J6ZW5pdSBub3dlZ28ga2F0YWxvZ3UuIgoJSURTX0RFTEVURUlURU1fQ0FQVElPTiAiUG90d2llcmSfIHVzdW5p6mNpZSBwbGlrdSIKCUlEU19ERUxFVEVGT0xERVJfQ0FQVElPTiAiUG90d2llcmSfIHVzdW5p6mNpZSBrYXRhbG9ndSIKCUlEU19ERUxFVEVJVEVNX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdXN1brnmICclMSc/IgoJSURTX0RFTEVURU1VTFRJUExFX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdXN1brnmIHRlICUxIHBsaWtpPyIKCUlEU19ERUxFVEVTRUxFQ1RFRF9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVzdW655iB3eWJyYW5lIGVsZW1lbnR5PyIKCUlEU19UUkFTSElURU1fVEVYVCAiQ3p5IGplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1bWllnGNp5iBwbGlrICclMScgdyBLb3N6dT8iCglJRFNfVFJBU0hGT0xERVJfVEVYVCAiQ3p5IGplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1bWllnGNp5iBmb2xkZXIgJyUxJyBpIGNhs7kgamVnbyB6YXdhcnRvnOYgdyBrb3N6dSIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIkVsZW1lbnTzdzogJTEgLSBjenkgbmEgcGV3bm8gY2hjZXN6IGplIHVtaWWcY2nmIHcgS29zenU/IgoJSURTX0NBTlRUUkFTSF9URVhUICJOaWUgbW9n6iBwcnplbmllnOYgZWxlbWVudHUgJyUxJyBkbyBLb3N6YS4gQ3p5IGNoY2VzeiBnbyB6YW1pYXN0IHRlZ28gdXN1brnmPyIKCUlEU19PVkVSV1JJVEVGSUxFX1RFWFQgIlRlbiBmb2xkZXIganW/IHphd2llcmEgcGxpayBvIG5hendpZSAnJTEnLlxuXG5DenkgY2hjZXN6IGdvIHphc3S5cGnmPyIKCUlEU19PVkVSV1JJVEVGSUxFX0NBUFRJT04gIlBvdHdpZXJknyB6YXN0uXBpZW5pZSBwbGlrdSIKCUlEU19PVkVSV1JJVEVGT0xERVJfVEVYVCAiVGVuIGZvbGRlciBqdb8gemF3aWVyYSBmb2xkZXIgbyBuYXp3aWUgJyUxJy5cblxuIlwKCSAgICAiSmW/ZWxpIHcgZG9jZWxvd3ltIGZvbGRlcnplIHd5c3S5cGm5IHBsaWtpIG8gdGFraWNoIHNhbXljaCBuYXp3YWNoIGpha1xuIlwKCSAgICAidyB3eWJyYW55bSBmb2xkZXJ6ZSwgdG8gem9zdGFuuSBvbmUgemFzdLlwaW9uZS4gQ3p5IGNoY2VzeiBtaW1vIHRvIHByemVuaWWc5lxuIlwKCSAgICAibHViIHNrb3Bpb3dh5iBmb2xkZXI/IgoKICAgICAgICAvKiBtZXNzYWdlIGJveCBzdHJpbmdzICovCiAgICAgICAgSURTX1JFU1RBUlRfVElUTEUgICAgICAgIlVydWNob20gcG9ub3duaWUiCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgIkN6eSBjaGNlc3ogemFzeW11bG93YeYgenJlc3RhcnRvd2FuaWUgV2luZG93cz8iCiAgICAgICAgSURTX1NIVVRET1dOX1RJVExFICAgICAgIld5s7ljeiIKICAgICAgICBJRFNfU0hVVERPV05fUFJPTVBUICAgICAiQ3p5IGNoY2VzeiB3ebO5Y3p55iBzZXNq6iBXaW5lJ2E/IgoKICAgICAgICAvKiBSdW4gRmlsZSBkaWFsb2cgKi8KICAgICAgICBJRFNfUlVORExHX0VSUk9SICAgICAgICAgICAiTmllIG1vv25hIHd5nHdpZXRsaeYgb2tuYSBkaWFsb2dvd2VnbyBVcnVjaG9tIChis7lkIHdld27qdHJ6bnkpIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0VSUk9SICAgICJOaWUgbW+/bmEgd3mcd2lldGxp5iBva25hIGRpYWxvZ293ZWdvIFByemVnbLlkYWogKGKzuWQgd2V3bup0cnpueSkiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfQ0FQVElPTiAgIlByemVnbLlkYWoiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfRklMVEVSICAgIlBsaWtpIHd5a29ueXdhbG5lXDAqLmV4ZVwwV3N6eXN0a2llIHBsaWtpXDAqLipcMFwwIgoKICAgICAgICAvKiBzaGVsbCBmb2xkZXIgcGF0aCBkZWZhdWx0IHZhbHVlcyAqLwoJSURTX1BST0dSQU1TICAgICAgICAgICAgICAgICJNZW51IFN0YXJ0XFxQcm9ncmFteSIKCUlEU19QRVJTT05BTCAgICAgICAgICAgICAgICAiTW9qZSBkb2t1bWVudHkiCglJRFNfRkFWT1JJVEVTICAgICAgICAgICAgICAgIlVsdWJpb25lIgoJSURTX1NUQVJUVVAgICAgICAgICAgICAgICAgICJNZW51IFN0YXJ0XFxQcm9ncmFteVxcQXV0b1N0YXJ0IgoJSURTX1JFQ0VOVCAgICAgICAgICAgICAgICAgICJSZWNlbnQiCglJRFNfU0VORFRPICAgICAgICAgICAgICAgICAgIlNlbmRUbyIKCUlEU19TVEFSVE1FTlUgICAgICAgICAgICAgICAiTWVudSBTdGFydCIKCUlEU19NWU1VU0lDICAgICAgICAgICAgICAgICAiTW9qYSBtdXp5a2EiCglJRFNfTVlWSURFTyAgICAgICAgICAgICAgICAgIk1vamUgd2lkZW8iCglJRFNfREVTS1RPUERJUkVDVE9SWSAgICAgICAgIlB1bHBpdCIKCUlEU19ORVRIT09EICAgICAgICAgICAgICAgICAiTmV0SG9vZCIKCUlEU19URU1QTEFURVMgICAgICAgICAgICAgICAiU3phYmxvbnkiCglJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIkRhbmUgYXBsaWthY2ppIgoJSURTX1BSSU5USE9PRCAgICAgICAgICAgICAgICJQcmludEhvb2QiCglJRFNfTE9DQUxfQVBQREFUQSAgICAgICAgICAgIlVzdGF3aWVuaWEgbG9rYWxuZVxcRGFuZSBhcGxpa2FjamkiCglJRFNfSU5URVJORVRfQ0FDSEUgICAgICAgICAgIlVzdGF3aWVuaWEgbG9rYWxuZVxcVGVtcG9yYXJ5IEludGVybmV0IEZpbGVzIgoJSURTX0NPT0tJRVMgICAgICAgICAgICAgICAgICJDb29raWVzIgoJSURTX0hJU1RPUlkgICAgICAgICAgICAgICAgICJVc3Rhd2llbmlhIExva2FsbmVcXEhpc3RvcmlhIgoJSURTX1BST0dSQU1fRklMRVMgICAgICAgICAgICJQcm9ncmFtIEZpbGVzIgoJSURTX01ZUElDVFVSRVMgICAgICAgICAgICAgICJNb2plIG9icmF6eSIKCUlEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAgICAiUHJvZ3JhbSBGaWxlc1xcQ29tbW9uIEZpbGVzIgoJSURTX0NPTU1PTl9ET0NVTUVOVFMgICAgICAgICJEb2t1bWVudHkiCglJRFNfQURNSU5UT09MUyAgICAgICAgICAgICAgIk1lbnUgU3RhcnRcXFByb2dyYW15XFxOYXJ66mR6aWEgYWRtaW5pc3RyYWN5am5lIgoJSURTX0NPTU1PTl9NVVNJQyAgICAgICAgICAgICJEb2N1bWVudHlcXE1vamEgbXV6eWthIgoJSURTX0NPTU1PTl9QSUNUVVJFUyAgICAgICAgICJEb2N1bWVudHlcXE1vamUgb2JyYXp5IgoJSURTX0NPTU1PTl9WSURFTyAgICAgICAgICAgICJEb2N1bWVudHlcXE1vamUgd2lkZW8iCglJRFNfQ0RCVVJOX0FSRUEgICAgICAgICAgICAgIlVzdGF3aWVuaWEgbG9rYWxuZVxcRGFuZSBhcGxpa2FjamlcXE1pY3Jvc29mdFxcTmFncnl3YW5pZSBkeXNr83cgQ0QiCgoJSURTX05FV0ZPTERFUgkJIk5vd3kgRm9sZGVyIgoKCUlEU19DUEFORUxfVElUTEUgICAgICAgICAgICAiV2luZSBDb250cm9sIFBhbmVsIgoJSURTX0NQQU5FTF9OQU1FICAgICAgICAgICAgICJOYW1lIgoJSURTX0NQQU5FTF9ERVNDUklQVElPTiAgICAgICJEZXNjcmlwdGlvbiIKfQoKU1RSSU5HVEFCTEUKewpJRFNfTElDRU5TRV9DQVBUSU9OLCAgICAgICAgICAgICJMaWNlbmNqYSBXaW5lIgpJRFNfTElDRU5TRSwKIldpbmUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIFwKbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciBcCnZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuXG5cCldpbmUgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgXApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBcCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cblxuXApZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBcCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuIgp9Cg==