Transaction

2ba06e3416a96cf45e3c38c22a19c5e5e0b532e9e00b376bff3fbddbb5ce573c
2025-02-16 12:02:39
0.00008886 BSV
(
0.02465291 BSV
-
0.02456405 BSV
)
499.3 sat/KB
1
21,323
17,795 B

2 Outputs

Total Output:
0.02456405 BSV
  • jM´D{"name":"EncodedFiles","files":[{"name":"coreglobalAA5.html","size":13110,"type":"text/html","content":"Y2xhc3MgQ29yZUdsb2JhbHMgewogIGNvbnN0cnVjdG9yKCkgewogICAgLy8gU3lzdGVtIGZvbGRlciBjb2RlcwogICAgdGhpcy5TWVNURU1fRk9MREVSUyA9IHsKICAgICAgSU5CT1g6ICcwJywKICAgICAgU0VOVDogJzEnLAogICAgICBKVU5LOiAnMicsCiAgICAgIEZBVk9SSVRFUzogJzMnCiAgICB9OwoKLy8gU3RvcmUgZW1vamkgY29kZXMgKHVzaW5nIFVuaWNvZGUgZXNjYXBlcykgdG8gcHJldmVudCBlbmNvZGluZyBpc3N1ZXMKICAgIHRoaXMuRU1PSklfQ09ERVMgPSB7CiAgICAgIElOQk9YOiAnXHV7MUY0RTV9JywgICAgICAvLyDwn5OlCiAgICAgIFNFTlQ6ICdcdXsxRjRFNH0nLCAgICAgICAvLyDwn5OkCiAgICAgIEpVTks6ICdcdXsxRjVEMX0nLCAgICAgICAvLyDwn5eRCiAgICAgIEZBVk9SSVRFUzogJ1x1ezJCNTB9JywgICAgLy8g4q2QCiAgICAgIEFERDogJ1x1ezI3OTV9JywgICAgICAgICAvLyDinpUKICAgICAgRk9MREVSOiAnXHV7MUY0QzF9JywgICAgIC8vIPCfk4EKICAgICAgQ09OVEFDVFM6ICdcdXsxRjQ2NX0nLCAgIC8vIPCfkaUKICAgICAgUkVGUkVTSDogJ1x1ezFGNTA0fScsICAgIC8vIPCflIQKICAgICAgVVNFUjogJ1x1ezFGNDY0fScsICAgICAgIC8vIPCfkaQKICAgICAgVElNRTogJ1x1ezFGNTUyfScsICAgICAgIC8vIPCflZIKICAgICAgUkVXQVJEOiAnXHV7MUY0QjB9JywgICAgIC8vIPCfkrAKICAgICAgREVMRVRFOiAnXHV7Mjc0Q30nICAgICAgIC8vIOKdjAogICAgfTsKCiAgICAvLyBEZWZhdWx0IGZvbGRlciBjb25maWd1cmF0aW9uCiAgICB0aGlzLmRlZmF1bHRGb2xkZXJDb25maWcgPSB7CiAgICAgIGZvbGRlcnM6IHsKICAgICAgICAnMCc6IHsgbmFtZTogJ0luYm94JywgaWNvbjogJ/Cfk6UnLCBzeXN0ZW06IHRydWUgfSwKICAgICAgICAnMSc6IHsgbmFtZTogJ1NlbnQnLCBpY29uOiAn8J+TpCcsIHN5c3RlbTogdHJ1ZSB9LAogICAgICAgICcyJzogeyBuYW1lOiAnSnVuaycsIGljb246ICfwn5eRJywgc3lzdGVtOiB0cnVlIH0sCiAgICAgICAgJzMnOiB7IG5hbWU6ICdGYXZvcml0ZXMnLCBpY29uOiAn4q2QJywgc3lzdGVtOiB0cnVlIH0KICAgICAgfSwKICAgICAgbmV4dENvZGU6IDQKICAgIH07CgogICAgLy8gRW5zdXJlIGZvbGRlciBjb25maWcgZXhpc3RzCiAgICB0aGlzLmZvbGRlckNvbmZpZyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZvbGRlckNvbmZpZycpIHx8IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLmRlZmF1bHRGb2xkZXJDb25maWcpKTsKICAgIHRoaXMuc2F2ZUZvbGRlckNvbmZpZygpOwoKICAgIC8vIFNldCB1cCBlbW9qaSByZW5kZXJlcgogICAgdGhpcy50d2Vtb2ppID0gewogICAgICBwYXJzZTogKGNvbnRlbnQpID0+IHsKICAgICAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9bXHV7MUYzMDB9LVx1ezFGOUZGfV18W1x1ezI2MDB9LVx1ezI2RkZ9XS9ndSwgKG1hdGNoKSA9PiB7CiAgICAgICAgICBjb25zdCBjb2RlUG9pbnQgPSBtYXRjaC5jb2RlUG9pbnRBdCgwKS50b1N0cmluZygxNik7CiAgICAgICAgICByZXR1cm4gYDxpbWcgY2xhc3M9ImVtb2ppIiBkcmFnZ2FibGU9ImZhbHNlIiBhbHQ9IiR7bWF0Y2h9IiAKICAgICAgICAgICAgICAgICAgICAgIHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvdHdlbW9qaS8xNC4wLjIvc3ZnLyR7Y29kZVBvaW50fS5zdmciPmA7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CgogICAgdGhpcy5pbml0aWFsaXplU3R5bGVzKCk7CiAgfQoKICBpbml0aWFsaXplKCkgewogICAgdGhpcy5jaGVja0FuZFJlY292ZXJGb2xkZXJzKCk7CiAgICB0aGlzLmluamVjdEdsb2JhbHMoKTsKICAgIHRoaXMuc2V0dXBFdmVudExpc3RlbmVycygpOwogICAgdGhpcy5zZXR1cE5hdmlnYXRpb24oKTsKICAgIGNvbnNvbGUubG9nKCdDb3JlIGdsb2JhbHMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5Jyk7CiAgfQoKICBpbml0aWFsaXplU3R5bGVzKCkgewogICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogICAgc3R5bGUudGV4dENvbnRlbnQgPSBgCiAgICAgIC5tZXNzYWdlLWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBzdGFydDsKICAgICAgICBwYWRkaW5nOiAwLjc1cmVtOwogICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlN2ViOwogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgfQogICAgICAubWVzc2FnZS1jb250ZW50IHsKICAgICAgICBmbGV4OiAxOwogICAgICAgIG1pbi13aWR0aDogMDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07CiAgICAgIH0KICAgICAgLm1lc3NhZ2Utc3ViamVjdCB7CiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOwogICAgICB9CiAgICAgIC5tZXNzYWdlLXNlbmRlciB7CiAgICAgICAgY29sb3I6ICM2YjcyODA7CiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTsKICAgICAgfQogICAgICAubWVzc2FnZS10aW1lIHsKICAgICAgICBjb2xvcjogIzZiNzI4MDsKICAgICAgICBmb250LXNpemU6IDAuODc1cmVtOwogICAgICB9CiAgICAgIC5tZXNzYWdlLWFjdGlvbnMgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZ2FwOiAwLjVyZW07CiAgICAgIH0KICAgICAgLmZvbGRlci1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICAgICAgcGFkZGluZzogMXJlbTsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTdlYjsKICAgICAgfQogICAgICAubmF2LWl0ZW0gewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTsKICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgY29sb3I6IHdoaXRlOwogICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgfQogICAgICAubmF2LWl0ZW06aG92ZXIgewogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsKICAgICAgfQogICAgICAubmF2LWl0ZW0uYWN0aXZlIHsKICAgICAgICBiYWNrZ3JvdW5kOiAjM2I4MmY2OwogICAgICB9CiAgICAgIC5mb2xkZXItaWNvbiB7CiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07CiAgICAgIH0KICAgICAgLnJld2FyZC1iYWRnZSB7CiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgIGJhY2tncm91bmQ6ICNGRkQ3MDA7CiAgICAgICAgY29sb3I6ICMwMDA7CiAgICAgICAgcGFkZGluZzogMnB4IDhweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICAgICAgbWFyZ2luLXRvcDogNHB4OwogICAgICAgIGZvbnQtc2l6ZTogMC45ZW07CiAgICAgIH0KICAgIGA7CiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTsKICB9CgogIGluamVjdEdsb2JhbHMoKSB7CiAgICB3aW5kb3cuRk9MREVSUyA9IHRoaXMuU1lTVEVNX0ZPTERFUlM7CiAgICB3aW5kb3cuZ2xvYmFsU3RhdGUgPSB7CiAgICAgIGN1cnJlbnRWaWV3OiBudWxsLAogICAgICBjdXJyZW50Rm9sZGVyOiBudWxsLAogICAgICB0cmFuc2FjdGlvbkxpc3RlbmVyOiBudWxsCiAgICB9OwoKICAgIHdpbmRvdy5zaG93Rm9sZGVyID0gKGNvZGUpID0+IHsKICAgICAgd2luZG93Lmdsb2JhbFN0YXRlLmN1cnJlbnRGb2xkZXIgPSBjb2RlOwogICAgICB0aGlzLnNldHVwRm9sZGVyKGNvZGUpOwogICAgfTsKCiAgICB3aW5kb3cucmVmcmVzaEluYm94ID0gYXN5bmMgKCkgPT4gewogICAgICBjb25zdCBhZGRyZXNzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dhbGxldEFkZHJlc3MnKTsKICAgICAgaWYgKCFhZGRyZXNzKSB7CiAgICAgICAgY29uc29sZS5lcnJvcignTm8gd2FsbGV0IGFkZHJlc3MgZm91bmQnKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbG9hZGluZ0luZGljYXRvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICBsb2FkaW5nSW5kaWNhdG9yLnRleHRDb250ZW50ID0gJ0ZldGNoaW5nIG1lc3NhZ2VzLi4uJzsKICAgICAgbG9hZGluZ0luZGljYXRvci5zdHlsZS5wYWRkaW5nID0gJzFyZW0nOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZUxpc3QnKS5wcmVwZW5kKGxvYWRpbmdJbmRpY2F0b3IpOwogICAgICAKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCB0cmFuc2FjdGlvbnMgPSBhd2FpdCBmZXRjaEFkZHJlc3NUcmFuc2FjdGlvbnMoYWRkcmVzcyk7CiAgICAgICAgY29uc3QgeyBtZXNzYWdlcywgbmV3Q291bnQgfSA9IGF3YWl0IHByb2Nlc3NUcmFuc2FjdGlvbnModHJhbnNhY3Rpb25zLCBhZGRyZXNzKTsKICAgICAgICBpZiAobmV3Q291bnQgPiAwKSB7CiAgICAgICAgICB3aW5kb3cubW9kYWxNYW5hZ2VyPy5zaG93QWxlcnQoYEZvdW5kICR7bmV3Q291bnR9IG5ldyBtZXNzYWdlKHMpYCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc2V0dXBGb2xkZXIodGhpcy5TWVNURU1fRk9MREVSUy5JTkJPWCk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgY29uc29sZS5lcnJvcignUmVmcmVzaCBmYWlsZWQ6JywgZXJyb3IpOwogICAgICAgIHdpbmRvdy5tb2RhbE1hbmFnZXI/LnNob3dBbGVydCgnRmFpbGVkIHRvIHJlZnJlc2g6ICcgKyBlcnJvci5tZXNzYWdlLCAnZXJyb3InKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBsb2FkaW5nSW5kaWNhdG9yLnJlbW92ZSgpOwogICAgICB9CiAgICB9OwogIH0KCiAgc2V0dXBFdmVudExpc3RlbmVycygpIHsKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGUpID0+IHsKICAgICAgaWYgKGUua2V5ID09PSAnbWVzc2FnZXMnIHx8IGUua2V5ID09PSAnZm9sZGVyQ29uZmlnJykgewogICAgICAgIGlmICh3aW5kb3cuZ2xvYmFsU3RhdGUuY3VycmVudEZvbGRlcikgewogICAgICAgICAgdGhpcy5zZXR1cEZvbGRlcih3aW5kb3cuZ2xvYmFsU3RhdGUuY3VycmVudEZvbGRlcik7CiAgICAgICAgfQogICAgICB9CiAgICB9KTsKCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4gewogICAgICBpZiAoIWV2ZW50LnRhcmdldC5jbG9zZXN0KCcubW92ZS1tZW51JykgJiYgIWV2ZW50LnRhcmdldC5jbG9zZXN0KCcuYnRuLXNlY29uZGFyeScpKSB7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vdmUtbWVudScpLmZvckVhY2gobWVudSA9PiBtZW51LnJlbW92ZSgpKTsKICAgICAgfQogICAgfSk7CiAgfQoKICBzZXR1cE5hdmlnYXRpb24oKSB7CiAgICBjb25zdCBuYXYgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCduYXYnKTsKICAgIGlmICghbmF2KSByZXR1cm47CiAgICAKICAgIGxldCBuYXZIVE1MID0gJyc7CiAgICAKICAgIC8vIEFkZCBzeXN0ZW0gZm9sZGVycyBmaXJzdAogICAgT2JqZWN0LmVudHJpZXModGhpcy5TWVNURU1fRk9MREVSUykuZm9yRWFjaCgoW2tleSwgY29kZV0pID0+IHsKICAgICAgY29uc3QgZm9sZGVyID0gdGhpcy5mb2xkZXJDb25maWcuZm9sZGVyc1tjb2RlXTsKICAgICAgbmF2SFRNTCArPSBgCiAgICAgICAgPGEgY2xhc3M9Im5hdi1pdGVtIiBvbmNsaWNrPSJ3aW5kb3cuY29yZUdsb2JhbHMuc2V0dXBGb2xkZXIoJyR7Y29kZX0nKSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iZm9sZGVyLWljb24iPiR7dGhpcy5yZW5kZXJFbW9qaShmb2xkZXIuaWNvbil9PC9zcGFuPiAke2ZvbGRlci5uYW1lfQogICAgICAgIDwvYT4KICAgICAgYDsKICAgIH0pOwogICAgCiAgICAvLyBBZGQgY3VzdG9tIGZvbGRlcnMKICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuZm9sZGVyQ29uZmlnLmZvbGRlcnMpCiAgICAgIC5maWx0ZXIoKFtjb2RlXSkgPT4gIU9iamVjdC52YWx1ZXModGhpcy5TWVNURU1fRk9MREVSUykuaW5jbHVkZXMoY29kZSkpCiAgICAgIC5mb3JFYWNoKChbY29kZSwgZm9sZGVyXSkgPT4gewogICAgICAgIG5hdkhUTUwgKz0gYAogICAgICAgICAgPGEgY2xhc3M9Im5hdi1pdGVtIiBvbmNsaWNrPSJ3aW5kb3cuY29yZUdsb2JhbHMuc2V0dXBGb2xkZXIoJyR7Y29kZX0nKSI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb2xkZXItaWNvbiI+JHt0aGlzLnJlbmRlckVtb2ppKGZvbGRlci5pY29uKX08L3NwYW4+ICR7Zm9sZGVyLm5hbWV9CiAgICAgICAgICA8L2E+CiAgICAgICAgYDsKICAgICAgfSk7CiAgICAKICAgIC8vIEFkZCBmb2xkZXIgYnV0dG9uCiAgICBuYXZIVE1MICs9IGAKICAgICAgPGEgY2xhc3M9Im5hdi1pdGVtIGFkZC1mb2xkZXIiIG9uY2xpY2s9InNob3dBZGRGb2xkZXJNb2RhbCgpIj4KICAgICAgICA8c3BhbiBjbGFzcz0iZm9sZGVyLWljb24iPiR7dGhpcy5yZW5kZXJFbW9qaSgn4p6VJyl9PC9zcGFuPiBBZGQgRm9sZGVyCiAgICAgIDwvYT4KICAgIGA7CiAgICAKICAgIG5hdi5pbm5lckhUTUwgPSBuYXZIVE1MOwogIH0KCiAgc2V0dXBGb2xkZXIoZm9sZGVyQ29kZSkgewogICAgY29uc3QgZm9sZGVyID0gdGhpcy5mb2xkZXJDb25maWcuZm9sZGVyc1tmb2xkZXJDb2RlXTsKICAgIGlmICghZm9sZGVyKSByZXR1cm47CgogICAgd2luZG93Lmdsb2JhbFN0YXRlLmN1cnJlbnRGb2xkZXIgPSBmb2xkZXJDb2RlOwogICAgY29uc3QgbWVzc2FnZXMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZXNzYWdlcycpIHx8ICdbXScpOwogICAgY29uc3QgZm9sZGVyTWVzc2FnZXMgPSBtZXNzYWdlcy5maWx0ZXIobXNnID0+IG1zZy5mb2xkZXJDb2RlID09PSBmb2xkZXJDb2RlKTsKICAgIAogICAgY29uc3QgbWVzc2FnZUxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZUxpc3QnKTsKICAgIGlmICghbWVzc2FnZUxpc3QpIHJldHVybjsKCiAgICBjb25zdCBoZWFkZXJIVE1MID0gdGhpcy5jcmVhdGVGb2xkZXJIZWFkZXIoZm9sZGVyLCBmb2xkZXJNZXNzYWdlcy5sZW5ndGgsIGZvbGRlckNvZGUpOwogICAgY29uc3QgbWVzc2FnZXNIVE1MID0gdGhpcy5jcmVhdGVNZXNzYWdlTGlzdChmb2xkZXJNZXNzYWdlcywgZm9sZGVyKTsKCiAgICBtZXNzYWdlTGlzdC5pbm5lckhUTUwgPSBgCiAgICAgICR7aGVhZGVySFRNTH0KICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1jb250YWluZXIiPgogICAgICAgICR7bWVzc2FnZXNIVE1MfQogICAgICA8L2Rpdj4KICAgIGA7CgogICAgLy8gVXBkYXRlIGFjdGl2ZSBzdGF0ZSBpbiBuYXZpZ2F0aW9uCiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubmF2LWl0ZW0nKS5mb3JFYWNoKGl0ZW0gPT4gewogICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICBpZiAoaXRlbS5nZXRBdHRyaWJ1dGUoJ29uY2xpY2snKT8uaW5jbHVkZXMoZm9sZGVyQ29kZSkpIHsKICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpOwogICAgICB9CiAgICB9KTsKICB9CgogIGNyZWF0ZUZvbGRlckhlYWRlcihmb2xkZXIsIG1lc3NhZ2VDb3VudCwgZm9sZGVyQ29kZSkgewogICAgcmV0dXJuIGAKICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iZm9sZGVyLWluZm8iPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImZvbGRlci1pY29uIj4ke3RoaXMucmVuZGVyRW1vamkoZm9sZGVyLmljb24pfTwvc3Bhbj4KICAgICAgICAgIDxoMj4ke2ZvbGRlci5uYW1lfSAoJHttZXNzYWdlQ291bnR9KTwvaDI+CiAgICAgICAgPC9kaXY+CiAgICAgICAgJHtmb2xkZXJDb2RlID09PSB0aGlzLlNZU1RFTV9GT0xERVJTLklOQk9YID8gCiAgICAgICAgICAnPGJ1dHRvbiBvbmNsaWNrPSJ3aW5kb3cucmVmcmVzaEluYm94KCkiIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSI+UmVmcmVzaDwvYnV0dG9uPicgOiAnJ30KICAgICAgPC9kaXY+CiAgICBgOwogIH0KCiAgY3JlYXRlTWVzc2FnZUxpc3QobWVzc2FnZXMsIGZvbGRlcikgewogICAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm4gYDxkaXYgY2xhc3M9Im5vLW1lc3NhZ2VzIj5ObyBtZXNzYWdlcyBpbiAke2ZvbGRlci5uYW1lfTwvZGl2PmA7CiAgICB9CgogICAgcmV0dXJuIG1lc3NhZ2VzCiAgICAgIC5zb3J0KChhLCBiKSA9PiBiLnRpbWVzdGFtcCAtIGEudGltZXN0YW1wKQogICAgICAubWFwKG1lc3NhZ2UgPT4gdGhpcy5jcmVhdGVNZXNzYWdlSXRlbShtZXNzYWdlKSkKICAgICAgLmpvaW4oJycpOwogIH0KCiAgY3JlYXRlTWVzc2FnZUl0ZW0obWVzc2FnZSkgewogICAgcmV0dXJuIGAKICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1pdGVtIiBvbmNsaWNrPSJ3aW5kb3cubWVzc2FnZUhhbmRsZXIub3Blbk1lc3NhZ2UoJyR7bWVzc2FnZS50eGlkfScpIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLWNvbnRlbnQiPgogICAgICAgICAgPGRpdiBjbGFzcz0ibWVzc2FnZS1zdWJqZWN0Ij4KICAgICAgICAgICAgJHttZXNzYWdlLnN1YmplY3QgfHwgJ05vIHN1YmplY3QnfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJtZXNzYWdlLXNlbmRlciI+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJFbW9qaSgn8J+RpCcpfSAke21lc3NhZ2Uuc2VuZGVyIHx8ICdVbmtub3duIFNlbmRlcid9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UtdGltZSI+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJFbW9qaSgn8J+VkicpfSAke25ldyBEYXRlKG1lc3NhZ2UudGltZXN0YW1wKS50b0xvY2FsZVN0cmluZygpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgICAke21lc3NhZ2UucmV3YXJkRGF0YSA/IGAKICAgICAgICAgICAgPGRpdiBjbGFzcz0icmV3YXJkLWJhZGdlIj4KICAgICAgICAgICAgICAke3RoaXMucmVuZGVyRW1vamkoJ/CfkrAnKX0gJHttZXNzYWdlLnJld2FyZERhdGEuYWN0dWFsUmV3YXJkfSBzYXRzCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgYCA6ICcnfQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1lc3NhZ2UtYWN0aW9ucyI+CiAgICAgICAgICA8YnV0dG9uIAogICAgICAgICAgICBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiCiAgICAgICAgICAgIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyB3aW5kb3cuY29yZUdsb2JhbHMuc2hvd01vdmVNZW51KGV2ZW50LCAnJHttZXNzYWdlLnR4aWR9JykiCiAgICAgICAgICA+CiAgICAgICAgICAgICR7dGhpcy5yZW5kZXJFbW9qaSgn8J+TgScpfSBNb3ZlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gCiAgICAgICAgICAgIGNsYXNzPSJidG4gYnRuLWRhbmdlciIKICAgICAgICAgICAgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IHdpbmRvdy5jb3JlR2xvYmFscy5kZWxldGVNZXNzYWdlKCcke21lc3NhZ2UudHhpZH0nKSIKICAgICAgICAgID4KICAgICAgICAgICAgJHt0aGlzLnJlbmRlckVtb2ppKCfinYwnKX0gRGVsZXRlCiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICBgOwogIH0KCiAgc2hvd01vdmVNZW51KGV2ZW50LCB0eGlkKSB7CiAgICAvLyBSZW1vdmUgYW55IGV4aXN0aW5nIG1vdmUgbWVudXMKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb3ZlLW1lbnUnKS5mb3JFYWNoKG1lbnUgPT4gbWVudS5yZW1vdmUoKSk7CgogICAgY29uc3QgbWVudSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgbWVudS5jbGFzc05hbWUgPSAnbW92ZS1tZW51JzsKICAgIG1lbnUuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwogICAgbWVudS5zdHlsZS5yaWdodCA9ICcwJzsKICAgIG1lbnUuc3R5bGUudG9wID0gJzEwMCUnOwogICAgbWVudS5zdHlsZS5iYWNrZ3JvdW5kID0gJ3doaXRlJzsKICAgIG1lbnUuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCAjZTVlN2ViJzsKICAgIG1lbnUuc3R5bGUuYm9yZGVyUmFkaXVzID0gJzRweCc7CiAgICBtZW51LnN0eWxlLmJveFNoYWRvdyA9ICcwIDJweCA0cHggcmdiYSgwLDAsMCwwLjEpJzsKICAgIG1lbnUuc3R5bGUuekluZGV4ID0gJzUwJzsKCiAgICBPYmplY3QuZW50cmllcyh0aGlzLmZvbGRlckNvbmZpZy5mb2xkZXJzKQogICAgICAuZmlsdGVyKChbY29kZV0pID0+IGNvZGUgIT09IHdpbmRvdy5nbG9iYWxTdGF0ZS5jdXJyZW50Rm9sZGVyKQogICAgICAuZm9yRWFjaCgoW2NvZGUsIGZvbGRlcl0pID0+IHsKICAgICAgICBjb25zdCBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgaXRlbS5jbGFzc05hbWUgPSAnbW92ZS1tZW51LWl0ZW0nOwogICAgICAgIGl0ZW0uc3R5bGUucGFkZGluZyA9ICc4cHggMTZweCc7CiAgICAgICAgaXRlbS5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7CiAgICAgICAgaXRlbS5pbm5lckhUTUwgPSBgJHt0aGlzLnJlbmRlckVtb2ppKGZvbGRlci5pY29uKX0gJHtmb2xkZXIubmFtZX1gOwogICAgICAgIGl0ZW0ub25jbGljayA9IChlKSA9PiB7CiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgdGhpcy5tb3ZlTWVzc2FnZSh0eGlkLCBjb2RlKTsKICAgICAgICAgIG1lbnUucmVtb3ZlKCk7CiAgICAgICAgfTsKICAgICAgICBtZW51LmFwcGVuZENoaWxkKGl0ZW0pOwogICAgICB9KTsKCiAgICBldmVudC50YXJnZXQucGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZChtZW51KTsKICB9CgogIG1vdmVNZXNzYWdlKHR4aWQsIHRhcmdldEZvbGRlcikgewogICAgY29uc3QgbWVzc2FnZXMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZXNzYWdlcycpIHx8ICdbXScpOwogICAgY29uc3QgdXBkYXRlZE1lc3NhZ2VzID0gbWVzc2FnZXMubWFwKG1zZyA9PiB7CiAgICAgIGlmIChtc2cudHhpZCA9PT0gdHhpZCkgewogICAgICAgIHJldHVybiB7Li4ubXNnLCBmb2xkZXJDb2RlOiB0YXJnZXRGb2xkZXJ9OwogICAgICB9CiAgICAgIHJldHVybiBtc2c7CiAgICB9KTsKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtZXNzYWdlcycsIEpTT04uc3RyaW5naWZ5KHVwZGF0ZWRNZXNzYWdlcykpOwogICAgdGhpcy5zZXR1cEZvbGRlcih3aW5kb3cuZ2xvYmFsU3RhdGUuY3VycmVudEZvbGRlcik7CiAgfQoKICBkZWxldGVNZXNzYWdlKHR4aWQpIHsKICAgIGNvbnN0IG1lc3NhZ2VzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVzc2FnZXMnKSB8fCAnW10nKTsKICAgIGNvbnN0IHVwZGF0ZWRNZXNzYWdlcyA9IG1lc3NhZ2VzLmZpbHRlcihtc2cgPT4gbXNnLnR4aWQgIT09IHR4aWQpOwogICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21lc3NhZ2VzJywgSlNPTi5zdHJpbmdpZnkodXBkYXRlZE1lc3NhZ2VzKSk7CiAgICB0aGlzLnNldHVwRm9sZGVyKHdpbmRvdy5nbG9iYWxTdGF0ZS5jdXJyZW50Rm9sZGVyKTsKICB9CgogIGNyZWF0ZUZvbGRlcihuYW1lLCBpY29uKSB7CiAgICBjb25zdCBjb2RlID0gdGhpcy5mb2xkZXJDb25maWcubmV4dENvZGUudG9TdHJpbmcoKTsKICAgIHRoaXMuZm9sZGVyQ29uZmlnLmZvbGRlcnNbY29kZV0gPSB7CiAgICAgIG5hbWU6IG5hbWUsCiAgICAgIGljb246IGljb24sCiAgICAgIHN5c3RlbTogZmFsc2UKICAgIH07CiAgICB0aGlzLmZvbGRlckNvbmZpZy5uZXh0Q29kZSsrOwogICAgdGhpcy5zYXZlRm9sZGVyQ29uZmlnKCk7CiAgICB0aGlzLnNldHVwTmF2aWdhdGlvbigpOwogIH0KCiAgZGVsZXRlRm9sZGVyKGNvZGUpIHsKICAgIGlmICh0aGlzLmZvbGRlckNvbmZpZy5mb2xkZXJzW2NvZGVdLnN5c3RlbSkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkZWxldGUgc3lzdGVtIGZvbGRlciIpOwogICAgfQoKICAgIGNvbnN0IG1lc3NhZ2VzID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVzc2FnZXMnKSB8fCAnW10nKTsKICAgIGNvbnN0IHVwZGF0ZWRNZXNzYWdlcyA9IG1lc3NhZ2VzLm1hcChtc2cgPT4gewogICAgICBpZiAobXNnLmZvbGRlckNvZGUgPT09IGNvZGUpIHsKICAgICAgICByZXR1cm4gey4uLm1zZywgZm9sZGVyQ29kZTogdGhpcy5TWVNURU1fRk9MREVSUy5JTkJPWH07CiAgICAgIH0KICAgICAgcmV0dXJuIG1zZzsKICAgIH0pOwoKICAgIGRlbGV0ZSB0aGlzLmZvbGRlckNvbmZpZy5mb2xkZXJzW2NvZGVdOwogICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21lc3NhZ2VzJywgSlNPTi5zdHJpbmdpZnkodXBkYXRlZE1lc3NhZ2VzKSk7CiAgICB0aGlzLnNhdmVGb2xkZXJDb25maWcoKTsKICAgIHRoaXMuc2V0dXBOYXZpZ2F0aW9uKCk7CiAgfQoKICBzYXZlRm9sZGVyQ29uZmlnKCkgewogICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ZvbGRlckNvbmZpZycsIEpTT04uc3RyaW5naWZ5KHRoaXMuZm9sZGVyQ29uZmlnKSk7CiAgfQoKICBjaGVja0FuZFJlY292ZXJGb2xkZXJzKCkgewogICAgdHJ5IHsKICAgICAgY29uc3QgZm9sZGVycyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2ZvbGRlckNvbmZpZycpKTsKICAgICAgaWYgKCFmb2xkZXJzIHx8ICFmb2xkZXJzLmZvbGRlcnMpIHsKICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZm9sZGVyQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkodGhpcy5kZWZhdWx0Rm9sZGVyQ29uZmlnKSk7CiAgICAgIH0KICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgY2hlY2tpbmcgZm9sZGVycywgcmVzZXR0aW5nIHRvIGRlZmF1bHRzOicsIGUpOwogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZm9sZGVyQ29uZmlnJywgSlNPTi5zdHJpbmdpZnkodGhpcy5kZWZhdWx0Rm9sZGVyQ29uZmlnKSk7CiAgICB9CiAgfQoKICByZW5kZXJFbW9qaShjb250ZW50KSB7CiAgICByZXR1cm4gdGhpcy50d2Vtb2ppLnBhcnNlKGNvbnRlbnQpOwogIH0KfQoKLy8gSW5pdGlhbGl6ZSBnbG9iYWwgaW5zdGFuY2UKd2luZG93LmNvcmVHbG9iYWxzID0gbmV3IENvcmVHbG9iYWxzKCk7CndpbmRvdy5jb3JlR2xvYmFscy5pbml0aWFsaXplKCk7"}]}
    https://whatsonchain.com/tx/2ba06e3416a96cf45e3c38c22a19c5e5e0b532e9e00b376bff3fbddbb5ce573c