tx · 12YoHs4V5AhvPUhVMvYMF9MsLY5isxGnkNDWB7D4ATze

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03000000 Waves

2023.09.25 13:55 [2770838] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "12YoHs4V5AhvPUhVMvYMF9MsLY5isxGnkNDWB7D4ATze", "fee": 3000000, "feeAssetId": null, "timestamp": 1695639365125, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "4xiPDis4yCv7tuuWXvVcnjUzfYZxGenwUWA4pLo6NfPtLTxmCDtZrgYZARnn4VNrUgN5TQEYfur6MfS4D2gygTYf" ], "script": "base64:BgLkLwgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIGTVVMVDEyIgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIQY29udHJhY3RGaWxlbmFtZSIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIg9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFGtleVVzZXJQb29sc0NvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM4NzgzOTQwIiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIhNrZXlQb29sU3dhcERpc2FibGVkIgskdDA0MjMyNDI5NCIXa2V5QWxsUG9vbHNTd2FwRGlzYWJsZWQiHWtleU1hcHBpbmdMcEFzc2V0VG9Qb29sQXNzZXRzIgpscEFzc2V0U3RyIh1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldCIYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyIhdpbnRlcm5hbFByaWNlQXNzZXRJZFN0ciINa2V5UG9vbFNwcmVhZCIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzIh9rZXlNYXBwaW5nUG9vbENvbnRyYWN0VG9MUEFzc2V0IiprZXlNYXBwaW5nUG9vbExQQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVd4RW1pc3Npb24iDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIIa2V5SW5GZWUiD2tleUluRmVlRGVmYXVsdCIKa2V5U3dhcEZlZSIJa2V5T3V0RmVlIhBrZXlPdXRGZWVEZWZhdWx0IhZrZXlTa2lwT3JkZXJWYWxpZGF0aW9uIhFrZXlDaGFuZ2VBbXBEZWxheSIRa2V5Q2hhbmdlQW1wRGVsdGEiEmtleUNoYW5nZUFtcFRhcmdldCIVa2V5U1dhdmVzUHJveHlBZGRyZXNzIhBrZXlTV2F2ZXNBc3NldElkIhdrZXlTdGFraW5nUHJvZml0QWRkcmVzcyIOa2V5TGVhc2VkUmF0aW8iB2Fzc2V0SWQiFWtleUxlYXNlZFJhdGlvRGVmYXVsdCIXa2V5TGVhc2VkUmF0aW9Ub2xlcmFuY2UiDWtleU1pbkJhbGFuY2UiFGtleU1pbkJhbGFuY2VEZWZhdWx0IgZrZXlBbXAiDWtleUFtcEhpc3RvcnkiDGhlaWdodEJsb2NrcyIUa2V5Q2hhbmdlQW1wTGFzdENhbGwiCmFtcEluaXRpYWwiD2dldFN0cmluZ09yRmFpbCIDa2V5IhBnZXRCb29sZWFuT3JGYWlsIgxnZXRJbnRPckZhaWwiDHBhcnNlQXNzZXRJZCIFaW5wdXQiHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiByRtYXRjaDAiAXMiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhRJZHhGYWN0b3J5Q2ZnRGFvRGFwcCIaSWR4RmFjdG9yeUNmZ01hcmtldGluZ0RhcHAiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIhZJZHhGYWN0b3J5Q2ZnQmlyZHNEYXBwIhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiDmdldFByaWNlQXNzZXRzIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCXRlc3RFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIQZGF0YUZhY3RvcnlDZmdWMyIOc3Rha2luZ0FkZHJlc3MiD2Jvb3N0aW5nQWRkcmVzcyILaWRvQ29udHJhY3QiDHRlYW1Db250cmFjdCIQZW1pc3Npb25Db250cmFjdCIMcmVzdENvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IgtkYW9Db250cmFjdCIRbWFya2V0aW5nQ29udHJhY3QiEmd3eFJld2FyZHNDb250cmFjdCINYmlyZHNDb250cmFjdCIOZGF0YUZhY3RvcnlDZmciC2RhdGFQb29sQ2ZnIgpwb29sU3RhdHVzIglscEFzc2V0SWQiDmFtb3VudEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhNhbW91bnRBc3NldERlY2ltYWxzIhJwcmljZUFzc2V0RGVjaW1hbHMiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiD2xwQXNzZXREZWNpbWFscyIIcG9vbFR5cGUiFWRhdGFNYXBwaW5nUG9vbEFzc2V0cyIWaW50ZXJuYWxBbW91bnRBc3NldFN0ciIVaW50ZXJuYWxQcmljZUFzc2V0U3RyIg1nZXRQb29sQ29uZmlnIgpwb29sQXNzZXRzIhpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZSIKYXNzZXRJZFN0ciILaW5jcmVtZW50b3IiD2ludGVybmFsQXNzZXRJZCIYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkIgZyZXN1bHQiEm5ld0ludGVybmFsQXNzZXRJZCIJbXVzdEFkbWluIghhZG1pblBLcyIJaXNNYW5hZ2VyIhZpbnRPckRlZmF1bHRPckZhbGxiYWNrIgprZXlEZWZhdWx0Ig12YWx1ZUZhbGxiYWNrIhJwb29sRXhpc3RzSW50ZXJuYWwiBGFtQXMiBHByQXMiA2NmZyIKY2ZnUmV2ZXJzZSIGZXhpc3RzIhxnZXRBc3NldHNEYXRhRnJvbVBvb2xBZGRyZXNzIg5nZXRQb29sQ3JlYXRvciINJHQwMTU5NjcxNjEwNCIRdXNlclBvb2xzQ29udHJhY3QiC3Bvb2xDcmVhdG9yIhFnZXRBZGRyZXNzQmFsYW5jZSINYWRkcmVzc1N0cmluZyINYXNzZXRJZFN0cmluZyIHYWRkcmVzcyILaXNQb29sRW1wdHkiDSR0MDE2Njc5MTY4MTYiDSR0MDE3MTMxMTc0MzUiAXIiByRtYXRjaDEiAnJkIgppc0xlYXNhYmxlIgtsZWFzZWRSYXRpbyIKbWluQmFsYW5jZSIBYiICYmQiDSR0MDE3NzAxMTc5MjUiDHByb3h5QWRkcmVzcyIMcHJveHlBc3NldElkIgxwcm94eVJhdGVNdWwiFHN0YWtpbmdQcm9maXRBZGRyZXNzIgZhc3NldDEiBmFzc2V0MiIJYXNzZXROdW0xIglhc3NldE51bTIiAmVlIgNyZXMiAmxwIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiDGFkbWluUHViS2V5cyILbHBBc3NldE5hbWUiDGxwQXNzZXREZXNjciIKcG9vbFdlaWdodCIEbG9nbyIXaW50ZXJuYWxBbW91bnRBc3NldERhdGEiFWludGVybmFsQW1vdW50QXNzZXRJZCIWaW50ZXJuYWxQcmljZUFzc2V0RGF0YSIUaW50ZXJuYWxQcmljZUFzc2V0SWQiFXBvb2xBY2NvdW50U2NyaXB0SGFzaCIcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaCIKcG9vbEV4aXN0cyIPcG9vbENvbmZpZ1ZhbHVlIhRhbW91bnRBc3NldHNEZWNpbWFscyITcHJpY2VBc3NldHNEZWNpbWFscyISbHBBc3NldElzc3VlQWN0aW9uIgxscEFzc2V0SWRTdHIiGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdCIYY3JlYXRlT3JVcGRhdGVMcEFzc2V0SW52IhJhZGRQb29sc0xwTGFiZWxJbnYiCnNldExvZ29JbnYiEGFkZEFzc2V0c0xpbmtJbnYiG2luY3JlYXNlQXNzZXRQb29sc051bWJlckludiIJbmV3U3RhdHVzIgpwb29sQ29uZmlnIgpscEFzc2V0RGNtIgxhbW91bnRUb0VtaXQiBmNhbGxlciIMb3JpZ2luQ2FsbGVyIhBscEFzc2V0UmVxdWVzdGVkIgdscEFzc2V0IgxhbW91bnRUb0J1cm4iB3BheW1lbnQiDXBheW1lbnRBbW91bnQiD2luQW1vdW50QXNzZXRJZCIabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmciBXNoYXJlIg1wb29sV2VpZ2h0S2V5Igxnd3hXZWlnaHRLZXkiCWd3eFdlaWdodCINcG9vbFdlaWdodE5ldyIRb25Nb2RpZnlXZWlnaHRJbnYiFWd3eFZpcnR1YWxQb29sQWN0aW9ucyIUcG9vbFdlaWdodEhpc3RvcnlLZXkiF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0Ihhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMiDmJ0Y1Bvb2xBZGRyZXNzIg5ldGhQb29sQWRkcmVzcyIRZXRoQnRjUG9vbEFkZHJlc3MiE3VzZGNVc2R0UG9vbEFkZHJlc3MiD2V0aEJ0Y1dlaWdodE5ldyIRdXNkY1VzZHRXZWlnaHROZXciD3dlaWdodERlY3JlbWVudCILc3Rha2luZ0RhcHAiDWd3eFJld2FyZERhcHAiDGJ0Y1dlaWdodEtFWSIMZXRoV2VpZ2h0S0VZIg9ldGhCdGNXZWlnaHRLRVkiEXVzZGNVc2R0V2VpZ2h0S0VZIglidGNXZWlnaHQiCWV0aFdlaWdodCIMYnRjV2VpZ2h0TmV3IgxldGhXZWlnaHROZXciD2J0Y0xwQXNzZXRJZFN0ciIPZXRoTHBBc3NldElkU3RyIhJldGhCdGNMcEFzc2V0SWRTdHIiFHVzZGNVc2R0THBBc3NldElkU3RyIhFvbk1vZGlmeVdlaWdodEJ0YyIRb25Nb2RpZnlXZWlnaHRFdGgiFG9uTW9kaWZ5V2VpZ2h0RXRoQnRjIhZvbk1vZGlmeVdlaWdodFVzZGNVc2R0IgloYXZlTGFiZWwiFGNoZWNrUHJpY2VBc3NldHNTaXplIgJjYiIDYWNjIgpwcmljZUFzc2V0IgdhY3Rpb25zIgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiBmN1ckFtcCIJbmV3QW1wUmF3IgZuZXdBbXAiCGxhc3RDYWxsIgR3YWl0IgZjaGVja3MiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIQcG9vbFN3YXBEaXNhYmxlZCIUYWxsUG9vbHNTd2FwRGlzYWJsZWQiA2ZlZSIOcG9vbEFkZHJlc3NTdHIiCWZlZU9wdGlvbiIFcGFydHMiB3Bvb2xGZWUiC3Byb3RvY29sRmVlIhBhbW91bnRBc3NldElkU3RyIg9wcmljZUFzc2V0SWRTdHIiG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbiIacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24iGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24iD2xwQXNzZXRJZE9wdGlvbiIIcG9vbEluZm8iBndlaWdodCILY2hlY2tXZWlnaHQiC2NoZWNrU3RhdHVzIg0kdDA0MTk0NjQyMDgzIg91c2VyUG9vbHNJbnZva2UiFHZvdGluZ0VtaXNzaW9uSW52b2tlIhFhc3NldHNTdG9yZUludm9rZSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5hAEAAWEACAABYgCAwtcvAAFjAICglKWNHQABZAASAAFlCQC2AgEAgICQu7rWrfANAAFmBQFiAAFnAg5HV1h2aXJ0dWFsUE9PTAABaAIIUE9PTFNfTFAAAWkAgIl6AAFqAgVXQVZFUwABawIPZmFjdG9yeV92Mi5yaWRlAAFsCQBoAgkAaAIAZADoBwDoBwABbQICX18AAW4CAAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAEAAXQAAgABdQADAAF2AAEAAXcAAgABeAADAAF5AAQAAXoABQABQQAGAAFCAAcAAUMACAABRAAJAAFFAAoAAUYACwABRwILV1hfRU1JU1NJT04AAUgJAMwIAgUBRwUDbmlsAQFJAQFKCQC5CQIJAMwIAgUBawkAzAgCAgI6IAkAzAgCBQFKBQNuaWwCAAEBSwEBSgkAAgEJAQFJAQUBSgEBTAACFyVzX19hbGxvd2VkTHBTY3JpcHRIYXNoAQFNAAIdJXNfX2FsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2gBAU4AAhAlc19fc3dhcENvbnRyYWN0AQFPAAIRJXNfX2ZhY3RvcnlDb25maWcBAVAAAhAlc19fbHBUb2tlbnNMaXN0AQFRAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBUgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBUwACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAVQAAg8lc19fbGVnYWN5UG9vbHMBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQFXAAIQJXNfX2FkbWluUHViS2V5cwEBWAACFyVzX19hc3NldHNTdG9yZUNvbnRyYWN0AQFZAAIaJXNfX3ZvdGluZ0VtaXNzaW9uQ29udHJhY3QBAVoAAhUlc19fdXNlclBvb2xzQ29udHJhY3QBAmFhAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAW0BAmFiAAIRJXNfX3ByaWNlRGVjaW1hbHMBAmFjAAIMJXNfX3NodXRkb3duAQJhZAACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQJhZQECYWYJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhZgECYWcCAmFmAmFoCQCsAgIJAKwCAgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAgJfXwkApAMBBQJhaAECYWkBAmFqCQCsAgICKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAKQDAQUCYWoBAmFrAQJhbAkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQJhbAECYW0CAmFuAmFvCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhbgICX18FAmFvAghfX2NvbmZpZwECYXABAmFxBAJhcgUCYXEEAmFuCAUCYXICXzEEAmFvCAUCYXICXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhbgkAzAgCCQCkAwEFAmFvCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAW0BAmFzAAkAuQkCCQDMCAICAiVzCQDMCAICGm9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkBQNuaWwFAW0BAmF0AQJhcQQCYXUFAmFxBAJhbggFAmF1Al8xBAJhbwgFAmF1Al8yCQC5CQIJAMwIAgIGJWQlZCVzCQDMCAIJAKQDAQUCYW4JAMwIAgkApAMBBQJhbwkAzAgCAgxzd2FwRGlzYWJsZWQFA25pbAUBbQECYXYACQC5CQIJAMwIAgICJXMJAMwIAgIMc3dhcERpc2FibGVkBQNuaWwFAW0BAmF3AQJheAkArAICCQCsAgICCCVzJXMlc19fBQJheAIYX19tYXBwaW5nc19fbHBBc3NldDJQb29sAQJheQICYXoCYUEJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwUCYXoCAl9fBQJhQQIeX19tYXBwaW5nc19fUG9vbEFzc2V0czJMcEFzc2V0AQJhQgECYWYJAKwCAgIOJXMlc19fc3ByZWFkX18FAmFmAQJhQwECYUQJAKwCAgkArAICAgglcyVzJXNfXwUCYUQCI19fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJQb29sQXNzZXRzAQJhRQICYXoCYUEJAKwCAgkArAICCQCsAgIJAKwCAgIKJWQlZCVzJXNfXwkApAMBBQJhegICX18JAKQDAQUCYUECI19fbWFwcGluZ3NfX3Bvb2xBc3NldHMyUG9vbENvbnRyYWN0AQJhRgECYUQJAKwCAgkArAICAgglcyVzJXNfXwUCYUQCIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJhRwECYXgJAKwCAgkArAICAgglcyVzJXNfXwUCYXgCIF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0AQJhSAICYUkCYUoJAKwCAgkArAICCQCsAgICFCVzJXMlc19fd3hFbWlzc2lvbl9fBQJhSQICX18FAmFKAQJhSwECYWYJAKwCAgINJXMlc19faW5GZWVfXwUCYWYBAmFMAAIQJXNfX2luRmVlRGVmYXVsdAECYU0BAmFmCQCsAgICDyVzJXNfX3N3YXBGZWVfXwUCYWYBAmFOAQJhZgkArAICAg4lcyVzX19vdXRGZWVfXwUCYWYBAmFPAAIRJXNfX291dEZlZURlZmF1bHQBAmFQAQJhZgkArAICAhslcyVzX19za2lwT3JkZXJWYWxpZGF0aW9uX18FAmFmAQJhUQECYWYJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsYXlfXwUCYWYBAmFSAQJhZgkArAICAhYlcyVzX19jaGFuZ2VBbXBEZWx0YV9fBQJhZgECYVMBAmFmCQCsAgICFyVzJXNfX2NoYW5nZUFtcFRhcmdldF9fBQJhZgECYVQAAhYlc19fc1dhdmVzUHJveHlBZGRyZXNzAQJhVQACESVzX19zV2F2ZXNBc3NldElkAQJhVgACGCVzX19zdGFraW5nUHJvZml0QWRkcmVzcwECYVcCAmFmAmFYCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICC2xlYXNlZFJhdGlvCQDMCAIFAmFmCQDMCAIFAmFYBQNuaWwFAW0BAmFZAQJhWAkAuQkCCQDMCAICBCVzJXMJAMwIAgISbGVhc2VkUmF0aW9EZWZhdWx0CQDMCAIFAmFYBQNuaWwFAW0BAmFaAgJhZgJhWAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhRsZWFzZWRSYXRpb1RvbGVyYW5jZQkAzAgCBQJhZgkAzAgCBQJhWAUDbmlsBQFtAQJiYQICYWYCYVgJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIKbWluQmFsYW5jZQkAzAgCBQJhZgkAzAgCBQJhWAUDbmlsBQFtAQJiYgECYVgJALkJAgkAzAgCAgQlcyVzCQDMCAICEW1pbkJhbGFuY2VEZWZhdWx0CQDMCAIFAmFYBQNuaWwFAW0BAmJjAQJhZgkAuQkCCQDMCAICBCVzJXMJAMwIAgIDYW1wCQDMCAIFAmFmBQNuaWwFAW0BAmJkAgJhZgJiZQkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgNhbXAJAMwIAgUCYWYJAMwIAgkApAMBBQJiZQUDbmlsBQFtAQJiZgECYWYJALkJAgkAzAgCAgQlcyVzCQDMCAICEWNoYW5nZUFtcExhc3RDYWxsCQDMCAIFAmFmBQNuaWwFAW0AAmJnADIBAmJoAQJiaQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmJpCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYmkBAmJqAQJiaQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFBHRoaXMFAmJpCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYmkBAmJrAQJiaQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAmJpCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYmkBAmJsAQJibQMJAAACBQJibQUBagUEdW5pdAkA2QQBBQJibQECYm4ABAJibwkAoggBCQEBVgADCQABAgUCYm8CBlN0cmluZwQCYnAFAmJvCQERQGV4dHJOYXRpdmUoMTA2MikBBQJicAUEdGhpcwACYnEAAQACYnIAAgACYnMAAwACYnQABAACYnUABQACYnYABgACYncABwACYngACAACYnkACQACYnoACgACYkEACwECYkIBAmJDCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJDBQJicgECYkQBAmJDCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJDBQJidQECYkUBAmJDCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJDBQJicQECYkYBAmJDCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJDBQJiegECYkcABAJibwkAoggBCQECYWEAAwkAAQIFAmJvAgZTdHJpbmcEAmJwBQJibwMJAAACCQCxAgEFAmJwAAAFA25pbAkAvAkCBQJicAUBbQUDbmlsAQJiSAAEAmJJCQECYm4ABAJibwkAnQgCBQJiSQkBAVUAAwkAAQIFAmJvAgZTdHJpbmcEAmJwBQJibwkA2QQBBQJicAMJAAECBQJibwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAAJiSgkBAUsBAhFQZXJtaXNzaW9uIGRlbmllZAACYksJAQFLAQIPVGVzdCBlcnJvciBoZXJlAQJiTAECYk0DCQAAAggFAmJNBmNhbGxlcgUEdGhpcwYFAmJKAQJiTgECYk0EAmJvCQECYkgAAwkAAQIFAmJvAgpCeXRlVmVjdG9yBAJiTwUCYm8DCQAAAggFAmJND2NhbGxlclB1YmxpY0tleQUCYk8GBQJiSgMJAAECBQJibwIEVW5pdAkBAmJMAQUCYk0JAAIBAgtNYXRjaCBlcnJvcgECYlALAmJRAmJSAmJTAmJUAmJVAmJWAmJXAmJYAmJZAmJaAmNhCQC5CQIJAMwIAgIWJXMlcyVzJXMlcyVzJXMlcyVzJXMlcwkAzAgCBQJiUQkAzAgCBQJiUgkAzAgCBQJiUwkAzAgCBQJiVAkAzAgCBQJiVQkAzAgCBQJiVgkAzAgCBQJiVwkAzAgCBQJiWAkAzAgCBQJiWQkAzAgCBQJiWgkAzAgCBQJjYQUDbmlsBQFtAQJjYgcCYlECYlICYlMCYlQCYlUCYlYCYlcJALkJAgkAzAgCAgwlcyVzJXMlcyVzJXMJAMwIAgUCYlEJAMwIAgUCYlIJAMwIAgUCYlMJAMwIAgUCYlQJAMwIAgUCYlUJAMwIAgUCYlYJAMwIAgUCYlcFA25pbAUBbQECY2MLAmFmAmNkAmNlAmNmAmNnAmNoAmNpAmNqAmNrAmNsAmNtCQC5CQIJAMwIAgIWJXMlZCVzJXMlcyVkJWQlZCVkJWQlcwkAzAgCBQJhZgkAzAgCBQJjZAkAzAgCBQJjZQkAzAgCBQJjZgkAzAgCBQJjZwkAzAgCCQCkAwEFAmNoCQDMCAIJAKQDAQUCY2kJAMwIAgkApAMBBQJjagkAzAgCCQCkAwEFAmNrCQDMCAIJAKQDAQUCY2wJAMwIAgUCY20FA25pbAUBbQECY24CAmNvAmNwCQC5CQIJAMwIAgIEJWQlZAkAzAgCCQCkAwEFAmNvCQDMCAIJAKQDAQUCY3AFA25pbAUBbQECY3EBAmFmBAJjcgkAtQkCCQECYmgBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3IAAQQCYW8JAJEDAgUCY3IAAgkAtQkCCQECYmgBCQECYW0CBQJhbgUCYW8FAW0BAmNzAgJjdAJjdQQCY3YJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFrAQUCY3QAAAQCY3cJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFkAAAABAJjeAMJAAACBQJjdgAABAJjeQkAZAIFAmN3BQJjdQkAlQoDBQJjeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFkAAUCY3kJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhawEFAmN0BQJjeQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWkBBQJjeQUCY3QFA25pbAYJAJUKAwUCY3YFA25pbAcFAmN4AQJjegECYk0EAmNBCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVcABQFuBQFtAwkBD2NvbnRhaW5zRWxlbWVudAIFAmNBCQDYBAEIBQJiTQ9jYWxsZXJQdWJsaWNLZXkGBAJjQgkBAmJOAQUCYk0DCQAAAgUCY0IFAmNCBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY0MDAmJpAmNEAmNFCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmJpCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmNEBQJjRQECY0YCAmFJAmFKBAJhbgkAnwgBCQECYWsBBQJhSQQCYW8JAJ8IAQkBAmFrAQUCYUoDAwkAAAIFAmFuBQR1bml0BgkAAAIFAmFvBQR1bml0BwQCY0cJAKQDAQkBBXZhbHVlAQUCYW4EAmNICQCkAwEJAQV2YWx1ZQEFAmFvBAJjSQkAoggBCQECYW0CBQJjRwUCY0gEAmNKCQCiCAEJAQJhbQIFAmNIBQJjRwQCY0sDCQECIT0CBQJjSQUEdW5pdAYJAQIhPQIFAmNKBQR1bml0BQJjSwECY0wBAmFEBAJjcgQCYm8JAKIIAQkBAmFDAQUCYUQDCQABAgUCYm8CBlN0cmluZwQCYnAFAmJvCQC1CQIFAmJwBQFtCQEBSwEJALkJAgkAzAgCBQJhRAkAzAgCAhFwb29sIGlzIG5vdCBmb3VuZAUDbmlsAgEgBAJhbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNyAAEEAmFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY3IAAgQCYUkJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFuBAJhSgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFpAQUCYW8EAmNlCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYUYBBQJhRAkAlwoFBQJhSQUCYUoFAmNlBQJhbgUCYW8BAmNNAQJhRAQCY04JAQJjTAEFAmFEBAJhSQgFAmNOAl8xBAJhSggFAmNOAl8yBAJjZQgFAmNOAl8zBAJhbggFAmNOAl80BAJhbwgFAmNOAl81BAJjTwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJjUAkA/AcEBQJjTwIWZ2V0UG9vbENyZWF0b3JSRUFET05MWQkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwFAmNQAQJjUQICY1ICY1MEAmNUCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjUgMJAAACBQJjUwIFV0FWRVMICQDvBwEFAmNUB3JlZ3VsYXIEAmFYCQDZBAEFAmNTCQDwBwIFAmNUBQJhWAECY1UBAmFEBAJjVgkBAmNMAQUCYUQEAmFJCAUCY1YCXzEEAmFKCAUCY1YCXzIEAmNlCAUCY1YCXzMEAmFuCAUCY1YCXzQEAmFvCAUCY1YCXzUDCQAAAgkBAmNRAgUCYUQFAmFJAAAJAAACCQECY1ECBQJhRAUCYUoAAAckAmJNARdnZXRTd2FwQ29udHJhY3RSRUFET05MWQAJAJQKAgUDbmlsCQECYmgBCQEBTgACYk0BGmdldFBvb2xMZWFzZUNvbmZpZ1JFQURPTkxZAgJhZgJhWAQCY1cEAmJvCQCaCAIFBHRoaXMJAQJhVwIFAmFmBQJhWAMJAAECBQJibwIDSW50BAJjWAUCYm8JAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJjWAUDbmlsBQNuaWwEAmNZCQCaCAIFBHRoaXMJAQJhWQEFAmFYAwkAAQIFAmNZAgNJbnQEAmNaBQJjWQkAlAoCBgkAlwMBCQDMCAIAZAkAzAgCCQCWAwEJAMwIAgAACQDMCAIFAmNaBQNuaWwFA25pbAkAlAoCBwAABAJkYQgFAmNXAl8xBAJkYggFAmNXAl8yBAJkYwQCYm8JAJoIAgUEdGhpcwkBAmJhAgUCYWYFAmFYAwkAAQIFAmJvAgNJbnQEAmRkBQJibwkAlgMBCQDMCAIAAAkAzAgCBQJkZAUDbmlsBAJjWQkAmggCBQR0aGlzCQECYmIBBQJhWAMJAAECBQJjWQIDSW50BAJkZQUCY1kJAJYDAQkAzAgCAAAJAMwIAgUCZGUFA25pbAAABAJkZgMJAAACBQJhWAIFV0FWRVMJAJUKAwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVQAAgAJAJ0IAgUEdGhpcwkBC3ZhbHVlT3JFbHNlAgkBAmFVAAIABQFjCQCVCgMCAAIAAAAEAmRnCAUCZGYCXzEEAmRoCAUCZGYCXzIEAmRpCAUCZGYCXzMEAmRqCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhVgACAAkAlAoCBQNuaWwJAJkKBwUCZGEFAmRiBQJkYwUCZGcFAmRoBQJkaQUCZGoCYk0BIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgJkawJkbAMDCQAAAgUCZGsCLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUCZGwCBVdBVkVTBwkAlAoCBQNuaWwFBHVuaXQEAmRtCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhawEFAmRrBAJkbgkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJkbAQCZG8JAJ0IAgUEdGhpcwkBAmF5AgkApAMBBQJkbQkApAMBBQJkbgQCZHADCQAAAgUCZG8FBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCZG8ABAkAlAoCBQNuaWwFAmRwAmJNASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmRxCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYUcBBQJkcQIAAmJNAQtjb25zdHJ1Y3RvcggCZHICZHMCYlMCYlQCYlUCYlYCZHQCZHUEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECY2IHBQJkcgUCZHMFAmJTBQJiVAUCYlUFAmJWBQJkdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZHUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiTQENY29uc3RydWN0b3JWMgECZHcEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYEAmR4CQCnCAEJANkEAQUCZHcDCQAAAgUCZHgFAmR4CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZHcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiTQENY29uc3RydWN0b3JWMwQCYlgCYlkCYloCY2EEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYEAmJDCQC1CQIJAQJiaAEJAQFPAAUBbQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAJAQJiUAsJAJEDAgUCYkMAAQkAkQMCBQJiQwACCQCRAwIFAmJDAAMJAJEDAgUCYkMABAkAkQMCBQJiQwAFCQCRAwIFAmJDAAYJAJEDAgUCYkMABwUCYlgFAmJZBQJiWgUCY2EFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiTQENY29uc3RydWN0b3JWNAICZHkCZHoEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJkeQkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAJALkJAgUCZHoFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiTQENY29uc3RydWN0b3JWNQECZEEEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVgABQJkQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJNAQ1jb25zdHJ1Y3RvclY2AgJkQgJkQwQCZEQJAMwIAgkBAmJOAQUCYk0JAMwIAgMJAQIhPQIJAKYIAQUCZEIFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCZEQFAmRECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUCZEIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAkAuQkCBQJkQwUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJNAQlzZXRBZG1pbnMBAmRFBAJkdgkBAmJOAQUCYk0DCQAAAgUCZHYFAmR2CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAAkAuQkCBQJkRQUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJNAQ9hY3RpdmF0ZU5ld1Bvb2wIAmFmAmNmAmNnAmRGAmRHAmRIAmNtAmRJBAJkdgkBAmN6AQUCYk0DCQAAAgUCZHYFAmR2AwkBCWlzRGVmaW5lZAEJAKIIAQkBAmFDAQUCYWYJAQFLAQkArAICCQCsAgICDVBvb2wgYWRkcmVzcyAFAmFmAhQgYWxyZWFkeSByZWdpc3RlcmVkLgQCZEoJAQJjcwIFAmNmAAEEAmRLCAUCZEoCXzEEAmRMCQECY3MCBQJjZwMIBQJkSgJfMwACAAEEAmRNCAUCZEwCXzEEAmROCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAPEHAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYJAKwCAgIpTm8gc2NyaXB0IGhhcyBiZWVuIGZvdW5kIG9uIHBvb2wgYWNjb3VudCAFAmFmBAJkTwkBEUBleHRyTmF0aXZlKDEwNTcpAQkBAVEABAJkUAkBAmNGAgUCY2YFAmNnAwUCZFAJAQFLAQkArAICCQCsAgIJAKwCAgkArAICAgVQb29sIAUCY2YCAS8FAmNnAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAJkUQkBBXZhbHVlAQkAnQgCBQR0aGlzCQECYW0CCQCkAwEFAmRLCQCkAwEFAmRNBAJkUgMJAAACBQJjZgIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJjZghkZWNpbWFscwAAAAAFBERPV04EAmRTAwkAAAIFAmNnAgVXQVZFUwUBbAkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmNnCGRlY2ltYWxzAAAAAAUERE9XTgQCZFQJAMIIBQUCZEYFAmRHAAEACAYEAmNlCQC4CAEFAmRUBAJkVQkA2AQBBQJjZQQCZFYJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYCCGFjdGl2YXRlCQDMCAIFAmNmCQDMCAIFAmNnBQNuaWwFA25pbAMJAAACBQJkVgUCZFYDCQECIT0CBQJkVgIHc3VjY2VzcwkBAUsBAiNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgQCZEEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJiaAEJAQFYAAQCZFcJAPwHBAUCZEECDmNyZWF0ZU9yVXBkYXRlCQDMCAIFAmRVCQDMCAIFAmRGCQDMCAIHBQNuaWwFA25pbAMJAAACBQJkVwUCZFcEAmRYCQD8BwQFAmRBAghhZGRMYWJlbAkAzAgCBQJkVQkAzAgCBQFoBQNuaWwFA25pbAMJAAACBQJkWAUCZFgEAmRZCQD8BwQFAmRBAgdzZXRMb2dvCQDMCAIFAmRVCQDMCAIFAmRJBQNuaWwFA25pbAMJAAACBQJkWQUCZFkEAmRaCQD8BwQFAmRBAg1hZGRBc3NldHNMaW5rCQDMCAIFAmNmCQDMCAIFAmNnCQDMCAIFAmRVBQNuaWwFA25pbAMJAAACBQJkWgUCZFoEAmVhCQD8BwQFAmRBAhhpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXIJAMwIAgUCY2YFA25pbAUDbmlsAwkAAAIFAmVhBQJlYQkAlAoCCQDOCAIJAM4IAggFAmRKAl8yCAUCZEwCXzIJAMwIAgUCZFQJAMwIAgkBBEJ1cm4CBQJjZQABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQIJAKQDAQUCZEsJAKQDAQUCZE0JAQJjYwsFAmFmCQCkAwEFAW8FAmRVBQJjZgUCY2cFAmRSBQJkUwUCZEsFAmRNBQFsBQJjbQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXcBBQJkVQkBAmNuAgUCZEsFAmRNCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJheQIJAKQDAQUCZEsJAKQDAQUCZE0JAKwCAgIEJXNfXwUCZFUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFDAQUCYWYJAQJjbgIFAmRLBQJkTQkAzAgCCQELU3RyaW5nRW50cnkCCQECYUUCBQJkSwUCZE0FAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhRwEFAmRVBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUYBBQJhZgUCZFUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZQEFAmFmBQJkSAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFCAQUCYWYFAWkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJjAQUCYWYJAKQDAQUCYmcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJkAgUCYWYFBmhlaWdodAkApAMBBQJiZwUDbmlsBQJkVQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiTQEKbWFuYWdlUG9vbAICYWYCZWIEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYEAmVjCQECY3EBBQJhZgQCY2QJAJEDAgUCZWMFAXcEAmRVCQCRAwIFAmVjBQF4BAJjZgkAkQMCBQJlYwUBeQQCY2cJAJEDAgUCZWMFAXoEAmRSCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWMFAUEEAmRTCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWMFAUIEAmRLCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWMFAUMEAmRNCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWMFAUQEAmVkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWMFAUUEAmNtCQCRAwIFAmVjBQFGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQIJAKQDAQUCZEsJAKQDAQUCZE0JAQJjYwsFAmFmCQCkAwEFAmViBQJkVQUCY2YFAmNnBQJkUgUCZFMFAmRLBQJkTQUCZWQFAmNtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYk0BBGVtaXQBAmVlBAJlZggFAmJNBmNhbGxlcgQCZWcIBQJiTQxvcmlnaW5DYWxsZXIEAmVoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmFGAQkApQgBBQJlZgIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4EAmVpCQDZBAEFAmVoBAJkegkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFUAAUBbgUBbQQCZHkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEBUwACKExlZ2FjeSBmYWN0b3J5IGNvbnRyYWN0IGRvZXMgbm90IGV4aXN0cy4DCQBnAgAABQJlZQUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFAmR6CQClCAEFAmVmCQCUCgIFA25pbAUCZHkJAJQKAgkAzAgCCQEHUmVpc3N1ZQMFAmVpBQJlZQYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmJNBmNhbGxlcgUCZWUFAmVpBQNuaWwCB3N1Y2Nlc3MCYk0BBGJ1cm4BAmVqBAJlZggFAmJNBmNhbGxlcgQCZWcIBQJiTQxvcmlnaW5DYWxsZXIEAmVrCQEFdmFsdWUBCQCRAwIIBQJiTQhwYXltZW50cwAABAJlbAkBBXZhbHVlAQgFAmVrBmFtb3VudAQCZW0JANgEAQkBBXZhbHVlAQgFAmVrB2Fzc2V0SWQEAmVuCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAmFGAQkApQgBBQJlZgIdSW52YWxpZCBMUCBhZGRyZXNzIGNhbGxlZCBtZS4DCQECIT0CBQJlbQUCZW4JAQFLAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAiE9AgUCZWoFAmVsCQEBSwECFkludmFsaWQgYW1vdW50IHBhc3NlZC4EAmVpCQDZBAEFAmVuCQCUCgIJAMwIAgkBBEJ1cm4CBQJlaQUCZWoFA25pbAIHc3VjY2VzcwJiTQEMbW9kaWZ5V2VpZ2h0AgJjZQJlbwQCZHYDCQAAAgkA2AQBCAgFAmJNBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBWQACAAYJAQJiTgEFAmJNAwkAAAIFAmR2BQJkdgQCYUQJAQJiaAEJAQJhRwEFAmNlBAJlcAkBAmFlAQUCYUQEAmVxCQECYWUBBQFnBAJlcgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJlcQAABAJkSAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQJlcAAABAJlcwUCZW8EAmJDCQC1CQIJAQJiaAEJAQFPAAUBbQQCZHIJAQJiRQEFAmJDBAJldAkA/AcEBQJkcgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCY2UJAMwIAgUCYUQFA25pbAUDbmlsAwkAAAIFAmV0BQJldAQCZXUDCQAAAgUCZXIAAAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlcQAABQNuaWwEAmV2CQECYWcCBQJhRAAABAJldwkAnwgBBQJldgQCZXgDCQAAAgUCZXcFBHVuaXQFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBBQJldgUDbmlsCQDOCAIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXAFAmVzBQNuaWwFAmV1BQJleAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiTQENbW9kaWZ5V2VpZ2h0cwQCZXkCZXoCZUECZUIEAmR2CQECYk4BBQJiTQMJAAACBQJkdgUCZHYEAmVDCQBpAgkAaAIABQUBZgBkBAJlRAkAaQIJAGgCAAUFAWYAZAQCZUUJAGkCCQBoAgAFBQFmAGQEAmJDCQC1CQIJAQJiaAEJAQFPAAUBbQQCZUYJAQJiRQEFAmJDBAJlRwkBAmJGAQUCYkMEAmVICQECYWUBBQJleQQCZUkJAQJhZQEFAmV6BAJlSgkBAmFlAQUCZUEEAmVLCQECYWUBBQJlQgQCZUwJAQJiawEFAmVIBAJlTQkBAmJrAQUCZUkEAmVOCQBlAgUCZUwFAmVFBAJlTwkAZQIFAmVNBQJlRQMJAGcCAAAFAmVOCQEBSwEJAKwCAgIWaW52YWxpZCBidGNXZWlnaHROZXc6IAkApAMBBQJlTgMJAGcCAAAFAmVPCQEBSwEJAKwCAgIWaW52YWxpZCBldGhXZWlnaHROZXc6IAkApAMBBQJlTwQCZVAJAQJiaAEJAQJhRgEFAmV5BAJlUQkBAmJoAQkBAmFGAQUCZXoEAmVSCQECYmgBCQECYUYBBQJlQQQCZVMJAQJiaAEJAQJhRgEFAmVCBAJlVAkA/AcEBQJlRgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZVAJAMwIAgUCZXkFA25pbAUDbmlsAwkAAAIFAmVUBQJlVAQCZVUJAPwHBAUCZUYCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVRCQDMCAIFAmV6BQNuaWwFA25pbAMJAAACBQJlVQUCZVUEAmVWCQD8BwQFAmVGAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlUgkAzAgCBQJlQQUDbmlsBQNuaWwDCQAAAgUCZVYFAmVWBAJlVwkA/AcEBQJlRgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZVMJAMwIAgUCZUIFA25pbAUDbmlsAwkAAAIFAmVXBQJlVwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZUgFAmVOCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlSQUCZU8JAMwIAgkBDEludGVnZXJFbnRyeQIFAmVKBQJlQwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZUsFAmVECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJleQAABQJlTAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZXoAAAUCZU0JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVBAAAFAmVDCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlQgAABQJlRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJNARhjaGVja1d4RW1pc3Npb25Qb29sTGFiZWwCAmFJAmFKBAJlWAQCYm8JAKAIAQkBAmFIAgUCYUkFAmFKAwkAAQIFAmJvAgdCb29sZWFuBAJkZAUCYm8FAmRkBwkAlAoCBQNuaWwFAmVYAmJNARZzZXRXeEVtaXNzaW9uUG9vbExhYmVsAgJhSQJhSgQCZHYJAQJjegEFAmJNAwkAAAIFAmR2BQJkdgkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQECYUgCBQJhSQUCYUoGBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYk0BGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwCAmFJAmFKBAJkdgMJAAACCAUCYk0GY2FsbGVyBQR0aGlzBgkBAmN6AQUCYk0DCQAAAgUCZHYFAmR2CQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFIAgUCYUkFAmFKBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYk0BEm9uVmVyaWZpY2F0aW9uTG9zcwECYVgEAmR2AwkAAAIJANgEAQgIBQJiTQZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVgAAgAGCQECYk4BBQJiTQMJAAACBQJkdgUCZHYEAmRDCQECYkcABAJlWQMJAGYCCQCQAwEFAmRDAAAGCQEBSwECFGludmFsaWQgcHJpY2UgYXNzZXRzAwkAAAIFAmVZBQJlWQoBAmVaAgJmYQJmYgQCY1gJAPwHBAUEdGhpcwIZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQJhWAkAzAgCBQJmYgUDbmlsBQNuaWwDCQAAAgUCY1gFAmNYBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJmYwoAAmZkBQJkQwoAAmZlCQCQAwEFAmZkCgACZmYFBHVuaXQKAQJmZwICZmgCZmkDCQBnAgUCZmkFAmZlBQJmaAkBAmVaAgUCZmgJAJEDAgUCZmQFAmZpCgECZmoCAmZoAmZpAwkAZwIFAmZpBQJmZQUCZmgJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMwkBAmZqAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgkBAmZnAgUCZmYAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAwkAAAIFAmZjBQJmYwkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYk0BCWNoYW5nZUFtcAECYWYEAmZrCQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYVEBBQJhZgQCZmwJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhUgEFAmFmBAJmbQkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFTAQUCYWYEAmZuCQENcGFyc2VJbnRWYWx1ZQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJiYwEFAmFmBAJmbwkAZAIFAmZuBQJmbAQCZnADCQBmAgAABQJmbAMJAGYCBQJmbQUCZm8FAmZtBQJmbwMJAGYCBQJmbwUCZm0FAmZtBQJmbwQCZnEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJmAQUCYWYAAAQCZnIJAGQCBQJmcQUCZmsEAmZzCQDMCAIDCQBmAgUGaGVpZ2h0BQJmcgYJAQFLAQIXdHJ5IGFnYWluIGluIGZldyBibG9ja3MJAMwIAgMJAQIhPQIFAmZuBQJmcAYJAQFLAQIWYWxyZWFkeSByZWFjaGVkIHRhcmdldAUDbmlsAwkAAAIFAmZzBQJmcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJmAQUCYWYFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmMBBQJhZgkApAMBBQJmcAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmQCBQJhZgUGaGVpZ2h0CQCkAwEFAmZwBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYk0BKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBAmFmBAJlYwkBAmNxAQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlYwUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVjBQFEBAJmdAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXABBQJhcQcEAmZ1CQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcwAHCQCUCgIFA25pbAMFAmZ1BgUCZnQCYk0BGmlzUG9vbFN3YXBEaXNhYmxlZFJFQURPTkxZAQJhZgQCZWMJAQJjcQEFAmFmBAJhcQkAlAoCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWMFAUMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlYwUBRAQCZnYJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmF0AQUCYXEHBAJmdwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXYABwkAlAoCBQNuaWwDBQJmdwYFAmZ2AmJNARBnZXRJbkZlZVJFQURPTkxZAQJhZgQCZngJAQJjQwMJAQJhSwEFAmFmCQECYUwAAAAJAJQKAgUDbmlsBQJmeAJiTQERZ2V0T3V0RmVlUkVBRE9OTFkBAmFmBAJmeAkBAmNDAwkBAmFOAQUCYWYJAQJhTwAJAGsDAAoFAWIAkE4JAJQKAgUDbmlsBQJmeAJiTQESZ2V0U3dhcEZlZVJFQURPTkxZAQJmeQQCZnoEAmJvCQCdCAIFBHRoaXMJAQJhTQEFAmZ5AwkAAQIFAmJvAgZTdHJpbmcEAmJwBQJibwQCZkEJALUJAgUCYnAFAW0EAmZCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZkEAAQQCZkMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJmQQACCQCUCgIFAmZCBQJmQwMJAAECBQJibwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yCQCUCgIFA25pbAUCZnoCYk0BEHBvb2xJbmZvUkVBRE9OTFkCAmZEAmZFBAJmRgkAmggCBQR0aGlzCQECYWsBBQJmRAQCZkcJAJoIAgUEdGhpcwkBAmFrAQUCZkUEAmZICQCdCAIFBHRoaXMJAQJhRQIJAQV2YWx1ZQEFAmZGCQEFdmFsdWUBBQJmRwQCZkkJAJ0IAgUEdGhpcwkBAmFGAQkBBXZhbHVlAQUCZkgEAmRQAwMJAQlpc0RlZmluZWQBBQJmRgkBCWlzRGVmaW5lZAEFAmZHBwkBCWlzRGVmaW5lZAEFAmZIBwQCZkoDBQJkUAkAlAoCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEFdmFsdWUBBQJmSAkBAmJsAQkBBXZhbHVlAQUCZkkFBHVuaXQJAJQKAgUDbmlsBQJmSgJiTQEVZ2V0UG9vbFN0YXR1c1JFQURPTkxZAQJhZgQCY3IJALUJAgkBAmJoAQkBAmFDAQUCYWYFAW0EAmFuCQCRAwIFAmNyAAEEAmFvCQCRAwIFAmNyAAIEAmNJCQC1CQIJAQJiaAEJAQJhbQIFAmFuBQJhbwUBbQkAlAoCBQNuaWwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjSQUBdwJiTQEVZ2V0UG9vbENvbmZpZ1JFQURPTkxZAQJhZgQCY3IJALUJAgkBAmJoAQkBAmFDAQUCYWYFAW0EAmFuCQCRAwIFAmNyAAEEAmFvCQCRAwIFAmNyAAIEAmNJCQC1CQIJAQJiaAEJAQJhbQIFAmFuBQJhbwUBbQkAlAoCBQNuaWwFAmNJAmJNASBnZXRQb29sQ29uZmlnQnlMcEFzc2V0SWRSRUFET05MWQECZFUEAmNyCQC1CQIJAQJiaAEJAQJhdwEFAmRVBQFtBAJhbgkAkQMCBQJjcgABBAJhbwkAkQMCBQJjcgACBAJjSQkAtQkCCQECYmgBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsBQJjSQJiTQEScG9vbEV4aXN0c1JFQURPTkxZAgJhSQJhSgkAlAoCBQNuaWwJAQJjRgIFAmFJBQJhSgJiTQEbc2tpcE9yZGVyVmFsaWRhdGlvblJFQURPTkxZAQJhZgkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFQAQUCYWYHAmJNARpnZXRDaGFuZ2VBbXBDb25maWdSRUFET05MWQECYWYEAmZrCQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYVEBBQJhZgQCZmwJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhUgEFAmFmBAJmbQkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFTAQUCYWYJAJQKAgUDbmlsCQDMCAIFAmZrCQDMCAIFAmZsCQDMCAIFAmZtBQNuaWwCYk0BFWdldFBvb2xXZWlnaHRSRUFET05MWQECY2UEAmFmCQECYmgBCQECYUcBBQJjZQQCZksJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmFlAQUCYWYAAAkAlAoCBQNuaWwFAmZLAmJNAQpkZWxldGVQb29sAQJhRAQCZWMJAQJjcQEFAmFEBAJkdgMJAAACCQClCAEIBQJiTQZjYWxsZXIJAQJjTQEFAmFEAwkBAmNVAQUCYUQGCQEBSwECEVBvb2wgaXMgbm90IGVtcHR5CQECYk4BBQJiTQMJAAACBQJkdgUCZHYEAmZMAwkAAAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmFlAQUCYUQAAAAABgkBAUsBAhdQb29sIHdlaWdodCBpcyBub3QgWmVybwMJAAACBQJmTAUCZkwEAmZNAwkAAAIJAJEDAgUCZWMFAXcJAKQDAQUBcgYJAQFLAQIZUG9vbCBtdXN0IGJlIFNIVVRET1dOICg0KQMJAAACBQJmTQUCZk0EAmZOCQECY0wBBQJhRAQCYUkIBQJmTgJfMQQCYUoIBQJmTgJfMgQCY2UIBQJmTgJfMwQCYW4IBQJmTgJfNAQCYW8IBQJmTgJfNQQCY08JARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCZk8JAPwHBAUCY08CCmRlbGV0ZVBvb2wJAMwIAgUCYUkJAMwIAgUCYUoFA25pbAUDbmlsAwkAAAIFAmZPBQJmTwQCZEIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFZAAQCZlAJAPwHBAUCZEICCmRlbGV0ZVBvb2wJAMwIAgUCYUkJAMwIAgUCYUoFA25pbAUDbmlsAwkAAAIFAmZQBQJmUAQCZEEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFYAAQCZlEJAPwHBAUCZEECCmRlbGV0ZVBvb2wJAMwIAgUCYUkJAMwIAgUCYUoFA25pbAUDbmlsAwkAAAIFAmZRBQJmUQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUYBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUMBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYXkCCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFuBQJhbwkAzAgCCQELRGVsZXRlRW50cnkBCQECYW0CCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdwEFAmNlCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRwEFAmNlCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSAIFAmFJBQJhSgkAzAgCCQELRGVsZXRlRW50cnkBCQECYWUBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUIBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYUsBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYU4BBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYVABBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYVEBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYVIBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYVMBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmMBBQJhRAkAzAgCCQELRGVsZXRlRW50cnkBCQECYmYBBQJhRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmUgECZlMABAJmVAQCYm8JAQJiSAADCQABAgUCYm8CCkJ5dGVWZWN0b3IEAmJPBQJibwUCYk8DCQABAgUCYm8CBFVuaXQIBQJmUg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZlIJYm9keUJ5dGVzCQCRAwIIBQJmUgZwcm9vZnMAAAUCZlT+AC9o", "height": 2770838, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2UqTRZfzvSRD7545Q6ZoKmvc7sMehGZHXFGB2mS7Qa65 Next: FaxQ3DWJoup7joT5vjjifGE59B5V91oLX2BwswLiEhjV Diff:
OldNewDifferences
244244 func bb (aX) = makeString(["%s%s", "minBalanceDefault", aX], m)
245245
246246
247-func bc (bd) = valueOrErrorMessage(getString(this, bd), ("No data for this.key=" + bd))
247+func bc (af) = makeString(["%s%s", "amp", af], m)
248248
249249
250-func be (bd) = valueOrErrorMessage(getBoolean(this, bd), ("No data for this.key=" + bd))
250+func bd (af,be) = makeString(["%s%s%d", "amp", af, toString(be)], m)
251251
252252
253-func bf (bd) = valueOrErrorMessage(getInteger(this, bd), ("No data for this.key=" + bd))
253+func bf (af) = makeString(["%s%s", "changeAmpLastCall", af], m)
254254
255255
256-func bg (bh) = if ((bh == j))
257- then unit
258- else fromBase58String(bh)
256+let bg = 50
257+
258+func bh (bi) = valueOrErrorMessage(getString(this, bi), ("No data for this.key=" + bi))
259259
260260
261-func bi () = {
262- let bj = getString(V())
263- if ($isInstanceOf(bj, "String"))
261+func bj (bi) = valueOrErrorMessage(getBoolean(this, bi), ("No data for this.key=" + bi))
262+
263+
264+func bk (bi) = valueOrErrorMessage(getInteger(this, bi), ("No data for this.key=" + bi))
265+
266+
267+func bl (bm) = if ((bm == j))
268+ then unit
269+ else fromBase58String(bm)
270+
271+
272+func bn () = {
273+ let bo = getString(V())
274+ if ($isInstanceOf(bo, "String"))
264275 then {
265- let bk = bj
266- addressFromStringValue(bk)
276+ let bp = bo
277+ addressFromStringValue(bp)
267278 }
268279 else this
269280 }
270281
271282
272-let bl = 1
283+let bq = 1
273284
274-let bm = 2
285+let br = 2
275286
276-let bn = 3
287+let bs = 3
277288
278-let bo = 4
289+let bt = 4
279290
280-let bp = 5
291+let bu = 5
281292
282-let bq = 6
293+let bv = 6
283294
284-let br = 7
295+let bw = 7
285296
286-let bs = 8
297+let bx = 8
287298
288-let bt = 9
299+let by = 9
289300
290-let bu = 10
301+let bz = 10
291302
292-let bv = 11
303+let bA = 11
293304
294-func bw (bx) = addressFromStringValue(bx[bm])
305+func bB (bC) = addressFromStringValue(bC[br])
295306
296307
297-func by (bx) = addressFromStringValue(bx[bp])
308+func bD (bC) = addressFromStringValue(bC[bu])
298309
299310
300-func bz (bx) = addressFromStringValue(bx[bl])
311+func bE (bC) = addressFromStringValue(bC[bq])
301312
302313
303-func bA (bx) = addressFromStringValue(bx[bu])
314+func bF (bC) = addressFromStringValue(bC[bz])
304315
305316
306-func bB () = {
307- let bj = getString(aa())
308- if ($isInstanceOf(bj, "String"))
317+func bG () = {
318+ let bo = getString(aa())
319+ if ($isInstanceOf(bo, "String"))
309320 then {
310- let bk = bj
311- if ((size(bk) == 0))
321+ let bp = bo
322+ if ((size(bp) == 0))
312323 then nil
313- else split_4C(bk, m)
324+ else split_4C(bp, m)
314325 }
315326 else nil
316327 }
317328
318329
319-func bC () = {
320- let bD = bi()
321- let bj = getString(bD, U())
322- if ($isInstanceOf(bj, "String"))
330+func bH () = {
331+ let bI = bn()
332+ let bo = getString(bI, U())
333+ if ($isInstanceOf(bo, "String"))
323334 then {
324- let bk = bj
325- fromBase58String(bk)
335+ let bp = bo
336+ fromBase58String(bp)
326337 }
327- else if ($isInstanceOf(bj, "Unit"))
338+ else if ($isInstanceOf(bo, "Unit"))
328339 then unit
329340 else throw("Match error")
330341 }
331342
332343
333-let bE = K("Permission denied")
344+let bJ = K("Permission denied")
334345
335-let bF = K("Test error here")
346+let bK = K("Test error here")
336347
337-func bG (bH) = if ((bH.caller == this))
348+func bL (bM) = if ((bM.caller == this))
338349 then true
339- else bE
350+ else bJ
340351
341352
342-func bI (bH) = {
343- let bj = bC()
344- if ($isInstanceOf(bj, "ByteVector"))
353+func bN (bM) = {
354+ let bo = bH()
355+ if ($isInstanceOf(bo, "ByteVector"))
345356 then {
346- let bJ = bj
347- if ((bH.callerPublicKey == bJ))
357+ let bO = bo
358+ if ((bM.callerPublicKey == bO))
348359 then true
349- else bE
360+ else bJ
350361 }
351- else if ($isInstanceOf(bj, "Unit"))
352- then bG(bH)
362+ else if ($isInstanceOf(bo, "Unit"))
363+ then bL(bM)
353364 else throw("Match error")
354365 }
355366
356367
357-func bK (bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV], m)
368+func bP (bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ,ca) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ, ca], m)
358369
359370
360-func bW (bL,bM,bN,bO,bP,bQ,bR) = makeString(["%s%s%s%s%s%s", bL, bM, bN, bO, bP, bQ, bR], m)
371+func cb (bQ,bR,bS,bT,bU,bV,bW) = makeString(["%s%s%s%s%s%s", bQ, bR, bS, bT, bU, bV, bW], m)
361372
362373
363-func bX (af,bY,bZ,ca,cb,cc,cd,ce,cf,cg,ch) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bY, bZ, ca, cb, toString(cc), toString(cd), toString(ce), toString(cf), toString(cg), ch], m)
374+func cc (af,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, cd, ce, cf, cg, toString(ch), toString(ci), toString(cj), toString(ck), toString(cl), cm], m)
364375
365376
366-func ci (cj,ck) = makeString(["%d%d", toString(cj), toString(ck)], m)
377+func cn (co,cp) = makeString(["%d%d", toString(co), toString(cp)], m)
367378
368379
369-func cl (af) = {
370- let cm = split(bc(aC(af)), m)
371- let an = cm[1]
372- let ao = cm[2]
373- split(bc(am(an, ao)), m)
380+func cq (af) = {
381+ let cr = split(bh(aC(af)), m)
382+ let an = cr[1]
383+ let ao = cr[2]
384+ split(bh(am(an, ao)), m)
374385 }
375386
376387
377-func cn (co,cp) = {
378- let cq = valueOrElse(getInteger(this, ak(co)), 0)
379- let cr = valueOrElse(getInteger(this, ad()), 0)
380- let cs = if ((cq == 0))
388+func cs (ct,cu) = {
389+ let cv = valueOrElse(getInteger(this, ak(ct)), 0)
390+ let cw = valueOrElse(getInteger(this, ad()), 0)
391+ let cx = if ((cv == 0))
381392 then {
382- let ct = (cr + cp)
383- $Tuple3(ct, [IntegerEntry(ad(), ct), IntegerEntry(ak(co), ct), StringEntry(ai(ct), co)], true)
393+ let cy = (cw + cu)
394+ $Tuple3(cy, [IntegerEntry(ad(), cy), IntegerEntry(ak(ct), cy), StringEntry(ai(cy), ct)], true)
384395 }
385- else $Tuple3(cq, nil, false)
386- cs
396+ else $Tuple3(cv, nil, false)
397+ cx
387398 }
388399
389400
390-func cu (bH) = {
391- let cv = split(valueOrElse(getString(W()), n), m)
392- if (containsElement(cv, toBase58String(bH.callerPublicKey)))
401+func cz (bM) = {
402+ let cA = split(valueOrElse(getString(W()), n), m)
403+ if (containsElement(cA, toBase58String(bM.callerPublicKey)))
393404 then true
394405 else {
395- let cw = bI(bH)
396- if ((cw == cw))
406+ let cB = bN(bM)
407+ if ((cB == cB))
397408 then true
398409 else throw("Strict value is not equal to itself.")
399410 }
400411 }
401412
402413
403-func cx (bd,cy,cz) = valueOrElse(getInteger(this, bd), valueOrElse(getInteger(this, cy), cz))
414+func cC (bi,cD,cE) = valueOrElse(getInteger(this, bi), valueOrElse(getInteger(this, cD), cE))
404415
405416
406-func cA (aI,aJ) = {
417+func cF (aI,aJ) = {
407418 let an = getInteger(ak(aI))
408419 let ao = getInteger(ak(aJ))
409420 if (if ((an == unit))
411422 else (ao == unit))
412423 then false
413424 else {
414- let cB = toString(value(an))
415- let cC = toString(value(ao))
416- let cD = getString(am(cB, cC))
417- let cE = getString(am(cC, cB))
418- let cF = if ((cD != unit))
425+ let cG = toString(value(an))
426+ let cH = toString(value(ao))
427+ let cI = getString(am(cG, cH))
428+ let cJ = getString(am(cH, cG))
429+ let cK = if ((cI != unit))
419430 then true
420- else (cE != unit)
421- cF
431+ else (cJ != unit)
432+ cK
422433 }
423434 }
424435
425436
426-func cG (aD) = {
427- let cm = {
428- let bj = getString(aC(aD))
429- if ($isInstanceOf(bj, "String"))
437+func cL (aD) = {
438+ let cr = {
439+ let bo = getString(aC(aD))
440+ if ($isInstanceOf(bo, "String"))
430441 then {
431- let bk = bj
432- split(bk, m)
442+ let bp = bo
443+ split(bp, m)
433444 }
434445 else K(makeString([aD, "pool is not found"], " "))
435446 }
436- let an = parseIntValue(cm[1])
437- let ao = parseIntValue(cm[2])
447+ let an = parseIntValue(cr[1])
448+ let ao = parseIntValue(cr[2])
438449 let aI = getStringValue(ai(an))
439450 let aJ = getStringValue(ai(ao))
440- let bZ = getStringValue(aF(aD))
441- $Tuple5(aI, aJ, bZ, an, ao)
451+ let ce = getStringValue(aF(aD))
452+ $Tuple5(aI, aJ, ce, an, ao)
442453 }
443454
444455
445-func cH (aD) = {
446- let cI = cG(aD)
447- let aI = cI._1
448- let aJ = cI._2
449- let bZ = cI._3
450- let an = cI._4
451- let ao = cI._5
452- let cJ = addressFromStringValue(getStringValue(Z()))
453- let cK = invoke(cJ, "getPoolCreatorREADONLY", [aI, aJ], nil)
454- cK
456+func cM (aD) = {
457+ let cN = cL(aD)
458+ let aI = cN._1
459+ let aJ = cN._2
460+ let ce = cN._3
461+ let an = cN._4
462+ let ao = cN._5
463+ let cO = addressFromStringValue(getStringValue(Z()))
464+ let cP = invoke(cO, "getPoolCreatorREADONLY", [aI, aJ], nil)
465+ cP
455466 }
456467
457468
458-func cL (cM,cN) = {
459- let cO = addressFromStringValue(cM)
460- if ((cN == "WAVES"))
461- then wavesBalance(cO).regular
469+func cQ (cR,cS) = {
470+ let cT = addressFromStringValue(cR)
471+ if ((cS == "WAVES"))
472+ then wavesBalance(cT).regular
462473 else {
463- let aX = fromBase58String(cN)
464- assetBalance(cO, aX)
474+ let aX = fromBase58String(cS)
475+ assetBalance(cT, aX)
465476 }
466477 }
467478
468479
469-func cP (aD) = {
470- let cQ = cG(aD)
471- let aI = cQ._1
472- let aJ = cQ._2
473- let bZ = cQ._3
474- let an = cQ._4
475- let ao = cQ._5
476- if ((cL(aD, aI) == 0))
477- then (cL(aD, aJ) == 0)
480+func cU (aD) = {
481+ let cV = cL(aD)
482+ let aI = cV._1
483+ let aJ = cV._2
484+ let ce = cV._3
485+ let an = cV._4
486+ let ao = cV._5
487+ if ((cQ(aD, aI) == 0))
488+ then (cQ(aD, aJ) == 0)
478489 else false
479490 }
480491
481492
482-@Callable(bH)
483-func getSwapContractREADONLY () = $Tuple2(nil, bc(N()))
493+@Callable(bM)
494+func getSwapContractREADONLY () = $Tuple2(nil, bh(N()))
484495
485496
486497
487-@Callable(bH)
498+@Callable(bM)
488499 func getPoolLeaseConfigREADONLY (af,aX) = {
489- let cR = {
490- let bj = getInteger(this, aW(af, aX))
491- if ($isInstanceOf(bj, "Int"))
500+ let cW = {
501+ let bo = getInteger(this, aW(af, aX))
502+ if ($isInstanceOf(bo, "Int"))
492503 then {
493- let cS = bj
494- $Tuple2(true, min([100, max([0, cS])]))
504+ let cX = bo
505+ $Tuple2(true, min([100, max([0, cX])]))
495506 }
496507 else {
497- let cT = getInteger(this, aY(aX))
498- if ($isInstanceOf(cT, "Int"))
508+ let cY = getInteger(this, aY(aX))
509+ if ($isInstanceOf(cY, "Int"))
499510 then {
500- let cU = cT
501- $Tuple2(true, min([100, max([0, cU])]))
511+ let cZ = cY
512+ $Tuple2(true, min([100, max([0, cZ])]))
502513 }
503514 else $Tuple2(false, 0)
504515 }
505516 }
506- let cV = cR._1
507- let cW = cR._2
508- let cX = {
509- let bj = getInteger(this, ba(af, aX))
510- if ($isInstanceOf(bj, "Int"))
517+ let da = cW._1
518+ let db = cW._2
519+ let dc = {
520+ let bo = getInteger(this, ba(af, aX))
521+ if ($isInstanceOf(bo, "Int"))
511522 then {
512- let cY = bj
513- max([0, cY])
523+ let dd = bo
524+ max([0, dd])
514525 }
515526 else {
516- let cT = getInteger(this, bb(aX))
517- if ($isInstanceOf(cT, "Int"))
527+ let cY = getInteger(this, bb(aX))
528+ if ($isInstanceOf(cY, "Int"))
518529 then {
519- let cZ = cT
520- max([0, cZ])
530+ let de = cY
531+ max([0, de])
521532 }
522533 else 0
523534 }
524535 }
525- let da = if ((aX == "WAVES"))
536+ let df = if ((aX == "WAVES"))
526537 then $Tuple3(valueOrElse(getString(this, aT()), ""), getString(this, valueOrElse(aU(), "")), c)
527538 else $Tuple3("", "", 0)
528- let db = da._1
529- let dc = da._2
530- let dd = da._3
531- let de = valueOrElse(getString(this, aV()), "")
532- $Tuple2(nil, $Tuple7(cV, cW, cX, db, dc, dd, de))
539+ let dg = df._1
540+ let dh = df._2
541+ let di = df._3
542+ let dj = valueOrElse(getString(this, aV()), "")
543+ $Tuple2(nil, $Tuple7(da, db, dc, dg, dh, di, dj))
533544 }
534545
535546
536547
537-@Callable(bH)
538-func getLpAssetFromPoolAssetsREADONLY (df,dg) = if (if ((df == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
539- then (dg == "WAVES")
548+@Callable(bM)
549+func getLpAssetFromPoolAssetsREADONLY (dk,dl) = if (if ((dk == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
550+ then (dl == "WAVES")
540551 else false)
541552 then $Tuple2(nil, unit)
542553 else {
543- let dh = value(getInteger(this, ak(df)))
544- let di = value(getInteger(this, ak(dg)))
545- let dj = getString(this, ay(toString(dh), toString(di)))
546- let dk = if ((dj == unit))
554+ let dm = value(getInteger(this, ak(dk)))
555+ let dn = value(getInteger(this, ak(dl)))
556+ let do = getString(this, ay(toString(dm), toString(dn)))
557+ let dp = if ((do == unit))
547558 then unit
548- else drop(value(dj), 4)
549- $Tuple2(nil, dk)
559+ else drop(value(do), 4)
560+ $Tuple2(nil, dp)
550561 }
551562
552563
553564
554-@Callable(bH)
555-func getPoolAddressFromLpAssetREADONLY (dl) = $Tuple2(nil, valueOrElse(getString(this, aG(dl)), ""))
565+@Callable(bM)
566+func getPoolAddressFromLpAssetREADONLY (dq) = $Tuple2(nil, valueOrElse(getString(this, aG(dq)), ""))
556567
557568
558569
559-@Callable(bH)
560-func constructor (dm,dn,bN,bO,bP,bQ,do,dp) = {
561- let dq = bI(bH)
562- if ((dq == dq))
563- then [StringEntry(O(), bW(dm, dn, bN, bO, bP, bQ, do)), IntegerEntry(ab(), dp)]
570+@Callable(bM)
571+func constructor (dr,ds,bS,bT,bU,bV,dt,du) = {
572+ let dv = bN(bM)
573+ if ((dv == dv))
574+ then [StringEntry(O(), cb(dr, ds, bS, bT, bU, bV, dt)), IntegerEntry(ab(), du)]
564575 else throw("Strict value is not equal to itself.")
565576 }
566577
567578
568579
569-@Callable(bH)
570-func constructorV2 (dr) = {
571- let dq = bI(bH)
572- if ((dq == dq))
580+@Callable(bM)
581+func constructorV2 (dw) = {
582+ let dv = bN(bM)
583+ if ((dv == dv))
573584 then {
574- let ds = addressFromPublicKey(fromBase58String(dr))
575- if ((ds == ds))
576- then [StringEntry(R(), dr)]
585+ let dx = addressFromPublicKey(fromBase58String(dw))
586+ if ((dx == dx))
587+ then [StringEntry(R(), dw)]
577588 else throw("Strict value is not equal to itself.")
578589 }
579590 else throw("Strict value is not equal to itself.")
581592
582593
583594
584-@Callable(bH)
585-func constructorV3 (bS,bT,bU,bV) = {
586- let dq = bI(bH)
587- if ((dq == dq))
595+@Callable(bM)
596+func constructorV3 (bX,bY,bZ,ca) = {
597+ let dv = bN(bM)
598+ if ((dv == dv))
588599 then {
589- let bx = split(bc(O()), m)
590-[StringEntry(O(), bK(bx[1], bx[2], bx[3], bx[4], bx[5], bx[6], bx[7], bS, bT, bU, bV))]
600+ let bC = split(bh(O()), m)
601+[StringEntry(O(), bP(bC[1], bC[2], bC[3], bC[4], bC[5], bC[6], bC[7], bX, bY, bZ, ca))]
591602 }
592603 else throw("Strict value is not equal to itself.")
593604 }
594605
595606
596607
597-@Callable(bH)
598-func constructorV4 (dt,du) = {
599- let dq = bI(bH)
600- if ((dq == dq))
601- then [StringEntry(S(), dt), StringEntry(T(), makeString(du, m))]
608+@Callable(bM)
609+func constructorV4 (dy,dz) = {
610+ let dv = bN(bM)
611+ if ((dv == dv))
612+ then [StringEntry(S(), dy), StringEntry(T(), makeString(dz, m))]
602613 else throw("Strict value is not equal to itself.")
603614 }
604615
605616
606617
607-@Callable(bH)
608-func constructorV5 (dv) = {
609- let dq = bI(bH)
610- if ((dq == dq))
611- then [StringEntry(X(), dv)]
618+@Callable(bM)
619+func constructorV5 (dA) = {
620+ let dv = bN(bM)
621+ if ((dv == dv))
622+ then [StringEntry(X(), dA)]
612623 else throw("Strict value is not equal to itself.")
613624 }
614625
615626
616627
617-@Callable(bH)
618-func constructorV6 (dw,dx) = {
619- let dy = [bI(bH), if ((addressFromString(dw) != unit))
628+@Callable(bM)
629+func constructorV6 (dB,dC) = {
630+ let dD = [bN(bM), if ((addressFromString(dB) != unit))
620631 then true
621632 else "invalid voting emission contract address"]
622- if ((dy == dy))
623- then [StringEntry(Y(), dw), StringEntry(aa(), makeString(dx, m))]
633+ if ((dD == dD))
634+ then [StringEntry(Y(), dB), StringEntry(aa(), makeString(dC, m))]
624635 else throw("Strict value is not equal to itself.")
625636 }
626637
627638
628639
629-@Callable(bH)
630-func setAdmins (dz) = {
631- let dq = bI(bH)
632- if ((dq == dq))
633- then [StringEntry(W(), makeString(dz, m))]
640+@Callable(bM)
641+func setAdmins (dE) = {
642+ let dv = bN(bM)
643+ if ((dv == dv))
644+ then [StringEntry(W(), makeString(dE, m))]
634645 else throw("Strict value is not equal to itself.")
635646 }
636647
637648
638649
639-@Callable(bH)
640-func activateNewPool (af,ca,cb,dA,dB,dC,ch,dD) = {
641- let dq = cu(bH)
642- if ((dq == dq))
650+@Callable(bM)
651+func activateNewPool (af,cf,cg,dF,dG,dH,cm,dI) = {
652+ let dv = cz(bM)
653+ if ((dv == dv))
643654 then if (isDefined(getString(aC(af))))
644655 then K((("Pool address " + af) + " already registered."))
645656 else {
646- let dE = cn(ca, 1)
647- let dF = dE._1
648- let dG = cn(cb, if (dE._3)
657+ let dJ = cs(cf, 1)
658+ let dK = dJ._1
659+ let dL = cs(cg, if (dJ._3)
649660 then 2
650661 else 1)
651- let dH = dG._1
652- let dI = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
653- let dJ = getBinaryValue(Q())
654- let dK = cA(ca, cb)
655- if (dK)
656- then K((((("Pool " + ca) + "/") + cb) + " has already been activated."))
662+ let dM = dL._1
663+ let dN = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
664+ let dO = getBinaryValue(Q())
665+ let dP = cF(cf, cg)
666+ if (dP)
667+ then K((((("Pool " + cf) + "/") + cg) + " has already been activated."))
657668 else {
658- let dL = value(getString(this, am(toString(dF), toString(dH))))
659- let dM = if ((ca == "WAVES"))
669+ let dQ = value(getString(this, am(toString(dK), toString(dM))))
670+ let dR = if ((cf == "WAVES"))
660671 then l
661- else pow(10, 0, value(assetInfo(fromBase58String(ca))).decimals, 0, 0, DOWN)
662- let dN = if ((cb == "WAVES"))
672+ else pow(10, 0, value(assetInfo(fromBase58String(cf))).decimals, 0, 0, DOWN)
673+ let dS = if ((cg == "WAVES"))
663674 then l
664- else pow(10, 0, value(assetInfo(fromBase58String(cb))).decimals, 0, 0, DOWN)
665- let dO = Issue(dA, dB, 1, 8, true)
666- let bZ = calculateAssetId(dO)
667- let dP = toBase58String(bZ)
668- let dQ = invoke(addressFromStringValue(af), "activate", [ca, cb], nil)
669- if ((dQ == dQ))
670- then if ((dQ != "success"))
675+ else pow(10, 0, value(assetInfo(fromBase58String(cg))).decimals, 0, 0, DOWN)
676+ let dT = Issue(dF, dG, 1, 8, true)
677+ let ce = calculateAssetId(dT)
678+ let dU = toBase58String(ce)
679+ let dV = invoke(addressFromStringValue(af), "activate", [cf, cg], nil)
680+ if ((dV == dV))
681+ then if ((dV != "success"))
671682 then K("Pool initialisation error happened.")
672683 else {
673- let dv = addressFromStringValue(bc(X()))
674- let dR = invoke(dv, "createOrUpdate", [dP, dA, false], nil)
675- if ((dR == dR))
684+ let dA = addressFromStringValue(bh(X()))
685+ let dW = invoke(dA, "createOrUpdate", [dU, dF, false], nil)
686+ if ((dW == dW))
676687 then {
677- let dS = invoke(dv, "addLabel", [dP, h], nil)
678- if ((dS == dS))
688+ let dX = invoke(dA, "addLabel", [dU, h], nil)
689+ if ((dX == dX))
679690 then {
680- let dT = invoke(dv, "setLogo", [dP, dD], nil)
681- if ((dT == dT))
691+ let dY = invoke(dA, "setLogo", [dU, dI], nil)
692+ if ((dY == dY))
682693 then {
683- let dU = invoke(dv, "addAssetsLink", [ca, cb, dP], nil)
684- if ((dU == dU))
694+ let dZ = invoke(dA, "addAssetsLink", [cf, cg, dU], nil)
695+ if ((dZ == dZ))
685696 then {
686- let dV = invoke(dv, "increaseAssetPoolsNumber", [ca], nil)
687- if ((dV == dV))
688- then $Tuple2(((dE._2 ++ dG._2) ++ [dO, Burn(bZ, 1), StringEntry(am(toString(dF), toString(dH)), bX(af, toString(o), dP, ca, cb, dM, dN, dF, dH, l, ch)), StringEntry(aw(dP), ci(dF, dH)), StringEntry(ay(toString(dF), toString(dH)), ("%s__" + dP)), StringEntry(aC(af), ci(dF, dH)), StringEntry(aE(dF, dH), af), StringEntry(aG(dP), af), StringEntry(aF(af), dP), IntegerEntry(ae(af), dC), IntegerEntry(aB(af), i)]), dP)
697+ let ea = invoke(dA, "increaseAssetPoolsNumber", [cf], nil)
698+ if ((ea == ea))
699+ then $Tuple2(((dJ._2 ++ dL._2) ++ [dT, Burn(ce, 1), StringEntry(am(toString(dK), toString(dM)), cc(af, toString(o), dU, cf, cg, dR, dS, dK, dM, l, cm)), StringEntry(aw(dU), cn(dK, dM)), StringEntry(ay(toString(dK), toString(dM)), ("%s__" + dU)), StringEntry(aC(af), cn(dK, dM)), StringEntry(aE(dK, dM), af), StringEntry(aG(dU), af), StringEntry(aF(af), dU), IntegerEntry(ae(af), dH), IntegerEntry(aB(af), i), StringEntry(bc(af), toString(bg)), StringEntry(bd(af, height), toString(bg))]), dU)
689700 else throw("Strict value is not equal to itself.")
690701 }
691702 else throw("Strict value is not equal to itself.")
704715
705716
706717
707-@Callable(bH)
708-func managePool (af,dW) = {
709- let dq = bI(bH)
710- if ((dq == dq))
718+@Callable(bM)
719+func managePool (af,eb) = {
720+ let dv = bN(bM)
721+ if ((dv == dv))
711722 then {
712- let dX = cl(af)
713- let bY = dX[w]
714- let dP = dX[x]
715- let ca = dX[y]
716- let cb = dX[z]
717- let dM = parseIntValue(dX[A])
718- let dN = parseIntValue(dX[B])
719- let dF = parseIntValue(dX[C])
720- let dH = parseIntValue(dX[D])
721- let dY = parseIntValue(dX[E])
722- let ch = dX[F]
723-[StringEntry(am(toString(dF), toString(dH)), bX(af, toString(dW), dP, ca, cb, dM, dN, dF, dH, dY, ch))]
723+ let ec = cq(af)
724+ let cd = ec[w]
725+ let dU = ec[x]
726+ let cf = ec[y]
727+ let cg = ec[z]
728+ let dR = parseIntValue(ec[A])
729+ let dS = parseIntValue(ec[B])
730+ let dK = parseIntValue(ec[C])
731+ let dM = parseIntValue(ec[D])
732+ let ed = parseIntValue(ec[E])
733+ let cm = ec[F]
734+[StringEntry(am(toString(dK), toString(dM)), cc(af, toString(eb), dU, cf, cg, dR, dS, dK, dM, ed, cm))]
724735 }
725736 else throw("Strict value is not equal to itself.")
726737 }
727738
728739
729740
730-@Callable(bH)
731-func emit (dZ) = {
732- let ea = bH.caller
733- let eb = bH.originCaller
734- let ec = valueOrErrorMessage(getString(aF(toString(ea))), "Invalid LP address called me.")
735- let ed = fromBase58String(ec)
736- let du = split(valueOrElse(getString(T()), n), m)
737- let dt = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
738- if ((0 >= dZ))
741+@Callable(bM)
742+func emit (ee) = {
743+ let ef = bM.caller
744+ let eg = bM.originCaller
745+ let eh = valueOrErrorMessage(getString(aF(toString(ef))), "Invalid LP address called me.")
746+ let ei = fromBase58String(eh)
747+ let dz = split(valueOrElse(getString(T()), n), m)
748+ let dy = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
749+ if ((0 >= ee))
739750 then nil
740- else if (containsElement(du, toString(ea)))
741- then $Tuple2(nil, dt)
742- else $Tuple2([Reissue(ed, dZ, true), ScriptTransfer(bH.caller, dZ, ed)], "success")
751+ else if (containsElement(dz, toString(ef)))
752+ then $Tuple2(nil, dy)
753+ else $Tuple2([Reissue(ei, ee, true), ScriptTransfer(bM.caller, ee, ei)], "success")
743754 }
744755
745756
746757
747-@Callable(bH)
748-func burn (ee) = {
749- let ea = bH.caller
750- let eb = bH.originCaller
751- let ef = value(bH.payments[0])
752- let eg = value(ef.amount)
753- let eh = toBase58String(value(ef.assetId))
754- let ei = valueOrErrorMessage(getString(aF(toString(ea))), "Invalid LP address called me.")
755- if ((eh != ei))
758+@Callable(bM)
759+func burn (ej) = {
760+ let ef = bM.caller
761+ let eg = bM.originCaller
762+ let ek = value(bM.payments[0])
763+ let el = value(ek.amount)
764+ let em = toBase58String(value(ek.assetId))
765+ let en = valueOrErrorMessage(getString(aF(toString(ef))), "Invalid LP address called me.")
766+ if ((em != en))
756767 then K("Invalid asset passed.")
757- else if ((ee != eg))
768+ else if ((ej != el))
758769 then K("Invalid amount passed.")
759770 else {
760- let ed = fromBase58String(ei)
761- $Tuple2([Burn(ed, ee)], "success")
771+ let ei = fromBase58String(en)
772+ $Tuple2([Burn(ei, ej)], "success")
762773 }
763774 }
764775
765776
766777
767-@Callable(bH)
768-func modifyWeight (bZ,ej) = {
769- let dq = if ((toBase58String(bH.caller.bytes) == valueOrElse(getString(this, Y()), "")))
778+@Callable(bM)
779+func modifyWeight (ce,eo) = {
780+ let dv = if ((toBase58String(bM.caller.bytes) == valueOrElse(getString(this, Y()), "")))
770781 then true
771- else bI(bH)
772- if ((dq == dq))
782+ else bN(bM)
783+ if ((dv == dv))
773784 then {
774- let aD = bc(aG(bZ))
775- let ek = ae(aD)
776- let el = ae(g)
777- let em = valueOrElse(getInteger(el), 0)
778- let dC = valueOrElse(getInteger(ek), 0)
779- let en = ej
780- let bx = split(bc(O()), m)
781- let dm = bz(bx)
782- let eo = invoke(dm, "onModifyWeight", [bZ, aD], nil)
783- if ((eo == eo))
785+ let aD = bh(aG(ce))
786+ let ep = ae(aD)
787+ let eq = ae(g)
788+ let er = valueOrElse(getInteger(eq), 0)
789+ let dH = valueOrElse(getInteger(ep), 0)
790+ let es = eo
791+ let bC = split(bh(O()), m)
792+ let dr = bE(bC)
793+ let et = invoke(dr, "onModifyWeight", [ce, aD], nil)
794+ if ((et == et))
784795 then {
785- let ep = if ((em == 0))
796+ let eu = if ((er == 0))
786797 then nil
787- else [IntegerEntry(el, 0)]
788- let eq = ag(aD, 0)
789- let er = getInteger(eq)
790- let es = if ((er == unit))
798+ else [IntegerEntry(eq, 0)]
799+ let ev = ag(aD, 0)
800+ let ew = getInteger(ev)
801+ let ex = if ((ew == unit))
791802 then nil
792- else [DeleteEntry(eq)]
793- (([IntegerEntry(ek, en)] ++ ep) ++ es)
803+ else [DeleteEntry(ev)]
804+ (([IntegerEntry(ep, es)] ++ eu) ++ ex)
794805 }
795806 else throw("Strict value is not equal to itself.")
796807 }
799810
800811
801812
802-@Callable(bH)
803-func modifyWeights (et,eu,ev,ew) = {
804- let dq = bI(bH)
805- if ((dq == dq))
813+@Callable(bM)
814+func modifyWeights (ey,ez,eA,eB) = {
815+ let dv = bN(bM)
816+ if ((dv == dv))
806817 then {
807- let ex = ((5 * f) / 100)
808- let ey = ((5 * f) / 100)
809- let ez = ((5 * f) / 100)
810- let bx = split(bc(O()), m)
811- let eA = bz(bx)
812- let eB = bA(bx)
813- let eC = ae(et)
814- let eD = ae(eu)
815- let eE = ae(ev)
816- let eF = ae(ew)
817- let eG = bf(eC)
818- let eH = bf(eD)
819- let eI = (eG - ez)
820- let eJ = (eH - ez)
821- if ((0 >= eI))
822- then K(("invalid btcWeightNew: " + toString(eI)))
823- else if ((0 >= eJ))
824- then K(("invalid ethWeightNew: " + toString(eJ)))
818+ let eC = ((5 * f) / 100)
819+ let eD = ((5 * f) / 100)
820+ let eE = ((5 * f) / 100)
821+ let bC = split(bh(O()), m)
822+ let eF = bE(bC)
823+ let eG = bF(bC)
824+ let eH = ae(ey)
825+ let eI = ae(ez)
826+ let eJ = ae(eA)
827+ let eK = ae(eB)
828+ let eL = bk(eH)
829+ let eM = bk(eI)
830+ let eN = (eL - eE)
831+ let eO = (eM - eE)
832+ if ((0 >= eN))
833+ then K(("invalid btcWeightNew: " + toString(eN)))
834+ else if ((0 >= eO))
835+ then K(("invalid ethWeightNew: " + toString(eO)))
825836 else {
826- let eK = bc(aF(et))
827- let eL = bc(aF(eu))
828- let eM = bc(aF(ev))
829- let eN = bc(aF(ew))
830- let eO = invoke(eA, "onModifyWeight", [eK, et], nil)
831- if ((eO == eO))
837+ let eP = bh(aF(ey))
838+ let eQ = bh(aF(ez))
839+ let eR = bh(aF(eA))
840+ let eS = bh(aF(eB))
841+ let eT = invoke(eF, "onModifyWeight", [eP, ey], nil)
842+ if ((eT == eT))
832843 then {
833- let eP = invoke(eA, "onModifyWeight", [eL, eu], nil)
834- if ((eP == eP))
844+ let eU = invoke(eF, "onModifyWeight", [eQ, ez], nil)
845+ if ((eU == eU))
835846 then {
836- let eQ = invoke(eA, "onModifyWeight", [eM, ev], nil)
837- if ((eQ == eQ))
847+ let eV = invoke(eF, "onModifyWeight", [eR, eA], nil)
848+ if ((eV == eV))
838849 then {
839- let eR = invoke(eA, "onModifyWeight", [eN, ew], nil)
840- if ((eR == eR))
841- then [IntegerEntry(eC, eI), IntegerEntry(eD, eJ), IntegerEntry(eE, ex), IntegerEntry(eF, ey), IntegerEntry(ag(et, 0), eG), IntegerEntry(ag(eu, 0), eH), IntegerEntry(ag(ev, 0), ex), IntegerEntry(ag(ew, 0), ey)]
850+ let eW = invoke(eF, "onModifyWeight", [eS, eB], nil)
851+ if ((eW == eW))
852+ then [IntegerEntry(eH, eN), IntegerEntry(eI, eO), IntegerEntry(eJ, eC), IntegerEntry(eK, eD), IntegerEntry(ag(ey, 0), eL), IntegerEntry(ag(ez, 0), eM), IntegerEntry(ag(eA, 0), eC), IntegerEntry(ag(eB, 0), eD)]
842853 else throw("Strict value is not equal to itself.")
843854 }
844855 else throw("Strict value is not equal to itself.")
853864
854865
855866
856-@Callable(bH)
867+@Callable(bM)
857868 func checkWxEmissionPoolLabel (aI,aJ) = {
858- let eS = {
859- let bj = getBoolean(aH(aI, aJ))
860- if ($isInstanceOf(bj, "Boolean"))
869+ let eX = {
870+ let bo = getBoolean(aH(aI, aJ))
871+ if ($isInstanceOf(bo, "Boolean"))
861872 then {
862- let cY = bj
863- cY
873+ let dd = bo
874+ dd
864875 }
865876 else false
866877 }
867- $Tuple2(nil, eS)
878+ $Tuple2(nil, eX)
868879 }
869880
870881
871882
872-@Callable(bH)
883+@Callable(bM)
873884 func setWxEmissionPoolLabel (aI,aJ) = {
874- let dq = cu(bH)
875- if ((dq == dq))
885+ let dv = cz(bM)
886+ if ((dv == dv))
876887 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
877888 else throw("Strict value is not equal to itself.")
878889 }
879890
880891
881892
882-@Callable(bH)
893+@Callable(bM)
883894 func deleteWxEmissionPoolLabel (aI,aJ) = {
884- let dq = if ((bH.caller == this))
895+ let dv = if ((bM.caller == this))
885896 then true
886- else cu(bH)
887- if ((dq == dq))
897+ else cz(bM)
898+ if ((dv == dv))
888899 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
889900 else throw("Strict value is not equal to itself.")
890901 }
891902
892903
893904
894-@Callable(bH)
905+@Callable(bM)
895906 func onVerificationLoss (aX) = {
896- let dq = if ((toBase58String(bH.caller.bytes) == valueOrElse(getString(this, X()), "")))
907+ let dv = if ((toBase58String(bM.caller.bytes) == valueOrElse(getString(this, X()), "")))
897908 then true
898- else bI(bH)
899- if ((dq == dq))
909+ else bN(bM)
910+ if ((dv == dv))
900911 then {
901- let dx = bB()
902- let eT = if ((size(dx) > 0))
912+ let dC = bG()
913+ let eY = if ((size(dC) > 0))
903914 then true
904915 else K("invalid price assets")
905- if ((eT == eT))
916+ if ((eY == eY))
906917 then {
907- func eU (eV,eW) = {
908- let cS = invoke(this, "deleteWxEmissionPoolLabel", [aX, eW], nil)
909- if ((cS == cS))
918+ func eZ (fa,fb) = {
919+ let cX = invoke(this, "deleteWxEmissionPoolLabel", [aX, fb], nil)
920+ if ((cX == cX))
910921 then unit
911922 else throw("Strict value is not equal to itself.")
912923 }
913924
914- let eX = {
915- let eY = dx
916- let eZ = size(eY)
917- let fa = unit
918- func fb (fc,fd) = if ((fd >= eZ))
919- then fc
920- else eU(fc, eY[fd])
925+ let fc = {
926+ let fd = dC
927+ let fe = size(fd)
928+ let ff = unit
929+ func fg (fh,fi) = if ((fi >= fe))
930+ then fh
931+ else eZ(fh, fd[fi])
921932
922- func fe (fc,fd) = if ((fd >= eZ))
923- then fc
933+ func fj (fh,fi) = if ((fi >= fe))
934+ then fh
924935 else throw("List size exceeds 13")
925936
926- fe(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fa, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
937+ fj(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(ff, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
927938 }
928- if ((eX == eX))
939+ if ((fc == fc))
929940 then $Tuple2(nil, unit)
930941 else throw("Strict value is not equal to itself.")
931942 }
936947
937948
938949
939-@Callable(bH)
940-func isPoolOneTokenOperationsDisabledREADONLY (af) = {
941- let dX = cl(af)
942- let aq = $Tuple2(parseIntValue(dX[C]), parseIntValue(dX[D]))
943- let ff = valueOrElse(getBoolean(ap(aq)), false)
944- let fg = valueOrElse(getBoolean(as()), false)
945- $Tuple2(nil, if (fg)
950+@Callable(bM)
951+func changeAmp (af) = {
952+ let fk = getIntegerValue(aQ(af))
953+ let fl = getIntegerValue(aR(af))
954+ let fm = getIntegerValue(aS(af))
955+ let fn = parseIntValue(getStringValue(bc(af)))
956+ let fo = (fn + fl)
957+ let fp = if ((0 > fl))
958+ then if ((fm > fo))
959+ then fm
960+ else fo
961+ else if ((fo > fm))
962+ then fm
963+ else fo
964+ let fq = valueOrElse(getInteger(bf(af)), 0)
965+ let fr = (fq + fk)
966+ let fs = [if ((height > fr))
946967 then true
947- else ff)
968+ else K("try again in few blocks"), if ((fn != fp))
969+ then true
970+ else K("already reached target")]
971+ if ((fs == fs))
972+ then [IntegerEntry(bf(af), height), StringEntry(bc(af), toString(fp)), StringEntry(bd(af, height), toString(fp))]
973+ else throw("Strict value is not equal to itself.")
948974 }
949975
950976
951977
952-@Callable(bH)
953-func isPoolSwapDisabledREADONLY (af) = {
954- let dX = cl(af)
955- let aq = $Tuple2(parseIntValue(dX[C]), parseIntValue(dX[D]))
956- let fh = valueOrElse(getBoolean(at(aq)), false)
957- let fi = valueOrElse(getBoolean(av()), false)
958- $Tuple2(nil, if (fi)
978+@Callable(bM)
979+func isPoolOneTokenOperationsDisabledREADONLY (af) = {
980+ let ec = cq(af)
981+ let aq = $Tuple2(parseIntValue(ec[C]), parseIntValue(ec[D]))
982+ let ft = valueOrElse(getBoolean(ap(aq)), false)
983+ let fu = valueOrElse(getBoolean(as()), false)
984+ $Tuple2(nil, if (fu)
959985 then true
960- else fh)
986+ else ft)
961987 }
962988
963989
964990
965-@Callable(bH)
966-func getInFeeREADONLY (af) = {
967- let fj = cx(aK(af), aL(), 0)
968- $Tuple2(nil, fj)
991+@Callable(bM)
992+func isPoolSwapDisabledREADONLY (af) = {
993+ let ec = cq(af)
994+ let aq = $Tuple2(parseIntValue(ec[C]), parseIntValue(ec[D]))
995+ let fv = valueOrElse(getBoolean(at(aq)), false)
996+ let fw = valueOrElse(getBoolean(av()), false)
997+ $Tuple2(nil, if (fw)
998+ then true
999+ else fv)
9691000 }
9701001
9711002
9721003
973-@Callable(bH)
974-func getOutFeeREADONLY (af) = {
975- let fj = cx(aN(af), aO(), fraction(10, b, 10000))
976- $Tuple2(nil, fj)
1004+@Callable(bM)
1005+func getInFeeREADONLY (af) = {
1006+ let fx = cC(aK(af), aL(), 0)
1007+ $Tuple2(nil, fx)
9771008 }
9781009
9791010
9801011
981-@Callable(bH)
982-func getSwapFeeREADONLY (fk) = {
983- let fl = {
984- let bj = getString(this, aM(fk))
985- if ($isInstanceOf(bj, "String"))
986- then {
987- let bk = bj
988- let fm = split(bk, m)
989- let fn = parseIntValue(fm[1])
990- let fo = parseIntValue(fm[2])
991- $Tuple2(fn, fo)
992- }
993- else if ($isInstanceOf(bj, "Unit"))
994- then unit
995- else throw("Match error")
996- }
997- $Tuple2(nil, fl)
1012+@Callable(bM)
1013+func getOutFeeREADONLY (af) = {
1014+ let fx = cC(aN(af), aO(), fraction(10, b, 10000))
1015+ $Tuple2(nil, fx)
9981016 }
9991017
10001018
10011019
1002-@Callable(bH)
1003-func poolInfoREADONLY (fp,fq) = {
1004- let fr = getInteger(this, ak(fp))
1005- let fs = getInteger(this, ak(fq))
1006- let ft = getString(this, aE(value(fr), value(fs)))
1007- let fu = getString(this, aF(value(ft)))
1008- let dK = if (if (isDefined(fr))
1009- then isDefined(fs)
1010- else false)
1011- then isDefined(ft)
1012- else false
1013- let fv = if (dK)
1014- then $Tuple2(addressFromStringValue(value(ft)), bg(value(fu)))
1015- else unit
1016- $Tuple2(nil, fv)
1017- }
1018-
1019-
1020-
1021-@Callable(bH)
1022-func getPoolStatusREADONLY (af) = {
1023- let cm = split(bc(aC(af)), m)
1024- let an = cm[1]
1025- let ao = cm[2]
1026- let cD = split(bc(am(an, ao)), m)
1027- $Tuple2(nil, parseIntValue(cD[w]))
1028- }
1029-
1030-
1031-
1032-@Callable(bH)
1033-func getPoolConfigREADONLY (af) = {
1034- let cm = split(bc(aC(af)), m)
1035- let an = cm[1]
1036- let ao = cm[2]
1037- let cD = split(bc(am(an, ao)), m)
1038- $Tuple2(nil, cD)
1039- }
1040-
1041-
1042-
1043-@Callable(bH)
1044-func getPoolConfigByLpAssetIdREADONLY (dP) = {
1045- let cm = split(bc(aw(dP)), m)
1046- let an = cm[1]
1047- let ao = cm[2]
1048- let cD = split(bc(am(an, ao)), m)
1049- $Tuple2(nil, cD)
1050- }
1051-
1052-
1053-
1054-@Callable(bH)
1055-func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cA(aI, aJ))
1056-
1057-
1058-
1059-@Callable(bH)
1060-func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aP(af)), false))
1061-
1062-
1063-
1064-@Callable(bH)
1065-func getChangeAmpConfigREADONLY (af) = {
1066- let fw = getIntegerValue(aQ(af))
1067- let fx = getIntegerValue(aR(af))
1068- let fy = getIntegerValue(aS(af))
1069- $Tuple2(nil, [fw, fx, fy])
1070- }
1071-
1072-
1073-
1074-@Callable(bH)
1075-func getPoolWeightREADONLY (bZ) = {
1076- let af = bc(aG(bZ))
1077- let fz = valueOrElse(getInteger(ae(af)), 0)
1020+@Callable(bM)
1021+func getSwapFeeREADONLY (fy) = {
1022+ let fz = {
1023+ let bo = getString(this, aM(fy))
1024+ if ($isInstanceOf(bo, "String"))
1025+ then {
1026+ let bp = bo
1027+ let fA = split(bp, m)
1028+ let fB = parseIntValue(fA[1])
1029+ let fC = parseIntValue(fA[2])
1030+ $Tuple2(fB, fC)
1031+ }
1032+ else if ($isInstanceOf(bo, "Unit"))
1033+ then unit
1034+ else throw("Match error")
1035+ }
10781036 $Tuple2(nil, fz)
10791037 }
10801038
10811039
10821040
1083-@Callable(bH)
1041+@Callable(bM)
1042+func poolInfoREADONLY (fD,fE) = {
1043+ let fF = getInteger(this, ak(fD))
1044+ let fG = getInteger(this, ak(fE))
1045+ let fH = getString(this, aE(value(fF), value(fG)))
1046+ let fI = getString(this, aF(value(fH)))
1047+ let dP = if (if (isDefined(fF))
1048+ then isDefined(fG)
1049+ else false)
1050+ then isDefined(fH)
1051+ else false
1052+ let fJ = if (dP)
1053+ then $Tuple2(addressFromStringValue(value(fH)), bl(value(fI)))
1054+ else unit
1055+ $Tuple2(nil, fJ)
1056+ }
1057+
1058+
1059+
1060+@Callable(bM)
1061+func getPoolStatusREADONLY (af) = {
1062+ let cr = split(bh(aC(af)), m)
1063+ let an = cr[1]
1064+ let ao = cr[2]
1065+ let cI = split(bh(am(an, ao)), m)
1066+ $Tuple2(nil, parseIntValue(cI[w]))
1067+ }
1068+
1069+
1070+
1071+@Callable(bM)
1072+func getPoolConfigREADONLY (af) = {
1073+ let cr = split(bh(aC(af)), m)
1074+ let an = cr[1]
1075+ let ao = cr[2]
1076+ let cI = split(bh(am(an, ao)), m)
1077+ $Tuple2(nil, cI)
1078+ }
1079+
1080+
1081+
1082+@Callable(bM)
1083+func getPoolConfigByLpAssetIdREADONLY (dU) = {
1084+ let cr = split(bh(aw(dU)), m)
1085+ let an = cr[1]
1086+ let ao = cr[2]
1087+ let cI = split(bh(am(an, ao)), m)
1088+ $Tuple2(nil, cI)
1089+ }
1090+
1091+
1092+
1093+@Callable(bM)
1094+func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cF(aI, aJ))
1095+
1096+
1097+
1098+@Callable(bM)
1099+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aP(af)), false))
1100+
1101+
1102+
1103+@Callable(bM)
1104+func getChangeAmpConfigREADONLY (af) = {
1105+ let fk = getIntegerValue(aQ(af))
1106+ let fl = getIntegerValue(aR(af))
1107+ let fm = getIntegerValue(aS(af))
1108+ $Tuple2(nil, [fk, fl, fm])
1109+ }
1110+
1111+
1112+
1113+@Callable(bM)
1114+func getPoolWeightREADONLY (ce) = {
1115+ let af = bh(aG(ce))
1116+ let fK = valueOrElse(getInteger(ae(af)), 0)
1117+ $Tuple2(nil, fK)
1118+ }
1119+
1120+
1121+
1122+@Callable(bM)
10841123 func deletePool (aD) = {
1085- let dX = cl(aD)
1086- let dq = if ((toString(bH.caller) == cH(aD)))
1087- then if (cP(aD))
1124+ let ec = cq(aD)
1125+ let dv = if ((toString(bM.caller) == cM(aD)))
1126+ then if (cU(aD))
10881127 then true
10891128 else K("Pool is not empty")
1090- else bI(bH)
1091- if ((dq == dq))
1129+ else bN(bM)
1130+ if ((dv == dv))
10921131 then {
1093- let fA = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
1132+ let fL = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
10941133 then true
10951134 else K("Pool weight is not Zero")
1096- if ((fA == fA))
1135+ if ((fL == fL))
10971136 then {
1098- let fB = if ((dX[w] == toString(r)))
1137+ let fM = if ((ec[w] == toString(r)))
10991138 then true
11001139 else K("Pool must be SHUTDOWN (4)")
1101- if ((fB == fB))
1140+ if ((fM == fM))
11021141 then {
1103- let fC = cG(aD)
1104- let aI = fC._1
1105- let aJ = fC._2
1106- let bZ = fC._3
1107- let an = fC._4
1108- let ao = fC._5
1109- let cJ = addressFromStringValue(getStringValue(Z()))
1110- let fD = invoke(cJ, "deletePool", [aI, aJ], nil)
1111- if ((fD == fD))
1142+ let fN = cL(aD)
1143+ let aI = fN._1
1144+ let aJ = fN._2
1145+ let ce = fN._3
1146+ let an = fN._4
1147+ let ao = fN._5
1148+ let cO = addressFromStringValue(getStringValue(Z()))
1149+ let fO = invoke(cO, "deletePool", [aI, aJ], nil)
1150+ if ((fO == fO))
11121151 then {
1113- let dw = addressFromStringValue(getStringValue(Y()))
1114- let fE = invoke(dw, "deletePool", [aI, aJ], nil)
1115- if ((fE == fE))
1152+ let dB = addressFromStringValue(getStringValue(Y()))
1153+ let fP = invoke(dB, "deletePool", [aI, aJ], nil)
1154+ if ((fP == fP))
11161155 then {
1117- let dv = addressFromStringValue(getStringValue(X()))
1118- let fF = invoke(dv, "deletePool", [aI, aJ], nil)
1119- if ((fF == fF))
1120- then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(bZ)), DeleteEntry(aG(bZ)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aP(aD)), DeleteEntry(aQ(aD)), DeleteEntry(aR(aD)), DeleteEntry(aS(aD))]
1156+ let dA = addressFromStringValue(getStringValue(X()))
1157+ let fQ = invoke(dA, "deletePool", [aI, aJ], nil)
1158+ if ((fQ == fQ))
1159+ then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(ce)), DeleteEntry(aG(ce)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aP(aD)), DeleteEntry(aQ(aD)), DeleteEntry(aR(aD)), DeleteEntry(aS(aD)), DeleteEntry(bc(aD)), DeleteEntry(bf(aD))]
11211160 else throw("Strict value is not equal to itself.")
11221161 }
11231162 else throw("Strict value is not equal to itself.")
11321171 }
11331172
11341173
1135-
1136-@Callable(bH)
1137-func invert (fk) = {
1138- let fG = [bI(bH)]
1139- if ((fG == fG))
1140- then {
1141- let cJ = addressFromStringValue(getStringValue(Z()))
1142- let dw = addressFromStringValue(getStringValue(Y()))
1143- let af = addressFromStringValue(fk)
1144- let dX = cl(fk)
1145- let bY = dX[w]
1146- let dP = dX[x]
1147- let ca = dX[y]
1148- let cb = dX[z]
1149- let dM = parseIntValue(dX[A])
1150- let dN = parseIntValue(dX[B])
1151- let dF = parseIntValue(dX[C])
1152- let dH = parseIntValue(dX[D])
1153- let dY = parseIntValue(dX[E])
1154- let ch = dX[F]
1155- let fH = [invoke(af, "invert", nil, nil), invoke(dw, "invert", [ca, cb], nil)]
1156- if ((fH == fH))
1157- then {
1158- let fI = valueOrElse(getBoolean(this, aH(ca, cb)), false)
1159- let fJ = if (fI)
1160- then [DeleteEntry(aH(ca, cb)), BooleanEntry(aH(cb, ca), fI)]
1161- else nil
1162- $Tuple2(([StringEntry(am(toString(dH), toString(dF)), bX(fk, bY, dP, cb, ca, dN, dM, dH, dF, dY, ch)), DeleteEntry(am(toString(dF), toString(dH))), StringEntry(aw(dP), ci(dH, dF)), DeleteEntry(ay(toString(dF), toString(dH))), StringEntry(ay(toString(dH), toString(dF)), ("%s__" + dP)), StringEntry(aC(fk), ci(dH, dF)), DeleteEntry(aE(dF, dH)), StringEntry(aE(dH, dF), fk)] ++ fJ), unit)
1163- }
1164- else throw("Strict value is not equal to itself.")
1165- }
1166- else throw("Strict value is not equal to itself.")
1167- }
1168-
1169-
1170-@Verifier(fK)
1171-func fL () = {
1172- let fM = {
1173- let bj = bC()
1174- if ($isInstanceOf(bj, "ByteVector"))
1174+@Verifier(fR)
1175+func fS () = {
1176+ let fT = {
1177+ let bo = bH()
1178+ if ($isInstanceOf(bo, "ByteVector"))
11751179 then {
1176- let bJ = bj
1177- bJ
1180+ let bO = bo
1181+ bO
11781182 }
1179- else if ($isInstanceOf(bj, "Unit"))
1180- then fK.senderPublicKey
1183+ else if ($isInstanceOf(bo, "Unit"))
1184+ then fR.senderPublicKey
11811185 else throw("Match error")
11821186 }
1183- sigVerify(fK.bodyBytes, fK.proofs[0], fM)
1187+ sigVerify(fR.bodyBytes, fR.proofs[0], fT)
11841188 }
11851189
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 = 1000000000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = b
1515
1616 let g = "GWXvirtualPOOL"
1717
1818 let h = "POOLS_LP"
1919
2020 let i = 2000000
2121
2222 let j = "WAVES"
2323
2424 let k = "factory_v2.ride"
2525
2626 let l = ((100 * 1000) * 1000)
2727
2828 let m = "__"
2929
3030 let n = ""
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 1
4747
4848 let w = 2
4949
5050 let x = 3
5151
5252 let y = 4
5353
5454 let z = 5
5555
5656 let A = 6
5757
5858 let B = 7
5959
6060 let C = 8
6161
6262 let D = 9
6363
6464 let E = 10
6565
6666 let F = 11
6767
6868 let G = "WX_EMISSION"
6969
7070 let H = [G]
7171
7272 func I (J) = makeString([k, ": ", J], "")
7373
7474
7575 func K (J) = throw(I(J))
7676
7777
7878 func L () = "%s__allowedLpScriptHash"
7979
8080
8181 func M () = "%s__allowedLpStableScriptHash"
8282
8383
8484 func N () = "%s__swapContract"
8585
8686
8787 func O () = "%s__factoryConfig"
8888
8989
9090 func P () = "%s__lpTokensList"
9191
9292
9393 func Q () = "%s%s__pool__scriptHash"
9494
9595
9696 func R () = "%s%s__matcher__publicKey"
9797
9898
9999 func S () = "%s__legacyFactoryContract"
100100
101101
102102 func T () = "%s__legacyPools"
103103
104104
105105 func U () = "%s__managerPublicKey"
106106
107107
108108 func V () = "%s__managerVaultAddress"
109109
110110
111111 func W () = "%s__adminPubKeys"
112112
113113
114114 func X () = "%s__assetsStoreContract"
115115
116116
117117 func Y () = "%s__votingEmissionContract"
118118
119119
120120 func Z () = "%s__userPoolsContract"
121121
122122
123123 func aa () = makeString(["%s", "priceAssets"], m)
124124
125125
126126 func ab () = "%s__priceDecimals"
127127
128128
129129 func ac () = "%s__shutdown"
130130
131131
132132 func ad () = "%s__nextInternalAssetId"
133133
134134
135135 func ae (af) = ("%s%s__poolWeight__" + af)
136136
137137
138138 func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
139139
140140
141141 func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142142
143143
144144 func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145145
146146
147147 func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148148
149149
150150 func ap (aq) = {
151151 let ar = aq
152152 let an = ar._1
153153 let ao = ar._2
154154 makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
155155 }
156156
157157
158158 func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
159159
160160
161161 func at (aq) = {
162162 let au = aq
163163 let an = au._1
164164 let ao = au._2
165165 makeString(["%d%d%s", toString(an), toString(ao), "swapDisabled"], m)
166166 }
167167
168168
169169 func av () = makeString(["%s", "swapDisabled"], m)
170170
171171
172172 func aw (ax) = (("%s%s%s__" + ax) + "__mappings__lpAsset2Pool")
173173
174174
175175 func ay (az,aA) = (((("%d%d%s%s__" + az) + "__") + aA) + "__mappings__PoolAssets2LpAsset")
176176
177177
178178 func aB (af) = ("%s%s__spread__" + af)
179179
180180
181181 func aC (aD) = (("%s%s%s__" + aD) + "__mappings__poolContract2PoolAssets")
182182
183183
184184 func aE (az,aA) = (((("%d%d%s%s__" + toString(az)) + "__") + toString(aA)) + "__mappings__poolAssets2PoolContract")
185185
186186
187187 func aF (aD) = (("%s%s%s__" + aD) + "__mappings__poolContract2LpAsset")
188188
189189
190190 func aG (ax) = (("%s%s%s__" + ax) + "__mappings__lpAsset2PoolContract")
191191
192192
193193 func aH (aI,aJ) = ((("%s%s%s__wxEmission__" + aI) + "__") + aJ)
194194
195195
196196 func aK (af) = ("%s%s__inFee__" + af)
197197
198198
199199 func aL () = "%s__inFeeDefault"
200200
201201
202202 func aM (af) = ("%s%s__swapFee__" + af)
203203
204204
205205 func aN (af) = ("%s%s__outFee__" + af)
206206
207207
208208 func aO () = "%s__outFeeDefault"
209209
210210
211211 func aP (af) = ("%s%s__skipOrderValidation__" + af)
212212
213213
214214 func aQ (af) = ("%s%s__changeAmpDelay__" + af)
215215
216216
217217 func aR (af) = ("%s%s__changeAmpDelta__" + af)
218218
219219
220220 func aS (af) = ("%s%s__changeAmpTarget__" + af)
221221
222222
223223 func aT () = "%s__sWavesProxyAddress"
224224
225225
226226 func aU () = "%s__sWavesAssetId"
227227
228228
229229 func aV () = "%s__stakingProfitAddress"
230230
231231
232232 func aW (af,aX) = makeString(["%s%s%s", "leasedRatio", af, aX], m)
233233
234234
235235 func aY (aX) = makeString(["%s%s", "leasedRatioDefault", aX], m)
236236
237237
238238 func aZ (af,aX) = makeString(["%s%s%s", "leasedRatioTolerance", af, aX], m)
239239
240240
241241 func ba (af,aX) = makeString(["%s%s%s", "minBalance", af, aX], m)
242242
243243
244244 func bb (aX) = makeString(["%s%s", "minBalanceDefault", aX], m)
245245
246246
247-func bc (bd) = valueOrErrorMessage(getString(this, bd), ("No data for this.key=" + bd))
247+func bc (af) = makeString(["%s%s", "amp", af], m)
248248
249249
250-func be (bd) = valueOrErrorMessage(getBoolean(this, bd), ("No data for this.key=" + bd))
250+func bd (af,be) = makeString(["%s%s%d", "amp", af, toString(be)], m)
251251
252252
253-func bf (bd) = valueOrErrorMessage(getInteger(this, bd), ("No data for this.key=" + bd))
253+func bf (af) = makeString(["%s%s", "changeAmpLastCall", af], m)
254254
255255
256-func bg (bh) = if ((bh == j))
257- then unit
258- else fromBase58String(bh)
256+let bg = 50
257+
258+func bh (bi) = valueOrErrorMessage(getString(this, bi), ("No data for this.key=" + bi))
259259
260260
261-func bi () = {
262- let bj = getString(V())
263- if ($isInstanceOf(bj, "String"))
261+func bj (bi) = valueOrErrorMessage(getBoolean(this, bi), ("No data for this.key=" + bi))
262+
263+
264+func bk (bi) = valueOrErrorMessage(getInteger(this, bi), ("No data for this.key=" + bi))
265+
266+
267+func bl (bm) = if ((bm == j))
268+ then unit
269+ else fromBase58String(bm)
270+
271+
272+func bn () = {
273+ let bo = getString(V())
274+ if ($isInstanceOf(bo, "String"))
264275 then {
265- let bk = bj
266- addressFromStringValue(bk)
276+ let bp = bo
277+ addressFromStringValue(bp)
267278 }
268279 else this
269280 }
270281
271282
272-let bl = 1
283+let bq = 1
273284
274-let bm = 2
285+let br = 2
275286
276-let bn = 3
287+let bs = 3
277288
278-let bo = 4
289+let bt = 4
279290
280-let bp = 5
291+let bu = 5
281292
282-let bq = 6
293+let bv = 6
283294
284-let br = 7
295+let bw = 7
285296
286-let bs = 8
297+let bx = 8
287298
288-let bt = 9
299+let by = 9
289300
290-let bu = 10
301+let bz = 10
291302
292-let bv = 11
303+let bA = 11
293304
294-func bw (bx) = addressFromStringValue(bx[bm])
305+func bB (bC) = addressFromStringValue(bC[br])
295306
296307
297-func by (bx) = addressFromStringValue(bx[bp])
308+func bD (bC) = addressFromStringValue(bC[bu])
298309
299310
300-func bz (bx) = addressFromStringValue(bx[bl])
311+func bE (bC) = addressFromStringValue(bC[bq])
301312
302313
303-func bA (bx) = addressFromStringValue(bx[bu])
314+func bF (bC) = addressFromStringValue(bC[bz])
304315
305316
306-func bB () = {
307- let bj = getString(aa())
308- if ($isInstanceOf(bj, "String"))
317+func bG () = {
318+ let bo = getString(aa())
319+ if ($isInstanceOf(bo, "String"))
309320 then {
310- let bk = bj
311- if ((size(bk) == 0))
321+ let bp = bo
322+ if ((size(bp) == 0))
312323 then nil
313- else split_4C(bk, m)
324+ else split_4C(bp, m)
314325 }
315326 else nil
316327 }
317328
318329
319-func bC () = {
320- let bD = bi()
321- let bj = getString(bD, U())
322- if ($isInstanceOf(bj, "String"))
330+func bH () = {
331+ let bI = bn()
332+ let bo = getString(bI, U())
333+ if ($isInstanceOf(bo, "String"))
323334 then {
324- let bk = bj
325- fromBase58String(bk)
335+ let bp = bo
336+ fromBase58String(bp)
326337 }
327- else if ($isInstanceOf(bj, "Unit"))
338+ else if ($isInstanceOf(bo, "Unit"))
328339 then unit
329340 else throw("Match error")
330341 }
331342
332343
333-let bE = K("Permission denied")
344+let bJ = K("Permission denied")
334345
335-let bF = K("Test error here")
346+let bK = K("Test error here")
336347
337-func bG (bH) = if ((bH.caller == this))
348+func bL (bM) = if ((bM.caller == this))
338349 then true
339- else bE
350+ else bJ
340351
341352
342-func bI (bH) = {
343- let bj = bC()
344- if ($isInstanceOf(bj, "ByteVector"))
353+func bN (bM) = {
354+ let bo = bH()
355+ if ($isInstanceOf(bo, "ByteVector"))
345356 then {
346- let bJ = bj
347- if ((bH.callerPublicKey == bJ))
357+ let bO = bo
358+ if ((bM.callerPublicKey == bO))
348359 then true
349- else bE
360+ else bJ
350361 }
351- else if ($isInstanceOf(bj, "Unit"))
352- then bG(bH)
362+ else if ($isInstanceOf(bo, "Unit"))
363+ then bL(bM)
353364 else throw("Match error")
354365 }
355366
356367
357-func bK (bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bL, bM, bN, bO, bP, bQ, bR, bS, bT, bU, bV], m)
368+func bP (bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ,ca) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bQ, bR, bS, bT, bU, bV, bW, bX, bY, bZ, ca], m)
358369
359370
360-func bW (bL,bM,bN,bO,bP,bQ,bR) = makeString(["%s%s%s%s%s%s", bL, bM, bN, bO, bP, bQ, bR], m)
371+func cb (bQ,bR,bS,bT,bU,bV,bW) = makeString(["%s%s%s%s%s%s", bQ, bR, bS, bT, bU, bV, bW], m)
361372
362373
363-func bX (af,bY,bZ,ca,cb,cc,cd,ce,cf,cg,ch) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bY, bZ, ca, cb, toString(cc), toString(cd), toString(ce), toString(cf), toString(cg), ch], m)
374+func cc (af,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, cd, ce, cf, cg, toString(ch), toString(ci), toString(cj), toString(ck), toString(cl), cm], m)
364375
365376
366-func ci (cj,ck) = makeString(["%d%d", toString(cj), toString(ck)], m)
377+func cn (co,cp) = makeString(["%d%d", toString(co), toString(cp)], m)
367378
368379
369-func cl (af) = {
370- let cm = split(bc(aC(af)), m)
371- let an = cm[1]
372- let ao = cm[2]
373- split(bc(am(an, ao)), m)
380+func cq (af) = {
381+ let cr = split(bh(aC(af)), m)
382+ let an = cr[1]
383+ let ao = cr[2]
384+ split(bh(am(an, ao)), m)
374385 }
375386
376387
377-func cn (co,cp) = {
378- let cq = valueOrElse(getInteger(this, ak(co)), 0)
379- let cr = valueOrElse(getInteger(this, ad()), 0)
380- let cs = if ((cq == 0))
388+func cs (ct,cu) = {
389+ let cv = valueOrElse(getInteger(this, ak(ct)), 0)
390+ let cw = valueOrElse(getInteger(this, ad()), 0)
391+ let cx = if ((cv == 0))
381392 then {
382- let ct = (cr + cp)
383- $Tuple3(ct, [IntegerEntry(ad(), ct), IntegerEntry(ak(co), ct), StringEntry(ai(ct), co)], true)
393+ let cy = (cw + cu)
394+ $Tuple3(cy, [IntegerEntry(ad(), cy), IntegerEntry(ak(ct), cy), StringEntry(ai(cy), ct)], true)
384395 }
385- else $Tuple3(cq, nil, false)
386- cs
396+ else $Tuple3(cv, nil, false)
397+ cx
387398 }
388399
389400
390-func cu (bH) = {
391- let cv = split(valueOrElse(getString(W()), n), m)
392- if (containsElement(cv, toBase58String(bH.callerPublicKey)))
401+func cz (bM) = {
402+ let cA = split(valueOrElse(getString(W()), n), m)
403+ if (containsElement(cA, toBase58String(bM.callerPublicKey)))
393404 then true
394405 else {
395- let cw = bI(bH)
396- if ((cw == cw))
406+ let cB = bN(bM)
407+ if ((cB == cB))
397408 then true
398409 else throw("Strict value is not equal to itself.")
399410 }
400411 }
401412
402413
403-func cx (bd,cy,cz) = valueOrElse(getInteger(this, bd), valueOrElse(getInteger(this, cy), cz))
414+func cC (bi,cD,cE) = valueOrElse(getInteger(this, bi), valueOrElse(getInteger(this, cD), cE))
404415
405416
406-func cA (aI,aJ) = {
417+func cF (aI,aJ) = {
407418 let an = getInteger(ak(aI))
408419 let ao = getInteger(ak(aJ))
409420 if (if ((an == unit))
410421 then true
411422 else (ao == unit))
412423 then false
413424 else {
414- let cB = toString(value(an))
415- let cC = toString(value(ao))
416- let cD = getString(am(cB, cC))
417- let cE = getString(am(cC, cB))
418- let cF = if ((cD != unit))
425+ let cG = toString(value(an))
426+ let cH = toString(value(ao))
427+ let cI = getString(am(cG, cH))
428+ let cJ = getString(am(cH, cG))
429+ let cK = if ((cI != unit))
419430 then true
420- else (cE != unit)
421- cF
431+ else (cJ != unit)
432+ cK
422433 }
423434 }
424435
425436
426-func cG (aD) = {
427- let cm = {
428- let bj = getString(aC(aD))
429- if ($isInstanceOf(bj, "String"))
437+func cL (aD) = {
438+ let cr = {
439+ let bo = getString(aC(aD))
440+ if ($isInstanceOf(bo, "String"))
430441 then {
431- let bk = bj
432- split(bk, m)
442+ let bp = bo
443+ split(bp, m)
433444 }
434445 else K(makeString([aD, "pool is not found"], " "))
435446 }
436- let an = parseIntValue(cm[1])
437- let ao = parseIntValue(cm[2])
447+ let an = parseIntValue(cr[1])
448+ let ao = parseIntValue(cr[2])
438449 let aI = getStringValue(ai(an))
439450 let aJ = getStringValue(ai(ao))
440- let bZ = getStringValue(aF(aD))
441- $Tuple5(aI, aJ, bZ, an, ao)
451+ let ce = getStringValue(aF(aD))
452+ $Tuple5(aI, aJ, ce, an, ao)
442453 }
443454
444455
445-func cH (aD) = {
446- let cI = cG(aD)
447- let aI = cI._1
448- let aJ = cI._2
449- let bZ = cI._3
450- let an = cI._4
451- let ao = cI._5
452- let cJ = addressFromStringValue(getStringValue(Z()))
453- let cK = invoke(cJ, "getPoolCreatorREADONLY", [aI, aJ], nil)
454- cK
456+func cM (aD) = {
457+ let cN = cL(aD)
458+ let aI = cN._1
459+ let aJ = cN._2
460+ let ce = cN._3
461+ let an = cN._4
462+ let ao = cN._5
463+ let cO = addressFromStringValue(getStringValue(Z()))
464+ let cP = invoke(cO, "getPoolCreatorREADONLY", [aI, aJ], nil)
465+ cP
455466 }
456467
457468
458-func cL (cM,cN) = {
459- let cO = addressFromStringValue(cM)
460- if ((cN == "WAVES"))
461- then wavesBalance(cO).regular
469+func cQ (cR,cS) = {
470+ let cT = addressFromStringValue(cR)
471+ if ((cS == "WAVES"))
472+ then wavesBalance(cT).regular
462473 else {
463- let aX = fromBase58String(cN)
464- assetBalance(cO, aX)
474+ let aX = fromBase58String(cS)
475+ assetBalance(cT, aX)
465476 }
466477 }
467478
468479
469-func cP (aD) = {
470- let cQ = cG(aD)
471- let aI = cQ._1
472- let aJ = cQ._2
473- let bZ = cQ._3
474- let an = cQ._4
475- let ao = cQ._5
476- if ((cL(aD, aI) == 0))
477- then (cL(aD, aJ) == 0)
480+func cU (aD) = {
481+ let cV = cL(aD)
482+ let aI = cV._1
483+ let aJ = cV._2
484+ let ce = cV._3
485+ let an = cV._4
486+ let ao = cV._5
487+ if ((cQ(aD, aI) == 0))
488+ then (cQ(aD, aJ) == 0)
478489 else false
479490 }
480491
481492
482-@Callable(bH)
483-func getSwapContractREADONLY () = $Tuple2(nil, bc(N()))
493+@Callable(bM)
494+func getSwapContractREADONLY () = $Tuple2(nil, bh(N()))
484495
485496
486497
487-@Callable(bH)
498+@Callable(bM)
488499 func getPoolLeaseConfigREADONLY (af,aX) = {
489- let cR = {
490- let bj = getInteger(this, aW(af, aX))
491- if ($isInstanceOf(bj, "Int"))
500+ let cW = {
501+ let bo = getInteger(this, aW(af, aX))
502+ if ($isInstanceOf(bo, "Int"))
492503 then {
493- let cS = bj
494- $Tuple2(true, min([100, max([0, cS])]))
504+ let cX = bo
505+ $Tuple2(true, min([100, max([0, cX])]))
495506 }
496507 else {
497- let cT = getInteger(this, aY(aX))
498- if ($isInstanceOf(cT, "Int"))
508+ let cY = getInteger(this, aY(aX))
509+ if ($isInstanceOf(cY, "Int"))
499510 then {
500- let cU = cT
501- $Tuple2(true, min([100, max([0, cU])]))
511+ let cZ = cY
512+ $Tuple2(true, min([100, max([0, cZ])]))
502513 }
503514 else $Tuple2(false, 0)
504515 }
505516 }
506- let cV = cR._1
507- let cW = cR._2
508- let cX = {
509- let bj = getInteger(this, ba(af, aX))
510- if ($isInstanceOf(bj, "Int"))
517+ let da = cW._1
518+ let db = cW._2
519+ let dc = {
520+ let bo = getInteger(this, ba(af, aX))
521+ if ($isInstanceOf(bo, "Int"))
511522 then {
512- let cY = bj
513- max([0, cY])
523+ let dd = bo
524+ max([0, dd])
514525 }
515526 else {
516- let cT = getInteger(this, bb(aX))
517- if ($isInstanceOf(cT, "Int"))
527+ let cY = getInteger(this, bb(aX))
528+ if ($isInstanceOf(cY, "Int"))
518529 then {
519- let cZ = cT
520- max([0, cZ])
530+ let de = cY
531+ max([0, de])
521532 }
522533 else 0
523534 }
524535 }
525- let da = if ((aX == "WAVES"))
536+ let df = if ((aX == "WAVES"))
526537 then $Tuple3(valueOrElse(getString(this, aT()), ""), getString(this, valueOrElse(aU(), "")), c)
527538 else $Tuple3("", "", 0)
528- let db = da._1
529- let dc = da._2
530- let dd = da._3
531- let de = valueOrElse(getString(this, aV()), "")
532- $Tuple2(nil, $Tuple7(cV, cW, cX, db, dc, dd, de))
539+ let dg = df._1
540+ let dh = df._2
541+ let di = df._3
542+ let dj = valueOrElse(getString(this, aV()), "")
543+ $Tuple2(nil, $Tuple7(da, db, dc, dg, dh, di, dj))
533544 }
534545
535546
536547
537-@Callable(bH)
538-func getLpAssetFromPoolAssetsREADONLY (df,dg) = if (if ((df == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
539- then (dg == "WAVES")
548+@Callable(bM)
549+func getLpAssetFromPoolAssetsREADONLY (dk,dl) = if (if ((dk == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
550+ then (dl == "WAVES")
540551 else false)
541552 then $Tuple2(nil, unit)
542553 else {
543- let dh = value(getInteger(this, ak(df)))
544- let di = value(getInteger(this, ak(dg)))
545- let dj = getString(this, ay(toString(dh), toString(di)))
546- let dk = if ((dj == unit))
554+ let dm = value(getInteger(this, ak(dk)))
555+ let dn = value(getInteger(this, ak(dl)))
556+ let do = getString(this, ay(toString(dm), toString(dn)))
557+ let dp = if ((do == unit))
547558 then unit
548- else drop(value(dj), 4)
549- $Tuple2(nil, dk)
559+ else drop(value(do), 4)
560+ $Tuple2(nil, dp)
550561 }
551562
552563
553564
554-@Callable(bH)
555-func getPoolAddressFromLpAssetREADONLY (dl) = $Tuple2(nil, valueOrElse(getString(this, aG(dl)), ""))
565+@Callable(bM)
566+func getPoolAddressFromLpAssetREADONLY (dq) = $Tuple2(nil, valueOrElse(getString(this, aG(dq)), ""))
556567
557568
558569
559-@Callable(bH)
560-func constructor (dm,dn,bN,bO,bP,bQ,do,dp) = {
561- let dq = bI(bH)
562- if ((dq == dq))
563- then [StringEntry(O(), bW(dm, dn, bN, bO, bP, bQ, do)), IntegerEntry(ab(), dp)]
570+@Callable(bM)
571+func constructor (dr,ds,bS,bT,bU,bV,dt,du) = {
572+ let dv = bN(bM)
573+ if ((dv == dv))
574+ then [StringEntry(O(), cb(dr, ds, bS, bT, bU, bV, dt)), IntegerEntry(ab(), du)]
564575 else throw("Strict value is not equal to itself.")
565576 }
566577
567578
568579
569-@Callable(bH)
570-func constructorV2 (dr) = {
571- let dq = bI(bH)
572- if ((dq == dq))
580+@Callable(bM)
581+func constructorV2 (dw) = {
582+ let dv = bN(bM)
583+ if ((dv == dv))
573584 then {
574- let ds = addressFromPublicKey(fromBase58String(dr))
575- if ((ds == ds))
576- then [StringEntry(R(), dr)]
585+ let dx = addressFromPublicKey(fromBase58String(dw))
586+ if ((dx == dx))
587+ then [StringEntry(R(), dw)]
577588 else throw("Strict value is not equal to itself.")
578589 }
579590 else throw("Strict value is not equal to itself.")
580591 }
581592
582593
583594
584-@Callable(bH)
585-func constructorV3 (bS,bT,bU,bV) = {
586- let dq = bI(bH)
587- if ((dq == dq))
595+@Callable(bM)
596+func constructorV3 (bX,bY,bZ,ca) = {
597+ let dv = bN(bM)
598+ if ((dv == dv))
588599 then {
589- let bx = split(bc(O()), m)
590-[StringEntry(O(), bK(bx[1], bx[2], bx[3], bx[4], bx[5], bx[6], bx[7], bS, bT, bU, bV))]
600+ let bC = split(bh(O()), m)
601+[StringEntry(O(), bP(bC[1], bC[2], bC[3], bC[4], bC[5], bC[6], bC[7], bX, bY, bZ, ca))]
591602 }
592603 else throw("Strict value is not equal to itself.")
593604 }
594605
595606
596607
597-@Callable(bH)
598-func constructorV4 (dt,du) = {
599- let dq = bI(bH)
600- if ((dq == dq))
601- then [StringEntry(S(), dt), StringEntry(T(), makeString(du, m))]
608+@Callable(bM)
609+func constructorV4 (dy,dz) = {
610+ let dv = bN(bM)
611+ if ((dv == dv))
612+ then [StringEntry(S(), dy), StringEntry(T(), makeString(dz, m))]
602613 else throw("Strict value is not equal to itself.")
603614 }
604615
605616
606617
607-@Callable(bH)
608-func constructorV5 (dv) = {
609- let dq = bI(bH)
610- if ((dq == dq))
611- then [StringEntry(X(), dv)]
618+@Callable(bM)
619+func constructorV5 (dA) = {
620+ let dv = bN(bM)
621+ if ((dv == dv))
622+ then [StringEntry(X(), dA)]
612623 else throw("Strict value is not equal to itself.")
613624 }
614625
615626
616627
617-@Callable(bH)
618-func constructorV6 (dw,dx) = {
619- let dy = [bI(bH), if ((addressFromString(dw) != unit))
628+@Callable(bM)
629+func constructorV6 (dB,dC) = {
630+ let dD = [bN(bM), if ((addressFromString(dB) != unit))
620631 then true
621632 else "invalid voting emission contract address"]
622- if ((dy == dy))
623- then [StringEntry(Y(), dw), StringEntry(aa(), makeString(dx, m))]
633+ if ((dD == dD))
634+ then [StringEntry(Y(), dB), StringEntry(aa(), makeString(dC, m))]
624635 else throw("Strict value is not equal to itself.")
625636 }
626637
627638
628639
629-@Callable(bH)
630-func setAdmins (dz) = {
631- let dq = bI(bH)
632- if ((dq == dq))
633- then [StringEntry(W(), makeString(dz, m))]
640+@Callable(bM)
641+func setAdmins (dE) = {
642+ let dv = bN(bM)
643+ if ((dv == dv))
644+ then [StringEntry(W(), makeString(dE, m))]
634645 else throw("Strict value is not equal to itself.")
635646 }
636647
637648
638649
639-@Callable(bH)
640-func activateNewPool (af,ca,cb,dA,dB,dC,ch,dD) = {
641- let dq = cu(bH)
642- if ((dq == dq))
650+@Callable(bM)
651+func activateNewPool (af,cf,cg,dF,dG,dH,cm,dI) = {
652+ let dv = cz(bM)
653+ if ((dv == dv))
643654 then if (isDefined(getString(aC(af))))
644655 then K((("Pool address " + af) + " already registered."))
645656 else {
646- let dE = cn(ca, 1)
647- let dF = dE._1
648- let dG = cn(cb, if (dE._3)
657+ let dJ = cs(cf, 1)
658+ let dK = dJ._1
659+ let dL = cs(cg, if (dJ._3)
649660 then 2
650661 else 1)
651- let dH = dG._1
652- let dI = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
653- let dJ = getBinaryValue(Q())
654- let dK = cA(ca, cb)
655- if (dK)
656- then K((((("Pool " + ca) + "/") + cb) + " has already been activated."))
662+ let dM = dL._1
663+ let dN = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
664+ let dO = getBinaryValue(Q())
665+ let dP = cF(cf, cg)
666+ if (dP)
667+ then K((((("Pool " + cf) + "/") + cg) + " has already been activated."))
657668 else {
658- let dL = value(getString(this, am(toString(dF), toString(dH))))
659- let dM = if ((ca == "WAVES"))
669+ let dQ = value(getString(this, am(toString(dK), toString(dM))))
670+ let dR = if ((cf == "WAVES"))
660671 then l
661- else pow(10, 0, value(assetInfo(fromBase58String(ca))).decimals, 0, 0, DOWN)
662- let dN = if ((cb == "WAVES"))
672+ else pow(10, 0, value(assetInfo(fromBase58String(cf))).decimals, 0, 0, DOWN)
673+ let dS = if ((cg == "WAVES"))
663674 then l
664- else pow(10, 0, value(assetInfo(fromBase58String(cb))).decimals, 0, 0, DOWN)
665- let dO = Issue(dA, dB, 1, 8, true)
666- let bZ = calculateAssetId(dO)
667- let dP = toBase58String(bZ)
668- let dQ = invoke(addressFromStringValue(af), "activate", [ca, cb], nil)
669- if ((dQ == dQ))
670- then if ((dQ != "success"))
675+ else pow(10, 0, value(assetInfo(fromBase58String(cg))).decimals, 0, 0, DOWN)
676+ let dT = Issue(dF, dG, 1, 8, true)
677+ let ce = calculateAssetId(dT)
678+ let dU = toBase58String(ce)
679+ let dV = invoke(addressFromStringValue(af), "activate", [cf, cg], nil)
680+ if ((dV == dV))
681+ then if ((dV != "success"))
671682 then K("Pool initialisation error happened.")
672683 else {
673- let dv = addressFromStringValue(bc(X()))
674- let dR = invoke(dv, "createOrUpdate", [dP, dA, false], nil)
675- if ((dR == dR))
684+ let dA = addressFromStringValue(bh(X()))
685+ let dW = invoke(dA, "createOrUpdate", [dU, dF, false], nil)
686+ if ((dW == dW))
676687 then {
677- let dS = invoke(dv, "addLabel", [dP, h], nil)
678- if ((dS == dS))
688+ let dX = invoke(dA, "addLabel", [dU, h], nil)
689+ if ((dX == dX))
679690 then {
680- let dT = invoke(dv, "setLogo", [dP, dD], nil)
681- if ((dT == dT))
691+ let dY = invoke(dA, "setLogo", [dU, dI], nil)
692+ if ((dY == dY))
682693 then {
683- let dU = invoke(dv, "addAssetsLink", [ca, cb, dP], nil)
684- if ((dU == dU))
694+ let dZ = invoke(dA, "addAssetsLink", [cf, cg, dU], nil)
695+ if ((dZ == dZ))
685696 then {
686- let dV = invoke(dv, "increaseAssetPoolsNumber", [ca], nil)
687- if ((dV == dV))
688- then $Tuple2(((dE._2 ++ dG._2) ++ [dO, Burn(bZ, 1), StringEntry(am(toString(dF), toString(dH)), bX(af, toString(o), dP, ca, cb, dM, dN, dF, dH, l, ch)), StringEntry(aw(dP), ci(dF, dH)), StringEntry(ay(toString(dF), toString(dH)), ("%s__" + dP)), StringEntry(aC(af), ci(dF, dH)), StringEntry(aE(dF, dH), af), StringEntry(aG(dP), af), StringEntry(aF(af), dP), IntegerEntry(ae(af), dC), IntegerEntry(aB(af), i)]), dP)
697+ let ea = invoke(dA, "increaseAssetPoolsNumber", [cf], nil)
698+ if ((ea == ea))
699+ then $Tuple2(((dJ._2 ++ dL._2) ++ [dT, Burn(ce, 1), StringEntry(am(toString(dK), toString(dM)), cc(af, toString(o), dU, cf, cg, dR, dS, dK, dM, l, cm)), StringEntry(aw(dU), cn(dK, dM)), StringEntry(ay(toString(dK), toString(dM)), ("%s__" + dU)), StringEntry(aC(af), cn(dK, dM)), StringEntry(aE(dK, dM), af), StringEntry(aG(dU), af), StringEntry(aF(af), dU), IntegerEntry(ae(af), dH), IntegerEntry(aB(af), i), StringEntry(bc(af), toString(bg)), StringEntry(bd(af, height), toString(bg))]), dU)
689700 else throw("Strict value is not equal to itself.")
690701 }
691702 else throw("Strict value is not equal to itself.")
692703 }
693704 else throw("Strict value is not equal to itself.")
694705 }
695706 else throw("Strict value is not equal to itself.")
696707 }
697708 else throw("Strict value is not equal to itself.")
698709 }
699710 else throw("Strict value is not equal to itself.")
700711 }
701712 }
702713 else throw("Strict value is not equal to itself.")
703714 }
704715
705716
706717
707-@Callable(bH)
708-func managePool (af,dW) = {
709- let dq = bI(bH)
710- if ((dq == dq))
718+@Callable(bM)
719+func managePool (af,eb) = {
720+ let dv = bN(bM)
721+ if ((dv == dv))
711722 then {
712- let dX = cl(af)
713- let bY = dX[w]
714- let dP = dX[x]
715- let ca = dX[y]
716- let cb = dX[z]
717- let dM = parseIntValue(dX[A])
718- let dN = parseIntValue(dX[B])
719- let dF = parseIntValue(dX[C])
720- let dH = parseIntValue(dX[D])
721- let dY = parseIntValue(dX[E])
722- let ch = dX[F]
723-[StringEntry(am(toString(dF), toString(dH)), bX(af, toString(dW), dP, ca, cb, dM, dN, dF, dH, dY, ch))]
723+ let ec = cq(af)
724+ let cd = ec[w]
725+ let dU = ec[x]
726+ let cf = ec[y]
727+ let cg = ec[z]
728+ let dR = parseIntValue(ec[A])
729+ let dS = parseIntValue(ec[B])
730+ let dK = parseIntValue(ec[C])
731+ let dM = parseIntValue(ec[D])
732+ let ed = parseIntValue(ec[E])
733+ let cm = ec[F]
734+[StringEntry(am(toString(dK), toString(dM)), cc(af, toString(eb), dU, cf, cg, dR, dS, dK, dM, ed, cm))]
724735 }
725736 else throw("Strict value is not equal to itself.")
726737 }
727738
728739
729740
730-@Callable(bH)
731-func emit (dZ) = {
732- let ea = bH.caller
733- let eb = bH.originCaller
734- let ec = valueOrErrorMessage(getString(aF(toString(ea))), "Invalid LP address called me.")
735- let ed = fromBase58String(ec)
736- let du = split(valueOrElse(getString(T()), n), m)
737- let dt = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
738- if ((0 >= dZ))
741+@Callable(bM)
742+func emit (ee) = {
743+ let ef = bM.caller
744+ let eg = bM.originCaller
745+ let eh = valueOrErrorMessage(getString(aF(toString(ef))), "Invalid LP address called me.")
746+ let ei = fromBase58String(eh)
747+ let dz = split(valueOrElse(getString(T()), n), m)
748+ let dy = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
749+ if ((0 >= ee))
739750 then nil
740- else if (containsElement(du, toString(ea)))
741- then $Tuple2(nil, dt)
742- else $Tuple2([Reissue(ed, dZ, true), ScriptTransfer(bH.caller, dZ, ed)], "success")
751+ else if (containsElement(dz, toString(ef)))
752+ then $Tuple2(nil, dy)
753+ else $Tuple2([Reissue(ei, ee, true), ScriptTransfer(bM.caller, ee, ei)], "success")
743754 }
744755
745756
746757
747-@Callable(bH)
748-func burn (ee) = {
749- let ea = bH.caller
750- let eb = bH.originCaller
751- let ef = value(bH.payments[0])
752- let eg = value(ef.amount)
753- let eh = toBase58String(value(ef.assetId))
754- let ei = valueOrErrorMessage(getString(aF(toString(ea))), "Invalid LP address called me.")
755- if ((eh != ei))
758+@Callable(bM)
759+func burn (ej) = {
760+ let ef = bM.caller
761+ let eg = bM.originCaller
762+ let ek = value(bM.payments[0])
763+ let el = value(ek.amount)
764+ let em = toBase58String(value(ek.assetId))
765+ let en = valueOrErrorMessage(getString(aF(toString(ef))), "Invalid LP address called me.")
766+ if ((em != en))
756767 then K("Invalid asset passed.")
757- else if ((ee != eg))
768+ else if ((ej != el))
758769 then K("Invalid amount passed.")
759770 else {
760- let ed = fromBase58String(ei)
761- $Tuple2([Burn(ed, ee)], "success")
771+ let ei = fromBase58String(en)
772+ $Tuple2([Burn(ei, ej)], "success")
762773 }
763774 }
764775
765776
766777
767-@Callable(bH)
768-func modifyWeight (bZ,ej) = {
769- let dq = if ((toBase58String(bH.caller.bytes) == valueOrElse(getString(this, Y()), "")))
778+@Callable(bM)
779+func modifyWeight (ce,eo) = {
780+ let dv = if ((toBase58String(bM.caller.bytes) == valueOrElse(getString(this, Y()), "")))
770781 then true
771- else bI(bH)
772- if ((dq == dq))
782+ else bN(bM)
783+ if ((dv == dv))
773784 then {
774- let aD = bc(aG(bZ))
775- let ek = ae(aD)
776- let el = ae(g)
777- let em = valueOrElse(getInteger(el), 0)
778- let dC = valueOrElse(getInteger(ek), 0)
779- let en = ej
780- let bx = split(bc(O()), m)
781- let dm = bz(bx)
782- let eo = invoke(dm, "onModifyWeight", [bZ, aD], nil)
783- if ((eo == eo))
785+ let aD = bh(aG(ce))
786+ let ep = ae(aD)
787+ let eq = ae(g)
788+ let er = valueOrElse(getInteger(eq), 0)
789+ let dH = valueOrElse(getInteger(ep), 0)
790+ let es = eo
791+ let bC = split(bh(O()), m)
792+ let dr = bE(bC)
793+ let et = invoke(dr, "onModifyWeight", [ce, aD], nil)
794+ if ((et == et))
784795 then {
785- let ep = if ((em == 0))
796+ let eu = if ((er == 0))
786797 then nil
787- else [IntegerEntry(el, 0)]
788- let eq = ag(aD, 0)
789- let er = getInteger(eq)
790- let es = if ((er == unit))
798+ else [IntegerEntry(eq, 0)]
799+ let ev = ag(aD, 0)
800+ let ew = getInteger(ev)
801+ let ex = if ((ew == unit))
791802 then nil
792- else [DeleteEntry(eq)]
793- (([IntegerEntry(ek, en)] ++ ep) ++ es)
803+ else [DeleteEntry(ev)]
804+ (([IntegerEntry(ep, es)] ++ eu) ++ ex)
794805 }
795806 else throw("Strict value is not equal to itself.")
796807 }
797808 else throw("Strict value is not equal to itself.")
798809 }
799810
800811
801812
802-@Callable(bH)
803-func modifyWeights (et,eu,ev,ew) = {
804- let dq = bI(bH)
805- if ((dq == dq))
813+@Callable(bM)
814+func modifyWeights (ey,ez,eA,eB) = {
815+ let dv = bN(bM)
816+ if ((dv == dv))
806817 then {
807- let ex = ((5 * f) / 100)
808- let ey = ((5 * f) / 100)
809- let ez = ((5 * f) / 100)
810- let bx = split(bc(O()), m)
811- let eA = bz(bx)
812- let eB = bA(bx)
813- let eC = ae(et)
814- let eD = ae(eu)
815- let eE = ae(ev)
816- let eF = ae(ew)
817- let eG = bf(eC)
818- let eH = bf(eD)
819- let eI = (eG - ez)
820- let eJ = (eH - ez)
821- if ((0 >= eI))
822- then K(("invalid btcWeightNew: " + toString(eI)))
823- else if ((0 >= eJ))
824- then K(("invalid ethWeightNew: " + toString(eJ)))
818+ let eC = ((5 * f) / 100)
819+ let eD = ((5 * f) / 100)
820+ let eE = ((5 * f) / 100)
821+ let bC = split(bh(O()), m)
822+ let eF = bE(bC)
823+ let eG = bF(bC)
824+ let eH = ae(ey)
825+ let eI = ae(ez)
826+ let eJ = ae(eA)
827+ let eK = ae(eB)
828+ let eL = bk(eH)
829+ let eM = bk(eI)
830+ let eN = (eL - eE)
831+ let eO = (eM - eE)
832+ if ((0 >= eN))
833+ then K(("invalid btcWeightNew: " + toString(eN)))
834+ else if ((0 >= eO))
835+ then K(("invalid ethWeightNew: " + toString(eO)))
825836 else {
826- let eK = bc(aF(et))
827- let eL = bc(aF(eu))
828- let eM = bc(aF(ev))
829- let eN = bc(aF(ew))
830- let eO = invoke(eA, "onModifyWeight", [eK, et], nil)
831- if ((eO == eO))
837+ let eP = bh(aF(ey))
838+ let eQ = bh(aF(ez))
839+ let eR = bh(aF(eA))
840+ let eS = bh(aF(eB))
841+ let eT = invoke(eF, "onModifyWeight", [eP, ey], nil)
842+ if ((eT == eT))
832843 then {
833- let eP = invoke(eA, "onModifyWeight", [eL, eu], nil)
834- if ((eP == eP))
844+ let eU = invoke(eF, "onModifyWeight", [eQ, ez], nil)
845+ if ((eU == eU))
835846 then {
836- let eQ = invoke(eA, "onModifyWeight", [eM, ev], nil)
837- if ((eQ == eQ))
847+ let eV = invoke(eF, "onModifyWeight", [eR, eA], nil)
848+ if ((eV == eV))
838849 then {
839- let eR = invoke(eA, "onModifyWeight", [eN, ew], nil)
840- if ((eR == eR))
841- then [IntegerEntry(eC, eI), IntegerEntry(eD, eJ), IntegerEntry(eE, ex), IntegerEntry(eF, ey), IntegerEntry(ag(et, 0), eG), IntegerEntry(ag(eu, 0), eH), IntegerEntry(ag(ev, 0), ex), IntegerEntry(ag(ew, 0), ey)]
850+ let eW = invoke(eF, "onModifyWeight", [eS, eB], nil)
851+ if ((eW == eW))
852+ then [IntegerEntry(eH, eN), IntegerEntry(eI, eO), IntegerEntry(eJ, eC), IntegerEntry(eK, eD), IntegerEntry(ag(ey, 0), eL), IntegerEntry(ag(ez, 0), eM), IntegerEntry(ag(eA, 0), eC), IntegerEntry(ag(eB, 0), eD)]
842853 else throw("Strict value is not equal to itself.")
843854 }
844855 else throw("Strict value is not equal to itself.")
845856 }
846857 else throw("Strict value is not equal to itself.")
847858 }
848859 else throw("Strict value is not equal to itself.")
849860 }
850861 }
851862 else throw("Strict value is not equal to itself.")
852863 }
853864
854865
855866
856-@Callable(bH)
867+@Callable(bM)
857868 func checkWxEmissionPoolLabel (aI,aJ) = {
858- let eS = {
859- let bj = getBoolean(aH(aI, aJ))
860- if ($isInstanceOf(bj, "Boolean"))
869+ let eX = {
870+ let bo = getBoolean(aH(aI, aJ))
871+ if ($isInstanceOf(bo, "Boolean"))
861872 then {
862- let cY = bj
863- cY
873+ let dd = bo
874+ dd
864875 }
865876 else false
866877 }
867- $Tuple2(nil, eS)
878+ $Tuple2(nil, eX)
868879 }
869880
870881
871882
872-@Callable(bH)
883+@Callable(bM)
873884 func setWxEmissionPoolLabel (aI,aJ) = {
874- let dq = cu(bH)
875- if ((dq == dq))
885+ let dv = cz(bM)
886+ if ((dv == dv))
876887 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
877888 else throw("Strict value is not equal to itself.")
878889 }
879890
880891
881892
882-@Callable(bH)
893+@Callable(bM)
883894 func deleteWxEmissionPoolLabel (aI,aJ) = {
884- let dq = if ((bH.caller == this))
895+ let dv = if ((bM.caller == this))
885896 then true
886- else cu(bH)
887- if ((dq == dq))
897+ else cz(bM)
898+ if ((dv == dv))
888899 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
889900 else throw("Strict value is not equal to itself.")
890901 }
891902
892903
893904
894-@Callable(bH)
905+@Callable(bM)
895906 func onVerificationLoss (aX) = {
896- let dq = if ((toBase58String(bH.caller.bytes) == valueOrElse(getString(this, X()), "")))
907+ let dv = if ((toBase58String(bM.caller.bytes) == valueOrElse(getString(this, X()), "")))
897908 then true
898- else bI(bH)
899- if ((dq == dq))
909+ else bN(bM)
910+ if ((dv == dv))
900911 then {
901- let dx = bB()
902- let eT = if ((size(dx) > 0))
912+ let dC = bG()
913+ let eY = if ((size(dC) > 0))
903914 then true
904915 else K("invalid price assets")
905- if ((eT == eT))
916+ if ((eY == eY))
906917 then {
907- func eU (eV,eW) = {
908- let cS = invoke(this, "deleteWxEmissionPoolLabel", [aX, eW], nil)
909- if ((cS == cS))
918+ func eZ (fa,fb) = {
919+ let cX = invoke(this, "deleteWxEmissionPoolLabel", [aX, fb], nil)
920+ if ((cX == cX))
910921 then unit
911922 else throw("Strict value is not equal to itself.")
912923 }
913924
914- let eX = {
915- let eY = dx
916- let eZ = size(eY)
917- let fa = unit
918- func fb (fc,fd) = if ((fd >= eZ))
919- then fc
920- else eU(fc, eY[fd])
925+ let fc = {
926+ let fd = dC
927+ let fe = size(fd)
928+ let ff = unit
929+ func fg (fh,fi) = if ((fi >= fe))
930+ then fh
931+ else eZ(fh, fd[fi])
921932
922- func fe (fc,fd) = if ((fd >= eZ))
923- then fc
933+ func fj (fh,fi) = if ((fi >= fe))
934+ then fh
924935 else throw("List size exceeds 13")
925936
926- fe(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fb(fa, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
937+ fj(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(fg(ff, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
927938 }
928- if ((eX == eX))
939+ if ((fc == fc))
929940 then $Tuple2(nil, unit)
930941 else throw("Strict value is not equal to itself.")
931942 }
932943 else throw("Strict value is not equal to itself.")
933944 }
934945 else throw("Strict value is not equal to itself.")
935946 }
936947
937948
938949
939-@Callable(bH)
940-func isPoolOneTokenOperationsDisabledREADONLY (af) = {
941- let dX = cl(af)
942- let aq = $Tuple2(parseIntValue(dX[C]), parseIntValue(dX[D]))
943- let ff = valueOrElse(getBoolean(ap(aq)), false)
944- let fg = valueOrElse(getBoolean(as()), false)
945- $Tuple2(nil, if (fg)
950+@Callable(bM)
951+func changeAmp (af) = {
952+ let fk = getIntegerValue(aQ(af))
953+ let fl = getIntegerValue(aR(af))
954+ let fm = getIntegerValue(aS(af))
955+ let fn = parseIntValue(getStringValue(bc(af)))
956+ let fo = (fn + fl)
957+ let fp = if ((0 > fl))
958+ then if ((fm > fo))
959+ then fm
960+ else fo
961+ else if ((fo > fm))
962+ then fm
963+ else fo
964+ let fq = valueOrElse(getInteger(bf(af)), 0)
965+ let fr = (fq + fk)
966+ let fs = [if ((height > fr))
946967 then true
947- else ff)
968+ else K("try again in few blocks"), if ((fn != fp))
969+ then true
970+ else K("already reached target")]
971+ if ((fs == fs))
972+ then [IntegerEntry(bf(af), height), StringEntry(bc(af), toString(fp)), StringEntry(bd(af, height), toString(fp))]
973+ else throw("Strict value is not equal to itself.")
948974 }
949975
950976
951977
952-@Callable(bH)
953-func isPoolSwapDisabledREADONLY (af) = {
954- let dX = cl(af)
955- let aq = $Tuple2(parseIntValue(dX[C]), parseIntValue(dX[D]))
956- let fh = valueOrElse(getBoolean(at(aq)), false)
957- let fi = valueOrElse(getBoolean(av()), false)
958- $Tuple2(nil, if (fi)
978+@Callable(bM)
979+func isPoolOneTokenOperationsDisabledREADONLY (af) = {
980+ let ec = cq(af)
981+ let aq = $Tuple2(parseIntValue(ec[C]), parseIntValue(ec[D]))
982+ let ft = valueOrElse(getBoolean(ap(aq)), false)
983+ let fu = valueOrElse(getBoolean(as()), false)
984+ $Tuple2(nil, if (fu)
959985 then true
960- else fh)
986+ else ft)
961987 }
962988
963989
964990
965-@Callable(bH)
966-func getInFeeREADONLY (af) = {
967- let fj = cx(aK(af), aL(), 0)
968- $Tuple2(nil, fj)
991+@Callable(bM)
992+func isPoolSwapDisabledREADONLY (af) = {
993+ let ec = cq(af)
994+ let aq = $Tuple2(parseIntValue(ec[C]), parseIntValue(ec[D]))
995+ let fv = valueOrElse(getBoolean(at(aq)), false)
996+ let fw = valueOrElse(getBoolean(av()), false)
997+ $Tuple2(nil, if (fw)
998+ then true
999+ else fv)
9691000 }
9701001
9711002
9721003
973-@Callable(bH)
974-func getOutFeeREADONLY (af) = {
975- let fj = cx(aN(af), aO(), fraction(10, b, 10000))
976- $Tuple2(nil, fj)
1004+@Callable(bM)
1005+func getInFeeREADONLY (af) = {
1006+ let fx = cC(aK(af), aL(), 0)
1007+ $Tuple2(nil, fx)
9771008 }
9781009
9791010
9801011
981-@Callable(bH)
982-func getSwapFeeREADONLY (fk) = {
983- let fl = {
984- let bj = getString(this, aM(fk))
985- if ($isInstanceOf(bj, "String"))
986- then {
987- let bk = bj
988- let fm = split(bk, m)
989- let fn = parseIntValue(fm[1])
990- let fo = parseIntValue(fm[2])
991- $Tuple2(fn, fo)
992- }
993- else if ($isInstanceOf(bj, "Unit"))
994- then unit
995- else throw("Match error")
996- }
997- $Tuple2(nil, fl)
1012+@Callable(bM)
1013+func getOutFeeREADONLY (af) = {
1014+ let fx = cC(aN(af), aO(), fraction(10, b, 10000))
1015+ $Tuple2(nil, fx)
9981016 }
9991017
10001018
10011019
1002-@Callable(bH)
1003-func poolInfoREADONLY (fp,fq) = {
1004- let fr = getInteger(this, ak(fp))
1005- let fs = getInteger(this, ak(fq))
1006- let ft = getString(this, aE(value(fr), value(fs)))
1007- let fu = getString(this, aF(value(ft)))
1008- let dK = if (if (isDefined(fr))
1009- then isDefined(fs)
1010- else false)
1011- then isDefined(ft)
1012- else false
1013- let fv = if (dK)
1014- then $Tuple2(addressFromStringValue(value(ft)), bg(value(fu)))
1015- else unit
1016- $Tuple2(nil, fv)
1017- }
1018-
1019-
1020-
1021-@Callable(bH)
1022-func getPoolStatusREADONLY (af) = {
1023- let cm = split(bc(aC(af)), m)
1024- let an = cm[1]
1025- let ao = cm[2]
1026- let cD = split(bc(am(an, ao)), m)
1027- $Tuple2(nil, parseIntValue(cD[w]))
1028- }
1029-
1030-
1031-
1032-@Callable(bH)
1033-func getPoolConfigREADONLY (af) = {
1034- let cm = split(bc(aC(af)), m)
1035- let an = cm[1]
1036- let ao = cm[2]
1037- let cD = split(bc(am(an, ao)), m)
1038- $Tuple2(nil, cD)
1039- }
1040-
1041-
1042-
1043-@Callable(bH)
1044-func getPoolConfigByLpAssetIdREADONLY (dP) = {
1045- let cm = split(bc(aw(dP)), m)
1046- let an = cm[1]
1047- let ao = cm[2]
1048- let cD = split(bc(am(an, ao)), m)
1049- $Tuple2(nil, cD)
1050- }
1051-
1052-
1053-
1054-@Callable(bH)
1055-func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cA(aI, aJ))
1056-
1057-
1058-
1059-@Callable(bH)
1060-func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aP(af)), false))
1061-
1062-
1063-
1064-@Callable(bH)
1065-func getChangeAmpConfigREADONLY (af) = {
1066- let fw = getIntegerValue(aQ(af))
1067- let fx = getIntegerValue(aR(af))
1068- let fy = getIntegerValue(aS(af))
1069- $Tuple2(nil, [fw, fx, fy])
1070- }
1071-
1072-
1073-
1074-@Callable(bH)
1075-func getPoolWeightREADONLY (bZ) = {
1076- let af = bc(aG(bZ))
1077- let fz = valueOrElse(getInteger(ae(af)), 0)
1020+@Callable(bM)
1021+func getSwapFeeREADONLY (fy) = {
1022+ let fz = {
1023+ let bo = getString(this, aM(fy))
1024+ if ($isInstanceOf(bo, "String"))
1025+ then {
1026+ let bp = bo
1027+ let fA = split(bp, m)
1028+ let fB = parseIntValue(fA[1])
1029+ let fC = parseIntValue(fA[2])
1030+ $Tuple2(fB, fC)
1031+ }
1032+ else if ($isInstanceOf(bo, "Unit"))
1033+ then unit
1034+ else throw("Match error")
1035+ }
10781036 $Tuple2(nil, fz)
10791037 }
10801038
10811039
10821040
1083-@Callable(bH)
1041+@Callable(bM)
1042+func poolInfoREADONLY (fD,fE) = {
1043+ let fF = getInteger(this, ak(fD))
1044+ let fG = getInteger(this, ak(fE))
1045+ let fH = getString(this, aE(value(fF), value(fG)))
1046+ let fI = getString(this, aF(value(fH)))
1047+ let dP = if (if (isDefined(fF))
1048+ then isDefined(fG)
1049+ else false)
1050+ then isDefined(fH)
1051+ else false
1052+ let fJ = if (dP)
1053+ then $Tuple2(addressFromStringValue(value(fH)), bl(value(fI)))
1054+ else unit
1055+ $Tuple2(nil, fJ)
1056+ }
1057+
1058+
1059+
1060+@Callable(bM)
1061+func getPoolStatusREADONLY (af) = {
1062+ let cr = split(bh(aC(af)), m)
1063+ let an = cr[1]
1064+ let ao = cr[2]
1065+ let cI = split(bh(am(an, ao)), m)
1066+ $Tuple2(nil, parseIntValue(cI[w]))
1067+ }
1068+
1069+
1070+
1071+@Callable(bM)
1072+func getPoolConfigREADONLY (af) = {
1073+ let cr = split(bh(aC(af)), m)
1074+ let an = cr[1]
1075+ let ao = cr[2]
1076+ let cI = split(bh(am(an, ao)), m)
1077+ $Tuple2(nil, cI)
1078+ }
1079+
1080+
1081+
1082+@Callable(bM)
1083+func getPoolConfigByLpAssetIdREADONLY (dU) = {
1084+ let cr = split(bh(aw(dU)), m)
1085+ let an = cr[1]
1086+ let ao = cr[2]
1087+ let cI = split(bh(am(an, ao)), m)
1088+ $Tuple2(nil, cI)
1089+ }
1090+
1091+
1092+
1093+@Callable(bM)
1094+func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cF(aI, aJ))
1095+
1096+
1097+
1098+@Callable(bM)
1099+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aP(af)), false))
1100+
1101+
1102+
1103+@Callable(bM)
1104+func getChangeAmpConfigREADONLY (af) = {
1105+ let fk = getIntegerValue(aQ(af))
1106+ let fl = getIntegerValue(aR(af))
1107+ let fm = getIntegerValue(aS(af))
1108+ $Tuple2(nil, [fk, fl, fm])
1109+ }
1110+
1111+
1112+
1113+@Callable(bM)
1114+func getPoolWeightREADONLY (ce) = {
1115+ let af = bh(aG(ce))
1116+ let fK = valueOrElse(getInteger(ae(af)), 0)
1117+ $Tuple2(nil, fK)
1118+ }
1119+
1120+
1121+
1122+@Callable(bM)
10841123 func deletePool (aD) = {
1085- let dX = cl(aD)
1086- let dq = if ((toString(bH.caller) == cH(aD)))
1087- then if (cP(aD))
1124+ let ec = cq(aD)
1125+ let dv = if ((toString(bM.caller) == cM(aD)))
1126+ then if (cU(aD))
10881127 then true
10891128 else K("Pool is not empty")
1090- else bI(bH)
1091- if ((dq == dq))
1129+ else bN(bM)
1130+ if ((dv == dv))
10921131 then {
1093- let fA = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
1132+ let fL = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
10941133 then true
10951134 else K("Pool weight is not Zero")
1096- if ((fA == fA))
1135+ if ((fL == fL))
10971136 then {
1098- let fB = if ((dX[w] == toString(r)))
1137+ let fM = if ((ec[w] == toString(r)))
10991138 then true
11001139 else K("Pool must be SHUTDOWN (4)")
1101- if ((fB == fB))
1140+ if ((fM == fM))
11021141 then {
1103- let fC = cG(aD)
1104- let aI = fC._1
1105- let aJ = fC._2
1106- let bZ = fC._3
1107- let an = fC._4
1108- let ao = fC._5
1109- let cJ = addressFromStringValue(getStringValue(Z()))
1110- let fD = invoke(cJ, "deletePool", [aI, aJ], nil)
1111- if ((fD == fD))
1142+ let fN = cL(aD)
1143+ let aI = fN._1
1144+ let aJ = fN._2
1145+ let ce = fN._3
1146+ let an = fN._4
1147+ let ao = fN._5
1148+ let cO = addressFromStringValue(getStringValue(Z()))
1149+ let fO = invoke(cO, "deletePool", [aI, aJ], nil)
1150+ if ((fO == fO))
11121151 then {
1113- let dw = addressFromStringValue(getStringValue(Y()))
1114- let fE = invoke(dw, "deletePool", [aI, aJ], nil)
1115- if ((fE == fE))
1152+ let dB = addressFromStringValue(getStringValue(Y()))
1153+ let fP = invoke(dB, "deletePool", [aI, aJ], nil)
1154+ if ((fP == fP))
11161155 then {
1117- let dv = addressFromStringValue(getStringValue(X()))
1118- let fF = invoke(dv, "deletePool", [aI, aJ], nil)
1119- if ((fF == fF))
1120- then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(bZ)), DeleteEntry(aG(bZ)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aP(aD)), DeleteEntry(aQ(aD)), DeleteEntry(aR(aD)), DeleteEntry(aS(aD))]
1156+ let dA = addressFromStringValue(getStringValue(X()))
1157+ let fQ = invoke(dA, "deletePool", [aI, aJ], nil)
1158+ if ((fQ == fQ))
1159+ then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(ce)), DeleteEntry(aG(ce)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aP(aD)), DeleteEntry(aQ(aD)), DeleteEntry(aR(aD)), DeleteEntry(aS(aD)), DeleteEntry(bc(aD)), DeleteEntry(bf(aD))]
11211160 else throw("Strict value is not equal to itself.")
11221161 }
11231162 else throw("Strict value is not equal to itself.")
11241163 }
11251164 else throw("Strict value is not equal to itself.")
11261165 }
11271166 else throw("Strict value is not equal to itself.")
11281167 }
11291168 else throw("Strict value is not equal to itself.")
11301169 }
11311170 else throw("Strict value is not equal to itself.")
11321171 }
11331172
11341173
1135-
1136-@Callable(bH)
1137-func invert (fk) = {
1138- let fG = [bI(bH)]
1139- if ((fG == fG))
1140- then {
1141- let cJ = addressFromStringValue(getStringValue(Z()))
1142- let dw = addressFromStringValue(getStringValue(Y()))
1143- let af = addressFromStringValue(fk)
1144- let dX = cl(fk)
1145- let bY = dX[w]
1146- let dP = dX[x]
1147- let ca = dX[y]
1148- let cb = dX[z]
1149- let dM = parseIntValue(dX[A])
1150- let dN = parseIntValue(dX[B])
1151- let dF = parseIntValue(dX[C])
1152- let dH = parseIntValue(dX[D])
1153- let dY = parseIntValue(dX[E])
1154- let ch = dX[F]
1155- let fH = [invoke(af, "invert", nil, nil), invoke(dw, "invert", [ca, cb], nil)]
1156- if ((fH == fH))
1157- then {
1158- let fI = valueOrElse(getBoolean(this, aH(ca, cb)), false)
1159- let fJ = if (fI)
1160- then [DeleteEntry(aH(ca, cb)), BooleanEntry(aH(cb, ca), fI)]
1161- else nil
1162- $Tuple2(([StringEntry(am(toString(dH), toString(dF)), bX(fk, bY, dP, cb, ca, dN, dM, dH, dF, dY, ch)), DeleteEntry(am(toString(dF), toString(dH))), StringEntry(aw(dP), ci(dH, dF)), DeleteEntry(ay(toString(dF), toString(dH))), StringEntry(ay(toString(dH), toString(dF)), ("%s__" + dP)), StringEntry(aC(fk), ci(dH, dF)), DeleteEntry(aE(dF, dH)), StringEntry(aE(dH, dF), fk)] ++ fJ), unit)
1163- }
1164- else throw("Strict value is not equal to itself.")
1165- }
1166- else throw("Strict value is not equal to itself.")
1167- }
1168-
1169-
1170-@Verifier(fK)
1171-func fL () = {
1172- let fM = {
1173- let bj = bC()
1174- if ($isInstanceOf(bj, "ByteVector"))
1174+@Verifier(fR)
1175+func fS () = {
1176+ let fT = {
1177+ let bo = bH()
1178+ if ($isInstanceOf(bo, "ByteVector"))
11751179 then {
1176- let bJ = bj
1177- bJ
1180+ let bO = bo
1181+ bO
11781182 }
1179- else if ($isInstanceOf(bj, "Unit"))
1180- then fK.senderPublicKey
1183+ else if ($isInstanceOf(bo, "Unit"))
1184+ then fR.senderPublicKey
11811185 else throw("Match error")
11821186 }
1183- sigVerify(fK.bodyBytes, fK.proofs[0], fM)
1187+ sigVerify(fR.bodyBytes, fR.proofs[0], fT)
11841188 }
11851189

github/deemru/w8io/fabc49c 
311.58 ms