tx · 7qHNU28LTEdeHnhAG5KYoJ6w53Q6s6EufAfRqe6LvMJY

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02800000 Waves

2023.06.22 14:33 [2633786] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "7qHNU28LTEdeHnhAG5KYoJ6w53Q6s6EufAfRqe6LvMJY", "fee": 2800000, "feeAssetId": null, "timestamp": 1687433724234, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "5BWfJw1JQrCeEYyqDwUvJRu45osZYbCkbZYUBDwWL8S74APZbHstXFeyLf81uoRWyBbE3MnPzmtCxTkSLyPm2L21" ], "script": "base64:BgK0LQgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIGTVVMVDEyIgdTQ0FMRTE4IgZNVUxUMTgiDlBPT0xXRUlHSFRNVUxUIg5HV1h2aXJ0dWFsUE9PTCIMbGFiZWxQb29sc0xwIg1kZWZhdWx0U3ByZWFkIgt3YXZlc1N0cmluZyIQY29udHJhY3RGaWxlbmFtZSIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIg9rZXlBZG1pblB1YktleXMiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFGtleVVzZXJQb29sc0NvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM4NzgzOTQwIiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiIRa2V5Q2hhbmdlQW1wRGVsYXkiEWtleUNoYW5nZUFtcERlbHRhIhJrZXlDaGFuZ2VBbXBUYXJnZXQiFWtleVNXYXZlc1Byb3h5QWRkcmVzcyIQa2V5U1dhdmVzQXNzZXRJZCIXa2V5U3Rha2luZ1Byb2ZpdEFkZHJlc3MiDmtleUxlYXNlZFJhdGlvIgdhc3NldElkIhVrZXlMZWFzZWRSYXRpb0RlZmF1bHQiF2tleUxlYXNlZFJhdGlvVG9sZXJhbmNlIg1rZXlNaW5CYWxhbmNlIhRrZXlNaW5CYWxhbmNlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIJdGVzdEVycm9yIghtdXN0VGhpcyIBaSILbXVzdE1hbmFnZXIiAnBrIhBkYXRhRmFjdG9yeUNmZ1YzIg5zdGFraW5nQWRkcmVzcyIPYm9vc3RpbmdBZGRyZXNzIgtpZG9Db250cmFjdCIMdGVhbUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IgxyZXN0Q29udHJhY3QiEHNsaXBwYWdlQ29udHJhY3QiC2Rhb0NvbnRyYWN0IhFtYXJrZXRpbmdDb250cmFjdCISZ3d4UmV3YXJkc0NvbnRyYWN0Ig1iaXJkc0NvbnRyYWN0Ig5kYXRhRmFjdG9yeUNmZyILZGF0YVBvb2xDZmciCnBvb2xTdGF0dXMiCWxwQXNzZXRJZCIOYW1vdW50QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiE2Ftb3VudEFzc2V0RGVjaW1hbHMiEnByaWNlQXNzZXREZWNpbWFscyIVYW1vdW50QXNzZXRJbnRlcm5hbElkIhRwcmljZUFzc2V0SW50ZXJuYWxJZCIPbHBBc3NldERlY2ltYWxzIghwb29sVHlwZSIVZGF0YU1hcHBpbmdQb29sQXNzZXRzIhZpbnRlcm5hbEFtb3VudEFzc2V0U3RyIhVpbnRlcm5hbFByaWNlQXNzZXRTdHIiDWdldFBvb2xDb25maWciCnBvb2xBc3NldHMiGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlIgphc3NldElkU3RyIgtpbmNyZW1lbnRvciIPaW50ZXJuYWxBc3NldElkIhhjdXJyZW50SW5kZXhPZkludGVybmFsSWQiBnJlc3VsdCISbmV3SW50ZXJuYWxBc3NldElkIgltdXN0QWRtaW4iCGFkbWluUEtzIglpc01hbmFnZXIiFmludE9yRGVmYXVsdE9yRmFsbGJhY2siCmtleURlZmF1bHQiDXZhbHVlRmFsbGJhY2siEnBvb2xFeGlzdHNJbnRlcm5hbCIEYW1BcyIEcHJBcyIDY2ZnIgpjZmdSZXZlcnNlIgZleGlzdHMiHGdldEFzc2V0c0RhdGFGcm9tUG9vbEFkZHJlc3MiDmdldFBvb2xDcmVhdG9yIg0kdDAxNTE2NjE1MzAzIhF1c2VyUG9vbHNDb250cmFjdCILcG9vbENyZWF0b3IiEWdldEFkZHJlc3NCYWxhbmNlIg1hZGRyZXNzU3RyaW5nIg1hc3NldElkU3RyaW5nIgdhZGRyZXNzIgtpc1Bvb2xFbXB0eSINJHQwMTU4NzgxNjAxNSINJHQwMTYzMzAxNjYzNCIBciIHJG1hdGNoMSICcmQiCmlzTGVhc2FibGUiC2xlYXNlZFJhdGlvIgptaW5CYWxhbmNlIgFiIgJiZCINJHQwMTY5MDAxNzEyNCIMcHJveHlBZGRyZXNzIgxwcm94eUFzc2V0SWQiDHByb3h5UmF0ZU11bCIUc3Rha2luZ1Byb2ZpdEFkZHJlc3MiBmFzc2V0MSIGYXNzZXQyIglhc3NldE51bTEiCWFzc2V0TnVtMiICZWUiA3JlcyICbHAiD3N0YWtpbmdDb250cmFjdCIQYm9vc3RpbmdDb250cmFjdCIQc2xwaXBhZ2VDb250cmFjdCINcHJpY2VEZWNpbWFscyILY2hlY2tDYWxsZXIiEG1hdGhjaGVyUHViNThTdHIiCm1hdGhjZXJQdWIiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCILbGVnYWN5UG9vbHMiE2Fzc2V0c1N0b3JlQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiC3ByaWNlQXNzZXRzIgVjaGVrcyIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sRXhpc3RzIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCnBvb2xDb25maWciCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFzc2V0SWRTdHIiEmV0aEJ0Y0xwQXNzZXRJZFN0ciIUdXNkY1VzZHRMcEFzc2V0SWRTdHIiEW9uTW9kaWZ5V2VpZ2h0QnRjIhFvbk1vZGlmeVdlaWdodEV0aCIUb25Nb2RpZnlXZWlnaHRFdGhCdGMiFm9uTW9kaWZ5V2VpZ2h0VXNkY1VzZHQiCWhhdmVMYWJlbCIUY2hlY2tQcmljZUFzc2V0c1NpemUiAmNiIgNhY2MiCnByaWNlQXNzZXQiB2FjdGlvbnMiAiRsIgIkcyIFJGFjYzAiBSRmMF8xIgIkYSICJGkiBSRmMF8yIh5wb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiImFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiA2ZlZSIQYW1vdW50QXNzZXRJZFN0ciIPcHJpY2VBc3NldElkU3RyIhthbW91bnRBc3NldEludGVybmFsSWRPcHRpb24iGnByaWNlQXNzZXRJbnRlcm5hbElkT3B0aW9uIhlwb29sQ29udHJhY3RBZGRyZXNzT3B0aW9uIg9scEFzc2V0SWRPcHRpb24iCHBvb2xJbmZvIgVkZWxheSIFZGVsdGEiBnRhcmdldCIGd2VpZ2h0IgtjaGVja1dlaWdodCILY2hlY2tTdGF0dXMiDSR0MDM5MTI0MzkyNjEiD3VzZXJQb29sc0ludm9rZSIUdm90aW5nRW1pc3Npb25JbnZva2UiEWFzc2V0c1N0b3JlSW52b2tlIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXl9AAFhAAgAAWIAgMLXLwABYwCAoJSljR0AAWQAEgABZQkAtgIBAICAkLu61q3wDQABZgUBYgABZwIOR1dYdmlydHVhbFBPT0wAAWgCCFBPT0xTX0xQAAFpAICJegABagIFV0FWRVMAAWsCD2ZhY3RvcnlfdjIucmlkZQABbAkAaAIJAGgCAGQA6AcA6AcAAW0CAl9fAAFuAgAAAW8AAQABcAACAAFxAAMAAXIABAABcwABAAF0AAIAAXUAAwABdgABAAF3AAIAAXgAAwABeQAEAAF6AAUAAUEABgABQgAHAAFDAAgAAUQACQABRQAKAAFGAAsAAUcCC1dYX0VNSVNTSU9OAAFICQDMCAIFAUcFA25pbAEBSQEBSgkAuQkCCQDMCAIFAWsJAMwIAgICOiAJAMwIAgUBSgUDbmlsAgABAUsBAUoJAAIBCQEBSQEFAUoBAUwAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAEBTQACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQFOAAIQJXNfX3N3YXBDb250cmFjdAEBTwACESVzX19mYWN0b3J5Q29uZmlnAQFQAAIQJXNfX2xwVG9rZW5zTGlzdAEBUQACFiVzJXNfX3Bvb2xfX3NjcmlwdEhhc2gBAVIAAhglcyVzX19tYXRjaGVyX19wdWJsaWNLZXkBAVMAAhklc19fbGVnYWN5RmFjdG9yeUNvbnRyYWN0AQFUAAIPJXNfX2xlZ2FjeVBvb2xzAQFVAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVYAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwEBVwACECVzX19hZG1pblB1YktleXMBAVgAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEBWQACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQFaAAIVJXNfX3VzZXJQb29sc0NvbnRyYWN0AQJhYQAJALkJAgkAzAgCAgIlcwkAzAgCAgtwcmljZUFzc2V0cwUDbmlsBQFtAQJhYgACESVzX19wcmljZURlY2ltYWxzAQJhYwACDCVzX19zaHV0ZG93bgECYWQAAhclc19fbmV4dEludGVybmFsQXNzZXRJZAECYWUBAmFmCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWYBAmFnAgJhZgJhaAkArAICCQCsAgIJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhZgICX18JAKQDAQUCYWgBAmFpAQJhagkArAICAiglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQCkAwEFAmFqAQJhawECYWwJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYWwBAmFtAgJhbgJhbwkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUCYW4CAl9fBQJhbwIIX19jb25maWcBAmFwAQJhcQQCYXIFAmFxBAJhbggFAmFyAl8xBAJhbwgFAmFyAl8yCQC5CQIJAMwIAgIGJWQlZCVzCQDMCAIJAKQDAQUCYW4JAMwIAgkApAMBBQJhbwkAzAgCAhpvbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAUDbmlsBQFtAQJhcwAJALkJAgkAzAgCAgIlcwkAzAgCAhpvbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZAUDbmlsBQFtAQJhdAECYXUJAKwCAgkArAICAgglcyVzJXNfXwUCYXUCGF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbAECYXYCAmF3AmF4CQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18FAmF3AgJfXwUCYXgCHl9fbWFwcGluZ3NfX1Bvb2xBc3NldHMyTHBBc3NldAECYXkBAmFmCQCsAgICDiVzJXNfX3NwcmVhZF9fBQJhZgECYXoBAmFBCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFBAiNfX21hcHBpbmdzX19wb29sQ29udHJhY3QyUG9vbEFzc2V0cwECYUICAmF3AmF4CQCsAgIJAKwCAgkArAICCQCsAgICCiVkJWQlcyVzX18JAKQDAQUCYXcCAl9fCQCkAwEFAmF4AiNfX21hcHBpbmdzX19wb29sQXNzZXRzMlBvb2xDb250cmFjdAECYUMBAmFBCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFBAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYUQBAmF1CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF1AiBfX21hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAECYUUCAmFGAmFHCQCsAgIJAKwCAgkArAICAhQlcyVzJXNfX3d4RW1pc3Npb25fXwUCYUYCAl9fBQJhRwECYUgBAmFmCQCsAgICDSVzJXNfX2luRmVlX18FAmFmAQJhSQACECVzX19pbkZlZURlZmF1bHQBAmFKAQJhZgkArAICAg4lcyVzX19vdXRGZWVfXwUCYWYBAmFLAAIRJXNfX291dEZlZURlZmF1bHQBAmFMAQJhZgkArAICAhslcyVzX19za2lwT3JkZXJWYWxpZGF0aW9uX18FAmFmAQJhTQECYWYJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsYXlfXwUCYWYBAmFOAQJhZgkArAICAhYlcyVzX19jaGFuZ2VBbXBEZWx0YV9fBQJhZgECYU8BAmFmCQCsAgICFyVzJXNfX2NoYW5nZUFtcFRhcmdldF9fBQJhZgECYVAAAhYlc19fc1dhdmVzUHJveHlBZGRyZXNzAQJhUQACESVzX19zV2F2ZXNBc3NldElkAQJhUgACGCVzX19zdGFraW5nUHJvZml0QWRkcmVzcwECYVMCAmFmAmFUCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICC2xlYXNlZFJhdGlvCQDMCAIFAmFmCQDMCAIFAmFUBQNuaWwFAW0BAmFVAQJhVAkAuQkCCQDMCAICBCVzJXMJAMwIAgISbGVhc2VkUmF0aW9EZWZhdWx0CQDMCAIFAmFUBQNuaWwFAW0BAmFWAgJhZgJhVAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhRsZWFzZWRSYXRpb1RvbGVyYW5jZQkAzAgCBQJhZgkAzAgCBQJhVAUDbmlsBQFtAQJhVwICYWYCYVQJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIKbWluQmFsYW5jZQkAzAgCBQJhZgkAzAgCBQJhVAUDbmlsBQFtAQJhWAECYVQJALkJAgkAzAgCAgQlcyVzCQDMCAICEW1pbkJhbGFuY2VEZWZhdWx0CQDMCAIFAmFUBQNuaWwFAW0BAmFZAQJhWgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFaCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYVoBAmJhAQJhWgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFBHRoaXMFAmFaCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYVoBAmJiAQJhWgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAmFaCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUCYVoBAmJjAQJiZAMJAAACBQJiZAUBagUEdW5pdAkA2QQBBQJiZAECYmUABAJiZgkAoggBCQEBVgADCQABAgUCYmYCBlN0cmluZwQCYmcFAmJmCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiZwUEdGhpcwACYmgAAQACYmkAAgACYmoAAwACYmsABAACYmwABQACYm0ABgACYm4ABwACYm8ACAACYnAACQACYnEACgACYnIACwECYnMBAmJ0CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJ0BQJiaQECYnUBAmJ0CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJ0BQJibAECYnYBAmJ0CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJ0BQJiaAECYncBAmJ0CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJ0BQJicQECYngABAJiZgkAoggBCQECYWEAAwkAAQIFAmJmAgZTdHJpbmcEAmJnBQJiZgMJAAACCQCxAgEFAmJnAAAFA25pbAkAtQkCBQJiZwUBbQUDbmlsAQJieQAEAmJ6CQECYmUABAJiZgkAnQgCBQJiegkBAVUAAwkAAQIFAmJmAgZTdHJpbmcEAmJnBQJiZgkA2QQBBQJiZwMJAAECBQJiZgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAAJiQQkBAUsBAhFQZXJtaXNzaW9uIGRlbmllZAACYkIJAQFLAQIPVGVzdCBlcnJvciBoZXJlAQJiQwECYkQDCQAAAggFAmJEBmNhbGxlcgUEdGhpcwYFAmJBAQJiRQECYkQEAmJmCQECYnkAAwkAAQIFAmJmAgpCeXRlVmVjdG9yBAJiRgUCYmYDCQAAAggFAmJED2NhbGxlclB1YmxpY0tleQUCYkYGBQJiQQMJAAECBQJiZgIEVW5pdAkBAmJDAQUCYkQJAAIBAgtNYXRjaCBlcnJvcgECYkcLAmJIAmJJAmJKAmJLAmJMAmJNAmJOAmJPAmJQAmJRAmJSCQC5CQIJAMwIAgIWJXMlcyVzJXMlcyVzJXMlcyVzJXMlcwkAzAgCBQJiSAkAzAgCBQJiSQkAzAgCBQJiSgkAzAgCBQJiSwkAzAgCBQJiTAkAzAgCBQJiTQkAzAgCBQJiTgkAzAgCBQJiTwkAzAgCBQJiUAkAzAgCBQJiUQkAzAgCBQJiUgUDbmlsBQFtAQJiUwcCYkgCYkkCYkoCYksCYkwCYk0CYk4JALkJAgkAzAgCAgwlcyVzJXMlcyVzJXMJAMwIAgUCYkgJAMwIAgUCYkkJAMwIAgUCYkoJAMwIAgUCYksJAMwIAgUCYkwJAMwIAgUCYk0JAMwIAgUCYk4FA25pbAUBbQECYlQLAmFmAmJVAmJWAmJXAmJYAmJZAmJaAmNhAmNiAmNjAmNkCQC5CQIJAMwIAgIWJXMlZCVzJXMlcyVkJWQlZCVkJWQlcwkAzAgCBQJhZgkAzAgCBQJiVQkAzAgCBQJiVgkAzAgCBQJiVwkAzAgCBQJiWAkAzAgCCQCkAwEFAmJZCQDMCAIJAKQDAQUCYloJAMwIAgkApAMBBQJjYQkAzAgCCQCkAwEFAmNiCQDMCAIJAKQDAQUCY2MJAMwIAgUCY2QFA25pbAUBbQECY2UCAmNmAmNnCQC5CQIJAMwIAgIEJWQlZAkAzAgCCQCkAwEFAmNmCQDMCAIJAKQDAQUCY2cFA25pbAUBbQECY2gBAmFmBAJjaQkAtQkCCQECYVkBCQECYXoBBQJhZgUBbQQCYW4JAJEDAgUCY2kAAQQCYW8JAJEDAgUCY2kAAgkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0BAmNqAgJjawJjbAQCY20JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFrAQUCY2sAAAQCY24JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFkAAAABAJjbwMJAAACBQJjbQAABAJjcAkAZAIFAmNuBQJjbAkAlQoDBQJjcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFkAAUCY3AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhawEFAmNrBQJjcAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWkBBQJjcAUCY2sFA25pbAYJAJUKAwUCY20FA25pbAcFAmNvAQJjcQECYkQEAmNyCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVcABQFuBQFtAwkBD2NvbnRhaW5zRWxlbWVudAIFAmNyCQDYBAEIBQJiRA9jYWxsZXJQdWJsaWNLZXkGBAJjcwkBAmJFAQUCYkQDCQAAAgUCY3MFAmNzBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY3QDAmFaAmN1AmN2CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFaCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmN1BQJjdgECY3cCAmFGAmFHBAJhbgkAnwgBCQECYWsBBQJhRgQCYW8JAJ8IAQkBAmFrAQUCYUcDAwkAAAIFAmFuBQR1bml0BgkAAAIFAmFvBQR1bml0BwQCY3gJAKQDAQkBBXZhbHVlAQUCYW4EAmN5CQCkAwEJAQV2YWx1ZQEFAmFvBAJjegkAoggBCQECYW0CBQJjeAUCY3kEAmNBCQCiCAEJAQJhbQIFAmN5BQJjeAQCY0IDCQECIT0CBQJjegUEdW5pdAYJAQIhPQIFAmNBBQR1bml0BQJjQgECY0MBAmFBBAJjaQQCYmYJAKIIAQkBAmF6AQUCYUEDCQABAgUCYmYCBlN0cmluZwQCYmcFAmJmCQC1CQIFAmJnBQFtCQEBSwEJALkJAgkAzAgCBQJhQQkAzAgCAhFwb29sIGlzIG5vdCBmb3VuZAUDbmlsAgEgBAJhbgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNpAAEEAmFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY2kAAgQCYUYJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFuBAJhRwkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFpAQUCYW8EAmJWCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYUMBBQJhQQkAlwoFBQJhRgUCYUcFAmJWBQJhbgUCYW8BAmNEAQJhQQQCY0UJAQJjQwEFAmFBBAJhRggFAmNFAl8xBAJhRwgFAmNFAl8yBAJiVggFAmNFAl8zBAJhbggFAmNFAl80BAJhbwgFAmNFAl81BAJjRgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJjRwkA/AcEBQJjRgIWZ2V0UG9vbENyZWF0b3JSRUFET05MWQkAzAgCBQJhRgkAzAgCBQJhRwUDbmlsBQNuaWwFAmNHAQJjSAICY0kCY0oEAmNLCQERQGV4dHJOYXRpdmUoMTA2MikBBQJjSQMJAAACBQJjSgIFV0FWRVMICQDvBwEFAmNLB3JlZ3VsYXIEAmFUCQDZBAEFAmNKCQDwBwIFAmNLBQJhVAECY0wBAmFBBAJjTQkBAmNDAQUCYUEEAmFGCAUCY00CXzEEAmFHCAUCY00CXzIEAmJWCAUCY00CXzMEAmFuCAUCY00CXzQEAmFvCAUCY00CXzUDCQAAAgkBAmNIAgUCYUEFAmFGAAAJAAACCQECY0gCBQJhQQUCYUcAAAchAmJEARdnZXRTd2FwQ29udHJhY3RSRUFET05MWQAJAJQKAgUDbmlsCQECYVkBCQEBTgACYkQBGmdldFBvb2xMZWFzZUNvbmZpZ1JFQURPTkxZAgJhZgJhVAQCY04EAmJmCQCaCAIFBHRoaXMJAQJhUwIFAmFmBQJhVAMJAAECBQJiZgIDSW50BAJjTwUCYmYJAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJjTwUDbmlsBQNuaWwEAmNQCQCaCAIFBHRoaXMJAQJhVQEFAmFUAwkAAQIFAmNQAgNJbnQEAmNRBQJjUAkAlAoCBgkAlwMBCQDMCAIAZAkAzAgCCQCWAwEJAMwIAgAACQDMCAIFAmNRBQNuaWwFA25pbAkAlAoCBwAABAJjUggFAmNOAl8xBAJjUwgFAmNOAl8yBAJjVAQCYmYJAJoIAgUEdGhpcwkBAmFXAgUCYWYFAmFUAwkAAQIFAmJmAgNJbnQEAmNVBQJiZgkAlgMBCQDMCAIAAAkAzAgCBQJjVQUDbmlsBAJjUAkAmggCBQR0aGlzCQECYVgBBQJhVAMJAAECBQJjUAIDSW50BAJjVgUCY1AJAJYDAQkAzAgCAAAJAMwIAgUCY1YFA25pbAAABAJjVwMJAAACBQJhVAIFV0FWRVMJAJUKAwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVAAAgAJAJ0IAgUEdGhpcwkBC3ZhbHVlT3JFbHNlAgkBAmFRAAIABQFjCQCVCgMCAAIAAAAEAmNYCAUCY1cCXzEEAmNZCAUCY1cCXzIEAmNaCAUCY1cCXzMEAmRhCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhUgACAAkAlAoCBQNuaWwJAJkKBwUCY1IFAmNTBQJjVAUCY1gFAmNZBQJjWgUCZGECYkQBIGdldExwQXNzZXRGcm9tUG9vbEFzc2V0c1JFQURPTkxZAgJkYgJkYwMDCQAAAgUCZGICLDhMUVc4ZjdQNWQ1UFpNN0d0WkVCZ2FxUlBHU3pTM0RmUHVpWHJVUko0QUpTCQAAAgUCZGMCBVdBVkVTBwkAlAoCBQNuaWwFBHVuaXQEAmRkCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhawEFAmRiBAJkZQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJkYwQCZGYJAJ0IAgUEdGhpcwkBAmF2AgkApAMBBQJkZAkApAMBBQJkZQQCZGcDCQAAAgUCZGYFBHVuaXQFBHVuaXQJALACAgkBBXZhbHVlAQUCZGYABAkAlAoCBQNuaWwFAmRnAmJEASFnZXRQb29sQWRkcmVzc0Zyb21McEFzc2V0UkVBRE9OTFkBAmRoCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYUQBBQJkaAIAAmJEAQtjb25zdHJ1Y3RvcggCZGkCZGoCYkoCYksCYkwCYk0CZGsCZGwEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECYlMHBQJkaQUCZGoFAmJKBQJiSwUCYkwFAmJNBQJkawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZGwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWMgECZG4EAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0EAmRvCQCnCAEJANkEAQUCZG4DCQAAAgUCZG8FAmRvCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCZG4FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWMwQCYk8CYlACYlECYlIEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0EAmJ0CQC1CQIJAQJhWQEJAQFPAAUBbQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTwAJAQJiRwsJAJEDAgUCYnQAAQkAkQMCBQJidAACCQCRAwIFAmJ0AAMJAJEDAgUCYnQABAkAkQMCBQJidAAFCQCRAwIFAmJ0AAYJAJEDAgUCYnQABwUCYk8FAmJQBQJiUQUCYlIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWNAICZHACZHEEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMABQJkcAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAAJALkJAgUCZHEFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAENY29uc3RydWN0b3JWNQECZHIEAmRtCQECYkUBBQJiRAMJAAACBQJkbQUCZG0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVgABQJkcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQ1jb25zdHJ1Y3RvclY2AgJkcwJkdAQCZHUJAMwIAgkBAmJFAQUCYkQJAMwIAgMJAQIhPQIJAKYIAQUCZHMFBHVuaXQGAihpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiBjb250cmFjdCBhZGRyZXNzBQNuaWwDCQAAAgUCZHUFAmR1CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUCZHMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAkAuQkCBQJkdAUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQlzZXRBZG1pbnMBAmR2BAJkbQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAAkAuQkCBQJkdgUBbQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQ9hY3RpdmF0ZU5ld1Bvb2wIAmFmAmJXAmJYAmR3AmR4AmR5AmNkAmR6BAJkbQkBAmNxAQUCYkQDCQAAAgUCZG0FAmRtAwkBCWlzRGVmaW5lZAEJAKIIAQkBAmF6AQUCYWYJAQFLAQkArAICCQCsAgICDVBvb2wgYWRkcmVzcyAFAmFmAhQgYWxyZWFkeSByZWdpc3RlcmVkLgQCZEEJAQJjagIFAmJXAAEEAmRCCAUCZEECXzEEAmRDCQECY2oCBQJiWAMIBQJkQQJfMwACAAEEAmRECAUCZEMCXzEEAmRFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAPEHAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYJAKwCAgIpTm8gc2NyaXB0IGhhcyBiZWVuIGZvdW5kIG9uIHBvb2wgYWNjb3VudCAFAmFmBAJkRgkBEUBleHRyTmF0aXZlKDEwNTcpAQkBAVEABAJkRwkBAmN3AgUCYlcFAmJYAwUCZEcJAQFLAQkArAICCQCsAgIJAKwCAgkArAICAgVQb29sIAUCYlcCAS8FAmJYAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAJkSAkBBXZhbHVlAQkAnQgCBQR0aGlzCQECYW0CCQCkAwEFAmRCCQCkAwEFAmREBAJkSQMJAAACBQJiVwIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiVwhkZWNpbWFscwAAAAAFBERPV04EAmRKAwkAAAIFAmJYAgVXQVZFUwUBbAkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJYCGRlY2ltYWxzAAAAAAUERE9XTgQCZEsJAMIIBQUCZHcFAmR4AAEACAYEAmJWCQC4CAEFAmRLBAJkTAkA2AQBBQJiVgQCZE0JAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWYCCGFjdGl2YXRlCQDMCAIFAmJXCQDMCAIFAmJYBQNuaWwFA25pbAMJAAACBQJkTQUCZE0DCQECIT0CBQJkTQIHc3VjY2VzcwkBAUsBAiNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgQCZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhWQEJAQFYAAQCZE4JAPwHBAUCZHICDmNyZWF0ZU9yVXBkYXRlCQDMCAIFAmRMCQDMCAIFAmR3CQDMCAIHBQNuaWwFA25pbAMJAAACBQJkTgUCZE4EAmRPCQD8BwQFAmRyAghhZGRMYWJlbAkAzAgCBQJkTAkAzAgCBQFoBQNuaWwFA25pbAMJAAACBQJkTwUCZE8EAmRQCQD8BwQFAmRyAgdzZXRMb2dvCQDMCAIFAmRMCQDMCAIFAmR6BQNuaWwFA25pbAMJAAACBQJkUAUCZFAEAmRRCQD8BwQFAmRyAg1hZGRBc3NldHNMaW5rCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmRMBQNuaWwFA25pbAMJAAACBQJkUQUCZFEEAmRSCQD8BwQFAmRyAhhpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXIJAMwIAgUCYlcFA25pbAUDbmlsAwkAAAIFAmRSBQJkUgkAlAoCCQDOCAIJAM4IAggFAmRBAl8yCAUCZEMCXzIJAMwIAgUCZEsJAMwIAgkBBEJ1cm4CBQJiVgABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbQIJAKQDAQUCZEIJAKQDAQUCZEQJAQJiVAsFAmFmCQCkAwEFAW8FAmRMBQJiVwUCYlgFAmRJBQJkSgUCZEIFAmREBQFsBQJjZAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXQBBQJkTAkBAmNlAgUCZEIFAmRECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdgIJAKQDAQUCZEIJAKQDAQUCZEQJAKwCAgIEJXNfXwUCZEwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF6AQUCYWYJAQJjZQIFAmRCBQJkRAkAzAgCCQELU3RyaW5nRW50cnkCCQECYUICBQJkQgUCZEQFAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhRAEFAmRMBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUMBBQJhZgUCZEwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZQEFAmFmBQJkeQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF5AQUCYWYFAWkFA25pbAUCZEwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBCm1hbmFnZVBvb2wCAmFmAmRTBAJkbQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJkVAkBAmNoAQUCYWYEAmJVCQCRAwIFAmRUBQF3BAJkTAkAkQMCBQJkVAUBeAQCYlcJAJEDAgUCZFQFAXkEAmJYCQCRAwIFAmRUBQF6BAJkSQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFBBAJkSgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFCBAJkQgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFDBAJkRAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFEBAJkVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFFBAJjZAkAkQMCBQJkVAUBRgkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0CCQCkAwEFAmRCCQCkAwEFAmRECQECYlQLBQJhZgkApAMBBQJkUwUCZEwFAmJXBQJiWAUCZEkFAmRKBQJkQgUCZEQFAmRVBQJjZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEAQRlbWl0AQJkVgQCZFcIBQJiRAZjYWxsZXIEAmRYCAUCYkQMb3JpZ2luQ2FsbGVyBAJkWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhQwEJAKUIAQUCZFcCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAJkWgkA2QQBBQJkWQQCZHEJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBVAAFAW4FAW0EAmRwCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAVMAAihMZWdhY3kgZmFjdG9yeSBjb250cmFjdCBkb2VzIG5vdCBleGlzdHMuAwkAZwIAAAUCZFYFA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQJkcQkApQgBBQJkVwkAlAoCBQNuaWwFAmRwCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJkWgUCZFYGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJiRAZjYWxsZXIFAmRWBQJkWgUDbmlsAgdzdWNjZXNzAmJEAQRidXJuAQJlYQQCZFcIBQJiRAZjYWxsZXIEAmRYCAUCYkQMb3JpZ2luQ2FsbGVyBAJlYgkBBXZhbHVlAQkAkQMCCAUCYkQIcGF5bWVudHMAAAQCZWMJAQV2YWx1ZQEIBQJlYgZhbW91bnQEAmVkCQDYBAEJAQV2YWx1ZQEIBQJlYgdhc3NldElkBAJlZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQJhQwEJAKUIAQUCZFcCHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuAwkBAiE9AgUCZWQFAmVlCQEBSwECFUludmFsaWQgYXNzZXQgcGFzc2VkLgMJAQIhPQIFAmVhBQJlYwkBAUsBAhZJbnZhbGlkIGFtb3VudCBwYXNzZWQuBAJkWgkA2QQBBQJlZQkAlAoCCQDMCAIJAQRCdXJuAgUCZFoFAmVhBQNuaWwCB3N1Y2Nlc3MCYkQBDG1vZGlmeVdlaWdodAICYlYCZWYEAmRtAwkAAAIJANgEAQgIBQJiRAZjYWxsZXIFYnl0ZXMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAVkAAgAGCQECYkUBBQJiRAMJAAACBQJkbQUCZG0EAmFBCQECYVkBCQECYUQBBQJiVgQCZWcJAQJhZQEFAmFBBAJlaAkBAmFlAQUBZwQCZWkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZWgAAAQCZHkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZWcAAAQCZWoFAmVmBAJidAkAtQkCCQECYVkBCQEBTwAFAW0EAmRpCQECYnYBBQJidAQCZWsJAPwHBAUCZGkCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmJWCQDMCAIFAmFBBQNuaWwFA25pbAMJAAACBQJlawUCZWsEAmVsAwkAAAIFAmVpAAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZWgAAAUDbmlsBAJlbQkBAmFnAgUCYUEAAAQCZW4JAJ8IAQUCZW0EAmVvAwkAAAIFAmVuBQR1bml0BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUCZW0FA25pbAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVnBQJlagUDbmlsBQJlbAUCZW8JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBDW1vZGlmeVdlaWdodHMEAmVwAmVxAmVyAmVzBAJkbQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJldAkAaQIJAGgCAAUFAWYAZAQCZXUJAGkCCQBoAgAFBQFmAGQEAmV2CQBpAgkAaAIABQUBZgBkBAJidAkAtQkCCQECYVkBCQEBTwAFAW0EAmV3CQECYnYBBQJidAQCZXgJAQJidwEFAmJ0BAJleQkBAmFlAQUCZXAEAmV6CQECYWUBBQJlcQQCZUEJAQJhZQEFAmVyBAJlQgkBAmFlAQUCZXMEAmVDCQECYmIBBQJleQQCZUQJAQJiYgEFAmV6BAJlRQkAZQIFAmVDBQJldgQCZUYJAGUCBQJlRAUCZXYDCQBnAgAABQJlRQkBAUsBCQCsAgICFmludmFsaWQgYnRjV2VpZ2h0TmV3OiAJAKQDAQUCZUUDCQBnAgAABQJlRgkBAUsBCQCsAgICFmludmFsaWQgZXRoV2VpZ2h0TmV3OiAJAKQDAQUCZUYEAmVHCQECYVkBCQECYUMBBQJlcAQCZUgJAQJhWQEJAQJhQwEFAmVxBAJlSQkBAmFZAQkBAmFDAQUCZXIEAmVKCQECYVkBCQECYUMBBQJlcwQCZUsJAPwHBAUCZXcCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVHCQDMCAIFAmVwBQNuaWwFA25pbAMJAAACBQJlSwUCZUsEAmVMCQD8BwQFAmV3Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJlSAkAzAgCBQJlcQUDbmlsBQNuaWwDCQAAAgUCZUwFAmVMBAJlTQkA/AcEBQJldwIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZUkJAMwIAgUCZXIFA25pbAUDbmlsAwkAAAIFAmVNBQJlTQQCZU4JAPwHBAUCZXcCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVKCQDMCAIFAmVzBQNuaWwFA25pbAMJAAACBQJlTgUCZU4JAMwIAgkBDEludGVnZXJFbnRyeQIFAmV5BQJlRQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXoFAmVGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlQQUCZXQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVCBQJldQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZXAAAAUCZUMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVxAAAFAmVECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlcgAABQJldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZXMAAAUCZXUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiRAEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZU8EAmJmCQCgCAEJAQJhRQIFAmFGBQJhRwMJAAECBQJiZgIHQm9vbGVhbgQCY1UFAmJmBQJjVQcJAJQKAgUDbmlsBQJlTwJiRAEWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAICYUYCYUcEAmRtCQECY3EBBQJiRAMJAAACBQJkbQUCZG0JAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAmFFAgUCYUYFAmFHBgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEARlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsAgJhRgJhRwQCZG0DCQAAAggFAmJEBmNhbGxlcgUEdGhpcwYJAQJjcQEFAmJEAwkAAAIFAmRtBQJkbQkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFGBQJhRwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJEARJvblZlcmlmaWNhdGlvbkxvc3MBAmFUBAJkbQMJAAACCQDYBAEICAUCYkQGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFYAAIABgkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJkdAkBAmJ4AAQCZVADCQBmAgkAkAMBBQJkdAAABgkBAUsBAhRpbnZhbGlkIHByaWNlIGFzc2V0cwMJAAACBQJlUAUCZVAKAQJlUQICZVICZVMEAmNPCQD8BwQFBHRoaXMCGWRlbGV0ZVd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUCYVQJAMwIAgUCZVMFA25pbAUDbmlsAwkAAAIFAmNPBQJjTwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgQCZVQKAAJlVQUCZHQKAAJlVgkAkAMBBQJlVQoAAmVXBQR1bml0CgECZVgCAmVZAmVaAwkAZwIFAmVaBQJlVgUCZVkJAQJlUQIFAmVZCQCRAwIFAmVVBQJlWgoBAmZhAgJlWQJlWgMJAGcCBQJlWgUCZVYFAmVZCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTEJAQJmYQIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIJAQJlWAIFAmVXAAAAAQACAAMABAAFAAYABwAIAAkACgALAwkAAAIFAmVUBQJlVAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYkQBKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkBAmFmBAJkVAkBAmNoAQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkVAUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRUBQFEBAJmYgkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXABBQJhcQcEAmZjCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcwAHCQCUCgIFA25pbAMFAmZjBgUCZmICYkQBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJmZAkBAmN0AwkBAmFIAQUCYWYJAQJhSQAAAAkAlAoCBQNuaWwFAmZkAmJEARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmZkCQECY3QDCQECYUoBBQJhZgkBAmFLAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmZkAmJEARBwb29sSW5mb1JFQURPTkxZAgJmZQJmZgQCZmcJAJoIAgUEdGhpcwkBAmFrAQUCZmUEAmZoCQCaCAIFBHRoaXMJAQJhawEFAmZmBAJmaQkAnQgCBQR0aGlzCQECYUICCQEFdmFsdWUBBQJmZwkBBXZhbHVlAQUCZmgEAmZqCQCdCAIFBHRoaXMJAQJhQwEJAQV2YWx1ZQEFAmZpBAJkRwMDCQEJaXNEZWZpbmVkAQUCZmcJAQlpc0RlZmluZWQBBQJmaAcJAQlpc0RlZmluZWQBBQJmaQcEAmZrAwUCZEcJAJQKAgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBBXZhbHVlAQUCZmkJAQJiYwEJAQV2YWx1ZQEFAmZqBQR1bml0CQCUCgIFA25pbAUCZmsCYkQBFWdldFBvb2xTdGF0dXNSRUFET05MWQECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACBAJjegkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCY3oFAXcCYkQBFWdldFBvb2xDb25maWdSRUFET05MWQECYWYEAmNpCQC1CQIJAQJhWQEJAQJhegEFAmFmBQFtBAJhbgkAkQMCBQJjaQABBAJhbwkAkQMCBQJjaQACBAJjegkAtQkCCQECYVkBCQECYW0CBQJhbgUCYW8FAW0JAJQKAgUDbmlsBQJjegJiRAEgZ2V0UG9vbENvbmZpZ0J5THBBc3NldElkUkVBRE9OTFkBAmRMBAJjaQkAtQkCCQECYVkBCQECYXQBBQJkTAUBbQQCYW4JAJEDAgUCY2kAAQQCYW8JAJEDAgUCY2kAAgQCY3oJALUJAgkBAmFZAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY3oCYkQBEnBvb2xFeGlzdHNSRUFET05MWQICYUYCYUcJAJQKAgUDbmlsCQECY3cCBQJhRgUCYUcCYkQBG3NraXBPcmRlclZhbGlkYXRpb25SRUFET05MWQECYWYJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhTAEFAmFmBwJiRAEaZ2V0Q2hhbmdlQW1wQ29uZmlnUkVBRE9OTFkBAmFmBAJmbAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFNAQUCYWYEAmZtCQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYU4BBQJhZgQCZm4JARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhTwEFAmFmCQCUCgIFA25pbAkAzAgCBQJmbAkAzAgCBQJmbQkAzAgCBQJmbgUDbmlsAmJEARVnZXRQb29sV2VpZ2h0UkVBRE9OTFkBAmJWBAJhZgkBAmFZAQkBAmFEAQUCYlYEAmZvCQELdmFsdWVPckVsc2UCCQCfCAEJAQJhZQEFAmFmAAAJAJQKAgUDbmlsBQJmbwJiRAEKZGVsZXRlUG9vbAECYUEEAmRUCQECY2gBBQJhQQQCZG0DCQAAAgkApQgBCAUCYkQGY2FsbGVyCQECY0QBBQJhQQMJAQJjTAEFAmFBBgkBAUsBAhFQb29sIGlzIG5vdCBlbXB0eQkBAmJFAQUCYkQDCQAAAgUCZG0FAmRtBAJmcAMJAAACCQELdmFsdWVPckVsc2UCCQCfCAEJAQJhZQEFAmFBAAAAAAYJAQFLAQIXUG9vbCB3ZWlnaHQgaXMgbm90IFplcm8DCQAAAgUCZnAFAmZwBAJmcQMJAAACCQERQGV4dHJOYXRpdmUoMTA1NSkBCQCRAwIFAmRUBQF3BQFyBgkBAUsBAhpQb29scyBtdXN0IGJlIFNIVVRET1dOICg0KQMJAAACBQJmcQUCZnEEAmZyCQECY0MBBQJhQQQCYUYIBQJmcgJfMQQCYUcIBQJmcgJfMgQCYlYIBQJmcgJfMwQCYW4IBQJmcgJfNAQCYW8IBQJmcgJfNQQCY0YJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCZnMJAPwHBAUCY0YCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZzBQJmcwQCZHMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFZAAQCZnQJAPwHBAUCZHMCCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZ0BQJmdAQCZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFYAAQCZnUJAPwHBAUCZHICCmRlbGV0ZVBvb2wJAMwIAgUCYUYJAMwIAgUCYUcFA25pbAUDbmlsAwkAAAIFAmZ1BQJmdQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUMBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXoBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXYCCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQgIFAmFuBQJhbwkAzAgCCQELRGVsZXRlRW50cnkBCQECYW0CCQCkAwEFAmFuCQCkAwEFAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhdAEFAmJWCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRAEFAmJWCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRQIFAmFGBQJhRwkAzAgCCQELRGVsZXRlRW50cnkBCQECYWUBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYXkBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUgBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUoBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYUwBBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU0BBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU4BBQJhQQkAzAgCCQELRGVsZXRlRW50cnkBCQECYU8BBQJhQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmdgECZncABAJmeAQCYmYJAQJieQADCQABAgUCYmYCCkJ5dGVWZWN0b3IEAmJGBQJiZgUCYkYDCQABAgUCYmYCBFVuaXQIBQJmdg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZnYJYm9keUJ5dGVzCQCRAwIIBQJmdgZwcm9vZnMAAAUCZnhKIc5f", "height": 2633786, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GF22pAHoqkVWwjBzh7znDA6broC8QfRbGVMEWfefydp6 Next: 8pXG1pzHGD7SmgA8E1VH8N8r2Wd1KDYkWaFX91sfRLRJ Diff:
OldNewDifferences
2121
2222 let j = "WAVES"
2323
24-let k = ((100 * 1000) * 1000)
24+let k = "factory_v2.ride"
2525
26-let l = "__"
26+let l = ((100 * 1000) * 1000)
2727
28-let m = ""
28+let m = "__"
2929
30-let n = 1
30+let n = ""
3131
32-let o = 2
32+let o = 1
3333
34-let p = 3
34+let p = 2
3535
36-let q = 4
36+let q = 3
3737
38-let r = 1
38+let r = 4
3939
40-let s = 2
40+let s = 1
4141
42-let t = 3
42+let t = 2
4343
44-let u = 1
44+let u = 3
4545
46-let v = 2
46+let v = 1
4747
48-let w = 3
48+let w = 2
4949
50-let x = 4
50+let x = 3
5151
52-let y = 5
52+let y = 4
5353
54-let z = 6
54+let z = 5
5555
56-let A = 7
56+let A = 6
5757
58-let B = 8
58+let B = 7
5959
60-let C = 9
60+let C = 8
6161
62-let D = 10
62+let D = 9
6363
64-let E = 11
64+let E = 10
6565
66-let F = "WX_EMISSION"
66+let F = 11
6767
68-let G = [F]
68+let G = "WX_EMISSION"
6969
70-func H () = "%s__allowedLpScriptHash"
70+let H = [G]
71+
72+func I (J) = makeString([k, ": ", J], "")
7173
7274
73-func I () = "%s__allowedLpStableScriptHash"
75+func K (J) = throw(I(J))
7476
7577
76-func J () = "%s__swapContract"
78+func L () = "%s__allowedLpScriptHash"
7779
7880
79-func K () = "%s__factoryConfig"
81+func M () = "%s__allowedLpStableScriptHash"
8082
8183
82-func L () = "%s__lpTokensList"
84+func N () = "%s__swapContract"
8385
8486
85-func M () = "%s%s__pool__scriptHash"
87+func O () = "%s__factoryConfig"
8688
8789
88-func N () = "%s%s__matcher__publicKey"
90+func P () = "%s__lpTokensList"
8991
9092
91-func O () = "%s__legacyFactoryContract"
93+func Q () = "%s%s__pool__scriptHash"
9294
9395
94-func P () = "%s__legacyPools"
96+func R () = "%s%s__matcher__publicKey"
9597
9698
97-func Q () = "%s__managerPublicKey"
99+func S () = "%s__legacyFactoryContract"
98100
99101
100-func R () = "%s__managerVaultAddress"
102+func T () = "%s__legacyPools"
101103
102104
103-func S () = "%s__adminPubKeys"
105+func U () = "%s__managerPublicKey"
104106
105107
106-func T () = "%s__assetsStoreContract"
108+func V () = "%s__managerVaultAddress"
107109
108110
109-func U () = "%s__votingEmissionContract"
111+func W () = "%s__adminPubKeys"
110112
111113
112-func V () = makeString(["%s", "priceAssets"], l)
114+func X () = "%s__assetsStoreContract"
113115
114116
115-func W () = "%s__priceDecimals"
117+func Y () = "%s__votingEmissionContract"
116118
117119
118-func X () = "%s__shutdown"
120+func Z () = "%s__userPoolsContract"
119121
120122
121-func Y () = "%s__nextInternalAssetId"
123+func aa () = makeString(["%s", "priceAssets"], m)
122124
123125
124-func Z (aa) = ("%s%s__poolWeight__" + aa)
126+func ab () = "%s__priceDecimals"
125127
126128
127-func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129+func ac () = "%s__shutdown"
128130
129131
130-func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132+func ad () = "%s__nextInternalAssetId"
131133
132134
133-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135+func ae (af) = ("%s%s__poolWeight__" + af)
134136
135137
136-func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
137139
138140
139-func ak (al) = {
140- let am = al
141- let ai = am._1
142- let aj = am._2
143- makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], l)
141+func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142+
143+
144+func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145+
146+
147+func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148+
149+
150+func ap (aq) = {
151+ let ar = aq
152+ let an = ar._1
153+ let ao = ar._2
154+ makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
144155 }
145156
146157
147-func an () = makeString(["%s", "oneTokenOperationsDisabled"], l)
158+func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
148159
149160
150-func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
161+func at (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2Pool")
151162
152163
153-func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
164+func av (aw,ax) = (((("%d%d%s%s__" + aw) + "__") + ax) + "__mappings__PoolAssets2LpAsset")
154165
155166
156-func at (aa) = ("%s%s__spread__" + aa)
167+func ay (af) = ("%s%s__spread__" + af)
157168
158169
159-func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
170+func az (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2PoolAssets")
160171
161172
162-func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
173+func aB (aw,ax) = (((("%d%d%s%s__" + toString(aw)) + "__") + toString(ax)) + "__mappings__poolAssets2PoolContract")
163174
164175
165-func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
176+func aC (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2LpAsset")
166177
167178
168-func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
179+func aD (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2PoolContract")
169180
170181
171-func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
182+func aE (aF,aG) = ((("%s%s%s__wxEmission__" + aF) + "__") + aG)
172183
173184
174-func aC (aa) = ("%s%s__inFee__" + aa)
185+func aH (af) = ("%s%s__inFee__" + af)
175186
176187
177-func aD () = "%s__inFeeDefault"
188+func aI () = "%s__inFeeDefault"
178189
179190
180-func aE (aa) = ("%s%s__outFee__" + aa)
191+func aJ (af) = ("%s%s__outFee__" + af)
181192
182193
183-func aF () = "%s__outFeeDefault"
194+func aK () = "%s__outFeeDefault"
184195
185196
186-func aG (aa) = ("%s%s__skipOrderValidation__" + aa)
197+func aL (af) = ("%s%s__skipOrderValidation__" + af)
187198
188199
189-func aH (aa) = ("%s%s__changeAmpDelay__" + aa)
200+func aM (af) = ("%s%s__changeAmpDelay__" + af)
190201
191202
192-func aI (aa) = ("%s%s__changeAmpDelta__" + aa)
203+func aN (af) = ("%s%s__changeAmpDelta__" + af)
193204
194205
195-func aJ (aa) = ("%s%s__changeAmpTarget__" + aa)
206+func aO (af) = ("%s%s__changeAmpTarget__" + af)
196207
197208
198-func aK () = "%s__sWavesProxyAddress"
209+func aP () = "%s__sWavesProxyAddress"
199210
200211
201-func aL () = "%s__sWavesAssetId"
212+func aQ () = "%s__sWavesAssetId"
202213
203214
204-func aM () = "%s__stakingProfitAddress"
215+func aR () = "%s__stakingProfitAddress"
205216
206217
207-func aN (aa,aO) = makeString(["%s%s%s", "leasedRatio", aa, aO], l)
218+func aS (af,aT) = makeString(["%s%s%s", "leasedRatio", af, aT], m)
208219
209220
210-func aP (aO) = makeString(["%s%s", "leasedRatioDefault", aO], l)
221+func aU (aT) = makeString(["%s%s", "leasedRatioDefault", aT], m)
211222
212223
213-func aQ (aa,aO) = makeString(["%s%s%s", "leasedRatioTolerance", aa, aO], l)
224+func aV (af,aT) = makeString(["%s%s%s", "leasedRatioTolerance", af, aT], m)
214225
215226
216-func aR (aa,aO) = makeString(["%s%s%s", "minBalance", aa, aO], l)
227+func aW (af,aT) = makeString(["%s%s%s", "minBalance", af, aT], m)
217228
218229
219-func aS (aO) = makeString(["%s%s", "minBalanceDefault", aO], l)
230+func aX (aT) = makeString(["%s%s", "minBalanceDefault", aT], m)
220231
221232
222-func aT (aU) = valueOrErrorMessage(getString(this, aU), ("No data for this.key=" + aU))
233+func aY (aZ) = valueOrErrorMessage(getString(this, aZ), ("No data for this.key=" + aZ))
223234
224235
225-func aV (aU) = valueOrErrorMessage(getBoolean(this, aU), ("No data for this.key=" + aU))
236+func ba (aZ) = valueOrErrorMessage(getBoolean(this, aZ), ("No data for this.key=" + aZ))
226237
227238
228-func aW (aU) = valueOrErrorMessage(getInteger(this, aU), ("No data for this.key=" + aU))
239+func bb (aZ) = valueOrErrorMessage(getInteger(this, aZ), ("No data for this.key=" + aZ))
229240
230241
231-func aX (aY) = if ((aY == j))
242+func bc (bd) = if ((bd == j))
232243 then unit
233- else fromBase58String(aY)
244+ else fromBase58String(bd)
234245
235246
236-func aZ () = {
237- let ba = getString(R())
238- if ($isInstanceOf(ba, "String"))
247+func be () = {
248+ let bf = getString(V())
249+ if ($isInstanceOf(bf, "String"))
239250 then {
240- let bb = ba
241- addressFromStringValue(bb)
251+ let bg = bf
252+ addressFromStringValue(bg)
242253 }
243254 else this
244255 }
245256
246257
247-let bc = 1
258+let bh = 1
248259
249-let bd = 2
260+let bi = 2
250261
251-let be = 3
262+let bj = 3
252263
253-let bf = 4
264+let bk = 4
254265
255-let bg = 5
266+let bl = 5
256267
257-let bh = 6
268+let bm = 6
258269
259-let bi = 7
270+let bn = 7
260271
261-let bj = 8
272+let bo = 8
262273
263-let bk = 9
274+let bp = 9
264275
265-let bl = 10
276+let bq = 10
266277
267-let bm = 11
278+let br = 11
268279
269-func bn (bo) = addressFromStringValue(bo[bd])
280+func bs (bt) = addressFromStringValue(bt[bi])
270281
271282
272-func bp (bo) = addressFromStringValue(bo[bg])
283+func bu (bt) = addressFromStringValue(bt[bl])
273284
274285
275-func bq (bo) = addressFromStringValue(bo[bc])
286+func bv (bt) = addressFromStringValue(bt[bh])
276287
277288
278-func br (bo) = addressFromStringValue(bo[bl])
289+func bw (bt) = addressFromStringValue(bt[bq])
279290
280291
281-func bs () = {
282- let ba = getString(V())
283- if ($isInstanceOf(ba, "String"))
292+func bx () = {
293+ let bf = getString(aa())
294+ if ($isInstanceOf(bf, "String"))
284295 then {
285- let bb = ba
286- if ((size(bb) == 0))
296+ let bg = bf
297+ if ((size(bg) == 0))
287298 then nil
288- else split(bb, l)
299+ else split(bg, m)
289300 }
290301 else nil
291302 }
292303
293304
294-func bt () = {
295- let bu = aZ()
296- let ba = getString(bu, Q())
297- if ($isInstanceOf(ba, "String"))
305+func by () = {
306+ let bz = be()
307+ let bf = getString(bz, U())
308+ if ($isInstanceOf(bf, "String"))
298309 then {
299- let bb = ba
300- fromBase58String(bb)
310+ let bg = bf
311+ fromBase58String(bg)
301312 }
302- else if ($isInstanceOf(ba, "Unit"))
313+ else if ($isInstanceOf(bf, "Unit"))
303314 then unit
304315 else throw("Match error")
305316 }
306317
307318
308-let bv = throw("Permission denied")
319+let bA = K("Permission denied")
309320
310-let bw = throw("Test error here")
321+let bB = K("Test error here")
311322
312-func bx (by) = if ((by.caller == this))
323+func bC (bD) = if ((bD.caller == this))
313324 then true
314- else bv
325+ else bA
315326
316327
317-func bz (by) = {
318- let ba = bt()
319- if ($isInstanceOf(ba, "ByteVector"))
328+func bE (bD) = {
329+ let bf = by()
330+ if ($isInstanceOf(bf, "ByteVector"))
320331 then {
321- let bA = ba
322- if ((by.callerPublicKey == bA))
332+ let bF = bf
333+ if ((bD.callerPublicKey == bF))
323334 then true
324- else bv
335+ else bA
325336 }
326- else if ($isInstanceOf(ba, "Unit"))
327- then bx(by)
337+ else if ($isInstanceOf(bf, "Unit"))
338+ then bC(bD)
328339 else throw("Match error")
329340 }
330341
331342
332-func bB (bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM], l)
343+func bG (bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR], m)
333344
334345
335-func bN (bC,bD,bE,bF,bG,bH,bI) = makeString(["%s%s%s%s%s%s", bC, bD, bE, bF, bG, bH, bI], l)
346+func bS (bH,bI,bJ,bK,bL,bM,bN) = makeString(["%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN], m)
336347
337348
338-func bO (aa,bP,bQ,bR,bS,bT,bU,bV,bW,bX,bY) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bP, bQ, bR, bS, toString(bT), toString(bU), toString(bV), toString(bW), toString(bX), bY], l)
349+func bT (af,bU,bV,bW,bX,bY,bZ,ca,cb,cc,cd) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bU, bV, bW, bX, toString(bY), toString(bZ), toString(ca), toString(cb), toString(cc), cd], m)
339350
340351
341-func bZ (ca,cb) = makeString(["%d%d", toString(ca), toString(cb)], l)
352+func ce (cf,cg) = makeString(["%d%d", toString(cf), toString(cg)], m)
342353
343354
344-func cc (aa) = {
345- let cd = split(aT(au(aa)), l)
346- let ai = cd[1]
347- let aj = cd[2]
348- split(aT(ah(ai, aj)), l)
355+func ch (af) = {
356+ let ci = split(aY(az(af)), m)
357+ let an = ci[1]
358+ let ao = ci[2]
359+ split(aY(am(an, ao)), m)
349360 }
350361
351362
352-func ce (cf,cg) = {
353- let ch = valueOrElse(getInteger(this, af(cf)), 0)
354- let ci = valueOrElse(getInteger(this, Y()), 0)
355- let cj = if ((ch == 0))
363+func cj (ck,cl) = {
364+ let cm = valueOrElse(getInteger(this, ak(ck)), 0)
365+ let cn = valueOrElse(getInteger(this, ad()), 0)
366+ let co = if ((cm == 0))
356367 then {
357- let ck = (ci + cg)
358- $Tuple3(ck, [IntegerEntry(Y(), ck), IntegerEntry(af(cf), ck), StringEntry(ad(ck), cf)], true)
368+ let cp = (cn + cl)
369+ $Tuple3(cp, [IntegerEntry(ad(), cp), IntegerEntry(ak(ck), cp), StringEntry(ai(cp), ck)], true)
359370 }
360- else $Tuple3(ch, nil, false)
361- cj
371+ else $Tuple3(cm, nil, false)
372+ co
362373 }
363374
364375
365-func cl (by) = {
366- let cm = split(valueOrElse(getString(S()), m), l)
367- if (containsElement(cm, toBase58String(by.callerPublicKey)))
376+func cq (bD) = {
377+ let cr = split(valueOrElse(getString(W()), n), m)
378+ if (containsElement(cr, toBase58String(bD.callerPublicKey)))
368379 then true
369380 else {
370- let cn = bz(by)
371- if ((cn == cn))
381+ let cs = bE(bD)
382+ if ((cs == cs))
372383 then true
373384 else throw("Strict value is not equal to itself.")
374385 }
375386 }
376387
377388
378-func co (aU,cp,cq) = valueOrElse(getInteger(this, aU), valueOrElse(getInteger(this, cp), cq))
389+func ct (aZ,cu,cv) = valueOrElse(getInteger(this, aZ), valueOrElse(getInteger(this, cu), cv))
379390
380391
381-func cr (aA,aB) = {
382- let ai = getInteger(af(aA))
383- let aj = getInteger(af(aB))
384- if (if ((ai == unit))
392+func cw (aF,aG) = {
393+ let an = getInteger(ak(aF))
394+ let ao = getInteger(ak(aG))
395+ if (if ((an == unit))
385396 then true
386- else (aj == unit))
397+ else (ao == unit))
387398 then false
388399 else {
389- let cs = toString(value(ai))
390- let ct = toString(value(aj))
391- let cu = getString(ah(cs, ct))
392- let cv = getString(ah(ct, cs))
393- let cw = if ((cu != unit))
400+ let cx = toString(value(an))
401+ let cy = toString(value(ao))
402+ let cz = getString(am(cx, cy))
403+ let cA = getString(am(cy, cx))
404+ let cB = if ((cz != unit))
394405 then true
395- else (cv != unit)
396- cw
406+ else (cA != unit)
407+ cB
397408 }
398409 }
399410
400411
401-@Callable(by)
402-func getSwapContractREADONLY () = $Tuple2(nil, aT(J()))
412+func cC (aA) = {
413+ let ci = {
414+ let bf = getString(az(aA))
415+ if ($isInstanceOf(bf, "String"))
416+ then {
417+ let bg = bf
418+ split(bg, m)
419+ }
420+ else K(makeString([aA, "pool is not found"], " "))
421+ }
422+ let an = parseIntValue(ci[1])
423+ let ao = parseIntValue(ci[2])
424+ let aF = getStringValue(ai(an))
425+ let aG = getStringValue(ai(ao))
426+ let bV = getStringValue(aC(aA))
427+ $Tuple5(aF, aG, bV, an, ao)
428+ }
429+
430+
431+func cD (aA) = {
432+ let cE = cC(aA)
433+ let aF = cE._1
434+ let aG = cE._2
435+ let bV = cE._3
436+ let an = cE._4
437+ let ao = cE._5
438+ let cF = addressFromStringValue(getStringValue(Z()))
439+ let cG = invoke(cF, "getPoolCreatorREADONLY", [aF, aG], nil)
440+ cG
441+ }
442+
443+
444+func cH (cI,cJ) = {
445+ let cK = addressFromStringValue(cI)
446+ if ((cJ == "WAVES"))
447+ then wavesBalance(cK).regular
448+ else {
449+ let aT = fromBase58String(cJ)
450+ assetBalance(cK, aT)
451+ }
452+ }
453+
454+
455+func cL (aA) = {
456+ let cM = cC(aA)
457+ let aF = cM._1
458+ let aG = cM._2
459+ let bV = cM._3
460+ let an = cM._4
461+ let ao = cM._5
462+ if ((cH(aA, aF) == 0))
463+ then (cH(aA, aG) == 0)
464+ else false
465+ }
466+
467+
468+@Callable(bD)
469+func getSwapContractREADONLY () = $Tuple2(nil, aY(N()))
403470
404471
405472
406-@Callable(by)
407-func getPoolLeaseConfigREADONLY (aa,aO) = {
408- let cx = {
409- let ba = getInteger(this, aN(aa, aO))
410- if ($isInstanceOf(ba, "Int"))
473+@Callable(bD)
474+func getPoolLeaseConfigREADONLY (af,aT) = {
475+ let cN = {
476+ let bf = getInteger(this, aS(af, aT))
477+ if ($isInstanceOf(bf, "Int"))
411478 then {
412- let cy = ba
413- $Tuple2(true, min([100, max([0, cy])]))
479+ let cO = bf
480+ $Tuple2(true, min([100, max([0, cO])]))
414481 }
415482 else {
416- let cz = getInteger(this, aP(aO))
417- if ($isInstanceOf(cz, "Int"))
483+ let cP = getInteger(this, aU(aT))
484+ if ($isInstanceOf(cP, "Int"))
418485 then {
419- let cA = cz
420- $Tuple2(true, min([100, max([0, cA])]))
486+ let cQ = cP
487+ $Tuple2(true, min([100, max([0, cQ])]))
421488 }
422489 else $Tuple2(false, 0)
423490 }
424491 }
425- let cB = cx._1
426- let cC = cx._2
427- let cD = {
428- let ba = getInteger(this, aR(aa, aO))
429- if ($isInstanceOf(ba, "Int"))
492+ let cR = cN._1
493+ let cS = cN._2
494+ let cT = {
495+ let bf = getInteger(this, aW(af, aT))
496+ if ($isInstanceOf(bf, "Int"))
430497 then {
431- let cE = ba
432- max([0, cE])
498+ let cU = bf
499+ max([0, cU])
433500 }
434501 else {
435- let cz = getInteger(this, aS(aO))
436- if ($isInstanceOf(cz, "Int"))
502+ let cP = getInteger(this, aX(aT))
503+ if ($isInstanceOf(cP, "Int"))
437504 then {
438- let cF = cz
439- max([0, cF])
505+ let cV = cP
506+ max([0, cV])
440507 }
441508 else 0
442509 }
443510 }
444- let cG = if ((aO == "WAVES"))
445- then $Tuple3(valueOrElse(getString(this, aK()), ""), getString(this, valueOrElse(aL(), "")), c)
511+ let cW = if ((aT == "WAVES"))
512+ then $Tuple3(valueOrElse(getString(this, aP()), ""), getString(this, valueOrElse(aQ(), "")), c)
446513 else $Tuple3("", "", 0)
447- let cH = cG._1
448- let cI = cG._2
449- let cJ = cG._3
450- let cK = valueOrElse(getString(this, aM()), "")
451- $Tuple2(nil, $Tuple7(cB, cC, cD, cH, cI, cJ, cK))
514+ let cX = cW._1
515+ let cY = cW._2
516+ let cZ = cW._3
517+ let da = valueOrElse(getString(this, aR()), "")
518+ $Tuple2(nil, $Tuple7(cR, cS, cT, cX, cY, cZ, da))
452519 }
453520
454521
455522
456-@Callable(by)
457-func getLpAssetFromPoolAssetsREADONLY (cL,cM) = if (if ((cL == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
458- then (cM == "WAVES")
523+@Callable(bD)
524+func getLpAssetFromPoolAssetsREADONLY (db,dc) = if (if ((db == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
525+ then (dc == "WAVES")
459526 else false)
460527 then $Tuple2(nil, unit)
461528 else {
462- let cN = value(getInteger(this, af(cL)))
463- let cO = value(getInteger(this, af(cM)))
464- let cP = getString(this, aq(toString(cN), toString(cO)))
465- let cQ = if ((cP == unit))
529+ let dd = value(getInteger(this, ak(db)))
530+ let de = value(getInteger(this, ak(dc)))
531+ let df = getString(this, av(toString(dd), toString(de)))
532+ let dg = if ((df == unit))
466533 then unit
467- else drop(value(cP), 4)
468- $Tuple2(nil, cQ)
534+ else drop(value(df), 4)
535+ $Tuple2(nil, dg)
469536 }
470537
471538
472539
473-@Callable(by)
474-func getPoolAddressFromLpAssetREADONLY (cR) = $Tuple2(nil, valueOrElse(getString(this, ay(cR)), ""))
540+@Callable(bD)
541+func getPoolAddressFromLpAssetREADONLY (dh) = $Tuple2(nil, valueOrElse(getString(this, aD(dh)), ""))
475542
476543
477544
478-@Callable(by)
479-func constructor (cS,cT,bE,bF,bG,bH,cU,cV) = {
480- let cW = bz(by)
481- if ((cW == cW))
482- then [StringEntry(K(), bN(cS, cT, bE, bF, bG, bH, cU)), IntegerEntry(W(), cV)]
545+@Callable(bD)
546+func constructor (di,dj,bJ,bK,bL,bM,dk,dl) = {
547+ let dm = bE(bD)
548+ if ((dm == dm))
549+ then [StringEntry(O(), bS(di, dj, bJ, bK, bL, bM, dk)), IntegerEntry(ab(), dl)]
483550 else throw("Strict value is not equal to itself.")
484551 }
485552
486553
487554
488-@Callable(by)
489-func constructorV2 (cX) = {
490- let cW = bz(by)
491- if ((cW == cW))
555+@Callable(bD)
556+func constructorV2 (dn) = {
557+ let dm = bE(bD)
558+ if ((dm == dm))
492559 then {
493- let cY = addressFromPublicKey(fromBase58String(cX))
494- if ((cY == cY))
495- then [StringEntry(N(), cX)]
560+ let do = addressFromPublicKey(fromBase58String(dn))
561+ if ((do == do))
562+ then [StringEntry(R(), dn)]
496563 else throw("Strict value is not equal to itself.")
497564 }
498565 else throw("Strict value is not equal to itself.")
500567
501568
502569
503-@Callable(by)
504-func constructorV3 (bJ,bK,bL,bM) = {
505- let cW = bz(by)
506- if ((cW == cW))
570+@Callable(bD)
571+func constructorV3 (bO,bP,bQ,bR) = {
572+ let dm = bE(bD)
573+ if ((dm == dm))
507574 then {
508- let bo = split(aT(K()), l)
509-[StringEntry(K(), bB(bo[1], bo[2], bo[3], bo[4], bo[5], bo[6], bo[7], bJ, bK, bL, bM))]
575+ let bt = split(aY(O()), m)
576+[StringEntry(O(), bG(bt[1], bt[2], bt[3], bt[4], bt[5], bt[6], bt[7], bO, bP, bQ, bR))]
510577 }
511578 else throw("Strict value is not equal to itself.")
512579 }
513580
514581
515582
516-@Callable(by)
517-func constructorV4 (cZ,da) = {
518- let cW = bz(by)
519- if ((cW == cW))
520- then [StringEntry(O(), cZ), StringEntry(P(), makeString(da, l))]
583+@Callable(bD)
584+func constructorV4 (dp,dq) = {
585+ let dm = bE(bD)
586+ if ((dm == dm))
587+ then [StringEntry(S(), dp), StringEntry(T(), makeString(dq, m))]
521588 else throw("Strict value is not equal to itself.")
522589 }
523590
524591
525592
526-@Callable(by)
527-func constructorV5 (db) = {
528- let cW = bz(by)
529- if ((cW == cW))
530- then [StringEntry(T(), db)]
593+@Callable(bD)
594+func constructorV5 (dr) = {
595+ let dm = bE(bD)
596+ if ((dm == dm))
597+ then [StringEntry(X(), dr)]
531598 else throw("Strict value is not equal to itself.")
532599 }
533600
534601
535602
536-@Callable(by)
537-func constructorV6 (dc,dd) = {
538- let de = [bz(by), if ((addressFromString(dc) != unit))
603+@Callable(bD)
604+func constructorV6 (ds,dt) = {
605+ let du = [bE(bD), if ((addressFromString(ds) != unit))
539606 then true
540607 else "invalid voting emission contract address"]
541- if ((de == de))
542- then [StringEntry(U(), dc), StringEntry(V(), makeString(dd, l))]
608+ if ((du == du))
609+ then [StringEntry(Y(), ds), StringEntry(aa(), makeString(dt, m))]
543610 else throw("Strict value is not equal to itself.")
544611 }
545612
546613
547614
548-@Callable(by)
549-func setAdmins (df) = {
550- let cW = bz(by)
551- if ((cW == cW))
552- then [StringEntry(S(), makeString(df, l))]
615+@Callable(bD)
616+func setAdmins (dv) = {
617+ let dm = bE(bD)
618+ if ((dm == dm))
619+ then [StringEntry(W(), makeString(dv, m))]
553620 else throw("Strict value is not equal to itself.")
554621 }
555622
556623
557624
558-@Callable(by)
559-func activateNewPool (aa,bR,bS,dg,dh,di,bY,dj) = {
560- let cW = cl(by)
561- if ((cW == cW))
562- then if (isDefined(getString(au(aa))))
563- then throw((("Pool address " + aa) + " already registered."))
625+@Callable(bD)
626+func activateNewPool (af,bW,bX,dw,dx,dy,cd,dz) = {
627+ let dm = cq(bD)
628+ if ((dm == dm))
629+ then if (isDefined(getString(az(af))))
630+ then K((("Pool address " + af) + " already registered."))
564631 else {
565- let dk = ce(bR, 1)
566- let dl = dk._1
567- let dm = ce(bS, if (dk._3)
632+ let dA = cj(bW, 1)
633+ let dB = dA._1
634+ let dC = cj(bX, if (dA._3)
568635 then 2
569636 else 1)
570- let dn = dm._1
571- let do = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
572- let dp = getBinaryValue(M())
573- let dq = cr(bR, bS)
574- if (dq)
575- then throw((((("Pool " + bR) + "/") + bS) + " has already been activated."))
637+ let dD = dC._1
638+ let dE = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
639+ let dF = getBinaryValue(Q())
640+ let dG = cw(bW, bX)
641+ if (dG)
642+ then K((((("Pool " + bW) + "/") + bX) + " has already been activated."))
576643 else {
577- let dr = value(getString(this, ah(toString(dl), toString(dn))))
578- let ds = if ((bR == "WAVES"))
579- then k
580- else pow(10, 0, value(assetInfo(fromBase58String(bR))).decimals, 0, 0, DOWN)
581- let dt = if ((bS == "WAVES"))
582- then k
583- else pow(10, 0, value(assetInfo(fromBase58String(bS))).decimals, 0, 0, DOWN)
584- let du = Issue(dg, dh, 1, 8, true)
585- let bQ = calculateAssetId(du)
586- let dv = toBase58String(bQ)
587- let dw = invoke(addressFromStringValue(aa), "activate", [bR, bS], nil)
588- if ((dw == dw))
589- then if ((dw != "success"))
590- then throw("Pool initialisation error happened.")
644+ let dH = value(getString(this, am(toString(dB), toString(dD))))
645+ let dI = if ((bW == "WAVES"))
646+ then l
647+ else pow(10, 0, value(assetInfo(fromBase58String(bW))).decimals, 0, 0, DOWN)
648+ let dJ = if ((bX == "WAVES"))
649+ then l
650+ else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
651+ let dK = Issue(dw, dx, 1, 8, true)
652+ let bV = calculateAssetId(dK)
653+ let dL = toBase58String(bV)
654+ let dM = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
655+ if ((dM == dM))
656+ then if ((dM != "success"))
657+ then K("Pool initialisation error happened.")
591658 else {
592- let db = addressFromStringValue(aT(T()))
593- let dx = invoke(db, "createOrUpdate", [dv, dg, false], nil)
594- if ((dx == dx))
659+ let dr = addressFromStringValue(aY(X()))
660+ let dN = invoke(dr, "createOrUpdate", [dL, dw, false], nil)
661+ if ((dN == dN))
595662 then {
596- let dy = invoke(db, "addLabel", [dv, h], nil)
597- if ((dy == dy))
663+ let dO = invoke(dr, "addLabel", [dL, h], nil)
664+ if ((dO == dO))
598665 then {
599- let dz = invoke(db, "setLogo", [dv, dj], nil)
600- if ((dz == dz))
666+ let dP = invoke(dr, "setLogo", [dL, dz], nil)
667+ if ((dP == dP))
601668 then {
602- let dA = invoke(db, "addAssetsLink", [bR, bS, dv], nil)
603- if ((dA == dA))
669+ let dQ = invoke(dr, "addAssetsLink", [bW, bX, dL], nil)
670+ if ((dQ == dQ))
604671 then {
605- let dB = invoke(db, "increaseAssetPoolsNumber", [bR], nil)
606- if ((dB == dB))
607- then $Tuple2(((dk._2 ++ dm._2) ++ [du, Burn(bQ, 1), StringEntry(ah(toString(dl), toString(dn)), bO(aa, toString(n), dv, bR, bS, ds, dt, dl, dn, k, bY)), StringEntry(ao(dv), bZ(dl, dn)), StringEntry(aq(toString(dl), toString(dn)), ("%s__" + dv)), StringEntry(au(aa), bZ(dl, dn)), StringEntry(aw(dl, dn), aa), StringEntry(ay(dv), aa), StringEntry(ax(aa), dv), IntegerEntry(Z(aa), di), IntegerEntry(at(aa), i)]), dv)
672+ let dR = invoke(dr, "increaseAssetPoolsNumber", [bW], nil)
673+ if ((dR == dR))
674+ then $Tuple2(((dA._2 ++ dC._2) ++ [dK, Burn(bV, 1), StringEntry(am(toString(dB), toString(dD)), bT(af, toString(o), dL, bW, bX, dI, dJ, dB, dD, l, cd)), StringEntry(at(dL), ce(dB, dD)), StringEntry(av(toString(dB), toString(dD)), ("%s__" + dL)), StringEntry(az(af), ce(dB, dD)), StringEntry(aB(dB, dD), af), StringEntry(aD(dL), af), StringEntry(aC(af), dL), IntegerEntry(ae(af), dy), IntegerEntry(ay(af), i)]), dL)
608675 else throw("Strict value is not equal to itself.")
609676 }
610677 else throw("Strict value is not equal to itself.")
623690
624691
625692
626-@Callable(by)
627-func managePool (aa,dC) = {
628- let cW = bz(by)
629- if ((cW == cW))
693+@Callable(bD)
694+func managePool (af,dS) = {
695+ let dm = bE(bD)
696+ if ((dm == dm))
630697 then {
631- let dD = cc(aa)
632- let bP = dD[v]
633- let dv = dD[w]
634- let bR = dD[x]
635- let bS = dD[y]
636- let ds = parseIntValue(dD[z])
637- let dt = parseIntValue(dD[A])
638- let dl = parseIntValue(dD[B])
639- let dn = parseIntValue(dD[C])
640- let dE = parseIntValue(dD[D])
641- let bY = dD[E]
642-[StringEntry(ah(toString(dl), toString(dn)), bO(aa, toString(dC), dv, bR, bS, ds, dt, dl, dn, dE, bY))]
698+ let dT = ch(af)
699+ let bU = dT[w]
700+ let dL = dT[x]
701+ let bW = dT[y]
702+ let bX = dT[z]
703+ let dI = parseIntValue(dT[A])
704+ let dJ = parseIntValue(dT[B])
705+ let dB = parseIntValue(dT[C])
706+ let dD = parseIntValue(dT[D])
707+ let dU = parseIntValue(dT[E])
708+ let cd = dT[F]
709+[StringEntry(am(toString(dB), toString(dD)), bT(af, toString(dS), dL, bW, bX, dI, dJ, dB, dD, dU, cd))]
643710 }
644711 else throw("Strict value is not equal to itself.")
645712 }
646713
647714
648715
649-@Callable(by)
650-func emit (dF) = {
651- let dG = by.caller
652- let dH = by.originCaller
653- let dI = valueOrErrorMessage(getString(ax(toString(dG))), "Invalid LP address called me.")
654- let dJ = fromBase58String(dI)
655- let da = split(valueOrElse(getString(P()), m), l)
656- let cZ = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
657- if ((0 >= dF))
716+@Callable(bD)
717+func emit (dV) = {
718+ let dW = bD.caller
719+ let dX = bD.originCaller
720+ let dY = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
721+ let dZ = fromBase58String(dY)
722+ let dq = split(valueOrElse(getString(T()), n), m)
723+ let dp = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
724+ if ((0 >= dV))
658725 then nil
659- else if (containsElement(da, toString(dG)))
660- then $Tuple2(nil, cZ)
661- else $Tuple2([Reissue(dJ, dF, true), ScriptTransfer(by.caller, dF, dJ)], "success")
726+ else if (containsElement(dq, toString(dW)))
727+ then $Tuple2(nil, dp)
728+ else $Tuple2([Reissue(dZ, dV, true), ScriptTransfer(bD.caller, dV, dZ)], "success")
662729 }
663730
664731
665732
666-@Callable(by)
667-func burn (dK) = {
668- let dG = by.caller
669- let dH = by.originCaller
670- let dL = value(by.payments[0])
671- let dM = value(dL.amount)
672- let dN = toBase58String(value(dL.assetId))
673- let dO = valueOrErrorMessage(getString(ax(toString(dG))), "Invalid LP address called me.")
674- if ((dN != dO))
675- then throw("Invalid asset passed.")
676- else if ((dK != dM))
677- then throw("Invalid amount passed.")
733+@Callable(bD)
734+func burn (ea) = {
735+ let dW = bD.caller
736+ let dX = bD.originCaller
737+ let eb = value(bD.payments[0])
738+ let ec = value(eb.amount)
739+ let ed = toBase58String(value(eb.assetId))
740+ let ee = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
741+ if ((ed != ee))
742+ then K("Invalid asset passed.")
743+ else if ((ea != ec))
744+ then K("Invalid amount passed.")
678745 else {
679- let dJ = fromBase58String(dO)
680- $Tuple2([Burn(dJ, dK)], "success")
746+ let dZ = fromBase58String(ee)
747+ $Tuple2([Burn(dZ, ea)], "success")
681748 }
682749 }
683750
684751
685752
686-@Callable(by)
687-func modifyWeight (bQ,dP) = {
688- let cW = if ((toBase58String(by.caller.bytes) == valueOrElse(getString(this, U()), "")))
753+@Callable(bD)
754+func modifyWeight (bV,ef) = {
755+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
689756 then true
690- else bz(by)
691- if ((cW == cW))
757+ else bE(bD)
758+ if ((dm == dm))
692759 then {
693- let av = aT(ay(bQ))
694- let dQ = Z(av)
695- let dR = Z(g)
696- let dS = valueOrElse(getInteger(dR), 0)
697- let di = valueOrElse(getInteger(dQ), 0)
698- let dT = dP
699- let bo = split(aT(K()), l)
700- let cS = bq(bo)
701- let dU = invoke(cS, "onModifyWeight", [bQ, av], nil)
702- if ((dU == dU))
760+ let aA = aY(aD(bV))
761+ let eg = ae(aA)
762+ let eh = ae(g)
763+ let ei = valueOrElse(getInteger(eh), 0)
764+ let dy = valueOrElse(getInteger(eg), 0)
765+ let ej = ef
766+ let bt = split(aY(O()), m)
767+ let di = bv(bt)
768+ let ek = invoke(di, "onModifyWeight", [bV, aA], nil)
769+ if ((ek == ek))
703770 then {
704- let dV = if ((dS == 0))
771+ let el = if ((ei == 0))
705772 then nil
706- else [IntegerEntry(dR, 0)]
707- let dW = ab(av, 0)
708- let dX = getInteger(dW)
709- let dY = if ((dX == unit))
773+ else [IntegerEntry(eh, 0)]
774+ let em = ag(aA, 0)
775+ let en = getInteger(em)
776+ let eo = if ((en == unit))
710777 then nil
711- else [DeleteEntry(dW)]
712- (([IntegerEntry(dQ, dT)] ++ dV) ++ dY)
778+ else [DeleteEntry(em)]
779+ (([IntegerEntry(eg, ej)] ++ el) ++ eo)
713780 }
714781 else throw("Strict value is not equal to itself.")
715782 }
718785
719786
720787
721-@Callable(by)
722-func modifyWeights (dZ,ea,eb,ec) = {
723- let cW = bz(by)
724- if ((cW == cW))
788+@Callable(bD)
789+func modifyWeights (ep,eq,er,es) = {
790+ let dm = bE(bD)
791+ if ((dm == dm))
725792 then {
726- let ed = ((5 * f) / 100)
727- let ee = ((5 * f) / 100)
728- let ef = ((5 * f) / 100)
729- let bo = split(aT(K()), l)
730- let eg = bq(bo)
731- let eh = br(bo)
732- let ei = Z(dZ)
733- let ej = Z(ea)
734- let ek = Z(eb)
735- let el = Z(ec)
736- let em = aW(ei)
737- let en = aW(ej)
738- let eo = (em - ef)
739- let ep = (en - ef)
740- if ((0 >= eo))
741- then throw(("invalid btcWeightNew: " + toString(eo)))
742- else if ((0 >= ep))
743- then throw(("invalid ethWeightNew: " + toString(ep)))
793+ let et = ((5 * f) / 100)
794+ let eu = ((5 * f) / 100)
795+ let ev = ((5 * f) / 100)
796+ let bt = split(aY(O()), m)
797+ let ew = bv(bt)
798+ let ex = bw(bt)
799+ let ey = ae(ep)
800+ let ez = ae(eq)
801+ let eA = ae(er)
802+ let eB = ae(es)
803+ let eC = bb(ey)
804+ let eD = bb(ez)
805+ let eE = (eC - ev)
806+ let eF = (eD - ev)
807+ if ((0 >= eE))
808+ then K(("invalid btcWeightNew: " + toString(eE)))
809+ else if ((0 >= eF))
810+ then K(("invalid ethWeightNew: " + toString(eF)))
744811 else {
745- let eq = aT(ax(dZ))
746- let er = aT(ax(ea))
747- let es = aT(ax(eb))
748- let et = aT(ax(ec))
749- let eu = invoke(eg, "onModifyWeight", [eq, dZ], nil)
750- if ((eu == eu))
812+ let eG = aY(aC(ep))
813+ let eH = aY(aC(eq))
814+ let eI = aY(aC(er))
815+ let eJ = aY(aC(es))
816+ let eK = invoke(ew, "onModifyWeight", [eG, ep], nil)
817+ if ((eK == eK))
751818 then {
752- let ev = invoke(eg, "onModifyWeight", [er, ea], nil)
753- if ((ev == ev))
819+ let eL = invoke(ew, "onModifyWeight", [eH, eq], nil)
820+ if ((eL == eL))
754821 then {
755- let ew = invoke(eg, "onModifyWeight", [es, eb], nil)
756- if ((ew == ew))
822+ let eM = invoke(ew, "onModifyWeight", [eI, er], nil)
823+ if ((eM == eM))
757824 then {
758- let ex = invoke(eg, "onModifyWeight", [et, ec], nil)
759- if ((ex == ex))
760- then [IntegerEntry(ei, eo), IntegerEntry(ej, ep), IntegerEntry(ek, ed), IntegerEntry(el, ee), IntegerEntry(ab(dZ, 0), em), IntegerEntry(ab(ea, 0), en), IntegerEntry(ab(eb, 0), ed), IntegerEntry(ab(ec, 0), ee)]
825+ let eN = invoke(ew, "onModifyWeight", [eJ, es], nil)
826+ if ((eN == eN))
827+ then [IntegerEntry(ey, eE), IntegerEntry(ez, eF), IntegerEntry(eA, et), IntegerEntry(eB, eu), IntegerEntry(ag(ep, 0), eC), IntegerEntry(ag(eq, 0), eD), IntegerEntry(ag(er, 0), et), IntegerEntry(ag(es, 0), eu)]
761828 else throw("Strict value is not equal to itself.")
762829 }
763830 else throw("Strict value is not equal to itself.")
772839
773840
774841
775-@Callable(by)
776-func checkWxEmissionPoolLabel (aA,aB) = {
777- let ey = {
778- let ba = getBoolean(az(aA, aB))
779- if ($isInstanceOf(ba, "Boolean"))
842+@Callable(bD)
843+func checkWxEmissionPoolLabel (aF,aG) = {
844+ let eO = {
845+ let bf = getBoolean(aE(aF, aG))
846+ if ($isInstanceOf(bf, "Boolean"))
780847 then {
781- let cE = ba
782- cE
848+ let cU = bf
849+ cU
783850 }
784851 else false
785852 }
786- $Tuple2(nil, ey)
853+ $Tuple2(nil, eO)
787854 }
788855
789856
790857
791-@Callable(by)
792-func setWxEmissionPoolLabel (aA,aB) = {
793- let cW = cl(by)
794- if ((cW == cW))
795- then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
858+@Callable(bD)
859+func setWxEmissionPoolLabel (aF,aG) = {
860+ let dm = cq(bD)
861+ if ((dm == dm))
862+ then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
796863 else throw("Strict value is not equal to itself.")
797864 }
798865
799866
800867
801-@Callable(by)
802-func deleteWxEmissionPoolLabel (aA,aB) = {
803- let cW = if ((by.caller == this))
868+@Callable(bD)
869+func deleteWxEmissionPoolLabel (aF,aG) = {
870+ let dm = if ((bD.caller == this))
804871 then true
805- else cl(by)
806- if ((cW == cW))
807- then $Tuple2([DeleteEntry(az(aA, aB))], unit)
872+ else cq(bD)
873+ if ((dm == dm))
874+ then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
808875 else throw("Strict value is not equal to itself.")
809876 }
810877
811878
812879
813-@Callable(by)
814-func onVerificationLoss (aO) = {
815- let cW = if ((toBase58String(by.caller.bytes) == valueOrElse(getString(this, T()), "")))
880+@Callable(bD)
881+func onVerificationLoss (aT) = {
882+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
816883 then true
817- else bz(by)
818- if ((cW == cW))
884+ else bE(bD)
885+ if ((dm == dm))
819886 then {
820- let dd = bs()
821- let ez = if ((size(dd) > 0))
887+ let dt = bx()
888+ let eP = if ((size(dt) > 0))
822889 then true
823- else throw("invalid price assets")
824- if ((ez == ez))
890+ else K("invalid price assets")
891+ if ((eP == eP))
825892 then {
826- func eA (eB,eC) = {
827- let cy = invoke(this, "deleteWxEmissionPoolLabel", [aO, eC], nil)
828- if ((cy == cy))
893+ func eQ (eR,eS) = {
894+ let cO = invoke(this, "deleteWxEmissionPoolLabel", [aT, eS], nil)
895+ if ((cO == cO))
829896 then unit
830897 else throw("Strict value is not equal to itself.")
831898 }
832899
833- let eD = {
834- let eE = dd
835- let eF = size(eE)
836- let eG = unit
837- func eH (eI,eJ) = if ((eJ >= eF))
838- then eI
839- else eA(eI, eE[eJ])
900+ let eT = {
901+ let eU = dt
902+ let eV = size(eU)
903+ let eW = unit
904+ func eX (eY,eZ) = if ((eZ >= eV))
905+ then eY
906+ else eQ(eY, eU[eZ])
840907
841- func eK (eI,eJ) = if ((eJ >= eF))
842- then eI
908+ func fa (eY,eZ) = if ((eZ >= eV))
909+ then eY
843910 else throw("List size exceeds 11")
844911
845- eK(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eG, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
912+ fa(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eW, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
846913 }
847- if ((eD == eD))
914+ if ((eT == eT))
848915 then $Tuple2(nil, unit)
849916 else throw("Strict value is not equal to itself.")
850917 }
855922
856923
857924
858-@Callable(by)
859-func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
860- let dD = cc(aa)
861- let al = $Tuple2(parseIntValue(dD[B]), parseIntValue(dD[C]))
862- let eL = valueOrElse(getBoolean(ak(al)), false)
863- let eM = valueOrElse(getBoolean(an()), false)
864- $Tuple2(nil, if (eM)
925+@Callable(bD)
926+func isPoolOneTokenOperationsDisabledREADONLY (af) = {
927+ let dT = ch(af)
928+ let aq = $Tuple2(parseIntValue(dT[C]), parseIntValue(dT[D]))
929+ let fb = valueOrElse(getBoolean(ap(aq)), false)
930+ let fc = valueOrElse(getBoolean(as()), false)
931+ $Tuple2(nil, if (fc)
865932 then true
866- else eL)
933+ else fb)
867934 }
868935
869936
870937
871-@Callable(by)
872-func getInFeeREADONLY (aa) = {
873- let eN = co(aC(aa), aD(), 0)
874- $Tuple2(nil, eN)
938+@Callable(bD)
939+func getInFeeREADONLY (af) = {
940+ let fd = ct(aH(af), aI(), 0)
941+ $Tuple2(nil, fd)
875942 }
876943
877944
878945
879-@Callable(by)
880-func getOutFeeREADONLY (aa) = {
881- let eN = co(aE(aa), aF(), fraction(10, b, 10000))
882- $Tuple2(nil, eN)
946+@Callable(bD)
947+func getOutFeeREADONLY (af) = {
948+ let fd = ct(aJ(af), aK(), fraction(10, b, 10000))
949+ $Tuple2(nil, fd)
883950 }
884951
885952
886953
887-@Callable(by)
888-func poolInfoREADONLY (eO,eP) = {
889- let eQ = getInteger(this, af(eO))
890- let eR = getInteger(this, af(eP))
891- let eS = getString(this, aw(value(eQ), value(eR)))
892- let eT = getString(this, ax(value(eS)))
893- let dq = if (if (isDefined(eQ))
894- then isDefined(eR)
954+@Callable(bD)
955+func poolInfoREADONLY (fe,ff) = {
956+ let fg = getInteger(this, ak(fe))
957+ let fh = getInteger(this, ak(ff))
958+ let fi = getString(this, aB(value(fg), value(fh)))
959+ let fj = getString(this, aC(value(fi)))
960+ let dG = if (if (isDefined(fg))
961+ then isDefined(fh)
895962 else false)
896- then isDefined(eS)
963+ then isDefined(fi)
897964 else false
898- let eU = if (dq)
899- then $Tuple2(addressFromStringValue(value(eS)), aX(value(eT)))
965+ let fk = if (dG)
966+ then $Tuple2(addressFromStringValue(value(fi)), bc(value(fj)))
900967 else unit
901- $Tuple2(nil, eU)
968+ $Tuple2(nil, fk)
902969 }
903970
904971
905972
906-@Callable(by)
907-func getPoolStatusREADONLY (aa) = {
908- let cd = split(aT(au(aa)), l)
909- let ai = cd[1]
910- let aj = cd[2]
911- let cu = split(aT(ah(ai, aj)), l)
912- $Tuple2(nil, parseIntValue(cu[v]))
973+@Callable(bD)
974+func getPoolStatusREADONLY (af) = {
975+ let ci = split(aY(az(af)), m)
976+ let an = ci[1]
977+ let ao = ci[2]
978+ let cz = split(aY(am(an, ao)), m)
979+ $Tuple2(nil, parseIntValue(cz[w]))
913980 }
914981
915982
916983
917-@Callable(by)
918-func getPoolConfigREADONLY (aa) = {
919- let cd = split(aT(au(aa)), l)
920- let ai = cd[1]
921- let aj = cd[2]
922- let cu = split(aT(ah(ai, aj)), l)
923- $Tuple2(nil, cu)
984+@Callable(bD)
985+func getPoolConfigREADONLY (af) = {
986+ let ci = split(aY(az(af)), m)
987+ let an = ci[1]
988+ let ao = ci[2]
989+ let cz = split(aY(am(an, ao)), m)
990+ $Tuple2(nil, cz)
924991 }
925992
926993
927994
928-@Callable(by)
929-func getPoolConfigByLpAssetIdREADONLY (dv) = {
930- let cd = split(aT(ao(dv)), l)
931- let ai = cd[1]
932- let aj = cd[2]
933- let cu = split(aT(ah(ai, aj)), l)
934- $Tuple2(nil, cu)
995+@Callable(bD)
996+func getPoolConfigByLpAssetIdREADONLY (dL) = {
997+ let ci = split(aY(at(dL)), m)
998+ let an = ci[1]
999+ let ao = ci[2]
1000+ let cz = split(aY(am(an, ao)), m)
1001+ $Tuple2(nil, cz)
9351002 }
9361003
9371004
9381005
939-@Callable(by)
940-func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cr(aA, aB))
1006+@Callable(bD)
1007+func poolExistsREADONLY (aF,aG) = $Tuple2(nil, cw(aF, aG))
9411008
9421009
9431010
944-@Callable(by)
945-func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false))
1011+@Callable(bD)
1012+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aL(af)), false))
9461013
9471014
9481015
949-@Callable(by)
950-func getChangeAmpConfigREADONLY (aa) = {
951- let eV = getIntegerValue(aH(aa))
952- let eW = getIntegerValue(aI(aa))
953- let eX = getIntegerValue(aJ(aa))
954- $Tuple2(nil, [eV, eW, eX])
1016+@Callable(bD)
1017+func getChangeAmpConfigREADONLY (af) = {
1018+ let fl = getIntegerValue(aM(af))
1019+ let fm = getIntegerValue(aN(af))
1020+ let fn = getIntegerValue(aO(af))
1021+ $Tuple2(nil, [fl, fm, fn])
9551022 }
9561023
9571024
9581025
959-@Callable(by)
960-func getPoolWeightREADONLY (bQ) = {
961- let aa = aT(ay(bQ))
962- let eY = valueOrElse(getInteger(Z(aa)), 0)
963- $Tuple2(nil, eY)
1026+@Callable(bD)
1027+func getPoolWeightREADONLY (bV) = {
1028+ let af = aY(aD(bV))
1029+ let fo = valueOrElse(getInteger(ae(af)), 0)
1030+ $Tuple2(nil, fo)
9641031 }
9651032
9661033
967-@Verifier(eZ)
968-func fa () = {
969- let fb = {
970- let ba = bt()
971- if ($isInstanceOf(ba, "ByteVector"))
1034+
1035+@Callable(bD)
1036+func deletePool (aA) = {
1037+ let dT = ch(aA)
1038+ let dm = if ((toString(bD.caller) == cD(aA)))
1039+ then if (cL(aA))
1040+ then true
1041+ else K("Pool is not empty")
1042+ else bE(bD)
1043+ if ((dm == dm))
1044+ then {
1045+ let fp = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
1046+ then true
1047+ else K("Pool weight is not Zero")
1048+ if ((fp == fp))
1049+ then {
1050+ let fq = if ((getIntegerValue(dT[w]) == r))
1051+ then true
1052+ else K("Pools must be SHUTDOWN (4)")
1053+ if ((fq == fq))
1054+ then {
1055+ let fr = cC(aA)
1056+ let aF = fr._1
1057+ let aG = fr._2
1058+ let bV = fr._3
1059+ let an = fr._4
1060+ let ao = fr._5
1061+ let cF = addressFromStringValue(getStringValue(Z()))
1062+ let fs = invoke(cF, "deletePool", [aF, aG], nil)
1063+ if ((fs == fs))
1064+ then {
1065+ let ds = addressFromStringValue(getStringValue(Y()))
1066+ let ft = invoke(ds, "deletePool", [aF, aG], nil)
1067+ if ((ft == ft))
1068+ then {
1069+ let dr = addressFromStringValue(getStringValue(X()))
1070+ let fu = invoke(dr, "deletePool", [aF, aG], nil)
1071+ if ((fu == fu))
1072+ then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
1073+ else throw("Strict value is not equal to itself.")
1074+ }
1075+ else throw("Strict value is not equal to itself.")
1076+ }
1077+ else throw("Strict value is not equal to itself.")
1078+ }
1079+ else throw("Strict value is not equal to itself.")
1080+ }
1081+ else throw("Strict value is not equal to itself.")
1082+ }
1083+ else throw("Strict value is not equal to itself.")
1084+ }
1085+
1086+
1087+@Verifier(fv)
1088+func fw () = {
1089+ let fx = {
1090+ let bf = by()
1091+ if ($isInstanceOf(bf, "ByteVector"))
9721092 then {
973- let bA = ba
974- bA
1093+ let bF = bf
1094+ bF
9751095 }
976- else if ($isInstanceOf(ba, "Unit"))
977- then eZ.senderPublicKey
1096+ else if ($isInstanceOf(bf, "Unit"))
1097+ then fv.senderPublicKey
9781098 else throw("Match error")
9791099 }
980- sigVerify(eZ.bodyBytes, eZ.proofs[0], fb)
1100+ sigVerify(fv.bodyBytes, fv.proofs[0], fx)
9811101 }
9821102
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
24-let k = ((100 * 1000) * 1000)
24+let k = "factory_v2.ride"
2525
26-let l = "__"
26+let l = ((100 * 1000) * 1000)
2727
28-let m = ""
28+let m = "__"
2929
30-let n = 1
30+let n = ""
3131
32-let o = 2
32+let o = 1
3333
34-let p = 3
34+let p = 2
3535
36-let q = 4
36+let q = 3
3737
38-let r = 1
38+let r = 4
3939
40-let s = 2
40+let s = 1
4141
42-let t = 3
42+let t = 2
4343
44-let u = 1
44+let u = 3
4545
46-let v = 2
46+let v = 1
4747
48-let w = 3
48+let w = 2
4949
50-let x = 4
50+let x = 3
5151
52-let y = 5
52+let y = 4
5353
54-let z = 6
54+let z = 5
5555
56-let A = 7
56+let A = 6
5757
58-let B = 8
58+let B = 7
5959
60-let C = 9
60+let C = 8
6161
62-let D = 10
62+let D = 9
6363
64-let E = 11
64+let E = 10
6565
66-let F = "WX_EMISSION"
66+let F = 11
6767
68-let G = [F]
68+let G = "WX_EMISSION"
6969
70-func H () = "%s__allowedLpScriptHash"
70+let H = [G]
71+
72+func I (J) = makeString([k, ": ", J], "")
7173
7274
73-func I () = "%s__allowedLpStableScriptHash"
75+func K (J) = throw(I(J))
7476
7577
76-func J () = "%s__swapContract"
78+func L () = "%s__allowedLpScriptHash"
7779
7880
79-func K () = "%s__factoryConfig"
81+func M () = "%s__allowedLpStableScriptHash"
8082
8183
82-func L () = "%s__lpTokensList"
84+func N () = "%s__swapContract"
8385
8486
85-func M () = "%s%s__pool__scriptHash"
87+func O () = "%s__factoryConfig"
8688
8789
88-func N () = "%s%s__matcher__publicKey"
90+func P () = "%s__lpTokensList"
8991
9092
91-func O () = "%s__legacyFactoryContract"
93+func Q () = "%s%s__pool__scriptHash"
9294
9395
94-func P () = "%s__legacyPools"
96+func R () = "%s%s__matcher__publicKey"
9597
9698
97-func Q () = "%s__managerPublicKey"
99+func S () = "%s__legacyFactoryContract"
98100
99101
100-func R () = "%s__managerVaultAddress"
102+func T () = "%s__legacyPools"
101103
102104
103-func S () = "%s__adminPubKeys"
105+func U () = "%s__managerPublicKey"
104106
105107
106-func T () = "%s__assetsStoreContract"
108+func V () = "%s__managerVaultAddress"
107109
108110
109-func U () = "%s__votingEmissionContract"
111+func W () = "%s__adminPubKeys"
110112
111113
112-func V () = makeString(["%s", "priceAssets"], l)
114+func X () = "%s__assetsStoreContract"
113115
114116
115-func W () = "%s__priceDecimals"
117+func Y () = "%s__votingEmissionContract"
116118
117119
118-func X () = "%s__shutdown"
120+func Z () = "%s__userPoolsContract"
119121
120122
121-func Y () = "%s__nextInternalAssetId"
123+func aa () = makeString(["%s", "priceAssets"], m)
122124
123125
124-func Z (aa) = ("%s%s__poolWeight__" + aa)
126+func ab () = "%s__priceDecimals"
125127
126128
127-func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129+func ac () = "%s__shutdown"
128130
129131
130-func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132+func ad () = "%s__nextInternalAssetId"
131133
132134
133-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135+func ae (af) = ("%s%s__poolWeight__" + af)
134136
135137
136-func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138+func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
137139
138140
139-func ak (al) = {
140- let am = al
141- let ai = am._1
142- let aj = am._2
143- makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], l)
141+func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142+
143+
144+func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145+
146+
147+func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148+
149+
150+func ap (aq) = {
151+ let ar = aq
152+ let an = ar._1
153+ let ao = ar._2
154+ makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
144155 }
145156
146157
147-func an () = makeString(["%s", "oneTokenOperationsDisabled"], l)
158+func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
148159
149160
150-func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
161+func at (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2Pool")
151162
152163
153-func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
164+func av (aw,ax) = (((("%d%d%s%s__" + aw) + "__") + ax) + "__mappings__PoolAssets2LpAsset")
154165
155166
156-func at (aa) = ("%s%s__spread__" + aa)
167+func ay (af) = ("%s%s__spread__" + af)
157168
158169
159-func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
170+func az (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2PoolAssets")
160171
161172
162-func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
173+func aB (aw,ax) = (((("%d%d%s%s__" + toString(aw)) + "__") + toString(ax)) + "__mappings__poolAssets2PoolContract")
163174
164175
165-func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
176+func aC (aA) = (("%s%s%s__" + aA) + "__mappings__poolContract2LpAsset")
166177
167178
168-func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
179+func aD (au) = (("%s%s%s__" + au) + "__mappings__lpAsset2PoolContract")
169180
170181
171-func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
182+func aE (aF,aG) = ((("%s%s%s__wxEmission__" + aF) + "__") + aG)
172183
173184
174-func aC (aa) = ("%s%s__inFee__" + aa)
185+func aH (af) = ("%s%s__inFee__" + af)
175186
176187
177-func aD () = "%s__inFeeDefault"
188+func aI () = "%s__inFeeDefault"
178189
179190
180-func aE (aa) = ("%s%s__outFee__" + aa)
191+func aJ (af) = ("%s%s__outFee__" + af)
181192
182193
183-func aF () = "%s__outFeeDefault"
194+func aK () = "%s__outFeeDefault"
184195
185196
186-func aG (aa) = ("%s%s__skipOrderValidation__" + aa)
197+func aL (af) = ("%s%s__skipOrderValidation__" + af)
187198
188199
189-func aH (aa) = ("%s%s__changeAmpDelay__" + aa)
200+func aM (af) = ("%s%s__changeAmpDelay__" + af)
190201
191202
192-func aI (aa) = ("%s%s__changeAmpDelta__" + aa)
203+func aN (af) = ("%s%s__changeAmpDelta__" + af)
193204
194205
195-func aJ (aa) = ("%s%s__changeAmpTarget__" + aa)
206+func aO (af) = ("%s%s__changeAmpTarget__" + af)
196207
197208
198-func aK () = "%s__sWavesProxyAddress"
209+func aP () = "%s__sWavesProxyAddress"
199210
200211
201-func aL () = "%s__sWavesAssetId"
212+func aQ () = "%s__sWavesAssetId"
202213
203214
204-func aM () = "%s__stakingProfitAddress"
215+func aR () = "%s__stakingProfitAddress"
205216
206217
207-func aN (aa,aO) = makeString(["%s%s%s", "leasedRatio", aa, aO], l)
218+func aS (af,aT) = makeString(["%s%s%s", "leasedRatio", af, aT], m)
208219
209220
210-func aP (aO) = makeString(["%s%s", "leasedRatioDefault", aO], l)
221+func aU (aT) = makeString(["%s%s", "leasedRatioDefault", aT], m)
211222
212223
213-func aQ (aa,aO) = makeString(["%s%s%s", "leasedRatioTolerance", aa, aO], l)
224+func aV (af,aT) = makeString(["%s%s%s", "leasedRatioTolerance", af, aT], m)
214225
215226
216-func aR (aa,aO) = makeString(["%s%s%s", "minBalance", aa, aO], l)
227+func aW (af,aT) = makeString(["%s%s%s", "minBalance", af, aT], m)
217228
218229
219-func aS (aO) = makeString(["%s%s", "minBalanceDefault", aO], l)
230+func aX (aT) = makeString(["%s%s", "minBalanceDefault", aT], m)
220231
221232
222-func aT (aU) = valueOrErrorMessage(getString(this, aU), ("No data for this.key=" + aU))
233+func aY (aZ) = valueOrErrorMessage(getString(this, aZ), ("No data for this.key=" + aZ))
223234
224235
225-func aV (aU) = valueOrErrorMessage(getBoolean(this, aU), ("No data for this.key=" + aU))
236+func ba (aZ) = valueOrErrorMessage(getBoolean(this, aZ), ("No data for this.key=" + aZ))
226237
227238
228-func aW (aU) = valueOrErrorMessage(getInteger(this, aU), ("No data for this.key=" + aU))
239+func bb (aZ) = valueOrErrorMessage(getInteger(this, aZ), ("No data for this.key=" + aZ))
229240
230241
231-func aX (aY) = if ((aY == j))
242+func bc (bd) = if ((bd == j))
232243 then unit
233- else fromBase58String(aY)
244+ else fromBase58String(bd)
234245
235246
236-func aZ () = {
237- let ba = getString(R())
238- if ($isInstanceOf(ba, "String"))
247+func be () = {
248+ let bf = getString(V())
249+ if ($isInstanceOf(bf, "String"))
239250 then {
240- let bb = ba
241- addressFromStringValue(bb)
251+ let bg = bf
252+ addressFromStringValue(bg)
242253 }
243254 else this
244255 }
245256
246257
247-let bc = 1
258+let bh = 1
248259
249-let bd = 2
260+let bi = 2
250261
251-let be = 3
262+let bj = 3
252263
253-let bf = 4
264+let bk = 4
254265
255-let bg = 5
266+let bl = 5
256267
257-let bh = 6
268+let bm = 6
258269
259-let bi = 7
270+let bn = 7
260271
261-let bj = 8
272+let bo = 8
262273
263-let bk = 9
274+let bp = 9
264275
265-let bl = 10
276+let bq = 10
266277
267-let bm = 11
278+let br = 11
268279
269-func bn (bo) = addressFromStringValue(bo[bd])
280+func bs (bt) = addressFromStringValue(bt[bi])
270281
271282
272-func bp (bo) = addressFromStringValue(bo[bg])
283+func bu (bt) = addressFromStringValue(bt[bl])
273284
274285
275-func bq (bo) = addressFromStringValue(bo[bc])
286+func bv (bt) = addressFromStringValue(bt[bh])
276287
277288
278-func br (bo) = addressFromStringValue(bo[bl])
289+func bw (bt) = addressFromStringValue(bt[bq])
279290
280291
281-func bs () = {
282- let ba = getString(V())
283- if ($isInstanceOf(ba, "String"))
292+func bx () = {
293+ let bf = getString(aa())
294+ if ($isInstanceOf(bf, "String"))
284295 then {
285- let bb = ba
286- if ((size(bb) == 0))
296+ let bg = bf
297+ if ((size(bg) == 0))
287298 then nil
288- else split(bb, l)
299+ else split(bg, m)
289300 }
290301 else nil
291302 }
292303
293304
294-func bt () = {
295- let bu = aZ()
296- let ba = getString(bu, Q())
297- if ($isInstanceOf(ba, "String"))
305+func by () = {
306+ let bz = be()
307+ let bf = getString(bz, U())
308+ if ($isInstanceOf(bf, "String"))
298309 then {
299- let bb = ba
300- fromBase58String(bb)
310+ let bg = bf
311+ fromBase58String(bg)
301312 }
302- else if ($isInstanceOf(ba, "Unit"))
313+ else if ($isInstanceOf(bf, "Unit"))
303314 then unit
304315 else throw("Match error")
305316 }
306317
307318
308-let bv = throw("Permission denied")
319+let bA = K("Permission denied")
309320
310-let bw = throw("Test error here")
321+let bB = K("Test error here")
311322
312-func bx (by) = if ((by.caller == this))
323+func bC (bD) = if ((bD.caller == this))
313324 then true
314- else bv
325+ else bA
315326
316327
317-func bz (by) = {
318- let ba = bt()
319- if ($isInstanceOf(ba, "ByteVector"))
328+func bE (bD) = {
329+ let bf = by()
330+ if ($isInstanceOf(bf, "ByteVector"))
320331 then {
321- let bA = ba
322- if ((by.callerPublicKey == bA))
332+ let bF = bf
333+ if ((bD.callerPublicKey == bF))
323334 then true
324- else bv
335+ else bA
325336 }
326- else if ($isInstanceOf(ba, "Unit"))
327- then bx(by)
337+ else if ($isInstanceOf(bf, "Unit"))
338+ then bC(bD)
328339 else throw("Match error")
329340 }
330341
331342
332-func bB (bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bC, bD, bE, bF, bG, bH, bI, bJ, bK, bL, bM], l)
343+func bG (bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN, bO, bP, bQ, bR], m)
333344
334345
335-func bN (bC,bD,bE,bF,bG,bH,bI) = makeString(["%s%s%s%s%s%s", bC, bD, bE, bF, bG, bH, bI], l)
346+func bS (bH,bI,bJ,bK,bL,bM,bN) = makeString(["%s%s%s%s%s%s", bH, bI, bJ, bK, bL, bM, bN], m)
336347
337348
338-func bO (aa,bP,bQ,bR,bS,bT,bU,bV,bW,bX,bY) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bP, bQ, bR, bS, toString(bT), toString(bU), toString(bV), toString(bW), toString(bX), bY], l)
349+func bT (af,bU,bV,bW,bX,bY,bZ,ca,cb,cc,cd) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, bU, bV, bW, bX, toString(bY), toString(bZ), toString(ca), toString(cb), toString(cc), cd], m)
339350
340351
341-func bZ (ca,cb) = makeString(["%d%d", toString(ca), toString(cb)], l)
352+func ce (cf,cg) = makeString(["%d%d", toString(cf), toString(cg)], m)
342353
343354
344-func cc (aa) = {
345- let cd = split(aT(au(aa)), l)
346- let ai = cd[1]
347- let aj = cd[2]
348- split(aT(ah(ai, aj)), l)
355+func ch (af) = {
356+ let ci = split(aY(az(af)), m)
357+ let an = ci[1]
358+ let ao = ci[2]
359+ split(aY(am(an, ao)), m)
349360 }
350361
351362
352-func ce (cf,cg) = {
353- let ch = valueOrElse(getInteger(this, af(cf)), 0)
354- let ci = valueOrElse(getInteger(this, Y()), 0)
355- let cj = if ((ch == 0))
363+func cj (ck,cl) = {
364+ let cm = valueOrElse(getInteger(this, ak(ck)), 0)
365+ let cn = valueOrElse(getInteger(this, ad()), 0)
366+ let co = if ((cm == 0))
356367 then {
357- let ck = (ci + cg)
358- $Tuple3(ck, [IntegerEntry(Y(), ck), IntegerEntry(af(cf), ck), StringEntry(ad(ck), cf)], true)
368+ let cp = (cn + cl)
369+ $Tuple3(cp, [IntegerEntry(ad(), cp), IntegerEntry(ak(ck), cp), StringEntry(ai(cp), ck)], true)
359370 }
360- else $Tuple3(ch, nil, false)
361- cj
371+ else $Tuple3(cm, nil, false)
372+ co
362373 }
363374
364375
365-func cl (by) = {
366- let cm = split(valueOrElse(getString(S()), m), l)
367- if (containsElement(cm, toBase58String(by.callerPublicKey)))
376+func cq (bD) = {
377+ let cr = split(valueOrElse(getString(W()), n), m)
378+ if (containsElement(cr, toBase58String(bD.callerPublicKey)))
368379 then true
369380 else {
370- let cn = bz(by)
371- if ((cn == cn))
381+ let cs = bE(bD)
382+ if ((cs == cs))
372383 then true
373384 else throw("Strict value is not equal to itself.")
374385 }
375386 }
376387
377388
378-func co (aU,cp,cq) = valueOrElse(getInteger(this, aU), valueOrElse(getInteger(this, cp), cq))
389+func ct (aZ,cu,cv) = valueOrElse(getInteger(this, aZ), valueOrElse(getInteger(this, cu), cv))
379390
380391
381-func cr (aA,aB) = {
382- let ai = getInteger(af(aA))
383- let aj = getInteger(af(aB))
384- if (if ((ai == unit))
392+func cw (aF,aG) = {
393+ let an = getInteger(ak(aF))
394+ let ao = getInteger(ak(aG))
395+ if (if ((an == unit))
385396 then true
386- else (aj == unit))
397+ else (ao == unit))
387398 then false
388399 else {
389- let cs = toString(value(ai))
390- let ct = toString(value(aj))
391- let cu = getString(ah(cs, ct))
392- let cv = getString(ah(ct, cs))
393- let cw = if ((cu != unit))
400+ let cx = toString(value(an))
401+ let cy = toString(value(ao))
402+ let cz = getString(am(cx, cy))
403+ let cA = getString(am(cy, cx))
404+ let cB = if ((cz != unit))
394405 then true
395- else (cv != unit)
396- cw
406+ else (cA != unit)
407+ cB
397408 }
398409 }
399410
400411
401-@Callable(by)
402-func getSwapContractREADONLY () = $Tuple2(nil, aT(J()))
412+func cC (aA) = {
413+ let ci = {
414+ let bf = getString(az(aA))
415+ if ($isInstanceOf(bf, "String"))
416+ then {
417+ let bg = bf
418+ split(bg, m)
419+ }
420+ else K(makeString([aA, "pool is not found"], " "))
421+ }
422+ let an = parseIntValue(ci[1])
423+ let ao = parseIntValue(ci[2])
424+ let aF = getStringValue(ai(an))
425+ let aG = getStringValue(ai(ao))
426+ let bV = getStringValue(aC(aA))
427+ $Tuple5(aF, aG, bV, an, ao)
428+ }
429+
430+
431+func cD (aA) = {
432+ let cE = cC(aA)
433+ let aF = cE._1
434+ let aG = cE._2
435+ let bV = cE._3
436+ let an = cE._4
437+ let ao = cE._5
438+ let cF = addressFromStringValue(getStringValue(Z()))
439+ let cG = invoke(cF, "getPoolCreatorREADONLY", [aF, aG], nil)
440+ cG
441+ }
442+
443+
444+func cH (cI,cJ) = {
445+ let cK = addressFromStringValue(cI)
446+ if ((cJ == "WAVES"))
447+ then wavesBalance(cK).regular
448+ else {
449+ let aT = fromBase58String(cJ)
450+ assetBalance(cK, aT)
451+ }
452+ }
453+
454+
455+func cL (aA) = {
456+ let cM = cC(aA)
457+ let aF = cM._1
458+ let aG = cM._2
459+ let bV = cM._3
460+ let an = cM._4
461+ let ao = cM._5
462+ if ((cH(aA, aF) == 0))
463+ then (cH(aA, aG) == 0)
464+ else false
465+ }
466+
467+
468+@Callable(bD)
469+func getSwapContractREADONLY () = $Tuple2(nil, aY(N()))
403470
404471
405472
406-@Callable(by)
407-func getPoolLeaseConfigREADONLY (aa,aO) = {
408- let cx = {
409- let ba = getInteger(this, aN(aa, aO))
410- if ($isInstanceOf(ba, "Int"))
473+@Callable(bD)
474+func getPoolLeaseConfigREADONLY (af,aT) = {
475+ let cN = {
476+ let bf = getInteger(this, aS(af, aT))
477+ if ($isInstanceOf(bf, "Int"))
411478 then {
412- let cy = ba
413- $Tuple2(true, min([100, max([0, cy])]))
479+ let cO = bf
480+ $Tuple2(true, min([100, max([0, cO])]))
414481 }
415482 else {
416- let cz = getInteger(this, aP(aO))
417- if ($isInstanceOf(cz, "Int"))
483+ let cP = getInteger(this, aU(aT))
484+ if ($isInstanceOf(cP, "Int"))
418485 then {
419- let cA = cz
420- $Tuple2(true, min([100, max([0, cA])]))
486+ let cQ = cP
487+ $Tuple2(true, min([100, max([0, cQ])]))
421488 }
422489 else $Tuple2(false, 0)
423490 }
424491 }
425- let cB = cx._1
426- let cC = cx._2
427- let cD = {
428- let ba = getInteger(this, aR(aa, aO))
429- if ($isInstanceOf(ba, "Int"))
492+ let cR = cN._1
493+ let cS = cN._2
494+ let cT = {
495+ let bf = getInteger(this, aW(af, aT))
496+ if ($isInstanceOf(bf, "Int"))
430497 then {
431- let cE = ba
432- max([0, cE])
498+ let cU = bf
499+ max([0, cU])
433500 }
434501 else {
435- let cz = getInteger(this, aS(aO))
436- if ($isInstanceOf(cz, "Int"))
502+ let cP = getInteger(this, aX(aT))
503+ if ($isInstanceOf(cP, "Int"))
437504 then {
438- let cF = cz
439- max([0, cF])
505+ let cV = cP
506+ max([0, cV])
440507 }
441508 else 0
442509 }
443510 }
444- let cG = if ((aO == "WAVES"))
445- then $Tuple3(valueOrElse(getString(this, aK()), ""), getString(this, valueOrElse(aL(), "")), c)
511+ let cW = if ((aT == "WAVES"))
512+ then $Tuple3(valueOrElse(getString(this, aP()), ""), getString(this, valueOrElse(aQ(), "")), c)
446513 else $Tuple3("", "", 0)
447- let cH = cG._1
448- let cI = cG._2
449- let cJ = cG._3
450- let cK = valueOrElse(getString(this, aM()), "")
451- $Tuple2(nil, $Tuple7(cB, cC, cD, cH, cI, cJ, cK))
514+ let cX = cW._1
515+ let cY = cW._2
516+ let cZ = cW._3
517+ let da = valueOrElse(getString(this, aR()), "")
518+ $Tuple2(nil, $Tuple7(cR, cS, cT, cX, cY, cZ, da))
452519 }
453520
454521
455522
456-@Callable(by)
457-func getLpAssetFromPoolAssetsREADONLY (cL,cM) = if (if ((cL == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
458- then (cM == "WAVES")
523+@Callable(bD)
524+func getLpAssetFromPoolAssetsREADONLY (db,dc) = if (if ((db == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
525+ then (dc == "WAVES")
459526 else false)
460527 then $Tuple2(nil, unit)
461528 else {
462- let cN = value(getInteger(this, af(cL)))
463- let cO = value(getInteger(this, af(cM)))
464- let cP = getString(this, aq(toString(cN), toString(cO)))
465- let cQ = if ((cP == unit))
529+ let dd = value(getInteger(this, ak(db)))
530+ let de = value(getInteger(this, ak(dc)))
531+ let df = getString(this, av(toString(dd), toString(de)))
532+ let dg = if ((df == unit))
466533 then unit
467- else drop(value(cP), 4)
468- $Tuple2(nil, cQ)
534+ else drop(value(df), 4)
535+ $Tuple2(nil, dg)
469536 }
470537
471538
472539
473-@Callable(by)
474-func getPoolAddressFromLpAssetREADONLY (cR) = $Tuple2(nil, valueOrElse(getString(this, ay(cR)), ""))
540+@Callable(bD)
541+func getPoolAddressFromLpAssetREADONLY (dh) = $Tuple2(nil, valueOrElse(getString(this, aD(dh)), ""))
475542
476543
477544
478-@Callable(by)
479-func constructor (cS,cT,bE,bF,bG,bH,cU,cV) = {
480- let cW = bz(by)
481- if ((cW == cW))
482- then [StringEntry(K(), bN(cS, cT, bE, bF, bG, bH, cU)), IntegerEntry(W(), cV)]
545+@Callable(bD)
546+func constructor (di,dj,bJ,bK,bL,bM,dk,dl) = {
547+ let dm = bE(bD)
548+ if ((dm == dm))
549+ then [StringEntry(O(), bS(di, dj, bJ, bK, bL, bM, dk)), IntegerEntry(ab(), dl)]
483550 else throw("Strict value is not equal to itself.")
484551 }
485552
486553
487554
488-@Callable(by)
489-func constructorV2 (cX) = {
490- let cW = bz(by)
491- if ((cW == cW))
555+@Callable(bD)
556+func constructorV2 (dn) = {
557+ let dm = bE(bD)
558+ if ((dm == dm))
492559 then {
493- let cY = addressFromPublicKey(fromBase58String(cX))
494- if ((cY == cY))
495- then [StringEntry(N(), cX)]
560+ let do = addressFromPublicKey(fromBase58String(dn))
561+ if ((do == do))
562+ then [StringEntry(R(), dn)]
496563 else throw("Strict value is not equal to itself.")
497564 }
498565 else throw("Strict value is not equal to itself.")
499566 }
500567
501568
502569
503-@Callable(by)
504-func constructorV3 (bJ,bK,bL,bM) = {
505- let cW = bz(by)
506- if ((cW == cW))
570+@Callable(bD)
571+func constructorV3 (bO,bP,bQ,bR) = {
572+ let dm = bE(bD)
573+ if ((dm == dm))
507574 then {
508- let bo = split(aT(K()), l)
509-[StringEntry(K(), bB(bo[1], bo[2], bo[3], bo[4], bo[5], bo[6], bo[7], bJ, bK, bL, bM))]
575+ let bt = split(aY(O()), m)
576+[StringEntry(O(), bG(bt[1], bt[2], bt[3], bt[4], bt[5], bt[6], bt[7], bO, bP, bQ, bR))]
510577 }
511578 else throw("Strict value is not equal to itself.")
512579 }
513580
514581
515582
516-@Callable(by)
517-func constructorV4 (cZ,da) = {
518- let cW = bz(by)
519- if ((cW == cW))
520- then [StringEntry(O(), cZ), StringEntry(P(), makeString(da, l))]
583+@Callable(bD)
584+func constructorV4 (dp,dq) = {
585+ let dm = bE(bD)
586+ if ((dm == dm))
587+ then [StringEntry(S(), dp), StringEntry(T(), makeString(dq, m))]
521588 else throw("Strict value is not equal to itself.")
522589 }
523590
524591
525592
526-@Callable(by)
527-func constructorV5 (db) = {
528- let cW = bz(by)
529- if ((cW == cW))
530- then [StringEntry(T(), db)]
593+@Callable(bD)
594+func constructorV5 (dr) = {
595+ let dm = bE(bD)
596+ if ((dm == dm))
597+ then [StringEntry(X(), dr)]
531598 else throw("Strict value is not equal to itself.")
532599 }
533600
534601
535602
536-@Callable(by)
537-func constructorV6 (dc,dd) = {
538- let de = [bz(by), if ((addressFromString(dc) != unit))
603+@Callable(bD)
604+func constructorV6 (ds,dt) = {
605+ let du = [bE(bD), if ((addressFromString(ds) != unit))
539606 then true
540607 else "invalid voting emission contract address"]
541- if ((de == de))
542- then [StringEntry(U(), dc), StringEntry(V(), makeString(dd, l))]
608+ if ((du == du))
609+ then [StringEntry(Y(), ds), StringEntry(aa(), makeString(dt, m))]
543610 else throw("Strict value is not equal to itself.")
544611 }
545612
546613
547614
548-@Callable(by)
549-func setAdmins (df) = {
550- let cW = bz(by)
551- if ((cW == cW))
552- then [StringEntry(S(), makeString(df, l))]
615+@Callable(bD)
616+func setAdmins (dv) = {
617+ let dm = bE(bD)
618+ if ((dm == dm))
619+ then [StringEntry(W(), makeString(dv, m))]
553620 else throw("Strict value is not equal to itself.")
554621 }
555622
556623
557624
558-@Callable(by)
559-func activateNewPool (aa,bR,bS,dg,dh,di,bY,dj) = {
560- let cW = cl(by)
561- if ((cW == cW))
562- then if (isDefined(getString(au(aa))))
563- then throw((("Pool address " + aa) + " already registered."))
625+@Callable(bD)
626+func activateNewPool (af,bW,bX,dw,dx,dy,cd,dz) = {
627+ let dm = cq(bD)
628+ if ((dm == dm))
629+ then if (isDefined(getString(az(af))))
630+ then K((("Pool address " + af) + " already registered."))
564631 else {
565- let dk = ce(bR, 1)
566- let dl = dk._1
567- let dm = ce(bS, if (dk._3)
632+ let dA = cj(bW, 1)
633+ let dB = dA._1
634+ let dC = cj(bX, if (dA._3)
568635 then 2
569636 else 1)
570- let dn = dm._1
571- let do = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
572- let dp = getBinaryValue(M())
573- let dq = cr(bR, bS)
574- if (dq)
575- then throw((((("Pool " + bR) + "/") + bS) + " has already been activated."))
637+ let dD = dC._1
638+ let dE = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
639+ let dF = getBinaryValue(Q())
640+ let dG = cw(bW, bX)
641+ if (dG)
642+ then K((((("Pool " + bW) + "/") + bX) + " has already been activated."))
576643 else {
577- let dr = value(getString(this, ah(toString(dl), toString(dn))))
578- let ds = if ((bR == "WAVES"))
579- then k
580- else pow(10, 0, value(assetInfo(fromBase58String(bR))).decimals, 0, 0, DOWN)
581- let dt = if ((bS == "WAVES"))
582- then k
583- else pow(10, 0, value(assetInfo(fromBase58String(bS))).decimals, 0, 0, DOWN)
584- let du = Issue(dg, dh, 1, 8, true)
585- let bQ = calculateAssetId(du)
586- let dv = toBase58String(bQ)
587- let dw = invoke(addressFromStringValue(aa), "activate", [bR, bS], nil)
588- if ((dw == dw))
589- then if ((dw != "success"))
590- then throw("Pool initialisation error happened.")
644+ let dH = value(getString(this, am(toString(dB), toString(dD))))
645+ let dI = if ((bW == "WAVES"))
646+ then l
647+ else pow(10, 0, value(assetInfo(fromBase58String(bW))).decimals, 0, 0, DOWN)
648+ let dJ = if ((bX == "WAVES"))
649+ then l
650+ else pow(10, 0, value(assetInfo(fromBase58String(bX))).decimals, 0, 0, DOWN)
651+ let dK = Issue(dw, dx, 1, 8, true)
652+ let bV = calculateAssetId(dK)
653+ let dL = toBase58String(bV)
654+ let dM = invoke(addressFromStringValue(af), "activate", [bW, bX], nil)
655+ if ((dM == dM))
656+ then if ((dM != "success"))
657+ then K("Pool initialisation error happened.")
591658 else {
592- let db = addressFromStringValue(aT(T()))
593- let dx = invoke(db, "createOrUpdate", [dv, dg, false], nil)
594- if ((dx == dx))
659+ let dr = addressFromStringValue(aY(X()))
660+ let dN = invoke(dr, "createOrUpdate", [dL, dw, false], nil)
661+ if ((dN == dN))
595662 then {
596- let dy = invoke(db, "addLabel", [dv, h], nil)
597- if ((dy == dy))
663+ let dO = invoke(dr, "addLabel", [dL, h], nil)
664+ if ((dO == dO))
598665 then {
599- let dz = invoke(db, "setLogo", [dv, dj], nil)
600- if ((dz == dz))
666+ let dP = invoke(dr, "setLogo", [dL, dz], nil)
667+ if ((dP == dP))
601668 then {
602- let dA = invoke(db, "addAssetsLink", [bR, bS, dv], nil)
603- if ((dA == dA))
669+ let dQ = invoke(dr, "addAssetsLink", [bW, bX, dL], nil)
670+ if ((dQ == dQ))
604671 then {
605- let dB = invoke(db, "increaseAssetPoolsNumber", [bR], nil)
606- if ((dB == dB))
607- then $Tuple2(((dk._2 ++ dm._2) ++ [du, Burn(bQ, 1), StringEntry(ah(toString(dl), toString(dn)), bO(aa, toString(n), dv, bR, bS, ds, dt, dl, dn, k, bY)), StringEntry(ao(dv), bZ(dl, dn)), StringEntry(aq(toString(dl), toString(dn)), ("%s__" + dv)), StringEntry(au(aa), bZ(dl, dn)), StringEntry(aw(dl, dn), aa), StringEntry(ay(dv), aa), StringEntry(ax(aa), dv), IntegerEntry(Z(aa), di), IntegerEntry(at(aa), i)]), dv)
672+ let dR = invoke(dr, "increaseAssetPoolsNumber", [bW], nil)
673+ if ((dR == dR))
674+ then $Tuple2(((dA._2 ++ dC._2) ++ [dK, Burn(bV, 1), StringEntry(am(toString(dB), toString(dD)), bT(af, toString(o), dL, bW, bX, dI, dJ, dB, dD, l, cd)), StringEntry(at(dL), ce(dB, dD)), StringEntry(av(toString(dB), toString(dD)), ("%s__" + dL)), StringEntry(az(af), ce(dB, dD)), StringEntry(aB(dB, dD), af), StringEntry(aD(dL), af), StringEntry(aC(af), dL), IntegerEntry(ae(af), dy), IntegerEntry(ay(af), i)]), dL)
608675 else throw("Strict value is not equal to itself.")
609676 }
610677 else throw("Strict value is not equal to itself.")
611678 }
612679 else throw("Strict value is not equal to itself.")
613680 }
614681 else throw("Strict value is not equal to itself.")
615682 }
616683 else throw("Strict value is not equal to itself.")
617684 }
618685 else throw("Strict value is not equal to itself.")
619686 }
620687 }
621688 else throw("Strict value is not equal to itself.")
622689 }
623690
624691
625692
626-@Callable(by)
627-func managePool (aa,dC) = {
628- let cW = bz(by)
629- if ((cW == cW))
693+@Callable(bD)
694+func managePool (af,dS) = {
695+ let dm = bE(bD)
696+ if ((dm == dm))
630697 then {
631- let dD = cc(aa)
632- let bP = dD[v]
633- let dv = dD[w]
634- let bR = dD[x]
635- let bS = dD[y]
636- let ds = parseIntValue(dD[z])
637- let dt = parseIntValue(dD[A])
638- let dl = parseIntValue(dD[B])
639- let dn = parseIntValue(dD[C])
640- let dE = parseIntValue(dD[D])
641- let bY = dD[E]
642-[StringEntry(ah(toString(dl), toString(dn)), bO(aa, toString(dC), dv, bR, bS, ds, dt, dl, dn, dE, bY))]
698+ let dT = ch(af)
699+ let bU = dT[w]
700+ let dL = dT[x]
701+ let bW = dT[y]
702+ let bX = dT[z]
703+ let dI = parseIntValue(dT[A])
704+ let dJ = parseIntValue(dT[B])
705+ let dB = parseIntValue(dT[C])
706+ let dD = parseIntValue(dT[D])
707+ let dU = parseIntValue(dT[E])
708+ let cd = dT[F]
709+[StringEntry(am(toString(dB), toString(dD)), bT(af, toString(dS), dL, bW, bX, dI, dJ, dB, dD, dU, cd))]
643710 }
644711 else throw("Strict value is not equal to itself.")
645712 }
646713
647714
648715
649-@Callable(by)
650-func emit (dF) = {
651- let dG = by.caller
652- let dH = by.originCaller
653- let dI = valueOrErrorMessage(getString(ax(toString(dG))), "Invalid LP address called me.")
654- let dJ = fromBase58String(dI)
655- let da = split(valueOrElse(getString(P()), m), l)
656- let cZ = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
657- if ((0 >= dF))
716+@Callable(bD)
717+func emit (dV) = {
718+ let dW = bD.caller
719+ let dX = bD.originCaller
720+ let dY = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
721+ let dZ = fromBase58String(dY)
722+ let dq = split(valueOrElse(getString(T()), n), m)
723+ let dp = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
724+ if ((0 >= dV))
658725 then nil
659- else if (containsElement(da, toString(dG)))
660- then $Tuple2(nil, cZ)
661- else $Tuple2([Reissue(dJ, dF, true), ScriptTransfer(by.caller, dF, dJ)], "success")
726+ else if (containsElement(dq, toString(dW)))
727+ then $Tuple2(nil, dp)
728+ else $Tuple2([Reissue(dZ, dV, true), ScriptTransfer(bD.caller, dV, dZ)], "success")
662729 }
663730
664731
665732
666-@Callable(by)
667-func burn (dK) = {
668- let dG = by.caller
669- let dH = by.originCaller
670- let dL = value(by.payments[0])
671- let dM = value(dL.amount)
672- let dN = toBase58String(value(dL.assetId))
673- let dO = valueOrErrorMessage(getString(ax(toString(dG))), "Invalid LP address called me.")
674- if ((dN != dO))
675- then throw("Invalid asset passed.")
676- else if ((dK != dM))
677- then throw("Invalid amount passed.")
733+@Callable(bD)
734+func burn (ea) = {
735+ let dW = bD.caller
736+ let dX = bD.originCaller
737+ let eb = value(bD.payments[0])
738+ let ec = value(eb.amount)
739+ let ed = toBase58String(value(eb.assetId))
740+ let ee = valueOrErrorMessage(getString(aC(toString(dW))), "Invalid LP address called me.")
741+ if ((ed != ee))
742+ then K("Invalid asset passed.")
743+ else if ((ea != ec))
744+ then K("Invalid amount passed.")
678745 else {
679- let dJ = fromBase58String(dO)
680- $Tuple2([Burn(dJ, dK)], "success")
746+ let dZ = fromBase58String(ee)
747+ $Tuple2([Burn(dZ, ea)], "success")
681748 }
682749 }
683750
684751
685752
686-@Callable(by)
687-func modifyWeight (bQ,dP) = {
688- let cW = if ((toBase58String(by.caller.bytes) == valueOrElse(getString(this, U()), "")))
753+@Callable(bD)
754+func modifyWeight (bV,ef) = {
755+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, Y()), "")))
689756 then true
690- else bz(by)
691- if ((cW == cW))
757+ else bE(bD)
758+ if ((dm == dm))
692759 then {
693- let av = aT(ay(bQ))
694- let dQ = Z(av)
695- let dR = Z(g)
696- let dS = valueOrElse(getInteger(dR), 0)
697- let di = valueOrElse(getInteger(dQ), 0)
698- let dT = dP
699- let bo = split(aT(K()), l)
700- let cS = bq(bo)
701- let dU = invoke(cS, "onModifyWeight", [bQ, av], nil)
702- if ((dU == dU))
760+ let aA = aY(aD(bV))
761+ let eg = ae(aA)
762+ let eh = ae(g)
763+ let ei = valueOrElse(getInteger(eh), 0)
764+ let dy = valueOrElse(getInteger(eg), 0)
765+ let ej = ef
766+ let bt = split(aY(O()), m)
767+ let di = bv(bt)
768+ let ek = invoke(di, "onModifyWeight", [bV, aA], nil)
769+ if ((ek == ek))
703770 then {
704- let dV = if ((dS == 0))
771+ let el = if ((ei == 0))
705772 then nil
706- else [IntegerEntry(dR, 0)]
707- let dW = ab(av, 0)
708- let dX = getInteger(dW)
709- let dY = if ((dX == unit))
773+ else [IntegerEntry(eh, 0)]
774+ let em = ag(aA, 0)
775+ let en = getInteger(em)
776+ let eo = if ((en == unit))
710777 then nil
711- else [DeleteEntry(dW)]
712- (([IntegerEntry(dQ, dT)] ++ dV) ++ dY)
778+ else [DeleteEntry(em)]
779+ (([IntegerEntry(eg, ej)] ++ el) ++ eo)
713780 }
714781 else throw("Strict value is not equal to itself.")
715782 }
716783 else throw("Strict value is not equal to itself.")
717784 }
718785
719786
720787
721-@Callable(by)
722-func modifyWeights (dZ,ea,eb,ec) = {
723- let cW = bz(by)
724- if ((cW == cW))
788+@Callable(bD)
789+func modifyWeights (ep,eq,er,es) = {
790+ let dm = bE(bD)
791+ if ((dm == dm))
725792 then {
726- let ed = ((5 * f) / 100)
727- let ee = ((5 * f) / 100)
728- let ef = ((5 * f) / 100)
729- let bo = split(aT(K()), l)
730- let eg = bq(bo)
731- let eh = br(bo)
732- let ei = Z(dZ)
733- let ej = Z(ea)
734- let ek = Z(eb)
735- let el = Z(ec)
736- let em = aW(ei)
737- let en = aW(ej)
738- let eo = (em - ef)
739- let ep = (en - ef)
740- if ((0 >= eo))
741- then throw(("invalid btcWeightNew: " + toString(eo)))
742- else if ((0 >= ep))
743- then throw(("invalid ethWeightNew: " + toString(ep)))
793+ let et = ((5 * f) / 100)
794+ let eu = ((5 * f) / 100)
795+ let ev = ((5 * f) / 100)
796+ let bt = split(aY(O()), m)
797+ let ew = bv(bt)
798+ let ex = bw(bt)
799+ let ey = ae(ep)
800+ let ez = ae(eq)
801+ let eA = ae(er)
802+ let eB = ae(es)
803+ let eC = bb(ey)
804+ let eD = bb(ez)
805+ let eE = (eC - ev)
806+ let eF = (eD - ev)
807+ if ((0 >= eE))
808+ then K(("invalid btcWeightNew: " + toString(eE)))
809+ else if ((0 >= eF))
810+ then K(("invalid ethWeightNew: " + toString(eF)))
744811 else {
745- let eq = aT(ax(dZ))
746- let er = aT(ax(ea))
747- let es = aT(ax(eb))
748- let et = aT(ax(ec))
749- let eu = invoke(eg, "onModifyWeight", [eq, dZ], nil)
750- if ((eu == eu))
812+ let eG = aY(aC(ep))
813+ let eH = aY(aC(eq))
814+ let eI = aY(aC(er))
815+ let eJ = aY(aC(es))
816+ let eK = invoke(ew, "onModifyWeight", [eG, ep], nil)
817+ if ((eK == eK))
751818 then {
752- let ev = invoke(eg, "onModifyWeight", [er, ea], nil)
753- if ((ev == ev))
819+ let eL = invoke(ew, "onModifyWeight", [eH, eq], nil)
820+ if ((eL == eL))
754821 then {
755- let ew = invoke(eg, "onModifyWeight", [es, eb], nil)
756- if ((ew == ew))
822+ let eM = invoke(ew, "onModifyWeight", [eI, er], nil)
823+ if ((eM == eM))
757824 then {
758- let ex = invoke(eg, "onModifyWeight", [et, ec], nil)
759- if ((ex == ex))
760- then [IntegerEntry(ei, eo), IntegerEntry(ej, ep), IntegerEntry(ek, ed), IntegerEntry(el, ee), IntegerEntry(ab(dZ, 0), em), IntegerEntry(ab(ea, 0), en), IntegerEntry(ab(eb, 0), ed), IntegerEntry(ab(ec, 0), ee)]
825+ let eN = invoke(ew, "onModifyWeight", [eJ, es], nil)
826+ if ((eN == eN))
827+ then [IntegerEntry(ey, eE), IntegerEntry(ez, eF), IntegerEntry(eA, et), IntegerEntry(eB, eu), IntegerEntry(ag(ep, 0), eC), IntegerEntry(ag(eq, 0), eD), IntegerEntry(ag(er, 0), et), IntegerEntry(ag(es, 0), eu)]
761828 else throw("Strict value is not equal to itself.")
762829 }
763830 else throw("Strict value is not equal to itself.")
764831 }
765832 else throw("Strict value is not equal to itself.")
766833 }
767834 else throw("Strict value is not equal to itself.")
768835 }
769836 }
770837 else throw("Strict value is not equal to itself.")
771838 }
772839
773840
774841
775-@Callable(by)
776-func checkWxEmissionPoolLabel (aA,aB) = {
777- let ey = {
778- let ba = getBoolean(az(aA, aB))
779- if ($isInstanceOf(ba, "Boolean"))
842+@Callable(bD)
843+func checkWxEmissionPoolLabel (aF,aG) = {
844+ let eO = {
845+ let bf = getBoolean(aE(aF, aG))
846+ if ($isInstanceOf(bf, "Boolean"))
780847 then {
781- let cE = ba
782- cE
848+ let cU = bf
849+ cU
783850 }
784851 else false
785852 }
786- $Tuple2(nil, ey)
853+ $Tuple2(nil, eO)
787854 }
788855
789856
790857
791-@Callable(by)
792-func setWxEmissionPoolLabel (aA,aB) = {
793- let cW = cl(by)
794- if ((cW == cW))
795- then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
858+@Callable(bD)
859+func setWxEmissionPoolLabel (aF,aG) = {
860+ let dm = cq(bD)
861+ if ((dm == dm))
862+ then $Tuple2([BooleanEntry(aE(aF, aG), true)], unit)
796863 else throw("Strict value is not equal to itself.")
797864 }
798865
799866
800867
801-@Callable(by)
802-func deleteWxEmissionPoolLabel (aA,aB) = {
803- let cW = if ((by.caller == this))
868+@Callable(bD)
869+func deleteWxEmissionPoolLabel (aF,aG) = {
870+ let dm = if ((bD.caller == this))
804871 then true
805- else cl(by)
806- if ((cW == cW))
807- then $Tuple2([DeleteEntry(az(aA, aB))], unit)
872+ else cq(bD)
873+ if ((dm == dm))
874+ then $Tuple2([DeleteEntry(aE(aF, aG))], unit)
808875 else throw("Strict value is not equal to itself.")
809876 }
810877
811878
812879
813-@Callable(by)
814-func onVerificationLoss (aO) = {
815- let cW = if ((toBase58String(by.caller.bytes) == valueOrElse(getString(this, T()), "")))
880+@Callable(bD)
881+func onVerificationLoss (aT) = {
882+ let dm = if ((toBase58String(bD.caller.bytes) == valueOrElse(getString(this, X()), "")))
816883 then true
817- else bz(by)
818- if ((cW == cW))
884+ else bE(bD)
885+ if ((dm == dm))
819886 then {
820- let dd = bs()
821- let ez = if ((size(dd) > 0))
887+ let dt = bx()
888+ let eP = if ((size(dt) > 0))
822889 then true
823- else throw("invalid price assets")
824- if ((ez == ez))
890+ else K("invalid price assets")
891+ if ((eP == eP))
825892 then {
826- func eA (eB,eC) = {
827- let cy = invoke(this, "deleteWxEmissionPoolLabel", [aO, eC], nil)
828- if ((cy == cy))
893+ func eQ (eR,eS) = {
894+ let cO = invoke(this, "deleteWxEmissionPoolLabel", [aT, eS], nil)
895+ if ((cO == cO))
829896 then unit
830897 else throw("Strict value is not equal to itself.")
831898 }
832899
833- let eD = {
834- let eE = dd
835- let eF = size(eE)
836- let eG = unit
837- func eH (eI,eJ) = if ((eJ >= eF))
838- then eI
839- else eA(eI, eE[eJ])
900+ let eT = {
901+ let eU = dt
902+ let eV = size(eU)
903+ let eW = unit
904+ func eX (eY,eZ) = if ((eZ >= eV))
905+ then eY
906+ else eQ(eY, eU[eZ])
840907
841- func eK (eI,eJ) = if ((eJ >= eF))
842- then eI
908+ func fa (eY,eZ) = if ((eZ >= eV))
909+ then eY
843910 else throw("List size exceeds 11")
844911
845- eK(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eH(eG, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
912+ fa(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eX(eW, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11)
846913 }
847- if ((eD == eD))
914+ if ((eT == eT))
848915 then $Tuple2(nil, unit)
849916 else throw("Strict value is not equal to itself.")
850917 }
851918 else throw("Strict value is not equal to itself.")
852919 }
853920 else throw("Strict value is not equal to itself.")
854921 }
855922
856923
857924
858-@Callable(by)
859-func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
860- let dD = cc(aa)
861- let al = $Tuple2(parseIntValue(dD[B]), parseIntValue(dD[C]))
862- let eL = valueOrElse(getBoolean(ak(al)), false)
863- let eM = valueOrElse(getBoolean(an()), false)
864- $Tuple2(nil, if (eM)
925+@Callable(bD)
926+func isPoolOneTokenOperationsDisabledREADONLY (af) = {
927+ let dT = ch(af)
928+ let aq = $Tuple2(parseIntValue(dT[C]), parseIntValue(dT[D]))
929+ let fb = valueOrElse(getBoolean(ap(aq)), false)
930+ let fc = valueOrElse(getBoolean(as()), false)
931+ $Tuple2(nil, if (fc)
865932 then true
866- else eL)
933+ else fb)
867934 }
868935
869936
870937
871-@Callable(by)
872-func getInFeeREADONLY (aa) = {
873- let eN = co(aC(aa), aD(), 0)
874- $Tuple2(nil, eN)
938+@Callable(bD)
939+func getInFeeREADONLY (af) = {
940+ let fd = ct(aH(af), aI(), 0)
941+ $Tuple2(nil, fd)
875942 }
876943
877944
878945
879-@Callable(by)
880-func getOutFeeREADONLY (aa) = {
881- let eN = co(aE(aa), aF(), fraction(10, b, 10000))
882- $Tuple2(nil, eN)
946+@Callable(bD)
947+func getOutFeeREADONLY (af) = {
948+ let fd = ct(aJ(af), aK(), fraction(10, b, 10000))
949+ $Tuple2(nil, fd)
883950 }
884951
885952
886953
887-@Callable(by)
888-func poolInfoREADONLY (eO,eP) = {
889- let eQ = getInteger(this, af(eO))
890- let eR = getInteger(this, af(eP))
891- let eS = getString(this, aw(value(eQ), value(eR)))
892- let eT = getString(this, ax(value(eS)))
893- let dq = if (if (isDefined(eQ))
894- then isDefined(eR)
954+@Callable(bD)
955+func poolInfoREADONLY (fe,ff) = {
956+ let fg = getInteger(this, ak(fe))
957+ let fh = getInteger(this, ak(ff))
958+ let fi = getString(this, aB(value(fg), value(fh)))
959+ let fj = getString(this, aC(value(fi)))
960+ let dG = if (if (isDefined(fg))
961+ then isDefined(fh)
895962 else false)
896- then isDefined(eS)
963+ then isDefined(fi)
897964 else false
898- let eU = if (dq)
899- then $Tuple2(addressFromStringValue(value(eS)), aX(value(eT)))
965+ let fk = if (dG)
966+ then $Tuple2(addressFromStringValue(value(fi)), bc(value(fj)))
900967 else unit
901- $Tuple2(nil, eU)
968+ $Tuple2(nil, fk)
902969 }
903970
904971
905972
906-@Callable(by)
907-func getPoolStatusREADONLY (aa) = {
908- let cd = split(aT(au(aa)), l)
909- let ai = cd[1]
910- let aj = cd[2]
911- let cu = split(aT(ah(ai, aj)), l)
912- $Tuple2(nil, parseIntValue(cu[v]))
973+@Callable(bD)
974+func getPoolStatusREADONLY (af) = {
975+ let ci = split(aY(az(af)), m)
976+ let an = ci[1]
977+ let ao = ci[2]
978+ let cz = split(aY(am(an, ao)), m)
979+ $Tuple2(nil, parseIntValue(cz[w]))
913980 }
914981
915982
916983
917-@Callable(by)
918-func getPoolConfigREADONLY (aa) = {
919- let cd = split(aT(au(aa)), l)
920- let ai = cd[1]
921- let aj = cd[2]
922- let cu = split(aT(ah(ai, aj)), l)
923- $Tuple2(nil, cu)
984+@Callable(bD)
985+func getPoolConfigREADONLY (af) = {
986+ let ci = split(aY(az(af)), m)
987+ let an = ci[1]
988+ let ao = ci[2]
989+ let cz = split(aY(am(an, ao)), m)
990+ $Tuple2(nil, cz)
924991 }
925992
926993
927994
928-@Callable(by)
929-func getPoolConfigByLpAssetIdREADONLY (dv) = {
930- let cd = split(aT(ao(dv)), l)
931- let ai = cd[1]
932- let aj = cd[2]
933- let cu = split(aT(ah(ai, aj)), l)
934- $Tuple2(nil, cu)
995+@Callable(bD)
996+func getPoolConfigByLpAssetIdREADONLY (dL) = {
997+ let ci = split(aY(at(dL)), m)
998+ let an = ci[1]
999+ let ao = ci[2]
1000+ let cz = split(aY(am(an, ao)), m)
1001+ $Tuple2(nil, cz)
9351002 }
9361003
9371004
9381005
939-@Callable(by)
940-func poolExistsREADONLY (aA,aB) = $Tuple2(nil, cr(aA, aB))
1006+@Callable(bD)
1007+func poolExistsREADONLY (aF,aG) = $Tuple2(nil, cw(aF, aG))
9411008
9421009
9431010
944-@Callable(by)
945-func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false))
1011+@Callable(bD)
1012+func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aL(af)), false))
9461013
9471014
9481015
949-@Callable(by)
950-func getChangeAmpConfigREADONLY (aa) = {
951- let eV = getIntegerValue(aH(aa))
952- let eW = getIntegerValue(aI(aa))
953- let eX = getIntegerValue(aJ(aa))
954- $Tuple2(nil, [eV, eW, eX])
1016+@Callable(bD)
1017+func getChangeAmpConfigREADONLY (af) = {
1018+ let fl = getIntegerValue(aM(af))
1019+ let fm = getIntegerValue(aN(af))
1020+ let fn = getIntegerValue(aO(af))
1021+ $Tuple2(nil, [fl, fm, fn])
9551022 }
9561023
9571024
9581025
959-@Callable(by)
960-func getPoolWeightREADONLY (bQ) = {
961- let aa = aT(ay(bQ))
962- let eY = valueOrElse(getInteger(Z(aa)), 0)
963- $Tuple2(nil, eY)
1026+@Callable(bD)
1027+func getPoolWeightREADONLY (bV) = {
1028+ let af = aY(aD(bV))
1029+ let fo = valueOrElse(getInteger(ae(af)), 0)
1030+ $Tuple2(nil, fo)
9641031 }
9651032
9661033
967-@Verifier(eZ)
968-func fa () = {
969- let fb = {
970- let ba = bt()
971- if ($isInstanceOf(ba, "ByteVector"))
1034+
1035+@Callable(bD)
1036+func deletePool (aA) = {
1037+ let dT = ch(aA)
1038+ let dm = if ((toString(bD.caller) == cD(aA)))
1039+ then if (cL(aA))
1040+ then true
1041+ else K("Pool is not empty")
1042+ else bE(bD)
1043+ if ((dm == dm))
1044+ then {
1045+ let fp = if ((valueOrElse(getInteger(ae(aA)), 0) == 0))
1046+ then true
1047+ else K("Pool weight is not Zero")
1048+ if ((fp == fp))
1049+ then {
1050+ let fq = if ((getIntegerValue(dT[w]) == r))
1051+ then true
1052+ else K("Pools must be SHUTDOWN (4)")
1053+ if ((fq == fq))
1054+ then {
1055+ let fr = cC(aA)
1056+ let aF = fr._1
1057+ let aG = fr._2
1058+ let bV = fr._3
1059+ let an = fr._4
1060+ let ao = fr._5
1061+ let cF = addressFromStringValue(getStringValue(Z()))
1062+ let fs = invoke(cF, "deletePool", [aF, aG], nil)
1063+ if ((fs == fs))
1064+ then {
1065+ let ds = addressFromStringValue(getStringValue(Y()))
1066+ let ft = invoke(ds, "deletePool", [aF, aG], nil)
1067+ if ((ft == ft))
1068+ then {
1069+ let dr = addressFromStringValue(getStringValue(X()))
1070+ let fu = invoke(dr, "deletePool", [aF, aG], nil)
1071+ if ((fu == fu))
1072+ then [DeleteEntry(aC(aA)), DeleteEntry(az(aA)), DeleteEntry(av(toString(an), toString(ao))), DeleteEntry(aB(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(at(bV)), DeleteEntry(aD(bV)), DeleteEntry(aE(aF, aG)), DeleteEntry(ae(aA)), DeleteEntry(ay(aA)), DeleteEntry(aH(aA)), DeleteEntry(aJ(aA)), DeleteEntry(aL(aA)), DeleteEntry(aM(aA)), DeleteEntry(aN(aA)), DeleteEntry(aO(aA))]
1073+ else throw("Strict value is not equal to itself.")
1074+ }
1075+ else throw("Strict value is not equal to itself.")
1076+ }
1077+ else throw("Strict value is not equal to itself.")
1078+ }
1079+ else throw("Strict value is not equal to itself.")
1080+ }
1081+ else throw("Strict value is not equal to itself.")
1082+ }
1083+ else throw("Strict value is not equal to itself.")
1084+ }
1085+
1086+
1087+@Verifier(fv)
1088+func fw () = {
1089+ let fx = {
1090+ let bf = by()
1091+ if ($isInstanceOf(bf, "ByteVector"))
9721092 then {
973- let bA = ba
974- bA
1093+ let bF = bf
1094+ bF
9751095 }
976- else if ($isInstanceOf(ba, "Unit"))
977- then eZ.senderPublicKey
1096+ else if ($isInstanceOf(bf, "Unit"))
1097+ then fv.senderPublicKey
9781098 else throw("Match error")
9791099 }
980- sigVerify(eZ.bodyBytes, eZ.proofs[0], fb)
1100+ sigVerify(fv.bodyBytes, fv.proofs[0], fx)
9811101 }
9821102

github/deemru/w8io/873ac7e 
376.49 ms