LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogVHVya2lzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfVFVSS0lTSCwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiWWFw/WxhbmT9ciIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCiAgICBHUk9VUEJPWCAgICAgICAgIiBXaW5kb3dzIFJlZ2lzdHJhdGlvbiBJbmZvcm1hdGlvbiAiLCBJRENfU1RBVElDLCAxNSwgMTEwLCAyMzAsIDU1CiAgICBMVEVYVCAgICAgICAgICAgIk93bmVyOiIsIElEQ19TVEFUSUMsIDIyLCAxMjYsIDQwLCAyMAogICAgTFRFWFQgICAgICAgICAgICJPcmdhbml6YXRpb246IiwgSURDX1NUQVRJQywgMjIsIDE0MCwgNTAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PV05FUiwgNzUsIDEyNiwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PUkcsIDc1LCAxNDAsIDE2MCwgMTMsIEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUApFTkQKCklERF9BUFBDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFV5Z3VsYW1hIEF5YXJsYXL9ICIsSURDX1NUQVRJQywgOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiV2luZSBoZXIgdXlndWxhbWEgaedpbiBkZfBp/mlrIFdpbmRvd3Mgc/xy/G1sZXJpbmkgdGFrbGl0IGVkZWJpbGlyLiBCdSBzZWttZSBLaXRhcGz9a2xhciB2ZSBHcmFmaWsgc2VrbWVsZXJpIGlsZSBiYfBsYW50/Wz9IG9sdXAgYnUgc2VrbWVsZXJkZSBkZSBzaXN0ZW0g52Fw/W5kYWtpIHZleWEgdXlndWxhbWF5YSD2emVsIGF5YXJsYXL9IHlhcG1hbv16YSBpemluIHZlcmlyLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiVXlndWxhbWFsYXIiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAiVXlndWxhbWEgJkVrbGUuLi4iLElEQ19BUFBfQUREQVBQLCA5MCwyMDQsNzUsMTQKICAgIFBVU0hCVVRUT04JICAgICJVeWd1bGFtYSAmS2FsZP1yIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICImV2luZG93cyBT/HL8bfw6IixJRENfU1RBVElDLDE3LDIyNiw1OCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1dJTlZFUiw4MywyMjQsMTYzLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCAgICAKRU5ECgpJRERfR1JBUEhDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICIgUGVuY2VyZSBheWFybGFy/SAiLElEQ19TVEFUSUMsOCw0LDI0NCw4NAogICAgQ09OVFJPTCAgICAgIkRpcmVjdFggdXlndWxhbWFsYXL9bv1uIGZhcmV5aSBwZW5jZXJlIGnnaW5lIGtpbGl0bGVtZWxlcmluZSBpemluIHZlciIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwyMCwyMzAsOAogICAgQ09OVFJPTCAgICAgIkFsbG93IHRoZSB3aW5kb3cgbWFuYWdlciB0byAmZGVjb3JhdGUgdGhlIHdpbmRvd3MiLElEQ19FTkFCTEVfREVDT1JBVEVELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzIsMjMwLDgKICAgIENPTlRST0wgICAgICJQZW5jZXJlIHn2bmV0aWNpc2luaW4gcGVuY2VyZWxlcmkgefZuZXRtZXNpbmUgaXppbiB2ZXIiLElEQ19FTkFCTEVfTUFOQUdFRCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDQ0LDIzMCw4CiAgICBDT05UUk9MICAgICAiU2FuYWwgbWFzYfxzdPwga3VsbGFuIixJRENfRU5BQkxFX0RFU0tUT1AsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDU2LDIzMCw4CiAgICBMVEVYVCAgICAgICAiTWFzYfxzdPwgYvx5/Gts/PD8OiIsSURDX0RFU0tUT1BfU0laRSwxNSw3MCw0NCw4LFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAiWCIsSURDX0RFU0tUT1BfQlksMTA5LDcwLDgsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgSURDX0RFU0tUT1BfSEVJR0hULDExNyw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgIiBEaXJlY3QzRCAiLElEQ19TVEFUSUMsOCw5NSwyNDQsNDkKICAgIExURVhUICAgICAgICJWZXJ0ZXggU2hhZGVyIERlc3Rl8Gk6ICIsSURDX1NUQVRJQywxNSwxMTAsODAsMzIKICAgIENPTUJPQk9YICAgIElEQ19EM0RfVlNIQURFUl9NT0RFLDEwMCwxMDgsMTQ1LDcwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgIlBpeGVsIFNoYWRlcidhIGl6aW4gdmVyIChkb25hbv1tIGRlc3Rla2xpeW9yc2EpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEyNiwyMzAsMTAKCiAgICBHUk9VUEJPWCAgICAiIFNjcmVlbiAmUmVzb2x1dGlvbiAiLElEQ19TVEFUSUMsOCwxNTEsMjQ0LDkzCiAgICBDT05UUk9MICAgICAiIiwgSURDX1JFU19UUkFDS0JBUiwgIm1zY3Rsc190cmFja2JhcjMyIixXU19UQUJTVE9QLDEyLDE2MSwxODcsMTUKICAgIEVESVRURVhUICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMTYxLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwxNjMsMTAsOAogICAgTFRFWFQgICAgICAgIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB1c2luZyAxMCBwb2ludCBUYWhvbWEiLElEQ19SRVNfRk9OVF9QUkVWSUVXLDE1LDE4MSwyMzAsNTUKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBETEwg1m5jZWxpa2xlcmkgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIkRldmluZ2VuIEJh8Gz9IEtpdGFwbP1rbGFy/W4gaGVyIGJpcmkgeWVybGX+aWsgKFdpbmUgaWxlIGdlbGVuKSB2ZXlhIGRv8GFsIChXaW5kb3dzJ3RhbiBhbP1ubf3+IHZleWEgdXlndWxhbWEgdGFyYWb9bmRhbiBzYfBsYW5t/f4pIG9sYXJhayBiZWxpcnRpbGViaWxpci4iCiAgICAgICAgICAgICAgICAgICAgLElEQ19TVEFUSUMsMTYsMTYsMjIwLDMyCiAgICBMVEVYVCAgICAgICAgICAgIktpdGFwbP1rIGnnaW4geWVuaSD2bmNlbGlrOiIsSURDX1NUQVRJQywxNiw1OCwxMDAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJkVrbGUiLElEQ19ETExTX0FERERMTCwgMTY0LDY4LDgyLDEzLEJTX0RFRlBVU0hCVVRUT04gCiAgICBMVEVYVCAgICAgICAgICAgIlZhciBvbGFuIPZuY2VsaWtsZXI6IixJRENfU1RBVElDLDE2LDg2LDEwMCw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX0RMTFNfTElTVCwxNiw5NiwxNDAsMTQwLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19WU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIiZE/HplbmxlIixJRENfRExMU19FRElURExMLDE2NCw5Niw4MiwxNAogICAgUFVTSEJVVFRPTiAgICAgICImU2lsIixJRENfRExMU19SRU1PVkVETEwsMTY0LDExNCw4MiwxNCAKRU5ECgpJRERfTE9BRE9SREVSIERJQUxPRyBESVNDQVJEQUJMRSA4MCwgOTAsIDEyNSwgOTIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItZuY2VsaWsgRPx6ZW5sZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgWfxrbGVtZSBT/XJhc/0gIixJRENfU1RBVElDLDgsNCwxMTAsNjYKICAgIENPTlRST0wgICAgICAgICAiJlllcmxl/mlrIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkRv8GFsIChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAi1m5jZSBZZXImbGX+aWsgc29ucmEgRG/wYWwiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAi1m5jZSBEJm/wYWwgc29ucmEgWWVybGX+aWsiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCwxMDAsMTAKICAgIENPTlRST0wgICAgICAgICAiJkV0a2lzaXpsZf50aXIiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDEwMCwxMAogICAgREVGUFVTSEJVVFRPTiAgICJUYW1hbSIsSURPSyw4LDc0LDUzLDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIt1wdGFsIixJRENBTkNFTCw2NCw3NCw1MywxNCxXU19HUk9VUApFTkQKCklERF9EUklWRUNGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgU/xy/GP8IEX+bGX+dGlybWVzaSAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJkVrbGUuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZLYWxk/XIiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIk90b21hdGlrICZBbGf9bGEuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxODYsOTgsNjAsMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJllvbDoiLElEQ19TVEFUSUMsMTUsMTIzLDIwLDkgICAgCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw0MSwxMjAsMTYwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImR/Z6YXQuLi4iLElEQ19CVVRUT05fQlJPV1NFX1BBVEgsMjA2LDEyMCw0MCwxMwogICAgCiAgICBMVEVYVCAgICAgICAgICAgIiZU/HI6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgCiAgICBMVEVYVCAgICAgICAgICAgIkV0aWtldCB2ZSBzZXJpIG5vIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAogICAgCiAgICBQVVNIQlVUVE9OICAgICAgIkdlbGn+bWn+ICZTZedlbmVrbGVyIixJRENfQlVUVE9OX1NIT1dfSElERV9BRFZBTkNFRCwxODYsMTM2LDYwLDEzCiAgICBDT05UUk9MICAgICAgICAgIkF5Z/10dGFuIE90b21hdGlrIEEmbGf9bGE6IixJRENfUkFESU9fQVVUT0RFVEVDVCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTY2LDkzLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiR/YmemF0Li4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE3Niw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICImRWxsZSBBdGE6IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIiZFdGlrZXQ6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDYzLDIwNSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUyZlcmkgTm86IixJRENfU1RBVElDX1NFUklBTCwzMywyMjUsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9TRVJJQUwsNjMsMjIxLDc4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wgICAgICAgICAiTm9rdGF5bGEgYmH+bGF5YW4gZG9zeWFsYXL9IGf2c3RlciIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIFP8cvxj/CBTZedpbWkgIixJRENfU1RBVElDLDgsNCwyNDQsMTk1CiAgICBMVEVYVCAgICAgICAgICAgIt1zdGVkafBpbml6IHP8cvxj/G78biBrdXR1c3VudSBp/mFyZXRsZXllcmVrIGJpciBzZXMgc/xy/GP8c/wgc2XnaW4uIEhp52JpciBz/HL8Y/wgc2XnbWV5ZXJlayBzZXNpIGV0a2lzaXpsZf50aXJlYmlsaXJzaW5pei4gQmlyZGVuIGZhemxhIHP8cvxj/CBzZedpbWkg9m5lcmlsbWV6LiDcemVyaW5lIHNh8CB0/WtsYXlhcmFrIGJpciBz/HL8Y/x5/CB5YXD9bGFuZP1y/W4uIixJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJBeWf9dGxhciIsSURDX0FVRElPX1RSRUUsIlN5c1RyZWVWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsMTUsNTAsMTQwLDE0MCAKICAgIFBVU0hCVVRUT04gICAgICAiJlRlc3QgU291bmQiLElEQ19BVURJT19URVNULDE3MCw1MCw1OSwxNAogICAgUFVTSEJVVFRPTgkgICAgIkRlbmV0aW0gTWFzYXP9IixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxNzAsNzAsNTksMTQKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdFNvdW5kICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUICAgICAgICAgICAiRG9uYW79bSBI/XpsYW5k/XJtYXP9OiAiLElEQ19TVEFUSUMsMTUsMjE1LDkwLDEwCiAgICBDT01CT0JPWAkgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjEzLDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi1m50YW79bWz9INZybmVrbGVtZSBI/Xr9OiIsSURDX1NUQVRJQywxNSwyMzIsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfUkFURVMsOTAsMjMwLDQyLDc2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLWcm5layBCYf79bmEgQml0IFNhef1z/ToiLElEQ19TVEFUSUMsMTM3LDIzMiw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyMzAsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIlP8cvxj/CBUYWtsaWRpIixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjUwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBH9nL8bvxtICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICJUZW1hOiIsSURDX1NUQVRJQywxNSwxNiwxMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDEzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiVGVtYSBrdXIuLi4iLElEQ19USEVNRV9JTlNUQUxMLDE1MiwyMyw5MywxNAogICAgTFRFWFQgICAgICAgICAgICJSZW5rOiIsSURDX1RIRU1FX0NPTE9SVEVYVCwxNSw0MCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9DT0xPUkNPTUJPLDE1LDQ4LDExMiwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiQm95dXQ6IixJRENfVEhFTUVfU0laRVRFWFQsMTM1LDQwLDExMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1NJWkVDT01CTywxMzUsNDgsMTEwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJJdGVtOiIsSURDX1NUQVRJQywxNSw2NCwxMTIsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19TWVNQQVJBTV9DT01CTywxNSw3NCwxMTIsMTIwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUCiAgICBMVEVYVCAgICAgICAgICAgIkNvbG9yOiIsSURDX1NZU1BBUkFNX0NPTE9SX1RFWFQsMTM1LDY0LDI1LDgsV1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiIixJRENfU1lTUEFSQU1fQ09MT1IsMTM1LDc0LDI1LDEzLFdTX0RJU0FCTEVEIHwgQlNfT1dORVJEUkFXCiAgICBMVEVYVCAgICAgICAgICAgIlNpemU6IixJRENfU1lTUEFSQU1fU0laRV9URVhULDE2Niw2NCwzMCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICAgICAgSURDX1NZU1BBUkFNX1NJWkUsMTY2LDc0LDIzLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBDT05UUk9MICAgICAgICAgIiIsSURDX1NZU1BBUkFNX1NJWkVfVUQsVVBET1dOX0NMQVNTLFVEU19TRVRCVUREWUlOVCB8IFdTX0RJU0FCTEVELDE4Nyw3NCwxNSwxMwogICAgUFVTSEJVVFRPTiAgICAgICJGb250IixJRENfU1lTUEFSQU1fRk9OVCwyMDgsNzQsMzcsMTMsV1NfRElTQUJMRUQKICAgIEdST1VQQk9YICAgICAgICAiINZ6ZWwgS2xhc/ZybGVyICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIkhlZGVmIGRpemluOiIsSURDX0xJTktfU0ZQQVRILCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWHxXU19UQUJTVE9QfFdTX0RJU0FCTEVELDE1LDE5NSw1MCwxMwogICAgRURJVFRFWFQgICAgICAgICBJRENfRURJVF9TRlBBVEgsNjUsMTk1LDE0NSwxMyxFU19BVVRPSFNDUk9MTHxXU19UQUJTVE9QfFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIkf2emF0IixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19UQUJfQVBQTElDQVRJT05TICAgICJVeWd1bGFtYWxhciIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICJLaXRhcGz9a2xhciIKICAgIElEU19UQUJfRFJJVkVTICAgICAgICAgICJT/HL8Y/xsZXIiCiAgICBJRFNfQ0hPT1NFX1BBVEggICAgICAgICAiTPx0ZmVuIGhhcml0YWxhbmFjYWsgdW5peCBkaXppbmluaSBzZedpbi4iCiAgICBJRFNfSElERV9BRFZBTkNFRCAgICAgICAiVGVtZWwgQXlhcmxhciIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICJHZWxp/m1p/iBBeWFybGFyIgogICAgSURTX05PVEhFTUUgICAgICAgICAgICAgIihUZW1hIFlvaykiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAiR3JhZmlrIgogICAgSURTX1RBQl9ERVNLVE9QX0lOVEVHUkFUSU9OICJNYXNh/HN0/CBFbnRlZ3Jhc3lvbnUiCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiU2VzIgogICAgSURTX1RBQl9BQk9VVCAgICAgICAgICAgIkhha2v9bmRhIgogICAgSURTX1dJTkVDRkdfVElUTEUgICAgICAgIldpbmUgeWFw/WxhbmT9cm1hc/0iCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiJXMgaedpbiBXaW5lIHlhcP1sYW5k/XJtYXP9IgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIlRlbWEgZG9zeWFsYXL9IgogICAgSURTX1RIRU1FRklMRV9TRUxFQ1QgICAgIlRlbWEgZG9zeWFz/SBzZedpbiIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICJTaXN0ZW0ga2F5ZP1uZGEgYmVsaXJsZW5taf4gYmlyIHNlcyBz/HL8Y/xz/CB5b2suXG5cbtZuZXJpbGVuIGJpciBz/HL8Y/wgc2l6aW4gaedpbiBzZedpbGRpLlxuQnUgc/xy/GP8efwga3VsbGFuYWJpbGlyIHZleWEgdmFyc2EgYmH+a2EgYmlyIHP8cvxj/Hn8IHNl52ViaWxpcnNpbml6LlxuXG5TZedpbWluIGV0a2lsaSBvbGFiaWxtZXNpIGnnaW4gVXlndWxhJ3n9IHT9a2xhbWFs/XP9bv16LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJLbGFz9nIiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiSGVkZWYgRGl6aW4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJCdSBraXRhcGz98P1uIHn8a2xlbWUgc/1yYXP9bv1uIGRl8Gn+dGlyaWxtZXNpIPZuZXJpbG1lei5cbkJ1bnUgeWFwbWFrIGlzdGVkafBpbml6ZGVuIGVtaW4gbWlzaW5pej8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiVXlhcv06IHNpc3RlbSBraXRhcGz98P0iCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAiZG/wYWwiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAieWVybGX+aWsiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiZG/wYWwsIHllcmxl/mlrIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgInllcmxl/mlrLCBkb/BhbCIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJkZXZyZSBk/f79IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgItZudGFu/W1s/SBBeWFybGFyIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUgUHJvZ3JhbWxhcv0gKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICJHZW5lbCBheWFybGFy/SBrdWxsYW4iCiAgICBJRFNfU0VMRUNUX0VYRUNVVEFCTEUgICAix2Fs/f50/XL9bGFiaWxpciBiaXIgZG9zeWEgc2XnaW4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAiRG9uYW79bSIKICAgIElEU19TSEFERVJfTU9ERV9OT05FICAgICAgICAiSGnnYmlyaSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RSSVZFX1VOS05PV04gICAgICAgICAgICJPdG9tYXRpayBBbGf9bGEiCiAgICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIlllcmVsIHNhYml0IGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIkHwIHBheWxh/v1t/SIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAiRGlza2V0IHP8cvxj/CIKICAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICAgSURTX0RSSVZFX0xFVFRFUlNfRVhDRUVERUQgICJEYWhhIGZhemxhIHP8cvxj/CBla2xleWVtZXpzaW5pei5cblxuSGVyIHP8cvxj/G78biBBLVogYXJhbP3w/W5kYSBiaXIgaGFyZmkgb2xtYWz9ZP1yLiBEb2xhef1z/XlsYSAyNidkYW4gZmF6bGEgdGFu/W1sYXlhbWF6c/1u/XouIgogICAgSURTX1NZU1RFTV9EUklWRV9MQUJFTCAgICAgICJTaXN0ZW0gc/xy/GP8c/wiCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIkMgc/xy/GP8c/xu/CBzaWxtZWsgaXN0ZWRp8GluaXpkZW4gZW1pbiBtaXNpbml6P1xuXG7Hb/B1IFdpbmRvd3MgdXlndWxhbWFz/SBDIHP8cvxj/HP8bvxuIHZhciBvbG1hc/1u/SBiZWtsZXIgdmUgeW9rc2EgaXN0ZW5tZXllbiBiaXIg/mVraWxkZSBzb25sYW79ci4gRfBlciBkZXZhbSBlZGVyc2VuaXosIGRhaGEgc29ucmEgeWVuaWRlbiBvbHX+dHVybWF5/SB1bnV0bWF5/W4hIgogICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICJIYXJmIgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICJT/HL8Y/wgRf5sZW1lIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJDIHP8cvxj/G78eiB5b2suIEJ1IGJla2xlbmVuIGJpciBkdXJ1bSBkZfBpbC5cblxuQmlyIHRhbmUgb2x1/nR1cm1hayBp52luIFP8cvxj/GxlciBzZWttZXNpbmRlbiBFa2xlJ3lpIHT9a2xhbWF5/SB1bnV0bWF5/W4hXG4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BQ0NFTF9GVUxMICAgICAgICAgICAgICAiVGFtIgogICAgSURTX0FDQ0VMX1NUQU5EQVJEICAgICAgICAgICJTdGFuZGFydCIKICAgIElEU19BQ0NFTF9CQVNJQyAgICAgICAgICAgICAiVGVtZWwiCiAgICBJRFNfQUNDRUxfRU1VTEFUSU9OICAgICAgICAgIlRha2xpdCIKICAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiRXNvdW5EIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9PU1MgICAgICAgICAgICAgICJPU1MgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIk5BUyBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfQVVESU9JTyAgICAgICAgICAiQXVkaW8gSU8gKFNvbGFyaXMpIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8gU/xy/GP8c/wiCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIiVzIGHn/WxhbWFk/SEiCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIlNlcyBT/HL8Y/xsZXJpIgogICAgSURTX0RFVklDRVNfV0FWRU9VVCAgICAgICAgICJEYWxnYSDH/Wv9/iBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIkRhbGdhIEdpcmn+IEF5Z/10bGFy/SIKICAgIElEU19ERVZJQ0VTX01JRElPVVQgICAgICAgICAiTUlESSDH/Wv9/iBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREkgR2lyaf4gQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfQVVYICAgICAgICAgICAgICJBdXggQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJNaXhlciBBeWf9dGxhcv0iCiAgICBJRFNfVU5BVkFJTEFCTEVfRFJJVkVSICAgICAgIlNpc3RlbSBrYXlk/W5kYSBrdWxsYW79bGFiaWxpciBvbG1heWFuIGJpciBz/HL8Y/wgYnVsdW5kdSFcblxuXCIlc1wiIGdpcmn+aSBzaXN0ZW0ga2F5ZP1uZGFuIHNpbGluc2luIG1pPyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiVXlhcv0iCkVORAo=