tx · Crm7EBEVVuPas1FrwqcRvfgTVQira7hbXhpydbKVSVxH

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.03100000 Waves

2022.09.22 12:01 [2240136] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "Crm7EBEVVuPas1FrwqcRvfgTVQira7hbXhpydbKVSVxH", "fee": 3100000, "feeAssetId": null, "timestamp": 1663837302166, "version": 1, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "3isqJUgjFqUsEU6PmE95yU4NdQuo7VnPhLBdUqC2d8dpo8WEqFTHGBtuDyaTS2yFpA9XAbQWF88BGLtoBvhwoyZU" ], "script": "base64:BgKFHwgCEgMKAQgSAwoBCBIAEgQKAgEEEgcKBQEBAQEEEgQKAgEEEgQKAgEIEgQKAgEIEgMKAQESABIHCgUBAQEIARIECgIIARIECgIIARIECgIIARIECgIBARIDCgEBEgUKAwEIARIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IglvbmVCaWdJbnQiCnNsaXBwYWdlNEQiBUFtdWx0IgVEY29udiIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIKUG9vbFB1dERpcyIOUG9vbE1hdGNoZXJEaXMiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiCWlkeFBvb2xTdCIJaWR4TFBBc0lkIglpZHhBbUFzSWQiCWlkeFByQXNJZCILaWR4QW10QXNEY20iDWlkeFByaWNlQXNEY20iC2lkeElBbXRBc0lkIg1pZHhJUHJpY2VBc0lkIg9pZHhGYWN0U3Rha0NudHIiEGlkeEZhY3RTbGlwcENudHIiEWlkeEZhY3RHd3hSZXdDbnRyIgpmZWVEZWZhdWx0IgJ0MSIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCICZjEiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0IgJ0cyIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyICZmMiA21wayIEcG1wayICcGwiAnBoIgFoIgF0IgNwYXUiAnVhIgR0eElkIgNnYXUiAmFhIgJwYSIDYW1wIgNhZGEiBmtleUZlZSIDZmVlIgRmY2ZnIgRtdHBrIgJwYyIGaUFtdEFzIgVpUHJBcyIDbWJhIgViQVN0ciIDYXBzIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIgN0b2UiA29yViIGc2VuZHJWIgZtYXRjaFYiA3N0ciIHJG1hdGNoMCIGdmFsU3RyIgRzdHJmIgRhZGRyIgNrZXkiBGludGYiA2ZjYSIBQSIDaWdzIgJtcCITZmVlQ29sbGVjdG9yQWRkcmVzcyIDZ3BjIgVhbXRBcyIHcHJpY2VBcyIIaVByaWNlQXMiA2dmYyINZmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0Ig9zbGlwYWdlQ29udHJhY3QiC2d3eENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiB3Rha2VGZWUiBmFtb3VudCIJZmVlQW1vdW50IgNlZ28iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiC3VzZXJBZGRyZXNzIgRscElkIgRhbUlkIgRwcklkIgVhbURjbSIFcHJEY20iA3N0cyIHbHBFbWlzcyIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4IgpscEVtaXNzWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiA2VwbyIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIglpbkFtSWRTdHIiCWluUHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIBciILc2xpcHBhZ2VYMTgiD3NsaXBwYWdlUmVhbFgxOCINbHBFbWlzc2lvblgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiINJHQwMTYyMzcxNjU4MiIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiA21vYSIFb3JkZXIiB2FtdEFzSWQiBnByQXNJZCIPYWNjQW10QXNCYWxhbmNlIg5hY2NQckFzQmFsYW5jZSIKb3JBbXRBc3NldCIKb3JBbXRBc1N0ciIJb3JQckFzc2V0IglvclByQXNTdHIiCm9yZGVyUHJpY2UiDmNhc3RPcmRlclByaWNlIhFpc09yZGVyUHJpY2VWYWxpZCICY2ciAWkiA3BtdCICY3AiBmNhbGxlciIHYW1Bc1BtdCIHcHJBc1BtdCITZXN0aW1hdGVQdXRPbmVUa25WMiIJcG10QW10UmF3Igpwb29sQ29uZmlnIg0kdDAyMDkwODIwOTUzIg0kdDAyMDk1NzIxNDE4IgxhbUJhbGFuY2VOb3ciDHByQmFsYW5jZU5vdyINJHQwMjE0MjIyMTU1NiIQYW1CYWxhbmNlRm9yQ2FsYyIQcHJCYWxhbmNlRm9yQ2FsYyIKeFByZWNpc2lvbiIGcmVzdWx0IgFAIg0kdDAyMjAyNTIyMTIxIgthbUFzc2V0UGFydCILcHJBc3NldFBhcnQiBmVzdFB1dCIHZXN0aW1MUCIJbHBBc3NldElkIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDIzNDc2MjM1ODQiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMjM3NzEyMzg1OCIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIgFtIgFzIgJwbSICcGQiAm1tIgJwayIBYyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiAmNtIgNocG0iA2NwbSIEc2xpcCIJYXV0b1N0YWtlIgdmYWN0Q2ZnIgtzdGFraW5nQ250ciIIc2xpcENudHIiAWUiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIgVvdXRMcCIHZ3d4Q250ciIHcG9vbENmZyIFYWRkb24iEHBheW1lbnRBbW91bnRSYXciDSR0MDI5MjQ0MjkyOTYiDSR0MDI5NDU2MzAwNzIiDHZpcnRTd2FwSW5BbSINdmlydFN3YXBPdXRQciIMdmlydFN3YXBJblByIg12aXJ0U3dhcE91dEFtIgZEMHZzRDEiCWxwQ2FsY1JlcyINcGF5bWVudEFtb3VudCIOcGF5bWVudEFzc2V0SWQiD2xwQXNzZXRFbWlzc2lvbiINJHQwMzUwOTUzNTQwNCIQcHJpY2VBc3NldEFtb3VudCIRYW1vdW50QXNzZXRBbW91bnQiCWxwQW10Qm90aCIPbHBBc3NldFByaWNlT25lIhBscEFzc2V0UHJpY2VCb3RoIgVib251cyIHbWF4U2xwZyIJb3V0QW10QW10IgFiIgpleGNoUmVzdWx0Igdub3RVc2VkIglvdXRBbW91bnQiCmVzdGltQW1BbXQiCmVzdGltUHJBbXQiDSR0MDM4Njg1MzkxNDUiC3RvdGFsR2V0UmF3IghmaW5hbFJlcyINJHQwMzk4OTIzOTk5NiINJHQwNDEwMjE0MTE3NiINbHBBc3NldEFtb3VudCINJHQwNDE2ODY0MTk1NyIUYW1vdW50QmFsYW5jZUZvclN3YXAiE3ByaWNlQmFsYW5jZUZvclN3YXAiDGFtb3VudFRvU3dhcCIKeVByZWNpc2lvbiINJHQwNDI1Mjk0MjU3OCINJHQwNDI5MjI0MzAzNyISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiDWNoZWNrUGF5bWVudHMiCmZhY3RvcnlDZmciB3N0YWtpbmciCnVuc3Rha2VJbnYiAXYiBWJ1cm5BIg11bnN0YWtlQW1vdW50Ig0kdDA0NTQ1NzQ1NjQ1IghhbXRBc1N0ciIHcHJBc1N0ciIBayICcHIiDHJlc1NjYWxlTXVsdCIHdXNyQWRkciIHcG10QXNJZCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIgpvcmRlclZhbGlkIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2hXAAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAEAAWYJALYCAQkAZQIFAWEJAGkCCQBoAgUBYQABBQFhAAFnAgMxMDAAAWgCATEAAWkCAl9fAAFqAgAAAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAABAAF5AAcAAXoACgABQQkAawMABQUBYQCQTgEBQgIBQwFECQC8AgMJALYCAQUBQwUBYwkAtgIBBQFEAQFFAgFGAUcJAKADAQkAvAIDBQFGCQC2AgEFAUcFAWMBAUgDAUkBSgFLCQBrAwUBSQUBSgUBSwEBTAEBRgMJAL8CAgUBZAUBRgkAvgIBBQFGBQFGAQFNAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBTgACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFPAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFQAAIRJXMlc19fcHJpY2VfX2xhc3QBAVECAVIBUwkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVIJAMwIAgkApAMBBQFTBQNuaWwFAWkBAVQCAVUBVgkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVUCAl9fBQFWAQFXAgFVAVYJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFVAgJfXwUBVgEBWAACDyVzX19hbW91bnRBc3NldAEBWQACDiVzX19wcmljZUFzc2V0AQFaAAIHJXNfX2FtcAECYWEAAg0lc19fYWRkb25BZGRyAAJhYgIHJXNfX2ZlZQACYWMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWIFAUEBAmFkAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFlAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhZgICYWcCYWgJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFnAgJfXwUCYWgCCF9fY29uZmlnAQJhaQECYWoJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYWoBAmFrAAIMJXNfX3NodXRkb3duAQJhbAACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJhbQACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhbgMCYW8CYXACYXEJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRRmFpbGVkOiBvcmRWYWxpZD0JAKUDAQUCYW8CCyBzbmRyVmFsaWQ9CQClAwEFAmFwAgwgbXRjaHJWYWxpZD0JAKUDAQUCYXEBAmFyAQFGBAJhcwUBRgMJAAECBQJhcwIGU3RyaW5nBAJhdAUCYXMFAmF0CQACAQITZmFpbCBjYXN0IHRvIFN0cmluZwECYXUCAmF2AmF3CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYXYFAmF3CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF2CQDMCAICAS4JAMwIAgUCYXcJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYXgCAmF2AmF3CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYXYFAmF3CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF2CQDMCAICAS4JAMwIAgUCYXcJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAACYXkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhdQIFBHRoaXMJAQFNAAACYXoJAQJhdQIFBHRoaXMJAQFaAAECYUEACQELdmFsdWVPckVsc2UCCQCbCAIFAmF5CQECYWsABwECYUIACQDZBAEJAQJhdQIFAmF5CQECYWUAAAJhQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmF1AgUCYXkJAQJhbQABAmFEAAQCYUUJAQJhdQIFBHRoaXMJAQFYAAQCYUYJAQJhdQIFBHRoaXMJAQFZAAQCYUcJAQJheAIFAmF5CQECYWkBBQJhRgQCYWcJAQJheAIFAmF5CQECYWkBBQJhRQkAtQkCCQECYXUCBQJheQkBAmFmAgkApAMBBQJhZwkApAMBBQJhRwUBaQECYUgACQC1CQIJAQJhdQIFAmF5CQECYWQABQFpAAJhSQkBAmFIAAACYUoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFJBQF4AiBJbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwACYUsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFJBQF5AiBJbnZhbGlkIHNsaXBhZ2UgY29udHJhY3QgYWRkcmVzcwACYUwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFJBQF6AhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJhTQoCYU4CYU8CYVACYVECYVICYVMCYVQCYVUCYVYCYVcJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmFOCQDMCAIJAKQDAQUCYU8JAMwIAgkApAMBBQJhUAkAzAgCCQCkAwEFAmFRCQDMCAIJAKQDAQUCYVIJAMwIAgkApAMBBQJhUwkAzAgCCQCkAwEFAmFUCQDMCAIJAKQDAQUCYVUJAMwIAgkApAMBBQJhVgkAzAgCCQCkAwEFAmFXBQNuaWwFAWkBAmFYBgJhWQJhWgJiYQJhUQJhVAJhVQkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmFZCQDMCAIJAKQDAQUCYVoJAMwIAgkApAMBBQJiYQkAzAgCCQCkAwEFAmFRCQDMCAIJAKQDAQUCYVQJAMwIAgkApAMBBQJhVQUDbmlsBQFpAQJiYgECYmMDCQAAAgUCYmMCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJjAQJiZAICYmUCYmYJALwCAwUCYmUFAWMFAmJmAQJiZwMCYmgCYmkCYmoEAmJrCQC8AgMJALgCAgUCYmgFAmJpBQFiBQJiaQQCYmwJAL8CAgkAuAICBQJiagkBAUwBBQJiawUBZAMJAQEhAQUCYmwJAAIBCQCsAgICCkJpZyBzbHBnOiAJAKYDAQUCYmsJAJQKAgUCYmwJAJkDAQkAzAgCBQJiaAkAzAgCBQJiaQUDbmlsAQJibQMCYm4CYm8CYnAEAmJrCQC8AgMFAmJvBQFiBQJibgQCYnEJAL8CAgUCYnAFAmJrAwMFAmJxBgkAvwICBQJibwUCYm4JAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCmAwEFAmJvAgEgCQCmAwEFAmJuAgEgCQCmAwEFAmJrAgEgCQCmAwEFAmJwBQJicQECYnIEAmJzAmJ0AmJ1AmJ2BAJidwkBAUICBQJidQUCYnMEAmJ4CQEBQgIFAmJ2BQJidAkBAmJkAgUCYngFAmJ3AQJieQMCYnUCYnYCYnoEAmJBCQECYUQABAJiQgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJBBQF0BAJiQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJBBQF1BAJiRAkBAmJyBAUCYkIFAmJDBQJidQUCYnYEAmJmCQEBQgIFAmJ1BQJiQgQCYmUJAQFCAgUCYnYFAmJDBAJiRQkBAUICBQJiegUBYQQCYkYJAQJiZAIFAmJmBQJiRQQCYkcJAQJiZAIFAmJlBQJiRQkAzAgCBQJiRAkAzAgCBQJiRgkAzAgCBQJiRwUDbmlsAQJiSAMCYnUCYnYCYnoEAmJJCQECYnkDBQJidQUCYnYFAmJ6CQDMCAIJAQFFAgkAkQMCBQJiSQAABQFhCQDMCAIJAQFFAgkAkQMCBQJiSQABBQFhCQDMCAIJAQFFAgkAkQMCBQJiSQACBQFhBQNuaWwBAmJKAQJiSwQCYkwJAGsDBQJiSwUCYWMFAWEJAJQKAgkAZQIFAmJLBQJiTAUCYkwBAmJNBAJiTgJiTwJiUAJiUQQCYkEJAQJhRAAEAmJSCQCRAwIFAmJBBQFxBAJiUwkAkQMCBQJiQQUBcgQCYlQJAJEDAgUCYkEFAXMEAmJVCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXQEAmJWCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXUEAmJXCQCRAwIFAmJBBQFwBAJiWAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmJSAgtXcm9uZyBMUCBpZAhxdWFudGl0eQMJAQIhPQIFAmJSBQJiTwkAAgECD1dyb25nIHBtdCBhc3NldAQCYlkJAQJiYgEFAmJTBAJiWgkBAUICBQJiWQUCYlUEAmNhCQECYmIBBQJiVAQCY2IJAQFCAgUCY2EFAmJWBAJjYwkBAmJkAgUCY2IFAmJaBAJjZAkBAUUCBQJjYwUBYQQCY2UJAQFCAgUCYlAFAWEEAmNmCQEBQgIFAmJYBQFhBAJjZwkAvAIDBQJiWgUCY2UFAmNmBAJjaAkAvAIDBQJjYgUCY2UFAmNmBAJjaQkBAUUCBQJjZwUCYlUEAmNqCQEBRQIFAmNoBQJiVgQCY2sDCQAAAgUCYk4CAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJRBQJjaQMJAAACBQJiUwIFV0FWRVMFBHVuaXQJANkEAQUCYlMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYlEFAmNqAwkAAAIFAmJUAgVXQVZFUwUEdW5pdAkA2QQBBQJiVAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwIJAKUIAQUCYlEFAmJOCQECYVgGBQJjaQUCY2oFAmJQBQJjZAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVAABQJjZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjZAUDbmlsCQCcCgoFAmNpBQJjagUCYlMFAmJUBQJiWQUCY2EFAmJYBQJjYwUCYlcFAmNrAQJjbA0CYk4CYmoCY20CY24CY28CY3ACYlECY3ECY3ICY3MCY3QCY3UCY3YEAmJBCQECYUQABAJiUgkA2QQBCQCRAwIFAmJBBQFxBAJjdwkAkQMCBQJiQQUBcgQCY3gJAJEDAgUCYkEFAXMEAmN5CQCRAwIFAmJBBQF2BAJjegkAkQMCBQJiQQUBdwQCY0EJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiQQUBdAQCY0IJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiQQUBdQQCYlcJAJEDAgUCYkEFAXAEAmNDCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJSAghXciBscCBhcwhxdWFudGl0eQQCYlkDBQJjcQkBAmJiAQUCY3cDAwUCY3MJAAACBQJjdgUCY3cHCQBlAgkBAmJiAQUCY3cFAmN1AwUCY3MJAQJiYgEFAmN3CQBlAgkBAmJiAQUCY3cFAmNtBAJjYQMFAmNxCQECYmIBBQJjeAMDBQJjcwkAAAIFAmN2BQJjeAcJAGUCCQECYmIBBQJjeAUCY3UDBQJjcwkBAmJiAQUCY3gJAGUCCQECYmIBBQJjeAUCY28EAmNECQEBQgIFAmNtBQJjQQQCY0UJAQFCAgUCY28FAmNCBAJjRgkBAmJkAgUCY0UFAmNEBAJiWgkBAUICBQJiWQUCY0EEAmNiCQEBQgIFAmNhBQJjQgQCY0cDCQAAAgUCY0MAAAQCY2MFAWQEAmNIBQFkBAJiRQkAdgYJALkCAgUCY0QFAmNFAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBRQIFAmJFBQFhCQEBRQIFAmNEBQJjQQkBAUUCBQJjRQUCY0IJAQJiZAIJALcCAgUCY2IFAmNFCQC3AgIFAmJaBQJjRAUCY0gEAmNjCQECYmQCBQJjYgUCYloEAmNJCQC8AgMJAQFMAQkAuAICBQJjYwUCY0YFAWMFAmNjBAJjSAkBAUICBQJiagUBYQMDAwUCY3QJAQIhPQIFAmNjBQFkBwkAvwICBQJjSQUCY0gHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmNJAgMgPiAJAKYDAQUCY0gEAmNKCQEBQgIFAmNDBQFhBAJjSwkAvAIDBQJjRAUCY2MFAWMEAmNMCQC8AgMFAmNFBQFjBQJjYwQCY00DCQC/AgIFAmNLBQJjRQkAlAoCBQJjTAUCY0UJAJQKAgUCY0QFAmNLBAJjTggFAmNNAl8xBAJjTwgFAmNNAl8yBAJiRQkAvAIDBQJjSgUCY08FAmNiCQCXCgUJAQFFAgUCYkUFAWEJAQFFAgUCY04FAmNBCQEBRQIFAmNPBQJjQgUCY2MFAmNIBAJjUAgFAmNHAl8xBAJjUQgFAmNHAl8yBAJjUggFAmNHAl8zBAJjZAkBAUUCCAUCY0cCXzQFAWEEAmNTCQEBRQIIBQJjRwJfNQUBYQMJAGcCAAAFAmNQCQACAQIHTFAgPD0gMAQCY1QDCQEBIQEFAmNyAAAFAmNQBAJjVQkAZQIFAmNtBQJjUQQCY1YJAGUCBQJjbwUCY1IEAmNXAwMFAmNzCQAAAgUCY3YFAmN3BwkAlAoCBQJjdQAAAwMFAmNzCQAAAgUCY3YFAmN4BwkAlAoCAAAFAmN1CQCUCgIFAmNRBQJjUgQCY1gIBQJjVwJfMQQCY1kIBQJjVwJfMgQCY1oJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFQAAUCY2QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQCBQJiUQUCYk4JAQJhTQoFAmNYBQJjWQUCY1QFAmNkBQJiagUCY1MFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNVBQJjVgUDbmlsCQCfCg0FAmNQBQJjVAUCY2QFAmJZBQJjYQUCY0MFAmJSBQJiVwUCY1oFAmNVBQJjVgUCY24FAmNwAQJkYQECZGIEAmJBCQECYUQABAJkYwkAkQMCBQJiQQUBcgQCZGQJAJEDAgUCYkEFAXMEAmJXCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXAEAmJCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXQEAmJDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXUEAmRlCQECYmIBBQJkYwQCZGYJAQJiYgEFAmRkBAJjYwMJAAACCAUCZGIJb3JkZXJUeXBlBQNCdXkJAQJicgQFAmJCBQJiQwkAZAIFAmRlCAUCZGIGYW1vdW50BQJkZgkBAmJyBAUCYkIFAmJDCQBlAgUCZGUIBQJkYgZhbW91bnQFAmRmBAJjZAkBAUUCBQJjYwUBYQMDAwkBAmFBAAYJAAACBQJiVwUBbQYJAAACBQJiVwUBbgkAAgECDUFkbWluIGJsb2NrZWQEAmRnCAgFAmRiCWFzc2V0UGFpcgthbW91bnRBc3NldAQCZGgDCQAAAgUCZGcFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRnBAJkaQgIBQJkYglhc3NldFBhaXIKcHJpY2VBc3NldAQCZGoDCQAAAgUCZGkFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRpAwMJAQIhPQIFAmRoBQJkYwYJAQIhPQIFAmRqBQJkZAkAAgECCVdyIGFzc2V0cwQCZGsIBQJkYgVwcmljZQQCY0IJAGsDBQFhBQJiQwUCYkIEAmRsCQEBSAMFAmRrBQFhBQJjQgQCZG0DCQAAAggFAmRiCW9yZGVyVHlwZQUDQnV5CQBnAgUCY2QFAmRsCQBnAgUCZGwFAmNkBgECZG4BAmRvAwkBAiE9AgkAkAMBCAUCZG8IcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmRwCQEFdmFsdWUBCQCRAwIIBQJkbwhwYXltZW50cwAABAJiTwkBBXZhbHVlAQgFAmRwB2Fzc2V0SWQEAmN1CAUCZHAGYW1vdW50BAJjRwkBAmJNBAkA2AQBCAUCZG8NdHJhbnNhY3Rpb25JZAkA2AQBBQJiTwUCY3UIBQJkbwZjYWxsZXIEAmNpCAUCY0cCXzEEAmNqCAUCY0cCXzIEAmJXCQENcGFyc2VJbnRWYWx1ZQEIBQJjRwJfOQQCY2sIBQJjRwNfMTADAwkBAmFBAAYJAAACBQJiVwUBbgkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmJXCQCXCgUFAmNpBQJjagUCY3UFAmJPBQJjawECZHEKAmRyAVYCZHMCZHQCYmoCY3ICY3MCY3QCY3UCY3YEAmNHCQECY2wNBQFWBQJiaggJAQV2YWx1ZQEFAmRzBmFtb3VudAgJAQV2YWx1ZQEFAmRzB2Fzc2V0SWQICQEFdmFsdWUBBQJkdAZhbW91bnQICQEFdmFsdWUBBQJkdAdhc3NldElkBQJkcgcFAmNyBQJjcwUCY3QFAmN1BQJjdgQCYlcJAQ1wYXJzZUludFZhbHVlAQgFAmNHAl84AwMDCQECYUEABgkAAAIFAmJXBQFsBgkAAAIFAmJXBQFuCQACAQkArAICAghCbG9ja2VkOgkApAMBBQJiVwUCY0cBAmR1BAJkdgJiTwJiUQFWBAJkdwkBAmFEAAQCYlMJAJEDAgUCZHcFAXIEAmJUCQCRAwIFAmR3BQFzBAJiWQkBAmJiAQUCYlMEAmNhCQECYmIBBQJiVAQCZHgJAQJiSgEFAmR2BAJjdQgFAmR4Al8xBAJiTAgFAmR4Al8yBAJkeQMJAAACBQFWAgAJAJQKAgUCYlkFAmNhAwkAAAIFAmJPBQJiUwMJAGYCBQJkdgUCYlkJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIJAGUCBQJiWQUCZHYFAmNhAwkAAAIFAmJPBQJiVAMJAGYCBQJkdgUCY2EJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIFAmJZCQBlAgUCY2EFAmR2CQACAQIQd3JvbmcgcG10QXNzZXRJZAQCZHoIBQJkeQJfMQQCZEEIBQJkeQJfMgQCZEIDCQAAAgUCYk8FAmJTCQCUCgIFAmR6BQJkQQkAlAoCBQJkQQUCZHoEAmRDCAUCZEICXzEEAmRECAUCZEICXzIEAmRFAAEEAmRGCgACZEcJAPwHBAUCYUwCDGNhbGNQdXRYT25seQkAzAgCCQCkAwEFAmN1CQDMCAIJAKQDAQUCZEMJAMwIAgkApAMBBQJkRAkAzAgCAgAJAMwIAgUCYXoJAMwIAgUBZwkAzAgCCQCkAwEFAmRFCQDMCAIFAWgFA25pbAUDbmlsAwkAAQIFAmRHAgooSW50LCBJbnQpBQJkRwkAAgEJAKwCAgkAAwEJAPwHBAUCYUwCDGNhbGNQdXRYT25seQkAzAgCCQCkAwEFAmN1CQDMCAIJAKQDAQUCZEMJAMwIAgkApAMBBQJkRAkAzAgCAgAJAMwIAgUCYXoJAMwIAgUBZwkAzAgCCQCkAwEFAmRFCQDMCAIFAWgFA25pbAUDbmlsAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJkSAMJAAACBQJiTwUCYlMFAmRGCQCUCgIIBQJkRgJfMggFAmRGAl8xBAJkSQgFAmRIAl8xBAJkSggFAmRIAl8yBAJkSwkBAmRxCgUCYlEFAVYJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJTBQJkSQkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYlQFAmRKAAAGBgcFAmR2BQJiTwQCZEwIBQJkSwJfMgQCZE0IBQJkSwJfNwQCY2sIBQJkSwJfOQQCY1UIBQJkSwNfMTAEAmNWCAUCZEsDXzExBQJkSwECZE4GAmRPAmRQAmRRAmRyAmRSAmRTAwkBAiE9AgkAkAMBBQJkUQABCQACAQILMSBwbW50IGV4cGQEAmR3CQECYUQABAJiUgkAkQMCBQJkdwUBcQQCYlMJAJEDAgUCZHcFAXIEAmJUCQCRAwIFAmR3BQFzBAJkVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF0BAJkVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF1BAJkVgkAkQMCBQJkdwUBcAQCYlEDCQAAAgUCZHIFBHRoaXMFAmRSBQJkcgQCZHAJAQV2YWx1ZQEJAJEDAgUCZFEAAAQCYk8JAQV2YWx1ZQEIBQJkcAdhc3NldElkBAJjdQgFAmRwBmFtb3VudAMJAGYCAICU69wDBQJjdQkAAgECDU1pbiBwbXQgMTAgTFAEAmJOCQDYBAEFAmRTAwkBAiE9AgUCYlIJANgEAQUCYk8JAAIBAghXcm9uZyBMUAQCYlkJAQJiYgEFAmJTBAJjYQkBAmJiAQUCYlQEAmRXCgACZEcJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJkTwkAzAgCBQJjdQUDbmlsBQNuaWwDCQABAgUCZEcCCihJbnQsIEludCkFAmRHCQACAQkArAICCQADAQkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmRPCQDMCAIFAmN1BQNuaWwFA25pbAIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQQCZFgIBQJkVwJfMQQCYkwIBQJkVwJfMgQCZFkDAwkAZgIFAmRQAAAJAGYCBQJkUAUCZFgHCQACAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJkUAUDbmlsAgAFAmRYBAJkWgMJAAACBQJkTwUCYlMJAJQKAgUCZFkAAAkAlAoCAAAFAmRZBAJlYQgFAmRaAl8xBAJlYggFAmRaAl8yBAJlYwkBAmJkAgkBAUICBQJjYQUCZFUJAQFCAgUCYlkFAmRUBAJlZAkBAUUCBQJlYwUBYQQCZWUDCQAAAgUCZE8CBVdBVkVTBQR1bml0CQDZBAEFAmRPBAJlZgMJAGYCBQJiTAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFDBQJiTAUCZWUFA25pbAUDbmlsBAJjawkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJRBQJkWQUCZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcCCQClCAEFAmJRBQJiTgkBAmFYBgUCZWEFAmViBQJjdQUCZWQFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFQAAUCZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWQFA25pbAUCZWYDCQAAAgUCY2sFAmNrBAJlZwkA/AcEBQJheQIEYnVybgkAzAgCBQJjdQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY3UFA25pbAMJAAACBQJlZwUCZWcJAJQKAgUCY2sFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlaAAEAmFzCQCiCAEJAQFOAAMJAAECBQJhcwIGU3RyaW5nBAJlaQUCYXMJANkEAQUCZWkDCQABAgUCYXMCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZWoABAJhcwkAoggBCQEBTwADCQABAgUCYXMCBlN0cmluZwQCZWkFAmFzCQDZBAEFAmVpAwkAAQIFAmFzAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmVrCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBAmVsAQJkbwQCYXMJAQJlaAADCQABAgUCYXMCCkJ5dGVWZWN0b3IEAmVtBQJhcwMJAAACCAUCZG8PY2FsbGVyUHVibGljS2V5BQJlbQYFAmVrAwkAAQIFAmFzAgRVbml0AwkAAAIIBQJkbwZjYWxsZXIFBHRoaXMGBQJlawkAAgECC01hdGNoIGVycm9yHQJkbwELY29uc3RydWN0b3IBAU0EAmVuCQECZWwBBQJkbwMJAAACBQJlbgUCZW4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU0ABQFNBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZG8BCnNldE1hbmFnZXIBAmVvBAJlbgkBAmVsAQUCZG8DCQAAAgUCZW4FAmVuBAJlcAkA2QQBBQJlbwMJAAACBQJlcAUCZXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ABQJlbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQ5jb25maXJtTWFuYWdlcgAEAmJJCQECZWoABAJlcQMJAQlpc0RlZmluZWQBBQJiSQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZXEFAmVxBAJlcgMJAAACCAUCZG8PY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJiSQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZXIFAmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFOAAkA2AQBCQEFdmFsdWUBBQJiSQkAzAgCCQELRGVsZXRlRW50cnkBCQEBTwAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbwEDcHV0AgJlcwJldAQCZXUJAQJhSAAEAmV2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJldQUBeAIKV3Igc3QgYWRkcgQCZXcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmV1BQF5AgpXciBzbCBhZGRyAwkAZgIAAAUCZXMJAAIBAg5Xcm9uZyBzbGlwcGFnZQMJAQIhPQIJAJADAQgFAmRvCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmV4CQECZHEKCQClCAEIBQJkbwZjYWxsZXIJANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmRvCHBheW1lbnRzAAEFAmVzBgcGAAACAAQCY1QIBQJleAJfMgQCZE0IBQJleAJfNwQCY2sIBQJleAJfOQQCY1UIBQJleANfMTAEAmNWCAUCZXgDXzExBAJiUwgFAmV4A18xMgQCYlQIBQJleANfMTMEAmNHCQD8BwQFAmF5AgRlbWl0CQDMCAIFAmNUBQNuaWwFA25pbAMJAAACBQJjRwUCY0cEAmV5BAJhcwUCY0cDCQABAgUCYXMCB0FkZHJlc3MEAmV6BQJhcwkA/AcEBQJlegIEZW1pdAkAzAgCBQJjVAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZXkFAmV5BAJlQQMJAGYCBQJjVQAACQD8BwQFAmV3AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlMFAmNVBQNuaWwFA25pbAMJAAACBQJlQQUCZUEEAmVCAwkAZgIFAmNWAAAJAPwHBAUCZXcCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiVAUCY1YFA25pbAUDbmlsAwkAAAIFAmVCBQJlQgQCZUMDBQJldAQCZUQJAPwHBAUCZXYCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRNBQJjVAUDbmlsAwkAAAIFAmVEBQJlRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkbwZjYWxsZXIFAmNUBQJkTQUDbmlsCQDOCAIFAmNrBQJlQwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbwEJcHV0T25lVGtuBQJkSQJkSgJlRQJiagJldAQCYkEJAQJhSAAEAmV2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJiQQUBeAIKV3Igc3QgYWRkcgQCZXcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJBBQF5AgpXciBzbCBhZGRyBAJlRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYkEFAXoCC1dyIGd3eCBhZGRyBAJlRwkBAmFEAAQCYlMJAJEDAgUCZUcFAXIEAmJUCQCRAwIFAmVHBQFzBAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVHBQF0BAJiVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVHBQF1BAJlSAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYWEAAgAEAmJRAwkAAAIFAmVICQClCAEIBQJkbwZjYWxsZXIIBQJkbwxvcmlnaW5DYWxsZXIIBQJkbwZjYWxsZXIDAwMDCQBnAgAABQJiagYJAGcCAAAFAmRJBgkAZwIAAAUCZEoGCQBnAgAABQJlRQkAAgECDFdyb25nIHBhcmFtcwMJAQIhPQIJAJADAQgFAmRvCHBheW1lbnRzAAEJAAIBAgsxIHBtbnQgZXhwZAQCZHAJAQV2YWx1ZQEJAJEDAggFAmRvCHBheW1lbnRzAAAEAmJPCQDYBAEJAQV2YWx1ZQEIBQJkcAdhc3NldElkBAJlSQgFAmRwBmFtb3VudAQCZUoJAQJiSgEFAmVJBAJjdQgFAmVKAl8xBAJiTAgFAmVKAl8yAwkAZgIAgK3iBAUCZUkJAAIBAg1Xcm9uZyBwbXQgYW10BAJiWQkBAmJiAQUCYlMEAmNhCQECYmIBBQJiVAQCZUsDCQAAAgUCYk8FAmJTAwMJAGYCBQJlSQUCYlkGCQBmAgUCZEkFAmN1CQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAmAoGCQBlAgUCYlkFAmVJBQJjYQkAZQIFAmN1BQJkSQUCZEoAAAAAAwkAAAIFAmJPBQJiVAMDCQBmAgUCZUkFAmNhBgkAZgIFAmRKBQJjdQkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJgKBgUCYlkJAGUCBQJjYQUCZUkAAAAACQBlAgUCY3UFAmRKBQJkSQkAAgECEHdyb25nIHBtdEFzc2V0SWQEAmR6CAUCZUsCXzEEAmRBCAUCZUsCXzIEAmVMCAUCZUsCXzMEAmVNCAUCZUsCXzQEAmVOCAUCZUsCXzUEAmVPCAUCZUsCXzYEAmJvCQD8BwQFAmVGAgVjYWxjRAkAzAgCCQCkAwEFAmR6CQDMCAIJAKQDAQUCZEEJAMwIAgUCYXoJAMwIAgUBZwkAzAgCBQFoBQNuaWwFA25pbAQCYm4JAPwHBAUCZUYCBWNhbGNECQDMCAIJAKYDAQkAtgIBCQBlAgkAZAIFAmR6BQJlTAUCZU8JAMwIAgkApgMBCQC2AgEJAGUCCQBkAgUCZEEFAmVOBQJlTQkAzAgCBQJhegkAzAgCBQFnCQDMCAIFAWgFA25pbAUDbmlsBAJlUAkBAmJtAwkApwMBCQECYXIBBQJibgkApwMBCQECYXIBBQJibwUBZgMJAAACBQJlUAUCZVAEAmRLCQECZHEKCQClCAEIBQJkbwZjYWxsZXIJANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJTBQJkSQkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYlQFAmRKBQJiagYGBgUCY3UFAmJPBAJkTAgFAmRLAl8yBAJkTQgFAmRLAl83BAJjawgFAmRLAl85BAJjVQgFAmRLA18xMAQCY1YIBQJkSwNfMTEEAmVRCQECYmcDCQC2AgEFAmRMCQC2AgEFAmVFCQC2AgEFAmJqBAJjVAkAoAMBCAUCZVECXzIEAmV4CQD8BwQFAmF5AgRlbWl0CQDMCAIFAmNUBQNuaWwFA25pbAMJAAACBQJleAUCZXgEAmV5BAJhcwUCZXgDCQABAgUCYXMCB0FkZHJlc3MEAmV6BQJhcwkA/AcEBQJlegIEZW1pdAkAzAgCBQJjVAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZXkFAmV5BAJlQQMJAGYCBQJjVQAACQD8BwQFAmV3AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJiUwUCY1UFA25pbAUDbmlsAwkAAAIFAmVBBQJlQQQCZUIDCQBmAgUCY1YAAAkA/AcEBQJldwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYlQFAmNWBQNuaWwFA25pbAMJAAACBQJlQgUCZUIEAmVDAwUCZXQEAmVECQD8BwQFAmV2AgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkTQUCY1QFA25pbAMJAAACBQJlRAUCZUQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZG8GY2FsbGVyBQJjVAUCZE0FA25pbAQCZWYDCQBmAgUCYkwAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQwUCYkwJANkEAQUCYk8FA25pbAUDbmlsCQDOCAIJAM4IAgUCY2sFAmVDBQJlZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbwELcHV0T25lVGtuVjICAmRQAmV0AwkBAiE9AgkAkAMBCAUCZG8IcGF5bWVudHMAAQkAAgECCzEgcG1udCBleHBkBAJkdwkBAmFEAAQCYlMJAJEDAgUCZHcFAXIEAmJUCQCRAwIFAmR3BQFzBAJkVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF0BAJkVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF1BAJiUQMJAAACCAUCZG8GY2FsbGVyBQR0aGlzCAUCZG8Mb3JpZ2luQ2FsbGVyCAUCZG8GY2FsbGVyBAJkcAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAQCYk8JANgEAQkBBXZhbHVlAQgFAmRwB2Fzc2V0SWQEAmN1CAUCZHAGYW1vdW50AwkAZgIAgK3iBAUCY3UJAAIBAg1Xcm9uZyBwbXQgYW10BAJjRwkBAmR1BAUCY3UFAmJPCQClCAEFAmJRCQDYBAEIBQJkbw10cmFuc2FjdGlvbklkBAJkTAgFAmNHAl8yBAJkTQgFAmNHAl83BAJjawgFAmNHAl85BAJjVQgFAmNHA18xMAQCY1YIBQJjRwNfMTEEAmNUAwMJAGYCBQJkUAAACQBmAgUCZFAFAmRMBwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZFAFA25pbAIABQJkTAQCZXgJAPwHBAUCYXkCBGVtaXQJAMwIAgUCY1QFA25pbAUDbmlsAwkAAAIFAmV4BQJleAQCZXkEAmFzBQJleAMJAAECBQJhcwIHQWRkcmVzcwQCZXoFAmFzCQD8BwQFAmV6AgRlbWl0CQDMCAIFAmNUBQNuaWwFA25pbAUEdW5pdAMJAAACBQJleQUCZXkEAmVBAwkAZgIFAmNVAAAJAPwHBAUCYUsCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJTBQJjVQUDbmlsBQNuaWwDCQAAAgUCZUEFAmVBBAJlQgMJAGYCBQJjVgAACQD8BwQFAmFLAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJiVAUCY1YFA25pbAUDbmlsAwkAAAIFAmVCBQJlQgQCZUMDBQJldAQCZUQJAPwHBAUCYUoCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRNBQJjVAUDbmlsAwkAAAIFAmVEBQJlRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkbwZjYWxsZXIFAmNUBQJkTQUDbmlsBAJiTAgJAQJiSgEFAmN1Al8yBAJlZgMJAGYCBQJiTAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFDBQJiTAkA2QQBBQJiTwUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNrBQJlQwUCZWYFAmNUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvARNwdXRPbmVUa25WMlJFQURPTkxZAgJlUgJlUwQCY0cJAQJkdQQFAmVSBQJlUwIAAgAEAmRMCAUCY0cCXzIEAmRNCAUCY0cCXzcEAmNrCAUCY0cCXzkEAmNVCAUCY0cDXzEwBAJjVggFAmNHA18xMQkAlAoCBQNuaWwFAmRMAmRvARxwdXRPbmVUa25WMldpdGhCb251c1JFQURPTkxZAgJlUgJlUwQCZHcJAQJhRAAEAmJTCQCRAwIFAmR3BQFyBAJiVAkAkQMCBQJkdwUBcwQCYlkJAQJiYgEFAmJTBAJjYQkBAmJiAQUCYlQEAmNHCQECZHUEBQJlUgUCZVMCAAIABAJkTAgFAmNHAl8yBAJjZAgFAmNHAl8zBAJlVAgFAmNHAl82BAJkTQgFAmNHAl83BAJlVQMJAAACBQJlUwUCYlMEAmVWCQBrAwUCZVIFAmNkBQFhCQCUCgIFAmVSBQJlVgQCZVcJAGsDBQJlUgUBYQUCY2QJAJQKAgUCZVcFAmVSBAJlVwgFAmVVAl8xBAJlVggFAmVVAl8yBAJlWAkAawMFAmVUBQJlVgUCY2EEAmVZAwkAAAIFAmVTBQJiUwkAawMFAmVXBQFhBQJkTAkAawMFAmVWBQFhBQJkTAQCZVoJAGsDCQBkAgUCZVYFAmVXBQFhBQJlWAQCZmEJAGsDCQBlAgUCZVoFAmVZBQFhBQJlWQQCYkwICQECYkoBBQJlUgJfMgkAlAoCBQNuaWwJAJUKAwUCZEwFAmJMBQJmYQJkbwEKcHV0Rm9yRnJlZQECZmIDCQBmAgAABQJmYgkAAgECCldyb25nIHNscGcDCQECIT0CCQCQAwEIBQJkbwhwYXltZW50cwACCQACAQIMMiBwbW50cyBleHBkBAJkSwkBAmRxCgkApQgBCAUCZG8GY2FsbGVyCQDYBAEIBQJkbw10cmFuc2FjdGlvbklkCQEPQXR0YWNoZWRQYXltZW50AggJAQV2YWx1ZQEJAJEDAggFAmRvCHBheW1lbnRzAAAHYXNzZXRJZAgJAQV2YWx1ZQEJAJEDAggFAmRvCHBheW1lbnRzAAAGYW1vdW50CQCRAwIIBQJkbwhwYXltZW50cwABBQJmYgcHBgAAAgAIBQJkSwJfOQJkbwEDZ2V0AAQCY0cJAQJkbgEFAmRvBAJmYwgFAmNHAl8xBAJjaggFAmNHAl8yBAJjdQgFAmNHAl8zBAJiTwgFAmNHAl80BAJjawgFAmNHAl81BAJmZAkA/AcEBQJheQIEYnVybgkAzAgCBQJjdQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY3UFA25pbAMJAAACBQJmZAUCZmQFAmNrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQlnZXRPbmVUa24FAmZlAmZmAmZnAmRPAmJqAwkBAiE9AgkAkAMBCAUCZG8IcGF5bWVudHMAAQkAAgECCzEgcG1udCBleHBkBAJiQQkBAmFEAAQCYlIJAJEDAgUCYkEFAXEEAmJTCQCRAwIFAmJBBQFyBAJiVAkAkQMCBQJiQQUBcwQCYlUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiQQUBdAQCYlYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiQQUBdQQCYlcJAJEDAgUCYkEFAXAEAmV1CQECYUgABAJlRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCZXUFAXoCCldyIHNsIGFkZHIEAmRwCQEFdmFsdWUBCQCRAwIIBQJkbwhwYXltZW50cwAABAJlSAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYWEAAgAEAmJRAwkAAAIFAmVICQClCAEIBQJkbwZjYWxsZXIIBQJkbwxvcmlnaW5DYWxsZXIIBQJkbwZjYWxsZXIEAmJOCQDYBAEIBQJkbw10cmFuc2FjdGlvbklkBAJiTwkBBXZhbHVlAQgFAmRwB2Fzc2V0SWQEAmN1CAUCZHAGYW1vdW50AwkAZgIAgJTr3AMFAmN1CQACAQINTWluIHBtdCAxMCBMUAMDAwkAZgIAAAUCYmoGCQBmAgAABQJmZQYJAGYCAAAFAmZnCQACAQIMV3JvbmcgcGFyYW1zAwkBAiE9AgUCYlIJANgEAQUCYk8JAAIBAghXcm9uZyBMUAQCY0cJAQJiTQQJANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQJANgEAQUCYk8FAmN1CAUCZG8GY2FsbGVyBAJmaAgFAmNHAl8xBAJmaQgFAmNHAl8yBAJiWQkBAmJiAQUCYlMEAmNhCQECYmIBBQJiVAQCZmoDCQAAAgUCZE8FAmJTCQCZCgcJAGUCBQJiWQUCZmgJAGUCBQJjYQUCZmkFAmZlBQJmaQAAAAAJAGQCBQJmaAUCZmUDCQAAAgUCZE8FAmJUCQCZCgcJAGUCBQJiWQUCZmgJAGUCBQJjYQUCZmkAAAAABQJmZQUCZmgJAGQCBQJmaQUCZmUJAAIBAhB3cm9uZyBvdXRBc3NldElkBAJkeggFAmZqAl8xBAJkQQgFAmZqAl8yBAJlTAgFAmZqAl8zBAJlTQgFAmZqAl80BAJlTggFAmZqAl81BAJlTwgFAmZqAl82BAJmawgFAmZqAl83AwMJAGYCAAAFAmVMBgkAZgIAAAUCZU4JAAIBAgpXcm9uZyBjYWxjBAJibwkA/AcEBQJlRgIFY2FsY0QJAMwIAgkApAMBBQJkegkAzAgCCQCkAwEFAmRBCQDMCAIFAmF6CQDMCAIFAWcJAMwIAgUBaAUDbmlsBQNuaWwEAmJuCQD8BwQFAmVGAgVjYWxjRAkAzAgCCQCkAwEJAGQCCQBlAgUCZHoFAmVMBQJlTwkAzAgCCQCkAwEJAGUCCQBkAgUCZEEFAmVNBQJlTgkAzAgCBQJhegkAzAgCBQFnCQDMCAIFAWgFA25pbAUDbmlsBAJlUAkBAmJtAwkApwMBCQECYXIBBQJibgkApwMBCQECYXIBBQJibwUBZgMJAAACBQJlUAUCZVAEAmRYCAkBAmJKAQUCZmsCXzEEAmZsCQECYmcDCQC2AgEFAmRYCQC2AgEFAmZnCQC2AgEFAmJqAwkAAAIFAmZsBQJmbAQCZm0DCQAAAgUCZE8FAmJTCQCUCgIJAKADAQgFAmZsAl8yAAAJAJQKAgAACQCgAwEIBQJmbAJfMgQCZWEIBQJmbQJfMQQCZWIIBQJmbQJfMgQCZFkJAGQCBQJlYQUCZWIEAmJMCQBlAgUCZmsFAmRYBAJlZQMJAAACBQJkTwIFV0FWRVMFBHVuaXQJANkEAQUCZE8EAmVmAwkAZgIFAmJMAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUMFAmJMBQJlZQUDbmlsBQNuaWwEAmVjCQECYmQCCQEBQgIFAmNhBQJiVgkBAUICBQJiWQUCYlUEAmVkCQEBRQIFAmVjBQFhBAJjawkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiUQUCZFkFAmVlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAgkApQgBBQJiUQUCYk4JAQJhWAYFAmVhBQJlYgUCY3UFAmVkBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUAAFAmVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUQIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmVkBQNuaWwDCQAAAgUCY2sFAmNrBAJlZwkA/AcEBQJheQIEYnVybgkAzAgCBQJjdQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY3UFA25pbAMJAAACBQJlZwUCZWcJAM4IAgUCY2sFAmVmCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQtnZXRPbmVUa25WMgICZE8CZFAEAmZuCQECZE4GBQJkTwUCZFAIBQJkbwhwYXltZW50cwgFAmRvBmNhbGxlcggFAmRvDG9yaWdpbkNhbGxlcggFAmRvDXRyYW5zYWN0aW9uSWQEAmNrCAUCZm4CXzEEAmRZCAUCZm4CXzIJAJQKAgUCY2sFAmRZAmRvARNnZXRPbmVUa25WMlJFQURPTkxZAgJkTwJmbwQCZHcJAQJhRAAEAmJSCQCRAwIFAmR3BQFxBAJiUwkAkQMCBQJkdwUBcgQCYlQJAJEDAgUCZHcFAXMEAmNHCQECYk0EAgAFAmJSBQJmbwUEdGhpcwQCZmgIBQJjRwJfMQQCZmkIBQJjRwJfMgQCYlkJAQJiYgEFAmJTBAJjYQkBAmJiAQUCYlQEAmR6CQBlAgUCYlkFAmZoBAJkQQkAZQIFAmNhBQJmaQQCZnADCQAAAgUCZE8FAmJTCQCVCgMFAmRBBQJkegUCZmkDCQAAAgUCZE8FAmJUCQCVCgMFAmR6BQJkQQUCZmgJAAIBAhB3cm9uZyBvdXRBc3NldElkBAJmcQgFAmZwAl8xBAJmcggFAmZwAl8yBAJmcwgFAmZwAl8zBAJmdAABBAJmZQoAAmRHCQD8BwQFAmFMAgxjYWxjU3dhcFhUb1kJAMwIAgkApAMBBQJmcwkAzAgCCQCkAwEFAmZxCQDMCAIJAKQDAQUCZnIJAMwIAgIACQDMCAIFAmF6CQDMCAIFAWcJAMwIAgkApAMBBQJmdAkAzAgCBQFoBQNuaWwFA25pbAMJAAECBQJkRwIDSW50BQJkRwkAAgEJAKwCAgkAAwEJAPwHBAUCYUwCDGNhbGNTd2FwWFRvWQkAzAgCCQCkAwEFAmZzCQDMCAIJAKQDAQUCZnEJAMwIAgkApAMBBQJmcgkAzAgCAgAJAMwIAgUCYXoJAMwIAgUBZwkAzAgCCQCkAwEFAmZ0CQDMCAIFAWgFA25pbAUDbmlsAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmZrCQBkAgUCZmUDCQAAAgUCZE8FAmJTBQJmaAUCZmkEAmZ1CQECYkoBBQJmawQCZFgIBQJmdQJfMQQCYkwIBQJmdQJfMgkAlAoCBQNuaWwJAJQKAgUCZFgFAmJMAmRvARxnZXRPbmVUa25WMldpdGhCb251c1JFQURPTkxZAgJkTwJmbwQCZHcJAQJhRAAEAmJTCQCRAwIFAmR3BQFyBAJiVAkAkQMCBQJkdwUBcwQCYlIJAJEDAgUCZHcFAXEEAmJZCQECYmIBBQJiUwQCY2EJAQJiYgEFAmJUBAJmdgoAAmRHCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZE8JAMwIAgUCZm8FA25pbAUDbmlsAwkAAQIFAmRHAgooSW50LCBJbnQpBQJkRwkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJkTwkAzAgCBQJmbwUDbmlsBQNuaWwCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkEAmRYCAUCZnYCXzEEAmJMCAUCZnYCXzIEAmNHCQECYk0EAgAFAmJSBQJmbwUEdGhpcwQCY2kIBQJjRwJfMQQCY2oIBQJjRwJfMgQCZVkJAGsDBQJkWAUBYQUCZm8EAmVaCQBrAwkAZAIFAmNpBQJjagUBYQUCZm8EAmZhCQBrAwkAZQIFAmVZBQJlWgUBYQUCZVoJAJQKAgUDbmlsCQCVCgMFAmRYBQJiTAUCZmECZG8BCWdldE5vTGVzcwICZncCZngEAmNHCQECZG4BBQJkbwQCY2kIBQJjRwJfMQQCY2oIBQJjRwJfMgQCY3UIBQJjRwJfMwQCYk8IBQJjRwJfNAQCY2sIBQJjRwJfNQMJAGYCBQJmdwUCY2kJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCY2kCAyA8IAkApAMBBQJmdwMJAGYCBQJmeAUCY2oJAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJjagIDIDwgCQCkAwEFAmZ4BAJmeQkA/AcEBQJheQIEYnVybgkAzAgCBQJjdQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY3UFA25pbAMJAAACBQJmeQUCZnkFAmNrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQ11bnN0YWtlQW5kR2V0AQJiSwQCZnoDCQECIT0CCQCQAwEIBQJkbwhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCZnoFAmZ6BAJiQQkBAmFEAAQCZkEJAQJhSAAEAmRNCQDZBAEJAJEDAgUCYkEFAXEEAmZCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJmQQUBeAIKV3Igc3QgYWRkcgQCZkMJAPwHBAUCZkICB3Vuc3Rha2UJAMwIAgkA2AQBBQJkTQkAzAgCBQJiSwUDbmlsBQNuaWwDCQAAAgUCZkMFAmZDBAJjRwkBAmJNBAkA2AQBCAUCZG8NdHJhbnNhY3Rpb25JZAkA2AQBBQJkTQUCYksIBQJkbwZjYWxsZXIEAmJXCQENcGFyc2VJbnRWYWx1ZQEIBQJjRwJfOQQCY2sIBQJjRwNfMTAEAmZEAwMJAQJhQQAGCQAAAgUCYlcFAW4JAAIBCQCsAgICCUJsb2NrZWQ6IAkApAMBBQJiVwYDCQAAAgUCZkQFAmZEBAJmRQkA/AcEBQJheQIEYnVybgkAzAgCBQJiSwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkTQUCYksFA25pbAMJAAACBQJmRQUCZkUFAmNrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmRgJkTwJkUAQCZnoDCQECIT0CCQCQAwEIBQJkbwhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCZnoFAmZ6BAJiQQkBAmFEAAQCZkEJAQJhSAAEAmRNCQDZBAEJAJEDAgUCYkEFAXEEAmZCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJmQQUBeAIKV3Igc3QgYWRkcgQCZkMJAPwHBAUCZkICB3Vuc3Rha2UJAMwIAgkA2AQBBQJkTQkAzAgCBQJmRgUDbmlsBQNuaWwDCQAAAgUCZkMFAmZDBAJmRwkBAmROBgUCZE8FAmRQCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkTQUCZkYFA25pbAgFAmRvBmNhbGxlcggFAmRvDG9yaWdpbkNhbGxlcggFAmRvDXRyYW5zYWN0aW9uSWQEAmNrCAUCZkcCXzEEAmRZCAUCZkcCXzIJAJQKAgUCY2sFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQhhY3RpdmF0ZQICZkgCZkkDCQECIT0CCQClCAEIBQJkbwZjYWxsZXIJAKUIAQUCYXkJAAIBAgZkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWAAFAmZICQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUCZkkFA25pbAIHc3VjY2VzcwJkbwEEc2V0UwICZkoCZkQDCQECIT0CCQClCAEIBQJkbwZjYWxsZXIJAQJhdQIFBHRoaXMJAQJhYQAFAmVrCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmZKBQJmRAUDbmlsAmRvAQRzZXRJAgJmSgJmRAMJAQIhPQIJAKUIAQgFAmRvBmNhbGxlcgkBAmF1AgUEdGhpcwkBAmFhAAUCZWsJAMwIAgkBDEludGVnZXJFbnRyeQIFAmZKBQJmRAUDbmlsAmRvARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRAACZG8BHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJjCQCUCgIFA25pbAkBAmJiAQUCYmMCZG8BGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJ1AmJ2AmJ6BAJmSwkBAmJ5AwUCYnUFAmJ2BQJiegkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmZLAAAJAMwIAgkApgMBCQCRAwIFAmZLAAEJAMwIAgkApgMBCQCRAwIFAmZLAAIFA25pbAJkbwEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBRgJmTAkAlAoCBQNuaWwJAQFFAgkApwMBBQFGBQJmTAJkbwEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUMBRAkAlAoCBQNuaWwJAKYDAQkBAUICBQFDBQFEAmRvAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJlAmJmCQCUCgIFA25pbAkApgMBCQECYmQCCQCnAwEFAmJlCQCnAwEFAmJmAmRvASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCYk4CYmoCY20CY24CY28CY3ACZk0CY3ECY3IJAJQKAgUDbmlsCQECY2wNBQJiTgUCYmoFAmNtBQJjbgUCY28FAmNwBQJmTQUCY3EFAmNyBgcAAAIAAmRvASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYk4CZk4CYlACZk0EAmNHCQECYk0EBQJiTgUCZk4FAmJQCQERQGV4dHJOYXRpdmUoMTA2MikBBQJmTQkAlAoCBQNuaWwJAJwKCggFAmNHAl8xCAUCY0cCXzIIBQJjRwJfMwgFAmNHAl80CAUCY0cCXzUIBQJjRwJfNggFAmNHAl83CQCmAwEIBQJjRwJfOAgFAmNHAl85CAUCY0cDXzEwAmRvAQ5nZXRGZWVSRUFET05MWQAJAJQKAgUDbmlsBQJhYwECZk8BAmZQAAQCZlEEAmFzCQECZWgAAwkAAQIFAmFzAgpCeXRlVmVjdG9yBAJlbQUCYXMFAmVtAwkAAQIFAmFzAgRVbml0CAUCZk8Pc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmFzBQJmTwMJAAECBQJhcwIFT3JkZXIEAmRiBQJhcwQCZlIJAQJhQgAEAmZTCQECZGEBBQJkYgQCZlQJAPQDAwgFAmRiCWJvZHlCeXRlcwkAkQMCCAUCZGIGcHJvb2ZzAAAIBQJkYg9zZW5kZXJQdWJsaWNLZXkEAmZVCQD0AwMIBQJkYglib2R5Qnl0ZXMJAJEDAggFAmRiBnByb29mcwABBQJmUgMDAwUCZlMFAmZUBwUCZlUHBgkBAmFuAwUCZlMFAmZUBQJmVQMJAAECBQJhcwIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmVpBQJhcwQCZlYJAPYDAQkBBXZhbHVlAQgFAmVpBnNjcmlwdAQCZlcJANsEAQkBBXZhbHVlAQkAnQgCBQJheQkBAmFsAAQCZlgJAPEHAQUEdGhpcwMDCQAAAgUCZlcFAmZWCQECIT0CBQJmWAUCZlYHBgkA9AMDCAUCZk8JYm9keUJ5dGVzCQCRAwIIBQJmTwZwcm9vZnMAAAUCZlEJAPQDAwgFAmZPCWJvZHlCeXRlcwkAkQMCCAUCZk8GcHJvb2ZzAAAFAmZR52zTZg==", "chainId": 84, "height": 2240136, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: D5y8AR1YxjBvVHNpeHWQsj7XLkE63WaF1G5WYfdkZL91 Next: 984XrwirZcLsRC5yGkY1jsauYM5totQnv5pL153FWfGi Diff:
OldNewDifferences
547547 let eb = dZ._2
548548 let ec = bd(B(ca, dU), B(bY, dT))
549549 let ed = E(ec, a)
550- let ck = [ScriptTransfer(bQ, dY, if ((dO == "WAVES"))
550+ let ee = if ((dO == "WAVES"))
551551 then unit
552- else fromBase58String(dO)), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)]
552+ else fromBase58String(dO)
553+ let ef = if ((bL > 0))
554+ then [ScriptTransfer(aC, bL, ee)]
555+ else nil
556+ let ck = ([ScriptTransfer(bQ, dY, ee), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)] ++ ef)
553557 if ((ck == ck))
554558 then {
555- let ee = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
556- if ((ee == ee))
559+ let eg = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
560+ if ((eg == eg))
557561 then $Tuple2(ck, dY)
558562 else throw("Strict value is not equal to itself.")
559563 }
563567 }
564568
565569
566-func ef () = {
570+func eh () = {
567571 let as = getString(N())
568572 if ($isInstanceOf(as, "String"))
569573 then {
570- let eg = as
571- fromBase58String(eg)
574+ let ei = as
575+ fromBase58String(ei)
572576 }
573577 else if ($isInstanceOf(as, "Unit"))
574578 then unit
576580 }
577581
578582
579-func eh () = {
583+func ej () = {
580584 let as = getString(O())
581585 if ($isInstanceOf(as, "String"))
582586 then {
583- let eg = as
584- fromBase58String(eg)
587+ let ei = as
588+ fromBase58String(ei)
585589 }
586590 else if ($isInstanceOf(as, "Unit"))
587591 then unit
589593 }
590594
591595
592-let ei = throw("Permission denied")
596+let ek = throw("Permission denied")
593597
594-func ej (do) = {
595- let as = ef()
598+func el (do) = {
599+ let as = eh()
596600 if ($isInstanceOf(as, "ByteVector"))
597601 then {
598- let ek = as
599- if ((do.callerPublicKey == ek))
602+ let em = as
603+ if ((do.callerPublicKey == em))
600604 then true
601- else ei
605+ else ek
602606 }
603607 else if ($isInstanceOf(as, "Unit"))
604608 then if ((do.caller == this))
605609 then true
606- else ei
610+ else ek
607611 else throw("Match error")
608612 }
609613
610614
611615 @Callable(do)
612616 func constructor (M) = {
613- let el = ej(do)
614- if ((el == el))
617+ let en = el(do)
618+ if ((en == en))
615619 then [StringEntry(M(), M)]
616620 else throw("Strict value is not equal to itself.")
617621 }
619623
620624
621625 @Callable(do)
622-func setManager (em) = {
623- let el = ej(do)
624- if ((el == el))
626+func setManager (eo) = {
627+ let en = el(do)
628+ if ((en == en))
625629 then {
626- let en = fromBase58String(em)
627- if ((en == en))
628- then [StringEntry(O(), em)]
630+ let ep = fromBase58String(eo)
631+ if ((ep == ep))
632+ then [StringEntry(O(), eo)]
629633 else throw("Strict value is not equal to itself.")
630634 }
631635 else throw("Strict value is not equal to itself.")
635639
636640 @Callable(do)
637641 func confirmManager () = {
638- let bI = eh()
639- let eo = if (isDefined(bI))
642+ let bI = ej()
643+ let eq = if (isDefined(bI))
640644 then true
641645 else throw("No pending manager")
642- if ((eo == eo))
646+ if ((eq == eq))
643647 then {
644- let ep = if ((do.callerPublicKey == value(bI)))
648+ let er = if ((do.callerPublicKey == value(bI)))
645649 then true
646650 else throw("You are not pending manager")
647- if ((ep == ep))
651+ if ((er == er))
648652 then [StringEntry(N(), toBase58String(value(bI))), DeleteEntry(O())]
649653 else throw("Strict value is not equal to itself.")
650654 }
654658
655659
656660 @Callable(do)
657-func put (eq,er) = {
658- let es = aH()
659- let et = valueOrErrorMessage(addressFromString(es[x]), "Wr st addr")
660- let eu = valueOrErrorMessage(addressFromString(es[y]), "Wr sl addr")
661- if ((0 > eq))
661+func put (es,et) = {
662+ let eu = aH()
663+ let ev = valueOrErrorMessage(addressFromString(eu[x]), "Wr st addr")
664+ let ew = valueOrErrorMessage(addressFromString(eu[y]), "Wr sl addr")
665+ if ((0 > es))
662666 then throw("Wrong slippage")
663667 else if ((size(do.payments) != 2))
664668 then throw("2 pmnts expd")
665669 else {
666- let ev = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], eq, true, false, true, 0, "")
667- let cT = ev._2
668- let dM = ev._7
669- let ck = ev._9
670- let cU = ev._10
671- let cV = ev._11
672- let bS = ev._12
673- let bT = ev._13
670+ let ex = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], es, true, false, true, 0, "")
671+ let cT = ex._2
672+ let dM = ex._7
673+ let ck = ex._9
674+ let cU = ex._10
675+ let cV = ex._11
676+ let bS = ex._12
677+ let bT = ex._13
674678 let cG = invoke(ay, "emit", [cT], nil)
675679 if ((cG == cG))
676680 then {
677- let ew = {
681+ let ey = {
678682 let as = cG
679683 if ($isInstanceOf(as, "Address"))
680684 then {
681- let ex = as
682- invoke(ex, "emit", [cT], nil)
685+ let ez = as
686+ invoke(ez, "emit", [cT], nil)
683687 }
684688 else unit
685689 }
686- if ((ew == ew))
690+ if ((ey == ey))
687691 then {
688- let ey = if ((cU > 0))
689- then invoke(eu, "put", nil, [AttachedPayment(bS, cU)])
692+ let eA = if ((cU > 0))
693+ then invoke(ew, "put", nil, [AttachedPayment(bS, cU)])
690694 else nil
691- if ((ey == ey))
695+ if ((eA == eA))
692696 then {
693- let ez = if ((cV > 0))
694- then invoke(eu, "put", nil, [AttachedPayment(bT, cV)])
697+ let eB = if ((cV > 0))
698+ then invoke(ew, "put", nil, [AttachedPayment(bT, cV)])
695699 else nil
696- if ((ez == ez))
700+ if ((eB == eB))
697701 then {
698- let eA = if (er)
702+ let eC = if (et)
699703 then {
700- let eB = invoke(et, "stake", nil, [AttachedPayment(dM, cT)])
701- if ((eB == eB))
704+ let eD = invoke(ev, "stake", nil, [AttachedPayment(dM, cT)])
705+ if ((eD == eD))
702706 then nil
703707 else throw("Strict value is not equal to itself.")
704708 }
705709 else [ScriptTransfer(do.caller, cT, dM)]
706- (ck ++ eA)
710+ (ck ++ eC)
707711 }
708712 else throw("Strict value is not equal to itself.")
709713 }
718722
719723
720724 @Callable(do)
721-func putOneTkn (dI,dJ,eC,bj,er) = {
725+func putOneTkn (dI,dJ,eE,bj,et) = {
722726 let bA = aH()
723- let et = valueOrErrorMessage(addressFromString(bA[x]), "Wr st addr")
724- let eu = valueOrErrorMessage(addressFromString(bA[y]), "Wr sl addr")
725- let eD = valueOrErrorMessage(addressFromString(bA[z]), "Wr gwx addr")
726- let eE = aD()
727- let bS = eE[r]
728- let bT = eE[s]
729- let bU = parseIntValue(eE[t])
730- let bV = parseIntValue(eE[u])
731- let eF = valueOrElse(getString(this, aa()), "")
732- let bQ = if ((eF == toString(do.caller)))
727+ let ev = valueOrErrorMessage(addressFromString(bA[x]), "Wr st addr")
728+ let ew = valueOrErrorMessage(addressFromString(bA[y]), "Wr sl addr")
729+ let eF = valueOrErrorMessage(addressFromString(bA[z]), "Wr gwx addr")
730+ let eG = aD()
731+ let bS = eG[r]
732+ let bT = eG[s]
733+ let bU = parseIntValue(eG[t])
734+ let bV = parseIntValue(eG[u])
735+ let eH = valueOrElse(getString(this, aa()), "")
736+ let bQ = if ((eH == toString(do.caller)))
733737 then do.originCaller
734738 else do.caller
735739 if (if (if (if ((0 >= bj))
738742 then true
739743 else (0 >= dJ))
740744 then true
741- else (0 >= eC))
745+ else (0 >= eE))
742746 then throw("Wrong params")
743747 else if ((size(do.payments) != 1))
744748 then throw("1 pmnt expd")
745749 else {
746750 let dp = value(do.payments[0])
747751 let bO = toBase58String(value(dp.assetId))
748- let eG = dp.amount
749- let eH = bJ(eG)
750- let cu = eH._1
751- let bL = eH._2
752- if ((10000000 > eG))
752+ let eI = dp.amount
753+ let eJ = bJ(eI)
754+ let cu = eJ._1
755+ let bL = eJ._2
756+ if ((10000000 > eI))
753757 then throw("Wrong pmt amt")
754758 else {
755759 let bY = bb(bS)
756760 let ca = bb(bT)
757- let eI = if ((bO == bS))
758- then if (if ((eG > bY))
761+ let eK = if ((bO == bS))
762+ then if (if ((eI > bY))
759763 then true
760764 else (dI > cu))
761765 then throw("invalid payment amount")
762- else $Tuple6((bY - eG), ca, (cu - dI), dJ, 0, 0)
766+ else $Tuple6((bY - eI), ca, (cu - dI), dJ, 0, 0)
763767 else if ((bO == bT))
764- then if (if ((eG > ca))
768+ then if (if ((eI > ca))
765769 then true
766770 else (dJ > cu))
767771 then throw("invalid payment amount")
768- else $Tuple6(bY, (ca - eG), 0, 0, (cu - dJ), dI)
772+ else $Tuple6(bY, (ca - eI), 0, 0, (cu - dJ), dI)
769773 else throw("wrong pmtAssetId")
770- let dz = eI._1
771- let dA = eI._2
772- let eJ = eI._3
773- let eK = eI._4
774- let eL = eI._5
775- let eM = eI._6
776- let bo = invoke(eD, "calcD", [toString(dz), toString(dA), az, g, h], nil)
777- let bn = invoke(eD, "calcD", [toString(toBigInt(((dz + eJ) - eM))), toString(toBigInt(((dA + eL) - eK))), az, g, h], nil)
778- let eN = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
779- if ((eN == eN))
774+ let dz = eK._1
775+ let dA = eK._2
776+ let eL = eK._3
777+ let eM = eK._4
778+ let eN = eK._5
779+ let eO = eK._6
780+ let bo = invoke(eF, "calcD", [toString(dz), toString(dA), az, g, h], nil)
781+ let bn = invoke(eF, "calcD", [toString(toBigInt(((dz + eL) - eO))), toString(toBigInt(((dA + eN) - eM))), az, g, h], nil)
782+ let eP = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
783+ if ((eP == eP))
780784 then {
781785 let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(fromBase58String(bS), dI), AttachedPayment(fromBase58String(bT), dJ), bj, true, true, true, cu, bO)
782786 let dL = dK._2
784788 let ck = dK._9
785789 let cU = dK._10
786790 let cV = dK._11
787- let eO = bg(toBigInt(dL), toBigInt(eC), toBigInt(bj))
788- let cT = toInt(eO._2)
789- let ev = invoke(ay, "emit", [cT], nil)
790- if ((ev == ev))
791+ let eQ = bg(toBigInt(dL), toBigInt(eE), toBigInt(bj))
792+ let cT = toInt(eQ._2)
793+ let ex = invoke(ay, "emit", [cT], nil)
794+ if ((ex == ex))
791795 then {
792- let ew = {
793- let as = ev
796+ let ey = {
797+ let as = ex
794798 if ($isInstanceOf(as, "Address"))
795799 then {
796- let ex = as
797- invoke(ex, "emit", [cT], nil)
800+ let ez = as
801+ invoke(ez, "emit", [cT], nil)
798802 }
799803 else unit
800804 }
801- if ((ew == ew))
805+ if ((ey == ey))
802806 then {
803- let ey = if ((cU > 0))
804- then invoke(eu, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
807+ let eA = if ((cU > 0))
808+ then invoke(ew, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
805809 else nil
806- if ((ey == ey))
810+ if ((eA == eA))
807811 then {
808- let ez = if ((cV > 0))
809- then invoke(eu, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
812+ let eB = if ((cV > 0))
813+ then invoke(ew, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
810814 else nil
811- if ((ez == ez))
815+ if ((eB == eB))
812816 then {
813- let eA = if (er)
817+ let eC = if (et)
814818 then {
815- let eB = invoke(et, "stake", nil, [AttachedPayment(dM, cT)])
816- if ((eB == eB))
819+ let eD = invoke(ev, "stake", nil, [AttachedPayment(dM, cT)])
820+ if ((eD == eD))
817821 then nil
818822 else throw("Strict value is not equal to itself.")
819823 }
820824 else [ScriptTransfer(do.caller, cT, dM)]
821- let eP = if ((bL > 0))
825+ let ef = if ((bL > 0))
822826 then [ScriptTransfer(aC, bL, fromBase58String(bO))]
823827 else nil
824- ((ck ++ eA) ++ eP)
828+ ((ck ++ eC) ++ ef)
825829 }
826830 else throw("Strict value is not equal to itself.")
827831 }
839843
840844
841845 @Callable(do)
842-func putOneTknV2 (dP,er) = if ((size(do.payments) != 1))
846+func putOneTknV2 (dP,et) = if ((size(do.payments) != 1))
843847 then throw("1 pmnt expd")
844848 else {
845849 let dw = aD()
867871 else false)
868872 then throw(makeString(["amount to receive is less than ", toString(dP)], ""))
869873 else dL
870- let ev = invoke(ay, "emit", [cT], nil)
871- if ((ev == ev))
874+ let ex = invoke(ay, "emit", [cT], nil)
875+ if ((ex == ex))
872876 then {
873- let ew = {
874- let as = ev
877+ let ey = {
878+ let as = ex
875879 if ($isInstanceOf(as, "Address"))
876880 then {
877- let ex = as
878- invoke(ex, "emit", [cT], nil)
881+ let ez = as
882+ invoke(ez, "emit", [cT], nil)
879883 }
880884 else unit
881885 }
882- if ((ew == ew))
886+ if ((ey == ey))
883887 then {
884- let ey = if ((cU > 0))
888+ let eA = if ((cU > 0))
885889 then invoke(aK, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
886890 else nil
887- if ((ey == ey))
891+ if ((eA == eA))
888892 then {
889- let ez = if ((cV > 0))
893+ let eB = if ((cV > 0))
890894 then invoke(aK, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
891895 else nil
892- if ((ez == ez))
896+ if ((eB == eB))
893897 then {
894- let eA = if (er)
898+ let eC = if (et)
895899 then {
896- let eB = invoke(aJ, "stake", nil, [AttachedPayment(dM, cT)])
897- if ((eB == eB))
900+ let eD = invoke(aJ, "stake", nil, [AttachedPayment(dM, cT)])
901+ if ((eD == eD))
898902 then nil
899903 else throw("Strict value is not equal to itself.")
900904 }
901905 else [ScriptTransfer(do.caller, cT, dM)]
902- $Tuple2((ck ++ eA), cT)
906+ let bL = bJ(cu)._2
907+ let ef = if ((bL > 0))
908+ then [ScriptTransfer(aC, bL, fromBase58String(bO))]
909+ else nil
910+ $Tuple2(((ck ++ eC) ++ ef), cT)
903911 }
904912 else throw("Strict value is not equal to itself.")
905913 }
914922
915923
916924 @Callable(do)
917-func putOneTknV2READONLY (eQ,eR) = {
918- let cG = du(eQ, eR, "", "")
925+func putOneTknV2READONLY (eR,eS) = {
926+ let cG = du(eR, eS, "", "")
919927 let dL = cG._2
920928 let dM = cG._7
921929 let ck = cG._9
927935
928936
929937 @Callable(do)
930-func putOneTknV2WithBonusREADONLY (eQ,eR) = {
938+func putOneTknV2WithBonusREADONLY (eR,eS) = {
931939 let dw = aD()
932940 let bS = dw[r]
933941 let bT = dw[s]
934942 let bY = bb(bS)
935943 let ca = bb(bT)
936- let cG = du(eQ, eR, "", "")
944+ let cG = du(eR, eS, "", "")
937945 let dL = cG._2
938946 let cd = cG._3
939- let eS = cG._6
947+ let eT = cG._6
940948 let dM = cG._7
941- let eT = if ((eR == bS))
949+ let eU = if ((eS == bS))
942950 then {
943- let eU = fraction(eQ, cd, a)
944- $Tuple2(eQ, eU)
951+ let eV = fraction(eR, cd, a)
952+ $Tuple2(eR, eV)
945953 }
946954 else {
947- let eV = fraction(eQ, a, cd)
948- $Tuple2(eV, eQ)
955+ let eW = fraction(eR, a, cd)
956+ $Tuple2(eW, eR)
949957 }
950- let eV = eT._1
951- let eU = eT._2
952- let eW = fraction(eS, eU, ca)
953- let eX = if ((eR == bS))
954- then fraction(eV, a, dL)
955- else fraction(eU, a, dL)
956- let eY = fraction((eU + eV), a, eW)
957- let eZ = fraction((eY - eX), a, eX)
958- let bL = bJ(eQ)._2
959- $Tuple2(nil, $Tuple3(dL, bL, eZ))
958+ let eW = eU._1
959+ let eV = eU._2
960+ let eX = fraction(eT, eV, ca)
961+ let eY = if ((eS == bS))
962+ then fraction(eW, a, dL)
963+ else fraction(eV, a, dL)
964+ let eZ = fraction((eV + eW), a, eX)
965+ let fa = fraction((eZ - eY), a, eY)
966+ let bL = bJ(eR)._2
967+ $Tuple2(nil, $Tuple3(dL, bL, fa))
960968 }
961969
962970
963971
964972 @Callable(do)
965-func putForFree (fa) = if ((0 > fa))
973+func putForFree (fb) = if ((0 > fb))
966974 then throw("Wrong slpg")
967975 else if ((size(do.payments) != 2))
968976 then throw("2 pmnts expd")
969977 else {
970- let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], fa, false, false, true, 0, "")
978+ let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], fb, false, false, true, 0, "")
971979 dK._9
972980 }
973981
976984 @Callable(do)
977985 func get () = {
978986 let cG = dn(do)
979- let fb = cG._1
987+ let fc = cG._1
980988 let cj = cG._2
981989 let cu = cG._3
982990 let bO = cG._4
983991 let ck = cG._5
984- let fc = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
985- if ((fc == fc))
992+ let fd = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
993+ if ((fd == fd))
986994 then ck
987995 else throw("Strict value is not equal to itself.")
988996 }
990998
991999
9921000 @Callable(do)
993-func getOneTkn (fd,fe,ff,dO,bj) = if ((size(do.payments) != 1))
1001+func getOneTkn (fe,ff,fg,dO,bj) = if ((size(do.payments) != 1))
9941002 then throw("1 pmnt expd")
9951003 else {
9961004 let bA = aD()
10001008 let bU = parseIntValue(bA[t])
10011009 let bV = parseIntValue(bA[u])
10021010 let bW = bA[p]
1003- let es = aH()
1004- let eD = valueOrErrorMessage(addressFromString(es[z]), "Wr sl addr")
1011+ let eu = aH()
1012+ let eF = valueOrErrorMessage(addressFromString(eu[z]), "Wr sl addr")
10051013 let dp = value(do.payments[0])
1006- let eF = valueOrElse(getString(this, aa()), "")
1007- let bQ = if ((eF == toString(do.caller)))
1014+ let eH = valueOrElse(getString(this, aa()), "")
1015+ let bQ = if ((eH == toString(do.caller)))
10081016 then do.originCaller
10091017 else do.caller
10101018 let bN = toBase58String(do.transactionId)
10141022 then throw("Min pmt 10 LP")
10151023 else if (if (if ((0 > bj))
10161024 then true
1017- else (0 > fd))
1025+ else (0 > fe))
10181026 then true
1019- else (0 > ff))
1027+ else (0 > fg))
10201028 then throw("Wrong params")
10211029 else if ((bR != toBase58String(bO)))
10221030 then throw("Wrong LP")
10231031 else {
10241032 let cG = bM(toBase58String(do.transactionId), toBase58String(bO), cu, do.caller)
1025- let fg = cG._1
1026- let fh = cG._2
1033+ let fh = cG._1
1034+ let fi = cG._2
10271035 let bY = bb(bS)
10281036 let ca = bb(bT)
1029- let fi = if ((dO == bS))
1030- then $Tuple7((bY - fg), (ca - fh), fd, fh, 0, 0, (fg + fd))
1037+ let fj = if ((dO == bS))
1038+ then $Tuple7((bY - fh), (ca - fi), fe, fi, 0, 0, (fh + fe))
10311039 else if ((dO == bT))
1032- then $Tuple7((bY - fg), (ca - fh), 0, 0, fd, fg, (fh + fd))
1040+ then $Tuple7((bY - fh), (ca - fi), 0, 0, fe, fh, (fi + fe))
10331041 else throw("wrong outAssetId")
1034- let dz = fi._1
1035- let dA = fi._2
1036- let eJ = fi._3
1037- let eK = fi._4
1038- let eL = fi._5
1039- let eM = fi._6
1040- let fj = fi._7
1041- if (if ((0 > eJ))
1042+ let dz = fj._1
1043+ let dA = fj._2
1044+ let eL = fj._3
1045+ let eM = fj._4
1046+ let eN = fj._5
1047+ let eO = fj._6
1048+ let fk = fj._7
1049+ if (if ((0 > eL))
10421050 then true
1043- else (0 > eL))
1051+ else (0 > eN))
10441052 then throw("Wrong calc")
10451053 else {
1046- let bo = invoke(eD, "calcD", [toString(dz), toString(dA), az, g, h], nil)
1047- let bn = invoke(eD, "calcD", [toString(((dz - eJ) + eM)), toString(((dA + eK) - eL)), az, g, h], nil)
1048- let eN = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
1049- if ((eN == eN))
1054+ let bo = invoke(eF, "calcD", [toString(dz), toString(dA), az, g, h], nil)
1055+ let bn = invoke(eF, "calcD", [toString(((dz - eL) + eO)), toString(((dA + eM) - eN)), az, g, h], nil)
1056+ let eP = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
1057+ if ((eP == eP))
10501058 then {
1051- let dX = bJ(fj)._1
1052- let fk = bg(toBigInt(dX), toBigInt(ff), toBigInt(bj))
1053- if ((fk == fk))
1059+ let dX = bJ(fk)._1
1060+ let fl = bg(toBigInt(dX), toBigInt(fg), toBigInt(bj))
1061+ if ((fl == fl))
10541062 then {
1055- let fl = if ((dO == bS))
1056- then $Tuple2(toInt(fk._2), 0)
1057- else $Tuple2(0, toInt(fk._2))
1058- let ea = fl._1
1059- let eb = fl._2
1063+ let fm = if ((dO == bS))
1064+ then $Tuple2(toInt(fl._2), 0)
1065+ else $Tuple2(0, toInt(fl._2))
1066+ let ea = fm._1
1067+ let eb = fm._2
10601068 let dY = (ea + eb)
1061- let bL = (fj - dX)
1062- let fm = if ((dO == "WAVES"))
1069+ let bL = (fk - dX)
1070+ let ee = if ((dO == "WAVES"))
10631071 then unit
10641072 else fromBase58String(dO)
1065- let eP = if ((bL > 0))
1066- then [ScriptTransfer(aC, bL, fm)]
1073+ let ef = if ((bL > 0))
1074+ then [ScriptTransfer(aC, bL, ee)]
10671075 else nil
10681076 let ec = bd(B(ca, bV), B(bY, bU))
10691077 let ed = E(ec, a)
1070- let ck = [ScriptTransfer(bQ, dY, fm), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)]
1078+ let ck = [ScriptTransfer(bQ, dY, ee), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)]
10711079 if ((ck == ck))
10721080 then {
1073- let ee = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
1074- if ((ee == ee))
1075- then (ck ++ eP)
1081+ let eg = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
1082+ if ((eg == eg))
1083+ then (ck ++ ef)
10761084 else throw("Strict value is not equal to itself.")
10771085 }
10781086 else throw("Strict value is not equal to itself.")
11031111 let bS = dw[r]
11041112 let bT = dw[s]
11051113 let cG = bM("", bR, fo, this)
1106- let fg = cG._1
1107- let fh = cG._2
1114+ let fh = cG._1
1115+ let fi = cG._2
11081116 let bY = bb(bS)
11091117 let ca = bb(bT)
1110- let dz = (bY - fg)
1111- let dA = (ca - fh)
1118+ let dz = (bY - fh)
1119+ let dA = (ca - fi)
11121120 let fp = if ((dO == bS))
1113- then $Tuple3(dA, dz, fh)
1121+ then $Tuple3(dA, dz, fi)
11141122 else if ((dO == bT))
1115- then $Tuple3(dz, dA, fg)
1123+ then $Tuple3(dz, dA, fh)
11161124 else throw("wrong outAssetId")
11171125 let fq = fp._1
11181126 let fr = fp._2
11191127 let fs = fp._3
11201128 let ft = 1
1121- let fd = {
1129+ let fe = {
11221130 let dG = invoke(aL, "calcSwapXToY", [toString(fs), toString(fq), toString(fr), "", az, g, toString(ft), h], nil)
11231131 if ($isInstanceOf(dG, "Int"))
11241132 then dG
11251133 else throw(($getType(invoke(aL, "calcSwapXToY", [toString(fs), toString(fq), toString(fr), "", az, g, toString(ft), h], nil)) + " couldn't be cast to Int"))
11261134 }
1127- let fj = (fd + (if ((dO == bS))
1128- then fg
1129- else fh))
1130- let fu = bJ(fj)
1135+ let fk = (fe + (if ((dO == bS))
1136+ then fh
1137+ else fi))
1138+ let fu = bJ(fk)
11311139 let dX = fu._1
11321140 let bL = fu._2
11331141 $Tuple2(nil, $Tuple2(dX, bL))
11541162 let cG = bM("", bR, fo, this)
11551163 let ci = cG._1
11561164 let cj = cG._2
1157- let eX = fraction(dX, a, fo)
1158- let eY = fraction((ci + cj), a, fo)
1159- let eZ = fraction((eX - eY), a, eY)
1160- $Tuple2(nil, $Tuple3(dX, bL, eZ))
1165+ let eY = fraction(dX, a, fo)
1166+ let eZ = fraction((ci + cj), a, fo)
1167+ let fa = fraction((eY - eZ), a, eZ)
1168+ $Tuple2(nil, $Tuple3(dX, bL, fa))
11611169 }
11621170
11631171
12571265
12581266 @Callable(do)
12591267 func setS (fJ,fD) = if ((toString(do.caller) != au(this, aa())))
1260- then ei
1268+ then ek
12611269 else [StringEntry(fJ, fD)]
12621270
12631271
12641272
12651273 @Callable(do)
12661274 func setI (fJ,fD) = if ((toString(do.caller) != au(this, aa())))
1267- then ei
1275+ then ek
12681276 else [IntegerEntry(fJ, fD)]
12691277
12701278
13221330 @Verifier(fO)
13231331 func fP () = {
13241332 let fQ = {
1325- let as = ef()
1333+ let as = eh()
13261334 if ($isInstanceOf(as, "ByteVector"))
13271335 then {
1328- let ek = as
1329- ek
1336+ let em = as
1337+ em
13301338 }
13311339 else if ($isInstanceOf(as, "Unit"))
13321340 then fO.senderPublicKey
13501358 }
13511359 else if ($isInstanceOf(as, "SetScriptTransaction"))
13521360 then {
1353- let eg = as
1354- let fV = blake2b256(value(eg.script))
1361+ let ei = as
1362+ let fV = blake2b256(value(ei.script))
13551363 let fW = fromBase64String(value(getString(ay, al())))
13561364 let fX = scriptHash(this)
13571365 if (if ((fW == fV))
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(1)
1313
1414 let f = toBigInt((a - ((a * 1) / a)))
1515
1616 let g = "100"
1717
1818 let h = "1"
1919
2020 let i = "__"
2121
2222 let j = ""
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 1
5151
5252 let y = 7
5353
5454 let z = 10
5555
5656 let A = fraction(5, a, 10000)
5757
5858 func B (C,D) = fraction(toBigInt(C), c, toBigInt(D))
5959
6060
6161 func E (F,G) = toInt(fraction(F, toBigInt(G), c))
6262
6363
6464 func H (I,J,K) = fraction(I, J, K)
6565
6666
6767 func L (F) = if ((d > F))
6868 then -(F)
6969 else F
7070
7171
7272 func M () = "%s__factoryContract"
7373
7474
7575 func N () = "%s__managerPublicKey"
7676
7777
7878 func O () = "%s__pendingManagerPublicKey"
7979
8080
8181 func P () = "%s%s__price__last"
8282
8383
8484 func Q (R,S) = makeString(["%s%s%d%d__price__history", toString(R), toString(S)], i)
8585
8686
8787 func T (U,V) = ((("%s%s%s__P__" + U) + "__") + V)
8888
8989
9090 func W (U,V) = ((("%s%s%s__G__" + U) + "__") + V)
9191
9292
9393 func X () = "%s__amountAsset"
9494
9595
9696 func Y () = "%s__priceAsset"
9797
9898
9999 func Z () = "%s__amp"
100100
101101
102102 func aa () = "%s__addonAddr"
103103
104104
105105 let ab = "%s__fee"
106106
107107 let ac = valueOrElse(getInteger(this, ab), A)
108108
109109 func ad () = "%s__factoryConfig"
110110
111111
112112 func ae () = "%s%s__matcher__publicKey"
113113
114114
115115 func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
116116
117117
118118 func ai (aj) = ("%s%s%s__mappings__baseAsset2internalId__" + aj)
119119
120120
121121 func ak () = "%s__shutdown"
122122
123123
124124 func al () = "%s__allowedLpStableScriptHash"
125125
126126
127127 func am () = "%s__feeCollectorAddress"
128128
129129
130130 func an (ao,ap,aq) = throw(((((("Failed: ordValid=" + toString(ao)) + " sndrValid=") + toString(ap)) + " mtchrValid=") + toString(aq)))
131131
132132
133133 func ar (F) = {
134134 let as = F
135135 if ($isInstanceOf(as, "String"))
136136 then {
137137 let at = as
138138 at
139139 }
140140 else throw("fail cast to String")
141141 }
142142
143143
144144 func au (av,aw) = valueOrErrorMessage(getString(av, aw), makeString(["mandatory ", toString(av), ".", aw, " not defined"], ""))
145145
146146
147147 func ax (av,aw) = valueOrErrorMessage(getInteger(av, aw), makeString(["mandatory ", toString(av), ".", aw, " not defined"], ""))
148148
149149
150150 let ay = addressFromStringValue(au(this, M()))
151151
152152 let az = au(this, Z())
153153
154154 func aA () = valueOrElse(getBoolean(ay, ak()), false)
155155
156156
157157 func aB () = fromBase58String(au(ay, ae()))
158158
159159
160160 let aC = addressFromStringValue(au(ay, am()))
161161
162162 func aD () = {
163163 let aE = au(this, X())
164164 let aF = au(this, Y())
165165 let aG = ax(ay, ai(aF))
166166 let ag = ax(ay, ai(aE))
167167 split(au(ay, af(toString(ag), toString(aG))), i)
168168 }
169169
170170
171171 func aH () = split(au(ay, ad()), i)
172172
173173
174174 let aI = aH()
175175
176176 let aJ = valueOrErrorMessage(addressFromString(aI[x]), "Invalid staking contract address")
177177
178178 let aK = valueOrErrorMessage(addressFromString(aI[y]), "Invalid slipage contract address")
179179
180180 let aL = valueOrErrorMessage(addressFromString(aI[z]), "Invalid gwx contract address")
181181
182182 func aM (aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aN), toString(aO), toString(aP), toString(aQ), toString(aR), toString(aS), toString(aT), toString(aU), toString(aV), toString(aW)], i)
183183
184184
185185 func aX (aY,aZ,ba,aQ,aT,aU) = makeString(["%d%d%d%d%d%d", toString(aY), toString(aZ), toString(ba), toString(aQ), toString(aT), toString(aU)], i)
186186
187187
188188 func bb (bc) = if ((bc == "WAVES"))
189189 then wavesBalance(this).available
190190 else assetBalance(this, fromBase58String(bc))
191191
192192
193193 func bd (be,bf) = fraction(be, c, bf)
194194
195195
196196 func bg (bh,bi,bj) = {
197197 let bk = fraction((bh - bi), b, bi)
198198 let bl = ((bj - L(bk)) > d)
199199 if (!(bl))
200200 then throw(("Big slpg: " + toString(bk)))
201201 else $Tuple2(bl, min([bh, bi]))
202202 }
203203
204204
205205 func bm (bn,bo,bp) = {
206206 let bk = fraction(bo, b, bn)
207207 let bq = (bp > bk)
208208 if (if (bq)
209209 then true
210210 else (bo > bn))
211211 then throw(((((((toString(bo) + " ") + toString(bn)) + " ") + toString(bk)) + " ") + toString(bp)))
212212 else bq
213213 }
214214
215215
216216 func br (bs,bt,bu,bv) = {
217217 let bw = B(bu, bs)
218218 let bx = B(bv, bt)
219219 bd(bx, bw)
220220 }
221221
222222
223223 func by (bu,bv,bz) = {
224224 let bA = aD()
225225 let bB = parseIntValue(bA[t])
226226 let bC = parseIntValue(bA[u])
227227 let bD = br(bB, bC, bu, bv)
228228 let bf = B(bu, bB)
229229 let be = B(bv, bC)
230230 let bE = B(bz, a)
231231 let bF = bd(bf, bE)
232232 let bG = bd(be, bE)
233233 [bD, bF, bG]
234234 }
235235
236236
237237 func bH (bu,bv,bz) = {
238238 let bI = by(bu, bv, bz)
239239 [E(bI[0], a), E(bI[1], a), E(bI[2], a)]
240240 }
241241
242242
243243 func bJ (bK) = {
244244 let bL = fraction(bK, ac, a)
245245 $Tuple2((bK - bL), bL)
246246 }
247247
248248
249249 func bM (bN,bO,bP,bQ) = {
250250 let bA = aD()
251251 let bR = bA[q]
252252 let bS = bA[r]
253253 let bT = bA[s]
254254 let bU = parseIntValue(bA[t])
255255 let bV = parseIntValue(bA[u])
256256 let bW = bA[p]
257257 let bX = valueOrErrorMessage(assetInfo(fromBase58String(bR)), "Wrong LP id").quantity
258258 if ((bR != bO))
259259 then throw("Wrong pmt asset")
260260 else {
261261 let bY = bb(bS)
262262 let bZ = B(bY, bU)
263263 let ca = bb(bT)
264264 let cb = B(ca, bV)
265265 let cc = bd(cb, bZ)
266266 let cd = E(cc, a)
267267 let ce = B(bP, a)
268268 let cf = B(bX, a)
269269 let cg = fraction(bZ, ce, cf)
270270 let ch = fraction(cb, ce, cf)
271271 let ci = E(cg, bU)
272272 let cj = E(ch, bV)
273273 let ck = if ((bN == ""))
274274 then nil
275275 else [ScriptTransfer(bQ, ci, if ((bS == "WAVES"))
276276 then unit
277277 else fromBase58String(bS)), ScriptTransfer(bQ, cj, if ((bT == "WAVES"))
278278 then unit
279279 else fromBase58String(bT)), StringEntry(W(toString(bQ), bN), aX(ci, cj, bP, cd, height, lastBlock.timestamp)), IntegerEntry(P(), cd), IntegerEntry(Q(height, lastBlock.timestamp), cd)]
280280 $Tuple10(ci, cj, bS, bT, bY, ca, bX, cc, bW, ck)
281281 }
282282 }
283283
284284
285285 func cl (bN,bj,cm,cn,co,cp,bQ,cq,cr,cs,ct,cu,cv) = {
286286 let bA = aD()
287287 let bR = fromBase58String(bA[q])
288288 let cw = bA[r]
289289 let cx = bA[s]
290290 let cy = bA[v]
291291 let cz = bA[w]
292292 let cA = parseIntValue(bA[t])
293293 let cB = parseIntValue(bA[u])
294294 let bW = bA[p]
295295 let cC = valueOrErrorMessage(assetInfo(bR), "Wr lp as").quantity
296296 let bY = if (cq)
297297 then bb(cw)
298298 else if (if (cs)
299299 then (cv == cw)
300300 else false)
301301 then (bb(cw) - cu)
302302 else if (cs)
303303 then bb(cw)
304304 else (bb(cw) - cm)
305305 let ca = if (cq)
306306 then bb(cx)
307307 else if (if (cs)
308308 then (cv == cx)
309309 else false)
310310 then (bb(cx) - cu)
311311 else if (cs)
312312 then bb(cx)
313313 else (bb(cx) - co)
314314 let cD = B(cm, cA)
315315 let cE = B(co, cB)
316316 let cF = bd(cE, cD)
317317 let bZ = B(bY, cA)
318318 let cb = B(ca, cB)
319319 let cG = if ((cC == 0))
320320 then {
321321 let cc = d
322322 let cH = d
323323 let bE = pow((cD * cE), 0, toBigInt(5), 1, 0, DOWN)
324324 $Tuple5(E(bE, a), E(cD, cA), E(cE, cB), bd((cb + cE), (bZ + cD)), cH)
325325 }
326326 else {
327327 let cc = bd(cb, bZ)
328328 let cI = fraction(L((cc - cF)), c, cc)
329329 let cH = B(bj, a)
330330 if (if (if (ct)
331331 then (cc != d)
332332 else false)
333333 then (cI > cH)
334334 else false)
335335 then throw(((("Price slippage " + toString(cI)) + " > ") + toString(cH)))
336336 else {
337337 let cJ = B(cC, a)
338338 let cK = fraction(cD, cc, c)
339339 let cL = fraction(cE, c, cc)
340340 let cM = if ((cK > cE))
341341 then $Tuple2(cL, cE)
342342 else $Tuple2(cD, cK)
343343 let cN = cM._1
344344 let cO = cM._2
345345 let bE = fraction(cJ, cO, cb)
346346 $Tuple5(E(bE, a), E(cN, cA), E(cO, cB), cc, cH)
347347 }
348348 }
349349 let cP = cG._1
350350 let cQ = cG._2
351351 let cR = cG._3
352352 let cd = E(cG._4, a)
353353 let cS = E(cG._5, a)
354354 if ((0 >= cP))
355355 then throw("LP <= 0")
356356 else {
357357 let cT = if (!(cr))
358358 then 0
359359 else cP
360360 let cU = (cm - cQ)
361361 let cV = (co - cR)
362362 let cW = if (if (cs)
363363 then (cv == cw)
364364 else false)
365365 then $Tuple2(cu, 0)
366366 else if (if (cs)
367367 then (cv == cx)
368368 else false)
369369 then $Tuple2(0, cu)
370370 else $Tuple2(cQ, cR)
371371 let cX = cW._1
372372 let cY = cW._2
373373 let cZ = [IntegerEntry(P(), cd), IntegerEntry(Q(height, lastBlock.timestamp), cd), StringEntry(T(bQ, bN), aM(cX, cY, cT, cd, bj, cS, height, lastBlock.timestamp, cU, cV))]
374374 $Tuple13(cP, cT, cd, bY, ca, cC, bR, bW, cZ, cU, cV, cn, cp)
375375 }
376376 }
377377
378378
379379 func da (db) = {
380380 let bA = aD()
381381 let dc = bA[r]
382382 let dd = bA[s]
383383 let bW = parseIntValue(bA[p])
384384 let bB = parseIntValue(bA[t])
385385 let bC = parseIntValue(bA[u])
386386 let de = bb(dc)
387387 let df = bb(dd)
388388 let cc = if ((db.orderType == Buy))
389389 then br(bB, bC, (de + db.amount), df)
390390 else br(bB, bC, (de - db.amount), df)
391391 let cd = E(cc, a)
392392 if (if (if (aA())
393393 then true
394394 else (bW == m))
395395 then true
396396 else (bW == n))
397397 then throw("Admin blocked")
398398 else {
399399 let dg = db.assetPair.amountAsset
400400 let dh = if ((dg == unit))
401401 then "WAVES"
402402 else toBase58String(value(dg))
403403 let di = db.assetPair.priceAsset
404404 let dj = if ((di == unit))
405405 then "WAVES"
406406 else toBase58String(value(di))
407407 if (if ((dh != dc))
408408 then true
409409 else (dj != dd))
410410 then throw("Wr assets")
411411 else {
412412 let dk = db.price
413413 let cB = fraction(a, bC, bB)
414414 let dl = H(dk, a, cB)
415415 let dm = if ((db.orderType == Buy))
416416 then (cd >= dl)
417417 else (dl >= cd)
418418 true
419419 }
420420 }
421421 }
422422
423423
424424 func dn (do) = if ((size(do.payments) != 1))
425425 then throw("1 pmnt exp")
426426 else {
427427 let dp = value(do.payments[0])
428428 let bO = value(dp.assetId)
429429 let cu = dp.amount
430430 let cG = bM(toBase58String(do.transactionId), toBase58String(bO), cu, do.caller)
431431 let ci = cG._1
432432 let cj = cG._2
433433 let bW = parseIntValue(cG._9)
434434 let ck = cG._10
435435 if (if (aA())
436436 then true
437437 else (bW == n))
438438 then throw(("Admin blocked: " + toString(bW)))
439439 else $Tuple5(ci, cj, cu, bO, ck)
440440 }
441441
442442
443443 func dq (dr,V,ds,dt,bj,cr,cs,ct,cu,cv) = {
444444 let cG = cl(V, bj, value(ds).amount, value(ds).assetId, value(dt).amount, value(dt).assetId, dr, false, cr, cs, ct, cu, cv)
445445 let bW = parseIntValue(cG._8)
446446 if (if (if (aA())
447447 then true
448448 else (bW == l))
449449 then true
450450 else (bW == n))
451451 then throw(("Blocked:" + toString(bW)))
452452 else cG
453453 }
454454
455455
456456 func du (dv,bO,bQ,V) = {
457457 let dw = aD()
458458 let bS = dw[r]
459459 let bT = dw[s]
460460 let bY = bb(bS)
461461 let ca = bb(bT)
462462 let dx = bJ(dv)
463463 let cu = dx._1
464464 let bL = dx._2
465465 let dy = if ((V == ""))
466466 then $Tuple2(bY, ca)
467467 else if ((bO == bS))
468468 then if ((dv > bY))
469469 then throw("invalid payment amount")
470470 else $Tuple2((bY - dv), ca)
471471 else if ((bO == bT))
472472 then if ((dv > ca))
473473 then throw("invalid payment amount")
474474 else $Tuple2(bY, (ca - dv))
475475 else throw("wrong pmtAssetId")
476476 let dz = dy._1
477477 let dA = dy._2
478478 let dB = if ((bO == bS))
479479 then $Tuple2(dz, dA)
480480 else $Tuple2(dA, dz)
481481 let dC = dB._1
482482 let dD = dB._2
483483 let dE = 1
484484 let dF = {
485485 let dG = invoke(aL, "calcPutXOnly", [toString(cu), toString(dC), toString(dD), "", az, g, toString(dE), h], nil)
486486 if ($isInstanceOf(dG, "(Int, Int)"))
487487 then dG
488488 else throw(($getType(invoke(aL, "calcPutXOnly", [toString(cu), toString(dC), toString(dD), "", az, g, toString(dE), h], nil)) + " couldn't be cast to (Int, Int)"))
489489 }
490490 let dH = if ((bO == bS))
491491 then dF
492492 else $Tuple2(dF._2, dF._1)
493493 let dI = dH._1
494494 let dJ = dH._2
495495 let dK = dq(bQ, V, AttachedPayment(fromBase58String(bS), dI), AttachedPayment(fromBase58String(bT), dJ), 0, true, true, false, dv, bO)
496496 let dL = dK._2
497497 let dM = dK._7
498498 let ck = dK._9
499499 let cU = dK._10
500500 let cV = dK._11
501501 dK
502502 }
503503
504504
505505 func dN (dO,dP,dQ,dr,dR,dS) = if ((size(dQ) != 1))
506506 then throw("1 pmnt expd")
507507 else {
508508 let dw = aD()
509509 let bR = dw[q]
510510 let bS = dw[r]
511511 let bT = dw[s]
512512 let dT = parseIntValue(dw[t])
513513 let dU = parseIntValue(dw[u])
514514 let dV = dw[p]
515515 let bQ = if ((dr == this))
516516 then dR
517517 else dr
518518 let dp = value(dQ[0])
519519 let bO = value(dp.assetId)
520520 let cu = dp.amount
521521 if ((1000000000 > cu))
522522 then throw("Min pmt 10 LP")
523523 else {
524524 let bN = toBase58String(dS)
525525 if ((bR != toBase58String(bO)))
526526 then throw("Wrong LP")
527527 else {
528528 let bY = bb(bS)
529529 let ca = bb(bT)
530530 let dW = {
531531 let dG = invoke(this, "getOneTknV2READONLY", [dO, cu], nil)
532532 if ($isInstanceOf(dG, "(Int, Int)"))
533533 then dG
534534 else throw(($getType(invoke(this, "getOneTknV2READONLY", [dO, cu], nil)) + " couldn't be cast to (Int, Int)"))
535535 }
536536 let dX = dW._1
537537 let bL = dW._2
538538 let dY = if (if ((dP > 0))
539539 then (dP > dX)
540540 else false)
541541 then throw(makeString(["amount to receive is less than ", toString(dP)], ""))
542542 else dX
543543 let dZ = if ((dO == bS))
544544 then $Tuple2(dY, 0)
545545 else $Tuple2(0, dY)
546546 let ea = dZ._1
547547 let eb = dZ._2
548548 let ec = bd(B(ca, dU), B(bY, dT))
549549 let ed = E(ec, a)
550- let ck = [ScriptTransfer(bQ, dY, if ((dO == "WAVES"))
550+ let ee = if ((dO == "WAVES"))
551551 then unit
552- else fromBase58String(dO)), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)]
552+ else fromBase58String(dO)
553+ let ef = if ((bL > 0))
554+ then [ScriptTransfer(aC, bL, ee)]
555+ else nil
556+ let ck = ([ScriptTransfer(bQ, dY, ee), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)] ++ ef)
553557 if ((ck == ck))
554558 then {
555- let ee = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
556- if ((ee == ee))
559+ let eg = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
560+ if ((eg == eg))
557561 then $Tuple2(ck, dY)
558562 else throw("Strict value is not equal to itself.")
559563 }
560564 else throw("Strict value is not equal to itself.")
561565 }
562566 }
563567 }
564568
565569
566-func ef () = {
570+func eh () = {
567571 let as = getString(N())
568572 if ($isInstanceOf(as, "String"))
569573 then {
570- let eg = as
571- fromBase58String(eg)
574+ let ei = as
575+ fromBase58String(ei)
572576 }
573577 else if ($isInstanceOf(as, "Unit"))
574578 then unit
575579 else throw("Match error")
576580 }
577581
578582
579-func eh () = {
583+func ej () = {
580584 let as = getString(O())
581585 if ($isInstanceOf(as, "String"))
582586 then {
583- let eg = as
584- fromBase58String(eg)
587+ let ei = as
588+ fromBase58String(ei)
585589 }
586590 else if ($isInstanceOf(as, "Unit"))
587591 then unit
588592 else throw("Match error")
589593 }
590594
591595
592-let ei = throw("Permission denied")
596+let ek = throw("Permission denied")
593597
594-func ej (do) = {
595- let as = ef()
598+func el (do) = {
599+ let as = eh()
596600 if ($isInstanceOf(as, "ByteVector"))
597601 then {
598- let ek = as
599- if ((do.callerPublicKey == ek))
602+ let em = as
603+ if ((do.callerPublicKey == em))
600604 then true
601- else ei
605+ else ek
602606 }
603607 else if ($isInstanceOf(as, "Unit"))
604608 then if ((do.caller == this))
605609 then true
606- else ei
610+ else ek
607611 else throw("Match error")
608612 }
609613
610614
611615 @Callable(do)
612616 func constructor (M) = {
613- let el = ej(do)
614- if ((el == el))
617+ let en = el(do)
618+ if ((en == en))
615619 then [StringEntry(M(), M)]
616620 else throw("Strict value is not equal to itself.")
617621 }
618622
619623
620624
621625 @Callable(do)
622-func setManager (em) = {
623- let el = ej(do)
624- if ((el == el))
626+func setManager (eo) = {
627+ let en = el(do)
628+ if ((en == en))
625629 then {
626- let en = fromBase58String(em)
627- if ((en == en))
628- then [StringEntry(O(), em)]
630+ let ep = fromBase58String(eo)
631+ if ((ep == ep))
632+ then [StringEntry(O(), eo)]
629633 else throw("Strict value is not equal to itself.")
630634 }
631635 else throw("Strict value is not equal to itself.")
632636 }
633637
634638
635639
636640 @Callable(do)
637641 func confirmManager () = {
638- let bI = eh()
639- let eo = if (isDefined(bI))
642+ let bI = ej()
643+ let eq = if (isDefined(bI))
640644 then true
641645 else throw("No pending manager")
642- if ((eo == eo))
646+ if ((eq == eq))
643647 then {
644- let ep = if ((do.callerPublicKey == value(bI)))
648+ let er = if ((do.callerPublicKey == value(bI)))
645649 then true
646650 else throw("You are not pending manager")
647- if ((ep == ep))
651+ if ((er == er))
648652 then [StringEntry(N(), toBase58String(value(bI))), DeleteEntry(O())]
649653 else throw("Strict value is not equal to itself.")
650654 }
651655 else throw("Strict value is not equal to itself.")
652656 }
653657
654658
655659
656660 @Callable(do)
657-func put (eq,er) = {
658- let es = aH()
659- let et = valueOrErrorMessage(addressFromString(es[x]), "Wr st addr")
660- let eu = valueOrErrorMessage(addressFromString(es[y]), "Wr sl addr")
661- if ((0 > eq))
661+func put (es,et) = {
662+ let eu = aH()
663+ let ev = valueOrErrorMessage(addressFromString(eu[x]), "Wr st addr")
664+ let ew = valueOrErrorMessage(addressFromString(eu[y]), "Wr sl addr")
665+ if ((0 > es))
662666 then throw("Wrong slippage")
663667 else if ((size(do.payments) != 2))
664668 then throw("2 pmnts expd")
665669 else {
666- let ev = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], eq, true, false, true, 0, "")
667- let cT = ev._2
668- let dM = ev._7
669- let ck = ev._9
670- let cU = ev._10
671- let cV = ev._11
672- let bS = ev._12
673- let bT = ev._13
670+ let ex = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], es, true, false, true, 0, "")
671+ let cT = ex._2
672+ let dM = ex._7
673+ let ck = ex._9
674+ let cU = ex._10
675+ let cV = ex._11
676+ let bS = ex._12
677+ let bT = ex._13
674678 let cG = invoke(ay, "emit", [cT], nil)
675679 if ((cG == cG))
676680 then {
677- let ew = {
681+ let ey = {
678682 let as = cG
679683 if ($isInstanceOf(as, "Address"))
680684 then {
681- let ex = as
682- invoke(ex, "emit", [cT], nil)
685+ let ez = as
686+ invoke(ez, "emit", [cT], nil)
683687 }
684688 else unit
685689 }
686- if ((ew == ew))
690+ if ((ey == ey))
687691 then {
688- let ey = if ((cU > 0))
689- then invoke(eu, "put", nil, [AttachedPayment(bS, cU)])
692+ let eA = if ((cU > 0))
693+ then invoke(ew, "put", nil, [AttachedPayment(bS, cU)])
690694 else nil
691- if ((ey == ey))
695+ if ((eA == eA))
692696 then {
693- let ez = if ((cV > 0))
694- then invoke(eu, "put", nil, [AttachedPayment(bT, cV)])
697+ let eB = if ((cV > 0))
698+ then invoke(ew, "put", nil, [AttachedPayment(bT, cV)])
695699 else nil
696- if ((ez == ez))
700+ if ((eB == eB))
697701 then {
698- let eA = if (er)
702+ let eC = if (et)
699703 then {
700- let eB = invoke(et, "stake", nil, [AttachedPayment(dM, cT)])
701- if ((eB == eB))
704+ let eD = invoke(ev, "stake", nil, [AttachedPayment(dM, cT)])
705+ if ((eD == eD))
702706 then nil
703707 else throw("Strict value is not equal to itself.")
704708 }
705709 else [ScriptTransfer(do.caller, cT, dM)]
706- (ck ++ eA)
710+ (ck ++ eC)
707711 }
708712 else throw("Strict value is not equal to itself.")
709713 }
710714 else throw("Strict value is not equal to itself.")
711715 }
712716 else throw("Strict value is not equal to itself.")
713717 }
714718 else throw("Strict value is not equal to itself.")
715719 }
716720 }
717721
718722
719723
720724 @Callable(do)
721-func putOneTkn (dI,dJ,eC,bj,er) = {
725+func putOneTkn (dI,dJ,eE,bj,et) = {
722726 let bA = aH()
723- let et = valueOrErrorMessage(addressFromString(bA[x]), "Wr st addr")
724- let eu = valueOrErrorMessage(addressFromString(bA[y]), "Wr sl addr")
725- let eD = valueOrErrorMessage(addressFromString(bA[z]), "Wr gwx addr")
726- let eE = aD()
727- let bS = eE[r]
728- let bT = eE[s]
729- let bU = parseIntValue(eE[t])
730- let bV = parseIntValue(eE[u])
731- let eF = valueOrElse(getString(this, aa()), "")
732- let bQ = if ((eF == toString(do.caller)))
727+ let ev = valueOrErrorMessage(addressFromString(bA[x]), "Wr st addr")
728+ let ew = valueOrErrorMessage(addressFromString(bA[y]), "Wr sl addr")
729+ let eF = valueOrErrorMessage(addressFromString(bA[z]), "Wr gwx addr")
730+ let eG = aD()
731+ let bS = eG[r]
732+ let bT = eG[s]
733+ let bU = parseIntValue(eG[t])
734+ let bV = parseIntValue(eG[u])
735+ let eH = valueOrElse(getString(this, aa()), "")
736+ let bQ = if ((eH == toString(do.caller)))
733737 then do.originCaller
734738 else do.caller
735739 if (if (if (if ((0 >= bj))
736740 then true
737741 else (0 >= dI))
738742 then true
739743 else (0 >= dJ))
740744 then true
741- else (0 >= eC))
745+ else (0 >= eE))
742746 then throw("Wrong params")
743747 else if ((size(do.payments) != 1))
744748 then throw("1 pmnt expd")
745749 else {
746750 let dp = value(do.payments[0])
747751 let bO = toBase58String(value(dp.assetId))
748- let eG = dp.amount
749- let eH = bJ(eG)
750- let cu = eH._1
751- let bL = eH._2
752- if ((10000000 > eG))
752+ let eI = dp.amount
753+ let eJ = bJ(eI)
754+ let cu = eJ._1
755+ let bL = eJ._2
756+ if ((10000000 > eI))
753757 then throw("Wrong pmt amt")
754758 else {
755759 let bY = bb(bS)
756760 let ca = bb(bT)
757- let eI = if ((bO == bS))
758- then if (if ((eG > bY))
761+ let eK = if ((bO == bS))
762+ then if (if ((eI > bY))
759763 then true
760764 else (dI > cu))
761765 then throw("invalid payment amount")
762- else $Tuple6((bY - eG), ca, (cu - dI), dJ, 0, 0)
766+ else $Tuple6((bY - eI), ca, (cu - dI), dJ, 0, 0)
763767 else if ((bO == bT))
764- then if (if ((eG > ca))
768+ then if (if ((eI > ca))
765769 then true
766770 else (dJ > cu))
767771 then throw("invalid payment amount")
768- else $Tuple6(bY, (ca - eG), 0, 0, (cu - dJ), dI)
772+ else $Tuple6(bY, (ca - eI), 0, 0, (cu - dJ), dI)
769773 else throw("wrong pmtAssetId")
770- let dz = eI._1
771- let dA = eI._2
772- let eJ = eI._3
773- let eK = eI._4
774- let eL = eI._5
775- let eM = eI._6
776- let bo = invoke(eD, "calcD", [toString(dz), toString(dA), az, g, h], nil)
777- let bn = invoke(eD, "calcD", [toString(toBigInt(((dz + eJ) - eM))), toString(toBigInt(((dA + eL) - eK))), az, g, h], nil)
778- let eN = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
779- if ((eN == eN))
774+ let dz = eK._1
775+ let dA = eK._2
776+ let eL = eK._3
777+ let eM = eK._4
778+ let eN = eK._5
779+ let eO = eK._6
780+ let bo = invoke(eF, "calcD", [toString(dz), toString(dA), az, g, h], nil)
781+ let bn = invoke(eF, "calcD", [toString(toBigInt(((dz + eL) - eO))), toString(toBigInt(((dA + eN) - eM))), az, g, h], nil)
782+ let eP = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
783+ if ((eP == eP))
780784 then {
781785 let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(fromBase58String(bS), dI), AttachedPayment(fromBase58String(bT), dJ), bj, true, true, true, cu, bO)
782786 let dL = dK._2
783787 let dM = dK._7
784788 let ck = dK._9
785789 let cU = dK._10
786790 let cV = dK._11
787- let eO = bg(toBigInt(dL), toBigInt(eC), toBigInt(bj))
788- let cT = toInt(eO._2)
789- let ev = invoke(ay, "emit", [cT], nil)
790- if ((ev == ev))
791+ let eQ = bg(toBigInt(dL), toBigInt(eE), toBigInt(bj))
792+ let cT = toInt(eQ._2)
793+ let ex = invoke(ay, "emit", [cT], nil)
794+ if ((ex == ex))
791795 then {
792- let ew = {
793- let as = ev
796+ let ey = {
797+ let as = ex
794798 if ($isInstanceOf(as, "Address"))
795799 then {
796- let ex = as
797- invoke(ex, "emit", [cT], nil)
800+ let ez = as
801+ invoke(ez, "emit", [cT], nil)
798802 }
799803 else unit
800804 }
801- if ((ew == ew))
805+ if ((ey == ey))
802806 then {
803- let ey = if ((cU > 0))
804- then invoke(eu, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
807+ let eA = if ((cU > 0))
808+ then invoke(ew, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
805809 else nil
806- if ((ey == ey))
810+ if ((eA == eA))
807811 then {
808- let ez = if ((cV > 0))
809- then invoke(eu, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
812+ let eB = if ((cV > 0))
813+ then invoke(ew, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
810814 else nil
811- if ((ez == ez))
815+ if ((eB == eB))
812816 then {
813- let eA = if (er)
817+ let eC = if (et)
814818 then {
815- let eB = invoke(et, "stake", nil, [AttachedPayment(dM, cT)])
816- if ((eB == eB))
819+ let eD = invoke(ev, "stake", nil, [AttachedPayment(dM, cT)])
820+ if ((eD == eD))
817821 then nil
818822 else throw("Strict value is not equal to itself.")
819823 }
820824 else [ScriptTransfer(do.caller, cT, dM)]
821- let eP = if ((bL > 0))
825+ let ef = if ((bL > 0))
822826 then [ScriptTransfer(aC, bL, fromBase58String(bO))]
823827 else nil
824- ((ck ++ eA) ++ eP)
828+ ((ck ++ eC) ++ ef)
825829 }
826830 else throw("Strict value is not equal to itself.")
827831 }
828832 else throw("Strict value is not equal to itself.")
829833 }
830834 else throw("Strict value is not equal to itself.")
831835 }
832836 else throw("Strict value is not equal to itself.")
833837 }
834838 else throw("Strict value is not equal to itself.")
835839 }
836840 }
837841 }
838842
839843
840844
841845 @Callable(do)
842-func putOneTknV2 (dP,er) = if ((size(do.payments) != 1))
846+func putOneTknV2 (dP,et) = if ((size(do.payments) != 1))
843847 then throw("1 pmnt expd")
844848 else {
845849 let dw = aD()
846850 let bS = dw[r]
847851 let bT = dw[s]
848852 let dT = parseIntValue(dw[t])
849853 let dU = parseIntValue(dw[u])
850854 let bQ = if ((do.caller == this))
851855 then do.originCaller
852856 else do.caller
853857 let dp = value(do.payments[0])
854858 let bO = toBase58String(value(dp.assetId))
855859 let cu = dp.amount
856860 if ((10000000 > cu))
857861 then throw("Wrong pmt amt")
858862 else {
859863 let cG = du(cu, bO, toString(bQ), toBase58String(do.transactionId))
860864 let dL = cG._2
861865 let dM = cG._7
862866 let ck = cG._9
863867 let cU = cG._10
864868 let cV = cG._11
865869 let cT = if (if ((dP > 0))
866870 then (dP > dL)
867871 else false)
868872 then throw(makeString(["amount to receive is less than ", toString(dP)], ""))
869873 else dL
870- let ev = invoke(ay, "emit", [cT], nil)
871- if ((ev == ev))
874+ let ex = invoke(ay, "emit", [cT], nil)
875+ if ((ex == ex))
872876 then {
873- let ew = {
874- let as = ev
877+ let ey = {
878+ let as = ex
875879 if ($isInstanceOf(as, "Address"))
876880 then {
877- let ex = as
878- invoke(ex, "emit", [cT], nil)
881+ let ez = as
882+ invoke(ez, "emit", [cT], nil)
879883 }
880884 else unit
881885 }
882- if ((ew == ew))
886+ if ((ey == ey))
883887 then {
884- let ey = if ((cU > 0))
888+ let eA = if ((cU > 0))
885889 then invoke(aK, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
886890 else nil
887- if ((ey == ey))
891+ if ((eA == eA))
888892 then {
889- let ez = if ((cV > 0))
893+ let eB = if ((cV > 0))
890894 then invoke(aK, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
891895 else nil
892- if ((ez == ez))
896+ if ((eB == eB))
893897 then {
894- let eA = if (er)
898+ let eC = if (et)
895899 then {
896- let eB = invoke(aJ, "stake", nil, [AttachedPayment(dM, cT)])
897- if ((eB == eB))
900+ let eD = invoke(aJ, "stake", nil, [AttachedPayment(dM, cT)])
901+ if ((eD == eD))
898902 then nil
899903 else throw("Strict value is not equal to itself.")
900904 }
901905 else [ScriptTransfer(do.caller, cT, dM)]
902- $Tuple2((ck ++ eA), cT)
906+ let bL = bJ(cu)._2
907+ let ef = if ((bL > 0))
908+ then [ScriptTransfer(aC, bL, fromBase58String(bO))]
909+ else nil
910+ $Tuple2(((ck ++ eC) ++ ef), cT)
903911 }
904912 else throw("Strict value is not equal to itself.")
905913 }
906914 else throw("Strict value is not equal to itself.")
907915 }
908916 else throw("Strict value is not equal to itself.")
909917 }
910918 else throw("Strict value is not equal to itself.")
911919 }
912920 }
913921
914922
915923
916924 @Callable(do)
917-func putOneTknV2READONLY (eQ,eR) = {
918- let cG = du(eQ, eR, "", "")
925+func putOneTknV2READONLY (eR,eS) = {
926+ let cG = du(eR, eS, "", "")
919927 let dL = cG._2
920928 let dM = cG._7
921929 let ck = cG._9
922930 let cU = cG._10
923931 let cV = cG._11
924932 $Tuple2(nil, dL)
925933 }
926934
927935
928936
929937 @Callable(do)
930-func putOneTknV2WithBonusREADONLY (eQ,eR) = {
938+func putOneTknV2WithBonusREADONLY (eR,eS) = {
931939 let dw = aD()
932940 let bS = dw[r]
933941 let bT = dw[s]
934942 let bY = bb(bS)
935943 let ca = bb(bT)
936- let cG = du(eQ, eR, "", "")
944+ let cG = du(eR, eS, "", "")
937945 let dL = cG._2
938946 let cd = cG._3
939- let eS = cG._6
947+ let eT = cG._6
940948 let dM = cG._7
941- let eT = if ((eR == bS))
949+ let eU = if ((eS == bS))
942950 then {
943- let eU = fraction(eQ, cd, a)
944- $Tuple2(eQ, eU)
951+ let eV = fraction(eR, cd, a)
952+ $Tuple2(eR, eV)
945953 }
946954 else {
947- let eV = fraction(eQ, a, cd)
948- $Tuple2(eV, eQ)
955+ let eW = fraction(eR, a, cd)
956+ $Tuple2(eW, eR)
949957 }
950- let eV = eT._1
951- let eU = eT._2
952- let eW = fraction(eS, eU, ca)
953- let eX = if ((eR == bS))
954- then fraction(eV, a, dL)
955- else fraction(eU, a, dL)
956- let eY = fraction((eU + eV), a, eW)
957- let eZ = fraction((eY - eX), a, eX)
958- let bL = bJ(eQ)._2
959- $Tuple2(nil, $Tuple3(dL, bL, eZ))
958+ let eW = eU._1
959+ let eV = eU._2
960+ let eX = fraction(eT, eV, ca)
961+ let eY = if ((eS == bS))
962+ then fraction(eW, a, dL)
963+ else fraction(eV, a, dL)
964+ let eZ = fraction((eV + eW), a, eX)
965+ let fa = fraction((eZ - eY), a, eY)
966+ let bL = bJ(eR)._2
967+ $Tuple2(nil, $Tuple3(dL, bL, fa))
960968 }
961969
962970
963971
964972 @Callable(do)
965-func putForFree (fa) = if ((0 > fa))
973+func putForFree (fb) = if ((0 > fb))
966974 then throw("Wrong slpg")
967975 else if ((size(do.payments) != 2))
968976 then throw("2 pmnts expd")
969977 else {
970- let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], fa, false, false, true, 0, "")
978+ let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], fb, false, false, true, 0, "")
971979 dK._9
972980 }
973981
974982
975983
976984 @Callable(do)
977985 func get () = {
978986 let cG = dn(do)
979- let fb = cG._1
987+ let fc = cG._1
980988 let cj = cG._2
981989 let cu = cG._3
982990 let bO = cG._4
983991 let ck = cG._5
984- let fc = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
985- if ((fc == fc))
992+ let fd = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
993+ if ((fd == fd))
986994 then ck
987995 else throw("Strict value is not equal to itself.")
988996 }
989997
990998
991999
9921000 @Callable(do)
993-func getOneTkn (fd,fe,ff,dO,bj) = if ((size(do.payments) != 1))
1001+func getOneTkn (fe,ff,fg,dO,bj) = if ((size(do.payments) != 1))
9941002 then throw("1 pmnt expd")
9951003 else {
9961004 let bA = aD()
9971005 let bR = bA[q]
9981006 let bS = bA[r]
9991007 let bT = bA[s]
10001008 let bU = parseIntValue(bA[t])
10011009 let bV = parseIntValue(bA[u])
10021010 let bW = bA[p]
1003- let es = aH()
1004- let eD = valueOrErrorMessage(addressFromString(es[z]), "Wr sl addr")
1011+ let eu = aH()
1012+ let eF = valueOrErrorMessage(addressFromString(eu[z]), "Wr sl addr")
10051013 let dp = value(do.payments[0])
1006- let eF = valueOrElse(getString(this, aa()), "")
1007- let bQ = if ((eF == toString(do.caller)))
1014+ let eH = valueOrElse(getString(this, aa()), "")
1015+ let bQ = if ((eH == toString(do.caller)))
10081016 then do.originCaller
10091017 else do.caller
10101018 let bN = toBase58String(do.transactionId)
10111019 let bO = value(dp.assetId)
10121020 let cu = dp.amount
10131021 if ((1000000000 > cu))
10141022 then throw("Min pmt 10 LP")
10151023 else if (if (if ((0 > bj))
10161024 then true
1017- else (0 > fd))
1025+ else (0 > fe))
10181026 then true
1019- else (0 > ff))
1027+ else (0 > fg))
10201028 then throw("Wrong params")
10211029 else if ((bR != toBase58String(bO)))
10221030 then throw("Wrong LP")
10231031 else {
10241032 let cG = bM(toBase58String(do.transactionId), toBase58String(bO), cu, do.caller)
1025- let fg = cG._1
1026- let fh = cG._2
1033+ let fh = cG._1
1034+ let fi = cG._2
10271035 let bY = bb(bS)
10281036 let ca = bb(bT)
1029- let fi = if ((dO == bS))
1030- then $Tuple7((bY - fg), (ca - fh), fd, fh, 0, 0, (fg + fd))
1037+ let fj = if ((dO == bS))
1038+ then $Tuple7((bY - fh), (ca - fi), fe, fi, 0, 0, (fh + fe))
10311039 else if ((dO == bT))
1032- then $Tuple7((bY - fg), (ca - fh), 0, 0, fd, fg, (fh + fd))
1040+ then $Tuple7((bY - fh), (ca - fi), 0, 0, fe, fh, (fi + fe))
10331041 else throw("wrong outAssetId")
1034- let dz = fi._1
1035- let dA = fi._2
1036- let eJ = fi._3
1037- let eK = fi._4
1038- let eL = fi._5
1039- let eM = fi._6
1040- let fj = fi._7
1041- if (if ((0 > eJ))
1042+ let dz = fj._1
1043+ let dA = fj._2
1044+ let eL = fj._3
1045+ let eM = fj._4
1046+ let eN = fj._5
1047+ let eO = fj._6
1048+ let fk = fj._7
1049+ if (if ((0 > eL))
10421050 then true
1043- else (0 > eL))
1051+ else (0 > eN))
10441052 then throw("Wrong calc")
10451053 else {
1046- let bo = invoke(eD, "calcD", [toString(dz), toString(dA), az, g, h], nil)
1047- let bn = invoke(eD, "calcD", [toString(((dz - eJ) + eM)), toString(((dA + eK) - eL)), az, g, h], nil)
1048- let eN = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
1049- if ((eN == eN))
1054+ let bo = invoke(eF, "calcD", [toString(dz), toString(dA), az, g, h], nil)
1055+ let bn = invoke(eF, "calcD", [toString(((dz - eL) + eO)), toString(((dA + eM) - eN)), az, g, h], nil)
1056+ let eP = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
1057+ if ((eP == eP))
10501058 then {
1051- let dX = bJ(fj)._1
1052- let fk = bg(toBigInt(dX), toBigInt(ff), toBigInt(bj))
1053- if ((fk == fk))
1059+ let dX = bJ(fk)._1
1060+ let fl = bg(toBigInt(dX), toBigInt(fg), toBigInt(bj))
1061+ if ((fl == fl))
10541062 then {
1055- let fl = if ((dO == bS))
1056- then $Tuple2(toInt(fk._2), 0)
1057- else $Tuple2(0, toInt(fk._2))
1058- let ea = fl._1
1059- let eb = fl._2
1063+ let fm = if ((dO == bS))
1064+ then $Tuple2(toInt(fl._2), 0)
1065+ else $Tuple2(0, toInt(fl._2))
1066+ let ea = fm._1
1067+ let eb = fm._2
10601068 let dY = (ea + eb)
1061- let bL = (fj - dX)
1062- let fm = if ((dO == "WAVES"))
1069+ let bL = (fk - dX)
1070+ let ee = if ((dO == "WAVES"))
10631071 then unit
10641072 else fromBase58String(dO)
1065- let eP = if ((bL > 0))
1066- then [ScriptTransfer(aC, bL, fm)]
1073+ let ef = if ((bL > 0))
1074+ then [ScriptTransfer(aC, bL, ee)]
10671075 else nil
10681076 let ec = bd(B(ca, bV), B(bY, bU))
10691077 let ed = E(ec, a)
1070- let ck = [ScriptTransfer(bQ, dY, fm), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)]
1078+ let ck = [ScriptTransfer(bQ, dY, ee), StringEntry(W(toString(bQ), bN), aX(ea, eb, cu, ed, height, lastBlock.timestamp)), IntegerEntry(P(), ed), IntegerEntry(Q(height, lastBlock.timestamp), ed)]
10711079 if ((ck == ck))
10721080 then {
1073- let ee = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
1074- if ((ee == ee))
1075- then (ck ++ eP)
1081+ let eg = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
1082+ if ((eg == eg))
1083+ then (ck ++ ef)
10761084 else throw("Strict value is not equal to itself.")
10771085 }
10781086 else throw("Strict value is not equal to itself.")
10791087 }
10801088 else throw("Strict value is not equal to itself.")
10811089 }
10821090 else throw("Strict value is not equal to itself.")
10831091 }
10841092 }
10851093 }
10861094
10871095
10881096
10891097 @Callable(do)
10901098 func getOneTknV2 (dO,dP) = {
10911099 let fn = dN(dO, dP, do.payments, do.caller, do.originCaller, do.transactionId)
10921100 let ck = fn._1
10931101 let dY = fn._2
10941102 $Tuple2(ck, dY)
10951103 }
10961104
10971105
10981106
10991107 @Callable(do)
11001108 func getOneTknV2READONLY (dO,fo) = {
11011109 let dw = aD()
11021110 let bR = dw[q]
11031111 let bS = dw[r]
11041112 let bT = dw[s]
11051113 let cG = bM("", bR, fo, this)
1106- let fg = cG._1
1107- let fh = cG._2
1114+ let fh = cG._1
1115+ let fi = cG._2
11081116 let bY = bb(bS)
11091117 let ca = bb(bT)
1110- let dz = (bY - fg)
1111- let dA = (ca - fh)
1118+ let dz = (bY - fh)
1119+ let dA = (ca - fi)
11121120 let fp = if ((dO == bS))
1113- then $Tuple3(dA, dz, fh)
1121+ then $Tuple3(dA, dz, fi)
11141122 else if ((dO == bT))
1115- then $Tuple3(dz, dA, fg)
1123+ then $Tuple3(dz, dA, fh)
11161124 else throw("wrong outAssetId")
11171125 let fq = fp._1
11181126 let fr = fp._2
11191127 let fs = fp._3
11201128 let ft = 1
1121- let fd = {
1129+ let fe = {
11221130 let dG = invoke(aL, "calcSwapXToY", [toString(fs), toString(fq), toString(fr), "", az, g, toString(ft), h], nil)
11231131 if ($isInstanceOf(dG, "Int"))
11241132 then dG
11251133 else throw(($getType(invoke(aL, "calcSwapXToY", [toString(fs), toString(fq), toString(fr), "", az, g, toString(ft), h], nil)) + " couldn't be cast to Int"))
11261134 }
1127- let fj = (fd + (if ((dO == bS))
1128- then fg
1129- else fh))
1130- let fu = bJ(fj)
1135+ let fk = (fe + (if ((dO == bS))
1136+ then fh
1137+ else fi))
1138+ let fu = bJ(fk)
11311139 let dX = fu._1
11321140 let bL = fu._2
11331141 $Tuple2(nil, $Tuple2(dX, bL))
11341142 }
11351143
11361144
11371145
11381146 @Callable(do)
11391147 func getOneTknV2WithBonusREADONLY (dO,fo) = {
11401148 let dw = aD()
11411149 let bS = dw[r]
11421150 let bT = dw[s]
11431151 let bR = dw[q]
11441152 let bY = bb(bS)
11451153 let ca = bb(bT)
11461154 let fv = {
11471155 let dG = invoke(this, "getOneTknV2READONLY", [dO, fo], nil)
11481156 if ($isInstanceOf(dG, "(Int, Int)"))
11491157 then dG
11501158 else throw(($getType(invoke(this, "getOneTknV2READONLY", [dO, fo], nil)) + " couldn't be cast to (Int, Int)"))
11511159 }
11521160 let dX = fv._1
11531161 let bL = fv._2
11541162 let cG = bM("", bR, fo, this)
11551163 let ci = cG._1
11561164 let cj = cG._2
1157- let eX = fraction(dX, a, fo)
1158- let eY = fraction((ci + cj), a, fo)
1159- let eZ = fraction((eX - eY), a, eY)
1160- $Tuple2(nil, $Tuple3(dX, bL, eZ))
1165+ let eY = fraction(dX, a, fo)
1166+ let eZ = fraction((ci + cj), a, fo)
1167+ let fa = fraction((eY - eZ), a, eZ)
1168+ $Tuple2(nil, $Tuple3(dX, bL, fa))
11611169 }
11621170
11631171
11641172
11651173 @Callable(do)
11661174 func getNoLess (fw,fx) = {
11671175 let cG = dn(do)
11681176 let ci = cG._1
11691177 let cj = cG._2
11701178 let cu = cG._3
11711179 let bO = cG._4
11721180 let ck = cG._5
11731181 if ((fw > ci))
11741182 then throw(((("Failed: " + toString(ci)) + " < ") + toString(fw)))
11751183 else if ((fx > cj))
11761184 then throw(((("Failed: " + toString(cj)) + " < ") + toString(fx)))
11771185 else {
11781186 let fy = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
11791187 if ((fy == fy))
11801188 then ck
11811189 else throw("Strict value is not equal to itself.")
11821190 }
11831191 }
11841192
11851193
11861194
11871195 @Callable(do)
11881196 func unstakeAndGet (bK) = {
11891197 let fz = if ((size(do.payments) != 0))
11901198 then throw("No pmnts expd")
11911199 else true
11921200 if ((fz == fz))
11931201 then {
11941202 let bA = aD()
11951203 let fA = aH()
11961204 let dM = fromBase58String(bA[q])
11971205 let fB = valueOrErrorMessage(addressFromString(fA[x]), "Wr st addr")
11981206 let fC = invoke(fB, "unstake", [toBase58String(dM), bK], nil)
11991207 if ((fC == fC))
12001208 then {
12011209 let cG = bM(toBase58String(do.transactionId), toBase58String(dM), bK, do.caller)
12021210 let bW = parseIntValue(cG._9)
12031211 let ck = cG._10
12041212 let fD = if (if (aA())
12051213 then true
12061214 else (bW == n))
12071215 then throw(("Blocked: " + toString(bW)))
12081216 else true
12091217 if ((fD == fD))
12101218 then {
12111219 let fE = invoke(ay, "burn", [bK], [AttachedPayment(dM, bK)])
12121220 if ((fE == fE))
12131221 then ck
12141222 else throw("Strict value is not equal to itself.")
12151223 }
12161224 else throw("Strict value is not equal to itself.")
12171225 }
12181226 else throw("Strict value is not equal to itself.")
12191227 }
12201228 else throw("Strict value is not equal to itself.")
12211229 }
12221230
12231231
12241232
12251233 @Callable(do)
12261234 func unstakeAndGetOneTkn (fF,dO,dP) = {
12271235 let fz = if ((size(do.payments) != 0))
12281236 then throw("No pmnts expd")
12291237 else true
12301238 if ((fz == fz))
12311239 then {
12321240 let bA = aD()
12331241 let fA = aH()
12341242 let dM = fromBase58String(bA[q])
12351243 let fB = valueOrErrorMessage(addressFromString(fA[x]), "Wr st addr")
12361244 let fC = invoke(fB, "unstake", [toBase58String(dM), fF], nil)
12371245 if ((fC == fC))
12381246 then {
12391247 let fG = dN(dO, dP, [AttachedPayment(dM, fF)], do.caller, do.originCaller, do.transactionId)
12401248 let ck = fG._1
12411249 let dY = fG._2
12421250 $Tuple2(ck, dY)
12431251 }
12441252 else throw("Strict value is not equal to itself.")
12451253 }
12461254 else throw("Strict value is not equal to itself.")
12471255 }
12481256
12491257
12501258
12511259 @Callable(do)
12521260 func activate (fH,fI) = if ((toString(do.caller) != toString(ay)))
12531261 then throw("denied")
12541262 else $Tuple2([StringEntry(X(), fH), StringEntry(Y(), fI)], "success")
12551263
12561264
12571265
12581266 @Callable(do)
12591267 func setS (fJ,fD) = if ((toString(do.caller) != au(this, aa())))
1260- then ei
1268+ then ek
12611269 else [StringEntry(fJ, fD)]
12621270
12631271
12641272
12651273 @Callable(do)
12661274 func setI (fJ,fD) = if ((toString(do.caller) != au(this, aa())))
1267- then ei
1275+ then ek
12681276 else [IntegerEntry(fJ, fD)]
12691277
12701278
12711279
12721280 @Callable(do)
12731281 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aD())
12741282
12751283
12761284
12771285 @Callable(do)
12781286 func getAccBalanceWrapperREADONLY (bc) = $Tuple2(nil, bb(bc))
12791287
12801288
12811289
12821290 @Callable(do)
12831291 func calcPricesWrapperREADONLY (bu,bv,bz) = {
12841292 let fK = by(bu, bv, bz)
12851293 $Tuple2(nil, [toString(fK[0]), toString(fK[1]), toString(fK[2])])
12861294 }
12871295
12881296
12891297
12901298 @Callable(do)
12911299 func fromX18WrapperREADONLY (F,fL) = $Tuple2(nil, E(parseBigIntValue(F), fL))
12921300
12931301
12941302
12951303 @Callable(do)
12961304 func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
12971305
12981306
12991307
13001308 @Callable(do)
13011309 func calcPriceBigIntWrapperREADONLY (be,bf) = $Tuple2(nil, toString(bd(parseBigIntValue(be), parseBigIntValue(bf))))
13021310
13031311
13041312
13051313 @Callable(do)
13061314 func estimatePutOperationWrapperREADONLY (bN,bj,cm,cn,co,cp,fM,cq,cr) = $Tuple2(nil, cl(bN, bj, cm, cn, co, cp, fM, cq, cr, true, false, 0, ""))
13071315
13081316
13091317
13101318 @Callable(do)
13111319 func estimateGetOperationWrapperREADONLY (bN,fN,bP,fM) = {
13121320 let cG = bM(bN, fN, bP, addressFromStringValue(fM))
13131321 $Tuple2(nil, $Tuple10(cG._1, cG._2, cG._3, cG._4, cG._5, cG._6, cG._7, toString(cG._8), cG._9, cG._10))
13141322 }
13151323
13161324
13171325
13181326 @Callable(do)
13191327 func getFeeREADONLY () = $Tuple2(nil, ac)
13201328
13211329
13221330 @Verifier(fO)
13231331 func fP () = {
13241332 let fQ = {
1325- let as = ef()
1333+ let as = eh()
13261334 if ($isInstanceOf(as, "ByteVector"))
13271335 then {
1328- let ek = as
1329- ek
1336+ let em = as
1337+ em
13301338 }
13311339 else if ($isInstanceOf(as, "Unit"))
13321340 then fO.senderPublicKey
13331341 else throw("Match error")
13341342 }
13351343 let as = fO
13361344 if ($isInstanceOf(as, "Order"))
13371345 then {
13381346 let db = as
13391347 let fR = aB()
13401348 let fS = da(db)
13411349 let fT = sigVerify(db.bodyBytes, db.proofs[0], db.senderPublicKey)
13421350 let fU = sigVerify(db.bodyBytes, db.proofs[1], fR)
13431351 if (if (if (fS)
13441352 then fT
13451353 else false)
13461354 then fU
13471355 else false)
13481356 then true
13491357 else an(fS, fT, fU)
13501358 }
13511359 else if ($isInstanceOf(as, "SetScriptTransaction"))
13521360 then {
1353- let eg = as
1354- let fV = blake2b256(value(eg.script))
1361+ let ei = as
1362+ let fV = blake2b256(value(ei.script))
13551363 let fW = fromBase64String(value(getString(ay, al())))
13561364 let fX = scriptHash(this)
13571365 if (if ((fW == fV))
13581366 then (fX != fV)
13591367 else false)
13601368 then true
13611369 else sigVerify(fO.bodyBytes, fO.proofs[0], fQ)
13621370 }
13631371 else sigVerify(fO.bodyBytes, fO.proofs[0], fQ)
13641372 }
13651373

github/deemru/w8io/169f3d6 
327.10 ms