LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IFBpb3RyIENhYmFuCiAqIENvcHlyaWdodCAyMDEwIKN1a2FzeiBXb2puabNvd2ljegogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAic2hyZXNkZWYuaCIKCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKCk1FTlVfMDAxIE1FTlUKQkVHSU4KCU1FTlVJVEVNICImRHW/ZSBJa29ueSIsCUZDSURNX1NIVklFV19CSUdJQ09OCglNRU5VSVRFTSAiJk1hs2UgSWtvbnkiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCglNRU5VSVRFTSAiJkxpc3RhIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJTUVOVUlURU0gIiZTemN6ZWfzs3kiLAkJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKRU5ECgovKgogc2hlbGx2aWV3IGJhY2tncm91bmQgbWVudQoqLwpNRU5VXzAwMiBNRU5VCkJFR0lOCglQT1BVUCAiIgoJQkVHSU4KCSAgUE9QVVAgIiZXaWRvayIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJkR1v2UgSWtvbnkiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImTWGzZSBJa29ueSIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCSAgICBNRU5VSVRFTSAiJkxpc3RhIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKCSAgRU5ECgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiUm96bWllnOYgJmlrb255IHdlZLN1ZyIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJk5hend5IiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICImVHlwdSIsCTB4MzIJLyogY29sdW1uIDIgKi8KCSAgICBNRU5VSVRFTSAiJldpZWxrb5xjaSIsCTB4MzEJLyogLi4uICovCgkgICAgTUVOVUlURU0gIiZEYXR5IiwJMHgzMwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICAgIE1FTlVJVEVNICImQXV0b3Jvem1pZXN6Y3phbmllIiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCgkgIEVORAoJICBNRU5VSVRFTSAiJld5cvN3bmFqIGlrb255IiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImT2Scd2llvyIsCQlGQ0lETV9TSFZJRVdfUkVGUkVTSAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlcma2xlaiIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICJXa2xlaiBzJmty83QiLAlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIiZOb3d5IgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICImRm9sZGVyIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICImU2ty83QiLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJXs2GcY2l3b5xjaSIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiJld5YmllcnoiCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSAiJkVrc3Bsb3J1aiIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJk90d/NyeiIsCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZXeXRuaWoiLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGl1aiIsCQlGQ0lETV9TSFZJRVdfQ09QWQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlV0d/NyeiAmc2ty83QiLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJlVzdfEiLAkJRkNJRE1fU0hWSUVXX0RFTEVURQoJICBNRU5VSVRFTSAiJlptaWXxIG5henfqIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJXsyZhnGNpd2+cY2kiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIiZQbGlrIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiVyZ5apxjaWUiLCBJRE1fQ1BBTkVMX0VYSVQKICAgIEVORAoKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEdb9lIElrb255IiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJk1hs2UgSWtvbnkiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIiZMaXN0YSIsIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICImUG9tb2MiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTyBwYW5lbHUgc3Rlcm93YW5pYS4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgMTUsIDQwLCAxODgsIDE5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICJXeWJpZXJ6IGZvbGRlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIDEsIDgwLCAxNzYsIDUwLCAxMiwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW51bHVqIiwgMiwgMTM0LCAxNzYsIDUwLCAxMiwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiIiwgSUREX1RJVExFLCA0LCA0LCAxODAsIDEyCiBMVEVYVCAiIiwgSUREX1NUQVRVUywgNCwgMjUsIDE4MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAogCVRWU19IQVNCVVRUT05TIHwgVFZTX0hBU0xJTkVTIHwgVFZTX0xJTkVTQVRST09UIHwKCVdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsCgk0LCA0MCwgMTgwLCAxMjAKfQoKU0hORVdCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyAxNSwgNDAsIDIxOCwgMTk2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IFdTX1NJWkVCT1ggfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICJXeWJpZXJ6IGZvbGRlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiIiwgSUREX1RJVExFLCAxMCwgOCwgMTk4LCAyNAogTFRFWFQgIiIsIElERF9TVEFUVVMsIDEwLCAyNSwgMTk4LCAxMgogTFRFWFQgIkZvbGRlcjoiLCBJRERfRk9MREVSLCAxMCwgMTU2LCA0MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAoJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTEyLCAzOCwgMTk0LCAxMDUKIEVESVRURVhUIElERF9GT0xERVJURVhULCA0NiwgMTUwLCAxNjAsIDE0LCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZVdHfzcnogbm93eSBmb2xkZXIiLCBJRERfTUFLRU5FV0ZPTERFUiwgMTIsIDE3NCwgNzAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTAyLCAxNzQsIDUwLCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW51bHVqIiwgSURDQU5DRUwsIDE1NiwgMTc0LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgpTSEVMTF9ZRVNUT0FMTF9NU0dCT1ggRElBTE9HIDIwMCwgMTAwLCAyODAsIDkwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJLb211bmlrYXQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJlRhayIsIElEWUVTLCAzNCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICJUYWsgbmEgJndzenlzdGtpZSIsIElERF9ZRVNUT0FMTCwgOTIsIDY5LCA2NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJk5pZSIsIElETk8sIDE2MiwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICImQW51bHVqIiwgSURDQU5DRUwsIDIyMCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBJQ09OICIiLCBJRERfSUNPTiwgMTAsIDEwLCAxNiwgMTYKICAgIExURVhUICIiLCBJRERfTUVTU0FHRSwgNDAsIDEwLCAyMzgsIDUyLCAwCn0KClNIRUxMX0FCT1VUX01TR0JPWCBESUFMT0cgMTUsIDQwLCAyMjAsIDE1MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTyAlcyIKRk9OVCAxMCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNTMsIDEzMywgNjAsIDEyLCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImTGljZW5jamEgV2luZSIsIElEQ19BQk9VVF9MSUNFTlNFLCAxNTMsIDExMywgNjAsIDEyLCBXU19UQUJTVE9QCiBMSVNUQk9YIElEQ19BQk9VVF9MSVNUQk9YLCA4LCA2NSwgMTM3LCA4MiwgTEJTX05PVElGWSB8IFdTX1ZTQ1JPTEwgfCBXU19CT1JERVIKIElDT04gIiIsIHN0YzEsIDEwLCAxMCwgMzAsIDMwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMSwgNDIsIDEwLCAxNzAsIDEwCiBMVEVYVCAiIiwgSURDX0FCT1VUX1NUQVRJQ19URVhUMiwgNDIsIDIyLCAxNzAsIDEwCiBMVEVYVCAiVXJ1Y2hvbWlvbnkgbmEgJXMiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQzLCA0MiwgMzQsIDE3MCwgMTAKIExURVhUICJNb79lc3oga29yenlzdGHmIHogV2luZSdhIGR6aepraToiLCBJRENfQUJPVVRfV0lORV9URVhULCA4LCA1NSwgMTM3LCAxMAp9CgpTSEVMTF9SVU5fRExHIERJQUxPRyAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICJXcGlzeiBuYXp36iBwcm9ncmFtdSwga2F0YWxvZ3UgbHViIGRva3VtZW50dSwgYSBXaW5lIG90d29yenkgZ28gZGxhIGNpZWJpZS4iLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAiJk90d/NyejoiLCAxMjMwNSwgNywgMzksIDI0LCAxMAogQ09OVFJPTCAiIiwgMTIyOTgsICJDT01CT0JPWCIsIFdTX1RBQlNUT1AgfCBXU19HUk9VUCB8IFdTX1ZTQ1JPTEwgfCBXU19WSVNJQkxFIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19EUk9QRE9XTiwgMzYsIDM3LCAxODMsIDEwMAogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA2MiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW51bHVqIiwgSURDQU5DRUwsIDExNiwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJlByemVnbLlkYWouLi4iLCAxMjI4OCwgMTcwLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCn0KClNUUklOR1RBQkxFCnsKICAgICAgICAvKiBjb2x1bW5zIGluIHRoZSBzaGVsbHZpZXcgKi8KCUlEU19TSFZfQ09MVU1OMQkJIlBsaWsiCglJRFNfU0hWX0NPTFVNTjIJCSJXaWVsa2+c5iIKCUlEU19TSFZfQ09MVU1OMwkJIlR5cCIKCUlEU19TSFZfQ09MVU1ONAkJIk1vZHlmaWthY2phIgoJSURTX1NIVl9DT0xVTU41CQkiQXRyeWJ1dHkiCglJRFNfU0hWX0NPTFVNTjYJCSJXaWVsa2+c5iIKCUlEU19TSFZfQ09MVU1ONwkJIkRvc3TqcG5hIHdpZWxrb5zmIgoJSURTX1NIVl9DT0xVTU44CQkiTmF6d2EiCglJRFNfU0hWX0NPTFVNTjkJCSJLb21lbnRhcnoiCglJRFNfU0hWX0NPTFVNTjEwICAgICAgICAiV7NhnGNpY2llbCIKCUlEU19TSFZfQ09MVU1OMTEgICAgICAgICJHcnVwYSIKCUlEU19TSFZfQ09MVU1OX0RFTEZST00JIk9yeWdpbmFsbmUgcG+zb79lbmllIgoJSURTX1NIVl9DT0xVTU5fREVMREFURQkiRGF0YSB1c3VuaepjaWEiCglJRFNfU0hWX0NPTF9ET0NTCSJEb2t1bWVudHkiCglJRFNfU0hWX0NPTF9TVEFUVVMJIlN0YXR1cyIKCUlEU19TSFZfQ09MX0xPQ0FUSU9OCSJQb7Nvv2VuaWUiCglJRFNfU0hWX0NPTF9NT0RFTAkiTW9kZWwiCgogICAgICAgIC8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSJQdWxwaXQiCglJRFNfTVlDT01QVVRFUgkJIk3zaiBrb21wdXRlciIKCUlEU19SRUNZQ0xFQklOX0ZPTERFUl9OQU1FCSJLb3N6IgoJSURTX0NPTlRST0xQQU5FTAkiUGFuZWwgc3Rlcm93YW5pYSIKCgkvKiBjb250ZXh0IG1lbnVzICovCglJRFNfVklFV19MQVJHRQkJIiZEdb9lIElrb255IgoJSURTX1ZJRVdfU01BTEwJCSImTWGzZSBJa29ueSIKCUlEU19WSUVXX0xJU1QJCSImTGlzdGEiCglJRFNfVklFV19ERVRBSUxTCSImU3pjemVn87N5IgoJSURTX1NFTEVDVAkJIlphem5hY3oiCglJRFNfT1BFTgkJIk90d/NyeiIKCglJRFNfQ1JFQVRFRk9MREVSX0RFTklFRCAiTmllIG1vZ+ogdXR3b3J6eeYgbm93ZWdvIGthdGFsb2d1OiBCcmFrIGRvc3TqcHUuIgoJSURTX0NSRUFURUZPTERFUl9DQVBUSU9OICJCs7lkIHByenkgdHdvcnplbml1IG5vd2VnbyBrYXRhbG9ndS4iCglJRFNfREVMRVRFSVRFTV9DQVBUSU9OICJQb3R3aWVyZJ8gdXN1bmnqY2llIHBsaWt1IgoJSURTX0RFTEVURUZPTERFUl9DQVBUSU9OICJQb3R3aWVyZJ8gdXN1bmnqY2llIGthdGFsb2d1IgoJSURTX0RFTEVURUlURU1fVEVYVCAiQ3p5IGplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1c3VuueYgJyUxJz8iCglJRFNfREVMRVRFTVVMVElQTEVfVEVYVCAiQ3p5IGplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1c3VuueYgdGUgJTEgcGxpa2k/IgoJSURTX0RFTEVURVNFTEVDVEVEX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdXN1brnmIHd5YnJhbmUgZWxlbWVudHk/IgoJSURTX1RSQVNISVRFTV9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVtaWWcY2nmIHBsaWsgJyUxJyB3IEtvc3p1PyIKCUlEU19UUkFTSEZPTERFUl9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVtaWWcY2nmIGZvbGRlciAnJTEnIGkgY2GzuSBqZWdvIHphd2FydG+c5iB3IGtvc3p1IgoJSURTX1RSQVNITVVMVElQTEVfVEVYVCAiRWxlbWVudPN3OiAlMSAtIGN6eSBuYSBwZXdubyBjaGNlc3ogamUgdW1pZZxjaeYgdyBLb3N6dT8iCglJRFNfQ0FOVFRSQVNIX1RFWFQgIk5pZSBtb2fqIHByemVuaWWc5iBlbGVtZW50dSAnJTEnIGRvIEtvc3phLiBDenkgY2hjZXN6IGdvIHphbWlhc3QgdGVnbyB1c3VuueY/IgoJSURTX09WRVJXUklURUZJTEVfVEVYVCAiVGVuIGZvbGRlciBqdb8gemF3aWVyYSBwbGlrIG8gbmF6d2llICclMScuXG5cbkN6eSBjaGNlc3ogZ28gemFzdLlwaeY/IgoJSURTX09WRVJXUklURUZJTEVfQ0FQVElPTiAiUG90d2llcmSfIHphc3S5cGllbmllIHBsaWt1IgoJSURTX09WRVJXUklURUZPTERFUl9URVhUICJUZW4gZm9sZGVyIGp1vyB6YXdpZXJhIGZvbGRlciBvIG5hendpZSAnJTEnLlxuXG4iXAoJICAgICJKZb9lbGkgdyBkb2NlbG93eW0gZm9sZGVyemUgd3lzdLlwabkgcGxpa2kgbyB0YWtpY2ggc2FteWNoIG5hendhY2ggamFrXG4iXAoJICAgICJ3IHd5YnJhbnltIGZvbGRlcnplLCB0byB6b3N0YW65IG9uZSB6YXN0uXBpb25lLiBDenkgY2hjZXN6IG1pbW8gdG8gcHJ6ZW5pZZzmXG4iXAoJICAgICJsdWIgc2tvcGlvd2HmIGZvbGRlcj8iCgogICAgICAgIC8qIG1lc3NhZ2UgYm94IHN0cmluZ3MgKi8KICAgICAgICBJRFNfUkVTVEFSVF9USVRMRSAgICAgICAiVXJ1Y2hvbSBwb25vd25pZSIKICAgICAgICBJRFNfUkVTVEFSVF9QUk9NUFQgICAgICAiQ3p5IGNoY2VzeiB6YXN5bXVsb3dh5iB6cmVzdGFydG93YW5pZSBXaW5kb3dzPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiV3mzuWN6IgogICAgICAgIElEU19TSFVURE9XTl9QUk9NUFQgICAgICJDenkgY2hjZXN6IHd5s7ljennmIHNlc2rqIFdpbmUnYT8iCgogICAgICAgIC8qIFJ1biBGaWxlIGRpYWxvZyAqLwogICAgICAgIElEU19SVU5ETEdfRVJST1IgICAgICAgICAgICJOaWUgbW+/bmEgd3mcd2lldGxp5iBva25hIGRpYWxvZ293ZWdvIFVydWNob20gKGKzuWQgd2V3bup0cnpueSkiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfRVJST1IgICAgIk5pZSBtb79uYSB3eZx3aWV0bGnmIG9rbmEgZGlhbG9nb3dlZ28gUHJ6ZWdsuWRhaiAoYrO5ZCB3ZXdu6nRyem55KSIKICAgICAgICBJRFNfUlVORExHX0JST1dTRV9DQVBUSU9OICAiUHJ6ZWdsuWRhaiIKICAgICAgICBJRFNfUlVORExHX0JST1dTRV9GSUxURVIgICAiUGxpa2kgd3lrb255d2FsbmVcMCouZXhlXDBXc3p5c3RraWUgcGxpa2lcMCouKlwwXDAiCgogICAgICAgIC8qIHNoZWxsIGZvbGRlciBwYXRoIGRlZmF1bHQgdmFsdWVzICovCglJRFNfUFJPR1JBTVMgICAgICAgICAgICAgICAgIk1lbnUgU3RhcnRcXFByb2dyYW15IgoJSURTX1BFUlNPTkFMICAgICAgICAgICAgICAgICJNb2plIGRva3VtZW50eSIKCUlEU19GQVZPUklURVMgICAgICAgICAgICAgICAiVWx1YmlvbmUiCglJRFNfU1RBUlRVUCAgICAgICAgICAgICAgICAgIk1lbnUgU3RhcnRcXFByb2dyYW15XFxBdXRvU3RhcnQiCglJRFNfUkVDRU5UICAgICAgICAgICAgICAgICAgIlJlY2VudCIKCUlEU19TRU5EVE8gICAgICAgICAgICAgICAgICAiU2VuZFRvIgoJSURTX1NUQVJUTUVOVSAgICAgICAgICAgICAgICJNZW51IFN0YXJ0IgoJSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICJNb2phIG11enlrYSIKCUlEU19NWVZJREVPICAgICAgICAgICAgICAgICAiTW9qZSB3aWRlbyIKCUlEU19ERVNLVE9QRElSRUNUT1JZICAgICAgICAiUHVscGl0IgoJSURTX05FVEhPT0QgICAgICAgICAgICAgICAgICJOZXRIb29kIgoJSURTX1RFTVBMQVRFUyAgICAgICAgICAgICAgICJTemFibG9ueSIKCUlEU19BUFBEQVRBICAgICAgICAgICAgICAgICAiRGFuZSBhcGxpa2FjamkiCglJRFNfUFJJTlRIT09EICAgICAgICAgICAgICAgIlByaW50SG9vZCIKCUlEU19MT0NBTF9BUFBEQVRBICAgICAgICAgICAiVXN0YXdpZW5pYSBsb2thbG5lXFxEYW5lIGFwbGlrYWNqaSIKCUlEU19JTlRFUk5FVF9DQUNIRSAgICAgICAgICAiVXN0YXdpZW5pYSBsb2thbG5lXFxUZW1wb3JhcnkgSW50ZXJuZXQgRmlsZXMiCglJRFNfQ09PS0lFUyAgICAgICAgICAgICAgICAgIkNvb2tpZXMiCglJRFNfSElTVE9SWSAgICAgICAgICAgICAgICAgIlVzdGF3aWVuaWEgTG9rYWxuZVxcSGlzdG9yaWEiCglJRFNfUFJPR1JBTV9GSUxFUyAgICAgICAgICAgIlByb2dyYW0gRmlsZXMiCglJRFNfUFJPR1JBTV9GSUxFU1g4NiAgICAgICAgIlByb2dyYW0gRmlsZXMgKHg4NikiCglJRFNfTVlQSUNUVVJFUyAgICAgICAgICAgICAgIk1vamUgb2JyYXp5IgoJSURTX1BST0dSQU1fRklMRVNfQ09NTU9OICAgICJQcm9ncmFtIEZpbGVzXFxDb21tb24gRmlsZXMiCglJRFNfUFJPR1JBTV9GSUxFU19DT01NT05YODYgIlByb2dyYW0gRmlsZXMgKHg4NilcXENvbW1vbiBGaWxlcyIKCUlEU19DT01NT05fRE9DVU1FTlRTICAgICAgICAiRG9rdW1lbnR5IgoJSURTX0FETUlOVE9PTFMgICAgICAgICAgICAgICJNZW51IFN0YXJ0XFxQcm9ncmFteVxcTmFyeupkemlhIGFkbWluaXN0cmFjeWpuZSIKCUlEU19DT01NT05fTVVTSUMgICAgICAgICAgICAiTXV6eWthIgoJSURTX0NPTU1PTl9QSUNUVVJFUyAgICAgICAgICJPYnJhenkiCglJRFNfQ09NTU9OX1ZJREVPICAgICAgICAgICAgIldpZGVvIgoJSURTX0NEQlVSTl9BUkVBICAgICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXERhbmUgYXBsaWthY2ppXFxNaWNyb3NvZnRcXE5hZ3J5d2FuaWUgZHlza/N3IENEIgoJSURTX0NPTlRBQ1RTICAgICAgICAgICAgICAgICJLb250YWt0eSIKCUlEU19MSU5LUyAgICAgICAgICAgICAgICAgICAiTGlua2kiCglJRFNfUEhPVE9fQUxCVU1TICAgICAgICAgICAgIk9icmF6eVxcU2xpZGUgU2hvd3MiCglJRFNfUExBWUxJU1RTICAgICAgICAgICAgICAgIk11enlrYVxcUGxheWxpc3RzIgoJSURTX1BVQkxJQ19ET1dOTE9BRFMgICAgICAgICJQb2JyYW5lIgoJSURTX1BVQkxJQ19HQU1FX1RBU0tTICAgICAgICJNaWNyb3NvZnRcXFdpbmRvd3NcXEdhbWVFeHBsb3JlciIKCUlEU19QVUJMSUNfTElCUkFSSUVTICAgICAgICAiTWljcm9zb2Z0XFxXaW5kb3dzXFxMaWJyYXJpZXMiCglJRFNfUFVCTElDX1JJTkdUT05FUyAgICAgICAgIk1pY3Jvc29mdFxcV2luZG93c1xcUmluZ3RvbmVzIgoJSURTX1NBTVBMRV9NVVNJQyAgICAgICAgICAgICJNdXp5a2FcXFByenlrs2Fkb3dhIG11enlrYSIKCUlEU19TQU1QTEVfUElDVFVSRVMgICAgICAgICAiT2JyYXp5XFxQcnp5a7NhZG93ZSBvYnJhenkiCglJRFNfU0FNUExFX1BMQVlMSVNUUyAgICAgICAgIk11enlrYVxcU2FtcGxlIFBsYXlsaXN0cyIKCUlEU19TQU1QTEVfVklERU9TICAgICAgICAgICAiV2lkZW9cXFByenlrs2Fkb3dlIHdpZGVvIgoJSURTX1NBVkVEX0dBTUVTICAgICAgICAgICAgICJTYXZlZCBHYW1lcyIKCUlEU19TQVZFRF9TRUFSQ0hFUyAgICAgICAgICAiU2VhcmNoZXMiCglJRFNfVVNFUl9QUk9GSUxFUyAgICAgICAgICAgIlVzZXJzIgoJSURTX0NPTU1PTl9PRU1fTElOS1MgICAgICAgICJMaW5raSBPRU0iCglJRFNfRE9DVU1FTlRTICAgICAgICAgICAgICAgIkRva3VtZW50eSIKCUlEU19ET1dOTE9BRFMgICAgICAgICAgICAgICAiUG9icmFuZSIKCUlEU19MT0NBTF9BUFBEQVRBX0xPVyAgICAgICAiRGFuZSBhcGxpa2FjamlcXExvY2FsTG93IgoKCglJRFNfTkVXRk9MREVSCQkiTm93eSBGb2xkZXIiCgoJSURTX0NQQU5FTF9USVRMRSAgICAgICAgICAgICJQYW5lbCBzdGVyb3dhbmlhIFdpbmUiCglJRFNfQ1BBTkVMX05BTUUgICAgICAgICAgICAgIk5hendhIgoJSURTX0NQQU5FTF9ERVNDUklQVElPTiAgICAgICJPcGlzIgoKICAgICAgICBJRFNfU0hMRVhFQ19OT0FTU09DICAgICAgICAgIk5pZSBtYSBwcnp5cGlzYW5lZ28gcHJvZ3JhbXUgV2luZG93c293ZWdvIGRvIG90d2llcmFuaWEgdGVnbyB0eXB1IHBsaWvzdy4iCn0KClNUUklOR1RBQkxFCnsKSURTX0xJQ0VOU0VfQ0FQVElPTiwgICAgICAgICAgICAiTGljZW5jamEgV2luZSIKSURTX0xJQ0VOU0UsCiJXaW5lIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBcCm1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgXAp2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuXApXaW5lIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIFwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgXApNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBcCkxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cblwKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLiIKfQo=