LyoKICogV2luZUZpbGUgKFJ1c3NpYW4gcmVzb3VyY2VzKQogKgogKiBDb3B5cmlnaHQgMjAwMyBJZ29yIFN0ZXBpbgogKiBDb3B5cmlnaHQgMjAwNyBLb25zdGFudGluIEtvbmRyYXR5dWsgKEV0ZXJzb2Z0KQogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfUlVTU0lBTiwgU1VCTEFOR19ERUZBVUxUCgovKiBNZW51ICovCgpJRE1fV0lORUZJTEUgTUVOVSBGSVhFRCBJTVBVUkUKewogICAgUE9QVVAgIibU4OnrIiAgewogICAgICAgIE1FTlVJVEVNICImzvLq8Pvy/Fx0RW50ZXIiLCAgICAgICAgICAgICBJRF9BQ1RJVkFURQogICAgICAgIE1FTlVJVEVNICImz+Xw5ezl8fLo8vwuLi5cdEY3IiwgICAgICAgICBJRF9GSUxFX01PVkUKICAgICAgICBNRU5VSVRFTSAiJsru7+jw7uLg8vwuLi5cdEY4IiwgICAgICAgICAgSURfRklMRV9DT1BZCiAgICAgICAgTUVOVUlURU0gIibCIOHz9OXwIO7h7OXt4C4uLlx0RjkiLCAgICAgIDExOAogICAgICAgIE1FTlVJVEVNICIm0+Tg6+jy/Fx0RGVsIiwgICAgICAgICAgICAgICBJRF9GSUxFX0RFTEVURQogICAgICAgIE1FTlVJVEVNICLP5fDl6Ozl7e7i4PL8Li4uIiwgICAgICAgICAgICAxMDkKICAgICAgICBNRU5VSVRFTSAi0eLu6fHy4uAuLi5cdEFsdCtFbnRlciIsICAgICAgSURfRURJVF9QUk9QRVJUSUVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIsDw9eji6PDu4uDy/C4uLiIsICAgICAgICAgICAgIDExOQogICAgICAgIE1FTlVJVEVNICLQ4PHv4Oru4uDy/C4uLiIsICAgICAgICAgICAgICAxMjAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsfg7/Px8ujy/C4uLiIsICAgICAgICAgICAgICAgSURfRVhFQ1VURQogICAgICAgIE1FTlVJVEVNICImz+X34PLg8vwuLi4iLCAgICAgICAgICAgICAgICAxMDIKICAgICAgICBNRU5VSVRFTSAiwPHx7vbo6PDu4uDy/C4uLiIsICAgICAgICAgICAgMTAzCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gItHu5+Tg8vwg5Ojw5ery7vDo/i4uLiIsICAgICAgIDExMQogICAgICAgIE1FTlVJVEVNICLP7ujx6i4uLiIsICAgICAgICAgICAgICAgICAgICAxMDQKICAgICAgICBNRU5VSVRFTSAiJsL75OXr6PL8IPTg6ev7Li4uIiwgICAgICAgICAgMTE2CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAiwvv17uRcdEFsdCtYIiwgICAgICAgICAgICAgICAgSURfRklMRV9FWElUCiNlbHNlCiAgICAgICAgTUVOVUlURU0gIsL79e7kIiwgICAgICAgICAgICAgICAgICAgICAgIElEX0ZJTEVfRVhJVAojZW5kaWYKICAgIH0KCiAgICBQT1BVUCAiJsTo8eoiICB7CiAgICAgICAgTUVOVUlURU0gIibK7u/o8O7i4PL8IOTo8eouLi4iLCAgICAgICAgIDIwMQogICAgICAgIE1FTlVJVEVNICImzOXy6uAg8u7s4C4uLiIsICAgICAgICAgICAgICAyMDIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtTu8Ozg8ujw7uLg8vwuLi4iLCAgICAgICAgICAgSURfRk9STUFUX0RJU0sKI2lmZGVmIF9XSU45NQogICAgICAgIE1FTlVJVEVNICIm0e7n5ODy/CDx6PHy5ezt++kg5Ojx6i4uLiIsIC0xICAgLypUT0RPKi8KI2VuZGlmCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIs/u5Orr/ib36PL8IPHl8uXi7ukg5Ojx6iIsICAgIElEX0NPTk5FQ1RfTkVUV09SS19EUklWRQogICAgICAgIE1FTlVJVEVNICLO8uom6/736PL8IPHl8uXi7ukg5Ojx6iIsICAgICBJRF9ESVNDT05ORUNUX05FVFdPUktfRFJJVkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAi0eTl6+Dy/CDuJuH56Owg6uDqLi4uIiwgICAgICAgMjU0CiAgICAgICAgTUVOVUlURU0gIibH4Orw+/L8IO7h+ejpIOTu8fLz7y4uLiIsICAgIDI1NQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImwvvh8ODy/CDk6PHqLi4uIiwgICAgICAgICAgICAyNTEKICAgIH0KCiAgICBQT1BVUCAiJs/g7+roIiAgewogICAgICAgIE1FTlVJVEVNICLRJuvl5PP++ejpIPPw7uLl7fxcdCsiLCAgICAgICAzMDEKICAgICAgICBNRU5VSVRFTSAiJtDg5+Ll8O3z8vwg5OXw5eLuXHQqIiwgICAgICAgMzAyCiAgICAgICAgTUVOVUlURU0gItDg5+Ll8O3z8vwg4ibx5Vx0U3RyZysqIiwgICAgIDMwMwogICAgICAgIE1FTlVJVEVNICIm0eLl8O3z8vwg5OXw5eLuXHQtIiwgICAgICAgICAzMDQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs7y7OXy6PL8IOLl8uLoIiwgICAgICAgICAgICAgNTA1CiAgICB9CgogICAgUE9QVVAgIibC6OQiICB7CiAgICAgICAgTUVOVUlURU0gIsTl8OXi7iAm6CDv4O/q4CIsICAgICAgICAgICAgIDQxMwogICAgICAgIE1FTlVJVEVNICLS7uv86u4gJuTl8OXi7iIsICAgICAgICAgICAgICA0MTEKICAgICAgICBNRU5VSVRFTSAi0u7r/OruICbv4O/q4CIsICAgICAgICAgICAgICAgNDEyCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gItDg5ybh6PL8IiwgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiyCbs/yIsICAgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19OQU1FCiAgICAgICAgTUVOVUlURU0gIsIm8eUg7+7k8O7h7e7x8ugg7iD04Onr5SIsICAgIElEX1ZJRVdfQUxMX0FUVFJJQlVURVMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJsL74e7w7vft7iDuIPTg6evlLi4uIiwgICAgICAgSURfVklFV19TRUxFQ1RFRF9BVFRSSUJVVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibR7vDy6PDu4uDy/CDv7iDo7OXt6CIsICAgICAgIElEX1ZJRVdfU09SVF9OQU1FCiAgICAgICAgTUVOVUlURU0gItHu8PLo8O7i4PL8IO/uICby6O/zIiwgICAgICAgIElEX1ZJRVdfU09SVF9UWVBFCiAgICAgICAgTUVOVUlURU0gItHu8PLo8O7i4PL8IO/uICbw4Ofs5fDzIiwgICAgIElEX1ZJRVdfU09SVF9TSVpFCiAgICAgICAgTUVOVUlURU0gItHu8PLo8O7i4PL8IO/uIOQm4PLlIiwgICAgICAgIElEX1ZJRVdfU09SVF9EQVRFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gItHu8PLo8O7i4PL8IO/uICYuLi4iLCAgICAgICAgIElEX1ZJRVdfRklMVEVSCiAgICB9CgogICAgUE9QVVAgIibN4PHy8O7p6ugiICB7CiAgICAgICAgTUVOVUlURU0gIs/u5Cby4uXw5uTl7ej/Li4uIiwgICAgICAgICAgIDUwMQogICAgICAgIE1FTlVJVEVNICIm2PDo9PIuLi4iLCAgICAgICAgICAgICAgICAgICBJRF9TRUxFQ1RfRk9OVAogICAgICAgIE1FTlVJVEVNICImzeDx8vDu6PL8IO/g7eXr/CDo7fHy8PPs5e3y7uIuLi4iLCA1MTIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs/g7eXr/CDo7fHy8PPs5e3y7uIiLCAgICAgICAgSURfVklFV19UT09MX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICLP4O3l6/wgJuTo8eru4iIsICAgICAgICAgICAgICBJRF9WSUVXX0RSSVZFX0JBUiwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICIm0fLw7urgIPHu8fLu/+3o/yIsICAgICAgICAgICBJRF9WSUVXX1NUQVRVU0JBUiwgQ0hFQ0tFRAojaWZuZGVmIF9OT19FWFRFTlNJT05TCiAgICAgICAgTUVOVUlURU0gIs8m7uvt++kg/erw4O1cdEN0cmwrU2hpZnQrUyIsIElEX1ZJRVdfRlVMTFNDUkVFTgojZW5kaWYKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJsft4Pfu6iDiIPHv6PHu6iDv8O7j8ODs7CIsICAgNTA0CiAgICAgICAgTUVOVUlURU0gItHuJvXw4O3/8vwg7eDx8vDu6eroIO/w6CDi+/Xu5OUiLDUxMQogICAgfQoKCiAgICBQT1BVUCAiJsHl5+7v4PHt7vHy/CIgIHsKICAgICAgICBNRU5VSVRFTSAiJsTu8fLz7y4uLiIsICAgICAgICAgICAgICAgICAgNjA1CiAgICAgICAgTUVOVUlURU0gIibP8O7y7uru6/suLi4iLCAgICAgICAgICAgICAgIDYwNgogICAgICAgIE1FTlVJVEVNICImwuvg5OXr5fYuLi4iLCAgICAgICAgICAgICAgICA2MDcKICAgIH0KCiAgICBQT1BVUCAiJs7q7e4iICB7CiAgICAgICAgTUVOVUlURU0gIs3u4u7lICbu6u3uIiwgICAgICAgICAgICAgICAgIElEX1dJTkRPV19ORVcKICAgICAgICBNRU5VSVRFTSAizurt4CAm6uDx6uDk7uxcdEN0cmwrRjUiLCAgICAgSURfV0lORE9XX0NBU0NBREUKICAgICAgICBNRU5VSVRFTSAizurt4CDxJuLl8PXzIOLt6OciLCAgICAgICAgICAgSURfV0lORE9XX1RJTEVfSE9SWgogICAgICAgIE1FTlVJVEVNICLO6u3gIPEm6+Xi4CDt4O/w4OLuXHRDdHJsK0Y0IixJRF9XSU5ET1dfVElMRV9WRVJUCiNpZm5kZWYgX05PX0VYVEVOU0lPTlMKICAgICAgICBNRU5VSVRFTSAi0ODx7+7r7ubo8vwgJuDi8u7s4PLo9+Xx6ugiLCAgSURfV0lORE9XX0FVVE9TT1JUCiNlbmRpZgogICAgICAgIE1FTlVJVEVNICIm0ODx7+7r7ubo8vwiLCAgICAgICAgICAgICAgICBJRF9XSU5ET1dfQVJSQU5HRQogICAgICAgIE1FTlVJVEVNICLOJuHt7uLo8vxcdEY1IiwgICAgICAgICAgICAgICBJRF9SRUZSRVNICiAgICB9CgogICAgUE9QVVAgIibR7/Dg4urgIiAgewogICAgICAgIE1FTlVJVEVNICIm0e7k5fDm4O3o5Vx0RjEiLCAgICAgICAgICAgICBJRF9IRUxQCiAgICAgICAgTUVOVUlURU0gIibP7ujx6i4uLlx0RjEiLCAgICAgICAgICAgICAgIElEX0hFTFAKICAgICAgICBNRU5VSVRFTSAiJsjx7+7r/Ofu4uDt6OUg8e/w4OLq6Fx0RjEiLCAgSURfSEVMUF9VU0lORwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImziBXaW5lZmlsZS4uLiIsICAgICAgICAgICAgICBJRF9BQk9VVAogICAgfQp9CgoKSUREX0VYRUNVVEUgRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwvvv7uvt6PL8IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIibK7uzg7eTgOiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgQ09OVFJPTCAgICAgICAgICLK4OogJvHo7OLu6yIsIDIxNCwgIkJ1dHRvbiIsIEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QLDMsIDQ1LCA3MSwgMTIKICAgIERFRlBVU0hCVVRUT04gICAiT0siLCAxLCAxNTgsIDYsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7eAiLCAyLCAxNTgsIDIzLCA0NywgMTQKICAgIFBVU0hCVVRUT04gICAgICAiJtHv8ODi6uAiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CklERF9TRUxFQ1RfREVTVElOQVRJT04gRElBTE9HIEZJWEVEIElNUFVSRSAxNSwgMTMsIDIxMCwgNjMKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwvvh5fDo8uUg7/Py/CDt4Oft4Pfl7ej/IgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIENPTlRST0wgICAgICAgICAiIiwgMTAxLCAiU3RhdGljIiwgU1NfU0lNUExFfFNTX05PUFJFRklYLCAzLCA2LCAxNjIsIDEwCiAgICBDT05UUk9MICAgICAgICAgIibP8/L8OiIsIC0xLCAiU3RhdGljIiwgU1NfTEVGVE5PV09SRFdSQVB8V1NfR1JPVVAsIDMsIDE4LCA2MCwgMTAKICAgIEVESVRURVhUICAgICAgICAyMDEsIDMsIDI5LCAxMzQsIDEyLCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsIDEsIDE1OCwgNiwgNDcsIDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt4CIsIDIsIDE1OCwgMjMsIDQ3LCAxNAogICAgUFVTSEJVVFRPTiAgICAgICImzuHn7vAiLCAyNTQsIDE1OCwgNDMsIDQ3LCAxNAp9CgpJRERfRElBTE9HX1ZJRVdfVFlQRSBESUFMT0cgRElTQ0FSREFCTEUgMTUsIDEzLCAxNjEsIDk3ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIs/uIPLo7/Mg9ODp6+7iIgpGT05UIDgsICJNUyBTYW5zIFNlcmlmIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICImyOz/OiIsLTEsNyw4LDIyLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZJRVdfUEFUVEVSTiwzMSw3LDYzLDEyLEVTX0FVVE9IU0NST0xMCiAgICBHUk9VUEJPWCAgICAgICAgItLo7yD04Onr4CIsLTEsNywyMyw4Nyw1NgogICAgQ09OVFJPTCAgICAgICAgICImyuDy4Ovu4+giLElEQ19WSUVXX1RZUEVfRElSRUNUT1JJRVMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMywzMiw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImz/Du4/Dg7Oz7IixJRENfVklFV19UWVBFX1BST0dSQU1TLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTMsNDMsNzAsMTAKICAgIENPTlRST0wgICAgICAgICAiJsTu6vPs5e3y+yIsSURDX1ZJRVdfVFlQRV9ET0NVTUVOVFMsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMyw1NCw3MCwxMAogICAgQ09OVFJPTCAgICAgICAgICLE8PPj6OUgJvTg6ev7IixJRENfVklFV19UWVBFX09USEVSUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEzLDY1LDcwLDEwCiAgICBDT05UUk9MICAgICAgICAgIs/u6uDn4PL8IPHq8Pvy++UvJvHo8fLl7O375SD04Onr+yIsSURDX1ZJRVdfVFlQRV9ISURERU4sCiAgICAgICAgICAgICAgICAgICAgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw3LDgxLDEwNiw5CiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEwNCw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt4CIsSURDQU5DRUwsMTA0LDI0LDUwLDE0CkVORAoKSUREX0RJQUxPR19QUk9QRVJUSUVTIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjQ4LCAyMTUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi0eLu6fHy4uAgJXMiCkZPTlQgOCwgIk1TIFNhbnMgU2VyaWYiCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE5MSw3LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt4CIsSURDQU5DRUwsMTkxLDI5LDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIsjs/yAm9ODp6+A6IiwtMSw3LDcsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9GSUxFTkFNRSw3MSw3LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiJs/u6+376SDv8/L8OiIsLTEsNywxOCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1BBVEgsNzEsMTgsMTIwLDksIEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiz+7x6+Xk7eXlIOjn7OXt5e3o5ToiLC0xLDcsMjksNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9MQVNUQ0hBTkdFLDcxLDI5LDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiwuXw8ej/OiIsLTEsNyw0MCw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX1ZFUlNJT04sNzEsNDAsMTIwLDksRVNfUkVBRE9OTFkgfCBOT1QgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJDb3AmeXJpZ2h0OiIsLTEsNyw1MSw1OSw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX1NUQVRJQ19QUk9QX0NPUFlSSUdIVCw3MSw1MSwxMjAsOSxFU19SRUFET05MWSB8IE5PVCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItDg5+zl8DoiLC0xLDcsNjIsNTksOQogICAgRURJVFRFWFQgICAgICAgIElEQ19TVEFUSUNfUFJPUF9TSVpFLDcxLDYyLDEyMCw5LEVTX1JFQURPTkxZIHwgTk9UIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiwPLw6OHz8vsiLC0xLDcsNzksMTU4LDQ2CiAgICBDT05UUk9MICAgICAgICAgIibS7uv86u4g5Ov/IPfy5e3o/yIsSURDX0NIRUNLX1JFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsOTEsNjgsOQogICAgQ09OVFJPTCAgICAgICAgICLRJurw+/L76SIsSURDX0NIRUNLX0hJRERFTiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDkxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJkFyY2hpdmUiLElEQ19DSEVDS19BUkNISVZFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTcsMTAxLDY4LDkKICAgIENPTlRST0wgICAgICAgICAiJtHo8fLl7O376SIsSURDX0NIRUNLX1NZU1RFTSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDkyLDEwMSw2OCw5CiAgICBDT05UUk9MICAgICAgICAgItEm5uDy++kiLElEQ19DSEVDS19DT01QUkVTU0VELCJCdXR0b24iLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE3LDExMSw2OCw5CiAgICBHUk9VUEJPWCAgICAgICAgIibI7fTu8Ozg9uj/IO4g4uXw8ejoIiwtMSw3LDEyOSwyMzQsNzkKICAgIExJU1RCT1ggICAgICAgICBJRENfTElTVF9QUk9QX1ZFUlNJT05fVFlQRVMsMTMsMTM5LDEwNyw2MyxMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEVESVRURVhUICAgICAgICBJRENfTElTVF9QUk9QX1ZFUlNJT05fVkFMVUVTLDEyMywxMzksMTExLDYzLEVTX01VTFRJTElORSB8IEVTX1JFQURPTkxZIHwgV1NfVlNDUk9MTApFTkQKCgpTVFJJTkdUQUJMRQp7CiAgICBJRFNfRk9OVF9TRUxfRExHX05BTUUgICAiz/Do7OXt5e3o5SDv4PDg7OXy8O7iIO3g8fLw7unq6CD48Oj08uAiCiAgICBJRFNfRk9OVF9TRUxfRVJST1IgICAgICAizvjo4ergIO/w6CDi++Hu8OUg7e7i7uPuIPjw6PTy4C4iCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19XSU5FRklMRSAgICAgICAgICAgICJXaW5lZmlsZSIKICAgIElEU19FUlJPUiAgICAgICAgICAgICAgICLO+Ojh6uAiCiAgICBJRFNfUk9PVF9GUyAgICAgICAgICAgICAiyu7w7eXi4P8g9ODp6+7i4P8g8ejx8uXs4CIKICAgIElEU19VTklYRlMgICAgICAgICAgICAgICLO8e3u4u3g/yD04Onr7uLg/yDx6PHy5ezgIgogICAgSURTX0RFU0tUT1AgICAgICAgICAgICAgItDg4e736Okg8fLu6yIKICAgIElEU19TSEVMTCAgICAgICAgICAgICAgICJTaGVsbCIKICAgIElEU19USVRMRUZNVCAgICAgICAgICAgICIlcyAtICVzIgogICAgSURTX05PX0lNUEwgICAgICAgICAgICAgIsX5uCDt5SDw5eDr6Ofu4uDt7iIKICAgIElEU19XSU5FX0ZJTEUgICAgICAgICAgICJXaW5lIEZpbGUiCn0KClNUUklOR1RBQkxFCnsKICAgIElEU19DT0xfTkFNRSAgICAgICAgICAgICLI7P8iCiAgICBJRFNfQ09MX1NJWkUgICAgICAgICAgICAi0ODn7OXwIgogICAgSURTX0NPTF9DREFURSAgICAgICAgICAgIsTg8uAg8e7n5ODt6P8iCiAgICBJRFNfQ09MX0FEQVRFICAgICAgICAgICAixODy4CDv7vHr5eTt5ePuIOTu8fLz7+AiCiAgICBJRFNfQ09MX01EQVRFICAgICAgICAgICAixODy4CDv7vHr5eTt5ePuIOjn7OXt5e3o/yIKICAgIElEU19DT0xfSURYICAgICAgICAgICAgICJJbmRleC9Jbm9kZSIKICAgIElEU19DT0xfTElOS1MgICAgICAgICAgICLR8fvr6ugiCiAgICBJRFNfQ09MX0FUVFIgICAgICAgICAgICAiwPLw6OHz8vsiCiAgICBJRFNfQ09MX1NFQyAgICAgICAgICAgICAiweXn7u/g8e3u8fL8IgoKICAgIElEU19GUkVFX1NQQUNFX0ZNVCAgICAgICIlcyDo5yAlcyDx4u7h7uTt7iIKfQo=