LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IFBpb3RyIENhYmFuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUE9MSVNILCBTVUJMQU5HX0RFRkFVTFQKCk1FTlVfMDAxIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCU1FTlVJVEVNICImRHW/ZSBJa29ueSIsCUZDSURNX1NIVklFV19CSUdJQ09OCglNRU5VSVRFTSAiJk1hs2UgSWtvbnkiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCglNRU5VSVRFTSAiJkxpc3RhIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJTUVOVUlURU0gIiZTemN6ZWfzs3kiLAkJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKRU5ECgovKgogc2hlbGx2aWV3IGJhY2tncm91bmQgbWVudQoqLwpNRU5VXzAwMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglQT1BVUCAiIgoJQkVHSU4KCSAgUE9QVVAgIiZXaWRvayIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJkR1v2UgSWtvbnkiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImTWGzZSBJa29ueSIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCSAgICBNRU5VSVRFTSAiJkxpc3RhIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKCSAgRU5ECgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBQT1BVUCAiUm96bWllnOYgJmlrb255IHdlZLN1ZyIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJk5hend5IiwJMHgzMAkvKiBjb2x1bW4gMCAqLwoJICAgIE1FTlVJVEVNICImVHlwdSIsCTB4MzIJLyogY29sdW1uIDIgKi8KCSAgICBNRU5VSVRFTSAiJldpZWxrb5xjaSIsCTB4MzEJLyogLi4uICovCgkgICAgTUVOVUlURU0gIiZEYXR5IiwJMHgzMwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICAgIE1FTlVJVEVNICImQXV0b3Jvem1pZXN6Y3phbmllIiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCgkgIEVORAoJICBNRU5VSVRFTSAiJld5cvN3bmFqIGlrb255IiwJRkNJRE1fU0hWSUVXX1NOQVBUT0dSSUQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImT2Scd2llvyIsCQlGQ0lETV9TSFZJRVdfUkVGUkVTSAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlcma2xlaiIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICJXa2xlaiBzJmty83QiLAlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIiZOb3d5IgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICImRm9sZGVyIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICImU2ty83QiLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJXs2GcY2l3b5xjaSIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiJld5YmllcnoiCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSAiJkVrc3Bsb3J1aiIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJk90d/NyeiIsCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZXeXRuaWoiLAkJRkNJRE1fU0hWSUVXX0NVVAoJICBNRU5VSVRFTSAiJktvcGl1aiIsCQlGQ0lETV9TSFZJRVdfQ09QWQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIlV0d/NyeiAmc2ty83QiLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJlVzdfEiLAkJRkNJRE1fU0hWSUVXX0RFTEVURQoJICBNRU5VSVRFTSAiJlptaWXxIG5henfqIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJXsyZhnGNpd2+cY2kiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIiZGaWxlIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiRSZ4aXQiLCBJRE1fQ1BBTkVMX0VYSVQKICAgIEVORAoKICAgIFBPUFVQICImVmlldyIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZEdb9lIElrb255IiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJk1hs2UgSWtvbnkiLCBGQ0lETV9TSFZJRVdfU01BTExJQ09OCiAgICAgICAgTUVOVUlURU0gIiZMaXN0YSIsIEZDSURNX1NIVklFV19MSVNUVklFVwogICAgICAgIE1FTlVJVEVNICImU3pjemVn87N5IiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICImSGVscCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBYm91dCBDb250cm9sIFBhbmVsLi4uIiwgSURNX0NQQU5FTF9BQk9VVAogICAgRU5ECkVORAoKU0hCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMTg4LCAxOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAiV3liaWVyeiBmb2xkZXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCAxLCA4MCwgMTc2LCA1MCwgMTIsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFudWx1aiIsIDIsIDEzNCwgMTc2LCA1MCwgMTIsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIiIsIElERF9USVRMRSwgNCwgNCwgMTgwLCAxMgogTFRFWFQgIiIsIElERF9TVEFUVVMsIDQsIDI1LCAxODAsIDEyCiBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKIAlUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CglXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJNCwgNDAsIDE4MCwgMTIwCn0KClNITkVXQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIxOCwgMTk2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8IFdTX1NJWkVCT1ggfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICJXeWJpZXJ6IGZvbGRlciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiIiwgSUREX1RJVExFLCAxMCwgOCwgMTk4LCAyNAogTFRFWFQgIiIsIElERF9TVEFUVVMsIDEwLCAyNSwgMTk4LCAxMgogTFRFWFQgIkZvbGRlcjoiLCBJRERfRk9MREVSLCAxMCwgMTU2LCA0MCwgMTIKIENPTlRST0wgIiIsIElERF9UUkVFVklFVywgIlN5c1RyZWVWaWV3MzIiLAoJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTEyLCAzOCwgMTk0LCAxMDUKIEVESVRURVhUIElERF9GT0xERVJURVhULCA0NiwgMTUwLCAxNjAsIDE0LCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZVdHfzcnogbm93eSBmb2xkZXIiLCBJRERfTUFLRU5FV0ZPTERFUiwgMTIsIDE3NCwgNzAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTAyLCAxNzQsIDUwLCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiQW51bHVqIiwgSURDQU5DRUwsIDE1NiwgMTc0LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgpTSEVMTF9ZRVNUT0FMTF9NU0dCT1ggRElBTE9HIDIwMCwgMTAwLCAyODAsIDkwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJLb211bmlrYXQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgREVGUFVTSEJVVFRPTiAiJlRhayIsIElEWUVTLCAzNCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICJUYWsgbmEgJndzenlzdGtpZSIsIElERF9ZRVNUT0FMTCwgOTIsIDY5LCA2NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJk5pZSIsIElETk8sIDE2MiwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICImQW51bHVqIiwgSURDQU5DRUwsIDIyMCwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBJQ09OICIiLCBJRERfSUNPTiwgMTAsIDEwLCAxNiwgMTYKICAgIExURVhUICIiLCBJRERfTUVTU0FHRSwgNDAsIDEwLCAyMzgsIDUyLCAwCn0KClNIRUxMX0FCT1VUX01TR0JPWCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAxNSwgNDAsIDIyMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJPICVzIgpGT05UIDEwLCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE1MywgMTMzLCA2MCwgMTIsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZMaWNlbmNqYSBXaW5lIiwgSURDX0FCT1VUX0xJQ0VOU0UsIDE1MywgMTEzLCA2MCwgMTIsIFdTX1RBQlNUT1AKIExJU1RCT1ggSURDX0FCT1VUX0xJU1RCT1gsIDgsIDY1LCAxMzcsIDgyLCBMQlNfTk9USUZZIHwgV1NfVlNDUk9MTCB8IFdTX0JPUkRFUgogSUNPTiAiIiwgc3RjMSwgMTAsIDEwLCAzMCwgMzAKIExURVhUICIiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQxLCA0MiwgMTAsIDE3MCwgMTAKIExURVhUICIiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQyLCA0MiwgMjIsIDE3MCwgMTAKIExURVhUICJVcnVjaG9taW9ueSBuYSAlcyIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDMsIDQyLCAzNCwgMTcwLCAxMAogTFRFWFQgIk1vv2VzeiBrb3J6eXN0YeYgeiBXaW5lJ2EgZHpp6mtpOiIsIElEQ19BQk9VVF9XSU5FX1RFWFQsIDgsIDU1LCAxMzcsIDEwCn0KClNIRUxMX1JVTl9ETEcgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMCwgMCwgMjI3LCA5NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIElDT04gIiIsIDEyMjk3LCA3LCAxMSwgMTgsIDIwLCBXU19WSVNJQkxFCiBMVEVYVCAiV3Bpc3ogbmF6d+ogcHJvZ3JhbXUsIGthdGFsb2d1IGx1YiBkb2t1bWVudHUsIGEgV2luZSBvdHdvcnp5IGdvIGRsYSBjaWViaWUuIiwgMTIyODksIDM2LCAxMSwgMTgyLCAxOAogTFRFWFQgIiZPdHfzcno6IiwgMTIzMDUsIDcsIDM5LCAyNCwgMTAKIENPTlRST0wgIiIsIDEyMjk4LCAiQ09NQk9CT1giLCBXU19UQUJTVE9QIHwgV1NfR1JPVVAgfCBXU19WU0NST0xMIHwgV1NfVklTSUJMRSB8IENCU19ESVNBQkxFTk9TQ1JPTEwgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfRFJPUERPV04sIDM2LCAzNywgMTgzLCAxMDAKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgNjIsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFudWx1aiIsIElEQ0FOQ0VMLCAxMTYsIDYzLCA1MCwgMTQsIFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIiZQcnplZ2y5ZGFqLi4uIiwgMTIyODgsIDE3MCwgNjMsIDUwLCAxNCwgV1NfVEFCU1RPUAp9CgpTVFJJTkdUQUJMRQp7CiAgICAgICAgLyogY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3ICovCglJRFNfU0hWX0NPTFVNTjEJCSJQbGlrIgoJSURTX1NIVl9DT0xVTU4yCQkiV2llbGtvnOYiCglJRFNfU0hWX0NPTFVNTjMJCSJUeXAiCglJRFNfU0hWX0NPTFVNTjQJCSJNb2R5ZmlrYWNqYSIKCUlEU19TSFZfQ09MVU1ONQkJIkF0cnlidXR5IgoJSURTX1NIVl9DT0xVTU42CQkiV2llbGtvnOYiCglJRFNfU0hWX0NPTFVNTjcJCSJEb3N06nBuYSB3aWVsa2+c5iIKCUlEU19TSFZfQ09MVU1OOAkJIk5hendhIgoJSURTX1NIVl9DT0xVTU45CQkiS29tZW50YXJ6IgoJSURTX1NIVl9DT0xVTU4xMCAgICAgICAgIlezYZxjaWNpZWwiCglJRFNfU0hWX0NPTFVNTjExICAgICAgICAiR3J1cGEiCglJRFNfU0hWX0NPTFVNTl9ERUxGUk9NCSJMb2thY2phIG9yeWdpbmFsbmEiCglJRFNfU0hWX0NPTFVNTl9ERUxEQVRFCSJEYXRhIHVzdW5p6mNpYSIKCiAgICAgICAgLyogc3BlY2lhbCBmb2xkZXJzICovCglJRFNfREVTS1RPUAkJIlB1bHBpdCIKCUlEU19NWUNPTVBVVEVSCQkiTfNqIGtvbXB1dGVyIgoJSURTX1JFQ1lDTEVCSU5fRk9MREVSX05BTUUJIktvc3oiCglJRFNfQ09OVFJPTFBBTkVMCSJDb250cm9sIFBhbmVsIgoKCS8qIGNvbnRleHQgbWVudXMgKi8KCUlEU19WSUVXX0xBUkdFCQkiJkR1v2UgSWtvbnkiCglJRFNfVklFV19TTUFMTAkJIiZNYbNlIElrb255IgoJSURTX1ZJRVdfTElTVAkJIiZMaXN0YSIKCUlEU19WSUVXX0RFVEFJTFMJIiZTemN6ZWfzs3kiCglJRFNfU0VMRUNUCQkiWmF6bmFjeiIKCUlEU19PUEVOCQkiT3R383J6IgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICJOaWUgbW9n6iB1dHdvcnp55iBub3dlZ28ga2F0YWxvZ3U6IEJyYWsgZG9zdOpwdS4iCglJRFNfQ1JFQVRFRk9MREVSX0NBUFRJT04gIkKzuWQgcHJ6eSB0d29yemVuaXUgbm93ZWdvIGthdGFsb2d1LiIKCUlEU19ERUxFVEVJVEVNX0NBUFRJT04gIlBvdHdpZXJknyB1c3VuaepjaWUgcGxpa3UiCglJRFNfREVMRVRFRk9MREVSX0NBUFRJT04gIlBvdHdpZXJknyB1c3VuaepjaWUga2F0YWxvZ3UiCglJRFNfREVMRVRFSVRFTV9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVzdW655iAnJTEnPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICJDenkgamVzdGWcIHBld2llbiwgv2UgY2hjZXN6IHVzdW655iB0ZSAlMSBwbGlraT8iCglJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiQ3p5IGplc3RlnCBwZXdpZW4sIL9lIGNoY2VzeiB1c3VuueYgd3licmFuZSBlbGVtZW50eT8iCglJRFNfVFJBU0hJVEVNX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdW1pZZxjaeYgcGxpayAnJTEnIHcgS29zenU/IgoJSURTX1RSQVNIRk9MREVSX1RFWFQgIkN6eSBqZXN0ZZwgcGV3aWVuLCC/ZSBjaGNlc3ogdW1pZZxjaeYgZm9sZGVyICclMScgaSBjYbO5IGplZ28gemF3YXJ0b5zmIHcga29zenUiCglJRFNfVFJBU0hNVUxUSVBMRV9URVhUICJFbGVtZW5083c6ICUxIC0gY3p5IG5hIHBld25vIGNoY2VzeiBqZSB1bWllnGNp5iB3IEtvc3p1PyIKCUlEU19DQU5UVFJBU0hfVEVYVCAiTmllIG1vZ+ogcHJ6ZW5pZZzmIGVsZW1lbnR1ICclMScgZG8gS29zemEuIEN6eSBjaGNlc3ogZ28gemFtaWFzdCB0ZWdvIHVzdW655j8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICJUZW4gZm9sZGVyIGp1vyB6YXdpZXJhIHBsaWsgbyBuYXp3aWUgJyUxJy5cblxuQ3p5IGNoY2VzeiBnbyB6YXN0uXBp5j8iCglJRFNfT1ZFUldSSVRFRklMRV9DQVBUSU9OICJQb3R3aWVyZJ8gemFzdLlwaWVuaWUgcGxpa3UiCglJRFNfT1ZFUldSSVRFRk9MREVSX1RFWFQgIlRlbiBmb2xkZXIganW/IHphd2llcmEgZm9sZGVyIG8gbmF6d2llICclMScuXG5cbiJcCgkgICAgIkplv2VsaSB3IGRvY2Vsb3d5bSBmb2xkZXJ6ZSB3eXN0uXBpuSBwbGlraSBvIHRha2ljaCBzYW15Y2ggbmF6d2FjaCBqYWtcbiJcCgkgICAgIncgd3licmFueW0gZm9sZGVyemUsIHRvIHpvc3Rhbrkgb25lIHphc3S5cGlvbmUuIEN6eSBjaGNlc3ogbWltbyB0byBwcnplbmllnOZcbiJcCgkgICAgImx1YiBza29waW93YeYgZm9sZGVyPyIKCiAgICAgICAgLyogbWVzc2FnZSBib3ggc3RyaW5ncyAqLwogICAgICAgIElEU19SRVNUQVJUX1RJVExFICAgICAgICJVcnVjaG9tIHBvbm93bmllIgogICAgICAgIElEU19SRVNUQVJUX1BST01QVCAgICAgICJDenkgY2hjZXN6IHphc3ltdWxvd2HmIHpyZXN0YXJ0b3dhbmllIFdpbmRvd3M/IgogICAgICAgIElEU19TSFVURE9XTl9USVRMRSAgICAgICJXebO5Y3oiCiAgICAgICAgSURTX1NIVVRET1dOX1BST01QVCAgICAgIkN6eSBjaGNlc3ogd3mzuWN6eeYgc2VzauogV2luZSdhPyIKCiAgICAgICAgLyogUnVuIEZpbGUgZGlhbG9nICovCiAgICAgICAgSURTX1JVTkRMR19FUlJPUiAgICAgICAgICAgIk5pZSBtb79uYSB3eZx3aWV0bGnmIG9rbmEgZGlhbG9nb3dlZ28gVXJ1Y2hvbSAoYrO5ZCB3ZXdu6nRyem55KSIKICAgICAgICBJRFNfUlVORExHX0JST1dTRV9FUlJPUiAgICAiTmllIG1vv25hIHd5nHdpZXRsaeYgb2tuYSBkaWFsb2dvd2VnbyBQcnplZ2y5ZGFqIChis7lkIHdld27qdHJ6bnkpIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0NBUFRJT04gICJQcnplZ2y5ZGFqIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0ZJTFRFUiAgICJQbGlraSB3eWtvbnl3YWxuZVwwKi5leGVcMFdzenlzdGtpZSBwbGlraVwwKi4qXDBcMCIKCiAgICAgICAgLyogc2hlbGwgZm9sZGVyIHBhdGggZGVmYXVsdCB2YWx1ZXMgKi8KCUlEU19QUk9HUkFNUyAgICAgICAgICAgICAgICAiTWVudSBTdGFydFxcUHJvZ3JhbXkiCglJRFNfUEVSU09OQUwgICAgICAgICAgICAgICAgIk1vamUgZG9rdW1lbnR5IgoJSURTX0ZBVk9SSVRFUyAgICAgICAgICAgICAgICJVbHViaW9uZSIKCUlEU19TVEFSVFVQICAgICAgICAgICAgICAgICAiTWVudSBTdGFydFxcUHJvZ3JhbXlcXEF1dG9TdGFydCIKCUlEU19SRUNFTlQgICAgICAgICAgICAgICAgICAiUmVjZW50IgoJSURTX1NFTkRUTyAgICAgICAgICAgICAgICAgICJTZW5kVG8iCglJRFNfU1RBUlRNRU5VICAgICAgICAgICAgICAgIk1lbnUgU3RhcnQiCglJRFNfTVlNVVNJQyAgICAgICAgICAgICAgICAgIk1vamEgbXV6eWthIgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICJNb2plIHdpZGVvIgoJSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICJQdWxwaXQiCglJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgIk5ldEhvb2QiCglJRFNfVEVNUExBVEVTICAgICAgICAgICAgICAgIlN6YWJsb255IgoJSURTX0FQUERBVEEgICAgICAgICAgICAgICAgICJEYW5lIGFwbGlrYWNqaSIKCUlEU19QUklOVEhPT0QgICAgICAgICAgICAgICAiUHJpbnRIb29kIgoJSURTX0xPQ0FMX0FQUERBVEEgICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXERhbmUgYXBsaWthY2ppIgoJSURTX0lOVEVSTkVUX0NBQ0hFICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXFRlbXBvcmFyeSBJbnRlcm5ldCBGaWxlcyIKCUlEU19DT09LSUVTICAgICAgICAgICAgICAgICAiQ29va2llcyIKCUlEU19ISVNUT1JZICAgICAgICAgICAgICAgICAiVXN0YXdpZW5pYSBMb2thbG5lXFxIaXN0b3JpYSIKCUlEU19QUk9HUkFNX0ZJTEVTICAgICAgICAgICAiUHJvZ3JhbSBGaWxlcyIKCUlEU19NWVBJQ1RVUkVTICAgICAgICAgICAgICAiTW9qZSBvYnJhenkiCglJRFNfUFJPR1JBTV9GSUxFU19DT01NT04gICAgIlByb2dyYW0gRmlsZXNcXENvbW1vbiBGaWxlcyIKCUlEU19DT01NT05fRE9DVU1FTlRTICAgICAgICAiRG9rdW1lbnR5IgoJSURTX0FETUlOVE9PTFMgICAgICAgICAgICAgICJNZW51IFN0YXJ0XFxQcm9ncmFteVxcTmFyeupkemlhIGFkbWluaXN0cmFjeWpuZSIKCUlEU19DT01NT05fTVVTSUMgICAgICAgICAgICAiRG9jdW1lbnR5XFxNb2phIG11enlrYSIKCUlEU19DT01NT05fUElDVFVSRVMgICAgICAgICAiRG9jdW1lbnR5XFxNb2plIG9icmF6eSIKCUlEU19DT01NT05fVklERU8gICAgICAgICAgICAiRG9jdW1lbnR5XFxNb2plIHdpZGVvIgoJSURTX0NEQlVSTl9BUkVBICAgICAgICAgICAgICJVc3Rhd2llbmlhIGxva2FsbmVcXERhbmUgYXBsaWthY2ppXFxNaWNyb3NvZnRcXE5hZ3J5d2FuaWUgZHlza/N3IENEIgoKCUlEU19ORVdGT0xERVIJCSJOb3d5IEZvbGRlciIKCglJRFNfQ1BBTkVMX1RJVExFICAgICAgICAgICAgIldpbmUgQ29udHJvbCBQYW5lbCIKCUlEU19DUEFORUxfTkFNRSAgICAgICAgICAgICAiTmFtZSIKCUlEU19DUEFORUxfREVTQ1JJUFRJT04gICAgICAiRGVzY3JpcHRpb24iCn0KClNUUklOR1RBQkxFCnsKSURTX0xJQ0VOU0VfQ0FQVElPTiwgICAgICAgICAgICAiTGljZW5jamEgV2luZSIKSURTX0xJQ0VOU0UsCiJXaW5lIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBcCm1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgXApMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgXAp2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuXApXaW5lIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIFwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgXApNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBcCkxlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cblwKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLiIKfQo=