tx · E9wMHiqZrC8cG3MuZrAbEHVk2R1rkLhQMHkYxx4rKHqv

3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1:  -0.01400000 Waves

2020.11.30 20:59 [2352151] smart account 3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1 > SELF 0.00000000 Waves

{ "type": 13, "id": "E9wMHiqZrC8cG3MuZrAbEHVk2R1rkLhQMHkYxx4rKHqv", "fee": 1400000, "feeAssetId": null, "timestamp": 1606758831250, "version": 2, "chainId": 87, "sender": "3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1", "senderPublicKey": "5aTg4oxM77iRmUGy3y8Zavn5fhVbgtUciAuSGfCJAYjn", "proofs": [ "", "3ed3PXxhaKjcvo2AHVhFq3VQHXB1T9B7NdVbqWQVNa3knG1eBeerb9xAgyDUVCbaYdezvsJnRGTA24QB99ZMidSn", "429UpfcSwueJvRGmmKQEbm49PmY9Kjnwt5XbTnPh3z8BWhAALmVE3z99demhvcpPtauG7XpDX7tRZsoAone2HW5N" ], "script": "base64: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bmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAFd2F2ZXMFAAAAByRtYXRjaDACAAAABVdBVkVTCQAAAgAAAAECAAAAC01hdGNoIGVycm9yAAAAAAhiYWxhbmNlQQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAALa2V5QmFsYW5jZUEAAAAACGJhbGFuY2VCCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAAtrZXlCYWxhbmNlQgAAAAAMc2hhcmVBc3NldElkCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMFAAAAD2tleVNoYXJlQXNzZXRJZAAAAAAQc2hhcmVBc3NldFN1cHBseQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAATa2V5U2hhcmVBc3NldFN1cHBseQAAAAAJaW52YXJpYW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAAxrZXlJbnZhcmlhbnQAAAAACmNvbW1pc3Npb24AAAAAAAAAAfQAAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlAAAAAAAAAADIAAAAABFmZWVTY2FsZURlbGltaXRlcgAAAAAAAA9CQAAAAAALc2NhbGVWYWx1ZTMAAAAAAAAAA+gAAAAAC3NjYWxlVmFsdWU4AAAAAAAF9eEAAAAAAAxzY2FsZVZhbHVlMTIAAAAA6NSlEAAAAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyAAAAAAAAAAPoAAAAABFzY2FsZVZhbHVlOERpZ2l0cwAAAAAAAAAACAAAAAASc2NhbGVWYWx1ZTEyRGlnaXRzAAAAAAAAAAAMAAAAAA1kQXBwVGhyZXNob2xkAAAAAAAAAAAyAAAAABZkQXBwVGhyZXNob2xkRGVsaW1pdGVyAAAAAAAAAABkAAAAABFyYXRpb1RocmVzaG9sZE1heAAAAAAABfXhAAAAAAARcmF0aW9UaHJlc2hvbGRNaW4AAAAAAAX13RgAAAAABWFscGhhAAAAAAAAAAAyAAAAAAthbHBoYURpZ2l0cwAAAAAAAAAAAgAAAAAEYmV0YQAAAAAA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Y2FsY3VsYXRlSG93TWFueVNlbmRBAAAABQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQAAAAVbWluVG9rZW5SZWNlaXZlQW1vdW50AAAAB2Ftb3VudEEAAAAHYW1vdW50QgAAABJ0b2tlblJlY2VpdmVBbW91bnQEAAAADXNsaXBwYWdlVmFsdWUJAABlAAAAAgUAAAALc2NhbGVWYWx1ZTgJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAAAAAAAAAAAAQAAAAAAAJiWgAQAAAAXZGVsdGFNYXhBbmRNaW5TZW5kVmFsdWUJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkBQAAABVtaW5Ub2tlblJlY2VpdmVBbW91bnQEAAAAEWFtb3VudFRvU2VuZFN0ZXAxCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAEFAAAAF2RlbHRhTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwMgkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAACBQAAABdkZWx0YU1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDMJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAwUAAAAXZGVsdGFNYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAEWFtb3VudFRvU2VuZFN0ZXA0CQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAQFAAAAF2RlbHRhTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwNQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAFBQAAABdkZWx0YU1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAABeQkAAGQAAAACBQAAAAdhbW91bnRCBQAAABJ0b2tlblJlY2VpdmVBbW91bnQEAAAADGludmFyaWFudE5ldwkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAAB2Ftb3VudEEFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAUAAAABeQQAAAAXaW52YXJpYW50RXN0aW1hdGVkUmF0aW8JAABrAAAAAwUAAAAJaW52YXJpYW50BQAAAAtzY2FsZVZhbHVlOAUAAAAMaW52YXJpYW50TmV3AwkAAGcAAAACAAAAAAAAAAAACQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGUAAAACBQAAAAdhbW91bnRBBQAAABFhbW91bnRUb1NlbmRTdGVwNQUAAAABeQUAAAAJaW52YXJpYW50CQAAAgAAAAECAAAAJG1pblRva2VuUmVjZWl2ZUFtb3VudCB0b28gbGFyZ2UuZXJyMQMDCQAAZgAAAAIFAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvBQAAAA1zbGlwcGFnZVZhbHVlCQAAZgAAAAIJAABlAAAAAgUAAAAMaW52YXJpYW50TmV3BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAHBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAAB2Ftb3VudEEFAAAAEWFtb3VudFRvU2VuZFN0ZXAxBQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMQkAAGUAAAACBQAAABFmZWVTY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAAB2Ftb3VudEEFAAAAEWFtb3VudFRvU2VuZFN0ZXAyBQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMgkAAGUAAAACBQAAABFmZWVTY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAAB2Ftb3VudEEFAAAAEWFtb3VudFRvU2VuZFN0ZXAzBQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwMwkAAGUAAAACBQAAABFmZWVTY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAAB2Ftb3VudEEFAAAAEWFtb3VudFRvU2VuZFN0ZXA0BQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwNAkAAGUAAAACBQAAABFmZWVTY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIDCQAAZgAAAAIJAABlAAAAAgkBAAAADWludmFyaWFudENhbGMAAAACCQAAZQAAAAIFAAAAB2Ftb3VudEEFAAAAEWFtb3VudFRvU2VuZFN0ZXA1BQAAAAF5BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAJAABpAAAAAgkAAGgAAAACBQAAABFhbW91bnRUb1NlbmRTdGVwNQkAAGUAAAACBQAAABFmZWVTY2FsZURlbGltaXRlcgUAAAAKY29tbWlzc2lvbgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIJAAACAAAAAQIAAAA+c29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hpbGUgd29ya2luZyB3aXRoIGFtb3VudFRvU2VuZFN0ZXAuIGVycjIBAAAAFWNhbGN1bGF0ZUhvd01hbnlTZW5kQgAAAAUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkAAAAFW1pblRva2VuUmVjZWl2ZUFtb3VudAAAAAdhbW91bnRBAAAAB2Ftb3VudEIAAAASdG9rZW5SZWNlaXZlQW1vdW50BAAAAA1zbGlwcGFnZVZhbHVlCQAAZQAAAAIFAAAAC3NjYWxlVmFsdWU4CQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgAAAAAAAAAAAEAAAAAAACYloAEAAAAF2RlbHRhTWF4QW5kTWluU2VuZFZhbHVlCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAUAAAAVbWluVG9rZW5SZWNlaXZlQW1vdW50BAAAABFhbW91bnRUb1NlbmRTdGVwMQkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAABBQAAABdkZWx0YU1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDIJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAAAgUAAAAXZGVsdGFNYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAEWFtb3VudFRvU2VuZFN0ZXAzCQAAZQAAAAIFAAAAFWFtb3VudFRvU2VuZEVzdGltYXRlZAkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAMFAAAAF2RlbHRhTWF4QW5kTWluU2VuZFZhbHVlAAAAAAAAAAAFBAAAABFhbW91bnRUb1NlbmRTdGVwNAkAAGUAAAACBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQJAABpAAAAAgkAAGgAAAACAAAAAAAAAAAEBQAAABdkZWx0YU1heEFuZE1pblNlbmRWYWx1ZQAAAAAAAAAABQQAAAARYW1vdW50VG9TZW5kU3RlcDUJAABlAAAAAgUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkCQAAaQAAAAIJAABoAAAAAgAAAAAAAAAABQUAAAAXZGVsdGFNYXhBbmRNaW5TZW5kVmFsdWUAAAAAAAAAAAUEAAAAAXgJAABkAAAAAgUAAAAHYW1vdW50QQUAAAASdG9rZW5SZWNlaXZlQW1vdW50BAAAAAxpbnZhcmlhbnROZXcJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAdhbW91bnRCBQAAABVhbW91bnRUb1NlbmRFc3RpbWF0ZWQEAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvCQAAawAAAAMFAAAACWludmFyaWFudAUAAAALc2NhbGVWYWx1ZTgFAAAADGludmFyaWFudE5ldwMJAABnAAAAAgAAAAAAAAAAAAkAAGUAAAACCQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAAXgJAABlAAAAAgUAAAAHYW1vdW50QgUAAAARYW1vdW50VG9TZW5kU3RlcDUFAAAACWludmFyaWFudAkAAAIAAAABAgAAACRtaW5Ub2tlblJlY2VpdmVBbW91bnQgdG9vIGxhcmdlLmVycjEDAwkAAGYAAAACBQAAABdpbnZhcmlhbnRFc3RpbWF0ZWRSYXRpbwUAAAANc2xpcHBhZ2VWYWx1ZQkAAGYAAAACCQAAZQAAAAIFAAAADGludmFyaWFudE5ldwUAAAAJaW52YXJpYW50AAAAAAAAAAAABwUAAAAVYW1vdW50VG9TZW5kRXN0aW1hdGVkAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAdhbW91bnRCBQAAABFhbW91bnRUb1NlbmRTdGVwMQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDEJAABlAAAAAgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAEWZlZVNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAdhbW91bnRCBQAAABFhbW91bnRUb1NlbmRTdGVwMgUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDIJAABlAAAAAgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAEWZlZVNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAdhbW91bnRCBQAAABFhbW91bnRUb1NlbmRTdGVwMwUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDMJAABlAAAAAgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAEWZlZVNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAdhbW91bnRCBQAAABFhbW91bnRUb1NlbmRTdGVwNAUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDQJAABlAAAAAgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAEWZlZVNjYWxlRGVsaW1pdGVyAwkAAGYAAAACCQAAZQAAAAIJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAABeAkAAGUAAAACBQAAAAdhbW91bnRCBQAAABFhbW91bnRUb1NlbmRTdGVwNQUAAAAJaW52YXJpYW50AAAAAAAAAAAACQAAaQAAAAIJAABoAAAAAgUAAAARYW1vdW50VG9TZW5kU3RlcDUJAABlAAAAAgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAEWZlZVNjYWxlRGVsaW1pdGVyCQAAAgAAAAECAAAAPnNvbWV0aGluZyB3ZW50IHdyb25nIHdoaWxlIHdvcmtpbmcgd2l0aCBhbW91bnRUb1NlbmRTdGVwLiBlcnIyAQAAAAxnZXRBc3NldEluZm8AAAABAAAAB2Fzc2V0SWQEAAAAByRtYXRjaDAFAAAAB2Fzc2V0SWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAmlkBQAAAAckbWF0Y2gwBAAAAAhzdHJpbmdJZAkAAlgAAAABBQAAAAJpZAQAAAAEaW5mbwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEFAAAAAmlkCQABLAAAAAIJAAEsAAAAAgIAAAAGQXNzZXQgBQAAAAhzdHJpbmdJZAIAAAAOIGRvZXNuJ3QgZXhpc3QJAAUVAAAAAwUA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AAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAApwbXRBbW91bnRBCAUAAAANJHQwMTEyNTYxMTMzMwAAAAJfMQQAAAALcG10QXNzZXRJZEEIBQAAAA0kdDAxMTI1NjExMzMzAAAAAl8yBAAAAA0kdDAxMTMzODExNDE1CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEAAAAHYXNzZXRJZAQAAAAKcG10QW1vdW50QggFAAAADSR0MDExMzM4MTE0MTUAAAACXzEEAAAAC3BtdEFzc2V0SWRCCAUAAAANJHQwMTEzMzgxMTQxNQAAAAJfMgQAAAANJHQwMTE0MjAxMTQ5NwkBAAAADGdldEFzc2V0SW5mbwAAAAEFAAAAC3BtdEFzc2V0SWRBBAAAAA5wbXRTdHJBc3NldElkQQgFAAAADSR0MDExNDIwMTE0OTcAAAACXzEEAAAADXBtdEFzc2V0TmFtZUEIBQAAAA0kdDAxMTQyMDExNDk3AAAAAl8yBAAAAAxwbXREZWNpbWFsc0EIBQAAAA0kdDAxMTQyMDExNDk3AAAAAl8zBAAAAA0kdDAxMTUwMjExNTc5CQEAAAAMZ2V0QXNzZXRJbmZvAAAAAQUAAAALcG10QXNzZXRJZEIEAAAADnBtdFN0ckFzc2V0SWRCCAUAAAANJHQwMTE1MDIxMTU3OQAAAAJfMQQAAAANcG10QXNzZXROYW1lQggFAAAADSR0MDExNTAyMTE1NzkAAAACXzIEAAAADHBtdERlY2ltYWxzQggFAAAADSR0MDExNTAyMTE1NzkAAAACXzMDCQEAAAAJaXNEZWZpbmVkAAAAAQkABBsAAAACBQAAAAR0aGlzBQAAAAlrZXlBY3RpdmUJAQAAAA10aHJvd0lzQWN0aXZlAAAAAAMJAAAAAAAAAgUAAAALcG10QXNzZXRJZEEFAAAAC3BtdEFzc2V0SWRCCQAAAgAAAAECAAAAGEFzc2V0cyBtdXN0IGJlIGRpZmZlcmVudAQAAAAJc2hhcmVOYW1lCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAFzCQABLwAAAAIFAAAADXBtdEFzc2V0TmFtZUEAAAAAAAAAAAcCAAAAAV8JAAEvAAAAAgUAAAANcG10QXNzZXROYW1lQgAAAAAAAAAABwQAAAAQc2hhcmVEZXNjcmlwdGlvbgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAIlNoYXJlVG9rZW4gb2YgU3dvcEZpIHByb3RvY29sIGZvciAFAAAADXBtdEFzc2V0TmFtZUECAAAABSBhbmQgBQAAAA1wbXRBc3NldE5hbWVCAgAAAAwgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAEdGhpcwQAAAANc2hhcmVEZWNpbWFscwkAAGkAAAACCQAAZAAAAAIFAAAADHBtdERlY2ltYWxzQQUAAAAMcG10RGVjaW1hbHNCAAAAAAAAAAACBAAAABJzaGFyZUluaXRpYWxTdXBwbHkJAABrAAAAAwkAAGwAAAAGBQAAAApwbXRBbW91bnRBBQAAAAxwbXREZWNpbWFsc0EAAAAAAAAAAAUAAAAAAAAAAAEFAAAADHBtdERlY2ltYWxzQQUAAAAISEFMRkRPV04JAABsAAAABgUAAAAKcG10QW1vdW50QgUAAAAMcG10RGVjaW1hbHNCAAAAAAAAAAAFAAAAAAAAAAABBQAAAAxwbXREZWNpbWFsc0IFAAAACEhBTEZET1dOCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAFAAAADXNoYXJlRGVjaW1hbHMAAAAAAAAAAAAAAAAAAAAAAAAFAAAACEhBTEZET1dOBAAAAApzaGFyZUlzc3VlCQAEQgAAAAUFAAAACXNoYXJlTmFtZQUAAAAQc2hhcmVEZXNjcmlwdGlvbgUAAAASc2hhcmVJbml0aWFsU3VwcGx5BQAAAA1zaGFyZURlY2ltYWxzBgQAAAAMc2hhcmVJc3N1ZUlkCQAEOAAAAAEFAAAACnNoYXJlSXNzdWUEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgUAAAAKcG10QW1vdW50QQUAAAAKcG10QW1vdW50QgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAprZXlWZXJzaW9uBQAAAAd2ZXJzaW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUGCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAC2tleUFzc2V0SWRBBQAAAA5wbXRTdHJBc3NldElkQQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAtrZXlBc3NldElkQgUAAAAOcG10U3RyQXNzZXRJZEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBBQAAAApwbXRBbW91bnRBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQgUAAAAKcG10QW1vdW50QgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50BQAAABNpbnZhcmlhbnRDYWxjdWxhdGVkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA1rZXlDb21taXNzaW9uBQAAAApjb21taXNzaW9uCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABRrZXlGZWVTY2FsZURlbGltaXRlcgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIJAARMAAAAAgUAAAAKc2hhcmVJc3N1ZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA9rZXlTaGFyZUFzc2V0SWQJAAJYAAAAAQUAAAAMc2hhcmVJc3N1ZUlkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlTaGFyZUFzc2V0U3VwcGx5BQAAABJzaGFyZUluaXRpYWxTdXBwbHkJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABJzaGFyZUluaXRpYWxTdXBwbHkFAAAADHNoYXJlSXNzdWVJZAUAAAADbmlsAAAAAWkBAAAAFnJlcGxlbmlzaFdpdGhUd29Ub2tlbnMAAAABAAAAEXNsaXBwYWdlVG9sZXJhbmNlBAAAAAtwbXRBc3NldElkQQgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAALcG10QXNzZXRJZEIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABAAAAB2Fzc2V0SWQEAAAACnBtdEFtb3VudEEJAQAAABBkZWR1Y3RTdGFraW5nRmVlAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BQAAAAtwbXRBc3NldElkQQQAAAAKcG10QW1vdW50QgkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAQAAAAZhbW91bnQFAAAAC3BtdEFzc2V0SWRCBAAAAAp0b2tlblJhdGlvCQAAawAAAAMJAABrAAAAAwUAAAAIYmFsYW5jZUEFAAAAC3NjYWxlVmFsdWU4BQAAAApwbXRBbW91bnRBBQAAAAtzY2FsZVZhbHVlMwkAAGsAAAADBQAAAAhiYWxhbmNlQgUAAAALc2NhbGVWYWx1ZTgFAAAACnBtdEFtb3VudEIEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAABrAAAAAwUAAAAKcG10QW1vdW50QQUAAAALc2NhbGVWYWx1ZTgFAAAACGJhbGFuY2VBBAAAABNyYXRpb1NoYXJlVG9rZW5zSW5CCQAAawAAAAMFAAAACnBtdEFtb3VudEIFAAAAC3NjYWxlVmFsdWU4BQAAAAhiYWxhbmNlQgQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAawAAAAMJAAGXAAAAAQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIFAAAAA25pbAUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAALc2NhbGVWYWx1ZTgEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAKcG10QW1vdW50QQkAAGQAAAACBQAAAAhiYWxhbmNlQgUAAAAKcG10QW1vdW50QgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAQAAAA90aHJvd0lzSW5hY3RpdmUAAAAAAwMJAABmAAAAAgAAAAAAAAAAAAUAAAARc2xpcHBhZ2VUb2xlcmFuY2UGCQAAZgAAAAIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAClTbGlwcGFnZSB0b2xlcmFuY2UgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIAkAAaQAAAABBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgIAAAAWIGluY2x1c2l2ZWx5LiBBY3R1YWw6IAkAAaQAAAABBQAAABFzbGlwcGFnZVRvbGVyYW5jZQMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAIJAAACAAAAAQIAAAAcVHdvIGF0dGFjaGVkIGFzc2V0cyBleHBlY3RlZAMDCQEAAAACIT0AAAACBQAAAAtwbXRBc3NldElkQQUAAAAIYXNzZXRJZEEGCQEAAAACIT0AAAACBQAAAAtwbXRBc3NldElkQgUAAAAIYXNzZXRJZEIJAQAAAAt0aHJvd0Fzc2V0cwAAAAADAwkAAGYAAAACCQAAaQAAAAIJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTMJAABlAAAAAgUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAABpzbGlwcGFnZVRvbGVyYW5jZURlbGltaXRlcgUAAAAKdG9rZW5SYXRpbwYJAABmAAAAAgUAAAAKdG9rZW5SYXRpbwkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWUzCQAAZAAAAAIFAAAAGnNsaXBwYWdlVG9sZXJhbmNlRGVsaW1pdGVyBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAac2xpcHBhZ2VUb2xlcmFuY2VEZWxpbWl0ZXIJAAACAAAAAQIAAAA9SW5jb3JyZWN0IGFzc2V0cyBhbW91bnQ6IGFtb3VudHMgbXVzdCBoYXZlIHRoZSBjb250cmFjdCByYXRpbwMJAAAAAAAAAgUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAHVRvbyBzbWFsbCBhbW91bnQgdG8gcmVwbGVuaXNoAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAKcG10QW1vdW50QQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACnBtdEFtb3VudEIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABkAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAxzaGFyZUFzc2V0SWQFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQFAAAADHNoYXJlQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAFXJlcGxlbmlzaFdpdGhPbmVUb2tlbgAAAAIAAAATdmlydHVhbFN3YXBUb2tlblBheQAAABN2aXJ0dWFsU3dhcFRva2VuR2V0BAAAAA0kdDAxNjA5MjE2MTY3CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAANJHQwMTYwOTIxNjE2NwAAAAJfMQQAAAAKcG10QXNzZXRJZAgFAAAADSR0MDE2MDkyMTYxNjcAAAACXzIEAAAAD3BtdE1pblRocmVzaG9sZAAAAAAAAExLQAQAAAAddGhyZXNob2xkVmFsdWVGb3JNaW5Ub2xlcmFuY2UAAAAAAAL68IAEAAAACXRvbGVyYW5jZQMJAABmAAAAAgUAAAAddGhyZXNob2xkVmFsdWVGb3JNaW5Ub2xlcmFuY2UFAAAACXBtdEFtb3VudAAAAAAAAAGGoAAAAAAAAAAAAQQAAAAcc2xpcHBhZ2VWYWx1ZU1pbkZvclJlcGxlbmlzaAkAAGUAAAACBQAAAAtzY2FsZVZhbHVlOAkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4BQAAAAl0b2xlcmFuY2UAAAAAAACYloAEAAAAHHNsaXBwYWdlVmFsdWVNYXhGb3JSZXBsZW5pc2gJAABkAAAAAgUAAAALc2NhbGVWYWx1ZTgJAABpAAAAAgkAAGgAAAACBQAAAAtzY2FsZVZhbHVlOAUAAAAJdG9sZXJhbmNlAAAAAAAAmJaABAAAABdzbGlwcGFnZVZhbHVlTWluRm9yU3dhcAkAAGUAAAACBQAAAAtzY2FsZVZhbHVlOAkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4AAAAAAAAAAABAAAAAAAAmJaABAAAABdzbGlwcGFnZVZhbHVlTWF4Rm9yU3dhcAkAAGQAAAACBQAAAAtzY2FsZVZhbHVlOAkAAGkAAAACCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4AAAAAAAAAAABAAAAAAAAmJaAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkBAAAAD3Rocm93SXNJbmFjdGl2ZQAAAAADCQAAZgAAAAIFAAAAD3BtdE1pblRocmVzaG9sZAUAAAAJcG10QW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAPUGF5bWVudCBhbW91bnQgCQABpAAAAAEFAAAACXBtdEFtb3VudAIAAAAnIGRvZXMgbm90IGV4Y2VlZCB0aGUgbWluaW11bSBhbW91bnQgb2YgCQABpAAAAAEFAAAAD3BtdE1pblRocmVzaG9sZAIAAAAHIHRva2VucwMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdT25lIGF0dGFjaGVkIHBheW1lbnQgZXhwZWN0ZWQDCQEAAAABIQAAAAEFAAAAEGhhc0Vub3VnaEJhbGFuY2UJAQAAABFzdXNwZW5kU3VzcGljaW91cwAAAAADCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAACGFzc2V0SWRBBAAAAAl2aXJ0UmVwbEEJAABlAAAAAgUAAAAJcG10QW1vdW50BQAAABN2aXJ0dWFsU3dhcFRva2VuUGF5BAAAAAl2aXJ0UmVwbEIFAAAAE3ZpcnR1YWxTd2FwVG9rZW5HZXQEAAAAEWJhbGFuY2VBZnRlclN3YXBBCQAAZAAAAAIFAAAACGJhbGFuY2VBBQAAABN2aXJ0dWFsU3dhcFRva2VuUGF5BAAAABFiYWxhbmNlQWZ0ZXJTd2FwQgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAATdmlydHVhbFN3YXBUb2tlbkdldAQAAAAMaW52YXJpYW50TmV3CQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAAEWJhbGFuY2VBZnRlclN3YXBBBQAAABFiYWxhbmNlQWZ0ZXJTd2FwQgQAAAAXaW52YXJpYW50RXN0aW1hdGVkUmF0aW8JAABrAAAAAwUAAAAJaW52YXJpYW50BQAAAAtzY2FsZVZhbHVlOAUAAAAMaW52YXJpYW50TmV3AwMJAABmAAAAAgUAAAAXaW52YXJpYW50RXN0aW1hdGVkUmF0aW8FAAAAF3NsaXBwYWdlVmFsdWVNaW5Gb3JTd2FwCQAAZwAAAAIJAABlAAAAAgUAAAAMaW52YXJpYW50TmV3BQAAAAlpbnZhcmlhbnQAAAAAAAAAAAAHBAAAACVyYXRpb1ZpcnR1YWxCYWxhbmNlVG9WaXJ0dWFsUmVwbGVuaXNoCQAAaQAAAAIJAABrAAAAAwUAAAARYmFsYW5jZUFmdGVyU3dhcEEJAABoAAAAAgUAAAALc2NhbGVWYWx1ZTgFAAAAC3NjYWxlVmFsdWU4BQAAABFiYWxhbmNlQWZ0ZXJTd2FwQgkAAGsAAAADBQAAAAl2aXJ0UmVwbEEFAAAAC3NjYWxlVmFsdWU4BQAAAAl2aXJ0UmVwbEIDAwkAAGYAAAACBQAAABxzbGlwcGFnZVZhbHVlTWluRm9yUmVwbGVuaXNoBQAAACVyYXRpb1ZpcnR1YWxCYWxhbmNlVG9WaXJ0dWFsUmVwbGVuaXNoBgkAAGYAAAACBQAAACVyYXRpb1ZpcnR1YWxCYWxhbmNlVG9WaXJ0dWFsUmVwbGVuaXNoBQAAABxzbGlwcGFnZVZhbHVlTWF4Rm9yUmVwbGVuaXNoCQAAAgAAAAECAAAAZnN3b3Agd2l0aCB2aXJ0dWFsU3dhcFRva2VuUGF5IGFuZCB2aXJ0dWFsU3dhcFRva2VuR2V0IHBvc3NpYmxlLCBidXQgcmF0aW8gYWZ0ZXIgdmlydHVhbCBzd2FwIGluY29ycmVjdAQAAAATcmF0aW9TaGFyZVRva2Vuc0luQQkAAGsAAAADCQEAAAAQZGVkdWN0U3Rha2luZ0ZlZQAAAAIFAAAACXZpcnRSZXBsQQUAAAAIYXNzZXRJZEEFAAAAC3NjYWxlVmFsdWU4BQAAABFiYWxhbmNlQWZ0ZXJTd2FwQQQAAAATcmF0aW9TaGFyZVRva2Vuc0luQgkAAGsAAAADCQEAAAAQZGVkdWN0U3Rha2luZ0ZlZQAAAAIFAAAACXZpcnRSZXBsQgUAAAAIYXNzZXRJZEIFAAAAC3NjYWxlVmFsdWU4BQAAABFiYWxhbmNlQWZ0ZXJTd2FwQgQAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50CQAAawAAAAMJAAGXAAAAAQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5BCQAETAAAAAIFAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIFAAAAA25pbAUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAALc2NhbGVWYWx1ZTgEAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAJcG10QW1vdW50BQAAAAhiYWxhbmNlQgQAAAALbmV3QmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACXBtdEFtb3VudAQAAAALbmV3QmFsYW5jZUIFAAAACGJhbGFuY2VCBAAAABNkQXBwVGhyZXNob2xkQW1vdW50CQAAawAAAAMJAABkAAAAAgUAAAALbmV3QmFsYW5jZUEFAAAAC25ld0JhbGFuY2VCBQAAAA1kQXBwVGhyZXNob2xkCQAAaAAAAAIAAAAAAAAAAAIFAAAAFmRBcHBUaHJlc2hvbGREZWxpbWl0ZXIDAwkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAAtuZXdCYWxhbmNlQQYJAABmAAAAAgUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAALbmV3QmFsYW5jZUIJAQAAAA50aHJvd1RocmVzaG9sZAAAAAMFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAC25ld0JhbGFuY2VBBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAHUmVpc3N1ZQAAAAMFAAAADHNoYXJlQXNzZXRJZAUAAAAVc2hhcmVUb2tlblRvUGF5QW1vdW50BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAUAAAAMc2hhcmVBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABNrZXlTaGFyZUFzc2V0U3VwcGx5CQAAZAAAAAIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUEFAAAAC25ld0JhbGFuY2VBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQFAAAAA25pbAkAAAIAAAABAgAAADppbmNvcnJlY3QgdmlydHVhbFN3YXBUb2tlblBheSBvciB2aXJ0dWFsU3dhcFRva2VuR2V0IHZhbHVlAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQgQAAAAJdmlydFJlcGxCCQAAZQAAAAIFAAAACXBtdEFtb3VudAUAAAATdmlydHVhbFN3YXBUb2tlblBheQQAAAAJdmlydFJlcGxBBQAAABN2aXJ0dWFsU3dhcFRva2VuR2V0BAAAABFiYWxhbmNlQWZ0ZXJTd2FwQQkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAATdmlydHVhbFN3YXBUb2tlbkdldAQAAAARYmFsYW5jZUFmdGVyU3dhcEIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAAE3ZpcnR1YWxTd2FwVG9rZW5QYXkEAAAADGludmFyaWFudE5ldwkBAAAADWludmFyaWFudENhbGMAAAACBQAAABFiYWxhbmNlQWZ0ZXJTd2FwQQUAAAARYmFsYW5jZUFmdGVyU3dhcEIEAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvCQAAawAAAAMFAAAACWludmFyaWFudAUAAAALc2NhbGVWYWx1ZTgFAAAADGludmFyaWFudE5ldwMDCQAAZgAAAAIFAAAAF2ludmFyaWFudEVzdGltYXRlZFJhdGlvBQAAABdzbGlwcGFnZVZhbHVlTWluRm9yU3dhcAkAAGcAAAACCQAAZQAAAAIFAAAADGludmFyaWFudE5ldwUAAAAJaW52YXJpYW50AAAAAAAAAAAABwQAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAkAAGkAAAACCQAAawAAAAMFAAAAEWJhbGFuY2VBZnRlclN3YXBBCQAAaAAAAAIFAAAAC3NjYWxlVmFsdWU4BQAAAAtzY2FsZVZhbHVlOAUAAAARYmFsYW5jZUFmdGVyU3dhcEIJAABrAAAAAwUAAAAJdmlydFJlcGxBBQAAAAtzY2FsZVZhbHVlOAUAAAAJdmlydFJlcGxCAwMJAABmAAAAAgUAAAAcc2xpcHBhZ2VWYWx1ZU1pbkZvclJlcGxlbmlzaAUAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAYJAABmAAAAAgUAAAAlcmF0aW9WaXJ0dWFsQmFsYW5jZVRvVmlydHVhbFJlcGxlbmlzaAUAAAAcc2xpcHBhZ2VWYWx1ZU1heEZvclJlcGxlbmlzaAkAAAIAAAABAgAAAGZzd29wIHdpdGggdmlydHVhbFN3YXBUb2tlblBheSBhbmQgdmlydHVhbFN3YXBUb2tlbkdldCBwb3NzaWJsZSwgYnV0IHJhdGlvIGFmdGVyIHZpcnR1YWwgc3dhcCBpbmNvcnJlY3QEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkEJAABrAAAAAwkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACBQAAAAl2aXJ0UmVwbEEFAAAACGFzc2V0SWRBBQAAAAtzY2FsZVZhbHVlOAUAAAARYmFsYW5jZUFmdGVyU3dhcEEEAAAAE3JhdGlvU2hhcmVUb2tlbnNJbkIJAABrAAAAAwkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACBQAAAAl2aXJ0UmVwbEIFAAAACGFzc2V0SWRCBQAAAAtzY2FsZVZhbHVlOAUAAAARYmFsYW5jZUFmdGVyU3dhcEIEAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAkAAGsAAAADCQABlwAAAAEJAARMAAAAAgUAAAATcmF0aW9TaGFyZVRva2Vuc0luQQkABEwAAAACBQAAABNyYXRpb1NoYXJlVG9rZW5zSW5CBQAAAANuaWwFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAAC3NjYWxlVmFsdWU4BAAAABNpbnZhcmlhbnRDYWxjdWxhdGVkCQEAAAANaW52YXJpYW50Q2FsYwAAAAIFAAAACGJhbGFuY2VBCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAAAlwbXRBbW91bnQEAAAAC25ld0JhbGFuY2VBBQAAAAhiYWxhbmNlQQQAAAALbmV3QmFsYW5jZUIJAABkAAAAAgUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAATZEFwcFRocmVzaG9sZEFtb3VudAkAAGsAAAADCQAAZAAAAAIFAAAAC25ld0JhbGFuY2VBBQAAAAtuZXdCYWxhbmNlQgUAAAANZEFwcFRocmVzaG9sZAkAAGgAAAACAAAAAAAAAAACBQAAABZkQXBwVGhyZXNob2xkRGVsaW1pdGVyAwMJAABmAAAAAgUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAALbmV3QmFsYW5jZUEGCQAAZgAAAAIFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAC25ld0JhbGFuY2VCCQEAAAAOdGhyb3dUaHJlc2hvbGQAAAADBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAAtuZXdCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUIJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADBQAAAAxzaGFyZUFzc2V0SWQFAAAAFXNoYXJlVG9rZW5Ub1BheUFtb3VudAYJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQFAAAADHNoYXJlQXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATa2V5U2hhcmVBc3NldFN1cHBseQkAAGQAAAACBQAAABBzaGFyZUFzc2V0U3VwcGx5BQAAABVzaGFyZVRva2VuVG9QYXlBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50BQAAABNpbnZhcmlhbnRDYWxjdWxhdGVkBQAAAANuaWwJAAACAAAAAQIAAAA6aW5jb3JyZWN0IHZpcnR1YWxTd2FwVG9rZW5QYXkgb3IgdmlydHVhbFN3YXBUb2tlbkdldCB2YWx1ZQkBAAAAC3Rocm93QXNzZXRzAAAAAAAAAAFpAQAAAAh3aXRoZHJhdwAAAAAEAAAADSR0MDIyMTgwMjIzMzAJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAA0kdDAyMjE4MDIyMzMwAAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAANJHQwMjIxODAyMjMzMAAAAAJfMgQAAAAMYW1vdW50VG9QYXlBCQEAAAAQZGVkdWN0U3Rha2luZ0ZlZQAAAAIJAABrAAAAAwUAAAAJcG10QW1vdW50BQAAAAhiYWxhbmNlQQUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAIYXNzZXRJZEEEAAAADGFtb3VudFRvUGF5QgkBAAAAEGRlZHVjdFN0YWtpbmdGZWUAAAACCQAAawAAAAMFAAAACXBtdEFtb3VudAUAAAAIYmFsYW5jZUIFAAAAEHNoYXJlQXNzZXRTdXBwbHkFAAAACGFzc2V0SWRCBAAAABNpbnZhcmlhbnRDYWxjdWxhdGVkCQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADGFtb3VudFRvUGF5QQkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAAMYW1vdW50VG9QYXlCAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkBAAAAD3Rocm93SXNJbmFjdGl2ZQAAAAADCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkBAAAAAiE9AAAAAgUAAAAKcG10QXNzZXRJZAUAAAAMc2hhcmVBc3NldElkCQAAAgAAAAEJAAEsAAAAAgIAAAAkSW5jb3JyZWN0IGFzc2V0IGF0dGFjaGVkLiBFeHBlY3RlZDogCQACWAAAAAEFAAAADHNoYXJlQXNzZXRJZAMJAQAAAAEhAAAAAQUAAAAQaGFzRW5vdWdoQmFsYW5jZQkBAAAAEXN1c3BlbmRTdXNwaWNpb3VzAAAAAAMDCQAAZgAAAAIFAAAADGFtb3VudFRvUGF5QQUAAAARYXZhaWxhYmxlQmFsYW5jZUEGCQAAZgAAAAIFAAAADGFtb3VudFRvUGF5QgUAAAARYXZhaWxhYmxlQmFsYW5jZUIJAQAAACJ0aHJvd0luc3VmZmljaWVudEF2YWlsYWJsZUJhbGFuY2VzAAAAAgUAAAAMYW1vdW50VG9QYXlBBQAAAAxhbW91bnRUb1BheUIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBCQAAZQAAAAIFAAAACGJhbGFuY2VBBQAAAAxhbW91bnRUb1BheUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCCQAAZQAAAAIFAAAACGJhbGFuY2VCBQAAAAxhbW91bnRUb1BheUIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE2tleVNoYXJlQXNzZXRTdXBwbHkJAABlAAAAAgUAAAAQc2hhcmVBc3NldFN1cHBseQUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQFAAAAE2ludmFyaWFudENhbGN1bGF0ZWQJAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAxzaGFyZUFzc2V0SWQFAAAACXBtdEFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvUGF5QQUAAAAIYXNzZXRJZEEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAxhbW91bnRUb1BheUIFAAAACGFzc2V0SWRCBQAAAANuaWwAAAABaQEAAAAIZXhjaGFuZ2UAAAACAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQAAABJtaW5BbW91bnRUb1JlY2VpdmUEAAAADSR0MDIzNjIxMjM2OTYJAAUUAAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50CAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAlwbXRBbW91bnQIBQAAAA0kdDAyMzYyMTIzNjk2AAAAAl8xBAAAAApwbXRBc3NldElkCAUAAAANJHQwMjM2MjEyMzY5NgAAAAJfMgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAQAAAA90aHJvd0lzSW5hY3RpdmUAAAAAAwkAAGcAAAACAAAAAAAAAAAABQAAABhlc3RpbWF0ZWRBbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACAgAAACtFc3RpbWF0ZWQgYW1vdW50IG11c3QgYmUgcG9zaXRpdmUuIEFjdHVhbDogCQABpAAAAAEFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQMJAABmAAAAAgUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAABhlc3RpbWF0ZWRBbW91bnRUb1JlY2VpdmUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAA7TWluaW1hbCBhbW91bnQgY2FuJ3QgYmUgZ3JlYXRlciB0aGFuIGVzdGltYXRlZC4gRXN0aW1hdGVkOiAJAAGkAAAAAQUAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlAgAAAAsuIE1pbmltYWw6IAkAAaQAAAABBQAAABJtaW5BbW91bnRUb1JlY2VpdmUDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAAHU9uZSBhdHRhY2hlZCBwYXltZW50IGV4cGVjdGVkAwkBAAAAASEAAAABBQAAABBoYXNFbm91Z2hCYWxhbmNlCQEAAAARc3VzcGVuZFN1c3BpY2lvdXMAAAAAAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAhhc3NldElkQQQAAAALYXNzZXRJZFNlbmQFAAAACGFzc2V0SWRCBAAAABBhbW91bnRXaXRob3V0RmVlCQEAAAAVY2FsY3VsYXRlSG93TWFueVNlbmRCAAAABQUAAAAYZXN0aW1hdGVkQW1vdW50VG9SZWNlaXZlBQAAABJtaW5BbW91bnRUb1JlY2VpdmUFAAAACGJhbGFuY2VBBQAAAAhiYWxhbmNlQgUAAAAJcG10QW1vdW50BAAAAA1hbW91bnRXaXRoRmVlCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgUAAAARZmVlU2NhbGVEZWxpbWl0ZXIFAAAACmNvbW1pc3Npb24FAAAAEWZlZVNjYWxlRGVsaW1pdGVyBAAAABBnb3Zlcm5hbmNlUmV3YXJkCQAAawAAAAMFAAAAEGFtb3VudFdpdGhvdXRGZWUFAAAAFGNvbW1pc3Npb25Hb3Zlcm5hbmNlBQAAABFmZWVTY2FsZURlbGltaXRlcgQAAAALbmV3QmFsYW5jZUEJAABkAAAAAgUAAAAIYmFsYW5jZUEFAAAACXBtdEFtb3VudAQAAAALbmV3QmFsYW5jZUIJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQgUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAQAAAATZEFwcFRocmVzaG9sZEFtb3VudAkAAGsAAAADCQAAZAAAAAIFAAAAC25ld0JhbGFuY2VBBQAAAAtuZXdCYWxhbmNlQgUAAAANZEFwcFRocmVzaG9sZAkAAGgAAAACAAAAAAAAAAACBQAAABZkQXBwVGhyZXNob2xkRGVsaW1pdGVyAwMJAABmAAAAAgUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAALbmV3QmFsYW5jZUEGCQAAZgAAAAIFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAC25ld0JhbGFuY2VCCQEAAAAOdGhyb3dUaHJlc2hvbGQAAAADBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAAtuZXdCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUIDAwMJAAAAAAAAAgUAAAAIYXNzZXRJZEEFAAAABFVTRE4JAABnAAAAAgUAAAAQc3Rha2VkQW1vdW50VVNETgUAAAALbmV3QmFsYW5jZUEHBgMJAAAAAAAAAgUAAAAIYXNzZXRJZEIFAAAABFVTRE4JAABnAAAAAgUAAAAQc3Rha2VkQW1vdW50VVNETgUAAAALbmV3QmFsYW5jZUIHCQEAAAAhdGhyb3dJbnN1ZmZpY2llbnRBdmFpbGFibGVCYWxhbmNlAAAAAwUAAAANYW1vdW50V2l0aEZlZQUAAAARYXZhaWxhYmxlQmFsYW5jZUIFAAAACmFzc2V0TmFtZUIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VBBQAAAAtuZXdCYWxhbmNlQQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAALa2V5QmFsYW5jZUIFAAAAC25ld0JhbGFuY2VCCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrZXlJbnZhcmlhbnQJAQAAAA1pbnZhcmlhbnRDYWxjAAAAAgkAAGQAAAACBQAAAAhiYWxhbmNlQQUAAAAJcG10QW1vdW50CQAAZQAAAAIJAABlAAAAAgUAAAAIYmFsYW5jZUIFAAAADWFtb3VudFdpdGhGZWUFAAAAEGdvdmVybmFuY2VSZXdhcmQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA1hbW91bnRXaXRoRmVlBQAAAAthc3NldElkU2VuZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABFnb3Zlcm5hbmNlQWRkcmVzcwUAAAAQZ292ZXJuYW5jZVJld2FyZAUAAAALYXNzZXRJZFNlbmQFAAAAA25pbAMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAIYXNzZXRJZEIEAAAAC2Fzc2V0SWRTZW5kBQAAAAhhc3NldElkQQQAAAAQYW1vdW50V2l0aG91dEZlZQkBAAAAFWNhbGN1bGF0ZUhvd01hbnlTZW5kQQAAAAUFAAAAGGVzdGltYXRlZEFtb3VudFRvUmVjZWl2ZQUAAAASbWluQW1vdW50VG9SZWNlaXZlBQAAAAhiYWxhbmNlQQUAAAAIYmFsYW5jZUIFAAAACXBtdEFtb3VudAQAAAANYW1vdW50V2l0aEZlZQkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlCQAAZQAAAAIFAAAAEWZlZVNjYWxlRGVsaW1pdGVyBQAAAApjb21taXNzaW9uBQAAABFmZWVTY2FsZURlbGltaXRlcgQAAAAQZ292ZXJuYW5jZVJld2FyZAkAAGsAAAADBQAAABBhbW91bnRXaXRob3V0RmVlBQAAABRjb21taXNzaW9uR292ZXJuYW5jZQUAAAARZmVlU2NhbGVEZWxpbWl0ZXIEAAAAC25ld0JhbGFuY2VBCQAAZQAAAAIJAABlAAAAAgUAAAAIYmFsYW5jZUEFAAAADWFtb3VudFdpdGhGZWUFAAAAEGdvdmVybmFuY2VSZXdhcmQEAAAAC25ld0JhbGFuY2VCCQAAZAAAAAIFAAAACGJhbGFuY2VCBQAAAAlwbXRBbW91bnQEAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQJAABrAAAAAwkAAGQAAAACBQAAAAtuZXdCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUIFAAAADWRBcHBUaHJlc2hvbGQJAABoAAAAAgAAAAAAAAAAAgUAAAAWZEFwcFRocmVzaG9sZERlbGltaXRlcgMDCQAAZgAAAAIFAAAAE2RBcHBUaHJlc2hvbGRBbW91bnQFAAAAC25ld0JhbGFuY2VBBgkAAGYAAAACBQAAABNkQXBwVGhyZXNob2xkQW1vdW50BQAAAAtuZXdCYWxhbmNlQgkBAAAADnRocm93VGhyZXNob2xkAAAAAwUAAAATZEFwcFRocmVzaG9sZEFtb3VudAUAAAALbmV3QmFsYW5jZUEFAAAAC25ld0JhbGFuY2VCAwMDCQAAAAAAAAIFAAAACGFzc2V0SWRBBQAAAARVU0ROCQAAZwAAAAIFAAAAEHN0YWtlZEFtb3VudFVTRE4FAAAAC25ld0JhbGFuY2VBBwYDCQAAAAAAAAIFAAAACGFzc2V0SWRCBQAAAARVU0ROCQAAZwAAAAIFAAAAEHN0YWtlZEFtb3VudFVTRE4FAAAAC25ld0JhbGFuY2VCBwkBAAAAIXRocm93SW5zdWZmaWNpZW50QXZhaWxhYmxlQmFsYW5jZQAAAAMFAAAADWFtb3VudFdpdGhGZWUFAAAAEWF2YWlsYWJsZUJhbGFuY2VBBQAAAAphc3NldE5hbWVBCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAtrZXlCYWxhbmNlQQUAAAALbmV3QmFsYW5jZUEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAC2tleUJhbGFuY2VCBQAAAAtuZXdCYWxhbmNlQgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5SW52YXJpYW50CQEAAAANaW52YXJpYW50Q2FsYwAAAAIJAABlAAAAAgkAAGUAAAACBQAAAAhiYWxhbmNlQQUAAAANYW1vdW50V2l0aEZlZQUAAAAQZ292ZXJuYW5jZVJld2FyZAkAAGQAAAACBQAAAAhiYWxhbmNlQgUAAAAJcG10QW1vdW50CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAANYW1vdW50V2l0aEZlZQUAAAALYXNzZXRJZFNlbmQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAARZ292ZXJuYW5jZUFkZHJlc3MFAAAAEGdvdmVybmFuY2VSZXdhcmQFAAAAC2Fzc2V0SWRTZW5kBQAAAANuaWwJAQAAAAt0aHJvd0Fzc2V0cwAAAAAAAAABaQEAAAAIc2h1dGRvd24AAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABCQABLAAAAAICAAAAIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Q2F1c2UCAAAAGnRoZSBjYXVzZSB3YXNuJ3Qgc3BlY2lmaWVkAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAZhZG1pbjEJAARMAAAAAgUAAAAGYWRtaW4yCQAETAAAAAIFAAAABmFkbWluMwkABEwAAAACBQAAAA5hZG1pblN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAA50aHJvd09ubHlBZG1pbgAAAAAJAQAAAAdzdXNwZW5kAAAAAQIAAAAPUGF1c2VkIGJ5IGFkbWluAAAAAWkBAAAACGFjdGl2YXRlAAAAAAMFAAAACGlzQWN0aXZlCQEAAAANdGhyb3dJc0FjdGl2ZQAAAAADCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAABmFkbWluMQkABEwAAAACBQAAAAZhZG1pbjIJAARMAAAAAgUAAAAGYWRtaW4zCQAETAAAAAIFAAAADmFkbWluU3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkBAAAADnRocm93T25seUFkbWluAAAAAAkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBgkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAhrZXlDYXVzZQUAAAADbmlsAAAAAWkBAAAAGXRha2VJbnRvQWNjb3VudEV4dHJhRnVuZHMAAAABAAAAC2Ftb3VudExlYXZlBAAAABh1bmNvdW50YWJsZUFtb3VudEVucm9sbEEJAABlAAAAAgUAAAAZYWNjb3VudEJhbGFuY2VXaXRoU3Rha2VkQQUAAAAIYmFsYW5jZUEEAAAAGHVuY291bnRhYmxlQW1vdW50RW5yb2xsQgkAAGUAAAACBQAAABlhY2NvdW50QmFsYW5jZVdpdGhTdGFrZWRCBQAAAAhiYWxhbmNlQgQAAAANYW1vdW50RW5yb2xsQQkAAGUAAAACBQAAABh1bmNvdW50YWJsZUFtb3VudEVucm9sbEEDCQAAAAAAAAIFAAAACGFzc2V0SWRBBQAAAARVU0ROBQAAAAthbW91bnRMZWF2ZQAAAAAAAAAAAAQAAAANYW1vdW50RW5y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", "height": 2352151, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D7A5pQWs11BLu5aSPC1UHtbZLyEMwhHEMiFSMVw3Upmk Next: Cgw4T6rBGVofXPFSKtFhP2QPiEQaLqiSuQkWyGiBdWz3 Diff:
OldNewDifferences
413413 let aF = aq(bQ, bR)
414414 let aG = fraction(L, Q, aF)
415415 if (if ((aG > bM))
416- then ((aF - L) > 0)
416+ then ((aF - L) >= 0)
417417 else false)
418418 then {
419419 let bS = (fraction(bQ, (Q * Q), bR) / fraction(bO, Q, bP))
447447 let aF = aq(bQ, bR)
448448 let aG = fraction(L, Q, aF)
449449 if (if ((aG > bM))
450- then ((aF - L) > 0)
450+ then ((aF - L) >= 0)
451451 else false)
452452 then {
453453 let bS = (fraction(bQ, (Q * Q), bR) / fraction(bO, Q, bP))
598598 else 0))
599599 if (!(x))
600600 then aR()
601- else if (!(containsElement([o, p, q, s], bb.callerPublicKey)))
601+ else if ((bb.caller != this))
602602 then aS()
603603 else if ((0 > cg))
604604 then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(cg)))
620620 if ($isInstanceOf(D, "InvokeScriptTransaction"))
621621 then {
622622 let cn = D
623- if (sigVerify(cn.bodyBytes, cn.proofs[0], s))
624- then (cn.dApp == u)
623+ let co = if ((cn.dApp == this))
624+ then (cn.function == "takeIntoAccountExtraFunds")
625+ else false
626+ let cp = if ((cn.dApp == u))
627+ then if (if (if ((cn.function == "lockNeutrino"))
628+ then (size(cn.payments) == 1)
629+ else false)
630+ then (cn.payments[0].assetId == v)
631+ else false)
632+ then true
633+ else if ((cn.function == "unlockNeutrino"))
634+ then (size(cn.payments) == 0)
635+ else false
636+ else false
637+ let cq = if (if (if (sigVerify(cl.bodyBytes, cl.proofs[0], o))
638+ then sigVerify(cl.bodyBytes, cl.proofs[0], p)
639+ else false)
640+ then sigVerify(cl.bodyBytes, cl.proofs[0], q)
641+ else false)
642+ then sigVerify(cl.bodyBytes, cl.proofs[0], s)
643+ else false
644+ if (if (co)
645+ then true
646+ else cp)
647+ then cq
625648 else false
626649 }
627650 else {
628- let co = if (sigVerify(cl.bodyBytes, cl.proofs[0], o))
651+ let cr = if (sigVerify(cl.bodyBytes, cl.proofs[0], o))
629652 then 1
630653 else 0
631- let cp = if (sigVerify(cl.bodyBytes, cl.proofs[1], p))
654+ let cs = if (sigVerify(cl.bodyBytes, cl.proofs[1], p))
632655 then 1
633656 else 0
634- let cq = if (sigVerify(cl.bodyBytes, cl.proofs[2], q))
657+ let ct = if (sigVerify(cl.bodyBytes, cl.proofs[2], q))
635658 then 1
636659 else 0
637- (((co + cp) + cq) >= 2)
660+ (((cr + cs) + ct) >= 2)
638661 }
639662 }
640663
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "2.0.0"
55
66 let b = "version"
77
88 let c = "active"
99
1010 let d = "A_asset_id"
1111
1212 let e = "B_asset_id"
1313
1414 let f = "A_asset_balance"
1515
1616 let g = "B_asset_balance"
1717
1818 let h = "share_asset_id"
1919
2020 let i = "share_asset_supply"
2121
2222 let j = "commission"
2323
2424 let k = "commission_scale_delimiter"
2525
2626 let l = "commission_governance"
2727
2828 let m = "invariant"
2929
3030 let n = "shutdown_cause"
3131
3232 let o = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
3333
3434 let p = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
3535
3636 let q = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
3737
3838 let r = base58'EtVkT6ed8GtbUiVVEqdmEqsp2J4qbb3rre2HFgxeVYdg'
3939
4040 let s = base58'Czn4yoAuUZCVCLJDRfskn8URfkwpknwBTZDbs1wFrY7h'
4141
4242 let t = Address(base58'3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp')
4343
4444 let u = Address(base58'3PNikM6yp4NqcSU8guxQtmR5onr2D4e8yTJ')
4545
4646 let v = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
4747
4848 let w = (9 * value(value(assetInfo(v)).minSponsoredFee))
4949
5050 let x = getBooleanValue(this, c)
5151
5252 let y = getStringValue(this, d)
5353
5454 let z = getStringValue(this, e)
5555
5656 let A = if ((y == "WAVES"))
5757 then unit
5858 else fromBase58String(y)
5959
6060 let B = if ((z == "WAVES"))
6161 then unit
6262 else fromBase58String(z)
6363
6464 let C = {
6565 let D = A
6666 if ($isInstanceOf(D, "ByteVector"))
6767 then {
6868 let E = D
6969 value(assetInfo(E)).name
7070 }
7171 else if ($isInstanceOf(D, "Unit"))
7272 then {
7373 let F = D
7474 "WAVES"
7575 }
7676 else throw("Match error")
7777 }
7878
7979 let G = {
8080 let D = B
8181 if ($isInstanceOf(D, "ByteVector"))
8282 then {
8383 let E = D
8484 value(assetInfo(E)).name
8585 }
8686 else if ($isInstanceOf(D, "Unit"))
8787 then {
8888 let F = D
8989 "WAVES"
9090 }
9191 else throw("Match error")
9292 }
9393
9494 let H = getIntegerValue(this, f)
9595
9696 let I = getIntegerValue(this, g)
9797
9898 let J = fromBase58String(getStringValue(this, h))
9999
100100 let K = getIntegerValue(this, i)
101101
102102 let L = getIntegerValue(this, m)
103103
104104 let M = 500
105105
106106 let N = 200
107107
108108 let O = 1000000
109109
110110 let P = 1000
111111
112112 let Q = 100000000
113113
114114 let R = 1000000000000
115115
116116 let S = 1000
117117
118118 let T = 8
119119
120120 let U = 12
121121
122122 let V = 50
123123
124124 let W = 100
125125
126126 let X = 100000000
127127
128128 let Y = 99999000
129129
130130 let Z = 50
131131
132132 let aa = 2
133133
134134 let ab = 46000000
135135
136136 let ac = 8
137137
138138 func ad (ae) = {
139139 let D = ae
140140 if ($isInstanceOf(D, "ByteVector"))
141141 then {
142142 let E = D
143143 assetBalance(this, E)
144144 }
145145 else if ($isInstanceOf(D, "Unit"))
146146 then {
147147 let F = D
148148 wavesBalance(this).available
149149 }
150150 else throw("Match error")
151151 }
152152
153153
154154 let af = {
155155 let D = getInteger(u, ((("rpd_balance_" + toBase58String(v)) + "_") + toString(this)))
156156 if ($isInstanceOf(D, "Int"))
157157 then {
158158 let ag = D
159159 ag
160160 }
161161 else if ($isInstanceOf(D, "Unit"))
162162 then {
163163 let ah = D
164164 0
165165 }
166166 else throw("Match error")
167167 }
168168
169169 let ai = (H - (if ((A == v))
170170 then af
171171 else 0))
172172
173173 let aj = (I - (if ((B == v))
174174 then af
175175 else 0))
176176
177177 let ak = (ad(A) + (if ((A == v))
178178 then af
179179 else 0))
180180
181181 let al = (ad(B) + (if ((B == v))
182182 then af
183183 else 0))
184184
185185 let am = if ((ak >= H))
186186 then (al >= I)
187187 else false
188188
189189 func an (ao,ap) = (((fraction(R, ao, ap) + fraction(R, ap, ao)) / 2) / 10000)
190190
191191
192192 func aq (ao,ap) = {
193193 let ar = an(ao, ap)
194194 (fraction((ao + ap), Q, pow(ar, T, Z, aa, T, UP)) + (2 * fraction(pow(fraction(ao, ap, Q), 0, 5, 1, (T / 2), DOWN), pow((ar - ab), T, Z, aa, T, DOWN), Q)))
195195 }
196196
197197
198198 func as (at,au,av,aw,ax) = {
199199 let ay = (Q - ((Q * 1) / 10000000))
200200 let az = (at - au)
201201 let aA = (at - ((1 * az) / 5))
202202 let aB = (at - ((2 * az) / 5))
203203 let aC = (at - ((3 * az) / 5))
204204 let aD = (at - ((4 * az) / 5))
205205 let aE = (at - ((5 * az) / 5))
206206 let ap = (aw + ax)
207207 let aF = aq((av - at), ap)
208208 let aG = fraction(L, Q, aF)
209209 if ((0 >= (aq((av - aE), ap) - L)))
210210 then throw("minTokenReceiveAmount too large.err1")
211211 else if (if ((aG > ay))
212212 then ((aF - L) > 0)
213213 else false)
214214 then at
215215 else if (((aq((av - aA), ap) - L) > 0))
216216 then ((aA * (O - M)) / O)
217217 else if (((aq((av - aB), ap) - L) > 0))
218218 then ((aB * (O - M)) / O)
219219 else if (((aq((av - aC), ap) - L) > 0))
220220 then ((aC * (O - M)) / O)
221221 else if (((aq((av - aD), ap) - L) > 0))
222222 then ((aD * (O - M)) / O)
223223 else if (((aq((av - aE), ap) - L) > 0))
224224 then ((aE * (O - M)) / O)
225225 else throw("something went wrong while working with amountToSendStep. err2")
226226 }
227227
228228
229229 func aH (at,au,av,aw,ax) = {
230230 let ay = (Q - ((Q * 1) / 10000000))
231231 let az = (at - au)
232232 let aA = (at - ((1 * az) / 5))
233233 let aB = (at - ((2 * az) / 5))
234234 let aC = (at - ((3 * az) / 5))
235235 let aD = (at - ((4 * az) / 5))
236236 let aE = (at - ((5 * az) / 5))
237237 let ao = (av + ax)
238238 let aF = aq(ao, (aw - at))
239239 let aG = fraction(L, Q, aF)
240240 if ((0 >= (aq(ao, (aw - aE)) - L)))
241241 then throw("minTokenReceiveAmount too large.err1")
242242 else if (if ((aG > ay))
243243 then ((aF - L) > 0)
244244 else false)
245245 then at
246246 else if (((aq(ao, (aw - aA)) - L) > 0))
247247 then ((aA * (O - M)) / O)
248248 else if (((aq(ao, (aw - aB)) - L) > 0))
249249 then ((aB * (O - M)) / O)
250250 else if (((aq(ao, (aw - aC)) - L) > 0))
251251 then ((aC * (O - M)) / O)
252252 else if (((aq(ao, (aw - aD)) - L) > 0))
253253 then ((aD * (O - M)) / O)
254254 else if (((aq(ao, (aw - aE)) - L) > 0))
255255 then ((aE * (O - M)) / O)
256256 else throw("something went wrong while working with amountToSendStep. err2")
257257 }
258258
259259
260260 func aI (ae) = {
261261 let D = ae
262262 if ($isInstanceOf(D, "ByteVector"))
263263 then {
264264 let E = D
265265 let aJ = toBase58String(E)
266266 let aK = valueOrErrorMessage(assetInfo(E), (("Asset " + aJ) + " doesn't exist"))
267267 $Tuple3(aJ, aK.name, aK.decimals)
268268 }
269269 else if ($isInstanceOf(D, "Unit"))
270270 then {
271271 let F = D
272272 $Tuple3("WAVES", "WAVES", 8)
273273 }
274274 else throw("Match error")
275275 }
276276
277277
278278 func aL (aM) = [BooleanEntry(c, false), StringEntry(n, aM)]
279279
280280
281281 func aN (aO,ae) = if ((ae == v))
282282 then {
283283 let aP = (aO - w)
284284 if ((0 >= aP))
285285 then throw((((("Insufficient amount " + toString(aO)) + " to deduct staking fee ") + toString(w)) + " USD-N"))
286286 else aP
287287 }
288288 else aO
289289
290290
291291 func aQ () = throw("DApp is already active")
292292
293293
294294 func aR () = throw("DApp is inactive at this moment")
295295
296296
297297 func aS () = throw("Only admin can call this function")
298298
299299
300300 func aT () = throw(((("Incorrect assets attached. Expected: " + y) + " and ") + z))
301301
302302
303303 func aU (aV,av,aw) = throw(((((((((("New balance in assets of the DApp is less than threshold " + toString(aV)) + ": ") + toString(av)) + " ") + C) + ", ") + toString(aw)) + " ") + G))
304304
305305
306306 func aW (aO,aX,aY) = throw((((((((("Insufficient DApp balance to pay " + toString(aO)) + " ") + aY) + " due to staking. Available: ") + toString(aX)) + " ") + aY) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
307307
308308
309309 func aZ (av,aw) = throw((((((((((((((((("Insufficient DApp balance to pay " + toString(av)) + " ") + C) + " and ") + toString(aw)) + " ") + G) + " due to staking. Available: ") + toString(ai)) + " ") + C) + " and ") + toString(aj)) + " ") + G) + ". Please contact support in Telegram: https://t.me/swopfisupport"))
310310
311311
312312 func ba () = aL(((((((((((((((("Suspicious state. Actual balances: " + toString(H)) + " ") + C) + ", ") + toString(I)) + " ") + G) + ". State: ") + toString(ad(A))) + " ") + C) + ", ") + toString(ad(B))) + " ") + G))
313313
314314
315315 @Callable(bb)
316316 func init () = {
317317 let bc = $Tuple2(bb.payments[0].amount, bb.payments[0].assetId)
318318 let bd = bc._1
319319 let be = bc._2
320320 let bf = $Tuple2(bb.payments[1].amount, bb.payments[1].assetId)
321321 let bg = bf._1
322322 let bh = bf._2
323323 let bi = aI(be)
324324 let bj = bi._1
325325 let bk = bi._2
326326 let bl = bi._3
327327 let bm = aI(bh)
328328 let bn = bm._1
329329 let bo = bm._2
330330 let bp = bm._3
331331 if (isDefined(getBoolean(this, c)))
332332 then aQ()
333333 else if ((be == bh))
334334 then throw("Assets must be different")
335335 else {
336336 let bq = ((("s" + take(bk, 7)) + "_") + take(bo, 7))
337337 let br = ((((("ShareToken of SwopFi protocol for " + bk) + " and ") + bo) + " at address ") + toString(this))
338338 let bs = ((bl + bp) / 2)
339339 let bt = fraction(pow(bd, bl, 5, 1, bl, HALFDOWN), pow(bg, bp, 5, 1, bp, HALFDOWN), pow(10, 0, bs, 0, 0, HALFDOWN))
340340 let bu = Issue(bq, br, bt, bs, true)
341341 let bv = calculateAssetId(bu)
342342 let bw = aq(bd, bg)
343343 [StringEntry(b, a), BooleanEntry(c, true), StringEntry(d, bj), StringEntry(e, bn), IntegerEntry(f, bd), IntegerEntry(g, bg), IntegerEntry(m, bw), IntegerEntry(j, M), IntegerEntry(k, O), bu, StringEntry(h, toBase58String(bv)), IntegerEntry(i, bt), ScriptTransfer(bb.caller, bt, bv)]
344344 }
345345 }
346346
347347
348348
349349 @Callable(bb)
350350 func replenishWithTwoTokens (bx) = {
351351 let be = bb.payments[0].assetId
352352 let bh = bb.payments[1].assetId
353353 let bd = aN(bb.payments[0].amount, be)
354354 let bg = aN(bb.payments[1].amount, bh)
355355 let by = fraction(fraction(H, Q, bd), P, fraction(I, Q, bg))
356356 let bz = fraction(bd, Q, H)
357357 let bA = fraction(bg, Q, I)
358358 let bB = fraction(min([bz, bA]), K, Q)
359359 let bw = aq((H + bd), (I + bg))
360360 if (!(x))
361361 then aR()
362362 else if (if ((0 > bx))
363363 then true
364364 else (bx > S))
365365 then throw(((("Slippage tolerance must be between 0 and " + toString(S)) + " inclusively. Actual: ") + toString(bx)))
366366 else if ((size(bb.payments) != 2))
367367 then throw("Two attached assets expected")
368368 else if (if ((be != A))
369369 then true
370370 else (bh != B))
371371 then aT()
372372 else if (if ((((P * (S - bx)) / S) > by))
373373 then true
374374 else (by > ((P * (S + bx)) / S)))
375375 then throw("Incorrect assets amount: amounts must have the contract ratio")
376376 else if ((bB == 0))
377377 then throw("Too small amount to replenish")
378378 else if (!(am))
379379 then ba()
380380 else [IntegerEntry(f, (H + bd)), IntegerEntry(g, (I + bg)), IntegerEntry(i, (K + bB)), IntegerEntry(m, bw), Reissue(J, bB, true), ScriptTransfer(bb.caller, bB, J)]
381381 }
382382
383383
384384
385385 @Callable(bb)
386386 func replenishWithOneToken (bC,bD) = {
387387 let bE = $Tuple2(bb.payments[0].amount, bb.payments[0].assetId)
388388 let bF = bE._1
389389 let bG = bE._2
390390 let bH = 5000000
391391 let bI = 50000000
392392 let bJ = if ((bI > bF))
393393 then 100000
394394 else 1
395395 let bK = (Q - ((Q * bJ) / 10000000))
396396 let bL = (Q + ((Q * bJ) / 10000000))
397397 let bM = (Q - ((Q * 1) / 10000000))
398398 let bN = (Q + ((Q * 1) / 10000000))
399399 if (!(x))
400400 then aR()
401401 else if ((bH > bF))
402402 then throw((((("Payment amount " + toString(bF)) + " does not exceed the minimum amount of ") + toString(bH)) + " tokens"))
403403 else if ((size(bb.payments) != 1))
404404 then throw("One attached payment expected")
405405 else if (!(am))
406406 then ba()
407407 else if ((bG == A))
408408 then {
409409 let bO = (bF - bC)
410410 let bP = bD
411411 let bQ = (H + bC)
412412 let bR = (I - bD)
413413 let aF = aq(bQ, bR)
414414 let aG = fraction(L, Q, aF)
415415 if (if ((aG > bM))
416- then ((aF - L) > 0)
416+ then ((aF - L) >= 0)
417417 else false)
418418 then {
419419 let bS = (fraction(bQ, (Q * Q), bR) / fraction(bO, Q, bP))
420420 if (if ((bK > bS))
421421 then true
422422 else (bS > bL))
423423 then throw("swop with virtualSwapTokenPay and virtualSwapTokenGet possible, but ratio after virtual swap incorrect")
424424 else {
425425 let bz = fraction(aN(bO, A), Q, bQ)
426426 let bA = fraction(aN(bP, B), Q, bR)
427427 let bB = fraction(min([bz, bA]), K, Q)
428428 let bw = aq((H + bF), I)
429429 let bT = (H + bF)
430430 let bU = I
431431 let bV = fraction((bT + bU), V, (2 * W))
432432 if (if ((bV > bT))
433433 then true
434434 else (bV > bU))
435435 then aU(bV, bT, bU)
436436 else [Reissue(J, bB, true), ScriptTransfer(bb.caller, bB, J), IntegerEntry(i, (K + bB)), IntegerEntry(f, bT), IntegerEntry(m, bw)]
437437 }
438438 }
439439 else throw("incorrect virtualSwapTokenPay or virtualSwapTokenGet value")
440440 }
441441 else if ((bG == B))
442442 then {
443443 let bP = (bF - bC)
444444 let bO = bD
445445 let bQ = (H - bD)
446446 let bR = (I + bC)
447447 let aF = aq(bQ, bR)
448448 let aG = fraction(L, Q, aF)
449449 if (if ((aG > bM))
450- then ((aF - L) > 0)
450+ then ((aF - L) >= 0)
451451 else false)
452452 then {
453453 let bS = (fraction(bQ, (Q * Q), bR) / fraction(bO, Q, bP))
454454 if (if ((bK > bS))
455455 then true
456456 else (bS > bL))
457457 then throw("swop with virtualSwapTokenPay and virtualSwapTokenGet possible, but ratio after virtual swap incorrect")
458458 else {
459459 let bz = fraction(aN(bO, A), Q, bQ)
460460 let bA = fraction(aN(bP, B), Q, bR)
461461 let bB = fraction(min([bz, bA]), K, Q)
462462 let bw = aq(H, (I + bF))
463463 let bT = H
464464 let bU = (I + bF)
465465 let bV = fraction((bT + bU), V, (2 * W))
466466 if (if ((bV > bT))
467467 then true
468468 else (bV > bU))
469469 then aU(bV, bT, bU)
470470 else [Reissue(J, bB, true), ScriptTransfer(bb.caller, bB, J), IntegerEntry(i, (K + bB)), IntegerEntry(g, bU), IntegerEntry(m, bw)]
471471 }
472472 }
473473 else throw("incorrect virtualSwapTokenPay or virtualSwapTokenGet value")
474474 }
475475 else aT()
476476 }
477477
478478
479479
480480 @Callable(bb)
481481 func withdraw () = {
482482 let bW = $Tuple2(bb.payments[0].amount, bb.payments[0].assetId)
483483 let bF = bW._1
484484 let bG = bW._2
485485 let bX = aN(fraction(bF, H, K), A)
486486 let bY = aN(fraction(bF, I, K), B)
487487 let bw = aq((H - bX), (I - bY))
488488 if (!(x))
489489 then aR()
490490 else if ((size(bb.payments) != 1))
491491 then throw("One attached payment expected")
492492 else if ((bG != J))
493493 then throw(("Incorrect asset attached. Expected: " + toBase58String(J)))
494494 else if (!(am))
495495 then ba()
496496 else if (if ((bX > ai))
497497 then true
498498 else (bY > aj))
499499 then aZ(bX, bY)
500500 else [IntegerEntry(f, (H - bX)), IntegerEntry(g, (I - bY)), IntegerEntry(i, (K - bF)), IntegerEntry(m, bw), Burn(J, bF), ScriptTransfer(bb.caller, bX, A), ScriptTransfer(bb.caller, bY, B)]
501501 }
502502
503503
504504
505505 @Callable(bb)
506506 func exchange (bZ,ca) = {
507507 let cb = $Tuple2(bb.payments[0].amount, bb.payments[0].assetId)
508508 let bF = cb._1
509509 let bG = cb._2
510510 if (!(x))
511511 then aR()
512512 else if ((0 >= bZ))
513513 then throw(("Estimated amount must be positive. Actual: " + toString(bZ)))
514514 else if ((ca > bZ))
515515 then throw(((("Minimal amount can't be greater than estimated. Estimated: " + toString(bZ)) + ". Minimal: ") + toString(ca)))
516516 else if ((size(bb.payments) != 1))
517517 then throw("One attached payment expected")
518518 else if (!(am))
519519 then ba()
520520 else if ((bG == A))
521521 then {
522522 let cc = B
523523 let cd = aH(bZ, ca, H, I, bF)
524524 let ce = fraction(cd, (O - M), O)
525525 let cf = fraction(cd, N, O)
526526 let bT = (H + bF)
527527 let bU = ((I - ce) - cf)
528528 let bV = fraction((bT + bU), V, (2 * W))
529529 if (if ((bV > bT))
530530 then true
531531 else (bV > bU))
532532 then aU(bV, bT, bU)
533533 else if (if (if ((A == v))
534534 then (af >= bT)
535535 else false)
536536 then true
537537 else if ((B == v))
538538 then (af >= bU)
539539 else false)
540540 then aW(ce, aj, G)
541541 else [IntegerEntry(f, bT), IntegerEntry(g, bU), IntegerEntry(m, aq((H + bF), ((I - ce) - cf))), ScriptTransfer(bb.caller, ce, cc), ScriptTransfer(t, cf, cc)]
542542 }
543543 else if ((bG == B))
544544 then {
545545 let cc = A
546546 let cd = as(bZ, ca, H, I, bF)
547547 let ce = fraction(cd, (O - M), O)
548548 let cf = fraction(cd, N, O)
549549 let bT = ((H - ce) - cf)
550550 let bU = (I + bF)
551551 let bV = fraction((bT + bU), V, (2 * W))
552552 if (if ((bV > bT))
553553 then true
554554 else (bV > bU))
555555 then aU(bV, bT, bU)
556556 else if (if (if ((A == v))
557557 then (af >= bT)
558558 else false)
559559 then true
560560 else if ((B == v))
561561 then (af >= bU)
562562 else false)
563563 then aW(ce, ai, C)
564564 else [IntegerEntry(f, bT), IntegerEntry(g, bU), IntegerEntry(m, aq(((H - ce) - cf), (I + bF))), ScriptTransfer(bb.caller, ce, cc), ScriptTransfer(t, cf, cc)]
565565 }
566566 else aT()
567567 }
568568
569569
570570
571571 @Callable(bb)
572572 func shutdown () = if (!(x))
573573 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, n), "the cause wasn't specified")))
574574 else if (!(containsElement([o, p, q, r], bb.callerPublicKey)))
575575 then aS()
576576 else aL("Paused by admin")
577577
578578
579579
580580 @Callable(bb)
581581 func activate () = if (x)
582582 then aQ()
583583 else if (!(containsElement([o, p, q, r], bb.callerPublicKey)))
584584 then aS()
585585 else [BooleanEntry(c, true), DeleteEntry(n)]
586586
587587
588588
589589 @Callable(bb)
590590 func takeIntoAccountExtraFunds (cg) = {
591591 let ch = (ak - H)
592592 let ci = (al - I)
593593 let cj = (ch - (if ((A == v))
594594 then cg
595595 else 0))
596596 let ck = (ci - (if ((B == v))
597597 then cg
598598 else 0))
599599 if (!(x))
600600 then aR()
601- else if (!(containsElement([o, p, q, s], bb.callerPublicKey)))
601+ else if ((bb.caller != this))
602602 then aS()
603603 else if ((0 > cg))
604604 then throw(("Argument 'amountLeave' cannot be negative. Actual: " + toString(cg)))
605605 else if (if ((0 > ch))
606606 then true
607607 else (0 > ci))
608608 then aL("Enroll amount negative")
609609 else if (if ((0 > cj))
610610 then true
611611 else (0 > ck))
612612 then throw("Too large amountLeave")
613613 else [IntegerEntry(f, (H + cj)), IntegerEntry(g, (I + ck))]
614614 }
615615
616616
617617 @Verifier(cl)
618618 func cm () = {
619619 let D = cl
620620 if ($isInstanceOf(D, "InvokeScriptTransaction"))
621621 then {
622622 let cn = D
623- if (sigVerify(cn.bodyBytes, cn.proofs[0], s))
624- then (cn.dApp == u)
623+ let co = if ((cn.dApp == this))
624+ then (cn.function == "takeIntoAccountExtraFunds")
625+ else false
626+ let cp = if ((cn.dApp == u))
627+ then if (if (if ((cn.function == "lockNeutrino"))
628+ then (size(cn.payments) == 1)
629+ else false)
630+ then (cn.payments[0].assetId == v)
631+ else false)
632+ then true
633+ else if ((cn.function == "unlockNeutrino"))
634+ then (size(cn.payments) == 0)
635+ else false
636+ else false
637+ let cq = if (if (if (sigVerify(cl.bodyBytes, cl.proofs[0], o))
638+ then sigVerify(cl.bodyBytes, cl.proofs[0], p)
639+ else false)
640+ then sigVerify(cl.bodyBytes, cl.proofs[0], q)
641+ else false)
642+ then sigVerify(cl.bodyBytes, cl.proofs[0], s)
643+ else false
644+ if (if (co)
645+ then true
646+ else cp)
647+ then cq
625648 else false
626649 }
627650 else {
628- let co = if (sigVerify(cl.bodyBytes, cl.proofs[0], o))
651+ let cr = if (sigVerify(cl.bodyBytes, cl.proofs[0], o))
629652 then 1
630653 else 0
631- let cp = if (sigVerify(cl.bodyBytes, cl.proofs[1], p))
654+ let cs = if (sigVerify(cl.bodyBytes, cl.proofs[1], p))
632655 then 1
633656 else 0
634- let cq = if (sigVerify(cl.bodyBytes, cl.proofs[2], q))
657+ let ct = if (sigVerify(cl.bodyBytes, cl.proofs[2], q))
635658 then 1
636659 else 0
637- (((co + cp) + cq) >= 2)
660+ (((cr + cs) + ct) >= 2)
638661 }
639662 }
640663

github/deemru/w8io/3ef1775 
95.63 ms