LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogUnVzc2lhbiBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDAzIElnb3IgU3RlcGluCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKgogKi8KCkxBTkdVQUdFIExBTkdfUlVTU0lBTiwgU1VCTEFOR19ERUZBVUxUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJDb25maWd1cmUiLCBJRENfQVVESU9fQ09ORklHVVJFCiAgICBFTkQKRU5ECgpJRERfQUJPVVRDRkcgRElBTE9HRVggMCwgMCwgMjYwLCAyNzAKU1RZTEUgV1NfQ0hJTEQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HLElEQ19TVEFUSUMsMTE5LDE3LDEyMCw4CiAgICBDT05UUk9MICAgICAgICAgSURCX1dJTkUsSURDX1NUQVRJQywiU3RhdGljIixTU19CSVRNQVAgLDE1LDE3LDE1NywxMTEKICAgIExURVhUICAgICAgICAgICAiaHR0cDovL3d3dy53aW5laHEub3JnLyIsSURDX1NUQVRJQywxMTksMzEsMTA2LDgKLyoKICAgIExURVhUICAgICAgICAgICAi3fLgIOHo4evo7vLl6uAg/+Lr/+Xy8f8g8eLu4e7k7fvsIO/w7uPw4Ozs7fvsIO7h5fHv5ffl7ejl7Dsg4vsg7O7m5fLlIPDg8e/w7vHy8ODt//L8IOW4IOgv6OvoIOzu5Oj06Pbo8O7i4PL8IPHu4+vg8e3uIPPx6+7i6P/sIOvo9uXt5+joIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwg7u/z4evo6u7i4O3t7ukgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyDi5fDx6OggMi4xIOvo9uXt5+joIOjr6CAo7eAg4uD45SDz8ezu8vDl7ejlKSDr/uHu6SDh7uvl5SDv7ufk7eXpLiIsCiovCiAgICBMVEVYVCAgICAgICAgICAgIlRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKRU5ECgpJRERfQVBQQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiDN4PHy8O7p6uAg7/Do6+7m5e3o6SAiLElEQ19TVEFUSUMsIDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIldpbmUg7O7m5fIg6Ozo8ujw7uLg8vwg8ODn7fvlIOLl8PHo6CBXaW5kb3dzIOTr/yDw4Oft+/Ug7/Do6+7m5e3o6S4g3fLgIOLq6+Dk6uAg8eL/5+Dt4CDxIOLq6+Dk6uDs6CDB6OHr6O7y5eroIOggw/Dg9Ojq4Cwg5Ov/IPLu4+4g9/Lu4fsg7+7n4u7r6PL8IOLg7CDo5+zl7ejy/CDj6+7h4Ov87fvlIO3g8fLw7unq6CDo6+gg7eDx8vDu6eroIPLu6/zq7iDk6/8g7u/w5eTl67jt7e7j7iDv8Ojr7ubl7ej/IPLg6ublIOgg4iD98uj1IOLq6+Dk6uD1LiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQywxNSwyMCwyMjcsNjAKICAgIENPTlRST0wgICAgICAgICAiz/Do6+7m5e3o/yIsSURDX0FQUF9MSVNUVklFVywiU3lzTGlzdFZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExWU19MSVNUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTLAogICAgICAgICAgICAgICAgICAgIDE1LDY1LDIzMCwxMzQKICAgIFBVU0hCVVRUT04JICAgICImxO7h4OLo8vwg7/Do6+7m5e3o5S4uLiIsSURDX0FQUF9BRERBUFAsIDY4LDIwNCw5NCwxNAogICAgUFVTSEJVVFRPTgkgICAgIibT5ODr6PL8IO/w6Ovu5uXt6OUiLElEQ19BUFBfUkVNT1ZFQVBQLCAxNjQsMjA0LDc4LDE0CiAgICBMVEVYVCAgICAgICAgICAgIibC5fDx6P8gV2luZG93czoiLElEQ19TVEFUSUMsMTcsMjI2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgzeDx8vDu6eroIO7q7eAgIixJRENfU1RBVElDLDgsNCwyNDQsMTgwCgogICAgQ09OVFJPTAkgICAgItDg5/Dl+Ojy/CDv8Ojr7ubl7ej+IERpcmVjdFgg8+Tl8Obo4uDy/CDs+/j8IOIg8eLuuOwg7urt5SIsSURDX0RYX01PVVNFX0dSQUIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwxNCwyMzUsOAogICAgQ09OVFJPTAkgICAgIsLq6/736PL8IOTi7unt8/4g4fP05fDo5+D26P4g8ODh7vfl4+4g8fLu6+AiLElEQ19ET1VCTEVfQlVGRkVSLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjQsMjMwLDgKICAgIENPTlRST0wJICAgICLQ4Ofw5fjo8vwg7OXt5eTm5fDzIO7q7u0g8+/w4OLr//L8IO7q7eDs6CIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMzQsMjMwLDgKCiAgICAvKiBGSVhNRTogdGhlIHdvcmRpbmcgb2YgdGhpcyBleHBsYW5hdGlvbiBjb3VsZCBiZSBhIGxvdCBiZXR0ZXIgKi8KICAgIExURVhUICAgICAgICAgICAixfHr6CDi6uv+9+jy/CD97PPr//bo/iDw4OHu9+Xj7iDx8u7r4Cwg8u4g4vHlIO7q7eAg4fPk8/Ig7vLu4fDg5uDy/PH/IOIg7uTt7uwgJ+Lo8PLz4Ov87e7sIP3q8ODt5ScsIOjt4PflIO7q7eAg8ODn7OX54P7y8f8g6uDqIO7h+/ft++UsIO3gIPHy4O3k4PDy7e7sIPDg4e735ewg8fLu6+UuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDEyNSwyMjgsMjgKICAgIExURVhUICAgICAgICAgICAi0ODn7OXwIPDg4e735ePuIPHy7uvgOiIsSURDX0RFU0tUT1BfU0laRSwxNSwxNjcsNDQsOCxXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDgsMTY3LDgsOCxXU19ESVNBQkxFRAogICAgQ09OVFJPTCAgICAgICAgICLd7PPr6PDu4uDy/CDi6PDy8+Dr/O376SDw4OHu9+jpIPHy7usiLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDE1MiwyMzAsMTAKCiAgICBFRElUVEVYVCAgICAgICAgSURDX0RFU0tUT1BfV0lEVEgsNjQsMTY3LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDE2Nyw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECgogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0M0QgIixJRENfU1RBVElDLDgsMTg5LDI0NCw1NQoKICAgIExURVhUCSAgICAiz+7k5OXw5urgIFZlcnRleCBTaGFkZXI6ICIsSURDX1NUQVRJQywxNSwxOTksMTIwLDMwCiAgICBDT01CT0JPWAkgICAgSURDX0QzRF9WU0hBREVSX01PREUsMTIwLDE5NywxMjUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCgogICAgQ09OVFJPTCAgICAgICAgICLC6uv+9+jy/CBQaXhlbCBTaGFkZXIgKOXx6+gg7+7k5OXw5uji4OXy8f8g7uHu8PPk7uLg7ejl7CkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjE2LDIzMCwxMApFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIMfg7OX55e3o/yBETEwgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBMVEVYVCAgICAgICAgICAgIsTo7eDs6Pfl8eroIO/u5Orr/vfg5ez75SDh6OHr6O7y5eroIOzu4/PyIOH78vwg4vHy8O7l7e377OggYnVpbHRpbiAo7/Dl5O7x8uDi6//+8vH/IFdpbmUpIOjr6CDw7uTt++zoIG5hdGl2ZSAo4eXw8/Lx/yDo5yBXaW5kb3dzIOjr6CDv8OXk7vHy4OLr//7y8f8g7/Do6+7m5e3o5ewpLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAize7i7uUg5+Ds5fnl7ejlIOTr/yDh6OHr6O7y5eroOiIsSURDX1NUQVRJQywxNiw1OCwxNjAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19ETExDT01CTywxNiw2OCwxNDAsMTQsQ0JTX0RST1BET1dOIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU09SVCB8IENCU19MT1dFUkNBU0UKICAgIFBVU0hCVVRUT04gICAgICAiJsTu4eDi6PL8IixJRENfRExMU19BRERETEwsIDE2NCw2OCw4MiwxMyxCU19ERUZQVVNIQlVUVE9OIAogICAgTFRFWFQgICAgICAgICAgICLR8/nl8fLi8/756OUg5+Ds5fnl7ej/OiIsSURDX1NUQVRJQywxNiw4NiwxMDAsOAogICAgTElTVEJPWCAgICAgICAgIElEQ19ETExTX0xJU1QsMTYsOTYsMTQwLDE0MCxXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfVlNDUk9MTAogICAgUFVTSEJVVFRPTiAgICAgICIm0OXk4Ory6PDu4uDy/CIsSURDX0RMTFNfRURJVERMTCwxNjQsOTYsODIsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJtPk4Ovo8vwiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTMwLCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi0OXk4Ory6PDu4uDy/CDn4Ozl+eXt6OUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM/u8P/k7uog5+Dj8PPn6uggIixJRENfU1RBVElDLDgsNCwxMTUsNjYKICAgIENPTlRST0wgICAgICAgICAiJsLx8vDu5e3t4P8gKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICIm0O7k7eD/IChXaW5kb3dzKSIsSURDX1JBRF9OQVRJVkUsIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiwxNiwyNCwxMDUsMTAKICAgIENPTlRST0wgICAgICAgICAiwibx8vDu5e3t4P8g5+Dy5ewg8O7k7eD/IixJRENfUkFEX0JVSUxUSU5fTkFUSVZFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsMzQsMTA1LDEwCiAgICBDT05UUk9MICAgICAgICAgItDu5Cbt4P8g5+Dy5ewg4vHy8O7l7e3g/yIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDEwNSwxMAogICAgQ09OVFJPTCAgICAgICAgICImwevu6ujw7uLg8vwiLElEQ19SQURfRElTQUJMRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDU0LDEwNSwxMAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSyw4LDc0LDQ1LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIs7y7OXt4CIsSURDQU5DRUwsNTcsNzQsNDUsMTQsV1NfR1JPVVAKRU5ECgpJRERfRFJJVkVDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIM3g8fLw7unq4CDk6PHq7uIgIixJRENfU1RBVElDLDgsNCwyNDQsMjQwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9EUklWRVMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwgMTUsMTgsMjMyLDc2CiAgICBQVVNIQlVUVE9OICAgICAgIibE7uHg4ujy/C4uLiIsSURDX0JVVFRPTl9BREQsMTUsOTgsNDUsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJtPk4Ovo8vwiLElEQ19CVVRUT05fUkVNT1ZFLDY2LDk4LDQ3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIibA4vLu7u/w5eTl6+Xt6OUuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxNjUsOTgsODAsMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJs/z8vw6IixJRENfU1RBVElDLDE1LDEyMywyMCw5ICAgIAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJs7h5+7wLi4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICIm0ujvOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICLM5fLq4CDoIPHl8Ojp7fvpIO3u7OXwIixJRENfTEFCRUxTRVJJQUxfU1RBVElDLDE1LDE1NSw5NSwxMAogICAgCiAgICBQVVNIQlVUVE9OICAgICAgIsTu7+7r7ejy5ev87e4uLi4iLElEQ19CVVRUT05fU0hPV19ISURFX0FEVkFOQ0VELDE1MCwxMzYsOTYsMTMKICAgIENPTlRST0wgICAgICAgICAiwOLy7u7v8OXk5evo8vwgJmMg8/Hy8O7p8fLi4DoiLElEQ19SQURJT19BVVRPREVURUNULCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxNjYsMTUwLDEwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfREVWSUNFLDI3LDE3NiwxNzQsMTMsRVNfQVVUT0hTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAizuEm5+7wLi4uIixJRENfQlVUVE9OX0JST1dTRV9ERVZJQ0UsMjA2LDE3Niw0MCwxMwogICAgQ09OVFJPTCAgICAgICAgICImzeDn7eD36PL8IOLw8/ft8/46IixJRENfUkFESU9fQVNTSUdOLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9SQURJT0JVVFRPTiwxNSwxOTUsMTAwLDEwCgogICAgTFRFWFQgICAgICAgICAgICImzOXy6uA6IixJRENfU1RBVElDX0xBQkVMLDMzLDIwOCwyOSwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0xBQkVMLDEwMywyMDUsMTE4LDEzLEVTX0FVVE9IU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLR5fDo6e376SDt7uzl8DoiLElEQ19TVEFUSUNfU0VSSUFMLDMzLDIyNSw4MCwxMgogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1NFUklBTCwxMDMsMjIxLDExOCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIs/u6uDn++Lg8vwg9ODp6/ssIO3g9+jt4P756OXx/yDxIPLu9+roIixJRENfU0hPV19ET1RfRklMRVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCw4LDI2MCwyMzAsOApFTkQKCklERF9BVURJT0NGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgRHJpdmVyIFNlbGVjdGlvbiAiLElEQ19TVEFUSUMsOCw0LDI0NCwxOTUKICAgIExURVhUCSAgICAix+Lz6u7i7ukg5PDg6eLl8DogIixJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJEZXZpY2VzIixJRENfQVVESU9fVFJFRSwiU3lzVHJlZVZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCwxNSw1MCwxNDAsMTQwCiAgICBQVVNIQlVUVE9OCSAgICAiz+Dt5ev8IPPv8ODi6+Xt6P8iLElEQ19BVURJT19DT05UUk9MX1BBTkVMLDE3MCw1MCw4MCwxNAogICAgR1JPVVBCT1ggICAgICAgICIgRGlyZWN0U291bmQgIixJRENfU1RBVElDLDgsMjA1LDI0NCw2MAogICAgTFRFWFQJICAgICLA7+/g8ODy7e7lIPPx6u7w5e3o5TogIixJRENfU1RBVElDLDE1LDIxNSw5MCwxMAogICAgQ09NQk9CT1gJICAgIElEQ19EU09VTkRfSFdfQUNDRUwsMTAwLDIxMywxNTAsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAgICAgIs/w7uPw4Ozs7eD/IP3s8+v/9uj/IixJRENfRFNPVU5EX0RSVl9FTVVMLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMjMwLDIzMCwxMApFTkQKCklERF9ERVNLVE9QX0lOVEVHUkFUSU9OIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBBcHBlYXJhbmNlICIsSURDX1NUQVRJQyw4LDQsMjQ0LDEwNgogICAgTFRFWFQgICAgICAgICAgICLS5ezgOiIsSURDX1NUQVRJQywxNSwxNiwyMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9USEVNRUNPTUJPLDE1LDI0LDIzMCwxNCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAi0/Hy4O3u4ujy/CDy5ezzLi4uIixJRENfVEhFTUVfSU5TVEFMTCwxNTIsMzgsOTMsMTQKICAgIExURVhUICAgICAgICAgICAi1uLl8joiLElEQ19USEVNRV9DT0xPUlRFWFQsMTUsNTQsMjMwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfQ09MT1JDT01CTywxNSw2MiwyMzAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgItDg5+zl8DoiLElEQ19USEVNRV9TSVpFVEVYVCwxNSw4MCwyMzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19USEVNRV9TSVpFQ09NQk8sMTUsODgsMjMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICIgU2hlbGwgRm9sZGVyICIsSURDX1NUQVRJQyw4LDExNCwyNDQsMTAwCiAgICBDT05UUk9MICAgICAgICAgIkxpc3R2aWV3IixJRENfTElTVF9TRlBBVEhTLCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwgTFZTX0FVVE9BUlJBTkdFIHwgTFZTX0FMSUdOTEVGVCB8CiAgICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxMjYsMjMwLDY0CiAgICBDT05UUk9MICAgICAgICAgIkxpbmsgdG86IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiQnJvd3NlIixJRENfQlJPV1NFX1NGUEFUSCwyMTUsMTk1LDMwLDEzLFdTX0RJU0FCTEVECkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19XSU5FX1ZFUlNJT04gICAgICAgICJDVlMiCiAgICBJRFNfVEFCX0FQUExJQ0FUSU9OUyAgICAiz/Do6+7m5e3o/yIKICAgIElEU19UQUJfRExMUyAgICAgICAgICAgICLB6OHr6O7y5eroIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIsTo8eroIgogICAgSURTX0NIT09TRV9QQVRIICAgICAgICAgIlNlbGVjdCB0aGUgdGFyZ2V0IHVuaXggZm9sZGVyLCBwbGVhc2UuIgogICAgSURTX0hJREVfQURWQU5DRUQgICAgICAgItHq8Pvy/CDk7u/u6+3o8uXr/O375SIKICAgIElEU19TSE9XX0FEVkFOQ0VEICAgICAgICLP7urg5+Dy/CDk7u/u6+3o8uXr/O375SIKICAgIElEU19OT1RIRU1FICAgICAgICAgICAgICIo4eXnIPLl7PspIgogICAgSURTX1RBQl9HUkFQSElDUyAgICAgICAgIsPw4PTo6uAiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIkRlc2t0b3AgSW50ZWdyYXRpb24iCiAgICBJRFNfVEFCX0FVRElPICAgICAgICAgICAiwPPk6O4iCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiziDv8O7j8ODs7OUiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAizeDx8vDu6ergIFdpbmUiCiAgICBJRFNfV0lORUNGR19USVRMRV9BUFAgICAiV2luZSBjb25maWd1cmF0aW9uIGZvciAlcyIKICAgIElEU19USEVNRUZJTEUgICAgICAgICAgICLU4Onr+yDy5ewiCiAgICBJRFNfVEhFTUVGSUxFX1NFTEVDVCAgICAiwvvh5fDo8uUg9ODp6yDxIPLl7O7pIgogICAgSURTX1NIRUxMX0ZPTERFUiAgICAgICAgIlNoZWxsIEZvbGRlciIKICAgIElEU19MSU5LU19UTyAgICAgICAgICAgICJMaW5rcyB0byIKRU5ECg==