tx · G652on5HaU5QzHkU3KEz1qUD9DwQz18dsvLF6ytBzjVd

3MtP3m8hWMxYcyDxXB6n299KrsLLyT8ehni:  -0.03600000 Waves

2023.01.19 15:19 [2411805] smart account 3MtP3m8hWMxYcyDxXB6n299KrsLLyT8ehni > SELF 0.00000000 Waves

{ "type": 13, "id": "G652on5HaU5QzHkU3KEz1qUD9DwQz18dsvLF6ytBzjVd", "fee": 3600000, "feeAssetId": null, "timestamp": 1674130846063, "version": 1, "sender": "3MtP3m8hWMxYcyDxXB6n299KrsLLyT8ehni", "senderPublicKey": "BRyVaCURUMe7ssUbXucteig1g44bGwWirJQzugKahUQ1", "proofs": [ "5u5nqEpLtfJ6Fbj46HiL7wWKYSDG4Dvnvj5YUWoP53rcgoJ17fLq46oUWpmaJfu5MpLoBZd6kkpPP2MsuZvbQfSp" ], "script": "base64:BgLtKAgCEgMKAQgSAwoBCBIAEgQKAgEEEgQKAgEEEgMKAQESABIECgIIARIAEgQKAggBEgQKAggBEgQKAgEBEgMKAQESBQoDAQEBEgUKAwEIARIECgIBCBIECgIBCBIECgIICBIECgIICBIECgIIARIAEgMKAQgSBQoDAQEBEgQKAggBEgQKAgEBEgQKAggIEgsKCQgBAQIBAggEBBIGCgQICAEIIgZzY2FsZTgiDHNjYWxlOEJpZ0ludCIHc2NhbGUxOCIKemVyb0JpZ0ludCIEYmlnMCIEYmlnMSIEYmlnMiIEYmlnMyIEYmlnNCIKc2xpcHBhZ2U0RCILd2F2ZXNTdHJpbmciBUFtdWx0IgVEY29udiIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIKUG9vbFB1dERpcyIOUG9vbE1hdGNoZXJEaXMiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiCWlkeFBvb2xTdCIJaWR4TFBBc0lkIglpZHhBbUFzSWQiCWlkeFByQXNJZCILaWR4QW10QXNEY20iDWlkeFByaWNlQXNEY20iC2lkeElBbXRBc0lkIg1pZHhJUHJpY2VBc0lkIg9pZHhGYWN0U3Rha0NudHIiEmlkeEZhY3RvcnlSZXN0Q250ciIQaWR4RmFjdFNsaXBwQ250ciIRaWR4RmFjdEd3eFJld0NudHIiCmZlZURlZmF1bHQiAnQxIgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0Igh0MUJpZ0ludCICZjEiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igxmcm9tWDE4Um91bmQiBXJvdW5kIgJ0MiICZjIiAnRzIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIBdCIDcGF1IgJ1YSIEdHhJZCIDZ2F1IgJhYSICcGEiA2FtcCIDYWRhIgZrZXlGZWUiA2ZlZSIGa2V5RExwIhVrZXlETHBSZWZyZXNoZWRIZWlnaHQiEmtleURMcFJlZnJlc2hEZWxheSIWZExwUmVmcmVzaERlbGF5RGVmYXVsdCIPZExwUmVmcmVzaERlbGF5IgRmY2ZnIgRtdHBrIgJwYyIGaUFtdEFzIgVpUHJBcyIDbWJhIgViQVN0ciIDYXBzIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIgN0b2UiA29yViIGc2VuZHJWIgZtYXRjaFYiBHN0cmYiBGFkZHIiA2tleSIEaW50ZiIIdGhyb3dFcnIiA21zZyIGZm10RXJyIgNmY2EiBWluRmVlIgFAIgZvdXRGZWUiAUEiA2lncyICbXAiE2ZlZUNvbGxlY3RvckFkZHJlc3MiA2dwYyIFYW10QXMiB3ByaWNlQXMiCGlQcmljZUFzIgxwYXJzZUFzc2V0SWQiBWlucHV0Ig9hc3NldElkVG9TdHJpbmciD3BhcnNlUG9vbENvbmZpZyIKcG9vbENvbmZpZyIQcG9vbENvbmZpZ1BhcnNlZCILJHQwNzg0NzgwNzYiDmNmZ1Bvb2xBZGRyZXNzIg1jZmdQb29sU3RhdHVzIgxjZmdMcEFzc2V0SWQiEGNmZ0Ftb3VudEFzc2V0SWQiD2NmZ1ByaWNlQXNzZXRJZCIWY2ZnQW1vdW50QXNzZXREZWNpbWFscyIVY2ZnUHJpY2VBc3NldERlY2ltYWxzIhJjZmdJbkFtb3VudEFzc2VkSWQiEWNmZ0luUHJpY2VBc3NldElkIgNnZmMiDWZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIPc2xpcGFnZUNvbnRyYWN0Igtnd3hDb250cmFjdCIMcmVzdENvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiCnNsaXBCeVVzZXIiDHNsaXBwYWdlUmVhbCIIdHhIZWlnaHQiC3R4VGltZXN0YW1wIgxzbGlwYWdlQW1BbXQiDHNsaXBhZ2VQckFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIgRjcGJpIghwckFtdFgxOCIIYW1BbXRYMTgiBWNwYmlyIgN2YWQiAkExIgJBMiIIc2xpcHBhZ2UiBGRpZmYiBHBhc3MiAnZkIgJEMSICRDAiBHNscGciBGZhaWwiA3BjcCIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10IgthbXRBc0FtdFgxOCIKcHJBc0FtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiCGFtdEFzRGNtIgdwckFzRGNtIghwcmljZVgxOCIIbHBBbXRYMTgiDWxwUHJJbkFtQXNYMTgiDWxwUHJJblByQXNYMTgiD2NhbGN1bGF0ZVByaWNlcyIBcCIHdGFrZUZlZSIGYW1vdW50IglmZWVBbW91bnQiA2VnbyIGdHhJZDU4IgpwbXRBc3NldElkIghwbXRMcEFtdCILdXNlckFkZHJlc3MiBGxwSWQiBGFtSWQiBHBySWQiBWFtRGNtIgVwckRjbSIDc3RzIgdscEVtaXNzIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiCmxwRW1pc3NYMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIDZXBvIgdpbkFtQW10IgZpbkFtSWQiB2luUHJBbXQiBmluUHJJZCIGaXNFdmFsIgZlbWl0THAiCmlzT25lQXNzZXQiEHZhbGlkYXRlU2xpcHBhZ2UiBnBtdEFtdCIFcG10SWQiB2FtSWRTdHIiB3BySWRTdHIiCWluQW1JZFN0ciIJaW5QcklkU3RyIgZhbXREY20iCHByaWNlRGNtIgRscEVtIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgFyIgtzbGlwcGFnZVgxOCIPc2xpcHBhZ2VSZWFsWDE4Ig1scEVtaXNzaW9uWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIg0kdDAxODcyNjE5MDcxIgp3cml0ZUFtQW10Igp3cml0ZVByQW10Igtjb21tb25TdGF0ZSIEZ2V0RCICeHAiA3hwMCIDeHAxIgFzIgFhIgNhbm4iC3hwMF94cDFfbl9uIgVhbm5fcyIFYW5uXzEiCWNhbGNETmV4dCIBZCICZGQiA2RkZCICZHAiBGNhbGMiA2FjYyIBaSIFZE5leHQiCGREaWZmUmF3IgVkRGlmZiIDYXJyIg0kdDAyMDk3ODIxMDI2IgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIFZm91bmQiBWdldFlEIgFEIgFuIgF4IgphUHJlY2lzaW9uIgFjIgFiIgNjdXIiDSR0MDIxNTE4MjE1MzgiAXkiBXlOZXh0IgV5RGlmZiINJHQwMjE4NDUyMTg5MiIHY2FsY0RMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIgpscEVtaXNzaW9uIgp1cGRhdGVkRExwIg5jYWxjQ3VycmVudERMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50RExwIhJyZWZyZXNoRExwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRETHAiBm9sZERMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIzOTMzMjQxNDUiA2RMcCINJHQwMjQ0NzUyNDU3NSINdW51c2VkQWN0aW9ucyIGZExwTmV3Igxpc09yZGVyVmFsaWQiAmNnIgNwbXQiAmNwIgZjYWxsZXIiB2FtQXNQbXQiB3ByQXNQbXQiDWNhbGNQdXRPbmVUa24iCXBtdEFtdFJhdyILd2l0aFRha2VGZWUiDWNoZWNoRW1pc3Npb24iDSR0MDI2ODQxMjczMDMiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIg0kdDAyNzMwOTI3NDg1IgthbUFtb3VudFJhdyILcHJBbW91bnRSYXciDSR0MDI3NDg5Mjc3NDMiCGFtQW1vdW50IghwckFtb3VudCIMYW1CYWxhbmNlTmV3IgxwckJhbGFuY2VOZXciBmNoZWNrRCIIbHBBbW91bnQiDnBvb2xQcm9wb3J0aW9uIg9hbW91bnRBc3NldFBhcnQiDnByaWNlQXNzZXRQYXJ0IglscEFtdEJvdGgiBWJvbnVzIhNnZXRPbmVUa25WMkludGVybmFsIgpvdXRBc3NldElkIgxtaW5PdXRBbW91bnQiCHBheW1lbnRzIgxvcmlnaW5DYWxsZXIiDXRyYW5zYWN0aW9uSWQiCmFtRGVjaW1hbHMiCnByRGVjaW1hbHMiCnBvb2xTdGF0dXMiDSR0MDI5NzkzMjk5MDQiCHRvdGFsR2V0Igt0b3RhbEFtb3VudCINJHQwMzAwOTQzMDQwMSIFb3V0QW0iBW91dFByIghjdXJQclgxOCIFY3VyUHIiEW91dEFzc2V0SWRPcldhdmVzIhBzZW5kRmVlVG9NYXRjaGVyIgRidXJuIg0kdDAzMTE4NjMxNTM2IhBmZWVBbW91bnRGb3JDYWxjIhBvdXRJbkFtb3VudEFzc2V0Ig0kdDAzMTUzOTMxNjQ3IhFyZWZyZXNoRExwQWN0aW9ucyIRaXNVcGRhdGVkRExwVmFsaWQiAW0iByRtYXRjaDAiAnBtIgJwZCIJaXNNYW5hZ2VyIgJwayICbW0iF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgJjbSIDaHBtIgNjcG0iBHNsaXAiCWF1dG9TdGFrZSIHZmFjdENmZyILc3Rha2luZ0NudHIiCHNsaXBDbnRyIgphbUFzc2V0UG10IgpwckFzc2V0UG10IgFlIglscEFzc2V0SWQiAmVsIgZsZWdhY3kiAnNhIgJzcCIIbHBUcm5zZnIiAnNzIg0kdDAzNTc5NjM1OTM4IgVjaGVjayIUbHBBc3NldEVtaXNzaW9uQWZ0ZXIiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg1pc1B1dERpc2FibGVkIgZjaGVja3MiDSR0MDM3NTc5Mzc3MzciB2VzdGltTFAiDSR0MDM4NTUyMzg5MDEiFHBheW1lbnRJbkFtb3VudEFzc2V0Ig0kdDAzODkwNDM5MDEyIgdtYXhTbHBnIgZlc3RQdXQiDSR0MDQwMDQyNDAxMDciCW91dEFtdEFtdCINJHQwNDEyODA0MTM2MiINaXNHZXREaXNhYmxlZCINJHQwNDE5ODA0MjEzNSIYbGFzdFJlZnJlc2hlZEJsb2NrSGVpZ2h0Ih1jaGVja0xhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCINJHQwNDI2NTk0MjcyMyIQZExwVXBkYXRlQWN0aW9ucyINbHBBc3NldEFtb3VudCIFaW5kZXgiBG5ld1kiAmR5Igt0b3RhbEdldFJhdyINJHQwNDM2NTM0MzcwOCINJHQwNDQwODM0NDE5OCIOc3VtT2ZHZXRBc3NldHMiEm5vTGVzc1RoZW5BbXRBc3NldCIUbm9MZXNzVGhlblByaWNlQXNzZXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5Ig0kdDA0NTM2NDQ1NDQ1Ig1jaGVja1BheW1lbnRzIgpmYWN0b3J5Q2ZnIgdzdGFraW5nIgp1bnN0YWtlSW52IgF2IgVidXJuQSINJHQwNDY0NzI0NjU1MyINdW5zdGFrZUFtb3VudCIVbm9MZXNzVGhlbkFtb3VudEFzc2V0IgNyZXMiDGNoZWNrQW1vdW50cyINJHQwNDc4MDQ0Nzg4NSINJHQwNDg3ODA0ODk2OCIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiDSR0MDQ5MDk2NDkxOTkiDSR0MDQ5MzQ3NDk0NTEiCGFtdEFzU3RyIgdwckFzU3RyIgFrIgJwciIMcmVzU2NhbGVNdWx0Igd1c3JBZGRyIgdwbXRBc0lkIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkiCm1hdGNoZXJQdWIiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiB25ld0hhc2giC2FsbG93ZWRIYXNoIgtjdXJyZW50SGFzaIEBAAFhAIDC1y8AAWIJALYCAQCAwtcvAAFjCQC2AgEAgICQu7rWrfANAAFkCQC2AgEAAAABZQkAtgIBAAAAAWYJALYCAQABAAFnCQC2AgEAAgABaAkAtgIBAAMAAWkJALYCAQAEAAFqCQC2AgEJAGUCBQFhCQBpAgkAaAIFAWEAAQUBYQABawIFV0FWRVMAAWwCAzEwMAABbQIBMQABbgICX18AAW8CAAABcAABAAFxAAIAAXIAAwABcwAEAAF0AAEAAXUAAgABdgADAAF3AAQAAXgABQABeQAGAAF6AAcAAUEACAABQgAJAAFDAAEAAUQABgABRQAHAAFGAAoAAUcJAGsDAAoFAWEAkE4BAUgCAUkBSgkAvAIDCQC2AgEFAUkFAWMJALYCAQUBSgEBSwIBSQFKCQC8AgMFAUkFAWMFAUoBAUwCAU0BTgkAoAMBCQC8AgMFAU0JALYCAQUBTgUBYwEBTwMBTQFOAVAJAKADAQkAvQIEBQFNCQC2AgEFAU4FAWMFAVABAVECAUkBSgkAvAIDBQFJBQFjCQC2AgEFAUoBAVICAU0BTgkAvAIDBQFNCQC2AgEFAU4FAWMBAVMDAVQBVQFWCQBrAwUBVAUBVQUBVgEBVwEBTQMJAL8CAgUBZAUBTQkAvgIBBQFNBQFNAQFYAQFNAwkAvwICBQFkBQFNCQC+AgEFAU0FAU0BAVkAAhMlc19fZmFjdG9yeUNvbnRyYWN0AQFaAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmFhAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQJhYgACESVzJXNfX3ByaWNlX19sYXN0AQJhYwICYWQCYWUJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQJhZAkAzAgCCQCkAwEFAmFlBQNuaWwFAW4BAmFmAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAmFnAgJfXwUCYWgBAmFpAgJhZwJhaAkArAICCQCsAgIJAKwCAgILJXMlcyVzX19HX18FAmFnAgJfXwUCYWgBAmFqAAIPJXNfX2Ftb3VudEFzc2V0AQJhawACDiVzX19wcmljZUFzc2V0AQJhbAACByVzX19hbXABAmFtAAINJXNfX2FkZG9uQWRkcgACYW4CByVzX19mZWUAAmFvCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFuBQFHAAJhcAkAuQkCCQDMCAICAiVzCQDMCAICA2RMcAUDbmlsBQFuAAJhcQkAuQkCCQDMCAICAiVzCQDMCAICEmRMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFuAAJhcgkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hETHBEZWxheQUDbmlsBQFuAAJhcwABAAJhdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhcgUCYXMBAmF1AAIRJXNfX2ZhY3RvcnlDb25maWcBAmF2AAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhdwICYXgCYXkJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmF4AgJfXwUCYXkCCF9fY29uZmlnAQJhegECYUEJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYUEBAmFCAAIMJXNfX3NodXRkb3duAQJhQwACHSVzX19hbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoAQJhRAACFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJhRQMCYUYCYUcCYUgJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRRmFpbGVkOiBvcmRWYWxpZD0JAKUDAQUCYUYCCyBzbmRyVmFsaWQ9CQClAwEFAmFHAgwgbXRjaHJWYWxpZD0JAKUDAQUCYUgBAmFJAgJhSgJhSwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFKBQJhSwkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhSgkAzAgCAgEuCQDMCAIFAmFLCQDMCAICDCBub3QgZGVmaW5lZAUDbmlsAgABAmFMAgJhSgJhSwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmFKBQJhSwkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhSgkAzAgCAgEuCQDMCAIFAmFLCQDMCAICDCBub3QgZGVmaW5lZAUDbmlsAgABAmFNAQJhTgkAAgEJALkJAgkAzAgCAg9scF9zdGFibGUucmlkZToJAMwIAgUCYU4FA25pbAIBIAECYU8BAmFOCQC5CQIJAMwIAgIPbHBfc3RhYmxlLnJpZGU6CQDMCAIFAmFOBQNuaWwCASAAAmFQCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUkCBQR0aGlzCQEBWQAAAmFRCgACYVIJAPwHBAUCYVACEGdldEluRmVlUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhUgIDSW50BQJhUgkAAgEJAKwCAgkAAwEFAmFSAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQAAmFTCgACYVIJAPwHBAUCYVACEWdldE91dEZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVICA0ludAUCYVIJAAIBCQCsAgIJAAMBBQJhUgIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhVAkBAmFJAgUEdGhpcwkBAmFsAAECYVUACQELdmFsdWVPckVsc2UCCQCbCAIFAmFQCQECYUIABwECYVYACQDZBAEJAQJhSQIFAmFQCQECYXYAAAJhVwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFJAgUCYVAJAQJhRAABAmFYAAQCYVkJAQJhSQIFBHRoaXMJAQJhagAEAmFaCQECYUkCBQR0aGlzCQECYWsABAJiYQkBAmFMAgUCYVAJAQJhegEFAmFaBAJheAkBAmFMAgUCYVAJAQJhegEFAmFZCQC1CQIJAQJhSQIFAmFQCQECYXcCCQCkAwEFAmF4CQCkAwEFAmJhBQFuAQJiYgECYmMDCQAAAgUCYmMFAWsFBHVuaXQJANkEAQUCYmMBAmJkAQJiYwMJAAACBQJiYwUEdW5pdAUBawkA2AQBCQEFdmFsdWUBBQJiYwECYmUBAmJmCQCbCgkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYmYFAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiZgUBdQkA2QQBCQCRAwIFAmJmBQF2CQECYmIBCQCRAwIFAmJmBQF3CQECYmIBCQCRAwIFAmJmBQF4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmYFAXkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiZgUBegkA2QQBCQCRAwIFAmJmBQFBCQDZBAEJAJEDAgUCYmYFAUIAAmJnCQECYmUBCQECYVgAAAJiaAUCYmcAAmJpCAUCYmgCXzEAAmJqCAUCYmgCXzIAAmJrCAUCYmgCXzMAAmJsCAUCYmgCXzQAAmJtCAUCYmgCXzUAAmJuCAUCYmgCXzYAAmJvCAUCYmgCXzcAAmJwCAUCYmgCXzgAAmJxCAUCYmgCXzkBAmJyAAkAtQkCCQECYUkCBQJhUAkBAmF1AAUBbgACYnMJAQJicgAAAmJ0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJicwUBQwIgSW52YWxpZCBzdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MAAmJ1CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJicwUBRQIgSW52YWxpZCBzbGlwYWdlIGNvbnRyYWN0IGFkZHJlc3MAAmJ2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJicwUBRgIcSW52YWxpZCBnd3ggY29udHJhY3QgYWRkcmVzcwACYncJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmJzBQFEAhxJbnZhbGlkIGd3eCBjb250cmFjdCBhZGRyZXNzAQJieAoCYnkCYnoCYkECYkICYkMCYkQCYkUCYkYCYkcCYkgJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJ5CQDMCAIJAKQDAQUCYnoJAMwIAgkApAMBBQJiQQkAzAgCCQCkAwEFAmJCCQDMCAIJAKQDAQUCYkMJAMwIAgkApAMBBQJiRAkAzAgCCQCkAwEFAmJFCQDMCAIJAKQDAQUCYkYJAMwIAgkApAMBBQJiRwkAzAgCCQCkAwEFAmJIBQNuaWwFAW4BAmJJBgJiSgJiSwJiTAJiQgJiRQJiRgkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJKCQDMCAIJAKQDAQUCYksJAMwIAgkApAMBBQJiTAkAzAgCCQCkAwEFAmJCCQDMCAIJAKQDAQUCYkUJAMwIAgkApAMBBQJiRgUDbmlsBQFuAQJiTQECYk4DCQAAAgUCYk4CBVdBVkVTCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQkA8AcCBQR0aGlzCQDZBAEFAmJOAQJiTwICYlACYlEJALwCAwUCYlAFAWMFAmJRAQJiUgMCYlACYlEBUAkAvQIEBQJiUAUBYwUCYlEFAVABAmJTAwJiVAJiVQJiVgQCYlcJALwCAwkAuAICBQJiVAUCYlUFAWIFAmJVBAJiWAkAvwICCQC4AgIFAmJWCQEBVwEFAmJXBQFkAwkBASEBBQJiWAkAAgEJAKwCAgIKQmlnIHNscGc6IAkApgMBBQJiVwkAlAoCBQJiWAkAmQMBCQDMCAIFAmJUCQDMCAIFAmJVBQNuaWwBAmJZAwJiWgJjYQJjYgQCYlcJALwCAwUCY2EFAWIFAmJaBAJjYwkAvwICBQJjYgUCYlcDAwUCY2MGCQC/AgIFAmNhBQJiWgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKYDAQUCY2ECASAJAKYDAQUCYloCASAJAKYDAQUCYlcCASAJAKYDAQUCY2IFAmNjAQJjZAQCY2UCY2YCY2cCY2gEAmNpCQEBSAIFAmNnBQJjZQQCY2oJAQFIAgUCY2gFAmNmCQECYk8CBQJjagUCY2kBAmNrAwJjZwJjaAJjbAQCY20FAmJuBAJjbgUCYm8EAmNvCQECY2QEBQJjbQUCY24FAmNnBQJjaAQCYlEJAQFIAgUCY2cFAmNtBAJiUAkBAUgCBQJjaAUCY24EAmNwCQEBSAIFAmNsBQFhBAJjcQkBAmJPAgUCYlEFAmNwBAJjcgkBAmJPAgUCYlAFAmNwCQDMCAIFAmNvCQDMCAIFAmNxCQDMCAIFAmNyBQNuaWwBAmNzAwJjZwJjaAJjbAQCY3QJAQJjawMFAmNnBQJjaAUCY2wJAMwIAgkBAUwCCQCRAwIFAmN0AAAFAWEJAMwIAgkBAUwCCQCRAwIFAmN0AAEFAWEJAMwIAgkBAUwCCQCRAwIFAmN0AAIFAWEFA25pbAECY3UCAmN2AmFvBAJjdwMJAAACBQJhbwAAAAAJAGsDBQJjdgUCYW8FAWEJAJQKAgkAZQIFAmN2BQJjdwUCY3cBAmN4BAJjeQJjegJjQQJjQgQCY0MFAmJrBAJjRAkA2AQBCQEFdmFsdWUBBQJibAQCY0UJANgEAQkBBXZhbHVlAQUCYm0EAmNGBQJibgQCY0cFAmJvBAJjSAkApAMBBQJiagQCY0kICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCY0MCC1dyb25nIExQIGlkCHF1YW50aXR5AwkBAiE9AgkA2AQBBQJjQwUCY3oJAAIBAg9Xcm9uZyBwbXQgYXNzZXQEAmNKCQECYk0BBQJjRAQCY0sJAQFIAgUCY0oFAmNGBAJjTAkBAmJNAQUCY0UEAmNNCQEBSAIFAmNMBQJjRwQCY04JAQJiTwIFAmNNBQJjSwQCY08JAQFMAgUCY04FAWEEAmNQCQEBSAIFAmNBBQFhBAJjUQkBAUgCBQJjSQUBYQQCY1IJALwCAwUCY0sFAmNQBQJjUQQCY1MJALwCAwUCY00FAmNQBQJjUQQCY1QJAQFPAwUCY1IFAmNGBQVGTE9PUgQCY1UJAQFPAwUCY1MFAmNHBQVGTE9PUgQCY1YDCQAAAgUCY3kCAAUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNCBQJjVAMJAAACBQJjRAIFV0FWRVMFBHVuaXQJANkEAQUCY0QJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCY0IFAmNVAwkAAAIFAmNFAgVXQVZFUwUEdW5pdAkA2QQBBQJjRQkAzAgCCQELU3RyaW5nRW50cnkCCQECYWkCCQClCAEFAmNCBQJjeQkBAmJJBgUCY1QFAmNVBQJjQQUCY08FBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmNPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjTwUDbmlsCQCcCgoFAmNUBQJjVQUCY0QFAmNFBQJjSgUCY0wFAmNJBQJjTgUCY0gFAmNWAQJjVw0CY3kCYlYCY1gCY1kCY1oCZGECY0ICZGICZGMCZGQCZGUCZGYCZGcEAmNDBQJiawQCZGgJANgEAQkBBXZhbHVlAQUCYmwEAmRpCQDYBAEJAQV2YWx1ZQEFAmJtBAJkagUCYnAEAmRrBQJicQQCZGwFAmJuBAJkbQUCYm8EAmNICQCkAwEFAmJqBAJkbggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJjQwIIV3IgbHAgYXMIcXVhbnRpdHkEAmNKAwUCZGIJAQJiTQEFAmRoAwMFAmRkCQAAAgUCZGcFAmRoBwkAZQIJAQJiTQEFAmRoBQJkZgMFAmRkCQECYk0BBQJkaAkAZQIJAQJiTQEFAmRoBQJjWAQCY0wDBQJkYgkBAmJNAQUCZGkDAwUCZGQJAAACBQJkZwUCZGkHCQBlAgkBAmJNAQUCZGkFAmRmAwUCZGQJAQJiTQEFAmRpCQBlAgkBAmJNAQUCZGkFAmNaBAJkbwkBAUgCBQJjWAUCZGwEAmRwCQEBSAIFAmNaBQJkbQQCZHEJAQJiTwIFAmRwBQJkbwQCY0sJAQFIAgUCY0oFAmRsBAJjTQkBAUgCBQJjTAUCZG0EAmRyAwkAAAIFAmRuAAAEAmNOBQFkBAJkcwUBZAQCY3AJAHYGCQC5AgIFAmRvBQJkcAAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUwCBQJjcAUBYQkBAUwCBQJkbwUCZGwJAQFMAgUCZHAFAmRtCQECYk8CCQC3AgIFAmNNBQJkcAkAtwICBQJjSwUCZG8FAmRzBAJjTgkBAmJPAgUCY00FAmNLBAJkdAkAvAIDCQEBVwEJALgCAgUCY04FAmRxBQFjBQJjTgQCZHMJAQFIAgUCYlYFAWEDAwMFAmRlCQECIT0CBQJjTgUBZAcJAL8CAgUCZHQFAmRzBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJkdAIDID4gCQCmAwEFAmRzBAJkdQkBAUgCBQJkbgUBYQQCZHYJAL0CBAUCZG8JAQJiUgMFAmNNBQJjSwUHQ0VJTElORwUBYwUHQ0VJTElORwQCZHcJAL0CBAUCZHAFAWMJAQJiUgMFAmNNBQJjSwUFRkxPT1IFB0NFSUxJTkcEAmR4AwkAvwICBQJkdgUCZHAJAJQKAgUCZHcFAmRwCQCUCgIFAmRvBQJkdgQCZHkIBQJkeAJfMQQCZHoIBQJkeAJfMgQCY3AJAL0CBAUCZHUFAmR6BQJjTQUFRkxPT1IJAJcKBQkBAU8DBQJjcAUBYQUFRkxPT1IJAQFPAwUCZHkFAmRsBQdDRUlMSU5HCQEBTwMFAmR6BQJkbQUHQ0VJTElORwUCY04FAmRzBAJkQQgFAmRyAl8xBAJkQggFAmRyAl8yBAJkQwgFAmRyAl8zBAJjTwkBAUwCCAUCZHICXzQFAWEEAmRECQEBTAIIBQJkcgJfNQUBYQMJAGcCAAAFAmRBCQACAQIHTFAgPD0gMAQCZEUDCQEBIQEFAmRjAAAFAmRBBAJkRgkAZQIFAmNYBQJkQgQCZEcJAGUCBQJjWgUCZEMEAmRIAwMFAmRkCQAAAgUCZGcFAmRoBwkAlAoCBQJkZgAAAwMFAmRkCQAAAgUCZGcFAmRpBwkAlAoCAAAFAmRmCQCUCgIFAmRCBQJkQwQCZEkIBQJkSAJfMQQCZEoIBQJkSAJfMgQCZEsJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmNPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjTwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYCBQJjQgUCY3kJAQJieAoFAmRJBQJkSgUCZEUFAmNPBQJiVgUCZEQFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRGBQJkRwUDbmlsCQCfCg0FAmRBBQJkRQUCY08FAmNKBQJjTAUCZG4FAmNDBQJjSAUCZEsFAmRGBQJkRwUCY1kFAmRhAQJkTAECZE0EAmROCQCRAwIFAmRNAAAEAmRPCQCRAwIFAmRNAAEEAmRQCQC3AgIFAmROBQJkTwMJAAACBQJkUAUBZQUBZQQCZFEJAQ1wYXJzZUludFZhbHVlAQUCYVQEAmRSCQBoAgUCZFEAAgQCY3QJALwCAwUCZE4FAmRPBQFmBAJkUwkAvAIDBQJjdAUBaQUBZgQCZFQJALwCAwkAtgIBBQJkUgUCZFAFAWYEAmRVCQC2AgEJAGUCBQJkUgABCgECZFYBAmRXBAJkWAkAvAIDBQJkVwUCZFcFAWYEAmRZCQC8AgMFAmRYBQJkVwUBZgQCZFoJALwCAwUCZFkFAWYFAmRTCQC8AgMJALcCAgUCZFQJALwCAwUCZFoFAWcFAWYFAmRXCQC3AgIJALwCAwUCZFUFAmRXBQFmCQC8AgMFAWgFAmRaBQFmCgECZWECAmViAmVjAwgFAmViAl8yBQJlYgQCZFcIBQJlYgJfMQQCZWQJAQJkVgEFAmRXBAJlZQkAuAICBQJlZAkBBXZhbHVlAQUCZFcEAmVmAwkAvwICBQFlBQJlZQkAvgIBBQJlZQUCZWUDCQDAAgIFAWYFAmVmCQCUCgIFAmVkBgkAlAoCBQJlZAcEAmVnCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVoCgACZWkFAmVnCgACZWoJAJADAQUCZWkKAAJlawkAlAoCBQJkUAcKAQJlbAICZW0CZW4DCQBnAgUCZW4FAmVqBQJlbQkBAmVhAgUCZW0JAJEDAgUCZWkFAmVuCgECZW8CAmVtAmVuAwkAZwIFAmVuBQJlagUCZW0JAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBAmVvAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgkBAmVsAgUCZWsAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQCZFcIBQJlaAJfMQQCZXAIBQJlaAJfMgMFAmVwBQJkVwkAAgEJAKwCAgIZRCBjYWxjdWxhdGlvbiBlcnJvciwgRCA9IAkApgMBBQJkVwECZXEDAmRNAmVjAmVyBAJlcwUBZwQCZXQJAJEDAgUCZE0DCQAAAgUCZWMAAAABAAAEAmV1CQCnAwEFAWwEAmRRCQC5AgIJAKcDAQUCYVQFAmV1BAJkUAUCZXQEAmRSCQC5AgIFAmRRBQJlcwQCZXYJALoCAgkAuQICCQC5AgIJALoCAgkAuQICBQJlcgUCZXIJALkCAgUCZXQFAmVzBQJlcgUCZXUJALkCAgUCZFIFAmVzBAJldwkAuAICCQC3AgIFAmRQCQC6AgIJALkCAgUCZXIFAmV1BQJkUgUCZXIKAQJlYQICZWICZXgEAmV5BQJlYgQCZXoIBQJleQJfMQQCZXAIBQJleQJfMgMJAQIhPQIFAmVwBQR1bml0BQJlYgQCZUEJALoCAgkAtwICCQC5AgIFAmV6BQJlegUCZXYJALcCAgkAuQICBQFnBQJlegUCZXcEAmVCCQEBWAEJALgCAgUCZUEJAQV2YWx1ZQEFAmV6AwkAwAICBQFmBQJlQgkAlAoCBQJlQQUCZXgJAJQKAgUCZUEFBHVuaXQEAmVnCQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgkAzAgCAAcJAMwIAgAICQDMCAIACQkAzAgCAAoJAMwIAgALCQDMCAIADAkAzAgCAA0JAMwIAgAOBQNuaWwEAmVDCgACZWkFAmVnCgACZWoJAJADAQUCZWkKAAJlawkAlAoCBQJlcgUEdW5pdAoBAmVsAgJlbQJlbgMJAGcCBQJlbgUCZWoFAmVtCQECZWECBQJlbQkAkQMCBQJlaQUCZW4KAQJlbwICZW0CZW4DCQBnAgUCZW4FAmVqBQJlbQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDE1CQECZW8CCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCCQECZWwCBQJlawAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPBAJleggFAmVDAl8xBAJlcAgFAmVDAl8yAwkBAiE9AgUCZXAFBHVuaXQFAmV6CQACAQkArAICAhlZIGNhbGN1bGF0aW9uIGVycm9yLCBZID0gCQCmAwEFAmV6AQJlRAMCZUUCZUYCZUcEAmVICQC8AgMJAQJkTAEJAMwIAgkBAUsCBQJlRQkAtgIBBQJibgkAzAgCCQEBSwIFAmVGCQC2AgEFAmJvBQNuaWwFAWYFAmVHAwkAAAIFAmVHBQFlBQFlBQJlSAECZUkDAmVKAmVLAmVMBAJlTQkAuAICCQC2AgEJAQJiTQEJAQJiZAEFAmJsBQJlSgQCZU4JALgCAgkAtgIBCQECYk0BCQECYmQBBQJibQUCZUsEAmVPCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYmsIcXVhbnRpdHkFAmVMBAJlUAkBAmVEAwUCZU0FAmVOBQJlTwUCZVABAmVRAwJlUgJlUwJlTAQCZU0JAGQCCQECYk0BCQECYmQBBQJibAUCZVIEAmVOCQBkAgkBAmJNAQkBAmJkAQUCYm0FAmVTBAJlTwkAZAIICQEFdmFsdWUBCQDsBwEFAmJrCHF1YW50aXR5BQJlTAQCZUgJAQJlRAMJALYCAQUCZU0JALYCAQUCZU4JALYCAQUCZU8EAmVUCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhcQUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFwCQCmAwEFAmVIBQNuaWwJAJQKAgUCZVQFAmVIAQJlVQICZVYCZUgDCQDAAgIFAmVIBQJlVgYJAQJhTQECInVwZGF0ZWQgRExwIGxvd2VyIHRoYW4gY3VycmVudCBETHABAmVXAQJlWAQCZVkIBQJlWAZhbW91bnQEAmVaCQBuBAgFAmVYBmFtb3VudAgFAmVYBXByaWNlBQFhBQVGTE9PUgQCZmEDCQAAAggFAmVYCW9yZGVyVHlwZQUDQnV5CQCUCgIFAmVZCQEBLQEFAmVaCQCUCgIJAQEtAQUCZVkFAmVaBAJlUggFAmZhAl8xBAJlUwgFAmZhAl8yAwMDCQECYVUABgkAAAIFAmJqBQFyBgkAAAIFAmJqBQFzCQACAQINQWRtaW4gYmxvY2tlZAMDCQECIT0CCAgFAmVYCWFzc2V0UGFpcgthbW91bnRBc3NldAUCYmwGCQECIT0CCAgFAmVYCWFzc2V0UGFpcgpwcmljZUFzc2V0BQJibQkAAgECCVdyIGFzc2V0cwQCZmIJAKcDAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUCYXAEAmZjCQECZVEDBQJlUgUCZVMAAAQCZmQIBQJmYwJfMQQCZmUIBQJmYwJfMgQCZmYJAMACAgUCZmUFAmZiBQJmZgECZmcBAmVjAwkBAiE9AgkAkAMBCAUCZWMIcGF5bWVudHMAAQkAAgECCjEgcG1udCBleHAEAmZoCQEFdmFsdWUBCQCRAwIIBQJlYwhwYXltZW50cwAABAJjegkBBXZhbHVlAQgFAmZoB2Fzc2V0SWQEAmRmCAUCZmgGYW1vdW50BAJkcgkBAmN4BAkA2AQBCAUCZWMNdHJhbnNhY3Rpb25JZAkA2AQBBQJjegUCZGYIBQJlYwZjYWxsZXIEAmNUCAUCZHICXzEEAmNVCAUCZHICXzIEAmNICQENcGFyc2VJbnRWYWx1ZQEIBQJkcgJfOQQCY1YIBQJkcgNfMTADAwkBAmFVAAYJAAACBQJjSAUBcwkAAgEJAKwCAgIPQWRtaW4gYmxvY2tlZDogCQCkAwEFAmNICQCXCgUFAmNUBQJjVQUCZGYFAmN6BQJjVgECZmkKAmZqAmFoAmZrAmZsAmJWAmRjAmRkAmRlAmRmAmRnBAJkcgkBAmNXDQUCYWgFAmJWCAkBBXZhbHVlAQUCZmsGYW1vdW50CAkBBXZhbHVlAQUCZmsHYXNzZXRJZAgJAQV2YWx1ZQEFAmZsBmFtb3VudAgJAQV2YWx1ZQEFAmZsB2Fzc2V0SWQFAmZqCQAAAgUCYWgCAAUCZGMFAmRkBQJkZQUCZGYFAmRnBAJjSAkBDXBhcnNlSW50VmFsdWUBCAUCZHICXzgDAwMJAQJhVQAGCQAAAgUCY0gFAXEGCQAAAgUCY0gFAXMJAAIBCQCsAgICCEJsb2NrZWQ6CQCkAwEFAmNIBQJkcgECZm0FAmZuAmN6AmNCAmFoAmZvBAJjRAkA2AQBCQEFdmFsdWUBBQJibAQCY0UJANgEAQkBBXZhbHVlAQUCYm0EAmNDBQJiawQCZGwFAmJuBAJkbQUCYm8EAmVPCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCY0MCEGludmFsaWQgbHAgYXNzZXQIcXVhbnRpdHkEAmZwAwkAvwICBQJlTwUBZQYJAAIBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmZwBQJmcAQCY0oJAQJiTQEFAmNEBAJjTAkBAmJNAQUCY0UEAmZxAwkAAAIFAmFoAgAJAJQKAgUCY0oFAmNMAwkAAAIFAmN6BQJjRAMJAGYCBQJmbgUCY0oJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIJAGUCBQJjSgUCZm4FAmNMAwkAAAIFAmN6BQJjRQMJAGYCBQJmbgUCY0wJAAIBAhZpbnZhbGlkIHBheW1lbnQgYW1vdW50CQCUCgIFAmNKCQBlAgUCY0wFAmZuCQACAQIQd3JvbmcgcG10QXNzZXRJZAQCZnIIBQJmcQJfMQQCZnMIBQJmcQJfMgQCZnQDCQAAAgUCY3oFAmNECQCUCgIFAmZuAAADCQAAAgUCY3oFAmNFCQCUCgIAAAUCZm4JAAIBAg9pbnZhbGlkIHBheW1lbnQEAmZ1CAUCZnQCXzEEAmZ2CAUCZnQCXzIEAmZ3AwUCZm8JAJUKAwgJAQJjdQIFAmZ1BQJhUQJfMQgJAQJjdQIFAmZ2BQJhUQJfMQgJAQJjdQIFAmZuBQJhUQJfMgkAlQoDBQJmdQUCZnYAAAQCZngIBQJmdwJfMQQCZnkIBQJmdwJfMgQCY3cIBQJmdwJfMwQCZnoJAGQCBQJmcgUCZngEAmZBCQBkAgUCZnMFAmZ5BAJjYQkBAmRMAQkAzAgCCQC2AgEFAmZyCQDMCAIJALYCAQUCZnMFA25pbAQCYloJAQJkTAEJAMwIAgkAtgIBBQJmegkAzAgCCQC2AgEFAmZBBQNuaWwEAmZCAwkAvwICBQJiWgUCY2EGCQEFdGhyb3cAAwkAAAIFAmZCBQJmQgQCZkMJAL0CBAUCZU8JALgCAgUCYloFAmNhBQJjYQUFRkxPT1IEAmNPCQEBTAIJAQJiTwIJAQFIAgUCZkEFAmRtCQEBSAIFAmZ6BQJkbAUBYQQCZEsJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmNPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjTwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYCBQJjQgUCYWgJAQJieAoFAmZ1BQJmdgkAoAMBBQJmQwUCY08AAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJmRAkAawMFAmZzBQFhBQJmcgQCZkUJAGsDBQJmbgUBYQkAZAIFAmZEBQFhBAJmRgkAZQIFAmZuBQJmRQQCZkcJALwCAwUCZU8JALYCAQUCZkYJALYCAQUCZnMEAmZICQCgAwEJALwCAwkAuAICBQJmQwUCZkcFAWIFAmZHCQCWCgQJAKADAQUCZkMFAmRLBQJjdwUCZkgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZJBgJmSgJmSwJmTAJmagJmTQJmTgQCY0MJANgEAQkBBXZhbHVlAQUCYmsEAmNECQDYBAEJAQV2YWx1ZQEFAmJsBAJjRQkA2AQBCQEFdmFsdWUBBQJibQQCZk8FAmJuBAJmUAUCYm8EAmZRBQJiagQCY0IDCQAAAgUCZmoFAmJ3BQJmTQUCZmoEAmZoCQEFdmFsdWUBCQCRAwIFAmZMAAAEAmN6CQEFdmFsdWUBCAUCZmgHYXNzZXRJZAQCZGYIBQJmaAZhbW91bnQEAmVQCQECZUkDBQFlBQFlBQFlAwkAAAIFAmVQBQJlUAQCY3kJANgEAQUCZk4DCQECIT0CBQJjQwkA2AQBBQJjegkAAgECCFdyb25nIExQBAJjSgkBAmJNAQUCY0QEAmNMCQECYk0BBQJjRQQCZlIKAAJhUgkA/AcEBQR0aGlzAhNnZXRPbmVUa25WMlJFQURPTkxZCQDMCAIFAmZKCQDMCAIFAmRmBQNuaWwFA25pbAMJAAECBQJhUgIKKEludCwgSW50KQUCYVIJAAIBCQCsAgIJAAMBBQJhUgIfIGNvdWxkbid0IGJlIGNhc3QgdG8gKEludCwgSW50KQMJAAACBQJmUgUCZlIEAmN3CAUCZlICXzIEAmZTCAUCZlICXzEEAmZUAwMJAGYCBQJmSwAACQBmAgUCZksFAmZTBwkBAmFNAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmSwUDbmlsAgAFAmZTBAJmVQMJAAACBQJmSgUCY0QJAJYKBAUCZlQAAAkAZQIJAGUCBQJjSgUCZlQFAmN3BQJjTAMJAAACBQJmSgUCY0UJAJYKBAAABQJmVAUCY0oJAGUCCQBlAgUCY0wFAmZUBQJjdwkAAgECFGludmFsaWQgb3V0IGFzc2V0IGlkBAJmVggFAmZVAl8xBAJmVwgFAmZVAl8yBAJmeggFAmZVAl8zBAJmQQgFAmZVAl80BAJmWAkBAmJPAgkBAUgCBQJmQQUCZlAJAQFIAgUCZnoFAmZPBAJmWQkBAUwCBQJmWAUBYQQCZloDCQAAAgUCZkoCBVdBVkVTBQR1bml0CQDZBAEFAmZKBAJnYQMJAGYCBQJjdwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFXBQJjdwUCZloFA25pbAUDbmlsBAJjVgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNCBQJmVAUCZloJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAgkApQgBBQJjQgUCY3kJAQJiSQYFAmZWBQJmVwUCZGYFAmZZBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWIABQJmWQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFjAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZlkFA25pbAUCZ2EDCQAAAgUCY1YFAmNWBAJnYgkA/AcEBQJhUAIEYnVybgkAzAgCBQJkZgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjegUCZGYFA25pbAMJAAACBQJnYgUCZ2IEAmdjBAJnZAMJAAACBQR0aGlzBQJhVwAABQJjdwQCZ2UDCQAAAgkBAmJiAQUCZkoFAmJsBgcDBQJnZQkAlAoCCQEBLQEJAGQCBQJmUwUCZ2QAAAkAlAoCAAAJAQEtAQkAZAIFAmZTBQJnZAQCZVIIBQJnYwJfMQQCZVMIBQJnYwJfMgQCZ2YJAQJlUQMFAmVSBQJlUwAABAJnZwgFAmdmAl8xBAJlSAgFAmdmAl8yBAJnaAkBAmVVAgUCZVAFAmVIAwkAAAIFAmdoBQJnaAkAlAoCCQDOCAIFAmNWBQJnZwUCZlQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmdpAAQCZ2oJAKIIAQkBAVoAAwkAAQIFAmdqAgZTdHJpbmcEAmRQBQJnagkA2QQBBQJkUAMJAAECBQJnagIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJnawAEAmdqCQCiCAEJAQJhYQADCQABAgUCZ2oCBlN0cmluZwQCZFAFAmdqCQDZBAEFAmRQAwkAAQIFAmdqAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAmdsCQACAQIRUGVybWlzc2lvbiBkZW5pZWQBAmdtAQJlYwQCZ2oJAQJnaQADCQABAgUCZ2oCCkJ5dGVWZWN0b3IEAmduBQJnagkAAAIIBQJlYw9jYWxsZXJQdWJsaWNLZXkFAmduAwkAAQIFAmdqAgRVbml0CQAAAggFAmVjBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJnbwECZWMEAmdqCQECZ2kAAwkAAQIFAmdqAgpCeXRlVmVjdG9yBAJnbgUCZ2oDCQAAAggFAmVjD2NhbGxlclB1YmxpY0tleQUCZ24GBQJnbAMJAAECBQJnagIEVW5pdAMJAAACCAUCZWMGY2FsbGVyBQR0aGlzBgUCZ2wJAAIBAgtNYXRjaCBlcnJvchwCZWMBC2NvbnN0cnVjdG9yAQFZBAJldgkBAmdvAQUCZWMDCQAAAgUCZXYFAmV2CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFZAAUBWQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjAQpzZXRNYW5hZ2VyAQJncAQCZXYJAQJnbwEFAmVjAwkAAAIFAmV2BQJldgQCZ3EJANkEAQUCZ3ADCQAAAgUCZ3EFAmdxCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQAFAmdwBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZWMBDmNvbmZpcm1NYW5hZ2VyAAQCY3QJAQJnawAEAmdyAwkBCWlzRGVmaW5lZAEFAmN0BgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJncgUCZ3IEAmdzAwkAAAIIBQJlYw9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmN0BgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJncwUCZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoACQDYBAEJAQV2YWx1ZQEFAmN0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhYQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYwEDcHV0AgJndAJndQQCZ3YJAQJicgAEAmd3CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJndgUBQwIKV3Igc3QgYWRkcgQCZ3gJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmd2BQFFAgpXciBzbCBhZGRyAwkAZgIAAAUCZ3QJAAIBAg5Xcm9uZyBzbGlwcGFnZQMJAQIhPQIJAJADAQgFAmVjCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmd5CQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlYwhwYXltZW50cwAABmFtb3VudAQCZ3oJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVjCHBheW1lbnRzAAEGYW1vdW50BAJlTQkAuAICCQC2AgEJAQJiTQEJAQJiZAEFAmJsBQJneQMJAAACBQJlTQUCZU0EAmVOCQC4AgIJALYCAQkBAmJNAQkBAmJkAQUCYm0FAmd6AwkAAAIFAmVOBQJlTgQCZU8JALYCAQgJAQV2YWx1ZQEJAOwHAQUCYmsIcXVhbnRpdHkDCQAAAgUCZU8FAmVPBAJlUAkBAmVJAwUCZ3kFAmd6CQC2AgEAAAMJAAACBQJlUAUCZVAEAmdBCQECZmkKCQClCAEIBQJlYwZjYWxsZXIJANgEAQgFAmVjDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZWMIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZWMIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmVjCHBheW1lbnRzAAEFAmd0BgcGAAACAAQCZEUIBQJnQQJfMgQCZ0IIBQJnQQJfNwQCY1YIBQJnQQJfOQQCZEYIBQJnQQNfMTAEAmRHCAUCZ0EDXzExBAJjRAgFAmdBA18xMgQCY0UIBQJnQQNfMTMEAmRyCQD8BwQFAmFQAgRlbWl0CQDMCAIFAmRFBQNuaWwFA25pbAMJAAACBQJkcgUCZHIEAmdDBAJnagUCZHIDCQABAgUCZ2oCB0FkZHJlc3MEAmdEBQJnagkA/AcEBQJnRAIEZW1pdAkAzAgCBQJkRQUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZ0MFAmdDBAJnRQMJAGYCBQJkRgAACQD8BwQFAmd4AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCY0QFAmRGBQNuaWwFA25pbAMJAAACBQJnRQUCZ0UEAmdGAwkAZgIFAmRHAAAJAPwHBAUCZ3gCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjRQUCZEcFA25pbAUDbmlsAwkAAAIFAmdGBQJnRgQCZ0cDBQJndQQCZ0gJAPwHBAUCZ3cCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmdCBQJkRQUDbmlsAwkAAAIFAmdIBQJnSAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlYwZjYWxsZXIFAmRFBQJnQgUDbmlsBAJnSQkBAmVRAwAAAAAAAAQCZ2cIBQJnSQJfMQQCZUgIBQJnSQJfMgQCZ0oDCQDAAgIFAmVIBQJlUAYJAQJhTQEJALkJAgkAzAgCAiJ1cGRhdGVkIERMcCBsb3dlciB0aGFuIGN1cnJlbnQgRExwCQDMCAIJAKYDAQUCZU0JAMwIAgkApgMBBQJlTgkAzAgCCQCmAwEFAmVPCQDMCAIJAKYDAQUCZVAJAMwIAgkApgMBBQJlSAkAzAgCCQCkAwEFAmRGCQDMCAIJAKQDAQUCZEcFA25pbAIBIAMJAAACBQJnSgUCZ0oEAmdLCAkBBXZhbHVlAQkA7AcBBQJiawhxdWFudGl0eQMJAAACBQJnSwUCZ0sJAM4IAgkAzggCBQJjVgUCZ0cFAmdnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjAQtwdXRPbmVUa25WMgICZksCZ3UEAmdMCgACYVIJAPwHBAUCYVACKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhUgIHQm9vbGVhbgUCYVIJAAIBCQCsAgIJAAMBBQJhUgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZ00DAwMJAQJhVQAGCQAAAgUCYmoFAXEGCQAAAgUCYmoFAXMGBQJnTAQCZ04JAMwIAgMDCQEBIQEFAmdNBgkBAmdtAQUCZWMGCQECYU0BAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlYwhwYXltZW50cwABBgkBAmFNAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ04FAmdOBAJjRAkA2AQBCQEFdmFsdWUBBQJibAQCY0UJANgEAQkBBXZhbHVlAQUCYm0EAmNDBQJiawQCZk8FAmJuBAJmUAUCYm8EAmNCAwkAAAIIBQJlYwZjYWxsZXIFBHRoaXMIBQJlYwxvcmlnaW5DYWxsZXIIBQJlYwZjYWxsZXIEAmZoCQEFdmFsdWUBCQCRAwIIBQJlYwhwYXltZW50cwAABAJjegkA2AQBCQEFdmFsdWUBCAUCZmgHYXNzZXRJZAQCZGYIBQJmaAZhbW91bnQEAmVQAwkAAAIIBQJmaAdhc3NldElkBQJibAkBAmVJAwkAtgIBBQJkZgkAtgIBAAAJALYCAQAACQECZUkDCQC2AgEAAAkAtgIBBQJkZgkAtgIBAAADCQAAAgUCZVAFAmVQBAJnTwkBAmZtBQUCZGYFAmN6CQClCAEFAmNCCQDYBAEIBQJlYw10cmFuc2FjdGlvbklkBgMJAAACBQJnTwUCZ08EAmN3CAUCZ08CXzMEAmNWCAUCZ08CXzIEAmdQCAUCZ08CXzEEAmRFAwMJAGYCBQJmSwAACQBmAgUCZksFAmdQBwkBAmFNAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJmSwUDbmlsAgAFAmdQBAJnQQkA/AcEBQJhUAIEZW1pdAkAzAgCBQJkRQUDbmlsBQNuaWwDCQAAAgUCZ0EFAmdBBAJnQwQCZ2oFAmdBAwkAAQIFAmdqAgdBZGRyZXNzBAJnRAUCZ2oJAPwHBAUCZ0QCBGVtaXQJAMwIAgUCZEUFA25pbAUDbmlsBQR1bml0AwkAAAIFAmdDBQJnQwQCZ0cDBQJndQQCZ0gJAPwHBAUCYnQCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNDBQJkRQUDbmlsAwkAAAIFAmdIBQJnSAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlYwZjYWxsZXIFAmRFBQJjQwUDbmlsBAJnYQMJAGYCBQJjdwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFXBQJjdwkA2QQBBQJjegUDbmlsBQNuaWwEAmdRAwkAAAIFBHRoaXMFAmFXCQCUCgIAAAAABAJnUgMJAAACCAUCZmgHYXNzZXRJZAUCYmwGBwMFAmdSCQCUCgIJAQEtAQUCY3cAAAkAlAoCAAAJAQEtAQUCY3cEAmVSCAUCZ1ECXzEEAmVTCAUCZ1ECXzIEAmdTCQECZVEDBQJlUgUCZVMAAAQCZ2cIBQJnUwJfMQQCZUgIBQJnUwJfMgQCZ2gJAQJlVQIFAmVQBQJlSAMJAAACBQJnaAUCZ2gJAJQKAgkAzggCCQDOCAIJAM4IAgUCY1YFAmdHBQJnYQUCZ2cFAmRFCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjAQpwdXRGb3JGcmVlAQJnVAMJAGYCAAAFAmdUCQACAQIKV3Jvbmcgc2xwZwMJAQIhPQIJAJADAQgFAmVjCHBheW1lbnRzAAIJAAIBAgwyIHBtbnRzIGV4cGQEAmdVCQECZmkKCQClCAEIBQJlYwZjYWxsZXIJANgEAQgFAmVjDXRyYW5zYWN0aW9uSWQJAQ9BdHRhY2hlZFBheW1lbnQCCAkBBXZhbHVlAQkAkQMCCAUCZWMIcGF5bWVudHMAAAdhc3NldElkCAkBBXZhbHVlAQkAkQMCCAUCZWMIcGF5bWVudHMAAAZhbW91bnQJAJEDAggFAmVjCHBheW1lbnRzAAEFAmdUBwcGAAACAAQCY1YIBQJnVQJfOQQCZ3kJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVjCHBheW1lbnRzAAAGYW1vdW50BAJnegkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZWMIcGF5bWVudHMAAQZhbW91bnQEAmVQCQECZUkDBQJneQUCZ3oJALYCAQAAAwkAAAIFAmVQBQJlUAQCZ1YJAQJlUQMAAAAAAAAEAmdnCAUCZ1YCXzEEAmVICAUCZ1YCXzIEAmdoCQECZVUCBQJlUAUCZUgDCQAAAgUCZ2gFAmdoCQDOCAIFAmNWBQJnZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYwEDZ2V0AAQCZVAJAQJlSQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZVAFAmVQBAJkcgkBAmZnAQUCZWMEAmdXCAUCZHICXzEEAmNVCAUCZHICXzIEAmRmCAUCZHICXzMEAmN6CAUCZHICXzQEAmNWCAUCZHICXzUEAmV3CQD8BwQFAmFQAgRidXJuCQDMCAIFAmRmBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmN6BQJkZgUDbmlsAwkAAAIFAmV3BQJldwQCZ1gJAQJlUQMJAQEtAQUCZ1cJAQEtAQUCY1UAAAQCZ2cIBQJnWAJfMQQCZUgIBQJnWAJfMgQCZ2gJAQJlVQIFAmVQBQJlSAMJAAACBQJnaAUCZ2gJAM4IAgUCY1YFAmdnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjAQtnZXRPbmVUa25WMgICZkoCZksEAmdMCgACYVIJAPwHBAUCYVACKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhUgIHQm9vbGVhbgUCYVIJAAIBCQCsAgIJAAMBBQJhUgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZ1kDAwkBAmFVAAYJAAACBQJiagUBcwYFAmdMBAJnTgkAzAgCAwMJAQEhAQUCZ1kGCQECZ20BBQJlYwYJAQJhTQECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVjCHBheW1lbnRzAAEGCQECYU0BAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTgUCZ04EAmdaCQECZkkGBQJmSgUCZksIBQJlYwhwYXltZW50cwgFAmVjBmNhbGxlcggFAmVjDG9yaWdpbkNhbGxlcggFAmVjDXRyYW5zYWN0aW9uSWQEAmNWCAUCZ1oCXzEEAmZUCAUCZ1oCXzIJAJQKAgUCY1YFAmZUCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjAQpyZWZyZXNoRExwAAQCaGEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUCYXEAAAQCaGIDCQBnAgkAZQIFBmhlaWdodAUCaGEFAmF0BQR1bml0CQECYU0BCQC5CQIJAMwIAgkApAMBBQJhdAkAzAgCAi8gYmxvY2tzIGhhdmUgbm90IHBhc3NlZCBzaW5jZSB0aGUgcHJldmlvdXMgY2FsbAUDbmlsAgADCQAAAgUCaGIFAmhiBAJmYgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYXACATAJAQJhTwECC2ludmFsaWQgZExwBAJoYwkBAmVRAwAAAAAAAAQCaGQIBQJoYwJfMQQCZUgIBQJoYwJfMgQCZVQDCQECIT0CBQJmYgUCZUgFAmhkCQECYU0BAhJub3RoaW5nIHRvIHJlZnJlc2gJAJQKAgUCZVQJAKYDAQUCZUgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZWMBE2dldE9uZVRrblYyUkVBRE9OTFkCAmZKAmhlBAJjRAkA2AQBCQEFdmFsdWUBBQJibAQCY0UJANgEAQkBBXZhbHVlAQUCYm0EAmNDCQDYBAEJAQV2YWx1ZQEFAmJrBAJkTQkAzAgCCQC2AgEJAQJiTQEFAmNECQDMCAIJALYCAQkBAmJNAQUCY0UFA25pbAQCZUcJALYCAQgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmNDAhBpbnZhbGlkIGxwIGFzc2V0CHF1YW50aXR5BAJjYQkBAmRMAQUCZE0EAmJaCQC4AgIFAmNhCQC8AgMJALYCAQUCaGUFAmNhBQJlRwQCaGYDCQAAAgUCZkoFAmNEAAADCQAAAgUCZkoFAmNFAAEJAAIBAhRpbnZhbGlkIG91dCBhc3NldCBpZAQCaGcJAQJlcQMFAmRNBQJoZgUCYloEAmhoCQC4AgIJAJEDAgUCZE0FAmhmBQJoZwQCaGkJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC4AgIFAmhoBQFmBQNuaWwEAmhqCQECY3UCBQJoaQUCYVMEAmZTCAUCaGoCXzEEAmN3CAUCaGoCXzIJAJQKAgUDbmlsCQCUCgIFAmZTBQJjdwJlYwEcZ2V0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICZkoCaGUEAmNECQDYBAEJAQV2YWx1ZQEFAmJsBAJjRQkA2AQBCQEFdmFsdWUBBQJibQQCY0MJANgEAQkBBXZhbHVlAQUCYmsEAmNKCQECYk0BBQJjRAQCY0wJAQJiTQEFAmNFBAJoawoAAmFSCQD8BwQFBHRoaXMCE2dldE9uZVRrblYyUkVBRE9OTFkJAMwIAgUCZkoJAMwIAgUCaGUFA25pbAUDbmlsAwkAAQIFAmFSAgooSW50LCBJbnQpBQJhUgkAAgEJAKwCAgkAAwEFAmFSAh8gY291bGRuJ3QgYmUgY2FzdCB0byAoSW50LCBJbnQpBAJmUwgFAmhrAl8xBAJjdwgFAmhrAl8yBAJkcgkBAmN4BAIABQJjQwUCaGUFBHRoaXMEAmNUCAUCZHICXzEEAmNVCAUCZHICXzIEAmhsCQBkAgUCY1QFAmNVBAJmSAMJAAACBQJobAAAAwkAAAIFAmZTAAAAAAkAAgECF2JvbnVzIGNhbGN1bGF0aW9uIGVycm9yCQBrAwkAZQIFAmZTBQJobAUBYQUCaGwJAJQKAgUDbmlsCQCVCgMFAmZTBQJjdwUCZkgCZWMBCWdldE5vTGVzcwICaG0CaG4EAmRyCQECZmcBBQJlYwQCY1QIBQJkcgJfMQQCY1UIBQJkcgJfMgQCZGYIBQJkcgJfMwQCY3oIBQJkcgJfNAQCY1YIBQJkcgJfNQMJAGYCBQJobQUCY1QJAAIBCQCsAgIJAKwCAgkArAICAglGYWlsZWQ6ICAJAKQDAQUCY1QCAyA8IAkApAMBBQJobQMJAGYCBQJobgUCY1UJAAIBCQCsAgIJAKwCAgkArAICAghGYWlsZWQ6IAkApAMBBQJjVQIDIDwgCQCkAwEFAmhuBAJlUAkBAmVJAwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlUAUCZVAEAmhvCQD8BwQFAmFQAgRidXJuCQDMCAIFAmRmBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmN6BQJkZgUDbmlsAwkAAAIFAmhvBQJobwQCaHAJAQJlUQMJAQEtAQUCY1QJAQEtAQUCY1UAAAQCZ2cIBQJocAJfMQQCZUgIBQJocAJfMgQCZ2gJAQJlVQIFAmVQBQJlSAMJAAACBQJnaAUCZ2gJAM4IAgUCY1YFAmdnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjAQ11bnN0YWtlQW5kR2V0AQJjdgQCaHEDCQECIT0CCQCQAwEIBQJlYwhwYXltZW50cwAACQACAQINTm8gcG1udHMgZXhwZAYDCQAAAgUCaHEFAmhxBAJocgkBAmJyAAQCZ0IFAmJrBAJocwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaHIFAUMCCldyIHN0IGFkZHIEAmVQCQECZUkDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVQBQJlUAQCaHQJAPwHBAUCaHMCB3Vuc3Rha2UJAMwIAgkA2AQBBQJnQgkAzAgCBQJjdgUDbmlsBQNuaWwDCQAAAgUCaHQFAmh0BAJkcgkBAmN4BAkA2AQBCAUCZWMNdHJhbnNhY3Rpb25JZAkA2AQBBQJnQgUCY3YIBQJlYwZjYWxsZXIEAmNUCAUCZHICXzEEAmNVCAUCZHICXzIEAmNICQENcGFyc2VJbnRWYWx1ZQEIBQJkcgJfOQQCY1YIBQJkcgNfMTAEAmh1AwMJAQJhVQAGCQAAAgUCY0gFAXMJAAIBCQCsAgICCUJsb2NrZWQ6IAkApAMBBQJjSAYDCQAAAgUCaHUFAmh1BAJodgkA/AcEBQJhUAIEYnVybgkAzAgCBQJjdgUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnQgUCY3YFA25pbAMJAAACBQJodgUCaHYEAmh3CQECZVEDCQEBLQEFAmNUCQEBLQEFAmNVAAAEAmdnCAUCaHcCXzEEAmVICAUCaHcCXzIEAmdoCQECZVUCBQJlUAUCZUgDCQAAAgUCZ2gFAmdoCQDOCAIFAmNWBQJnZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYwETdW5zdGFrZUFuZEdldE5vTGVzcwMCaHgCaHkCaG4EAmdZAwkBAmFVAAYJAAACBQJiagUBcwQCZ04JAMwIAgMJAQEhAQUCZ1kGCQACAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZWMIcGF5bWVudHMAAAYJAAIBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJnTgUCZ04EAmVQCQECZUkDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVQBQJlUAQCaHQJAPwHBAUCYnQCB3Vuc3Rha2UJAMwIAgkA2AQBBQJiawkAzAgCBQJoeAUDbmlsBQNuaWwDCQAAAgUCaHQFAmh0BAJoegkBAmN4BAkA2AQBCAUCZWMNdHJhbnNhY3Rpb25JZAkA2AQBBQJiawUCaHgIBQJlYwZjYWxsZXIEAmNUCAUCaHoCXzEEAmNVCAUCaHoCXzIEAmNWCAUCaHoDXzEwBAJoQQkAzAgCAwkAZwIFAmNUBQJoeQYJAAIBCQC5CQIJAMwIAgIsYW1vdW50IGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJoeQUDbmlsAgAJAMwIAgMJAGcCBQJjVQUCaG4GCQACAQkAuQkCCQDMCAICK3ByaWNlIGFzc2V0IGFtb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJobgUDbmlsAgAFA25pbAMJAAACBQJoQQUCaEEEAmhvCQD8BwQFAmFQAgRidXJuCQDMCAIFAmh4BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJrBQJoeAUDbmlsAwkAAAIFAmhvBQJobwQCaEIJAQJlUQMJAQEtAQUCY1QJAQEtAQUCY1UAAAQCZ2cIBQJoQgJfMQQCZUgIBQJoQgJfMgQCZ2gJAQJlVQIFAmVQBQJlSAMJAAACBQJnaAUCZ2gJAM4IAgUCY1YFAmdnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVjARV1bnN0YWtlQW5kR2V0T25lVGtuVjIDAmh4AmZKAmZLBAJnTAoAAmFSCQD8BwQFAmFQAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVICB0Jvb2xlYW4FAmFSCQACAQkArAICCQADAQUCYVICHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmdZAwMJAQJhVQAGCQAAAgUCYmoFAXMGBQJnTAQCZ04JAMwIAgMDCQEBIQEFAmdZBgkBAmdtAQUCZWMGCQECYU0BAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlYwhwYXltZW50cwAABgkBAmFNAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZ04FAmdOBAJocgkBAmJyAAQCZ0IFAmJrBAJocwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCaHIFAUMCCldyIHN0IGFkZHIEAmh0CQD8BwQFAmhzAgd1bnN0YWtlCQDMCAIJANgEAQUCZ0IJAMwIAgUCaHgFA25pbAUDbmlsAwkAAAIFAmh0BQJodAQCaEMJAQJmSQYFAmZKBQJmSwkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ0IFAmh4BQNuaWwIBQJlYwZjYWxsZXIIBQJlYwxvcmlnaW5DYWxsZXIIBQJlYw10cmFuc2FjdGlvbklkBAJjVggFAmhDAl8xBAJmVAgFAmhDAl8yCQCUCgIFAmNWBQJmVAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlYwEccHV0T25lVGtuVjJXaXRoQm9udXNSRUFET05MWQICaEQCaEUEAmhGCQECZm0FBQJoRAUCaEUCAAIABgQCZkMIBQJoRgJfMQQCY1YIBQJoRgJfMgQCY3cIBQJoRgJfMwQCZkgIBQJoRgJfNAkAlAoCBQNuaWwJAJUKAwUCZkMFAmN3BQJmSAJlYwEhcHV0T25lVGtuVjJXaXRob3V0VGFrZUZlZVJFQURPTkxZAgJoRAJoRQQCaEcJAQJmbQUFAmhEBQJoRQIAAgAHBAJmQwgFAmhHAl8xBAJjVggFAmhHAl8yBAJjdwgFAmhHAl8zBAJmSAgFAmhHAl80CQCUCgIFA25pbAkAlQoDBQJmQwUCY3cFAmZIAmVjAQhhY3RpdmF0ZQICaEgCaEkDCQECIT0CCQClCAEIBQJlYwZjYWxsZXIJAKUIAQUCYVAJAAIBAgZkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQECYWoABQJoSAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWsABQJoSQUDbmlsAgdzdWNjZXNzAmVjAQRzZXRTAgJoSgJodQMJAQIhPQIJAKUIAQgFAmVjBmNhbGxlcgkBAmFJAgUEdGhpcwkBAmFtAAUCZ2wJAMwIAgkBC1N0cmluZ0VudHJ5AgUCaEoFAmh1BQNuaWwCZWMBBHNldEkCAmhKAmh1AwkBAiE9AgkApQgBCAUCZWMGY2FsbGVyCQECYUkCBQR0aGlzCQECYW0ABQJnbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCaEoFAmh1BQNuaWwCZWMBHGdldFBvb2xDb25maWdXcmFwcGVyUkVBRE9OTFkACQCUCgIFA25pbAkBAmFYAAJlYwEcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQECYk4JAJQKAgUDbmlsCQECYk0BBQJiTgJlYwEZY2FsY1ByaWNlc1dyYXBwZXJSRUFET05MWQMCY2cCY2gCY2wEAmhLCQECY2sDBQJjZwUCY2gFAmNsCQCUCgIFA25pbAkAzAgCCQCmAwEJAJEDAgUCaEsAAAkAzAgCCQCmAwEJAJEDAgUCaEsAAQkAzAgCCQCmAwEJAJEDAgUCaEsAAgUDbmlsAmVjARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFNAmhMCQCUCgIFA25pbAkBAUwCCQCnAwEFAU0FAmhMAmVjARR0b1gxOFdyYXBwZXJSRUFET05MWQIBSQFKCQCUCgIFA25pbAkApgMBCQEBSAIFAUkFAUoCZWMBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICYlACYlEJAJQKAgUDbmlsCQCmAwEJAQJiTwIJAKcDAQUCYlAJAKcDAQUCYlECZWMBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJjeQJiVgJjWAJjWQJjWgJkYQJoTQJkYgJkYwkAlAoCBQNuaWwJAQJjVw0FAmN5BQJiVgUCY1gFAmNZBQJjWgUCZGEFAmhNBQJkYgUCZGMGBwAAAgACZWMBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJjeQJoTgJjQQJoTQQCZHIJAQJjeAQFAmN5BQJoTgUCY0EJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmhNCQCUCgIFA25pbAkAnAoKCAUCZHICXzEIBQJkcgJfMggFAmRyAl8zCAUCZHICXzQIBQJkcgJfNQgFAmRyAl82CAUCZHICXzcJAKYDAQgFAmRyAl84CAUCZHICXzkIBQJkcgNfMTABAmhPAQJoUAAEAmhRBAJnagkBAmdpAAMJAAECBQJnagIKQnl0ZVZlY3RvcgQCZ24FAmdqBQJnbgMJAAECBQJnagIEVW5pdAgFAmhPD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJnagUCaE8DCQABAgUCZ2oCBU9yZGVyBAJlWAUCZ2oEAmhSCQECYVYABAJoUwkBAmVXAQUCZVgEAmhUCQD0AwMIBQJlWAlib2R5Qnl0ZXMJAJEDAggFAmVYBnByb29mcwAACAUCZVgPc2VuZGVyUHVibGljS2V5BAJoVQkA9AMDCAUCZVgJYm9keUJ5dGVzCQCRAwIIBQJlWAZwcm9vZnMAAQUCaFIDAwMFAmhTBQJoVAcFAmhVBwYJAQJhRQMFAmhTBQJoVAUCaFUDCQABAgUCZ2oCFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJkUAUCZ2oDCQD0AwMIBQJoTwlib2R5Qnl0ZXMJAJEDAggFAmhPBnByb29mcwAABQJoUQYEAmhWCQD2AwEJAQV2YWx1ZQEIBQJkUAZzY3JpcHQEAmhXCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYVAJAQJhQwAEAmhYCQDxBwEFBHRoaXMDCQAAAgUCaFcFAmhWCQECIT0CBQJoWAUCaFYHCQD0AwMIBQJoTwlib2R5Qnl0ZXMJAJEDAggFAmhPBnByb29mcwAABQJoUSCO5YE=", "chainId": 84, "height": 2411805, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F5mSiGtVPyFn5F3xTBQzSVPrfYMVFJAtxwnM4GaisD1s Next: BFVhcYnZhCpi6EFXTGLHpPPYse2JLtoitU5MSEUxM4Y1 Diff:
OldNewDifferences
7070 func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7171
7272
73-func K (L,M) = toInt(fraction(L, toBigInt(M), c))
73+func K (I,J) = fraction(I, c, J)
7474
7575
76-func N (L,M,O) = toInt(fraction(L, toBigInt(M), c, O))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7777
7878
79-func P (I,J) = fraction(I, c, toBigInt(J))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8080
8181
82-func Q (L,M) = fraction(L, toBigInt(M), c)
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8383
8484
85-func R (S,T,U) = fraction(S, T, U)
85+func R (M,N) = fraction(M, toBigInt(N), c)
8686
8787
88-func V (L) = if ((d > L))
89- then -(L)
90- else L
88+func S (T,U,V) = fraction(T, U, V)
9189
9290
93-func W (L) = if ((d > L))
94- then -(L)
95- else L
91+func W (M) = if ((d > M))
92+ then -(M)
93+ else M
9694
9795
98-func X () = "%s__factoryContract"
96+func X (M) = if ((d > M))
97+ then -(M)
98+ else M
9999
100100
101-func Y () = "%s__managerPublicKey"
101+func Y () = "%s__factoryContract"
102102
103103
104-func Z () = "%s__pendingManagerPublicKey"
104+func Z () = "%s__managerPublicKey"
105105
106106
107-func aa () = "%s%s__price__last"
107+func aa () = "%s__pendingManagerPublicKey"
108108
109109
110-func ab (ac,ad) = makeString(["%s%s%d%d__price__history", toString(ac), toString(ad)], n)
110+func ab () = "%s%s__price__last"
111111
112112
113-func ae (af,ag) = ((("%s%s%s__P__" + af) + "__") + ag)
113+func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
114114
115115
116-func ah (af,ag) = ((("%s%s%s__G__" + af) + "__") + ag)
116+func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
117117
118118
119-func ai () = "%s__amountAsset"
119+func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
120120
121121
122-func aj () = "%s__priceAsset"
122+func aj () = "%s__amountAsset"
123123
124124
125-func ak () = "%s__amp"
125+func ak () = "%s__priceAsset"
126126
127127
128-func al () = "%s__addonAddr"
128+func al () = "%s__amp"
129129
130130
131-let am = "%s__fee"
132-
133-let an = valueOrElse(getInteger(this, am), G)
134-
135-let ao = makeString(["%s", "dLp"], n)
136-
137-let ap = makeString(["%s", "dLpRefreshedHeight"], n)
138-
139-let aq = makeString(["%s", "refreshDLpDelay"], n)
140-
141-let ar = 1
142-
143-let as = valueOrElse(getInteger(this, aq), ar)
144-
145-func at () = "%s__factoryConfig"
131+func am () = "%s__addonAddr"
146132
147133
148-func au () = "%s%s__matcher__publicKey"
134+let an = "%s__fee"
135+
136+let ao = valueOrElse(getInteger(this, an), G)
137+
138+let ap = makeString(["%s", "dLp"], n)
139+
140+let aq = makeString(["%s", "dLpRefreshedHeight"], n)
141+
142+let ar = makeString(["%s", "refreshDLpDelay"], n)
143+
144+let as = 1
145+
146+let at = valueOrElse(getInteger(this, ar), as)
147+
148+func au () = "%s__factoryConfig"
149149
150150
151-func av (aw,ax) = (((("%d%d%s__" + aw) + "__") + ax) + "__config")
151+func av () = "%s%s__matcher__publicKey"
152152
153153
154-func ay (az) = ("%s%s%s__mappings__baseAsset2internalId__" + az)
154+func aw (ax,ay) = (((("%d%d%s__" + ax) + "__") + ay) + "__config")
155155
156156
157-func aA () = "%s__shutdown"
157+func az (aA) = ("%s%s%s__mappings__baseAsset2internalId__" + aA)
158158
159159
160-func aB () = "%s__allowedLpStableScriptHash"
160+func aB () = "%s__shutdown"
161161
162162
163-func aC () = "%s__feeCollectorAddress"
163+func aC () = "%s__allowedLpStableScriptHash"
164164
165165
166-func aD (aE,aF,aG) = throw(((((("Failed: ordValid=" + toString(aE)) + " sndrValid=") + toString(aF)) + " mtchrValid=") + toString(aG)))
166+func aD () = "%s__feeCollectorAddress"
167167
168168
169-func aH (aI,aJ) = valueOrErrorMessage(getString(aI, aJ), makeString(["mandatory ", toString(aI), ".", aJ, " not defined"], ""))
169+func aE (aF,aG,aH) = throw(((((("Failed: ordValid=" + toString(aF)) + " sndrValid=") + toString(aG)) + " mtchrValid=") + toString(aH)))
170170
171171
172-func aK (aI,aJ) = valueOrErrorMessage(getInteger(aI, aJ), makeString(["mandatory ", toString(aI), ".", aJ, " not defined"], ""))
172+func aI (aJ,aK) = valueOrErrorMessage(getString(aJ, aK), makeString(["mandatory ", toString(aJ), ".", aK, " not defined"], ""))
173173
174174
175-func aL (aM) = throw(makeString(["lp_stable.ride:", aM], " "))
175+func aL (aJ,aK) = valueOrErrorMessage(getInteger(aJ, aK), makeString(["mandatory ", toString(aJ), ".", aK, " not defined"], ""))
176176
177177
178-func aN (aM) = makeString(["lp_stable.ride:", aM], " ")
178+func aM (aN) = throw(makeString(["lp_stable.ride:", aN], " "))
179179
180180
181-let aO = addressFromStringValue(aH(this, X()))
181+func aO (aN) = makeString(["lp_stable.ride:", aN], " ")
182182
183-let aP = {
184- let aQ = invoke(aO, "getInFeeREADONLY", [toString(this)], nil)
185- if ($isInstanceOf(aQ, "Int"))
186- then aQ
187- else throw(($getType(aQ) + " couldn't be cast to Int"))
183+
184+let aP = addressFromStringValue(aI(this, Y()))
185+
186+let aQ = {
187+ let aR = invoke(aP, "getInFeeREADONLY", [toString(this)], nil)
188+ if ($isInstanceOf(aR, "Int"))
189+ then aR
190+ else throw(($getType(aR) + " couldn't be cast to Int"))
188191 }
189192
190-let aR = {
191- let aQ = invoke(aO, "getOutFeeREADONLY", [toString(this)], nil)
192- if ($isInstanceOf(aQ, "Int"))
193- then aQ
194- else throw(($getType(aQ) + " couldn't be cast to Int"))
193+let aS = {
194+ let aR = invoke(aP, "getOutFeeREADONLY", [toString(this)], nil)
195+ if ($isInstanceOf(aR, "Int"))
196+ then aR
197+ else throw(($getType(aR) + " couldn't be cast to Int"))
195198 }
196199
197-let aS = aH(this, ak())
200+let aT = aI(this, al())
198201
199-func aT () = valueOrElse(getBoolean(aO, aA()), false)
202+func aU () = valueOrElse(getBoolean(aP, aB()), false)
200203
201204
202-func aU () = fromBase58String(aH(aO, au()))
205+func aV () = fromBase58String(aI(aP, av()))
203206
204207
205-let aV = addressFromStringValue(aH(aO, aC()))
208+let aW = addressFromStringValue(aI(aP, aD()))
206209
207-func aW () = {
208- let aX = aH(this, ai())
209- let aY = aH(this, aj())
210- let aZ = aK(aO, ay(aY))
211- let aw = aK(aO, ay(aX))
212- split(aH(aO, av(toString(aw), toString(aZ))), n)
210+func aX () = {
211+ let aY = aI(this, aj())
212+ let aZ = aI(this, ak())
213+ let ba = aL(aP, az(aZ))
214+ let ax = aL(aP, az(aY))
215+ split(aI(aP, aw(toString(ax), toString(ba))), n)
213216 }
214217
215218
216-func ba (bb) = if ((bb == k))
219+func bb (bc) = if ((bc == k))
217220 then unit
218- else fromBase58String(bb)
221+ else fromBase58String(bc)
219222
220223
221-func bc (bb) = if ((bb == unit))
224+func bd (bc) = if ((bc == unit))
222225 then k
223- else toBase58String(value(bb))
226+ else toBase58String(value(bc))
224227
225228
226-func bd (be) = $Tuple9(addressFromStringValue(be[t]), parseIntValue(be[u]), fromBase58String(be[v]), ba(be[w]), ba(be[x]), parseIntValue(be[y]), parseIntValue(be[z]), fromBase58String(be[A]), fromBase58String(be[B]))
229+func be (bf) = $Tuple9(addressFromStringValue(bf[t]), parseIntValue(bf[u]), fromBase58String(bf[v]), bb(bf[w]), bb(bf[x]), parseIntValue(bf[y]), parseIntValue(bf[z]), fromBase58String(bf[A]), fromBase58String(bf[B]))
227230
228231
229-let bf = bd(aW())
232+let bg = be(aX())
230233
231-let bg = bf
234+let bh = bg
232235
233-let bh = bg._1
236+let bi = bh._1
234237
235-let bi = bg._2
238+let bj = bh._2
236239
237-let bj = bg._3
240+let bk = bh._3
238241
239-let bk = bg._4
242+let bl = bh._4
240243
241-let bl = bg._5
244+let bm = bh._5
242245
243-let bm = bg._6
246+let bn = bh._6
244247
245-let bn = bg._7
248+let bo = bh._7
246249
247-let bo = bg._8
250+let bp = bh._8
248251
249-let bp = bg._9
252+let bq = bh._9
250253
251-func bq () = split(aH(aO, at()), n)
254+func br () = split(aI(aP, au()), n)
252255
253256
254-let br = bq()
257+let bs = br()
255258
256-let bs = valueOrErrorMessage(addressFromString(br[C]), "Invalid staking contract address")
259+let bt = valueOrErrorMessage(addressFromString(bs[C]), "Invalid staking contract address")
257260
258-let bt = valueOrErrorMessage(addressFromString(br[E]), "Invalid slipage contract address")
261+let bu = valueOrErrorMessage(addressFromString(bs[E]), "Invalid slipage contract address")
259262
260-let bu = valueOrErrorMessage(addressFromString(br[F]), "Invalid gwx contract address")
263+let bv = valueOrErrorMessage(addressFromString(bs[F]), "Invalid gwx contract address")
261264
262-let bv = valueOrErrorMessage(addressFromString(br[D]), "Invalid gwx contract address")
265+let bw = valueOrErrorMessage(addressFromString(bs[D]), "Invalid gwx contract address")
263266
264-func bw (bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG)], n)
267+func bx (by,bz,bA,bB,bC,bD,bE,bF,bG,bH) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH)], n)
265268
266269
267-func bH (bI,bJ,bK,bA,bD,bE) = makeString(["%d%d%d%d%d%d", toString(bI), toString(bJ), toString(bK), toString(bA), toString(bD), toString(bE)], n)
270+func bI (bJ,bK,bL,bB,bE,bF) = makeString(["%d%d%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bB), toString(bE), toString(bF)], n)
268271
269272
270-func bL (bM) = if ((bM == "WAVES"))
273+func bM (bN) = if ((bN == "WAVES"))
271274 then wavesBalance(this).available
272- else assetBalance(this, fromBase58String(bM))
275+ else assetBalance(this, fromBase58String(bN))
273276
274277
275-func bN (bO,bP) = fraction(bO, c, bP)
278+func bO (bP,bQ) = fraction(bP, c, bQ)
276279
277280
278-func bQ (bO,bP,O) = fraction(bO, c, bP, O)
281+func bR (bP,bQ,P) = fraction(bP, c, bQ, P)
279282
280283
281-func bR (bS,bT,bU) = {
282- let bV = fraction((bS - bT), b, bT)
283- let bW = ((bU - V(bV)) > d)
284- if (!(bW))
285- then throw(("Big slpg: " + toString(bV)))
286- else $Tuple2(bW, min([bS, bT]))
284+func bS (bT,bU,bV) = {
285+ let bW = fraction((bT - bU), b, bU)
286+ let bX = ((bV - W(bW)) > d)
287+ if (!(bX))
288+ then throw(("Big slpg: " + toString(bW)))
289+ else $Tuple2(bX, min([bT, bU]))
287290 }
288291
289292
290-func bX (bY,bZ,ca) = {
291- let bV = fraction(bZ, b, bY)
292- let cb = (ca > bV)
293- if (if (cb)
293+func bY (bZ,ca,cb) = {
294+ let bW = fraction(ca, b, bZ)
295+ let cc = (cb > bW)
296+ if (if (cc)
294297 then true
295- else (bZ > bY))
296- then throw(((((((toString(bZ) + " ") + toString(bY)) + " ") + toString(bV)) + " ") + toString(ca)))
297- else cb
298+ else (ca > bZ))
299+ then throw(((((((toString(ca) + " ") + toString(bZ)) + " ") + toString(bW)) + " ") + toString(cb)))
300+ else cc
298301 }
299302
300303
301-func cc (cd,ce,cf,cg) = {
302- let ch = H(cf, cd)
304+func cd (ce,cf,cg,ch) = {
303305 let ci = H(cg, ce)
304- bN(ci, ch)
306+ let cj = H(ch, cf)
307+ bO(cj, ci)
305308 }
306309
307310
308-func cj (cf,cg,ck) = {
309- let cl = bm
311+func ck (cg,ch,cl) = {
310312 let cm = bn
311- let cn = cc(cl, cm, cf, cg)
312- let bP = H(cf, cl)
313- let bO = H(cg, cm)
314- let co = H(ck, a)
315- let cp = bN(bP, co)
316- let cq = bN(bO, co)
317-[cn, cp, cq]
313+ let cn = bo
314+ let co = cd(cm, cn, cg, ch)
315+ let bQ = H(cg, cm)
316+ let bP = H(ch, cn)
317+ let cp = H(cl, a)
318+ let cq = bO(bQ, cp)
319+ let cr = bO(bP, cp)
320+[co, cq, cr]
318321 }
319322
320323
321-func cr (cf,cg,ck) = {
322- let cs = cj(cf, cg, ck)
323-[K(cs[0], a), K(cs[1], a), K(cs[2], a)]
324+func cs (cg,ch,cl) = {
325+ let ct = ck(cg, ch, cl)
326+[L(ct[0], a), L(ct[1], a), L(ct[2], a)]
324327 }
325328
326329
327-func ct (cu,an) = {
328- let cv = if ((an == 0))
330+func cu (cv,ao) = {
331+ let cw = if ((ao == 0))
329332 then 0
330- else fraction(cu, an, a)
331- $Tuple2((cu - cv), cv)
333+ else fraction(cv, ao, a)
334+ $Tuple2((cv - cw), cw)
332335 }
333336
334337
335-func cw (cx,cy,cz,cA) = {
336- let cB = bj
337- let cC = toBase58String(value(bk))
338+func cx (cy,cz,cA,cB) = {
339+ let cC = bk
338340 let cD = toBase58String(value(bl))
339- let cE = bm
341+ let cE = toBase58String(value(bm))
340342 let cF = bn
341- let cG = toString(bi)
342- let cH = valueOrErrorMessage(assetInfo(cB), "Wrong LP id").quantity
343- if ((toBase58String(cB) != cy))
343+ let cG = bo
344+ let cH = toString(bj)
345+ let cI = valueOrErrorMessage(assetInfo(cC), "Wrong LP id").quantity
346+ if ((toBase58String(cC) != cz))
344347 then throw("Wrong pmt asset")
345348 else {
346- let cI = bL(cC)
347- let cJ = H(cI, cE)
348- let cK = bL(cD)
349- let cL = H(cK, cF)
350- let cM = bN(cL, cJ)
351- let cN = K(cM, a)
352- let cO = H(cz, a)
353- let cP = H(cH, a)
354- let cQ = fraction(cJ, cO, cP)
355- let cR = fraction(cL, cO, cP)
356- let cS = N(cQ, cE, FLOOR)
357- let cT = N(cR, cF, FLOOR)
358- let cU = if ((cx == ""))
349+ let cJ = bM(cD)
350+ let cK = H(cJ, cF)
351+ let cL = bM(cE)
352+ let cM = H(cL, cG)
353+ let cN = bO(cM, cK)
354+ let cO = L(cN, a)
355+ let cP = H(cA, a)
356+ let cQ = H(cI, a)
357+ let cR = fraction(cK, cP, cQ)
358+ let cS = fraction(cM, cP, cQ)
359+ let cT = O(cR, cF, FLOOR)
360+ let cU = O(cS, cG, FLOOR)
361+ let cV = if ((cy == ""))
359362 then nil
360- else [ScriptTransfer(cA, cS, if ((cC == "WAVES"))
363+ else [ScriptTransfer(cB, cT, if ((cD == "WAVES"))
361364 then unit
362- else fromBase58String(cC)), ScriptTransfer(cA, cT, if ((cD == "WAVES"))
365+ else fromBase58String(cD)), ScriptTransfer(cB, cU, if ((cE == "WAVES"))
363366 then unit
364- else fromBase58String(cD)), StringEntry(ah(toString(cA), cx), bH(cS, cT, cz, cN, height, lastBlock.timestamp)), IntegerEntry(aa(), cN), IntegerEntry(ab(height, lastBlock.timestamp), cN)]
365- $Tuple10(cS, cT, cC, cD, cI, cK, cH, cM, cG, cU)
367+ else fromBase58String(cE)), StringEntry(ai(toString(cB), cy), bI(cT, cU, cA, cO, height, lastBlock.timestamp)), IntegerEntry(ab(), cO), IntegerEntry(ac(height, lastBlock.timestamp), cO)]
368+ $Tuple10(cT, cU, cD, cE, cJ, cL, cI, cN, cH, cV)
366369 }
367370 }
368371
369372
370-func cV (cx,bU,cW,cX,cY,cZ,cA,da,db,dc,dd,de,df) = {
371- let cB = bj
372- let dg = toBase58String(value(bk))
373+func cW (cy,bV,cX,cY,cZ,da,cB,db,dc,dd,de,df,dg) = {
374+ let cC = bk
373375 let dh = toBase58String(value(bl))
374- let di = bo
376+ let di = toBase58String(value(bm))
375377 let dj = bp
376- let dk = bm
378+ let dk = bq
377379 let dl = bn
378- let cG = toString(bi)
379- let dm = valueOrErrorMessage(assetInfo(cB), "Wr lp as").quantity
380- let cI = if (da)
381- then bL(dg)
382- else if (if (dc)
383- then (df == dg)
380+ let dm = bo
381+ let cH = toString(bj)
382+ let dn = valueOrErrorMessage(assetInfo(cC), "Wr lp as").quantity
383+ let cJ = if (db)
384+ then bM(dh)
385+ else if (if (dd)
386+ then (dg == dh)
384387 else false)
385- then (bL(dg) - de)
386- else if (dc)
387- then bL(dg)
388- else (bL(dg) - cW)
389- let cK = if (da)
390- then bL(dh)
391- else if (if (dc)
392- then (df == dh)
388+ then (bM(dh) - df)
389+ else if (dd)
390+ then bM(dh)
391+ else (bM(dh) - cX)
392+ let cL = if (db)
393+ then bM(di)
394+ else if (if (dd)
395+ then (dg == di)
393396 else false)
394- then (bL(dh) - de)
395- else if (dc)
396- then bL(dh)
397- else (bL(dh) - cY)
398- let dn = H(cW, dk)
399- let do = H(cY, dl)
400- let dp = bN(do, dn)
401- let cJ = H(cI, dk)
402- let cL = H(cK, dl)
403- let dq = if ((dm == 0))
397+ then (bM(di) - df)
398+ else if (dd)
399+ then bM(di)
400+ else (bM(di) - cZ)
401+ let do = H(cX, dl)
402+ let dp = H(cZ, dm)
403+ let dq = bO(dp, do)
404+ let cK = H(cJ, dl)
405+ let cM = H(cL, dm)
406+ let dr = if ((dn == 0))
404407 then {
405- let cM = d
406- let dr = d
407- let co = pow((dn * do), 0, toBigInt(5), 1, 0, DOWN)
408- $Tuple5(K(co, a), K(dn, dk), K(do, dl), bN((cL + do), (cJ + dn)), dr)
408+ let cN = d
409+ let ds = d
410+ let cp = pow((do * dp), 0, toBigInt(5), 1, 0, DOWN)
411+ $Tuple5(L(cp, a), L(do, dl), L(dp, dm), bO((cM + dp), (cK + do)), ds)
409412 }
410413 else {
411- let cM = bN(cL, cJ)
412- let ds = fraction(V((cM - dp)), c, cM)
413- let dr = H(bU, a)
414- if (if (if (dd)
415- then (cM != d)
414+ let cN = bO(cM, cK)
415+ let dt = fraction(W((cN - dq)), c, cN)
416+ let ds = H(bV, a)
417+ if (if (if (de)
418+ then (cN != d)
416419 else false)
417- then (ds > dr)
420+ then (dt > ds)
418421 else false)
419- then throw(((("Price slippage " + toString(ds)) + " > ") + toString(dr)))
422+ then throw(((("Price slippage " + toString(dt)) + " > ") + toString(ds)))
420423 else {
421- let dt = H(dm, a)
422- let du = fraction(dn, bQ(cL, cJ, CEILING), c, CEILING)
423- let dv = fraction(do, c, bQ(cL, cJ, FLOOR), CEILING)
424- let dw = if ((du > do))
425- then $Tuple2(dv, do)
426- else $Tuple2(dn, du)
427- let dx = dw._1
428- let dy = dw._2
429- let co = fraction(dt, dy, cL, FLOOR)
430- $Tuple5(N(co, a, FLOOR), N(dx, dk, CEILING), N(dy, dl, CEILING), cM, dr)
424+ let du = H(dn, a)
425+ let dv = fraction(do, bR(cM, cK, CEILING), c, CEILING)
426+ let dw = fraction(dp, c, bR(cM, cK, FLOOR), CEILING)
427+ let dx = if ((dv > dp))
428+ then $Tuple2(dw, dp)
429+ else $Tuple2(do, dv)
430+ let dy = dx._1
431+ let dz = dx._2
432+ let cp = fraction(du, dz, cM, FLOOR)
433+ $Tuple5(O(cp, a, FLOOR), O(dy, dl, CEILING), O(dz, dm, CEILING), cN, ds)
431434 }
432435 }
433- let dz = dq._1
434- let dA = dq._2
435- let dB = dq._3
436- let cN = K(dq._4, a)
437- let dC = K(dq._5, a)
438- if ((0 >= dz))
436+ let dA = dr._1
437+ let dB = dr._2
438+ let dC = dr._3
439+ let cO = L(dr._4, a)
440+ let dD = L(dr._5, a)
441+ if ((0 >= dA))
439442 then throw("LP <= 0")
440443 else {
441- let dD = if (!(db))
444+ let dE = if (!(dc))
442445 then 0
443- else dz
444- let dE = (cW - dA)
445- let dF = (cY - dB)
446- let dG = if (if (dc)
447- then (df == dg)
446+ else dA
447+ let dF = (cX - dB)
448+ let dG = (cZ - dC)
449+ let dH = if (if (dd)
450+ then (dg == dh)
448451 else false)
449- then $Tuple2(de, 0)
450- else if (if (dc)
451- then (df == dh)
452+ then $Tuple2(df, 0)
453+ else if (if (dd)
454+ then (dg == di)
452455 else false)
453- then $Tuple2(0, de)
454- else $Tuple2(dA, dB)
455- let dH = dG._1
456- let dI = dG._2
457- let dJ = [IntegerEntry(aa(), cN), IntegerEntry(ab(height, lastBlock.timestamp), cN), StringEntry(ae(cA, cx), bw(dH, dI, dD, cN, bU, dC, height, lastBlock.timestamp, dE, dF))]
458- $Tuple13(dz, dD, cN, cI, cK, dm, cB, cG, dJ, dE, dF, cX, cZ)
456+ then $Tuple2(0, df)
457+ else $Tuple2(dB, dC)
458+ let dI = dH._1
459+ let dJ = dH._2
460+ let dK = [IntegerEntry(ab(), cO), IntegerEntry(ac(height, lastBlock.timestamp), cO), StringEntry(af(cB, cy), bx(dI, dJ, dE, cO, bV, dD, height, lastBlock.timestamp, dF, dG))]
461+ $Tuple13(dA, dE, cO, cJ, cL, dn, cC, cH, dK, dF, dG, cY, da)
459462 }
460463 }
461464
462465
463-func dK (dL) = {
464- let dM = dL[0]
465- let dN = dL[1]
466- let dO = (dM + dN)
467- if ((dO == e))
466+func dL (dM) = {
467+ let dN = dM[0]
468+ let dO = dM[1]
469+ let dP = (dN + dO)
470+ if ((dP == e))
468471 then e
469472 else {
470- let dP = parseIntValue(aS)
471- let dQ = (dP * 2)
472- let cs = fraction(dM, dN, f)
473- let dR = fraction(cs, i, f)
474- let dS = fraction(toBigInt(dQ), dO, f)
475- let dT = toBigInt((dQ - 1))
476- func dU (dV) = {
477- let dW = fraction(dV, dV, f)
478- let dX = fraction(dW, dV, f)
479- let dY = fraction(dX, f, dR)
480- fraction((dS + fraction(dY, g, f)), dV, (fraction(dT, dV, f) + fraction(h, dY, f)), CEILING)
473+ let dQ = parseIntValue(aT)
474+ let dR = (dQ * 2)
475+ let ct = fraction(dN, dO, f)
476+ let dS = fraction(ct, i, f)
477+ let dT = fraction(toBigInt(dR), dP, f)
478+ let dU = toBigInt((dR - 1))
479+ func dV (dW) = {
480+ let dX = fraction(dW, dW, f)
481+ let dY = fraction(dX, dW, f)
482+ let dZ = fraction(dY, f, dS)
483+ fraction((dT + fraction(dZ, g, f)), dW, (fraction(dU, dW, f) + fraction(h, dZ, f)))
481484 }
482485
483- func dZ (ea,eb) = if (ea._2)
484- then ea
486+ func ea (eb,ec) = if (eb._2)
487+ then eb
485488 else {
486- let dV = ea._1
487- let ec = dU(dV)
488- let ed = (ec - value(dV))
489- let ee = if ((e > ed))
490- then -(ed)
491- else ed
492- if ((f >= ee))
493- then $Tuple2(ec, true)
494- else $Tuple2(ec, false)
489+ let dW = eb._1
490+ let ed = dV(dW)
491+ let ee = (ed - value(dW))
492+ let ef = if ((e > ee))
493+ then -(ee)
494+ else ee
495+ if ((f >= ef))
496+ then $Tuple2(ed, true)
497+ else $Tuple2(ed, false)
495498 }
496499
497- let ef = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
498- let eg = {
499- let eh = ef
500- let ei = size(eh)
501- let ej = $Tuple2(dO, false)
502- func ek (el,em) = if ((em >= ei))
503- then el
504- else dZ(el, eh[em])
500+ let eg = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
501+ let eh = {
502+ let ei = eg
503+ let ej = size(ei)
504+ let ek = $Tuple2(dP, false)
505+ func el (em,en) = if ((en >= ej))
506+ then em
507+ else ea(em, ei[en])
505508
506- func en (el,em) = if ((em >= ei))
507- then el
509+ func eo (em,en) = if ((en >= ej))
510+ then em
508511 else throw("List size exceeds 15")
509512
510- en(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ej, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
513+ eo(el(el(el(el(el(el(el(el(el(el(el(el(el(el(el(ek, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
511514 }
512- let dV = eg._1
513- let eo = eg._2
514- if (eo)
515- then dV
516- else throw(("D calculation error, D = " + toString(dV)))
515+ let dW = eh._1
516+ let ep = eh._2
517+ if (ep)
518+ then dW
519+ else throw(("D calculation error, D = " + toString(dW)))
517520 }
518521 }
519522
520523
521-func ep (dL) = {
522- let eq = g
523- let dM = dL[0]
524- let dN = dL[1]
525- let er = parseBigIntValue(l)
526- let dP = (parseBigIntValue(aS) * er)
527- let dO = (dM + dN)
528- if ((dO == e))
529- then e
530- else {
531- let dQ = (dP * eq)
532- let dR = (((dM * dN) * eq) * eq)
533- let es = ((dQ * dO) / er)
534- let et = (dQ - er)
535- let eu = (eq + f)
536- func dZ (ea,ev) = {
537- let ew = ea
538- let dV = ew._1
539- let eo = ew._2
540- if ((eo != unit))
541- then ea
542- else {
543- let dY = (((dV * dV) * dV) / dR)
544- let ec = (((es + (dY * eq)) * dV) / (((et * dV) / er) + (eu * dY)))
545- let ee = W((ec - value(dV)))
546- if ((f >= ee))
547- then $Tuple2(ec, ev)
548- else $Tuple2(ec, unit)
549- }
524+func eq (dM,ec,er) = {
525+ let es = g
526+ let et = dM[if ((ec == 0))
527+ then 1
528+ else 0]
529+ let eu = parseBigIntValue(l)
530+ let dQ = (parseBigIntValue(aT) * eu)
531+ let dP = et
532+ let dR = (dQ * es)
533+ let ev = (((((er * er) / (et * es)) * er) * eu) / (dR * es))
534+ let ew = ((dP + ((er * eu) / dR)) - er)
535+ func ea (eb,ex) = {
536+ let ey = eb
537+ let ez = ey._1
538+ let ep = ey._2
539+ if ((ep != unit))
540+ then eb
541+ else {
542+ let eA = (((ez * ez) + ev) / ((g * ez) + ew))
543+ let eB = X((eA - value(ez)))
544+ if ((f >= eB))
545+ then $Tuple2(eA, ex)
546+ else $Tuple2(eA, unit)
550547 }
548+ }
551549
552- let ef = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
553- let ex = {
554- let eh = ef
555- let ei = size(eh)
556- let ej = $Tuple2(dO, unit)
557- func ek (el,em) = if ((em >= ei))
558- then el
559- else dZ(el, eh[em])
550+ let eg = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
551+ let eC = {
552+ let ei = eg
553+ let ej = size(ei)
554+ let ek = $Tuple2(er, unit)
555+ func el (em,en) = if ((en >= ej))
556+ then em
557+ else ea(em, ei[en])
560558
561- func en (el,em) = if ((em >= ei))
562- then el
563- else throw("List size exceeds 15")
559+ func eo (em,en) = if ((en >= ej))
560+ then em
561+ else throw("List size exceeds 15")
564562
565- en(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ej, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
566- }
567- let dV = ex._1
568- let eo = ex._2
569- if ((eo != unit))
570- then dV
571- else throw(("D calculation error, D = " + toString(dV)))
572- }
563+ eo(el(el(el(el(el(el(el(el(el(el(el(el(el(el(el(ek, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
564+ }
565+ let ez = eC._1
566+ let ep = eC._2
567+ if ((ep != unit))
568+ then ez
569+ else throw(("Y calculation error, Y = " + toString(ez)))
573570 }
574571
575572
576-func ey (dL,eb,ez) = {
577- let eq = g
578- let eA = dL[if ((eb == 0))
579- then 1
580- else 0]
581- let er = parseBigIntValue(l)
582- let dP = (parseBigIntValue(aS) * er)
583- let dO = eA
584- let dQ = (dP * eq)
585- let eB = (((((ez * ez) / (eA * eq)) * ez) * er) / (dQ * eq))
586- let eC = ((dO + ((ez * er) / dQ)) - ez)
587- func dZ (ea,ev) = {
588- let eD = ea
589- let eE = eD._1
590- let eo = eD._2
591- if ((eo != unit))
592- then ea
593- else {
594- let eF = (((eE * eE) + eB) / ((g * eE) + eC))
595- let eG = W((eF - value(eE)))
596- if ((f >= eG))
597- then $Tuple2(eF, ev)
598- else $Tuple2(eF, unit)
599- }
600- }
601-
602- let ef = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
603- let eH = {
604- let eh = ef
605- let ei = size(eh)
606- let ej = $Tuple2(ez, unit)
607- func ek (el,em) = if ((em >= ei))
608- then el
609- else dZ(el, eh[em])
610-
611- func en (el,em) = if ((em >= ei))
612- then el
613- else throw("List size exceeds 15")
614-
615- en(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ej, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
616- }
617- let eE = eH._1
618- let eo = eH._2
619- if ((eo != unit))
620- then eE
621- else throw(("Y calculation error, Y = " + toString(eE)))
573+func eD (eE,eF,eG) = {
574+ let eH = fraction(dL([K(eE, toBigInt(bn)), K(eF, toBigInt(bo))]), f, eG)
575+ if ((eG == e))
576+ then e
577+ else eH
622578 }
623579
624580
625581 func eI (eJ,eK,eL) = {
626- let eM = fraction(dK([H(toInt(eJ), bm), H(toInt(eK), bn)]), f, eL)
627- if ((eL == e))
628- then e
629- else eM
582+ let eM = (toBigInt(bM(bd(bl))) - eJ)
583+ let eN = (toBigInt(bM(bd(bm))) - eK)
584+ let eO = (toBigInt(value(assetInfo(bk)).quantity) - eL)
585+ let eP = eD(eM, eN, eO)
586+ eP
630587 }
631588
632589
633-func eN (eO,eP,eQ) = {
634- let eR = (toBigInt(bL(bc(bk))) - eO)
635- let eS = (toBigInt(bL(bc(bl))) - eP)
636- let eT = (toBigInt(value(assetInfo(bj)).quantity) - eQ)
637- let eU = eI(eR, eS, eT)
638- eU
590+func eQ (eR,eS,eL) = {
591+ let eM = (bM(bd(bl)) + eR)
592+ let eN = (bM(bd(bm)) + eS)
593+ let eO = (value(assetInfo(bk)).quantity + eL)
594+ let eH = eD(toBigInt(eM), toBigInt(eN), toBigInt(eO))
595+ let eT = [IntegerEntry(aq, height), StringEntry(ap, toString(eH))]
596+ $Tuple2(eT, eH)
639597 }
640598
641599
642-func eV (eW,eX,eQ) = {
643- let eR = (bL(bc(bk)) + eW)
644- let eS = (bL(bc(bl)) + eX)
645- let eT = (value(assetInfo(bj)).quantity + eQ)
646- let eM = eI(toBigInt(eR), toBigInt(eS), toBigInt(eT))
647- let eY = [IntegerEntry(ap, height), StringEntry(ao, toString(eM))]
648- $Tuple2(eY, eM)
649- }
600+func eU (eV,eH) = if ((eH >= eV))
601+ then true
602+ else aM("updated DLp lower than current DLp")
650603
651604
652-func eZ (fa,eM) = if ((eM >= fa))
653- then true
654- else aL("updated DLp lower than current DLp")
655-
656-
657-func fb (fc) = {
658- let fd = fc.amount
659- let fe = fraction(fc.amount, fc.price, a, FLOOR)
660- let ff = if ((fc.orderType == Buy))
661- then $Tuple2(fd, -(fe))
662- else $Tuple2(-(fd), fe)
663- let eW = ff._1
664- let eX = ff._2
665- if (if (if (aT())
605+func eW (eX) = {
606+ let eY = eX.amount
607+ let eZ = fraction(eX.amount, eX.price, a, FLOOR)
608+ let fa = if ((eX.orderType == Buy))
609+ then $Tuple2(eY, -(eZ))
610+ else $Tuple2(-(eY), eZ)
611+ let eR = fa._1
612+ let eS = fa._2
613+ if (if (if (aU())
666614 then true
667- else (bi == r))
615+ else (bj == r))
668616 then true
669- else (bi == s))
617+ else (bj == s))
670618 then throw("Admin blocked")
671- else if (if ((fc.assetPair.amountAsset != bk))
619+ else if (if ((eX.assetPair.amountAsset != bl))
672620 then true
673- else (fc.assetPair.priceAsset != bl))
621+ else (eX.assetPair.priceAsset != bm))
674622 then throw("Wr assets")
675623 else {
676- let fg = parseBigIntValue(getStringValue(this, ao))
677- let fh = eV(eW, eX, 0)
678- let fi = fh._1
679- let fj = fh._2
680- let fk = (fj >= fg)
681- fk
624+ let fb = parseBigIntValue(getStringValue(this, ap))
625+ let fc = eQ(eR, eS, 0)
626+ let fd = fc._1
627+ let fe = fc._2
628+ let ff = (fe >= fb)
629+ ff
682630 }
683631 }
684632
685633
686-func fl (eb) = if ((size(eb.payments) != 1))
634+func fg (ec) = if ((size(ec.payments) != 1))
687635 then throw("1 pmnt exp")
688636 else {
689- let fm = value(eb.payments[0])
690- let cy = value(fm.assetId)
691- let de = fm.amount
692- let dq = cw(toBase58String(eb.transactionId), toBase58String(cy), de, eb.caller)
693- let cS = dq._1
694- let cT = dq._2
695- let cG = parseIntValue(dq._9)
696- let cU = dq._10
697- if (if (aT())
637+ let fh = value(ec.payments[0])
638+ let cz = value(fh.assetId)
639+ let df = fh.amount
640+ let dr = cx(toBase58String(ec.transactionId), toBase58String(cz), df, ec.caller)
641+ let cT = dr._1
642+ let cU = dr._2
643+ let cH = parseIntValue(dr._9)
644+ let cV = dr._10
645+ if (if (aU())
698646 then true
699- else (cG == s))
700- then throw(("Admin blocked: " + toString(cG)))
701- else $Tuple5(cS, cT, de, cy, cU)
647+ else (cH == s))
648+ then throw(("Admin blocked: " + toString(cH)))
649+ else $Tuple5(cT, cU, df, cz, cV)
702650 }
703651
704652
705-func fn (fo,ag,fp,fq,bU,db,dc,dd,de,df) = {
706- let dq = cV(ag, bU, value(fp).amount, value(fp).assetId, value(fq).amount, value(fq).assetId, fo, (ag == ""), db, dc, dd, de, df)
707- let cG = parseIntValue(dq._8)
708- if (if (if (aT())
653+func fi (fj,ah,fk,fl,bV,dc,dd,de,df,dg) = {
654+ let dr = cW(ah, bV, value(fk).amount, value(fk).assetId, value(fl).amount, value(fl).assetId, fj, (ah == ""), dc, dd, de, df, dg)
655+ let cH = parseIntValue(dr._8)
656+ if (if (if (aU())
709657 then true
710- else (cG == q))
658+ else (cH == q))
711659 then true
712- else (cG == s))
713- then throw(("Blocked:" + toString(cG)))
714- else dq
660+ else (cH == s))
661+ then throw(("Blocked:" + toString(cH)))
662+ else dr
715663 }
716664
717665
718-func fr (fs,cy,cA,ag,ft) = {
719- let cC = toBase58String(value(bk))
666+func fm (fn,cz,cB,ah,fo) = {
720667 let cD = toBase58String(value(bl))
721- let cB = bj
722- let dk = bm
668+ let cE = toBase58String(value(bm))
669+ let cC = bk
723670 let dl = bn
724- let eT = toBigInt(valueOrErrorMessage(assetInfo(cB), "invalid lp asset").quantity)
725- let fu = if ((eT > e))
671+ let dm = bo
672+ let eO = toBigInt(valueOrErrorMessage(assetInfo(cC), "invalid lp asset").quantity)
673+ let fp = if ((eO > e))
726674 then true
727675 else throw("initial deposit requires all coins")
728- if ((fu == fu))
676+ if ((fp == fp))
729677 then {
730- let cI = bL(cC)
731- let cK = bL(cD)
732- let fv = if ((ag == ""))
733- then $Tuple2(cI, cK)
734- else if ((cy == cC))
735- then if ((fs > cI))
678+ let cJ = bM(cD)
679+ let cL = bM(cE)
680+ let fq = if ((ah == ""))
681+ then $Tuple2(cJ, cL)
682+ else if ((cz == cD))
683+ then if ((fn > cJ))
736684 then throw("invalid payment amount")
737- else $Tuple2((cI - fs), cK)
738- else if ((cy == cD))
739- then if ((fs > cK))
685+ else $Tuple2((cJ - fn), cL)
686+ else if ((cz == cE))
687+ then if ((fn > cL))
740688 then throw("invalid payment amount")
741- else $Tuple2(cI, (cK - fs))
689+ else $Tuple2(cJ, (cL - fn))
742690 else throw("wrong pmtAssetId")
743- let fw = fv._1
744- let fx = fv._2
745- let fy = if ((cy == cC))
746- then $Tuple2(fs, 0)
747- else if ((cy == cD))
748- then $Tuple2(0, fs)
691+ let fr = fq._1
692+ let fs = fq._2
693+ let ft = if ((cz == cD))
694+ then $Tuple2(fn, 0)
695+ else if ((cz == cE))
696+ then $Tuple2(0, fn)
749697 else throw("invalid payment")
750- let fz = fy._1
751- let fA = fy._2
752- let fB = if (ft)
753- then $Tuple3(ct(fz, aP)._1, ct(fA, aP)._1, ct(fs, aP)._2)
754- else $Tuple3(fz, fA, 0)
755- let fC = fB._1
756- let fD = fB._2
757- let cv = fB._3
758- let fE = (fw + fC)
759- let fF = (fx + fD)
760- let bZ = dK([toBigInt(fw), toBigInt(fx)])
761- let bY = dK([toBigInt(fE), toBigInt(fF)])
762- let fG = if ((bY > bZ))
698+ let fu = ft._1
699+ let fv = ft._2
700+ let fw = if (fo)
701+ then $Tuple3(cu(fu, aQ)._1, cu(fv, aQ)._1, cu(fn, aQ)._2)
702+ else $Tuple3(fu, fv, 0)
703+ let fx = fw._1
704+ let fy = fw._2
705+ let cw = fw._3
706+ let fz = (fr + fx)
707+ let fA = (fs + fy)
708+ let ca = dL([toBigInt(fr), toBigInt(fs)])
709+ let bZ = dL([toBigInt(fz), toBigInt(fA)])
710+ let fB = if ((bZ > ca))
763711 then true
764712 else throw()
765- if ((fG == fG))
713+ if ((fB == fB))
766714 then {
767- let fH = fraction(eT, (bY - bZ), bZ, FLOOR)
768- let cN = K(bN(H(fF, dl), H(fE, dk)), a)
769- let dJ = [IntegerEntry(aa(), cN), IntegerEntry(ab(height, lastBlock.timestamp), cN), StringEntry(ae(cA, ag), bw(fz, fA, toInt(fH), cN, 0, 0, height, lastBlock.timestamp, 0, 0))]
770- let fI = fraction(fx, a, fw)
771- let fJ = fraction(fs, a, (fI + a))
772- let fK = (fs - fJ)
773- let fL = fraction(eT, toBigInt(fK), toBigInt(fx))
774- let fM = toInt(fraction((fH - fL), b, fL))
775- $Tuple4(toInt(fH), dJ, cv, fM)
715+ let fC = fraction(eO, (bZ - ca), ca, FLOOR)
716+ let cO = L(bO(H(fA, dm), H(fz, dl)), a)
717+ let dK = [IntegerEntry(ab(), cO), IntegerEntry(ac(height, lastBlock.timestamp), cO), StringEntry(af(cB, ah), bx(fu, fv, toInt(fC), cO, 0, 0, height, lastBlock.timestamp, 0, 0))]
718+ let fD = fraction(fs, a, fr)
719+ let fE = fraction(fn, a, (fD + a))
720+ let fF = (fn - fE)
721+ let fG = fraction(eO, toBigInt(fF), toBigInt(fs))
722+ let fH = toInt(fraction((fC - fG), b, fG))
723+ $Tuple4(toInt(fC), dK, cw, fH)
776724 }
777725 else throw("Strict value is not equal to itself.")
778726 }
780728 }
781729
782730
783-func fN (fO,fP,fQ,fo,fR,fS) = {
784- let cB = toBase58String(value(bj))
731+func fI (fJ,fK,fL,fj,fM,fN) = {
785732 let cC = toBase58String(value(bk))
786733 let cD = toBase58String(value(bl))
787- let fT = bm
788- let fU = bn
789- let fV = bi
790- let cA = if ((fo == bv))
791- then fR
792- else fo
793- let fm = value(fQ[0])
794- let cy = value(fm.assetId)
795- let de = fm.amount
796- let eU = eN(e, e, e)
797- if ((eU == eU))
734+ let cE = toBase58String(value(bm))
735+ let fO = bn
736+ let fP = bo
737+ let fQ = bj
738+ let cB = if ((fj == bw))
739+ then fM
740+ else fj
741+ let fh = value(fL[0])
742+ let cz = value(fh.assetId)
743+ let df = fh.amount
744+ let eP = eI(e, e, e)
745+ if ((eP == eP))
798746 then {
799- let cx = toBase58String(fS)
800- if ((cB != toBase58String(cy)))
747+ let cy = toBase58String(fN)
748+ if ((cC != toBase58String(cz)))
801749 then throw("Wrong LP")
802750 else {
803- let cI = bL(cC)
804- let cK = bL(cD)
805- let fW = {
806- let aQ = invoke(this, "getOneTknV2READONLY", [fO, de], nil)
807- if ($isInstanceOf(aQ, "(Int, Int)"))
808- then aQ
809- else throw(($getType(aQ) + " couldn't be cast to (Int, Int)"))
751+ let cJ = bM(cD)
752+ let cL = bM(cE)
753+ let fR = {
754+ let aR = invoke(this, "getOneTknV2READONLY", [fJ, df], nil)
755+ if ($isInstanceOf(aR, "(Int, Int)"))
756+ then aR
757+ else throw(($getType(aR) + " couldn't be cast to (Int, Int)"))
810758 }
811- if ((fW == fW))
759+ if ((fR == fR))
812760 then {
813- let cv = fW._2
814- let fX = fW._1
815- let fY = if (if ((fP > 0))
816- then (fP > fX)
761+ let cw = fR._2
762+ let fS = fR._1
763+ let fT = if (if ((fK > 0))
764+ then (fK > fS)
817765 else false)
818- then aL(makeString(["amount to receive is less than ", toString(fP)], ""))
819- else fX
820- let fZ = if ((fO == cC))
821- then $Tuple4(fY, 0, ((cI - fY) - cv), cK)
822- else if ((fO == cD))
823- then $Tuple4(0, fY, cI, ((cK - fY) - cv))
766+ then aM(makeString(["amount to receive is less than ", toString(fK)], ""))
767+ else fS
768+ let fU = if ((fJ == cD))
769+ then $Tuple4(fT, 0, ((cJ - fT) - cw), cL)
770+ else if ((fJ == cE))
771+ then $Tuple4(0, fT, cJ, ((cL - fT) - cw))
824772 else throw("invalid out asset id")
825- let ga = fZ._1
826- let gb = fZ._2
827- let fE = fZ._3
828- let fF = fZ._4
829- let gc = bN(H(fF, fU), H(fE, fT))
830- let gd = K(gc, a)
831- let ge = if ((fO == "WAVES"))
773+ let fV = fU._1
774+ let fW = fU._2
775+ let fz = fU._3
776+ let fA = fU._4
777+ let fX = bO(H(fA, fP), H(fz, fO))
778+ let fY = L(fX, a)
779+ let fZ = if ((fJ == "WAVES"))
832780 then unit
833- else fromBase58String(fO)
834- let gf = if ((cv > 0))
835- then [ScriptTransfer(aV, cv, ge)]
781+ else fromBase58String(fJ)
782+ let ga = if ((cw > 0))
783+ then [ScriptTransfer(aW, cw, fZ)]
836784 else nil
837- let cU = ([ScriptTransfer(cA, fY, ge), StringEntry(ah(toString(cA), cx), bH(ga, gb, de, gd, height, lastBlock.timestamp)), IntegerEntry(aa(), gd), IntegerEntry(ab(height, lastBlock.timestamp), gd)] ++ gf)
838- if ((cU == cU))
785+ let cV = ([ScriptTransfer(cB, fT, fZ), StringEntry(ai(toString(cB), cy), bI(fV, fW, df, fY, height, lastBlock.timestamp)), IntegerEntry(ab(), fY), IntegerEntry(ac(height, lastBlock.timestamp), fY)] ++ ga)
786+ if ((cV == cV))
839787 then {
840- let gg = invoke(aO, "burn", [de], [AttachedPayment(cy, de)])
841- if ((gg == gg))
788+ let gb = invoke(aP, "burn", [df], [AttachedPayment(cz, df)])
789+ if ((gb == gb))
842790 then {
843- let gh = {
844- let gi = if ((this == aV))
791+ let gc = {
792+ let gd = if ((this == aW))
845793 then 0
846- else cv
847- let gj = if ((ba(fO) == bk))
794+ else cw
795+ let ge = if ((bb(fJ) == bl))
848796 then true
849797 else false
850- if (gj)
851- then $Tuple2(-((fX + gi)), 0)
852- else $Tuple2(0, -((fX + gi)))
798+ if (ge)
799+ then $Tuple2(-((fS + gd)), 0)
800+ else $Tuple2(0, -((fS + gd)))
853801 }
854- let eW = gh._1
855- let eX = gh._2
856- let gk = eV(eW, eX, 0)
857- let gl = gk._1
858- let eM = gk._2
859- let gm = eZ(eU, eM)
860- if ((gm == gm))
861- then $Tuple2((cU ++ gl), fY)
802+ let eR = gc._1
803+ let eS = gc._2
804+ let gf = eQ(eR, eS, 0)
805+ let gg = gf._1
806+ let eH = gf._2
807+ let gh = eU(eP, eH)
808+ if ((gh == gh))
809+ then $Tuple2((cV ++ gg), fT)
862810 else throw("Strict value is not equal to itself.")
863811 }
864812 else throw("Strict value is not equal to itself.")
872820 }
873821
874822
875-func gn () = {
876- let go = getString(Y())
877- if ($isInstanceOf(go, "String"))
823+func gi () = {
824+ let gj = getString(Z())
825+ if ($isInstanceOf(gj, "String"))
878826 then {
879- let dO = go
880- fromBase58String(dO)
827+ let dP = gj
828+ fromBase58String(dP)
881829 }
882- else if ($isInstanceOf(go, "Unit"))
830+ else if ($isInstanceOf(gj, "Unit"))
883831 then unit
884832 else throw("Match error")
885833 }
886834
887835
888-func gp () = {
889- let go = getString(Z())
890- if ($isInstanceOf(go, "String"))
836+func gk () = {
837+ let gj = getString(aa())
838+ if ($isInstanceOf(gj, "String"))
891839 then {
892- let dO = go
893- fromBase58String(dO)
840+ let dP = gj
841+ fromBase58String(dP)
894842 }
895- else if ($isInstanceOf(go, "Unit"))
843+ else if ($isInstanceOf(gj, "Unit"))
896844 then unit
897845 else throw("Match error")
898846 }
899847
900848
901-let gq = throw("Permission denied")
849+let gl = throw("Permission denied")
902850
903-func gr (eb) = {
904- let go = gn()
905- if ($isInstanceOf(go, "ByteVector"))
851+func gm (ec) = {
852+ let gj = gi()
853+ if ($isInstanceOf(gj, "ByteVector"))
906854 then {
907- let gs = go
908- (eb.callerPublicKey == gs)
855+ let gn = gj
856+ (ec.callerPublicKey == gn)
909857 }
910- else if ($isInstanceOf(go, "Unit"))
911- then (eb.caller == this)
858+ else if ($isInstanceOf(gj, "Unit"))
859+ then (ec.caller == this)
912860 else throw("Match error")
913861 }
914862
915863
916-func gt (eb) = {
917- let go = gn()
918- if ($isInstanceOf(go, "ByteVector"))
864+func go (ec) = {
865+ let gj = gi()
866+ if ($isInstanceOf(gj, "ByteVector"))
919867 then {
920- let gs = go
921- if ((eb.callerPublicKey == gs))
868+ let gn = gj
869+ if ((ec.callerPublicKey == gn))
922870 then true
923- else gq
871+ else gl
924872 }
925- else if ($isInstanceOf(go, "Unit"))
926- then if ((eb.caller == this))
873+ else if ($isInstanceOf(gj, "Unit"))
874+ then if ((ec.caller == this))
927875 then true
928- else gq
876+ else gl
929877 else throw("Match error")
930878 }
931879
932880
933-@Callable(eb)
934-func constructor (X) = {
935- let eB = gt(eb)
936- if ((eB == eB))
937- then [StringEntry(X(), X)]
881+@Callable(ec)
882+func constructor (Y) = {
883+ let ev = go(ec)
884+ if ((ev == ev))
885+ then [StringEntry(Y(), Y)]
938886 else throw("Strict value is not equal to itself.")
939887 }
940888
941889
942890
943-@Callable(eb)
944-func setManager (gu) = {
945- let eB = gt(eb)
946- if ((eB == eB))
891+@Callable(ec)
892+func setManager (gp) = {
893+ let ev = go(ec)
894+ if ((ev == ev))
947895 then {
948- let gv = fromBase58String(gu)
949- if ((gv == gv))
950- then [StringEntry(Z(), gu)]
896+ let gq = fromBase58String(gp)
897+ if ((gq == gq))
898+ then [StringEntry(aa(), gp)]
951899 else throw("Strict value is not equal to itself.")
952900 }
953901 else throw("Strict value is not equal to itself.")
955903
956904
957905
958-@Callable(eb)
906+@Callable(ec)
959907 func confirmManager () = {
960- let cs = gp()
961- let gw = if (isDefined(cs))
908+ let ct = gk()
909+ let gr = if (isDefined(ct))
962910 then true
963911 else throw("No pending manager")
964- if ((gw == gw))
912+ if ((gr == gr))
965913 then {
966- let gx = if ((eb.callerPublicKey == value(cs)))
914+ let gs = if ((ec.callerPublicKey == value(ct)))
967915 then true
968916 else throw("You are not pending manager")
969- if ((gx == gx))
970- then [StringEntry(Y(), toBase58String(value(cs))), DeleteEntry(Z())]
917+ if ((gs == gs))
918+ then [StringEntry(Z(), toBase58String(value(ct))), DeleteEntry(aa())]
971919 else throw("Strict value is not equal to itself.")
972920 }
973921 else throw("Strict value is not equal to itself.")
975923
976924
977925
978-@Callable(eb)
979-func put (gy,gz) = {
980- let gA = bq()
981- let gB = valueOrErrorMessage(addressFromString(gA[C]), "Wr st addr")
982- let gC = valueOrErrorMessage(addressFromString(gA[E]), "Wr sl addr")
983- if ((0 > gy))
926+@Callable(ec)
927+func put (gt,gu) = {
928+ let gv = br()
929+ let gw = valueOrErrorMessage(addressFromString(gv[C]), "Wr st addr")
930+ let gx = valueOrErrorMessage(addressFromString(gv[E]), "Wr sl addr")
931+ if ((0 > gt))
984932 then throw("Wrong slippage")
985- else if ((size(eb.payments) != 2))
933+ else if ((size(ec.payments) != 2))
986934 then throw("2 pmnts expd")
987935 else {
988- let gD = toBigInt(value(eb.payments[0]).amount)
989- let gE = toBigInt(value(eb.payments[1]).amount)
990- let eR = (toBigInt(bL(bc(bk))) - gD)
991- if ((eR == eR))
936+ let gy = toBigInt(value(ec.payments[0]).amount)
937+ let gz = toBigInt(value(ec.payments[1]).amount)
938+ let eM = (toBigInt(bM(bd(bl))) - gy)
939+ if ((eM == eM))
992940 then {
993- let eS = (toBigInt(bL(bc(bl))) - gE)
994- if ((eS == eS))
941+ let eN = (toBigInt(bM(bd(bm))) - gz)
942+ if ((eN == eN))
995943 then {
996- let eT = toBigInt(value(assetInfo(bj)).quantity)
997- if ((eT == eT))
944+ let eO = toBigInt(value(assetInfo(bk)).quantity)
945+ if ((eO == eO))
998946 then {
999- let eU = eN(gD, gE, toBigInt(0))
1000- if ((eU == eU))
947+ let eP = eI(gy, gz, toBigInt(0))
948+ if ((eP == eP))
1001949 then {
1002- let gF = fn(toString(eb.caller), toBase58String(eb.transactionId), AttachedPayment(value(eb.payments[0]).assetId, value(eb.payments[0]).amount), eb.payments[1], gy, true, false, true, 0, "")
1003- let dD = gF._2
1004- let gG = gF._7
1005- let cU = gF._9
1006- let dE = gF._10
1007- let dF = gF._11
1008- let cC = gF._12
1009- let cD = gF._13
1010- let dq = invoke(aO, "emit", [dD], nil)
1011- if ((dq == dq))
950+ let gA = fi(toString(ec.caller), toBase58String(ec.transactionId), AttachedPayment(value(ec.payments[0]).assetId, value(ec.payments[0]).amount), ec.payments[1], gt, true, false, true, 0, "")
951+ let dE = gA._2
952+ let gB = gA._7
953+ let cV = gA._9
954+ let dF = gA._10
955+ let dG = gA._11
956+ let cD = gA._12
957+ let cE = gA._13
958+ let dr = invoke(aP, "emit", [dE], nil)
959+ if ((dr == dr))
1012960 then {
1013- let gH = {
1014- let go = dq
1015- if ($isInstanceOf(go, "Address"))
961+ let gC = {
962+ let gj = dr
963+ if ($isInstanceOf(gj, "Address"))
1016964 then {
1017- let gI = go
1018- invoke(gI, "emit", [dD], nil)
965+ let gD = gj
966+ invoke(gD, "emit", [dE], nil)
1019967 }
1020968 else unit
1021969 }
1022- if ((gH == gH))
970+ if ((gC == gC))
1023971 then {
1024- let gJ = if ((dE > 0))
1025- then invoke(gC, "put", nil, [AttachedPayment(cC, dE)])
972+ let gE = if ((dF > 0))
973+ then invoke(gx, "put", nil, [AttachedPayment(cD, dF)])
1026974 else nil
1027- if ((gJ == gJ))
975+ if ((gE == gE))
1028976 then {
1029- let gK = if ((dF > 0))
1030- then invoke(gC, "put", nil, [AttachedPayment(cD, dF)])
977+ let gF = if ((dG > 0))
978+ then invoke(gx, "put", nil, [AttachedPayment(cE, dG)])
1031979 else nil
1032- if ((gK == gK))
980+ if ((gF == gF))
1033981 then {
1034- let gL = if (gz)
982+ let gG = if (gu)
1035983 then {
1036- let gM = invoke(gB, "stake", nil, [AttachedPayment(gG, dD)])
1037- if ((gM == gM))
984+ let gH = invoke(gw, "stake", nil, [AttachedPayment(gB, dE)])
985+ if ((gH == gH))
1038986 then nil
1039987 else throw("Strict value is not equal to itself.")
1040988 }
1041- else [ScriptTransfer(eb.caller, dD, gG)]
1042- let gN = eV(0, 0, 0)
1043- let gl = gN._1
1044- let eM = gN._2
1045- let gO = if ((eM >= eU))
989+ else [ScriptTransfer(ec.caller, dE, gB)]
990+ let gI = eQ(0, 0, 0)
991+ let gg = gI._1
992+ let eH = gI._2
993+ let gJ = if ((eH >= eP))
1046994 then true
1047- else aL(makeString(["updated DLp lower than current DLp", toString(eR), toString(eS), toString(eT), toString(eU), toString(eM), toString(dE), toString(dF)], " "))
1048- if ((gO == gO))
995+ else aM(makeString(["updated DLp lower than current DLp", toString(eM), toString(eN), toString(eO), toString(eP), toString(eH), toString(dF), toString(dG)], " "))
996+ if ((gJ == gJ))
1049997 then {
1050- let gP = value(assetInfo(bj)).quantity
1051- if ((gP == gP))
1052- then ((cU ++ gL) ++ gl)
998+ let gK = value(assetInfo(bk)).quantity
999+ if ((gK == gK))
1000+ then ((cV ++ gG) ++ gg)
10531001 else throw("Strict value is not equal to itself.")
10541002 }
10551003 else throw("Strict value is not equal to itself.")
10741022
10751023
10761024
1077-@Callable(eb)
1078-func putOneTknV2 (fP,gz) = {
1079- let gQ = {
1080- let aQ = invoke(aO, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1081- if ($isInstanceOf(aQ, "Boolean"))
1082- then aQ
1083- else throw(($getType(aQ) + " couldn't be cast to Boolean"))
1025+@Callable(ec)
1026+func putOneTknV2 (fK,gu) = {
1027+ let gL = {
1028+ let aR = invoke(aP, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1029+ if ($isInstanceOf(aR, "Boolean"))
1030+ then aR
1031+ else throw(($getType(aR) + " couldn't be cast to Boolean"))
10841032 }
1085- let gR = if (if (if (aT())
1033+ let gM = if (if (if (aU())
10861034 then true
1087- else (bi == q))
1035+ else (bj == q))
10881036 then true
1089- else (bi == s))
1037+ else (bj == s))
10901038 then true
1091- else gQ
1092- let gS = [if (if (!(gR))
1039+ else gL
1040+ let gN = [if (if (!(gM))
10931041 then true
1094- else gr(eb))
1042+ else gm(ec))
10951043 then true
1096- else aL("put operation is blocked by admin"), if ((size(eb.payments) == 1))
1044+ else aM("put operation is blocked by admin"), if ((size(ec.payments) == 1))
10971045 then true
1098- else aL("exactly 1 payment are expected")]
1099- if ((gS == gS))
1046+ else aM("exactly 1 payment are expected")]
1047+ if ((gN == gN))
11001048 then {
1101- let cC = toBase58String(value(bk))
11021049 let cD = toBase58String(value(bl))
1103- let cB = bj
1104- let fT = bm
1105- let fU = bn
1106- let cA = if ((eb.caller == this))
1107- then eb.originCaller
1108- else eb.caller
1109- let fm = value(eb.payments[0])
1110- let cy = toBase58String(value(fm.assetId))
1111- let de = fm.amount
1112- let eU = if ((fm.assetId == bk))
1113- then eN(toBigInt(de), toBigInt(0), toBigInt(0))
1114- else eN(toBigInt(0), toBigInt(de), toBigInt(0))
1115- if ((eU == eU))
1050+ let cE = toBase58String(value(bm))
1051+ let cC = bk
1052+ let fO = bn
1053+ let fP = bo
1054+ let cB = if ((ec.caller == this))
1055+ then ec.originCaller
1056+ else ec.caller
1057+ let fh = value(ec.payments[0])
1058+ let cz = toBase58String(value(fh.assetId))
1059+ let df = fh.amount
1060+ let eP = if ((fh.assetId == bl))
1061+ then eI(toBigInt(df), toBigInt(0), toBigInt(0))
1062+ else eI(toBigInt(0), toBigInt(df), toBigInt(0))
1063+ if ((eP == eP))
11161064 then {
1117- let gT = fr(de, cy, toString(cA), toBase58String(eb.transactionId), true)
1118- if ((gT == gT))
1065+ let gO = fm(df, cz, toString(cB), toBase58String(ec.transactionId), true)
1066+ if ((gO == gO))
11191067 then {
1120- let cv = gT._3
1121- let cU = gT._2
1122- let gU = gT._1
1123- let dD = if (if ((fP > 0))
1124- then (fP > gU)
1068+ let cw = gO._3
1069+ let cV = gO._2
1070+ let gP = gO._1
1071+ let dE = if (if ((fK > 0))
1072+ then (fK > gP)
11251073 else false)
1126- then aL(makeString(["amount to receive is less than ", toString(fP)], ""))
1127- else gU
1128- let gF = invoke(aO, "emit", [dD], nil)
1129- if ((gF == gF))
1074+ then aM(makeString(["amount to receive is less than ", toString(fK)], ""))
1075+ else gP
1076+ let gA = invoke(aP, "emit", [dE], nil)
1077+ if ((gA == gA))
11301078 then {
1131- let gH = {
1132- let go = gF
1133- if ($isInstanceOf(go, "Address"))
1079+ let gC = {
1080+ let gj = gA
1081+ if ($isInstanceOf(gj, "Address"))
11341082 then {
1135- let gI = go
1136- invoke(gI, "emit", [dD], nil)
1083+ let gD = gj
1084+ invoke(gD, "emit", [dE], nil)
11371085 }
11381086 else unit
11391087 }
1140- if ((gH == gH))
1088+ if ((gC == gC))
11411089 then {
1142- let gL = if (gz)
1090+ let gG = if (gu)
11431091 then {
1144- let gM = invoke(bs, "stake", nil, [AttachedPayment(cB, dD)])
1145- if ((gM == gM))
1092+ let gH = invoke(bt, "stake", nil, [AttachedPayment(cC, dE)])
1093+ if ((gH == gH))
11461094 then nil
11471095 else throw("Strict value is not equal to itself.")
11481096 }
1149- else [ScriptTransfer(eb.caller, dD, cB)]
1150- let gf = if ((cv > 0))
1151- then [ScriptTransfer(aV, cv, fromBase58String(cy))]
1097+ else [ScriptTransfer(ec.caller, dE, cC)]
1098+ let ga = if ((cw > 0))
1099+ then [ScriptTransfer(aW, cw, fromBase58String(cz))]
11521100 else nil
1153- let gV = if ((this == aV))
1101+ let gQ = if ((this == aW))
11541102 then $Tuple2(0, 0)
11551103 else {
1156- let gW = if ((fm.assetId == bk))
1104+ let gR = if ((fh.assetId == bl))
11571105 then true
11581106 else false
1159- if (gW)
1160- then $Tuple2(-(cv), 0)
1161- else $Tuple2(0, -(cv))
1107+ if (gR)
1108+ then $Tuple2(-(cw), 0)
1109+ else $Tuple2(0, -(cw))
11621110 }
1163- let eW = gV._1
1164- let eX = gV._2
1165- let gX = eV(eW, eX, 0)
1166- let gl = gX._1
1167- let eM = gX._2
1168- let gm = eZ(eU, eM)
1169- if ((gm == gm))
1170- then $Tuple2((((cU ++ gL) ++ gf) ++ gl), dD)
1111+ let eR = gQ._1
1112+ let eS = gQ._2
1113+ let gS = eQ(eR, eS, 0)
1114+ let gg = gS._1
1115+ let eH = gS._2
1116+ let gh = eU(eP, eH)
1117+ if ((gh == gh))
1118+ then $Tuple2((((cV ++ gG) ++ ga) ++ gg), dE)
11711119 else throw("Strict value is not equal to itself.")
11721120 }
11731121 else throw("Strict value is not equal to itself.")
11831131
11841132
11851133
1186-@Callable(eb)
1187-func putForFree (gY) = if ((0 > gY))
1134+@Callable(ec)
1135+func putForFree (gT) = if ((0 > gT))
11881136 then throw("Wrong slpg")
1189- else if ((size(eb.payments) != 2))
1137+ else if ((size(ec.payments) != 2))
11901138 then throw("2 pmnts expd")
11911139 else {
1192- let gZ = fn(toString(eb.caller), toBase58String(eb.transactionId), AttachedPayment(value(eb.payments[0]).assetId, value(eb.payments[0]).amount), eb.payments[1], gY, false, false, true, 0, "")
1193- let cU = gZ._9
1194- let gD = toBigInt(value(eb.payments[0]).amount)
1195- let gE = toBigInt(value(eb.payments[1]).amount)
1196- let eU = eN(gD, gE, toBigInt(0))
1197- if ((eU == eU))
1140+ let gU = fi(toString(ec.caller), toBase58String(ec.transactionId), AttachedPayment(value(ec.payments[0]).assetId, value(ec.payments[0]).amount), ec.payments[1], gT, false, false, true, 0, "")
1141+ let cV = gU._9
1142+ let gy = toBigInt(value(ec.payments[0]).amount)
1143+ let gz = toBigInt(value(ec.payments[1]).amount)
1144+ let eP = eI(gy, gz, toBigInt(0))
1145+ if ((eP == eP))
11981146 then {
1199- let ha = eV(0, 0, 0)
1200- let gl = ha._1
1201- let eM = ha._2
1202- let gm = eZ(eU, eM)
1203- if ((gm == gm))
1204- then (cU ++ gl)
1147+ let gV = eQ(0, 0, 0)
1148+ let gg = gV._1
1149+ let eH = gV._2
1150+ let gh = eU(eP, eH)
1151+ if ((gh == gh))
1152+ then (cV ++ gg)
12051153 else throw("Strict value is not equal to itself.")
12061154 }
12071155 else throw("Strict value is not equal to itself.")
12091157
12101158
12111159
1212-@Callable(eb)
1160+@Callable(ec)
12131161 func get () = {
1214- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1215- if ((eU == eU))
1162+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1163+ if ((eP == eP))
12161164 then {
1217- let dq = fl(eb)
1218- let hb = dq._1
1219- let cT = dq._2
1220- let de = dq._3
1221- let cy = dq._4
1222- let cU = dq._5
1223- let eC = invoke(aO, "burn", [de], [AttachedPayment(cy, de)])
1224- if ((eC == eC))
1165+ let dr = fg(ec)
1166+ let gW = dr._1
1167+ let cU = dr._2
1168+ let df = dr._3
1169+ let cz = dr._4
1170+ let cV = dr._5
1171+ let ew = invoke(aP, "burn", [df], [AttachedPayment(cz, df)])
1172+ if ((ew == ew))
12251173 then {
1226- let hc = eV(-(hb), -(cT), 0)
1227- let gl = hc._1
1228- let eM = hc._2
1229- let gm = eZ(eU, eM)
1230- if ((gm == gm))
1231- then (cU ++ gl)
1174+ let gX = eQ(-(gW), -(cU), 0)
1175+ let gg = gX._1
1176+ let eH = gX._2
1177+ let gh = eU(eP, eH)
1178+ if ((gh == gh))
1179+ then (cV ++ gg)
12321180 else throw("Strict value is not equal to itself.")
12331181 }
12341182 else throw("Strict value is not equal to itself.")
12381186
12391187
12401188
1241-@Callable(eb)
1242-func getOneTknV2 (fO,fP) = {
1243- let gQ = {
1244- let aQ = invoke(aO, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1245- if ($isInstanceOf(aQ, "Boolean"))
1246- then aQ
1247- else throw(($getType(aQ) + " couldn't be cast to Boolean"))
1189+@Callable(ec)
1190+func getOneTknV2 (fJ,fK) = {
1191+ let gL = {
1192+ let aR = invoke(aP, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1193+ if ($isInstanceOf(aR, "Boolean"))
1194+ then aR
1195+ else throw(($getType(aR) + " couldn't be cast to Boolean"))
12481196 }
1249- let hd = if (if (aT())
1197+ let gY = if (if (aU())
12501198 then true
1251- else (bi == s))
1199+ else (bj == s))
12521200 then true
1253- else gQ
1254- let gS = [if (if (!(hd))
1201+ else gL
1202+ let gN = [if (if (!(gY))
12551203 then true
1256- else gr(eb))
1204+ else gm(ec))
12571205 then true
1258- else aL("get operation is blocked by admin"), if ((size(eb.payments) == 1))
1206+ else aM("get operation is blocked by admin"), if ((size(ec.payments) == 1))
12591207 then true
1260- else aL("exactly 1 payment are expected")]
1261- if ((gS == gS))
1208+ else aM("exactly 1 payment are expected")]
1209+ if ((gN == gN))
12621210 then {
1263- let he = fN(fO, fP, eb.payments, eb.caller, eb.originCaller, eb.transactionId)
1264- let cU = he._1
1265- let fY = he._2
1266- $Tuple2(cU, fY)
1211+ let gZ = fI(fJ, fK, ec.payments, ec.caller, ec.originCaller, ec.transactionId)
1212+ let cV = gZ._1
1213+ let fT = gZ._2
1214+ $Tuple2(cV, fT)
12671215 }
12681216 else throw("Strict value is not equal to itself.")
12691217 }
12701218
12711219
12721220
1273-@Callable(eb)
1221+@Callable(ec)
12741222 func refreshDLp () = {
1275- let hf = valueOrElse(getInteger(ap), 0)
1276- let hg = if (((height - hf) >= as))
1223+ let ha = valueOrElse(getInteger(aq), 0)
1224+ let hb = if (((height - ha) >= at))
12771225 then unit
1278- else aL(makeString([toString(as), " blocks have not passed since the previous call"], ""))
1279- if ((hg == hg))
1226+ else aM(makeString([toString(at), " blocks have not passed since the previous call"], ""))
1227+ if ((hb == hb))
12801228 then {
1281- let fg = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ao), "0")), aN("invalid dLp"))
1282- let hh = eV(0, 0, 0)
1283- let hi = hh._1
1284- let eM = hh._2
1285- let eY = if ((fg != eM))
1286- then hi
1287- else aL("nothing to refresh")
1288- $Tuple2(eY, toString(eM))
1229+ let fb = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ap), "0")), aO("invalid dLp"))
1230+ let hc = eQ(0, 0, 0)
1231+ let hd = hc._1
1232+ let eH = hc._2
1233+ let eT = if ((fb != eH))
1234+ then hd
1235+ else aM("nothing to refresh")
1236+ $Tuple2(eT, toString(eH))
12891237 }
12901238 else throw("Strict value is not equal to itself.")
12911239 }
12921240
12931241
12941242
1295-@Callable(eb)
1296-func getOneTknV2READONLY (fO,hj) = {
1243+@Callable(ec)
1244+func getOneTknV2READONLY (fJ,he) = {
1245+ let cD = toBase58String(value(bl))
1246+ let cE = toBase58String(value(bm))
12971247 let cC = toBase58String(value(bk))
1298- let cD = toBase58String(value(bl))
1299- let cB = toBase58String(value(bj))
1300- let dL = [toBigInt(bL(cC)), toBigInt(bL(cD))]
1301- let eL = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cB)), "invalid lp asset").quantity)
1302- let bZ = dK(dL)
1303- let bY = (bZ - fraction(toBigInt(hj), bZ, eL))
1304- let hk = if ((fO == cC))
1248+ let dM = [toBigInt(bM(cD)), toBigInt(bM(cE))]
1249+ let eG = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cC)), "invalid lp asset").quantity)
1250+ let ca = dL(dM)
1251+ let bZ = (ca - fraction(toBigInt(he), ca, eG))
1252+ let hf = if ((fJ == cD))
13051253 then 0
1306- else if ((fO == cD))
1254+ else if ((fJ == cE))
13071255 then 1
13081256 else throw("invalid out asset id")
1309- let hl = ey(dL, hk, bY)
1310- let hm = (dL[hk] - hl)
1311- let hn = max([0, toInt((hm - f))])
1312- let ho = ct(hn, aR)
1313- let fX = ho._1
1314- let cv = ho._2
1315- $Tuple2(nil, $Tuple2(fX, cv))
1257+ let hg = eq(dM, hf, bZ)
1258+ let hh = (dM[hf] - hg)
1259+ let hi = max([0, toInt((hh - f))])
1260+ let hj = cu(hi, aS)
1261+ let fS = hj._1
1262+ let cw = hj._2
1263+ $Tuple2(nil, $Tuple2(fS, cw))
13161264 }
13171265
13181266
13191267
1320-@Callable(eb)
1321-func getOneTknV2WithBonusREADONLY (fO,hj) = {
1268+@Callable(ec)
1269+func getOneTknV2WithBonusREADONLY (fJ,he) = {
1270+ let cD = toBase58String(value(bl))
1271+ let cE = toBase58String(value(bm))
13221272 let cC = toBase58String(value(bk))
1323- let cD = toBase58String(value(bl))
1324- let cB = toBase58String(value(bj))
1325- let cI = bL(cC)
1326- let cK = bL(cD)
1327- let hp = {
1328- let aQ = invoke(this, "getOneTknV2READONLY", [fO, hj], nil)
1329- if ($isInstanceOf(aQ, "(Int, Int)"))
1330- then aQ
1331- else throw(($getType(aQ) + " couldn't be cast to (Int, Int)"))
1273+ let cJ = bM(cD)
1274+ let cL = bM(cE)
1275+ let hk = {
1276+ let aR = invoke(this, "getOneTknV2READONLY", [fJ, he], nil)
1277+ if ($isInstanceOf(aR, "(Int, Int)"))
1278+ then aR
1279+ else throw(($getType(aR) + " couldn't be cast to (Int, Int)"))
13321280 }
1333- let fX = hp._1
1334- let cv = hp._2
1335- let dq = cw("", cB, hj, this)
1336- let cS = dq._1
1337- let cT = dq._2
1338- let hq = (cS + cT)
1339- let fM = if ((hq == 0))
1340- then if ((fX == 0))
1281+ let fS = hk._1
1282+ let cw = hk._2
1283+ let dr = cx("", cC, he, this)
1284+ let cT = dr._1
1285+ let cU = dr._2
1286+ let hl = (cT + cU)
1287+ let fH = if ((hl == 0))
1288+ then if ((fS == 0))
13411289 then 0
13421290 else throw("bonus calculation error")
1343- else fraction((fX - hq), a, hq)
1344- $Tuple2(nil, $Tuple3(fX, cv, fM))
1291+ else fraction((fS - hl), a, hl)
1292+ $Tuple2(nil, $Tuple3(fS, cw, fH))
13451293 }
13461294
13471295
13481296
1349-@Callable(eb)
1350-func getNoLess (hr,hs) = {
1351- let dq = fl(eb)
1352- let cS = dq._1
1353- let cT = dq._2
1354- let de = dq._3
1355- let cy = dq._4
1356- let cU = dq._5
1357- if ((hr > cS))
1358- then throw(((("Failed: " + toString(cS)) + " < ") + toString(hr)))
1359- else if ((hs > cT))
1360- then throw(((("Failed: " + toString(cT)) + " < ") + toString(hs)))
1297+@Callable(ec)
1298+func getNoLess (hm,hn) = {
1299+ let dr = fg(ec)
1300+ let cT = dr._1
1301+ let cU = dr._2
1302+ let df = dr._3
1303+ let cz = dr._4
1304+ let cV = dr._5
1305+ if ((hm > cT))
1306+ then throw(((("Failed: " + toString(cT)) + " < ") + toString(hm)))
1307+ else if ((hn > cU))
1308+ then throw(((("Failed: " + toString(cU)) + " < ") + toString(hn)))
13611309 else {
1362- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1363- if ((eU == eU))
1310+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1311+ if ((eP == eP))
13641312 then {
1365- let ht = invoke(aO, "burn", [de], [AttachedPayment(cy, de)])
1366- if ((ht == ht))
1313+ let ho = invoke(aP, "burn", [df], [AttachedPayment(cz, df)])
1314+ if ((ho == ho))
13671315 then {
1368- let hu = eV(-(cS), -(cT), 0)
1369- let gl = hu._1
1370- let eM = hu._2
1371- let gm = eZ(eU, eM)
1372- if ((gm == gm))
1373- then (cU ++ gl)
1316+ let hp = eQ(-(cT), -(cU), 0)
1317+ let gg = hp._1
1318+ let eH = hp._2
1319+ let gh = eU(eP, eH)
1320+ if ((gh == gh))
1321+ then (cV ++ gg)
13741322 else throw("Strict value is not equal to itself.")
13751323 }
13761324 else throw("Strict value is not equal to itself.")
13811329
13821330
13831331
1384-@Callable(eb)
1385-func unstakeAndGet (cu) = {
1386- let hv = if ((size(eb.payments) != 0))
1332+@Callable(ec)
1333+func unstakeAndGet (cv) = {
1334+ let hq = if ((size(ec.payments) != 0))
13871335 then throw("No pmnts expd")
13881336 else true
1389- if ((hv == hv))
1337+ if ((hq == hq))
13901338 then {
1391- let hw = bq()
1392- let gG = bj
1393- let hx = valueOrErrorMessage(addressFromString(hw[C]), "Wr st addr")
1394- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1395- if ((eU == eU))
1339+ let hr = br()
1340+ let gB = bk
1341+ let hs = valueOrErrorMessage(addressFromString(hr[C]), "Wr st addr")
1342+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1343+ if ((eP == eP))
13961344 then {
1397- let hy = invoke(hx, "unstake", [toBase58String(gG), cu], nil)
1398- if ((hy == hy))
1345+ let ht = invoke(hs, "unstake", [toBase58String(gB), cv], nil)
1346+ if ((ht == ht))
13991347 then {
1400- let dq = cw(toBase58String(eb.transactionId), toBase58String(gG), cu, eb.caller)
1401- let cS = dq._1
1402- let cT = dq._2
1403- let cG = parseIntValue(dq._9)
1404- let cU = dq._10
1405- let hz = if (if (aT())
1348+ let dr = cx(toBase58String(ec.transactionId), toBase58String(gB), cv, ec.caller)
1349+ let cT = dr._1
1350+ let cU = dr._2
1351+ let cH = parseIntValue(dr._9)
1352+ let cV = dr._10
1353+ let hu = if (if (aU())
14061354 then true
1407- else (cG == s))
1408- then throw(("Blocked: " + toString(cG)))
1355+ else (cH == s))
1356+ then throw(("Blocked: " + toString(cH)))
14091357 else true
1410- if ((hz == hz))
1358+ if ((hu == hu))
14111359 then {
1412- let hA = invoke(aO, "burn", [cu], [AttachedPayment(gG, cu)])
1413- if ((hA == hA))
1360+ let hv = invoke(aP, "burn", [cv], [AttachedPayment(gB, cv)])
1361+ if ((hv == hv))
14141362 then {
1415- let hB = eV(-(cS), -(cT), 0)
1416- let gl = hB._1
1417- let eM = hB._2
1418- let gm = eZ(eU, eM)
1419- if ((gm == gm))
1420- then (cU ++ gl)
1363+ let hw = eQ(-(cT), -(cU), 0)
1364+ let gg = hw._1
1365+ let eH = hw._2
1366+ let gh = eU(eP, eH)
1367+ if ((gh == gh))
1368+ then (cV ++ gg)
14211369 else throw("Strict value is not equal to itself.")
14221370 }
14231371 else throw("Strict value is not equal to itself.")
14331381
14341382
14351383
1436-@Callable(eb)
1437-func unstakeAndGetNoLess (hC,hD,hs) = {
1438- let hd = if (aT())
1384+@Callable(ec)
1385+func unstakeAndGetNoLess (hx,hy,hn) = {
1386+ let gY = if (aU())
14391387 then true
1440- else (bi == s)
1441- let gS = [if (!(hd))
1388+ else (bj == s)
1389+ let gN = [if (!(gY))
14421390 then true
1443- else throw("get operation is blocked by admin"), if ((size(eb.payments) == 0))
1391+ else throw("get operation is blocked by admin"), if ((size(ec.payments) == 0))
14441392 then true
14451393 else throw("no payments are expected")]
1446- if ((gS == gS))
1394+ if ((gN == gN))
14471395 then {
1448- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1449- if ((eU == eU))
1396+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1397+ if ((eP == eP))
14501398 then {
1451- let hy = invoke(bs, "unstake", [toBase58String(bj), hC], nil)
1452- if ((hy == hy))
1399+ let ht = invoke(bt, "unstake", [toBase58String(bk), hx], nil)
1400+ if ((ht == ht))
14531401 then {
1454- let hE = cw(toBase58String(eb.transactionId), toBase58String(bj), hC, eb.caller)
1455- let cS = hE._1
1456- let cT = hE._2
1457- let cU = hE._10
1458- let hF = [if ((cS >= hD))
1402+ let hz = cx(toBase58String(ec.transactionId), toBase58String(bk), hx, ec.caller)
1403+ let cT = hz._1
1404+ let cU = hz._2
1405+ let cV = hz._10
1406+ let hA = [if ((cT >= hy))
14591407 then true
1460- else throw(makeString(["amount asset amount to receive is less than ", toString(hD)], "")), if ((cT >= hs))
1408+ else throw(makeString(["amount asset amount to receive is less than ", toString(hy)], "")), if ((cU >= hn))
14611409 then true
1462- else throw(makeString(["price asset amount to receive is less than ", toString(hs)], ""))]
1463- if ((hF == hF))
1410+ else throw(makeString(["price asset amount to receive is less than ", toString(hn)], ""))]
1411+ if ((hA == hA))
14641412 then {
1465- let ht = invoke(aO, "burn", [hC], [AttachedPayment(bj, hC)])
1466- if ((ht == ht))
1413+ let ho = invoke(aP, "burn", [hx], [AttachedPayment(bk, hx)])
1414+ if ((ho == ho))
14671415 then {
1468- let hG = eV(-(cS), -(cT), 0)
1469- let gl = hG._1
1470- let eM = hG._2
1471- let gm = eZ(eU, eM)
1472- if ((gm == gm))
1473- then (cU ++ gl)
1416+ let hB = eQ(-(cT), -(cU), 0)
1417+ let gg = hB._1
1418+ let eH = hB._2
1419+ let gh = eU(eP, eH)
1420+ if ((gh == gh))
1421+ then (cV ++ gg)
14741422 else throw("Strict value is not equal to itself.")
14751423 }
14761424 else throw("Strict value is not equal to itself.")
14861434
14871435
14881436
1489-@Callable(eb)
1490-func unstakeAndGetOneTknV2 (hC,fO,fP) = {
1491- let gQ = {
1492- let aQ = invoke(aO, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1493- if ($isInstanceOf(aQ, "Boolean"))
1494- then aQ
1495- else throw(($getType(aQ) + " couldn't be cast to Boolean"))
1437+@Callable(ec)
1438+func unstakeAndGetOneTknV2 (hx,fJ,fK) = {
1439+ let gL = {
1440+ let aR = invoke(aP, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1441+ if ($isInstanceOf(aR, "Boolean"))
1442+ then aR
1443+ else throw(($getType(aR) + " couldn't be cast to Boolean"))
14961444 }
1497- let hd = if (if (aT())
1445+ let gY = if (if (aU())
14981446 then true
1499- else (bi == s))
1447+ else (bj == s))
15001448 then true
1501- else gQ
1502- let gS = [if (if (!(hd))
1449+ else gL
1450+ let gN = [if (if (!(gY))
15031451 then true
1504- else gr(eb))
1452+ else gm(ec))
15051453 then true
1506- else aL("get operation is blocked by admin"), if ((size(eb.payments) == 0))
1454+ else aM("get operation is blocked by admin"), if ((size(ec.payments) == 0))
15071455 then true
1508- else aL("no payments are expected")]
1509- if ((gS == gS))
1456+ else aM("no payments are expected")]
1457+ if ((gN == gN))
15101458 then {
1511- let hw = bq()
1512- let gG = bj
1513- let hx = valueOrErrorMessage(addressFromString(hw[C]), "Wr st addr")
1514- let hy = invoke(hx, "unstake", [toBase58String(gG), hC], nil)
1515- if ((hy == hy))
1459+ let hr = br()
1460+ let gB = bk
1461+ let hs = valueOrErrorMessage(addressFromString(hr[C]), "Wr st addr")
1462+ let ht = invoke(hs, "unstake", [toBase58String(gB), hx], nil)
1463+ if ((ht == ht))
15161464 then {
1517- let hH = fN(fO, fP, [AttachedPayment(gG, hC)], eb.caller, eb.originCaller, eb.transactionId)
1518- let cU = hH._1
1519- let fY = hH._2
1520- $Tuple2(cU, fY)
1465+ let hC = fI(fJ, fK, [AttachedPayment(gB, hx)], ec.caller, ec.originCaller, ec.transactionId)
1466+ let cV = hC._1
1467+ let fT = hC._2
1468+ $Tuple2(cV, fT)
15211469 }
15221470 else throw("Strict value is not equal to itself.")
15231471 }
15261474
15271475
15281476
1529-@Callable(eb)
1530-func putOneTknV2WithBonusREADONLY (hI,hJ) = {
1531- let hK = fr(hI, hJ, "", "", true)
1532- let fH = hK._1
1533- let cU = hK._2
1534- let cv = hK._3
1535- let fM = hK._4
1536- $Tuple2(nil, $Tuple3(fH, cv, fM))
1477+@Callable(ec)
1478+func putOneTknV2WithBonusREADONLY (hD,hE) = {
1479+ let hF = fm(hD, hE, "", "", true)
1480+ let fC = hF._1
1481+ let cV = hF._2
1482+ let cw = hF._3
1483+ let fH = hF._4
1484+ $Tuple2(nil, $Tuple3(fC, cw, fH))
15371485 }
15381486
15391487
15401488
1541-@Callable(eb)
1542-func putOneTknV2WithoutTakeFeeREADONLY (hI,hJ) = {
1543- let hL = fr(hI, hJ, "", "", false)
1544- let fH = hL._1
1545- let cU = hL._2
1546- let cv = hL._3
1547- let fM = hL._4
1548- $Tuple2(nil, $Tuple3(fH, cv, fM))
1489+@Callable(ec)
1490+func putOneTknV2WithoutTakeFeeREADONLY (hD,hE) = {
1491+ let hG = fm(hD, hE, "", "", false)
1492+ let fC = hG._1
1493+ let cV = hG._2
1494+ let cw = hG._3
1495+ let fH = hG._4
1496+ $Tuple2(nil, $Tuple3(fC, cw, fH))
15491497 }
15501498
15511499
15521500
1553-@Callable(eb)
1554-func activate (hM,hN) = if ((toString(eb.caller) != toString(aO)))
1501+@Callable(ec)
1502+func activate (hH,hI) = if ((toString(ec.caller) != toString(aP)))
15551503 then throw("denied")
1556- else $Tuple2([StringEntry(ai(), hM), StringEntry(aj(), hN)], "success")
1504+ else $Tuple2([StringEntry(aj(), hH), StringEntry(ak(), hI)], "success")
15571505
15581506
15591507
1560-@Callable(eb)
1561-func setS (hO,hz) = if ((toString(eb.caller) != aH(this, al())))
1562- then gq
1563- else [StringEntry(hO, hz)]
1508+@Callable(ec)
1509+func setS (hJ,hu) = if ((toString(ec.caller) != aI(this, am())))
1510+ then gl
1511+ else [StringEntry(hJ, hu)]
15641512
15651513
15661514
1567-@Callable(eb)
1568-func setI (hO,hz) = if ((toString(eb.caller) != aH(this, al())))
1569- then gq
1570- else [IntegerEntry(hO, hz)]
1515+@Callable(ec)
1516+func setI (hJ,hu) = if ((toString(ec.caller) != aI(this, am())))
1517+ then gl
1518+ else [IntegerEntry(hJ, hu)]
15711519
15721520
15731521
1574-@Callable(eb)
1575-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aW())
1522+@Callable(ec)
1523+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aX())
15761524
15771525
15781526
1579-@Callable(eb)
1580-func getAccBalanceWrapperREADONLY (bM) = $Tuple2(nil, bL(bM))
1527+@Callable(ec)
1528+func getAccBalanceWrapperREADONLY (bN) = $Tuple2(nil, bM(bN))
15811529
15821530
15831531
1584-@Callable(eb)
1585-func calcPricesWrapperREADONLY (cf,cg,ck) = {
1586- let hP = cj(cf, cg, ck)
1587- $Tuple2(nil, [toString(hP[0]), toString(hP[1]), toString(hP[2])])
1532+@Callable(ec)
1533+func calcPricesWrapperREADONLY (cg,ch,cl) = {
1534+ let hK = ck(cg, ch, cl)
1535+ $Tuple2(nil, [toString(hK[0]), toString(hK[1]), toString(hK[2])])
15881536 }
15891537
15901538
15911539
1592-@Callable(eb)
1593-func fromX18WrapperREADONLY (L,hQ) = $Tuple2(nil, K(parseBigIntValue(L), hQ))
1540+@Callable(ec)
1541+func fromX18WrapperREADONLY (M,hL) = $Tuple2(nil, L(parseBigIntValue(M), hL))
15941542
15951543
15961544
1597-@Callable(eb)
1545+@Callable(ec)
15981546 func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
15991547
16001548
16011549
1602-@Callable(eb)
1603-func calcPriceBigIntWrapperREADONLY (bO,bP) = $Tuple2(nil, toString(bN(parseBigIntValue(bO), parseBigIntValue(bP))))
1550+@Callable(ec)
1551+func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
16041552
16051553
16061554
1607-@Callable(eb)
1608-func estimatePutOperationWrapperREADONLY (cx,bU,cW,cX,cY,cZ,hR,da,db) = $Tuple2(nil, cV(cx, bU, cW, cX, cY, cZ, hR, da, db, true, false, 0, ""))
1555+@Callable(ec)
1556+func estimatePutOperationWrapperREADONLY (cy,bV,cX,cY,cZ,da,hM,db,dc) = $Tuple2(nil, cW(cy, bV, cX, cY, cZ, da, hM, db, dc, true, false, 0, ""))
16091557
16101558
16111559
1612-@Callable(eb)
1613-func estimateGetOperationWrapperREADONLY (cx,hS,cz,hR) = {
1614- let dq = cw(cx, hS, cz, addressFromStringValue(hR))
1615- $Tuple2(nil, $Tuple10(dq._1, dq._2, dq._3, dq._4, dq._5, dq._6, dq._7, toString(dq._8), dq._9, dq._10))
1560+@Callable(ec)
1561+func estimateGetOperationWrapperREADONLY (cy,hN,cA,hM) = {
1562+ let dr = cx(cy, hN, cA, addressFromStringValue(hM))
1563+ $Tuple2(nil, $Tuple10(dr._1, dr._2, dr._3, dr._4, dr._5, dr._6, dr._7, toString(dr._8), dr._9, dr._10))
16161564 }
16171565
16181566
1619-@Verifier(hT)
1620-func hU () = {
1621- let hV = {
1622- let go = gn()
1623- if ($isInstanceOf(go, "ByteVector"))
1567+@Verifier(hO)
1568+func hP () = {
1569+ let hQ = {
1570+ let gj = gi()
1571+ if ($isInstanceOf(gj, "ByteVector"))
16241572 then {
1625- let gs = go
1626- gs
1573+ let gn = gj
1574+ gn
16271575 }
1628- else if ($isInstanceOf(go, "Unit"))
1629- then hT.senderPublicKey
1576+ else if ($isInstanceOf(gj, "Unit"))
1577+ then hO.senderPublicKey
16301578 else throw("Match error")
16311579 }
1632- let go = hT
1633- if ($isInstanceOf(go, "Order"))
1580+ let gj = hO
1581+ if ($isInstanceOf(gj, "Order"))
16341582 then {
1635- let fc = go
1636- let hW = aU()
1637- let hX = fb(fc)
1638- let hY = sigVerify(fc.bodyBytes, fc.proofs[0], fc.senderPublicKey)
1639- let hZ = sigVerify(fc.bodyBytes, fc.proofs[1], hW)
1640- if (if (if (hX)
1641- then hY
1583+ let eX = gj
1584+ let hR = aV()
1585+ let hS = eW(eX)
1586+ let hT = sigVerify(eX.bodyBytes, eX.proofs[0], eX.senderPublicKey)
1587+ let hU = sigVerify(eX.bodyBytes, eX.proofs[1], hR)
1588+ if (if (if (hS)
1589+ then hT
16421590 else false)
1643- then hZ
1591+ then hU
16441592 else false)
16451593 then true
1646- else aD(hX, hY, hZ)
1594+ else aE(hS, hT, hU)
16471595 }
1648- else if ($isInstanceOf(go, "SetScriptTransaction"))
1596+ else if ($isInstanceOf(gj, "SetScriptTransaction"))
16491597 then {
1650- let dO = go
1651- if (sigVerify(hT.bodyBytes, hT.proofs[0], hV))
1598+ let dP = gj
1599+ if (sigVerify(hO.bodyBytes, hO.proofs[0], hQ))
16521600 then true
16531601 else {
1654- let ia = blake2b256(value(dO.script))
1655- let ib = fromBase64String(value(getString(aO, aB())))
1656- let ic = scriptHash(this)
1657- if ((ib == ia))
1658- then (ic != ia)
1602+ let hV = blake2b256(value(dP.script))
1603+ let hW = fromBase64String(value(getString(aP, aC())))
1604+ let hX = scriptHash(this)
1605+ if ((hW == hV))
1606+ then (hX != hV)
16591607 else false
16601608 }
16611609 }
1662- else sigVerify(hT.bodyBytes, hT.proofs[0], hV)
1610+ else sigVerify(hO.bodyBytes, hO.proofs[0], hQ)
16631611 }
16641612
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(1)
1515
1616 let g = toBigInt(2)
1717
1818 let h = toBigInt(3)
1919
2020 let i = toBigInt(4)
2121
2222 let j = toBigInt((a - ((a * 1) / a)))
2323
2424 let k = "WAVES"
2525
2626 let l = "100"
2727
2828 let m = "1"
2929
3030 let n = "__"
3131
3232 let o = ""
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 4
4141
4242 let t = 1
4343
4444 let u = 2
4545
4646 let v = 3
4747
4848 let w = 4
4949
5050 let x = 5
5151
5252 let y = 6
5353
5454 let z = 7
5555
5656 let A = 8
5757
5858 let B = 9
5959
6060 let C = 1
6161
6262 let D = 6
6363
6464 let E = 7
6565
6666 let F = 10
6767
6868 let G = fraction(10, a, 10000)
6969
7070 func H (I,J) = fraction(toBigInt(I), c, toBigInt(J))
7171
7272
73-func K (L,M) = toInt(fraction(L, toBigInt(M), c))
73+func K (I,J) = fraction(I, c, J)
7474
7575
76-func N (L,M,O) = toInt(fraction(L, toBigInt(M), c, O))
76+func L (M,N) = toInt(fraction(M, toBigInt(N), c))
7777
7878
79-func P (I,J) = fraction(I, c, toBigInt(J))
79+func O (M,N,P) = toInt(fraction(M, toBigInt(N), c, P))
8080
8181
82-func Q (L,M) = fraction(L, toBigInt(M), c)
82+func Q (I,J) = fraction(I, c, toBigInt(J))
8383
8484
85-func R (S,T,U) = fraction(S, T, U)
85+func R (M,N) = fraction(M, toBigInt(N), c)
8686
8787
88-func V (L) = if ((d > L))
89- then -(L)
90- else L
88+func S (T,U,V) = fraction(T, U, V)
9189
9290
93-func W (L) = if ((d > L))
94- then -(L)
95- else L
91+func W (M) = if ((d > M))
92+ then -(M)
93+ else M
9694
9795
98-func X () = "%s__factoryContract"
96+func X (M) = if ((d > M))
97+ then -(M)
98+ else M
9999
100100
101-func Y () = "%s__managerPublicKey"
101+func Y () = "%s__factoryContract"
102102
103103
104-func Z () = "%s__pendingManagerPublicKey"
104+func Z () = "%s__managerPublicKey"
105105
106106
107-func aa () = "%s%s__price__last"
107+func aa () = "%s__pendingManagerPublicKey"
108108
109109
110-func ab (ac,ad) = makeString(["%s%s%d%d__price__history", toString(ac), toString(ad)], n)
110+func ab () = "%s%s__price__last"
111111
112112
113-func ae (af,ag) = ((("%s%s%s__P__" + af) + "__") + ag)
113+func ac (ad,ae) = makeString(["%s%s%d%d__price__history", toString(ad), toString(ae)], n)
114114
115115
116-func ah (af,ag) = ((("%s%s%s__G__" + af) + "__") + ag)
116+func af (ag,ah) = ((("%s%s%s__P__" + ag) + "__") + ah)
117117
118118
119-func ai () = "%s__amountAsset"
119+func ai (ag,ah) = ((("%s%s%s__G__" + ag) + "__") + ah)
120120
121121
122-func aj () = "%s__priceAsset"
122+func aj () = "%s__amountAsset"
123123
124124
125-func ak () = "%s__amp"
125+func ak () = "%s__priceAsset"
126126
127127
128-func al () = "%s__addonAddr"
128+func al () = "%s__amp"
129129
130130
131-let am = "%s__fee"
132-
133-let an = valueOrElse(getInteger(this, am), G)
134-
135-let ao = makeString(["%s", "dLp"], n)
136-
137-let ap = makeString(["%s", "dLpRefreshedHeight"], n)
138-
139-let aq = makeString(["%s", "refreshDLpDelay"], n)
140-
141-let ar = 1
142-
143-let as = valueOrElse(getInteger(this, aq), ar)
144-
145-func at () = "%s__factoryConfig"
131+func am () = "%s__addonAddr"
146132
147133
148-func au () = "%s%s__matcher__publicKey"
134+let an = "%s__fee"
135+
136+let ao = valueOrElse(getInteger(this, an), G)
137+
138+let ap = makeString(["%s", "dLp"], n)
139+
140+let aq = makeString(["%s", "dLpRefreshedHeight"], n)
141+
142+let ar = makeString(["%s", "refreshDLpDelay"], n)
143+
144+let as = 1
145+
146+let at = valueOrElse(getInteger(this, ar), as)
147+
148+func au () = "%s__factoryConfig"
149149
150150
151-func av (aw,ax) = (((("%d%d%s__" + aw) + "__") + ax) + "__config")
151+func av () = "%s%s__matcher__publicKey"
152152
153153
154-func ay (az) = ("%s%s%s__mappings__baseAsset2internalId__" + az)
154+func aw (ax,ay) = (((("%d%d%s__" + ax) + "__") + ay) + "__config")
155155
156156
157-func aA () = "%s__shutdown"
157+func az (aA) = ("%s%s%s__mappings__baseAsset2internalId__" + aA)
158158
159159
160-func aB () = "%s__allowedLpStableScriptHash"
160+func aB () = "%s__shutdown"
161161
162162
163-func aC () = "%s__feeCollectorAddress"
163+func aC () = "%s__allowedLpStableScriptHash"
164164
165165
166-func aD (aE,aF,aG) = throw(((((("Failed: ordValid=" + toString(aE)) + " sndrValid=") + toString(aF)) + " mtchrValid=") + toString(aG)))
166+func aD () = "%s__feeCollectorAddress"
167167
168168
169-func aH (aI,aJ) = valueOrErrorMessage(getString(aI, aJ), makeString(["mandatory ", toString(aI), ".", aJ, " not defined"], ""))
169+func aE (aF,aG,aH) = throw(((((("Failed: ordValid=" + toString(aF)) + " sndrValid=") + toString(aG)) + " mtchrValid=") + toString(aH)))
170170
171171
172-func aK (aI,aJ) = valueOrErrorMessage(getInteger(aI, aJ), makeString(["mandatory ", toString(aI), ".", aJ, " not defined"], ""))
172+func aI (aJ,aK) = valueOrErrorMessage(getString(aJ, aK), makeString(["mandatory ", toString(aJ), ".", aK, " not defined"], ""))
173173
174174
175-func aL (aM) = throw(makeString(["lp_stable.ride:", aM], " "))
175+func aL (aJ,aK) = valueOrErrorMessage(getInteger(aJ, aK), makeString(["mandatory ", toString(aJ), ".", aK, " not defined"], ""))
176176
177177
178-func aN (aM) = makeString(["lp_stable.ride:", aM], " ")
178+func aM (aN) = throw(makeString(["lp_stable.ride:", aN], " "))
179179
180180
181-let aO = addressFromStringValue(aH(this, X()))
181+func aO (aN) = makeString(["lp_stable.ride:", aN], " ")
182182
183-let aP = {
184- let aQ = invoke(aO, "getInFeeREADONLY", [toString(this)], nil)
185- if ($isInstanceOf(aQ, "Int"))
186- then aQ
187- else throw(($getType(aQ) + " couldn't be cast to Int"))
183+
184+let aP = addressFromStringValue(aI(this, Y()))
185+
186+let aQ = {
187+ let aR = invoke(aP, "getInFeeREADONLY", [toString(this)], nil)
188+ if ($isInstanceOf(aR, "Int"))
189+ then aR
190+ else throw(($getType(aR) + " couldn't be cast to Int"))
188191 }
189192
190-let aR = {
191- let aQ = invoke(aO, "getOutFeeREADONLY", [toString(this)], nil)
192- if ($isInstanceOf(aQ, "Int"))
193- then aQ
194- else throw(($getType(aQ) + " couldn't be cast to Int"))
193+let aS = {
194+ let aR = invoke(aP, "getOutFeeREADONLY", [toString(this)], nil)
195+ if ($isInstanceOf(aR, "Int"))
196+ then aR
197+ else throw(($getType(aR) + " couldn't be cast to Int"))
195198 }
196199
197-let aS = aH(this, ak())
200+let aT = aI(this, al())
198201
199-func aT () = valueOrElse(getBoolean(aO, aA()), false)
202+func aU () = valueOrElse(getBoolean(aP, aB()), false)
200203
201204
202-func aU () = fromBase58String(aH(aO, au()))
205+func aV () = fromBase58String(aI(aP, av()))
203206
204207
205-let aV = addressFromStringValue(aH(aO, aC()))
208+let aW = addressFromStringValue(aI(aP, aD()))
206209
207-func aW () = {
208- let aX = aH(this, ai())
209- let aY = aH(this, aj())
210- let aZ = aK(aO, ay(aY))
211- let aw = aK(aO, ay(aX))
212- split(aH(aO, av(toString(aw), toString(aZ))), n)
210+func aX () = {
211+ let aY = aI(this, aj())
212+ let aZ = aI(this, ak())
213+ let ba = aL(aP, az(aZ))
214+ let ax = aL(aP, az(aY))
215+ split(aI(aP, aw(toString(ax), toString(ba))), n)
213216 }
214217
215218
216-func ba (bb) = if ((bb == k))
219+func bb (bc) = if ((bc == k))
217220 then unit
218- else fromBase58String(bb)
221+ else fromBase58String(bc)
219222
220223
221-func bc (bb) = if ((bb == unit))
224+func bd (bc) = if ((bc == unit))
222225 then k
223- else toBase58String(value(bb))
226+ else toBase58String(value(bc))
224227
225228
226-func bd (be) = $Tuple9(addressFromStringValue(be[t]), parseIntValue(be[u]), fromBase58String(be[v]), ba(be[w]), ba(be[x]), parseIntValue(be[y]), parseIntValue(be[z]), fromBase58String(be[A]), fromBase58String(be[B]))
229+func be (bf) = $Tuple9(addressFromStringValue(bf[t]), parseIntValue(bf[u]), fromBase58String(bf[v]), bb(bf[w]), bb(bf[x]), parseIntValue(bf[y]), parseIntValue(bf[z]), fromBase58String(bf[A]), fromBase58String(bf[B]))
227230
228231
229-let bf = bd(aW())
232+let bg = be(aX())
230233
231-let bg = bf
234+let bh = bg
232235
233-let bh = bg._1
236+let bi = bh._1
234237
235-let bi = bg._2
238+let bj = bh._2
236239
237-let bj = bg._3
240+let bk = bh._3
238241
239-let bk = bg._4
242+let bl = bh._4
240243
241-let bl = bg._5
244+let bm = bh._5
242245
243-let bm = bg._6
246+let bn = bh._6
244247
245-let bn = bg._7
248+let bo = bh._7
246249
247-let bo = bg._8
250+let bp = bh._8
248251
249-let bp = bg._9
252+let bq = bh._9
250253
251-func bq () = split(aH(aO, at()), n)
254+func br () = split(aI(aP, au()), n)
252255
253256
254-let br = bq()
257+let bs = br()
255258
256-let bs = valueOrErrorMessage(addressFromString(br[C]), "Invalid staking contract address")
259+let bt = valueOrErrorMessage(addressFromString(bs[C]), "Invalid staking contract address")
257260
258-let bt = valueOrErrorMessage(addressFromString(br[E]), "Invalid slipage contract address")
261+let bu = valueOrErrorMessage(addressFromString(bs[E]), "Invalid slipage contract address")
259262
260-let bu = valueOrErrorMessage(addressFromString(br[F]), "Invalid gwx contract address")
263+let bv = valueOrErrorMessage(addressFromString(bs[F]), "Invalid gwx contract address")
261264
262-let bv = valueOrErrorMessage(addressFromString(br[D]), "Invalid gwx contract address")
265+let bw = valueOrErrorMessage(addressFromString(bs[D]), "Invalid gwx contract address")
263266
264-func bw (bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG)], n)
267+func bx (by,bz,bA,bB,bC,bD,bE,bF,bG,bH) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG), toString(bH)], n)
265268
266269
267-func bH (bI,bJ,bK,bA,bD,bE) = makeString(["%d%d%d%d%d%d", toString(bI), toString(bJ), toString(bK), toString(bA), toString(bD), toString(bE)], n)
270+func bI (bJ,bK,bL,bB,bE,bF) = makeString(["%d%d%d%d%d%d", toString(bJ), toString(bK), toString(bL), toString(bB), toString(bE), toString(bF)], n)
268271
269272
270-func bL (bM) = if ((bM == "WAVES"))
273+func bM (bN) = if ((bN == "WAVES"))
271274 then wavesBalance(this).available
272- else assetBalance(this, fromBase58String(bM))
275+ else assetBalance(this, fromBase58String(bN))
273276
274277
275-func bN (bO,bP) = fraction(bO, c, bP)
278+func bO (bP,bQ) = fraction(bP, c, bQ)
276279
277280
278-func bQ (bO,bP,O) = fraction(bO, c, bP, O)
281+func bR (bP,bQ,P) = fraction(bP, c, bQ, P)
279282
280283
281-func bR (bS,bT,bU) = {
282- let bV = fraction((bS - bT), b, bT)
283- let bW = ((bU - V(bV)) > d)
284- if (!(bW))
285- then throw(("Big slpg: " + toString(bV)))
286- else $Tuple2(bW, min([bS, bT]))
284+func bS (bT,bU,bV) = {
285+ let bW = fraction((bT - bU), b, bU)
286+ let bX = ((bV - W(bW)) > d)
287+ if (!(bX))
288+ then throw(("Big slpg: " + toString(bW)))
289+ else $Tuple2(bX, min([bT, bU]))
287290 }
288291
289292
290-func bX (bY,bZ,ca) = {
291- let bV = fraction(bZ, b, bY)
292- let cb = (ca > bV)
293- if (if (cb)
293+func bY (bZ,ca,cb) = {
294+ let bW = fraction(ca, b, bZ)
295+ let cc = (cb > bW)
296+ if (if (cc)
294297 then true
295- else (bZ > bY))
296- then throw(((((((toString(bZ) + " ") + toString(bY)) + " ") + toString(bV)) + " ") + toString(ca)))
297- else cb
298+ else (ca > bZ))
299+ then throw(((((((toString(ca) + " ") + toString(bZ)) + " ") + toString(bW)) + " ") + toString(cb)))
300+ else cc
298301 }
299302
300303
301-func cc (cd,ce,cf,cg) = {
302- let ch = H(cf, cd)
304+func cd (ce,cf,cg,ch) = {
303305 let ci = H(cg, ce)
304- bN(ci, ch)
306+ let cj = H(ch, cf)
307+ bO(cj, ci)
305308 }
306309
307310
308-func cj (cf,cg,ck) = {
309- let cl = bm
311+func ck (cg,ch,cl) = {
310312 let cm = bn
311- let cn = cc(cl, cm, cf, cg)
312- let bP = H(cf, cl)
313- let bO = H(cg, cm)
314- let co = H(ck, a)
315- let cp = bN(bP, co)
316- let cq = bN(bO, co)
317-[cn, cp, cq]
313+ let cn = bo
314+ let co = cd(cm, cn, cg, ch)
315+ let bQ = H(cg, cm)
316+ let bP = H(ch, cn)
317+ let cp = H(cl, a)
318+ let cq = bO(bQ, cp)
319+ let cr = bO(bP, cp)
320+[co, cq, cr]
318321 }
319322
320323
321-func cr (cf,cg,ck) = {
322- let cs = cj(cf, cg, ck)
323-[K(cs[0], a), K(cs[1], a), K(cs[2], a)]
324+func cs (cg,ch,cl) = {
325+ let ct = ck(cg, ch, cl)
326+[L(ct[0], a), L(ct[1], a), L(ct[2], a)]
324327 }
325328
326329
327-func ct (cu,an) = {
328- let cv = if ((an == 0))
330+func cu (cv,ao) = {
331+ let cw = if ((ao == 0))
329332 then 0
330- else fraction(cu, an, a)
331- $Tuple2((cu - cv), cv)
333+ else fraction(cv, ao, a)
334+ $Tuple2((cv - cw), cw)
332335 }
333336
334337
335-func cw (cx,cy,cz,cA) = {
336- let cB = bj
337- let cC = toBase58String(value(bk))
338+func cx (cy,cz,cA,cB) = {
339+ let cC = bk
338340 let cD = toBase58String(value(bl))
339- let cE = bm
341+ let cE = toBase58String(value(bm))
340342 let cF = bn
341- let cG = toString(bi)
342- let cH = valueOrErrorMessage(assetInfo(cB), "Wrong LP id").quantity
343- if ((toBase58String(cB) != cy))
343+ let cG = bo
344+ let cH = toString(bj)
345+ let cI = valueOrErrorMessage(assetInfo(cC), "Wrong LP id").quantity
346+ if ((toBase58String(cC) != cz))
344347 then throw("Wrong pmt asset")
345348 else {
346- let cI = bL(cC)
347- let cJ = H(cI, cE)
348- let cK = bL(cD)
349- let cL = H(cK, cF)
350- let cM = bN(cL, cJ)
351- let cN = K(cM, a)
352- let cO = H(cz, a)
353- let cP = H(cH, a)
354- let cQ = fraction(cJ, cO, cP)
355- let cR = fraction(cL, cO, cP)
356- let cS = N(cQ, cE, FLOOR)
357- let cT = N(cR, cF, FLOOR)
358- let cU = if ((cx == ""))
349+ let cJ = bM(cD)
350+ let cK = H(cJ, cF)
351+ let cL = bM(cE)
352+ let cM = H(cL, cG)
353+ let cN = bO(cM, cK)
354+ let cO = L(cN, a)
355+ let cP = H(cA, a)
356+ let cQ = H(cI, a)
357+ let cR = fraction(cK, cP, cQ)
358+ let cS = fraction(cM, cP, cQ)
359+ let cT = O(cR, cF, FLOOR)
360+ let cU = O(cS, cG, FLOOR)
361+ let cV = if ((cy == ""))
359362 then nil
360- else [ScriptTransfer(cA, cS, if ((cC == "WAVES"))
363+ else [ScriptTransfer(cB, cT, if ((cD == "WAVES"))
361364 then unit
362- else fromBase58String(cC)), ScriptTransfer(cA, cT, if ((cD == "WAVES"))
365+ else fromBase58String(cD)), ScriptTransfer(cB, cU, if ((cE == "WAVES"))
363366 then unit
364- else fromBase58String(cD)), StringEntry(ah(toString(cA), cx), bH(cS, cT, cz, cN, height, lastBlock.timestamp)), IntegerEntry(aa(), cN), IntegerEntry(ab(height, lastBlock.timestamp), cN)]
365- $Tuple10(cS, cT, cC, cD, cI, cK, cH, cM, cG, cU)
367+ else fromBase58String(cE)), StringEntry(ai(toString(cB), cy), bI(cT, cU, cA, cO, height, lastBlock.timestamp)), IntegerEntry(ab(), cO), IntegerEntry(ac(height, lastBlock.timestamp), cO)]
368+ $Tuple10(cT, cU, cD, cE, cJ, cL, cI, cN, cH, cV)
366369 }
367370 }
368371
369372
370-func cV (cx,bU,cW,cX,cY,cZ,cA,da,db,dc,dd,de,df) = {
371- let cB = bj
372- let dg = toBase58String(value(bk))
373+func cW (cy,bV,cX,cY,cZ,da,cB,db,dc,dd,de,df,dg) = {
374+ let cC = bk
373375 let dh = toBase58String(value(bl))
374- let di = bo
376+ let di = toBase58String(value(bm))
375377 let dj = bp
376- let dk = bm
378+ let dk = bq
377379 let dl = bn
378- let cG = toString(bi)
379- let dm = valueOrErrorMessage(assetInfo(cB), "Wr lp as").quantity
380- let cI = if (da)
381- then bL(dg)
382- else if (if (dc)
383- then (df == dg)
380+ let dm = bo
381+ let cH = toString(bj)
382+ let dn = valueOrErrorMessage(assetInfo(cC), "Wr lp as").quantity
383+ let cJ = if (db)
384+ then bM(dh)
385+ else if (if (dd)
386+ then (dg == dh)
384387 else false)
385- then (bL(dg) - de)
386- else if (dc)
387- then bL(dg)
388- else (bL(dg) - cW)
389- let cK = if (da)
390- then bL(dh)
391- else if (if (dc)
392- then (df == dh)
388+ then (bM(dh) - df)
389+ else if (dd)
390+ then bM(dh)
391+ else (bM(dh) - cX)
392+ let cL = if (db)
393+ then bM(di)
394+ else if (if (dd)
395+ then (dg == di)
393396 else false)
394- then (bL(dh) - de)
395- else if (dc)
396- then bL(dh)
397- else (bL(dh) - cY)
398- let dn = H(cW, dk)
399- let do = H(cY, dl)
400- let dp = bN(do, dn)
401- let cJ = H(cI, dk)
402- let cL = H(cK, dl)
403- let dq = if ((dm == 0))
397+ then (bM(di) - df)
398+ else if (dd)
399+ then bM(di)
400+ else (bM(di) - cZ)
401+ let do = H(cX, dl)
402+ let dp = H(cZ, dm)
403+ let dq = bO(dp, do)
404+ let cK = H(cJ, dl)
405+ let cM = H(cL, dm)
406+ let dr = if ((dn == 0))
404407 then {
405- let cM = d
406- let dr = d
407- let co = pow((dn * do), 0, toBigInt(5), 1, 0, DOWN)
408- $Tuple5(K(co, a), K(dn, dk), K(do, dl), bN((cL + do), (cJ + dn)), dr)
408+ let cN = d
409+ let ds = d
410+ let cp = pow((do * dp), 0, toBigInt(5), 1, 0, DOWN)
411+ $Tuple5(L(cp, a), L(do, dl), L(dp, dm), bO((cM + dp), (cK + do)), ds)
409412 }
410413 else {
411- let cM = bN(cL, cJ)
412- let ds = fraction(V((cM - dp)), c, cM)
413- let dr = H(bU, a)
414- if (if (if (dd)
415- then (cM != d)
414+ let cN = bO(cM, cK)
415+ let dt = fraction(W((cN - dq)), c, cN)
416+ let ds = H(bV, a)
417+ if (if (if (de)
418+ then (cN != d)
416419 else false)
417- then (ds > dr)
420+ then (dt > ds)
418421 else false)
419- then throw(((("Price slippage " + toString(ds)) + " > ") + toString(dr)))
422+ then throw(((("Price slippage " + toString(dt)) + " > ") + toString(ds)))
420423 else {
421- let dt = H(dm, a)
422- let du = fraction(dn, bQ(cL, cJ, CEILING), c, CEILING)
423- let dv = fraction(do, c, bQ(cL, cJ, FLOOR), CEILING)
424- let dw = if ((du > do))
425- then $Tuple2(dv, do)
426- else $Tuple2(dn, du)
427- let dx = dw._1
428- let dy = dw._2
429- let co = fraction(dt, dy, cL, FLOOR)
430- $Tuple5(N(co, a, FLOOR), N(dx, dk, CEILING), N(dy, dl, CEILING), cM, dr)
424+ let du = H(dn, a)
425+ let dv = fraction(do, bR(cM, cK, CEILING), c, CEILING)
426+ let dw = fraction(dp, c, bR(cM, cK, FLOOR), CEILING)
427+ let dx = if ((dv > dp))
428+ then $Tuple2(dw, dp)
429+ else $Tuple2(do, dv)
430+ let dy = dx._1
431+ let dz = dx._2
432+ let cp = fraction(du, dz, cM, FLOOR)
433+ $Tuple5(O(cp, a, FLOOR), O(dy, dl, CEILING), O(dz, dm, CEILING), cN, ds)
431434 }
432435 }
433- let dz = dq._1
434- let dA = dq._2
435- let dB = dq._3
436- let cN = K(dq._4, a)
437- let dC = K(dq._5, a)
438- if ((0 >= dz))
436+ let dA = dr._1
437+ let dB = dr._2
438+ let dC = dr._3
439+ let cO = L(dr._4, a)
440+ let dD = L(dr._5, a)
441+ if ((0 >= dA))
439442 then throw("LP <= 0")
440443 else {
441- let dD = if (!(db))
444+ let dE = if (!(dc))
442445 then 0
443- else dz
444- let dE = (cW - dA)
445- let dF = (cY - dB)
446- let dG = if (if (dc)
447- then (df == dg)
446+ else dA
447+ let dF = (cX - dB)
448+ let dG = (cZ - dC)
449+ let dH = if (if (dd)
450+ then (dg == dh)
448451 else false)
449- then $Tuple2(de, 0)
450- else if (if (dc)
451- then (df == dh)
452+ then $Tuple2(df, 0)
453+ else if (if (dd)
454+ then (dg == di)
452455 else false)
453- then $Tuple2(0, de)
454- else $Tuple2(dA, dB)
455- let dH = dG._1
456- let dI = dG._2
457- let dJ = [IntegerEntry(aa(), cN), IntegerEntry(ab(height, lastBlock.timestamp), cN), StringEntry(ae(cA, cx), bw(dH, dI, dD, cN, bU, dC, height, lastBlock.timestamp, dE, dF))]
458- $Tuple13(dz, dD, cN, cI, cK, dm, cB, cG, dJ, dE, dF, cX, cZ)
456+ then $Tuple2(0, df)
457+ else $Tuple2(dB, dC)
458+ let dI = dH._1
459+ let dJ = dH._2
460+ let dK = [IntegerEntry(ab(), cO), IntegerEntry(ac(height, lastBlock.timestamp), cO), StringEntry(af(cB, cy), bx(dI, dJ, dE, cO, bV, dD, height, lastBlock.timestamp, dF, dG))]
461+ $Tuple13(dA, dE, cO, cJ, cL, dn, cC, cH, dK, dF, dG, cY, da)
459462 }
460463 }
461464
462465
463-func dK (dL) = {
464- let dM = dL[0]
465- let dN = dL[1]
466- let dO = (dM + dN)
467- if ((dO == e))
466+func dL (dM) = {
467+ let dN = dM[0]
468+ let dO = dM[1]
469+ let dP = (dN + dO)
470+ if ((dP == e))
468471 then e
469472 else {
470- let dP = parseIntValue(aS)
471- let dQ = (dP * 2)
472- let cs = fraction(dM, dN, f)
473- let dR = fraction(cs, i, f)
474- let dS = fraction(toBigInt(dQ), dO, f)
475- let dT = toBigInt((dQ - 1))
476- func dU (dV) = {
477- let dW = fraction(dV, dV, f)
478- let dX = fraction(dW, dV, f)
479- let dY = fraction(dX, f, dR)
480- fraction((dS + fraction(dY, g, f)), dV, (fraction(dT, dV, f) + fraction(h, dY, f)), CEILING)
473+ let dQ = parseIntValue(aT)
474+ let dR = (dQ * 2)
475+ let ct = fraction(dN, dO, f)
476+ let dS = fraction(ct, i, f)
477+ let dT = fraction(toBigInt(dR), dP, f)
478+ let dU = toBigInt((dR - 1))
479+ func dV (dW) = {
480+ let dX = fraction(dW, dW, f)
481+ let dY = fraction(dX, dW, f)
482+ let dZ = fraction(dY, f, dS)
483+ fraction((dT + fraction(dZ, g, f)), dW, (fraction(dU, dW, f) + fraction(h, dZ, f)))
481484 }
482485
483- func dZ (ea,eb) = if (ea._2)
484- then ea
486+ func ea (eb,ec) = if (eb._2)
487+ then eb
485488 else {
486- let dV = ea._1
487- let ec = dU(dV)
488- let ed = (ec - value(dV))
489- let ee = if ((e > ed))
490- then -(ed)
491- else ed
492- if ((f >= ee))
493- then $Tuple2(ec, true)
494- else $Tuple2(ec, false)
489+ let dW = eb._1
490+ let ed = dV(dW)
491+ let ee = (ed - value(dW))
492+ let ef = if ((e > ee))
493+ then -(ee)
494+ else ee
495+ if ((f >= ef))
496+ then $Tuple2(ed, true)
497+ else $Tuple2(ed, false)
495498 }
496499
497- let ef = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
498- let eg = {
499- let eh = ef
500- let ei = size(eh)
501- let ej = $Tuple2(dO, false)
502- func ek (el,em) = if ((em >= ei))
503- then el
504- else dZ(el, eh[em])
500+ let eg = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
501+ let eh = {
502+ let ei = eg
503+ let ej = size(ei)
504+ let ek = $Tuple2(dP, false)
505+ func el (em,en) = if ((en >= ej))
506+ then em
507+ else ea(em, ei[en])
505508
506- func en (el,em) = if ((em >= ei))
507- then el
509+ func eo (em,en) = if ((en >= ej))
510+ then em
508511 else throw("List size exceeds 15")
509512
510- en(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ej, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
513+ eo(el(el(el(el(el(el(el(el(el(el(el(el(el(el(el(ek, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
511514 }
512- let dV = eg._1
513- let eo = eg._2
514- if (eo)
515- then dV
516- else throw(("D calculation error, D = " + toString(dV)))
515+ let dW = eh._1
516+ let ep = eh._2
517+ if (ep)
518+ then dW
519+ else throw(("D calculation error, D = " + toString(dW)))
517520 }
518521 }
519522
520523
521-func ep (dL) = {
522- let eq = g
523- let dM = dL[0]
524- let dN = dL[1]
525- let er = parseBigIntValue(l)
526- let dP = (parseBigIntValue(aS) * er)
527- let dO = (dM + dN)
528- if ((dO == e))
529- then e
530- else {
531- let dQ = (dP * eq)
532- let dR = (((dM * dN) * eq) * eq)
533- let es = ((dQ * dO) / er)
534- let et = (dQ - er)
535- let eu = (eq + f)
536- func dZ (ea,ev) = {
537- let ew = ea
538- let dV = ew._1
539- let eo = ew._2
540- if ((eo != unit))
541- then ea
542- else {
543- let dY = (((dV * dV) * dV) / dR)
544- let ec = (((es + (dY * eq)) * dV) / (((et * dV) / er) + (eu * dY)))
545- let ee = W((ec - value(dV)))
546- if ((f >= ee))
547- then $Tuple2(ec, ev)
548- else $Tuple2(ec, unit)
549- }
524+func eq (dM,ec,er) = {
525+ let es = g
526+ let et = dM[if ((ec == 0))
527+ then 1
528+ else 0]
529+ let eu = parseBigIntValue(l)
530+ let dQ = (parseBigIntValue(aT) * eu)
531+ let dP = et
532+ let dR = (dQ * es)
533+ let ev = (((((er * er) / (et * es)) * er) * eu) / (dR * es))
534+ let ew = ((dP + ((er * eu) / dR)) - er)
535+ func ea (eb,ex) = {
536+ let ey = eb
537+ let ez = ey._1
538+ let ep = ey._2
539+ if ((ep != unit))
540+ then eb
541+ else {
542+ let eA = (((ez * ez) + ev) / ((g * ez) + ew))
543+ let eB = X((eA - value(ez)))
544+ if ((f >= eB))
545+ then $Tuple2(eA, ex)
546+ else $Tuple2(eA, unit)
550547 }
548+ }
551549
552- let ef = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
553- let ex = {
554- let eh = ef
555- let ei = size(eh)
556- let ej = $Tuple2(dO, unit)
557- func ek (el,em) = if ((em >= ei))
558- then el
559- else dZ(el, eh[em])
550+ let eg = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
551+ let eC = {
552+ let ei = eg
553+ let ej = size(ei)
554+ let ek = $Tuple2(er, unit)
555+ func el (em,en) = if ((en >= ej))
556+ then em
557+ else ea(em, ei[en])
560558
561- func en (el,em) = if ((em >= ei))
562- then el
563- else throw("List size exceeds 15")
559+ func eo (em,en) = if ((en >= ej))
560+ then em
561+ else throw("List size exceeds 15")
564562
565- en(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ej, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
566- }
567- let dV = ex._1
568- let eo = ex._2
569- if ((eo != unit))
570- then dV
571- else throw(("D calculation error, D = " + toString(dV)))
572- }
563+ eo(el(el(el(el(el(el(el(el(el(el(el(el(el(el(el(ek, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
564+ }
565+ let ez = eC._1
566+ let ep = eC._2
567+ if ((ep != unit))
568+ then ez
569+ else throw(("Y calculation error, Y = " + toString(ez)))
573570 }
574571
575572
576-func ey (dL,eb,ez) = {
577- let eq = g
578- let eA = dL[if ((eb == 0))
579- then 1
580- else 0]
581- let er = parseBigIntValue(l)
582- let dP = (parseBigIntValue(aS) * er)
583- let dO = eA
584- let dQ = (dP * eq)
585- let eB = (((((ez * ez) / (eA * eq)) * ez) * er) / (dQ * eq))
586- let eC = ((dO + ((ez * er) / dQ)) - ez)
587- func dZ (ea,ev) = {
588- let eD = ea
589- let eE = eD._1
590- let eo = eD._2
591- if ((eo != unit))
592- then ea
593- else {
594- let eF = (((eE * eE) + eB) / ((g * eE) + eC))
595- let eG = W((eF - value(eE)))
596- if ((f >= eG))
597- then $Tuple2(eF, ev)
598- else $Tuple2(eF, unit)
599- }
600- }
601-
602- let ef = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
603- let eH = {
604- let eh = ef
605- let ei = size(eh)
606- let ej = $Tuple2(ez, unit)
607- func ek (el,em) = if ((em >= ei))
608- then el
609- else dZ(el, eh[em])
610-
611- func en (el,em) = if ((em >= ei))
612- then el
613- else throw("List size exceeds 15")
614-
615- en(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ek(ej, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
616- }
617- let eE = eH._1
618- let eo = eH._2
619- if ((eo != unit))
620- then eE
621- else throw(("Y calculation error, Y = " + toString(eE)))
573+func eD (eE,eF,eG) = {
574+ let eH = fraction(dL([K(eE, toBigInt(bn)), K(eF, toBigInt(bo))]), f, eG)
575+ if ((eG == e))
576+ then e
577+ else eH
622578 }
623579
624580
625581 func eI (eJ,eK,eL) = {
626- let eM = fraction(dK([H(toInt(eJ), bm), H(toInt(eK), bn)]), f, eL)
627- if ((eL == e))
628- then e
629- else eM
582+ let eM = (toBigInt(bM(bd(bl))) - eJ)
583+ let eN = (toBigInt(bM(bd(bm))) - eK)
584+ let eO = (toBigInt(value(assetInfo(bk)).quantity) - eL)
585+ let eP = eD(eM, eN, eO)
586+ eP
630587 }
631588
632589
633-func eN (eO,eP,eQ) = {
634- let eR = (toBigInt(bL(bc(bk))) - eO)
635- let eS = (toBigInt(bL(bc(bl))) - eP)
636- let eT = (toBigInt(value(assetInfo(bj)).quantity) - eQ)
637- let eU = eI(eR, eS, eT)
638- eU
590+func eQ (eR,eS,eL) = {
591+ let eM = (bM(bd(bl)) + eR)
592+ let eN = (bM(bd(bm)) + eS)
593+ let eO = (value(assetInfo(bk)).quantity + eL)
594+ let eH = eD(toBigInt(eM), toBigInt(eN), toBigInt(eO))
595+ let eT = [IntegerEntry(aq, height), StringEntry(ap, toString(eH))]
596+ $Tuple2(eT, eH)
639597 }
640598
641599
642-func eV (eW,eX,eQ) = {
643- let eR = (bL(bc(bk)) + eW)
644- let eS = (bL(bc(bl)) + eX)
645- let eT = (value(assetInfo(bj)).quantity + eQ)
646- let eM = eI(toBigInt(eR), toBigInt(eS), toBigInt(eT))
647- let eY = [IntegerEntry(ap, height), StringEntry(ao, toString(eM))]
648- $Tuple2(eY, eM)
649- }
600+func eU (eV,eH) = if ((eH >= eV))
601+ then true
602+ else aM("updated DLp lower than current DLp")
650603
651604
652-func eZ (fa,eM) = if ((eM >= fa))
653- then true
654- else aL("updated DLp lower than current DLp")
655-
656-
657-func fb (fc) = {
658- let fd = fc.amount
659- let fe = fraction(fc.amount, fc.price, a, FLOOR)
660- let ff = if ((fc.orderType == Buy))
661- then $Tuple2(fd, -(fe))
662- else $Tuple2(-(fd), fe)
663- let eW = ff._1
664- let eX = ff._2
665- if (if (if (aT())
605+func eW (eX) = {
606+ let eY = eX.amount
607+ let eZ = fraction(eX.amount, eX.price, a, FLOOR)
608+ let fa = if ((eX.orderType == Buy))
609+ then $Tuple2(eY, -(eZ))
610+ else $Tuple2(-(eY), eZ)
611+ let eR = fa._1
612+ let eS = fa._2
613+ if (if (if (aU())
666614 then true
667- else (bi == r))
615+ else (bj == r))
668616 then true
669- else (bi == s))
617+ else (bj == s))
670618 then throw("Admin blocked")
671- else if (if ((fc.assetPair.amountAsset != bk))
619+ else if (if ((eX.assetPair.amountAsset != bl))
672620 then true
673- else (fc.assetPair.priceAsset != bl))
621+ else (eX.assetPair.priceAsset != bm))
674622 then throw("Wr assets")
675623 else {
676- let fg = parseBigIntValue(getStringValue(this, ao))
677- let fh = eV(eW, eX, 0)
678- let fi = fh._1
679- let fj = fh._2
680- let fk = (fj >= fg)
681- fk
624+ let fb = parseBigIntValue(getStringValue(this, ap))
625+ let fc = eQ(eR, eS, 0)
626+ let fd = fc._1
627+ let fe = fc._2
628+ let ff = (fe >= fb)
629+ ff
682630 }
683631 }
684632
685633
686-func fl (eb) = if ((size(eb.payments) != 1))
634+func fg (ec) = if ((size(ec.payments) != 1))
687635 then throw("1 pmnt exp")
688636 else {
689- let fm = value(eb.payments[0])
690- let cy = value(fm.assetId)
691- let de = fm.amount
692- let dq = cw(toBase58String(eb.transactionId), toBase58String(cy), de, eb.caller)
693- let cS = dq._1
694- let cT = dq._2
695- let cG = parseIntValue(dq._9)
696- let cU = dq._10
697- if (if (aT())
637+ let fh = value(ec.payments[0])
638+ let cz = value(fh.assetId)
639+ let df = fh.amount
640+ let dr = cx(toBase58String(ec.transactionId), toBase58String(cz), df, ec.caller)
641+ let cT = dr._1
642+ let cU = dr._2
643+ let cH = parseIntValue(dr._9)
644+ let cV = dr._10
645+ if (if (aU())
698646 then true
699- else (cG == s))
700- then throw(("Admin blocked: " + toString(cG)))
701- else $Tuple5(cS, cT, de, cy, cU)
647+ else (cH == s))
648+ then throw(("Admin blocked: " + toString(cH)))
649+ else $Tuple5(cT, cU, df, cz, cV)
702650 }
703651
704652
705-func fn (fo,ag,fp,fq,bU,db,dc,dd,de,df) = {
706- let dq = cV(ag, bU, value(fp).amount, value(fp).assetId, value(fq).amount, value(fq).assetId, fo, (ag == ""), db, dc, dd, de, df)
707- let cG = parseIntValue(dq._8)
708- if (if (if (aT())
653+func fi (fj,ah,fk,fl,bV,dc,dd,de,df,dg) = {
654+ let dr = cW(ah, bV, value(fk).amount, value(fk).assetId, value(fl).amount, value(fl).assetId, fj, (ah == ""), dc, dd, de, df, dg)
655+ let cH = parseIntValue(dr._8)
656+ if (if (if (aU())
709657 then true
710- else (cG == q))
658+ else (cH == q))
711659 then true
712- else (cG == s))
713- then throw(("Blocked:" + toString(cG)))
714- else dq
660+ else (cH == s))
661+ then throw(("Blocked:" + toString(cH)))
662+ else dr
715663 }
716664
717665
718-func fr (fs,cy,cA,ag,ft) = {
719- let cC = toBase58String(value(bk))
666+func fm (fn,cz,cB,ah,fo) = {
720667 let cD = toBase58String(value(bl))
721- let cB = bj
722- let dk = bm
668+ let cE = toBase58String(value(bm))
669+ let cC = bk
723670 let dl = bn
724- let eT = toBigInt(valueOrErrorMessage(assetInfo(cB), "invalid lp asset").quantity)
725- let fu = if ((eT > e))
671+ let dm = bo
672+ let eO = toBigInt(valueOrErrorMessage(assetInfo(cC), "invalid lp asset").quantity)
673+ let fp = if ((eO > e))
726674 then true
727675 else throw("initial deposit requires all coins")
728- if ((fu == fu))
676+ if ((fp == fp))
729677 then {
730- let cI = bL(cC)
731- let cK = bL(cD)
732- let fv = if ((ag == ""))
733- then $Tuple2(cI, cK)
734- else if ((cy == cC))
735- then if ((fs > cI))
678+ let cJ = bM(cD)
679+ let cL = bM(cE)
680+ let fq = if ((ah == ""))
681+ then $Tuple2(cJ, cL)
682+ else if ((cz == cD))
683+ then if ((fn > cJ))
736684 then throw("invalid payment amount")
737- else $Tuple2((cI - fs), cK)
738- else if ((cy == cD))
739- then if ((fs > cK))
685+ else $Tuple2((cJ - fn), cL)
686+ else if ((cz == cE))
687+ then if ((fn > cL))
740688 then throw("invalid payment amount")
741- else $Tuple2(cI, (cK - fs))
689+ else $Tuple2(cJ, (cL - fn))
742690 else throw("wrong pmtAssetId")
743- let fw = fv._1
744- let fx = fv._2
745- let fy = if ((cy == cC))
746- then $Tuple2(fs, 0)
747- else if ((cy == cD))
748- then $Tuple2(0, fs)
691+ let fr = fq._1
692+ let fs = fq._2
693+ let ft = if ((cz == cD))
694+ then $Tuple2(fn, 0)
695+ else if ((cz == cE))
696+ then $Tuple2(0, fn)
749697 else throw("invalid payment")
750- let fz = fy._1
751- let fA = fy._2
752- let fB = if (ft)
753- then $Tuple3(ct(fz, aP)._1, ct(fA, aP)._1, ct(fs, aP)._2)
754- else $Tuple3(fz, fA, 0)
755- let fC = fB._1
756- let fD = fB._2
757- let cv = fB._3
758- let fE = (fw + fC)
759- let fF = (fx + fD)
760- let bZ = dK([toBigInt(fw), toBigInt(fx)])
761- let bY = dK([toBigInt(fE), toBigInt(fF)])
762- let fG = if ((bY > bZ))
698+ let fu = ft._1
699+ let fv = ft._2
700+ let fw = if (fo)
701+ then $Tuple3(cu(fu, aQ)._1, cu(fv, aQ)._1, cu(fn, aQ)._2)
702+ else $Tuple3(fu, fv, 0)
703+ let fx = fw._1
704+ let fy = fw._2
705+ let cw = fw._3
706+ let fz = (fr + fx)
707+ let fA = (fs + fy)
708+ let ca = dL([toBigInt(fr), toBigInt(fs)])
709+ let bZ = dL([toBigInt(fz), toBigInt(fA)])
710+ let fB = if ((bZ > ca))
763711 then true
764712 else throw()
765- if ((fG == fG))
713+ if ((fB == fB))
766714 then {
767- let fH = fraction(eT, (bY - bZ), bZ, FLOOR)
768- let cN = K(bN(H(fF, dl), H(fE, dk)), a)
769- let dJ = [IntegerEntry(aa(), cN), IntegerEntry(ab(height, lastBlock.timestamp), cN), StringEntry(ae(cA, ag), bw(fz, fA, toInt(fH), cN, 0, 0, height, lastBlock.timestamp, 0, 0))]
770- let fI = fraction(fx, a, fw)
771- let fJ = fraction(fs, a, (fI + a))
772- let fK = (fs - fJ)
773- let fL = fraction(eT, toBigInt(fK), toBigInt(fx))
774- let fM = toInt(fraction((fH - fL), b, fL))
775- $Tuple4(toInt(fH), dJ, cv, fM)
715+ let fC = fraction(eO, (bZ - ca), ca, FLOOR)
716+ let cO = L(bO(H(fA, dm), H(fz, dl)), a)
717+ let dK = [IntegerEntry(ab(), cO), IntegerEntry(ac(height, lastBlock.timestamp), cO), StringEntry(af(cB, ah), bx(fu, fv, toInt(fC), cO, 0, 0, height, lastBlock.timestamp, 0, 0))]
718+ let fD = fraction(fs, a, fr)
719+ let fE = fraction(fn, a, (fD + a))
720+ let fF = (fn - fE)
721+ let fG = fraction(eO, toBigInt(fF), toBigInt(fs))
722+ let fH = toInt(fraction((fC - fG), b, fG))
723+ $Tuple4(toInt(fC), dK, cw, fH)
776724 }
777725 else throw("Strict value is not equal to itself.")
778726 }
779727 else throw("Strict value is not equal to itself.")
780728 }
781729
782730
783-func fN (fO,fP,fQ,fo,fR,fS) = {
784- let cB = toBase58String(value(bj))
731+func fI (fJ,fK,fL,fj,fM,fN) = {
785732 let cC = toBase58String(value(bk))
786733 let cD = toBase58String(value(bl))
787- let fT = bm
788- let fU = bn
789- let fV = bi
790- let cA = if ((fo == bv))
791- then fR
792- else fo
793- let fm = value(fQ[0])
794- let cy = value(fm.assetId)
795- let de = fm.amount
796- let eU = eN(e, e, e)
797- if ((eU == eU))
734+ let cE = toBase58String(value(bm))
735+ let fO = bn
736+ let fP = bo
737+ let fQ = bj
738+ let cB = if ((fj == bw))
739+ then fM
740+ else fj
741+ let fh = value(fL[0])
742+ let cz = value(fh.assetId)
743+ let df = fh.amount
744+ let eP = eI(e, e, e)
745+ if ((eP == eP))
798746 then {
799- let cx = toBase58String(fS)
800- if ((cB != toBase58String(cy)))
747+ let cy = toBase58String(fN)
748+ if ((cC != toBase58String(cz)))
801749 then throw("Wrong LP")
802750 else {
803- let cI = bL(cC)
804- let cK = bL(cD)
805- let fW = {
806- let aQ = invoke(this, "getOneTknV2READONLY", [fO, de], nil)
807- if ($isInstanceOf(aQ, "(Int, Int)"))
808- then aQ
809- else throw(($getType(aQ) + " couldn't be cast to (Int, Int)"))
751+ let cJ = bM(cD)
752+ let cL = bM(cE)
753+ let fR = {
754+ let aR = invoke(this, "getOneTknV2READONLY", [fJ, df], nil)
755+ if ($isInstanceOf(aR, "(Int, Int)"))
756+ then aR
757+ else throw(($getType(aR) + " couldn't be cast to (Int, Int)"))
810758 }
811- if ((fW == fW))
759+ if ((fR == fR))
812760 then {
813- let cv = fW._2
814- let fX = fW._1
815- let fY = if (if ((fP > 0))
816- then (fP > fX)
761+ let cw = fR._2
762+ let fS = fR._1
763+ let fT = if (if ((fK > 0))
764+ then (fK > fS)
817765 else false)
818- then aL(makeString(["amount to receive is less than ", toString(fP)], ""))
819- else fX
820- let fZ = if ((fO == cC))
821- then $Tuple4(fY, 0, ((cI - fY) - cv), cK)
822- else if ((fO == cD))
823- then $Tuple4(0, fY, cI, ((cK - fY) - cv))
766+ then aM(makeString(["amount to receive is less than ", toString(fK)], ""))
767+ else fS
768+ let fU = if ((fJ == cD))
769+ then $Tuple4(fT, 0, ((cJ - fT) - cw), cL)
770+ else if ((fJ == cE))
771+ then $Tuple4(0, fT, cJ, ((cL - fT) - cw))
824772 else throw("invalid out asset id")
825- let ga = fZ._1
826- let gb = fZ._2
827- let fE = fZ._3
828- let fF = fZ._4
829- let gc = bN(H(fF, fU), H(fE, fT))
830- let gd = K(gc, a)
831- let ge = if ((fO == "WAVES"))
773+ let fV = fU._1
774+ let fW = fU._2
775+ let fz = fU._3
776+ let fA = fU._4
777+ let fX = bO(H(fA, fP), H(fz, fO))
778+ let fY = L(fX, a)
779+ let fZ = if ((fJ == "WAVES"))
832780 then unit
833- else fromBase58String(fO)
834- let gf = if ((cv > 0))
835- then [ScriptTransfer(aV, cv, ge)]
781+ else fromBase58String(fJ)
782+ let ga = if ((cw > 0))
783+ then [ScriptTransfer(aW, cw, fZ)]
836784 else nil
837- let cU = ([ScriptTransfer(cA, fY, ge), StringEntry(ah(toString(cA), cx), bH(ga, gb, de, gd, height, lastBlock.timestamp)), IntegerEntry(aa(), gd), IntegerEntry(ab(height, lastBlock.timestamp), gd)] ++ gf)
838- if ((cU == cU))
785+ let cV = ([ScriptTransfer(cB, fT, fZ), StringEntry(ai(toString(cB), cy), bI(fV, fW, df, fY, height, lastBlock.timestamp)), IntegerEntry(ab(), fY), IntegerEntry(ac(height, lastBlock.timestamp), fY)] ++ ga)
786+ if ((cV == cV))
839787 then {
840- let gg = invoke(aO, "burn", [de], [AttachedPayment(cy, de)])
841- if ((gg == gg))
788+ let gb = invoke(aP, "burn", [df], [AttachedPayment(cz, df)])
789+ if ((gb == gb))
842790 then {
843- let gh = {
844- let gi = if ((this == aV))
791+ let gc = {
792+ let gd = if ((this == aW))
845793 then 0
846- else cv
847- let gj = if ((ba(fO) == bk))
794+ else cw
795+ let ge = if ((bb(fJ) == bl))
848796 then true
849797 else false
850- if (gj)
851- then $Tuple2(-((fX + gi)), 0)
852- else $Tuple2(0, -((fX + gi)))
798+ if (ge)
799+ then $Tuple2(-((fS + gd)), 0)
800+ else $Tuple2(0, -((fS + gd)))
853801 }
854- let eW = gh._1
855- let eX = gh._2
856- let gk = eV(eW, eX, 0)
857- let gl = gk._1
858- let eM = gk._2
859- let gm = eZ(eU, eM)
860- if ((gm == gm))
861- then $Tuple2((cU ++ gl), fY)
802+ let eR = gc._1
803+ let eS = gc._2
804+ let gf = eQ(eR, eS, 0)
805+ let gg = gf._1
806+ let eH = gf._2
807+ let gh = eU(eP, eH)
808+ if ((gh == gh))
809+ then $Tuple2((cV ++ gg), fT)
862810 else throw("Strict value is not equal to itself.")
863811 }
864812 else throw("Strict value is not equal to itself.")
865813 }
866814 else throw("Strict value is not equal to itself.")
867815 }
868816 else throw("Strict value is not equal to itself.")
869817 }
870818 }
871819 else throw("Strict value is not equal to itself.")
872820 }
873821
874822
875-func gn () = {
876- let go = getString(Y())
877- if ($isInstanceOf(go, "String"))
823+func gi () = {
824+ let gj = getString(Z())
825+ if ($isInstanceOf(gj, "String"))
878826 then {
879- let dO = go
880- fromBase58String(dO)
827+ let dP = gj
828+ fromBase58String(dP)
881829 }
882- else if ($isInstanceOf(go, "Unit"))
830+ else if ($isInstanceOf(gj, "Unit"))
883831 then unit
884832 else throw("Match error")
885833 }
886834
887835
888-func gp () = {
889- let go = getString(Z())
890- if ($isInstanceOf(go, "String"))
836+func gk () = {
837+ let gj = getString(aa())
838+ if ($isInstanceOf(gj, "String"))
891839 then {
892- let dO = go
893- fromBase58String(dO)
840+ let dP = gj
841+ fromBase58String(dP)
894842 }
895- else if ($isInstanceOf(go, "Unit"))
843+ else if ($isInstanceOf(gj, "Unit"))
896844 then unit
897845 else throw("Match error")
898846 }
899847
900848
901-let gq = throw("Permission denied")
849+let gl = throw("Permission denied")
902850
903-func gr (eb) = {
904- let go = gn()
905- if ($isInstanceOf(go, "ByteVector"))
851+func gm (ec) = {
852+ let gj = gi()
853+ if ($isInstanceOf(gj, "ByteVector"))
906854 then {
907- let gs = go
908- (eb.callerPublicKey == gs)
855+ let gn = gj
856+ (ec.callerPublicKey == gn)
909857 }
910- else if ($isInstanceOf(go, "Unit"))
911- then (eb.caller == this)
858+ else if ($isInstanceOf(gj, "Unit"))
859+ then (ec.caller == this)
912860 else throw("Match error")
913861 }
914862
915863
916-func gt (eb) = {
917- let go = gn()
918- if ($isInstanceOf(go, "ByteVector"))
864+func go (ec) = {
865+ let gj = gi()
866+ if ($isInstanceOf(gj, "ByteVector"))
919867 then {
920- let gs = go
921- if ((eb.callerPublicKey == gs))
868+ let gn = gj
869+ if ((ec.callerPublicKey == gn))
922870 then true
923- else gq
871+ else gl
924872 }
925- else if ($isInstanceOf(go, "Unit"))
926- then if ((eb.caller == this))
873+ else if ($isInstanceOf(gj, "Unit"))
874+ then if ((ec.caller == this))
927875 then true
928- else gq
876+ else gl
929877 else throw("Match error")
930878 }
931879
932880
933-@Callable(eb)
934-func constructor (X) = {
935- let eB = gt(eb)
936- if ((eB == eB))
937- then [StringEntry(X(), X)]
881+@Callable(ec)
882+func constructor (Y) = {
883+ let ev = go(ec)
884+ if ((ev == ev))
885+ then [StringEntry(Y(), Y)]
938886 else throw("Strict value is not equal to itself.")
939887 }
940888
941889
942890
943-@Callable(eb)
944-func setManager (gu) = {
945- let eB = gt(eb)
946- if ((eB == eB))
891+@Callable(ec)
892+func setManager (gp) = {
893+ let ev = go(ec)
894+ if ((ev == ev))
947895 then {
948- let gv = fromBase58String(gu)
949- if ((gv == gv))
950- then [StringEntry(Z(), gu)]
896+ let gq = fromBase58String(gp)
897+ if ((gq == gq))
898+ then [StringEntry(aa(), gp)]
951899 else throw("Strict value is not equal to itself.")
952900 }
953901 else throw("Strict value is not equal to itself.")
954902 }
955903
956904
957905
958-@Callable(eb)
906+@Callable(ec)
959907 func confirmManager () = {
960- let cs = gp()
961- let gw = if (isDefined(cs))
908+ let ct = gk()
909+ let gr = if (isDefined(ct))
962910 then true
963911 else throw("No pending manager")
964- if ((gw == gw))
912+ if ((gr == gr))
965913 then {
966- let gx = if ((eb.callerPublicKey == value(cs)))
914+ let gs = if ((ec.callerPublicKey == value(ct)))
967915 then true
968916 else throw("You are not pending manager")
969- if ((gx == gx))
970- then [StringEntry(Y(), toBase58String(value(cs))), DeleteEntry(Z())]
917+ if ((gs == gs))
918+ then [StringEntry(Z(), toBase58String(value(ct))), DeleteEntry(aa())]
971919 else throw("Strict value is not equal to itself.")
972920 }
973921 else throw("Strict value is not equal to itself.")
974922 }
975923
976924
977925
978-@Callable(eb)
979-func put (gy,gz) = {
980- let gA = bq()
981- let gB = valueOrErrorMessage(addressFromString(gA[C]), "Wr st addr")
982- let gC = valueOrErrorMessage(addressFromString(gA[E]), "Wr sl addr")
983- if ((0 > gy))
926+@Callable(ec)
927+func put (gt,gu) = {
928+ let gv = br()
929+ let gw = valueOrErrorMessage(addressFromString(gv[C]), "Wr st addr")
930+ let gx = valueOrErrorMessage(addressFromString(gv[E]), "Wr sl addr")
931+ if ((0 > gt))
984932 then throw("Wrong slippage")
985- else if ((size(eb.payments) != 2))
933+ else if ((size(ec.payments) != 2))
986934 then throw("2 pmnts expd")
987935 else {
988- let gD = toBigInt(value(eb.payments[0]).amount)
989- let gE = toBigInt(value(eb.payments[1]).amount)
990- let eR = (toBigInt(bL(bc(bk))) - gD)
991- if ((eR == eR))
936+ let gy = toBigInt(value(ec.payments[0]).amount)
937+ let gz = toBigInt(value(ec.payments[1]).amount)
938+ let eM = (toBigInt(bM(bd(bl))) - gy)
939+ if ((eM == eM))
992940 then {
993- let eS = (toBigInt(bL(bc(bl))) - gE)
994- if ((eS == eS))
941+ let eN = (toBigInt(bM(bd(bm))) - gz)
942+ if ((eN == eN))
995943 then {
996- let eT = toBigInt(value(assetInfo(bj)).quantity)
997- if ((eT == eT))
944+ let eO = toBigInt(value(assetInfo(bk)).quantity)
945+ if ((eO == eO))
998946 then {
999- let eU = eN(gD, gE, toBigInt(0))
1000- if ((eU == eU))
947+ let eP = eI(gy, gz, toBigInt(0))
948+ if ((eP == eP))
1001949 then {
1002- let gF = fn(toString(eb.caller), toBase58String(eb.transactionId), AttachedPayment(value(eb.payments[0]).assetId, value(eb.payments[0]).amount), eb.payments[1], gy, true, false, true, 0, "")
1003- let dD = gF._2
1004- let gG = gF._7
1005- let cU = gF._9
1006- let dE = gF._10
1007- let dF = gF._11
1008- let cC = gF._12
1009- let cD = gF._13
1010- let dq = invoke(aO, "emit", [dD], nil)
1011- if ((dq == dq))
950+ let gA = fi(toString(ec.caller), toBase58String(ec.transactionId), AttachedPayment(value(ec.payments[0]).assetId, value(ec.payments[0]).amount), ec.payments[1], gt, true, false, true, 0, "")
951+ let dE = gA._2
952+ let gB = gA._7
953+ let cV = gA._9
954+ let dF = gA._10
955+ let dG = gA._11
956+ let cD = gA._12
957+ let cE = gA._13
958+ let dr = invoke(aP, "emit", [dE], nil)
959+ if ((dr == dr))
1012960 then {
1013- let gH = {
1014- let go = dq
1015- if ($isInstanceOf(go, "Address"))
961+ let gC = {
962+ let gj = dr
963+ if ($isInstanceOf(gj, "Address"))
1016964 then {
1017- let gI = go
1018- invoke(gI, "emit", [dD], nil)
965+ let gD = gj
966+ invoke(gD, "emit", [dE], nil)
1019967 }
1020968 else unit
1021969 }
1022- if ((gH == gH))
970+ if ((gC == gC))
1023971 then {
1024- let gJ = if ((dE > 0))
1025- then invoke(gC, "put", nil, [AttachedPayment(cC, dE)])
972+ let gE = if ((dF > 0))
973+ then invoke(gx, "put", nil, [AttachedPayment(cD, dF)])
1026974 else nil
1027- if ((gJ == gJ))
975+ if ((gE == gE))
1028976 then {
1029- let gK = if ((dF > 0))
1030- then invoke(gC, "put", nil, [AttachedPayment(cD, dF)])
977+ let gF = if ((dG > 0))
978+ then invoke(gx, "put", nil, [AttachedPayment(cE, dG)])
1031979 else nil
1032- if ((gK == gK))
980+ if ((gF == gF))
1033981 then {
1034- let gL = if (gz)
982+ let gG = if (gu)
1035983 then {
1036- let gM = invoke(gB, "stake", nil, [AttachedPayment(gG, dD)])
1037- if ((gM == gM))
984+ let gH = invoke(gw, "stake", nil, [AttachedPayment(gB, dE)])
985+ if ((gH == gH))
1038986 then nil
1039987 else throw("Strict value is not equal to itself.")
1040988 }
1041- else [ScriptTransfer(eb.caller, dD, gG)]
1042- let gN = eV(0, 0, 0)
1043- let gl = gN._1
1044- let eM = gN._2
1045- let gO = if ((eM >= eU))
989+ else [ScriptTransfer(ec.caller, dE, gB)]
990+ let gI = eQ(0, 0, 0)
991+ let gg = gI._1
992+ let eH = gI._2
993+ let gJ = if ((eH >= eP))
1046994 then true
1047- else aL(makeString(["updated DLp lower than current DLp", toString(eR), toString(eS), toString(eT), toString(eU), toString(eM), toString(dE), toString(dF)], " "))
1048- if ((gO == gO))
995+ else aM(makeString(["updated DLp lower than current DLp", toString(eM), toString(eN), toString(eO), toString(eP), toString(eH), toString(dF), toString(dG)], " "))
996+ if ((gJ == gJ))
1049997 then {
1050- let gP = value(assetInfo(bj)).quantity
1051- if ((gP == gP))
1052- then ((cU ++ gL) ++ gl)
998+ let gK = value(assetInfo(bk)).quantity
999+ if ((gK == gK))
1000+ then ((cV ++ gG) ++ gg)
10531001 else throw("Strict value is not equal to itself.")
10541002 }
10551003 else throw("Strict value is not equal to itself.")
10561004 }
10571005 else throw("Strict value is not equal to itself.")
10581006 }
10591007 else throw("Strict value is not equal to itself.")
10601008 }
10611009 else throw("Strict value is not equal to itself.")
10621010 }
10631011 else throw("Strict value is not equal to itself.")
10641012 }
10651013 else throw("Strict value is not equal to itself.")
10661014 }
10671015 else throw("Strict value is not equal to itself.")
10681016 }
10691017 else throw("Strict value is not equal to itself.")
10701018 }
10711019 else throw("Strict value is not equal to itself.")
10721020 }
10731021 }
10741022
10751023
10761024
1077-@Callable(eb)
1078-func putOneTknV2 (fP,gz) = {
1079- let gQ = {
1080- let aQ = invoke(aO, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1081- if ($isInstanceOf(aQ, "Boolean"))
1082- then aQ
1083- else throw(($getType(aQ) + " couldn't be cast to Boolean"))
1025+@Callable(ec)
1026+func putOneTknV2 (fK,gu) = {
1027+ let gL = {
1028+ let aR = invoke(aP, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1029+ if ($isInstanceOf(aR, "Boolean"))
1030+ then aR
1031+ else throw(($getType(aR) + " couldn't be cast to Boolean"))
10841032 }
1085- let gR = if (if (if (aT())
1033+ let gM = if (if (if (aU())
10861034 then true
1087- else (bi == q))
1035+ else (bj == q))
10881036 then true
1089- else (bi == s))
1037+ else (bj == s))
10901038 then true
1091- else gQ
1092- let gS = [if (if (!(gR))
1039+ else gL
1040+ let gN = [if (if (!(gM))
10931041 then true
1094- else gr(eb))
1042+ else gm(ec))
10951043 then true
1096- else aL("put operation is blocked by admin"), if ((size(eb.payments) == 1))
1044+ else aM("put operation is blocked by admin"), if ((size(ec.payments) == 1))
10971045 then true
1098- else aL("exactly 1 payment are expected")]
1099- if ((gS == gS))
1046+ else aM("exactly 1 payment are expected")]
1047+ if ((gN == gN))
11001048 then {
1101- let cC = toBase58String(value(bk))
11021049 let cD = toBase58String(value(bl))
1103- let cB = bj
1104- let fT = bm
1105- let fU = bn
1106- let cA = if ((eb.caller == this))
1107- then eb.originCaller
1108- else eb.caller
1109- let fm = value(eb.payments[0])
1110- let cy = toBase58String(value(fm.assetId))
1111- let de = fm.amount
1112- let eU = if ((fm.assetId == bk))
1113- then eN(toBigInt(de), toBigInt(0), toBigInt(0))
1114- else eN(toBigInt(0), toBigInt(de), toBigInt(0))
1115- if ((eU == eU))
1050+ let cE = toBase58String(value(bm))
1051+ let cC = bk
1052+ let fO = bn
1053+ let fP = bo
1054+ let cB = if ((ec.caller == this))
1055+ then ec.originCaller
1056+ else ec.caller
1057+ let fh = value(ec.payments[0])
1058+ let cz = toBase58String(value(fh.assetId))
1059+ let df = fh.amount
1060+ let eP = if ((fh.assetId == bl))
1061+ then eI(toBigInt(df), toBigInt(0), toBigInt(0))
1062+ else eI(toBigInt(0), toBigInt(df), toBigInt(0))
1063+ if ((eP == eP))
11161064 then {
1117- let gT = fr(de, cy, toString(cA), toBase58String(eb.transactionId), true)
1118- if ((gT == gT))
1065+ let gO = fm(df, cz, toString(cB), toBase58String(ec.transactionId), true)
1066+ if ((gO == gO))
11191067 then {
1120- let cv = gT._3
1121- let cU = gT._2
1122- let gU = gT._1
1123- let dD = if (if ((fP > 0))
1124- then (fP > gU)
1068+ let cw = gO._3
1069+ let cV = gO._2
1070+ let gP = gO._1
1071+ let dE = if (if ((fK > 0))
1072+ then (fK > gP)
11251073 else false)
1126- then aL(makeString(["amount to receive is less than ", toString(fP)], ""))
1127- else gU
1128- let gF = invoke(aO, "emit", [dD], nil)
1129- if ((gF == gF))
1074+ then aM(makeString(["amount to receive is less than ", toString(fK)], ""))
1075+ else gP
1076+ let gA = invoke(aP, "emit", [dE], nil)
1077+ if ((gA == gA))
11301078 then {
1131- let gH = {
1132- let go = gF
1133- if ($isInstanceOf(go, "Address"))
1079+ let gC = {
1080+ let gj = gA
1081+ if ($isInstanceOf(gj, "Address"))
11341082 then {
1135- let gI = go
1136- invoke(gI, "emit", [dD], nil)
1083+ let gD = gj
1084+ invoke(gD, "emit", [dE], nil)
11371085 }
11381086 else unit
11391087 }
1140- if ((gH == gH))
1088+ if ((gC == gC))
11411089 then {
1142- let gL = if (gz)
1090+ let gG = if (gu)
11431091 then {
1144- let gM = invoke(bs, "stake", nil, [AttachedPayment(cB, dD)])
1145- if ((gM == gM))
1092+ let gH = invoke(bt, "stake", nil, [AttachedPayment(cC, dE)])
1093+ if ((gH == gH))
11461094 then nil
11471095 else throw("Strict value is not equal to itself.")
11481096 }
1149- else [ScriptTransfer(eb.caller, dD, cB)]
1150- let gf = if ((cv > 0))
1151- then [ScriptTransfer(aV, cv, fromBase58String(cy))]
1097+ else [ScriptTransfer(ec.caller, dE, cC)]
1098+ let ga = if ((cw > 0))
1099+ then [ScriptTransfer(aW, cw, fromBase58String(cz))]
11521100 else nil
1153- let gV = if ((this == aV))
1101+ let gQ = if ((this == aW))
11541102 then $Tuple2(0, 0)
11551103 else {
1156- let gW = if ((fm.assetId == bk))
1104+ let gR = if ((fh.assetId == bl))
11571105 then true
11581106 else false
1159- if (gW)
1160- then $Tuple2(-(cv), 0)
1161- else $Tuple2(0, -(cv))
1107+ if (gR)
1108+ then $Tuple2(-(cw), 0)
1109+ else $Tuple2(0, -(cw))
11621110 }
1163- let eW = gV._1
1164- let eX = gV._2
1165- let gX = eV(eW, eX, 0)
1166- let gl = gX._1
1167- let eM = gX._2
1168- let gm = eZ(eU, eM)
1169- if ((gm == gm))
1170- then $Tuple2((((cU ++ gL) ++ gf) ++ gl), dD)
1111+ let eR = gQ._1
1112+ let eS = gQ._2
1113+ let gS = eQ(eR, eS, 0)
1114+ let gg = gS._1
1115+ let eH = gS._2
1116+ let gh = eU(eP, eH)
1117+ if ((gh == gh))
1118+ then $Tuple2((((cV ++ gG) ++ ga) ++ gg), dE)
11711119 else throw("Strict value is not equal to itself.")
11721120 }
11731121 else throw("Strict value is not equal to itself.")
11741122 }
11751123 else throw("Strict value is not equal to itself.")
11761124 }
11771125 else throw("Strict value is not equal to itself.")
11781126 }
11791127 else throw("Strict value is not equal to itself.")
11801128 }
11811129 else throw("Strict value is not equal to itself.")
11821130 }
11831131
11841132
11851133
1186-@Callable(eb)
1187-func putForFree (gY) = if ((0 > gY))
1134+@Callable(ec)
1135+func putForFree (gT) = if ((0 > gT))
11881136 then throw("Wrong slpg")
1189- else if ((size(eb.payments) != 2))
1137+ else if ((size(ec.payments) != 2))
11901138 then throw("2 pmnts expd")
11911139 else {
1192- let gZ = fn(toString(eb.caller), toBase58String(eb.transactionId), AttachedPayment(value(eb.payments[0]).assetId, value(eb.payments[0]).amount), eb.payments[1], gY, false, false, true, 0, "")
1193- let cU = gZ._9
1194- let gD = toBigInt(value(eb.payments[0]).amount)
1195- let gE = toBigInt(value(eb.payments[1]).amount)
1196- let eU = eN(gD, gE, toBigInt(0))
1197- if ((eU == eU))
1140+ let gU = fi(toString(ec.caller), toBase58String(ec.transactionId), AttachedPayment(value(ec.payments[0]).assetId, value(ec.payments[0]).amount), ec.payments[1], gT, false, false, true, 0, "")
1141+ let cV = gU._9
1142+ let gy = toBigInt(value(ec.payments[0]).amount)
1143+ let gz = toBigInt(value(ec.payments[1]).amount)
1144+ let eP = eI(gy, gz, toBigInt(0))
1145+ if ((eP == eP))
11981146 then {
1199- let ha = eV(0, 0, 0)
1200- let gl = ha._1
1201- let eM = ha._2
1202- let gm = eZ(eU, eM)
1203- if ((gm == gm))
1204- then (cU ++ gl)
1147+ let gV = eQ(0, 0, 0)
1148+ let gg = gV._1
1149+ let eH = gV._2
1150+ let gh = eU(eP, eH)
1151+ if ((gh == gh))
1152+ then (cV ++ gg)
12051153 else throw("Strict value is not equal to itself.")
12061154 }
12071155 else throw("Strict value is not equal to itself.")
12081156 }
12091157
12101158
12111159
1212-@Callable(eb)
1160+@Callable(ec)
12131161 func get () = {
1214- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1215- if ((eU == eU))
1162+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1163+ if ((eP == eP))
12161164 then {
1217- let dq = fl(eb)
1218- let hb = dq._1
1219- let cT = dq._2
1220- let de = dq._3
1221- let cy = dq._4
1222- let cU = dq._5
1223- let eC = invoke(aO, "burn", [de], [AttachedPayment(cy, de)])
1224- if ((eC == eC))
1165+ let dr = fg(ec)
1166+ let gW = dr._1
1167+ let cU = dr._2
1168+ let df = dr._3
1169+ let cz = dr._4
1170+ let cV = dr._5
1171+ let ew = invoke(aP, "burn", [df], [AttachedPayment(cz, df)])
1172+ if ((ew == ew))
12251173 then {
1226- let hc = eV(-(hb), -(cT), 0)
1227- let gl = hc._1
1228- let eM = hc._2
1229- let gm = eZ(eU, eM)
1230- if ((gm == gm))
1231- then (cU ++ gl)
1174+ let gX = eQ(-(gW), -(cU), 0)
1175+ let gg = gX._1
1176+ let eH = gX._2
1177+ let gh = eU(eP, eH)
1178+ if ((gh == gh))
1179+ then (cV ++ gg)
12321180 else throw("Strict value is not equal to itself.")
12331181 }
12341182 else throw("Strict value is not equal to itself.")
12351183 }
12361184 else throw("Strict value is not equal to itself.")
12371185 }
12381186
12391187
12401188
1241-@Callable(eb)
1242-func getOneTknV2 (fO,fP) = {
1243- let gQ = {
1244- let aQ = invoke(aO, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1245- if ($isInstanceOf(aQ, "Boolean"))
1246- then aQ
1247- else throw(($getType(aQ) + " couldn't be cast to Boolean"))
1189+@Callable(ec)
1190+func getOneTknV2 (fJ,fK) = {
1191+ let gL = {
1192+ let aR = invoke(aP, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1193+ if ($isInstanceOf(aR, "Boolean"))
1194+ then aR
1195+ else throw(($getType(aR) + " couldn't be cast to Boolean"))
12481196 }
1249- let hd = if (if (aT())
1197+ let gY = if (if (aU())
12501198 then true
1251- else (bi == s))
1199+ else (bj == s))
12521200 then true
1253- else gQ
1254- let gS = [if (if (!(hd))
1201+ else gL
1202+ let gN = [if (if (!(gY))
12551203 then true
1256- else gr(eb))
1204+ else gm(ec))
12571205 then true
1258- else aL("get operation is blocked by admin"), if ((size(eb.payments) == 1))
1206+ else aM("get operation is blocked by admin"), if ((size(ec.payments) == 1))
12591207 then true
1260- else aL("exactly 1 payment are expected")]
1261- if ((gS == gS))
1208+ else aM("exactly 1 payment are expected")]
1209+ if ((gN == gN))
12621210 then {
1263- let he = fN(fO, fP, eb.payments, eb.caller, eb.originCaller, eb.transactionId)
1264- let cU = he._1
1265- let fY = he._2
1266- $Tuple2(cU, fY)
1211+ let gZ = fI(fJ, fK, ec.payments, ec.caller, ec.originCaller, ec.transactionId)
1212+ let cV = gZ._1
1213+ let fT = gZ._2
1214+ $Tuple2(cV, fT)
12671215 }
12681216 else throw("Strict value is not equal to itself.")
12691217 }
12701218
12711219
12721220
1273-@Callable(eb)
1221+@Callable(ec)
12741222 func refreshDLp () = {
1275- let hf = valueOrElse(getInteger(ap), 0)
1276- let hg = if (((height - hf) >= as))
1223+ let ha = valueOrElse(getInteger(aq), 0)
1224+ let hb = if (((height - ha) >= at))
12771225 then unit
1278- else aL(makeString([toString(as), " blocks have not passed since the previous call"], ""))
1279- if ((hg == hg))
1226+ else aM(makeString([toString(at), " blocks have not passed since the previous call"], ""))
1227+ if ((hb == hb))
12801228 then {
1281- let fg = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ao), "0")), aN("invalid dLp"))
1282- let hh = eV(0, 0, 0)
1283- let hi = hh._1
1284- let eM = hh._2
1285- let eY = if ((fg != eM))
1286- then hi
1287- else aL("nothing to refresh")
1288- $Tuple2(eY, toString(eM))
1229+ let fb = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, ap), "0")), aO("invalid dLp"))
1230+ let hc = eQ(0, 0, 0)
1231+ let hd = hc._1
1232+ let eH = hc._2
1233+ let eT = if ((fb != eH))
1234+ then hd
1235+ else aM("nothing to refresh")
1236+ $Tuple2(eT, toString(eH))
12891237 }
12901238 else throw("Strict value is not equal to itself.")
12911239 }
12921240
12931241
12941242
1295-@Callable(eb)
1296-func getOneTknV2READONLY (fO,hj) = {
1243+@Callable(ec)
1244+func getOneTknV2READONLY (fJ,he) = {
1245+ let cD = toBase58String(value(bl))
1246+ let cE = toBase58String(value(bm))
12971247 let cC = toBase58String(value(bk))
1298- let cD = toBase58String(value(bl))
1299- let cB = toBase58String(value(bj))
1300- let dL = [toBigInt(bL(cC)), toBigInt(bL(cD))]
1301- let eL = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cB)), "invalid lp asset").quantity)
1302- let bZ = dK(dL)
1303- let bY = (bZ - fraction(toBigInt(hj), bZ, eL))
1304- let hk = if ((fO == cC))
1248+ let dM = [toBigInt(bM(cD)), toBigInt(bM(cE))]
1249+ let eG = toBigInt(valueOrErrorMessage(assetInfo(fromBase58String(cC)), "invalid lp asset").quantity)
1250+ let ca = dL(dM)
1251+ let bZ = (ca - fraction(toBigInt(he), ca, eG))
1252+ let hf = if ((fJ == cD))
13051253 then 0
1306- else if ((fO == cD))
1254+ else if ((fJ == cE))
13071255 then 1
13081256 else throw("invalid out asset id")
1309- let hl = ey(dL, hk, bY)
1310- let hm = (dL[hk] - hl)
1311- let hn = max([0, toInt((hm - f))])
1312- let ho = ct(hn, aR)
1313- let fX = ho._1
1314- let cv = ho._2
1315- $Tuple2(nil, $Tuple2(fX, cv))
1257+ let hg = eq(dM, hf, bZ)
1258+ let hh = (dM[hf] - hg)
1259+ let hi = max([0, toInt((hh - f))])
1260+ let hj = cu(hi, aS)
1261+ let fS = hj._1
1262+ let cw = hj._2
1263+ $Tuple2(nil, $Tuple2(fS, cw))
13161264 }
13171265
13181266
13191267
1320-@Callable(eb)
1321-func getOneTknV2WithBonusREADONLY (fO,hj) = {
1268+@Callable(ec)
1269+func getOneTknV2WithBonusREADONLY (fJ,he) = {
1270+ let cD = toBase58String(value(bl))
1271+ let cE = toBase58String(value(bm))
13221272 let cC = toBase58String(value(bk))
1323- let cD = toBase58String(value(bl))
1324- let cB = toBase58String(value(bj))
1325- let cI = bL(cC)
1326- let cK = bL(cD)
1327- let hp = {
1328- let aQ = invoke(this, "getOneTknV2READONLY", [fO, hj], nil)
1329- if ($isInstanceOf(aQ, "(Int, Int)"))
1330- then aQ
1331- else throw(($getType(aQ) + " couldn't be cast to (Int, Int)"))
1273+ let cJ = bM(cD)
1274+ let cL = bM(cE)
1275+ let hk = {
1276+ let aR = invoke(this, "getOneTknV2READONLY", [fJ, he], nil)
1277+ if ($isInstanceOf(aR, "(Int, Int)"))
1278+ then aR
1279+ else throw(($getType(aR) + " couldn't be cast to (Int, Int)"))
13321280 }
1333- let fX = hp._1
1334- let cv = hp._2
1335- let dq = cw("", cB, hj, this)
1336- let cS = dq._1
1337- let cT = dq._2
1338- let hq = (cS + cT)
1339- let fM = if ((hq == 0))
1340- then if ((fX == 0))
1281+ let fS = hk._1
1282+ let cw = hk._2
1283+ let dr = cx("", cC, he, this)
1284+ let cT = dr._1
1285+ let cU = dr._2
1286+ let hl = (cT + cU)
1287+ let fH = if ((hl == 0))
1288+ then if ((fS == 0))
13411289 then 0
13421290 else throw("bonus calculation error")
1343- else fraction((fX - hq), a, hq)
1344- $Tuple2(nil, $Tuple3(fX, cv, fM))
1291+ else fraction((fS - hl), a, hl)
1292+ $Tuple2(nil, $Tuple3(fS, cw, fH))
13451293 }
13461294
13471295
13481296
1349-@Callable(eb)
1350-func getNoLess (hr,hs) = {
1351- let dq = fl(eb)
1352- let cS = dq._1
1353- let cT = dq._2
1354- let de = dq._3
1355- let cy = dq._4
1356- let cU = dq._5
1357- if ((hr > cS))
1358- then throw(((("Failed: " + toString(cS)) + " < ") + toString(hr)))
1359- else if ((hs > cT))
1360- then throw(((("Failed: " + toString(cT)) + " < ") + toString(hs)))
1297+@Callable(ec)
1298+func getNoLess (hm,hn) = {
1299+ let dr = fg(ec)
1300+ let cT = dr._1
1301+ let cU = dr._2
1302+ let df = dr._3
1303+ let cz = dr._4
1304+ let cV = dr._5
1305+ if ((hm > cT))
1306+ then throw(((("Failed: " + toString(cT)) + " < ") + toString(hm)))
1307+ else if ((hn > cU))
1308+ then throw(((("Failed: " + toString(cU)) + " < ") + toString(hn)))
13611309 else {
1362- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1363- if ((eU == eU))
1310+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1311+ if ((eP == eP))
13641312 then {
1365- let ht = invoke(aO, "burn", [de], [AttachedPayment(cy, de)])
1366- if ((ht == ht))
1313+ let ho = invoke(aP, "burn", [df], [AttachedPayment(cz, df)])
1314+ if ((ho == ho))
13671315 then {
1368- let hu = eV(-(cS), -(cT), 0)
1369- let gl = hu._1
1370- let eM = hu._2
1371- let gm = eZ(eU, eM)
1372- if ((gm == gm))
1373- then (cU ++ gl)
1316+ let hp = eQ(-(cT), -(cU), 0)
1317+ let gg = hp._1
1318+ let eH = hp._2
1319+ let gh = eU(eP, eH)
1320+ if ((gh == gh))
1321+ then (cV ++ gg)
13741322 else throw("Strict value is not equal to itself.")
13751323 }
13761324 else throw("Strict value is not equal to itself.")
13771325 }
13781326 else throw("Strict value is not equal to itself.")
13791327 }
13801328 }
13811329
13821330
13831331
1384-@Callable(eb)
1385-func unstakeAndGet (cu) = {
1386- let hv = if ((size(eb.payments) != 0))
1332+@Callable(ec)
1333+func unstakeAndGet (cv) = {
1334+ let hq = if ((size(ec.payments) != 0))
13871335 then throw("No pmnts expd")
13881336 else true
1389- if ((hv == hv))
1337+ if ((hq == hq))
13901338 then {
1391- let hw = bq()
1392- let gG = bj
1393- let hx = valueOrErrorMessage(addressFromString(hw[C]), "Wr st addr")
1394- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1395- if ((eU == eU))
1339+ let hr = br()
1340+ let gB = bk
1341+ let hs = valueOrErrorMessage(addressFromString(hr[C]), "Wr st addr")
1342+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1343+ if ((eP == eP))
13961344 then {
1397- let hy = invoke(hx, "unstake", [toBase58String(gG), cu], nil)
1398- if ((hy == hy))
1345+ let ht = invoke(hs, "unstake", [toBase58String(gB), cv], nil)
1346+ if ((ht == ht))
13991347 then {
1400- let dq = cw(toBase58String(eb.transactionId), toBase58String(gG), cu, eb.caller)
1401- let cS = dq._1
1402- let cT = dq._2
1403- let cG = parseIntValue(dq._9)
1404- let cU = dq._10
1405- let hz = if (if (aT())
1348+ let dr = cx(toBase58String(ec.transactionId), toBase58String(gB), cv, ec.caller)
1349+ let cT = dr._1
1350+ let cU = dr._2
1351+ let cH = parseIntValue(dr._9)
1352+ let cV = dr._10
1353+ let hu = if (if (aU())
14061354 then true
1407- else (cG == s))
1408- then throw(("Blocked: " + toString(cG)))
1355+ else (cH == s))
1356+ then throw(("Blocked: " + toString(cH)))
14091357 else true
1410- if ((hz == hz))
1358+ if ((hu == hu))
14111359 then {
1412- let hA = invoke(aO, "burn", [cu], [AttachedPayment(gG, cu)])
1413- if ((hA == hA))
1360+ let hv = invoke(aP, "burn", [cv], [AttachedPayment(gB, cv)])
1361+ if ((hv == hv))
14141362 then {
1415- let hB = eV(-(cS), -(cT), 0)
1416- let gl = hB._1
1417- let eM = hB._2
1418- let gm = eZ(eU, eM)
1419- if ((gm == gm))
1420- then (cU ++ gl)
1363+ let hw = eQ(-(cT), -(cU), 0)
1364+ let gg = hw._1
1365+ let eH = hw._2
1366+ let gh = eU(eP, eH)
1367+ if ((gh == gh))
1368+ then (cV ++ gg)
14211369 else throw("Strict value is not equal to itself.")
14221370 }
14231371 else throw("Strict value is not equal to itself.")
14241372 }
14251373 else throw("Strict value is not equal to itself.")
14261374 }
14271375 else throw("Strict value is not equal to itself.")
14281376 }
14291377 else throw("Strict value is not equal to itself.")
14301378 }
14311379 else throw("Strict value is not equal to itself.")
14321380 }
14331381
14341382
14351383
1436-@Callable(eb)
1437-func unstakeAndGetNoLess (hC,hD,hs) = {
1438- let hd = if (aT())
1384+@Callable(ec)
1385+func unstakeAndGetNoLess (hx,hy,hn) = {
1386+ let gY = if (aU())
14391387 then true
1440- else (bi == s)
1441- let gS = [if (!(hd))
1388+ else (bj == s)
1389+ let gN = [if (!(gY))
14421390 then true
1443- else throw("get operation is blocked by admin"), if ((size(eb.payments) == 0))
1391+ else throw("get operation is blocked by admin"), if ((size(ec.payments) == 0))
14441392 then true
14451393 else throw("no payments are expected")]
1446- if ((gS == gS))
1394+ if ((gN == gN))
14471395 then {
1448- let eU = eN(toBigInt(0), toBigInt(0), toBigInt(0))
1449- if ((eU == eU))
1396+ let eP = eI(toBigInt(0), toBigInt(0), toBigInt(0))
1397+ if ((eP == eP))
14501398 then {
1451- let hy = invoke(bs, "unstake", [toBase58String(bj), hC], nil)
1452- if ((hy == hy))
1399+ let ht = invoke(bt, "unstake", [toBase58String(bk), hx], nil)
1400+ if ((ht == ht))
14531401 then {
1454- let hE = cw(toBase58String(eb.transactionId), toBase58String(bj), hC, eb.caller)
1455- let cS = hE._1
1456- let cT = hE._2
1457- let cU = hE._10
1458- let hF = [if ((cS >= hD))
1402+ let hz = cx(toBase58String(ec.transactionId), toBase58String(bk), hx, ec.caller)
1403+ let cT = hz._1
1404+ let cU = hz._2
1405+ let cV = hz._10
1406+ let hA = [if ((cT >= hy))
14591407 then true
1460- else throw(makeString(["amount asset amount to receive is less than ", toString(hD)], "")), if ((cT >= hs))
1408+ else throw(makeString(["amount asset amount to receive is less than ", toString(hy)], "")), if ((cU >= hn))
14611409 then true
1462- else throw(makeString(["price asset amount to receive is less than ", toString(hs)], ""))]
1463- if ((hF == hF))
1410+ else throw(makeString(["price asset amount to receive is less than ", toString(hn)], ""))]
1411+ if ((hA == hA))
14641412 then {
1465- let ht = invoke(aO, "burn", [hC], [AttachedPayment(bj, hC)])
1466- if ((ht == ht))
1413+ let ho = invoke(aP, "burn", [hx], [AttachedPayment(bk, hx)])
1414+ if ((ho == ho))
14671415 then {
1468- let hG = eV(-(cS), -(cT), 0)
1469- let gl = hG._1
1470- let eM = hG._2
1471- let gm = eZ(eU, eM)
1472- if ((gm == gm))
1473- then (cU ++ gl)
1416+ let hB = eQ(-(cT), -(cU), 0)
1417+ let gg = hB._1
1418+ let eH = hB._2
1419+ let gh = eU(eP, eH)
1420+ if ((gh == gh))
1421+ then (cV ++ gg)
14741422 else throw("Strict value is not equal to itself.")
14751423 }
14761424 else throw("Strict value is not equal to itself.")
14771425 }
14781426 else throw("Strict value is not equal to itself.")
14791427 }
14801428 else throw("Strict value is not equal to itself.")
14811429 }
14821430 else throw("Strict value is not equal to itself.")
14831431 }
14841432 else throw("Strict value is not equal to itself.")
14851433 }
14861434
14871435
14881436
1489-@Callable(eb)
1490-func unstakeAndGetOneTknV2 (hC,fO,fP) = {
1491- let gQ = {
1492- let aQ = invoke(aO, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1493- if ($isInstanceOf(aQ, "Boolean"))
1494- then aQ
1495- else throw(($getType(aQ) + " couldn't be cast to Boolean"))
1437+@Callable(ec)
1438+func unstakeAndGetOneTknV2 (hx,fJ,fK) = {
1439+ let gL = {
1440+ let aR = invoke(aP, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1441+ if ($isInstanceOf(aR, "Boolean"))
1442+ then aR
1443+ else throw(($getType(aR) + " couldn't be cast to Boolean"))
14961444 }
1497- let hd = if (if (aT())
1445+ let gY = if (if (aU())
14981446 then true
1499- else (bi == s))
1447+ else (bj == s))
15001448 then true
1501- else gQ
1502- let gS = [if (if (!(hd))
1449+ else gL
1450+ let gN = [if (if (!(gY))
15031451 then true
1504- else gr(eb))
1452+ else gm(ec))
15051453 then true
1506- else aL("get operation is blocked by admin"), if ((size(eb.payments) == 0))
1454+ else aM("get operation is blocked by admin"), if ((size(ec.payments) == 0))
15071455 then true
1508- else aL("no payments are expected")]
1509- if ((gS == gS))
1456+ else aM("no payments are expected")]
1457+ if ((gN == gN))
15101458 then {
1511- let hw = bq()
1512- let gG = bj
1513- let hx = valueOrErrorMessage(addressFromString(hw[C]), "Wr st addr")
1514- let hy = invoke(hx, "unstake", [toBase58String(gG), hC], nil)
1515- if ((hy == hy))
1459+ let hr = br()
1460+ let gB = bk
1461+ let hs = valueOrErrorMessage(addressFromString(hr[C]), "Wr st addr")
1462+ let ht = invoke(hs, "unstake", [toBase58String(gB), hx], nil)
1463+ if ((ht == ht))
15161464 then {
1517- let hH = fN(fO, fP, [AttachedPayment(gG, hC)], eb.caller, eb.originCaller, eb.transactionId)
1518- let cU = hH._1
1519- let fY = hH._2
1520- $Tuple2(cU, fY)
1465+ let hC = fI(fJ, fK, [AttachedPayment(gB, hx)], ec.caller, ec.originCaller, ec.transactionId)
1466+ let cV = hC._1
1467+ let fT = hC._2
1468+ $Tuple2(cV, fT)
15211469 }
15221470 else throw("Strict value is not equal to itself.")
15231471 }
15241472 else throw("Strict value is not equal to itself.")
15251473 }
15261474
15271475
15281476
1529-@Callable(eb)
1530-func putOneTknV2WithBonusREADONLY (hI,hJ) = {
1531- let hK = fr(hI, hJ, "", "", true)
1532- let fH = hK._1
1533- let cU = hK._2
1534- let cv = hK._3
1535- let fM = hK._4
1536- $Tuple2(nil, $Tuple3(fH, cv, fM))
1477+@Callable(ec)
1478+func putOneTknV2WithBonusREADONLY (hD,hE) = {
1479+ let hF = fm(hD, hE, "", "", true)
1480+ let fC = hF._1
1481+ let cV = hF._2
1482+ let cw = hF._3
1483+ let fH = hF._4
1484+ $Tuple2(nil, $Tuple3(fC, cw, fH))
15371485 }
15381486
15391487
15401488
1541-@Callable(eb)
1542-func putOneTknV2WithoutTakeFeeREADONLY (hI,hJ) = {
1543- let hL = fr(hI, hJ, "", "", false)
1544- let fH = hL._1
1545- let cU = hL._2
1546- let cv = hL._3
1547- let fM = hL._4
1548- $Tuple2(nil, $Tuple3(fH, cv, fM))
1489+@Callable(ec)
1490+func putOneTknV2WithoutTakeFeeREADONLY (hD,hE) = {
1491+ let hG = fm(hD, hE, "", "", false)
1492+ let fC = hG._1
1493+ let cV = hG._2
1494+ let cw = hG._3
1495+ let fH = hG._4
1496+ $Tuple2(nil, $Tuple3(fC, cw, fH))
15491497 }
15501498
15511499
15521500
1553-@Callable(eb)
1554-func activate (hM,hN) = if ((toString(eb.caller) != toString(aO)))
1501+@Callable(ec)
1502+func activate (hH,hI) = if ((toString(ec.caller) != toString(aP)))
15551503 then throw("denied")
1556- else $Tuple2([StringEntry(ai(), hM), StringEntry(aj(), hN)], "success")
1504+ else $Tuple2([StringEntry(aj(), hH), StringEntry(ak(), hI)], "success")
15571505
15581506
15591507
1560-@Callable(eb)
1561-func setS (hO,hz) = if ((toString(eb.caller) != aH(this, al())))
1562- then gq
1563- else [StringEntry(hO, hz)]
1508+@Callable(ec)
1509+func setS (hJ,hu) = if ((toString(ec.caller) != aI(this, am())))
1510+ then gl
1511+ else [StringEntry(hJ, hu)]
15641512
15651513
15661514
1567-@Callable(eb)
1568-func setI (hO,hz) = if ((toString(eb.caller) != aH(this, al())))
1569- then gq
1570- else [IntegerEntry(hO, hz)]
1515+@Callable(ec)
1516+func setI (hJ,hu) = if ((toString(ec.caller) != aI(this, am())))
1517+ then gl
1518+ else [IntegerEntry(hJ, hu)]
15711519
15721520
15731521
1574-@Callable(eb)
1575-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aW())
1522+@Callable(ec)
1523+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aX())
15761524
15771525
15781526
1579-@Callable(eb)
1580-func getAccBalanceWrapperREADONLY (bM) = $Tuple2(nil, bL(bM))
1527+@Callable(ec)
1528+func getAccBalanceWrapperREADONLY (bN) = $Tuple2(nil, bM(bN))
15811529
15821530
15831531
1584-@Callable(eb)
1585-func calcPricesWrapperREADONLY (cf,cg,ck) = {
1586- let hP = cj(cf, cg, ck)
1587- $Tuple2(nil, [toString(hP[0]), toString(hP[1]), toString(hP[2])])
1532+@Callable(ec)
1533+func calcPricesWrapperREADONLY (cg,ch,cl) = {
1534+ let hK = ck(cg, ch, cl)
1535+ $Tuple2(nil, [toString(hK[0]), toString(hK[1]), toString(hK[2])])
15881536 }
15891537
15901538
15911539
1592-@Callable(eb)
1593-func fromX18WrapperREADONLY (L,hQ) = $Tuple2(nil, K(parseBigIntValue(L), hQ))
1540+@Callable(ec)
1541+func fromX18WrapperREADONLY (M,hL) = $Tuple2(nil, L(parseBigIntValue(M), hL))
15941542
15951543
15961544
1597-@Callable(eb)
1545+@Callable(ec)
15981546 func toX18WrapperREADONLY (I,J) = $Tuple2(nil, toString(H(I, J)))
15991547
16001548
16011549
1602-@Callable(eb)
1603-func calcPriceBigIntWrapperREADONLY (bO,bP) = $Tuple2(nil, toString(bN(parseBigIntValue(bO), parseBigIntValue(bP))))
1550+@Callable(ec)
1551+func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
16041552
16051553
16061554
1607-@Callable(eb)
1608-func estimatePutOperationWrapperREADONLY (cx,bU,cW,cX,cY,cZ,hR,da,db) = $Tuple2(nil, cV(cx, bU, cW, cX, cY, cZ, hR, da, db, true, false, 0, ""))
1555+@Callable(ec)
1556+func estimatePutOperationWrapperREADONLY (cy,bV,cX,cY,cZ,da,hM,db,dc) = $Tuple2(nil, cW(cy, bV, cX, cY, cZ, da, hM, db, dc, true, false, 0, ""))
16091557
16101558
16111559
1612-@Callable(eb)
1613-func estimateGetOperationWrapperREADONLY (cx,hS,cz,hR) = {
1614- let dq = cw(cx, hS, cz, addressFromStringValue(hR))
1615- $Tuple2(nil, $Tuple10(dq._1, dq._2, dq._3, dq._4, dq._5, dq._6, dq._7, toString(dq._8), dq._9, dq._10))
1560+@Callable(ec)
1561+func estimateGetOperationWrapperREADONLY (cy,hN,cA,hM) = {
1562+ let dr = cx(cy, hN, cA, addressFromStringValue(hM))
1563+ $Tuple2(nil, $Tuple10(dr._1, dr._2, dr._3, dr._4, dr._5, dr._6, dr._7, toString(dr._8), dr._9, dr._10))
16161564 }
16171565
16181566
1619-@Verifier(hT)
1620-func hU () = {
1621- let hV = {
1622- let go = gn()
1623- if ($isInstanceOf(go, "ByteVector"))
1567+@Verifier(hO)
1568+func hP () = {
1569+ let hQ = {
1570+ let gj = gi()
1571+ if ($isInstanceOf(gj, "ByteVector"))
16241572 then {
1625- let gs = go
1626- gs
1573+ let gn = gj
1574+ gn
16271575 }
1628- else if ($isInstanceOf(go, "Unit"))
1629- then hT.senderPublicKey
1576+ else if ($isInstanceOf(gj, "Unit"))
1577+ then hO.senderPublicKey
16301578 else throw("Match error")
16311579 }
1632- let go = hT
1633- if ($isInstanceOf(go, "Order"))
1580+ let gj = hO
1581+ if ($isInstanceOf(gj, "Order"))
16341582 then {
1635- let fc = go
1636- let hW = aU()
1637- let hX = fb(fc)
1638- let hY = sigVerify(fc.bodyBytes, fc.proofs[0], fc.senderPublicKey)
1639- let hZ = sigVerify(fc.bodyBytes, fc.proofs[1], hW)
1640- if (if (if (hX)
1641- then hY
1583+ let eX = gj
1584+ let hR = aV()
1585+ let hS = eW(eX)
1586+ let hT = sigVerify(eX.bodyBytes, eX.proofs[0], eX.senderPublicKey)
1587+ let hU = sigVerify(eX.bodyBytes, eX.proofs[1], hR)
1588+ if (if (if (hS)
1589+ then hT
16421590 else false)
1643- then hZ
1591+ then hU
16441592 else false)
16451593 then true
1646- else aD(hX, hY, hZ)
1594+ else aE(hS, hT, hU)
16471595 }
1648- else if ($isInstanceOf(go, "SetScriptTransaction"))
1596+ else if ($isInstanceOf(gj, "SetScriptTransaction"))
16491597 then {
1650- let dO = go
1651- if (sigVerify(hT.bodyBytes, hT.proofs[0], hV))
1598+ let dP = gj
1599+ if (sigVerify(hO.bodyBytes, hO.proofs[0], hQ))
16521600 then true
16531601 else {
1654- let ia = blake2b256(value(dO.script))
1655- let ib = fromBase64String(value(getString(aO, aB())))
1656- let ic = scriptHash(this)
1657- if ((ib == ia))
1658- then (ic != ia)
1602+ let hV = blake2b256(value(dP.script))
1603+ let hW = fromBase64String(value(getString(aP, aC())))
1604+ let hX = scriptHash(this)
1605+ if ((hW == hV))
1606+ then (hX != hV)
16591607 else false
16601608 }
16611609 }
1662- else sigVerify(hT.bodyBytes, hT.proofs[0], hV)
1610+ else sigVerify(hO.bodyBytes, hO.proofs[0], hQ)
16631611 }
16641612

github/deemru/w8io/169f3d6 
598.60 ms