LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogQnVsZ2FyaWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDUgTWlsa28gS3JhY2hvdW5vdgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICoKICovCgpMQU5HVUFHRSBMQU5HX0JVTEdBUklBTiwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAizeDx8vDu6ergIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4Ci8qCiAgICBMVEVYVCAgICAgICAgICAgItLg5+gg4ejh6+ju8uXq4CDlIPHi7uHu5OXtIPHu9PLz5fAuIMzu5uXy5SDk4CD/IPDg5+/w7vHy8ODt/+Lg8uUg6C/o6+gg7/Du7OXt//LlIO/w6CDz8evu4uj/8uAg7eAgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCDv8+Hr6Orz4uDtIO7yIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiAtIOLl8PHo/yAyLjEg7eAg6+j25e3n4CDo6+ggKO/uIOLg+CDo5+Hu8CksIOru//LuIOgg5OAg5SDx6+Xk4uD54CDi5fDx6P8uIiwKKi8KICAgIExURVhUICAgICAgICAgICAiVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDt4CDv8Ojr7ubl7ej/8uAgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogCiAgICAvKiBGSVhNRTogTWFrZSB0aGUgZXhwbGFuYXRpb24gY29tcHJlaGVuc2libGUgKi8KICAgIExURVhUICAgICAgICAgICAiV2luZSDs7ublIOTgIOjs6PLo8OAg8ODn6+j37egg4uXw8ejoIO3gIFdpbmRvd3Mg5+Ag4vH/6u4g8ODn6+j37e4g7/Do6+7m5e3o5S4g0uDn6CDx8vDg7ej24CDlIPHi+vDn4O3gIPEg7eDx8vDu6ero8uUg4iDB6OHr6O7y5eroIOggw/Dg9Ojq4Cwg5+Ag5OAg7O7m5fLlIOTgIO/w7uzl7f/y5Swg7vHi5e0g7uH57vHo8fLl7O3o8uUsIOgg8e/l9uj06Pft6PLlIOfgIO/w6Ovu5uXt6P/y4CDt4PHy8O7p6uguIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNyw1MAogICAgQ09OVFJPTCAgICAgICAgICJBcHBsaWNhdGlvbnMiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw3MCwyMzAsMTEwCiAgICBQVVNIQlVUVE9OCSAgICAiJsTu4eDi/+3lIO3gIO/w6Ovu5uXt6OUuLi4iLElEQ19BUFBfQUREQVBQLCAxNSwyMDQsMTEyLDE0CiAgICBQVVNIQlVUVE9OCSAgICAiz/DlJuzg9eLg7eUg7eAg7/Do6+7m5e3o5S4uLiIsSURDX0FQUF9SRU1PVkVBUFAsIDEzMiwyMDQsMTEzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIibC5fDx6P8g7eAgV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjI2LDg4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDExMywyMjQsMTMzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDt4CDv8O7n7vD26PLlICIsSURDX1NUQVRJQyw4LDEwLDI0NCwxOTUKCiAgICBDT05UUk9MCSAgICAi0ODn8OX46CDt4CBEaXJlY3RYIO/w6Ovu5uXt6P/y4CDk4CDn4Orr/vfi4PIg7Oj46uDy4CIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMCwyMzAsOAogICAgQ09OVFJPTAkgICAgIsLq6/736CDk4u7p7eDy4CDh8/Tl8Ojn4Pbo/yDt4CDw4OHu8u3o/yDv6+7yIixJRENfRE9VQkxFX0JVRkZFUiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDMwLDIzMCw4CiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgaXMgdGVycmlibGUgKi8KICAgIExURVhUICAgICAgICAgICAiwOruIO/w7ufu8Pbo8uUg7eAgV2luZSDx5SDz7/D/4uv/4uDyIO7yIOLg+Oj/IOzl7ejk5vrwIO3gIO/w7ufu8PboLCDy5SD55SDo5+Pr5ebk4PIg6CD55SDx5SDk+vDm4PIg6uDy7iDu8fLg7eDr6PLlIO3gIPDg4e7y7ej/IOLoIO/r7vIsIOgg+eUg8eUg7+7q4Ofi4PIg4iDx7+jx+urgIPEg7/Du5+7w9uguIFxuXG7A6u4g6Ofh5fDl8uUg5OAg7eUg8eUg8+/w4OLr/+Lg8iDu8iDt5ePuLCDy5SDt/+zgIOTgIOH65ODyIOjt8uXj8Ojw4O3oIPEg8ODh7vLt6P8g4ugg7+vu8iwg7e4g5ezz6+D26P/y4CD55SDlIO/uLfLu9+3gIOgg5SDi+ufs7ubt7iDt/+ru6CDv8O7j8ODs6CDk4CDw4OHu8v/yIO/uLeTu4fDlLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSw0MywyMjgsODAKICAgIENPTlRST0wgICAgICAgICAi0+/w4OLr5e3o5fLuIO3gIO/w7ufu8Pbo8uUg7vIg7OXt6OTm+vDgIO3gIO/w7ufu8PboIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxMTcsMjMwLDgKICAgIAogICAgLyogRklYTUU6IHRoZSB3b3JkaW5nIG9mIHRoaXMgZXhwbGFuYXRpb24gY291bGQgYmUgYSBsb3QgYmV0dGVyICovCiAgICBMVEVYVCAgICAgICAgICAgIszu5uXy5SDk4CDo5+/u6+fi4PLlIOXs8+vg9uj/IO3gIOLo8PLz4Ovl7SDw4OHu8uXtIO/r7vIsIOIg6u7p8u4g5OAg8WUg8ODn7+7r4OPg8iDv8O7n7vD26PLlLCDo6+gg7O7m5SDk4CDj6CDu8fLg4ujy5SDk4CDo5+vo5+DyIO3gIOLg+Oj/IPHy4O3k4PDy5e0g8ODh7vLl7SDv6+7yLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwxNDYsMjI4LDI4CiAgICBMVEVYVCAgICAgICAgICAgItDg5+zl8CDt4CDw4OHu8u3o/yDv6+7yOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxODgsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTg4LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICLF7PPr6PDg6SDi6PDy8+Dr5e0g8ODh7vLl7SDv6+7yIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNzMsMjMwLDEwCgkJICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDE4OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNywxODgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDIxMCwyNDQsNTAKCiAgICBMVEVYVAkgICAgIs/u5OTw+ubq4CDt4CBWZXJ0ZXggU2hhZGVyOiAiLElEQ19TVEFUSUMsMTUsMjIwLDEwNSwzMAogICAgQ09NQk9CT1gJICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDExNSwyMTgsMTI1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAi0ODn8OX46CBQaXhlbCBTaGFkZXIgKODq7iDx5SDv7uTk+vDm4CDu8iD14PDk8+Xw4CkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjM3LDIzMCwxMApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCDn4Ozl7eggIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIsLx/+rgIOTo7eDs6Pft7iDx4vrw5+Dt4CDh6OHr6O7y5ergIOzu5uUg5OAg4frk5SDu6uDn4O3gIOrg8u4g4uPw4OTl7eAgKO7x6OPz8OXt4CDu8iBXaW5lKSDo6+gg8e7h8fLi5e3gICji5+Xy4CDu8iBXaW5kb3dzIOjr6CDu8ejj8/Dl7eAg7vIg7/Do6+7m5e3o5fLuKS4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIs3u4uAg4ejh6+ju8uX37eAg5+Ds/+3gOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJsTu4eDi6CIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAi0fr55fHy4vPi4PnoIOfg7OXt6DoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJtDl5ODq8ujw4OkiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIs/w5Sbs4PXt6CIsSURDX0RMTFNfUkVNT1ZFRExMLDE2NCwxMTQsODIsMTQgCkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDkwLCAxNjAsIDkyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLQ5eTg6vLo8ODt5SDt4CDn4Oz/7eAiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiINDl5CDt4CDn4PDl5uTg7eUgIixJRENfU1RBVElDLDgsNCwxNDQsNjYKICAgIENPTlRST0wgICAgICAgICAiJsLj8ODk5e3gIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCwxMTUsMTAKICAgIENPTlRST0wgICAgICAgICAiJtHu4fHy4uXt4CAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIsIm4/Dg5OXt4Cwg7+7x6+Ug8e7h8fLi5e3gIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgItHuJuHx8uLl7eAsIO/u8evlIOLj8ODk5e3gIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsMTE1LDEwCiAgICBDT05UUk9MICAgICAgICAgIibH4OHw4O3oIixJRENfUkFEX0RJU0FCTEUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw1NCwxMTUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMjgsNzQsNDUsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3oIixJRENBTkNFTCw3Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgz/Dl7eDx7vfi4O3lIO3gIPPx8vDu6fHy4uDy4CAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJsTu4eDi6C4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsNDcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiz/DlJuzg9e3oIixJRENfQlVUVE9OX1JFTU9WRSw2Niw5OCw0NywxNAogICAgUFVTSEJVVFRPTiAgICAgICImzvLq8OjpLi4uIixJRENfQlVUVE9OX0FVVE9ERVRFQ1QsMTk3LDk4LDQ5LDE0CgogICAgLyogZWRpdGluZyBkcml2ZSBkZXRhaWxzICovCiAgICBMVEVYVCAgICAgICAgICAgIibP+vI6IixJRENfU1RBVElDLDE1LDEyMywyMCw5ICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJsjn4eXw6C4uLiIsSURDX0JVVFRPTl9CUk9XU0VfUEFUSCwyMDYsMTIwLDQwLDEzCiAgICAKICAgIExURVhUICAgICAgICAgICAiJtLo7zoiLElEQ19TVEFUSUNfVFlQRSwxNSwxMzgsMjEsMTAKICAgIENPTUJPQk9YICAgICAgICBJRENfQ09NQk9fVFlQRSw0MSwxMzUsNzcsNjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICAKICAgIExURVhUICAgICAgICAgICAixfLo6uXyIOgg8eXw6OXtIO3u7OXwIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAogICAgCiAgICBQVVNIQlVUVE9OICAgICAgIuTu7/rr7ejy5evt6CDt4PHy8O7p6ugiLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE0NiwxMzYsMTAwLDEzCiAgICBDT05UUk9MICAgICAgICAgIs7y6vDo6SDu8iAm8/Hy8O7p8fLi7vLuOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTc0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIsjnJuHl8OguLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwyMDYsMTc2LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIsfg5ODpICbw+vft7joiLElEQ19SQURJT19BU1NJR04sIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE5NSw2OSwxMAoKICAgIExURVhUICAgICAgICAgICAiJsXy6Orl8joiLElEQ19TVEFUSUNfTEFCRUwsMzMsMjA4LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICImze7s5fA6IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiz+7q4Ofi4Okg9ODp6+7i5fLlLCDn4O/u9+Lg+egg8SDy7vfq4CIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMjn4e7wIO3gIOTw4Oni5fAgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIsjn4eXw5fLlIOfi8+ru4iDk8ODp4uXwIOrg8u4g8evu5ujy5SDu8uzl8urgIO3gIObl6+Dt6P8g7vIg4uDxIOTw4Oni5fAuIMzu5uUg5OAg5+Dh8ODt6PLlIOfi8+rgIOrg8u4g7eUg6Ofh5fDl8uUg7ejq4Or64iDk8ODp4uXwLiDI5+Ho8ODt5fLuIO3gIO/u4uX35SDu8iDl5OjtIOTw4Oni5fAg7eUg5SDv8OXv7vD69+jy5evt7i4gzO7m5SDk4CDt4PHy8O7o8uUg5PDg6eLl8OAg6uDy7iD58ODq7eXy5SDi+vD18yDt5ePuIPEg5OXx7ej/IOHz8u7tIO3gIOzo+Org8uAuIixJRENfU1RBVElDLDE1LDIwLDIyNyw1MAogICAgQ09OVFJPTCAgICAgICAgICLT8fLw7unx8uLgIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw3MCwxNDAsMTIwCiAgICBQVVNIQlVUVE9OCSAgICAiyu7t8vDu6+XtIO/g7eXrIixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxNzAsNzAsNjksMTQKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdFNvdW5kICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUCSAgICAi1eDw5PPl8O3uIPPx6u7w5e3o5TogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgItHu9PLz5fDt4CDl7PPr4Pbo/yIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIzMCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgwvrt+OXtIOLo5CAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAi0uXs4DoiLElEQ19TVEFUSUMsMTUsMTYsMjMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIsjt8fLg6+jw4Okg8uXs4C4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDM4LDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgItbi//I6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDU0LDIzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNjIsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLQ4Ofs5fA6IixJRENfVEhFTUVfU0laRVRFWFQsMTUsODAsMjMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDE1LDg4LDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIEdST1VQQk9YICAgICAgICAiIM/g7+roICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIsLw+ufq4CDq+uw6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDU1LDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw3MCwxOTUsMTQwLDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiyOfh7vAiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1dJTkVfVkVSU0lPTiAgICAgICAgIkNWUyIKICAgIElEU19UQUJfQVBQTElDQVRJT05TICAgICLP8Ojr7ubl7ej/IgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIsHo4evo7vLl6ugiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAi0/Hy8O7p8fLi4CIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICLI5+Hl8OXy5SBVbml4IOTo8OXq8u7w6P8iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAi0erw6Okg5O7v+uvt6PLl6+3o8uUiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiz+7q4OboIOTu7/rr7ejy5evt6PLlIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIijh5ecg8uXs4CkiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAiw/Dg9Ojq4CIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAiyO3y5ePw4Pbo/yIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICLH4vPqIgogICAgSURTX1RBQl9BQk9VVCAgICAgICAgICAgIs7y7e7x7e4iCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAizeDx8vDu6eroIO3gIFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAizeDx8vDu6eroIO3gIFdpbmUg5+AgJXMiCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAi1ODp6+7i5SDxIPLl7OgiCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiyOfh5fDl8uUg9ODp6yDxIPLl7OAiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAizf/s4CDt4PHy8O7l7SDn4vPq7uIg5PDg6eLl8C5cblxux+Ag4uDxIOHl+OUg6Ofh8ODtIOTw4Oni5fAg7+4g7+7k8ODn4ejw4O3lLlxuzO7m5SDk4CDj7iDo5+/u6+fi4PLlIOjr6CDk4CDo5+Hl8OXy5SDk8PPjLlxuXG7S8P/h4uAg5OAg+fDg6u3l8uUg7eAgz+7y4vrw5OgsIOfgIOTgIOLr5eflIOIg8ejr4CDo5+Hu8OAuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIs/g7+rgIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIsLw+ufq4CDq+uwiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICLP8O7s/+3g8uAg7eAg8OXk4CDt4CDn4PDl5uTg7eUg7eUg5SDv8OXv7vD69+jy5evt4C4g0ejj8/Dt6CDr6CDx8uUsIPflIOjx6uDy5SDk4CDt4O/w4OLo8uUg8u7i4D8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiwu3o7ODt6OU6IPHo8fLl7O3gIOHo4evo7vLl6uAiCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAi8e7h8fLi5e3gIgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgIuLj8ODk5e3gIgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgIvHu4fHy4uXt4Cwg4uPw4OTl7eAiCiAgICBJRFNfRExMX0JVSUxUSU5fTkFUSVZFICAi4uPw4OTl7eAsIPHu4fHy4uXt4CIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICLn4OHw4O3l7eAiCkVORAo=