tx · G5vBozyZJPVVC4kfZvCJeZYq7hzZfyaox9Rpwummn3wL

3MrULQRLc52GWrJF1tMcAm4M78fPe57o9Kt:  -0.04300000 Waves

2023.04.05 14:46 [2521195] smart account 3MrULQRLc52GWrJF1tMcAm4M78fPe57o9Kt > SELF 0.00000000 Waves

{ "type": 13, "id": "G5vBozyZJPVVC4kfZvCJeZYq7hzZfyaox9Rpwummn3wL", "fee": 4300000, "feeAssetId": null, "timestamp": 1680695192147, "version": 2, "chainId": 84, "sender": "3MrULQRLc52GWrJF1tMcAm4M78fPe57o9Kt", "senderPublicKey": "Aig94J3pRT3J41eXw33rJrs67gTCECiMVRZrbtuoARit", "proofs": [ "5wfujzSJJkouZC6nYLtgQ2Lu9hU3dQFtafSMwEhriaAD6SxqZQBgJgvMoJViCVnUC363RKY71V2bnGR9ptVjmEkz" ], "script": "base64:BgKMNwgCEgASBQoDAQQBEgcKBQEEAQgBEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50Igxzd2FwQ29udHJhY3QiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIUa2V5QWRkaXRpb25hbEJhbGFuY2UiB2Fzc2V0SWQiFmtleVN0YWtpbmdBc3NldEJhbGFuY2UiGmdldEFkZGl0aW9uYWxCYWxhbmNlT3JaZXJvIhxnZXRTdGFraW5nQXNzZXRCYWxhbmNlT3JaZXJvIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCIOb3JkZXJWYWxpZEluZm8iC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IgxnZXRJbnRPckZhaWwiCHRocm93RXJyIgNtc2ciBmZtdEVyciIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIgVpbkZlZSIBQCIGb3V0RmVlIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDg5NjI5MTI4Ig5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIg1iYWxhbmNlT25Qb29sIgx0b3RhbEJhbGFuY2UiD2NhbGNQcmljZUJpZ0ludCIIcHJBbXRYMTgiCGFtQW10WDE4IhRjYWxjUHJpY2VCaWdJbnRSb3VuZCIHZ2V0UmF0ZSIFcHJveHkiA2ludiIHJG1hdGNoMCIBciIHZGVwb3NpdCIGYW1vdW50Ig5zdGFraW5nQXNzZXRJZCIYY3VycmVudEFkZGl0aW9uYWxCYWxhbmNlIhpjdXJyZW50U3Rha2luZ0Fzc2V0QmFsYW5jZSIFYXNzZXQiDWRlcG9zaXRJbnZva2UiFHJlY2VpdmVkU3Rha2luZ0Fzc2V0IhRuZXdBZGRpdGlvbmFsQmFsYW5jZSIWbmV3U3Rha2luZ0Fzc2V0QmFsYW5jZSIId2l0aGRyYXciDHByb3h5UmF0ZU11bCINcHJvZml0QWRkcmVzcyIQY3VycmVudFByb3h5UmF0ZSIHb2xkUmF0ZSIMc3Rha2luZ0Fzc2V0IhRvbGRTZW5kU3Rha2luZ0Ftb3VudCIWc2VuZFN0YWtpbmdBc3NldEFtb3VudCIMcHJvZml0QW1vdW50Ig53aXRoZHJhd0ludm9rZSIOcmVjZWl2ZWRBc3NldHMiE2dldExlYXNlUHJveHlDb25maWciEXJlYmFsYW5jZUludGVybmFsIgt0YXJnZXRSYXRpbyIKbWluQmFsYW5jZSIQYXZhaWxhYmxlQmFsYW5jZSIBYiIBdSIMd2hvbGVCYWxhbmNlIhd0YXJnZXRBZGRpdGlvbmFsQmFsYW5jZSIEZGlmZiIPc2VuZEFzc2V0QW1vdW50Ig5nZXRBc3NldEFtb3VudCIOcmViYWxhbmNlQXNzZXQiAWEiDSR0MDE1NDc5MTU1ODgiCmlzTGVhc2FibGUiC2xlYXNlZFJhdGlvIgxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIUc3Rha2luZ1Byb2ZpdEFkZHJlc3MiFWdldFdpdGhkcmF3QXNzZXRTdGF0ZSIJZ2V0QW1vdW50Ig0kdDAxNjE4MTE2MjkwIhNuZXdUb3RhbENhbGNCYWxhbmNlIg53aXRoZHJhd0Ftb3VudCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IhJBbUFtdFdpdGhkcmF3U3RhdGUiElByQW10V2l0aGRyYXdTdGF0ZSIFc3RhdGUiFGVzdGltYXRlUHV0T3BlcmF0aW9uIhFzbGlwcGFnZVRvbGVyYW5jZSIMaW5BbUFzc2V0QW10IgtpbkFtQXNzZXRJZCIMaW5QckFzc2V0QW10IgtpblByQXNzZXRJZCIKaXNFdmFsdWF0ZSIGZW1pdExwIgxhbUFzc2V0SWRTdHIiDHByQXNzZXRJZFN0ciILaUFtdEFzc2V0SWQiDWlQcmljZUFzc2V0SWQiDmluQW1Bc3NldElkU3RyIg5pblByQXNzZXRJZFN0ciIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIDcmVzIgtzbGlwcGFnZVgxOCIUc2xpcHBhZ2VUb2xlcmFuY2VYMTgiCnByVmlhQW1YMTgiCmFtVmlhUHJYMTgiDGV4cGVjdGVkQW10cyIRZXhwQW10QXNzZXRBbXRYMTgiE2V4cFByaWNlQXNzZXRBbXRYMTgiCWNhbGNMcEFtdCIOY2FsY0FtQXNzZXRQbXQiDmNhbGNQckFzc2V0UG10IgxzbGlwcGFnZUNhbGMiCWVtaXRMcEFtdCIGYW1EaWZmIgZwckRpZmYiC2NvbW1vblN0YXRlIgdjYWxjS0xwIg1hbW91bnRCYWxhbmNlIgxwcmljZUJhbGFuY2UiEGFtb3VudEJhbGFuY2VYMTgiD3ByaWNlQmFsYW5jZVgxOCIKdXBkYXRlZEtMcCIOY2FsY0N1cnJlbnRLTHAiEGFtb3VudEFzc2V0RGVsdGEiD3ByaWNlQXNzZXREZWx0YSIUbHBBc3NldEVtaXNzaW9uRGVsdGEiEmFtb3VudEFzc2V0QmFsYW5jZSIRcHJpY2VBc3NldEJhbGFuY2UiD2xwQXNzZXRFbWlzc2lvbiIKY3VycmVudEtMcCIScmVmcmVzaEtMcEludGVybmFsIhdhbW91bnRBc3NldEJhbGFuY2VEZWx0YSIWcHJpY2VBc3NldEJhbGFuY2VEZWx0YSIHYWN0aW9ucyISdmFsaWRhdGVVcGRhdGVkS0xwIgZvbGRLTHAiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiEWFtb3VudEFzc2V0QW1vdW50IhBwcmljZUFzc2V0QW1vdW50Ig0kdDAyODM3MjI4NTg0IgNrTHAiDSR0MDI5MDI0MjkxMjQiDXVudXNlZEFjdGlvbnMiBmtMcE5ldyIMaXNPcmRlclZhbGlkIgRpbmZvIgljb21tb25HZXQiAWkiA3BtdCIGcG10QW10Igljb21tb25QdXQiCmFtQXNzZXRQbXQiCnByQXNzZXRQbXQiBmVzdFB1dCIEZW1pdCIHZW1pdEludiINZW1pdEludkxlZ2FjeSIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0Igd0YWtlRmVlIglmZWVBbW91bnQiD2NhbGNQdXRPbmVUb2tlbiIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiBmlzRXZhbCIQYW1vdW50QmFsYW5jZVJhdyIPcHJpY2VCYWxhbmNlUmF3IhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwMzIyMzczMjUzMCIQYW1vdW50QmFsYW5jZU9sZCIPcHJpY2VCYWxhbmNlT2xkIg0kdDAzMjUzNDMyNjgzIhRhbW91bnRBc3NldEFtb3VudFJhdyITcHJpY2VBc3NldEFtb3VudFJhdyINJHQwMzI4MTUzMjg3OSINcGF5bWVudEFtb3VudCIQYW1vdW50QmFsYW5jZU5ldyIPcHJpY2VCYWxhbmNlTmV3IgtwcmljZU5ld1gxOCIIcHJpY2VOZXciDnBheW1lbnRCYWxhbmNlIhRwYXltZW50QmFsYW5jZUJpZ0ludCIMc3VwcGx5QmlnSW50IgtjaGVjaFN1cHBseSINZGVwb3NpdEJpZ0ludCILaXNzdWVBbW91bnQiC3ByaWNlT2xkWDE4IghwcmljZU9sZCIEbG9zcyINJHQwMzQ1NjAzNDcyNyIHYmFsYW5jZSIPaXNzdWVBbW91bnRCb3RoIg9jYWxjR2V0T25lVG9rZW4iCm91dEFzc2V0SWQiBmNoZWNrcyIQb3V0SW5BbW91bnRBc3NldCINYmFsYW5jZUJpZ0ludCIYb3V0SW5BbW91bnRBc3NldERlY2ltYWxzIgxhbUJhbGFuY2VPbGQiDHByQmFsYW5jZU9sZCIKb3V0QmFsYW5jZSIQb3V0QmFsYW5jZUJpZ0ludCIOcmVkZWVtZWRCaWdJbnQiCWFtb3VudFJhdyINJHQwMzY4MDUzNjg2MSILdG90YWxBbW91bnQiDSR0MDM2ODY1MzcwOTEiC291dEFtQW1vdW50IgtvdXRQckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciGGFtb3VudEJvdGhJblBheW1lbnRBc3NldCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiCWlzTWFuYWdlciICcGsiC211c3RNYW5hZ2VyIgJwZCINY2xlYW5BbW91bnRJbiIJaXNSZXZlcnNlIg1mZWVQb29sQW1vdW50Ig0kdDAzODk3NzM5MjgyIghhc3NldE91dCIHYXNzZXRJbiIScG9vbEFzc2V0SW5CYWxhbmNlIhNwb29sQXNzZXRPdXRCYWxhbmNlIglhbW91bnRPdXQiBG9sZEsiBG5ld0siBmNoZWNrSyIMYW1vdW50T3V0TWluIglhZGRyZXNzVG8iC3N3YXBDb250YWN0IghjaGVja01pbiIOcmViYWxhbmNlU3RhdGUiDXdpdGhkcmF3U3RhdGUiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iD3Nob3VsZEF1dG9TdGFrZSIEYW1JZCIEcHJJZCIMc2xpcHBhZ2VBSW52IgxzbGlwcGFnZVBJbnYiCmxwVHJhbnNmZXIiC3NscFN0YWtlSW52Ig0kdDA0NDMyNDQ0Nzg2IhFyZWZyZXNoS0xwQWN0aW9ucyIRaXNVcGRhdGVkS0xwVmFsaWQiA3JlYiILbWF4U2xpcHBhZ2UiDSR0MDQ1Mzk4NDU0NjMiDG1pbk91dEFtb3VudCIJYXV0b1N0YWtlIiBpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCINaXNQdXREaXNhYmxlZCIHcGF5bWVudCINJHQwNDY2NTE0NjgwMyIFYm9udXMiE2VtaXRBbW91bnRFc3RpbWF0ZWQiCmVtaXRBbW91bnQiCHN0YWtlSW52IgdzZW5kRmVlIg0kdDA0NzM4OTQ3NTg2Ig0kdDA0NzU4OTQ3Njk3Ig0kdDA0ODA1MjQ4MjA5Ig1vdXRBc3NldElkU3RyIg1pc0dldERpc2FibGVkIg0kdDA0OTA5NDQ5MjQ3Ig9hbW91bnRFc3RpbWF0ZWQiB2J1cm5JbnYiDWFzc2V0VHJhbnNmZXIiDSR0MDQ5ODE3NTAwNjQiEGZlZUFtb3VudEZvckNhbGMiDSR0MDUwMDY3NTAxNzUiDSR0MDUwNDUzNTA2MDkiDXVuc3Rha2VBbW91bnQiCnVuc3Rha2VJbnYiDSR0MDUxNTE0NTE2NjUiDSR0MDUyMjMwNTI0NzciDSR0MDUyNDgwNTI1ODgiCW91dEFtdEFtdCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiDSR0MDUzNTU1NTM2MzciEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiDSR0MDU0NTg2NTQ2NjciDWNoZWNrUGF5bWVudHMiD2NoZWNrUG9vbFN0YXR1cyINJHQwNTU3OTM1NTg3NCIVbm9MZXNzVGhlbkFtb3VudEFzc2V0IgxjaGVja0Ftb3VudHMiDSR0MDU3MTY5NTcyNTAiC2FtdEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhhsYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiHWNoZWNrTGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ig0kdDA1ODQzNzU4NTAxIhBrTHBVcGRhdGVBY3Rpb25zIgphbXRBc3NldElkIgxwcmljZUFzc2V0SWQiDXBvb2xMUEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIUYWNjUHJpY2VBc3NldEJhbGFuY2UiCnByaWNlc0xpc3QiD2xwQW10QXNzZXRTaGFyZSIRbHBQcmljZUFzc2V0U2hhcmUiCnBvb2xXZWlnaHQiDGN1clByaWNlQ2FsYyIMYW1CYWxhbmNlUmF3IgxwckJhbGFuY2VSYXciD2FtQmFsYW5jZVJhd1gxOCIPcHJCYWxhbmNlUmF3WDE4IhBwYXltZW50THBBc3NldElkIgxwYXltZW50THBBbXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSIKbWF0Y2hlclB1YiINJHQwNjcxNjM2NzIzMiIHbmV3SGFzaCILYWxsb3dlZEhhc2giC2N1cnJlbnRIYXNofgABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcBAUQCAUUBRgkAvAIDCQC2AgEFAUUFAWQJALYCAQUBRgEBRwIBRQFGCQC8AgMFAUUFAWQFAUYBAUgCAUkBSgkAoAMBCQC8AgMFAUkJALYCAQUBSgUBZAEBSwMBSQFKAUwJAKADAQkAvQIEBQFJCQC2AgEFAUoFAWQFAUwBAU0DAU4BTwFQCQBrAwUBTgUBTwUBUAEBUQEBSQMJAGYCAAAFAUkJAQEtAQUBSQUBSQEBUgEBSQMJAL8CAgUBZQUBSQkAvgIBBQFJBQFJAQFTAAIQJXNfX3N3YXBDb250cmFjdAEBVAACEyVzX19mYWN0b3J5Q29udHJhY3QBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVwACESVzJXNfX3ByaWNlX19sYXN0AQFYAgFZAVoJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFZCQDMCAIJAKQDAQUBWgUDbmlsBQFqAQJhYQICYWICYWMJAKwCAgkArAICCQCsAgICCyVzJXMlc19fUF9fBQJhYgICX18FAmFjAQJhZAICYWICYWMJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQJhYgICX18FAmFjAQJhZQACDyVzX19hbW91bnRBc3NldAECYWYAAg4lc19fcHJpY2VBc3NldAACYWcCByVzX19mZWUAAmFoCQBrAwAKBQFiAJBOAAJhaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhZwUCYWgAAmFqCQC5CQIJAMwIAgICJXMJAMwIAgIDa0xwBQNuaWwFAWoAAmFrCQC5CQIJAMwIAgICJXMJAMwIAgISa0xwUmVmcmVzaGVkSGVpZ2h0BQNuaWwFAWoAAmFsCQC5CQIJAMwIAgICJXMJAMwIAgIPcmVmcmVzaEtMcERlbGF5BQNuaWwFAWoAAmFtAB4AAmFuCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFsBQJhbQECYW8BAmFwCQC5CQIJAMwIAgIEJXMlcwkAzAgCAg1zdGFrZWRCYWxhbmNlCQDMCAIFAmFwBQNuaWwFAWoBAmFxAQJhcAkAuQkCCQDMCAICBCVzJXMJAMwIAgIRc2hhcmVBc3NldEJhbGFuY2UJAMwIAgUCYXAFA25pbAUBagECYXIBAmFwCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhbwEFAmFwAAABAmFzAQJhcAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYXEBBQJhcAAAAQJhdAACESVzX19mYWN0b3J5Q29uZmlnAQJhdQACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXYBAmF3CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF3AiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYXgCAmF5AmF6CQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJheQICX18FAmF6AghfX2NvbmZpZwECYUEBAmFCCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFCAQJhQwACDCVzX19zaHV0ZG93bgECYUQBAmFFCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYUUBAmFGAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gAAmFHAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUgEAmFJAmFKAmFLAmFMCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhSQICICgFAmFKAgEpAg0gc2VuZGVyVmFsaWQ9CQClAwEFAmFLAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhTAECYU0CAmFOAmFPCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYU4FAmFPCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFOCQDMCAICAS4JAMwIAgUCYU8JAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYVACAmFOAmFPCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYU4FAmFPCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFOCQDMCAICAS4JAMwIAgUCYU8JAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYVEBAmFSCQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFSBQNuaWwCASABAmFTAQJhUgkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFSBQNuaWwCASAAAmFUCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYU0CBQR0aGlzCQEBVAAAAmFVCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYU0CBQJhVAUCYUcAAmFWCgACYVcJAPwHBAUCYVQCEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIDSW50BQJhVwkAAgEJAKwCAgkAAwEFAmFXAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFYCgACYVcJAPwHBAUCYVQCEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCA0ludAUCYVcJAAIBCQCsAgIJAAMBBQJhVwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJhWQAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYVQJAQJhQwAHAQJhWgAJANkEAQkBAmFNAgUCYVQJAQJhdQABAmJhAAQCYmIJAQJhTQIFBHRoaXMJAQJhZQAEAmJjCQECYU0CBQR0aGlzCQECYWYABAJhegkBAmFQAgUCYVQJAQJhQQEFAmJjBAJheQkBAmFQAgUCYVQJAQJhQQEFAmJiCQC1CQIJAQJhTQIFAmFUCQECYXgCCQCkAwEFAmF5CQCkAwEFAmF6BQFqAQJiZAECYmUDCQAAAgUCYmUFAWkFBHVuaXQJANkEAQUCYmUBAmJmAQJiZQMJAAACBQJiZQUEdW5pdAUBaQkA2AQBCQEFdmFsdWUBBQJiZQECYmcBAmJoCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYmgFAW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiaAUBcAkA2QQBCQCRAwIFAmJoBQFxCQECYmQBCQCRAwIFAmJoBQFyCQECYmQBCQCRAwIFAmJoBQFzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmgFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiaAUBdQACYmkJAQJiZwEJAQJiYQAAAmJqBQJiaQACYmsIBQJiagJfMQACYmwIBQJiagJfMgACYm0IBQJiagJfMwACYm4IBQJiagJfNAACYm8IBQJiagJfNQACYnAIBQJiagJfNgACYnEIBQJiagJfNwECYnIACQC1CQIJAQJhTQIFAmFUCQECYXQABQFqAAJicwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJyAAUBQgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYnQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJicgAFAUMCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmJ1CgJidgJidwJieAJieQJiegJiQQJiQgJiQwJiRAJiRQkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYnYJAMwIAgkApAMBBQJidwkAzAgCCQCkAwEFAmJ4CQDMCAIJAKQDAQUCYnkJAMwIAgkApAMBBQJiegkAzAgCCQCkAwEFAmJBCQDMCAIJAKQDAQUCYkIJAMwIAgkApAMBBQJiQwkAzAgCCQCkAwEFAmJECQDMCAIJAKQDAQUCYkUFA25pbAUBagECYkYGAmJHAmJIAmJJAmJ5AmJCAmJDCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYkcJAMwIAgkApAMBBQJiSAkAzAgCCQCkAwEFAmJJCQDMCAIJAKQDAQUCYnkJAMwIAgkApAMBBQJiQgkAzAgCCQCkAwEFAmJDBQNuaWwFAWoBAmJKAQJhcAQCYksDCQAAAgUCYXACBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmFwBAJiTAkAZQIJAGQCBQJiSwkBAmFyAQUCYXAJAQJhcwEFAmFwCQCWAwEJAMwIAgAACQDMCAIFAmJMBQNuaWwBAmJNAgJiTgJiTwkAvAIDBQJiTgUBZAUCYk8BAmJQAwJiTgJiTwFMCQC9AgQFAmJOBQFkBQJiTwUBTAECYlEBAmJSBAJiUwkA/AcEBQJiUgIHZ2V0UmF0ZQUDbmlsBQNuaWwDCQAAAgUCYlMFAmJTBAJiVAUCYlMDCQABAgUCYlQCA0ludAQCYlUFAmJUBQJiVQkBAmFRAQIgcHJveHkuZ2V0UmF0ZSgpIHVuZXhwZWN0ZWQgdmFsdWUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJWBAJhcAJiVwJiWAJiUgQCYlkJAQJhcgEFAmFwAwkAAAIFAmJZBQJiWQQCYloJAQJhcwEFAmJYAwkAAAIFAmJaBQJiWgQCY2EJAQJiZAEFAmFwAwkAZgIFAmJXAAAEAmNiCQD8BwQFAmJSAgdkZXBvc2l0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNhBQJiVwUDbmlsAwkAAAIFAmNiBQJjYgQCYlQFAmNiAwkAAQIFAmJUAgNJbnQEAmNjBQJiVAQCY2QJAGQCBQJiWQUCYlcEAmNlCQBkAgUCYloFAmNjCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8BBQJhcAUCY2QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQEFAmJYBQJjZQUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2YGAmFwAmJXAmJYAmJSAmNnAmNoBAJiWQkBAmFyAQUCYXADCQAAAgUCYlkFAmJZBAJiWgkBAmFzAQUCYlgDCQAAAgUCYloFAmJaBAJjaQkBAmJRAQUCYlIDCQAAAgUCY2kFAmNpBAJjagkAawMFAmNnBQJiWQUCYloEAmNrCQECYmQBBQJiWAQCY2wJAGsDBQJjZwUCYlcFAmNqBAJjbQkAawMFAmNnBQJiVwUCY2kEAmNuCQCWAwEJAMwIAgAACQDMCAIJAGUCBQJjbAUCY20FA25pbAMJAGYCBQJjbQAABAJjbwkA/AcEBQJiUgIId2l0aGRyYXcFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY2sFAmNtBQNuaWwDCQAAAgUCY28FAmNvBAJiVAUCY28DCQABAgUCYlQCA0ludAQCY3AFAmJUBAJjZAkAZQIFAmJZBQJjcAQCY2UJAGUCCQBlAgUCYloFAmNtBQJjbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFvAQUCYXAFAmNkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXEBBQJiWAUCY2UJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY2gFAmNuCQECYmQBBQJiWAUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY3EBAmFwCQD8BwQFAmFUAhpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQkAzAgCCQClCAEFBHRoaXMJAMwIAgUCYXAFA25pbAUDbmlsAQJjcgcCY3MCYXACYlgCY3QCYlICY2cCY2gEAmJZCQECYXIBBQJhcAMJAAACBQJiWQUCYlkEAmJaCQECYXMBBQJiWAMJAAACBQJiWgUCYloEAmN1BAJiVAkBAmJkAQUCYXADCQABAgUCYlQCCkJ5dGVWZWN0b3IEAmN2BQJiVAkA8AcCBQR0aGlzBQJjdgMJAAECBQJiVAIEVW5pdAQCY3cFAmJUCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkAAgECC01hdGNoIGVycm9yAwkAAAIFAmN1BQJjdQQCY3gJAJYDAQkAzAgCAAAJAMwIAgkAZQIJAGQCBQJjdQUCYlkFAmN0BQNuaWwEAmN5CQBrAwUCY3MFAmN4AGQEAmN6CQBlAgUCYlkFAmN5AwkAAAIFAmN6AAAFA25pbAMJAGYCAAAFAmN6BAJjQQkBAS0BBQJjegkBAmJWBAUCYXAFAmNBBQJiWAUCYlIEAmNCBQJjegkBAmNmBgUCYXAFAmNCBQJiWAUCYlIFAmNnBQJjaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY0MBAmFwBAJiVAkBAmNxAQUCYXADCQABAgUCYlQCMChCb29sZWFuLCBJbnQsIEludCwgU3RyaW5nLCBTdHJpbmcsIEludCwgU3RyaW5nKQQCY0QFAmJUBAJjRQUCY0QEAmNGCAUCY0UCXzEEAmNHCAUCY0UCXzIEAmN0CAUCY0UCXzMEAmNICAUCY0UCXzQEAmNJCAUCY0UCXzUEAmNnCAUCY0UCXzYEAmNKCAUCY0UCXzcDBQJjRgkBAmNyBwUCY0cFAmFwBQJjSQUCY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNIBQJjZwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0oFA25pbAkBAmFRAQkArAICCQCsAgICAVsFAmFwAhFdIFJlYmFsYW5jZSBlcnJvcgECY0sCAmFwAmNMBAJiVAkBAmNxAQUCYXADCQABAgUCYlQCMChCb29sZWFuLCBJbnQsIEludCwgU3RyaW5nLCBTdHJpbmcsIEludCwgU3RyaW5nKQQCY0QFAmJUBAJjTQUCY0QEAmNGCAUCY00CXzEEAmNHCAUCY00CXzIEAmN0CAUCY00CXzMEAmNICAUCY00CXzQEAmNJCAUCY00CXzUEAmNnCAUCY00CXzYEAmNKCAUCY00CXzcDBQJjRgQCY04JAJYDAQkAzAgCAAAJAMwIAgkAZQIJAGUCCQECYkoBBQJhcAUCY0wFAmN0BQNuaWwDCQAAAgUCY04FAmNOBAJjZAkAawMFAmNHBQJjTgBkAwkAAAIFAmNkBQJjZAQCY08JAJYDAQkAzAgCAAAJAMwIAgkAZQIJAQJhcgEFAmFwBQJjZAUDbmlsAwkAAAIFAmNPBQJjTwkBAmNmBgUCYXAFAmNPBQJjSQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0gFAmNnCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjSgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUDbmlsCQECYVEBCQCsAgIJAKwCAgIBWwUCYXACH10gZ2V0V2l0aGRyYXdBc3NldFN0YXRlKCkgZXJyb3IBAmNQBAJjUQJjUgJjUwJjVAQCY1UJAQFEAgUCY1MFAmNRBAJjVgkBAUQCBQJjVAUCY1IJAQJiTQIFAmNWBQJjVQECY1cDAmNTAmNUAmNYBAJjWQkBAmJhAAQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdAQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdQQCZGIJAQJjUAQFAmNaBQJkYQUCY1MFAmNUBAJiTwkBAUQCBQJjUwUCY1oEAmJOCQEBRAIFAmNUBQJkYQQCZGMJAQFEAgUCY1gFAWIEAmRkCQECYk0CBQJiTwUCZGMEAmRlCQECYk0CBQJiTgUCZGMJAMwIAgUCZGIJAMwIAgUCZGQJAMwIAgUCZGUFA25pbAECZGYDAmNTAmNUAmNYBAJkZwkBAmNXAwUCY1MFAmNUBQJjWAkAzAgCCQEBSAIJAJEDAgUCZGcAAAUBYgkAzAgCCQEBSAIJAJEDAgUCZGcAAQUBYgkAzAgCCQEBSAIJAJEDAgUCZGcAAgUBYgUDbmlsAQJkaAQCZGkCZGoCZGsCYWIEAmNZCQECYmEABAJkbAkAkQMCBQJjWQUBcQQCZG0JAJEDAgUCY1kFAXIEAmRuCQCRAwIFAmNZBQFzBAJjUQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF0BAJjUgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF1BAJkbwkAkQMCBQJjWQUBcAQCZHAICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJkbAkArAICCQCsAgICBkFzc2V0IAUCZGwCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5AwkBAiE9AgUCZGwFAmRqCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuBAJkcQkBAmJKAQUCZG0EAmRyCQEBRAIFAmRxBQJjUQQCZHMJAQJiSgEFAmRuBAJkdAkBAUQCBQJkcwUCY1IEAmR1CQECYk0CBQJkdAUCZHIEAmR2CQEBSAIFAmR1BQFiBAJkdwkBAUQCBQJkawUBYgQCZHgJAQFEAgUCZHAFAWIEAmR5CQC8AgMFAmRyBQJkdwUCZHgEAmR6CQC8AgMFAmR0BQJkdwUCZHgEAmRBCQEBSwMFAmR5BQJjUQUFRkxPT1IEAmRCCQEBSwMFAmR6BQJjUgUFRkxPT1IEAmRDCQECY0sCBQJkbQUCZEEDCQAAAgUCZEMFAmRDBAJkRAkBAmNLAgUCZG4FAmRCAwkAAAIFAmREBQJkRAQCZEUDCQAAAgUCZGkCAAUDbmlsCQDOCAIJAM4IAgUCZEMFAmRECQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJkQQMJAAACBQJkbQIFV0FWRVMFBHVuaXQJANkEAQUCZG0JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmRCAwkAAAIFAmRuAgVXQVZFUwUEdW5pdAkA2QQBBQJkbgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQCCQClCAEFAmFiBQJkaQkBAmJGBgUCZEEFAmRCBQJkawUCZHYFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZHYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHYFA25pbAkAnAoKBQJkQQUCZEIFAmRtBQJkbgUCZHEFAmRzBQJkcAUCZHUFAmRvBQJkRQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZEYJAmRpAmRHAmRIAmRJAmRKAmRLAmFiAmRMAmRNBAJjWQkBAmJhAAQCZGwJANkEAQkAkQMCBQJjWQUBcQQCZE4JAJEDAgUCY1kFAXIEAmRPCQCRAwIFAmNZBQFzBAJkUAkAkQMCBQJjWQUBdgQCZFEJAJEDAgUCY1kFAXcEAmNaCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXQEAmRhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXUEAmRvCQCRAwIFAmNZBQFwBAJkcAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkbAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkbAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmRSCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmRJCQDZBAECBVdBVkVTBAJkUwkA2AQBCQELdmFsdWVPckVsc2UCBQJkSwkA2QQBAgVXQVZFUwMDCQECIT0CBQJkTgUCZFIGCQECIT0CBQJkTwUCZFMJAAIBAiJJbnZhbGlkIGFtdCBvciBwcmljZSBhc3NldCBwYXNzZWQuBAJkcQMFAmRMCQECYkoBBQJkTgkAZQIJAQJiSgEFAmROBQJkSAQCZHMDBQJkTAkBAmJKAQUCZE8JAGUCCQECYkoBBQJkTwUCZEoEAmRUCQEBRAIFAmRIBQJjWgQCZFUJAQFEAgUCZEoFAmRhBAJkVgkBAmJNAgUCZFUFAmRUBAJkcgkBAUQCBQJkcQUCY1oEAmR0CQEBRAIFAmRzBQJkYQQCZFcDCQAAAgUCZHAAAAQCZHUFAWUEAmRYBQFlBAJkYwkAdgYJALkCAgUCZFQFAmRVAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBSAIFAmRjBQFiCQEBSAIFAmRUBQJjWgkBAUgCBQJkVQUCZGEJAQJiTQIJALcCAgUCZHQFAmRVCQC3AgIFAmRyBQJkVAUCZFgEAmR1CQECYk0CBQJkdAUCZHIEAmRYCQC8AgMJAQFSAQkAuAICBQJkdQUCZFYFAWQFAmR1BAJkWQkBAUQCBQJkRwUBYgMDCQECIT0CBQJkdQUBZQkAvwICBQJkWAUCZFkHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmRYAh4gZXhjZWVkZWQgdGhlIHBhc3NlZCBsaW1pdCBvZiAJAKYDAQUCZFkEAmR4CQEBRAIFAmRwBQFiBAJkWgkAvQIEBQJkVAkBAmJQAwUCZHQFAmRyBQdDRUlMSU5HBQFkBQdDRUlMSU5HBAJlYQkAvQIEBQJkVQUBZAkBAmJQAwUCZHQFAmRyBQVGTE9PUgUHQ0VJTElORwQCZWIDCQC/AgIFAmRaBQJkVQkAlAoCBQJlYQUCZFUJAJQKAgUCZFQFAmRaBAJlYwgFAmViAl8xBAJlZAgFAmViAl8yBAJkYwkAvQIEBQJkeAUCZWQFAmR0BQVGTE9PUgkAlwoFCQEBSwMFAmRjBQFiBQVGTE9PUgkBAUsDBQJlYwUCY1oFB0NFSUxJTkcJAQFLAwUCZWQFAmRhBQdDRUlMSU5HBQJkdQUCZFgEAmVlCAUCZFcCXzEEAmVmCAUCZFcCXzIEAmVnCAUCZFcCXzMEAmR2CQEBSAIIBQJkVwJfNAUBYgQCZWgJAQFIAggFAmRXAl81BQFiAwkAZwIAAAUCZWUJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmVpAwkBASEBBQJkTQAABQJlZQQCZWoJAGUCBQJkSAUCZWYEAmVrCQBlAgUCZEoFAmVnBAJlbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcABQJkdgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVgCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJkdgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECBQJhYgUCZGkJAQJidQoFAmVmBQJlZwUCZWkFAmR2BQJkRwUCZWgFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVqBQJlawUDbmlsCQCfCg0FAmVlBQJlaQUCZHYFAmRxBQJkcwUCZHAFAmRsBQJkbwUCZWwFAmVqBQJlawUCZEkFAmRLAQJlbQMCZW4CZW8CZHAEAmVwCQEBRwIFAmVuCQC2AgEFAmJwBAJlcQkBAUcCBQJlbwkAtgIBBQJicQQCZXIJALwCAwkAdgYJALkCAgUCZXAFAmVxAAAJALYCAQAFAAEAEgUERE9XTgUBZwUCZHADCQAAAgUCZHAFAWYFAWYFAmVyAQJlcwMCZXQCZXUCZXYEAmV3CQC4AgIJALYCAQkBAmJKAQkBAmJmAQUCYm4FAmV0BAJleAkAuAICCQC2AgEJAQJiSgEJAQJiZgEFAmJvBQJldQQCZXkJALgCAgkAtgIBCAkBBXZhbHVlAQkA7AcBBQJibQhxdWFudGl0eQUCZXYEAmV6CQECZW0DBQJldwUCZXgFAmV5BQJlegECZUEDAmVCAmVDAmV2BAJldwkAZAIJAQJiSgEJAQJiZgEFAmJuBQJlQgQCZXgJAGQCCQECYkoBCQECYmYBBQJibwUCZUMEAmV5CQBkAggJAQV2YWx1ZQEJAOwHAQUCYm0IcXVhbnRpdHkFAmV2BAJlcgkBAmVtAwkAtgIBBQJldwkAtgIBBQJleAkAtgIBBQJleQQCZUQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFrBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWoJAKYDAQUCZXIFA25pbAkAlAoCBQJlRAUCZXIBAmVFAgJlRgJlcgMJAMACAgUCZXIFAmVGBgkBAmFRAQkAuQkCCQDMCAICInVwZGF0ZWQgS0xwIGxvd2VyIHRoYW4gY3VycmVudCBLTHAJAMwIAgkApgMBBQJlRgkAzAgCCQCmAwEFAmVyBQNuaWwCASABAmVHAQJlSAQCZXcJAQJiSgEJAQJiZgEFAmJuBAJleAkBAmJKAQkBAmJmAQUCYm8EAmVJCAUCZUgGYW1vdW50BAJlSgkAbgQIBQJlSAZhbW91bnQIBQJlSAVwcmljZQUBYgUFRkxPT1IEAmVLAwkAAAIIBQJlSAlvcmRlclR5cGUFA0J1eQkAlAoCBQJlSQkBAS0BBQJlSgkAlAoCCQEBLQEFAmVJBQJlSgQCZUIIBQJlSwJfMQQCZUMIBQJlSwJfMgMDAwkBAmFZAAYJAAACBQJibAUBbQYJAAACBQJibAUBbgkAAgECHEV4Y2hhbmdlIG9wZXJhdGlvbnMgZGlzYWJsZWQDAwkBAiE9AggIBQJlSAlhc3NldFBhaXILYW1vdW50QXNzZXQFAmJuBgkBAiE9AggIBQJlSAlhc3NldFBhaXIKcHJpY2VBc3NldAUCYm8JAAIBAhNXcm9uZyBvcmRlciBhc3NldHMuBAJlTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYWoCATAJAQJhUwECC2ludmFsaWQga0xwBAJlTQkBAmVBAwUCZUIFAmVDAAAEAmVOCAUCZU0CXzEEAmVPCAUCZU0CXzIEAmVQCQDAAgIFAmVPBQJlTAQCZVEJALkJAgkAzAgCAgRrTHA9CQDMCAIJAKYDAQUCZUwJAMwIAgIIIGtMcE5ldz0JAMwIAgkApgMBBQJlTwkAzAgCAhQgYW1vdW50QXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmV3CQDMCAICEyBwcmljZUFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJleAkAzAgCAhkgYW1vdW50QXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZUIJAMwIAgIYIHByaWNlQXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZUMJAMwIAgIIIGhlaWdodD0JAMwIAgkApAMBBQZoZWlnaHQFA25pbAIACQCUCgIFAmVQBQJlUQECZVIBAmVTAwkBAiE9AgkAkAMBCAUCZVMIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJlVAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAAQCZGoJAQV2YWx1ZQEIBQJlVAdhc3NldElkBAJlVQgFAmVUBmFtb3VudAQCZFcJAQJkaAQJANgEAQgFAmVTDXRyYW5zYWN0aW9uSWQJANgEAQUCZGoFAmVVCAUCZVMGY2FsbGVyBAJkQQgFAmRXAl8xBAJkQggFAmRXAl8yBAJkbwkBDXBhcnNlSW50VmFsdWUBCAUCZFcCXzkEAmRFCAUCZFcDXzEwAwMJAQJhWQAGCQAAAgUCZG8FAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRvCQCXCgUFAmRBBQJkQgUCZVUFAmRqBQJkRQECZVYDAmVTAmRHAmRNAwkBAiE9AgkAkAMBCAUCZVMIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmVXCQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwAABAJlWAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAQQCZVkJAQJkRgkJANgEAQgFAmVTDXRyYW5zYWN0aW9uSWQFAmRHCAUCZVcGYW1vdW50CAUCZVcHYXNzZXRJZAgFAmVYBmFtb3VudAgFAmVYB2Fzc2V0SWQJAKUIAQgFAmVTBmNhbGxlcgcFAmRNBAJkbwkBDXBhcnNlSW50VmFsdWUBCAUCZVkCXzgDAwMJAQJhWQAGCQAAAgUCZG8FAWwGCQAAAgUCZG8FAW4JAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRvBQJlWQECZVoBAmJXBAJmYQkA/AcEBQJhVAIEZW1pdAkAzAgCBQJiVwUDbmlsBQNuaWwDCQAAAgUCZmEFAmZhBAJmYgQCYlQFAmZhAwkAAQIFAmJUAgdBZGRyZXNzBAJmYwUCYlQJAPwHBAUCZmMCBGVtaXQJAMwIAgUCYlcFA25pbAUDbmlsBQR1bml0AwkAAAIFAmZiBQJmYgUCYlcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZkAgJiVwJhaQQCZmUDCQAAAgUCYWkAAAAACQBrAwUCYlcFAmFpBQFiCQCUCgIJAGUCBQJiVwUCZmUFAmZlAQJmZgQCZmcCZmgCYWICYWMEAmZpCQAAAgUCYWMFBHVuaXQEAmZqCQECYkoBCQECYmYBBQJibgQCZmsJAQJiSgEJAQJiZgEFAmJvBAJmbAMJAAACBQJmaAUCYm4GAwkAAAIFAmZoBQJibwcJAQJhUQECDWludmFsaWQgYXNzZXQEAmZtAwUCZmkJAJQKAgUCZmoFAmZrAwUCZmwJAJQKAgkAZQIFAmZqBQJmZwUCZmsJAJQKAgUCZmoJAGUCBQJmawUCZmcEAmZuCAUCZm0CXzEEAmZvCAUCZm0CXzIEAmZwAwUCZmwJAJQKAgUCZmcAAAkAlAoCAAAFAmZnBAJmcQgFAmZwAl8xBAJmcggFAmZwAl8yBAJlSQgJAQJmZAIFAmZxBQJhVgJfMQQCZUoICQECZmQCBQJmcgUCYVYCXzEEAmZzCQECZmQCBQJmZwUCYVYEAmZ0CAUCZnMCXzEEAmZlCAUCZnMCXzIEAmZ1CQBkAgUCZm4FAmVJBAJmdgkAZAIFAmZvBQJlSgQCZncJAQJiTQIJAQFEAgUCZnYFAmJxCQEBRAIFAmZ1BQJicAQCZngJAQFIAgUCZncFAWIEAmZ5AwUCZmwFAmZuBQJmbwQCZnoJALYCAQUCZnkEAmZBCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYm0JAKwCAgkArAICAgZhc3NldCAJANgEAQUCYm0CDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmQgMJAL8CAgUCZkEFAWYGCQECYVEBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmZCBQJmQgQCZkMJALYCAQUCZnQEAmZECQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmZBCQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFkCQC6AgIJALkCAgUCZkMFAWQFAmZ6ABIAEgUERE9XTgUBZAUBZAUDbmlsBAJlbAMFAmZpBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZngJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZngJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgkApQgBCQEFdmFsdWUBBQJhYgkA2AQBCQEFdmFsdWUBBQJhYwkBAmJ1CgUCZnEFAmZyBQJmRAUCZngAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJmRQkBAmJNAgkBAUQCBQJmbwUCYnEJAQFEAgUCZm4FAmJwBAJmRgkBAUgCBQJmRQUBYgQCZkcEAmZIAwUCZmwJAJQKAgUCZnEFAmZuCQCUCgIFAmZyBQJmbwQCYlcIBQJmSAJfMQQCZkkIBQJmSAJfMgQCZkoJAKADAQkAvAIDBQJmQQkAtgIBCQBpAgUCYlcAAgkAtgIBBQJmSQkAawMJAGUCBQJmRAUCZkoFAWIFAmZKCQCXCgUFAmZEBQJlbAUCZmUFAmZHBQJmbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZksFAmZMAmZ0AmZoAmFiAmFjBAJmaQkAAAIFAmFjBQR1bml0BAJjWQkBAmJhAAQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdAQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjWQUBdQQCZk0JAMwIAgMJAAACBQJmaAUCYm0GCQECYVEBAhBpbnZhbGlkIGxwIGFzc2V0BQNuaWwDCQAAAgUCZk0FAmZNBAJmTgMJAAACBQJmTAUCYm4GAwkAAAIFAmZMBQJibwcJAQJhUQECDWludmFsaWQgYXNzZXQEAmZPAwUCZk4JALYCAQkBAmJKAQkBAmJmAQUCYm4JALYCAQkBAmJKAQkBAmJmAQUCYm8EAmZQAwUCZk4FAmNaBQJkYQQCZlEJAQJiSgEJAQJiZgEFAmJuBAJmUgkBAmJKAQkBAmJmAQUCYm8EAmZTAwUCZk4FAmZRBQJmUgQCZlQJALYCAQUCZlMEAmZBCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYm0JAKwCAgkArAICAgZhc3NldCAJANgEAQUCYm0CDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmVQkAtgIBBQJmdAQCZlYJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZk8JALgCAgUBZAkAdgYJALgCAgUBZAkAugICCQC5AgIFAmZVBQFkBQJmQQASBQFoAAAAEgUERE9XTgUBZAUDbmlsBAJmVwkBAmZkAgUCZlYFAmFYBAJmWAgFAmZXAl8xBAJmZQgFAmZXAl8yBAJmWQMFAmZOCQCWCgQFAmZYAAAJAGUCBQJmUQUCZlYFAmZSCQCWCgQAAAUCZlgFAmZRCQBlAgUCZlIFAmZWBAJmWggFAmZZAl8xBAJnYQgFAmZZAl8yBAJnYggFAmZZAl8zBAJnYwgFAmZZAl80BAJmdwkBAmJNAgkBAUQCBQJnYwUCYnEJAQFEAgUCZ2IFAmJwBAJmeAkBAUgCBQJmdwUBYgQCZWwDBQJmaQUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIJAKUIAQkBBXZhbHVlAQUCYWIJANgEAQkBBXZhbHVlAQUCYWMJAQJiRgYFAmZaBQJnYQUCZnQFAmZ4BQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmZ4CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZ4BQNuaWwEAmZFCQECYk0CCQEBRAIFAmZSBQJicQkBAUQCBQJmUQUCYnAEAmZGCQEBSAIFAmZFBQFiBAJmRwQCZ2QJAGgCCQCgAwEJALwCAwUCZk8FAmZVBQJmQQACCQBrAwkAZQIFAmZYBQJnZAUBYgUCZ2QJAJcKBQUCZlgFAmVsBQJmZQUCZkcFAmZOCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJnZQAEAmJUCQCiCAEJAQFVAAMJAAECBQJiVAIGU3RyaW5nBAJnZgUCYlQJANkEAQUCZ2YDCQABAgUCYlQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZ2cABAJiVAkAoggBCQEBVgADCQABAgUCYlQCBlN0cmluZwQCZ2YFAmJUCQDZBAEFAmdmAwkAAQIFAmJUAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmdoAQJlUwQCYlQJAQJnZQADCQABAgUCYlQCCkJ5dGVWZWN0b3IEAmdpBQJiVAkAAAIIBQJlUw9jYWxsZXJQdWJsaWNLZXkFAmdpAwkAAQIFAmJUAgRVbml0CQAAAggFAmVTBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJnagECZVMEAmdrCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmJUCQECZ2UAAwkAAQIFAmJUAgpCeXRlVmVjdG9yBAJnaQUCYlQDCQAAAggFAmVTD2NhbGxlclB1YmxpY0tleQUCZ2kGBQJnawMJAAECBQJiVAIEVW5pdAMJAAACCAUCZVMGY2FsbGVyBQR0aGlzBgUCZ2sJAAIBAgtNYXRjaCBlcnJvch4CZVMBCXJlYmFsYW5jZQAJAM4IAgkBAmNDAQkBAmFNAgUEdGhpcwkBAmFlAAkBAmNDAQkBAmFNAgUEdGhpcwkBAmFmAAJlUwEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJnbAJnbQJnbgQCZ28DCQAAAgUCZ20HBAJncAkBAmFNAgUEdGhpcwkBAmFmAAQCZ3EJAQJhTQIFBHRoaXMJAQJhZQAJAJQKAgUCZ3AFAmdxBAJncAkBAmFNAgUEdGhpcwkBAmFlAAQCZ3EJAQJhTQIFBHRoaXMJAQJhZgAJAJQKAgUCZ3AFAmdxBAJncAgFAmdvAl8xBAJncQgFAmdvAl8yBAJncgkBAmJKAQUCZ3EEAmdzCQECYkoBBQJncAQCZ3QJAGsDBQJncwUCZ2wJAGQCBQJncgUCZ2wEAmd1CQC5AgIJALYCAQUCZ3IJALYCAQUCZ3MEAmd2CQC5AgIJALcCAgkAtwICCQC2AgEJAQJiSgEFAmdxCQC2AgEFAmdsCQC2AgEFAmduCQC4AgIJALYCAQkBAmJKAQUCZ3AJALYCAQUCZ3QEAmd3AwkAwAICBQJndgUCZ3UGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ3cFAmd3CQCUCgIFA25pbAUCZ3QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBJmNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBBbmRTZW5kVG9rZW5zBQJnbAJnbQJneAJneQJnbgQCZ3oKAAJhVwkA/AcEBQJhVAIXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmFXAgZTdHJpbmcFAmFXCQACAQkArAICCQADAQUCYVcCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCZk0JAMwIAgMJAGcCCAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAAZhbW91bnQFAmdsBgkBAmFRAQIMV3JvbmcgYW1vdW50CQDMCAIDCQAAAggFAmVTBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ3oGCQECYVEBAhFQZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFAmZNBQJmTQQCZVQJAQV2YWx1ZQEJAJEDAggFAmVTCHBheW1lbnRzAAAEAmdxCQECYmYBCAUCZVQHYXNzZXRJZAQCZ3ADCQAAAgUCZ20HCQECYU0CBQR0aGlzCQECYWYACQECYU0CBQR0aGlzCQECYWUABAJncgkAZQIJAQJiSgEFAmdxCAkBBXZhbHVlAQkAkQMCCAUCZVMIcGF5bWVudHMAAAZhbW91bnQEAmdzCQECYkoBBQJncAQCZ3QJAGsDBQJncwUCZ2wJAGQCBQJncgUCZ2wEAmd1CQC5AgIJALYCAQUCZ3IJALYCAQUCZ3MEAmd2CQC5AgIJALcCAgkAtgIBCQECYkoBBQJncQkAtgIBBQJnbgkAuAICCQC2AgEJAQJiSgEFAmdwCQC2AgEFAmd0BAJndwMJAMACAgUCZ3YFAmd1BgkAAgECFG5ldyBLIGlzIGZld2VyIGVycm9yAwkAAAIFAmd3BQJndwQCZ0EDCQBnAgUCZ3QFAmd4BgkAAgECLEV4Y2hhbmdlIHJlc3VsdCBpcyBmZXdlciBjb2lucyB0aGFuIGV4cGVjdGVkAwkAAAIFAmdBBQJnQQQCZ0IJAQJjQwEFAmdxAwkAAAIFAmdCBQJnQgQCZ0MJAQJjSwIFAmdwBQJndAMJAAACBQJnQwUCZ0MJAJQKAgkAzggCCQDOCAIFAmdDBQJnQgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQJneQUCZ3QJAQJiZAEFAmdwBQNuaWwFAmd0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTAQpzZXRNYW5hZ2VyAQJnRAQCZ0UJAQJnagEFAmVTAwkAAAIFAmdFBQJnRQQCZ0YJANkEAQUCZ0QDCQAAAgUCZ0YFAmdGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAAUCZ0QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEOY29uZmlybU1hbmFnZXIABAJnRwkBAmdnAAQCZ0gDCQEJaXNEZWZpbmVkAQUCZ0cGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdIBQJnSAQCZ0kDCQAAAggFAmVTD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZ0cGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdJBQJnSQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVQAJANgEAQkBBXZhbHVlAQUCZ0cJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVYABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBA3B1dAICZEcCZ0oDCQBmAgAABQJkRwkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJlWQkBAmVWAwUCZVMFAmRHBgQCZWkIBQJlWQJfMgQCZGwIBQJlWQJfNwQCZEUIBQJlWQJfOQQCZWoIBQJlWQNfMTAEAmVrCAUCZVkDXzExBAJnSwgFAmVZA18xMgQCZ0wIBQJlWQNfMTMEAmVXCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwAABmFtb3VudAQCZVgJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVTCHBheW1lbnRzAAEGYW1vdW50BAJlegkBAmVzAwUCZVcFAmVYCQC2AgEAAAMJAAACBQJlegUCZXoEAmZhCQD8BwQFAmFUAgRlbWl0CQDMCAIFAmVpBQNuaWwFA25pbAMJAAACBQJmYQUCZmEEAmZiBAJiVAUCZmEDCQABAgUCYlQCB0FkZHJlc3MEAmZjBQJiVAkA/AcEBQJmYwIEZW1pdAkAzAgCBQJlaQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmIFAmZiBAJnTQMJAGYCBQJlagAACQD8BwQFAmJ0AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ0sFAmVqBQNuaWwFA25pbAMJAAACBQJnTQUCZ00EAmdOAwkAZgIFAmVrAAAJAPwHBAUCYnQCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnTAUCZWsFA25pbAUDbmlsAwkAAAIFAmdOBQJnTgQCZ08DBQJnSgQCZ1AJAPwHBAUCYnMCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRsBQJlaQUDbmlsAwkAAAIFAmdQBQJnUAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlUwZjYWxsZXIFAmVpBQJkbAUDbmlsBAJnUQkBAmVBAwAAAAAAAAMJAAACBQJnUQUCZ1EEAmVyCAUCZ1ECXzIEAmdSCAUCZ1ECXzEEAmdTCQECZUUCBQJlegUCZXIDCQAAAgUCZ1MFAmdTBAJnVAkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmdUBQJnVAkAzggCCQDOCAIFAmRFBQJnTwUCZ1IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBCnB1dEZvckZyZWUBAmdVAwkAZgIAAAUCZ1UJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZVkJAQJlVgMFAmVTBQJnVQcEAmRFCAUCZVkCXzkEAmVXCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlUwhwYXltZW50cwAABmFtb3VudAQCZVgJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVTCHBheW1lbnRzAAEGYW1vdW50BAJlegkBAmVzAwUCZVcFAmVYCQC2AgEAAAMJAAACBQJlegUCZXoEAmdWCQECZUEDAAAAAAAABAJnUggFAmdWAl8xBAJlcggFAmdWAl8yBAJnUwkBAmVFAgUCZXoFAmVyAwkAAAIFAmdTBQJnUwkAzggCBQJkRQUCZ1IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBCXB1dE9uZVRrbgICZ1cCZ1gEAmdZCgACYVcJAPwHBAUCYVQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhVwIHQm9vbGVhbgUCYVcJAAIBCQCsAgIJAAMBBQJhVwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZ1oDAwMJAQJhWQAGCQAAAgUCYmwFAWwGCQAAAgUCYmwFAW4GBQJnWQQCZk0JAMwIAgMDCQEBIQEFAmdaBgkBAmdoAQUCZVMGCQECYVEBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlUwhwYXltZW50cwABBgkBAmFRAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZk0FAmZNBAJoYQkAkQMCCAUCZVMIcGF5bWVudHMAAAQCZmgIBQJoYQdhc3NldElkBAJmZwgFAmhhBmFtb3VudAQCZXoDCQAAAgUCZmgFAmJuCQECZXMDCQC2AgEFAmZnCQC2AgEAAAkAtgIBAAADCQAAAgUCZmgFAmJvCQECZXMDCQC2AgEAAAkAtgIBBQJmZwkAtgIBAAAJAQJhUQECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJlegUCZXoEAmFiCAUCZVMGY2FsbGVyBAJhYwgFAmVTDXRyYW5zYWN0aW9uSWQEAmhiCQECZmYEBQJmZwUCZmgFAmFiBQJhYwMJAAACBQJoYgUCaGIEAmZsCAUCaGICXzUEAmhjCAUCaGICXzQEAmZlCAUCaGICXzMEAmVsCAUCaGICXzIEAmhkCAUCaGICXzEEAmhlAwMJAGYCBQJnVwAACQBmAgUCZ1cFAmhkBwkBAmFRAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnVwUDbmlsAgAFAmhkBAJmYQkBAmVaAQUCaGUDCQAAAgUCZmEFAmZhBAJnTwMFAmdYBAJoZgkA/AcEBQJicwIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYm0FAmhlBQNuaWwDCQAAAgUCaGYFAmhmBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVTBmNhbGxlcgUCaGUFAmJtBQNuaWwEAmhnAwkAZgIFAmZlAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVUFAmZlBQJmaAUDbmlsBQNuaWwEAmhoAwkAAAIFBHRoaXMFAmFVCQCUCgIAAAAAAwUCZmwJAJQKAgkBAS0BBQJmZQAACQCUCgIAAAkBAS0BBQJmZQQCZUIIBQJoaAJfMQQCZUMIBQJoaAJfMgQCaGkJAQJlQQMFAmVCBQJlQwAABAJnUggFAmhpAl8xBAJlcggFAmhpAl8yBAJlTAkBBXZhbHVlAQkAoggBBQJhagQCZ1MJAQJlRQIFAmV6BQJlcgMJAAACBQJnUwUCZ1MEAmdUCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZ1QFAmdUCQCUCgIJAM4IAgkAzggCCQDOCAIFAmVsBQJnTwUCaGcFAmdSBQJoZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwERcHV0T25lVGtuUkVBRE9OTFkCAmZoAmZnBAJoagkBAmZmBAUCZmcJAQJiZAEFAmZoBQR1bml0BQR1bml0BAJoZAgFAmhqAl8xBAJlbAgFAmhqAl8yBAJmZQgFAmhqAl8zBAJoYwgFAmhqAl80BAJmbAgFAmhqAl81CQCUCgIFA25pbAkAlQoDBQJoZAUCZmUFAmhjAmVTAQlnZXRPbmVUa24CAmhrAmdXBAJnWQoAAmFXCQD8BwQFAmFUAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCB0Jvb2xlYW4FAmFXCQACAQkArAICCQADAQUCYVcCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhsAwMJAQJhWQAGCQAAAgUCYmwFAW4GBQJnWQQCZk0JAMwIAgMDCQEBIQEFAmhsBgkBAmdoAQUCZVMGCQECYVEBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlUwhwYXltZW50cwABBgkBAmFRAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZk0FAmZNBAJmTAkBAmJkAQUCaGsEAmhhCQCRAwIIBQJlUwhwYXltZW50cwAABAJmaAgFAmhhB2Fzc2V0SWQEAmZ0CAUCaGEGYW1vdW50BAJlegkBAmVzAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlegUCZXoEAmFiCAUCZVMGY2FsbGVyBAJhYwgFAmVTDXRyYW5zYWN0aW9uSWQEAmhtCQECZksFBQJmTAUCZnQFAmZoBQJhYgUCYWMDCQAAAgUCaG0FAmhtBAJmTggFAmhtAl81BAJoYwgFAmhtAl80BAJmZQgFAmhtAl8zBAJlbAgFAmhtAl8yBAJobggFAmhtAl8xBAJiVwMDCQBmAgUCZ1cAAAkAZgIFAmdXBQJobgcJAQJhUQEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1cFA25pbAIABQJobgQCaG8JAPwHBAUCYVQCBGJ1cm4JAMwIAgUCZnQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZmgFAmZ0BQNuaWwDCQAAAgUCaG8FAmhvBAJnQwkBAmNLAgUCaGsFAmJXAwkAAAIFAmdDBQJnQwQCaHAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYWIFAmJXBQJmTAUDbmlsBAJoZwMJAGYCBQJmZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFVBQJmZQUCZkwFA25pbAUDbmlsBAJocQQCaHIDCQAAAgUEdGhpcwUCYVUAAAUCZmUDBQJmTgkAlAoCCQEBLQEJAGQCBQJiVwUCaHIAAAkAlAoCAAAJAQEtAQkAZAIFAmJXBQJocgQCZUIIBQJocQJfMQQCZUMIBQJocQJfMgQCaHMJAQJlQQMFAmVCBQJlQwAABAJnUggFAmhzAl8xBAJlcggFAmhzAl8yBAJnUwkBAmVFAgUCZXoFAmVyAwkAAAIFAmdTBQJnUwkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIFAmVsBQJnQwUCaHAFAmhnBQJnUgUCYlcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBEWdldE9uZVRrblJFQURPTkxZAgJmTAJmdAQCaHQJAQJmSwUJAQJiZAEFAmZMBQJmdAUCYm0FBHVuaXQFBHVuaXQEAmhuCAUCaHQCXzEEAmVsCAUCaHQCXzIEAmZlCAUCaHQCXzMEAmhjCAUCaHQCXzQEAmZOCAUCaHQCXzUJAJQKAgUDbmlsCQCVCgMFAmhuBQJmZQUCaGMCZVMBE3Vuc3Rha2VBbmRHZXRPbmVUa24DAmh1AmhrAmdXBAJnWQoAAmFXCQD8BwQFAmFUAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVcCB0Jvb2xlYW4FAmFXCQACAQkArAICCQADAQUCYVcCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhsAwMJAQJhWQAGCQAAAgUCYmwFAW4GBQJnWQQCZk0JAMwIAgMDCQEBIQEFAmhsBgkBAmdoAQUCZVMGCQECYVEBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlUwhwYXltZW50cwAABgkBAmFRAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZk0FAmZNBAJmTAkBAmJkAQUCaGsEAmFiCAUCZVMGY2FsbGVyBAJhYwgFAmVTDXRyYW5zYWN0aW9uSWQEAmV6CQECZXMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmV6BQJlegQCaHYJAPwHBAUCYnMCB3Vuc3Rha2UJAMwIAgkA2AQBBQJibQkAzAgCBQJodQUDbmlsBQNuaWwDCQAAAgUCaHYFAmh2BAJodwkBAmZLBQUCZkwFAmh1BQJibQUCYWIFAmFjAwkAAAIFAmh3BQJodwQCZk4IBQJodwJfNQQCaGMIBQJodwJfNAQCZmUIBQJodwJfMwQCZWwIBQJodwJfMgQCaG4IBQJodwJfMQQCYlcDAwkAZgIFAmdXAAAJAGYCBQJnVwUCaG4HCQECYVEBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmdXBQNuaWwCAAUCaG4EAmhvCQD8BwQFAmFUAgRidXJuCQDMCAIFAmh1BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJtBQJodQUDbmlsAwkAAAIFAmhvBQJobwQCZ0MJAQJjSwIFAmhrBQJiVwMJAAACBQJnQwUCZ0MEAmhwCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlUwZjYWxsZXIFAmJXBQJmTAUDbmlsBAJoZwMJAGYCBQJmZQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFVBQJmZQUCZkwFA25pbAUDbmlsBAJoeAQCaHIDCQAAAgUEdGhpcwUCYVUAAAUCZmUDBQJmTgkAlAoCCQEBLQEJAGQCBQJiVwUCaHIAAAkAlAoCAAAJAQEtAQkAZAIFAmJXBQJocgQCZUIIBQJoeAJfMQQCZUMIBQJoeAJfMgQCaHkJAQJlQQMFAmVCBQJlQwAABAJnUggFAmh5Al8xBAJlcggFAmh5Al8yBAJnUwkBAmVFAgUCZXoFAmVyAwkAAAIFAmdTBQJnUwkAlAoCCQDOCAIJAM4IAgkAzggCCQDOCAIFAmVsBQJnQwUCaHAFAmhnBQJnUgUCYlcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBA2dldAAEAmRXCQECZVIBBQJlUwQCaHoIBQJkVwJfMQQCZEIIBQJkVwJfMgQCZVUIBQJkVwJfMwQCZGoIBQJkVwJfNAQCZEUIBQJkVwJfNQQCZXoJAQJlcwMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZXoFAmV6BAJoQQkA/AcEBQJhVAIEYnVybgkAzAgCBQJlVQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkagUCZVUFA25pbAMJAAACBQJoQQUCaEEEAmhCCQECZUEDCQEBLQEFAmh6CQEBLQEFAmRCAAAEAmdSCAUCaEICXzEEAmVyCAUCaEICXzIEAmdTCQECZUUCBQJlegUCZXIDCQAAAgUCZ1MFAmdTCQDOCAIFAmRFBQJnUgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwEJZ2V0Tm9MZXNzAgJoQwJoRAQCZFcJAQJlUgEFAmVTBAJkQQgFAmRXAl8xBAJkQggFAmRXAl8yBAJlVQgFAmRXAl8zBAJkaggFAmRXAl80BAJkRQgFAmRXAl81AwkAZgIFAmhDBQJkQQkAAgEJAKwCAgkArAICCQCsAgICHG5vTGVzc1RoZW5BbXRBc3NldCBmYWlsZWQ6ICAJAKQDAQUCZEECAyA8IAkApAMBBQJoQwMJAGYCBQJoRAUCZEIJAAIBCQCsAgIJAKwCAgkArAICAh1ub0xlc3NUaGVuUHJpY2VBc3NldCBmYWlsZWQ6IAkApAMBBQJkQgIDIDwgCQCkAwEFAmhEBAJlegkBAmVzAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlegUCZXoEAmhBCQD8BwQFAmFUAgRidXJuCQDMCAIFAmVVBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRqBQJlVQUDbmlsAwkAAAIFAmhBBQJoQQQCaEUJAQJlQQMJAQEtAQUCZEEJAQEtAQUCZEIAAAQCZ1IIBQJoRQJfMQQCZXIIBQJoRQJfMgQCZ1MJAQJlRQIFAmV6BQJlcgMJAAACBQJnUwUCZ1MJAM4IAgUCZEUFAmdSCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTAQ11bnN0YWtlQW5kR2V0AQJiVwQCaEYDCQECIT0CCQCQAwEIBQJlUwhwYXltZW50cwAACQACAQIYTm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBgMJAAACBQJoRgUCaEYEAmNZCQECYmEABAJkbAkA2QQBCQCRAwIFAmNZBQFxBAJlegkBAmVzAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlegUCZXoEAmh2CQD8BwQFAmJzAgd1bnN0YWtlCQDMCAIJANgEAQUCZGwJAMwIAgUCYlcFA25pbAUDbmlsAwkAAAIFAmh2BQJodgQCZFcJAQJkaAQJANgEAQgFAmVTDXRyYW5zYWN0aW9uSWQJANgEAQUCZGwFAmJXCAUCZVMGY2FsbGVyBAJkQQgFAmRXAl8xBAJkQggFAmRXAl8yBAJkbwkBDXBhcnNlSW50VmFsdWUBCAUCZFcCXzkEAmRFCAUCZFcDXzEwBAJoRwMDCQECYVkABgkAAAIFAmRvBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJkbwYDCQAAAgUCaEcFAmhHBAJoQQkA/AcEBQJhVAIEYnVybgkAzAgCBQJiVwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkbAUCYlcFA25pbAMJAAACBQJoQQUCaEEEAmhICQECZUEDCQEBLQEFAmRBCQEBLQEFAmRCAAAEAmdSCAUCaEgCXzEEAmVyCAUCaEgCXzIEAmdTCQECZUUCBQJlegUCZXIDCQAAAgUCZ1MFAmdTCQDOCAIFAmRFBQJnUgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlUwETdW5zdGFrZUFuZEdldE5vTGVzcwMCaHUCaEkCaEQEAmhsAwkBAmFZAAYJAAACBQJibAUBbgQCZk0JAMwIAgMJAQEhAQUCaGwGCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZVMIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmTQUCZk0EAmV6CQECZXMDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmV6BQJlegQCaHYJAPwHBAUCYnMCB3Vuc3Rha2UJAMwIAgkA2AQBBQJibQkAzAgCBQJodQUDbmlsBQNuaWwDCQAAAgUCaHYFAmh2BAJkVwkBAmRoBAkA2AQBCAUCZVMNdHJhbnNhY3Rpb25JZAkA2AQBBQJibQUCaHUIBQJlUwZjYWxsZXIEAmRBCAUCZFcCXzEEAmRCCAUCZFcCXzIEAmRFCAUCZFcDXzEwBAJoSgkAzAgCAwkAZwIFAmRBBQJoSQYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoSQUDbmlsAgAJAMwIAgMJAGcCBQJkQgUCaEQGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoRAUDbmlsAgAFA25pbAMJAAACBQJoSgUCaEoEAmhBCQD8BwQFAmFUAgRidXJuCQDMCAIFAmh1BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJtBQJodQUDbmlsAwkAAAIFAmhBBQJoQQQCaEsJAQJlQQMJAQEtAQUCZEEJAQEtAQUCZEIAAAQCZ1IIBQJoSwJfMQQCZXIIBQJoSwJfMgQCZ1MJAQJlRQIFAmV6BQJlcgMJAAACBQJnUwUCZ1MJAM4IAgUCZEUFAmdSCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVTAQhhY3RpdmF0ZQICaEwCaE0DCQECIT0CCQClCAEIBQJlUwZjYWxsZXIJAKUIAQUCYVQJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWUABQJoTAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYABQJoTQUDbmlsAgdzdWNjZXNzAmVTAQpyZWZyZXNoS0xwAAQCaE4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYWsAAAQCaE8DCQBnAgkAZQIFBmhlaWdodAUCaE4FAmFuBQR1bml0CQECYVEBCQC5CQIJAMwIAgkApAMBBQJhbgkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCaE8FAmhPBAJlTAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYWoCATAJAQJhUwECC2ludmFsaWQga0xwBAJoUAkBAmVBAwAAAAAAAAQCaFEIBQJoUAJfMQQCZXIIBQJoUAJfMgQCZUQDCQECIT0CBQJlTAUCZXIFAmhRCQECYVEBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZUQJAKYDAQUCZXIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVMBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmJhAAJlUwEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECYXAJAJQKAgUDbmlsCQECYkoBBQJhcAJlUwEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCY1MCY1QCY1gEAmRnCQECY1cDBQJjUwUCY1QFAmNYCQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCZGcAAAkAzAgCCQCmAwEJAJEDAgUCZGcAAQkAzAgCCQCmAwEJAJEDAgUCZGcAAgUDbmlsAmVTARR0b1gxOFdyYXBwZXJSRUFET05MWQIBRQFGCQCUCgIFA25pbAkApgMBCQEBRAIFAUUFAUYCZVMBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUkBSgkAlAoCBQNuaWwJAQFIAgkApwMBBQFJBQFKAmVTAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJOAmJPCQCUCgIFA25pbAkApgMBCQECYk0CCQCnAwEFAmJOCQCnAwEFAmJPAmVTASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCZGkCZEcCZEgCZEkCZEoCZEsCYWICZEwCZE0JAJQKAgUDbmlsCQECZEYJBQJkaQUCZEcFAmRIBQJkSQUCZEoFAmRLBQJhYgUCZEwFAmRNAmVTASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCZGkCZGoCZGsCYWIEAmRXCQECZGgEBQJkaQUCZGoFAmRrCQERQGV4dHJOYXRpdmUoMTA2MikBBQJhYgkAlAoCBQNuaWwJAJwKCggFAmRXAl8xCAUCZFcCXzIIBQJkVwJfMwgFAmRXAl80CAUCZFcCXzUIBQJkVwJfNggFAmRXAl83CQCmAwEIBQJkVwJfOAgFAmRXAl85CAUCZFcDXzEwAmVTAQ1zdGF0c1JFQURPTkxZAAQCY1kJAQJiYQAEAmRsCQDZBAEJAJEDAgUCY1kFAXEEAmhSCQCRAwIFAmNZBQFyBAJoUwkAkQMCBQJjWQUBcwQCZFAJAJEDAgUCY1kFAXYEAmRRCQCRAwIFAmNZBQF3BAJjWgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF0BAJkYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNZBQF1BAJoVAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkbAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkbAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmhVCQECYkoBBQJoUgQCaFYJAQJiSgEFAmhTBAJoVwMJAAACBQJoVAAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJjVwMFAmhVBQJoVgUCaFQEAmR2AAAEAmhYCQEBSAIJAJEDAgUCaFcAAQUBYgQCaFkJAQFIAgkAkQMCBQJoVwACBQFiBAJoWgkBBXZhbHVlAQkAmggCBQJhVAkBAmFEAQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCaFUJAMwIAgkApAMBBQJoVgkAzAgCCQCkAwEFAmhUCQDMCAIJAKQDAQUCZHYJAMwIAgkApAMBBQJoWAkAzAgCCQCkAwEFAmhZCQDMCAIJAKQDAQUCaFoFA25pbAUBagJlUwEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmRIBAJjWQkBAmJhAAQCZGwJANkEAQkAkQMCBQJjWQUBcQQCZE4JAJEDAgUCY1kFAXIEAmRtCQDZBAEFAmROBAJkTwkAkQMCBQJjWQUBcwQCZG4JANkEAQUCZE8EAmNaCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXQEAmRhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXUEAmRvCQCRAwIFAmNZBQFwBAJoVAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkbAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkbAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmhVCQECYkoBBQJkTgQCaFYJAQJiSgEFAmRPBAJjVQkBAUQCBQJoVQUCY1oEAmNWCQEBRAIFAmhWBQJkYQQCZHUDCQAAAgUCaFQAAAUBZQkBAmJNAgUCY1YFAmNVBAJkVAkBAUQCBQJkSAUCY1oEAmRVCQC8AgMFAmRUBQJkdQUBZAQCZEoJAQFIAgUCZFUFAmRhBAJlWQkBAmRGCQIAAKDCHgUCZEgFAmRtBQJkSgUCZG4CAAYHBAJlZQgFAmVZAl8xBAJpYQgFAmVZAl8zBAJkcQgFAmVZAl80BAJkcwgFAmVZAl81BAJkcAgFAmVZAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJlZQkAzAgCCQCkAwEJAQFIAgUCZHUFAWIJAMwIAgkApAMBBQJkcQkAzAgCCQCkAwEFAmRzCQDMCAIJAKQDAQUCZHAJAMwIAgUCZG8JAMwIAgkApAMBBQJkSAkAzAgCCQCkAwEFAmRKBQNuaWwFAWoCZVMBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmRKBAJjWQkBAmJhAAQCZGwJANkEAQkAkQMCBQJjWQUBcQQCZE4JAJEDAgUCY1kFAXIEAmRtCQDZBAEFAmROBAJkTwkAkQMCBQJjWQUBcwQCZG4JANkEAQUCZE8EAmNaCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXQEAmRhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY1kFAXUEAmRvCQCRAwIFAmNZBQFwBAJoVAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkbAkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJkbAIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmliCQECYkoBBQJkTgQCaWMJAQJiSgEFAmRPBAJpZAkBAUQCBQJpYgUCY1oEAmllCQEBRAIFAmljBQJkYQQCZHUDCQAAAgUCaFQAAAUBZQkBAmJNAgUCaWUFAmlkBAJkVQkBAUQCBQJkSgUCZGEEAmRUCQC8AgMFAmRVBQFkBQJkdQQCZEgJAQFIAgUCZFQFAmNaBAJlWQkBAmRGCQIAAKDCHgUCZEgFAmRtBQJkSgUCZG4CAAYHBAJlZQgFAmVZAl8xBAJpYQgFAmVZAl8zBAJkcQgFAmVZAl80BAJkcwgFAmVZAl81BAJkcAgFAmVZAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJlZQkAzAgCCQCkAwEJAQFIAgUCZHUFAWIJAMwIAgkApAMBBQJkcQkAzAgCCQCkAwEFAmRzCQDMCAIJAKQDAQUCZHAJAMwIAgUCZG8JAMwIAgkApAMBBQJkSAkAzAgCCQCkAwEFAmRKBQNuaWwFAWoCZVMBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmlmAmlnBAJkVwkBAmRoBAIABQJpZgUCaWcFBHRoaXMEAmRBCAUCZFcCXzEEAmRCCAUCZFcCXzIEAmRxCAUCZFcCXzUEAmRzCAUCZFcCXzYEAmRwCAUCZFcCXzcEAmR2CAUCZFcCXzgEAmRvCQENcGFyc2VJbnRWYWx1ZQEIBQJkVwJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmRBCQDMCAIJAKQDAQUCZEIJAMwIAgkApAMBBQJkcQkAzAgCCQCkAwEFAmRzCQDMCAIJAKQDAQUCZHAJAMwIAgkApgMBBQJkdgkAzAgCCQCkAwEFAmRvBQNuaWwFAWoBAmloAQJpaQAEAmlqBAJiVAkBAmdlAAMJAAECBQJiVAIKQnl0ZVZlY3RvcgQCZ2kFAmJUBQJnaQMJAAECBQJiVAIEVW5pdAgFAmloD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJiVAUCaWgDCQABAgUCYlQCBU9yZGVyBAJlSAUCYlQEAmlrCQECYVoABAJpbAkBAmVHAQUCZUgEAmFJCAUCaWwCXzEEAmFKCAUCaWwCXzIEAmFLCQD0AwMIBQJlSAlib2R5Qnl0ZXMJAJEDAggFAmVIBnByb29mcwAACAUCZUgPc2VuZGVyUHVibGljS2V5BAJhTAkA9AMDCAUCZUgJYm9keUJ5dGVzCQCRAwIIBQJlSAZwcm9vZnMAAQUCaWsDAwMFAmFJBQJhSwcFAmFMBwYJAQJhSAQFAmFJBQJhSgUCYUsFAmFMAwkAAQIFAmJUAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZ2YFAmJUAwkA9AMDCAUCaWgJYm9keUJ5dGVzCQCRAwIIBQJpaAZwcm9vZnMAAAUCaWoGBAJpbQkA9gMBCQEFdmFsdWUBCAUCZ2YGc2NyaXB0BAJpbgkA2wQBCQEFdmFsdWUBCQCdCAIFAmFUCQECYUYABAJpbwkA8QcBBQR0aGlzAwkAAAIFAmluBQJpbQkBAiE9AgUCaW8FAmltBwkA9AMDCAUCaWgJYm9keUJ5dGVzCQCRAwIIBQJpaAZwcm9vZnMAAAUCaWo5twPY", "height": 2521195, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5VLq4zWFrJZMiCCrahiyZ3E2dsTyCzz2KNxWrcW7RnmC Next: FrKPM6pFFpqrfoEfXjZthywgX4kiaYPJqV7oZXtEFky4 Diff:
OldNewDifferences
999999 else throw("Exchange result is fewer coins than expected")
10001000 if ((gA == gA))
10011001 then {
1002- let gB = cK(gp, gt)
1002+ let gB = cC(gq)
10031003 if ((gB == gB))
1004- then $Tuple2((gB ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
1004+ then {
1005+ let gC = cK(gp, gt)
1006+ if ((gC == gC))
1007+ then $Tuple2(((gC ++ gB) ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
1008+ else throw("Strict value is not equal to itself.")
1009+ }
10051010 else throw("Strict value is not equal to itself.")
10061011 }
10071012 else throw("Strict value is not equal to itself.")
10141019
10151020
10161021 @Callable(eS)
1017-func setManager (gC) = {
1018- let gD = gj(eS)
1019- if ((gD == gD))
1022+func setManager (gD) = {
1023+ let gE = gj(eS)
1024+ if ((gE == gE))
10201025 then {
1021- let gE = fromBase58String(gC)
1022- if ((gE == gE))
1023- then [StringEntry(V(), gC)]
1026+ let gF = fromBase58String(gD)
1027+ if ((gF == gF))
1028+ then [StringEntry(V(), gD)]
10241029 else throw("Strict value is not equal to itself.")
10251030 }
10261031 else throw("Strict value is not equal to itself.")
10301035
10311036 @Callable(eS)
10321037 func confirmManager () = {
1033- let gF = gg()
1034- let gG = if (isDefined(gF))
1038+ let gG = gg()
1039+ let gH = if (isDefined(gG))
10351040 then true
10361041 else throw("No pending manager")
1037- if ((gG == gG))
1042+ if ((gH == gH))
10381043 then {
1039- let gH = if ((eS.callerPublicKey == value(gF)))
1044+ let gI = if ((eS.callerPublicKey == value(gG)))
10401045 then true
10411046 else throw("You are not pending manager")
1042- if ((gH == gH))
1043- then [StringEntry(U(), toBase58String(value(gF))), DeleteEntry(V())]
1047+ if ((gI == gI))
1048+ then [StringEntry(U(), toBase58String(value(gG))), DeleteEntry(V())]
10441049 else throw("Strict value is not equal to itself.")
10451050 }
10461051 else throw("Strict value is not equal to itself.")
10491054
10501055
10511056 @Callable(eS)
1052-func put (dG,gI) = if ((0 > dG))
1057+func put (dG,gJ) = if ((0 > dG))
10531058 then throw("Invalid slippageTolerance passed")
10541059 else {
10551060 let eY = eV(eS, dG, true)
10581063 let dE = eY._9
10591064 let ej = eY._10
10601065 let ek = eY._11
1061- let gJ = eY._12
1062- let gK = eY._13
1066+ let gK = eY._12
1067+ let gL = eY._13
10631068 let eW = toBigInt(value(eS.payments[0]).amount)
10641069 let eX = toBigInt(value(eS.payments[1]).amount)
10651070 let ez = es(eW, eX, toBigInt(0))
10791084 }
10801085 if ((fb == fb))
10811086 then {
1082- let gL = if ((ej > 0))
1083- then invoke(bt, "put", nil, [AttachedPayment(gJ, ej)])
1087+ let gM = if ((ej > 0))
1088+ then invoke(bt, "put", nil, [AttachedPayment(gK, ej)])
10841089 else nil
1085- if ((gL == gL))
1090+ if ((gM == gM))
10861091 then {
1087- let gM = if ((ek > 0))
1088- then invoke(bt, "put", nil, [AttachedPayment(gK, ek)])
1092+ let gN = if ((ek > 0))
1093+ then invoke(bt, "put", nil, [AttachedPayment(gL, ek)])
10891094 else nil
1090- if ((gM == gM))
1095+ if ((gN == gN))
10911096 then {
1092- let gN = if (gI)
1097+ let gO = if (gJ)
10931098 then {
1094- let gO = invoke(bs, "stake", nil, [AttachedPayment(dl, ei)])
1095- if ((gO == gO))
1099+ let gP = invoke(bs, "stake", nil, [AttachedPayment(dl, ei)])
1100+ if ((gP == gP))
10961101 then nil
10971102 else throw("Strict value is not equal to itself.")
10981103 }
10991104 else [ScriptTransfer(eS.caller, ei, dl)]
1100- let gP = eA(0, 0, 0)
1101- if ((gP == gP))
1105+ let gQ = eA(0, 0, 0)
1106+ if ((gQ == gQ))
11021107 then {
1103- let er = gP._2
1104- let gQ = gP._1
1105- let gR = eE(ez, er)
1106- if ((gR == gR))
1108+ let er = gQ._2
1109+ let gR = gQ._1
1110+ let gS = eE(ez, er)
1111+ if ((gS == gS))
11071112 then {
1108- let gS = invoke(this, "rebalance", nil, nil)
1109- if ((gS == gS))
1110- then ((dE ++ gN) ++ gQ)
1113+ let gT = invoke(this, "rebalance", nil, nil)
1114+ if ((gT == gT))
1115+ then ((dE ++ gO) ++ gR)
11111116 else throw("Strict value is not equal to itself.")
11121117 }
11131118 else throw("Strict value is not equal to itself.")
11281133
11291134
11301135 @Callable(eS)
1131-func putForFree (gT) = if ((0 > gT))
1136+func putForFree (gU) = if ((0 > gU))
11321137 then throw("Invalid value passed")
11331138 else {
1134- let eY = eV(eS, gT, false)
1139+ let eY = eV(eS, gU, false)
11351140 let dE = eY._9
11361141 let eW = toBigInt(value(eS.payments[0]).amount)
11371142 let eX = toBigInt(value(eS.payments[1]).amount)
11381143 let ez = es(eW, eX, toBigInt(0))
11391144 if ((ez == ez))
11401145 then {
1141- let gU = eA(0, 0, 0)
1142- let gQ = gU._1
1143- let er = gU._2
1144- let gR = eE(ez, er)
1145- if ((gR == gR))
1146- then (dE ++ gQ)
1146+ let gV = eA(0, 0, 0)
1147+ let gR = gV._1
1148+ let er = gV._2
1149+ let gS = eE(ez, er)
1150+ if ((gS == gS))
1151+ then (dE ++ gR)
11471152 else throw("Strict value is not equal to itself.")
11481153 }
11491154 else throw("Strict value is not equal to itself.")
11521157
11531158
11541159 @Callable(eS)
1155-func putOneTkn (gV,gW) = {
1156- let gX = {
1160+func putOneTkn (gW,gX) = {
1161+ let gY = {
11571162 let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11581163 if ($isInstanceOf(aW, "Boolean"))
11591164 then aW
11601165 else throw(($getType(aW) + " couldn't be cast to Boolean"))
11611166 }
1162- let gY = if (if (if (aY())
1167+ let gZ = if (if (if (aY())
11631168 then true
11641169 else (bl == l))
11651170 then true
11661171 else (bl == n))
11671172 then true
1168- else gX
1169- let fM = [if (if (!(gY))
1173+ else gY
1174+ let fM = [if (if (!(gZ))
11701175 then true
11711176 else gh(eS))
11721177 then true
11751180 else aQ("exactly 1 payment are expected")]
11761181 if ((fM == fM))
11771182 then {
1178- let gZ = eS.payments[0]
1179- let fh = gZ.assetId
1180- let fg = gZ.amount
1183+ let ha = eS.payments[0]
1184+ let fh = ha.assetId
1185+ let fg = ha.amount
11811186 let ez = if ((fh == bn))
11821187 then es(toBigInt(fg), toBigInt(0), toBigInt(0))
11831188 else if ((fh == bo))
11871192 then {
11881193 let ab = eS.caller
11891194 let ac = eS.transactionId
1190- let ha = ff(fg, fh, ab, ac)
1191- if ((ha == ha))
1195+ let hb = ff(fg, fh, ab, ac)
1196+ if ((hb == hb))
11921197 then {
1193- let fl = ha._5
1194- let hb = ha._4
1195- let fe = ha._3
1196- let el = ha._2
1197- let hc = ha._1
1198- let hd = if (if ((gV > 0))
1199- then (gV > hc)
1198+ let fl = hb._5
1199+ let hc = hb._4
1200+ let fe = hb._3
1201+ let el = hb._2
1202+ let hd = hb._1
1203+ let he = if (if ((gW > 0))
1204+ then (gW > hd)
12001205 else false)
1201- then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1202- else hc
1203- let fa = eZ(hd)
1206+ then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1207+ else hd
1208+ let fa = eZ(he)
12041209 if ((fa == fa))
12051210 then {
1206- let gN = if (gW)
1211+ let gO = if (gX)
12071212 then {
1208- let he = invoke(bs, "stake", nil, [AttachedPayment(bm, hd)])
1209- if ((he == he))
1213+ let hf = invoke(bs, "stake", nil, [AttachedPayment(bm, he)])
1214+ if ((hf == hf))
12101215 then nil
12111216 else throw("Strict value is not equal to itself.")
12121217 }
1213- else [ScriptTransfer(eS.caller, hd, bm)]
1214- let hf = if ((fe > 0))
1218+ else [ScriptTransfer(eS.caller, he, bm)]
1219+ let hg = if ((fe > 0))
12151220 then [ScriptTransfer(aU, fe, fh)]
12161221 else nil
1217- let hg = if ((this == aU))
1222+ let hh = if ((this == aU))
12181223 then $Tuple2(0, 0)
12191224 else if (fl)
12201225 then $Tuple2(-(fe), 0)
12211226 else $Tuple2(0, -(fe))
1222- let eB = hg._1
1223- let eC = hg._2
1224- let hh = eA(eB, eC, 0)
1225- let gQ = hh._1
1226- let er = hh._2
1227+ let eB = hh._1
1228+ let eC = hh._2
1229+ let hi = eA(eB, eC, 0)
1230+ let gR = hi._1
1231+ let er = hi._2
12271232 let eL = value(getString(aj))
1228- let gR = eE(ez, er)
1229- if ((gR == gR))
1233+ let gS = eE(ez, er)
1234+ if ((gS == gS))
12301235 then {
1231- let gS = invoke(this, "rebalance", nil, nil)
1232- if ((gS == gS))
1233- then $Tuple2((((el ++ gN) ++ hf) ++ gQ), hd)
1236+ let gT = invoke(this, "rebalance", nil, nil)
1237+ if ((gT == gT))
1238+ then $Tuple2((((el ++ gO) ++ hg) ++ gR), he)
12341239 else throw("Strict value is not equal to itself.")
12351240 }
12361241 else throw("Strict value is not equal to itself.")
12481253
12491254 @Callable(eS)
12501255 func putOneTknREADONLY (fh,fg) = {
1251- let hi = ff(fg, bd(fh), unit, unit)
1252- let hc = hi._1
1253- let el = hi._2
1254- let fe = hi._3
1255- let hb = hi._4
1256- let fl = hi._5
1257- $Tuple2(nil, $Tuple3(hc, fe, hb))
1256+ let hj = ff(fg, bd(fh), unit, unit)
1257+ let hd = hj._1
1258+ let el = hj._2
1259+ let fe = hj._3
1260+ let hc = hj._4
1261+ let fl = hj._5
1262+ $Tuple2(nil, $Tuple3(hd, fe, hc))
12581263 }
12591264
12601265
12611266
12621267 @Callable(eS)
1263-func getOneTkn (hj,gV) = {
1264- let gX = {
1268+func getOneTkn (hk,gW) = {
1269+ let gY = {
12651270 let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12661271 if ($isInstanceOf(aW, "Boolean"))
12671272 then aW
12681273 else throw(($getType(aW) + " couldn't be cast to Boolean"))
12691274 }
1270- let hk = if (if (aY())
1275+ let hl = if (if (aY())
12711276 then true
12721277 else (bl == n))
12731278 then true
1274- else gX
1275- let fM = [if (if (!(hk))
1279+ else gY
1280+ let fM = [if (if (!(hl))
12761281 then true
12771282 else gh(eS))
12781283 then true
12811286 else aQ("exactly 1 payment are expected")]
12821287 if ((fM == fM))
12831288 then {
1284- let fL = bd(hj)
1285- let gZ = eS.payments[0]
1286- let fh = gZ.assetId
1287- let ft = gZ.amount
1289+ let fL = bd(hk)
1290+ let ha = eS.payments[0]
1291+ let fh = ha.assetId
1292+ let ft = ha.amount
12881293 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
12891294 if ((ez == ez))
12901295 then {
12911296 let ab = eS.caller
12921297 let ac = eS.transactionId
1293- let hl = fK(fL, ft, fh, ab, ac)
1294- if ((hl == hl))
1298+ let hm = fK(fL, ft, fh, ab, ac)
1299+ if ((hm == hm))
12951300 then {
1296- let fN = hl._5
1297- let hb = hl._4
1298- let fe = hl._3
1299- let el = hl._2
1300- let hm = hl._1
1301- let bW = if (if ((gV > 0))
1302- then (gV > hm)
1301+ let fN = hm._5
1302+ let hc = hm._4
1303+ let fe = hm._3
1304+ let el = hm._2
1305+ let hn = hm._1
1306+ let bW = if (if ((gW > 0))
1307+ then (gW > hn)
13031308 else false)
1304- then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1305- else hm
1306- let hn = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1307- if ((hn == hn))
1309+ then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1310+ else hn
1311+ let ho = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1312+ if ((ho == ho))
13081313 then {
1309- let gB = cK(hj, bW)
1310- if ((gB == gB))
1314+ let gC = cK(hk, bW)
1315+ if ((gC == gC))
13111316 then {
1312- let ho = [ScriptTransfer(ab, bW, fL)]
1313- let hf = if ((fe > 0))
1317+ let hp = [ScriptTransfer(ab, bW, fL)]
1318+ let hg = if ((fe > 0))
13141319 then [ScriptTransfer(aU, fe, fL)]
13151320 else nil
1316- let hp = {
1317- let hq = if ((this == aU))
1321+ let hq = {
1322+ let hr = if ((this == aU))
13181323 then 0
13191324 else fe
13201325 if (fN)
1321- then $Tuple2(-((bW + hq)), 0)
1322- else $Tuple2(0, -((bW + hq)))
1326+ then $Tuple2(-((bW + hr)), 0)
1327+ else $Tuple2(0, -((bW + hr)))
13231328 }
1324- let eB = hp._1
1325- let eC = hp._2
1326- let hr = eA(eB, eC, 0)
1327- let gQ = hr._1
1328- let er = hr._2
1329- let gR = eE(ez, er)
1330- if ((gR == gR))
1331- then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
1329+ let eB = hq._1
1330+ let eC = hq._2
1331+ let hs = eA(eB, eC, 0)
1332+ let gR = hs._1
1333+ let er = hs._2
1334+ let gS = eE(ez, er)
1335+ if ((gS == gS))
1336+ then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
13321337 else throw("Strict value is not equal to itself.")
13331338 }
13341339 else throw("Strict value is not equal to itself.")
13461351
13471352 @Callable(eS)
13481353 func getOneTknREADONLY (fL,ft) = {
1349- let hs = fK(bd(fL), ft, bm, unit, unit)
1350- let hm = hs._1
1351- let el = hs._2
1352- let fe = hs._3
1353- let hb = hs._4
1354- let fN = hs._5
1355- $Tuple2(nil, $Tuple3(hm, fe, hb))
1354+ let ht = fK(bd(fL), ft, bm, unit, unit)
1355+ let hn = ht._1
1356+ let el = ht._2
1357+ let fe = ht._3
1358+ let hc = ht._4
1359+ let fN = ht._5
1360+ $Tuple2(nil, $Tuple3(hn, fe, hc))
13561361 }
13571362
13581363
13591364
13601365 @Callable(eS)
1361-func unstakeAndGetOneTkn (ht,hj,gV) = {
1362- let gX = {
1366+func unstakeAndGetOneTkn (hu,hk,gW) = {
1367+ let gY = {
13631368 let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13641369 if ($isInstanceOf(aW, "Boolean"))
13651370 then aW
13661371 else throw(($getType(aW) + " couldn't be cast to Boolean"))
13671372 }
1368- let hk = if (if (aY())
1373+ let hl = if (if (aY())
13691374 then true
13701375 else (bl == n))
13711376 then true
1372- else gX
1373- let fM = [if (if (!(hk))
1377+ else gY
1378+ let fM = [if (if (!(hl))
13741379 then true
13751380 else gh(eS))
13761381 then true
13791384 else aQ("no payments are expected")]
13801385 if ((fM == fM))
13811386 then {
1382- let fL = bd(hj)
1387+ let fL = bd(hk)
13831388 let ab = eS.caller
13841389 let ac = eS.transactionId
13851390 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
13861391 if ((ez == ez))
13871392 then {
1388- let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1389- if ((hu == hu))
1393+ let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1394+ if ((hv == hv))
13901395 then {
1391- let hv = fK(fL, ht, bm, ab, ac)
1392- if ((hv == hv))
1396+ let hw = fK(fL, hu, bm, ab, ac)
1397+ if ((hw == hw))
13931398 then {
1394- let fN = hv._5
1395- let hb = hv._4
1396- let fe = hv._3
1397- let el = hv._2
1398- let hm = hv._1
1399- let bW = if (if ((gV > 0))
1400- then (gV > hm)
1399+ let fN = hw._5
1400+ let hc = hw._4
1401+ let fe = hw._3
1402+ let el = hw._2
1403+ let hn = hw._1
1404+ let bW = if (if ((gW > 0))
1405+ then (gW > hn)
14011406 else false)
1402- then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1403- else hm
1404- let hn = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1405- if ((hn == hn))
1407+ then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1408+ else hn
1409+ let ho = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1410+ if ((ho == ho))
14061411 then {
1407- let gB = cK(hj, bW)
1408- if ((gB == gB))
1412+ let gC = cK(hk, bW)
1413+ if ((gC == gC))
14091414 then {
1410- let ho = [ScriptTransfer(eS.caller, bW, fL)]
1411- let hf = if ((fe > 0))
1415+ let hp = [ScriptTransfer(eS.caller, bW, fL)]
1416+ let hg = if ((fe > 0))
14121417 then [ScriptTransfer(aU, fe, fL)]
14131418 else nil
1414- let hw = {
1415- let hq = if ((this == aU))
1419+ let hx = {
1420+ let hr = if ((this == aU))
14161421 then 0
14171422 else fe
14181423 if (fN)
1419- then $Tuple2(-((bW + hq)), 0)
1420- else $Tuple2(0, -((bW + hq)))
1424+ then $Tuple2(-((bW + hr)), 0)
1425+ else $Tuple2(0, -((bW + hr)))
14211426 }
1422- let eB = hw._1
1423- let eC = hw._2
1424- let hx = eA(eB, eC, 0)
1425- let gQ = hx._1
1426- let er = hx._2
1427- let gR = eE(ez, er)
1428- if ((gR == gR))
1429- then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
1427+ let eB = hx._1
1428+ let eC = hx._2
1429+ let hy = eA(eB, eC, 0)
1430+ let gR = hy._1
1431+ let er = hy._2
1432+ let gS = eE(ez, er)
1433+ if ((gS == gS))
1434+ then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
14301435 else throw("Strict value is not equal to itself.")
14311436 }
14321437 else throw("Strict value is not equal to itself.")
14471452 @Callable(eS)
14481453 func get () = {
14491454 let dW = eR(eS)
1450- let hy = dW._1
1455+ let hz = dW._1
14511456 let dB = dW._2
14521457 let eU = dW._3
14531458 let dj = dW._4
14551460 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
14561461 if ((ez == ez))
14571462 then {
1458- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1459- if ((hz == hz))
1463+ let hA = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1464+ if ((hA == hA))
14601465 then {
1461- let hA = eA(-(hy), -(dB), 0)
1462- let gQ = hA._1
1463- let er = hA._2
1464- let gR = eE(ez, er)
1465- if ((gR == gR))
1466- then (dE ++ gQ)
1466+ let hB = eA(-(hz), -(dB), 0)
1467+ let gR = hB._1
1468+ let er = hB._2
1469+ let gS = eE(ez, er)
1470+ if ((gS == gS))
1471+ then (dE ++ gR)
14671472 else throw("Strict value is not equal to itself.")
14681473 }
14691474 else throw("Strict value is not equal to itself.")
14741479
14751480
14761481 @Callable(eS)
1477-func getNoLess (hB,hC) = {
1482+func getNoLess (hC,hD) = {
14781483 let dW = eR(eS)
14791484 let dA = dW._1
14801485 let dB = dW._2
14811486 let eU = dW._3
14821487 let dj = dW._4
14831488 let dE = dW._5
1484- if ((hB > dA))
1485- then throw(((("noLessThenAmtAsset failed: " + toString(dA)) + " < ") + toString(hB)))
1486- else if ((hC > dB))
1487- then throw(((("noLessThenPriceAsset failed: " + toString(dB)) + " < ") + toString(hC)))
1489+ if ((hC > dA))
1490+ then throw(((("noLessThenAmtAsset failed: " + toString(dA)) + " < ") + toString(hC)))
1491+ else if ((hD > dB))
1492+ then throw(((("noLessThenPriceAsset failed: " + toString(dB)) + " < ") + toString(hD)))
14881493 else {
14891494 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
14901495 if ((ez == ez))
14911496 then {
1492- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1493- if ((hz == hz))
1497+ let hA = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1498+ if ((hA == hA))
14941499 then {
1495- let hD = eA(-(dA), -(dB), 0)
1496- let gQ = hD._1
1497- let er = hD._2
1498- let gR = eE(ez, er)
1499- if ((gR == gR))
1500- then (dE ++ gQ)
1500+ let hE = eA(-(dA), -(dB), 0)
1501+ let gR = hE._1
1502+ let er = hE._2
1503+ let gS = eE(ez, er)
1504+ if ((gS == gS))
1505+ then (dE ++ gR)
15011506 else throw("Strict value is not equal to itself.")
15021507 }
15031508 else throw("Strict value is not equal to itself.")
15101515
15111516 @Callable(eS)
15121517 func unstakeAndGet (bW) = {
1513- let hE = if ((size(eS.payments) != 0))
1518+ let hF = if ((size(eS.payments) != 0))
15141519 then throw("No payments are expected")
15151520 else true
1516- if ((hE == hE))
1521+ if ((hF == hF))
15171522 then {
15181523 let cY = ba()
15191524 let dl = fromBase58String(cY[q])
15201525 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
15211526 if ((ez == ez))
15221527 then {
1523- let hu = invoke(bs, "unstake", [toBase58String(dl), bW], nil)
1524- if ((hu == hu))
1528+ let hv = invoke(bs, "unstake", [toBase58String(dl), bW], nil)
1529+ if ((hv == hv))
15251530 then {
15261531 let dW = dh(toBase58String(eS.transactionId), toBase58String(dl), bW, eS.caller)
15271532 let dA = dW._1
15281533 let dB = dW._2
15291534 let do = parseIntValue(dW._9)
15301535 let dE = dW._10
1531- let hF = if (if (aY())
1536+ let hG = if (if (aY())
15321537 then true
15331538 else (do == n))
15341539 then throw(("Get operation is blocked by admin. Status = " + toString(do)))
15351540 else true
1536- if ((hF == hF))
1541+ if ((hG == hG))
15371542 then {
1538- let hz = invoke(aT, "burn", [bW], [AttachedPayment(dl, bW)])
1539- if ((hz == hz))
1543+ let hA = invoke(aT, "burn", [bW], [AttachedPayment(dl, bW)])
1544+ if ((hA == hA))
15401545 then {
1541- let hG = eA(-(dA), -(dB), 0)
1542- let gQ = hG._1
1543- let er = hG._2
1544- let gR = eE(ez, er)
1545- if ((gR == gR))
1546- then (dE ++ gQ)
1546+ let hH = eA(-(dA), -(dB), 0)
1547+ let gR = hH._1
1548+ let er = hH._2
1549+ let gS = eE(ez, er)
1550+ if ((gS == gS))
1551+ then (dE ++ gR)
15471552 else throw("Strict value is not equal to itself.")
15481553 }
15491554 else throw("Strict value is not equal to itself.")
15601565
15611566
15621567 @Callable(eS)
1563-func unstakeAndGetNoLess (ht,hH,hC) = {
1564- let hk = if (aY())
1568+func unstakeAndGetNoLess (hu,hI,hD) = {
1569+ let hl = if (aY())
15651570 then true
15661571 else (bl == n)
1567- let fM = [if (!(hk))
1572+ let fM = [if (!(hl))
15681573 then true
15691574 else throw("get operation is blocked by admin"), if ((size(eS.payments) == 0))
15701575 then true
15741579 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
15751580 if ((ez == ez))
15761581 then {
1577- let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1578- if ((hu == hu))
1582+ let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1583+ if ((hv == hv))
15791584 then {
1580- let dW = dh(toBase58String(eS.transactionId), toBase58String(bm), ht, eS.caller)
1585+ let dW = dh(toBase58String(eS.transactionId), toBase58String(bm), hu, eS.caller)
15811586 let dA = dW._1
15821587 let dB = dW._2
15831588 let dE = dW._10
1584- let hI = [if ((dA >= hH))
1589+ let hJ = [if ((dA >= hI))
15851590 then true
1586- else throw(makeString(["amount asset amount to receive is less than ", toString(hH)], "")), if ((dB >= hC))
1591+ else throw(makeString(["amount asset amount to receive is less than ", toString(hI)], "")), if ((dB >= hD))
15871592 then true
1588- else throw(makeString(["price asset amount to receive is less than ", toString(hC)], ""))]
1589- if ((hI == hI))
1593+ else throw(makeString(["price asset amount to receive is less than ", toString(hD)], ""))]
1594+ if ((hJ == hJ))
15901595 then {
1591- let hz = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1592- if ((hz == hz))
1596+ let hA = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1597+ if ((hA == hA))
15931598 then {
1594- let hJ = eA(-(dA), -(dB), 0)
1595- let gQ = hJ._1
1596- let er = hJ._2
1597- let gR = eE(ez, er)
1598- if ((gR == gR))
1599- then (dE ++ gQ)
1599+ let hK = eA(-(dA), -(dB), 0)
1600+ let gR = hK._1
1601+ let er = hK._2
1602+ let gS = eE(ez, er)
1603+ if ((gS == gS))
1604+ then (dE ++ gR)
16001605 else throw("Strict value is not equal to itself.")
16011606 }
16021607 else throw("Strict value is not equal to itself.")
16131618
16141619
16151620 @Callable(eS)
1616-func activate (hK,hL) = if ((toString(eS.caller) != toString(aT)))
1621+func activate (hL,hM) = if ((toString(eS.caller) != toString(aT)))
16171622 then throw("permissions denied")
1618- else $Tuple2([StringEntry(ae(), hK), StringEntry(af(), hL)], "success")
1623+ else $Tuple2([StringEntry(ae(), hL), StringEntry(af(), hM)], "success")
16191624
16201625
16211626
16221627 @Callable(eS)
16231628 func refreshKLp () = {
1624- let hM = valueOrElse(getInteger(ak), 0)
1625- let hN = if (((height - hM) >= an))
1629+ let hN = valueOrElse(getInteger(ak), 0)
1630+ let hO = if (((height - hN) >= an))
16261631 then unit
16271632 else aQ(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1628- if ((hN == hN))
1633+ if ((hO == hO))
16291634 then {
16301635 let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
1631- let hO = eA(0, 0, 0)
1632- let hP = hO._1
1633- let er = hO._2
1636+ let hP = eA(0, 0, 0)
1637+ let hQ = hP._1
1638+ let er = hP._2
16341639 let eD = if ((eL != er))
1635- then hP
1640+ then hQ
16361641 else aQ("nothing to refresh")
16371642 $Tuple2(eD, toString(er))
16381643 }
16911696 func statsREADONLY () = {
16921697 let cY = ba()
16931698 let dl = fromBase58String(cY[q])
1694- let hQ = cY[r]
1695- let hR = cY[s]
1699+ let hR = cY[r]
1700+ let hS = cY[s]
16961701 let dP = cY[v]
16971702 let dQ = cY[w]
16981703 let cZ = parseIntValue(cY[t])
16991704 let da = parseIntValue(cY[u])
1700- let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1701- let hT = bJ(hQ)
1705+ let hT = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
17021706 let hU = bJ(hR)
1703- let hV = if ((hS == 0))
1707+ let hV = bJ(hS)
1708+ let hW = if ((hT == 0))
17041709 then [e, e, e]
1705- else cW(hT, hU, hS)
1710+ else cW(hU, hV, hT)
17061711 let dv = 0
1707- let hW = H(hV[1], b)
1708- let hX = H(hV[2], b)
1709- let hY = value(getInteger(aT, aD(toString(this))))
1710- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hT), toString(hU), toString(hS), toString(dv), toString(hW), toString(hX), toString(hY)], j))
1712+ let hX = H(hW[1], b)
1713+ let hY = H(hW[2], b)
1714+ let hZ = value(getInteger(aT, aD(toString(this))))
1715+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hU), toString(hV), toString(hT), toString(dv), toString(hX), toString(hY), toString(hZ)], j))
17111716 }
17121717
17131718
17231728 let cZ = parseIntValue(cY[t])
17241729 let da = parseIntValue(cY[u])
17251730 let do = cY[p]
1726- let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1727- let hT = bJ(dN)
1728- let hU = bJ(dO)
1729- let cU = D(hT, cZ)
1730- let cV = D(hU, da)
1731- let du = if ((hS == 0))
1731+ let hT = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1732+ let hU = bJ(dN)
1733+ let hV = bJ(dO)
1734+ let cU = D(hU, cZ)
1735+ let cV = D(hV, da)
1736+ let du = if ((hT == 0))
17321737 then e
17331738 else bM(cV, cU)
17341739 let dT = D(dH, cZ)
17361741 let dJ = H(dU, da)
17371742 let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
17381743 let ee = eY._1
1739- let hZ = eY._3
1744+ let ia = eY._3
17401745 let dq = eY._4
17411746 let ds = eY._5
17421747 let dp = eY._6
17561761 let cZ = parseIntValue(cY[t])
17571762 let da = parseIntValue(cY[u])
17581763 let do = cY[p]
1759- let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1760- let ia = bJ(dN)
1761- let ib = bJ(dO)
1762- let ic = D(ia, cZ)
1763- let id = D(ib, da)
1764- let du = if ((hS == 0))
1764+ let hT = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1765+ let ib = bJ(dN)
1766+ let ic = bJ(dO)
1767+ let id = D(ib, cZ)
1768+ let ie = D(ic, da)
1769+ let du = if ((hT == 0))
17651770 then e
1766- else bM(id, ic)
1771+ else bM(ie, id)
17671772 let dU = D(dJ, da)
17681773 let dT = fraction(dU, d, du)
17691774 let dH = H(dT, cZ)
17701775 let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
17711776 let ee = eY._1
1772- let hZ = eY._3
1777+ let ia = eY._3
17731778 let dq = eY._4
17741779 let ds = eY._5
17751780 let dp = eY._6
17791784
17801785
17811786 @Callable(eS)
1782-func evaluateGetREADONLY (ie,if) = {
1783- let dW = dh("", ie, if, this)
1787+func evaluateGetREADONLY (if,ig) = {
1788+ let dW = dh("", if, ig, this)
17841789 let dA = dW._1
17851790 let dB = dW._2
17861791 let dq = dW._5
17921797 }
17931798
17941799
1795-@Verifier(ig)
1796-func ih () = {
1797- let ii = {
1800+@Verifier(ih)
1801+func ii () = {
1802+ let ij = {
17981803 let bT = ge()
17991804 if ($isInstanceOf(bT, "ByteVector"))
18001805 then {
18021807 gi
18031808 }
18041809 else if ($isInstanceOf(bT, "Unit"))
1805- then ig.senderPublicKey
1810+ then ih.senderPublicKey
18061811 else throw("Match error")
18071812 }
1808- let bT = ig
1813+ let bT = ih
18091814 if ($isInstanceOf(bT, "Order"))
18101815 then {
18111816 let eH = bT
1812- let ij = aZ()
1813- let ik = eG(eH)
1814- let aI = ik._1
1815- let aJ = ik._2
1817+ let ik = aZ()
1818+ let il = eG(eH)
1819+ let aI = il._1
1820+ let aJ = il._2
18161821 let aK = sigVerify(eH.bodyBytes, eH.proofs[0], eH.senderPublicKey)
1817- let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ij)
1822+ let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ik)
18181823 if (if (if (aI)
18191824 then aK
18201825 else false)
18261831 else if ($isInstanceOf(bT, "SetScriptTransaction"))
18271832 then {
18281833 let gf = bT
1829- if (sigVerify(ig.bodyBytes, ig.proofs[0], ii))
1834+ if (sigVerify(ih.bodyBytes, ih.proofs[0], ij))
18301835 then true
18311836 else {
1832- let il = blake2b256(value(gf.script))
1833- let im = fromBase64String(value(getString(aT, aF())))
1834- let in = scriptHash(this)
1835- if ((im == il))
1836- then (in != il)
1837+ let im = blake2b256(value(gf.script))
1838+ let in = fromBase64String(value(getString(aT, aF())))
1839+ let io = scriptHash(this)
1840+ if ((in == im))
1841+ then (io != im)
18371842 else false
18381843 }
18391844 }
1840- else sigVerify(ig.bodyBytes, ig.proofs[0], ii)
1845+ else sigVerify(ih.bodyBytes, ih.proofs[0], ij)
18411846 }
18421847
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6363
6464
6565 func G (E,F) = fraction(E, d, F)
6666
6767
6868 func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6969
7070
7171 func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
7272
7373
7474 func M (N,O,P) = fraction(N, O, P)
7575
7676
7777 func Q (I) = if ((0 > I))
7878 then -(I)
7979 else I
8080
8181
8282 func R (I) = if ((e > I))
8383 then -(I)
8484 else I
8585
8686
8787 func S () = "%s__swapContract"
8888
8989
9090 func T () = "%s__factoryContract"
9191
9292
9393 func U () = "%s__managerPublicKey"
9494
9595
9696 func V () = "%s__pendingManagerPublicKey"
9797
9898
9999 func W () = "%s%s__price__last"
100100
101101
102102 func X (Y,Z) = makeString(["%s%s%d%d__price__history", toString(Y), toString(Z)], j)
103103
104104
105105 func aa (ab,ac) = ((("%s%s%s__P__" + ab) + "__") + ac)
106106
107107
108108 func ad (ab,ac) = ((("%s%s%s__G__" + ab) + "__") + ac)
109109
110110
111111 func ae () = "%s__amountAsset"
112112
113113
114114 func af () = "%s__priceAsset"
115115
116116
117117 let ag = "%s__fee"
118118
119119 let ah = fraction(10, b, 10000)
120120
121121 let ai = valueOrElse(getInteger(this, ag), ah)
122122
123123 let aj = makeString(["%s", "kLp"], j)
124124
125125 let ak = makeString(["%s", "kLpRefreshedHeight"], j)
126126
127127 let al = makeString(["%s", "refreshKLpDelay"], j)
128128
129129 let am = 30
130130
131131 let an = valueOrElse(getInteger(this, al), am)
132132
133133 func ao (ap) = makeString(["%s%s", "stakedBalance", ap], j)
134134
135135
136136 func aq (ap) = makeString(["%s%s", "shareAssetBalance", ap], j)
137137
138138
139139 func ar (ap) = valueOrElse(getInteger(this, ao(ap)), 0)
140140
141141
142142 func as (ap) = valueOrElse(getInteger(this, aq(ap)), 0)
143143
144144
145145 func at () = "%s__factoryConfig"
146146
147147
148148 func au () = "%s%s__matcher__publicKey"
149149
150150
151151 func av (aw) = (("%s%s%s__" + aw) + "__mappings__poolContract2LpAsset")
152152
153153
154154 func ax (ay,az) = (((("%d%d%s__" + ay) + "__") + az) + "__config")
155155
156156
157157 func aA (aB) = ("%s%s%s__mappings__baseAsset2internalId__" + aB)
158158
159159
160160 func aC () = "%s__shutdown"
161161
162162
163163 func aD (aE) = ("%s%s__poolWeight__" + aE)
164164
165165
166166 func aF () = "%s__allowedLpScriptHash"
167167
168168
169169 let aG = "%s__feeCollectorAddress"
170170
171171 func aH (aI,aJ,aK,aL) = throw((((((((("order validation failed: orderValid=" + toString(aI)) + " (") + aJ) + ")") + " senderValid=") + toString(aK)) + " matcherValid=") + toString(aL)))
172172
173173
174174 func aM (aN,aO) = valueOrErrorMessage(getString(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
175175
176176
177177 func aP (aN,aO) = valueOrErrorMessage(getInteger(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
178178
179179
180180 func aQ (aR) = throw(makeString(["lp.ride:", aR], " "))
181181
182182
183183 func aS (aR) = makeString(["lp.ride:", aR], " ")
184184
185185
186186 let aT = addressFromStringValue(aM(this, T()))
187187
188188 let aU = addressFromStringValue(aM(aT, aG))
189189
190190 let aV = {
191191 let aW = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
192192 if ($isInstanceOf(aW, "Int"))
193193 then aW
194194 else throw(($getType(aW) + " couldn't be cast to Int"))
195195 }
196196
197197 let aX = {
198198 let aW = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
199199 if ($isInstanceOf(aW, "Int"))
200200 then aW
201201 else throw(($getType(aW) + " couldn't be cast to Int"))
202202 }
203203
204204 func aY () = valueOrElse(getBoolean(aT, aC()), false)
205205
206206
207207 func aZ () = fromBase58String(aM(aT, au()))
208208
209209
210210 func ba () = {
211211 let bb = aM(this, ae())
212212 let bc = aM(this, af())
213213 let az = aP(aT, aA(bc))
214214 let ay = aP(aT, aA(bb))
215215 split(aM(aT, ax(toString(ay), toString(az))), j)
216216 }
217217
218218
219219 func bd (be) = if ((be == i))
220220 then unit
221221 else fromBase58String(be)
222222
223223
224224 func bf (be) = if ((be == unit))
225225 then i
226226 else toBase58String(value(be))
227227
228228
229229 func bg (bh) = $Tuple7(addressFromStringValue(bh[o]), parseIntValue(bh[p]), fromBase58String(bh[q]), bd(bh[r]), bd(bh[s]), parseIntValue(bh[t]), parseIntValue(bh[u]))
230230
231231
232232 let bi = bg(ba())
233233
234234 let bj = bi
235235
236236 let bk = bj._1
237237
238238 let bl = bj._2
239239
240240 let bm = bj._3
241241
242242 let bn = bj._4
243243
244244 let bo = bj._5
245245
246246 let bp = bj._6
247247
248248 let bq = bj._7
249249
250250 func br () = split(aM(aT, at()), j)
251251
252252
253253 let bs = valueOrErrorMessage(addressFromString(br()[B]), "incorrect staking address")
254254
255255 let bt = valueOrErrorMessage(addressFromString(br()[C]), "incorrect staking address")
256256
257257 func bu (bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bv), toString(bw), toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE)], j)
258258
259259
260260 func bF (bG,bH,bI,by,bB,bC) = makeString(["%d%d%d%d%d%d", toString(bG), toString(bH), toString(bI), toString(by), toString(bB), toString(bC)], j)
261261
262262
263263 func bJ (ap) = {
264264 let bK = if ((ap == "WAVES"))
265265 then wavesBalance(this).available
266266 else assetBalance(this, fromBase58String(ap))
267267 let bL = ((bK + ar(ap)) - as(ap))
268268 max([0, bL])
269269 }
270270
271271
272272 func bM (bN,bO) = fraction(bN, d, bO)
273273
274274
275275 func bP (bN,bO,L) = fraction(bN, d, bO, L)
276276
277277
278278 func bQ (bR) = {
279279 let bS = invoke(bR, "getRate", nil, nil)
280280 if ((bS == bS))
281281 then {
282282 let bT = bS
283283 if ($isInstanceOf(bT, "Int"))
284284 then {
285285 let bU = bT
286286 bU
287287 }
288288 else aQ("proxy.getRate() unexpected value")
289289 }
290290 else throw("Strict value is not equal to itself.")
291291 }
292292
293293
294294 func bV (ap,bW,bX,bR) = {
295295 let bY = ar(ap)
296296 if ((bY == bY))
297297 then {
298298 let bZ = as(bX)
299299 if ((bZ == bZ))
300300 then {
301301 let ca = bd(ap)
302302 if ((bW > 0))
303303 then {
304304 let cb = invoke(bR, "deposit", nil, [AttachedPayment(ca, bW)])
305305 if ((cb == cb))
306306 then {
307307 let bT = cb
308308 if ($isInstanceOf(bT, "Int"))
309309 then {
310310 let cc = bT
311311 let cd = (bY + bW)
312312 let ce = (bZ + cc)
313313 [IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce)]
314314 }
315315 else nil
316316 }
317317 else throw("Strict value is not equal to itself.")
318318 }
319319 else nil
320320 }
321321 else throw("Strict value is not equal to itself.")
322322 }
323323 else throw("Strict value is not equal to itself.")
324324 }
325325
326326
327327 func cf (ap,bW,bX,bR,cg,ch) = {
328328 let bY = ar(ap)
329329 if ((bY == bY))
330330 then {
331331 let bZ = as(bX)
332332 if ((bZ == bZ))
333333 then {
334334 let ci = bQ(bR)
335335 if ((ci == ci))
336336 then {
337337 let cj = fraction(cg, bY, bZ)
338338 let ck = bd(bX)
339339 let cl = fraction(cg, bW, cj)
340340 let cm = fraction(cg, bW, ci)
341341 let cn = max([0, (cl - cm)])
342342 if ((cm > 0))
343343 then {
344344 let co = invoke(bR, "withdraw", nil, [AttachedPayment(ck, cm)])
345345 if ((co == co))
346346 then {
347347 let bT = co
348348 if ($isInstanceOf(bT, "Int"))
349349 then {
350350 let cp = bT
351351 let cd = (bY - cp)
352352 let ce = ((bZ - cm) - cn)
353353 [IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce), ScriptTransfer(ch, cn, bd(bX))]
354354 }
355355 else nil
356356 }
357357 else throw("Strict value is not equal to itself.")
358358 }
359359 else nil
360360 }
361361 else throw("Strict value is not equal to itself.")
362362 }
363363 else throw("Strict value is not equal to itself.")
364364 }
365365 else throw("Strict value is not equal to itself.")
366366 }
367367
368368
369369 func cq (ap) = invoke(aT, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
370370
371371
372372 func cr (cs,ap,bX,ct,bR,cg,ch) = {
373373 let bY = ar(ap)
374374 if ((bY == bY))
375375 then {
376376 let bZ = as(bX)
377377 if ((bZ == bZ))
378378 then {
379379 let cu = {
380380 let bT = bd(ap)
381381 if ($isInstanceOf(bT, "ByteVector"))
382382 then {
383383 let cv = bT
384384 assetBalance(this, cv)
385385 }
386386 else if ($isInstanceOf(bT, "Unit"))
387387 then {
388388 let cw = bT
389389 wavesBalance(this).available
390390 }
391391 else throw("Match error")
392392 }
393393 if ((cu == cu))
394394 then {
395395 let cx = max([0, ((cu + bY) - ct)])
396396 let cy = fraction(cs, cx, 100)
397397 let cz = (bY - cy)
398398 if ((cz == 0))
399399 then nil
400400 else if ((0 > cz))
401401 then {
402402 let cA = -(cz)
403403 bV(ap, cA, bX, bR)
404404 }
405405 else {
406406 let cB = cz
407407 cf(ap, cB, bX, bR, cg, ch)
408408 }
409409 }
410410 else throw("Strict value is not equal to itself.")
411411 }
412412 else throw("Strict value is not equal to itself.")
413413 }
414414 else throw("Strict value is not equal to itself.")
415415 }
416416
417417
418418 func cC (ap) = {
419419 let bT = cq(ap)
420420 if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
421421 then {
422422 let cD = bT
423423 let cE = cD
424424 let cF = cE._1
425425 let cG = cE._2
426426 let ct = cE._3
427427 let cH = cE._4
428428 let cI = cE._5
429429 let cg = cE._6
430430 let cJ = cE._7
431431 if (cF)
432432 then cr(cG, ap, cI, ct, addressFromStringValue(cH), cg, addressFromStringValue(cJ))
433433 else nil
434434 }
435435 else aQ((("[" + ap) + "] Rebalance error"))
436436 }
437437
438438
439439 func cK (ap,cL) = {
440440 let bT = cq(ap)
441441 if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
442442 then {
443443 let cD = bT
444444 let cM = cD
445445 let cF = cM._1
446446 let cG = cM._2
447447 let ct = cM._3
448448 let cH = cM._4
449449 let cI = cM._5
450450 let cg = cM._6
451451 let cJ = cM._7
452452 if (cF)
453453 then {
454454 let cN = max([0, ((bJ(ap) - cL) - ct)])
455455 if ((cN == cN))
456456 then {
457457 let cd = fraction(cG, cN, 100)
458458 if ((cd == cd))
459459 then {
460460 let cO = max([0, (ar(ap) - cd)])
461461 if ((cO == cO))
462462 then cf(ap, cO, cI, addressFromStringValue(cH), cg, addressFromStringValue(cJ))
463463 else throw("Strict value is not equal to itself.")
464464 }
465465 else throw("Strict value is not equal to itself.")
466466 }
467467 else throw("Strict value is not equal to itself.")
468468 }
469469 else nil
470470 }
471471 else aQ((("[" + ap) + "] getWithdrawAssetState() error"))
472472 }
473473
474474
475475 func cP (cQ,cR,cS,cT) = {
476476 let cU = D(cS, cQ)
477477 let cV = D(cT, cR)
478478 bM(cV, cU)
479479 }
480480
481481
482482 func cW (cS,cT,cX) = {
483483 let cY = ba()
484484 let cZ = parseIntValue(cY[t])
485485 let da = parseIntValue(cY[u])
486486 let db = cP(cZ, da, cS, cT)
487487 let bO = D(cS, cZ)
488488 let bN = D(cT, da)
489489 let dc = D(cX, b)
490490 let dd = bM(bO, dc)
491491 let de = bM(bN, dc)
492492 [db, dd, de]
493493 }
494494
495495
496496 func df (cS,cT,cX) = {
497497 let dg = cW(cS, cT, cX)
498498 [H(dg[0], b), H(dg[1], b), H(dg[2], b)]
499499 }
500500
501501
502502 func dh (di,dj,dk,ab) = {
503503 let cY = ba()
504504 let dl = cY[q]
505505 let dm = cY[r]
506506 let dn = cY[s]
507507 let cQ = parseIntValue(cY[t])
508508 let cR = parseIntValue(cY[u])
509509 let do = cY[p]
510510 let dp = valueOrErrorMessage(assetInfo(fromBase58String(dl)), (("Asset " + dl) + " doesn't exist")).quantity
511511 if ((dl != dj))
512512 then throw("Invalid asset passed.")
513513 else {
514514 let dq = bJ(dm)
515515 let dr = D(dq, cQ)
516516 let ds = bJ(dn)
517517 let dt = D(ds, cR)
518518 let du = bM(dt, dr)
519519 let dv = H(du, b)
520520 let dw = D(dk, b)
521521 let dx = D(dp, b)
522522 let dy = fraction(dr, dw, dx)
523523 let dz = fraction(dt, dw, dx)
524524 let dA = K(dy, cQ, FLOOR)
525525 let dB = K(dz, cR, FLOOR)
526526 let dC = cK(dm, dA)
527527 if ((dC == dC))
528528 then {
529529 let dD = cK(dn, dB)
530530 if ((dD == dD))
531531 then {
532532 let dE = if ((di == ""))
533533 then nil
534534 else ((dC ++ dD) ++ [ScriptTransfer(ab, dA, if ((dm == "WAVES"))
535535 then unit
536536 else fromBase58String(dm)), ScriptTransfer(ab, dB, if ((dn == "WAVES"))
537537 then unit
538538 else fromBase58String(dn)), StringEntry(ad(toString(ab), di), bF(dA, dB, dk, dv, height, lastBlock.timestamp)), IntegerEntry(W(), dv), IntegerEntry(X(height, lastBlock.timestamp), dv)])
539539 $Tuple10(dA, dB, dm, dn, dq, ds, dp, du, do, dE)
540540 }
541541 else throw("Strict value is not equal to itself.")
542542 }
543543 else throw("Strict value is not equal to itself.")
544544 }
545545 }
546546
547547
548548 func dF (di,dG,dH,dI,dJ,dK,ab,dL,dM) = {
549549 let cY = ba()
550550 let dl = fromBase58String(cY[q])
551551 let dN = cY[r]
552552 let dO = cY[s]
553553 let dP = cY[v]
554554 let dQ = cY[w]
555555 let cZ = parseIntValue(cY[t])
556556 let da = parseIntValue(cY[u])
557557 let do = cY[p]
558558 let dp = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
559559 let dR = toBase58String(valueOrElse(dI, fromBase58String("WAVES")))
560560 let dS = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
561561 if (if ((dN != dR))
562562 then true
563563 else (dO != dS))
564564 then throw("Invalid amt or price asset passed.")
565565 else {
566566 let dq = if (dL)
567567 then bJ(dN)
568568 else (bJ(dN) - dH)
569569 let ds = if (dL)
570570 then bJ(dO)
571571 else (bJ(dO) - dJ)
572572 let dT = D(dH, cZ)
573573 let dU = D(dJ, da)
574574 let dV = bM(dU, dT)
575575 let dr = D(dq, cZ)
576576 let dt = D(ds, da)
577577 let dW = if ((dp == 0))
578578 then {
579579 let du = e
580580 let dX = e
581581 let dc = pow((dT * dU), 0, toBigInt(5), 1, 0, DOWN)
582582 $Tuple5(H(dc, b), H(dT, cZ), H(dU, da), bM((dt + dU), (dr + dT)), dX)
583583 }
584584 else {
585585 let du = bM(dt, dr)
586586 let dX = fraction(R((du - dV)), d, du)
587587 let dY = D(dG, b)
588588 if (if ((du != e))
589589 then (dX > dY)
590590 else false)
591591 then throw(((("Price slippage " + toString(dX)) + " exceeded the passed limit of ") + toString(dY)))
592592 else {
593593 let dx = D(dp, b)
594594 let dZ = fraction(dT, bP(dt, dr, CEILING), d, CEILING)
595595 let ea = fraction(dU, d, bP(dt, dr, FLOOR), CEILING)
596596 let eb = if ((dZ > dU))
597597 then $Tuple2(ea, dU)
598598 else $Tuple2(dT, dZ)
599599 let ec = eb._1
600600 let ed = eb._2
601601 let dc = fraction(dx, ed, dt, FLOOR)
602602 $Tuple5(K(dc, b, FLOOR), K(ec, cZ, CEILING), K(ed, da, CEILING), du, dX)
603603 }
604604 }
605605 let ee = dW._1
606606 let ef = dW._2
607607 let eg = dW._3
608608 let dv = H(dW._4, b)
609609 let eh = H(dW._5, b)
610610 if ((0 >= ee))
611611 then throw("Invalid calculations. LP calculated is less than zero.")
612612 else {
613613 let ei = if (!(dM))
614614 then 0
615615 else ee
616616 let ej = (dH - ef)
617617 let ek = (dJ - eg)
618618 let el = [IntegerEntry(W(), dv), IntegerEntry(X(height, lastBlock.timestamp), dv), StringEntry(aa(ab, di), bu(ef, eg, ei, dv, dG, eh, height, lastBlock.timestamp, ej, ek))]
619619 $Tuple13(ee, ei, dv, dq, ds, dp, dl, do, el, ej, ek, dI, dK)
620620 }
621621 }
622622 }
623623
624624
625625 func em (en,eo,dp) = {
626626 let ep = G(en, toBigInt(bp))
627627 let eq = G(eo, toBigInt(bq))
628628 let er = fraction(pow((ep * eq), 0, toBigInt(5), 1, 18, DOWN), g, dp)
629629 if ((dp == f))
630630 then f
631631 else er
632632 }
633633
634634
635635 func es (et,eu,ev) = {
636636 let ew = (toBigInt(bJ(bf(bn))) - et)
637637 let ex = (toBigInt(bJ(bf(bo))) - eu)
638638 let ey = (toBigInt(value(assetInfo(bm)).quantity) - ev)
639639 let ez = em(ew, ex, ey)
640640 ez
641641 }
642642
643643
644644 func eA (eB,eC,ev) = {
645645 let ew = (bJ(bf(bn)) + eB)
646646 let ex = (bJ(bf(bo)) + eC)
647647 let ey = (value(assetInfo(bm)).quantity + ev)
648648 let er = em(toBigInt(ew), toBigInt(ex), toBigInt(ey))
649649 let eD = [IntegerEntry(ak, height), StringEntry(aj, toString(er))]
650650 $Tuple2(eD, er)
651651 }
652652
653653
654654 func eE (eF,er) = if ((er >= eF))
655655 then true
656656 else aQ(makeString(["updated KLp lower than current KLp", toString(eF), toString(er)], " "))
657657
658658
659659 func eG (eH) = {
660660 let ew = bJ(bf(bn))
661661 let ex = bJ(bf(bo))
662662 let eI = eH.amount
663663 let eJ = fraction(eH.amount, eH.price, b, FLOOR)
664664 let eK = if ((eH.orderType == Buy))
665665 then $Tuple2(eI, -(eJ))
666666 else $Tuple2(-(eI), eJ)
667667 let eB = eK._1
668668 let eC = eK._2
669669 if (if (if (aY())
670670 then true
671671 else (bl == m))
672672 then true
673673 else (bl == n))
674674 then throw("Exchange operations disabled")
675675 else if (if ((eH.assetPair.amountAsset != bn))
676676 then true
677677 else (eH.assetPair.priceAsset != bo))
678678 then throw("Wrong order assets.")
679679 else {
680680 let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
681681 let eM = eA(eB, eC, 0)
682682 let eN = eM._1
683683 let eO = eM._2
684684 let eP = (eO >= eL)
685685 let eQ = makeString(["kLp=", toString(eL), " kLpNew=", toString(eO), " amountAssetBalance=", toString(ew), " priceAssetBalance=", toString(ex), " amountAssetBalanceDelta=", toString(eB), " priceAssetBalanceDelta=", toString(eC), " height=", toString(height)], "")
686686 $Tuple2(eP, eQ)
687687 }
688688 }
689689
690690
691691 func eR (eS) = if ((size(eS.payments) != 1))
692692 then throw("exactly 1 payment is expected")
693693 else {
694694 let eT = value(eS.payments[0])
695695 let dj = value(eT.assetId)
696696 let eU = eT.amount
697697 let dW = dh(toBase58String(eS.transactionId), toBase58String(dj), eU, eS.caller)
698698 let dA = dW._1
699699 let dB = dW._2
700700 let do = parseIntValue(dW._9)
701701 let dE = dW._10
702702 if (if (aY())
703703 then true
704704 else (do == n))
705705 then throw(("Get operation is blocked by admin. Status = " + toString(do)))
706706 else $Tuple5(dA, dB, eU, dj, dE)
707707 }
708708
709709
710710 func eV (eS,dG,dM) = if ((size(eS.payments) != 2))
711711 then throw("exactly 2 payments are expected")
712712 else {
713713 let eW = value(eS.payments[0])
714714 let eX = value(eS.payments[1])
715715 let eY = dF(toBase58String(eS.transactionId), dG, eW.amount, eW.assetId, eX.amount, eX.assetId, toString(eS.caller), false, dM)
716716 let do = parseIntValue(eY._8)
717717 if (if (if (aY())
718718 then true
719719 else (do == l))
720720 then true
721721 else (do == n))
722722 then throw(("Put operation is blocked by admin. Status = " + toString(do)))
723723 else eY
724724 }
725725
726726
727727 func eZ (bW) = {
728728 let fa = invoke(aT, "emit", [bW], nil)
729729 if ((fa == fa))
730730 then {
731731 let fb = {
732732 let bT = fa
733733 if ($isInstanceOf(bT, "Address"))
734734 then {
735735 let fc = bT
736736 invoke(fc, "emit", [bW], nil)
737737 }
738738 else unit
739739 }
740740 if ((fb == fb))
741741 then bW
742742 else throw("Strict value is not equal to itself.")
743743 }
744744 else throw("Strict value is not equal to itself.")
745745 }
746746
747747
748748 func fd (bW,ai) = {
749749 let fe = if ((ai == 0))
750750 then 0
751751 else fraction(bW, ai, b)
752752 $Tuple2((bW - fe), fe)
753753 }
754754
755755
756756 func ff (fg,fh,ab,ac) = {
757757 let fi = (ac == unit)
758758 let fj = bJ(bf(bn))
759759 let fk = bJ(bf(bo))
760760 let fl = if ((fh == bn))
761761 then true
762762 else if ((fh == bo))
763763 then false
764764 else aQ("invalid asset")
765765 let fm = if (fi)
766766 then $Tuple2(fj, fk)
767767 else if (fl)
768768 then $Tuple2((fj - fg), fk)
769769 else $Tuple2(fj, (fk - fg))
770770 let fn = fm._1
771771 let fo = fm._2
772772 let fp = if (fl)
773773 then $Tuple2(fg, 0)
774774 else $Tuple2(0, fg)
775775 let fq = fp._1
776776 let fr = fp._2
777777 let eI = fd(fq, aV)._1
778778 let eJ = fd(fr, aV)._1
779779 let fs = fd(fg, aV)
780780 let ft = fs._1
781781 let fe = fs._2
782782 let fu = (fn + eI)
783783 let fv = (fo + eJ)
784784 let fw = bM(D(fv, bq), D(fu, bp))
785785 let fx = H(fw, b)
786786 let fy = if (fl)
787787 then fn
788788 else fo
789789 let fz = toBigInt(fy)
790790 let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
791791 let fB = if ((fA > f))
792792 then true
793793 else aQ("initial deposit requires all coins")
794794 if ((fB == fB))
795795 then {
796796 let fC = toBigInt(ft)
797797 let fD = max([0, toInt(((fA * (sqrtBigInt((d + ((fC * d) / fz)), 18, 18, DOWN) - d)) / d))])
798798 let el = if (fi)
799799 then nil
800800 else [IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bu(fq, fr, fD, fx, 0, 0, height, lastBlock.timestamp, 0, 0))]
801801 let fE = bM(D(fo, bq), D(fn, bp))
802802 let fF = H(fE, b)
803803 let fG = {
804804 let fH = if (fl)
805805 then $Tuple2(fq, fn)
806806 else $Tuple2(fr, fo)
807807 let bW = fH._1
808808 let fI = fH._2
809809 let fJ = toInt(fraction(fA, toBigInt((bW / 2)), toBigInt(fI)))
810810 fraction((fD - fJ), b, fJ)
811811 }
812812 $Tuple5(fD, el, fe, fG, fl)
813813 }
814814 else throw("Strict value is not equal to itself.")
815815 }
816816
817817
818818 func fK (fL,ft,fh,ab,ac) = {
819819 let fi = (ac == unit)
820820 let cY = ba()
821821 let cZ = parseIntValue(cY[t])
822822 let da = parseIntValue(cY[u])
823823 let fM = [if ((fh == bm))
824824 then true
825825 else aQ("invalid lp asset")]
826826 if ((fM == fM))
827827 then {
828828 let fN = if ((fL == bn))
829829 then true
830830 else if ((fL == bo))
831831 then false
832832 else aQ("invalid asset")
833833 let fO = if (fN)
834834 then toBigInt(bJ(bf(bn)))
835835 else toBigInt(bJ(bf(bo)))
836836 let fP = if (fN)
837837 then cZ
838838 else da
839839 let fQ = bJ(bf(bn))
840840 let fR = bJ(bf(bo))
841841 let fS = if (fN)
842842 then fQ
843843 else fR
844844 let fT = toBigInt(fS)
845845 let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
846846 let fU = toBigInt(ft)
847847 let fV = max([0, toInt(((fO * (d - pow((d - ((fU * d) / fA)), 18, h, 0, 18, DOWN))) / d))])
848848 let fW = fd(fV, aX)
849849 let fX = fW._1
850850 let fe = fW._2
851851 let fY = if (fN)
852852 then $Tuple4(fX, 0, (fQ - fV), fR)
853853 else $Tuple4(0, fX, fQ, (fR - fV))
854854 let fZ = fY._1
855855 let ga = fY._2
856856 let gb = fY._3
857857 let gc = fY._4
858858 let fw = bM(D(gc, bq), D(gb, bp))
859859 let fx = H(fw, b)
860860 let el = if (fi)
861861 then nil
862862 else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bF(fZ, ga, ft, fx, height, lastBlock.timestamp)), IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx)]
863863 let fE = bM(D(fR, bq), D(fQ, bp))
864864 let fF = H(fE, b)
865865 let fG = {
866866 let gd = (toInt(fraction(fO, fU, fA)) * 2)
867867 fraction((fX - gd), b, gd)
868868 }
869869 $Tuple5(fX, el, fe, fG, fN)
870870 }
871871 else throw("Strict value is not equal to itself.")
872872 }
873873
874874
875875 func ge () = {
876876 let bT = getString(U())
877877 if ($isInstanceOf(bT, "String"))
878878 then {
879879 let gf = bT
880880 fromBase58String(gf)
881881 }
882882 else if ($isInstanceOf(bT, "Unit"))
883883 then unit
884884 else throw("Match error")
885885 }
886886
887887
888888 func gg () = {
889889 let bT = getString(V())
890890 if ($isInstanceOf(bT, "String"))
891891 then {
892892 let gf = bT
893893 fromBase58String(gf)
894894 }
895895 else if ($isInstanceOf(bT, "Unit"))
896896 then unit
897897 else throw("Match error")
898898 }
899899
900900
901901 func gh (eS) = {
902902 let bT = ge()
903903 if ($isInstanceOf(bT, "ByteVector"))
904904 then {
905905 let gi = bT
906906 (eS.callerPublicKey == gi)
907907 }
908908 else if ($isInstanceOf(bT, "Unit"))
909909 then (eS.caller == this)
910910 else throw("Match error")
911911 }
912912
913913
914914 func gj (eS) = {
915915 let gk = throw("Permission denied")
916916 let bT = ge()
917917 if ($isInstanceOf(bT, "ByteVector"))
918918 then {
919919 let gi = bT
920920 if ((eS.callerPublicKey == gi))
921921 then true
922922 else gk
923923 }
924924 else if ($isInstanceOf(bT, "Unit"))
925925 then if ((eS.caller == this))
926926 then true
927927 else gk
928928 else throw("Match error")
929929 }
930930
931931
932932 @Callable(eS)
933933 func rebalance () = (cC(aM(this, ae())) ++ cC(aM(this, af())))
934934
935935
936936
937937 @Callable(eS)
938938 func calculateAmountOutForSwapREADONLY (gl,gm,gn) = {
939939 let go = if ((gm == false))
940940 then {
941941 let gp = aM(this, af())
942942 let gq = aM(this, ae())
943943 $Tuple2(gp, gq)
944944 }
945945 else {
946946 let gp = aM(this, ae())
947947 let gq = aM(this, af())
948948 $Tuple2(gp, gq)
949949 }
950950 let gp = go._1
951951 let gq = go._2
952952 let gr = bJ(gq)
953953 let gs = bJ(gp)
954954 let gt = fraction(gs, gl, (gr + gl))
955955 let gu = (toBigInt(gr) * toBigInt(gs))
956956 let gv = (((toBigInt(bJ(gq)) + toBigInt(gl)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
957957 let gw = if ((gv >= gu))
958958 then true
959959 else throw("new K is fewer error")
960960 if ((gw == gw))
961961 then $Tuple2(nil, gt)
962962 else throw("Strict value is not equal to itself.")
963963 }
964964
965965
966966
967967 @Callable(eS)
968968 func calculateAmountOutForSwapAndSendTokens (gl,gm,gx,gy,gn) = {
969969 let gz = {
970970 let aW = invoke(aT, "getSwapContractREADONLY", nil, nil)
971971 if ($isInstanceOf(aW, "String"))
972972 then aW
973973 else throw(($getType(aW) + " couldn't be cast to String"))
974974 }
975975 let fM = [if ((value(eS.payments[0]).amount >= gl))
976976 then true
977977 else aQ("Wrong amount"), if ((eS.caller == addressFromStringValue(gz)))
978978 then true
979979 else aQ("Permission denied")]
980980 if ((fM == fM))
981981 then {
982982 let eT = value(eS.payments[0])
983983 let gq = bf(eT.assetId)
984984 let gp = if ((gm == false))
985985 then aM(this, af())
986986 else aM(this, ae())
987987 let gr = (bJ(gq) - value(eS.payments[0]).amount)
988988 let gs = bJ(gp)
989989 let gt = fraction(gs, gl, (gr + gl))
990990 let gu = (toBigInt(gr) * toBigInt(gs))
991991 let gv = ((toBigInt(bJ(gq)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
992992 let gw = if ((gv >= gu))
993993 then true
994994 else throw("new K is fewer error")
995995 if ((gw == gw))
996996 then {
997997 let gA = if ((gt >= gx))
998998 then true
999999 else throw("Exchange result is fewer coins than expected")
10001000 if ((gA == gA))
10011001 then {
1002- let gB = cK(gp, gt)
1002+ let gB = cC(gq)
10031003 if ((gB == gB))
1004- then $Tuple2((gB ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
1004+ then {
1005+ let gC = cK(gp, gt)
1006+ if ((gC == gC))
1007+ then $Tuple2(((gC ++ gB) ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
1008+ else throw("Strict value is not equal to itself.")
1009+ }
10051010 else throw("Strict value is not equal to itself.")
10061011 }
10071012 else throw("Strict value is not equal to itself.")
10081013 }
10091014 else throw("Strict value is not equal to itself.")
10101015 }
10111016 else throw("Strict value is not equal to itself.")
10121017 }
10131018
10141019
10151020
10161021 @Callable(eS)
1017-func setManager (gC) = {
1018- let gD = gj(eS)
1019- if ((gD == gD))
1022+func setManager (gD) = {
1023+ let gE = gj(eS)
1024+ if ((gE == gE))
10201025 then {
1021- let gE = fromBase58String(gC)
1022- if ((gE == gE))
1023- then [StringEntry(V(), gC)]
1026+ let gF = fromBase58String(gD)
1027+ if ((gF == gF))
1028+ then [StringEntry(V(), gD)]
10241029 else throw("Strict value is not equal to itself.")
10251030 }
10261031 else throw("Strict value is not equal to itself.")
10271032 }
10281033
10291034
10301035
10311036 @Callable(eS)
10321037 func confirmManager () = {
1033- let gF = gg()
1034- let gG = if (isDefined(gF))
1038+ let gG = gg()
1039+ let gH = if (isDefined(gG))
10351040 then true
10361041 else throw("No pending manager")
1037- if ((gG == gG))
1042+ if ((gH == gH))
10381043 then {
1039- let gH = if ((eS.callerPublicKey == value(gF)))
1044+ let gI = if ((eS.callerPublicKey == value(gG)))
10401045 then true
10411046 else throw("You are not pending manager")
1042- if ((gH == gH))
1043- then [StringEntry(U(), toBase58String(value(gF))), DeleteEntry(V())]
1047+ if ((gI == gI))
1048+ then [StringEntry(U(), toBase58String(value(gG))), DeleteEntry(V())]
10441049 else throw("Strict value is not equal to itself.")
10451050 }
10461051 else throw("Strict value is not equal to itself.")
10471052 }
10481053
10491054
10501055
10511056 @Callable(eS)
1052-func put (dG,gI) = if ((0 > dG))
1057+func put (dG,gJ) = if ((0 > dG))
10531058 then throw("Invalid slippageTolerance passed")
10541059 else {
10551060 let eY = eV(eS, dG, true)
10561061 let ei = eY._2
10571062 let dl = eY._7
10581063 let dE = eY._9
10591064 let ej = eY._10
10601065 let ek = eY._11
1061- let gJ = eY._12
1062- let gK = eY._13
1066+ let gK = eY._12
1067+ let gL = eY._13
10631068 let eW = toBigInt(value(eS.payments[0]).amount)
10641069 let eX = toBigInt(value(eS.payments[1]).amount)
10651070 let ez = es(eW, eX, toBigInt(0))
10661071 if ((ez == ez))
10671072 then {
10681073 let fa = invoke(aT, "emit", [ei], nil)
10691074 if ((fa == fa))
10701075 then {
10711076 let fb = {
10721077 let bT = fa
10731078 if ($isInstanceOf(bT, "Address"))
10741079 then {
10751080 let fc = bT
10761081 invoke(fc, "emit", [ei], nil)
10771082 }
10781083 else unit
10791084 }
10801085 if ((fb == fb))
10811086 then {
1082- let gL = if ((ej > 0))
1083- then invoke(bt, "put", nil, [AttachedPayment(gJ, ej)])
1087+ let gM = if ((ej > 0))
1088+ then invoke(bt, "put", nil, [AttachedPayment(gK, ej)])
10841089 else nil
1085- if ((gL == gL))
1090+ if ((gM == gM))
10861091 then {
1087- let gM = if ((ek > 0))
1088- then invoke(bt, "put", nil, [AttachedPayment(gK, ek)])
1092+ let gN = if ((ek > 0))
1093+ then invoke(bt, "put", nil, [AttachedPayment(gL, ek)])
10891094 else nil
1090- if ((gM == gM))
1095+ if ((gN == gN))
10911096 then {
1092- let gN = if (gI)
1097+ let gO = if (gJ)
10931098 then {
1094- let gO = invoke(bs, "stake", nil, [AttachedPayment(dl, ei)])
1095- if ((gO == gO))
1099+ let gP = invoke(bs, "stake", nil, [AttachedPayment(dl, ei)])
1100+ if ((gP == gP))
10961101 then nil
10971102 else throw("Strict value is not equal to itself.")
10981103 }
10991104 else [ScriptTransfer(eS.caller, ei, dl)]
1100- let gP = eA(0, 0, 0)
1101- if ((gP == gP))
1105+ let gQ = eA(0, 0, 0)
1106+ if ((gQ == gQ))
11021107 then {
1103- let er = gP._2
1104- let gQ = gP._1
1105- let gR = eE(ez, er)
1106- if ((gR == gR))
1108+ let er = gQ._2
1109+ let gR = gQ._1
1110+ let gS = eE(ez, er)
1111+ if ((gS == gS))
11071112 then {
1108- let gS = invoke(this, "rebalance", nil, nil)
1109- if ((gS == gS))
1110- then ((dE ++ gN) ++ gQ)
1113+ let gT = invoke(this, "rebalance", nil, nil)
1114+ if ((gT == gT))
1115+ then ((dE ++ gO) ++ gR)
11111116 else throw("Strict value is not equal to itself.")
11121117 }
11131118 else throw("Strict value is not equal to itself.")
11141119 }
11151120 else throw("Strict value is not equal to itself.")
11161121 }
11171122 else throw("Strict value is not equal to itself.")
11181123 }
11191124 else throw("Strict value is not equal to itself.")
11201125 }
11211126 else throw("Strict value is not equal to itself.")
11221127 }
11231128 else throw("Strict value is not equal to itself.")
11241129 }
11251130 else throw("Strict value is not equal to itself.")
11261131 }
11271132
11281133
11291134
11301135 @Callable(eS)
1131-func putForFree (gT) = if ((0 > gT))
1136+func putForFree (gU) = if ((0 > gU))
11321137 then throw("Invalid value passed")
11331138 else {
1134- let eY = eV(eS, gT, false)
1139+ let eY = eV(eS, gU, false)
11351140 let dE = eY._9
11361141 let eW = toBigInt(value(eS.payments[0]).amount)
11371142 let eX = toBigInt(value(eS.payments[1]).amount)
11381143 let ez = es(eW, eX, toBigInt(0))
11391144 if ((ez == ez))
11401145 then {
1141- let gU = eA(0, 0, 0)
1142- let gQ = gU._1
1143- let er = gU._2
1144- let gR = eE(ez, er)
1145- if ((gR == gR))
1146- then (dE ++ gQ)
1146+ let gV = eA(0, 0, 0)
1147+ let gR = gV._1
1148+ let er = gV._2
1149+ let gS = eE(ez, er)
1150+ if ((gS == gS))
1151+ then (dE ++ gR)
11471152 else throw("Strict value is not equal to itself.")
11481153 }
11491154 else throw("Strict value is not equal to itself.")
11501155 }
11511156
11521157
11531158
11541159 @Callable(eS)
1155-func putOneTkn (gV,gW) = {
1156- let gX = {
1160+func putOneTkn (gW,gX) = {
1161+ let gY = {
11571162 let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
11581163 if ($isInstanceOf(aW, "Boolean"))
11591164 then aW
11601165 else throw(($getType(aW) + " couldn't be cast to Boolean"))
11611166 }
1162- let gY = if (if (if (aY())
1167+ let gZ = if (if (if (aY())
11631168 then true
11641169 else (bl == l))
11651170 then true
11661171 else (bl == n))
11671172 then true
1168- else gX
1169- let fM = [if (if (!(gY))
1173+ else gY
1174+ let fM = [if (if (!(gZ))
11701175 then true
11711176 else gh(eS))
11721177 then true
11731178 else aQ("put operation is blocked by admin"), if ((size(eS.payments) == 1))
11741179 then true
11751180 else aQ("exactly 1 payment are expected")]
11761181 if ((fM == fM))
11771182 then {
1178- let gZ = eS.payments[0]
1179- let fh = gZ.assetId
1180- let fg = gZ.amount
1183+ let ha = eS.payments[0]
1184+ let fh = ha.assetId
1185+ let fg = ha.amount
11811186 let ez = if ((fh == bn))
11821187 then es(toBigInt(fg), toBigInt(0), toBigInt(0))
11831188 else if ((fh == bo))
11841189 then es(toBigInt(0), toBigInt(fg), toBigInt(0))
11851190 else aQ("payment asset is not supported")
11861191 if ((ez == ez))
11871192 then {
11881193 let ab = eS.caller
11891194 let ac = eS.transactionId
1190- let ha = ff(fg, fh, ab, ac)
1191- if ((ha == ha))
1195+ let hb = ff(fg, fh, ab, ac)
1196+ if ((hb == hb))
11921197 then {
1193- let fl = ha._5
1194- let hb = ha._4
1195- let fe = ha._3
1196- let el = ha._2
1197- let hc = ha._1
1198- let hd = if (if ((gV > 0))
1199- then (gV > hc)
1198+ let fl = hb._5
1199+ let hc = hb._4
1200+ let fe = hb._3
1201+ let el = hb._2
1202+ let hd = hb._1
1203+ let he = if (if ((gW > 0))
1204+ then (gW > hd)
12001205 else false)
1201- then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1202- else hc
1203- let fa = eZ(hd)
1206+ then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1207+ else hd
1208+ let fa = eZ(he)
12041209 if ((fa == fa))
12051210 then {
1206- let gN = if (gW)
1211+ let gO = if (gX)
12071212 then {
1208- let he = invoke(bs, "stake", nil, [AttachedPayment(bm, hd)])
1209- if ((he == he))
1213+ let hf = invoke(bs, "stake", nil, [AttachedPayment(bm, he)])
1214+ if ((hf == hf))
12101215 then nil
12111216 else throw("Strict value is not equal to itself.")
12121217 }
1213- else [ScriptTransfer(eS.caller, hd, bm)]
1214- let hf = if ((fe > 0))
1218+ else [ScriptTransfer(eS.caller, he, bm)]
1219+ let hg = if ((fe > 0))
12151220 then [ScriptTransfer(aU, fe, fh)]
12161221 else nil
1217- let hg = if ((this == aU))
1222+ let hh = if ((this == aU))
12181223 then $Tuple2(0, 0)
12191224 else if (fl)
12201225 then $Tuple2(-(fe), 0)
12211226 else $Tuple2(0, -(fe))
1222- let eB = hg._1
1223- let eC = hg._2
1224- let hh = eA(eB, eC, 0)
1225- let gQ = hh._1
1226- let er = hh._2
1227+ let eB = hh._1
1228+ let eC = hh._2
1229+ let hi = eA(eB, eC, 0)
1230+ let gR = hi._1
1231+ let er = hi._2
12271232 let eL = value(getString(aj))
1228- let gR = eE(ez, er)
1229- if ((gR == gR))
1233+ let gS = eE(ez, er)
1234+ if ((gS == gS))
12301235 then {
1231- let gS = invoke(this, "rebalance", nil, nil)
1232- if ((gS == gS))
1233- then $Tuple2((((el ++ gN) ++ hf) ++ gQ), hd)
1236+ let gT = invoke(this, "rebalance", nil, nil)
1237+ if ((gT == gT))
1238+ then $Tuple2((((el ++ gO) ++ hg) ++ gR), he)
12341239 else throw("Strict value is not equal to itself.")
12351240 }
12361241 else throw("Strict value is not equal to itself.")
12371242 }
12381243 else throw("Strict value is not equal to itself.")
12391244 }
12401245 else throw("Strict value is not equal to itself.")
12411246 }
12421247 else throw("Strict value is not equal to itself.")
12431248 }
12441249 else throw("Strict value is not equal to itself.")
12451250 }
12461251
12471252
12481253
12491254 @Callable(eS)
12501255 func putOneTknREADONLY (fh,fg) = {
1251- let hi = ff(fg, bd(fh), unit, unit)
1252- let hc = hi._1
1253- let el = hi._2
1254- let fe = hi._3
1255- let hb = hi._4
1256- let fl = hi._5
1257- $Tuple2(nil, $Tuple3(hc, fe, hb))
1256+ let hj = ff(fg, bd(fh), unit, unit)
1257+ let hd = hj._1
1258+ let el = hj._2
1259+ let fe = hj._3
1260+ let hc = hj._4
1261+ let fl = hj._5
1262+ $Tuple2(nil, $Tuple3(hd, fe, hc))
12581263 }
12591264
12601265
12611266
12621267 @Callable(eS)
1263-func getOneTkn (hj,gV) = {
1264- let gX = {
1268+func getOneTkn (hk,gW) = {
1269+ let gY = {
12651270 let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
12661271 if ($isInstanceOf(aW, "Boolean"))
12671272 then aW
12681273 else throw(($getType(aW) + " couldn't be cast to Boolean"))
12691274 }
1270- let hk = if (if (aY())
1275+ let hl = if (if (aY())
12711276 then true
12721277 else (bl == n))
12731278 then true
1274- else gX
1275- let fM = [if (if (!(hk))
1279+ else gY
1280+ let fM = [if (if (!(hl))
12761281 then true
12771282 else gh(eS))
12781283 then true
12791284 else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 1))
12801285 then true
12811286 else aQ("exactly 1 payment are expected")]
12821287 if ((fM == fM))
12831288 then {
1284- let fL = bd(hj)
1285- let gZ = eS.payments[0]
1286- let fh = gZ.assetId
1287- let ft = gZ.amount
1289+ let fL = bd(hk)
1290+ let ha = eS.payments[0]
1291+ let fh = ha.assetId
1292+ let ft = ha.amount
12881293 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
12891294 if ((ez == ez))
12901295 then {
12911296 let ab = eS.caller
12921297 let ac = eS.transactionId
1293- let hl = fK(fL, ft, fh, ab, ac)
1294- if ((hl == hl))
1298+ let hm = fK(fL, ft, fh, ab, ac)
1299+ if ((hm == hm))
12951300 then {
1296- let fN = hl._5
1297- let hb = hl._4
1298- let fe = hl._3
1299- let el = hl._2
1300- let hm = hl._1
1301- let bW = if (if ((gV > 0))
1302- then (gV > hm)
1301+ let fN = hm._5
1302+ let hc = hm._4
1303+ let fe = hm._3
1304+ let el = hm._2
1305+ let hn = hm._1
1306+ let bW = if (if ((gW > 0))
1307+ then (gW > hn)
13031308 else false)
1304- then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1305- else hm
1306- let hn = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1307- if ((hn == hn))
1309+ then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1310+ else hn
1311+ let ho = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1312+ if ((ho == ho))
13081313 then {
1309- let gB = cK(hj, bW)
1310- if ((gB == gB))
1314+ let gC = cK(hk, bW)
1315+ if ((gC == gC))
13111316 then {
1312- let ho = [ScriptTransfer(ab, bW, fL)]
1313- let hf = if ((fe > 0))
1317+ let hp = [ScriptTransfer(ab, bW, fL)]
1318+ let hg = if ((fe > 0))
13141319 then [ScriptTransfer(aU, fe, fL)]
13151320 else nil
1316- let hp = {
1317- let hq = if ((this == aU))
1321+ let hq = {
1322+ let hr = if ((this == aU))
13181323 then 0
13191324 else fe
13201325 if (fN)
1321- then $Tuple2(-((bW + hq)), 0)
1322- else $Tuple2(0, -((bW + hq)))
1326+ then $Tuple2(-((bW + hr)), 0)
1327+ else $Tuple2(0, -((bW + hr)))
13231328 }
1324- let eB = hp._1
1325- let eC = hp._2
1326- let hr = eA(eB, eC, 0)
1327- let gQ = hr._1
1328- let er = hr._2
1329- let gR = eE(ez, er)
1330- if ((gR == gR))
1331- then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
1329+ let eB = hq._1
1330+ let eC = hq._2
1331+ let hs = eA(eB, eC, 0)
1332+ let gR = hs._1
1333+ let er = hs._2
1334+ let gS = eE(ez, er)
1335+ if ((gS == gS))
1336+ then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
13321337 else throw("Strict value is not equal to itself.")
13331338 }
13341339 else throw("Strict value is not equal to itself.")
13351340 }
13361341 else throw("Strict value is not equal to itself.")
13371342 }
13381343 else throw("Strict value is not equal to itself.")
13391344 }
13401345 else throw("Strict value is not equal to itself.")
13411346 }
13421347 else throw("Strict value is not equal to itself.")
13431348 }
13441349
13451350
13461351
13471352 @Callable(eS)
13481353 func getOneTknREADONLY (fL,ft) = {
1349- let hs = fK(bd(fL), ft, bm, unit, unit)
1350- let hm = hs._1
1351- let el = hs._2
1352- let fe = hs._3
1353- let hb = hs._4
1354- let fN = hs._5
1355- $Tuple2(nil, $Tuple3(hm, fe, hb))
1354+ let ht = fK(bd(fL), ft, bm, unit, unit)
1355+ let hn = ht._1
1356+ let el = ht._2
1357+ let fe = ht._3
1358+ let hc = ht._4
1359+ let fN = ht._5
1360+ $Tuple2(nil, $Tuple3(hn, fe, hc))
13561361 }
13571362
13581363
13591364
13601365 @Callable(eS)
1361-func unstakeAndGetOneTkn (ht,hj,gV) = {
1362- let gX = {
1366+func unstakeAndGetOneTkn (hu,hk,gW) = {
1367+ let gY = {
13631368 let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
13641369 if ($isInstanceOf(aW, "Boolean"))
13651370 then aW
13661371 else throw(($getType(aW) + " couldn't be cast to Boolean"))
13671372 }
1368- let hk = if (if (aY())
1373+ let hl = if (if (aY())
13691374 then true
13701375 else (bl == n))
13711376 then true
1372- else gX
1373- let fM = [if (if (!(hk))
1377+ else gY
1378+ let fM = [if (if (!(hl))
13741379 then true
13751380 else gh(eS))
13761381 then true
13771382 else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 0))
13781383 then true
13791384 else aQ("no payments are expected")]
13801385 if ((fM == fM))
13811386 then {
1382- let fL = bd(hj)
1387+ let fL = bd(hk)
13831388 let ab = eS.caller
13841389 let ac = eS.transactionId
13851390 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
13861391 if ((ez == ez))
13871392 then {
1388- let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1389- if ((hu == hu))
1393+ let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1394+ if ((hv == hv))
13901395 then {
1391- let hv = fK(fL, ht, bm, ab, ac)
1392- if ((hv == hv))
1396+ let hw = fK(fL, hu, bm, ab, ac)
1397+ if ((hw == hw))
13931398 then {
1394- let fN = hv._5
1395- let hb = hv._4
1396- let fe = hv._3
1397- let el = hv._2
1398- let hm = hv._1
1399- let bW = if (if ((gV > 0))
1400- then (gV > hm)
1399+ let fN = hw._5
1400+ let hc = hw._4
1401+ let fe = hw._3
1402+ let el = hw._2
1403+ let hn = hw._1
1404+ let bW = if (if ((gW > 0))
1405+ then (gW > hn)
14011406 else false)
1402- then aQ(makeString(["amount to receive is less than ", toString(gV)], ""))
1403- else hm
1404- let hn = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1405- if ((hn == hn))
1407+ then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1408+ else hn
1409+ let ho = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1410+ if ((ho == ho))
14061411 then {
1407- let gB = cK(hj, bW)
1408- if ((gB == gB))
1412+ let gC = cK(hk, bW)
1413+ if ((gC == gC))
14091414 then {
1410- let ho = [ScriptTransfer(eS.caller, bW, fL)]
1411- let hf = if ((fe > 0))
1415+ let hp = [ScriptTransfer(eS.caller, bW, fL)]
1416+ let hg = if ((fe > 0))
14121417 then [ScriptTransfer(aU, fe, fL)]
14131418 else nil
1414- let hw = {
1415- let hq = if ((this == aU))
1419+ let hx = {
1420+ let hr = if ((this == aU))
14161421 then 0
14171422 else fe
14181423 if (fN)
1419- then $Tuple2(-((bW + hq)), 0)
1420- else $Tuple2(0, -((bW + hq)))
1424+ then $Tuple2(-((bW + hr)), 0)
1425+ else $Tuple2(0, -((bW + hr)))
14211426 }
1422- let eB = hw._1
1423- let eC = hw._2
1424- let hx = eA(eB, eC, 0)
1425- let gQ = hx._1
1426- let er = hx._2
1427- let gR = eE(ez, er)
1428- if ((gR == gR))
1429- then $Tuple2(((((el ++ gB) ++ ho) ++ hf) ++ gQ), bW)
1427+ let eB = hx._1
1428+ let eC = hx._2
1429+ let hy = eA(eB, eC, 0)
1430+ let gR = hy._1
1431+ let er = hy._2
1432+ let gS = eE(ez, er)
1433+ if ((gS == gS))
1434+ then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
14301435 else throw("Strict value is not equal to itself.")
14311436 }
14321437 else throw("Strict value is not equal to itself.")
14331438 }
14341439 else throw("Strict value is not equal to itself.")
14351440 }
14361441 else throw("Strict value is not equal to itself.")
14371442 }
14381443 else throw("Strict value is not equal to itself.")
14391444 }
14401445 else throw("Strict value is not equal to itself.")
14411446 }
14421447 else throw("Strict value is not equal to itself.")
14431448 }
14441449
14451450
14461451
14471452 @Callable(eS)
14481453 func get () = {
14491454 let dW = eR(eS)
1450- let hy = dW._1
1455+ let hz = dW._1
14511456 let dB = dW._2
14521457 let eU = dW._3
14531458 let dj = dW._4
14541459 let dE = dW._5
14551460 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
14561461 if ((ez == ez))
14571462 then {
1458- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1459- if ((hz == hz))
1463+ let hA = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1464+ if ((hA == hA))
14601465 then {
1461- let hA = eA(-(hy), -(dB), 0)
1462- let gQ = hA._1
1463- let er = hA._2
1464- let gR = eE(ez, er)
1465- if ((gR == gR))
1466- then (dE ++ gQ)
1466+ let hB = eA(-(hz), -(dB), 0)
1467+ let gR = hB._1
1468+ let er = hB._2
1469+ let gS = eE(ez, er)
1470+ if ((gS == gS))
1471+ then (dE ++ gR)
14671472 else throw("Strict value is not equal to itself.")
14681473 }
14691474 else throw("Strict value is not equal to itself.")
14701475 }
14711476 else throw("Strict value is not equal to itself.")
14721477 }
14731478
14741479
14751480
14761481 @Callable(eS)
1477-func getNoLess (hB,hC) = {
1482+func getNoLess (hC,hD) = {
14781483 let dW = eR(eS)
14791484 let dA = dW._1
14801485 let dB = dW._2
14811486 let eU = dW._3
14821487 let dj = dW._4
14831488 let dE = dW._5
1484- if ((hB > dA))
1485- then throw(((("noLessThenAmtAsset failed: " + toString(dA)) + " < ") + toString(hB)))
1486- else if ((hC > dB))
1487- then throw(((("noLessThenPriceAsset failed: " + toString(dB)) + " < ") + toString(hC)))
1489+ if ((hC > dA))
1490+ then throw(((("noLessThenAmtAsset failed: " + toString(dA)) + " < ") + toString(hC)))
1491+ else if ((hD > dB))
1492+ then throw(((("noLessThenPriceAsset failed: " + toString(dB)) + " < ") + toString(hD)))
14881493 else {
14891494 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
14901495 if ((ez == ez))
14911496 then {
1492- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1493- if ((hz == hz))
1497+ let hA = invoke(aT, "burn", [eU], [AttachedPayment(dj, eU)])
1498+ if ((hA == hA))
14941499 then {
1495- let hD = eA(-(dA), -(dB), 0)
1496- let gQ = hD._1
1497- let er = hD._2
1498- let gR = eE(ez, er)
1499- if ((gR == gR))
1500- then (dE ++ gQ)
1500+ let hE = eA(-(dA), -(dB), 0)
1501+ let gR = hE._1
1502+ let er = hE._2
1503+ let gS = eE(ez, er)
1504+ if ((gS == gS))
1505+ then (dE ++ gR)
15011506 else throw("Strict value is not equal to itself.")
15021507 }
15031508 else throw("Strict value is not equal to itself.")
15041509 }
15051510 else throw("Strict value is not equal to itself.")
15061511 }
15071512 }
15081513
15091514
15101515
15111516 @Callable(eS)
15121517 func unstakeAndGet (bW) = {
1513- let hE = if ((size(eS.payments) != 0))
1518+ let hF = if ((size(eS.payments) != 0))
15141519 then throw("No payments are expected")
15151520 else true
1516- if ((hE == hE))
1521+ if ((hF == hF))
15171522 then {
15181523 let cY = ba()
15191524 let dl = fromBase58String(cY[q])
15201525 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
15211526 if ((ez == ez))
15221527 then {
1523- let hu = invoke(bs, "unstake", [toBase58String(dl), bW], nil)
1524- if ((hu == hu))
1528+ let hv = invoke(bs, "unstake", [toBase58String(dl), bW], nil)
1529+ if ((hv == hv))
15251530 then {
15261531 let dW = dh(toBase58String(eS.transactionId), toBase58String(dl), bW, eS.caller)
15271532 let dA = dW._1
15281533 let dB = dW._2
15291534 let do = parseIntValue(dW._9)
15301535 let dE = dW._10
1531- let hF = if (if (aY())
1536+ let hG = if (if (aY())
15321537 then true
15331538 else (do == n))
15341539 then throw(("Get operation is blocked by admin. Status = " + toString(do)))
15351540 else true
1536- if ((hF == hF))
1541+ if ((hG == hG))
15371542 then {
1538- let hz = invoke(aT, "burn", [bW], [AttachedPayment(dl, bW)])
1539- if ((hz == hz))
1543+ let hA = invoke(aT, "burn", [bW], [AttachedPayment(dl, bW)])
1544+ if ((hA == hA))
15401545 then {
1541- let hG = eA(-(dA), -(dB), 0)
1542- let gQ = hG._1
1543- let er = hG._2
1544- let gR = eE(ez, er)
1545- if ((gR == gR))
1546- then (dE ++ gQ)
1546+ let hH = eA(-(dA), -(dB), 0)
1547+ let gR = hH._1
1548+ let er = hH._2
1549+ let gS = eE(ez, er)
1550+ if ((gS == gS))
1551+ then (dE ++ gR)
15471552 else throw("Strict value is not equal to itself.")
15481553 }
15491554 else throw("Strict value is not equal to itself.")
15501555 }
15511556 else throw("Strict value is not equal to itself.")
15521557 }
15531558 else throw("Strict value is not equal to itself.")
15541559 }
15551560 else throw("Strict value is not equal to itself.")
15561561 }
15571562 else throw("Strict value is not equal to itself.")
15581563 }
15591564
15601565
15611566
15621567 @Callable(eS)
1563-func unstakeAndGetNoLess (ht,hH,hC) = {
1564- let hk = if (aY())
1568+func unstakeAndGetNoLess (hu,hI,hD) = {
1569+ let hl = if (aY())
15651570 then true
15661571 else (bl == n)
1567- let fM = [if (!(hk))
1572+ let fM = [if (!(hl))
15681573 then true
15691574 else throw("get operation is blocked by admin"), if ((size(eS.payments) == 0))
15701575 then true
15711576 else throw("no payments are expected")]
15721577 if ((fM == fM))
15731578 then {
15741579 let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
15751580 if ((ez == ez))
15761581 then {
1577- let hu = invoke(bs, "unstake", [toBase58String(bm), ht], nil)
1578- if ((hu == hu))
1582+ let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1583+ if ((hv == hv))
15791584 then {
1580- let dW = dh(toBase58String(eS.transactionId), toBase58String(bm), ht, eS.caller)
1585+ let dW = dh(toBase58String(eS.transactionId), toBase58String(bm), hu, eS.caller)
15811586 let dA = dW._1
15821587 let dB = dW._2
15831588 let dE = dW._10
1584- let hI = [if ((dA >= hH))
1589+ let hJ = [if ((dA >= hI))
15851590 then true
1586- else throw(makeString(["amount asset amount to receive is less than ", toString(hH)], "")), if ((dB >= hC))
1591+ else throw(makeString(["amount asset amount to receive is less than ", toString(hI)], "")), if ((dB >= hD))
15871592 then true
1588- else throw(makeString(["price asset amount to receive is less than ", toString(hC)], ""))]
1589- if ((hI == hI))
1593+ else throw(makeString(["price asset amount to receive is less than ", toString(hD)], ""))]
1594+ if ((hJ == hJ))
15901595 then {
1591- let hz = invoke(aT, "burn", [ht], [AttachedPayment(bm, ht)])
1592- if ((hz == hz))
1596+ let hA = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1597+ if ((hA == hA))
15931598 then {
1594- let hJ = eA(-(dA), -(dB), 0)
1595- let gQ = hJ._1
1596- let er = hJ._2
1597- let gR = eE(ez, er)
1598- if ((gR == gR))
1599- then (dE ++ gQ)
1599+ let hK = eA(-(dA), -(dB), 0)
1600+ let gR = hK._1
1601+ let er = hK._2
1602+ let gS = eE(ez, er)
1603+ if ((gS == gS))
1604+ then (dE ++ gR)
16001605 else throw("Strict value is not equal to itself.")
16011606 }
16021607 else throw("Strict value is not equal to itself.")
16031608 }
16041609 else throw("Strict value is not equal to itself.")
16051610 }
16061611 else throw("Strict value is not equal to itself.")
16071612 }
16081613 else throw("Strict value is not equal to itself.")
16091614 }
16101615 else throw("Strict value is not equal to itself.")
16111616 }
16121617
16131618
16141619
16151620 @Callable(eS)
1616-func activate (hK,hL) = if ((toString(eS.caller) != toString(aT)))
1621+func activate (hL,hM) = if ((toString(eS.caller) != toString(aT)))
16171622 then throw("permissions denied")
1618- else $Tuple2([StringEntry(ae(), hK), StringEntry(af(), hL)], "success")
1623+ else $Tuple2([StringEntry(ae(), hL), StringEntry(af(), hM)], "success")
16191624
16201625
16211626
16221627 @Callable(eS)
16231628 func refreshKLp () = {
1624- let hM = valueOrElse(getInteger(ak), 0)
1625- let hN = if (((height - hM) >= an))
1629+ let hN = valueOrElse(getInteger(ak), 0)
1630+ let hO = if (((height - hN) >= an))
16261631 then unit
16271632 else aQ(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1628- if ((hN == hN))
1633+ if ((hO == hO))
16291634 then {
16301635 let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
1631- let hO = eA(0, 0, 0)
1632- let hP = hO._1
1633- let er = hO._2
1636+ let hP = eA(0, 0, 0)
1637+ let hQ = hP._1
1638+ let er = hP._2
16341639 let eD = if ((eL != er))
1635- then hP
1640+ then hQ
16361641 else aQ("nothing to refresh")
16371642 $Tuple2(eD, toString(er))
16381643 }
16391644 else throw("Strict value is not equal to itself.")
16401645 }
16411646
16421647
16431648
16441649 @Callable(eS)
16451650 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ba())
16461651
16471652
16481653
16491654 @Callable(eS)
16501655 func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bJ(ap))
16511656
16521657
16531658
16541659 @Callable(eS)
16551660 func calcPricesWrapperREADONLY (cS,cT,cX) = {
16561661 let dg = cW(cS, cT, cX)
16571662 $Tuple2(nil, [toString(dg[0]), toString(dg[1]), toString(dg[2])])
16581663 }
16591664
16601665
16611666
16621667 @Callable(eS)
16631668 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16641669
16651670
16661671
16671672 @Callable(eS)
16681673 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16691674
16701675
16711676
16721677 @Callable(eS)
16731678 func calcPriceBigIntWrapperREADONLY (bN,bO) = $Tuple2(nil, toString(bM(parseBigIntValue(bN), parseBigIntValue(bO))))
16741679
16751680
16761681
16771682 @Callable(eS)
16781683 func estimatePutOperationWrapperREADONLY (di,dG,dH,dI,dJ,dK,ab,dL,dM) = $Tuple2(nil, dF(di, dG, dH, dI, dJ, dK, ab, dL, dM))
16791684
16801685
16811686
16821687 @Callable(eS)
16831688 func estimateGetOperationWrapperREADONLY (di,dj,dk,ab) = {
16841689 let dW = dh(di, dj, dk, addressFromStringValue(ab))
16851690 $Tuple2(nil, $Tuple10(dW._1, dW._2, dW._3, dW._4, dW._5, dW._6, dW._7, toString(dW._8), dW._9, dW._10))
16861691 }
16871692
16881693
16891694
16901695 @Callable(eS)
16911696 func statsREADONLY () = {
16921697 let cY = ba()
16931698 let dl = fromBase58String(cY[q])
1694- let hQ = cY[r]
1695- let hR = cY[s]
1699+ let hR = cY[r]
1700+ let hS = cY[s]
16961701 let dP = cY[v]
16971702 let dQ = cY[w]
16981703 let cZ = parseIntValue(cY[t])
16991704 let da = parseIntValue(cY[u])
1700- let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1701- let hT = bJ(hQ)
1705+ let hT = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
17021706 let hU = bJ(hR)
1703- let hV = if ((hS == 0))
1707+ let hV = bJ(hS)
1708+ let hW = if ((hT == 0))
17041709 then [e, e, e]
1705- else cW(hT, hU, hS)
1710+ else cW(hU, hV, hT)
17061711 let dv = 0
1707- let hW = H(hV[1], b)
1708- let hX = H(hV[2], b)
1709- let hY = value(getInteger(aT, aD(toString(this))))
1710- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hT), toString(hU), toString(hS), toString(dv), toString(hW), toString(hX), toString(hY)], j))
1712+ let hX = H(hW[1], b)
1713+ let hY = H(hW[2], b)
1714+ let hZ = value(getInteger(aT, aD(toString(this))))
1715+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hU), toString(hV), toString(hT), toString(dv), toString(hX), toString(hY), toString(hZ)], j))
17111716 }
17121717
17131718
17141719
17151720 @Callable(eS)
17161721 func evaluatePutByAmountAssetREADONLY (dH) = {
17171722 let cY = ba()
17181723 let dl = fromBase58String(cY[q])
17191724 let dN = cY[r]
17201725 let dm = fromBase58String(dN)
17211726 let dO = cY[s]
17221727 let dn = fromBase58String(dO)
17231728 let cZ = parseIntValue(cY[t])
17241729 let da = parseIntValue(cY[u])
17251730 let do = cY[p]
1726- let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1727- let hT = bJ(dN)
1728- let hU = bJ(dO)
1729- let cU = D(hT, cZ)
1730- let cV = D(hU, da)
1731- let du = if ((hS == 0))
1731+ let hT = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1732+ let hU = bJ(dN)
1733+ let hV = bJ(dO)
1734+ let cU = D(hU, cZ)
1735+ let cV = D(hV, da)
1736+ let du = if ((hT == 0))
17321737 then e
17331738 else bM(cV, cU)
17341739 let dT = D(dH, cZ)
17351740 let dU = fraction(dT, du, d)
17361741 let dJ = H(dU, da)
17371742 let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
17381743 let ee = eY._1
1739- let hZ = eY._3
1744+ let ia = eY._3
17401745 let dq = eY._4
17411746 let ds = eY._5
17421747 let dp = eY._6
17431748 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(du, b)), toString(dq), toString(ds), toString(dp), do, toString(dH), toString(dJ)], j))
17441749 }
17451750
17461751
17471752
17481753 @Callable(eS)
17491754 func evaluatePutByPriceAssetREADONLY (dJ) = {
17501755 let cY = ba()
17511756 let dl = fromBase58String(cY[q])
17521757 let dN = cY[r]
17531758 let dm = fromBase58String(dN)
17541759 let dO = cY[s]
17551760 let dn = fromBase58String(dO)
17561761 let cZ = parseIntValue(cY[t])
17571762 let da = parseIntValue(cY[u])
17581763 let do = cY[p]
1759- let hS = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1760- let ia = bJ(dN)
1761- let ib = bJ(dO)
1762- let ic = D(ia, cZ)
1763- let id = D(ib, da)
1764- let du = if ((hS == 0))
1764+ let hT = valueOrErrorMessage(assetInfo(dl), (("Asset " + toBase58String(dl)) + " doesn't exist")).quantity
1765+ let ib = bJ(dN)
1766+ let ic = bJ(dO)
1767+ let id = D(ib, cZ)
1768+ let ie = D(ic, da)
1769+ let du = if ((hT == 0))
17651770 then e
1766- else bM(id, ic)
1771+ else bM(ie, id)
17671772 let dU = D(dJ, da)
17681773 let dT = fraction(dU, d, du)
17691774 let dH = H(dT, cZ)
17701775 let eY = dF("", 500000, dH, dm, dJ, dn, "", true, false)
17711776 let ee = eY._1
1772- let hZ = eY._3
1777+ let ia = eY._3
17731778 let dq = eY._4
17741779 let ds = eY._5
17751780 let dp = eY._6
17761781 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(du, b)), toString(dq), toString(ds), toString(dp), do, toString(dH), toString(dJ)], j))
17771782 }
17781783
17791784
17801785
17811786 @Callable(eS)
1782-func evaluateGetREADONLY (ie,if) = {
1783- let dW = dh("", ie, if, this)
1787+func evaluateGetREADONLY (if,ig) = {
1788+ let dW = dh("", if, ig, this)
17841789 let dA = dW._1
17851790 let dB = dW._2
17861791 let dq = dW._5
17871792 let ds = dW._6
17881793 let dp = dW._7
17891794 let dv = dW._8
17901795 let do = parseIntValue(dW._9)
17911796 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dA), toString(dB), toString(dq), toString(ds), toString(dp), toString(dv), toString(do)], j))
17921797 }
17931798
17941799
1795-@Verifier(ig)
1796-func ih () = {
1797- let ii = {
1800+@Verifier(ih)
1801+func ii () = {
1802+ let ij = {
17981803 let bT = ge()
17991804 if ($isInstanceOf(bT, "ByteVector"))
18001805 then {
18011806 let gi = bT
18021807 gi
18031808 }
18041809 else if ($isInstanceOf(bT, "Unit"))
1805- then ig.senderPublicKey
1810+ then ih.senderPublicKey
18061811 else throw("Match error")
18071812 }
1808- let bT = ig
1813+ let bT = ih
18091814 if ($isInstanceOf(bT, "Order"))
18101815 then {
18111816 let eH = bT
1812- let ij = aZ()
1813- let ik = eG(eH)
1814- let aI = ik._1
1815- let aJ = ik._2
1817+ let ik = aZ()
1818+ let il = eG(eH)
1819+ let aI = il._1
1820+ let aJ = il._2
18161821 let aK = sigVerify(eH.bodyBytes, eH.proofs[0], eH.senderPublicKey)
1817- let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ij)
1822+ let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ik)
18181823 if (if (if (aI)
18191824 then aK
18201825 else false)
18211826 then aL
18221827 else false)
18231828 then true
18241829 else aH(aI, aJ, aK, aL)
18251830 }
18261831 else if ($isInstanceOf(bT, "SetScriptTransaction"))
18271832 then {
18281833 let gf = bT
1829- if (sigVerify(ig.bodyBytes, ig.proofs[0], ii))
1834+ if (sigVerify(ih.bodyBytes, ih.proofs[0], ij))
18301835 then true
18311836 else {
1832- let il = blake2b256(value(gf.script))
1833- let im = fromBase64String(value(getString(aT, aF())))
1834- let in = scriptHash(this)
1835- if ((im == il))
1836- then (in != il)
1837+ let im = blake2b256(value(gf.script))
1838+ let in = fromBase64String(value(getString(aT, aF())))
1839+ let io = scriptHash(this)
1840+ if ((in == im))
1841+ then (io != im)
18371842 else false
18381843 }
18391844 }
1840- else sigVerify(ig.bodyBytes, ig.proofs[0], ii)
1845+ else sigVerify(ih.bodyBytes, ih.proofs[0], ij)
18411846 }
18421847

github/deemru/w8io/3ef1775 
532.17 ms