tx · CScqdkDmcijfjEP7KShS1ydSAwwbpXbG6JDSb6Qq8ck

3N1dMZiRHyPfV3HE1UP73tMqZyrajT8s7Gd:  -0.03500000 Waves

2022.12.07 17:38 [2350043] smart account 3N1dMZiRHyPfV3HE1UP73tMqZyrajT8s7Gd > SELF 0.00000000 Waves

{ "type": 13, "id": "CScqdkDmcijfjEP7KShS1ydSAwwbpXbG6JDSb6Qq8ck", "fee": 3500000, "feeAssetId": null, "timestamp": 1670423924862, "version": 1, "sender": "3N1dMZiRHyPfV3HE1UP73tMqZyrajT8s7Gd", "senderPublicKey": "5nXNn4nUrku3ormf7LVLKqY9doTY1LZWZ3uDiDHre72C", "proofs": [ "PwiM32k9nH44swoUigsnTpBXLoP1vaPGcTUyfCGMvfsABPEfmcG2UDC18ezyoRt1aDGcLKyQx9WdqjS87JTdF67" ], "script": "base64:BgL1LAgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0Igd0b1NjYWxlIgNhbXQiCHJlc1NjYWxlIghjdXJTY2FsZSIDYWJzIglhYnNCaWdJbnQiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIQa2V5RmFjdG9yeUNvbmZpZyINa2V5TWF0Y2hlclB1YiIpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMiE3Bvb2xDb250cmFjdEFkZHJlc3MiDWtleVBvb2xDb25maWciCWlBbXRBc3NldCILaVByaWNlQXNzZXQiH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQiDGJhc2VBc3NldFN0ciITa2V5QWxsUG9vbHNTaHV0ZG93biINa2V5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhZrZXlGZWVDb2xsZWN0b3JBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiC3NlbmRlclZhbGlkIgxtYXRjaGVyVmFsaWQiD2dldFN0cmluZ09yRmFpbCIHYWRkcmVzcyIDa2V5IgxnZXRJbnRPckZhaWwiCHRocm93RXJyIgNtc2ciBmZtdEVyciIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDc5MTU4MDgxIg5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiBXJvdW5kIhBwcml2YXRlQ2FsY1ByaWNlIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiDmFtdEFzc2V0QW10WDE4IhBwcmljZUFzc2V0QW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIgthbXRBc3NldERjbSINcHJpY2VBc3NldERjbSIIcHJpY2VYMTgiCGxwQW10WDE4IhNscFByaWNlSW5BbUFzc2V0WDE4IhNscFByaWNlSW5QckFzc2V0WDE4Ig9jYWxjdWxhdGVQcmljZXMiBnByaWNlcyIUZXN0aW1hdGVHZXRPcGVyYXRpb24iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiCWxwQXNzZXRJZCIJYW1Bc3NldElkIglwckFzc2V0SWQiCnBvb2xTdGF0dXMiCmxwRW1pc3Npb24iCWFtQmFsYW5jZSIMYW1CYWxhbmNlWDE4IglwckJhbGFuY2UiDHByQmFsYW5jZVgxOCILY3VyUHJpY2VYMTgiCGN1clByaWNlIgtwbXRMcEFtdFgxOCINbHBFbWlzc2lvblgxOCILb3V0QW1BbXRYMTgiC291dFByQW10WDE4IghvdXRBbUFtdCIIb3V0UHJBbXQiBXN0YXRlIhRlc3RpbWF0ZVB1dE9wZXJhdGlvbiIRc2xpcHBhZ2VUb2xlcmFuY2UiDGluQW1Bc3NldEFtdCILaW5BbUFzc2V0SWQiDGluUHJBc3NldEFtdCILaW5QckFzc2V0SWQiCmlzRXZhbHVhdGUiBmVtaXRMcCIMYW1Bc3NldElkU3RyIgxwckFzc2V0SWRTdHIiC2lBbXRBc3NldElkIg1pUHJpY2VBc3NldElkIg5pbkFtQXNzZXRJZFN0ciIOaW5QckFzc2V0SWRTdHIiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiA3JlcyILc2xpcHBhZ2VYMTgiFHNsaXBwYWdlVG9sZXJhbmNlWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIgtjb21tb25TdGF0ZSIHY2FsY0tMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIgp1cGRhdGVkS0xwIg5jYWxjQ3VycmVudEtMcCIQYW1vdW50QXNzZXREZWx0YSIPcHJpY2VBc3NldERlbHRhIhRscEFzc2V0RW1pc3Npb25EZWx0YSISYW1vdW50QXNzZXRCYWxhbmNlIhFwcmljZUFzc2V0QmFsYW5jZSIPbHBBc3NldEVtaXNzaW9uIgpjdXJyZW50S0xwIhJyZWZyZXNoS0xwSW50ZXJuYWwiF2Ftb3VudEFzc2V0QmFsYW5jZURlbHRhIhZwcmljZUFzc2V0QmFsYW5jZURlbHRhIgdhY3Rpb25zIhJ2YWxpZGF0ZVVwZGF0ZWRLTHAiBm9sZEtMcCIbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkIgVvcmRlciIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIwNjE1MjA4MjciA2tMcCINJHQwMjEyOTgyMTM5OCINdW51c2VkQWN0aW9ucyIGa0xwTmV3Igxpc09yZGVyVmFsaWQiCWNvbW1vbkdldCIBaSIDcG10IgZwbXRBbXQiCWNvbW1vblB1dCIKYW1Bc3NldFBtdCIKcHJBc3NldFBtdCIGZXN0UHV0IgRlbWl0IgZhbW91bnQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiByRtYXRjaDAiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDI0MDgzMjQzNzYiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMjQzODAyNDUyOSIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDI0NjUxMjQ3MTAiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI2MTg3MjYzNTQiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAyNzk1NjI4MDA2Igt0b3RhbEFtb3VudCINJHQwMjgwMTAyODIzNiILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCIJaXNNYW5hZ2VyIgJwayILbXVzdE1hbmFnZXIiAnBkIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiINJHQwMzI3NjQzMzIyNiIRcmVmcmVzaEtMcEFjdGlvbnMiEWlzVXBkYXRlZEtMcFZhbGlkIgttYXhTbGlwcGFnZSINJHQwMzM3ODgzMzg1MyIMbWluT3V0QW1vdW50IglhdXRvU3Rha2UiIGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIgFAIg1pc1B1dERpc2FibGVkIgdwYXltZW50Ig0kdDAzNTAzODM1MTkwIgVib251cyITZW1pdEFtb3VudEVzdGltYXRlZCIKZW1pdEFtb3VudCIIc3Rha2VJbnYiB3NlbmRGZWUiDSR0MDM1Nzc2MzU5NzMiDSR0MDM1OTc2MzYwODQiDSR0MDM2MzkwMzY1NDciDW91dEFzc2V0SWRTdHIiDWlzR2V0RGlzYWJsZWQiDSR0MDM3NDQxMzc1OTQiD2Ftb3VudEVzdGltYXRlZCIHYnVybkludiINYXNzZXRUcmFuc2ZlciINJHQwMzgwOTQzODM0MSIQZmVlQW1vdW50Rm9yQ2FsYyINJHQwMzgzNDQzODQ1MiINJHQwMzg3MDkzODg2NSINdW5zdGFrZUFtb3VudCIKdW5zdGFrZUludiINJHQwMzk3NjczOTkxOCINJHQwNDA0MTM0MDY2MCINJHQwNDA2NjM0MDc3MSIJb3V0QW10QW10IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNDE3MTk0MTgwMSISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNDI3NTI0MjgzMyINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA0Mzk1NjQ0MDM3IhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNDUzMjk0NTQxMCILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDQ2NTk3NDY2NjEiEGtMcFVwZGF0ZUFjdGlvbnMiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCINcG9vbExQQmFsYW5jZSISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2huAAFhAAgAAWIAgMLXLwABYwkAtgIBAIDC1y8AAWQJALYCAQCAgJC7utat8A0AAWUJALYCAQAAAAFmCQC2AgEAAAABZwkAtgIBAAEAAWgJALYCAQACAAFpAgVXQVZFUwABagICX18AAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAAKAAF5AAEAAXoAAgABQQADAAFCAAEAAUMABwEBRAIBRQFGCQC8AgMJALYCAQUBRQUBZAkAtgIBBQFGAQFHAgFIAUkJAKADAQkAvAIDBQFICQC2AgEFAUkFAWQBAUoDAUsBTAFNCQBrAwUBSwUBTAUBTQEBTgEBSAMJAGYCAAAFAUgJAQEtAQUBSAUBSAEBTwEBSAMJAL8CAgUBZQUBSAkAvgIBBQFIBQFIAQFQAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBUQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFSAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFTAAIRJXMlc19fcHJpY2VfX2xhc3QBAVQCAVUBVgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVUJAMwIAgkApAMBBQFWBQNuaWwFAWoBAVcCAVgBWQkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVgCAl9fBQFZAQFaAgFYAVkJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFYAgJfXwUBWQECYWEAAg8lc19fYW1vdW50QXNzZXQBAmFiAAIOJXNfX3ByaWNlQXNzZXQAAmFjAgclc19fZmVlAAJhZAkAawMACgUBYgCQTgACYWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWMFAmFkAAJhZgkAuQkCCQDMCAICAiVzCQDMCAICA2tMcAUDbmlsBQFqAAJhZwkAuQkCCQDMCAICAiVzCQDMCAICEmtMcFJlZnJlc2hlZEhlaWdodAUDbmlsBQFqAAJhaAkAuQkCCQDMCAICAiVzCQDMCAICD3JlZnJlc2hLTHBEZWxheQUDbmlsBQFqAAJhaQAeAAJhagkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhaAUCYWkBAmFrAAIRJXNfX2ZhY3RvcnlDb25maWcBAmFsAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQJhbQECYW4JAKwCAgkArAICAgglcyVzJXNfXwUCYW4CIF9fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJMcEFzc2V0AQJhbwICYXACYXEJAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFwAgJfXwUCYXECCF9fY29uZmlnAQJhcgECYXMJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUCYXMBAmF0AAIMJXNfX3NodXRkb3duAQJhdQECYXYJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQJhdgECYXcAAhclc19fYWxsb3dlZExwU2NyaXB0SGFzaAACYXgCFyVzX19mZWVDb2xsZWN0b3JBZGRyZXNzAQJheQMCYXoCYUECYUIJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIkb3JkZXIgdmFsaWRhdGlvbiBmYWlsZWQ6IG9yZGVyVmFsaWQ9CQClAwEFAmF6Ag0gc2VuZGVyVmFsaWQ9CQClAwEFAmFBAg4gbWF0Y2hlclZhbGlkPQkApQMBBQJhQgECYUMCAmFEAmFFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYUQFAmFFCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFECQDMCAICAS4JAMwIAgUCYUUJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUYCAmFEAmFFCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUCYUQFAmFFCQC5CQIJAMwIAgIKbWFuZGF0b3J5IAkAzAgCCQClCAEFAmFECQDMCAICAS4JAMwIAgUCYUUJAMwIAgIPIGlzIG5vdCBkZWZpbmVkBQNuaWwCAAECYUcBAmFICQACAQkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFIBQNuaWwCASABAmFJAQJhSAkAuQkCCQDMCAICCGxwLnJpZGU6CQDMCAIFAmFIBQNuaWwCASAAAmFKCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUMCBQR0aGlzCQEBUAAAAmFLCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYUMCBQJhSgUCYXgBAmFMAAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQJhSgkBAmF0AAcBAmFNAAkA2QQBCQECYUMCBQJhSgkBAmFsAAECYU4ABAJhTwkBAmFDAgUEdGhpcwkBAmFhAAQCYVAJAQJhQwIFBHRoaXMJAQJhYgAEAmFxCQECYUYCBQJhSgkBAmFyAQUCYVAEAmFwCQECYUYCBQJhSgkBAmFyAQUCYU8JALUJAgkBAmFDAgUCYUoJAQJhbwIJAKQDAQUCYXAJAKQDAQUCYXEFAWoBAmFRAQJhUgMJAAACBQJhUgUBaQUEdW5pdAkA2QQBBQJhUgECYVMBAmFSAwkAAAIFAmFSBQR1bml0BQFpCQDYBAEJAQV2YWx1ZQEFAmFSAQJhVAECYVUJAJkKBwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhVQUBbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFVBQFwCQDZBAEJAJEDAgUCYVUFAXEJAQJhUQEJAJEDAgUCYVUFAXIJAQJhUQEJAJEDAgUCYVUFAXMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVQUBdAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFVBQF1AAJhVgkBAmFUAQkBAmFOAAACYVcFAmFWAAJhWAgFAmFXAl8xAAJhWQgFAmFXAl8yAAJhWggFAmFXAl8zAAJiYQgFAmFXAl80AAJiYggFAmFXAl81AAJiYwgFAmFXAl82AAJiZAgFAmFXAl83AQJiZQAJALUJAgkBAmFDAgUCYUoJAQJhawAFAWoAAmJmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYmUABQFCAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAAJiZwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmJlAAUBQwIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwECYmgKAmJpAmJqAmJrAmJsAmJtAmJuAmJvAmJwAmJxAmJyCQC5CQIJAMwIAgIUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJiaQkAzAgCCQCkAwEFAmJqCQDMCAIJAKQDAQUCYmsJAMwIAgkApAMBBQJibAkAzAgCCQCkAwEFAmJtCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJibwkAzAgCCQCkAwEFAmJwCQDMCAIJAKQDAQUCYnEJAMwIAgkApAMBBQJicgUDbmlsBQFqAQJicwYCYnQCYnUCYnYCYmwCYm8CYnAJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJidAkAzAgCCQCkAwEFAmJ1CQDMCAIJAKQDAQUCYnYJAMwIAgkApAMBBQJibAkAzAgCCQCkAwEFAmJvCQDMCAIJAKQDAQUCYnAFA25pbAUBagECYncBAmJ4AwkAAAIFAmJ4AgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJieAECYnkCAmJ6AmJBCQC8AgMFAmJ6BQFkBQJiQQECYkIDAmJ6AmJBAmJDCQC9AgQFAmJ6BQFkBQJiQQUCYkMBAmJEBAJiRQJiRgJiRwJiSAQCYkkJAQFEAgUCYkcFAmJFBAJiSgkBAUQCBQJiSAUCYkYJAQJieQIFAmJKBQJiSQECYksDAmJHAmJIAmJMBAJiTQkBAmFOAAQCYk4JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdAQCYk8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdQQCYlAJAQJiRAQFAmJOBQJiTwUCYkcFAmJIBAJiQQkBAUQCBQJiRwUCYk4EAmJ6CQEBRAIFAmJIBQJiTwQCYlEJAQFEAgUCYkwFAWIEAmJSCQECYnkCBQJiQQUCYlEEAmJTCQECYnkCBQJiegUCYlEJAMwIAgUCYlAJAMwIAgUCYlIJAMwIAgUCYlMFA25pbAECYlQDAmJHAmJIAmJMBAJiVQkBAmJLAwUCYkcFAmJIBQJiTAkAzAgCCQEBRwIJAJEDAgUCYlUAAAUBYgkAzAgCCQEBRwIJAJEDAgUCYlUAAQUBYgkAzAgCCQEBRwIJAJEDAgUCYlUAAgUBYgUDbmlsAQJiVgQCYlcCYlgCYlkBWAQCYk0JAQJhTgAEAmJaCQCRAwIFAmJNBQFxBAJjYQkAkQMCBQJiTQUBcgQCY2IJAJEDAgUCYk0FAXMEAmJFCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYk0FAXQEAmJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYk0FAXUEAmNjCQCRAwIFAmJNBQFwBAJjZAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmJaCQCsAgIJAKwCAgIGQXNzZXQgBQJiWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJiWgUCYlgJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmNlCQECYncBBQJjYQQCY2YJAQFEAgUCY2UFAmJFBAJjZwkBAmJ3AQUCY2IEAmNoCQEBRAIFAmNnBQJiRgQCY2kJAQJieQIFAmNoBQJjZgQCY2oJAQFHAgUCY2kFAWIEAmNrCQEBRAIFAmJZBQFiBAJjbAkBAUQCBQJjZAUBYgQCY20JALwCAwUCY2YFAmNrBQJjbAQCY24JALwCAwUCY2gFAmNrBQJjbAQCY28JAQFHAgUCY20FAmJFBAJjcAkBAUcCBQJjbgUCYkYEAmNxAwkAAAIFAmJXAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFYBQJjbwMJAAACBQJjYQIFV0FWRVMFBHVuaXQJANkEAQUCY2EJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBWAUCY3ADCQAAAgUCY2ICBVdBVkVTBQR1bml0CQDZBAEFAmNiCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFaAgkApQgBBQFYBQJiVwkBAmJzBgUCY28FAmNwBQJiWQUCY2oFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCY2oJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2oFA25pbAkAnAoKBQJjbwUCY3AFAmNhBQJjYgUCY2UFAmNnBQJjZAUCY2kFAmNjBQJjcQECY3IJAmJXAmNzAmN0AmN1AmN2AmN3AVgCY3gCY3kEAmJNCQECYU4ABAJiWgkA2QQBCQCRAwIFAmJNBQFxBAJjegkAkQMCBQJiTQUBcgQCY0EJAJEDAgUCYk0FAXMEAmNCCQCRAwIFAmJNBQF2BAJjQwkAkQMCBQJiTQUBdwQCYk4JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdAQCYk8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiTQUBdQQCY2MJAJEDAgUCYk0FAXAEAmNkCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJaCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJaAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCY0QJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY3UJANkEAQIFV0FWRVMEAmNFCQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmN3CQDZBAECBVdBVkVTAwMJAQIhPQIFAmN6BQJjRAYJAQIhPQIFAmNBBQJjRQkAAgECIkludmFsaWQgYW10IG9yIHByaWNlIGFzc2V0IHBhc3NlZC4EAmNlAwUCY3gJAQJidwEFAmN6CQBlAgkBAmJ3AQUCY3oFAmN0BAJjZwMFAmN4CQECYncBBQJjQQkAZQIJAQJidwEFAmNBBQJjdgQCY0YJAQFEAgUCY3QFAmJOBAJjRwkBAUQCBQJjdgUCYk8EAmNICQECYnkCBQJjRwUCY0YEAmNmCQEBRAIFAmNlBQJiTgQCY2gJAQFEAgUCY2cFAmJPBAJjSQMJAAACBQJjZAAABAJjaQUBZQQCY0oFAWUEAmJRCQB2BgkAuQICBQJjRgUCY0cAAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFHAgUCYlEFAWIJAQFHAgUCY0YFAmJOCQEBRwIFAmNHBQJiTwkBAmJ5AgkAtwICBQJjaAUCY0cJALcCAgUCY2YFAmNGBQJjSgQCY2kJAQJieQIFAmNoBQJjZgQCY0oJALwCAwkBAU8BCQC4AgIFAmNpBQJjSAUBZAUCY2kEAmNLCQEBRAIFAmNzBQFiAwMJAQIhPQIFAmNpBQFlCQC/AgIFAmNKBQJjSwcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCY0oCHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkApgMBBQJjSwQCY2wJAQFEAgUCY2QFAWIEAmNMCQC9AgQFAmNGCQECYkIDBQJjaAUCY2YFB0NFSUxJTkcFAWQFB0NFSUxJTkcEAmNNCQC9AgQFAmNHBQFkCQECYkIDBQJjaAUCY2YFBUZMT09SBQdDRUlMSU5HBAJjTgMJAL8CAgUCY0wFAmNHCQCUCgIFAmNNBQJjRwkAlAoCBQJjRgUCY0wEAmNPCAUCY04CXzEEAmNQCAUCY04CXzIEAmJRCQC9AgQFAmNsBQJjUAUCY2gFBUZMT09SCQCXCgUJAQFHAgUCYlEFAWIJAQFHAgUCY08FAmJOCQEBRwIFAmNQBQJiTwUCY2kFAmNKBAJjUQgFAmNJAl8xBAJjUggFAmNJAl8yBAJjUwgFAmNJAl8zBAJjagkBAUcCCAUCY0kCXzQFAWIEAmNUCQEBRwIIBQJjSQJfNQUBYgMJAGcCAAAFAmNRCQACAQI2SW52YWxpZCBjYWxjdWxhdGlvbnMuIExQIGNhbGN1bGF0ZWQgaXMgbGVzcyB0aGFuIHplcm8uBAJjVQMJAQEhAQUCY3kAAAUCY1EEAmNWCQBlAgUCY3QFAmNSBAJjVwkAZQIFAmN2BQJjUwQCY1gJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCY2oJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2oJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcCBQFYBQJiVwkBAmJoCgUCY1IFAmNTBQJjVQUCY2oFAmNzBQJjVAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY1YFAmNXBQNuaWwJAJ8KDQUCY1EFAmNVBQJjagUCY2UFAmNnBQJjZAUCYloFAmNjBQJjWAUCY1YFAmNXBQJjdQUCY3cBAmNZAwJjWgJkYQJjZAQCZGIJALwCAwkAdgYJALkCAgUCY1oFAmRhAAAJALYCAQAFAAEAEgUERE9XTgUBZwUCY2QDCQAAAgUCY2QFAWYFAWYFAmRiAQJkYwMCZGQCZGUCZGYEAmRnCQC4AgIJALYCAQkBAmJ3AQkBAmFTAQUCYmEFAmRkBAJkaAkAuAICCQC2AgEJAQJidwEJAQJhUwEFAmJiBQJkZQQCZGkJALgCAgkAtgIBCAkBBXZhbHVlAQkA7AcBBQJhWghxdWFudGl0eQUCZGYEAmRqCQECY1kDBQJkZwUCZGgFAmRpBQJkagECZGsDAmRsAmRtAmRmBAJkZwkAZAIJAQJidwEJAQJhUwEFAmJhBQJkbAQCZGgJAGQCCQECYncBCQECYVMBBQJiYgUCZG0EAmRpCQBkAggJAQV2YWx1ZQEJAOwHAQUCYVoIcXVhbnRpdHkFAmRmBAJkYgkBAmNZAwkAtgIBBQJkZwkAtgIBBQJkaAkAtgIBBQJkaQQCZG4JAMwIAgkBDEludGVnZXJFbnRyeQIFAmFnBQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWYJAKYDAQUCZGIFA25pbAkAlAoCBQJkbgUCZGIBAmRvAgJkcAJkYgMJAMACAgUCZGIFAmRwBgkBAmFHAQkAuQkCCQDMCAICInVwZGF0ZWQgS0xwIGxvd2VyIHRoYW4gY3VycmVudCBLTHAJAMwIAgkApgMBBQJkcAkAzAgCCQCmAwEFAmRiBQNuaWwCASABAmRxAQJkcgQCZHMIBQJkcgZhbW91bnQEAmR0CQBuBAgFAmRyBmFtb3VudAgFAmRyBXByaWNlBQFiBQVGTE9PUgQCZHUDCQAAAggFAmRyCW9yZGVyVHlwZQUDQnV5CQCUCgIFAmRzCQEBLQEFAmR0CQCUCgIJAQEtAQUCZHMFAmR0BAJkbAgFAmR1Al8xBAJkbQgFAmR1Al8yAwMDCQECYUwABgkAAAIFAmFZBQFtBgkAAAIFAmFZBQFuCQACAQIcRXhjaGFuZ2Ugb3BlcmF0aW9ucyBkaXNhYmxlZAMDCQECIT0CCAgFAmRyCWFzc2V0UGFpcgthbW91bnRBc3NldAUCYmEGCQECIT0CCAgFAmRyCWFzc2V0UGFpcgpwcmljZUFzc2V0BQJiYgkAAgECE1dyb25nIG9yZGVyIGFzc2V0cy4EAmR2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAmFmCQECYUkBAg9rTHAgaXMgcmVxdWlyZWQJAQJhSQECC2ludmFsaWQga0xwBAJkdwkBAmRrAwUCZGwFAmRtAAAEAmR4CAUCZHcCXzEEAmR5CAUCZHcCXzIEAmR6CQDAAgIFAmR5BQJkdgUCZHoBAmRBAQJkQgMJAQIhPQIJAJADAQgFAmRCCHBheW1lbnRzAAEJAAIBAh1leGFjdGx5IDEgcGF5bWVudCBpcyBleHBlY3RlZAQCZEMJAQV2YWx1ZQEJAJEDAggFAmRCCHBheW1lbnRzAAAEAmJYCQEFdmFsdWUBCAUCZEMHYXNzZXRJZAQCZEQIBQJkQwZhbW91bnQEAmNJCQECYlYECQDYBAEIBQJkQg10cmFuc2FjdGlvbklkCQDYBAEFAmJYBQJkRAgFAmRCBmNhbGxlcgQCY28IBQJjSQJfMQQCY3AIBQJjSQJfMgQCY2MJAQ1wYXJzZUludFZhbHVlAQgFAmNJAl85BAJjcQgFAmNJA18xMAMDCQECYUwABgkAAAIFAmNjBQFuCQACAQkArAICAixHZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJjYwkAlwoFBQJjbwUCY3AFAmREBQJiWAUCY3EBAmRFAwJkQgJjcwJjeQMJAQIhPQIJAJADAQgFAmRCCHBheW1lbnRzAAIJAAIBAh9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAJkRgkBBXZhbHVlAQkAkQMCCAUCZEIIcGF5bWVudHMAAAQCZEcJAQV2YWx1ZQEJAJEDAggFAmRCCHBheW1lbnRzAAEEAmRICQECY3IJCQDYBAEIBQJkQg10cmFuc2FjdGlvbklkBQJjcwgFAmRGBmFtb3VudAgFAmRGB2Fzc2V0SWQIBQJkRwZhbW91bnQIBQJkRwdhc3NldElkCQClCAEIBQJkQgZjYWxsZXIHBQJjeQQCY2MJAQ1wYXJzZUludFZhbHVlAQgFAmRIAl84AwMDCQECYUwABgkAAAIFAmNjBQFsBgkAAAIFAmNjBQFuCQACAQkArAICAixQdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4uIFN0YXR1cyA9IAkApAMBBQJjYwUCZEgBAmRJAQJkSgQCZEsJAPwHBAUCYUoCBGVtaXQJAMwIAgUCZEoFA25pbAUDbmlsAwkAAAIFAmRLBQJkSwQCZEwEAmRNBQJkSwMJAAECBQJkTQIHQWRkcmVzcwQCZE4FAmRNCQD8BwQFAmROAgRlbWl0CQDMCAIFAmRKBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkTAUCZEwFAmRKCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkTwECZEoEAmRQCQBrAwUCZEoFAmFlBQFiCQCUCgIJAGUCBQJkSgUCZFAFAmRQAQJkUQQCZFICZFMBWAFZBAJkVAkAAAIFAVkFBHVuaXQEAmRVCQECYncBCQECYVMBBQJiYQQCZFYJAQJidwEJAQJhUwEFAmJiBAJkVwMJAAACBQJkUwUCYmEGAwkAAAIFAmRTBQJiYgcJAQJhRwECDWludmFsaWQgYXNzZXQEAmRYAwUCZFQJAJQKAgUCZFUFAmRWAwUCZFcJAJQKAgkAZQIFAmRVBQJkUgUCZFYJAJQKAgUCZFUJAGUCBQJkVgUCZFIEAmRZCAUCZFgCXzEEAmRaCAUCZFgCXzIEAmVhAwUCZFcJAJQKAgUCZFIAAAkAlAoCAAAFAmRSBAJlYggFAmVhAl8xBAJlYwgFAmVhAl8yBAJkcwgJAQJkTwEFAmViAl8xBAJkdAgJAQJkTwEFAmVjAl8xBAJlZAkBAmRPAQUCZFIEAmVlCAUCZWQCXzEEAmRQCAUCZWQCXzIEAmVmCQBkAgUCZFkFAmRzBAJlZwkAZAIFAmRaBQJkdAQCZWgJAQJieQIJAQFEAgUCZWcFAmJkCQEBRAIFAmVmBQJiYwQCZWkJAQFHAgUCZWgFAWIEAmVqAwUCZFcFAmRZBQJkWgQCZWsJALYCAQUCZWoEAmVsCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVoJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVoCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlbQMJAL8CAgUCZWwFAWYGCQECYUcBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmVtBQJlbQQCZW4JALYCAQUCZWUEAmVvCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmVsCQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFkCQC6AgIJALkCAgUCZW4FAWQFAmVrABIAEgUERE9XTgUBZAUBZAUDbmlsBAJjWAMFAmRUBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCZWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVcCCQClCAEJAQV2YWx1ZQEFAVgJANgEAQkBBXZhbHVlAQUBWQkBAmJoCgUCZWIFAmVjBQJlbwUCZWkAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJlcAkBAmJ5AgkBAUQCBQJkWgUCYmQJAQFEAgUCZFkFAmJjBAJlcQkBAUcCBQJlcAUBYgQCZXIEAmVzAwUCZFcJAJQKAgUCZWIFAmRZCQCUCgIFAmVjBQJkWgQCZEoIBQJlcwJfMQQCZXQIBQJlcwJfMgQCZXUJAKADAQkAvAIDBQJlbAkAtgIBCQBpAgUCZEoAAgkAtgIBBQJldAkAawMJAGUCBQJlbwUCZXUFAWIFAmV1CQCXCgUFAmVvBQJjWAUCZFAFAmVyBQJkVwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZXYFAmV3AmVlAmRTAVgBWQQCZFQJAAACBQFZBQR1bml0BAJleAkAzAgCAwkAAAIFAmRTBQJhWgYJAQJhRwECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJleAUCZXgEAmV5AwkAAAIFAmV3BQJiYQYDCQAAAgUCZXcFAmJiBwkBAmFHAQINaW52YWxpZCBhc3NldAQCZXoDBQJleQkAtgIBCQECYncBCQECYVMBBQJiYQkAtgIBCQECYncBCQECYVMBBQJiYgQCZUEJAQJidwEJAQJhUwEFAmJhBAJlQgkBAmJ3AQkBAmFTAQUCYmIEAmVDAwUCZXkFAmVBBQJlQgQCZUQJALYCAQUCZUMEAmVsCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVoJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVoCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlRQkAtgIBBQJlZQQCZUYJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZXoJALgCAgUBZAkAdgYJALgCAgUBZAkAugICCQC5AgIFAmVFBQFkBQJlbAASBQFoAAAAEgUERE9XTgUBZAUDbmlsBAJlRwkBAmRPAQUCZUYEAmVICAUCZUcCXzEEAmRQCAUCZUcCXzIEAmVJAwUCZXkJAJYKBAUCZUgAAAkAZQIFAmVBBQJlRgUCZUIJAJYKBAAABQJlSAUCZUEJAGUCBQJlQgUCZUYEAmVKCAUCZUkCXzEEAmVLCAUCZUkCXzIEAmVMCAUCZUkCXzMEAmVNCAUCZUkCXzQEAmVoCQECYnkCCQEBRAIFAmVNBQJiZAkBAUQCBQJlTAUCYmMEAmVpCQEBRwIFAmVoBQFiBAJjWAMFAmRUBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoCCQClCAEJAQV2YWx1ZQEFAVgJANgEAQkBBXZhbHVlAQUBWQkBAmJzBgUCZUoFAmVLBQJlZQUCZWkFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCZWkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZWkFA25pbAQCZXAJAQJieQIJAQFEAgUCZUIFAmJkCQEBRAIFAmVBBQJiYwQCZXEJAQFHAgUCZXAFAWIEAmVyBAJlTgkAaAIJAKADAQkAvAIDBQJlegUCZUUFAmVsAAIJAGsDCQBlAgUCZUgFAmVOBQFiBQJlTgkAlwoFBQJlSAUCY1gFAmRQBQJlcgUCZXkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmVPAAQCZE0JAKIIAQkBAVEAAwkAAQIFAmRNAgZTdHJpbmcEAmVQBQJkTQkA2QQBBQJlUAMJAAECBQJkTQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJlUQAEAmRNCQCiCAEJAQFSAAMJAAECBQJkTQIGU3RyaW5nBAJlUAUCZE0JANkEAQUCZVADCQABAgUCZE0CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZVIBAmRCBAJkTQkBAmVPAAMJAAECBQJkTQIKQnl0ZVZlY3RvcgQCZVMFAmRNCQAAAggFAmRCD2NhbGxlclB1YmxpY0tleQUCZVMDCQABAgUCZE0CBFVuaXQJAAACCAUCZEIGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBAmVUAQJkQgQCZVUJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCZE0JAQJlTwADCQABAgUCZE0CCkJ5dGVWZWN0b3IEAmVTBQJkTQMJAAACCAUCZEIPY2FsbGVyUHVibGljS2V5BQJlUwYFAmVVAwkAAQIFAmRNAgRVbml0AwkAAAIIBQJkQgZjYWxsZXIFBHRoaXMGBQJlVQkAAgECC01hdGNoIGVycm9yGwJkQgEKc2V0TWFuYWdlcgECZVYEAmVXCQECZVQBBQJkQgMJAAACBQJlVwUCZVcEAmVYCQDZBAEFAmVWAwkAAAIFAmVYBQJlWAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAFAmVWBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEIBDmNvbmZpcm1NYW5hZ2VyAAQCZVkJAQJlUQAEAmVaAwkBCWlzRGVmaW5lZAEFAmVZBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJlWgUCZVoEAmZhAwkAAAIIBQJkQg9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmVZBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmYQUCZmEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVEACQDYBAEJAQV2YWx1ZQEFAmVZCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFSAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCAQNwdXQCAmNzAmZiAwkAZgIAAAUCY3MJAAIBAiBJbnZhbGlkIHNsaXBwYWdlVG9sZXJhbmNlIHBhc3NlZAQCZEgJAQJkRQMFAmRCBQJjcwYEAmNVCAUCZEgCXzIEAmJaCAUCZEgCXzcEAmNxCAUCZEgCXzkEAmNWCAUCZEgDXzEwBAJjVwgFAmRIA18xMQQCZmMIBQJkSANfMTIEAmZkCAUCZEgDXzEzBAJkRgkAtgIBCAkBBXZhbHVlAQkAkQMCCAUCZEIIcGF5bWVudHMAAAZhbW91bnQEAmRHCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQghwYXltZW50cwABBmFtb3VudAQCZGoJAQJkYwMFAmRGBQJkRwkAtgIBAAADCQAAAgUCZGoFAmRqBAJkSwkA/AcEBQJhSgIEZW1pdAkAzAgCBQJjVQUDbmlsBQNuaWwDCQAAAgUCZEsFAmRLBAJkTAQCZE0FAmRLAwkAAQIFAmRNAgdBZGRyZXNzBAJkTgUCZE0JAPwHBAUCZE4CBGVtaXQJAMwIAgUCY1UFA25pbAUDbmlsBQR1bml0AwkAAAIFAmRMBQJkTAQCZmUDCQBmAgUCY1YAAAkA/AcEBQJiZwIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmZjBQJjVgUDbmlsBQNuaWwDCQAAAgUCZmUFAmZlBAJmZgMJAGYCBQJjVwAACQD8BwQFAmJnAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZmQFAmNXBQNuaWwFA25pbAMJAAACBQJmZgUCZmYEAmZnAwUCZmIEAmZoCQD8BwQFAmJmAgVzdGFrZQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJiWgUCY1UFA25pbAMJAAACBQJmaAUCZmgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEIGY2FsbGVyBQJjVQUCYloFA25pbAQCZmkJAQJkawMAAAAAAAADCQAAAgUCZmkFAmZpBAJkYggFAmZpAl8yBAJmaggFAmZpAl8xBAJmawkBAmRvAgUCZGoFAmRiAwkAAAIFAmZrBQJmawkAzggCCQDOCAIFAmNxBQJmZwUCZmoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEIBCnB1dEZvckZyZWUBAmZsAwkAZgIAAAUCZmwJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZEgJAQJkRQMFAmRCBQJmbAcEAmNxCAUCZEgCXzkEAmRGCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJkQghwYXltZW50cwAABmFtb3VudAQCZEcJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmRCCHBheW1lbnRzAAEGYW1vdW50BAJkagkBAmRjAwUCZEYFAmRHCQC2AgEAAAMJAAACBQJkagUCZGoEAmZtCQECZGsDAAAAAAAABAJmaggFAmZtAl8xBAJkYggFAmZtAl8yBAJmawkBAmRvAgUCZGoFAmRiAwkAAAIFAmZrBQJmawkAzggCBQJjcQUCZmoJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZEIBCXB1dE9uZVRrbgICZm4CZm8EAmZwCgACZnEJAPwHBAUCYUoCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJmcQIHQm9vbGVhbgUCZnEJAAIBCQCsAgIJAAMBBQJmcQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZnIDAwMJAQJhTAAGCQAAAgUCYVkFAWwGCQAAAgUCYVkFAW4GBQJmcAQCZXgJAMwIAgMDCQEBIQEFAmZyBgkBAmVSAQUCZEIGCQECYUcBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQghwYXltZW50cwABBgkBAmFHAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZXgFAmV4BAJmcwkAkQMCCAUCZEIIcGF5bWVudHMAAAQCZFMIBQJmcwdhc3NldElkBAJkUggFAmZzBmFtb3VudAQCZGoDCQAAAgUCZFMFAmJhCQECZGMDCQC2AgEFAmRSCQC2AgEAAAkAtgIBAAADCQAAAgUCZFMFAmJiCQECZGMDCQC2AgEAAAkAtgIBBQJkUgkAtgIBAAAJAQJhRwECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAQBWAgFAmRCBmNhbGxlcgQBWQgFAmRCDXRyYW5zYWN0aW9uSWQEAmZ0CQECZFEEBQJkUgUCZFMFAVgFAVkDCQAAAgUCZnQFAmZ0BAJkVwgFAmZ0Al81BAJmdQgFAmZ0Al80BAJkUAgFAmZ0Al8zBAJjWAgFAmZ0Al8yBAJmdggFAmZ0Al8xBAJmdwMDCQBmAgUCZm4AAAkAZgIFAmZuBQJmdgcJAQJhRwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZm4FA25pbAIABQJmdgQCZEsJAQJkSQEFAmZ3AwkAAAIFAmRLBQJkSwQCZmcDBQJmbwQCZngJAPwHBAUCYmYCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFaBQJmdwUDbmlsAwkAAAIFAmZ4BQJmeAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJkQgZjYWxsZXIFAmZ3BQJhWgUDbmlsBAJmeQMJAGYCBQJkUAAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFLBQJkUAUCZFMFA25pbAUDbmlsBAJmegMJAAACBQR0aGlzBQJhSwkAlAoCAAAAAAMFAmRXCQCUCgIJAQEtAQUCZFAAAAkAlAoCAAAJAQEtAQUCZFAEAmRsCAUCZnoCXzEEAmRtCAUCZnoCXzIEAmZBCQECZGsDBQJkbAUCZG0AAAQCZmoIBQJmQQJfMQQCZGIIBQJmQQJfMgQCZHYJAQV2YWx1ZQEJAKIIAQUCYWYEAmZrCQECZG8CBQJkagUCZGIDCQAAAgUCZmsFAmZrCQCUCgIJAM4IAgkAzggCCQDOCAIFAmNYBQJmZwUCZnkFAmZqBQJmdwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgERcHV0T25lVGtuUkVBRE9OTFkCAmRTAmRSBAJmQgkBAmRRBAUCZFIJAQJhUQEFAmRTBQR1bml0BQR1bml0BAJmdggFAmZCAl8xBAJjWAgFAmZCAl8yBAJkUAgFAmZCAl8zBAJmdQgFAmZCAl80BAJkVwgFAmZCAl81CQCUCgIFA25pbAkAlQoDBQJmdgUCZFAFAmZ1AmRCAQlnZXRPbmVUa24CAmZDAmZuBAJmcAoAAmZxCQD8BwQFAmFKAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCZnECB0Jvb2xlYW4FAmZxCQACAQkArAICCQADAQUCZnECHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmZEAwMJAQJhTAAGCQAAAgUCYVkFAW4GBQJmcAQCZXgJAMwIAgMDCQEBIQEFAmZEBgkBAmVSAQUCZEIGCQECYUcBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQghwYXltZW50cwABBgkBAmFHAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZXgFAmV4BAJldwkBAmFRAQUCZkMEAmZzCQCRAwIIBQJkQghwYXltZW50cwAABAJkUwgFAmZzB2Fzc2V0SWQEAmVlCAUCZnMGYW1vdW50BAJkagkBAmRjAwkAtgIBAAAJALYCAQAACQC2AgEFAmVlBAFYCAUCZEIGY2FsbGVyBAFZCAUCZEINdHJhbnNhY3Rpb25JZAQCZkUJAQJldgUFAmV3BQJlZQUCZFMFAVgFAVkDCQAAAgUCZkUFAmZFBAJleQgFAmZFAl81BAJmdQgFAmZFAl80BAJkUAgFAmZFAl8zBAJjWAgFAmZFAl8yBAJmRggFAmZFAl8xBAJkSgMDCQBmAgUCZm4AAAkAZgIFAmZuBQJmRgcJAQJhRwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZm4FA25pbAIABQJmRgQCZkcJAPwHBAUCYUoCBGJ1cm4JAMwIAgUCZWUFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZFMFAmVlBQNuaWwDCQAAAgUCZkcFAmZHBAJmSAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFYBQJkSgUCZXcFA25pbAQCZnkDCQBmAgUCZFAAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhSwUCZFAFAmV3BQNuaWwFA25pbAQCZkkEAmZKAwkAAAIFBHRoaXMFAmFLAAAFAmRQAwUCZXkJAJQKAgkBAS0BCQBkAgUCZEoFAmZKAAAJAJQKAgAACQEBLQEJAGQCBQJkSgUCZkoEAmRsCAUCZkkCXzEEAmRtCAUCZkkCXzIEAmZLCQECZGsDBQJkbAUCZG0AAAQCZmoIBQJmSwJfMQQCZGIIBQJmSwJfMgQCZmsJAQJkbwIFAmRqBQJkYgMJAAACBQJmawUCZmsJAJQKAgkAzggCCQDOCAIJAM4IAgUCY1gFAmZIBQJmeQUCZmoFAmRKCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCARFnZXRPbmVUa25SRUFET05MWQICZXcCZWUEAmZMCQECZXYFCQECYVEBBQJldwUCZWUFAmFaBQR1bml0BQR1bml0BAJmRggFAmZMAl8xBAJjWAgFAmZMAl8yBAJkUAgFAmZMAl8zBAJmdQgFAmZMAl80BAJleQgFAmZMAl81CQCUCgIFA25pbAkAlQoDBQJmRgUCZFAFAmZ1AmRCARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmTQJmQwJmbgQCZnAKAAJmcQkA/AcEBQJhSgIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmZxAgdCb29sZWFuBQJmcQkAAgEJAKwCAgkAAwEFAmZxAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmRAMDCQECYUwABgkAAAIFAmFZBQFuBgUCZnAEAmV4CQDMCAIDAwkBASEBBQJmRAYJAQJlUgEFAmRCBgkBAmFHAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZEIIcGF5bWVudHMAAAYJAQJhRwECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV4BQJleAQCZXcJAQJhUQEFAmZDBAFYCAUCZEIGY2FsbGVyBAFZCAUCZEINdHJhbnNhY3Rpb25JZAQCZGoJAQJkYwMJALYCAQAACQC2AgEAAAkAtgIBAAAEAmZOCQD8BwQFAmJmAgd1bnN0YWtlCQDMCAIJANgEAQUCYVoJAMwIAgUCZk0FA25pbAUDbmlsAwkAAAIFAmZOBQJmTgQCZk8JAQJldgUFAmV3BQJmTQUCYVoFAVgFAVkDCQAAAgUCZk8FAmZPBAJleQgFAmZPAl81BAJmdQgFAmZPAl80BAJkUAgFAmZPAl8zBAJjWAgFAmZPAl8yBAJmRggFAmZPAl8xBAJkSgMDCQBmAgUCZm4AAAkAZgIFAmZuBQJmRgcJAQJhRwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZm4FA25pbAIABQJmRgQCZkcJAPwHBAUCYUoCBGJ1cm4JAMwIAgUCZk0FA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVoFAmZNBQNuaWwDCQAAAgUCZkcFAmZHBAJmSAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZEIGY2FsbGVyBQJkSgUCZXcFA25pbAQCZnkDCQBmAgUCZFAAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhSwUCZFAFAmV3BQNuaWwFA25pbAQCZlAEAmZKAwkAAAIFBHRoaXMFAmFLAAAFAmRQAwUCZXkJAJQKAgkBAS0BCQBkAgUCZEoFAmZKAAAJAJQKAgAACQEBLQEJAGQCBQJkSgUCZkoEAmRsCAUCZlACXzEEAmRtCAUCZlACXzIEAmZRCQECZGsDBQJkbAUCZG0AAAQCZmoIBQJmUQJfMQQCZGIIBQJmUQJfMgQCZmsJAQJkbwIFAmRqBQJkYgMJAAACBQJmawUCZmsJAJQKAgkAzggCCQDOCAIJAM4IAgUCY1gFAmZIBQJmeQUCZmoFAmRKCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCAQNnZXQABAJjSQkBAmRBAQUCZEIEAmZSCAUCY0kCXzEEAmNwCAUCY0kCXzIEAmRECAUCY0kCXzMEAmJYCAUCY0kCXzQEAmNxCAUCY0kCXzUEAmRqCQECZGMDCQC2AgEAAAkAtgIBAAAJALYCAQUCZEQEAmZTCQD8BwQFAmFKAgRidXJuCQDMCAIFAmREBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJYBQJkRAUDbmlsAwkAAAIFAmZTBQJmUwQCZlQJAQJkawMJAQEtAQUCZlIJAQEtAQUCY3AAAAQCZmoIBQJmVAJfMQQCZGIIBQJmVAJfMgQCZmsJAQJkbwIFAmRqBQJkYgMJAAACBQJmawUCZmsJAM4IAgUCY3EFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCAQlnZXROb0xlc3MCAmZVAmZWBAJjSQkBAmRBAQUCZEIEAmNvCAUCY0kCXzEEAmNwCAUCY0kCXzIEAmRECAUCY0kCXzMEAmJYCAUCY0kCXzQEAmNxCAUCY0kCXzUDCQBmAgUCZlUFAmNvCQACAQkArAICCQCsAgIJAKwCAgIcbm9MZXNzVGhlbkFtdEFzc2V0IGZhaWxlZDogIAkApAMBBQJjbwIDIDwgCQCkAwEFAmZVAwkAZgIFAmZWBQJjcAkAAgEJAKwCAgkArAICCQCsAgICHW5vTGVzc1RoZW5QcmljZUFzc2V0IGZhaWxlZDogCQCkAwEFAmNwAgMgPCAJAKQDAQUCZlYEAmRqCQECZGMDCQC2AgEAAAkAtgIBAAAJALYCAQUCZEQEAmZTCQD8BwQFAmFKAgRidXJuCQDMCAIFAmREBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJYBQJkRAUDbmlsAwkAAAIFAmZTBQJmUwQCZlcJAQJkawMJAQEtAQUCY28JAQEtAQUCY3AAAAQCZmoIBQJmVwJfMQQCZGIIBQJmVwJfMgQCZmsJAQJkbwIFAmRqBQJkYgMJAAACBQJmawUCZmsJAM4IAgUCY3EFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCAQ11bnN0YWtlQW5kR2V0AQJkSgQCZlgDCQECIT0CCQCQAwEIBQJkQghwYXltZW50cwAACQACAQIYTm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBgMJAAACBQJmWAUCZlgEAmJNCQECYU4ABAJiWgkA2QQBCQCRAwIFAmJNBQFxBAJkagkBAmRjAwkAtgIBAAAJALYCAQAACQC2AgEAAAQCZk4JAPwHBAUCYmYCB3Vuc3Rha2UJAMwIAgkA2AQBBQJiWgkAzAgCBQJkSgUDbmlsBQNuaWwDCQAAAgUCZk4FAmZOBAJjSQkBAmJWBAkA2AQBCAUCZEINdHJhbnNhY3Rpb25JZAkA2AQBBQJiWgUCZEoIBQJkQgZjYWxsZXIEAmNvCAUCY0kCXzEEAmNwCAUCY0kCXzIEAmNjCQENcGFyc2VJbnRWYWx1ZQEIBQJjSQJfOQQCY3EIBQJjSQNfMTAEAmZZAwMJAQJhTAAGCQAAAgUCY2MFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmNjBgMJAAACBQJmWQUCZlkEAmZTCQD8BwQFAmFKAgRidXJuCQDMCAIFAmRKBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJaBQJkSgUDbmlsAwkAAAIFAmZTBQJmUwQCZloJAQJkawMJAQEtAQUCY28JAQEtAQUCY3AAAAQCZmoIBQJmWgJfMQQCZGIIBQJmWgJfMgQCZmsJAQJkbwIFAmRqBQJkYgMJAAACBQJmawUCZmsJAM4IAgUCY3EFAmZqCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCARN1bnN0YWtlQW5kR2V0Tm9MZXNzAwJmTQJnYQJmVgQCZkQDCQECYUwABgkAAAIFAmFZBQFuBAJleAkAzAgCAwkBASEBBQJmRAYJAAIBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkQghwYXltZW50cwAABgkAAgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmV4BQJleAQCZGoJAQJkYwMJALYCAQAACQC2AgEAAAkAtgIBAAAEAmZOCQD8BwQFAmJmAgd1bnN0YWtlCQDMCAIJANgEAQUCYVoJAMwIAgUCZk0FA25pbAUDbmlsAwkAAAIFAmZOBQJmTgQCY0kJAQJiVgQJANgEAQgFAmRCDXRyYW5zYWN0aW9uSWQJANgEAQUCYVoFAmZNCAUCZEIGY2FsbGVyBAJjbwgFAmNJAl8xBAJjcAgFAmNJAl8yBAJjcQgFAmNJA18xMAQCZ2IJAMwIAgMJAGcCBQJjbwUCZ2EGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ2EFA25pbAIACQDMCAIDCQBnAgUCY3AFAmZWBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZlYFA25pbAIABQNuaWwDCQAAAgUCZ2IFAmdiBAJmUwkA/AcEBQJhSgIEYnVybgkAzAgCBQJmTQUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJhWgUCZk0FA25pbAMJAAACBQJmUwUCZlMEAmdjCQECZGsDCQEBLQEFAmNvCQEBLQEFAmNwAAAEAmZqCAUCZ2MCXzEEAmRiCAUCZ2MCXzIEAmZrCQECZG8CBQJkagUCZGIDCQAAAgUCZmsFAmZrCQDOCAIFAmNxBQJmagkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkQgEIYWN0aXZhdGUCAmdkAmdlAwkBAiE9AgkApQgBCAUCZEIGY2FsbGVyCQClCAEFAmFKCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAUCZ2QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAAUCZ2UFA25pbAIHc3VjY2VzcwJkQgEKcmVmcmVzaEtMcAAEAmdmCQELdmFsdWVPckVsc2UCCQCfCAEFAmFnAAAEAmdnAwkAZwIJAGUCBQZoZWlnaHQFAmdmBQJhagUEdW5pdAkBAmFHAQkAuQkCCQDMCAIJAKQDAQUCYWoJAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmdnBQJnZwQCZHYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFmAgEwCQECYUkBAgtpbnZhbGlkIGtMcAQCZ2gJAQJkawMAAAAAAAAEAmdpCAUCZ2gCXzEEAmRiCAUCZ2gCXzIEAmRuAwkBAiE9AgUCZHYFAmRiBQJnaQkBAmFHAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmRuCQCmAwEFAmRiCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRCARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJhTgACZEIBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmJ4CQCUCgIFA25pbAkBAmJ3AQUCYngCZEIBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmJHAmJIAmJMBAJiVQkBAmJLAwUCYkcFAmJIBQJiTAkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmJVAAAJAMwIAgkApgMBCQCRAwIFAmJVAAEJAMwIAgkApgMBCQCRAwIFAmJVAAIFA25pbAJkQgEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmRCARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFIAUkJAJQKAgUDbmlsCQEBRwIJAKcDAQUBSAUBSQJkQgEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiegJiQQkAlAoCBQNuaWwJAKYDAQkBAmJ5AgkApwMBBQJiegkApwMBBQJiQQJkQgEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmJXAmNzAmN0AmN1AmN2AmN3AVgCY3gCY3kJAJQKAgUDbmlsCQECY3IJBQJiVwUCY3MFAmN0BQJjdQUCY3YFAmN3BQFYBQJjeAUCY3kCZEIBI2VzdGltYXRlR2V0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZBAJiVwJiWAJiWQFYBAJjSQkBAmJWBAUCYlcFAmJYBQJiWQkBEUBleHRyTmF0aXZlKDEwNjIpAQUBWAkAlAoCBQNuaWwJAJwKCggFAmNJAl8xCAUCY0kCXzIIBQJjSQJfMwgFAmNJAl80CAUCY0kCXzUIBQJjSQJfNggFAmNJAl83CQCmAwEIBQJjSQJfOAgFAmNJAl85CAUCY0kDXzEwAmRCAQ1zdGF0c1JFQURPTkxZAAQCYk0JAQJhTgAEAmJaCQDZBAEJAJEDAgUCYk0FAXEEAmdqCQCRAwIFAmJNBQFyBAJnawkAkQMCBQJiTQUBcwQCY0IJAJEDAgUCYk0FAXYEAmNDCQCRAwIFAmJNBQF3BAJiTgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJNBQF0BAJiTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJNBQF1BAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiWgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdtCQECYncBBQJnagQCZ24JAQJidwEFAmdrBAJnbwMJAAACBQJnbAAACQDMCAIFAWUJAMwIAgUBZQkAzAgCBQFlBQNuaWwJAQJiSwMFAmdtBQJnbgUCZ2wEAmNqAAAEAmdwCQEBRwIJAJEDAgUCZ28AAQUBYgQCZ3EJAQFHAgkAkQMCBQJnbwACBQFiBAJncgkBBXZhbHVlAQkAmggCBQJhSgkBAmF1AQkApQgBBQR0aGlzCQCUCgIFA25pbAkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZ20JAMwIAgkApAMBBQJnbgkAzAgCCQCkAwEFAmdsCQDMCAIJAKQDAQUCY2oJAMwIAgkApAMBBQJncAkAzAgCCQCkAwEFAmdxCQDMCAIJAKQDAQUCZ3IFA25pbAUBagJkQgEgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkBAmN0BAJiTQkBAmFOAAQCYloJANkEAQkAkQMCBQJiTQUBcQQCY3oJAJEDAgUCYk0FAXIEAmNhCQDZBAEFAmN6BAJjQQkAkQMCBQJiTQUBcwQCY2IJANkEAQUCY0EEAmJOCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYk0FAXQEAmJPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYk0FAXUEAmNjCQCRAwIFAmJNBQFwBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiWgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmdtCQECYncBBQJjegQCZ24JAQJidwEFAmNBBAJiSQkBAUQCBQJnbQUCYk4EAmJKCQEBRAIFAmduBQJiTwQCY2kDCQAAAgUCZ2wAAAUBZQkBAmJ5AgUCYkoFAmJJBAJjRgkBAUQCBQJjdAUCYk4EAmNHCQC8AgMFAmNGBQJjaQUBZAQCY3YJAQFHAgUCY0cFAmJPBAJkSAkBAmNyCQIAAKDCHgUCY3QFAmNhBQJjdgUCY2ICAAYHBAJjUQgFAmRIAl8xBAJncwgFAmRIAl8zBAJjZQgFAmRIAl80BAJjZwgFAmRIAl81BAJjZAgFAmRIAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjUQkAzAgCCQCkAwEJAQFHAgUCY2kFAWIJAMwIAgkApAMBBQJjZQkAzAgCCQCkAwEFAmNnCQDMCAIJAKQDAQUCY2QJAMwIAgUCY2MJAMwIAgkApAMBBQJjdAkAzAgCCQCkAwEFAmN2BQNuaWwFAWoCZEIBH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkBAmN2BAJiTQkBAmFOAAQCYloJANkEAQkAkQMCBQJiTQUBcQQCY3oJAJEDAgUCYk0FAXIEAmNhCQDZBAEFAmN6BAJjQQkAkQMCBQJiTQUBcwQCY2IJANkEAQUCY0EEAmJOCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYk0FAXQEAmJPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYk0FAXUEAmNjCQCRAwIFAmJNBQFwBAJnbAgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBBQJiWgkArAICCQCsAgICBkFzc2V0IAkA2AQBBQJiWgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkEAmd0CQECYncBBQJjegQCZ3UJAQJidwEFAmNBBAJndgkBAUQCBQJndAUCYk4EAmd3CQEBRAIFAmd1BQJiTwQCY2kDCQAAAgUCZ2wAAAUBZQkBAmJ5AgUCZ3cFAmd2BAJjRwkBAUQCBQJjdgUCYk8EAmNGCQC8AgMFAmNHBQFkBQJjaQQCY3QJAQFHAgUCY0YFAmJOBAJkSAkBAmNyCQIAAKDCHgUCY3QFAmNhBQJjdgUCY2ICAAYHBAJjUQgFAmRIAl8xBAJncwgFAmRIAl8zBAJjZQgFAmRIAl80BAJjZwgFAmRIAl81BAJjZAgFAmRIAl82CQCUCgIFA25pbAkAuQkCCQDMCAICECVkJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjUQkAzAgCCQCkAwEJAQFHAgUCY2kFAWIJAMwIAgkApAMBBQJjZQkAzAgCCQCkAwEFAmNnCQDMCAIJAKQDAQUCY2QJAMwIAgUCY2MJAMwIAgkApAMBBQJjdAkAzAgCCQCkAwEFAmN2BQNuaWwFAWoCZEIBE2V2YWx1YXRlR2V0UkVBRE9OTFkCAmd4Amd5BAJjSQkBAmJWBAIABQJneAUCZ3kFBHRoaXMEAmNvCAUCY0kCXzEEAmNwCAUCY0kCXzIEAmNlCAUCY0kCXzUEAmNnCAUCY0kCXzYEAmNkCAUCY0kCXzcEAmNqCAUCY0kCXzgEAmNjCQENcGFyc2VJbnRWYWx1ZQEIBQJjSQJfOQkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNvCQDMCAIJAKQDAQUCY3AJAMwIAgkApAMBBQJjZQkAzAgCCQCkAwEFAmNnCQDMCAIJAKQDAQUCY2QJAMwIAgkApgMBBQJjagkAzAgCCQCkAwEFAmNjBQNuaWwFAWoBAmd6AQJnQQAEAmdCBAJkTQkBAmVPAAMJAAECBQJkTQIKQnl0ZVZlY3RvcgQCZVMFAmRNBQJlUwMJAAECBQJkTQIEVW5pdAgFAmd6D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yBAJkTQUCZ3oDCQABAgUCZE0CBU9yZGVyBAJkcgUCZE0EAmdDCQECYU0ABAJhegkBAmRxAQUCZHIEAmFBCQD0AwMIBQJkcglib2R5Qnl0ZXMJAJEDAggFAmRyBnByb29mcwAACAUCZHIPc2VuZGVyUHVibGljS2V5BAJhQgkA9AMDCAUCZHIJYm9keUJ5dGVzCQCRAwIIBQJkcgZwcm9vZnMAAQUCZ0MDAwMFAmF6BQJhQQcFAmFCBwYJAQJheQMFAmF6BQJhQQUCYUIDCQABAgUCZE0CFFNldFNjcmlwdFRyYW5zYWN0aW9uBAJlUAUCZE0EAmdECQD2AwEJAQV2YWx1ZQEIBQJlUAZzY3JpcHQEAmdFCQDbBAEJAQV2YWx1ZQEJAJ0IAgUCYUoJAQJhdwAEAmdGCQDxBwEFBHRoaXMDAwkAAAIFAmdFBQJnRAkBAiE9AgUCZ0YFAmdEBwYJAPQDAwgFAmd6CWJvZHlCeXRlcwkAkQMCCAUCZ3oGcHJvb2ZzAAAFAmdCCQD0AwMIBQJneglib2R5Qnl0ZXMJAJEDAggFAmd6BnByb29mcwAABQJnQsDAXEo=", "chainId": 84, "height": 2350043, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DR97rVALMKjHvxriJ24zcaQuVY7HD9jfEgL2ec1pg4z3 Next: 28JKoGoJ56jGPLbnjdMRe3MgnFjtBvmBvAk55enPyX2x Diff:
OldNewDifferences
233233 func by (bz,bA) = fraction(bz, d, bA)
234234
235235
236-func bB (bC,bD,bE,bF) = {
237- let bG = D(bE, bC)
238- let bH = D(bF, bD)
239- by(bH, bG)
236+func bB (bz,bA,bC) = fraction(bz, d, bA, bC)
237+
238+
239+func bD (bE,bF,bG,bH) = {
240+ let bI = D(bG, bE)
241+ let bJ = D(bH, bF)
242+ by(bJ, bI)
240243 }
241244
242245
243-func bI (bE,bF,bJ) = {
244- let bK = aN()
245- let bL = parseIntValue(bK[t])
246- let bM = parseIntValue(bK[u])
247- let bN = bB(bL, bM, bE, bF)
248- let bA = D(bE, bL)
249- let bz = D(bF, bM)
250- let bO = D(bJ, b)
251- let bP = by(bA, bO)
252- let bQ = by(bz, bO)
253-[bN, bP, bQ]
246+func bK (bG,bH,bL) = {
247+ let bM = aN()
248+ let bN = parseIntValue(bM[t])
249+ let bO = parseIntValue(bM[u])
250+ let bP = bD(bN, bO, bG, bH)
251+ let bA = D(bG, bN)
252+ let bz = D(bH, bO)
253+ let bQ = D(bL, b)
254+ let bR = by(bA, bQ)
255+ let bS = by(bz, bQ)
256+[bP, bR, bS]
254257 }
255258
256259
257-func bR (bE,bF,bJ) = {
258- let bS = bI(bE, bF, bJ)
259-[G(bS[0], b), G(bS[1], b), G(bS[2], b)]
260+func bT (bG,bH,bL) = {
261+ let bU = bK(bG, bH, bL)
262+[G(bU[0], b), G(bU[1], b), G(bU[2], b)]
260263 }
261264
262265
263-func bT (bU,bV,bW,X) = {
264- let bK = aN()
265- let bX = bK[q]
266- let bY = bK[r]
267- let bZ = bK[s]
268- let bC = parseIntValue(bK[t])
269- let bD = parseIntValue(bK[u])
270- let ca = bK[p]
271- let cb = valueOrErrorMessage(assetInfo(fromBase58String(bX)), (("Asset " + bX) + " doesn't exist")).quantity
272- if ((bX != bV))
266+func bV (bW,bX,bY,X) = {
267+ let bM = aN()
268+ let bZ = bM[q]
269+ let ca = bM[r]
270+ let cb = bM[s]
271+ let bE = parseIntValue(bM[t])
272+ let bF = parseIntValue(bM[u])
273+ let cc = bM[p]
274+ let cd = valueOrErrorMessage(assetInfo(fromBase58String(bZ)), (("Asset " + bZ) + " doesn't exist")).quantity
275+ if ((bZ != bX))
273276 then throw("Invalid asset passed.")
274277 else {
275- let cc = bw(bY)
276- let cd = D(cc, bC)
277- let ce = bw(bZ)
278- let cf = D(ce, bD)
279- let cg = by(cf, cd)
280- let ch = G(cg, b)
281- let ci = D(bW, b)
282- let cj = D(cb, b)
283- let ck = fraction(cd, ci, cj)
284- let cl = fraction(cf, ci, cj)
285- let cm = G(ck, bC)
286- let cn = G(cl, bD)
287- let co = if ((bU == ""))
278+ let ce = bw(ca)
279+ let cf = D(ce, bE)
280+ let cg = bw(cb)
281+ let ch = D(cg, bF)
282+ let ci = by(ch, cf)
283+ let cj = G(ci, b)
284+ let ck = D(bY, b)
285+ let cl = D(cd, b)
286+ let cm = fraction(cf, ck, cl)
287+ let cn = fraction(ch, ck, cl)
288+ let co = G(cm, bE)
289+ let cp = G(cn, bF)
290+ let cq = if ((bW == ""))
288291 then nil
289- else [ScriptTransfer(X, cm, if ((bY == "WAVES"))
292+ else [ScriptTransfer(X, co, if ((ca == "WAVES"))
290293 then unit
291- else fromBase58String(bY)), ScriptTransfer(X, cn, if ((bZ == "WAVES"))
294+ else fromBase58String(ca)), ScriptTransfer(X, cp, if ((cb == "WAVES"))
292295 then unit
293- else fromBase58String(bZ)), StringEntry(Z(toString(X), bU), bs(cm, cn, bW, ch, height, lastBlock.timestamp)), IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch)]
294- $Tuple10(cm, cn, bY, bZ, cc, ce, cb, cg, ca, co)
296+ else fromBase58String(cb)), StringEntry(Z(toString(X), bW), bs(co, cp, bY, cj, height, lastBlock.timestamp)), IntegerEntry(S(), cj), IntegerEntry(T(height, lastBlock.timestamp), cj)]
297+ $Tuple10(co, cp, ca, cb, ce, cg, cd, ci, cc, cq)
295298 }
296299 }
297300
298301
299-func cp (bU,cq,cr,cs,ct,cu,X,cv,cw) = {
300- let bK = aN()
301- let bX = fromBase58String(bK[q])
302- let cx = bK[r]
303- let cy = bK[s]
304- let cz = bK[v]
305- let cA = bK[w]
306- let bL = parseIntValue(bK[t])
307- let bM = parseIntValue(bK[u])
308- let ca = bK[p]
309- let cb = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
310- let cB = toBase58String(valueOrElse(cs, fromBase58String("WAVES")))
311- let cC = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
312- if (if ((cx != cB))
302+func cr (bW,cs,ct,cu,cv,cw,X,cx,cy) = {
303+ let bM = aN()
304+ let bZ = fromBase58String(bM[q])
305+ let cz = bM[r]
306+ let cA = bM[s]
307+ let cB = bM[v]
308+ let cC = bM[w]
309+ let bN = parseIntValue(bM[t])
310+ let bO = parseIntValue(bM[u])
311+ let cc = bM[p]
312+ let cd = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
313+ let cD = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
314+ let cE = toBase58String(valueOrElse(cw, fromBase58String("WAVES")))
315+ if (if ((cz != cD))
313316 then true
314- else (cy != cC))
317+ else (cA != cE))
315318 then throw("Invalid amt or price asset passed.")
316319 else {
317- let cc = if (cv)
318- then bw(cx)
319- else (bw(cx) - cr)
320- let ce = if (cv)
321- then bw(cy)
322- else (bw(cy) - ct)
323- let cD = D(cr, bL)
324- let cE = D(ct, bM)
325- let cF = by(cE, cD)
326- let cd = D(cc, bL)
327- let cf = D(ce, bM)
328- let cG = if ((cb == 0))
320+ let ce = if (cx)
321+ then bw(cz)
322+ else (bw(cz) - ct)
323+ let cg = if (cx)
324+ then bw(cA)
325+ else (bw(cA) - cv)
326+ let cF = D(ct, bN)
327+ let cG = D(cv, bO)
328+ let cH = by(cG, cF)
329+ let cf = D(ce, bN)
330+ let ch = D(cg, bO)
331+ let cI = if ((cd == 0))
329332 then {
330- let cg = e
331- let cH = e
332- let bO = pow((cD * cE), 0, toBigInt(5), 1, 0, DOWN)
333- $Tuple5(G(bO, b), G(cD, bL), G(cE, bM), by((cf + cE), (cd + cD)), cH)
333+ let ci = e
334+ let cJ = e
335+ let bQ = pow((cF * cG), 0, toBigInt(5), 1, 0, DOWN)
336+ $Tuple5(G(bQ, b), G(cF, bN), G(cG, bO), by((ch + cG), (cf + cF)), cJ)
334337 }
335338 else {
336- let cg = by(cf, cd)
337- let cH = fraction(O((cg - cF)), d, cg)
338- let cI = D(cq, b)
339- if (if ((cg != e))
340- then (cH > cI)
339+ let ci = by(ch, cf)
340+ let cJ = fraction(O((ci - cH)), d, ci)
341+ let cK = D(cs, b)
342+ if (if ((ci != e))
343+ then (cJ > cK)
341344 else false)
342- then throw(((("Price slippage " + toString(cH)) + " exceeded the passed limit of ") + toString(cI)))
345+ then throw(((("Price slippage " + toString(cJ)) + " exceeded the passed limit of ") + toString(cK)))
343346 else {
344- let cj = D(cb, b)
345- let cJ = fraction(cD, cg, d, CEILING)
346- let cK = fraction(cE, d, cg, CEILING)
347- let cL = if ((cJ > cE))
348- then $Tuple2(cK, cE)
349- else $Tuple2(cD, cJ)
350- let cM = cL._1
351- let cN = cL._2
352- let bO = fraction(cj, cN, cf)
353- $Tuple5(G(bO, b), G(cM, bL), G(cN, bM), cg, cH)
347+ let cl = D(cd, b)
348+ let cL = fraction(cF, bB(ch, cf, CEILING), d, CEILING)
349+ let cM = fraction(cG, d, bB(ch, cf, FLOOR), CEILING)
350+ let cN = if ((cL > cG))
351+ then $Tuple2(cM, cG)
352+ else $Tuple2(cF, cL)
353+ let cO = cN._1
354+ let cP = cN._2
355+ let bQ = fraction(cl, cP, ch, FLOOR)
356+ $Tuple5(G(bQ, b), G(cO, bN), G(cP, bO), ci, cJ)
354357 }
355358 }
356- let cO = cG._1
357- let cP = cG._2
358- let cQ = cG._3
359- let ch = G(cG._4, b)
360- let cR = G(cG._5, b)
361- if ((0 >= cO))
359+ let cQ = cI._1
360+ let cR = cI._2
361+ let cS = cI._3
362+ let cj = G(cI._4, b)
363+ let cT = G(cI._5, b)
364+ if ((0 >= cQ))
362365 then throw("Invalid calculations. LP calculated is less than zero.")
363366 else {
364- let cS = if (!(cw))
367+ let cU = if (!(cy))
365368 then 0
366- else cO
367- let cT = (cr - cP)
368- let cU = (ct - cQ)
369- let cV = [IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch), StringEntry(W(X, bU), bh(cP, cQ, cS, ch, cq, cR, height, lastBlock.timestamp, cT, cU))]
370- $Tuple13(cO, cS, ch, cc, ce, cb, bX, ca, cV, cT, cU, cs, cu)
369+ else cQ
370+ let cV = (ct - cR)
371+ let cW = (cv - cS)
372+ let cX = [IntegerEntry(S(), cj), IntegerEntry(T(height, lastBlock.timestamp), cj), StringEntry(W(X, bW), bh(cR, cS, cU, cj, cs, cT, height, lastBlock.timestamp, cV, cW))]
373+ $Tuple13(cQ, cU, cj, ce, cg, cd, bZ, cc, cX, cV, cW, cu, cw)
371374 }
372375 }
373376 }
374377
375378
376-func cW (cX,cY,cb) = {
377- let cZ = fraction(pow((cX * cY), 0, toBigInt(5), 1, 18, DOWN), g, cb)
378- if ((cb == f))
379+func cY (cZ,da,cd) = {
380+ let db = fraction(pow((cZ * da), 0, toBigInt(5), 1, 18, DOWN), g, cd)
381+ if ((cd == f))
379382 then f
380- else cZ
383+ else db
381384 }
382385
383386
384-func da (db,dc,dd) = {
385- let de = (toBigInt(bw(aS(ba))) - db)
386- let df = (toBigInt(bw(aS(bb))) - dc)
387- let dg = (toBigInt(value(assetInfo(aZ)).quantity) - dd)
388- let dh = cW(de, df, dg)
389- dh
387+func dc (dd,de,df) = {
388+ let dg = (toBigInt(bw(aS(ba))) - dd)
389+ let dh = (toBigInt(bw(aS(bb))) - de)
390+ let di = (toBigInt(value(assetInfo(aZ)).quantity) - df)
391+ let dj = cY(dg, dh, di)
392+ dj
390393 }
391394
392395
393-func di (dj,dk,dd) = {
394- let de = (bw(aS(ba)) + dj)
395- let df = (bw(aS(bb)) + dk)
396- let dg = (value(assetInfo(aZ)).quantity + dd)
397- let cZ = cW(toBigInt(de), toBigInt(df), toBigInt(dg))
398- let dl = [IntegerEntry(ag, height), StringEntry(af, toString(cZ))]
399- $Tuple2(dl, cZ)
396+func dk (dl,dm,df) = {
397+ let dg = (bw(aS(ba)) + dl)
398+ let dh = (bw(aS(bb)) + dm)
399+ let di = (value(assetInfo(aZ)).quantity + df)
400+ let db = cY(toBigInt(dg), toBigInt(dh), toBigInt(di))
401+ let dn = [IntegerEntry(ag, height), StringEntry(af, toString(db))]
402+ $Tuple2(dn, db)
400403 }
401404
402405
403-func dm (dn,cZ) = if ((cZ >= dn))
406+func do (dp,db) = if ((db >= dp))
404407 then true
405- else aG(makeString(["updated KLp lower than current KLp", toString(dn), toString(cZ)], " "))
408+ else aG(makeString(["updated KLp lower than current KLp", toString(dp), toString(db)], " "))
406409
407410
408-func do (dp) = {
409- let dq = dp.amount
410- let dr = fraction(dp.amount, dp.price, b, FLOOR)
411- let ds = if ((dp.orderType == Buy))
412- then $Tuple2(dq, -(dr))
413- else $Tuple2(-(dq), dr)
414- let dj = ds._1
415- let dk = ds._2
411+func dq (dr) = {
412+ let ds = dr.amount
413+ let dt = fraction(dr.amount, dr.price, b, FLOOR)
414+ let du = if ((dr.orderType == Buy))
415+ then $Tuple2(ds, -(dt))
416+ else $Tuple2(-(ds), dt)
417+ let dl = du._1
418+ let dm = du._2
416419 if (if (if (aL())
417420 then true
418421 else (aY == m))
419422 then true
420423 else (aY == n))
421424 then throw("Exchange operations disabled")
422- else if (if ((dp.assetPair.amountAsset != ba))
425+ else if (if ((dr.assetPair.amountAsset != ba))
423426 then true
424- else (dp.assetPair.priceAsset != bb))
427+ else (dr.assetPair.priceAsset != bb))
425428 then throw("Wrong order assets.")
426429 else {
427- let dt = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, af), aI("kLp is required"))), aI("invalid kLp"))
428- let du = di(dj, dk, 0)
429- let dv = du._1
430- let dw = du._2
431- let dx = (dw >= dt)
432- dx
430+ let dv = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, af), aI("kLp is required"))), aI("invalid kLp"))
431+ let dw = dk(dl, dm, 0)
432+ let dx = dw._1
433+ let dy = dw._2
434+ let dz = (dy >= dv)
435+ dz
433436 }
434437 }
435438
436439
437-func dy (dz) = if ((size(dz.payments) != 1))
440+func dA (dB) = if ((size(dB.payments) != 1))
438441 then throw("exactly 1 payment is expected")
439442 else {
440- let dA = value(dz.payments[0])
441- let bV = value(dA.assetId)
442- let dB = dA.amount
443- let cG = bT(toBase58String(dz.transactionId), toBase58String(bV), dB, dz.caller)
444- let cm = cG._1
445- let cn = cG._2
446- let ca = parseIntValue(cG._9)
447- let co = cG._10
443+ let dC = value(dB.payments[0])
444+ let bX = value(dC.assetId)
445+ let dD = dC.amount
446+ let cI = bV(toBase58String(dB.transactionId), toBase58String(bX), dD, dB.caller)
447+ let co = cI._1
448+ let cp = cI._2
449+ let cc = parseIntValue(cI._9)
450+ let cq = cI._10
448451 if (if (aL())
449452 then true
450- else (ca == n))
451- then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
452- else $Tuple5(cm, cn, dB, bV, co)
453+ else (cc == n))
454+ then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
455+ else $Tuple5(co, cp, dD, bX, cq)
453456 }
454457
455458
456-func dC (dz,cq,cw) = if ((size(dz.payments) != 2))
459+func dE (dB,cs,cy) = if ((size(dB.payments) != 2))
457460 then throw("exactly 2 payments are expected")
458461 else {
459- let dD = value(dz.payments[0])
460- let dE = value(dz.payments[1])
461- let dF = cp(toBase58String(dz.transactionId), cq, dD.amount, dD.assetId, dE.amount, dE.assetId, toString(dz.caller), false, cw)
462- let ca = parseIntValue(dF._8)
462+ let dF = value(dB.payments[0])
463+ let dG = value(dB.payments[1])
464+ let dH = cr(toBase58String(dB.transactionId), cs, dF.amount, dF.assetId, dG.amount, dG.assetId, toString(dB.caller), false, cy)
465+ let cc = parseIntValue(dH._8)
463466 if (if (if (aL())
464467 then true
465- else (ca == l))
468+ else (cc == l))
466469 then true
467- else (ca == n))
468- then throw(("Put operation is blocked by admin. Status = " + toString(ca)))
469- else dF
470+ else (cc == n))
471+ then throw(("Put operation is blocked by admin. Status = " + toString(cc)))
472+ else dH
470473 }
471474
472475
473-func dG (dH) = {
474- let dI = invoke(aJ, "emit", [dH], nil)
475- if ((dI == dI))
476+func dI (dJ) = {
477+ let dK = invoke(aJ, "emit", [dJ], nil)
478+ if ((dK == dK))
476479 then {
477- let dJ = {
478- let dK = dI
479- if ($isInstanceOf(dK, "Address"))
480+ let dL = {
481+ let dM = dK
482+ if ($isInstanceOf(dM, "Address"))
480483 then {
481- let dL = dK
482- invoke(dL, "emit", [dH], nil)
484+ let dN = dM
485+ invoke(dN, "emit", [dJ], nil)
483486 }
484487 else unit
485488 }
486- if ((dJ == dJ))
487- then dH
489+ if ((dL == dL))
490+ then dJ
488491 else throw("Strict value is not equal to itself.")
489492 }
490493 else throw("Strict value is not equal to itself.")
491494 }
492495
493496
494-func dM (dH) = {
495- let dN = fraction(dH, ae, b)
496- $Tuple2((dH - dN), dN)
497+func dO (dJ) = {
498+ let dP = fraction(dJ, ae, b)
499+ $Tuple2((dJ - dP), dP)
497500 }
498501
499502
500-func dO (dP,dQ,X,Y) = {
501- let dR = (Y == unit)
502- let dS = bw(aS(ba))
503- let dT = bw(aS(bb))
504- let dU = if ((dQ == ba))
503+func dQ (dR,dS,X,Y) = {
504+ let dT = (Y == unit)
505+ let dU = bw(aS(ba))
506+ let dV = bw(aS(bb))
507+ let dW = if ((dS == ba))
505508 then true
506- else if ((dQ == bb))
509+ else if ((dS == bb))
507510 then false
508511 else aG("invalid asset")
509- let dV = if (dR)
510- then $Tuple2(dS, dT)
511- else if (dU)
512- then $Tuple2((dS - dP), dT)
513- else $Tuple2(dS, (dT - dP))
514- let dW = dV._1
515- let dX = dV._2
516- let dY = if (dU)
517- then $Tuple2(dP, 0)
518- else $Tuple2(0, dP)
519- let dZ = dY._1
520- let ea = dY._2
521- let dq = dM(dZ)._1
522- let dr = dM(ea)._1
523- let eb = dM(dP)
524- let ec = eb._1
525- let dN = eb._2
526- let ed = (dW + dq)
527- let ee = (dX + dr)
528- let ef = by(D(ee, bd), D(ed, bc))
529- let eg = G(ef, b)
530- let eh = if (dU)
531- then dW
532- else dX
533- let ei = toBigInt(eh)
534- let ej = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
535- let ek = if ((ej > f))
512+ let dX = if (dT)
513+ then $Tuple2(dU, dV)
514+ else if (dW)
515+ then $Tuple2((dU - dR), dV)
516+ else $Tuple2(dU, (dV - dR))
517+ let dY = dX._1
518+ let dZ = dX._2
519+ let ea = if (dW)
520+ then $Tuple2(dR, 0)
521+ else $Tuple2(0, dR)
522+ let eb = ea._1
523+ let ec = ea._2
524+ let ds = dO(eb)._1
525+ let dt = dO(ec)._1
526+ let ed = dO(dR)
527+ let ee = ed._1
528+ let dP = ed._2
529+ let ef = (dY + ds)
530+ let eg = (dZ + dt)
531+ let eh = by(D(eg, bd), D(ef, bc))
532+ let ei = G(eh, b)
533+ let ej = if (dW)
534+ then dY
535+ else dZ
536+ let ek = toBigInt(ej)
537+ let el = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
538+ let em = if ((el > f))
536539 then true
537540 else aG("initial deposit requires all coins")
538- if ((ek == ek))
541+ if ((em == em))
539542 then {
540- let el = toBigInt(ec)
541- let em = max([0, toInt(((ej * (sqrtBigInt((d + ((el * d) / ei)), 18, 18, DOWN) - d)) / d))])
542- let cV = if (dR)
543+ let en = toBigInt(ee)
544+ let eo = max([0, toInt(((el * (sqrtBigInt((d + ((en * d) / ek)), 18, 18, DOWN) - d)) / d))])
545+ let cX = if (dT)
543546 then nil
544- else [IntegerEntry(S(), eg), IntegerEntry(T(height, lastBlock.timestamp), eg), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(dZ, ea, em, eg, 0, 0, height, lastBlock.timestamp, 0, 0))]
545- let en = by(D(dX, bd), D(dW, bc))
546- let eo = G(en, b)
547- let ep = {
548- let eq = if (dU)
549- then $Tuple2(dZ, dW)
550- else $Tuple2(ea, dX)
551- let dH = eq._1
552- let er = eq._2
553- let es = toInt(fraction(ej, toBigInt((dH / 2)), toBigInt(er)))
554- fraction((em - es), b, es)
547+ else [IntegerEntry(S(), ei), IntegerEntry(T(height, lastBlock.timestamp), ei), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(eb, ec, eo, ei, 0, 0, height, lastBlock.timestamp, 0, 0))]
548+ let ep = by(D(dZ, bd), D(dY, bc))
549+ let eq = G(ep, b)
550+ let er = {
551+ let es = if (dW)
552+ then $Tuple2(eb, dY)
553+ else $Tuple2(ec, dZ)
554+ let dJ = es._1
555+ let et = es._2
556+ let eu = toInt(fraction(el, toBigInt((dJ / 2)), toBigInt(et)))
557+ fraction((eo - eu), b, eu)
555558 }
556- $Tuple5(em, cV, dN, ep, dU)
559+ $Tuple5(eo, cX, dP, er, dW)
557560 }
558561 else throw("Strict value is not equal to itself.")
559562 }
560563
561564
562-func et (eu,ec,dQ,X,Y) = {
563- let dR = (Y == unit)
564- let ev = [if ((dQ == aZ))
565+func ev (ew,ee,dS,X,Y) = {
566+ let dT = (Y == unit)
567+ let ex = [if ((dS == aZ))
565568 then true
566569 else aG("invalid lp asset")]
567- if ((ev == ev))
570+ if ((ex == ex))
568571 then {
569- let ew = if ((eu == ba))
572+ let ey = if ((ew == ba))
570573 then true
571- else if ((eu == bb))
574+ else if ((ew == bb))
572575 then false
573576 else aG("invalid asset")
574- let ex = if (ew)
577+ let ez = if (ey)
575578 then toBigInt(bw(aS(ba)))
576579 else toBigInt(bw(aS(bb)))
577- let ey = bw(aS(ba))
578- let ez = bw(aS(bb))
579- let eA = if (ew)
580- then ey
581- else ez
582- let eB = toBigInt(eA)
583- let ej = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
584- let eC = toBigInt(ec)
585- let eD = max([0, toInt(((ex * (d - pow((d - ((eC * d) / ej)), 18, h, 0, 18, DOWN))) / d))])
586- let eE = dM(eD)
587- let eF = eE._1
588- let dN = eE._2
589- let eG = if (ew)
590- then $Tuple4(eF, 0, (ey - eD), ez)
591- else $Tuple4(0, eF, ey, (ez - eD))
580+ let eA = bw(aS(ba))
581+ let eB = bw(aS(bb))
582+ let eC = if (ey)
583+ then eA
584+ else eB
585+ let eD = toBigInt(eC)
586+ let el = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
587+ let eE = toBigInt(ee)
588+ let eF = max([0, toInt(((ez * (d - pow((d - ((eE * d) / el)), 18, h, 0, 18, DOWN))) / d))])
589+ let eG = dO(eF)
592590 let eH = eG._1
593- let eI = eG._2
594- let eJ = eG._3
595- let eK = eG._4
596- let ef = by(D(eK, bd), D(eJ, bc))
597- let eg = G(ef, b)
598- let cV = if (dR)
591+ let dP = eG._2
592+ let eI = if (ey)
593+ then $Tuple4(eH, 0, (eA - eF), eB)
594+ else $Tuple4(0, eH, eA, (eB - eF))
595+ let eJ = eI._1
596+ let eK = eI._2
597+ let eL = eI._3
598+ let eM = eI._4
599+ let eh = by(D(eM, bd), D(eL, bc))
600+ let ei = G(eh, b)
601+ let cX = if (dT)
599602 then nil
600- else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(eH, eI, ec, eg, height, lastBlock.timestamp)), IntegerEntry(S(), eg), IntegerEntry(T(height, lastBlock.timestamp), eg)]
601- let en = by(D(ez, bd), D(ey, bc))
602- let eo = G(en, b)
603- let ep = {
604- let eL = (toInt(fraction(ex, eC, ej)) * 2)
605- fraction((eF - eL), b, eL)
603+ else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(eJ, eK, ee, ei, height, lastBlock.timestamp)), IntegerEntry(S(), ei), IntegerEntry(T(height, lastBlock.timestamp), ei)]
604+ let ep = by(D(eB, bd), D(eA, bc))
605+ let eq = G(ep, b)
606+ let er = {
607+ let eN = (toInt(fraction(ez, eE, el)) * 2)
608+ fraction((eH - eN), b, eN)
606609 }
607- $Tuple5(eF, cV, dN, ep, ew)
610+ $Tuple5(eH, cX, dP, er, ey)
608611 }
609612 else throw("Strict value is not equal to itself.")
610613 }
611614
612615
613-func eM () = {
614- let dK = getString(Q())
615- if ($isInstanceOf(dK, "String"))
616+func eO () = {
617+ let dM = getString(Q())
618+ if ($isInstanceOf(dM, "String"))
616619 then {
617- let eN = dK
618- fromBase58String(eN)
620+ let eP = dM
621+ fromBase58String(eP)
619622 }
620- else if ($isInstanceOf(dK, "Unit"))
623+ else if ($isInstanceOf(dM, "Unit"))
621624 then unit
622625 else throw("Match error")
623626 }
624627
625628
626-func eO () = {
627- let dK = getString(R())
628- if ($isInstanceOf(dK, "String"))
629+func eQ () = {
630+ let dM = getString(R())
631+ if ($isInstanceOf(dM, "String"))
629632 then {
630- let eN = dK
631- fromBase58String(eN)
633+ let eP = dM
634+ fromBase58String(eP)
632635 }
633- else if ($isInstanceOf(dK, "Unit"))
636+ else if ($isInstanceOf(dM, "Unit"))
634637 then unit
635638 else throw("Match error")
636639 }
637640
638641
639-func eP (dz) = {
640- let dK = eM()
641- if ($isInstanceOf(dK, "ByteVector"))
642+func eR (dB) = {
643+ let dM = eO()
644+ if ($isInstanceOf(dM, "ByteVector"))
642645 then {
643- let eQ = dK
644- (dz.callerPublicKey == eQ)
646+ let eS = dM
647+ (dB.callerPublicKey == eS)
645648 }
646- else if ($isInstanceOf(dK, "Unit"))
647- then (dz.caller == this)
649+ else if ($isInstanceOf(dM, "Unit"))
650+ then (dB.caller == this)
648651 else throw("Match error")
649652 }
650653
651654
652-func eR (dz) = {
653- let eS = throw("Permission denied")
654- let dK = eM()
655- if ($isInstanceOf(dK, "ByteVector"))
655+func eT (dB) = {
656+ let eU = throw("Permission denied")
657+ let dM = eO()
658+ if ($isInstanceOf(dM, "ByteVector"))
656659 then {
657- let eQ = dK
658- if ((dz.callerPublicKey == eQ))
660+ let eS = dM
661+ if ((dB.callerPublicKey == eS))
659662 then true
660- else eS
663+ else eU
661664 }
662- else if ($isInstanceOf(dK, "Unit"))
663- then if ((dz.caller == this))
665+ else if ($isInstanceOf(dM, "Unit"))
666+ then if ((dB.caller == this))
664667 then true
665- else eS
668+ else eU
666669 else throw("Match error")
667670 }
668671
669672
670-@Callable(dz)
671-func setManager (eT) = {
672- let eU = eR(dz)
673- if ((eU == eU))
673+@Callable(dB)
674+func setManager (eV) = {
675+ let eW = eT(dB)
676+ if ((eW == eW))
674677 then {
675- let eV = fromBase58String(eT)
676- if ((eV == eV))
677- then [StringEntry(R(), eT)]
678+ let eX = fromBase58String(eV)
679+ if ((eX == eX))
680+ then [StringEntry(R(), eV)]
678681 else throw("Strict value is not equal to itself.")
679682 }
680683 else throw("Strict value is not equal to itself.")
682685
683686
684687
685-@Callable(dz)
688+@Callable(dB)
686689 func confirmManager () = {
687- let eW = eO()
688- let eX = if (isDefined(eW))
690+ let eY = eQ()
691+ let eZ = if (isDefined(eY))
689692 then true
690693 else throw("No pending manager")
691- if ((eX == eX))
694+ if ((eZ == eZ))
692695 then {
693- let eY = if ((dz.callerPublicKey == value(eW)))
696+ let fa = if ((dB.callerPublicKey == value(eY)))
694697 then true
695698 else throw("You are not pending manager")
696- if ((eY == eY))
697- then [StringEntry(Q(), toBase58String(value(eW))), DeleteEntry(R())]
699+ if ((fa == fa))
700+ then [StringEntry(Q(), toBase58String(value(eY))), DeleteEntry(R())]
698701 else throw("Strict value is not equal to itself.")
699702 }
700703 else throw("Strict value is not equal to itself.")
702705
703706
704707
705-@Callable(dz)
706-func put (cq,eZ) = if ((0 > cq))
708+@Callable(dB)
709+func put (cs,fb) = if ((0 > cs))
707710 then throw("Invalid slippageTolerance passed")
708711 else {
709- let dF = dC(dz, cq, true)
710- let cS = dF._2
711- let bX = dF._7
712- let co = dF._9
713- let cT = dF._10
714- let cU = dF._11
715- let fa = dF._12
716- let fb = dF._13
717- let dD = toBigInt(value(dz.payments[0]).amount)
718- let dE = toBigInt(value(dz.payments[1]).amount)
719- let dh = da(dD, dE, toBigInt(0))
720- if ((dh == dh))
712+ let dH = dE(dB, cs, true)
713+ let cU = dH._2
714+ let bZ = dH._7
715+ let cq = dH._9
716+ let cV = dH._10
717+ let cW = dH._11
718+ let fc = dH._12
719+ let fd = dH._13
720+ let dF = toBigInt(value(dB.payments[0]).amount)
721+ let dG = toBigInt(value(dB.payments[1]).amount)
722+ let dj = dc(dF, dG, toBigInt(0))
723+ if ((dj == dj))
721724 then {
722- let dI = invoke(aJ, "emit", [cS], nil)
723- if ((dI == dI))
725+ let dK = invoke(aJ, "emit", [cU], nil)
726+ if ((dK == dK))
724727 then {
725- let dJ = {
726- let dK = dI
727- if ($isInstanceOf(dK, "Address"))
728+ let dL = {
729+ let dM = dK
730+ if ($isInstanceOf(dM, "Address"))
728731 then {
729- let dL = dK
730- invoke(dL, "emit", [cS], nil)
732+ let dN = dM
733+ invoke(dN, "emit", [cU], nil)
731734 }
732735 else unit
733736 }
734- if ((dJ == dJ))
737+ if ((dL == dL))
735738 then {
736- let fc = if ((cT > 0))
737- then invoke(bg, "put", nil, [AttachedPayment(fa, cT)])
739+ let fe = if ((cV > 0))
740+ then invoke(bg, "put", nil, [AttachedPayment(fc, cV)])
738741 else nil
739- if ((fc == fc))
742+ if ((fe == fe))
740743 then {
741- let fd = if ((cU > 0))
742- then invoke(bg, "put", nil, [AttachedPayment(fb, cU)])
744+ let ff = if ((cW > 0))
745+ then invoke(bg, "put", nil, [AttachedPayment(fd, cW)])
743746 else nil
744- if ((fd == fd))
747+ if ((ff == ff))
745748 then {
746- let fe = if (eZ)
749+ let fg = if (fb)
747750 then {
748- let ff = invoke(bf, "stake", nil, [AttachedPayment(bX, cS)])
749- if ((ff == ff))
751+ let fh = invoke(bf, "stake", nil, [AttachedPayment(bZ, cU)])
752+ if ((fh == fh))
750753 then nil
751754 else throw("Strict value is not equal to itself.")
752755 }
753- else [ScriptTransfer(dz.caller, cS, bX)]
754- let fg = di(0, 0, 0)
755- if ((fg == fg))
756+ else [ScriptTransfer(dB.caller, cU, bZ)]
757+ let fi = dk(0, 0, 0)
758+ if ((fi == fi))
756759 then {
757- let cZ = fg._2
758- let fh = fg._1
759- let fi = dm(dh, cZ)
760- if ((fi == fi))
761- then ((co ++ fe) ++ fh)
760+ let db = fi._2
761+ let fj = fi._1
762+ let fk = do(dj, db)
763+ if ((fk == fk))
764+ then ((cq ++ fg) ++ fj)
762765 else throw("Strict value is not equal to itself.")
763766 }
764767 else throw("Strict value is not equal to itself.")
776779
777780
778781
779-@Callable(dz)
780-func putForFree (fj) = if ((0 > fj))
782+@Callable(dB)
783+func putForFree (fl) = if ((0 > fl))
781784 then throw("Invalid value passed")
782785 else {
783- let dF = dC(dz, fj, false)
784- let co = dF._9
785- let dD = toBigInt(value(dz.payments[0]).amount)
786- let dE = toBigInt(value(dz.payments[1]).amount)
787- let dh = da(dD, dE, toBigInt(0))
788- if ((dh == dh))
786+ let dH = dE(dB, fl, false)
787+ let cq = dH._9
788+ let dF = toBigInt(value(dB.payments[0]).amount)
789+ let dG = toBigInt(value(dB.payments[1]).amount)
790+ let dj = dc(dF, dG, toBigInt(0))
791+ if ((dj == dj))
789792 then {
790- let fk = di(0, 0, 0)
791- let fh = fk._1
792- let cZ = fk._2
793- let fi = dm(dh, cZ)
794- if ((fi == fi))
795- then (co ++ fh)
793+ let fm = dk(0, 0, 0)
794+ let fj = fm._1
795+ let db = fm._2
796+ let fk = do(dj, db)
797+ if ((fk == fk))
798+ then (cq ++ fj)
796799 else throw("Strict value is not equal to itself.")
797800 }
798801 else throw("Strict value is not equal to itself.")
800803
801804
802805
803-@Callable(dz)
804-func putOneTkn (fl,fm) = {
805- let fn = {
806- let fo = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
807- if ($isInstanceOf(fo, "Boolean"))
808- then fo
809- else throw(($getType(fo) + " couldn't be cast to Boolean"))
806+@Callable(dB)
807+func putOneTkn (fn,fo) = {
808+ let fp = {
809+ let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810+ if ($isInstanceOf(fq, "Boolean"))
811+ then fq
812+ else throw(($getType(fq) + " couldn't be cast to Boolean"))
810813 }
811- let fp = if (if (if (aL())
814+ let fr = if (if (if (aL())
812815 then true
813816 else (aY == l))
814817 then true
815818 else (aY == n))
816819 then true
817- else fn
818- let ev = [if (if (!(fp))
820+ else fp
821+ let ex = [if (if (!(fr))
819822 then true
820- else eP(dz))
823+ else eR(dB))
821824 then true
822- else aG("put operation is blocked by admin"), if ((size(dz.payments) == 1))
825+ else aG("put operation is blocked by admin"), if ((size(dB.payments) == 1))
823826 then true
824827 else aG("exactly 1 payment are expected")]
825- if ((ev == ev))
828+ if ((ex == ex))
826829 then {
827- let fq = dz.payments[0]
828- let dQ = fq.assetId
829- let dP = fq.amount
830- let dh = if ((dQ == ba))
831- then da(toBigInt(dP), toBigInt(0), toBigInt(0))
832- else if ((dQ == bb))
833- then da(toBigInt(0), toBigInt(dP), toBigInt(0))
830+ let fs = dB.payments[0]
831+ let dS = fs.assetId
832+ let dR = fs.amount
833+ let dj = if ((dS == ba))
834+ then dc(toBigInt(dR), toBigInt(0), toBigInt(0))
835+ else if ((dS == bb))
836+ then dc(toBigInt(0), toBigInt(dR), toBigInt(0))
834837 else aG("payment asset is not supported")
835- let X = dz.caller
836- let Y = dz.transactionId
837- let fr = dO(dP, dQ, X, Y)
838- if ((fr == fr))
838+ let X = dB.caller
839+ let Y = dB.transactionId
840+ let ft = dQ(dR, dS, X, Y)
841+ if ((ft == ft))
839842 then {
840- let dU = fr._5
841- let fs = fr._4
842- let dN = fr._3
843- let cV = fr._2
844- let ft = fr._1
845- let fu = if (if ((fl > 0))
846- then (fl > ft)
843+ let dW = ft._5
844+ let fu = ft._4
845+ let dP = ft._3
846+ let cX = ft._2
847+ let fv = ft._1
848+ let fw = if (if ((fn > 0))
849+ then (fn > fv)
847850 else false)
848- then aG(makeString(["amount to receive is less than ", toString(fl)], ""))
849- else ft
850- let dI = dG(fu)
851- if ((dI == dI))
851+ then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
852+ else fv
853+ let dK = dI(fw)
854+ if ((dK == dK))
852855 then {
853- let fe = if (fm)
856+ let fg = if (fo)
854857 then {
855- let fv = invoke(bf, "stake", nil, [AttachedPayment(aZ, fu)])
856- if ((fv == fv))
858+ let fx = invoke(bf, "stake", nil, [AttachedPayment(aZ, fw)])
859+ if ((fx == fx))
857860 then nil
858861 else throw("Strict value is not equal to itself.")
859862 }
860- else [ScriptTransfer(dz.caller, fu, aZ)]
861- let fw = if ((dN > 0))
862- then [ScriptTransfer(aK, dN, dQ)]
863+ else [ScriptTransfer(dB.caller, fw, aZ)]
864+ let fy = if ((dP > 0))
865+ then [ScriptTransfer(aK, dP, dS)]
863866 else nil
864- let fx = if ((this == aK))
867+ let fz = if ((this == aK))
865868 then $Tuple2(0, 0)
866- else if (dU)
867- then $Tuple2(-(dN), 0)
868- else $Tuple2(0, -(dN))
869- let dj = fx._1
870- let dk = fx._2
871- let fy = di(dj, dk, 0)
872- let fh = fy._1
873- let cZ = fy._2
874- let dt = value(getString(af))
875- let fi = dm(dh, cZ)
876- if ((fi == fi))
877- then $Tuple2((((cV ++ fe) ++ fw) ++ fh), fu)
869+ else if (dW)
870+ then $Tuple2(-(dP), 0)
871+ else $Tuple2(0, -(dP))
872+ let dl = fz._1
873+ let dm = fz._2
874+ let fA = dk(dl, dm, 0)
875+ let fj = fA._1
876+ let db = fA._2
877+ let dv = value(getString(af))
878+ let fk = do(dj, db)
879+ if ((fk == fk))
880+ then $Tuple2((((cX ++ fg) ++ fy) ++ fj), fw)
878881 else throw("Strict value is not equal to itself.")
879882 }
880883 else throw("Strict value is not equal to itself.")
886889
887890
888891
889-@Callable(dz)
890-func putOneTknREADONLY (dQ,dP) = {
891- let fz = dO(dP, aQ(dQ), unit, unit)
892- let ft = fz._1
893- let cV = fz._2
894- let dN = fz._3
895- let fs = fz._4
896- let dU = fz._5
897- $Tuple2(nil, $Tuple3(ft, dN, fs))
892+@Callable(dB)
893+func putOneTknREADONLY (dS,dR) = {
894+ let fB = dQ(dR, aQ(dS), unit, unit)
895+ let fv = fB._1
896+ let cX = fB._2
897+ let dP = fB._3
898+ let fu = fB._4
899+ let dW = fB._5
900+ $Tuple2(nil, $Tuple3(fv, dP, fu))
898901 }
899902
900903
901904
902-@Callable(dz)
903-func getOneTkn (fA,fl) = {
904- let fn = {
905- let fo = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
906- if ($isInstanceOf(fo, "Boolean"))
907- then fo
908- else throw(($getType(fo) + " couldn't be cast to Boolean"))
905+@Callable(dB)
906+func getOneTkn (fC,fn) = {
907+ let fp = {
908+ let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
909+ if ($isInstanceOf(fq, "Boolean"))
910+ then fq
911+ else throw(($getType(fq) + " couldn't be cast to Boolean"))
909912 }
910- let fB = if (if (aL())
913+ let fD = if (if (aL())
911914 then true
912915 else (aY == n))
913916 then true
914- else fn
915- let ev = [if (if (!(fB))
917+ else fp
918+ let ex = [if (if (!(fD))
916919 then true
917- else eP(dz))
920+ else eR(dB))
918921 then true
919- else aG("get operation is blocked by admin"), if ((size(dz.payments) == 1))
922+ else aG("get operation is blocked by admin"), if ((size(dB.payments) == 1))
920923 then true
921924 else aG("exactly 1 payment are expected")]
922- if ((ev == ev))
925+ if ((ex == ex))
923926 then {
924- let eu = aQ(fA)
925- let fq = dz.payments[0]
926- let dQ = fq.assetId
927- let ec = fq.amount
928- let dh = da(toBigInt(0), toBigInt(0), toBigInt(ec))
929- let X = dz.caller
930- let Y = dz.transactionId
931- let fC = et(eu, ec, dQ, X, Y)
932- if ((fC == fC))
927+ let ew = aQ(fC)
928+ let fs = dB.payments[0]
929+ let dS = fs.assetId
930+ let ee = fs.amount
931+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(ee))
932+ let X = dB.caller
933+ let Y = dB.transactionId
934+ let fE = ev(ew, ee, dS, X, Y)
935+ if ((fE == fE))
933936 then {
934- let ew = fC._5
935- let fs = fC._4
936- let dN = fC._3
937- let cV = fC._2
938- let fD = fC._1
939- let dH = if (if ((fl > 0))
940- then (fl > fD)
937+ let ey = fE._5
938+ let fu = fE._4
939+ let dP = fE._3
940+ let cX = fE._2
941+ let fF = fE._1
942+ let dJ = if (if ((fn > 0))
943+ then (fn > fF)
941944 else false)
942- then aG(makeString(["amount to receive is less than ", toString(fl)], ""))
943- else fD
944- let fE = invoke(aJ, "burn", [ec], [AttachedPayment(dQ, ec)])
945- if ((fE == fE))
945+ then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
946+ else fF
947+ let fG = invoke(aJ, "burn", [ee], [AttachedPayment(dS, ee)])
948+ if ((fG == fG))
946949 then {
947- let fF = [ScriptTransfer(X, dH, eu)]
948- let fw = if ((dN > 0))
949- then [ScriptTransfer(aK, dN, eu)]
950+ let fH = [ScriptTransfer(X, dJ, ew)]
951+ let fy = if ((dP > 0))
952+ then [ScriptTransfer(aK, dP, ew)]
950953 else nil
951- let fG = {
952- let fH = if ((this == aK))
954+ let fI = {
955+ let fJ = if ((this == aK))
953956 then 0
954- else dN
955- if (ew)
956- then $Tuple2(-((dH + fH)), 0)
957- else $Tuple2(0, -((dH + fH)))
957+ else dP
958+ if (ey)
959+ then $Tuple2(-((dJ + fJ)), 0)
960+ else $Tuple2(0, -((dJ + fJ)))
958961 }
959- let dj = fG._1
960- let dk = fG._2
961- let fI = di(dj, dk, 0)
962- let fh = fI._1
963- let cZ = fI._2
964- let fi = dm(dh, cZ)
965- if ((fi == fi))
966- then $Tuple2((((cV ++ fF) ++ fw) ++ fh), dH)
962+ let dl = fI._1
963+ let dm = fI._2
964+ let fK = dk(dl, dm, 0)
965+ let fj = fK._1
966+ let db = fK._2
967+ let fk = do(dj, db)
968+ if ((fk == fk))
969+ then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
967970 else throw("Strict value is not equal to itself.")
968971 }
969972 else throw("Strict value is not equal to itself.")
975978
976979
977980
978-@Callable(dz)
979-func getOneTknREADONLY (eu,ec) = {
980- let fJ = et(aQ(eu), ec, aZ, unit, unit)
981- let fD = fJ._1
982- let cV = fJ._2
983- let dN = fJ._3
984- let fs = fJ._4
985- let ew = fJ._5
986- $Tuple2(nil, $Tuple3(fD, dN, fs))
981+@Callable(dB)
982+func getOneTknREADONLY (ew,ee) = {
983+ let fL = ev(aQ(ew), ee, aZ, unit, unit)
984+ let fF = fL._1
985+ let cX = fL._2
986+ let dP = fL._3
987+ let fu = fL._4
988+ let ey = fL._5
989+ $Tuple2(nil, $Tuple3(fF, dP, fu))
987990 }
988991
989992
990993
991-@Callable(dz)
992-func unstakeAndGetOneTkn (fK,fA,fl) = {
993- let fn = {
994- let fo = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
995- if ($isInstanceOf(fo, "Boolean"))
996- then fo
997- else throw(($getType(fo) + " couldn't be cast to Boolean"))
994+@Callable(dB)
995+func unstakeAndGetOneTkn (fM,fC,fn) = {
996+ let fp = {
997+ let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
998+ if ($isInstanceOf(fq, "Boolean"))
999+ then fq
1000+ else throw(($getType(fq) + " couldn't be cast to Boolean"))
9981001 }
999- let fB = if (if (aL())
1002+ let fD = if (if (aL())
10001003 then true
10011004 else (aY == n))
10021005 then true
1003- else fn
1004- let ev = [if (if (!(fB))
1006+ else fp
1007+ let ex = [if (if (!(fD))
10051008 then true
1006- else eP(dz))
1009+ else eR(dB))
10071010 then true
1008- else aG("get operation is blocked by admin"), if ((size(dz.payments) == 0))
1011+ else aG("get operation is blocked by admin"), if ((size(dB.payments) == 0))
10091012 then true
10101013 else aG("no payments are expected")]
1011- if ((ev == ev))
1014+ if ((ex == ex))
10121015 then {
1013- let eu = aQ(fA)
1014- let X = dz.caller
1015- let Y = dz.transactionId
1016- let dh = da(toBigInt(0), toBigInt(0), toBigInt(0))
1017- let fL = invoke(bf, "unstake", [toBase58String(aZ), fK], nil)
1018- if ((fL == fL))
1016+ let ew = aQ(fC)
1017+ let X = dB.caller
1018+ let Y = dB.transactionId
1019+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1020+ let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1021+ if ((fN == fN))
10191022 then {
1020- let fM = et(eu, fK, aZ, X, Y)
1021- if ((fM == fM))
1023+ let fO = ev(ew, fM, aZ, X, Y)
1024+ if ((fO == fO))
10221025 then {
1023- let ew = fM._5
1024- let fs = fM._4
1025- let dN = fM._3
1026- let cV = fM._2
1027- let fD = fM._1
1028- let dH = if (if ((fl > 0))
1029- then (fl > fD)
1026+ let ey = fO._5
1027+ let fu = fO._4
1028+ let dP = fO._3
1029+ let cX = fO._2
1030+ let fF = fO._1
1031+ let dJ = if (if ((fn > 0))
1032+ then (fn > fF)
10301033 else false)
1031- then aG(makeString(["amount to receive is less than ", toString(fl)], ""))
1032- else fD
1033- let fE = invoke(aJ, "burn", [fK], [AttachedPayment(aZ, fK)])
1034- if ((fE == fE))
1034+ then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
1035+ else fF
1036+ let fG = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1037+ if ((fG == fG))
10351038 then {
1036- let fF = [ScriptTransfer(dz.caller, dH, eu)]
1037- let fw = if ((dN > 0))
1038- then [ScriptTransfer(aK, dN, eu)]
1039+ let fH = [ScriptTransfer(dB.caller, dJ, ew)]
1040+ let fy = if ((dP > 0))
1041+ then [ScriptTransfer(aK, dP, ew)]
10391042 else nil
1040- let fN = {
1041- let fH = if ((this == aK))
1043+ let fP = {
1044+ let fJ = if ((this == aK))
10421045 then 0
1043- else dN
1044- if (ew)
1045- then $Tuple2(-((dH + fH)), 0)
1046- else $Tuple2(0, -((dH + fH)))
1046+ else dP
1047+ if (ey)
1048+ then $Tuple2(-((dJ + fJ)), 0)
1049+ else $Tuple2(0, -((dJ + fJ)))
10471050 }
1048- let dj = fN._1
1049- let dk = fN._2
1050- let fO = di(dj, dk, 0)
1051- let fh = fO._1
1052- let cZ = fO._2
1053- let fi = dm(dh, cZ)
1054- if ((fi == fi))
1055- then $Tuple2((((cV ++ fF) ++ fw) ++ fh), dH)
1051+ let dl = fP._1
1052+ let dm = fP._2
1053+ let fQ = dk(dl, dm, 0)
1054+ let fj = fQ._1
1055+ let db = fQ._2
1056+ let fk = do(dj, db)
1057+ if ((fk == fk))
1058+ then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
10561059 else throw("Strict value is not equal to itself.")
10571060 }
10581061 else throw("Strict value is not equal to itself.")
10661069
10671070
10681071
1069-@Callable(dz)
1072+@Callable(dB)
10701073 func get () = {
1071- let cG = dy(dz)
1072- let fP = cG._1
1073- let cn = cG._2
1074- let dB = cG._3
1075- let bV = cG._4
1076- let co = cG._5
1077- let dh = da(toBigInt(0), toBigInt(0), toBigInt(dB))
1078- let fQ = invoke(aJ, "burn", [dB], [AttachedPayment(bV, dB)])
1079- if ((fQ == fQ))
1074+ let cI = dA(dB)
1075+ let fR = cI._1
1076+ let cp = cI._2
1077+ let dD = cI._3
1078+ let bX = cI._4
1079+ let cq = cI._5
1080+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1081+ let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1082+ if ((fS == fS))
10801083 then {
1081- let fR = di(-(fP), -(cn), 0)
1082- let fh = fR._1
1083- let cZ = fR._2
1084- let fi = dm(dh, cZ)
1085- if ((fi == fi))
1086- then (co ++ fh)
1084+ let fT = dk(-(fR), -(cp), 0)
1085+ let fj = fT._1
1086+ let db = fT._2
1087+ let fk = do(dj, db)
1088+ if ((fk == fk))
1089+ then (cq ++ fj)
10871090 else throw("Strict value is not equal to itself.")
10881091 }
10891092 else throw("Strict value is not equal to itself.")
10911094
10921095
10931096
1094-@Callable(dz)
1095-func getNoLess (fS,fT) = {
1096- let cG = dy(dz)
1097- let cm = cG._1
1098- let cn = cG._2
1099- let dB = cG._3
1100- let bV = cG._4
1101- let co = cG._5
1102- if ((fS > cm))
1103- then throw(((("noLessThenAmtAsset failed: " + toString(cm)) + " < ") + toString(fS)))
1104- else if ((fT > cn))
1105- then throw(((("noLessThenPriceAsset failed: " + toString(cn)) + " < ") + toString(fT)))
1097+@Callable(dB)
1098+func getNoLess (fU,fV) = {
1099+ let cI = dA(dB)
1100+ let co = cI._1
1101+ let cp = cI._2
1102+ let dD = cI._3
1103+ let bX = cI._4
1104+ let cq = cI._5
1105+ if ((fU > co))
1106+ then throw(((("noLessThenAmtAsset failed: " + toString(co)) + " < ") + toString(fU)))
1107+ else if ((fV > cp))
1108+ then throw(((("noLessThenPriceAsset failed: " + toString(cp)) + " < ") + toString(fV)))
11061109 else {
1107- let dh = da(toBigInt(0), toBigInt(0), toBigInt(dB))
1108- let fQ = invoke(aJ, "burn", [dB], [AttachedPayment(bV, dB)])
1109- if ((fQ == fQ))
1110+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1111+ let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1112+ if ((fS == fS))
11101113 then {
1111- let fU = di(-(cm), -(cn), 0)
1112- let fh = fU._1
1113- let cZ = fU._2
1114- let fi = dm(dh, cZ)
1115- if ((fi == fi))
1116- then (co ++ fh)
1114+ let fW = dk(-(co), -(cp), 0)
1115+ let fj = fW._1
1116+ let db = fW._2
1117+ let fk = do(dj, db)
1118+ if ((fk == fk))
1119+ then (cq ++ fj)
11171120 else throw("Strict value is not equal to itself.")
11181121 }
11191122 else throw("Strict value is not equal to itself.")
11221125
11231126
11241127
1125-@Callable(dz)
1126-func unstakeAndGet (dH) = {
1127- let fV = if ((size(dz.payments) != 0))
1128+@Callable(dB)
1129+func unstakeAndGet (dJ) = {
1130+ let fX = if ((size(dB.payments) != 0))
11281131 then throw("No payments are expected")
11291132 else true
1130- if ((fV == fV))
1133+ if ((fX == fX))
11311134 then {
1132- let bK = aN()
1133- let bX = fromBase58String(bK[q])
1134- let dh = da(toBigInt(0), toBigInt(0), toBigInt(0))
1135- let fL = invoke(bf, "unstake", [toBase58String(bX), dH], nil)
1136- if ((fL == fL))
1135+ let bM = aN()
1136+ let bZ = fromBase58String(bM[q])
1137+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1138+ let fN = invoke(bf, "unstake", [toBase58String(bZ), dJ], nil)
1139+ if ((fN == fN))
11371140 then {
1138- let cG = bT(toBase58String(dz.transactionId), toBase58String(bX), dH, dz.caller)
1139- let cm = cG._1
1140- let cn = cG._2
1141- let ca = parseIntValue(cG._9)
1142- let co = cG._10
1143- let fW = if (if (aL())
1141+ let cI = bV(toBase58String(dB.transactionId), toBase58String(bZ), dJ, dB.caller)
1142+ let co = cI._1
1143+ let cp = cI._2
1144+ let cc = parseIntValue(cI._9)
1145+ let cq = cI._10
1146+ let fY = if (if (aL())
11441147 then true
1145- else (ca == n))
1146- then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
1148+ else (cc == n))
1149+ then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
11471150 else true
1148- if ((fW == fW))
1151+ if ((fY == fY))
11491152 then {
1150- let fQ = invoke(aJ, "burn", [dH], [AttachedPayment(bX, dH)])
1151- if ((fQ == fQ))
1153+ let fS = invoke(aJ, "burn", [dJ], [AttachedPayment(bZ, dJ)])
1154+ if ((fS == fS))
11521155 then {
1153- let fX = di(-(cm), -(cn), 0)
1154- let fh = fX._1
1155- let cZ = fX._2
1156- let fi = dm(dh, cZ)
1157- if ((fi == fi))
1158- then (co ++ fh)
1156+ let fZ = dk(-(co), -(cp), 0)
1157+ let fj = fZ._1
1158+ let db = fZ._2
1159+ let fk = do(dj, db)
1160+ if ((fk == fk))
1161+ then (cq ++ fj)
11591162 else throw("Strict value is not equal to itself.")
11601163 }
11611164 else throw("Strict value is not equal to itself.")
11691172
11701173
11711174
1172-@Callable(dz)
1173-func unstakeAndGetNoLess (fK,fY,fT) = {
1174- let fB = if (aL())
1175+@Callable(dB)
1176+func unstakeAndGetNoLess (fM,ga,fV) = {
1177+ let fD = if (aL())
11751178 then true
11761179 else (aY == n)
1177- let ev = [if (!(fB))
1180+ let ex = [if (!(fD))
11781181 then true
1179- else throw("get operation is blocked by admin"), if ((size(dz.payments) == 0))
1182+ else throw("get operation is blocked by admin"), if ((size(dB.payments) == 0))
11801183 then true
11811184 else throw("no payments are expected")]
1182- if ((ev == ev))
1185+ if ((ex == ex))
11831186 then {
1184- let dh = da(toBigInt(0), toBigInt(0), toBigInt(0))
1185- let fL = invoke(bf, "unstake", [toBase58String(aZ), fK], nil)
1186- if ((fL == fL))
1187+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1188+ let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1189+ if ((fN == fN))
11871190 then {
1188- let cG = bT(toBase58String(dz.transactionId), toBase58String(aZ), fK, dz.caller)
1189- let cm = cG._1
1190- let cn = cG._2
1191- let co = cG._10
1192- let fZ = [if ((cm >= fY))
1191+ let cI = bV(toBase58String(dB.transactionId), toBase58String(aZ), fM, dB.caller)
1192+ let co = cI._1
1193+ let cp = cI._2
1194+ let cq = cI._10
1195+ let gb = [if ((co >= ga))
11931196 then true
1194- else throw(makeString(["amount asset amount to receive is less than ", toString(fY)], "")), if ((cn >= fT))
1197+ else throw(makeString(["amount asset amount to receive is less than ", toString(ga)], "")), if ((cp >= fV))
11951198 then true
1196- else throw(makeString(["price asset amount to receive is less than ", toString(fT)], ""))]
1197- if ((fZ == fZ))
1199+ else throw(makeString(["price asset amount to receive is less than ", toString(fV)], ""))]
1200+ if ((gb == gb))
11981201 then {
1199- let fQ = invoke(aJ, "burn", [fK], [AttachedPayment(aZ, fK)])
1200- if ((fQ == fQ))
1202+ let fS = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1203+ if ((fS == fS))
12011204 then {
1202- let ga = di(-(cm), -(cn), 0)
1203- let fh = ga._1
1204- let cZ = ga._2
1205- let fi = dm(dh, cZ)
1206- if ((fi == fi))
1207- then (co ++ fh)
1205+ let gc = dk(-(co), -(cp), 0)
1206+ let fj = gc._1
1207+ let db = gc._2
1208+ let fk = do(dj, db)
1209+ if ((fk == fk))
1210+ then (cq ++ fj)
12081211 else throw("Strict value is not equal to itself.")
12091212 }
12101213 else throw("Strict value is not equal to itself.")
12181221
12191222
12201223
1221-@Callable(dz)
1222-func activate (gb,gc) = if ((toString(dz.caller) != toString(aJ)))
1224+@Callable(dB)
1225+func activate (gd,ge) = if ((toString(dB.caller) != toString(aJ)))
12231226 then throw("permissions denied")
1224- else $Tuple2([StringEntry(aa(), gb), StringEntry(ab(), gc)], "success")
1227+ else $Tuple2([StringEntry(aa(), gd), StringEntry(ab(), ge)], "success")
12251228
12261229
12271230
1228-@Callable(dz)
1231+@Callable(dB)
12291232 func refreshKLp () = {
1230- let gd = valueOrElse(getInteger(ag), 0)
1231- let ge = if (((height - gd) >= aj))
1233+ let gf = valueOrElse(getInteger(ag), 0)
1234+ let gg = if (((height - gf) >= aj))
12321235 then unit
12331236 else aG(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1234- if ((ge == ge))
1237+ if ((gg == gg))
12351238 then {
1236- let dt = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aI("invalid kLp"))
1237- let gf = di(0, 0, 0)
1238- let gg = gf._1
1239- let cZ = gf._2
1240- let dl = if ((dt != cZ))
1241- then gg
1239+ let dv = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aI("invalid kLp"))
1240+ let gh = dk(0, 0, 0)
1241+ let gi = gh._1
1242+ let db = gh._2
1243+ let dn = if ((dv != db))
1244+ then gi
12421245 else aG("nothing to refresh")
1243- $Tuple2(dl, toString(cZ))
1246+ $Tuple2(dn, toString(db))
12441247 }
12451248 else throw("Strict value is not equal to itself.")
12461249 }
12471250
12481251
12491252
1250-@Callable(dz)
1253+@Callable(dB)
12511254 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aN())
12521255
12531256
12541257
1255-@Callable(dz)
1258+@Callable(dB)
12561259 func getAccBalanceWrapperREADONLY (bx) = $Tuple2(nil, bw(bx))
12571260
12581261
12591262
1260-@Callable(dz)
1261-func calcPricesWrapperREADONLY (bE,bF,bJ) = {
1262- let bS = bI(bE, bF, bJ)
1263- $Tuple2(nil, [toString(bS[0]), toString(bS[1]), toString(bS[2])])
1263+@Callable(dB)
1264+func calcPricesWrapperREADONLY (bG,bH,bL) = {
1265+ let bU = bK(bG, bH, bL)
1266+ $Tuple2(nil, [toString(bU[0]), toString(bU[1]), toString(bU[2])])
12641267 }
12651268
12661269
12671270
1268-@Callable(dz)
1271+@Callable(dB)
12691272 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
12701273
12711274
12721275
1273-@Callable(dz)
1276+@Callable(dB)
12741277 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
12751278
12761279
12771280
1278-@Callable(dz)
1281+@Callable(dB)
12791282 func calcPriceBigIntWrapperREADONLY (bz,bA) = $Tuple2(nil, toString(by(parseBigIntValue(bz), parseBigIntValue(bA))))
12801283
12811284
12821285
1283-@Callable(dz)
1284-func estimatePutOperationWrapperREADONLY (bU,cq,cr,cs,ct,cu,X,cv,cw) = $Tuple2(nil, cp(bU, cq, cr, cs, ct, cu, X, cv, cw))
1286+@Callable(dB)
1287+func estimatePutOperationWrapperREADONLY (bW,cs,ct,cu,cv,cw,X,cx,cy) = $Tuple2(nil, cr(bW, cs, ct, cu, cv, cw, X, cx, cy))
12851288
12861289
12871290
1288-@Callable(dz)
1289-func estimateGetOperationWrapperREADONLY (bU,bV,bW,X) = {
1290- let cG = bT(bU, bV, bW, addressFromStringValue(X))
1291- $Tuple2(nil, $Tuple10(cG._1, cG._2, cG._3, cG._4, cG._5, cG._6, cG._7, toString(cG._8), cG._9, cG._10))
1291+@Callable(dB)
1292+func estimateGetOperationWrapperREADONLY (bW,bX,bY,X) = {
1293+ let cI = bV(bW, bX, bY, addressFromStringValue(X))
1294+ $Tuple2(nil, $Tuple10(cI._1, cI._2, cI._3, cI._4, cI._5, cI._6, cI._7, toString(cI._8), cI._9, cI._10))
12921295 }
12931296
12941297
12951298
1296-@Callable(dz)
1299+@Callable(dB)
12971300 func statsREADONLY () = {
1298- let bK = aN()
1299- let bX = fromBase58String(bK[q])
1300- let gh = bK[r]
1301- let gi = bK[s]
1302- let cz = bK[v]
1303- let cA = bK[w]
1304- let bL = parseIntValue(bK[t])
1305- let bM = parseIntValue(bK[u])
1306- let gj = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1307- let gk = bw(gh)
1308- let gl = bw(gi)
1309- let gm = if ((gj == 0))
1301+ let bM = aN()
1302+ let bZ = fromBase58String(bM[q])
1303+ let gj = bM[r]
1304+ let gk = bM[s]
1305+ let cB = bM[v]
1306+ let cC = bM[w]
1307+ let bN = parseIntValue(bM[t])
1308+ let bO = parseIntValue(bM[u])
1309+ let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1310+ let gm = bw(gj)
1311+ let gn = bw(gk)
1312+ let go = if ((gl == 0))
13101313 then [e, e, e]
1311- else bI(gk, gl, gj)
1312- let ch = 0
1313- let gn = G(gm[1], b)
1314- let go = G(gm[2], b)
1315- let gp = value(getInteger(aJ, au(toString(this))))
1316- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gk), toString(gl), toString(gj), toString(ch), toString(gn), toString(go), toString(gp)], j))
1314+ else bK(gm, gn, gl)
1315+ let cj = 0
1316+ let gp = G(go[1], b)
1317+ let gq = G(go[2], b)
1318+ let gr = value(getInteger(aJ, au(toString(this))))
1319+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(cj), toString(gp), toString(gq), toString(gr)], j))
13171320 }
13181321
13191322
13201323
1321-@Callable(dz)
1322-func evaluatePutByAmountAssetREADONLY (cr) = {
1323- let bK = aN()
1324- let bX = fromBase58String(bK[q])
1325- let cx = bK[r]
1326- let bY = fromBase58String(cx)
1327- let cy = bK[s]
1328- let bZ = fromBase58String(cy)
1329- let bL = parseIntValue(bK[t])
1330- let bM = parseIntValue(bK[u])
1331- let ca = bK[p]
1332- let gj = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1333- let gk = bw(cx)
1334- let gl = bw(cy)
1335- let bG = D(gk, bL)
1336- let bH = D(gl, bM)
1337- let cg = if ((gj == 0))
1324+@Callable(dB)
1325+func evaluatePutByAmountAssetREADONLY (ct) = {
1326+ let bM = aN()
1327+ let bZ = fromBase58String(bM[q])
1328+ let cz = bM[r]
1329+ let ca = fromBase58String(cz)
1330+ let cA = bM[s]
1331+ let cb = fromBase58String(cA)
1332+ let bN = parseIntValue(bM[t])
1333+ let bO = parseIntValue(bM[u])
1334+ let cc = bM[p]
1335+ let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1336+ let gm = bw(cz)
1337+ let gn = bw(cA)
1338+ let bI = D(gm, bN)
1339+ let bJ = D(gn, bO)
1340+ let ci = if ((gl == 0))
13381341 then e
1339- else by(bH, bG)
1340- let cD = D(cr, bL)
1341- let cE = fraction(cD, cg, d)
1342- let ct = G(cE, bM)
1343- let dF = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1344- let cO = dF._1
1345- let gq = dF._3
1346- let cc = dF._4
1347- let ce = dF._5
1348- let cb = dF._6
1349- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
1342+ else by(bJ, bI)
1343+ let cF = D(ct, bN)
1344+ let cG = fraction(cF, ci, d)
1345+ let cv = G(cG, bO)
1346+ let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
1347+ let cQ = dH._1
1348+ let gs = dH._3
1349+ let ce = dH._4
1350+ let cg = dH._5
1351+ let cd = dH._6
1352+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cQ), toString(G(ci, b)), toString(ce), toString(cg), toString(cd), cc, toString(ct), toString(cv)], j))
13501353 }
13511354
13521355
13531356
1354-@Callable(dz)
1355-func evaluatePutByPriceAssetREADONLY (ct) = {
1356- let bK = aN()
1357- let bX = fromBase58String(bK[q])
1358- let cx = bK[r]
1359- let bY = fromBase58String(cx)
1360- let cy = bK[s]
1361- let bZ = fromBase58String(cy)
1362- let bL = parseIntValue(bK[t])
1363- let bM = parseIntValue(bK[u])
1364- let ca = bK[p]
1365- let gj = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1366- let gr = bw(cx)
1367- let gs = bw(cy)
1368- let gt = D(gr, bL)
1369- let gu = D(gs, bM)
1370- let cg = if ((gj == 0))
1357+@Callable(dB)
1358+func evaluatePutByPriceAssetREADONLY (cv) = {
1359+ let bM = aN()
1360+ let bZ = fromBase58String(bM[q])
1361+ let cz = bM[r]
1362+ let ca = fromBase58String(cz)
1363+ let cA = bM[s]
1364+ let cb = fromBase58String(cA)
1365+ let bN = parseIntValue(bM[t])
1366+ let bO = parseIntValue(bM[u])
1367+ let cc = bM[p]
1368+ let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1369+ let gt = bw(cz)
1370+ let gu = bw(cA)
1371+ let gv = D(gt, bN)
1372+ let gw = D(gu, bO)
1373+ let ci = if ((gl == 0))
13711374 then e
1372- else by(gu, gt)
1373- let cE = D(ct, bM)
1374- let cD = fraction(cE, d, cg)
1375- let cr = G(cD, bL)
1376- let dF = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1377- let cO = dF._1
1378- let gq = dF._3
1379- let cc = dF._4
1380- let ce = dF._5
1381- let cb = dF._6
1382- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
1375+ else by(gw, gv)
1376+ let cG = D(cv, bO)
1377+ let cF = fraction(cG, d, ci)
1378+ let ct = G(cF, bN)
1379+ let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
1380+ let cQ = dH._1
1381+ let gs = dH._3
1382+ let ce = dH._4
1383+ let cg = dH._5
1384+ let cd = dH._6
1385+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cQ), toString(G(ci, b)), toString(ce), toString(cg), toString(cd), cc, toString(ct), toString(cv)], j))
13831386 }
13841387
13851388
13861389
1387-@Callable(dz)
1388-func evaluateGetREADONLY (gv,gw) = {
1389- let cG = bT("", gv, gw, this)
1390- let cm = cG._1
1391- let cn = cG._2
1392- let cc = cG._5
1393- let ce = cG._6
1394- let cb = cG._7
1395- let ch = cG._8
1396- let ca = parseIntValue(cG._9)
1397- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cm), toString(cn), toString(cc), toString(ce), toString(cb), toString(ch), toString(ca)], j))
1390+@Callable(dB)
1391+func evaluateGetREADONLY (gx,gy) = {
1392+ let cI = bV("", gx, gy, this)
1393+ let co = cI._1
1394+ let cp = cI._2
1395+ let ce = cI._5
1396+ let cg = cI._6
1397+ let cd = cI._7
1398+ let cj = cI._8
1399+ let cc = parseIntValue(cI._9)
1400+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(co), toString(cp), toString(ce), toString(cg), toString(cd), toString(cj), toString(cc)], j))
13981401 }
13991402
14001403
1401-@Verifier(gx)
1402-func gy () = {
1403- let gz = {
1404- let dK = eM()
1405- if ($isInstanceOf(dK, "ByteVector"))
1404+@Verifier(gz)
1405+func gA () = {
1406+ let gB = {
1407+ let dM = eO()
1408+ if ($isInstanceOf(dM, "ByteVector"))
14061409 then {
1407- let eQ = dK
1408- eQ
1410+ let eS = dM
1411+ eS
14091412 }
1410- else if ($isInstanceOf(dK, "Unit"))
1411- then gx.senderPublicKey
1413+ else if ($isInstanceOf(dM, "Unit"))
1414+ then gz.senderPublicKey
14121415 else throw("Match error")
14131416 }
1414- let dK = gx
1415- if ($isInstanceOf(dK, "Order"))
1417+ let dM = gz
1418+ if ($isInstanceOf(dM, "Order"))
14161419 then {
1417- let dp = dK
1418- let gA = aM()
1419- let az = do(dp)
1420- let aA = sigVerify(dp.bodyBytes, dp.proofs[0], dp.senderPublicKey)
1421- let aB = sigVerify(dp.bodyBytes, dp.proofs[1], gA)
1420+ let dr = dM
1421+ let gC = aM()
1422+ let az = dq(dr)
1423+ let aA = sigVerify(dr.bodyBytes, dr.proofs[0], dr.senderPublicKey)
1424+ let aB = sigVerify(dr.bodyBytes, dr.proofs[1], gC)
14221425 if (if (if (az)
14231426 then aA
14241427 else false)
14271430 then true
14281431 else ay(az, aA, aB)
14291432 }
1430- else if ($isInstanceOf(dK, "SetScriptTransaction"))
1433+ else if ($isInstanceOf(dM, "SetScriptTransaction"))
14311434 then {
1432- let eN = dK
1433- let gB = blake2b256(value(eN.script))
1434- let gC = fromBase64String(value(getString(aJ, aw())))
1435- let gD = scriptHash(this)
1436- if (if ((gC == gB))
1437- then (gD != gB)
1435+ let eP = dM
1436+ let gD = blake2b256(value(eP.script))
1437+ let gE = fromBase64String(value(getString(aJ, aw())))
1438+ let gF = scriptHash(this)
1439+ if (if ((gE == gD))
1440+ then (gF != gD)
14381441 else false)
14391442 then true
1440- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1443+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14411444 }
1442- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1445+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14431446 }
14441447
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = toBigInt(0)
1515
1616 let g = toBigInt(1)
1717
1818 let h = toBigInt(2)
1919
2020 let i = "WAVES"
2121
2222 let j = "__"
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 10
5151
5252 let y = 1
5353
5454 let z = 2
5555
5656 let A = 3
5757
5858 let B = 1
5959
6060 let C = 7
6161
6262 func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6363
6464
6565 func G (H,I) = toInt(fraction(H, toBigInt(I), d))
6666
6767
6868 func J (K,L,M) = fraction(K, L, M)
6969
7070
7171 func N (H) = if ((0 > H))
7272 then -(H)
7373 else H
7474
7575
7676 func O (H) = if ((e > H))
7777 then -(H)
7878 else H
7979
8080
8181 func P () = "%s__factoryContract"
8282
8383
8484 func Q () = "%s__managerPublicKey"
8585
8686
8787 func R () = "%s__pendingManagerPublicKey"
8888
8989
9090 func S () = "%s%s__price__last"
9191
9292
9393 func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
9494
9595
9696 func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
9797
9898
9999 func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
100100
101101
102102 func aa () = "%s__amountAsset"
103103
104104
105105 func ab () = "%s__priceAsset"
106106
107107
108108 let ac = "%s__fee"
109109
110110 let ad = fraction(10, b, 10000)
111111
112112 let ae = valueOrElse(getInteger(this, ac), ad)
113113
114114 let af = makeString(["%s", "kLp"], j)
115115
116116 let ag = makeString(["%s", "kLpRefreshedHeight"], j)
117117
118118 let ah = makeString(["%s", "refreshKLpDelay"], j)
119119
120120 let ai = 30
121121
122122 let aj = valueOrElse(getInteger(this, ah), ai)
123123
124124 func ak () = "%s__factoryConfig"
125125
126126
127127 func al () = "%s%s__matcher__publicKey"
128128
129129
130130 func am (an) = (("%s%s%s__" + an) + "__mappings__poolContract2LpAsset")
131131
132132
133133 func ao (ap,aq) = (((("%d%d%s__" + ap) + "__") + aq) + "__config")
134134
135135
136136 func ar (as) = ("%s%s%s__mappings__baseAsset2internalId__" + as)
137137
138138
139139 func at () = "%s__shutdown"
140140
141141
142142 func au (av) = ("%s%s__poolWeight__" + av)
143143
144144
145145 func aw () = "%s__allowedLpScriptHash"
146146
147147
148148 let ax = "%s__feeCollectorAddress"
149149
150150 func ay (az,aA,aB) = throw(((((("order validation failed: orderValid=" + toString(az)) + " senderValid=") + toString(aA)) + " matcherValid=") + toString(aB)))
151151
152152
153153 func aC (aD,aE) = valueOrErrorMessage(getString(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
154154
155155
156156 func aF (aD,aE) = valueOrErrorMessage(getInteger(aD, aE), makeString(["mandatory ", toString(aD), ".", aE, " is not defined"], ""))
157157
158158
159159 func aG (aH) = throw(makeString(["lp.ride:", aH], " "))
160160
161161
162162 func aI (aH) = makeString(["lp.ride:", aH], " ")
163163
164164
165165 let aJ = addressFromStringValue(aC(this, P()))
166166
167167 let aK = addressFromStringValue(aC(aJ, ax))
168168
169169 func aL () = valueOrElse(getBoolean(aJ, at()), false)
170170
171171
172172 func aM () = fromBase58String(aC(aJ, al()))
173173
174174
175175 func aN () = {
176176 let aO = aC(this, aa())
177177 let aP = aC(this, ab())
178178 let aq = aF(aJ, ar(aP))
179179 let ap = aF(aJ, ar(aO))
180180 split(aC(aJ, ao(toString(ap), toString(aq))), j)
181181 }
182182
183183
184184 func aQ (aR) = if ((aR == i))
185185 then unit
186186 else fromBase58String(aR)
187187
188188
189189 func aS (aR) = if ((aR == unit))
190190 then i
191191 else toBase58String(value(aR))
192192
193193
194194 func aT (aU) = $Tuple7(addressFromStringValue(aU[o]), parseIntValue(aU[p]), fromBase58String(aU[q]), aQ(aU[r]), aQ(aU[s]), parseIntValue(aU[t]), parseIntValue(aU[u]))
195195
196196
197197 let aV = aT(aN())
198198
199199 let aW = aV
200200
201201 let aX = aW._1
202202
203203 let aY = aW._2
204204
205205 let aZ = aW._3
206206
207207 let ba = aW._4
208208
209209 let bb = aW._5
210210
211211 let bc = aW._6
212212
213213 let bd = aW._7
214214
215215 func be () = split(aC(aJ, ak()), j)
216216
217217
218218 let bf = valueOrErrorMessage(addressFromString(be()[B]), "incorrect staking address")
219219
220220 let bg = valueOrErrorMessage(addressFromString(be()[C]), "incorrect staking address")
221221
222222 func bh (bi,bj,bk,bl,bm,bn,bo,bp,bq,br) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn), toString(bo), toString(bp), toString(bq), toString(br)], j)
223223
224224
225225 func bs (bt,bu,bv,bl,bo,bp) = makeString(["%d%d%d%d%d%d", toString(bt), toString(bu), toString(bv), toString(bl), toString(bo), toString(bp)], j)
226226
227227
228228 func bw (bx) = if ((bx == "WAVES"))
229229 then wavesBalance(this).available
230230 else assetBalance(this, fromBase58String(bx))
231231
232232
233233 func by (bz,bA) = fraction(bz, d, bA)
234234
235235
236-func bB (bC,bD,bE,bF) = {
237- let bG = D(bE, bC)
238- let bH = D(bF, bD)
239- by(bH, bG)
236+func bB (bz,bA,bC) = fraction(bz, d, bA, bC)
237+
238+
239+func bD (bE,bF,bG,bH) = {
240+ let bI = D(bG, bE)
241+ let bJ = D(bH, bF)
242+ by(bJ, bI)
240243 }
241244
242245
243-func bI (bE,bF,bJ) = {
244- let bK = aN()
245- let bL = parseIntValue(bK[t])
246- let bM = parseIntValue(bK[u])
247- let bN = bB(bL, bM, bE, bF)
248- let bA = D(bE, bL)
249- let bz = D(bF, bM)
250- let bO = D(bJ, b)
251- let bP = by(bA, bO)
252- let bQ = by(bz, bO)
253-[bN, bP, bQ]
246+func bK (bG,bH,bL) = {
247+ let bM = aN()
248+ let bN = parseIntValue(bM[t])
249+ let bO = parseIntValue(bM[u])
250+ let bP = bD(bN, bO, bG, bH)
251+ let bA = D(bG, bN)
252+ let bz = D(bH, bO)
253+ let bQ = D(bL, b)
254+ let bR = by(bA, bQ)
255+ let bS = by(bz, bQ)
256+[bP, bR, bS]
254257 }
255258
256259
257-func bR (bE,bF,bJ) = {
258- let bS = bI(bE, bF, bJ)
259-[G(bS[0], b), G(bS[1], b), G(bS[2], b)]
260+func bT (bG,bH,bL) = {
261+ let bU = bK(bG, bH, bL)
262+[G(bU[0], b), G(bU[1], b), G(bU[2], b)]
260263 }
261264
262265
263-func bT (bU,bV,bW,X) = {
264- let bK = aN()
265- let bX = bK[q]
266- let bY = bK[r]
267- let bZ = bK[s]
268- let bC = parseIntValue(bK[t])
269- let bD = parseIntValue(bK[u])
270- let ca = bK[p]
271- let cb = valueOrErrorMessage(assetInfo(fromBase58String(bX)), (("Asset " + bX) + " doesn't exist")).quantity
272- if ((bX != bV))
266+func bV (bW,bX,bY,X) = {
267+ let bM = aN()
268+ let bZ = bM[q]
269+ let ca = bM[r]
270+ let cb = bM[s]
271+ let bE = parseIntValue(bM[t])
272+ let bF = parseIntValue(bM[u])
273+ let cc = bM[p]
274+ let cd = valueOrErrorMessage(assetInfo(fromBase58String(bZ)), (("Asset " + bZ) + " doesn't exist")).quantity
275+ if ((bZ != bX))
273276 then throw("Invalid asset passed.")
274277 else {
275- let cc = bw(bY)
276- let cd = D(cc, bC)
277- let ce = bw(bZ)
278- let cf = D(ce, bD)
279- let cg = by(cf, cd)
280- let ch = G(cg, b)
281- let ci = D(bW, b)
282- let cj = D(cb, b)
283- let ck = fraction(cd, ci, cj)
284- let cl = fraction(cf, ci, cj)
285- let cm = G(ck, bC)
286- let cn = G(cl, bD)
287- let co = if ((bU == ""))
278+ let ce = bw(ca)
279+ let cf = D(ce, bE)
280+ let cg = bw(cb)
281+ let ch = D(cg, bF)
282+ let ci = by(ch, cf)
283+ let cj = G(ci, b)
284+ let ck = D(bY, b)
285+ let cl = D(cd, b)
286+ let cm = fraction(cf, ck, cl)
287+ let cn = fraction(ch, ck, cl)
288+ let co = G(cm, bE)
289+ let cp = G(cn, bF)
290+ let cq = if ((bW == ""))
288291 then nil
289- else [ScriptTransfer(X, cm, if ((bY == "WAVES"))
292+ else [ScriptTransfer(X, co, if ((ca == "WAVES"))
290293 then unit
291- else fromBase58String(bY)), ScriptTransfer(X, cn, if ((bZ == "WAVES"))
294+ else fromBase58String(ca)), ScriptTransfer(X, cp, if ((cb == "WAVES"))
292295 then unit
293- else fromBase58String(bZ)), StringEntry(Z(toString(X), bU), bs(cm, cn, bW, ch, height, lastBlock.timestamp)), IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch)]
294- $Tuple10(cm, cn, bY, bZ, cc, ce, cb, cg, ca, co)
296+ else fromBase58String(cb)), StringEntry(Z(toString(X), bW), bs(co, cp, bY, cj, height, lastBlock.timestamp)), IntegerEntry(S(), cj), IntegerEntry(T(height, lastBlock.timestamp), cj)]
297+ $Tuple10(co, cp, ca, cb, ce, cg, cd, ci, cc, cq)
295298 }
296299 }
297300
298301
299-func cp (bU,cq,cr,cs,ct,cu,X,cv,cw) = {
300- let bK = aN()
301- let bX = fromBase58String(bK[q])
302- let cx = bK[r]
303- let cy = bK[s]
304- let cz = bK[v]
305- let cA = bK[w]
306- let bL = parseIntValue(bK[t])
307- let bM = parseIntValue(bK[u])
308- let ca = bK[p]
309- let cb = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
310- let cB = toBase58String(valueOrElse(cs, fromBase58String("WAVES")))
311- let cC = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
312- if (if ((cx != cB))
302+func cr (bW,cs,ct,cu,cv,cw,X,cx,cy) = {
303+ let bM = aN()
304+ let bZ = fromBase58String(bM[q])
305+ let cz = bM[r]
306+ let cA = bM[s]
307+ let cB = bM[v]
308+ let cC = bM[w]
309+ let bN = parseIntValue(bM[t])
310+ let bO = parseIntValue(bM[u])
311+ let cc = bM[p]
312+ let cd = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
313+ let cD = toBase58String(valueOrElse(cu, fromBase58String("WAVES")))
314+ let cE = toBase58String(valueOrElse(cw, fromBase58String("WAVES")))
315+ if (if ((cz != cD))
313316 then true
314- else (cy != cC))
317+ else (cA != cE))
315318 then throw("Invalid amt or price asset passed.")
316319 else {
317- let cc = if (cv)
318- then bw(cx)
319- else (bw(cx) - cr)
320- let ce = if (cv)
321- then bw(cy)
322- else (bw(cy) - ct)
323- let cD = D(cr, bL)
324- let cE = D(ct, bM)
325- let cF = by(cE, cD)
326- let cd = D(cc, bL)
327- let cf = D(ce, bM)
328- let cG = if ((cb == 0))
320+ let ce = if (cx)
321+ then bw(cz)
322+ else (bw(cz) - ct)
323+ let cg = if (cx)
324+ then bw(cA)
325+ else (bw(cA) - cv)
326+ let cF = D(ct, bN)
327+ let cG = D(cv, bO)
328+ let cH = by(cG, cF)
329+ let cf = D(ce, bN)
330+ let ch = D(cg, bO)
331+ let cI = if ((cd == 0))
329332 then {
330- let cg = e
331- let cH = e
332- let bO = pow((cD * cE), 0, toBigInt(5), 1, 0, DOWN)
333- $Tuple5(G(bO, b), G(cD, bL), G(cE, bM), by((cf + cE), (cd + cD)), cH)
333+ let ci = e
334+ let cJ = e
335+ let bQ = pow((cF * cG), 0, toBigInt(5), 1, 0, DOWN)
336+ $Tuple5(G(bQ, b), G(cF, bN), G(cG, bO), by((ch + cG), (cf + cF)), cJ)
334337 }
335338 else {
336- let cg = by(cf, cd)
337- let cH = fraction(O((cg - cF)), d, cg)
338- let cI = D(cq, b)
339- if (if ((cg != e))
340- then (cH > cI)
339+ let ci = by(ch, cf)
340+ let cJ = fraction(O((ci - cH)), d, ci)
341+ let cK = D(cs, b)
342+ if (if ((ci != e))
343+ then (cJ > cK)
341344 else false)
342- then throw(((("Price slippage " + toString(cH)) + " exceeded the passed limit of ") + toString(cI)))
345+ then throw(((("Price slippage " + toString(cJ)) + " exceeded the passed limit of ") + toString(cK)))
343346 else {
344- let cj = D(cb, b)
345- let cJ = fraction(cD, cg, d, CEILING)
346- let cK = fraction(cE, d, cg, CEILING)
347- let cL = if ((cJ > cE))
348- then $Tuple2(cK, cE)
349- else $Tuple2(cD, cJ)
350- let cM = cL._1
351- let cN = cL._2
352- let bO = fraction(cj, cN, cf)
353- $Tuple5(G(bO, b), G(cM, bL), G(cN, bM), cg, cH)
347+ let cl = D(cd, b)
348+ let cL = fraction(cF, bB(ch, cf, CEILING), d, CEILING)
349+ let cM = fraction(cG, d, bB(ch, cf, FLOOR), CEILING)
350+ let cN = if ((cL > cG))
351+ then $Tuple2(cM, cG)
352+ else $Tuple2(cF, cL)
353+ let cO = cN._1
354+ let cP = cN._2
355+ let bQ = fraction(cl, cP, ch, FLOOR)
356+ $Tuple5(G(bQ, b), G(cO, bN), G(cP, bO), ci, cJ)
354357 }
355358 }
356- let cO = cG._1
357- let cP = cG._2
358- let cQ = cG._3
359- let ch = G(cG._4, b)
360- let cR = G(cG._5, b)
361- if ((0 >= cO))
359+ let cQ = cI._1
360+ let cR = cI._2
361+ let cS = cI._3
362+ let cj = G(cI._4, b)
363+ let cT = G(cI._5, b)
364+ if ((0 >= cQ))
362365 then throw("Invalid calculations. LP calculated is less than zero.")
363366 else {
364- let cS = if (!(cw))
367+ let cU = if (!(cy))
365368 then 0
366- else cO
367- let cT = (cr - cP)
368- let cU = (ct - cQ)
369- let cV = [IntegerEntry(S(), ch), IntegerEntry(T(height, lastBlock.timestamp), ch), StringEntry(W(X, bU), bh(cP, cQ, cS, ch, cq, cR, height, lastBlock.timestamp, cT, cU))]
370- $Tuple13(cO, cS, ch, cc, ce, cb, bX, ca, cV, cT, cU, cs, cu)
369+ else cQ
370+ let cV = (ct - cR)
371+ let cW = (cv - cS)
372+ let cX = [IntegerEntry(S(), cj), IntegerEntry(T(height, lastBlock.timestamp), cj), StringEntry(W(X, bW), bh(cR, cS, cU, cj, cs, cT, height, lastBlock.timestamp, cV, cW))]
373+ $Tuple13(cQ, cU, cj, ce, cg, cd, bZ, cc, cX, cV, cW, cu, cw)
371374 }
372375 }
373376 }
374377
375378
376-func cW (cX,cY,cb) = {
377- let cZ = fraction(pow((cX * cY), 0, toBigInt(5), 1, 18, DOWN), g, cb)
378- if ((cb == f))
379+func cY (cZ,da,cd) = {
380+ let db = fraction(pow((cZ * da), 0, toBigInt(5), 1, 18, DOWN), g, cd)
381+ if ((cd == f))
379382 then f
380- else cZ
383+ else db
381384 }
382385
383386
384-func da (db,dc,dd) = {
385- let de = (toBigInt(bw(aS(ba))) - db)
386- let df = (toBigInt(bw(aS(bb))) - dc)
387- let dg = (toBigInt(value(assetInfo(aZ)).quantity) - dd)
388- let dh = cW(de, df, dg)
389- dh
387+func dc (dd,de,df) = {
388+ let dg = (toBigInt(bw(aS(ba))) - dd)
389+ let dh = (toBigInt(bw(aS(bb))) - de)
390+ let di = (toBigInt(value(assetInfo(aZ)).quantity) - df)
391+ let dj = cY(dg, dh, di)
392+ dj
390393 }
391394
392395
393-func di (dj,dk,dd) = {
394- let de = (bw(aS(ba)) + dj)
395- let df = (bw(aS(bb)) + dk)
396- let dg = (value(assetInfo(aZ)).quantity + dd)
397- let cZ = cW(toBigInt(de), toBigInt(df), toBigInt(dg))
398- let dl = [IntegerEntry(ag, height), StringEntry(af, toString(cZ))]
399- $Tuple2(dl, cZ)
396+func dk (dl,dm,df) = {
397+ let dg = (bw(aS(ba)) + dl)
398+ let dh = (bw(aS(bb)) + dm)
399+ let di = (value(assetInfo(aZ)).quantity + df)
400+ let db = cY(toBigInt(dg), toBigInt(dh), toBigInt(di))
401+ let dn = [IntegerEntry(ag, height), StringEntry(af, toString(db))]
402+ $Tuple2(dn, db)
400403 }
401404
402405
403-func dm (dn,cZ) = if ((cZ >= dn))
406+func do (dp,db) = if ((db >= dp))
404407 then true
405- else aG(makeString(["updated KLp lower than current KLp", toString(dn), toString(cZ)], " "))
408+ else aG(makeString(["updated KLp lower than current KLp", toString(dp), toString(db)], " "))
406409
407410
408-func do (dp) = {
409- let dq = dp.amount
410- let dr = fraction(dp.amount, dp.price, b, FLOOR)
411- let ds = if ((dp.orderType == Buy))
412- then $Tuple2(dq, -(dr))
413- else $Tuple2(-(dq), dr)
414- let dj = ds._1
415- let dk = ds._2
411+func dq (dr) = {
412+ let ds = dr.amount
413+ let dt = fraction(dr.amount, dr.price, b, FLOOR)
414+ let du = if ((dr.orderType == Buy))
415+ then $Tuple2(ds, -(dt))
416+ else $Tuple2(-(ds), dt)
417+ let dl = du._1
418+ let dm = du._2
416419 if (if (if (aL())
417420 then true
418421 else (aY == m))
419422 then true
420423 else (aY == n))
421424 then throw("Exchange operations disabled")
422- else if (if ((dp.assetPair.amountAsset != ba))
425+ else if (if ((dr.assetPair.amountAsset != ba))
423426 then true
424- else (dp.assetPair.priceAsset != bb))
427+ else (dr.assetPair.priceAsset != bb))
425428 then throw("Wrong order assets.")
426429 else {
427- let dt = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, af), aI("kLp is required"))), aI("invalid kLp"))
428- let du = di(dj, dk, 0)
429- let dv = du._1
430- let dw = du._2
431- let dx = (dw >= dt)
432- dx
430+ let dv = valueOrErrorMessage(parseBigInt(valueOrErrorMessage(getString(this, af), aI("kLp is required"))), aI("invalid kLp"))
431+ let dw = dk(dl, dm, 0)
432+ let dx = dw._1
433+ let dy = dw._2
434+ let dz = (dy >= dv)
435+ dz
433436 }
434437 }
435438
436439
437-func dy (dz) = if ((size(dz.payments) != 1))
440+func dA (dB) = if ((size(dB.payments) != 1))
438441 then throw("exactly 1 payment is expected")
439442 else {
440- let dA = value(dz.payments[0])
441- let bV = value(dA.assetId)
442- let dB = dA.amount
443- let cG = bT(toBase58String(dz.transactionId), toBase58String(bV), dB, dz.caller)
444- let cm = cG._1
445- let cn = cG._2
446- let ca = parseIntValue(cG._9)
447- let co = cG._10
443+ let dC = value(dB.payments[0])
444+ let bX = value(dC.assetId)
445+ let dD = dC.amount
446+ let cI = bV(toBase58String(dB.transactionId), toBase58String(bX), dD, dB.caller)
447+ let co = cI._1
448+ let cp = cI._2
449+ let cc = parseIntValue(cI._9)
450+ let cq = cI._10
448451 if (if (aL())
449452 then true
450- else (ca == n))
451- then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
452- else $Tuple5(cm, cn, dB, bV, co)
453+ else (cc == n))
454+ then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
455+ else $Tuple5(co, cp, dD, bX, cq)
453456 }
454457
455458
456-func dC (dz,cq,cw) = if ((size(dz.payments) != 2))
459+func dE (dB,cs,cy) = if ((size(dB.payments) != 2))
457460 then throw("exactly 2 payments are expected")
458461 else {
459- let dD = value(dz.payments[0])
460- let dE = value(dz.payments[1])
461- let dF = cp(toBase58String(dz.transactionId), cq, dD.amount, dD.assetId, dE.amount, dE.assetId, toString(dz.caller), false, cw)
462- let ca = parseIntValue(dF._8)
462+ let dF = value(dB.payments[0])
463+ let dG = value(dB.payments[1])
464+ let dH = cr(toBase58String(dB.transactionId), cs, dF.amount, dF.assetId, dG.amount, dG.assetId, toString(dB.caller), false, cy)
465+ let cc = parseIntValue(dH._8)
463466 if (if (if (aL())
464467 then true
465- else (ca == l))
468+ else (cc == l))
466469 then true
467- else (ca == n))
468- then throw(("Put operation is blocked by admin. Status = " + toString(ca)))
469- else dF
470+ else (cc == n))
471+ then throw(("Put operation is blocked by admin. Status = " + toString(cc)))
472+ else dH
470473 }
471474
472475
473-func dG (dH) = {
474- let dI = invoke(aJ, "emit", [dH], nil)
475- if ((dI == dI))
476+func dI (dJ) = {
477+ let dK = invoke(aJ, "emit", [dJ], nil)
478+ if ((dK == dK))
476479 then {
477- let dJ = {
478- let dK = dI
479- if ($isInstanceOf(dK, "Address"))
480+ let dL = {
481+ let dM = dK
482+ if ($isInstanceOf(dM, "Address"))
480483 then {
481- let dL = dK
482- invoke(dL, "emit", [dH], nil)
484+ let dN = dM
485+ invoke(dN, "emit", [dJ], nil)
483486 }
484487 else unit
485488 }
486- if ((dJ == dJ))
487- then dH
489+ if ((dL == dL))
490+ then dJ
488491 else throw("Strict value is not equal to itself.")
489492 }
490493 else throw("Strict value is not equal to itself.")
491494 }
492495
493496
494-func dM (dH) = {
495- let dN = fraction(dH, ae, b)
496- $Tuple2((dH - dN), dN)
497+func dO (dJ) = {
498+ let dP = fraction(dJ, ae, b)
499+ $Tuple2((dJ - dP), dP)
497500 }
498501
499502
500-func dO (dP,dQ,X,Y) = {
501- let dR = (Y == unit)
502- let dS = bw(aS(ba))
503- let dT = bw(aS(bb))
504- let dU = if ((dQ == ba))
503+func dQ (dR,dS,X,Y) = {
504+ let dT = (Y == unit)
505+ let dU = bw(aS(ba))
506+ let dV = bw(aS(bb))
507+ let dW = if ((dS == ba))
505508 then true
506- else if ((dQ == bb))
509+ else if ((dS == bb))
507510 then false
508511 else aG("invalid asset")
509- let dV = if (dR)
510- then $Tuple2(dS, dT)
511- else if (dU)
512- then $Tuple2((dS - dP), dT)
513- else $Tuple2(dS, (dT - dP))
514- let dW = dV._1
515- let dX = dV._2
516- let dY = if (dU)
517- then $Tuple2(dP, 0)
518- else $Tuple2(0, dP)
519- let dZ = dY._1
520- let ea = dY._2
521- let dq = dM(dZ)._1
522- let dr = dM(ea)._1
523- let eb = dM(dP)
524- let ec = eb._1
525- let dN = eb._2
526- let ed = (dW + dq)
527- let ee = (dX + dr)
528- let ef = by(D(ee, bd), D(ed, bc))
529- let eg = G(ef, b)
530- let eh = if (dU)
531- then dW
532- else dX
533- let ei = toBigInt(eh)
534- let ej = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
535- let ek = if ((ej > f))
512+ let dX = if (dT)
513+ then $Tuple2(dU, dV)
514+ else if (dW)
515+ then $Tuple2((dU - dR), dV)
516+ else $Tuple2(dU, (dV - dR))
517+ let dY = dX._1
518+ let dZ = dX._2
519+ let ea = if (dW)
520+ then $Tuple2(dR, 0)
521+ else $Tuple2(0, dR)
522+ let eb = ea._1
523+ let ec = ea._2
524+ let ds = dO(eb)._1
525+ let dt = dO(ec)._1
526+ let ed = dO(dR)
527+ let ee = ed._1
528+ let dP = ed._2
529+ let ef = (dY + ds)
530+ let eg = (dZ + dt)
531+ let eh = by(D(eg, bd), D(ef, bc))
532+ let ei = G(eh, b)
533+ let ej = if (dW)
534+ then dY
535+ else dZ
536+ let ek = toBigInt(ej)
537+ let el = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
538+ let em = if ((el > f))
536539 then true
537540 else aG("initial deposit requires all coins")
538- if ((ek == ek))
541+ if ((em == em))
539542 then {
540- let el = toBigInt(ec)
541- let em = max([0, toInt(((ej * (sqrtBigInt((d + ((el * d) / ei)), 18, 18, DOWN) - d)) / d))])
542- let cV = if (dR)
543+ let en = toBigInt(ee)
544+ let eo = max([0, toInt(((el * (sqrtBigInt((d + ((en * d) / ek)), 18, 18, DOWN) - d)) / d))])
545+ let cX = if (dT)
543546 then nil
544- else [IntegerEntry(S(), eg), IntegerEntry(T(height, lastBlock.timestamp), eg), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(dZ, ea, em, eg, 0, 0, height, lastBlock.timestamp, 0, 0))]
545- let en = by(D(dX, bd), D(dW, bc))
546- let eo = G(en, b)
547- let ep = {
548- let eq = if (dU)
549- then $Tuple2(dZ, dW)
550- else $Tuple2(ea, dX)
551- let dH = eq._1
552- let er = eq._2
553- let es = toInt(fraction(ej, toBigInt((dH / 2)), toBigInt(er)))
554- fraction((em - es), b, es)
547+ else [IntegerEntry(S(), ei), IntegerEntry(T(height, lastBlock.timestamp), ei), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bh(eb, ec, eo, ei, 0, 0, height, lastBlock.timestamp, 0, 0))]
548+ let ep = by(D(dZ, bd), D(dY, bc))
549+ let eq = G(ep, b)
550+ let er = {
551+ let es = if (dW)
552+ then $Tuple2(eb, dY)
553+ else $Tuple2(ec, dZ)
554+ let dJ = es._1
555+ let et = es._2
556+ let eu = toInt(fraction(el, toBigInt((dJ / 2)), toBigInt(et)))
557+ fraction((eo - eu), b, eu)
555558 }
556- $Tuple5(em, cV, dN, ep, dU)
559+ $Tuple5(eo, cX, dP, er, dW)
557560 }
558561 else throw("Strict value is not equal to itself.")
559562 }
560563
561564
562-func et (eu,ec,dQ,X,Y) = {
563- let dR = (Y == unit)
564- let ev = [if ((dQ == aZ))
565+func ev (ew,ee,dS,X,Y) = {
566+ let dT = (Y == unit)
567+ let ex = [if ((dS == aZ))
565568 then true
566569 else aG("invalid lp asset")]
567- if ((ev == ev))
570+ if ((ex == ex))
568571 then {
569- let ew = if ((eu == ba))
572+ let ey = if ((ew == ba))
570573 then true
571- else if ((eu == bb))
574+ else if ((ew == bb))
572575 then false
573576 else aG("invalid asset")
574- let ex = if (ew)
577+ let ez = if (ey)
575578 then toBigInt(bw(aS(ba)))
576579 else toBigInt(bw(aS(bb)))
577- let ey = bw(aS(ba))
578- let ez = bw(aS(bb))
579- let eA = if (ew)
580- then ey
581- else ez
582- let eB = toBigInt(eA)
583- let ej = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
584- let eC = toBigInt(ec)
585- let eD = max([0, toInt(((ex * (d - pow((d - ((eC * d) / ej)), 18, h, 0, 18, DOWN))) / d))])
586- let eE = dM(eD)
587- let eF = eE._1
588- let dN = eE._2
589- let eG = if (ew)
590- then $Tuple4(eF, 0, (ey - eD), ez)
591- else $Tuple4(0, eF, ey, (ez - eD))
580+ let eA = bw(aS(ba))
581+ let eB = bw(aS(bb))
582+ let eC = if (ey)
583+ then eA
584+ else eB
585+ let eD = toBigInt(eC)
586+ let el = toBigInt(valueOrErrorMessage(assetInfo(aZ), (("asset " + toBase58String(aZ)) + " doesn't exist")).quantity)
587+ let eE = toBigInt(ee)
588+ let eF = max([0, toInt(((ez * (d - pow((d - ((eE * d) / el)), 18, h, 0, 18, DOWN))) / d))])
589+ let eG = dO(eF)
592590 let eH = eG._1
593- let eI = eG._2
594- let eJ = eG._3
595- let eK = eG._4
596- let ef = by(D(eK, bd), D(eJ, bc))
597- let eg = G(ef, b)
598- let cV = if (dR)
591+ let dP = eG._2
592+ let eI = if (ey)
593+ then $Tuple4(eH, 0, (eA - eF), eB)
594+ else $Tuple4(0, eH, eA, (eB - eF))
595+ let eJ = eI._1
596+ let eK = eI._2
597+ let eL = eI._3
598+ let eM = eI._4
599+ let eh = by(D(eM, bd), D(eL, bc))
600+ let ei = G(eh, b)
601+ let cX = if (dT)
599602 then nil
600- else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(eH, eI, ec, eg, height, lastBlock.timestamp)), IntegerEntry(S(), eg), IntegerEntry(T(height, lastBlock.timestamp), eg)]
601- let en = by(D(ez, bd), D(ey, bc))
602- let eo = G(en, b)
603- let ep = {
604- let eL = (toInt(fraction(ex, eC, ej)) * 2)
605- fraction((eF - eL), b, eL)
603+ else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bs(eJ, eK, ee, ei, height, lastBlock.timestamp)), IntegerEntry(S(), ei), IntegerEntry(T(height, lastBlock.timestamp), ei)]
604+ let ep = by(D(eB, bd), D(eA, bc))
605+ let eq = G(ep, b)
606+ let er = {
607+ let eN = (toInt(fraction(ez, eE, el)) * 2)
608+ fraction((eH - eN), b, eN)
606609 }
607- $Tuple5(eF, cV, dN, ep, ew)
610+ $Tuple5(eH, cX, dP, er, ey)
608611 }
609612 else throw("Strict value is not equal to itself.")
610613 }
611614
612615
613-func eM () = {
614- let dK = getString(Q())
615- if ($isInstanceOf(dK, "String"))
616+func eO () = {
617+ let dM = getString(Q())
618+ if ($isInstanceOf(dM, "String"))
616619 then {
617- let eN = dK
618- fromBase58String(eN)
620+ let eP = dM
621+ fromBase58String(eP)
619622 }
620- else if ($isInstanceOf(dK, "Unit"))
623+ else if ($isInstanceOf(dM, "Unit"))
621624 then unit
622625 else throw("Match error")
623626 }
624627
625628
626-func eO () = {
627- let dK = getString(R())
628- if ($isInstanceOf(dK, "String"))
629+func eQ () = {
630+ let dM = getString(R())
631+ if ($isInstanceOf(dM, "String"))
629632 then {
630- let eN = dK
631- fromBase58String(eN)
633+ let eP = dM
634+ fromBase58String(eP)
632635 }
633- else if ($isInstanceOf(dK, "Unit"))
636+ else if ($isInstanceOf(dM, "Unit"))
634637 then unit
635638 else throw("Match error")
636639 }
637640
638641
639-func eP (dz) = {
640- let dK = eM()
641- if ($isInstanceOf(dK, "ByteVector"))
642+func eR (dB) = {
643+ let dM = eO()
644+ if ($isInstanceOf(dM, "ByteVector"))
642645 then {
643- let eQ = dK
644- (dz.callerPublicKey == eQ)
646+ let eS = dM
647+ (dB.callerPublicKey == eS)
645648 }
646- else if ($isInstanceOf(dK, "Unit"))
647- then (dz.caller == this)
649+ else if ($isInstanceOf(dM, "Unit"))
650+ then (dB.caller == this)
648651 else throw("Match error")
649652 }
650653
651654
652-func eR (dz) = {
653- let eS = throw("Permission denied")
654- let dK = eM()
655- if ($isInstanceOf(dK, "ByteVector"))
655+func eT (dB) = {
656+ let eU = throw("Permission denied")
657+ let dM = eO()
658+ if ($isInstanceOf(dM, "ByteVector"))
656659 then {
657- let eQ = dK
658- if ((dz.callerPublicKey == eQ))
660+ let eS = dM
661+ if ((dB.callerPublicKey == eS))
659662 then true
660- else eS
663+ else eU
661664 }
662- else if ($isInstanceOf(dK, "Unit"))
663- then if ((dz.caller == this))
665+ else if ($isInstanceOf(dM, "Unit"))
666+ then if ((dB.caller == this))
664667 then true
665- else eS
668+ else eU
666669 else throw("Match error")
667670 }
668671
669672
670-@Callable(dz)
671-func setManager (eT) = {
672- let eU = eR(dz)
673- if ((eU == eU))
673+@Callable(dB)
674+func setManager (eV) = {
675+ let eW = eT(dB)
676+ if ((eW == eW))
674677 then {
675- let eV = fromBase58String(eT)
676- if ((eV == eV))
677- then [StringEntry(R(), eT)]
678+ let eX = fromBase58String(eV)
679+ if ((eX == eX))
680+ then [StringEntry(R(), eV)]
678681 else throw("Strict value is not equal to itself.")
679682 }
680683 else throw("Strict value is not equal to itself.")
681684 }
682685
683686
684687
685-@Callable(dz)
688+@Callable(dB)
686689 func confirmManager () = {
687- let eW = eO()
688- let eX = if (isDefined(eW))
690+ let eY = eQ()
691+ let eZ = if (isDefined(eY))
689692 then true
690693 else throw("No pending manager")
691- if ((eX == eX))
694+ if ((eZ == eZ))
692695 then {
693- let eY = if ((dz.callerPublicKey == value(eW)))
696+ let fa = if ((dB.callerPublicKey == value(eY)))
694697 then true
695698 else throw("You are not pending manager")
696- if ((eY == eY))
697- then [StringEntry(Q(), toBase58String(value(eW))), DeleteEntry(R())]
699+ if ((fa == fa))
700+ then [StringEntry(Q(), toBase58String(value(eY))), DeleteEntry(R())]
698701 else throw("Strict value is not equal to itself.")
699702 }
700703 else throw("Strict value is not equal to itself.")
701704 }
702705
703706
704707
705-@Callable(dz)
706-func put (cq,eZ) = if ((0 > cq))
708+@Callable(dB)
709+func put (cs,fb) = if ((0 > cs))
707710 then throw("Invalid slippageTolerance passed")
708711 else {
709- let dF = dC(dz, cq, true)
710- let cS = dF._2
711- let bX = dF._7
712- let co = dF._9
713- let cT = dF._10
714- let cU = dF._11
715- let fa = dF._12
716- let fb = dF._13
717- let dD = toBigInt(value(dz.payments[0]).amount)
718- let dE = toBigInt(value(dz.payments[1]).amount)
719- let dh = da(dD, dE, toBigInt(0))
720- if ((dh == dh))
712+ let dH = dE(dB, cs, true)
713+ let cU = dH._2
714+ let bZ = dH._7
715+ let cq = dH._9
716+ let cV = dH._10
717+ let cW = dH._11
718+ let fc = dH._12
719+ let fd = dH._13
720+ let dF = toBigInt(value(dB.payments[0]).amount)
721+ let dG = toBigInt(value(dB.payments[1]).amount)
722+ let dj = dc(dF, dG, toBigInt(0))
723+ if ((dj == dj))
721724 then {
722- let dI = invoke(aJ, "emit", [cS], nil)
723- if ((dI == dI))
725+ let dK = invoke(aJ, "emit", [cU], nil)
726+ if ((dK == dK))
724727 then {
725- let dJ = {
726- let dK = dI
727- if ($isInstanceOf(dK, "Address"))
728+ let dL = {
729+ let dM = dK
730+ if ($isInstanceOf(dM, "Address"))
728731 then {
729- let dL = dK
730- invoke(dL, "emit", [cS], nil)
732+ let dN = dM
733+ invoke(dN, "emit", [cU], nil)
731734 }
732735 else unit
733736 }
734- if ((dJ == dJ))
737+ if ((dL == dL))
735738 then {
736- let fc = if ((cT > 0))
737- then invoke(bg, "put", nil, [AttachedPayment(fa, cT)])
739+ let fe = if ((cV > 0))
740+ then invoke(bg, "put", nil, [AttachedPayment(fc, cV)])
738741 else nil
739- if ((fc == fc))
742+ if ((fe == fe))
740743 then {
741- let fd = if ((cU > 0))
742- then invoke(bg, "put", nil, [AttachedPayment(fb, cU)])
744+ let ff = if ((cW > 0))
745+ then invoke(bg, "put", nil, [AttachedPayment(fd, cW)])
743746 else nil
744- if ((fd == fd))
747+ if ((ff == ff))
745748 then {
746- let fe = if (eZ)
749+ let fg = if (fb)
747750 then {
748- let ff = invoke(bf, "stake", nil, [AttachedPayment(bX, cS)])
749- if ((ff == ff))
751+ let fh = invoke(bf, "stake", nil, [AttachedPayment(bZ, cU)])
752+ if ((fh == fh))
750753 then nil
751754 else throw("Strict value is not equal to itself.")
752755 }
753- else [ScriptTransfer(dz.caller, cS, bX)]
754- let fg = di(0, 0, 0)
755- if ((fg == fg))
756+ else [ScriptTransfer(dB.caller, cU, bZ)]
757+ let fi = dk(0, 0, 0)
758+ if ((fi == fi))
756759 then {
757- let cZ = fg._2
758- let fh = fg._1
759- let fi = dm(dh, cZ)
760- if ((fi == fi))
761- then ((co ++ fe) ++ fh)
760+ let db = fi._2
761+ let fj = fi._1
762+ let fk = do(dj, db)
763+ if ((fk == fk))
764+ then ((cq ++ fg) ++ fj)
762765 else throw("Strict value is not equal to itself.")
763766 }
764767 else throw("Strict value is not equal to itself.")
765768 }
766769 else throw("Strict value is not equal to itself.")
767770 }
768771 else throw("Strict value is not equal to itself.")
769772 }
770773 else throw("Strict value is not equal to itself.")
771774 }
772775 else throw("Strict value is not equal to itself.")
773776 }
774777 else throw("Strict value is not equal to itself.")
775778 }
776779
777780
778781
779-@Callable(dz)
780-func putForFree (fj) = if ((0 > fj))
782+@Callable(dB)
783+func putForFree (fl) = if ((0 > fl))
781784 then throw("Invalid value passed")
782785 else {
783- let dF = dC(dz, fj, false)
784- let co = dF._9
785- let dD = toBigInt(value(dz.payments[0]).amount)
786- let dE = toBigInt(value(dz.payments[1]).amount)
787- let dh = da(dD, dE, toBigInt(0))
788- if ((dh == dh))
786+ let dH = dE(dB, fl, false)
787+ let cq = dH._9
788+ let dF = toBigInt(value(dB.payments[0]).amount)
789+ let dG = toBigInt(value(dB.payments[1]).amount)
790+ let dj = dc(dF, dG, toBigInt(0))
791+ if ((dj == dj))
789792 then {
790- let fk = di(0, 0, 0)
791- let fh = fk._1
792- let cZ = fk._2
793- let fi = dm(dh, cZ)
794- if ((fi == fi))
795- then (co ++ fh)
793+ let fm = dk(0, 0, 0)
794+ let fj = fm._1
795+ let db = fm._2
796+ let fk = do(dj, db)
797+ if ((fk == fk))
798+ then (cq ++ fj)
796799 else throw("Strict value is not equal to itself.")
797800 }
798801 else throw("Strict value is not equal to itself.")
799802 }
800803
801804
802805
803-@Callable(dz)
804-func putOneTkn (fl,fm) = {
805- let fn = {
806- let fo = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
807- if ($isInstanceOf(fo, "Boolean"))
808- then fo
809- else throw(($getType(fo) + " couldn't be cast to Boolean"))
806+@Callable(dB)
807+func putOneTkn (fn,fo) = {
808+ let fp = {
809+ let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810+ if ($isInstanceOf(fq, "Boolean"))
811+ then fq
812+ else throw(($getType(fq) + " couldn't be cast to Boolean"))
810813 }
811- let fp = if (if (if (aL())
814+ let fr = if (if (if (aL())
812815 then true
813816 else (aY == l))
814817 then true
815818 else (aY == n))
816819 then true
817- else fn
818- let ev = [if (if (!(fp))
820+ else fp
821+ let ex = [if (if (!(fr))
819822 then true
820- else eP(dz))
823+ else eR(dB))
821824 then true
822- else aG("put operation is blocked by admin"), if ((size(dz.payments) == 1))
825+ else aG("put operation is blocked by admin"), if ((size(dB.payments) == 1))
823826 then true
824827 else aG("exactly 1 payment are expected")]
825- if ((ev == ev))
828+ if ((ex == ex))
826829 then {
827- let fq = dz.payments[0]
828- let dQ = fq.assetId
829- let dP = fq.amount
830- let dh = if ((dQ == ba))
831- then da(toBigInt(dP), toBigInt(0), toBigInt(0))
832- else if ((dQ == bb))
833- then da(toBigInt(0), toBigInt(dP), toBigInt(0))
830+ let fs = dB.payments[0]
831+ let dS = fs.assetId
832+ let dR = fs.amount
833+ let dj = if ((dS == ba))
834+ then dc(toBigInt(dR), toBigInt(0), toBigInt(0))
835+ else if ((dS == bb))
836+ then dc(toBigInt(0), toBigInt(dR), toBigInt(0))
834837 else aG("payment asset is not supported")
835- let X = dz.caller
836- let Y = dz.transactionId
837- let fr = dO(dP, dQ, X, Y)
838- if ((fr == fr))
838+ let X = dB.caller
839+ let Y = dB.transactionId
840+ let ft = dQ(dR, dS, X, Y)
841+ if ((ft == ft))
839842 then {
840- let dU = fr._5
841- let fs = fr._4
842- let dN = fr._3
843- let cV = fr._2
844- let ft = fr._1
845- let fu = if (if ((fl > 0))
846- then (fl > ft)
843+ let dW = ft._5
844+ let fu = ft._4
845+ let dP = ft._3
846+ let cX = ft._2
847+ let fv = ft._1
848+ let fw = if (if ((fn > 0))
849+ then (fn > fv)
847850 else false)
848- then aG(makeString(["amount to receive is less than ", toString(fl)], ""))
849- else ft
850- let dI = dG(fu)
851- if ((dI == dI))
851+ then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
852+ else fv
853+ let dK = dI(fw)
854+ if ((dK == dK))
852855 then {
853- let fe = if (fm)
856+ let fg = if (fo)
854857 then {
855- let fv = invoke(bf, "stake", nil, [AttachedPayment(aZ, fu)])
856- if ((fv == fv))
858+ let fx = invoke(bf, "stake", nil, [AttachedPayment(aZ, fw)])
859+ if ((fx == fx))
857860 then nil
858861 else throw("Strict value is not equal to itself.")
859862 }
860- else [ScriptTransfer(dz.caller, fu, aZ)]
861- let fw = if ((dN > 0))
862- then [ScriptTransfer(aK, dN, dQ)]
863+ else [ScriptTransfer(dB.caller, fw, aZ)]
864+ let fy = if ((dP > 0))
865+ then [ScriptTransfer(aK, dP, dS)]
863866 else nil
864- let fx = if ((this == aK))
867+ let fz = if ((this == aK))
865868 then $Tuple2(0, 0)
866- else if (dU)
867- then $Tuple2(-(dN), 0)
868- else $Tuple2(0, -(dN))
869- let dj = fx._1
870- let dk = fx._2
871- let fy = di(dj, dk, 0)
872- let fh = fy._1
873- let cZ = fy._2
874- let dt = value(getString(af))
875- let fi = dm(dh, cZ)
876- if ((fi == fi))
877- then $Tuple2((((cV ++ fe) ++ fw) ++ fh), fu)
869+ else if (dW)
870+ then $Tuple2(-(dP), 0)
871+ else $Tuple2(0, -(dP))
872+ let dl = fz._1
873+ let dm = fz._2
874+ let fA = dk(dl, dm, 0)
875+ let fj = fA._1
876+ let db = fA._2
877+ let dv = value(getString(af))
878+ let fk = do(dj, db)
879+ if ((fk == fk))
880+ then $Tuple2((((cX ++ fg) ++ fy) ++ fj), fw)
878881 else throw("Strict value is not equal to itself.")
879882 }
880883 else throw("Strict value is not equal to itself.")
881884 }
882885 else throw("Strict value is not equal to itself.")
883886 }
884887 else throw("Strict value is not equal to itself.")
885888 }
886889
887890
888891
889-@Callable(dz)
890-func putOneTknREADONLY (dQ,dP) = {
891- let fz = dO(dP, aQ(dQ), unit, unit)
892- let ft = fz._1
893- let cV = fz._2
894- let dN = fz._3
895- let fs = fz._4
896- let dU = fz._5
897- $Tuple2(nil, $Tuple3(ft, dN, fs))
892+@Callable(dB)
893+func putOneTknREADONLY (dS,dR) = {
894+ let fB = dQ(dR, aQ(dS), unit, unit)
895+ let fv = fB._1
896+ let cX = fB._2
897+ let dP = fB._3
898+ let fu = fB._4
899+ let dW = fB._5
900+ $Tuple2(nil, $Tuple3(fv, dP, fu))
898901 }
899902
900903
901904
902-@Callable(dz)
903-func getOneTkn (fA,fl) = {
904- let fn = {
905- let fo = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
906- if ($isInstanceOf(fo, "Boolean"))
907- then fo
908- else throw(($getType(fo) + " couldn't be cast to Boolean"))
905+@Callable(dB)
906+func getOneTkn (fC,fn) = {
907+ let fp = {
908+ let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
909+ if ($isInstanceOf(fq, "Boolean"))
910+ then fq
911+ else throw(($getType(fq) + " couldn't be cast to Boolean"))
909912 }
910- let fB = if (if (aL())
913+ let fD = if (if (aL())
911914 then true
912915 else (aY == n))
913916 then true
914- else fn
915- let ev = [if (if (!(fB))
917+ else fp
918+ let ex = [if (if (!(fD))
916919 then true
917- else eP(dz))
920+ else eR(dB))
918921 then true
919- else aG("get operation is blocked by admin"), if ((size(dz.payments) == 1))
922+ else aG("get operation is blocked by admin"), if ((size(dB.payments) == 1))
920923 then true
921924 else aG("exactly 1 payment are expected")]
922- if ((ev == ev))
925+ if ((ex == ex))
923926 then {
924- let eu = aQ(fA)
925- let fq = dz.payments[0]
926- let dQ = fq.assetId
927- let ec = fq.amount
928- let dh = da(toBigInt(0), toBigInt(0), toBigInt(ec))
929- let X = dz.caller
930- let Y = dz.transactionId
931- let fC = et(eu, ec, dQ, X, Y)
932- if ((fC == fC))
927+ let ew = aQ(fC)
928+ let fs = dB.payments[0]
929+ let dS = fs.assetId
930+ let ee = fs.amount
931+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(ee))
932+ let X = dB.caller
933+ let Y = dB.transactionId
934+ let fE = ev(ew, ee, dS, X, Y)
935+ if ((fE == fE))
933936 then {
934- let ew = fC._5
935- let fs = fC._4
936- let dN = fC._3
937- let cV = fC._2
938- let fD = fC._1
939- let dH = if (if ((fl > 0))
940- then (fl > fD)
937+ let ey = fE._5
938+ let fu = fE._4
939+ let dP = fE._3
940+ let cX = fE._2
941+ let fF = fE._1
942+ let dJ = if (if ((fn > 0))
943+ then (fn > fF)
941944 else false)
942- then aG(makeString(["amount to receive is less than ", toString(fl)], ""))
943- else fD
944- let fE = invoke(aJ, "burn", [ec], [AttachedPayment(dQ, ec)])
945- if ((fE == fE))
945+ then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
946+ else fF
947+ let fG = invoke(aJ, "burn", [ee], [AttachedPayment(dS, ee)])
948+ if ((fG == fG))
946949 then {
947- let fF = [ScriptTransfer(X, dH, eu)]
948- let fw = if ((dN > 0))
949- then [ScriptTransfer(aK, dN, eu)]
950+ let fH = [ScriptTransfer(X, dJ, ew)]
951+ let fy = if ((dP > 0))
952+ then [ScriptTransfer(aK, dP, ew)]
950953 else nil
951- let fG = {
952- let fH = if ((this == aK))
954+ let fI = {
955+ let fJ = if ((this == aK))
953956 then 0
954- else dN
955- if (ew)
956- then $Tuple2(-((dH + fH)), 0)
957- else $Tuple2(0, -((dH + fH)))
957+ else dP
958+ if (ey)
959+ then $Tuple2(-((dJ + fJ)), 0)
960+ else $Tuple2(0, -((dJ + fJ)))
958961 }
959- let dj = fG._1
960- let dk = fG._2
961- let fI = di(dj, dk, 0)
962- let fh = fI._1
963- let cZ = fI._2
964- let fi = dm(dh, cZ)
965- if ((fi == fi))
966- then $Tuple2((((cV ++ fF) ++ fw) ++ fh), dH)
962+ let dl = fI._1
963+ let dm = fI._2
964+ let fK = dk(dl, dm, 0)
965+ let fj = fK._1
966+ let db = fK._2
967+ let fk = do(dj, db)
968+ if ((fk == fk))
969+ then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
967970 else throw("Strict value is not equal to itself.")
968971 }
969972 else throw("Strict value is not equal to itself.")
970973 }
971974 else throw("Strict value is not equal to itself.")
972975 }
973976 else throw("Strict value is not equal to itself.")
974977 }
975978
976979
977980
978-@Callable(dz)
979-func getOneTknREADONLY (eu,ec) = {
980- let fJ = et(aQ(eu), ec, aZ, unit, unit)
981- let fD = fJ._1
982- let cV = fJ._2
983- let dN = fJ._3
984- let fs = fJ._4
985- let ew = fJ._5
986- $Tuple2(nil, $Tuple3(fD, dN, fs))
981+@Callable(dB)
982+func getOneTknREADONLY (ew,ee) = {
983+ let fL = ev(aQ(ew), ee, aZ, unit, unit)
984+ let fF = fL._1
985+ let cX = fL._2
986+ let dP = fL._3
987+ let fu = fL._4
988+ let ey = fL._5
989+ $Tuple2(nil, $Tuple3(fF, dP, fu))
987990 }
988991
989992
990993
991-@Callable(dz)
992-func unstakeAndGetOneTkn (fK,fA,fl) = {
993- let fn = {
994- let fo = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
995- if ($isInstanceOf(fo, "Boolean"))
996- then fo
997- else throw(($getType(fo) + " couldn't be cast to Boolean"))
994+@Callable(dB)
995+func unstakeAndGetOneTkn (fM,fC,fn) = {
996+ let fp = {
997+ let fq = invoke(aJ, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
998+ if ($isInstanceOf(fq, "Boolean"))
999+ then fq
1000+ else throw(($getType(fq) + " couldn't be cast to Boolean"))
9981001 }
999- let fB = if (if (aL())
1002+ let fD = if (if (aL())
10001003 then true
10011004 else (aY == n))
10021005 then true
1003- else fn
1004- let ev = [if (if (!(fB))
1006+ else fp
1007+ let ex = [if (if (!(fD))
10051008 then true
1006- else eP(dz))
1009+ else eR(dB))
10071010 then true
1008- else aG("get operation is blocked by admin"), if ((size(dz.payments) == 0))
1011+ else aG("get operation is blocked by admin"), if ((size(dB.payments) == 0))
10091012 then true
10101013 else aG("no payments are expected")]
1011- if ((ev == ev))
1014+ if ((ex == ex))
10121015 then {
1013- let eu = aQ(fA)
1014- let X = dz.caller
1015- let Y = dz.transactionId
1016- let dh = da(toBigInt(0), toBigInt(0), toBigInt(0))
1017- let fL = invoke(bf, "unstake", [toBase58String(aZ), fK], nil)
1018- if ((fL == fL))
1016+ let ew = aQ(fC)
1017+ let X = dB.caller
1018+ let Y = dB.transactionId
1019+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1020+ let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1021+ if ((fN == fN))
10191022 then {
1020- let fM = et(eu, fK, aZ, X, Y)
1021- if ((fM == fM))
1023+ let fO = ev(ew, fM, aZ, X, Y)
1024+ if ((fO == fO))
10221025 then {
1023- let ew = fM._5
1024- let fs = fM._4
1025- let dN = fM._3
1026- let cV = fM._2
1027- let fD = fM._1
1028- let dH = if (if ((fl > 0))
1029- then (fl > fD)
1026+ let ey = fO._5
1027+ let fu = fO._4
1028+ let dP = fO._3
1029+ let cX = fO._2
1030+ let fF = fO._1
1031+ let dJ = if (if ((fn > 0))
1032+ then (fn > fF)
10301033 else false)
1031- then aG(makeString(["amount to receive is less than ", toString(fl)], ""))
1032- else fD
1033- let fE = invoke(aJ, "burn", [fK], [AttachedPayment(aZ, fK)])
1034- if ((fE == fE))
1034+ then aG(makeString(["amount to receive is less than ", toString(fn)], ""))
1035+ else fF
1036+ let fG = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1037+ if ((fG == fG))
10351038 then {
1036- let fF = [ScriptTransfer(dz.caller, dH, eu)]
1037- let fw = if ((dN > 0))
1038- then [ScriptTransfer(aK, dN, eu)]
1039+ let fH = [ScriptTransfer(dB.caller, dJ, ew)]
1040+ let fy = if ((dP > 0))
1041+ then [ScriptTransfer(aK, dP, ew)]
10391042 else nil
1040- let fN = {
1041- let fH = if ((this == aK))
1043+ let fP = {
1044+ let fJ = if ((this == aK))
10421045 then 0
1043- else dN
1044- if (ew)
1045- then $Tuple2(-((dH + fH)), 0)
1046- else $Tuple2(0, -((dH + fH)))
1046+ else dP
1047+ if (ey)
1048+ then $Tuple2(-((dJ + fJ)), 0)
1049+ else $Tuple2(0, -((dJ + fJ)))
10471050 }
1048- let dj = fN._1
1049- let dk = fN._2
1050- let fO = di(dj, dk, 0)
1051- let fh = fO._1
1052- let cZ = fO._2
1053- let fi = dm(dh, cZ)
1054- if ((fi == fi))
1055- then $Tuple2((((cV ++ fF) ++ fw) ++ fh), dH)
1051+ let dl = fP._1
1052+ let dm = fP._2
1053+ let fQ = dk(dl, dm, 0)
1054+ let fj = fQ._1
1055+ let db = fQ._2
1056+ let fk = do(dj, db)
1057+ if ((fk == fk))
1058+ then $Tuple2((((cX ++ fH) ++ fy) ++ fj), dJ)
10561059 else throw("Strict value is not equal to itself.")
10571060 }
10581061 else throw("Strict value is not equal to itself.")
10591062 }
10601063 else throw("Strict value is not equal to itself.")
10611064 }
10621065 else throw("Strict value is not equal to itself.")
10631066 }
10641067 else throw("Strict value is not equal to itself.")
10651068 }
10661069
10671070
10681071
1069-@Callable(dz)
1072+@Callable(dB)
10701073 func get () = {
1071- let cG = dy(dz)
1072- let fP = cG._1
1073- let cn = cG._2
1074- let dB = cG._3
1075- let bV = cG._4
1076- let co = cG._5
1077- let dh = da(toBigInt(0), toBigInt(0), toBigInt(dB))
1078- let fQ = invoke(aJ, "burn", [dB], [AttachedPayment(bV, dB)])
1079- if ((fQ == fQ))
1074+ let cI = dA(dB)
1075+ let fR = cI._1
1076+ let cp = cI._2
1077+ let dD = cI._3
1078+ let bX = cI._4
1079+ let cq = cI._5
1080+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1081+ let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1082+ if ((fS == fS))
10801083 then {
1081- let fR = di(-(fP), -(cn), 0)
1082- let fh = fR._1
1083- let cZ = fR._2
1084- let fi = dm(dh, cZ)
1085- if ((fi == fi))
1086- then (co ++ fh)
1084+ let fT = dk(-(fR), -(cp), 0)
1085+ let fj = fT._1
1086+ let db = fT._2
1087+ let fk = do(dj, db)
1088+ if ((fk == fk))
1089+ then (cq ++ fj)
10871090 else throw("Strict value is not equal to itself.")
10881091 }
10891092 else throw("Strict value is not equal to itself.")
10901093 }
10911094
10921095
10931096
1094-@Callable(dz)
1095-func getNoLess (fS,fT) = {
1096- let cG = dy(dz)
1097- let cm = cG._1
1098- let cn = cG._2
1099- let dB = cG._3
1100- let bV = cG._4
1101- let co = cG._5
1102- if ((fS > cm))
1103- then throw(((("noLessThenAmtAsset failed: " + toString(cm)) + " < ") + toString(fS)))
1104- else if ((fT > cn))
1105- then throw(((("noLessThenPriceAsset failed: " + toString(cn)) + " < ") + toString(fT)))
1097+@Callable(dB)
1098+func getNoLess (fU,fV) = {
1099+ let cI = dA(dB)
1100+ let co = cI._1
1101+ let cp = cI._2
1102+ let dD = cI._3
1103+ let bX = cI._4
1104+ let cq = cI._5
1105+ if ((fU > co))
1106+ then throw(((("noLessThenAmtAsset failed: " + toString(co)) + " < ") + toString(fU)))
1107+ else if ((fV > cp))
1108+ then throw(((("noLessThenPriceAsset failed: " + toString(cp)) + " < ") + toString(fV)))
11061109 else {
1107- let dh = da(toBigInt(0), toBigInt(0), toBigInt(dB))
1108- let fQ = invoke(aJ, "burn", [dB], [AttachedPayment(bV, dB)])
1109- if ((fQ == fQ))
1110+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(dD))
1111+ let fS = invoke(aJ, "burn", [dD], [AttachedPayment(bX, dD)])
1112+ if ((fS == fS))
11101113 then {
1111- let fU = di(-(cm), -(cn), 0)
1112- let fh = fU._1
1113- let cZ = fU._2
1114- let fi = dm(dh, cZ)
1115- if ((fi == fi))
1116- then (co ++ fh)
1114+ let fW = dk(-(co), -(cp), 0)
1115+ let fj = fW._1
1116+ let db = fW._2
1117+ let fk = do(dj, db)
1118+ if ((fk == fk))
1119+ then (cq ++ fj)
11171120 else throw("Strict value is not equal to itself.")
11181121 }
11191122 else throw("Strict value is not equal to itself.")
11201123 }
11211124 }
11221125
11231126
11241127
1125-@Callable(dz)
1126-func unstakeAndGet (dH) = {
1127- let fV = if ((size(dz.payments) != 0))
1128+@Callable(dB)
1129+func unstakeAndGet (dJ) = {
1130+ let fX = if ((size(dB.payments) != 0))
11281131 then throw("No payments are expected")
11291132 else true
1130- if ((fV == fV))
1133+ if ((fX == fX))
11311134 then {
1132- let bK = aN()
1133- let bX = fromBase58String(bK[q])
1134- let dh = da(toBigInt(0), toBigInt(0), toBigInt(0))
1135- let fL = invoke(bf, "unstake", [toBase58String(bX), dH], nil)
1136- if ((fL == fL))
1135+ let bM = aN()
1136+ let bZ = fromBase58String(bM[q])
1137+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1138+ let fN = invoke(bf, "unstake", [toBase58String(bZ), dJ], nil)
1139+ if ((fN == fN))
11371140 then {
1138- let cG = bT(toBase58String(dz.transactionId), toBase58String(bX), dH, dz.caller)
1139- let cm = cG._1
1140- let cn = cG._2
1141- let ca = parseIntValue(cG._9)
1142- let co = cG._10
1143- let fW = if (if (aL())
1141+ let cI = bV(toBase58String(dB.transactionId), toBase58String(bZ), dJ, dB.caller)
1142+ let co = cI._1
1143+ let cp = cI._2
1144+ let cc = parseIntValue(cI._9)
1145+ let cq = cI._10
1146+ let fY = if (if (aL())
11441147 then true
1145- else (ca == n))
1146- then throw(("Get operation is blocked by admin. Status = " + toString(ca)))
1148+ else (cc == n))
1149+ then throw(("Get operation is blocked by admin. Status = " + toString(cc)))
11471150 else true
1148- if ((fW == fW))
1151+ if ((fY == fY))
11491152 then {
1150- let fQ = invoke(aJ, "burn", [dH], [AttachedPayment(bX, dH)])
1151- if ((fQ == fQ))
1153+ let fS = invoke(aJ, "burn", [dJ], [AttachedPayment(bZ, dJ)])
1154+ if ((fS == fS))
11521155 then {
1153- let fX = di(-(cm), -(cn), 0)
1154- let fh = fX._1
1155- let cZ = fX._2
1156- let fi = dm(dh, cZ)
1157- if ((fi == fi))
1158- then (co ++ fh)
1156+ let fZ = dk(-(co), -(cp), 0)
1157+ let fj = fZ._1
1158+ let db = fZ._2
1159+ let fk = do(dj, db)
1160+ if ((fk == fk))
1161+ then (cq ++ fj)
11591162 else throw("Strict value is not equal to itself.")
11601163 }
11611164 else throw("Strict value is not equal to itself.")
11621165 }
11631166 else throw("Strict value is not equal to itself.")
11641167 }
11651168 else throw("Strict value is not equal to itself.")
11661169 }
11671170 else throw("Strict value is not equal to itself.")
11681171 }
11691172
11701173
11711174
1172-@Callable(dz)
1173-func unstakeAndGetNoLess (fK,fY,fT) = {
1174- let fB = if (aL())
1175+@Callable(dB)
1176+func unstakeAndGetNoLess (fM,ga,fV) = {
1177+ let fD = if (aL())
11751178 then true
11761179 else (aY == n)
1177- let ev = [if (!(fB))
1180+ let ex = [if (!(fD))
11781181 then true
1179- else throw("get operation is blocked by admin"), if ((size(dz.payments) == 0))
1182+ else throw("get operation is blocked by admin"), if ((size(dB.payments) == 0))
11801183 then true
11811184 else throw("no payments are expected")]
1182- if ((ev == ev))
1185+ if ((ex == ex))
11831186 then {
1184- let dh = da(toBigInt(0), toBigInt(0), toBigInt(0))
1185- let fL = invoke(bf, "unstake", [toBase58String(aZ), fK], nil)
1186- if ((fL == fL))
1187+ let dj = dc(toBigInt(0), toBigInt(0), toBigInt(0))
1188+ let fN = invoke(bf, "unstake", [toBase58String(aZ), fM], nil)
1189+ if ((fN == fN))
11871190 then {
1188- let cG = bT(toBase58String(dz.transactionId), toBase58String(aZ), fK, dz.caller)
1189- let cm = cG._1
1190- let cn = cG._2
1191- let co = cG._10
1192- let fZ = [if ((cm >= fY))
1191+ let cI = bV(toBase58String(dB.transactionId), toBase58String(aZ), fM, dB.caller)
1192+ let co = cI._1
1193+ let cp = cI._2
1194+ let cq = cI._10
1195+ let gb = [if ((co >= ga))
11931196 then true
1194- else throw(makeString(["amount asset amount to receive is less than ", toString(fY)], "")), if ((cn >= fT))
1197+ else throw(makeString(["amount asset amount to receive is less than ", toString(ga)], "")), if ((cp >= fV))
11951198 then true
1196- else throw(makeString(["price asset amount to receive is less than ", toString(fT)], ""))]
1197- if ((fZ == fZ))
1199+ else throw(makeString(["price asset amount to receive is less than ", toString(fV)], ""))]
1200+ if ((gb == gb))
11981201 then {
1199- let fQ = invoke(aJ, "burn", [fK], [AttachedPayment(aZ, fK)])
1200- if ((fQ == fQ))
1202+ let fS = invoke(aJ, "burn", [fM], [AttachedPayment(aZ, fM)])
1203+ if ((fS == fS))
12011204 then {
1202- let ga = di(-(cm), -(cn), 0)
1203- let fh = ga._1
1204- let cZ = ga._2
1205- let fi = dm(dh, cZ)
1206- if ((fi == fi))
1207- then (co ++ fh)
1205+ let gc = dk(-(co), -(cp), 0)
1206+ let fj = gc._1
1207+ let db = gc._2
1208+ let fk = do(dj, db)
1209+ if ((fk == fk))
1210+ then (cq ++ fj)
12081211 else throw("Strict value is not equal to itself.")
12091212 }
12101213 else throw("Strict value is not equal to itself.")
12111214 }
12121215 else throw("Strict value is not equal to itself.")
12131216 }
12141217 else throw("Strict value is not equal to itself.")
12151218 }
12161219 else throw("Strict value is not equal to itself.")
12171220 }
12181221
12191222
12201223
1221-@Callable(dz)
1222-func activate (gb,gc) = if ((toString(dz.caller) != toString(aJ)))
1224+@Callable(dB)
1225+func activate (gd,ge) = if ((toString(dB.caller) != toString(aJ)))
12231226 then throw("permissions denied")
1224- else $Tuple2([StringEntry(aa(), gb), StringEntry(ab(), gc)], "success")
1227+ else $Tuple2([StringEntry(aa(), gd), StringEntry(ab(), ge)], "success")
12251228
12261229
12271230
1228-@Callable(dz)
1231+@Callable(dB)
12291232 func refreshKLp () = {
1230- let gd = valueOrElse(getInteger(ag), 0)
1231- let ge = if (((height - gd) >= aj))
1233+ let gf = valueOrElse(getInteger(ag), 0)
1234+ let gg = if (((height - gf) >= aj))
12321235 then unit
12331236 else aG(makeString([toString(aj), " blocks have not passed since the previous call"], ""))
1234- if ((ge == ge))
1237+ if ((gg == gg))
12351238 then {
1236- let dt = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aI("invalid kLp"))
1237- let gf = di(0, 0, 0)
1238- let gg = gf._1
1239- let cZ = gf._2
1240- let dl = if ((dt != cZ))
1241- then gg
1239+ let dv = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, af), "0")), aI("invalid kLp"))
1240+ let gh = dk(0, 0, 0)
1241+ let gi = gh._1
1242+ let db = gh._2
1243+ let dn = if ((dv != db))
1244+ then gi
12421245 else aG("nothing to refresh")
1243- $Tuple2(dl, toString(cZ))
1246+ $Tuple2(dn, toString(db))
12441247 }
12451248 else throw("Strict value is not equal to itself.")
12461249 }
12471250
12481251
12491252
1250-@Callable(dz)
1253+@Callable(dB)
12511254 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aN())
12521255
12531256
12541257
1255-@Callable(dz)
1258+@Callable(dB)
12561259 func getAccBalanceWrapperREADONLY (bx) = $Tuple2(nil, bw(bx))
12571260
12581261
12591262
1260-@Callable(dz)
1261-func calcPricesWrapperREADONLY (bE,bF,bJ) = {
1262- let bS = bI(bE, bF, bJ)
1263- $Tuple2(nil, [toString(bS[0]), toString(bS[1]), toString(bS[2])])
1263+@Callable(dB)
1264+func calcPricesWrapperREADONLY (bG,bH,bL) = {
1265+ let bU = bK(bG, bH, bL)
1266+ $Tuple2(nil, [toString(bU[0]), toString(bU[1]), toString(bU[2])])
12641267 }
12651268
12661269
12671270
1268-@Callable(dz)
1271+@Callable(dB)
12691272 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
12701273
12711274
12721275
1273-@Callable(dz)
1276+@Callable(dB)
12741277 func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
12751278
12761279
12771280
1278-@Callable(dz)
1281+@Callable(dB)
12791282 func calcPriceBigIntWrapperREADONLY (bz,bA) = $Tuple2(nil, toString(by(parseBigIntValue(bz), parseBigIntValue(bA))))
12801283
12811284
12821285
1283-@Callable(dz)
1284-func estimatePutOperationWrapperREADONLY (bU,cq,cr,cs,ct,cu,X,cv,cw) = $Tuple2(nil, cp(bU, cq, cr, cs, ct, cu, X, cv, cw))
1286+@Callable(dB)
1287+func estimatePutOperationWrapperREADONLY (bW,cs,ct,cu,cv,cw,X,cx,cy) = $Tuple2(nil, cr(bW, cs, ct, cu, cv, cw, X, cx, cy))
12851288
12861289
12871290
1288-@Callable(dz)
1289-func estimateGetOperationWrapperREADONLY (bU,bV,bW,X) = {
1290- let cG = bT(bU, bV, bW, addressFromStringValue(X))
1291- $Tuple2(nil, $Tuple10(cG._1, cG._2, cG._3, cG._4, cG._5, cG._6, cG._7, toString(cG._8), cG._9, cG._10))
1291+@Callable(dB)
1292+func estimateGetOperationWrapperREADONLY (bW,bX,bY,X) = {
1293+ let cI = bV(bW, bX, bY, addressFromStringValue(X))
1294+ $Tuple2(nil, $Tuple10(cI._1, cI._2, cI._3, cI._4, cI._5, cI._6, cI._7, toString(cI._8), cI._9, cI._10))
12921295 }
12931296
12941297
12951298
1296-@Callable(dz)
1299+@Callable(dB)
12971300 func statsREADONLY () = {
1298- let bK = aN()
1299- let bX = fromBase58String(bK[q])
1300- let gh = bK[r]
1301- let gi = bK[s]
1302- let cz = bK[v]
1303- let cA = bK[w]
1304- let bL = parseIntValue(bK[t])
1305- let bM = parseIntValue(bK[u])
1306- let gj = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1307- let gk = bw(gh)
1308- let gl = bw(gi)
1309- let gm = if ((gj == 0))
1301+ let bM = aN()
1302+ let bZ = fromBase58String(bM[q])
1303+ let gj = bM[r]
1304+ let gk = bM[s]
1305+ let cB = bM[v]
1306+ let cC = bM[w]
1307+ let bN = parseIntValue(bM[t])
1308+ let bO = parseIntValue(bM[u])
1309+ let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1310+ let gm = bw(gj)
1311+ let gn = bw(gk)
1312+ let go = if ((gl == 0))
13101313 then [e, e, e]
1311- else bI(gk, gl, gj)
1312- let ch = 0
1313- let gn = G(gm[1], b)
1314- let go = G(gm[2], b)
1315- let gp = value(getInteger(aJ, au(toString(this))))
1316- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gk), toString(gl), toString(gj), toString(ch), toString(gn), toString(go), toString(gp)], j))
1314+ else bK(gm, gn, gl)
1315+ let cj = 0
1316+ let gp = G(go[1], b)
1317+ let gq = G(go[2], b)
1318+ let gr = value(getInteger(aJ, au(toString(this))))
1319+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(gm), toString(gn), toString(gl), toString(cj), toString(gp), toString(gq), toString(gr)], j))
13171320 }
13181321
13191322
13201323
1321-@Callable(dz)
1322-func evaluatePutByAmountAssetREADONLY (cr) = {
1323- let bK = aN()
1324- let bX = fromBase58String(bK[q])
1325- let cx = bK[r]
1326- let bY = fromBase58String(cx)
1327- let cy = bK[s]
1328- let bZ = fromBase58String(cy)
1329- let bL = parseIntValue(bK[t])
1330- let bM = parseIntValue(bK[u])
1331- let ca = bK[p]
1332- let gj = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1333- let gk = bw(cx)
1334- let gl = bw(cy)
1335- let bG = D(gk, bL)
1336- let bH = D(gl, bM)
1337- let cg = if ((gj == 0))
1324+@Callable(dB)
1325+func evaluatePutByAmountAssetREADONLY (ct) = {
1326+ let bM = aN()
1327+ let bZ = fromBase58String(bM[q])
1328+ let cz = bM[r]
1329+ let ca = fromBase58String(cz)
1330+ let cA = bM[s]
1331+ let cb = fromBase58String(cA)
1332+ let bN = parseIntValue(bM[t])
1333+ let bO = parseIntValue(bM[u])
1334+ let cc = bM[p]
1335+ let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1336+ let gm = bw(cz)
1337+ let gn = bw(cA)
1338+ let bI = D(gm, bN)
1339+ let bJ = D(gn, bO)
1340+ let ci = if ((gl == 0))
13381341 then e
1339- else by(bH, bG)
1340- let cD = D(cr, bL)
1341- let cE = fraction(cD, cg, d)
1342- let ct = G(cE, bM)
1343- let dF = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1344- let cO = dF._1
1345- let gq = dF._3
1346- let cc = dF._4
1347- let ce = dF._5
1348- let cb = dF._6
1349- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
1342+ else by(bJ, bI)
1343+ let cF = D(ct, bN)
1344+ let cG = fraction(cF, ci, d)
1345+ let cv = G(cG, bO)
1346+ let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
1347+ let cQ = dH._1
1348+ let gs = dH._3
1349+ let ce = dH._4
1350+ let cg = dH._5
1351+ let cd = dH._6
1352+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cQ), toString(G(ci, b)), toString(ce), toString(cg), toString(cd), cc, toString(ct), toString(cv)], j))
13501353 }
13511354
13521355
13531356
1354-@Callable(dz)
1355-func evaluatePutByPriceAssetREADONLY (ct) = {
1356- let bK = aN()
1357- let bX = fromBase58String(bK[q])
1358- let cx = bK[r]
1359- let bY = fromBase58String(cx)
1360- let cy = bK[s]
1361- let bZ = fromBase58String(cy)
1362- let bL = parseIntValue(bK[t])
1363- let bM = parseIntValue(bK[u])
1364- let ca = bK[p]
1365- let gj = valueOrErrorMessage(assetInfo(bX), (("Asset " + toBase58String(bX)) + " doesn't exist")).quantity
1366- let gr = bw(cx)
1367- let gs = bw(cy)
1368- let gt = D(gr, bL)
1369- let gu = D(gs, bM)
1370- let cg = if ((gj == 0))
1357+@Callable(dB)
1358+func evaluatePutByPriceAssetREADONLY (cv) = {
1359+ let bM = aN()
1360+ let bZ = fromBase58String(bM[q])
1361+ let cz = bM[r]
1362+ let ca = fromBase58String(cz)
1363+ let cA = bM[s]
1364+ let cb = fromBase58String(cA)
1365+ let bN = parseIntValue(bM[t])
1366+ let bO = parseIntValue(bM[u])
1367+ let cc = bM[p]
1368+ let gl = valueOrErrorMessage(assetInfo(bZ), (("Asset " + toBase58String(bZ)) + " doesn't exist")).quantity
1369+ let gt = bw(cz)
1370+ let gu = bw(cA)
1371+ let gv = D(gt, bN)
1372+ let gw = D(gu, bO)
1373+ let ci = if ((gl == 0))
13711374 then e
1372- else by(gu, gt)
1373- let cE = D(ct, bM)
1374- let cD = fraction(cE, d, cg)
1375- let cr = G(cD, bL)
1376- let dF = cp("", 500000, cr, bY, ct, bZ, "", true, false)
1377- let cO = dF._1
1378- let gq = dF._3
1379- let cc = dF._4
1380- let ce = dF._5
1381- let cb = dF._6
1382- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cO), toString(G(cg, b)), toString(cc), toString(ce), toString(cb), ca, toString(cr), toString(ct)], j))
1375+ else by(gw, gv)
1376+ let cG = D(cv, bO)
1377+ let cF = fraction(cG, d, ci)
1378+ let ct = G(cF, bN)
1379+ let dH = cr("", 500000, ct, ca, cv, cb, "", true, false)
1380+ let cQ = dH._1
1381+ let gs = dH._3
1382+ let ce = dH._4
1383+ let cg = dH._5
1384+ let cd = dH._6
1385+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cQ), toString(G(ci, b)), toString(ce), toString(cg), toString(cd), cc, toString(ct), toString(cv)], j))
13831386 }
13841387
13851388
13861389
1387-@Callable(dz)
1388-func evaluateGetREADONLY (gv,gw) = {
1389- let cG = bT("", gv, gw, this)
1390- let cm = cG._1
1391- let cn = cG._2
1392- let cc = cG._5
1393- let ce = cG._6
1394- let cb = cG._7
1395- let ch = cG._8
1396- let ca = parseIntValue(cG._9)
1397- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cm), toString(cn), toString(cc), toString(ce), toString(cb), toString(ch), toString(ca)], j))
1390+@Callable(dB)
1391+func evaluateGetREADONLY (gx,gy) = {
1392+ let cI = bV("", gx, gy, this)
1393+ let co = cI._1
1394+ let cp = cI._2
1395+ let ce = cI._5
1396+ let cg = cI._6
1397+ let cd = cI._7
1398+ let cj = cI._8
1399+ let cc = parseIntValue(cI._9)
1400+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(co), toString(cp), toString(ce), toString(cg), toString(cd), toString(cj), toString(cc)], j))
13981401 }
13991402
14001403
1401-@Verifier(gx)
1402-func gy () = {
1403- let gz = {
1404- let dK = eM()
1405- if ($isInstanceOf(dK, "ByteVector"))
1404+@Verifier(gz)
1405+func gA () = {
1406+ let gB = {
1407+ let dM = eO()
1408+ if ($isInstanceOf(dM, "ByteVector"))
14061409 then {
1407- let eQ = dK
1408- eQ
1410+ let eS = dM
1411+ eS
14091412 }
1410- else if ($isInstanceOf(dK, "Unit"))
1411- then gx.senderPublicKey
1413+ else if ($isInstanceOf(dM, "Unit"))
1414+ then gz.senderPublicKey
14121415 else throw("Match error")
14131416 }
1414- let dK = gx
1415- if ($isInstanceOf(dK, "Order"))
1417+ let dM = gz
1418+ if ($isInstanceOf(dM, "Order"))
14161419 then {
1417- let dp = dK
1418- let gA = aM()
1419- let az = do(dp)
1420- let aA = sigVerify(dp.bodyBytes, dp.proofs[0], dp.senderPublicKey)
1421- let aB = sigVerify(dp.bodyBytes, dp.proofs[1], gA)
1420+ let dr = dM
1421+ let gC = aM()
1422+ let az = dq(dr)
1423+ let aA = sigVerify(dr.bodyBytes, dr.proofs[0], dr.senderPublicKey)
1424+ let aB = sigVerify(dr.bodyBytes, dr.proofs[1], gC)
14221425 if (if (if (az)
14231426 then aA
14241427 else false)
14251428 then aB
14261429 else false)
14271430 then true
14281431 else ay(az, aA, aB)
14291432 }
1430- else if ($isInstanceOf(dK, "SetScriptTransaction"))
1433+ else if ($isInstanceOf(dM, "SetScriptTransaction"))
14311434 then {
1432- let eN = dK
1433- let gB = blake2b256(value(eN.script))
1434- let gC = fromBase64String(value(getString(aJ, aw())))
1435- let gD = scriptHash(this)
1436- if (if ((gC == gB))
1437- then (gD != gB)
1435+ let eP = dM
1436+ let gD = blake2b256(value(eP.script))
1437+ let gE = fromBase64String(value(getString(aJ, aw())))
1438+ let gF = scriptHash(this)
1439+ if (if ((gE == gD))
1440+ then (gF != gD)
14381441 else false)
14391442 then true
1440- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1443+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14411444 }
1442- else sigVerify(gx.bodyBytes, gx.proofs[0], gz)
1445+ else sigVerify(gz.bodyBytes, gz.proofs[0], gB)
14431446 }
14441447

github/deemru/w8io/026f985 
562.01 ms