tx · 6suZW5mvmiyWhggHWRdLhT4ZpmhC4zj8aNufQDakeeFm

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.03100000 Waves

2022.09.27 19:46 [2247803] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "6suZW5mvmiyWhggHWRdLhT4ZpmhC4zj8aNufQDakeeFm", "fee": 3100000, "feeAssetId": null, "timestamp": 1664297196173, "version": 1, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "4Ae4kpUhPruJjtd1QSr4MuvcPBLGnmRFaP3fDEgowFwg3jhcDiNnMBNcXAQ9tfe8pUWWidhvCmQVoDdXLY98EYui" ], "script": "base64:BgL8HggCEgMKAQgSAwoBCBIAEgQKAgEEEgcKBQEBAQEEEgQKAgEEEgQKAgEIEgQKAgEIEgMKAQESABIHCgUBAQEIARIECgIIARIECgIIARIECgIIARIECgIBARIDCgEBEgUKAwEIARIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIEgAiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IglvbmVCaWdJbnQiCnNsaXBwYWdlNEQiBUFtdWx0IgVEY29udiIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIKUG9vbFB1dERpcyIOUG9vbE1hdGNoZXJEaXMiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiCWlkeFBvb2xTdCIJaWR4TFBBc0lkIglpZHhBbUFzSWQiCWlkeFByQXNJZCILaWR4QW10QXNEY20iDWlkeFByaWNlQXNEY20iC2lkeElBbXRBc0lkIg1pZHhJUHJpY2VBc0lkIg9pZHhGYWN0U3Rha0NudHIiEGlkeEZhY3RTbGlwcENudHIiEWlkeEZhY3RHd3hSZXdDbnRyIgpmZWVEZWZhdWx0IgJ0MSIHb3JpZ1ZhbCINb3JpZ1NjYWxlTXVsdCICZjEiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0IgJ0cyIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyICZmMiA21wayIEcG1wayICcGwiAnBoIgFoIgF0IgNwYXUiAnVhIgR0eElkIgNnYXUiAmFhIgJwYSIDYW1wIgNhZGEiBmtleUZlZSIDZmVlIgRmY2ZnIgRtdHBrIgJwYyIGaUFtdEFzIgVpUHJBcyIDbWJhIgViQVN0ciIDYXBzIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIgN0b2UiA29yViIGc2VuZHJWIgZtYXRjaFYiA3N0ciIHJG1hdGNoMCIGdmFsU3RyIgRzdHJmIgRhZGRyIgNrZXkiBGludGYiA2ZjYSIBQSIDaWdzIgJtcCITZmVlQ29sbGVjdG9yQWRkcmVzcyIDZ3BjIgVhbXRBcyIHcHJpY2VBcyIIaVByaWNlQXMiA2dmYyINZmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0Ig9zbGlwYWdlQ29udHJhY3QiC2d3eENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiA3ZhZCICQTEiAkEyIghzbGlwcGFnZSIEZGlmZiIEcGFzcyICdmQiAkQxIgJEMCIEc2xwZyIEZmFpbCIDcGNwIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiC2FtdEFzQW10WDE4IgpwckFzQW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIghhbXRBc0RjbSIHcHJBc0RjbSIIcHJpY2VYMTgiCGxwQW10WDE4Ig1scFBySW5BbUFzWDE4Ig1scFBySW5QckFzWDE4Ig9jYWxjdWxhdGVQcmljZXMiAXAiB3Rha2VGZWUiBmFtb3VudCIJZmVlQW1vdW50IgNlZ28iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiC3VzZXJBZGRyZXNzIgRscElkIgRhbUlkIgRwcklkIgVhbURjbSIFcHJEY20iA3N0cyIHbHBFbWlzcyIJYW1CYWxhbmNlIgxhbUJhbGFuY2VYMTgiCXByQmFsYW5jZSIMcHJCYWxhbmNlWDE4IgtjdXJQcmljZVgxOCIIY3VyUHJpY2UiC3BtdExwQW10WDE4IgpscEVtaXNzWDE4IgtvdXRBbUFtdFgxOCILb3V0UHJBbXRYMTgiCG91dEFtQW10IghvdXRQckFtdCIFc3RhdGUiA2VwbyIHaW5BbUFtdCIGaW5BbUlkIgdpblByQW10IgZpblBySWQiBmlzRXZhbCIGZW1pdExwIgppc09uZUFzc2V0IhB2YWxpZGF0ZVNsaXBwYWdlIgZwbXRBbXQiBXBtdElkIgdhbUlkU3RyIgdwcklkU3RyIglpbkFtSWRTdHIiCWluUHJJZFN0ciIGYW10RGNtIghwcmljZURjbSIEbHBFbSIPaW5BbUFzc2V0QW10WDE4Ig9pblByQXNzZXRBbXRYMTgiDHVzZXJQcmljZVgxOCIBciILc2xpcHBhZ2VYMTgiD3NsaXBwYWdlUmVhbFgxOCINbHBFbWlzc2lvblgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiINJHQwMTYyMzcxNjU4MiIKd3JpdGVBbUFtdCIKd3JpdGVQckFtdCILY29tbW9uU3RhdGUiA21vYSIFb3JkZXIiB2FtdEFzSWQiBnByQXNJZCIPYWNjQW10QXNCYWxhbmNlIg5hY2NQckFzQmFsYW5jZSIKb3JBbXRBc3NldCIKb3JBbXRBc1N0ciIJb3JQckFzc2V0IglvclByQXNTdHIiCm9yZGVyUHJpY2UiDmNhc3RPcmRlclByaWNlIhFpc09yZGVyUHJpY2VWYWxpZCICY2ciAWkiA3BtdCICY3AiBmNhbGxlciIHYW1Bc1BtdCIHcHJBc1BtdCITZXN0aW1hdGVQdXRPbmVUa25WMiIJcG10QW10UmF3Igpwb29sQ29uZmlnIg0kdDAyMDkwODIwOTUzIg0kdDAyMDk1NzIxNDE4IgxhbUJhbGFuY2VOb3ciDHByQmFsYW5jZU5vdyINJHQwMjE0MjIyMTU1NiIQYW1CYWxhbmNlRm9yQ2FsYyIQcHJCYWxhbmNlRm9yQ2FsYyIKeFByZWNpc2lvbiIGcmVzdWx0IgFAIg0kdDAyMjAyNTIyMTIxIgthbUFzc2V0UGFydCILcHJBc3NldFBhcnQiBmVzdFB1dCIHZXN0aW1MUCIJbHBBc3NldElkIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDIzNDc2MjM1ODQiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMjM3NzEyMzg1OCIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIgFtIgFzIgJwbSICcGQiAm1tIgJwayIBYyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiAmNtIgNocG0iA2NwbSIEc2xpcCIJYXV0b1N0YWtlIgdmYWN0Q2ZnIgtzdGFraW5nQ250ciIIc2xpcENudHIiAWUiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIgVvdXRMcCIHZ3d4Q250ciIHcG9vbENmZyIFYWRkb24iEHBheW1lbnRBbW91bnRSYXciDSR0MDI5MjQ0MjkyOTYiDSR0MDI5NDU2MzAwNzIiDHZpcnRTd2FwSW5BbSINdmlydFN3YXBPdXRQciIMdmlydFN3YXBJblByIg12aXJ0U3dhcE91dEFtIgZEMHZzRDEiCWxwQ2FsY1JlcyINcGF5bWVudEFtb3VudCIOcGF5bWVudEFzc2V0SWQiD2xwQXNzZXRFbWlzc2lvbiIOcG9vbFByb3BvcnRpb24iD2Ftb3VudEFzc2V0UGFydCIOcHJpY2VBc3NldFBhcnQiCWxwQW10Qm90aCIFYm9udXMiB21heFNscGciCW91dEFtdEFtdCIBYiIKZXhjaFJlc3VsdCIHbm90VXNlZCIJb3V0QW1vdW50Igplc3RpbUFtQW10Igplc3RpbVByQW10Ig0kdDAzODMyNzM4Nzg3Igt0b3RhbEdldFJhdyIIZmluYWxSZXMiDSR0MDM5NTM0Mzk2MzgiDSR0MDQwNjYzNDA4MTgiDWxwQXNzZXRBbW91bnQiDSR0MDQxMzI4NDE2MzYiFGFtb3VudEJhbGFuY2VGb3JTd2FwIhNwcmljZUJhbGFuY2VGb3JTd2FwIgxhbW91bnRUb1N3YXAiC2Ftb3VudFRvQWRkIgp5UHJlY2lzaW9uIg0kdDA0MjE2NDQyMjEzIg0kdDA0MjczOTQyODU0Ig5zdW1PZkdldEFzc2V0cyISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCIUYnVybkxQQXNzZXRPbkZhY3RvcnkiDWNoZWNrUGF5bWVudHMiCmZhY3RvcnlDZmciB3N0YWtpbmciCnVuc3Rha2VJbnYiAXYiBWJ1cm5BIg11bnN0YWtlQW1vdW50Ig0kdDA0NTE1OTQ1MzQ3IghhbXRBc1N0ciIHcHJBc1N0ciIBayICcHIiDHJlc1NjYWxlTXVsdCIHdXNyQWRkciIHcG10QXNJZCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIgpvcmRlclZhbGlkIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2hXAAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAEAAWYJALYCAQkAZQIFAWEJAGkCCQBoAgUBYQABBQFhAAFnAgMxMDAAAWgCATEAAWkCAl9fAAFqAgAAAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAABAAF5AAcAAXoACgABQQkAawMABQUBYQCQTgEBQgIBQwFECQC8AgMJALYCAQUBQwUBYwkAtgIBBQFEAQFFAgFGAUcJAKADAQkAvAIDBQFGCQC2AgEFAUcFAWMBAUgDAUkBSgFLCQBrAwUBSQUBSgUBSwEBTAEBRgMJAL8CAgUBZAUBRgkAvgIBBQFGBQFGAQFNAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBTgACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFPAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFQAAIRJXMlc19fcHJpY2VfX2xhc3QBAVECAVIBUwkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVIJAMwIAgkApAMBBQFTBQNuaWwFAWkBAVQCAVUBVgkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVUCAl9fBQFWAQFXAgFVAVYJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFVAgJfXwUBVgEBWAACDyVzX19hbW91bnRBc3NldAEBWQACDiVzX19wcmljZUFzc2V0AQFaAAIHJXNfX2FtcAECYWEAAg0lc19fYWRkb25BZGRyAAJhYgIHJXNfX2ZlZQACYWMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWIFAUEBAmFkAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFlAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhZgICYWcCYWgJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFnAgJfXwUCYWgCCF9fY29uZmlnAQJhaQECYWoJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYWoBAmFrAAIMJXNfX3NodXRkb3duAQJhbAACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJhbQACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhbgMCYW8CYXACYXEJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRRmFpbGVkOiBvcmRWYWxpZD0JAKUDAQUCYW8CCyBzbmRyVmFsaWQ9CQClAwEFAmFwAgwgbXRjaHJWYWxpZD0JAKUDAQUCYXEBAmFyAQFGBAJhcwUBRgMJAAECBQJhcwIGU3RyaW5nBAJhdAUCYXMFAmF0CQACAQITZmFpbCBjYXN0IHRvIFN0cmluZwECYXUCAmF2AmF3CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYXYFAmF3CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF2CQDMCAICAS4JAMwIAgUCYXcJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAECYXgCAmF2AmF3CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYXYFAmF3CQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmF2CQDMCAICAS4JAMwIAgUCYXcJAMwIAgIMIG5vdCBkZWZpbmVkBQNuaWwCAAACYXkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhdQIFBHRoaXMJAQFNAAACYXoJAQJhdQIFBHRoaXMJAQFaAAECYUEACQELdmFsdWVPckVsc2UCCQCbCAIFAmF5CQECYWsABwECYUIACQDZBAEJAQJhdQIFAmF5CQECYWUAAAJhQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmF1AgUCYXkJAQJhbQABAmFEAAQCYUUJAQJhdQIFBHRoaXMJAQFYAAQCYUYJAQJhdQIFBHRoaXMJAQFZAAQCYUcJAQJheAIFAmF5CQECYWkBBQJhRgQCYWcJAQJheAIFAmF5CQECYWkBBQJhRQkAtQkCCQECYXUCBQJheQkBAmFmAgkApAMBBQJhZwkApAMBBQJhRwUBaQECYUgACQC1CQIJAQJhdQIFAmF5CQECYWQABQFpAAJhSQkBAmFIAAACYUoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFJBQF4AiBJbnZhbGlkIHN0YWtpbmcgY29udHJhY3QgYWRkcmVzcwACYUsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFJBQF5AiBJbnZhbGlkIHNsaXBhZ2UgY29udHJhY3QgYWRkcmVzcwACYUwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFJBQF6AhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJhTQoCYU4CYU8CYVACYVECYVICYVMCYVQCYVUCYVYCYVcJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmFOCQDMCAIJAKQDAQUCYU8JAMwIAgkApAMBBQJhUAkAzAgCCQCkAwEFAmFRCQDMCAIJAKQDAQUCYVIJAMwIAgkApAMBBQJhUwkAzAgCCQCkAwEFAmFUCQDMCAIJAKQDAQUCYVUJAMwIAgkApAMBBQJhVgkAzAgCCQCkAwEFAmFXBQNuaWwFAWkBAmFYBgJhWQJhWgJiYQJhUQJhVAJhVQkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmFZCQDMCAIJAKQDAQUCYVoJAMwIAgkApAMBBQJiYQkAzAgCCQCkAwEFAmFRCQDMCAIJAKQDAQUCYVQJAMwIAgkApAMBBQJhVQUDbmlsBQFpAQJiYgECYmMDCQAAAgUCYmMCBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJjAQJiZAICYmUCYmYJALwCAwUCYmUFAWMFAmJmAQJiZwMCYmgCYmkCYmoEAmJrCQC8AgMJALgCAgUCYmgFAmJpBQFiBQJiaQQCYmwJAL8CAgkAuAICBQJiagkBAUwBBQJiawUBZAMJAQEhAQUCYmwJAAIBCQCsAgICCkJpZyBzbHBnOiAJAKYDAQUCYmsJAJQKAgUCYmwJAJkDAQkAzAgCBQJiaAkAzAgCBQJiaQUDbmlsAQJibQMCYm4CYm8CYnAEAmJrCQC8AgMFAmJvBQFiBQJibgQCYnEJAL8CAgUCYnAFAmJrAwMFAmJxBgkAvwICBQJibwUCYm4JAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCmAwEFAmJvAgEgCQCmAwEFAmJuAgEgCQCmAwEFAmJrAgEgCQCmAwEFAmJwBQJicQECYnIEAmJzAmJ0AmJ1AmJ2BAJidwkBAUICBQJidQUCYnMEAmJ4CQEBQgIFAmJ2BQJidAkBAmJkAgUCYngFAmJ3AQJieQMCYnUCYnYCYnoEAmJBCQECYUQABAJiQgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJBBQF0BAJiQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJBBQF1BAJiRAkBAmJyBAUCYkIFAmJDBQJidQUCYnYEAmJmCQEBQgIFAmJ1BQJiQgQCYmUJAQFCAgUCYnYFAmJDBAJiRQkBAUICBQJiegUBYQQCYkYJAQJiZAIFAmJmBQJiRQQCYkcJAQJiZAIFAmJlBQJiRQkAzAgCBQJiRAkAzAgCBQJiRgkAzAgCBQJiRwUDbmlsAQJiSAMCYnUCYnYCYnoEAmJJCQECYnkDBQJidQUCYnYFAmJ6CQDMCAIJAQFFAgkAkQMCBQJiSQAABQFhCQDMCAIJAQFFAgkAkQMCBQJiSQABBQFhCQDMCAIJAQFFAgkAkQMCBQJiSQACBQFhBQNuaWwBAmJKAQJiSwQCYkwJAGsDBQJiSwUCYWMFAWEJAJQKAgkAZQIFAmJLBQJiTAUCYkwBAmJNBAJiTgJiTwJiUAJiUQQCYkEJAQJhRAAEAmJSCQCRAwIFAmJBBQFxBAJiUwkAkQMCBQJiQQUBcgQCYlQJAJEDAgUCYkEFAXMEAmJVCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXQEAmJWCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXUEAmJXCQCRAwIFAmJBBQFwBAJiWAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmJSAgtXcm9uZyBMUCBpZAhxdWFudGl0eQMJAQIhPQIFAmJSBQJiTwkAAgECD1dyb25nIHBtdCBhc3NldAQCYlkJAQJiYgEFAmJTBAJiWgkBAUICBQJiWQUCYlUEAmNhCQECYmIBBQJiVAQCY2IJAQFCAgUCY2EFAmJWBAJjYwkBAmJkAgUCY2IFAmJaBAJjZAkBAUUCBQJjYwUBYQQCY2UJAQFCAgUCYlAFAWEEAmNmCQEBQgIFAmJYBQFhBAJjZwkAvAIDBQJiWgUCY2UFAmNmBAJjaAkAvAIDBQJjYgUCY2UFAmNmBAJjaQkBAUUCBQJjZwUCYlUEAmNqCQEBRQIFAmNoBQJiVgQCY2sDCQAAAgUCYk4CAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJRBQJjaQMJAAACBQJiUwIFV0FWRVMFBHVuaXQJANkEAQUCYlMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYlEFAmNqAwkAAAIFAmJUAgVXQVZFUwUEdW5pdAkA2QQBBQJiVAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwIJAKUIAQUCYlEFAmJOCQECYVgGBQJjaQUCY2oFAmJQBQJjZAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVAABQJjZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVECBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjZAUDbmlsCQCcCgoFAmNpBQJjagUCYlMFAmJUBQJiWQUCY2EFAmJYBQJjYwUCYlcFAmNrAQJjbA0CYk4CYmoCY20CY24CY28CY3ACYlECY3ECY3ICY3MCY3QCY3UCY3YEAmJBCQECYUQABAJiUgkA2QQBCQCRAwIFAmJBBQFxBAJjdwkAkQMCBQJiQQUBcgQCY3gJAJEDAgUCYkEFAXMEAmN5CQCRAwIFAmJBBQF2BAJjegkAkQMCBQJiQQUBdwQCY0EJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiQQUBdAQCY0IJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiQQUBdQQCYlcJAJEDAgUCYkEFAXAEAmNDCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJSAghXciBscCBhcwhxdWFudGl0eQQCYlkDBQJjcQkBAmJiAQUCY3cDAwUCY3MJAAACBQJjdgUCY3cHCQBlAgkBAmJiAQUCY3cFAmN1AwUCY3MJAQJiYgEFAmN3CQBlAgkBAmJiAQUCY3cFAmNtBAJjYQMFAmNxCQECYmIBBQJjeAMDBQJjcwkAAAIFAmN2BQJjeAcJAGUCCQECYmIBBQJjeAUCY3UDBQJjcwkBAmJiAQUCY3gJAGUCCQECYmIBBQJjeAUCY28EAmNECQEBQgIFAmNtBQJjQQQCY0UJAQFCAgUCY28FAmNCBAJjRgkBAmJkAgUCY0UFAmNEBAJiWgkBAUICBQJiWQUCY0EEAmNiCQEBQgIFAmNhBQJjQgQCY0cDCQAAAgUCY0MAAAQCY2MFAWQEAmNIBQFkBAJiRQkAdgYJALkCAgUCY0QFAmNFAAAJALYCAQAFAAEAAAUERE9XTgkAlwoFCQEBRQIFAmJFBQFhCQEBRQIFAmNEBQJjQQkBAUUCBQJjRQUCY0IJAQJiZAIJALcCAgUCY2IFAmNFCQC3AgIFAmJaBQJjRAUCY0gEAmNjCQECYmQCBQJjYgUCYloEAmNJCQC8AgMJAQFMAQkAuAICBQJjYwUCY0YFAWMFAmNjBAJjSAkBAUICBQJiagUBYQMDAwUCY3QJAQIhPQIFAmNjBQFkBwkAvwICBQJjSQUCY0gHCQACAQkArAICCQCsAgIJAKwCAgIPUHJpY2Ugc2xpcHBhZ2UgCQCmAwEFAmNJAgMgPiAJAKYDAQUCY0gEAmNKCQEBQgIFAmNDBQFhBAJjSwkAvAIDBQJjRAUCY2MFAWMEAmNMCQC8AgMFAmNFBQFjBQJjYwQCY00DCQC/AgIFAmNLBQJjRQkAlAoCBQJjTAUCY0UJAJQKAgUCY0QFAmNLBAJjTggFAmNNAl8xBAJjTwgFAmNNAl8yBAJiRQkAvAIDBQJjSgUCY08FAmNiCQCXCgUJAQFFAgUCYkUFAWEJAQFFAgUCY04FAmNBCQEBRQIFAmNPBQJjQgUCY2MFAmNIBAJjUAgFAmNHAl8xBAJjUQgFAmNHAl8yBAJjUggFAmNHAl8zBAJjZAkBAUUCCAUCY0cCXzQFAWEEAmNTCQEBRQIIBQJjRwJfNQUBYQMJAGcCAAAFAmNQCQACAQIHTFAgPD0gMAQCY1QDCQEBIQEFAmNyAAAFAmNQBAJjVQkAZQIFAmNtBQJjUQQCY1YJAGUCBQJjbwUCY1IEAmNXAwMFAmNzCQAAAgUCY3YFAmN3BwkAlAoCBQJjdQAAAwMFAmNzCQAAAgUCY3YFAmN4BwkAlAoCAAAFAmN1CQCUCgIFAmNRBQJjUgQCY1gIBQJjVwJfMQQCY1kIBQJjVwJfMgQCY1oJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFQAAUCY2QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQCBQJiUQUCYk4JAQJhTQoFAmNYBQJjWQUCY1QFAmNkBQJiagUCY1MFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmNVBQJjVgUDbmlsCQCfCg0FAmNQBQJjVAUCY2QFAmJZBQJjYQUCY0MFAmJSBQJiVwUCY1oFAmNVBQJjVgUCY24FAmNwAQJkYQECZGIEAmJBCQECYUQABAJkYwkAkQMCBQJiQQUBcgQCZGQJAJEDAgUCYkEFAXMEAmJXCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXAEAmJCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXQEAmJDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkEFAXUEAmRlCQECYmIBBQJkYwQCZGYJAQJiYgEFAmRkBAJjYwMJAAACCAUCZGIJb3JkZXJUeXBlBQNCdXkJAQJicgQFAmJCBQJiQwkAZAIFAmRlCAUCZGIGYW1vdW50BQJkZgkBAmJyBAUCYkIFAmJDCQBlAgUCZGUIBQJkYgZhbW91bnQFAmRmBAJjZAkBAUUCBQJjYwUBYQMDAwkBAmFBAAYJAAACBQJiVwUBbQYJAAACBQJiVwUBbgkAAgECDUFkbWluIGJsb2NrZWQEAmRnCAgFAmRiCWFzc2V0UGFpcgthbW91bnRBc3NldAQCZGgDCQAAAgUCZGcFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRnBAJkaQgIBQJkYglhc3NldFBhaXIKcHJpY2VBc3NldAQCZGoDCQAAAgUCZGkFBHVuaXQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmRpAwMJAQIhPQIFAmRoBQJkYwYJAQIhPQIFAmRqBQJkZAkAAgECCVdyIGFzc2V0cwQCZGsIBQJkYgVwcmljZQQCY0IJAGsDBQFhBQJiQwUCYkIEAmRsCQEBSAMFAmRrBQFhBQJjQgQCZG0DCQAAAggFAmRiCW9yZGVyVHlwZQUDQnV5CQBnAgUCY2QFAmRsCQBnAgUCZGwFAmNkBgECZG4BAmRvAwkBAiE9AgkAkAMBCAUCZG8IcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmRwCQEFdmFsdWUBCQCRAwIIBQJkbwhwYXltZW50cwAABAJiTwkBBXZhbHVlAQgFAmRwB2Fzc2V0SWQEAmN1CAUCZHAGYW1vdW50BAJjRwkBAmJNBAkA2AQBCAUCZG8NdHJhbnNhY3Rpb25JZAkA2AQBBQJiTwUCY3UIBQJkbwZjYWxsZXIEAmNpCAUCY0cCXzEEAmNqCAUCY0cCXzIEAmJXCQENcGFyc2VJbnRWYWx1ZQEIBQJjRwJfOQQCY2sIBQJjRwNfMTADAwkBAmFBAAYJAAACBQJiVwUBbgkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmJXCQCXCgUFAmNpBQJjagUCY3UFAmJPBQJjawECZHEKAmRyAVYCZHMCZHQCYmoCY3ICY3MCY3QCY3UCY3YEAmNHCQECY2wNBQFWBQJiaggJAQV2YWx1ZQEFAmRzBmFtb3VudAgJAQV2YWx1ZQEFAmRzB2Fzc2V0SWQICQEFdmFsdWUBBQJkdAZhbW91bnQICQEFdmFsdWUBBQJkdAdhc3NldElkBQJkcgcFAmNyBQJjcwUCY3QFAmN1BQJjdgQCYlcJAQ1wYXJzZUludFZhbHVlAQgFAmNHAl84AwMDCQECYUEABgkAAAIFAmJXBQFsBgkAAAIFAmJXBQFuCQACAQkArAICAghCbG9ja2VkOgkApAMBBQJiVwUCY0cBAmR1BAJkdgJiTwJiUQFWBAJkdwkBAmFEAAQCYlMJAJEDAgUCZHcFAXIEAmJUCQCRAwIFAmR3BQFzBAJiWQkBAmJiAQUCYlMEAmNhCQECYmIBBQJiVAQCZHgJAQJiSgEFAmR2BAJjdQgFAmR4Al8xBAJiTAgFAmR4Al8yBAJkeQMJAAACBQFWAgAJAJQKAgUCYlkFAmNhAwkAAAIFAmJPBQJiUwMJAGYCBQJkdgUCYlkJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIJAGUCBQJiWQUCZHYFAmNhAwkAAAIFAmJPBQJiVAMJAGYCBQJkdgUCY2EJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIFAmJZCQBlAgUCY2EFAmR2CQACAQIQd3JvbmcgcG10QXNzZXRJZAQCZHoIBQJkeQJfMQQCZEEIBQJkeQJfMgQCZEIDCQAAAgUCYk8FAmJTCQCUCgIFAmR6BQJkQQkAlAoCBQJkQQUCZHoEAmRDCAUCZEICXzEEAmRECAUCZEICXzIEAmRFAAEEAmRGCgACZEcJAPwHBAUCYUwCDGNhbGNQdXRYT25seQkAzAgCCQCkAwEFAmN1CQDMCAIJAKQDAQUCZEMJAMwIAgkApAMBBQJkRAkAzAgCAgAJAMwIAgUCYXoJAMwIAgUBZwkAzAgCCQCkAwEFAmRFCQDMCAIFAWgFA25pbAUDbmlsAwkAAQIFAmRHAgooSW50LCBJbnQpBQJkRwkAAgEJAKwCAgkAAwEJAPwHBAUCYUwCDGNhbGNQdXRYT25seQkAzAgCCQCkAwEFAmN1CQDMCAIJAKQDAQUCZEMJAMwIAgkApAMBBQJkRAkAzAgCAgAJAMwIAgUCYXoJAMwIAgUBZwkAzAgCCQCkAwEFAmRFCQDMCAIFAWgFA25pbAUDbmlsAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJkSAMJAAACBQJiTwUCYlMFAmRGCQCUCgIIBQJkRgJfMggFAmRGAl8xBAJkSQgFAmRIAl8xBAJkSggFAmRIAl8yBAJkSwkBAmRxCgUCYlEFAVYJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJTBQJkSQkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYlQFAmRKAAAGBgcFAmR2BQJiTwQCZEwIBQJkSwJfMgQCZE0IBQJkSwJfNwQCY2sIBQJkSwJfOQQCY1UIBQJkSwNfMTAEAmNWCAUCZEsDXzExBQJkSwECZE4GAmRPAmRQAmRRAmRyAmRSAmRTAwkBAiE9AgkAkAMBBQJkUQABCQACAQILMSBwbW50IGV4cGQEAmR3CQECYUQABAJiUgkAkQMCBQJkdwUBcQQCYlMJAJEDAgUCZHcFAXIEAmJUCQCRAwIFAmR3BQFzBAJkVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF0BAJkVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF1BAJkVgkAkQMCBQJkdwUBcAQCYlEDCQAAAgUCZHIFBHRoaXMFAmRSBQJkcgQCZHAJAQV2YWx1ZQEJAJEDAgUCZFEAAAQCYk8JAQV2YWx1ZQEIBQJkcAdhc3NldElkBAJjdQgFAmRwBmFtb3VudAMJAGYCAICU69wDBQJjdQkAAgECDU1pbiBwbXQgMTAgTFAEAmJOCQDYBAEFAmRTAwkBAiE9AgUCYlIJANgEAQUCYk8JAAIBAghXcm9uZyBMUAQCYlkJAQJiYgEFAmJTBAJjYQkBAmJiAQUCYlQEAmRXCgACZEcJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJkTwkAzAgCBQJjdQUDbmlsBQNuaWwDCQABAgUCZEcCCihJbnQsIEludCkFAmRHCQACAQkArAICCQADAQkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmRPCQDMCAIFAmN1BQNuaWwFA25pbAIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQQCZFgIBQJkVwJfMQQCYkwIBQJkVwJfMgQCZFkDAwkAZgIFAmRQAAAJAGYCBQJkUAUCZFgHCQACAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJkUAUDbmlsAgAFAmRYBAJkWgMJAAACBQJkTwUCYlMJAJQKAgUCZFkAAAkAlAoCAAAFAmRZBAJlYQgFAmRaAl8xBAJlYggFAmRaAl8yBAJlYwkBAmJkAgkBAUICBQJjYQUCZFUJAQFCAgUCYlkFAmRUBAJlZAkBAUUCBQJlYwUBYQQCZWUDCQAAAgUCZE8CBVdBVkVTBQR1bml0CQDZBAEFAmRPBAJlZgMJAGYCBQJiTAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFDBQJiTAUCZWUFA25pbAUDbmlsBAJjawkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJRBQJkWQUCZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcCCQClCAEFAmJRBQJiTgkBAmFYBgUCZWEFAmViBQJjdQUCZWQFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFQAAUCZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWQFA25pbAUCZWYDCQAAAgUCY2sFAmNrBAJlZwkA/AcEBQJheQIEYnVybgkAzAgCBQJjdQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY3UFA25pbAMJAAACBQJlZwUCZWcJAJQKAgUCY2sFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJlaAAEAmFzCQCiCAEJAQFOAAMJAAECBQJhcwIGU3RyaW5nBAJlaQUCYXMJANkEAQUCZWkDCQABAgUCYXMCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZWoABAJhcwkAoggBCQEBTwADCQABAgUCYXMCBlN0cmluZwQCZWkFAmFzCQDZBAEFAmVpAwkAAQIFAmFzAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmVrCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBAmVsAQJkbwQCYXMJAQJlaAADCQABAgUCYXMCCkJ5dGVWZWN0b3IEAmVtBQJhcwMJAAACCAUCZG8PY2FsbGVyUHVibGljS2V5BQJlbQYFAmVrAwkAAQIFAmFzAgRVbml0AwkAAAIIBQJkbwZjYWxsZXIFBHRoaXMGBQJlawkAAgECC01hdGNoIGVycm9yHQJkbwELY29uc3RydWN0b3IBAU0EAmVuCQECZWwBBQJkbwMJAAACBQJlbgUCZW4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU0ABQFNBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZG8BCnNldE1hbmFnZXIBAmVvBAJlbgkBAmVsAQUCZG8DCQAAAgUCZW4FAmVuBAJlcAkA2QQBBQJlbwMJAAACBQJlcAUCZXAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ABQJlbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQ5jb25maXJtTWFuYWdlcgAEAmJJCQECZWoABAJlcQMJAQlpc0RlZmluZWQBBQJiSQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZXEFAmVxBAJlcgMJAAACCAUCZG8PY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJiSQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZXIFAmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFOAAkA2AQBCQEFdmFsdWUBBQJiSQkAzAgCCQELRGVsZXRlRW50cnkBCQEBTwAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbwEDcHV0AgJlcwJldAQCZXUJAQJhSAAEAmV2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJldQUBeAIKV3Igc3QgYWRkcgQCZXcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmV1BQF5AgpXciBzbCBhZGRyAwkAZgIAAAUCZXMJAAIBAg5Xcm9uZyBzbGlwcGFnZQMJAQIhPQIJAJADAQgFAmRvCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmV4CQECZHEKCQClCAEIBQJkbwZjYWxsZXIJANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmRvCHBheW1lbnRzAAEFAmVzBgcGAAACAAQCY1QIBQJleAJfMgQCZE0IBQJleAJfNwQCY2sIBQJleAJfOQQCY1UIBQJleANfMTAEAmNWCAUCZXgDXzExBAJiUwgFAmV4A18xMgQCYlQIBQJleANfMTMEAmNHCQD8BwQFAmF5AgRlbWl0CQDMCAIFAmNUBQNuaWwFA25pbAMJAAACBQJjRwUCY0cEAmV5BAJhcwUCY0cDCQABAgUCYXMCB0FkZHJlc3MEAmV6BQJhcwkA/AcEBQJlegIEZW1pdAkAzAgCBQJjVAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZXkFAmV5BAJlQQMJAGYCBQJjVQAACQD8BwQFAmV3AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlMFAmNVBQNuaWwFA25pbAMJAAACBQJlQQUCZUEEAmVCAwkAZgIFAmNWAAAJAPwHBAUCZXcCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiVAUCY1YFA25pbAUDbmlsAwkAAAIFAmVCBQJlQgQCZUMDBQJldAQCZUQJAPwHBAUCZXYCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRNBQJjVAUDbmlsAwkAAAIFAmVEBQJlRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkbwZjYWxsZXIFAmNUBQJkTQUDbmlsCQDOCAIFAmNrBQJlQwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbwEJcHV0T25lVGtuBQJkSQJkSgJlRQJiagJldAQCYkEJAQJhSAAEAmV2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJiQQUBeAIKV3Igc3QgYWRkcgQCZXcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJBBQF5AgpXciBzbCBhZGRyBAJlRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYkEFAXoCC1dyIGd3eCBhZGRyBAJlRwkBAmFEAAQCYlMJAJEDAgUCZUcFAXIEAmJUCQCRAwIFAmVHBQFzBAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVHBQF0BAJiVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVHBQF1BAJlSAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYWEAAgAEAmJRAwkAAAIFAmVICQClCAEIBQJkbwZjYWxsZXIIBQJkbwxvcmlnaW5DYWxsZXIIBQJkbwZjYWxsZXIDAwMDCQBnAgAABQJiagYJAGcCAAAFAmRJBgkAZwIAAAUCZEoGCQBnAgAABQJlRQkAAgECDFdyb25nIHBhcmFtcwMJAQIhPQIJAJADAQgFAmRvCHBheW1lbnRzAAEJAAIBAgsxIHBtbnQgZXhwZAQCZHAJAQV2YWx1ZQEJAJEDAggFAmRvCHBheW1lbnRzAAAEAmJPCQDYBAEJAQV2YWx1ZQEIBQJkcAdhc3NldElkBAJlSQgFAmRwBmFtb3VudAQCZUoJAQJiSgEFAmVJBAJjdQgFAmVKAl8xBAJiTAgFAmVKAl8yAwkAZgIAgK3iBAUCZUkJAAIBAg1Xcm9uZyBwbXQgYW10BAJiWQkBAmJiAQUCYlMEAmNhCQECYmIBBQJiVAQCZUsDCQAAAgUCYk8FAmJTAwMJAGYCBQJlSQUCYlkGCQBmAgUCZEkFAmN1CQACAQIWaW52YWxpZCBwYXltZW50IGFtb3VudAkAmAoGCQBlAgUCYlkFAmVJBQJjYQkAZQIFAmN1BQJkSQUCZEoAAAAAAwkAAAIFAmJPBQJiVAMDCQBmAgUCZUkFAmNhBgkAZgIFAmRKBQJjdQkAAgECFmludmFsaWQgcGF5bWVudCBhbW91bnQJAJgKBgUCYlkJAGUCBQJjYQUCZUkAAAAACQBlAgUCY3UFAmRKBQJkSQkAAgECEHdyb25nIHBtdEFzc2V0SWQEAmR6CAUCZUsCXzEEAmRBCAUCZUsCXzIEAmVMCAUCZUsCXzMEAmVNCAUCZUsCXzQEAmVOCAUCZUsCXzUEAmVPCAUCZUsCXzYEAmJvCQD8BwQFAmVGAgVjYWxjRAkAzAgCCQCkAwEFAmR6CQDMCAIJAKQDAQUCZEEJAMwIAgUCYXoJAMwIAgUBZwkAzAgCBQFoBQNuaWwFA25pbAQCYm4JAPwHBAUCZUYCBWNhbGNECQDMCAIJAKYDAQkAtgIBCQBlAgkAZAIFAmR6BQJlTAUCZU8JAMwIAgkApgMBCQC2AgEJAGUCCQBkAgUCZEEFAmVOBQJlTQkAzAgCBQJhegkAzAgCBQFnCQDMCAIFAWgFA25pbAUDbmlsBAJlUAkBAmJtAwkApwMBCQECYXIBBQJibgkApwMBCQECYXIBBQJibwUBZgMJAAACBQJlUAUCZVAEAmRLCQECZHEKCQClCAEIBQJkbwZjYWxsZXIJANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJTBQJkSQkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYlQFAmRKBQJiagYGBgUCY3UFAmJPBAJkTAgFAmRLAl8yBAJkTQgFAmRLAl83BAJjawgFAmRLAl85BAJjVQgFAmRLA18xMAQCY1YIBQJkSwNfMTEEAmVRCQECYmcDCQC2AgEFAmRMCQC2AgEFAmVFCQC2AgEFAmJqBAJjVAkAoAMBCAUCZVECXzIEAmV4CQD8BwQFAmF5AgRlbWl0CQDMCAIFAmNUBQNuaWwFA25pbAMJAAACBQJleAUCZXgEAmV5BAJhcwUCZXgDCQABAgUCYXMCB0FkZHJlc3MEAmV6BQJhcwkA/AcEBQJlegIEZW1pdAkAzAgCBQJjVAUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZXkFAmV5BAJlQQMJAGYCBQJjVQAACQD8BwQFAmV3AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJiUwUCY1UFA25pbAUDbmlsAwkAAAIFAmVBBQJlQQQCZUIDCQBmAgUCY1YAAAkA/AcEBQJldwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUCYlQFAmNWBQNuaWwFA25pbAMJAAACBQJlQgUCZUIEAmVDAwUCZXQEAmVECQD8BwQFAmV2AgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkTQUCY1QFA25pbAMJAAACBQJlRAUCZUQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZG8GY2FsbGVyBQJjVAUCZE0FA25pbAQCZWYDCQBmAgUCYkwAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQwUCYkwJANkEAQUCYk8FA25pbAUDbmlsCQDOCAIJAM4IAgUCY2sFAmVDBQJlZgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkbwELcHV0T25lVGtuVjICAmRQAmV0AwkBAiE9AgkAkAMBCAUCZG8IcGF5bWVudHMAAQkAAgECCzEgcG1udCBleHBkBAJkdwkBAmFEAAQCYlMJAJEDAgUCZHcFAXIEAmJUCQCRAwIFAmR3BQFzBAJkVAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF0BAJkVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmR3BQF1BAJiUQMJAAACCAUCZG8GY2FsbGVyBQR0aGlzCAUCZG8Mb3JpZ2luQ2FsbGVyCAUCZG8GY2FsbGVyBAJkcAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAQCYk8JANgEAQkBBXZhbHVlAQgFAmRwB2Fzc2V0SWQEAmN1CAUCZHAGYW1vdW50AwkAZgIAgK3iBAUCY3UJAAIBAg1Xcm9uZyBwbXQgYW10BAJjRwkBAmR1BAUCY3UFAmJPCQClCAEFAmJRCQDYBAEIBQJkbw10cmFuc2FjdGlvbklkBAJkTAgFAmNHAl8yBAJkTQgFAmNHAl83BAJjawgFAmNHAl85BAJjVQgFAmNHA18xMAQCY1YIBQJjRwNfMTEEAmNUAwMJAGYCBQJkUAAACQBmAgUCZFAFAmRMBwkAAgEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZFAFA25pbAIABQJkTAQCZXgJAPwHBAUCYXkCBGVtaXQJAMwIAgUCY1QFA25pbAUDbmlsAwkAAAIFAmV4BQJleAQCZXkEAmFzBQJleAMJAAECBQJhcwIHQWRkcmVzcwQCZXoFAmFzCQD8BwQFAmV6AgRlbWl0CQDMCAIFAmNUBQNuaWwFA25pbAUEdW5pdAMJAAACBQJleQUCZXkEAmVBAwkAZgIFAmNVAAAJAPwHBAUCYUsCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEFAmJTBQJjVQUDbmlsBQNuaWwDCQAAAgUCZUEFAmVBBAJlQgMJAGYCBQJjVgAACQD8BwQFAmFLAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQJiVAUCY1YFA25pbAUDbmlsAwkAAAIFAmVCBQJlQgQCZUMDBQJldAQCZUQJAPwHBAUCYUoCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRNBQJjVAUDbmlsAwkAAAIFAmVEBQJlRAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkbwZjYWxsZXIFAmNUBQJkTQUDbmlsBAJiTAgJAQJiSgEFAmN1Al8yBAJlZgMJAGYCBQJiTAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFDBQJiTAkA2QQBBQJiTwUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNrBQJlQwUCZWYFAmNUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvARNwdXRPbmVUa25WMlJFQURPTkxZAgJlUgJlUwQCY0cJAQJkdQQFAmVSBQJlUwIAAgAEAmRMCAUCY0cCXzIEAmRNCAUCY0cCXzcEAmNrCAUCY0cCXzkEAmNVCAUCY0cDXzEwBAJjVggFAmNHA18xMQkAlAoCBQNuaWwFAmRMAmRvARxwdXRPbmVUa25WMldpdGhCb251c1JFQURPTkxZAgJlUgJlUwQCZHcJAQJhRAAEAmJTCQCRAwIFAmR3BQFyBAJiVAkAkQMCBQJkdwUBcwQCY0cJAQJkdQQFAmVSBQJlUwIAAgAEAmRMCAUCY0cCXzIEAmNkCAUCY0cCXzMEAmVUCAUCY0cCXzYEAmRNCAUCY0cCXzcEAmJZCQECYmIBBQJiUwQCY2EJAQJiYgEFAmJUBAJlVQkAawMFAmNhBQFhBQJiWQQCZVYJAGsDBQJlUgUBYQkAZAIFAmVVBQFhBAJlVwkAZQIFAmVSBQJlVgQCZVgJAGsDBQJlVAUCZVcFAmNhBAJlWQkAawMJAGUCBQJkTAUCZVgFAWEFAmVYBAJiTAgJAQJiSgEFAmVSAl8yCQCUCgIFA25pbAkAlQoDBQJkTAUCYkwFAmVZAmRvAQpwdXRGb3JGcmVlAQJlWgMJAGYCAAAFAmVaCQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmRvCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmRLCQECZHEKCQClCAEIBQJkbwZjYWxsZXIJANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZG8IcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmRvCHBheW1lbnRzAAEFAmVaBwcGAAACAAgFAmRLAl85AmRvAQNnZXQABAJjRwkBAmRuAQUCZG8EAmZhCAUCY0cCXzEEAmNqCAUCY0cCXzIEAmN1CAUCY0cCXzMEAmJPCAUCY0cCXzQEAmNrCAUCY0cCXzUEAmZiCQD8BwQFAmF5AgRidXJuCQDMCAIFAmN1BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJPBQJjdQUDbmlsAwkAAAIFAmZiBQJmYgUCY2sJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZG8BCWdldE9uZVRrbgUCZmMCZmQCZmUCZE8CYmoDCQECIT0CCQCQAwEIBQJkbwhwYXltZW50cwABCQACAQILMSBwbW50IGV4cGQEAmJBCQECYUQABAJiUgkAkQMCBQJiQQUBcQQCYlMJAJEDAgUCYkEFAXIEAmJUCQCRAwIFAmJBBQFzBAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJBBQF0BAJiVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJBBQF1BAJiVwkAkQMCBQJiQQUBcAQCZXUJAQJhSAAEAmVGCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJldQUBegIKV3Igc2wgYWRkcgQCZHAJAQV2YWx1ZQEJAJEDAggFAmRvCHBheW1lbnRzAAAEAmVICQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhYQACAAQCYlEDCQAAAgUCZUgJAKUIAQgFAmRvBmNhbGxlcggFAmRvDG9yaWdpbkNhbGxlcggFAmRvBmNhbGxlcgQCYk4JANgEAQgFAmRvDXRyYW5zYWN0aW9uSWQEAmJPCQEFdmFsdWUBCAUCZHAHYXNzZXRJZAQCY3UIBQJkcAZhbW91bnQDCQBmAgCAlOvcAwUCY3UJAAIBAg1NaW4gcG10IDEwIExQAwMDCQBmAgAABQJiagYJAGYCAAAFAmZjBgkAZgIAAAUCZmUJAAIBAgxXcm9uZyBwYXJhbXMDCQECIT0CBQJiUgkA2AQBBQJiTwkAAgECCFdyb25nIExQBAJjRwkBAmJNBAkA2AQBCAUCZG8NdHJhbnNhY3Rpb25JZAkA2AQBBQJiTwUCY3UIBQJkbwZjYWxsZXIEAmZmCAUCY0cCXzEEAmZnCAUCY0cCXzIEAmJZCQECYmIBBQJiUwQCY2EJAQJiYgEFAmJUBAJmaAMJAAACBQJkTwUCYlMJAJkKBwkAZQIFAmJZBQJmZgkAZQIFAmNhBQJmZwUCZmMFAmZnAAAAAAkAZAIFAmZmBQJmYwMJAAACBQJkTwUCYlQJAJkKBwkAZQIFAmJZBQJmZgkAZQIFAmNhBQJmZwAAAAAFAmZjBQJmZgkAZAIFAmZnBQJmYwkAAgECEHdyb25nIG91dEFzc2V0SWQEAmR6CAUCZmgCXzEEAmRBCAUCZmgCXzIEAmVMCAUCZmgCXzMEAmVNCAUCZmgCXzQEAmVOCAUCZmgCXzUEAmVPCAUCZmgCXzYEAmZpCAUCZmgCXzcDAwkAZgIAAAUCZUwGCQBmAgAABQJlTgkAAgECCldyb25nIGNhbGMEAmJvCQD8BwQFAmVGAgVjYWxjRAkAzAgCCQCkAwEFAmR6CQDMCAIJAKQDAQUCZEEJAMwIAgUCYXoJAMwIAgUBZwkAzAgCBQFoBQNuaWwFA25pbAQCYm4JAPwHBAUCZUYCBWNhbGNECQDMCAIJAKQDAQkAZAIJAGUCBQJkegUCZUwFAmVPCQDMCAIJAKQDAQkAZQIJAGQCBQJkQQUCZU0FAmVOCQDMCAIFAmF6CQDMCAIFAWcJAMwIAgUBaAUDbmlsBQNuaWwEAmVQCQECYm0DCQCnAwEJAQJhcgEFAmJuCQCnAwEJAQJhcgEFAmJvBQFmAwkAAAIFAmVQBQJlUAQCZFgICQECYkoBBQJmaQJfMQQCZmoJAQJiZwMJALYCAQUCZFgJALYCAQUCZmUJALYCAQUCYmoDCQAAAgUCZmoFAmZqBAJmawMJAAACBQJkTwUCYlMJAJQKAgkAoAMBCAUCZmoCXzIAAAkAlAoCAAAJAKADAQgFAmZqAl8yBAJlYQgFAmZrAl8xBAJlYggFAmZrAl8yBAJkWQkAZAIFAmVhBQJlYgQCYkwJAGUCBQJmaQUCZFgEAmVlAwkAAAIFAmRPAgVXQVZFUwUEdW5pdAkA2QQBBQJkTwQCZWYDCQBmAgUCYkwAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhQwUCYkwFAmVlBQNuaWwFA25pbAQCZWMJAQJiZAIJAQFCAgUCY2EFAmJWCQEBQgIFAmJZBQJiVQQCZWQJAQFFAgUCZWMFAWEEAmNrCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJRBQJkWQUCZWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcCCQClCAEFAmJRBQJiTgkBAmFYBgUCZWEFAmViBQJjdQUCZWQFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFQAAUCZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFRAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWQFA25pbAMJAAACBQJjawUCY2sEAmVnCQD8BwQFAmF5AgRidXJuCQDMCAIFAmN1BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJPBQJjdQUDbmlsAwkAAAIFAmVnBQJlZwkAzggCBQJjawUCZWYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZG8BC2dldE9uZVRrblYyAgJkTwJkUAQCZmwJAQJkTgYFAmRPBQJkUAgFAmRvCHBheW1lbnRzCAUCZG8GY2FsbGVyCAUCZG8Mb3JpZ2luQ2FsbGVyCAUCZG8NdHJhbnNhY3Rpb25JZAQCY2sIBQJmbAJfMQQCZFkIBQJmbAJfMgkAlAoCBQJjawUCZFkCZG8BE2dldE9uZVRrblYyUkVBRE9OTFkCAmRPAmZtBAJkdwkBAmFEAAQCYlIJAJEDAgUCZHcFAXEEAmJTCQCRAwIFAmR3BQFyBAJiVAkAkQMCBQJkdwUBcwQCY0cJAQJiTQQCAAUCYlIFAmZtBQR0aGlzBAJmZggFAmNHAl8xBAJmZwgFAmNHAl8yBAJiWQkBAmJiAQUCYlMEAmNhCQECYmIBBQJiVAQCZHoJAGUCBQJiWQUCZmYEAmRBCQBlAgUCY2EFAmZnBAJmbgMJAAACBQJkTwUCYlMJAJYKBAUCZEEFAmR6BQJmZwUCZmYDCQAAAgUCZE8FAmJUCQCWCgQFAmR6BQJkQQUCZmYFAmZnCQACAQIQd3Jvbmcgb3V0QXNzZXRJZAQCZm8IBQJmbgJfMQQCZnAIBQJmbgJfMgQCZnEIBQJmbgJfMwQCZnIIBQJmbgJfNAQCZnMAAQQCZmMKAAJkRwkA/AcEBQJhTAIMY2FsY1N3YXBYVG9ZCQDMCAIJAKQDAQUCZnEJAMwIAgkApAMBBQJmbwkAzAgCCQCkAwEFAmZwCQDMCAICAAkAzAgCBQJhegkAzAgCBQFnCQDMCAIJAKQDAQUCZnMJAMwIAgUBaAUDbmlsBQNuaWwDCQABAgUCZEcCA0ludAUCZEcJAAIBCQCsAgIJAAMBCQD8BwQFAmFMAgxjYWxjU3dhcFhUb1kJAMwIAgkApAMBBQJmcQkAzAgCCQCkAwEFAmZvCQDMCAIJAKQDAQUCZnAJAMwIAgIACQDMCAIFAmF6CQDMCAIFAWcJAMwIAgkApAMBBQJmcwkAzAgCBQFoBQNuaWwFA25pbAIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJmaQkAZAIFAmZjBQJmcgQCZnQJAQJiSgEFAmZpBAJkWAgFAmZ0Al8xBAJiTAgFAmZ0Al8yAwYJAAIBCQC5CQIJAMwIAgkApAMBBQJkWAkAzAgCCQCkAwEFAmJMCQDMCAIJAKQDAQUCZmYJAMwIAgkApAMBBQJmZwkAzAgCCQCkAwEFAmZxCQDMCAIJAKQDAQUCZmMFA25pbAIBIAkAlAoCBQNuaWwJAJQKAgUCZFgFAmJMAmRvARxnZXRPbmVUa25WMldpdGhCb251c1JFQURPTkxZAgJkTwJmbQQCZHcJAQJhRAAEAmJTCQCRAwIFAmR3BQFyBAJiVAkAkQMCBQJkdwUBcwQCYlIJAJEDAgUCZHcFAXEEAmJZCQECYmIBBQJiUwQCY2EJAQJiYgEFAmJUBAJmdQoAAmRHCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZE8JAMwIAgUCZm0FA25pbAUDbmlsAwkAAQIFAmRHAgooSW50LCBJbnQpBQJkRwkAAgEJAKwCAgkAAwEJAPwHBAUEdGhpcwITZ2V0T25lVGtuVjJSRUFET05MWQkAzAgCBQJkTwkAzAgCBQJmbQUDbmlsBQNuaWwCHyBjb3VsZG4ndCBiZSBjYXN0IHRvIChJbnQsIEludCkEAmRYCAUCZnUCXzEEAmJMCAUCZnUCXzIEAmNHCQECYk0EAgAFAmJSBQJmbQUEdGhpcwQCY2kIBQJjRwJfMQQCY2oIBQJjRwJfMgQCZnYJAGQCBQJjaQUCY2oEAmVZCQBrAwkAZQIFAmRYBQJmdgUBYQUCZnYJAJQKAgUDbmlsCQCVCgMFAmRYBQJiTAUCZVkCZG8BCWdldE5vTGVzcwICZncCZngEAmNHCQECZG4BBQJkbwQCY2kIBQJjRwJfMQQCY2oIBQJjRwJfMgQCY3UIBQJjRwJfMwQCYk8IBQJjRwJfNAQCY2sIBQJjRwJfNQMJAGYCBQJmdwUCY2kJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCY2kCAyA8IAkApAMBBQJmdwMJAGYCBQJmeAUCY2oJAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJjagIDIDwgCQCkAwEFAmZ4BAJmeQkA/AcEBQJheQIEYnVybgkAzAgCBQJjdQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiTwUCY3UFA25pbAMJAAACBQJmeQUCZnkFAmNrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQ11bnN0YWtlQW5kR2V0AQJiSwQCZnoDCQECIT0CCQCQAwEIBQJkbwhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCZnoFAmZ6BAJiQQkBAmFEAAQCZkEJAQJhSAAEAmRNCQDZBAEJAJEDAgUCYkEFAXEEAmZCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJmQQUBeAIKV3Igc3QgYWRkcgQCZkMJAPwHBAUCZkICB3Vuc3Rha2UJAMwIAgkA2AQBBQJkTQkAzAgCBQJiSwUDbmlsBQNuaWwDCQAAAgUCZkMFAmZDBAJjRwkBAmJNBAkA2AQBCAUCZG8NdHJhbnNhY3Rpb25JZAkA2AQBBQJkTQUCYksIBQJkbwZjYWxsZXIEAmJXCQENcGFyc2VJbnRWYWx1ZQEIBQJjRwJfOQQCY2sIBQJjRwNfMTAEAmZEAwMJAQJhQQAGCQAAAgUCYlcFAW4JAAIBCQCsAgICCUJsb2NrZWQ6IAkApAMBBQJiVwYDCQAAAgUCZkQFAmZEBAJmRQkA/AcEBQJheQIEYnVybgkAzAgCBQJiSwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkTQUCYksFA25pbAMJAAACBQJmRQUCZkUFAmNrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmRgJkTwJkUAQCZnoDCQECIT0CCQCQAwEIBQJkbwhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCZnoFAmZ6BAJiQQkBAmFEAAQCZkEJAQJhSAAEAmRNCQDZBAEJAJEDAgUCYkEFAXEEAmZCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJmQQUBeAIKV3Igc3QgYWRkcgQCZkMJAPwHBAUCZkICB3Vuc3Rha2UJAMwIAgkA2AQBBQJkTQkAzAgCBQJmRgUDbmlsBQNuaWwDCQAAAgUCZkMFAmZDBAJmRwkBAmROBgUCZE8FAmRQCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkTQUCZkYFA25pbAgFAmRvBmNhbGxlcggFAmRvDG9yaWdpbkNhbGxlcggFAmRvDXRyYW5zYWN0aW9uSWQEAmNrCAUCZkcCXzEEAmRZCAUCZkcCXzIJAJQKAgUCY2sFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRvAQhhY3RpdmF0ZQICZkgCZkkDCQECIT0CCQClCAEIBQJkbwZjYWxsZXIJAKUIAQUCYXkJAAIBAgZkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWAAFAmZICQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUCZkkFA25pbAIHc3VjY2VzcwJkbwEEc2V0UwICZkoCZkQDCQECIT0CCQClCAEIBQJkbwZjYWxsZXIJAQJhdQIFBHRoaXMJAQJhYQAFAmVrCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmZKBQJmRAUDbmlsAmRvAQRzZXRJAgJmSgJmRAMJAQIhPQIJAKUIAQgFAmRvBmNhbGxlcgkBAmF1AgUEdGhpcwkBAmFhAAUCZWsJAMwIAgkBDEludGVnZXJFbnRyeQIFAmZKBQJmRAUDbmlsAmRvARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhRAACZG8BHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJjCQCUCgIFA25pbAkBAmJiAQUCYmMCZG8BGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJ1AmJ2AmJ6BAJmSwkBAmJ5AwUCYnUFAmJ2BQJiegkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmZLAAAJAMwIAgkApgMBCQCRAwIFAmZLAAEJAMwIAgkApgMBCQCRAwIFAmZLAAIFA25pbAJkbwEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBRgJmTAkAlAoCBQNuaWwJAQFFAgkApwMBBQFGBQJmTAJkbwEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUMBRAkAlAoCBQNuaWwJAKYDAQkBAUICBQFDBQFEAmRvAR5jYWxjUHJpY2VCaWdJbnRXcmFwcGVyUkVBRE9OTFkCAmJlAmJmCQCUCgIFA25pbAkApgMBCQECYmQCCQCnAwEFAmJlCQCnAwEFAmJmAmRvASNlc3RpbWF0ZVB1dE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQkCYk4CYmoCY20CY24CY28CY3ACZk0CY3ECY3IJAJQKAgUDbmlsCQECY2wNBQJiTgUCYmoFAmNtBQJjbgUCY28FAmNwBQJmTQUCY3EFAmNyBgcAAAIAAmRvASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYk4CZk4CYlACZk0EAmNHCQECYk0EBQJiTgUCZk4FAmJQCQERQGV4dHJOYXRpdmUoMTA2MikBBQJmTQkAlAoCBQNuaWwJAJwKCggFAmNHAl8xCAUCY0cCXzIIBQJjRwJfMwgFAmNHAl80CAUCY0cCXzUIBQJjRwJfNggFAmNHAl83CQCmAwEIBQJjRwJfOAgFAmNHAl85CAUCY0cDXzEwAmRvAQ5nZXRGZWVSRUFET05MWQAJAJQKAgUDbmlsBQJhYwECZk8BAmZQAAQCZlEEAmFzCQECZWgAAwkAAQIFAmFzAgpCeXRlVmVjdG9yBAJlbQUCYXMFAmVtAwkAAQIFAmFzAgRVbml0CAUCZk8Pc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IEAmFzBQJmTwMJAAECBQJhcwIFT3JkZXIEAmRiBQJhcwQCZlIJAQJhQgAEAmZTCQECZGEBBQJkYgQCZlQJAPQDAwgFAmRiCWJvZHlCeXRlcwkAkQMCCAUCZGIGcHJvb2ZzAAAIBQJkYg9zZW5kZXJQdWJsaWNLZXkEAmZVCQD0AwMIBQJkYglib2R5Qnl0ZXMJAJEDAggFAmRiBnByb29mcwABBQJmUgMDAwUCZlMFAmZUBwUCZlUHBgkBAmFuAwUCZlMFAmZUBQJmVQMJAAECBQJhcwIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmVpBQJhcwQCZlYJAPYDAQkBBXZhbHVlAQgFAmVpBnNjcmlwdAQCZlcJANsEAQkBBXZhbHVlAQkAnQgCBQJheQkBAmFsAAQCZlgJAPEHAQUEdGhpcwMDCQAAAgUCZlcFAmZWCQECIT0CBQJmWAUCZlYHBgkA9AMDCAUCZk8JYm9keUJ5dGVzCQCRAwIIBQJmTwZwcm9vZnMAAAUCZlEJAPQDAwgFAmZPCWJvZHlCeXRlcwkAkQMCCAUCZk8GcHJvb2ZzAAAFAmZRv73BtA==", "chainId": 84, "height": 2247803, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GvwuuUc2qfBcWizWPhNzLs6Aj4iX9mfa6Qrv32EmiqP8 Next: 2x7YKy9ozFQKZbC3G6EooypPxEKbvhYPpyFw9z3CjY5b Diff:
OldNewDifferences
11251125 let ft = bJ(fi)
11261126 let dX = ft._1
11271127 let bL = ft._2
1128- $Tuple2(nil, $Tuple6(dX, bL, ff, fg, fq, fc))
1128+ if (true)
1129+ then throw(makeString([toString(dX), toString(bL), toString(ff), toString(fg), toString(fq), toString(fc)], " "))
1130+ else $Tuple2(nil, $Tuple2(dX, bL))
11291131 }
11301132
11311133
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)
550550 let ee = if ((dO == "WAVES"))
551551 then unit
552552 else fromBase58String(dO)
553553 let ef = if ((bL > 0))
554554 then [ScriptTransfer(aC, bL, ee)]
555555 else nil
556556 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)
557557 if ((ck == ck))
558558 then {
559559 let eg = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
560560 if ((eg == eg))
561561 then $Tuple2(ck, dY)
562562 else throw("Strict value is not equal to itself.")
563563 }
564564 else throw("Strict value is not equal to itself.")
565565 }
566566 }
567567 }
568568
569569
570570 func eh () = {
571571 let as = getString(N())
572572 if ($isInstanceOf(as, "String"))
573573 then {
574574 let ei = as
575575 fromBase58String(ei)
576576 }
577577 else if ($isInstanceOf(as, "Unit"))
578578 then unit
579579 else throw("Match error")
580580 }
581581
582582
583583 func ej () = {
584584 let as = getString(O())
585585 if ($isInstanceOf(as, "String"))
586586 then {
587587 let ei = as
588588 fromBase58String(ei)
589589 }
590590 else if ($isInstanceOf(as, "Unit"))
591591 then unit
592592 else throw("Match error")
593593 }
594594
595595
596596 let ek = throw("Permission denied")
597597
598598 func el (do) = {
599599 let as = eh()
600600 if ($isInstanceOf(as, "ByteVector"))
601601 then {
602602 let em = as
603603 if ((do.callerPublicKey == em))
604604 then true
605605 else ek
606606 }
607607 else if ($isInstanceOf(as, "Unit"))
608608 then if ((do.caller == this))
609609 then true
610610 else ek
611611 else throw("Match error")
612612 }
613613
614614
615615 @Callable(do)
616616 func constructor (M) = {
617617 let en = el(do)
618618 if ((en == en))
619619 then [StringEntry(M(), M)]
620620 else throw("Strict value is not equal to itself.")
621621 }
622622
623623
624624
625625 @Callable(do)
626626 func setManager (eo) = {
627627 let en = el(do)
628628 if ((en == en))
629629 then {
630630 let ep = fromBase58String(eo)
631631 if ((ep == ep))
632632 then [StringEntry(O(), eo)]
633633 else throw("Strict value is not equal to itself.")
634634 }
635635 else throw("Strict value is not equal to itself.")
636636 }
637637
638638
639639
640640 @Callable(do)
641641 func confirmManager () = {
642642 let bI = ej()
643643 let eq = if (isDefined(bI))
644644 then true
645645 else throw("No pending manager")
646646 if ((eq == eq))
647647 then {
648648 let er = if ((do.callerPublicKey == value(bI)))
649649 then true
650650 else throw("You are not pending manager")
651651 if ((er == er))
652652 then [StringEntry(N(), toBase58String(value(bI))), DeleteEntry(O())]
653653 else throw("Strict value is not equal to itself.")
654654 }
655655 else throw("Strict value is not equal to itself.")
656656 }
657657
658658
659659
660660 @Callable(do)
661661 func put (es,et) = {
662662 let eu = aH()
663663 let ev = valueOrErrorMessage(addressFromString(eu[x]), "Wr st addr")
664664 let ew = valueOrErrorMessage(addressFromString(eu[y]), "Wr sl addr")
665665 if ((0 > es))
666666 then throw("Wrong slippage")
667667 else if ((size(do.payments) != 2))
668668 then throw("2 pmnts expd")
669669 else {
670670 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, "")
671671 let cT = ex._2
672672 let dM = ex._7
673673 let ck = ex._9
674674 let cU = ex._10
675675 let cV = ex._11
676676 let bS = ex._12
677677 let bT = ex._13
678678 let cG = invoke(ay, "emit", [cT], nil)
679679 if ((cG == cG))
680680 then {
681681 let ey = {
682682 let as = cG
683683 if ($isInstanceOf(as, "Address"))
684684 then {
685685 let ez = as
686686 invoke(ez, "emit", [cT], nil)
687687 }
688688 else unit
689689 }
690690 if ((ey == ey))
691691 then {
692692 let eA = if ((cU > 0))
693693 then invoke(ew, "put", nil, [AttachedPayment(bS, cU)])
694694 else nil
695695 if ((eA == eA))
696696 then {
697697 let eB = if ((cV > 0))
698698 then invoke(ew, "put", nil, [AttachedPayment(bT, cV)])
699699 else nil
700700 if ((eB == eB))
701701 then {
702702 let eC = if (et)
703703 then {
704704 let eD = invoke(ev, "stake", nil, [AttachedPayment(dM, cT)])
705705 if ((eD == eD))
706706 then nil
707707 else throw("Strict value is not equal to itself.")
708708 }
709709 else [ScriptTransfer(do.caller, cT, dM)]
710710 (ck ++ eC)
711711 }
712712 else throw("Strict value is not equal to itself.")
713713 }
714714 else throw("Strict value is not equal to itself.")
715715 }
716716 else throw("Strict value is not equal to itself.")
717717 }
718718 else throw("Strict value is not equal to itself.")
719719 }
720720 }
721721
722722
723723
724724 @Callable(do)
725725 func putOneTkn (dI,dJ,eE,bj,et) = {
726726 let bA = aH()
727727 let ev = valueOrErrorMessage(addressFromString(bA[x]), "Wr st addr")
728728 let ew = valueOrErrorMessage(addressFromString(bA[y]), "Wr sl addr")
729729 let eF = valueOrErrorMessage(addressFromString(bA[z]), "Wr gwx addr")
730730 let eG = aD()
731731 let bS = eG[r]
732732 let bT = eG[s]
733733 let bU = parseIntValue(eG[t])
734734 let bV = parseIntValue(eG[u])
735735 let eH = valueOrElse(getString(this, aa()), "")
736736 let bQ = if ((eH == toString(do.caller)))
737737 then do.originCaller
738738 else do.caller
739739 if (if (if (if ((0 >= bj))
740740 then true
741741 else (0 >= dI))
742742 then true
743743 else (0 >= dJ))
744744 then true
745745 else (0 >= eE))
746746 then throw("Wrong params")
747747 else if ((size(do.payments) != 1))
748748 then throw("1 pmnt expd")
749749 else {
750750 let dp = value(do.payments[0])
751751 let bO = toBase58String(value(dp.assetId))
752752 let eI = dp.amount
753753 let eJ = bJ(eI)
754754 let cu = eJ._1
755755 let bL = eJ._2
756756 if ((10000000 > eI))
757757 then throw("Wrong pmt amt")
758758 else {
759759 let bY = bb(bS)
760760 let ca = bb(bT)
761761 let eK = if ((bO == bS))
762762 then if (if ((eI > bY))
763763 then true
764764 else (dI > cu))
765765 then throw("invalid payment amount")
766766 else $Tuple6((bY - eI), ca, (cu - dI), dJ, 0, 0)
767767 else if ((bO == bT))
768768 then if (if ((eI > ca))
769769 then true
770770 else (dJ > cu))
771771 then throw("invalid payment amount")
772772 else $Tuple6(bY, (ca - eI), 0, 0, (cu - dJ), dI)
773773 else throw("wrong pmtAssetId")
774774 let dz = eK._1
775775 let dA = eK._2
776776 let eL = eK._3
777777 let eM = eK._4
778778 let eN = eK._5
779779 let eO = eK._6
780780 let bo = invoke(eF, "calcD", [toString(dz), toString(dA), az, g, h], nil)
781781 let bn = invoke(eF, "calcD", [toString(toBigInt(((dz + eL) - eO))), toString(toBigInt(((dA + eN) - eM))), az, g, h], nil)
782782 let eP = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
783783 if ((eP == eP))
784784 then {
785785 let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(fromBase58String(bS), dI), AttachedPayment(fromBase58String(bT), dJ), bj, true, true, true, cu, bO)
786786 let dL = dK._2
787787 let dM = dK._7
788788 let ck = dK._9
789789 let cU = dK._10
790790 let cV = dK._11
791791 let eQ = bg(toBigInt(dL), toBigInt(eE), toBigInt(bj))
792792 let cT = toInt(eQ._2)
793793 let ex = invoke(ay, "emit", [cT], nil)
794794 if ((ex == ex))
795795 then {
796796 let ey = {
797797 let as = ex
798798 if ($isInstanceOf(as, "Address"))
799799 then {
800800 let ez = as
801801 invoke(ez, "emit", [cT], nil)
802802 }
803803 else unit
804804 }
805805 if ((ey == ey))
806806 then {
807807 let eA = if ((cU > 0))
808808 then invoke(ew, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
809809 else nil
810810 if ((eA == eA))
811811 then {
812812 let eB = if ((cV > 0))
813813 then invoke(ew, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
814814 else nil
815815 if ((eB == eB))
816816 then {
817817 let eC = if (et)
818818 then {
819819 let eD = invoke(ev, "stake", nil, [AttachedPayment(dM, cT)])
820820 if ((eD == eD))
821821 then nil
822822 else throw("Strict value is not equal to itself.")
823823 }
824824 else [ScriptTransfer(do.caller, cT, dM)]
825825 let ef = if ((bL > 0))
826826 then [ScriptTransfer(aC, bL, fromBase58String(bO))]
827827 else nil
828828 ((ck ++ eC) ++ ef)
829829 }
830830 else throw("Strict value is not equal to itself.")
831831 }
832832 else throw("Strict value is not equal to itself.")
833833 }
834834 else throw("Strict value is not equal to itself.")
835835 }
836836 else throw("Strict value is not equal to itself.")
837837 }
838838 else throw("Strict value is not equal to itself.")
839839 }
840840 }
841841 }
842842
843843
844844
845845 @Callable(do)
846846 func putOneTknV2 (dP,et) = if ((size(do.payments) != 1))
847847 then throw("1 pmnt expd")
848848 else {
849849 let dw = aD()
850850 let bS = dw[r]
851851 let bT = dw[s]
852852 let dT = parseIntValue(dw[t])
853853 let dU = parseIntValue(dw[u])
854854 let bQ = if ((do.caller == this))
855855 then do.originCaller
856856 else do.caller
857857 let dp = value(do.payments[0])
858858 let bO = toBase58String(value(dp.assetId))
859859 let cu = dp.amount
860860 if ((10000000 > cu))
861861 then throw("Wrong pmt amt")
862862 else {
863863 let cG = du(cu, bO, toString(bQ), toBase58String(do.transactionId))
864864 let dL = cG._2
865865 let dM = cG._7
866866 let ck = cG._9
867867 let cU = cG._10
868868 let cV = cG._11
869869 let cT = if (if ((dP > 0))
870870 then (dP > dL)
871871 else false)
872872 then throw(makeString(["amount to receive is less than ", toString(dP)], ""))
873873 else dL
874874 let ex = invoke(ay, "emit", [cT], nil)
875875 if ((ex == ex))
876876 then {
877877 let ey = {
878878 let as = ex
879879 if ($isInstanceOf(as, "Address"))
880880 then {
881881 let ez = as
882882 invoke(ez, "emit", [cT], nil)
883883 }
884884 else unit
885885 }
886886 if ((ey == ey))
887887 then {
888888 let eA = if ((cU > 0))
889889 then invoke(aK, "put", nil, [AttachedPayment(fromBase58String(bS), cU)])
890890 else nil
891891 if ((eA == eA))
892892 then {
893893 let eB = if ((cV > 0))
894894 then invoke(aK, "put", nil, [AttachedPayment(fromBase58String(bT), cV)])
895895 else nil
896896 if ((eB == eB))
897897 then {
898898 let eC = if (et)
899899 then {
900900 let eD = invoke(aJ, "stake", nil, [AttachedPayment(dM, cT)])
901901 if ((eD == eD))
902902 then nil
903903 else throw("Strict value is not equal to itself.")
904904 }
905905 else [ScriptTransfer(do.caller, cT, dM)]
906906 let bL = bJ(cu)._2
907907 let ef = if ((bL > 0))
908908 then [ScriptTransfer(aC, bL, fromBase58String(bO))]
909909 else nil
910910 $Tuple2(((ck ++ eC) ++ ef), cT)
911911 }
912912 else throw("Strict value is not equal to itself.")
913913 }
914914 else throw("Strict value is not equal to itself.")
915915 }
916916 else throw("Strict value is not equal to itself.")
917917 }
918918 else throw("Strict value is not equal to itself.")
919919 }
920920 }
921921
922922
923923
924924 @Callable(do)
925925 func putOneTknV2READONLY (eR,eS) = {
926926 let cG = du(eR, eS, "", "")
927927 let dL = cG._2
928928 let dM = cG._7
929929 let ck = cG._9
930930 let cU = cG._10
931931 let cV = cG._11
932932 $Tuple2(nil, dL)
933933 }
934934
935935
936936
937937 @Callable(do)
938938 func putOneTknV2WithBonusREADONLY (eR,eS) = {
939939 let dw = aD()
940940 let bS = dw[r]
941941 let bT = dw[s]
942942 let cG = du(eR, eS, "", "")
943943 let dL = cG._2
944944 let cd = cG._3
945945 let eT = cG._6
946946 let dM = cG._7
947947 let bY = bb(bS)
948948 let ca = bb(bT)
949949 let eU = fraction(ca, a, bY)
950950 let eV = fraction(eR, a, (eU + a))
951951 let eW = (eR - eV)
952952 let eX = fraction(eT, eW, ca)
953953 let eY = fraction((dL - eX), a, eX)
954954 let bL = bJ(eR)._2
955955 $Tuple2(nil, $Tuple3(dL, bL, eY))
956956 }
957957
958958
959959
960960 @Callable(do)
961961 func putForFree (eZ) = if ((0 > eZ))
962962 then throw("Wrong slpg")
963963 else if ((size(do.payments) != 2))
964964 then throw("2 pmnts expd")
965965 else {
966966 let dK = dq(toString(do.caller), toBase58String(do.transactionId), AttachedPayment(value(do.payments[0]).assetId, value(do.payments[0]).amount), do.payments[1], eZ, false, false, true, 0, "")
967967 dK._9
968968 }
969969
970970
971971
972972 @Callable(do)
973973 func get () = {
974974 let cG = dn(do)
975975 let fa = cG._1
976976 let cj = cG._2
977977 let cu = cG._3
978978 let bO = cG._4
979979 let ck = cG._5
980980 let fb = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
981981 if ((fb == fb))
982982 then ck
983983 else throw("Strict value is not equal to itself.")
984984 }
985985
986986
987987
988988 @Callable(do)
989989 func getOneTkn (fc,fd,fe,dO,bj) = if ((size(do.payments) != 1))
990990 then throw("1 pmnt expd")
991991 else {
992992 let bA = aD()
993993 let bR = bA[q]
994994 let bS = bA[r]
995995 let bT = bA[s]
996996 let bU = parseIntValue(bA[t])
997997 let bV = parseIntValue(bA[u])
998998 let bW = bA[p]
999999 let eu = aH()
10001000 let eF = valueOrErrorMessage(addressFromString(eu[z]), "Wr sl addr")
10011001 let dp = value(do.payments[0])
10021002 let eH = valueOrElse(getString(this, aa()), "")
10031003 let bQ = if ((eH == toString(do.caller)))
10041004 then do.originCaller
10051005 else do.caller
10061006 let bN = toBase58String(do.transactionId)
10071007 let bO = value(dp.assetId)
10081008 let cu = dp.amount
10091009 if ((1000000000 > cu))
10101010 then throw("Min pmt 10 LP")
10111011 else if (if (if ((0 > bj))
10121012 then true
10131013 else (0 > fc))
10141014 then true
10151015 else (0 > fe))
10161016 then throw("Wrong params")
10171017 else if ((bR != toBase58String(bO)))
10181018 then throw("Wrong LP")
10191019 else {
10201020 let cG = bM(toBase58String(do.transactionId), toBase58String(bO), cu, do.caller)
10211021 let ff = cG._1
10221022 let fg = cG._2
10231023 let bY = bb(bS)
10241024 let ca = bb(bT)
10251025 let fh = if ((dO == bS))
10261026 then $Tuple7((bY - ff), (ca - fg), fc, fg, 0, 0, (ff + fc))
10271027 else if ((dO == bT))
10281028 then $Tuple7((bY - ff), (ca - fg), 0, 0, fc, ff, (fg + fc))
10291029 else throw("wrong outAssetId")
10301030 let dz = fh._1
10311031 let dA = fh._2
10321032 let eL = fh._3
10331033 let eM = fh._4
10341034 let eN = fh._5
10351035 let eO = fh._6
10361036 let fi = fh._7
10371037 if (if ((0 > eL))
10381038 then true
10391039 else (0 > eN))
10401040 then throw("Wrong calc")
10411041 else {
10421042 let bo = invoke(eF, "calcD", [toString(dz), toString(dA), az, g, h], nil)
10431043 let bn = invoke(eF, "calcD", [toString(((dz - eL) + eO)), toString(((dA + eM) - eN)), az, g, h], nil)
10441044 let eP = bm(parseBigIntValue(ar(bn)), parseBigIntValue(ar(bo)), f)
10451045 if ((eP == eP))
10461046 then {
10471047 let dX = bJ(fi)._1
10481048 let fj = bg(toBigInt(dX), toBigInt(fe), toBigInt(bj))
10491049 if ((fj == fj))
10501050 then {
10511051 let fk = if ((dO == bS))
10521052 then $Tuple2(toInt(fj._2), 0)
10531053 else $Tuple2(0, toInt(fj._2))
10541054 let ea = fk._1
10551055 let eb = fk._2
10561056 let dY = (ea + eb)
10571057 let bL = (fi - dX)
10581058 let ee = if ((dO == "WAVES"))
10591059 then unit
10601060 else fromBase58String(dO)
10611061 let ef = if ((bL > 0))
10621062 then [ScriptTransfer(aC, bL, ee)]
10631063 else nil
10641064 let ec = bd(B(ca, bV), B(bY, bU))
10651065 let ed = E(ec, a)
10661066 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)]
10671067 if ((ck == ck))
10681068 then {
10691069 let eg = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
10701070 if ((eg == eg))
10711071 then (ck ++ ef)
10721072 else throw("Strict value is not equal to itself.")
10731073 }
10741074 else throw("Strict value is not equal to itself.")
10751075 }
10761076 else throw("Strict value is not equal to itself.")
10771077 }
10781078 else throw("Strict value is not equal to itself.")
10791079 }
10801080 }
10811081 }
10821082
10831083
10841084
10851085 @Callable(do)
10861086 func getOneTknV2 (dO,dP) = {
10871087 let fl = dN(dO, dP, do.payments, do.caller, do.originCaller, do.transactionId)
10881088 let ck = fl._1
10891089 let dY = fl._2
10901090 $Tuple2(ck, dY)
10911091 }
10921092
10931093
10941094
10951095 @Callable(do)
10961096 func getOneTknV2READONLY (dO,fm) = {
10971097 let dw = aD()
10981098 let bR = dw[q]
10991099 let bS = dw[r]
11001100 let bT = dw[s]
11011101 let cG = bM("", bR, fm, this)
11021102 let ff = cG._1
11031103 let fg = cG._2
11041104 let bY = bb(bS)
11051105 let ca = bb(bT)
11061106 let dz = (bY - ff)
11071107 let dA = (ca - fg)
11081108 let fn = if ((dO == bS))
11091109 then $Tuple4(dA, dz, fg, ff)
11101110 else if ((dO == bT))
11111111 then $Tuple4(dz, dA, ff, fg)
11121112 else throw("wrong outAssetId")
11131113 let fo = fn._1
11141114 let fp = fn._2
11151115 let fq = fn._3
11161116 let fr = fn._4
11171117 let fs = 1
11181118 let fc = {
11191119 let dG = invoke(aL, "calcSwapXToY", [toString(fq), toString(fo), toString(fp), "", az, g, toString(fs), h], nil)
11201120 if ($isInstanceOf(dG, "Int"))
11211121 then dG
11221122 else throw(($getType(invoke(aL, "calcSwapXToY", [toString(fq), toString(fo), toString(fp), "", az, g, toString(fs), h], nil)) + " couldn't be cast to Int"))
11231123 }
11241124 let fi = (fc + fr)
11251125 let ft = bJ(fi)
11261126 let dX = ft._1
11271127 let bL = ft._2
1128- $Tuple2(nil, $Tuple6(dX, bL, ff, fg, fq, fc))
1128+ if (true)
1129+ then throw(makeString([toString(dX), toString(bL), toString(ff), toString(fg), toString(fq), toString(fc)], " "))
1130+ else $Tuple2(nil, $Tuple2(dX, bL))
11291131 }
11301132
11311133
11321134
11331135 @Callable(do)
11341136 func getOneTknV2WithBonusREADONLY (dO,fm) = {
11351137 let dw = aD()
11361138 let bS = dw[r]
11371139 let bT = dw[s]
11381140 let bR = dw[q]
11391141 let bY = bb(bS)
11401142 let ca = bb(bT)
11411143 let fu = {
11421144 let dG = invoke(this, "getOneTknV2READONLY", [dO, fm], nil)
11431145 if ($isInstanceOf(dG, "(Int, Int)"))
11441146 then dG
11451147 else throw(($getType(invoke(this, "getOneTknV2READONLY", [dO, fm], nil)) + " couldn't be cast to (Int, Int)"))
11461148 }
11471149 let dX = fu._1
11481150 let bL = fu._2
11491151 let cG = bM("", bR, fm, this)
11501152 let ci = cG._1
11511153 let cj = cG._2
11521154 let fv = (ci + cj)
11531155 let eY = fraction((dX - fv), a, fv)
11541156 $Tuple2(nil, $Tuple3(dX, bL, eY))
11551157 }
11561158
11571159
11581160
11591161 @Callable(do)
11601162 func getNoLess (fw,fx) = {
11611163 let cG = dn(do)
11621164 let ci = cG._1
11631165 let cj = cG._2
11641166 let cu = cG._3
11651167 let bO = cG._4
11661168 let ck = cG._5
11671169 if ((fw > ci))
11681170 then throw(((("Failed: " + toString(ci)) + " < ") + toString(fw)))
11691171 else if ((fx > cj))
11701172 then throw(((("Failed: " + toString(cj)) + " < ") + toString(fx)))
11711173 else {
11721174 let fy = invoke(ay, "burn", [cu], [AttachedPayment(bO, cu)])
11731175 if ((fy == fy))
11741176 then ck
11751177 else throw("Strict value is not equal to itself.")
11761178 }
11771179 }
11781180
11791181
11801182
11811183 @Callable(do)
11821184 func unstakeAndGet (bK) = {
11831185 let fz = if ((size(do.payments) != 0))
11841186 then throw("No pmnts expd")
11851187 else true
11861188 if ((fz == fz))
11871189 then {
11881190 let bA = aD()
11891191 let fA = aH()
11901192 let dM = fromBase58String(bA[q])
11911193 let fB = valueOrErrorMessage(addressFromString(fA[x]), "Wr st addr")
11921194 let fC = invoke(fB, "unstake", [toBase58String(dM), bK], nil)
11931195 if ((fC == fC))
11941196 then {
11951197 let cG = bM(toBase58String(do.transactionId), toBase58String(dM), bK, do.caller)
11961198 let bW = parseIntValue(cG._9)
11971199 let ck = cG._10
11981200 let fD = if (if (aA())
11991201 then true
12001202 else (bW == n))
12011203 then throw(("Blocked: " + toString(bW)))
12021204 else true
12031205 if ((fD == fD))
12041206 then {
12051207 let fE = invoke(ay, "burn", [bK], [AttachedPayment(dM, bK)])
12061208 if ((fE == fE))
12071209 then ck
12081210 else throw("Strict value is not equal to itself.")
12091211 }
12101212 else throw("Strict value is not equal to itself.")
12111213 }
12121214 else throw("Strict value is not equal to itself.")
12131215 }
12141216 else throw("Strict value is not equal to itself.")
12151217 }
12161218
12171219
12181220
12191221 @Callable(do)
12201222 func unstakeAndGetOneTkn (fF,dO,dP) = {
12211223 let fz = if ((size(do.payments) != 0))
12221224 then throw("No pmnts expd")
12231225 else true
12241226 if ((fz == fz))
12251227 then {
12261228 let bA = aD()
12271229 let fA = aH()
12281230 let dM = fromBase58String(bA[q])
12291231 let fB = valueOrErrorMessage(addressFromString(fA[x]), "Wr st addr")
12301232 let fC = invoke(fB, "unstake", [toBase58String(dM), fF], nil)
12311233 if ((fC == fC))
12321234 then {
12331235 let fG = dN(dO, dP, [AttachedPayment(dM, fF)], do.caller, do.originCaller, do.transactionId)
12341236 let ck = fG._1
12351237 let dY = fG._2
12361238 $Tuple2(ck, dY)
12371239 }
12381240 else throw("Strict value is not equal to itself.")
12391241 }
12401242 else throw("Strict value is not equal to itself.")
12411243 }
12421244
12431245
12441246
12451247 @Callable(do)
12461248 func activate (fH,fI) = if ((toString(do.caller) != toString(ay)))
12471249 then throw("denied")
12481250 else $Tuple2([StringEntry(X(), fH), StringEntry(Y(), fI)], "success")
12491251
12501252
12511253
12521254 @Callable(do)
12531255 func setS (fJ,fD) = if ((toString(do.caller) != au(this, aa())))
12541256 then ek
12551257 else [StringEntry(fJ, fD)]
12561258
12571259
12581260
12591261 @Callable(do)
12601262 func setI (fJ,fD) = if ((toString(do.caller) != au(this, aa())))
12611263 then ek
12621264 else [IntegerEntry(fJ, fD)]
12631265
12641266
12651267
12661268 @Callable(do)
12671269 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aD())
12681270
12691271
12701272
12711273 @Callable(do)
12721274 func getAccBalanceWrapperREADONLY (bc) = $Tuple2(nil, bb(bc))
12731275
12741276
12751277
12761278 @Callable(do)
12771279 func calcPricesWrapperREADONLY (bu,bv,bz) = {
12781280 let fK = by(bu, bv, bz)
12791281 $Tuple2(nil, [toString(fK[0]), toString(fK[1]), toString(fK[2])])
12801282 }
12811283
12821284
12831285
12841286 @Callable(do)
12851287 func fromX18WrapperREADONLY (F,fL) = $Tuple2(nil, E(parseBigIntValue(F), fL))
12861288
12871289
12881290
12891291 @Callable(do)
12901292 func toX18WrapperREADONLY (C,D) = $Tuple2(nil, toString(B(C, D)))
12911293
12921294
12931295
12941296 @Callable(do)
12951297 func calcPriceBigIntWrapperREADONLY (be,bf) = $Tuple2(nil, toString(bd(parseBigIntValue(be), parseBigIntValue(bf))))
12961298
12971299
12981300
12991301 @Callable(do)
13001302 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, ""))
13011303
13021304
13031305
13041306 @Callable(do)
13051307 func estimateGetOperationWrapperREADONLY (bN,fN,bP,fM) = {
13061308 let cG = bM(bN, fN, bP, addressFromStringValue(fM))
13071309 $Tuple2(nil, $Tuple10(cG._1, cG._2, cG._3, cG._4, cG._5, cG._6, cG._7, toString(cG._8), cG._9, cG._10))
13081310 }
13091311
13101312
13111313
13121314 @Callable(do)
13131315 func getFeeREADONLY () = $Tuple2(nil, ac)
13141316
13151317
13161318 @Verifier(fO)
13171319 func fP () = {
13181320 let fQ = {
13191321 let as = eh()
13201322 if ($isInstanceOf(as, "ByteVector"))
13211323 then {
13221324 let em = as
13231325 em
13241326 }
13251327 else if ($isInstanceOf(as, "Unit"))
13261328 then fO.senderPublicKey
13271329 else throw("Match error")
13281330 }
13291331 let as = fO
13301332 if ($isInstanceOf(as, "Order"))
13311333 then {
13321334 let db = as
13331335 let fR = aB()
13341336 let fS = da(db)
13351337 let fT = sigVerify(db.bodyBytes, db.proofs[0], db.senderPublicKey)
13361338 let fU = sigVerify(db.bodyBytes, db.proofs[1], fR)
13371339 if (if (if (fS)
13381340 then fT
13391341 else false)
13401342 then fU
13411343 else false)
13421344 then true
13431345 else an(fS, fT, fU)
13441346 }
13451347 else if ($isInstanceOf(as, "SetScriptTransaction"))
13461348 then {
13471349 let ei = as
13481350 let fV = blake2b256(value(ei.script))
13491351 let fW = fromBase64String(value(getString(ay, al())))
13501352 let fX = scriptHash(this)
13511353 if (if ((fW == fV))
13521354 then (fX != fV)
13531355 else false)
13541356 then true
13551357 else sigVerify(fO.bodyBytes, fO.proofs[0], fQ)
13561358 }
13571359 else sigVerify(fO.bodyBytes, fO.proofs[0], fQ)
13581360 }
13591361

github/deemru/w8io/c3f4982 
120.74 ms