LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogS29yZWFuIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IDIwMDIgSmFjbyBHcmVlZmYKICogQ29weXJpZ2h0IDIwMDMgRGltaXRyaWUgTy4gUGF1bgogKiBDb3B5cmlnaHQgMjAwMy0yMDA0IE1pa2UgSGVhcm4KICogQ29weXJpZ2h0IDIwMDUsMjAwNiwyMDA3IFl1blNvbmcgSHdhbmcKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqCiAqLwoKTEFOR1VBR0UgTEFOR19LT1JFQU4sIFNVQkxBTkdfREVGQVVMVAoKSURSX1dJTkVDRkcgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIiIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIryzwaQiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKICAgIExURVhUICAgICAgICAgICAiwMwgtvPAzLrqt6+4rrTCIMDawK8gvNLHwcauv/6+7sDUtM+02S4gtOe9xcC6IMDawK8gvNLHwcauv/6+7iDA57TcKEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbim/obytILi4tecgR05VIExHUEwoTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UpIL7Gt6G/obytIMDMIMfBt86x17elwLsgwOe56Mb3ILbHtMIgvPbBpMfSILz2IMDWvcC0z7TZLiC288DMvL69usDHILn2wPzAuiAyLjEgtse0wiAovLHFw8D7wLi3zikgsdcgwMzIxCC59sD8wLsgtfu4o7jpILXLtM+02S4iLAogICAgICAgICAgICAgICAgICAgIElEQ19TVEFUSUMsMTE5LDQ0LDEyNCw3MgpFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMfBt86x17elILyzwaQgIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lwLogsKKwosDHIMfBt86x17elv6EgtOvH2LytILTZuKUgufbA/MDHIMCptbW/7MHuuKYgyOSzu7O+ILz2IMDWvcC0z7TZLiDAzCDFx8C6ILbzwMy66revuK4gxccsILHXt6HHyCDFx7D6IL+ssOG1x77uIMDWvu68rSwgwMy16SDFx8C7IMDMv+vHz7+pIL3DvbrF2yDA/MO8ILbHtMIgx8G3zrHXt6W6sLfOILyzwaTAzCCwobTJx9W0z7TZLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAix8G3zrHXt6UiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OICAgICAgIsfBt86x17elIMPfsKEoJkEpLi4uIixJRENfQVBQX0FEREFQUCwgOTAsMjA0LDc1LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsfBt86x17elIMGmsMUoJlIpIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICLAqbW1v+zB7iC59sGvKCZXKToiLElEQ19TVEFUSUMsMTYsMjI3LDc1LDE0CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgw6IgvLPBpCAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIri2v+y9uiDEv7ytuKYgRGlyZWN0WCDHwbfOsde3pSDDor7Iv6EgwOK+xrXOseIoJk0pIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiw6Kw/LiuwNqwoSBXaW5lw6LAuyCy2bnMtbW3zyDH1CgmRCkiLElEQ19FTkFCTEVfREVDT1JBVEVELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzIsMjMwLDgKICAgIENPTlRST0wgICAgICLDorD8uK7A2rChIFdpbmXDosC7ILD8uK7Hz7W1t88gx9QoJlcpIixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NCwyMzAsOAogICAgQ09OVFJPTCAgICAgIrChu/MgtaW9usWpxb4gyOSzu7O7seIoJkQpIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAitaW9usWpxb4gxamx4igmUyk6IixJRENfREVTS1RPUF9TSVpFLDE1LDcwLDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDksNzAsOCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9XSURUSCw2NCw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAiILTZwMy3usauIDNEICIsSURDX1NUQVRJQyw4LDk1LDI0NCw0OQogICAgTFRFWFQgICAgICAgIrn2xdi9uiC9psDMtPUgwfa/+CgmVik6ICIsSURDX1NUQVRJQywxNSwxMTAsODAsMzIKICAgIENPTUJPQk9YICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxMDgsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgIsfPteW//r7uv6G8rSDB9r/4x9IgsOa/7Cwgx8i8vyC9psDMtPUgx+O/6ygmUCkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTI2LDIzMCwxMAoKICAgIEdST1VQQk9YICAgICIgyK246SDH2LvztbUoJlIpICIsSURDX1NUQVRJQyw4LDE1MSwyNDQsOTMKICAgIENPTlRST0wgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMTYxLDE4NywxNQogICAgRURJVFRFWFQgICAgSURDX1JFU19EUElFRElULDIwNCwxNjEsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICJkcGkiLElEQ19TVEFUSUMsMjM1LDE2MywxMCw4CiAgICBMVEVYVCAgICAgICAiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHVzaW5nIDEwIHBvaW50IFRhaG9tYSggxbjIo7i2IDEwxvfAzsauILHbssPAuyC757/rx9Egu/nHwyDF2L26xq7A1LTPtNkiLElEQ19SRVNfRk9OVF9QUkVWSUVXLDE1LDE4MSwyMzAsNTUKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwgv8C59rbzwMy15SAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAitb/A+yC4tcWpILbzwMy66revuK60wiCws7qwwPvAuLfOILO7wOUoV2luZb+hIMDHx9ggwaaw+CnAzLOqILPXwMzGvLrqKMCptbW/7MHus6ogx8G3zrHXt6W/oSDAx8fYIMGmsPgpwLi3ziDB9sGktcm89iDA1r3AtM+02S4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIrv1t84gv8C59rbzwMy15cfSILbzwMy66revuK4oJk4pOiIsSURDX1NUQVRJQywxNiw1OCwxMDgsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAitPXHz7HiKCZBKSIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAix/bA5yC/wLn2tvPAzLXlILjxt88oJk8pOiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICKw7cShseIoJkUpIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICLB9r/sseIoJlIpIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDExMCwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIr/Aufa288DMteUgvPbBpCIKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgt8615SC8+LytICIsSURDX1NUQVRJQyw4LDQsOTQsNjYKICAgIENPTlRST0wgICAgICAgICAis7vA5SgmQikoV2luZSkiLElEQ19SQURfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfR1JPVVAsMTYsMTQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuooJk4pKFdpbikiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis7vA5Swgs9fAzMa8uuooJkwpIixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAis9fAzMa8uuosILO7wOUoJlYpIixJRENfUkFEX05BVElWRV9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNDQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiu+e/68fPwfYgvsrAvSgmRCkiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDc1LDEwCiAgICBERUZQVVNIQlVUVE9OICAgIsiuwM4iLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLD67zSIixJRENBTkNFTCw1Nyw3NCw0NSwxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA5LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgteW288DMuuogv6yw4SgmTSkgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIrjxt8+6uLHiIixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIsPfsKEoJkEpLi4uIixJRENfQlVUVE9OX0FERCwxNSw5OCwzNywxNAogICAgUFVTSEJVVFRPTiAgICAgICLBprDFKCZSKSIsSURDX0JVVFRPTl9SRU1PVkUsNTYsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiwNq1vyDDo7HiKCZEKS4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5NSw5OCw1MSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICKw5rfOKCZQKToiLElEQ19TVEFUSUMsMTUsMTIzLDMwLDEwICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw1MCwxMjAsMTQwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLDo77Gurix4igmQikuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMTk1LDEyMCw1MSwxMwogICAgCiAgICBMVEVYVCAgICAgICAgICAgIsG+t/koJlQpOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwzMCwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDUwLDEzNSw3MCw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICK287qnsPogvcO4rr7zILn4yKMiLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCiAgICAKICAgIFBVU0hCVVRUT04gICAgICAiw9+wob/JvMcgurjAzLHiKCZBKSIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTc1LDEzNiw3MSwxMwogICAgQ09OVFJPTCAgICAgICAgICLA5cSht866zsXNIMDatb+wy8PiKCZGKToiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsOTMsMTAKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9ERVZJQ0UsMjcsMTc2LDE2MywxMyxFU19BVVRPSFNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICLDo77Gurix4igmVykuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwxOTUsMTc2LDUxLDEzCiAgICBDT05UUk9MICAgICAgICAgIrz2tb/AuLfOIMH2waQoJk0pOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICK287qnKCZMKToiLElEQ19TVEFUSUNfTEFCRUwsMjcsMjA4LDM1LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfTEFCRUwsNjMsMjA1LDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICK9w7iuvvMoJkUpOiIsSURDX1NUQVRJQ19TRVJJQUwsMjcsMjI1LDM1LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIrz7seggxsTAzyguwLi3ziC9w8Dbx8+0wiDGxMDPKSC6uL+pwdax4igmRCkiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDksICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiC15bbzwMy59iC8scXDICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE5NQogICAgTFRFWFQgICAgICAgICAgICK/+MfPtMIgteW288DMufbAxyC52r26uKYgw7zFqcfPv6kgu+e/7rXlILXltvPAzLn2uKYgvLHFw8fVtM+02S4gvu62siC15bbzwMy59rW1ILyxxcPHz8H2IL7KwLi46SC757/uteWwoSDH2MGmtcu0z7TZLiC/qbevILXltvPAzLn2uKYgvLHFw8fPtMIgsM3AuiDD38O1x8/B9iC+yr3AtM+02S4gteW288DMufYgwKe/obytILi2v+y9uiC/wLilwsogufbGsCDFrLivx8+/qSC15bbzwMy59rimILyzwaTH1bTPtNkuIixJRENfU1RBVElDLDE1LDIwLDIyNywzMwogICAgQ09OVFJPTCAgICAgICAgICLA5cShIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1NiwxNDAsMTM0CiAgICBQVVNIQlVUVE9OICAgICAgIrzSuK4gxde9usauKCZUKSIsSURDX0FVRElPX1RFU1QsMTcwLDU3LDU5LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIsGmvu7GxygmQykiLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw3Nyw1OSwxNAogICAgR1JPVVBCT1ggICAgICAgICIgtNnAzLe6xq4gu+e/7rXlICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUICAgICAgICAgICAix8+15b/+vu4gsKG80ygmSCk6ICIsSURDX1NUQVRJQywxNSwyMTUsOTAsMTAKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0hXX0FDQ0VMLDEwMCwyMTMsMTQ2LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICKx4rq7ILv5x8Mvw8ooJlMpOiIsSURDX1NUQVRJQywxNSwyMzIsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfUkFURVMsOTAsMjMwLDQyLDc2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICKx4rq7ILrxxq4vu/nHwygmQik6IixJRENfU1RBVElDLDEzNywyMzIsODAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfQklUUywyMjAsMjMwLDI2LDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgICAgICK15bbzwMy59iDI5LO7s7ux4igmRSkiLElEQ19EU09VTkRfRFJWX0VNVUwsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyNTAsMjMwLDEwCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOSwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIL/csPwgIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgIsXXuLYoJlQpOiIsSURDX1NUQVRJQywxNSwxNiwxMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDEzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAixde4tiC8s8ShKCZJKS4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDIzLDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIrv2u/MoJkMpOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw0MCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDQ4LDExMiwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAixamx4igmUyk6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICK48bfPKCZFKToiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICK79rvzKCZPKToiLElEQ19TWVNQQVJBTV9DT0xPUl9URVhULDEzNSw2NCwyNSw4LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiIsSURDX1NZU1BBUkFNX0NPTE9SLDEzNSw3NCwyNSwxMyxXU19ESVNBQkxFRCB8IEJTX09XTkVSRFJBVwogICAgTFRFWFQgICAgICAgICAgICLFqbHiKCZaKToiLElEQ19TWVNQQVJBTV9TSVpFX1RFWFQsMTY2LDY0LDMwLDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfU1lTUEFSQU1fU0laRSwxNjYsNzQsMjMsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiIixJRENfU1lTUEFSQU1fU0laRV9VRCxVUERPV05fQ0xBU1MsVURTX1NFVEJVRERZSU5UIHwgV1NfRElTQUJMRUQsMTg3LDc0LDE1LDEzCiAgICBQVVNIQlVUVE9OICAgICAgIrHbssMoJkYpIixJRENfU1lTUEFSQU1fRk9OVCwyMDgsNzQsMzcsMTMsV1NfRElTQUJMRUQKICAgIEdST1VQQk9YICAgICAgICAiIL2pIMb6tPUoJkgpICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIrjxt8+6uLHiIixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIr+ssOEgwKfEoSgmTCk6IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDU1LDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw3NSwxOTUsMTM1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiw6Ox4igmUikiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIsfBt86x17elIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIrbzwMy66revuK4iCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiteW288DMuuoiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiwK+00L26ILjxwPsgxvq09bimILyxxcPHz73KvcO/wC4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiw9+wob/JvMcgvPux4rHiKCZBKSIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLD37Chv8m8xyC6uMDMseIoJkEpIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIijF17i2IL74wL0pIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIrHXt6HHyCIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAitaW9usWpxb4gvLPBpCIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICK/wLXwv8AiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiwaS6uCIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lILyzwaQiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiJXO4piDAp8fRIFdpbmUgvLPBpCIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICLF17i2IMbEwM8iCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAixde4tiDGxMDPILyxxcMiCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAix/bA5yC3ucH2vbrGrriuv6Egv8C18L/AILXltvPAzLn2sKEgwfbBpLXHvu4gwNbB9iC+yr3AtM+02S5cblxuw9/DtSC15bbzwMy59rChILyxxcO++r3AtM+02S5cbsDMILXltvPAzLn2uKYgu+e/68fPsMWzqiCwobTJx9EgtNm4pSC15bbzwMy59rimILyxxcPH0iC89iDA1r3AtM+02S5cblxuvLHFwyC758fXwMwgyL+w+rimILOqxbizu7HiIMCnx9i8rbTCIMD7v+sgufbGsMC7ILStt6++3yDH1bTPtNkuIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIr2pIMb6tPUiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiv6yw4SDAp8ShIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRExMX1dBUk5JTkcgICAgICAgICAiwMwgtvPAzLrqt6+4rsDHILfOteUgvPi8rbimILnZstm0wiCwzcC7IMPfw7XHz8H2IL7KvcC0z7TZLi5cbsGkuLu3ziC52bLZvcOw2r3AtM+x7j8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAisOaw7TogvcO9usXbILbzwMy66revuK4iCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAis9fAzMa8uuoiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAis7vA5SIKICAgIElEU19ETExfTkFUSVZFX0JVSUxUSU4gICKz18DMxry66iwgs7vA5SIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICKzu8DlLCCz18DMxry66iIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICK757/rx8/B9iC+ysC9IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgIrHiursgvLPBpCIKICAgIElEU19FWEVDVVRBQkxFX0ZJTFRFUiAgICJXaW5lIMfBt86x17elICgqLmV4ZSwqLmV4ZS5zbylcMCouZXhlOyouZXhlLnNvXDAiCiAgICBJRFNfVVNFX0dMT0JBTF9TRVRUSU5HUyAiwPzDvCC8s8GkILvnv+siCiAgICBJRFNfU0VMRUNUX0VYRUNVVEFCTEUgICAivcfH4CDGxMDPILyxxcMiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAix8+15b/+vu4iCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIr74wL0iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgSURTX0RSSVZFX1VOS05PV04gICAgICAgICAgICLA2rW/wLi3ziDDo7HiIgogICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIr+ssOG1yCDHz7XlILXwvbrFqSIKICAgSURTX0RSSVZFX1JFTU9URSAgICAgICAgICAgICKz18auv/bFqSCw+MCvIgogICBJRFNfRFJJVkVfUkVNT1ZBQkxFICAgICAgICAgIsfDt87HxyC18L26xakiCiAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICBJRFNfRFJJVkVfTEVUVEVSU19FWENFRURFRCAgIrTnvcXAuiC09SDAzLvzILXltvPAzLrquKYgw9+wocfSILz2IL74vcC0z7TZLlxuXG6woiC15bbzwMy66rTCILndteW9wyBBflqx7sH2wMcgua7A2rimILChwf20z7TZLCCx17ehvK0gtOe9xcC6IDI2sLO6uLTZILT1ILi5wMwgw9+wocfSILz2IL74vcC0z7TZIgogICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIr3DvbrF2yC15bbzwMy66iIKICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICK0573FwLogx8+15SC15bbzwMy66iAgQ7imIMH2v+yx4rimIL/4x9W0z7HuP1xuXG6067rOutDAxyDAqbW1v+wgx8G3zrHXt6XAuiBDteW288DMuuqwoSDA1rTZsO0gv7m788fPsO0sICC++MC4uOkgtNm/7rXJsM3A1LTPtNkuILi4vuAgtOe9xcDMILDovNMgwfjH4MfPseK4piC/+MfRtNm46SC53bXlvcMgtNm9wyC4uLXlvcq9w7/AISIKICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICK5rsDaIgogICBJRFNfQ09MX0RSSVZFTUFQUElORyAgICAgICAgIrXltvPAzLrqIMfStOciCiAgIElEU19OT19EUklWRV9DICAgICAgICAgICAgICAitOe9xcC6ICBDteW288DMuuq4piCwocH2sO0gwNbB9iC+yr3AtM+02S4gwMywzcC6IMHBwLogwM/AzCC+xrTVtM+02S5cblxuteW288DMuuogxce/obytIFvD37ChXbimIMWsuK/H2LytILi4teW0wiCwzcC7IMDYwfYguLa9yr3Dv8AhXG4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgSURTX0FDQ0VMX0ZVTEwgICAgICAgICAgICAgICLA/MO8IgogICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIselwdgiCiAgIElEU19BQ0NFTF9CQVNJQyAgICAgICAgICAgICAiseK6uyIKICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICK+1rnEt7nAzLzHIgogICBJRFNfRFJJVkVSX0FMU0EgICAgICAgICAgICAgIkFMU0EgteW288DMufYiCiAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiRXNvdW5EILXltvPAzLn2IgogICBJRFNfRFJJVkVSX09TUyAgICAgICAgICAgICAgIk9TUyC15bbzwMy59iIKICAgSURTX0RSSVZFUl9KQUNLICAgICAgICAgICAgICJKQUNLILXltvPAzLn2IgogICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIk5BUyC15bbzwMy59iIKICAgSURTX0RSSVZFUl9BVURJT0lPICAgICAgICAgICJBdWRpbyBJTyAoU29sYXJpcykgteW288DMufYiCiAgIElEU19EUklWRVJfQ09SRUFVRElPICAgICAgICAiQ29yZUF1ZGlvILXltvPAzLn2IgogICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIiVzuKYgv60gvPYgvvi9wLTPtNkhIgogICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIrvnv+615SC15bbzwMy59iIKICAgSURTX0RFVklDRVNfV0FWRU9VVCAgICAgICAgICJXYXZlIMPit8IgwOXEoSIKICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICJXYXZlIMDUt8IgwOXEoSIKICAgSURTX0RFVklDRVNfTUlESU9VVCAgICAgICAgICJNSURJIMPit8IgwOXEoSIKICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICJNSURJIMDUt8IgwOXEoSIKICAgSURTX0RFVklDRVNfQVVYICAgICAgICAgICAgICJBdXggwOXEoSIKICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJNaXhlciDA5cShIgogICBJRFNfVU5BVkFJTEFCTEVfRFJJVkVSICAgICAgIre5wfa9usauuK6/obytILChtMnHz8H2IL7KwLogteW288DMufawoSC537Dftce++r3AtM+02SFcblxuICVzuKYgt7nB9r26xq64rr+hvK0gwfa/7LDavcC0z7HuPyIKICAgSURTX1dBUk5JTkcgICAgICAgICAgICAgICAgICKw5rDtIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OICAgICAgICAgICAgIsTBxq630SC56LDmIgogICBJRENfU1lTUEFSQU1TX0JVVFRPTl9URVhUICAgICAgICLEwcaut9Egua7A2iIKICAgSURDX1NZU1BBUkFNU19ERVNLVE9QICAgICAgICAgICAiudnFwcituOkiCiAgIElEQ19TWVNQQVJBTVNfTUVOVSAgICAgICAgICAgICAgIrjetLogueiw5iIKICAgSURDX1NZU1BBUkFNU19NRU5VX1RFWFQgICAgICAgICAiuN60uiC5rsDaIgogICBJRENfU1lTUEFSQU1TX1NDUk9MTEJBUiAgICAgICAgICK48bfPudkiCiAgIElEQ19TWVNQQVJBTVNfU0VMRUNUSU9OICAgICAgICAgIryxxcO1yCC56LDmIgogICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTl9URVhUICAgICK8scXDtcggua7A2iIKICAgSURDX1NZU1BBUkFNU19UT09MVElQICAgICAgICAgICAitbWxuMbBILnosOYiCiAgIElEQ19TWVNQQVJBTVNfVE9PTFRJUF9URVhUICAgICAgIrW1sbjGwSC5rsDaIgogICBJRENfU1lTUEFSQU1TX1dJTkRPVyAgICAgICAgICAgICLDoiC56LDmIgogICBJRENfU1lTUEFSQU1TX1dJTkRPV19URVhUICAgICAgICLDoiC5rsDaIgogICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRSAgICAgICLIsLy6tcggwaa48SC4t7TrIgogICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRV9URVhUICLIsLy6tcggwaa48SC5rsDaIgogICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFICAgICK68ciwvLq1yCDBprjxILi3tOsiCiAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiuvHIsLy6tcggwaa48SC5rsDaIgogICBJRENfU1lTUEFSQU1TX01TR0JPWF9URVhUICAgICAgICK43ry8wfYgu/PA2iDF2L26xq4iCiAgIElEQ19TWVNQQVJBTVNfQVBQV09SS1NQQUNFICAgICAgIr7ux8O4rsTJwMy8xyDA2773sPiwoyIKICAgSURDX1NZU1BBUkFNU19XSU5ET1dfRlJBTUUgICAgICAiw6Igx8G3ucDTIgogICBJRENfU1lTUEFSQU1TX0FDVElWRV9CT1JERVIgICAgICLIsLy6yK21yCDDosayIgogICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX0JPUkRFUiAgICK68SDIsLy6yK21yCDDosayIgogICBJRENfU1lTUEFSQU1TX0JVVFRPTl9TSEFET1cgICAgICLEwcaut9EgsdfH1MH2IgogICBJRENfU1lTUEFSQU1TX0dSQVlfVEVYVCAgICAgICAgICLIuLv2ILmuwNoiCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX0hJTElHSFQgICAgIsTBxq630SDHz8DMtvPAzMauIgogICBJRENfU1lTUEFSQU1TX0JVVFRPTl9EQVJLX1NIQURPVyAixMHGrrfRIL7utc6/7iCx17iywNoiCiAgIElEQ19TWVNQQVJBTVNfQlVUVE9OX0xJR0hUICAgICAgIsTBxq630SC54MC9IgogICBJRENfU1lTUEFSQU1TX0JVVFRPTl9BTFRFUk5BVEUgICLEwcaut9Egudmy8LanILnosOYiCiAgIElEQ19TWVNQQVJBTVNfSE9UX1RSQUNLSU5HICAgICAgIsfWIMaut6K1yCC+xsDMxdsiCiAgIElEQ19TWVNQQVJBTVNfQUNUSVZFX1RJVExFX0dSQURJRU5UICLIsLy6yK21yCAgwaa48SC52SAgu/ax8iC6r8itIgogICBJRENfU1lTUEFSQU1TX0lOQUNUSVZFX1RJVExFX0dSQURJRU5UICK68ciwvLrIrbXIIMGmuPG52SC79rHyILqvyK0iCiAgIElEQ19TWVNQQVJBTVNfTUVOVV9ISUxJR0hUICAgICAgIrjetLogx8/AzLbzwMzGriIKICAgSURDX1NZU1BBUkFNU19NRU5VQkFSICAgICAgICAgICAiuN60urnZIgpFTkQK