tx · 7chuKLDgx1U4o5wFwkiza8GS63vJjwC7qw3h8jE1UtFS

3N8jrea2DmBt1Ksb7byLviJB17e6zKbGWGW:  -0.01000000 Waves

2020.10.13 12:41 [1218610] smart account 3N8jrea2DmBt1Ksb7byLviJB17e6zKbGWGW > SELF 0.00000000 Waves

{ "type": 13, "id": "7chuKLDgx1U4o5wFwkiza8GS63vJjwC7qw3h8jE1UtFS", "fee": 1000000, "feeAssetId": null, "timestamp": 1602582086109, "version": 1, "sender": "3N8jrea2DmBt1Ksb7byLviJB17e6zKbGWGW", "senderPublicKey": "5BcAFibxErTDCoEgvseGvfJiq1vwu9Y7RG15iMGzERn", "proofs": [ "2RNkFFDvppWdJSAYDY7tGeoo19yBoZ5EbHDeXimqBgj7AbpD8b8YuGcHqwSwaE88iYz9nGBruZodKT9XYCVNV72A" ], "script": "base64:AAIEAAAAAAAAACEIAhILCgkICAgICAgICAESAwoBARIAEgMKAQgSABIAEgAAAABQAAAAAAR0ZW42AAAAAAAAD0JAAAAAAAR0ZW44AAAAAAAF9eEAAAAAABFjb25maWdQcm92aWRlcktleQIAAAAOY29uZmlnUHJvdmlkZXIAAAAADmNvbmZpZ1Byb3ZpZGVyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAEWNvbmZpZ1Byb3ZpZGVyS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAAXMFAAAABHRoaXMAAAAAB0JVTExLZXkCAAAABkJVTExJZAAAAAAHQkVBUktleQIAAAAGQkVBUklkAAAAAAxtYWluVG9rZW5LZXkCAAAAC21haW5Ub2tlbklkAAAAABFidWxsQ29sbGF0ZXJhbEtleQIAAAAOYnVsbENvbGxhdGVyYWwAAAAAEWJlYXJDb2xsYXRlcmFsS2V5AgAAAA5iZWFyQ29sbGF0ZXJhbAAAAAASYnVsbENpcmN1bGF0aW9uS2V5AgAAAA9idWxsQ2lyY3VsYXRpb24AAAAAEmJlYXJDaXJjdWxhdGlvbktleQIAAAAPYmVhckNpcmN1bGF0aW9uAAAAABJpc3N1ZVBlcmNlbnRpbGVLZXkCAAAAD2lzc3VlUGVyY2VudGlsZQAAAAATcmVkZWVtUGVyY2VudGlsZUtleQIAAAAQcmVkZWVtUGVyY2VudGlsZQAAAAALbWluSXNzdWVLZXkCAAAACG1pbklzc3VlAAAAAAxtaW5SZWRlZW1LZXkCAAAACW1pblJlZGVlbQAAAAAKbWluUG9vbEtleQIAAAAHbWluUG9vbAAAAAASZmVlc0FjY3VtdWxhdGVkS2V5AgAAAA9mZWVzQWNjdW11bGF0ZWQAAAAADHdoaXRlbGlzdEtleQIAAAAOaXNzdWVXaGl0ZUxpc3QAAAAAC29yYWNsZVBLS2V5AgAAAAZvcmFjbGUAAAAAEWxhc3RQcmljZUluZGV4S2V5AgAAAAtwcmljZV9pbmRleAAAAAAQcHJpY2VJbmRleFByZWZpeAIAAAAMcHJpY2VfaW5kZXhfAAAAABFwcmljZUhlaWdodFByZWZpeAIAAAAGcHJpY2VfAAAAABpvcmFjbGVDdXJyZW50UHJpY2VJbmRleEtleQIAAAALcHJpY2VfaW5kZXgAAAAAGmxhc3RSZWJhbGFuY2VQcmljZUluZGV4S2V5AgAAABVsYXN0U2V0dGxlbWVudFByaWNlSWQAAAAADmhlYWRQb2ludGVyS2V5AgAAAAtoZWFkUG9pbnRlcgAAAAAOdGFpbFBvaW50ZXJLZXkCAAAAC3RhaWxQb2ludGVyAAAAAAxxdWV1ZVNpemVLZXkCAAAACXF1ZXVlU2l6ZQAAAAAVcG9vbE1haW5Ub2tlblZhbHVlS2V5AgAAABJwb29sTWFpblRva2VuVmFsdWUAAAAACXBvb2xVcEtleQIAAAAGcG9vbFVwAAAAAApwb29sRHduS2V5AgAAAAdwb29sRHduAAAAABdwb29sVG9rZW5DaXJjdWxhdGlvbktleQIAAAAUcG9vbFRva2VuQ2lyY3VsYXRpb24AAAAADHBvb2xUb2tlbktleQIAAAAJcG9vbFRva2VuAAAAAAdidWxsQ29sCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAARYnVsbENvbGxhdGVyYWxLZXkCAAAAFG5vIGJ1bGxDb2xsYXRlcmFsS2V5AAAAAAdiZWFyQ29sCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAARYmVhckNvbGxhdGVyYWxLZXkCAAAAFG5vIGJlYXJDb2xsYXRlcmFsS2V5AAAAAAhidWxsQ2lyYwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmJ1bGxDaXJjdWxhdGlvbktleQIAAAAVbm8gYnVsbENpcmN1bGF0aW9uS2V5AAAAAAhiZWFyQ2lyYwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmJlYXJDaXJjdWxhdGlvbktleQIAAAAVbm8gYmVhckNpcmN1bGF0aW9uS2V5AAAAAARCVUxMCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAHQlVMTEtleQIAAAAKbm8gQlVMTEtleQAAAAAEQkVBUgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAB0JFQVJLZXkCAAAACm5vIEJFQVJLZXkAAAAACW1haW5Ub2tlbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADG1haW5Ub2tlbktleQIAAAAPbm8gbWFpblRva2VuS2V5AAAAAA9pc3N1ZVBlcmNlbnRpbGUJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA5jb25maWdQcm92aWRlcgUAAAASaXNzdWVQZXJjZW50aWxlS2V5AgAAABVubyBpc3N1ZVBlcmNlbnRpbGVLZXkAAAAAEHJlZGVlbVBlcmNlbnRpbGUJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA5jb25maWdQcm92aWRlcgUAAAATcmVkZWVtUGVyY2VudGlsZUtleQIAAAAWbm8gcmVkZWVtUGVyY2VudGlsZUtleQAAAAAIbWluSXNzdWUJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA5jb25maWdQcm92aWRlcgUAAAALbWluSXNzdWVLZXkCAAAADm5vIG1pbklzc3VlS2V5AAAAAAltaW5SZWRlZW0JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA5jb25maWdQcm92aWRlcgUAAAAMbWluUmVkZWVtS2V5AgAAAA9ubyBtaW5SZWRlZW1LZXkAAAAAB21pblBvb2wJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAA5jb25maWdQcm92aWRlcgUAAAAKbWluUG9vbEtleQIAAAANbm8gbWluUG9vbEtleQAAAAAJd2hpdGVsaXN0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAOY29uZmlnUHJvdmlkZXIFAAAADHdoaXRlbGlzdEtleQIAAAAPbm8gd2hpdGVsaXN0S2V5AQAAAAdhbGxvd2VkAAAAAQAAAAFhAwkAAAAAAAACBQAAAAl3aGl0ZWxpc3QCAAAAAAYJAQAAAAlpc0RlZmluZWQAAAABCQAEswAAAAIFAAAACXdoaXRlbGlzdAkABCUAAAABBQAAAAFhAAAAAAhwb29sTWFpbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFXBvb2xNYWluVG9rZW5WYWx1ZUtleQIAAAAYbm8gcG9vbE1haW5Ub2tlblZhbHVlS2V5AAAAAAZwb29sVXAJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAAlwb29sVXBLZXkCAAAADG5vIHBvb2xVcEtleQAAAAAHcG9vbER3bgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAACnBvb2xEd25LZXkCAAAADW5vIHBvb2xEd25LZXkAAAAACXBvb2xUb2tlbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADHBvb2xUb2tlbktleQIAAAAPbm8gcG9vbFRva2VuS2V5AAAAABRwb29sVG9rZW5DaXJjdWxhdGlvbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAF3Bvb2xUb2tlbkNpcmN1bGF0aW9uS2V5AgAAABpubyBwb29sVG9rZW5DaXJjdWxhdGlvbktleQAAAAAJcG9vbFZhbHVlCQAAZAAAAAIJAABkAAAAAgUAAAAIcG9vbE1haW4JAABrAAAAAwUAAAAHYnVsbENvbAUAAAAGcG9vbFVwBQAAAAhidWxsQ2lyYwkAAGsAAAADBQAAAAdiZWFyQ29sBQAAAAdwb29sRHduBQAAAAhiZWFyQ2lyYwAAAAAGb3JhY2xlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAC29yYWNsZVBLS2V5AgAAAA5ubyBvcmFjbGVQS0tleQIAAAASYmFkIG9yYWNsZSBhZGRyZXNzAAAAABRyZWJhbGFuY2VkUHJpY2VJbmRleAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAGmxhc3RSZWJhbGFuY2VQcmljZUluZGV4S2V5AgAAABdubyBsYXN0IHJlYmFsYW5jZSBwcmljZQAAAAAQb3JhY2xlUHJpY2VJbmRleAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABm9yYWNsZQUAAAARbGFzdFByaWNlSW5kZXhLZXkJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAE2JhZCBvcmFjbGUgZGF0YSBhdCAJAAQlAAAAAQUAAAAGb3JhY2xlAgAAABA6IG5vIGludGVnZXIgYXQgBQAAABFsYXN0UHJpY2VJbmRleEtleQAAAAAJcXVldWVTaXplCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADHF1ZXVlU2l6ZUtleQAAAAAAAAAAAAAAAAALaGVhZFBvaW50ZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAOaGVhZFBvaW50ZXJLZXkCAAAAAAAAAAALdGFpbFBvaW50ZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAOdGFpbFBvaW50ZXJLZXkCAAAAAAAAAAAPZmVlc0FjY3VtdWxhdGVkCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmZlZXNBY2N1bXVsYXRlZEtleQAAAAAAAAAAAAAAAAAFSVNTVUUCAAAABUlTU1VFAAAAAAZSRURFRU0CAAAABlJFREVFTQAAAAAEUE9PTAIAAAAEUE9PTAAAAAAGVU5QT09MAgAAAAZVTlBPT0wAAAAACmZlZUFkZHJLZXkCAAAACmZlZUFkZHJlc3MAAAAADnN0YWtpbmdBZGRyS2V5AgAAAA5zdGFraW5nQWRkcmVzcwAAAAAPZGFlbW9uUHViS2V5S2V5AgAAAA9kYWVtb25QdWJsaWNLZXkAAAAACmZlZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAOY29uZmlnUHJvdmlkZXIFAAAACmZlZUFkZHJLZXkCAAAADW5vIGZlZUFkZHJlc3MCAAAADmJhZCBmZWVBZGRyZXNzAAAAAA5zdGFraW5nQWRkcmVzcwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAADmNvbmZpZ1Byb3ZpZGVyBQAAAA5zdGFraW5nQWRkcktleQIAAAARbm8gc3Rha2luZ0FkZHJlc3MAAAAAD2RhZW1vblB1YmxpY0tleQkAAlkAAAABCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAOY29uZmlnUHJvdmlkZXIFAAAAD2RhZW1vblB1YktleUtleQIAAAASbm8gZGFlbW9uUHVibGljS2V5AAAAAApycGRBZGRyZXNzCQAEJgAAAAECAAAAIzNQTmlrTTZ5cDROcWNTVThndXhRdG1SNW9ucjJENGU4eVRKAAAAABBwdWJLZXlBZG1pbnNMaXN0CQAETAAAAAICAAAALDJISHFWOFc5REpheVY1UjZ0QkQyU2I4c3JwaHBvYm9EaTdyMXQxYVBpdW1DCQAETAAAAAICAAAALDVaWGU4MlJSQVNVN3FzaFhNMko5Sk5ZaHFKOUdXWWpqVnEyZ3dVVjVOYXo5CQAETAAAAAICAAAALDVXUlhGU2p3Y1RiTmZLY0pzOFpxWG1TU1dZc1NWSlV0TXZNcVpqNWhINE5jBQAAAANuaWwBAAAADHNhZmVGcmFjdGlvbgAAAAMAAAABYQAAAAFiAAAAAWMDAwkAAAAAAAACBQAAAAFhAAAAAAAAAAAABgkAAAAAAAACBQAAAAFiAAAAAAAAAAAAAAAAAAAAAAAACQAAawAAAAMFAAAAAWEFAAAAAWIFAAAAAWMBAAAADGJ1aWxkTmV3SXRlbQAAAAUAAAAGYWN0aW9uAAAAA2FtdAAAAAV0b2tlbgAAAApwcmljZUluZGV4AAAAB2ludm9rZXIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABmFjdGlvbgIA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YWluMAAAAApjdXJQb29sVXAwAAAAC2N1clBvb2xEd24wCgEAAAAHY2xvc2VVcAAAAAcAAAAKY3VyQnVsbENvbAAAAApjdXJCZWFyQ29sAAAAC2N1ckJ1bGxDaXJjAAAAC2N1ckJlYXJDaXJjAAAAC2N1clBvb2xNYWluAAAACWN1clBvb2xVcAAAAApjdXJQb29sRHduBAAAAARkaWZmCQAAZQAAAAIFAAAACmN1ckJ1bGxDb2wFAAAACmN1ckJlYXJDb2wEAAAACGV4cG9zdXJlCQAAawAAAAMFAAAACmN1ckJ1bGxDb2wFAAAACWN1clBvb2xVcAUAAAALY3VyQnVsbENpcmMEAAAAEGxpcXVpZGF0ZWRUb2tlbnMDCQAAZgAAAAIFAAAABGRpZmYFAAAACGV4cG9zdXJlBQAAAAljdXJQb29sVXAJAABrAAAAAwUAAAAEZGlmZgUAAAALY3VyQnVsbENpcmMFAAAACmN1ckJ1bGxDb2wEAAAAD2xpcXVpZGF0ZWRWYWx1ZQMJAABmAAAAAgUAAAAEZGlmZgUAAAAIZXhwb3N1cmUFAAAACGV4cG9zdXJlCQAAawAAAAMFAAAAEGxpcXVpZGF0ZWRUb2tlbnMFAAAACmN1ckJ1bGxDb2wFAAAAC2N1ckJ1bGxDaXJjCQAFGQAAAAcJAABlAAAAAgUAAAAKY3VyQnVsbENvbAUAAAAPbGlxdWlkYXRlZFZhbHVlBQAAAApjdXJCZWFyQ29sCQAAZQAAAAIFAAAAC2N1ckJ1bGxDaXJjBQAAABBsaXF1aWRhdGVkVG9rZW5zBQAAAAtjdXJCZWFyQ2lyYwkAAGQAAAACBQAAAAtjdXJQb29sTWFpbgUAAAAPbGlxdWlkYXRlZFZhbHVlCQAAZQAAAAIFAAAACWN1clBvb2xVcAUAAAAQbGlxdWlkYXRlZFRva2VucwUAAAAKY3VyUG9vbER3bgoBAAAACGNsb3NlRHduAAAABwAAAApjdXJCdWxsQ29sAAAACmN1ckJlYXJDb2wAAAALY3VyQnVsbENpcmMAAAALY3VyQmVhckNpcmMAAAALY3VyUG9vbE1haW4AAAAJY3VyUG9vbFVwAAAACmN1clBvb2xEd24EAAAABGRpZmYJAABlAAAAAgUAAAAKY3VyQmVhckNvbAUAAAAKY3VyQnVsbENvbAQAAAAIZXhwb3N1cmUJAABrAAAAAwUAAAAKY3VyQmVhckNvbAUAAAAKY3VyUG9vbER3bgUAAAALY3VyQmVhckNpcmMEAAAAEGxpcXVpZGF0ZWRUb2tlbnMDCQAAZgAAAAIFAAAABGRpZmYFAAAACGV4cG9zdXJlBQAAAApjdXJQb29sRHduCQAAawAAAAMFAAAABGRpZmYFAAAAC2N1ckJlYXJDaXJjBQAAAApjdXJCZWFyQ29sBAAAAA9saXF1aWRhdGVkVmFsdWUDCQAAZgAAAAIFAAAABGRpZmYFAAAACGV4cG9zdXJlBQAAAAhleHBvc3VyZQkAAGsAAAADBQAAABBsaXF1aWRhdGVkVG9rZW5zBQAAAApjdXJCZWFyQ29sBQAAAAtjdXJCZWFyQ2lyYwkABRkAAAAHBQAAAApjdXJCdWxsQ29sCQAAZQAAAAIFAAAACmN1ckJlYXJDb2wFAAAAD2xpcXVpZGF0ZWRWYWx1ZQUAAAALY3VyQnVsbENpcmMJAABlAAAAAgUAAAALY3VyQmVhckNpcmMFAAAAEGxpcXVpZGF0ZWRUb2tlbnMJAABkAAAAAgUAAAALY3VyUG9vbE1haW4FAAAAD2xpcXVpZGF0ZWRWYWx1ZQUAAAAJY3VyUG9vbFVwCQAAZQAAAAIFAAAACmN1clBvb2xEd24FAAAAEGxpcXVpZGF0ZWRUb2tlbnMKAQAAAAdvcGVuRHduAAAABwAAAApjdXJCdWxsQ29sAAAACmN1ckJlYXJDb2wAAAALY3VyQnVsbENpcmMAAAALY3VyQmVhckNpcmMAAAALY3VyUG9vbE1haW4AAAAJY3VyUG9vbFVwAAAACmN1clBvb2xEd24EAAAABGRpZmYJAABlAAAAAgUAAAAKY3VyQnVsbENvbAUAAAAKY3VyQmVhckNvbAQAAAAOc3BlbnRQb29sVmFsdWUDCQAAZgAAAAIFAAAAC2N1clBvb2xNYWluBQAAAARkaWZmBQAAAARkaWZmBQAAAAtjdXJQb29sTWFpbgQAAAAOYWNxdWlyZWRUb2tlbnMJAABrAAAAAwUAAAAOc3BlbnRQb29sVmFsdWUFAAAAC2N1ckJlYXJDaXJjBQAAAApjdXJCZWFyQ29sCQAFGQAAAAcFAAAACmN1ckJ1bGxDb2wJAABkAAAAAgUAAAAKY3VyQmVhckNvbAUAAAAOc3BlbnRQb29sVmFsdWUFAAAAC2N1ckJ1bGxDaXJjCQAAZAAAAAIFAAAAC2N1ckJlYXJDaXJjBQAAAA5hY3F1aXJlZFRva2VucwkAAGUAAAACBQAAAAtjdXJQb29sTWFpbgUAAAAOc3BlbnRQb29sVmFsdWUFAAAACWN1clBvb2xVcAkAAGQAAAACBQAAAApjdXJQb29sRHduBQAAAA5hY3F1aXJlZFRva2VucwoBAAAABm9wZW5VcAAAAAcAAAAKY3VyQnVsbENvbAAAAApjdXJCZWFyQ29sAAAAC2N1ckJ1bGxDaXJjAAAAC2N1ckJlYXJDaXJjAAAAC2N1clBvb2xNYWluAAAACWN1clBvb2xVcAAAAApjdXJQb29sRHduBAAAAARkaWZmCQAAZQAAAAIFAAAACmN1ckJlYXJDb2wFAAAACmN1ckJ1bGxDb2wEAAAADnNwZW50UG9vbFZhbHVlAwkAAGYAAAACBQAAAAtjdXJQb29sTWFpbgUAAAAEZGlmZgUAAAAEZGlmZgUAAAALY3VyUG9vbE1haW4EAAAADmFjcXVpcmVkVG9rZW5zCQAAawAAAAMFAAAADnNwZW50UG9vbFZhbHVlBQAAAAtjdXJCdWxsQ2lyYwUAAAAKY3VyQnVsbENvbAkABRkAAAAHCQAAZAAAAAIFAAAACmN1ckJ1bGxDb2wFAAAADnNwZW50UG9vbFZhbHVlBQAAAApjdXJCZWFyQ29sCQAAZAAAAAIFAAAAC2N1ckJ1bGxDaXJjBQAAAA5hY3F1aXJlZFRva2VucwUAAAALY3VyQmVhckNpcmMJAABlAAAAAgUAAAALY3VyUG9vbE1haW4FAAAADnNwZW50UG9vbFZhbHVlCQAAZAAAAAIFAAAACWN1clBvb2xVcAUAAAAOYWNxdWlyZWRUb2tlbnMFAAAACmN1clBvb2xEd24DCQAAZgAAAAIFAAAAC2N1ckJ1bGxDb2wwBQAAAAtjdXJCZWFyQ29sMAQAAAAMYWZ0ZXJDbG9zZVVwCQEAAAAHY2xvc2VVcAAAAAcFAAAAC2N1ckJ1bGxDb2wwBQAAAAtjdXJCZWFyQ29sMAUAAAAMY3VyQnVsbENpcmMwBQAAAAxjdXJCZWFyQ2lyYzAFAAAADGN1clBvb2xNYWluMAUAAAAKY3VyUG9vbFVwMAUAAAALY3VyUG9vbER3bjAEAAAADSR0MDEwMjg2MTA0MjMFAAAADGFmdGVyQ2xvc2VVcAQAAAABYQgFAAAADSR0MDEwMjg2MTA0MjMAAAACXzEEAAAAAWIIBQAAAA0kdDAxMDI4NjEwNDIzAAAAAl8yBAAAAAFjCAUAAAANJHQwMTAyODYxMDQyMwAAAAJfMwQAAAABZAgFAAAADSR0MDEwMjg2MTA0MjMAAAACXzQEAAAAAWUIBQAAAA0kdDAxMDI4NjEwNDIzAAAAAl81BAAAAAFmCAUAAAANJHQwMTAyODYxMDQyMwAAAAJfNgQAAAABZwgFAAAADSR0MDEwMjg2MTA0MjMAAAACXzcDCQAAZgAAAAIFAAAAAWYAAAAAAAAAAAAFAAAADGFmdGVyQ2xvc2VVcAMJAAAAAAAAAgUAAAABZgAAAAAAAAAAAAkBAAAAB29wZW5Ed24AAAAHBQAAAAFhBQAAAAFiBQAAAAFjBQAAAAFkBQAAAAFlBQAAAAFmBQAAAAFnCQAAAgAAAAECAAAACnBvb2xVcCA8IDAEAAAADWFmdGVyQ2xvc2VEd24JAQAAAAhjbG9zZUR3bgAAAAcFAAAAC2N1ckJ1bGxDb2wwBQAAAAtjdXJCZWFyQ29sMAUAAAAMY3VyQnVsbENpcmMwBQAAAAxjdXJCZWFyQ2lyYzAFAAAADGN1clBvb2xNYWluMAUAAAAKY3VyUG9vbFVwMAUAAAALY3VyUG9vbER3bjAEAAAADSR0MDEwNzc0MTA5MTQFAAAADWFmdGVyQ2xvc2VEd24EAAAAAWEIBQAAAA0kdDAxMDc3NDEwOTE0AAAAAl8xBAAAAAFiCAUAAAANJHQwMTA3NzQxMDkxNAAAAAJfMgQAAAABYwgFAAAADSR0MDEwNzc0MTA5MTQAAAACXzMEAAAAAWQIBQAAAA0kdDAxMDc3NDEwOTE0AAAAAl80BAAAAAFlCAUAAAANJHQwMTA3NzQxMDkxNAAAAAJfNQQAAAABZggFAAAADSR0MDEwNzc0MTA5MTQAAAACXzYEAAAAAWcIBQAAAA0kdDAxMDc3NDEwOTE0AAAAAl83AwkAAGYAAAACBQAAAAFnAAAAAAAAAAAABQAAAA1hZnRlckNsb3NlRHduAwkAAAAAAAACBQAAAAFnAAAAAAAAAAAACQEAAAAGb3BlblVwAAAABwUAAAABYQUAAAABYgUAAAABYwUAAAABZAUAAAABZQUAAAABZgUAAAABZwkAAAIAAAABAgAAAAtwb29sRHduIDwgMAEAAAAUYWN0aW9uc1dpdGhNYXliZVBvb2wAAAAEAAAAC2N1ckJ1bGxDb2wwAAAAC2N1ckJlYXJDb2wwAAAADGN1ckJ1bGxDaXJjMAAAAAxjdXJCZWFyQ2lyYzAEAAAADSR0MDExMjExMTEzOTQJAQAAAAtwb29sU3VwcG9ydAAAAAcFAAAAC2N1ckJ1bGxDb2wwBQAAAAtjdXJCZWFyQ29sMAUAAAAMY3VyQnVsbENpcmMwBQAAAAxjdXJCZWFyQ2lyYzAFAAAACHBvb2xNYWluBQAAAAZwb29sVXAFAAAAB3Bvb2xEd24EAAAACGJ1bGxDb2wxCAUAAAANJHQwMTEyMTExMTM5NAAAAAJfMQQAAAAIYmVhckNvbDEIBQAAAA0kdDAxMTIxMTExMzk0AAAAAl8yBAAAAAhidWxsQ2ljMQgFAAAADSR0MDExMjExMTEzOTQAAAACXzMEAAAACWJlYXJDaXJjMQgFAAAADSR0MDExMjExMTEzOTQAAAACXzQEAAAACXBvb2xNYWluMQgFAAAADSR0MDExMjExMTEzOTQAAAACXzUEAAAAB3Bvb2xVcDEIBQAAAA0kdDAxMTIxMTExMzk0AAAAAl82BAAAAAhwb29sRHduMQgFAAAADSR0MDExMjExMTEzOTQAAAACXzcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWJ1bGxDb2xsYXRlcmFsS2V5BQAAAAhidWxsQ29sMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASYnVsbENpcmN1bGF0aW9uS2V5BQAAAAhidWxsQ2ljMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARYmVhckNvbGxhdGVyYWxLZXkFAAAACGJlYXJDb2wxCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJiZWFyQ2lyY3VsYXRpb25LZXkFAAAACWJlYXJDaXJjMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVcG9vbE1haW5Ub2tlblZhbHVlS2V5BQAAAAlwb29sTWFpbjEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACXBvb2xVcEtleQUAAAAHcG9vbFVwMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKcG9vbER3bktleQUAAAAIcG9vbER3bjEFAAAAA25pbAEAAAAHZGVxdWV1ZQAAAAADCQAAAAAAAAIFAAAACXF1ZXVlU2l6ZQAAAAAAAAAAAAkAAAIAAAABAgAAABFub3RoaW5nIHRvIHNldHRsZQoBAAAACmNvbGxlY3RGZWUAAAABAAAABGZlZXMJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJmZWVzQWNjdW11bGF0ZWRLZXkJAABkAAAAAgUAAAAPZmVlc0FjY3VtdWxhdGVkBQAAAARmZWVzBAAAABFkZWNyZWFzZVF1ZXVlU2l6ZQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADHF1ZXVlU2l6ZUtleQkAAGUAAAACBQAAAAlxdWV1ZVNpemUAAAAAAAAAAAEEAAAADWlzTGFzdEVsZW1lbnQJAAAAAAAAAgUAAAALaGVhZFBvaW50ZXIFAAAAC3RhaWxQb2ludGVyBAAAAA1vdmVyd3JpdGVUYWlsCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA50YWlsUG9pbnRlcktleQIAAAAABAAAAARkYXRhCQAEtQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAtoZWFkUG9pbnRlcgIAAAAQYmFkIGhlYWQgcG9pbnRlcgIAAAABfAQAAAAGYWN0aW9uCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAAEAAAAA2FtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAEEAAAABXRva2VuCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAIEAAAACnByaWNlSW5kZXgJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAADBAAAAAdpbnZva2VyCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAQEAAAABG5leHQJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAABQQAAAAFaXRlbXMDCQAAZgAAAAIFAAAAFHJlYmFsYW5jZWRQcmljZUluZGV4BQAAAApwcmljZUluZGV4CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJGNvcnJ1cHQgc3RhdGUsIHJlYmFsYW5jZWRQcmljZUluZGV4PQkAAaQAAAABBQAAABRyZWJhbGFuY2VkUHJpY2VJbmRleAIAAAATLCByZXF1ZXN0IHByaWNlIGlkPQkAAaQAAAABBQAAAApwcmljZUluZGV4AwkAAGYAAAACBQAAAApwcmljZUluZGV4BQAAABRyZWJhbGFuY2VkUHJpY2VJbmRleAkAAAIAAAABAgAAACljYW4ndCBkZXF1ZXVlLCB0b28gZWFybHksIHJlYmFsYW5jZSBmaXJzdAMJAAAAAAAAAgUAAAAGYWN0aW9uBQAAAAVJU1NVRQQAAAAHZmVlU2l6ZQkAAGsAAAADBQAAAANhbXQFAAAAD2lzc3VlUGVyY2VudGlsZQAAAAAAAAAnEAQAAAAPYWRkZWRDb2xsYXRlcmFsCQAAZQAAAAIFAAAAA2FtdAUAAAAHZmVlU2l6ZQMJAAAAAAAAAgUAAAAFdG9rZW4FAAAABEJVTEwEAAAAEmFkZGVkVG9DaXJjdWxhdGlvbgkAAGsAAAADBQAAAAhidWxsQ2lyYwUAAAAPYWRkZWRDb2xsYXRlcmFsBQAAAAdidWxsQ29sCQAETgAAAAIJAQAAABRhY3Rpb25zV2l0aE1heWJlUG9vbAAAAAQJAABkAAAAAgUAAAAHYnVsbENvbAUAAAAPYWRkZWRDb2xsYXRlcmFsBQAAAAdiZWFyQ29sCQAAZAAAAAIFAAAACGJ1bGxDaXJjBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24FAAAACGJlYXJDaXJjCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADmhlYWRQb2ludGVyS2V5BQAAAARuZXh0CQAETAAAAAIJAQAAAApjb2xsZWN0RmVlAAAAAQUAAAAHZmVlU2l6ZQkABEwAAAACBQAAABFkZWNyZWFzZVF1ZXVlU2l6ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24JAAJZAAAAAQUAAAAEQlVMTAUAAAADbmlsAwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQkVBUgQAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAAawAAAAMFAAAACGJlYXJDaXJjBQAAAA9hZGRlZENvbGxhdGVyYWwFAAAAB2JlYXJDb2wJAAROAAAAAgkBAAAAFGFjdGlvbnNXaXRoTWF5YmVQb29sAAAABAUAAAAHYnVsbENvbAkAAGQAAAACBQAAAAdiZWFyQ29sBQAAAA9hZGRlZENvbGxhdGVyYWwFAAAACGJ1bGxDaXJjCQAAZAAAAAIFAAAACGJlYXJDaXJjBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAOaGVhZFBvaW50ZXJLZXkFAAAABG5leHQJAARMAAAAAgkBAAAACmNvbGxlY3RGZWUAAAABBQAAAAdmZWVTaXplCQAETAAAAAIFAAAAEWRlY3JlYXNlUXVldWVTaXplCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAB2ludm9rZXIFAAAAEmFkZGVkVG9DaXJjdWxhdGlvbgkAAlkAAAABBQAAAARCRUFSBQAAAANuaWwJAAACAAAAAQIAAAAMYmFkIHRva2VuIGlkAwkAAAAAAAACBQAAAAZhY3Rpb24FAAAABlJFREVFTQQAAAANcmVtb3ZlZFRva2VucwUAAAADYW10AwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQlVMTAQAAAARcmVtb3ZlZENvbGxhdGVyYWwJAABrAAAAAwUAAAAHYnVsbENvbAUAAAANcmVtb3ZlZFRva2VucwUAAAAIYnVsbENpcmMEAAAAB2ZlZVNpemUJAABrAAAAAwUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAAEHJlZGVlbVBlcmNlbnRpbGUAAAAAAAAAJxAEAAAABnBheW91dAMJAABmAAAAAgUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAAB2ZlZVNpemUJAABlAAAAAgUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAAB2ZlZVNpemUAAAAAAAAAAAAJAAROAAAAAgkBAAAAFGFjdGlvbnNXaXRoTWF5YmVQb29sAAAABAkAAGUAAAACBQAAAAdidWxsQ29sBQAAABFyZW1vdmVkQ29sbGF0ZXJhbAUAAAAHYmVhckNvbAkAAGUAAAACBQAAAAhidWxsQ2lyYwUAAAANcmVtb3ZlZFRva2VucwUAAAAIYmVhckNpcmMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAOaGVhZFBvaW50ZXJLZXkFAAAABG5leHQJAARMAAAAAgkBAAAACmNvbGxlY3RGZWUAAAABBQAAAAdmZWVTaXplCQAETAAAAAIFAAAAEWRlY3JlYXNlUXVldWVTaXplCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAB2ludm9rZXIFAAAABnBheW91dAkAAlkAAAABBQAAAAltYWluVG9rZW4FAAAAA25pbAMJAAAAAAAAAgUAAAAFdG9rZW4FAAAABEJFQVIEAAAAEXJlbW92ZWRDb2xsYXRlcmFsCQAAawAAAAMFAAAAB2JlYXJDb2wFAAAADXJlbW92ZWRUb2tlbnMFAAAACGJlYXJDaXJjBAAAAAdmZWVTaXplCQAAawAAAAMFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAABByZWRlZW1QZXJjZW50aWxlAAAAAAAAACcQBAAAAAZwYXlvdXQDCQAAZgAAAAIFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAAAdmZWVTaXplCQAAZQAAAAIFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAAAdmZWVTaXplAAAAAAAAAAAACQAETgAAAAIJAQAAABRhY3Rpb25zV2l0aE1heWJlUG9vbAAAAAQFAAAAB2J1bGxDb2wJAABlAAAAAgUAAAAHYmVhckNvbAUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAACGJ1bGxDaXJjCQAAZQAAAAIFAAAACGJlYXJDaXJjBQAAAA1yZW1vdmVkVG9rZW5zCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADmhlYWRQb2ludGVyS2V5BQAAAARuZXh0CQAETAAAAAIJAQAAAApjb2xsZWN0RmVlAAAAAQUAAAAHZmVlU2l6ZQkABEwAAAACBQAAABFkZWNyZWFzZVF1ZXVlU2l6ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAAAZwYXlvdXQJAAJZAAAAAQUAAAAJbWFpblRva2VuBQAAAANuaWwJAAACAAAAAQIAAAAMYmFkIHRva2VuIGlkAwkAAAAAAAACBQAAAAZhY3Rpb24FAAAABFBPT0wEAAAAC2lzc3VlVG9rZW5zCQAAawAAAAMFAAAAFHBvb2xUb2tlbkNpcmN1bGF0aW9uBQAAAANhbXQFAAAACXBvb2xWYWx1ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVcG9vbE1haW5Ub2tlblZhbHVlS2V5CQAAZAAAAAIFAAAACHBvb2xNYWluBQAAAANhbXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAF3Bvb2xUb2tlbkNpcmN1bGF0aW9uS2V5CQAAZAAAAAIFAAAAFHBvb2xUb2tlbkNpcmN1bGF0aW9uBQAAAAtpc3N1ZVRva2VucwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA5oZWFkUG9pbnRlcktleQUAAAAEbmV4dAkABEwAAAACBQAAABFkZWNyZWFzZVF1ZXVlU2l6ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAAAtpc3N1ZVRva2VucwkAAlkAAAABBQAAAAlwb29sVG9rZW4FAAAAA25pbAMJAAAAAAAAAgUAAAAGYWN0aW9uBQAAAAZVTlBPT0wKAQAAAAVzaGFyZQAAAAEAAAABYQkAAGsAAAADBQAAAAFhBQAAAANhbXQFAAAAFHBvb2xUb2tlbkNpcmN1bGF0aW9uBAAAAAx1bnBvb2xlZE1haW4JAQAAAAVzaGFyZQAAAAEFAAAACHBvb2xNYWluBAAAAAp1bnBvb2xlZFVwCQEAAAAFc2hhcmUAAAABBQAAAAZwb29sVXAEAAAAC3VucG9vbGVkRHduCQEAAAAFc2hhcmUAAAABBQAAAAdwb29sRHduBAAAAA91bnBvb2xlZFVwVmFsdWUJAABrAAAAAwUAAAAKdW5wb29sZWRVcAUAAAAHYnVsbENvbAUAAAAIYnVsbENpcmMEAAAAEHVucG9vbGVkRHduVmFsdWUJAABrAAAAAwUAAAALdW5wb29sZWREd24FAAAAB2JlYXJDb2wFAAAACGJlYXJDaXJjCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVwb29sTWFpblRva2VuVmFsdWVLZXkJAABlAAAAAgUAAAAIcG9vbE1haW4FAAAADHVucG9vbGVkTWFpbgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAXcG9vbFRva2VuQ2lyY3VsYXRpb25LZXkJAABlAAAAAgUAAAAUcG9vbFRva2VuQ2lyY3VsYXRpb24FAAAAA2FtdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAJcG9vbFVwS2V5CQAAZQAAAAIFAAAABnBvb2xVcAUAAAAKdW5wb29sZWRVcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKcG9vbER3bktleQkAAGUAAAACBQAAAAdwb29sRHduBQAAAAt1bnBvb2xlZER3bgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASYnVsbENpcmN1bGF0aW9uS2V5CQAAZQAAAAIFAAAACGJ1bGxDaXJjBQAAAAp1bnBvb2xlZFVwCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJiZWFyQ2lyY3VsYXRpb25LZXkJAABlAAAAAgUAAAAIYmVhckNpcmMFAAAAC3VucG9vbGVkRHduCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABFidWxsQ29sbGF0ZXJhbEtleQkAAGUAAAACBQAAAAdidWxsQ29sBQAAAA91bnBvb2xlZFVwVmFsdWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWJlYXJDb2xsYXRlcmFsS2V5CQAAZQAAAAIFAAAAB2JlYXJDb2wFAAAAEHVucG9vbGVkRHduVmFsdWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAOaGVhZFBvaW50ZXJLZXkFAAAABG5leHQJAARMAAAAAgUAAAARZGVjcmVhc2VRdWV1ZVNpemUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAHaW52b2tlcgkAAGQAAAACCQAAZAAAAAIFAAAADHVucG9vbGVkTWFpbgUAAAAPdW5wb29sZWRVcFZhbHVlBQAAABB1bnBvb2xlZER3blZhbHVlCQACWQAAAAEFAAAACW1haW5Ub2tlbgUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgIAAAAMYmFkIGFjdGlvbjogBQAAAAZhY3Rpb24DBQAAAA1pc0xhc3RFbGVtZW50CQAETAAAAAIFAAAADW92ZXJ3cml0ZVRhaWwFAAAABWl0ZW1zBQAAAAVpdGVtcwEAAAAJcmViYWxhbmNlAAAAAAoBAAAAAkxWAAAAAwAAAAF2AAAAAnAwAAAAAnAxBAAAAAVkZW5vbQAAAAAAAAAAZAQAAAAEcG1heAkAAGkAAAACAwkAAGYAAAACBQAAAAJwMQUAAAACcDAFAAAAAnAxBQAAAAJwMAUAAAAFZGVub20EAAAABHBtaW4JAABpAAAAAgMJAABmAAAAAgUAAAACcDAFAAAAAnAxBQAAAAJwMQUAAAACcDAFAAAABWRlbm9tBAAAAAFhCQAAaAAAAAIFAAAABHBtaW4FAAAABHBtaW4EAAAAAWIJAABlAAAAAgkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAAkFAAAABHBtYXgFAAAABHBtYXgJAABoAAAAAgkAAGgAAAACAAAAAAAAAAAPBQAAAARwbWF4BQAAAARwbWluCQAAawAAAAMFAAAAAXYJAABkAAAAAgkAAGgAAAACAAAAAAAAAAAGBQAAAAFhBQAAAAFiCQAAZAAAAAIJAABoAAAAAgAAAAAAAAAABwUAAAABYQUAAAABYgQAAAARc2V0dGxlZFByaWNlSW5kZXgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABpsYXN0UmViYWxhbmNlUHJpY2VJbmRleEtleQIAAAARaW5jb25zaXN0ZW50IGRhdGEEAAAAE3Vuc2V0dGxlZFByaWNlSW5kZXgJAABkAAAAAgUAAAARc2V0dGxlZFByaWNlSW5kZXgAAAAAAAAAAAEEAAAAEnNldHRsZWRQcmljZUhlaWdodAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABm9yYWNsZQkAASwAAAACAgAAAAxwcmljZV9pbmRleF8JAAGkAAAAAQUAAAARc2V0dGxlZFByaWNlSW5kZXgCAAAAKGJhZCBvcmFjbGUgZGF0YSBmb3Igc2V0dGxlZCBwcmljZSBoZWlnaHQEAAAADHNldHRsZWRQcmljZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABm9yYWNsZQkAASwAAAACAgAAAAZwcmljZV8JAAGkAAAAAQUAAAASc2V0dGxlZFByaWNlSGVpZ2h0AgAAABliYWQgb3JhY2xlIGRhdGEgZm9yIHByaWNlBAAAAA9uZXh0UHJpY2VIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAZvcmFjbGUJAAEsAAAAAgIAAAAMcHJpY2VfaW5kZXhfCQABpAAAAAEFAAAAE3Vuc2V0dGxlZFByaWNlSW5kZXgCAAAAFG5vIG5leHQgcHJpY2UgaGVpZ2h0BAAAAAluZXh0UHJpY2UJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAZvcmFjbGUJAAEsAAAAAgIAAAAGcHJpY2VfCQABpAAAAAEFAAAAD25leHRQcmljZUhlaWdodAIAAAANbm8gbmV4dCBwcmljZQQAAAAGbWluVm9sAwkAAGYAAAACBQAAAAdiZWFyQ29sBQAAAAdidWxsQ29sBQAAAAdidWxsQ29sBQAAAAdiZWFyQ29sBAAAAAZyZWRpc3QJAQAAAAJMVgAAAAMFAAAABm1pblZvbAUAAAAMc2V0dGxlZFByaWNlBQAAAAluZXh0UHJpY2UEAAAACm5ld0J1bGxDb2wDCQAAZgAAAAIFAAAACW5leHRQcmljZQUAAAAMc2V0dGxlZFByaWNlCQAAZAAAAAIFAAAAB2J1bGxDb2wFAAAABnJlZGlzdAkAAGUAAAACBQAAAAdidWxsQ29sBQAAAAZyZWRpc3QEAAAACm5ld0JlYXJDb2wDCQAAZgAAAAIFAAAACW5leHRQcmljZQUAAAAMc2V0dGxlZFByaWNlCQAAZQAAAAIFAAAAB2JlYXJDb2wFAAAABnJlZGlzdAkAAGQAAAACBQAAAAdiZWFyQ29sBQAAAAZyZWRpc3QEAAAADSR0MDE5MjYwMTk0NDcJAQAAAAtwb29sU3VwcG9ydAAAAAcFAAAACm5ld0J1bGxDb2wFAAAACm5ld0JlYXJDb2wFAAAACGJ1bGxDaXJjBQAAAAhiZWFyQ2lyYwUAAAAIcG9vbE1haW4FAAAABnBvb2xVcAUAAAAHcG9vbER3bgQAAAAKdXBkQnVsbENvbAgFAAAADSR0MDE5MjYwMTk0NDcAAAACXzEEAAAACnVwZEJlYXJDb2wIBQAAAA0kdDAxOTI2MDE5NDQ3AAAAAl8yBAAAAAt1cGRCdWxsQ2lyYwgFAAAADSR0MDE5MjYwMTk0NDcAAAACXzMEAAAAC3VwZEJlYXJDaXJjCAUAAAANJHQwMTkyNjAxOTQ0NwAAAAJfNAQAAAALdXBkUG9vbE1haW4IBQAAAA0kdDAxOTI2MDE5NDQ3AAAAAl81BAAAAAl1cGRQb29sVXAIBQAAAA0kdDAxOTI2MDE5NDQ3AAAAAl82BAAAAAp1cGRQb29sRHduCAUAAAANJHQwMTkyNjAxOTQ0NwAAAAJfNwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARYnVsbENvbGxhdGVyYWxLZXkFAAAACnVwZEJ1bGxDb2wJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEWJlYXJDb2xsYXRlcmFsS2V5BQAAAAp1cGRCZWFyQ29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJidWxsQ2lyY3VsYXRpb25LZXkFAAAAC3VwZEJ1bGxDaXJjCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJiZWFyQ2lyY3VsYXRpb25LZXkFAAAAC3VwZEJlYXJDaXJjCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVwb29sTWFpblRva2VuVmFsdWVLZXkFAAAAC3VwZFBvb2xNYWluCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAlwb29sVXBLZXkFAAAACXVwZFBvb2xVcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKcG9vbER3bktleQUAAAAKdXBkUG9vbER3bgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAabGFzdFJlYmFsYW5jZVByaWNlSW5kZXhLZXkFAAAAE3Vuc2V0dGxlZFByaWNlSW5kZXgFAAAAA25pbAAAAAcAAAAD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", "chainId": 84, "height": 1218610, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 4 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = 1000000
5+
6+let b = 100000000
7+
8+let c = "configProvider"
9+
10+let d = {
11+ let e = getString(this, c)
12+ if ($isInstanceOf(e, "String"))
13+ then {
14+ let f = e
15+ addressFromStringValue(f)
16+ }
17+ else this
18+ }
19+
20+let g = "BULLId"
21+
22+let h = "BEARId"
23+
24+let i = "mainTokenId"
25+
26+let j = "bullCollateral"
27+
28+let k = "bearCollateral"
29+
30+let l = "bullCirculation"
31+
32+let m = "bearCirculation"
33+
34+let n = "issuePercentile"
35+
36+let o = "redeemPercentile"
37+
38+let p = "minIssue"
39+
40+let q = "minRedeem"
41+
42+let r = "minPool"
43+
44+let s = "feesAccumulated"
45+
46+let t = "issueWhiteList"
47+
48+let u = "oracle"
49+
50+let v = "price_index"
51+
52+let w = "price_index_"
53+
54+let x = "price_"
55+
56+let y = "price_index"
57+
58+let z = "lastSettlementPriceId"
59+
60+let A = "headPointer"
61+
62+let B = "tailPointer"
63+
64+let C = "queueSize"
65+
66+let D = "poolMainTokenValue"
67+
68+let E = "poolUp"
69+
70+let F = "poolDwn"
71+
72+let G = "poolTokenCirculation"
73+
74+let H = "poolToken"
75+
76+let I = valueOrErrorMessage(getInteger(this, j), "no bullCollateralKey")
77+
78+let J = valueOrErrorMessage(getInteger(this, k), "no bearCollateralKey")
79+
80+let K = valueOrErrorMessage(getInteger(this, l), "no bullCirculationKey")
81+
82+let L = valueOrErrorMessage(getInteger(this, m), "no bearCirculationKey")
83+
84+let M = valueOrErrorMessage(getString(this, g), "no BULLKey")
85+
86+let N = valueOrErrorMessage(getString(this, h), "no BEARKey")
87+
88+let O = valueOrErrorMessage(getString(this, i), "no mainTokenKey")
89+
90+let P = valueOrErrorMessage(getInteger(d, n), "no issuePercentileKey")
91+
92+let Q = valueOrErrorMessage(getInteger(d, o), "no redeemPercentileKey")
93+
94+let R = valueOrErrorMessage(getInteger(d, p), "no minIssueKey")
95+
96+let S = valueOrErrorMessage(getInteger(d, q), "no minRedeemKey")
97+
98+let T = valueOrErrorMessage(getInteger(d, r), "no minPoolKey")
99+
100+let U = valueOrErrorMessage(getString(d, t), "no whitelistKey")
101+
102+func V (W) = if ((U == ""))
103+ then true
104+ else isDefined(indexOf(U, toString(W)))
105+
106+
107+let X = valueOrErrorMessage(getInteger(this, D), "no poolMainTokenValueKey")
108+
109+let Y = valueOrErrorMessage(getInteger(this, E), "no poolUpKey")
110+
111+let Z = valueOrErrorMessage(getInteger(this, F), "no poolDwnKey")
112+
113+let aa = valueOrErrorMessage(getString(this, H), "no poolTokenKey")
114+
115+let ab = valueOrErrorMessage(getInteger(this, G), "no poolTokenCirculationKey")
116+
117+let ac = ((X + fraction(I, Y, K)) + fraction(J, Z, L))
118+
119+let ad = valueOrErrorMessage(addressFromPublicKey(fromBase58String(valueOrErrorMessage(getString(this, u), "no oraclePKKey"))), "bad oracle address")
120+
121+let ae = valueOrErrorMessage(getInteger(this, z), "no last rebalance price")
122+
123+let af = valueOrErrorMessage(getInteger(ad, v), ((("bad oracle data at " + toString(ad)) + ": no integer at ") + v))
124+
125+let ag = valueOrElse(getInteger(this, C), 0)
126+
127+let ah = valueOrElse(getString(this, A), "")
128+
129+let ai = valueOrElse(getString(this, B), "")
130+
131+let aj = valueOrElse(getInteger(this, s), 0)
132+
133+let ak = "ISSUE"
134+
135+let al = "REDEEM"
136+
137+let am = "POOL"
138+
139+let an = "UNPOOL"
140+
141+let ao = "feeAddress"
142+
143+let ap = "stakingAddress"
144+
145+let aq = "daemonPublicKey"
146+
147+let ar = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(d, ao), "no feeAddress")), "bad feeAddress")
148+
149+let as = valueOrErrorMessage(getString(d, ap), "no stakingAddress")
150+
151+let at = fromBase58String(valueOrErrorMessage(getString(d, aq), "no daemonPublicKey"))
152+
153+let au = addressFromString("3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ")
154+
155+let av = ["2HHqV8W9DJayV5R6tBD2Sb8srphpoboDi7r1t1aPiumC", "5ZXe82RRASU7qshXM2J9JNYhqJ9GWYjjVq2gwUV5Naz9", "5WRXFSjwcTbNfKcJs8ZqXmSSWYsSVJUtMvMqZj5hH4Nc"]
156+
157+func aw (W,ax,ay) = if (if ((W == 0))
158+ then true
159+ else (ax == 0))
160+ then 0
161+ else fraction(W, ax, ay)
162+
163+
164+func az (aA,aB,aC,aD,aE) = (((((((((aA + "|") + toString(aB)) + "|") + aC) + "|") + toString(aD)) + "|") + aE) + "|")
165+
166+
167+func aF (aG) = {
168+ let aH = if ((Y > 0))
169+ then M
170+ else N
171+ if ((aH == aG))
172+ then X
173+ else ((2 * ac) - X)
174+ }
175+
176+
177+func aI (aJ) = if ((aJ.caller == this))
178+ then throw("can't do")
179+ else {
180+ func aK (aL) = throw(((((("only BULL(" + M) + ") or BEAR(") + N) + ") tokens are accepted, received: ") + aL))
181+
182+ let aM = toBase58String(valueOrErrorMessage(value(aJ.payments[0]).assetId, "waves are not accepted here"))
183+ if (if ((aM != N))
184+ then (aM != M)
185+ else false)
186+ then aK(aM)
187+ else {
188+ let aN = aJ.payments[0].amount
189+ let aO = if ((aM == N))
190+ then J
191+ else I
192+ let aP = if ((aM == N))
193+ then L
194+ else K
195+ let aQ = fraction(aO, aN, aP)
196+ if ((S > aQ))
197+ then throw((((((((((("Attached payment too small. Min redeem amount is " + toString((S / 1000000))) + " USDN, ") + "attached amount: ") + toString(aN)) + ", col: ") + toString(aO)) + ", circ: ") + toString(aP)) + ", estimated: ") + toString(aQ)))
198+ else unit
199+ }
200+ }
201+
202+
203+func aR (aS,aA,aB,aC,aD,aE) = {
204+ let aT = IntegerEntry(C, (ag + 1))
205+ let aU = az(aA, aB, aC, aD, aE)
206+ if ((ag == 0))
207+ then [StringEntry(A, aS), StringEntry(B, aS), StringEntry(aS, aU), aT]
208+ else {
209+ let aV = valueOrErrorMessage(getString(this, B), "can't get tail pointer")
210+ let aW = split(valueOrErrorMessage(getString(this, aV), "can't resolve pointer"), "|")
211+ let aX = ((((((((((aW[0] + "|") + aW[1]) + "|") + aW[2]) + "|") + aW[3]) + "|") + aW[4]) + "|") + aS)
212+[StringEntry(aV, aX), StringEntry(aS, aU), StringEntry(B, aS), aT]
213+ }
214+ }
215+
216+
217+func aY (aZ,ba,bb,bc,bd,be,bf) = {
218+ func bg (bh,bi,bj,bk,bl,bm,bn) = {
219+ let bo = (bh - bi)
220+ let bp = fraction(bh, bm, bj)
221+ let bq = if ((bo > bp))
222+ then bm
223+ else fraction(bo, bj, bh)
224+ let br = if ((bo > bp))
225+ then bp
226+ else fraction(bq, bh, bj)
227+ $Tuple7((bh - br), bi, (bj - bq), bk, (bl + br), (bm - bq), bn)
228+ }
229+
230+ func bs (bh,bi,bj,bk,bl,bm,bn) = {
231+ let bo = (bi - bh)
232+ let bp = fraction(bi, bn, bk)
233+ let bq = if ((bo > bp))
234+ then bn
235+ else fraction(bo, bk, bi)
236+ let br = if ((bo > bp))
237+ then bp
238+ else fraction(bq, bi, bk)
239+ $Tuple7(bh, (bi - br), bj, (bk - bq), (bl + br), bm, (bn - bq))
240+ }
241+
242+ func bt (bh,bi,bj,bk,bl,bm,bn) = {
243+ let bo = (bh - bi)
244+ let bu = if ((bl > bo))
245+ then bo
246+ else bl
247+ let bv = fraction(bu, bk, bi)
248+ $Tuple7(bh, (bi + bu), bj, (bk + bv), (bl - bu), bm, (bn + bv))
249+ }
250+
251+ func bw (bh,bi,bj,bk,bl,bm,bn) = {
252+ let bo = (bi - bh)
253+ let bu = if ((bl > bo))
254+ then bo
255+ else bl
256+ let bv = fraction(bu, bj, bh)
257+ $Tuple7((bh + bu), bi, (bj + bv), bk, (bl - bu), (bm + bv), bn)
258+ }
259+
260+ if ((aZ > ba))
261+ then {
262+ let bx = bg(aZ, ba, bb, bc, bd, be, bf)
263+ let by = bx
264+ let W = by._1
265+ let ax = by._2
266+ let ay = by._3
267+ let bz = by._4
268+ let bA = by._5
269+ let bB = by._6
270+ let bC = by._7
271+ if ((bB > 0))
272+ then bx
273+ else if ((bB == 0))
274+ then bt(W, ax, ay, bz, bA, bB, bC)
275+ else throw("poolUp < 0")
276+ }
277+ else {
278+ let bD = bs(aZ, ba, bb, bc, bd, be, bf)
279+ let bE = bD
280+ let W = bE._1
281+ let ax = bE._2
282+ let ay = bE._3
283+ let bz = bE._4
284+ let bA = bE._5
285+ let bB = bE._6
286+ let bC = bE._7
287+ if ((bC > 0))
288+ then bD
289+ else if ((bC == 0))
290+ then bw(W, ax, ay, bz, bA, bB, bC)
291+ else throw("poolDwn < 0")
292+ }
293+ }
294+
295+
296+func bF (aZ,ba,bb,bc) = {
297+ let bG = aY(aZ, ba, bb, bc, X, Y, Z)
298+ let bH = bG._1
299+ let bI = bG._2
300+ let bJ = bG._3
301+ let bK = bG._4
302+ let bL = bG._5
303+ let bM = bG._6
304+ let bN = bG._7
305+[IntegerEntry(j, bH), IntegerEntry(l, bJ), IntegerEntry(k, bI), IntegerEntry(m, bK), IntegerEntry(D, bL), IntegerEntry(E, bM), IntegerEntry(F, bN)]
306+ }
307+
308+
309+func bO () = if ((ag == 0))
310+ then throw("nothing to settle")
311+ else {
312+ func bP (bQ) = IntegerEntry(s, (aj + bQ))
313+
314+ let bR = IntegerEntry(C, (ag - 1))
315+ let bS = (ah == ai)
316+ let bT = StringEntry(B, "")
317+ let bU = split(valueOrErrorMessage(getString(this, ah), "bad head pointer"), "|")
318+ let aA = bU[0]
319+ let aB = parseIntValue(bU[1])
320+ let aC = bU[2]
321+ let aD = parseIntValue(bU[3])
322+ let aE = addressFromStringValue(bU[4])
323+ let bV = bU[5]
324+ let bW = if ((ae > aD))
325+ then throw(((("corrupt state, rebalancedPriceIndex=" + toString(ae)) + ", request price id=") + toString(aD)))
326+ else if ((aD > ae))
327+ then throw("can't dequeue, too early, rebalance first")
328+ else if ((aA == ak))
329+ then {
330+ let bX = fraction(aB, P, 10000)
331+ let bY = (aB - bX)
332+ if ((aC == M))
333+ then {
334+ let bZ = fraction(K, bY, I)
335+ (bF((I + bY), J, (K + bZ), L) ++ [StringEntry(A, bV), bP(bX), bR, ScriptTransfer(aE, bZ, fromBase58String(M))])
336+ }
337+ else if ((aC == N))
338+ then {
339+ let bZ = fraction(L, bY, J)
340+ (bF(I, (J + bY), K, (L + bZ)) ++ [StringEntry(A, bV), bP(bX), bR, ScriptTransfer(aE, bZ, fromBase58String(N))])
341+ }
342+ else throw("bad token id")
343+ }
344+ else if ((aA == al))
345+ then {
346+ let ca = aB
347+ if ((aC == M))
348+ then {
349+ let cb = fraction(I, ca, K)
350+ let bX = fraction(cb, Q, 10000)
351+ let cc = if ((cb > bX))
352+ then (cb - bX)
353+ else 0
354+ (bF((I - cb), J, (K - ca), L) ++ [StringEntry(A, bV), bP(bX), bR, ScriptTransfer(aE, cc, fromBase58String(O))])
355+ }
356+ else if ((aC == N))
357+ then {
358+ let cb = fraction(J, ca, L)
359+ let bX = fraction(cb, Q, 10000)
360+ let cc = if ((cb > bX))
361+ then (cb - bX)
362+ else 0
363+ (bF(I, (J - cb), K, (L - ca)) ++ [StringEntry(A, bV), bP(bX), bR, ScriptTransfer(aE, cc, fromBase58String(O))])
364+ }
365+ else throw("bad token id")
366+ }
367+ else if ((aA == am))
368+ then {
369+ let cd = fraction(ab, aB, ac)
370+[IntegerEntry(D, (X + aB)), IntegerEntry(G, (ab + cd)), StringEntry(A, bV), bR, ScriptTransfer(aE, cd, fromBase58String(aa))]
371+ }
372+ else if ((aA == an))
373+ then {
374+ func ce (W) = fraction(W, aB, ab)
375+
376+ let cf = ce(X)
377+ let cg = ce(Y)
378+ let ch = ce(Z)
379+ let ci = fraction(cg, I, K)
380+ let cj = fraction(ch, J, L)
381+[IntegerEntry(D, (X - cf)), IntegerEntry(G, (ab - aB)), IntegerEntry(E, (Y - cg)), IntegerEntry(F, (Z - ch)), IntegerEntry(l, (K - cg)), IntegerEntry(m, (L - ch)), IntegerEntry(j, (I - ci)), IntegerEntry(k, (J - cj)), StringEntry(A, bV), bR, ScriptTransfer(aE, ((cf + ci) + cj), fromBase58String(O))]
382+ }
383+ else throw(("bad action: " + aA))
384+ if (bS)
385+ then bT :: bW
386+ else bW
387+ }
388+
389+
390+func ck () = {
391+ func cl (cm,cn,co) = {
392+ let cp = 100
393+ let cq = ((if ((co > cn))
394+ then co
395+ else cn) / cp)
396+ let cr = ((if ((cn > co))
397+ then co
398+ else cn) / cp)
399+ let W = (cr * cr)
400+ let ax = (((9 * cq) * cq) - ((15 * cq) * cr))
401+ fraction(cm, ((6 * W) + ax), ((7 * W) + ax))
402+ }
403+
404+ let cs = valueOrErrorMessage(getInteger(this, z), "inconsistent data")
405+ let ct = (cs + 1)
406+ let cu = valueOrErrorMessage(getInteger(ad, ("price_index_" + toString(cs))), "bad oracle data for settled price height")
407+ let cv = valueOrErrorMessage(getInteger(ad, ("price_" + toString(cu))), "bad oracle data for price")
408+ let cw = valueOrErrorMessage(getInteger(ad, ("price_index_" + toString(ct))), "no next price height")
409+ let cx = valueOrErrorMessage(getInteger(ad, ("price_" + toString(cw))), "no next price")
410+ let cy = if ((J > I))
411+ then I
412+ else J
413+ let cz = cl(cy, cv, cx)
414+ let cA = if ((cx > cv))
415+ then (I + cz)
416+ else (I - cz)
417+ let cB = if ((cx > cv))
418+ then (J - cz)
419+ else (J + cz)
420+ let cC = aY(cA, cB, K, L, X, Y, Z)
421+ let cD = cC._1
422+ let cE = cC._2
423+ let cF = cC._3
424+ let cG = cC._4
425+ let cH = cC._5
426+ let cI = cC._6
427+ let cJ = cC._7
428+[IntegerEntry(j, cD), IntegerEntry(k, cE), IntegerEntry(l, cF), IntegerEntry(m, cG), IntegerEntry(D, cH), IntegerEntry(E, cI), IntegerEntry(F, cJ), IntegerEntry(z, ct)]
429+ }
430+
431+
432+@Callable(aJ)
433+func init (cK,cL,cM,cN,cO,cP,cQ,cR,cp) = if (isDefined(getString(this, g)))
434+ then throw("already initialized")
435+ else {
436+ let cS = aJ.payments[0].amount
437+ let cT = (cS / 3)
438+ let cU = cT
439+ let cV = ((cS - cT) - cU)
440+ if (if (if ((cU == 0))
441+ then true
442+ else (cT == 0))
443+ then true
444+ else (cV == 0))
445+ then throw("can't init balances")
446+ else {
447+ let cW = valueOrErrorMessage(getInteger(valueOrErrorMessage(addressFromPublicKey(fromBase58String(cL)), "bad oracle address"), v), "can't find last oracle price index")
448+ let cX = Issue(cM, cO, ((100 * a) * a), 6, true)
449+ let cY = Issue(cN, cP, ((100 * a) * a), 6, true)
450+ let cZ = Issue(cQ, cR, ((100 * a) * a), 6, true)
451+ let da = calculateAssetId(cX)
452+ let db = calculateAssetId(cY)
453+ let dc = calculateAssetId(cZ)
454+[cX, cY, cZ, StringEntry(g, toBase58String(da)), StringEntry(h, toBase58String(db)), StringEntry(i, toBase58String(value(aJ.payments[0].assetId))), StringEntry(H, toBase58String(dc)), StringEntry(u, cL), IntegerEntry(z, cW), IntegerEntry(j, cT), IntegerEntry(k, cU), IntegerEntry(l, (cT / cp)), IntegerEntry(m, (cU / cp)), IntegerEntry(G, (cV / cp)), IntegerEntry(F, 0), IntegerEntry(E, 0), IntegerEntry(D, cV), StringEntry(c, cK), ScriptTransfer(aJ.caller, (cT / cp), da), ScriptTransfer(aJ.caller, (cU / cp), db), ScriptTransfer(aJ.caller, (cV / cp), dc)]
455+ }
456+ }
457+
458+
459+
460+@Callable(dd)
461+func withdrawFee (de) = if ((de > aj))
462+ then throw(("too much. available: " + toString(aj)))
463+ else [IntegerEntry(s, (aj - de)), ScriptTransfer(ar, de, fromBase58String(O))]
464+
465+
466+
467+@Callable(aJ)
468+func requestRedeem () = if ((aI(aJ) == unit))
469+ then {
470+ let aM = toBase58String(valueOrErrorMessage(aJ.payments[0].assetId, "waves are not accepted here"))
471+ aR(toBase58String(aJ.transactionId), al, aJ.payments[0].amount, aM, (af + 1), toString(aJ.caller))
472+ }
473+ else throw("doesn't happen")
474+
475+
476+
477+@Callable(aJ)
478+func requestIssue (aG) = if ((aJ.caller == this))
479+ then throw("can't do")
480+ else if (!(V(aJ.caller)))
481+ then throw("only whitelisted can do")
482+ else {
483+ let aK = throw((((((("only BULL(" + M) + ") or BEAR(") + N) + ") tokens are available in exchange for USDN(") + O) + ")"))
484+ if (if ((aG != M))
485+ then (aG != N)
486+ else false)
487+ then aK
488+ else if ((aJ.payments[0].assetId != fromBase58String(O)))
489+ then aK
490+ else if ((R > aJ.payments[0].amount))
491+ then throw((("Attached payment too small. Min required: " + toString((R / 1000000))) + " USDN"))
492+ else {
493+ let df = aF(aG)
494+ if (if ((U == ""))
495+ then (aJ.payments[0].amount > df)
496+ else false)
497+ then throw((("trying to issue more than pool can handle. Max attachment allowed = " + toString((df / 1000000))) + " USDN"))
498+ else aR(toBase58String(aJ.transactionId), ak, aJ.payments[0].amount, aG, (af + 1), toString(aJ.caller))
499+ }
500+ }
501+
502+
503+
504+@Callable(aJ)
505+func settle () = {
506+ let dg = (ah == "")
507+ let dh = (af > ae)
508+ if (dg)
509+ then if (dh)
510+ then ck()
511+ else throw("[OK] all done, carry on")
512+ else {
513+ let bU = split(valueOrErrorMessage(getString(this, ah), "bad head pointer"), "|")
514+ let aD = parseIntValue(bU[3])
515+ if ((aD > ae))
516+ then if (dh)
517+ then ck()
518+ else throw("[OK] need to wait")
519+ else if ((aD == ae))
520+ then bO()
521+ else throw("corrupt data, future price id already rebalanced")
522+ }
523+ }
524+
525+
526+
527+@Callable(aJ)
528+func requestPool () = if (!(V(aJ.caller)))
529+ then throw("only whitelisted can do")
530+ else {
531+ let di = (("main token must be attached(" + O) + ")")
532+ let dj = aJ.payments[0]
533+ if ((dj.assetId != fromBase58String(O)))
534+ then throw(di)
535+ else if ((T > dj.amount))
536+ then throw(((("pool at least " + toString(T)) + " ") + O))
537+ else aR(toBase58String(aJ.transactionId), am, aJ.payments[0].amount, "", (af + 1), toString(aJ.caller))
538+ }
539+
540+
541+
542+@Callable(aJ)
543+func requestUnpool () = {
544+ let di = (("only pool token allowed(" + aa) + ")")
545+ let dj = aJ.payments[0]
546+ if ((dj.assetId != fromBase58String(aa)))
547+ then throw(di)
548+ else {
549+ let dk = fraction(ac, dj.amount, ab)
550+ if ((T > dk))
551+ then throw(((("unpool at least for" + toString(T)) + " ") + O))
552+ else aR(toBase58String(aJ.transactionId), an, aJ.payments[0].amount, "", (af + 1), toString(aJ.caller))
553+ }
554+ }
555+
556+
557+@Verifier(dl)
558+func dm () = true
559+

github/deemru/w8io/169f3d6 
44.54 ms