tx · BfbNtXP83QcrBGqDv5fASJi9gA7Y2jaNkQfweEzRNDpG

3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT:  -0.03500000 Waves

2023.01.20 12:06 [2413082] smart account 3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT > SELF 0.00000000 Waves

{ "type": 13, "id": "BfbNtXP83QcrBGqDv5fASJi9gA7Y2jaNkQfweEzRNDpG", "fee": 3500000, "feeAssetId": null, "timestamp": 1674205568013, "version": 2, "chainId": 84, "sender": "3N7b3kPunHUXhZp1vMG9NhPMARNEprCMWxT", "senderPublicKey": "AYbpHveq7zviKTDV7SGTB1pZGFbkumgfq3jSwVv6BznT", "proofs": [ "EFHHwB1BPKPQwJ4Vwp3zVjdfLtcEqA2imjEf3hzka3GuasAmkoTWUSPJkAmHVFsi9C4kAZcaWCg2QMqHMX6tHbD" ], "script": "base64:BgK7LAgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIGc2NhbGU4IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgt3YXZlc1N0cmluZyIDU0VQIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIgZrZXlLTHAiFWtleUtMcFJlZnJlc2hlZEhlaWdodCISa2V5S0xwUmVmcmVzaERlbGF5IhZrTHBSZWZyZXNoRGVsYXlEZWZhdWx0Ig9rTHBSZWZyZXNoRGVsYXkiEGtleUZhY3RvcnlDb25maWciDWtleU1hdGNoZXJQdWIiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIMZ2V0SW50T3JGYWlsIgh0aHJvd0VyciIDbXNnIgZmbXRFcnIiD2ZhY3RvcnlDb250cmFjdCITZmVlQ29sbGVjdG9yQWRkcmVzcyIFaW5GZWUiAUAiBm91dEZlZSIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA4NDA4ODU3NCINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiEHByaXZhdGVDYWxjUHJpY2UiCmFtQXNzZXREY20iCnByQXNzZXREY20iBWFtQW10IgVwckFtdCIOYW10QXNzZXRBbXRYMTgiEHByaWNlQXNzZXRBbXRYMTgiCmNhbGNQcmljZXMiBWxwQW10IgNjZmciC2FtdEFzc2V0RGNtIg1wcmljZUFzc2V0RGNtIghwcmljZVgxOCIIbHBBbXRYMTgiE2xwUHJpY2VJbkFtQXNzZXRYMTgiE2xwUHJpY2VJblByQXNzZXRYMTgiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiB2NhbGNLTHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIQYW1vdW50QmFsYW5jZVgxOCIPcHJpY2VCYWxhbmNlWDE4Igp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIxMzI2MjE1MzgiA2tMcCINJHQwMjIwMDkyMjEwOSINdW51c2VkQWN0aW9ucyIGa0xwTmV3Ig0kdDAyMjExMjIyMTc0Ig51bnVzZWRBY3Rpb25zMCIKa0xwQ3VycmVudCIMaXNPcmRlclZhbGlkIhBhbW91bnRCYWxhbmNlTmV3Ig9wcmljZUJhbGFuY2VOZXciAWsiBGtOZXciBGluZm8iCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDI1NTkxMjU4ODQiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjU4ODgyNjAzNyIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDI2MTY5MjYyMzMiDXBheW1lbnRBbW91bnQiC3ByaWNlTmV3WDE4IghwcmljZU5ldyIOcGF5bWVudEJhbGFuY2UiFHBheW1lbnRCYWxhbmNlQmlnSW50IgxzdXBwbHlCaWdJbnQiC2NoZWNoU3VwcGx5Ig1kZXBvc2l0QmlnSW50Igtpc3N1ZUFtb3VudCILcHJpY2VPbGRYMTgiCHByaWNlT2xkIgRsb3NzIg0kdDAyNzkxNDI4MDgxIgdiYWxhbmNlIg9pc3N1ZUFtb3VudEJvdGgiD2NhbGNHZXRPbmVUb2tlbiIKb3V0QXNzZXRJZCIGY2hlY2tzIhBvdXRJbkFtb3VudEFzc2V0Ig1iYWxhbmNlQmlnSW50IhhvdXRJbkFtb3VudEFzc2V0RGVjaW1hbHMiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAzMDE1OTMwMjE1Igt0b3RhbEFtb3VudCINJHQwMzAyMTkzMDQ0NSILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIJaXNNYW5hZ2VyIgJwayILbXVzdE1hbmFnZXIiAnBkIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiINJHQwMzQ5NzMzNTQzNSIRcmVmcmVzaEtMcEFjdGlvbnMiEWlzVXBkYXRlZEtMcFZhbGlkIgttYXhTbGlwcGFnZSINJHQwMzU5OTczNjA2MiIMbWluT3V0QW1vdW50IglhdXRvU3Rha2UiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg1pc1B1dERpc2FibGVkIgdwYXltZW50Ig0kdDAzNzI1MDM3NDAyIgVib251cyITZW1pdEFtb3VudEVzdGltYXRlZCIKZW1pdEFtb3VudCIIc3Rha2VJbnYiB3NlbmRGZWUiDSR0MDM3OTg4MzgxODUiDSR0MDM4MTg4MzgyOTYiDSR0MDM4NjAyMzg3NTkiDW91dEFzc2V0SWRTdHIiDWlzR2V0RGlzYWJsZWQiDSR0MDM5NjQ0Mzk3OTciD2Ftb3VudEVzdGltYXRlZCIHYnVybkludiINYXNzZXRUcmFuc2ZlciINJHQwNDAyOTc0MDU0NCIQZmVlQW1vdW50Rm9yQ2FsYyINJHQwNDA1NDc0MDY1NSINJHQwNDA5MTI0MTA2OCINdW5zdGFrZUFtb3VudCIKdW5zdGFrZUludiINJHQwNDE5NzM0MjEyNCINJHQwNDI2MTk0Mjg2NiINJHQwNDI4Njk0Mjk3NyIJb3V0QW10QW10IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNDM5MjM0NDAwNSISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNDQ5NTQ0NTAzNSINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA0NjE2MTQ2MjQyIhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNDc1Mzc0NzYxOCILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDQ4ODA1NDg4NjkiEGtMcFVwZGF0ZUFjdGlvbnMiBnByaWNlcyIKYW10QXNzZXRJZCIMcHJpY2VBc3NldElkIg1wb29sTFBCYWxhbmNlIhJhY2NBbXRBc3NldEJhbGFuY2UiFGFjY1ByaWNlQXNzZXRCYWxhbmNlIgpwcmljZXNMaXN0Ig9scEFtdEFzc2V0U2hhcmUiEWxwUHJpY2VBc3NldFNoYXJlIgpwb29sV2VpZ2h0IgxjdXJQcmljZUNhbGMiDGFtQmFsYW5jZVJhdyIMcHJCYWxhbmNlUmF3Ig9hbUJhbGFuY2VSYXdYMTgiD3ByQmFsYW5jZVJhd1gxOCIQcGF5bWVudExwQXNzZXRJZCIMcGF5bWVudExwQW10IgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiDSR0MDU3NTMxNTc2MDAiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaGYAAWEAgMLXLwABYgkAtgIBAICAkLu61q3wDQABYwkAtgIBAAAAAWQJALYCAQAAAAFlCQC2AgEAAQABZgkAtgIBAAIAAWcCBVdBVkVTAAFoAgJfXwABaQACAAFqAAMAAWsABAABbAABAAFtAAIAAW4AAwABbwAEAAFwAAUAAXEABgABcgAHAAFzAAgAAXQACQABdQABAAF2AAcBAXcCAXgBeQkAvAIDCQC2AgEFAXgFAWIJALYCAQUBeQEBegIBeAF5CQC8AgMFAXgFAWIFAXkBAUECAUIBQwkAoAMBCQC8AgMFAUIJALYCAQUBQwUBYgEBRAMBQgFDAUUJAKADAQkAvQIEBQFCCQC2AgEFAUMFAWIFAUUBAUYBAUIDCQC/AgIFAWMFAUIJAL4CAQUBQgUBQgEBRwACEyVzX19mYWN0b3J5Q29udHJhY3QBAUgAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBSQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBSgACESVzJXNfX3ByaWNlX19sYXN0AQFLAgFMAU0JALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFMCQDMCAIJAKQDAQUBTQUDbmlsBQFoAQFOAgFPAVAJAKwCAgkArAICCQCsAgICCyVzJXMlc19fUF9fBQFPAgJfXwUBUAEBUQIBTwFQCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX0dfXwUBTwICX18FAVABAVIAAg8lc19fYW1vdW50QXNzZXQBAVMAAg4lc19fcHJpY2VBc3NldAABVAIHJXNfX2ZlZQABVQkAawMACgUBYQCQTgABVgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFUBQFVAAFXCQC5CQIJAMwIAgICJXMJAMwIAgIDa0xwBQNuaWwFAWgAAVgJALkJAgkAzAgCAgIlcwkAzAgCAhJrTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBaAABWQkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hLTHBEZWxheQUDbmlsBQFoAAFaAB4AAmFhCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAVkFAVoBAmFiAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFjAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhZAICYWUCYWYJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFlAgJfXwUCYWYCCF9fY29uZmlnAQJhZwECYWgJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYWgBAmFpAAIMJXNfX3NodXRkb3duAQJhagECYWsJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhawECYWwAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYW0CFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhbgQCYW8CYXACYXECYXIJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIkb3JkZXIgdmFsaWRhdGlvbiBmYWlsZWQ6IG9yZGVyVmFsaWQ9CQClAwEFAmFvAgIgKAUCYXACASkCDSBzZW5kZXJWYWxpZD0JAKUDAQUCYXECDiBtYXRjaGVyVmFsaWQ9CQClAwEFAmFyAQJhcwICYXQCYXUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhdAUCYXUJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYXQJAMwIAgIBLgkAzAgCBQJhdQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhdgICYXQCYXUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJhdAUCYXUJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYXQJAMwIAgIBLgkAzAgCBQJhdQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQJhdwECYXgJAAIBCQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYXgFA25pbAIBIAECYXkBAmF4CQC5CQIJAMwIAgIIbHAucmlkZToJAMwIAgUCYXgFA25pbAIBIAACYXoJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhcwIFBHRoaXMJAQFHAAACYUEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhcwIFAmF6BQJhbQACYUIKAAJhQwkA/AcEBQJhegIQZ2V0SW5GZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFDAgNJbnQFAmFDCQACAQkArAICCQADAQUCYUMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAACYUQKAAJhQwkA/AcEBQJhegIRZ2V0T3V0RmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhQwIDSW50BQJhQwkAAgEJAKwCAgkAAwEFAmFDAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmFFAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhegkBAmFpAAcBAmFGAAkA2QQBCQECYXMCBQJhegkBAmFjAAECYUcABAJhSAkBAmFzAgUEdGhpcwkBAVIABAJhSQkBAmFzAgUEdGhpcwkBAVMABAJhZgkBAmF2AgUCYXoJAQJhZwEFAmFJBAJhZQkBAmF2AgUCYXoJAQJhZwEFAmFICQC1CQIJAQJhcwIFAmF6CQECYWQCCQCkAwEFAmFlCQCkAwEFAmFmBQFoAQJhSgECYUsDCQAAAgUCYUsFAWcFBHVuaXQJANkEAQUCYUsBAmFMAQJhSwMJAAACBQJhSwUEdW5pdAUBZwkA2AQBCQEFdmFsdWUBBQJhSwECYU0BAmFOCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYU4FAWwJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBbQkA2QQBCQCRAwIFAmFOBQFuCQECYUoBCQCRAwIFAmFOBQFvCQECYUoBCQCRAwIFAmFOBQFwCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYU4FAXEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTgUBcgACYU8JAQJhTQEJAQJhRwAAAmFQBQJhTwACYVEIBQJhUAJfMgACYVIIBQJhUAJfMwACYVMIBQJhUAJfNAACYVQIBQJhUAJfNQACYVUIBQJhUAJfNgACYVYIBQJhUAJfNwECYVcACQC1CQIJAQJhcwIFAmF6CQECYWIABQFoAAJhWAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFXAAUBdQIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYVkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJhVwAFAXYCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmFaCgJiYQJiYgJiYwJiZAJiZQJiZgJiZwJiaAJiaQJiagkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYmEJAMwIAgkApAMBBQJiYgkAzAgCCQCkAwEFAmJjCQDMCAIJAKQDAQUCYmQJAMwIAgkApAMBBQJiZQkAzAgCCQCkAwEFAmJmCQDMCAIJAKQDAQUCYmcJAMwIAgkApAMBBQJiaAkAzAgCCQCkAwEFAmJpCQDMCAIJAKQDAQUCYmoFA25pbAUBaAECYmsGAmJsAmJtAmJuAmJkAmJnAmJoCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYmwJAMwIAgkApAMBBQJibQkAzAgCCQCkAwEFAmJuCQDMCAIJAKQDAQUCYmQJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJoBQNuaWwFAWgBAmJvAQJicAMJAAACBQJicAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYnABAmJxAgJicgJicwkAvAIDBQJicgUBYgUCYnMBAmJ0AwJicgJicwFFCQC9AgQFAmJyBQFiBQJicwUBRQECYnUEAmJ2AmJ3AmJ4AmJ5BAJiegkBAXcCBQJieAUCYnYEAmJBCQEBdwIFAmJ5BQJidwkBAmJxAgUCYkEFAmJ6AQJiQgMCYngCYnkCYkMEAmJECQECYUcABAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFxBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFyBAJiRwkBAmJ1BAUCYkUFAmJGBQJieAUCYnkEAmJzCQEBdwIFAmJ4BQJiRQQCYnIJAQF3AgUCYnkFAmJGBAJiSAkBAXcCBQJiQwUBYQQCYkkJAQJicQIFAmJzBQJiSAQCYkoJAQJicQIFAmJyBQJiSAkAzAgCBQJiRwkAzAgCBQJiSQkAzAgCBQJiSgUDbmlsAQJiSwQCYkwCYk0CYk4BTwQCYkQJAQJhRwAEAmJPCQCRAwIFAmJEBQFuBAJiUAkAkQMCBQJiRAUBbwQCYlEJAJEDAgUCYkQFAXAEAmJ2CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJ3CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmJSCQCRAwIFAmJEBQFtBAJiUwgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmJPCQCsAgIJAKwCAgIGQXNzZXQgBQJiTwIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJiTwUCYk0JAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmJUCQECYm8BBQJiUAQCYlUJAQF3AgUCYlQFAmJ2BAJiVgkBAmJvAQUCYlEEAmJXCQEBdwIFAmJWBQJidwQCYlgJAQJicQIFAmJXBQJiVQQCYlkJAQFBAgUCYlgFAWEEAmJaCQEBdwIFAmJOBQFhBAJjYQkBAXcCBQJiUwUBYQQCY2IJALwCAwUCYlUFAmJaBQJjYQQCY2MJALwCAwUCYlcFAmJaBQJjYQQCY2QJAQFEAwUCY2IFAmJ2BQVGTE9PUgQCY2UJAQFEAwUCY2MFAmJ3BQVGTE9PUgQCY2YDCQAAAgUCYkwCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAU8FAmNkAwkAAAIFAmJQAgVXQVZFUwUEdW5pdAkA2QQBBQJiUAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFPBQJjZQMJAAACBQJiUQIFV0FWRVMFBHVuaXQJANkEAQUCYlEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVECCQClCAEFAU8FAmJMCQECYmsGBQJjZAUCY2UFAmJOBQJiWQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUoABQJiWQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUsCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJiWQUDbmlsCQCcCgoFAmNkBQJjZQUCYlAFAmJRBQJiVAUCYlYFAmJTBQJiWAUCYlIFAmNmAQJjZwkCYkwCY2gCY2kCY2oCY2sCY2wBTwJjbQJjbgQCYkQJAQJhRwAEAmJPCQDZBAEJAJEDAgUCYkQFAW4EAmNvCQCRAwIFAmJEBQFvBAJjcAkAkQMCBQJiRAUBcAQCY3EJAJEDAgUCYkQFAXMEAmNyCQCRAwIFAmJEBQF0BAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFxBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFyBAJiUgkAkQMCBQJiRAUBbQQCYlMICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYk8JAKwCAgkArAICAgZBc3NldCAJANgEAQUCYk8CDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjcwkA2AQBCQELdmFsdWVPckVsc2UCBQJjagkA2QQBAgVXQVZFUwQCY3QJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY2wJANkEAQIFV0FWRVMDAwkBAiE9AgUCY28FAmNzBgkBAiE9AgUCY3AFAmN0CQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCYlQDBQJjbQkBAmJvAQUCY28JAGUCCQECYm8BBQJjbwUCY2kEAmJWAwUCY20JAQJibwEFAmNwCQBlAgkBAmJvAQUCY3AFAmNrBAJjdQkBAXcCBQJjaQUCYkUEAmN2CQEBdwIFAmNrBQJiRgQCY3cJAQJicQIFAmN2BQJjdQQCYlUJAQF3AgUCYlQFAmJFBAJiVwkBAXcCBQJiVgUCYkYEAmN4AwkAAAIFAmJTAAAEAmJYBQFjBAJjeQUBYwQCYkgJAHYGCQC5AgIFAmN1BQJjdgAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUECBQJiSAUBYQkBAUECBQJjdQUCYkUJAQFBAgUCY3YFAmJGCQECYnECCQC3AgIFAmJXBQJjdgkAtwICBQJiVQUCY3UFAmN5BAJiWAkBAmJxAgUCYlcFAmJVBAJjeQkAvAIDCQEBRgEJALgCAgUCYlgFAmN3BQFiBQJiWAQCY3oJAQF3AgUCY2gFAWEDAwkBAiE9AgUCYlgFAWMJAL8CAgUCY3kFAmN6BwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJjeQIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmN6BAJjYQkBAXcCBQJiUwUBYQQCY0EJAL0CBAUCY3UJAQJidAMFAmJXBQJiVQUHQ0VJTElORwUBYgUHQ0VJTElORwQCY0IJAL0CBAUCY3YFAWIJAQJidAMFAmJXBQJiVQUFRkxPT1IFB0NFSUxJTkcEAmNDAwkAvwICBQJjQQUCY3YJAJQKAgUCY0IFAmN2CQCUCgIFAmN1BQJjQQQCY0QIBQJjQwJfMQQCY0UIBQJjQwJfMgQCYkgJAL0CBAUCY2EFAmNFBQJiVwUFRkxPT1IJAJcKBQkBAUQDBQJiSAUBYQUFRkxPT1IJAQFEAwUCY0QFAmJFBQdDRUlMSU5HCQEBRAMFAmNFBQJiRgUHQ0VJTElORwUCYlgFAmN5BAJjRggFAmN4Al8xBAJjRwgFAmN4Al8yBAJjSAgFAmN4Al8zBAJiWQkBAUECCAUCY3gCXzQFAWEEAmNJCQEBQQIIBQJjeAJfNQUBYQMJAGcCAAAFAmNGCQACAQI2SW52YWxpZCBjYWxjdWxhdGlvbnMuIExQIGNhbGN1bGF0ZWQgaXMgbGVzcyB0aGFuIHplcm8uBAJjSgMJAQEhAQUCY24AAAUCY0YEAmNLCQBlAgUCY2kFAmNHBAJjTAkAZQIFAmNrBQJjSAQCY00JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFKAAUCYlkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFLAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYlkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU4CBQFPBQJiTAkBAmFaCgUCY0cFAmNIBQJjSgUCYlkFAmNoBQJjSQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY0sFAmNMBQNuaWwJAJ8KDQUCY0YFAmNKBQJiWQUCYlQFAmJWBQJiUwUCYk8FAmJSBQJjTQUCY0sFAmNMBQJjagUCY2wBAmNOAwJjTwJjUAJiUwQCY1EJAQF6AgUCY08JALYCAQUCYVUEAmNSCQEBegIFAmNQCQC2AgEFAmFWBAJjUwkAvAIDCQB2BgkAuQICBQJjUQUCY1IAAAkAtgIBAAUAAQASBQRET1dOBQFlBQJiUwMJAAACBQJiUwUBZAUBZAUCY1MBAmNUAwJjVQJjVgJjVwQCY1gJALgCAgkAtgIBCQECYm8BCQECYUwBBQJhUwUCY1UEAmNZCQC4AgIJALYCAQkBAmJvAQkBAmFMAQUCYVQFAmNWBAJjWgkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmFSCHF1YW50aXR5BQJjVwQCZGEJAQJjTgMFAmNYBQJjWQUCY1oFAmRhAQJkYgMCZGMCZGQCY1cEAmNYCQBkAgkBAmJvAQkBAmFMAQUCYVMFAmRjBAJjWQkAZAIJAQJibwEJAQJhTAEFAmFUBQJkZAQCY1oJAGQCCAkBBXZhbHVlAQkA7AcBBQJhUghxdWFudGl0eQUCY1cEAmNTCQECY04DCQC2AgEFAmNYCQC2AgEFAmNZCQC2AgEFAmNaBAJkZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBWAUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAVcJAKYDAQUCY1MFA25pbAkAlAoCBQJkZQUCY1MBAmRmAgJkZwJjUwMJAMACAgUCY1MFAmRnBgkBAmF3AQkAuQkCCQDMCAICInVwZGF0ZWQgS0xwIGxvd2VyIHRoYW4gY3VycmVudCBLTHAJAMwIAgkApgMBBQJkZwkAzAgCCQCmAwEFAmNTBQNuaWwCASABAmRoAQJkaQQCZGoIBQJkaQZhbW91bnQEAmRrCQBuBAgFAmRpBmFtb3VudAgFAmRpBXByaWNlBQFhBQVGTE9PUgQCZGwDCQAAAggFAmRpCW9yZGVyVHlwZQUDQnV5CQCUCgIFAmRqCQEBLQEFAmRrCQCUCgIJAQEtAQUCZGoFAmRrBAJkYwgFAmRsAl8xBAJkZAgFAmRsAl8yAwMDCQECYUUABgkAAAIFAmFRBQFqBgkAAAIFAmFRBQFrCQACAQIcRXhjaGFuZ2Ugb3BlcmF0aW9ucyBkaXNhYmxlZAMDCQECIT0CCAgFAmRpCWFzc2V0UGFpcgthbW91bnRBc3NldAUCYVMGCQECIT0CCAgFAmRpCWFzc2V0UGFpcgpwcmljZUFzc2V0BQJhVAkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmRtCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAVcJAQJheQECD2tMcCBpcyByZXF1aXJlZAkBAmF5AQILaW52YWxpZCBrTHAEAmRuCQECZGIDBQJkYwUCZGQAAAQCZG8IBQJkbgJfMQQCZHAIBQJkbgJfMgQCZHEJAQJkYgMAAAAAAAAEAmRyCAUCZHECXzEEAmRzCAUCZHECXzIEAmR0CQDAAgIFAmRwBQJkbQQCY08JAQJibwEJAQJhTAEFAmFTBAJjUAkBAmJvAQkBAmFMAQUCYVQEAmNRCQEBdwIFAmNPBQJhVQQCZHUJAGQCBQJjTwUCZGMEAmNSCQEBdwIFAmNQBQJhVgQCZHYJAGQCBQJjUAUCZGQEAmR3CQBsBgkAaAIFAmNPBQJjUAAAAAUAAQASBQRET1dOBAJkeAkAbAYJAGgCBQJkdQUCZHYAAAAFAAEAEgUERE9XTgQCZHkJALkJAgkAzAgCCQCmAwEFAmRtCQDMCAIJAKYDAQUCZHAJAMwIAgkApAMBBQJkdwkAzAgCCQCkAwEFAmR4BQNuaWwCASAJAJQKAgUCZHQFAmR5AQJkegECZEEDCQECIT0CCQCQAwEIBQJkQQhwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmRCCQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwAABAJiTQkBBXZhbHVlAQgFAmRCB2Fzc2V0SWQEAmRDCAUCZEIGYW1vdW50BAJjeAkBAmJLBAkA2AQBCAUCZEENdHJhbnNhY3Rpb25JZAkA2AQBBQJiTQUCZEMIBQJkQQZjYWxsZXIEAmNkCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmJSCQENcGFyc2VJbnRWYWx1ZQEIBQJjeAJfOQQCY2YIBQJjeANfMTADAwkBAmFFAAYJAAACBQJiUgUBawkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlIJAJcKBQUCY2QFAmNlBQJkQwUCYk0FAmNmAQJkRAMCZEECY2gCY24DCQECIT0CCQCQAwEIBQJkQQhwYXltZW50cwACCQACAQIfZXhhY3RseSAyIHBheW1lbnRzIGFyZSBleHBlY3RlZAQCZEUJAQV2YWx1ZQEJAJEDAggFAmRBCHBheW1lbnRzAAAEAmRGCQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwABBAJkRwkBAmNnCQkA2AQBCAUCZEENdHJhbnNhY3Rpb25JZAUCY2gIBQJkRQZhbW91bnQIBQJkRQdhc3NldElkCAUCZEYGYW1vdW50CAUCZEYHYXNzZXRJZAkApQgBCAUCZEEGY2FsbGVyBwUCY24EAmJSCQENcGFyc2VJbnRWYWx1ZQEIBQJkRwJfOAMDAwkBAmFFAAYJAAACBQJiUgUBaQYJAAACBQJiUgUBawkAAgEJAKwCAgIsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlIFAmRHAQJkSAECZEkEAmRKCQD8BwQFAmF6AgRlbWl0CQDMCAIFAmRJBQNuaWwFA25pbAMJAAACBQJkSgUCZEoEAmRLBAJkTAUCZEoDCQABAgUCZEwCB0FkZHJlc3MEAmRNBQJkTAkA/AcEBQJkTQIEZW1pdAkAzAgCBQJkSQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZEsFAmRLBQJkSQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZE4CAmRJAVYEAmRPAwkAAAIFAVYAAAAACQBrAwUCZEkFAVYFAWEJAJQKAgkAZQIFAmRJBQJkTwUCZE8BAmRQBAJkUQJkUgFPAVAEAmRTCQAAAgUBUAUEdW5pdAQCZFQJAQJibwEJAQJhTAEFAmFTBAJkVQkBAmJvAQkBAmFMAQUCYVQEAmRWAwkAAAIFAmRSBQJhUwYDCQAAAgUCZFIFAmFUBwkBAmF3AQINaW52YWxpZCBhc3NldAQCZFcDBQJkUwkAlAoCBQJkVAUCZFUDBQJkVgkAlAoCCQBlAgUCZFQFAmRRBQJkVQkAlAoCBQJkVAkAZQIFAmRVBQJkUQQCZFgIBQJkVwJfMQQCZFkIBQJkVwJfMgQCZFoDBQJkVgkAlAoCBQJkUQAACQCUCgIAAAUCZFEEAmVhCAUCZFoCXzEEAmViCAUCZFoCXzIEAmRqCAkBAmROAgUCZWEFAmFCAl8xBAJkawgJAQJkTgIFAmViBQJhQgJfMQQCZWMJAQJkTgIFAmRRBQJhQgQCZWQIBQJlYwJfMQQCZE8IBQJlYwJfMgQCZHUJAGQCBQJkWAUCZGoEAmR2CQBkAgUCZFkFAmRrBAJlZQkBAmJxAgkBAXcCBQJkdgUCYVYJAQF3AgUCZHUFAmFVBAJlZgkBAUECBQJlZQUBYQQCZWcDBQJkVgUCZFgFAmRZBAJlaAkAtgIBBQJlZwQCZWkJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhUgkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJhUgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVqAwkAvwICBQJlaQUBZAYJAQJhdwECImluaXRpYWwgZGVwb3NpdCByZXF1aXJlcyBhbGwgY29pbnMDCQAAAgUCZWoFAmVqBAJlawkAtgIBBQJlZAQCZWwJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZWkJALgCAgkBCnNxcnRCaWdJbnQECQC3AgIFAWIJALoCAgkAuQICBQJlawUBYgUCZWgAEgASBQRET1dOBQFiBQFiBQNuaWwEAmNNAwUCZFMFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUoABQJlZgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUsCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlZgkAzAgCCQELU3RyaW5nRW50cnkCCQEBTgIJAKUIAQkBBXZhbHVlAQUBTwkA2AQBCQEFdmFsdWUBBQFQCQECYVoKBQJlYQUCZWIFAmVsBQJlZgAAAAAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAAAAAABQNuaWwEAmVtCQECYnECCQEBdwIFAmRZBQJhVgkBAXcCBQJkWAUCYVUEAmVuCQEBQQIFAmVtBQFhBAJlbwQCZXADBQJkVgkAlAoCBQJlYQUCZFgJAJQKAgUCZWIFAmRZBAJkSQgFAmVwAl8xBAJlcQgFAmVwAl8yBAJlcgkAoAMBCQC8AgMFAmVpCQC2AgEJAGkCBQJkSQACCQC2AgEFAmVxCQBrAwkAZQIFAmVsBQJlcgUBYQUCZXIJAJcKBQUCZWwFAmNNBQJkTwUCZW8FAmRWCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlcwUCZXQCZWQCZFIBTwFQBAJkUwkAAAIFAVAFBHVuaXQEAmJECQECYUcABAJiRQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFxBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJEBQFyBAJldQkAzAgCAwkAAAIFAmRSBQJhUgYJAQJhdwECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJldQUCZXUEAmV2AwkAAAIFAmV0BQJhUwYDCQAAAgUCZXQFAmFUBwkBAmF3AQINaW52YWxpZCBhc3NldAQCZXcDBQJldgkAtgIBCQECYm8BCQECYUwBBQJhUwkAtgIBCQECYm8BCQECYUwBBQJhVAQCZXgDBQJldgUCYkUFAmJGBAJleQkBAmJvAQkBAmFMAQUCYVMEAmV6CQECYm8BCQECYUwBBQJhVAQCZUEDBQJldgUCZXkFAmV6BAJlQgkAtgIBBQJlQQQCZWkJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJhUgkArAICCQCsAgICBmFzc2V0IAkA2AQBBQJhUgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmVDCQC2AgEFAmVkBAJlRAkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJldwkAuAICBQFiCQB2BgkAuAICBQFiCQC6AgIJALkCAgUCZUMFAWIFAmVpABIFAWYAAAASBQRET1dOBQFiBQNuaWwEAmVFCQECZE4CBQJlRAUCYUQEAmVGCAUCZUUCXzEEAmRPCAUCZUUCXzIEAmVHAwUCZXYJAJYKBAUCZUYAAAkAZQIFAmV5BQJlRAUCZXoJAJYKBAAABQJlRgUCZXkJAGUCBQJlegUCZUQEAmVICAUCZUcCXzEEAmVJCAUCZUcCXzIEAmVKCAUCZUcCXzMEAmVLCAUCZUcCXzQEAmVlCQECYnECCQEBdwIFAmVLBQJhVgkBAXcCBQJlSgUCYVUEAmVmCQEBQQIFAmVlBQFhBAJjTQMFAmRTBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVECCQClCAEJAQV2YWx1ZQEFAU8JANgEAQkBBXZhbHVlAQUBUAkBAmJrBgUCZUgFAmVJBQJlZAUCZWYFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFKAAUCZWYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFLAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWYFA25pbAQCZW0JAQJicQIJAQF3AgUCZXoFAmFWCQEBdwIFAmV5BQJhVQQCZW4JAQFBAgUCZW0FAWEEAmVvBAJlTAkAaAIJAKADAQkAvAIDBQJldwUCZUMFAmVpAAIJAGsDCQBlAgUCZUYFAmVMBQFhBQJlTAkAlwoFBQJlRgUCY00FAmRPBQJlbwUCZXYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmVNAAQCZEwJAKIIAQkBAUgAAwkAAQIFAmRMAgZTdHJpbmcEAmVOBQJkTAkA2QQBBQJlTgMJAAECBQJkTAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJlTwAEAmRMCQCiCAEJAQFJAAMJAAECBQJkTAIGU3RyaW5nBAJlTgUCZEwJANkEAQUCZU4DCQABAgUCZEwCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZVABAmRBBAJkTAkBAmVNAAMJAAECBQJkTAIKQnl0ZVZlY3RvcgQCZVEFAmRMCQAAAggFAmRBD2NhbGxlclB1YmxpY0tleQUCZVEDCQABAgUCZEwCBFVuaXQJAAACCAUCZEEGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmVSAQJkQQQCZVMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCZEwJAQJlTQADCQABAgUCZEwCCkJ5dGVWZWN0b3IEAmVRBQJkTAMJAAACCAUCZEEPY2FsbGVyUHVibGljS2V5BQJlUQYFAmVTAwkAAQIFAmRMAgRVbml0AwkAAAIIBQJkQQZjYWxsZXIFBHRoaXMGBQJlUwkAAgECC01hdGNoIGVycm9yGwJkQQEKc2V0TWFuYWdlcgECZVQEAmVVCQECZVIBBQJkQQMJAAACBQJlVQUCZVUEAmVWCQDZBAEFAmVUAwkAAAIFAmVWBQJlVgkAzAgCCQELU3RyaW5nRW50cnkCCQEBSQAFAmVUBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBDmNvbmZpcm1NYW5hZ2VyAAQCZVcJAQJlTwAEAmVYAwkBCWlzRGVmaW5lZAEFAmVXBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJlWAUCZVgEAmVZAwkAAAIIBQJkQQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmVXBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJlWQUCZVkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUgACQDYBAEJAQV2YWx1ZQEFAmVXCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFJAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQNwdXQCAmNoAmVaAwkAZgIAAAUCY2gJAAIBAiBJbnZhbGlkIHNsaXBwYWdlVG9sZXJhbmNlIHBhc3NlZAQCZEcJAQJkRAMFAmRBBQJjaAYEAmNKCAUCZEcCXzIEAmJPCAUCZEcCXzcEAmNmCAUCZEcCXzkEAmNLCAUCZEcDXzEwBAJjTAgFAmRHA18xMQQCZmEIBQJkRwNfMTIEAmZiCAUCZEcDXzEzBAJkRQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEEIcGF5bWVudHMAAAZhbW91bnQEAmRGCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwABBmFtb3VudAQCZGEJAQJjVAMFAmRFBQJkRgkAtgIBAAADCQAAAgUCZGEFAmRhBAJkSgkA/AcEBQJhegIEZW1pdAkAzAgCBQJjSgUDbmlsBQNuaWwDCQAAAgUCZEoFAmRKBAJkSwQCZEwFAmRKAwkAAQIFAmRMAgdBZGRyZXNzBAJkTQUCZEwJAPwHBAUCZE0CBGVtaXQJAMwIAgUCY0oFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRLBQJkSwQCZmMDCQBmAgUCY0sAAAkA/AcEBQJhWQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmZhBQJjSwUDbmlsBQNuaWwDCQAAAgUCZmMFAmZjBAJmZAMJAGYCBQJjTAAACQD8BwQFAmFZAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZmIFAmNMBQNuaWwFA25pbAMJAAACBQJmZAUCZmQEAmZlAwUCZVoEAmZmCQD8BwQFAmFYAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY0oFA25pbAMJAAACBQJmZgUCZmYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEEGY2FsbGVyBQJjSgUCYk8FA25pbAQCZmcJAQJkYgMAAAAAAAADCQAAAgUCZmcFAmZnBAJjUwgFAmZnAl8yBAJmaAgFAmZnAl8xBAJmaQkBAmRmAgUCZGEFAmNTAwkAAAIFAmZpBQJmaQkAzggCCQDOCAIFAmNmBQJmZQUCZmgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBCnB1dEZvckZyZWUBAmZqAwkAZgIAAAUCZmoJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZEcJAQJkRAMFAmRBBQJmagcEAmNmCAUCZEcCXzkEAmRFCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQQhwYXltZW50cwAABmFtb3VudAQCZEYJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRBCHBheW1lbnRzAAEGYW1vdW50BAJkYQkBAmNUAwUCZEUFAmRGCQC2AgEAAAMJAAACBQJkYQUCZGEEAmZrCQECZGIDAAAAAAAABAJmaAgFAmZrAl8xBAJjUwgFAmZrAl8yBAJmaQkBAmRmAgUCZGEFAmNTAwkAAAIFAmZpBQJmaQkAzggCBQJjZgUCZmgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBCXB1dE9uZVRrbgICZmwCZm0EAmZuCgACYUMJAPwHBAUCYXoCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhQwIHQm9vbGVhbgUCYUMJAAIBCQCsAgIJAAMBBQJhQwIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZm8DAwMJAQJhRQAGCQAAAgUCYVEFAWkGCQAAAgUCYVEFAWsGBQJmbgQCZXUJAMwIAgMDCQEBIQEFAmZvBgkBAmVQAQUCZEEGCQECYXcBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQQhwYXltZW50cwABBgkBAmF3AQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZXUFAmV1BAJmcAkAkQMCCAUCZEEIcGF5bWVudHMAAAQCZFIIBQJmcAdhc3NldElkBAJkUQgFAmZwBmFtb3VudAQCZGEDCQAAAgUCZFIFAmFTCQECY1QDCQC2AgEFAmRRCQC2AgEAAAkAtgIBAAADCQAAAgUCZFIFAmFUCQECY1QDCQC2AgEAAAkAtgIBBQJkUQkAtgIBAAAJAQJhdwECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJkYQUCZGEEAU8IBQJkQQZjYWxsZXIEAVAIBQJkQQ10cmFuc2FjdGlvbklkBAJmcQkBAmRQBAUCZFEFAmRSBQFPBQFQAwkAAAIFAmZxBQJmcQQCZFYIBQJmcQJfNQQCZnIIBQJmcQJfNAQCZE8IBQJmcQJfMwQCY00IBQJmcQJfMgQCZnMIBQJmcQJfMQQCZnQDAwkAZgIFAmZsAAAJAGYCBQJmbAUCZnMHCQECYXcBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZsBQNuaWwCAAUCZnMEAmRKCQECZEgBBQJmdAMJAAACBQJkSgUCZEoEAmZlAwUCZm0EAmZ1CQD8BwQFAmFYAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhUgUCZnQFA25pbAMJAAACBQJmdQUCZnUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEEGY2FsbGVyBQJmdAUCYVIFA25pbAQCZnYDCQBmAgUCZE8AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQQUCZE8FAmRSBQNuaWwFA25pbAQCZncDCQAAAgUEdGhpcwUCYUEJAJQKAgAAAAADBQJkVgkAlAoCCQEBLQEFAmRPAAAJAJQKAgAACQEBLQEFAmRPBAJkYwgFAmZ3Al8xBAJkZAgFAmZ3Al8yBAJmeAkBAmRiAwUCZGMFAmRkAAAEAmZoCAUCZngCXzEEAmNTCAUCZngCXzIEAmRtCQEFdmFsdWUBCQCiCAEFAVcEAmZpCQECZGYCBQJkYQUCY1MDCQAAAgUCZmkFAmZpCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNNBQJmZQUCZnYFAmZoBQJmdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQERcHV0T25lVGtuUkVBRE9OTFkCAmRSAmRRBAJmeQkBAmRQBAUCZFEJAQJhSgEFAmRSBQR1bml0BQR1bml0BAJmcwgFAmZ5Al8xBAJjTQgFAmZ5Al8yBAJkTwgFAmZ5Al8zBAJmcggFAmZ5Al80BAJkVggFAmZ5Al81CQCUCgIFA25pbAkAlQoDBQJmcwUCZE8FAmZyAmRBAQlnZXRPbmVUa24CAmZ6AmZsBAJmbgoAAmFDCQD8BwQFAmF6Aihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUMCB0Jvb2xlYW4FAmFDCQACAQkArAICCQADAQUCYUMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZBAwMJAQJhRQAGCQAAAgUCYVEFAWsGBQJmbgQCZXUJAMwIAgMDCQEBIQEFAmZBBgkBAmVQAQUCZEEGCQECYXcBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQQhwYXltZW50cwABBgkBAmF3AQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZXUFAmV1BAJldAkBAmFKAQUCZnoEAmZwCQCRAwIIBQJkQQhwYXltZW50cwAABAJkUggFAmZwB2Fzc2V0SWQEAmVkCAUCZnAGYW1vdW50BAJkYQkBAmNUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkYQUCZGEEAU8IBQJkQQZjYWxsZXIEAVAIBQJkQQ10cmFuc2FjdGlvbklkBAJmQgkBAmVzBQUCZXQFAmVkBQJkUgUBTwUBUAMJAAACBQJmQgUCZkIEAmV2CAUCZkICXzUEAmZyCAUCZkICXzQEAmRPCAUCZkICXzMEAmNNCAUCZkICXzIEAmZDCAUCZkICXzEEAmRJAwMJAGYCBQJmbAAACQBmAgUCZmwFAmZDBwkBAmF3AQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmbAUDbmlsAgAFAmZDBAJmRAkA/AcEBQJhegIEYnVybgkAzAgCBQJlZAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkUgUCZWQFA25pbAMJAAACBQJmRAUCZkQEAmZFCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAU8FAmRJBQJldAUDbmlsBAJmdgMJAGYCBQJkTwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFBBQJkTwUCZXQFA25pbAUDbmlsBAJmRgQCZkcDCQAAAgUEdGhpcwUCYUEAAAUCZE8DBQJldgkAlAoCCQEBLQEJAGQCBQJkSQUCZkcAAAkAlAoCAAAJAQEtAQkAZAIFAmRJBQJmRwQCZGMIBQJmRgJfMQQCZGQIBQJmRgJfMgQCZkgJAQJkYgMFAmRjBQJkZAAABAJmaAgFAmZIAl8xBAJjUwgFAmZIAl8yBAJmaQkBAmRmAgUCZGEFAmNTAwkAAAIFAmZpBQJmaQkAlAoCCQDOCAIJAM4IAgkAzggCBQJjTQUCZkUFAmZ2BQJmaAUCZEkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBEWdldE9uZVRrblJFQURPTkxZAgJldAJlZAQCZkkJAQJlcwUJAQJhSgEFAmV0BQJlZAUCYVIFBHVuaXQFBHVuaXQEAmZDCAUCZkkCXzEEAmNNCAUCZkkCXzIEAmRPCAUCZkkCXzMEAmZyCAUCZkkCXzQEAmV2CAUCZkkCXzUJAJQKAgUDbmlsCQCVCgMFAmZDBQJkTwUCZnICZEEBE3Vuc3Rha2VBbmRHZXRPbmVUa24DAmZKAmZ6AmZsBAJmbgoAAmFDCQD8BwQFAmF6Aihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYUMCB0Jvb2xlYW4FAmFDCQACAQkArAICCQADAQUCYUMCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZBAwMJAQJhRQAGCQAAAgUCYVEFAWsGBQJmbgQCZXUJAMwIAgMDCQEBIQEFAmZBBgkBAmVQAQUCZEEGCQECYXcBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQQhwYXltZW50cwAABgkBAmF3AQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZXUFAmV1BAJldAkBAmFKAQUCZnoEAU8IBQJkQQZjYWxsZXIEAVAIBQJkQQ10cmFuc2FjdGlvbklkBAJkYQkBAmNUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkYQUCZGEEAmZLCQD8BwQFAmFYAgd1bnN0YWtlCQDMCAIJANgEAQUCYVIJAMwIAgUCZkoFA25pbAUDbmlsAwkAAAIFAmZLBQJmSwQCZkwJAQJlcwUFAmV0BQJmSgUCYVIFAU8FAVADCQAAAgUCZkwFAmZMBAJldggFAmZMAl81BAJmcggFAmZMAl80BAJkTwgFAmZMAl8zBAJjTQgFAmZMAl8yBAJmQwgFAmZMAl8xBAJkSQMDCQBmAgUCZmwAAAkAZgIFAmZsBQJmQwcJAQJhdwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZmwFA25pbAIABQJmQwQCZkQJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZkoFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVIFAmZKBQNuaWwDCQAAAgUCZkQFAmZEBAJmRQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEEGY2FsbGVyBQJkSQUCZXQFA25pbAQCZnYDCQBmAgUCZE8AAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQQUCZE8FAmV0BQNuaWwFA25pbAQCZk0EAmZHAwkAAAIFBHRoaXMFAmFBAAAFAmRPAwUCZXYJAJQKAgkBAS0BCQBkAgUCZEkFAmZHAAAJAJQKAgAACQEBLQEJAGQCBQJkSQUCZkcEAmRjCAUCZk0CXzEEAmRkCAUCZk0CXzIEAmZOCQECZGIDBQJkYwUCZGQAAAQCZmgIBQJmTgJfMQQCY1MIBQJmTgJfMgQCZmkJAQJkZgIFAmRhBQJjUwMJAAACBQJmaQUCZmkJAJQKAgkAzggCCQDOCAIJAM4IAgUCY00FAmZFBQJmdgUCZmgFAmRJCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRBAQNnZXQABAJjeAkBAmR6AQUCZEEEAmZPCAUCY3gCXzEEAmNlCAUCY3gCXzIEAmRDCAUCY3gCXzMEAmJNCAUCY3gCXzQEAmNmCAUCY3gCXzUEAmRhCQECY1QDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmRhBQJkYQQCZlAJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZEMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk0FAmRDBQNuaWwDCQAAAgUCZlAFAmZQBAJmUQkBAmRiAwkBAS0BBQJmTwkBAS0BBQJjZQAABAJmaAgFAmZRAl8xBAJjUwgFAmZRAl8yBAJmaQkBAmRmAgUCZGEFAmNTAwkAAAIFAmZpBQJmaQkAzggCBQJjZgUCZmgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBCWdldE5vTGVzcwICZlICZlMEAmN4CQECZHoBBQJkQQQCY2QIBQJjeAJfMQQCY2UIBQJjeAJfMgQCZEMIBQJjeAJfMwQCYk0IBQJjeAJfNAQCY2YIBQJjeAJfNQMJAGYCBQJmUgUCY2QJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmNkAgMgPCAJAKQDAQUCZlIDCQBmAgUCZlMFAmNlCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCY2UCAyA8IAkApAMBBQJmUwQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAJmUAkA/AcEBQJhegIEYnVybgkAzAgCBQJkQwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTQUCZEMFA25pbAMJAAACBQJmUAUCZlAEAmZUCQECZGIDCQEBLQEFAmNkCQEBLQEFAmNlAAAEAmZoCAUCZlQCXzEEAmNTCAUCZlQCXzIEAmZpCQECZGYCBQJkYQUCY1MDCQAAAgUCZmkFAmZpCQDOCAIFAmNmBQJmaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQENdW5zdGFrZUFuZEdldAECZEkEAmZVAwkBAiE9AgkAkAMBCAUCZEEIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCZlUFAmZVBAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCZGEJAQJjVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZGEFAmRhBAJmSwkA/AcEBQJhWAIHdW5zdGFrZQkAzAgCCQDYBAEFAmJPCQDMCAIFAmRJBQNuaWwFA25pbAMJAAACBQJmSwUCZksEAmN4CQECYksECQDYBAEIBQJkQQ10cmFuc2FjdGlvbklkCQDYBAEFAmJPBQJkSQgFAmRBBmNhbGxlcgQCY2QIBQJjeAJfMQQCY2UIBQJjeAJfMgQCYlIJAQ1wYXJzZUludFZhbHVlAQgFAmN4Al85BAJjZggFAmN4A18xMAQCZlYDAwkBAmFFAAYJAAACBQJiUgUBawkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlIGAwkAAAIFAmZWBQJmVgQCZlAJAPwHBAUCYXoCBGJ1cm4JAMwIAgUCZEkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYk8FAmRJBQNuaWwDCQAAAgUCZlAFAmZQBAJmVwkBAmRiAwkBAS0BBQJjZAkBAS0BBQJjZQAABAJmaAgFAmZXAl8xBAJjUwgFAmZXAl8yBAJmaQkBAmRmAgUCZGEFAmNTAwkAAAIFAmZpBQJmaQkAzggCBQJjZgUCZmgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmZKAmZYAmZTBAJmQQMJAQJhRQAGCQAAAgUCYVEFAWsEAmV1CQDMCAIDCQEBIQEFAmZBBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRBCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZXUFAmV1BAJkYQkBAmNUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJkYQUCZGEEAmZLCQD8BwQFAmFYAgd1bnN0YWtlCQDMCAIJANgEAQUCYVIJAMwIAgUCZkoFA25pbAUDbmlsAwkAAAIFAmZLBQJmSwQCY3gJAQJiSwQJANgEAQgFAmRBDXRyYW5zYWN0aW9uSWQJANgEAQUCYVIFAmZKCAUCZEEGY2FsbGVyBAJjZAgFAmN4Al8xBAJjZQgFAmN4Al8yBAJjZggFAmN4A18xMAQCZlkJAMwIAgMJAGcCBQJjZAUCZlgGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZlgFA25pbAIACQDMCAIDCQBnAgUCY2UFAmZTBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZlMFA25pbAIABQNuaWwDCQAAAgUCZlkFAmZZBAJmUAkA/AcEBQJhegIEYnVybgkAzAgCBQJmSgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhUgUCZkoFA25pbAMJAAACBQJmUAUCZlAEAmZaCQECZGIDCQEBLQEFAmNkCQEBLQEFAmNlAAAEAmZoCAUCZloCXzEEAmNTCAUCZloCXzIEAmZpCQECZGYCBQJkYQUCY1MDCQAAAgUCZmkFAmZpCQDOCAIFAmNmBQJmaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQQEIYWN0aXZhdGUCAmdhAmdiAwkBAiE9AgkApQgBCAUCZEEGY2FsbGVyCQClCAEFAmF6CQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIABQJnYQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAFAmdiBQNuaWwCB3N1Y2Nlc3MCZEEBCnJlZnJlc2hLTHAABAJnYwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQFYAAAEAmdkAwkAZwIJAGUCBQZoZWlnaHQFAmdjBQJhYQUEdW5pdAkBAmF3AQkAuQkCCQDMCAIJAKQDAQUCYWEJAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmdkBQJnZAQCZG0JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAVcCATAJAQJheQECC2ludmFsaWQga0xwBAJnZQkBAmRiAwAAAAAAAAQCZ2YIBQJnZQJfMQQCY1MIBQJnZQJfMgQCZGUDCQECIT0CBQJkbQUCY1MFAmdmCQECYXcBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZGUJAKYDAQUCY1MJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEEBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmFHAAJkQQEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECYnAJAJQKAgUDbmlsCQECYm8BBQJicAJkQQEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCYngCYnkCYkMEAmdnCQECYkIDBQJieAUCYnkFAmJDCQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCZ2cAAAkAzAgCCQCmAwEJAJEDAgUCZ2cAAQkAzAgCCQCmAwEJAJEDAgUCZ2cAAgUDbmlsAmRBARR0b1gxOFdyYXBwZXJSRUFET05MWQIBeAF5CQCUCgIFA25pbAkApgMBCQEBdwIFAXgFAXkCZEEBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAUIBQwkAlAoCBQNuaWwJAQFBAgkApwMBBQFCBQFDAmRBAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJyAmJzCQCUCgIFA25pbAkApgMBCQECYnECCQCnAwEFAmJyCQCnAwEFAmJzAmRBASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCYkwCY2gCY2kCY2oCY2sCY2wBTwJjbQJjbgkAlAoCBQNuaWwJAQJjZwkFAmJMBQJjaAUCY2kFAmNqBQJjawUCY2wFAU8FAmNtBQJjbgJkQQEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmJMAmJNAmJOAU8EAmN4CQECYksEBQJiTAUCYk0FAmJOCQERQGV4dHJOYXRpdmUoMTA2MikBBQFPCQCUCgIFA25pbAkAnAoKCAUCY3gCXzEIBQJjeAJfMggFAmN4Al8zCAUCY3gCXzQIBQJjeAJfNQgFAmN4Al82CAUCY3gCXzcJAKYDAQgFAmN4Al84CAUCY3gCXzkIBQJjeANfMTACZEEBDXN0YXRzUkVBRE9OTFkABAJiRAkBAmFHAAQCYk8JANkEAQkAkQMCBQJiRAUBbgQCZ2gJAJEDAgUCYkQFAW8EAmdpCQCRAwIFAmJEBQFwBAJjcQkAkQMCBQJiRAUBcwQCY3IJAJEDAgUCYkQFAXQEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXEEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkQFAXIEAmdqCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJPCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJPAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZ2sJAQJibwEFAmdoBAJnbAkBAmJvAQUCZ2kEAmdtAwkAAAIFAmdqAAAJAMwIAgUBYwkAzAgCBQFjCQDMCAIFAWMFA25pbAkBAmJCAwUCZ2sFAmdsBQJnagQCYlkAAAQCZ24JAQFBAgkAkQMCBQJnbQABBQFhBAJnbwkBAUECCQCRAwIFAmdtAAIFAWEEAmdwCQEFdmFsdWUBCQCaCAIFAmF6CQECYWoBCQClCAEFBHRoaXMJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJnawkAzAgCCQCkAwEFAmdsCQDMCAIJAKQDAQUCZ2oJAMwIAgkApAMBBQJiWQkAzAgCCQCkAwEFAmduCQDMCAIJAKQDAQUCZ28JAMwIAgkApAMBBQJncAUDbmlsBQFoAmRBASBldmFsdWF0ZVB1dEJ5QW1vdW50QXNzZXRSRUFET05MWQECY2kEAmJECQECYUcABAJiTwkA2QQBCQCRAwIFAmJEBQFuBAJjbwkAkQMCBQJiRAUBbwQCYlAJANkEAQUCY28EAmNwCQCRAwIFAmJEBQFwBAJiUQkA2QQBBQJjcAQCYkUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcQQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcgQCYlIJAJEDAgUCYkQFAW0EAmdqCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJPCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJPAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZ2sJAQJibwEFAmNvBAJnbAkBAmJvAQUCY3AEAmJ6CQEBdwIFAmdrBQJiRQQCYkEJAQF3AgUCZ2wFAmJGBAJiWAMJAAACBQJnagAABQFjCQECYnECBQJiQQUCYnoEAmN1CQEBdwIFAmNpBQJiRQQCY3YJALwCAwUCY3UFAmJYBQFiBAJjawkBAUECBQJjdgUCYkYEAmRHCQECY2cJAgAAoMIeBQJjaQUCYlAFAmNrBQJiUQIABgcEAmNGCAUCZEcCXzEEAmdxCAUCZEcCXzMEAmJUCAUCZEcCXzQEAmJWCAUCZEcCXzUEAmJTCAUCZEcCXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNGCQDMCAIJAKQDAQkBAUECBQJiWAUBYQkAzAgCCQCkAwEFAmJUCQDMCAIJAKQDAQUCYlYJAMwIAgkApAMBBQJiUwkAzAgCBQJiUgkAzAgCCQCkAwEFAmNpCQDMCAIJAKQDAQUCY2sFA25pbAUBaAJkQQEfZXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQECY2sEAmJECQECYUcABAJiTwkA2QQBCQCRAwIFAmJEBQFuBAJjbwkAkQMCBQJiRAUBbwQCYlAJANkEAQUCY28EAmNwCQCRAwIFAmJEBQFwBAJiUQkA2QQBBQJjcAQCYkUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcQQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRAUBcgQCYlIJAJEDAgUCYkQFAW0EAmdqCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJPCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJPAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZ3IJAQJibwEFAmNvBAJncwkBAmJvAQUCY3AEAmd0CQEBdwIFAmdyBQJiRQQCZ3UJAQF3AgUCZ3MFAmJGBAJiWAMJAAACBQJnagAABQFjCQECYnECBQJndQUCZ3QEAmN2CQEBdwIFAmNrBQJiRgQCY3UJALwCAwUCY3YFAWIFAmJYBAJjaQkBAUECBQJjdQUCYkUEAmRHCQECY2cJAgAAoMIeBQJjaQUCYlAFAmNrBQJiUQIABgcEAmNGCAUCZEcCXzEEAmdxCAUCZEcCXzMEAmJUCAUCZEcCXzQEAmJWCAUCZEcCXzUEAmJTCAUCZEcCXzYJAJQKAgUDbmlsCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNGCQDMCAIJAKQDAQkBAUECBQJiWAUBYQkAzAgCCQCkAwEFAmJUCQDMCAIJAKQDAQUCYlYJAMwIAgkApAMBBQJiUwkAzAgCBQJiUgkAzAgCCQCkAwEFAmNpCQDMCAIJAKQDAQUCY2sFA25pbAUBaAJkQQETZXZhbHVhdGVHZXRSRUFET05MWQICZ3YCZ3cEAmN4CQECYksEAgAFAmd2BQJndwUEdGhpcwQCY2QIBQJjeAJfMQQCY2UIBQJjeAJfMgQCYlQIBQJjeAJfNQQCYlYIBQJjeAJfNgQCYlMIBQJjeAJfNwQCYlkIBQJjeAJfOAQCYlIJAQ1wYXJzZUludFZhbHVlAQgFAmN4Al85CQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY2QJAMwIAgkApAMBBQJjZQkAzAgCCQCkAwEFAmJUCQDMCAIJAKQDAQUCYlYJAMwIAgkApAMBBQJiUwkAzAgCCQCmAwEFAmJZCQDMCAIJAKQDAQUCYlIFA25pbAUBaAECZ3gBAmd5AAQCZ3oEAmRMCQECZU0AAwkAAQIFAmRMAgpCeXRlVmVjdG9yBAJlUQUCZEwFAmVRAwkAAQIFAmRMAgRVbml0CAUCZ3gPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmRMBQJneAMJAAECBQJkTAIFT3JkZXIEAmRpBQJkTAQCZ0EJAQJhRgAEAmdCCQECZGgBBQJkaQQCYW8IBQJnQgJfMQQCYXAIBQJnQgJfMgQCYXEJAPQDAwgFAmRpCWJvZHlCeXRlcwkAkQMCCAUCZGkGcHJvb2ZzAAAIBQJkaQ9zZW5kZXJQdWJsaWNLZXkEAmFyCQD0AwMIBQJkaQlib2R5Qnl0ZXMJAJEDAggFAmRpBnByb29mcwABBQJnQQMDAwUCYW8FAmFxBwUCYXIHBgkBAmFuBAUCYW8FAmFwBQJhcQUCYXIDCQABAgUCZEwCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJlTgUCZEwEAmdDCQD2AwEJAQV2YWx1ZQEIBQJlTgZzY3JpcHQEAmdECQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYXoJAQJhbAAEAmdFCQDxBwEFBHRoaXMDAwkAAAIFAmdEBQJnQwkBAiE9AgUCZ0UFAmdDBwYJAPQDAwgFAmd4CWJvZHlCeXRlcwkAkQMCCAUCZ3gGcHJvb2ZzAAAFAmd6CQD0AwMIBQJneAlib2R5Qnl0ZXMJAJEDAggFAmd4BnByb29mcwAABQJneqmbdFs=", "height": 2413082, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8rQguAbb1W6YoUndumKzNtoa4KdymCoXJbwZBri5dN2h Next: 4homFNZJEVav37BawJrV3MJEQnjyd25cTmTcZYvAUqcr Diff:
OldNewDifferences
427427 let cO = bo(aL(aS))
428428 let cP = bo(aL(aT))
429429 let cQ = w(cO, aU)
430- let du = (cQ + w(dc, aU))
430+ let du = (cO + dc)
431431 let cR = w(cP, aV)
432- let dv = (cR + w(dd, aV))
433- let dw = (cQ * cR)
434- let dx = (du * dv)
432+ let dv = (cP + dd)
433+ let dw = pow((cO * cP), 0, 5, 1, 18, DOWN)
434+ let dx = pow((du * dv), 0, 5, 1, 18, DOWN)
435435 let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436436 $Tuple2(dt, dy)
437437 }
529529 let ec = dN(dQ, aB)
530530 let ed = ec._1
531531 let dO = ec._2
532- let ee = (dX + dj)
533- let ef = (dY + dk)
534- let eg = bq(w(ef, aV), w(ee, aU))
535- let eh = A(eg, a)
536- let ei = if (dV)
532+ let du = (dX + dj)
533+ let dv = (dY + dk)
534+ let ee = bq(w(dv, aV), w(du, aU))
535+ let ef = A(ee, a)
536+ let eg = if (dV)
537537 then dX
538538 else dY
539- let ej = toBigInt(ei)
540- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541- let el = if ((ek > d))
539+ let eh = toBigInt(eg)
540+ let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541+ let ej = if ((ei > d))
542542 then true
543543 else aw("initial deposit requires all coins")
544- if ((el == el))
544+ if ((ej == ej))
545545 then {
546- let em = toBigInt(ed)
547- let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
546+ let ek = toBigInt(ed)
547+ let el = max([0, toInt(((ei * (sqrtBigInt((b + ((ek * b) / eh)), 18, 18, DOWN) - b)) / b))])
548548 let cM = if (dS)
549549 then nil
550- else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551- let eo = bq(w(dY, aV), w(dX, aU))
552- let ep = A(eo, a)
553- let eq = {
554- let er = if (dV)
550+ else [IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, el, ef, 0, 0, height, lastBlock.timestamp, 0, 0))]
551+ let em = bq(w(dY, aV), w(dX, aU))
552+ let en = A(em, a)
553+ let eo = {
554+ let ep = if (dV)
555555 then $Tuple2(ea, dX)
556556 else $Tuple2(eb, dY)
557- let dI = er._1
558- let es = er._2
559- let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560- fraction((en - et), a, et)
557+ let dI = ep._1
558+ let eq = ep._2
559+ let er = toInt(fraction(ei, toBigInt((dI / 2)), toBigInt(eq)))
560+ fraction((el - er), a, er)
561561 }
562- $Tuple5(en, cM, dO, eq, dV)
562+ $Tuple5(el, cM, dO, eo, dV)
563563 }
564564 else throw("Strict value is not equal to itself.")
565565 }
566566
567567
568-func eu (ev,ed,dR,O,P) = {
568+func es (et,ed,dR,O,P) = {
569569 let dS = (P == unit)
570570 let bD = aG()
571571 let bE = parseIntValue(bD[q])
572572 let bF = parseIntValue(bD[r])
573- let ew = [if ((dR == aR))
573+ let eu = [if ((dR == aR))
574574 then true
575575 else aw("invalid lp asset")]
576- if ((ew == ew))
576+ if ((eu == eu))
577577 then {
578- let ex = if ((ev == aS))
578+ let ev = if ((et == aS))
579579 then true
580- else if ((ev == aT))
580+ else if ((et == aT))
581581 then false
582582 else aw("invalid asset")
583- let ey = if (ex)
583+ let ew = if (ev)
584584 then toBigInt(bo(aL(aS)))
585585 else toBigInt(bo(aL(aT)))
586- let ez = if (ex)
586+ let ex = if (ev)
587587 then bE
588588 else bF
589- let eA = bo(aL(aS))
590- let eB = bo(aL(aT))
591- let eC = if (ex)
592- then eA
593- else eB
594- let eD = toBigInt(eC)
595- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596- let eE = toBigInt(ed)
597- let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598- let eG = dN(eF, aD)
589+ let ey = bo(aL(aS))
590+ let ez = bo(aL(aT))
591+ let eA = if (ev)
592+ then ey
593+ else ez
594+ let eB = toBigInt(eA)
595+ let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596+ let eC = toBigInt(ed)
597+ let eD = max([0, toInt(((ew * (b - pow((b - ((eC * b) / ei)), 18, f, 0, 18, DOWN))) / b))])
598+ let eE = dN(eD, aD)
599+ let eF = eE._1
600+ let dO = eE._2
601+ let eG = if (ev)
602+ then $Tuple4(eF, 0, (ey - eD), ez)
603+ else $Tuple4(0, eF, ey, (ez - eD))
599604 let eH = eG._1
600- let dO = eG._2
601- let eI = if (ex)
602- then $Tuple4(eH, 0, (eA - eF), eB)
603- else $Tuple4(0, eH, eA, (eB - eF))
604- let eJ = eI._1
605- let eK = eI._2
606- let eL = eI._3
607- let eM = eI._4
608- let eg = bq(w(eM, aV), w(eL, aU))
609- let eh = A(eg, a)
605+ let eI = eG._2
606+ let eJ = eG._3
607+ let eK = eG._4
608+ let ee = bq(w(eK, aV), w(eJ, aU))
609+ let ef = A(ee, a)
610610 let cM = if (dS)
611611 then nil
612- else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613- let eo = bq(w(eB, aV), w(eA, aU))
614- let ep = A(eo, a)
615- let eq = {
616- let eN = (toInt(fraction(ey, eE, ek)) * 2)
617- fraction((eH - eN), a, eN)
612+ else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eH, eI, ed, ef, height, lastBlock.timestamp)), IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef)]
613+ let em = bq(w(ez, aV), w(ey, aU))
614+ let en = A(em, a)
615+ let eo = {
616+ let eL = (toInt(fraction(ew, eC, ei)) * 2)
617+ fraction((eF - eL), a, eL)
618618 }
619- $Tuple5(eH, cM, dO, eq, ex)
619+ $Tuple5(eF, cM, dO, eo, ev)
620620 }
621621 else throw("Strict value is not equal to itself.")
622622 }
623623
624624
625-func eO () = {
625+func eM () = {
626626 let dL = getString(H())
627627 if ($isInstanceOf(dL, "String"))
628628 then {
629- let eP = dL
630- fromBase58String(eP)
629+ let eN = dL
630+ fromBase58String(eN)
631631 }
632632 else if ($isInstanceOf(dL, "Unit"))
633633 then unit
635635 }
636636
637637
638-func eQ () = {
638+func eO () = {
639639 let dL = getString(I())
640640 if ($isInstanceOf(dL, "String"))
641641 then {
642- let eP = dL
643- fromBase58String(eP)
642+ let eN = dL
643+ fromBase58String(eN)
644644 }
645645 else if ($isInstanceOf(dL, "Unit"))
646646 then unit
648648 }
649649
650650
651-func eR (dA) = {
652- let dL = eO()
651+func eP (dA) = {
652+ let dL = eM()
653653 if ($isInstanceOf(dL, "ByteVector"))
654654 then {
655- let eS = dL
656- (dA.callerPublicKey == eS)
655+ let eQ = dL
656+ (dA.callerPublicKey == eQ)
657657 }
658658 else if ($isInstanceOf(dL, "Unit"))
659659 then (dA.caller == this)
661661 }
662662
663663
664-func eT (dA) = {
665- let eU = throw("Permission denied")
666- let dL = eO()
664+func eR (dA) = {
665+ let eS = throw("Permission denied")
666+ let dL = eM()
667667 if ($isInstanceOf(dL, "ByteVector"))
668668 then {
669- let eS = dL
670- if ((dA.callerPublicKey == eS))
669+ let eQ = dL
670+ if ((dA.callerPublicKey == eQ))
671671 then true
672- else eU
672+ else eS
673673 }
674674 else if ($isInstanceOf(dL, "Unit"))
675675 then if ((dA.caller == this))
676676 then true
677- else eU
677+ else eS
678678 else throw("Match error")
679679 }
680680
681681
682682 @Callable(dA)
683-func setManager (eV) = {
684- let eW = eT(dA)
685- if ((eW == eW))
683+func setManager (eT) = {
684+ let eU = eR(dA)
685+ if ((eU == eU))
686686 then {
687- let eX = fromBase58String(eV)
688- if ((eX == eX))
689- then [StringEntry(I(), eV)]
687+ let eV = fromBase58String(eT)
688+ if ((eV == eV))
689+ then [StringEntry(I(), eT)]
690690 else throw("Strict value is not equal to itself.")
691691 }
692692 else throw("Strict value is not equal to itself.")
696696
697697 @Callable(dA)
698698 func confirmManager () = {
699- let eY = eQ()
700- let eZ = if (isDefined(eY))
699+ let eW = eO()
700+ let eX = if (isDefined(eW))
701701 then true
702702 else throw("No pending manager")
703- if ((eZ == eZ))
703+ if ((eX == eX))
704704 then {
705- let fa = if ((dA.callerPublicKey == value(eY)))
705+ let eY = if ((dA.callerPublicKey == value(eW)))
706706 then true
707707 else throw("You are not pending manager")
708- if ((fa == fa))
709- then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
708+ if ((eY == eY))
709+ then [StringEntry(H(), toBase58String(value(eW))), DeleteEntry(I())]
710710 else throw("Strict value is not equal to itself.")
711711 }
712712 else throw("Strict value is not equal to itself.")
715715
716716
717717 @Callable(dA)
718-func put (ch,fb) = if ((0 > ch))
718+func put (ch,eZ) = if ((0 > ch))
719719 then throw("Invalid slippageTolerance passed")
720720 else {
721721 let dG = dD(dA, ch, true)
724724 let cf = dG._9
725725 let cK = dG._10
726726 let cL = dG._11
727- let fc = dG._12
728- let fd = dG._13
727+ let fa = dG._12
728+ let fb = dG._13
729729 let dE = toBigInt(value(dA.payments[0]).amount)
730730 let dF = toBigInt(value(dA.payments[1]).amount)
731731 let da = cT(dE, dF, toBigInt(0))
745745 }
746746 if ((dK == dK))
747747 then {
748- let fe = if ((cK > 0))
749- then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
748+ let fc = if ((cK > 0))
749+ then invoke(aY, "put", nil, [AttachedPayment(fa, cK)])
750750 else nil
751- if ((fe == fe))
751+ if ((fc == fc))
752752 then {
753- let ff = if ((cL > 0))
754- then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
753+ let fd = if ((cL > 0))
754+ then invoke(aY, "put", nil, [AttachedPayment(fb, cL)])
755755 else nil
756- if ((ff == ff))
756+ if ((fd == fd))
757757 then {
758- let fg = if (fb)
758+ let fe = if (eZ)
759759 then {
760- let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761- if ((fh == fh))
760+ let ff = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761+ if ((ff == ff))
762762 then nil
763763 else throw("Strict value is not equal to itself.")
764764 }
765765 else [ScriptTransfer(dA.caller, cJ, bO)]
766- let fi = db(0, 0, 0)
767- if ((fi == fi))
766+ let fg = db(0, 0, 0)
767+ if ((fg == fg))
768768 then {
769- let cS = fi._2
770- let fj = fi._1
771- let fk = df(da, cS)
772- if ((fk == fk))
773- then ((cf ++ fg) ++ fj)
769+ let cS = fg._2
770+ let fh = fg._1
771+ let fi = df(da, cS)
772+ if ((fi == fi))
773+ then ((cf ++ fe) ++ fh)
774774 else throw("Strict value is not equal to itself.")
775775 }
776776 else throw("Strict value is not equal to itself.")
789789
790790
791791 @Callable(dA)
792-func putForFree (fl) = if ((0 > fl))
792+func putForFree (fj) = if ((0 > fj))
793793 then throw("Invalid value passed")
794794 else {
795- let dG = dD(dA, fl, false)
795+ let dG = dD(dA, fj, false)
796796 let cf = dG._9
797797 let dE = toBigInt(value(dA.payments[0]).amount)
798798 let dF = toBigInt(value(dA.payments[1]).amount)
799799 let da = cT(dE, dF, toBigInt(0))
800800 if ((da == da))
801801 then {
802- let fm = db(0, 0, 0)
803- let fj = fm._1
804- let cS = fm._2
805- let fk = df(da, cS)
806- if ((fk == fk))
807- then (cf ++ fj)
802+ let fk = db(0, 0, 0)
803+ let fh = fk._1
804+ let cS = fk._2
805+ let fi = df(da, cS)
806+ if ((fi == fi))
807+ then (cf ++ fh)
808808 else throw("Strict value is not equal to itself.")
809809 }
810810 else throw("Strict value is not equal to itself.")
813813
814814
815815 @Callable(dA)
816-func putOneTkn (fn,fo) = {
817- let fp = {
816+func putOneTkn (fl,fm) = {
817+ let fn = {
818818 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819819 if ($isInstanceOf(aC, "Boolean"))
820820 then aC
821821 else throw(($getType(aC) + " couldn't be cast to Boolean"))
822822 }
823- let fq = if (if (if (aE())
823+ let fo = if (if (if (aE())
824824 then true
825825 else (aQ == i))
826826 then true
827827 else (aQ == k))
828828 then true
829- else fp
830- let ew = [if (if (!(fq))
829+ else fn
830+ let eu = [if (if (!(fo))
831831 then true
832- else eR(dA))
832+ else eP(dA))
833833 then true
834834 else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
835835 then true
836836 else aw("exactly 1 payment are expected")]
837- if ((ew == ew))
837+ if ((eu == eu))
838838 then {
839- let fr = dA.payments[0]
840- let dR = fr.assetId
841- let dQ = fr.amount
839+ let fp = dA.payments[0]
840+ let dR = fp.assetId
841+ let dQ = fp.amount
842842 let da = if ((dR == aS))
843843 then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844844 else if ((dR == aT))
848848 then {
849849 let O = dA.caller
850850 let P = dA.transactionId
851- let fs = dP(dQ, dR, O, P)
852- if ((fs == fs))
851+ let fq = dP(dQ, dR, O, P)
852+ if ((fq == fq))
853853 then {
854- let dV = fs._5
855- let ft = fs._4
856- let dO = fs._3
857- let cM = fs._2
858- let fu = fs._1
859- let fv = if (if ((fn > 0))
860- then (fn > fu)
854+ let dV = fq._5
855+ let fr = fq._4
856+ let dO = fq._3
857+ let cM = fq._2
858+ let fs = fq._1
859+ let ft = if (if ((fl > 0))
860+ then (fl > fs)
861861 else false)
862- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863- else fu
864- let dJ = dH(fv)
862+ then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
863+ else fs
864+ let dJ = dH(ft)
865865 if ((dJ == dJ))
866866 then {
867- let fg = if (fo)
867+ let fe = if (fm)
868868 then {
869- let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870- if ((fw == fw))
869+ let fu = invoke(aX, "stake", nil, [AttachedPayment(aR, ft)])
870+ if ((fu == fu))
871871 then nil
872872 else throw("Strict value is not equal to itself.")
873873 }
874- else [ScriptTransfer(dA.caller, fv, aR)]
875- let fx = if ((dO > 0))
874+ else [ScriptTransfer(dA.caller, ft, aR)]
875+ let fv = if ((dO > 0))
876876 then [ScriptTransfer(aA, dO, dR)]
877877 else nil
878- let fy = if ((this == aA))
878+ let fw = if ((this == aA))
879879 then $Tuple2(0, 0)
880880 else if (dV)
881881 then $Tuple2(-(dO), 0)
882882 else $Tuple2(0, -(dO))
883- let dc = fy._1
884- let dd = fy._2
885- let fz = db(dc, dd, 0)
886- let fj = fz._1
887- let cS = fz._2
883+ let dc = fw._1
884+ let dd = fw._2
885+ let fx = db(dc, dd, 0)
886+ let fh = fx._1
887+ let cS = fx._2
888888 let dm = value(getString(W))
889- let fk = df(da, cS)
890- if ((fk == fk))
891- then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
889+ let fi = df(da, cS)
890+ if ((fi == fi))
891+ then $Tuple2((((cM ++ fe) ++ fv) ++ fh), ft)
892892 else throw("Strict value is not equal to itself.")
893893 }
894894 else throw("Strict value is not equal to itself.")
904904
905905 @Callable(dA)
906906 func putOneTknREADONLY (dR,dQ) = {
907- let fA = dP(dQ, aJ(dR), unit, unit)
908- let fu = fA._1
909- let cM = fA._2
910- let dO = fA._3
911- let ft = fA._4
912- let dV = fA._5
913- $Tuple2(nil, $Tuple3(fu, dO, ft))
907+ let fy = dP(dQ, aJ(dR), unit, unit)
908+ let fs = fy._1
909+ let cM = fy._2
910+ let dO = fy._3
911+ let fr = fy._4
912+ let dV = fy._5
913+ $Tuple2(nil, $Tuple3(fs, dO, fr))
914914 }
915915
916916
917917
918918 @Callable(dA)
919-func getOneTkn (fB,fn) = {
920- let fp = {
919+func getOneTkn (fz,fl) = {
920+ let fn = {
921921 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922922 if ($isInstanceOf(aC, "Boolean"))
923923 then aC
924924 else throw(($getType(aC) + " couldn't be cast to Boolean"))
925925 }
926- let fC = if (if (aE())
926+ let fA = if (if (aE())
927927 then true
928928 else (aQ == k))
929929 then true
930- else fp
931- let ew = [if (if (!(fC))
930+ else fn
931+ let eu = [if (if (!(fA))
932932 then true
933- else eR(dA))
933+ else eP(dA))
934934 then true
935935 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
936936 then true
937937 else aw("exactly 1 payment are expected")]
938- if ((ew == ew))
938+ if ((eu == eu))
939939 then {
940- let ev = aJ(fB)
941- let fr = dA.payments[0]
942- let dR = fr.assetId
943- let ed = fr.amount
940+ let et = aJ(fz)
941+ let fp = dA.payments[0]
942+ let dR = fp.assetId
943+ let ed = fp.amount
944944 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945945 if ((da == da))
946946 then {
947947 let O = dA.caller
948948 let P = dA.transactionId
949- let fD = eu(ev, ed, dR, O, P)
950- if ((fD == fD))
949+ let fB = es(et, ed, dR, O, P)
950+ if ((fB == fB))
951951 then {
952- let ex = fD._5
953- let ft = fD._4
954- let dO = fD._3
955- let cM = fD._2
956- let fE = fD._1
957- let dI = if (if ((fn > 0))
958- then (fn > fE)
952+ let ev = fB._5
953+ let fr = fB._4
954+ let dO = fB._3
955+ let cM = fB._2
956+ let fC = fB._1
957+ let dI = if (if ((fl > 0))
958+ then (fl > fC)
959959 else false)
960- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961- else fE
962- let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963- if ((fF == fF))
960+ then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
961+ else fC
962+ let fD = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963+ if ((fD == fD))
964964 then {
965- let fG = [ScriptTransfer(O, dI, ev)]
966- let fx = if ((dO > 0))
967- then [ScriptTransfer(aA, dO, ev)]
965+ let fE = [ScriptTransfer(O, dI, et)]
966+ let fv = if ((dO > 0))
967+ then [ScriptTransfer(aA, dO, et)]
968968 else nil
969- let fH = {
970- let fI = if ((this == aA))
969+ let fF = {
970+ let fG = if ((this == aA))
971971 then 0
972972 else dO
973- if (ex)
974- then $Tuple2(-((dI + fI)), 0)
975- else $Tuple2(0, -((dI + fI)))
973+ if (ev)
974+ then $Tuple2(-((dI + fG)), 0)
975+ else $Tuple2(0, -((dI + fG)))
976976 }
977- let dc = fH._1
978- let dd = fH._2
979- let fJ = db(dc, dd, 0)
980- let fj = fJ._1
981- let cS = fJ._2
982- let fk = df(da, cS)
983- if ((fk == fk))
984- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
977+ let dc = fF._1
978+ let dd = fF._2
979+ let fH = db(dc, dd, 0)
980+ let fh = fH._1
981+ let cS = fH._2
982+ let fi = df(da, cS)
983+ if ((fi == fi))
984+ then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
985985 else throw("Strict value is not equal to itself.")
986986 }
987987 else throw("Strict value is not equal to itself.")
996996
997997
998998 @Callable(dA)
999-func getOneTknREADONLY (ev,ed) = {
1000- let fK = eu(aJ(ev), ed, aR, unit, unit)
1001- let fE = fK._1
1002- let cM = fK._2
1003- let dO = fK._3
1004- let ft = fK._4
1005- let ex = fK._5
1006- $Tuple2(nil, $Tuple3(fE, dO, ft))
999+func getOneTknREADONLY (et,ed) = {
1000+ let fI = es(aJ(et), ed, aR, unit, unit)
1001+ let fC = fI._1
1002+ let cM = fI._2
1003+ let dO = fI._3
1004+ let fr = fI._4
1005+ let ev = fI._5
1006+ $Tuple2(nil, $Tuple3(fC, dO, fr))
10071007 }
10081008
10091009
10101010
10111011 @Callable(dA)
1012-func unstakeAndGetOneTkn (fL,fB,fn) = {
1013- let fp = {
1012+func unstakeAndGetOneTkn (fJ,fz,fl) = {
1013+ let fn = {
10141014 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
10151015 if ($isInstanceOf(aC, "Boolean"))
10161016 then aC
10171017 else throw(($getType(aC) + " couldn't be cast to Boolean"))
10181018 }
1019- let fC = if (if (aE())
1019+ let fA = if (if (aE())
10201020 then true
10211021 else (aQ == k))
10221022 then true
1023- else fp
1024- let ew = [if (if (!(fC))
1023+ else fn
1024+ let eu = [if (if (!(fA))
10251025 then true
1026- else eR(dA))
1026+ else eP(dA))
10271027 then true
10281028 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
10291029 then true
10301030 else aw("no payments are expected")]
1031- if ((ew == ew))
1031+ if ((eu == eu))
10321032 then {
1033- let ev = aJ(fB)
1033+ let et = aJ(fz)
10341034 let O = dA.caller
10351035 let P = dA.transactionId
10361036 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
10371037 if ((da == da))
10381038 then {
1039- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040- if ((fM == fM))
1039+ let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1040+ if ((fK == fK))
10411041 then {
1042- let fN = eu(ev, fL, aR, O, P)
1043- if ((fN == fN))
1042+ let fL = es(et, fJ, aR, O, P)
1043+ if ((fL == fL))
10441044 then {
1045- let ex = fN._5
1046- let ft = fN._4
1047- let dO = fN._3
1048- let cM = fN._2
1049- let fE = fN._1
1050- let dI = if (if ((fn > 0))
1051- then (fn > fE)
1045+ let ev = fL._5
1046+ let fr = fL._4
1047+ let dO = fL._3
1048+ let cM = fL._2
1049+ let fC = fL._1
1050+ let dI = if (if ((fl > 0))
1051+ then (fl > fC)
10521052 else false)
1053- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054- else fE
1055- let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056- if ((fF == fF))
1053+ then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
1054+ else fC
1055+ let fD = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1056+ if ((fD == fD))
10571057 then {
1058- let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059- let fx = if ((dO > 0))
1060- then [ScriptTransfer(aA, dO, ev)]
1058+ let fE = [ScriptTransfer(dA.caller, dI, et)]
1059+ let fv = if ((dO > 0))
1060+ then [ScriptTransfer(aA, dO, et)]
10611061 else nil
1062- let fO = {
1063- let fI = if ((this == aA))
1062+ let fM = {
1063+ let fG = if ((this == aA))
10641064 then 0
10651065 else dO
1066- if (ex)
1067- then $Tuple2(-((dI + fI)), 0)
1068- else $Tuple2(0, -((dI + fI)))
1066+ if (ev)
1067+ then $Tuple2(-((dI + fG)), 0)
1068+ else $Tuple2(0, -((dI + fG)))
10691069 }
1070- let dc = fO._1
1071- let dd = fO._2
1072- let fP = db(dc, dd, 0)
1073- let fj = fP._1
1074- let cS = fP._2
1075- let fk = df(da, cS)
1076- if ((fk == fk))
1077- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
1070+ let dc = fM._1
1071+ let dd = fM._2
1072+ let fN = db(dc, dd, 0)
1073+ let fh = fN._1
1074+ let cS = fN._2
1075+ let fi = df(da, cS)
1076+ if ((fi == fi))
1077+ then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
10781078 else throw("Strict value is not equal to itself.")
10791079 }
10801080 else throw("Strict value is not equal to itself.")
10931093 @Callable(dA)
10941094 func get () = {
10951095 let cx = dz(dA)
1096- let fQ = cx._1
1096+ let fO = cx._1
10971097 let ce = cx._2
10981098 let dC = cx._3
10991099 let bM = cx._4
11011101 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11021102 if ((da == da))
11031103 then {
1104- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105- if ((fR == fR))
1104+ let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105+ if ((fP == fP))
11061106 then {
1107- let fS = db(-(fQ), -(ce), 0)
1108- let fj = fS._1
1109- let cS = fS._2
1110- let fk = df(da, cS)
1111- if ((fk == fk))
1112- then (cf ++ fj)
1107+ let fQ = db(-(fO), -(ce), 0)
1108+ let fh = fQ._1
1109+ let cS = fQ._2
1110+ let fi = df(da, cS)
1111+ if ((fi == fi))
1112+ then (cf ++ fh)
11131113 else throw("Strict value is not equal to itself.")
11141114 }
11151115 else throw("Strict value is not equal to itself.")
11201120
11211121
11221122 @Callable(dA)
1123-func getNoLess (fT,fU) = {
1123+func getNoLess (fR,fS) = {
11241124 let cx = dz(dA)
11251125 let cd = cx._1
11261126 let ce = cx._2
11271127 let dC = cx._3
11281128 let bM = cx._4
11291129 let cf = cx._5
1130- if ((fT > cd))
1131- then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132- else if ((fU > ce))
1133- then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
1130+ if ((fR > cd))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fR)))
1132+ else if ((fS > ce))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fS)))
11341134 else {
11351135 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11361136 if ((da == da))
11371137 then {
1138- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139- if ((fR == fR))
1138+ let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139+ if ((fP == fP))
11401140 then {
1141- let fV = db(-(cd), -(ce), 0)
1142- let fj = fV._1
1143- let cS = fV._2
1144- let fk = df(da, cS)
1145- if ((fk == fk))
1146- then (cf ++ fj)
1141+ let fT = db(-(cd), -(ce), 0)
1142+ let fh = fT._1
1143+ let cS = fT._2
1144+ let fi = df(da, cS)
1145+ if ((fi == fi))
1146+ then (cf ++ fh)
11471147 else throw("Strict value is not equal to itself.")
11481148 }
11491149 else throw("Strict value is not equal to itself.")
11561156
11571157 @Callable(dA)
11581158 func unstakeAndGet (dI) = {
1159- let fW = if ((size(dA.payments) != 0))
1159+ let fU = if ((size(dA.payments) != 0))
11601160 then throw("No payments are expected")
11611161 else true
1162- if ((fW == fW))
1162+ if ((fU == fU))
11631163 then {
11641164 let bD = aG()
11651165 let bO = fromBase58String(bD[n])
11661166 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11671167 if ((da == da))
11681168 then {
1169- let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170- if ((fM == fM))
1169+ let fK = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170+ if ((fK == fK))
11711171 then {
11721172 let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
11731173 let cd = cx._1
11741174 let ce = cx._2
11751175 let bR = parseIntValue(cx._9)
11761176 let cf = cx._10
1177- let fX = if (if (aE())
1177+ let fV = if (if (aE())
11781178 then true
11791179 else (bR == k))
11801180 then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
11811181 else true
1182- if ((fX == fX))
1182+ if ((fV == fV))
11831183 then {
1184- let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185- if ((fR == fR))
1184+ let fP = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185+ if ((fP == fP))
11861186 then {
1187- let fY = db(-(cd), -(ce), 0)
1188- let fj = fY._1
1189- let cS = fY._2
1190- let fk = df(da, cS)
1191- if ((fk == fk))
1192- then (cf ++ fj)
1187+ let fW = db(-(cd), -(ce), 0)
1188+ let fh = fW._1
1189+ let cS = fW._2
1190+ let fi = df(da, cS)
1191+ if ((fi == fi))
1192+ then (cf ++ fh)
11931193 else throw("Strict value is not equal to itself.")
11941194 }
11951195 else throw("Strict value is not equal to itself.")
12061206
12071207
12081208 @Callable(dA)
1209-func unstakeAndGetNoLess (fL,fZ,fU) = {
1210- let fC = if (aE())
1209+func unstakeAndGetNoLess (fJ,fX,fS) = {
1210+ let fA = if (aE())
12111211 then true
12121212 else (aQ == k)
1213- let ew = [if (!(fC))
1213+ let eu = [if (!(fA))
12141214 then true
12151215 else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
12161216 then true
12171217 else throw("no payments are expected")]
1218- if ((ew == ew))
1218+ if ((eu == eu))
12191219 then {
12201220 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
12211221 if ((da == da))
12221222 then {
1223- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224- if ((fM == fM))
1223+ let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1224+ if ((fK == fK))
12251225 then {
1226- let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
1226+ let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fJ, dA.caller)
12271227 let cd = cx._1
12281228 let ce = cx._2
12291229 let cf = cx._10
1230- let ga = [if ((cd >= fZ))
1230+ let fY = [if ((cd >= fX))
12311231 then true
1232- else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
1232+ else throw(makeString(["amount asset amount to receive is less than ", toString(fX)], "")), if ((ce >= fS))
12331233 then true
1234- else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235- if ((ga == ga))
1234+ else throw(makeString(["price asset amount to receive is less than ", toString(fS)], ""))]
1235+ if ((fY == fY))
12361236 then {
1237- let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238- if ((fR == fR))
1237+ let fP = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1238+ if ((fP == fP))
12391239 then {
1240- let gb = db(-(cd), -(ce), 0)
1241- let fj = gb._1
1242- let cS = gb._2
1243- let fk = df(da, cS)
1244- if ((fk == fk))
1245- then (cf ++ fj)
1240+ let fZ = db(-(cd), -(ce), 0)
1241+ let fh = fZ._1
1242+ let cS = fZ._2
1243+ let fi = df(da, cS)
1244+ if ((fi == fi))
1245+ then (cf ++ fh)
12461246 else throw("Strict value is not equal to itself.")
12471247 }
12481248 else throw("Strict value is not equal to itself.")
12591259
12601260
12611261 @Callable(dA)
1262-func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
1262+func activate (ga,gb) = if ((toString(dA.caller) != toString(az)))
12631263 then throw("permissions denied")
1264- else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
1264+ else $Tuple2([StringEntry(R(), ga), StringEntry(S(), gb)], "success")
12651265
12661266
12671267
12681268 @Callable(dA)
12691269 func refreshKLp () = {
1270- let ge = valueOrElse(getInteger(X), 0)
1271- let gf = if (((height - ge) >= aa))
1270+ let gc = valueOrElse(getInteger(X), 0)
1271+ let gd = if (((height - gc) >= aa))
12721272 then unit
12731273 else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274- if ((gf == gf))
1274+ if ((gd == gd))
12751275 then {
12761276 let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277- let gg = db(0, 0, 0)
1278- let gh = gg._1
1279- let cS = gg._2
1277+ let ge = db(0, 0, 0)
1278+ let gf = ge._1
1279+ let cS = ge._2
12801280 let de = if ((dm != cS))
1281- then gh
1281+ then gf
12821282 else aw("nothing to refresh")
12831283 $Tuple2(de, toString(cS))
12841284 }
12991299
13001300 @Callable(dA)
13011301 func calcPricesWrapperREADONLY (bx,by,bC) = {
1302- let gi = bB(bx, by, bC)
1303- $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
1302+ let gg = bB(bx, by, bC)
1303+ $Tuple2(nil, [toString(gg[0]), toString(gg[1]), toString(gg[2])])
13041304 }
13051305
13061306
13371337 func statsREADONLY () = {
13381338 let bD = aG()
13391339 let bO = fromBase58String(bD[n])
1340- let gj = bD[o]
1341- let gk = bD[p]
1340+ let gh = bD[o]
1341+ let gi = bD[p]
13421342 let cq = bD[s]
13431343 let cr = bD[t]
13441344 let bE = parseIntValue(bD[q])
13451345 let bF = parseIntValue(bD[r])
1346- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347- let gm = bo(gj)
1348- let gn = bo(gk)
1349- let go = if ((gl == 0))
1346+ let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347+ let gk = bo(gh)
1348+ let gl = bo(gi)
1349+ let gm = if ((gj == 0))
13501350 then [c, c, c]
1351- else bB(gm, gn, gl)
1351+ else bB(gk, gl, gj)
13521352 let bY = 0
1353- let gp = A(go[1], a)
1354- let gq = A(go[2], a)
1355- let gr = value(getInteger(az, aj(toString(this))))
1356- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
1353+ let gn = A(gm[1], a)
1354+ let go = A(gm[2], a)
1355+ let gp = value(getInteger(az, aj(toString(this))))
1356+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gk), toString(gl), toString(gj), toString(bY), toString(gn), toString(go), toString(gp)], h))
13571357 }
13581358
13591359
13691369 let bE = parseIntValue(bD[q])
13701370 let bF = parseIntValue(bD[r])
13711371 let bR = bD[m]
1372- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373- let gm = bo(co)
1374- let gn = bo(cp)
1375- let bz = w(gm, bE)
1376- let bA = w(gn, bF)
1377- let bX = if ((gl == 0))
1372+ let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373+ let gk = bo(co)
1374+ let gl = bo(cp)
1375+ let bz = w(gk, bE)
1376+ let bA = w(gl, bF)
1377+ let bX = if ((gj == 0))
13781378 then c
13791379 else bq(bA, bz)
13801380 let cu = w(ci, bE)
13821382 let ck = A(cv, bF)
13831383 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
13841384 let cF = dG._1
1385- let gs = dG._3
1385+ let gq = dG._3
13861386 let bT = dG._4
13871387 let bV = dG._5
13881388 let bS = dG._6
14021402 let bE = parseIntValue(bD[q])
14031403 let bF = parseIntValue(bD[r])
14041404 let bR = bD[m]
1405- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406- let gt = bo(co)
1407- let gu = bo(cp)
1408- let gv = w(gt, bE)
1409- let gw = w(gu, bF)
1410- let bX = if ((gl == 0))
1405+ let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406+ let gr = bo(co)
1407+ let gs = bo(cp)
1408+ let gt = w(gr, bE)
1409+ let gu = w(gs, bF)
1410+ let bX = if ((gj == 0))
14111411 then c
1412- else bq(gw, gv)
1412+ else bq(gu, gt)
14131413 let cv = w(ck, bF)
14141414 let cu = fraction(cv, b, bX)
14151415 let ci = A(cu, bE)
14161416 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
14171417 let cF = dG._1
1418- let gs = dG._3
1418+ let gq = dG._3
14191419 let bT = dG._4
14201420 let bV = dG._5
14211421 let bS = dG._6
14251425
14261426
14271427 @Callable(dA)
1428-func evaluateGetREADONLY (gx,gy) = {
1429- let cx = bK("", gx, gy, this)
1428+func evaluateGetREADONLY (gv,gw) = {
1429+ let cx = bK("", gv, gw, this)
14301430 let cd = cx._1
14311431 let ce = cx._2
14321432 let bT = cx._5
14381438 }
14391439
14401440
1441-@Verifier(gz)
1442-func gA () = {
1443- let gB = {
1444- let dL = eO()
1441+@Verifier(gx)
1442+func gy () = {
1443+ let gz = {
1444+ let dL = eM()
14451445 if ($isInstanceOf(dL, "ByteVector"))
14461446 then {
1447- let eS = dL
1448- eS
1447+ let eQ = dL
1448+ eQ
14491449 }
14501450 else if ($isInstanceOf(dL, "Unit"))
1451- then gz.senderPublicKey
1451+ then gx.senderPublicKey
14521452 else throw("Match error")
14531453 }
1454- let dL = gz
1454+ let dL = gx
14551455 if ($isInstanceOf(dL, "Order"))
14561456 then {
14571457 let di = dL
1458- let gC = aF()
1459- let gD = dh(di)
1460- let ao = gD._1
1461- let ap = gD._2
1458+ let gA = aF()
1459+ let gB = dh(di)
1460+ let ao = gB._1
1461+ let ap = gB._2
14621462 let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463- let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
1463+ let ar = sigVerify(di.bodyBytes, di.proofs[1], gA)
14641464 if (if (if (ao)
14651465 then aq
14661466 else false)
14711471 }
14721472 else if ($isInstanceOf(dL, "SetScriptTransaction"))
14731473 then {
1474- let eP = dL
1475- let gE = blake2b256(value(eP.script))
1476- let gF = fromBase64String(value(getString(az, al())))
1477- let gG = scriptHash(this)
1478- if (if ((gF == gE))
1479- then (gG != gE)
1474+ let eN = dL
1475+ let gC = blake2b256(value(eN.script))
1476+ let gD = fromBase64String(value(getString(az, al())))
1477+ let gE = scriptHash(this)
1478+ if (if ((gD == gC))
1479+ then (gE != gC)
14801480 else false)
14811481 then true
1482- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1482+ else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
14831483 }
1484- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1484+ else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
14851485 }
14861486
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(1000000000000000000)
77
88 let c = toBigInt(0)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(1)
1313
1414 let f = toBigInt(2)
1515
1616 let g = "WAVES"
1717
1818 let h = "__"
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 5
3535
3636 let q = 6
3737
3838 let r = 7
3939
4040 let s = 8
4141
4242 let t = 9
4343
4444 let u = 1
4545
4646 let v = 7
4747
4848 func w (x,y) = fraction(toBigInt(x), b, toBigInt(y))
4949
5050
5151 func z (x,y) = fraction(x, b, y)
5252
5353
5454 func A (B,C) = toInt(fraction(B, toBigInt(C), b))
5555
5656
5757 func D (B,C,E) = toInt(fraction(B, toBigInt(C), b, E))
5858
5959
6060 func F (B) = if ((c > B))
6161 then -(B)
6262 else B
6363
6464
6565 func G () = "%s__factoryContract"
6666
6767
6868 func H () = "%s__managerPublicKey"
6969
7070
7171 func I () = "%s__pendingManagerPublicKey"
7272
7373
7474 func J () = "%s%s__price__last"
7575
7676
7777 func K (L,M) = makeString(["%s%s%d%d__price__history", toString(L), toString(M)], h)
7878
7979
8080 func N (O,P) = ((("%s%s%s__P__" + O) + "__") + P)
8181
8282
8383 func Q (O,P) = ((("%s%s%s__G__" + O) + "__") + P)
8484
8585
8686 func R () = "%s__amountAsset"
8787
8888
8989 func S () = "%s__priceAsset"
9090
9191
9292 let T = "%s__fee"
9393
9494 let U = fraction(10, a, 10000)
9595
9696 let V = valueOrElse(getInteger(this, T), U)
9797
9898 let W = makeString(["%s", "kLp"], h)
9999
100100 let X = makeString(["%s", "kLpRefreshedHeight"], h)
101101
102102 let Y = makeString(["%s", "refreshKLpDelay"], h)
103103
104104 let Z = 30
105105
106106 let aa = valueOrElse(getInteger(this, Y), Z)
107107
108108 func ab () = "%s__factoryConfig"
109109
110110
111111 func ac () = "%s%s__matcher__publicKey"
112112
113113
114114 func ad (ae,af) = (((("%d%d%s__" + ae) + "__") + af) + "__config")
115115
116116
117117 func ag (ah) = ("%s%s%s__mappings__baseAsset2internalId__" + ah)
118118
119119
120120 func ai () = "%s__shutdown"
121121
122122
123123 func aj (ak) = ("%s%s__poolWeight__" + ak)
124124
125125
126126 func al () = "%s__allowedLpScriptHash"
127127
128128
129129 let am = "%s__feeCollectorAddress"
130130
131131 func an (ao,ap,aq,ar) = throw((((((((("order validation failed: orderValid=" + toString(ao)) + " (") + ap) + ")") + " senderValid=") + toString(aq)) + " matcherValid=") + toString(ar)))
132132
133133
134134 func as (at,au) = valueOrErrorMessage(getString(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
135135
136136
137137 func av (at,au) = valueOrErrorMessage(getInteger(at, au), makeString(["mandatory ", toString(at), ".", au, " is not defined"], ""))
138138
139139
140140 func aw (ax) = throw(makeString(["lp.ride:", ax], " "))
141141
142142
143143 func ay (ax) = makeString(["lp.ride:", ax], " ")
144144
145145
146146 let az = addressFromStringValue(as(this, G()))
147147
148148 let aA = addressFromStringValue(as(az, am))
149149
150150 let aB = {
151151 let aC = invoke(az, "getInFeeREADONLY", [toString(this)], nil)
152152 if ($isInstanceOf(aC, "Int"))
153153 then aC
154154 else throw(($getType(aC) + " couldn't be cast to Int"))
155155 }
156156
157157 let aD = {
158158 let aC = invoke(az, "getOutFeeREADONLY", [toString(this)], nil)
159159 if ($isInstanceOf(aC, "Int"))
160160 then aC
161161 else throw(($getType(aC) + " couldn't be cast to Int"))
162162 }
163163
164164 func aE () = valueOrElse(getBoolean(az, ai()), false)
165165
166166
167167 func aF () = fromBase58String(as(az, ac()))
168168
169169
170170 func aG () = {
171171 let aH = as(this, R())
172172 let aI = as(this, S())
173173 let af = av(az, ag(aI))
174174 let ae = av(az, ag(aH))
175175 split(as(az, ad(toString(ae), toString(af))), h)
176176 }
177177
178178
179179 func aJ (aK) = if ((aK == g))
180180 then unit
181181 else fromBase58String(aK)
182182
183183
184184 func aL (aK) = if ((aK == unit))
185185 then g
186186 else toBase58String(value(aK))
187187
188188
189189 func aM (aN) = $Tuple7(addressFromStringValue(aN[l]), parseIntValue(aN[m]), fromBase58String(aN[n]), aJ(aN[o]), aJ(aN[p]), parseIntValue(aN[q]), parseIntValue(aN[r]))
190190
191191
192192 let aO = aM(aG())
193193
194194 let aP = aO
195195
196196 let aQ = aP._2
197197
198198 let aR = aP._3
199199
200200 let aS = aP._4
201201
202202 let aT = aP._5
203203
204204 let aU = aP._6
205205
206206 let aV = aP._7
207207
208208 func aW () = split(as(az, ab()), h)
209209
210210
211211 let aX = valueOrErrorMessage(addressFromString(aW()[u]), "incorrect staking address")
212212
213213 let aY = valueOrErrorMessage(addressFromString(aW()[v]), "incorrect staking address")
214214
215215 func aZ (ba,bb,bc,bd,be,bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(ba), toString(bb), toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj)], h)
216216
217217
218218 func bk (bl,bm,bn,bd,bg,bh) = makeString(["%d%d%d%d%d%d", toString(bl), toString(bm), toString(bn), toString(bd), toString(bg), toString(bh)], h)
219219
220220
221221 func bo (bp) = if ((bp == "WAVES"))
222222 then wavesBalance(this).available
223223 else assetBalance(this, fromBase58String(bp))
224224
225225
226226 func bq (br,bs) = fraction(br, b, bs)
227227
228228
229229 func bt (br,bs,E) = fraction(br, b, bs, E)
230230
231231
232232 func bu (bv,bw,bx,by) = {
233233 let bz = w(bx, bv)
234234 let bA = w(by, bw)
235235 bq(bA, bz)
236236 }
237237
238238
239239 func bB (bx,by,bC) = {
240240 let bD = aG()
241241 let bE = parseIntValue(bD[q])
242242 let bF = parseIntValue(bD[r])
243243 let bG = bu(bE, bF, bx, by)
244244 let bs = w(bx, bE)
245245 let br = w(by, bF)
246246 let bH = w(bC, a)
247247 let bI = bq(bs, bH)
248248 let bJ = bq(br, bH)
249249 [bG, bI, bJ]
250250 }
251251
252252
253253 func bK (bL,bM,bN,O) = {
254254 let bD = aG()
255255 let bO = bD[n]
256256 let bP = bD[o]
257257 let bQ = bD[p]
258258 let bv = parseIntValue(bD[q])
259259 let bw = parseIntValue(bD[r])
260260 let bR = bD[m]
261261 let bS = valueOrErrorMessage(assetInfo(fromBase58String(bO)), (("Asset " + bO) + " doesn't exist")).quantity
262262 if ((bO != bM))
263263 then throw("Invalid asset passed.")
264264 else {
265265 let bT = bo(bP)
266266 let bU = w(bT, bv)
267267 let bV = bo(bQ)
268268 let bW = w(bV, bw)
269269 let bX = bq(bW, bU)
270270 let bY = A(bX, a)
271271 let bZ = w(bN, a)
272272 let ca = w(bS, a)
273273 let cb = fraction(bU, bZ, ca)
274274 let cc = fraction(bW, bZ, ca)
275275 let cd = D(cb, bv, FLOOR)
276276 let ce = D(cc, bw, FLOOR)
277277 let cf = if ((bL == ""))
278278 then nil
279279 else [ScriptTransfer(O, cd, if ((bP == "WAVES"))
280280 then unit
281281 else fromBase58String(bP)), ScriptTransfer(O, ce, if ((bQ == "WAVES"))
282282 then unit
283283 else fromBase58String(bQ)), StringEntry(Q(toString(O), bL), bk(cd, ce, bN, bY, height, lastBlock.timestamp)), IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY)]
284284 $Tuple10(cd, ce, bP, bQ, bT, bV, bS, bX, bR, cf)
285285 }
286286 }
287287
288288
289289 func cg (bL,ch,ci,cj,ck,cl,O,cm,cn) = {
290290 let bD = aG()
291291 let bO = fromBase58String(bD[n])
292292 let co = bD[o]
293293 let cp = bD[p]
294294 let cq = bD[s]
295295 let cr = bD[t]
296296 let bE = parseIntValue(bD[q])
297297 let bF = parseIntValue(bD[r])
298298 let bR = bD[m]
299299 let bS = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
300300 let cs = toBase58String(valueOrElse(cj, fromBase58String("WAVES")))
301301 let ct = toBase58String(valueOrElse(cl, fromBase58String("WAVES")))
302302 if (if ((co != cs))
303303 then true
304304 else (cp != ct))
305305 then throw("Invalid amt or price asset passed.")
306306 else {
307307 let bT = if (cm)
308308 then bo(co)
309309 else (bo(co) - ci)
310310 let bV = if (cm)
311311 then bo(cp)
312312 else (bo(cp) - ck)
313313 let cu = w(ci, bE)
314314 let cv = w(ck, bF)
315315 let cw = bq(cv, cu)
316316 let bU = w(bT, bE)
317317 let bW = w(bV, bF)
318318 let cx = if ((bS == 0))
319319 then {
320320 let bX = c
321321 let cy = c
322322 let bH = pow((cu * cv), 0, toBigInt(5), 1, 0, DOWN)
323323 $Tuple5(A(bH, a), A(cu, bE), A(cv, bF), bq((bW + cv), (bU + cu)), cy)
324324 }
325325 else {
326326 let bX = bq(bW, bU)
327327 let cy = fraction(F((bX - cw)), b, bX)
328328 let cz = w(ch, a)
329329 if (if ((bX != c))
330330 then (cy > cz)
331331 else false)
332332 then throw(((("Price slippage " + toString(cy)) + " exceeded the passed limit of ") + toString(cz)))
333333 else {
334334 let ca = w(bS, a)
335335 let cA = fraction(cu, bt(bW, bU, CEILING), b, CEILING)
336336 let cB = fraction(cv, b, bt(bW, bU, FLOOR), CEILING)
337337 let cC = if ((cA > cv))
338338 then $Tuple2(cB, cv)
339339 else $Tuple2(cu, cA)
340340 let cD = cC._1
341341 let cE = cC._2
342342 let bH = fraction(ca, cE, bW, FLOOR)
343343 $Tuple5(D(bH, a, FLOOR), D(cD, bE, CEILING), D(cE, bF, CEILING), bX, cy)
344344 }
345345 }
346346 let cF = cx._1
347347 let cG = cx._2
348348 let cH = cx._3
349349 let bY = A(cx._4, a)
350350 let cI = A(cx._5, a)
351351 if ((0 >= cF))
352352 then throw("Invalid calculations. LP calculated is less than zero.")
353353 else {
354354 let cJ = if (!(cn))
355355 then 0
356356 else cF
357357 let cK = (ci - cG)
358358 let cL = (ck - cH)
359359 let cM = [IntegerEntry(J(), bY), IntegerEntry(K(height, lastBlock.timestamp), bY), StringEntry(N(O, bL), aZ(cG, cH, cJ, bY, ch, cI, height, lastBlock.timestamp, cK, cL))]
360360 $Tuple13(cF, cJ, bY, bT, bV, bS, bO, bR, cM, cK, cL, cj, cl)
361361 }
362362 }
363363 }
364364
365365
366366 func cN (cO,cP,bS) = {
367367 let cQ = z(cO, toBigInt(aU))
368368 let cR = z(cP, toBigInt(aV))
369369 let cS = fraction(pow((cQ * cR), 0, toBigInt(5), 1, 18, DOWN), e, bS)
370370 if ((bS == d))
371371 then d
372372 else cS
373373 }
374374
375375
376376 func cT (cU,cV,cW) = {
377377 let cX = (toBigInt(bo(aL(aS))) - cU)
378378 let cY = (toBigInt(bo(aL(aT))) - cV)
379379 let cZ = (toBigInt(value(assetInfo(aR)).quantity) - cW)
380380 let da = cN(cX, cY, cZ)
381381 da
382382 }
383383
384384
385385 func db (dc,dd,cW) = {
386386 let cX = (bo(aL(aS)) + dc)
387387 let cY = (bo(aL(aT)) + dd)
388388 let cZ = (value(assetInfo(aR)).quantity + cW)
389389 let cS = cN(toBigInt(cX), toBigInt(cY), toBigInt(cZ))
390390 let de = [IntegerEntry(X, height), StringEntry(W, toString(cS))]
391391 $Tuple2(de, cS)
392392 }
393393
394394
395395 func df (dg,cS) = if ((cS >= dg))
396396 then true
397397 else aw(makeString(["updated KLp lower than current KLp", toString(dg), toString(cS)], " "))
398398
399399
400400 func dh (di) = {
401401 let dj = di.amount
402402 let dk = fraction(di.amount, di.price, a, FLOOR)
403403 let dl = if ((di.orderType == Buy))
404404 then $Tuple2(dj, -(dk))
405405 else $Tuple2(-(dj), dk)
406406 let dc = dl._1
407407 let dd = dl._2
408408 if (if (if (aE())
409409 then true
410410 else (aQ == j))
411411 then true
412412 else (aQ == k))
413413 then throw("Exchange operations disabled")
414414 else if (if ((di.assetPair.amountAsset != aS))
415415 then true
416416 else (di.assetPair.priceAsset != aT))
417417 then throw("Wrong order assets.")
418418 else {
419419 let dm = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, W), ay("kLp is required"))), ay("invalid kLp"))
420420 let dn = db(dc, dd, 0)
421421 let do = dn._1
422422 let dp = dn._2
423423 let dq = db(0, 0, 0)
424424 let dr = dq._1
425425 let ds = dq._2
426426 let dt = (dp >= dm)
427427 let cO = bo(aL(aS))
428428 let cP = bo(aL(aT))
429429 let cQ = w(cO, aU)
430- let du = (cQ + w(dc, aU))
430+ let du = (cO + dc)
431431 let cR = w(cP, aV)
432- let dv = (cR + w(dd, aV))
433- let dw = (cQ * cR)
434- let dx = (du * dv)
432+ let dv = (cP + dd)
433+ let dw = pow((cO * cP), 0, 5, 1, 18, DOWN)
434+ let dx = pow((du * dv), 0, 5, 1, 18, DOWN)
435435 let dy = makeString([toString(dm), toString(dp), toString(dw), toString(dx)], " ")
436436 $Tuple2(dt, dy)
437437 }
438438 }
439439
440440
441441 func dz (dA) = if ((size(dA.payments) != 1))
442442 then throw("exactly 1 payment is expected")
443443 else {
444444 let dB = value(dA.payments[0])
445445 let bM = value(dB.assetId)
446446 let dC = dB.amount
447447 let cx = bK(toBase58String(dA.transactionId), toBase58String(bM), dC, dA.caller)
448448 let cd = cx._1
449449 let ce = cx._2
450450 let bR = parseIntValue(cx._9)
451451 let cf = cx._10
452452 if (if (aE())
453453 then true
454454 else (bR == k))
455455 then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
456456 else $Tuple5(cd, ce, dC, bM, cf)
457457 }
458458
459459
460460 func dD (dA,ch,cn) = if ((size(dA.payments) != 2))
461461 then throw("exactly 2 payments are expected")
462462 else {
463463 let dE = value(dA.payments[0])
464464 let dF = value(dA.payments[1])
465465 let dG = cg(toBase58String(dA.transactionId), ch, dE.amount, dE.assetId, dF.amount, dF.assetId, toString(dA.caller), false, cn)
466466 let bR = parseIntValue(dG._8)
467467 if (if (if (aE())
468468 then true
469469 else (bR == i))
470470 then true
471471 else (bR == k))
472472 then throw(("Put operation is blocked by admin. Status = " + toString(bR)))
473473 else dG
474474 }
475475
476476
477477 func dH (dI) = {
478478 let dJ = invoke(az, "emit", [dI], nil)
479479 if ((dJ == dJ))
480480 then {
481481 let dK = {
482482 let dL = dJ
483483 if ($isInstanceOf(dL, "Address"))
484484 then {
485485 let dM = dL
486486 invoke(dM, "emit", [dI], nil)
487487 }
488488 else unit
489489 }
490490 if ((dK == dK))
491491 then dI
492492 else throw("Strict value is not equal to itself.")
493493 }
494494 else throw("Strict value is not equal to itself.")
495495 }
496496
497497
498498 func dN (dI,V) = {
499499 let dO = if ((V == 0))
500500 then 0
501501 else fraction(dI, V, a)
502502 $Tuple2((dI - dO), dO)
503503 }
504504
505505
506506 func dP (dQ,dR,O,P) = {
507507 let dS = (P == unit)
508508 let dT = bo(aL(aS))
509509 let dU = bo(aL(aT))
510510 let dV = if ((dR == aS))
511511 then true
512512 else if ((dR == aT))
513513 then false
514514 else aw("invalid asset")
515515 let dW = if (dS)
516516 then $Tuple2(dT, dU)
517517 else if (dV)
518518 then $Tuple2((dT - dQ), dU)
519519 else $Tuple2(dT, (dU - dQ))
520520 let dX = dW._1
521521 let dY = dW._2
522522 let dZ = if (dV)
523523 then $Tuple2(dQ, 0)
524524 else $Tuple2(0, dQ)
525525 let ea = dZ._1
526526 let eb = dZ._2
527527 let dj = dN(ea, aB)._1
528528 let dk = dN(eb, aB)._1
529529 let ec = dN(dQ, aB)
530530 let ed = ec._1
531531 let dO = ec._2
532- let ee = (dX + dj)
533- let ef = (dY + dk)
534- let eg = bq(w(ef, aV), w(ee, aU))
535- let eh = A(eg, a)
536- let ei = if (dV)
532+ let du = (dX + dj)
533+ let dv = (dY + dk)
534+ let ee = bq(w(dv, aV), w(du, aU))
535+ let ef = A(ee, a)
536+ let eg = if (dV)
537537 then dX
538538 else dY
539- let ej = toBigInt(ei)
540- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541- let el = if ((ek > d))
539+ let eh = toBigInt(eg)
540+ let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
541+ let ej = if ((ei > d))
542542 then true
543543 else aw("initial deposit requires all coins")
544- if ((el == el))
544+ if ((ej == ej))
545545 then {
546- let em = toBigInt(ed)
547- let en = max([0, toInt(((ek * (sqrtBigInt((b + ((em * b) / ej)), 18, 18, DOWN) - b)) / b))])
546+ let ek = toBigInt(ed)
547+ let el = max([0, toInt(((ei * (sqrtBigInt((b + ((ek * b) / eh)), 18, 18, DOWN) - b)) / b))])
548548 let cM = if (dS)
549549 then nil
550- else [IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, en, eh, 0, 0, height, lastBlock.timestamp, 0, 0))]
551- let eo = bq(w(dY, aV), w(dX, aU))
552- let ep = A(eo, a)
553- let eq = {
554- let er = if (dV)
550+ else [IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef), StringEntry(N(toString(value(O)), toBase58String(value(P))), aZ(ea, eb, el, ef, 0, 0, height, lastBlock.timestamp, 0, 0))]
551+ let em = bq(w(dY, aV), w(dX, aU))
552+ let en = A(em, a)
553+ let eo = {
554+ let ep = if (dV)
555555 then $Tuple2(ea, dX)
556556 else $Tuple2(eb, dY)
557- let dI = er._1
558- let es = er._2
559- let et = toInt(fraction(ek, toBigInt((dI / 2)), toBigInt(es)))
560- fraction((en - et), a, et)
557+ let dI = ep._1
558+ let eq = ep._2
559+ let er = toInt(fraction(ei, toBigInt((dI / 2)), toBigInt(eq)))
560+ fraction((el - er), a, er)
561561 }
562- $Tuple5(en, cM, dO, eq, dV)
562+ $Tuple5(el, cM, dO, eo, dV)
563563 }
564564 else throw("Strict value is not equal to itself.")
565565 }
566566
567567
568-func eu (ev,ed,dR,O,P) = {
568+func es (et,ed,dR,O,P) = {
569569 let dS = (P == unit)
570570 let bD = aG()
571571 let bE = parseIntValue(bD[q])
572572 let bF = parseIntValue(bD[r])
573- let ew = [if ((dR == aR))
573+ let eu = [if ((dR == aR))
574574 then true
575575 else aw("invalid lp asset")]
576- if ((ew == ew))
576+ if ((eu == eu))
577577 then {
578- let ex = if ((ev == aS))
578+ let ev = if ((et == aS))
579579 then true
580- else if ((ev == aT))
580+ else if ((et == aT))
581581 then false
582582 else aw("invalid asset")
583- let ey = if (ex)
583+ let ew = if (ev)
584584 then toBigInt(bo(aL(aS)))
585585 else toBigInt(bo(aL(aT)))
586- let ez = if (ex)
586+ let ex = if (ev)
587587 then bE
588588 else bF
589- let eA = bo(aL(aS))
590- let eB = bo(aL(aT))
591- let eC = if (ex)
592- then eA
593- else eB
594- let eD = toBigInt(eC)
595- let ek = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596- let eE = toBigInt(ed)
597- let eF = max([0, toInt(((ey * (b - pow((b - ((eE * b) / ek)), 18, f, 0, 18, DOWN))) / b))])
598- let eG = dN(eF, aD)
589+ let ey = bo(aL(aS))
590+ let ez = bo(aL(aT))
591+ let eA = if (ev)
592+ then ey
593+ else ez
594+ let eB = toBigInt(eA)
595+ let ei = toBigInt(valueOrErrorMessage(assetInfo(aR), (("asset " + toBase58String(aR)) + " doesn't exist")).quantity)
596+ let eC = toBigInt(ed)
597+ let eD = max([0, toInt(((ew * (b - pow((b - ((eC * b) / ei)), 18, f, 0, 18, DOWN))) / b))])
598+ let eE = dN(eD, aD)
599+ let eF = eE._1
600+ let dO = eE._2
601+ let eG = if (ev)
602+ then $Tuple4(eF, 0, (ey - eD), ez)
603+ else $Tuple4(0, eF, ey, (ez - eD))
599604 let eH = eG._1
600- let dO = eG._2
601- let eI = if (ex)
602- then $Tuple4(eH, 0, (eA - eF), eB)
603- else $Tuple4(0, eH, eA, (eB - eF))
604- let eJ = eI._1
605- let eK = eI._2
606- let eL = eI._3
607- let eM = eI._4
608- let eg = bq(w(eM, aV), w(eL, aU))
609- let eh = A(eg, a)
605+ let eI = eG._2
606+ let eJ = eG._3
607+ let eK = eG._4
608+ let ee = bq(w(eK, aV), w(eJ, aU))
609+ let ef = A(ee, a)
610610 let cM = if (dS)
611611 then nil
612- else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eJ, eK, ed, eh, height, lastBlock.timestamp)), IntegerEntry(J(), eh), IntegerEntry(K(height, lastBlock.timestamp), eh)]
613- let eo = bq(w(eB, aV), w(eA, aU))
614- let ep = A(eo, a)
615- let eq = {
616- let eN = (toInt(fraction(ey, eE, ek)) * 2)
617- fraction((eH - eN), a, eN)
612+ else [StringEntry(Q(toString(value(O)), toBase58String(value(P))), bk(eH, eI, ed, ef, height, lastBlock.timestamp)), IntegerEntry(J(), ef), IntegerEntry(K(height, lastBlock.timestamp), ef)]
613+ let em = bq(w(ez, aV), w(ey, aU))
614+ let en = A(em, a)
615+ let eo = {
616+ let eL = (toInt(fraction(ew, eC, ei)) * 2)
617+ fraction((eF - eL), a, eL)
618618 }
619- $Tuple5(eH, cM, dO, eq, ex)
619+ $Tuple5(eF, cM, dO, eo, ev)
620620 }
621621 else throw("Strict value is not equal to itself.")
622622 }
623623
624624
625-func eO () = {
625+func eM () = {
626626 let dL = getString(H())
627627 if ($isInstanceOf(dL, "String"))
628628 then {
629- let eP = dL
630- fromBase58String(eP)
629+ let eN = dL
630+ fromBase58String(eN)
631631 }
632632 else if ($isInstanceOf(dL, "Unit"))
633633 then unit
634634 else throw("Match error")
635635 }
636636
637637
638-func eQ () = {
638+func eO () = {
639639 let dL = getString(I())
640640 if ($isInstanceOf(dL, "String"))
641641 then {
642- let eP = dL
643- fromBase58String(eP)
642+ let eN = dL
643+ fromBase58String(eN)
644644 }
645645 else if ($isInstanceOf(dL, "Unit"))
646646 then unit
647647 else throw("Match error")
648648 }
649649
650650
651-func eR (dA) = {
652- let dL = eO()
651+func eP (dA) = {
652+ let dL = eM()
653653 if ($isInstanceOf(dL, "ByteVector"))
654654 then {
655- let eS = dL
656- (dA.callerPublicKey == eS)
655+ let eQ = dL
656+ (dA.callerPublicKey == eQ)
657657 }
658658 else if ($isInstanceOf(dL, "Unit"))
659659 then (dA.caller == this)
660660 else throw("Match error")
661661 }
662662
663663
664-func eT (dA) = {
665- let eU = throw("Permission denied")
666- let dL = eO()
664+func eR (dA) = {
665+ let eS = throw("Permission denied")
666+ let dL = eM()
667667 if ($isInstanceOf(dL, "ByteVector"))
668668 then {
669- let eS = dL
670- if ((dA.callerPublicKey == eS))
669+ let eQ = dL
670+ if ((dA.callerPublicKey == eQ))
671671 then true
672- else eU
672+ else eS
673673 }
674674 else if ($isInstanceOf(dL, "Unit"))
675675 then if ((dA.caller == this))
676676 then true
677- else eU
677+ else eS
678678 else throw("Match error")
679679 }
680680
681681
682682 @Callable(dA)
683-func setManager (eV) = {
684- let eW = eT(dA)
685- if ((eW == eW))
683+func setManager (eT) = {
684+ let eU = eR(dA)
685+ if ((eU == eU))
686686 then {
687- let eX = fromBase58String(eV)
688- if ((eX == eX))
689- then [StringEntry(I(), eV)]
687+ let eV = fromBase58String(eT)
688+ if ((eV == eV))
689+ then [StringEntry(I(), eT)]
690690 else throw("Strict value is not equal to itself.")
691691 }
692692 else throw("Strict value is not equal to itself.")
693693 }
694694
695695
696696
697697 @Callable(dA)
698698 func confirmManager () = {
699- let eY = eQ()
700- let eZ = if (isDefined(eY))
699+ let eW = eO()
700+ let eX = if (isDefined(eW))
701701 then true
702702 else throw("No pending manager")
703- if ((eZ == eZ))
703+ if ((eX == eX))
704704 then {
705- let fa = if ((dA.callerPublicKey == value(eY)))
705+ let eY = if ((dA.callerPublicKey == value(eW)))
706706 then true
707707 else throw("You are not pending manager")
708- if ((fa == fa))
709- then [StringEntry(H(), toBase58String(value(eY))), DeleteEntry(I())]
708+ if ((eY == eY))
709+ then [StringEntry(H(), toBase58String(value(eW))), DeleteEntry(I())]
710710 else throw("Strict value is not equal to itself.")
711711 }
712712 else throw("Strict value is not equal to itself.")
713713 }
714714
715715
716716
717717 @Callable(dA)
718-func put (ch,fb) = if ((0 > ch))
718+func put (ch,eZ) = if ((0 > ch))
719719 then throw("Invalid slippageTolerance passed")
720720 else {
721721 let dG = dD(dA, ch, true)
722722 let cJ = dG._2
723723 let bO = dG._7
724724 let cf = dG._9
725725 let cK = dG._10
726726 let cL = dG._11
727- let fc = dG._12
728- let fd = dG._13
727+ let fa = dG._12
728+ let fb = dG._13
729729 let dE = toBigInt(value(dA.payments[0]).amount)
730730 let dF = toBigInt(value(dA.payments[1]).amount)
731731 let da = cT(dE, dF, toBigInt(0))
732732 if ((da == da))
733733 then {
734734 let dJ = invoke(az, "emit", [cJ], nil)
735735 if ((dJ == dJ))
736736 then {
737737 let dK = {
738738 let dL = dJ
739739 if ($isInstanceOf(dL, "Address"))
740740 then {
741741 let dM = dL
742742 invoke(dM, "emit", [cJ], nil)
743743 }
744744 else unit
745745 }
746746 if ((dK == dK))
747747 then {
748- let fe = if ((cK > 0))
749- then invoke(aY, "put", nil, [AttachedPayment(fc, cK)])
748+ let fc = if ((cK > 0))
749+ then invoke(aY, "put", nil, [AttachedPayment(fa, cK)])
750750 else nil
751- if ((fe == fe))
751+ if ((fc == fc))
752752 then {
753- let ff = if ((cL > 0))
754- then invoke(aY, "put", nil, [AttachedPayment(fd, cL)])
753+ let fd = if ((cL > 0))
754+ then invoke(aY, "put", nil, [AttachedPayment(fb, cL)])
755755 else nil
756- if ((ff == ff))
756+ if ((fd == fd))
757757 then {
758- let fg = if (fb)
758+ let fe = if (eZ)
759759 then {
760- let fh = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761- if ((fh == fh))
760+ let ff = invoke(aX, "stake", nil, [AttachedPayment(bO, cJ)])
761+ if ((ff == ff))
762762 then nil
763763 else throw("Strict value is not equal to itself.")
764764 }
765765 else [ScriptTransfer(dA.caller, cJ, bO)]
766- let fi = db(0, 0, 0)
767- if ((fi == fi))
766+ let fg = db(0, 0, 0)
767+ if ((fg == fg))
768768 then {
769- let cS = fi._2
770- let fj = fi._1
771- let fk = df(da, cS)
772- if ((fk == fk))
773- then ((cf ++ fg) ++ fj)
769+ let cS = fg._2
770+ let fh = fg._1
771+ let fi = df(da, cS)
772+ if ((fi == fi))
773+ then ((cf ++ fe) ++ fh)
774774 else throw("Strict value is not equal to itself.")
775775 }
776776 else throw("Strict value is not equal to itself.")
777777 }
778778 else throw("Strict value is not equal to itself.")
779779 }
780780 else throw("Strict value is not equal to itself.")
781781 }
782782 else throw("Strict value is not equal to itself.")
783783 }
784784 else throw("Strict value is not equal to itself.")
785785 }
786786 else throw("Strict value is not equal to itself.")
787787 }
788788
789789
790790
791791 @Callable(dA)
792-func putForFree (fl) = if ((0 > fl))
792+func putForFree (fj) = if ((0 > fj))
793793 then throw("Invalid value passed")
794794 else {
795- let dG = dD(dA, fl, false)
795+ let dG = dD(dA, fj, false)
796796 let cf = dG._9
797797 let dE = toBigInt(value(dA.payments[0]).amount)
798798 let dF = toBigInt(value(dA.payments[1]).amount)
799799 let da = cT(dE, dF, toBigInt(0))
800800 if ((da == da))
801801 then {
802- let fm = db(0, 0, 0)
803- let fj = fm._1
804- let cS = fm._2
805- let fk = df(da, cS)
806- if ((fk == fk))
807- then (cf ++ fj)
802+ let fk = db(0, 0, 0)
803+ let fh = fk._1
804+ let cS = fk._2
805+ let fi = df(da, cS)
806+ if ((fi == fi))
807+ then (cf ++ fh)
808808 else throw("Strict value is not equal to itself.")
809809 }
810810 else throw("Strict value is not equal to itself.")
811811 }
812812
813813
814814
815815 @Callable(dA)
816-func putOneTkn (fn,fo) = {
817- let fp = {
816+func putOneTkn (fl,fm) = {
817+ let fn = {
818818 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
819819 if ($isInstanceOf(aC, "Boolean"))
820820 then aC
821821 else throw(($getType(aC) + " couldn't be cast to Boolean"))
822822 }
823- let fq = if (if (if (aE())
823+ let fo = if (if (if (aE())
824824 then true
825825 else (aQ == i))
826826 then true
827827 else (aQ == k))
828828 then true
829- else fp
830- let ew = [if (if (!(fq))
829+ else fn
830+ let eu = [if (if (!(fo))
831831 then true
832- else eR(dA))
832+ else eP(dA))
833833 then true
834834 else aw("put operation is blocked by admin"), if ((size(dA.payments) == 1))
835835 then true
836836 else aw("exactly 1 payment are expected")]
837- if ((ew == ew))
837+ if ((eu == eu))
838838 then {
839- let fr = dA.payments[0]
840- let dR = fr.assetId
841- let dQ = fr.amount
839+ let fp = dA.payments[0]
840+ let dR = fp.assetId
841+ let dQ = fp.amount
842842 let da = if ((dR == aS))
843843 then cT(toBigInt(dQ), toBigInt(0), toBigInt(0))
844844 else if ((dR == aT))
845845 then cT(toBigInt(0), toBigInt(dQ), toBigInt(0))
846846 else aw("payment asset is not supported")
847847 if ((da == da))
848848 then {
849849 let O = dA.caller
850850 let P = dA.transactionId
851- let fs = dP(dQ, dR, O, P)
852- if ((fs == fs))
851+ let fq = dP(dQ, dR, O, P)
852+ if ((fq == fq))
853853 then {
854- let dV = fs._5
855- let ft = fs._4
856- let dO = fs._3
857- let cM = fs._2
858- let fu = fs._1
859- let fv = if (if ((fn > 0))
860- then (fn > fu)
854+ let dV = fq._5
855+ let fr = fq._4
856+ let dO = fq._3
857+ let cM = fq._2
858+ let fs = fq._1
859+ let ft = if (if ((fl > 0))
860+ then (fl > fs)
861861 else false)
862- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
863- else fu
864- let dJ = dH(fv)
862+ then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
863+ else fs
864+ let dJ = dH(ft)
865865 if ((dJ == dJ))
866866 then {
867- let fg = if (fo)
867+ let fe = if (fm)
868868 then {
869- let fw = invoke(aX, "stake", nil, [AttachedPayment(aR, fv)])
870- if ((fw == fw))
869+ let fu = invoke(aX, "stake", nil, [AttachedPayment(aR, ft)])
870+ if ((fu == fu))
871871 then nil
872872 else throw("Strict value is not equal to itself.")
873873 }
874- else [ScriptTransfer(dA.caller, fv, aR)]
875- let fx = if ((dO > 0))
874+ else [ScriptTransfer(dA.caller, ft, aR)]
875+ let fv = if ((dO > 0))
876876 then [ScriptTransfer(aA, dO, dR)]
877877 else nil
878- let fy = if ((this == aA))
878+ let fw = if ((this == aA))
879879 then $Tuple2(0, 0)
880880 else if (dV)
881881 then $Tuple2(-(dO), 0)
882882 else $Tuple2(0, -(dO))
883- let dc = fy._1
884- let dd = fy._2
885- let fz = db(dc, dd, 0)
886- let fj = fz._1
887- let cS = fz._2
883+ let dc = fw._1
884+ let dd = fw._2
885+ let fx = db(dc, dd, 0)
886+ let fh = fx._1
887+ let cS = fx._2
888888 let dm = value(getString(W))
889- let fk = df(da, cS)
890- if ((fk == fk))
891- then $Tuple2((((cM ++ fg) ++ fx) ++ fj), fv)
889+ let fi = df(da, cS)
890+ if ((fi == fi))
891+ then $Tuple2((((cM ++ fe) ++ fv) ++ fh), ft)
892892 else throw("Strict value is not equal to itself.")
893893 }
894894 else throw("Strict value is not equal to itself.")
895895 }
896896 else throw("Strict value is not equal to itself.")
897897 }
898898 else throw("Strict value is not equal to itself.")
899899 }
900900 else throw("Strict value is not equal to itself.")
901901 }
902902
903903
904904
905905 @Callable(dA)
906906 func putOneTknREADONLY (dR,dQ) = {
907- let fA = dP(dQ, aJ(dR), unit, unit)
908- let fu = fA._1
909- let cM = fA._2
910- let dO = fA._3
911- let ft = fA._4
912- let dV = fA._5
913- $Tuple2(nil, $Tuple3(fu, dO, ft))
907+ let fy = dP(dQ, aJ(dR), unit, unit)
908+ let fs = fy._1
909+ let cM = fy._2
910+ let dO = fy._3
911+ let fr = fy._4
912+ let dV = fy._5
913+ $Tuple2(nil, $Tuple3(fs, dO, fr))
914914 }
915915
916916
917917
918918 @Callable(dA)
919-func getOneTkn (fB,fn) = {
920- let fp = {
919+func getOneTkn (fz,fl) = {
920+ let fn = {
921921 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
922922 if ($isInstanceOf(aC, "Boolean"))
923923 then aC
924924 else throw(($getType(aC) + " couldn't be cast to Boolean"))
925925 }
926- let fC = if (if (aE())
926+ let fA = if (if (aE())
927927 then true
928928 else (aQ == k))
929929 then true
930- else fp
931- let ew = [if (if (!(fC))
930+ else fn
931+ let eu = [if (if (!(fA))
932932 then true
933- else eR(dA))
933+ else eP(dA))
934934 then true
935935 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 1))
936936 then true
937937 else aw("exactly 1 payment are expected")]
938- if ((ew == ew))
938+ if ((eu == eu))
939939 then {
940- let ev = aJ(fB)
941- let fr = dA.payments[0]
942- let dR = fr.assetId
943- let ed = fr.amount
940+ let et = aJ(fz)
941+ let fp = dA.payments[0]
942+ let dR = fp.assetId
943+ let ed = fp.amount
944944 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
945945 if ((da == da))
946946 then {
947947 let O = dA.caller
948948 let P = dA.transactionId
949- let fD = eu(ev, ed, dR, O, P)
950- if ((fD == fD))
949+ let fB = es(et, ed, dR, O, P)
950+ if ((fB == fB))
951951 then {
952- let ex = fD._5
953- let ft = fD._4
954- let dO = fD._3
955- let cM = fD._2
956- let fE = fD._1
957- let dI = if (if ((fn > 0))
958- then (fn > fE)
952+ let ev = fB._5
953+ let fr = fB._4
954+ let dO = fB._3
955+ let cM = fB._2
956+ let fC = fB._1
957+ let dI = if (if ((fl > 0))
958+ then (fl > fC)
959959 else false)
960- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
961- else fE
962- let fF = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963- if ((fF == fF))
960+ then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
961+ else fC
962+ let fD = invoke(az, "burn", [ed], [AttachedPayment(dR, ed)])
963+ if ((fD == fD))
964964 then {
965- let fG = [ScriptTransfer(O, dI, ev)]
966- let fx = if ((dO > 0))
967- then [ScriptTransfer(aA, dO, ev)]
965+ let fE = [ScriptTransfer(O, dI, et)]
966+ let fv = if ((dO > 0))
967+ then [ScriptTransfer(aA, dO, et)]
968968 else nil
969- let fH = {
970- let fI = if ((this == aA))
969+ let fF = {
970+ let fG = if ((this == aA))
971971 then 0
972972 else dO
973- if (ex)
974- then $Tuple2(-((dI + fI)), 0)
975- else $Tuple2(0, -((dI + fI)))
973+ if (ev)
974+ then $Tuple2(-((dI + fG)), 0)
975+ else $Tuple2(0, -((dI + fG)))
976976 }
977- let dc = fH._1
978- let dd = fH._2
979- let fJ = db(dc, dd, 0)
980- let fj = fJ._1
981- let cS = fJ._2
982- let fk = df(da, cS)
983- if ((fk == fk))
984- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
977+ let dc = fF._1
978+ let dd = fF._2
979+ let fH = db(dc, dd, 0)
980+ let fh = fH._1
981+ let cS = fH._2
982+ let fi = df(da, cS)
983+ if ((fi == fi))
984+ then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
985985 else throw("Strict value is not equal to itself.")
986986 }
987987 else throw("Strict value is not equal to itself.")
988988 }
989989 else throw("Strict value is not equal to itself.")
990990 }
991991 else throw("Strict value is not equal to itself.")
992992 }
993993 else throw("Strict value is not equal to itself.")
994994 }
995995
996996
997997
998998 @Callable(dA)
999-func getOneTknREADONLY (ev,ed) = {
1000- let fK = eu(aJ(ev), ed, aR, unit, unit)
1001- let fE = fK._1
1002- let cM = fK._2
1003- let dO = fK._3
1004- let ft = fK._4
1005- let ex = fK._5
1006- $Tuple2(nil, $Tuple3(fE, dO, ft))
999+func getOneTknREADONLY (et,ed) = {
1000+ let fI = es(aJ(et), ed, aR, unit, unit)
1001+ let fC = fI._1
1002+ let cM = fI._2
1003+ let dO = fI._3
1004+ let fr = fI._4
1005+ let ev = fI._5
1006+ $Tuple2(nil, $Tuple3(fC, dO, fr))
10071007 }
10081008
10091009
10101010
10111011 @Callable(dA)
1012-func unstakeAndGetOneTkn (fL,fB,fn) = {
1013- let fp = {
1012+func unstakeAndGetOneTkn (fJ,fz,fl) = {
1013+ let fn = {
10141014 let aC = invoke(az, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
10151015 if ($isInstanceOf(aC, "Boolean"))
10161016 then aC
10171017 else throw(($getType(aC) + " couldn't be cast to Boolean"))
10181018 }
1019- let fC = if (if (aE())
1019+ let fA = if (if (aE())
10201020 then true
10211021 else (aQ == k))
10221022 then true
1023- else fp
1024- let ew = [if (if (!(fC))
1023+ else fn
1024+ let eu = [if (if (!(fA))
10251025 then true
1026- else eR(dA))
1026+ else eP(dA))
10271027 then true
10281028 else aw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
10291029 then true
10301030 else aw("no payments are expected")]
1031- if ((ew == ew))
1031+ if ((eu == eu))
10321032 then {
1033- let ev = aJ(fB)
1033+ let et = aJ(fz)
10341034 let O = dA.caller
10351035 let P = dA.transactionId
10361036 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
10371037 if ((da == da))
10381038 then {
1039- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1040- if ((fM == fM))
1039+ let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1040+ if ((fK == fK))
10411041 then {
1042- let fN = eu(ev, fL, aR, O, P)
1043- if ((fN == fN))
1042+ let fL = es(et, fJ, aR, O, P)
1043+ if ((fL == fL))
10441044 then {
1045- let ex = fN._5
1046- let ft = fN._4
1047- let dO = fN._3
1048- let cM = fN._2
1049- let fE = fN._1
1050- let dI = if (if ((fn > 0))
1051- then (fn > fE)
1045+ let ev = fL._5
1046+ let fr = fL._4
1047+ let dO = fL._3
1048+ let cM = fL._2
1049+ let fC = fL._1
1050+ let dI = if (if ((fl > 0))
1051+ then (fl > fC)
10521052 else false)
1053- then aw(makeString(["amount to receive is less than ", toString(fn)], ""))
1054- else fE
1055- let fF = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1056- if ((fF == fF))
1053+ then aw(makeString(["amount to receive is less than ", toString(fl)], ""))
1054+ else fC
1055+ let fD = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1056+ if ((fD == fD))
10571057 then {
1058- let fG = [ScriptTransfer(dA.caller, dI, ev)]
1059- let fx = if ((dO > 0))
1060- then [ScriptTransfer(aA, dO, ev)]
1058+ let fE = [ScriptTransfer(dA.caller, dI, et)]
1059+ let fv = if ((dO > 0))
1060+ then [ScriptTransfer(aA, dO, et)]
10611061 else nil
1062- let fO = {
1063- let fI = if ((this == aA))
1062+ let fM = {
1063+ let fG = if ((this == aA))
10641064 then 0
10651065 else dO
1066- if (ex)
1067- then $Tuple2(-((dI + fI)), 0)
1068- else $Tuple2(0, -((dI + fI)))
1066+ if (ev)
1067+ then $Tuple2(-((dI + fG)), 0)
1068+ else $Tuple2(0, -((dI + fG)))
10691069 }
1070- let dc = fO._1
1071- let dd = fO._2
1072- let fP = db(dc, dd, 0)
1073- let fj = fP._1
1074- let cS = fP._2
1075- let fk = df(da, cS)
1076- if ((fk == fk))
1077- then $Tuple2((((cM ++ fG) ++ fx) ++ fj), dI)
1070+ let dc = fM._1
1071+ let dd = fM._2
1072+ let fN = db(dc, dd, 0)
1073+ let fh = fN._1
1074+ let cS = fN._2
1075+ let fi = df(da, cS)
1076+ if ((fi == fi))
1077+ then $Tuple2((((cM ++ fE) ++ fv) ++ fh), dI)
10781078 else throw("Strict value is not equal to itself.")
10791079 }
10801080 else throw("Strict value is not equal to itself.")
10811081 }
10821082 else throw("Strict value is not equal to itself.")
10831083 }
10841084 else throw("Strict value is not equal to itself.")
10851085 }
10861086 else throw("Strict value is not equal to itself.")
10871087 }
10881088 else throw("Strict value is not equal to itself.")
10891089 }
10901090
10911091
10921092
10931093 @Callable(dA)
10941094 func get () = {
10951095 let cx = dz(dA)
1096- let fQ = cx._1
1096+ let fO = cx._1
10971097 let ce = cx._2
10981098 let dC = cx._3
10991099 let bM = cx._4
11001100 let cf = cx._5
11011101 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11021102 if ((da == da))
11031103 then {
1104- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105- if ((fR == fR))
1104+ let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1105+ if ((fP == fP))
11061106 then {
1107- let fS = db(-(fQ), -(ce), 0)
1108- let fj = fS._1
1109- let cS = fS._2
1110- let fk = df(da, cS)
1111- if ((fk == fk))
1112- then (cf ++ fj)
1107+ let fQ = db(-(fO), -(ce), 0)
1108+ let fh = fQ._1
1109+ let cS = fQ._2
1110+ let fi = df(da, cS)
1111+ if ((fi == fi))
1112+ then (cf ++ fh)
11131113 else throw("Strict value is not equal to itself.")
11141114 }
11151115 else throw("Strict value is not equal to itself.")
11161116 }
11171117 else throw("Strict value is not equal to itself.")
11181118 }
11191119
11201120
11211121
11221122 @Callable(dA)
1123-func getNoLess (fT,fU) = {
1123+func getNoLess (fR,fS) = {
11241124 let cx = dz(dA)
11251125 let cd = cx._1
11261126 let ce = cx._2
11271127 let dC = cx._3
11281128 let bM = cx._4
11291129 let cf = cx._5
1130- if ((fT > cd))
1131- then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fT)))
1132- else if ((fU > ce))
1133- then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fU)))
1130+ if ((fR > cd))
1131+ then throw(((("noLessThenAmtAsset failed: " + toString(cd)) + " < ") + toString(fR)))
1132+ else if ((fS > ce))
1133+ then throw(((("noLessThenPriceAsset failed: " + toString(ce)) + " < ") + toString(fS)))
11341134 else {
11351135 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11361136 if ((da == da))
11371137 then {
1138- let fR = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139- if ((fR == fR))
1138+ let fP = invoke(az, "burn", [dC], [AttachedPayment(bM, dC)])
1139+ if ((fP == fP))
11401140 then {
1141- let fV = db(-(cd), -(ce), 0)
1142- let fj = fV._1
1143- let cS = fV._2
1144- let fk = df(da, cS)
1145- if ((fk == fk))
1146- then (cf ++ fj)
1141+ let fT = db(-(cd), -(ce), 0)
1142+ let fh = fT._1
1143+ let cS = fT._2
1144+ let fi = df(da, cS)
1145+ if ((fi == fi))
1146+ then (cf ++ fh)
11471147 else throw("Strict value is not equal to itself.")
11481148 }
11491149 else throw("Strict value is not equal to itself.")
11501150 }
11511151 else throw("Strict value is not equal to itself.")
11521152 }
11531153 }
11541154
11551155
11561156
11571157 @Callable(dA)
11581158 func unstakeAndGet (dI) = {
1159- let fW = if ((size(dA.payments) != 0))
1159+ let fU = if ((size(dA.payments) != 0))
11601160 then throw("No payments are expected")
11611161 else true
1162- if ((fW == fW))
1162+ if ((fU == fU))
11631163 then {
11641164 let bD = aG()
11651165 let bO = fromBase58String(bD[n])
11661166 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
11671167 if ((da == da))
11681168 then {
1169- let fM = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170- if ((fM == fM))
1169+ let fK = invoke(aX, "unstake", [toBase58String(bO), dI], nil)
1170+ if ((fK == fK))
11711171 then {
11721172 let cx = bK(toBase58String(dA.transactionId), toBase58String(bO), dI, dA.caller)
11731173 let cd = cx._1
11741174 let ce = cx._2
11751175 let bR = parseIntValue(cx._9)
11761176 let cf = cx._10
1177- let fX = if (if (aE())
1177+ let fV = if (if (aE())
11781178 then true
11791179 else (bR == k))
11801180 then throw(("Get operation is blocked by admin. Status = " + toString(bR)))
11811181 else true
1182- if ((fX == fX))
1182+ if ((fV == fV))
11831183 then {
1184- let fR = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185- if ((fR == fR))
1184+ let fP = invoke(az, "burn", [dI], [AttachedPayment(bO, dI)])
1185+ if ((fP == fP))
11861186 then {
1187- let fY = db(-(cd), -(ce), 0)
1188- let fj = fY._1
1189- let cS = fY._2
1190- let fk = df(da, cS)
1191- if ((fk == fk))
1192- then (cf ++ fj)
1187+ let fW = db(-(cd), -(ce), 0)
1188+ let fh = fW._1
1189+ let cS = fW._2
1190+ let fi = df(da, cS)
1191+ if ((fi == fi))
1192+ then (cf ++ fh)
11931193 else throw("Strict value is not equal to itself.")
11941194 }
11951195 else throw("Strict value is not equal to itself.")
11961196 }
11971197 else throw("Strict value is not equal to itself.")
11981198 }
11991199 else throw("Strict value is not equal to itself.")
12001200 }
12011201 else throw("Strict value is not equal to itself.")
12021202 }
12031203 else throw("Strict value is not equal to itself.")
12041204 }
12051205
12061206
12071207
12081208 @Callable(dA)
1209-func unstakeAndGetNoLess (fL,fZ,fU) = {
1210- let fC = if (aE())
1209+func unstakeAndGetNoLess (fJ,fX,fS) = {
1210+ let fA = if (aE())
12111211 then true
12121212 else (aQ == k)
1213- let ew = [if (!(fC))
1213+ let eu = [if (!(fA))
12141214 then true
12151215 else throw("get operation is blocked by admin"), if ((size(dA.payments) == 0))
12161216 then true
12171217 else throw("no payments are expected")]
1218- if ((ew == ew))
1218+ if ((eu == eu))
12191219 then {
12201220 let da = cT(toBigInt(0), toBigInt(0), toBigInt(0))
12211221 if ((da == da))
12221222 then {
1223- let fM = invoke(aX, "unstake", [toBase58String(aR), fL], nil)
1224- if ((fM == fM))
1223+ let fK = invoke(aX, "unstake", [toBase58String(aR), fJ], nil)
1224+ if ((fK == fK))
12251225 then {
1226- let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fL, dA.caller)
1226+ let cx = bK(toBase58String(dA.transactionId), toBase58String(aR), fJ, dA.caller)
12271227 let cd = cx._1
12281228 let ce = cx._2
12291229 let cf = cx._10
1230- let ga = [if ((cd >= fZ))
1230+ let fY = [if ((cd >= fX))
12311231 then true
1232- else throw(makeString(["amount asset amount to receive is less than ", toString(fZ)], "")), if ((ce >= fU))
1232+ else throw(makeString(["amount asset amount to receive is less than ", toString(fX)], "")), if ((ce >= fS))
12331233 then true
1234- else throw(makeString(["price asset amount to receive is less than ", toString(fU)], ""))]
1235- if ((ga == ga))
1234+ else throw(makeString(["price asset amount to receive is less than ", toString(fS)], ""))]
1235+ if ((fY == fY))
12361236 then {
1237- let fR = invoke(az, "burn", [fL], [AttachedPayment(aR, fL)])
1238- if ((fR == fR))
1237+ let fP = invoke(az, "burn", [fJ], [AttachedPayment(aR, fJ)])
1238+ if ((fP == fP))
12391239 then {
1240- let gb = db(-(cd), -(ce), 0)
1241- let fj = gb._1
1242- let cS = gb._2
1243- let fk = df(da, cS)
1244- if ((fk == fk))
1245- then (cf ++ fj)
1240+ let fZ = db(-(cd), -(ce), 0)
1241+ let fh = fZ._1
1242+ let cS = fZ._2
1243+ let fi = df(da, cS)
1244+ if ((fi == fi))
1245+ then (cf ++ fh)
12461246 else throw("Strict value is not equal to itself.")
12471247 }
12481248 else throw("Strict value is not equal to itself.")
12491249 }
12501250 else throw("Strict value is not equal to itself.")
12511251 }
12521252 else throw("Strict value is not equal to itself.")
12531253 }
12541254 else throw("Strict value is not equal to itself.")
12551255 }
12561256 else throw("Strict value is not equal to itself.")
12571257 }
12581258
12591259
12601260
12611261 @Callable(dA)
1262-func activate (gc,gd) = if ((toString(dA.caller) != toString(az)))
1262+func activate (ga,gb) = if ((toString(dA.caller) != toString(az)))
12631263 then throw("permissions denied")
1264- else $Tuple2([StringEntry(R(), gc), StringEntry(S(), gd)], "success")
1264+ else $Tuple2([StringEntry(R(), ga), StringEntry(S(), gb)], "success")
12651265
12661266
12671267
12681268 @Callable(dA)
12691269 func refreshKLp () = {
1270- let ge = valueOrElse(getInteger(X), 0)
1271- let gf = if (((height - ge) >= aa))
1270+ let gc = valueOrElse(getInteger(X), 0)
1271+ let gd = if (((height - gc) >= aa))
12721272 then unit
12731273 else aw(makeString([toString(aa), " blocks have not passed since the previous call"], ""))
1274- if ((gf == gf))
1274+ if ((gd == gd))
12751275 then {
12761276 let dm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, W), "0")), ay("invalid kLp"))
1277- let gg = db(0, 0, 0)
1278- let gh = gg._1
1279- let cS = gg._2
1277+ let ge = db(0, 0, 0)
1278+ let gf = ge._1
1279+ let cS = ge._2
12801280 let de = if ((dm != cS))
1281- then gh
1281+ then gf
12821282 else aw("nothing to refresh")
12831283 $Tuple2(de, toString(cS))
12841284 }
12851285 else throw("Strict value is not equal to itself.")
12861286 }
12871287
12881288
12891289
12901290 @Callable(dA)
12911291 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
12921292
12931293
12941294
12951295 @Callable(dA)
12961296 func getAccBalanceWrapperREADONLY (bp) = $Tuple2(nil, bo(bp))
12971297
12981298
12991299
13001300 @Callable(dA)
13011301 func calcPricesWrapperREADONLY (bx,by,bC) = {
1302- let gi = bB(bx, by, bC)
1303- $Tuple2(nil, [toString(gi[0]), toString(gi[1]), toString(gi[2])])
1302+ let gg = bB(bx, by, bC)
1303+ $Tuple2(nil, [toString(gg[0]), toString(gg[1]), toString(gg[2])])
13041304 }
13051305
13061306
13071307
13081308 @Callable(dA)
13091309 func toX18WrapperREADONLY (x,y) = $Tuple2(nil, toString(w(x, y)))
13101310
13111311
13121312
13131313 @Callable(dA)
13141314 func fromX18WrapperREADONLY (B,C) = $Tuple2(nil, A(parseBigIntValue(B), C))
13151315
13161316
13171317
13181318 @Callable(dA)
13191319 func calcPriceBigIntWrapperREADONLY (br,bs) = $Tuple2(nil, toString(bq(parseBigIntValue(br), parseBigIntValue(bs))))
13201320
13211321
13221322
13231323 @Callable(dA)
13241324 func estimatePutOperationWrapperREADONLY (bL,ch,ci,cj,ck,cl,O,cm,cn) = $Tuple2(nil, cg(bL, ch, ci, cj, ck, cl, O, cm, cn))
13251325
13261326
13271327
13281328 @Callable(dA)
13291329 func estimateGetOperationWrapperREADONLY (bL,bM,bN,O) = {
13301330 let cx = bK(bL, bM, bN, addressFromStringValue(O))
13311331 $Tuple2(nil, $Tuple10(cx._1, cx._2, cx._3, cx._4, cx._5, cx._6, cx._7, toString(cx._8), cx._9, cx._10))
13321332 }
13331333
13341334
13351335
13361336 @Callable(dA)
13371337 func statsREADONLY () = {
13381338 let bD = aG()
13391339 let bO = fromBase58String(bD[n])
1340- let gj = bD[o]
1341- let gk = bD[p]
1340+ let gh = bD[o]
1341+ let gi = bD[p]
13421342 let cq = bD[s]
13431343 let cr = bD[t]
13441344 let bE = parseIntValue(bD[q])
13451345 let bF = parseIntValue(bD[r])
1346- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347- let gm = bo(gj)
1348- let gn = bo(gk)
1349- let go = if ((gl == 0))
1346+ let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1347+ let gk = bo(gh)
1348+ let gl = bo(gi)
1349+ let gm = if ((gj == 0))
13501350 then [c, c, c]
1351- else bB(gm, gn, gl)
1351+ else bB(gk, gl, gj)
13521352 let bY = 0
1353- let gp = A(go[1], a)
1354- let gq = A(go[2], a)
1355- let gr = value(getInteger(az, aj(toString(this))))
1356- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(bY), toString(gp), toString(gq), toString(gr)], h))
1353+ let gn = A(gm[1], a)
1354+ let go = A(gm[2], a)
1355+ let gp = value(getInteger(az, aj(toString(this))))
1356+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gk), toString(gl), toString(gj), toString(bY), toString(gn), toString(go), toString(gp)], h))
13571357 }
13581358
13591359
13601360
13611361 @Callable(dA)
13621362 func evaluatePutByAmountAssetREADONLY (ci) = {
13631363 let bD = aG()
13641364 let bO = fromBase58String(bD[n])
13651365 let co = bD[o]
13661366 let bP = fromBase58String(co)
13671367 let cp = bD[p]
13681368 let bQ = fromBase58String(cp)
13691369 let bE = parseIntValue(bD[q])
13701370 let bF = parseIntValue(bD[r])
13711371 let bR = bD[m]
1372- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373- let gm = bo(co)
1374- let gn = bo(cp)
1375- let bz = w(gm, bE)
1376- let bA = w(gn, bF)
1377- let bX = if ((gl == 0))
1372+ let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1373+ let gk = bo(co)
1374+ let gl = bo(cp)
1375+ let bz = w(gk, bE)
1376+ let bA = w(gl, bF)
1377+ let bX = if ((gj == 0))
13781378 then c
13791379 else bq(bA, bz)
13801380 let cu = w(ci, bE)
13811381 let cv = fraction(cu, bX, b)
13821382 let ck = A(cv, bF)
13831383 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
13841384 let cF = dG._1
1385- let gs = dG._3
1385+ let gq = dG._3
13861386 let bT = dG._4
13871387 let bV = dG._5
13881388 let bS = dG._6
13891389 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
13901390 }
13911391
13921392
13931393
13941394 @Callable(dA)
13951395 func evaluatePutByPriceAssetREADONLY (ck) = {
13961396 let bD = aG()
13971397 let bO = fromBase58String(bD[n])
13981398 let co = bD[o]
13991399 let bP = fromBase58String(co)
14001400 let cp = bD[p]
14011401 let bQ = fromBase58String(cp)
14021402 let bE = parseIntValue(bD[q])
14031403 let bF = parseIntValue(bD[r])
14041404 let bR = bD[m]
1405- let gl = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406- let gt = bo(co)
1407- let gu = bo(cp)
1408- let gv = w(gt, bE)
1409- let gw = w(gu, bF)
1410- let bX = if ((gl == 0))
1405+ let gj = valueOrErrorMessage(assetInfo(bO), (("Asset " + toBase58String(bO)) + " doesn't exist")).quantity
1406+ let gr = bo(co)
1407+ let gs = bo(cp)
1408+ let gt = w(gr, bE)
1409+ let gu = w(gs, bF)
1410+ let bX = if ((gj == 0))
14111411 then c
1412- else bq(gw, gv)
1412+ else bq(gu, gt)
14131413 let cv = w(ck, bF)
14141414 let cu = fraction(cv, b, bX)
14151415 let ci = A(cu, bE)
14161416 let dG = cg("", 500000, ci, bP, ck, bQ, "", true, false)
14171417 let cF = dG._1
1418- let gs = dG._3
1418+ let gq = dG._3
14191419 let bT = dG._4
14201420 let bV = dG._5
14211421 let bS = dG._6
14221422 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cF), toString(A(bX, a)), toString(bT), toString(bV), toString(bS), bR, toString(ci), toString(ck)], h))
14231423 }
14241424
14251425
14261426
14271427 @Callable(dA)
1428-func evaluateGetREADONLY (gx,gy) = {
1429- let cx = bK("", gx, gy, this)
1428+func evaluateGetREADONLY (gv,gw) = {
1429+ let cx = bK("", gv, gw, this)
14301430 let cd = cx._1
14311431 let ce = cx._2
14321432 let bT = cx._5
14331433 let bV = cx._6
14341434 let bS = cx._7
14351435 let bY = cx._8
14361436 let bR = parseIntValue(cx._9)
14371437 $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cd), toString(ce), toString(bT), toString(bV), toString(bS), toString(bY), toString(bR)], h))
14381438 }
14391439
14401440
1441-@Verifier(gz)
1442-func gA () = {
1443- let gB = {
1444- let dL = eO()
1441+@Verifier(gx)
1442+func gy () = {
1443+ let gz = {
1444+ let dL = eM()
14451445 if ($isInstanceOf(dL, "ByteVector"))
14461446 then {
1447- let eS = dL
1448- eS
1447+ let eQ = dL
1448+ eQ
14491449 }
14501450 else if ($isInstanceOf(dL, "Unit"))
1451- then gz.senderPublicKey
1451+ then gx.senderPublicKey
14521452 else throw("Match error")
14531453 }
1454- let dL = gz
1454+ let dL = gx
14551455 if ($isInstanceOf(dL, "Order"))
14561456 then {
14571457 let di = dL
1458- let gC = aF()
1459- let gD = dh(di)
1460- let ao = gD._1
1461- let ap = gD._2
1458+ let gA = aF()
1459+ let gB = dh(di)
1460+ let ao = gB._1
1461+ let ap = gB._2
14621462 let aq = sigVerify(di.bodyBytes, di.proofs[0], di.senderPublicKey)
1463- let ar = sigVerify(di.bodyBytes, di.proofs[1], gC)
1463+ let ar = sigVerify(di.bodyBytes, di.proofs[1], gA)
14641464 if (if (if (ao)
14651465 then aq
14661466 else false)
14671467 then ar
14681468 else false)
14691469 then true
14701470 else an(ao, ap, aq, ar)
14711471 }
14721472 else if ($isInstanceOf(dL, "SetScriptTransaction"))
14731473 then {
1474- let eP = dL
1475- let gE = blake2b256(value(eP.script))
1476- let gF = fromBase64String(value(getString(az, al())))
1477- let gG = scriptHash(this)
1478- if (if ((gF == gE))
1479- then (gG != gE)
1474+ let eN = dL
1475+ let gC = blake2b256(value(eN.script))
1476+ let gD = fromBase64String(value(getString(az, al())))
1477+ let gE = scriptHash(this)
1478+ if (if ((gD == gC))
1479+ then (gE != gC)
14801480 else false)
14811481 then true
1482- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1482+ else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
14831483 }
1484- else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
1484+ else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
14851485 }
14861486

github/deemru/w8io/873ac7e 
529.78 ms