LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIFdpbmVDZmcgcmVzb3VyY2VzCiAqIEVuZ2xpc2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwMiBKYWNvIEdyZWVmZgogKiBDb3B5cmlnaHQgMjAwMyBEaW1pdHJpZSBPLiBQYXVuCiAqIENvcHlyaWdodCAyMDAzLTIwMDQgTWlrZSBIZWFybgogKiBDb3B5cmlnaHQgMjAwNCBEYXZpZCBLcmVkYmEKICogQ29weXJpZ2h0IDIwMDcgVml0IEhyYWNob3Z5CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KLyogQ3plY2ggc3RyaW5ncyBpbiBDUDEyNTAgKi8KTEFOR1VBR0UgTEFOR19DWkVDSCwgU1VCTEFOR19ERUZBVUxUCgpJRFJfV0lORUNGRyBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiVXByYXZpdCIsIElEQ19BVURJT19DT05GSUdVUkUKICAgIEVORApFTkQKCklERF9BQk9VVENGRyBESUFMT0dFWCAwLCAwLCAyNjAsIDI3MApTVFlMRSBXU19DSElMRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgUEFDS0FHRV9TVFJJTkcsSURDX1NUQVRJQywxMTksMTcsMTIwLDgKICAgIENPTlRST0wgICAgICAgICBJREJfV0lORSxJRENfU1RBVElDLCJTdGF0aWMiLFNTX0JJVE1BUCAsMTUsMTcsMTU3LDExMQogICAgTFRFWFQgICAgICAgICAgICJodHRwOi8vd3d3LndpbmVocS5vcmcvIixJRENfU1RBVElDLDExOSwzMSwxMDYsOAogICAgTFRFWFQgICAgICAgICAgICJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxMTksNDQsMTI0LDcyCkVORAoKSUREX0FQUENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJOYXN0YXZlbu0gYXBsaWthY+0iLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmUgdW3tIHD4ZWRzdO1yYXQgcvl6bukgdmVyemUgV2luZG93cyBwcm8ga2GeZG91IGplZG51IGFwcGxpa2FjaS4gVGF0byB64WxvnmthIGplIHNwb2plbuEgc2Ugc2xvnmthbWkgS25paG92bnkgYSBPYnJheiBhIHVtb57ydWplIHpt7G5pdCBuYXN0YXZlbu0gY2Vs6WhvIHN5c3TpbXUgbmVibyBuYXN0YXZlbu0ga2GeZOkgYXBsaWthY2UgenZs4ZqdLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiQXBsaWthY2UiLElEQ19BUFBfTElTVFZJRVcsIlN5c0xpc3RWaWV3MzIiLFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBMVlNfTElTVCB8IExWU19TSU5HTEVTRUwgfCBMVlNfU0hPV1NFTEFMV0FZUywKICAgICAgICAgICAgICAgICAgICAxNSw1MCwyMzAsMTUwCiAgICBQVVNIQlVUVE9OCSAgICAiUPhpZCZhdCBhcGxpa2FjaS4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDIwNCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIk9kZWImcmF0IGFwbGlrYWNpIixJRENfQVBQX1JFTU9WRUFQUCwgMTcwLDIwNCw3NSwxNAogICAgTFRFWFQgICAgICAgICAgICJWZXJ6ZSAmV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjI2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0dSQVBIQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAiIE5hc3RhdmVu7SBva2VuICIsSURDX1NUQVRJQyw4LDQsMjQ0LDg0CiAgICBDT05UUk9MICAgICAiUG92b2xpdCBhcGxpa2Fj7W0gRGlyZWN0WCB6YWRynmV0IHVrYXphdGVsIG15mmkgdmUgc3bpbSBva27sIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiQWxsb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHRvICZkZWNvcmF0ZSB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9ERUNPUkFURUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzMiwyMzAsOAogICAgQ09OVFJPTCAgICAgIlBvdm9saXQgc3By4XZjaSBva2VuIGtvbnRyb2x1IG5hZCBva255IixJRENfRU5BQkxFX01BTkFHRUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSw0NCwyMzAsOAogICAgQ09OVFJPTCAgICAgIkVtdWxhY2UgdmlydHXhbG7taG8gZGVza3RvcHUiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNTYsMjMwLDgKICAgIExURVhUICAgICAgICJWZWxpa29zdCBkZXNrdG9wdToiLElEQ19ERVNLVE9QX1NJWkUsMTUsNzAsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgIlgiLElEQ19ERVNLVE9QX0JZLDEwOSw3MCw4LDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX1dJRFRILDY0LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgIElEQ19ERVNLVE9QX0hFSUdIVCwxMTcsNjgsNDAsMTIsRVNfQVVUT0hTQ1JPTEwgfCBFU19OVU1CRVIgfCBXU19ESVNBQkxFRAoKICAgIEdST1VQQk9YICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsOTUsMjQ0LDQ5CiAgICBMVEVYVCAgICAgICAiUG9kcG9yYSBzdO1ub3bhbu0gdmVydGV4+TogIixJRENfU1RBVElDLDE1LDExMCw4MCwzMgogICAgQ09NQk9CT1ggICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDEwOCwxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAiUG92b2xpdCBzdO1ub3bhbu0gcGl4ZWz5IChzcG9s6WjhIHNlIG5hIGhhcmR3YXJlIHBvZHBvcnUpIixJRENfRDNEX1BTSEFERVJfTU9ERSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDEyNiwyMzAsMTAKCiAgICBHUk9VUEJPWCAgICAiIFNjcmVlbiAmUmVzb2x1dGlvbiAiLElEQ19TVEFUSUMsOCwxNTEsMjQ0LDkzCiAgICBDT05UUk9MICAgICAiIiwgSURDX1JFU19UUkFDS0JBUiwgIm1zY3Rsc190cmFja2JhcjMyIixXU19UQUJTVE9QLDEyLDE2MSwxODcsMTUKICAgIEVESVRURVhUICAgIElEQ19SRVNfRFBJRURJVCwyMDQsMTYxLDIzLDEzLEVTX05VTUJFUnxXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAiZHBpIixJRENfU1RBVElDLDIzNSwxNjMsMTAsOAogICAgTFRFWFQgICAgICAgIlRoaXMgaXMgYSBzYW1wbGUgdGV4dCB1c2luZyAxMCBwb2ludCBUYWhvbWEiLElEQ19SRVNfRk9OVF9QUkVWSUVXLDE1LDE4MSwyMzAsNTUKRU5ECgpJRERfRExMQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIk7haHJhZHkgRExMIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIk35nmV0ZSB2eWJyYXQgemRhIGJ1ZG91IHBvdZ5pdHkgZHluYW1pY2t5IGxpbmtvdmFu6SBrbmlob3ZueSB2ZXN0YXbsbukgdmUgV2luZSBuZWJvIG5hdGl2bu0gKHZ6YXTpIHogV2luZG93cyBuZWJvIHBvc2t5dG51dOkgYXBsaWthY+0pLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAiTm924SBu4WhyYWRhIHBybyBETEw6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICJQ+GlkJmF0IixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMyxCU19ERUZQVVNIQlVUVE9OCiAgICBMVEVYVCAgICAgICAgICAgIlN04XZhau1j7SBu4WhyYWR5OiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICImVXByYXZpdCIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiT2RlYiZyYXQgRExMIG7haHJhZHUiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0CkVORAoKSUREX0xPQURPUkRFUiBESUFMT0cgRElTQ0FSREFCTEUgODAsIDExMCwgMTIwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRWRpdCBPdmVycmlkZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgUG/4YWTtIG5haHJhduFu7SAiLElEQ19TVEFUSUMsOCw0LDEwNSw2NgogICAgQ09OVFJPTCAgICAgICAgICImVmVzdGF27G7hIChXaW5lKSIsSURDX1JBRF9CVUlMVElOLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCwxNiwxNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICImTmF0aXZu7SAoV2luZG93cykiLElEQ19SQURfTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMjQsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiJlZlc3Rhduxu4SAoV2luZSkiLElEQ19SQURfQlVJTFRJTl9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwzNCw3NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJOYXRpJnZu7SBhIHBhayB2ZXN0YXbsbuEiLElEQ19SQURfTkFUSVZFX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiw0NCw5MCwxMAogICAgQ09OVFJPTCAgICAgICAgICImWmFr4XphdCIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsNzUsMTAKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssOCw3NCw0NSwxNCxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICJTdG9ybm8iLElEQ0FOQ0VMLDU3LDc0LDQ1LDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBNYXBvduFu7SBkaXNr+SAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiUPhpZCZhdC4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsMzcsMTQKICAgIFBVU0hCVVRUT04gICAgICAiT2RlYiZyYXQiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF1dG8mZGV0ZWtjZS4uLiIsSURDX0JVVFRPTl9BVVRPREVURUNULDE5Nyw5OCw0OSwxNAoKICAgIC8qIGVkaXRpbmcgZHJpdmUgZGV0YWlscyAqLwogICAgTFRFWFQgICAgICAgICAgICImQ2VzdGE6IixJRENfU1RBVElDLDE1LDEyMywyMCw5CiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfUEFUSCw0MSwxMjAsMTYwLDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICImUHJvY2jhemV0Li4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKCiAgICBMVEVYVCAgICAgICAgICAgIiZUeXA6IixJRENfU1RBVElDX1RZUEUsMTUsMTM4LDIxLDEwCiAgICBDT01CT0JPWCAgICAgICAgSURDX0NPTUJPX1RZUEUsNDEsMTM1LDc3LDYwLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUICAgICAgICAgICAiUG9waXNlayBhIHPpcmlvdukg6O1zbG8iLElEQ19MQUJFTFNFUklBTF9TVEFUSUMsMTUsMTU1LDk1LDEwCgogICAgUFVTSEJVVFRPTiAgICAgICImVWthniByb3qa7fhlbukgdm9sYnkiLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE1NSwxMzYsOTEsMTMKICAgIENPTlRST0wgICAgICAgICAiQXV0b2RldGVrY2UgJnplIHph+O16ZW7tOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTc0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIlByb2No4SZ6ZXQuLi4iLElEQ19CVVRUT05fQlJPV1NFX0RFVklDRSwyMDYsMTc2LDQwLDEzCiAgICBDT05UUk9MICAgICAgICAgIlJ16CZu7SBw+Gn4YXplbu06IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsNjksMTAKCiAgICBMVEVYVCAgICAgICAgICAgIlAmb3Bpc2VrOiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw4MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIiZT6XJpb3bpIOjtc2xvOiIsSURDX1NUQVRJQ19TRVJJQUwsMzMsMjI1LDQ5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDgzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIlpvYnJheml0IHNvdWJvcnkgcyB0Zehrb3UgbmEgemHo4XRrdSBu4Xp2dSIsSURDX1NIT1dfRE9UX0ZJTEVTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsOCwyNjAsMjMwLDgKRU5ECgpJRERfQVVESU9DRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIE92bGFkYeggenZ1a2926SBrYXJ0eSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUICAgICAgICAgICAiVnliZXJ0ZSBvdmxhZGHoIHp2dWtvdukga2FydHkgemGaa3J0bnV07W0gcG9s7ehrYSB1IHD47XNsdZpu6WhvIG92bGFkYehlLiBLZHmeIG5lemGaa3J0bmV0ZSBhbmkgamVkZW4gb3ZsYWRh6CwgenZ1ayBzZSB2eXBuZS4gVnlicmF0IHbtY2UgamFrIGplZGVuIG92bGFkYeggc2UgbmVkb3BvcnXodWplLiBEZXRhaWxu7SB2bGFzdG5vc3RpIG92bGFkYehlIG35nmV0ZSB1cHJhdml0IHByYXb9bSBrbGlrbnV07W0gbmEgenZvbGVu/SBvdmxhZGHoLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsNTAKICAgIENPTlRST0wgICAgICAgICAiWmH47Xplbu0iLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDY1LDE0MCwxMjcKICAgIFBVU0hCVVRUT04gICAgICAiJlRlc3QgU291bmQiLElEQ19BVURJT19URVNULDE3MCw2NSw1OSwxNAogICAgUFVTSEJVVFRPTgkgICAgIk92bOFkYWPtIHBhbmVsIixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxNzAsODUsNTksMTQKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdFNvdW5kICIsSURDX1NUQVRJQyw4LDIwNSwyNDQsNjAKICAgIExURVhUICAgICAgICAgICAiSGFyZHdhcm924SBha2NlbGVyYWNlOiAiLElEQ19TVEFUSUMsMTUsMjE1LDkwLDEwCiAgICBDT01CT0JPWAkgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjEzLDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiVnpvcmtvdmFj7SBmcmVrdmVuY2U6IixJRENfU1RBVElDLDE1LDIzMiw3MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9SQVRFUyw5MCwyMzAsNDIsNzYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlBv6GV0IGJpdPkgbmEgdnpvcmVrOiIsSURDX1NUQVRJQywxMzcsMjMyLDgwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX0JJVFMsMjIwLDIzMCwzMCw1NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIENPTlRST0wgICAgICAgICAiRW11bGFjZSB6YfjtemVu7SIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgVnpobGVkICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICJU6W1hOiIsSURDX1NUQVRJQywxNSwxNiwxMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDEzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiSW5zdGFsb3ZhdCB06W1hLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiQmFydmE6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJWZWxpa29zdCIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiUG9sb55rYToiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICJCYXJ2YToiLElEQ19TWVNQQVJBTV9DT0xPUl9URVhULDEzNSw2NCwyNSw4LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiIsSURDX1NZU1BBUkFNX0NPTE9SLDEzNSw3NCwyNSwxMyxXU19ESVNBQkxFRCB8IEJTX09XTkVSRFJBVwogICAgTFRFWFQgICAgICAgICAgICJWZWxpa29zdDoiLElEQ19TWVNQQVJBTV9TSVpFX1RFWFQsMTY2LDY0LDMwLDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfU1lTUEFSQU1fU0laRSwxNjYsNzQsMjMsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiIixJRENfU1lTUEFSQU1fU0laRV9VRCxVUERPV05fQ0xBU1MsVURTX1NFVEJVRERZSU5UIHwgV1NfRElTQUJMRUQsMTg3LDc0LDE1LDEzCiAgICBQVVNIQlVUVE9OICAgICAgIlDtc21vIixJRENfU1lTUEFSQU1fRk9OVCwyMDgsNzQsMzcsMTMsV1NfRElTQUJMRUQKICAgIEdST1VQQk9YICAgICAgICAiIERvbeFj7SBhZHJlc+H4ZSAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICJPZGtheiBuYToiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICJQcm9jaOF6ZXQiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIlByb2dyYW15IgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIktuaWhvdm55IgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIkRpc2t5IgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIlZ5YmVydGUgcHJvc+1tIHVuaXhvdv0gY+1sb3b9IGFkcmVz4fguIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIlNjaG92YXQgcm96mu34ZW7pIG1vnm5vc3RpIgogICAgSURTX1NIT1dfQURWQU5DRUQgICAgICAgIlpvYnJheml0IHJveprt+GVu6SBtb55ub3N0aSIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIoQmV6IHTpbWF0dSkiCiAgICBJRFNfVEFCX0dSQVBISUNTICAgICAgICAiT2JyYXoiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIlph6Gxlbuxu7SBkbyBwcmFjb3Zu7SBwbG9jaHkiCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiWnZ1ayIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICJPIHByb2dyYW11IgogICAgSURTX1dJTkVDRkdfVElUTEUgICAgICAgIktvbmZpZ3VyYWNlIFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAi2nByYXZhIFdpbmUgcHJvICVzIgogICAgSURTX1RIRU1FRklMRSAgICAgICAgICAgIlNvdWJvcnkgcyB06W1hdHkgdnpobGVkdSIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJadm9sdGUgc291Ym9yIHMgdOltYXRlbSB2emhsZWR1IgogICAgSURTX0FVRElPX01JU1NJTkcgICAgICAgIlYgcmVnaXN0cmVjaCBjaHli7SB64XpuYW0gbyB2eWJyYW7pbSB6dnVrb3bpbSBvdmxhZGHoaS5cblxuQXV0b21hdGlja3kgYnlsIHp2b2xlbiBkb3BvcnXoZW79IG92bGFkYeguXG5N+Z5ldGUgcG91nu10IHRlbnRvIG92bGFkYeggbmVibyBzaSB6IG9zdGF0bu1jaCBkb3N0dXBu/WNoIHZ5YnJhdCBqaW79LlxuXG5Eb2t1ZCBuZWtsaWtuZXRlIG5hIHRsYejtdGtvIFByb3bpc3QsIG5lYnVkZSB2eWJyYW79IG92bGFkYeggcG91nml0LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJEb23hY+0gYWRyZXPh+GUiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiT2RrYXogbmEiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJOZWRvcG9ydeh1amUgc2UgbexuaXQgcG/4YWTtIG5haHLhduFu7SB06XRvIGtuaWhvdm55LlxuVXLoaXTsIHRvIGNoY2V0ZSB1ZOxsYXQ/IgogICAgSURTX0RMTF9XQVJOSU5HX0NBUFRJT04gIlZhcm924W7tOiBzeXN06W1vduEga25paG92bmEiCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAibmF0aXZu7SIKICAgIElEU19ETExfQlVJTFRJTiAgICAgICAgICJ2ZXN0YXbsbuEiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAibmF0aXZu7SwgdmVzdGF27G7hIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgInZlc3Rhduxu4SwgbmF0aXZu7SIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJ6YWvhemF0IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgIlN0YW5kYXJkbu0gbmFzdGF2ZW7tIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIlByb2dyYW15IFdpbmUgKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICJQb3We7XQgdpplb2JlY27hIG5hc3RhdmVu7SIKICAgIElEU19TRUxFQ1RfRVhFQ1VUQUJMRSAgICJadm9sdGUgc3B1c3RpdGVsbv0gc291Ym9yIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIkhhcmR3YXJvdv0iCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIo7hZG79IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRFJJVkVfVU5LTk9XTiAgICAgICAgICAgIkF1dG9kZXRla2NlIgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICJN7XN0bu0gcGV2bv0gZGlzayIKICAgIElEU19EUklWRV9SRU1PVEUgICAgICAgICAgICAiU+2db3b9IGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1ZBQkxFICAgICAgICAgIkRpc2tldGEiCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAiRGFsmu0gZGlzayBqaZ4gbmVu7SBtb55ubyBw+GlkYXQuXG5cbkthnmT9IGRpc2sgbXVz7SBt7XQgcPhp+GF6ZW5vIHDtc21lbm8gb2QgQSBkbyBaLCB0YWueZSBuZWx6ZSBt7XQgdu1jZSBuZZ4gMjYgZGlza/kiCiAgICBJRFNfU1lTVEVNX0RSSVZFX0xBQkVMICAgICAgIlN5c3TpbW92/SBkaXNrIgogICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICJVcuhpdOwgY2hjZXRlIHNtYXphdCBkaXNrIEM/XG5cblbsdJppbmEgYXBsaWthY+0gdmUgV2luZG93cyDoZWvhLCCeZSBkaXNrIEMgZXhpc3R1amUgYSB07J5jZSB6a29sYWJ1amUgdiBw+O1wYWTsLCCeZSB0b211IHRhayBuZW7tLiBQb2t1ZCBzbWGeZXRlIGRpc2sgQywgbmV6YXBvbWXydGUgamVqIHpub3Z1IHZ5dHZv+Gl0ISIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiUO1zbWVubyIKICAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiUPjtcG9qbv0gYm9kIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJWYXJvduFu7TogVnlwYWThIHRvLCCeZSBkaXNrIEMgbmVu7SBkZWZpbm924W4uXG5cbktsaWtu7HRlIG5hIJFQ+GlkYXQuLi6SIHYgeuFsb55jZSBEaXNreSBhIHZ5dHZv+HRlIGhvIVxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIlBsbuEiCiAgICBJRFNfQUNDRUxfU1RBTkRBUkQgICAgICAgICAgIlN0YW5kYXJkbu0iCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIlrha2xhZG7tIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICJFbXVsYWNlIgogICAgSURTX0RSSVZFUl9BTFNBICAgICAgICAgICAgICJPdmxhZGHoIEFMU0EiCiAgICBJRFNfRFJJVkVSX0VTT1VORCAgICAgICAgICAgIk92bGFkYeggRXNvdW5EIgogICAgSURTX0RSSVZFUl9PU1MgICAgICAgICAgICAgICJPdmxhZGHoIE9TUyIKICAgIElEU19EUklWRVJfSkFDSyAgICAgICAgICAgICAiT3ZsYWRh6CBKQUNLIgogICAgSURTX0RSSVZFUl9OQVMgICAgICAgICAgICAgICJPdmxhZGHoIE5BUyIKICAgIElEU19EUklWRVJfQVVESU9JTyAgICAgICAgICAiT3ZsYWRh6CBBdWRpbyBJTyAoU29sYXJpcykiCiAgICBJRFNfRFJJVkVSX0NPUkVBVURJTyAgICAgICAgIk92bGFkYeggQ29yZUF1ZGlvIgogICAgSURTX09QRU5fRFJJVkVSX0VSUk9SICAgICAgICJOZW1vaHUgb3RldvjtdCAlcyEiCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIk92bGFkYehlIHp2dWt1IgogICAgSURTX0RFVklDRVNfV0FWRU9VVCAgICAgICAgICJaYfjtemVu7SBXYXZlIFb9c3R1cCIKICAgIElEU19ERVZJQ0VTX1dBVkVJTiAgICAgICAgICAiWmH47Xplbu0gV2F2ZSBWc3R1cCIKICAgIElEU19ERVZJQ0VTX01JRElPVVQgICAgICAgICAiWmH47Xplbu0gTUlESSBW/XN0dXAiCiAgICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIlph+O16ZW7tIE1JREkgVnN0dXAiCiAgICBJRFNfREVWSUNFU19BVVggICAgICAgICAgICAgIlph+O16ZW7tIEF1eCIKICAgIElEU19ERVZJQ0VTX01JWEVSICAgICAgICAgICAiWmH47Xplbu0gTe1jaOFu7SIKICAgIElEU19VTkFWQUlMQUJMRV9EUklWRVIgICAgICAiViByZWdpc3RydSBieWwgbmFsZXplbiBvdmxhZGHoLCBrdGVy/SBuZW7tIGsgZGlzcG96aWNpIVxuXG5PZHN0cmFuaXQgkyVzlCB6IHJlZ2lzdHJ1PyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiVmFyb3bhbu0iCkVORAoKLyogdGV4dCAtIGZvbnQgb3Igc3RyaW5nID8gKi8KU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEQ19TWVNQQVJBTVNfQlVUVE9OICAgICAgICAgICAgIlBvemFk7SBvdmzhZGFj7WNoIHBydmv5IgogICAgSURDX1NZU1BBUkFNU19CVVRUT05fVEVYVCAgICAgICAiUO1zbW8gb3Zs4WRhY+1jaCBwcnZr+SIKICAgIElEQ19TWVNQQVJBTVNfREVTS1RPUCAgICAgICAgICAgIlBsb2NoYSIKICAgIElEQ19TWVNQQVJBTVNfTUVOVSAgICAgICAgICAgICAgIlBvemFk7SBtZW51IgogICAgSURDX1NZU1BBUkFNU19NRU5VX1RFWFQgICAgICAgICAiUO1zbW8gbWVudSIKICAgIElEQ19TWVNQQVJBTVNfU0NST0xMQkFSICAgICAgICAgIlJvbG92YWPtIHBydWgiCiAgICBJRENfU1lTUEFSQU1TX1NFTEVDVElPTiAgICAgICAgICJQb3phZO0gdv1i7HJ1IgogICAgSURDX1NZU1BBUkFNU19TRUxFQ1RJT05fVEVYVCAgICAiUO1zbW8gdv1i7HJ1IgogICAgSURDX1NZU1BBUkFNU19UT09MVElQICAgICAgICAgICAiUG96YWTtIHRpcHUiCiAgICBJRENfU1lTUEFSQU1TX1RPT0xUSVBfVEVYVCAgICAgICJQ7XNtbyB0aXB1IgogICAgSURDX1NZU1BBUkFNU19XSU5ET1cgICAgICAgICAgICAiUG96YWTtIG9rbmEiCiAgICBJRENfU1lTUEFSQU1TX1dJTkRPV19URVhUICAgICAgICJQ7XNtbyBva25hIgogICAgSURDX1NZU1BBUkFNU19BQ1RJVkVfVElUTEUgICAgICAiUG96YWTtIHRpdHVsa3UgYWt0aXZu7WhvIG9rbmEiCiAgICBJRENfU1lTUEFSQU1TX0FDVElWRV9USVRMRV9URVhUICJQ7XNtbyB0aXR1bGt1IGFrdGl2bu1obyBva25hIgogICAgSURDX1NZU1BBUkFNU19JTkFDVElWRV9USVRMRSAgICAiUG96YWTtIHRpdHVsa3UgbmVha3Rpdm7paG8gb2tuYSIKICAgIElEQ19TWVNQQVJBTVNfSU5BQ1RJVkVfVElUTEVfVEVYVCAiUO1zbW8gdGl0dWxrdSBuZWFrdGl2bu1obyBva25hIgpFTkQK