LyoKICogQ29weXJpZ2h0IDIwMDQgSWx5YSBLb3JuaXlrbwogKiBDb3B5cmlnaHQgMjAxMCBJZ29yIFBhbGl5Y2h1awogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAic2hyZXNkZWYuaCIKCkxBTkdVQUdFIExBTkdfVUtSQUlOSUFOLCBTVUJMQU5HX0RFRkFVTFQKCk1FTlVfMDAxIE1FTlUKQkVHSU4KCU1FTlVJVEVNICImwuXr6OqzILLq7u3q6CIsCUZDSURNX1NIVklFV19CSUdJQ09OCglNRU5VSVRFTSAiJszg67Mgsuru7eroIiwJRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgoJTUVOVUlURU0gIibR7+jx7uoiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCglNRU5VSVRFTSAiJs/u5PDu4ej2syIsCQlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwpFTkQKCi8qCiBzaGVsbHZpZXcgYmFja2dyb3VuZCBtZW51CiovCk1FTlVfMDAyIE1FTlUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBQT1BVUCAiJsLo4+v/5CIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAiJsLl6+jqsyCy6u7t6ugiLAlGQ0lETV9TSFZJRVdfQklHSUNPTgoJICAgIE1FTlVJVEVNICImzODrsyCy6u7t6ugiLAlGQ0lETV9TSFZJRVdfU01BTExJQ09OCgkgICAgTUVOVUlURU0gIibR7+jx7uoiLAkJRkNJRE1fU0hWSUVXX0xJU1RWSUVXCgkgICAgTUVOVUlURU0gIibP7uTw7uHo9rMiLAlGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIFBPUFVQICLC7+7w/+Tq8+Lg8uggJrLq7u3q6CIKCSAgQkVHSU4KCSAgICBNRU5VSVRFTSAix+AgJs3g5+Lu/iIsCTB4MzAJLyogY29sdW1uIDAgKi8KCSAgICBNRU5VSVRFTSAix+AgJtLo7+7sIiwJMHgzMgkvKiBjb2x1bW4gMiAqLwoJICAgIE1FTlVJVEVNICLH4CAm0O7n7LPw7uwiLAkweDMxCS8qIC4uLiAqLwoJICAgIE1FTlVJVEVNICLH4CAmxODy7v4iLAkweDMzCgkgICAgTUVOVUlURU0gU0VQQVJBVE9SCgkgICAgTUVOVUlURU0gIibA4vLu7ODy6Pft7iIsCUZDSURNX1NIVklFV19BVVRPQVJSQU5HRQoJICBFTkQKCSAgTUVOVUlURU0gIsLo8LPi7f/y6CCy6u7t6ugiLAlGQ0lETV9TSFZJRVdfU05BUFRPR1JJRAoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIs7t7uLo8ugiLAkJRkNJRE1fU0hWSUVXX1JFRlJFU0gKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICLC8fLg4ujy6CIsCQlGQ0lETV9TSFZJRVdfSU5TRVJUCgkgIE1FTlVJVEVNICLC8fLg4ujy6CDP7vHo6+Dt7f8iLAlGQ0lETV9TSFZJRVdfSU5TRVJUTElOSwoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgUE9QVVAgItHy4u7w6PLoIgoJICBCRUdJTgoJICAgIE1FTlVJVEVNICLN7uLgICbS5ergIiwJRkNJRE1fU0hWSUVXX05FV0ZPTERFUgoJICAgIE1FTlVJVEVNICLN7uLlICbP7vHo6+Dt7f8iLAlGQ0lETV9TSFZJRVdfTkVXTElOSwoJICAgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBFTkQKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICLC6+Dx8uji7vHysyIsCUZDSURNX1NIVklFV19QUk9QRVJUSUVTCglFTkQKRU5ECgovKgogc2hlbGx2aWV3IGl0ZW0gbWVudQoqLwpNRU5VX1NIVl9GSUxFIE1FTlUKQkVHSU4KCVBPUFVQICIiCglCRUdJTgoJICBNRU5VSVRFTSAiJsLo4fDg8ugiCQlGQ0lETV9TSFZJRVdfT1BFTgoJICBNRU5VSVRFTSAiJs/w7uKz5O3o6iIsCQlGQ0lETV9TSFZJRVdfRVhQTE9SRQoJICBNRU5VSVRFTSAiJsKz5Orw6PLoIiwJCUZDSURNX1NIVklFV19PUEVOCgkgIE1FTlVJVEVNIFNFUEFSQVRPUgoJICBNRU5VSVRFTSAiwugm8LPn4PLoIiwJCUZDSURNX1NIVklFV19DVVQKCSAgTUVOVUlURU0gIibK7u+z/yIsCQlGQ0lETV9TSFZJRVdfQ09QWQoJICBNRU5VSVRFTSBTRVBBUkFUT1IKCSAgTUVOVUlURU0gIibR8uLu8Ojy6CDP7vHo6+Dt7f8iLAlGQ0lETV9TSFZJRVdfQ1JFQVRFTElOSwoJICBNRU5VSVRFTSAiwugm5ODr6PLoIiwJCUZDSURNX1NIVklFV19ERUxFVEUKCSAgTUVOVUlURU0gIs/l8OUm6ezl7fPi4PLoIiwJCUZDSURNX1NIVklFV19SRU5BTUUKCSAgTUVOVUlURU0gU0VQQVJBVE9SCgkgIE1FTlVJVEVNICImwuvg8fLo4u7x8rMiLAlGQ0lETV9TSFZJRVdfUFJPUEVSVElFUwoJRU5ECkVORAoKTUVOVV9DUEFORUwgTUVOVQpCRUdJTgogICAgUE9QVVAgIibU4OnrIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiwibo9bPkIiwgSURNX0NQQU5FTF9FWElUCiAgICBFTkQKCiAgICBQT1BVUCAiJsLo4+v/5CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibC5evo6rMgsuru7eroIiwgRkNJRE1fU0hWSUVXX0JJR0lDT04KICAgICAgICBNRU5VSVRFTSAiJszg67Mgsuru7eroIiwgRkNJRE1fU0hWSUVXX1NNQUxMSUNPTgogICAgICAgIE1FTlVJVEVNICIm0e/o8e7qIiwgRkNJRE1fU0hWSUVXX0xJU1RWSUVXCiAgICAgICAgTUVOVUlURU0gIibP7uTw7uHo9rMiLCBGQ0lETV9TSFZJRVdfUkVQT1JUVklFVwogICAgRU5ECgogICAgUE9QVVAgIibE7u/u7O7j4CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibP8O4g7+Dt5ev8IOrl8PPi4O3t/y4uLiIsIElETV9DUEFORUxfQUJPVVQKICAgIEVORApFTkQKClNIQlJTRk9SRk9MREVSX01TR0JPWCBESUFMT0cgMTUsIDQwLCAxODgsIDE5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBEU19NT0RBTEZSQU1FIHwgRFNfU0VURk9OVCB8IERTXzNETE9PSwpDQVBUSU9OICLO4+v/5CDk7iDy5eroIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgMSwgODAsIDE3NiwgNTAsIDEyLCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLR6uDx8+Lg8ugiLCAyLCAxMzQsIDE3NiwgNTAsIDEyLCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICIiLCBJRERfVElUTEUsIDQsIDQsIDE4MCwgMTIKIExURVhUICIiLCBJRERfU1RBVFVTLCA0LCAyNSwgMTgwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCiAJVFZTX0hBU0JVVFRPTlMgfCBUVlNfSEFTTElORVMgfCBUVlNfTElORVNBVFJPT1QgfAoJV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwKCTQsIDQwLCAxODAsIDEyMAp9CgpTSE5FV0JSU0ZPUkZPTERFUl9NU0dCT1ggRElBTE9HIDE1LCA0MCwgMjE4LCAxOTYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfU0laRUJPWCB8IERTX01PREFMRlJBTUUgfCBEU19TRVRGT05UIHwgRFNfM0RMT09LCkNBUFRJT04gIs7j6//kIOTuIPLl6ugiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIiIsIElERF9USVRMRSwgMTAsIDgsIDE5OCwgMjQKIExURVhUICIiLCBJRERfU1RBVFVTLCAxMCwgMjUsIDE5OCwgMTIKIExURVhUICLS5ergOiIsIElERF9GT0xERVIsIDEwLCAxNTYsIDQwLCAxMgogQ09OVFJPTCAiIiwgSUREX1RSRUVWSUVXLCAiU3lzVHJlZVZpZXczMiIsCglUVlNfSEFTQlVUVE9OUyB8IFRWU19IQVNMSU5FUyB8IFRWU19MSU5FU0FUUk9PVCB8CglXU19CT1JERVIgfCBXU19UQUJTVE9QLAoJMTIsIDM4LCAxOTQsIDEwNQogRURJVFRFWFQgSUREX0ZPTERFUlRFWFQsIDQ2LCAxNTAsIDE2MCwgMTQsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJsfw7uHo8ugg7e7i8yDy5erzIiwgSUREX01BS0VORVdGT0xERVIsIDEyLCAxNzQsIDcwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDEwMiwgMTc0LCA1MCwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gItHq4PHz4uDy6CIsIElEQ0FOQ0VMLCAxNTYsIDE3NCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKU0hFTExfWUVTVE9BTExfTVNHQk9YIERJQUxPRyAyMDAsIDEwMCwgMjgwLCA5MApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiz+7is+Tu7Ovl7e3/IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIERFRlBVU0hCVVRUT04gIibS4OoiLCBJRFlFUywgMzQsIDY5LCA1MywgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAi0uDqIOTr/yAm4vGz9SIsIElERF9ZRVNUT0FMTCwgOTIsIDY5LCA2NSwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiJs2zIiwgSUROTywgMTYyLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gIibR6uDx8+Lg8ugiLCBJRENBTkNFTCwgMjIwLCA2OSwgNTMsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIElDT04gIiIsIElERF9JQ09OLCAxMCwgMTAsIDE2LCAxNgogICAgTFRFWFQgIiIsIElERF9NRVNTQUdFLCA0MCwgMTAsIDIzOCwgNTIsIDAKfQoKU0hFTExfQUJPVVRfTVNHQk9YIERJQUxPRyAxNSwgNDAsIDIyMCwgMTUyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLP8O4gJXMiCkZPTlQgMTAsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTUzLCAxMzMsIDYwLCAxMiwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiJsuz9uXt57P/IFdpbmUuLi4iLCBJRENfQUJPVVRfTElDRU5TRSwgMTUzLCAxMTMsIDYwLCAxMiwgV1NfVEFCU1RPUAogTElTVEJPWCBJRENfQUJPVVRfTElTVEJPWCwgOCwgNjUsIDEzNywgODIsIExCU19OT1RJRlkgfCBXU19WU0NST0xMIHwgV1NfQk9SREVSCiBJQ09OICIiLCBzdGMxLCAxMCwgMTAsIDMwLCAzMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDEsIDQwLCAxMCwgMTcwLCAxMAogTFRFWFQgIiIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDIsIDQwLCAyMiwgMTcwLCAxMAogTFRFWFQgIs/w4Pb+uiDt4CAlcyIsIElEQ19BQk9VVF9TVEFUSUNfVEVYVDMsIDQyLCAzNCwgMTcwLCAxMAogTFRFWFQgItDu5/Du4e3o6uggV2luZToiLCBJRENfQUJPVVRfV0lORV9URVhULCA4LCA1NSwgMTM3LCAxMAp9CgpTSEVMTF9SVU5fRExHIERJQUxPRyAwLCAwLCAyMjcsIDk1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogSUNPTiAiIiwgMTIyOTcsIDcsIDExLCAxOCwgMjAsIFdTX1ZJU0lCTEUKIExURVhUICLC4uXks/L8ILPsJ/8g7/Du4/Dg7OgsIPLl6ugsIOTu6vPs5e3y8yD36CDw5fHz8PEgsu3y5fDt5fLzLCCzIFdpbmUg4rPk6vDouiC/9S4iLCAxMjI4OSwgMzYsIDExLCAxODIsIDE4CiBMVEVYVCAiJsKz5Orw6PLoOiIsIDEyMzA1LCAzLCAzOSwgMzAsIDEwCiBDT05UUk9MICIiLCAxMjI5OCwgIkNPTUJPQk9YIiwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgV1NfVlNDUk9MTCB8IFdTX1ZJU0lCTEUgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX0RST1BET1dOLCAzNiwgMzcsIDE4MywgMTAwCiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDYyLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLR6uDx8+Lg8ugiLCBJRENBTkNFTCwgMTE2LCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICImzuPr/+QuLi4iLCAxMjI4OCwgMTcwLCA2MywgNTAsIDE0LCBXU19UQUJTVE9QCn0KClNUUklOR1RBQkxFCnsKLyoJY29sdW1ucyBpbiB0aGUgc2hlbGx2aWV3CSovCglJRFNfU0hWX0NPTFVNTjEJCSLU4OnrIgoJSURTX1NIVl9DT0xVTU4yCQki0O7n7LPwIgoJSURTX1NIVl9DT0xVTU4zCQki0ujvIgoJSURTX1NIVl9DT0xVTU40CQkix+yz7eXt7iIKCUlEU19TSFZfQ09MVU1ONQkJIsDy8Ojh8/LoIgoJSURTX1NIVl9DT0xVTU42CQki0O7n7LPwIgoJSURTX1NIVl9DT0xVTU43CQkiwrPr/O3o6SDQ7ufss/AiCglJRFNfU0hWX0NPTFVNTjgJCSKy7Cf/IgoJSURTX1NIVl9DT0xVTU45CQkiyu7s5e3y4PCzIgoJSURTX1NIVl9DT0xVTU4xMAkiwuvg8e3o6iIKCUlEU19TSFZfQ09MVU1OMTEJIsPw8+/gIgoJSURTX1NIVl9DT0xVTU5fREVMRlJPTQkizvDo47Pt4Ov87eUg8O7n7LP55e3t/yIKCUlEU19TSFZfQ09MVU1OX0RFTERBVEUJIsTg8uAg4ujk4Ovl7e3/IgoJSURTX1NIVl9DT0xfRE9DUwkixO7q8+zl7fLoIgoJSURTX1NIVl9DT0xfU1RBVFVTCSLR8uDtIgoJSURTX1NIVl9DT0xfTE9DQVRJT04JItDu5+yz+eXt7f8iCglJRFNfU0hWX0NPTF9NT0RFTAkizO7k5ev8IgoKCS8qIHNwZWNpYWwgZm9sZGVycyAqLwoJSURTX0RFU0tUT1AJCSLQ7uHu9+jpIPHys+siCglJRFNfTVlDT01QVVRFUgkJIsyz6SDK7uzvJ/7y5fAiCglJRFNfUkVDWUNMRUJJTl9GT0xERVJfTkFNRSAgICAgICLK7vjo6iIKCUlEU19DT05UUk9MUEFORUwJIs/g7eXr/CDq5fDz4uDt7f8iCgogICAgICAgIC8qIGNvbnRleHQgbWVudXMgKi8KCUlEU19WSUVXX0xBUkdFCQkiJsLl6+jqsyCy6u7t6ugiCglJRFNfVklFV19TTUFMTAkJIibM4OuzILLq7u3q6CIKCUlEU19WSUVXX0xJU1QJCSIm0e/o8e7qIgoJSURTX1ZJRVdfREVUQUlMUwkiJs/u5PDu4ej2syIKCUlEU19TRUxFQ1QJCSLC6Cbh8ODy6CIKCUlEU19PUEVOCQkiwrMm5Orw6PLoIgoKCUlEU19DUkVBVEVGT0xERVJfREVOSUVEICLN5SDi5ODr7vH/IPHy4u7w6PLoIO3u4vMg8uXq8zogwrPk7O7i4CDzIOTu8fLz77MuIgoJSURTX0NSRUFURUZPTERFUl9DQVBUSU9OICLP7uzo6+rgIO/w6CDx8uLu8OXt7bMg7e7i7r8g8uXq6CIKCUlEU19ERUxFVEVJVEVNX0NBUFRJT04gIs+z5PLi5fDk5uXt7f8g4ujr8/fl7e3/IPTg6evzIgoJSURTX0RFTEVURUZPTERFUl9DQVBUSU9OICLPs+Ty4uXw5Obl7e3/IOLo6/P35e3t/yDy5eroIgoJSURTX0RFTEVURUlURU1fVEVYVCAiwugg4u/l4u3l7bMsIPnuIPXu9+Xy5SDi6Ovz9+jy6CAnJTEnPyIKCUlEU19ERUxFVEVNVUxUSVBMRV9URVhUICLC6CDi7+Xi7eXtsywg+e4g9e735fLlIOLo6/P36PLoIPazICUxIOXr5ezl7fLoKLPiKT8iCglJRFNfREVMRVRFU0VMRUNURURfVEVYVCAiwugg4u/l4u3l7bMsIPnuIPXu9+Xy5SDi6Ovz9+jy6CDu4fDg7bMg5evl7OXt8ug/IgoJSURTX1RSQVNISVRFTV9URVhUICLC6CDi7+Xi7eXtsywg+e4g9e735fLlIOKz5LPx6+Dy6CAnJTEnIOIgyu746Oo/IgoJSURTX1RSQVNIRk9MREVSX1RFWFQgIsLoIOLv5eLt5e2zLCD57iD17vfl8uUg4rPks/Hr4PLoICclMScg8uAg4uXx/CC/vyDi7LPx8iDiIMru+OjqPyIKCUlEU19UUkFTSE1VTFRJUExFX1RFWFQgIsLoIOLv5eLt5e2zLCD57iD17vfl8uUg4rPks/Hr4PLoIPazICUxIOXr5ezl7fLoKLPiKSDiIMru+OjqPyIKCUlEU19DQU5UVFJBU0hfVEVYVCAixevl7OXt8iAnJTEnIO3lIOzu5uUg4fPy6CDis+Sz8evg7ejpIOIgyu746OouIMLo5ODr6PLoIOnu4+4g5+Dss/Hy/CD2/O7j7j8iCglJRFNfT1ZFUldSSVRFRklMRV9URVhUICLW/yDy5ergIOLm5SDss/Hy6PL8IPTg6esg5yCz7OXt5ewgJyUxJy5cblxu1e735fLlIOfg7LPt6PLoIOnu4+4/IgoJSURTX09WRVJXUklURUZJTEVfQ0FQVElPTiAiz7Pk8uLl8OTm5e3t/yDP5fDl5+Dv6PHzINTg6evzIgoJSURTX09WRVJXUklURUZPTERFUl9URVhUICLW/yDy5ergIOLm5SDss/Hy6PL8IPLl6vMg5yCz7OXt5ewgJyUxJy5cblxuIlwKCSAgICAi3+r57iD04Onr6CDiIPLl9rMg7/Do5+3g9+Xt7f8g7OD+8vwg8rMg5iCz7OXt4CD57iD04Onr6CDiXG4iXAoJICAgICLu4fDg7bPpIPLl9rMsIOLu7egg4fPk8/L8IOfg7LPt5e2zLiDC6CDi8eUg+eUg4eDm4Lry5SDv5fDl7LPx8ujy6CD36FxuIlwKCSAgICAi8eru77P+4uDy6CDy5erzPyIKCiAgICAgICAgLyogbWVzc2FnZSBib3ggc3RyaW5ncyAqLwogICAgICAgIElEU19SRVNUQVJUX1RJVExFICAgICAgICLP5fDl5+Di4O3y4Obo8ugiCiAgICAgICAgSURTX1JFU1RBUlRfUFJPTVBUICAgICAgItHo7PPr/uLg8ugg7+Xw5efg4uDt8uDm5e3t/yBXaW5kb3dzPyIKICAgICAgICBJRFNfU0hVVERPV05fVElUTEUgICAgICAiwujs6u3z8ugiCiAgICAgICAgSURTX1NIVVRET1dOX1BST01QVCAgICAgIsfg4uXw+Ojy6CDx5fGz/iDw7uHu8uggV2luZT8iCgogICAgICAgIC8qIFJ1biBGaWxlIGRpYWxvZyAqLwogICAgICAgIElEU19SVU5ETEdfRVJST1IgICAgICAgICAgICLN5ezu5uvo4u4g4rPk7uHw4Ofo8ugg5LPg6+7jIMfg7/Px6iDU4Onr8yAo4u3z8vCz+O3/IO/u7Ojr6uApIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0VSUk9SICAgICLN5ezu5uvo4u4g4rPk7uHw4Ofo8ugg5LPg6+7jIM7j6//kICji7fPy8LP47f8g7+7s6Ovq4CkiCiAgICAgICAgSURTX1JVTkRMR19CUk9XU0VfQ0FQVElPTiAgIs7j6//kIgogICAgICAgIElEU19SVU5ETEdfQlJPV1NFX0ZJTFRFUiAgICLC6Oru7fPi4O2zINTg6evoXDAqLmV4ZVwwwvGzINTg6evoXDAqLipcMFwwIgoKICAgICAgICAvKiBzaGVsbCBmb2xkZXIgcGF0aCBkZWZhdWx0IHZhbHVlcyAqLwoJSURTX1BST0dSQU1TICAgICAgICAgICAgICAgICLD7uvu4u3lIOzl7f5cXM/w7uPw4OzoIgoJSURTX1BFUlNPTkFMICAgICAgICAgICAgICAgICLM7r8g5O7q8+zl7fLoIgoJSURTX0ZBVk9SSVRFUyAgICAgICAgICAgICAgICLO4fDg7eUiCglJRFNfU1RBUlRVUCAgICAgICAgICAgICAgICAgIsPu6+7i7eUg7OXt/lxcz/Du4/Dg7OhcXMDi8u7n4O/z8eoiCglJRFNfUkVDRU5UICAgICAgICAgICAgICAgICAgIs3l5ODi7boiCglJRFNfU0VORFRPICAgICAgICAgICAgICAgICAgIsKz5LPx6+Dy6CIKCUlEU19TVEFSVE1FTlUgICAgICAgICAgICAgICAiw+7r7uLt5SDs5e3+IgoJSURTX01ZTVVTSUMgICAgICAgICAgICAgICAgICLM7v8gzPPn6OrgIgoJSURTX01ZVklERU8gICAgICAgICAgICAgICAgICLM7r8g1LPr/OzoIgoJSURTX0RFU0tUT1BESVJFQ1RPUlkgICAgICAgICLQ7uHu9+jpIPHys+siCglJRFNfTkVUSE9PRCAgICAgICAgICAgICAgICAgIszl8OXm7eUg7vLu9+Xt7f8iCglJRFNfVEVNUExBVEVTICAgICAgICAgICAgICAgItjg4evu7egiCglJRFNfQVBQREFUQSAgICAgICAgICAgICAgICAgIkFwcGxpY2F0aW9uIERhdGEiCglJRFNfUFJJTlRIT09EICAgICAgICAgICAgICAgIs/w6O3y5fDoIgoJSURTX0xPQ0FMX0FQUERBVEEgICAgICAgICAgICJMb2NhbCBTZXR0aW5nc1xcQXBwbGljYXRpb24gRGF0YSIKCUlEU19JTlRFUk5FVF9DQUNIRSAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXFRlbXBvcmFyeSBJbnRlcm5ldCBGaWxlcyIKCUlEU19DT09LSUVTICAgICAgICAgICAgICAgICAiQ29va2llcyIKCUlEU19ISVNUT1JZICAgICAgICAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXEhpc3RvcnkiCglJRFNfUFJPR1JBTV9GSUxFUyAgICAgICAgICAgIlByb2dyYW0gRmlsZXMiCglJRFNfTVlQSUNUVVJFUyAgICAgICAgICAgICAgIszuvyDM4Ov+7eroIgoJSURTX1BST0dSQU1fRklMRVNfQ09NTU9OICAgICJQcm9ncmFtIEZpbGVzXFxDb21tb24gRmlsZXMiCglJRFNfQ09NTU9OX0RPQ1VNRU5UUyAgICAgICAgIsTu6vPs5e3y6CIKCUlEU19BRE1JTlRPT0xTICAgICAgICAgICAgICAiU3RhcnQgTWVudVxcUHJvZ3JhbXNcXEFkbWluaXN0cmF0aXZlIFRvb2xzIgoJSURTX0NPTU1PTl9NVVNJQyAgICAgICAgICAgICLM8+fo6uAiCglJRFNfQ09NTU9OX1BJQ1RVUkVTICAgICAgICAgIszg6/7t6ugiCglJRFNfQ09NTU9OX1ZJREVPICAgICAgICAgICAgItSz6/zs6CIKCUlEU19DREJVUk5fQVJFQSAgICAgICAgICAgICAiTG9jYWwgU2V0dGluZ3NcXEFwcGxpY2F0aW9uIERhdGFcXE1pY3Jvc29mdFxcQ0QgQnVybmluZyIKCglJRFNfTkVXRk9MREVSCQkize7i4CDS5ergIgoKCUlEU19DUEFORUxfVElUTEUgICAgICAgICAgICAiz+Dt5ev8IOrl8PPi4O3t/yBXaW5lIgoJSURTX0NQQU5FTF9OQU1FICAgICAgICAgICAgICKy7Cf/IgoJSURTX0NQQU5FTF9ERVNDUklQVElPTiAgICAgICLO7+jxIgoKICAgICAgICBJRFNfU0hMRVhFQ19OT0FTU09DICAgICAgICAgIs3lIPHq7u30s+Pz8O7i4O3uIO/w7uPw4OzoIFdpbmRvd3Mg5Ov/IOKz5Orw6PLy/yD04Onrs+Ig9vzu4+4g8ujv8y4iCn0KClNUUklOR1RBQkxFCnsKSURTX0xJQ0VOU0VfQ0FQVElPTiwgICAgICAgICAgICAiy7P25e3ns/8gV2luZSIKSURTX0xJQ0VOU0UsCiJXaW5lILog4rPr/O3o7CDPxzsg4ugg7O7m5fLlIO/u+Ojw/uLg8ugg6e7j7iDy4C/g4e4gXArn7LPt/uLg8ugg5+Oz5O3uIPPs7uIgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBcCkxpY2Vuc2UsIP/q4CDu7/Ph67Pq7uLg7eAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyDi5fDxs78gXAoyLjEgy7P25e3ns78sIPfoICjt4CDi4Pgg8O7n8fPkKSDt7uKz+O6/IOLl8PGzvy5cblxuXApXaW5lIPDu5+/u4vH+5ObzuvL88f8g5yDt4OSzuv4sIPnuIOHz5OUg6u7w6PHt6OwsIFwK4OvlIMHFxyDB08TcLd/KyNUgw8DQwM3Sssk7IO3g4rPy/CDh5ecg7eXv8P/s6PUg4+Dw4O3ys+kg+e7k7lwKz9DOxMDG0yD36CDP0MjEwNLNztHSsiDEy98gz8XCzcjVINayy8XJLiAgxOjis/L88f8gR05VIFwKTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug5Ov/IOTl8uDr/O3uvyCz7fTu8Ozg9rO/LlxuXG5cCsLoIO/u4ujt7bMg4fPr6CDu8vDo7ODy6CDq7u+z/iBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIFwKTGljZW5zZSDw4Ofu7CDnIFdpbmU7IP/q+e4g7bMsIO3g7+j4s/L8IOTuIEZyZWUgU29mdHdhcmUgXApGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLiIKfQo=