tx · 8y85ZrncL4p65aih76BGhm1LVsVxLm514RftSrs6Q1rT

3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T:  -0.02400000 Waves

2022.08.24 12:34 [2198388] smart account 3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T > SELF 0.00000000 Waves

{ "type": 13, "id": "8y85ZrncL4p65aih76BGhm1LVsVxLm514RftSrs6Q1rT", "fee": 2400000, "feeAssetId": null, "timestamp": 1661333679527, "version": 1, "sender": "3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T", "senderPublicKey": "7iXEgsFNsnbLZ3ca4tmz8jffnyxMu9keuBV6CuQPJLuA", "proofs": [ "2qNZ3GNkCNJXCFProMo2fVtt3uKzH1MegTLAbj9pKBcGn5QbaJXpoW9Q5jWJxZZrbcNVyjrYCHB8s3nJu2JT7fKt" ], "script": "base64:AAIFAAAAAAAAAEAIAhINCgsICAgICAgBCAEIARIDCgEBEgQKAggIEgUKAwgIBBIECgIICBIDCgEBEgMKAQESBAoCCAgSAwoBCBIAAAAAJAAAAAAJc2VwYXJhdG9yAgAAAAJfXwAAAAAMa2V5RmVlQW1vdW50CQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAADZmVlBQAAAANuaWwFAAAACXNlcGFyYXRvcgAAAAAOa2V5VXNkbkFzc2V0SWQJAAS5AAAAAgkABEwAAAACAgAAAAIlcwkABEwAAAACAgAAAAt1c2RuQXNzZXRJZAUAAAADbmlsBQAAAAlzZXBhcmF0b3IAAAAADmtleUVwb2NoTGVuZ3RoCQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAALZXBvY2hMZW5ndGgFAAAAA25pbAUAAAAJc2VwYXJhdG9yAAAAABFrZXlGaW5hbGl6ZVJld2FyZAkABLkAAAACCQAETAAAAAICAAAAAiVzCQAETAAAAAICAAAADmZpbmFsaXplUmV3YXJkBQAAAANuaWwFAAAACXNlcGFyYXRvcgAAAAAMa2V5V3hBc3NldElkCQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAAJd3hBc3NldElkBQAAAANuaWwFAAAACXNlcGFyYXRvcgAAAAAWa2V5QXNzZXRzU3RvcmVDb250cmFjdAkABLkAAAACCQAETAAAAAICAAAAAiVzCQAETAAAAAICAAAAE2Fzc2V0c1N0b3JlQ29udHJhY3QFAAAAA25pbAUAAAAJc2VwYXJhdG9yAAAAABNrZXlVc2VyUG9vbENvbnRyYWN0CQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAAQdXNlclBvb2xDb250cmFjdAUAAAADbmlsBQAAAAlzZXBhcmF0b3IAAAAAE2tleUVtaXNzaW9uQ29udHJhY3QJAAS5AAAAAgkABEwAAAACAgAAAAIlcwkABEwAAAACAgAAABBlbWlzc2lvbkNvbnRyYWN0BQAAAANuaWwFAAAACXNlcGFyYXRvcgAAAAATa2V5Qm9vc3RpbmdDb250cmFjdAkABLkAAAACCQAETAAAAAICAAAAAiVzCQAETAAAAAICAAAAEGJvb3N0aW5nQ29udHJhY3QFAAAAA25pbAUAAAAJc2VwYXJhdG9yAAAAABJrZXlGYWN0b3J5Q29udHJhY3QJAAS5AAAAAgkABEwAAAACAgAAAAIlcwkABEwAAAACAgAAAA9mYWN0b3J5Q29udHJhY3QFAAAAA25pbAUAAAAJc2VwYXJhdG9yAAAAABlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0CQAEuQAAAAIJAARMAAAAAgIAAAACJXMJAARMAAAAAgIAAAAWdm90aW5nRW1pc3Npb25Db250cmFjdAUAAAADbmlsBQAAAAlzZXBhcmF0b3IAAAAADGtleVRocmVzaG9sZAkABLkAAAACCQAETAAAAAICAAAAAiVzCQAETAAAAAICAAAAD3ZvdGluZ1RocmVzaG9sZAUAAAADbmlsBQAAAAlzZXBhcmF0b3IBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQABLAAAAAIFAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAQAAAAxnZXRJbnRPckZhaWwAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQkAASwAAAACBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAQa2V5SW5MaXN0QXNzZXRJZAAAAAIAAAANYW1vdW50QXNzZXRJZAAAAAxwcmljZUFzc2V0SWQJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgIAAAAGaW5MaXN0CQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAACXNlcGFyYXRvcgEAAAAPa2V5U3VnZ2VzdEluZGV4AAAAAgAAAA1hbW91bnRBc3NldElkAAAADHByaWNlQXNzZXRJZAkABLkAAAACCQAETAAAAAICAAAABiVzJXMlcwkABEwAAAACAgAAAAxzdWdnZXN0SW5kZXgJAARMAAAAAgUAAAANYW1vdW50QXNzZXRJZAkABEwAAAACBQAAAAxwcmljZUFzc2V0SWQFAAAAA25pbAUAAAAJc2VwYXJhdG9yAQAAAA5rZXlTdGFydEhlaWdodAAAAAMAAAANYW1vdW50QXNzZXRJZAAAAAxwcmljZUFzc2V0SWQAAAAMc3VnZ2VzdEluZGV4CQAEuQAAAAIJAARMAAAAAgIAAAAIJXMlcyVzJWQJAARMAAAAAgIAAAALc3RhcnRIZWlnaHQJAARMAAAAAgUAAAANYW1vdW50QXNzZXRJZAkABEwAAAACBQAAAAxwcmljZUFzc2V0SWQJAARMAAAAAgkAAaQAAAABBQAAAAxzdWdnZXN0SW5kZXgFAAAAA25pbAUAAAAJc2VwYXJhdG9yAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADAAAADWFtb3VudEFzc2V0SWQAAAAMcHJpY2VBc3NldElkAAAADHN1Z2dlc3RJbmRleAkABLkAAAACCQAETAAAAAICAAAACCVzJXMlcyVkCQAETAAAAAICAAAADHZvdGluZ1Jlc3VsdAkABEwAAAACBQAAAA1hbW91bnRBc3NldElkCQAETAAAAAIFAAAADHByaWNlQXNzZXRJZAkABEwAAAACCQABpAAAAAEFAAAADHN1Z2dlc3RJbmRleAUAAAADbmlsBQAAAAlzZXBhcmF0b3IBAAAACnRvdGFsVm90ZXMAAAACAAAACHRvdGFsWWVzAAAAB3RvdGFsTm8JAAS5AAAAAgkABEwAAAACAgAAAAQlZCVkCQAETAAAAAIFAAAACHRvdGFsWWVzCQAETAAAAAIFAAAAB3RvdGFsTm8FAAAAA25pbAUAAAAJc2VwYXJhdG9yAQAAAAdrZXlWb3RlAAAABAAAAA1hbW91bnRBc3NldElkAAAADHByaWNlQXNzZXRJZAAAAAxzdWdnZXN0SW5kZXgAAAAMdm90ZXJBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAKJXMlcyVzJWQlcwkABEwAAAACAgAAAAR2b3RlCQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkCQAETAAAAAIJAAGkAAAAAQUAAAAMc3VnZ2VzdEluZGV4CQAETAAAAAIFAAAADHZvdGVyQWRkcmVzcwUAAAADbmlsBQAAAAlzZXBhcmF0b3IBAAAADGtleVZvdGVWYWx1ZQAAAAIAAAAJZ3d4QW1vdW50AAAABHZvdGUEAAAAA2tleQMFAAAABHZvdGUJAAS5AAAAAgkABEwAAAACAgAAAAQlZCVzCQAETAAAAAIFAAAACWd3eEFtb3VudAkABEwAAAACAgAAAAN5ZXMFAAAAA25pbAUAAAAJc2VwYXJhdG9yCQAEuQAAAAIJAARMAAAAAgIAAAAEJWQlcwkABEwAAAACBQAAAAlnd3hBbW91bnQJAARMAAAAAgIAAAACbm8FAAAAA25pbAUAAAAJc2VwYXJhdG9yBQAAAANrZXkBAAAACWtleUluTGlzdAAAAAEAAAAEcG9vbAQAAAALJHQwMjQ2MzI1MDMFAAAABHBvb2wEAAAADWFtb3VudEFzc2V0SWQIBQAAAAskdDAyNDYzMjUwMwAAAAJfMQQAAAAMcHJpY2VBc3NldElkCAUAAAALJHQwMjQ2MzI1MDMAAAACXzIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgIAAAAGaW5MaXN0CQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAACXNlcGFyYXRvcgEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAACAAAAFCVzX19tYW5hZ2VyUHVibGljS2V5AQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAACAAAAGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAATYXNzZXRzU3RvcmVDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAFmtleUFzc2V0c1N0b3JlQ29udHJhY3QAAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABBQAAABNrZXlCb29zdGluZ0NvbnRyYWN0AAAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAATa2V5RW1pc3Npb25Db250cmFjdAAAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAASa2V5RmFjdG9yeUNvbnRyYWN0AAAAABB1c2VyUG9vbENvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAATa2V5VXNlclBvb2xDb250cmFjdAAAAAAWdm90aW5nRW1pc3Npb25Db250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEFAAAAGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAUAAAAEdW5pdAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAAJaXNNYW5hZ2VyAAAAAQAAAAFpBAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQUAAAACcGsDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAC01hdGNoIGVycm9yAQAAAAttdXN0TWFuYWdlcgAAAAEAAAABaQMJAQAAAAlpc01hbmFnZXIAAAABBQAAAAFpBgkAAAIAAAABAgAAABFwZXJtaXNzaW9uIGRlbmllZAEAAAAFYXNJbnQAAAABAAAAA3ZhbAQAAAAHJG1hdGNoMAUAAAADdmFsAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABnZhbEludAUAAAAHJG1hdGNoMAUAAAAGdmFsSW50CQAAAgAAAAECAAAAG2ZhaWxlZCB0byBjYXN0IGludG8gSW50ZWdlcgAAAAoAAAABaQEAAAALY29uc3RydWN0b3IAAAALAAAAFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0AAAATYm9vc3RpbmdDb250cmFjdFBybQAAABNlbWlzc2lvbkNvbnRyYWN0UHJtAAAAEmZhY3RvcnlDb250cmFjdFBybQAAABN1c2VyUG9vbENvbnRyYWN0UHJtAAAAGXZvdGluZ0VtaXNzaW9uQ29udHJhY3RQcm0AAAAMZmVlQW1vdW50UHJtAAAADHd4QXNzZXRJZFBybQAAABF2b3RpbmdEdXJhdGlvblBybQAAAA51c2RuQXNzZXRJZFBybQAAABFmaW5hbGl6ZVJld2FyZFBybQQAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEJgAAAAEFAAAAFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0GCQAAAgAAAAECAAAAJEludmFsaWQgYXNzZXRfc3RvcmUgY29udHJhY3QgYWRkcmVzcwkABEwAAAACAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQmAAAAAQUAAAATYm9vc3RpbmdDb250cmFjdFBybQYJAAACAAAAAQIAAAAhSW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAABN1c2VyUG9vbENvbnRyYWN0UHJtBgkAAAIAAAABAgAAACNJbnZhbGlkIHVzZXJfcG9vbHMgY29udHJhY3QgYWRkcmVzcwkABEwAAAACAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQmAAAAAQUAAAATZW1pc3Npb25Db250cmFjdFBybQYJAAACAAAAAQIAAAAhSW52YWxpZCBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCYAAAABBQAAABJmYWN0b3J5Q29udHJhY3RQcm0GCQAAAgAAAAECAAAAIEludmFsaWQgZmFjdG9yeSBjb250cmFjdCBhZGRyZXNzCQAETAAAAAIDCQAAZwAAAAIFAAAADGZlZUFtb3VudFBybQAAAAAAAAAAAAYJAAACAAAAAQIAAAASSW52YWxpZCBmZWUgYW1vdW50CQAETAAAAAIDCQAAZgAAAAIFAAAAEXZvdGluZ0R1cmF0aW9uUHJtAAAAAAAAAAAABgkAAAIAAAABAgAAABdJbnZhbGlkIHZvdGluZyBkdXJhdGlvbgkABEwAAAACAwkAAGcAAAACBQAAABFmaW5hbGl6ZVJld2FyZFBybQAAAAAAAAAAAAYJAAACAAAAAQIAAAAXSW52YWxpZCBmaW5hbGl6ZSByZXdhcmQJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAAMd3hBc3NldElkUHJtBgkAAAIAAAABAgAAABNJbnZhbGlkIFdYIGFzc2V0IElECQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkAA+wAAAABCQACWQAAAAEFAAAADnVzZG5Bc3NldElkUHJtBgkAAAIAAAABAgAAABVJbnZhbGlkIFVTRE4gYXNzZXQgSUQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABZrZXlBc3NldHNTdG9yZUNvbnRyYWN0BQAAABZhc3NldHNTdG9yZUNvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAE2tleUJvb3N0aW5nQ29udHJhY3QFAAAAE2Jvb3N0aW5nQ29udHJhY3RQcm0JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAATa2V5RW1pc3Npb25Db250cmFjdAUAAAATZW1pc3Npb25Db250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJrZXlGYWN0b3J5Q29udHJhY3QFAAAAEmZhY3RvcnlDb250cmFjdFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABNrZXlVc2VyUG9vbENvbnRyYWN0BQAAABN1c2VyUG9vbENvbnRyYWN0UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QFAAAAGXZvdGluZ0VtaXNzaW9uQ29udHJhY3RQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUZlZUFtb3VudAUAAAAMZmVlQW1vdW50UHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5rZXlFcG9jaExlbmd0aAUAAAARdm90aW5nRHVyYXRpb25Qcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWtleUZpbmFsaXplUmV3YXJkBQAAABFmaW5hbGl6ZVJld2FyZFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAxrZXlXeEFzc2V0SWQFAAAADHd4QXNzZXRJZFBybQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA5rZXlVc2RuQXNzZXRJZAUAAAAOdXNkbkFzc2V0SWRQcm0FAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAANY29uc3RydWN0b3JWMgAAAAEAAAAJdGhyZXNob2xkBAAAAAZjaGVja3MJAARMAAAAAgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQkABEwAAAACAwkAAGYAAAACBQAAAAl0aHJlc2hvbGQAAAAAAAAAAAAGCQAAAgAAAAECAAAAEWludmFsaWQgdGhyZXNob2xkBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAG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aWNlQXNzZXRJZAUAAAAPbmV3U3VnZ2VzdEluZGV4BQAAAAZoZWlnaHQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAPbmV3U3VnZ2VzdEluZGV4CQEAAAAKdG90YWxWb3RlcwAAAAICAAAAATACAAAAATAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9rZXlTdWdnZXN0SW5kZXgAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAAD25ld1N1Z2dlc3RJbmRleAUAAAADbmlsBQAAAAR1bml0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAR2b3RlAAAAAwAAAA1hbW91bnRBc3NldElkAAAADHByaWNlQXNzZXRJZAAAAAdpbkZhdm9yBAAAAAxzdWdnZXN0SW5kZXgJAQAAAAV2YWx1ZQAAAAEJAAQfAAAAAQkBAAAAEGtleUluTGlzdEFzc2V0SWQAAAACBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQEAAAAEnZvdGluZ0ZpbmlzaEhlaWdodAkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAAA5rZXlTdGFydEhlaWdodAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEFAAAADmtleUVwb2NoTGVuZ3RoBAAAAAZjaGVja3MJAARMAAAAAgMJAQAAAAlpc0RlZmluZWQAAAABCQAEHwAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBgkAAAIAAAABAgAAACJ0aGUgdG9rZW4gaXNuJ3Qgb24gdGhlIHZvdGluZyBsaXN0CQAETAAAAAIDCQAAZgAAAAIFAAAAEnZvdGluZ0ZpbmlzaEhlaWdodAUAAAAGaGVpZ2h0BgkAAAIAAAABAgAAABB0b28gbGF0ZSB0byB2b3RlBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzBAAAAAlnd3hBbW91bnQJAAP8AAAABAUAAAAQYm9vc3RpbmdDb250cmFjdAIAAAAgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAARMAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIJAARMAAAAAgUAAAASdm90aW5nRmluaXNoSGVpZ2h0BQAAAANuaWwFAAAAA25pbAQAAAAHbm90WmVybwMJAABmAAAAAgkBAAAABWFzSW50AAAAAQUAAAAJZ3d4QW1vdW50AAAAAAAAAAAABgkAAAIAAAABAgAAABJ5b3UgZG9uJ3QgaGF2ZSBnd3gDCQAAAAAAAAIFAAAAB25vdFplcm8FAAAAB25vdFplcm8EAAAABHZvdGUEAAAAByRtYXRjaDAJAAQiAAAAAQkBAAAAB2tleVZvdGUAAAAEBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAQAAAAEdm90ZQkABLUAAAACBQAAAAFzBQAAAAlzZXBhcmF0b3IEAAAACXZvdGVWYWx1ZQkAAZEAAAACBQAAAAR2b3RlAAAAAAAAAAABBAAAAAh2b3RlVHlwZQkAAZEAAAACBQAAAAR2b3RlAAAAAAAAAAACBAAAABFpc1ZvdGVUeXBlU2ltaWxhcgMDCQAAAAAAAAIFAAAACHZvdGVUeXBlAgAAAAN5ZXMJAAAAAAAAAgUAAAAHaW5GYXZvcgYHBgMJAAAAAAAAAgUAAAAIdm90ZVR5cGUCAAAAAm5vCQAAAAAAAAIFAAAAB2luRmF2b3IHBwQAAAASaXNWb3RlVmFsdWVTaW1pbGFyAwUAAAARaXNWb3RlVHlwZVNpbWlsYXIJAAAAAAAAAgkBAAAABWFzSW50AAAAAQUAAAAJZ3d4QW1vdW50CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAACXZvdGVWYWx1ZQcEAAAAEGlzTmV3Vm90ZVNpbWlsYXIDAwUAAAARaXNWb3RlVHlwZVNpbWlsYXIFAAAAEmlzVm90ZVZhbHVlU2ltaWxhcgcJAAACAAAAAQIAAAAReW91IGFscmVhZHkgdm90ZWQJAAP8AAAABAUAAAAEdGhpcwIAAAAKY2FuY2VsVm90ZQkABEwAAAACBQAAAA1hbW91bnRBc3NldElkCQAETAAAAAIFAAAADHByaWNlQXNzZXRJZAUAAAADbmlsBQAAAANuaWwFAAAAEGlzTmV3Vm90ZVNpbWlsYXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAAAXUFAAAAByRtYXRjaDAFAAAAAXUJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IDCQAAAAAAAAIFAAAABHZvdGUFAAAABHZvdGUEAAAADHZvdGluZ1Jlc3VsdAkABLUAAAACCQEAAAAFdmFsdWUAAAABCQAEIgAAAAEJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAUAAAAJc2VwYXJhdG9yBAAAAA1wb3NpdGl2ZVZvdGVzCQABkQAAAAIFAAAADHZvdGluZ1Jlc3VsdAAAAAAAAAAAAQQAAAANbmVnYXRpdmVWb3RlcwkAAZEAAAACBQAAAAx2b3RpbmdSZXN1bHQAAAAAAAAAAAIEAAAAG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwMFAAAAB2luRmF2b3IEAAAAEG5ld1Bvc2l0aXZlVm90ZXMJAABkAAAAAgkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAA1wb3NpdGl2ZVZvdGVzCQEAAAAFYXNJbnQAAAABBQAAAAlnd3hBbW91bnQJAARMAAAAAgkAAaQAAAABBQAAABBuZXdQb3NpdGl2ZVZvdGVzCQAETAAAAAIFAAAADW5lZ2F0aXZlVm90ZXMFAAAAA25pbAQAAAAQbmV3TmVnYXRpdmVWb3RlcwkAAGQAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAADW5lZ2F0aXZlVm90ZXMJAQAAAAVhc0ludAAAAAEFAAAACWd3eEFtb3VudAkABEwAAAACBQAAAA1wb3NpdGl2ZVZvdGVzCQAETAAAAAIJAAGkAAAAAQUAAAAQbmV3TmVnYXRpdmVWb3RlcwUAAAADbmlsBAAAAAd2b3RlS2V5CQEAAAAHa2V5Vm90ZQAAAAQFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAJdm90ZVZhbHVlCQEAAAAMa2V5Vm90ZVZhbHVlAAAAAgkAAaQAAAABCQEAAAAFYXNJbnQAAAABBQAAAAlnd3hBbW91bnQFAAAAB2luRmF2b3IJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5Vm90aW5nUmVzdWx0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgJAQAAAAp0b3RhbFZvdGVzAAAAAgkAAZEAAAACBQAAABtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAAAAAAAAAAAJAAGRAAAAAgUAAAAbbmV3UG9zaXRpdmVBbmROZWdhdGl2ZVZvdGVzAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAB3ZvdGVLZXkFAAAACXZvdGVWYWx1ZQUAAAADbmlsBQAAAAR1bml0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACmNhbmNlbFZvdGUAAAACAAAADWFtb3VudEFzc2V0SWQAAAAMcHJpY2VBc3NldElkBAAAAAt1c2VyQWRkcmVzcwMJAAAAAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADHN1Z2dlc3RJbmRleAkBAAAABXZhbHVlAAAAAQkABB8AAAABCQEAAAAQa2V5SW5MaXN0QXNzZXRJZAAAAAIFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAQAAAAGY2hlY2tzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABCIAAAABCQEAAAAPa2V5Vm90aW5nUmVzdWx0AAAAAwUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAAxzdWdnZXN0SW5kZXgGCQAAAgAAAAECAAAAF25vIHZvdGUgZm9yIGFzc2V0cyBwYWlyBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzBAAAAAR2b3RlCQAEtQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQiAAAAAQkBAAAAB2tleVZvdGUAAAAEBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAUAAAALdXNlckFkZHJlc3MFAAAACXNlcGFyYXRvcgQAAAAJdm90ZVZhbHVlCQABkQAAAAIFAAAABHZvdGUAAAAAAAAAAAEEAAAACHZvdGVUeXBlCQABkQAAAAIFAAAABHZvdGUAAAAAAAAAAAIEAAAADHZvdGluZ1Jlc3VsdAkABLUAAAACCQEAAAAFdmFsdWUAAAABCQAEIgAAAAEJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAUAAAAJc2VwYXJhdG9yBAAAAA1wb3NpdGl2ZVZvdGVzCQABkQAAAAIFAAAADHZvdGluZ1Jlc3VsdAAAAAAAAAAAAQQAAAANbmVnYXRpdmVWb3RlcwkAAZEAAAACBQAAAAx2b3RpbmdSZXN1bHQAAAAAAAAAAAIEAAAAB2FjdGlvbnMDCQAAAAAAAAIFAAAACHZvdGVUeXBlAgAAAAN5ZXMEAAAAEG5ld1Bvc2l0aXZlVm90ZXMJAABlAAAAAgkBAAAADXBhcnNlSW50VmFsdWUAAAABBQAAAA1wb3NpdGl2ZVZvdGVzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAACXZvdGVWYWx1ZQkABRQAAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAkBAAAACnRvdGFsVm90ZXMAAAACCQABpAAAAAEFAAAAEG5ld1Bvc2l0aXZlVm90ZXMFAAAADW5lZ2F0aXZlVm90ZXMJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAB2tleVZvdGUAAAAEBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAUAAAALdXNlckFkZHJlc3MFAAAAA25pbAUAAAAEdW5pdAQAAAAQbmV3TmVnYXRpdmVWb3RlcwkAAGUAAAACCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEFAAAADW5lZ2F0aXZlVm90ZXMJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAAJdm90ZVZhbHVlCQAFFAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAD2tleVZvdGluZ1Jlc3VsdAAAAAMFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4CQEAAAAKdG90YWxWb3RlcwAAAAIFAAAADXBvc2l0aXZlVm90ZXMJAAGkAAAAAQUAAAAQbmV3TmVnYXRpdmVWb3RlcwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAHa2V5Vm90ZQAAAAQFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAUAAAAMc3VnZ2VzdEluZGV4BQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsBQAAAAR1bml0BQAAAAdhY3Rpb25zCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAZzZXRGZWUAAAABAAAABm5ld0ZlZQQAAAAGY2hlY2tzCQAETAAAAAIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUZlZUFtb3VudAUAAAAGbmV3RmVlBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADHNldFRocmVzaG9sZAAAAAEAAAAMbmV3VGhyZXNob2xkBAAAAAZjaGVja3MJAARMAAAAAgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQkABEwAAAACAwkAAGYAAAACBQAAAAxuZXdUaHJlc2hvbGQAAAAAAAAAAAAGCQAAAgAAAAECAAAAEWludmFsaWQgdGhyZXNob2xkBQAAAANuaWwDCQAAAAAAAAIFAAAABmNoZWNrcwUAAAAGY2hlY2tzCQAFFAAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleVRocmVzaG9sZAUAAAAMbmV3VGhyZXNob2xkBQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACGZpbmFsaXplAAAAAgAAAA1hbW91bnRBc3NldElkAAAADHByaWNlQXNzZXRJZAQAAAAMc3VnZ2VzdEluZGV4CQEAAAAFdmFsdWUAAAABCQAEHwAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBAAAABJ2b3RpbmdGaW5pc2hIZWlnaHQJAABkAAAAAgkBAAAABXZhbHVlAAAAAQkABB8AAAABCQEAAAAOa2V5U3RhcnRIZWlnaHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAkBAAAABXZhbHVlAAAAAQkABB8AAAABBQAAAA5rZXlFcG9jaExlbmd0aAQAAAAGY2hlY2tzCQAETAAAAAIDCQEAAAAJaXNEZWZpbmVkAAAAAQkABB8AAAABCQEAAAAQa2V5SW5MaXN0QXNzZXRJZAAAAAIFAAAADWFtb3VudEFzc2V0SWQFAAAADHByaWNlQXNzZXRJZAYJAAACAAAAAQIAAAAObm8gYXNzZXRzIHBhaXIJAARMAAAAAgMJAABnAAAAAgUAAAAGaGVpZ2h0BQAAABJ2b3RpbmdGaW5pc2hIZWlnaHQGCQAAAgAAAAECAAAAImluc3VmZmljaWVudCBoZWlnaHQgZm9yIGNvbXBsZXRpb24FAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAADHZvdGluZ1Jlc3VsdAkABLUAAAACCQEAAAAFdmFsdWUAAAABCQAEIgAAAAEJAQAAAA9rZXlWb3RpbmdSZXN1bHQAAAADBQAAAA1hbW91bnRBc3NldElkBQAAAAxwcmljZUFzc2V0SWQFAAAADHN1Z2dlc3RJbmRleAUAAAAJc2VwYXJhdG9yBAAAAA1wb3NpdGl2ZVZvdGVzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMdm90aW5nUmVzdWx0AAAAAAAAAAABBAAAAA1uZWdhdGl2ZVZvdGVzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMdm90aW5nUmVzdWx0AAAAAAAAAAACBAAAAAhhbGxWb3RlcwkAAGQAAAACBQAAAA1wb3NpdGl2ZVZvdGVzBQAAAA1uZWdhdGl2ZVZvdGVzBAAAAAl0aHJlc2hvbGQJAQAAAAxnZXRJbnRPckZhaWwAAAABBQAAAAxrZXlUaHJlc2hvbGQEAAAAB2FjdGlvbnMDAwkAAGcAAAACBQAAAAhhbGxWb3RlcwUAAAAJdGhyZXNob2xkCQAAZgAAAAIFAAAADXBvc2l0aXZlVm90ZXMFAAAADW5lZ2F0aXZlVm90ZXMHBAAAAANyZXMJAAP8AAAABAUAAAAPZmFjdG9yeUNvbnRyYWN0AgAAABZzZXRXeEVtaXNzaW9uUG9vbExhYmVsCQAETAAAAAIFAAAADWFtb3VudEFzc2V0SWQJAARMAAAAAgUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAADcmVzBQAAAANyZXMEAAAAEXZvdGluZ0VtaXNzaW9uSW52CQAD/AAAAAQFAAAAFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QCAAAABmNyZWF0ZQkABEwAAAACBQAAAA1hbW91bnRBc3NldElkCQAETAAAAAIFAAAADHByaWNlQXNzZXRJZAUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAAEXZvdGluZ0VtaXNzaW9uSW52BQAAABF2b3RpbmdFbWlzc2lvbkludgkABRQAAAACCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkABRQAAAACCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEJAQAAABBrZXlJbkxpc3RBc3NldElkAAAAAgUAAAANYW1vdW50QXNzZXRJZAUAAAAMcHJpY2VBc3NldElkBQAAAANuaWwFAAAABHVuaXQFAAAAB2FjdGlvbnMJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACnNldE1hbmFnZXIAAAABAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BAAAAAtjaGVja0NhbGxlcgkBAAAAC211c3RNYW5hZ2VyAAAAAQUAAAABaQMJAAAAAAAAAgUAAAALY2hlY2tDYWxsZXIFAAAAC2NoZWNrQ2FsbGVyBAAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAAJZAAAAAQUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAAAAAAIFAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAAFAAAAF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5jb25maXJtTWFuYWdlcgAAAAAEAAAAAnBtCQEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAVoYXNQTQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAJwbQYJAAACAAAAAQIAAAASbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAVoYXNQTQUAAAAFaGFzUE0EAAAAB2NoZWNrUE0DCQAAAAAAAAIIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAABXZhbHVlAAAAAQUAAAACcG0GCQAAAgAAAAECAAAAG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAAAAAAAAgUAAAAHY2hlY2tQTQUAAAAHY2hlY2tQTQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAATa2V5TWFuYWdlclB1YmxpY0tleQAAAAAJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAACcG0JAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAAA90YXJnZXRQdWJsaWNLZXkEAAAAByRtYXRjaDAJAQAAABZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAKQnl0ZVZlY3RvcgQAAAACcGsFAAAAByRtYXRjaDAFAAAAAnBrAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0CAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5CQAAAgAAAAECAAAAC01hdGNoIGVycm9yCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAPdGFyZ2V0UHVibGljS2V5N0f/Kg==", "chainId": 84, "height": 2198388, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F2NWJ3rUpfZ8e61fpWa6UuKTRetnMCM6GJXcHcBwN6hq Next: 8MKav2rn1NUcv3tZgZwrCg8bSPQ92ATYwMXDyyvTPTqM Diff:
OldNewDifferences
221221 }
222222 if ((aq == aq))
223223 then {
224- let ar = {
225- let R = invoke(K, "isVerifiedREADONLY", [r], nil)
226- if ($isInstanceOf(R, "Boolean"))
227- then {
228- let as = R
229- if (as)
230- then true
224+ let ar = if (U(V))
225+ then unit
226+ else {
227+ let as = {
228+ let R = invoke(K, "isVerifiedREADONLY", [r], nil)
229+ if ($isInstanceOf(R, "Boolean"))
230+ then {
231+ let at = R
232+ if (at)
233+ then true
234+ else throw("asset is not verified")
235+ }
231236 else throw("asset is not verified")
232237 }
233- else throw("asset is not verified")
234- }
238+ if ((as == as))
239+ then unit
240+ else throw("Strict value is not equal to itself.")
241+ }
235242 if ((ar == ar))
236243 then {
237- let at = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
238- if ((at == at))
244+ let au = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
245+ if ((au == au))
239246 then {
240- let au = {
247+ let av = {
241248 let R = getInteger(t(r, s))
242249 if ($isInstanceOf(R, "Int"))
243250 then {
244- let av = R
245- (av + 1)
251+ let aw = R
252+ (aw + 1)
246253 }
247254 else 0
248255 }
249- $Tuple2([IntegerEntry(q(r, s), au), IntegerEntry(u(r, s, au), height), StringEntry(w(r, s, au), x("0", "0")), IntegerEntry(t(r, s), au)], unit)
256+ $Tuple2([IntegerEntry(q(r, s), av), IntegerEntry(u(r, s, av), height), StringEntry(w(r, s, av), x("0", "0")), IntegerEntry(t(r, s), av)], unit)
250257 }
251258 else throw("Strict value is not equal to itself.")
252259 }
260267
261268
262269 @Callable(V)
263-func vote (r,s,aw) = {
270+func vote (r,s,ax) = {
264271 let v = value(getInteger(q(r, s)))
265- let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
272+ let ay = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
266273 let am = [if (isDefined(getInteger(q(r, s))))
267274 then true
268- else throw("the token isn't on the voting list"), if ((ax > height))
275+ else throw("the token isn't on the voting list"), if ((ay > height))
269276 then true
270277 else throw("too late to vote")]
271278 if ((am == am))
272279 then {
273- let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), ax], nil)
274- let ay = if ((Y(D) > 0))
280+ let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), ay], nil)
281+ let az = if ((Y(D) > 0))
275282 then true
276283 else throw("you don't have gwx")
277- if ((ay == ay))
284+ if ((az == az))
278285 then {
279286 let E = {
280287 let R = getString(A(r, s, v, toString(V.caller)))
282289 then {
283290 let S = R
284291 let E = split(S, a)
285- let az = E[1]
286- let aA = E[2]
287- let aB = if (if ((aA == "yes"))
288- then (aw == true)
292+ let aA = E[1]
293+ let aB = E[2]
294+ let aC = if (if ((aB == "yes"))
295+ then (ax == true)
289296 else false)
290297 then true
291- else if ((aA == "no"))
292- then (aw == false)
298+ else if ((aB == "no"))
299+ then (ax == false)
293300 else false
294- let aC = if (aB)
295- then (Y(D) == parseIntValue(az))
301+ let aD = if (aC)
302+ then (Y(D) == parseIntValue(aA))
296303 else false
297- let aD = if (if (aB)
298- then aC
304+ let aE = if (if (aC)
305+ then aD
299306 else false)
300307 then throw("you already voted")
301308 else invoke(this, "cancelVote", [r, s], nil)
302- aD
309+ aE
303310 }
304311 else if ($isInstanceOf(R, "Unit"))
305312 then {
306- let aE = R
307- aE
313+ let aF = R
314+ aF
308315 }
309316 else throw("Match error")
310317 }
311318 if ((E == E))
312319 then {
313- let aF = split(value(getString(w(r, s, v))), a)
314- let aG = aF[1]
315- let aH = aF[2]
316- let aI = if (aw)
320+ let aG = split(value(getString(w(r, s, v))), a)
321+ let aH = aG[1]
322+ let aI = aG[2]
323+ let aJ = if (ax)
317324 then {
318- let aJ = (parseIntValue(aG) + Y(D))
319-[toString(aJ), aH]
325+ let aK = (parseIntValue(aH) + Y(D))
326+[toString(aK), aI]
320327 }
321328 else {
322- let aK = (parseIntValue(aH) + Y(D))
323-[aG, toString(aK)]
329+ let aL = (parseIntValue(aI) + Y(D))
330+[aH, toString(aL)]
324331 }
325- let aL = A(r, s, v, toString(V.caller))
326- let az = C(toString(Y(D)), aw)
327- $Tuple2([StringEntry(w(r, s, v), x(aI[0], aI[1])), StringEntry(aL, az)], unit)
332+ let aM = A(r, s, v, toString(V.caller))
333+ let aA = C(toString(Y(D)), ax)
334+ $Tuple2([StringEntry(w(r, s, v), x(aJ[0], aJ[1])), StringEntry(aM, aA)], unit)
328335 }
329336 else throw("Strict value is not equal to itself.")
330337 }
337344
338345 @Callable(V)
339346 func cancelVote (r,s) = {
340- let aM = if ((V.caller == this))
347+ let aN = if ((V.caller == this))
341348 then toString(V.originCaller)
342349 else toString(V.caller)
343350 let v = value(getInteger(q(r, s)))
346353 else throw("no vote for assets pair")]
347354 if ((am == am))
348355 then {
349- let E = split(value(getString(A(r, s, v, aM))), a)
350- let az = E[1]
351- let aA = E[2]
352- let aF = split(value(getString(w(r, s, v))), a)
353- let aG = aF[1]
354- let aH = aF[2]
355- let aN = if ((aA == "yes"))
356+ let E = split(value(getString(A(r, s, v, aN))), a)
357+ let aA = E[1]
358+ let aB = E[2]
359+ let aG = split(value(getString(w(r, s, v))), a)
360+ let aH = aG[1]
361+ let aI = aG[2]
362+ let aO = if ((aB == "yes"))
356363 then {
357- let aJ = (parseIntValue(aG) - parseIntValue(az))
358- $Tuple2([StringEntry(w(r, s, v), x(toString(aJ), aH)), DeleteEntry(A(r, s, v, aM))], unit)
364+ let aK = (parseIntValue(aH) - parseIntValue(aA))
365+ $Tuple2([StringEntry(w(r, s, v), x(toString(aK), aI)), DeleteEntry(A(r, s, v, aN))], unit)
359366 }
360367 else {
361- let aK = (parseIntValue(aH) - parseIntValue(az))
362- $Tuple2([StringEntry(w(r, s, v), x(aG, toString(aK))), DeleteEntry(A(r, s, v, aM))], unit)
368+ let aL = (parseIntValue(aI) - parseIntValue(aA))
369+ $Tuple2([StringEntry(w(r, s, v), x(aH, toString(aL))), DeleteEntry(A(r, s, v, aN))], unit)
363370 }
364- aN
371+ aO
365372 }
366373 else throw("Strict value is not equal to itself.")
367374 }
369376
370377
371378 @Callable(V)
372-func setFee (aO) = {
379+func setFee (aP) = {
373380 let am = [X(V)]
374381 if ((am == am))
375- then [IntegerEntry(b, aO)]
382+ then [IntegerEntry(b, aP)]
376383 else throw("Strict value is not equal to itself.")
377384 }
378385
379386
380387
381388 @Callable(V)
382-func setThreshold (aP) = {
383- let am = [X(V), if ((aP > 0))
389+func setThreshold (aQ) = {
390+ let am = [X(V), if ((aQ > 0))
384391 then true
385392 else throw("invalid threshold")]
386393 if ((am == am))
387- then $Tuple2([IntegerEntry(m, aP)], unit)
394+ then $Tuple2([IntegerEntry(m, aQ)], unit)
388395 else throw("Strict value is not equal to itself.")
389396 }
390397
393400 @Callable(V)
394401 func finalize (r,s) = {
395402 let v = value(getInteger(q(r, s)))
396- let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
403+ let ay = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
397404 let am = [if (isDefined(getInteger(q(r, s))))
398405 then true
399- else throw("no assets pair"), if ((height >= ax))
406+ else throw("no assets pair"), if ((height >= ay))
400407 then true
401408 else throw("insufficient height for completion")]
402409 if ((am == am))
403410 then {
404- let aF = split(value(getString(w(r, s, v))), a)
405- let aG = parseIntValue(aF[1])
406- let aH = parseIntValue(aF[2])
407- let aQ = (aG + aH)
411+ let aG = split(value(getString(w(r, s, v))), a)
412+ let aH = parseIntValue(aG[1])
413+ let aI = parseIntValue(aG[2])
414+ let aR = (aH + aI)
408415 let an = p(m)
409- let aN = if (if ((aQ >= an))
410- then (aG > aH)
416+ let aO = if (if ((aR >= an))
417+ then (aH > aI)
411418 else false)
412419 then {
413- let aR = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
414- if ((aR == aR))
420+ let aS = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
421+ if ((aS == aS))
415422 then {
416- let aS = invoke(P, "create", [r, s], nil)
417- if ((aS == aS))
423+ let aT = invoke(P, "create", [r, s], nil)
424+ if ((aT == aT))
418425 then $Tuple2([DeleteEntry(q(r, s))], unit)
419426 else throw("Strict value is not equal to itself.")
420427 }
421428 else throw("Strict value is not equal to itself.")
422429 }
423430 else $Tuple2([DeleteEntry(q(r, s))], unit)
424- aN
431+ aO
425432 }
426433 else throw("Strict value is not equal to itself.")
427434 }
429436
430437
431438 @Callable(V)
432-func setManager (aT) = {
433- let aU = X(V)
434- if ((aU == aU))
439+func setManager (aU) = {
440+ let aV = X(V)
441+ if ((aV == aV))
435442 then {
436- let aV = fromBase58String(aT)
437- if ((aV == aV))
438- then [StringEntry(J(), aT)]
443+ let aW = fromBase58String(aU)
444+ if ((aW == aW))
445+ then [StringEntry(J(), aU)]
439446 else throw("Strict value is not equal to itself.")
440447 }
441448 else throw("Strict value is not equal to itself.")
445452
446453 @Callable(V)
447454 func confirmManager () = {
448- let aW = T()
449- let aX = if (isDefined(aW))
455+ let aX = T()
456+ let aY = if (isDefined(aX))
450457 then true
451458 else throw("no pending manager")
452- if ((aX == aX))
459+ if ((aY == aY))
453460 then {
454- let aY = if ((V.callerPublicKey == value(aW)))
461+ let aZ = if ((V.callerPublicKey == value(aX)))
455462 then true
456463 else throw("you are not pending manager")
457- if ((aY == aY))
458- then [StringEntry(I(), toBase58String(value(aW))), DeleteEntry(J())]
464+ if ((aZ == aZ))
465+ then [StringEntry(I(), toBase58String(value(aX))), DeleteEntry(J())]
459466 else throw("Strict value is not equal to itself.")
460467 }
461468 else throw("Strict value is not equal to itself.")
462469 }
463470
464471
465-@Verifier(aZ)
466-func ba () = {
467- let bb = {
472+@Verifier(ba)
473+func bb () = {
474+ let bc = {
468475 let R = Q()
469476 if ($isInstanceOf(R, "ByteVector"))
470477 then {
472479 W
473480 }
474481 else if ($isInstanceOf(R, "Unit"))
475- then aZ.senderPublicKey
482+ then ba.senderPublicKey
476483 else throw("Match error")
477484 }
478- sigVerify(aZ.bodyBytes, aZ.proofs[0], bb)
485+ sigVerify(ba.bodyBytes, ba.proofs[0], bc)
479486 }
480487
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = makeString(["%s", "fee"], a)
77
88 let c = makeString(["%s", "usdnAssetId"], a)
99
1010 let d = makeString(["%s", "epochLength"], a)
1111
1212 let e = makeString(["%s", "finalizeReward"], a)
1313
1414 let f = makeString(["%s", "wxAssetId"], a)
1515
1616 let g = makeString(["%s", "assetsStoreContract"], a)
1717
1818 let h = makeString(["%s", "userPoolContract"], a)
1919
2020 let i = makeString(["%s", "emissionContract"], a)
2121
2222 let j = makeString(["%s", "boostingContract"], a)
2323
2424 let k = makeString(["%s", "factoryContract"], a)
2525
2626 let l = makeString(["%s", "votingEmissionContract"], a)
2727
2828 let m = makeString(["%s", "votingThreshold"], a)
2929
3030 func n (o) = valueOrErrorMessage(getString(this, o), (o + " is not defined"))
3131
3232
3333 func p (o) = valueOrErrorMessage(getInteger(this, o), (o + " is not defined"))
3434
3535
3636 func q (r,s) = makeString(["%s%s%s", "inList", r, s], a)
3737
3838
3939 func t (r,s) = makeString(["%s%s%s", "suggestIndex", r, s], a)
4040
4141
4242 func u (r,s,v) = makeString(["%s%s%s%d", "startHeight", r, s, toString(v)], a)
4343
4444
4545 func w (r,s,v) = makeString(["%s%s%s%d", "votingResult", r, s, toString(v)], a)
4646
4747
4848 func x (y,z) = makeString(["%d%d", y, z], a)
4949
5050
5151 func A (r,s,v,B) = makeString(["%s%s%s%d%s", "vote", r, s, toString(v), B], a)
5252
5353
5454 func C (D,E) = {
5555 let o = if (E)
5656 then makeString(["%d%s", D, "yes"], a)
5757 else makeString(["%d%s", D, "no"], a)
5858 o
5959 }
6060
6161
6262 func F (G) = {
6363 let H = G
6464 let r = H._1
6565 let s = H._2
6666 makeString(["%s%s%s", "inList", r, s], a)
6767 }
6868
6969
7070 func I () = "%s__managerPublicKey"
7171
7272
7373 func J () = "%s__pendingManagerPublicKey"
7474
7575
7676 let K = addressFromStringValue(n(g))
7777
7878 let L = addressFromStringValue(n(j))
7979
8080 let M = addressFromStringValue(n(i))
8181
8282 let N = addressFromStringValue(n(k))
8383
8484 let O = addressFromStringValue(n(h))
8585
8686 let P = addressFromStringValue(n(l))
8787
8888 func Q () = {
8989 let R = getString(I())
9090 if ($isInstanceOf(R, "String"))
9191 then {
9292 let S = R
9393 fromBase58String(S)
9494 }
9595 else if ($isInstanceOf(R, "Unit"))
9696 then unit
9797 else throw("Match error")
9898 }
9999
100100
101101 func T () = {
102102 let R = getString(J())
103103 if ($isInstanceOf(R, "String"))
104104 then {
105105 let S = R
106106 fromBase58String(S)
107107 }
108108 else if ($isInstanceOf(R, "Unit"))
109109 then unit
110110 else throw("Match error")
111111 }
112112
113113
114114 func U (V) = {
115115 let R = Q()
116116 if ($isInstanceOf(R, "ByteVector"))
117117 then {
118118 let W = R
119119 (V.callerPublicKey == W)
120120 }
121121 else if ($isInstanceOf(R, "Unit"))
122122 then (V.caller == this)
123123 else throw("Match error")
124124 }
125125
126126
127127 func X (V) = if (U(V))
128128 then true
129129 else throw("permission denied")
130130
131131
132132 func Y (Z) = {
133133 let R = Z
134134 if ($isInstanceOf(R, "Int"))
135135 then {
136136 let aa = R
137137 aa
138138 }
139139 else throw("failed to cast into Integer")
140140 }
141141
142142
143143 @Callable(V)
144144 func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al) = {
145145 let am = [X(V), if (isDefined(addressFromString(ab)))
146146 then true
147147 else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ac)))
148148 then true
149149 else throw("Invalid boosting contract address"), if (isDefined(addressFromString(af)))
150150 then true
151151 else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ad)))
152152 then true
153153 else throw("Invalid emission contract address"), if (isDefined(addressFromString(ae)))
154154 then true
155155 else throw("Invalid factory contract address"), if ((ah >= 0))
156156 then true
157157 else throw("Invalid fee amount"), if ((aj > 0))
158158 then true
159159 else throw("Invalid voting duration"), if ((al >= 0))
160160 then true
161161 else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ai))))
162162 then true
163163 else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ak))))
164164 then true
165165 else throw("Invalid USDN asset ID")]
166166 if ((am == am))
167167 then $Tuple2([StringEntry(g, ab), StringEntry(j, ac), StringEntry(i, ad), StringEntry(k, ae), StringEntry(h, af), StringEntry(l, ag), IntegerEntry(b, ah), IntegerEntry(d, aj), IntegerEntry(e, al), StringEntry(f, ai), StringEntry(c, ak)], unit)
168168 else throw("Strict value is not equal to itself.")
169169 }
170170
171171
172172
173173 @Callable(V)
174174 func constructorV2 (an) = {
175175 let am = [X(V), if ((an > 0))
176176 then true
177177 else throw("invalid threshold")]
178178 if ((am == am))
179179 then $Tuple2([IntegerEntry(m, an)], unit)
180180 else throw("Strict value is not equal to itself.")
181181 }
182182
183183
184184
185185 @Callable(V)
186186 func suggest (r,s) = {
187187 let G = $Tuple2(r, s)
188188 let ao = value(V.payments[0])
189189 let ap = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
190190 let am = [if (if (U(V))
191191 then true
192192 else (ap.issuer == V.caller))
193193 then true
194194 else throw("asset can only be suggested by its issuer"), if ((ap.scripted == false))
195195 then true
196196 else throw("asset is smart"), if ((toBase58String(value(ao.assetId)) == value(getString(f))))
197197 then true
198198 else throw("invalid fee asset"), if ((ao.amount == value(getInteger(b))))
199199 then true
200200 else throw("invalid fee amount"), if (if (U(V))
201201 then true
202202 else (s == value(getString(c))))
203203 then true
204204 else throw("priceAssetId is not USDN"), if ((getInteger(q(r, s)) == unit))
205205 then true
206206 else throw("already in voting list"), if (!(valueOrElse(getBoolean(P, F(G)), false)))
207207 then true
208208 else throw("pool is in emission voting list")]
209209 if ((am == am))
210210 then {
211211 let aq = {
212212 let R = invoke(O, "statusREADONLY", [r, s], nil)
213213 if ($isInstanceOf(R, "String"))
214214 then {
215215 let S = R
216216 if ((S == "active"))
217217 then true
218218 else throw("user pool is not active")
219219 }
220220 else throw("user pool is not active")
221221 }
222222 if ((aq == aq))
223223 then {
224- let ar = {
225- let R = invoke(K, "isVerifiedREADONLY", [r], nil)
226- if ($isInstanceOf(R, "Boolean"))
227- then {
228- let as = R
229- if (as)
230- then true
224+ let ar = if (U(V))
225+ then unit
226+ else {
227+ let as = {
228+ let R = invoke(K, "isVerifiedREADONLY", [r], nil)
229+ if ($isInstanceOf(R, "Boolean"))
230+ then {
231+ let at = R
232+ if (at)
233+ then true
234+ else throw("asset is not verified")
235+ }
231236 else throw("asset is not verified")
232237 }
233- else throw("asset is not verified")
234- }
238+ if ((as == as))
239+ then unit
240+ else throw("Strict value is not equal to itself.")
241+ }
235242 if ((ar == ar))
236243 then {
237- let at = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
238- if ((at == at))
244+ let au = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
245+ if ((au == au))
239246 then {
240- let au = {
247+ let av = {
241248 let R = getInteger(t(r, s))
242249 if ($isInstanceOf(R, "Int"))
243250 then {
244- let av = R
245- (av + 1)
251+ let aw = R
252+ (aw + 1)
246253 }
247254 else 0
248255 }
249- $Tuple2([IntegerEntry(q(r, s), au), IntegerEntry(u(r, s, au), height), StringEntry(w(r, s, au), x("0", "0")), IntegerEntry(t(r, s), au)], unit)
256+ $Tuple2([IntegerEntry(q(r, s), av), IntegerEntry(u(r, s, av), height), StringEntry(w(r, s, av), x("0", "0")), IntegerEntry(t(r, s), av)], unit)
250257 }
251258 else throw("Strict value is not equal to itself.")
252259 }
253260 else throw("Strict value is not equal to itself.")
254261 }
255262 else throw("Strict value is not equal to itself.")
256263 }
257264 else throw("Strict value is not equal to itself.")
258265 }
259266
260267
261268
262269 @Callable(V)
263-func vote (r,s,aw) = {
270+func vote (r,s,ax) = {
264271 let v = value(getInteger(q(r, s)))
265- let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
272+ let ay = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
266273 let am = [if (isDefined(getInteger(q(r, s))))
267274 then true
268- else throw("the token isn't on the voting list"), if ((ax > height))
275+ else throw("the token isn't on the voting list"), if ((ay > height))
269276 then true
270277 else throw("too late to vote")]
271278 if ((am == am))
272279 then {
273- let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), ax], nil)
274- let ay = if ((Y(D) > 0))
280+ let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), ay], nil)
281+ let az = if ((Y(D) > 0))
275282 then true
276283 else throw("you don't have gwx")
277- if ((ay == ay))
284+ if ((az == az))
278285 then {
279286 let E = {
280287 let R = getString(A(r, s, v, toString(V.caller)))
281288 if ($isInstanceOf(R, "String"))
282289 then {
283290 let S = R
284291 let E = split(S, a)
285- let az = E[1]
286- let aA = E[2]
287- let aB = if (if ((aA == "yes"))
288- then (aw == true)
292+ let aA = E[1]
293+ let aB = E[2]
294+ let aC = if (if ((aB == "yes"))
295+ then (ax == true)
289296 else false)
290297 then true
291- else if ((aA == "no"))
292- then (aw == false)
298+ else if ((aB == "no"))
299+ then (ax == false)
293300 else false
294- let aC = if (aB)
295- then (Y(D) == parseIntValue(az))
301+ let aD = if (aC)
302+ then (Y(D) == parseIntValue(aA))
296303 else false
297- let aD = if (if (aB)
298- then aC
304+ let aE = if (if (aC)
305+ then aD
299306 else false)
300307 then throw("you already voted")
301308 else invoke(this, "cancelVote", [r, s], nil)
302- aD
309+ aE
303310 }
304311 else if ($isInstanceOf(R, "Unit"))
305312 then {
306- let aE = R
307- aE
313+ let aF = R
314+ aF
308315 }
309316 else throw("Match error")
310317 }
311318 if ((E == E))
312319 then {
313- let aF = split(value(getString(w(r, s, v))), a)
314- let aG = aF[1]
315- let aH = aF[2]
316- let aI = if (aw)
320+ let aG = split(value(getString(w(r, s, v))), a)
321+ let aH = aG[1]
322+ let aI = aG[2]
323+ let aJ = if (ax)
317324 then {
318- let aJ = (parseIntValue(aG) + Y(D))
319-[toString(aJ), aH]
325+ let aK = (parseIntValue(aH) + Y(D))
326+[toString(aK), aI]
320327 }
321328 else {
322- let aK = (parseIntValue(aH) + Y(D))
323-[aG, toString(aK)]
329+ let aL = (parseIntValue(aI) + Y(D))
330+[aH, toString(aL)]
324331 }
325- let aL = A(r, s, v, toString(V.caller))
326- let az = C(toString(Y(D)), aw)
327- $Tuple2([StringEntry(w(r, s, v), x(aI[0], aI[1])), StringEntry(aL, az)], unit)
332+ let aM = A(r, s, v, toString(V.caller))
333+ let aA = C(toString(Y(D)), ax)
334+ $Tuple2([StringEntry(w(r, s, v), x(aJ[0], aJ[1])), StringEntry(aM, aA)], unit)
328335 }
329336 else throw("Strict value is not equal to itself.")
330337 }
331338 else throw("Strict value is not equal to itself.")
332339 }
333340 else throw("Strict value is not equal to itself.")
334341 }
335342
336343
337344
338345 @Callable(V)
339346 func cancelVote (r,s) = {
340- let aM = if ((V.caller == this))
347+ let aN = if ((V.caller == this))
341348 then toString(V.originCaller)
342349 else toString(V.caller)
343350 let v = value(getInteger(q(r, s)))
344351 let am = [if (isDefined(getString(w(r, s, v))))
345352 then true
346353 else throw("no vote for assets pair")]
347354 if ((am == am))
348355 then {
349- let E = split(value(getString(A(r, s, v, aM))), a)
350- let az = E[1]
351- let aA = E[2]
352- let aF = split(value(getString(w(r, s, v))), a)
353- let aG = aF[1]
354- let aH = aF[2]
355- let aN = if ((aA == "yes"))
356+ let E = split(value(getString(A(r, s, v, aN))), a)
357+ let aA = E[1]
358+ let aB = E[2]
359+ let aG = split(value(getString(w(r, s, v))), a)
360+ let aH = aG[1]
361+ let aI = aG[2]
362+ let aO = if ((aB == "yes"))
356363 then {
357- let aJ = (parseIntValue(aG) - parseIntValue(az))
358- $Tuple2([StringEntry(w(r, s, v), x(toString(aJ), aH)), DeleteEntry(A(r, s, v, aM))], unit)
364+ let aK = (parseIntValue(aH) - parseIntValue(aA))
365+ $Tuple2([StringEntry(w(r, s, v), x(toString(aK), aI)), DeleteEntry(A(r, s, v, aN))], unit)
359366 }
360367 else {
361- let aK = (parseIntValue(aH) - parseIntValue(az))
362- $Tuple2([StringEntry(w(r, s, v), x(aG, toString(aK))), DeleteEntry(A(r, s, v, aM))], unit)
368+ let aL = (parseIntValue(aI) - parseIntValue(aA))
369+ $Tuple2([StringEntry(w(r, s, v), x(aH, toString(aL))), DeleteEntry(A(r, s, v, aN))], unit)
363370 }
364- aN
371+ aO
365372 }
366373 else throw("Strict value is not equal to itself.")
367374 }
368375
369376
370377
371378 @Callable(V)
372-func setFee (aO) = {
379+func setFee (aP) = {
373380 let am = [X(V)]
374381 if ((am == am))
375- then [IntegerEntry(b, aO)]
382+ then [IntegerEntry(b, aP)]
376383 else throw("Strict value is not equal to itself.")
377384 }
378385
379386
380387
381388 @Callable(V)
382-func setThreshold (aP) = {
383- let am = [X(V), if ((aP > 0))
389+func setThreshold (aQ) = {
390+ let am = [X(V), if ((aQ > 0))
384391 then true
385392 else throw("invalid threshold")]
386393 if ((am == am))
387- then $Tuple2([IntegerEntry(m, aP)], unit)
394+ then $Tuple2([IntegerEntry(m, aQ)], unit)
388395 else throw("Strict value is not equal to itself.")
389396 }
390397
391398
392399
393400 @Callable(V)
394401 func finalize (r,s) = {
395402 let v = value(getInteger(q(r, s)))
396- let ax = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
403+ let ay = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
397404 let am = [if (isDefined(getInteger(q(r, s))))
398405 then true
399- else throw("no assets pair"), if ((height >= ax))
406+ else throw("no assets pair"), if ((height >= ay))
400407 then true
401408 else throw("insufficient height for completion")]
402409 if ((am == am))
403410 then {
404- let aF = split(value(getString(w(r, s, v))), a)
405- let aG = parseIntValue(aF[1])
406- let aH = parseIntValue(aF[2])
407- let aQ = (aG + aH)
411+ let aG = split(value(getString(w(r, s, v))), a)
412+ let aH = parseIntValue(aG[1])
413+ let aI = parseIntValue(aG[2])
414+ let aR = (aH + aI)
408415 let an = p(m)
409- let aN = if (if ((aQ >= an))
410- then (aG > aH)
416+ let aO = if (if ((aR >= an))
417+ then (aH > aI)
411418 else false)
412419 then {
413- let aR = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
414- if ((aR == aR))
420+ let aS = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
421+ if ((aS == aS))
415422 then {
416- let aS = invoke(P, "create", [r, s], nil)
417- if ((aS == aS))
423+ let aT = invoke(P, "create", [r, s], nil)
424+ if ((aT == aT))
418425 then $Tuple2([DeleteEntry(q(r, s))], unit)
419426 else throw("Strict value is not equal to itself.")
420427 }
421428 else throw("Strict value is not equal to itself.")
422429 }
423430 else $Tuple2([DeleteEntry(q(r, s))], unit)
424- aN
431+ aO
425432 }
426433 else throw("Strict value is not equal to itself.")
427434 }
428435
429436
430437
431438 @Callable(V)
432-func setManager (aT) = {
433- let aU = X(V)
434- if ((aU == aU))
439+func setManager (aU) = {
440+ let aV = X(V)
441+ if ((aV == aV))
435442 then {
436- let aV = fromBase58String(aT)
437- if ((aV == aV))
438- then [StringEntry(J(), aT)]
443+ let aW = fromBase58String(aU)
444+ if ((aW == aW))
445+ then [StringEntry(J(), aU)]
439446 else throw("Strict value is not equal to itself.")
440447 }
441448 else throw("Strict value is not equal to itself.")
442449 }
443450
444451
445452
446453 @Callable(V)
447454 func confirmManager () = {
448- let aW = T()
449- let aX = if (isDefined(aW))
455+ let aX = T()
456+ let aY = if (isDefined(aX))
450457 then true
451458 else throw("no pending manager")
452- if ((aX == aX))
459+ if ((aY == aY))
453460 then {
454- let aY = if ((V.callerPublicKey == value(aW)))
461+ let aZ = if ((V.callerPublicKey == value(aX)))
455462 then true
456463 else throw("you are not pending manager")
457- if ((aY == aY))
458- then [StringEntry(I(), toBase58String(value(aW))), DeleteEntry(J())]
464+ if ((aZ == aZ))
465+ then [StringEntry(I(), toBase58String(value(aX))), DeleteEntry(J())]
459466 else throw("Strict value is not equal to itself.")
460467 }
461468 else throw("Strict value is not equal to itself.")
462469 }
463470
464471
465-@Verifier(aZ)
466-func ba () = {
467- let bb = {
472+@Verifier(ba)
473+func bb () = {
474+ let bc = {
468475 let R = Q()
469476 if ($isInstanceOf(R, "ByteVector"))
470477 then {
471478 let W = R
472479 W
473480 }
474481 else if ($isInstanceOf(R, "Unit"))
475- then aZ.senderPublicKey
482+ then ba.senderPublicKey
476483 else throw("Match error")
477484 }
478- sigVerify(aZ.bodyBytes, aZ.proofs[0], bb)
485+ sigVerify(ba.bodyBytes, ba.proofs[0], bc)
479486 }
480487

github/deemru/w8io/873ac7e 
94.83 ms