Distribution Smart Contract

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"distribution","params":"","code":"Y29uc3QgRGlzdFN0cmF0ZWd5PVsiZml4ZWQiLCJwb29sIl07YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpe2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0JiZBcnJheS5pc0FycmF5KHRva2VuTWluUGF5b3V0KSwidG9rZW5NaW5QYXlvdXQgbXVzdCBiZSBhbiBhcnJheSIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0Lmxlbmd0aD49MSwic3BlY2lmeSBhdCBsZWFzdCBvbmUgbWluaW11bSBwYXlvdXQgY29uZmlndXJhdGlvbiIpKXJldHVybiExO2NvbnN0IHRva2VuTWluUGF5b3V0U3ltYm9scz1uZXcgU2V0O2ZvcihsZXQgaT0wO2k8dG9rZW5NaW5QYXlvdXQubGVuZ3RoO2krPTEpe2NvbnN0IHRva2VuTWluUGF5b3V0Q29uZmlnPXRva2VuTWluUGF5b3V0W2ldO2lmKCFhcGkuYXNzZXJ0KHRva2VuTWluUGF5b3V0Q29uZmlnJiZ0b2tlbk1pblBheW91dENvbmZpZy5zeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgdG9rZW5NaW5QYXlvdXRDb25maWcuc3ltYm9sLCJ0b2tlbk1pblBheW91dCBpbnZhbGlkIikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQoIXRva2VuTWluUGF5b3V0U3ltYm9scy5oYXModG9rZW5NaW5QYXlvdXRDb25maWcuc3ltYm9sKSwidG9rZW5NaW5QYXlvdXQgY2Fubm90IGhhdmUgZHVwbGljYXRlIHN5bWJvbHMiKSlyZXR1cm4hMTtpZih0b2tlbk1pblBheW91dFN5bWJvbHMuYWRkKHRva2VuTWluUGF5b3V0Q29uZmlnLnN5bWJvbCksIWFwaS5hc3NlcnQodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkmJmFwaS5CaWdOdW1iZXIodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkpLmRwKCk8PTMmJmFwaS5CaWdOdW1iZXIodG9rZW5NaW5QYXlvdXRDb25maWcucXVhbnRpdHkpLmd0ZSgwKSwiaW52YWxpZCBxdWFudGl0eSIpKXJldHVybiExfXJldHVybiEwfWFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUmVjaXBpZW50cyhwYXJhbXMsdG9rZW5SZWNpcGllbnRzKXtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHMmJkFycmF5LmlzQXJyYXkodG9rZW5SZWNpcGllbnRzKSwidG9rZW5SZWNpcGllbnRzIG11c3QgYmUgYW4gYXJyYXkiKSlyZXR1cm4hMTtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHMubGVuZ3RoPj0xJiZ0b2tlblJlY2lwaWVudHMubGVuZ3RoPD1wYXJhbXMubWF4VHJhbnNmZXJMaW1pdCxgMS0ke3BhcmFtcy5tYXhUcmFuc2ZlckxpbWl0fSB0b2tlblJlY2lwaWVudHMgYXJlIHN1cHBvcnRlZGApKXJldHVybiExO2NvbnN0IHRva2VuUmVjaXBpZW50c0FjY291bnRzPW5ldyBTZXQ7bGV0IHRva2VuUmVjaXBpZW50c1RvdGFsU2hhcmU9MDtmb3IobGV0IGk9MDtpPHRva2VuUmVjaXBpZW50cy5sZW5ndGg7aSs9MSl7Y29uc3QgdG9rZW5SZWNpcGllbnRzQ29uZmlnPXRva2VuUmVjaXBpZW50c1tpXTtpZighYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHNDb25maWcmJnRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50JiYic3RyaW5nIj09dHlwZW9mIHRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50LCJ0b2tlblJlY2lwaWVudHMgaW52YWxpZCIpJiYhYXBpLmFzc2VydCh0b2tlblJlY2lwaWVudHNDb25maWcuYWNjb3VudC5sZW5ndGg+PTMmJnRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50Lmxlbmd0aDw9MTYsImludmFsaWQgYWNjb3VudCIpKXJldHVybiExO2lmKCFhcGkuYXNzZXJ0KCF0b2tlblJlY2lwaWVudHNBY2NvdW50cy5oYXModG9rZW5SZWNpcGllbnRzQ29uZmlnLmFjY291bnQpLCJ0b2tlblJlY2lwaWVudHMgY2Fubm90IGhhdmUgZHVwbGljYXRlIGFjY291bnRzIikpcmV0dXJuITE7aWYodG9rZW5SZWNpcGllbnRzQWNjb3VudHMuYWRkKHRva2VuUmVjaXBpZW50c0NvbmZpZy5hY2NvdW50KSwhYXBpLmFzc2VydChOdW1iZXIuaXNJbnRlZ2VyKHRva2VuUmVjaXBpZW50c0NvbmZpZy5wY3QpJiZ0b2tlblJlY2lwaWVudHNDb25maWcucGN0Pj0xJiZ0b2tlblJlY2lwaWVudHNDb25maWcucGN0PD0xMDAsInRva2VuUmVjaXBpZW50cyBwY3QgbXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMSB0byAxMDAiKSlyZXR1cm4hMTtpZih0b2tlblJlY2lwaWVudHNUb3RhbFNoYXJlKz10b2tlblJlY2lwaWVudHNDb25maWcucGN0LCFhcGkuYXNzZXJ0KFsidXNlciIsImNvbnRyYWN0Il0uaW5jbHVkZXModG9rZW5SZWNpcGllbnRzQ29uZmlnLnR5cGUpLCJ0b2tlblJlY2lwaWVudHMgdHlwZSBtdXN0IGJlIHVzZXIgb3IgY29udHJhY3QiKSlyZXR1cm4hMTtpZigiY29udHJhY3QiPT09dG9rZW5SZWNpcGllbnRzQ29uZmlnLnR5cGUmJiFhcGkuYXNzZXJ0KCJvYmplY3QiPT10eXBlb2YgdG9rZW5SZWNpcGllbnRzQ29uZmlnLmNvbnRyYWN0UGF5bG9hZCwiY29udHJhY3QgcmVjaXBpZW50cyBtdXN0IGhhdmUgY29udHJhY3RQYXlsb2FkIikpcmV0dXJuITF9cmV0dXJuISFhcGkuYXNzZXJ0KDEwMD09PXRva2VuUmVjaXBpZW50c1RvdGFsU2hhcmUsInRva2VuUmVjaXBpZW50cyBwY3QgbXVzdCB0b3RhbCAxMDAiKX1mdW5jdGlvbiB2YWxpZGF0ZUluY29taW5nVG9rZW4oZGlzdCxzeW1ib2wpe2ZvcihsZXQgaT0wO2k8ZGlzdC50b2tlbk1pblBheW91dC5sZW5ndGg7aSs9MSlpZihkaXN0LnRva2VuTWluUGF5b3V0W2ldLnN5bWJvbD09PXN5bWJvbClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB2YWxpZGF0ZUJvbnVzQ3VydmUob2JqKXtpZighYXBpLmFzc2VydCgib2JqZWN0Ij09dHlwZW9mIG9iaiYmIk9iamVjdCI9PT1vYmouY29uc3RydWN0b3IubmFtZSwiaW52YWxpZCBib251c0N1cnZlIHNldHRpbmdzIikpcmV0dXJuITE7aWYoInBlcmlvZEJvbnVzUGN0ImluIG9ianx8Im51bVBlcmlvZHMiaW4gb2JqKXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG9iai5wZXJpb2RCb251c1BjdCYmYXBpLkJpZ051bWJlcihvYmoucGVyaW9kQm9udXNQY3QpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG9iai5wZXJpb2RCb251c1BjdCkuZ3QoMCkmJmFwaS5CaWdOdW1iZXIob2JqLnBlcmlvZEJvbnVzUGN0KS5sdCgxMDApJiYic3RyaW5nIj09dHlwZW9mIG9iai5udW1QZXJpb2RzJiZhcGkuQmlnTnVtYmVyKG9iai5udW1QZXJpb2RzKS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihvYmoubnVtUGVyaW9kcykuZ3QoMCkmJmFwaS5CaWdOdW1iZXIob2JqLm51bVBlcmlvZHMpLmx0KDU1NTUpLCJpbnZhbGlkIGJvbnVzQ3VydmUgc2V0dGluZ3MiKSlyZXR1cm4hMX1lbHNlIGlmKCFhcGkuYXNzZXJ0KDA9PT1PYmplY3Qua2V5cyhvYmopLmxlbmd0aCwiaW52YWxpZCBib251c0N1cnZlIHNldHRpbmdzIikpcmV0dXJuITE7cmV0dXJuITB9YXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVQb29sKHRva2VuUGFpcil7cmV0dXJuIG51bGwhPT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm1hcmtldHBvb2xzIiwicG9vbHMiLHt0b2tlblBhaXI6dG9rZW5QYWlyfSl9YXN5bmMgZnVuY3Rpb24gdXBkYXRlVG9rZW5CYWxhbmNlcyhkaXN0LHRva2VuLHF1YW50aXR5KXtjb25zdCB1cERpc3Q9ZGlzdDtpZih1cERpc3QudG9rZW5CYWxhbmNlcyl7Y29uc3QgdEluZGV4PXVwRGlzdC50b2tlbkJhbGFuY2VzLmZpbmRJbmRleCh0PT50LnN5bWJvbD09PXRva2VuLnN5bWJvbCk7LTE9PT10SW5kZXg/dXBEaXN0LnRva2VuQmFsYW5jZXMucHVzaCh7c3ltYm9sOnRva2VuLnN5bWJvbCxxdWFudGl0eTpxdWFudGl0eX0pOnVwRGlzdC50b2tlbkJhbGFuY2VzW3RJbmRleF0ucXVhbnRpdHk9YXBpLkJpZ051bWJlcih1cERpc3QudG9rZW5CYWxhbmNlc1t0SW5kZXhdLnF1YW50aXR5KS5wbHVzKHF1YW50aXR5KS50b0ZpeGVkKHRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pfWVsc2UgdXBEaXN0LnRva2VuQmFsYW5jZXM9W3tzeW1ib2w6dG9rZW4uc3ltYm9sLHF1YW50aXR5OnF1YW50aXR5fV07YXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsdXBEaXN0KX1hc3luYyBmdW5jdGlvbiBnZXRFZmZlY3RpdmVTaGFyZXMocGFyYW1zLGRpc3QsbHApe2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLHRpbWVEaWZmPWFwaS5CaWdOdW1iZXIoYmxvY2tEYXRlLmdldFRpbWUoKSkubWludXMobHAudGltZUZhY3Rvcik7aWYodGltZURpZmYubHRlKDM2MDAqcGFyYW1zLmRpc3RUaWNrSG91cnMqMWUzKSlyZXR1cm4gbHAuc2hhcmVzO2xldCBtdWx0aXBsaWVyPWFwaS5CaWdOdW1iZXIoIjEiKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGRpc3QuYm9udXNDdXJ2ZS5udW1QZXJpb2RzJiYobXVsdGlwbGllcj10aW1lRGlmZi5sdChwYXJhbXMuZGlzdFRpY2tIb3VycypkaXN0LmJvbnVzQ3VydmUubnVtUGVyaW9kcyozNjAwKjFlMyk/YXBpLkJpZ051bWJlcihkaXN0LmJvbnVzQ3VydmUucGVyaW9kQm9udXNQY3QpLmRpdmlkZWRCeSgiMTAwIikudGltZXModGltZURpZmYuZGl2aWRlZEJ5KDM2MDAqcGFyYW1zLmRpc3RUaWNrSG91cnMqMWUzKS5kcCgwLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTikpLnBsdXMobXVsdGlwbGllcik6YXBpLkJpZ051bWJlcihkaXN0LmJvbnVzQ3VydmUucGVyaW9kQm9udXNQY3QpLmRpdmlkZWRCeSgiMTAwIikudGltZXMoZGlzdC5ib251c0N1cnZlLm51bVBlcmlvZHMpLnBsdXMobXVsdGlwbGllcikpLGFwaS5CaWdOdW1iZXIobHAuc2hhcmVzKS50aW1lcyhtdWx0aXBsaWVyKX1hc3luYyBmdW5jdGlvbiBnZXRQb29sUmVjaXBpZW50cyhwYXJhbXMsZGlzdCl7Y29uc3QgYmxvY2tEYXRlPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIiksbWluSG9sZFRpbWU9YXBpLkJpZ051bWJlcihibG9ja0RhdGUuZ2V0VGltZSgpKS5taW51cygzNjAwKnBhcmFtcy5kaXN0VGlja0hvdXJzKjFlMykudG9OdW1iZXIoKSxyZXN1bHQ9W107bGV0IG9mZnNldD0wLHByb2Nlc3NRdWVyeT1bXTtjb25zdCBwb29sPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibWFya2V0cG9vbHMiLCJwb29scyIse3Rva2VuUGFpcjpkaXN0LnRva2VuUGFpcn0pO2lmKCFwb29sfHxwb29sLnRvdGFsU2hhcmVzPD0wKXJldHVybiByZXN1bHQ7Zm9yKDtudWxsIT09cHJvY2Vzc1F1ZXJ5JiZwcm9jZXNzUXVlcnkubGVuZ3RoPT09cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0fHwwPT09b2Zmc2V0Oyl7cHJvY2Vzc1F1ZXJ5PWF3YWl0IGFwaS5kYi5maW5kSW5UYWJsZSgibWFya2V0cG9vbHMiLCJsaXF1aWRpdHlQb3NpdGlvbnMiLHt0b2tlblBhaXI6ZGlzdC50b2tlblBhaXIsYWNjb3VudDp7JG5pbjpkaXN0LmV4Y2x1ZGVBY2NvdW50fSx0aW1lRmFjdG9yOnskbHRlOm1pbkhvbGRUaW1lfX0scGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0LG9mZnNldCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7Zm9yKGxldCBpPTA7aTxwcm9jZXNzUXVlcnkubGVuZ3RoO2krPTEpe2NvbnN0IGxwPXByb2Nlc3NRdWVyeVtpXTtscC5lZmZTaGFyZXM9YXdhaXQgZ2V0RWZmZWN0aXZlU2hhcmVzKHBhcmFtcyxkaXN0LGxwKSxyZXN1bHQucHVzaChscCl9b2Zmc2V0Kz1wYXJhbXMucHJvY2Vzc1F1ZXJ5TGltaXR9cmV0dXJuIHJlc3VsdH1hc3luYyBmdW5jdGlvbiBwYXlSZWNpcGllbnQoYWNjb3VudCxzeW1ib2wscXVhbnRpdHksdHlwZT0idXNlciIsY29udHJhY3RQYXlsb2FkPW51bGwpe2lmKGFwaS5CaWdOdW1iZXIocXVhbnRpdHkpLmd0KDApKXtjb25zdCByZXM9YXdhaXQgYXBpLnRyYW5zZmVyVG9rZW5zKGFjY291bnQsc3ltYm9sLHF1YW50aXR5LHR5cGUpO3JldHVybiJjb250cmFjdCI9PT10eXBlJiZjb250cmFjdFBheWxvYWQmJmF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdChhY2NvdW50LCJyZWNlaXZlRGlzdFRva2VucyIse2RhdGE6Y29udHJhY3RQYXlsb2FkLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KSwhcmVzLmVycm9yc3x8KGFwaS5kZWJ1ZyhgRXJyb3IgcGF5aW5nIG91dCBkaXN0cmlidXRpb24gb2YgJHtxdWFudGl0eX0gJHtzeW1ib2x9IHRvICR7YWNjb3VudH0gKFRYSUQgJHthcGkudHJhbnNhY3Rpb25JZH0pOiBcbiR7cmVzLmVycm9yc31gKSwhMSl9cmV0dXJuITF9YXN5bmMgZnVuY3Rpb24gcnVuRGlzdHJpYnV0aW9uKGRpc3QscGFyYW1zLGZsdXNoPSExKXtjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSx1cERpc3Q9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkaXN0KSkscGF5VG9rZW5zPWRpc3QudG9rZW5CYWxhbmNlcy5maWx0ZXIoZD0+YXBpLkJpZ051bWJlcihkLnF1YW50aXR5KS5ndCgwKSk7aWYocGF5VG9rZW5zLmxlbmd0aD4wKWlmKCJmaXhlZCI9PT1kaXN0LnN0cmF0ZWd5KXtjb25zdHt0b2tlblJlY2lwaWVudHM6dG9rZW5SZWNpcGllbnRzfT1kaXN0O2Zvcig7dG9rZW5SZWNpcGllbnRzLmxlbmd0aD4wOyl7Y29uc3QgdHI9dG9rZW5SZWNpcGllbnRzLnNoaWZ0KCk7Zm9yKGxldCBpPTA7aTxwYXlUb2tlbnMubGVuZ3RoO2krPTEpe2NvbnN0IHBheVRva2VuPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwidG9rZW5zIix7c3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2x9KSxtaW5QYXlvdXQ9ZGlzdC50b2tlbk1pblBheW91dC5maW5kKHA9PnAuc3ltYm9sPT09cGF5VG9rZW5zW2ldLnN5bWJvbCk7aWYoYXBpLkJpZ051bWJlcihwYXlUb2tlbnNbaV0ucXVhbnRpdHkpLmd0KG1pblBheW91dC5xdWFudGl0eSl8fGZsdXNoKXtjb25zdCBwYXlvdXRTaGFyZT1hcGkuQmlnTnVtYmVyKHBheVRva2Vuc1tpXS5xdWFudGl0eSkubXVsdGlwbGllZEJ5KHRyLnBjdCkuZGl2aWRlZEJ5KDEwMCkuZGl2aWRlZEJ5KGRpc3QubnVtVGlja3NMZWZ0KS50b0ZpeGVkKHBheVRva2VuLnByZWNpc2lvbixhcGkuQmlnTnVtYmVyLlJPVU5EX0RPV04pO2lmKGFwaS5CaWdOdW1iZXIocGF5b3V0U2hhcmUpLmd0KDApJiZhd2FpdCBwYXlSZWNpcGllbnQodHIuYWNjb3VudCxwYXlUb2tlbnNbaV0uc3ltYm9sLHBheW91dFNoYXJlLHRyLnR5cGUsdHIuY29udHJhY3RQYXlsb2FkfHxudWxsKSl7Y29uc3QgdGJJbmRleD11cERpc3QudG9rZW5CYWxhbmNlcy5maW5kSW5kZXgoYj0+Yi5zeW1ib2w9PT1wYXlUb2tlbnNbaV0uc3ltYm9sKTt1cERpc3QudG9rZW5CYWxhbmNlc1t0YkluZGV4XS5xdWFudGl0eT1hcGkuQmlnTnVtYmVyKHVwRGlzdC50b2tlbkJhbGFuY2VzW3RiSW5kZXhdLnF1YW50aXR5KS5taW51cyhwYXlvdXRTaGFyZSkudG9GaXhlZChwYXlUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxhcGkuZW1pdCgicGF5bWVudCIse2Rpc3RJZDpkaXN0Ll9pZCx0b2tlblBhaXI6ZGlzdC50b2tlblBhaXIsc3ltYm9sOnBheVRva2Vuc1tpXS5zeW1ib2wsYWNjb3VudDp0ci5hY2NvdW50LHF1YW50aXR5OnBheW91dFNoYXJlfSl9fX19fWVsc2UgaWYoInBvb2wiPT09ZGlzdC5zdHJhdGVneSl7Y29uc3QgdG9rZW5SZWNpcGllbnRzPWF3YWl0IGdldFBvb2xSZWNpcGllbnRzKHBhcmFtcyxkaXN0KSxzaGFyZVRvdGFsPXRva2VuUmVjaXBpZW50cy5yZWR1Y2UoKGFjYyxjdXIpPT5hY2MucGx1cyhjdXIuZWZmU2hhcmVzKSxhcGkuQmlnTnVtYmVyKDApKTtpZihhcGkuYXNzZXJ0KHNoYXJlVG90YWwuZ3QoMCksIm5vIGxpcXVpZGl0eSBzaGFyZXMgZm9yIHRoaXMgdG9rZW5QYWlyIikpe2xldCBwYXlUeENvdW50PTA7Y29uc3Qgc3RvcmVQZW5kaW5nPVtdO2Zvcig7dG9rZW5SZWNpcGllbnRzLmxlbmd0aD4wOyl7Y29uc3QgdHI9dG9rZW5SZWNpcGllbnRzLnNoaWZ0KCkscGF5b3V0U2hhcmU9YXBpLkJpZ051bWJlcih0ci5lZmZTaGFyZXMpLmRpdmlkZWRCeShzaGFyZVRvdGFsKTtmb3IobGV0IGk9MDtpPHBheVRva2Vucy5sZW5ndGg7aSs9MSl7Y29uc3QgcGF5VG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cGF5VG9rZW5zW2ldLnN5bWJvbH0pLHBheW91dFF0eT1hcGkuQmlnTnVtYmVyKHBheVRva2Vuc1tpXS5xdWFudGl0eSkubXVsdGlwbGllZEJ5KHBheW91dFNoYXJlKS5kaXZpZGVkQnkoZGlzdC5udW1UaWNrc0xlZnQpLnRvRml4ZWQocGF5VG9rZW4ucHJlY2lzaW9uLGFwaS5CaWdOdW1iZXIuUk9VTkRfRE9XTik7aWYoYXBpLkJpZ051bWJlcihwYXlvdXRRdHkpLmd0KDApKXtsZXQgcGF5UmVzdWx0PSEwLHBheU5vdz0hMDtpZihwYXlUeENvdW50PHBhcmFtcy5tYXhUcmFuc2ZlckxpbWl0P3BheVJlc3VsdD1hd2FpdCBwYXlSZWNpcGllbnQodHIuYWNjb3VudCxwYXlUb2tlbnNbaV0uc3ltYm9sLHBheW91dFF0eSk6KHBheU5vdz0hMSxzdG9yZVBlbmRpbmcucHVzaCh7ZGlzdElkOmRpc3QuX2lkLGFjY291bnQ6dHIuYWNjb3VudCxzeW1ib2w6cGF5VG9rZW5zW2ldLnN5bWJvbCxxdWFudGl0eTpwYXlvdXRRdHl9KSkscGF5UmVzdWx0KXtjb25zdCB0YkluZGV4PXVwRGlzdC50b2tlbkJhbGFuY2VzLmZpbmRJbmRleChiPT5iLnN5bWJvbD09PXBheVRva2Vuc1tpXS5zeW1ib2wpO3VwRGlzdC50b2tlbkJhbGFuY2VzW3RiSW5kZXhdLnF1YW50aXR5PWFwaS5CaWdOdW1iZXIodXBEaXN0LnRva2VuQmFsYW5jZXNbdGJJbmRleF0ucXVhbnRpdHkpLm1pbnVzKHBheW91dFF0eSkudG9GaXhlZChwYXlUb2tlbi5wcmVjaXNpb24sYXBpLkJpZ051bWJlci5ST1VORF9ET1dOKSxwYXlOb3cmJmFwaS5lbWl0KCJwYXltZW50Iix7ZGlzdElkOmRpc3QuX2lkLHRva2VuUGFpcjpkaXN0LnRva2VuUGFpcixzeW1ib2w6cGF5VG9rZW5zW2ldLnN5bWJvbCxhY2NvdW50OnRyLmFjY291bnQscXVhbnRpdHk6cGF5b3V0UXR5fSl9cGF5VHhDb3VudCs9MX19fXN0b3JlUGVuZGluZy5sZW5ndGg+MCYmYXdhaXQgYXBpLmRiLmluc2VydCgicGVuZGluZ1BheW1lbnRzIix7ZHVlVGltZTpibG9ja0RhdGUuZ2V0VGltZSgpLGFjY291bnRzOnN0b3JlUGVuZGluZ30pfX11cERpc3QubnVtVGlja3NMZWZ0LT0xLHVwRGlzdC5sYXN0VGlja1RpbWU9YmxvY2tEYXRlLmdldFRpbWUoKSxhd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIix1cERpc3QpfWFzeW5jIGZ1bmN0aW9uIHJ1blBlbmRpbmdQYXkocGVuZGluZ1BheSxwYXJhbXMpe2ZvcihsZXQgaT1NYXRoLm1pbihwYXJhbXMubWF4VHJhbnNmZXJMaW1pdCxwZW5kaW5nUGF5LmFjY291bnRzLmxlbmd0aCktMTtpPj0wO2ktPTEpe2NvbnN0IHA9cGVuZGluZ1BheS5hY2NvdW50c1tpXTthd2FpdCBwYXlSZWNpcGllbnQocC5hY2NvdW50LHAuc3ltYm9sLHAucXVhbnRpdHkpJiYocGVuZGluZ1BheS5hY2NvdW50cy5zcGxpY2UoaSwxKSxhcGkuZW1pdCgicGF5bWVudCIsey4uLnAscGVuZGluZzohMH0pKX0wPT09cGVuZGluZ1BheS5hY2NvdW50cy5sZW5ndGg/YXBpLmRiLnJlbW92ZSgicGVuZGluZ1BheW1lbnRzIixwZW5kaW5nUGF5KTphcGkuZGIudXBkYXRlKCJwZW5kaW5nUGF5bWVudHMiLHBlbmRpbmdQYXkpfWFjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9PntpZighMT09PWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cygiYmF0Y2hlcyIpKXthd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoImJhdGNoZXMiKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBhcmFtcyIpO2NvbnN0IHBhcmFtcz17ZGlzdENyZWF0aW9uRmVlOiI1MDAiLGRpc3RVcGRhdGVGZWU6IjI1MCJ9O2F3YWl0IGFwaS5kYi5pbnNlcnQoInBhcmFtcyIscGFyYW1zKX1lbHNle2NvbnN0IHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSk7aWYocGFyYW1zLnVwZGF0ZUluZGV4KXtpZigxPT09cGFyYW1zLnVwZGF0ZUluZGV4KXtjb25zdCBjbGVhclBlbmRpbmc9YXdhaXQgYXBpLmRiLmZpbmQoInBlbmRpbmdQYXltZW50cyIse30pO2ZvcihsZXQgaT0wO2k8Y2xlYXJQZW5kaW5nLmxlbmd0aDtpKz0xKWF3YWl0IGFwaS5kYi5yZW1vdmUoInBlbmRpbmdQYXltZW50cyIsY2xlYXJQZW5kaW5nW2ldKTtjb25zdCBzeW5jRGlzdHM9YXdhaXQgYXBpLmRiLmZpbmQoImJhdGNoZXMiLHt9KTtmb3IobGV0IGk9MDtpPHN5bmNEaXN0cy5sZW5ndGg7aSs9MSl7Y29uc3QgZGlzdD1zeW5jRGlzdHNbaV07aWYoZGlzdC50b2tlbkJhbGFuY2VzKXtsZXQgdXBkYXRlPSExO2NvbnN0IGhpdmVJbmRleD1kaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KHQ9PiJTV0FQLkhJVkUiPT09dC5zeW1ib2wpOy0xIT09aGl2ZUluZGV4JiYoZGlzdC50b2tlbkJhbGFuY2VzW2hpdmVJbmRleF0ucXVhbnRpdHk9YXBpLkJpZ051bWJlcigiMCIpLnRvRml4ZWQoOCksdXBkYXRlPSEwKTtjb25zdCBzaW1JbmRleD1kaXN0LnRva2VuQmFsYW5jZXMuZmluZEluZGV4KHQ9PiJTSU0iPT09dC5zeW1ib2wpOy0xIT09c2ltSW5kZXgmJihkaXN0LnRva2VuQmFsYW5jZXNbc2ltSW5kZXhdLnF1YW50aXR5PWFwaS5CaWdOdW1iZXIoIjAiKS50b0ZpeGVkKDMpLHVwZGF0ZT0hMCksdXBkYXRlJiZhd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIixkaXN0KX19cGFyYW1zLnVwZGF0ZUluZGV4PTIsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfX1lbHNlIGF3YWl0IGFwaS5kYi5hZGRJbmRleGVzKCJiYXRjaGVzIixbe25hbWU6Imxhc3RUaWNrVGltZSIsaW5kZXg6e2xhc3RUaWNrVGltZToxfX1dKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUoInBlbmRpbmdQYXltZW50cyIsWyJkdWVUaW1lIl0pLHBhcmFtcy5kaXN0VGlja0hvdXJzPSIyNCIscGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdD0xLHBhcmFtcy5tYXhUcmFuc2ZlckxpbWl0PTUwLHBhcmFtcy5wcm9jZXNzUXVlcnlMaW1pdD0xZTMscGFyYW1zLnVwZGF0ZUluZGV4PTEsYXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfX0sYWN0aW9ucy51cGRhdGVQYXJhbXM9YXN5bmMgcGF5bG9hZD0+e2lmKGFwaS5zZW5kZXIhPT1hcGkub3duZXIpcmV0dXJuO2NvbnN0e2Rpc3RDcmVhdGlvbkZlZTpkaXN0Q3JlYXRpb25GZWUsZGlzdFVwZGF0ZUZlZTpkaXN0VXBkYXRlRmVlLGRpc3RUaWNrSG91cnM6ZGlzdFRpY2tIb3VycyxtYXhEaXN0cmlidXRpb25zTGltaXQ6bWF4RGlzdHJpYnV0aW9uc0xpbWl0LG1heFRyYW5zZmVyTGltaXQ6bWF4VHJhbnNmZXJMaW1pdCxwcm9jZXNzUXVlcnlMaW1pdDpwcm9jZXNzUXVlcnlMaW1pdH09cGF5bG9hZCxwYXJhbXM9YXdhaXQgYXBpLmRiLmZpbmRPbmUoInBhcmFtcyIse30pO2lmKGRpc3RDcmVhdGlvbkZlZSl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBkaXN0Q3JlYXRpb25GZWUmJiFhcGkuQmlnTnVtYmVyKGRpc3RDcmVhdGlvbkZlZSkuaXNOYU4oKSYmYXBpLkJpZ051bWJlcihkaXN0Q3JlYXRpb25GZWUpLmd0ZSgwKSwiaW52YWxpZCBkaXN0Q3JlYXRpb25GZWUiKSlyZXR1cm47cGFyYW1zLmRpc3RDcmVhdGlvbkZlZT1kaXN0Q3JlYXRpb25GZWV9aWYoZGlzdFVwZGF0ZUZlZSl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBkaXN0VXBkYXRlRmVlJiYhYXBpLkJpZ051bWJlcihkaXN0VXBkYXRlRmVlKS5pc05hTigpJiZhcGkuQmlnTnVtYmVyKGRpc3RVcGRhdGVGZWUpLmd0ZSgwKSwiaW52YWxpZCBkaXN0VXBkYXRlRmVlIikpcmV0dXJuO3BhcmFtcy5kaXN0VXBkYXRlRmVlPWRpc3RVcGRhdGVGZWV9aWYoZGlzdFRpY2tIb3Vycyl7aWYoIWFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBkaXN0VGlja0hvdXJzJiZhcGkuQmlnTnVtYmVyKGRpc3RUaWNrSG91cnMpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKGRpc3RUaWNrSG91cnMpLmd0ZSgxKSwiaW52YWxpZCBkaXN0VGlja0hvdXJzIikpcmV0dXJuO3BhcmFtcy5kaXN0VGlja0hvdXJzPWRpc3RUaWNrSG91cnN9aWYobWF4RGlzdHJpYnV0aW9uc0xpbWl0KXtpZighYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIG1heERpc3RyaWJ1dGlvbnNMaW1pdCYmYXBpLkJpZ051bWJlcihtYXhEaXN0cmlidXRpb25zTGltaXQpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKG1heERpc3RyaWJ1dGlvbnNMaW1pdCkuZ3RlKDEpLCJpbnZhbGlkIG1heERpc3RyaWJ1dGlvbnNMaW1pdCIpKXJldHVybjtwYXJhbXMubWF4RGlzdHJpYnV0aW9uc0xpbWl0PWFwaS5CaWdOdW1iZXIobWF4RGlzdHJpYnV0aW9uc0xpbWl0KS50b051bWJlcigpfWlmKG1heFRyYW5zZmVyTGltaXQpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgbWF4VHJhbnNmZXJMaW1pdCYmYXBpLkJpZ051bWJlcihtYXhUcmFuc2ZlckxpbWl0KS5pc0ludGVnZXIoKSYmYXBpLkJpZ051bWJlcihtYXhUcmFuc2ZlckxpbWl0KS5ndGUoMSksImludmFsaWQgbWF4VHJhbnNmZXJMaW1pdCIpKXJldHVybjtwYXJhbXMubWF4VHJhbnNmZXJMaW1pdD1hcGkuQmlnTnVtYmVyKG1heFRyYW5zZmVyTGltaXQpLnRvTnVtYmVyKCl9aWYocHJvY2Vzc1F1ZXJ5TGltaXQpe2lmKCFhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2YgcHJvY2Vzc1F1ZXJ5TGltaXQmJmFwaS5CaWdOdW1iZXIocHJvY2Vzc1F1ZXJ5TGltaXQpLmlzSW50ZWdlcigpJiZhcGkuQmlnTnVtYmVyKHByb2Nlc3NRdWVyeUxpbWl0KS5ndGUoMSksImludmFsaWQgcHJvY2Vzc1F1ZXJ5TGltaXQiKSlyZXR1cm47cGFyYW1zLnByb2Nlc3NRdWVyeUxpbWl0PWFwaS5CaWdOdW1iZXIocHJvY2Vzc1F1ZXJ5TGltaXQpLnRvTnVtYmVyKCl9YXdhaXQgYXBpLmRiLnVwZGF0ZSgicGFyYW1zIixwYXJhbXMpfSxhY3Rpb25zLmNyZWF0ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3RyYXRlZ3k6c3RyYXRlZ3ksbnVtVGlja3M6bnVtVGlja3MsZXhjbHVkZUFjY291bnQ6ZXhjbHVkZUFjY291bnQsdG9rZW5QYWlyOnRva2VuUGFpcixib251c0N1cnZlOmJvbnVzQ3VydmUsdG9rZW5NaW5QYXlvdXQ6dG9rZW5NaW5QYXlvdXQsdG9rZW5SZWNpcGllbnRzOnRva2VuUmVjaXBpZW50cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2Rpc3RDcmVhdGlvbkZlZTpkaXN0Q3JlYXRpb25GZWV9PXBhcmFtcyx1dGlsaXR5VG9rZW5CYWxhbmNlPWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgidG9rZW5zIiwiYmFsYW5jZXMiLHthY2NvdW50OmFwaS5zZW5kZXIsc3ltYm9sOiJCRUUifSksYXV0aG9yaXplZENyZWF0aW9uPSEoIWFwaS5CaWdOdW1iZXIoZGlzdENyZWF0aW9uRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGRpc3RDcmVhdGlvbkZlZSk7aWYoYXBpLmFzc2VydChhdXRob3JpemVkQ3JlYXRpb24sInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyB0byBjb3ZlciB0aGUgY3JlYXRpb24gZmVlIikmJmFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIHRyYW5zYWN0aW9uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KCJzdHJpbmciPT10eXBlb2Ygc3RyYXRlZ3kmJi0xIT09RGlzdFN0cmF0ZWd5LmluZGV4T2Yoc3RyYXRlZ3kpLCJpbnZhbGlkIHN0cmF0ZWd5IikmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBudW1UaWNrcyYmYXBpLkJpZ051bWJlcihudW1UaWNrcykuaXNJbnRlZ2VyKCkmJmFwaS5CaWdOdW1iZXIobnVtVGlja3MpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG51bVRpY2tzKS5sdGUoNTU1NSksIm51bVRpY2tzIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCA1NTU1Iikpe2NvbnN0IGJsb2NrRGF0ZT1uZXcgRGF0ZShhcGkuaGl2ZUJsb2NrVGltZXN0YW1wKyIuMDAwWiIpLG5ld0Rpc3Q9e3N0cmF0ZWd5OnN0cmF0ZWd5LG51bVRpY2tzOm51bVRpY2tzLG51bVRpY2tzTGVmdDphcGkuQmlnTnVtYmVyKG51bVRpY2tzKS50b051bWJlcigpLGFjdGl2ZTohMSxjcmVhdG9yOmFwaS5zZW5kZXIsbGFzdFRpY2tUaW1lOmJsb2NrRGF0ZS5nZXRUaW1lKCl9O2lmKCJmaXhlZCI9PT1zdHJhdGVneSYmYXdhaXQgdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpJiZhd2FpdCB2YWxpZGF0ZVJlY2lwaWVudHMocGFyYW1zLHRva2VuUmVjaXBpZW50cykpbmV3RGlzdC50b2tlbk1pblBheW91dD10b2tlbk1pblBheW91dCxuZXdEaXN0LnRva2VuUmVjaXBpZW50cz10b2tlblJlY2lwaWVudHM7ZWxzZXtpZigicG9vbCIhPT1zdHJhdGVneSlyZXR1cm47aWYoIWFwaS5hc3NlcnQoYXdhaXQgdmFsaWRhdGVQb29sKHRva2VuUGFpciksImludmFsaWQgdG9rZW5QYWlyIikpcmV0dXJuO2lmKHZvaWQgMCE9PWV4Y2x1ZGVBY2NvdW50JiYhYXBpLmFzc2VydChBcnJheS5pc0FycmF5KGV4Y2x1ZGVBY2NvdW50KSwiZXhjbHVkZUFjY291bnQgbXVzdCBiZSBhbiBhcnJheSIpKXJldHVybjtpZih2b2lkIDAhPT1ib251c0N1cnZlJiYhdmFsaWRhdGVCb251c0N1cnZlKGJvbnVzQ3VydmUpKXJldHVybjtuZXdEaXN0LnRva2VuUGFpcj10b2tlblBhaXIsbmV3RGlzdC5leGNsdWRlQWNjb3VudD1leGNsdWRlQWNjb3VudHx8W10sbmV3RGlzdC5ib251c0N1cnZlPWJvbnVzQ3VydmV8fHt9fWNvbnN0IGNyZWF0ZWREaXN0PWF3YWl0IGFwaS5kYi5pbnNlcnQoImJhdGNoZXMiLG5ld0Rpc3QpO2FwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIoZGlzdENyZWF0aW9uRmVlKS5ndCgwKSYmYXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlciIse3RvOiJudWxsIixzeW1ib2w6IkJFRSIscXVhbnRpdHk6ZGlzdENyZWF0aW9uRmVlLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KSxhcGkuZW1pdCgiY3JlYXRlIix7aWQ6Y3JlYXRlZERpc3QuX2lkfSl9fSxhY3Rpb25zLnVwZGF0ZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7aWQ6aWQsbnVtVGlja3M6bnVtVGlja3MsZXhjbHVkZUFjY291bnQ6ZXhjbHVkZUFjY291bnQsdG9rZW5QYWlyOnRva2VuUGFpcixib251c0N1cnZlOmJvbnVzQ3VydmUsdG9rZW5NaW5QYXlvdXQ6dG9rZW5NaW5QYXlvdXQsdG9rZW5SZWNpcGllbnRzOnRva2VuUmVjaXBpZW50cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkLHBhcmFtcz1hd2FpdCBhcGkuZGIuZmluZE9uZSgicGFyYW1zIix7fSkse2Rpc3RVcGRhdGVGZWU6ZGlzdFVwZGF0ZUZlZX09cGFyYW1zLHV0aWxpdHlUb2tlbkJhbGFuY2U9YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJiYWxhbmNlcyIse2FjY291bnQ6YXBpLnNlbmRlcixzeW1ib2w6IkJFRSJ9KSxhdXRob3JpemVkQ3JlYXRpb249ISghYXBpLkJpZ051bWJlcihkaXN0VXBkYXRlRmVlKS5sdGUoMCkmJmFwaS5zZW5kZXIhPT1hcGkub3duZXIpfHx1dGlsaXR5VG9rZW5CYWxhbmNlJiZhcGkuQmlnTnVtYmVyKHV0aWxpdHlUb2tlbkJhbGFuY2UuYmFsYW5jZSkuZ3RlKGRpc3RVcGRhdGVGZWUpO2lmKGFwaS5hc3NlcnQoYXV0aG9yaXplZENyZWF0aW9uLCJ5b3UgbXVzdCBoYXZlIGVub3VnaCB0b2tlbnMgdG8gY292ZXIgdGhlIHVwZGF0ZSBmZWUiKSYmYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgdHJhbnNhY3Rpb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5Iikpe2NvbnN0IGV4RGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDppZH0pO2lmKGFwaS5hc3NlcnQoZXhEaXN0LCJkaXN0cmlidXRpb24gbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoYXBpLnNlbmRlcj09PWFwaS5vd25lcnx8YXBpLnNlbmRlcj09PWV4RGlzdC5jcmVhdG9yLCJtdXN0IGJlIG93bmVyIG9yIGNyZWF0b3IiKSl7aWYobnVtVGlja3MmJmFwaS5hc3NlcnQoInN0cmluZyI9PXR5cGVvZiBudW1UaWNrcyYmYXBpLkJpZ051bWJlcihudW1UaWNrcykuaXNJbnRlZ2VyKCkmJmFwaS5CaWdOdW1iZXIobnVtVGlja3MpLmd0KDApJiZhcGkuQmlnTnVtYmVyKG51bVRpY2tzKS5sdGUoNTU1NSksIm51bVRpY2tzIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCA1NTU1IikmJihleERpc3QubnVtVGlja3M9bnVtVGlja3MsZXhEaXN0Lm51bVRpY2tzTGVmdD1hcGkuQmlnTnVtYmVyKG51bVRpY2tzKS50b051bWJlcigpKSwiZml4ZWQiPT09ZXhEaXN0LnN0cmF0ZWd5KXtpZighYXdhaXQgdmFsaWRhdGVNaW5QYXlvdXQodG9rZW5NaW5QYXlvdXQpfHwhYXdhaXQgdmFsaWRhdGVSZWNpcGllbnRzKHBhcmFtcyx0b2tlblJlY2lwaWVudHMpKXJldHVybjtleERpc3QudG9rZW5NaW5QYXlvdXQ9dG9rZW5NaW5QYXlvdXQsZXhEaXN0LnRva2VuUmVjaXBpZW50cz10b2tlblJlY2lwaWVudHN9ZWxzZXtpZigicG9vbCIhPT1leERpc3Quc3RyYXRlZ3kpcmV0dXJuO3ZvaWQgMCE9PWV4Y2x1ZGVBY2NvdW50JiZhcGkuYXNzZXJ0KEFycmF5LmlzQXJyYXkoZXhjbHVkZUFjY291bnQpLCJleGNsdWRlQWNjb3VudCBtdXN0IGJlIGFuIGFycmF5IikmJihleERpc3QuZXhjbHVkZUFjY291bnQ9ZXhjbHVkZUFjY291bnQpLHZvaWQgMCE9PXRva2VuUGFpciYmYXBpLmFzc2VydChhd2FpdCB2YWxpZGF0ZVBvb2wodG9rZW5QYWlyKSwiaW52YWxpZCB0b2tlblBhaXIiKSYmKGV4RGlzdC50b2tlblBhaXI9dG9rZW5QYWlyKSx2b2lkIDAhPT1ib251c0N1cnZlJiZ2YWxpZGF0ZUJvbnVzQ3VydmUoYm9udXNDdXJ2ZSkmJihleERpc3QuYm9udXNDdXJ2ZT1ib251c0N1cnZlKX1hd2FpdCBhcGkuZGIudXBkYXRlKCJiYXRjaGVzIixleERpc3QpLGFwaS5zZW5kZXIhPT1hcGkub3duZXImJmFwaS5CaWdOdW1iZXIoZGlzdFVwZGF0ZUZlZSkuZ3QoMCkmJmF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIiwidHJhbnNmZXIiLHt0bzoibnVsbCIsc3ltYm9sOiJCRUUiLHF1YW50aXR5OmRpc3RVcGRhdGVGZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX0pLGFwaS5lbWl0KCJ1cGRhdGUiLHtpZDpleERpc3QuX2lkfSl9fX0sYWN0aW9ucy5zZXRBY3RpdmU9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2lkOmlkLGFjdGl2ZTphY3RpdmUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikpcmV0dXJuO2NvbnN0IGRpc3Q9YXdhaXQgYXBpLmRiLmZpbmRPbmUoImJhdGNoZXMiLHtfaWQ6aWR9KTthcGkuYXNzZXJ0KGRpc3QsImRpc3RyaWJ1dGlvbiBpZCBub3QgZm91bmQiKSYmYXBpLmFzc2VydChkaXN0LmNyZWF0b3I9PT1hcGkuc2VuZGVyfHxhcGkub3duZXI9PT1hcGkuc2VuZGVyLCJ5b3UgbXVzdCBiZSB0aGUgY3JlYXRvciBvZiB0aGlzIGRpc3RyaWJ1dGlvbiIpJiYoZGlzdC5hY3RpdmU9ISFhY3RpdmUsYXdhaXQgYXBpLmRiLnVwZGF0ZSgiYmF0Y2hlcyIsZGlzdCksYXBpLmVtaXQoInNldEFjdGl2ZSIse2lkOmRpc3QuX2lkLGFjdGl2ZTpkaXN0LmFjdGl2ZX0pKX0sYWN0aW9ucy5kZXBvc2l0PWFzeW5jIHBheWxvYWQ9Pntjb25zdHtpZDppZCxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQsZGVwVG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpfHwhYXBpLmFzc2VydCgic3RyaW5nIj09dHlwZW9mIHF1YW50aXR5JiZhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5ndCgwKSwiaW52YWxpZCBxdWFudGl0eSIpfHwhYXBpLmFzc2VydChhcGkuQmlnTnVtYmVyKHF1YW50aXR5KS5kcCgpPD1kZXBUb2tlbi5wcmVjaXNpb24sInF1YW50aXR5IHByZWNpc2lvbiBtaXNtYXRjaCIpKXJldHVybjtjb25zdCBkaXN0PWF3YWl0IGFwaS5kYi5maW5kT25lKCJiYXRjaGVzIix7X2lkOmlkfSk7aWYoYXBpLmFzc2VydChkaXN0LCJkaXN0cmlidXRpb24gaWQgbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoZGlzdC5hY3RpdmUsImRpc3RyaWJ1dGlvbiBtdXN0IGJlIGFjdGl2ZSB0byBkZXBvc2l0Iikpe2lmKCJmaXhlZCI9PT1kaXN0LnN0cmF0ZWd5JiYhYXBpLmFzc2VydCh2YWxpZGF0ZUluY29taW5nVG9rZW4oZGlzdCxzeW1ib2wpLHN5bWJvbCsiIGlzIG5vdCBhY2NlcHRlZCBieSB0aGlzIGRpc3RyaWJ1dGlvbiIpKXJldHVybjtjb25zdCByZXM9YXdhaXQgYXBpLmV4ZWN1dGVTbWFydENvbnRyYWN0KCJ0b2tlbnMiLCJ0cmFuc2ZlclRvQ29udHJhY3QiLHtzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LHRvOiJkaXN0cmlidXRpb24ifSk7dm9pZCAwPT09cmVzLmVycm9ycyYmcmVzLmV2ZW50cyYmdm9pZCAwIT09cmVzLmV2ZW50cy5maW5kKGVsPT4idG9rZW5zIj09PWVsLmNvbnRyYWN0JiYidHJhbnNmZXJUb0NvbnRyYWN0Ij09PWVsLmV2ZW50JiZlbC5kYXRhLmZyb209PT1hcGkuc2VuZGVyJiYiZGlzdHJpYnV0aW9uIj09PWVsLmRhdGEudG8mJmVsLmRhdGEucXVhbnRpdHk9PT1xdWFudGl0eSkmJihhd2FpdCB1cGRhdGVUb2tlbkJhbGFuY2VzKGRpc3QsZGVwVG9rZW4scXVhbnRpdHkpLGFwaS5lbWl0KCJkZXBvc2l0Iix7ZGlzdElkOmlkLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KSl9fSxhY3Rpb25zLnJlY2VpdmVEdGZUb2tlbnM9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2RhdGE6ZGF0YSxzeW1ib2w6c3ltYm9sLHF1YW50aXR5OnF1YW50aXR5LGNhbGxpbmdDb250cmFjdEluZm86Y2FsbGluZ0NvbnRyYWN0SW5mb309cGF5bG9hZDtpZighYXBpLmFzc2VydChjYWxsaW5nQ29udHJhY3RJbmZvJiYidG9rZW5mdW5kcyI9PT1jYWxsaW5nQ29udHJhY3RJbmZvLm5hbWUsIm5vdCBhdXRob3JpemVkIikpcmV0dXJuO2lmKCFhcGkuYXNzZXJ0KCJvYmplY3QiPT10eXBlb2YgZGF0YSYmIk9iamVjdCI9PT1kYXRhLmNvbnN0cnVjdG9yLm5hbWUmJiJkaXN0SWQiaW4gZGF0YSYmInN0cmluZyI9PXR5cGVvZiBkYXRhLmRpc3RJZCYmYXBpLkJpZ051bWJlcihkYXRhLmRpc3RJZCkuaXNJbnRlZ2VyKCksImludmFsaWQgRFRGIHBheWxvYWQiKSlyZXR1cm47Y29uc3QgZGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDphcGkuQmlnTnVtYmVyKGRhdGEuZGlzdElkKS50b051bWJlcigpfSk7aWYoYXBpLmFzc2VydChkaXN0LCJkaXN0cmlidXRpb24gaWQgbm90IGZvdW5kIikmJmFwaS5hc3NlcnQoZGlzdC5hY3RpdmUsImRpc3RyaWJ1dGlvbiBtdXN0IGJlIGFjdGl2ZSB0byBkZXBvc2l0Iikpe2lmKCJmaXhlZCI9PT1kaXN0LnN0cmF0ZWd5JiYhYXBpLmFzc2VydCh2YWxpZGF0ZUluY29taW5nVG9rZW4oZGlzdCxzeW1ib2wpLHN5bWJvbCsiIGlzIG5vdCBhY2NlcHRlZCBieSB0aGlzIGRpc3RyaWJ1dGlvbiIpKXJldHVybjtjb25zdCBkZXBUb2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpzeW1ib2x9KTthd2FpdCB1cGRhdGVUb2tlbkJhbGFuY2VzKGRpc3QsZGVwVG9rZW4scXVhbnRpdHkpLGFwaS5lbWl0KCJyZWNlaXZlRHRmVG9rZW5zIix7ZGlzdElkOmRhdGEuZGlzdElkLHN5bWJvbDpzeW1ib2wscXVhbnRpdHk6cXVhbnRpdHl9KX19LGFjdGlvbnMuZmx1c2g9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e2lkOmlkLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQsZGlzdD1hd2FpdCBhcGkuZGIuZmluZE9uZSgiYmF0Y2hlcyIse19pZDppZH0pO2lmKGFwaS5hc3NlcnQoZGlzdCwiZGlzdHJpYnV0aW9uIGlkIG5vdCBmb3VuZCIpJiZhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSB0cmFuc2FjdGlvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmYXBpLmFzc2VydChhcGkuc2VuZGVyPT09YXBpLm93bmVyfHxhcGkuc2VuZGVyPT09ZGlzdC5jcmVhdG9yLCJtdXN0IGJlIG93bmVyIG9yIGNyZWF0b3IiKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KTtkaXN0Lm51bVRpY2tzTGVmdD0xLGF3YWl0IGFwaS5kYi51cGRhdGUoImJhdGNoZXMiLGRpc3QpLGF3YWl0IHJ1bkRpc3RyaWJ1dGlvbihkaXN0LHBhcmFtcywhMCksYXBpLmVtaXQoImZsdXNoIix7ZGlzdElkOmRpc3QuX2lkfSl9fSxhY3Rpb25zLmNoZWNrUGVuZGluZ0Rpc3RyaWJ1dGlvbnM9YXN5bmMoKT0+e2lmKGFwaS5hc3NlcnQoIm51bGwiPT09YXBpLnNlbmRlciwibm90IGF1dGhvcml6ZWQiKSl7Y29uc3QgcGFyYW1zPWF3YWl0IGFwaS5kYi5maW5kT25lKCJwYXJhbXMiLHt9KSxibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSx0aWNrVGltZT1hcGkuQmlnTnVtYmVyKGJsb2NrRGF0ZS5nZXRUaW1lKCkpLm1pbnVzKDM2MDAqcGFyYW1zLmRpc3RUaWNrSG91cnMqMWUzKS50b051bWJlcigpLHBlbmRpbmdEaXN0cz1hd2FpdCBhcGkuZGIuZmluZCgiYmF0Y2hlcyIse2FjdGl2ZTohMCxudW1UaWNrc0xlZnQ6eyRndDowfSwidG9rZW5CYWxhbmNlcy4wIjp7JGV4aXN0czohMH0sbGFzdFRpY2tUaW1lOnskbHRlOnRpY2tUaW1lfX0scGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdCwwLFt7aW5kZXg6Imxhc3RUaWNrVGltZSIsZGVzY2VuZGluZzohMX0se2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYocGVuZGluZ0Rpc3RzLmxlbmd0aD4wKWZvcihsZXQgaT0wO2k8cGVuZGluZ0Rpc3RzLmxlbmd0aDtpKz0xKWF3YWl0IHJ1bkRpc3RyaWJ1dGlvbihwZW5kaW5nRGlzdHNbaV0scGFyYW1zKTtlbHNle2NvbnN0IHBlbmRpbmdQYXk9YXdhaXQgYXBpLmRiLmZpbmQoInBlbmRpbmdQYXltZW50cyIse2R1ZVRpbWU6eyRsdDpibG9ja0RhdGUuZ2V0VGltZSgpfX0scGFyYW1zLm1heERpc3RyaWJ1dGlvbnNMaW1pdCwwLFt7aW5kZXg6ImR1ZVRpbWUiLGRlc2NlbmRpbmc6ITF9LHtpbmRleDoiX2lkIixkZXNjZW5kaW5nOiExfV0pO2lmKHBlbmRpbmdQYXkubGVuZ3RoPjApZm9yKGxldCBpPTA7aTxwZW5kaW5nUGF5Lmxlbmd0aDtpKz0xKWF3YWl0IHJ1blBlbmRpbmdQYXkocGVuZGluZ1BheVtpXSxwYXJhbXMpfX19Ow=="}}}

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Ecency