LyoKICogUmVnZWRpdCAoUnVzc2lhbiByZXNvdXJjZXMpCiAqCiAqIENvcHlyaWdodCAyMDAzIElnb3IgU3RlcGluCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfUlVTU0lBTiwgU1VCTEFOR19ERUZBVUxUCgovKgogKiBNZW51CiAqLwoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJtDl5fHy8CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibI7O/u8PLo8O7i4PL8IPTg6esg8OXl8fLw4C4uLiIsICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICIm3erx7+7w8ujw7uLg8vwg9ODp6yDw5eXx8vDgLi4uIiwgICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibP7uTq6/736PL8IPHl8uXi7ukg8OXl8fLwLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIibO8urr/vfo8vwg8eXy5eLu6SDw5eXx8vAuLi4iLCAgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIibN4O/l9+Dy4PL8XHRDdHJsK1AiLCAgICAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLCJvvp8ugiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJs/w4OLq4CIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibI5+zl7ejy/CIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBQT1BVUCAi0e7n5Cbg8vwiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIsrrJv73IiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICIm0fLw7uru4u7lIOft4Pfl7ejlIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJsHo7eDw7e7lIOft4Pfl7ejlIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIOft4Pfl7ejlIiwgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJszt7uPu8fLw7uru4u7lIOft4Pfl7ejlIiwgICAgICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtPk4Ovo8vxcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIibP5fDl6Ozl7e7i4PL8XHRGMiIsICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICLRJuru7+jw7uLg8vwg6Oz/IOrr/vfgIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs3g6fLoXHRDdHJsK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIs3g6fLoICbk4Ovl5Vx0RjMiLCAgICAgICAgICAgICAgSURfRURJVF9GSU5ETkVYVCwgR1JBWUVECiAgICBFTkQKICAgIFBPUFVQICImwujkIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAi0fLw7urgICbx7vHy7v/t6P8iLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtDg5+Tl6+jy/CIsICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJs7h7e7i6PL8XHRGNSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgRU5ECiAgICBQT1BVUCAiJsjn4fDg7e3u5SIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIibE7uHg4ujy/CDiIOjn4fDg7e3u5S4uLiIsICAgICAgICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNICIm0+Tg6+jy/CDo5yDo5+Hw4O3t7uPuLi4uIiwgICAgICAgICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURQogICAgRU5ECiAgICBQT1BVUCAiJtHv8ODi6uAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICIm0e7k5fDm4O3o5SIsICAgICAgICAgICAgICAgIElEX0hFTFBfSEVMUFRPUElDUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImziDw5eTg6vLu8OUg8OXl8fLw4CIsICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAiJsjn7OXt6PL8IiwgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKCU1FTlVJVEVNICLI5+zl7ejy/CAm4ejt4PDt7uUg5+3g9+Xt6OUiLCBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIibT5ODr6PL8XHREZWwiLCAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiJs/l8OXo7OXt7uLg8vwiLCAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICBFTkQKICBQT1BVUCAiIgogIEJFR0lOCiAgICAgICAgUE9QVVAgItHu5+Qm4PL8IgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICLK6yb+9yIsICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gIibR8vDu6u7i7uUg5+3g9+Xt6OUiLCAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIibB6O3g8O3u5SDn7eD35e3o5SIsICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZEV09SRCDn7eD35e3o5SIsICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJszt7uPu8fLw7uru4u7lIOft4Pfl7ejlIiwgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJtPk4Ovo8vxcdERlbCIsICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiJs/l8OXo7OXt7uLg8vxcdEYyIiwgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJt3q8e/u8PLo8O7i4PL8Li4uIiwgICAgICAgICAgSURfRURJVF9FWFBPUlQKICAgICAgICBNRU5VSVRFTSAi0Sbq7u/o8O7i4PL8IOjs/yDq6/734CIsICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImzeDp8uhcdEN0cmwrRiIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogIEVORApFTkQKCgovKgogKiBEaWFsb2cKICovCgpJRERfRVhQT1JUX1RFTVBMQVRFIERJQUxPRyBESVNDQVJEQUJMRSAgNTAsIDUwLCAyNzgsIDU0ClNUWUxFIERTXzNETE9PSyB8IERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19DTElQU0lCTElOR1MgfAogICAgV1NfQk9SREVSCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICLd6vHv7vDyIPDl5fHy8OAiLCBJRENfRVhQT1JUX0JBU0UsIDYsIDYsIDI2NiwgNDIsIFdTX0dST1VQCiAgICBBVVRPUkFESU9CVVRUT04gIibC5fH8IPDl5fHy8CIsIElEQ19FWFBPUlRfQUxMLCAxMiwgMTUsIDI0NCwgMTIKICAgIEFVVE9SQURJT0JVVFRPTiAiwib74fDg7e3z/iDi5fLq8zoiLCBJRENfRVhQT1JUX1NFTEVDVEVELCAxMiwgMzAsIDgwLCAxMgogICAgRURJVFRFWFQgSURDX0VYUE9SVF9QQVRILCA5MiwgMzAsIDE3NCwgMTIKRU5ECgpJRERfRklORCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiz+7o8eoiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAizeDp8ug6IixJRENfU1RBVElDLDUsNywxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDQwLDUsMTIwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIExURVhUICAgICAgICAgICAiyPHq4PL8IOI6IixJRENfU1RBVElDLDUsIDIyLCAxMTksIDgKICAgIENIRUNLQk9YICAgICAgICAiyuv+9+D1IiwgSURDX0ZJTkRfS0VZUywgNSwgMzQsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IFdTX0dST1VQIHwgQlNfQVVUT0NIRUNLQk9YCiAgICBDSEVDS0JPWCAgICAgICAgIs3g5+Lg7ej/9SDn7eD35e3o6SIsIElEQ19GSU5EX1ZBTFVFUywgNSwgNDYsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICLR7uTl8Obo7O7sIiwgSURDX0ZJTkRfQ09OVEVOVCwgNSwgNTgsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgQ0hFQ0tCT1ggICAgICAgICLC8f4g8fLw7urzIPbl6+jq7uwiLCBJRENfRklORF9XSE9MRSwgNSwgNzAsIDkwLCAxMCwgV1NfVEFCU1RPUCB8IEJTX0FVVE9DSEVDS0JPWAogICAgREVGUFVTSEJVVFRPTiAgICLI8erg8vwiLElET0ssMTcwLDUsMzUsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAix+Dq8Pvy/CIsSURDQU5DRUwsMTcwLDIyLDM1LDExLCBXU19HUk9VUApFTkQKCklERF9BRERGQVZPUklURSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA1NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAixO7h4OLo8vwg6Ofh8ODt7e7lIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsjs/zoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMzAsNDAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3o8vwiLElEQ0FOQ0VMLDE2NSw0MCw0MCwxMSwgV1NfR1JPVVAKRU5ECgpJRERfREVMRkFWT1JJVEUgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgOTAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItPk4Ovo8vwg6Ofh8ODt7e7lIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIsjs/zoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBMSVNUQk9YICAgICAgICAgSURDX05BTUVfTElTVCw1LDE1LDIwMCw1MiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExCU19TT1JUIHwgTEJTX05PSU5URUdSQUxIRUlHSFQgfCBXU19WU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCw3MywzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7ejy/CIsSURDQU5DRUwsMTY1LDczLDQwLDExLCBXU19HUk9VUApFTkQKCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiyOfs5e3o8vwg8fLw7urzIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIs3g5+Lg7ejlIOft4Pfl7ej/OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICLE4O3t++U6IixJRENfU1RBVElDLDUsMzAsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IEVTX0FVVE9IU0NST0xMCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCw2MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICAgICLO8uzl7ejy/CIsSURDQU5DRUwsMTY1LDYwLDQwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLI5+zl7ejy/CBEV09SRCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLN4Ofi4O3o5SDn7eD35e3o/zoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAixODt7fvlOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfREFUQSw1LDQwLDkwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIsjx9+jx6+Xt6OUiLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICIxNi3y6CDw6Pft7uUiLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAixOXx//Lo9+3u5SIsIElEQ19EV09SRF9ERUMsIDEzMCwgNTIsIDYwLCAxMCwgV1NfVEFCU1RPUAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMzAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3o8vwiLElEQ0FOQ0VMLDE2NSw4MCw0MCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX0JJTkFSWSBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX05PSURMRU1TRyB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsjn7OXt6PL8IOHo7eDw7fvlIOTg7e375SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLN4Ofi4O3o5SDn7eD35e3o/zoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAixODt7fvlOiIsSURDX1NUQVRJQyw1LDMwLDkwLDgKICAgIENPTlRST0wgICAgICAgICAiIixJRENfVkFMVUVfREFUQSwiSGV4RWRpdCIsV1NfVEFCU1RPUCw0LDQwLDE2MCw0MAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxMzAsODAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3o8vwiLElEQ0FOQ0VMLDE2NSw4MCw0MCwxMSxXU19HUk9VUApFTkQKCklERF9FRElUX01VTFRJX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxNzUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsjn7OXt6PL8IOzt7uPu8fLw7uru4vvlIOTg7e375SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICLN4Ofi4O3o5SDn7eD35e3o/zoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTHwgV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICAgICAixODt7fvlOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgV1NfSFNDUk9MTCB8IFdTX1ZTQ1JPTEwgfCBFU19NVUxUSUxJTkUgfCBFU19XQU5UUkVUVVJOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEzMCwxNjAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAizvLs5e3o8vwiLElEQ0FOQ0VMLDE2NSwxNjAsNDAsMTEsV1NfR1JPVVAKRU5ECgovKgogKiBTdHJpbmcgVGFibGUKICovCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0xJU1RfQ09MVU1OX05BTUUgICAgIsjs/yIKICAgIElEU19MSVNUX0NPTFVNTl9UWVBFICAgICLS6O8iCiAgICBJRFNfTElTVF9DT0xVTU5fREFUQSAgICAixODt7fvlIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAi0OXk4Ory7vAg8OXl8fLw4CIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfUkVHSVNUUllfTUVOVSAgICAgICAgItHu5OXw5ujyIOru7ODt5Psg5Ov/IPDg4e7y+yDxIPDl5fHy8O7sIOIg9uXr7uwiCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAi0e7k5fDm6PIg6u7s4O3k+yDk6/8g8OXk4Ory6PDu4uDt6P8g5+3g9+Xt6Okg6OvoIOrr/vfl6SIKICAgIElEX1ZJRVdfTUVOVSAgICAgICAgICAgICLR7uTl8Obo8iDq7uzg7eT7IOTr/yDt4PHy8O7p6ugg7urt4CDw5eXx8vDgIgogICAgSURfRkFWT1JJVEVTX01FTlUgICAgICAgItHu5OXw5ujyIOru7ODt5Psg5Ov/IOTu8fLz7+Ag6iD34PHy7iDo8e/u6/zn8+Xs++wg6uv+9+DsIgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgItHu5OXw5ujyIOru7ODt5Psg5Ov/IO7y7uHw4Obl7ej/IPHv8ODi6ugg6CDo7fTu8Ozg9ujoIO4g8OXk4Ory7vDlIPDl5fHy8OAiCiAgICBJRF9FRElUX05FV19NRU5VICAgICAgICAi0e7k5fDm6PIg6u7s4O3k+yDk6/8g8e7n5ODt6P8g7e7i+/Ug6uv+9+XpIOjr6CDn7eD35e3o6SIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRURJVF9NT0RJRlkgICAgICAgICAgIsjn7OXt/+XyIOft4Pfl7ejlIO/g8ODs5fLw4CIKICAgIElEX0VESVRfTkVXX0tFWSAgICAgICAgICLE7uHg4uv/5fIg7e7i++kg6uv+9yIKICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFICLE7uHg4uv/5fIg7e7i7uUg8fLw7uru4u7lIOft4Pfl7ejlIgogICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUgIsTu4eDi6//l8iDt7uLu5SDh6O3g8O3u5SDn7eD35e3o5SIKICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUgICLE7uHg4uv/5fIg7e7i7uUgRFdPUkQt5+3g9+Xt6OUiCiAgICBJRF9FRElUX05FV19NVUxUSV9TVFJJTkdWQUxVRSAixO7h4OLr/+XyIO3u4u7lIOzt7uPu8fLw7uru4u7lIOft4Pfl7ejlIgogICAgSURfUkVHSVNUUllfSU1QT1JUUkVHSVNUUllGSUxFICLI7O/u8PLo8PPl8iDy5erx8u7i7ukg9ODp6yDiIPDl5fHy8CIKICAgIElEX1JFR0lTVFJZX0VYUE9SVFJFR0lTVFJZRklMRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIt3q8e/u8PLo8PPl8iDi5fH8IPDl5fHy8CDo6+gg5ePuIPfg8fL8IOIg8uXq8fLu4u7pIPTg6esiCiAgICBJRF9SRUdJU1RSWV9DT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiz+7k6uv+9+Dl8vH/IOog8OXl8fLw8yDz5ODruO3t7uPuIOru7O/8/vLl8OAiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAizvLq6/734OXy8f8g7vIg8OXl8fLw4CDz5ODruO3t7uPuIOru7O/8/vLl8OAiCiAgICBJRF9SRUdJU1RSWV9QUklOVCAgICAgICAiz+X34PLg5fIg4uXx/CDw5eXx8vAg6OvoIOXj7iD34PHy/CIKLyogICAgSURfSEVMUF9IRUxQVE9QSUNTICAgICAgIk9wZW5zIHJlZ2lzdHJ5IGVkaXRvciBoZWxwIiAqLwogICAgSURfSEVMUF9BQk9VVCAgICAgICAgICAgIs7y7uHw4Obg5fIg6O307vDs4Pbo/iDuIO/w7uPw4Ozs5Swg7e7s5fAg4uXw8ejoIOgg8e/o8e7qIODi8u7w7uIiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEX1JFR0lTVFJZX0VYSVQgICAgICAgICLC+/Xu5CDo5yDw5eTg6vLu8OAg8OXl8fLw4CIKICAgIElEX0ZBVk9SSVRFU19BRERUT0ZBVk9SSVRFUyAixO7h4OLo8vwg6uv+9yDiIOjn4fDg7e3u5SIKICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURSAi0+Tg6+jy/CDq6/73IOjnIOjn4fDg7e3u4+4iCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiz+7q4Ofg8vwg6OvoIPHq8Pvy/CDx8vDu6vMg8e7x8u7/7ej/IgogICAgSURfVklFV19TUExJVCAgICAgICAgICAgIsjn7OXt6PL8IO/u5+j26P4g8ODn5OXr6PLl6/8g7OXm5PMg5OLz7P8g7+Dt5ev/7OgiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAizuHt7uLr/+XyIO7q7e4iCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAi0+Tg6//l8iDi++Tl6+Xt6OUiCiAgICBJRF9FRElUX1JFTkFNRSAgICAgICAgICAiz+Xw5ejs5e3u4vvi4OXyIOL75OXr5e3o5SIKICAgIElEX0VESVRfQ09QWUtFWU5BTUUgICAgICLK7u/o8PPl8iDo7P8g4vvk5evl7e3u4+4g6uv+9+Ag4iDh8/Tl8CDu4ezl7eAiCiAgICBJRF9FRElUX0ZJTkQgICAgICAgICAgICAiyPnl8iDy5erx8u7i8/4g8fLw7urzIOIg6uv+9+UsIOft4Pfl7ejoIOjr6CDk4O3t+/UiCiAgICBJRF9FRElUX0ZJTkRORVhUICAgICAgICAiyPnl8iDx6+Xk8/755eUg8e7i7+Dk5e3o5SDy5erx8uAsIOfg5ODt7e7j7iDiIO/w5eT75PP55ewg7+7o8erlIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfRVJST1IJCSAgICAizvjo4ergIgogICAgSURTX0JBRF9LRVkJCSAgICAizeXi7ufs7ubt7iDn4O/w7vHo8vwg6uv+9yAnJXMnIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIs3l4u7n7O7m7e4g5+Dv8O7x6PL8IOft4Pfl7ejlICclcyciCiAgICBJRFNfVU5TVVBQT1JURURfVFlQRSAgICAi0OXk4Ory6PDu4uDt6OUg6uv+9+XpIPLo7+AgKCV1KSDt5SDv7uTk5fDm6OLg5fLx/yIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICLH7eD35e3o5SDx6+j46u7sIOLl6+jq7iAoJXUpIgogICAgSURTX0RFTEVURV9CT1hfVElUTEUgICAgIs/u5PLi5fDm5OXt6OUiCiAgICBJRFNfREVMRVRFX0JPWF9URVhUICAgICAi0+Tg6+jy/CDn7eD35e3o5SAnJXMnPyIKICAgIElEU19ERUxFVEVfQk9YX1RFWFRfTVVMVElQTEUgIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlc2UgdmFsdWVzPyIKICAgIElEU19ORVdLRVkgICAgICAgICAgICAgICLN7uL76SDq6/73ICMlZCIKICAgIElEU19ORVdWQUxVRSAgICAgICAgICAgICLN7uLu5SDn7eD35e3oICMlZCIKICAgIElEU19OT1RGT1VORCAgICAgICAgICAgICLI8eru7OD/IPHy8O7q4CAnJXMnIO3lIO3g6eTl7eAiCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19GSUxFRElBTE9HX0lNUE9SVF9USVRMRSAgICLI7O/u8PIg9ODp6+Ag8OXl8fLw4CIKICAgIElEU19GSUxFRElBTE9HX0VYUE9SVF9USVRMRSAgICLd6vHv7vDyIPTg6evgIPDl5fHy8OAiCiAgICBJRFNfRklMRURJQUxPR19GSUxURVIgICAgICAgICAiwvHlIPTg6ev7IPDl5fHy8OBcMCoucmVnXDDU4Onr+yDw5eXx8vDgIOTr/yBXaW45eC9OVDQgKFJFR0VESVQ0KVwwKi5yZWdcMMLx5SD04Onr+yAoKi4qKVwwKi4qXDBcMCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1JFR0lTVFJZX1JPT1RfTkFNRSAgICAgICAgICAgIszu6SDK7uzv/P7y5fAiCiAgICBJRFNfUkVHSVNUUllfREVGQVVMVF9WQUxVRSAgICAgICAiKM/uIPPs7uv34O3o/ikiCiAgICBJRFNfUkVHSVNUUllfVkFMVUVfTk9UX1NFVCAgICAgICAiKOft4Pfl7ejlIO3lIOfg5ODt7ikiCiAgICBJRFNfUkVHSVNUUllfVkFMVUVfQ0FOVF9ESVNQTEFZICAiKO3l4u7n7O7m7e4g7vLu4fDg5+jy/CkiCiAgICBJRFNfUkVHSVNUUllfVU5LTk9XTl9UWVBFICAgICAgICAiKO3l6Ofi5fHy7e4gJWQpIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg==