tx · 588uvrDNcdPngaEhLh3jM28edjA1n14UNE7ndBUQpB5h

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.04100000 Waves

2023.06.01 12:21 [2603410] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "588uvrDNcdPngaEhLh3jM28edjA1n14UNE7ndBUQpB5h", "fee": 4100000, "feeAssetId": null, "timestamp": 1685611315729, "version": 2, "chainId": 84, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "2d4gJCZDtCjwgQ5mMXP4EdfLutq978h1kugVH6wg68dEwTBFNUK2EHLduRE9bALoRGVcUKED7YCm75Pb4EKpGyuM" ], "script": "base64:BgKxLQgCEgUKAwEEARIHCgUBBAEIARIDCgEIEgQKAgEEEgQKAgEEEgMKAQESABIECgIIARIAEgQKAggBEgQKAggBEgQKAgEBEgMKAQESBQoDAQEBEgUKAwEIARIECgIBCBIECgIBCBIECgIICBIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgRiaWczIgRiaWc0IgpzbGlwcGFnZTREIgt3YXZlc1N0cmluZyIFQW11bHQiBURjb252IgNTRVAiBUVNUFRZIgpQb29sQWN0aXZlIgpQb29sUHV0RGlzIg5Qb29sTWF0Y2hlckRpcyIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyIJaWR4UG9vbFN0IglpZHhMUEFzSWQiCWlkeEFtQXNJZCIJaWR4UHJBc0lkIgtpZHhBbXRBc0RjbSINaWR4UHJpY2VBc0RjbSILaWR4SUFtdEFzSWQiDWlkeElQcmljZUFzSWQiD2lkeEZhY3RTdGFrQ250ciISaWR4RmFjdG9yeVJlc3RDbnRyIhBpZHhGYWN0U2xpcHBDbnRyIhFpZHhGYWN0R3d4UmV3Q250ciIKZmVlRGVmYXVsdCICdDEiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiCHQxQmlnSW50IgJmMSIDdmFsIg9yZXN1bHRTY2FsZU11bHQiDGZyb21YMThSb3VuZCIFcm91bmQiAnQyIgJmMiICdHMiA2FtdCIIcmVzU2NhbGUiCGN1clNjYWxlIgNhYnMiCWFic0JpZ0ludCICZmMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiAnBsIgJwaCIBaCIBdCIDcGF1IgJ1YSIEdHhJZCIDZ2F1IgJhYSICcGEiA2FtcCINa2V5QW1wSGlzdG9yeSIMaGVpZ2h0QmxvY2tzIhRrZXlDaGFuZ2VBbXBMYXN0Q2FsbCIGa2V5RmVlIgNmZWUiBmtleURMcCIVa2V5RExwUmVmcmVzaGVkSGVpZ2h0IhJrZXlETHBSZWZyZXNoRGVsYXkiFmRMcFJlZnJlc2hEZWxheURlZmF1bHQiD2RMcFJlZnJlc2hEZWxheSIEZmNmZyIEbXRwayICcGMiBmlBbXRBcyIFaVByQXMiA21iYSIFYkFTdHIiA2FwcyIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIWa2V5RmVlQ29sbGVjdG9yQWRkcmVzcyIWa2V5U2tpcE9yZGVyVmFsaWRhdGlvbiILcG9vbEFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCIOb3JkZXJWYWxpZEluZm8iC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiF2FkZHJlc3NGcm9tU3RyaW5nT3JUaGlzIg1hZGRyZXNzU3RyaW5nIgckbWF0Y2gwIgFhIhxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzIg5mYWN0b3J5QWRkcmVzcyIDZmNhIgFzIgRzdHJmIgRhZGRyIgNrZXkiBGludGYiCHRocm93RXJyIgNtc2ciBmZtdEVyciIFaW5GZWUiAUAiBm91dEZlZSIBQSIDaWdzIgJtcCITZmVlQ29sbGVjdG9yQWRkcmVzcyIDZ3BjIgVhbXRBcyIHcHJpY2VBcyIIaVByaWNlQXMiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA4Njg2ODkxNSIOY2ZnUG9vbEFkZHJlc3MiDWNmZ1Bvb2xTdGF0dXMiDGNmZ0xwQXNzZXRJZCIQY2ZnQW1vdW50QXNzZXRJZCIPY2ZnUHJpY2VBc3NldElkIhZjZmdBbW91bnRBc3NldERlY2ltYWxzIhVjZmdQcmljZUFzc2V0RGVjaW1hbHMiEmNmZ0luQW1vdW50QXNzZWRJZCIRY2ZnSW5QcmljZUFzc2V0SWQiA2dmYyINZmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0Ig9zbGlwYWdlQ29udHJhY3QiC2d3eENvbnRyYWN0IgxyZXN0Q29udHJhY3QiEWRhdGFQdXRBY3Rpb25JbmZvIg1pbkFtdEFzc2V0QW10Ig9pblByaWNlQXNzZXRBbXQiCG91dExwQW10IgVwcmljZSIKc2xpcEJ5VXNlciIMc2xpcHBhZ2VSZWFsIgh0eEhlaWdodCILdHhUaW1lc3RhbXAiDHNsaXBhZ2VBbUFtdCIMc2xpcGFnZVByQW10IhFkYXRhR2V0QWN0aW9uSW5mbyIOb3V0QW10QXNzZXRBbXQiEG91dFByaWNlQXNzZXRBbXQiB2luTHBBbXQiDWdldEFjY0JhbGFuY2UiB2Fzc2V0SWQiBGNwYmkiCHByQW10WDE4IghhbUFtdFgxOCIFY3BiaXIiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIIYW10QXNEY20iB3ByQXNEY20iCHByaWNlWDE4IghscEFtdFgxOCINbHBQckluQW1Bc1gxOCINbHBQckluUHJBc1gxOCIPY2FsY3VsYXRlUHJpY2VzIgFwIgd0YWtlRmVlIgZhbW91bnQiCWZlZUFtb3VudCIEZ2V0RCICeHAiA3hwMCIDeHAxIgNhbm4iC3hwMF94cDFfbl9uIgVhbm5fcyIFYW5uXzEiCWNhbGNETmV4dCIBZCICZGQiA2RkZCICZHAiBGNhbGMiA2FjYyIBaSIFZE5leHQiCGREaWZmUmF3IgVkRGlmZiIDYXJyIg0kdDAxMzQyMDEzNDY4IgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIFZm91bmQiA2VnbyIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCILdXNlckFkZHJlc3MiBGxwSWQiBGFtSWQiBHBySWQiBWFtRGNtIgVwckRjbSIDc3RzIgdscEVtaXNzIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiCmxwRW1pc3NYMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIDZXBvIgdpbkFtQW10IgZpbkFtSWQiB2luUHJBbXQiBmluUHJJZCIGaXNFdmFsIgZlbWl0THAiCmlzT25lQXNzZXQiEHZhbGlkYXRlU2xpcHBhZ2UiBnBtdEFtdCIFcG10SWQiB2FtSWRTdHIiB3BySWRTdHIiCWluQW1JZFN0ciIJaW5QcklkU3RyIgZhbXREY20iCHByaWNlRGNtIgRscEVtIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgFyIgZjaGVja0QiC3NsaXBwYWdlWDE4Ig9zbGlwcGFnZVJlYWxYMTgiDWxwRW1pc3Npb25YMTgiCnByVmlhQW1YMTgiCmFtVmlhUHJYMTgiDGV4cGVjdGVkQW10cyIRZXhwQW10QXNzZXRBbXRYMTgiE2V4cFByaWNlQXNzZXRBbXRYMTgiCWNhbGNMcEFtdCIOY2FsY0FtQXNzZXRQbXQiDmNhbGNQckFzc2V0UG10IgxzbGlwcGFnZUNhbGMiCWVtaXRMcEFtdCIGYW1EaWZmIgZwckRpZmYiDSR0MDIxMzA3MjE2NTIiCndyaXRlQW1BbXQiCndyaXRlUHJBbXQiC2NvbW1vblN0YXRlIgVnZXRZRCIBRCIBbiIBeCIKYVByZWNpc2lvbiIBYyIBYiIDY3VyIg0kdDAyMjg0NzIyODY3IgF5IgV5TmV4dCIFeURpZmYiDSR0MDIzMTc0MjMyMjEiB2NhbGNETHAiDWFtb3VudEJhbGFuY2UiDHByaWNlQmFsYW5jZSIKbHBFbWlzc2lvbiIKdXBkYXRlZERMcCIOY2FsY0N1cnJlbnRETHAiEGFtb3VudEFzc2V0RGVsdGEiD3ByaWNlQXNzZXREZWx0YSIUbHBBc3NldEVtaXNzaW9uRGVsdGEiEmFtb3VudEFzc2V0QmFsYW5jZSIRcHJpY2VBc3NldEJhbGFuY2UiD2xwQXNzZXRFbWlzc2lvbiIKY3VycmVudERMcCIScmVmcmVzaERMcEludGVybmFsIhdhbW91bnRBc3NldEJhbGFuY2VEZWx0YSIWcHJpY2VBc3NldEJhbGFuY2VEZWx0YSIHYWN0aW9ucyISdmFsaWRhdGVVcGRhdGVkRExwIgZvbGRETHAiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiEWFtb3VudEFzc2V0QW1vdW50IhBwcmljZUFzc2V0QW1vdW50Ig0kdDAyNTQxOTI1NjMxIgNkTHAiDSR0MDI1OTczMjYwNzMiDXVudXNlZEFjdGlvbnMiBmRMcE5ldyIMaXNPcmRlclZhbGlkIgRpbmZvIgJjZyIDcG10IgJjcCIGY2FsbGVyIgdhbUFzUG10IgdwckFzUG10Ig1jYWxjUHV0T25lVGtuIglwbXRBbXRSYXciC3dpdGhUYWtlRmVlIg1jaGVjaEVtaXNzaW9uIg0kdDAyODcyOTI5MTkxIgxhbUJhbGFuY2VPbGQiDHByQmFsYW5jZU9sZCINJHQwMjkxOTcyOTM3MyILYW1BbW91bnRSYXciC3ByQW1vdW50UmF3Ig0kdDAyOTM3NzI5NjMxIghhbUFtb3VudCIIcHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IghscEFtb3VudCIOcG9vbFByb3BvcnRpb24iD2Ftb3VudEFzc2V0UGFydCIOcHJpY2VBc3NldFBhcnQiCWxwQW10Qm90aCIFYm9udXMiE2dldE9uZVRrblYySW50ZXJuYWwiCm91dEFzc2V0SWQiDG1pbk91dEFtb3VudCIIcGF5bWVudHMiDG9yaWdpbkNhbGxlciINdHJhbnNhY3Rpb25JZCIKYW1EZWNpbWFscyIKcHJEZWNpbWFscyIKcG9vbFN0YXR1cyINJHQwMzE3NDMzMTg1NCIIdG90YWxHZXQiC3RvdGFsQW1vdW50Ig0kdDAzMjA0NDMyMzUxIgVvdXRBbSIFb3V0UHIiCGN1clByWDE4IgVjdXJQciIRb3V0QXNzZXRJZE9yV2F2ZXMiEHNlbmRGZWVUb01hdGNoZXIiBGJ1cm4iDSR0MDMzMTM2MzM0ODYiEGZlZUFtb3VudEZvckNhbGMiEG91dEluQW1vdW50QXNzZXQiDSR0MDMzNDg5MzM1OTciEXJlZnJlc2hETHBBY3Rpb25zIhFpc1VwZGF0ZWRETHBWYWxpZCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyICcGQiCWlzTWFuYWdlciICcGsiC211c3RNYW5hZ2VyIgRnZXRZIglpc1JldmVyc2UiE3Bvb2xBbW91bnRJbkJhbGFuY2UiDSR0MDM1MDg0MzUxMDQiDSR0MDM1NDM1MzU0ODIiE3NraXBPcmRlclZhbGlkYXRpb24iDWNsZWFuQW1vdW50SW4iDWZlZVBvb2xBbW91bnQiDSR0MDM1ODM0MzYyNTgiCGFzc2V0T3V0IgJkeSILdG90YWxHZXRSYXciBW5ld1hwIgRuZXdEIgxhbW91bnRPdXRNaW4iCWFkZHJlc3NUbyILc3dhcENvbnRhY3QiBmNoZWNrcyIHYXNzZXRJbiINJHQwMzc2OTQzODA4OCIIY2hlY2tNaW4iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgphbUFzc2V0UG10IgpwckFzc2V0UG10IgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIg0kdDA0MjIzMjQyMzc0IgVjaGVjayIUbHBBc3NldEVtaXNzaW9uQWZ0ZXIiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg1pc1B1dERpc2FibGVkIg0kdDA0NDAxNTQ0MTczIgdlc3RpbUxQIg0kdDA0NTA1ODQ1NDA3IhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwNDU0MTA0NTUxOCIHbWF4U2xwZyIGZXN0UHV0Ig0kdDA0NjU0ODQ2NjEzIglvdXRBbXRBbXQiDSR0MDQ3Nzg2NDc4NjgiDWlzR2V0RGlzYWJsZWQiDSR0MDQ4NDg2NDg2NDEiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDQ5MTY1NDkyMjkiEGRMcFVwZGF0ZUFjdGlvbnMiDWxwQXNzZXRBbW91bnQiBWluZGV4IgRuZXdZIg0kdDA1MDIzOTUwMjk0Ig0kdDA1MDY2OTUwNzg0Ig5zdW1PZkdldEFzc2V0cyISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiDSR0MDUxOTUwNTIwMzEiDWNoZWNrUGF5bWVudHMiCmZhY3RvcnlDZmciB3N0YWtpbmciCnVuc3Rha2VJbnYiAXYiBWJ1cm5BIg0kdDA1MzA1ODUzMTM5Ig11bnN0YWtlQW1vdW50IhVub0xlc3NUaGVuQW1vdW50QXNzZXQiA3JlcyIMY2hlY2tBbW91bnRzIg0kdDA1NDM5MDU0NDcxIhdscEFzc2V0UmVjaXBpZW50QWRkcmVzcyINJHQwNTU0OTM1NTY4MSIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiDSR0MDU1ODA5NTU5MTIiDSR0MDU2MDYwNTYxNjQiCGFtdEFzU3RyIgdwckFzU3RyIgJwciIMcmVzU2NhbGVNdWx0Igd1c3JBZGRyIgdwbXRBc0lkIgNjZmciDSR0MDU4NTE4NTg3MTciBGxpc3QiBWRlbGF5IgVkZWx0YSIGdGFyZ2V0IgZjdXJBbXAiCW5ld0FtcFJhdyIGbmV3QW1wIghsYXN0Q2FsbCIEd2FpdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA1OTY1MDU5NzY3IgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2iGAQABYQCAwtcvAAFiCQC2AgEAgMLXLwABYwkAtgIBAICAkLu61q3wDQABZAkAtgIBAAAAAWUJALYCAQAAAAFmCQC2AgEAAQABZwkAtgIBAAIAAWgJALYCAQADAAFpCQC2AgEABAABagkAtgIBCQBlAgUBYQkAaQIJAGgCBQFhAAEFAWEAAWsCBVdBVkVTAAFsAgMxMDAAAW0CATEAAW4CAl9fAAFvAgAAAXAAAQABcQACAAFyAAMAAXMABAABdAABAAF1AAIAAXYAAwABdwAEAAF4AAUAAXkABgABegAHAAFBAAgAAUIACQABQwABAAFEAAYAAUUABwABRgAKAAFHCQBrAwAKBQFhAJBOAQFIAgFJAUoJALwCAwkAtgIBBQFJBQFjCQC2AgEFAUoBAUsCAUkBSgkAvAIDBQFJBQFjBQFKAQFMAgFNAU4JAKADAQkAvAIDBQFNCQC2AgEFAU4FAWMBAU8DAU0BTgFQCQCgAwEJAL0CBAUBTQkAtgIBBQFOBQFjBQFQAQFRAgFJAUoJALwCAwUBSQUBYwkAtgIBBQFKAQFSAgFNAU4JALwCAwUBTQkAtgIBBQFOBQFjAQFTAwFUAVUBVgkAawMFAVQFAVUFAVYBAVcBAU0DCQC/AgIFAWQFAU0JAL4CAQUBTQUBTQEBWAEBTQMJAL8CAgUBZAUBTQkAvgIBBQFNBQFNAQFZAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBWgACFCVzX19tYW5hZ2VyUHVibGljS2V5AQJhYQACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzAQJhYgACESVzJXNfX3ByaWNlX19sYXN0AQJhYwICYWQCYWUJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQJhZAkAzAgCCQCkAwEFAmFlBQNuaWwFAW4BAmFmAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFnAgJfXwUCYWgBAmFpAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFnAgJfXwUCYWgBAmFqAAIPJXNfX2Ftb3VudEFzc2V0AQJhawACDiVzX19wcmljZUFzc2V0AQJhbAACByVzX19hbXABAmFtAQJhbgkArAICAgslcyVkX19hbXBfXwkApAMBBQJhbgECYW8AAhUlc19fY2hhbmdlQW1wTGFzdENhbGwAAmFwAgclc19fZmVlAAJhcQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhcAUBRwACYXIJALkJAgkAzAgCAgIlcwkAzAgCAgNkTHAFA25pbAUBbgACYXMJALkJAgkAzAgCAgIlcwkAzAgCAhJkTHBSZWZyZXNoZWRIZWlnaHQFA25pbAUBbgACYXQJALkJAgkAzAgCAgIlcwkAzAgCAg9yZWZyZXNoRExwRGVsYXkFA25pbAUBbgACYXUAHgACYXYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYXQFAmF1AQJhdwACESVzX19mYWN0b3J5Q29uZmlnAQJheAACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXkCAmF6AmFBCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhegICX18FAmFBAghfX2NvbmZpZwECYUIBAmFDCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFDAQJhRAACDCVzX19zaHV0ZG93bgECYUUAAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAECYUYAAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUcBAmFICQCsAgICGyVzJXNfX3NraXBPcmRlclZhbGlkYXRpb25fXwUCYUgBAmFJBAJhSgJhSwJhTAJhTQkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYUoCAiAoBQJhSwIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhTAIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYU0BAmFOAQJhTwQCYVAJAKYIAQUCYU8DCQABAgUCYVACB0FkZHJlc3MEAmFRBQJhUAUCYVEFBHRoaXMBAmFSAAQCYVMEAmFQCQCiCAEJAQFZAAMJAAECBQJhUAIGU3RyaW5nBAJhVAUCYVAJAQJhTgEFAmFUBQR0aGlzBAJhUAkAnQgCBQJhUwkBAmFhAAMJAAECBQJhUAIGU3RyaW5nBAJhVQUCYVAJAQJhTgEFAmFVBQR0aGlzAQJhVgICYVcCYVgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJhVwUCYVgJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYVcJAMwIAgIBLgkAzAgCBQJhWAkAzAgCAgwgbm90IGRlZmluZWQFA25pbAIAAQJhWQICYVcCYVgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJhVwUCYVgJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUCYVcJAMwIAgIBLgkAzAgCBQJhWAkAzAgCAgwgbm90IGRlZmluZWQFA25pbAIAAQJhWgECYmEJAAIBCQC5CQIJAMwIAgIPbHBfc3RhYmxlLnJpZGU6CQDMCAIFAmJhBQNuaWwCASABAmJiAQJiYQkAuQkCCQDMCAICD2xwX3N0YWJsZS5yaWRlOgkAzAgCBQJiYQUDbmlsAgEgAAJhVAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFWAgUEdGhpcwkBAVkAAAJiYwoAAmJkCQD8BwQFAmFUAhBnZXRJbkZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmQCA0ludAUCYmQJAAIBCQCsAgIJAAMBBQJiZAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJiZQoAAmJkCQD8BwQFAmFUAhFnZXRPdXRGZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJkAgNJbnQFAmJkCQACAQkArAICCQADAQUCYmQCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAACYmYJAQJhVgIFBHRoaXMJAQJhbAABAmJnAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhVAkBAmFEAAcBAmJoAAkA2QQBCQECYVYCBQJhVAkBAmF4AAACYmkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhVgIFAmFUCQECYUYAAQJiagAEAmJrCQECYVYCBQR0aGlzCQECYWoABAJibAkBAmFWAgUEdGhpcwkBAmFrAAQCYm0JAQJhWQIFAmFUCQECYUIBBQJibAQCYXoJAQJhWQIFAmFUCQECYUIBBQJiawkAtQkCCQECYVYCBQJhVAkBAmF5AgkApAMBBQJhegkApAMBBQJibQUBbgECYm4BAmJvAwkAAAIFAmJvBQFrBQR1bml0CQDZBAEFAmJvAQJicAECYm8DCQAAAgUCYm8FBHVuaXQFAWsJANgEAQkBBXZhbHVlAQUCYm8BAmJxAQJicgkAmwoJCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJyBQF0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnIFAXUJANkEAQkAkQMCBQJicgUBdgkBAmJuAQkAkQMCBQJicgUBdwkBAmJuAQkAkQMCBQJicgUBeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJyBQF5CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnIFAXoJANkEAQkAkQMCBQJicgUBQQkA2QQBCQCRAwIFAmJyBQFCAAJicwkBAmJxAQkBAmJqAAACYnQFAmJzAAJidQgFAmJ0Al8xAAJidggFAmJ0Al8yAAJidwgFAmJ0Al8zAAJieAgFAmJ0Al80AAJieQgFAmJ0Al81AAJieggFAmJ0Al82AAJiQQgFAmJ0Al83AAJiQggFAmJ0Al84AAJiQwgFAmJ0Al85AQJiRAAJALUJAgkBAmFWAgUCYVQJAQJhdwAFAW4AAmJFCQECYkQAAAJiRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYkUFAUMCIEludmFsaWQgc3Rha2luZyBjb250cmFjdCBhZGRyZXNzAAJiRwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYkUFAUUCIEludmFsaWQgc2xpcGFnZSBjb250cmFjdCBhZGRyZXNzAAJiSAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYkUFAUYCHEludmFsaWQgZ3d4IGNvbnRyYWN0IGFkZHJlc3MAAmJJCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJiRQUBRAIcSW52YWxpZCBnd3ggY29udHJhY3QgYWRkcmVzcwECYkoKAmJLAmJMAmJNAmJOAmJPAmJQAmJRAmJSAmJTAmJUCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiSwkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCYk0JAMwIAgkApAMBBQJiTgkAzAgCCQCkAwEFAmJPCQDMCAIJAKQDAQUCYlAJAMwIAgkApAMBBQJiUQkAzAgCCQCkAwEFAmJSCQDMCAIJAKQDAQUCYlMJAMwIAgkApAMBBQJiVAUDbmlsBQFuAQJiVQYCYlYCYlcCYlgCYk4CYlECYlIJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiVgkAzAgCCQCkAwEFAmJXCQDMCAIJAKQDAQUCYlgJAMwIAgkApAMBBQJiTgkAzAgCCQCkAwEFAmJRCQDMCAIJAKQDAQUCYlIFA25pbAUBbgECYlkBAmJaAwkAAAIFAmJaAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJiWgECY2ECAmNiAmNjCQC8AgMFAmNiBQFjBQJjYwECY2QDAmNiAmNjAVAJAL0CBAUCY2IFAWMFAmNjBQFQAQJjZQMCY2YCY2cCY2gEAmNpCQC8AgMJALgCAgUCY2YFAmNnBQFiBQJjZwQCY2oJAL8CAgkAuAICBQJjaAkBAVcBBQJjaQUBZAMJAQEhAQUCY2oJAAIBCQCsAgICCkJpZyBzbHBnOiAJAKYDAQUCY2kJAJQKAgUCY2oJAJkDAQkAzAgCBQJjZgkAzAgCBQJjZwUDbmlsAQJjawMCY2wCY20CY24EAmNpCQC8AgMFAmNtBQFiBQJjbAQCY28JAL8CAgUCY24FAmNpAwMFAmNvBgkAvwICBQJjbQUCY2wJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCmAwEFAmNtAgEgCQCmAwEFAmNsAgEgCQCmAwEFAmNpAgEgCQCmAwEFAmNuBQJjbwECY3AEAmNxAmNyAmNzAmN0BAJjdQkBAUgCBQJjcwUCY3EEAmN2CQEBSAIFAmN0BQJjcgkBAmNhAgUCY3YFAmN1AQJjdwMCY3MCY3QCY3gEAmN5BQJiegQCY3oFAmJBBAJjQQkBAmNwBAUCY3kFAmN6BQJjcwUCY3QEAmNjCQEBSAIFAmNzBQJjeQQCY2IJAQFIAgUCY3QFAmN6BAJjQgkBAUgCBQJjeAUBYQQCY0MJAQJjYQIFAmNjBQJjQgQCY0QJAQJjYQIFAmNiBQJjQgkAzAgCBQJjQQkAzAgCBQJjQwkAzAgCBQJjRAUDbmlsAQJjRQMCY3MCY3QCY3gEAmNGCQECY3cDBQJjcwUCY3QFAmN4CQDMCAIJAQFMAgkAkQMCBQJjRgAABQFhCQDMCAIJAQFMAgkAkQMCBQJjRgABBQFhCQDMCAIJAQFMAgkAkQMCBQJjRgACBQFhBQNuaWwBAmNHAgJjSAJhcQQCY0kDCQAAAgUCYXEAAAAACQBrAwUCY0gFAmFxBQFhCQCUCgIJAGUCBQJjSAUCY0kFAmNJAQJjSgECY0sEAmNMCQCRAwIFAmNLAAAEAmNNCQCRAwIFAmNLAAEEAmFVCQC3AgIFAmNMBQJjTQMJAAACBQJhVQUBZQUBZQQCYVEJAQ1wYXJzZUludFZhbHVlAQUCYmYEAmNOCQBoAgUCYVEAAgQCY0YJALwCAwUCY0wFAmNNBQFmBAJjTwkAvAIDBQJjRgUBaQUBZgQCY1AJALwCAwkAtgIBBQJjTgUCYVUFAWYEAmNRCQC2AgEJAGUCBQJjTgABCgECY1IBAmNTBAJjVAkAvAIDBQJjUwUCY1MFAWYEAmNVCQC8AgMFAmNUBQJjUwUBZgQCY1YJALwCAwUCY1UFAWYFAmNPCQC8AgMJALcCAgUCY1AJALwCAwUCY1YFAWcFAWYFAmNTCQC3AgIJALwCAwUCY1EFAmNTBQFmCQC8AgMFAWgFAmNWBQFmCgECY1cCAmNYAmNZAwgFAmNYAl8yBQJjWAQCY1MIBQJjWAJfMQQCY1oJAQJjUgEFAmNTBAJkYQkAuAICBQJjWgkBBXZhbHVlAQUCY1MEAmRiAwkAvwICBQFlBQJkYQkAvgIBBQJkYQUCZGEDCQDAAgIFAWYFAmRiCQCUCgIFAmNaBgkAlAoCBQJjWgcEAmRjCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOCQDMCAIADwkAzAgCABAFA25pbAQCZGQKAAJkZQUCZGMKAAJkZgkAkAMBBQJkZQoAAmRnCQCUCgIFAmFVBwoBAmRoAgJkaQJkagMJAGcCBQJkagUCZGYFAmRpCQECY1cCBQJkaQkAkQMCBQJkZQUCZGoKAQJkawICZGkCZGoDCQBnAgUCZGoFAmRmBQJkaQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE3CQECZGsCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCCQECZGgCBQJkZwAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQQCY1MIBQJkZAJfMQQCZGwIBQJkZAJfMgMFAmRsBQJjUwkAAgEJAKwCAgIZRCBjYWxjdWxhdGlvbiBlcnJvciwgRCA9IAkApgMBBQJjUwECZG0EAmRuAmRvAmRwAmRxBAJkcgUCYncEAmRzCQDYBAEJAQV2YWx1ZQEFAmJ4BAJkdAkA2AQBCQEFdmFsdWUBBQJieQQCZHUFAmJ6BAJkdgUCYkEEAmR3CQCkAwEFAmJ2BAJkeAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJkcgILV3JvbmcgTFAgaWQIcXVhbnRpdHkDCQECIT0CCQDYBAEFAmRyBQJkbwkAAgECD1dyb25nIHBtdCBhc3NldAQCZHkJAQJiWQEFAmRzBAJkegkBAUgCBQJkeQUCZHUEAmRBCQECYlkBBQJkdAQCZEIJAQFIAgUCZEEFAmR2BAJkQwkBAmNhAgUCZEIFAmR6BAJkRAkBAUwCBQJkQwUBYQQCZEUJAQFIAgUCZHAFAWEEAmRGCQEBSAIFAmR4BQFhBAJkRwkAvAIDBQJkegUCZEUFAmRGBAJkSAkAvAIDBQJkQgUCZEUFAmRGBAJkSQkBAU8DBQJkRwUCZHUFBUZMT09SBAJkSgkBAU8DBQJkSAUCZHYFBUZMT09SBAJkSwMJAAACBQJkbgIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCZHEFAmRJAwkAAAIFAmRzAgVXQVZFUwUEdW5pdAkA2QQBBQJkcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJkcQUCZEoDCQAAAgUCZHQCBVdBVkVTBQR1bml0CQDZBAEFAmR0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaQIJAKUIAQUCZHEFAmRuCQECYlUGBQJkSQUCZEoFAmRwBQJkRAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZEQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmREBQNuaWwJAJwKCgUCZEkFAmRKBQJkcwUCZHQFAmR5BQJkQQUCZHgFAmRDBQJkdwUCZEsBAmRMDQJkbgJjaAJkTQJkTgJkTwJkUAJkcQJkUQJkUgJkUwJkVAJkVQJkVgQCZHIFAmJ3BAJkVwkA2AQBCQEFdmFsdWUBBQJieAQCZFgJANgEAQkBBXZhbHVlAQUCYnkEAmRZBQJiQgQCZFoFAmJDBAJlYQUCYnoEAmViBQJiQQQCZHcJAKQDAQUCYnYEAmVjCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmRyAghXciBscCBhcwhxdWFudGl0eQQCZHkDBQJkUQkBAmJZAQUCZFcDAwUCZFMJAAACBQJkVgUCZFcHCQBlAgkBAmJZAQUCZFcFAmRVAwUCZFMJAQJiWQEFAmRXCQBlAgkBAmJZAQUCZFcFAmRNBAJkQQMFAmRRCQECYlkBBQJkWAMDBQJkUwkAAAIFAmRWBQJkWAcJAGUCCQECYlkBBQJkWAUCZFUDBQJkUwkBAmJZAQUCZFgJAGUCCQECYlkBBQJkWAUCZE8EAmVkCQEBSAIFAmRNBQJlYQQCZWUJAQFIAgUCZE8FAmViBAJlZgkBAmNhAgUCZWUFAmVkBAJkegkBAUgCBQJkeQUCZWEEAmRCCQEBSAIFAmRBBQJlYgQCY20JAQJjSgEJAMwIAgUCZHoJAMwIAgUCZEIFA25pbAQCZWcDCQAAAgUCZWMAAAQCY2wJAQJjSgEJAMwIAgkAtwICBQJkegUCZWQJAMwIAgkAtwICBQJkQgUCZWUFA25pbAQCZWgDCQC/AgIFAmNsBQJjbQYJAAIBAhxEMSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIEQwAwkAAAIFAmVoBQJlaAQCZEMFAWQEAmVpBQFkBAJjQgUCY2wJAJcKBQkBAUwCBQJjQgUBYQkBAUwCBQJlZAUCZWEJAQFMAgUCZWUFAmViCQECY2ECCQC3AgIFAmRCBQJlZQkAtwICBQJkegUCZWQFAmVpCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAJkQwkBAmNhAgUCZEIFAmR6BAJlagkAvAIDCQEBVwEJALgCAgUCZEMFAmVmBQFjBQJkQwQCZWkJAQFIAgUCY2gFAWEDAwMFAmRUCQECIT0CBQJkQwUBZAcJAL8CAgUCZWoFAmVpBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJlagIDID4gCQCmAwEFAmVpBAJlawkBAUgCBQJlYwUBYQQCZWwJAL0CBAUCZWQJAQJjZAMFAmRCBQJkegUHQ0VJTElORwUBYwUHQ0VJTElORwQCZW0JAL0CBAUCZWUFAWMJAQJjZAMFAmRCBQJkegUFRkxPT1IFB0NFSUxJTkcEAmVuAwkAvwICBQJlbAUCZWUJAJQKAgUCZW0FAmVlCQCUCgIFAmVkBQJlbAQCZW8IBQJlbgJfMQQCZXAIBQJlbgJfMgQCY2wJAQJjSgEJAMwIAgkAtwICBQJkegUCZW8JAMwIAgkAtwICBQJkQgUCZXAFA25pbAQCZWgDCQC/AgIFAmNsBQJjbQYJAAIBAhxEMSBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIEQwAwkAAAIFAmVoBQJlaAQCY0IJALwCAwUCZWsJALgCAgUCY2wFAmNtBQJjbQkAlwoFCQEBTwMFAmNCBQFhBQVGTE9PUgkBAU8DBQJlbwUCZWEFB0NFSUxJTkcJAQFPAwUCZXAFAmViBQdDRUlMSU5HBQJkQwUCZWkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmVxCAUCZWcCXzEEAmVyCAUCZWcCXzIEAmVzCAUCZWcCXzMEAmRECQEBTAIIBQJlZwJfNAUBYQQCZXQJAQFMAggFAmVnAl81BQFhAwkAZwIAAAUCZXEJAAIBAgdMUCA8PSAwBAJldQMJAQEhAQUCZFIAAAUCZXEEAmV2CQBlAgUCZE0FAmVyBAJldwkAZQIFAmRPBQJlcwQCZXgDAwUCZFMJAAACBQJkVgUCZFcHCQCUCgIFAmRVAAADAwUCZFMJAAACBQJkVgUCZFgHCQCUCgIAAAUCZFUJAJQKAgUCZXIFAmVzBAJleQgFAmV4Al8xBAJleggFAmV4Al8yBAJlQQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZEQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRECQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZgIFAmRxBQJkbgkBAmJKCgUCZXkFAmV6BQJldQUCZEQFAmNoBQJldAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZXYFAmV3BQNuaWwJAJ8KDQUCZXEFAmV1BQJkRAUCZHkFAmRBBQJlYwUCZHIFAmR3BQJlQQUCZXYFAmV3BQJkTgUCZFABAmVCAwJjSwJjWQJlQwQCZUQFAWcEAmVFCQCRAwIFAmNLAwkAAAIFAmNZAAAAAQAABAJlRgkApwMBBQFsBAJhUQkAuQICCQCnAwEFAmJmBQJlRgQCYVUFAmVFBAJjTgkAuQICBQJhUQUCZUQEAmVHCQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZUMFAmVDCQC5AgIFAmVFBQJlRAUCZUMFAmVGCQC5AgIFAmNOBQJlRAQCZUgJALgCAgkAtwICBQJhVQkAugICCQC5AgIFAmVDBQJlRgUCY04FAmVDCgECY1cCAmNYAmVJBAJlSgUCY1gEAmVLCAUCZUoCXzEEAmRsCAUCZUoCXzIDCQECIT0CBQJkbAUEdW5pdAUCY1gEAmVMCQC6AgIJALcCAgkAuQICBQJlSwUCZUsFAmVHCQC3AgIJALkCAgUBZwUCZUsFAmVIBAJlTQkBAVgBCQC4AgIFAmVMCQEFdmFsdWUBBQJlSwMJAMACAgUBZgUCZU0JAJQKAgUCZUwFAmVJCQCUCgIFAmVMBQR1bml0BAJkYwkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJlTgoAAmRlBQJkYwoAAmRmCQCQAwEFAmRlCgACZGcJAJQKAgUCZUMFBHVuaXQKAQJkaAICZGkCZGoDCQBnAgUCZGoFAmRmBQJkaQkBAmNXAgUCZGkJAJEDAgUCZGUFAmRqCgECZGsCAmRpAmRqAwkAZwIFAmRqBQJkZgUCZGkJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmRrAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgkBAmRoAgUCZGcAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZUsIBQJlTgJfMQQCZGwIBQJlTgJfMgMJAQIhPQIFAmRsBQR1bml0BQJlSwkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJlSwECZU8DAmVQAmVRAmVSBAJlUwkAvAIDCQECY0oBCQDMCAIJAQFLAgUCZVAJALYCAQUCYnoJAMwIAgkBAUsCBQJlUQkAtgIBBQJiQQUDbmlsBQFjBQJlUgMJAAACBQJlUgUBZQUBZQUCZVMBAmVUAwJlVQJlVgJlVwQCZVgJALgCAgkAtgIBCQECYlkBCQECYnABBQJieAUCZVUEAmVZCQC4AgIJALYCAQkBAmJZAQkBAmJwAQUCYnkFAmVWBAJlWgkAuAICCQC2AgEICQEFdmFsdWUBCQDsBwEFAmJ3CHF1YW50aXR5BQJlVwQCZmEJAQJlTwMFAmVYBQJlWQUCZVoFAmZhAQJmYgMCZmMCZmQCZVcEAmVYCQBkAgkBAmJZAQkBAmJwAQUCYngFAmZjBAJlWQkAZAIJAQJiWQEJAQJicAEFAmJ5BQJmZAQCZVoJAGQCCAkBBXZhbHVlAQkA7AcBBQJidwhxdWFudGl0eQUCZVcEAmVTCQECZU8DCQC2AgEFAmVYCQC2AgEFAmVZCQC2AgEFAmVaBAJmZQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYXMFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQJhcgkApgMBBQJlUwUDbmlsCQCUCgIFAmZlBQJlUwECZmYCAmZnAmVTAwkAwAICBQJlUwUCZmcGCQECYVoBAiJ1cGRhdGVkIERMcCBsb3dlciB0aGFuIGN1cnJlbnQgRExwAQJmaAECZmkEAmVYCQECYlkBCQECYnABBQJieAQCZVkJAQJiWQEJAQJicAEFAmJ5BAJmaggFAmZpBmFtb3VudAQCZmsJAG4ECAUCZmkGYW1vdW50CAUCZmkFcHJpY2UFAWEFBUZMT09SBAJmbAMJAAACCAUCZmkJb3JkZXJUeXBlBQNCdXkJAJQKAgUCZmoJAQEtAQUCZmsJAJQKAgkBAS0BBQJmagUCZmsEAmZjCAUCZmwCXzEEAmZkCAUCZmwCXzIDAwMJAQJiZwAGCQAAAgUCYnYFAXIGCQAAAgUCYnYFAXMJAAIBAg1BZG1pbiBibG9ja2VkAwMJAQIhPQIICAUCZmkJYXNzZXRQYWlyC2Ftb3VudEFzc2V0BQJieAYJAQIhPQIICAUCZmkJYXNzZXRQYWlyCnByaWNlQXNzZXQFAmJ5CQACAQIJV3IgYXNzZXRzBAJmbQkApwMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFyAgEwBAJmbgkBAmZiAwUCZmMFAmZkAAAEAmZvCAUCZm4CXzEEAmZwCAUCZm4CXzIEAmZxCQDAAgIFAmZwBQJmbQQCZnIJALkJAgkAzAgCAgRkTHA9CQDMCAIJAKYDAQUCZm0JAMwIAgIIIGRMcE5ldz0JAMwIAgkApgMBBQJmcAkAzAgCAhQgYW1vdW50QXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmVYCQDMCAICEyBwcmljZUFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJlWQkAzAgCAhkgYW1vdW50QXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZmMJAMwIAgIYIHByaWNlQXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZmQJAMwIAgIIIGhlaWdodD0JAMwIAgkApAMBBQZoZWlnaHQFA25pbAIACQCUCgIFAmZxBQJmcgECZnMBAmNZAwkBAiE9AgkAkAMBCAUCY1kIcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmZ0CQEFdmFsdWUBCQCRAwIIBQJjWQhwYXltZW50cwAABAJkbwkBBXZhbHVlAQgFAmZ0B2Fzc2V0SWQEAmRVCAUCZnQGYW1vdW50BAJlZwkBAmRtBAkA2AQBCAUCY1kNdHJhbnNhY3Rpb25JZAkA2AQBBQJkbwUCZFUIBQJjWQZjYWxsZXIEAmRJCAUCZWcCXzEEAmRKCAUCZWcCXzIEAmR3CQENcGFyc2VJbnRWYWx1ZQEIBQJlZwJfOQQCZEsIBQJlZwNfMTADAwkBAmJnAAYJAAACBQJkdwUBcwkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmR3CQCXCgUFAmRJBQJkSgUCZFUFAmRvBQJkSwECZnUKAmZ2AmFoAmZ3AmZ4AmNoAmRSAmRTAmRUAmRVAmRWBAJlZwkBAmRMDQUCYWgFAmNoCAkBBXZhbHVlAQUCZncGYW1vdW50CAkBBXZhbHVlAQUCZncHYXNzZXRJZAgJAQV2YWx1ZQEFAmZ4BmFtb3VudAgJAQV2YWx1ZQEFAmZ4B2Fzc2V0SWQFAmZ2CQAAAgUCYWgCAAUCZFIFAmRTBQJkVAUCZFUFAmRWBAJkdwkBDXBhcnNlSW50VmFsdWUBCAUCZWcCXzgDAwMJAQJiZwAGCQAAAgUCZHcFAXEGCQAAAgUCZHcFAXMJAAIBCQCsAgICCEJsb2NrZWQ6CQCkAwEFAmR3BQJlZwECZnkFAmZ6AmRvAmRxAmFoAmZBBAJkcwkA2AQBCQEFdmFsdWUBBQJieAQCZHQJANgEAQkBBXZhbHVlAQUCYnkEAmRyBQJidwQCZWEFAmJ6BAJlYgUCYkEEAmVaCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHICEGludmFsaWQgbHAgYXNzZXQIcXVhbnRpdHkEAmZCAwkAvwICBQJlWgUBZQYJAAIBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmZCBQJmQgQCZHkJAQJiWQEFAmRzBAJkQQkBAmJZAQUCZHQEAmZDAwkAAAIFAmFoAgAJAJQKAgUCZHkFAmRBAwkAAAIFAmRvBQJkcwMJAGYCBQJmegUCZHkJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIJAGUCBQJkeQUCZnoFAmRBAwkAAAIFAmRvBQJkdAMJAGYCBQJmegUCZEEJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIFAmR5CQBlAgUCZEEFAmZ6CQACAQIQd3JvbmcgcG10QXNzZXRJZAQCZkQIBQJmQwJfMQQCZkUIBQJmQwJfMgQCZkYDCQAAAgUCZG8FAmRzCQCUCgIFAmZ6AAADCQAAAgUCZG8FAmR0CQCUCgIAAAUCZnoJAAIBAg9pbnZhbGlkIHBheW1lbnQEAmZHCAUCZkYCXzEEAmZICAUCZkYCXzIEAmZJAwUCZkEJAJUKAwgJAQJjRwIFAmZHBQJiYwJfMQgJAQJjRwIFAmZIBQJiYwJfMQgJAQJjRwIFAmZ6BQJiYwJfMgkAlQoDBQJmRwUCZkgAAAQCZkoIBQJmSQJfMQQCZksIBQJmSQJfMgQCY0kIBQJmSQJfMwQCZkwJAGQCBQJmRAUCZkoEAmZNCQBkAgUCZkUFAmZLBAJjbQkBAmNKAQkAzAgCCQEBSAIFAmZEBQJiegkAzAgCCQEBSAIFAmZFBQJiQQUDbmlsBAJjbAkBAmNKAQkAzAgCCQEBSAIFAmZMBQJiegkAzAgCCQEBSAIFAmZNBQJiQQUDbmlsBAJlaAMJAL8CAgUCY2wFAmNtBgkBBXRocm93AAMJAAACBQJlaAUCZWgEAmZOCQC9AgQFAmVaCQC4AgIFAmNsBQJjbQUCY20FBUZMT09SBAJkRAkBAUwCCQECY2ECCQEBSAIFAmZNBQJlYgkBAUgCBQJmTAUCZWEFAWEEAmVBCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJkRAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZEQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAgUCZHEFAmFoCQECYkoKBQJmRwUCZkgJAKADAQUCZk4FAmREAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZk8JAGsDBQJmRQUBYQUCZkQEAmZQCQBrAwUCZnoFAWEJAGQCBQJmTwUBYQQCZlEJAGUCBQJmegUCZlAEAmZSCQC8AgMFAmVaCQC2AgEFAmZRCQC2AgEFAmZFBAJmUwkAoAMBCQC8AgMJALgCAgUCZk4FAmZSBQFiBQJmUgkAlgoECQCgAwEFAmZOBQJlQQUCY0kFAmZTCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmVAYCZlUCZlYCZlcCZnYCZlgCZlkEAmRyCQDYBAEJAQV2YWx1ZQEFAmJ3BAJkcwkA2AQBCQEFdmFsdWUBBQJieAQCZHQJANgEAQkBBXZhbHVlAQUCYnkEAmZaBQJiegQCZ2EFAmJBBAJnYgUCYnYEAmRxAwkAAAIFAmZ2BQJiSQUCZlgFAmZ2BAJmdAkBBXZhbHVlAQkAkQMCBQJmVwAABAJkbwkBBXZhbHVlAQgFAmZ0B2Fzc2V0SWQEAmRVCAUCZnQGYW1vdW50BAJmYQkBAmVUAwUBZQUBZQUBZQMJAAACBQJmYQUCZmEEAmRuCQDYBAEFAmZZAwkBAiE9AgUCZHIJANgEAQUCZG8JAAIBAghXcm9uZyBMUAQCZHkJAQJiWQEFAmRzBAJkQQkBAmJZAQUCZHQEAmdjCgACYmQJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJmVQkAzAgCBQJkVQUDbmlsBQNuaWwDCQABAgUCYmQCCihJbnQsIEludCkFAmJkCQACAQkArAICCQADAQUCYmQCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkDCQAAAgUCZ2MFAmdjBAJjSQgFAmdjAl8yBAJnZAgFAmdjAl8xBAJnZQMDCQBmAgUCZlYAAAkAZgIFAmZWBQJnZAcJAQJhWgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZlYFA25pbAIABQJnZAQCZ2YDCQAAAgUCZlUFAmRzCQCWCgQFAmdlAAAJAGUCCQBlAgUCZHkFAmdlBQJjSQUCZEEDCQAAAgUCZlUFAmR0CQCWCgQAAAUCZ2UFAmR5CQBlAgkAZQIFAmRBBQJnZQUCY0kJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCZ2cIBQJnZgJfMQQCZ2gIBQJnZgJfMgQCZkwIBQJnZgJfMwQCZk0IBQJnZgJfNAQCZ2kJAQJjYQIJAQFIAgUCZk0FAmdhCQEBSAIFAmZMBQJmWgQCZ2oJAQFMAgUCZ2kFAWEEAmdrAwkAAAIFAmZVAgVXQVZFUwUEdW5pdAkA2QQBBQJmVQQCZ2wDCQBmAgUCY0kAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiaQUCY0kFAmdrBQNuaWwFA25pbAQCZEsJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJkcQUCZ2UFAmdrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaQIJAKUIAQUCZHEFAmRuCQECYlUGBQJnZwUCZ2gFAmRVBQJnagUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFiAAUCZ2oJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYwIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmdqBQNuaWwFAmdsAwkAAAIFAmRLBQJkSwQCZ20JAPwHBAUCYVQCBGJ1cm4JAMwIAgUCZFUFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZG8FAmRVBQNuaWwDCQAAAgUCZ20FAmdtBAJnbgQCZ28DCQAAAgUEdGhpcwUCYmkAAAUCY0kEAmdwAwkAAAIJAQJibgEFAmZVBQJieAYHAwUCZ3AJAJQKAgkBAS0BCQBkAgUCZ2QFAmdvAAAJAJQKAgAACQEBLQEJAGQCBQJnZAUCZ28EAmZjCAUCZ24CXzEEAmZkCAUCZ24CXzIEAmdxCQECZmIDBQJmYwUCZmQAAAQCZ3IIBQJncQJfMQQCZVMIBQJncQJfMgQCZ3MJAQJmZgIFAmZhBQJlUwMJAAACBQJncwUCZ3MJAJQKAgkAzggCBQJkSwUCZ3IFAmdlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJndAAEAmd1CQECYVIABAJhUAkAnQgCBQJndQkBAVoAAwkAAQIFAmFQAgZTdHJpbmcEAmFVBQJhUAkA2QQBBQJhVQMJAAECBQJhUAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAAJndgkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQJndwECY1kEAmFQCQECZ3QAAwkAAQIFAmFQAgpCeXRlVmVjdG9yBAJneAUCYVAJAAACCAUCY1kPY2FsbGVyUHVibGljS2V5BQJneAMJAAECBQJhUAIEVW5pdAkAAAIIBQJjWQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgECZ3kBAmNZBAJhUAkBAmd0AAMJAAECBQJhUAIKQnl0ZVZlY3RvcgQCZ3gFAmFQAwkAAAIIBQJjWQ9jYWxsZXJQdWJsaWNLZXkFAmd4BgUCZ3YDCQABAgUCYVACBFVuaXQDCQAAAggFAmNZBmNhbGxlcgUEdGhpcwYFAmd2CQACAQILTWF0Y2ggZXJyb3IBAmd6AwJnQQJlQwJnQgQCYnIJAQJiagAEAmRzCQCRAwIFAmJyBQF3BAJkdAkAkQMCBQJicgUBeAQCZUQFAWcEAmVGCQCnAwEFAWwEAmFRCQC5AgIJAKcDAQUCYmYFAmVGBAJjSwMJAAACBQJnQQcJAMwIAgkAtwICCQC2AgEJAQJiWQEFAmRzBQJnQgkAzAgCCQC2AgEJAQJiWQEFAmR0BQNuaWwJAMwIAgkAtwICCQC2AgEJAQJiWQEFAmR0BQJnQgkAzAgCCQC2AgEJAQJiWQEFAmRzBQNuaWwEAmVFCQCRAwIFAmNLAAAEAmFVBQJlRQQCY04JALkCAgUCYVEFAmVEBAJlRwkAugICCQC5AgIJALkCAgkAugICCQC5AgIFAmVDBQJlQwkAuQICBQJlRQUCZUQFAmVDBQJlRgkAuQICBQJjTgUCZUQEAmVICQC4AgIJALcCAgUCYVUJALoCAgkAuQICBQJlQwUCZUYFAmNOBQJlQwoBAmNXAgJjWAJlSQQCZ0MFAmNYBAJlSwgFAmdDAl8xBAJkbAgFAmdDAl8yAwkBAiE9AgUCZGwFBHVuaXQFAmNYBAJlTAkAugICCQC3AgIJALkCAgUCZUsFAmVLBQJlRwkAtwICCQC5AgIFAWcFAmVLBQJlSAQCZU0JAQFYAQkAuAICBQJlTAkBBXZhbHVlAQUCZUsDCQDAAgIFAWYFAmVNCQCUCgIFAmVMBQJlSQkAlAoCBQJlTAUEdW5pdAQCZGMJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4FA25pbAQCZ0QKAAJkZQUCZGMKAAJkZgkAkAMBBQJkZQoAAmRnCQCUCgIFAmVDBQR1bml0CgECZGgCAmRpAmRqAwkAZwIFAmRqBQJkZgUCZGkJAQJjVwIFAmRpCQCRAwIFAmRlBQJkagoBAmRrAgJkaQJkagMJAGcCBQJkagUCZGYFAmRpCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQJkawIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIJAQJkaAIFAmRnAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8EAmVLCAUCZ0QCXzEEAmRsCAUCZ0QCXzIDCQECIT0CBQJkbAUEdW5pdAUCZUsJAAIBCQCsAgICGVkgY2FsY3VsYXRpb24gZXJyb3IsIFkgPSAJAKYDAQUCZUsBAmdFAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhVAkBAmFHAQkApQgBBQR0aGlzBxsCY1kBIWNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBSRUFET05MWQMCZ0YCZ0ECZ0cEAmdIAwkAAAIFAmdBBwQCZ0kJAQJhVgIFBHRoaXMJAQJhawAEAmdCCQC3AgIJALYCAQkBAmJZAQkBAmFWAgUEdGhpcwkBAmFqAAkAtgIBBQJnRgkAlAoCBQJnSQUCZ0IEAmdJCQECYVYCBQR0aGlzCQECYWoABAJnQgkAtwICCQC2AgEJAQJiWQEJAQJhVgIFBHRoaXMJAQJhawAJALYCAQUCZ0YJAJQKAgUCZ0kFAmdCBAJnSQgFAmdIAl8xBAJnQggFAmdIAl8yBAJicgkBAmJqAAQCZHMJAJEDAgUCYnIFAXcEAmR0CQCRAwIFAmJyBQF4BAJjSwkAzAgCCQC2AgEJAQJiWQEFAmRzCQDMCAIJALYCAQkBAmJZAQUCZHQFA25pbAQCZUMJAQJjSgEFAmNLBAJlSwkBAmd6AwUCZ0EFAmVDCQC2AgEFAmdGBAJnSgkAuAICCQC4AgIJALYCAQkBAmJZAQUCZ0kFAmVLCQC2AgEAAQQCZ0sJAJYDAQkAzAgCAAAJAMwIAgkAoAMBBQJnSgUDbmlsBAJnTAMJAAACBQJnQQcJAMwIAgkAtwICCQC3AgIJALYCAQkBAmJZAQUCZHMJALYCAQUCZ0YJALYCAQUCZ0cJAMwIAgkAuAICCQC2AgEJAQJiWQEFAmR0BQJnSgUDbmlsCQDMCAIJALgCAgkAtgIBCQECYlkBBQJkcwUCZ0oJAMwIAgkAtwICCQC3AgIJALYCAQkBAmJZAQUCZHQJALYCAQUCZ0YJALYCAQUCZ0cFA25pbAQCZ00JAQJjSgEFAmdMBAJlaAMJAMACAgUCZ00FAmVDBgkAAgEJALkJAgkAzAgCAhRuZXcgRCBpcyBmZXdlciBlcnJvcgkAzAgCCQCmAwEFAmVDCQDMCAIJAKYDAQUCZ00FA25pbAICX18DCQAAAgUCZWgFAmVoCQCUCgIFA25pbAUCZ0sJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1kBJmNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBBbmRTZW5kVG9rZW5zBQJnRgJnQQJnTgJnTwJnRwQCZ1AKAAJiZAkA/AcEBQJhVAIXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJkAgZTdHJpbmcFAmJkCQACAQkArAICCQADAQUCYmQCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCZ1EJAMwIAgMJAGcCCAkBBXZhbHVlAQkAkQMCCAUCY1kIcGF5bWVudHMAAAZhbW91bnQFAmdGBgkBAmFaAQIMV3JvbmcgYW1vdW50CQDMCAIDCQAAAggFAmNZBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ1AGCQECYVoBAhFQZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFAmdRBQJnUQQCZnQJAQV2YWx1ZQEJAJEDAggFAmNZCHBheW1lbnRzAAAEAmdSCQECYnABCAUCZnQHYXNzZXRJZAQCZ1MDCQAAAgUCZ0EHBAJnSQkBAmFWAgUEdGhpcwkBAmFrAAQCZ0IJAGUCCQECYlkBBQJnUggJAQV2YWx1ZQEJAJEDAggFAmNZCHBheW1lbnRzAAAGYW1vdW50CQCUCgIFAmdJBQJnQgQCZ0kJAQJhVgIFBHRoaXMJAQJhagAEAmdCCQBlAgkBAmJZAQUCZ1IICQEFdmFsdWUBCQCRAwIIBQJjWQhwYXltZW50cwAABmFtb3VudAkAlAoCBQJnSQUCZ0IEAmdJCAUCZ1MCXzEEAmdCCAUCZ1MCXzIEAmJyCQECYmoABAJkcwkAkQMCBQJicgUBdwQCZHQJAJEDAgUCYnIFAXgEAmNLAwkAAAIFAmdBBwkAzAgCCQC4AgIJALYCAQkBAmJZAQUCZHMJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNZCHBheW1lbnRzAAAGYW1vdW50CQDMCAIJALYCAQkBAmJZAQUCZHQFA25pbAkAzAgCCQC2AgEJAQJiWQEFAmRzCQDMCAIJALgCAgkAtgIBCQECYlkBBQJkdAkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1kIcGF5bWVudHMAAAZhbW91bnQFA25pbAQCZUMJAQJjSgEFAmNLBAJlSwkBAmd6AwUCZ0EFAmVDCQC2AgEAAAQCZ0oJALgCAgkAuAICCQC2AgEJAQJiWQEFAmdJBQJlSwkAtgIBAAEEAmdLCQCWAwEJAMwIAgAACQDMCAIJAKADAQUCZ0oFA25pbAQCZ1QDCQBnAgUCZ0sFAmdOBgkAAgECLEV4Y2hhbmdlIHJlc3VsdCBpcyBmZXdlciBjb2lucyB0aGFuIGV4cGVjdGVkAwkAAAIFAmdUBQJnVAQCZ0wDCQAAAgUCZ0EHCQDMCAIJALcCAgkAtgIBCQECYlkBBQJkcwkAtgIBBQJnRwkAzAgCCQC4AgIJALYCAQkBAmJZAQUCZHQFAmdKBQNuaWwJAMwIAgkAuAICCQC2AgEJAQJiWQEFAmRzBQJnSgkAzAgCCQC3AgIJALYCAQkBAmJZAQUCZHQJALYCAQUCZ0cFA25pbAQCZ00JAQJjSgEFAmdMBAJlaAMJAMACAgUCZ00FAmVDBgkAAgECFG5ldyBEIGlzIGZld2VyIGVycm9yAwkAAAIFAmVoBQJlaAkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmdPBQJnSwkBAmJuAQUCZ0kFA25pbAUCZ0sJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1kBC2NvbnN0cnVjdG9yAQFZBAJlRwkBAmd5AQUCY1kDCQAAAgUCZUcFAmVHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUBWQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNZAQNwdXQCAmdVAmdWBAJnVwkBAmJEAAQCZ1gJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmdXBQFDAgpXciBzdCBhZGRyBAJnWQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZ1cFAUUCCldyIHNsIGFkZHIDCQBmAgAABQJnVQkAAgECDldyb25nIHNsaXBwYWdlAwkBAiE9AgkAkAMBCAUCY1kIcGF5bWVudHMAAgkAAgECDDIgcG1udHMgZXhwZAQCZ1oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNZCHBheW1lbnRzAAAGYW1vdW50BAJoYQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1kIcGF5bWVudHMAAQZhbW91bnQEAmVYCQC4AgIJALYCAQkBAmJZAQkBAmJwAQUCYngFAmdaAwkAAAIFAmVYBQJlWAQCZVkJALgCAgkAtgIBCQECYlkBCQECYnABBQJieQUCaGEDCQAAAgUCZVkFAmVZBAJlWgkAtgIBCAkBBXZhbHVlAQkA7AcBBQJidwhxdWFudGl0eQMJAAACBQJlWgUCZVoEAmZhCQECZVQDBQJnWgUCaGEJALYCAQAAAwkAAAIFAmZhBQJmYQQCaGIJAQJmdQoJAKUIAQgFAmNZBmNhbGxlcgkA2AQBCAUCY1kNdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQJjWQhwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQJjWQhwYXltZW50cwAABmFtb3VudAkAkQMCCAUCY1kIcGF5bWVudHMAAQUCZ1UGBwYAAAIABAJldQgFAmhiAl8yBAJoYwgFAmhiAl83BAJkSwgFAmhiAl85BAJldggFAmhiA18xMAQCZXcIBQJoYgNfMTEEAmRzCAUCaGIDXzEyBAJkdAgFAmhiA18xMwQCZWcJAPwHBAUCYVQCBGVtaXQJAMwIAgUCZXUFA25pbAUDbmlsAwkAAAIFAmVnBQJlZwQCaGQEAmFQBQJlZwMJAAECBQJhUAIHQWRkcmVzcwQCaGUFAmFQCQD8BwQFAmhlAgRlbWl0CQDMCAIFAmV1BQNuaWwFA25pbAUEdW5pdAMJAAACBQJoZAUCaGQEAmhmAwkAZgIFAmV2AAAJAPwHBAUCZ1kCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkcwUCZXYFA25pbAUDbmlsAwkAAAIFAmhmBQJoZgQCaGcDCQBmAgUCZXcAAAkA/AcEBQJnWQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmR0BQJldwUDbmlsBQNuaWwDCQAAAgUCaGcFAmhnBAJoaAMFAmdWBAJoaQkA/AcEBQJnWAIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCaGMFAmV1BQNuaWwDCQAAAgUCaGkFAmhpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmNZBmNhbGxlcgUCZXUFAmhjBQNuaWwEAmhqCQECZmIDAAAAAAAABAJncggFAmhqAl8xBAJlUwgFAmhqAl8yBAJoawMJAMACAgUCZVMFAmZhBgkBAmFaAQkAuQkCCQDMCAICInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHAJAMwIAgkApgMBBQJlWAkAzAgCCQCmAwEFAmVZCQDMCAIJAKYDAQUCZVoJAMwIAgkApgMBBQJmYQkAzAgCCQCmAwEFAmVTCQDMCAIJAKQDAQUCZXYJAMwIAgkApAMBBQJldwUDbmlsAgEgAwkAAAIFAmhrBQJoawQCaGwICQEFdmFsdWUBCQDsBwEFAmJ3CHF1YW50aXR5AwkAAAIFAmhsBQJobAkAzggCCQDOCAIFAmRLBQJoaAUCZ3IJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1kBC3B1dE9uZVRrblYyAgJmVgJnVgQCaG0KAAJiZAkA/AcEBQJhVAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmJkAgdCb29sZWFuBQJiZAkAAgEJAKwCAgkAAwEFAmJkAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJobgMDAwkBAmJnAAYJAAACBQJidgUBcQYJAAACBQJidgUBcwYFAmhtBAJnUQkAzAgCAwMJAQEhAQUCaG4GCQECZ3cBBQJjWQYJAQJhWgECIXB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNZCHBheW1lbnRzAAEGCQECYVoBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnUQUCZ1EEAmRzCQDYBAEJAQV2YWx1ZQEFAmJ4BAJkdAkA2AQBCQEFdmFsdWUBBQJieQQCZHIFAmJ3BAJmWgUCYnoEAmdhBQJiQQQCZHEDCQAAAggFAmNZBmNhbGxlcgUEdGhpcwgFAmNZDG9yaWdpbkNhbGxlcggFAmNZBmNhbGxlcgQCZnQJAQV2YWx1ZQEJAJEDAggFAmNZCHBheW1lbnRzAAAEAmRvCQDYBAEJAQV2YWx1ZQEIBQJmdAdhc3NldElkBAJkVQgFAmZ0BmFtb3VudAQCZmEDCQAAAggFAmZ0B2Fzc2V0SWQFAmJ4CQECZVQDCQC2AgEFAmRVCQC2AgEAAAkAtgIBAAAJAQJlVAMJALYCAQAACQC2AgEFAmRVCQC2AgEAAAMJAAACBQJmYQUCZmEEAmhvCQECZnkFBQJkVQUCZG8JAKUIAQUCZHEJANgEAQgFAmNZDXRyYW5zYWN0aW9uSWQGAwkAAAIFAmhvBQJobwQCY0kIBQJobwJfMwQCZEsIBQJobwJfMgQCaHAIBQJobwJfMQQCZXUDAwkAZgIFAmZWAAAJAGYCBQJmVgUCaHAHCQECYVoBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZWBQNuaWwCAAUCaHAEAmhiCQD8BwQFAmFUAgRlbWl0CQDMCAIFAmV1BQNuaWwFA25pbAMJAAACBQJoYgUCaGIEAmhkBAJhUAUCaGIDCQABAgUCYVACB0FkZHJlc3MEAmhlBQJhUAkA/AcEBQJoZQIEZW1pdAkAzAgCBQJldQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCaGQFAmhkBAJoaAMFAmdWBAJoaQkA/AcEBQJiRgIIc3Rha2VGb3IJAMwIAgkApQgBCAUCY1kGY2FsbGVyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRyBQJldQUDbmlsAwkAAAIFAmhpBQJoaQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJjWQZjYWxsZXIFAmV1BQJkcgUDbmlsBAJnbAMJAGYCBQJjSQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJpBQJjSQkA2QQBBQJkbwUDbmlsBQNuaWwEAmhxAwkAAAIFBHRoaXMFAmJpCQCUCgIAAAAABAJocgMJAAACCAUCZnQHYXNzZXRJZAUCYngGBwMFAmhyCQCUCgIJAQEtAQUCY0kAAAkAlAoCAAAJAQEtAQUCY0kEAmZjCAUCaHECXzEEAmZkCAUCaHECXzIEAmhzCQECZmIDBQJmYwUCZmQAAAQCZ3IIBQJocwJfMQQCZVMIBQJocwJfMgQCZ3MJAQJmZgIFAmZhBQJlUwMJAAACBQJncwUCZ3MJAJQKAgkAzggCCQDOCAIJAM4IAgUCZEsFAmhoBQJnbAUCZ3IFAmV1CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNZAQpwdXRGb3JGcmVlAQJodAMJAGYCAAAFAmh0CQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmNZCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmh1CQECZnUKCQClCAEIBQJjWQZjYWxsZXIJANgEAQgFAmNZDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCY1kIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCY1kIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmNZCHBheW1lbnRzAAEFAmh0BwcGAAACAAQCZEsIBQJodQJfOQQCZ1oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmNZCHBheW1lbnRzAAAGYW1vdW50BAJoYQkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCY1kIcGF5bWVudHMAAQZhbW91bnQEAmZhCQECZVQDBQJnWgUCaGEJALYCAQAAAwkAAAIFAmZhBQJmYQQCaHYJAQJmYgMAAAAAAAAEAmdyCAUCaHYCXzEEAmVTCAUCaHYCXzIEAmdzCQECZmYCBQJmYQUCZVMDCQAAAgUCZ3MFAmdzCQDOCAIFAmRLBQJncgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWQEDZ2V0AAQCZmEJAQJlVAMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZmEFAmZhBAJlZwkBAmZzAQUCY1kEAmh3CAUCZWcCXzEEAmRKCAUCZWcCXzIEAmRVCAUCZWcCXzMEAmRvCAUCZWcCXzQEAmRLCAUCZWcCXzUEAmVICQD8BwQFAmFUAgRidXJuCQDMCAIFAmRVBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRvBQJkVQUDbmlsAwkAAAIFAmVIBQJlSAQCaHgJAQJmYgMJAQEtAQUCaHcJAQEtAQUCZEoAAAQCZ3IIBQJoeAJfMQQCZVMIBQJoeAJfMgQCZ3MJAQJmZgIFAmZhBQJlUwMJAAACBQJncwUCZ3MJAM4IAgUCZEsFAmdyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNZAQtnZXRPbmVUa25WMgICZlUCZlYEAmhtCgACYmQJAPwHBAUCYVQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJiZAIHQm9vbGVhbgUCYmQJAAIBCQCsAgIJAAMBBQJiZAIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaHkDAwkBAmJnAAYJAAACBQJidgUBcwYFAmhtBAJnUQkAzAgCAwMJAQEhAQUCaHkGCQECZ3cBBQJjWQYJAQJhWgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmNZCHBheW1lbnRzAAEGCQECYVoBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnUQUCZ1EEAmh6CQECZlQGBQJmVQUCZlYIBQJjWQhwYXltZW50cwgFAmNZBmNhbGxlcggFAmNZDG9yaWdpbkNhbGxlcggFAmNZDXRyYW5zYWN0aW9uSWQEAmRLCAUCaHoCXzEEAmdlCAUCaHoCXzIJAJQKAgUCZEsFAmdlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNZAQpyZWZyZXNoRExwAAQCaEEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYXMAAAQCaEIDCQBnAgkAZQIFBmhlaWdodAUCaEEFAmF2BQR1bml0CQECYVoBCQC5CQIJAMwIAgkApAMBBQJhdgkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCaEIFAmhCBAJmbQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXICATAJAQJiYgECC2ludmFsaWQgZExwBAJoQwkBAmZiAwAAAAAAAAQCaEQIBQJoQwJfMQQCZVMIBQJoQwJfMgQCZmUDCQECIT0CBQJmbQUCZVMFAmhECQECYVoBAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZmUJAKYDAQUCZVMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1kBE2dldE9uZVRrblYyUkVBRE9OTFkCAmZVAmhFBAJkcwkA2AQBCQEFdmFsdWUBBQJieAQCZHQJANgEAQkBBXZhbHVlAQUCYnkEAmRyCQDYBAEJAQV2YWx1ZQEFAmJ3BAJjSwkAzAgCCQC2AgEJAQJiWQEFAmRzCQDMCAIJALYCAQkBAmJZAQUCZHQFA25pbAQCZVIJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmRyAhBpbnZhbGlkIGxwIGFzc2V0CHF1YW50aXR5BAJjbQkBAmNKAQUCY0sEAmNsCQC4AgIFAmNtCQC8AgMJALYCAQUCaEUFAmNtBQJlUgQCaEYDCQAAAgUCZlUFAmRzAAADCQAAAgUCZlUFAmR0AAEJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCaEcJAQJlQgMFAmNLBQJoRgUCY2wEAmdKCQC4AgIJAJEDAgUCY0sFAmhGBQJoRwQCZ0sJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC4AgIFAmdKBQFmBQNuaWwEAmhICQECY0cCBQJnSwUCYmUEAmdkCAUCaEgCXzEEAmNJCAUCaEgCXzIJAJQKAgUDbmlsCQCUCgIFAmdkBQJjSQJjWQEcZ2V0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICZlUCaEUEAmRzCQDYBAEJAQV2YWx1ZQEFAmJ4BAJkdAkA2AQBCQEFdmFsdWUBBQJieQQCZHIJANgEAQkBBXZhbHVlAQUCYncEAmR5CQECYlkBBQJkcwQCZEEJAQJiWQEFAmR0BAJoSQoAAmJkCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZlUJAMwIAgUCaEUFA25pbAUDbmlsAwkAAQIFAmJkAgooSW50LCBJbnQpBQJiZAkAAgEJAKwCAgkAAwEFAmJkAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJnZAgFAmhJAl8xBAJjSQgFAmhJAl8yBAJlZwkBAmRtBAIABQJkcgUCaEUFBHRoaXMEAmRJCAUCZWcCXzEEAmRKCAUCZWcCXzIEAmhKCQBkAgUCZEkFAmRKBAJmUwMJAAACBQJoSgAAAwkAAAIFAmdkAAAAAAkAAgECF2JvbnVzIGNhbGN1bGF0aW9uIGVycm9yCQBrAwkAZQIFAmdkBQJoSgUBYQUCaEoJAJQKAgUDbmlsCQCVCgMFAmdkBQJjSQUCZlMCY1kBCWdldE5vTGVzcwICaEsCaEwEAmVnCQECZnMBBQJjWQQCZEkIBQJlZwJfMQQCZEoIBQJlZwJfMgQCZFUIBQJlZwJfMwQCZG8IBQJlZwJfNAQCZEsIBQJlZwJfNQMJAGYCBQJoSwUCZEkJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCZEkCAyA8IAkApAMBBQJoSwMJAGYCBQJoTAUCZEoJAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJkSgIDIDwgCQCkAwEFAmhMBAJmYQkBAmVUAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJmYQUCZmEEAmhNCQD8BwQFAmFUAgRidXJuCQDMCAIFAmRVBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRvBQJkVQUDbmlsAwkAAAIFAmhNBQJoTQQCaE4JAQJmYgMJAQEtAQUCZEkJAQEtAQUCZEoAAAQCZ3IIBQJoTgJfMQQCZVMIBQJoTgJfMgQCZ3MJAQJmZgIFAmZhBQJlUwMJAAACBQJncwUCZ3MJAM4IAgUCZEsFAmdyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNZAQ11bnN0YWtlQW5kR2V0AQJjSAQCaE8DCQECIT0CCQCQAwEIBQJjWQhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCaE8FAmhPBAJoUAkBAmJEAAQCaGMFAmJ3BAJoUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFAFAUMCCldyIHN0IGFkZHIEAmZhCQECZVQDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmZhBQJmYQQCaFIJAPwHBAUCaFECB3Vuc3Rha2UJAMwIAgkA2AQBBQJoYwkAzAgCBQJjSAUDbmlsBQNuaWwDCQAAAgUCaFIFAmhSBAJlZwkBAmRtBAkA2AQBCAUCY1kNdHJhbnNhY3Rpb25JZAkA2AQBBQJoYwUCY0gIBQJjWQZjYWxsZXIEAmRJCAUCZWcCXzEEAmRKCAUCZWcCXzIEAmR3CQENcGFyc2VJbnRWYWx1ZQEIBQJlZwJfOQQCZEsIBQJlZwNfMTAEAmhTAwMJAQJiZwAGCQAAAgUCZHcFAXMJAAIBCQCsAgICCUJsb2NrZWQ6IAkApAMBBQJkdwYDCQAAAgUCaFMFAmhTBAJoVAkA/AcEBQJhVAIEYnVybgkAzAgCBQJjSAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJoYwUCY0gFA25pbAMJAAACBQJoVAUCaFQEAmhVCQECZmIDCQEBLQEFAmRJCQEBLQEFAmRKAAAEAmdyCAUCaFUCXzEEAmVTCAUCaFUCXzIEAmdzCQECZmYCBQJmYQUCZVMDCQAAAgUCZ3MFAmdzCQDOCAIFAmRLBQJncgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJjWQETdW5zdGFrZUFuZEdldE5vTGVzcwMCaFYCaFcCaEwEAmh5AwkBAmJnAAYJAAACBQJidgUBcwQCZ1EJAMwIAgMJAQEhAQUCaHkGCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCY1kIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnUQUCZ1EEAmZhCQECZVQDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmZhBQJmYQQCaFIJAPwHBAUCYkYCB3Vuc3Rha2UJAMwIAgkA2AQBBQJidwkAzAgCBQJoVgUDbmlsBQNuaWwDCQAAAgUCaFIFAmhSBAJoWAkBAmRtBAkA2AQBCAUCY1kNdHJhbnNhY3Rpb25JZAkA2AQBBQJidwUCaFYIBQJjWQZjYWxsZXIEAmRJCAUCaFgCXzEEAmRKCAUCaFgCXzIEAmRLCAUCaFgDXzEwBAJoWQkAzAgCAwkAZwIFAmRJBQJoVwYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoVwUDbmlsAgAJAMwIAgMJAGcCBQJkSgUCaEwGCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoTAUDbmlsAgAFA25pbAMJAAACBQJoWQUCaFkEAmhNCQD8BwQFAmFUAgRidXJuCQDMCAIFAmhWBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJ3BQJoVgUDbmlsAwkAAAIFAmhNBQJoTQQCaFoJAQJmYgMJAQEtAQUCZEkJAQEtAQUCZEoAAAQCZ3IIBQJoWgJfMQQCZVMIBQJoWgJfMgQCZ3MJAQJmZgIFAmZhBQJlUwMJAAACBQJncwUCZ3MJAM4IAgUCZEsFAmdyCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmNZARV1bnN0YWtlQW5kR2V0T25lVGtuVjIDAmhWAmZVAmZWBAJobQoAAmJkCQD8BwQFAmFUAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYmQCB0Jvb2xlYW4FAmJkCQACAQkArAICCQADAQUCYmQCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmh5AwMJAQJiZwAGCQAAAgUCYnYFAXMGBQJobQQCZ1EJAMwIAgMDCQEBIQEFAmh5BgkBAmd3AQUCY1kGCQECYVoBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJjWQhwYXltZW50cwAABgkBAmFaAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ1EFAmdRBAJoUAkBAmJEAAQCaGMFAmJ3BAJoUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaFAFAUMCCldyIHN0IGFkZHIEAmRxCAUCY1kGY2FsbGVyBAJpYQUEdGhpcwQCaFIJAPwHBAUCaFECD3Vuc3Rha2VJTlRFUk5BTAkAzAgCBQJoYwkAzAgCBQJoVgkAzAgCCAUCZHEFYnl0ZXMJAMwIAggFAmlhBWJ5dGVzBQNuaWwFA25pbAMJAAACBQJoUgUCaFIEAmliCQECZlQGBQJmVQUCZlYJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmhjBQJoVgUDbmlsCAUCY1kGY2FsbGVyCAUCY1kMb3JpZ2luQ2FsbGVyCAUCY1kNdHJhbnNhY3Rpb25JZAQCZEsIBQJpYgJfMQQCZ2UIBQJpYgJfMgkAlAoCBQJkSwUCZ2UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CY1kBHHB1dE9uZVRrblYyV2l0aEJvbnVzUkVBRE9OTFkCAmljAmlkBAJpZQkBAmZ5BQUCaWMFAmlkAgACAAYEAmZOCAUCaWUCXzEEAmRLCAUCaWUCXzIEAmNJCAUCaWUCXzMEAmZTCAUCaWUCXzQJAJQKAgUDbmlsCQCVCgMFAmZOBQJjSQUCZlMCY1kBIXB1dE9uZVRrblYyV2l0aG91dFRha2VGZWVSRUFET05MWQICaWMCaWQEAmlmCQECZnkFBQJpYwUCaWQCAAIABwQCZk4IBQJpZgJfMQQCZEsIBQJpZgJfMgQCY0kIBQJpZgJfMwQCZlMIBQJpZgJfNAkAlAoCBQNuaWwJAJUKAwUCZk4FAmNJBQJmUwJjWQEIYWN0aXZhdGUCAmlnAmloAwkBAiE9AgkApQgBCAUCY1kGY2FsbGVyCQClCAEFAmFUCQACAQIGZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFqAAUCaWcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFrAAUCaWgFA25pbAIHc3VjY2VzcwJjWQEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYmoAAmNZARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJiWgkAlAoCBQNuaWwJAQJiWQEFAmJaAmNZARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJjcwJjdAJjeAQCaWkJAQJjdwMFAmNzBQJjdAUCY3gJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJpaQAACQDMCAIJAKYDAQkAkQMCBQJpaQABCQDMCAIJAKYDAQkAkQMCBQJpaQACBQNuaWwCY1kBFmZyb21YMThXcmFwcGVyUkVBRE9OTFkCAU0CaWoJAJQKAgUDbmlsCQEBTAIJAKcDAQUBTQUCaWoCY1kBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQCmAwEJAQFIAgUBSQUBSgJjWQEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJjYgJjYwkAlAoCBQNuaWwJAKYDAQkBAmNhAgkApwMBBQJjYgkApwMBBQJjYwJjWQEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRuAmNoAmRNAmROAmRPAmRQAmlrAmRRAmRSCQCUCgIFA25pbAkBAmRMDQUCZG4FAmNoBQJkTQUCZE4FAmRPBQJkUAUCaWsFAmRRBQJkUgYHAAACAAJjWQEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRuAmlsAmRwAmlrBAJlZwkBAmRtBAUCZG4FAmlsBQJkcAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCaWsJAJQKAgUDbmlsCQCcCgoIBQJlZwJfMQgFAmVnAl8yCAUCZWcCXzMIBQJlZwJfNAgFAmVnAl81CAUCZWcCXzYIBQJlZwJfNwkApgMBCAUCZWcCXzgIBQJlZwJfOQgFAmVnA18xMAJjWQEJY2hhbmdlQW1wAAQCaW0JAPwHBAUCYVQCGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwEAmluBAJhUAUCaW0DCQABAgUCYVACCUxpc3RbQW55XQQCaW8FAmFQCQCVCgMKAAJiZAkAkQMCBQJpbwAAAwkAAQIFAmJkAgNJbnQFAmJkCQACAQkArAICCQADAQUCYmQCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAoAAmJkCQCRAwIFAmlvAAEDCQABAgUCYmQCA0ludAUCYmQJAAIBCQCsAgIJAAMBBQJiZAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50CgACYmQJAJEDAgUCaW8AAgMJAAECBQJiZAIDSW50BQJiZAkAAgEJAKwCAgkAAwEFAmJkAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQJAQJhWgECEmludmFsaWQgZW50cnkgdHlwZQQCaXAIBQJpbgJfMQQCaXEIBQJpbgJfMgQCaXIIBQJpbgJfMwQCaXMJAQ1wYXJzZUludFZhbHVlAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFsAAQCaXQJAGQCBQJpcwUCaXEEAml1AwkAZgIAAAUCaXEDCQBmAgUCaXIFAml0BQJpcgUCaXQDCQBmAgUCaXQFAmlyBQJpcgUCaXQEAml2CQELdmFsdWVPckVsc2UCCQCfCAEJAQJhbwAAAAQCaXcJAGQCBQJpdgUCaXAEAmdRCQDMCAIDCQBmAgUGaGVpZ2h0BQJpdwYJAQJhWgECF3RyeSBhZ2FpbiBpbiBmZXcgYmxvY2tzCQDMCAIDCQECIT0CBQJpcwUCaXUGCQECYVoBAhZhbHJlYWR5IHJlYWNoZWQgdGFyZ2V0BQNuaWwDCQAAAgUCZ1EFAmdRCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW8ABQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFsAAkApAMBBQJpdQkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0BBQZoZWlnaHQJAKQDAQUCaXUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECaXgBAml5AAQCaXoEAmFQCQECZ3QAAwkAAQIFAmFQAgpCeXRlVmVjdG9yBAJneAUCYVAFAmd4AwkAAQIFAmFQAgRVbml0CAUCaXgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmFQBQJpeAMJAAECBQJhUAIFT3JkZXIEAmZpBQJhUAQCaUEJAQJiaAAEAmlCAwkBAmdFAAkAlAoCBgIACQECZmgBBQJmaQQCYUoIBQJpQgJfMQQCYUsIBQJpQgJfMgQCYUwJAPQDAwgFAmZpCWJvZHlCeXRlcwkAkQMCCAUCZmkGcHJvb2ZzAAAIBQJmaQ9zZW5kZXJQdWJsaWNLZXkEAmFNCQD0AwMIBQJmaQlib2R5Qnl0ZXMJAJEDAggFAmZpBnByb29mcwABBQJpQQMDAwUCYUoFAmFMBwUCYU0HBgkBAmFJBAUCYUoFAmFLBQJhTAUCYU0DCQABAgUCYVACFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJhVQUCYVADCQD0AwMIBQJpeAlib2R5Qnl0ZXMJAJEDAggFAml4BnByb29mcwAABQJpegYEAmlDCQD2AwEJAQV2YWx1ZQEIBQJhVQZzY3JpcHQEAmlECQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYVQJAQJhRQAEAmlFCQDxBwEFBHRoaXMDCQAAAgUCaUQFAmlDCQECIT0CBQJpRQUCaUMHCQD0AwMIBQJpeAlib2R5Qnl0ZXMJAJEDAggFAml4BnByb29mcwAABQJpek7bkhU=", "height": 2603410, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4Mw4DdFEYSvrjPrGPjnaRRBzLfxP6sjhEzFN6T3hEYbv Next: 8izLCTE3yVT8ynDQSJ812eRMzX6mRA5en3n7nGg9PZUM Diff:
OldNewDifferences
2323
2424 let k = "WAVES"
2525
26-let l = 50
26+let l = "100"
2727
28-let m = "100"
28+let m = "1"
2929
30-let n = "1"
30+let n = "__"
3131
32-let o = "__"
32+let o = ""
3333
34-let p = ""
34+let p = 1
3535
36-let q = 1
36+let q = 2
3737
38-let r = 2
38+let r = 3
3939
40-let s = 3
40+let s = 4
4141
42-let t = 4
42+let t = 1
4343
44-let u = 1
44+let u = 2
4545
46-let v = 2
46+let v = 3
4747
48-let w = 3
48+let w = 4
4949
50-let x = 4
50+let x = 5
5151
52-let y = 5
52+let y = 6
5353
54-let z = 6
54+let z = 7
5555
56-let A = 7
56+let A = 8
5757
58-let B = 8
58+let B = 9
5959
60-let C = 9
60+let C = 1
6161
62-let D = 1
62+let D = 6
6363
64-let E = 6
64+let E = 7
6565
66-let F = 7
66+let F = 10
6767
68-let G = 10
68+let G = fraction(10, a, 10000)
6969
70-let H = fraction(10, a, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
70+func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7371
7472
75-func L (J,K) = fraction(J, c, K)
73+func K (I,J) = fraction(I, c, J)
7674
7775
78-func M (N,O) = toInt(fraction(N, toBigInt(O), c))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7977
8078
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8280
8381
84-func R (J,K) = fraction(J, c, toBigInt(K))
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8583
8684
87-func S (N,O) = fraction(N, toBigInt(O), c)
85+func R (M,N) = fraction(M, toBigInt(N), c)
8886
8987
90-func T (U,V,W) = fraction(U, V, W)
88+func S (T,U,V) = fraction(T, U, V)
9189
9290
93-func X (N) = if ((d > N))
94- then -(N)
95- else N
91+func W (M) = if ((d > M))
92+ then -(M)
93+ else M
9694
9795
98-func Y (N) = if ((d > N))
99- then -(N)
100- else N
96+func X (M) = if ((d > M))
97+ then -(M)
98+ else M
10199
102100
103-func Z () = "%s__factoryContract"
101+func Y () = "%s__factoryContract"
104102
105103
106-func aa () = "%s__managerPublicKey"
104+func Z () = "%s__managerPublicKey"
107105
108106
109-func ab () = "%s__managerVaultAddress"
107+func aa () = "%s__managerVaultAddress"
110108
111109
112-func ac () = "%s%s__price__last"
110+func ab () = "%s%s__price__last"
113111
114112
115-func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
113+func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
116114
117115
118-func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
116+func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
119117
120118
121-func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
119+func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
122120
123121
124-func ak () = "%s__amountAsset"
122+func aj () = "%s__amountAsset"
125123
126124
127-func al () = "%s__priceAsset"
125+func ak () = "%s__priceAsset"
128126
129127
130-func am () = "%s__amp"
128+func al () = "%s__amp"
131129
132130
133-func an (ao) = ("%s%d__amp__" + toString(ao))
131+func am (an) = ("%s%d__amp__" + toString(an))
134132
135133
136-func ap () = "%s__changeAmpLastCall"
134+func ao () = "%s__changeAmpLastCall"
137135
138136
139-let aq = "%s__fee"
137+let ap = "%s__fee"
140138
141-let ar = valueOrElse(getInteger(this, aq), H)
139+let aq = valueOrElse(getInteger(this, ap), G)
142140
143-let as = makeString(["%s", "dLp"], o)
141+let ar = makeString(["%s", "dLp"], n)
144142
145-let at = makeString(["%s", "dLpRefreshedHeight"], o)
143+let as = makeString(["%s", "dLpRefreshedHeight"], n)
146144
147-let au = makeString(["%s", "refreshDLpDelay"], o)
145+let at = makeString(["%s", "refreshDLpDelay"], n)
148146
149-let av = 30
147+let au = 30
150148
151-let aw = valueOrElse(getInteger(this, au), av)
149+let av = valueOrElse(getInteger(this, at), au)
152150
153-func ax () = "%s__factoryConfig"
151+func aw () = "%s__factoryConfig"
154152
155153
156-func ay () = "%s%s__matcher__publicKey"
154+func ax () = "%s%s__matcher__publicKey"
157155
158156
159-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
157+func ay (az,aA) = (((("%d%d%s__" + az) + "__") + aA) + "__config")
160158
161159
162-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
160+func aB (aC) = ("%s%s%s__mappings__baseAsset2internalId__" + aC)
163161
164162
165-func aE () = "%s__shutdown"
163+func aD () = "%s__shutdown"
166164
167165
168-func aF () = "%s__allowedLpStableScriptHash"
166+func aE () = "%s__allowedLpStableScriptHash"
169167
170168
171-func aG () = "%s__feeCollectorAddress"
169+func aF () = "%s__feeCollectorAddress"
172170
173171
174-func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172+func aG (aH) = ("%s%s__skipOrderValidation__" + aH)
175173
176174
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175+func aI (aJ,aK,aL,aM) = throw((((((((("order validation failed: orderValid=" + toString(aJ)) + " (") + aK) + ")") + " senderValid=") + toString(aL)) + " matcherValid=") + toString(aM)))
178176
179177
180-func aO (aP) = {
181- let aQ = addressFromString(aP)
182- if ($isInstanceOf(aQ, "Address"))
178+func aN (aO) = {
179+ let aP = addressFromString(aO)
180+ if ($isInstanceOf(aP, "Address"))
183181 then {
184- let aR = aQ
185- aR
182+ let aQ = aP
183+ aQ
186184 }
187185 else this
188186 }
189187
190188
191-func aS () = {
192- let aT = {
193- let aQ = getString(Z())
194- if ($isInstanceOf(aQ, "String"))
189+func aR () = {
190+ let aS = {
191+ let aP = getString(Y())
192+ if ($isInstanceOf(aP, "String"))
195193 then {
196- let aU = aQ
197- aO(aU)
194+ let aT = aP
195+ aN(aT)
198196 }
199197 else this
200198 }
201- let aQ = getString(aT, ab())
202- if ($isInstanceOf(aQ, "String"))
199+ let aP = getString(aS, aa())
200+ if ($isInstanceOf(aP, "String"))
203201 then {
204- let aV = aQ
205- aO(aV)
202+ let aU = aP
203+ aN(aU)
206204 }
207205 else this
208206 }
209207
210208
211-func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
209+func aV (aW,aX) = valueOrErrorMessage(getString(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
212210
213211
214-func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
212+func aY (aW,aX) = valueOrErrorMessage(getInteger(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
215213
216214
217-func ba (bb) = throw(makeString(["lp_stable.ride:", bb], " "))
215+func aZ (ba) = throw(makeString(["lp_stable.ride:", ba], " "))
218216
219217
220-func bc (bb) = makeString(["lp_stable.ride:", bb], " ")
218+func bb (ba) = makeString(["lp_stable.ride:", ba], " ")
221219
222220
223-let aU = addressFromStringValue(aW(this, Z()))
221+let aT = addressFromStringValue(aV(this, Y()))
224222
225-let bd = {
226- let be = invoke(aU, "getInFeeREADONLY", [toString(this)], nil)
227- if ($isInstanceOf(be, "Int"))
228- then be
229- else throw(($getType(be) + " couldn't be cast to Int"))
223+let bc = {
224+ let bd = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
225+ if ($isInstanceOf(bd, "Int"))
226+ then bd
227+ else throw(($getType(bd) + " couldn't be cast to Int"))
230228 }
231229
232-let bf = {
233- let be = invoke(aU, "getOutFeeREADONLY", [toString(this)], nil)
234- if ($isInstanceOf(be, "Int"))
235- then be
236- else throw(($getType(be) + " couldn't be cast to Int"))
230+let be = {
231+ let bd = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
232+ if ($isInstanceOf(bd, "Int"))
233+ then bd
234+ else throw(($getType(bd) + " couldn't be cast to Int"))
237235 }
238236
239-let bg = aW(this, am())
237+let bf = aV(this, al())
240238
241-func bh () = valueOrElse(getBoolean(aU, aE()), false)
239+func bg () = valueOrElse(getBoolean(aT, aD()), false)
242240
243241
244-func bi () = fromBase58String(aW(aU, ay()))
242+func bh () = fromBase58String(aV(aT, ax()))
245243
246244
247-let bj = addressFromStringValue(aW(aU, aG()))
245+let bi = addressFromStringValue(aV(aT, aF()))
248246
249-func bk () = {
250- let bl = aW(this, ak())
251- let bm = aW(this, al())
252- let bn = aZ(aU, aC(bm))
253- let aA = aZ(aU, aC(bl))
254- split(aW(aU, az(toString(aA), toString(bn))), o)
247+func bj () = {
248+ let bk = aV(this, aj())
249+ let bl = aV(this, ak())
250+ let bm = aY(aT, aB(bl))
251+ let az = aY(aT, aB(bk))
252+ split(aV(aT, ay(toString(az), toString(bm))), n)
255253 }
256254
257255
258-func bo (bp) = if ((bp == k))
256+func bn (bo) = if ((bo == k))
259257 then unit
260- else fromBase58String(bp)
258+ else fromBase58String(bo)
261259
262260
263-func bq (bp) = if ((bp == unit))
261+func bp (bo) = if ((bo == unit))
264262 then k
265- else toBase58String(value(bp))
263+ else toBase58String(value(bo))
266264
267265
268-func br (bs) = $Tuple7(addressFromStringValue(bs[u]), parseIntValue(bs[v]), fromBase58String(bs[w]), bo(bs[x]), bo(bs[y]), parseIntValue(bs[z]), parseIntValue(bs[A]))
266+func bq (br) = $Tuple9(addressFromStringValue(br[t]), parseIntValue(br[u]), fromBase58String(br[v]), bn(br[w]), bn(br[x]), parseIntValue(br[y]), parseIntValue(br[z]), fromBase58String(br[A]), fromBase58String(br[B]))
269267
270268
271-let bt = br(bk())
269+let bs = bq(bj())
272270
273-let bu = bt
271+let bt = bs
274272
275-let bv = bu._1
273+let bu = bt._1
276274
277-let bw = bu._2
275+let bv = bt._2
278276
279-let bx = bu._3
277+let bw = bt._3
280278
281-let by = bu._4
279+let bx = bt._4
282280
283-let bz = bu._5
281+let by = bt._5
284282
285-let bA = bu._6
283+let bz = bt._6
286284
287-let bB = bu._7
285+let bA = bt._7
288286
289-func bC () = split(aW(aU, ax()), o)
287+let bB = bt._8
288+
289+let bC = bt._9
290+
291+func bD () = split(aV(aT, aw()), n)
290292
291293
292-let bD = bC()
294+let bE = bD()
293295
294-let bE = valueOrErrorMessage(addressFromString(bD[D]), "Invalid staking contract address")
296+let bF = valueOrErrorMessage(addressFromString(bE[C]), "Invalid staking contract address")
295297
296-let bF = valueOrErrorMessage(addressFromString(bD[F]), "Invalid slipage contract address")
298+let bG = valueOrErrorMessage(addressFromString(bE[E]), "Invalid slipage contract address")
297299
298-let bG = valueOrErrorMessage(addressFromString(bD[G]), "Invalid gwx contract address")
300+let bH = valueOrErrorMessage(addressFromString(bE[F]), "Invalid gwx contract address")
299301
300-let bH = valueOrErrorMessage(addressFromString(bD[E]), "Invalid gwx contract address")
302+let bI = valueOrErrorMessage(addressFromString(bE[D]), "Invalid gwx contract address")
301303
302-func bI (bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS)], o)
304+func bJ (bK,bL,bM,bN,bO,bP,bQ,bR,bS,bT) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT)], n)
303305
304306
305-func bT (bU,bV,bW,bM,bP,bQ) = makeString(["%d%d%d%d%d%d", toString(bU), toString(bV), toString(bW), toString(bM), toString(bP), toString(bQ)], o)
307+func bU (bV,bW,bX,bN,bQ,bR) = makeString(["%d%d%d%d%d%d", toString(bV), toString(bW), toString(bX), toString(bN), toString(bQ), toString(bR)], n)
306308
307309
308-func bX (bY) = if ((bY == "WAVES"))
310+func bY (bZ) = if ((bZ == "WAVES"))
309311 then wavesBalance(this).available
310- else assetBalance(this, fromBase58String(bY))
312+ else assetBalance(this, fromBase58String(bZ))
311313
312314
313-func bZ (ca,cb) = fraction(ca, c, cb)
315+func ca (cb,cc) = fraction(cb, c, cc)
314316
315317
316-func cc (ca,cb,Q) = fraction(ca, c, cb, Q)
318+func cd (cb,cc,P) = fraction(cb, c, cc, P)
317319
318320
319-func cd (ce,cf,cg) = {
320- let ch = fraction((ce - cf), b, cf)
321- let ci = ((cg - X(ch)) > d)
322- if (!(ci))
323- then throw(("Big slpg: " + toString(ch)))
324- else $Tuple2(ci, min([ce, cf]))
321+func ce (cf,cg,ch) = {
322+ let ci = fraction((cf - cg), b, cg)
323+ let cj = ((ch - W(ci)) > d)
324+ if (!(cj))
325+ then throw(("Big slpg: " + toString(ci)))
326+ else $Tuple2(cj, min([cf, cg]))
325327 }
326328
327329
328-func cj (ck,cl,cm) = {
329- let ch = fraction(cl, b, ck)
330- let cn = (cm > ch)
331- if (if (cn)
330+func ck (cl,cm,cn) = {
331+ let ci = fraction(cm, b, cl)
332+ let co = (cn > ci)
333+ if (if (co)
332334 then true
333- else (cl > ck))
334- then throw(((((((toString(cl) + " ") + toString(ck)) + " ") + toString(ch)) + " ") + toString(cm)))
335- else cn
335+ else (cm > cl))
336+ then throw(((((((toString(cm) + " ") + toString(cl)) + " ") + toString(ci)) + " ") + toString(cn)))
337+ else co
336338 }
337339
338340
339-func co (cp,cq,cr,cs) = {
340- let ct = I(cr, cp)
341- let cu = I(cs, cq)
342- bZ(cu, ct)
341+func cp (cq,cr,cs,ct) = {
342+ let cu = H(cs, cq)
343+ let cv = H(ct, cr)
344+ ca(cv, cu)
343345 }
344346
345347
346-func cv (cr,cs,cw) = {
347- let cx = bA
348- let cy = bB
349- let cz = co(cx, cy, cr, cs)
350- let cb = I(cr, cx)
351- let ca = I(cs, cy)
352- let cA = I(cw, a)
353- let cB = bZ(cb, cA)
354- let cC = bZ(ca, cA)
355-[cz, cB, cC]
348+func cw (cs,ct,cx) = {
349+ let cy = bz
350+ let cz = bA
351+ let cA = cp(cy, cz, cs, ct)
352+ let cc = H(cs, cy)
353+ let cb = H(ct, cz)
354+ let cB = H(cx, a)
355+ let cC = ca(cc, cB)
356+ let cD = ca(cb, cB)
357+[cA, cC, cD]
356358 }
357359
358360
359-func cD (cr,cs,cw) = {
360- let cE = cv(cr, cs, cw)
361-[M(cE[0], a), M(cE[1], a), M(cE[2], a)]
361+func cE (cs,ct,cx) = {
362+ let cF = cw(cs, ct, cx)
363+[L(cF[0], a), L(cF[1], a), L(cF[2], a)]
362364 }
363365
364366
365-func cF (cG,ar) = {
366- let cH = if ((ar == 0))
367+func cG (cH,aq) = {
368+ let cI = if ((aq == 0))
367369 then 0
368- else fraction(cG, ar, a)
369- $Tuple2((cG - cH), cH)
370+ else fraction(cH, aq, a)
371+ $Tuple2((cH - cI), cI)
370372 }
371373
372374
373-func cI (cJ) = {
374- let cK = cJ[0]
375- let cL = cJ[1]
376- let aV = (cK + cL)
377- if ((aV == e))
375+func cJ (cK) = {
376+ let cL = cK[0]
377+ let cM = cK[1]
378+ let aU = (cL + cM)
379+ if ((aU == e))
378380 then e
379381 else {
380- let aR = parseIntValue(bg)
381- let cM = (aR * 2)
382- let cE = fraction(cK, cL, f)
383- let cN = fraction(cE, i, f)
384- let cO = fraction(toBigInt(cM), aV, f)
385- let cP = toBigInt((cM - 1))
386- func cQ (cR) = {
387- let cS = fraction(cR, cR, f)
388- let cT = fraction(cS, cR, f)
389- let cU = fraction(cT, f, cN)
390- fraction((cO + fraction(cU, g, f)), cR, (fraction(cP, cR, f) + fraction(h, cU, f)))
382+ let aQ = parseIntValue(bf)
383+ let cN = (aQ * 2)
384+ let cF = fraction(cL, cM, f)
385+ let cO = fraction(cF, i, f)
386+ let cP = fraction(toBigInt(cN), aU, f)
387+ let cQ = toBigInt((cN - 1))
388+ func cR (cS) = {
389+ let cT = fraction(cS, cS, f)
390+ let cU = fraction(cT, cS, f)
391+ let cV = fraction(cU, f, cO)
392+ fraction((cP + fraction(cV, g, f)), cS, (fraction(cQ, cS, f) + fraction(h, cV, f)))
391393 }
392394
393- func cV (cW,cX) = if (cW._2)
394- then cW
395+ func cW (cX,cY) = if (cX._2)
396+ then cX
395397 else {
396- let cR = cW._1
397- let cY = cQ(cR)
398- let cZ = (cY - value(cR))
399- let da = if ((e > cZ))
400- then -(cZ)
401- else cZ
402- if ((f >= da))
403- then $Tuple2(cY, true)
404- else $Tuple2(cY, false)
398+ let cS = cX._1
399+ let cZ = cR(cS)
400+ let da = (cZ - value(cS))
401+ let db = if ((e > da))
402+ then -(da)
403+ else da
404+ if ((f >= db))
405+ then $Tuple2(cZ, true)
406+ else $Tuple2(cZ, false)
405407 }
406408
407- let db = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
408- let dc = {
409- let dd = db
410- let de = size(dd)
411- let df = $Tuple2(aV, false)
412- func dg (dh,di) = if ((di >= de))
413- then dh
414- else cV(dh, dd[di])
409+ let dc = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
410+ let dd = {
411+ let de = dc
412+ let df = size(de)
413+ let dg = $Tuple2(aU, false)
414+ func dh (di,dj) = if ((dj >= df))
415+ then di
416+ else cW(di, de[dj])
415417
416- func dj (dh,di) = if ((di >= de))
417- then dh
418+ func dk (di,dj) = if ((dj >= df))
419+ then di
418420 else throw("List size exceeds 17")
419421
420- dj(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(df, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
422+ dk(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dg, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
421423 }
422- let cR = dc._1
423- let dk = dc._2
424- if (dk)
425- then cR
426- else throw(("D calculation error, D = " + toString(cR)))
424+ let cS = dd._1
425+ let dl = dd._2
426+ if (dl)
427+ then cS
428+ else throw(("D calculation error, D = " + toString(cS)))
427429 }
428430 }
429431
430432
431-func dl (dm,dn,do,dp) = {
432- let dq = bx
433- let dr = toBase58String(value(by))
434- let ds = toBase58String(value(bz))
435- let dt = bA
436- let du = bB
437- let dv = toString(bw)
438- let dw = valueOrErrorMessage(assetInfo(dq), "Wrong LP id").quantity
439- if ((toBase58String(dq) != dn))
433+func dm (dn,do,dp,dq) = {
434+ let dr = bw
435+ let ds = toBase58String(value(bx))
436+ let dt = toBase58String(value(by))
437+ let du = bz
438+ let dv = bA
439+ let dw = toString(bv)
440+ let dx = valueOrErrorMessage(assetInfo(dr), "Wrong LP id").quantity
441+ if ((toBase58String(dr) != do))
440442 then throw("Wrong pmt asset")
441443 else {
442- let dx = bX(dr)
443- let dy = I(dx, dt)
444- let dz = bX(ds)
445- let dA = I(dz, du)
446- let dB = bZ(dA, dy)
447- let dC = M(dB, a)
448- let dD = I(do, a)
449- let dE = I(dw, a)
450- let dF = fraction(dy, dD, dE)
451- let dG = fraction(dA, dD, dE)
452- let dH = P(dF, dt, FLOOR)
453- let dI = P(dG, du, FLOOR)
454- let dJ = if ((dm == ""))
444+ let dy = bY(ds)
445+ let dz = H(dy, du)
446+ let dA = bY(dt)
447+ let dB = H(dA, dv)
448+ let dC = ca(dB, dz)
449+ let dD = L(dC, a)
450+ let dE = H(dp, a)
451+ let dF = H(dx, a)
452+ let dG = fraction(dz, dE, dF)
453+ let dH = fraction(dB, dE, dF)
454+ let dI = O(dG, du, FLOOR)
455+ let dJ = O(dH, dv, FLOOR)
456+ let dK = if ((dn == ""))
455457 then nil
456- else [ScriptTransfer(dp, dH, if ((dr == "WAVES"))
458+ else [ScriptTransfer(dq, dI, if ((ds == "WAVES"))
457459 then unit
458- else fromBase58String(dr)), ScriptTransfer(dp, dI, if ((ds == "WAVES"))
460+ else fromBase58String(ds)), ScriptTransfer(dq, dJ, if ((dt == "WAVES"))
459461 then unit
460- else fromBase58String(ds)), StringEntry(aj(toString(dp), dm), bT(dH, dI, do, dC, height, lastBlock.timestamp)), IntegerEntry(ac(), dC), IntegerEntry(ad(height, lastBlock.timestamp), dC)]
461- $Tuple10(dH, dI, dr, ds, dx, dz, dw, dB, dv, dJ)
462+ else fromBase58String(dt)), StringEntry(ai(toString(dq), dn), bU(dI, dJ, dp, dD, height, lastBlock.timestamp)), IntegerEntry(ab(), dD), IntegerEntry(ac(height, lastBlock.timestamp), dD)]
463+ $Tuple10(dI, dJ, ds, dt, dy, dA, dx, dC, dw, dK)
462464 }
463465 }
464466
465467
466-func dK (dm,cg,dL,dM,dN,dO,dp,dP,dQ,dR,dS,dT,dU) = {
467- let dq = bx
468- let dV = toBase58String(value(by))
469- let dW = toBase58String(value(bz))
470- let dX = bA
468+func dL (dn,ch,dM,dN,dO,dP,dq,dQ,dR,dS,dT,dU,dV) = {
469+ let dr = bw
470+ let dW = toBase58String(value(bx))
471+ let dX = toBase58String(value(by))
471472 let dY = bB
472- let dv = toString(bw)
473- let dZ = valueOrErrorMessage(assetInfo(dq), "Wr lp as").quantity
474- let dx = if (dP)
475- then bX(dV)
476- else if (if (dR)
477- then (dU == dV)
473+ let dZ = bC
474+ let ea = bz
475+ let eb = bA
476+ let dw = toString(bv)
477+ let ec = valueOrErrorMessage(assetInfo(dr), "Wr lp as").quantity
478+ let dy = if (dQ)
479+ then bY(dW)
480+ else if (if (dS)
481+ then (dV == dW)
478482 else false)
479- then (bX(dV) - dT)
480- else if (dR)
481- then bX(dV)
482- else (bX(dV) - dL)
483- let dz = if (dP)
484- then bX(dW)
485- else if (if (dR)
486- then (dU == dW)
483+ then (bY(dW) - dU)
484+ else if (dS)
485+ then bY(dW)
486+ else (bY(dW) - dM)
487+ let dA = if (dQ)
488+ then bY(dX)
489+ else if (if (dS)
490+ then (dV == dX)
487491 else false)
488- then (bX(dW) - dT)
489- else if (dR)
490- then bX(dW)
491- else (bX(dW) - dN)
492- let ea = I(dL, dX)
493- let eb = I(dN, dY)
494- let ec = bZ(eb, ea)
495- let dy = I(dx, dX)
496- let dA = I(dz, dY)
497- let cl = cI([dy, dA])
498- let ed = if ((dZ == 0))
492+ then (bY(dX) - dU)
493+ else if (dS)
494+ then bY(dX)
495+ else (bY(dX) - dO)
496+ let ed = H(dM, ea)
497+ let ee = H(dO, eb)
498+ let ef = ca(ee, ed)
499+ let dz = H(dy, ea)
500+ let dB = H(dA, eb)
501+ let cm = cJ([dz, dB])
502+ let eg = if ((ec == 0))
499503 then {
500- let ck = cI([(dy + ea), (dA + eb)])
501- let ee = if ((ck > cl))
504+ let cl = cJ([(dz + ed), (dB + ee)])
505+ let eh = if ((cl > cm))
502506 then true
503507 else throw("D1 should be greater than D0")
504- if ((ee == ee))
508+ if ((eh == eh))
505509 then {
506- let dB = d
507- let ef = d
508- let cA = ck
509- $Tuple5(M(cA, a), M(ea, dX), M(eb, dY), bZ((dA + eb), (dy + ea)), ef)
510+ let dC = d
511+ let ei = d
512+ let cB = cl
513+ $Tuple5(L(cB, a), L(ed, ea), L(ee, eb), ca((dB + ee), (dz + ed)), ei)
510514 }
511515 else throw("Strict value is not equal to itself.")
512516 }
513517 else {
514- let dB = bZ(dA, dy)
515- let eg = fraction(X((dB - ec)), c, dB)
516- let ef = I(cg, a)
517- if (if (if (dS)
518- then (dB != d)
518+ let dC = ca(dB, dz)
519+ let ej = fraction(W((dC - ef)), c, dC)
520+ let ei = H(ch, a)
521+ if (if (if (dT)
522+ then (dC != d)
519523 else false)
520- then (eg > ef)
524+ then (ej > ei)
521525 else false)
522- then throw(((("Price slippage " + toString(eg)) + " > ") + toString(ef)))
526+ then throw(((("Price slippage " + toString(ej)) + " > ") + toString(ei)))
523527 else {
524- let eh = I(dZ, a)
525- let ei = fraction(ea, cc(dA, dy, CEILING), c, CEILING)
526- let ej = fraction(eb, c, cc(dA, dy, FLOOR), CEILING)
527- let ek = if ((ei > eb))
528- then $Tuple2(ej, eb)
529- else $Tuple2(ea, ei)
530- let el = ek._1
531- let em = ek._2
532- let ck = cI([(dy + el), (dA + em)])
533- let ee = if ((ck > cl))
528+ let ek = H(ec, a)
529+ let el = fraction(ed, cd(dB, dz, CEILING), c, CEILING)
530+ let em = fraction(ee, c, cd(dB, dz, FLOOR), CEILING)
531+ let en = if ((el > ee))
532+ then $Tuple2(em, ee)
533+ else $Tuple2(ed, el)
534+ let eo = en._1
535+ let ep = en._2
536+ let cl = cJ([(dz + eo), (dB + ep)])
537+ let eh = if ((cl > cm))
534538 then true
535539 else throw("D1 should be greater than D0")
536- if ((ee == ee))
540+ if ((eh == eh))
537541 then {
538- let cA = fraction(eh, (ck - cl), cl)
539- $Tuple5(P(cA, a, FLOOR), P(el, dX, CEILING), P(em, dY, CEILING), dB, ef)
542+ let cB = fraction(ek, (cl - cm), cm)
543+ $Tuple5(O(cB, a, FLOOR), O(eo, ea, CEILING), O(ep, eb, CEILING), dC, ei)
540544 }
541545 else throw("Strict value is not equal to itself.")
542546 }
543547 }
544- let en = ed._1
545- let eo = ed._2
546- let ep = ed._3
547- let dC = M(ed._4, a)
548- let eq = M(ed._5, a)
549- if ((0 >= en))
548+ let eq = eg._1
549+ let er = eg._2
550+ let es = eg._3
551+ let dD = L(eg._4, a)
552+ let et = L(eg._5, a)
553+ if ((0 >= eq))
550554 then throw("LP <= 0")
551555 else {
552- let er = if (!(dQ))
556+ let eu = if (!(dR))
553557 then 0
554- else en
555- let es = (dL - eo)
556- let et = (dN - ep)
557- let eu = if (if (dR)
558- then (dU == dV)
558+ else eq
559+ let ev = (dM - er)
560+ let ew = (dO - es)
561+ let ex = if (if (dS)
562+ then (dV == dW)
559563 else false)
560- then $Tuple2(dT, 0)
561- else if (if (dR)
562- then (dU == dW)
564+ then $Tuple2(dU, 0)
565+ else if (if (dS)
566+ then (dV == dX)
563567 else false)
564- then $Tuple2(0, dT)
565- else $Tuple2(eo, ep)
566- let ev = eu._1
567- let ew = eu._2
568- let ex = [IntegerEntry(ac(), dC), IntegerEntry(ad(height, lastBlock.timestamp), dC), StringEntry(ag(dp, dm), bI(ev, ew, er, dC, cg, eq, height, lastBlock.timestamp, es, et))]
569- $Tuple13(en, er, dC, dx, dz, dZ, dq, dv, ex, es, et, dM, dO)
568+ then $Tuple2(0, dU)
569+ else $Tuple2(er, es)
570+ let ey = ex._1
571+ let ez = ex._2
572+ let eA = [IntegerEntry(ab(), dD), IntegerEntry(ac(height, lastBlock.timestamp), dD), StringEntry(af(dq, dn), bJ(ey, ez, eu, dD, ch, et, height, lastBlock.timestamp, ev, ew))]
573+ $Tuple13(eq, eu, dD, dy, dA, ec, dr, dw, eA, ev, ew, dN, dP)
570574 }
571575 }
572576
573577
574-func ey (cJ,cX,ez) = {
575- let eA = g
576- let eB = cJ[if ((cX == 0))
578+func eB (cK,cY,eC) = {
579+ let eD = g
580+ let eE = cK[if ((cY == 0))
577581 then 1
578582 else 0]
579- let eC = parseBigIntValue(m)
580- let aR = (parseBigIntValue(bg) * eC)
581- let aV = eB
582- let cM = (aR * eA)
583- let eD = (((((ez * ez) / (eB * eA)) * ez) * eC) / (cM * eA))
584- let eE = ((aV + ((ez * eC) / cM)) - ez)
585- func cV (cW,eF) = {
586- let eG = cW
587- let eH = eG._1
588- let dk = eG._2
589- if ((dk != unit))
590- then cW
583+ let eF = parseBigIntValue(l)
584+ let aQ = (parseBigIntValue(bf) * eF)
585+ let aU = eE
586+ let cN = (aQ * eD)
587+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cN * eD))
588+ let eH = ((aU + ((eC * eF) / cN)) - eC)
589+ func cW (cX,eI) = {
590+ let eJ = cX
591+ let eK = eJ._1
592+ let dl = eJ._2
593+ if ((dl != unit))
594+ then cX
591595 else {
592- let eI = (((eH * eH) + eD) / ((g * eH) + eE))
593- let eJ = Y((eI - value(eH)))
594- if ((f >= eJ))
595- then $Tuple2(eI, eF)
596- else $Tuple2(eI, unit)
596+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
597+ let eM = X((eL - value(eK)))
598+ if ((f >= eM))
599+ then $Tuple2(eL, eI)
600+ else $Tuple2(eL, unit)
597601 }
598602 }
599603
600- let db = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
601- let eK = {
602- let dd = db
603- let de = size(dd)
604- let df = $Tuple2(ez, unit)
605- func dg (dh,di) = if ((di >= de))
606- then dh
607- else cV(dh, dd[di])
604+ let dc = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
605+ let eN = {
606+ let de = dc
607+ let df = size(de)
608+ let dg = $Tuple2(eC, unit)
609+ func dh (di,dj) = if ((dj >= df))
610+ then di
611+ else cW(di, de[dj])
608612
609- func dj (dh,di) = if ((di >= de))
610- then dh
613+ func dk (di,dj) = if ((dj >= df))
614+ then di
611615 else throw("List size exceeds 15")
612616
613- dj(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(df, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
617+ dk(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dg, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
614618 }
615- let eH = eK._1
616- let dk = eK._2
617- if ((dk != unit))
618- then eH
619- else throw(("Y calculation error, Y = " + toString(eH)))
619+ let eK = eN._1
620+ let dl = eN._2
621+ if ((dl != unit))
622+ then eK
623+ else throw(("Y calculation error, Y = " + toString(eK)))
620624 }
621625
622626
623-func eL (eM,eN,eO) = {
624- let eP = fraction(cI([L(eM, toBigInt(bA)), L(eN, toBigInt(bB))]), c, eO)
625- if ((eO == e))
627+func eO (eP,eQ,eR) = {
628+ let eS = fraction(cJ([K(eP, toBigInt(bz)), K(eQ, toBigInt(bA))]), c, eR)
629+ if ((eR == e))
626630 then e
627- else eP
631+ else eS
628632 }
629633
630634
631-func eQ (eR,eS,eT) = {
632- let eU = (toBigInt(bX(bq(by))) - eR)
633- let eV = (toBigInt(bX(bq(bz))) - eS)
634- let eW = (toBigInt(value(assetInfo(bx)).quantity) - eT)
635- let eX = eL(eU, eV, eW)
636- eX
635+func eT (eU,eV,eW) = {
636+ let eX = (toBigInt(bY(bp(bx))) - eU)
637+ let eY = (toBigInt(bY(bp(by))) - eV)
638+ let eZ = (toBigInt(value(assetInfo(bw)).quantity) - eW)
639+ let fa = eO(eX, eY, eZ)
640+ fa
637641 }
638642
639643
640-func eY (eZ,fa,eT) = {
641- let eU = (bX(bq(by)) + eZ)
642- let eV = (bX(bq(bz)) + fa)
643- let eW = (value(assetInfo(bx)).quantity + eT)
644- let eP = eL(toBigInt(eU), toBigInt(eV), toBigInt(eW))
645- let fb = [IntegerEntry(at, height), StringEntry(as, toString(eP))]
646- $Tuple2(fb, eP)
644+func fb (fc,fd,eW) = {
645+ let eX = (bY(bp(bx)) + fc)
646+ let eY = (bY(bp(by)) + fd)
647+ let eZ = (value(assetInfo(bw)).quantity + eW)
648+ let eS = eO(toBigInt(eX), toBigInt(eY), toBigInt(eZ))
649+ let fe = [IntegerEntry(as, height), StringEntry(ar, toString(eS))]
650+ $Tuple2(fe, eS)
647651 }
648652
649653
650-func fc (fd,eP) = if ((eP >= fd))
654+func ff (fg,eS) = if ((eS >= fg))
651655 then true
652- else ba("updated DLp lower than current DLp")
656+ else aZ("updated DLp lower than current DLp")
653657
654658
655-func fe (ff) = {
656- let eU = bX(bq(by))
657- let eV = bX(bq(bz))
658- let fg = ff.amount
659- let fh = fraction(ff.amount, ff.price, a, FLOOR)
660- let fi = if ((ff.orderType == Buy))
661- then $Tuple2(fg, -(fh))
662- else $Tuple2(-(fg), fh)
663- let eZ = fi._1
664- let fa = fi._2
665- if (if (if (bh())
659+func fh (fi) = {
660+ let eX = bY(bp(bx))
661+ let eY = bY(bp(by))
662+ let fj = fi.amount
663+ let fk = fraction(fi.amount, fi.price, a, FLOOR)
664+ let fl = if ((fi.orderType == Buy))
665+ then $Tuple2(fj, -(fk))
666+ else $Tuple2(-(fj), fk)
667+ let fc = fl._1
668+ let fd = fl._2
669+ if (if (if (bg())
666670 then true
667- else (bw == s))
671+ else (bv == r))
668672 then true
669- else (bw == t))
673+ else (bv == s))
670674 then throw("Admin blocked")
671- else if (if ((ff.assetPair.amountAsset != by))
675+ else if (if ((fi.assetPair.amountAsset != bx))
672676 then true
673- else (ff.assetPair.priceAsset != bz))
677+ else (fi.assetPair.priceAsset != by))
674678 then throw("Wr assets")
675679 else {
676- let fj = parseBigIntValue(valueOrElse(getString(this, as), "0"))
677- let fk = eY(eZ, fa, 0)
678- let fl = fk._1
679- let fm = fk._2
680- let fn = (fm >= fj)
681- let fo = makeString(["dLp=", toString(fj), " dLpNew=", toString(fm), " amountAssetBalance=", toString(eU), " priceAssetBalance=", toString(eV), " amountAssetBalanceDelta=", toString(eZ), " priceAssetBalanceDelta=", toString(fa), " height=", toString(height)], "")
682- $Tuple2(fn, fo)
680+ let fm = parseBigIntValue(valueOrElse(getString(this, ar), "0"))
681+ let fn = fb(fc, fd, 0)
682+ let fo = fn._1
683+ let fp = fn._2
684+ let fq = (fp >= fm)
685+ let fr = makeString(["dLp=", toString(fm), " dLpNew=", toString(fp), " amountAssetBalance=", toString(eX), " priceAssetBalance=", toString(eY), " amountAssetBalanceDelta=", toString(fc), " priceAssetBalanceDelta=", toString(fd), " height=", toString(height)], "")
686+ $Tuple2(fq, fr)
683687 }
684688 }
685689
686690
687-func fp (cX) = if ((size(cX.payments) != 1))
691+func fs (cY) = if ((size(cY.payments) != 1))
688692 then throw("1 pmnt exp")
689693 else {
690- let fq = value(cX.payments[0])
691- let dn = value(fq.assetId)
692- let dT = fq.amount
693- let ed = dl(toBase58String(cX.transactionId), toBase58String(dn), dT, cX.caller)
694- let dH = ed._1
695- let dI = ed._2
696- let dv = parseIntValue(ed._9)
697- let dJ = ed._10
698- if (if (bh())
694+ let ft = value(cY.payments[0])
695+ let do = value(ft.assetId)
696+ let dU = ft.amount
697+ let eg = dm(toBase58String(cY.transactionId), toBase58String(do), dU, cY.caller)
698+ let dI = eg._1
699+ let dJ = eg._2
700+ let dw = parseIntValue(eg._9)
701+ let dK = eg._10
702+ if (if (bg())
699703 then true
700- else (dv == t))
701- then throw(("Admin blocked: " + toString(dv)))
702- else $Tuple5(dH, dI, dT, dn, dJ)
704+ else (dw == s))
705+ then throw(("Admin blocked: " + toString(dw)))
706+ else $Tuple5(dI, dJ, dU, do, dK)
703707 }
704708
705709
706-func fr (fs,ai,ft,fu,cg,dQ,dR,dS,dT,dU) = {
707- let ed = dK(ai, cg, value(ft).amount, value(ft).assetId, value(fu).amount, value(fu).assetId, fs, (ai == ""), dQ, dR, dS, dT, dU)
708- let dv = parseIntValue(ed._8)
709- if (if (if (bh())
710+func fu (fv,ah,fw,fx,ch,dR,dS,dT,dU,dV) = {
711+ let eg = dL(ah, ch, value(fw).amount, value(fw).assetId, value(fx).amount, value(fx).assetId, fv, (ah == ""), dR, dS, dT, dU, dV)
712+ let dw = parseIntValue(eg._8)
713+ if (if (if (bg())
710714 then true
711- else (dv == r))
715+ else (dw == q))
712716 then true
713- else (dv == t))
714- then throw(("Blocked:" + toString(dv)))
715- else ed
717+ else (dw == s))
718+ then throw(("Blocked:" + toString(dw)))
719+ else eg
716720 }
717721
718722
719-func fv (fw,dn,dp,ai,fx) = {
720- let dr = toBase58String(value(by))
721- let ds = toBase58String(value(bz))
722- let dq = bx
723- let dX = bA
724- let dY = bB
725- let eW = toBigInt(valueOrErrorMessage(assetInfo(dq), "invalid lp asset").quantity)
726- let fy = if ((eW > e))
723+func fy (fz,do,dq,ah,fA) = {
724+ let ds = toBase58String(value(bx))
725+ let dt = toBase58String(value(by))
726+ let dr = bw
727+ let ea = bz
728+ let eb = bA
729+ let eZ = toBigInt(valueOrErrorMessage(assetInfo(dr), "invalid lp asset").quantity)
730+ let fB = if ((eZ > e))
727731 then true
728732 else throw("initial deposit requires all coins")
729- if ((fy == fy))
733+ if ((fB == fB))
730734 then {
731- let dx = bX(dr)
732- let dz = bX(ds)
733- let fz = if ((ai == ""))
734- then $Tuple2(dx, dz)
735- else if ((dn == dr))
736- then if ((fw > dx))
735+ let dy = bY(ds)
736+ let dA = bY(dt)
737+ let fC = if ((ah == ""))
738+ then $Tuple2(dy, dA)
739+ else if ((do == ds))
740+ then if ((fz > dy))
737741 then throw("invalid payment amount")
738- else $Tuple2((dx - fw), dz)
739- else if ((dn == ds))
740- then if ((fw > dz))
742+ else $Tuple2((dy - fz), dA)
743+ else if ((do == dt))
744+ then if ((fz > dA))
741745 then throw("invalid payment amount")
742- else $Tuple2(dx, (dz - fw))
746+ else $Tuple2(dy, (dA - fz))
743747 else throw("wrong pmtAssetId")
744- let fA = fz._1
745- let fB = fz._2
746- let fC = if ((dn == dr))
747- then $Tuple2(fw, 0)
748- else if ((dn == ds))
749- then $Tuple2(0, fw)
750- else throw("invalid payment")
751748 let fD = fC._1
752749 let fE = fC._2
753- let fF = if (fx)
754- then $Tuple3(cF(fD, bd)._1, cF(fE, bd)._1, cF(fw, bd)._2)
755- else $Tuple3(fD, fE, 0)
750+ let fF = if ((do == ds))
751+ then $Tuple2(fz, 0)
752+ else if ((do == dt))
753+ then $Tuple2(0, fz)
754+ else throw("invalid payment")
756755 let fG = fF._1
757756 let fH = fF._2
758- let cH = fF._3
759- let fI = (fA + fG)
760- let fJ = (fB + fH)
761- let cl = cI([I(fA, bA), I(fB, bB)])
762- let ck = cI([I(fI, bA), I(fJ, bB)])
763- let ee = if ((ck > cl))
757+ let fI = if (fA)
758+ then $Tuple3(cG(fG, bc)._1, cG(fH, bc)._1, cG(fz, bc)._2)
759+ else $Tuple3(fG, fH, 0)
760+ let fJ = fI._1
761+ let fK = fI._2
762+ let cI = fI._3
763+ let fL = (fD + fJ)
764+ let fM = (fE + fK)
765+ let cm = cJ([H(fD, bz), H(fE, bA)])
766+ let cl = cJ([H(fL, bz), H(fM, bA)])
767+ let eh = if ((cl > cm))
764768 then true
765769 else throw()
766- if ((ee == ee))
770+ if ((eh == eh))
767771 then {
768- let fK = fraction(eW, (ck - cl), cl, FLOOR)
769- let dC = M(bZ(I(fJ, dY), I(fI, dX)), a)
770- let ex = [IntegerEntry(ac(), dC), IntegerEntry(ad(height, lastBlock.timestamp), dC), StringEntry(ag(dp, ai), bI(fD, fE, toInt(fK), dC, 0, 0, height, lastBlock.timestamp, 0, 0))]
771- let fL = fraction(fB, a, fA)
772- let fM = fraction(fw, a, (fL + a))
773- let fN = (fw - fM)
774- let fO = fraction(eW, toBigInt(fN), toBigInt(fB))
775- let fP = toInt(fraction((fK - fO), b, fO))
776- $Tuple4(toInt(fK), ex, cH, fP)
772+ let fN = fraction(eZ, (cl - cm), cm, FLOOR)
773+ let dD = L(ca(H(fM, eb), H(fL, ea)), a)
774+ let eA = [IntegerEntry(ab(), dD), IntegerEntry(ac(height, lastBlock.timestamp), dD), StringEntry(af(dq, ah), bJ(fG, fH, toInt(fN), dD, 0, 0, height, lastBlock.timestamp, 0, 0))]
775+ let fO = fraction(fE, a, fD)
776+ let fP = fraction(fz, a, (fO + a))
777+ let fQ = (fz - fP)
778+ let fR = fraction(eZ, toBigInt(fQ), toBigInt(fE))
779+ let fS = toInt(fraction((fN - fR), b, fR))
780+ $Tuple4(toInt(fN), eA, cI, fS)
777781 }
778782 else throw("Strict value is not equal to itself.")
779783 }
781785 }
782786
783787
784-func fQ (fR,fS,fT,fs,fU,fV) = {
785- let dq = toBase58String(value(bx))
786- let dr = toBase58String(value(by))
787- let ds = toBase58String(value(bz))
788- let fW = bA
789- let fX = bB
790- let fY = bw
791- let dp = if ((fs == bH))
792- then fU
793- else fs
794- let fq = value(fT[0])
795- let dn = value(fq.assetId)
796- let dT = fq.amount
797- let eX = eQ(e, e, e)
798- if ((eX == eX))
788+func fT (fU,fV,fW,fv,fX,fY) = {
789+ let dr = toBase58String(value(bw))
790+ let ds = toBase58String(value(bx))
791+ let dt = toBase58String(value(by))
792+ let fZ = bz
793+ let ga = bA
794+ let gb = bv
795+ let dq = if ((fv == bI))
796+ then fX
797+ else fv
798+ let ft = value(fW[0])
799+ let do = value(ft.assetId)
800+ let dU = ft.amount
801+ let fa = eT(e, e, e)
802+ if ((fa == fa))
799803 then {
800- let dm = toBase58String(fV)
801- if ((dq != toBase58String(dn)))
804+ let dn = toBase58String(fY)
805+ if ((dr != toBase58String(do)))
802806 then throw("Wrong LP")
803807 else {
804- let dx = bX(dr)
805- let dz = bX(ds)
806- let fZ = {
807- let be = invoke(this, "getOneTknV2READONLY", [fR, dT], nil)
808- if ($isInstanceOf(be, "(Int, Int)"))
809- then be
810- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
808+ let dy = bY(ds)
809+ let dA = bY(dt)
810+ let gc = {
811+ let bd = invoke(this, "getOneTknV2READONLY", [fU, dU], nil)
812+ if ($isInstanceOf(bd, "(Int, Int)"))
813+ then bd
814+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
811815 }
812- if ((fZ == fZ))
816+ if ((gc == gc))
813817 then {
814- let cH = fZ._2
815- let ga = fZ._1
816- let gb = if (if ((fS > 0))
817- then (fS > ga)
818+ let cI = gc._2
819+ let gd = gc._1
820+ let ge = if (if ((fV > 0))
821+ then (fV > gd)
818822 else false)
819- then ba(makeString(["amount to receive is less than ", toString(fS)], ""))
820- else ga
821- let gc = if ((fR == dr))
822- then $Tuple4(gb, 0, ((dx - gb) - cH), dz)
823- else if ((fR == ds))
824- then $Tuple4(0, gb, dx, ((dz - gb) - cH))
823+ then aZ(makeString(["amount to receive is less than ", toString(fV)], ""))
824+ else gd
825+ let gf = if ((fU == ds))
826+ then $Tuple4(ge, 0, ((dy - ge) - cI), dA)
827+ else if ((fU == dt))
828+ then $Tuple4(0, ge, dy, ((dA - ge) - cI))
825829 else throw("invalid out asset id")
826- let gd = gc._1
827- let ge = gc._2
828- let fI = gc._3
829- let fJ = gc._4
830- let gf = bZ(I(fJ, fX), I(fI, fW))
831- let gg = M(gf, a)
832- let gh = if ((fR == "WAVES"))
830+ let gg = gf._1
831+ let gh = gf._2
832+ let fL = gf._3
833+ let fM = gf._4
834+ let gi = ca(H(fM, ga), H(fL, fZ))
835+ let gj = L(gi, a)
836+ let gk = if ((fU == "WAVES"))
833837 then unit
834- else fromBase58String(fR)
835- let gi = if ((cH > 0))
836- then [ScriptTransfer(bj, cH, gh)]
838+ else fromBase58String(fU)
839+ let gl = if ((cI > 0))
840+ then [ScriptTransfer(bi, cI, gk)]
837841 else nil
838- let dJ = ([ScriptTransfer(dp, gb, gh), StringEntry(aj(toString(dp), dm), bT(gd, ge, dT, gg, height, lastBlock.timestamp)), IntegerEntry(ac(), gg), IntegerEntry(ad(height, lastBlock.timestamp), gg)] ++ gi)
839- if ((dJ == dJ))
842+ let dK = ([ScriptTransfer(dq, ge, gk), StringEntry(ai(toString(dq), dn), bU(gg, gh, dU, gj, height, lastBlock.timestamp)), IntegerEntry(ab(), gj), IntegerEntry(ac(height, lastBlock.timestamp), gj)] ++ gl)
843+ if ((dK == dK))
840844 then {
841- let gj = invoke(aU, "burn", [dT], [AttachedPayment(dn, dT)])
842- if ((gj == gj))
845+ let gm = invoke(aT, "burn", [dU], [AttachedPayment(do, dU)])
846+ if ((gm == gm))
843847 then {
844- let gk = {
845- let gl = if ((this == bj))
848+ let gn = {
849+ let go = if ((this == bi))
846850 then 0
847- else cH
848- let gm = if ((bo(fR) == by))
851+ else cI
852+ let gp = if ((bn(fU) == bx))
849853 then true
850854 else false
851- if (gm)
852- then $Tuple2(-((ga + gl)), 0)
853- else $Tuple2(0, -((ga + gl)))
855+ if (gp)
856+ then $Tuple2(-((gd + go)), 0)
857+ else $Tuple2(0, -((gd + go)))
854858 }
855- let eZ = gk._1
856- let fa = gk._2
857- let gn = eY(eZ, fa, 0)
858- let go = gn._1
859- let eP = gn._2
860- let gp = fc(eX, eP)
861- if ((gp == gp))
862- then $Tuple2((dJ ++ go), gb)
859+ let fc = gn._1
860+ let fd = gn._2
861+ let gq = fb(fc, fd, 0)
862+ let gr = gq._1
863+ let eS = gq._2
864+ let gs = ff(fa, eS)
865+ if ((gs == gs))
866+ then $Tuple2((dK ++ gr), ge)
863867 else throw("Strict value is not equal to itself.")
864868 }
865869 else throw("Strict value is not equal to itself.")
873877 }
874878
875879
876-func gq () = {
877- let gr = aS()
878- let aQ = getString(gr, aa())
879- if ($isInstanceOf(aQ, "String"))
880+func gt () = {
881+ let gu = aR()
882+ let aP = getString(gu, Z())
883+ if ($isInstanceOf(aP, "String"))
880884 then {
881- let aV = aQ
882- fromBase58String(aV)
885+ let aU = aP
886+ fromBase58String(aU)
883887 }
884- else if ($isInstanceOf(aQ, "Unit"))
888+ else if ($isInstanceOf(aP, "Unit"))
885889 then unit
886890 else throw("Match error")
887891 }
888892
889893
890-let gs = throw("Permission denied")
894+let gv = throw("Permission denied")
891895
892-func gt (cX) = {
893- let aQ = gq()
894- if ($isInstanceOf(aQ, "ByteVector"))
896+func gw (cY) = {
897+ let aP = gt()
898+ if ($isInstanceOf(aP, "ByteVector"))
895899 then {
896- let gu = aQ
897- (cX.callerPublicKey == gu)
900+ let gx = aP
901+ (cY.callerPublicKey == gx)
898902 }
899- else if ($isInstanceOf(aQ, "Unit"))
900- then (cX.caller == this)
903+ else if ($isInstanceOf(aP, "Unit"))
904+ then (cY.caller == this)
901905 else throw("Match error")
902906 }
903907
904908
905-func gv (cX) = {
906- let aQ = gq()
907- if ($isInstanceOf(aQ, "ByteVector"))
909+func gy (cY) = {
910+ let aP = gt()
911+ if ($isInstanceOf(aP, "ByteVector"))
908912 then {
909- let gu = aQ
910- if ((cX.callerPublicKey == gu))
913+ let gx = aP
914+ if ((cY.callerPublicKey == gx))
911915 then true
912- else gs
916+ else gv
913917 }
914- else if ($isInstanceOf(aQ, "Unit"))
915- then if ((cX.caller == this))
918+ else if ($isInstanceOf(aP, "Unit"))
919+ then if ((cY.caller == this))
916920 then true
917- else gs
921+ else gv
918922 else throw("Match error")
919923 }
920924
921925
922-func gw (gx,ez,gy) = {
923- let bs = bk()
924- let dr = bs[x]
925- let ds = bs[y]
926- let eA = g
927- let eC = parseBigIntValue(m)
928- let aR = (parseBigIntValue(bg) * eC)
929- let cJ = if ((gx == false))
930- then [(toBigInt(bX(dr)) + gy), toBigInt(bX(ds))]
931- else [(toBigInt(bX(ds)) + gy), toBigInt(bX(dr))]
932- let eB = cJ[0]
933- let aV = eB
934- let cM = (aR * eA)
935- let eD = (((((ez * ez) / (eB * eA)) * ez) * eC) / (cM * eA))
936- let eE = ((aV + ((ez * eC) / cM)) - ez)
937- func cV (cW,eF) = {
938- let gz = cW
939- let eH = gz._1
940- let dk = gz._2
941- if ((dk != unit))
942- then cW
926+func gz (gA,eC,gB) = {
927+ let br = bj()
928+ let ds = br[w]
929+ let dt = br[x]
930+ let eD = g
931+ let eF = parseBigIntValue(l)
932+ let aQ = (parseBigIntValue(bf) * eF)
933+ let cK = if ((gA == false))
934+ then [(toBigInt(bY(ds)) + gB), toBigInt(bY(dt))]
935+ else [(toBigInt(bY(dt)) + gB), toBigInt(bY(ds))]
936+ let eE = cK[0]
937+ let aU = eE
938+ let cN = (aQ * eD)
939+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cN * eD))
940+ let eH = ((aU + ((eC * eF) / cN)) - eC)
941+ func cW (cX,eI) = {
942+ let gC = cX
943+ let eK = gC._1
944+ let dl = gC._2
945+ if ((dl != unit))
946+ then cX
943947 else {
944- let eI = (((eH * eH) + eD) / ((g * eH) + eE))
945- let eJ = Y((eI - value(eH)))
946- if ((f >= eJ))
947- then $Tuple2(eI, eF)
948- else $Tuple2(eI, unit)
948+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
949+ let eM = X((eL - value(eK)))
950+ if ((f >= eM))
951+ then $Tuple2(eL, eI)
952+ else $Tuple2(eL, unit)
949953 }
950954 }
951955
952- let db = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
953- let gA = {
954- let dd = db
955- let de = size(dd)
956- let df = $Tuple2(ez, unit)
957- func dg (dh,di) = if ((di >= de))
958- then dh
959- else cV(dh, dd[di])
956+ let dc = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
957+ let gD = {
958+ let de = dc
959+ let df = size(de)
960+ let dg = $Tuple2(eC, unit)
961+ func dh (di,dj) = if ((dj >= df))
962+ then di
963+ else cW(di, de[dj])
960964
961- func dj (dh,di) = if ((di >= de))
962- then dh
965+ func dk (di,dj) = if ((dj >= df))
966+ then di
963967 else throw("List size exceeds 15")
964968
965- dj(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(df, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
969+ dk(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dg, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
966970 }
967- let eH = gA._1
968- let dk = gA._2
969- if ((dk != unit))
970- then eH
971- else throw(("Y calculation error, Y = " + toString(eH)))
971+ let eK = gD._1
972+ let dl = gD._2
973+ if ((dl != unit))
974+ then eK
975+ else throw(("Y calculation error, Y = " + toString(eK)))
972976 }
973977
974978
975-func gB () = valueOrElse(getBoolean(aU, aH(toString(this))), false)
979+func gE () = valueOrElse(getBoolean(aT, aG(toString(this))), false)
976980
977981
978-@Callable(cX)
979-func calculateAmountOutForSwapREADONLY (gC,gx,gD) = {
980- let gE = if ((gx == false))
982+@Callable(cY)
983+func calculateAmountOutForSwapREADONLY (gF,gA,gG) = {
984+ let gH = if ((gA == false))
981985 then {
982- let gF = aW(this, al())
983- let gy = (toBigInt(bX(aW(this, ak()))) + toBigInt(gC))
984- $Tuple2(gF, gy)
986+ let gI = aV(this, ak())
987+ let gB = (toBigInt(bY(aV(this, aj()))) + toBigInt(gF))
988+ $Tuple2(gI, gB)
985989 }
986990 else {
987- let gF = aW(this, ak())
988- let gy = (toBigInt(bX(aW(this, al()))) + toBigInt(gC))
989- $Tuple2(gF, gy)
991+ let gI = aV(this, aj())
992+ let gB = (toBigInt(bY(aV(this, ak()))) + toBigInt(gF))
993+ $Tuple2(gI, gB)
990994 }
991- let gF = gE._1
992- let gy = gE._2
993- let bs = bk()
994- let dr = bs[x]
995- let ds = bs[y]
996- let cJ = [toBigInt(bX(dr)), toBigInt(bX(ds))]
997- let ez = cI(cJ)
998- let eH = gw(gx, ez, toBigInt(gC))
999- let gG = ((toBigInt(bX(gF)) - eH) - toBigInt(1))
1000- let gH = max([0, toInt(gG)])
1001- let gI = if ((gx == false))
1002- then [((toBigInt(bX(dr)) + toBigInt(gC)) + toBigInt(gD)), (toBigInt(bX(ds)) - gG)]
1003- else [(toBigInt(bX(dr)) - gG), ((toBigInt(bX(ds)) + toBigInt(gC)) + toBigInt(gD))]
1004- let gJ = cI(gI)
1005- let ee = if ((gJ >= ez))
995+ let gI = gH._1
996+ let gB = gH._2
997+ let br = bj()
998+ let ds = br[w]
999+ let dt = br[x]
1000+ let cK = [toBigInt(bY(ds)), toBigInt(bY(dt))]
1001+ let eC = cJ(cK)
1002+ let eK = gz(gA, eC, toBigInt(gF))
1003+ let gJ = ((toBigInt(bY(gI)) - eK) - toBigInt(1))
1004+ let gK = max([0, toInt(gJ)])
1005+ let gL = if ((gA == false))
1006+ then [((toBigInt(bY(ds)) + toBigInt(gF)) + toBigInt(gG)), (toBigInt(bY(dt)) - gJ)]
1007+ else [(toBigInt(bY(ds)) - gJ), ((toBigInt(bY(dt)) + toBigInt(gF)) + toBigInt(gG))]
1008+ let gM = cJ(gL)
1009+ let eh = if ((gM >= eC))
10061010 then true
1007- else throw(makeString(["new D is fewer error", toString(ez), toString(gJ)], "__"))
1008- if ((ee == ee))
1009- then $Tuple2(nil, gH)
1011+ else throw(makeString(["new D is fewer error", toString(eC), toString(gM)], "__"))
1012+ if ((eh == eh))
1013+ then $Tuple2(nil, gK)
10101014 else throw("Strict value is not equal to itself.")
10111015 }
10121016
10131017
10141018
1015-@Callable(cX)
1016-func calculateAmountOutForSwapAndSendTokens (gC,gx,gK,gL,gD) = {
1017- let gM = {
1018- let be = invoke(aU, "getSwapContractREADONLY", nil, nil)
1019- if ($isInstanceOf(be, "String"))
1020- then be
1021- else throw(($getType(be) + " couldn't be cast to String"))
1019+@Callable(cY)
1020+func calculateAmountOutForSwapAndSendTokens (gF,gA,gN,gO,gG) = {
1021+ let gP = {
1022+ let bd = invoke(aT, "getSwapContractREADONLY", nil, nil)
1023+ if ($isInstanceOf(bd, "String"))
1024+ then bd
1025+ else throw(($getType(bd) + " couldn't be cast to String"))
10221026 }
1023- let gN = [if ((value(cX.payments[0]).amount >= gC))
1027+ let gQ = [if ((value(cY.payments[0]).amount >= gF))
10241028 then true
1025- else ba("Wrong amount"), if ((cX.caller == addressFromStringValue(gM)))
1029+ else aZ("Wrong amount"), if ((cY.caller == addressFromStringValue(gP)))
10261030 then true
1027- else ba("Permission denied")]
1028- if ((gN == gN))
1031+ else aZ("Permission denied")]
1032+ if ((gQ == gQ))
10291033 then {
1030- let fq = value(cX.payments[0])
1031- let gO = bq(fq.assetId)
1032- let gP = if ((gx == false))
1034+ let ft = value(cY.payments[0])
1035+ let gR = bp(ft.assetId)
1036+ let gS = if ((gA == false))
10331037 then {
1034- let gF = aW(this, al())
1035- let gy = (bX(gO) - value(cX.payments[0]).amount)
1036- $Tuple2(gF, gy)
1038+ let gI = aV(this, ak())
1039+ let gB = (bY(gR) - value(cY.payments[0]).amount)
1040+ $Tuple2(gI, gB)
10371041 }
10381042 else {
1039- let gF = aW(this, ak())
1040- let gy = (bX(gO) - value(cX.payments[0]).amount)
1041- $Tuple2(gF, gy)
1043+ let gI = aV(this, aj())
1044+ let gB = (bY(gR) - value(cY.payments[0]).amount)
1045+ $Tuple2(gI, gB)
10421046 }
1043- let gF = gP._1
1044- let gy = gP._2
1045- let bs = bk()
1046- let dr = bs[x]
1047- let ds = bs[y]
1048- let cJ = if ((gx == false))
1049- then [(toBigInt(bX(dr)) - toBigInt(value(cX.payments[0]).amount)), toBigInt(bX(ds))]
1050- else [toBigInt(bX(dr)), (toBigInt(bX(ds)) - toBigInt(value(cX.payments[0]).amount))]
1051- let ez = cI(cJ)
1052- let eH = gw(gx, ez, toBigInt(0))
1053- let gG = ((toBigInt(bX(gF)) - eH) - toBigInt(1))
1054- let gH = max([0, toInt(gG)])
1055- let gQ = if ((gH >= gK))
1047+ let gI = gS._1
1048+ let gB = gS._2
1049+ let br = bj()
1050+ let ds = br[w]
1051+ let dt = br[x]
1052+ let cK = if ((gA == false))
1053+ then [(toBigInt(bY(ds)) - toBigInt(value(cY.payments[0]).amount)), toBigInt(bY(dt))]
1054+ else [toBigInt(bY(ds)), (toBigInt(bY(dt)) - toBigInt(value(cY.payments[0]).amount))]
1055+ let eC = cJ(cK)
1056+ let eK = gz(gA, eC, toBigInt(0))
1057+ let gJ = ((toBigInt(bY(gI)) - eK) - toBigInt(1))
1058+ let gK = max([0, toInt(gJ)])
1059+ let gT = if ((gK >= gN))
10561060 then true
10571061 else throw("Exchange result is fewer coins than expected")
1058- if ((gQ == gQ))
1062+ if ((gT == gT))
10591063 then {
1060- let gI = if ((gx == false))
1061- then [(toBigInt(bX(dr)) + toBigInt(gD)), (toBigInt(bX(ds)) - gG)]
1062- else [(toBigInt(bX(dr)) - gG), (toBigInt(bX(ds)) + toBigInt(gD))]
1063- let gJ = cI(gI)
1064- let ee = if ((gJ >= ez))
1064+ let gL = if ((gA == false))
1065+ then [(toBigInt(bY(ds)) + toBigInt(gG)), (toBigInt(bY(dt)) - gJ)]
1066+ else [(toBigInt(bY(ds)) - gJ), (toBigInt(bY(dt)) + toBigInt(gG))]
1067+ let gM = cJ(gL)
1068+ let eh = if ((gM >= eC))
10651069 then true
10661070 else throw("new D is fewer error")
1067- if ((ee == ee))
1068- then $Tuple2([ScriptTransfer(addressFromStringValue(gL), gH, bo(gF))], gH)
1071+ if ((eh == eh))
1072+ then $Tuple2([ScriptTransfer(addressFromStringValue(gO), gK, bn(gI))], gK)
10691073 else throw("Strict value is not equal to itself.")
10701074 }
10711075 else throw("Strict value is not equal to itself.")
10751079
10761080
10771081
1078-@Callable(cX)
1079-func constructor (Z) = {
1080- let eD = gv(cX)
1081- if ((eD == eD))
1082- then [StringEntry(Z(), Z)]
1082+@Callable(cY)
1083+func constructor (Y) = {
1084+ let eG = gy(cY)
1085+ if ((eG == eG))
1086+ then [StringEntry(Y(), Y)]
10831087 else throw("Strict value is not equal to itself.")
10841088 }
10851089
10861090
10871091
1088-@Callable(cX)
1089-func put (gR,gS) = {
1090- let gT = bC()
1091- let gU = valueOrErrorMessage(addressFromString(gT[D]), "Wr st addr")
1092- let gV = valueOrErrorMessage(addressFromString(gT[F]), "Wr sl addr")
1093- if ((0 > gR))
1092+@Callable(cY)
1093+func put (gU,gV) = {
1094+ let gW = bD()
1095+ let gX = valueOrErrorMessage(addressFromString(gW[C]), "Wr st addr")
1096+ let gY = valueOrErrorMessage(addressFromString(gW[E]), "Wr sl addr")
1097+ if ((0 > gU))
10941098 then throw("Wrong slippage")
1095- else if ((size(cX.payments) != 2))
1099+ else if ((size(cY.payments) != 2))
10961100 then throw("2 pmnts expd")
10971101 else {
1098- let gW = toBigInt(value(cX.payments[0]).amount)
1099- let gX = toBigInt(value(cX.payments[1]).amount)
1100- let eU = (toBigInt(bX(bq(by))) - gW)
1101- if ((eU == eU))
1102+ let gZ = toBigInt(value(cY.payments[0]).amount)
1103+ let ha = toBigInt(value(cY.payments[1]).amount)
1104+ let eX = (toBigInt(bY(bp(bx))) - gZ)
1105+ if ((eX == eX))
11021106 then {
1103- let eV = (toBigInt(bX(bq(bz))) - gX)
1104- if ((eV == eV))
1107+ let eY = (toBigInt(bY(bp(by))) - ha)
1108+ if ((eY == eY))
11051109 then {
1106- let eW = toBigInt(value(assetInfo(bx)).quantity)
1107- if ((eW == eW))
1110+ let eZ = toBigInt(value(assetInfo(bw)).quantity)
1111+ if ((eZ == eZ))
11081112 then {
1109- let eX = eQ(gW, gX, toBigInt(0))
1110- if ((eX == eX))
1113+ let fa = eT(gZ, ha, toBigInt(0))
1114+ if ((fa == fa))
11111115 then {
1112- let gY = fr(toString(cX.caller), toBase58String(cX.transactionId), AttachedPayment(value(cX.payments[0]).assetId, value(cX.payments[0]).amount), cX.payments[1], gR, true, false, true, 0, "")
1113- let er = gY._2
1114- let gZ = gY._7
1115- let dJ = gY._9
1116- let es = gY._10
1117- let et = gY._11
1118- let dr = gY._12
1119- let ds = gY._13
1120- let ed = invoke(aU, "emit", [er], nil)
1121- if ((ed == ed))
1116+ let hb = fu(toString(cY.caller), toBase58String(cY.transactionId), AttachedPayment(value(cY.payments[0]).assetId, value(cY.payments[0]).amount), cY.payments[1], gU, true, false, true, 0, "")
1117+ let eu = hb._2
1118+ let hc = hb._7
1119+ let dK = hb._9
1120+ let ev = hb._10
1121+ let ew = hb._11
1122+ let ds = hb._12
1123+ let dt = hb._13
1124+ let eg = invoke(aT, "emit", [eu], nil)
1125+ if ((eg == eg))
11221126 then {
1123- let ha = {
1124- let aQ = ed
1125- if ($isInstanceOf(aQ, "Address"))
1127+ let hd = {
1128+ let aP = eg
1129+ if ($isInstanceOf(aP, "Address"))
11261130 then {
1127- let hb = aQ
1128- invoke(hb, "emit", [er], nil)
1131+ let he = aP
1132+ invoke(he, "emit", [eu], nil)
11291133 }
11301134 else unit
11311135 }
1132- if ((ha == ha))
1136+ if ((hd == hd))
11331137 then {
1134- let hc = if ((es > 0))
1135- then invoke(gV, "put", nil, [AttachedPayment(dr, es)])
1138+ let hf = if ((ev > 0))
1139+ then invoke(gY, "put", nil, [AttachedPayment(ds, ev)])
11361140 else nil
1137- if ((hc == hc))
1141+ if ((hf == hf))
11381142 then {
1139- let hd = if ((et > 0))
1140- then invoke(gV, "put", nil, [AttachedPayment(ds, et)])
1143+ let hg = if ((ew > 0))
1144+ then invoke(gY, "put", nil, [AttachedPayment(dt, ew)])
11411145 else nil
1142- if ((hd == hd))
1146+ if ((hg == hg))
11431147 then {
1144- let he = if (gS)
1148+ let hh = if (gV)
11451149 then {
1146- let hf = invoke(gU, "stake", nil, [AttachedPayment(gZ, er)])
1147- if ((hf == hf))
1150+ let hi = invoke(gX, "stake", nil, [AttachedPayment(hc, eu)])
1151+ if ((hi == hi))
11481152 then nil
11491153 else throw("Strict value is not equal to itself.")
11501154 }
1151- else [ScriptTransfer(cX.caller, er, gZ)]
1152- let hg = eY(0, 0, 0)
1153- let go = hg._1
1154- let eP = hg._2
1155- let hh = if ((eP >= eX))
1155+ else [ScriptTransfer(cY.caller, eu, hc)]
1156+ let hj = fb(0, 0, 0)
1157+ let gr = hj._1
1158+ let eS = hj._2
1159+ let hk = if ((eS >= fa))
11561160 then true
1157- else ba(makeString(["updated DLp lower than current DLp", toString(eU), toString(eV), toString(eW), toString(eX), toString(eP), toString(es), toString(et)], " "))
1158- if ((hh == hh))
1161+ else aZ(makeString(["updated DLp lower than current DLp", toString(eX), toString(eY), toString(eZ), toString(fa), toString(eS), toString(ev), toString(ew)], " "))
1162+ if ((hk == hk))
11591163 then {
1160- let hi = value(assetInfo(bx)).quantity
1161- if ((hi == hi))
1162- then ((dJ ++ he) ++ go)
1164+ let hl = value(assetInfo(bw)).quantity
1165+ if ((hl == hl))
1166+ then ((dK ++ hh) ++ gr)
11631167 else throw("Strict value is not equal to itself.")
11641168 }
11651169 else throw("Strict value is not equal to itself.")
11841188
11851189
11861190
1187-@Callable(cX)
1188-func putOneTknV2 (fS,gS) = {
1189- let hj = {
1190- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1191- if ($isInstanceOf(be, "Boolean"))
1192- then be
1193- else throw(($getType(be) + " couldn't be cast to Boolean"))
1191+@Callable(cY)
1192+func putOneTknV2 (fV,gV) = {
1193+ let hm = {
1194+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1195+ if ($isInstanceOf(bd, "Boolean"))
1196+ then bd
1197+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
11941198 }
1195- let hk = if (if (if (bh())
1199+ let hn = if (if (if (bg())
11961200 then true
1197- else (bw == r))
1201+ else (bv == q))
11981202 then true
1199- else (bw == t))
1203+ else (bv == s))
12001204 then true
1201- else hj
1202- let gN = [if (if (!(hk))
1205+ else hm
1206+ let gQ = [if (if (!(hn))
12031207 then true
1204- else gt(cX))
1208+ else gw(cY))
12051209 then true
1206- else ba("put operation is blocked by admin"), if ((size(cX.payments) == 1))
1210+ else aZ("put operation is blocked by admin"), if ((size(cY.payments) == 1))
12071211 then true
1208- else ba("exactly 1 payment are expected")]
1209- if ((gN == gN))
1212+ else aZ("exactly 1 payment are expected")]
1213+ if ((gQ == gQ))
12101214 then {
1211- let dr = toBase58String(value(by))
1212- let ds = toBase58String(value(bz))
1213- let dq = bx
1214- let fW = bA
1215- let fX = bB
1216- let dp = if ((cX.caller == this))
1217- then cX.originCaller
1218- else cX.caller
1219- let fq = value(cX.payments[0])
1220- let dn = toBase58String(value(fq.assetId))
1221- let dT = fq.amount
1222- let eX = if ((fq.assetId == by))
1223- then eQ(toBigInt(dT), toBigInt(0), toBigInt(0))
1224- else eQ(toBigInt(0), toBigInt(dT), toBigInt(0))
1225- if ((eX == eX))
1215+ let ds = toBase58String(value(bx))
1216+ let dt = toBase58String(value(by))
1217+ let dr = bw
1218+ let fZ = bz
1219+ let ga = bA
1220+ let dq = if ((cY.caller == this))
1221+ then cY.originCaller
1222+ else cY.caller
1223+ let ft = value(cY.payments[0])
1224+ let do = toBase58String(value(ft.assetId))
1225+ let dU = ft.amount
1226+ let fa = if ((ft.assetId == bx))
1227+ then eT(toBigInt(dU), toBigInt(0), toBigInt(0))
1228+ else eT(toBigInt(0), toBigInt(dU), toBigInt(0))
1229+ if ((fa == fa))
12261230 then {
1227- let hl = fv(dT, dn, toString(dp), toBase58String(cX.transactionId), true)
1228- if ((hl == hl))
1231+ let ho = fy(dU, do, toString(dq), toBase58String(cY.transactionId), true)
1232+ if ((ho == ho))
12291233 then {
1230- let cH = hl._3
1231- let dJ = hl._2
1232- let hm = hl._1
1233- let er = if (if ((fS > 0))
1234- then (fS > hm)
1234+ let cI = ho._3
1235+ let dK = ho._2
1236+ let hp = ho._1
1237+ let eu = if (if ((fV > 0))
1238+ then (fV > hp)
12351239 else false)
1236- then ba(makeString(["amount to receive is less than ", toString(fS)], ""))
1237- else hm
1238- let gY = invoke(aU, "emit", [er], nil)
1239- if ((gY == gY))
1240+ then aZ(makeString(["amount to receive is less than ", toString(fV)], ""))
1241+ else hp
1242+ let hb = invoke(aT, "emit", [eu], nil)
1243+ if ((hb == hb))
12401244 then {
1241- let ha = {
1242- let aQ = gY
1243- if ($isInstanceOf(aQ, "Address"))
1245+ let hd = {
1246+ let aP = hb
1247+ if ($isInstanceOf(aP, "Address"))
12441248 then {
1245- let hb = aQ
1246- invoke(hb, "emit", [er], nil)
1249+ let he = aP
1250+ invoke(he, "emit", [eu], nil)
12471251 }
12481252 else unit
12491253 }
1250- if ((ha == ha))
1254+ if ((hd == hd))
12511255 then {
1252- let he = if (gS)
1256+ let hh = if (gV)
12531257 then {
1254- let hf = invoke(bE, "stakeFor", [toString(cX.caller)], [AttachedPayment(dq, er)])
1255- if ((hf == hf))
1258+ let hi = invoke(bF, "stakeFor", [toString(cY.caller)], [AttachedPayment(dr, eu)])
1259+ if ((hi == hi))
12561260 then nil
12571261 else throw("Strict value is not equal to itself.")
12581262 }
1259- else [ScriptTransfer(cX.caller, er, dq)]
1260- let gi = if ((cH > 0))
1261- then [ScriptTransfer(bj, cH, fromBase58String(dn))]
1263+ else [ScriptTransfer(cY.caller, eu, dr)]
1264+ let gl = if ((cI > 0))
1265+ then [ScriptTransfer(bi, cI, fromBase58String(do))]
12621266 else nil
1263- let hn = if ((this == bj))
1267+ let hq = if ((this == bi))
12641268 then $Tuple2(0, 0)
12651269 else {
1266- let ho = if ((fq.assetId == by))
1270+ let hr = if ((ft.assetId == bx))
12671271 then true
12681272 else false
1269- if (ho)
1270- then $Tuple2(-(cH), 0)
1271- else $Tuple2(0, -(cH))
1273+ if (hr)
1274+ then $Tuple2(-(cI), 0)
1275+ else $Tuple2(0, -(cI))
12721276 }
1273- let eZ = hn._1
1274- let fa = hn._2
1275- let hp = eY(eZ, fa, 0)
1276- let go = hp._1
1277- let eP = hp._2
1278- let gp = fc(eX, eP)
1279- if ((gp == gp))
1280- then $Tuple2((((dJ ++ he) ++ gi) ++ go), er)
1277+ let fc = hq._1
1278+ let fd = hq._2
1279+ let hs = fb(fc, fd, 0)
1280+ let gr = hs._1
1281+ let eS = hs._2
1282+ let gs = ff(fa, eS)
1283+ if ((gs == gs))
1284+ then $Tuple2((((dK ++ hh) ++ gl) ++ gr), eu)
12811285 else throw("Strict value is not equal to itself.")
12821286 }
12831287 else throw("Strict value is not equal to itself.")
12931297
12941298
12951299
1296-@Callable(cX)
1297-func putForFree (hq) = if ((0 > hq))
1300+@Callable(cY)
1301+func putForFree (ht) = if ((0 > ht))
12981302 then throw("Wrong slpg")
1299- else if ((size(cX.payments) != 2))
1303+ else if ((size(cY.payments) != 2))
13001304 then throw("2 pmnts expd")
13011305 else {
1302- let hr = fr(toString(cX.caller), toBase58String(cX.transactionId), AttachedPayment(value(cX.payments[0]).assetId, value(cX.payments[0]).amount), cX.payments[1], hq, false, false, true, 0, "")
1303- let dJ = hr._9
1304- let gW = toBigInt(value(cX.payments[0]).amount)
1305- let gX = toBigInt(value(cX.payments[1]).amount)
1306- let eX = eQ(gW, gX, toBigInt(0))
1307- if ((eX == eX))
1306+ let hu = fu(toString(cY.caller), toBase58String(cY.transactionId), AttachedPayment(value(cY.payments[0]).assetId, value(cY.payments[0]).amount), cY.payments[1], ht, false, false, true, 0, "")
1307+ let dK = hu._9
1308+ let gZ = toBigInt(value(cY.payments[0]).amount)
1309+ let ha = toBigInt(value(cY.payments[1]).amount)
1310+ let fa = eT(gZ, ha, toBigInt(0))
1311+ if ((fa == fa))
13081312 then {
1309- let hs = eY(0, 0, 0)
1310- let go = hs._1
1311- let eP = hs._2
1312- let gp = fc(eX, eP)
1313- if ((gp == gp))
1314- then (dJ ++ go)
1313+ let hv = fb(0, 0, 0)
1314+ let gr = hv._1
1315+ let eS = hv._2
1316+ let gs = ff(fa, eS)
1317+ if ((gs == gs))
1318+ then (dK ++ gr)
13151319 else throw("Strict value is not equal to itself.")
13161320 }
13171321 else throw("Strict value is not equal to itself.")
13191323
13201324
13211325
1322-@Callable(cX)
1326+@Callable(cY)
13231327 func get () = {
1324- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1325- if ((eX == eX))
1328+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1329+ if ((fa == fa))
13261330 then {
1327- let ed = fp(cX)
1328- let ht = ed._1
1329- let dI = ed._2
1330- let dT = ed._3
1331- let dn = ed._4
1332- let dJ = ed._5
1333- let eE = invoke(aU, "burn", [dT], [AttachedPayment(dn, dT)])
1334- if ((eE == eE))
1331+ let eg = fs(cY)
1332+ let hw = eg._1
1333+ let dJ = eg._2
1334+ let dU = eg._3
1335+ let do = eg._4
1336+ let dK = eg._5
1337+ let eH = invoke(aT, "burn", [dU], [AttachedPayment(do, dU)])
1338+ if ((eH == eH))
13351339 then {
1336- let hu = eY(-(ht), -(dI), 0)
1337- let go = hu._1
1338- let eP = hu._2
1339- let gp = fc(eX, eP)
1340- if ((gp == gp))
1341- then (dJ ++ go)
1340+ let hx = fb(-(hw), -(dJ), 0)
1341+ let gr = hx._1
1342+ let eS = hx._2
1343+ let gs = ff(fa, eS)
1344+ if ((gs == gs))
1345+ then (dK ++ gr)
13421346 else throw("Strict value is not equal to itself.")
13431347 }
13441348 else throw("Strict value is not equal to itself.")
13481352
13491353
13501354
1351-@Callable(cX)
1352-func getOneTknV2 (fR,fS) = {
1353- let hj = {
1354- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1355- if ($isInstanceOf(be, "Boolean"))
1356- then be
1357- else throw(($getType(be) + " couldn't be cast to Boolean"))
1355+@Callable(cY)
1356+func getOneTknV2 (fU,fV) = {
1357+ let hm = {
1358+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1359+ if ($isInstanceOf(bd, "Boolean"))
1360+ then bd
1361+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
13581362 }
1359- let hv = if (if (bh())
1363+ let hy = if (if (bg())
13601364 then true
1361- else (bw == t))
1365+ else (bv == s))
13621366 then true
1363- else hj
1364- let gN = [if (if (!(hv))
1367+ else hm
1368+ let gQ = [if (if (!(hy))
13651369 then true
1366- else gt(cX))
1370+ else gw(cY))
13671371 then true
1368- else ba("get operation is blocked by admin"), if ((size(cX.payments) == 1))
1372+ else aZ("get operation is blocked by admin"), if ((size(cY.payments) == 1))
13691373 then true
1370- else ba("exactly 1 payment are expected")]
1371- if ((gN == gN))
1374+ else aZ("exactly 1 payment are expected")]
1375+ if ((gQ == gQ))
13721376 then {
1373- let hw = fQ(fR, fS, cX.payments, cX.caller, cX.originCaller, cX.transactionId)
1374- let dJ = hw._1
1375- let gb = hw._2
1376- $Tuple2(dJ, gb)
1377+ let hz = fT(fU, fV, cY.payments, cY.caller, cY.originCaller, cY.transactionId)
1378+ let dK = hz._1
1379+ let ge = hz._2
1380+ $Tuple2(dK, ge)
13771381 }
13781382 else throw("Strict value is not equal to itself.")
13791383 }
13801384
13811385
13821386
1383-@Callable(cX)
1387+@Callable(cY)
13841388 func refreshDLp () = {
1385- let hx = valueOrElse(getInteger(at), 0)
1386- let hy = if (((height - hx) >= aw))
1389+ let hA = valueOrElse(getInteger(as), 0)
1390+ let hB = if (((height - hA) >= av))
13871391 then unit
1388- else ba(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1389- if ((hy == hy))
1392+ else aZ(makeString([toString(av), " blocks have not passed since the previous call"], ""))
1393+ if ((hB == hB))
13901394 then {
1391- let fj = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), bc("invalid dLp"))
1392- let hz = eY(0, 0, 0)
1393- let hA = hz._1
1394- let eP = hz._2
1395- let fb = if ((fj != eP))
1396- then hA
1397- else ba("nothing to refresh")
1398- $Tuple2(fb, toString(eP))
1395+ let fm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ar), "0")), bb("invalid dLp"))
1396+ let hC = fb(0, 0, 0)
1397+ let hD = hC._1
1398+ let eS = hC._2
1399+ let fe = if ((fm != eS))
1400+ then hD
1401+ else aZ("nothing to refresh")
1402+ $Tuple2(fe, toString(eS))
13991403 }
14001404 else throw("Strict value is not equal to itself.")
14011405 }
14021406
14031407
14041408
1405-@Callable(cX)
1406-func getOneTknV2READONLY (fR,hB) = {
1407- let dr = toBase58String(value(by))
1408- let ds = toBase58String(value(bz))
1409- let dq = toBase58String(value(bx))
1410- let cJ = [toBigInt(bX(dr)), toBigInt(bX(ds))]
1411- let eO = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dq)), "invalid lp asset").quantity)
1412- let cl = cI(cJ)
1413- let ck = (cl - fraction(toBigInt(hB), cl, eO))
1414- let hC = if ((fR == dr))
1409+@Callable(cY)
1410+func getOneTknV2READONLY (fU,hE) = {
1411+ let ds = toBase58String(value(bx))
1412+ let dt = toBase58String(value(by))
1413+ let dr = toBase58String(value(bw))
1414+ let cK = [toBigInt(bY(ds)), toBigInt(bY(dt))]
1415+ let eR = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dr)), "invalid lp asset").quantity)
1416+ let cm = cJ(cK)
1417+ let cl = (cm - fraction(toBigInt(hE), cm, eR))
1418+ let hF = if ((fU == ds))
14151419 then 0
1416- else if ((fR == ds))
1420+ else if ((fU == dt))
14171421 then 1
14181422 else throw("invalid out asset id")
1419- let hD = ey(cJ, hC, ck)
1420- let gG = (cJ[hC] - hD)
1421- let gH = max([0, toInt((gG - f))])
1422- let hE = cF(gH, bf)
1423- let ga = hE._1
1424- let cH = hE._2
1425- $Tuple2(nil, $Tuple2(ga, cH))
1423+ let hG = eB(cK, hF, cl)
1424+ let gJ = (cK[hF] - hG)
1425+ let gK = max([0, toInt((gJ - f))])
1426+ let hH = cG(gK, be)
1427+ let gd = hH._1
1428+ let cI = hH._2
1429+ $Tuple2(nil, $Tuple2(gd, cI))
14261430 }
14271431
14281432
14291433
1430-@Callable(cX)
1431-func getOneTknV2WithBonusREADONLY (fR,hB) = {
1432- let dr = toBase58String(value(by))
1433- let ds = toBase58String(value(bz))
1434- let dq = toBase58String(value(bx))
1435- let dx = bX(dr)
1436- let dz = bX(ds)
1437- let hF = {
1438- let be = invoke(this, "getOneTknV2READONLY", [fR, hB], nil)
1439- if ($isInstanceOf(be, "(Int, Int)"))
1440- then be
1441- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
1434+@Callable(cY)
1435+func getOneTknV2WithBonusREADONLY (fU,hE) = {
1436+ let ds = toBase58String(value(bx))
1437+ let dt = toBase58String(value(by))
1438+ let dr = toBase58String(value(bw))
1439+ let dy = bY(ds)
1440+ let dA = bY(dt)
1441+ let hI = {
1442+ let bd = invoke(this, "getOneTknV2READONLY", [fU, hE], nil)
1443+ if ($isInstanceOf(bd, "(Int, Int)"))
1444+ then bd
1445+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
14421446 }
1443- let ga = hF._1
1444- let cH = hF._2
1445- let ed = dl("", dq, hB, this)
1446- let dH = ed._1
1447- let dI = ed._2
1448- let hG = (dH + dI)
1449- let fP = if ((hG == 0))
1450- then if ((ga == 0))
1447+ let gd = hI._1
1448+ let cI = hI._2
1449+ let eg = dm("", dr, hE, this)
1450+ let dI = eg._1
1451+ let dJ = eg._2
1452+ let hJ = (dI + dJ)
1453+ let fS = if ((hJ == 0))
1454+ then if ((gd == 0))
14511455 then 0
14521456 else throw("bonus calculation error")
1453- else fraction((ga - hG), a, hG)
1454- $Tuple2(nil, $Tuple3(ga, cH, fP))
1457+ else fraction((gd - hJ), a, hJ)
1458+ $Tuple2(nil, $Tuple3(gd, cI, fS))
14551459 }
14561460
14571461
14581462
1459-@Callable(cX)
1460-func getNoLess (hH,hI) = {
1461- let ed = fp(cX)
1462- let dH = ed._1
1463- let dI = ed._2
1464- let dT = ed._3
1465- let dn = ed._4
1466- let dJ = ed._5
1467- if ((hH > dH))
1468- then throw(((("Failed: " + toString(dH)) + " < ") + toString(hH)))
1469- else if ((hI > dI))
1470- then throw(((("Failed: " + toString(dI)) + " < ") + toString(hI)))
1463+@Callable(cY)
1464+func getNoLess (hK,hL) = {
1465+ let eg = fs(cY)
1466+ let dI = eg._1
1467+ let dJ = eg._2
1468+ let dU = eg._3
1469+ let do = eg._4
1470+ let dK = eg._5
1471+ if ((hK > dI))
1472+ then throw(((("Failed: " + toString(dI)) + " < ") + toString(hK)))
1473+ else if ((hL > dJ))
1474+ then throw(((("Failed: " + toString(dJ)) + " < ") + toString(hL)))
14711475 else {
1472- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1473- if ((eX == eX))
1476+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1477+ if ((fa == fa))
14741478 then {
1475- let hJ = invoke(aU, "burn", [dT], [AttachedPayment(dn, dT)])
1476- if ((hJ == hJ))
1479+ let hM = invoke(aT, "burn", [dU], [AttachedPayment(do, dU)])
1480+ if ((hM == hM))
14771481 then {
1478- let hK = eY(-(dH), -(dI), 0)
1479- let go = hK._1
1480- let eP = hK._2
1481- let gp = fc(eX, eP)
1482- if ((gp == gp))
1483- then (dJ ++ go)
1482+ let hN = fb(-(dI), -(dJ), 0)
1483+ let gr = hN._1
1484+ let eS = hN._2
1485+ let gs = ff(fa, eS)
1486+ if ((gs == gs))
1487+ then (dK ++ gr)
14841488 else throw("Strict value is not equal to itself.")
14851489 }
14861490 else throw("Strict value is not equal to itself.")
14911495
14921496
14931497
1494-@Callable(cX)
1495-func unstakeAndGet (cG) = {
1496- let hL = if ((size(cX.payments) != 0))
1498+@Callable(cY)
1499+func unstakeAndGet (cH) = {
1500+ let hO = if ((size(cY.payments) != 0))
14971501 then throw("No pmnts expd")
14981502 else true
1499- if ((hL == hL))
1503+ if ((hO == hO))
15001504 then {
1501- let hM = bC()
1502- let gZ = bx
1503- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1504- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1505- if ((eX == eX))
1505+ let hP = bD()
1506+ let hc = bw
1507+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1508+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1509+ if ((fa == fa))
15061510 then {
1507- let hO = invoke(hN, "unstake", [toBase58String(gZ), cG], nil)
1508- if ((hO == hO))
1511+ let hR = invoke(hQ, "unstake", [toBase58String(hc), cH], nil)
1512+ if ((hR == hR))
15091513 then {
1510- let ed = dl(toBase58String(cX.transactionId), toBase58String(gZ), cG, cX.caller)
1511- let dH = ed._1
1512- let dI = ed._2
1513- let dv = parseIntValue(ed._9)
1514- let dJ = ed._10
1515- let hP = if (if (bh())
1514+ let eg = dm(toBase58String(cY.transactionId), toBase58String(hc), cH, cY.caller)
1515+ let dI = eg._1
1516+ let dJ = eg._2
1517+ let dw = parseIntValue(eg._9)
1518+ let dK = eg._10
1519+ let hS = if (if (bg())
15161520 then true
1517- else (dv == t))
1518- then throw(("Blocked: " + toString(dv)))
1521+ else (dw == s))
1522+ then throw(("Blocked: " + toString(dw)))
15191523 else true
1520- if ((hP == hP))
1524+ if ((hS == hS))
15211525 then {
1522- let hQ = invoke(aU, "burn", [cG], [AttachedPayment(gZ, cG)])
1523- if ((hQ == hQ))
1526+ let hT = invoke(aT, "burn", [cH], [AttachedPayment(hc, cH)])
1527+ if ((hT == hT))
15241528 then {
1525- let hR = eY(-(dH), -(dI), 0)
1526- let go = hR._1
1527- let eP = hR._2
1528- let gp = fc(eX, eP)
1529- if ((gp == gp))
1530- then (dJ ++ go)
1529+ let hU = fb(-(dI), -(dJ), 0)
1530+ let gr = hU._1
1531+ let eS = hU._2
1532+ let gs = ff(fa, eS)
1533+ if ((gs == gs))
1534+ then (dK ++ gr)
15311535 else throw("Strict value is not equal to itself.")
15321536 }
15331537 else throw("Strict value is not equal to itself.")
15431547
15441548
15451549
1546-@Callable(cX)
1547-func unstakeAndGetNoLess (hS,hT,hI) = {
1548- let hv = if (bh())
1550+@Callable(cY)
1551+func unstakeAndGetNoLess (hV,hW,hL) = {
1552+ let hy = if (bg())
15491553 then true
1550- else (bw == t)
1551- let gN = [if (!(hv))
1554+ else (bv == s)
1555+ let gQ = [if (!(hy))
15521556 then true
1553- else throw("get operation is blocked by admin"), if ((size(cX.payments) == 0))
1557+ else throw("get operation is blocked by admin"), if ((size(cY.payments) == 0))
15541558 then true
15551559 else throw("no payments are expected")]
1556- if ((gN == gN))
1560+ if ((gQ == gQ))
15571561 then {
1558- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1559- if ((eX == eX))
1562+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1563+ if ((fa == fa))
15601564 then {
1561- let hO = invoke(bE, "unstake", [toBase58String(bx), hS], nil)
1562- if ((hO == hO))
1565+ let hR = invoke(bF, "unstake", [toBase58String(bw), hV], nil)
1566+ if ((hR == hR))
15631567 then {
1564- let hU = dl(toBase58String(cX.transactionId), toBase58String(bx), hS, cX.caller)
1565- let dH = hU._1
1566- let dI = hU._2
1567- let dJ = hU._10
1568- let hV = [if ((dH >= hT))
1568+ let hX = dm(toBase58String(cY.transactionId), toBase58String(bw), hV, cY.caller)
1569+ let dI = hX._1
1570+ let dJ = hX._2
1571+ let dK = hX._10
1572+ let hY = [if ((dI >= hW))
15691573 then true
1570- else throw(makeString(["amount asset amount to receive is less than ", toString(hT)], "")), if ((dI >= hI))
1574+ else throw(makeString(["amount asset amount to receive is less than ", toString(hW)], "")), if ((dJ >= hL))
15711575 then true
1572- else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1573- if ((hV == hV))
1576+ else throw(makeString(["price asset amount to receive is less than ", toString(hL)], ""))]
1577+ if ((hY == hY))
15741578 then {
1575- let hJ = invoke(aU, "burn", [hS], [AttachedPayment(bx, hS)])
1576- if ((hJ == hJ))
1579+ let hM = invoke(aT, "burn", [hV], [AttachedPayment(bw, hV)])
1580+ if ((hM == hM))
15771581 then {
1578- let hW = eY(-(dH), -(dI), 0)
1579- let go = hW._1
1580- let eP = hW._2
1581- let gp = fc(eX, eP)
1582- if ((gp == gp))
1583- then (dJ ++ go)
1582+ let hZ = fb(-(dI), -(dJ), 0)
1583+ let gr = hZ._1
1584+ let eS = hZ._2
1585+ let gs = ff(fa, eS)
1586+ if ((gs == gs))
1587+ then (dK ++ gr)
15841588 else throw("Strict value is not equal to itself.")
15851589 }
15861590 else throw("Strict value is not equal to itself.")
15961600
15971601
15981602
1599-@Callable(cX)
1600-func unstakeAndGetOneTknV2 (hS,fR,fS) = {
1601- let hj = {
1602- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1603- if ($isInstanceOf(be, "Boolean"))
1604- then be
1605- else throw(($getType(be) + " couldn't be cast to Boolean"))
1603+@Callable(cY)
1604+func unstakeAndGetOneTknV2 (hV,fU,fV) = {
1605+ let hm = {
1606+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1607+ if ($isInstanceOf(bd, "Boolean"))
1608+ then bd
1609+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
16061610 }
1607- let hv = if (if (bh())
1611+ let hy = if (if (bg())
16081612 then true
1609- else (bw == t))
1613+ else (bv == s))
16101614 then true
1611- else hj
1612- let gN = [if (if (!(hv))
1615+ else hm
1616+ let gQ = [if (if (!(hy))
16131617 then true
1614- else gt(cX))
1618+ else gw(cY))
16151619 then true
1616- else ba("get operation is blocked by admin"), if ((size(cX.payments) == 0))
1620+ else aZ("get operation is blocked by admin"), if ((size(cY.payments) == 0))
16171621 then true
1618- else ba("no payments are expected")]
1619- if ((gN == gN))
1622+ else aZ("no payments are expected")]
1623+ if ((gQ == gQ))
16201624 then {
1621- let hM = bC()
1622- let gZ = bx
1623- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1624- let dp = cX.caller
1625- let hX = this
1626- let hO = invoke(hN, "unstakeINTERNAL", [gZ, hS, dp.bytes, hX.bytes], nil)
1627- if ((hO == hO))
1625+ let hP = bD()
1626+ let hc = bw
1627+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1628+ let dq = cY.caller
1629+ let ia = this
1630+ let hR = invoke(hQ, "unstakeINTERNAL", [hc, hV, dq.bytes, ia.bytes], nil)
1631+ if ((hR == hR))
16281632 then {
1629- let hY = fQ(fR, fS, [AttachedPayment(gZ, hS)], cX.caller, cX.originCaller, cX.transactionId)
1630- let dJ = hY._1
1631- let gb = hY._2
1632- $Tuple2(dJ, gb)
1633+ let ib = fT(fU, fV, [AttachedPayment(hc, hV)], cY.caller, cY.originCaller, cY.transactionId)
1634+ let dK = ib._1
1635+ let ge = ib._2
1636+ $Tuple2(dK, ge)
16331637 }
16341638 else throw("Strict value is not equal to itself.")
16351639 }
16381642
16391643
16401644
1641-@Callable(cX)
1642-func putOneTknV2WithBonusREADONLY (hZ,ia) = {
1643- let ib = fv(hZ, ia, "", "", true)
1644- let fK = ib._1
1645- let dJ = ib._2
1646- let cH = ib._3
1647- let fP = ib._4
1648- $Tuple2(nil, $Tuple3(fK, cH, fP))
1645+@Callable(cY)
1646+func putOneTknV2WithBonusREADONLY (ic,id) = {
1647+ let ie = fy(ic, id, "", "", true)
1648+ let fN = ie._1
1649+ let dK = ie._2
1650+ let cI = ie._3
1651+ let fS = ie._4
1652+ $Tuple2(nil, $Tuple3(fN, cI, fS))
16491653 }
16501654
16511655
16521656
1653-@Callable(cX)
1654-func putOneTknV2WithoutTakeFeeREADONLY (hZ,ia) = {
1655- let ic = fv(hZ, ia, "", "", false)
1656- let fK = ic._1
1657- let dJ = ic._2
1658- let cH = ic._3
1659- let fP = ic._4
1660- $Tuple2(nil, $Tuple3(fK, cH, fP))
1657+@Callable(cY)
1658+func putOneTknV2WithoutTakeFeeREADONLY (ic,id) = {
1659+ let if = fy(ic, id, "", "", false)
1660+ let fN = if._1
1661+ let dK = if._2
1662+ let cI = if._3
1663+ let fS = if._4
1664+ $Tuple2(nil, $Tuple3(fN, cI, fS))
16611665 }
16621666
16631667
16641668
1665-@Callable(cX)
1666-func activate (id,ie) = if ((toString(cX.caller) != toString(aU)))
1669+@Callable(cY)
1670+func activate (ig,ih) = if ((toString(cY.caller) != toString(aT)))
16671671 then throw("denied")
1668- else $Tuple2([StringEntry(ak(), id), StringEntry(al(), ie), StringEntry(am(), toString(l))], "success")
1672+ else $Tuple2([StringEntry(aj(), ig), StringEntry(ak(), ih)], "success")
16691673
16701674
16711675
1672-@Callable(cX)
1673-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
1676+@Callable(cY)
1677+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bj())
16741678
16751679
16761680
1677-@Callable(cX)
1678-func getAccBalanceWrapperREADONLY (bY) = $Tuple2(nil, bX(bY))
1681+@Callable(cY)
1682+func getAccBalanceWrapperREADONLY (bZ) = $Tuple2(nil, bY(bZ))
16791683
16801684
16811685
1682-@Callable(cX)
1683-func calcPricesWrapperREADONLY (cr,cs,cw) = {
1684- let if = cv(cr, cs, cw)
1685- $Tuple2(nil, [toString(if[0]), toString(if[1]), toString(if[2])])
1686+@Callable(cY)
1687+func calcPricesWrapperREADONLY (cs,ct,cx) = {
1688+ let ii = cw(cs, ct, cx)
1689+ $Tuple2(nil, [toString(ii[0]), toString(ii[1]), toString(ii[2])])
16861690 }
16871691
16881692
16891693
1690-@Callable(cX)
1691-func fromX18WrapperREADONLY (N,ig) = $Tuple2(nil, M(parseBigIntValue(N), ig))
1694+@Callable(cY)
1695+func fromX18WrapperREADONLY (M,ij) = $Tuple2(nil, L(parseBigIntValue(M), ij))
16921696
16931697
16941698
1695-@Callable(cX)
1696-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1699+@Callable(cY)
1700+func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
16971701
16981702
16991703
1700-@Callable(cX)
1701-func calcPriceBigIntWrapperREADONLY (ca,cb) = $Tuple2(nil, toString(bZ(parseBigIntValue(ca), parseBigIntValue(cb))))
1704+@Callable(cY)
1705+func calcPriceBigIntWrapperREADONLY (cb,cc) = $Tuple2(nil, toString(ca(parseBigIntValue(cb), parseBigIntValue(cc))))
17021706
17031707
17041708
1705-@Callable(cX)
1706-func estimatePutOperationWrapperREADONLY (dm,cg,dL,dM,dN,dO,ih,dP,dQ) = $Tuple2(nil, dK(dm, cg, dL, dM, dN, dO, ih, dP, dQ, true, false, 0, ""))
1709+@Callable(cY)
1710+func estimatePutOperationWrapperREADONLY (dn,ch,dM,dN,dO,dP,ik,dQ,dR) = $Tuple2(nil, dL(dn, ch, dM, dN, dO, dP, ik, dQ, dR, true, false, 0, ""))
17071711
17081712
17091713
1710-@Callable(cX)
1711-func estimateGetOperationWrapperREADONLY (dm,ii,do,ih) = {
1712- let ed = dl(dm, ii, do, addressFromStringValue(ih))
1713- $Tuple2(nil, $Tuple10(ed._1, ed._2, ed._3, ed._4, ed._5, ed._6, ed._7, toString(ed._8), ed._9, ed._10))
1714+@Callable(cY)
1715+func estimateGetOperationWrapperREADONLY (dn,il,dp,ik) = {
1716+ let eg = dm(dn, il, dp, addressFromStringValue(ik))
1717+ $Tuple2(nil, $Tuple10(eg._1, eg._2, eg._3, eg._4, eg._5, eg._6, eg._7, toString(eg._8), eg._9, eg._10))
17141718 }
17151719
17161720
17171721
1718-@Callable(cX)
1722+@Callable(cY)
17191723 func changeAmp () = {
1720- let ij = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1721- let ik = {
1722- let aQ = ij
1723- if ($isInstanceOf(aQ, "List[Any]"))
1724+ let im = invoke(aT, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1725+ let in = {
1726+ let aP = im
1727+ if ($isInstanceOf(aP, "List[Any]"))
17241728 then {
1725- let il = aQ
1729+ let io = aP
17261730 $Tuple3({
1727- let be = il[0]
1728- if ($isInstanceOf(be, "Int"))
1729- then be
1730- else throw(($getType(be) + " couldn't be cast to Int"))
1731+ let bd = io[0]
1732+ if ($isInstanceOf(bd, "Int"))
1733+ then bd
1734+ else throw(($getType(bd) + " couldn't be cast to Int"))
17311735 }, {
1732- let be = il[1]
1733- if ($isInstanceOf(be, "Int"))
1734- then be
1735- else throw(($getType(be) + " couldn't be cast to Int"))
1736+ let bd = io[1]
1737+ if ($isInstanceOf(bd, "Int"))
1738+ then bd
1739+ else throw(($getType(bd) + " couldn't be cast to Int"))
17361740 }, {
1737- let be = il[2]
1738- if ($isInstanceOf(be, "Int"))
1739- then be
1740- else throw(($getType(be) + " couldn't be cast to Int"))
1741+ let bd = io[2]
1742+ if ($isInstanceOf(bd, "Int"))
1743+ then bd
1744+ else throw(($getType(bd) + " couldn't be cast to Int"))
17411745 })
17421746 }
1743- else ba("invalid entry type")
1747+ else aZ("invalid entry type")
17441748 }
1745- let im = ik._1
1746- let in = ik._2
1747- let io = ik._3
1748- let ip = parseIntValue(getStringValue(am()))
1749- let iq = (ip + in)
1750- let ir = if ((0 > in))
1751- then if ((io > iq))
1752- then io
1753- else iq
1754- else if ((iq > io))
1755- then io
1756- else iq
1757- let is = valueOrElse(getInteger(ap()), 0)
1758- let it = (is + im)
1759- let gN = [if ((height > it))
1749+ let ip = in._1
1750+ let iq = in._2
1751+ let ir = in._3
1752+ let is = parseIntValue(getStringValue(al()))
1753+ let it = (is + iq)
1754+ let iu = if ((0 > iq))
1755+ then if ((ir > it))
1756+ then ir
1757+ else it
1758+ else if ((it > ir))
1759+ then ir
1760+ else it
1761+ let iv = valueOrElse(getInteger(ao()), 0)
1762+ let iw = (iv + ip)
1763+ let gQ = [if ((height > iw))
17601764 then true
1761- else ba("try again in few blocks"), if ((ip != ir))
1765+ else aZ("try again in few blocks"), if ((is != iu))
17621766 then true
1763- else ba("already reached target")]
1764- if ((gN == gN))
1765- then [IntegerEntry(ap(), height), StringEntry(am(), toString(ir)), StringEntry(an(height), toString(ir))]
1767+ else aZ("already reached target")]
1768+ if ((gQ == gQ))
1769+ then [IntegerEntry(ao(), height), StringEntry(al(), toString(iu)), StringEntry(am(height), toString(iu))]
17661770 else throw("Strict value is not equal to itself.")
17671771 }
17681772
17691773
1770-@Verifier(iu)
1771-func iv () = {
1772- let iw = {
1773- let aQ = gq()
1774- if ($isInstanceOf(aQ, "ByteVector"))
1774+@Verifier(ix)
1775+func iy () = {
1776+ let iz = {
1777+ let aP = gt()
1778+ if ($isInstanceOf(aP, "ByteVector"))
17751779 then {
1776- let gu = aQ
1777- gu
1780+ let gx = aP
1781+ gx
17781782 }
1779- else if ($isInstanceOf(aQ, "Unit"))
1780- then iu.senderPublicKey
1783+ else if ($isInstanceOf(aP, "Unit"))
1784+ then ix.senderPublicKey
17811785 else throw("Match error")
17821786 }
1783- let aQ = iu
1784- if ($isInstanceOf(aQ, "Order"))
1787+ let aP = ix
1788+ if ($isInstanceOf(aP, "Order"))
17851789 then {
1786- let ff = aQ
1787- let ix = bi()
1788- let iy = if (gB())
1790+ let fi = aP
1791+ let iA = bh()
1792+ let iB = if (gE())
17891793 then $Tuple2(true, "")
1790- else fe(ff)
1791- let aK = iy._1
1792- let aL = iy._2
1793- let aM = sigVerify(ff.bodyBytes, ff.proofs[0], ff.senderPublicKey)
1794- let aN = sigVerify(ff.bodyBytes, ff.proofs[1], ix)
1795- if (if (if (aK)
1794+ else fh(fi)
1795+ let aJ = iB._1
1796+ let aK = iB._2
1797+ let aL = sigVerify(fi.bodyBytes, fi.proofs[0], fi.senderPublicKey)
1798+ let aM = sigVerify(fi.bodyBytes, fi.proofs[1], iA)
1799+ if (if (if (aJ)
1800+ then aL
1801+ else false)
17961802 then aM
17971803 else false)
1798- then aN
1799- else false)
18001804 then true
1801- else aJ(aK, aL, aM, aN)
1805+ else aI(aJ, aK, aL, aM)
18021806 }
1803- else if ($isInstanceOf(aQ, "SetScriptTransaction"))
1807+ else if ($isInstanceOf(aP, "SetScriptTransaction"))
18041808 then {
1805- let aV = aQ
1806- if (sigVerify(iu.bodyBytes, iu.proofs[0], iw))
1809+ let aU = aP
1810+ if (sigVerify(ix.bodyBytes, ix.proofs[0], iz))
18071811 then true
18081812 else {
1809- let iz = blake2b256(value(aV.script))
1810- let iA = fromBase64String(value(getString(aU, aF())))
1811- let iB = scriptHash(this)
1812- if ((iA == iz))
1813- then (iB != iz)
1813+ let iC = blake2b256(value(aU.script))
1814+ let iD = fromBase64String(value(getString(aT, aE())))
1815+ let iE = scriptHash(this)
1816+ if ((iD == iC))
1817+ then (iE != iC)
18141818 else false
18151819 }
18161820 }
1817- else sigVerify(iu.bodyBytes, iu.proofs[0], iw)
1821+ else sigVerify(ix.bodyBytes, ix.proofs[0], iz)
18181822 }
18191823
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt(2)
1717
1818 let h = toBigInt(3)
1919
2020 let i = toBigInt(4)
2121
2222 let j = toBigInt((a - ((a * 1) / a)))
2323
2424 let k = "WAVES"
2525
26-let l = 50
26+let l = "100"
2727
28-let m = "100"
28+let m = "1"
2929
30-let n = "1"
30+let n = "__"
3131
32-let o = "__"
32+let o = ""
3333
34-let p = ""
34+let p = 1
3535
36-let q = 1
36+let q = 2
3737
38-let r = 2
38+let r = 3
3939
40-let s = 3
40+let s = 4
4141
42-let t = 4
42+let t = 1
4343
44-let u = 1
44+let u = 2
4545
46-let v = 2
46+let v = 3
4747
48-let w = 3
48+let w = 4
4949
50-let x = 4
50+let x = 5
5151
52-let y = 5
52+let y = 6
5353
54-let z = 6
54+let z = 7
5555
56-let A = 7
56+let A = 8
5757
58-let B = 8
58+let B = 9
5959
60-let C = 9
60+let C = 1
6161
62-let D = 1
62+let D = 6
6363
64-let E = 6
64+let E = 7
6565
66-let F = 7
66+let F = 10
6767
68-let G = 10
68+let G = fraction(10, a, 10000)
6969
70-let H = fraction(10, a, 10000)
71-
72-func I (J,K) = fraction(toBigInt(J), c, toBigInt(K))
70+func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7371
7472
75-func L (J,K) = fraction(J, c, K)
73+func K (I,J) = fraction(I, c, J)
7674
7775
78-func M (N,O) = toInt(fraction(N, toBigInt(O), c))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7977
8078
81-func P (N,O,Q) = toInt(fraction(N, toBigInt(O), c, Q))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8280
8381
84-func R (J,K) = fraction(J, c, toBigInt(K))
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8583
8684
87-func S (N,O) = fraction(N, toBigInt(O), c)
85+func R (M,N) = fraction(M, toBigInt(N), c)
8886
8987
90-func T (U,V,W) = fraction(U, V, W)
88+func S (T,U,V) = fraction(T, U, V)
9189
9290
93-func X (N) = if ((d > N))
94- then -(N)
95- else N
91+func W (M) = if ((d > M))
92+ then -(M)
93+ else M
9694
9795
98-func Y (N) = if ((d > N))
99- then -(N)
100- else N
96+func X (M) = if ((d > M))
97+ then -(M)
98+ else M
10199
102100
103-func Z () = "%s__factoryContract"
101+func Y () = "%s__factoryContract"
104102
105103
106-func aa () = "%s__managerPublicKey"
104+func Z () = "%s__managerPublicKey"
107105
108106
109-func ab () = "%s__managerVaultAddress"
107+func aa () = "%s__managerVaultAddress"
110108
111109
112-func ac () = "%s%s__price__last"
110+func ab () = "%s%s__price__last"
113111
114112
115-func ad (ae,af) = makeString(["%s%s%d%d__price__history", toString(ae), toString(af)], o)
113+func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
116114
117115
118-func ag (ah,ai) = ((("%s%s%s__P__" + ah) + "__") + ai)
116+func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
119117
120118
121-func aj (ah,ai) = ((("%s%s%s__G__" + ah) + "__") + ai)
119+func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
122120
123121
124-func ak () = "%s__amountAsset"
122+func aj () = "%s__amountAsset"
125123
126124
127-func al () = "%s__priceAsset"
125+func ak () = "%s__priceAsset"
128126
129127
130-func am () = "%s__amp"
128+func al () = "%s__amp"
131129
132130
133-func an (ao) = ("%s%d__amp__" + toString(ao))
131+func am (an) = ("%s%d__amp__" + toString(an))
134132
135133
136-func ap () = "%s__changeAmpLastCall"
134+func ao () = "%s__changeAmpLastCall"
137135
138136
139-let aq = "%s__fee"
137+let ap = "%s__fee"
140138
141-let ar = valueOrElse(getInteger(this, aq), H)
139+let aq = valueOrElse(getInteger(this, ap), G)
142140
143-let as = makeString(["%s", "dLp"], o)
141+let ar = makeString(["%s", "dLp"], n)
144142
145-let at = makeString(["%s", "dLpRefreshedHeight"], o)
143+let as = makeString(["%s", "dLpRefreshedHeight"], n)
146144
147-let au = makeString(["%s", "refreshDLpDelay"], o)
145+let at = makeString(["%s", "refreshDLpDelay"], n)
148146
149-let av = 30
147+let au = 30
150148
151-let aw = valueOrElse(getInteger(this, au), av)
149+let av = valueOrElse(getInteger(this, at), au)
152150
153-func ax () = "%s__factoryConfig"
151+func aw () = "%s__factoryConfig"
154152
155153
156-func ay () = "%s%s__matcher__publicKey"
154+func ax () = "%s%s__matcher__publicKey"
157155
158156
159-func az (aA,aB) = (((("%d%d%s__" + aA) + "__") + aB) + "__config")
157+func ay (az,aA) = (((("%d%d%s__" + az) + "__") + aA) + "__config")
160158
161159
162-func aC (aD) = ("%s%s%s__mappings__baseAsset2internalId__" + aD)
160+func aB (aC) = ("%s%s%s__mappings__baseAsset2internalId__" + aC)
163161
164162
165-func aE () = "%s__shutdown"
163+func aD () = "%s__shutdown"
166164
167165
168-func aF () = "%s__allowedLpStableScriptHash"
166+func aE () = "%s__allowedLpStableScriptHash"
169167
170168
171-func aG () = "%s__feeCollectorAddress"
169+func aF () = "%s__feeCollectorAddress"
172170
173171
174-func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172+func aG (aH) = ("%s%s__skipOrderValidation__" + aH)
175173
176174
177-func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175+func aI (aJ,aK,aL,aM) = throw((((((((("order validation failed: orderValid=" + toString(aJ)) + " (") + aK) + ")") + " senderValid=") + toString(aL)) + " matcherValid=") + toString(aM)))
178176
179177
180-func aO (aP) = {
181- let aQ = addressFromString(aP)
182- if ($isInstanceOf(aQ, "Address"))
178+func aN (aO) = {
179+ let aP = addressFromString(aO)
180+ if ($isInstanceOf(aP, "Address"))
183181 then {
184- let aR = aQ
185- aR
182+ let aQ = aP
183+ aQ
186184 }
187185 else this
188186 }
189187
190188
191-func aS () = {
192- let aT = {
193- let aQ = getString(Z())
194- if ($isInstanceOf(aQ, "String"))
189+func aR () = {
190+ let aS = {
191+ let aP = getString(Y())
192+ if ($isInstanceOf(aP, "String"))
195193 then {
196- let aU = aQ
197- aO(aU)
194+ let aT = aP
195+ aN(aT)
198196 }
199197 else this
200198 }
201- let aQ = getString(aT, ab())
202- if ($isInstanceOf(aQ, "String"))
199+ let aP = getString(aS, aa())
200+ if ($isInstanceOf(aP, "String"))
203201 then {
204- let aV = aQ
205- aO(aV)
202+ let aU = aP
203+ aN(aU)
206204 }
207205 else this
208206 }
209207
210208
211-func aW (aX,aY) = valueOrErrorMessage(getString(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
209+func aV (aW,aX) = valueOrErrorMessage(getString(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
212210
213211
214-func aZ (aX,aY) = valueOrErrorMessage(getInteger(aX, aY), makeString(["mandatory ", toString(aX), ".", aY, " not defined"], ""))
212+func aY (aW,aX) = valueOrErrorMessage(getInteger(aW, aX), makeString(["mandatory ", toString(aW), ".", aX, " not defined"], ""))
215213
216214
217-func ba (bb) = throw(makeString(["lp_stable.ride:", bb], " "))
215+func aZ (ba) = throw(makeString(["lp_stable.ride:", ba], " "))
218216
219217
220-func bc (bb) = makeString(["lp_stable.ride:", bb], " ")
218+func bb (ba) = makeString(["lp_stable.ride:", ba], " ")
221219
222220
223-let aU = addressFromStringValue(aW(this, Z()))
221+let aT = addressFromStringValue(aV(this, Y()))
224222
225-let bd = {
226- let be = invoke(aU, "getInFeeREADONLY", [toString(this)], nil)
227- if ($isInstanceOf(be, "Int"))
228- then be
229- else throw(($getType(be) + " couldn't be cast to Int"))
223+let bc = {
224+ let bd = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
225+ if ($isInstanceOf(bd, "Int"))
226+ then bd
227+ else throw(($getType(bd) + " couldn't be cast to Int"))
230228 }
231229
232-let bf = {
233- let be = invoke(aU, "getOutFeeREADONLY", [toString(this)], nil)
234- if ($isInstanceOf(be, "Int"))
235- then be
236- else throw(($getType(be) + " couldn't be cast to Int"))
230+let be = {
231+ let bd = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
232+ if ($isInstanceOf(bd, "Int"))
233+ then bd
234+ else throw(($getType(bd) + " couldn't be cast to Int"))
237235 }
238236
239-let bg = aW(this, am())
237+let bf = aV(this, al())
240238
241-func bh () = valueOrElse(getBoolean(aU, aE()), false)
239+func bg () = valueOrElse(getBoolean(aT, aD()), false)
242240
243241
244-func bi () = fromBase58String(aW(aU, ay()))
242+func bh () = fromBase58String(aV(aT, ax()))
245243
246244
247-let bj = addressFromStringValue(aW(aU, aG()))
245+let bi = addressFromStringValue(aV(aT, aF()))
248246
249-func bk () = {
250- let bl = aW(this, ak())
251- let bm = aW(this, al())
252- let bn = aZ(aU, aC(bm))
253- let aA = aZ(aU, aC(bl))
254- split(aW(aU, az(toString(aA), toString(bn))), o)
247+func bj () = {
248+ let bk = aV(this, aj())
249+ let bl = aV(this, ak())
250+ let bm = aY(aT, aB(bl))
251+ let az = aY(aT, aB(bk))
252+ split(aV(aT, ay(toString(az), toString(bm))), n)
255253 }
256254
257255
258-func bo (bp) = if ((bp == k))
256+func bn (bo) = if ((bo == k))
259257 then unit
260- else fromBase58String(bp)
258+ else fromBase58String(bo)
261259
262260
263-func bq (bp) = if ((bp == unit))
261+func bp (bo) = if ((bo == unit))
264262 then k
265- else toBase58String(value(bp))
263+ else toBase58String(value(bo))
266264
267265
268-func br (bs) = $Tuple7(addressFromStringValue(bs[u]), parseIntValue(bs[v]), fromBase58String(bs[w]), bo(bs[x]), bo(bs[y]), parseIntValue(bs[z]), parseIntValue(bs[A]))
266+func bq (br) = $Tuple9(addressFromStringValue(br[t]), parseIntValue(br[u]), fromBase58String(br[v]), bn(br[w]), bn(br[x]), parseIntValue(br[y]), parseIntValue(br[z]), fromBase58String(br[A]), fromBase58String(br[B]))
269267
270268
271-let bt = br(bk())
269+let bs = bq(bj())
272270
273-let bu = bt
271+let bt = bs
274272
275-let bv = bu._1
273+let bu = bt._1
276274
277-let bw = bu._2
275+let bv = bt._2
278276
279-let bx = bu._3
277+let bw = bt._3
280278
281-let by = bu._4
279+let bx = bt._4
282280
283-let bz = bu._5
281+let by = bt._5
284282
285-let bA = bu._6
283+let bz = bt._6
286284
287-let bB = bu._7
285+let bA = bt._7
288286
289-func bC () = split(aW(aU, ax()), o)
287+let bB = bt._8
288+
289+let bC = bt._9
290+
291+func bD () = split(aV(aT, aw()), n)
290292
291293
292-let bD = bC()
294+let bE = bD()
293295
294-let bE = valueOrErrorMessage(addressFromString(bD[D]), "Invalid staking contract address")
296+let bF = valueOrErrorMessage(addressFromString(bE[C]), "Invalid staking contract address")
295297
296-let bF = valueOrErrorMessage(addressFromString(bD[F]), "Invalid slipage contract address")
298+let bG = valueOrErrorMessage(addressFromString(bE[E]), "Invalid slipage contract address")
297299
298-let bG = valueOrErrorMessage(addressFromString(bD[G]), "Invalid gwx contract address")
300+let bH = valueOrErrorMessage(addressFromString(bE[F]), "Invalid gwx contract address")
299301
300-let bH = valueOrErrorMessage(addressFromString(bD[E]), "Invalid gwx contract address")
302+let bI = valueOrErrorMessage(addressFromString(bE[D]), "Invalid gwx contract address")
301303
302-func bI (bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS)], o)
304+func bJ (bK,bL,bM,bN,bO,bP,bQ,bR,bS,bT) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bK), toString(bL), toString(bM), toString(bN), toString(bO), toString(bP), toString(bQ), toString(bR), toString(bS), toString(bT)], n)
303305
304306
305-func bT (bU,bV,bW,bM,bP,bQ) = makeString(["%d%d%d%d%d%d", toString(bU), toString(bV), toString(bW), toString(bM), toString(bP), toString(bQ)], o)
307+func bU (bV,bW,bX,bN,bQ,bR) = makeString(["%d%d%d%d%d%d", toString(bV), toString(bW), toString(bX), toString(bN), toString(bQ), toString(bR)], n)
306308
307309
308-func bX (bY) = if ((bY == "WAVES"))
310+func bY (bZ) = if ((bZ == "WAVES"))
309311 then wavesBalance(this).available
310- else assetBalance(this, fromBase58String(bY))
312+ else assetBalance(this, fromBase58String(bZ))
311313
312314
313-func bZ (ca,cb) = fraction(ca, c, cb)
315+func ca (cb,cc) = fraction(cb, c, cc)
314316
315317
316-func cc (ca,cb,Q) = fraction(ca, c, cb, Q)
318+func cd (cb,cc,P) = fraction(cb, c, cc, P)
317319
318320
319-func cd (ce,cf,cg) = {
320- let ch = fraction((ce - cf), b, cf)
321- let ci = ((cg - X(ch)) > d)
322- if (!(ci))
323- then throw(("Big slpg: " + toString(ch)))
324- else $Tuple2(ci, min([ce, cf]))
321+func ce (cf,cg,ch) = {
322+ let ci = fraction((cf - cg), b, cg)
323+ let cj = ((ch - W(ci)) > d)
324+ if (!(cj))
325+ then throw(("Big slpg: " + toString(ci)))
326+ else $Tuple2(cj, min([cf, cg]))
325327 }
326328
327329
328-func cj (ck,cl,cm) = {
329- let ch = fraction(cl, b, ck)
330- let cn = (cm > ch)
331- if (if (cn)
330+func ck (cl,cm,cn) = {
331+ let ci = fraction(cm, b, cl)
332+ let co = (cn > ci)
333+ if (if (co)
332334 then true
333- else (cl > ck))
334- then throw(((((((toString(cl) + " ") + toString(ck)) + " ") + toString(ch)) + " ") + toString(cm)))
335- else cn
335+ else (cm > cl))
336+ then throw(((((((toString(cm) + " ") + toString(cl)) + " ") + toString(ci)) + " ") + toString(cn)))
337+ else co
336338 }
337339
338340
339-func co (cp,cq,cr,cs) = {
340- let ct = I(cr, cp)
341- let cu = I(cs, cq)
342- bZ(cu, ct)
341+func cp (cq,cr,cs,ct) = {
342+ let cu = H(cs, cq)
343+ let cv = H(ct, cr)
344+ ca(cv, cu)
343345 }
344346
345347
346-func cv (cr,cs,cw) = {
347- let cx = bA
348- let cy = bB
349- let cz = co(cx, cy, cr, cs)
350- let cb = I(cr, cx)
351- let ca = I(cs, cy)
352- let cA = I(cw, a)
353- let cB = bZ(cb, cA)
354- let cC = bZ(ca, cA)
355-[cz, cB, cC]
348+func cw (cs,ct,cx) = {
349+ let cy = bz
350+ let cz = bA
351+ let cA = cp(cy, cz, cs, ct)
352+ let cc = H(cs, cy)
353+ let cb = H(ct, cz)
354+ let cB = H(cx, a)
355+ let cC = ca(cc, cB)
356+ let cD = ca(cb, cB)
357+[cA, cC, cD]
356358 }
357359
358360
359-func cD (cr,cs,cw) = {
360- let cE = cv(cr, cs, cw)
361-[M(cE[0], a), M(cE[1], a), M(cE[2], a)]
361+func cE (cs,ct,cx) = {
362+ let cF = cw(cs, ct, cx)
363+[L(cF[0], a), L(cF[1], a), L(cF[2], a)]
362364 }
363365
364366
365-func cF (cG,ar) = {
366- let cH = if ((ar == 0))
367+func cG (cH,aq) = {
368+ let cI = if ((aq == 0))
367369 then 0
368- else fraction(cG, ar, a)
369- $Tuple2((cG - cH), cH)
370+ else fraction(cH, aq, a)
371+ $Tuple2((cH - cI), cI)
370372 }
371373
372374
373-func cI (cJ) = {
374- let cK = cJ[0]
375- let cL = cJ[1]
376- let aV = (cK + cL)
377- if ((aV == e))
375+func cJ (cK) = {
376+ let cL = cK[0]
377+ let cM = cK[1]
378+ let aU = (cL + cM)
379+ if ((aU == e))
378380 then e
379381 else {
380- let aR = parseIntValue(bg)
381- let cM = (aR * 2)
382- let cE = fraction(cK, cL, f)
383- let cN = fraction(cE, i, f)
384- let cO = fraction(toBigInt(cM), aV, f)
385- let cP = toBigInt((cM - 1))
386- func cQ (cR) = {
387- let cS = fraction(cR, cR, f)
388- let cT = fraction(cS, cR, f)
389- let cU = fraction(cT, f, cN)
390- fraction((cO + fraction(cU, g, f)), cR, (fraction(cP, cR, f) + fraction(h, cU, f)))
382+ let aQ = parseIntValue(bf)
383+ let cN = (aQ * 2)
384+ let cF = fraction(cL, cM, f)
385+ let cO = fraction(cF, i, f)
386+ let cP = fraction(toBigInt(cN), aU, f)
387+ let cQ = toBigInt((cN - 1))
388+ func cR (cS) = {
389+ let cT = fraction(cS, cS, f)
390+ let cU = fraction(cT, cS, f)
391+ let cV = fraction(cU, f, cO)
392+ fraction((cP + fraction(cV, g, f)), cS, (fraction(cQ, cS, f) + fraction(h, cV, f)))
391393 }
392394
393- func cV (cW,cX) = if (cW._2)
394- then cW
395+ func cW (cX,cY) = if (cX._2)
396+ then cX
395397 else {
396- let cR = cW._1
397- let cY = cQ(cR)
398- let cZ = (cY - value(cR))
399- let da = if ((e > cZ))
400- then -(cZ)
401- else cZ
402- if ((f >= da))
403- then $Tuple2(cY, true)
404- else $Tuple2(cY, false)
398+ let cS = cX._1
399+ let cZ = cR(cS)
400+ let da = (cZ - value(cS))
401+ let db = if ((e > da))
402+ then -(da)
403+ else da
404+ if ((f >= db))
405+ then $Tuple2(cZ, true)
406+ else $Tuple2(cZ, false)
405407 }
406408
407- let db = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
408- let dc = {
409- let dd = db
410- let de = size(dd)
411- let df = $Tuple2(aV, false)
412- func dg (dh,di) = if ((di >= de))
413- then dh
414- else cV(dh, dd[di])
409+ let dc = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
410+ let dd = {
411+ let de = dc
412+ let df = size(de)
413+ let dg = $Tuple2(aU, false)
414+ func dh (di,dj) = if ((dj >= df))
415+ then di
416+ else cW(di, de[dj])
415417
416- func dj (dh,di) = if ((di >= de))
417- then dh
418+ func dk (di,dj) = if ((dj >= df))
419+ then di
418420 else throw("List size exceeds 17")
419421
420- dj(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(df, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
422+ dk(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dg, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17)
421423 }
422- let cR = dc._1
423- let dk = dc._2
424- if (dk)
425- then cR
426- else throw(("D calculation error, D = " + toString(cR)))
424+ let cS = dd._1
425+ let dl = dd._2
426+ if (dl)
427+ then cS
428+ else throw(("D calculation error, D = " + toString(cS)))
427429 }
428430 }
429431
430432
431-func dl (dm,dn,do,dp) = {
432- let dq = bx
433- let dr = toBase58String(value(by))
434- let ds = toBase58String(value(bz))
435- let dt = bA
436- let du = bB
437- let dv = toString(bw)
438- let dw = valueOrErrorMessage(assetInfo(dq), "Wrong LP id").quantity
439- if ((toBase58String(dq) != dn))
433+func dm (dn,do,dp,dq) = {
434+ let dr = bw
435+ let ds = toBase58String(value(bx))
436+ let dt = toBase58String(value(by))
437+ let du = bz
438+ let dv = bA
439+ let dw = toString(bv)
440+ let dx = valueOrErrorMessage(assetInfo(dr), "Wrong LP id").quantity
441+ if ((toBase58String(dr) != do))
440442 then throw("Wrong pmt asset")
441443 else {
442- let dx = bX(dr)
443- let dy = I(dx, dt)
444- let dz = bX(ds)
445- let dA = I(dz, du)
446- let dB = bZ(dA, dy)
447- let dC = M(dB, a)
448- let dD = I(do, a)
449- let dE = I(dw, a)
450- let dF = fraction(dy, dD, dE)
451- let dG = fraction(dA, dD, dE)
452- let dH = P(dF, dt, FLOOR)
453- let dI = P(dG, du, FLOOR)
454- let dJ = if ((dm == ""))
444+ let dy = bY(ds)
445+ let dz = H(dy, du)
446+ let dA = bY(dt)
447+ let dB = H(dA, dv)
448+ let dC = ca(dB, dz)
449+ let dD = L(dC, a)
450+ let dE = H(dp, a)
451+ let dF = H(dx, a)
452+ let dG = fraction(dz, dE, dF)
453+ let dH = fraction(dB, dE, dF)
454+ let dI = O(dG, du, FLOOR)
455+ let dJ = O(dH, dv, FLOOR)
456+ let dK = if ((dn == ""))
455457 then nil
456- else [ScriptTransfer(dp, dH, if ((dr == "WAVES"))
458+ else [ScriptTransfer(dq, dI, if ((ds == "WAVES"))
457459 then unit
458- else fromBase58String(dr)), ScriptTransfer(dp, dI, if ((ds == "WAVES"))
460+ else fromBase58String(ds)), ScriptTransfer(dq, dJ, if ((dt == "WAVES"))
459461 then unit
460- else fromBase58String(ds)), StringEntry(aj(toString(dp), dm), bT(dH, dI, do, dC, height, lastBlock.timestamp)), IntegerEntry(ac(), dC), IntegerEntry(ad(height, lastBlock.timestamp), dC)]
461- $Tuple10(dH, dI, dr, ds, dx, dz, dw, dB, dv, dJ)
462+ else fromBase58String(dt)), StringEntry(ai(toString(dq), dn), bU(dI, dJ, dp, dD, height, lastBlock.timestamp)), IntegerEntry(ab(), dD), IntegerEntry(ac(height, lastBlock.timestamp), dD)]
463+ $Tuple10(dI, dJ, ds, dt, dy, dA, dx, dC, dw, dK)
462464 }
463465 }
464466
465467
466-func dK (dm,cg,dL,dM,dN,dO,dp,dP,dQ,dR,dS,dT,dU) = {
467- let dq = bx
468- let dV = toBase58String(value(by))
469- let dW = toBase58String(value(bz))
470- let dX = bA
468+func dL (dn,ch,dM,dN,dO,dP,dq,dQ,dR,dS,dT,dU,dV) = {
469+ let dr = bw
470+ let dW = toBase58String(value(bx))
471+ let dX = toBase58String(value(by))
471472 let dY = bB
472- let dv = toString(bw)
473- let dZ = valueOrErrorMessage(assetInfo(dq), "Wr lp as").quantity
474- let dx = if (dP)
475- then bX(dV)
476- else if (if (dR)
477- then (dU == dV)
473+ let dZ = bC
474+ let ea = bz
475+ let eb = bA
476+ let dw = toString(bv)
477+ let ec = valueOrErrorMessage(assetInfo(dr), "Wr lp as").quantity
478+ let dy = if (dQ)
479+ then bY(dW)
480+ else if (if (dS)
481+ then (dV == dW)
478482 else false)
479- then (bX(dV) - dT)
480- else if (dR)
481- then bX(dV)
482- else (bX(dV) - dL)
483- let dz = if (dP)
484- then bX(dW)
485- else if (if (dR)
486- then (dU == dW)
483+ then (bY(dW) - dU)
484+ else if (dS)
485+ then bY(dW)
486+ else (bY(dW) - dM)
487+ let dA = if (dQ)
488+ then bY(dX)
489+ else if (if (dS)
490+ then (dV == dX)
487491 else false)
488- then (bX(dW) - dT)
489- else if (dR)
490- then bX(dW)
491- else (bX(dW) - dN)
492- let ea = I(dL, dX)
493- let eb = I(dN, dY)
494- let ec = bZ(eb, ea)
495- let dy = I(dx, dX)
496- let dA = I(dz, dY)
497- let cl = cI([dy, dA])
498- let ed = if ((dZ == 0))
492+ then (bY(dX) - dU)
493+ else if (dS)
494+ then bY(dX)
495+ else (bY(dX) - dO)
496+ let ed = H(dM, ea)
497+ let ee = H(dO, eb)
498+ let ef = ca(ee, ed)
499+ let dz = H(dy, ea)
500+ let dB = H(dA, eb)
501+ let cm = cJ([dz, dB])
502+ let eg = if ((ec == 0))
499503 then {
500- let ck = cI([(dy + ea), (dA + eb)])
501- let ee = if ((ck > cl))
504+ let cl = cJ([(dz + ed), (dB + ee)])
505+ let eh = if ((cl > cm))
502506 then true
503507 else throw("D1 should be greater than D0")
504- if ((ee == ee))
508+ if ((eh == eh))
505509 then {
506- let dB = d
507- let ef = d
508- let cA = ck
509- $Tuple5(M(cA, a), M(ea, dX), M(eb, dY), bZ((dA + eb), (dy + ea)), ef)
510+ let dC = d
511+ let ei = d
512+ let cB = cl
513+ $Tuple5(L(cB, a), L(ed, ea), L(ee, eb), ca((dB + ee), (dz + ed)), ei)
510514 }
511515 else throw("Strict value is not equal to itself.")
512516 }
513517 else {
514- let dB = bZ(dA, dy)
515- let eg = fraction(X((dB - ec)), c, dB)
516- let ef = I(cg, a)
517- if (if (if (dS)
518- then (dB != d)
518+ let dC = ca(dB, dz)
519+ let ej = fraction(W((dC - ef)), c, dC)
520+ let ei = H(ch, a)
521+ if (if (if (dT)
522+ then (dC != d)
519523 else false)
520- then (eg > ef)
524+ then (ej > ei)
521525 else false)
522- then throw(((("Price slippage " + toString(eg)) + " > ") + toString(ef)))
526+ then throw(((("Price slippage " + toString(ej)) + " > ") + toString(ei)))
523527 else {
524- let eh = I(dZ, a)
525- let ei = fraction(ea, cc(dA, dy, CEILING), c, CEILING)
526- let ej = fraction(eb, c, cc(dA, dy, FLOOR), CEILING)
527- let ek = if ((ei > eb))
528- then $Tuple2(ej, eb)
529- else $Tuple2(ea, ei)
530- let el = ek._1
531- let em = ek._2
532- let ck = cI([(dy + el), (dA + em)])
533- let ee = if ((ck > cl))
528+ let ek = H(ec, a)
529+ let el = fraction(ed, cd(dB, dz, CEILING), c, CEILING)
530+ let em = fraction(ee, c, cd(dB, dz, FLOOR), CEILING)
531+ let en = if ((el > ee))
532+ then $Tuple2(em, ee)
533+ else $Tuple2(ed, el)
534+ let eo = en._1
535+ let ep = en._2
536+ let cl = cJ([(dz + eo), (dB + ep)])
537+ let eh = if ((cl > cm))
534538 then true
535539 else throw("D1 should be greater than D0")
536- if ((ee == ee))
540+ if ((eh == eh))
537541 then {
538- let cA = fraction(eh, (ck - cl), cl)
539- $Tuple5(P(cA, a, FLOOR), P(el, dX, CEILING), P(em, dY, CEILING), dB, ef)
542+ let cB = fraction(ek, (cl - cm), cm)
543+ $Tuple5(O(cB, a, FLOOR), O(eo, ea, CEILING), O(ep, eb, CEILING), dC, ei)
540544 }
541545 else throw("Strict value is not equal to itself.")
542546 }
543547 }
544- let en = ed._1
545- let eo = ed._2
546- let ep = ed._3
547- let dC = M(ed._4, a)
548- let eq = M(ed._5, a)
549- if ((0 >= en))
548+ let eq = eg._1
549+ let er = eg._2
550+ let es = eg._3
551+ let dD = L(eg._4, a)
552+ let et = L(eg._5, a)
553+ if ((0 >= eq))
550554 then throw("LP <= 0")
551555 else {
552- let er = if (!(dQ))
556+ let eu = if (!(dR))
553557 then 0
554- else en
555- let es = (dL - eo)
556- let et = (dN - ep)
557- let eu = if (if (dR)
558- then (dU == dV)
558+ else eq
559+ let ev = (dM - er)
560+ let ew = (dO - es)
561+ let ex = if (if (dS)
562+ then (dV == dW)
559563 else false)
560- then $Tuple2(dT, 0)
561- else if (if (dR)
562- then (dU == dW)
564+ then $Tuple2(dU, 0)
565+ else if (if (dS)
566+ then (dV == dX)
563567 else false)
564- then $Tuple2(0, dT)
565- else $Tuple2(eo, ep)
566- let ev = eu._1
567- let ew = eu._2
568- let ex = [IntegerEntry(ac(), dC), IntegerEntry(ad(height, lastBlock.timestamp), dC), StringEntry(ag(dp, dm), bI(ev, ew, er, dC, cg, eq, height, lastBlock.timestamp, es, et))]
569- $Tuple13(en, er, dC, dx, dz, dZ, dq, dv, ex, es, et, dM, dO)
568+ then $Tuple2(0, dU)
569+ else $Tuple2(er, es)
570+ let ey = ex._1
571+ let ez = ex._2
572+ let eA = [IntegerEntry(ab(), dD), IntegerEntry(ac(height, lastBlock.timestamp), dD), StringEntry(af(dq, dn), bJ(ey, ez, eu, dD, ch, et, height, lastBlock.timestamp, ev, ew))]
573+ $Tuple13(eq, eu, dD, dy, dA, ec, dr, dw, eA, ev, ew, dN, dP)
570574 }
571575 }
572576
573577
574-func ey (cJ,cX,ez) = {
575- let eA = g
576- let eB = cJ[if ((cX == 0))
578+func eB (cK,cY,eC) = {
579+ let eD = g
580+ let eE = cK[if ((cY == 0))
577581 then 1
578582 else 0]
579- let eC = parseBigIntValue(m)
580- let aR = (parseBigIntValue(bg) * eC)
581- let aV = eB
582- let cM = (aR * eA)
583- let eD = (((((ez * ez) / (eB * eA)) * ez) * eC) / (cM * eA))
584- let eE = ((aV + ((ez * eC) / cM)) - ez)
585- func cV (cW,eF) = {
586- let eG = cW
587- let eH = eG._1
588- let dk = eG._2
589- if ((dk != unit))
590- then cW
583+ let eF = parseBigIntValue(l)
584+ let aQ = (parseBigIntValue(bf) * eF)
585+ let aU = eE
586+ let cN = (aQ * eD)
587+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cN * eD))
588+ let eH = ((aU + ((eC * eF) / cN)) - eC)
589+ func cW (cX,eI) = {
590+ let eJ = cX
591+ let eK = eJ._1
592+ let dl = eJ._2
593+ if ((dl != unit))
594+ then cX
591595 else {
592- let eI = (((eH * eH) + eD) / ((g * eH) + eE))
593- let eJ = Y((eI - value(eH)))
594- if ((f >= eJ))
595- then $Tuple2(eI, eF)
596- else $Tuple2(eI, unit)
596+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
597+ let eM = X((eL - value(eK)))
598+ if ((f >= eM))
599+ then $Tuple2(eL, eI)
600+ else $Tuple2(eL, unit)
597601 }
598602 }
599603
600- let db = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
601- let eK = {
602- let dd = db
603- let de = size(dd)
604- let df = $Tuple2(ez, unit)
605- func dg (dh,di) = if ((di >= de))
606- then dh
607- else cV(dh, dd[di])
604+ let dc = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
605+ let eN = {
606+ let de = dc
607+ let df = size(de)
608+ let dg = $Tuple2(eC, unit)
609+ func dh (di,dj) = if ((dj >= df))
610+ then di
611+ else cW(di, de[dj])
608612
609- func dj (dh,di) = if ((di >= de))
610- then dh
613+ func dk (di,dj) = if ((dj >= df))
614+ then di
611615 else throw("List size exceeds 15")
612616
613- dj(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(df, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
617+ dk(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dg, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
614618 }
615- let eH = eK._1
616- let dk = eK._2
617- if ((dk != unit))
618- then eH
619- else throw(("Y calculation error, Y = " + toString(eH)))
619+ let eK = eN._1
620+ let dl = eN._2
621+ if ((dl != unit))
622+ then eK
623+ else throw(("Y calculation error, Y = " + toString(eK)))
620624 }
621625
622626
623-func eL (eM,eN,eO) = {
624- let eP = fraction(cI([L(eM, toBigInt(bA)), L(eN, toBigInt(bB))]), c, eO)
625- if ((eO == e))
627+func eO (eP,eQ,eR) = {
628+ let eS = fraction(cJ([K(eP, toBigInt(bz)), K(eQ, toBigInt(bA))]), c, eR)
629+ if ((eR == e))
626630 then e
627- else eP
631+ else eS
628632 }
629633
630634
631-func eQ (eR,eS,eT) = {
632- let eU = (toBigInt(bX(bq(by))) - eR)
633- let eV = (toBigInt(bX(bq(bz))) - eS)
634- let eW = (toBigInt(value(assetInfo(bx)).quantity) - eT)
635- let eX = eL(eU, eV, eW)
636- eX
635+func eT (eU,eV,eW) = {
636+ let eX = (toBigInt(bY(bp(bx))) - eU)
637+ let eY = (toBigInt(bY(bp(by))) - eV)
638+ let eZ = (toBigInt(value(assetInfo(bw)).quantity) - eW)
639+ let fa = eO(eX, eY, eZ)
640+ fa
637641 }
638642
639643
640-func eY (eZ,fa,eT) = {
641- let eU = (bX(bq(by)) + eZ)
642- let eV = (bX(bq(bz)) + fa)
643- let eW = (value(assetInfo(bx)).quantity + eT)
644- let eP = eL(toBigInt(eU), toBigInt(eV), toBigInt(eW))
645- let fb = [IntegerEntry(at, height), StringEntry(as, toString(eP))]
646- $Tuple2(fb, eP)
644+func fb (fc,fd,eW) = {
645+ let eX = (bY(bp(bx)) + fc)
646+ let eY = (bY(bp(by)) + fd)
647+ let eZ = (value(assetInfo(bw)).quantity + eW)
648+ let eS = eO(toBigInt(eX), toBigInt(eY), toBigInt(eZ))
649+ let fe = [IntegerEntry(as, height), StringEntry(ar, toString(eS))]
650+ $Tuple2(fe, eS)
647651 }
648652
649653
650-func fc (fd,eP) = if ((eP >= fd))
654+func ff (fg,eS) = if ((eS >= fg))
651655 then true
652- else ba("updated DLp lower than current DLp")
656+ else aZ("updated DLp lower than current DLp")
653657
654658
655-func fe (ff) = {
656- let eU = bX(bq(by))
657- let eV = bX(bq(bz))
658- let fg = ff.amount
659- let fh = fraction(ff.amount, ff.price, a, FLOOR)
660- let fi = if ((ff.orderType == Buy))
661- then $Tuple2(fg, -(fh))
662- else $Tuple2(-(fg), fh)
663- let eZ = fi._1
664- let fa = fi._2
665- if (if (if (bh())
659+func fh (fi) = {
660+ let eX = bY(bp(bx))
661+ let eY = bY(bp(by))
662+ let fj = fi.amount
663+ let fk = fraction(fi.amount, fi.price, a, FLOOR)
664+ let fl = if ((fi.orderType == Buy))
665+ then $Tuple2(fj, -(fk))
666+ else $Tuple2(-(fj), fk)
667+ let fc = fl._1
668+ let fd = fl._2
669+ if (if (if (bg())
666670 then true
667- else (bw == s))
671+ else (bv == r))
668672 then true
669- else (bw == t))
673+ else (bv == s))
670674 then throw("Admin blocked")
671- else if (if ((ff.assetPair.amountAsset != by))
675+ else if (if ((fi.assetPair.amountAsset != bx))
672676 then true
673- else (ff.assetPair.priceAsset != bz))
677+ else (fi.assetPair.priceAsset != by))
674678 then throw("Wr assets")
675679 else {
676- let fj = parseBigIntValue(valueOrElse(getString(this, as), "0"))
677- let fk = eY(eZ, fa, 0)
678- let fl = fk._1
679- let fm = fk._2
680- let fn = (fm >= fj)
681- let fo = makeString(["dLp=", toString(fj), " dLpNew=", toString(fm), " amountAssetBalance=", toString(eU), " priceAssetBalance=", toString(eV), " amountAssetBalanceDelta=", toString(eZ), " priceAssetBalanceDelta=", toString(fa), " height=", toString(height)], "")
682- $Tuple2(fn, fo)
680+ let fm = parseBigIntValue(valueOrElse(getString(this, ar), "0"))
681+ let fn = fb(fc, fd, 0)
682+ let fo = fn._1
683+ let fp = fn._2
684+ let fq = (fp >= fm)
685+ let fr = makeString(["dLp=", toString(fm), " dLpNew=", toString(fp), " amountAssetBalance=", toString(eX), " priceAssetBalance=", toString(eY), " amountAssetBalanceDelta=", toString(fc), " priceAssetBalanceDelta=", toString(fd), " height=", toString(height)], "")
686+ $Tuple2(fq, fr)
683687 }
684688 }
685689
686690
687-func fp (cX) = if ((size(cX.payments) != 1))
691+func fs (cY) = if ((size(cY.payments) != 1))
688692 then throw("1 pmnt exp")
689693 else {
690- let fq = value(cX.payments[0])
691- let dn = value(fq.assetId)
692- let dT = fq.amount
693- let ed = dl(toBase58String(cX.transactionId), toBase58String(dn), dT, cX.caller)
694- let dH = ed._1
695- let dI = ed._2
696- let dv = parseIntValue(ed._9)
697- let dJ = ed._10
698- if (if (bh())
694+ let ft = value(cY.payments[0])
695+ let do = value(ft.assetId)
696+ let dU = ft.amount
697+ let eg = dm(toBase58String(cY.transactionId), toBase58String(do), dU, cY.caller)
698+ let dI = eg._1
699+ let dJ = eg._2
700+ let dw = parseIntValue(eg._9)
701+ let dK = eg._10
702+ if (if (bg())
699703 then true
700- else (dv == t))
701- then throw(("Admin blocked: " + toString(dv)))
702- else $Tuple5(dH, dI, dT, dn, dJ)
704+ else (dw == s))
705+ then throw(("Admin blocked: " + toString(dw)))
706+ else $Tuple5(dI, dJ, dU, do, dK)
703707 }
704708
705709
706-func fr (fs,ai,ft,fu,cg,dQ,dR,dS,dT,dU) = {
707- let ed = dK(ai, cg, value(ft).amount, value(ft).assetId, value(fu).amount, value(fu).assetId, fs, (ai == ""), dQ, dR, dS, dT, dU)
708- let dv = parseIntValue(ed._8)
709- if (if (if (bh())
710+func fu (fv,ah,fw,fx,ch,dR,dS,dT,dU,dV) = {
711+ let eg = dL(ah, ch, value(fw).amount, value(fw).assetId, value(fx).amount, value(fx).assetId, fv, (ah == ""), dR, dS, dT, dU, dV)
712+ let dw = parseIntValue(eg._8)
713+ if (if (if (bg())
710714 then true
711- else (dv == r))
715+ else (dw == q))
712716 then true
713- else (dv == t))
714- then throw(("Blocked:" + toString(dv)))
715- else ed
717+ else (dw == s))
718+ then throw(("Blocked:" + toString(dw)))
719+ else eg
716720 }
717721
718722
719-func fv (fw,dn,dp,ai,fx) = {
720- let dr = toBase58String(value(by))
721- let ds = toBase58String(value(bz))
722- let dq = bx
723- let dX = bA
724- let dY = bB
725- let eW = toBigInt(valueOrErrorMessage(assetInfo(dq), "invalid lp asset").quantity)
726- let fy = if ((eW > e))
723+func fy (fz,do,dq,ah,fA) = {
724+ let ds = toBase58String(value(bx))
725+ let dt = toBase58String(value(by))
726+ let dr = bw
727+ let ea = bz
728+ let eb = bA
729+ let eZ = toBigInt(valueOrErrorMessage(assetInfo(dr), "invalid lp asset").quantity)
730+ let fB = if ((eZ > e))
727731 then true
728732 else throw("initial deposit requires all coins")
729- if ((fy == fy))
733+ if ((fB == fB))
730734 then {
731- let dx = bX(dr)
732- let dz = bX(ds)
733- let fz = if ((ai == ""))
734- then $Tuple2(dx, dz)
735- else if ((dn == dr))
736- then if ((fw > dx))
735+ let dy = bY(ds)
736+ let dA = bY(dt)
737+ let fC = if ((ah == ""))
738+ then $Tuple2(dy, dA)
739+ else if ((do == ds))
740+ then if ((fz > dy))
737741 then throw("invalid payment amount")
738- else $Tuple2((dx - fw), dz)
739- else if ((dn == ds))
740- then if ((fw > dz))
742+ else $Tuple2((dy - fz), dA)
743+ else if ((do == dt))
744+ then if ((fz > dA))
741745 then throw("invalid payment amount")
742- else $Tuple2(dx, (dz - fw))
746+ else $Tuple2(dy, (dA - fz))
743747 else throw("wrong pmtAssetId")
744- let fA = fz._1
745- let fB = fz._2
746- let fC = if ((dn == dr))
747- then $Tuple2(fw, 0)
748- else if ((dn == ds))
749- then $Tuple2(0, fw)
750- else throw("invalid payment")
751748 let fD = fC._1
752749 let fE = fC._2
753- let fF = if (fx)
754- then $Tuple3(cF(fD, bd)._1, cF(fE, bd)._1, cF(fw, bd)._2)
755- else $Tuple3(fD, fE, 0)
750+ let fF = if ((do == ds))
751+ then $Tuple2(fz, 0)
752+ else if ((do == dt))
753+ then $Tuple2(0, fz)
754+ else throw("invalid payment")
756755 let fG = fF._1
757756 let fH = fF._2
758- let cH = fF._3
759- let fI = (fA + fG)
760- let fJ = (fB + fH)
761- let cl = cI([I(fA, bA), I(fB, bB)])
762- let ck = cI([I(fI, bA), I(fJ, bB)])
763- let ee = if ((ck > cl))
757+ let fI = if (fA)
758+ then $Tuple3(cG(fG, bc)._1, cG(fH, bc)._1, cG(fz, bc)._2)
759+ else $Tuple3(fG, fH, 0)
760+ let fJ = fI._1
761+ let fK = fI._2
762+ let cI = fI._3
763+ let fL = (fD + fJ)
764+ let fM = (fE + fK)
765+ let cm = cJ([H(fD, bz), H(fE, bA)])
766+ let cl = cJ([H(fL, bz), H(fM, bA)])
767+ let eh = if ((cl > cm))
764768 then true
765769 else throw()
766- if ((ee == ee))
770+ if ((eh == eh))
767771 then {
768- let fK = fraction(eW, (ck - cl), cl, FLOOR)
769- let dC = M(bZ(I(fJ, dY), I(fI, dX)), a)
770- let ex = [IntegerEntry(ac(), dC), IntegerEntry(ad(height, lastBlock.timestamp), dC), StringEntry(ag(dp, ai), bI(fD, fE, toInt(fK), dC, 0, 0, height, lastBlock.timestamp, 0, 0))]
771- let fL = fraction(fB, a, fA)
772- let fM = fraction(fw, a, (fL + a))
773- let fN = (fw - fM)
774- let fO = fraction(eW, toBigInt(fN), toBigInt(fB))
775- let fP = toInt(fraction((fK - fO), b, fO))
776- $Tuple4(toInt(fK), ex, cH, fP)
772+ let fN = fraction(eZ, (cl - cm), cm, FLOOR)
773+ let dD = L(ca(H(fM, eb), H(fL, ea)), a)
774+ let eA = [IntegerEntry(ab(), dD), IntegerEntry(ac(height, lastBlock.timestamp), dD), StringEntry(af(dq, ah), bJ(fG, fH, toInt(fN), dD, 0, 0, height, lastBlock.timestamp, 0, 0))]
775+ let fO = fraction(fE, a, fD)
776+ let fP = fraction(fz, a, (fO + a))
777+ let fQ = (fz - fP)
778+ let fR = fraction(eZ, toBigInt(fQ), toBigInt(fE))
779+ let fS = toInt(fraction((fN - fR), b, fR))
780+ $Tuple4(toInt(fN), eA, cI, fS)
777781 }
778782 else throw("Strict value is not equal to itself.")
779783 }
780784 else throw("Strict value is not equal to itself.")
781785 }
782786
783787
784-func fQ (fR,fS,fT,fs,fU,fV) = {
785- let dq = toBase58String(value(bx))
786- let dr = toBase58String(value(by))
787- let ds = toBase58String(value(bz))
788- let fW = bA
789- let fX = bB
790- let fY = bw
791- let dp = if ((fs == bH))
792- then fU
793- else fs
794- let fq = value(fT[0])
795- let dn = value(fq.assetId)
796- let dT = fq.amount
797- let eX = eQ(e, e, e)
798- if ((eX == eX))
788+func fT (fU,fV,fW,fv,fX,fY) = {
789+ let dr = toBase58String(value(bw))
790+ let ds = toBase58String(value(bx))
791+ let dt = toBase58String(value(by))
792+ let fZ = bz
793+ let ga = bA
794+ let gb = bv
795+ let dq = if ((fv == bI))
796+ then fX
797+ else fv
798+ let ft = value(fW[0])
799+ let do = value(ft.assetId)
800+ let dU = ft.amount
801+ let fa = eT(e, e, e)
802+ if ((fa == fa))
799803 then {
800- let dm = toBase58String(fV)
801- if ((dq != toBase58String(dn)))
804+ let dn = toBase58String(fY)
805+ if ((dr != toBase58String(do)))
802806 then throw("Wrong LP")
803807 else {
804- let dx = bX(dr)
805- let dz = bX(ds)
806- let fZ = {
807- let be = invoke(this, "getOneTknV2READONLY", [fR, dT], nil)
808- if ($isInstanceOf(be, "(Int, Int)"))
809- then be
810- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
808+ let dy = bY(ds)
809+ let dA = bY(dt)
810+ let gc = {
811+ let bd = invoke(this, "getOneTknV2READONLY", [fU, dU], nil)
812+ if ($isInstanceOf(bd, "(Int, Int)"))
813+ then bd
814+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
811815 }
812- if ((fZ == fZ))
816+ if ((gc == gc))
813817 then {
814- let cH = fZ._2
815- let ga = fZ._1
816- let gb = if (if ((fS > 0))
817- then (fS > ga)
818+ let cI = gc._2
819+ let gd = gc._1
820+ let ge = if (if ((fV > 0))
821+ then (fV > gd)
818822 else false)
819- then ba(makeString(["amount to receive is less than ", toString(fS)], ""))
820- else ga
821- let gc = if ((fR == dr))
822- then $Tuple4(gb, 0, ((dx - gb) - cH), dz)
823- else if ((fR == ds))
824- then $Tuple4(0, gb, dx, ((dz - gb) - cH))
823+ then aZ(makeString(["amount to receive is less than ", toString(fV)], ""))
824+ else gd
825+ let gf = if ((fU == ds))
826+ then $Tuple4(ge, 0, ((dy - ge) - cI), dA)
827+ else if ((fU == dt))
828+ then $Tuple4(0, ge, dy, ((dA - ge) - cI))
825829 else throw("invalid out asset id")
826- let gd = gc._1
827- let ge = gc._2
828- let fI = gc._3
829- let fJ = gc._4
830- let gf = bZ(I(fJ, fX), I(fI, fW))
831- let gg = M(gf, a)
832- let gh = if ((fR == "WAVES"))
830+ let gg = gf._1
831+ let gh = gf._2
832+ let fL = gf._3
833+ let fM = gf._4
834+ let gi = ca(H(fM, ga), H(fL, fZ))
835+ let gj = L(gi, a)
836+ let gk = if ((fU == "WAVES"))
833837 then unit
834- else fromBase58String(fR)
835- let gi = if ((cH > 0))
836- then [ScriptTransfer(bj, cH, gh)]
838+ else fromBase58String(fU)
839+ let gl = if ((cI > 0))
840+ then [ScriptTransfer(bi, cI, gk)]
837841 else nil
838- let dJ = ([ScriptTransfer(dp, gb, gh), StringEntry(aj(toString(dp), dm), bT(gd, ge, dT, gg, height, lastBlock.timestamp)), IntegerEntry(ac(), gg), IntegerEntry(ad(height, lastBlock.timestamp), gg)] ++ gi)
839- if ((dJ == dJ))
842+ let dK = ([ScriptTransfer(dq, ge, gk), StringEntry(ai(toString(dq), dn), bU(gg, gh, dU, gj, height, lastBlock.timestamp)), IntegerEntry(ab(), gj), IntegerEntry(ac(height, lastBlock.timestamp), gj)] ++ gl)
843+ if ((dK == dK))
840844 then {
841- let gj = invoke(aU, "burn", [dT], [AttachedPayment(dn, dT)])
842- if ((gj == gj))
845+ let gm = invoke(aT, "burn", [dU], [AttachedPayment(do, dU)])
846+ if ((gm == gm))
843847 then {
844- let gk = {
845- let gl = if ((this == bj))
848+ let gn = {
849+ let go = if ((this == bi))
846850 then 0
847- else cH
848- let gm = if ((bo(fR) == by))
851+ else cI
852+ let gp = if ((bn(fU) == bx))
849853 then true
850854 else false
851- if (gm)
852- then $Tuple2(-((ga + gl)), 0)
853- else $Tuple2(0, -((ga + gl)))
855+ if (gp)
856+ then $Tuple2(-((gd + go)), 0)
857+ else $Tuple2(0, -((gd + go)))
854858 }
855- let eZ = gk._1
856- let fa = gk._2
857- let gn = eY(eZ, fa, 0)
858- let go = gn._1
859- let eP = gn._2
860- let gp = fc(eX, eP)
861- if ((gp == gp))
862- then $Tuple2((dJ ++ go), gb)
859+ let fc = gn._1
860+ let fd = gn._2
861+ let gq = fb(fc, fd, 0)
862+ let gr = gq._1
863+ let eS = gq._2
864+ let gs = ff(fa, eS)
865+ if ((gs == gs))
866+ then $Tuple2((dK ++ gr), ge)
863867 else throw("Strict value is not equal to itself.")
864868 }
865869 else throw("Strict value is not equal to itself.")
866870 }
867871 else throw("Strict value is not equal to itself.")
868872 }
869873 else throw("Strict value is not equal to itself.")
870874 }
871875 }
872876 else throw("Strict value is not equal to itself.")
873877 }
874878
875879
876-func gq () = {
877- let gr = aS()
878- let aQ = getString(gr, aa())
879- if ($isInstanceOf(aQ, "String"))
880+func gt () = {
881+ let gu = aR()
882+ let aP = getString(gu, Z())
883+ if ($isInstanceOf(aP, "String"))
880884 then {
881- let aV = aQ
882- fromBase58String(aV)
885+ let aU = aP
886+ fromBase58String(aU)
883887 }
884- else if ($isInstanceOf(aQ, "Unit"))
888+ else if ($isInstanceOf(aP, "Unit"))
885889 then unit
886890 else throw("Match error")
887891 }
888892
889893
890-let gs = throw("Permission denied")
894+let gv = throw("Permission denied")
891895
892-func gt (cX) = {
893- let aQ = gq()
894- if ($isInstanceOf(aQ, "ByteVector"))
896+func gw (cY) = {
897+ let aP = gt()
898+ if ($isInstanceOf(aP, "ByteVector"))
895899 then {
896- let gu = aQ
897- (cX.callerPublicKey == gu)
900+ let gx = aP
901+ (cY.callerPublicKey == gx)
898902 }
899- else if ($isInstanceOf(aQ, "Unit"))
900- then (cX.caller == this)
903+ else if ($isInstanceOf(aP, "Unit"))
904+ then (cY.caller == this)
901905 else throw("Match error")
902906 }
903907
904908
905-func gv (cX) = {
906- let aQ = gq()
907- if ($isInstanceOf(aQ, "ByteVector"))
909+func gy (cY) = {
910+ let aP = gt()
911+ if ($isInstanceOf(aP, "ByteVector"))
908912 then {
909- let gu = aQ
910- if ((cX.callerPublicKey == gu))
913+ let gx = aP
914+ if ((cY.callerPublicKey == gx))
911915 then true
912- else gs
916+ else gv
913917 }
914- else if ($isInstanceOf(aQ, "Unit"))
915- then if ((cX.caller == this))
918+ else if ($isInstanceOf(aP, "Unit"))
919+ then if ((cY.caller == this))
916920 then true
917- else gs
921+ else gv
918922 else throw("Match error")
919923 }
920924
921925
922-func gw (gx,ez,gy) = {
923- let bs = bk()
924- let dr = bs[x]
925- let ds = bs[y]
926- let eA = g
927- let eC = parseBigIntValue(m)
928- let aR = (parseBigIntValue(bg) * eC)
929- let cJ = if ((gx == false))
930- then [(toBigInt(bX(dr)) + gy), toBigInt(bX(ds))]
931- else [(toBigInt(bX(ds)) + gy), toBigInt(bX(dr))]
932- let eB = cJ[0]
933- let aV = eB
934- let cM = (aR * eA)
935- let eD = (((((ez * ez) / (eB * eA)) * ez) * eC) / (cM * eA))
936- let eE = ((aV + ((ez * eC) / cM)) - ez)
937- func cV (cW,eF) = {
938- let gz = cW
939- let eH = gz._1
940- let dk = gz._2
941- if ((dk != unit))
942- then cW
926+func gz (gA,eC,gB) = {
927+ let br = bj()
928+ let ds = br[w]
929+ let dt = br[x]
930+ let eD = g
931+ let eF = parseBigIntValue(l)
932+ let aQ = (parseBigIntValue(bf) * eF)
933+ let cK = if ((gA == false))
934+ then [(toBigInt(bY(ds)) + gB), toBigInt(bY(dt))]
935+ else [(toBigInt(bY(dt)) + gB), toBigInt(bY(ds))]
936+ let eE = cK[0]
937+ let aU = eE
938+ let cN = (aQ * eD)
939+ let eG = (((((eC * eC) / (eE * eD)) * eC) * eF) / (cN * eD))
940+ let eH = ((aU + ((eC * eF) / cN)) - eC)
941+ func cW (cX,eI) = {
942+ let gC = cX
943+ let eK = gC._1
944+ let dl = gC._2
945+ if ((dl != unit))
946+ then cX
943947 else {
944- let eI = (((eH * eH) + eD) / ((g * eH) + eE))
945- let eJ = Y((eI - value(eH)))
946- if ((f >= eJ))
947- then $Tuple2(eI, eF)
948- else $Tuple2(eI, unit)
948+ let eL = (((eK * eK) + eG) / ((g * eK) + eH))
949+ let eM = X((eL - value(eK)))
950+ if ((f >= eM))
951+ then $Tuple2(eL, eI)
952+ else $Tuple2(eL, unit)
949953 }
950954 }
951955
952- let db = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
953- let gA = {
954- let dd = db
955- let de = size(dd)
956- let df = $Tuple2(ez, unit)
957- func dg (dh,di) = if ((di >= de))
958- then dh
959- else cV(dh, dd[di])
956+ let dc = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
957+ let gD = {
958+ let de = dc
959+ let df = size(de)
960+ let dg = $Tuple2(eC, unit)
961+ func dh (di,dj) = if ((dj >= df))
962+ then di
963+ else cW(di, de[dj])
960964
961- func dj (dh,di) = if ((di >= de))
962- then dh
965+ func dk (di,dj) = if ((dj >= df))
966+ then di
963967 else throw("List size exceeds 15")
964968
965- dj(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(dg(df, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
969+ dk(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dh(dg, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
966970 }
967- let eH = gA._1
968- let dk = gA._2
969- if ((dk != unit))
970- then eH
971- else throw(("Y calculation error, Y = " + toString(eH)))
971+ let eK = gD._1
972+ let dl = gD._2
973+ if ((dl != unit))
974+ then eK
975+ else throw(("Y calculation error, Y = " + toString(eK)))
972976 }
973977
974978
975-func gB () = valueOrElse(getBoolean(aU, aH(toString(this))), false)
979+func gE () = valueOrElse(getBoolean(aT, aG(toString(this))), false)
976980
977981
978-@Callable(cX)
979-func calculateAmountOutForSwapREADONLY (gC,gx,gD) = {
980- let gE = if ((gx == false))
982+@Callable(cY)
983+func calculateAmountOutForSwapREADONLY (gF,gA,gG) = {
984+ let gH = if ((gA == false))
981985 then {
982- let gF = aW(this, al())
983- let gy = (toBigInt(bX(aW(this, ak()))) + toBigInt(gC))
984- $Tuple2(gF, gy)
986+ let gI = aV(this, ak())
987+ let gB = (toBigInt(bY(aV(this, aj()))) + toBigInt(gF))
988+ $Tuple2(gI, gB)
985989 }
986990 else {
987- let gF = aW(this, ak())
988- let gy = (toBigInt(bX(aW(this, al()))) + toBigInt(gC))
989- $Tuple2(gF, gy)
991+ let gI = aV(this, aj())
992+ let gB = (toBigInt(bY(aV(this, ak()))) + toBigInt(gF))
993+ $Tuple2(gI, gB)
990994 }
991- let gF = gE._1
992- let gy = gE._2
993- let bs = bk()
994- let dr = bs[x]
995- let ds = bs[y]
996- let cJ = [toBigInt(bX(dr)), toBigInt(bX(ds))]
997- let ez = cI(cJ)
998- let eH = gw(gx, ez, toBigInt(gC))
999- let gG = ((toBigInt(bX(gF)) - eH) - toBigInt(1))
1000- let gH = max([0, toInt(gG)])
1001- let gI = if ((gx == false))
1002- then [((toBigInt(bX(dr)) + toBigInt(gC)) + toBigInt(gD)), (toBigInt(bX(ds)) - gG)]
1003- else [(toBigInt(bX(dr)) - gG), ((toBigInt(bX(ds)) + toBigInt(gC)) + toBigInt(gD))]
1004- let gJ = cI(gI)
1005- let ee = if ((gJ >= ez))
995+ let gI = gH._1
996+ let gB = gH._2
997+ let br = bj()
998+ let ds = br[w]
999+ let dt = br[x]
1000+ let cK = [toBigInt(bY(ds)), toBigInt(bY(dt))]
1001+ let eC = cJ(cK)
1002+ let eK = gz(gA, eC, toBigInt(gF))
1003+ let gJ = ((toBigInt(bY(gI)) - eK) - toBigInt(1))
1004+ let gK = max([0, toInt(gJ)])
1005+ let gL = if ((gA == false))
1006+ then [((toBigInt(bY(ds)) + toBigInt(gF)) + toBigInt(gG)), (toBigInt(bY(dt)) - gJ)]
1007+ else [(toBigInt(bY(ds)) - gJ), ((toBigInt(bY(dt)) + toBigInt(gF)) + toBigInt(gG))]
1008+ let gM = cJ(gL)
1009+ let eh = if ((gM >= eC))
10061010 then true
1007- else throw(makeString(["new D is fewer error", toString(ez), toString(gJ)], "__"))
1008- if ((ee == ee))
1009- then $Tuple2(nil, gH)
1011+ else throw(makeString(["new D is fewer error", toString(eC), toString(gM)], "__"))
1012+ if ((eh == eh))
1013+ then $Tuple2(nil, gK)
10101014 else throw("Strict value is not equal to itself.")
10111015 }
10121016
10131017
10141018
1015-@Callable(cX)
1016-func calculateAmountOutForSwapAndSendTokens (gC,gx,gK,gL,gD) = {
1017- let gM = {
1018- let be = invoke(aU, "getSwapContractREADONLY", nil, nil)
1019- if ($isInstanceOf(be, "String"))
1020- then be
1021- else throw(($getType(be) + " couldn't be cast to String"))
1019+@Callable(cY)
1020+func calculateAmountOutForSwapAndSendTokens (gF,gA,gN,gO,gG) = {
1021+ let gP = {
1022+ let bd = invoke(aT, "getSwapContractREADONLY", nil, nil)
1023+ if ($isInstanceOf(bd, "String"))
1024+ then bd
1025+ else throw(($getType(bd) + " couldn't be cast to String"))
10221026 }
1023- let gN = [if ((value(cX.payments[0]).amount >= gC))
1027+ let gQ = [if ((value(cY.payments[0]).amount >= gF))
10241028 then true
1025- else ba("Wrong amount"), if ((cX.caller == addressFromStringValue(gM)))
1029+ else aZ("Wrong amount"), if ((cY.caller == addressFromStringValue(gP)))
10261030 then true
1027- else ba("Permission denied")]
1028- if ((gN == gN))
1031+ else aZ("Permission denied")]
1032+ if ((gQ == gQ))
10291033 then {
1030- let fq = value(cX.payments[0])
1031- let gO = bq(fq.assetId)
1032- let gP = if ((gx == false))
1034+ let ft = value(cY.payments[0])
1035+ let gR = bp(ft.assetId)
1036+ let gS = if ((gA == false))
10331037 then {
1034- let gF = aW(this, al())
1035- let gy = (bX(gO) - value(cX.payments[0]).amount)
1036- $Tuple2(gF, gy)
1038+ let gI = aV(this, ak())
1039+ let gB = (bY(gR) - value(cY.payments[0]).amount)
1040+ $Tuple2(gI, gB)
10371041 }
10381042 else {
1039- let gF = aW(this, ak())
1040- let gy = (bX(gO) - value(cX.payments[0]).amount)
1041- $Tuple2(gF, gy)
1043+ let gI = aV(this, aj())
1044+ let gB = (bY(gR) - value(cY.payments[0]).amount)
1045+ $Tuple2(gI, gB)
10421046 }
1043- let gF = gP._1
1044- let gy = gP._2
1045- let bs = bk()
1046- let dr = bs[x]
1047- let ds = bs[y]
1048- let cJ = if ((gx == false))
1049- then [(toBigInt(bX(dr)) - toBigInt(value(cX.payments[0]).amount)), toBigInt(bX(ds))]
1050- else [toBigInt(bX(dr)), (toBigInt(bX(ds)) - toBigInt(value(cX.payments[0]).amount))]
1051- let ez = cI(cJ)
1052- let eH = gw(gx, ez, toBigInt(0))
1053- let gG = ((toBigInt(bX(gF)) - eH) - toBigInt(1))
1054- let gH = max([0, toInt(gG)])
1055- let gQ = if ((gH >= gK))
1047+ let gI = gS._1
1048+ let gB = gS._2
1049+ let br = bj()
1050+ let ds = br[w]
1051+ let dt = br[x]
1052+ let cK = if ((gA == false))
1053+ then [(toBigInt(bY(ds)) - toBigInt(value(cY.payments[0]).amount)), toBigInt(bY(dt))]
1054+ else [toBigInt(bY(ds)), (toBigInt(bY(dt)) - toBigInt(value(cY.payments[0]).amount))]
1055+ let eC = cJ(cK)
1056+ let eK = gz(gA, eC, toBigInt(0))
1057+ let gJ = ((toBigInt(bY(gI)) - eK) - toBigInt(1))
1058+ let gK = max([0, toInt(gJ)])
1059+ let gT = if ((gK >= gN))
10561060 then true
10571061 else throw("Exchange result is fewer coins than expected")
1058- if ((gQ == gQ))
1062+ if ((gT == gT))
10591063 then {
1060- let gI = if ((gx == false))
1061- then [(toBigInt(bX(dr)) + toBigInt(gD)), (toBigInt(bX(ds)) - gG)]
1062- else [(toBigInt(bX(dr)) - gG), (toBigInt(bX(ds)) + toBigInt(gD))]
1063- let gJ = cI(gI)
1064- let ee = if ((gJ >= ez))
1064+ let gL = if ((gA == false))
1065+ then [(toBigInt(bY(ds)) + toBigInt(gG)), (toBigInt(bY(dt)) - gJ)]
1066+ else [(toBigInt(bY(ds)) - gJ), (toBigInt(bY(dt)) + toBigInt(gG))]
1067+ let gM = cJ(gL)
1068+ let eh = if ((gM >= eC))
10651069 then true
10661070 else throw("new D is fewer error")
1067- if ((ee == ee))
1068- then $Tuple2([ScriptTransfer(addressFromStringValue(gL), gH, bo(gF))], gH)
1071+ if ((eh == eh))
1072+ then $Tuple2([ScriptTransfer(addressFromStringValue(gO), gK, bn(gI))], gK)
10691073 else throw("Strict value is not equal to itself.")
10701074 }
10711075 else throw("Strict value is not equal to itself.")
10721076 }
10731077 else throw("Strict value is not equal to itself.")
10741078 }
10751079
10761080
10771081
1078-@Callable(cX)
1079-func constructor (Z) = {
1080- let eD = gv(cX)
1081- if ((eD == eD))
1082- then [StringEntry(Z(), Z)]
1082+@Callable(cY)
1083+func constructor (Y) = {
1084+ let eG = gy(cY)
1085+ if ((eG == eG))
1086+ then [StringEntry(Y(), Y)]
10831087 else throw("Strict value is not equal to itself.")
10841088 }
10851089
10861090
10871091
1088-@Callable(cX)
1089-func put (gR,gS) = {
1090- let gT = bC()
1091- let gU = valueOrErrorMessage(addressFromString(gT[D]), "Wr st addr")
1092- let gV = valueOrErrorMessage(addressFromString(gT[F]), "Wr sl addr")
1093- if ((0 > gR))
1092+@Callable(cY)
1093+func put (gU,gV) = {
1094+ let gW = bD()
1095+ let gX = valueOrErrorMessage(addressFromString(gW[C]), "Wr st addr")
1096+ let gY = valueOrErrorMessage(addressFromString(gW[E]), "Wr sl addr")
1097+ if ((0 > gU))
10941098 then throw("Wrong slippage")
1095- else if ((size(cX.payments) != 2))
1099+ else if ((size(cY.payments) != 2))
10961100 then throw("2 pmnts expd")
10971101 else {
1098- let gW = toBigInt(value(cX.payments[0]).amount)
1099- let gX = toBigInt(value(cX.payments[1]).amount)
1100- let eU = (toBigInt(bX(bq(by))) - gW)
1101- if ((eU == eU))
1102+ let gZ = toBigInt(value(cY.payments[0]).amount)
1103+ let ha = toBigInt(value(cY.payments[1]).amount)
1104+ let eX = (toBigInt(bY(bp(bx))) - gZ)
1105+ if ((eX == eX))
11021106 then {
1103- let eV = (toBigInt(bX(bq(bz))) - gX)
1104- if ((eV == eV))
1107+ let eY = (toBigInt(bY(bp(by))) - ha)
1108+ if ((eY == eY))
11051109 then {
1106- let eW = toBigInt(value(assetInfo(bx)).quantity)
1107- if ((eW == eW))
1110+ let eZ = toBigInt(value(assetInfo(bw)).quantity)
1111+ if ((eZ == eZ))
11081112 then {
1109- let eX = eQ(gW, gX, toBigInt(0))
1110- if ((eX == eX))
1113+ let fa = eT(gZ, ha, toBigInt(0))
1114+ if ((fa == fa))
11111115 then {
1112- let gY = fr(toString(cX.caller), toBase58String(cX.transactionId), AttachedPayment(value(cX.payments[0]).assetId, value(cX.payments[0]).amount), cX.payments[1], gR, true, false, true, 0, "")
1113- let er = gY._2
1114- let gZ = gY._7
1115- let dJ = gY._9
1116- let es = gY._10
1117- let et = gY._11
1118- let dr = gY._12
1119- let ds = gY._13
1120- let ed = invoke(aU, "emit", [er], nil)
1121- if ((ed == ed))
1116+ let hb = fu(toString(cY.caller), toBase58String(cY.transactionId), AttachedPayment(value(cY.payments[0]).assetId, value(cY.payments[0]).amount), cY.payments[1], gU, true, false, true, 0, "")
1117+ let eu = hb._2
1118+ let hc = hb._7
1119+ let dK = hb._9
1120+ let ev = hb._10
1121+ let ew = hb._11
1122+ let ds = hb._12
1123+ let dt = hb._13
1124+ let eg = invoke(aT, "emit", [eu], nil)
1125+ if ((eg == eg))
11221126 then {
1123- let ha = {
1124- let aQ = ed
1125- if ($isInstanceOf(aQ, "Address"))
1127+ let hd = {
1128+ let aP = eg
1129+ if ($isInstanceOf(aP, "Address"))
11261130 then {
1127- let hb = aQ
1128- invoke(hb, "emit", [er], nil)
1131+ let he = aP
1132+ invoke(he, "emit", [eu], nil)
11291133 }
11301134 else unit
11311135 }
1132- if ((ha == ha))
1136+ if ((hd == hd))
11331137 then {
1134- let hc = if ((es > 0))
1135- then invoke(gV, "put", nil, [AttachedPayment(dr, es)])
1138+ let hf = if ((ev > 0))
1139+ then invoke(gY, "put", nil, [AttachedPayment(ds, ev)])
11361140 else nil
1137- if ((hc == hc))
1141+ if ((hf == hf))
11381142 then {
1139- let hd = if ((et > 0))
1140- then invoke(gV, "put", nil, [AttachedPayment(ds, et)])
1143+ let hg = if ((ew > 0))
1144+ then invoke(gY, "put", nil, [AttachedPayment(dt, ew)])
11411145 else nil
1142- if ((hd == hd))
1146+ if ((hg == hg))
11431147 then {
1144- let he = if (gS)
1148+ let hh = if (gV)
11451149 then {
1146- let hf = invoke(gU, "stake", nil, [AttachedPayment(gZ, er)])
1147- if ((hf == hf))
1150+ let hi = invoke(gX, "stake", nil, [AttachedPayment(hc, eu)])
1151+ if ((hi == hi))
11481152 then nil
11491153 else throw("Strict value is not equal to itself.")
11501154 }
1151- else [ScriptTransfer(cX.caller, er, gZ)]
1152- let hg = eY(0, 0, 0)
1153- let go = hg._1
1154- let eP = hg._2
1155- let hh = if ((eP >= eX))
1155+ else [ScriptTransfer(cY.caller, eu, hc)]
1156+ let hj = fb(0, 0, 0)
1157+ let gr = hj._1
1158+ let eS = hj._2
1159+ let hk = if ((eS >= fa))
11561160 then true
1157- else ba(makeString(["updated DLp lower than current DLp", toString(eU), toString(eV), toString(eW), toString(eX), toString(eP), toString(es), toString(et)], " "))
1158- if ((hh == hh))
1161+ else aZ(makeString(["updated DLp lower than current DLp", toString(eX), toString(eY), toString(eZ), toString(fa), toString(eS), toString(ev), toString(ew)], " "))
1162+ if ((hk == hk))
11591163 then {
1160- let hi = value(assetInfo(bx)).quantity
1161- if ((hi == hi))
1162- then ((dJ ++ he) ++ go)
1164+ let hl = value(assetInfo(bw)).quantity
1165+ if ((hl == hl))
1166+ then ((dK ++ hh) ++ gr)
11631167 else throw("Strict value is not equal to itself.")
11641168 }
11651169 else throw("Strict value is not equal to itself.")
11661170 }
11671171 else throw("Strict value is not equal to itself.")
11681172 }
11691173 else throw("Strict value is not equal to itself.")
11701174 }
11711175 else throw("Strict value is not equal to itself.")
11721176 }
11731177 else throw("Strict value is not equal to itself.")
11741178 }
11751179 else throw("Strict value is not equal to itself.")
11761180 }
11771181 else throw("Strict value is not equal to itself.")
11781182 }
11791183 else throw("Strict value is not equal to itself.")
11801184 }
11811185 else throw("Strict value is not equal to itself.")
11821186 }
11831187 }
11841188
11851189
11861190
1187-@Callable(cX)
1188-func putOneTknV2 (fS,gS) = {
1189- let hj = {
1190- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1191- if ($isInstanceOf(be, "Boolean"))
1192- then be
1193- else throw(($getType(be) + " couldn't be cast to Boolean"))
1191+@Callable(cY)
1192+func putOneTknV2 (fV,gV) = {
1193+ let hm = {
1194+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1195+ if ($isInstanceOf(bd, "Boolean"))
1196+ then bd
1197+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
11941198 }
1195- let hk = if (if (if (bh())
1199+ let hn = if (if (if (bg())
11961200 then true
1197- else (bw == r))
1201+ else (bv == q))
11981202 then true
1199- else (bw == t))
1203+ else (bv == s))
12001204 then true
1201- else hj
1202- let gN = [if (if (!(hk))
1205+ else hm
1206+ let gQ = [if (if (!(hn))
12031207 then true
1204- else gt(cX))
1208+ else gw(cY))
12051209 then true
1206- else ba("put operation is blocked by admin"), if ((size(cX.payments) == 1))
1210+ else aZ("put operation is blocked by admin"), if ((size(cY.payments) == 1))
12071211 then true
1208- else ba("exactly 1 payment are expected")]
1209- if ((gN == gN))
1212+ else aZ("exactly 1 payment are expected")]
1213+ if ((gQ == gQ))
12101214 then {
1211- let dr = toBase58String(value(by))
1212- let ds = toBase58String(value(bz))
1213- let dq = bx
1214- let fW = bA
1215- let fX = bB
1216- let dp = if ((cX.caller == this))
1217- then cX.originCaller
1218- else cX.caller
1219- let fq = value(cX.payments[0])
1220- let dn = toBase58String(value(fq.assetId))
1221- let dT = fq.amount
1222- let eX = if ((fq.assetId == by))
1223- then eQ(toBigInt(dT), toBigInt(0), toBigInt(0))
1224- else eQ(toBigInt(0), toBigInt(dT), toBigInt(0))
1225- if ((eX == eX))
1215+ let ds = toBase58String(value(bx))
1216+ let dt = toBase58String(value(by))
1217+ let dr = bw
1218+ let fZ = bz
1219+ let ga = bA
1220+ let dq = if ((cY.caller == this))
1221+ then cY.originCaller
1222+ else cY.caller
1223+ let ft = value(cY.payments[0])
1224+ let do = toBase58String(value(ft.assetId))
1225+ let dU = ft.amount
1226+ let fa = if ((ft.assetId == bx))
1227+ then eT(toBigInt(dU), toBigInt(0), toBigInt(0))
1228+ else eT(toBigInt(0), toBigInt(dU), toBigInt(0))
1229+ if ((fa == fa))
12261230 then {
1227- let hl = fv(dT, dn, toString(dp), toBase58String(cX.transactionId), true)
1228- if ((hl == hl))
1231+ let ho = fy(dU, do, toString(dq), toBase58String(cY.transactionId), true)
1232+ if ((ho == ho))
12291233 then {
1230- let cH = hl._3
1231- let dJ = hl._2
1232- let hm = hl._1
1233- let er = if (if ((fS > 0))
1234- then (fS > hm)
1234+ let cI = ho._3
1235+ let dK = ho._2
1236+ let hp = ho._1
1237+ let eu = if (if ((fV > 0))
1238+ then (fV > hp)
12351239 else false)
1236- then ba(makeString(["amount to receive is less than ", toString(fS)], ""))
1237- else hm
1238- let gY = invoke(aU, "emit", [er], nil)
1239- if ((gY == gY))
1240+ then aZ(makeString(["amount to receive is less than ", toString(fV)], ""))
1241+ else hp
1242+ let hb = invoke(aT, "emit", [eu], nil)
1243+ if ((hb == hb))
12401244 then {
1241- let ha = {
1242- let aQ = gY
1243- if ($isInstanceOf(aQ, "Address"))
1245+ let hd = {
1246+ let aP = hb
1247+ if ($isInstanceOf(aP, "Address"))
12441248 then {
1245- let hb = aQ
1246- invoke(hb, "emit", [er], nil)
1249+ let he = aP
1250+ invoke(he, "emit", [eu], nil)
12471251 }
12481252 else unit
12491253 }
1250- if ((ha == ha))
1254+ if ((hd == hd))
12511255 then {
1252- let he = if (gS)
1256+ let hh = if (gV)
12531257 then {
1254- let hf = invoke(bE, "stakeFor", [toString(cX.caller)], [AttachedPayment(dq, er)])
1255- if ((hf == hf))
1258+ let hi = invoke(bF, "stakeFor", [toString(cY.caller)], [AttachedPayment(dr, eu)])
1259+ if ((hi == hi))
12561260 then nil
12571261 else throw("Strict value is not equal to itself.")
12581262 }
1259- else [ScriptTransfer(cX.caller, er, dq)]
1260- let gi = if ((cH > 0))
1261- then [ScriptTransfer(bj, cH, fromBase58String(dn))]
1263+ else [ScriptTransfer(cY.caller, eu, dr)]
1264+ let gl = if ((cI > 0))
1265+ then [ScriptTransfer(bi, cI, fromBase58String(do))]
12621266 else nil
1263- let hn = if ((this == bj))
1267+ let hq = if ((this == bi))
12641268 then $Tuple2(0, 0)
12651269 else {
1266- let ho = if ((fq.assetId == by))
1270+ let hr = if ((ft.assetId == bx))
12671271 then true
12681272 else false
1269- if (ho)
1270- then $Tuple2(-(cH), 0)
1271- else $Tuple2(0, -(cH))
1273+ if (hr)
1274+ then $Tuple2(-(cI), 0)
1275+ else $Tuple2(0, -(cI))
12721276 }
1273- let eZ = hn._1
1274- let fa = hn._2
1275- let hp = eY(eZ, fa, 0)
1276- let go = hp._1
1277- let eP = hp._2
1278- let gp = fc(eX, eP)
1279- if ((gp == gp))
1280- then $Tuple2((((dJ ++ he) ++ gi) ++ go), er)
1277+ let fc = hq._1
1278+ let fd = hq._2
1279+ let hs = fb(fc, fd, 0)
1280+ let gr = hs._1
1281+ let eS = hs._2
1282+ let gs = ff(fa, eS)
1283+ if ((gs == gs))
1284+ then $Tuple2((((dK ++ hh) ++ gl) ++ gr), eu)
12811285 else throw("Strict value is not equal to itself.")
12821286 }
12831287 else throw("Strict value is not equal to itself.")
12841288 }
12851289 else throw("Strict value is not equal to itself.")
12861290 }
12871291 else throw("Strict value is not equal to itself.")
12881292 }
12891293 else throw("Strict value is not equal to itself.")
12901294 }
12911295 else throw("Strict value is not equal to itself.")
12921296 }
12931297
12941298
12951299
1296-@Callable(cX)
1297-func putForFree (hq) = if ((0 > hq))
1300+@Callable(cY)
1301+func putForFree (ht) = if ((0 > ht))
12981302 then throw("Wrong slpg")
1299- else if ((size(cX.payments) != 2))
1303+ else if ((size(cY.payments) != 2))
13001304 then throw("2 pmnts expd")
13011305 else {
1302- let hr = fr(toString(cX.caller), toBase58String(cX.transactionId), AttachedPayment(value(cX.payments[0]).assetId, value(cX.payments[0]).amount), cX.payments[1], hq, false, false, true, 0, "")
1303- let dJ = hr._9
1304- let gW = toBigInt(value(cX.payments[0]).amount)
1305- let gX = toBigInt(value(cX.payments[1]).amount)
1306- let eX = eQ(gW, gX, toBigInt(0))
1307- if ((eX == eX))
1306+ let hu = fu(toString(cY.caller), toBase58String(cY.transactionId), AttachedPayment(value(cY.payments[0]).assetId, value(cY.payments[0]).amount), cY.payments[1], ht, false, false, true, 0, "")
1307+ let dK = hu._9
1308+ let gZ = toBigInt(value(cY.payments[0]).amount)
1309+ let ha = toBigInt(value(cY.payments[1]).amount)
1310+ let fa = eT(gZ, ha, toBigInt(0))
1311+ if ((fa == fa))
13081312 then {
1309- let hs = eY(0, 0, 0)
1310- let go = hs._1
1311- let eP = hs._2
1312- let gp = fc(eX, eP)
1313- if ((gp == gp))
1314- then (dJ ++ go)
1313+ let hv = fb(0, 0, 0)
1314+ let gr = hv._1
1315+ let eS = hv._2
1316+ let gs = ff(fa, eS)
1317+ if ((gs == gs))
1318+ then (dK ++ gr)
13151319 else throw("Strict value is not equal to itself.")
13161320 }
13171321 else throw("Strict value is not equal to itself.")
13181322 }
13191323
13201324
13211325
1322-@Callable(cX)
1326+@Callable(cY)
13231327 func get () = {
1324- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1325- if ((eX == eX))
1328+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1329+ if ((fa == fa))
13261330 then {
1327- let ed = fp(cX)
1328- let ht = ed._1
1329- let dI = ed._2
1330- let dT = ed._3
1331- let dn = ed._4
1332- let dJ = ed._5
1333- let eE = invoke(aU, "burn", [dT], [AttachedPayment(dn, dT)])
1334- if ((eE == eE))
1331+ let eg = fs(cY)
1332+ let hw = eg._1
1333+ let dJ = eg._2
1334+ let dU = eg._3
1335+ let do = eg._4
1336+ let dK = eg._5
1337+ let eH = invoke(aT, "burn", [dU], [AttachedPayment(do, dU)])
1338+ if ((eH == eH))
13351339 then {
1336- let hu = eY(-(ht), -(dI), 0)
1337- let go = hu._1
1338- let eP = hu._2
1339- let gp = fc(eX, eP)
1340- if ((gp == gp))
1341- then (dJ ++ go)
1340+ let hx = fb(-(hw), -(dJ), 0)
1341+ let gr = hx._1
1342+ let eS = hx._2
1343+ let gs = ff(fa, eS)
1344+ if ((gs == gs))
1345+ then (dK ++ gr)
13421346 else throw("Strict value is not equal to itself.")
13431347 }
13441348 else throw("Strict value is not equal to itself.")
13451349 }
13461350 else throw("Strict value is not equal to itself.")
13471351 }
13481352
13491353
13501354
1351-@Callable(cX)
1352-func getOneTknV2 (fR,fS) = {
1353- let hj = {
1354- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1355- if ($isInstanceOf(be, "Boolean"))
1356- then be
1357- else throw(($getType(be) + " couldn't be cast to Boolean"))
1355+@Callable(cY)
1356+func getOneTknV2 (fU,fV) = {
1357+ let hm = {
1358+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1359+ if ($isInstanceOf(bd, "Boolean"))
1360+ then bd
1361+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
13581362 }
1359- let hv = if (if (bh())
1363+ let hy = if (if (bg())
13601364 then true
1361- else (bw == t))
1365+ else (bv == s))
13621366 then true
1363- else hj
1364- let gN = [if (if (!(hv))
1367+ else hm
1368+ let gQ = [if (if (!(hy))
13651369 then true
1366- else gt(cX))
1370+ else gw(cY))
13671371 then true
1368- else ba("get operation is blocked by admin"), if ((size(cX.payments) == 1))
1372+ else aZ("get operation is blocked by admin"), if ((size(cY.payments) == 1))
13691373 then true
1370- else ba("exactly 1 payment are expected")]
1371- if ((gN == gN))
1374+ else aZ("exactly 1 payment are expected")]
1375+ if ((gQ == gQ))
13721376 then {
1373- let hw = fQ(fR, fS, cX.payments, cX.caller, cX.originCaller, cX.transactionId)
1374- let dJ = hw._1
1375- let gb = hw._2
1376- $Tuple2(dJ, gb)
1377+ let hz = fT(fU, fV, cY.payments, cY.caller, cY.originCaller, cY.transactionId)
1378+ let dK = hz._1
1379+ let ge = hz._2
1380+ $Tuple2(dK, ge)
13771381 }
13781382 else throw("Strict value is not equal to itself.")
13791383 }
13801384
13811385
13821386
1383-@Callable(cX)
1387+@Callable(cY)
13841388 func refreshDLp () = {
1385- let hx = valueOrElse(getInteger(at), 0)
1386- let hy = if (((height - hx) >= aw))
1389+ let hA = valueOrElse(getInteger(as), 0)
1390+ let hB = if (((height - hA) >= av))
13871391 then unit
1388- else ba(makeString([toString(aw), " blocks have not passed since the previous call"], ""))
1389- if ((hy == hy))
1392+ else aZ(makeString([toString(av), " blocks have not passed since the previous call"], ""))
1393+ if ((hB == hB))
13901394 then {
1391- let fj = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, as), "0")), bc("invalid dLp"))
1392- let hz = eY(0, 0, 0)
1393- let hA = hz._1
1394- let eP = hz._2
1395- let fb = if ((fj != eP))
1396- then hA
1397- else ba("nothing to refresh")
1398- $Tuple2(fb, toString(eP))
1395+ let fm = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ar), "0")), bb("invalid dLp"))
1396+ let hC = fb(0, 0, 0)
1397+ let hD = hC._1
1398+ let eS = hC._2
1399+ let fe = if ((fm != eS))
1400+ then hD
1401+ else aZ("nothing to refresh")
1402+ $Tuple2(fe, toString(eS))
13991403 }
14001404 else throw("Strict value is not equal to itself.")
14011405 }
14021406
14031407
14041408
1405-@Callable(cX)
1406-func getOneTknV2READONLY (fR,hB) = {
1407- let dr = toBase58String(value(by))
1408- let ds = toBase58String(value(bz))
1409- let dq = toBase58String(value(bx))
1410- let cJ = [toBigInt(bX(dr)), toBigInt(bX(ds))]
1411- let eO = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dq)), "invalid lp asset").quantity)
1412- let cl = cI(cJ)
1413- let ck = (cl - fraction(toBigInt(hB), cl, eO))
1414- let hC = if ((fR == dr))
1409+@Callable(cY)
1410+func getOneTknV2READONLY (fU,hE) = {
1411+ let ds = toBase58String(value(bx))
1412+ let dt = toBase58String(value(by))
1413+ let dr = toBase58String(value(bw))
1414+ let cK = [toBigInt(bY(ds)), toBigInt(bY(dt))]
1415+ let eR = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(dr)), "invalid lp asset").quantity)
1416+ let cm = cJ(cK)
1417+ let cl = (cm - fraction(toBigInt(hE), cm, eR))
1418+ let hF = if ((fU == ds))
14151419 then 0
1416- else if ((fR == ds))
1420+ else if ((fU == dt))
14171421 then 1
14181422 else throw("invalid out asset id")
1419- let hD = ey(cJ, hC, ck)
1420- let gG = (cJ[hC] - hD)
1421- let gH = max([0, toInt((gG - f))])
1422- let hE = cF(gH, bf)
1423- let ga = hE._1
1424- let cH = hE._2
1425- $Tuple2(nil, $Tuple2(ga, cH))
1423+ let hG = eB(cK, hF, cl)
1424+ let gJ = (cK[hF] - hG)
1425+ let gK = max([0, toInt((gJ - f))])
1426+ let hH = cG(gK, be)
1427+ let gd = hH._1
1428+ let cI = hH._2
1429+ $Tuple2(nil, $Tuple2(gd, cI))
14261430 }
14271431
14281432
14291433
1430-@Callable(cX)
1431-func getOneTknV2WithBonusREADONLY (fR,hB) = {
1432- let dr = toBase58String(value(by))
1433- let ds = toBase58String(value(bz))
1434- let dq = toBase58String(value(bx))
1435- let dx = bX(dr)
1436- let dz = bX(ds)
1437- let hF = {
1438- let be = invoke(this, "getOneTknV2READONLY", [fR, hB], nil)
1439- if ($isInstanceOf(be, "(Int, Int)"))
1440- then be
1441- else throw(($getType(be) + " couldn't be cast to (Int, Int)"))
1434+@Callable(cY)
1435+func getOneTknV2WithBonusREADONLY (fU,hE) = {
1436+ let ds = toBase58String(value(bx))
1437+ let dt = toBase58String(value(by))
1438+ let dr = toBase58String(value(bw))
1439+ let dy = bY(ds)
1440+ let dA = bY(dt)
1441+ let hI = {
1442+ let bd = invoke(this, "getOneTknV2READONLY", [fU, hE], nil)
1443+ if ($isInstanceOf(bd, "(Int, Int)"))
1444+ then bd
1445+ else throw(($getType(bd) + " couldn't be cast to (Int, Int)"))
14421446 }
1443- let ga = hF._1
1444- let cH = hF._2
1445- let ed = dl("", dq, hB, this)
1446- let dH = ed._1
1447- let dI = ed._2
1448- let hG = (dH + dI)
1449- let fP = if ((hG == 0))
1450- then if ((ga == 0))
1447+ let gd = hI._1
1448+ let cI = hI._2
1449+ let eg = dm("", dr, hE, this)
1450+ let dI = eg._1
1451+ let dJ = eg._2
1452+ let hJ = (dI + dJ)
1453+ let fS = if ((hJ == 0))
1454+ then if ((gd == 0))
14511455 then 0
14521456 else throw("bonus calculation error")
1453- else fraction((ga - hG), a, hG)
1454- $Tuple2(nil, $Tuple3(ga, cH, fP))
1457+ else fraction((gd - hJ), a, hJ)
1458+ $Tuple2(nil, $Tuple3(gd, cI, fS))
14551459 }
14561460
14571461
14581462
1459-@Callable(cX)
1460-func getNoLess (hH,hI) = {
1461- let ed = fp(cX)
1462- let dH = ed._1
1463- let dI = ed._2
1464- let dT = ed._3
1465- let dn = ed._4
1466- let dJ = ed._5
1467- if ((hH > dH))
1468- then throw(((("Failed: " + toString(dH)) + " < ") + toString(hH)))
1469- else if ((hI > dI))
1470- then throw(((("Failed: " + toString(dI)) + " < ") + toString(hI)))
1463+@Callable(cY)
1464+func getNoLess (hK,hL) = {
1465+ let eg = fs(cY)
1466+ let dI = eg._1
1467+ let dJ = eg._2
1468+ let dU = eg._3
1469+ let do = eg._4
1470+ let dK = eg._5
1471+ if ((hK > dI))
1472+ then throw(((("Failed: " + toString(dI)) + " < ") + toString(hK)))
1473+ else if ((hL > dJ))
1474+ then throw(((("Failed: " + toString(dJ)) + " < ") + toString(hL)))
14711475 else {
1472- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1473- if ((eX == eX))
1476+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1477+ if ((fa == fa))
14741478 then {
1475- let hJ = invoke(aU, "burn", [dT], [AttachedPayment(dn, dT)])
1476- if ((hJ == hJ))
1479+ let hM = invoke(aT, "burn", [dU], [AttachedPayment(do, dU)])
1480+ if ((hM == hM))
14771481 then {
1478- let hK = eY(-(dH), -(dI), 0)
1479- let go = hK._1
1480- let eP = hK._2
1481- let gp = fc(eX, eP)
1482- if ((gp == gp))
1483- then (dJ ++ go)
1482+ let hN = fb(-(dI), -(dJ), 0)
1483+ let gr = hN._1
1484+ let eS = hN._2
1485+ let gs = ff(fa, eS)
1486+ if ((gs == gs))
1487+ then (dK ++ gr)
14841488 else throw("Strict value is not equal to itself.")
14851489 }
14861490 else throw("Strict value is not equal to itself.")
14871491 }
14881492 else throw("Strict value is not equal to itself.")
14891493 }
14901494 }
14911495
14921496
14931497
1494-@Callable(cX)
1495-func unstakeAndGet (cG) = {
1496- let hL = if ((size(cX.payments) != 0))
1498+@Callable(cY)
1499+func unstakeAndGet (cH) = {
1500+ let hO = if ((size(cY.payments) != 0))
14971501 then throw("No pmnts expd")
14981502 else true
1499- if ((hL == hL))
1503+ if ((hO == hO))
15001504 then {
1501- let hM = bC()
1502- let gZ = bx
1503- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1504- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1505- if ((eX == eX))
1505+ let hP = bD()
1506+ let hc = bw
1507+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1508+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1509+ if ((fa == fa))
15061510 then {
1507- let hO = invoke(hN, "unstake", [toBase58String(gZ), cG], nil)
1508- if ((hO == hO))
1511+ let hR = invoke(hQ, "unstake", [toBase58String(hc), cH], nil)
1512+ if ((hR == hR))
15091513 then {
1510- let ed = dl(toBase58String(cX.transactionId), toBase58String(gZ), cG, cX.caller)
1511- let dH = ed._1
1512- let dI = ed._2
1513- let dv = parseIntValue(ed._9)
1514- let dJ = ed._10
1515- let hP = if (if (bh())
1514+ let eg = dm(toBase58String(cY.transactionId), toBase58String(hc), cH, cY.caller)
1515+ let dI = eg._1
1516+ let dJ = eg._2
1517+ let dw = parseIntValue(eg._9)
1518+ let dK = eg._10
1519+ let hS = if (if (bg())
15161520 then true
1517- else (dv == t))
1518- then throw(("Blocked: " + toString(dv)))
1521+ else (dw == s))
1522+ then throw(("Blocked: " + toString(dw)))
15191523 else true
1520- if ((hP == hP))
1524+ if ((hS == hS))
15211525 then {
1522- let hQ = invoke(aU, "burn", [cG], [AttachedPayment(gZ, cG)])
1523- if ((hQ == hQ))
1526+ let hT = invoke(aT, "burn", [cH], [AttachedPayment(hc, cH)])
1527+ if ((hT == hT))
15241528 then {
1525- let hR = eY(-(dH), -(dI), 0)
1526- let go = hR._1
1527- let eP = hR._2
1528- let gp = fc(eX, eP)
1529- if ((gp == gp))
1530- then (dJ ++ go)
1529+ let hU = fb(-(dI), -(dJ), 0)
1530+ let gr = hU._1
1531+ let eS = hU._2
1532+ let gs = ff(fa, eS)
1533+ if ((gs == gs))
1534+ then (dK ++ gr)
15311535 else throw("Strict value is not equal to itself.")
15321536 }
15331537 else throw("Strict value is not equal to itself.")
15341538 }
15351539 else throw("Strict value is not equal to itself.")
15361540 }
15371541 else throw("Strict value is not equal to itself.")
15381542 }
15391543 else throw("Strict value is not equal to itself.")
15401544 }
15411545 else throw("Strict value is not equal to itself.")
15421546 }
15431547
15441548
15451549
1546-@Callable(cX)
1547-func unstakeAndGetNoLess (hS,hT,hI) = {
1548- let hv = if (bh())
1550+@Callable(cY)
1551+func unstakeAndGetNoLess (hV,hW,hL) = {
1552+ let hy = if (bg())
15491553 then true
1550- else (bw == t)
1551- let gN = [if (!(hv))
1554+ else (bv == s)
1555+ let gQ = [if (!(hy))
15521556 then true
1553- else throw("get operation is blocked by admin"), if ((size(cX.payments) == 0))
1557+ else throw("get operation is blocked by admin"), if ((size(cY.payments) == 0))
15541558 then true
15551559 else throw("no payments are expected")]
1556- if ((gN == gN))
1560+ if ((gQ == gQ))
15571561 then {
1558- let eX = eQ(toBigInt(0), toBigInt(0), toBigInt(0))
1559- if ((eX == eX))
1562+ let fa = eT(toBigInt(0), toBigInt(0), toBigInt(0))
1563+ if ((fa == fa))
15601564 then {
1561- let hO = invoke(bE, "unstake", [toBase58String(bx), hS], nil)
1562- if ((hO == hO))
1565+ let hR = invoke(bF, "unstake", [toBase58String(bw), hV], nil)
1566+ if ((hR == hR))
15631567 then {
1564- let hU = dl(toBase58String(cX.transactionId), toBase58String(bx), hS, cX.caller)
1565- let dH = hU._1
1566- let dI = hU._2
1567- let dJ = hU._10
1568- let hV = [if ((dH >= hT))
1568+ let hX = dm(toBase58String(cY.transactionId), toBase58String(bw), hV, cY.caller)
1569+ let dI = hX._1
1570+ let dJ = hX._2
1571+ let dK = hX._10
1572+ let hY = [if ((dI >= hW))
15691573 then true
1570- else throw(makeString(["amount asset amount to receive is less than ", toString(hT)], "")), if ((dI >= hI))
1574+ else throw(makeString(["amount asset amount to receive is less than ", toString(hW)], "")), if ((dJ >= hL))
15711575 then true
1572- else throw(makeString(["price asset amount to receive is less than ", toString(hI)], ""))]
1573- if ((hV == hV))
1576+ else throw(makeString(["price asset amount to receive is less than ", toString(hL)], ""))]
1577+ if ((hY == hY))
15741578 then {
1575- let hJ = invoke(aU, "burn", [hS], [AttachedPayment(bx, hS)])
1576- if ((hJ == hJ))
1579+ let hM = invoke(aT, "burn", [hV], [AttachedPayment(bw, hV)])
1580+ if ((hM == hM))
15771581 then {
1578- let hW = eY(-(dH), -(dI), 0)
1579- let go = hW._1
1580- let eP = hW._2
1581- let gp = fc(eX, eP)
1582- if ((gp == gp))
1583- then (dJ ++ go)
1582+ let hZ = fb(-(dI), -(dJ), 0)
1583+ let gr = hZ._1
1584+ let eS = hZ._2
1585+ let gs = ff(fa, eS)
1586+ if ((gs == gs))
1587+ then (dK ++ gr)
15841588 else throw("Strict value is not equal to itself.")
15851589 }
15861590 else throw("Strict value is not equal to itself.")
15871591 }
15881592 else throw("Strict value is not equal to itself.")
15891593 }
15901594 else throw("Strict value is not equal to itself.")
15911595 }
15921596 else throw("Strict value is not equal to itself.")
15931597 }
15941598 else throw("Strict value is not equal to itself.")
15951599 }
15961600
15971601
15981602
1599-@Callable(cX)
1600-func unstakeAndGetOneTknV2 (hS,fR,fS) = {
1601- let hj = {
1602- let be = invoke(aU, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1603- if ($isInstanceOf(be, "Boolean"))
1604- then be
1605- else throw(($getType(be) + " couldn't be cast to Boolean"))
1603+@Callable(cY)
1604+func unstakeAndGetOneTknV2 (hV,fU,fV) = {
1605+ let hm = {
1606+ let bd = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1607+ if ($isInstanceOf(bd, "Boolean"))
1608+ then bd
1609+ else throw(($getType(bd) + " couldn't be cast to Boolean"))
16061610 }
1607- let hv = if (if (bh())
1611+ let hy = if (if (bg())
16081612 then true
1609- else (bw == t))
1613+ else (bv == s))
16101614 then true
1611- else hj
1612- let gN = [if (if (!(hv))
1615+ else hm
1616+ let gQ = [if (if (!(hy))
16131617 then true
1614- else gt(cX))
1618+ else gw(cY))
16151619 then true
1616- else ba("get operation is blocked by admin"), if ((size(cX.payments) == 0))
1620+ else aZ("get operation is blocked by admin"), if ((size(cY.payments) == 0))
16171621 then true
1618- else ba("no payments are expected")]
1619- if ((gN == gN))
1622+ else aZ("no payments are expected")]
1623+ if ((gQ == gQ))
16201624 then {
1621- let hM = bC()
1622- let gZ = bx
1623- let hN = valueOrErrorMessage(addressFromString(hM[D]), "Wr st addr")
1624- let dp = cX.caller
1625- let hX = this
1626- let hO = invoke(hN, "unstakeINTERNAL", [gZ, hS, dp.bytes, hX.bytes], nil)
1627- if ((hO == hO))
1625+ let hP = bD()
1626+ let hc = bw
1627+ let hQ = valueOrErrorMessage(addressFromString(hP[C]), "Wr st addr")
1628+ let dq = cY.caller
1629+ let ia = this
1630+ let hR = invoke(hQ, "unstakeINTERNAL", [hc, hV, dq.bytes, ia.bytes], nil)
1631+ if ((hR == hR))
16281632 then {
1629- let hY = fQ(fR, fS, [AttachedPayment(gZ, hS)], cX.caller, cX.originCaller, cX.transactionId)
1630- let dJ = hY._1
1631- let gb = hY._2
1632- $Tuple2(dJ, gb)
1633+ let ib = fT(fU, fV, [AttachedPayment(hc, hV)], cY.caller, cY.originCaller, cY.transactionId)
1634+ let dK = ib._1
1635+ let ge = ib._2
1636+ $Tuple2(dK, ge)
16331637 }
16341638 else throw("Strict value is not equal to itself.")
16351639 }
16361640 else throw("Strict value is not equal to itself.")
16371641 }
16381642
16391643
16401644
1641-@Callable(cX)
1642-func putOneTknV2WithBonusREADONLY (hZ,ia) = {
1643- let ib = fv(hZ, ia, "", "", true)
1644- let fK = ib._1
1645- let dJ = ib._2
1646- let cH = ib._3
1647- let fP = ib._4
1648- $Tuple2(nil, $Tuple3(fK, cH, fP))
1645+@Callable(cY)
1646+func putOneTknV2WithBonusREADONLY (ic,id) = {
1647+ let ie = fy(ic, id, "", "", true)
1648+ let fN = ie._1
1649+ let dK = ie._2
1650+ let cI = ie._3
1651+ let fS = ie._4
1652+ $Tuple2(nil, $Tuple3(fN, cI, fS))
16491653 }
16501654
16511655
16521656
1653-@Callable(cX)
1654-func putOneTknV2WithoutTakeFeeREADONLY (hZ,ia) = {
1655- let ic = fv(hZ, ia, "", "", false)
1656- let fK = ic._1
1657- let dJ = ic._2
1658- let cH = ic._3
1659- let fP = ic._4
1660- $Tuple2(nil, $Tuple3(fK, cH, fP))
1657+@Callable(cY)
1658+func putOneTknV2WithoutTakeFeeREADONLY (ic,id) = {
1659+ let if = fy(ic, id, "", "", false)
1660+ let fN = if._1
1661+ let dK = if._2
1662+ let cI = if._3
1663+ let fS = if._4
1664+ $Tuple2(nil, $Tuple3(fN, cI, fS))
16611665 }
16621666
16631667
16641668
1665-@Callable(cX)
1666-func activate (id,ie) = if ((toString(cX.caller) != toString(aU)))
1669+@Callable(cY)
1670+func activate (ig,ih) = if ((toString(cY.caller) != toString(aT)))
16671671 then throw("denied")
1668- else $Tuple2([StringEntry(ak(), id), StringEntry(al(), ie), StringEntry(am(), toString(l))], "success")
1672+ else $Tuple2([StringEntry(aj(), ig), StringEntry(ak(), ih)], "success")
16691673
16701674
16711675
1672-@Callable(cX)
1673-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bk())
1676+@Callable(cY)
1677+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bj())
16741678
16751679
16761680
1677-@Callable(cX)
1678-func getAccBalanceWrapperREADONLY (bY) = $Tuple2(nil, bX(bY))
1681+@Callable(cY)
1682+func getAccBalanceWrapperREADONLY (bZ) = $Tuple2(nil, bY(bZ))
16791683
16801684
16811685
1682-@Callable(cX)
1683-func calcPricesWrapperREADONLY (cr,cs,cw) = {
1684- let if = cv(cr, cs, cw)
1685- $Tuple2(nil, [toString(if[0]), toString(if[1]), toString(if[2])])
1686+@Callable(cY)
1687+func calcPricesWrapperREADONLY (cs,ct,cx) = {
1688+ let ii = cw(cs, ct, cx)
1689+ $Tuple2(nil, [toString(ii[0]), toString(ii[1]), toString(ii[2])])
16861690 }
16871691
16881692
16891693
1690-@Callable(cX)
1691-func fromX18WrapperREADONLY (N,ig) = $Tuple2(nil, M(parseBigIntValue(N), ig))
1694+@Callable(cY)
1695+func fromX18WrapperREADONLY (M,ij) = $Tuple2(nil, L(parseBigIntValue(M), ij))
16921696
16931697
16941698
1695-@Callable(cX)
1696-func toX18WrapperREADONLY (J,K) = $Tuple2(nil, toString(I(J, K)))
1699+@Callable(cY)
1700+func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
16971701
16981702
16991703
1700-@Callable(cX)
1701-func calcPriceBigIntWrapperREADONLY (ca,cb) = $Tuple2(nil, toString(bZ(parseBigIntValue(ca), parseBigIntValue(cb))))
1704+@Callable(cY)
1705+func calcPriceBigIntWrapperREADONLY (cb,cc) = $Tuple2(nil, toString(ca(parseBigIntValue(cb), parseBigIntValue(cc))))
17021706
17031707
17041708
1705-@Callable(cX)
1706-func estimatePutOperationWrapperREADONLY (dm,cg,dL,dM,dN,dO,ih,dP,dQ) = $Tuple2(nil, dK(dm, cg, dL, dM, dN, dO, ih, dP, dQ, true, false, 0, ""))
1709+@Callable(cY)
1710+func estimatePutOperationWrapperREADONLY (dn,ch,dM,dN,dO,dP,ik,dQ,dR) = $Tuple2(nil, dL(dn, ch, dM, dN, dO, dP, ik, dQ, dR, true, false, 0, ""))
17071711
17081712
17091713
1710-@Callable(cX)
1711-func estimateGetOperationWrapperREADONLY (dm,ii,do,ih) = {
1712- let ed = dl(dm, ii, do, addressFromStringValue(ih))
1713- $Tuple2(nil, $Tuple10(ed._1, ed._2, ed._3, ed._4, ed._5, ed._6, ed._7, toString(ed._8), ed._9, ed._10))
1714+@Callable(cY)
1715+func estimateGetOperationWrapperREADONLY (dn,il,dp,ik) = {
1716+ let eg = dm(dn, il, dp, addressFromStringValue(ik))
1717+ $Tuple2(nil, $Tuple10(eg._1, eg._2, eg._3, eg._4, eg._5, eg._6, eg._7, toString(eg._8), eg._9, eg._10))
17141718 }
17151719
17161720
17171721
1718-@Callable(cX)
1722+@Callable(cY)
17191723 func changeAmp () = {
1720- let ij = invoke(aU, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1721- let ik = {
1722- let aQ = ij
1723- if ($isInstanceOf(aQ, "List[Any]"))
1724+ let im = invoke(aT, "getChangeAmpConfigREADONLY", [toString(this)], nil)
1725+ let in = {
1726+ let aP = im
1727+ if ($isInstanceOf(aP, "List[Any]"))
17241728 then {
1725- let il = aQ
1729+ let io = aP
17261730 $Tuple3({
1727- let be = il[0]
1728- if ($isInstanceOf(be, "Int"))
1729- then be
1730- else throw(($getType(be) + " couldn't be cast to Int"))
1731+ let bd = io[0]
1732+ if ($isInstanceOf(bd, "Int"))
1733+ then bd
1734+ else throw(($getType(bd) + " couldn't be cast to Int"))
17311735 }, {
1732- let be = il[1]
1733- if ($isInstanceOf(be, "Int"))
1734- then be
1735- else throw(($getType(be) + " couldn't be cast to Int"))
1736+ let bd = io[1]
1737+ if ($isInstanceOf(bd, "Int"))
1738+ then bd
1739+ else throw(($getType(bd) + " couldn't be cast to Int"))
17361740 }, {
1737- let be = il[2]
1738- if ($isInstanceOf(be, "Int"))
1739- then be
1740- else throw(($getType(be) + " couldn't be cast to Int"))
1741+ let bd = io[2]
1742+ if ($isInstanceOf(bd, "Int"))
1743+ then bd
1744+ else throw(($getType(bd) + " couldn't be cast to Int"))
17411745 })
17421746 }
1743- else ba("invalid entry type")
1747+ else aZ("invalid entry type")
17441748 }
1745- let im = ik._1
1746- let in = ik._2
1747- let io = ik._3
1748- let ip = parseIntValue(getStringValue(am()))
1749- let iq = (ip + in)
1750- let ir = if ((0 > in))
1751- then if ((io > iq))
1752- then io
1753- else iq
1754- else if ((iq > io))
1755- then io
1756- else iq
1757- let is = valueOrElse(getInteger(ap()), 0)
1758- let it = (is + im)
1759- let gN = [if ((height > it))
1749+ let ip = in._1
1750+ let iq = in._2
1751+ let ir = in._3
1752+ let is = parseIntValue(getStringValue(al()))
1753+ let it = (is + iq)
1754+ let iu = if ((0 > iq))
1755+ then if ((ir > it))
1756+ then ir
1757+ else it
1758+ else if ((it > ir))
1759+ then ir
1760+ else it
1761+ let iv = valueOrElse(getInteger(ao()), 0)
1762+ let iw = (iv + ip)
1763+ let gQ = [if ((height > iw))
17601764 then true
1761- else ba("try again in few blocks"), if ((ip != ir))
1765+ else aZ("try again in few blocks"), if ((is != iu))
17621766 then true
1763- else ba("already reached target")]
1764- if ((gN == gN))
1765- then [IntegerEntry(ap(), height), StringEntry(am(), toString(ir)), StringEntry(an(height), toString(ir))]
1767+ else aZ("already reached target")]
1768+ if ((gQ == gQ))
1769+ then [IntegerEntry(ao(), height), StringEntry(al(), toString(iu)), StringEntry(am(height), toString(iu))]
17661770 else throw("Strict value is not equal to itself.")
17671771 }
17681772
17691773
1770-@Verifier(iu)
1771-func iv () = {
1772- let iw = {
1773- let aQ = gq()
1774- if ($isInstanceOf(aQ, "ByteVector"))
1774+@Verifier(ix)
1775+func iy () = {
1776+ let iz = {
1777+ let aP = gt()
1778+ if ($isInstanceOf(aP, "ByteVector"))
17751779 then {
1776- let gu = aQ
1777- gu
1780+ let gx = aP
1781+ gx
17781782 }
1779- else if ($isInstanceOf(aQ, "Unit"))
1780- then iu.senderPublicKey
1783+ else if ($isInstanceOf(aP, "Unit"))
1784+ then ix.senderPublicKey
17811785 else throw("Match error")
17821786 }
1783- let aQ = iu
1784- if ($isInstanceOf(aQ, "Order"))
1787+ let aP = ix
1788+ if ($isInstanceOf(aP, "Order"))
17851789 then {
1786- let ff = aQ
1787- let ix = bi()
1788- let iy = if (gB())
1790+ let fi = aP
1791+ let iA = bh()
1792+ let iB = if (gE())
17891793 then $Tuple2(true, "")
1790- else fe(ff)
1791- let aK = iy._1
1792- let aL = iy._2
1793- let aM = sigVerify(ff.bodyBytes, ff.proofs[0], ff.senderPublicKey)
1794- let aN = sigVerify(ff.bodyBytes, ff.proofs[1], ix)
1795- if (if (if (aK)
1794+ else fh(fi)
1795+ let aJ = iB._1
1796+ let aK = iB._2
1797+ let aL = sigVerify(fi.bodyBytes, fi.proofs[0], fi.senderPublicKey)
1798+ let aM = sigVerify(fi.bodyBytes, fi.proofs[1], iA)
1799+ if (if (if (aJ)
1800+ then aL
1801+ else false)
17961802 then aM
17971803 else false)
1798- then aN
1799- else false)
18001804 then true
1801- else aJ(aK, aL, aM, aN)
1805+ else aI(aJ, aK, aL, aM)
18021806 }
1803- else if ($isInstanceOf(aQ, "SetScriptTransaction"))
1807+ else if ($isInstanceOf(aP, "SetScriptTransaction"))
18041808 then {
1805- let aV = aQ
1806- if (sigVerify(iu.bodyBytes, iu.proofs[0], iw))
1809+ let aU = aP
1810+ if (sigVerify(ix.bodyBytes, ix.proofs[0], iz))
18071811 then true
18081812 else {
1809- let iz = blake2b256(value(aV.script))
1810- let iA = fromBase64String(value(getString(aU, aF())))
1811- let iB = scriptHash(this)
1812- if ((iA == iz))
1813- then (iB != iz)
1813+ let iC = blake2b256(value(aU.script))
1814+ let iD = fromBase64String(value(getString(aT, aE())))
1815+ let iE = scriptHash(this)
1816+ if ((iD == iC))
1817+ then (iE != iC)
18141818 else false
18151819 }
18161820 }
1817- else sigVerify(iu.bodyBytes, iu.proofs[0], iw)
1821+ else sigVerify(ix.bodyBytes, ix.proofs[0], iz)
18181822 }
18191823

github/deemru/w8io/026f985 
722.44 ms