LyoKICogQ29weXJpZ2h0IDE5OTggSnVlcmdlbiBTY2htaWVkCiAqIENvcHlyaWdodCAyMDA0IEhlbm5pbmcgR2VyaGFyZHQKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKI2luY2x1ZGUgInNocmVzZGVmLmgiCgpMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMCgpNRU5VXzAwMSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglNRU5VSVRFTSAiJkdyb99lIFN5bWJvbGUiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJTUVOVUlURU0gIiZLbGVpbmUgU3ltYm9sZSIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCU1FTlVJVEVNICImTGlzdGUiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCglNRU5VSVRFTSAiJkRldGFpbHMiLAkJRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKRU5ECgovKgogc2hlbGx2aWV3IGJhY2tncm91bmQgbWVudQoqLwpNRU5VXzAwMiBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCglQT1BVUCAiIgoJQkVHSU4KCSAgUE9QVVAgIiZBbnNpY2h0IgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICImR3Jv32UgU3ltYm9sZSIsCUZDSURNX1NIVklFV19CSUdJQ09OCgkgICAgTUVOVUlURU0gIiZLbGVpbmUgU3ltYm9sZSIsCUZDSURNX1NIVklFV19TTUFMTElDT04KCSAgICBNRU5VSVRFTSAiJkxpc3RlIiwJCUZDSURNX1NIVklFV19MSVNUVklFVwoJICAgIE1FTlVJVEVNICImRGV0YWlscyIsCUZDSURNX1NIVklFV19SRVBPUlRWSUVXCgkgIEVORAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIlN5bWJvbGUgYW5vcmRuZW4iCgkgIEJFR0lOCgkgICAgTUVOVUlURU0gIk5hY2ggJk5hbWUiLAkweDMwCS8qIGNvbHVtbiAwICovCgkgICAgTUVOVUlURU0gIk5hY2ggJlR5cCIsCTB4MzIJLyogY29sdW1uIDIgKi8KCSAgICBNRU5VSVRFTSAiTmFjaCAmR3L232UiLAkweDMxCS8qIC4uLiAqLwoJICAgIE1FTlVJVEVNICJOYWNoICZEYXR1bSIsCTB4MzMKCSAgICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgICBNRU5VSVRFTSAiJkF1dG9tYXRpc2NoIGFub3JkbmVuIiwJRkNJRE1fU0hWSUVXX0FVVE9BUlJBTkdFCgkgIEVORAoJICBNRU5VSVRFTSAiSWNvbnMgYW5vcmRuZW4iLAlGQ0lETV9TSFZJRVdfU05BUFRPR1JJRAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIkFrdHVhbGlzaWVyZW4iLAkJRkNJRE1fU0hWSUVXX1JFRlJFU0gKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICJFaW5m/GdlbiIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICJFaW5m/GdlbiBhbHMgVmVya278cGZ1bmciLAlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgIk5ldSIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiTmV1ZXMgVmVyJnplaWNobmlzIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICJOZXVlIFZlciZrbvxwZnVuZyIsCUZDSURNX1NIVklFV19ORVdMSU5LCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIEVORAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZFaWdlbnNjaGFmdGVuIiwJRkNJRE1fU0hWSUVXX1BST1BFUlRJRVMKCUVORApFTkQKCi8qCiBzaGVsbHZpZXcgaXRlbSBtZW51CiovCk1FTlVfU0hWX0ZJTEUgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgoJUE9QVVAgIiIKCUJFR0lOCgkgIE1FTlVJVEVNICJBdXMmd+RobGVuIgkJRkNJRE1fU0hWSUVXX09QRU4KCSAgTUVOVUlURU0gIkUmcmt1bmRlbiIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJtZmZm5lbiIJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiJkF1c3NjaG5laWRlbiIsCQlGQ0lETV9TSFZJRVdfQ1VUCgkgIE1FTlVJVEVNICImS29waWVyZW4iLAkJRkNJRE1fU0hWSUVXX0NPUFkKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImVmVya278cGZ1bmcgZXJ6ZXVnZW4iLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiJkz2c2NoZW4iLAkJRkNJRE1fU0hWSUVXX0RFTEVURQoJICBNRU5VSVRFTSAiJlVtYmVuZW5uZW4iLAkJRkNJRE1fU0hWSUVXX1JFTkFNRQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIiZFaWdlbnNjaGFmdGVuIiwJRkNJRE1fU0hWSUVXX1BST1BFUlRJRVMKCUVORApFTkQKCk1FTlVfQ1BBTkVMIE1FTlUKQkVHSU4KICAgIFBPUFVQICImRmlsZSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkUmeGl0IiwgSURNX0NQQU5FTF9FWElUCiAgICBFTkQKCiAgICBQT1BVUCAiJlZpZXciCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImR3Jv32UgU3ltYm9sZSIsIEZDSURNX1NIVklFV19CSUdJQ09OCiAgICAgICAgTUVOVUlURU0gIiZLbGVpbmUgU3ltYm9sZSIsIEZDSURNX1NIVklFV19TTUFMTElDT04KICAgICAgICBNRU5VSVRFTSAiJkxpc3RlIiwgRkNJRE1fU0hWSUVXX0xJU1RWSUVXCiAgICAgICAgTUVOVUlURU0gIiZEZXRhaWxzIiwgRkNJRE1fU0hWSUVXX1JFUE9SVFZJRVcKICAgIEVORAoKICAgIFBPUFVQICImSGVscCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZBYm91dCBDb250cm9sIFBhbmVsLi4uIiwgSURNX0NQQU5FTF9BQk9VVAogICAgRU5ECkVORAoKU0hCUlNGT1JGT0xERVJfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMTg4LCAxOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAiVmVyemVpY2huaXMgYXVzd+RobGVuIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgMSwgODAsIDE3NiwgNTAsIDEyLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBYmJyZWNoZW4iLCAyLCAxMzQsIDE3NiwgNTAsIDEyLCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICIiLCBJRERfVElUTEUsIDQsIDQsIDE4MCwgMTIKIExURVhUICIiLCBJRERfU1RBVFVTLCA0LCAyNSwgMTgwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTQsIDQwLCAxODAsIDEyMAp9CgpTSE5FV0JSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMTUsIDQwLCAyMTgsIDE5NgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBXU19TSVpFQk9YIHwgRFNfTU9EQUxGUkFNRSB8IERTX1NFVEZPTlQgfCBEU18zRExPT0sKQ0FQVElPTiAiVmVyemVpY2huaXMgYXVzd+RobGVuIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICIiLCBJRERfVElUTEUsIDEwLCA4LCAxOTgsIDI0CiBMVEVYVCAiIiwgSUREX1NUQVRVUywgMTAsIDI1LCAxOTgsIDEyCiBMVEVYVCAiVmVyemVpY2huaXM6IiwgSUREX0ZPTERFUiwgMTAsIDE1NiwgNDAsIDEyCiBDT05UUk9MICIiLCBJRERfVFJFRVZJRVcsICJTeXNUcmVlVmlldzMyIiwKICAgICAgICBUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CiAgICAgICAgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKICAgICAgICAxMiwgMzgsIDE5NCwgMTA1CiBFRElUVEVYVCBJRERfRk9MREVSVEVYVCwgNDYsIDE1MCwgMTYwLCAxNCwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImTmV1ZXMgVmVyemVpY2huaXMgZXJzdGVsbGVuIiwgSUREX01BS0VORVdGT0xERVIsIDEyLCAxNzQsIDk1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDExMiwgMTc0LCA0NSwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIkFiYnJlY2hlbiIsIElEQ0FOQ0VMLCAxNjEsIDE3NCwgNDUsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKU0hFTExfWUVTVE9BTExfTVNHQk9YIERJQUxPRyAyMDAsIDEwMCwgMjgwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiTWVsZHVuZyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBERUZQVVNIQlVUVE9OICImSmEiLCBJRFlFUywgMzQsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiSmEgenUgJmFsbGVuIiwgSUREX1lFU1RPQUxMLCA5MiwgNjksIDY1LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICImTmVpbiIsIElETk8sIDE2MiwgNjksIDUzLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICJBYmJyZWNoZW4iLCBJRENBTkNFTCwgMjIwLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIElDT04gIiIsIElERF9JQ09OLCAxMCwgMTAsIDE2LCAxNgogICAgTFRFWFQgIiIsIElERF9NRVNTQUdFLCA0MCwgMTAsIDIzOCwgNTIsIDAKfQoKU0hFTExfQUJPVVRfTVNHQk9YIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDE1LCA0MCwgMjEwLCAxNTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkluZm9ybWF0aW9uZW4g/GJlciAlcyIKRk9OVCAxMCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCAxNTMsIDEzMywgNTAsIDEyLCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImTGl6ZW56Li4uIiwgSURDX0FCT1VUX0xJQ0VOU0UsIDE1MywgMTEzLCA1MCwgMTIsIFdTX1RBQlNUT1AKIExJU1RCT1ggSURDX0FCT1VUX0xJU1RCT1gsIDgsIDY1LCAxMzcsIDgyLCBMQlNfTk9USUZZIHwgV1NfVlNDUk9MTCB8IFdTX0JPUkRFUgogSUNPTiAiIiwgc3RjMSwgMTAsIDEwLCAzMCwgMzAKIExURVhUICIiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQxLCA0MCwgMTAsIDEzNywgMTAKIExURVhUICIiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQyLCA0MCwgMjIsIDEzNywgMTAKIExURVhUICJXaW5lIFZlcnNpb24gJXMiLCBJRENfQUJPVVRfU1RBVElDX1RFWFQzLCA0MCwgMzQsIDE3MCwgMTAKIExURVhUICJXaW5lIHd1cmRlIGb8ciBTaWUgZ2VrZWx0ZXJ0IHZvbjoiLCBJRENfQUJPVVRfV0lORV9URVhULCA4LCA1NSwgMTM3LCAxMAp9CgpTSEVMTF9SVU5fRExHIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDAsIDAsIDIyNywgOTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBJQ09OICIiLCAxMjI5NywgNywgMTEsIDE4LCAyMCwgV1NfVklTSUJMRQogTFRFWFQgIkdlYmVuIHNpZSBkZW4gTmFtZW4gZWluZXMgUHJvZ3JhbW1lcywgZWluZXMgT3JkbmVycywgZWluZXMgRG9rdW1lbnRlcyBvZGVyIGVpbmVyIEludGVybmV0LVJlc3NvdXJjZSBlaW4sIGRpZSBnZfZmZm5ldCB3ZXJkZW4gc29sbCIsIDEyMjg5LCAzNiwgMTEsIDE4MiwgMTgKIExURVhUICLWJmZmbmVuOiIsIDEyMzA1LCA3LCAzOSwgMjQsIDEwCiBDT05UUk9MICIiLCAxMjI5OCwgIkNPTUJPQk9YIiwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgV1NfVlNDUk9MTCB8IFdTX1ZJU0lCTEUgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX0RST1BET1dOLCAzNiwgMzcsIDE4MywgMTAwCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDYyLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBYmJyZWNoZW4iLCBJRENBTkNFTCwgMTE2LCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImRHVyY2hzdWNoZW4uLi4iLCAxMjI4OCwgMTcwLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCn0KClNUUklOR1RBQkxFCnsKICAgICAgICAvKiBjb2x1bW5zIGluIHRoZSBzaGVsbHZpZXcgKi8KCUlEU19TSFZfQ09MVU1OMQkJIkRhdGVpIgoJSURTX1NIVl9DT0xVTU4yCQkiR3L232UiCglJRFNfU0hWX0NPTFVNTjMJCSJUeXAiCglJRFNfU0hWX0NPTFVNTjQJCSJHZeRuZGVydCIKCUlEU19TSFZfQ09MVU1ONQkJIkF0dHJpYnV0ZSIKCUlEU19TSFZfQ09MVU1ONgkJIkdlc2FtdGdy9t9lIgoJSURTX1NIVl9DT0xVTU43CQkiRnJlaWVyIFNwZWljaGVyIgoJSURTX1NIVl9DT0xVTU44CQkiTmFtZSIKCUlEU19TSFZfQ09MVU1OOQkJIktvbW1lbnRhciIKCUlEU19TSFZfQ09MVU1OMTAJIkJlc2l0emVyIgoJSURTX1NIVl9DT0xVTU4xMQkiR3J1cHBlIgoJSURTX1NIVl9DT0xVTU5fREVMRlJPTQkiVXJzcHJ1bmciCglJRFNfU0hWX0NPTFVNTl9ERUxEQVRFCSJHZWz2c2NodCBhbSIKCiAgICAgICAgLyogc3BlY2lhbCBmb2xkZXJzICovCglJRFNfREVTS1RPUAkJIkRlc2t0b3AiCglJRFNfTVlDT01QVVRFUgkJIkFyYmVpdHNwbGF0eiIKCUlEU19SRUNZQ0xFQklOX0ZPTERFUl9OQU1FICAgICAgIlBhcGllcmtvcmIiCglJRFNfQ09OVFJPTFBBTkVMCSJDb250cm9sIFBhbmVsIgoKICAgICAgICAvKiBjb250ZXh0IG1lbnVzICovCglJRFNfVklFV19MQVJHRQkJIiZHcm/fZSBTeW1ib2xlIgoJSURTX1ZJRVdfU01BTEwJCSImS2xlaW5lIFN5bWJvbGUiCglJRFNfVklFV19MSVNUCQkiJkxpc3RlIgoJSURTX1ZJRVdfREVUQUlMUwkiJkRldGFpbHMiCglJRFNfU0VMRUNUCQkiQXVzd+RobGVuIgoJSURTX09QRU4JCSLWZmZuZW4iCgoJSURTX0NSRUFURUZPTERFUl9ERU5JRUQgIkVzIGtvbm50ZSBrZWluIG5ldWVzIFZlcnplaWNobmlzIGVyc3RlbGx0IHdlcmRlbjogWnVncmlmZiB2ZXJ3ZWlnZXJ0LiIKCUlEU19DUkVBVEVGT0xERVJfQ0FQVElPTiAiRXMgdHJhdCBlaW4gRmVobGVyIGJlaW0gRXJzdGVsbGVuIGVpbmVzIG5ldWVuIFZlcnplaWNobmlzc2VzIGF1ZiIKCUlEU19ERUxFVEVJVEVNX0NBUFRJT04gIkJlc3TkdGlndW5nOiBPYmpla3QgbPZzY2hlbiIKCUlEU19ERUxFVEVGT0xERVJfQ0FQVElPTiAiQmVzdOR0aWd1bmc6IFZlcnplaWNobmlzIGz2c2NoZW4iCglJRFNfREVMRVRFSVRFTV9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgJyUxJyBs9nNjaGVuIG32Y2h0ZW4/IgoJSURTX0RFTEVURU1VTFRJUExFX1RFWFQgIlNpbmQgU2llIHNpY2ggc2ljaGVyLCBkYXNzIFNpZSBkaWVzZSAlMSBPYmpla3RlIGz2c2NoZW4gbfZjaHRlbj8iCglJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiU2luZCBTaWUgc2ljaCBzaWNoZXIsIGRhc3MgU2llIGRpZSBhdXNnZXfkaGx0ZW4gT2JqZWt0ZSBs9nNjaGVuIG32Y2h0ZW4/IgoJSURTX1RSQVNISVRFTV9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgJyUxJyBpbiBkZW4gUGFwaWVya29yYiB2ZXJzY2hpZWJlbiBt9mNodGVuPyIKCUlEU19UUkFTSEZPTERFUl9URVhUICJTaW5kIFNpZSBzaWNoIHNpY2hlciwgZGFzcyBTaWUgJyUxJyB1bmQgc2VpbmVuIEluaGFsdCBpbiBkZW4gUGFwaWVya29yYiB2ZXJzY2hpZWJlbiBt9mNodGVuPyIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIlNpbmQgU2llIHNpY2ggc2ljaGVyLCBkYXNzIFNpZSBkaWVzZSAlMSBEYXRlaWVuIGluIGRlbiBQYXBpZXJrb3JiIHZlcnNjaGllYmVuIG32Y2h0ZW4/IgoJSURTX0NBTlRUUkFTSF9URVhUICJEYXMgT2JqZWt0ICclMScga2FubiBuaWNodCBpbiBkZW4gUGFwaWVya29yYiB2ZXJzY2hvYmVuIHdlcmRlbi5cblxuIE32Y2h0ZW4gU2llIGVzIHN0YXR0ZGVzc2VuIGz2c2NoZW4/IgoJSURTX09WRVJXUklURUZJTEVfVEVYVCAiRGVyIE9yZG5lciBlbnRo5Gx0IGJlcmVpdHMgZWluZSBEYXRlaSBuYW1lbnMgJyUxJy5cblxuIFdvbGxlbiBTaWUgZGllIERhdGVpIGVyc2V0emVuPyIKCUlEU19PVkVSV1JJVEVGSUxFX0NBUFRJT04gIkJlc3TkdGlndW5nOiBEYXRlaSD8YmVyc2NocmVpYmVuIgoJSURTX09WRVJXUklURUZPTERFUl9URVhUICJJbSBWZXJ6ZWljaG5pcyBiZWZpbmRldCBzaWNoIGJlcmVpdHMgZWluIE9yZG5lciBuYW1lbnMgJyUxJy5cblxuIlwKCSJXZW5uIGRpZSBEYXRlaWVuIGltIFppZWxvcmRuZXIgZGllIGdsZWljaGVuIE5hbWVuIGhhYmVuLCB3aWUgZGllIGltIGF1c2dld+RobHRlbiBPcmRuZXIsIHdlcmRlbiBzaWUgZXJzZXR6dC5cblxuXAoJTfZjaHRlbiBzaWUgdHJvdHpkZW0gZm9ydGZhaHJlbj8iCgogICAgICAgIC8qIG1lc3NhZ2UgYm94IHN0cmluZ3MgKi8KICAgICAgICBJRFNfUkVTVEFSVF9USVRMRSAgICAgICAiTmV1c3RhcnRlbiIKICAgICAgICBJRFNfUkVTVEFSVF9QUk9NUFQgICAgICAiTfZjaHRlbiBTaWUsIGRhc3MgZWluIHNpbXVsaWVydGVyIFdpbmRvd3MgTmV1c3RhcnQgZHVyY2hnZWb8aHJ0IHdpcmQ/IgogICAgICAgIElEU19TSFVURE9XTl9USVRMRSAgICAgICJCZWVuZGVuIgogICAgICAgIElEU19TSFVURE9XTl9QUk9NUFQgICAgICJN9mNodGVuIFNpZSBkaWUgYWt0dWVsbGUgV2luZSBTaXR6dW5nIGJlZW5kZW4/IgoKICAgICAgICAvKiBSdW4gRmlsZSBkaWFsb2cgKi8KICAgICAgICBJRFNfUlVORExHX0VSUk9SICAgICAgICAgICAiS29ubnRlIEF1c2b8aHJlbi1EaWFsb2cgbmljaHQgYW56ZWlnZW4gKGludGVybmVyIEZlaGxlcikiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfRVJST1IgICAgIktvbm50ZSBEdXJjaHN1Y2hlbi1EaWFsb2cgbmljaHQgYW56ZWlnZW4gKGludGVybmVyIEZlaGxlcikiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfQ0FQVElPTiAgIkR1cmNoc3VjaGVuIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0ZJTFRFUiAgICJQcm9ncmFtbWVcMCouZXhlXDBBbGxlIERhdGVpZW5cMCouKlwwXDAiCgogICAgICAgIC8qIHNoZWxsIGZvbGRlciBwYXRoIGRlZmF1bHQgdmFsdWVzICovCglJRFNfUFJPR1JBTVMJCSJTdGFydG1lbvxcXFByb2dyYW1tZSIKCUlEU19QRVJTT05BTAkJIkVpZ2VuZSBEYXRlaWVuIgoJSURTX0ZBVk9SSVRFUwkJIkZhdm9yaXRlbiIKCUlEU19TVEFSVFVQCQkiU3RhcnRtZW78XFxQcm9ncmFtbWVcXEF1dG9zdGFydCIKCUlEU19SRUNFTlQJCSJSZWNlbnQiCglJRFNfU0VORFRPCQkiU2VuZFRvIgoJSURTX1NUQVJUTUVOVQkJIlN0YXJ0bWVu/CIKCUlEU19NWU1VU0lDCQkiRWlnZW5lIE11c2lrIgoJSURTX01ZVklERU8JCSJFaWdlbmUgVmlkZW9zIgoJSURTX0RFU0tUT1BESVJFQ1RPUlkJIkRlc2t0b3AiCglJRFNfTkVUSE9PRAkJIk5ldHp3ZXJrdW1nZWJ1bmciCglJRFNfVEVNUExBVEVTCQkiVm9ybGFnZW4iCglJRFNfQVBQREFUQQkJIkFud2VuZHVuZ3NkYXRlbiIKCUlEU19QUklOVEhPT0QJCSJEcnVja3VtZ2VidW5nIgoJSURTX0xPQ0FMX0FQUERBVEEJIkxva2FsZSBFaW5zdGVsbHVuZ2VuXFxBbndlbmR1bmdzZGF0ZW4iCglJRFNfSU5URVJORVRfQ0FDSEUJIkxva2FsZSBFaW5zdGVsbHVuZ2VuXFxUZW1wb3JhcnkgSW50ZXJuZXQgRmlsZXMiCglJRFNfQ09PS0lFUwkJIkNvb2tpZXMiCglJRFNfSElTVE9SWQkJIkxva2FsZSBFaW5zdGVsbHVuZ2VuXFxWZXJsYXVmIgoJSURTX1BST0dSQU1fRklMRVMJIlByb2dyYW1tZSIKCUlEU19NWVBJQ1RVUkVTCQkiRWlnZW5lIEJpbGRlciIKCUlEU19QUk9HUkFNX0ZJTEVTX0NPTU1PTiAiUHJvZ3JhbW1lXFxHZW1laW5zYW1lIERhdGVpZW4iCglJRFNfQ09NTU9OX0RPQ1VNRU5UUwkiRG9rdW1lbnRlIgoJSURTX0FETUlOVE9PTFMJCSJTdGFydG1lbvxcXFByb2dyYW1tZVxcVmVyd2FsdHVuZyIKCUlEU19DT01NT05fTVVTSUMJIkRva3VtZW50ZVxcRWlnZW5lIE11c2lrIgoJSURTX0NPTU1PTl9QSUNUVVJFUwkiRG9rdW1lbnRlXFxFaWdlbmUgQmlsZGVyIgoJSURTX0NPTU1PTl9WSURFTwkiRG9rdW1lbnRlXFxFaWdlbmUgVmlkZW9zIgoJSURTX0NEQlVSTl9BUkVBCQkiTG9rYWxlIEVpbnN0ZWxsdW5nZW5cXEFud2VuZHVuZ3NkYXRlblxcTWljcm9zb2Z0XFxDRCBCdXJuaW5nIgoKCUlEU19ORVdGT0xERVIJCSJOZXVlciBPcmRuZXIiCgoJSURTX0NQQU5FTF9USVRMRQkiV2luZSBDb250cm9sIFBhbmVsIgoJSURTX0NQQU5FTF9OQU1FCQkiTmFtZSIKCUlEU19DUEFORUxfREVTQ1JJUFRJT04JIkRlc2NyaXB0aW9uIgoJSURTX1NITEVYRUNfTk9BU1NPQwkiRXMgaXN0IGtlaW4gUHJvZ3JhbW0gbWl0IGRpZXNlbSBEYXRlaXR5cCB2ZXJrbvxwZnQuIgp9CgpTVFJJTkdUQUJMRQp7CklEU19MSUNFTlNFX0NBUFRJT04sICAgICAgICAgICAgIldpbmUgTGljZW5zZSIKSURTX0xJQ0VOU0UsCiJXaW5lIGlzdCBmcmVpZSBTb2Z0d2FyZTsgU2llIGT8cmZlbiBzaWUgdW50ZXIgZGVuIEJlZGluZ3VuZ2VuIFwKZGVyIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2VsY2hlIHZvbiBkZXIgXApGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gdmVy9mZmZW50bGljaHQgd3VyZGU7IHdlaXRlciB2ZXJ0ZWlsZW4gXAp1bmQvb2RlciBtb2RpZml6aWVyZW4gZ2Vt5N8gVmVyc2lvbiAyLjEgZGVyIExpemVueiwgb2RlciBcCihuYWNoIGlocmVuIEVybWVzc2VuKSBqZWRlciBzcOR0ZXJlbiBWZXJzaW9uLlxuXG5cCldpbmUgd2lyZCBtaXQgZGVyIEhvZmZudW5nIHZlcnRlaWx0IGRhcyBlcyBzaWNoIGFscyBu/HR6bGljaCBlcndlaXN0LiBcCldpbmUga29tbXQgYWJlciBPSE5FIEpFR0xJQ0hFIEdBUkFOVElFIGRhaGVyOyBzb2dhciBvaG5lIGVpbmVyIFwKYW5nZWRldXRldGVuIEdhcmFudGllIGRlciBNQVJLVEfETkdJR0tFSVQgb2RlciBkZXIgRUlHTlVORyBG3FIgRUlORU4gXApCRVNUSU1NVEVOIE5VVFpFTi4gU2VoZW4gU2llIHNpY2ggZGllIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBcCmFuIGb8ciBtZWhyIERldGFpbHMuXG5cblwKU2llIHNvbGx0ZW4gbWl0IGRpZXNlciBCaWJsaW90aGVrIGF1Y2ggZWluZSBLb3BpZSBkZXIgXApHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZXJoYWx0ZW4gaGFiZW47IHdlbm4gbmljaHQgc2NocmVpYmVuIFwKU2llIGRlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIFwKSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4iCn0K