tx · 2Er3JgTxsN367CociqcWduXrA1JvxFo8ibGoA6cFLhqb

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.02400000 Waves

2023.03.24 14:58 [2504059] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "2Er3JgTxsN367CociqcWduXrA1JvxFo8ibGoA6cFLhqb", "fee": 2400000, "feeAssetId": null, "timestamp": 1679659151777, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "TXE4GvDFuHRmUj9ftWyjdgRrymjyFVEXU38cxwcDLhdgLRNfbtYj2g5Dgkb3kMwXAyqCsgm8NGgVLyR5tMVohvz" ], "script": "base64:BgLhKAgCEgASBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEIEgASAwoBGBIKCggICAgICAEICBIECgIIARIDCgEBEgMKAQESBAoCCAESBgoECAgICBIECgIICBIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCILd2F2ZXNTdHJpbmciEWRlY2ltYWxzTXVsdFByaWNlIgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biISaWR4SW50ZXJuYWxBc3NldElkIg9pZHhSZXN1dEFjdGlvbnMiIGlkeElmQXNzZXRJZENhbGN1bGF0aW9uUGVyZm9ybWVkIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iC2lkeFBvb2xUeXBlIhNwb29sTGFiZWxXeEVtaXNzaW9uIg92YWxpZFBvb2xMYWJlbHMiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giIWtleUFsbG93ZWRMcFN0YWJsZUFkZG9uU2NyaXB0SGFzaCIMc3dhcENvbnRyYWN0IhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM3MjYzNzg4IiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiIRa2V5Q2hhbmdlQW1wRGVsYXkiEWtleUNoYW5nZUFtcERlbHRhIhJrZXlDaGFuZ2VBbXBUYXJnZXQiD2dldFN0cmluZ09yRmFpbCIDa2V5IhBnZXRCb29sZWFuT3JGYWlsIgxnZXRJbnRPckZhaWwiDHBhcnNlQXNzZXRJZCIFaW5wdXQiGElkeEZhY3RvcnlDZmdTdGFraW5nRGFwcCIZSWR4RmFjdG9yeUNmZ0Jvb3N0aW5nRGFwcCIUSWR4RmFjdG9yeUNmZ0lkb0RhcHAiFUlkeEZhY3RvcnlDZmdUZWFtRGFwcCIZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcCIVSWR4RmFjdG9yeUNmZ1Jlc3REYXBwIhlJZHhGYWN0b3J5Q2ZnU2xpcHBhZ2VEYXBwIhRJZHhGYWN0b3J5Q2ZnRGFvRGFwcCIaSWR4RmFjdG9yeUNmZ01hcmtldGluZ0RhcHAiGklkeEZhY3RvcnlDZmdHd3hSZXdhcmREYXBwIhZJZHhGYWN0b3J5Q2ZnQmlyZHNEYXBwIhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiDmdldFByaWNlQXNzZXRzIgckbWF0Y2gwIgFzIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0Ih1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIVcGVybWlzc2lvbkRlbmllZEVycm9yIgl0ZXN0RXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIScG9vbEV4aXN0c0ludGVybmFsIgRhbUFzIgRwckFzIgNjZmciCmNmZ1JldmVyc2UiBmV4aXN0cyIGYXNzZXQxIgZhc3NldDIiCWFzc2V0TnVtMSIJYXNzZXROdW0yIgJlZSIDcmVzIgJscCIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iDGFkbWluUHViS2V5cyILbHBBc3NldE5hbWUiDGxwQXNzZXREZXNjciIKcG9vbFdlaWdodCIEbG9nbyIXaW50ZXJuYWxBbW91bnRBc3NldERhdGEiFWludGVybmFsQW1vdW50QXNzZXRJZCIWaW50ZXJuYWxQcmljZUFzc2V0RGF0YSIUaW50ZXJuYWxQcmljZUFzc2V0SWQiFXBvb2xBY2NvdW50U2NyaXB0SGFzaCIcZXRoYWxvblBvb2xBY2NvdW50U2NyaXB0SGFzaCIKcG9vbEV4aXN0cyIPcG9vbENvbmZpZ1ZhbHVlIhRhbW91bnRBc3NldHNEZWNpbWFscyITcHJpY2VBc3NldHNEZWNpbWFscyISbHBBc3NldElzc3VlQWN0aW9uIgxscEFzc2V0SWRTdHIiGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdCIYY3JlYXRlT3JVcGRhdGVMcEFzc2V0SW52IhJhZGRQb29sc0xwTGFiZWxJbnYiCnNldExvZ29JbnYiEGFkZEFzc2V0c0xpbmtJbnYiG2luY3JlYXNlQXNzZXRQb29sc051bWJlckludiIJbmV3U3RhdHVzIgpwb29sQ29uZmlnIgpscEFzc2V0RGNtIgxhbW91bnRUb0VtaXQiBmNhbGxlciIMb3JpZ2luQ2FsbGVyIhBscEFzc2V0UmVxdWVzdGVkIgdscEFzc2V0IgxhbW91bnRUb0J1cm4iB3BheW1lbnQiDXBheW1lbnRBbW91bnQiD2luQW1vdW50QXNzZXRJZCIabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmciBXNoYXJlIg1wb29sV2VpZ2h0S2V5Igxnd3hXZWlnaHRLZXkiCWd3eFdlaWdodCINcG9vbFdlaWdodE5ldyIRb25Nb2RpZnlXZWlnaHRJbnYiFWd3eFZpcnR1YWxQb29sQWN0aW9ucyIUcG9vbFdlaWdodEhpc3RvcnlLZXkiF3Bvb2xXZWlnaHRIaXN0b3J5T3JVbml0Ihhwb29sV2VpZ2h0SGlzdG9yeUFjdGlvbnMiDmJ0Y1Bvb2xBZGRyZXNzIg5ldGhQb29sQWRkcmVzcyIRZXRoQnRjUG9vbEFkZHJlc3MiE3VzZGNVc2R0UG9vbEFkZHJlc3MiD2V0aEJ0Y1dlaWdodE5ldyIRdXNkY1VzZHRXZWlnaHROZXciD3dlaWdodERlY3JlbWVudCILc3Rha2luZ0RhcHAiDWd3eFJld2FyZERhcHAiDGJ0Y1dlaWdodEtFWSIMZXRoV2VpZ2h0S0VZIg9ldGhCdGNXZWlnaHRLRVkiEXVzZGNVc2R0V2VpZ2h0S0VZIglidGNXZWlnaHQiCWV0aFdlaWdodCIMYnRjV2VpZ2h0TmV3IgxldGhXZWlnaHROZXciD2J0Y0xwQXNzZXRJZFN0ciIPZXRoTHBBc3NldElkU3RyIhJldGhCdGNMcEFzc2V0SWRTdHIiFHVzZGNVc2R0THBBc3NldElkU3RyIhFvbk1vZGlmeVdlaWdodEJ0YyIRb25Nb2RpZnlXZWlnaHRFdGgiFG9uTW9kaWZ5V2VpZ2h0RXRoQnRjIhZvbk1vZGlmeVdlaWdodFVzZGNVc2R0IgloYXZlTGFiZWwiAWIiB2Fzc2V0SWQiFGNoZWNrUHJpY2VBc3NldHNTaXplIgJjYiIDYWNjIgpwcmljZUFzc2V0IgFyIgdhY3Rpb25zIgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIecG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIiJhbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgNmZWUiEGFtb3VudEFzc2V0SWRTdHIiD3ByaWNlQXNzZXRJZFN0ciIbYW1vdW50QXNzZXRJbnRlcm5hbElkT3B0aW9uIhpwcmljZUFzc2V0SW50ZXJuYWxJZE9wdGlvbiIZcG9vbENvbnRyYWN0QWRkcmVzc09wdGlvbiIPbHBBc3NldElkT3B0aW9uIghwb29sSW5mbyIFZGVsYXkiBWRlbHRhIgZ0YXJnZXQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleW0AAWEACAABYgCAwtcvAAFjABIAAWQJALYCAQCAgJC7utat8A0AAWUFAWIAAWYCDkdXWHZpcnR1YWxQT09MAAFnAghQT09MU19MUAABaACAiXoAAWkCBVdBVkVTAAFqCQBoAgkAaAIAZADoBwDoBwABawICX18AAWwCAAABbQABAAFuAAIAAW8AAwABcAAEAAFxAAEAAXIAAgABcwADAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAoAAUQACwABRQILV1hfRU1JU1NJT04AAUYJAMwIAgUBRQUDbmlsAQFHAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAUgAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBSQACIiVzX19hbGxvd2VkTHBTdGFibGVBZGRvblNjcmlwdEhhc2gBAUoAAhAlc19fc3dhcENvbnRyYWN0AQFLAAIRJXNfX2ZhY3RvcnlDb25maWcBAUwAAhAlc19fbHBUb2tlbnNMaXN0AQFNAAIWJXMlc19fcG9vbF9fc2NyaXB0SGFzaAEBTgACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQEBTwACGSVzX19sZWdhY3lGYWN0b3J5Q29udHJhY3QBAVAAAg8lc19fbGVnYWN5UG9vbHMBAVEAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBUgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBUwACECVzX19hZG1pblB1YktleXMBAVQAAhclc19fYXNzZXRzU3RvcmVDb250cmFjdAEBVQACGiVzX192b3RpbmdFbWlzc2lvbkNvbnRyYWN0AQFWAAkAuQkCCQDMCAICAiVzCQDMCAICC3ByaWNlQXNzZXRzBQNuaWwFAWsBAVcAAhElc19fcHJpY2VEZWNpbWFscwEBWAACDCVzX19zaHV0ZG93bgEBWQACFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQFaAQJhYQkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFhAQJhYgICYWECYWMJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWECAl9fCQCkAwEFAmFjAQJhZAECYWUJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhZQECYWYBAmFnCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFnAQJhaAICYWkCYWoJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFpAgJfXwUCYWoCCF9fY29uZmlnAQJhawECYWwEAmFt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Ag9UZXN0IGVycm9yIGhlcmUBAmJuAQJibwMJAAACCAUCYm8GY2FsbGVyBQR0aGlzBgUCYmwBAmJwAQJibwQCYmgJAQJiagADCQABAgUCYmgCCkJ5dGVWZWN0b3IEAmJxBQJiaAMJAAACCAUCYm8PY2FsbGVyUHVibGljS2V5BQJicQYFAmJsAwkAAQIFAmJoAgRVbml0CQECYm4BBQJibwkAAgECC01hdGNoIGVycm9yAQJicgsCYnMCYnQCYnUCYnYCYncCYngCYnkCYnoCYkECYkICYkMJALkJAgkAzAgCAhYlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCQDMCAIFAmJzCQDMCAIFAmJ0CQDMCAIFAmJ1CQDMCAIFAmJ2CQDMCAIFAmJ3CQDMCAIFAmJ4CQDMCAIFAmJ5CQDMCAIFAmJ6CQDMCAIFAmJBCQDMCAIFAmJCCQDMCAIFAmJDBQNuaWwFAWsBAmJEBwJicwJidAJidQJidgJidwJieAJieQkAuQkCCQDMCAICDCVzJXMlcyVzJXMlcwkAzAgCBQJicwkAzAgCBQJidAkAzAgCBQJidQkAzAgCBQJidgkAzAgCBQJidwkAzAgCBQJieAkAzAgCBQJieQUDbmlsBQFrAQJiRQsCYWECYkYCYkcCYkgCYkkCYkoCYksCYkwCYk0CYk4CYk8JALkJAgkAzAgCAhYlcyVkJXMlcyVzJWQlZCVkJWQlZCVzCQDMCAIFAmFhCQDMCAIFAmJGCQDMCAIFAmJHCQDMCAIFAmJICQDMCAIFAmJJCQDMCAIJAKQDAQUCYkoJAMwIAgkApAMBBQJiSwkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCYk0JAMwIAgkApAMBBQJiTgkAzAgCBQJiTwUDbmlsBQFrAQJiUAICYlECYlIJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUCYlEJAMwIAgkApAMBBQJiUgUDbmlsBQFrAQJiUwECYWEEAmJUCQC1CQIJAQJhSwEJAQJhdQEFAmFhBQFrBAJhaQkAkQMCBQJiVAABBAJhagkAkQMCBQJiVAACCQC1CQIJAQJhSwEJAQJhaAIFAmFpBQJhagUBawECYlUCAmJWAmJXBAJiWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWYBBQJiVgAABAJiWQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBWQAAAAQCYloDCQAAAgUCYlgAAAQCY2EJAGQCBQJiWQUCYlcJAJUKAwUCY2EJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFZAAUCY2EJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZgEFAmJWBQJjYQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWQBBQJjYQUCYlYFA25pbAYJAJUKAwUCYlgFA25pbAcFAmJaAQJjYgECYm8EAmNjCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVMABQFsBQFrAwkBD2NvbnRhaW5zRWxlbWVudAIFAmNjCQDYBAEIBQJibw9jYWxsZXJQdWJsaWNLZXkGBAJjZAkBAmJwAQUCYm8DCQAAAgUCY2QFAmNkBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY2UDAmFMAmNmAmNnCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFMCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmNmBQJjZwECY2gCAmFBAmFCBAJhaQkAnwgBCQECYWYBBQJhQQQCYWoJAJ8IAQkBAmFmAQUCYUIDAwkAAAIFAmFpBQR1bml0BgkAAAIFAmFqBQR1bml0BwQCY2kJAKQDAQkBBXZhbHVlAQUCYWkEAmNqCQCkAwEJAQV2YWx1ZQEFAmFqBAJjawkAoggBCQECYWgCBQJjaQUCY2oEAmNsCQCiCAEJAQJhaAIFAmNqBQJjaQQCY20DCQECIT0CBQJjawUEdW5pdAYJAQIhPQIFAmNsBQR1bml0BQJjbSACYm8BF2dldFN3YXBDb250cmFjdFJFQURPTkxZAAkAlAoCBQNuaWwJAQJhSwEJAQFKAAJibwEgZ2V0THBBc3NldEZyb21Qb29sQXNzZXRzUkVBRE9OTFkCAmNuAmNvAwMJAAACBQJjbgIsOExRVzhmN1A1ZDVQWk03R3RaRUJnYXFSUEdTelMzRGZQdWlYclVSSjRBSlMJAAACBQJjbwIFV0FWRVMHCQCUCgIFA25pbAUEdW5pdAQCY3AJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFmAQUCY24EAmNxCQEFdmFsdWUBCQCaCAIFBHRoaXMJAQJhZgEFAmNvBAJjcgkAnQgCBQR0aGlzCQECYXECCQCkAwEFAmNwCQCkAwEFAmNxBAJjcwMJAAACBQJjcgUEdW5pdAUEdW5pdAkAsAICCQEFdmFsdWUBBQJjcgAECQCUCgIFA25pbAUCY3MCYm8BIWdldFBvb2xBZGRyZXNzRnJvbUxwQXNzZXRSRUFET05MWQECY3QJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJheQEFAmN0AgACYm8BC2NvbnN0cnVjdG9yCAJjdQJjdgJidQJidgJidwJieAJjdwJjeAQCY3kJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQkAzAgCCQELU3RyaW5nRW50cnkCCQEBSwAJAQJiRAcFAmN1BQJjdgUCYnUFAmJ2BQJidwUCYngFAmN3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmN4BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjIBAmN6BAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJjQQkApwgBCQDZBAEFAmN6AwkAAAIFAmNBBQJjQQkAzAgCCQELU3RyaW5nRW50cnkCCQEBTgAFAmN6BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjMEAmJ6AmJBAmJCAmJDBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJiYwkAtQkCCQECYUsBCQEBSwAFAWsJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUsACQECYnILCQCRAwIFAmJjAAEJAJEDAgUCYmMAAgkAkQMCBQJiYwADCQCRAwIFAmJjAAQJAJEDAgUCYmMABQkAkQMCBQJiYwAGCQCRAwIFAmJjAAcFAmJ6BQJiQQUCYkIFAmJDBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjQCAmNCAmNDBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFPAAUCY0IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVAACQC5CQIFAmNDBQFrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDWNvbnN0cnVjdG9yVjUBAmNEBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAAUCY0QFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwENY29uc3RydWN0b3JWNgICY0UCY0YEAmNHCQDMCAIJAQJicAEFAmJvCQDMCAIDCQECIT0CCQCmCAEFAmNFBQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmNHBQJjRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBVQAFAmNFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAAkAuQkCBQJjRgUBawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvAQpzZXRNYW5hZ2VyAQJjSAQCY3kJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQQCY0kJANkEAQUCY0gDCQAAAgUCY0kFAmNJCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFSAAUCY0gFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwEOY29uZmlybU1hbmFnZXIABAJjSgkBAmJrAAQCY0sDCQEJaXNEZWZpbmVkAQUCY0oGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNLBQJjSwQCY0wDCQAAAggFAmJvD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY0oGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNMBQJjTAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQAJANgEAQkBBXZhbHVlAQUCY0oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVIABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BCXNldEFkbWlucwECY00EAmN5CQECYnABBQJibwMJAAACBQJjeQUCY3kJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMACQC5CQIFAmNNBQFrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BD2FjdGl2YXRlTmV3UG9vbAgCYWECYkgCYkkCY04CY08CY1ACYk8CY1EEAmN5CQECY2IBBQJibwMJAAACBQJjeQUCY3kDCQEJaXNEZWZpbmVkAQkAoggBCQECYXUBBQJhYQkAAgEJAKwCAgkArAICAg1Qb29sIGFkZHJlc3MgBQJhYQIUIGFscmVhZHkgcmVnaXN0ZXJlZC4EAmNSCQECYlUCBQJiSAABBAJjUwgFAmNSAl8xBAJjVAkBAmJVAgUCYkkDCAUCY1ICXzMAAgABBAJjVQgFAmNUAl8xBAJjVgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFhCQCsAgICKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQJhYQQCY1cJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQFNAAQCY1gJAQJjaAIFAmJIBQJiSQMFAmNYCQACAQkArAICCQCsAgIJAKwCAgkArAICAgVQb29sIAUCYkgCAS8FAmJJAhwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAJjWQkBBXZhbHVlAQkAnQgCBQR0aGlzCQECYWgCCQCkAwEFAmNTCQCkAwEFAmNVBAJjWgMJAAACBQJiSAIFV0FWRVMFAWoJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJiSAhkZWNpbWFscwAAAAAFBERPV04EAmRhAwkAAAIFAmJJAgVXQVZFUwUBagkAbAYACgAACAkBBXZhbHVlAQkA7AcBCQDZBAEFAmJJCGRlY2ltYWxzAAAAAAUERE9XTgQCZGIJAMIIBQUCY04FAmNPAAEACAYEAmJHCQC4CAEFAmRiBAJkYwkA2AQBBQJiRwQCZGQJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWECCGFjdGl2YXRlCQDMCAIFAmJICQDMCAIFAmJJBQNuaWwFA25pbAMJAAACBQJkZAUCZGQDCQECIT0CBQJkZAIHc3VjY2VzcwkAAgECI1Bvb2wgaW5pdGlhbGlzYXRpb24gZXJyb3IgaGFwcGVuZWQuBAJjRAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFLAQkBAVQABAJkZQkA/AcEBQJjRAIOY3JlYXRlT3JVcGRhdGUJAMwIAgUCZGMJAMwIAgUCY04JAMwIAgcFA25pbAUDbmlsAwkAAAIFAmRlBQJkZQQCZGYJAPwHBAUCY0QCCGFkZExhYmVsCQDMCAIFAmRjCQDMCAIFAWcFA25pbAUDbmlsAwkAAAIFAmRmBQJkZgQCZGcJAPwHBAUCY0QCB3NldExvZ28JAMwIAgUCZGMJAMwIAgUCY1EFA25pbAUDbmlsAwkAAAIFAmRnBQJkZwQCZGgJAPwHBAUCY0QCDWFkZEFzc2V0c0xpbmsJAMwIAgUCYkgJAMwIAgUCYkkJAMwIAgUCZGMFA25pbAUDbmlsAwkAAAIFAmRoBQJkaAQCZGkJAPwHBAUCY0QCGGluY3JlYXNlQXNzZXRQb29sc051bWJlcgkAzAgCBQJiSAUDbmlsBQNuaWwDCQAAAgUCZGkFAmRpCQCUCgIJAM4IAgkAzggCCAUCY1ICXzIIBQJjVAJfMgkAzAgCBQJkYgkAzAgCCQEEQnVybgIFAmJHAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFoAgkApAMBBQJjUwkApAMBBQJjVQkBAmJFCwUCYWEJAKQDAQUBbQUCZGMFAmJIBQJiSQUCY1oFAmRhBQJjUwUCY1UFAWoFAmJPCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhbwEFAmRjCQECYlACBQJjUwUCY1UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFxAgkApAMBBQJjUwkApAMBBQJjVQkArAICAgQlc19fBQJkYwkAzAgCCQELU3RyaW5nRW50cnkCCQECYXUBBQJhYQkBAmJQAgUCY1MFAmNVCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdwIFAmNTBQJjVQUCYWEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF5AQUCZGMFAmFhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJheAEFAmFhBQJkYwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVoBBQJhYQUCY1AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhdAEFAmFhBQFoBQNuaWwFAmRjCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvAQptYW5hZ2VQb29sAgJhYQJkagQCY3kJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQQCZGsJAQJiUwEFAmFhBAJiRgkAkQMCBQJkawUBdQQCZGMJAJEDAgUCZGsFAXYEAmJICQCRAwIFAmRrBQF3BAJiSQkAkQMCBQJkawUBeAQCY1oJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBeQQCZGEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBegQCY1MJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQQQCY1UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQgQCZGwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQwQCYk8JAJEDAgUCZGsFAUQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFoAgkApAMBBQJjUwkApAMBBQJjVQkBAmJFCwUCYWEJAKQDAQUCZGoFAmRjBQJiSAUCYkkFAmNaBQJkYQUCY1MFAmNVBQJkbAUCYk8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwEEZW1pdAECZG0EAmRuCAUCYm8GY2FsbGVyBAJkbwgFAmJvDG9yaWdpbkNhbGxlcgQCZHAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYXgBCQClCAEFAmRuAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgQCZHEJANkEAQUCZHAEAmNDCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVAABQFsBQFrBAJjQgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQFPAAIoTGVnYWN5IGZhY3RvcnkgY29udHJhY3QgZG9lcyBub3QgZXhpc3RzLgMJAGcCAAAFAmRtBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUCY0MJAKUIAQUCZG4JAJQKAgUDbmlsBQJjQgkAlAoCCQDMCAIJAQdSZWlzc3VlAwUCZHEFAmRtBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYm8GY2FsbGVyBQJkbQUCZHEFA25pbAIHc3VjY2VzcwJibwEEYnVybgECZHIEAmRuCAUCYm8GY2FsbGVyBAJkbwgFAmJvDG9yaWdpbkNhbGxlcgQCZHMJAQV2YWx1ZQEJAJEDAggFAmJvCHBheW1lbnRzAAAEAmR0CQEFdmFsdWUBCAUCZHMGYW1vdW50BAJkdQkA2AQBCQEFdmFsdWUBCAUCZHMHYXNzZXRJZAQCZHYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYXgBCQClCAEFAmRuAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQIhPQIFAmR1BQJkdgkAAgECFUludmFsaWQgYXNzZXQgcGFzc2VkLgMJAQIhPQIFAmRyBQJkdAkAAgECFkludmFsaWQgYW1vdW50IHBhc3NlZC4EAmRxCQDZBAEFAmR2CQCUCgIJAMwIAgkBBEJ1cm4CBQJkcQUCZHIFA25pbAIHc3VjY2VzcwJibwEMbW9kaWZ5V2VpZ2h0AgJiRwJkdwQCY3kDCQAAAgkA2AQBCAgFAmJvBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBVQACAAYJAQJicAEFAmJvAwkAAAIFAmN5BQJjeQQCYXYJAQJhSwEJAQJheQEFAmJHBAJkeAkBAVoBBQJhdgQCZHkJAQFaAQUBZgQCZHoJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZHkAAAQCY1AJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCZHgAAAQCZEEFAmR3BAJiYwkAtQkCCQECYUsBCQEBSwAFAWsEAmN1CQECYmUBBQJiYwQCZEIJAPwHBAUCY3UCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmJHCQDMCAIFAmF2BQNuaWwFA25pbAMJAAACBQJkQgUCZEIEAmRDAwkAAAIFAmR6AAAFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHkAAAUDbmlsBAJkRAkBAmFiAgUCYXYAAAQCZEUJAJ8IAQUCZEQEAmRGAwkAAAIFAmRFBQR1bml0BQNuaWwJAMwIAgkBC0RlbGV0ZUVudHJ5AQUCZEQFA25pbAkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmR4BQJkQQUDbmlsBQJkQwUCZEYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYm8BDW1vZGlmeVdlaWdodHMEAmRHAmRIAmRJAmRKBAJjeQkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJkSwkAaQIJAGgCAAUFAWUAZAQCZEwJAGkCCQBoAgAFBQFlAGQEAmRNCQBpAgkAaAIABQUBZQBkBAJiYwkAtQkCCQECYUsBCQEBSwAFAWsEAmROCQECYmUBBQJiYwQCZE8JAQJiZgEFAmJjBAJkUAkBAVoBBQJkRwQCZFEJAQFaAQUCZEgEAmRSCQEBWgEFAmRJBAJkUwkBAVoBBQJkSgQCZFQJAQJhTgEFAmRQBAJkVQkBAmFOAQUCZFEEAmRWCQBlAgUCZFQFAmRNBAJkVwkAZQIFAmRVBQJkTQMJAGcCAAAFAmRWCQACAQkArAICAhZpbnZhbGlkIGJ0Y1dlaWdodE5ldzogCQCkAwEFAmRWAwkAZwIAAAUCZFcJAAIBCQCsAgICFmludmFsaWQgZXRoV2VpZ2h0TmV3OiAJAKQDAQUCZFcEAmRYCQECYUsBCQECYXgBBQJkRwQCZFkJAQJhSwEJAQJheAEFAmRIBAJkWgkBAmFLAQkBAmF4AQUCZEkEAmVhCQECYUsBCQECYXgBBQJkSgQCZWIJAPwHBAUCZE4CDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmRYCQDMCAIFAmRHBQNuaWwFA25pbAMJAAACBQJlYgUCZWIEAmVjCQD8BwQFAmROAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJkWQkAzAgCBQJkSAUDbmlsBQNuaWwDCQAAAgUCZWMFAmVjBAJlZAkA/AcEBQJkTgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZFoJAMwIAgUCZEkFA25pbAUDbmlsAwkAAAIFAmVkBQJlZAQCZWUJAPwHBAUCZE4CDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVhCQDMCAIFAmRKBQNuaWwFA25pbAMJAAACBQJlZQUCZWUJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRQBQJkVgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFEFAmRXCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkUgUCZEsJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRTBQJkTAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEcAAAUCZFQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgIFAmRIAAAFAmRVCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWICBQJkSQAABQJkSwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAgUCZEoAAAUCZEwFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJibwEYY2hlY2tXeEVtaXNzaW9uUG9vbExhYmVsAgJhQQJhQgQCZWYEAmJoCQCgCAEJAQJhegIFAmFBBQJhQgMJAAECBQJiaAIHQm9vbGVhbgQCZWcFAmJoBQJlZwcJAJQKAgUDbmlsBQJlZgJibwEWc2V0V3hFbWlzc2lvblBvb2xMYWJlbAICYUECYUIEAmN5CQECY2IBBQJibwMJAAACBQJjeQUCY3kJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAmF6AgUCYUEFAmFCBgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvARlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsAgJhQQJhQgQCY3kDCQECYm4BBQJibwYJAQJjYgEFAmJvAwkAAAIFAmN5BQJjeQkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhegIFAmFBBQJhQgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvARJvblZlcmlmaWNhdGlvbkxvc3MBAmVoBAJjeQMJAAACCQDYBAEICAUCYm8GY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFUAAIABgkBAmJwAQUCYm8DCQAAAgUCY3kFAmN5BAJjRgkBAmJnAAQCZWkDCQBmAgkAkAMBBQJjRgAABgkAAgECFGludmFsaWQgcHJpY2UgYXNzZXRzAwkAAAIFAmVpBQJlaQoBAmVqAgJlawJlbAQCZW0JAPwHBAUEdGhpcwIZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAkAzAgCBQJlaAkAzAgCBQJlbAUDbmlsBQNuaWwDCQAAAgUCZW0FAmVtBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJlbgoAAmVvBQJjRgoAAmVwCQCQAwEFAmVvCgACZXEFBHVuaXQKAQJlcgICZXMCZXQDCQBnAgUCZXQFAmVwBQJlcwkBAmVqAgUCZXMJAJEDAgUCZW8FAmV0CgECZXUCAmVzAmV0AwkAZwIFAmV0BQJlcAUCZXMJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyAyCQECZXUCCQECZXICCQECZXICBQJlcQAAAAEAAgMJAAACBQJlbgUCZW4JAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJvAShpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZAQJhYQQCZGsJAQJiUwEFAmFhBAJhbAkAlAoCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGsFAUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkawUBQgQCZXYJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFrAQUCYWwHBAJldwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYW4ABwkAlAoCBQNuaWwDBQJldwYFAmV2AmJvARBnZXRJbkZlZVJFQURPTkxZAQJhYQQCZXgJAQJjZQMJAQJhQwEFAmFhCQECYUQAAAAJAJQKAgUDbmlsBQJleAJibwERZ2V0T3V0RmVlUkVBRE9OTFkBAmFhBAJleAkBAmNlAwkBAmFFAQUCYWEJAQJhRgAJAGsDAAoFAWIAkE4JAJQKAgUDbmlsBQJleAJibwEQcG9vbEluZm9SRUFET05MWQICZXkCZXoEAmVBCQCaCAIFBHRoaXMJAQJhZgEFAmV5BAJlQgkAmggCBQR0aGlzCQECYWYBBQJlegQCZUMJAJ0IAgUEdGhpcwkBAmF3AgkBBXZhbHVlAQUCZUEJAQV2YWx1ZQEFAmVCBAJlRAkAnQgCBQR0aGlzCQECYXgBCQEFdmFsdWUBBQJlQwQCY1gDAwkBCWlzRGVmaW5lZAEFAmVBCQEJaXNEZWZpbmVkAQUCZUIHCQEJaXNEZWZpbmVkAQUCZUMHBAJlRQMFAmNYCQCUCgIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFAmVDCQECYU8BCQEFdmFsdWUBBQJlRAUEdW5pdAkAlAoCBQNuaWwFAmVFAmJvARVnZXRQb29sU3RhdHVzUkVBRE9OTFkBAmFhBAJiVAkAtQkCCQECYUsBCQECYXUBBQJhYQUBawQCYWkJAJEDAgUCYlQAAQQCYWoJAJEDAgUCYlQAAgQCY2sJALUJAgkBAmFLAQkBAmFoAgUCYWkFAmFqBQFrCQCUCgIFA25pbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNrBQF1AmJvARVnZXRQb29sQ29uZmlnUkVBRE9OTFkBAmFhBAJiVAkAtQkCCQECYUsBCQECYXUBBQJhYQUBawQCYWkJAJEDAgUCYlQAAQQCYWoJAJEDAgUCYlQAAgQCY2sJALUJAgkBAmFLAQkBAmFoAgUCYWkFAmFqBQFrCQCUCgIFA25pbAUCY2sCYm8BIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZAQJkYwQCYlQJALUJAgkBAmFLAQkBAmFvAQUCZGMFAWsEAmFpCQCRAwIFAmJUAAEEAmFqCQCRAwIFAmJUAAIEAmNrCQC1CQIJAQJhSwEJAQJhaAIFAmFpBQJhagUBawkAlAoCBQNuaWwFAmNrAmJvARJwb29sRXhpc3RzUkVBRE9OTFkCAmFBAmFCCQCUCgIFA25pbAkBAmNoAgUCYUEFAmFCAmJvARtza2lwT3JkZXJWYWxpZGF0aW9uUkVBRE9OTFkBAmFhCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYUcBBQJhYQcCYm8BGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZAQJhYQQCZUYJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhSAEFAmFhBAJlRwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFJAQUCYWEEAmVICQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYUoBBQJhYQkAlAoCBQNuaWwJAMwIAgUCZUYJAMwIAgUCZUcJAMwIAgUCZUgFA25pbAECZUkBAmVKAAQCZUsEAmJoCQECYmoAAwkAAQIFAmJoAgpCeXRlVmVjdG9yBAJicQUCYmgFAmJxAwkAAQIFAmJoAgRVbml0CAUCZUkPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmVJCWJvZHlCeXRlcwkAkQMCCAUCZUkGcHJvb2ZzAAAFAmVL6jjb0Q==", "height": 2504059, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HwBs9yALVMQT4VXSnbVJaJiWQcDZaY985W3bRpEnf7VJ Next: EnLMse2vbjA7MwiE1DVNehoYpBaPUn7K4x4ELEAEShan Diff:
OldNewDifferences
889889
890890
891891 @Callable(bo)
892-func getPoolConfigByLpAssetId (dc) = {
892+func getPoolConfigByLpAssetIdREADONLY (dc) = {
893893 let bT = split(aK(ao(dc)), k)
894894 let ai = bT[1]
895895 let aj = bT[2]
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 = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = "POOLS_LP"
1717
1818 let h = 2000000
1919
2020 let i = "WAVES"
2121
2222 let j = ((100 * 1000) * 1000)
2323
2424 let k = "__"
2525
2626 let l = ""
2727
2828 let m = 1
2929
3030 let n = 2
3131
3232 let o = 3
3333
3434 let p = 4
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 3
4141
4242 let t = 1
4343
4444 let u = 2
4545
4646 let v = 3
4747
4848 let w = 4
4949
5050 let x = 5
5151
5252 let y = 6
5353
5454 let z = 7
5555
5656 let A = 8
5757
5858 let B = 9
5959
6060 let C = 10
6161
6262 let D = 11
6363
6464 let E = "WX_EMISSION"
6565
6666 let F = [E]
6767
6868 func G () = "%s__allowedLpScriptHash"
6969
7070
7171 func H () = "%s__allowedLpStableScriptHash"
7272
7373
7474 func I () = "%s__allowedLpStableAddonScriptHash"
7575
7676
7777 func J () = "%s__swapContract"
7878
7979
8080 func K () = "%s__factoryConfig"
8181
8282
8383 func L () = "%s__lpTokensList"
8484
8585
8686 func M () = "%s%s__pool__scriptHash"
8787
8888
8989 func N () = "%s%s__matcher__publicKey"
9090
9191
9292 func O () = "%s__legacyFactoryContract"
9393
9494
9595 func P () = "%s__legacyPools"
9696
9797
9898 func Q () = "%s__managerPublicKey"
9999
100100
101101 func R () = "%s__pendingManagerPublicKey"
102102
103103
104104 func S () = "%s__adminPubKeys"
105105
106106
107107 func T () = "%s__assetsStoreContract"
108108
109109
110110 func U () = "%s__votingEmissionContract"
111111
112112
113113 func V () = makeString(["%s", "priceAssets"], k)
114114
115115
116116 func W () = "%s__priceDecimals"
117117
118118
119119 func X () = "%s__shutdown"
120120
121121
122122 func Y () = "%s__nextInternalAssetId"
123123
124124
125125 func Z (aa) = ("%s%s__poolWeight__" + aa)
126126
127127
128128 func ab (aa,ac) = ((("%s%s__poolWeight__" + aa) + "__") + toString(ac))
129129
130130
131131 func ad (ae) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ae))
132132
133133
134134 func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
135135
136136
137137 func ah (ai,aj) = (((("%d%d%s__" + ai) + "__") + aj) + "__config")
138138
139139
140140 func ak (al) = {
141141 let am = al
142142 let ai = am._1
143143 let aj = am._2
144144 makeString(["%d%d%s", toString(ai), toString(aj), "oneTokenOperationsDisabled"], k)
145145 }
146146
147147
148148 func an () = makeString(["%s", "oneTokenOperationsDisabled"], k)
149149
150150
151151 func ao (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2Pool")
152152
153153
154154 func aq (ar,as) = (((("%d%d%s%s__" + ar) + "__") + as) + "__mappings__PoolAssets2LpAsset")
155155
156156
157157 func at (aa) = ("%s%s__spread__" + aa)
158158
159159
160160 func au (av) = (("%s%s%s__" + av) + "__mappings__poolContract2PoolAssets")
161161
162162
163163 func aw (ar,as) = (((("%d%d%s%s__" + toString(ar)) + "__") + toString(as)) + "__mappings__poolAssets2PoolContract")
164164
165165
166166 func ax (av) = (("%s%s%s__" + av) + "__mappings__poolContract2LpAsset")
167167
168168
169169 func ay (ap) = (("%s%s%s__" + ap) + "__mappings__lpAsset2PoolContract")
170170
171171
172172 func az (aA,aB) = ((("%s%s%s__wxEmission__" + aA) + "__") + aB)
173173
174174
175175 func aC (aa) = ("%s%s__inFee__" + aa)
176176
177177
178178 func aD () = "%s__inFeeDefault"
179179
180180
181181 func aE (aa) = ("%s%s__outFee__" + aa)
182182
183183
184184 func aF () = "%s__outFeeDefault"
185185
186186
187187 func aG (aa) = ("%s%s__skipOrderValidation__" + aa)
188188
189189
190190 func aH (aa) = ("%s%s__changeAmpDelay__" + aa)
191191
192192
193193 func aI (aa) = ("%s%s__changeAmpDelta__" + aa)
194194
195195
196196 func aJ (aa) = ("%s%s__changeAmpTarget__" + aa)
197197
198198
199199 func aK (aL) = valueOrErrorMessage(getString(this, aL), ("No data for this.key=" + aL))
200200
201201
202202 func aM (aL) = valueOrErrorMessage(getBoolean(this, aL), ("No data for this.key=" + aL))
203203
204204
205205 func aN (aL) = valueOrErrorMessage(getInteger(this, aL), ("No data for this.key=" + aL))
206206
207207
208208 func aO (aP) = if ((aP == i))
209209 then unit
210210 else fromBase58String(aP)
211211
212212
213213 let aQ = 1
214214
215215 let aR = 2
216216
217217 let aS = 3
218218
219219 let aT = 4
220220
221221 let aU = 5
222222
223223 let aV = 6
224224
225225 let aW = 7
226226
227227 let aX = 8
228228
229229 let aY = 9
230230
231231 let aZ = 10
232232
233233 let ba = 11
234234
235235 func bb (bc) = addressFromStringValue(bc[aR])
236236
237237
238238 func bd (bc) = addressFromStringValue(bc[aU])
239239
240240
241241 func be (bc) = addressFromStringValue(bc[aQ])
242242
243243
244244 func bf (bc) = addressFromStringValue(bc[aZ])
245245
246246
247247 func bg () = {
248248 let bh = getString(V())
249249 if ($isInstanceOf(bh, "String"))
250250 then {
251251 let bi = bh
252252 if ((size(bi) == 0))
253253 then nil
254254 else split(bi, k)
255255 }
256256 else nil
257257 }
258258
259259
260260 func bj () = {
261261 let bh = getString(Q())
262262 if ($isInstanceOf(bh, "String"))
263263 then {
264264 let bi = bh
265265 fromBase58String(bi)
266266 }
267267 else if ($isInstanceOf(bh, "Unit"))
268268 then unit
269269 else throw("Match error")
270270 }
271271
272272
273273 func bk () = {
274274 let bh = getString(R())
275275 if ($isInstanceOf(bh, "String"))
276276 then {
277277 let bi = bh
278278 fromBase58String(bi)
279279 }
280280 else if ($isInstanceOf(bh, "Unit"))
281281 then unit
282282 else throw("Match error")
283283 }
284284
285285
286286 let bl = throw("Permission denied")
287287
288288 let bm = throw("Test error here")
289289
290290 func bn (bo) = if ((bo.caller == this))
291291 then true
292292 else bl
293293
294294
295295 func bp (bo) = {
296296 let bh = bj()
297297 if ($isInstanceOf(bh, "ByteVector"))
298298 then {
299299 let bq = bh
300300 if ((bo.callerPublicKey == bq))
301301 then true
302302 else bl
303303 }
304304 else if ($isInstanceOf(bh, "Unit"))
305305 then bn(bo)
306306 else throw("Match error")
307307 }
308308
309309
310310 func br (bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bs, bt, bu, bv, bw, bx, by, bz, bA, bB, bC], k)
311311
312312
313313 func bD (bs,bt,bu,bv,bw,bx,by) = makeString(["%s%s%s%s%s%s", bs, bt, bu, bv, bw, bx, by], k)
314314
315315
316316 func bE (aa,bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", aa, bF, bG, bH, bI, toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), bO], k)
317317
318318
319319 func bP (bQ,bR) = makeString(["%d%d", toString(bQ), toString(bR)], k)
320320
321321
322322 func bS (aa) = {
323323 let bT = split(aK(au(aa)), k)
324324 let ai = bT[1]
325325 let aj = bT[2]
326326 split(aK(ah(ai, aj)), k)
327327 }
328328
329329
330330 func bU (bV,bW) = {
331331 let bX = valueOrElse(getInteger(this, af(bV)), 0)
332332 let bY = valueOrElse(getInteger(this, Y()), 0)
333333 let bZ = if ((bX == 0))
334334 then {
335335 let ca = (bY + bW)
336336 $Tuple3(ca, [IntegerEntry(Y(), ca), IntegerEntry(af(bV), ca), StringEntry(ad(ca), bV)], true)
337337 }
338338 else $Tuple3(bX, nil, false)
339339 bZ
340340 }
341341
342342
343343 func cb (bo) = {
344344 let cc = split(valueOrElse(getString(S()), l), k)
345345 if (containsElement(cc, toBase58String(bo.callerPublicKey)))
346346 then true
347347 else {
348348 let cd = bp(bo)
349349 if ((cd == cd))
350350 then true
351351 else throw("Strict value is not equal to itself.")
352352 }
353353 }
354354
355355
356356 func ce (aL,cf,cg) = valueOrElse(getInteger(this, aL), valueOrElse(getInteger(this, cf), cg))
357357
358358
359359 func ch (aA,aB) = {
360360 let ai = getInteger(af(aA))
361361 let aj = getInteger(af(aB))
362362 if (if ((ai == unit))
363363 then true
364364 else (aj == unit))
365365 then false
366366 else {
367367 let ci = toString(value(ai))
368368 let cj = toString(value(aj))
369369 let ck = getString(ah(ci, cj))
370370 let cl = getString(ah(cj, ci))
371371 let cm = if ((ck != unit))
372372 then true
373373 else (cl != unit)
374374 cm
375375 }
376376 }
377377
378378
379379 @Callable(bo)
380380 func getSwapContractREADONLY () = $Tuple2(nil, aK(J()))
381381
382382
383383
384384 @Callable(bo)
385385 func getLpAssetFromPoolAssetsREADONLY (cn,co) = if (if ((cn == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
386386 then (co == "WAVES")
387387 else false)
388388 then $Tuple2(nil, unit)
389389 else {
390390 let cp = value(getInteger(this, af(cn)))
391391 let cq = value(getInteger(this, af(co)))
392392 let cr = getString(this, aq(toString(cp), toString(cq)))
393393 let cs = if ((cr == unit))
394394 then unit
395395 else drop(value(cr), 4)
396396 $Tuple2(nil, cs)
397397 }
398398
399399
400400
401401 @Callable(bo)
402402 func getPoolAddressFromLpAssetREADONLY (ct) = $Tuple2(nil, valueOrElse(getString(this, ay(ct)), ""))
403403
404404
405405
406406 @Callable(bo)
407407 func constructor (cu,cv,bu,bv,bw,bx,cw,cx) = {
408408 let cy = bp(bo)
409409 if ((cy == cy))
410410 then [StringEntry(K(), bD(cu, cv, bu, bv, bw, bx, cw)), IntegerEntry(W(), cx)]
411411 else throw("Strict value is not equal to itself.")
412412 }
413413
414414
415415
416416 @Callable(bo)
417417 func constructorV2 (cz) = {
418418 let cy = bp(bo)
419419 if ((cy == cy))
420420 then {
421421 let cA = addressFromPublicKey(fromBase58String(cz))
422422 if ((cA == cA))
423423 then [StringEntry(N(), cz)]
424424 else throw("Strict value is not equal to itself.")
425425 }
426426 else throw("Strict value is not equal to itself.")
427427 }
428428
429429
430430
431431 @Callable(bo)
432432 func constructorV3 (bz,bA,bB,bC) = {
433433 let cy = bp(bo)
434434 if ((cy == cy))
435435 then {
436436 let bc = split(aK(K()), k)
437437 [StringEntry(K(), br(bc[1], bc[2], bc[3], bc[4], bc[5], bc[6], bc[7], bz, bA, bB, bC))]
438438 }
439439 else throw("Strict value is not equal to itself.")
440440 }
441441
442442
443443
444444 @Callable(bo)
445445 func constructorV4 (cB,cC) = {
446446 let cy = bp(bo)
447447 if ((cy == cy))
448448 then [StringEntry(O(), cB), StringEntry(P(), makeString(cC, k))]
449449 else throw("Strict value is not equal to itself.")
450450 }
451451
452452
453453
454454 @Callable(bo)
455455 func constructorV5 (cD) = {
456456 let cy = bp(bo)
457457 if ((cy == cy))
458458 then [StringEntry(T(), cD)]
459459 else throw("Strict value is not equal to itself.")
460460 }
461461
462462
463463
464464 @Callable(bo)
465465 func constructorV6 (cE,cF) = {
466466 let cG = [bp(bo), if ((addressFromString(cE) != unit))
467467 then true
468468 else "invalid voting emission contract address"]
469469 if ((cG == cG))
470470 then [StringEntry(U(), cE), StringEntry(V(), makeString(cF, k))]
471471 else throw("Strict value is not equal to itself.")
472472 }
473473
474474
475475
476476 @Callable(bo)
477477 func setManager (cH) = {
478478 let cy = bp(bo)
479479 if ((cy == cy))
480480 then {
481481 let cI = fromBase58String(cH)
482482 if ((cI == cI))
483483 then [StringEntry(R(), cH)]
484484 else throw("Strict value is not equal to itself.")
485485 }
486486 else throw("Strict value is not equal to itself.")
487487 }
488488
489489
490490
491491 @Callable(bo)
492492 func confirmManager () = {
493493 let cJ = bk()
494494 let cK = if (isDefined(cJ))
495495 then true
496496 else throw("No pending manager")
497497 if ((cK == cK))
498498 then {
499499 let cL = if ((bo.callerPublicKey == value(cJ)))
500500 then true
501501 else throw("You are not pending manager")
502502 if ((cL == cL))
503503 then [StringEntry(Q(), toBase58String(value(cJ))), DeleteEntry(R())]
504504 else throw("Strict value is not equal to itself.")
505505 }
506506 else throw("Strict value is not equal to itself.")
507507 }
508508
509509
510510
511511 @Callable(bo)
512512 func setAdmins (cM) = {
513513 let cy = bp(bo)
514514 if ((cy == cy))
515515 then [StringEntry(S(), makeString(cM, k))]
516516 else throw("Strict value is not equal to itself.")
517517 }
518518
519519
520520
521521 @Callable(bo)
522522 func activateNewPool (aa,bH,bI,cN,cO,cP,bO,cQ) = {
523523 let cy = cb(bo)
524524 if ((cy == cy))
525525 then if (isDefined(getString(au(aa))))
526526 then throw((("Pool address " + aa) + " already registered."))
527527 else {
528528 let cR = bU(bH, 1)
529529 let cS = cR._1
530530 let cT = bU(bI, if (cR._3)
531531 then 2
532532 else 1)
533533 let cU = cT._1
534534 let cV = valueOrErrorMessage(scriptHash(addressFromStringValue(aa)), ("No script has been found on pool account " + aa))
535535 let cW = getBinaryValue(M())
536536 let cX = ch(bH, bI)
537537 if (cX)
538538 then throw((((("Pool " + bH) + "/") + bI) + " has already been activated."))
539539 else {
540540 let cY = value(getString(this, ah(toString(cS), toString(cU))))
541541 let cZ = if ((bH == "WAVES"))
542542 then j
543543 else pow(10, 0, value(assetInfo(fromBase58String(bH))).decimals, 0, 0, DOWN)
544544 let da = if ((bI == "WAVES"))
545545 then j
546546 else pow(10, 0, value(assetInfo(fromBase58String(bI))).decimals, 0, 0, DOWN)
547547 let db = Issue(cN, cO, 1, 8, true)
548548 let bG = calculateAssetId(db)
549549 let dc = toBase58String(bG)
550550 let dd = invoke(addressFromStringValue(aa), "activate", [bH, bI], nil)
551551 if ((dd == dd))
552552 then if ((dd != "success"))
553553 then throw("Pool initialisation error happened.")
554554 else {
555555 let cD = addressFromStringValue(aK(T()))
556556 let de = invoke(cD, "createOrUpdate", [dc, cN, false], nil)
557557 if ((de == de))
558558 then {
559559 let df = invoke(cD, "addLabel", [dc, g], nil)
560560 if ((df == df))
561561 then {
562562 let dg = invoke(cD, "setLogo", [dc, cQ], nil)
563563 if ((dg == dg))
564564 then {
565565 let dh = invoke(cD, "addAssetsLink", [bH, bI, dc], nil)
566566 if ((dh == dh))
567567 then {
568568 let di = invoke(cD, "increaseAssetPoolsNumber", [bH], nil)
569569 if ((di == di))
570570 then $Tuple2(((cR._2 ++ cT._2) ++ [db, Burn(bG, 1), StringEntry(ah(toString(cS), toString(cU)), bE(aa, toString(m), dc, bH, bI, cZ, da, cS, cU, j, bO)), StringEntry(ao(dc), bP(cS, cU)), StringEntry(aq(toString(cS), toString(cU)), ("%s__" + dc)), StringEntry(au(aa), bP(cS, cU)), StringEntry(aw(cS, cU), aa), StringEntry(ay(dc), aa), StringEntry(ax(aa), dc), IntegerEntry(Z(aa), cP), IntegerEntry(at(aa), h)]), dc)
571571 else throw("Strict value is not equal to itself.")
572572 }
573573 else throw("Strict value is not equal to itself.")
574574 }
575575 else throw("Strict value is not equal to itself.")
576576 }
577577 else throw("Strict value is not equal to itself.")
578578 }
579579 else throw("Strict value is not equal to itself.")
580580 }
581581 else throw("Strict value is not equal to itself.")
582582 }
583583 }
584584 else throw("Strict value is not equal to itself.")
585585 }
586586
587587
588588
589589 @Callable(bo)
590590 func managePool (aa,dj) = {
591591 let cy = bp(bo)
592592 if ((cy == cy))
593593 then {
594594 let dk = bS(aa)
595595 let bF = dk[u]
596596 let dc = dk[v]
597597 let bH = dk[w]
598598 let bI = dk[x]
599599 let cZ = parseIntValue(dk[y])
600600 let da = parseIntValue(dk[z])
601601 let cS = parseIntValue(dk[A])
602602 let cU = parseIntValue(dk[B])
603603 let dl = parseIntValue(dk[C])
604604 let bO = dk[D]
605605 [StringEntry(ah(toString(cS), toString(cU)), bE(aa, toString(dj), dc, bH, bI, cZ, da, cS, cU, dl, bO))]
606606 }
607607 else throw("Strict value is not equal to itself.")
608608 }
609609
610610
611611
612612 @Callable(bo)
613613 func emit (dm) = {
614614 let dn = bo.caller
615615 let do = bo.originCaller
616616 let dp = valueOrErrorMessage(getString(ax(toString(dn))), "Invalid LP address called me.")
617617 let dq = fromBase58String(dp)
618618 let cC = split(valueOrElse(getString(P()), l), k)
619619 let cB = addressFromStringValue(valueOrErrorMessage(getString(O()), "Legacy factory contract does not exists."))
620620 if ((0 >= dm))
621621 then nil
622622 else if (containsElement(cC, toString(dn)))
623623 then $Tuple2(nil, cB)
624624 else $Tuple2([Reissue(dq, dm, true), ScriptTransfer(bo.caller, dm, dq)], "success")
625625 }
626626
627627
628628
629629 @Callable(bo)
630630 func burn (dr) = {
631631 let dn = bo.caller
632632 let do = bo.originCaller
633633 let ds = value(bo.payments[0])
634634 let dt = value(ds.amount)
635635 let du = toBase58String(value(ds.assetId))
636636 let dv = valueOrErrorMessage(getString(ax(toString(dn))), "Invalid LP address called me.")
637637 if ((du != dv))
638638 then throw("Invalid asset passed.")
639639 else if ((dr != dt))
640640 then throw("Invalid amount passed.")
641641 else {
642642 let dq = fromBase58String(dv)
643643 $Tuple2([Burn(dq, dr)], "success")
644644 }
645645 }
646646
647647
648648
649649 @Callable(bo)
650650 func modifyWeight (bG,dw) = {
651651 let cy = if ((toBase58String(bo.caller.bytes) == valueOrElse(getString(this, U()), "")))
652652 then true
653653 else bp(bo)
654654 if ((cy == cy))
655655 then {
656656 let av = aK(ay(bG))
657657 let dx = Z(av)
658658 let dy = Z(f)
659659 let dz = valueOrElse(getInteger(dy), 0)
660660 let cP = valueOrElse(getInteger(dx), 0)
661661 let dA = dw
662662 let bc = split(aK(K()), k)
663663 let cu = be(bc)
664664 let dB = invoke(cu, "onModifyWeight", [bG, av], nil)
665665 if ((dB == dB))
666666 then {
667667 let dC = if ((dz == 0))
668668 then nil
669669 else [IntegerEntry(dy, 0)]
670670 let dD = ab(av, 0)
671671 let dE = getInteger(dD)
672672 let dF = if ((dE == unit))
673673 then nil
674674 else [DeleteEntry(dD)]
675675 (([IntegerEntry(dx, dA)] ++ dC) ++ dF)
676676 }
677677 else throw("Strict value is not equal to itself.")
678678 }
679679 else throw("Strict value is not equal to itself.")
680680 }
681681
682682
683683
684684 @Callable(bo)
685685 func modifyWeights (dG,dH,dI,dJ) = {
686686 let cy = bp(bo)
687687 if ((cy == cy))
688688 then {
689689 let dK = ((5 * e) / 100)
690690 let dL = ((5 * e) / 100)
691691 let dM = ((5 * e) / 100)
692692 let bc = split(aK(K()), k)
693693 let dN = be(bc)
694694 let dO = bf(bc)
695695 let dP = Z(dG)
696696 let dQ = Z(dH)
697697 let dR = Z(dI)
698698 let dS = Z(dJ)
699699 let dT = aN(dP)
700700 let dU = aN(dQ)
701701 let dV = (dT - dM)
702702 let dW = (dU - dM)
703703 if ((0 >= dV))
704704 then throw(("invalid btcWeightNew: " + toString(dV)))
705705 else if ((0 >= dW))
706706 then throw(("invalid ethWeightNew: " + toString(dW)))
707707 else {
708708 let dX = aK(ax(dG))
709709 let dY = aK(ax(dH))
710710 let dZ = aK(ax(dI))
711711 let ea = aK(ax(dJ))
712712 let eb = invoke(dN, "onModifyWeight", [dX, dG], nil)
713713 if ((eb == eb))
714714 then {
715715 let ec = invoke(dN, "onModifyWeight", [dY, dH], nil)
716716 if ((ec == ec))
717717 then {
718718 let ed = invoke(dN, "onModifyWeight", [dZ, dI], nil)
719719 if ((ed == ed))
720720 then {
721721 let ee = invoke(dN, "onModifyWeight", [ea, dJ], nil)
722722 if ((ee == ee))
723723 then [IntegerEntry(dP, dV), IntegerEntry(dQ, dW), IntegerEntry(dR, dK), IntegerEntry(dS, dL), IntegerEntry(ab(dG, 0), dT), IntegerEntry(ab(dH, 0), dU), IntegerEntry(ab(dI, 0), dK), IntegerEntry(ab(dJ, 0), dL)]
724724 else throw("Strict value is not equal to itself.")
725725 }
726726 else throw("Strict value is not equal to itself.")
727727 }
728728 else throw("Strict value is not equal to itself.")
729729 }
730730 else throw("Strict value is not equal to itself.")
731731 }
732732 }
733733 else throw("Strict value is not equal to itself.")
734734 }
735735
736736
737737
738738 @Callable(bo)
739739 func checkWxEmissionPoolLabel (aA,aB) = {
740740 let ef = {
741741 let bh = getBoolean(az(aA, aB))
742742 if ($isInstanceOf(bh, "Boolean"))
743743 then {
744744 let eg = bh
745745 eg
746746 }
747747 else false
748748 }
749749 $Tuple2(nil, ef)
750750 }
751751
752752
753753
754754 @Callable(bo)
755755 func setWxEmissionPoolLabel (aA,aB) = {
756756 let cy = cb(bo)
757757 if ((cy == cy))
758758 then $Tuple2([BooleanEntry(az(aA, aB), true)], unit)
759759 else throw("Strict value is not equal to itself.")
760760 }
761761
762762
763763
764764 @Callable(bo)
765765 func deleteWxEmissionPoolLabel (aA,aB) = {
766766 let cy = if (bn(bo))
767767 then true
768768 else cb(bo)
769769 if ((cy == cy))
770770 then $Tuple2([DeleteEntry(az(aA, aB))], unit)
771771 else throw("Strict value is not equal to itself.")
772772 }
773773
774774
775775
776776 @Callable(bo)
777777 func onVerificationLoss (eh) = {
778778 let cy = if ((toBase58String(bo.caller.bytes) == valueOrElse(getString(this, T()), "")))
779779 then true
780780 else bp(bo)
781781 if ((cy == cy))
782782 then {
783783 let cF = bg()
784784 let ei = if ((size(cF) > 0))
785785 then true
786786 else throw("invalid price assets")
787787 if ((ei == ei))
788788 then {
789789 func ej (ek,el) = {
790790 let em = invoke(this, "deleteWxEmissionPoolLabel", [eh, el], nil)
791791 if ((em == em))
792792 then unit
793793 else throw("Strict value is not equal to itself.")
794794 }
795795
796796 let en = {
797797 let eo = cF
798798 let ep = size(eo)
799799 let eq = unit
800800 func er (es,et) = if ((et >= ep))
801801 then es
802802 else ej(es, eo[et])
803803
804804 func eu (es,et) = if ((et >= ep))
805805 then es
806806 else throw("List size exceeds 2")
807807
808808 eu(er(er(eq, 0), 1), 2)
809809 }
810810 if ((en == en))
811811 then $Tuple2(nil, unit)
812812 else throw("Strict value is not equal to itself.")
813813 }
814814 else throw("Strict value is not equal to itself.")
815815 }
816816 else throw("Strict value is not equal to itself.")
817817 }
818818
819819
820820
821821 @Callable(bo)
822822 func isPoolOneTokenOperationsDisabledREADONLY (aa) = {
823823 let dk = bS(aa)
824824 let al = $Tuple2(parseIntValue(dk[A]), parseIntValue(dk[B]))
825825 let ev = valueOrElse(getBoolean(ak(al)), false)
826826 let ew = valueOrElse(getBoolean(an()), false)
827827 $Tuple2(nil, if (ew)
828828 then true
829829 else ev)
830830 }
831831
832832
833833
834834 @Callable(bo)
835835 func getInFeeREADONLY (aa) = {
836836 let ex = ce(aC(aa), aD(), 0)
837837 $Tuple2(nil, ex)
838838 }
839839
840840
841841
842842 @Callable(bo)
843843 func getOutFeeREADONLY (aa) = {
844844 let ex = ce(aE(aa), aF(), fraction(10, b, 10000))
845845 $Tuple2(nil, ex)
846846 }
847847
848848
849849
850850 @Callable(bo)
851851 func poolInfoREADONLY (ey,ez) = {
852852 let eA = getInteger(this, af(ey))
853853 let eB = getInteger(this, af(ez))
854854 let eC = getString(this, aw(value(eA), value(eB)))
855855 let eD = getString(this, ax(value(eC)))
856856 let cX = if (if (isDefined(eA))
857857 then isDefined(eB)
858858 else false)
859859 then isDefined(eC)
860860 else false
861861 let eE = if (cX)
862862 then $Tuple2(addressFromStringValue(value(eC)), aO(value(eD)))
863863 else unit
864864 $Tuple2(nil, eE)
865865 }
866866
867867
868868
869869 @Callable(bo)
870870 func getPoolStatusREADONLY (aa) = {
871871 let bT = split(aK(au(aa)), k)
872872 let ai = bT[1]
873873 let aj = bT[2]
874874 let ck = split(aK(ah(ai, aj)), k)
875875 $Tuple2(nil, parseIntValue(ck[u]))
876876 }
877877
878878
879879
880880 @Callable(bo)
881881 func getPoolConfigREADONLY (aa) = {
882882 let bT = split(aK(au(aa)), k)
883883 let ai = bT[1]
884884 let aj = bT[2]
885885 let ck = split(aK(ah(ai, aj)), k)
886886 $Tuple2(nil, ck)
887887 }
888888
889889
890890
891891 @Callable(bo)
892-func getPoolConfigByLpAssetId (dc) = {
892+func getPoolConfigByLpAssetIdREADONLY (dc) = {
893893 let bT = split(aK(ao(dc)), k)
894894 let ai = bT[1]
895895 let aj = bT[2]
896896 let ck = split(aK(ah(ai, aj)), k)
897897 $Tuple2(nil, ck)
898898 }
899899
900900
901901
902902 @Callable(bo)
903903 func poolExistsREADONLY (aA,aB) = $Tuple2(nil, ch(aA, aB))
904904
905905
906906
907907 @Callable(bo)
908908 func skipOrderValidationREADONLY (aa) = $Tuple2(nil, valueOrElse(getBoolean(aG(aa)), false))
909909
910910
911911
912912 @Callable(bo)
913913 func getChangeAmpConfigREADONLY (aa) = {
914914 let eF = getIntegerValue(aH(aa))
915915 let eG = getIntegerValue(aI(aa))
916916 let eH = getIntegerValue(aJ(aa))
917917 $Tuple2(nil, [eF, eG, eH])
918918 }
919919
920920
921921 @Verifier(eI)
922922 func eJ () = {
923923 let eK = {
924924 let bh = bj()
925925 if ($isInstanceOf(bh, "ByteVector"))
926926 then {
927927 let bq = bh
928928 bq
929929 }
930930 else if ($isInstanceOf(bh, "Unit"))
931931 then eI.senderPublicKey
932932 else throw("Match error")
933933 }
934934 sigVerify(eI.bodyBytes, eI.proofs[0], eK)
935935 }
936936

github/deemru/w8io/169f3d6 
111.22 ms