LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogVHVya2lzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJZYXD9bGFuZP1yIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKICAgIEdST1VQQk9YICAgICAgICAiIFdpbmRvd3MgUmVnaXN0cmF0aW9uIEluZm9ybWF0aW9uICIsIElEQ19TVEFUSUMsIDE1LCAxMTAsIDIzMCwgNTUKICAgIExURVhUICAgICAgICAgICAiT3duZXI6IiwgSURDX1NUQVRJQywgMjIsIDEyNiwgNDAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PV05FUiwgNzUsIDEyNiwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIk9yZ2FuaXphdGlvbjoiLCBJRENfU1RBVElDLCAyMiwgMTQwLCA1MCwgMjAKICAgIEVESVRURVhUICAgICAgICBJRENfQUJUX09SRywgNzUsIDE0MCwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0FQUENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgVXlndWxhbWEgQXlhcmxhcv0gIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIGhlciB1eWd1bGFtYSBp52luIGRl8Gn+aWsgV2luZG93cyBz/HL8bWxlcmluaSB0YWtsaXQgZWRlYmlsaXIuIEJ1IHNla21lIEtpdGFwbP1rbGFyIHZlIEdyYWZpayBzZWttZWxlcmkgaWxlIGJh8GxhbnT9bP0gb2x1cCBidSBzZWttZWxlcmRlIGRlIHNpc3RlbSDnYXD9bmRha2kgdmV5YSB1eWd1bGFtYXlhIPZ6ZWwgYXlhcmxhcv0geWFwbWFu/XphIGl6aW4gdmVyaXIuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJVeWd1bGFtYWxhciIsSURDX0FQUF9MSVNUVklFVywiU3lzTGlzdFZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExWU19MSVNUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTLAogICAgICAgICAgICAgICAgICAgIDE1LDUwLDIzMCwxNTAKICAgIFBVU0hCVVRUT04JICAgICJVeWd1bGFtYSAmRWtsZS4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDIwNCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIlV5Z3VsYW1hICZLYWxk/XIiLElEQ19BUFBfUkVNT1ZFQVBQLCAxNzAsMjA0LDc1LDE0CiAgICBMVEVYVCAgICAgICAgICAgIiZXaW5kb3dzIFP8cvxt/DoiLElEQ19TVEFUSUMsMTcsMjI2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgIiBQZW5jZXJlIGF5YXJsYXL9ICIsSURDX1NUQVRJQyw4LDQsMjQ0LDg0CiAgICBDT05UUk9MICAgICAiRGlyZWN0WCB1eWd1bGFtYWxhcv1u/W4gZmFyZXlpIHBlbmNlcmUgaedpbmUga2lsaXRsZW1lbGVyaW5lIGl6aW4gdmVyIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiQWxsb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHRvICZkZWNvcmF0ZSB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9ERUNPUkFURUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzMiwyMzAsOAogICAgQ09OVFJPTCAgICAgIlBlbmNlcmUgefZuZXRpY2lzaW5pbiBwZW5jZXJlbGVyaSB59m5ldG1lc2luZSBpemluIHZlciIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDQsMjMwLDgKICAgIENPTlRST0wgICAgICJTYW5hbCBtYXNh/HN0/CBrdWxsYW4iLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNTYsMjMwLDgKICAgIExURVhUICAgICAgICJNYXNh/HN0/CBi/Hn8a2z88Pw6IixJRENfREVTS1RPUF9TSVpFLDE1LDcwLDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDksNzAsOCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9XSURUSCw2NCw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDk1LDI0NCw0OQogICAgTFRFWFQgICAgICAgIlZlcnRleCBTaGFkZXIgRGVzdGXwaTogIixJRENfU1RBVElDLDE1LDExMCw4MCwzMgogICAgQ09NQk9CT1ggICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDEwOCwxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAiUGl4ZWwgU2hhZGVyJ2EgaXppbiB2ZXIgKGRvbmFu/W0gZGVzdGVrbGl5b3JzYSkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTI2LDIzMCwxMAoKICAgIEdST1VQQk9YICAgICIgU2NyZWVuICZSZXNvbHV0aW9uICIsSURDX1NUQVRJQyw4LDE1MSwyNDQsOTMKICAgIENPTlRST0wgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMTYxLDE4NywxNQogICAgRURJVFRFWFQgICAgSURDX1JFU19EUElFRElULDIwNCwxNjEsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICJkcGkiLElEQ19TVEFUSUMsMjM1LDE2MywxMCw4CiAgICBMVEVYVCAgICAgICAiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHVzaW5nIDEwIHBvaW50IFRhaG9tYSIsSURDX1JFU19GT05UX1BSRVZJRVcsMTUsMTgxLDIzMCw1NQpFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCDWbmNlbGlrbGVyaSAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRGV2aW5nZW4gQmHwbP0gS2l0YXBs/WtsYXL9biBoZXIgYmlyaSB5ZXJsZf5payAoV2luZSBpbGUgZ2VsZW4pIHZleWEgZG/wYWwgKFdpbmRvd3MndGFuIGFs/W5t/f4gdmV5YSB1eWd1bGFtYSB0YXJhZv1uZGFuIHNh8Gxhbm39/ikgb2xhcmFrIGJlbGlydGlsZWJpbGlyLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAiS2l0YXBs/WsgaedpbiB5ZW5pIPZuY2VsaWs6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImRWtsZSIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAiVmFyIG9sYW4g9m5jZWxpa2xlcjoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkT8emVubGUiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZTaWwiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTI1LCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi1m5jZWxpayBE/HplbmxlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBZ/GtsZW1lIFP9cmFz/SAiLElEQ19TVEFUSUMsOCw0LDExMCw2NgogICAgQ09OVFJPTCAgICAgICAgICImWWVybGX+aWsgKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImRG/wYWwgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICLWbmNlIFllciZsZf5payBzb25yYSBEb/BhbCIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDM0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICLWbmNlIEQmb/BhbCBzb25yYSBZZXJsZf5payIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImRXRraXNpemxl/nRpciIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsMTAwLDEwCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDgsNzQsNTMsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAi3XB0YWwiLElEQ0FOQ0VMLDY0LDc0LDUzLDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBT/HL8Y/wgRf5sZf50aXJtZXNpICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJGYWlsZWQgdG8gY29ubmVjdCB0byB0aGUgbW91bnQgbWFuYWdlciwgdGhlIGRyaXZlIGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIGVkaXRlZC4iLCBJRENfU1RBVElDX01PVU5UTUdSX0VSUk9SLCAxNSwzMCwyMjAsNzYKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJkVrbGUuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZLYWxk/XIiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIk90b21hdGlrICZBbGf9bGEuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxODYsOTgsNjAsMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJllvbDoiLElEQ19TVEFUSUNfUEFUSCwxNSwxMjMsMjAsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJkf2emF0Li4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICImVPxyOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICJFdGlrZXQgdmUgc2VyaSBubyIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICJHZWxp/m1p/iAmU2XnZW5la2xlciIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTg2LDEzNiw2MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBeWf9dHRhbiBPdG9tYXRpayBBJmxn/WxhOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTc0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIkf2JnphdC4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNzYsNDAsMTMKICAgIENPTlRST0wgICAgICAgICAiJkVsbGUgQXRhOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICImRXRpa2V0OiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlMmZXJpIE5vOiIsSURDX1NUQVRJQ19TRVJJQUwsMzMsMjI1LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIk5va3RheWxhIGJh/mxheWFuIGRvc3lhbGFy/SBn9nN0ZXIiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBT/HL8Y/wgU2XnaW1pICIsSURDX1NUQVRJQyw4LDQsMjQ0LDE5NQogICAgTFRFWFQgICAgICAgICAgICLdc3RlZGnwaW5peiBz/HL8Y/xu/G4ga3V0dXN1bnUgaf5hcmV0bGV5ZXJlayBiaXIgc2VzIHP8cvxj/HP8IHNl52luLiBIaediaXIgc/xy/GP8IHNl521leWVyZWsgc2VzaSBldGtpc2l6bGX+dGlyZWJpbGlyc2luaXouIEJpcmRlbiBmYXpsYSBz/HL8Y/wgc2XnaW1pIPZuZXJpbG1lei4g3HplcmluZSBzYfAgdP1rbGF5YXJhayBiaXIgc/xy/GP8efwgeWFw/WxhbmT9cv1uLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiQXln/XRsYXIiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDUwLDE0MCwxNDAgCiAgICBQVVNIQlVUVE9OICAgICAgIiZUZXN0IFNvdW5kIixJRENfQVVESU9fVEVTVCwxNzAsNTAsNTksMTQKICAgIFBVU0hCVVRUT04JICAgICJEZW5ldGltIE1hc2Fz/SIsSURDX0FVRElPX0NPTlRST0xfUEFORUwsMTcwLDcwLDU5LDE0CiAgICBHUk9VUEJPWCAgICAgICAgIiBEaXJlY3RTb3VuZCAiLElEQ19TVEFUSUMsOCwyMDUsMjQ0LDYwCiAgICBMVEVYVCAgICAgICAgICAgIkRvbmFu/W0gSP16bGFuZP1ybWFz/TogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItZudGFu/W1s/SDWcm5la2xlbWUgSP16/ToiLElEQ19TVEFUSUMsMTUsMjMyLDcwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfRFNPVU5EX1JBVEVTLDkwLDIzMCw0Miw3NixDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi1nJuZWsgQmH+/W5hIEJpdCBTYXn9c/06IixJRENfU1RBVElDLDEzNywyMzIsODAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfQklUUywyMjAsMjMwLDMwLDU2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgQ09OVFJPTCAgICAgICAgICJT/HL8Y/wgVGFrbGlkaSIsSURDX0RTT1VORF9EUlZfRU1VTCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDI1MCwyMzAsMTAKRU5ECgpJRERfREVTS1RPUF9JTlRFR1JBVElPTiBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgR/Zy/G78bSAiLElEQ19TVEFUSUMsOCw0LDI0NCwxMDYKICAgIExURVhUICAgICAgICAgICAiVGVtYToiLElEQ19TVEFUSUMsMTUsMTYsMTMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfVEhFTUVDT01CTywxNSwyNCwxMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIlRlbWEga3VyLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMjMsOTMsMTQKICAgIExURVhUICAgICAgICAgICAiUmVuazoiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNDAsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw0OCwxMTIsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkJveXV0OiIsSURDX1RIRU1FX1NJWkVURVhULDEzNSw0MCwxMTAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTM1LDQ4LDExMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiSXRlbToiLElEQ19TVEFUSUMsMTUsNjQsMTEyLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfU1lTUEFSQU1fQ09NQk8sMTUsNzQsMTEyLDEyMCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVAogICAgTFRFWFQgICAgICAgICAgICJDb2xvcjoiLElEQ19TWVNQQVJBTV9DT0xPUl9URVhULDEzNSw2NCwyNSw4LFdTX0RJU0FCTEVECiAgICBQVVNIQlVUVE9OICAgICAgIiIsSURDX1NZU1BBUkFNX0NPTE9SLDEzNSw3NCwyNSwxMyxXU19ESVNBQkxFRCB8IEJTX09XTkVSRFJBVwogICAgTFRFWFQgICAgICAgICAgICJTaXplOiIsSURDX1NZU1BBUkFNX1NJWkVfVEVYVCwxNjYsNjQsMzAsOCxXU19ESVNBQkxFRAogICAgRURJVFRFWFQgICAgICAgIElEQ19TWVNQQVJBTV9TSVpFLDE2Niw3NCwyMywxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICIiLElEQ19TWVNQQVJBTV9TSVpFX1VELFVQRE9XTl9DTEFTUyxVRFNfU0VUQlVERFlJTlQgfCBXU19ESVNBQkxFRCwxODcsNzQsMTUsMTMKICAgIFBVU0hCVVRUT04gICAgICAiRm9udCIsSURDX1NZU1BBUkFNX0ZPTlQsMjA4LDc0LDM3LDEzLFdTX0RJU0FCTEVECiAgICBHUk9VUEJPWCAgICAgICAgIiDWemVsIEtsYXP2cmxlciAiLElEQ19TVEFUSUMsOCwxMTQsMjQ0LDEwMAogICAgQ09OVFJPTCAgICAgICAgICJMaXN0dmlldyIsSURDX0xJU1RfU0ZQQVRIUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTI2LDIzMCw2NAogICAgQ09OVFJPTCAgICAgICAgICJIZWRlZiBkaXppbjoiLElEQ19MSU5LX1NGUEFUSCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1h8V1NfVEFCU1RPUHxXU19ESVNBQkxFRCwxNSwxOTUsNTAsMTMKICAgIEVESVRURVhUICAgICAgICAgSURDX0VESVRfU0ZQQVRILDY1LDE5NSwxNDUsMTMsRVNfQVVUT0hTQ1JPTEx8V1NfVEFCU1RPUHxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICJH9nphdCIsSURDX0JST1dTRV9TRlBBVEgsMjE1LDE5NSwzMCwxMyxXU19ESVNBQkxFRApFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiVXlndWxhbWFsYXIiCiAgICBJRFNfVEFCX0RMTFMgICAgICAgICAgICAiS2l0YXBs/WtsYXIiCiAgICBJRFNfVEFCX0RSSVZFUyAgICAgICAgICAiU/xy/GP8bGVyIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIkz8dGZlbiBoYXJpdGFsYW5hY2FrIHVuaXggZGl6aW5pbmkgc2XnaW4uIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgIlRlbWVsIEF5YXJsYXIiCiAgICBJRFNfU0hPV19BRFZBTkNFRCAgICAgICAiR2Vsaf5taf4gQXlhcmxhciIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIoVGVtYSBZb2spIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIkdyYWZpayIKICAgIElEU19UQUJfREVTS1RPUF9JTlRFR1JBVElPTiAiTWFzYfxzdPwgRW50ZWdyYXN5b251IgogICAgSURTX1RBQl9BVURJTyAgICAgICAgICAgIlNlcyIKICAgIElEU19UQUJfQUJPVVQgICAgICAgICAgICJIYWtr/W5kYSIKICAgIElEU19XSU5FQ0ZHX1RJVExFICAgICAgICJXaW5lIHlhcP1sYW5k/XJtYXP9IgogICAgSURTX1dJTkVDRkdfVElUTEVfQVBQICAgIiVzIGnnaW4gV2luZSB5YXD9bGFuZP1ybWFz/SIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICJUZW1hIGRvc3lhbGFy/SIKICAgIElEU19USEVNRUZJTEVfU0VMRUNUICAgICJUZW1hIGRvc3lhc/0gc2XnaW4iCiAgICBJRFNfQVVESU9fTUlTU0lORyAgICAgICAiU2lzdGVtIGtheWT9bmRhIGJlbGlybGVubWn+IGJpciBzZXMgc/xy/GP8c/wgeW9rLlxuXG7WbmVyaWxlbiBiaXIgc/xy/GP8IHNpemluIGnnaW4gc2XnaWxkaS5cbkJ1IHP8cvxj/Hn8IGt1bGxhbmFiaWxpciB2ZXlhIHZhcnNhIGJh/mthIGJpciBz/HL8Y/x5/CBzZedlYmlsaXJzaW5pei5cblxuU2XnaW1pbiBldGtpbGkgb2xhYmlsbWVzaSBp52luIFV5Z3VsYSd5/SB0/WtsYW1hbP1z/W79ei4iCiAgICBJRFNfU0hFTExfRk9MREVSICAgICAgICAiS2xhc/ZyIgogICAgSURTX0xJTktTX1RPICAgICAgICAgICAgIkhlZGVmIERpemluIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRExMX1dBUk5JTkcgICAgICAgICAiQnUga2l0YXBs/fD9biB5/GtsZW1lIHP9cmFz/W79biBkZfBp/nRpcmlsbWVzaSD2bmVyaWxtZXouXG5CdW51IHlhcG1hayBpc3RlZGnwaW5pemRlbiBlbWluIG1pc2luaXo/IgogICAgSURTX0RMTF9XQVJOSU5HX0NBUFRJT04gIlV5YXL9OiBzaXN0ZW0ga2l0YXBs/fD9IgogICAgSURTX0RMTF9OQVRJVkUgICAgICAgICAgImRv8GFsIgogICAgSURTX0RMTF9CVUlMVElOICAgICAgICAgInllcmxl/mlrIgogICAgSURTX0RMTF9OQVRJVkVfQlVJTFRJTiAgImRv8GFsLCB5ZXJsZf5payIKICAgIElEU19ETExfQlVJTFRJTl9OQVRJVkUgICJ5ZXJsZf5paywgZG/wYWwiCiAgICBJRFNfRExMX0RJU0FCTEVEICAgICAgICAiZGV2cmUgZP3+/SIKICAgIElEU19ERUZBVUxUX1NFVFRJTkdTICAgICLWbnRhbv1tbP0gQXlhcmxhciIKICAgIElEU19FWEVDVVRBQkxFX0ZJTFRFUiAgICJXaW5lIFByb2dyYW1sYXL9ICgqLmV4ZSwqLmV4ZS5zbylcMCouZXhlOyouZXhlLnNvXDAiCiAgICBJRFNfVVNFX0dMT0JBTF9TRVRUSU5HUyAiR2VuZWwgYXlhcmxhcv0ga3VsbGFuIgogICAgSURTX1NFTEVDVF9FWEVDVVRBQkxFICAgIsdhbP3+dP1y/WxhYmlsaXIgYmlyIGRvc3lhIHNl52luIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfU0hBREVSX01PREVfSEFSRFdBUkUgICAgIkRvbmFu/W0iCiAgICBJRFNfU0hBREVSX01PREVfTk9ORSAgICAgICAgIkhp52JpcmkiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19EUklWRV9VTktOT1dOICAgICAgICAgICAiT3RvbWF0aWsgQWxn/WxhIgogICAgSURTX0RSSVZFX0ZJWEVEICAgICAgICAgICAgICJZZXJlbCBzYWJpdCBkaXNrIgogICAgSURTX0RSSVZFX1JFTU9URSAgICAgICAgICAgICJB8CBwYXlsYf79bf0iCiAgICBJRFNfRFJJVkVfUkVNT1ZBQkxFICAgICAgICAgIkRpc2tldCBz/HL8Y/wiCiAgICBJRFNfRFJJVkVfQ0RST00gICAgICAgICAgICAgIkNELVJPTSIKICAgIElEU19EUklWRV9MRVRURVJTX0VYQ0VFREVEICAiRGFoYSBmYXpsYSBz/HL8Y/wgZWtsZXllbWV6c2luaXouXG5cbkhlciBz/HL8Y/xu/G4gQS1aIGFyYWz98P1uZGEgYmlyIGhhcmZpIG9sbWFs/WT9ci4gRG9sYXn9c/15bGEgMjYnZGFuIGZhemxhIHRhbv1tbGF5YW1henP9bv16LiIKICAgIElEU19TWVNURU1fRFJJVkVfTEFCRUwgICAgICAiU2lzdGVtIHP8cvxj/HP8IgogICAgSURTX0NPTkZJUk1fREVMRVRFX0MgICAgICAgICJDIHP8cvxj/HP8bvwgc2lsbWVrIGlzdGVkafBpbml6ZGVuIGVtaW4gbWlzaW5pej9cblxux2/wdSBXaW5kb3dzIHV5Z3VsYW1hc/0gQyBz/HL8Y/xz/G78biB2YXIgb2xtYXP9bv0gYmVrbGVyIHZlIHlva3NhIGlzdGVubWV5ZW4gYmlyIP5la2lsZGUgc29ubGFu/XIuIEXwZXIgZGV2YW0gZWRlcnNlbml6LCBkYWhhIHNvbnJhIHllbmlkZW4gb2x1/nR1cm1hef0gdW51dG1hef1uISIKICAgIElEU19DT0xfRFJJVkVMRVRURVIgICAgICAgICAiSGFyZiIKICAgIElEU19DT0xfRFJJVkVNQVBQSU5HICAgICAgICAiU/xy/GP8IEX+bGVtZSIKICAgIElEU19OT19EUklWRV9DICAgICAgICAgICAgICAiQyBz/HL8Y/xu/HogeW9rLiBCdSBiZWtsZW5lbiBiaXIgZHVydW0gZGXwaWwuXG5cbkJpciB0YW5lIG9sdf50dXJtYWsgaedpbiBT/HL8Y/xsZXIgc2VrbWVzaW5kZW4gRWtsZSd5aSB0/WtsYW1hef0gdW51dG1hef1uIVxuIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQUNDRUxfRlVMTCAgICAgICAgICAgICAgIlRhbSIKICAgIElEU19BQ0NFTF9TVEFOREFSRCAgICAgICAgICAiU3RhbmRhcnQiCiAgICBJRFNfQUNDRUxfQkFTSUMgICAgICAgICAgICAgIlRlbWVsIgogICAgSURTX0FDQ0VMX0VNVUxBVElPTiAgICAgICAgICJUYWtsaXQiCiAgICBJRFNfRFJJVkVSX0FMU0EgICAgICAgICAgICAgIkFMU0EgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX0VTT1VORCAgICAgICAgICAgIkVzb3VuRCBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfT1NTICAgICAgICAgICAgICAiT1NTIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9KQUNLICAgICAgICAgICAgICJKQUNLIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9OQVMgICAgICAgICAgICAgICJOQVMgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX0FVRElPSU8gICAgICAgICAgIkF1ZGlvIElPIChTb2xhcmlzKSBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfQ09SRUFVRElPICAgICAgICAiQ29yZUF1ZGlvIFP8cvxj/HP8IgogICAgSURTX09QRU5fRFJJVkVSX0VSUk9SICAgICAgICIlcyBh5/1sYW1hZP0hIgogICAgSURTX1NPVU5ERFJJVkVSUyAgICAgICAgICAgICJTZXMgU/xy/GP8bGVyaSIKICAgIElEU19ERVZJQ0VTX1dBVkVPVVQgICAgICAgICAiRGFsZ2Egx/1r/f4gQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfV0FWRUlOICAgICAgICAgICJEYWxnYSBHaXJp/iBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19NSURJT1VUICAgICAgICAgIk1JREkgx/1r/f4gQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfTUlESUlOICAgICAgICAgICJNSURJIEdpcmn+IEF5Z/10bGFy/SIKICAgIElEU19ERVZJQ0VTX0FVWCAgICAgICAgICAgICAiQXV4IEF5Z/10bGFy/SIKICAgIElEU19ERVZJQ0VTX01JWEVSICAgICAgICAgICAiTWl4ZXIgQXln/XRsYXL9IgogICAgSURTX1VOQVZBSUxBQkxFX0RSSVZFUiAgICAgICJTaXN0ZW0ga2F5ZP1uZGEga3VsbGFu/WxhYmlsaXIgb2xtYXlhbiBiaXIgc/xy/GP8IGJ1bHVuZHUhXG5cblwiJXNcIiBnaXJp/mkgc2lzdGVtIGtheWT9bmRhbiBzaWxpbnNpbiBtaT8iCiAgICBJRFNfV0FSTklORyAgICAgICAgICAgICAgICAgIlV5YXL9IgpFTkQK