Mining Smart Contract

Words
1
Reading
1 min
Listen
Play
6y

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"mining","params":"","code":"Y29uc3QgUFJPUEVSVFlfT1BTPXtBREQ6e2FkZDooeCx5KT0+YXBpLkJpZ051bWJlcih4KS5wbHVzKHkpLHJlbW92ZTooeCx5KT0+YXBpLkJpZ051bWJlcih4KS5taW51cyh5KSxkZWZhdWx0VmFsdWU6MH0sTVVMVElQTFk6e2FkZDooeCx5KT0+YXBpLkJpZ051bWJlcih4KS5tdWx0aXBsaWVkQnkoeSkscmVtb3ZlOih4LHkpPT5hcGkuQmlnTnVtYmVyKHgpLmRpdmlkZWRCeSh5KSxkZWZhdWx0VmFsdWU6MX19O2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygibWluaW5nUG93ZXIiKSl7YXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJtaW5pbmdQb3dlciIsWyJpZCIsInBvd2VyIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZSgicG9vbHMiLFsiaWQiXSksYXdhaXQgYXBpLmRiLmNyZWF0ZVRhYmxlKCJ0b2tlblBvb2xzIixbInN5bWJvbCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17cG9vbENyZWF0aW9uRmVlOiIxMDAwIixwb29sVXBkYXRlRmVlOiIzMDAiLG1heExvdHRlcmllc1BlckJsb2NrOjIwLG1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2s6MWU0LHByb2Nlc3NRdWVyeUxpbWl0OjFlM307YXdhaXQgYXBpLmRiLmluc2VydCgicGFyYW1zIixwYXJhbXMpfWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygibmZ0VG9rZW5Qb29scyIpfHxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoIm5mdFRva2VuUG9vbHMiLFsic3ltYm9sIl0pfSxhY3Rpb25zLnVwZGF0ZVBhcmFtcz1hc3luYyBwYXlsb2FkPT57aWYoYXBpLnNlbmRlciE9PWFwaS5vd25lcilyZXR1cm47Y29uc3R7cG9vbENyZWF0aW9uRmVlOnBvb2xDcmVhdGlvbkZlZSxwb29sVXBkYXRlRmVlOnBvb2xVcGRhdGVGZWUsbWF4TG90dGVyaWVzUGVyQmxvY2s6bWF4TG90dGVyaWVzUGVyQmxvY2ssbWF4QmFsYW5jZXNQcm9jZXNzZWRQZXJCbG9jazptYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrLHByb2Nlc3NRdWVyeUxpbWl0OnByb2Nlc3NRdWVyeUxpbWl0fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocG9vbENyZWF0aW9uRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvb2xDcmVhdGlvbkZlZSYmIWFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkuZ3RlKDApLCJpbnZhbGlkIHBvb2xDcmVhdGlvbkZlZSIpKXJldHVybjtwYXJhbXMucG9vbENyZWF0aW9uRmVlPXBvb2xDcmVhdGlvbkZlZX1pZihwb29sVXBkYXRlRmVlKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHBvb2xVcGRhdGVGZWUmJiFhcGkuQmlnTnVtYmVyKHBvb2xVcGRhdGVGZWUpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIocG9vbFVwZGF0ZUZlZSkuZ3RlKDApLCJpbnZhbGlkIHBvb2xVcGRhdGVGZWUiKSlyZXR1cm47cGFyYW1zLnBvb2xVcGRhdGVGZWU9cG9vbFVwZGF0ZUZlZX1pZihtYXhMb3R0ZXJpZXNQZXJCbG9jayl7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihtYXhMb3R0ZXJpZXNQZXJCbG9jaykmJm1heExvdHRlcmllc1BlckJsb2NrPj0xLCJpbnZhbGlkIG1heExvdHRlcmllc1BlckJsb2NrIikpcmV0dXJuO3BhcmFtcy5tYXhMb3R0ZXJpZXNQZXJCbG9jaz1tYXhMb3R0ZXJpZXNQZXJCbG9ja31pZihtYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrKXtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKG1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2spJiZtYXhCYWxhbmNlc1Byb2Nlc3NlZFBlckJsb2NrPj0xLCJpbnZhbGlkIG1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2siKSlyZXR1cm47cGFyYW1zLm1heEJhbGFuY2VzUHJvY2Vzc2VkUGVyQmxvY2s9bWF4QmFsYW5jZXNQcm9jZXNzZWRQZXJCbG9ja31pZihwcm9jZXNzUXVlcnlMaW1pdCl7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihwcm9jZXNzUXVlcnlMaW1pdCkmJnByb2Nlc3NRdWVyeUxpbWl0Pj0xLCJpbnZhbGlkIHByb2Nlc3NRdWVyeUxpbWl0IikpcmV0dXJuO3BhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdD1wcm9jZXNzUXVlcnlMaW1pdH1hd2FpdCBhcGkuZGIudXBkYXRlKCJwYXJhbXMiLHBhcmFtcyl9O2NvbnN0IGZpbmRBbmRQcm9jZXNzQWxsPWFzeW5jKGNvbnRyYWN0TmFtZSx0YWJsZSxxdWVyeSxjYWxsYmFjayk9PntsZXQgb2Zmc2V0PTAscmVzdWx0cz1bXSxkb25lPSExO2Zvcig7IWRvbmU7KWlmKHJlc3VsdHM9YXdhaXQgYXBpLmRiLmZpbmRJblRhYmxlKGNvbnRyYWN0TmFtZSx0YWJsZSxxdWVyeSwxZTMsb2Zmc2V0KSxyZXN1bHRzKXtmb3IobGV0IGk9MDtpPHJlc3VsdHMubGVuZ3RoO2krPTEpYXdhaXQgY2FsbGJhY2socmVzdWx0c1tpXSk7cmVzdWx0cy5sZW5ndGg8MWUzP2RvbmU9ITA6b2Zmc2V0Kz0xZTN9fTtmdW5jdGlvbiB2YWxpZGF0ZU5mdFByb3BlcnRpZXMocHJvcGVydGllcyl7aWYoIWFwaS5hc3NlcnQocHJvcGVydGllcyYmQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSwiaW52YWxpZCBuZnRUb2tlbk1pbmVyIHByb3BlcnRpZXMiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChwcm9wZXJ0aWVzLmxlbmd0aD4wJiZwcm9wZXJ0aWVzLmxlbmd0aDw9NCwibmZ0VG9rZW5NaW5lciBwcm9wZXJ0aWVzIHNpemUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDQiKSlyZXR1cm4hMTtmb3IobGV0IGk9MDtpPHByb3BlcnRpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHByb3A9cHJvcGVydGllc1tpXSxwcm9wS2V5cz1PYmplY3Qua2V5cyhwcm9wKTtmb3IobGV0IGo9MDtqPHByb3BLZXlzLmxlbmd0aDtqKz0xKXtjb25zdCBwcm9wS2V5PXByb3BLZXlzW2pdO2lmKCJvcCI9PT1wcm9wS2V5KXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHByb3Aub3AmJlBST1BFUlRZX09QU1twcm9wLm9wXSwibmZ0VG9rZW5NaW5lciBwcm9wZXJ0aWVzIG9wIHNob3VsZCBiZSBBREQgb3IgTVVMVElQTFkiKSlyZXR1cm4hMX1lbHNle2lmKCJuYW1lIiE9PXByb3BLZXkpcmV0dXJuIGFwaS5hc3NlcnQoITEsIm5mdFRva2VuTWluZXIgcHJvcGVydGllcyBmaWVsZCBpbnZhbGlkIiksITE7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBwcm9wLm5hbWUmJnByb3AubmFtZS5sZW5ndGg8PTE2LCJuZnRUb2tlbk1pbmVyIHByb3BlcnRpZXMgbmFtZSBzaG91bGQgYmUgYSBzdHJpbmcgb2YgbGVuZ3RoIDw9IDE2IikpcmV0dXJuITF9fX1yZXR1cm4hMH1mdW5jdGlvbiB2YWxpZGF0ZU5mdFR5cGVNYXAodHlwZU1hcCxwcm9wZXJ0aWVzKXtpZighYXBpLmFzc2VydCh0eXBlTWFwJiYib2JqZWN0Ij09dHlwZW9mIHR5cGVNYXAsImludmFsaWQgbmZ0VG9rZW5NaW5lciB0eXBlTWFwIikpcmV0dXJuITE7Y29uc3QgdHlwZXM9T2JqZWN0LmtleXModHlwZU1hcCk7Zm9yKGxldCBqPTA7ajx0eXBlcy5sZW5ndGg7ais9MSl7Y29uc3QgdHlwZUNvbmZpZz10eXBlTWFwW3R5cGVzW2pdXTtpZighYXBpLmFzc2VydChBcnJheS5pc0FycmF5KHR5cGVDb25maWcpJiZ0eXBlQ29uZmlnLmxlbmd0aD09PXByb3BlcnRpZXMubGVuZ3RoLCJuZnRUb2tlbk1pbmVyIHR5cGVDb25maWcgbGVuZ3RoIG1pc21hdGNoIikpcmV0dXJuITE7Zm9yKGxldCBrPTA7azx0eXBlQ29uZmlnLmxlbmd0aDtrKz0xKWlmKCFhcGkuYXNzZXJ0KCFhcGkuQmlnTnVtYmVyKHR5cGVDb25maWdba10pLmlzTmFOKCksIm5mdFRva2VuTWluZXIgdHlwZUNvbmZpZyBpbnZhbGlkIikpcmV0dXJuITF9cmV0dXJuITB9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVUb2tlbk1pbmVycyh0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyKXtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVycyYmQXJyYXkuaXNBcnJheSh0b2tlbk1pbmVycyksInRva2VuTWluZXJzIGludmFsaWQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVycy5sZW5ndGg+PTEmJnRva2VuTWluZXJzLmxlbmd0aDw9Mnx8bmZ0VG9rZW5NaW5lciYmMD09PXRva2VuTWluZXJzLmxlbmd0aCwib25seSAxIG9yIDIgdG9rZW5NaW5lcnMgYWxsb3dlZCIpKXJldHVybiExO2NvbnN0IHRva2VuTWluZXJTeW1ib2xzPW5ldyBTZXQ7Zm9yKGxldCBpPTA7aTx0b2tlbk1pbmVycy5sZW5ndGg7aSs9MSl7Y29uc3QgdG9rZW5NaW5lckNvbmZpZz10b2tlbk1pbmVyc1tpXTtpZighYXBpLmFzc2VydCh0b2tlbk1pbmVyQ29uZmlnJiZ0b2tlbk1pbmVyQ29uZmlnLnN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiB0b2tlbk1pbmVyQ29uZmlnLnN5bWJvbCwidG9rZW5NaW5lcnMgaW52YWxpZCIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KCF0b2tlbk1pbmVyU3ltYm9scy5oYXModG9rZW5NaW5lckNvbmZpZy5zeW1ib2wpLCJ0b2tlbk1pbmVycyBjYW5ub3QgaGF2ZSBkdXBsaWNhdGUgc3ltYm9scyIpKXJldHVybiExO3Rva2VuTWluZXJTeW1ib2xzLmFkZCh0b2tlbk1pbmVyQ29uZmlnLnN5bWJvbCk7Y29uc3R7c3ltYm9sOnN5bWJvbH09dG9rZW5NaW5lckNvbmZpZyx0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydCh0b2tlbiYmdG9rZW4uc3Rha2luZ0VuYWJsZWQsInRva2VuTWluZXJzIG11c3QgaGF2ZSBzdGFraW5nIGVuYWJsZWQiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHRva2VuTWluZXJDb25maWcubXVsdGlwbGllcikmJnRva2VuTWluZXJDb25maWcubXVsdGlwbGllcj49MSYmdG9rZW5NaW5lckNvbmZpZy5tdWx0aXBsaWVyPD0xMDAsInRva2VuTWluZXIgbXVsdGlwbGllciBtdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxIHRvIDEwMCIpKXJldHVybiExfWlmKG5mdFRva2VuTWluZXIpe2lmKCFhcGkuYXNzZXJ0KG5mdFRva2VuTWluZXIuc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIG5mdFRva2VuTWluZXIuc3ltYm9sLCJuZnRUb2tlbk1pbmVyIGludmFsaWQiKSlyZXR1cm4hMTtjb25zdHtzeW1ib2w6c3ltYm9sLHR5cGVNYXA6dHlwZU1hcCxwcm9wZXJ0aWVzOnByb3BlcnRpZXN9PW5mdFRva2VuTWluZXIsbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydChuZnQmJm5mdC5kZWxlZ2F0aW9uRW5hYmxlZCwibmZ0VG9rZW5NaW5lciBtdXN0IGhhdmUgZGVsZWdhdGlvbiBlbmFibGVkIikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQobmZ0LnByb3BlcnRpZXMudHlwZSYmInN0cmluZyI9PT1uZnQucHJvcGVydGllcy50eXBlLnR5cGUsIm5mdFRva2VuTWluZXIgbXVzdCBoYXZlIHN0cmluZyB0eXBlIHByb3BlcnR5IikpcmV0dXJuITE7aWYoIXZhbGlkYXRlTmZ0UHJvcGVydGllcyhwcm9wZXJ0aWVzKSlyZXR1cm4hMTtpZighdmFsaWRhdGVOZnRUeXBlTWFwKHR5cGVNYXAscHJvcGVydGllcykpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gdmFsaWRhdGVUb2tlbk1pbmVyc0NoYW5nZShvbGRUb2tlbk1pbmVycyx0b2tlbk1pbmVycyxvbGROZnRUb2tlbk1pbmVyLG5mdFRva2VuTWluZXIpe2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluZXJzLmxlbmd0aD09PW9sZFRva2VuTWluZXJzLmxlbmd0aCwiY2Fubm90IGNoYW5nZSB3aGljaCB0b2tlbnMgYXJlIGluIHRva2VuTWluZXJzIikpcmV0dXJuITE7bGV0IGNoYW5nZWQ9ITE7Zm9yKGxldCBpPTA7aTx0b2tlbk1pbmVycy5sZW5ndGg7aSs9MSl7Y29uc3Qgb2xkQ29uZmlnPW9sZFRva2VuTWluZXJzW2ldLG5ld0NvbmZpZz10b2tlbk1pbmVyc1tpXTtpZighYXBpLmFzc2VydChvbGRDb25maWcuc3ltYm9sPT09bmV3Q29uZmlnLnN5bWJvbCwiY2Fubm90IGNoYW5nZSB3aGljaCB0b2tlbnMgYXJlIGluIHRva2VuTWluZXJzIikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihuZXdDb25maWcubXVsdGlwbGllcikmJm5ld0NvbmZpZy5tdWx0aXBsaWVyPj0xJiZuZXdDb25maWcubXVsdGlwbGllcjw9MTAwLCJ0b2tlbk1pbmVyIG11bHRpcGxpZXIgbXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMSB0byAxMDAiKSlyZXR1cm4hMTtvbGRDb25maWcubXVsdGlwbGllciE9PW5ld0NvbmZpZy5tdWx0aXBsaWVyJiYoY2hhbmdlZD0hMCl9aWYoIWFwaS5hc3NlcnQoISFvbGROZnRUb2tlbk1pbmVyPT0hIW5mdFRva2VuTWluZXIsImNhbm5vdCBjaGFuZ2UgbmZ0VG9rZW5NaW5lciB0b2tlbiIpKXJldHVybiExO2lmKG5mdFRva2VuTWluZXIpe2lmKCFhcGkuYXNzZXJ0KG9sZE5mdFRva2VuTWluZXIuc3ltYm9sPT09bmZ0VG9rZW5NaW5lci5zeW1ib2wsImNhbm5vdCBjaGFuZ2UgbmZ0VG9rZW5NaW5lciB0b2tlbiIpKXJldHVybiExO2NvbnN0e3R5cGVNYXA6dHlwZU1hcCxwcm9wZXJ0aWVzOnByb3BlcnRpZXN9PW5mdFRva2VuTWluZXI7aWYoIWFwaS5hc3NlcnQodHlwZU1hcCYmIm9iamVjdCI9PXR5cGVvZiB0eXBlTWFwLCJpbnZhbGlkIG5mdFRva2VuTWluZXIgdHlwZU1hcCIpKXJldHVybiExO2lmKCF2YWxpZGF0ZU5mdFByb3BlcnRpZXMocHJvcGVydGllcykpcmV0dXJuITE7aWYocHJvcGVydGllcy5sZW5ndGghPT1vbGROZnRUb2tlbk1pbmVyLnByb3BlcnRpZXMubGVuZ3RoKWNoYW5nZWQ9ITA7ZWxzZSBmb3IobGV0IGk9MDtpPHByb3BlcnRpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHByb3A9cHJvcGVydGllc1tpXSxvbGRQcm9wPW9sZE5mdFRva2VuTWluZXIucHJvcGVydGllc1tpXTtwcm9wLm9wIT09b2xkUHJvcC5vcCYmKGNoYW5nZWQ9ITApfWlmKCF2YWxpZGF0ZU5mdFR5cGVNYXAodHlwZU1hcCxwcm9wZXJ0aWVzKSlyZXR1cm4hMTtjb25zdCBvbGRUeXBlcz1PYmplY3Qua2V5cyhvbGROZnRUb2tlbk1pbmVyLnR5cGVNYXApO2ZvcihsZXQgaT0wO2k8b2xkVHlwZXMubGVuZ3RoO2krPTEpe2NvbnN0IG9sZFR5cGU9b2xkVHlwZXNbaV0sb2xkVHlwZUNvbmZpZz1vbGROZnRUb2tlbk1pbmVyLnR5cGVNYXBbb2xkVHlwZV0sdHlwZUNvbmZpZz10eXBlTWFwW29sZFR5cGVdO2lmKCFhcGkuYXNzZXJ0KHR5cGVDb25maWcsInR5cGVDb25maWcgdHlwZXMgbXVzdCBiZSBhIHN1cGVyc2V0IG9mIG9sZCB0eXBlQ29uZmlnIHR5cGVzIikpcmV0dXJuITE7Zm9yKGxldCBqPTA7ajx0eXBlQ29uZmlnLmxlbmd0aDtqKz0xKW9sZFR5cGVDb25maWdbal0hPT10eXBlQ29uZmlnW2pdJiYoY2hhbmdlZD0hMCl9fXJldHVybntjaGFuZ2VkOmNoYW5nZWR9fWZ1bmN0aW9uIGNvbXB1dGVNaW5pbmdQb3dlcihtaW5pbmdQb3dlcix0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyKXtsZXQgcG93ZXI9YXBpLkJpZ051bWJlcigwKTtmb3IobGV0IGk9MDtpPHRva2VuTWluZXJzLmxlbmd0aDtpKz0xKW1pbmluZ1Bvd2VyLmJhbGFuY2VzW2ldJiYocG93ZXI9cG93ZXIucGx1cyhhcGkuQmlnTnVtYmVyKG1pbmluZ1Bvd2VyLmJhbGFuY2VzW2ldKS5tdWx0aXBsaWVkQnkodG9rZW5NaW5lcnNbaV0ubXVsdGlwbGllcikpKTtpZihuZnRUb2tlbk1pbmVyJiZtaW5pbmdQb3dlci5uZnRCYWxhbmNlcyl7bGV0IG5mdFBvd2VyPWFwaS5CaWdOdW1iZXIoMSk7Zm9yKGxldCBpPTA7aTxuZnRUb2tlbk1pbmVyLnByb3BlcnRpZXMubGVuZ3RoO2krPTEpbmZ0UG93ZXI9bmZ0UG93ZXIubXVsdGlwbGllZEJ5KG1pbmluZ1Bvd2VyLm5mdEJhbGFuY2VzW2ldKTtwb3dlcj1wb3dlci5wbHVzKG5mdFBvd2VyKX1yZXR1cm4gcG93ZXIuaXNQb3NpdGl2ZSgpJiZwb3dlci5pc0Zpbml0ZSgpP3Bvd2VyOmFwaS5CaWdOdW1iZXIoMCl9YXN5bmMgZnVuY3Rpb24gdXBkYXRlTWluaW5nUG93ZXIocG9vbCx0b2tlbixhY2NvdW50LHN0YWtlZFF1YW50aXR5LGRlbGVnYXRlZFF1YW50aXR5LHJlc2V0KXtsZXQgbWluaW5nUG93ZXI9YXdhaXQgYXBpLmRiLmZpbmRPbmUoIm1pbmluZ1Bvd2VyIix7aWQ6cG9vbC5pZCxhY2NvdW50OmFjY291bnR9KSxzdGFrZT1hcGkuQmlnTnVtYmVyKHN0YWtlZFF1YW50aXR5KSxvbGRNaW5pbmdQb3dlcj1hcGkuQmlnTnVtYmVyKDApO3N0YWtlPXN0YWtlLnBsdXMoZGVsZWdhdGVkUXVhbnRpdHkpO2NvbnN0IHRva2VuSW5kZXg9cG9vbC50b2tlbk1pbmVycy5maW5kSW5kZXgodD0+dC5zeW1ib2w9PT10b2tlbik7aWYobWluaW5nUG93ZXIpbWluaW5nUG93ZXIuYmFsYW5jZXNbdG9rZW5JbmRleF0mJiFyZXNldHx8KG1pbmluZ1Bvd2VyLmJhbGFuY2VzW3Rva2VuSW5kZXhdPSIwIiksbWluaW5nUG93ZXIuYmFsYW5jZXNbdG9rZW5JbmRleF09c3Rha2UucGx1cyhtaW5pbmdQb3dlci5iYWxhbmNlc1t0b2tlbkluZGV4XSksb2xkTWluaW5nUG93ZXI9bWluaW5nUG93ZXIucG93ZXIuJG51bWJlckRlY2ltYWw7ZWxzZXtjb25zdCBiYWxhbmNlcz17fTtiYWxhbmNlc1t0b2tlbkluZGV4XT1zdGFrZSxtaW5pbmdQb3dlcj17aWQ6cG9vbC5pZCxhY2NvdW50OmFjY291bnQsYmFsYW5jZXM6YmFsYW5jZXMscG93ZXI6eyRudW1iZXJEZWNpbWFsOiIwIn19LG1pbmluZ1Bvd2VyPWF3YWl0IGFwaS5kYi5pbnNlcnQoIm1pbmluZ1Bvd2VyIixtaW5pbmdQb3dlcil9Y29uc3QgbmV3TWluaW5nUG93ZXI9Y29tcHV0ZU1pbmluZ1Bvd2VyKG1pbmluZ1Bvd2VyLHBvb2wudG9rZW5NaW5lcnMscG9vbC5uZnRUb2tlbk1pbmVyKTtyZXR1cm4gbWluaW5nUG93ZXIucG93ZXI9eyRudW1iZXJEZWNpbWFsOm5ld01pbmluZ1Bvd2VyfSxhd2FpdCBhcGkuZGIudXBkYXRlKCJtaW5pbmdQb3dlciIsbWluaW5nUG93ZXIpLG5ld01pbmluZ1Bvd2VyLm1pbnVzKG9sZE1pbmluZ1Bvd2VyKX1mdW5jdGlvbiBnZXROZnRBY2NvdW50KG5mdCl7cmV0dXJuIm1pbmluZyI9PT1uZnQuZGVsZWdhdGVkVG8uYWNjb3VudCYmImMiPT09bmZ0LmRlbGVnYXRlZFRvLm93bmVkQnk/bmZ0LmFjY291bnQ6InUiPT09bmZ0LmRlbGVnYXRlZFRvLm93bmVkQnk/bmZ0LmRlbGVnYXRlZFRvLmFjY291bnQ6bnVsbH1hc3luYyBmdW5jdGlvbiB1cGRhdGVOZnRNaW5pbmdQb3dlcihwb29sLG5mdCx0eXBlUHJvcGVydGllcyxhZGQsdXBkYXRlUG9vbFRpbWVzdGFtcCl7Y29uc3QgYWNjb3VudD1nZXROZnRBY2NvdW50KG5mdCk7aWYoIWFjY291bnQpcmV0dXJuIDA7bGV0IG1pbmluZ1Bvd2VyPWF3YWl0IGFwaS5kYi5maW5kT25lKCJtaW5pbmdQb3dlciIse2lkOnBvb2wuaWQsYWNjb3VudDphY2NvdW50fSksb2xkTWluaW5nUG93ZXI9YXBpLkJpZ051bWJlcigwKTtpZihtaW5pbmdQb3dlcil7bWluaW5nUG93ZXIubmZ0QmFsYW5jZXN8fChtaW5pbmdQb3dlci5uZnRCYWxhbmNlcz17fSk7Y29uc3R7bmZ0QmFsYW5jZXM6bmZ0QmFsYW5jZXN9PW1pbmluZ1Bvd2VyO2ZvcihsZXQgaT0wO2k8cG9vbC5uZnRUb2tlbk1pbmVyLnByb3BlcnRpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHByb3BlcnR5PXBvb2wubmZ0VG9rZW5NaW5lci5wcm9wZXJ0aWVzW2ldLG9wSW5mbz1QUk9QRVJUWV9PUFNbcHJvcGVydHkub3BdO25mdEJhbGFuY2VzW2ldJiZtaW5pbmdQb3dlci51cGRhdGVQb29sVGltZXN0YW1wPT09dXBkYXRlUG9vbFRpbWVzdGFtcHx8KG5mdEJhbGFuY2VzW2ldPW9wSW5mby5kZWZhdWx0VmFsdWUpLG5mdEJhbGFuY2VzW2ldPWFkZD9vcEluZm8uYWRkKG5mdEJhbGFuY2VzW2ldLHR5cGVQcm9wZXJ0aWVzW2ldKTpvcEluZm8ucmVtb3ZlKG5mdEJhbGFuY2VzW2ldLHR5cGVQcm9wZXJ0aWVzW2ldKX1vbGRNaW5pbmdQb3dlcj1taW5pbmdQb3dlci5wb3dlci4kbnVtYmVyRGVjaW1hbH1lbHNle2NvbnN0IG5mdEJhbGFuY2VzPXt9O2ZvcihsZXQgaT0wO2k8cG9vbC5uZnRUb2tlbk1pbmVyLnByb3BlcnRpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHByb3BlcnR5PXBvb2wubmZ0VG9rZW5NaW5lci5wcm9wZXJ0aWVzW2ldLG9wSW5mbz1QUk9QRVJUWV9PUFNbcHJvcGVydHkub3BdO2FkZD9uZnRCYWxhbmNlc1tpXT1vcEluZm8uYWRkKG9wSW5mby5kZWZhdWx0VmFsdWUsdHlwZVByb3BlcnRpZXNbaV0pOmFwaS5hc3NlcnQoITEsInVuZXhwZWN0ZWQgY29uZGl0aW9uOiByZW1vdmUgd2l0aG91dCBwcmV2aW91cyBtaW5pbmdQb3dlciIpfW1pbmluZ1Bvd2VyPXtpZDpwb29sLmlkLGFjY291bnQ6YWNjb3VudCxiYWxhbmNlczp7fSxuZnRCYWxhbmNlczpuZnRCYWxhbmNlcyxwb3dlcjp7JG51bWJlckRlY2ltYWw6IjAifX0sbWluaW5nUG93ZXI9YXdhaXQgYXBpLmRiLmluc2VydCgibWluaW5nUG93ZXIiLG1pbmluZ1Bvd2VyKX1jb25zdCBuZXdNaW5pbmdQb3dlcj1jb21wdXRlTWluaW5nUG93ZXIobWluaW5nUG93ZXIscG9vbC50b2tlbk1pbmVycyxwb29sLm5mdFRva2VuTWluZXIpO3JldHVybiBtaW5pbmdQb3dlci5wb3dlcj17JG51bWJlckRlY2ltYWw6bmV3TWluaW5nUG93ZXJ9LG1pbmluZ1Bvd2VyLnVwZGF0ZVBvb2xUaW1lc3RhbXA9dXBkYXRlUG9vbFRpbWVzdGFtcCxhd2FpdCBhcGkuZGIudXBkYXRlKCJtaW5pbmdQb3dlciIsbWluaW5nUG93ZXIpLG5ld01pbmluZ1Bvd2VyLm1pbnVzKG9sZE1pbmluZ1Bvd2VyKX1hc3luYyBmdW5jdGlvbiBpbml0TWluaW5nUG93ZXIocG9vbCxwYXJhbXMsdG9rZW4sbGFzdElkKXtsZXQgYmFsYW5jZXMsYWRqdXN0ZWRQb3dlcj1hcGkuQmlnTnVtYmVyKDApLG9mZnNldD0wLGxhc3RJZFByb2Nlc3NlZD1sYXN0SWQsY29tcGxldGU9ITE7Zm9yKDshY29tcGxldGUmJm9mZnNldDxwYXJhbXMubWF4QmFsYW5jZXNQcm9jZXNzZWRQZXJCbG9jazspe2JhbGFuY2VzPWF3YWl0IGFwaS5kYi5maW5kSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHtzeW1ib2w6dG9rZW4sX2lkOnskZ3Q6bGFzdElkfX0scGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0LG9mZnNldCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7Zm9yKGxldCBpPTA7aTxiYWxhbmNlcy5sZW5ndGg7aSs9MSl7Y29uc3QgYmFsYW5jZT1iYWxhbmNlc1tpXTtpZihhcGkuQmlnTnVtYmVyKGJhbGFuY2Uuc3Rha2UpLmd0KDApfHxhcGkuQmlnTnVtYmVyKGJhbGFuY2UuZGVsZWdhdGlvbnNJbikuZ3QoMCkpe2NvbnN0IGFkanVzdGVkPWF3YWl0IHVwZGF0ZU1pbmluZ1Bvd2VyKHBvb2wsdG9rZW4sYmFsYW5jZS5hY2NvdW50LGJhbGFuY2Uuc3Rha2UsYmFsYW5jZS5kZWxlZ2F0aW9uc0luLCEwKTthZGp1c3RlZFBvd2VyPWFkanVzdGVkUG93ZXIucGx1cyhhZGp1c3RlZCl9bGFzdElkUHJvY2Vzc2VkPWJhbGFuY2UuX2lkfWJhbGFuY2VzLmxlbmd0aDxwYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXQmJihjb21wbGV0ZT0hMCksb2Zmc2V0Kz1wYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXR9cmV0dXJue2FkanVzdGVkUG93ZXI6YWRqdXN0ZWRQb3dlcixuZXh0SWQ6bGFzdElkUHJvY2Vzc2VkLGNvbXBsZXRlOmNvbXBsZXRlfX1hc3luYyBmdW5jdGlvbiBpbml0TmZ0TWluaW5nUG93ZXIocG9vbCx1cGRhdGVQb29sVGltZXN0YW1wLHBhcmFtcyxuZnRUb2tlbk1pbmVyLGxhc3RJZCl7bGV0IG5mdHMsYWRqdXN0ZWRQb3dlcj1hcGkuQmlnTnVtYmVyKDApLG9mZnNldD0wLGxhc3RJZFByb2Nlc3NlZD1sYXN0SWQsY29tcGxldGU9ITE7Zm9yKDshY29tcGxldGUmJm9mZnNldDxwYXJhbXMubWF4QmFsYW5jZXNQcm9jZXNzZWRQZXJCbG9jazspe25mdHM9YXdhaXQgYXBpLmRiLmZpbmRJblRhYmxlKCJuZnQiLG5mdFRva2VuTWluZXIuc3ltYm9sKyJpbnN0YW5jZXMiLHtfaWQ6eyRndDpsYXN0SWR9LGRlbGVnYXRlZFRvOnskbmU6bnVsbH19LHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdCxvZmZzZXQsW3tpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8bmZ0cy5sZW5ndGg7aSs9MSl7Y29uc3QgbmZ0PW5mdHNbaV07aWYobmZ0VG9rZW5NaW5lci50eXBlTWFwW25mdC5wcm9wZXJ0aWVzLnR5cGVdKXtjb25zdCBhZGp1c3RlZD1hd2FpdCB1cGRhdGVOZnRNaW5pbmdQb3dlcihwb29sLG5mdCxuZnRUb2tlbk1pbmVyLnR5cGVNYXBbbmZ0LnByb3BlcnRpZXMudHlwZV0sITAsdXBkYXRlUG9vbFRpbWVzdGFtcCk7YWRqdXN0ZWRQb3dlcj1hZGp1c3RlZFBvd2VyLnBsdXMoYWRqdXN0ZWQpfWxhc3RJZFByb2Nlc3NlZD1uZnQuX2lkfW5mdHMubGVuZ3RoPHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdCYmKGNvbXBsZXRlPSEwKSxvZmZzZXQrPXBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdH1yZXR1cm57YWRqdXN0ZWRQb3dlcjphZGp1c3RlZFBvd2VyLG5leHRJZDpsYXN0SWRQcm9jZXNzZWQsY29tcGxldGU6Y29tcGxldGV9fWFzeW5jIGZ1bmN0aW9uIHJlc3VtZVBvd2VyVXBkYXRlKHBvb2wscGFyYW1zKXtsZXR7aW5Qcm9ncmVzczppblByb2dyZXNzLHRva2VuSW5kZXg6dG9rZW5JbmRleCxuZnRUb2tlbkluZGV4Om5mdFRva2VuSW5kZXgsbGFzdElkOmxhc3RJZH09cG9vbC51cGRhdGluZztjb25zdHt1cGRhdGVQb29sVGltZXN0YW1wOnVwZGF0ZVBvb2xUaW1lc3RhbXB9PXBvb2wudXBkYXRpbmc7aWYoIWluUHJvZ3Jlc3MpcmV0dXJuO2lmKHRva2VuSW5kZXg8cG9vbC50b2tlbk1pbmVycy5sZW5ndGgpe2NvbnN0IHRva2VuQ29uZmlnPXBvb2wudG9rZW5NaW5lcnNbdG9rZW5JbmRleF0se2FkanVzdGVkUG93ZXI6YWRqdXN0ZWRQb3dlcixuZXh0SWQ6bmV4dElkLGNvbXBsZXRlOmNvbXBsZXRlfT1hd2FpdCBpbml0TWluaW5nUG93ZXIocG9vbCxwYXJhbXMsdG9rZW5Db25maWcuc3ltYm9sLGxhc3RJZCk7cG9vbC50b3RhbFBvd2VyPWFwaS5CaWdOdW1iZXIocG9vbC50b3RhbFBvd2VyKS5wbHVzKGFkanVzdGVkUG93ZXIpLGNvbXBsZXRlPyhsYXN0SWQ9MCx0b2tlbkluZGV4Kz0xKTpsYXN0SWQ9bmV4dElkfWVsc2UgaWYocG9vbC5uZnRUb2tlbk1pbmVyJiZuZnRUb2tlbkluZGV4PDEpe2NvbnN0e25mdFRva2VuTWluZXI6bmZ0VG9rZW5NaW5lcn09cG9vbCx7YWRqdXN0ZWRQb3dlcjphZGp1c3RlZFBvd2VyLG5leHRJZDpuZXh0SWQsY29tcGxldGU6Y29tcGxldGV9PWF3YWl0IGluaXROZnRNaW5pbmdQb3dlcihwb29sLHVwZGF0ZVBvb2xUaW1lc3RhbXAscGFyYW1zLG5mdFRva2VuTWluZXIsbGFzdElkKTtwb29sLnRvdGFsUG93ZXI9YXBpLkJpZ051bWJlcihwb29sLnRvdGFsUG93ZXIpLnBsdXMoYWRqdXN0ZWRQb3dlciksY29tcGxldGU/KGxhc3RJZD0wLG5mdFRva2VuSW5kZXgrPTEpOmxhc3RJZD1uZXh0SWR9dG9rZW5JbmRleCE9PXBvb2wudG9rZW5NaW5lcnMubGVuZ3RofHxwb29sLm5mdFRva2VuTWluZXImJjEhPT1uZnRUb2tlbkluZGV4fHwoaW5Qcm9ncmVzcz0hMSx0b2tlbkluZGV4PTAsbmZ0VG9rZW5JbmRleD0wKTtjb25zdHt1cGRhdGluZzp1cGRhdGluZ309cG9vbDt1cGRhdGluZy5pblByb2dyZXNzPWluUHJvZ3Jlc3MsdXBkYXRpbmcudG9rZW5JbmRleD10b2tlbkluZGV4LHVwZGF0aW5nLm5mdFRva2VuSW5kZXg9bmZ0VG9rZW5JbmRleCx1cGRhdGluZy5sYXN0SWQ9bGFzdElkLGF3YWl0IGFwaS5kYi51cGRhdGUoInBvb2xzIixwb29sKX1mdW5jdGlvbiBnZW5lcmF0ZVBvb2xJZChwb29sKXtjb25zdCB0b2tlbk1pbmVyU3RyaW5nPXBvb2wudG9rZW5NaW5lcnMubWFwKHQ9PnQuc3ltYm9sLnJlcGxhY2UoIi4iLCItIikpLnNvcnQoKS5qb2luKCIsIiksbmZ0VG9rZW5NaW5lclN0cmluZz1wb29sLm5mdFRva2VuTWluZXI/IjoiK3Bvb2wubmZ0VG9rZW5NaW5lci5zeW1ib2w6IiI7cmV0dXJuYCR7cG9vbC5taW5lZFRva2VuLnJlcGxhY2UoIi4iLCItIil9OiR7dG9rZW5NaW5lclN0cmluZ30ke25mdFRva2VuTWluZXJTdHJpbmd9YH1hc3luYyBmdW5jdGlvbiBydW5Mb3R0ZXJ5KHBvb2wscGFyYW1zKXtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSx3aW5uaW5nTnVtYmVycz1bXSxtaW5lZFRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBvb2wubWluZWRUb2tlbn0pLHdpbm5pbmdBbW91bnQ9YXBpLkJpZ051bWJlcihwb29sLmxvdHRlcnlBbW91bnQpLmRpdmlkZWRCeShwb29sLmxvdHRlcnlXaW5uZXJzKS50b0ZpeGVkKG1pbmVkVG9rZW4ucHJlY2lzaW9uKTtmb3IobGV0IGk9MDtpPHBvb2wubG90dGVyeVdpbm5lcnM7aSs9MSl3aW5uaW5nTnVtYmVyc1tpXT1hcGkuQmlnTnVtYmVyKHBvb2wudG90YWxQb3dlcikubXVsdGlwbGllZEJ5KGFwaS5yYW5kb20oKSk7bGV0IG1pbmluZ1Bvd2VycyxvZmZzZXQ9MCxjdW11bGF0aXZlUG93ZXI9YXBpLkJpZ051bWJlcigwKSxuZXh0Q3VtdWxhdGl2ZVBvd2VyPWFwaS5CaWdOdW1iZXIoMCksY29tcHV0ZWRXaW5uZXJzPTA7Y29uc3Qgd2lubmVycz1bXTtmb3IoO2NvbXB1dGVkV2lubmVyczxwb29sLmxvdHRlcnlXaW5uZXJzOyl7bWluaW5nUG93ZXJzPWF3YWl0IGFwaS5kYi5maW5kKCJtaW5pbmdQb3dlciIse2lkOnBvb2wuaWQscG93ZXI6eyRndDp7JG51bWJlckRlY2ltYWw6IjAifX19LHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdCxvZmZzZXQsW3tpbmRleDoicG93ZXIiLGRlc2NlbmRpbmc6ITB9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8bWluaW5nUG93ZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBtaW5pbmdQb3dlcj1taW5pbmdQb3dlcnNbaV07bmV4dEN1bXVsYXRpdmVQb3dlcj1jdW11bGF0aXZlUG93ZXIucGx1cyhtaW5pbmdQb3dlci5wb3dlci4kbnVtYmVyRGVjaW1hbCk7Zm9yKGxldCBqPTA7ajxwb29sLmxvdHRlcnlXaW5uZXJzO2orPTEpe2NvbnN0IGN1cnJlbnRXaW5uaW5nTnVtYmVyPXdpbm5pbmdOdW1iZXJzW2pdO2N1bXVsYXRpdmVQb3dlci5sdGUoY3VycmVudFdpbm5pbmdOdW1iZXIpJiZuZXh0Q3VtdWxhdGl2ZVBvd2VyLmd0KGN1cnJlbnRXaW5uaW5nTnVtYmVyKSYmKGNvbXB1dGVkV2lubmVycys9MSx3aW5uZXJzLnB1c2goe3dpbm5lcjptaW5pbmdQb3dlci5hY2NvdW50LHdpbm5pbmdOdW1iZXI6Y3VycmVudFdpbm5pbmdOdW1iZXIsd2lubmluZ0Ftb3VudDp3aW5uaW5nQW1vdW50fSkpfWN1bXVsYXRpdmVQb3dlcj1uZXh0Q3VtdWxhdGl2ZVBvd2VyfWlmKGNvbXB1dGVkV2lubmVycz09PXBvb2wubG90dGVyeVdpbm5lcnN8fG1pbmluZ1Bvd2Vycy5sZW5ndGg8cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0KWJyZWFrO29mZnNldCs9cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0fWFwaS5lbWl0KCJtaW5pbmdMb3R0ZXJ5Iix7cG9vbElkOnBvb2wuaWQsd2lubmVyczp3aW5uZXJzfSk7Zm9yKGxldCBpPTA7aTx3aW5uZXJzLmxlbmd0aDtpKz0xKXtjb25zdCB3aW5uZXI9d2lubmVyc1tpXTthd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsImlzc3VlIix7dG86d2lubmVyLndpbm5lcixzeW1ib2w6bWluZWRUb2tlbi5zeW1ib2wscXVhbnRpdHk6d2lubmluZ0Ftb3VudH0pfXBvb2wubmV4dExvdHRlcnlUaW1lc3RhbXA9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5wbHVzKDM2MDAqcG9vbC5sb3R0ZXJ5SW50ZXJ2YWxIb3VycyoxZTMpLnRvTnVtYmVyKCksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9vbHMiLHBvb2wpfWFjdGlvbnMuc2V0QWN0aXZlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxhY3RpdmU6YWN0aXZlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpKXJldHVybjtjb25zdCBwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwb29scyIse2lkOmlkfSk7aWYoYXBpLmFzc2VydChwb29sLCJwb29sIGlkIG5vdCBmb3VuZCIpKXtwb29sLmFjdGl2ZT0hIWFjdGl2ZTtjb25zdCBtaW5lZFRva2VuT2JqZWN0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBvb2wubWluZWRUb2tlbn0pO2lmKGFwaS5hc3NlcnQobWluZWRUb2tlbk9iamVjdCYmKG1pbmVkVG9rZW5PYmplY3QuaXNzdWVyPT09YXBpLnNlbmRlcnx8IkJFRSI9PT1taW5lZFRva2VuT2JqZWN0LnN5bWJvbCYmYXBpLnNlbmRlcj09PWFwaS5vd25lciksIm11c3QgYmUgaXNzdWVyIG9mIG1pbmVkVG9rZW4iKSl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIik7cG9vbC5uZXh0TG90dGVyeVRpbWVzdGFtcD1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLnBsdXMoMzYwMCpwb29sLmxvdHRlcnlJbnRlcnZhbEhvdXJzKjFlMykudG9OdW1iZXIoKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb29scyIscG9vbCl9fX0sYWN0aW9ucy51cGRhdGVQb29sPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxsb3R0ZXJ5V2lubmVyczpsb3R0ZXJ5V2lubmVycyxsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczpsb3R0ZXJ5SW50ZXJ2YWxIb3Vycyxsb3R0ZXJ5QW1vdW50OmxvdHRlcnlBbW91bnQsdG9rZW5NaW5lcnM6dG9rZW5NaW5lcnMsbmZ0VG9rZW5NaW5lcjpuZnRUb2tlbk1pbmVyLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx7cG9vbFVwZGF0ZUZlZTpwb29sVXBkYXRlRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWQ9ISghYXBpLkJpZ051bWJlcihwb29sVXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKHBvb2xVcGRhdGVGZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZCwieW91IG11c3QgaGF2ZSBlbm91Z2ggdG9rZW5zIHRvIGNvdmVyIHRoZSB1cGRhdGUgZmVlIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KGlkJiYic3RyaW5nIj09dHlwZW9mIGlkJiZsb3R0ZXJ5QW1vdW50JiYic3RyaW5nIj09dHlwZW9mIGxvdHRlcnlBbW91bnQmJiFhcGkuQmlnTnVtYmVyKGxvdHRlcnlBbW91bnQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIobG90dGVyeUFtb3VudCkuZ3QoMCksImludmFsaWQgcGFyYW1zIikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5V2lubmVycykmJmxvdHRlcnlXaW5uZXJzPj0xJiZsb3R0ZXJ5V2lubmVyczw9MjAsImludmFsaWQgbG90dGVyeVdpbm5lcnM6IGludGVnZXIgYmV0d2VlbiAxIGFuZCAyMCBvbmx5IikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5SW50ZXJ2YWxIb3VycykmJmxvdHRlcnlJbnRlcnZhbEhvdXJzPj0xJiZsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczw9NzIwLCJpbnZhbGlkIGxvdHRlcnlJbnRlcnZhbEhvdXJzOiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgNzIwIG9ubHkiKSl7Y29uc3QgcG9vbD1hd2FpdCBhcGkuZGIuZmluZE9uZSgicG9vbHMiLHtpZDppZH0pO2lmKGFwaS5hc3NlcnQocG9vbCwicG9vbCBpZCBub3QgZm91bmQiKSl7Y29uc3QgbWluZWRUb2tlbk9iamVjdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpwb29sLm1pbmVkVG9rZW59KTtpZihhcGkuYXNzZXJ0KG1pbmVkVG9rZW5PYmplY3QmJihtaW5lZFRva2VuT2JqZWN0Lmlzc3Vlcj09PWFwaS5zZW5kZXJ8fCJCRUUiPT09bWluZWRUb2tlbk9iamVjdC5zeW1ib2wmJmFwaS5zZW5kZXI9PT1hcGkub3duZXIpLCJtdXN0IGJlIGlzc3VlciBvZiBtaW5lZFRva2VuIikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsb3R0ZXJ5QW1vdW50KS5kcCgpPD1taW5lZFRva2VuT2JqZWN0LnByZWNpc2lvbiwibWluZWRUb2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIGxvdHRlcnlBbW91bnQiKSl7Y29uc3QgdmFsaWRNaW5lcnNDaGFuZ2U9dmFsaWRhdGVUb2tlbk1pbmVyc0NoYW5nZShwb29sLnRva2VuTWluZXJzLHRva2VuTWluZXJzLHBvb2wubmZ0VG9rZW5NaW5lcixuZnRUb2tlbk1pbmVyKTtpZih2YWxpZE1pbmVyc0NoYW5nZSl7cG9vbC5sb3R0ZXJ5V2lubmVycz1sb3R0ZXJ5V2lubmVycyxwb29sLmxvdHRlcnlJbnRlcnZhbEhvdXJzPWxvdHRlcnlJbnRlcnZhbEhvdXJzLHBvb2wubG90dGVyeUFtb3VudD1sb3R0ZXJ5QW1vdW50LHBvb2wudG9rZW5NaW5lcnM9dG9rZW5NaW5lcnMscG9vbC5uZnRUb2tlbk1pbmVyPW5mdFRva2VuTWluZXI7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIik7dmFsaWRNaW5lcnNDaGFuZ2UuY2hhbmdlZCYmKHBvb2wudXBkYXRpbmcudXBkYXRlUG9vbFRpbWVzdGFtcD1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLnRvTnVtYmVyKCkscG9vbC51cGRhdGluZy5pblByb2dyZXNzPSEwLHBvb2wudXBkYXRpbmcudG9rZW5JbmRleD0wLHBvb2wudXBkYXRpbmcubmZ0VG9rZW5JbmRleD0wLHBvb2wudXBkYXRpbmcubGFzdElkPTApLHBvb2wubmV4dExvdHRlcnlUaW1lc3RhbXA9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5wbHVzKDM2MDAqbG90dGVyeUludGVydmFsSG91cnMqMWUzKS50b051bWJlcigpLGF3YWl0IGFwaS5kYi51cGRhdGUoInBvb2xzIixwb29sKSxhcGkuc2VuZGVyIT09YXBpLm93bmVyJiZhcGkuQmlnTnVtYmVyKHBvb2xVcGRhdGVGZWUpLmd0KDApJiZhd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86Im51bGwiLHN5bWJvbDoiQkVFIixxdWFudGl0eTpwb29sVXBkYXRlRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KX19fX19LGFjdGlvbnMuY3JlYXRlUG9vbD1hc3luYyBwYXlsb2FkPT57Y29uc3R7bG90dGVyeVdpbm5lcnM6bG90dGVyeVdpbm5lcnMsbG90dGVyeUludGVydmFsSG91cnM6bG90dGVyeUludGVydmFsSG91cnMsbG90dGVyeUFtb3VudDpsb3R0ZXJ5QW1vdW50LG1pbmVkVG9rZW46bWluZWRUb2tlbix0b2tlbk1pbmVyczp0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyOm5mdFRva2VuTWluZXIsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pLHtwb29sQ3JlYXRpb25GZWU6cG9vbENyZWF0aW9uRmVlfT1wYXJhbXMsdXRpbGl0eVRva2VuQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDoiQkVFIn0pLGF1dGhvcml6ZWRDcmVhdGlvbj0hKCFhcGkuQmlnTnVtYmVyKHBvb2xDcmVhdGlvbkZlZSkubHRlKDApJiZhcGkuc2VuZGVyIT09YXBpLm93bmVyKXx8dXRpbGl0eVRva2VuQmFsYW5jZSYmYXBpLkJpZ051bWJlcih1dGlsaXR5VG9rZW5CYWxhbmNlLmJhbGFuY2UpLmd0ZShwb29sQ3JlYXRpb25GZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIGNyZWF0aW9uIGZlZSIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChtaW5lZFRva2VuJiYic3RyaW5nIj09dHlwZW9mIG1pbmVkVG9rZW4mJmxvdHRlcnlBbW91bnQmJiJzdHJpbmciPT10eXBlb2YgbG90dGVyeUFtb3VudCYmIWFwaS5CaWdOdW1iZXIobG90dGVyeUFtb3VudCkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihsb3R0ZXJ5QW1vdW50KS5ndCgwKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydChtaW5lZFRva2VuLmxlbmd0aD4wJiZtaW5lZFRva2VuLmxlbmd0aDw9MTAsImludmFsaWQgc3ltYm9sOiB1cHBlcmNhc2UgbGV0dGVycyBvbmx5LCBtYXggbGVuZ3RoIG9mIDEwIikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5V2lubmVycykmJmxvdHRlcnlXaW5uZXJzPj0xJiZsb3R0ZXJ5V2lubmVyczw9MjAsImludmFsaWQgbG90dGVyeVdpbm5lcnM6IGludGVnZXIgYmV0d2VlbiAxIGFuZCAyMCBvbmx5IikmJmFwaS5hc3NlcnQoTnVtYmVyLmlzSW50ZWdlcihsb3R0ZXJ5SW50ZXJ2YWxIb3VycykmJmxvdHRlcnlJbnRlcnZhbEhvdXJzPj0xJiZsb3R0ZXJ5SW50ZXJ2YWxIb3Vyczw9NzIwLCJpbnZhbGlkIGxvdHRlcnlJbnRlcnZhbEhvdXJzOiBpbnRlZ2VyIGJldHdlZW4gMSBhbmQgNzIwIG9ubHkiKSl7Y29uc3QgbWluZWRUb2tlbk9iamVjdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDptaW5lZFRva2VufSk7aWYoYXBpLmFzc2VydChtaW5lZFRva2VuT2JqZWN0LCJtaW5lZFRva2VuIGRvZXMgbm90IGV4aXN0IikmJmFwaS5hc3NlcnQobWluZWRUb2tlbk9iamVjdC5pc3N1ZXI9PT1hcGkuc2VuZGVyfHwiQkVFIj09PW1pbmVkVG9rZW5PYmplY3Quc3ltYm9sJiZhcGkuc2VuZGVyPT09YXBpLm93bmVyLCJtdXN0IGJlIGlzc3VlciBvZiBtaW5lZFRva2VuIikmJmFwaS5hc3NlcnQoYXBpLkJpZ051bWJlcihsb3R0ZXJ5QW1vdW50KS5kcCgpPD1taW5lZFRva2VuT2JqZWN0LnByZWNpc2lvbiwibWluZWRUb2tlbiBwcmVjaXNpb24gbWlzbWF0Y2ggZm9yIGxvdHRlcnlBbW91bnQiKSYmYXdhaXQgdmFsaWRhdGVUb2tlbk1pbmVycyh0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyKSl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksbmV3UG9vbD17bWluZWRUb2tlbjptaW5lZFRva2VuLGxvdHRlcnlXaW5uZXJzOmxvdHRlcnlXaW5uZXJzLGxvdHRlcnlJbnRlcnZhbEhvdXJzOmxvdHRlcnlJbnRlcnZhbEhvdXJzLGxvdHRlcnlBbW91bnQ6bG90dGVyeUFtb3VudCx0b2tlbk1pbmVyczp0b2tlbk1pbmVycyxuZnRUb2tlbk1pbmVyOm5mdFRva2VuTWluZXIsYWN0aXZlOiExLG5leHRMb3R0ZXJ5VGltZXN0YW1wOmFwaS5CaWdOdW1iZXIoYmxvY2tEYXRlLmdldFRpbWUoKSkucGx1cygzNjAwKmxvdHRlcnlJbnRlcnZhbEhvdXJzKjFlMykudG9OdW1iZXIoKSx0b3RhbFBvd2VyOiIwIn07bmV3UG9vbC5pZD1nZW5lcmF0ZVBvb2xJZChuZXdQb29sKTtjb25zdCBleGlzdGluZ1Bvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7aWQ6bmV3UG9vbC5pZH0pO2lmKGFwaS5hc3NlcnQoIWV4aXN0aW5nUG9vbCwicG9vbCBhbHJlYWR5IGV4aXN0cyIpKXtmb3IobGV0IGk9MDtpPHRva2VuTWluZXJzLmxlbmd0aDtpKz0xKXtjb25zdCB0b2tlbkNvbmZpZz10b2tlbk1pbmVyc1tpXTthd2FpdCBhcGkuZGIuaW5zZXJ0KCJ0b2tlblBvb2xzIix7c3ltYm9sOnRva2VuQ29uZmlnLnN5bWJvbCxpZDpuZXdQb29sLmlkfSl9bmZ0VG9rZW5NaW5lciYmYXdhaXQgYXBpLmRiLmluc2VydCgibmZ0VG9rZW5Qb29scyIse3N5bWJvbDpuZnRUb2tlbk1pbmVyLnN5bWJvbCxpZDpuZXdQb29sLmlkfSksbmV3UG9vbC51cGRhdGluZz17aW5Qcm9ncmVzczohMCx1cGRhdGVQb29sVGltZXN0YW1wOmFwaS5CaWdOdW1iZXIoYmxvY2tEYXRlLmdldFRpbWUoKSkudG9OdW1iZXIoKSx0b2tlbkluZGV4OjAsbmZ0VG9rZW5JbmRleDowLGxhc3RJZDowfTtjb25zdCBpbnNlcnRlZFBvb2w9YXdhaXQgYXBpLmRiLmluc2VydCgicG9vbHMiLG5ld1Bvb2wpO2FwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIocG9vbENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6cG9vbENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlUG9vbCIse2lkOmluc2VydGVkUG9vbC5pZH0pfX19fSxhY3Rpb25zLmNoZWNrUGVuZGluZ0xvdHRlcmllcz1hc3luYygpPT57aWYoYXBpLmFzc2VydCgibnVsbCI9PT1hcGkuc2VuZGVyLCJub3QgYXV0aG9yaXplZCIpKXtjb25zdCB0aW1lc3RhbXA9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKS5nZXRUaW1lKCkscGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSx1cGRhdGluZ0xvdHRlcmllcz1hd2FpdCBhcGkuZGIuZmluZCgicG9vbHMiLHsidXBkYXRpbmcuaW5Qcm9ncmVzcyI6ITB9LHBhcmFtcy5tYXhMb3R0ZXJpZXNQZXJCbG9jaywwLFt7aW5kZXg6ImlkIixkZXNjZW5kaW5nOiExfV0pO2ZvcihsZXQgaT0wO2k8dXBkYXRpbmdMb3R0ZXJpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHBvb2w9dXBkYXRpbmdMb3R0ZXJpZXNbaV07YXdhaXQgcmVzdW1lUG93ZXJVcGRhdGUocG9vbCxwYXJhbXMpfWNvbnN0IHBlbmRpbmdMb3R0ZXJpZXM9YXdhaXQgYXBpLmRiLmZpbmQoInBvb2xzIix7YWN0aXZlOiEwLCJ1cGRhdGluZy5pblByb2dyZXNzIjohMSxuZXh0TG90dGVyeVRpbWVzdGFtcDp7JGx0ZTp0aW1lc3RhbXB9fSxwYXJhbXMubWF4TG90dGVyaWVzUGVyQmxvY2ssMCxbe2luZGV4OiJpZCIsZGVzY2VuZGluZzohMX1dKTtmb3IobGV0IGk9MDtpPHBlbmRpbmdMb3R0ZXJpZXMubGVuZ3RoO2krPTEpe2NvbnN0IHBvb2w9cGVuZGluZ0xvdHRlcmllc1tpXTthd2FpdCBydW5Mb3R0ZXJ5KHBvb2wscGFyYW1zKX19fSxhY3Rpb25zLmhhbmRsZVN0YWtlQ2hhbmdlPWFzeW5jIHBheWxvYWQ9Pntjb25zdHthY2NvdW50OmFjY291bnQsc3ltYm9sOnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eSxkZWxlZ2F0ZWQ6ZGVsZWdhdGVkLGNhbGxpbmdDb250cmFjdEluZm86Y2FsbGluZ0NvbnRyYWN0SW5mb309cGF5bG9hZDthcGkuYXNzZXJ0KGNhbGxpbmdDb250cmFjdEluZm8mJiJ0b2tlbnMiPT09Y2FsbGluZ0NvbnRyYWN0SW5mby5uYW1lLCJtdXN0IGJlIGNhbGxlZCBmcm9tIHRva2VucyBjb250cmFjdCIpJiZhd2FpdCBmaW5kQW5kUHJvY2Vzc0FsbCgibWluaW5nIiwidG9rZW5Qb29scyIse3N5bWJvbDpzeW1ib2x9LGFzeW5jIHRva2VuUG9vbD0+e2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7aWQ6dG9rZW5Qb29sLmlkfSk7bGV0IGFkanVzdGVkO2FkanVzdGVkPWRlbGVnYXRlZD9hd2FpdCB1cGRhdGVNaW5pbmdQb3dlcihwb29sLHN5bWJvbCxhY2NvdW50LDAscXVhbnRpdHkpOmF3YWl0IHVwZGF0ZU1pbmluZ1Bvd2VyKHBvb2wsc3ltYm9sLGFjY291bnQscXVhbnRpdHksMCkscG9vbC50b3RhbFBvd2VyPWFkanVzdGVkLnBsdXMocG9vbC50b3RhbFBvd2VyKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJwb29scyIscG9vbCl9KX0sYWN0aW9ucy5oYW5kbGVOZnRDaGFuZ2U9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0Om5mdCxhZGQ6YWRkLGNhbGxpbmdDb250cmFjdEluZm86Y2FsbGluZ0NvbnRyYWN0SW5mb309cGF5bG9hZDthcGkuYXNzZXJ0KGNhbGxpbmdDb250cmFjdEluZm8mJiJuZnQiPT09Y2FsbGluZ0NvbnRyYWN0SW5mby5uYW1lLCJtdXN0IGJlIGNhbGxlZCBmcm9tIG5mdCBjb250cmFjdCIpJiZhd2FpdCBmaW5kQW5kUHJvY2Vzc0FsbCgibWluaW5nIiwibmZ0VG9rZW5Qb29scyIse3N5bWJvbDpzeW1ib2x9LGFzeW5jIHRva2VuUG9vbD0+e2NvbnN0IHBvb2w9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBvb2xzIix7aWQ6dG9rZW5Qb29sLmlkfSk7aWYocG9vbC51cGRhdGluZy5pblByb2dyZXNzJiZwb29sLnVwZGF0aW5nLnRva2VuSW5kZXg9PT1wb29sLnRva2VuTWluZXJzLmxlbmd0aCYmcG9vbC51cGRhdGluZy5sYXN0SWQ8bmZ0Ll9pZClyZXR1cm47Y29uc3QgdHlwZVByb3BlcnRpZXM9cG9vbC5uZnRUb2tlbk1pbmVyLnR5cGVNYXBbbmZ0LnByb3BlcnRpZXMudHlwZV07aWYodHlwZVByb3BlcnRpZXMpe2NvbnN0IGFkanVzdGVkPWF3YWl0IHVwZGF0ZU5mdE1pbmluZ1Bvd2VyKHBvb2wsbmZ0LHR5cGVQcm9wZXJ0aWVzLGFkZCxwb29sLnVwZGF0aW5nLnVwZGF0ZVBvb2xUaW1lc3RhbXApO3Bvb2wudG90YWxQb3dlcj1hZGp1c3RlZC5wbHVzKHBvb2wudG90YWxQb3dlciksYXdhaXQgYXBpLmRiLnVwZGF0ZSgicG9vbHMiLHBvb2wpfX0pfTs="}}}

Mining Smart Contract | Ecency