tx · 9GoN5WYqfBRMpjkSgGDzFnvhcBgAXkEveG1zKU9f2Z4d

3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA:  -0.02800000 Waves

2022.10.17 13:52 [2276275] smart account 3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA > SELF 0.00000000 Waves

{ "type": 13, "id": "9GoN5WYqfBRMpjkSgGDzFnvhcBgAXkEveG1zKU9f2Z4d", "fee": 2800000, "feeAssetId": null, "timestamp": 1666003909210, "version": 1, "sender": "3MzKSdTH2jFbypLsoNfrH7QgkzSbx3EYwCA", "senderPublicKey": "35yd3qw1gxKDxKwGAykHN9fANbXNWwseaUwbWDj24o3x", "proofs": [ "3H8zR78o6Jq4JzHzQgSaZYfpA66qZNJuwfKXphyaBkMjWaA1BKaNvSFuqcUPRKHLWn8Mb2nNK9NZEQJvXPabtqmX" ], "script": "base64:BgL7HggCEgMKAQgSAwoBCBIAEgQKAgEEEgQKAgEEEgMKAQESABIECgIIARIECgIIARIECgIIARIECgIBARIDCgEBEgUKAwEIARIECgIBCBIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgpzbGlwcGFnZTREIgVBbXVsdCIFRGNvbnYiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiClBvb2xQdXREaXMiDlBvb2xNYXRjaGVyRGlzIgxQb29sU2h1dGRvd24iDmlkeFBvb2xBZGRyZXNzIglpZHhQb29sU3QiCWlkeExQQXNJZCIJaWR4QW1Bc0lkIglpZHhQckFzSWQiC2lkeEFtdEFzRGNtIg1pZHhQcmljZUFzRGNtIgtpZHhJQW10QXNJZCINaWR4SVByaWNlQXNJZCIPaWR4RmFjdFN0YWtDbnRyIhJpZHhGYWN0b3J5UmVzdENudHIiEGlkeEZhY3RTbGlwcENudHIiEWlkeEZhY3RHd3hSZXdDbnRyIgpmZWVEZWZhdWx0IgJ0MSIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCICZjEiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0IgJ0cyIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiAXQiA3BhdSICdWEiBHR4SWQiA2dhdSICYWEiAnBhIgNhbXAiA2FkYSIGa2V5RmVlIgNmZWUiBGZjZmciBG10cGsiAnBjIgZpQW10QXMiBWlQckFzIgNtYmEiBWJBU3RyIgNhcHMiHGtleUFsbG93ZWRMcFN0YWJsZVNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiA3RvZSIDb3JWIgZzZW5kclYiBm1hdGNoViIDc3RyIgckbWF0Y2gwIgZ2YWxTdHIiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIDZmNhIgFBIgNpZ3MiAm1wIhNmZWVDb2xsZWN0b3JBZGRyZXNzIgNncGMiBWFtdEFzIgdwcmljZUFzIghpUHJpY2VBcyIDZ2ZjIg1mYWN0b3J5Q29uZmlnIg9zdGFraW5nQ29udHJhY3QiD3NsaXBhZ2VDb250cmFjdCILZ3d4Q29udHJhY3QiDHJlc3RDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIgpzbGlwQnlVc2VyIgxzbGlwcGFnZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCIMc2xpcGFnZUFtQW10IgxzbGlwYWdlUHJBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSIHYXNzZXRJZCIEY3BiaSIIcHJBbXRYMTgiCGFtQW10WDE4IgN2YWQiAkExIgJBMiIIc2xpcHBhZ2UiBGRpZmYiBHBhc3MiAnZkIgJEMSICRDAiBHNscGciBGZhaWwiA3BjcCIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10IgthbXRBc0FtdFgxOCIKcHJBc0FtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyIIYW10QXNEY20iB3ByQXNEY20iCHByaWNlWDE4IghscEFtdFgxOCINbHBQckluQW1Bc1gxOCINbHBQckluUHJBc1gxOCIPY2FsY3VsYXRlUHJpY2VzIgFwIgd0YWtlRmVlIgZhbW91bnQiCWZlZUFtb3VudCIDZWdvIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10Igt1c2VyQWRkcmVzcyIEbHBJZCIEYW1JZCIEcHJJZCIFYW1EY20iBXByRGNtIgNzdHMiB2xwRW1pc3MiCWFtQmFsYW5jZSIMYW1CYWxhbmNlWDE4IglwckJhbGFuY2UiDHByQmFsYW5jZVgxOCILY3VyUHJpY2VYMTgiCGN1clByaWNlIgtwbXRMcEFtdFgxOCIKbHBFbWlzc1gxOCILb3V0QW1BbXRYMTgiC291dFByQW10WDE4IghvdXRBbUFtdCIIb3V0UHJBbXQiBXN0YXRlIgNlcG8iB2luQW1BbXQiBmluQW1JZCIHaW5QckFtdCIGaW5QcklkIgZpc0V2YWwiBmVtaXRMcCIKaXNPbmVBc3NldCIQdmFsaWRhdGVTbGlwcGFnZSIGcG10QW10IgVwbXRJZCIHYW1JZFN0ciIHcHJJZFN0ciIJaW5BbUlkU3RyIglpblBySWRTdHIiBmFtdERjbSIIcHJpY2VEY20iBGxwRW0iD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiAXIiC3NsaXBwYWdlWDE4Ig9zbGlwcGFnZVJlYWxYMTgiDWxwRW1pc3Npb25YMTgiCnByVmlhQW1YMTgiCmFtVmlhUHJYMTgiDGV4cGVjdGVkQW10cyIRZXhwQW10QXNzZXRBbXRYMTgiE2V4cFByaWNlQXNzZXRBbXRYMTgiCWNhbGNMcEFtdCIOY2FsY0FtQXNzZXRQbXQiDmNhbGNQckFzc2V0UG10IgxzbGlwcGFnZUNhbGMiCWVtaXRMcEFtdCIGYW1EaWZmIgZwckRpZmYiDSR0MDE2NTA5MTY4NTQiCndyaXRlQW1BbXQiCndyaXRlUHJBbXQiC2NvbW1vblN0YXRlIgNtb2EiBW9yZGVyIgdhbXRBc0lkIgZwckFzSWQiD2FjY0FtdEFzQmFsYW5jZSIOYWNjUHJBc0JhbGFuY2UiCm9yQW10QXNzZXQiCm9yQW10QXNTdHIiCW9yUHJBc3NldCIJb3JQckFzU3RyIgpvcmRlclByaWNlIg5jYXN0T3JkZXJQcmljZSIRaXNPcmRlclByaWNlVmFsaWQiAmNnIgFpIgNwbXQiAmNwIgZjYWxsZXIiB2FtQXNQbXQiB3ByQXNQbXQiBGdldEQiAnhwIgFuIgN4cDAiA3hwMSIKYVByZWNpc2lvbiIBYSIBcyIDYW5uIgt4cDBfeHAxX25fbiIQYW5uX3NfYVByZWNpc2lvbiIOYW5uX2FQcmVjaXNpb24iAm4xIgRjYWxjIgNhY2MiA2N1ciINJHQwMjE0MDYyMTQyNiIBZCIFZm91bmQiAmRwIgVkTmV4dCIFZERpZmYiA2FyciINJHQwMjE4NDcyMTg5NCICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiBWdldFlEIgFEIgF4IgFjIgFiIg0kdDAyMjM5NDIyNDE0IgF5IgV5TmV4dCIFeURpZmYiDSR0MDIyNzIxMjI3NjgiDWNhbGNQdXRPbmVUa24iCXBtdEFtdFJhdyIKcG9vbENvbmZpZyIPbHBBc3NldEVtaXNzaW9uIg1jaGVjaEVtaXNzaW9uIg0kdDAyMzUyNzIzOTg5IgxhbUJhbGFuY2VPbGQiDHByQmFsYW5jZU9sZCINJHQwMjM5OTUyNDE3MSILYW1BbW91bnRSYXciC3ByQW1vdW50UmF3IghhbUFtb3VudCIIcHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IgZjaGVja0QiCGxwQW1vdW50Ig5wb29sUHJvcG9ydGlvbiIPYW1vdW50QXNzZXRQYXJ0Ig5wcmljZUFzc2V0UGFydCIJbHBBbXRCb3RoIgVib251cyITZ2V0T25lVGtuVjJJbnRlcm5hbCIKb3V0QXNzZXRJZCIMbWluT3V0QW1vdW50IghwYXltZW50cyIMb3JpZ2luQ2FsbGVyIg10cmFuc2FjdGlvbklkIgphbURlY2ltYWxzIgpwckRlY2ltYWxzIgpwb29sU3RhdHVzIg0kdDAyNjQyMjI2NTMwIgFAIgh0b3RhbEdldCILdG90YWxBbW91bnQiDSR0MDI2NzE3MjcwMjQiBW91dEFtIgVvdXRQciIIY3VyUHJYMTgiBWN1clByIhFvdXRBc3NldElkT3JXYXZlcyIQc2VuZEZlZVRvTWF0Y2hlciIEYnVybiIBbSICcG0iAnBkIgJtbSICcGsiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIg0kdDAzMTkwMTMyMDI2Igdlc3RpbUxQIgdtYXhTbHBnIgZlc3RQdXQiCW91dEFtdEFtdCINJHQwMzQyMDkzNDM2NCINbHBBc3NldEFtb3VudCIKbHBFbWlzc2lvbiIFaW5kZXgiBG5ld1kiAmR5Igt0b3RhbEdldFJhdyINJHQwMzUxNDMzNTE5MiINJHQwMzU1MzczNTY1MiIOc3VtT2ZHZXRBc3NldHMiEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig1jaGVja1BheW1lbnRzIgpmYWN0b3J5Q2ZnIgdzdGFraW5nIgp1bnN0YWtlSW52IgF2IgVidXJuQSINdW5zdGFrZUFtb3VudCINJHQwMzc5NTkzODE0NyIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiDSR0MDM4NDA2Mzg1MDMiCGFtdEFzU3RyIgdwckFzU3RyIgFrIgJwciIMcmVzU2NhbGVNdWx0Igd1c3JBZGRyIgdwbXRBc0lkIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaF4AAWEAgMLXLwABYgkAtgIBAIDC1y8AAWMJALYCAQCAgJC7utat8A0AAWQJALYCAQAAAAFlCQC2AgEAAAABZgkAtgIBAAEAAWcJALYCAQACAAFoCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABaQIDMTAwAAFqAgExAAFrAgJfXwABbAIAAAFtAAEAAW4AAgABbwADAAFwAAQAAXEAAQABcgACAAFzAAMAAXQABAABdQAFAAF2AAYAAXcABwABeAAIAAF5AAkAAXoAAQABQQAGAAFCAAcAAUMACgABRAkAawMABQUBYQCQTgEBRQIBRgFHCQC8AgMJALYCAQUBRgUBYwkAtgIBBQFHAQFIAgFJAUoJAKADAQkAvAIDBQFJCQC2AgEFAUoFAWMBAUsDAUwBTQFOCQBrAwUBTAUBTQUBTgEBTwEBSQMJAL8CAgUBZAUBSQkAvgIBBQFJBQFJAQFQAQFJAwkAvwICBQFkBQFJCQC+AgEFAUkFAUkBAVEAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFSAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAVMAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAVQAAhElcyVzX19wcmljZV9fbGFzdAEBVQIBVgFXCQC5CQIJAMwIAgIYJXMlcyVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIJAKQDAQUBVgkAzAgCCQCkAwEFAVcFA25pbAUBawEBWAIBWQFaCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX1BfXwUBWQICX18FAVoBAmFhAgFZAVoJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFZAgJfXwUBWgECYWIAAg8lc19fYW1vdW50QXNzZXQBAmFjAAIOJXNfX3ByaWNlQXNzZXQBAmFkAAIHJXNfX2FtcAECYWUAAg0lc19fYWRkb25BZGRyAAJhZgIHJXNfX2ZlZQACYWcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWYFAUQBAmFoAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFpAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhagICYWsCYWwJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFrAgJfXwUCYWwCCF9fY29uZmlnAQJhbQECYW4JAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYW4BAmFvAAIMJXNfX3NodXRkb3duAQJhcAACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJhcQACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhcgMCYXMCYXQCYXUJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRRmFpbGVkOiBvcmRWYWxpZD0JAKUDAQUCYXMCCyBzbmRyVmFsaWQ9CQClAwEFAmF0AgwgbXRjaHJWYWxpZD0JAKUDAQUCYXUBAmF2AQFJBAJhdwUBSQMJAAECBQJhdwIGU3RyaW5nBAJheAUCYXcFAmF4CQACAQITZmFpbCBjYXN0IHRvIFN0cmluZwECYXkCAmF6AmFBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYXoFAmFBCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF6CQDMCAICAS4JAMwIAgUCYUEJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYUICAmF6AmFBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYXoFAmFBCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF6CQDMCAICAS4JAMwIAgUCYUEJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAACYUMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJheQIFBHRoaXMJAQFRAAACYUQJAQJheQIFBHRoaXMJAQJhZAABAmFFAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhQwkBAmFvAAcBAmFGAAkA2QQBCQECYXkCBQJhQwkBAmFpAAACYUcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJheQIFAmFDCQECYXEAAQJhSAAEAmFJCQECYXkCBQR0aGlzCQECYWIABAJhSgkBAmF5AgUEdGhpcwkBAmFjAAQCYUsJAQJhQgIFAmFDCQECYW0BBQJhSgQCYWsJAQJhQgIFAmFDCQECYW0BBQJhSQkAtQkCCQECYXkCBQJhQwkBAmFqAgkApAMBBQJhawkApAMBBQJhSwUBawECYUwACQC1CQIJAQJheQIFAmFDCQECYWgABQFrAAJhTQkBAmFMAAACYU4JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFNBQF6AiBJbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwACYU8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFNBQFCAiBJbnZhbGlkIHNsaXBhZ2UgY29udHJhY3QgYWRkcmVzcwACYVAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFNBQFDAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAAJhUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYU0FAUECHEludmFsaWQgZ3d4IGNvbnRyYWN0IGFkZHJlc3MBAmFSCgJhUwJhVAJhVQJhVgJhVwJhWAJhWQJhWgJiYQJiYgkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYVMJAMwIAgkApAMBBQJhVAkAzAgCCQCkAwEFAmFVCQDMCAIJAKQDAQUCYVYJAMwIAgkApAMBBQJhVwkAzAgCCQCkAwEFAmFYCQDMCAIJAKQDAQUCYVkJAMwIAgkApAMBBQJhWgkAzAgCCQCkAwEFAmJhCQDMCAIJAKQDAQUCYmIFA25pbAUBawECYmMGAmJkAmJlAmJmAmFWAmFZAmFaCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYmQJAMwIAgkApAMBBQJiZQkAzAgCCQCkAwEFAmJmCQDMCAIJAKQDAQUCYVYJAMwIAgkApAMBBQJhWQkAzAgCCQCkAwEFAmFaBQNuaWwFAWsBAmJnAQJiaAMJAAACBQJiaAIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYmgBAmJpAgJiagJiawkAvAIDBQJiagUBYwUCYmsBAmJsAwJibQJibgJibwQCYnAJALwCAwkAuAICBQJibQUCYm4FAWIFAmJuBAJicQkAvwICCQC4AgIFAmJvCQEBTwEFAmJwBQFkAwkBASEBBQJicQkAAgEJAKwCAgIKQmlnIHNscGc6IAkApgMBBQJicAkAlAoCBQJicQkAmQMBCQDMCAIFAmJtCQDMCAIFAmJuBQNuaWwBAmJyAwJicwJidAJidQQCYnAJALwCAwUCYnQFAWIFAmJzBAJidgkAvwICBQJidQUCYnADAwUCYnYGCQC/AgIFAmJ0BQJicwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKYDAQUCYnQCASAJAKYDAQUCYnMCASAJAKYDAQUCYnACASAJAKYDAQUCYnUFAmJ2AQJidwQCYngCYnkCYnoCYkEEAmJCCQEBRQIFAmJ6BQJieAQCYkMJAQFFAgUCYkEFAmJ5CQECYmkCBQJiQwUCYkIBAmJEAwJiegJiQQJiRQQCYkYJAQJhSAAEAmJHCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXYEAmJICQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXcEAmJJCQECYncEBQJiRwUCYkgFAmJ6BQJiQQQCYmsJAQFFAgUCYnoFAmJHBAJiagkBAUUCBQJiQQUCYkgEAmJKCQEBRQIFAmJFBQFhBAJiSwkBAmJpAgUCYmsFAmJKBAJiTAkBAmJpAgUCYmoFAmJKCQDMCAIFAmJJCQDMCAIFAmJLCQDMCAIFAmJMBQNuaWwBAmJNAwJiegJiQQJiRQQCYk4JAQJiRAMFAmJ6BQJiQQUCYkUJAMwIAgkBAUgCCQCRAwIFAmJOAAAFAWEJAMwIAgkBAUgCCQCRAwIFAmJOAAEFAWEJAMwIAgkBAUgCCQCRAwIFAmJOAAIFAWEFA25pbAECYk8BAmJQBAJiUQkAawMFAmJQBQJhZwUBYQkAlAoCCQBlAgUCYlAFAmJRBQJiUQECYlIEAmJTAmJUAmJVAmJWBAJiRgkBAmFIAAQCYlcJAJEDAgUCYkYFAXMEAmJYCQCRAwIFAmJGBQF0BAJiWQkAkQMCBQJiRgUBdQQCYloJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdgQCY2EJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdwQCY2IJAJEDAgUCYkYFAXIEAmNjCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYlcCC1dyb25nIExQIGlkCHF1YW50aXR5AwkBAiE9AgUCYlcFAmJUCQACAQIPV3JvbmcgcG10IGFzc2V0BAJjZAkBAmJnAQUCYlgEAmNlCQEBRQIFAmNkBQJiWgQCY2YJAQJiZwEFAmJZBAJjZwkBAUUCBQJjZgUCY2EEAmNoCQECYmkCBQJjZwUCY2UEAmNpCQEBSAIFAmNoBQFhBAJjagkBAUUCBQJiVQUBYQQCY2sJAQFFAgUCY2MFAWEEAmNsCQC8AgMFAmNlBQJjagUCY2sEAmNtCQC8AgMFAmNnBQJjagUCY2sEAmNuCQEBSAIFAmNsBQJiWgQCY28JAQFIAgUCY20FAmNhBAJjcAMJAAACBQJiUwIABQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYlYFAmNuAwkAAAIFAmJYAgVXQVZFUwUEdW5pdAkA2QQBBQJiWAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiVgUCY28DCQAAAgUCYlkCBVdBVkVTBQR1bml0CQDZBAEFAmJZCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIJAKUIAQUCYlYFAmJTCQECYmMGBQJjbgUCY28FAmJVBQJjaQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQABQJjaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjaQUDbmlsCQCcCgoFAmNuBQJjbwUCYlgFAmJZBQJjZAUCY2YFAmNjBQJjaAUCY2IFAmNwAQJjcQ0CYlMCYm8CY3ICY3MCY3QCY3UCYlYCY3YCY3cCY3gCY3kCY3oCY0EEAmJGCQECYUgABAJiVwkA2QQBCQCRAwIFAmJGBQFzBAJjQgkAkQMCBQJiRgUBdAQCY0MJAJEDAgUCYkYFAXUEAmNECQCRAwIFAmJGBQF4BAJjRQkAkQMCBQJiRgUBeQQCY0YJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdgQCY0cJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRgUBdwQCY2IJAJEDAgUCYkYFAXIEAmNICAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJXAghXciBscCBhcwhxdWFudGl0eQQCY2QDBQJjdgkBAmJnAQUCY0IDAwUCY3gJAAACBQJjQQUCY0IHCQBlAgkBAmJnAQUCY0IFAmN6AwUCY3gJAQJiZwEFAmNCCQBlAgkBAmJnAQUCY0IFAmNyBAJjZgMFAmN2CQECYmcBBQJjQwMDBQJjeAkAAAIFAmNBBQJjQwcJAGUCCQECYmcBBQJjQwUCY3oDBQJjeAkBAmJnAQUCY0MJAGUCCQECYmcBBQJjQwUCY3QEAmNJCQEBRQIFAmNyBQJjRgQCY0oJAQFFAgUCY3QFAmNHBAJjSwkBAmJpAgUCY0oFAmNJBAJjZQkBAUUCBQJjZAUCY0YEAmNnCQEBRQIFAmNmBQJjRwQCY0wDCQAAAgUCY0gAAAQCY2gFAWQEAmNNBQFkBAJiSgkAdgYJALkCAgUCY0kFAmNKAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBSAIFAmJKBQFhCQEBSAIFAmNJBQJjRgkBAUgCBQJjSgUCY0cJAQJiaQIJALcCAgUCY2cFAmNKCQC3AgIFAmNlBQJjSQUCY00EAmNoCQECYmkCBQJjZwUCY2UEAmNOCQC8AgMJAQFPAQkAuAICBQJjaAUCY0sFAWMFAmNoBAJjTQkBAUUCBQJibwUBYQMDAwUCY3kJAQIhPQIFAmNoBQFkBwkAvwICBQJjTgUCY00HCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmNOAgMgPiAJAKYDAQUCY00EAmNPCQEBRQIFAmNIBQFhBAJjUAkAvAIDBQJjSQUCY2gFAWMEAmNRCQC8AgMFAmNKBQFjBQJjaAQCY1IDCQC/AgIFAmNQBQJjSgkAlAoCBQJjUQUCY0oJAJQKAgUCY0kFAmNQBAJjUwgFAmNSAl8xBAJjVAgFAmNSAl8yBAJiSgkAvAIDBQJjTwUCY1QFAmNnCQCXCgUJAQFIAgUCYkoFAWEJAQFIAgUCY1MFAmNGCQEBSAIFAmNUBQJjRwUCY2gFAmNNBAJjVQgFAmNMAl8xBAJjVggFAmNMAl8yBAJjVwgFAmNMAl8zBAJjaQkBAUgCCAUCY0wCXzQFAWEEAmNYCQEBSAIIBQJjTAJfNQUBYQMJAGcCAAAFAmNVCQACAQIHTFAgPD0gMAQCY1kDCQEBIQEFAmN3AAAFAmNVBAJjWgkAZQIFAmNyBQJjVgQCZGEJAGUCBQJjdAUCY1cEAmRiAwMFAmN4CQAAAgUCY0EFAmNCBwkAlAoCBQJjegAAAwMFAmN4CQAAAgUCY0EFAmNDBwkAlAoCAAAFAmN6CQCUCgIFAmNWBQJjVwQCZGMIBQJkYgJfMQQCZGQIBQJkYgJfMgQCZGUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAAUCY2kJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2kJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVgCBQJiVgUCYlMJAQJhUgoFAmRjBQJkZAUCY1kFAmNpBQJibwUCY1gFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNaBQJkYQUDbmlsCQCfCg0FAmNVBQJjWQUCY2kFAmNkBQJjZgUCY0gFAmJXBQJjYgUCZGUFAmNaBQJkYQUCY3MFAmN1AQJkZgECZGcEAmJGCQECYUgABAJkaAkAkQMCBQJiRgUBdAQCZGkJAJEDAgUCYkYFAXUEAmNiCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXIEAmJHCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXYEAmJICQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkYFAXcEAmRqCQECYmcBBQJkaAQCZGsJAQJiZwEFAmRpBAJjaAMJAAACCAUCZGcJb3JkZXJUeXBlBQNCdXkJAQJidwQFAmJHBQJiSAkAZAIFAmRqCAUCZGcGYW1vdW50BQJkawkBAmJ3BAUCYkcFAmJICQBlAgUCZGoIBQJkZwZhbW91bnQFAmRrBAJjaQkBAUgCBQJjaAUBYQMDAwkBAmFFAAYJAAACBQJjYgUBbwYJAAACBQJjYgUBcAkAAgECDUFkbWluIGJsb2NrZWQEAmRsCAgFAmRnCWFzc2V0UGFpcgthbW91bnRBc3NldAQCZG0DCQAAAgUCZGwFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRsBAJkbggIBQJkZwlhc3NldFBhaXIKcHJpY2VBc3NldAQCZG8DCQAAAgUCZG4FBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRuAwMJAQIhPQIFAmRtBQJkaAYJAQIhPQIFAmRvBQJkaQkAAgECCVdyIGFzc2V0cwQCZHAIBQJkZwVwcmljZQQCY0cJAGsDBQFhBQJiSAUCYkcEAmRxCQEBSwMFAmRwBQFhBQJjRwQCZHIDCQAAAggFAmRnCW9yZGVyVHlwZQUDQnV5CQBnAgUCY2kFAmRxCQBnAgUCZHEFAmNpBgECZHMBAmR0AwkBAiE9AgkAkAMBCAUCZHQIcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmR1CQEFdmFsdWUBCQCRAwIIBQJkdAhwYXltZW50cwAABAJiVAkBBXZhbHVlAQgFAmR1B2Fzc2V0SWQEAmN6CAUCZHUGYW1vdW50BAJjTAkBAmJSBAkA2AQBCAUCZHQNdHJhbnNhY3Rpb25JZAkA2AQBBQJiVAUCY3oIBQJkdAZjYWxsZXIEAmNuCAUCY0wCXzEEAmNvCAUCY0wCXzIEAmNiCQENcGFyc2VJbnRWYWx1ZQEIBQJjTAJfOQQCY3AIBQJjTANfMTADAwkBAmFFAAYJAAACBQJjYgUBcAkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmNiCQCXCgUFAmNuBQJjbwUCY3oFAmJUBQJjcAECZHYKAmR3AVoCZHgCZHkCYm8CY3cCY3gCY3kCY3oCY0EEAmNMCQECY3ENBQFaBQJibwgJAQV2YWx1ZQEFAmR4BmFtb3VudAgJAQV2YWx1ZQEFAmR4B2Fzc2V0SWQICQEFdmFsdWUBBQJkeQZhbW91bnQICQEFdmFsdWUBBQJkeQdhc3NldElkBQJkdwkAAAIFAVoCAAUCY3cFAmN4BQJjeQUCY3oFAmNBBAJjYgkBDXBhcnNlSW50VmFsdWUBCAUCY0wCXzgDAwMJAQJhRQAGCQAAAgUCY2IFAW4GCQAAAgUCY2IFAXAJAAIBCQCsAgICCEJsb2NrZWQ6CQCkAwEFAmNiBQJjTAECZHoBAmRBBAJkQgUBZwQCZEMJAJEDAgUCZEEAAAQCZEQJAJEDAgUCZEEAAQQCZEUJAKcDAQUBaQQCZEYJALkCAgkApwMBBQJhRAUCZEUEAmRHCQC3AgIFAmRDBQJkRAMJAAACBQJkRwUBZQUBZQQCZEgJALkCAgUCZEYFAmRCBAJkSQkAuQICCQC5AgIJALkCAgUCZEMFAmREBQJkQgUCZEIEAmRKCQC6AgIJALkCAgUCZEgFAmRHBQJkRQQCZEsJALgCAgUCZEgFAmRFBAJkTAkAtwICBQJkQgUBZgoBAmRNAgJkTgJkTwQCZFAFAmROBAJkUQgFAmRQAl8xBAJkUggFAmRQAl8yAwkBAiE9AgUCZFIFBHVuaXQFAmROBAJkUwkAugICCQC5AgIJALkCAgUCZFEFAmRRBQJkUQUCZEkEAmRUCQC6AgIJALkCAgkAtwICBQJkSgkAuQICBQJkUwUCZEIFAmRRCQC3AgIJALoCAgkAuQICBQJkSwUCZFEFAmRFCQC5AgIFAmRMBQJkUwQCZFUJAQFQAQkAuAICBQJkVAkBBXZhbHVlAQUCZFEDCQDAAgIFAWYFAmRVCQCUCgIFAmRUBQJkTwkAlAoCBQJkVAUEdW5pdAQCZFYJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwkAzAgCAAgJAMwIAgAJCQDMCAIACgkAzAgCAAsJAMwIAgAMCQDMCAIADQkAzAgCAA4FA25pbAQCZFcKAAJkWAUCZFYKAAJkWQkAkAMBBQJkWAoAAmRaCQCUCgIFAmRHBQR1bml0CgECZWECAmViAmVjAwkAZwIFAmVjBQJkWQUCZWIJAQJkTQIFAmViCQCRAwIFAmRYBQJlYwoBAmVkAgJlYgJlYwMJAGcCBQJlYwUCZFkFAmViCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQJlZAIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIJAQJlYQIFAmRaAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8EAmRRCAUCZFcCXzEEAmRSCAUCZFcCXzIDCQECIT0CBQJkUgUEdW5pdAUCZFEJAAIBCQCsAgICGUQgY2FsY3VsYXRpb24gZXJyb3IsIEQgPSAJAKYDAQUCZFEBAmVlAwJkQQJkdAJlZgQCZEIFAWcEAmVnCQCRAwIFAmRBAwkAAAIFAmR0AAAAAQAABAJkRQkApwMBBQFpBAJkRgkAuQICCQCnAwEFAmFEBQJkRQQCZEcFAmVnBAJkSAkAuQICBQJkRgUCZEIEAmVoCQC6AgIJALkCAgkAuQICCQC6AgIJALkCAgUCZWYFAmVmCQC5AgIFAmVnBQJkQgUCZWYFAmRFCQC5AgIFAmRIBQJkQgQCZWkJALgCAgkAtwICBQJkRwkAugICCQC5AgIFAmVmBQJkRQUCZEgFAmVmCgECZE0CAmROAmRPBAJlagUCZE4EAmVrCAUCZWoCXzEEAmRSCAUCZWoCXzIDCQECIT0CBQJkUgUEdW5pdAUCZE4EAmVsCQC6AgIJALcCAgkAuQICBQJlawUCZWsFAmVoCQC3AgIJALkCAgUBZwUCZWsFAmVpBAJlbQkBAVABCQC4AgIFAmVsCQEFdmFsdWUBBQJlawMJAMACAgUBZgUCZW0JAJQKAgUCZWwFAmRPCQCUCgIFAmVsBQR1bml0BAJkVgkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYJAMwIAgAHCQDMCAIACAkAzAgCAAkJAMwIAgAKCQDMCAIACwkAzAgCAAwJAMwIAgANCQDMCAIADgUDbmlsBAJlbgoAAmRYBQJkVgoAAmRZCQCQAwEFAmRYCgACZFoJAJQKAgUCZWYFBHVuaXQKAQJlYQICZWICZWMDCQBnAgUCZWMFAmRZBQJlYgkBAmRNAgUCZWIJAJEDAgUCZFgFAmVjCgECZWQCAmViAmVjAwkAZwIFAmVjBQJkWQUCZWIJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmVkAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgkBAmVhAgUCZFoAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZWsIBQJlbgJfMQQCZFIIBQJlbgJfMgMJAQIhPQIFAmRSBQR1bml0BQJlawkAAgEJAKwCAgIZWSBjYWxjdWxhdGlvbiBlcnJvciwgWSA9IAkApgMBBQJlawECZW8EAmVwAmJUAmJWAVoEAmVxCQECYUgABAJiWAkAkQMCBQJlcQUBdAQCYlkJAJEDAgUCZXEFAXUEAmJXCQCRAwIFAmVxBQFzBAJjRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVxBQF2BAJjRwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVxBQF3BAJlcgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYlcCEGludmFsaWQgbHAgYXNzZXQIcXVhbnRpdHkEAmVzAwkAvwICBQJlcgUBZQYJAAIBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmVzBQJlcwQCY2QJAQJiZwEFAmJYBAJjZgkBAmJnAQUCYlkEAmV0AwkAAAIFAVoCAAkAlAoCBQJjZAUCY2YDCQAAAgUCYlQFAmJYAwkAZgIFAmVwBQJjZAkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJQKAgkAZQIFAmNkBQJlcAUCY2YDCQAAAgUCYlQFAmJZAwkAZgIFAmVwBQJjZgkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJQKAgUCY2QJAGUCBQJjZgUCZXAJAAIBAhB3cm9uZyBwbXRBc3NldElkBAJldQgFAmV0Al8xBAJldggFAmV0Al8yBAJldwMJAAACBQJiVAUCYlgJAJQKAgUCZXAAAAMJAAACBQJiVAUCYlkJAJQKAgAABQJlcAkAAgECD2ludmFsaWQgcGF5bWVudAQCZXgIBQJldwJfMQQCZXkIBQJldwJfMgQCZXoICQECYk8BBQJleAJfMQQCZUEICQECYk8BBQJleQJfMQQCYlEICQECYk8BBQJlcAJfMgQCZUIJAGQCBQJldQUCZXoEAmVDCQBkAgUCZXYFAmVBBAJidAkBAmR6AQkAzAgCCQC2AgEFAmV1CQDMCAIJALYCAQUCZXYFA25pbAQCYnMJAQJkegEJAMwIAgkAtgIBBQJlQgkAzAgCCQC2AgEFAmVDBQNuaWwEAmVEAwkAvwICBQJicwUCYnQGCQEFdGhyb3cAAwkAAAIFAmVEBQJlRAQCZUUJALwCAwUCZXIJALgCAgUCYnMFAmJ0BQJidAQCY2kJAQFIAgkBAmJpAgkBAUUCBQJlQwUCY0cJAQFFAgUCZUIFAmNGBQFhBAJkZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQABQJjaQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjaQkAzAgCCQELU3RyaW5nRW50cnkCCQEBWAIFAmJWBQFaCQECYVIKBQJleAUCZXkJAKADAQUCZUUFAmNpAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZUYJAGsDBQJldgUBYQUCZXUEAmVHCQBrAwUCZXAFAWEJAGQCBQJlRgUBYQQCZUgJAGUCBQJlcAUCZUcEAmVJCQC8AgMFAmVyCQC2AgEFAmVICQC2AgEFAmV2BAJlSgkAoAMBCQC8AgMJALgCAgUCZUUFAmVJBQFiBQJlSQkAlgoECQCgAwEFAmVFBQJkZQUCYlEFAmVKCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlSwYCZUwCZU0CZU4CZHcCZU8CZVADCQECIT0CCQCQAwEFAmVOAAEJAAIBAgsxIHBtbnQgZXhwZAQCZXEJAQJhSAAEAmJXCQCRAwIFAmVxBQFzBAJiWAkAkQMCBQJlcQUBdAQCYlkJAJEDAgUCZXEFAXUEAmVRCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXEFAXYEAmVSCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXEFAXcEAmVTCQCRAwIFAmVxBQFyBAJiVgMJAAACBQJkdwUCYVEFAmVPBQJkdwQCZHUJAQV2YWx1ZQEJAJEDAgUCZU4AAAQCYlQJAQV2YWx1ZQEIBQJkdQdhc3NldElkBAJjeggFAmR1BmFtb3VudAMJAGYCAICU69wDBQJjegkAAgECDU1pbiBwbXQgMTAgTFAEAmJTCQDYBAEFAmVQAwkBAiE9AgUCYlcJANgEAQUCYlQJAAIBAghXcm9uZyBMUAQCY2QJAQJiZwEFAmJYBAJjZgkBAmJnAQUCYlkEAmVUCgACZVUJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJlTAkAzAgCBQJjegUDbmlsBQNuaWwDCQABAgUCZVUCCihJbnQsIEludCkFAmVVCQACAQkArAICCQADAQUCZVUCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkEAmVWCAUCZVQCXzEEAmJRCAUCZVQCXzIEAmVXAwMJAGYCBQJlTQAACQBmAgUCZU0FAmVWBwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZU0FA25pbAIABQJlVgQCZVgDCQAAAgUCZUwFAmJYCQCWCgQFAmVXAAAJAGUCCQBlAgUCY2QFAmVXBQJiUQUCY2YDCQAAAgUCZUwFAmJZCQCWCgQAAAUCZVcFAmNkCQBlAgkAZQIFAmNmBQJlVwUCYlEJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCZVkIBQJlWAJfMQQCZVoIBQJlWAJfMgQCZUIIBQJlWAJfMwQCZUMIBQJlWAJfNAQCZmEJAQJiaQIJAQFFAgUCZUMFAmVSCQEBRQIFAmVCBQJlUQQCZmIJAQFIAgUCZmEFAWEEAmZjAwkAAAIFAmVMAgVXQVZFUwUEdW5pdAkA2QQBBQJlTAQCZmQDCQBmAgUCYlEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhRwUCYlEFAmZjBQNuaWwFA25pbAQCY3AJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiVgUCZVcFAmZjCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQIJAKUIAQUCYlYFAmJTCQECYmMGBQJlWQUCZVoFAmN6BQJmYgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQABQJmYgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVUCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJmYgUDbmlsBQJmZAMJAAACBQJjcAUCY3AEAmZlCQD8BwQFAmFDAgRidXJuCQDMCAIFAmN6BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJUBQJjegUDbmlsAwkAAAIFAmZlBQJmZQkAlAoCBQJjcAUCZVcJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZmAAQCYXcJAKIIAQkBAVIAAwkAAQIFAmF3AgZTdHJpbmcEAmRHBQJhdwkA2QQBBQJkRwMJAAECBQJhdwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJmZwAEAmF3CQCiCAEJAQFTAAMJAAECBQJhdwIGU3RyaW5nBAJkRwUCYXcJANkEAQUCZEcDCQABAgUCYXcCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACZmgJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAECZmkBAmR0BAJhdwkBAmZmAAMJAAECBQJhdwIKQnl0ZVZlY3RvcgQCZmoFAmF3AwkAAAIIBQJkdA9jYWxsZXJQdWJsaWNLZXkFAmZqBgUCZmgDCQABAgUCYXcCBFVuaXQDCQAAAggFAmR0BmNhbGxlcgUEdGhpcwYFAmZoCQACAQILTWF0Y2ggZXJyb3IaAmR0AQtjb25zdHJ1Y3RvcgEBUQQCZWgJAQJmaQEFAmR0AwkAAAIFAmVoBQJlaAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQAFAVEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkdAEKc2V0TWFuYWdlcgECZmsEAmVoCQECZmkBBQJkdAMJAAACBQJlaAUCZWgEAmZsCQDZBAEFAmZrAwkAAAIFAmZsBQJmbAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwAFAmZrBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZHQBDmNvbmZpcm1NYW5hZ2VyAAQCYk4JAQJmZwAEAmZtAwkBCWlzRGVmaW5lZAEFAmJOBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmbQUCZm0EAmZuAwkAAAIIBQJkdA9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmJOBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmbgUCZm4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIACQDYBAEJAQV2YWx1ZQEFAmJOCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFTAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmR0AQNwdXQCAmZvAmZwBAJmcQkBAmFMAAQCZnIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmZxBQF6AgpXciBzdCBhZGRyBAJmcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZnEFAUICCldyIHNsIGFkZHIDCQBmAgAABQJmbwkAAgECDldyb25nIHNsaXBwYWdlAwkBAiE9AgkAkAMBCAUCZHQIcGF5bWVudHMAAgkAAgECDDIgcG1udHMgZXhwZAQCZnQJAQJkdgoJAKUIAQgFAmR0BmNhbGxlcgkA2AQBCAUCZHQNdHJhbnNhY3Rpb25JZAkBD0F0dGFjaGVkUGF5bWVudAIICQEFdmFsdWUBCQCRAwIIBQJkdAhwYXltZW50cwAAB2Fzc2V0SWQICQEFdmFsdWUBCQCRAwIIBQJkdAhwYXltZW50cwAABmFtb3VudAkAkQMCCAUCZHQIcGF5bWVudHMAAQUCZm8GBwYAAAIABAJjWQgFAmZ0Al8yBAJmdQgFAmZ0Al83BAJjcAgFAmZ0Al85BAJjWggFAmZ0A18xMAQCZGEIBQJmdANfMTEEAmJYCAUCZnQDXzEyBAJiWQgFAmZ0A18xMwQCY0wJAPwHBAUCYUMCBGVtaXQJAMwIAgUCY1kFA25pbAUDbmlsAwkAAAIFAmNMBQJjTAQCZnYEAmF3BQJjTAMJAAECBQJhdwIHQWRkcmVzcwQCZncFAmF3CQD8BwQFAmZ3AgRlbWl0CQDMCAIFAmNZBQNuaWwFA25pbAUEdW5pdAMJAAACBQJmdgUCZnYEAmZ4AwkAZgIFAmNaAAAJAPwHBAUCZnMCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiWAUCY1oFA25pbAUDbmlsAwkAAAIFAmZ4BQJmeAQCZnkDCQBmAgUCZGEAAAkA/AcEBQJmcwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJZBQJkYQUDbmlsBQNuaWwDCQAAAgUCZnkFAmZ5BAJmegMFAmZwBAJmQQkA/AcEBQJmcgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZnUFAmNZBQNuaWwDCQAAAgUCZkEFAmZBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmR0BmNhbGxlcgUCY1kFAmZ1BQNuaWwJAM4IAgUCY3AFAmZ6CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmR0AQtwdXRPbmVUa25WMgICZU0CZnADCQECIT0CCQCQAwEIBQJkdAhwYXltZW50cwABCQACAQILMSBwbW50IGV4cGQEAmVxCQECYUgABAJiWAkAkQMCBQJlcQUBdAQCYlkJAJEDAgUCZXEFAXUEAmJXCQDZBAEJAJEDAgUCZXEFAXMEAmVRCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXEFAXYEAmVSCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXEFAXcEAmJWAwkAAAIIBQJkdAZjYWxsZXIFBHRoaXMIBQJkdAxvcmlnaW5DYWxsZXIIBQJkdAZjYWxsZXIEAmR1CQEFdmFsdWUBCQCRAwIIBQJkdAhwYXltZW50cwAABAJiVAkA2AQBCQEFdmFsdWUBCAUCZHUHYXNzZXRJZAQCY3oIBQJkdQZhbW91bnQDCQBmAgCAreIEBQJjegkAAgECDVdyb25nIHBtdCBhbXQEAmZCCQECZW8EBQJjegUCYlQJAKUIAQUCYlYJANgEAQgFAmR0DXRyYW5zYWN0aW9uSWQEAmZDCAUCZkICXzEEAmNwCAUCZkICXzIEAmJRCAUCZkICXzMEAmNZAwMJAGYCBQJlTQAACQBmAgUCZU0FAmZDBwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZU0FA25pbAIABQJmQwQCZnQJAPwHBAUCYUMCBGVtaXQJAMwIAgUCY1kFA25pbAUDbmlsAwkAAAIFAmZ0BQJmdAQCZnYEAmF3BQJmdAMJAAECBQJhdwIHQWRkcmVzcwQCZncFAmF3CQD8BwQFAmZ3AgRlbWl0CQDMCAIFAmNZBQNuaWwFA25pbAUEdW5pdAMJAAACBQJmdgUCZnYEAmZ6AwUCZnAEAmZBCQD8BwQFAmFOAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiVwUCY1kFA25pbAMJAAACBQJmQQUCZkEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZHQGY2FsbGVyBQJjWQUCYlcFA25pbAQCZmQDCQBmAgUCYlEAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhRwUCYlEJANkEAQUCYlQFA25pbAUDbmlsCQCUCgIJAM4IAgkAzggCBQJjcAUCZnoFAmZkBQJjWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkdAEKcHV0Rm9yRnJlZQECZkQDCQBmAgAABQJmRAkAAgECCldyb25nIHNscGcDCQECIT0CCQCQAwEIBQJkdAhwYXltZW50cwACCQACAQIMMiBwbW50cyBleHBkBAJmRQkBAmR2CgkApQgBCAUCZHQGY2FsbGVyCQDYBAEIBQJkdA10cmFuc2FjdGlvbklkCQEPQXR0YWNoZWRQYXltZW50AggJAQV2YWx1ZQEJAJEDAggFAmR0CHBheW1lbnRzAAAHYXNzZXRJZAgJAQV2YWx1ZQEJAJEDAggFAmR0CHBheW1lbnRzAAAGYW1vdW50CQCRAwIIBQJkdAhwYXltZW50cwABBQJmRAcHBgAAAgAIBQJmRQJfOQJkdAEDZ2V0AAQCY0wJAQJkcwEFAmR0BAJmRggFAmNMAl8xBAJjbwgFAmNMAl8yBAJjeggFAmNMAl8zBAJiVAgFAmNMAl80BAJjcAgFAmNMAl81BAJlaQkA/AcEBQJhQwIEYnVybgkAzAgCBQJjegUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiVAUCY3oFA25pbAMJAAACBQJlaQUCZWkFAmNwCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmR0AQtnZXRPbmVUa25WMgICZUwCZU0EAmZHCQECZUsGBQJlTAUCZU0IBQJkdAhwYXltZW50cwgFAmR0BmNhbGxlcggFAmR0DG9yaWdpbkNhbGxlcggFAmR0DXRyYW5zYWN0aW9uSWQEAmNwCAUCZkcCXzEEAmVXCAUCZkcCXzIJAJQKAgUCY3AFAmVXAmR0ARNnZXRPbmVUa25WMlJFQURPTkxZAgJlTAJmSAQCZXEJAQJhSAAEAmJYCQCRAwIFAmVxBQF0BAJiWQkAkQMCBQJlcQUBdQQCYlcJAJEDAgUCZXEFAXMEAmRBCQDMCAIJALYCAQkBAmJnAQUCYlgJAMwIAgkAtgIBCQECYmcBBQJiWQUDbmlsBAJmSQkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEJANkEAQUCYlcCEGludmFsaWQgbHAgYXNzZXQIcXVhbnRpdHkEAmJ0CQECZHoBBQJkQQQCYnMJALgCAgUCYnQJALwCAwkAtgIBBQJmSAUCYnQFAmZJBAJmSgMJAAACBQJlTAUCYlgAAAMJAAACBQJlTAUCYlkAAQkAAgECFGludmFsaWQgb3V0IGFzc2V0IGlkBAJmSwkBAmVlAwUCZEEFAmZKBQJicwQCZkwJALgCAgkAkQMCBQJkQQUCZkoFAmZLBAJmTQkAoAMBCQC4AgIFAmZMBQFmBAJmTgkBAmJPAQUCZk0EAmVWCAUCZk4CXzEEAmJRCAUCZk4CXzIJAJQKAgUDbmlsCQCUCgIFAmVWBQJiUQJkdAEcZ2V0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICZUwCZkgEAmVxCQECYUgABAJiWAkAkQMCBQJlcQUBdAQCYlkJAJEDAgUCZXEFAXUEAmJXCQCRAwIFAmVxBQFzBAJjZAkBAmJnAQUCYlgEAmNmCQECYmcBBQJiWQQCZk8KAAJlVQkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmVMCQDMCAIFAmZIBQNuaWwFA25pbAMJAAECBQJlVQIKKEludCwgSW50KQUCZVUJAAIBCQCsAgIJAAMBBQJlVQIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQQCZVYIBQJmTwJfMQQCYlEIBQJmTwJfMgQCY0wJAQJiUgQCAAUCYlcFAmZIBQR0aGlzBAJjbggFAmNMAl8xBAJjbwgFAmNMAl8yBAJmUAkAZAIFAmNuBQJjbwQCZUoJAGsDCQBlAgUCZVYFAmZQBQFhBQJmUAkAlAoCBQNuaWwJAJUKAwUCZVYFAmJRBQJlSgJkdAEJZ2V0Tm9MZXNzAgJmUQJmUgQCY0wJAQJkcwEFAmR0BAJjbggFAmNMAl8xBAJjbwgFAmNMAl8yBAJjeggFAmNMAl8zBAJiVAgFAmNMAl80BAJjcAgFAmNMAl81AwkAZgIFAmZRBQJjbgkAAgEJAKwCAgkArAICCQCsAgICCUZhaWxlZDogIAkApAMBBQJjbgIDIDwgCQCkAwEFAmZRAwkAZgIFAmZSBQJjbwkAAgEJAKwCAgkArAICCQCsAgICCEZhaWxlZDogCQCkAwEFAmNvAgMgPCAJAKQDAQUCZlIEAmZTCQD8BwQFAmFDAgRidXJuCQDMCAIFAmN6BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJUBQJjegUDbmlsAwkAAAIFAmZTBQJmUwUCY3AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZHQBDXVuc3Rha2VBbmRHZXQBAmJQBAJmVAMJAQIhPQIJAJADAQgFAmR0CHBheW1lbnRzAAAJAAIBAg1ObyBwbW50cyBleHBkBgMJAAACBQJmVAUCZlQEAmJGCQECYUgABAJmVQkBAmFMAAQCZnUJANkEAQkAkQMCBQJiRgUBcwQCZlYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmZVBQF6AgpXciBzdCBhZGRyBAJmVwkA/AcEBQJmVgIHdW5zdGFrZQkAzAgCCQDYBAEFAmZ1CQDMCAIFAmJQBQNuaWwFA25pbAMJAAACBQJmVwUCZlcEAmNMCQECYlIECQDYBAEIBQJkdA10cmFuc2FjdGlvbklkCQDYBAEFAmZ1BQJiUAgFAmR0BmNhbGxlcgQCY2IJAQ1wYXJzZUludFZhbHVlAQgFAmNMAl85BAJjcAgFAmNMA18xMAQCZlgDAwkBAmFFAAYJAAACBQJjYgUBcAkAAgEJAKwCAgIJQmxvY2tlZDogCQCkAwEFAmNiBgMJAAACBQJmWAUCZlgEAmZZCQD8BwQFAmFDAgRidXJuCQDMCAIFAmJQBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmZ1BQJiUAUDbmlsAwkAAAIFAmZZBQJmWQUCY3AJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZHQBFXVuc3Rha2VBbmRHZXRPbmVUa25WMgMCZloCZUwCZU0EAmZUAwkBAiE9AgkAkAMBCAUCZHQIcGF5bWVudHMAAAkAAgECDU5vIHBtbnRzIGV4cGQGAwkAAAIFAmZUBQJmVAQCYkYJAQJhSAAEAmZVCQECYUwABAJmdQkA2QQBCQCRAwIFAmJGBQFzBAJmVgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZlUFAXoCCldyIHN0IGFkZHIEAmZXCQD8BwQFAmZWAgd1bnN0YWtlCQDMCAIJANgEAQUCZnUJAMwIAgUCZloFA25pbAUDbmlsAwkAAAIFAmZXBQJmVwQCZ2EJAQJlSwYFAmVMBQJlTQkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZnUFAmZaBQNuaWwIBQJkdAZjYWxsZXIIBQJkdAxvcmlnaW5DYWxsZXIIBQJkdA10cmFuc2FjdGlvbklkBAJjcAgFAmdhAl8xBAJlVwgFAmdhAl8yCQCUCgIFAmNwBQJlVwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkdAEccHV0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICZ2ICZ2MEAmVxCQECYUgABAJiWAkAkQMCBQJlcQUBdAQCYlkJAJEDAgUCZXEFAXUEAmJXCQCRAwIFAmVxBQFzBAJnZAkBAmVvBAUCZ2IFAmdjAgACAAQCZUUIBQJnZAJfMQQCY3AIBQJnZAJfMgQCYlEIBQJnZAJfMwQCZUoIBQJnZAJfNAkAlAoCBQNuaWwJAJUKAwUCZUUFAmJRBQJlSgJkdAEIYWN0aXZhdGUCAmdlAmdmAwkBAiE9AgkApQgBCAUCZHQGY2FsbGVyCQClCAEFAmFDCQACAQIGZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAAUCZ2UJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFjAAUCZ2YFA25pbAIHc3VjY2VzcwJkdAEEc2V0UwICZ2cCZlgDCQECIT0CCQClCAEIBQJkdAZjYWxsZXIJAQJheQIFBHRoaXMJAQJhZQAFAmZoCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmdnBQJmWAUDbmlsAmR0AQRzZXRJAgJnZwJmWAMJAQIhPQIJAKUIAQgFAmR0BmNhbGxlcgkBAmF5AgUEdGhpcwkBAmFlAAUCZmgJAMwIAgkBDEludGVnZXJFbnRyeQIFAmdnBQJmWAUDbmlsAmR0ARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhSAACZHQBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJoCQCUCgIFA25pbAkBAmJnAQUCYmgCZHQBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJ6AmJBAmJFBAJnaAkBAmJEAwUCYnoFAmJBBQJiRQkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmdoAAAJAMwIAgkApgMBCQCRAwIFAmdoAAEJAMwIAgkApgMBCQCRAwIFAmdoAAIFA25pbAJkdAEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBSQJnaQkAlAoCBQNuaWwJAQFIAgkApwMBBQFJBQJnaQJkdAEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUYBRwkAlAoCBQNuaWwJAKYDAQkBAUUCBQFGBQFHAmR0AR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJqAmJrCQCUCgIFA25pbAkApgMBCQECYmkCCQCnAwEFAmJqCQCnAwEFAmJrAmR0ASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCYlMCYm8CY3ICY3MCY3QCY3UCZ2oCY3YCY3cJAJQKAgUDbmlsCQECY3ENBQJiUwUCYm8FAmNyBQJjcwUCY3QFAmN1BQJnagUCY3YFAmN3BgcAAAIAAmR0ASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYlMCZ2sCYlUCZ2oEAmNMCQECYlIEBQJiUwUCZ2sFAmJVCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnagkAlAoCBQNuaWwJAJwKCggFAmNMAl8xCAUCY0wCXzIIBQJjTAJfMwgFAmNMAl80CAUCY0wCXzUIBQJjTAJfNggFAmNMAl83CQCmAwEIBQJjTAJfOAgFAmNMAl85CAUCY0wDXzEwAmR0AQ5nZXRGZWVSRUFET05MWQAJAJQKAgUDbmlsBQJhZwECZ2wBAmdtAAQCZ24EAmF3CQECZmYAAwkAAQIFAmF3AgpCeXRlVmVjdG9yBAJmagUCYXcFAmZqAwkAAQIFAmF3AgRVbml0CAUCZ2wPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmF3BQJnbAMJAAECBQJhdwIFT3JkZXIEAmRnBQJhdwQCZ28JAQJhRgAEAmdwCQECZGYBBQJkZwQCZ3EJAPQDAwgFAmRnCWJvZHlCeXRlcwkAkQMCCAUCZGcGcHJvb2ZzAAAIBQJkZw9zZW5kZXJQdWJsaWNLZXkEAmdyCQD0AwMIBQJkZwlib2R5Qnl0ZXMJAJEDAggFAmRnBnByb29mcwABBQJnbwMDAwUCZ3AFAmdxBwUCZ3IHBgkBAmFyAwUCZ3AFAmdxBQJncgMJAAECBQJhdwIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmRHBQJhdwQCZ3MJAPYDAQkBBXZhbHVlAQgFAmRHBnNjcmlwdAQCZ3QJANsEAQkBBXZhbHVlAQkAnQgCBQJhQwkBAmFwAAQCZ3UJAPEHAQUEdGhpcwMDCQAAAgUCZ3QFAmdzCQECIT0CBQJndQUCZ3MHBgkA9AMDCAUCZ2wJYm9keUJ5dGVzCQCRAwIIBQJnbAZwcm9vZnMAAAUCZ24JAPQDAwgFAmdsCWJvZHlCeXRlcwkAkQMCCAUCZ2wGcHJvb2ZzAAAFAmduMBQiIw==", "chainId": 84, "height": 2276275, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BQ5jMy4iGBGzSPFhsjaz2EKPP9r9ZFgLQF1nv4iiVi72 Next: 2M3T8bQFvEsvTtQMRNmisFV4Ko1YQ1KTsEbspzPtZ4oC Diff:
OldNewDifferences
5353
5454 let z = 1
5555
56-let A = 7
56+let A = 6
5757
58-let B = 10
58+let B = 7
5959
60-let C = fraction(5, a, 10000)
60+let C = 10
6161
62-func D (E,F) = fraction(toBigInt(E), c, toBigInt(F))
62+let D = fraction(5, a, 10000)
63+
64+func E (F,G) = fraction(toBigInt(F), c, toBigInt(G))
6365
6466
65-func G (H,I) = toInt(fraction(H, toBigInt(I), c))
67+func H (I,J) = toInt(fraction(I, toBigInt(J), c))
6668
6769
68-func J (K,L,M) = fraction(K, L, M)
70+func K (L,M,N) = fraction(L, M, N)
6971
7072
71-func N (H) = if ((d > H))
72- then -(H)
73- else H
73+func O (I) = if ((d > I))
74+ then -(I)
75+ else I
7476
7577
76-func O (H) = if ((d > H))
77- then -(H)
78- else H
78+func P (I) = if ((d > I))
79+ then -(I)
80+ else I
7981
8082
81-func P () = "%s__factoryContract"
83+func Q () = "%s__factoryContract"
8284
8385
84-func Q () = "%s__managerPublicKey"
86+func R () = "%s__managerPublicKey"
8587
8688
87-func R () = "%s__pendingManagerPublicKey"
89+func S () = "%s__pendingManagerPublicKey"
8890
8991
90-func S () = "%s%s__price__last"
92+func T () = "%s%s__price__last"
9193
9294
93-func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], k)
95+func U (V,W) = makeString(["%s%s%d%d__price__history", toString(V), toString(W)], k)
9496
9597
96-func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
98+func X (Y,Z) = ((("%s%s%s__P__" + Y) + "__") + Z)
9799
98100
99-func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
101+func aa (Y,Z) = ((("%s%s%s__G__" + Y) + "__") + Z)
100102
101103
102-func aa () = "%s__amountAsset"
104+func ab () = "%s__amountAsset"
103105
104106
105-func ab () = "%s__priceAsset"
107+func ac () = "%s__priceAsset"
106108
107109
108-func ac () = "%s__amp"
110+func ad () = "%s__amp"
109111
110112
111-func ad () = "%s__addonAddr"
113+func ae () = "%s__addonAddr"
112114
113115
114-let ae = "%s__fee"
116+let af = "%s__fee"
115117
116-let af = valueOrElse(getInteger(this, ae), C)
118+let ag = valueOrElse(getInteger(this, af), D)
117119
118-func ag () = "%s__factoryConfig"
120+func ah () = "%s__factoryConfig"
119121
120122
121-func ah () = "%s%s__matcher__publicKey"
123+func ai () = "%s%s__matcher__publicKey"
122124
123125
124-func ai (aj,ak) = (((("%d%d%s__" + aj) + "__") + ak) + "__config")
126+func aj (ak,al) = (((("%d%d%s__" + ak) + "__") + al) + "__config")
125127
126128
127-func al (am) = ("%s%s%s__mappings__baseAsset2internalId__" + am)
129+func am (an) = ("%s%s%s__mappings__baseAsset2internalId__" + an)
128130
129131
130-func an () = "%s__shutdown"
132+func ao () = "%s__shutdown"
131133
132134
133-func ao () = "%s__allowedLpStableScriptHash"
135+func ap () = "%s__allowedLpStableScriptHash"
134136
135137
136-func ap () = "%s__feeCollectorAddress"
138+func aq () = "%s__feeCollectorAddress"
137139
138140
139-func aq (ar,as,at) = throw(((((("Failed: ordValid=" + toString(ar)) + " sndrValid=") + toString(as)) + " mtchrValid=") + toString(at)))
141+func ar (as,at,au) = throw(((((("Failed: ordValid=" + toString(as)) + " sndrValid=") + toString(at)) + " mtchrValid=") + toString(au)))
140142
141143
142-func au (H) = {
143- let av = H
144- if ($isInstanceOf(av, "String"))
144+func av (I) = {
145+ let aw = I
146+ if ($isInstanceOf(aw, "String"))
145147 then {
146- let aw = av
147- aw
148+ let ax = aw
149+ ax
148150 }
149151 else throw("fail cast to String")
150152 }
151153
152154
153-func ax (ay,az) = valueOrErrorMessage(getString(ay, az), makeString(["mandatory ", toString(ay), ".", az, " not defined"], ""))
155+func ay (az,aA) = valueOrErrorMessage(getString(az, aA), makeString(["mandatory ", toString(az), ".", aA, " not defined"], ""))
154156
155157
156-func aA (ay,az) = valueOrErrorMessage(getInteger(ay, az), makeString(["mandatory ", toString(ay), ".", az, " not defined"], ""))
158+func aB (az,aA) = valueOrErrorMessage(getInteger(az, aA), makeString(["mandatory ", toString(az), ".", aA, " not defined"], ""))
157159
158160
159-let aB = addressFromStringValue(ax(this, P()))
161+let aC = addressFromStringValue(ay(this, Q()))
160162
161-let aC = ax(this, ac())
163+let aD = ay(this, ad())
162164
163-func aD () = valueOrElse(getBoolean(aB, an()), false)
165+func aE () = valueOrElse(getBoolean(aC, ao()), false)
164166
165167
166-func aE () = fromBase58String(ax(aB, ah()))
168+func aF () = fromBase58String(ay(aC, ai()))
167169
168170
169-let aF = addressFromStringValue(ax(aB, ap()))
171+let aG = addressFromStringValue(ay(aC, aq()))
170172
171-func aG () = {
172- let aH = ax(this, aa())
173- let aI = ax(this, ab())
174- let aJ = aA(aB, al(aI))
175- let aj = aA(aB, al(aH))
176- split(ax(aB, ai(toString(aj), toString(aJ))), k)
173+func aH () = {
174+ let aI = ay(this, ab())
175+ let aJ = ay(this, ac())
176+ let aK = aB(aC, am(aJ))
177+ let ak = aB(aC, am(aI))
178+ split(ay(aC, aj(toString(ak), toString(aK))), k)
177179 }
178180
179181
180-func aK () = split(ax(aB, ag()), k)
182+func aL () = split(ay(aC, ah()), k)
181183
182184
183-let aL = aK()
185+let aM = aL()
184186
185-let aM = valueOrErrorMessage(addressFromString(aL[z]), "Invalid staking contract address")
187+let aN = valueOrErrorMessage(addressFromString(aM[z]), "Invalid staking contract address")
186188
187-let aN = valueOrErrorMessage(addressFromString(aL[A]), "Invalid slipage contract address")
189+let aO = valueOrErrorMessage(addressFromString(aM[B]), "Invalid slipage contract address")
188190
189-let aO = valueOrErrorMessage(addressFromString(aL[B]), "Invalid gwx contract address")
191+let aP = valueOrErrorMessage(addressFromString(aM[C]), "Invalid gwx contract address")
190192
191-func aP (aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aQ), toString(aR), toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ)], k)
193+let aQ = valueOrErrorMessage(addressFromString(aM[A]), "Invalid gwx contract address")
194+
195+func aR (aS,aT,aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(ba), toString(bb)], k)
192196
193197
194-func ba (bb,bc,bd,aT,aW,aX) = makeString(["%d%d%d%d%d%d", toString(bb), toString(bc), toString(bd), toString(aT), toString(aW), toString(aX)], k)
198+func bc (bd,be,bf,aV,aY,aZ) = makeString(["%d%d%d%d%d%d", toString(bd), toString(be), toString(bf), toString(aV), toString(aY), toString(aZ)], k)
195199
196200
197-func be (bf) = if ((bf == "WAVES"))
201+func bg (bh) = if ((bh == "WAVES"))
198202 then wavesBalance(this).available
199- else assetBalance(this, fromBase58String(bf))
203+ else assetBalance(this, fromBase58String(bh))
200204
201205
202-func bg (bh,bi) = fraction(bh, c, bi)
206+func bi (bj,bk) = fraction(bj, c, bk)
203207
204208
205-func bj (bk,bl,bm) = {
206- let bn = fraction((bk - bl), b, bl)
207- let bo = ((bm - N(bn)) > d)
208- if (!(bo))
209- then throw(("Big slpg: " + toString(bn)))
210- else $Tuple2(bo, min([bk, bl]))
209+func bl (bm,bn,bo) = {
210+ let bp = fraction((bm - bn), b, bn)
211+ let bq = ((bo - O(bp)) > d)
212+ if (!(bq))
213+ then throw(("Big slpg: " + toString(bp)))
214+ else $Tuple2(bq, min([bm, bn]))
211215 }
212216
213217
214-func bp (bq,br,bs) = {
215- let bn = fraction(br, b, bq)
216- let bt = (bs > bn)
217- if (if (bt)
218+func br (bs,bt,bu) = {
219+ let bp = fraction(bt, b, bs)
220+ let bv = (bu > bp)
221+ if (if (bv)
218222 then true
219- else (br > bq))
220- then throw(((((((toString(br) + " ") + toString(bq)) + " ") + toString(bn)) + " ") + toString(bs)))
221- else bt
223+ else (bt > bs))
224+ then throw(((((((toString(bt) + " ") + toString(bs)) + " ") + toString(bp)) + " ") + toString(bu)))
225+ else bv
222226 }
223227
224228
225-func bu (bv,bw,bx,by) = {
226- let bz = D(bx, bv)
227- let bA = D(by, bw)
228- bg(bA, bz)
229+func bw (bx,by,bz,bA) = {
230+ let bB = E(bz, bx)
231+ let bC = E(bA, by)
232+ bi(bC, bB)
229233 }
230234
231235
232-func bB (bx,by,bC) = {
233- let bD = aG()
234- let bE = parseIntValue(bD[v])
235- let bF = parseIntValue(bD[w])
236- let bG = bu(bE, bF, bx, by)
237- let bi = D(bx, bE)
238- let bh = D(by, bF)
239- let bH = D(bC, a)
240- let bI = bg(bi, bH)
241- let bJ = bg(bh, bH)
242-[bG, bI, bJ]
236+func bD (bz,bA,bE) = {
237+ let bF = aH()
238+ let bG = parseIntValue(bF[v])
239+ let bH = parseIntValue(bF[w])
240+ let bI = bw(bG, bH, bz, bA)
241+ let bk = E(bz, bG)
242+ let bj = E(bA, bH)
243+ let bJ = E(bE, a)
244+ let bK = bi(bk, bJ)
245+ let bL = bi(bj, bJ)
246+[bI, bK, bL]
243247 }
244248
245249
246-func bK (bx,by,bC) = {
247- let bL = bB(bx, by, bC)
248-[G(bL[0], a), G(bL[1], a), G(bL[2], a)]
250+func bM (bz,bA,bE) = {
251+ let bN = bD(bz, bA, bE)
252+[H(bN[0], a), H(bN[1], a), H(bN[2], a)]
249253 }
250254
251255
252-func bM (bN) = {
253- let bO = fraction(bN, af, a)
254- $Tuple2((bN - bO), bO)
256+func bO (bP) = {
257+ let bQ = fraction(bP, ag, a)
258+ $Tuple2((bP - bQ), bQ)
255259 }
256260
257261
258-func bP (bQ,bR,bS,bT) = {
259- let bD = aG()
260- let bU = bD[s]
261- let bV = bD[t]
262- let bW = bD[u]
263- let bX = parseIntValue(bD[v])
264- let bY = parseIntValue(bD[w])
265- let bZ = bD[r]
266- let ca = valueOrErrorMessage(assetInfo(fromBase58String(bU)), "Wrong LP id").quantity
267- if ((bU != bR))
262+func bR (bS,bT,bU,bV) = {
263+ let bF = aH()
264+ let bW = bF[s]
265+ let bX = bF[t]
266+ let bY = bF[u]
267+ let bZ = parseIntValue(bF[v])
268+ let ca = parseIntValue(bF[w])
269+ let cb = bF[r]
270+ let cc = valueOrErrorMessage(assetInfo(fromBase58String(bW)), "Wrong LP id").quantity
271+ if ((bW != bT))
268272 then throw("Wrong pmt asset")
269273 else {
270- let cb = be(bV)
271- let cc = D(cb, bX)
272- let cd = be(bW)
273- let ce = D(cd, bY)
274- let cf = bg(ce, cc)
275- let cg = G(cf, a)
276- let ch = D(bS, a)
277- let ci = D(ca, a)
278- let cj = fraction(cc, ch, ci)
279- let ck = fraction(ce, ch, ci)
280- let cl = G(cj, bX)
281- let cm = G(ck, bY)
282- let cn = if ((bQ == ""))
274+ let cd = bg(bX)
275+ let ce = E(cd, bZ)
276+ let cf = bg(bY)
277+ let cg = E(cf, ca)
278+ let ch = bi(cg, ce)
279+ let ci = H(ch, a)
280+ let cj = E(bU, a)
281+ let ck = E(cc, a)
282+ let cl = fraction(ce, cj, ck)
283+ let cm = fraction(cg, cj, ck)
284+ let cn = H(cl, bZ)
285+ let co = H(cm, ca)
286+ let cp = if ((bS == ""))
283287 then nil
284- else [ScriptTransfer(bT, cl, if ((bV == "WAVES"))
288+ else [ScriptTransfer(bV, cn, if ((bX == "WAVES"))
285289 then unit
286- else fromBase58String(bV)), ScriptTransfer(bT, cm, if ((bW == "WAVES"))
290+ else fromBase58String(bX)), ScriptTransfer(bV, co, if ((bY == "WAVES"))
287291 then unit
288- else fromBase58String(bW)), StringEntry(Z(toString(bT), bQ), ba(cl, cm, bS, cg, height, lastBlock.timestamp)), IntegerEntry(S(), cg), IntegerEntry(T(height, lastBlock.timestamp), cg)]
289- $Tuple10(cl, cm, bV, bW, cb, cd, ca, cf, bZ, cn)
292+ else fromBase58String(bY)), StringEntry(aa(toString(bV), bS), bc(cn, co, bU, ci, height, lastBlock.timestamp)), IntegerEntry(T(), ci), IntegerEntry(U(height, lastBlock.timestamp), ci)]
293+ $Tuple10(cn, co, bX, bY, cd, cf, cc, ch, cb, cp)
290294 }
291295 }
292296
293297
294-func co (bQ,bm,cp,cq,cr,cs,bT,ct,cu,cv,cw,cx,cy) = {
295- let bD = aG()
296- let bU = fromBase58String(bD[s])
297- let cz = bD[t]
298- let cA = bD[u]
299- let cB = bD[x]
300- let cC = bD[y]
301- let cD = parseIntValue(bD[v])
302- let cE = parseIntValue(bD[w])
303- let bZ = bD[r]
304- let cF = valueOrErrorMessage(assetInfo(bU), "Wr lp as").quantity
305- let cb = if (ct)
306- then be(cz)
307- else if (if (cv)
308- then (cy == cz)
298+func cq (bS,bo,cr,cs,ct,cu,bV,cv,cw,cx,cy,cz,cA) = {
299+ let bF = aH()
300+ let bW = fromBase58String(bF[s])
301+ let cB = bF[t]
302+ let cC = bF[u]
303+ let cD = bF[x]
304+ let cE = bF[y]
305+ let cF = parseIntValue(bF[v])
306+ let cG = parseIntValue(bF[w])
307+ let cb = bF[r]
308+ let cH = valueOrErrorMessage(assetInfo(bW), "Wr lp as").quantity
309+ let cd = if (cv)
310+ then bg(cB)
311+ else if (if (cx)
312+ then (cA == cB)
309313 else false)
310- then (be(cz) - cx)
311- else if (cv)
312- then be(cz)
313- else (be(cz) - cp)
314- let cd = if (ct)
315- then be(cA)
316- else if (if (cv)
317- then (cy == cA)
314+ then (bg(cB) - cz)
315+ else if (cx)
316+ then bg(cB)
317+ else (bg(cB) - cr)
318+ let cf = if (cv)
319+ then bg(cC)
320+ else if (if (cx)
321+ then (cA == cC)
318322 else false)
319- then (be(cA) - cx)
320- else if (cv)
321- then be(cA)
322- else (be(cA) - cr)
323- let cG = D(cp, cD)
324- let cH = D(cr, cE)
325- let cI = bg(cH, cG)
326- let cc = D(cb, cD)
327- let ce = D(cd, cE)
328- let cJ = if ((cF == 0))
323+ then (bg(cC) - cz)
324+ else if (cx)
325+ then bg(cC)
326+ else (bg(cC) - ct)
327+ let cI = E(cr, cF)
328+ let cJ = E(ct, cG)
329+ let cK = bi(cJ, cI)
330+ let ce = E(cd, cF)
331+ let cg = E(cf, cG)
332+ let cL = if ((cH == 0))
329333 then {
330- let cf = d
331- let cK = d
332- let bH = pow((cG * cH), 0, toBigInt(5), 1, 0, DOWN)
333- $Tuple5(G(bH, a), G(cG, cD), G(cH, cE), bg((ce + cH), (cc + cG)), cK)
334+ let ch = d
335+ let cM = d
336+ let bJ = pow((cI * cJ), 0, toBigInt(5), 1, 0, DOWN)
337+ $Tuple5(H(bJ, a), H(cI, cF), H(cJ, cG), bi((cg + cJ), (ce + cI)), cM)
334338 }
335339 else {
336- let cf = bg(ce, cc)
337- let cL = fraction(N((cf - cI)), c, cf)
338- let cK = D(bm, a)
339- if (if (if (cw)
340- then (cf != d)
340+ let ch = bi(cg, ce)
341+ let cN = fraction(O((ch - cK)), c, ch)
342+ let cM = E(bo, a)
343+ if (if (if (cy)
344+ then (ch != d)
341345 else false)
342- then (cL > cK)
346+ then (cN > cM)
343347 else false)
344- then throw(((("Price slippage " + toString(cL)) + " > ") + toString(cK)))
348+ then throw(((("Price slippage " + toString(cN)) + " > ") + toString(cM)))
345349 else {
346- let cM = D(cF, a)
347- let cN = fraction(cG, cf, c)
348- let cO = fraction(cH, c, cf)
349- let cP = if ((cN > cH))
350- then $Tuple2(cO, cH)
351- else $Tuple2(cG, cN)
352- let cQ = cP._1
353- let cR = cP._2
354- let bH = fraction(cM, cR, ce)
355- $Tuple5(G(bH, a), G(cQ, cD), G(cR, cE), cf, cK)
350+ let cO = E(cH, a)
351+ let cP = fraction(cI, ch, c)
352+ let cQ = fraction(cJ, c, ch)
353+ let cR = if ((cP > cJ))
354+ then $Tuple2(cQ, cJ)
355+ else $Tuple2(cI, cP)
356+ let cS = cR._1
357+ let cT = cR._2
358+ let bJ = fraction(cO, cT, cg)
359+ $Tuple5(H(bJ, a), H(cS, cF), H(cT, cG), ch, cM)
356360 }
357361 }
358- let cS = cJ._1
359- let cT = cJ._2
360- let cU = cJ._3
361- let cg = G(cJ._4, a)
362- let cV = G(cJ._5, a)
363- if ((0 >= cS))
362+ let cU = cL._1
363+ let cV = cL._2
364+ let cW = cL._3
365+ let ci = H(cL._4, a)
366+ let cX = H(cL._5, a)
367+ if ((0 >= cU))
364368 then throw("LP <= 0")
365369 else {
366- let cW = if (!(cu))
370+ let cY = if (!(cw))
367371 then 0
368- else cS
369- let cX = (cp - cT)
370- let cY = (cr - cU)
371- let cZ = if (if (cv)
372- then (cy == cz)
372+ else cU
373+ let cZ = (cr - cV)
374+ let da = (ct - cW)
375+ let db = if (if (cx)
376+ then (cA == cB)
373377 else false)
374- then $Tuple2(cx, 0)
375- else if (if (cv)
376- then (cy == cA)
378+ then $Tuple2(cz, 0)
379+ else if (if (cx)
380+ then (cA == cC)
377381 else false)
378- then $Tuple2(0, cx)
379- else $Tuple2(cT, cU)
380- let da = cZ._1
381- let db = cZ._2
382- let dc = [IntegerEntry(S(), cg), IntegerEntry(T(height, lastBlock.timestamp), cg), StringEntry(W(bT, bQ), aP(da, db, cW, cg, bm, cV, height, lastBlock.timestamp, cX, cY))]
383- $Tuple13(cS, cW, cg, cb, cd, cF, bU, bZ, dc, cX, cY, cq, cs)
382+ then $Tuple2(0, cz)
383+ else $Tuple2(cV, cW)
384+ let dc = db._1
385+ let dd = db._2
386+ let de = [IntegerEntry(T(), ci), IntegerEntry(U(height, lastBlock.timestamp), ci), StringEntry(X(bV, bS), aR(dc, dd, cY, ci, bo, cX, height, lastBlock.timestamp, cZ, da))]
387+ $Tuple13(cU, cY, ci, cd, cf, cH, bW, cb, de, cZ, da, cs, cu)
384388 }
385389 }
386390
387391
388-func dd (de) = {
389- let bD = aG()
390- let df = bD[t]
391- let dg = bD[u]
392- let bZ = parseIntValue(bD[r])
393- let bE = parseIntValue(bD[v])
394- let bF = parseIntValue(bD[w])
395- let dh = be(df)
396- let di = be(dg)
397- let cf = if ((de.orderType == Buy))
398- then bu(bE, bF, (dh + de.amount), di)
399- else bu(bE, bF, (dh - de.amount), di)
400- let cg = G(cf, a)
401- if (if (if (aD())
392+func df (dg) = {
393+ let bF = aH()
394+ let dh = bF[t]
395+ let di = bF[u]
396+ let cb = parseIntValue(bF[r])
397+ let bG = parseIntValue(bF[v])
398+ let bH = parseIntValue(bF[w])
399+ let dj = bg(dh)
400+ let dk = bg(di)
401+ let ch = if ((dg.orderType == Buy))
402+ then bw(bG, bH, (dj + dg.amount), dk)
403+ else bw(bG, bH, (dj - dg.amount), dk)
404+ let ci = H(ch, a)
405+ if (if (if (aE())
402406 then true
403- else (bZ == o))
407+ else (cb == o))
404408 then true
405- else (bZ == p))
409+ else (cb == p))
406410 then throw("Admin blocked")
407411 else {
408- let dj = de.assetPair.amountAsset
409- let dk = if ((dj == unit))
410- then "WAVES"
411- else toBase58String(value(dj))
412- let dl = de.assetPair.priceAsset
412+ let dl = dg.assetPair.amountAsset
413413 let dm = if ((dl == unit))
414414 then "WAVES"
415415 else toBase58String(value(dl))
416- if (if ((dk != df))
416+ let dn = dg.assetPair.priceAsset
417+ let do = if ((dn == unit))
418+ then "WAVES"
419+ else toBase58String(value(dn))
420+ if (if ((dm != dh))
417421 then true
418- else (dm != dg))
422+ else (do != di))
419423 then throw("Wr assets")
420424 else {
421- let dn = de.price
422- let cE = fraction(a, bF, bE)
423- let do = J(dn, a, cE)
424- let dp = if ((de.orderType == Buy))
425- then (cg >= do)
426- else (do >= cg)
425+ let dp = dg.price
426+ let cG = fraction(a, bH, bG)
427+ let dq = K(dp, a, cG)
428+ let dr = if ((dg.orderType == Buy))
429+ then (ci >= dq)
430+ else (dq >= ci)
427431 true
428432 }
429433 }
430434 }
431435
432436
433-func dq (dr) = if ((size(dr.payments) != 1))
437+func ds (dt) = if ((size(dt.payments) != 1))
434438 then throw("1 pmnt exp")
435439 else {
436- let ds = value(dr.payments[0])
437- let bR = value(ds.assetId)
438- let cx = ds.amount
439- let cJ = bP(toBase58String(dr.transactionId), toBase58String(bR), cx, dr.caller)
440- let cl = cJ._1
441- let cm = cJ._2
442- let bZ = parseIntValue(cJ._9)
443- let cn = cJ._10
444- if (if (aD())
440+ let du = value(dt.payments[0])
441+ let bT = value(du.assetId)
442+ let cz = du.amount
443+ let cL = bR(toBase58String(dt.transactionId), toBase58String(bT), cz, dt.caller)
444+ let cn = cL._1
445+ let co = cL._2
446+ let cb = parseIntValue(cL._9)
447+ let cp = cL._10
448+ if (if (aE())
445449 then true
446- else (bZ == p))
447- then throw(("Admin blocked: " + toString(bZ)))
448- else $Tuple5(cl, cm, cx, bR, cn)
450+ else (cb == p))
451+ then throw(("Admin blocked: " + toString(cb)))
452+ else $Tuple5(cn, co, cz, bT, cp)
449453 }
450454
451455
452-func dt (du,Y,dv,dw,bm,cu,cv,cw,cx,cy) = {
453- let cJ = co(Y, bm, value(dv).amount, value(dv).assetId, value(dw).amount, value(dw).assetId, du, (Y == ""), cu, cv, cw, cx, cy)
454- let bZ = parseIntValue(cJ._8)
455- if (if (if (aD())
456+func dv (dw,Z,dx,dy,bo,cw,cx,cy,cz,cA) = {
457+ let cL = cq(Z, bo, value(dx).amount, value(dx).assetId, value(dy).amount, value(dy).assetId, dw, (Z == ""), cw, cx, cy, cz, cA)
458+ let cb = parseIntValue(cL._8)
459+ if (if (if (aE())
456460 then true
457- else (bZ == n))
461+ else (cb == n))
458462 then true
459- else (bZ == p))
460- then throw(("Blocked:" + toString(bZ)))
461- else cJ
463+ else (cb == p))
464+ then throw(("Blocked:" + toString(cb)))
465+ else cL
462466 }
463467
464468
465-func dx (dy) = {
466- let dz = g
467- let dA = dy[0]
468- let dB = dy[1]
469- let dC = parseBigIntValue(i)
470- let dD = (parseBigIntValue(aC) * dC)
471- let dE = (dA + dB)
472- if ((dE == e))
469+func dz (dA) = {
470+ let dB = g
471+ let dC = dA[0]
472+ let dD = dA[1]
473+ let dE = parseBigIntValue(i)
474+ let dF = (parseBigIntValue(aD) * dE)
475+ let dG = (dC + dD)
476+ if ((dG == e))
473477 then e
474478 else {
475- let dF = (dD * dz)
476- let dG = (((dA * dB) * dz) * dz)
477- let dH = ((dF * dE) / dC)
478- let dI = (dF - dC)
479- let dJ = (dz + f)
480- func dK (dL,dM) = {
481- let dN = dL
482- let dO = dN._1
483- let dP = dN._2
484- if ((dP != unit))
485- then dL
479+ let dH = (dF * dB)
480+ let dI = (((dC * dD) * dB) * dB)
481+ let dJ = ((dH * dG) / dE)
482+ let dK = (dH - dE)
483+ let dL = (dB + f)
484+ func dM (dN,dO) = {
485+ let dP = dN
486+ let dQ = dP._1
487+ let dR = dP._2
488+ if ((dR != unit))
489+ then dN
486490 else {
487- let dQ = (((dO * dO) * dO) / dG)
488- let dR = (((dH + (dQ * dz)) * dO) / (((dI * dO) / dC) + (dJ * dQ)))
489- let dS = O((dR - value(dO)))
490- if ((f >= dS))
491- then $Tuple2(dR, dM)
492- else $Tuple2(dR, unit)
491+ let dS = (((dQ * dQ) * dQ) / dI)
492+ let dT = (((dJ + (dS * dB)) * dQ) / (((dK * dQ) / dE) + (dL * dS)))
493+ let dU = P((dT - value(dQ)))
494+ if ((f >= dU))
495+ then $Tuple2(dT, dO)
496+ else $Tuple2(dT, unit)
493497 }
494498 }
495499
496- let dT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
497- let dU = {
498- let dV = dT
499- let dW = size(dV)
500- let dX = $Tuple2(dE, unit)
501- func dY (dZ,ea) = if ((ea >= dW))
502- then dZ
503- else dK(dZ, dV[ea])
500+ let dV = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
501+ let dW = {
502+ let dX = dV
503+ let dY = size(dX)
504+ let dZ = $Tuple2(dG, unit)
505+ func ea (eb,ec) = if ((ec >= dY))
506+ then eb
507+ else dM(eb, dX[ec])
504508
505- func eb (dZ,ea) = if ((ea >= dW))
506- then dZ
509+ func ed (eb,ec) = if ((ec >= dY))
510+ then eb
507511 else throw("List size exceeds 15")
508512
509- eb(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
513+ ed(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(dZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
510514 }
511- let dO = dU._1
512- let dP = dU._2
513- if ((dP != unit))
514- then dO
515- else throw(("D calculation error, D = " + toString(dO)))
515+ let dQ = dW._1
516+ let dR = dW._2
517+ if ((dR != unit))
518+ then dQ
519+ else throw(("D calculation error, D = " + toString(dQ)))
516520 }
517521 }
518522
519523
520-func ec (dy,dr,ed) = {
521- let dz = g
522- let ee = dy[if ((dr == 0))
524+func ee (dA,dt,ef) = {
525+ let dB = g
526+ let eg = dA[if ((dt == 0))
523527 then 1
524528 else 0]
525- let dC = parseBigIntValue(i)
526- let dD = (parseBigIntValue(aC) * dC)
527- let dE = ee
528- let dF = (dD * dz)
529- let ef = (((((ed * ed) / (ee * dz)) * ed) * dC) / (dF * dz))
530- let eg = ((dE + ((ed * dC) / dF)) - ed)
531- func dK (dL,dM) = {
532- let eh = dL
533- let ei = eh._1
534- let dP = eh._2
535- if ((dP != unit))
536- then dL
529+ let dE = parseBigIntValue(i)
530+ let dF = (parseBigIntValue(aD) * dE)
531+ let dG = eg
532+ let dH = (dF * dB)
533+ let eh = (((((ef * ef) / (eg * dB)) * ef) * dE) / (dH * dB))
534+ let ei = ((dG + ((ef * dE) / dH)) - ef)
535+ func dM (dN,dO) = {
536+ let ej = dN
537+ let ek = ej._1
538+ let dR = ej._2
539+ if ((dR != unit))
540+ then dN
537541 else {
538- let ej = (((ei * ei) + ef) / ((g * ei) + eg))
539- let ek = O((ej - value(ei)))
540- if ((f >= ek))
541- then $Tuple2(ej, dM)
542- else $Tuple2(ej, unit)
542+ let el = (((ek * ek) + eh) / ((g * ek) + ei))
543+ let em = P((el - value(ek)))
544+ if ((f >= em))
545+ then $Tuple2(el, dO)
546+ else $Tuple2(el, unit)
543547 }
544548 }
545549
546- let dT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
547- let el = {
548- let dV = dT
549- let dW = size(dV)
550- let dX = $Tuple2(ed, unit)
551- func dY (dZ,ea) = if ((ea >= dW))
552- then dZ
553- else dK(dZ, dV[ea])
550+ let dV = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
551+ let en = {
552+ let dX = dV
553+ let dY = size(dX)
554+ let dZ = $Tuple2(ef, unit)
555+ func ea (eb,ec) = if ((ec >= dY))
556+ then eb
557+ else dM(eb, dX[ec])
554558
555- func eb (dZ,ea) = if ((ea >= dW))
556- then dZ
559+ func ed (eb,ec) = if ((ec >= dY))
560+ then eb
557561 else throw("List size exceeds 15")
558562
559- eb(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
563+ ed(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(dZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
560564 }
561- let ei = el._1
562- let dP = el._2
563- if ((dP != unit))
564- then ei
565- else throw(("Y calculation error, Y = " + toString(ei)))
565+ let ek = en._1
566+ let dR = en._2
567+ if ((dR != unit))
568+ then ek
569+ else throw(("Y calculation error, Y = " + toString(ek)))
566570 }
567571
568572
569-func em (en,bR,bT,Y) = {
570- let eo = aG()
571- let bV = eo[t]
572- let bW = eo[u]
573- let bU = eo[s]
574- let cD = parseIntValue(eo[v])
575- let cE = parseIntValue(eo[w])
576- let ep = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bU)), "invalid lp asset").quantity)
577- let eq = if ((ep > e))
573+func eo (ep,bT,bV,Z) = {
574+ let eq = aH()
575+ let bX = eq[t]
576+ let bY = eq[u]
577+ let bW = eq[s]
578+ let cF = parseIntValue(eq[v])
579+ let cG = parseIntValue(eq[w])
580+ let er = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bW)), "invalid lp asset").quantity)
581+ let es = if ((er > e))
578582 then true
579583 else throw("initial deposit requires all coins")
580- if ((eq == eq))
584+ if ((es == es))
581585 then {
582- let cb = be(bV)
583- let cd = be(bW)
584- let er = if ((Y == ""))
585- then $Tuple2(cb, cd)
586- else if ((bR == bV))
587- then if ((en > cb))
586+ let cd = bg(bX)
587+ let cf = bg(bY)
588+ let et = if ((Z == ""))
589+ then $Tuple2(cd, cf)
590+ else if ((bT == bX))
591+ then if ((ep > cd))
588592 then throw("invalid payment amount")
589- else $Tuple2((cb - en), cd)
590- else if ((bR == bW))
591- then if ((en > cd))
593+ else $Tuple2((cd - ep), cf)
594+ else if ((bT == bY))
595+ then if ((ep > cf))
592596 then throw("invalid payment amount")
593- else $Tuple2(cb, (cd - en))
597+ else $Tuple2(cd, (cf - ep))
594598 else throw("wrong pmtAssetId")
595- let es = er._1
596- let et = er._2
597- let eu = if ((bR == bV))
598- then $Tuple2(en, 0)
599- else if ((bR == bW))
600- then $Tuple2(0, en)
599+ let eu = et._1
600+ let ev = et._2
601+ let ew = if ((bT == bX))
602+ then $Tuple2(ep, 0)
603+ else if ((bT == bY))
604+ then $Tuple2(0, ep)
601605 else throw("invalid payment")
602- let ev = eu._1
603- let ew = eu._2
604- let ex = bM(ev)._1
605- let ey = bM(ew)._1
606- let bO = bM(en)._2
607- let ez = (es + ex)
608- let eA = (et + ey)
609- let br = dx([toBigInt(es), toBigInt(et)])
610- let bq = dx([toBigInt(ez), toBigInt(eA)])
611- let eB = if ((bq > br))
606+ let ex = ew._1
607+ let ey = ew._2
608+ let ez = bO(ex)._1
609+ let eA = bO(ey)._1
610+ let bQ = bO(ep)._2
611+ let eB = (eu + ez)
612+ let eC = (ev + eA)
613+ let bt = dz([toBigInt(eu), toBigInt(ev)])
614+ let bs = dz([toBigInt(eB), toBigInt(eC)])
615+ let eD = if ((bs > bt))
612616 then true
613617 else throw()
614- if ((eB == eB))
618+ if ((eD == eD))
615619 then {
616- let eC = fraction(ep, (bq - br), br)
617- let cg = G(bg(D(eA, cE), D(ez, cD)), a)
618- let dc = [IntegerEntry(S(), cg), IntegerEntry(T(height, lastBlock.timestamp), cg), StringEntry(W(bT, Y), aP(ev, ew, toInt(eC), cg, 0, 0, height, lastBlock.timestamp, 0, 0))]
619- let eD = fraction(et, a, es)
620- let eE = fraction(en, a, (eD + a))
621- let eF = (en - eE)
622- let eG = fraction(ep, toBigInt(eF), toBigInt(et))
623- let eH = toInt(fraction((eC - eG), b, eG))
624- $Tuple4(toInt(eC), dc, bO, eH)
620+ let eE = fraction(er, (bs - bt), bt)
621+ let ci = H(bi(E(eC, cG), E(eB, cF)), a)
622+ let de = [IntegerEntry(T(), ci), IntegerEntry(U(height, lastBlock.timestamp), ci), StringEntry(X(bV, Z), aR(ex, ey, toInt(eE), ci, 0, 0, height, lastBlock.timestamp, 0, 0))]
623+ let eF = fraction(ev, a, eu)
624+ let eG = fraction(ep, a, (eF + a))
625+ let eH = (ep - eG)
626+ let eI = fraction(er, toBigInt(eH), toBigInt(ev))
627+ let eJ = toInt(fraction((eE - eI), b, eI))
628+ $Tuple4(toInt(eE), de, bQ, eJ)
625629 }
626630 else throw("Strict value is not equal to itself.")
627631 }
629633 }
630634
631635
632-func eI (eJ,eK,eL,du,eM,eN) = if ((size(eL) != 1))
636+func eK (eL,eM,eN,dw,eO,eP) = if ((size(eN) != 1))
633637 then throw("1 pmnt expd")
634638 else {
635- let eo = aG()
636- let bU = eo[s]
637- let bV = eo[t]
638- let bW = eo[u]
639- let eO = parseIntValue(eo[v])
640- let eP = parseIntValue(eo[w])
641- let eQ = eo[r]
642- let bT = if ((du == this))
643- then eM
644- else du
645- let ds = value(eL[0])
646- let bR = value(ds.assetId)
647- let cx = ds.amount
648- if ((1000000000 > cx))
639+ let eq = aH()
640+ let bW = eq[s]
641+ let bX = eq[t]
642+ let bY = eq[u]
643+ let eQ = parseIntValue(eq[v])
644+ let eR = parseIntValue(eq[w])
645+ let eS = eq[r]
646+ let bV = if ((dw == aQ))
647+ then eO
648+ else dw
649+ let du = value(eN[0])
650+ let bT = value(du.assetId)
651+ let cz = du.amount
652+ if ((1000000000 > cz))
649653 then throw("Min pmt 10 LP")
650654 else {
651- let bQ = toBase58String(eN)
652- if ((bU != toBase58String(bR)))
655+ let bS = toBase58String(eP)
656+ if ((bW != toBase58String(bT)))
653657 then throw("Wrong LP")
654658 else {
655- let cb = be(bV)
656- let cd = be(bW)
657- let eR = {
658- let eS = invoke(this, "getOneTknV2READONLY", [eJ, cx], nil)
659- if ($isInstanceOf(eS, "(Int, Int)"))
660- then eS
661- else throw(($getType(eS) + " couldn't be cast to (Int, Int)"))
659+ let cd = bg(bX)
660+ let cf = bg(bY)
661+ let eT = {
662+ let eU = invoke(this, "getOneTknV2READONLY", [eL, cz], nil)
663+ if ($isInstanceOf(eU, "(Int, Int)"))
664+ then eU
665+ else throw(($getType(eU) + " couldn't be cast to (Int, Int)"))
662666 }
663- let eT = eR._1
664- let bO = eR._2
665- let eU = if (if ((eK > 0))
666- then (eK > eT)
667+ let eV = eT._1
668+ let bQ = eT._2
669+ let eW = if (if ((eM > 0))
670+ then (eM > eV)
667671 else false)
668- then throw(makeString(["amount to receive is less than ", toString(eK)], ""))
669- else eT
670- let eV = if ((eJ == bV))
671- then $Tuple4(eU, 0, ((cb - eU) - bO), cd)
672- else if ((eJ == bW))
673- then $Tuple4(0, eU, cb, ((cd - eU) - bO))
672+ then throw(makeString(["amount to receive is less than ", toString(eM)], ""))
673+ else eV
674+ let eX = if ((eL == bX))
675+ then $Tuple4(eW, 0, ((cd - eW) - bQ), cf)
676+ else if ((eL == bY))
677+ then $Tuple4(0, eW, cd, ((cf - eW) - bQ))
674678 else throw("invalid out asset id")
675- let eW = eV._1
676- let eX = eV._2
677- let ez = eV._3
678- let eA = eV._4
679- let eY = bg(D(eA, eP), D(ez, eO))
680- let eZ = G(eY, a)
681- let fa = if ((eJ == "WAVES"))
679+ let eY = eX._1
680+ let eZ = eX._2
681+ let eB = eX._3
682+ let eC = eX._4
683+ let fa = bi(E(eC, eR), E(eB, eQ))
684+ let fb = H(fa, a)
685+ let fc = if ((eL == "WAVES"))
682686 then unit
683- else fromBase58String(eJ)
684- let fb = if ((bO > 0))
685- then [ScriptTransfer(aF, bO, fa)]
687+ else fromBase58String(eL)
688+ let fd = if ((bQ > 0))
689+ then [ScriptTransfer(aG, bQ, fc)]
686690 else nil
687- let cn = ([ScriptTransfer(bT, eU, fa), StringEntry(Z(toString(bT), bQ), ba(eW, eX, cx, eZ, height, lastBlock.timestamp)), IntegerEntry(S(), eZ), IntegerEntry(T(height, lastBlock.timestamp), eZ)] ++ fb)
688- if ((cn == cn))
691+ let cp = ([ScriptTransfer(bV, eW, fc), StringEntry(aa(toString(bV), bS), bc(eY, eZ, cz, fb, height, lastBlock.timestamp)), IntegerEntry(T(), fb), IntegerEntry(U(height, lastBlock.timestamp), fb)] ++ fd)
692+ if ((cp == cp))
689693 then {
690- let fc = invoke(aB, "burn", [cx], [AttachedPayment(bR, cx)])
691- if ((fc == fc))
692- then $Tuple2(cn, eU)
694+ let fe = invoke(aC, "burn", [cz], [AttachedPayment(bT, cz)])
695+ if ((fe == fe))
696+ then $Tuple2(cp, eW)
693697 else throw("Strict value is not equal to itself.")
694698 }
695699 else throw("Strict value is not equal to itself.")
698702 }
699703
700704
701-func fd () = {
702- let av = getString(Q())
703- if ($isInstanceOf(av, "String"))
705+func ff () = {
706+ let aw = getString(R())
707+ if ($isInstanceOf(aw, "String"))
704708 then {
705- let dE = av
706- fromBase58String(dE)
709+ let dG = aw
710+ fromBase58String(dG)
707711 }
708- else if ($isInstanceOf(av, "Unit"))
712+ else if ($isInstanceOf(aw, "Unit"))
709713 then unit
710714 else throw("Match error")
711715 }
712716
713717
714-func fe () = {
715- let av = getString(R())
716- if ($isInstanceOf(av, "String"))
718+func fg () = {
719+ let aw = getString(S())
720+ if ($isInstanceOf(aw, "String"))
717721 then {
718- let dE = av
719- fromBase58String(dE)
722+ let dG = aw
723+ fromBase58String(dG)
720724 }
721- else if ($isInstanceOf(av, "Unit"))
725+ else if ($isInstanceOf(aw, "Unit"))
722726 then unit
723727 else throw("Match error")
724728 }
725729
726730
727-let ff = throw("Permission denied")
731+let fh = throw("Permission denied")
728732
729-func fg (dr) = {
730- let av = fd()
731- if ($isInstanceOf(av, "ByteVector"))
733+func fi (dt) = {
734+ let aw = ff()
735+ if ($isInstanceOf(aw, "ByteVector"))
732736 then {
733- let fh = av
734- if ((dr.callerPublicKey == fh))
737+ let fj = aw
738+ if ((dt.callerPublicKey == fj))
735739 then true
736- else ff
740+ else fh
737741 }
738- else if ($isInstanceOf(av, "Unit"))
739- then if ((dr.caller == this))
742+ else if ($isInstanceOf(aw, "Unit"))
743+ then if ((dt.caller == this))
740744 then true
741- else ff
745+ else fh
742746 else throw("Match error")
743747 }
744748
745749
746-@Callable(dr)
747-func constructor (P) = {
748- let ef = fg(dr)
749- if ((ef == ef))
750- then [StringEntry(P(), P)]
750+@Callable(dt)
751+func constructor (Q) = {
752+ let eh = fi(dt)
753+ if ((eh == eh))
754+ then [StringEntry(Q(), Q)]
751755 else throw("Strict value is not equal to itself.")
752756 }
753757
754758
755759
756-@Callable(dr)
757-func setManager (fi) = {
758- let ef = fg(dr)
759- if ((ef == ef))
760+@Callable(dt)
761+func setManager (fk) = {
762+ let eh = fi(dt)
763+ if ((eh == eh))
760764 then {
761- let fj = fromBase58String(fi)
762- if ((fj == fj))
763- then [StringEntry(R(), fi)]
765+ let fl = fromBase58String(fk)
766+ if ((fl == fl))
767+ then [StringEntry(S(), fk)]
764768 else throw("Strict value is not equal to itself.")
765769 }
766770 else throw("Strict value is not equal to itself.")
768772
769773
770774
771-@Callable(dr)
775+@Callable(dt)
772776 func confirmManager () = {
773- let bL = fe()
774- let fk = if (isDefined(bL))
777+ let bN = fg()
778+ let fm = if (isDefined(bN))
775779 then true
776780 else throw("No pending manager")
777- if ((fk == fk))
781+ if ((fm == fm))
778782 then {
779- let fl = if ((dr.callerPublicKey == value(bL)))
783+ let fn = if ((dt.callerPublicKey == value(bN)))
780784 then true
781785 else throw("You are not pending manager")
782- if ((fl == fl))
783- then [StringEntry(Q(), toBase58String(value(bL))), DeleteEntry(R())]
786+ if ((fn == fn))
787+ then [StringEntry(R(), toBase58String(value(bN))), DeleteEntry(S())]
784788 else throw("Strict value is not equal to itself.")
785789 }
786790 else throw("Strict value is not equal to itself.")
788792
789793
790794
791-@Callable(dr)
792-func put (fm,fn) = {
793- let fo = aK()
794- let fp = valueOrErrorMessage(addressFromString(fo[z]), "Wr st addr")
795- let fq = valueOrErrorMessage(addressFromString(fo[A]), "Wr sl addr")
796- if ((0 > fm))
795+@Callable(dt)
796+func put (fo,fp) = {
797+ let fq = aL()
798+ let fr = valueOrErrorMessage(addressFromString(fq[z]), "Wr st addr")
799+ let fs = valueOrErrorMessage(addressFromString(fq[B]), "Wr sl addr")
800+ if ((0 > fo))
797801 then throw("Wrong slippage")
798- else if ((size(dr.payments) != 2))
802+ else if ((size(dt.payments) != 2))
799803 then throw("2 pmnts expd")
800804 else {
801- let fr = dt(toString(dr.caller), toBase58String(dr.transactionId), AttachedPayment(value(dr.payments[0]).assetId, value(dr.payments[0]).amount), dr.payments[1], fm, true, false, true, 0, "")
802- let cW = fr._2
803- let fs = fr._7
804- let cn = fr._9
805- let cX = fr._10
806- let cY = fr._11
807- let bV = fr._12
808- let bW = fr._13
809- let cJ = invoke(aB, "emit", [cW], nil)
810- if ((cJ == cJ))
805+ let ft = dv(toString(dt.caller), toBase58String(dt.transactionId), AttachedPayment(value(dt.payments[0]).assetId, value(dt.payments[0]).amount), dt.payments[1], fo, true, false, true, 0, "")
806+ let cY = ft._2
807+ let fu = ft._7
808+ let cp = ft._9
809+ let cZ = ft._10
810+ let da = ft._11
811+ let bX = ft._12
812+ let bY = ft._13
813+ let cL = invoke(aC, "emit", [cY], nil)
814+ if ((cL == cL))
811815 then {
812- let ft = {
813- let av = cJ
814- if ($isInstanceOf(av, "Address"))
816+ let fv = {
817+ let aw = cL
818+ if ($isInstanceOf(aw, "Address"))
815819 then {
816- let fu = av
817- invoke(fu, "emit", [cW], nil)
820+ let fw = aw
821+ invoke(fw, "emit", [cY], nil)
818822 }
819823 else unit
820824 }
821- if ((ft == ft))
825+ if ((fv == fv))
822826 then {
823- let fv = if ((cX > 0))
824- then invoke(fq, "put", nil, [AttachedPayment(bV, cX)])
827+ let fx = if ((cZ > 0))
828+ then invoke(fs, "put", nil, [AttachedPayment(bX, cZ)])
825829 else nil
826- if ((fv == fv))
830+ if ((fx == fx))
827831 then {
828- let fw = if ((cY > 0))
829- then invoke(fq, "put", nil, [AttachedPayment(bW, cY)])
832+ let fy = if ((da > 0))
833+ then invoke(fs, "put", nil, [AttachedPayment(bY, da)])
830834 else nil
831- if ((fw == fw))
835+ if ((fy == fy))
832836 then {
833- let fx = if (fn)
837+ let fz = if (fp)
834838 then {
835- let fy = invoke(fp, "stake", nil, [AttachedPayment(fs, cW)])
836- if ((fy == fy))
839+ let fA = invoke(fr, "stake", nil, [AttachedPayment(fu, cY)])
840+ if ((fA == fA))
837841 then nil
838842 else throw("Strict value is not equal to itself.")
839843 }
840- else [ScriptTransfer(dr.caller, cW, fs)]
841- (cn ++ fx)
844+ else [ScriptTransfer(dt.caller, cY, fu)]
845+ (cp ++ fz)
842846 }
843847 else throw("Strict value is not equal to itself.")
844848 }
852856
853857
854858
855-@Callable(dr)
856-func putOneTknV2 (eK,fn) = if ((size(dr.payments) != 1))
859+@Callable(dt)
860+func putOneTknV2 (eM,fp) = if ((size(dt.payments) != 1))
857861 then throw("1 pmnt expd")
858862 else {
859- let eo = aG()
860- let bV = eo[t]
861- let bW = eo[u]
862- let bU = fromBase58String(eo[s])
863- let eO = parseIntValue(eo[v])
864- let eP = parseIntValue(eo[w])
865- let bT = if ((dr.caller == this))
866- then dr.originCaller
867- else dr.caller
868- let ds = value(dr.payments[0])
869- let bR = toBase58String(value(ds.assetId))
870- let cx = ds.amount
871- if ((10000000 > cx))
863+ let eq = aH()
864+ let bX = eq[t]
865+ let bY = eq[u]
866+ let bW = fromBase58String(eq[s])
867+ let eQ = parseIntValue(eq[v])
868+ let eR = parseIntValue(eq[w])
869+ let bV = if ((dt.caller == this))
870+ then dt.originCaller
871+ else dt.caller
872+ let du = value(dt.payments[0])
873+ let bT = toBase58String(value(du.assetId))
874+ let cz = du.amount
875+ if ((10000000 > cz))
872876 then throw("Wrong pmt amt")
873877 else {
874- let fz = em(cx, bR, toString(bT), toBase58String(dr.transactionId))
875- let fA = fz._1
876- let cn = fz._2
877- let bO = fz._3
878- let cW = if (if ((eK > 0))
879- then (eK > fA)
878+ let fB = eo(cz, bT, toString(bV), toBase58String(dt.transactionId))
879+ let fC = fB._1
880+ let cp = fB._2
881+ let bQ = fB._3
882+ let cY = if (if ((eM > 0))
883+ then (eM > fC)
880884 else false)
881- then throw(makeString(["amount to receive is less than ", toString(eK)], ""))
882- else fA
883- let fr = invoke(aB, "emit", [cW], nil)
884- if ((fr == fr))
885+ then throw(makeString(["amount to receive is less than ", toString(eM)], ""))
886+ else fC
887+ let ft = invoke(aC, "emit", [cY], nil)
888+ if ((ft == ft))
885889 then {
886- let ft = {
887- let av = fr
888- if ($isInstanceOf(av, "Address"))
890+ let fv = {
891+ let aw = ft
892+ if ($isInstanceOf(aw, "Address"))
889893 then {
890- let fu = av
891- invoke(fu, "emit", [cW], nil)
894+ let fw = aw
895+ invoke(fw, "emit", [cY], nil)
892896 }
893897 else unit
894898 }
895- if ((ft == ft))
899+ if ((fv == fv))
896900 then {
897- let fx = if (fn)
901+ let fz = if (fp)
898902 then {
899- let fy = invoke(aM, "stake", nil, [AttachedPayment(bU, cW)])
900- if ((fy == fy))
903+ let fA = invoke(aN, "stake", nil, [AttachedPayment(bW, cY)])
904+ if ((fA == fA))
901905 then nil
902906 else throw("Strict value is not equal to itself.")
903907 }
904- else [ScriptTransfer(dr.caller, cW, bU)]
905- let fb = if ((bO > 0))
906- then [ScriptTransfer(aF, bO, fromBase58String(bR))]
908+ else [ScriptTransfer(dt.caller, cY, bW)]
909+ let fd = if ((bQ > 0))
910+ then [ScriptTransfer(aG, bQ, fromBase58String(bT))]
907911 else nil
908- $Tuple2(((cn ++ fx) ++ fb), cW)
912+ $Tuple2(((cp ++ fz) ++ fd), cY)
909913 }
910914 else throw("Strict value is not equal to itself.")
911915 }
915919
916920
917921
918-@Callable(dr)
919-func putForFree (fB) = if ((0 > fB))
922+@Callable(dt)
923+func putForFree (fD) = if ((0 > fD))
920924 then throw("Wrong slpg")
921- else if ((size(dr.payments) != 2))
925+ else if ((size(dt.payments) != 2))
922926 then throw("2 pmnts expd")
923927 else {
924- let fC = dt(toString(dr.caller), toBase58String(dr.transactionId), AttachedPayment(value(dr.payments[0]).assetId, value(dr.payments[0]).amount), dr.payments[1], fB, false, false, true, 0, "")
925- fC._9
928+ let fE = dv(toString(dt.caller), toBase58String(dt.transactionId), AttachedPayment(value(dt.payments[0]).assetId, value(dt.payments[0]).amount), dt.payments[1], fD, false, false, true, 0, "")
929+ fE._9
926930 }
927931
928932
929933
930-@Callable(dr)
934+@Callable(dt)
931935 func get () = {
932- let cJ = dq(dr)
933- let fD = cJ._1
934- let cm = cJ._2
935- let cx = cJ._3
936- let bR = cJ._4
937- let cn = cJ._5
938- let eg = invoke(aB, "burn", [cx], [AttachedPayment(bR, cx)])
939- if ((eg == eg))
940- then cn
936+ let cL = ds(dt)
937+ let fF = cL._1
938+ let co = cL._2
939+ let cz = cL._3
940+ let bT = cL._4
941+ let cp = cL._5
942+ let ei = invoke(aC, "burn", [cz], [AttachedPayment(bT, cz)])
943+ if ((ei == ei))
944+ then cp
941945 else throw("Strict value is not equal to itself.")
942946 }
943947
944948
945949
946-@Callable(dr)
947-func getOneTknV2 (eJ,eK) = {
948- let fE = eI(eJ, eK, dr.payments, dr.caller, dr.originCaller, dr.transactionId)
949- let cn = fE._1
950- let eU = fE._2
951- $Tuple2(cn, eU)
950+@Callable(dt)
951+func getOneTknV2 (eL,eM) = {
952+ let fG = eK(eL, eM, dt.payments, dt.caller, dt.originCaller, dt.transactionId)
953+ let cp = fG._1
954+ let eW = fG._2
955+ $Tuple2(cp, eW)
952956 }
953957
954958
955959
956-@Callable(dr)
957-func getOneTknV2READONLY (eJ,fF) = {
958- let eo = aG()
959- let bV = eo[t]
960- let bW = eo[u]
961- let bU = eo[s]
962- let dy = [toBigInt(be(bV)), toBigInt(be(bW))]
963- let fG = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bU)), "invalid lp asset").quantity)
964- let br = dx(dy)
965- let bq = (br - fraction(toBigInt(fF), br, fG))
966- let fH = if ((eJ == bV))
960+@Callable(dt)
961+func getOneTknV2READONLY (eL,fH) = {
962+ let eq = aH()
963+ let bX = eq[t]
964+ let bY = eq[u]
965+ let bW = eq[s]
966+ let dA = [toBigInt(bg(bX)), toBigInt(bg(bY))]
967+ let fI = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bW)), "invalid lp asset").quantity)
968+ let bt = dz(dA)
969+ let bs = (bt - fraction(toBigInt(fH), bt, fI))
970+ let fJ = if ((eL == bX))
967971 then 0
968- else if ((eJ == bW))
972+ else if ((eL == bY))
969973 then 1
970974 else throw("invalid out asset id")
971- let fI = ec(dy, fH, bq)
972- let fJ = (dy[fH] - fI)
973- let fK = toInt((fJ - f))
974- let fL = bM(fK)
975- let eT = fL._1
976- let bO = fL._2
977- $Tuple2(nil, $Tuple2(eT, bO))
975+ let fK = ee(dA, fJ, bs)
976+ let fL = (dA[fJ] - fK)
977+ let fM = toInt((fL - f))
978+ let fN = bO(fM)
979+ let eV = fN._1
980+ let bQ = fN._2
981+ $Tuple2(nil, $Tuple2(eV, bQ))
978982 }
979983
980984
981985
982-@Callable(dr)
983-func getOneTknV2WithBonusREADONLY (eJ,fF) = {
984- let eo = aG()
985- let bV = eo[t]
986- let bW = eo[u]
987- let bU = eo[s]
988- let cb = be(bV)
989- let cd = be(bW)
990- let fM = {
991- let eS = invoke(this, "getOneTknV2READONLY", [eJ, fF], nil)
992- if ($isInstanceOf(eS, "(Int, Int)"))
993- then eS
994- else throw(($getType(eS) + " couldn't be cast to (Int, Int)"))
986+@Callable(dt)
987+func getOneTknV2WithBonusREADONLY (eL,fH) = {
988+ let eq = aH()
989+ let bX = eq[t]
990+ let bY = eq[u]
991+ let bW = eq[s]
992+ let cd = bg(bX)
993+ let cf = bg(bY)
994+ let fO = {
995+ let eU = invoke(this, "getOneTknV2READONLY", [eL, fH], nil)
996+ if ($isInstanceOf(eU, "(Int, Int)"))
997+ then eU
998+ else throw(($getType(eU) + " couldn't be cast to (Int, Int)"))
995999 }
996- let eT = fM._1
997- let bO = fM._2
998- let cJ = bP("", bU, fF, this)
999- let cl = cJ._1
1000- let cm = cJ._2
1001- let fN = (cl + cm)
1002- let eH = fraction((eT - fN), a, fN)
1003- $Tuple2(nil, $Tuple3(eT, bO, eH))
1000+ let eV = fO._1
1001+ let bQ = fO._2
1002+ let cL = bR("", bW, fH, this)
1003+ let cn = cL._1
1004+ let co = cL._2
1005+ let fP = (cn + co)
1006+ let eJ = fraction((eV - fP), a, fP)
1007+ $Tuple2(nil, $Tuple3(eV, bQ, eJ))
10041008 }
10051009
10061010
10071011
1008-@Callable(dr)
1009-func getNoLess (fO,fP) = {
1010- let cJ = dq(dr)
1011- let cl = cJ._1
1012- let cm = cJ._2
1013- let cx = cJ._3
1014- let bR = cJ._4
1015- let cn = cJ._5
1016- if ((fO > cl))
1017- then throw(((("Failed: " + toString(cl)) + " < ") + toString(fO)))
1018- else if ((fP > cm))
1019- then throw(((("Failed: " + toString(cm)) + " < ") + toString(fP)))
1012+@Callable(dt)
1013+func getNoLess (fQ,fR) = {
1014+ let cL = ds(dt)
1015+ let cn = cL._1
1016+ let co = cL._2
1017+ let cz = cL._3
1018+ let bT = cL._4
1019+ let cp = cL._5
1020+ if ((fQ > cn))
1021+ then throw(((("Failed: " + toString(cn)) + " < ") + toString(fQ)))
1022+ else if ((fR > co))
1023+ then throw(((("Failed: " + toString(co)) + " < ") + toString(fR)))
10201024 else {
1021- let fQ = invoke(aB, "burn", [cx], [AttachedPayment(bR, cx)])
1022- if ((fQ == fQ))
1023- then cn
1025+ let fS = invoke(aC, "burn", [cz], [AttachedPayment(bT, cz)])
1026+ if ((fS == fS))
1027+ then cp
10241028 else throw("Strict value is not equal to itself.")
10251029 }
10261030 }
10271031
10281032
10291033
1030-@Callable(dr)
1031-func unstakeAndGet (bN) = {
1032- let fR = if ((size(dr.payments) != 0))
1034+@Callable(dt)
1035+func unstakeAndGet (bP) = {
1036+ let fT = if ((size(dt.payments) != 0))
10331037 then throw("No pmnts expd")
10341038 else true
1035- if ((fR == fR))
1039+ if ((fT == fT))
10361040 then {
1037- let bD = aG()
1038- let fS = aK()
1039- let fs = fromBase58String(bD[s])
1040- let fT = valueOrErrorMessage(addressFromString(fS[z]), "Wr st addr")
1041- let fU = invoke(fT, "unstake", [toBase58String(fs), bN], nil)
1042- if ((fU == fU))
1041+ let bF = aH()
1042+ let fU = aL()
1043+ let fu = fromBase58String(bF[s])
1044+ let fV = valueOrErrorMessage(addressFromString(fU[z]), "Wr st addr")
1045+ let fW = invoke(fV, "unstake", [toBase58String(fu), bP], nil)
1046+ if ((fW == fW))
10431047 then {
1044- let cJ = bP(toBase58String(dr.transactionId), toBase58String(fs), bN, dr.caller)
1045- let bZ = parseIntValue(cJ._9)
1046- let cn = cJ._10
1047- let fV = if (if (aD())
1048+ let cL = bR(toBase58String(dt.transactionId), toBase58String(fu), bP, dt.caller)
1049+ let cb = parseIntValue(cL._9)
1050+ let cp = cL._10
1051+ let fX = if (if (aE())
10481052 then true
1049- else (bZ == p))
1050- then throw(("Blocked: " + toString(bZ)))
1053+ else (cb == p))
1054+ then throw(("Blocked: " + toString(cb)))
10511055 else true
1052- if ((fV == fV))
1056+ if ((fX == fX))
10531057 then {
1054- let fW = invoke(aB, "burn", [bN], [AttachedPayment(fs, bN)])
1055- if ((fW == fW))
1056- then cn
1058+ let fY = invoke(aC, "burn", [bP], [AttachedPayment(fu, bP)])
1059+ if ((fY == fY))
1060+ then cp
10571061 else throw("Strict value is not equal to itself.")
10581062 }
10591063 else throw("Strict value is not equal to itself.")
10651069
10661070
10671071
1068-@Callable(dr)
1069-func unstakeAndGetOneTknV2 (fX,eJ,eK) = {
1070- let fR = if ((size(dr.payments) != 0))
1072+@Callable(dt)
1073+func unstakeAndGetOneTknV2 (fZ,eL,eM) = {
1074+ let fT = if ((size(dt.payments) != 0))
10711075 then throw("No pmnts expd")
10721076 else true
1073- if ((fR == fR))
1077+ if ((fT == fT))
10741078 then {
1075- let bD = aG()
1076- let fS = aK()
1077- let fs = fromBase58String(bD[s])
1078- let fT = valueOrErrorMessage(addressFromString(fS[z]), "Wr st addr")
1079- let fU = invoke(fT, "unstake", [toBase58String(fs), fX], nil)
1080- if ((fU == fU))
1079+ let bF = aH()
1080+ let fU = aL()
1081+ let fu = fromBase58String(bF[s])
1082+ let fV = valueOrErrorMessage(addressFromString(fU[z]), "Wr st addr")
1083+ let fW = invoke(fV, "unstake", [toBase58String(fu), fZ], nil)
1084+ if ((fW == fW))
10811085 then {
1082- let fY = eI(eJ, eK, [AttachedPayment(fs, fX)], dr.caller, dr.originCaller, dr.transactionId)
1083- let cn = fY._1
1084- let eU = fY._2
1085- $Tuple2(cn, eU)
1086+ let ga = eK(eL, eM, [AttachedPayment(fu, fZ)], dt.caller, dt.originCaller, dt.transactionId)
1087+ let cp = ga._1
1088+ let eW = ga._2
1089+ $Tuple2(cp, eW)
10861090 }
10871091 else throw("Strict value is not equal to itself.")
10881092 }
10911095
10921096
10931097
1094-@Callable(dr)
1095-func putOneTknV2WithBonusREADONLY (fZ,ga) = {
1096- let eo = aG()
1097- let bV = eo[t]
1098- let bW = eo[u]
1099- let bU = eo[s]
1100- let gb = em(fZ, ga, "", "")
1101- let eC = gb._1
1102- let cn = gb._2
1103- let bO = gb._3
1104- let eH = gb._4
1105- $Tuple2(nil, $Tuple3(eC, bO, eH))
1098+@Callable(dt)
1099+func putOneTknV2WithBonusREADONLY (gb,gc) = {
1100+ let eq = aH()
1101+ let bX = eq[t]
1102+ let bY = eq[u]
1103+ let bW = eq[s]
1104+ let gd = eo(gb, gc, "", "")
1105+ let eE = gd._1
1106+ let cp = gd._2
1107+ let bQ = gd._3
1108+ let eJ = gd._4
1109+ $Tuple2(nil, $Tuple3(eE, bQ, eJ))
11061110 }
11071111
11081112
11091113
1110-@Callable(dr)
1111-func activate (gc,gd) = if ((toString(dr.caller) != toString(aB)))
1114+@Callable(dt)
1115+func activate (ge,gf) = if ((toString(dt.caller) != toString(aC)))
11121116 then throw("denied")
1113- else $Tuple2([StringEntry(aa(), gc), StringEntry(ab(), gd)], "success")
1117+ else $Tuple2([StringEntry(ab(), ge), StringEntry(ac(), gf)], "success")
11141118
11151119
11161120
1117-@Callable(dr)
1118-func setS (ge,fV) = if ((toString(dr.caller) != ax(this, ad())))
1119- then ff
1120- else [StringEntry(ge, fV)]
1121+@Callable(dt)
1122+func setS (gg,fX) = if ((toString(dt.caller) != ay(this, ae())))
1123+ then fh
1124+ else [StringEntry(gg, fX)]
11211125
11221126
11231127
1124-@Callable(dr)
1125-func setI (ge,fV) = if ((toString(dr.caller) != ax(this, ad())))
1126- then ff
1127- else [IntegerEntry(ge, fV)]
1128+@Callable(dt)
1129+func setI (gg,fX) = if ((toString(dt.caller) != ay(this, ae())))
1130+ then fh
1131+ else [IntegerEntry(gg, fX)]
11281132
11291133
11301134
1131-@Callable(dr)
1132-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
1135+@Callable(dt)
1136+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aH())
11331137
11341138
11351139
1136-@Callable(dr)
1137-func getAccBalanceWrapperREADONLY (bf) = $Tuple2(nil, be(bf))
1140+@Callable(dt)
1141+func getAccBalanceWrapperREADONLY (bh) = $Tuple2(nil, bg(bh))
11381142
11391143
11401144
1141-@Callable(dr)
1142-func calcPricesWrapperREADONLY (bx,by,bC) = {
1143- let gf = bB(bx, by, bC)
1144- $Tuple2(nil, [toString(gf[0]), toString(gf[1]), toString(gf[2])])
1145+@Callable(dt)
1146+func calcPricesWrapperREADONLY (bz,bA,bE) = {
1147+ let gh = bD(bz, bA, bE)
1148+ $Tuple2(nil, [toString(gh[0]), toString(gh[1]), toString(gh[2])])
11451149 }
11461150
11471151
11481152
1149-@Callable(dr)
1150-func fromX18WrapperREADONLY (H,gg) = $Tuple2(nil, G(parseBigIntValue(H), gg))
1153+@Callable(dt)
1154+func fromX18WrapperREADONLY (I,gi) = $Tuple2(nil, H(parseBigIntValue(I), gi))
11511155
11521156
11531157
1154-@Callable(dr)
1155-func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
1158+@Callable(dt)
1159+func toX18WrapperREADONLY (F,G) = $Tuple2(nil, toString(E(F, G)))
11561160
11571161
11581162
1159-@Callable(dr)
1160-func calcPriceBigIntWrapperREADONLY (bh,bi) = $Tuple2(nil, toString(bg(parseBigIntValue(bh), parseBigIntValue(bi))))
1163+@Callable(dt)
1164+func calcPriceBigIntWrapperREADONLY (bj,bk) = $Tuple2(nil, toString(bi(parseBigIntValue(bj), parseBigIntValue(bk))))
11611165
11621166
11631167
1164-@Callable(dr)
1165-func estimatePutOperationWrapperREADONLY (bQ,bm,cp,cq,cr,cs,gh,ct,cu) = $Tuple2(nil, co(bQ, bm, cp, cq, cr, cs, gh, ct, cu, true, false, 0, ""))
1168+@Callable(dt)
1169+func estimatePutOperationWrapperREADONLY (bS,bo,cr,cs,ct,cu,gj,cv,cw) = $Tuple2(nil, cq(bS, bo, cr, cs, ct, cu, gj, cv, cw, true, false, 0, ""))
11661170
11671171
11681172
1169-@Callable(dr)
1170-func estimateGetOperationWrapperREADONLY (bQ,gi,bS,gh) = {
1171- let cJ = bP(bQ, gi, bS, addressFromStringValue(gh))
1172- $Tuple2(nil, $Tuple10(cJ._1, cJ._2, cJ._3, cJ._4, cJ._5, cJ._6, cJ._7, toString(cJ._8), cJ._9, cJ._10))
1173+@Callable(dt)
1174+func estimateGetOperationWrapperREADONLY (bS,gk,bU,gj) = {
1175+ let cL = bR(bS, gk, bU, addressFromStringValue(gj))
1176+ $Tuple2(nil, $Tuple10(cL._1, cL._2, cL._3, cL._4, cL._5, cL._6, cL._7, toString(cL._8), cL._9, cL._10))
11731177 }
11741178
11751179
11761180
1177-@Callable(dr)
1178-func getFeeREADONLY () = $Tuple2(nil, af)
1181+@Callable(dt)
1182+func getFeeREADONLY () = $Tuple2(nil, ag)
11791183
11801184
1181-@Verifier(gj)
1182-func gk () = {
1183- let gl = {
1184- let av = fd()
1185- if ($isInstanceOf(av, "ByteVector"))
1185+@Verifier(gl)
1186+func gm () = {
1187+ let gn = {
1188+ let aw = ff()
1189+ if ($isInstanceOf(aw, "ByteVector"))
11861190 then {
1187- let fh = av
1188- fh
1191+ let fj = aw
1192+ fj
11891193 }
1190- else if ($isInstanceOf(av, "Unit"))
1191- then gj.senderPublicKey
1194+ else if ($isInstanceOf(aw, "Unit"))
1195+ then gl.senderPublicKey
11921196 else throw("Match error")
11931197 }
1194- let av = gj
1195- if ($isInstanceOf(av, "Order"))
1198+ let aw = gl
1199+ if ($isInstanceOf(aw, "Order"))
11961200 then {
1197- let de = av
1198- let gm = aE()
1199- let gn = dd(de)
1200- let go = sigVerify(de.bodyBytes, de.proofs[0], de.senderPublicKey)
1201- let gp = sigVerify(de.bodyBytes, de.proofs[1], gm)
1202- if (if (if (gn)
1203- then go
1201+ let dg = aw
1202+ let go = aF()
1203+ let gp = df(dg)
1204+ let gq = sigVerify(dg.bodyBytes, dg.proofs[0], dg.senderPublicKey)
1205+ let gr = sigVerify(dg.bodyBytes, dg.proofs[1], go)
1206+ if (if (if (gp)
1207+ then gq
12041208 else false)
1205- then gp
1209+ then gr
12061210 else false)
12071211 then true
1208- else aq(gn, go, gp)
1212+ else ar(gp, gq, gr)
12091213 }
1210- else if ($isInstanceOf(av, "SetScriptTransaction"))
1214+ else if ($isInstanceOf(aw, "SetScriptTransaction"))
12111215 then {
1212- let dE = av
1213- let gq = blake2b256(value(dE.script))
1214- let gr = fromBase64String(value(getString(aB, ao())))
1215- let gs = scriptHash(this)
1216- if (if ((gr == gq))
1217- then (gs != gq)
1216+ let dG = aw
1217+ let gs = blake2b256(value(dG.script))
1218+ let gt = fromBase64String(value(getString(aC, ap())))
1219+ let gu = scriptHash(this)
1220+ if (if ((gt == gs))
1221+ then (gu != gs)
12181222 else false)
12191223 then true
1220- else sigVerify(gj.bodyBytes, gj.proofs[0], gl)
1224+ else sigVerify(gl.bodyBytes, gl.proofs[0], gn)
12211225 }
1222- else sigVerify(gj.bodyBytes, gj.proofs[0], gl)
1226+ else sigVerify(gl.bodyBytes, gl.proofs[0], gn)
12231227 }
12241228
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((a - ((a * 1) / a)))
1919
2020 let i = "100"
2121
2222 let j = "1"
2323
2424 let k = "__"
2525
2626 let l = ""
2727
2828 let m = 1
2929
3030 let n = 2
3131
3232 let o = 3
3333
3434 let p = 4
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 3
4141
4242 let t = 4
4343
4444 let u = 5
4545
4646 let v = 6
4747
4848 let w = 7
4949
5050 let x = 8
5151
5252 let y = 9
5353
5454 let z = 1
5555
56-let A = 7
56+let A = 6
5757
58-let B = 10
58+let B = 7
5959
60-let C = fraction(5, a, 10000)
60+let C = 10
6161
62-func D (E,F) = fraction(toBigInt(E), c, toBigInt(F))
62+let D = fraction(5, a, 10000)
63+
64+func E (F,G) = fraction(toBigInt(F), c, toBigInt(G))
6365
6466
65-func G (H,I) = toInt(fraction(H, toBigInt(I), c))
67+func H (I,J) = toInt(fraction(I, toBigInt(J), c))
6668
6769
68-func J (K,L,M) = fraction(K, L, M)
70+func K (L,M,N) = fraction(L, M, N)
6971
7072
71-func N (H) = if ((d > H))
72- then -(H)
73- else H
73+func O (I) = if ((d > I))
74+ then -(I)
75+ else I
7476
7577
76-func O (H) = if ((d > H))
77- then -(H)
78- else H
78+func P (I) = if ((d > I))
79+ then -(I)
80+ else I
7981
8082
81-func P () = "%s__factoryContract"
83+func Q () = "%s__factoryContract"
8284
8385
84-func Q () = "%s__managerPublicKey"
86+func R () = "%s__managerPublicKey"
8587
8688
87-func R () = "%s__pendingManagerPublicKey"
89+func S () = "%s__pendingManagerPublicKey"
8890
8991
90-func S () = "%s%s__price__last"
92+func T () = "%s%s__price__last"
9193
9294
93-func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], k)
95+func U (V,W) = makeString(["%s%s%d%d__price__history", toString(V), toString(W)], k)
9496
9597
96-func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
98+func X (Y,Z) = ((("%s%s%s__P__" + Y) + "__") + Z)
9799
98100
99-func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
101+func aa (Y,Z) = ((("%s%s%s__G__" + Y) + "__") + Z)
100102
101103
102-func aa () = "%s__amountAsset"
104+func ab () = "%s__amountAsset"
103105
104106
105-func ab () = "%s__priceAsset"
107+func ac () = "%s__priceAsset"
106108
107109
108-func ac () = "%s__amp"
110+func ad () = "%s__amp"
109111
110112
111-func ad () = "%s__addonAddr"
113+func ae () = "%s__addonAddr"
112114
113115
114-let ae = "%s__fee"
116+let af = "%s__fee"
115117
116-let af = valueOrElse(getInteger(this, ae), C)
118+let ag = valueOrElse(getInteger(this, af), D)
117119
118-func ag () = "%s__factoryConfig"
120+func ah () = "%s__factoryConfig"
119121
120122
121-func ah () = "%s%s__matcher__publicKey"
123+func ai () = "%s%s__matcher__publicKey"
122124
123125
124-func ai (aj,ak) = (((("%d%d%s__" + aj) + "__") + ak) + "__config")
126+func aj (ak,al) = (((("%d%d%s__" + ak) + "__") + al) + "__config")
125127
126128
127-func al (am) = ("%s%s%s__mappings__baseAsset2internalId__" + am)
129+func am (an) = ("%s%s%s__mappings__baseAsset2internalId__" + an)
128130
129131
130-func an () = "%s__shutdown"
132+func ao () = "%s__shutdown"
131133
132134
133-func ao () = "%s__allowedLpStableScriptHash"
135+func ap () = "%s__allowedLpStableScriptHash"
134136
135137
136-func ap () = "%s__feeCollectorAddress"
138+func aq () = "%s__feeCollectorAddress"
137139
138140
139-func aq (ar,as,at) = throw(((((("Failed: ordValid=" + toString(ar)) + " sndrValid=") + toString(as)) + " mtchrValid=") + toString(at)))
141+func ar (as,at,au) = throw(((((("Failed: ordValid=" + toString(as)) + " sndrValid=") + toString(at)) + " mtchrValid=") + toString(au)))
140142
141143
142-func au (H) = {
143- let av = H
144- if ($isInstanceOf(av, "String"))
144+func av (I) = {
145+ let aw = I
146+ if ($isInstanceOf(aw, "String"))
145147 then {
146- let aw = av
147- aw
148+ let ax = aw
149+ ax
148150 }
149151 else throw("fail cast to String")
150152 }
151153
152154
153-func ax (ay,az) = valueOrErrorMessage(getString(ay, az), makeString(["mandatory ", toString(ay), ".", az, " not defined"], ""))
155+func ay (az,aA) = valueOrErrorMessage(getString(az, aA), makeString(["mandatory ", toString(az), ".", aA, " not defined"], ""))
154156
155157
156-func aA (ay,az) = valueOrErrorMessage(getInteger(ay, az), makeString(["mandatory ", toString(ay), ".", az, " not defined"], ""))
158+func aB (az,aA) = valueOrErrorMessage(getInteger(az, aA), makeString(["mandatory ", toString(az), ".", aA, " not defined"], ""))
157159
158160
159-let aB = addressFromStringValue(ax(this, P()))
161+let aC = addressFromStringValue(ay(this, Q()))
160162
161-let aC = ax(this, ac())
163+let aD = ay(this, ad())
162164
163-func aD () = valueOrElse(getBoolean(aB, an()), false)
165+func aE () = valueOrElse(getBoolean(aC, ao()), false)
164166
165167
166-func aE () = fromBase58String(ax(aB, ah()))
168+func aF () = fromBase58String(ay(aC, ai()))
167169
168170
169-let aF = addressFromStringValue(ax(aB, ap()))
171+let aG = addressFromStringValue(ay(aC, aq()))
170172
171-func aG () = {
172- let aH = ax(this, aa())
173- let aI = ax(this, ab())
174- let aJ = aA(aB, al(aI))
175- let aj = aA(aB, al(aH))
176- split(ax(aB, ai(toString(aj), toString(aJ))), k)
173+func aH () = {
174+ let aI = ay(this, ab())
175+ let aJ = ay(this, ac())
176+ let aK = aB(aC, am(aJ))
177+ let ak = aB(aC, am(aI))
178+ split(ay(aC, aj(toString(ak), toString(aK))), k)
177179 }
178180
179181
180-func aK () = split(ax(aB, ag()), k)
182+func aL () = split(ay(aC, ah()), k)
181183
182184
183-let aL = aK()
185+let aM = aL()
184186
185-let aM = valueOrErrorMessage(addressFromString(aL[z]), "Invalid staking contract address")
187+let aN = valueOrErrorMessage(addressFromString(aM[z]), "Invalid staking contract address")
186188
187-let aN = valueOrErrorMessage(addressFromString(aL[A]), "Invalid slipage contract address")
189+let aO = valueOrErrorMessage(addressFromString(aM[B]), "Invalid slipage contract address")
188190
189-let aO = valueOrErrorMessage(addressFromString(aL[B]), "Invalid gwx contract address")
191+let aP = valueOrErrorMessage(addressFromString(aM[C]), "Invalid gwx contract address")
190192
191-func aP (aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aQ), toString(aR), toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ)], k)
193+let aQ = valueOrErrorMessage(addressFromString(aM[A]), "Invalid gwx contract address")
194+
195+func aR (aS,aT,aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(ba), toString(bb)], k)
192196
193197
194-func ba (bb,bc,bd,aT,aW,aX) = makeString(["%d%d%d%d%d%d", toString(bb), toString(bc), toString(bd), toString(aT), toString(aW), toString(aX)], k)
198+func bc (bd,be,bf,aV,aY,aZ) = makeString(["%d%d%d%d%d%d", toString(bd), toString(be), toString(bf), toString(aV), toString(aY), toString(aZ)], k)
195199
196200
197-func be (bf) = if ((bf == "WAVES"))
201+func bg (bh) = if ((bh == "WAVES"))
198202 then wavesBalance(this).available
199- else assetBalance(this, fromBase58String(bf))
203+ else assetBalance(this, fromBase58String(bh))
200204
201205
202-func bg (bh,bi) = fraction(bh, c, bi)
206+func bi (bj,bk) = fraction(bj, c, bk)
203207
204208
205-func bj (bk,bl,bm) = {
206- let bn = fraction((bk - bl), b, bl)
207- let bo = ((bm - N(bn)) > d)
208- if (!(bo))
209- then throw(("Big slpg: " + toString(bn)))
210- else $Tuple2(bo, min([bk, bl]))
209+func bl (bm,bn,bo) = {
210+ let bp = fraction((bm - bn), b, bn)
211+ let bq = ((bo - O(bp)) > d)
212+ if (!(bq))
213+ then throw(("Big slpg: " + toString(bp)))
214+ else $Tuple2(bq, min([bm, bn]))
211215 }
212216
213217
214-func bp (bq,br,bs) = {
215- let bn = fraction(br, b, bq)
216- let bt = (bs > bn)
217- if (if (bt)
218+func br (bs,bt,bu) = {
219+ let bp = fraction(bt, b, bs)
220+ let bv = (bu > bp)
221+ if (if (bv)
218222 then true
219- else (br > bq))
220- then throw(((((((toString(br) + " ") + toString(bq)) + " ") + toString(bn)) + " ") + toString(bs)))
221- else bt
223+ else (bt > bs))
224+ then throw(((((((toString(bt) + " ") + toString(bs)) + " ") + toString(bp)) + " ") + toString(bu)))
225+ else bv
222226 }
223227
224228
225-func bu (bv,bw,bx,by) = {
226- let bz = D(bx, bv)
227- let bA = D(by, bw)
228- bg(bA, bz)
229+func bw (bx,by,bz,bA) = {
230+ let bB = E(bz, bx)
231+ let bC = E(bA, by)
232+ bi(bC, bB)
229233 }
230234
231235
232-func bB (bx,by,bC) = {
233- let bD = aG()
234- let bE = parseIntValue(bD[v])
235- let bF = parseIntValue(bD[w])
236- let bG = bu(bE, bF, bx, by)
237- let bi = D(bx, bE)
238- let bh = D(by, bF)
239- let bH = D(bC, a)
240- let bI = bg(bi, bH)
241- let bJ = bg(bh, bH)
242-[bG, bI, bJ]
236+func bD (bz,bA,bE) = {
237+ let bF = aH()
238+ let bG = parseIntValue(bF[v])
239+ let bH = parseIntValue(bF[w])
240+ let bI = bw(bG, bH, bz, bA)
241+ let bk = E(bz, bG)
242+ let bj = E(bA, bH)
243+ let bJ = E(bE, a)
244+ let bK = bi(bk, bJ)
245+ let bL = bi(bj, bJ)
246+[bI, bK, bL]
243247 }
244248
245249
246-func bK (bx,by,bC) = {
247- let bL = bB(bx, by, bC)
248-[G(bL[0], a), G(bL[1], a), G(bL[2], a)]
250+func bM (bz,bA,bE) = {
251+ let bN = bD(bz, bA, bE)
252+[H(bN[0], a), H(bN[1], a), H(bN[2], a)]
249253 }
250254
251255
252-func bM (bN) = {
253- let bO = fraction(bN, af, a)
254- $Tuple2((bN - bO), bO)
256+func bO (bP) = {
257+ let bQ = fraction(bP, ag, a)
258+ $Tuple2((bP - bQ), bQ)
255259 }
256260
257261
258-func bP (bQ,bR,bS,bT) = {
259- let bD = aG()
260- let bU = bD[s]
261- let bV = bD[t]
262- let bW = bD[u]
263- let bX = parseIntValue(bD[v])
264- let bY = parseIntValue(bD[w])
265- let bZ = bD[r]
266- let ca = valueOrErrorMessage(assetInfo(fromBase58String(bU)), "Wrong LP id").quantity
267- if ((bU != bR))
262+func bR (bS,bT,bU,bV) = {
263+ let bF = aH()
264+ let bW = bF[s]
265+ let bX = bF[t]
266+ let bY = bF[u]
267+ let bZ = parseIntValue(bF[v])
268+ let ca = parseIntValue(bF[w])
269+ let cb = bF[r]
270+ let cc = valueOrErrorMessage(assetInfo(fromBase58String(bW)), "Wrong LP id").quantity
271+ if ((bW != bT))
268272 then throw("Wrong pmt asset")
269273 else {
270- let cb = be(bV)
271- let cc = D(cb, bX)
272- let cd = be(bW)
273- let ce = D(cd, bY)
274- let cf = bg(ce, cc)
275- let cg = G(cf, a)
276- let ch = D(bS, a)
277- let ci = D(ca, a)
278- let cj = fraction(cc, ch, ci)
279- let ck = fraction(ce, ch, ci)
280- let cl = G(cj, bX)
281- let cm = G(ck, bY)
282- let cn = if ((bQ == ""))
274+ let cd = bg(bX)
275+ let ce = E(cd, bZ)
276+ let cf = bg(bY)
277+ let cg = E(cf, ca)
278+ let ch = bi(cg, ce)
279+ let ci = H(ch, a)
280+ let cj = E(bU, a)
281+ let ck = E(cc, a)
282+ let cl = fraction(ce, cj, ck)
283+ let cm = fraction(cg, cj, ck)
284+ let cn = H(cl, bZ)
285+ let co = H(cm, ca)
286+ let cp = if ((bS == ""))
283287 then nil
284- else [ScriptTransfer(bT, cl, if ((bV == "WAVES"))
288+ else [ScriptTransfer(bV, cn, if ((bX == "WAVES"))
285289 then unit
286- else fromBase58String(bV)), ScriptTransfer(bT, cm, if ((bW == "WAVES"))
290+ else fromBase58String(bX)), ScriptTransfer(bV, co, if ((bY == "WAVES"))
287291 then unit
288- else fromBase58String(bW)), StringEntry(Z(toString(bT), bQ), ba(cl, cm, bS, cg, height, lastBlock.timestamp)), IntegerEntry(S(), cg), IntegerEntry(T(height, lastBlock.timestamp), cg)]
289- $Tuple10(cl, cm, bV, bW, cb, cd, ca, cf, bZ, cn)
292+ else fromBase58String(bY)), StringEntry(aa(toString(bV), bS), bc(cn, co, bU, ci, height, lastBlock.timestamp)), IntegerEntry(T(), ci), IntegerEntry(U(height, lastBlock.timestamp), ci)]
293+ $Tuple10(cn, co, bX, bY, cd, cf, cc, ch, cb, cp)
290294 }
291295 }
292296
293297
294-func co (bQ,bm,cp,cq,cr,cs,bT,ct,cu,cv,cw,cx,cy) = {
295- let bD = aG()
296- let bU = fromBase58String(bD[s])
297- let cz = bD[t]
298- let cA = bD[u]
299- let cB = bD[x]
300- let cC = bD[y]
301- let cD = parseIntValue(bD[v])
302- let cE = parseIntValue(bD[w])
303- let bZ = bD[r]
304- let cF = valueOrErrorMessage(assetInfo(bU), "Wr lp as").quantity
305- let cb = if (ct)
306- then be(cz)
307- else if (if (cv)
308- then (cy == cz)
298+func cq (bS,bo,cr,cs,ct,cu,bV,cv,cw,cx,cy,cz,cA) = {
299+ let bF = aH()
300+ let bW = fromBase58String(bF[s])
301+ let cB = bF[t]
302+ let cC = bF[u]
303+ let cD = bF[x]
304+ let cE = bF[y]
305+ let cF = parseIntValue(bF[v])
306+ let cG = parseIntValue(bF[w])
307+ let cb = bF[r]
308+ let cH = valueOrErrorMessage(assetInfo(bW), "Wr lp as").quantity
309+ let cd = if (cv)
310+ then bg(cB)
311+ else if (if (cx)
312+ then (cA == cB)
309313 else false)
310- then (be(cz) - cx)
311- else if (cv)
312- then be(cz)
313- else (be(cz) - cp)
314- let cd = if (ct)
315- then be(cA)
316- else if (if (cv)
317- then (cy == cA)
314+ then (bg(cB) - cz)
315+ else if (cx)
316+ then bg(cB)
317+ else (bg(cB) - cr)
318+ let cf = if (cv)
319+ then bg(cC)
320+ else if (if (cx)
321+ then (cA == cC)
318322 else false)
319- then (be(cA) - cx)
320- else if (cv)
321- then be(cA)
322- else (be(cA) - cr)
323- let cG = D(cp, cD)
324- let cH = D(cr, cE)
325- let cI = bg(cH, cG)
326- let cc = D(cb, cD)
327- let ce = D(cd, cE)
328- let cJ = if ((cF == 0))
323+ then (bg(cC) - cz)
324+ else if (cx)
325+ then bg(cC)
326+ else (bg(cC) - ct)
327+ let cI = E(cr, cF)
328+ let cJ = E(ct, cG)
329+ let cK = bi(cJ, cI)
330+ let ce = E(cd, cF)
331+ let cg = E(cf, cG)
332+ let cL = if ((cH == 0))
329333 then {
330- let cf = d
331- let cK = d
332- let bH = pow((cG * cH), 0, toBigInt(5), 1, 0, DOWN)
333- $Tuple5(G(bH, a), G(cG, cD), G(cH, cE), bg((ce + cH), (cc + cG)), cK)
334+ let ch = d
335+ let cM = d
336+ let bJ = pow((cI * cJ), 0, toBigInt(5), 1, 0, DOWN)
337+ $Tuple5(H(bJ, a), H(cI, cF), H(cJ, cG), bi((cg + cJ), (ce + cI)), cM)
334338 }
335339 else {
336- let cf = bg(ce, cc)
337- let cL = fraction(N((cf - cI)), c, cf)
338- let cK = D(bm, a)
339- if (if (if (cw)
340- then (cf != d)
340+ let ch = bi(cg, ce)
341+ let cN = fraction(O((ch - cK)), c, ch)
342+ let cM = E(bo, a)
343+ if (if (if (cy)
344+ then (ch != d)
341345 else false)
342- then (cL > cK)
346+ then (cN > cM)
343347 else false)
344- then throw(((("Price slippage " + toString(cL)) + " > ") + toString(cK)))
348+ then throw(((("Price slippage " + toString(cN)) + " > ") + toString(cM)))
345349 else {
346- let cM = D(cF, a)
347- let cN = fraction(cG, cf, c)
348- let cO = fraction(cH, c, cf)
349- let cP = if ((cN > cH))
350- then $Tuple2(cO, cH)
351- else $Tuple2(cG, cN)
352- let cQ = cP._1
353- let cR = cP._2
354- let bH = fraction(cM, cR, ce)
355- $Tuple5(G(bH, a), G(cQ, cD), G(cR, cE), cf, cK)
350+ let cO = E(cH, a)
351+ let cP = fraction(cI, ch, c)
352+ let cQ = fraction(cJ, c, ch)
353+ let cR = if ((cP > cJ))
354+ then $Tuple2(cQ, cJ)
355+ else $Tuple2(cI, cP)
356+ let cS = cR._1
357+ let cT = cR._2
358+ let bJ = fraction(cO, cT, cg)
359+ $Tuple5(H(bJ, a), H(cS, cF), H(cT, cG), ch, cM)
356360 }
357361 }
358- let cS = cJ._1
359- let cT = cJ._2
360- let cU = cJ._3
361- let cg = G(cJ._4, a)
362- let cV = G(cJ._5, a)
363- if ((0 >= cS))
362+ let cU = cL._1
363+ let cV = cL._2
364+ let cW = cL._3
365+ let ci = H(cL._4, a)
366+ let cX = H(cL._5, a)
367+ if ((0 >= cU))
364368 then throw("LP <= 0")
365369 else {
366- let cW = if (!(cu))
370+ let cY = if (!(cw))
367371 then 0
368- else cS
369- let cX = (cp - cT)
370- let cY = (cr - cU)
371- let cZ = if (if (cv)
372- then (cy == cz)
372+ else cU
373+ let cZ = (cr - cV)
374+ let da = (ct - cW)
375+ let db = if (if (cx)
376+ then (cA == cB)
373377 else false)
374- then $Tuple2(cx, 0)
375- else if (if (cv)
376- then (cy == cA)
378+ then $Tuple2(cz, 0)
379+ else if (if (cx)
380+ then (cA == cC)
377381 else false)
378- then $Tuple2(0, cx)
379- else $Tuple2(cT, cU)
380- let da = cZ._1
381- let db = cZ._2
382- let dc = [IntegerEntry(S(), cg), IntegerEntry(T(height, lastBlock.timestamp), cg), StringEntry(W(bT, bQ), aP(da, db, cW, cg, bm, cV, height, lastBlock.timestamp, cX, cY))]
383- $Tuple13(cS, cW, cg, cb, cd, cF, bU, bZ, dc, cX, cY, cq, cs)
382+ then $Tuple2(0, cz)
383+ else $Tuple2(cV, cW)
384+ let dc = db._1
385+ let dd = db._2
386+ let de = [IntegerEntry(T(), ci), IntegerEntry(U(height, lastBlock.timestamp), ci), StringEntry(X(bV, bS), aR(dc, dd, cY, ci, bo, cX, height, lastBlock.timestamp, cZ, da))]
387+ $Tuple13(cU, cY, ci, cd, cf, cH, bW, cb, de, cZ, da, cs, cu)
384388 }
385389 }
386390
387391
388-func dd (de) = {
389- let bD = aG()
390- let df = bD[t]
391- let dg = bD[u]
392- let bZ = parseIntValue(bD[r])
393- let bE = parseIntValue(bD[v])
394- let bF = parseIntValue(bD[w])
395- let dh = be(df)
396- let di = be(dg)
397- let cf = if ((de.orderType == Buy))
398- then bu(bE, bF, (dh + de.amount), di)
399- else bu(bE, bF, (dh - de.amount), di)
400- let cg = G(cf, a)
401- if (if (if (aD())
392+func df (dg) = {
393+ let bF = aH()
394+ let dh = bF[t]
395+ let di = bF[u]
396+ let cb = parseIntValue(bF[r])
397+ let bG = parseIntValue(bF[v])
398+ let bH = parseIntValue(bF[w])
399+ let dj = bg(dh)
400+ let dk = bg(di)
401+ let ch = if ((dg.orderType == Buy))
402+ then bw(bG, bH, (dj + dg.amount), dk)
403+ else bw(bG, bH, (dj - dg.amount), dk)
404+ let ci = H(ch, a)
405+ if (if (if (aE())
402406 then true
403- else (bZ == o))
407+ else (cb == o))
404408 then true
405- else (bZ == p))
409+ else (cb == p))
406410 then throw("Admin blocked")
407411 else {
408- let dj = de.assetPair.amountAsset
409- let dk = if ((dj == unit))
410- then "WAVES"
411- else toBase58String(value(dj))
412- let dl = de.assetPair.priceAsset
412+ let dl = dg.assetPair.amountAsset
413413 let dm = if ((dl == unit))
414414 then "WAVES"
415415 else toBase58String(value(dl))
416- if (if ((dk != df))
416+ let dn = dg.assetPair.priceAsset
417+ let do = if ((dn == unit))
418+ then "WAVES"
419+ else toBase58String(value(dn))
420+ if (if ((dm != dh))
417421 then true
418- else (dm != dg))
422+ else (do != di))
419423 then throw("Wr assets")
420424 else {
421- let dn = de.price
422- let cE = fraction(a, bF, bE)
423- let do = J(dn, a, cE)
424- let dp = if ((de.orderType == Buy))
425- then (cg >= do)
426- else (do >= cg)
425+ let dp = dg.price
426+ let cG = fraction(a, bH, bG)
427+ let dq = K(dp, a, cG)
428+ let dr = if ((dg.orderType == Buy))
429+ then (ci >= dq)
430+ else (dq >= ci)
427431 true
428432 }
429433 }
430434 }
431435
432436
433-func dq (dr) = if ((size(dr.payments) != 1))
437+func ds (dt) = if ((size(dt.payments) != 1))
434438 then throw("1 pmnt exp")
435439 else {
436- let ds = value(dr.payments[0])
437- let bR = value(ds.assetId)
438- let cx = ds.amount
439- let cJ = bP(toBase58String(dr.transactionId), toBase58String(bR), cx, dr.caller)
440- let cl = cJ._1
441- let cm = cJ._2
442- let bZ = parseIntValue(cJ._9)
443- let cn = cJ._10
444- if (if (aD())
440+ let du = value(dt.payments[0])
441+ let bT = value(du.assetId)
442+ let cz = du.amount
443+ let cL = bR(toBase58String(dt.transactionId), toBase58String(bT), cz, dt.caller)
444+ let cn = cL._1
445+ let co = cL._2
446+ let cb = parseIntValue(cL._9)
447+ let cp = cL._10
448+ if (if (aE())
445449 then true
446- else (bZ == p))
447- then throw(("Admin blocked: " + toString(bZ)))
448- else $Tuple5(cl, cm, cx, bR, cn)
450+ else (cb == p))
451+ then throw(("Admin blocked: " + toString(cb)))
452+ else $Tuple5(cn, co, cz, bT, cp)
449453 }
450454
451455
452-func dt (du,Y,dv,dw,bm,cu,cv,cw,cx,cy) = {
453- let cJ = co(Y, bm, value(dv).amount, value(dv).assetId, value(dw).amount, value(dw).assetId, du, (Y == ""), cu, cv, cw, cx, cy)
454- let bZ = parseIntValue(cJ._8)
455- if (if (if (aD())
456+func dv (dw,Z,dx,dy,bo,cw,cx,cy,cz,cA) = {
457+ let cL = cq(Z, bo, value(dx).amount, value(dx).assetId, value(dy).amount, value(dy).assetId, dw, (Z == ""), cw, cx, cy, cz, cA)
458+ let cb = parseIntValue(cL._8)
459+ if (if (if (aE())
456460 then true
457- else (bZ == n))
461+ else (cb == n))
458462 then true
459- else (bZ == p))
460- then throw(("Blocked:" + toString(bZ)))
461- else cJ
463+ else (cb == p))
464+ then throw(("Blocked:" + toString(cb)))
465+ else cL
462466 }
463467
464468
465-func dx (dy) = {
466- let dz = g
467- let dA = dy[0]
468- let dB = dy[1]
469- let dC = parseBigIntValue(i)
470- let dD = (parseBigIntValue(aC) * dC)
471- let dE = (dA + dB)
472- if ((dE == e))
469+func dz (dA) = {
470+ let dB = g
471+ let dC = dA[0]
472+ let dD = dA[1]
473+ let dE = parseBigIntValue(i)
474+ let dF = (parseBigIntValue(aD) * dE)
475+ let dG = (dC + dD)
476+ if ((dG == e))
473477 then e
474478 else {
475- let dF = (dD * dz)
476- let dG = (((dA * dB) * dz) * dz)
477- let dH = ((dF * dE) / dC)
478- let dI = (dF - dC)
479- let dJ = (dz + f)
480- func dK (dL,dM) = {
481- let dN = dL
482- let dO = dN._1
483- let dP = dN._2
484- if ((dP != unit))
485- then dL
479+ let dH = (dF * dB)
480+ let dI = (((dC * dD) * dB) * dB)
481+ let dJ = ((dH * dG) / dE)
482+ let dK = (dH - dE)
483+ let dL = (dB + f)
484+ func dM (dN,dO) = {
485+ let dP = dN
486+ let dQ = dP._1
487+ let dR = dP._2
488+ if ((dR != unit))
489+ then dN
486490 else {
487- let dQ = (((dO * dO) * dO) / dG)
488- let dR = (((dH + (dQ * dz)) * dO) / (((dI * dO) / dC) + (dJ * dQ)))
489- let dS = O((dR - value(dO)))
490- if ((f >= dS))
491- then $Tuple2(dR, dM)
492- else $Tuple2(dR, unit)
491+ let dS = (((dQ * dQ) * dQ) / dI)
492+ let dT = (((dJ + (dS * dB)) * dQ) / (((dK * dQ) / dE) + (dL * dS)))
493+ let dU = P((dT - value(dQ)))
494+ if ((f >= dU))
495+ then $Tuple2(dT, dO)
496+ else $Tuple2(dT, unit)
493497 }
494498 }
495499
496- let dT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
497- let dU = {
498- let dV = dT
499- let dW = size(dV)
500- let dX = $Tuple2(dE, unit)
501- func dY (dZ,ea) = if ((ea >= dW))
502- then dZ
503- else dK(dZ, dV[ea])
500+ let dV = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
501+ let dW = {
502+ let dX = dV
503+ let dY = size(dX)
504+ let dZ = $Tuple2(dG, unit)
505+ func ea (eb,ec) = if ((ec >= dY))
506+ then eb
507+ else dM(eb, dX[ec])
504508
505- func eb (dZ,ea) = if ((ea >= dW))
506- then dZ
509+ func ed (eb,ec) = if ((ec >= dY))
510+ then eb
507511 else throw("List size exceeds 15")
508512
509- eb(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
513+ ed(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(dZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
510514 }
511- let dO = dU._1
512- let dP = dU._2
513- if ((dP != unit))
514- then dO
515- else throw(("D calculation error, D = " + toString(dO)))
515+ let dQ = dW._1
516+ let dR = dW._2
517+ if ((dR != unit))
518+ then dQ
519+ else throw(("D calculation error, D = " + toString(dQ)))
516520 }
517521 }
518522
519523
520-func ec (dy,dr,ed) = {
521- let dz = g
522- let ee = dy[if ((dr == 0))
524+func ee (dA,dt,ef) = {
525+ let dB = g
526+ let eg = dA[if ((dt == 0))
523527 then 1
524528 else 0]
525- let dC = parseBigIntValue(i)
526- let dD = (parseBigIntValue(aC) * dC)
527- let dE = ee
528- let dF = (dD * dz)
529- let ef = (((((ed * ed) / (ee * dz)) * ed) * dC) / (dF * dz))
530- let eg = ((dE + ((ed * dC) / dF)) - ed)
531- func dK (dL,dM) = {
532- let eh = dL
533- let ei = eh._1
534- let dP = eh._2
535- if ((dP != unit))
536- then dL
529+ let dE = parseBigIntValue(i)
530+ let dF = (parseBigIntValue(aD) * dE)
531+ let dG = eg
532+ let dH = (dF * dB)
533+ let eh = (((((ef * ef) / (eg * dB)) * ef) * dE) / (dH * dB))
534+ let ei = ((dG + ((ef * dE) / dH)) - ef)
535+ func dM (dN,dO) = {
536+ let ej = dN
537+ let ek = ej._1
538+ let dR = ej._2
539+ if ((dR != unit))
540+ then dN
537541 else {
538- let ej = (((ei * ei) + ef) / ((g * ei) + eg))
539- let ek = O((ej - value(ei)))
540- if ((f >= ek))
541- then $Tuple2(ej, dM)
542- else $Tuple2(ej, unit)
542+ let el = (((ek * ek) + eh) / ((g * ek) + ei))
543+ let em = P((el - value(ek)))
544+ if ((f >= em))
545+ then $Tuple2(el, dO)
546+ else $Tuple2(el, unit)
543547 }
544548 }
545549
546- let dT = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
547- let el = {
548- let dV = dT
549- let dW = size(dV)
550- let dX = $Tuple2(ed, unit)
551- func dY (dZ,ea) = if ((ea >= dW))
552- then dZ
553- else dK(dZ, dV[ea])
550+ let dV = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
551+ let en = {
552+ let dX = dV
553+ let dY = size(dX)
554+ let dZ = $Tuple2(ef, unit)
555+ func ea (eb,ec) = if ((ec >= dY))
556+ then eb
557+ else dM(eb, dX[ec])
554558
555- func eb (dZ,ea) = if ((ea >= dW))
556- then dZ
559+ func ed (eb,ec) = if ((ec >= dY))
560+ then eb
557561 else throw("List size exceeds 15")
558562
559- eb(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dY(dX, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
563+ ed(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(ea(dZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
560564 }
561- let ei = el._1
562- let dP = el._2
563- if ((dP != unit))
564- then ei
565- else throw(("Y calculation error, Y = " + toString(ei)))
565+ let ek = en._1
566+ let dR = en._2
567+ if ((dR != unit))
568+ then ek
569+ else throw(("Y calculation error, Y = " + toString(ek)))
566570 }
567571
568572
569-func em (en,bR,bT,Y) = {
570- let eo = aG()
571- let bV = eo[t]
572- let bW = eo[u]
573- let bU = eo[s]
574- let cD = parseIntValue(eo[v])
575- let cE = parseIntValue(eo[w])
576- let ep = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bU)), "invalid lp asset").quantity)
577- let eq = if ((ep > e))
573+func eo (ep,bT,bV,Z) = {
574+ let eq = aH()
575+ let bX = eq[t]
576+ let bY = eq[u]
577+ let bW = eq[s]
578+ let cF = parseIntValue(eq[v])
579+ let cG = parseIntValue(eq[w])
580+ let er = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bW)), "invalid lp asset").quantity)
581+ let es = if ((er > e))
578582 then true
579583 else throw("initial deposit requires all coins")
580- if ((eq == eq))
584+ if ((es == es))
581585 then {
582- let cb = be(bV)
583- let cd = be(bW)
584- let er = if ((Y == ""))
585- then $Tuple2(cb, cd)
586- else if ((bR == bV))
587- then if ((en > cb))
586+ let cd = bg(bX)
587+ let cf = bg(bY)
588+ let et = if ((Z == ""))
589+ then $Tuple2(cd, cf)
590+ else if ((bT == bX))
591+ then if ((ep > cd))
588592 then throw("invalid payment amount")
589- else $Tuple2((cb - en), cd)
590- else if ((bR == bW))
591- then if ((en > cd))
593+ else $Tuple2((cd - ep), cf)
594+ else if ((bT == bY))
595+ then if ((ep > cf))
592596 then throw("invalid payment amount")
593- else $Tuple2(cb, (cd - en))
597+ else $Tuple2(cd, (cf - ep))
594598 else throw("wrong pmtAssetId")
595- let es = er._1
596- let et = er._2
597- let eu = if ((bR == bV))
598- then $Tuple2(en, 0)
599- else if ((bR == bW))
600- then $Tuple2(0, en)
599+ let eu = et._1
600+ let ev = et._2
601+ let ew = if ((bT == bX))
602+ then $Tuple2(ep, 0)
603+ else if ((bT == bY))
604+ then $Tuple2(0, ep)
601605 else throw("invalid payment")
602- let ev = eu._1
603- let ew = eu._2
604- let ex = bM(ev)._1
605- let ey = bM(ew)._1
606- let bO = bM(en)._2
607- let ez = (es + ex)
608- let eA = (et + ey)
609- let br = dx([toBigInt(es), toBigInt(et)])
610- let bq = dx([toBigInt(ez), toBigInt(eA)])
611- let eB = if ((bq > br))
606+ let ex = ew._1
607+ let ey = ew._2
608+ let ez = bO(ex)._1
609+ let eA = bO(ey)._1
610+ let bQ = bO(ep)._2
611+ let eB = (eu + ez)
612+ let eC = (ev + eA)
613+ let bt = dz([toBigInt(eu), toBigInt(ev)])
614+ let bs = dz([toBigInt(eB), toBigInt(eC)])
615+ let eD = if ((bs > bt))
612616 then true
613617 else throw()
614- if ((eB == eB))
618+ if ((eD == eD))
615619 then {
616- let eC = fraction(ep, (bq - br), br)
617- let cg = G(bg(D(eA, cE), D(ez, cD)), a)
618- let dc = [IntegerEntry(S(), cg), IntegerEntry(T(height, lastBlock.timestamp), cg), StringEntry(W(bT, Y), aP(ev, ew, toInt(eC), cg, 0, 0, height, lastBlock.timestamp, 0, 0))]
619- let eD = fraction(et, a, es)
620- let eE = fraction(en, a, (eD + a))
621- let eF = (en - eE)
622- let eG = fraction(ep, toBigInt(eF), toBigInt(et))
623- let eH = toInt(fraction((eC - eG), b, eG))
624- $Tuple4(toInt(eC), dc, bO, eH)
620+ let eE = fraction(er, (bs - bt), bt)
621+ let ci = H(bi(E(eC, cG), E(eB, cF)), a)
622+ let de = [IntegerEntry(T(), ci), IntegerEntry(U(height, lastBlock.timestamp), ci), StringEntry(X(bV, Z), aR(ex, ey, toInt(eE), ci, 0, 0, height, lastBlock.timestamp, 0, 0))]
623+ let eF = fraction(ev, a, eu)
624+ let eG = fraction(ep, a, (eF + a))
625+ let eH = (ep - eG)
626+ let eI = fraction(er, toBigInt(eH), toBigInt(ev))
627+ let eJ = toInt(fraction((eE - eI), b, eI))
628+ $Tuple4(toInt(eE), de, bQ, eJ)
625629 }
626630 else throw("Strict value is not equal to itself.")
627631 }
628632 else throw("Strict value is not equal to itself.")
629633 }
630634
631635
632-func eI (eJ,eK,eL,du,eM,eN) = if ((size(eL) != 1))
636+func eK (eL,eM,eN,dw,eO,eP) = if ((size(eN) != 1))
633637 then throw("1 pmnt expd")
634638 else {
635- let eo = aG()
636- let bU = eo[s]
637- let bV = eo[t]
638- let bW = eo[u]
639- let eO = parseIntValue(eo[v])
640- let eP = parseIntValue(eo[w])
641- let eQ = eo[r]
642- let bT = if ((du == this))
643- then eM
644- else du
645- let ds = value(eL[0])
646- let bR = value(ds.assetId)
647- let cx = ds.amount
648- if ((1000000000 > cx))
639+ let eq = aH()
640+ let bW = eq[s]
641+ let bX = eq[t]
642+ let bY = eq[u]
643+ let eQ = parseIntValue(eq[v])
644+ let eR = parseIntValue(eq[w])
645+ let eS = eq[r]
646+ let bV = if ((dw == aQ))
647+ then eO
648+ else dw
649+ let du = value(eN[0])
650+ let bT = value(du.assetId)
651+ let cz = du.amount
652+ if ((1000000000 > cz))
649653 then throw("Min pmt 10 LP")
650654 else {
651- let bQ = toBase58String(eN)
652- if ((bU != toBase58String(bR)))
655+ let bS = toBase58String(eP)
656+ if ((bW != toBase58String(bT)))
653657 then throw("Wrong LP")
654658 else {
655- let cb = be(bV)
656- let cd = be(bW)
657- let eR = {
658- let eS = invoke(this, "getOneTknV2READONLY", [eJ, cx], nil)
659- if ($isInstanceOf(eS, "(Int, Int)"))
660- then eS
661- else throw(($getType(eS) + " couldn't be cast to (Int, Int)"))
659+ let cd = bg(bX)
660+ let cf = bg(bY)
661+ let eT = {
662+ let eU = invoke(this, "getOneTknV2READONLY", [eL, cz], nil)
663+ if ($isInstanceOf(eU, "(Int, Int)"))
664+ then eU
665+ else throw(($getType(eU) + " couldn't be cast to (Int, Int)"))
662666 }
663- let eT = eR._1
664- let bO = eR._2
665- let eU = if (if ((eK > 0))
666- then (eK > eT)
667+ let eV = eT._1
668+ let bQ = eT._2
669+ let eW = if (if ((eM > 0))
670+ then (eM > eV)
667671 else false)
668- then throw(makeString(["amount to receive is less than ", toString(eK)], ""))
669- else eT
670- let eV = if ((eJ == bV))
671- then $Tuple4(eU, 0, ((cb - eU) - bO), cd)
672- else if ((eJ == bW))
673- then $Tuple4(0, eU, cb, ((cd - eU) - bO))
672+ then throw(makeString(["amount to receive is less than ", toString(eM)], ""))
673+ else eV
674+ let eX = if ((eL == bX))
675+ then $Tuple4(eW, 0, ((cd - eW) - bQ), cf)
676+ else if ((eL == bY))
677+ then $Tuple4(0, eW, cd, ((cf - eW) - bQ))
674678 else throw("invalid out asset id")
675- let eW = eV._1
676- let eX = eV._2
677- let ez = eV._3
678- let eA = eV._4
679- let eY = bg(D(eA, eP), D(ez, eO))
680- let eZ = G(eY, a)
681- let fa = if ((eJ == "WAVES"))
679+ let eY = eX._1
680+ let eZ = eX._2
681+ let eB = eX._3
682+ let eC = eX._4
683+ let fa = bi(E(eC, eR), E(eB, eQ))
684+ let fb = H(fa, a)
685+ let fc = if ((eL == "WAVES"))
682686 then unit
683- else fromBase58String(eJ)
684- let fb = if ((bO > 0))
685- then [ScriptTransfer(aF, bO, fa)]
687+ else fromBase58String(eL)
688+ let fd = if ((bQ > 0))
689+ then [ScriptTransfer(aG, bQ, fc)]
686690 else nil
687- let cn = ([ScriptTransfer(bT, eU, fa), StringEntry(Z(toString(bT), bQ), ba(eW, eX, cx, eZ, height, lastBlock.timestamp)), IntegerEntry(S(), eZ), IntegerEntry(T(height, lastBlock.timestamp), eZ)] ++ fb)
688- if ((cn == cn))
691+ let cp = ([ScriptTransfer(bV, eW, fc), StringEntry(aa(toString(bV), bS), bc(eY, eZ, cz, fb, height, lastBlock.timestamp)), IntegerEntry(T(), fb), IntegerEntry(U(height, lastBlock.timestamp), fb)] ++ fd)
692+ if ((cp == cp))
689693 then {
690- let fc = invoke(aB, "burn", [cx], [AttachedPayment(bR, cx)])
691- if ((fc == fc))
692- then $Tuple2(cn, eU)
694+ let fe = invoke(aC, "burn", [cz], [AttachedPayment(bT, cz)])
695+ if ((fe == fe))
696+ then $Tuple2(cp, eW)
693697 else throw("Strict value is not equal to itself.")
694698 }
695699 else throw("Strict value is not equal to itself.")
696700 }
697701 }
698702 }
699703
700704
701-func fd () = {
702- let av = getString(Q())
703- if ($isInstanceOf(av, "String"))
705+func ff () = {
706+ let aw = getString(R())
707+ if ($isInstanceOf(aw, "String"))
704708 then {
705- let dE = av
706- fromBase58String(dE)
709+ let dG = aw
710+ fromBase58String(dG)
707711 }
708- else if ($isInstanceOf(av, "Unit"))
712+ else if ($isInstanceOf(aw, "Unit"))
709713 then unit
710714 else throw("Match error")
711715 }
712716
713717
714-func fe () = {
715- let av = getString(R())
716- if ($isInstanceOf(av, "String"))
718+func fg () = {
719+ let aw = getString(S())
720+ if ($isInstanceOf(aw, "String"))
717721 then {
718- let dE = av
719- fromBase58String(dE)
722+ let dG = aw
723+ fromBase58String(dG)
720724 }
721- else if ($isInstanceOf(av, "Unit"))
725+ else if ($isInstanceOf(aw, "Unit"))
722726 then unit
723727 else throw("Match error")
724728 }
725729
726730
727-let ff = throw("Permission denied")
731+let fh = throw("Permission denied")
728732
729-func fg (dr) = {
730- let av = fd()
731- if ($isInstanceOf(av, "ByteVector"))
733+func fi (dt) = {
734+ let aw = ff()
735+ if ($isInstanceOf(aw, "ByteVector"))
732736 then {
733- let fh = av
734- if ((dr.callerPublicKey == fh))
737+ let fj = aw
738+ if ((dt.callerPublicKey == fj))
735739 then true
736- else ff
740+ else fh
737741 }
738- else if ($isInstanceOf(av, "Unit"))
739- then if ((dr.caller == this))
742+ else if ($isInstanceOf(aw, "Unit"))
743+ then if ((dt.caller == this))
740744 then true
741- else ff
745+ else fh
742746 else throw("Match error")
743747 }
744748
745749
746-@Callable(dr)
747-func constructor (P) = {
748- let ef = fg(dr)
749- if ((ef == ef))
750- then [StringEntry(P(), P)]
750+@Callable(dt)
751+func constructor (Q) = {
752+ let eh = fi(dt)
753+ if ((eh == eh))
754+ then [StringEntry(Q(), Q)]
751755 else throw("Strict value is not equal to itself.")
752756 }
753757
754758
755759
756-@Callable(dr)
757-func setManager (fi) = {
758- let ef = fg(dr)
759- if ((ef == ef))
760+@Callable(dt)
761+func setManager (fk) = {
762+ let eh = fi(dt)
763+ if ((eh == eh))
760764 then {
761- let fj = fromBase58String(fi)
762- if ((fj == fj))
763- then [StringEntry(R(), fi)]
765+ let fl = fromBase58String(fk)
766+ if ((fl == fl))
767+ then [StringEntry(S(), fk)]
764768 else throw("Strict value is not equal to itself.")
765769 }
766770 else throw("Strict value is not equal to itself.")
767771 }
768772
769773
770774
771-@Callable(dr)
775+@Callable(dt)
772776 func confirmManager () = {
773- let bL = fe()
774- let fk = if (isDefined(bL))
777+ let bN = fg()
778+ let fm = if (isDefined(bN))
775779 then true
776780 else throw("No pending manager")
777- if ((fk == fk))
781+ if ((fm == fm))
778782 then {
779- let fl = if ((dr.callerPublicKey == value(bL)))
783+ let fn = if ((dt.callerPublicKey == value(bN)))
780784 then true
781785 else throw("You are not pending manager")
782- if ((fl == fl))
783- then [StringEntry(Q(), toBase58String(value(bL))), DeleteEntry(R())]
786+ if ((fn == fn))
787+ then [StringEntry(R(), toBase58String(value(bN))), DeleteEntry(S())]
784788 else throw("Strict value is not equal to itself.")
785789 }
786790 else throw("Strict value is not equal to itself.")
787791 }
788792
789793
790794
791-@Callable(dr)
792-func put (fm,fn) = {
793- let fo = aK()
794- let fp = valueOrErrorMessage(addressFromString(fo[z]), "Wr st addr")
795- let fq = valueOrErrorMessage(addressFromString(fo[A]), "Wr sl addr")
796- if ((0 > fm))
795+@Callable(dt)
796+func put (fo,fp) = {
797+ let fq = aL()
798+ let fr = valueOrErrorMessage(addressFromString(fq[z]), "Wr st addr")
799+ let fs = valueOrErrorMessage(addressFromString(fq[B]), "Wr sl addr")
800+ if ((0 > fo))
797801 then throw("Wrong slippage")
798- else if ((size(dr.payments) != 2))
802+ else if ((size(dt.payments) != 2))
799803 then throw("2 pmnts expd")
800804 else {
801- let fr = dt(toString(dr.caller), toBase58String(dr.transactionId), AttachedPayment(value(dr.payments[0]).assetId, value(dr.payments[0]).amount), dr.payments[1], fm, true, false, true, 0, "")
802- let cW = fr._2
803- let fs = fr._7
804- let cn = fr._9
805- let cX = fr._10
806- let cY = fr._11
807- let bV = fr._12
808- let bW = fr._13
809- let cJ = invoke(aB, "emit", [cW], nil)
810- if ((cJ == cJ))
805+ let ft = dv(toString(dt.caller), toBase58String(dt.transactionId), AttachedPayment(value(dt.payments[0]).assetId, value(dt.payments[0]).amount), dt.payments[1], fo, true, false, true, 0, "")
806+ let cY = ft._2
807+ let fu = ft._7
808+ let cp = ft._9
809+ let cZ = ft._10
810+ let da = ft._11
811+ let bX = ft._12
812+ let bY = ft._13
813+ let cL = invoke(aC, "emit", [cY], nil)
814+ if ((cL == cL))
811815 then {
812- let ft = {
813- let av = cJ
814- if ($isInstanceOf(av, "Address"))
816+ let fv = {
817+ let aw = cL
818+ if ($isInstanceOf(aw, "Address"))
815819 then {
816- let fu = av
817- invoke(fu, "emit", [cW], nil)
820+ let fw = aw
821+ invoke(fw, "emit", [cY], nil)
818822 }
819823 else unit
820824 }
821- if ((ft == ft))
825+ if ((fv == fv))
822826 then {
823- let fv = if ((cX > 0))
824- then invoke(fq, "put", nil, [AttachedPayment(bV, cX)])
827+ let fx = if ((cZ > 0))
828+ then invoke(fs, "put", nil, [AttachedPayment(bX, cZ)])
825829 else nil
826- if ((fv == fv))
830+ if ((fx == fx))
827831 then {
828- let fw = if ((cY > 0))
829- then invoke(fq, "put", nil, [AttachedPayment(bW, cY)])
832+ let fy = if ((da > 0))
833+ then invoke(fs, "put", nil, [AttachedPayment(bY, da)])
830834 else nil
831- if ((fw == fw))
835+ if ((fy == fy))
832836 then {
833- let fx = if (fn)
837+ let fz = if (fp)
834838 then {
835- let fy = invoke(fp, "stake", nil, [AttachedPayment(fs, cW)])
836- if ((fy == fy))
839+ let fA = invoke(fr, "stake", nil, [AttachedPayment(fu, cY)])
840+ if ((fA == fA))
837841 then nil
838842 else throw("Strict value is not equal to itself.")
839843 }
840- else [ScriptTransfer(dr.caller, cW, fs)]
841- (cn ++ fx)
844+ else [ScriptTransfer(dt.caller, cY, fu)]
845+ (cp ++ fz)
842846 }
843847 else throw("Strict value is not equal to itself.")
844848 }
845849 else throw("Strict value is not equal to itself.")
846850 }
847851 else throw("Strict value is not equal to itself.")
848852 }
849853 else throw("Strict value is not equal to itself.")
850854 }
851855 }
852856
853857
854858
855-@Callable(dr)
856-func putOneTknV2 (eK,fn) = if ((size(dr.payments) != 1))
859+@Callable(dt)
860+func putOneTknV2 (eM,fp) = if ((size(dt.payments) != 1))
857861 then throw("1 pmnt expd")
858862 else {
859- let eo = aG()
860- let bV = eo[t]
861- let bW = eo[u]
862- let bU = fromBase58String(eo[s])
863- let eO = parseIntValue(eo[v])
864- let eP = parseIntValue(eo[w])
865- let bT = if ((dr.caller == this))
866- then dr.originCaller
867- else dr.caller
868- let ds = value(dr.payments[0])
869- let bR = toBase58String(value(ds.assetId))
870- let cx = ds.amount
871- if ((10000000 > cx))
863+ let eq = aH()
864+ let bX = eq[t]
865+ let bY = eq[u]
866+ let bW = fromBase58String(eq[s])
867+ let eQ = parseIntValue(eq[v])
868+ let eR = parseIntValue(eq[w])
869+ let bV = if ((dt.caller == this))
870+ then dt.originCaller
871+ else dt.caller
872+ let du = value(dt.payments[0])
873+ let bT = toBase58String(value(du.assetId))
874+ let cz = du.amount
875+ if ((10000000 > cz))
872876 then throw("Wrong pmt amt")
873877 else {
874- let fz = em(cx, bR, toString(bT), toBase58String(dr.transactionId))
875- let fA = fz._1
876- let cn = fz._2
877- let bO = fz._3
878- let cW = if (if ((eK > 0))
879- then (eK > fA)
878+ let fB = eo(cz, bT, toString(bV), toBase58String(dt.transactionId))
879+ let fC = fB._1
880+ let cp = fB._2
881+ let bQ = fB._3
882+ let cY = if (if ((eM > 0))
883+ then (eM > fC)
880884 else false)
881- then throw(makeString(["amount to receive is less than ", toString(eK)], ""))
882- else fA
883- let fr = invoke(aB, "emit", [cW], nil)
884- if ((fr == fr))
885+ then throw(makeString(["amount to receive is less than ", toString(eM)], ""))
886+ else fC
887+ let ft = invoke(aC, "emit", [cY], nil)
888+ if ((ft == ft))
885889 then {
886- let ft = {
887- let av = fr
888- if ($isInstanceOf(av, "Address"))
890+ let fv = {
891+ let aw = ft
892+ if ($isInstanceOf(aw, "Address"))
889893 then {
890- let fu = av
891- invoke(fu, "emit", [cW], nil)
894+ let fw = aw
895+ invoke(fw, "emit", [cY], nil)
892896 }
893897 else unit
894898 }
895- if ((ft == ft))
899+ if ((fv == fv))
896900 then {
897- let fx = if (fn)
901+ let fz = if (fp)
898902 then {
899- let fy = invoke(aM, "stake", nil, [AttachedPayment(bU, cW)])
900- if ((fy == fy))
903+ let fA = invoke(aN, "stake", nil, [AttachedPayment(bW, cY)])
904+ if ((fA == fA))
901905 then nil
902906 else throw("Strict value is not equal to itself.")
903907 }
904- else [ScriptTransfer(dr.caller, cW, bU)]
905- let fb = if ((bO > 0))
906- then [ScriptTransfer(aF, bO, fromBase58String(bR))]
908+ else [ScriptTransfer(dt.caller, cY, bW)]
909+ let fd = if ((bQ > 0))
910+ then [ScriptTransfer(aG, bQ, fromBase58String(bT))]
907911 else nil
908- $Tuple2(((cn ++ fx) ++ fb), cW)
912+ $Tuple2(((cp ++ fz) ++ fd), cY)
909913 }
910914 else throw("Strict value is not equal to itself.")
911915 }
912916 else throw("Strict value is not equal to itself.")
913917 }
914918 }
915919
916920
917921
918-@Callable(dr)
919-func putForFree (fB) = if ((0 > fB))
922+@Callable(dt)
923+func putForFree (fD) = if ((0 > fD))
920924 then throw("Wrong slpg")
921- else if ((size(dr.payments) != 2))
925+ else if ((size(dt.payments) != 2))
922926 then throw("2 pmnts expd")
923927 else {
924- let fC = dt(toString(dr.caller), toBase58String(dr.transactionId), AttachedPayment(value(dr.payments[0]).assetId, value(dr.payments[0]).amount), dr.payments[1], fB, false, false, true, 0, "")
925- fC._9
928+ let fE = dv(toString(dt.caller), toBase58String(dt.transactionId), AttachedPayment(value(dt.payments[0]).assetId, value(dt.payments[0]).amount), dt.payments[1], fD, false, false, true, 0, "")
929+ fE._9
926930 }
927931
928932
929933
930-@Callable(dr)
934+@Callable(dt)
931935 func get () = {
932- let cJ = dq(dr)
933- let fD = cJ._1
934- let cm = cJ._2
935- let cx = cJ._3
936- let bR = cJ._4
937- let cn = cJ._5
938- let eg = invoke(aB, "burn", [cx], [AttachedPayment(bR, cx)])
939- if ((eg == eg))
940- then cn
936+ let cL = ds(dt)
937+ let fF = cL._1
938+ let co = cL._2
939+ let cz = cL._3
940+ let bT = cL._4
941+ let cp = cL._5
942+ let ei = invoke(aC, "burn", [cz], [AttachedPayment(bT, cz)])
943+ if ((ei == ei))
944+ then cp
941945 else throw("Strict value is not equal to itself.")
942946 }
943947
944948
945949
946-@Callable(dr)
947-func getOneTknV2 (eJ,eK) = {
948- let fE = eI(eJ, eK, dr.payments, dr.caller, dr.originCaller, dr.transactionId)
949- let cn = fE._1
950- let eU = fE._2
951- $Tuple2(cn, eU)
950+@Callable(dt)
951+func getOneTknV2 (eL,eM) = {
952+ let fG = eK(eL, eM, dt.payments, dt.caller, dt.originCaller, dt.transactionId)
953+ let cp = fG._1
954+ let eW = fG._2
955+ $Tuple2(cp, eW)
952956 }
953957
954958
955959
956-@Callable(dr)
957-func getOneTknV2READONLY (eJ,fF) = {
958- let eo = aG()
959- let bV = eo[t]
960- let bW = eo[u]
961- let bU = eo[s]
962- let dy = [toBigInt(be(bV)), toBigInt(be(bW))]
963- let fG = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bU)), "invalid lp asset").quantity)
964- let br = dx(dy)
965- let bq = (br - fraction(toBigInt(fF), br, fG))
966- let fH = if ((eJ == bV))
960+@Callable(dt)
961+func getOneTknV2READONLY (eL,fH) = {
962+ let eq = aH()
963+ let bX = eq[t]
964+ let bY = eq[u]
965+ let bW = eq[s]
966+ let dA = [toBigInt(bg(bX)), toBigInt(bg(bY))]
967+ let fI = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(bW)), "invalid lp asset").quantity)
968+ let bt = dz(dA)
969+ let bs = (bt - fraction(toBigInt(fH), bt, fI))
970+ let fJ = if ((eL == bX))
967971 then 0
968- else if ((eJ == bW))
972+ else if ((eL == bY))
969973 then 1
970974 else throw("invalid out asset id")
971- let fI = ec(dy, fH, bq)
972- let fJ = (dy[fH] - fI)
973- let fK = toInt((fJ - f))
974- let fL = bM(fK)
975- let eT = fL._1
976- let bO = fL._2
977- $Tuple2(nil, $Tuple2(eT, bO))
975+ let fK = ee(dA, fJ, bs)
976+ let fL = (dA[fJ] - fK)
977+ let fM = toInt((fL - f))
978+ let fN = bO(fM)
979+ let eV = fN._1
980+ let bQ = fN._2
981+ $Tuple2(nil, $Tuple2(eV, bQ))
978982 }
979983
980984
981985
982-@Callable(dr)
983-func getOneTknV2WithBonusREADONLY (eJ,fF) = {
984- let eo = aG()
985- let bV = eo[t]
986- let bW = eo[u]
987- let bU = eo[s]
988- let cb = be(bV)
989- let cd = be(bW)
990- let fM = {
991- let eS = invoke(this, "getOneTknV2READONLY", [eJ, fF], nil)
992- if ($isInstanceOf(eS, "(Int, Int)"))
993- then eS
994- else throw(($getType(eS) + " couldn't be cast to (Int, Int)"))
986+@Callable(dt)
987+func getOneTknV2WithBonusREADONLY (eL,fH) = {
988+ let eq = aH()
989+ let bX = eq[t]
990+ let bY = eq[u]
991+ let bW = eq[s]
992+ let cd = bg(bX)
993+ let cf = bg(bY)
994+ let fO = {
995+ let eU = invoke(this, "getOneTknV2READONLY", [eL, fH], nil)
996+ if ($isInstanceOf(eU, "(Int, Int)"))
997+ then eU
998+ else throw(($getType(eU) + " couldn't be cast to (Int, Int)"))
995999 }
996- let eT = fM._1
997- let bO = fM._2
998- let cJ = bP("", bU, fF, this)
999- let cl = cJ._1
1000- let cm = cJ._2
1001- let fN = (cl + cm)
1002- let eH = fraction((eT - fN), a, fN)
1003- $Tuple2(nil, $Tuple3(eT, bO, eH))
1000+ let eV = fO._1
1001+ let bQ = fO._2
1002+ let cL = bR("", bW, fH, this)
1003+ let cn = cL._1
1004+ let co = cL._2
1005+ let fP = (cn + co)
1006+ let eJ = fraction((eV - fP), a, fP)
1007+ $Tuple2(nil, $Tuple3(eV, bQ, eJ))
10041008 }
10051009
10061010
10071011
1008-@Callable(dr)
1009-func getNoLess (fO,fP) = {
1010- let cJ = dq(dr)
1011- let cl = cJ._1
1012- let cm = cJ._2
1013- let cx = cJ._3
1014- let bR = cJ._4
1015- let cn = cJ._5
1016- if ((fO > cl))
1017- then throw(((("Failed: " + toString(cl)) + " < ") + toString(fO)))
1018- else if ((fP > cm))
1019- then throw(((("Failed: " + toString(cm)) + " < ") + toString(fP)))
1012+@Callable(dt)
1013+func getNoLess (fQ,fR) = {
1014+ let cL = ds(dt)
1015+ let cn = cL._1
1016+ let co = cL._2
1017+ let cz = cL._3
1018+ let bT = cL._4
1019+ let cp = cL._5
1020+ if ((fQ > cn))
1021+ then throw(((("Failed: " + toString(cn)) + " < ") + toString(fQ)))
1022+ else if ((fR > co))
1023+ then throw(((("Failed: " + toString(co)) + " < ") + toString(fR)))
10201024 else {
1021- let fQ = invoke(aB, "burn", [cx], [AttachedPayment(bR, cx)])
1022- if ((fQ == fQ))
1023- then cn
1025+ let fS = invoke(aC, "burn", [cz], [AttachedPayment(bT, cz)])
1026+ if ((fS == fS))
1027+ then cp
10241028 else throw("Strict value is not equal to itself.")
10251029 }
10261030 }
10271031
10281032
10291033
1030-@Callable(dr)
1031-func unstakeAndGet (bN) = {
1032- let fR = if ((size(dr.payments) != 0))
1034+@Callable(dt)
1035+func unstakeAndGet (bP) = {
1036+ let fT = if ((size(dt.payments) != 0))
10331037 then throw("No pmnts expd")
10341038 else true
1035- if ((fR == fR))
1039+ if ((fT == fT))
10361040 then {
1037- let bD = aG()
1038- let fS = aK()
1039- let fs = fromBase58String(bD[s])
1040- let fT = valueOrErrorMessage(addressFromString(fS[z]), "Wr st addr")
1041- let fU = invoke(fT, "unstake", [toBase58String(fs), bN], nil)
1042- if ((fU == fU))
1041+ let bF = aH()
1042+ let fU = aL()
1043+ let fu = fromBase58String(bF[s])
1044+ let fV = valueOrErrorMessage(addressFromString(fU[z]), "Wr st addr")
1045+ let fW = invoke(fV, "unstake", [toBase58String(fu), bP], nil)
1046+ if ((fW == fW))
10431047 then {
1044- let cJ = bP(toBase58String(dr.transactionId), toBase58String(fs), bN, dr.caller)
1045- let bZ = parseIntValue(cJ._9)
1046- let cn = cJ._10
1047- let fV = if (if (aD())
1048+ let cL = bR(toBase58String(dt.transactionId), toBase58String(fu), bP, dt.caller)
1049+ let cb = parseIntValue(cL._9)
1050+ let cp = cL._10
1051+ let fX = if (if (aE())
10481052 then true
1049- else (bZ == p))
1050- then throw(("Blocked: " + toString(bZ)))
1053+ else (cb == p))
1054+ then throw(("Blocked: " + toString(cb)))
10511055 else true
1052- if ((fV == fV))
1056+ if ((fX == fX))
10531057 then {
1054- let fW = invoke(aB, "burn", [bN], [AttachedPayment(fs, bN)])
1055- if ((fW == fW))
1056- then cn
1058+ let fY = invoke(aC, "burn", [bP], [AttachedPayment(fu, bP)])
1059+ if ((fY == fY))
1060+ then cp
10571061 else throw("Strict value is not equal to itself.")
10581062 }
10591063 else throw("Strict value is not equal to itself.")
10601064 }
10611065 else throw("Strict value is not equal to itself.")
10621066 }
10631067 else throw("Strict value is not equal to itself.")
10641068 }
10651069
10661070
10671071
1068-@Callable(dr)
1069-func unstakeAndGetOneTknV2 (fX,eJ,eK) = {
1070- let fR = if ((size(dr.payments) != 0))
1072+@Callable(dt)
1073+func unstakeAndGetOneTknV2 (fZ,eL,eM) = {
1074+ let fT = if ((size(dt.payments) != 0))
10711075 then throw("No pmnts expd")
10721076 else true
1073- if ((fR == fR))
1077+ if ((fT == fT))
10741078 then {
1075- let bD = aG()
1076- let fS = aK()
1077- let fs = fromBase58String(bD[s])
1078- let fT = valueOrErrorMessage(addressFromString(fS[z]), "Wr st addr")
1079- let fU = invoke(fT, "unstake", [toBase58String(fs), fX], nil)
1080- if ((fU == fU))
1079+ let bF = aH()
1080+ let fU = aL()
1081+ let fu = fromBase58String(bF[s])
1082+ let fV = valueOrErrorMessage(addressFromString(fU[z]), "Wr st addr")
1083+ let fW = invoke(fV, "unstake", [toBase58String(fu), fZ], nil)
1084+ if ((fW == fW))
10811085 then {
1082- let fY = eI(eJ, eK, [AttachedPayment(fs, fX)], dr.caller, dr.originCaller, dr.transactionId)
1083- let cn = fY._1
1084- let eU = fY._2
1085- $Tuple2(cn, eU)
1086+ let ga = eK(eL, eM, [AttachedPayment(fu, fZ)], dt.caller, dt.originCaller, dt.transactionId)
1087+ let cp = ga._1
1088+ let eW = ga._2
1089+ $Tuple2(cp, eW)
10861090 }
10871091 else throw("Strict value is not equal to itself.")
10881092 }
10891093 else throw("Strict value is not equal to itself.")
10901094 }
10911095
10921096
10931097
1094-@Callable(dr)
1095-func putOneTknV2WithBonusREADONLY (fZ,ga) = {
1096- let eo = aG()
1097- let bV = eo[t]
1098- let bW = eo[u]
1099- let bU = eo[s]
1100- let gb = em(fZ, ga, "", "")
1101- let eC = gb._1
1102- let cn = gb._2
1103- let bO = gb._3
1104- let eH = gb._4
1105- $Tuple2(nil, $Tuple3(eC, bO, eH))
1098+@Callable(dt)
1099+func putOneTknV2WithBonusREADONLY (gb,gc) = {
1100+ let eq = aH()
1101+ let bX = eq[t]
1102+ let bY = eq[u]
1103+ let bW = eq[s]
1104+ let gd = eo(gb, gc, "", "")
1105+ let eE = gd._1
1106+ let cp = gd._2
1107+ let bQ = gd._3
1108+ let eJ = gd._4
1109+ $Tuple2(nil, $Tuple3(eE, bQ, eJ))
11061110 }
11071111
11081112
11091113
1110-@Callable(dr)
1111-func activate (gc,gd) = if ((toString(dr.caller) != toString(aB)))
1114+@Callable(dt)
1115+func activate (ge,gf) = if ((toString(dt.caller) != toString(aC)))
11121116 then throw("denied")
1113- else $Tuple2([StringEntry(aa(), gc), StringEntry(ab(), gd)], "success")
1117+ else $Tuple2([StringEntry(ab(), ge), StringEntry(ac(), gf)], "success")
11141118
11151119
11161120
1117-@Callable(dr)
1118-func setS (ge,fV) = if ((toString(dr.caller) != ax(this, ad())))
1119- then ff
1120- else [StringEntry(ge, fV)]
1121+@Callable(dt)
1122+func setS (gg,fX) = if ((toString(dt.caller) != ay(this, ae())))
1123+ then fh
1124+ else [StringEntry(gg, fX)]
11211125
11221126
11231127
1124-@Callable(dr)
1125-func setI (ge,fV) = if ((toString(dr.caller) != ax(this, ad())))
1126- then ff
1127- else [IntegerEntry(ge, fV)]
1128+@Callable(dt)
1129+func setI (gg,fX) = if ((toString(dt.caller) != ay(this, ae())))
1130+ then fh
1131+ else [IntegerEntry(gg, fX)]
11281132
11291133
11301134
1131-@Callable(dr)
1132-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aG())
1135+@Callable(dt)
1136+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aH())
11331137
11341138
11351139
1136-@Callable(dr)
1137-func getAccBalanceWrapperREADONLY (bf) = $Tuple2(nil, be(bf))
1140+@Callable(dt)
1141+func getAccBalanceWrapperREADONLY (bh) = $Tuple2(nil, bg(bh))
11381142
11391143
11401144
1141-@Callable(dr)
1142-func calcPricesWrapperREADONLY (bx,by,bC) = {
1143- let gf = bB(bx, by, bC)
1144- $Tuple2(nil, [toString(gf[0]), toString(gf[1]), toString(gf[2])])
1145+@Callable(dt)
1146+func calcPricesWrapperREADONLY (bz,bA,bE) = {
1147+ let gh = bD(bz, bA, bE)
1148+ $Tuple2(nil, [toString(gh[0]), toString(gh[1]), toString(gh[2])])
11451149 }
11461150
11471151
11481152
1149-@Callable(dr)
1150-func fromX18WrapperREADONLY (H,gg) = $Tuple2(nil, G(parseBigIntValue(H), gg))
1153+@Callable(dt)
1154+func fromX18WrapperREADONLY (I,gi) = $Tuple2(nil, H(parseBigIntValue(I), gi))
11511155
11521156
11531157
1154-@Callable(dr)
1155-func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
1158+@Callable(dt)
1159+func toX18WrapperREADONLY (F,G) = $Tuple2(nil, toString(E(F, G)))
11561160
11571161
11581162
1159-@Callable(dr)
1160-func calcPriceBigIntWrapperREADONLY (bh,bi) = $Tuple2(nil, toString(bg(parseBigIntValue(bh), parseBigIntValue(bi))))
1163+@Callable(dt)
1164+func calcPriceBigIntWrapperREADONLY (bj,bk) = $Tuple2(nil, toString(bi(parseBigIntValue(bj), parseBigIntValue(bk))))
11611165
11621166
11631167
1164-@Callable(dr)
1165-func estimatePutOperationWrapperREADONLY (bQ,bm,cp,cq,cr,cs,gh,ct,cu) = $Tuple2(nil, co(bQ, bm, cp, cq, cr, cs, gh, ct, cu, true, false, 0, ""))
1168+@Callable(dt)
1169+func estimatePutOperationWrapperREADONLY (bS,bo,cr,cs,ct,cu,gj,cv,cw) = $Tuple2(nil, cq(bS, bo, cr, cs, ct, cu, gj, cv, cw, true, false, 0, ""))
11661170
11671171
11681172
1169-@Callable(dr)
1170-func estimateGetOperationWrapperREADONLY (bQ,gi,bS,gh) = {
1171- let cJ = bP(bQ, gi, bS, addressFromStringValue(gh))
1172- $Tuple2(nil, $Tuple10(cJ._1, cJ._2, cJ._3, cJ._4, cJ._5, cJ._6, cJ._7, toString(cJ._8), cJ._9, cJ._10))
1173+@Callable(dt)
1174+func estimateGetOperationWrapperREADONLY (bS,gk,bU,gj) = {
1175+ let cL = bR(bS, gk, bU, addressFromStringValue(gj))
1176+ $Tuple2(nil, $Tuple10(cL._1, cL._2, cL._3, cL._4, cL._5, cL._6, cL._7, toString(cL._8), cL._9, cL._10))
11731177 }
11741178
11751179
11761180
1177-@Callable(dr)
1178-func getFeeREADONLY () = $Tuple2(nil, af)
1181+@Callable(dt)
1182+func getFeeREADONLY () = $Tuple2(nil, ag)
11791183
11801184
1181-@Verifier(gj)
1182-func gk () = {
1183- let gl = {
1184- let av = fd()
1185- if ($isInstanceOf(av, "ByteVector"))
1185+@Verifier(gl)
1186+func gm () = {
1187+ let gn = {
1188+ let aw = ff()
1189+ if ($isInstanceOf(aw, "ByteVector"))
11861190 then {
1187- let fh = av
1188- fh
1191+ let fj = aw
1192+ fj
11891193 }
1190- else if ($isInstanceOf(av, "Unit"))
1191- then gj.senderPublicKey
1194+ else if ($isInstanceOf(aw, "Unit"))
1195+ then gl.senderPublicKey
11921196 else throw("Match error")
11931197 }
1194- let av = gj
1195- if ($isInstanceOf(av, "Order"))
1198+ let aw = gl
1199+ if ($isInstanceOf(aw, "Order"))
11961200 then {
1197- let de = av
1198- let gm = aE()
1199- let gn = dd(de)
1200- let go = sigVerify(de.bodyBytes, de.proofs[0], de.senderPublicKey)
1201- let gp = sigVerify(de.bodyBytes, de.proofs[1], gm)
1202- if (if (if (gn)
1203- then go
1201+ let dg = aw
1202+ let go = aF()
1203+ let gp = df(dg)
1204+ let gq = sigVerify(dg.bodyBytes, dg.proofs[0], dg.senderPublicKey)
1205+ let gr = sigVerify(dg.bodyBytes, dg.proofs[1], go)
1206+ if (if (if (gp)
1207+ then gq
12041208 else false)
1205- then gp
1209+ then gr
12061210 else false)
12071211 then true
1208- else aq(gn, go, gp)
1212+ else ar(gp, gq, gr)
12091213 }
1210- else if ($isInstanceOf(av, "SetScriptTransaction"))
1214+ else if ($isInstanceOf(aw, "SetScriptTransaction"))
12111215 then {
1212- let dE = av
1213- let gq = blake2b256(value(dE.script))
1214- let gr = fromBase64String(value(getString(aB, ao())))
1215- let gs = scriptHash(this)
1216- if (if ((gr == gq))
1217- then (gs != gq)
1216+ let dG = aw
1217+ let gs = blake2b256(value(dG.script))
1218+ let gt = fromBase64String(value(getString(aC, ap())))
1219+ let gu = scriptHash(this)
1220+ if (if ((gt == gs))
1221+ then (gu != gs)
12181222 else false)
12191223 then true
1220- else sigVerify(gj.bodyBytes, gj.proofs[0], gl)
1224+ else sigVerify(gl.bodyBytes, gl.proofs[0], gn)
12211225 }
1222- else sigVerify(gj.bodyBytes, gj.proofs[0], gl)
1226+ else sigVerify(gl.bodyBytes, gl.proofs[0], gn)
12231227 }
12241228

github/deemru/w8io/169f3d6 
464.02 ms