NFT Market Smart Contract

Words
1
Reading
1 min
Listen
Play
6y

{"id":"ssc-mainnet-hive","json":{"contractName":"contract","contractAction":"update","contractPayload":{"name":"nftmarket","params":"","code":"Y29uc3QgQ09OVFJBQ1RfTkFNRT0ibmZ0bWFya2V0IixNQVhfTlVNX1VOSVRTX09QRVJBQkxFPTUwO2FjdGlvbnMuY3JlYXRlU1NDPWFzeW5jKCk9Pnt9O2NvbnN0IGlzVG9rZW5UcmFuc2ZlclZlcmlmaWVkPShyZXN1bHQsZnJvbSx0byxzeW1ib2wscXVhbnRpdHksZXZlbnRTdHIpPT4hKHZvaWQgMCE9PXJlc3VsdC5lcnJvcnN8fCFyZXN1bHQuZXZlbnRzfHx2b2lkIDA9PT1yZXN1bHQuZXZlbnRzLmZpbmQoZWw9PiJ0b2tlbnMiPT09ZWwuY29udHJhY3QmJmVsLmV2ZW50PT09ZXZlbnRTdHImJmVsLmRhdGEuZnJvbT09PWZyb20mJmVsLmRhdGEudG89PT10byYmZWwuZGF0YS5xdWFudGl0eT09PXF1YW50aXR5JiZlbC5kYXRhLnN5bWJvbD09PXN5bWJvbCkpLGNvdW50RGVjaW1hbHM9dmFsdWU9PmFwaS5CaWdOdW1iZXIodmFsdWUpLmRwKCksaXNWYWxpZEhpdmVBY2NvdW50TGVuZ3RoPWFjY291bnQ9PmFjY291bnQubGVuZ3RoPj0zJiZhY2NvdW50Lmxlbmd0aDw9MTYsbWFrZU1hcEtleT0oYWNjb3VudCx0eXBlKT0+YWNjb3VudCsiLSIrdHlwZSxtYWtlR3JvdXBpbmdLZXk9KGdyb3VwaW5nLGdyb3VwQnkpPT57bGV0IGtleT0iIjtyZXR1cm4gZ3JvdXBCeS5mb3JFYWNoKG5hbWU9PntrZXk9a2V5KyI6IituYW1lKyI6Iitncm91cGluZ1tuYW1lXX0pLGtleX0saXNWYWxpZElkQXJyYXk9YXJyPT57dHJ5e2lmKCFhcGkuYXNzZXJ0KGFyciYmIm9iamVjdCI9PXR5cGVvZiBhcnImJkFycmF5LmlzQXJyYXkoYXJyKSwiaW52YWxpZCBpZCBsaXN0IikpcmV0dXJuITE7aWYoIWFwaS5hc3NlcnQoYXJyLmxlbmd0aDw9NTAsImNhbm5vdCBhY3Qgb24gbW9yZSB0aGFuIDUwIElEcyBhdCBvbmNlIikpcmV0dXJuITE7Zm9yKGxldCBpPTA7aTxhcnIubGVuZ3RoO2krPTEpe2NvbnN0IGlkPWFycltpXTtpZighYXBpLmFzc2VydChpZCYmInN0cmluZyI9PXR5cGVvZiBpZCYmIWFwaS5CaWdOdW1iZXIoaWQpLmlzTmFOKCkmJmFwaS5CaWdOdW1iZXIoaWQpLmd0KDApLCJpbnZhbGlkIGlkIGxpc3QiKSlyZXR1cm4hMX19Y2F0Y2goZSl7cmV0dXJuITF9cmV0dXJuITB9O2FjdGlvbnMuZW5hYmxlTWFya2V0PWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9PXBheWxvYWQ7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmFwaS5hc3NlcnQoc3ltYm9sJiYic3RyaW5nIj09dHlwZW9mIHN5bWJvbCwiaW52YWxpZCBwYXJhbXMiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZihhcGkuYXNzZXJ0KG51bGwhPT1uZnQsInN5bWJvbCBkb2VzIG5vdCBleGlzdCIpJiZhcGkuYXNzZXJ0KG5mdC5pc3N1ZXI9PT1hcGkuc2VuZGVyLCJtdXN0IGJlIHRoZSBpc3N1ZXIiKSl7Y29uc3QgbWFya2V0VGFibGVOYW1lPXN5bWJvbCsic2VsbEJvb2siLG1ldHJpY3NUYWJsZU5hbWU9c3ltYm9sKyJvcGVuSW50ZXJlc3QiLGhpc3RvcnlUYWJsZU5hbWU9c3ltYm9sKyJ0cmFkZXNIaXN0b3J5Iix0YWJsZUV4aXN0cz1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMobWFya2V0VGFibGVOYW1lKTthcGkuYXNzZXJ0KCExPT09dGFibGVFeGlzdHMsIm1hcmtldCBhbHJlYWR5IGVuYWJsZWQiKSYmKGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZShtYXJrZXRUYWJsZU5hbWUsWyJvd25lZEJ5IiwiYWNjb3VudCIsIm5mdElkIiwiZ3JvdXBpbmciLCJwcmljZVN5bWJvbCJdKSxhd2FpdCBhcGkuZGIuY3JlYXRlVGFibGUobWV0cmljc1RhYmxlTmFtZSxbInNpZGUiLCJwcmljZVN5bWJvbCIsImdyb3VwaW5nIl0pLGF3YWl0IGFwaS5kYi5jcmVhdGVUYWJsZShoaXN0b3J5VGFibGVOYW1lLFsicHJpY2VTeW1ib2wiLCJ0aW1lc3RhbXAiXSksYXBpLmVtaXQoImVuYWJsZU1hcmtldCIse3N5bWJvbDpzeW1ib2x9KSl9fX07Y29uc3QgdXBkYXRlT3BlbkludGVyZXN0PWFzeW5jKHNpZGUsc3ltYm9sLHByaWNlU3ltYm9sLGdyb3Vwcyxncm91cEJ5KT0+e2NvbnN0IG1ldHJpY3NUYWJsZU5hbWU9c3ltYm9sKyJvcGVuSW50ZXJlc3QiLGdyb3VwS2V5cz1bXTtmb3IoY29uc3QgaW5mbyBvZiBPYmplY3QudmFsdWVzKGdyb3VwcykpZ3JvdXBLZXlzLnB1c2goaW5mby5ncm91cGluZyk7aWYoZ3JvdXBLZXlzLmxlbmd0aDw9MClyZXR1cm47Y29uc3Qgb3BlbkludGVyZXN0PWF3YWl0IGFwaS5kYi5maW5kKG1ldHJpY3NUYWJsZU5hbWUse3NpZGU6c2lkZSxwcmljZVN5bWJvbDpwcmljZVN5bWJvbCxncm91cGluZzp7JGluOmdyb3VwS2V5c319LDUwLDAsW3tpbmRleDoic2lkZSIsZGVzY2VuZGluZzohMX0se2luZGV4OiJwcmljZVN5bWJvbCIsZGVzY2VuZGluZzohMX0se2luZGV4OiJncm91cGluZyIsZGVzY2VuZGluZzohMX1dKTtmb3IobGV0IGk9MDtpPG9wZW5JbnRlcmVzdC5sZW5ndGg7aSs9MSl7Y29uc3QgbWV0cmljPW9wZW5JbnRlcmVzdFtpXSxrZXk9bWFrZUdyb3VwaW5nS2V5KG1ldHJpYy5ncm91cGluZyxncm91cEJ5KTtrZXkgaW4gZ3JvdXBzJiYoZ3JvdXBzW2tleV0uaXNJbkNvbGxlY3Rpb249ITAsbWV0cmljLmNvdW50Kz1ncm91cHNba2V5XS5jb3VudCxtZXRyaWMuY291bnQ8MCYmKG1ldHJpYy5jb3VudD0wKSxhd2FpdCBhcGkuZGIudXBkYXRlKG1ldHJpY3NUYWJsZU5hbWUsbWV0cmljKSl9Zm9yKGNvbnN0IGluZm8gb2YgT2JqZWN0LnZhbHVlcyhncm91cHMpKWlmKCFpbmZvLmlzSW5Db2xsZWN0aW9uKXtjb25zdCBmaW5hbENvdW50PWluZm8uY291bnQ+MD9pbmZvLmNvdW50OjAsbmV3TWV0cmljPXtzaWRlOnNpZGUscHJpY2VTeW1ib2w6cHJpY2VTeW1ib2wsZ3JvdXBpbmc6aW5mby5ncm91cGluZyxjb3VudDpmaW5hbENvdW50fTthd2FpdCBhcGkuZGIuaW5zZXJ0KG1ldHJpY3NUYWJsZU5hbWUsbmV3TWV0cmljKX19LHVwZGF0ZVRyYWRlc0hpc3Rvcnk9YXN5bmModHlwZSxhY2NvdW50LG93bmVkQnksY291bnRlcnBhcnRpZXMsc3ltYm9sLHByaWNlU3ltYm9sLHByaWNlLG1hcmtldEFjY291bnQsZmVlLHZvbHVtZSk9Pntjb25zdCBibG9ja0RhdGU9bmV3IERhdGUoYXBpLmhpdmVCbG9ja1RpbWVzdGFtcCsiLjAwMFoiKSx0aW1lc3RhbXBTZWM9YmxvY2tEYXRlLmdldFRpbWUoKS8xZTMsdGltZXN0YW1wTWludXMyNGhycz1ibG9ja0RhdGUuc2V0RGF0ZShibG9ja0RhdGUuZ2V0RGF0ZSgpLTEpLzFlMyxoaXN0b3J5VGFibGVOYW1lPXN5bWJvbCsidHJhZGVzSGlzdG9yeSI7bGV0IHRyYWRlc1RvRGVsZXRlPWF3YWl0IGFwaS5kYi5maW5kKGhpc3RvcnlUYWJsZU5hbWUse3ByaWNlU3ltYm9sOnByaWNlU3ltYm9sLHRpbWVzdGFtcDp7JGx0OnRpbWVzdGFtcE1pbnVzMjRocnN9fSksbmJUcmFkZXNUb0RlbGV0ZT10cmFkZXNUb0RlbGV0ZS5sZW5ndGg7Zm9yKDtuYlRyYWRlc1RvRGVsZXRlPjA7KXtmb3IobGV0IGluZGV4PTA7aW5kZXg8bmJUcmFkZXNUb0RlbGV0ZTtpbmRleCs9MSl7Y29uc3QgdHJhZGU9dHJhZGVzVG9EZWxldGVbaW5kZXhdO2F3YWl0IGFwaS5kYi5yZW1vdmUoaGlzdG9yeVRhYmxlTmFtZSx0cmFkZSl9dHJhZGVzVG9EZWxldGU9YXdhaXQgYXBpLmRiLmZpbmQoaGlzdG9yeVRhYmxlTmFtZSx7cHJpY2VTeW1ib2w6cHJpY2VTeW1ib2wsdGltZXN0YW1wOnskbHQ6dGltZXN0YW1wTWludXMyNGhyc319KSxuYlRyYWRlc1RvRGVsZXRlPXRyYWRlc1RvRGVsZXRlLmxlbmd0aH1jb25zdCBuZXdUcmFkZT17fTtuZXdUcmFkZS50eXBlPXR5cGUsbmV3VHJhZGUuYWNjb3VudD1hY2NvdW50LG5ld1RyYWRlLm93bmVkQnk9b3duZWRCeSxuZXdUcmFkZS5jb3VudGVycGFydGllcz1jb3VudGVycGFydGllcyxuZXdUcmFkZS5wcmljZVN5bWJvbD1wcmljZVN5bWJvbCxuZXdUcmFkZS5wcmljZT1wcmljZSxuZXdUcmFkZS5tYXJrZXRBY2NvdW50PW1hcmtldEFjY291bnQsbmV3VHJhZGUuZmVlPWZlZSxuZXdUcmFkZS50aW1lc3RhbXA9dGltZXN0YW1wU2VjLG5ld1RyYWRlLnZvbHVtZT12b2x1bWUsYXdhaXQgYXBpLmRiLmluc2VydChoaXN0b3J5VGFibGVOYW1lLG5ld1RyYWRlKX07YWN0aW9ucy5jaGFuZ2VQcmljZT1hc3luYyBwYXlsb2FkPT57Y29uc3R7c3ltYm9sOnN5bWJvbCxuZnRzOm5mdHMscHJpY2U6cHJpY2UsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybjtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsdGFibGVFeGlzdHM9YXdhaXQgYXBpLmRiLnRhYmxlRXhpc3RzKG1hcmtldFRhYmxlTmFtZSk7aWYoYXBpLmFzc2VydCghMD09PWlzU2lnbmVkV2l0aEFjdGl2ZUtleSwieW91IG11c3QgdXNlIGEgY3VzdG9tX2pzb24gc2lnbmVkIHdpdGggeW91ciBhY3RpdmUga2V5IikmJmlzVmFsaWRJZEFycmF5KG5mdHMpJiZhcGkuYXNzZXJ0KHByaWNlJiYic3RyaW5nIj09dHlwZW9mIHByaWNlJiYhYXBpLkJpZ051bWJlcihwcmljZSkuaXNOYU4oKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3Qgb3JkZXJzPWF3YWl0IGFwaS5kYi5maW5kKG1hcmtldFRhYmxlTmFtZSx7bmZ0SWQ6eyRpbjpuZnRzfX0sNTAsMCxbe2luZGV4OiJuZnRJZCIsZGVzY2VuZGluZzohMX1dKTtpZihvcmRlcnMubGVuZ3RoPjApe2xldCBwcmljZVN5bWJvbD0iIjtmb3IobGV0IGk9MDtpPG9yZGVycy5sZW5ndGg7aSs9MSl7Y29uc3Qgb3JkZXI9b3JkZXJzW2ldO2lmKCIiPT09cHJpY2VTeW1ib2wmJih7cHJpY2VTeW1ib2w6cHJpY2VTeW1ib2x9PW9yZGVyKSwhYXBpLmFzc2VydChvcmRlci5hY2NvdW50PT09YXBpLnNlbmRlciYmInUiPT09b3JkZXIub3duZWRCeSwiYWxsIG9yZGVycyBtdXN0IGJlIHlvdXIgb3duIil8fCFhcGkuYXNzZXJ0KHByaWNlU3ltYm9sPT09b3JkZXIucHJpY2VTeW1ib2wsImFsbCBvcmRlcnMgbXVzdCBoYXZlIHRoZSBzYW1lIHByaWNlIHN5bWJvbCIpKXJldHVybn1jb25zdCB0b2tlbj1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsInRva2VucyIse3N5bWJvbDpwcmljZVN5bWJvbH0pO2lmKGFwaS5hc3NlcnQodG9rZW4mJmFwaS5CaWdOdW1iZXIocHJpY2UpLmd0KDApJiZjb3VudERlY2ltYWxzKHByaWNlKTw9dG9rZW4ucHJlY2lzaW9uLCJpbnZhbGlkIHByaWNlIikpe2NvbnN0IGZpbmFsUHJpY2U9YXBpLkJpZ051bWJlcihwcmljZSkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV0sb2xkUHJpY2U9b3JkZXIucHJpY2U7b3JkZXIucHJpY2U9ZmluYWxQcmljZSxvcmRlci5wcmljZURlYz17JG51bWJlckRlY2ltYWw6ZmluYWxQcmljZX0sYXdhaXQgYXBpLmRiLnVwZGF0ZShtYXJrZXRUYWJsZU5hbWUsb3JkZXIpLGFwaS5lbWl0KCJjaGFuZ2VQcmljZSIse3N5bWJvbDpzeW1ib2wsbmZ0SWQ6b3JkZXIubmZ0SWQsb2xkUHJpY2U6b2xkUHJpY2UsbmV3UHJpY2U6b3JkZXIucHJpY2UscHJpY2VTeW1ib2w6b3JkZXIucHJpY2VTeW1ib2wsb3JkZXJJZDpvcmRlci5faWR9KX19fX19LGFjdGlvbnMuY2FuY2VsPWFzeW5jIHBheWxvYWQ9Pntjb25zdHtzeW1ib2w6c3ltYm9sLG5mdHM6bmZ0cyxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wsImludmFsaWQgcGFyYW1zIikpcmV0dXJuO2NvbnN0IG1hcmtldFRhYmxlTmFtZT1zeW1ib2wrInNlbGxCb29rIix0YWJsZUV4aXN0cz1hd2FpdCBhcGkuZGIudGFibGVFeGlzdHMobWFya2V0VGFibGVOYW1lKTtpZihhcGkuYXNzZXJ0KCEwPT09aXNTaWduZWRXaXRoQWN0aXZlS2V5LCJ5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXkiKSYmaXNWYWxpZElkQXJyYXkobmZ0cykmJmFwaS5hc3NlcnQodGFibGVFeGlzdHMsIm1hcmtldCBub3QgZW5hYmxlZCBmb3Igc3ltYm9sIikpe2NvbnN0IG5mdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm5mdCIsIm5mdHMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQobmZ0JiZuZnQuZ3JvdXBCeSYmbmZ0Lmdyb3VwQnkubGVuZ3RoPjAsIm1hcmtldCBncm91cGluZyBub3Qgc2V0IikpcmV0dXJuO2NvbnN0IG9yZGVycz1hd2FpdCBhcGkuZGIuZmluZChtYXJrZXRUYWJsZU5hbWUse25mdElkOnskaW46bmZ0c319LDUwLDAsW3tpbmRleDoibmZ0SWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYob3JkZXJzLmxlbmd0aD4wKXtjb25zdCBpZHM9W10saWRNYXA9e307bGV0IHByaWNlU3ltYm9sPSIiO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV07aWYoIiI9PT1wcmljZVN5bWJvbCYmKHtwcmljZVN5bWJvbDpwcmljZVN5bWJvbH09b3JkZXIpLCFhcGkuYXNzZXJ0KG9yZGVyLmFjY291bnQ9PT1hcGkuc2VuZGVyJiYidSI9PT1vcmRlci5vd25lZEJ5LCJhbGwgb3JkZXJzIG11c3QgYmUgeW91ciBvd24iKXx8IWFwaS5hc3NlcnQocHJpY2VTeW1ib2w9PT1vcmRlci5wcmljZVN5bWJvbCwiYWxsIG9yZGVycyBtdXN0IGhhdmUgdGhlIHNhbWUgcHJpY2Ugc3ltYm9sIikpcmV0dXJuO2lkcy5wdXNoKG9yZGVyLm5mdElkKSxpZE1hcFtvcmRlci5uZnRJZF09b3JkZXJ9Y29uc3QgbmZ0QXJyYXk9W10sd3JhcHBlZE5mdHM9e3N5bWJvbDpzeW1ib2wsaWRzOmlkc307bmZ0QXJyYXkucHVzaCh3cmFwcGVkTmZ0cyk7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToiY29udHJhY3QiLHRvOmFwaS5zZW5kZXIsdG9UeXBlOiJ1c2VyIixuZnRzOm5mdEFycmF5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTtpZihyZXMuZXZlbnRzKXtjb25zdCBncm91cGluZ01hcD17fTtmb3IobGV0IGo9MDtqPHJlcy5ldmVudHMubGVuZ3RoO2orPTEpe2NvbnN0IGV2PXJlcy5ldmVudHNbal07aWYoZXYuY29udHJhY3QmJmV2LmV2ZW50JiZldi5kYXRhJiYibmZ0Ij09PWV2LmNvbnRyYWN0JiYidHJhbnNmZXIiPT09ZXYuZXZlbnQmJiJuZnRtYXJrZXQiPT09ZXYuZGF0YS5mcm9tJiYiYyI9PT1ldi5kYXRhLmZyb21UeXBlJiZldi5kYXRhLnRvPT09YXBpLnNlbmRlciYmInUiPT09ZXYuZGF0YS50b1R5cGUmJmV2LmRhdGEuc3ltYm9sPT09c3ltYm9sKXtjb25zdCBpbnN0YW5jZUlkPWV2LmRhdGEuaWQ7aWYoaW5zdGFuY2VJZCBpbiBpZE1hcCl7Y29uc3Qgb3JkZXI9aWRNYXBbaW5zdGFuY2VJZF07YXdhaXQgYXBpLmRiLnJlbW92ZShtYXJrZXRUYWJsZU5hbWUsb3JkZXIpLGFwaS5lbWl0KCJjYW5jZWxPcmRlciIse2FjY291bnQ6b3JkZXIuYWNjb3VudCxvd25lZEJ5Om9yZGVyLm93bmVkQnksc3ltYm9sOnN5bWJvbCxuZnRJZDpvcmRlci5uZnRJZCx0aW1lc3RhbXA6b3JkZXIudGltZXN0YW1wLHByaWNlOm9yZGVyLnByaWNlLHByaWNlU3ltYm9sOm9yZGVyLnByaWNlU3ltYm9sLGZlZTpvcmRlci5mZWUsb3JkZXJJZDpvcmRlci5faWR9KTtjb25zdCBrZXk9bWFrZUdyb3VwaW5nS2V5KG9yZGVyLmdyb3VwaW5nLG5mdC5ncm91cEJ5KSxncm91cEluZm89a2V5IGluIGdyb3VwaW5nTWFwP2dyb3VwaW5nTWFwW2tleV06e2dyb3VwaW5nOm9yZGVyLmdyb3VwaW5nLGlzSW5Db2xsZWN0aW9uOiExLGNvdW50OjB9O2dyb3VwSW5mby5jb3VudC09MSxncm91cGluZ01hcFtrZXldPWdyb3VwSW5mb319fWF3YWl0IHVwZGF0ZU9wZW5JbnRlcmVzdCgic2VsbCIsc3ltYm9sLHByaWNlU3ltYm9sLGdyb3VwaW5nTWFwLG5mdC5ncm91cEJ5KX19fX0sYWN0aW9ucy5idXk9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0czpuZnRzLG1hcmtldEFjY291bnQ6bWFya2V0QWNjb3VudCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fT1wYXlsb2FkO2lmKCFhcGkuYXNzZXJ0KHN5bWJvbCYmInN0cmluZyI9PXR5cGVvZiBzeW1ib2wmJm1hcmtldEFjY291bnQmJiJzdHJpbmciPT10eXBlb2YgbWFya2V0QWNjb3VudCwiaW52YWxpZCBwYXJhbXMiKSlyZXR1cm47Y29uc3QgbWFya2V0VGFibGVOYW1lPXN5bWJvbCsic2VsbEJvb2siLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZpc1ZhbGlkSWRBcnJheShuZnRzKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3QgZmluYWxNYXJrZXRBY2NvdW50PW1hcmtldEFjY291bnQudHJpbSgpLnRvTG93ZXJDYXNlKCk7aWYoYXBpLmFzc2VydCgoYWNjb3VudD1maW5hbE1hcmtldEFjY291bnQpLmxlbmd0aD49MyYmYWNjb3VudC5sZW5ndGg8PTE2LCJpbnZhbGlkIG1hcmtldCBhY2NvdW50Iikpe2NvbnN0IG5mdD1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoIm5mdCIsIm5mdHMiLHtzeW1ib2w6c3ltYm9sfSk7aWYoIWFwaS5hc3NlcnQobmZ0JiZuZnQuZ3JvdXBCeSYmbmZ0Lmdyb3VwQnkubGVuZ3RoPjAsIm1hcmtldCBncm91cGluZyBub3Qgc2V0IikpcmV0dXJuO2NvbnN0IG9yZGVycz1hd2FpdCBhcGkuZGIuZmluZChtYXJrZXRUYWJsZU5hbWUse25mdElkOnskaW46bmZ0c319LDUwLDAsW3tpbmRleDoibmZ0SWQiLGRlc2NlbmRpbmc6ITF9XSk7aWYob3JkZXJzLmxlbmd0aD4wKXtsZXQgcHJpY2VTeW1ib2w9IiI7Zm9yKGxldCBpPTA7aTxvcmRlcnMubGVuZ3RoO2krPTEpe2NvbnN0IG9yZGVyPW9yZGVyc1tpXTtpZigiIj09PXByaWNlU3ltYm9sJiYoe3ByaWNlU3ltYm9sOnByaWNlU3ltYm9sfT1vcmRlciksIWFwaS5hc3NlcnQoISgidSI9PT1vcmRlci5vd25lZEJ5JiZvcmRlci5hY2NvdW50PT09YXBpLnNlbmRlciksImNhbm5vdCBmaWxsIHlvdXIgb3duIG9yZGVycyIpfHwhYXBpLmFzc2VydChwcmljZVN5bWJvbD09PW9yZGVyLnByaWNlU3ltYm9sLCJhbGwgb3JkZXJzIG11c3QgaGF2ZSB0aGUgc2FtZSBwcmljZSBzeW1ib2wiKSlyZXR1cm59Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cHJpY2VTeW1ib2x9KTtpZighdG9rZW4pcmV0dXJuO2xldCBmZWVUb3RhbD1hcGkuQmlnTnVtYmVyKDApLHBheW1lbnRUb3RhbD1hcGkuQmlnTnVtYmVyKDApLHNvbGROZnRzPVtdO2NvbnN0IHNlbGxlcnM9W10sc2VsbGVyTWFwPXt9O2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV0sZmluYWxQcmljZT1hcGkuQmlnTnVtYmVyKG9yZGVyLnByaWNlKSxmZWVQZXJjZW50PW9yZGVyLmZlZS8xZTQ7bGV0IGZpbmFsRmVlPWZpbmFsUHJpY2UubXVsdGlwbGllZEJ5KGZlZVBlcmNlbnQpLmRlY2ltYWxQbGFjZXModG9rZW4ucHJlY2lzaW9uKTtmaW5hbEZlZS5ndChmaW5hbFByaWNlKSYmKGZpbmFsRmVlPWZpbmFsUHJpY2UpO2xldCBmaW5hbFBheW1lbnQ9ZmluYWxQcmljZS5taW51cyhmaW5hbEZlZSkuZGVjaW1hbFBsYWNlcyh0b2tlbi5wcmVjaXNpb24pO2ZpbmFsUGF5bWVudC5sdCgwKSYmKGZpbmFsUGF5bWVudD1hcGkuQmlnTnVtYmVyKDApKSxwYXltZW50VG90YWw9cGF5bWVudFRvdGFsLnBsdXMoZmluYWxQYXltZW50KSxmZWVUb3RhbD1mZWVUb3RhbC5wbHVzKGZpbmFsRmVlKTtjb25zdCBrZXk9bWFrZU1hcEtleShvcmRlci5hY2NvdW50LG9yZGVyLm93bmVkQnkpLHNlbGxlckluZm89a2V5IGluIHNlbGxlck1hcD9zZWxsZXJNYXBba2V5XTp7YWNjb3VudDpvcmRlci5hY2NvdW50LG93bmVkQnk6b3JkZXIub3duZWRCeSxuZnRJZHM6W10scGF5bWVudFRvdGFsOmFwaS5CaWdOdW1iZXIoMCl9O3NlbGxlckluZm8ucGF5bWVudFRvdGFsPXNlbGxlckluZm8ucGF5bWVudFRvdGFsLnBsdXMoZmluYWxQYXltZW50KSxzZWxsZXJJbmZvLm5mdElkcy5wdXNoKG9yZGVyLm5mdElkKSxzZWxsZXJNYXBba2V5XT1zZWxsZXJJbmZvfWNvbnN0IHJlcXVpcmVkQmFsYW5jZT1wYXltZW50VG90YWwucGx1cyhmZWVUb3RhbCkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pLGJ1eWVyQmFsYW5jZT1hd2FpdCBhcGkuZGIuZmluZE9uZUluVGFibGUoInRva2VucyIsImJhbGFuY2VzIix7YWNjb3VudDphcGkuc2VuZGVyLHN5bWJvbDpwcmljZVN5bWJvbH0pO2lmKCFhcGkuYXNzZXJ0KGJ1eWVyQmFsYW5jZSYmYXBpLkJpZ051bWJlcihidXllckJhbGFuY2UuYmFsYW5jZSkuZ3RlKHJlcXVpcmVkQmFsYW5jZSksInlvdSBtdXN0IGhhdmUgZW5vdWdoIHRva2VucyBmb3IgcGF5bWVudCIpKXJldHVybjtpZihwYXltZW50VG90YWw9cGF5bWVudFRvdGFsLnRvRml4ZWQodG9rZW4ucHJlY2lzaW9uKSxmZWVUb3RhbC5ndCgwKSl7ZmVlVG90YWw9ZmVlVG90YWwudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pO2NvbnN0IHJlcz1hd2FpdCBhcGkuZXhlY3V0ZVNtYXJ0Q29udHJhY3QoInRva2VucyIsInRyYW5zZmVyIix7dG86ZmluYWxNYXJrZXRBY2NvdW50LHN5bWJvbDpwcmljZVN5bWJvbCxxdWFudGl0eTpmZWVUb3RhbCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSk7aWYoIWFwaS5hc3NlcnQoaXNUb2tlblRyYW5zZmVyVmVyaWZpZWQocmVzLGFwaS5zZW5kZXIsZmluYWxNYXJrZXRBY2NvdW50LHByaWNlU3ltYm9sLGZlZVRvdGFsLCJ0cmFuc2ZlciIpLCJ1bmFibGUgdG8gdHJhbnNmZXIgbWFya2V0IGZlZXMiKSlyZXR1cm59Zm9yKGNvbnN0IGluZm8gb2YgT2JqZWN0LnZhbHVlcyhzZWxsZXJNYXApKWlmKGluZm8ucGF5bWVudFRvdGFsLmd0KDApKXtjb25zdCBjb250cmFjdEFjdGlvbj0idSI9PT1pbmZvLm93bmVkQnk/InRyYW5zZmVyIjoidHJhbnNmZXJUb0NvbnRyYWN0IjtpbmZvLnBheW1lbnRUb3RhbD1pbmZvLnBheW1lbnRUb3RhbC50b0ZpeGVkKHRva2VuLnByZWNpc2lvbik7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgidG9rZW5zIixjb250cmFjdEFjdGlvbix7dG86aW5mby5hY2NvdW50LHN5bWJvbDpwcmljZVN5bWJvbCxxdWFudGl0eTppbmZvLnBheW1lbnRUb3RhbCxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSk7YXBpLmFzc2VydChpc1Rva2VuVHJhbnNmZXJWZXJpZmllZChyZXMsYXBpLnNlbmRlcixpbmZvLmFjY291bnQscHJpY2VTeW1ib2wsaW5mby5wYXltZW50VG90YWwsY29udHJhY3RBY3Rpb24pLCJ1bmFibGUgdG8gdHJhbnNmZXIgcGF5bWVudCB0byAiK2luZm8uYWNjb3VudCkmJihzb2xkTmZ0cz1zb2xkTmZ0cy5jb25jYXQoaW5mby5uZnRJZHMpLHNlbGxlcnMucHVzaChpbmZvKSl9ZWxzZSBzb2xkTmZ0cz1zb2xkTmZ0cy5jb25jYXQoaW5mby5uZnRJZHMpLHNlbGxlcnMucHVzaChpbmZvKTtjb25zdCBuZnRBcnJheT1bXSx3cmFwcGVkTmZ0cz17c3ltYm9sOnN5bWJvbCxpZHM6c29sZE5mdHN9O25mdEFycmF5LnB1c2god3JhcHBlZE5mdHMpLGF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToiY29udHJhY3QiLHRvOmFwaS5zZW5kZXIsdG9UeXBlOiJ1c2VyIixuZnRzOm5mdEFycmF5LGlzU2lnbmVkV2l0aEFjdGl2ZUtleTppc1NpZ25lZFdpdGhBY3RpdmVLZXl9KTtjb25zdCBncm91cGluZ01hcD17fSxzb2xkU2V0PW5ldyBTZXQoc29sZE5mdHMpO2ZvcihsZXQgaT0wO2k8b3JkZXJzLmxlbmd0aDtpKz0xKXtjb25zdCBvcmRlcj1vcmRlcnNbaV07aWYoc29sZFNldC5oYXMob3JkZXIubmZ0SWQpKXthd2FpdCBhcGkuZGIucmVtb3ZlKG1hcmtldFRhYmxlTmFtZSxvcmRlcik7Y29uc3Qga2V5PW1ha2VHcm91cGluZ0tleShvcmRlci5ncm91cGluZyxuZnQuZ3JvdXBCeSksZ3JvdXBJbmZvPWtleSBpbiBncm91cGluZ01hcD9ncm91cGluZ01hcFtrZXldOntncm91cGluZzpvcmRlci5ncm91cGluZyxpc0luQ29sbGVjdGlvbjohMSxjb3VudDowfTtncm91cEluZm8uY291bnQtPTEsZ3JvdXBpbmdNYXBba2V5XT1ncm91cEluZm99fWF3YWl0IHVwZGF0ZVRyYWRlc0hpc3RvcnkoImJ1eSIsYXBpLnNlbmRlciwidSIsc2VsbGVycyxzeW1ib2wscHJpY2VTeW1ib2wscmVxdWlyZWRCYWxhbmNlLGZpbmFsTWFya2V0QWNjb3VudCxmZWVUb3RhbCxzb2xkTmZ0cy5sZW5ndGgpLGFwaS5lbWl0KCJoaXRTZWxsT3JkZXIiLHtzeW1ib2w6c3ltYm9sLHByaWNlU3ltYm9sOnByaWNlU3ltYm9sLGFjY291bnQ6YXBpLnNlbmRlcixvd25lZEJ5OiJ1IixzZWxsZXJzOnNlbGxlcnMscGF5bWVudFRvdGFsOnBheW1lbnRUb3RhbCxmZWVUb3RhbDpmZWVUb3RhbH0pLGF3YWl0IHVwZGF0ZU9wZW5JbnRlcmVzdCgic2VsbCIsc3ltYm9sLHByaWNlU3ltYm9sLGdyb3VwaW5nTWFwLG5mdC5ncm91cEJ5KX19fXZhciBhY2NvdW50fSxhY3Rpb25zLnNlbGw9YXN5bmMgcGF5bG9hZD0+e2NvbnN0e3N5bWJvbDpzeW1ib2wsbmZ0czpuZnRzLHByaWNlOnByaWNlLHByaWNlU3ltYm9sOnByaWNlU3ltYm9sLGZlZTpmZWUsaXNTaWduZWRXaXRoQWN0aXZlS2V5OmlzU2lnbmVkV2l0aEFjdGl2ZUtleX09cGF5bG9hZDtpZighYXBpLmFzc2VydChzeW1ib2wmJiJzdHJpbmciPT10eXBlb2Ygc3ltYm9sLCJpbnZhbGlkIHBhcmFtcyIpKXJldHVybjtjb25zdCBtYXJrZXRUYWJsZU5hbWU9c3ltYm9sKyJzZWxsQm9vayIsaW5zdGFuY2VUYWJsZU5hbWU9c3ltYm9sKyJpbnN0YW5jZXMiLHRhYmxlRXhpc3RzPWF3YWl0IGFwaS5kYi50YWJsZUV4aXN0cyhtYXJrZXRUYWJsZU5hbWUpO2lmKGFwaS5hc3NlcnQoITA9PT1pc1NpZ25lZFdpdGhBY3RpdmVLZXksInlvdSBtdXN0IHVzZSBhIGN1c3RvbV9qc29uIHNpZ25lZCB3aXRoIHlvdXIgYWN0aXZlIGtleSIpJiZhcGkuYXNzZXJ0KG5mdHMmJiJvYmplY3QiPT10eXBlb2YgbmZ0cyYmQXJyYXkuaXNBcnJheShuZnRzKSYmcHJpY2VTeW1ib2wmJiJzdHJpbmciPT10eXBlb2YgcHJpY2VTeW1ib2wmJnByaWNlJiYic3RyaW5nIj09dHlwZW9mIHByaWNlJiYhYXBpLkJpZ051bWJlcihwcmljZSkuaXNOYU4oKSYmIm51bWJlciI9PXR5cGVvZiBmZWUmJmZlZT49MCYmZmVlPD0xZTQmJk51bWJlci5pc0ludGVnZXIoZmVlKSwiaW52YWxpZCBwYXJhbXMiKSYmYXBpLmFzc2VydChuZnRzLmxlbmd0aDw9NTAsImNhbm5vdCBzZWxsIG1vcmUgdGhhbiA1MCBORlQgaW5zdGFuY2VzIGF0IG9uY2UiKSYmYXBpLmFzc2VydCh0YWJsZUV4aXN0cywibWFya2V0IG5vdCBlbmFibGVkIGZvciBzeW1ib2wiKSl7Y29uc3QgbmZ0PWF3YWl0IGFwaS5kYi5maW5kT25lSW5UYWJsZSgibmZ0IiwibmZ0cyIse3N5bWJvbDpzeW1ib2x9KTtpZighYXBpLmFzc2VydChuZnQmJm5mdC5ncm91cEJ5JiZuZnQuZ3JvdXBCeS5sZW5ndGg+MCwibWFya2V0IGdyb3VwaW5nIG5vdCBzZXQiKSlyZXR1cm47Y29uc3QgdG9rZW49YXdhaXQgYXBpLmRiLmZpbmRPbmVJblRhYmxlKCJ0b2tlbnMiLCJ0b2tlbnMiLHtzeW1ib2w6cHJpY2VTeW1ib2x9KTtpZihhcGkuYXNzZXJ0KHRva2VuJiZhcGkuQmlnTnVtYmVyKHByaWNlKS5ndCgwKSYmY291bnREZWNpbWFscyhwcmljZSk8PXRva2VuLnByZWNpc2lvbiwiaW52YWxpZCBwcmljZSIpKXtjb25zdCBuZnRBcnJheT1bXSx3cmFwcGVkTmZ0cz17c3ltYm9sOnN5bWJvbCxpZHM6bmZ0c307bmZ0QXJyYXkucHVzaCh3cmFwcGVkTmZ0cyk7Y29uc3QgcmVzPWF3YWl0IGFwaS5leGVjdXRlU21hcnRDb250cmFjdCgibmZ0IiwidHJhbnNmZXIiLHtmcm9tVHlwZToidXNlciIsdG86Im5mdG1hcmtldCIsdG9UeXBlOiJjb250cmFjdCIsbmZ0czpuZnRBcnJheSxpc1NpZ25lZFdpdGhBY3RpdmVLZXk6aXNTaWduZWRXaXRoQWN0aXZlS2V5fSk7aWYocmVzLmV2ZW50cyl7Y29uc3QgdGltZXN0YW1wPW5ldyBEYXRlKGFwaS5oaXZlQmxvY2tUaW1lc3RhbXArIi4wMDBaIikuZ2V0VGltZSgpLGZpbmFsUHJpY2U9YXBpLkJpZ051bWJlcihwcmljZSkudG9GaXhlZCh0b2tlbi5wcmVjaXNpb24pLG5mdEludGVnZXJJZExpc3Q9W10sb3JkZXJEYXRhTWFwPXt9O2ZvcihsZXQgaT0wO2k8cmVzLmV2ZW50cy5sZW5ndGg7aSs9MSl7Y29uc3QgZXY9cmVzLmV2ZW50c1tpXTtpZihldi5jb250cmFjdCYmZXYuZXZlbnQmJmV2LmRhdGEmJiJuZnQiPT09ZXYuY29udHJhY3QmJiJ0cmFuc2ZlciI9PT1ldi5ldmVudCYmZXYuZGF0YS5mcm9tPT09YXBpLnNlbmRlciYmInUiPT09ZXYuZGF0YS5mcm9tVHlwZSYmIm5mdG1hcmtldCI9PT1ldi5kYXRhLnRvJiYiYyI9PT1ldi5kYXRhLnRvVHlwZSYmZXYuZGF0YS5zeW1ib2w9PT1zeW1ib2wpe2NvbnN0IGluc3RhbmNlSWQ9ZXYuZGF0YS5pZCxvcmRlckRhdGE9e25mdElkOmluc3RhbmNlSWQsZ3JvdXBpbmc6e30sZ3JvdXBpbmdLZXk6IiJ9LGludGVnZXJJZD1hcGkuQmlnTnVtYmVyKGluc3RhbmNlSWQpLnRvTnVtYmVyKCk7bmZ0SW50ZWdlcklkTGlzdC5wdXNoKGludGVnZXJJZCksb3JkZXJEYXRhTWFwW2ludGVnZXJJZF09b3JkZXJEYXRhfX1jb25zdCBpbnN0YW5jZXM9YXdhaXQgYXBpLmRiLmZpbmRJblRhYmxlKCJuZnQiLGluc3RhbmNlVGFibGVOYW1lLHtfaWQ6eyRpbjpuZnRJbnRlZ2VySWRMaXN0fX0sNTAsMCxbe2luZGV4OiJfaWQiLGRlc2NlbmRpbmc6ITF9XSk7Zm9yKGxldCBqPTA7ajxpbnN0YW5jZXMubGVuZ3RoO2orPTEpe2NvbnN0IGluc3RhbmNlPWluc3RhbmNlc1tqXSxncm91cGluZz17fTtsZXQgZ3JvdXBpbmdLZXk9IiI7bmZ0Lmdyb3VwQnkuZm9yRWFjaChuYW1lPT57dm9pZCAwIT09aW5zdGFuY2UucHJvcGVydGllc1tuYW1lXSYmbnVsbCE9PWluc3RhbmNlLnByb3BlcnRpZXNbbmFtZV0/Z3JvdXBpbmdbbmFtZV09aW5zdGFuY2UucHJvcGVydGllc1tuYW1lXS50b1N0cmluZygpOmdyb3VwaW5nW25hbWVdPSIiLGdyb3VwaW5nS2V5PWdyb3VwaW5nS2V5KyI6IituYW1lKyI6Iitncm91cGluZ1tuYW1lXX0pLG9yZGVyRGF0YU1hcFtpbnN0YW5jZS5faWRdLmdyb3VwaW5nPWdyb3VwaW5nLG9yZGVyRGF0YU1hcFtpbnN0YW5jZS5faWRdLmdyb3VwaW5nS2V5PWdyb3VwaW5nS2V5fWNvbnN0IGdyb3VwaW5nTWFwPXt9O2ZvcihsZXQgaz0wO2s8bmZ0SW50ZWdlcklkTGlzdC5sZW5ndGg7ays9MSl7Y29uc3Qgb3JkZXJJbmZvPW9yZGVyRGF0YU1hcFtuZnRJbnRlZ2VySWRMaXN0W2tdXSxvcmRlcj17YWNjb3VudDphcGkuc2VuZGVyLG93bmVkQnk6InUiLG5mdElkOm9yZGVySW5mby5uZnRJZCxncm91cGluZzpvcmRlckluZm8uZ3JvdXBpbmcsdGltZXN0YW1wOnRpbWVzdGFtcCxwcmljZTpmaW5hbFByaWNlLHByaWNlRGVjOnskbnVtYmVyRGVjaW1hbDpmaW5hbFByaWNlfSxwcmljZVN5bWJvbDpwcmljZVN5bWJvbCxmZWU6ZmVlfSxyZXN1bHQ9YXdhaXQgYXBpLmRiLmluc2VydChtYXJrZXRUYWJsZU5hbWUsb3JkZXIpO2FwaS5lbWl0KCJzZWxsT3JkZXIiLHthY2NvdW50Om9yZGVyLmFjY291bnQsb3duZWRCeTpvcmRlci5vd25lZEJ5LHN5bWJvbDpzeW1ib2wsbmZ0SWQ6b3JkZXIubmZ0SWQsdGltZXN0YW1wOnRpbWVzdGFtcCxwcmljZTpvcmRlci5wcmljZSxwcmljZVN5bWJvbDpvcmRlci5wcmljZVN5bWJvbCxmZWU6ZmVlLG9yZGVySWQ6cmVzdWx0Ll9pZH0pO2NvbnN0IGdyb3VwSW5mbz1vcmRlckluZm8uZ3JvdXBpbmdLZXkgaW4gZ3JvdXBpbmdNYXA/Z3JvdXBpbmdNYXBbb3JkZXJJbmZvLmdyb3VwaW5nS2V5XTp7Z3JvdXBpbmc6b3JkZXJJbmZvLmdyb3VwaW5nLGlzSW5Db2xsZWN0aW9uOiExLGNvdW50OjB9O2dyb3VwSW5mby5jb3VudCs9MSxncm91cGluZ01hcFtvcmRlckluZm8uZ3JvdXBpbmdLZXldPWdyb3VwSW5mb31hd2FpdCB1cGRhdGVPcGVuSW50ZXJlc3QoInNlbGwiLHN5bWJvbCxwcmljZVN5bWJvbCxncm91cGluZ01hcCxuZnQuZ3JvdXBCeSl9fX19Ow=="}}}

NFT Market Smart Contract | Ecency