LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogQnVsZ2FyaWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUgTWlsa28gS3JhY2hvdW5vdgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICoKICovCgojaW5jbHVkZSAicmVzb3VyY2UuaCIKCkxBTkdVQUdFIExBTkdfQlVMR0FSSUFOLCBTVUJMQU5HX0RFRkFVTFQKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICLN4PHy8O7p6uAiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKLyoKICAgIExURVhUICAgICAgICAgICAi0uDn6CDh6OHr6O7y5ergIOUg8eLu4e7k5e0g8e708vPl8C4gzO7m5fLlIOTgIP8g8ODn7/Du8fLw4O3/4uDy5SDoL+jr6CDv8O7s5e3/8uUg7/DoIPPx6+7i6P/y4CDt4CBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIO/z4evo6vPi4O0g7vIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIC0g4uXw8ej/IDIuMSDt4CDr6Pbl7efgIOjr6CAo7+4g4uD4IOjn4e7wKSwg6u7/8u4g6CDk4CDlIPHr5eTi4PngIOLl8PHo/y4iLAoqLwogICAgTFRFWFQgICAgICAgICAgICJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCiAgICBHUk9VUEJPWCAgICAgICAgIiBXaW5kb3dzIFJlZ2lzdHJhdGlvbiBJbmZvcm1hdGlvbiAiLCBJRENfU1RBVElDLCAxNSwgMTEwLCAyMzAsIDU1CiAgICBMVEVYVCAgICAgICAgICAgIk93bmVyOiIsIElEQ19TVEFUSUMsIDIyLCAxMjYsIDQwLCAyMAogICAgRURJVFRFWFQgICAgICAgIElEQ19BQlRfT1dORVIsIDc1LCAxMjYsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJPcmdhbml6YXRpb246IiwgSURDX1NUQVRJQywgMjIsIDE0MCwgNTAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PUkcsIDc1LCAxNDAsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDt4CDv8Ojr7ubl7ej/8uAgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogCiAgICAvKiBGSVhNRTogTWFrZSB0aGUgZXhwbGFuYXRpb24gY29tcHJlaGVuc2libGUgKi8KICAgIExURVhUICAgICAgICAgICAiV2luZSDs7ublIOTgIOjs6PLo8OAg8ODn6+j37egg4uXw8ejoIO3gIFdpbmRvd3Mg5+Ag4vH/6u4g8ODn6+j37e4g7/Do6+7m5e3o5S4g0uDn6CDx8vDg7ej24CDlIPHi+vDn4O3gIPEg7eDx8vDu6ero8uUg4iDB6OHr6O7y5eroIOggw/Dg9Ojq4Cwg5+Ag5OAg7O7m5fLlIOTgIO/w7uzl7f/y5Swg7vHi5e0g7uH57vHo8fLl7O3o8uUsIOgg8e/l9uj06Pft6PLlIOfgIO/w6Ovu5uXt6P/y4CDt4PHy8O7p6uguIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNyw1MAogICAgQ09OVFJPTCAgICAgICAgICJBcHBsaWNhdGlvbnMiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw3MCwyMzAsMTEwCiAgICBQVVNIQlVUVE9OCSAgICAiJsTu4eDi/+3lIO3gIO/w6Ovu5uXt6OUuLi4iLElEQ19BUFBfQUREQVBQLCAxNSwyMDQsMTEyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiz/DlJuzg9eLg7eUg7eAg7/Do6+7m5e3o5S4uLiIsSURDX0FQUF9SRU1PVkVBUFAsIDEzMiwyMDQsMTEzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIibC5fDx6P8g7eAgV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjI2LDg4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDExMywyMjQsMTMzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgzeDx8vDu6ergIO3gIO/w7ufu8Pbo8uUgIixJRENfU1RBVElDLDgsNCwyNDQsODQKICAgIENPTlRST0wgICAgICLQ4Ofw5fjoIO3gIERpcmVjdFgg7/Do6+7m5e3o//LgIOTgIOfg6uv+9+Lg8iDs6Pjq4PLgIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiQWxsb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHRvICZkZWNvcmF0ZSB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9ERUNPUkFURUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzMiwyMzAsOAogICAgQ09OVFJPTCAgICAgItPv8ODi6+Xt6OXy7iDt4CDv8O7n7vD26PLlIO7yIOzl7ejk5vrw4CDt4CDv8O7n7vD26CIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDQsMjMwLDgKICAgIENPTlRST0wgICAgICLF7PPr6PDg6SDi6PDy8+Dr5e0g8ODh7vLl7SDv6+7yIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAi0ODn7OXwIO3gIPDg4e7y7ej/IO/r7vI6IixJRENfREVTS1RPUF9TSVpFLDE1LDcwLDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDksNzAsOCw4LFdTX0RJU0FCTEVECgkJICAgIAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNyw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCw5NSwyNDQsNDkKICAgIExURVhUICAgICAgICLP7uTk8Prm6uAg7eAgVmVydGV4IFNoYWRlcjogIixJRENfU1RBVElDLDE1LDExMCw4MCwzMgogICAgQ09NQk9CT1ggICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDEwOCwxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAi0ODn8OX46CBQaXhlbCBTaGFkZXIgKODq7iDx5SDv7uTk+vDm4CDu8iD14PDk8+Xw4CkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTI2LDIzMCwxMAoKICAgIEdST1VQQk9YICAgICIgU2NyZWVuICZSZXNvbHV0aW9uICIsSURDX1NUQVRJQyw4LDE1MSwyNDQsOTMKICAgIENPTlRST0wgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMTYxLDE4NywxNQogICAgRURJVFRFWFQgICAgSURDX1JFU19EUElFRElULDIwNCwxNjEsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICJkcGkiLElEQ19TVEFUSUMsMjM1LDE2MywxMCw4CiAgICBMVEVYVCAgICAgICAiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHVzaW5nIDEwIHBvaW50IFRhaG9tYSIsSURDX1JFU19GT05UX1BSRVZJRVcsMTUsMTgxLDIzMCw1NQpFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCDn4Ozl7eggIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIsLx/+rgIOTo7eDs6Pft7iDx4vrw5+Dt4CDh6OHr6O7y5ergIOzu5uUg5OAg4frk5SDu6uDn4O3gIOrg8u4g4uPw4OTl7eAgKO7x6OPz8OXt4CDu8iBXaW5lKSDo6+gg8e7h8fLi5e3gICji5+Xy4CDu8iBXaW5kb3dzIOjr6CDu8ejj8/Dl7eAg7vIg7/Do6+7m5e3o5fLuKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIs3u4uAg4ejh6+ju8uX37eAg5+Ds/+3gOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJsTu4eDi6CIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAi0fr55fHy4vPi4PnoIOfg7OXt6DoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJtDl5ODq8ujw4OkiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs/w5Sbs4PXt6CIsSURDX0RMTFNfUkVNT1ZFRExMLDE2NCwxMTQsODIsMTQgCkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDkwLCAxNjAsIDkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLQ5eTg6vLo8ODt5SDt4CDn4Oz/7eAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiINDl5CDt4CDn4PDl5uTg7eUgIixJRENfU1RBVElDLDgsNCwxNDQsNjYKICAgIENPTlRST0wgICAgICAgICAiJsLj8ODk5e3gIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCwxMTUsMTAKICAgIENPTlRST0wgICAgICAgICAiJtHu4fHy4uXt4CAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIsIm4/Dg5OXt4Cwg7+7x6+Ug8e7h8fLi5e3gIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgItHuJuHx8uLl7eAsIO/u8evlIOLj8ODk5e3gIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIibH4OHw4O3oIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCwxMTUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMjgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3oIixJRENBTkNFTCw3Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgz/Dl7eDx7vfi4O3lIO3gIPPx8vDu6fHy4uDy4CAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRmFpbGVkIHRvIGNvbm5lY3QgdG8gdGhlIG1vdW50IG1hbmFnZXIsIHRoZSBkcml2ZSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSBlZGl0ZWQuIiwgSURDX1NUQVRJQ19NT1VOVE1HUl9FUlJPUiwgMTUsMzAsMjIwLDc2CiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4uguLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDQ3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs/w5Sbs4PXt6CIsSURDX0JVVFRPTl9SRU1PVkUsNjYsOTgsNDcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJs7y6vDo6S4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5Nyw5OCw0OSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImz/ryOiIsSURDX1NUQVRJQ19QQVRILDE1LDEyMywyMCw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw0MSwxMjAsMTYwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImyOfh5fDoLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICIm0ujvOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICLF8ujq5fIg6CDx5fDo5e0g7e7s5fAiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCiAgICAKICAgIFBVU0hCVVRUT04gICAgICAi5O7v+uvt6PLl6+3oIO3g8fLw7unq6CIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTQ2LDEzNiwxMDAsMTMKICAgIENPTlRST0wgICAgICAgICAizvLq8OjpIO7yICbz8fLw7unx8uLu8u46IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiyOcm4eXw6C4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNzYsNDAsMTMKICAgIENPTlRST0wgICAgICAgICAix+Dk4OkgJvD69+3uOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICImxfLo6uXyOiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIibN7uzl8DoiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDIyNSwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCw2MywyMjEsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICLP7urg5+Lg6SD04Onr7uLl8uUsIOfg7+734uD56CDxIPLu9+rgIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgyOfh7vAg7eAg5PDg6eLl8CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiyOfh5fDl8uUg5+Lz6u7iIOTw4Oni5fAg6uDy7iDx6+7m6PLlIO7y7OXy6uAg7eAg5uXr4O3o/yDu8iDi4PEg5PDg6eLl8C4gzO7m5SDk4CDn4OHw4O3o8uUg5+Lz6uAg6uDy7iDt5SDo5+Hl8OXy5SDt6Org6vriIOTw4Oni5fAuIMjn4ejw4O3l8u4g7eAg7+7i5fflIO7yIOXk6O0g5PDg6eLl8CDt5SDlIO/w5e/u8Pr36PLl6+3uLiDM7ublIOTgIO3g8fLw7ujy5SDk8ODp4uXw4CDq4PLuIPnw4Ort5fLlIOL68PXzIO3l4+4g8SDk5fHt6P8g4fPy7u0g7eAg7Oj46uDy4C4iLElEQ19TVEFUSUMsMTUsMjAsMjI3LDUwCiAgICBDT05UUk9MICAgICAgICAgItPx8vDu6fHy4uAiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDcwLDE0MCwxMjAKICAgIFBVU0hCVVRUT04gICAgICAiJlRlc3QgU291bmQiLElEQ19BVURJT19URVNULDE3MCw3MCw1OSwxNAogICAgUFVTSEJVVFRPTiAgICAgICLK7u3y8O7r5e0g7+Dt5esiLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw5MCw2OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQJICAgICLV4PDk8+Xw7e4g8/Hq7vDl7ejlOiAiLElEQ19TVEFUSUMsMTUsMjE1LDkwLDEwCiAgICBDT01CT0JPWAkgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjEzLDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiRGVmYXVsdCAmU2FtcGxlIFJhdGU6IixJRENfU1RBVElDLDE1LDIzMiw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw5MCwyMzAsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkRlZmF1bHQgJkJpdHMgUGVyIFNhbXBsZToiLElEQ19TVEFUSUMsMTM3LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyMzAsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgItHu9PLz5fDt4CDl7PPr4Pbo/yIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgwvrt+OXtIOLo5CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAi0uXs4DoiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsjt8fLg6+jw4Okg8uXs4C4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDIzLDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgItbi//I6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLQ4Ofs5fA6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJJdGVtOiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIkNvbG9yOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlNpemU6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICJGb250IixJRENfU1lTUEFSQU1fRk9OVCwyMDgsNzQsMzcsMTMsV1NfRElTQUJMRUQKICAgIEdST1VQQk9YICAgICAgICAiIM/g7+roICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIsLw+ufq4CDq+uw6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDU1LDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw3MCwxOTUsMTQwLDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiyOfh7vAiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIs/w6Ovu5uXt6P8iCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiwejh6+ju8uXq6CIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICLT8fLw7unx8uLgIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIsjn4eXw5fLlIFVuaXgg5Ojw5ery7vDo/yIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICLR6vDo6SDk7u/66+3o8uXr7ejy5SIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLP7urg5ugg5O7v+uvt6PLl6+3o8uUiCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKOHl5yDy5ezgKSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICLD8OD06OrgIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICLI7fLl4/Dg9uj/IgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIsfi8+oiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAizvLt7vHt7iIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICLN4PHy8O7p6ugg7eAgV2luZSIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICLN4PHy8O7p6ugg7eAgV2luZSDn4CAlcyIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICLU4Onr7uLlIPEg8uXs6CIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICLI5+Hl8OXy5SD04OnrIPEg8uXs4CIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICLN/+zgIO3g8fLw7uXtIOfi8+ru4iDk8ODp4uXwLlxuXG7H4CDi4PEg4eX45SDo5+Hw4O0g5PDg6eLl8CDv7iDv7uTw4Ofh6PDg7eUuXG7M7ublIOTgIOPuIOjn7+7r5+Lg8uUg6OvoIOTgIOjn4eXw5fLlIOTw8+MuXG5cbtLw/+Hi4CDk4CD58ODq7eXy5SDt4CDP7vLi+vDk6Cwg5+Ag5OAg4uvl5+Ug4iDx6OvgIOjn4e7w4C4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAiz+Dv6uAiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiwvD65+rgIOr67CIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RMTF9XQVJOSU5HICAgICAgICAgIs/w7uz/7eDy4CDt4CDw5eTgIO3gIOfg8OXm5ODt5SDt5SDlIO/w5e/u8Pr36PLl6+3gLiDR6OPz8O3oIOvoIPHy5Swg9+Ug6PHq4PLlIOTgIO3g7/Dg4ujy5SDy7uLgPyIKICAgIElEU19ETExfV0FSTklOR19DQVBUSU9OICLC7ejs4O3o5Tog8ejx8uXs7eAg4ejh6+ju8uXq4CIKICAgIElEU19ETExfTkFUSVZFICAgICAgICAgICLx7uHx8uLl7eAiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAi4uPw4OTl7eAiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAi8e7h8fLi5e3gLCDi4/Dg5OXt4CIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICLi4/Dg5OXt4Cwg8e7h8fLi5e3gIgogICAgSURTX0RMTF9ESVNBQkxFRCAgICAgICAgIufg4fDg7eXt4CIKICAgIElEU19ERUZBVUxUX1NFVFRJTkdTICAgICJEZWZhdWx0IFNldHRpbmdzIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUgUHJvZ3JhbXMgKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICJVc2UgZ2xvYmFsIHNldHRpbmdzIgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgIlNlbGVjdCBhbiBleGVjdXRhYmxlIGZpbGUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAiSGFyZHdhcmUiCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIk5vbmUiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiQXV0b2RldGVjdCIKICAgIElEU19EUklWRV9GSVhFRCAgICAgICAgICAgICAiTG9jYWwgaGFyZCBkaXNrIgogICAgSURTX0RSSVZFX1JFTU9URSAgICAgICAgICAgICJOZXR3b3JrIHNoYXJlIgogICAgSURTX0RSSVZFX1JFTU9WQUJMRSAgICAgICAgICJGbG9wcHkgZGlzayIKICAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICAgSURTX0RSSVZFX0xFVFRFUlNfRVhDRUVERUQgICJZb3UgY2Fubm90IGFkZCBhbnkgbW9yZSBkcml2ZXMuXG5cbkVhY2ggZHJpdmUgbXVzdCBoYXZlIGEgbGV0dGVyLCBmcm9tIEEgdG8gWiwgc28geW91IGNhbm5vdCBoYXZlIG1vcmUgdGhhbiAyNiIKICAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAiU3lzdGVtIGRyaXZlIgogICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIGRyaXZlIEM/XG5cbk1vc3QgV2luZG93cyBhcHBsaWNhdGlvbnMgZXhwZWN0IGRyaXZlIEMgdG8gZXhpc3QsIGFuZCB3aWxsIGRpZSBtZXNzaWx5IGlmIGl0IGRvZXNuJ3QuIElmIHlvdSBwcm9jZWVkIHJlbWVtYmVyIHRvIHJlY3JlYXRlIGl0ISIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiTGV0dGVyIgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICJEcml2ZSBNYXBwaW5nIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJZb3UgZG9uJ3QgaGF2ZSBhIGRyaXZlIEMuIFRoaXMgaXMgbm90IHNvIGdyZWF0LlxuXG5SZW1lbWJlciB0byBjbGljayAnQWRkJyBpbiB0aGUgRHJpdmVzIHRhYiB0byBjcmVhdGUgb25lIVxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIkZ1bGwiCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIlN0YW5kYXJkIgogICAgSURTX0FDQ0VMX0JBU0lDICAgICAgICAgICAgICJCYXNpYyIKICAgIElEU19BQ0NFTF9FTVVMQVRJT04gICAgICAgICAiRW11bGF0aW9uIgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJBTFNBIERyaXZlciIKICAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiRXNvdW5EIERyaXZlciIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTIERyaXZlciIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiSkFDSyBEcml2ZXIiCiAgICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIk5BUyBEcml2ZXIiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSBEcml2ZXIiCiAgICBJRFNfRFJJVkVSX0NPUkVBVURJTyAgICAgICAgIkNvcmVBdWRpbyBEcml2ZXIiCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIkNvdWxkbid0IG9wZW4gJXMhIgogICAgSURTX1NPVU5ERFJJVkVSUyAgICAgICAgICAgICJTb3VuZCBEcml2ZXJzIgogICAgSURTX0RFVklDRVNfV0FWRU9VVCAgICAgICAgICJXYXZlIE91dCBEZXZpY2VzIgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICJXYXZlIEluIERldmljZXMiCiAgICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREkgT3V0IERldmljZXMiCiAgICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREkgSW4gRGV2aWNlcyIKICAgIElEU19ERVZJQ0VTX0FVWCAgICAgICAgICAgICAiQXV4IERldmljZXMiCiAgICBJRFNfREVWSUNFU19NSVhFUiAgICAgICAgICAgIk1peGVyIERldmljZXMiCiAgICBJRFNfVU5BVkFJTEFCTEVfRFJJVkVSICAgICAgIkZvdW5kIGRyaXZlciBpbiByZWdpc3RyeSB0aGF0IGlzIG5vdCBhdmFpbGFibGUhXG5cblJlbW92ZSBcIiVzXCIgZnJvbSByZWdpc3RyeT8iCiAgICBJRFNfV0FSTklORyAgICAgICAgICAgICAgICAgIldhcm5pbmciCkVORAo=