tx · vcYZPj9vVJvMJpERNzANuuj6hUjAfioCoq3nJrXFYNe 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz: -0.03700000 Waves 2022.06.23 10:20 [2108745] smart account 3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz > SELF 0.00000000 Waves
{ "type": 13, "id": "vcYZPj9vVJvMJpERNzANuuj6hUjAfioCoq3nJrXFYNe", "fee": 3700000, "feeAssetId": null, "timestamp": 1655968870113, "version": 1, "sender": "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz", "senderPublicKey": "D28XoueZWsMfm8Y5pa6C5ZFuYoWgre2Wm8tzJANJgMnq", "proofs": [ "5hjmo2H3Wh2aKmtq1Pg8DUjTDrCAjwetF5Fm9vbsBD3goM7s1kLZQVAhvFSs9tqwJGr6ehQ6VYLPM3s5EYNeg7Bc" ], "script": "base64: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ZWZhdWx0VmFsBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQEAAAAFdmFsdWUAAAABCQABqAAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAACmRlZmF1bHRWYWwJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAABXRvWDE4AAAAAgAAAAdvcmlnVmFsAAAADW9yaWdTY2FsZU11bHQJAAE8AAAAAwkAATYAAAABBQAAAAdvcmlnVmFsBQAAAAZNVUxUMTgJAAE2AAAAAQUAAAANb3JpZ1NjYWxlTXVsdAEAAAAHZnJvbVgxOAAAAAIAAAADdmFsAAAAD3Jlc3VsdFNjYWxlTXVsdAkAAaAAAAABCQABPAAAAAMFAAAAA3ZhbAkAATYAAAABBQAAAA9yZXN1bHRTY2FsZU11bHQFAAAABk1VTFQxOAEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAAAgAAABwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAQAAABlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0AAAAAAIAAAAaJXNfX3ZvdGluZ0VtaXNzaW9uQ29udHJhY3QAAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAAAAAAAAAAAAQAAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAAAAAAAAAAAAgAAAAAUSWR4RmFjdG9yeUNmZ0lkb0RhcHAAAAAAAAAAAAMAAAAAFUlkeEZhY3RvcnlDZmdUZWFtRGFwcAAAAAAAAAAABAAAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAAAAAAAAAAABQAAAAAVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwAAAAAAAAAAAGAAAAABlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwAAAAAAAAAAAHAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAIAAAARJXNfX2ZhY3RvcnlDb25maWcBAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAAAgAAABQlc19fbWFuYWdlclB1YmxpY0tleQEAAAAUa2V5TWlncmF0b3JQdWJsaWNLZXkAAAAAAgAAABUlc19fbWlncmF0b3JQdWJsaWNLZXkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAIAAAAbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQAAABZrZXlTdGFibGVQb29sQWRkb25BZGRyAAAAAAIAAAAXJXNfX3N0YWJsZVBvb2xBZGRvbkFkZHIBAAAAGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAECVzX19scFRva2Vuc0xpc3QBAAAAJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQAAAApscEFzc2V0U3RyCQAEuQAAAAIJAARMAAAAAgIAAAAGJXMlcyVzCQAETAAAAAIFAAAACmxwQXNzZXRTdHIJAARMAAAAAgIAAAAebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQAAAANuaWwFAAAAA1NFUAEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABAAAAD2NvbnRyYWN0QWRkcmVzcwkABLkAAAACCQAETAAAAAICAAAABCVzJXMJAARMAAAAAgIAAAAKcG9vbFdlaWdodAkABEwAAAACBQAAAA9jb250cmFjdEFkZHJlc3MFAAAAA25pbAUAAAADU0VQAQAAAApyZWFkTHBMaXN0AAAAAQAAAAdmYWN0b3J5CQAEtQAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAHZmFjdG9yeQkBAAAAEGtleUZhY3RvcnlMcExpc3QAAAAAAgAAAAAFAAAAA1NFUAEAAAAUcmVhZEZhY3RvcnlDZmdPckZhaWwAAAABAAAAB2ZhY3RvcnkJAAS1AAAAAgkBAAAAGGdldFN0cmluZ0J5QWRkcmVzc09yRmFpbAAAAAIFAAAAB2ZhY3RvcnkJAQAAAA1rZXlGYWN0b3J5Q2ZnAAAAAAUAAAADU0VQAQAAABhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcAEAAAAYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHABAAAAF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsAAAAAQAAAApmYWN0b3J5Q2ZnCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcAEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAIAAAAbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQAAACFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQAAAAAAgAAAB4lcyVzX19yYXRlUGVyQmxvY2tNYXhfX2N1cnJlbnQBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAACAAAAGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQAAABtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZHVyYXRpb24BAAAAE2tleUVtaXNzaW9uRW5kQmxvY2sAAAAAAgAAABglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIAAAAOdXNlckFkZHJlc3NTdHIAAAAMbHBBc3NldElkU3RyCQAEuQAAAAIJAARMAAAAAgIAAAAOJXMlcyVzX19zdGFrZWQJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwFAAAAA1NFUAEA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AAtEZWxldGVFbnRyeQAAAAEJAQAAAAtrZXlMaXN0TmV4dAAAAAIFAAAACGxpc3ROYW1lCQEAAAAFdmFsdWUAAAABBQAAAApwcmV2T3JVbml0BQAAAANuaWwDCQAAAAAAAAIFAAAAAmlkCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAApoZWFkT3JVbml0AgAAAAAJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkBAAAAC2tleUxpc3RIZWFkAAAAAQUAAAAIbGlzdE5hbWUFAAAAA25pbAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA5pbnZhbGlkIG5vZGU6IAUAAAAIbGlzdE5hbWUCAAAAAS4FAAAAAmlkAQAAABtjYWxjV3hQZXJMcEludGVncmFsVXNlckxhc3QAAAAEAAAADHN0YWtlZEJ5VXNlcgAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwAAABJ3eFBlckxwSW50ZWdyYWxOZXcAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkDAwkAAAAAAAACBQAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwUAAAAKemVyb0JpZ0ludAkAAT8AAAACBQAAAAxzdGFrZWRCeVVzZXIFAAAACnplcm9CaWdJbnQHBQAAAAp6ZXJvQmlnSW50AwkAAAAAAAACBQAAAAxzdGFrZWRCeVVzZXIFAAAACnplcm9CaWdJbnQFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwMDCQABPwAAAAIFAAAAJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvBQAAAAp6ZXJvQmlnSW50CQABPwAAAAIFAAAADHN0YWtlZEJ5VXNlcgUAAAAKemVyb0JpZ0ludAcJAQAAAAV2YWx1ZQAAAAEJAAGoAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMFAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZCQAAAgAAAAECAAAALWNhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdDogdW5leHBlY3RlZCBzdGF0ZQEAAAAUcmVmcmVzaFBvb2xJTlRFR1JBTFMAAAADAAAADGxwQXNzZXRJZFN0cgAAAA5wb29sQWRkcmVzc1N0cgAAAA1scERlbHRhQW1vdW50BAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAtzdGFrZWRUb3RhbAkAATYAAAABCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAADnN0YWtlZFRvdGFsS0VZBAAAABJub25aZXJvU3Rha2VkVG90YWwDCQAAAAAAAAIFAAAAC3N0YWtlZFRvdGFsBQAAAAp6ZXJvQmlnSW50BQAAAAlvbmVCaWdJbnQFAAAAC3N0YWtlZFRvdGFsBAAAAApwb29sV2VpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABRrZXlGYWN0b3J5UG9vbFdlaWdodAAAAAEFAAAADnBvb2xBZGRyZXNzU3RyBAAAABJlbWlzc2lvblN0YXJ0QmxvY2sJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAVa2V5RW1pc3Npb25TdGFydEJsb2NrAAAAAAQAAAAFTVVMVDMAAAAAAAAAA+gEAAAAFHd4RW1pc3Npb25QZXJCbG9ja1gzCQAAaAAAAAIJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAUAAAAFTVVMVDMEAAAAGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMwkAAGsAAAADBQAAABR3eEVtaXNzaW9uUGVyQmxvY2tYMwUAAAAKcG9vbFdlaWdodAkAAGgAAAACBQAAAA5QT09MV0VJR0hUTVVMVAAAAAAAAAAAAwQAAAASd3hQZXJMcEludGVncmFsS0VZCQEAAAASa2V5V3hQZXJMcEludGVncmFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZCQEAAAAfa2V5V3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAKd3hQZXJMcEtFWQkBAAAACmtleVd4UGVyTHAAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAHHd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQJAQAAAA9nZXRJbnRPckRlZmF1bHQAAAADBQAAAAR0aGlzBQAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZBQAAABJlbWlzc2lvblN0YXJ0QmxvY2sEAAAAD3d4UGVyTHBJbnRlZ3JhbAkBAAAAGWdldEJpZ0ludEZyb21TdHJpbmdPclplcm8AAAACBQAAAAR0aGlzBQAAABJ3eFBlckxwSW50ZWdyYWxLRVkEAAAAD3d4UGVyTHBPclplcm9YMwAAAAAAAAAAAAQAAAACZGgJAAGWAAAAAQkABEwAAAACCQAAZQAAAAIFAAAABmhlaWdodAUAAAAcd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwEAAAACXd4UGVyTHBYMwMJAQAAAAIhPQAAAAIFAAAAD3d4UGVyTHBPclplcm9YMwAAAAAAAAAAAAkAATYAAAABBQAAAA93eFBlckxwT3JaZXJvWDMJAAE8AAAAAwkAATYAAAABBQAAABhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMJAAE2AAAAAQUAAAAFTVVMVDgFAAAAEm5vblplcm9TdGFrZWRUb3RhbAQAAAAOc3Rha2VkVG90YWxOZXcJAAE3AAAAAgUAAAALc3Rha2VkVG90YWwJAAE2AAAAAQUAAAANbHBEZWx0YUFtb3VudAQAAAAVbm9uWmVyb1N0YWtlZFRvdGFsTmV3AwkAAAAAAAACBQAAAA5zdGFrZWRUb3RhbE5ldwUAAAAKemVyb0JpZ0ludAUAAAAJb25lQmlnSW50BQAAAA5zdGFrZWRUb3RhbE5ldwQAAAASd3hQZXJMcEludGVncmFsTmV3CQABNwAAAAIFAAAAD3d4UGVyTHBJbnRlZ3JhbAkAATkAAAACBQAAAAl3eFBlckxwWDMJAAE2AAAAAQUAAAACZGgEAAAADHd4UGVyTHBYM05ldwkAAToAAAACCQABNgAAAAEFAAAAGHBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMwUAAAAVbm9uWmVyb1N0YWtlZFRvdGFsTmV3BAAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3BQAAAAZoZWlnaHQEAAAABWRlYnVnCQAEuQAAAAIJAARMAAAAAgIAAAATd3hQZXJMcEludGVncmFsTmV3PQkABEwAAAACCQABpgAAAAEFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkABEwAAAACAgAAAANkaD0JAARMAAAAAgkAAaQAAAABBQAAAAJkaAkABEwAAAACAgAAAAp3eFBlckxwWDM9CQAETAAAAAIJAAGmAAAAAQUAAAAJd3hQZXJMcFgzCQAETAAAAAICAAAADHN0YWtlZFRvdGFsPQkABEwAAAACCQABpgAAAAEFAAAAC3N0YWtlZFRvdGFsCQAETAAAAAICAAAAGXBvb2xXeEVtaXNzaW9uUGVyQmxvY2tYMz0JAARMAAAAAgkAAaQAAAABBQAAABhwb29sV3hFbWlzc2lvblBlckJsb2NrWDMJAARMAAAAAgIAAAAVd3hFbWlzc2lvblBlckJsb2NrWDM9CQAETAAAAAIJAAGkAAAAAQUAAAAUd3hFbWlzc2lvblBlckJsb2NrWDMJAARMAAAAAgIAAAALcG9vbFdlaWdodD0JAARMAAAAAgkAAaQAAAABBQAAAApwb29sV2VpZ2h0BQAAAANuaWwCAAAAAjo6CQAFFQAAAAMFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJ3eFBlckxwSW50ZWdyYWxLRVkJAAGmAAAAAQUAAAASd3hQZXJMcEludGVncmFsTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZBQAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0TmV3CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACnd4UGVyTHBLRVkJAAGmAAAAAQUAAAAMd3hQZXJMcFgzTmV3BQAAAANuaWwFAAAABWRlYnVnAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIAAAAOcG9vbEFkZHJlc3NTdHIAAAANbHBEZWx0YUFtb3VudAQAAAANJHQwMTQ0NzMxNDU5NQkBAAAAFHJlZnJlc2hQb29sSU5URUdSQUxTAAAAAwUAAAAMbHBBc3NldElkU3RyBQAAAA5wb29sQWRkcmVzc1N0cgUAAAANbHBEZWx0YUFtb3VudAQAAAASd3hQZXJMcEludGVncmFsTmV3CAUAAAANJHQwMTQ0NzMxNDU5NQAAAAJfMQQAAAARcG9vbEludGVncmFsU1RBVEUIBQAAAA0kdDAxNDQ3MzE0NTk1AAAAAl8yBAAAAAlwb29sREVCVUcIBQAAAA0kdDAxNDQ3MzE0NTk1AAAAAl8zBAAAAAVNVUxUMwAAAAAAAAAD6AQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAAQd3hUb0NsYWltVXNlcktFWQkBAAAAEGtleVd4VG9DbGFpbVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQkBAAAAI2tleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0AAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkJAQAAABprZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAADXd4VG9DbGFpbVVzZXIJAQAAABlnZXRCaWdJbnRGcm9tU3RyaW5nT3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAQd3hUb0NsYWltVXNlcktFWQQAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8JAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQQAAAAXd3hQZXJMcEludGVncmFsVXNlckxhc3QJAQAAABtjYWxjV3hQZXJMcEludGVncmFsVXNlckxhc3QAAAAECQABNgAAAAEFAAAADHN0YWtlZEJ5VXNlcgkAATYAAAABBQAAACZ3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE9yWmVybwUAAAASd3hQZXJMcEludGVncmFsTmV3BQAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQQAAAAGTVVMVDExCQAAaAAAAAIFAAAABU1VTFQ4BQAAAAVNVUxUMwQAAAAQd3hUb0NsYWltVXNlck5ldwkAATcAAAACBQAAAA13eFRvQ2xhaW1Vc2VyCQABPAAAAAMJAAE4AAAAAgUAAAASd3hQZXJMcEludGVncmFsTmV3BQAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAkAATYAAAABBQAAAAxzdGFrZWRCeVVzZXIJAAE2AAAAAQUAAAAGTVVMVDExBAAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdE5ldwUAAAASd3hQZXJMcEludGVncmFsTmV3BAAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE5ldwUAAAAGaGVpZ2h0BAAAAAVkZWJ1ZwkABLkAAAACCQAETAAAAAICAAAAJ3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvPQkABEwAAAACCQABpAAAAAEFAAAAJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvCQAETAAAAAICAAAAR3RoaXMuZ2V0U3RyaW5nT3JGYWlsKHd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZKS5wYXJzZUJpZ0ludCgpLnZhbHVlKCk9CQAETAAAAAIJAAGmAAAAAQkBAAAABXZhbHVlAAAAAQkAAagAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAEdGhpcwUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkJAARMAAAAAgIAAAATd3hQZXJMcEludGVncmFsTmV3PQkABEwAAAACCQABpgAAAAEFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwkABEwAAAACAgAAABF3eFRvQ2xhaW1Vc2VyTmV3PQkABEwAAAACCQABpgAAAAEFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAARMAAAAAgIAAAAYd3hQZXJMcEludGVncmFsVXNlckxhc3Q9CQAETAAAAAIJAAGmAAAAAQUAAAAXd3hQZXJMcEludGVncmFsVXNlckxhc3QJAARMAAAAAgIAAAANc3Rha2VkQnlVc2VyPQkABEwAAAACCQABpAAAAAEFAAAADHN0YWtlZEJ5VXNlcgkABEwAAAACAgAAAApwb29sREVCVUc9CQAETAAAAAIFAAAACXBvb2xERUJVRwkABEwAAAACAgAAAAdoZWlnaHQ9CQAETAAAAAIJAAGkAAAAAQUAAAAGaGVpZ2h0BQAAAANuaWwCAAAAAjo6CQAFFQAAAAMFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAAROAAAAAgUAAAARcG9vbEludGVncmFsU1RBVEUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAQd3hUb0NsYWltVXNlcktFWQkAAaYAAAABBQAAABB3eFRvQ2xhaW1Vc2VyTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQUAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHROZXcJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkJAAGmAAAAAQUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3ROZXcFAAAAA25pbAUAAAAFZGVidWcBAAAAFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFzBQAAAAckbWF0Y2gwCQACWQAAAAEFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQFAAAABHVuaXQJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IBAAAAF21pZ3JhdG9yUHVibGljS2V5T3JVbml0AAAAAAQAAAAHJG1hdGNoMAkABCIAAAABCQEAAAAUa2V5TWlncmF0b3JQdWJsaWNLZXkAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAAJZAAAAAQUAAAABcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAUAAAAEdW5pdAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgEAAAAdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQAAAAABAAAAAckbWF0Y2gwCQAEIgAAAAEJAQAAABprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABcwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAFzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0BQAAAAR1bml0CQAAAgAAAAECAAAAC01hdGNoIGVycm9yAAAAABVwZXJtaXNzaW9uRGVuaWVkRXJyb3IJAAACAAAAAQIAAAARUGVybWlzc2lvbiBkZW5pZWQBAAAACG11c3RUaGlzAAAAAQAAAAFpAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGBQAAABVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBAAAAC211c3RNYW5hZ2VyAAAAAQAAAAFpBAAAAAckbWF0Y2gwCQEAAAAWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAnBrBQAAAAckbWF0Y2gwAwkAAAAAAAACCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkFAAAAAnBrBgUAAAAVcGVybWlzc2lvbkRlbmllZEVycm9yAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMGBQAAABVwZXJtaXNzaW9uRGVuaWVkRXJyb3IJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IAAAALAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAAAQAAABFmYWN0b3J5QWRkcmVzc1N0cgQAAAALY2hlY2tDYWxsZXIJAQAAAAttdXN0TWFuYWdlcgAAAAEFAAAAAWkDCQAAAAAAAAIFAAAAC2NoZWNrQ2FsbGVyBQAAAAtjaGVja0NhbGxlcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAABQAAABFmYWN0b3J5QWRkcmVzc1N0cgUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA1jb25zdHJ1Y3RvclYyAAAAAQAAABZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BAAAAAVjaGVrcwkABEwAAAACCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpCQAETAAAAAIDCQEAAAACIT0AAAACCQAEJgAAAAEFAAAAFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFAAAABHVuaXQGAgAAAChpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQAAAANuaWwDCQAAAAAAAAIFAAAABWNoZWtzBQAAAAVjaGVrcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdAAAAAAFAAAAFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKc2V0TWFuYWdlcgAAAAEAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkEAAAAC2NoZWNrQ2FsbGVyCQEAAAALbXVzdE1hbmFnZXIAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIEAAAAFWNoZWNrTWFuYWdlclB1YmxpY0tleQkAAlkAAAABBQAAABdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQMJAAAAAAAAAgUAAAAVY2hlY2tNYW5hZ2VyUHVibGljS2V5BQAAABVjaGVja01hbmFnZXJQdWJsaWNLZXkJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAAAAAUAAAAXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAADmNvbmZpcm1NYW5hZ2VyAAAAAAQAAAACcG0JAQAAAB1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAAAAAEAAAABWhhc1BNAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAAnBtBgkAAAIAAAABAgAAABJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAAAAAAIFAAAABWhhc1BNBQAAAAVoYXNQTQQAAAAHY2hlY2tQTQMJAAAAAAAAAggFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQEAAAAFdmFsdWUAAAABBQAAAAJwbQYJAAACAAAAAQIAAAAbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAAAAAACBQAAAAdjaGVja1BNBQAAAAdjaGVja1BNCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABNrZXlNYW5hZ2VyUHVibGljS2V5AAAAAAkAAlgAAAABCQEAAAAFdmFsdWUAAAABBQAAAAJwbQkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABCQEAAAAaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAAAABQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAVzdGFrZQAAAAADCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAANGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAJbHBBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADGxwQXNzZXRJZFN0cgkAAlgAAAABBQAAAAlscEFzc2V0SWQEAAAABmFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABBQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQAAAAxscEFzc2V0SWRTdHIEAAAACWNhbGxlclN0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJBZGRyZXNzU3RyAwkAAAAAAAACBQAAAAljYWxsZXJTdHIFAAAADnBvb2xBZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAAJY2FsbGVyU3RyBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAANJHQwMTk2MzAxOTc0NwkBAAAAEHJlZnJlc2hJTlRFR1JBTFMAAAAEBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA5wb29sQWRkcmVzc1N0cgUAAAAGYW1vdW50BAAAABB3eFRvQ2xhaW1Vc2VyTmV3CAUAAAANJHQwMTk2MzAxOTc0NwAAAAJfMQQAAAANaW50ZWdyYWxTVEFURQgFAAAADSR0MDE5NjMwMTk3NDcAAAACXzIEAAAABWRlYnVnCAUAAAANJHQwMTk2MzAxOTc0NwAAAAJfMwQAAAAIbGlzdE5hbWUJAQAAABBnZXRVc2Vyc0xpc3ROYW1lAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAtsaXN0QWN0aW9ucwMJAQAAAAxjb250YWluc05vZGUAAAACBQAAAAhsaXN0TmFtZQUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAkBAAAAEWluc2VydE5vZGVBY3Rpb25zAAAAAgUAAAAIbGlzdE5hbWUFAAAADnVzZXJBZGRyZXNzU3RyCQAETgAAAAIJAAROAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPc3Rha2VkQnlVc2VyS0VZCQAAZAAAAAIFAAAADHN0YWtlZEJ5VXNlcgUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5zdGFrZWRUb3RhbEtFWQkAAGQAAAACBQAAAAtzdGFrZWRUb3RhbAUAAAAGYW1vdW50CQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAVzdGFrZQUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgUAAAAGYW1vdW50CAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAANuaWwFAAAADWludGVncmFsU1RBVEUFAAAAC2xpc3RBY3Rpb25zAAAAAWkBAAAAB3Vuc3Rha2UAAAACAAAADGxwQXNzZXRJZFN0cgAAAAZhbW91bnQEAAAACWxwQXNzZXRJZAkAAlkAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABBQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQAAAAxscEFzc2V0SWRTdHIEAAAACXBvb2xBZGRvbgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzCQEAAAAWa2V5U3RhYmxlUG9vbEFkZG9uQWRkcgAAAAAFAAAADnBvb2xBZGRyZXNzU3RyBAAAAAljYWxsZXJTdHIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgMDCQAAAAAAAAIFAAAACWNhbGxlclN0cgUAAAAOcG9vbEFkZHJlc3NTdHIGCQAAAAAAAAIFAAAACWNhbGxlclN0cgUAAAAJcG9vbEFkZG9uCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAAJY2FsbGVyU3RyBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAANJHQwMjEwODIyMTIwMAkBAAAAEHJlZnJlc2hJTlRFR1JBTFMAAAAEBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA5wb29sQWRkcmVzc1N0cgkBAAAAAS0AAAABBQAAAAZhbW91bnQEAAAAEHd4VG9DbGFpbVVzZXJOZXcIBQAAAA0kdDAyMTA4MjIxMjAwAAAAAl8xBAAAAA1pbnRlZ3JhbFNUQVRFCAUAAAANJHQwMjEwODIyMTIwMAAAAAJfMgQAAAAFZGVidWcIBQAAAA0kdDAyMTA4MjIxMjAwAAAAAl8zBAAAAAhsaXN0TmFtZQkBAAAAEGdldFVzZXJzTGlzdE5hbWUAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAC2xpc3RBY3Rpb25zAwkBAAAADGNvbnRhaW5zTm9kZQAAAAIFAAAACGxpc3ROYW1lBQAAAA51c2VyQWRkcmVzc1N0cgkBAAAAEWRlbGV0ZU5vZGVBY3Rpb25zAAAAAgUAAAAIbGlzdE5hbWUFAAAADnVzZXJBZGRyZXNzU3RyBQAAAANuaWwDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMc3Rha2VkQnlVc2VyCQAAAgAAAAECAAAAJHBhc3NlZCBhbW91bnQgaXMgbGVzcyB0aGVuIGF2YWlsYWJsZQkABE4AAAACCQAETgAAAAIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD3N0YWtlZEJ5VXNlcktFWQkAAGUAAAACBQAAAAxzdGFrZWRCeVVzZXIFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOc3Rha2VkVG90YWxLRVkJAABlAAAAAgUAAAALc3Rha2VkVG90YWwFAAAABmFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAAJbHBBc3NldElkCQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAd1bnN0YWtlBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBQAAAAZhbW91bnQIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAUAAAANaW50ZWdyYWxTVEFURQUAAAALbGlzdEFjdGlvbnMAAAABaQEAAAAHY2xhaW1XeAAAAAEAAAAMbHBBc3NldElkU3RyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAABnJlc3VsdAkAA/wAAAAEBQAAAAR0aGlzAgAAAA9jbGFpbVd4SU5URVJOQUwJAARMAAAAAgUAAAAMbHBBc3NldElkU3RyCQAETAAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAANuaWwFAAAAA25pbAkABRQAAAACBQAAAANuaWwFAAAABnJlc3VsdAAAAAFpAQAAAA9jbGFpbVd4SU5URVJOQUwAAAACAAAADGxwQXNzZXRJZFN0cgAAAA51c2VyQWRkcmVzc1N0cgQAAAALY2hlY2tDYWxsZXIJAQAAAAhtdXN0VGhpcwAAAAEFAAAAAWkDCQAAAAAAAAIFAAAAC2NoZWNrQ2FsbGVyBQAAAAtjaGVja0NhbGxlcgQAAAALdXNlckFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAA51c2VyQWRkcmVzc1N0cgIAAAAlY2xhaW1XeElOVEVSTkFMOiBpbnZhbGlkIHVzZXIgYWRkcmVzcwQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAACZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQY2xhaW1lZEJ5VXNlcktFWQkBAAAAEGtleUNsYWltZWRCeVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAAA9jbGFpbWVkVG90YWxLRVkJAQAAAA9rZXlDbGFpbWVkVG90YWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAQAAABlrZXlDbGFpbWVkQnlVc2VyTWluUmV3YXJkAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAbY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkS0VZCQEAAAAba2V5Q2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAANY2xhaW1lZEJ5VXNlcgkAATYAAAABCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAQY2xhaW1lZEJ5VXNlcktFWQQAAAAWY2xhaW1lZEJ5VXNlck1pblJld2FyZAkAATYAAAABCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAZY2xhaW1lZEJ5VXNlck1pblJld2FyZEtFWQQAAAAYY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkCQABNgAAAAEJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABtjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmRLRVkEAAAADGNsYWltZWRUb3RhbAkBAAAAGWdldEJpZ0ludEZyb21TdHJpbmdPclplcm8AAAACBQAAAAR0aGlzBQAAAA9jbGFpbWVkVG90YWxLRVkEAAAADSR0MDIyOTQyMjMwNTQJAQAAABByZWZyZXNoSU5URUdSQUxTAAAABAUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAOcG9vbEFkZHJlc3NTdHIAAAAAAAAAAAAEAAAAEHd4VG9DbGFpbVVzZXJOZXcIBQAAAA0kdDAyMjk0MjIzMDU0AAAAAl8xBAAAAA1pbnRlZ3JhbFNUQVRFCAUAAAANJHQwMjI5NDIyMzA1NAAAAAJfMgQAAAAFZGVidWcIBQAAAA0kdDAyMjk0MjIzMDU0AAAAAl8zBAAAABBhdmFpbGFibGVUb0NsYWltCQABOAAAAAIFAAAAEHd4VG9DbGFpbVVzZXJOZXcFAAAADWNsYWltZWRCeVVzZXIDCQABQAAAAAIFAAAACnplcm9CaWdJbnQFAAAAEGF2YWlsYWJsZVRvQ2xhaW0JAAACAAAAAQIAAAAQbm90aGluZyB0byBjbGFpbQQAAAASd3hBbW91bnRCb29zdFRvdGFsCQEAAAAFYXNJbnQAAAABCQABkQAAAAIJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAAEGJvb3N0aW5nQ29udHJhY3QCAAAADGNsYWltV3hCb29zdAkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAAA25pbAUAAAADbmlsAAAAAAAAAAAABAAAAA1taW5SZXdhcmRQYXJ0BQAAABBhdmFpbGFibGVUb0NsYWltBAAAAA9ib29zdFJld2FyZFBhcnQJAAGZAAAAAQkABEwAAAACCQABOQAAAAIFAAAADW1pblJld2FyZFBhcnQJAAE2AAAAAQAAAAAAAAAAAgkABEwAAAACCQABNgAAAAEFAAAAEnd4QW1vdW50Qm9vc3RUb3RhbAUAAAADbmlsBAAAAAl3eEFzc2V0SWQJAQAAAAxhc0J5dGVWZWN0b3IAAAABCQABkQAAAAIJAQAAAAlhc0FueUxpc3QAAAABCQAD/AAAAAQFAAAAEGVtaXNzaW9uQ29udHJhY3QCAAAABGVtaXQJAARMAAAAAgkAAaAAAAABBQAAAA1taW5SZXdhcmRQYXJ0BQAAAANuaWwFAAAAA25pbAAAAAAAAAAAAAQAAAAJZW1pdEJvb3N0CQEAAAAJYXNBbnlMaXN0AAAAAQkAA/wAAAAEBQAAABBlbWlzc2lvbkNvbnRyYWN0AgAAAARlbWl0CQAETAAAAAIJAAGgAAAAAQUAAAAPYm9vc3RSZXdhcmRQYXJ0BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAJZW1pdEJvb3N0BQAAAAllbWl0Qm9vc3QEAAAAEmNsYWltZWRCeVVzZXJWYWx1ZQkAATcAAAACBQAAAA1jbGFpbWVkQnlVc2VyBQAAABBhdmFpbGFibGVUb0NsYWltBAAAAB5jbGFpbWVkQnlVc2VyTWluUmV3YXJkUGx1c1BhcnQJAAE3AAAAAgUAAAAWY2xhaW1lZEJ5VXNlck1pblJld2FyZAUAAAANbWluUmV3YXJkUGFydAQAAAArY2xhaW1lZEJ5VXNlckJvb3N0UmV3YXJkUGx1c0Jvb3N0UmV3YXJkUGFydAkAATcAAAACBQAAABZjbGFpbWVkQnlVc2VyTWluUmV3YXJkBQAAAA1taW5SZXdhcmRQYXJ0BAAAACBjbGFpbWVkVG90YWxQbHVzQXZhaWxhYmxlVG9DbGFpbQkAATcAAAACBQAAABZjbGFpbWVkQnlVc2VyTWluUmV3YXJkBQAAAA1taW5SZXdhcmRQYXJ0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEGNsYWltZWRCeVVzZXJLRVkJAAGmAAAAAQUAAAASY2xhaW1lZEJ5VXNlclZhbHVlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAGWNsYWltZWRCeVVzZXJNaW5SZXdhcmRLRVkJAAGmAAAAAQUAAAAeY2xhaW1lZEJ5VXNlck1pblJld2FyZFBsdXNQYXJ0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAG2NsYWltZWRCeVVzZXJCb29zdFJld2FyZEtFWQkAAaYAAAABBQAAACtjbGFpbWVkQnlVc2VyQm9vc3RSZXdhcmRQbHVzQm9vc3RSZXdhcmRQYXJ0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAD2NsYWltZWRUb3RhbEtFWQkAAaYAAAABBQAAACBjbGFpbWVkVG90YWxQbHVzQXZhaWxhYmxlVG9DbGFpbQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAt1c2VyQWRkcmVzcwkAAaAAAAABBQAAAA1taW5SZXdhcmRQYXJ0BQAAAAl3eEFzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MJAAGgAAAAAQUAAAAPYm9vc3RSZXdhcmRQYXJ0BQAAAAl3eEFzc2V0SWQJAARMAAAAAgkBAAAAFU9wZXJhdGlvbkhpc3RvcnlFbnRyeQAAAAUCAAAABWNsYWltBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyCQABoAAAAAEFAAAAEGF2YWlsYWJsZVRvQ2xhaW0IBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAD2NsYWltV3hSRUFET05MWQAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAABBjbGFpbWVkQnlVc2VyS0VZCQEAAAAQa2V5Q2xhaW1lZEJ5VXNlcgAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAADHN0YWtlZEJ5VXNlcgkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA9zdGFrZWRCeVVzZXJLRVkEAAAAC3N0YWtlZFRvdGFsCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAADnN0YWtlZFRvdGFsS0VZBAAAAA1jbGFpbWVkQnlVc2VyCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAQY2xhaW1lZEJ5VXNlcktFWQQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAACZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAKcG9vbFdlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABBQAAAA5wb29sQWRkcmVzc1N0cgQAAAASd3hFbWlzc2lvblBlckJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudAAAAAAEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAAAxwYXNzZWRCbG9ja3MDCQAAZgAAAAIFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawUAAAAGaGVpZ2h0AAAAAAAAAAAACQAAZQAAAAIFAAAABmhlaWdodAUAAAASZW1pc3Npb25TdGFydEJsb2NrBAAAAA5wb29sV3hFbWlzc2lvbgkAAGsAAAADCQAAaAAAAAIFAAAAEnd4RW1pc3Npb25QZXJCbG9jawUAAAAMcGFzc2VkQmxvY2tzBQAAAApwb29sV2VpZ2h0BQAAAA5QT09MV0VJR0hUTVVMVAQAAAAMdXNlcld4UmV3YXJkCQAAawAAAAMFAAAADnBvb2xXeEVtaXNzaW9uBQAAAAxzdGFrZWRCeVVzZXIFAAAAC3N0YWtlZFRvdGFsBAAAAA0kdDAyNTY1NDI1NzY2CQEAAAAQcmVmcmVzaElOVEVHUkFMUwAAAAQFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFk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", "chainId": 84, "height": 2108745, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 784Qy6fJe7f6oYqpVne9HBZp6nTn3cUhaePbQMk8uUop Next: 7CoNvwN1vHcEVPuobf4fTVx5xNAoF5A4G93c8pRBDkWv Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = 8 | |
5 | 5 | ||
6 | 6 | let b = 100000000 | |
7 | 7 | ||
8 | 8 | let c = 18 | |
9 | 9 | ||
10 | 10 | let d = toBigInt(1000000000000000000) | |
11 | 11 | ||
12 | 12 | let e = "__" | |
13 | 13 | ||
14 | 14 | let f = b | |
15 | 15 | ||
16 | 16 | let g = toBigInt(0) | |
17 | 17 | ||
18 | 18 | let h = toBigInt(1) | |
19 | 19 | ||
20 | 20 | func i (j) = { | |
21 | 21 | let k = j | |
22 | 22 | if ($isInstanceOf(k, "List[Any]")) | |
23 | 23 | then { | |
24 | 24 | let l = k | |
25 | 25 | l | |
26 | 26 | } | |
27 | 27 | else throw("fail to cast into List[Any]") | |
28 | 28 | } | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func m (j) = { | |
32 | 32 | let k = j | |
33 | 33 | if ($isInstanceOf(k, "Int")) | |
34 | 34 | then { | |
35 | 35 | let n = k | |
36 | 36 | n | |
37 | 37 | } | |
38 | 38 | else throw("fail to cast into Int") | |
39 | 39 | } | |
40 | 40 | ||
41 | 41 | ||
42 | 42 | func o (j) = { | |
43 | 43 | let k = j | |
44 | 44 | if ($isInstanceOf(k, "String")) | |
45 | 45 | then { | |
46 | 46 | let p = k | |
47 | 47 | p | |
48 | 48 | } | |
49 | 49 | else throw("fail to cast into Int") | |
50 | 50 | } | |
51 | 51 | ||
52 | 52 | ||
53 | 53 | func q (j) = { | |
54 | 54 | let k = j | |
55 | 55 | if ($isInstanceOf(k, "ByteVector")) | |
56 | 56 | then { | |
57 | 57 | let r = k | |
58 | 58 | r | |
59 | 59 | } | |
60 | 60 | else throw("fail to cast into Int") | |
61 | 61 | } | |
62 | 62 | ||
63 | 63 | ||
64 | 64 | func s (t,u) = valueOrErrorMessage(getString(t, u), (("mandatory this." + u) + " is not defined")) | |
65 | 65 | ||
66 | 66 | ||
67 | 67 | func v (t,u) = valueOrErrorMessage(getString(t, u), (((("mandatory " + toString(t)) + ".") + u) + " is not defined")) | |
68 | 68 | ||
69 | 69 | ||
70 | 70 | func w (t,u) = valueOrElse(getInteger(t, u), 0) | |
71 | 71 | ||
72 | 72 | ||
73 | 73 | func x (t,u,y) = valueOrElse(getInteger(t, u), y) | |
74 | 74 | ||
75 | 75 | ||
76 | 76 | func z (t,u) = valueOrErrorMessage(getInteger(t, u), (("mandatory this." + u) + " is not defined")) | |
77 | 77 | ||
78 | 78 | ||
79 | 79 | func A (t,u) = value(parseBigInt(valueOrElse(getString(t, u), "0"))) | |
80 | 80 | ||
81 | 81 | ||
82 | 82 | func B (t,u,y) = { | |
83 | 83 | let k = getString(t, u) | |
84 | 84 | if ($isInstanceOf(k, "String")) | |
85 | 85 | then { | |
86 | 86 | let C = k | |
87 | 87 | value(parseBigInt(C)) | |
88 | 88 | } | |
89 | 89 | else if ($isInstanceOf(k, "Unit")) | |
90 | 90 | then y | |
91 | 91 | else throw("Match error") | |
92 | 92 | } | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | func D (E,F) = fraction(toBigInt(E), d, toBigInt(F)) | |
96 | 96 | ||
97 | 97 | ||
98 | 98 | func G (j,H) = toInt(fraction(j, toBigInt(H), d)) | |
99 | 99 | ||
100 | 100 | ||
101 | 101 | func I () = "%s%s__config__factoryAddress" | |
102 | 102 | ||
103 | 103 | ||
104 | 104 | func J () = "%s__votingEmissionContract" | |
105 | 105 | ||
106 | 106 | ||
107 | 107 | let K = 1 | |
108 | 108 | ||
109 | 109 | let L = 2 | |
110 | 110 | ||
111 | 111 | let M = 3 | |
112 | 112 | ||
113 | 113 | let N = 4 | |
114 | 114 | ||
115 | 115 | let O = 5 | |
116 | 116 | ||
117 | 117 | let P = 6 | |
118 | 118 | ||
119 | 119 | let Q = 7 | |
120 | 120 | ||
121 | 121 | func R () = "%s__factoryConfig" | |
122 | 122 | ||
123 | 123 | ||
124 | 124 | func S () = "%s__managerPublicKey" | |
125 | 125 | ||
126 | 126 | ||
127 | 127 | func T () = "%s__migratorPublicKey" | |
128 | 128 | ||
129 | 129 | ||
130 | 130 | func U () = "%s__pendingManagerPublicKey" | |
131 | 131 | ||
132 | 132 | ||
133 | 133 | func V () = "%s__stablePoolAddonAddr" | |
134 | 134 | ||
135 | 135 | ||
136 | 136 | func W (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e) | |
137 | 137 | ||
138 | 138 | ||
139 | 139 | func Y () = "%s__lpTokensList" | |
140 | 140 | ||
141 | 141 | ||
142 | 142 | func Z (X) = makeString(["%s%s%s", X, "mappings__lpAsset2PoolContract"], e) | |
143 | 143 | ||
144 | 144 | ||
145 | 145 | func aa (ab) = makeString(["%s%s", "poolWeight", ab], e) | |
146 | 146 | ||
147 | 147 | ||
148 | 148 | func ac (ad) = split(valueOrElse(getString(ad, Y()), ""), e) | |
149 | 149 | ||
150 | 150 | ||
151 | 151 | func ae (ad) = split(v(ad, R()), e) | |
152 | 152 | ||
153 | 153 | ||
154 | 154 | func af (ag) = addressFromStringValue(ag[L]) | |
155 | 155 | ||
156 | 156 | ||
157 | 157 | func ah (ag) = addressFromStringValue(ag[O]) | |
158 | 158 | ||
159 | 159 | ||
160 | 160 | func ai (ag) = addressFromStringValue(ag[K]) | |
161 | 161 | ||
162 | 162 | ||
163 | 163 | func aj () = "%s%s__ratePerBlock__current" | |
164 | 164 | ||
165 | 165 | ||
166 | 166 | func ak () = "%s%s__ratePerBlockMax__current" | |
167 | 167 | ||
168 | 168 | ||
169 | 169 | func al () = "%s%s__emission__startBlock" | |
170 | 170 | ||
171 | 171 | ||
172 | 172 | func am () = "%s%s__emission__duration" | |
173 | 173 | ||
174 | 174 | ||
175 | 175 | func an () = "%s%s__emission__endBlock" | |
176 | 176 | ||
177 | 177 | ||
178 | 178 | func ao (ap,aq) = makeString(["%s%s%s__staked", ap, aq], e) | |
179 | 179 | ||
180 | 180 | ||
181 | 181 | func ar (aq) = ("%s%s%s__staked__total__" + aq) | |
182 | 182 | ||
183 | 183 | ||
184 | 184 | func as (aq,ap) = makeString(["%s%s%s__claimed", ap, aq], e) | |
185 | 185 | ||
186 | 186 | ||
187 | 187 | func at (aq,ap) = makeString(["%s%s%s__claimedMinReward", ap, aq], e) | |
188 | 188 | ||
189 | 189 | ||
190 | 190 | func au (aq,ap) = makeString(["%s%s%s__claimedBoostReward", ap, aq], e) | |
191 | 191 | ||
192 | 192 | ||
193 | 193 | func av (aq) = makeString(["%s%s%s__claimed__total", aq], e) | |
194 | 194 | ||
195 | 195 | ||
196 | 196 | func aw (u) = valueOrElse(getInteger(this, u), 0) | |
197 | 197 | ||
198 | 198 | ||
199 | 199 | func ax (ay) = makeString(["%s%s%s", ay, "total", "bal"], e) | |
200 | 200 | ||
201 | 201 | ||
202 | 202 | func az (ay,aA) = makeString(["%s%s%s", ay, aA, "bal"], e) | |
203 | 203 | ||
204 | 204 | ||
205 | 205 | func aB (ay) = makeString(["%s%s%s", ay, "total", "balINT"], e) | |
206 | 206 | ||
207 | 207 | ||
208 | 208 | func aC (ay,aA) = makeString(["%s%s%s", ay, aA, "balINT"], e) | |
209 | 209 | ||
210 | 210 | ||
211 | 211 | func aD (ay) = makeString(["%s%s%s", ay, "total", "lastUpd"], e) | |
212 | 212 | ||
213 | 213 | ||
214 | 214 | func aE (ay,aA) = makeString(["%s%s%s", ay, aA, "lastUpd"], e) | |
215 | 215 | ||
216 | 216 | ||
217 | 217 | func aF (ay) = makeString(["%s%s%s%s", ay, "common", "lpInt"], e) | |
218 | 218 | ||
219 | 219 | ||
220 | 220 | func aG (ay) = makeString(["%s%s%s%s", ay, "common", "lpIntH"], e) | |
221 | 221 | ||
222 | 222 | ||
223 | 223 | func aH (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpInt"], e) | |
224 | 224 | ||
225 | 225 | ||
226 | 226 | func aI (ay,aA) = makeString(["%s%s%s%s", ay, aA, "lpIntH"], e) | |
227 | 227 | ||
228 | 228 | ||
229 | 229 | func aJ (ay) = makeString(["%s", ay, "wxPerLp"], e) | |
230 | 230 | ||
231 | 231 | ||
232 | 232 | func aK (ay) = makeString(["%s", ay, "wxPerLpX18"], e) | |
233 | 233 | ||
234 | 234 | ||
235 | 235 | func aL (ay,aA) = makeString(["%s%s%s%s", ay, aA, "uIntL"], e) | |
236 | 236 | ||
237 | 237 | ||
238 | 238 | func aM (aN,aA,aO) = makeString(["%s%s%s%s__history", aN, aA, aO], e) | |
239 | 239 | ||
240 | 240 | ||
241 | 241 | func aP (aA,ay,aN,aQ) = makeString(["%s%s%s%d%d%d", aA, ay, aN, toString(height), toString(lastBlock.timestamp), toString(aQ)], e) | |
242 | 242 | ||
243 | 243 | ||
244 | 244 | func aR (aN,aA,ay,aQ,aS) = StringEntry(aM(aN, aA, toBase58String(aS)), aP(aA, ay, aN, aQ)) | |
245 | 245 | ||
246 | 246 | ||
247 | 247 | let aT = s(this, I()) | |
248 | 248 | ||
249 | 249 | let aU = addressFromStringValue(aT) | |
250 | 250 | ||
251 | 251 | let ag = ae(aU) | |
252 | 252 | ||
253 | 253 | let aV = ah(ag) | |
254 | 254 | ||
255 | 255 | let aW = af(ag) | |
256 | 256 | ||
257 | 257 | func aX (ay) = makeString(["%s%s", ay, "nextUser"], e) | |
258 | 258 | ||
259 | 259 | ||
260 | 260 | func aY (ay) = makeString(["users", ay], e) | |
261 | 261 | ||
262 | 262 | ||
263 | 263 | func aZ (ba) = makeString(["%s%s%s", ba, "head"], e) | |
264 | 264 | ||
265 | 265 | ||
266 | 266 | func bb (ba) = makeString(["%s%s%s", ba, "size"], e) | |
267 | 267 | ||
268 | 268 | ||
269 | 269 | func bc (ba,bd) = makeString(["%s%s%s%s", ba, bd, "prev"], e) | |
270 | 270 | ||
271 | 271 | ||
272 | 272 | func be (ba,bd) = makeString(["%s%s%s%s", ba, bd, "next"], e) | |
273 | 273 | ||
274 | 274 | ||
275 | 275 | func bf (ba,bd) = { | |
276 | 276 | let bg = getString(this, aZ(ba)) | |
277 | 277 | let bh = getString(this, bc(ba, bd)) | |
278 | 278 | let bi = getString(this, be(ba, bd)) | |
279 | 279 | if (if ((bd == valueOrElse(bg, ""))) | |
280 | 280 | then true | |
281 | 281 | else (bh != unit)) | |
282 | 282 | then true | |
283 | 283 | else (bi != unit) | |
284 | 284 | } | |
285 | 285 | ||
286 | 286 | ||
287 | 287 | func bj (ba,bd) = { | |
288 | 288 | let bg = getString(this, aZ(ba)) | |
289 | 289 | let bk = valueOrElse(getInteger(this, bb(ba)), 0) | |
290 | 290 | let bl = if (!(bf(ba, bd))) | |
291 | 291 | then true | |
292 | 292 | else throw("Node exists") | |
293 | 293 | if ((bl == bl)) | |
294 | 294 | then (([IntegerEntry(bb(ba), (bk + 1))] ++ (if ((bg != unit)) | |
295 | 295 | then [StringEntry(be(ba, bd), value(bg)), StringEntry(bc(ba, value(bg)), bd)] | |
296 | 296 | else nil)) ++ [StringEntry(aZ(ba), bd)]) | |
297 | 297 | else throw("Strict value is not equal to itself.") | |
298 | 298 | } | |
299 | 299 | ||
300 | 300 | ||
301 | 301 | func bm (ba,bd) = { | |
302 | 302 | let bg = getString(this, aZ(ba)) | |
303 | 303 | let bk = valueOrElse(getInteger(this, bb(ba)), 0) | |
304 | 304 | let bh = getString(this, bc(ba, bd)) | |
305 | 305 | let bi = getString(this, be(ba, bd)) | |
306 | 306 | ([IntegerEntry(bb(ba), (bk - 1))] ++ (if (if ((bh != unit)) | |
307 | 307 | then (bi != unit) | |
308 | 308 | else false) | |
309 | 309 | then [StringEntry(be(ba, value(bh)), value(bi)), StringEntry(bc(ba, value(bi)), value(bh)), DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, bd))] | |
310 | 310 | else if ((bi != unit)) | |
311 | 311 | then [StringEntry(aZ(ba), value(bi)), DeleteEntry(be(ba, bd)), DeleteEntry(bc(ba, value(bi)))] | |
312 | 312 | else if ((bh != unit)) | |
313 | 313 | then [DeleteEntry(bc(ba, bd)), DeleteEntry(be(ba, value(bh)))] | |
314 | 314 | else if ((bd == valueOrElse(bg, ""))) | |
315 | 315 | then [DeleteEntry(aZ(ba))] | |
316 | 316 | else throw(((("invalid node: " + ba) + ".") + bd)))) | |
317 | 317 | } | |
318 | 318 | ||
319 | 319 | ||
320 | 320 | func bn (bo,bp,bq,br) = if (if ((bp == g)) | |
321 | 321 | then (bo > g) | |
322 | 322 | else false) | |
323 | 323 | then g | |
324 | 324 | else if ((bo == g)) | |
325 | 325 | then bq | |
326 | 326 | else if (if ((bp > g)) | |
327 | 327 | then (bo > g) | |
328 | 328 | else false) | |
329 | 329 | then value(parseBigInt(s(this, br))) | |
330 | 330 | else throw("calcWxPerLpIntegralUserLast: unexpected state") | |
331 | 331 | ||
332 | 332 | ||
333 | 333 | func bs (aq,bt,bu) = { | |
334 | 334 | let bv = ar(aq) | |
335 | 335 | let bw = toBigInt(aw(bv)) | |
336 | 336 | let bx = if ((bw == g)) | |
337 | 337 | then h | |
338 | 338 | else bw | |
339 | 339 | let by = getIntegerValue(aU, aa(bt)) | |
340 | 340 | let bz = z(aV, al()) | |
341 | 341 | let bA = 1000 | |
342 | 342 | let bB = (z(aV, aj()) * bA) | |
343 | 343 | let bC = fraction(bB, by, (f * 3)) | |
344 | 344 | let bD = aF(aq) | |
345 | 345 | let bE = aG(aq) | |
346 | 346 | let bF = aJ(aq) | |
347 | 347 | let bG = x(this, bE, bz) | |
348 | 348 | let bH = A(this, bD) | |
349 | 349 | let bI = 0 | |
350 | 350 | let bJ = max([(height - bG), 0]) | |
351 | 351 | let bK = if ((bI != 0)) | |
352 | 352 | then toBigInt(bI) | |
353 | 353 | else fraction(toBigInt(bC), toBigInt(b), bx) | |
354 | 354 | let bL = (bw + toBigInt(bu)) | |
355 | 355 | let bM = if ((bL == g)) | |
356 | 356 | then h | |
357 | 357 | else bL | |
358 | 358 | let bq = (bH + (bK * toBigInt(bJ))) | |
359 | 359 | let bN = (toBigInt(bC) / bM) | |
360 | 360 | let bO = height | |
361 | 361 | let bP = makeString(["wxPerLpIntegralNew=", toString(bq), "dh=", toString(bJ), "wxPerLpX3=", toString(bK), "stakedTotal=", toString(bw), "poolWxEmissionPerBlockX3=", toString(bC), "wxEmissionPerBlockX3=", toString(bB), "poolWeight=", toString(by)], "::") | |
362 | 362 | $Tuple3(bq, [StringEntry(bD, toString(bq)), IntegerEntry(bE, bO), StringEntry(bF, toString(bN))], bP) | |
363 | 363 | } | |
364 | 364 | ||
365 | 365 | ||
366 | 366 | func bQ (aq,ap,bt,bu) = { | |
367 | 367 | let bR = bs(aq, bt, bu) | |
368 | 368 | let bq = bR._1 | |
369 | 369 | let bS = bR._2 | |
370 | 370 | let bT = bR._3 | |
371 | 371 | let bA = 1000 | |
372 | 372 | let bU = ao(ap, aq) | |
373 | 373 | let bo = aw(bU) | |
374 | 374 | let bV = aH(aq, ap) | |
375 | 375 | let bW = aI(aq, ap) | |
376 | 376 | let br = aL(aq, ap) | |
377 | 377 | let bX = A(this, bV) | |
378 | 378 | let bp = w(this, bW) | |
379 | 379 | let bY = bn(toBigInt(bo), toBigInt(bp), bq, br) | |
380 | 380 | let bZ = (b * bA) | |
381 | 381 | let ca = (bX + fraction((bq - bY), toBigInt(bo), toBigInt(bZ))) | |
382 | 382 | let cb = bq | |
383 | 383 | let cc = height | |
384 | 384 | let bP = makeString(["wxPerLpIntegralUserLastUpdHeightOrZero=", toString(bp), "this.getStringOrFail(wxPerLpIntegralUserLastKEY).parseBigInt().value()=", toString(value(parseBigInt(s(this, br)))), "wxPerLpIntegralNew=", toString(bq), "wxToClaimUserNew=", toString(ca), "wxPerLpIntegralUserLast=", toString(bY), "stakedByUser=", toString(bo), "poolDEBUG=", bT, "height=", toString(height)], "::") | |
385 | 385 | $Tuple3(ca, (bS ++ [StringEntry(bV, toString(ca)), IntegerEntry(bW, cc), StringEntry(br, toString(cb))]), bP) | |
386 | 386 | } | |
387 | 387 | ||
388 | 388 | ||
389 | 389 | func cd () = { | |
390 | 390 | let k = getString(S()) | |
391 | 391 | if ($isInstanceOf(k, "String")) | |
392 | 392 | then { | |
393 | 393 | let C = k | |
394 | 394 | fromBase58String(C) | |
395 | 395 | } | |
396 | 396 | else if ($isInstanceOf(k, "Unit")) | |
397 | 397 | then unit | |
398 | 398 | else throw("Match error") | |
399 | 399 | } | |
400 | 400 | ||
401 | 401 | ||
402 | 402 | func ce () = { | |
403 | 403 | let k = getString(T()) | |
404 | 404 | if ($isInstanceOf(k, "String")) | |
405 | 405 | then { | |
406 | 406 | let C = k | |
407 | 407 | fromBase58String(C) | |
408 | 408 | } | |
409 | 409 | else if ($isInstanceOf(k, "Unit")) | |
410 | 410 | then unit | |
411 | 411 | else throw("Match error") | |
412 | 412 | } | |
413 | 413 | ||
414 | 414 | ||
415 | 415 | func cf () = { | |
416 | 416 | let k = getString(U()) | |
417 | 417 | if ($isInstanceOf(k, "String")) | |
418 | 418 | then { | |
419 | 419 | let C = k | |
420 | 420 | fromBase58String(C) | |
421 | 421 | } | |
422 | 422 | else if ($isInstanceOf(k, "Unit")) | |
423 | 423 | then unit | |
424 | 424 | else throw("Match error") | |
425 | 425 | } | |
426 | 426 | ||
427 | 427 | ||
428 | 428 | let cg = throw("Permission denied") | |
429 | 429 | ||
430 | 430 | func ch (ci) = if ((ci.caller == this)) | |
431 | 431 | then true | |
432 | 432 | else cg | |
433 | 433 | ||
434 | 434 | ||
435 | 435 | func cj (ci) = { | |
436 | 436 | let k = cd() | |
437 | 437 | if ($isInstanceOf(k, "ByteVector")) | |
438 | 438 | then { | |
439 | 439 | let ck = k | |
440 | 440 | if ((ci.callerPublicKey == ck)) | |
441 | 441 | then true | |
442 | 442 | else cg | |
443 | 443 | } | |
444 | 444 | else if ($isInstanceOf(k, "Unit")) | |
445 | 445 | then if ((ci.caller == this)) | |
446 | 446 | then true | |
447 | 447 | else cg | |
448 | 448 | else throw("Match error") | |
449 | 449 | } | |
450 | 450 | ||
451 | 451 | ||
452 | 452 | @Callable(ci) | |
453 | 453 | func constructor (cl) = { | |
454 | 454 | let cm = cj(ci) | |
455 | 455 | if ((cm == cm)) | |
456 | 456 | then [StringEntry(I(), cl)] | |
457 | 457 | else throw("Strict value is not equal to itself.") | |
458 | 458 | } | |
459 | 459 | ||
460 | 460 | ||
461 | 461 | ||
462 | 462 | @Callable(ci) | |
463 | 463 | func constructorV2 (cn) = { | |
464 | 464 | let co = [cj(ci), if ((addressFromString(cn) != unit)) | |
465 | 465 | then true | |
466 | 466 | else "invalid voting emission contract address"] | |
467 | 467 | if ((co == co)) | |
468 | 468 | then [StringEntry(J(), cn)] | |
469 | 469 | else throw("Strict value is not equal to itself.") | |
470 | 470 | } | |
471 | 471 | ||
472 | 472 | ||
473 | 473 | ||
474 | 474 | @Callable(ci) | |
475 | 475 | func setManager (cp) = { | |
476 | 476 | let cm = cj(ci) | |
477 | 477 | if ((cm == cm)) | |
478 | 478 | then { | |
479 | 479 | let cq = fromBase58String(cp) | |
480 | 480 | if ((cq == cq)) | |
481 | 481 | then [StringEntry(U(), cp)] | |
482 | 482 | else throw("Strict value is not equal to itself.") | |
483 | 483 | } | |
484 | 484 | else throw("Strict value is not equal to itself.") | |
485 | 485 | } | |
486 | 486 | ||
487 | 487 | ||
488 | 488 | ||
489 | 489 | @Callable(ci) | |
490 | 490 | func confirmManager () = { | |
491 | 491 | let cr = cf() | |
492 | 492 | let cs = if (isDefined(cr)) | |
493 | 493 | then true | |
494 | 494 | else throw("No pending manager") | |
495 | 495 | if ((cs == cs)) | |
496 | 496 | then { | |
497 | 497 | let ct = if ((ci.callerPublicKey == value(cr))) | |
498 | 498 | then true | |
499 | 499 | else throw("You are not pending manager") | |
500 | 500 | if ((ct == ct)) | |
501 | 501 | then [StringEntry(S(), toBase58String(value(cr))), DeleteEntry(U())] | |
502 | 502 | else throw("Strict value is not equal to itself.") | |
503 | 503 | } | |
504 | 504 | else throw("Strict value is not equal to itself.") | |
505 | 505 | } | |
506 | 506 | ||
507 | 507 | ||
508 | 508 | ||
509 | 509 | @Callable(ci) | |
510 | 510 | func stake () = if ((size(ci.payments) != 1)) | |
511 | 511 | then throw("invalid payment - exact one payment must be attached") | |
512 | 512 | else { | |
513 | 513 | let cu = ci.payments[0] | |
514 | 514 | let ay = value(cu.assetId) | |
515 | 515 | let aq = toBase58String(ay) | |
516 | 516 | let aQ = cu.amount | |
517 | 517 | let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq)) | |
518 | 518 | let cv = toString(ci.caller) | |
519 | 519 | let ap = if ((cv == bt)) | |
520 | 520 | then toString(ci.originCaller) | |
521 | 521 | else cv | |
522 | 522 | let bU = ao(ap, aq) | |
523 | 523 | let bv = ar(aq) | |
524 | 524 | let bo = aw(bU) | |
525 | 525 | let bw = aw(bv) | |
526 | 526 | let cw = bQ(aq, ap, bt, aQ) | |
527 | 527 | let ca = cw._1 | |
528 | 528 | let cx = cw._2 | |
529 | 529 | let bP = cw._3 | |
530 | 530 | let ba = aY(aq) | |
531 | 531 | let cy = if (bf(ba, ap)) | |
532 | 532 | then nil | |
533 | 533 | else bj(ba, ap) | |
534 | 534 | (([IntegerEntry(bU, (bo + aQ)), IntegerEntry(bv, (bw + aQ)), aR("stake", ap, aq, aQ, ci.transactionId)] ++ cx) ++ cy) | |
535 | 535 | } | |
536 | 536 | ||
537 | 537 | ||
538 | 538 | ||
539 | 539 | @Callable(ci) | |
540 | 540 | func unstake (aq,aQ) = { | |
541 | 541 | let ay = fromBase58String(aq) | |
542 | 542 | let bt = valueOrErrorMessage(getString(aU, W(aq)), ("unsupported lp asset " + aq)) | |
543 | 543 | let cz = valueOrElse(getString(this, V()), bt) | |
544 | 544 | let cv = toString(ci.caller) | |
545 | 545 | let ap = if (if ((cv == bt)) | |
546 | 546 | then true | |
547 | 547 | else (cv == cz)) | |
548 | 548 | then toString(ci.originCaller) | |
549 | 549 | else cv | |
550 | 550 | let bU = ao(ap, aq) | |
551 | 551 | let bv = ar(aq) | |
552 | 552 | let bo = aw(bU) | |
553 | 553 | let bw = aw(bv) | |
554 | 554 | let cA = bQ(aq, ap, bt, -(aQ)) | |
555 | 555 | let ca = cA._1 | |
556 | 556 | let cx = cA._2 | |
557 | 557 | let bP = cA._3 | |
558 | 558 | let ba = aY(aq) | |
559 | 559 | let cy = if (bf(ba, ap)) | |
560 | 560 | then bm(ba, ap) | |
561 | 561 | else nil | |
562 | 562 | if ((aQ > bo)) | |
563 | 563 | then throw("passed amount is less then available") | |
564 | 564 | else (([IntegerEntry(bU, (bo - aQ)), IntegerEntry(bv, (bw - aQ)), ScriptTransfer(ci.caller, aQ, ay), aR("unstake", ap, aq, aQ, ci.transactionId)] ++ cx) ++ cy) | |
565 | 565 | } | |
566 | 566 | ||
567 | 567 | ||
568 | 568 | ||
569 | 569 | @Callable(ci) | |
570 | 570 | func claimWx (aq) = { | |
571 | 571 | let ap = toString(ci.caller) | |
572 | 572 | let cB = invoke(this, "claimWxINTERNAL", [aq, ap], nil) | |
573 | 573 | $Tuple2(nil, cB) | |
574 | 574 | } | |
575 | 575 | ||
576 | 576 | ||
577 | 577 | ||
578 | 578 | @Callable(ci) | |
579 | 579 | func claimWxINTERNAL (aq,ap) = { | |
580 | 580 | let cm = ch(ci) | |
581 | 581 | if ((cm == cm)) | |
582 | 582 | then { | |
583 | 583 | let aA = valueOrErrorMessage(addressFromString(ap), "claimWxINTERNAL: invalid user address") | |
584 | 584 | let bt = v(aU, Z(aq)) | |
585 | 585 | let cC = as(aq, ap) | |
586 | 586 | let cD = av(aq) | |
587 | 587 | let cE = at(aq, ap) | |
588 | 588 | let cF = au(aq, ap) | |
589 | 589 | let cG = toBigInt(w(this, cC)) | |
590 | 590 | let cH = toBigInt(w(this, cE)) | |
591 | 591 | let cI = toBigInt(w(this, cF)) | |
592 | 592 | let cJ = A(this, cD) | |
593 | 593 | let cK = bQ(aq, ap, bt, 0) | |
594 | 594 | let ca = cK._1 | |
595 | 595 | let cx = cK._2 | |
596 | 596 | let bP = cK._3 | |
597 | 597 | let cL = (ca - cG) | |
598 | 598 | if ((g >= cL)) | |
599 | 599 | then throw("nothing to claim") | |
600 | 600 | else { | |
601 | 601 | let cM = m(i(invoke(aW, "claimWxBoost", [aq, ap], nil))[0]) | |
602 | 602 | let cN = cL | |
603 | 603 | let cO = min([(cN * toBigInt(2)), toBigInt(cM)]) | |
604 | 604 | let cP = q(i(invoke(aV, "emit", [toInt(cN)], nil))[0]) | |
605 | 605 | let cQ = i(invoke(aV, "emit", [toInt(cO)], nil)) | |
606 | 606 | if ((cQ == cQ)) | |
607 | 607 | then { | |
608 | 608 | let cR = (cG + cL) | |
609 | 609 | let cS = (cH + cN) | |
610 | 610 | let cT = (cH + cN) | |
611 | 611 | let cU = (cH + cN) | |
612 | 612 | [StringEntry(cC, toString(cR)), StringEntry(cE, toString(cS)), StringEntry(cF, toString(cT)), StringEntry(cD, toString(cU)), ScriptTransfer(aA, toInt(cN), cP), ScriptTransfer(aA, toInt(cO), cP), aR("claim", ap, aq, toInt(cL), ci.transactionId)] | |
613 | 613 | } | |
614 | 614 | else throw("Strict value is not equal to itself.") | |
615 | 615 | } | |
616 | 616 | } | |
617 | 617 | else throw("Strict value is not equal to itself.") | |
618 | 618 | } | |
619 | 619 | ||
620 | 620 | ||
621 | 621 | ||
622 | 622 | @Callable(ci) | |
623 | 623 | func claimWxREADONLY (aq,ap) = { | |
624 | 624 | let bU = ao(ap, aq) | |
625 | 625 | let bv = ar(aq) | |
626 | 626 | let cC = as(aq, ap) | |
627 | 627 | let bo = aw(bU) | |
628 | 628 | let bw = aw(bv) | |
629 | 629 | let cG = w(this, cC) | |
630 | 630 | let bt = v(aU, Z(aq)) | |
631 | 631 | let by = getIntegerValue(aU, aa(bt)) | |
632 | 632 | let cV = z(aV, aj()) | |
633 | 633 | let bz = z(aV, al()) | |
634 | 634 | let cW = if ((bz > height)) | |
635 | 635 | then 0 | |
636 | 636 | else (height - bz) | |
637 | 637 | let cX = fraction((cV * cW), by, f) | |
638 | 638 | let cY = fraction(cX, bo, bw) | |
639 | 639 | let cZ = bQ(aq, ap, bt, 0) | |
640 | 640 | let ca = cZ._1 | |
641 | 641 | let cx = cZ._2 | |
642 | 642 | let bP = cZ._3 | |
643 | 643 | let cL = (ca - toBigInt(cG)) | |
644 | 644 | let da = i(invoke(aW, "claimWxBoostREADONLY", [aq, ap], nil)) | |
645 | 645 | let cM = m(da[0]) | |
646 | 646 | let db = o(da[1]) | |
647 | 647 | let cN = cL | |
648 | 648 | let cO = min([(cN * toBigInt(2)), toBigInt(cM)]) | |
649 | 649 | let dc = (cN + cO) | |
650 | 650 | $Tuple2(nil, makeString(["%s%s%d%d%d%d%s", aq, ap, toString(dc), toString(cG), toString(cN), toString(cO), ((((bP + "::") + toString(cY)) + "::BOOSTDEBUG::") + db)], e)) | |
651 | 651 | } | |
652 | 652 | ||
653 | 653 | ||
654 | 654 | ||
655 | 655 | @Callable(ci) | |
656 | 656 | func usersListTraversal (ay) = { | |
657 | 657 | let cm = if ((toBase58String(ci.caller.bytes) == valueOrElse(getString(this, J()), ""))) | |
658 | 658 | then true | |
659 | 659 | else cj(ci) | |
660 | 660 | if ((cm == cm)) | |
661 | 661 | then { | |
662 | 662 | let ba = aY(ay) | |
663 | 663 | let dd = getString(aX(ay)) | |
664 | 664 | let bg = getString(aZ(ba)) | |
665 | 665 | let k = dd | |
666 | 666 | if ($isInstanceOf(k, "Unit")) | |
667 | 667 | then { | |
668 | 668 | let de = bg | |
669 | 669 | if ($isInstanceOf(de, "Unit")) | |
670 | 670 | then $Tuple2(nil, false) | |
671 | 671 | else if ($isInstanceOf(de, "String")) | |
672 | 672 | then { | |
673 | 673 | let df = de | |
674 | 674 | $Tuple2([StringEntry(aX(ay), df)], true) | |
675 | 675 | } | |
676 | 676 | else throw("Match error") | |
677 | 677 | } | |
678 | 678 | else if ($isInstanceOf(k, "String")) | |
679 | 679 | then { | |
680 | 680 | let dg = k | |
681 | 681 | let dh = invoke(this, "claimWxINTERNAL", [ay, dg], nil) | |
682 | 682 | if ((dh == dh)) | |
683 | 683 | then { | |
684 | 684 | let di = getString(be(ba, dg)) | |
685 | 685 | let de = di | |
686 | 686 | if ($isInstanceOf(de, "Unit")) | |
687 | 687 | then $Tuple2([DeleteEntry(aX(ay))], false) | |
688 | 688 | else if ($isInstanceOf(de, "String")) | |
689 | 689 | then { | |
690 | 690 | let dj = de | |
691 | 691 | $Tuple2([StringEntry(aX(ay), dj)], true) | |
692 | 692 | } | |
693 | 693 | else throw("Match error") | |
694 | 694 | } | |
695 | 695 | else throw("Strict value is not equal to itself.") | |
696 | 696 | } | |
697 | 697 | else throw("Match error") | |
698 | 698 | } | |
699 | 699 | else throw("Strict value is not equal to itself.") | |
700 | 700 | } | |
701 | 701 | ||
702 | 702 | ||
703 | 703 | ||
704 | 704 | @Callable(ci) | |
705 | 705 | func onModifyWeight (aq,bt) = if ((ci.caller != aU)) | |
706 | 706 | then throw("permissions denied") | |
707 | 707 | else { | |
708 | 708 | let dk = bs(aq, bt, 0) | |
709 | 709 | let bq = dk._1 | |
710 | 710 | let bS = dk._2 | |
711 | 711 | let bT = dk._3 | |
712 | 712 | bS | |
713 | 713 | } | |
714 | 714 | ||
715 | 715 | ||
716 | 716 | @Verifier(dl) | |
717 | 717 | func dm () = { | |
718 | 718 | let dn = { | |
719 | 719 | let k = cd() | |
720 | 720 | if ($isInstanceOf(k, "ByteVector")) | |
721 | 721 | then { | |
722 | 722 | let ck = k | |
723 | 723 | ck | |
724 | 724 | } | |
725 | 725 | else if ($isInstanceOf(k, "Unit")) | |
726 | 726 | then dl.senderPublicKey | |
727 | 727 | else throw("Match error") | |
728 | 728 | } | |
729 | 729 | let do = { | |
730 | 730 | let k = ce() | |
731 | 731 | if ($isInstanceOf(k, "ByteVector")) | |
732 | 732 | then { | |
733 | 733 | let ck = k | |
734 | 734 | ck | |
735 | 735 | } | |
736 | 736 | else if ($isInstanceOf(k, "Unit")) | |
737 | 737 | then dl.senderPublicKey | |
738 | 738 | else throw("Match error") | |
739 | 739 | } | |
740 | 740 | if (sigVerify(dl.bodyBytes, dl.proofs[0], dn)) | |
741 | 741 | then true | |
742 | 742 | else sigVerify(dl.bodyBytes, dl.proofs[0], do) | |
743 | 743 | } | |
744 | 744 |
github/deemru/w8io/169f3d6 75.24 ms ◑