tx · FhGMw8shRkR4idZMVhJocXEhPo5TBr2GxM25aUBQwJVW

3N8iNNRC4UfDK4aJctSvHajiZ81fzSumCeP:  -0.04300000 Waves

2023.04.14 14:33 [2534153] smart account 3N8iNNRC4UfDK4aJctSvHajiZ81fzSumCeP > SELF 0.00000000 Waves

{ "type": 13, "id": "FhGMw8shRkR4idZMVhJocXEhPo5TBr2GxM25aUBQwJVW", "fee": 4300000, "feeAssetId": null, "timestamp": 1681472010498, "version": 2, "chainId": 84, "sender": "3N8iNNRC4UfDK4aJctSvHajiZ81fzSumCeP", "senderPublicKey": "F7NZd812aXMUyDcj1XaB3wgMJXJfUsq3RhPhrEZ9b6ND", "proofs": [ "4P4168dViwa1fo87hVLQZCfsBAAnmFYHBnVgSJpWvnzTs5gz7gCjHzpvA2gzhyajCZJaYoRCQodWixcF7J5iw5fR" ], "script": "base64:BgL3NwgCEgASBQoDAQQBEgcKBQEEAQgBEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASABIDCgEIEgUKAwEBARIECgIBARIECgIIARIECgIICBILCgkIAQECAQIIBAQSBgoECAgBCBIAEgMKAQESAwoBARIECgIIASIKbFBkZWNpbWFscyIGc2NhbGU4IgxzY2FsZThCaWdJbnQiB3NjYWxlMTgiCnplcm9CaWdJbnQiBGJpZzAiBGJpZzEiBGJpZzIiC3dhdmVzU3RyaW5nIgNTRVAiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIg5pZHhQb29sQWRkcmVzcyINaWR4UG9vbFN0YXR1cyIQaWR4UG9vbExQQXNzZXRJZCINaWR4QW10QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIg5pZHhBbXRBc3NldERjbSIQaWR4UHJpY2VBc3NldERjbSIOaWR4SUFtdEFzc2V0SWQiEGlkeElQcmljZUFzc2V0SWQiDWlkeExQQXNzZXREY20iEmlkeFBvb2xBbXRBc3NldEFtdCIUaWR4UG9vbFByaWNlQXNzZXRBbXQiEWlkeFBvb2xMUEFzc2V0QW10IhlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0IhppZHhGYWN0b3J5U2xpcHBhZ2VDb250cmFjdCIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiC3RvWDE4QmlnSW50Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIMZnJvbVgxOFJvdW5kIgVyb3VuZCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50Igxzd2FwQ29udHJhY3QiAmZjIgNtcGsiBHBtcGsiAnBsIgJwaCIBaCIJdGltZXN0YW1wIgNwYXUiC3VzZXJBZGRyZXNzIgR0eElkIgNnYXUiAmFhIgJwYSIGa2V5RmVlIgpmZWVEZWZhdWx0IgNmZWUiBmtleUtMcCIVa2V5S0xwUmVmcmVzaGVkSGVpZ2h0IhJrZXlLTHBSZWZyZXNoRGVsYXkiFmtMcFJlZnJlc2hEZWxheURlZmF1bHQiD2tMcFJlZnJlc2hEZWxheSIUa2V5QWRkaXRpb25hbEJhbGFuY2UiB2Fzc2V0SWQiFmtleVN0YWtpbmdBc3NldEJhbGFuY2UiGmdldEFkZGl0aW9uYWxCYWxhbmNlT3JaZXJvIhxnZXRTdGFraW5nQXNzZXRCYWxhbmNlT3JaZXJvIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiFmtleVNraXBPcmRlclZhbGlkYXRpb24iC3Bvb2xBZGRyZXNzIg90aHJvd09yZGVyRXJyb3IiCm9yZGVyVmFsaWQiDm9yZGVyVmFsaWRJbmZvIgtzZW5kZXJWYWxpZCIMbWF0Y2hlclZhbGlkIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIMZ2V0SW50T3JGYWlsIgh0aHJvd0VyciIDbXNnIgZmbXRFcnIiD2ZhY3RvcnlDb250cmFjdCITZmVlQ29sbGVjdG9yQWRkcmVzcyIFaW5GZWUiAUAiBm91dEZlZSIQaXNHbG9iYWxTaHV0ZG93biITZ2V0TWF0Y2hlclB1Yk9yRmFpbCINZ2V0UG9vbENvbmZpZyIIYW10QXNzZXQiCnByaWNlQXNzZXQiDHBhcnNlQXNzZXRJZCIFaW5wdXQiD2Fzc2V0SWRUb1N0cmluZyIPcGFyc2VQb29sQ29uZmlnIgpwb29sQ29uZmlnIhBwb29sQ29uZmlnUGFyc2VkIgskdDA5MDU4OTIyNCIOY2ZnUG9vbEFkZHJlc3MiDWNmZ1Bvb2xTdGF0dXMiDGNmZ0xwQXNzZXRJZCIQY2ZnQW1vdW50QXNzZXRJZCIPY2ZnUHJpY2VBc3NldElkIhZjZmdBbW91bnRBc3NldERlY2ltYWxzIhVjZmdQcmljZUFzc2V0RGVjaW1hbHMiEGdldEZhY3RvcnlDb25maWciD3N0YWtpbmdDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCIRZGF0YVB1dEFjdGlvbkluZm8iDWluQW10QXNzZXRBbXQiD2luUHJpY2VBc3NldEFtdCIIb3V0THBBbXQiBXByaWNlIh1zbGlwcGFnZVRvbGVyYW5jZVBhc3NlZEJ5VXNlciIVc2xpcHBhZ2VUb2xlcmFuY2VSZWFsIgh0eEhlaWdodCILdHhUaW1lc3RhbXAiEnNsaXBhZ2VBbXRBc3NldEFtdCIUc2xpcGFnZVByaWNlQXNzZXRBbXQiEWRhdGFHZXRBY3Rpb25JbmZvIg5vdXRBbXRBc3NldEFtdCIQb3V0UHJpY2VBc3NldEFtdCIHaW5McEFtdCINZ2V0QWNjQmFsYW5jZSINYmFsYW5jZU9uUG9vbCIMdG90YWxCYWxhbmNlIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIUY2FsY1ByaWNlQmlnSW50Um91bmQiB2dldFJhdGUiBXByb3h5IgNpbnYiByRtYXRjaDAiAXIiB2RlcG9zaXQiBmFtb3VudCIOc3Rha2luZ0Fzc2V0SWQiGGN1cnJlbnRBZGRpdGlvbmFsQmFsYW5jZSIaY3VycmVudFN0YWtpbmdBc3NldEJhbGFuY2UiBWFzc2V0Ig1kZXBvc2l0SW52b2tlIhRyZWNlaXZlZFN0YWtpbmdBc3NldCIUbmV3QWRkaXRpb25hbEJhbGFuY2UiFm5ld1N0YWtpbmdBc3NldEJhbGFuY2UiCHdpdGhkcmF3Igxwcm94eVJhdGVNdWwiDXByb2ZpdEFkZHJlc3MiEGN1cnJlbnRQcm94eVJhdGUiB29sZFJhdGUiDHN0YWtpbmdBc3NldCIUb2xkU2VuZFN0YWtpbmdBbW91bnQiFnNlbmRTdGFraW5nQXNzZXRBbW91bnQiDHByb2ZpdEFtb3VudCIOd2l0aGRyYXdJbnZva2UiDnJlY2VpdmVkQXNzZXRzIhNnZXRMZWFzZVByb3h5Q29uZmlnIgFhIhFyZWJhbGFuY2VJbnRlcm5hbCILdGFyZ2V0UmF0aW8iCm1pbkJhbGFuY2UiFGxlYXNhYmxlVG90YWxCYWxhbmNlIhd0YXJnZXRBZGRpdGlvbmFsQmFsYW5jZSIEZGlmZiIPc2VuZEFzc2V0QW1vdW50Ig5nZXRBc3NldEFtb3VudCIOcmViYWxhbmNlQXNzZXQiDSR0MDE1NDYwMTU1OTYiCmlzTGVhc2FibGUiC2xlYXNlZFJhdGlvIgxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIUc3Rha2luZ1Byb2ZpdEFkZHJlc3MiGXdpdGhkcmF3QW5kUmViYWxhbmNlQXNzZXQiCWdldEFtb3VudCINJHQwMTU5OTUxNjEzMSIXbmV3VG90YWxMZWFzYWJsZUJhbGFuY2UiDndpdGhkcmF3QW1vdW50Ihd3aXRoZHJhd0FuZFJlYmFsYW5jZUFsbCIUYW1vdW50QXNzZXRPdXRBbW91bnQiE3ByaWNlQXNzZXRPdXRBbW91bnQiEkFtQW10V2l0aGRyYXdTdGF0ZSISUHJBbXRXaXRoZHJhd1N0YXRlIhBwcml2YXRlQ2FsY1ByaWNlIgphbUFzc2V0RGNtIgpwckFzc2V0RGNtIgVhbUFtdCIFcHJBbXQiDmFtdEFzc2V0QW10WDE4IhBwcmljZUFzc2V0QW10WDE4IgpjYWxjUHJpY2VzIgVscEFtdCIDY2ZnIgthbXRBc3NldERjbSINcHJpY2VBc3NldERjbSIIcHJpY2VYMTgiCGxwQW10WDE4IhNscFByaWNlSW5BbUFzc2V0WDE4IhNscFByaWNlSW5QckFzc2V0WDE4Ig9jYWxjdWxhdGVQcmljZXMiBnByaWNlcyIUZXN0aW1hdGVHZXRPcGVyYXRpb24iBnR4SWQ1OCIKcG10QXNzZXRJZCIIcG10THBBbXQiCWxwQXNzZXRJZCIJYW1Bc3NldElkIglwckFzc2V0SWQiCnBvb2xTdGF0dXMiCmxwRW1pc3Npb24iCWFtQmFsYW5jZSIMYW1CYWxhbmNlWDE4IglwckJhbGFuY2UiDHByQmFsYW5jZVgxOCILY3VyUHJpY2VYMTgiCGN1clByaWNlIgtwbXRMcEFtdFgxOCINbHBFbWlzc2lvblgxOCILb3V0QW1BbXRYMTgiC291dFByQW10WDE4IghvdXRBbUFtdCIIb3V0UHJBbXQiBXN0YXRlIhRlc3RpbWF0ZVB1dE9wZXJhdGlvbiIRc2xpcHBhZ2VUb2xlcmFuY2UiDGluQW1Bc3NldEFtdCILaW5BbUFzc2V0SWQiDGluUHJBc3NldEFtdCILaW5QckFzc2V0SWQiCmlzRXZhbHVhdGUiBmVtaXRMcCIMYW1Bc3NldElkU3RyIgxwckFzc2V0SWRTdHIiC2lBbXRBc3NldElkIg1pUHJpY2VBc3NldElkIg5pbkFtQXNzZXRJZFN0ciIOaW5QckFzc2V0SWRTdHIiD2luQW1Bc3NldEFtdFgxOCIPaW5QckFzc2V0QW10WDE4Igx1c2VyUHJpY2VYMTgiA3JlcyILc2xpcHBhZ2VYMTgiFHNsaXBwYWdlVG9sZXJhbmNlWDE4IgpwclZpYUFtWDE4IgphbVZpYVByWDE4IgxleHBlY3RlZEFtdHMiEWV4cEFtdEFzc2V0QW10WDE4IhNleHBQcmljZUFzc2V0QW10WDE4IgljYWxjTHBBbXQiDmNhbGNBbUFzc2V0UG10Ig5jYWxjUHJBc3NldFBtdCIMc2xpcHBhZ2VDYWxjIgllbWl0THBBbXQiBmFtRGlmZiIGcHJEaWZmIgtjb21tb25TdGF0ZSIHY2FsY0tMcCINYW1vdW50QmFsYW5jZSIMcHJpY2VCYWxhbmNlIhBhbW91bnRCYWxhbmNlWDE4Ig9wcmljZUJhbGFuY2VYMTgiCnVwZGF0ZWRLTHAiDmNhbGNDdXJyZW50S0xwIhBhbW91bnRBc3NldERlbHRhIg9wcmljZUFzc2V0RGVsdGEiFGxwQXNzZXRFbWlzc2lvbkRlbHRhIhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIg9scEFzc2V0RW1pc3Npb24iCmN1cnJlbnRLTHAiEnJlZnJlc2hLTHBJbnRlcm5hbCIXYW1vdW50QXNzZXRCYWxhbmNlRGVsdGEiFnByaWNlQXNzZXRCYWxhbmNlRGVsdGEiB2FjdGlvbnMiE3NraXBPcmRlclZhbGlkYXRpb24iEnZhbGlkYXRlVXBkYXRlZEtMcCIGb2xkS0xwIht2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQiBW9yZGVyIhFhbW91bnRBc3NldEFtb3VudCIQcHJpY2VBc3NldEFtb3VudCINJHQwMjg1MjAyODczMiIDa0xwIg0kdDAyOTE3MjI5MjcyIg11bnVzZWRBY3Rpb25zIgZrTHBOZXciDGlzT3JkZXJWYWxpZCIEaW5mbyIJY29tbW9uR2V0IgFpIgNwbXQiBnBtdEFtdCIJY29tbW9uUHV0IgphbUFzc2V0UG10IgpwckFzc2V0UG10IgZlc3RQdXQiBGVtaXQiB2VtaXRJbnYiDWVtaXRJbnZMZWdhY3kiFWxlZ2FjeUZhY3RvcnlDb250cmFjdCIHdGFrZUZlZSIJZmVlQW1vdW50Ig9jYWxjUHV0T25lVG9rZW4iEHBheW1lbnRBbW91bnRSYXciDnBheW1lbnRBc3NldElkIgZpc0V2YWwiEGFtb3VudEJhbGFuY2VSYXciD3ByaWNlQmFsYW5jZVJhdyIUcGF5bWVudEluQW1vdW50QXNzZXQiDSR0MDMyMzg1MzI2NzgiEGFtb3VudEJhbGFuY2VPbGQiD3ByaWNlQmFsYW5jZU9sZCINJHQwMzI2ODIzMjgzMSIUYW1vdW50QXNzZXRBbW91bnRSYXciE3ByaWNlQXNzZXRBbW91bnRSYXciDSR0MDMyOTYzMzMwMjciDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDM0NzA4MzQ4NzUiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiGG91dEluQW1vdW50QXNzZXREZWNpbWFscyIMYW1CYWxhbmNlT2xkIgxwckJhbGFuY2VPbGQiCm91dEJhbGFuY2UiEG91dEJhbGFuY2VCaWdJbnQiDnJlZGVlbWVkQmlnSW50IglhbW91bnRSYXciDSR0MDM2OTUzMzcwMDkiC3RvdGFsQW1vdW50Ig0kdDAzNzAxMzM3MjM5IgtvdXRBbUFtb3VudCILb3V0UHJBbW91bnQiDGFtQmFsYW5jZU5ldyIMcHJCYWxhbmNlTmV3IhhhbW91bnRCb3RoSW5QYXltZW50QXNzZXQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0Iglpc01hbmFnZXIiAnBrIgttdXN0TWFuYWdlciICcGQiDWNsZWFuQW1vdW50SW4iCWlzUmV2ZXJzZSINZmVlUG9vbEFtb3VudCINJHQwMzkxMjUzOTQzMCIIYXNzZXRPdXQiB2Fzc2V0SW4iEnBvb2xBc3NldEluQmFsYW5jZSITcG9vbEFzc2V0T3V0QmFsYW5jZSIJYW1vdW50T3V0IgRvbGRLIgRuZXdLIgZjaGVja0siDGFtb3VudE91dE1pbiIJYWRkcmVzc1RvIgtzd2FwQ29udGFjdCIIY2hlY2tNaW4iDnJlYmFsYW5jZVN0YXRlIg13aXRoZHJhd1N0YXRlIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIg9zaG91bGRBdXRvU3Rha2UiBGFtSWQiBHBySWQiDHNsaXBwYWdlQUludiIMc2xpcHBhZ2VQSW52IgpscFRyYW5zZmVyIgtzbHBTdGFrZUludiINJHQwNDQ0NzY0NDkzOCIRcmVmcmVzaEtMcEFjdGlvbnMiEWlzVXBkYXRlZEtMcFZhbGlkIgNyZWIiC21heFNsaXBwYWdlIg0kdDA0NTU1MDQ1NjE1IgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDQ2ODAzNDY5NTUiBWJvbnVzIhNlbWl0QW1vdW50RXN0aW1hdGVkIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwNDc1NDE0NzczOCINJHQwNDc3NDE0Nzg0OSINJHQwNDgyMDQ0ODM2MSINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwNDkyNDY0OTM5OSIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDA1MDA2MzUwMzEwIhBmZWVBbW91bnRGb3JDYWxjIg0kdDA1MDMxMzUwNDIxIg0kdDA1MDY5OTUwODU1Ig11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDA1MTc2MDUxOTExIg0kdDA1MjU3MDUyODE3Ig0kdDA1MjgyMDUyOTI4IhRidXJuTFBBc3NldE9uRmFjdG9yeSINJHQwNTQwMjM1NDEwNCISbm9MZXNzVGhlbkFtdEFzc2V0IhRub0xlc3NUaGVuUHJpY2VBc3NldCINJHQwNTUxOTk1NTI4MCINY2hlY2tQYXltZW50cyIPY2hlY2tQb29sU3RhdHVzIg0kdDA1NjU1MjU2NjMzIhVub0xlc3NUaGVuQW1vdW50QXNzZXQiDGNoZWNrQW1vdW50cyINJHQwNTgwNzQ1ODE1NSILYW10QXNzZXRTdHIiDXByaWNlQXNzZXRTdHIiGGxhc3RSZWZyZXNoZWRCbG9ja0hlaWdodCIdY2hlY2tMYXN0UmVmcmVzaGVkQmxvY2tIZWlnaHQiDSR0MDU5MzU5NTk0MjMiEGtMcFVwZGF0ZUFjdGlvbnMiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCINcG9vbExQQmFsYW5jZSISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIg0kdDA2ODA4NTY4MjAyIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2iBAQABYQAIAAFiAIDC1y8AAWMJALYCAQCAwtcvAAFkCQC2AgEAgICQu7rWrfANAAFlCQC2AgEAAAABZgkAtgIBAAAAAWcJALYCAQABAAFoCQC2AgEAAgABaQIFV0FWRVMAAWoCAl9fAAFrAAEAAWwAAgABbQADAAFuAAQAAW8AAQABcAACAAFxAAMAAXIABAABcwAFAAF0AAYAAXUABwABdgAIAAF3AAkAAXgACgABeQABAAF6AAIAAUEAAwABQgABAAFDAAcBAUQCAUUBRgkAvAIDCQC2AgEFAUUFAWQJALYCAQUBRgEBRwIBRQFGCQC8AgMFAUUFAWQFAUYBAUgCAUkBSgkAoAMBCQC8AgMFAUkJALYCAQUBSgUBZAEBSwMBSQFKAUwJAKADAQkAvQIEBQFJCQC2AgEFAUoFAWQFAUwBAU0DAU4BTwFQCQBrAwUBTgUBTwUBUAEBUQEBSQMJAGYCAAAFAUkJAQEtAQUBSQUBSQEBUgEBSQMJAL8CAgUBZQUBSQkAvgIBBQFJBQFJAQFTAAIQJXNfX3N3YXBDb250cmFjdAEBVAACEyVzX19mYWN0b3J5Q29udHJhY3QBAVUAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBVgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBVwACESVzJXNfX3ByaWNlX19sYXN0AQFYAgFZAVoJALkJAgkAzAgCAhglcyVzJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgkApAMBBQFZCQDMCAIJAKQDAQUBWgUDbmlsBQFqAQJhYQICYWICYWMJAKwCAgkArAICCQCsAgICCyVzJXMlc19fUF9fBQJhYgICX18FAmFjAQJhZAICYWICYWMJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQJhYgICX18FAmFjAQJhZQACDyVzX19hbW91bnRBc3NldAECYWYAAg4lc19fcHJpY2VBc3NldAACYWcCByVzX19mZWUAAmFoCQBrAwAKBQFiAJBOAAJhaQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJhZwUCYWgAAmFqCQC5CQIJAMwIAgICJXMJAMwIAgIDa0xwBQNuaWwFAWoAAmFrCQC5CQIJAMwIAgICJXMJAMwIAgISa0xwUmVmcmVzaGVkSGVpZ2h0BQNuaWwFAWoAAmFsCQC5CQIJAMwIAgICJXMJAMwIAgIPcmVmcmVzaEtMcERlbGF5BQNuaWwFAWoAAmFtAB4AAmFuCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmFsBQJhbQECYW8BAmFwCQC5CQIJAMwIAgIEJXMlcwkAzAgCAg1zdGFrZWRCYWxhbmNlCQDMCAIFAmFwBQNuaWwFAWoBAmFxAQJhcAkAuQkCCQDMCAICBCVzJXMJAMwIAgIRc2hhcmVBc3NldEJhbGFuY2UJAMwIAgUCYXAFA25pbAUBagECYXIBAmFwCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhbwEFAmFwAAABAmFzAQJhcAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYXEBBQJhcAAAAQJhdAACESVzX19mYWN0b3J5Q29uZmlnAQJhdQACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYXYBAmF3CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF3AiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYXgCAmF5AmF6CQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJheQICX18FAmF6AghfX2NvbmZpZwECYUEBAmFCCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFCAQJhQwACDCVzX19zaHV0ZG93bgECYUQBAmFFCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYUUBAmFGAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gAAmFHAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYUgBAmFJCQCsAgICGyVzJXNfX3NraXBPcmRlclZhbGlkYXRpb25fXwUCYUkBAmFKBAJhSwJhTAJhTQJhTgkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAiRvcmRlciB2YWxpZGF0aW9uIGZhaWxlZDogb3JkZXJWYWxpZD0JAKUDAQUCYUsCAiAoBQJhTAIBKQINIHNlbmRlclZhbGlkPQkApQMBBQJhTQIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYU4BAmFPAgJhUAJhUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmFQBQJhUQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhUAkAzAgCAgEuCQDMCAIFAmFRCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFSAgJhUAJhUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmFQBQJhUQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJhUAkAzAgCAgEuCQDMCAIFAmFRCQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFTAQJhVAkAAgEJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJhVAUDbmlsAgEgAQJhVQECYVQJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJhVAUDbmlsAgEgAAJhVgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFPAgUEdGhpcwkBAVQAAAJhVwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmFPAgUCYVYFAmFHAAJhWAoAAmFZCQD8BwQFAmFWAhBnZXRJbkZlZVJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCA0ludAUCYVkJAAIBCQCsAgIJAAMBBQJhWQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AAJhWgoAAmFZCQD8BwQFAmFWAhFnZXRPdXRGZWVSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmFZAgNJbnQFAmFZCQACAQkArAICCQADAQUCYVkCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAECYmEACQELdmFsdWVPckVsc2UCCQCbCAIFAmFWCQECYUMABwECYmIACQDZBAEJAQJhTwIFAmFWCQECYXUAAQJiYwAEAmJkCQECYU8CBQR0aGlzCQECYWUABAJiZQkBAmFPAgUEdGhpcwkBAmFmAAQCYXoJAQJhUgIFAmFWCQECYUEBBQJiZQQCYXkJAQJhUgIFAmFWCQECYUEBBQJiZAkAtQkCCQECYU8CBQJhVgkBAmF4AgkApAMBBQJheQkApAMBBQJhegUBagECYmYBAmJnAwkAAAIFAmJnBQFpBQR1bml0CQDZBAEFAmJnAQJiaAECYmcDCQAAAgUCYmcFBHVuaXQFAWkJANgEAQkBBXZhbHVlAQUCYmcBAmJpAQJiagkAmQoHCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmJqBQFvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmoFAXAJANkEAQkAkQMCBQJiagUBcQkBAmJmAQkAkQMCBQJiagUBcgkBAmJmAQkAkQMCBQJiagUBcwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJqBQF0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYmoFAXUAAmJrCQECYmkBCQECYmMAAAJibAUCYmsAAmJtCAUCYmwCXzEAAmJuCAUCYmwCXzIAAmJvCAUCYmwCXzMAAmJwCAUCYmwCXzQAAmJxCAUCYmwCXzUAAmJyCAUCYmwCXzYAAmJzCAUCYmwCXzcBAmJ0AAkAtQkCCQECYU8CBQJhVgkBAmF0AAUBagACYnUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJidAAFAUICGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MAAmJ2CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCCQECYnQABQFDAhlpbmNvcnJlY3Qgc3Rha2luZyBhZGRyZXNzAQJidwoCYngCYnkCYnoCYkECYkICYkMCYkQCYkUCYkYCYkcJALkJAgkAzAgCAhQlZCVkJWQlZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJ4CQDMCAIJAKQDAQUCYnkJAMwIAgkApAMBBQJiegkAzAgCCQCkAwEFAmJBCQDMCAIJAKQDAQUCYkIJAMwIAgkApAMBBQJiQwkAzAgCCQCkAwEFAmJECQDMCAIJAKQDAQUCYkUJAMwIAgkApAMBBQJiRgkAzAgCCQCkAwEFAmJHBQNuaWwFAWoBAmJIBgJiSQJiSgJiSwJiQQJiRAJiRQkAuQkCCQDMCAICDCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmJJCQDMCAIJAKQDAQUCYkoJAMwIAgkApAMBBQJiSwkAzAgCCQCkAwEFAmJBCQDMCAIJAKQDAQUCYkQJAMwIAgkApAMBBQJiRQUDbmlsBQFqAQJiTAECYXAEAmJNAwkAAAIFAmFwAgVXQVZFUwgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAPAHAgUEdGhpcwkA2QQBBQJhcAQCYk4JAGUCCQBkAgUCYk0JAQJhcgEFAmFwCQECYXMBBQJhcAkAlgMBCQDMCAIAAAkAzAgCBQJiTgUDbmlsAQJiTwICYlACYlEJALwCAwUCYlAFAWQFAmJRAQJiUgMCYlACYlEBTAkAvQIEBQJiUAUBZAUCYlEFAUwBAmJTAQJiVAQCYlUJAPwHBAUCYlQCB2dldFJhdGUFA25pbAUDbmlsAwkAAAIFAmJVBQJiVQQCYlYFAmJVAwkAAQIFAmJWAgNJbnQEAmJXBQJiVgUCYlcJAQJhUwECIHByb3h5LmdldFJhdGUoKSB1bmV4cGVjdGVkIHZhbHVlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiWAQCYXACYlkCYloCYlQEAmNhCQECYXIBBQJhcAMJAAACBQJjYQUCY2EEAmNiCQECYXMBBQJiWgMJAAACBQJjYgUCY2IEAmNjCQECYmYBBQJhcAMJAGYCBQJiWQAABAJjZAkA/AcEBQJiVAIHZGVwb3NpdAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJjYwUCYlkFA25pbAMJAAACBQJjZAUCY2QEAmJWBQJjZAMJAAECBQJiVgIDSW50BAJjZQUCYlYEAmNmCQBkAgUCY2EFAmJZBAJjZwkAZAIFAmNiBQJjZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFvAQUCYXAFAmNmCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXEBBQJiWgUCY2cFA25pbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNoBgJhcAJiWQJiWgJiVAJjaQJjagQCY2EJAQJhcgEFAmFwAwkAAAIFAmNhBQJjYQQCY2IJAQJhcwEFAmJaAwkAAAIFAmNiBQJjYgQCY2sJAQJiUwEFAmJUAwkAAAIFAmNrBQJjawQCY2wJAGsDBQJjaQUCY2EFAmNiBAJjbQkBAmJmAQUCYloEAmNuCQBrAwUCY2kFAmJZBQJjbAQCY28JAGsDBQJjaQUCYlkFAmNrBAJjcAkAlgMBCQDMCAIAAAkAzAgCCQBlAgUCY24FAmNvBQNuaWwDCQBmAgUCY28AAAQCY3EJAPwHBAUCYlQCCHdpdGhkcmF3BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmNtBQJjbwUDbmlsAwkAAAIFAmNxBQJjcQQCYlYFAmNxAwkAAQIFAmJWAgNJbnQEAmNyBQJiVgQCY2YJAGUCBQJjYQUCY3IEAmNnCQBlAgkAZQIFAmNiBQJjbwUCY3AJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbwEFAmFwBQJjZgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAQUCYloFAmNnCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmNqBQJjcAkBAmJmAQUCYloFA25pbAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNzAQJhcAQCYlYJAPwHBAUCYVYCGmdldFBvb2xMZWFzZUNvbmZpZ1JFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwkAzAgCBQJhcAUDbmlsBQNuaWwDCQABAgUCYlYCMChCb29sZWFuLCBJbnQsIEludCwgU3RyaW5nLCBTdHJpbmcsIEludCwgU3RyaW5nKQQCY3QFAmJWBQJjdAkBAmFTAQkArAICCQCsAgICAVsFAmFwAh1dIGdldExlYXNlUHJveHlDb25maWcoKSBlcnJvcgECY3UHAmN2AmFwAmJaAmN3AmJUAmNpAmNqBAJjYQkBAmFyAQUCYXADCQAAAgUCY2EFAmNhBAJjYgkBAmFzAQUCYloDCQAAAgUCY2IFAmNiBAJjeAkAlgMBCQDMCAIAAAkAzAgCCQBlAgkBAmJMAQUCYXAFAmN3BQNuaWwEAmN5CQBrAwUCY3YFAmN4AGQEAmN6CQBlAgUCY2EFAmN5AwkAAAIFAmN6AAAFA25pbAMJAGYCAAAFAmN6BAJjQQkBAS0BBQJjegkBAmJYBAUCYXAFAmNBBQJiWgUCYlQEAmNCBQJjegkBAmNoBgUCYXAFAmNCBQJiWgUCYlQFAmNpBQJjagkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECY0MBAmFwBAJjRAkBAmNzAQUCYXAEAmNFCAUCY0QCXzEEAmNGCAUCY0QCXzIEAmN3CAUCY0QCXzMEAmNHCAUCY0QCXzQEAmNICAUCY0QCXzUEAmNpCAUCY0QCXzYEAmNJCAUCY0QCXzcDBQJjRQkBAmN1BwUCY0YFAmFwBQJjSAUCY3cJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNHBQJjaQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0kFA25pbAECY0oCAmFwAmNLBAJjTAkBAmNzAQUCYXAEAmNFCAUCY0wCXzEEAmNGCAUCY0wCXzIEAmN3CAUCY0wCXzMEAmNHCAUCY0wCXzQEAmNICAUCY0wCXzUEAmNpCAUCY0wCXzYEAmNJCAUCY0wCXzcDBQJjRQQCY00JAJYDAQkAzAgCAAAJAMwIAgkAZQIJAGUCCQECYkwBBQJhcAUCY0sFAmN3BQNuaWwDCQAAAgUCY00FAmNNBAJjZgkAawMFAmNGBQJjTQBkAwkAAAIFAmNmBQJjZgQCY04JAGUCCQECYXIBBQJhcAUCY2YDCQAAAgUCY04FAmNOAwkAZgIAAAUCY04JAQJiWAQFAmFwCQEBLQEFAmNOBQJjSAkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0cJAQJjaAYFAmFwBQJjTgUCY0gJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmNHBQJjaQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0kJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA25pbAECY08CAmNQAmNRBAJjUgkBAmNKAgkBAmFPAgUEdGhpcwkBAmFlAAUCY1AEAmNTCQECY0oCCQECYU8CBQR0aGlzCQECYWYABQJjUQkAzggCBQJjUgUCY1MBAmNUBAJjVQJjVgJjVwJjWAQCY1kJAQFEAgUCY1cFAmNVBAJjWgkBAUQCBQJjWAUCY1YJAQJiTwIFAmNaBQJjWQECZGEDAmNXAmNYAmRiBAJkYwkBAmJjAAQCZGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdAQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdQQCZGYJAQJjVAQFAmRkBQJkZQUCY1cFAmNYBAJiUQkBAUQCBQJjVwUCZGQEAmJQCQEBRAIFAmNYBQJkZQQCZGcJAQFEAgUCZGIFAWIEAmRoCQECYk8CBQJiUQUCZGcEAmRpCQECYk8CBQJiUAUCZGcJAMwIAgUCZGYJAMwIAgUCZGgJAMwIAgUCZGkFA25pbAECZGoDAmNXAmNYAmRiBAJkawkBAmRhAwUCY1cFAmNYBQJkYgkAzAgCCQEBSAIJAJEDAgUCZGsAAAUBYgkAzAgCCQEBSAIJAJEDAgUCZGsAAQUBYgkAzAgCCQEBSAIJAJEDAgUCZGsAAgUBYgUDbmlsAQJkbAQCZG0CZG4CZG8CYWIEAmRjCQECYmMABAJkcAkAkQMCBQJkYwUBcQQCZHEJAJEDAgUCZGMFAXIEAmRyCQCRAwIFAmRjBQFzBAJjVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF0BAJjVgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF1BAJkcwkAkQMCBQJkYwUBcAQCZHQICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQJkcAkArAICCQCsAgICBkFzc2V0IAUCZHACDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5AwkBAiE9AgUCZHAFAmRuCQACAQIVSW52YWxpZCBhc3NldCBwYXNzZWQuBAJkdQkBAmJMAQUCZHEEAmR2CQEBRAIFAmR1BQJjVQQCZHcJAQJiTAEFAmRyBAJkeAkBAUQCBQJkdwUCY1YEAmR5CQECYk8CBQJkeAUCZHYEAmR6CQEBSAIFAmR5BQFiBAJkQQkBAUQCBQJkbwUBYgQCZEIJAQFEAgUCZHQFAWIEAmRDCQC8AgMFAmR2BQJkQQUCZEIEAmRECQC8AgMFAmR4BQJkQQUCZEIEAmRFCQEBSwMFAmRDBQJjVQUFRkxPT1IEAmRGCQEBSwMFAmREBQJjVgUFRkxPT1IEAmRHAwkAAAIFAmRtAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCZEUDCQAAAgUCZHECBVdBVkVTBQR1bml0CQDZBAEFAmRxCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFiBQJkRgMJAAACBQJkcgIFV0FWRVMFBHVuaXQJANkEAQUCZHIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFkAgkApQgBBQJhYgUCZG0JAQJiSAYFAmRFBQJkRgUCZG8FAmR6BQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmR6CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmR6BQNuaWwJAJwKCgUCZEUFAmRGBQJkcQUCZHIFAmR1BQJkdwUCZHQFAmR5BQJkcwUCZEcBAmRICQJkbQJkSQJkSgJkSwJkTAJkTQJhYgJkTgJkTwQCZGMJAQJiYwAEAmRwCQDZBAEJAJEDAgUCZGMFAXEEAmRQCQCRAwIFAmRjBQFyBAJkUQkAkQMCBQJkYwUBcwQCZFIJAJEDAgUCZGMFAXYEAmRTCQCRAwIFAmRjBQF3BAJkZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF0BAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF1BAJkcwkAkQMCBQJkYwUBcAQCZHQICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHAJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHACDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJkVAkA2AQBCQELdmFsdWVPckVsc2UCBQJkSwkA2QQBAgVXQVZFUwQCZFUJANgEAQkBC3ZhbHVlT3JFbHNlAgUCZE0JANkEAQIFV0FWRVMDAwkBAiE9AgUCZFAFAmRUBgkBAiE9AgUCZFEFAmRVCQACAQIiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQCZHUDBQJkTgkBAmJMAQUCZFAJAGUCCQECYkwBBQJkUAUCZEoEAmR3AwUCZE4JAQJiTAEFAmRRCQBlAgkBAmJMAQUCZFEFAmRMBAJkVgkBAUQCBQJkSgUCZGQEAmRXCQEBRAIFAmRMBQJkZQQCZFgJAQJiTwIFAmRXBQJkVgQCZHYJAQFEAgUCZHUFAmRkBAJkeAkBAUQCBQJkdwUCZGUEAmRZAwkAAAIFAmR0AAAEAmR5BQFlBAJkWgUBZQQCZGcJAHYGCQC5AgIFAmRWBQJkVwAACQC2AgEABQABAAAFBERPV04JAJcKBQkBAUgCBQJkZwUBYgkBAUgCBQJkVgUCZGQJAQFIAgUCZFcFAmRlCQECYk8CCQC3AgIFAmR4BQJkVwkAtwICBQJkdgUCZFYFAmRaBAJkeQkBAmJPAgUCZHgFAmR2BAJkWgkAvAIDCQEBUgEJALgCAgUCZHkFAmRYBQFkBQJkeQQCZWEJAQFEAgUCZEkFAWIDAwkBAiE9AgUCZHkFAWUJAL8CAgUCZFoFAmVhBwkAAgEJAKwCAgkArAICCQCsAgICD1ByaWNlIHNsaXBwYWdlIAkApgMBBQJkWgIeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQCmAwEFAmVhBAJkQgkBAUQCBQJkdAUBYgQCZWIJAL0CBAUCZFYJAQJiUgMFAmR4BQJkdgUHQ0VJTElORwUBZAUHQ0VJTElORwQCZWMJAL0CBAUCZFcFAWQJAQJiUgMFAmR4BQJkdgUFRkxPT1IFB0NFSUxJTkcEAmVkAwkAvwICBQJlYgUCZFcJAJQKAgUCZWMFAmRXCQCUCgIFAmRWBQJlYgQCZWUIBQJlZAJfMQQCZWYIBQJlZAJfMgQCZGcJAL0CBAUCZEIFAmVmBQJkeAUFRkxPT1IJAJcKBQkBAUsDBQJkZwUBYgUFRkxPT1IJAQFLAwUCZWUFAmRkBQdDRUlMSU5HCQEBSwMFAmVmBQJkZQUHQ0VJTElORwUCZHkFAmRaBAJlZwgFAmRZAl8xBAJlaAgFAmRZAl8yBAJlaQgFAmRZAl8zBAJkegkBAUgCCAUCZFkCXzQFAWIEAmVqCQEBSAIIBQJkWQJfNQUBYgMJAGcCAAAFAmVnCQACAQI2SW52YWxpZCBjYWxjdWxhdGlvbnMuIExQIGNhbGN1bGF0ZWQgaXMgbGVzcyB0aGFuIHplcm8uBAJlawMJAQEhAQUCZE8AAAUCZWcEAmVsCQBlAgUCZEoFAmVoBAJlbQkAZQIFAmRMBQJlaQQCZW4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZHoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZHoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgUCYWIFAmRtCQECYncKBQJlaAUCZWkFAmVrBQJkegUCZEkFAmVqBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJlbAUCZW0FA25pbAkAnwoNBQJlZwUCZWsFAmR6BQJkdQUCZHcFAmR0BQJkcAUCZHMFAmVuBQJlbAUCZW0FAmRLBQJkTQECZW8DAmVwAmVxAmR0BAJlcgkBAUcCBQJlcAkAtgIBBQJicgQCZXMJAQFHAgUCZXEJALYCAQUCYnMEAmV0CQC8AgMJAHYGCQC5AgIFAmVyBQJlcwAACQC2AgEABQABABIFBERPV04FAWcFAmR0AwkAAAIFAmR0BQFmBQFmBQJldAECZXUDAmV2AmV3AmV4BAJleQkAuAICCQC2AgEJAQJiTAEJAQJiaAEFAmJwBQJldgQCZXoJALgCAgkAtgIBCQECYkwBCQECYmgBBQJicQUCZXcEAmVBCQC4AgIJALYCAQgJAQV2YWx1ZQEJAOwHAQUCYm8IcXVhbnRpdHkFAmV4BAJlQgkBAmVvAwUCZXkFAmV6BQJlQQUCZUIBAmVDAwJlRAJlRQJleAQCZXkJAGQCCQECYkwBCQECYmgBBQJicAUCZUQEAmV6CQBkAgkBAmJMAQkBAmJoAQUCYnEFAmVFBAJlQQkAZAIICQEFdmFsdWUBCQDsBwEFAmJvCHF1YW50aXR5BQJleAQCZXQJAQJlbwMJALYCAQUCZXkJALYCAQUCZXoJALYCAQUCZUEEAmVGCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJhawUGaGVpZ2h0CQDMCAIJAQtTdHJpbmdFbnRyeQIFAmFqCQCmAwEFAmV0BQNuaWwJAJQKAgUCZUYFAmV0AQJlRwAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYVYJAQJhSAEJAKUIAQUEdGhpcwcBAmVIAgJlSQJldAMJAMACAgUCZXQFAmVJBgkBAmFTAQkAuQkCCQDMCAICInVwZGF0ZWQgS0xwIGxvd2VyIHRoYW4gY3VycmVudCBLTHAJAMwIAgkApgMBBQJlSQkAzAgCCQCmAwEFAmV0BQNuaWwCASABAmVKAQJlSwQCZXkJAQJiTAEJAQJiaAEFAmJwBAJlegkBAmJMAQkBAmJoAQUCYnEEAmVMCAUCZUsGYW1vdW50BAJlTQkAbgQIBQJlSwZhbW91bnQIBQJlSwVwcmljZQUBYgUFRkxPT1IEAmVOAwkAAAIIBQJlSwlvcmRlclR5cGUFA0J1eQkAlAoCBQJlTAkBAS0BBQJlTQkAlAoCCQEBLQEFAmVMBQJlTQQCZUQIBQJlTgJfMQQCZUUIBQJlTgJfMgMDAwkBAmJhAAYJAAACBQJibgUBbQYJAAACBQJibgUBbgkAAgECHEV4Y2hhbmdlIG9wZXJhdGlvbnMgZGlzYWJsZWQDAwkBAiE9AggIBQJlSwlhc3NldFBhaXILYW1vdW50QXNzZXQFAmJwBgkBAiE9AggIBQJlSwlhc3NldFBhaXIKcHJpY2VBc3NldAUCYnEJAAIBAhNXcm9uZyBvcmRlciBhc3NldHMuBAJlTwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUCYWoCATAJAQJhVQECC2ludmFsaWQga0xwBAJlUAkBAmVDAwUCZUQFAmVFAAAEAmVRCAUCZVACXzEEAmVSCAUCZVACXzIEAmVTCQDAAgIFAmVSBQJlTwQCZVQJALkJAgkAzAgCAgRrTHA9CQDMCAIJAKYDAQUCZU8JAMwIAgIIIGtMcE5ldz0JAMwIAgkApgMBBQJlUgkAzAgCAhQgYW1vdW50QXNzZXRCYWxhbmNlPQkAzAgCCQCkAwEFAmV5CQDMCAICEyBwcmljZUFzc2V0QmFsYW5jZT0JAMwIAgkApAMBBQJlegkAzAgCAhkgYW1vdW50QXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZUQJAMwIAgIYIHByaWNlQXNzZXRCYWxhbmNlRGVsdGE9CQDMCAIJAKQDAQUCZUUJAMwIAgIIIGhlaWdodD0JAMwIAgkApAMBBQZoZWlnaHQFA25pbAIACQCUCgIFAmVTBQJlVAECZVUBAmVWAwkBAiE9AgkAkAMBCAUCZVYIcGF5bWVudHMAAQkAAgECHWV4YWN0bHkgMSBwYXltZW50IGlzIGV4cGVjdGVkBAJlVwkBBXZhbHVlAQkAkQMCCAUCZVYIcGF5bWVudHMAAAQCZG4JAQV2YWx1ZQEIBQJlVwdhc3NldElkBAJlWAgFAmVXBmFtb3VudAQCZFkJAQJkbAQJANgEAQgFAmVWDXRyYW5zYWN0aW9uSWQJANgEAQUCZG4FAmVYCAUCZVYGY2FsbGVyBAJkRQgFAmRZAl8xBAJkRggFAmRZAl8yBAJkcwkBDXBhcnNlSW50VmFsdWUBCAUCZFkCXzkEAmRHCAUCZFkDXzEwAwMJAQJiYQAGCQAAAgUCZHMFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRzCQCXCgUFAmRFBQJkRgUCZVgFAmRuBQJkRwECZVkDAmVWAmRJAmRPAwkBAiE9AgkAkAMBCAUCZVYIcGF5bWVudHMAAgkAAgECH2V4YWN0bHkgMiBwYXltZW50cyBhcmUgZXhwZWN0ZWQEAmVaCQEFdmFsdWUBCQCRAwIIBQJlVghwYXltZW50cwAABAJmYQkBBXZhbHVlAQkAkQMCCAUCZVYIcGF5bWVudHMAAQQCZmIJAQJkSAkJANgEAQgFAmVWDXRyYW5zYWN0aW9uSWQFAmRJCAUCZVoGYW1vdW50CAUCZVoHYXNzZXRJZAgFAmZhBmFtb3VudAgFAmZhB2Fzc2V0SWQJAKUIAQgFAmVWBmNhbGxlcgcFAmRPBAJkcwkBDXBhcnNlSW50VmFsdWUBCAUCZmICXzgDAwMJAQJiYQAGCQAAAgUCZHMFAWwGCQAAAgUCZHMFAW4JAAIBCQCsAgICLFB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmRzBQJmYgECZmMBAmJZBAJmZAkA/AcEBQJhVgIEZW1pdAkAzAgCBQJiWQUDbmlsBQNuaWwDCQAAAgUCZmQFAmZkBAJmZQQCYlYFAmZkAwkAAQIFAmJWAgdBZGRyZXNzBAJmZgUCYlYJAPwHBAUCZmYCBGVtaXQJAMwIAgUCYlkFA25pbAUDbmlsBQR1bml0AwkAAAIFAmZlBQJmZQUCYlkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZnAgJiWQJhaQQCZmgDCQAAAgUCYWkAAAAACQBrAwUCYlkFAmFpBQFiCQCUCgIJAGUCBQJiWQUCZmgFAmZoAQJmaQQCZmoCZmsCYWICYWMEAmZsCQAAAgUCYWMFBHVuaXQEAmZtCQECYkwBCQECYmgBBQJicAQCZm4JAQJiTAEJAQJiaAEFAmJxBAJmbwMJAAACBQJmawUCYnAGAwkAAAIFAmZrBQJicQcJAQJhUwECDWludmFsaWQgYXNzZXQEAmZwAwUCZmwJAJQKAgUCZm0FAmZuAwUCZm8JAJQKAgkAZQIFAmZtBQJmagUCZm4JAJQKAgUCZm0JAGUCBQJmbgUCZmoEAmZxCAUCZnACXzEEAmZyCAUCZnACXzIEAmZzAwUCZm8JAJQKAgUCZmoAAAkAlAoCAAAFAmZqBAJmdAgFAmZzAl8xBAJmdQgFAmZzAl8yBAJlTAgJAQJmZwIFAmZ0BQJhWAJfMQQCZU0ICQECZmcCBQJmdQUCYVgCXzEEAmZ2CQECZmcCBQJmagUCYVgEAmZ3CAUCZnYCXzEEAmZoCAUCZnYCXzIEAmZ4CQBkAgUCZnEFAmVMBAJmeQkAZAIFAmZyBQJlTQQCZnoJAQJiTwIJAQFEAgUCZnkFAmJzCQEBRAIFAmZ4BQJicgQCZkEJAQFIAgUCZnoFAWIEAmZCAwUCZm8FAmZxBQJmcgQCZkMJALYCAQUCZkIEAmZECQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYm8JAKwCAgkArAICAgZhc3NldCAJANgEAQUCYm8CDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmRQMJAL8CAgUCZkQFAWYGCQECYVMBAiJpbml0aWFsIGRlcG9zaXQgcmVxdWlyZXMgYWxsIGNvaW5zAwkAAAIFAmZFBQJmRQQCZkYJALYCAQUCZncEAmZHCQCWAwEJAMwIAgAACQDMCAIJAKADAQkAugICCQC5AgIFAmZECQC4AgIJAQpzcXJ0QmlnSW50BAkAtwICBQFkCQC6AgIJALkCAgUCZkYFAWQFAmZDABIAEgUERE9XTgUBZAUBZAUDbmlsBAJlbgMFAmZsBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFXAAUCZkEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFYAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZkEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgkApQgBCQEFdmFsdWUBBQJhYgkA2AQBCQEFdmFsdWUBBQJhYwkBAmJ3CgUCZnQFAmZ1BQJmRwUCZkEAAAAABQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wAAAAAAUDbmlsBAJmSAkBAmJPAgkBAUQCBQJmcgUCYnMJAQFEAgUCZnEFAmJyBAJmSQkBAUgCBQJmSAUBYgQCZkoEAmZLAwUCZm8JAJQKAgUCZnQFAmZxCQCUCgIFAmZ1BQJmcgQCYlkIBQJmSwJfMQQCZkwIBQJmSwJfMgQCZk0JAKADAQkAvAIDBQJmRAkAtgIBCQBpAgUCYlkAAgkAtgIBBQJmTAkAawMJAGUCBQJmRwUCZk0FAWIFAmZNCQCXCgUFAmZHBQJlbgUCZmgFAmZKBQJmbwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZk4FAmZPAmZ3AmZrAmFiAmFjBAJmbAkAAAIFAmFjBQR1bml0BAJkYwkBAmJjAAQCZGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdAQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdQQCZlAJAMwIAgMJAAACBQJmawUCYm8GCQECYVMBAhBpbnZhbGlkIGxwIGFzc2V0BQNuaWwDCQAAAgUCZlAFAmZQBAJmUQMJAAACBQJmTwUCYnAGAwkAAAIFAmZPBQJicQcJAQJhUwECDWludmFsaWQgYXNzZXQEAmZSAwUCZlEJALYCAQkBAmJMAQkBAmJoAQUCYnAJALYCAQkBAmJMAQkBAmJoAQUCYnEEAmZTAwUCZlEFAmRkBQJkZQQCZlQJAQJiTAEJAQJiaAEFAmJwBAJmVQkBAmJMAQkBAmJoAQUCYnEEAmZWAwUCZlEFAmZUBQJmVQQCZlcJALYCAQUCZlYEAmZECQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYm8JAKwCAgkArAICAgZhc3NldCAJANgEAQUCYm8CDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmWAkAtgIBBQJmdwQCZlkJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZlIJALgCAgUBZAkAdgYJALgCAgUBZAkAugICCQC5AgIFAmZYBQFkBQJmRAASBQFoAAAAEgUERE9XTgUBZAUDbmlsBAJmWgkBAmZnAgUCZlkFAmFaBAJnYQgFAmZaAl8xBAJmaAgFAmZaAl8yBAJnYgMFAmZRCQCWCgQFAmdhAAAJAGUCBQJmVAUCZlkFAmZVCQCWCgQAAAUCZ2EFAmZUCQBlAgUCZlUFAmZZBAJnYwgFAmdiAl8xBAJnZAgFAmdiAl8yBAJnZQgFAmdiAl8zBAJnZggFAmdiAl80BAJmegkBAmJPAgkBAUQCBQJnZgUCYnMJAQFEAgUCZ2UFAmJyBAJmQQkBAUgCBQJmegUBYgQCZW4DBQJmbAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIJAKUIAQkBBXZhbHVlAQUCYWIJANgEAQkBBXZhbHVlAQUCYWMJAQJiSAYFAmdjBQJnZAUCZncFAmZBBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVwAFAmZBCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBWAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmZBBQNuaWwEAmZICQECYk8CCQEBRAIFAmZVBQJicwkBAUQCBQJmVAUCYnIEAmZJCQEBSAIFAmZIBQFiBAJmSgQCZ2cJAGgCCQCgAwEJALwCAwUCZlIFAmZYBQJmRAACCQBrAwkAZQIFAmdhBQJnZwUBYgUCZ2cJAJcKBQUCZ2EFAmVuBQJmaAUCZkoFAmZRCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJnaAAEAmJWCQCiCAEJAQFVAAMJAAECBQJiVgIGU3RyaW5nBAJnaQUCYlYJANkEAQUCZ2kDCQABAgUCYlYCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECZ2oABAJiVgkAoggBCQEBVgADCQABAgUCYlYCBlN0cmluZwQCZ2kFAmJWCQDZBAEFAmdpAwkAAQIFAmJWAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmdrAQJlVgQCYlYJAQJnaAADCQABAgUCYlYCCkJ5dGVWZWN0b3IEAmdsBQJiVgkAAAIIBQJlVg9jYWxsZXJQdWJsaWNLZXkFAmdsAwkAAQIFAmJWAgRVbml0CQAAAggFAmVWBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQJnbQECZVYEAmduCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmJWCQECZ2gAAwkAAQIFAmJWAgpCeXRlVmVjdG9yBAJnbAUCYlYDCQAAAggFAmVWD2NhbGxlclB1YmxpY0tleQUCZ2wGBQJnbgMJAAECBQJiVgIEVW5pdAMJAAACCAUCZVYGY2FsbGVyBQR0aGlzBgUCZ24JAAIBAgtNYXRjaCBlcnJvch4CZVYBCXJlYmFsYW5jZQAJAM4IAgkBAmNDAQkBAmFPAgUEdGhpcwkBAmFlAAkBAmNDAQkBAmFPAgUEdGhpcwkBAmFmAAJlVgEhY2FsY3VsYXRlQW1vdW50T3V0Rm9yU3dhcFJFQURPTkxZAwJnbwJncAJncQQCZ3IDCQAAAgUCZ3AHBAJncwkBAmFPAgUEdGhpcwkBAmFmAAQCZ3QJAQJhTwIFBHRoaXMJAQJhZQAJAJQKAgUCZ3MFAmd0BAJncwkBAmFPAgUEdGhpcwkBAmFlAAQCZ3QJAQJhTwIFBHRoaXMJAQJhZgAJAJQKAgUCZ3MFAmd0BAJncwgFAmdyAl8xBAJndAgFAmdyAl8yBAJndQkBAmJMAQUCZ3QEAmd2CQECYkwBBQJncwQCZ3cJAGsDBQJndgUCZ28JAGQCBQJndQUCZ28EAmd4CQC5AgIJALYCAQUCZ3UJALYCAQUCZ3YEAmd5CQC5AgIJALcCAgkAtwICCQC2AgEJAQJiTAEFAmd0CQC2AgEFAmdvCQC2AgEFAmdxCQC4AgIJALYCAQkBAmJMAQUCZ3MJALYCAQUCZ3cEAmd6AwkAwAICBQJneQUCZ3gGCQACAQIUbmV3IEsgaXMgZmV3ZXIgZXJyb3IDCQAAAgUCZ3oFAmd6CQCUCgIFA25pbAUCZ3cJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVYBJmNhbGN1bGF0ZUFtb3VudE91dEZvclN3YXBBbmRTZW5kVG9rZW5zBQJnbwJncAJnQQJnQgJncQQCZ0MKAAJhWQkA/AcEBQJhVgIXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmFZAgZTdHJpbmcFAmFZCQACAQkArAICCQADAQUCYVkCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCZlAJAMwIAgMJAGcCCAkBBXZhbHVlAQkAkQMCCAUCZVYIcGF5bWVudHMAAAZhbW91bnQFAmdvBgkBAmFTAQIMV3JvbmcgYW1vdW50CQDMCAIDCQAAAggFAmVWBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZ0MGCQECYVMBAhFQZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFAmZQBQJmUAQCZVcJAQV2YWx1ZQEJAJEDAggFAmVWCHBheW1lbnRzAAAEAmd0CQECYmgBCAUCZVcHYXNzZXRJZAQCZ3MDCQAAAgUCZ3AHCQECYU8CBQR0aGlzCQECYWYACQECYU8CBQR0aGlzCQECYWUABAJndQkAZQIJAQJiTAEFAmd0CAkBBXZhbHVlAQkAkQMCCAUCZVYIcGF5bWVudHMAAAZhbW91bnQEAmd2CQECYkwBBQJncwQCZ3cJAGsDBQJndgUCZ28JAGQCBQJndQUCZ28EAmd4CQC5AgIJALYCAQUCZ3UJALYCAQUCZ3YEAmd5CQC5AgIJALcCAgkAtgIBCQECYkwBBQJndAkAtgIBBQJncQkAuAICCQC2AgEJAQJiTAEFAmdzCQC2AgEFAmd3BAJnegMJAMACAgUCZ3kFAmd4BgkAAgECFG5ldyBLIGlzIGZld2VyIGVycm9yAwkAAAIFAmd6BQJnegQCZ0QDCQBnAgUCZ3cFAmdBBgkAAgECLEV4Y2hhbmdlIHJlc3VsdCBpcyBmZXdlciBjb2lucyB0aGFuIGV4cGVjdGVkAwkAAAIFAmdEBQJnRAQCZ0UJAQJjQwEFAmd0AwkAAAIFAmdFBQJnRQQCZ0YJAQJjSgIFAmdzBQJndwMJAAACBQJnRgUCZ0YJAJQKAgkAzggCCQDOCAIFAmdGBQJnRQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQJnQgUCZ3cJAQJiZgEFAmdzBQNuaWwFAmd3CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVWAQpzZXRNYW5hZ2VyAQJnRwQCZ0gJAQJnbQEFAmVWAwkAAAIFAmdIBQJnSAQCZ0kJANkEAQUCZ0cDCQAAAgUCZ0kFAmdJCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAAUCZ0cFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVgEOY29uZmlybU1hbmFnZXIABAJnSgkBAmdqAAQCZ0sDCQEJaXNEZWZpbmVkAQUCZ0oGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdLBQJnSwQCZ0wDCQAAAggFAmVWD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZ0oGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmdMBQJnTAkAzAgCCQELU3RyaW5nRW50cnkCCQEBVQAJANgEAQkBBXZhbHVlAQUCZ0oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVYABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVYBA3B1dAICZEkCZ00DCQBmAgAABQJkSQkAAgECIEludmFsaWQgc2xpcHBhZ2VUb2xlcmFuY2UgcGFzc2VkBAJmYgkBAmVZAwUCZVYFAmRJBgQCZWsIBQJmYgJfMgQCZHAIBQJmYgJfNwQCZEcIBQJmYgJfOQQCZWwIBQJmYgNfMTAEAmVtCAUCZmIDXzExBAJnTggFAmZiA18xMgQCZ08IBQJmYgNfMTMEAmVaCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlVghwYXltZW50cwAABmFtb3VudAQCZmEJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVWCHBheW1lbnRzAAEGYW1vdW50BAJlQgkBAmV1AwUCZVoFAmZhCQC2AgEAAAMJAAACBQJlQgUCZUIEAmZkCQD8BwQFAmFWAgRlbWl0CQDMCAIFAmVrBQNuaWwFA25pbAMJAAACBQJmZAUCZmQEAmZlBAJiVgUCZmQDCQABAgUCYlYCB0FkZHJlc3MEAmZmBQJiVgkA/AcEBQJmZgIEZW1pdAkAzAgCBQJlawUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZmUFAmZlBAJnUAMJAGYCBQJlbAAACQD8BwQFAmJ2AgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZ04FAmVsBQNuaWwFA25pbAMJAAACBQJnUAUCZ1AEAmdRAwkAZgIFAmVtAAAJAPwHBAUCYnYCA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJnTwUCZW0FA25pbAUDbmlsAwkAAAIFAmdRBQJnUQQCZ1IDBQJnTQQCZ1MJAPwHBAUCYnUCBXN0YWtlBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmRwBQJlawUDbmlsAwkAAAIFAmdTBQJnUwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJlVgZjYWxsZXIFAmVrBQJkcAUDbmlsBAJnVAkBAmVDAwAAAAAAAAMJAAACBQJnVAUCZ1QEAmV0CAUCZ1QCXzIEAmdVCAUCZ1QCXzEEAmdWCQECZUgCBQJlQgUCZXQDCQAAAgUCZ1YFAmdWBAJnVwkA/AcEBQR0aGlzAglyZWJhbGFuY2UFA25pbAUDbmlsAwkAAAIFAmdXBQJnVwkAzggCCQDOCAIFAmRHBQJnUgUCZ1UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVYBCnB1dEZvckZyZWUBAmdYAwkAZgIAAAUCZ1gJAAIBAhRJbnZhbGlkIHZhbHVlIHBhc3NlZAQCZmIJAQJlWQMFAmVWBQJnWAcEAmRHCAUCZmICXzkEAmVaCQC2AgEICQEFdmFsdWUBCQCRAwIIBQJlVghwYXltZW50cwAABmFtb3VudAQCZmEJALYCAQgJAQV2YWx1ZQEJAJEDAggFAmVWCHBheW1lbnRzAAEGYW1vdW50BAJlQgkBAmV1AwUCZVoFAmZhCQC2AgEAAAMJAAACBQJlQgUCZUIEAmdZCQECZUMDAAAAAAAABAJnVQgFAmdZAl8xBAJldAgFAmdZAl8yBAJnVgkBAmVIAgUCZUIFAmV0AwkAAAIFAmdWBQJnVgkAzggCBQJkRwUCZ1UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVYBCXB1dE9uZVRrbgICZ1oCaGEEAmhiCgACYVkJAPwHBAUCYVYCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhWQIHQm9vbGVhbgUCYVkJAAIBCQCsAgIJAAMBBQJhWQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaGMDAwMJAQJiYQAGCQAAAgUCYm4FAWwGCQAAAgUCYm4FAW4GBQJoYgQCZlAJAMwIAgMDCQEBIQEFAmhjBgkBAmdrAQUCZVYGCQECYVMBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlVghwYXltZW50cwABBgkBAmFTAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlAFAmZQBAJoZAkAkQMCCAUCZVYIcGF5bWVudHMAAAQCZmsIBQJoZAdhc3NldElkBAJmaggFAmhkBmFtb3VudAQCZUIDCQAAAgUCZmsFAmJwCQECZXUDCQC2AgEFAmZqCQC2AgEAAAkAtgIBAAADCQAAAgUCZmsFAmJxCQECZXUDCQC2AgEAAAkAtgIBBQJmagkAtgIBAAAJAQJhUwECHnBheW1lbnQgYXNzZXQgaXMgbm90IHN1cHBvcnRlZAMJAAACBQJlQgUCZUIEAmFiCAUCZVYGY2FsbGVyBAJhYwgFAmVWDXRyYW5zYWN0aW9uSWQEAmhlCQECZmkEBQJmagUCZmsFAmFiBQJhYwMJAAACBQJoZQUCaGUEAmZvCAUCaGUCXzUEAmhmCAUCaGUCXzQEAmZoCAUCaGUCXzMEAmVuCAUCaGUCXzIEAmhnCAUCaGUCXzEEAmhoAwMJAGYCBQJnWgAACQBmAgUCZ1oFAmhnBwkBAmFTAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJnWgUDbmlsAgAFAmhnBAJmZAkBAmZjAQUCaGgDCQAAAgUCZmQFAmZkBAJnUgMFAmhhBAJoaQkA/AcEBQJidQIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYm8FAmhoBQNuaWwDCQAAAgUCaGkFAmhpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmVWBmNhbGxlcgUCaGgFAmJvBQNuaWwEAmhqAwkAZgIFAmZoAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVcFAmZoBQJmawUDbmlsBQNuaWwEAmhrAwkAAAIFBHRoaXMFAmFXCQCUCgIAAAAAAwUCZm8JAJQKAgkBAS0BBQJmaAAACQCUCgIAAAkBAS0BBQJmaAQCZUQIBQJoawJfMQQCZUUIBQJoawJfMgQCaGwJAQJlQwMFAmVEBQJlRQAABAJnVQgFAmhsAl8xBAJldAgFAmhsAl8yBAJlTwkBBXZhbHVlAQkAoggBBQJhagQCZ1YJAQJlSAIFAmVCBQJldAMJAAACBQJnVgUCZ1YEAmdXCQD8BwQFBHRoaXMCCXJlYmFsYW5jZQUDbmlsBQNuaWwDCQAAAgUCZ1cFAmdXCQCUCgIJAM4IAgkAzggCCQDOCAIFAmVuBQJnUgUCaGoFAmdVBQJoaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVgERcHV0T25lVGtuUkVBRE9OTFkCAmZrAmZqBAJobQkBAmZpBAUCZmoJAQJiZgEFAmZrBQR1bml0BQR1bml0BAJoZwgFAmhtAl8xBAJlbggFAmhtAl8yBAJmaAgFAmhtAl8zBAJoZggFAmhtAl80BAJmbwgFAmhtAl81CQCUCgIFA25pbAkAlQoDBQJoZwUCZmgFAmhmAmVWAQlnZXRPbmVUa24CAmhuAmdaBAJoYgoAAmFZCQD8BwQFAmFWAihpc1Bvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZFJFQURPTkxZCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQABAgUCYVkCB0Jvb2xlYW4FAmFZCQACAQkArAICCQADAQUCYVkCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4EAmhvAwMJAQJiYQAGCQAAAgUCYm4FAW4GBQJoYgQCZlAJAMwIAgMDCQEBIQEFAmhvBgkBAmdrAQUCZVYGCQECYVMBAiFnZXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJlVghwYXltZW50cwABBgkBAmFTAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlAFAmZQBAJmTwkBAmJmAQUCaG4EAmhkCQCRAwIIBQJlVghwYXltZW50cwAABAJmawgFAmhkB2Fzc2V0SWQEAmZ3CAUCaGQGYW1vdW50BAJlQgkBAmV1AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlQgUCZUIEAmFiCAUCZVYGY2FsbGVyBAJhYwgFAmVWDXRyYW5zYWN0aW9uSWQEAmhwCQECZk4FBQJmTwUCZncFAmZrBQJhYgUCYWMDCQAAAgUCaHAFAmhwBAJmUQgFAmhwAl81BAJoZggFAmhwAl80BAJmaAgFAmhwAl8zBAJlbggFAmhwAl8yBAJocQgFAmhwAl8xBAJiWQMDCQBmAgUCZ1oAAAkAZgIFAmdaBQJocQcJAQJhUwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1oFA25pbAIABQJocQQCaHIJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCZncFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZmsFAmZ3BQNuaWwDCQAAAgUCaHIFAmhyBAJnRgkBAmNKAgUCaG4JAGQCBQJiWQkAlgMBCQDMCAIAAAkAzAgCBQJmaAUDbmlsBAJocwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhYgUCYlkFAmZPBQNuaWwEAmhqAwkAZgIFAmZoAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYVcFAmZoBQJmTwUDbmlsBQNuaWwEAmh0BAJodQMJAAACBQR0aGlzBQJhVwAABQJmaAMFAmZRCQCUCgIJAQEtAQkAZAIFAmJZBQJodQAACQCUCgIAAAkBAS0BCQBkAgUCYlkFAmh1BAJlRAgFAmh0Al8xBAJlRQgFAmh0Al8yBAJodgkBAmVDAwUCZUQFAmVFAAAEAmdVCAUCaHYCXzEEAmV0CAUCaHYCXzIEAmdWCQECZUgCBQJlQgUCZXQDCQAAAgUCZ1YFAmdWCQCUCgIJAM4IAgkAzggCCQDOCAIJAM4IAgUCZW4FAmdGBQJocwUCaGoFAmdVBQJiWQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVgERZ2V0T25lVGtuUkVBRE9OTFkCAmZPAmZ3BAJodwkBAmZOBQkBAmJmAQUCZk8FAmZ3BQJibwUEdW5pdAUEdW5pdAQCaHEIBQJodwJfMQQCZW4IBQJodwJfMgQCZmgIBQJodwJfMwQCaGYIBQJodwJfNAQCZlEIBQJodwJfNQkAlAoCBQNuaWwJAJUKAwUCaHEFAmZoBQJoZgJlVgETdW5zdGFrZUFuZEdldE9uZVRrbgMCaHgCaG4CZ1oEAmhiCgACYVkJAPwHBAUCYVYCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJhWQIHQm9vbGVhbgUCYVkJAAIBCQCsAgIJAAMBBQJhWQIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCaG8DAwkBAmJhAAYJAAACBQJibgUBbgYFAmhiBAJmUAkAzAgCAwMJAQEhAQUCaG8GCQECZ2sBBQJlVgYJAQJhUwECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVWCHBheW1lbnRzAAAGCQECYVMBAhhubyBwYXltZW50cyBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJmUAUCZlAEAmZPCQECYmYBBQJobgQCYWIIBQJlVgZjYWxsZXIEAmFjCAUCZVYNdHJhbnNhY3Rpb25JZAQCZUIJAQJldQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUIFAmVCBAJoeQkA/AcEBQJidQIHdW5zdGFrZQkAzAgCCQDYBAEFAmJvCQDMCAIFAmh4BQNuaWwFA25pbAMJAAACBQJoeQUCaHkEAmh6CQECZk4FBQJmTwUCaHgFAmJvBQJhYgUCYWMDCQAAAgUCaHoFAmh6BAJmUQgFAmh6Al81BAJoZggFAmh6Al80BAJmaAgFAmh6Al8zBAJlbggFAmh6Al8yBAJocQgFAmh6Al8xBAJiWQMDCQBmAgUCZ1oAAAkAZgIFAmdaBQJocQcJAQJhUwEJALkJAgkAzAgCAh9hbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCZ1oFA25pbAIABQJocQQCaHIJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCaHgFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYm8FAmh4BQNuaWwDCQAAAgUCaHIFAmhyBAJnRgkBAmNKAgUCaG4JAGQCBQJiWQkAlgMBCQDMCAIAAAkAzAgCBQJmaAUDbmlsBAJocwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCZVYGY2FsbGVyBQJiWQUCZk8FA25pbAQCaGoDCQBmAgUCZmgAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhVwUCZmgFAmZPBQNuaWwFA25pbAQCaEEEAmh1AwkAAAIFBHRoaXMFAmFXAAAFAmZoAwUCZlEJAJQKAgkBAS0BCQBkAgUCYlkFAmh1AAAJAJQKAgAACQEBLQEJAGQCBQJiWQUCaHUEAmVECAUCaEECXzEEAmVFCAUCaEECXzIEAmhCCQECZUMDBQJlRAUCZUUAAAQCZ1UIBQJoQgJfMQQCZXQIBQJoQgJfMgQCZ1YJAQJlSAIFAmVCBQJldAMJAAACBQJnVgUCZ1YJAJQKAgkAzggCCQDOCAIJAM4IAgkAzggCBQJlbgUCZ0YFAmhzBQJoagUCZ1UFAmJZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVWAQNnZXQABAJkWQkBAmVVAQUCZVYEAmRFCAUCZFkCXzEEAmRGCAUCZFkCXzIEAmVYCAUCZFkCXzMEAmRuCAUCZFkCXzQEAmRHCAUCZFkCXzUEAmdGCQECY08CBQJkRQUCZEYEAmVCCQECZXUDCQC2AgEAAAkAtgIBAAAJALYCAQAAAwkAAAIFAmVCBQJlQgQCaEMJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCZVgFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZG4FAmVYBQNuaWwDCQAAAgUCaEMFAmhDBAJoRAkBAmVDAwkBAS0BBQJkRQkBAS0BBQJkRgAABAJnVQgFAmhEAl8xBAJldAgFAmhEAl8yBAJnVgkBAmVIAgUCZUIFAmV0AwkAAAIFAmdWBQJnVgkAzggCCQDOCAIFAmdGBQJkRwUCZ1UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVYBCWdldE5vTGVzcwICaEUCaEYEAmRZCQECZVUBBQJlVgQCZEUIBQJkWQJfMQQCZEYIBQJkWQJfMgQCZVgIBQJkWQJfMwQCZG4IBQJkWQJfNAQCZEcIBQJkWQJfNQMJAGYCBQJoRQUCZEUJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmRFAgMgPCAJAKQDAQUCaEUDCQBmAgUCaEYFAmRGCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCZEYCAyA8IAkApAMBBQJoRgQCZ0YJAQJjTwIFAmRFBQJkRgQCZUIJAQJldQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUIFAmVCBAJoQwkA/AcEBQJhVgIEYnVybgkAzAgCBQJlWAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJkbgUCZVgFA25pbAMJAAACBQJoQwUCaEMEAmhHCQECZUMDCQEBLQEFAmRFCQEBLQEFAmRGAAAEAmdVCAUCaEcCXzEEAmV0CAUCaEcCXzIEAmdWCQECZUgCBQJlQgUCZXQDCQAAAgUCZ1YFAmdWCQDOCAIJAM4IAgUCZ0YFAmRHBQJnVQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVgENdW5zdGFrZUFuZEdldAECYlkEAmhIAwkBAiE9AgkAkAMBCAUCZVYIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCaEgFAmhIBAJkYwkBAmJjAAQCZHAJANkEAQkAkQMCBQJkYwUBcQQCZUIJAQJldQMJALYCAQAACQC2AgEAAAkAtgIBAAADCQAAAgUCZUIFAmVCBAJoeQkA/AcEBQJidQIHdW5zdGFrZQkAzAgCCQDYBAEFAmRwCQDMCAIFAmJZBQNuaWwFA25pbAMJAAACBQJoeQUCaHkEAmRZCQECZGwECQDYBAEIBQJlVg10cmFuc2FjdGlvbklkCQDYBAEFAmRwBQJiWQgFAmVWBmNhbGxlcgQCZEUIBQJkWQJfMQQCZEYIBQJkWQJfMgQCZHMJAQ1wYXJzZUludFZhbHVlAQgFAmRZAl85BAJkRwgFAmRZA18xMAQCZ0YJAQJjTwIFAmRFBQJkRgQCaEkDAwkBAmJhAAYJAAACBQJkcwUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCZHMGAwkAAAIFAmhJBQJoSQQCaEMJAPwHBAUCYVYCBGJ1cm4JAMwIAgUCYlkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCZHAFAmJZBQNuaWwDCQAAAgUCaEMFAmhDBAJoSgkBAmVDAwkBAS0BBQJkRQkBAS0BBQJkRgAABAJnVQgFAmhKAl8xBAJldAgFAmhKAl8yBAJnVgkBAmVIAgUCZUIFAmV0AwkAAAIFAmdWBQJnVgkAzggCCQDOCAIFAmdGBQJkRwUCZ1UJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZVYBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmh4AmhLAmhGBAJobwMJAQJiYQAGCQAAAgUCYm4FAW4EAmZQCQDMCAIDCQEBIQEFAmhvBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmVWCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZlAFAmZQBAJlQgkBAmV1AwkAtgIBAAAJALYCAQAACQC2AgEAAAMJAAACBQJlQgUCZUIEAmh5CQD8BwQFAmJ1Agd1bnN0YWtlCQDMCAIJANgEAQUCYm8JAMwIAgUCaHgFA25pbAUDbmlsAwkAAAIFAmh5BQJoeQQCZFkJAQJkbAQJANgEAQgFAmVWDXRyYW5zYWN0aW9uSWQJANgEAQUCYm8FAmh4CAUCZVYGY2FsbGVyBAJkRQgFAmRZAl8xBAJkRggFAmRZAl8yBAJkRwgFAmRZA18xMAQCZ0YJAQJjTwIFAmRFBQJkRgQCaEwJAMwIAgMJAGcCBQJkRQUCaEsGCQACAQkAuQkCCQDMCAICLGFtb3VudCBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEsFA25pbAIACQDMCAIDCQBnAgUCZEYFAmhGBgkAAgEJALkJAgkAzAgCAitwcmljZSBhc3NldCBhbW91bnQgdG8gcmVjZWl2ZSBpcyBsZXNzIHRoYW4gCQDMCAIJAKQDAQUCaEYFA25pbAIABQNuaWwDCQAAAgUCaEwFAmhMBAJoQwkA/AcEBQJhVgIEYnVybgkAzAgCBQJoeAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJibwUCaHgFA25pbAMJAAACBQJoQwUCaEMEAmhNCQECZUMDCQEBLQEFAmRFCQEBLQEFAmRGAAAEAmdVCAUCaE0CXzEEAmV0CAUCaE0CXzIEAmdWCQECZUgCBQJlQgUCZXQDCQAAAgUCZ1YFAmdWCQDOCAIJAM4IAgUCZ0YFAmRHBQJnVQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJlVgEIYWN0aXZhdGUCAmhOAmhPAwkBAiE9AgkApQgBCAUCZVYGY2FsbGVyCQClCAEFAmFWCQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFlAAUCaE4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAAUCaE8FA25pbAIHc3VjY2VzcwJlVgEKcmVmcmVzaEtMcAAEAmhQCQELdmFsdWVPckVsc2UCCQCfCAEFAmFrAAAEAmhRAwkAZwIJAGUCBQZoZWlnaHQFAmhQBQJhbgUEdW5pdAkBAmFTAQkAuQkCCQDMCAIJAKQDAQUCYW4JAMwIAgIvIGJsb2NrcyBoYXZlIG5vdCBwYXNzZWQgc2luY2UgdGhlIHByZXZpb3VzIGNhbGwFA25pbAIAAwkAAAIFAmhRBQJoUQQCZU8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAqAMBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAmFqAgEwCQECYVUBAgtpbnZhbGlkIGtMcAQCaFIJAQJlQwMAAAAAAAAEAmhTCAUCaFICXzEEAmV0CAUCaFICXzIEAmVGAwkBAiE9AgUCZU8FAmV0BQJoUwkBAmFTAQISbm90aGluZyB0byByZWZyZXNoCQCUCgIFAmVGCQCmAwEFAmV0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmVWARxnZXRQb29sQ29uZmlnV3JhcHBlclJFQURPTkxZAAkAlAoCBQNuaWwJAQJiYwACZVYBHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkBAmFwCQCUCgIFA25pbAkBAmJMAQUCYXACZVYBGWNhbGNQcmljZXNXcmFwcGVyUkVBRE9OTFkDAmNXAmNYAmRiBAJkawkBAmRhAwUCY1cFAmNYBQJkYgkAlAoCBQNuaWwJAMwIAgkApgMBCQCRAwIFAmRrAAAJAMwIAgkApgMBCQCRAwIFAmRrAAEJAMwIAgkApgMBCQCRAwIFAmRrAAIFA25pbAJlVgEUdG9YMThXcmFwcGVyUkVBRE9OTFkCAUUBRgkAlAoCBQNuaWwJAKYDAQkBAUQCBQFFBQFGAmVWARZmcm9tWDE4V3JhcHBlclJFQURPTkxZAgFJAUoJAJQKAgUDbmlsCQEBSAIJAKcDAQUBSQUBSgJlVgEeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAgJiUAJiUQkAlAoCBQNuaWwJAKYDAQkBAmJPAgkApwMBBQJiUAkApwMBBQJiUQJlVgEjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkJAmRtAmRJAmRKAmRLAmRMAmRNAmFiAmROAmRPCQCUCgIFA25pbAkBAmRICQUCZG0FAmRJBQJkSgUCZEsFAmRMBQJkTQUCYWIFAmROBQJkTwJlVgEjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkEAmRtAmRuAmRvAmFiBAJkWQkBAmRsBAUCZG0FAmRuBQJkbwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYWIJAJQKAgUDbmlsCQCcCgoIBQJkWQJfMQgFAmRZAl8yCAUCZFkCXzMIBQJkWQJfNAgFAmRZAl81CAUCZFkCXzYIBQJkWQJfNwkApgMBCAUCZFkCXzgIBQJkWQJfOQgFAmRZA18xMAJlVgENc3RhdHNSRUFET05MWQAEAmRjCQECYmMABAJkcAkA2QQBCQCRAwIFAmRjBQFxBAJoVAkAkQMCBQJkYwUBcgQCaFUJAJEDAgUCZGMFAXMEAmRSCQCRAwIFAmRjBQF2BAJkUwkAkQMCBQJkYwUBdwQCZGQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdAQCZGUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUBdQQCaFYICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHAJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHACDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoVwkBAmJMAQUCaFQEAmhYCQECYkwBBQJoVQQCaFkDCQAAAgUCaFYAAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECZGEDBQJoVwUCaFgFAmhWBAJkegAABAJoWgkBAUgCCQCRAwIFAmhZAAEFAWIEAmlhCQEBSAIJAJEDAgUCaFkAAgUBYgQCaWIJAQV2YWx1ZQEJAJoIAgUCYVYJAQJhRAEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmhXCQDMCAIJAKQDAQUCaFgJAMwIAgkApAMBBQJoVgkAzAgCCQCkAwEFAmR6CQDMCAIJAKQDAQUCaFoJAMwIAgkApAMBBQJpYQkAzAgCCQCkAwEFAmliBQNuaWwFAWoCZVYBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJkSgQCZGMJAQJiYwAEAmRwCQDZBAEJAJEDAgUCZGMFAXEEAmRQCQCRAwIFAmRjBQFyBAJkcQkA2QQBBQJkUAQCZFEJAJEDAgUCZGMFAXMEAmRyCQDZBAEFAmRRBAJkZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF0BAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF1BAJkcwkAkQMCBQJkYwUBcAQCaFYICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHAJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHACDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJoVwkBAmJMAQUCZFAEAmhYCQECYkwBBQJkUQQCY1kJAQFEAgUCaFcFAmRkBAJjWgkBAUQCBQJoWAUCZGUEAmR5AwkAAAIFAmhWAAAFAWUJAQJiTwIFAmNaBQJjWQQCZFYJAQFEAgUCZEoFAmRkBAJkVwkAvAIDBQJkVgUCZHkFAWQEAmRMCQEBSAIFAmRXBQJkZQQCZmIJAQJkSAkCAACgwh4FAmRKBQJkcQUCZEwFAmRyAgAGBwQCZWcIBQJmYgJfMQQCaWMIBQJmYgJfMwQCZHUIBQJmYgJfNAQCZHcIBQJmYgJfNQQCZHQIBQJmYgJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZWcJAMwIAgkApAMBCQEBSAIFAmR5BQFiCQDMCAIJAKQDAQUCZHUJAMwIAgkApAMBBQJkdwkAzAgCCQCkAwEFAmR0CQDMCAIFAmRzCQDMCAIJAKQDAQUCZEoJAMwIAgkApAMBBQJkTAUDbmlsBQFqAmVWAR9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAQJkTAQCZGMJAQJiYwAEAmRwCQDZBAEJAJEDAgUCZGMFAXEEAmRQCQCRAwIFAmRjBQFyBAJkcQkA2QQBBQJkUAQCZFEJAJEDAgUCZGMFAXMEAmRyCQDZBAEFAmRRBAJkZAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF0BAJkZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQF1BAJkcwkAkQMCBQJkYwUBcAQCaFYICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCZHAJAKwCAgkArAICAgZBc3NldCAJANgEAQUCZHACDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJpZAkBAmJMAQUCZFAEAmllCQECYkwBBQJkUQQCaWYJAQFEAgUCaWQFAmRkBAJpZwkBAUQCBQJpZQUCZGUEAmR5AwkAAAIFAmhWAAAFAWUJAQJiTwIFAmlnBQJpZgQCZFcJAQFEAgUCZEwFAmRlBAJkVgkAvAIDBQJkVwUBZAUCZHkEAmRKCQEBSAIFAmRWBQJkZAQCZmIJAQJkSAkCAACgwh4FAmRKBQJkcQUCZEwFAmRyAgAGBwQCZWcIBQJmYgJfMQQCaWMIBQJmYgJfMwQCZHUIBQJmYgJfNAQCZHcIBQJmYgJfNQQCZHQIBQJmYgJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCZWcJAMwIAgkApAMBCQEBSAIFAmR5BQFiCQDMCAIJAKQDAQUCZHUJAMwIAgkApAMBBQJkdwkAzAgCCQCkAwEFAmR0CQDMCAIFAmRzCQDMCAIJAKQDAQUCZEoJAMwIAgkApAMBBQJkTAUDbmlsBQFqAmVWARNldmFsdWF0ZUdldFJFQURPTkxZAgJpaAJpaQQCZFkJAQJkbAQCAAUCaWgFAmlpBQR0aGlzBAJkRQgFAmRZAl8xBAJkRggFAmRZAl8yBAJkdQgFAmRZAl81BAJkdwgFAmRZAl82BAJkdAgFAmRZAl83BAJkeggFAmRZAl84BAJkcwkBDXBhcnNlSW50VmFsdWUBCAUCZFkCXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJkRQkAzAgCCQCkAwEFAmRGCQDMCAIJAKQDAQUCZHUJAMwIAgkApAMBBQJkdwkAzAgCCQCkAwEFAmR0CQDMCAIJAKYDAQUCZHoJAMwIAgkApAMBBQJkcwUDbmlsBQFqAQJpagECaWsABAJpbAQCYlYJAQJnaAADCQABAgUCYlYCCkJ5dGVWZWN0b3IEAmdsBQJiVgUCZ2wDCQABAgUCYlYCBFVuaXQIBQJpag9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgQCYlYFAmlqAwkAAQIFAmJWAgVPcmRlcgQCZUsFAmJWBAJpbQkBAmJiAAQCaW4DCQECZUcACQCUCgIGAgAJAQJlSgEFAmVLBAJhSwgFAmluAl8xBAJhTAgFAmluAl8yBAJhTQkA9AMDCAUCZUsJYm9keUJ5dGVzCQCRAwIIBQJlSwZwcm9vZnMAAAgFAmVLD3NlbmRlclB1YmxpY0tleQQCYU4JAPQDAwgFAmVLCWJvZHlCeXRlcwkAkQMCCAUCZUsGcHJvb2ZzAAEFAmltAwMDBQJhSwUCYU0HBQJhTgcGCQECYUoEBQJhSwUCYUwFAmFNBQJhTgMJAAECBQJiVgIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAmdpBQJiVgMJAPQDAwgFAmlqCWJvZHlCeXRlcwkAkQMCCAUCaWoGcHJvb2ZzAAAFAmlsBgQCaW8JAPYDAQkBBXZhbHVlAQgFAmdpBnNjcmlwdAQCaXAJANsEAQkBBXZhbHVlAQkAnQgCBQJhVgkBAmFGAAQCaXEJAPEHAQUEdGhpcwMJAAACBQJpcAUCaW8JAQIhPQIFAmlxBQJpbwcJAPQDAwgFAmlqCWJvZHlCeXRlcwkAkQMCCAUCaWoGcHJvb2ZzAAAFAmlsLmY3kQ==", "height": 2534153, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ENtVBLfsfhSLj38Dm13ZZwCaohRLwsKQm5KxBr77swvt Next: 9yuDf8RKXGJ9oqGCWgt3RKr8AhtDUywzZoJfVoibaKjq Diff:
OldNewDifferences
168168
169169 let aG = "%s__feeCollectorAddress"
170170
171-func aH (aI,aJ,aK,aL) = throw((((((((("order validation failed: orderValid=" + toString(aI)) + " (") + aJ) + ")") + " senderValid=") + toString(aK)) + " matcherValid=") + toString(aL)))
171+func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172172
173173
174-func aM (aN,aO) = valueOrErrorMessage(getString(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
174+func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175175
176176
177-func aP (aN,aO) = valueOrErrorMessage(getInteger(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
177+func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
178178
179179
180-func aQ (aR) = throw(makeString(["lp.ride:", aR], " "))
180+func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
181181
182182
183-func aS (aR) = makeString(["lp.ride:", aR], " ")
183+func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
184184
185185
186-let aT = addressFromStringValue(aM(this, T()))
186+func aU (aT) = makeString(["lp.ride:", aT], " ")
187187
188-let aU = addressFromStringValue(aM(aT, aG))
189188
190-let aV = {
191- let aW = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
192- if ($isInstanceOf(aW, "Int"))
193- then aW
194- else throw(($getType(aW) + " couldn't be cast to Int"))
189+let aV = addressFromStringValue(aO(this, T()))
190+
191+let aW = addressFromStringValue(aO(aV, aG))
192+
193+let aX = {
194+ let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
195+ if ($isInstanceOf(aY, "Int"))
196+ then aY
197+ else throw(($getType(aY) + " couldn't be cast to Int"))
195198 }
196199
197-let aX = {
198- let aW = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
199- if ($isInstanceOf(aW, "Int"))
200- then aW
201- else throw(($getType(aW) + " couldn't be cast to Int"))
200+let aZ = {
201+ let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
202+ if ($isInstanceOf(aY, "Int"))
203+ then aY
204+ else throw(($getType(aY) + " couldn't be cast to Int"))
202205 }
203206
204-func aY () = valueOrElse(getBoolean(aT, aC()), false)
207+func ba () = valueOrElse(getBoolean(aV, aC()), false)
205208
206209
207-func aZ () = fromBase58String(aM(aT, au()))
210+func bb () = fromBase58String(aO(aV, au()))
208211
209212
210-func ba () = {
211- let bb = aM(this, ae())
212- let bc = aM(this, af())
213- let az = aP(aT, aA(bc))
214- let ay = aP(aT, aA(bb))
215- split(aM(aT, ax(toString(ay), toString(az))), j)
213+func bc () = {
214+ let bd = aO(this, ae())
215+ let be = aO(this, af())
216+ let az = aR(aV, aA(be))
217+ let ay = aR(aV, aA(bd))
218+ split(aO(aV, ax(toString(ay), toString(az))), j)
216219 }
217220
218221
219-func bd (be) = if ((be == i))
222+func bf (bg) = if ((bg == i))
220223 then unit
221- else fromBase58String(be)
224+ else fromBase58String(bg)
222225
223226
224-func bf (be) = if ((be == unit))
227+func bh (bg) = if ((bg == unit))
225228 then i
226- else toBase58String(value(be))
229+ else toBase58String(value(bg))
227230
228231
229-func bg (bh) = $Tuple7(addressFromStringValue(bh[o]), parseIntValue(bh[p]), fromBase58String(bh[q]), bd(bh[r]), bd(bh[s]), parseIntValue(bh[t]), parseIntValue(bh[u]))
232+func bi (bj) = $Tuple7(addressFromStringValue(bj[o]), parseIntValue(bj[p]), fromBase58String(bj[q]), bf(bj[r]), bf(bj[s]), parseIntValue(bj[t]), parseIntValue(bj[u]))
230233
231234
232-let bi = bg(ba())
235+let bk = bi(bc())
233236
234-let bj = bi
237+let bl = bk
235238
236-let bk = bj._1
239+let bm = bl._1
237240
238-let bl = bj._2
241+let bn = bl._2
239242
240-let bm = bj._3
243+let bo = bl._3
241244
242-let bn = bj._4
245+let bp = bl._4
243246
244-let bo = bj._5
247+let bq = bl._5
245248
246-let bp = bj._6
249+let br = bl._6
247250
248-let bq = bj._7
251+let bs = bl._7
249252
250-func br () = split(aM(aT, at()), j)
253+func bt () = split(aO(aV, at()), j)
251254
252255
253-let bs = valueOrErrorMessage(addressFromString(br()[B]), "incorrect staking address")
256+let bu = valueOrErrorMessage(addressFromString(bt()[B]), "incorrect staking address")
254257
255-let bt = valueOrErrorMessage(addressFromString(br()[C]), "incorrect staking address")
258+let bv = valueOrErrorMessage(addressFromString(bt()[C]), "incorrect staking address")
256259
257-func bu (bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bv), toString(bw), toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE)], j)
260+func bw (bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG)], j)
258261
259262
260-func bF (bG,bH,bI,by,bB,bC) = makeString(["%d%d%d%d%d%d", toString(bG), toString(bH), toString(bI), toString(by), toString(bB), toString(bC)], j)
263+func bH (bI,bJ,bK,bA,bD,bE) = makeString(["%d%d%d%d%d%d", toString(bI), toString(bJ), toString(bK), toString(bA), toString(bD), toString(bE)], j)
261264
262265
263-func bJ (ap) = {
264- let bK = if ((ap == "WAVES"))
266+func bL (ap) = {
267+ let bM = if ((ap == "WAVES"))
265268 then wavesBalance(this).available
266269 else assetBalance(this, fromBase58String(ap))
267- let bL = ((bK + ar(ap)) - as(ap))
268- max([0, bL])
270+ let bN = ((bM + ar(ap)) - as(ap))
271+ max([0, bN])
269272 }
270273
271274
272-func bM (bN,bO) = fraction(bN, d, bO)
275+func bO (bP,bQ) = fraction(bP, d, bQ)
273276
274277
275-func bP (bN,bO,L) = fraction(bN, d, bO, L)
278+func bR (bP,bQ,L) = fraction(bP, d, bQ, L)
276279
277280
278-func bQ (bR) = {
279- let bS = invoke(bR, "getRate", nil, nil)
280- if ((bS == bS))
281+func bS (bT) = {
282+ let bU = invoke(bT, "getRate", nil, nil)
283+ if ((bU == bU))
281284 then {
282- let bT = bS
283- if ($isInstanceOf(bT, "Int"))
285+ let bV = bU
286+ if ($isInstanceOf(bV, "Int"))
284287 then {
285- let bU = bT
286- bU
288+ let bW = bV
289+ bW
287290 }
288- else aQ("proxy.getRate() unexpected value")
291+ else aS("proxy.getRate() unexpected value")
289292 }
290293 else throw("Strict value is not equal to itself.")
291294 }
292295
293296
294-func bV (ap,bW,bX,bR) = {
295- let bY = ar(ap)
296- if ((bY == bY))
297+func bX (ap,bY,bZ,bT) = {
298+ let ca = ar(ap)
299+ if ((ca == ca))
297300 then {
298- let bZ = as(bX)
299- if ((bZ == bZ))
301+ let cb = as(bZ)
302+ if ((cb == cb))
300303 then {
301- let ca = bd(ap)
302- if ((bW > 0))
304+ let cc = bf(ap)
305+ if ((bY > 0))
303306 then {
304- let cb = invoke(bR, "deposit", nil, [AttachedPayment(ca, bW)])
305- if ((cb == cb))
307+ let cd = invoke(bT, "deposit", nil, [AttachedPayment(cc, bY)])
308+ if ((cd == cd))
306309 then {
307- let bT = cb
308- if ($isInstanceOf(bT, "Int"))
310+ let bV = cd
311+ if ($isInstanceOf(bV, "Int"))
309312 then {
310- let cc = bT
311- let cd = (bY + bW)
312- let ce = (bZ + cc)
313-[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce)]
313+ let ce = bV
314+ let cf = (ca + bY)
315+ let cg = (cb + ce)
316+[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg)]
314317 }
315318 else nil
316319 }
324327 }
325328
326329
327-func cf (ap,bW,bX,bR,cg,ch) = {
328- let bY = ar(ap)
329- if ((bY == bY))
330+func ch (ap,bY,bZ,bT,ci,cj) = {
331+ let ca = ar(ap)
332+ if ((ca == ca))
330333 then {
331- let bZ = as(bX)
332- if ((bZ == bZ))
334+ let cb = as(bZ)
335+ if ((cb == cb))
333336 then {
334- let ci = bQ(bR)
335- if ((ci == ci))
337+ let ck = bS(bT)
338+ if ((ck == ck))
336339 then {
337- let cj = fraction(cg, bY, bZ)
338- let ck = bd(bX)
339- let cl = fraction(cg, bW, cj)
340- let cm = fraction(cg, bW, ci)
341- let cn = max([0, (cl - cm)])
342- if ((cm > 0))
340+ let cl = fraction(ci, ca, cb)
341+ let cm = bf(bZ)
342+ let cn = fraction(ci, bY, cl)
343+ let co = fraction(ci, bY, ck)
344+ let cp = max([0, (cn - co)])
345+ if ((co > 0))
343346 then {
344- let co = invoke(bR, "withdraw", nil, [AttachedPayment(ck, cm)])
345- if ((co == co))
347+ let cq = invoke(bT, "withdraw", nil, [AttachedPayment(cm, co)])
348+ if ((cq == cq))
346349 then {
347- let bT = co
348- if ($isInstanceOf(bT, "Int"))
350+ let bV = cq
351+ if ($isInstanceOf(bV, "Int"))
349352 then {
350- let cp = bT
351- let cd = (bY - cp)
352- let ce = ((bZ - cm) - cn)
353-[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce), ScriptTransfer(ch, cn, bd(bX))]
353+ let cr = bV
354+ let cf = (ca - cr)
355+ let cg = ((cb - co) - cp)
356+[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg), ScriptTransfer(cj, cp, bf(bZ))]
354357 }
355358 else nil
356359 }
366369 }
367370
368371
369-func cq (ap) = {
370- let bT = invoke(aT, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
371- if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
372+func cs (ap) = {
373+ let bV = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
374+ if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
372375 then {
373- let cr = bT
374- cr
376+ let ct = bV
377+ ct
375378 }
376- else aQ((("[" + ap) + "] getLeaseProxyConfig() error"))
379+ else aS((("[" + ap) + "] getLeaseProxyConfig() error"))
377380 }
378381
379382
380-func cs (ct,ap,bX,cu,bR,cg,ch) = {
381- let bY = ar(ap)
382- if ((bY == bY))
383+func cu (cv,ap,bZ,cw,bT,ci,cj) = {
384+ let ca = ar(ap)
385+ if ((ca == ca))
383386 then {
384- let bZ = as(bX)
385- if ((bZ == bZ))
387+ let cb = as(bZ)
388+ if ((cb == cb))
386389 then {
387- let cv = max([0, (bJ(ap) - cu)])
388- let cw = fraction(ct, cv, 100)
389- let cx = (bY - cw)
390- if ((cx == 0))
390+ let cx = max([0, (bL(ap) - cw)])
391+ let cy = fraction(cv, cx, 100)
392+ let cz = (ca - cy)
393+ if ((cz == 0))
391394 then nil
392- else if ((0 > cx))
395+ else if ((0 > cz))
393396 then {
394- let cy = -(cx)
395- bV(ap, cy, bX, bR)
397+ let cA = -(cz)
398+ bX(ap, cA, bZ, bT)
396399 }
397400 else {
398- let cz = cx
399- cf(ap, cz, bX, bR, cg, ch)
401+ let cB = cz
402+ ch(ap, cB, bZ, bT, ci, cj)
400403 }
401404 }
402405 else throw("Strict value is not equal to itself.")
405408 }
406409
407410
408-func cA (ap) = {
409- let cB = cq(ap)
410- let cC = cB._1
411- let cD = cB._2
412- let cu = cB._3
413- let cE = cB._4
414- let cF = cB._5
415- let cg = cB._6
416- let cG = cB._7
417- if (cC)
418- then cs(cD, ap, cF, cu, addressFromStringValue(cE), cg, addressFromStringValue(cG))
411+func cC (ap) = {
412+ let cD = cs(ap)
413+ let cE = cD._1
414+ let cF = cD._2
415+ let cw = cD._3
416+ let cG = cD._4
417+ let cH = cD._5
418+ let ci = cD._6
419+ let cI = cD._7
420+ if (cE)
421+ then cu(cF, ap, cH, cw, addressFromStringValue(cG), ci, addressFromStringValue(cI))
419422 else nil
420423 }
421424
422425
423-func cH (ap,cI) = {
424- let cJ = cq(ap)
425- let cC = cJ._1
426- let cD = cJ._2
427- let cu = cJ._3
428- let cE = cJ._4
429- let cF = cJ._5
430- let cg = cJ._6
431- let cG = cJ._7
432- if (cC)
426+func cJ (ap,cK) = {
427+ let cL = cs(ap)
428+ let cE = cL._1
429+ let cF = cL._2
430+ let cw = cL._3
431+ let cG = cL._4
432+ let cH = cL._5
433+ let ci = cL._6
434+ let cI = cL._7
435+ if (cE)
433436 then {
434- let cK = max([0, ((bJ(ap) - cI) - cu)])
435- if ((cK == cK))
437+ let cM = max([0, ((bL(ap) - cK) - cw)])
438+ if ((cM == cM))
436439 then {
437- let cd = fraction(cD, cK, 100)
438- if ((cd == cd))
440+ let cf = fraction(cF, cM, 100)
441+ if ((cf == cf))
439442 then {
440- let cL = (ar(ap) - cd)
441- if ((cL == cL))
442- then if ((0 > cL))
443- then bV(ap, -(cL), cF, addressFromStringValue(cE))
444- else cf(ap, cL, cF, addressFromStringValue(cE), cg, addressFromStringValue(cG))
443+ let cN = (ar(ap) - cf)
444+ if ((cN == cN))
445+ then if ((0 > cN))
446+ then bX(ap, -(cN), cH, addressFromStringValue(cG))
447+ else ch(ap, cN, cH, addressFromStringValue(cG), ci, addressFromStringValue(cI))
445448 else throw("Strict value is not equal to itself.")
446449 }
447450 else throw("Strict value is not equal to itself.")
452455 }
453456
454457
455-func cM (cN,cO) = {
456- let cP = cH(aM(this, ae()), cN)
457- let cQ = cH(aM(this, af()), cO)
458- (cP ++ cQ)
458+func cO (cP,cQ) = {
459+ let cR = cJ(aO(this, ae()), cP)
460+ let cS = cJ(aO(this, af()), cQ)
461+ (cR ++ cS)
459462 }
460463
461464
462-func cR (cS,cT,cU,cV) = {
463- let cW = D(cU, cS)
464- let cX = D(cV, cT)
465- bM(cX, cW)
465+func cT (cU,cV,cW,cX) = {
466+ let cY = D(cW, cU)
467+ let cZ = D(cX, cV)
468+ bO(cZ, cY)
466469 }
467470
468471
469-func cY (cU,cV,cZ) = {
470- let da = ba()
471- let db = parseIntValue(da[t])
472- let dc = parseIntValue(da[u])
473- let dd = cR(db, dc, cU, cV)
474- let bO = D(cU, db)
475- let bN = D(cV, dc)
476- let de = D(cZ, b)
477- let df = bM(bO, de)
478- let dg = bM(bN, de)
479-[dd, df, dg]
472+func da (cW,cX,db) = {
473+ let dc = bc()
474+ let dd = parseIntValue(dc[t])
475+ let de = parseIntValue(dc[u])
476+ let df = cT(dd, de, cW, cX)
477+ let bQ = D(cW, dd)
478+ let bP = D(cX, de)
479+ let dg = D(db, b)
480+ let dh = bO(bQ, dg)
481+ let di = bO(bP, dg)
482+[df, dh, di]
480483 }
481484
482485
483-func dh (cU,cV,cZ) = {
484- let di = cY(cU, cV, cZ)
485-[H(di[0], b), H(di[1], b), H(di[2], b)]
486+func dj (cW,cX,db) = {
487+ let dk = da(cW, cX, db)
488+[H(dk[0], b), H(dk[1], b), H(dk[2], b)]
486489 }
487490
488491
489-func dj (dk,dl,dm,ab) = {
490- let da = ba()
491- let dn = da[q]
492- let do = da[r]
493- let dp = da[s]
494- let cS = parseIntValue(da[t])
495- let cT = parseIntValue(da[u])
496- let dq = da[p]
497- let dr = valueOrErrorMessage(assetInfo(fromBase58String(dn)), (("Asset " + dn) + " doesn't exist")).quantity
498- if ((dn != dl))
492+func dl (dm,dn,do,ab) = {
493+ let dc = bc()
494+ let dp = dc[q]
495+ let dq = dc[r]
496+ let dr = dc[s]
497+ let cU = parseIntValue(dc[t])
498+ let cV = parseIntValue(dc[u])
499+ let ds = dc[p]
500+ let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
501+ if ((dp != dn))
499502 then throw("Invalid asset passed.")
500503 else {
501- let ds = bJ(do)
502- let dt = D(ds, cS)
503- let du = bJ(dp)
504- let dv = D(du, cT)
505- let dw = bM(dv, dt)
506- let dx = H(dw, b)
507- let dy = D(dm, b)
508- let dz = D(dr, b)
509- let dA = fraction(dt, dy, dz)
510- let dB = fraction(dv, dy, dz)
511- let dC = K(dA, cS, FLOOR)
512- let dD = K(dB, cT, FLOOR)
513- let dE = if ((dk == ""))
504+ let du = bL(dq)
505+ let dv = D(du, cU)
506+ let dw = bL(dr)
507+ let dx = D(dw, cV)
508+ let dy = bO(dx, dv)
509+ let dz = H(dy, b)
510+ let dA = D(do, b)
511+ let dB = D(dt, b)
512+ let dC = fraction(dv, dA, dB)
513+ let dD = fraction(dx, dA, dB)
514+ let dE = K(dC, cU, FLOOR)
515+ let dF = K(dD, cV, FLOOR)
516+ let dG = if ((dm == ""))
514517 then nil
515- else [ScriptTransfer(ab, dC, if ((do == "WAVES"))
518+ else [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
516519 then unit
517- else fromBase58String(do)), ScriptTransfer(ab, dD, if ((dp == "WAVES"))
520+ else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
518521 then unit
519- else fromBase58String(dp)), StringEntry(ad(toString(ab), dk), bF(dC, dD, dm, dx, height, lastBlock.timestamp)), IntegerEntry(W(), dx), IntegerEntry(X(height, lastBlock.timestamp), dx)]
520- $Tuple10(dC, dD, do, dp, ds, du, dr, dw, dq, dE)
522+ else fromBase58String(dr)), StringEntry(ad(toString(ab), dm), bH(dE, dF, do, dz, height, lastBlock.timestamp)), IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz)]
523+ $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dG)
521524 }
522525 }
523526
524527
525-func dF (dk,dG,dH,dI,dJ,dK,ab,dL,dM) = {
526- let da = ba()
527- let dn = fromBase58String(da[q])
528- let dN = da[r]
529- let dO = da[s]
530- let dP = da[v]
531- let dQ = da[w]
532- let db = parseIntValue(da[t])
533- let dc = parseIntValue(da[u])
534- let dq = da[p]
535- let dr = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
536- let dR = toBase58String(valueOrElse(dI, fromBase58String("WAVES")))
537- let dS = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
538- if (if ((dN != dR))
528+func dH (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = {
529+ let dc = bc()
530+ let dp = fromBase58String(dc[q])
531+ let dP = dc[r]
532+ let dQ = dc[s]
533+ let dR = dc[v]
534+ let dS = dc[w]
535+ let dd = parseIntValue(dc[t])
536+ let de = parseIntValue(dc[u])
537+ let ds = dc[p]
538+ let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
539+ let dT = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
540+ let dU = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
541+ if (if ((dP != dT))
539542 then true
540- else (dO != dS))
543+ else (dQ != dU))
541544 then throw("Invalid amt or price asset passed.")
542545 else {
543- let ds = if (dL)
544- then bJ(dN)
545- else (bJ(dN) - dH)
546- let du = if (dL)
547- then bJ(dO)
548- else (bJ(dO) - dJ)
549- let dT = D(dH, db)
550- let dU = D(dJ, dc)
551- let dV = bM(dU, dT)
552- let dt = D(ds, db)
553- let dv = D(du, dc)
554- let dW = if ((dr == 0))
546+ let du = if (dN)
547+ then bL(dP)
548+ else (bL(dP) - dJ)
549+ let dw = if (dN)
550+ then bL(dQ)
551+ else (bL(dQ) - dL)
552+ let dV = D(dJ, dd)
553+ let dW = D(dL, de)
554+ let dX = bO(dW, dV)
555+ let dv = D(du, dd)
556+ let dx = D(dw, de)
557+ let dY = if ((dt == 0))
555558 then {
556- let dw = e
557- let dX = e
558- let de = pow((dT * dU), 0, toBigInt(5), 1, 0, DOWN)
559- $Tuple5(H(de, b), H(dT, db), H(dU, dc), bM((dv + dU), (dt + dT)), dX)
559+ let dy = e
560+ let dZ = e
561+ let dg = pow((dV * dW), 0, toBigInt(5), 1, 0, DOWN)
562+ $Tuple5(H(dg, b), H(dV, dd), H(dW, de), bO((dx + dW), (dv + dV)), dZ)
560563 }
561564 else {
562- let dw = bM(dv, dt)
563- let dX = fraction(R((dw - dV)), d, dw)
564- let dY = D(dG, b)
565- if (if ((dw != e))
566- then (dX > dY)
565+ let dy = bO(dx, dv)
566+ let dZ = fraction(R((dy - dX)), d, dy)
567+ let ea = D(dI, b)
568+ if (if ((dy != e))
569+ then (dZ > ea)
567570 else false)
568- then throw(((("Price slippage " + toString(dX)) + " exceeded the passed limit of ") + toString(dY)))
571+ then throw(((("Price slippage " + toString(dZ)) + " exceeded the passed limit of ") + toString(ea)))
569572 else {
570- let dz = D(dr, b)
571- let dZ = fraction(dT, bP(dv, dt, CEILING), d, CEILING)
572- let ea = fraction(dU, d, bP(dv, dt, FLOOR), CEILING)
573- let eb = if ((dZ > dU))
574- then $Tuple2(ea, dU)
575- else $Tuple2(dT, dZ)
576- let ec = eb._1
577- let ed = eb._2
578- let de = fraction(dz, ed, dv, FLOOR)
579- $Tuple5(K(de, b, FLOOR), K(ec, db, CEILING), K(ed, dc, CEILING), dw, dX)
573+ let dB = D(dt, b)
574+ let eb = fraction(dV, bR(dx, dv, CEILING), d, CEILING)
575+ let ec = fraction(dW, d, bR(dx, dv, FLOOR), CEILING)
576+ let ed = if ((eb > dW))
577+ then $Tuple2(ec, dW)
578+ else $Tuple2(dV, eb)
579+ let ee = ed._1
580+ let ef = ed._2
581+ let dg = fraction(dB, ef, dx, FLOOR)
582+ $Tuple5(K(dg, b, FLOOR), K(ee, dd, CEILING), K(ef, de, CEILING), dy, dZ)
580583 }
581584 }
582- let ee = dW._1
583- let ef = dW._2
584- let eg = dW._3
585- let dx = H(dW._4, b)
586- let eh = H(dW._5, b)
587- if ((0 >= ee))
585+ let eg = dY._1
586+ let eh = dY._2
587+ let ei = dY._3
588+ let dz = H(dY._4, b)
589+ let ej = H(dY._5, b)
590+ if ((0 >= eg))
588591 then throw("Invalid calculations. LP calculated is less than zero.")
589592 else {
590- let ei = if (!(dM))
593+ let ek = if (!(dO))
591594 then 0
592- else ee
593- let ej = (dH - ef)
594- let ek = (dJ - eg)
595- let el = [IntegerEntry(W(), dx), IntegerEntry(X(height, lastBlock.timestamp), dx), StringEntry(aa(ab, dk), bu(ef, eg, ei, dx, dG, eh, height, lastBlock.timestamp, ej, ek))]
596- $Tuple13(ee, ei, dx, ds, du, dr, dn, dq, el, ej, ek, dI, dK)
595+ else eg
596+ let el = (dJ - eh)
597+ let em = (dL - ei)
598+ let en = [IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz), StringEntry(aa(ab, dm), bw(eh, ei, ek, dz, dI, ej, height, lastBlock.timestamp, el, em))]
599+ $Tuple13(eg, ek, dz, du, dw, dt, dp, ds, en, el, em, dK, dM)
597600 }
598601 }
599602 }
600603
601604
602-func em (en,eo,dr) = {
603- let ep = G(en, toBigInt(bp))
604- let eq = G(eo, toBigInt(bq))
605- let er = fraction(pow((ep * eq), 0, toBigInt(5), 1, 18, DOWN), g, dr)
606- if ((dr == f))
605+func eo (ep,eq,dt) = {
606+ let er = G(ep, toBigInt(br))
607+ let es = G(eq, toBigInt(bs))
608+ let et = fraction(pow((er * es), 0, toBigInt(5), 1, 18, DOWN), g, dt)
609+ if ((dt == f))
607610 then f
608- else er
611+ else et
609612 }
610613
611614
612-func es (et,eu,ev) = {
613- let ew = (toBigInt(bJ(bf(bn))) - et)
614- let ex = (toBigInt(bJ(bf(bo))) - eu)
615- let ey = (toBigInt(value(assetInfo(bm)).quantity) - ev)
616- let ez = em(ew, ex, ey)
617- ez
615+func eu (ev,ew,ex) = {
616+ let ey = (toBigInt(bL(bh(bp))) - ev)
617+ let ez = (toBigInt(bL(bh(bq))) - ew)
618+ let eA = (toBigInt(value(assetInfo(bo)).quantity) - ex)
619+ let eB = eo(ey, ez, eA)
620+ eB
618621 }
619622
620623
621-func eA (eB,eC,ev) = {
622- let ew = (bJ(bf(bn)) + eB)
623- let ex = (bJ(bf(bo)) + eC)
624- let ey = (value(assetInfo(bm)).quantity + ev)
625- let er = em(toBigInt(ew), toBigInt(ex), toBigInt(ey))
626- let eD = [IntegerEntry(ak, height), StringEntry(aj, toString(er))]
627- $Tuple2(eD, er)
624+func eC (eD,eE,ex) = {
625+ let ey = (bL(bh(bp)) + eD)
626+ let ez = (bL(bh(bq)) + eE)
627+ let eA = (value(assetInfo(bo)).quantity + ex)
628+ let et = eo(toBigInt(ey), toBigInt(ez), toBigInt(eA))
629+ let eF = [IntegerEntry(ak, height), StringEntry(aj, toString(et))]
630+ $Tuple2(eF, et)
628631 }
629632
630633
631-func eE (eF,er) = if ((er >= eF))
632- then true
633- else aQ(makeString(["updated KLp lower than current KLp", toString(eF), toString(er)], " "))
634+func eG () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
634635
635636
636-func eG (eH) = {
637- let ew = bJ(bf(bn))
638- let ex = bJ(bf(bo))
639- let eI = eH.amount
640- let eJ = fraction(eH.amount, eH.price, b, FLOOR)
641- let eK = if ((eH.orderType == Buy))
642- then $Tuple2(eI, -(eJ))
643- else $Tuple2(-(eI), eJ)
644- let eB = eK._1
645- let eC = eK._2
646- if (if (if (aY())
637+func eH (eI,et) = if ((et >= eI))
638+ then true
639+ else aS(makeString(["updated KLp lower than current KLp", toString(eI), toString(et)], " "))
640+
641+
642+func eJ (eK) = {
643+ let ey = bL(bh(bp))
644+ let ez = bL(bh(bq))
645+ let eL = eK.amount
646+ let eM = fraction(eK.amount, eK.price, b, FLOOR)
647+ let eN = if ((eK.orderType == Buy))
648+ then $Tuple2(eL, -(eM))
649+ else $Tuple2(-(eL), eM)
650+ let eD = eN._1
651+ let eE = eN._2
652+ if (if (if (ba())
647653 then true
648- else (bl == m))
654+ else (bn == m))
649655 then true
650- else (bl == n))
656+ else (bn == n))
651657 then throw("Exchange operations disabled")
652- else if (if ((eH.assetPair.amountAsset != bn))
658+ else if (if ((eK.assetPair.amountAsset != bp))
653659 then true
654- else (eH.assetPair.priceAsset != bo))
660+ else (eK.assetPair.priceAsset != bq))
655661 then throw("Wrong order assets.")
656662 else {
657- let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
658- let eM = eA(eB, eC, 0)
659- let eN = eM._1
660- let eO = eM._2
661- let eP = (eO >= eL)
662- let eQ = makeString(["kLp=", toString(eL), " kLpNew=", toString(eO), " amountAssetBalance=", toString(ew), " priceAssetBalance=", toString(ex), " amountAssetBalanceDelta=", toString(eB), " priceAssetBalanceDelta=", toString(eC), " height=", toString(height)], "")
663- $Tuple2(eP, eQ)
663+ let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
664+ let eP = eC(eD, eE, 0)
665+ let eQ = eP._1
666+ let eR = eP._2
667+ let eS = (eR >= eO)
668+ let eT = makeString(["kLp=", toString(eO), " kLpNew=", toString(eR), " amountAssetBalance=", toString(ey), " priceAssetBalance=", toString(ez), " amountAssetBalanceDelta=", toString(eD), " priceAssetBalanceDelta=", toString(eE), " height=", toString(height)], "")
669+ $Tuple2(eS, eT)
664670 }
665671 }
666672
667673
668-func eR (eS) = if ((size(eS.payments) != 1))
674+func eU (eV) = if ((size(eV.payments) != 1))
669675 then throw("exactly 1 payment is expected")
670676 else {
671- let eT = value(eS.payments[0])
672- let dl = value(eT.assetId)
673- let eU = eT.amount
674- let dW = dj(toBase58String(eS.transactionId), toBase58String(dl), eU, eS.caller)
675- let dC = dW._1
676- let dD = dW._2
677- let dq = parseIntValue(dW._9)
678- let dE = dW._10
679- if (if (aY())
677+ let eW = value(eV.payments[0])
678+ let dn = value(eW.assetId)
679+ let eX = eW.amount
680+ let dY = dl(toBase58String(eV.transactionId), toBase58String(dn), eX, eV.caller)
681+ let dE = dY._1
682+ let dF = dY._2
683+ let ds = parseIntValue(dY._9)
684+ let dG = dY._10
685+ if (if (ba())
680686 then true
681- else (dq == n))
682- then throw(("Get operation is blocked by admin. Status = " + toString(dq)))
683- else $Tuple5(dC, dD, eU, dl, dE)
687+ else (ds == n))
688+ then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
689+ else $Tuple5(dE, dF, eX, dn, dG)
684690 }
685691
686692
687-func eV (eS,dG,dM) = if ((size(eS.payments) != 2))
693+func eY (eV,dI,dO) = if ((size(eV.payments) != 2))
688694 then throw("exactly 2 payments are expected")
689695 else {
690- let eW = value(eS.payments[0])
691- let eX = value(eS.payments[1])
692- let eY = dF(toBase58String(eS.transactionId), dG, eW.amount, eW.assetId, eX.amount, eX.assetId, toString(eS.caller), false, dM)
693- let dq = parseIntValue(eY._8)
694- if (if (if (aY())
696+ let eZ = value(eV.payments[0])
697+ let fa = value(eV.payments[1])
698+ let fb = dH(toBase58String(eV.transactionId), dI, eZ.amount, eZ.assetId, fa.amount, fa.assetId, toString(eV.caller), false, dO)
699+ let ds = parseIntValue(fb._8)
700+ if (if (if (ba())
695701 then true
696- else (dq == l))
702+ else (ds == l))
697703 then true
698- else (dq == n))
699- then throw(("Put operation is blocked by admin. Status = " + toString(dq)))
700- else eY
704+ else (ds == n))
705+ then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
706+ else fb
701707 }
702708
703709
704-func eZ (bW) = {
705- let fa = invoke(aT, "emit", [bW], nil)
706- if ((fa == fa))
710+func fc (bY) = {
711+ let fd = invoke(aV, "emit", [bY], nil)
712+ if ((fd == fd))
707713 then {
708- let fb = {
709- let bT = fa
710- if ($isInstanceOf(bT, "Address"))
714+ let fe = {
715+ let bV = fd
716+ if ($isInstanceOf(bV, "Address"))
711717 then {
712- let fc = bT
713- invoke(fc, "emit", [bW], nil)
718+ let ff = bV
719+ invoke(ff, "emit", [bY], nil)
714720 }
715721 else unit
716722 }
717- if ((fb == fb))
718- then bW
723+ if ((fe == fe))
724+ then bY
719725 else throw("Strict value is not equal to itself.")
720726 }
721727 else throw("Strict value is not equal to itself.")
722728 }
723729
724730
725-func fd (bW,ai) = {
726- let fe = if ((ai == 0))
731+func fg (bY,ai) = {
732+ let fh = if ((ai == 0))
727733 then 0
728- else fraction(bW, ai, b)
729- $Tuple2((bW - fe), fe)
734+ else fraction(bY, ai, b)
735+ $Tuple2((bY - fh), fh)
730736 }
731737
732738
733-func ff (fg,fh,ab,ac) = {
734- let fi = (ac == unit)
735- let fj = bJ(bf(bn))
736- let fk = bJ(bf(bo))
737- let fl = if ((fh == bn))
739+func fi (fj,fk,ab,ac) = {
740+ let fl = (ac == unit)
741+ let fm = bL(bh(bp))
742+ let fn = bL(bh(bq))
743+ let fo = if ((fk == bp))
738744 then true
739- else if ((fh == bo))
745+ else if ((fk == bq))
740746 then false
741- else aQ("invalid asset")
742- let fm = if (fi)
743- then $Tuple2(fj, fk)
744- else if (fl)
745- then $Tuple2((fj - fg), fk)
746- else $Tuple2(fj, (fk - fg))
747- let fn = fm._1
748- let fo = fm._2
747+ else aS("invalid asset")
749748 let fp = if (fl)
750- then $Tuple2(fg, 0)
751- else $Tuple2(0, fg)
749+ then $Tuple2(fm, fn)
750+ else if (fo)
751+ then $Tuple2((fm - fj), fn)
752+ else $Tuple2(fm, (fn - fj))
752753 let fq = fp._1
753754 let fr = fp._2
754- let eI = fd(fq, aV)._1
755- let eJ = fd(fr, aV)._1
756- let fs = fd(fg, aV)
755+ let fs = if (fo)
756+ then $Tuple2(fj, 0)
757+ else $Tuple2(0, fj)
757758 let ft = fs._1
758- let fe = fs._2
759- let fu = (fn + eI)
760- let fv = (fo + eJ)
761- let fw = bM(D(fv, bq), D(fu, bp))
762- let fx = H(fw, b)
763- let fy = if (fl)
764- then fn
765- else fo
766- let fz = toBigInt(fy)
767- let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
768- let fB = if ((fA > f))
759+ let fu = fs._2
760+ let eL = fg(ft, aX)._1
761+ let eM = fg(fu, aX)._1
762+ let fv = fg(fj, aX)
763+ let fw = fv._1
764+ let fh = fv._2
765+ let fx = (fq + eL)
766+ let fy = (fr + eM)
767+ let fz = bO(D(fy, bs), D(fx, br))
768+ let fA = H(fz, b)
769+ let fB = if (fo)
770+ then fq
771+ else fr
772+ let fC = toBigInt(fB)
773+ let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
774+ let fE = if ((fD > f))
769775 then true
770- else aQ("initial deposit requires all coins")
771- if ((fB == fB))
776+ else aS("initial deposit requires all coins")
777+ if ((fE == fE))
772778 then {
773- let fC = toBigInt(ft)
774- let fD = max([0, toInt(((fA * (sqrtBigInt((d + ((fC * d) / fz)), 18, 18, DOWN) - d)) / d))])
775- let el = if (fi)
779+ let fF = toBigInt(fw)
780+ let fG = max([0, toInt(((fD * (sqrtBigInt((d + ((fF * d) / fC)), 18, 18, DOWN) - d)) / d))])
781+ let en = if (fl)
776782 then nil
777- else [IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bu(fq, fr, fD, fx, 0, 0, height, lastBlock.timestamp, 0, 0))]
778- let fE = bM(D(fo, bq), D(fn, bp))
779- let fF = H(fE, b)
780- let fG = {
781- let fH = if (fl)
782- then $Tuple2(fq, fn)
783- else $Tuple2(fr, fo)
784- let bW = fH._1
785- let fI = fH._2
786- let fJ = toInt(fraction(fA, toBigInt((bW / 2)), toBigInt(fI)))
787- fraction((fD - fJ), b, fJ)
783+ else [IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bw(ft, fu, fG, fA, 0, 0, height, lastBlock.timestamp, 0, 0))]
784+ let fH = bO(D(fr, bs), D(fq, br))
785+ let fI = H(fH, b)
786+ let fJ = {
787+ let fK = if (fo)
788+ then $Tuple2(ft, fq)
789+ else $Tuple2(fu, fr)
790+ let bY = fK._1
791+ let fL = fK._2
792+ let fM = toInt(fraction(fD, toBigInt((bY / 2)), toBigInt(fL)))
793+ fraction((fG - fM), b, fM)
788794 }
789- $Tuple5(fD, el, fe, fG, fl)
795+ $Tuple5(fG, en, fh, fJ, fo)
790796 }
791797 else throw("Strict value is not equal to itself.")
792798 }
793799
794800
795-func fK (fL,ft,fh,ab,ac) = {
796- let fi = (ac == unit)
797- let da = ba()
798- let db = parseIntValue(da[t])
799- let dc = parseIntValue(da[u])
800- let fM = [if ((fh == bm))
801+func fN (fO,fw,fk,ab,ac) = {
802+ let fl = (ac == unit)
803+ let dc = bc()
804+ let dd = parseIntValue(dc[t])
805+ let de = parseIntValue(dc[u])
806+ let fP = [if ((fk == bo))
801807 then true
802- else aQ("invalid lp asset")]
803- if ((fM == fM))
808+ else aS("invalid lp asset")]
809+ if ((fP == fP))
804810 then {
805- let fN = if ((fL == bn))
811+ let fQ = if ((fO == bp))
806812 then true
807- else if ((fL == bo))
813+ else if ((fO == bq))
808814 then false
809- else aQ("invalid asset")
810- let fO = if (fN)
811- then toBigInt(bJ(bf(bn)))
812- else toBigInt(bJ(bf(bo)))
813- let fP = if (fN)
814- then db
815- else dc
816- let fQ = bJ(bf(bn))
817- let fR = bJ(bf(bo))
818- let fS = if (fN)
819- then fQ
820- else fR
821- let fT = toBigInt(fS)
822- let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
823- let fU = toBigInt(ft)
824- let fV = max([0, toInt(((fO * (d - pow((d - ((fU * d) / fA)), 18, h, 0, 18, DOWN))) / d))])
825- let fW = fd(fV, aX)
826- let fX = fW._1
827- let fe = fW._2
828- let fY = if (fN)
829- then $Tuple4(fX, 0, (fQ - fV), fR)
830- else $Tuple4(0, fX, fQ, (fR - fV))
831- let fZ = fY._1
832- let ga = fY._2
833- let gb = fY._3
834- let gc = fY._4
835- let fw = bM(D(gc, bq), D(gb, bp))
836- let fx = H(fw, b)
837- let el = if (fi)
815+ else aS("invalid asset")
816+ let fR = if (fQ)
817+ then toBigInt(bL(bh(bp)))
818+ else toBigInt(bL(bh(bq)))
819+ let fS = if (fQ)
820+ then dd
821+ else de
822+ let fT = bL(bh(bp))
823+ let fU = bL(bh(bq))
824+ let fV = if (fQ)
825+ then fT
826+ else fU
827+ let fW = toBigInt(fV)
828+ let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
829+ let fX = toBigInt(fw)
830+ let fY = max([0, toInt(((fR * (d - pow((d - ((fX * d) / fD)), 18, h, 0, 18, DOWN))) / d))])
831+ let fZ = fg(fY, aZ)
832+ let ga = fZ._1
833+ let fh = fZ._2
834+ let gb = if (fQ)
835+ then $Tuple4(ga, 0, (fT - fY), fU)
836+ else $Tuple4(0, ga, fT, (fU - fY))
837+ let gc = gb._1
838+ let gd = gb._2
839+ let ge = gb._3
840+ let gf = gb._4
841+ let fz = bO(D(gf, bs), D(ge, br))
842+ let fA = H(fz, b)
843+ let en = if (fl)
838844 then nil
839- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bF(fZ, ga, ft, fx, height, lastBlock.timestamp)), IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx)]
840- let fE = bM(D(fR, bq), D(fQ, bp))
841- let fF = H(fE, b)
842- let fG = {
843- let gd = (toInt(fraction(fO, fU, fA)) * 2)
844- fraction((fX - gd), b, gd)
845+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bH(gc, gd, fw, fA, height, lastBlock.timestamp)), IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA)]
846+ let fH = bO(D(fU, bs), D(fT, br))
847+ let fI = H(fH, b)
848+ let fJ = {
849+ let gg = (toInt(fraction(fR, fX, fD)) * 2)
850+ fraction((ga - gg), b, gg)
845851 }
846- $Tuple5(fX, el, fe, fG, fN)
852+ $Tuple5(ga, en, fh, fJ, fQ)
847853 }
848854 else throw("Strict value is not equal to itself.")
849855 }
850856
851857
852-func ge () = {
853- let bT = getString(U())
854- if ($isInstanceOf(bT, "String"))
858+func gh () = {
859+ let bV = getString(U())
860+ if ($isInstanceOf(bV, "String"))
855861 then {
856- let gf = bT
857- fromBase58String(gf)
862+ let gi = bV
863+ fromBase58String(gi)
858864 }
859- else if ($isInstanceOf(bT, "Unit"))
865+ else if ($isInstanceOf(bV, "Unit"))
860866 then unit
861867 else throw("Match error")
862868 }
863869
864870
865-func gg () = {
866- let bT = getString(V())
867- if ($isInstanceOf(bT, "String"))
871+func gj () = {
872+ let bV = getString(V())
873+ if ($isInstanceOf(bV, "String"))
868874 then {
869- let gf = bT
870- fromBase58String(gf)
875+ let gi = bV
876+ fromBase58String(gi)
871877 }
872- else if ($isInstanceOf(bT, "Unit"))
878+ else if ($isInstanceOf(bV, "Unit"))
873879 then unit
874880 else throw("Match error")
875881 }
876882
877883
878-func gh (eS) = {
879- let bT = ge()
880- if ($isInstanceOf(bT, "ByteVector"))
884+func gk (eV) = {
885+ let bV = gh()
886+ if ($isInstanceOf(bV, "ByteVector"))
881887 then {
882- let gi = bT
883- (eS.callerPublicKey == gi)
888+ let gl = bV
889+ (eV.callerPublicKey == gl)
884890 }
885- else if ($isInstanceOf(bT, "Unit"))
886- then (eS.caller == this)
891+ else if ($isInstanceOf(bV, "Unit"))
892+ then (eV.caller == this)
887893 else throw("Match error")
888894 }
889895
890896
891-func gj (eS) = {
892- let gk = throw("Permission denied")
893- let bT = ge()
894- if ($isInstanceOf(bT, "ByteVector"))
897+func gm (eV) = {
898+ let gn = throw("Permission denied")
899+ let bV = gh()
900+ if ($isInstanceOf(bV, "ByteVector"))
895901 then {
896- let gi = bT
897- if ((eS.callerPublicKey == gi))
902+ let gl = bV
903+ if ((eV.callerPublicKey == gl))
898904 then true
899- else gk
905+ else gn
900906 }
901- else if ($isInstanceOf(bT, "Unit"))
902- then if ((eS.caller == this))
907+ else if ($isInstanceOf(bV, "Unit"))
908+ then if ((eV.caller == this))
903909 then true
904- else gk
910+ else gn
905911 else throw("Match error")
906912 }
907913
908914
909-@Callable(eS)
910-func rebalance () = (cA(aM(this, ae())) ++ cA(aM(this, af())))
915+@Callable(eV)
916+func rebalance () = (cC(aO(this, ae())) ++ cC(aO(this, af())))
911917
912918
913919
914-@Callable(eS)
915-func calculateAmountOutForSwapREADONLY (gl,gm,gn) = {
916- let go = if ((gm == false))
920+@Callable(eV)
921+func calculateAmountOutForSwapREADONLY (go,gp,gq) = {
922+ let gr = if ((gp == false))
917923 then {
918- let gp = aM(this, af())
919- let gq = aM(this, ae())
920- $Tuple2(gp, gq)
924+ let gs = aO(this, af())
925+ let gt = aO(this, ae())
926+ $Tuple2(gs, gt)
921927 }
922928 else {
923- let gp = aM(this, ae())
924- let gq = aM(this, af())
925- $Tuple2(gp, gq)
929+ let gs = aO(this, ae())
930+ let gt = aO(this, af())
931+ $Tuple2(gs, gt)
926932 }
927- let gp = go._1
928- let gq = go._2
929- let gr = bJ(gq)
930- let gs = bJ(gp)
931- let gt = fraction(gs, gl, (gr + gl))
932- let gu = (toBigInt(gr) * toBigInt(gs))
933- let gv = (((toBigInt(bJ(gq)) + toBigInt(gl)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
934- let gw = if ((gv >= gu))
933+ let gs = gr._1
934+ let gt = gr._2
935+ let gu = bL(gt)
936+ let gv = bL(gs)
937+ let gw = fraction(gv, go, (gu + go))
938+ let gx = (toBigInt(gu) * toBigInt(gv))
939+ let gy = (((toBigInt(bL(gt)) + toBigInt(go)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
940+ let gz = if ((gy >= gx))
935941 then true
936942 else throw("new K is fewer error")
937- if ((gw == gw))
938- then $Tuple2(nil, gt)
943+ if ((gz == gz))
944+ then $Tuple2(nil, gw)
939945 else throw("Strict value is not equal to itself.")
940946 }
941947
942948
943949
944-@Callable(eS)
945-func calculateAmountOutForSwapAndSendTokens (gl,gm,gx,gy,gn) = {
946- let gz = {
947- let aW = invoke(aT, "getSwapContractREADONLY", nil, nil)
948- if ($isInstanceOf(aW, "String"))
949- then aW
950- else throw(($getType(aW) + " couldn't be cast to String"))
950+@Callable(eV)
951+func calculateAmountOutForSwapAndSendTokens (go,gp,gA,gB,gq) = {
952+ let gC = {
953+ let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
954+ if ($isInstanceOf(aY, "String"))
955+ then aY
956+ else throw(($getType(aY) + " couldn't be cast to String"))
951957 }
952- let fM = [if ((value(eS.payments[0]).amount >= gl))
958+ let fP = [if ((value(eV.payments[0]).amount >= go))
953959 then true
954- else aQ("Wrong amount"), if ((eS.caller == addressFromStringValue(gz)))
960+ else aS("Wrong amount"), if ((eV.caller == addressFromStringValue(gC)))
955961 then true
956- else aQ("Permission denied")]
957- if ((fM == fM))
962+ else aS("Permission denied")]
963+ if ((fP == fP))
958964 then {
959- let eT = value(eS.payments[0])
960- let gq = bf(eT.assetId)
961- let gp = if ((gm == false))
962- then aM(this, af())
963- else aM(this, ae())
964- let gr = (bJ(gq) - value(eS.payments[0]).amount)
965- let gs = bJ(gp)
966- let gt = fraction(gs, gl, (gr + gl))
967- let gu = (toBigInt(gr) * toBigInt(gs))
968- let gv = ((toBigInt(bJ(gq)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
969- let gw = if ((gv >= gu))
965+ let eW = value(eV.payments[0])
966+ let gt = bh(eW.assetId)
967+ let gs = if ((gp == false))
968+ then aO(this, af())
969+ else aO(this, ae())
970+ let gu = (bL(gt) - value(eV.payments[0]).amount)
971+ let gv = bL(gs)
972+ let gw = fraction(gv, go, (gu + go))
973+ let gx = (toBigInt(gu) * toBigInt(gv))
974+ let gy = ((toBigInt(bL(gt)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
975+ let gz = if ((gy >= gx))
970976 then true
971977 else throw("new K is fewer error")
972- if ((gw == gw))
978+ if ((gz == gz))
973979 then {
974- let gA = if ((gt >= gx))
980+ let gD = if ((gw >= gA))
975981 then true
976982 else throw("Exchange result is fewer coins than expected")
977- if ((gA == gA))
983+ if ((gD == gD))
978984 then {
979- let gB = cA(gq)
980- if ((gB == gB))
985+ let gE = cC(gt)
986+ if ((gE == gE))
981987 then {
982- let gC = cH(gp, gt)
983- if ((gC == gC))
984- then $Tuple2(((gC ++ gB) ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
988+ let gF = cJ(gs, gw)
989+ if ((gF == gF))
990+ then $Tuple2(((gF ++ gE) ++ [ScriptTransfer(addressFromStringValue(gB), gw, bf(gs))]), gw)
985991 else throw("Strict value is not equal to itself.")
986992 }
987993 else throw("Strict value is not equal to itself.")
9951001
9961002
9971003
998-@Callable(eS)
999-func setManager (gD) = {
1000- let gE = gj(eS)
1001- if ((gE == gE))
1004+@Callable(eV)
1005+func setManager (gG) = {
1006+ let gH = gm(eV)
1007+ if ((gH == gH))
10021008 then {
1003- let gF = fromBase58String(gD)
1004- if ((gF == gF))
1005- then [StringEntry(V(), gD)]
1009+ let gI = fromBase58String(gG)
1010+ if ((gI == gI))
1011+ then [StringEntry(V(), gG)]
10061012 else throw("Strict value is not equal to itself.")
10071013 }
10081014 else throw("Strict value is not equal to itself.")
10101016
10111017
10121018
1013-@Callable(eS)
1019+@Callable(eV)
10141020 func confirmManager () = {
1015- let gG = gg()
1016- let gH = if (isDefined(gG))
1021+ let gJ = gj()
1022+ let gK = if (isDefined(gJ))
10171023 then true
10181024 else throw("No pending manager")
1019- if ((gH == gH))
1025+ if ((gK == gK))
10201026 then {
1021- let gI = if ((eS.callerPublicKey == value(gG)))
1027+ let gL = if ((eV.callerPublicKey == value(gJ)))
10221028 then true
10231029 else throw("You are not pending manager")
1024- if ((gI == gI))
1025- then [StringEntry(U(), toBase58String(value(gG))), DeleteEntry(V())]
1030+ if ((gL == gL))
1031+ then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
10261032 else throw("Strict value is not equal to itself.")
10271033 }
10281034 else throw("Strict value is not equal to itself.")
10301036
10311037
10321038
1033-@Callable(eS)
1034-func put (dG,gJ) = if ((0 > dG))
1039+@Callable(eV)
1040+func put (dI,gM) = if ((0 > dI))
10351041 then throw("Invalid slippageTolerance passed")
10361042 else {
1037- let eY = eV(eS, dG, true)
1038- let ei = eY._2
1039- let dn = eY._7
1040- let dE = eY._9
1041- let ej = eY._10
1042- let ek = eY._11
1043- let gK = eY._12
1044- let gL = eY._13
1045- let eW = toBigInt(value(eS.payments[0]).amount)
1046- let eX = toBigInt(value(eS.payments[1]).amount)
1047- let ez = es(eW, eX, toBigInt(0))
1048- if ((ez == ez))
1043+ let fb = eY(eV, dI, true)
1044+ let ek = fb._2
1045+ let dp = fb._7
1046+ let dG = fb._9
1047+ let el = fb._10
1048+ let em = fb._11
1049+ let gN = fb._12
1050+ let gO = fb._13
1051+ let eZ = toBigInt(value(eV.payments[0]).amount)
1052+ let fa = toBigInt(value(eV.payments[1]).amount)
1053+ let eB = eu(eZ, fa, toBigInt(0))
1054+ if ((eB == eB))
10491055 then {
1050- let fa = invoke(aT, "emit", [ei], nil)
1051- if ((fa == fa))
1056+ let fd = invoke(aV, "emit", [ek], nil)
1057+ if ((fd == fd))
10521058 then {
1053- let fb = {
1054- let bT = fa
1055- if ($isInstanceOf(bT, "Address"))
1059+ let fe = {
1060+ let bV = fd
1061+ if ($isInstanceOf(bV, "Address"))
10561062 then {
1057- let fc = bT
1058- invoke(fc, "emit", [ei], nil)
1063+ let ff = bV
1064+ invoke(ff, "emit", [ek], nil)
10591065 }
10601066 else unit
10611067 }
1062- if ((fb == fb))
1068+ if ((fe == fe))
10631069 then {
1064- let gM = if ((ej > 0))
1065- then invoke(bt, "put", nil, [AttachedPayment(gK, ej)])
1070+ let gP = if ((el > 0))
1071+ then invoke(bv, "put", nil, [AttachedPayment(gN, el)])
10661072 else nil
1067- if ((gM == gM))
1073+ if ((gP == gP))
10681074 then {
1069- let gN = if ((ek > 0))
1070- then invoke(bt, "put", nil, [AttachedPayment(gL, ek)])
1075+ let gQ = if ((em > 0))
1076+ then invoke(bv, "put", nil, [AttachedPayment(gO, em)])
10711077 else nil
1072- if ((gN == gN))
1078+ if ((gQ == gQ))
10731079 then {
1074- let gO = if (gJ)
1080+ let gR = if (gM)
10751081 then {
1076- let gP = invoke(bs, "stake", nil, [AttachedPayment(dn, ei)])
1077- if ((gP == gP))
1082+ let gS = invoke(bu, "stake", nil, [AttachedPayment(dp, ek)])
1083+ if ((gS == gS))
10781084 then nil
10791085 else throw("Strict value is not equal to itself.")
10801086 }
1081- else [ScriptTransfer(eS.caller, ei, dn)]
1082- let gQ = eA(0, 0, 0)
1083- if ((gQ == gQ))
1087+ else [ScriptTransfer(eV.caller, ek, dp)]
1088+ let gT = eC(0, 0, 0)
1089+ if ((gT == gT))
10841090 then {
1085- let er = gQ._2
1086- let gR = gQ._1
1087- let gS = eE(ez, er)
1088- if ((gS == gS))
1091+ let et = gT._2
1092+ let gU = gT._1
1093+ let gV = eH(eB, et)
1094+ if ((gV == gV))
10891095 then {
1090- let gT = invoke(this, "rebalance", nil, nil)
1091- if ((gT == gT))
1092- then ((dE ++ gO) ++ gR)
1096+ let gW = invoke(this, "rebalance", nil, nil)
1097+ if ((gW == gW))
1098+ then ((dG ++ gR) ++ gU)
10931099 else throw("Strict value is not equal to itself.")
10941100 }
10951101 else throw("Strict value is not equal to itself.")
11091115
11101116
11111117
1112-@Callable(eS)
1113-func putForFree (gU) = if ((0 > gU))
1118+@Callable(eV)
1119+func putForFree (gX) = if ((0 > gX))
11141120 then throw("Invalid value passed")
11151121 else {
1116- let eY = eV(eS, gU, false)
1117- let dE = eY._9
1118- let eW = toBigInt(value(eS.payments[0]).amount)
1119- let eX = toBigInt(value(eS.payments[1]).amount)
1120- let ez = es(eW, eX, toBigInt(0))
1121- if ((ez == ez))
1122+ let fb = eY(eV, gX, false)
1123+ let dG = fb._9
1124+ let eZ = toBigInt(value(eV.payments[0]).amount)
1125+ let fa = toBigInt(value(eV.payments[1]).amount)
1126+ let eB = eu(eZ, fa, toBigInt(0))
1127+ if ((eB == eB))
11221128 then {
1123- let gV = eA(0, 0, 0)
1124- let gR = gV._1
1125- let er = gV._2
1126- let gS = eE(ez, er)
1127- if ((gS == gS))
1128- then (dE ++ gR)
1129+ let gY = eC(0, 0, 0)
1130+ let gU = gY._1
1131+ let et = gY._2
1132+ let gV = eH(eB, et)
1133+ if ((gV == gV))
1134+ then (dG ++ gU)
11291135 else throw("Strict value is not equal to itself.")
11301136 }
11311137 else throw("Strict value is not equal to itself.")
11331139
11341140
11351141
1136-@Callable(eS)
1137-func putOneTkn (gW,gX) = {
1138- let gY = {
1139- let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1140- if ($isInstanceOf(aW, "Boolean"))
1141- then aW
1142- else throw(($getType(aW) + " couldn't be cast to Boolean"))
1142+@Callable(eV)
1143+func putOneTkn (gZ,ha) = {
1144+ let hb = {
1145+ let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1146+ if ($isInstanceOf(aY, "Boolean"))
1147+ then aY
1148+ else throw(($getType(aY) + " couldn't be cast to Boolean"))
11431149 }
1144- let gZ = if (if (if (aY())
1150+ let hc = if (if (if (ba())
11451151 then true
1146- else (bl == l))
1152+ else (bn == l))
11471153 then true
1148- else (bl == n))
1154+ else (bn == n))
11491155 then true
1150- else gY
1151- let fM = [if (if (!(gZ))
1156+ else hb
1157+ let fP = [if (if (!(hc))
11521158 then true
1153- else gh(eS))
1159+ else gk(eV))
11541160 then true
1155- else aQ("put operation is blocked by admin"), if ((size(eS.payments) == 1))
1161+ else aS("put operation is blocked by admin"), if ((size(eV.payments) == 1))
11561162 then true
1157- else aQ("exactly 1 payment are expected")]
1158- if ((fM == fM))
1163+ else aS("exactly 1 payment are expected")]
1164+ if ((fP == fP))
11591165 then {
1160- let ha = eS.payments[0]
1161- let fh = ha.assetId
1162- let fg = ha.amount
1163- let ez = if ((fh == bn))
1164- then es(toBigInt(fg), toBigInt(0), toBigInt(0))
1165- else if ((fh == bo))
1166- then es(toBigInt(0), toBigInt(fg), toBigInt(0))
1167- else aQ("payment asset is not supported")
1168- if ((ez == ez))
1166+ let hd = eV.payments[0]
1167+ let fk = hd.assetId
1168+ let fj = hd.amount
1169+ let eB = if ((fk == bp))
1170+ then eu(toBigInt(fj), toBigInt(0), toBigInt(0))
1171+ else if ((fk == bq))
1172+ then eu(toBigInt(0), toBigInt(fj), toBigInt(0))
1173+ else aS("payment asset is not supported")
1174+ if ((eB == eB))
11691175 then {
1170- let ab = eS.caller
1171- let ac = eS.transactionId
1172- let hb = ff(fg, fh, ab, ac)
1173- if ((hb == hb))
1176+ let ab = eV.caller
1177+ let ac = eV.transactionId
1178+ let he = fi(fj, fk, ab, ac)
1179+ if ((he == he))
11741180 then {
1175- let fl = hb._5
1176- let hc = hb._4
1177- let fe = hb._3
1178- let el = hb._2
1179- let hd = hb._1
1180- let he = if (if ((gW > 0))
1181- then (gW > hd)
1181+ let fo = he._5
1182+ let hf = he._4
1183+ let fh = he._3
1184+ let en = he._2
1185+ let hg = he._1
1186+ let hh = if (if ((gZ > 0))
1187+ then (gZ > hg)
11821188 else false)
1183- then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1184- else hd
1185- let fa = eZ(he)
1186- if ((fa == fa))
1189+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1190+ else hg
1191+ let fd = fc(hh)
1192+ if ((fd == fd))
11871193 then {
1188- let gO = if (gX)
1194+ let gR = if (ha)
11891195 then {
1190- let hf = invoke(bs, "stake", nil, [AttachedPayment(bm, he)])
1191- if ((hf == hf))
1196+ let hi = invoke(bu, "stake", nil, [AttachedPayment(bo, hh)])
1197+ if ((hi == hi))
11921198 then nil
11931199 else throw("Strict value is not equal to itself.")
11941200 }
1195- else [ScriptTransfer(eS.caller, he, bm)]
1196- let hg = if ((fe > 0))
1197- then [ScriptTransfer(aU, fe, fh)]
1201+ else [ScriptTransfer(eV.caller, hh, bo)]
1202+ let hj = if ((fh > 0))
1203+ then [ScriptTransfer(aW, fh, fk)]
11981204 else nil
1199- let hh = if ((this == aU))
1205+ let hk = if ((this == aW))
12001206 then $Tuple2(0, 0)
1201- else if (fl)
1202- then $Tuple2(-(fe), 0)
1203- else $Tuple2(0, -(fe))
1204- let eB = hh._1
1205- let eC = hh._2
1206- let hi = eA(eB, eC, 0)
1207- let gR = hi._1
1208- let er = hi._2
1209- let eL = value(getString(aj))
1210- let gS = eE(ez, er)
1211- if ((gS == gS))
1207+ else if (fo)
1208+ then $Tuple2(-(fh), 0)
1209+ else $Tuple2(0, -(fh))
1210+ let eD = hk._1
1211+ let eE = hk._2
1212+ let hl = eC(eD, eE, 0)
1213+ let gU = hl._1
1214+ let et = hl._2
1215+ let eO = value(getString(aj))
1216+ let gV = eH(eB, et)
1217+ if ((gV == gV))
12121218 then {
1213- let gT = invoke(this, "rebalance", nil, nil)
1214- if ((gT == gT))
1215- then $Tuple2((((el ++ gO) ++ hg) ++ gR), he)
1219+ let gW = invoke(this, "rebalance", nil, nil)
1220+ if ((gW == gW))
1221+ then $Tuple2((((en ++ gR) ++ hj) ++ gU), hh)
12161222 else throw("Strict value is not equal to itself.")
12171223 }
12181224 else throw("Strict value is not equal to itself.")
12281234
12291235
12301236
1231-@Callable(eS)
1232-func putOneTknREADONLY (fh,fg) = {
1233- let hj = ff(fg, bd(fh), unit, unit)
1234- let hd = hj._1
1235- let el = hj._2
1236- let fe = hj._3
1237- let hc = hj._4
1238- let fl = hj._5
1239- $Tuple2(nil, $Tuple3(hd, fe, hc))
1237+@Callable(eV)
1238+func putOneTknREADONLY (fk,fj) = {
1239+ let hm = fi(fj, bf(fk), unit, unit)
1240+ let hg = hm._1
1241+ let en = hm._2
1242+ let fh = hm._3
1243+ let hf = hm._4
1244+ let fo = hm._5
1245+ $Tuple2(nil, $Tuple3(hg, fh, hf))
12401246 }
12411247
12421248
12431249
1244-@Callable(eS)
1245-func getOneTkn (hk,gW) = {
1246- let gY = {
1247- let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1248- if ($isInstanceOf(aW, "Boolean"))
1249- then aW
1250- else throw(($getType(aW) + " couldn't be cast to Boolean"))
1250+@Callable(eV)
1251+func getOneTkn (hn,gZ) = {
1252+ let hb = {
1253+ let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1254+ if ($isInstanceOf(aY, "Boolean"))
1255+ then aY
1256+ else throw(($getType(aY) + " couldn't be cast to Boolean"))
12511257 }
1252- let hl = if (if (aY())
1258+ let ho = if (if (ba())
12531259 then true
1254- else (bl == n))
1260+ else (bn == n))
12551261 then true
1256- else gY
1257- let fM = [if (if (!(hl))
1262+ else hb
1263+ let fP = [if (if (!(ho))
12581264 then true
1259- else gh(eS))
1265+ else gk(eV))
12601266 then true
1261- else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 1))
1267+ else aS("get operation is blocked by admin"), if ((size(eV.payments) == 1))
12621268 then true
1263- else aQ("exactly 1 payment are expected")]
1264- if ((fM == fM))
1269+ else aS("exactly 1 payment are expected")]
1270+ if ((fP == fP))
12651271 then {
1266- let fL = bd(hk)
1267- let ha = eS.payments[0]
1268- let fh = ha.assetId
1269- let ft = ha.amount
1270- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1271- if ((ez == ez))
1272+ let fO = bf(hn)
1273+ let hd = eV.payments[0]
1274+ let fk = hd.assetId
1275+ let fw = hd.amount
1276+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1277+ if ((eB == eB))
12721278 then {
1273- let ab = eS.caller
1274- let ac = eS.transactionId
1275- let hm = fK(fL, ft, fh, ab, ac)
1276- if ((hm == hm))
1279+ let ab = eV.caller
1280+ let ac = eV.transactionId
1281+ let hp = fN(fO, fw, fk, ab, ac)
1282+ if ((hp == hp))
12771283 then {
1278- let fN = hm._5
1279- let hc = hm._4
1280- let fe = hm._3
1281- let el = hm._2
1282- let hn = hm._1
1283- let bW = if (if ((gW > 0))
1284- then (gW > hn)
1284+ let fQ = hp._5
1285+ let hf = hp._4
1286+ let fh = hp._3
1287+ let en = hp._2
1288+ let hq = hp._1
1289+ let bY = if (if ((gZ > 0))
1290+ then (gZ > hq)
12851291 else false)
1286- then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1287- else hn
1288- let ho = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1289- if ((ho == ho))
1292+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1293+ else hq
1294+ let hr = invoke(aV, "burn", [fw], [AttachedPayment(fk, fw)])
1295+ if ((hr == hr))
12901296 then {
1291- let gC = cH(hk, (bW + max([0, fe])))
1292- let hp = [ScriptTransfer(ab, bW, fL)]
1293- let hg = if ((fe > 0))
1294- then [ScriptTransfer(aU, fe, fL)]
1297+ let gF = cJ(hn, (bY + max([0, fh])))
1298+ let hs = [ScriptTransfer(ab, bY, fO)]
1299+ let hj = if ((fh > 0))
1300+ then [ScriptTransfer(aW, fh, fO)]
12951301 else nil
1296- let hq = {
1297- let hr = if ((this == aU))
1302+ let ht = {
1303+ let hu = if ((this == aW))
12981304 then 0
1299- else fe
1300- if (fN)
1301- then $Tuple2(-((bW + hr)), 0)
1302- else $Tuple2(0, -((bW + hr)))
1305+ else fh
1306+ if (fQ)
1307+ then $Tuple2(-((bY + hu)), 0)
1308+ else $Tuple2(0, -((bY + hu)))
13031309 }
1304- let eB = hq._1
1305- let eC = hq._2
1306- let hs = eA(eB, eC, 0)
1307- let gR = hs._1
1308- let er = hs._2
1309- let gS = eE(ez, er)
1310- if ((gS == gS))
1311- then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
1310+ let eD = ht._1
1311+ let eE = ht._2
1312+ let hv = eC(eD, eE, 0)
1313+ let gU = hv._1
1314+ let et = hv._2
1315+ let gV = eH(eB, et)
1316+ if ((gV == gV))
1317+ then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
13121318 else throw("Strict value is not equal to itself.")
13131319 }
13141320 else throw("Strict value is not equal to itself.")
13221328
13231329
13241330
1325-@Callable(eS)
1326-func getOneTknREADONLY (fL,ft) = {
1327- let ht = fK(bd(fL), ft, bm, unit, unit)
1328- let hn = ht._1
1329- let el = ht._2
1330- let fe = ht._3
1331- let hc = ht._4
1332- let fN = ht._5
1333- $Tuple2(nil, $Tuple3(hn, fe, hc))
1331+@Callable(eV)
1332+func getOneTknREADONLY (fO,fw) = {
1333+ let hw = fN(bf(fO), fw, bo, unit, unit)
1334+ let hq = hw._1
1335+ let en = hw._2
1336+ let fh = hw._3
1337+ let hf = hw._4
1338+ let fQ = hw._5
1339+ $Tuple2(nil, $Tuple3(hq, fh, hf))
13341340 }
13351341
13361342
13371343
1338-@Callable(eS)
1339-func unstakeAndGetOneTkn (hu,hk,gW) = {
1340- let gY = {
1341- let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1342- if ($isInstanceOf(aW, "Boolean"))
1343- then aW
1344- else throw(($getType(aW) + " couldn't be cast to Boolean"))
1344+@Callable(eV)
1345+func unstakeAndGetOneTkn (hx,hn,gZ) = {
1346+ let hb = {
1347+ let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1348+ if ($isInstanceOf(aY, "Boolean"))
1349+ then aY
1350+ else throw(($getType(aY) + " couldn't be cast to Boolean"))
13451351 }
1346- let hl = if (if (aY())
1352+ let ho = if (if (ba())
13471353 then true
1348- else (bl == n))
1354+ else (bn == n))
13491355 then true
1350- else gY
1351- let fM = [if (if (!(hl))
1356+ else hb
1357+ let fP = [if (if (!(ho))
13521358 then true
1353- else gh(eS))
1359+ else gk(eV))
13541360 then true
1355- else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 0))
1361+ else aS("get operation is blocked by admin"), if ((size(eV.payments) == 0))
13561362 then true
1357- else aQ("no payments are expected")]
1358- if ((fM == fM))
1363+ else aS("no payments are expected")]
1364+ if ((fP == fP))
13591365 then {
1360- let fL = bd(hk)
1361- let ab = eS.caller
1362- let ac = eS.transactionId
1363- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1364- if ((ez == ez))
1366+ let fO = bf(hn)
1367+ let ab = eV.caller
1368+ let ac = eV.transactionId
1369+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1370+ if ((eB == eB))
13651371 then {
1366- let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1367- if ((hv == hv))
1372+ let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1373+ if ((hy == hy))
13681374 then {
1369- let hw = fK(fL, hu, bm, ab, ac)
1370- if ((hw == hw))
1375+ let hz = fN(fO, hx, bo, ab, ac)
1376+ if ((hz == hz))
13711377 then {
1372- let fN = hw._5
1373- let hc = hw._4
1374- let fe = hw._3
1375- let el = hw._2
1376- let hn = hw._1
1377- let bW = if (if ((gW > 0))
1378- then (gW > hn)
1378+ let fQ = hz._5
1379+ let hf = hz._4
1380+ let fh = hz._3
1381+ let en = hz._2
1382+ let hq = hz._1
1383+ let bY = if (if ((gZ > 0))
1384+ then (gZ > hq)
13791385 else false)
1380- then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1381- else hn
1382- let ho = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1383- if ((ho == ho))
1386+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1387+ else hq
1388+ let hr = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1389+ if ((hr == hr))
13841390 then {
1385- let gC = cH(hk, (bW + max([0, fe])))
1386- let hp = [ScriptTransfer(eS.caller, bW, fL)]
1387- let hg = if ((fe > 0))
1388- then [ScriptTransfer(aU, fe, fL)]
1391+ let gF = cJ(hn, (bY + max([0, fh])))
1392+ let hs = [ScriptTransfer(eV.caller, bY, fO)]
1393+ let hj = if ((fh > 0))
1394+ then [ScriptTransfer(aW, fh, fO)]
13891395 else nil
1390- let hx = {
1391- let hr = if ((this == aU))
1396+ let hA = {
1397+ let hu = if ((this == aW))
13921398 then 0
1393- else fe
1394- if (fN)
1395- then $Tuple2(-((bW + hr)), 0)
1396- else $Tuple2(0, -((bW + hr)))
1399+ else fh
1400+ if (fQ)
1401+ then $Tuple2(-((bY + hu)), 0)
1402+ else $Tuple2(0, -((bY + hu)))
13971403 }
1398- let eB = hx._1
1399- let eC = hx._2
1400- let hy = eA(eB, eC, 0)
1401- let gR = hy._1
1402- let er = hy._2
1403- let gS = eE(ez, er)
1404- if ((gS == gS))
1405- then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
1404+ let eD = hA._1
1405+ let eE = hA._2
1406+ let hB = eC(eD, eE, 0)
1407+ let gU = hB._1
1408+ let et = hB._2
1409+ let gV = eH(eB, et)
1410+ if ((gV == gV))
1411+ then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
14061412 else throw("Strict value is not equal to itself.")
14071413 }
14081414 else throw("Strict value is not equal to itself.")
14181424
14191425
14201426
1421-@Callable(eS)
1427+@Callable(eV)
14221428 func get () = {
1423- let dW = eR(eS)
1424- let dC = dW._1
1425- let dD = dW._2
1426- let eU = dW._3
1427- let dl = dW._4
1428- let dE = dW._5
1429- let gC = cM(dC, dD)
1430- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1431- if ((ez == ez))
1429+ let dY = eU(eV)
1430+ let dE = dY._1
1431+ let dF = dY._2
1432+ let eX = dY._3
1433+ let dn = dY._4
1434+ let dG = dY._5
1435+ let gF = cO(dE, dF)
1436+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1437+ if ((eB == eB))
14321438 then {
1433- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dl, eU)])
1434- if ((hz == hz))
1439+ let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1440+ if ((hC == hC))
14351441 then {
1436- let hA = eA(-(dC), -(dD), 0)
1437- let gR = hA._1
1438- let er = hA._2
1439- let gS = eE(ez, er)
1440- if ((gS == gS))
1441- then ((gC ++ dE) ++ gR)
1442+ let hD = eC(-(dE), -(dF), 0)
1443+ let gU = hD._1
1444+ let et = hD._2
1445+ let gV = eH(eB, et)
1446+ if ((gV == gV))
1447+ then ((gF ++ dG) ++ gU)
14421448 else throw("Strict value is not equal to itself.")
14431449 }
14441450 else throw("Strict value is not equal to itself.")
14481454
14491455
14501456
1451-@Callable(eS)
1452-func getNoLess (hB,hC) = {
1453- let dW = eR(eS)
1454- let dC = dW._1
1455- let dD = dW._2
1456- let eU = dW._3
1457- let dl = dW._4
1458- let dE = dW._5
1459- if ((hB > dC))
1460- then throw(((("noLessThenAmtAsset failed: " + toString(dC)) + " < ") + toString(hB)))
1461- else if ((hC > dD))
1462- then throw(((("noLessThenPriceAsset failed: " + toString(dD)) + " < ") + toString(hC)))
1457+@Callable(eV)
1458+func getNoLess (hE,hF) = {
1459+ let dY = eU(eV)
1460+ let dE = dY._1
1461+ let dF = dY._2
1462+ let eX = dY._3
1463+ let dn = dY._4
1464+ let dG = dY._5
1465+ if ((hE > dE))
1466+ then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hE)))
1467+ else if ((hF > dF))
1468+ then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hF)))
14631469 else {
1464- let gC = cM(dC, dD)
1465- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1466- if ((ez == ez))
1470+ let gF = cO(dE, dF)
1471+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1472+ if ((eB == eB))
14671473 then {
1468- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dl, eU)])
1469- if ((hz == hz))
1474+ let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1475+ if ((hC == hC))
14701476 then {
1471- let hD = eA(-(dC), -(dD), 0)
1472- let gR = hD._1
1473- let er = hD._2
1474- let gS = eE(ez, er)
1475- if ((gS == gS))
1476- then ((gC ++ dE) ++ gR)
1477+ let hG = eC(-(dE), -(dF), 0)
1478+ let gU = hG._1
1479+ let et = hG._2
1480+ let gV = eH(eB, et)
1481+ if ((gV == gV))
1482+ then ((gF ++ dG) ++ gU)
14771483 else throw("Strict value is not equal to itself.")
14781484 }
14791485 else throw("Strict value is not equal to itself.")
14841490
14851491
14861492
1487-@Callable(eS)
1488-func unstakeAndGet (bW) = {
1489- let hE = if ((size(eS.payments) != 0))
1493+@Callable(eV)
1494+func unstakeAndGet (bY) = {
1495+ let hH = if ((size(eV.payments) != 0))
14901496 then throw("No payments are expected")
14911497 else true
1492- if ((hE == hE))
1498+ if ((hH == hH))
14931499 then {
1494- let da = ba()
1495- let dn = fromBase58String(da[q])
1496- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1497- if ((ez == ez))
1500+ let dc = bc()
1501+ let dp = fromBase58String(dc[q])
1502+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1503+ if ((eB == eB))
14981504 then {
1499- let hv = invoke(bs, "unstake", [toBase58String(dn), bW], nil)
1500- if ((hv == hv))
1505+ let hy = invoke(bu, "unstake", [toBase58String(dp), bY], nil)
1506+ if ((hy == hy))
15011507 then {
1502- let dW = dj(toBase58String(eS.transactionId), toBase58String(dn), bW, eS.caller)
1503- let dC = dW._1
1504- let dD = dW._2
1505- let dq = parseIntValue(dW._9)
1506- let dE = dW._10
1507- let gC = cM(dC, dD)
1508- let hF = if (if (aY())
1508+ let dY = dl(toBase58String(eV.transactionId), toBase58String(dp), bY, eV.caller)
1509+ let dE = dY._1
1510+ let dF = dY._2
1511+ let ds = parseIntValue(dY._9)
1512+ let dG = dY._10
1513+ let gF = cO(dE, dF)
1514+ let hI = if (if (ba())
15091515 then true
1510- else (dq == n))
1511- then throw(("Get operation is blocked by admin. Status = " + toString(dq)))
1516+ else (ds == n))
1517+ then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
15121518 else true
1513- if ((hF == hF))
1519+ if ((hI == hI))
15141520 then {
1515- let hz = invoke(aT, "burn", [bW], [AttachedPayment(dn, bW)])
1516- if ((hz == hz))
1521+ let hC = invoke(aV, "burn", [bY], [AttachedPayment(dp, bY)])
1522+ if ((hC == hC))
15171523 then {
1518- let hG = eA(-(dC), -(dD), 0)
1519- let gR = hG._1
1520- let er = hG._2
1521- let gS = eE(ez, er)
1522- if ((gS == gS))
1523- then ((gC ++ dE) ++ gR)
1524+ let hJ = eC(-(dE), -(dF), 0)
1525+ let gU = hJ._1
1526+ let et = hJ._2
1527+ let gV = eH(eB, et)
1528+ if ((gV == gV))
1529+ then ((gF ++ dG) ++ gU)
15241530 else throw("Strict value is not equal to itself.")
15251531 }
15261532 else throw("Strict value is not equal to itself.")
15361542
15371543
15381544
1539-@Callable(eS)
1540-func unstakeAndGetNoLess (hu,hH,hC) = {
1541- let hl = if (aY())
1545+@Callable(eV)
1546+func unstakeAndGetNoLess (hx,hK,hF) = {
1547+ let ho = if (ba())
15421548 then true
1543- else (bl == n)
1544- let fM = [if (!(hl))
1549+ else (bn == n)
1550+ let fP = [if (!(ho))
15451551 then true
1546- else throw("get operation is blocked by admin"), if ((size(eS.payments) == 0))
1552+ else throw("get operation is blocked by admin"), if ((size(eV.payments) == 0))
15471553 then true
15481554 else throw("no payments are expected")]
1549- if ((fM == fM))
1555+ if ((fP == fP))
15501556 then {
1551- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1552- if ((ez == ez))
1557+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1558+ if ((eB == eB))
15531559 then {
1554- let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1555- if ((hv == hv))
1560+ let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1561+ if ((hy == hy))
15561562 then {
1557- let dW = dj(toBase58String(eS.transactionId), toBase58String(bm), hu, eS.caller)
1558- let dC = dW._1
1559- let dD = dW._2
1560- let dE = dW._10
1561- let gC = cM(dC, dD)
1562- let hI = [if ((dC >= hH))
1563+ let dY = dl(toBase58String(eV.transactionId), toBase58String(bo), hx, eV.caller)
1564+ let dE = dY._1
1565+ let dF = dY._2
1566+ let dG = dY._10
1567+ let gF = cO(dE, dF)
1568+ let hL = [if ((dE >= hK))
15631569 then true
1564- else throw(makeString(["amount asset amount to receive is less than ", toString(hH)], "")), if ((dD >= hC))
1570+ else throw(makeString(["amount asset amount to receive is less than ", toString(hK)], "")), if ((dF >= hF))
15651571 then true
1566- else throw(makeString(["price asset amount to receive is less than ", toString(hC)], ""))]
1567- if ((hI == hI))
1572+ else throw(makeString(["price asset amount to receive is less than ", toString(hF)], ""))]
1573+ if ((hL == hL))
15681574 then {
1569- let hz = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1570- if ((hz == hz))
1575+ let hC = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1576+ if ((hC == hC))
15711577 then {
1572- let hJ = eA(-(dC), -(dD), 0)
1573- let gR = hJ._1
1574- let er = hJ._2
1575- let gS = eE(ez, er)
1576- if ((gS == gS))
1577- then ((gC ++ dE) ++ gR)
1578+ let hM = eC(-(dE), -(dF), 0)
1579+ let gU = hM._1
1580+ let et = hM._2
1581+ let gV = eH(eB, et)
1582+ if ((gV == gV))
1583+ then ((gF ++ dG) ++ gU)
15781584 else throw("Strict value is not equal to itself.")
15791585 }
15801586 else throw("Strict value is not equal to itself.")
15901596
15911597
15921598
1593-@Callable(eS)
1594-func activate (hK,hL) = if ((toString(eS.caller) != toString(aT)))
1599+@Callable(eV)
1600+func activate (hN,hO) = if ((toString(eV.caller) != toString(aV)))
15951601 then throw("permissions denied")
1596- else $Tuple2([StringEntry(ae(), hK), StringEntry(af(), hL)], "success")
1602+ else $Tuple2([StringEntry(ae(), hN), StringEntry(af(), hO)], "success")
15971603
15981604
15991605
1600-@Callable(eS)
1606+@Callable(eV)
16011607 func refreshKLp () = {
1602- let hM = valueOrElse(getInteger(ak), 0)
1603- let hN = if (((height - hM) >= an))
1608+ let hP = valueOrElse(getInteger(ak), 0)
1609+ let hQ = if (((height - hP) >= an))
16041610 then unit
1605- else aQ(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1606- if ((hN == hN))
1611+ else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1612+ if ((hQ == hQ))
16071613 then {
1608- let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
1609- let hO = eA(0, 0, 0)
1610- let hP = hO._1
1611- let er = hO._2
1612- let eD = if ((eL != er))
1613- then hP
1614- else aQ("nothing to refresh")
1615- $Tuple2(eD, toString(er))
1614+ let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1615+ let hR = eC(0, 0, 0)
1616+ let hS = hR._1
1617+ let et = hR._2
1618+ let eF = if ((eO != et))
1619+ then hS
1620+ else aS("nothing to refresh")
1621+ $Tuple2(eF, toString(et))
16161622 }
16171623 else throw("Strict value is not equal to itself.")
16181624 }
16191625
16201626
16211627
1622-@Callable(eS)
1623-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ba())
1628+@Callable(eV)
1629+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
16241630
16251631
16261632
1627-@Callable(eS)
1628-func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bJ(ap))
1633+@Callable(eV)
1634+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bL(ap))
16291635
16301636
16311637
1632-@Callable(eS)
1633-func calcPricesWrapperREADONLY (cU,cV,cZ) = {
1634- let di = cY(cU, cV, cZ)
1635- $Tuple2(nil, [toString(di[0]), toString(di[1]), toString(di[2])])
1638+@Callable(eV)
1639+func calcPricesWrapperREADONLY (cW,cX,db) = {
1640+ let dk = da(cW, cX, db)
1641+ $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
16361642 }
16371643
16381644
16391645
1640-@Callable(eS)
1646+@Callable(eV)
16411647 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16421648
16431649
16441650
1645-@Callable(eS)
1651+@Callable(eV)
16461652 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16471653
16481654
16491655
1650-@Callable(eS)
1651-func calcPriceBigIntWrapperREADONLY (bN,bO) = $Tuple2(nil, toString(bM(parseBigIntValue(bN), parseBigIntValue(bO))))
1656+@Callable(eV)
1657+func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
16521658
16531659
16541660
1655-@Callable(eS)
1656-func estimatePutOperationWrapperREADONLY (dk,dG,dH,dI,dJ,dK,ab,dL,dM) = $Tuple2(nil, dF(dk, dG, dH, dI, dJ, dK, ab, dL, dM))
1661+@Callable(eV)
1662+func estimatePutOperationWrapperREADONLY (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = $Tuple2(nil, dH(dm, dI, dJ, dK, dL, dM, ab, dN, dO))
16571663
16581664
16591665
1660-@Callable(eS)
1661-func estimateGetOperationWrapperREADONLY (dk,dl,dm,ab) = {
1662- let dW = dj(dk, dl, dm, addressFromStringValue(ab))
1663- $Tuple2(nil, $Tuple10(dW._1, dW._2, dW._3, dW._4, dW._5, dW._6, dW._7, toString(dW._8), dW._9, dW._10))
1666+@Callable(eV)
1667+func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
1668+ let dY = dl(dm, dn, do, addressFromStringValue(ab))
1669+ $Tuple2(nil, $Tuple10(dY._1, dY._2, dY._3, dY._4, dY._5, dY._6, dY._7, toString(dY._8), dY._9, dY._10))
16641670 }
16651671
16661672
16671673
1668-@Callable(eS)
1674+@Callable(eV)
16691675 func statsREADONLY () = {
1670- let da = ba()
1671- let dn = fromBase58String(da[q])
1672- let hQ = da[r]
1673- let hR = da[s]
1674- let dP = da[v]
1675- let dQ = da[w]
1676- let db = parseIntValue(da[t])
1677- let dc = parseIntValue(da[u])
1678- let hS = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
1679- let hT = bJ(hQ)
1680- let hU = bJ(hR)
1681- let hV = if ((hS == 0))
1676+ let dc = bc()
1677+ let dp = fromBase58String(dc[q])
1678+ let hT = dc[r]
1679+ let hU = dc[s]
1680+ let dR = dc[v]
1681+ let dS = dc[w]
1682+ let dd = parseIntValue(dc[t])
1683+ let de = parseIntValue(dc[u])
1684+ let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1685+ let hW = bL(hT)
1686+ let hX = bL(hU)
1687+ let hY = if ((hV == 0))
16821688 then [e, e, e]
1683- else cY(hT, hU, hS)
1684- let dx = 0
1685- let hW = H(hV[1], b)
1686- let hX = H(hV[2], b)
1687- let hY = value(getInteger(aT, aD(toString(this))))
1688- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hT), toString(hU), toString(hS), toString(dx), toString(hW), toString(hX), toString(hY)], j))
1689+ else da(hW, hX, hV)
1690+ let dz = 0
1691+ let hZ = H(hY[1], b)
1692+ let ia = H(hY[2], b)
1693+ let ib = value(getInteger(aV, aD(toString(this))))
1694+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hW), toString(hX), toString(hV), toString(dz), toString(hZ), toString(ia), toString(ib)], j))
16891695 }
16901696
16911697
16921698
1693-@Callable(eS)
1694-func evaluatePutByAmountAssetREADONLY (dH) = {
1695- let da = ba()
1696- let dn = fromBase58String(da[q])
1697- let dN = da[r]
1698- let do = fromBase58String(dN)
1699- let dO = da[s]
1700- let dp = fromBase58String(dO)
1701- let db = parseIntValue(da[t])
1702- let dc = parseIntValue(da[u])
1703- let dq = da[p]
1704- let hS = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
1705- let hT = bJ(dN)
1706- let hU = bJ(dO)
1707- let cW = D(hT, db)
1708- let cX = D(hU, dc)
1709- let dw = if ((hS == 0))
1699+@Callable(eV)
1700+func evaluatePutByAmountAssetREADONLY (dJ) = {
1701+ let dc = bc()
1702+ let dp = fromBase58String(dc[q])
1703+ let dP = dc[r]
1704+ let dq = fromBase58String(dP)
1705+ let dQ = dc[s]
1706+ let dr = fromBase58String(dQ)
1707+ let dd = parseIntValue(dc[t])
1708+ let de = parseIntValue(dc[u])
1709+ let ds = dc[p]
1710+ let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1711+ let hW = bL(dP)
1712+ let hX = bL(dQ)
1713+ let cY = D(hW, dd)
1714+ let cZ = D(hX, de)
1715+ let dy = if ((hV == 0))
17101716 then e
1711- else bM(cX, cW)
1712- let dT = D(dH, db)
1713- let dU = fraction(dT, dw, d)
1714- let dJ = H(dU, dc)
1715- let eY = dF("", 500000, dH, do, dJ, dp, "", true, false)
1716- let ee = eY._1
1717- let hZ = eY._3
1718- let ds = eY._4
1719- let du = eY._5
1720- let dr = eY._6
1721- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(dw, b)), toString(ds), toString(du), toString(dr), dq, toString(dH), toString(dJ)], j))
1717+ else bO(cZ, cY)
1718+ let dV = D(dJ, dd)
1719+ let dW = fraction(dV, dy, d)
1720+ let dL = H(dW, de)
1721+ let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1722+ let eg = fb._1
1723+ let ic = fb._3
1724+ let du = fb._4
1725+ let dw = fb._5
1726+ let dt = fb._6
1727+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
17221728 }
17231729
17241730
17251731
1726-@Callable(eS)
1727-func evaluatePutByPriceAssetREADONLY (dJ) = {
1728- let da = ba()
1729- let dn = fromBase58String(da[q])
1730- let dN = da[r]
1731- let do = fromBase58String(dN)
1732- let dO = da[s]
1733- let dp = fromBase58String(dO)
1734- let db = parseIntValue(da[t])
1735- let dc = parseIntValue(da[u])
1736- let dq = da[p]
1737- let hS = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
1738- let ia = bJ(dN)
1739- let ib = bJ(dO)
1740- let ic = D(ia, db)
1741- let id = D(ib, dc)
1742- let dw = if ((hS == 0))
1732+@Callable(eV)
1733+func evaluatePutByPriceAssetREADONLY (dL) = {
1734+ let dc = bc()
1735+ let dp = fromBase58String(dc[q])
1736+ let dP = dc[r]
1737+ let dq = fromBase58String(dP)
1738+ let dQ = dc[s]
1739+ let dr = fromBase58String(dQ)
1740+ let dd = parseIntValue(dc[t])
1741+ let de = parseIntValue(dc[u])
1742+ let ds = dc[p]
1743+ let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1744+ let id = bL(dP)
1745+ let ie = bL(dQ)
1746+ let if = D(id, dd)
1747+ let ig = D(ie, de)
1748+ let dy = if ((hV == 0))
17431749 then e
1744- else bM(id, ic)
1745- let dU = D(dJ, dc)
1746- let dT = fraction(dU, d, dw)
1747- let dH = H(dT, db)
1748- let eY = dF("", 500000, dH, do, dJ, dp, "", true, false)
1749- let ee = eY._1
1750- let hZ = eY._3
1751- let ds = eY._4
1752- let du = eY._5
1753- let dr = eY._6
1754- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(dw, b)), toString(ds), toString(du), toString(dr), dq, toString(dH), toString(dJ)], j))
1750+ else bO(ig, if)
1751+ let dW = D(dL, de)
1752+ let dV = fraction(dW, d, dy)
1753+ let dJ = H(dV, dd)
1754+ let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1755+ let eg = fb._1
1756+ let ic = fb._3
1757+ let du = fb._4
1758+ let dw = fb._5
1759+ let dt = fb._6
1760+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
17551761 }
17561762
17571763
17581764
1759-@Callable(eS)
1760-func evaluateGetREADONLY (ie,if) = {
1761- let dW = dj("", ie, if, this)
1762- let dC = dW._1
1763- let dD = dW._2
1764- let ds = dW._5
1765- let du = dW._6
1766- let dr = dW._7
1767- let dx = dW._8
1768- let dq = parseIntValue(dW._9)
1769- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dC), toString(dD), toString(ds), toString(du), toString(dr), toString(dx), toString(dq)], j))
1765+@Callable(eV)
1766+func evaluateGetREADONLY (ih,ii) = {
1767+ let dY = dl("", ih, ii, this)
1768+ let dE = dY._1
1769+ let dF = dY._2
1770+ let du = dY._5
1771+ let dw = dY._6
1772+ let dt = dY._7
1773+ let dz = dY._8
1774+ let ds = parseIntValue(dY._9)
1775+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dE), toString(dF), toString(du), toString(dw), toString(dt), toString(dz), toString(ds)], j))
17701776 }
17711777
17721778
1773-@Verifier(ig)
1774-func ih () = {
1775- let ii = {
1776- let bT = ge()
1777- if ($isInstanceOf(bT, "ByteVector"))
1779+@Verifier(ij)
1780+func ik () = {
1781+ let il = {
1782+ let bV = gh()
1783+ if ($isInstanceOf(bV, "ByteVector"))
17781784 then {
1779- let gi = bT
1780- gi
1785+ let gl = bV
1786+ gl
17811787 }
1782- else if ($isInstanceOf(bT, "Unit"))
1783- then ig.senderPublicKey
1788+ else if ($isInstanceOf(bV, "Unit"))
1789+ then ij.senderPublicKey
17841790 else throw("Match error")
17851791 }
1786- let bT = ig
1787- if ($isInstanceOf(bT, "Order"))
1792+ let bV = ij
1793+ if ($isInstanceOf(bV, "Order"))
17881794 then {
1789- let eH = bT
1790- let ij = aZ()
1791- let ik = eG(eH)
1792- let aI = ik._1
1793- let aJ = ik._2
1794- let aK = sigVerify(eH.bodyBytes, eH.proofs[0], eH.senderPublicKey)
1795- let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ij)
1796- if (if (if (aI)
1797- then aK
1795+ let eK = bV
1796+ let im = bb()
1797+ let in = if (eG())
1798+ then $Tuple2(true, "")
1799+ else eJ(eK)
1800+ let aK = in._1
1801+ let aL = in._2
1802+ let aM = sigVerify(eK.bodyBytes, eK.proofs[0], eK.senderPublicKey)
1803+ let aN = sigVerify(eK.bodyBytes, eK.proofs[1], im)
1804+ if (if (if (aK)
1805+ then aM
17981806 else false)
1799- then aL
1807+ then aN
18001808 else false)
18011809 then true
1802- else aH(aI, aJ, aK, aL)
1810+ else aJ(aK, aL, aM, aN)
18031811 }
1804- else if ($isInstanceOf(bT, "SetScriptTransaction"))
1812+ else if ($isInstanceOf(bV, "SetScriptTransaction"))
18051813 then {
1806- let gf = bT
1807- if (sigVerify(ig.bodyBytes, ig.proofs[0], ii))
1814+ let gi = bV
1815+ if (sigVerify(ij.bodyBytes, ij.proofs[0], il))
18081816 then true
18091817 else {
1810- let il = blake2b256(value(gf.script))
1811- let im = fromBase64String(value(getString(aT, aF())))
1812- let in = scriptHash(this)
1813- if ((im == il))
1814- then (in != il)
1818+ let io = blake2b256(value(gi.script))
1819+ let ip = fromBase64String(value(getString(aV, aF())))
1820+ let iq = scriptHash(this)
1821+ if ((ip == io))
1822+ then (iq != io)
18151823 else false
18161824 }
18171825 }
1818- else sigVerify(ig.bodyBytes, ig.proofs[0], ii)
1826+ else sigVerify(ij.bodyBytes, ij.proofs[0], il)
18191827 }
18201828
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 (E,F) = fraction(E, d, F)
6666
6767
6868 func H (I,J) = toInt(fraction(I, toBigInt(J), d))
6969
7070
7171 func K (I,J,L) = toInt(fraction(I, toBigInt(J), d, L))
7272
7373
7474 func M (N,O,P) = fraction(N, O, P)
7575
7676
7777 func Q (I) = if ((0 > I))
7878 then -(I)
7979 else I
8080
8181
8282 func R (I) = if ((e > I))
8383 then -(I)
8484 else I
8585
8686
8787 func S () = "%s__swapContract"
8888
8989
9090 func T () = "%s__factoryContract"
9191
9292
9393 func U () = "%s__managerPublicKey"
9494
9595
9696 func V () = "%s__pendingManagerPublicKey"
9797
9898
9999 func W () = "%s%s__price__last"
100100
101101
102102 func X (Y,Z) = makeString(["%s%s%d%d__price__history", toString(Y), toString(Z)], j)
103103
104104
105105 func aa (ab,ac) = ((("%s%s%s__P__" + ab) + "__") + ac)
106106
107107
108108 func ad (ab,ac) = ((("%s%s%s__G__" + ab) + "__") + ac)
109109
110110
111111 func ae () = "%s__amountAsset"
112112
113113
114114 func af () = "%s__priceAsset"
115115
116116
117117 let ag = "%s__fee"
118118
119119 let ah = fraction(10, b, 10000)
120120
121121 let ai = valueOrElse(getInteger(this, ag), ah)
122122
123123 let aj = makeString(["%s", "kLp"], j)
124124
125125 let ak = makeString(["%s", "kLpRefreshedHeight"], j)
126126
127127 let al = makeString(["%s", "refreshKLpDelay"], j)
128128
129129 let am = 30
130130
131131 let an = valueOrElse(getInteger(this, al), am)
132132
133133 func ao (ap) = makeString(["%s%s", "stakedBalance", ap], j)
134134
135135
136136 func aq (ap) = makeString(["%s%s", "shareAssetBalance", ap], j)
137137
138138
139139 func ar (ap) = valueOrElse(getInteger(this, ao(ap)), 0)
140140
141141
142142 func as (ap) = valueOrElse(getInteger(this, aq(ap)), 0)
143143
144144
145145 func at () = "%s__factoryConfig"
146146
147147
148148 func au () = "%s%s__matcher__publicKey"
149149
150150
151151 func av (aw) = (("%s%s%s__" + aw) + "__mappings__poolContract2LpAsset")
152152
153153
154154 func ax (ay,az) = (((("%d%d%s__" + ay) + "__") + az) + "__config")
155155
156156
157157 func aA (aB) = ("%s%s%s__mappings__baseAsset2internalId__" + aB)
158158
159159
160160 func aC () = "%s__shutdown"
161161
162162
163163 func aD (aE) = ("%s%s__poolWeight__" + aE)
164164
165165
166166 func aF () = "%s__allowedLpScriptHash"
167167
168168
169169 let aG = "%s__feeCollectorAddress"
170170
171-func aH (aI,aJ,aK,aL) = throw((((((((("order validation failed: orderValid=" + toString(aI)) + " (") + aJ) + ")") + " senderValid=") + toString(aK)) + " matcherValid=") + toString(aL)))
171+func aH (aI) = ("%s%s__skipOrderValidation__" + aI)
172172
173173
174-func aM (aN,aO) = valueOrErrorMessage(getString(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
174+func aJ (aK,aL,aM,aN) = throw((((((((("order validation failed: orderValid=" + toString(aK)) + " (") + aL) + ")") + " senderValid=") + toString(aM)) + " matcherValid=") + toString(aN)))
175175
176176
177-func aP (aN,aO) = valueOrErrorMessage(getInteger(aN, aO), makeString(["mandatory ", toString(aN), ".", aO, " is not defined"], ""))
177+func aO (aP,aQ) = valueOrErrorMessage(getString(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
178178
179179
180-func aQ (aR) = throw(makeString(["lp.ride:", aR], " "))
180+func aR (aP,aQ) = valueOrErrorMessage(getInteger(aP, aQ), makeString(["mandatory ", toString(aP), ".", aQ, " is not defined"], ""))
181181
182182
183-func aS (aR) = makeString(["lp.ride:", aR], " ")
183+func aS (aT) = throw(makeString(["lp.ride:", aT], " "))
184184
185185
186-let aT = addressFromStringValue(aM(this, T()))
186+func aU (aT) = makeString(["lp.ride:", aT], " ")
187187
188-let aU = addressFromStringValue(aM(aT, aG))
189188
190-let aV = {
191- let aW = invoke(aT, "getInFeeREADONLY", [toString(this)], nil)
192- if ($isInstanceOf(aW, "Int"))
193- then aW
194- else throw(($getType(aW) + " couldn't be cast to Int"))
189+let aV = addressFromStringValue(aO(this, T()))
190+
191+let aW = addressFromStringValue(aO(aV, aG))
192+
193+let aX = {
194+ let aY = invoke(aV, "getInFeeREADONLY", [toString(this)], nil)
195+ if ($isInstanceOf(aY, "Int"))
196+ then aY
197+ else throw(($getType(aY) + " couldn't be cast to Int"))
195198 }
196199
197-let aX = {
198- let aW = invoke(aT, "getOutFeeREADONLY", [toString(this)], nil)
199- if ($isInstanceOf(aW, "Int"))
200- then aW
201- else throw(($getType(aW) + " couldn't be cast to Int"))
200+let aZ = {
201+ let aY = invoke(aV, "getOutFeeREADONLY", [toString(this)], nil)
202+ if ($isInstanceOf(aY, "Int"))
203+ then aY
204+ else throw(($getType(aY) + " couldn't be cast to Int"))
202205 }
203206
204-func aY () = valueOrElse(getBoolean(aT, aC()), false)
207+func ba () = valueOrElse(getBoolean(aV, aC()), false)
205208
206209
207-func aZ () = fromBase58String(aM(aT, au()))
210+func bb () = fromBase58String(aO(aV, au()))
208211
209212
210-func ba () = {
211- let bb = aM(this, ae())
212- let bc = aM(this, af())
213- let az = aP(aT, aA(bc))
214- let ay = aP(aT, aA(bb))
215- split(aM(aT, ax(toString(ay), toString(az))), j)
213+func bc () = {
214+ let bd = aO(this, ae())
215+ let be = aO(this, af())
216+ let az = aR(aV, aA(be))
217+ let ay = aR(aV, aA(bd))
218+ split(aO(aV, ax(toString(ay), toString(az))), j)
216219 }
217220
218221
219-func bd (be) = if ((be == i))
222+func bf (bg) = if ((bg == i))
220223 then unit
221- else fromBase58String(be)
224+ else fromBase58String(bg)
222225
223226
224-func bf (be) = if ((be == unit))
227+func bh (bg) = if ((bg == unit))
225228 then i
226- else toBase58String(value(be))
229+ else toBase58String(value(bg))
227230
228231
229-func bg (bh) = $Tuple7(addressFromStringValue(bh[o]), parseIntValue(bh[p]), fromBase58String(bh[q]), bd(bh[r]), bd(bh[s]), parseIntValue(bh[t]), parseIntValue(bh[u]))
232+func bi (bj) = $Tuple7(addressFromStringValue(bj[o]), parseIntValue(bj[p]), fromBase58String(bj[q]), bf(bj[r]), bf(bj[s]), parseIntValue(bj[t]), parseIntValue(bj[u]))
230233
231234
232-let bi = bg(ba())
235+let bk = bi(bc())
233236
234-let bj = bi
237+let bl = bk
235238
236-let bk = bj._1
239+let bm = bl._1
237240
238-let bl = bj._2
241+let bn = bl._2
239242
240-let bm = bj._3
243+let bo = bl._3
241244
242-let bn = bj._4
245+let bp = bl._4
243246
244-let bo = bj._5
247+let bq = bl._5
245248
246-let bp = bj._6
249+let br = bl._6
247250
248-let bq = bj._7
251+let bs = bl._7
249252
250-func br () = split(aM(aT, at()), j)
253+func bt () = split(aO(aV, at()), j)
251254
252255
253-let bs = valueOrErrorMessage(addressFromString(br()[B]), "incorrect staking address")
256+let bu = valueOrErrorMessage(addressFromString(bt()[B]), "incorrect staking address")
254257
255-let bt = valueOrErrorMessage(addressFromString(br()[C]), "incorrect staking address")
258+let bv = valueOrErrorMessage(addressFromString(bt()[C]), "incorrect staking address")
256259
257-func bu (bv,bw,bx,by,bz,bA,bB,bC,bD,bE) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bv), toString(bw), toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE)], j)
260+func bw (bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bx), toString(by), toString(bz), toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), toString(bG)], j)
258261
259262
260-func bF (bG,bH,bI,by,bB,bC) = makeString(["%d%d%d%d%d%d", toString(bG), toString(bH), toString(bI), toString(by), toString(bB), toString(bC)], j)
263+func bH (bI,bJ,bK,bA,bD,bE) = makeString(["%d%d%d%d%d%d", toString(bI), toString(bJ), toString(bK), toString(bA), toString(bD), toString(bE)], j)
261264
262265
263-func bJ (ap) = {
264- let bK = if ((ap == "WAVES"))
266+func bL (ap) = {
267+ let bM = if ((ap == "WAVES"))
265268 then wavesBalance(this).available
266269 else assetBalance(this, fromBase58String(ap))
267- let bL = ((bK + ar(ap)) - as(ap))
268- max([0, bL])
270+ let bN = ((bM + ar(ap)) - as(ap))
271+ max([0, bN])
269272 }
270273
271274
272-func bM (bN,bO) = fraction(bN, d, bO)
275+func bO (bP,bQ) = fraction(bP, d, bQ)
273276
274277
275-func bP (bN,bO,L) = fraction(bN, d, bO, L)
278+func bR (bP,bQ,L) = fraction(bP, d, bQ, L)
276279
277280
278-func bQ (bR) = {
279- let bS = invoke(bR, "getRate", nil, nil)
280- if ((bS == bS))
281+func bS (bT) = {
282+ let bU = invoke(bT, "getRate", nil, nil)
283+ if ((bU == bU))
281284 then {
282- let bT = bS
283- if ($isInstanceOf(bT, "Int"))
285+ let bV = bU
286+ if ($isInstanceOf(bV, "Int"))
284287 then {
285- let bU = bT
286- bU
288+ let bW = bV
289+ bW
287290 }
288- else aQ("proxy.getRate() unexpected value")
291+ else aS("proxy.getRate() unexpected value")
289292 }
290293 else throw("Strict value is not equal to itself.")
291294 }
292295
293296
294-func bV (ap,bW,bX,bR) = {
295- let bY = ar(ap)
296- if ((bY == bY))
297+func bX (ap,bY,bZ,bT) = {
298+ let ca = ar(ap)
299+ if ((ca == ca))
297300 then {
298- let bZ = as(bX)
299- if ((bZ == bZ))
301+ let cb = as(bZ)
302+ if ((cb == cb))
300303 then {
301- let ca = bd(ap)
302- if ((bW > 0))
304+ let cc = bf(ap)
305+ if ((bY > 0))
303306 then {
304- let cb = invoke(bR, "deposit", nil, [AttachedPayment(ca, bW)])
305- if ((cb == cb))
307+ let cd = invoke(bT, "deposit", nil, [AttachedPayment(cc, bY)])
308+ if ((cd == cd))
306309 then {
307- let bT = cb
308- if ($isInstanceOf(bT, "Int"))
310+ let bV = cd
311+ if ($isInstanceOf(bV, "Int"))
309312 then {
310- let cc = bT
311- let cd = (bY + bW)
312- let ce = (bZ + cc)
313-[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce)]
313+ let ce = bV
314+ let cf = (ca + bY)
315+ let cg = (cb + ce)
316+[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg)]
314317 }
315318 else nil
316319 }
317320 else throw("Strict value is not equal to itself.")
318321 }
319322 else nil
320323 }
321324 else throw("Strict value is not equal to itself.")
322325 }
323326 else throw("Strict value is not equal to itself.")
324327 }
325328
326329
327-func cf (ap,bW,bX,bR,cg,ch) = {
328- let bY = ar(ap)
329- if ((bY == bY))
330+func ch (ap,bY,bZ,bT,ci,cj) = {
331+ let ca = ar(ap)
332+ if ((ca == ca))
330333 then {
331- let bZ = as(bX)
332- if ((bZ == bZ))
334+ let cb = as(bZ)
335+ if ((cb == cb))
333336 then {
334- let ci = bQ(bR)
335- if ((ci == ci))
337+ let ck = bS(bT)
338+ if ((ck == ck))
336339 then {
337- let cj = fraction(cg, bY, bZ)
338- let ck = bd(bX)
339- let cl = fraction(cg, bW, cj)
340- let cm = fraction(cg, bW, ci)
341- let cn = max([0, (cl - cm)])
342- if ((cm > 0))
340+ let cl = fraction(ci, ca, cb)
341+ let cm = bf(bZ)
342+ let cn = fraction(ci, bY, cl)
343+ let co = fraction(ci, bY, ck)
344+ let cp = max([0, (cn - co)])
345+ if ((co > 0))
343346 then {
344- let co = invoke(bR, "withdraw", nil, [AttachedPayment(ck, cm)])
345- if ((co == co))
347+ let cq = invoke(bT, "withdraw", nil, [AttachedPayment(cm, co)])
348+ if ((cq == cq))
346349 then {
347- let bT = co
348- if ($isInstanceOf(bT, "Int"))
350+ let bV = cq
351+ if ($isInstanceOf(bV, "Int"))
349352 then {
350- let cp = bT
351- let cd = (bY - cp)
352- let ce = ((bZ - cm) - cn)
353-[IntegerEntry(ao(ap), cd), IntegerEntry(aq(bX), ce), ScriptTransfer(ch, cn, bd(bX))]
353+ let cr = bV
354+ let cf = (ca - cr)
355+ let cg = ((cb - co) - cp)
356+[IntegerEntry(ao(ap), cf), IntegerEntry(aq(bZ), cg), ScriptTransfer(cj, cp, bf(bZ))]
354357 }
355358 else nil
356359 }
357360 else throw("Strict value is not equal to itself.")
358361 }
359362 else nil
360363 }
361364 else throw("Strict value is not equal to itself.")
362365 }
363366 else throw("Strict value is not equal to itself.")
364367 }
365368 else throw("Strict value is not equal to itself.")
366369 }
367370
368371
369-func cq (ap) = {
370- let bT = invoke(aT, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
371- if ($isInstanceOf(bT, "(Boolean, Int, Int, String, String, Int, String)"))
372+func cs (ap) = {
373+ let bV = invoke(aV, "getPoolLeaseConfigREADONLY", [toString(this), ap], nil)
374+ if ($isInstanceOf(bV, "(Boolean, Int, Int, String, String, Int, String)"))
372375 then {
373- let cr = bT
374- cr
376+ let ct = bV
377+ ct
375378 }
376- else aQ((("[" + ap) + "] getLeaseProxyConfig() error"))
379+ else aS((("[" + ap) + "] getLeaseProxyConfig() error"))
377380 }
378381
379382
380-func cs (ct,ap,bX,cu,bR,cg,ch) = {
381- let bY = ar(ap)
382- if ((bY == bY))
383+func cu (cv,ap,bZ,cw,bT,ci,cj) = {
384+ let ca = ar(ap)
385+ if ((ca == ca))
383386 then {
384- let bZ = as(bX)
385- if ((bZ == bZ))
387+ let cb = as(bZ)
388+ if ((cb == cb))
386389 then {
387- let cv = max([0, (bJ(ap) - cu)])
388- let cw = fraction(ct, cv, 100)
389- let cx = (bY - cw)
390- if ((cx == 0))
390+ let cx = max([0, (bL(ap) - cw)])
391+ let cy = fraction(cv, cx, 100)
392+ let cz = (ca - cy)
393+ if ((cz == 0))
391394 then nil
392- else if ((0 > cx))
395+ else if ((0 > cz))
393396 then {
394- let cy = -(cx)
395- bV(ap, cy, bX, bR)
397+ let cA = -(cz)
398+ bX(ap, cA, bZ, bT)
396399 }
397400 else {
398- let cz = cx
399- cf(ap, cz, bX, bR, cg, ch)
401+ let cB = cz
402+ ch(ap, cB, bZ, bT, ci, cj)
400403 }
401404 }
402405 else throw("Strict value is not equal to itself.")
403406 }
404407 else throw("Strict value is not equal to itself.")
405408 }
406409
407410
408-func cA (ap) = {
409- let cB = cq(ap)
410- let cC = cB._1
411- let cD = cB._2
412- let cu = cB._3
413- let cE = cB._4
414- let cF = cB._5
415- let cg = cB._6
416- let cG = cB._7
417- if (cC)
418- then cs(cD, ap, cF, cu, addressFromStringValue(cE), cg, addressFromStringValue(cG))
411+func cC (ap) = {
412+ let cD = cs(ap)
413+ let cE = cD._1
414+ let cF = cD._2
415+ let cw = cD._3
416+ let cG = cD._4
417+ let cH = cD._5
418+ let ci = cD._6
419+ let cI = cD._7
420+ if (cE)
421+ then cu(cF, ap, cH, cw, addressFromStringValue(cG), ci, addressFromStringValue(cI))
419422 else nil
420423 }
421424
422425
423-func cH (ap,cI) = {
424- let cJ = cq(ap)
425- let cC = cJ._1
426- let cD = cJ._2
427- let cu = cJ._3
428- let cE = cJ._4
429- let cF = cJ._5
430- let cg = cJ._6
431- let cG = cJ._7
432- if (cC)
426+func cJ (ap,cK) = {
427+ let cL = cs(ap)
428+ let cE = cL._1
429+ let cF = cL._2
430+ let cw = cL._3
431+ let cG = cL._4
432+ let cH = cL._5
433+ let ci = cL._6
434+ let cI = cL._7
435+ if (cE)
433436 then {
434- let cK = max([0, ((bJ(ap) - cI) - cu)])
435- if ((cK == cK))
437+ let cM = max([0, ((bL(ap) - cK) - cw)])
438+ if ((cM == cM))
436439 then {
437- let cd = fraction(cD, cK, 100)
438- if ((cd == cd))
440+ let cf = fraction(cF, cM, 100)
441+ if ((cf == cf))
439442 then {
440- let cL = (ar(ap) - cd)
441- if ((cL == cL))
442- then if ((0 > cL))
443- then bV(ap, -(cL), cF, addressFromStringValue(cE))
444- else cf(ap, cL, cF, addressFromStringValue(cE), cg, addressFromStringValue(cG))
443+ let cN = (ar(ap) - cf)
444+ if ((cN == cN))
445+ then if ((0 > cN))
446+ then bX(ap, -(cN), cH, addressFromStringValue(cG))
447+ else ch(ap, cN, cH, addressFromStringValue(cG), ci, addressFromStringValue(cI))
445448 else throw("Strict value is not equal to itself.")
446449 }
447450 else throw("Strict value is not equal to itself.")
448451 }
449452 else throw("Strict value is not equal to itself.")
450453 }
451454 else nil
452455 }
453456
454457
455-func cM (cN,cO) = {
456- let cP = cH(aM(this, ae()), cN)
457- let cQ = cH(aM(this, af()), cO)
458- (cP ++ cQ)
458+func cO (cP,cQ) = {
459+ let cR = cJ(aO(this, ae()), cP)
460+ let cS = cJ(aO(this, af()), cQ)
461+ (cR ++ cS)
459462 }
460463
461464
462-func cR (cS,cT,cU,cV) = {
463- let cW = D(cU, cS)
464- let cX = D(cV, cT)
465- bM(cX, cW)
465+func cT (cU,cV,cW,cX) = {
466+ let cY = D(cW, cU)
467+ let cZ = D(cX, cV)
468+ bO(cZ, cY)
466469 }
467470
468471
469-func cY (cU,cV,cZ) = {
470- let da = ba()
471- let db = parseIntValue(da[t])
472- let dc = parseIntValue(da[u])
473- let dd = cR(db, dc, cU, cV)
474- let bO = D(cU, db)
475- let bN = D(cV, dc)
476- let de = D(cZ, b)
477- let df = bM(bO, de)
478- let dg = bM(bN, de)
479-[dd, df, dg]
472+func da (cW,cX,db) = {
473+ let dc = bc()
474+ let dd = parseIntValue(dc[t])
475+ let de = parseIntValue(dc[u])
476+ let df = cT(dd, de, cW, cX)
477+ let bQ = D(cW, dd)
478+ let bP = D(cX, de)
479+ let dg = D(db, b)
480+ let dh = bO(bQ, dg)
481+ let di = bO(bP, dg)
482+[df, dh, di]
480483 }
481484
482485
483-func dh (cU,cV,cZ) = {
484- let di = cY(cU, cV, cZ)
485-[H(di[0], b), H(di[1], b), H(di[2], b)]
486+func dj (cW,cX,db) = {
487+ let dk = da(cW, cX, db)
488+[H(dk[0], b), H(dk[1], b), H(dk[2], b)]
486489 }
487490
488491
489-func dj (dk,dl,dm,ab) = {
490- let da = ba()
491- let dn = da[q]
492- let do = da[r]
493- let dp = da[s]
494- let cS = parseIntValue(da[t])
495- let cT = parseIntValue(da[u])
496- let dq = da[p]
497- let dr = valueOrErrorMessage(assetInfo(fromBase58String(dn)), (("Asset " + dn) + " doesn't exist")).quantity
498- if ((dn != dl))
492+func dl (dm,dn,do,ab) = {
493+ let dc = bc()
494+ let dp = dc[q]
495+ let dq = dc[r]
496+ let dr = dc[s]
497+ let cU = parseIntValue(dc[t])
498+ let cV = parseIntValue(dc[u])
499+ let ds = dc[p]
500+ let dt = valueOrErrorMessage(assetInfo(fromBase58String(dp)), (("Asset " + dp) + " doesn't exist")).quantity
501+ if ((dp != dn))
499502 then throw("Invalid asset passed.")
500503 else {
501- let ds = bJ(do)
502- let dt = D(ds, cS)
503- let du = bJ(dp)
504- let dv = D(du, cT)
505- let dw = bM(dv, dt)
506- let dx = H(dw, b)
507- let dy = D(dm, b)
508- let dz = D(dr, b)
509- let dA = fraction(dt, dy, dz)
510- let dB = fraction(dv, dy, dz)
511- let dC = K(dA, cS, FLOOR)
512- let dD = K(dB, cT, FLOOR)
513- let dE = if ((dk == ""))
504+ let du = bL(dq)
505+ let dv = D(du, cU)
506+ let dw = bL(dr)
507+ let dx = D(dw, cV)
508+ let dy = bO(dx, dv)
509+ let dz = H(dy, b)
510+ let dA = D(do, b)
511+ let dB = D(dt, b)
512+ let dC = fraction(dv, dA, dB)
513+ let dD = fraction(dx, dA, dB)
514+ let dE = K(dC, cU, FLOOR)
515+ let dF = K(dD, cV, FLOOR)
516+ let dG = if ((dm == ""))
514517 then nil
515- else [ScriptTransfer(ab, dC, if ((do == "WAVES"))
518+ else [ScriptTransfer(ab, dE, if ((dq == "WAVES"))
516519 then unit
517- else fromBase58String(do)), ScriptTransfer(ab, dD, if ((dp == "WAVES"))
520+ else fromBase58String(dq)), ScriptTransfer(ab, dF, if ((dr == "WAVES"))
518521 then unit
519- else fromBase58String(dp)), StringEntry(ad(toString(ab), dk), bF(dC, dD, dm, dx, height, lastBlock.timestamp)), IntegerEntry(W(), dx), IntegerEntry(X(height, lastBlock.timestamp), dx)]
520- $Tuple10(dC, dD, do, dp, ds, du, dr, dw, dq, dE)
522+ else fromBase58String(dr)), StringEntry(ad(toString(ab), dm), bH(dE, dF, do, dz, height, lastBlock.timestamp)), IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz)]
523+ $Tuple10(dE, dF, dq, dr, du, dw, dt, dy, ds, dG)
521524 }
522525 }
523526
524527
525-func dF (dk,dG,dH,dI,dJ,dK,ab,dL,dM) = {
526- let da = ba()
527- let dn = fromBase58String(da[q])
528- let dN = da[r]
529- let dO = da[s]
530- let dP = da[v]
531- let dQ = da[w]
532- let db = parseIntValue(da[t])
533- let dc = parseIntValue(da[u])
534- let dq = da[p]
535- let dr = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
536- let dR = toBase58String(valueOrElse(dI, fromBase58String("WAVES")))
537- let dS = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
538- if (if ((dN != dR))
528+func dH (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = {
529+ let dc = bc()
530+ let dp = fromBase58String(dc[q])
531+ let dP = dc[r]
532+ let dQ = dc[s]
533+ let dR = dc[v]
534+ let dS = dc[w]
535+ let dd = parseIntValue(dc[t])
536+ let de = parseIntValue(dc[u])
537+ let ds = dc[p]
538+ let dt = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
539+ let dT = toBase58String(valueOrElse(dK, fromBase58String("WAVES")))
540+ let dU = toBase58String(valueOrElse(dM, fromBase58String("WAVES")))
541+ if (if ((dP != dT))
539542 then true
540- else (dO != dS))
543+ else (dQ != dU))
541544 then throw("Invalid amt or price asset passed.")
542545 else {
543- let ds = if (dL)
544- then bJ(dN)
545- else (bJ(dN) - dH)
546- let du = if (dL)
547- then bJ(dO)
548- else (bJ(dO) - dJ)
549- let dT = D(dH, db)
550- let dU = D(dJ, dc)
551- let dV = bM(dU, dT)
552- let dt = D(ds, db)
553- let dv = D(du, dc)
554- let dW = if ((dr == 0))
546+ let du = if (dN)
547+ then bL(dP)
548+ else (bL(dP) - dJ)
549+ let dw = if (dN)
550+ then bL(dQ)
551+ else (bL(dQ) - dL)
552+ let dV = D(dJ, dd)
553+ let dW = D(dL, de)
554+ let dX = bO(dW, dV)
555+ let dv = D(du, dd)
556+ let dx = D(dw, de)
557+ let dY = if ((dt == 0))
555558 then {
556- let dw = e
557- let dX = e
558- let de = pow((dT * dU), 0, toBigInt(5), 1, 0, DOWN)
559- $Tuple5(H(de, b), H(dT, db), H(dU, dc), bM((dv + dU), (dt + dT)), dX)
559+ let dy = e
560+ let dZ = e
561+ let dg = pow((dV * dW), 0, toBigInt(5), 1, 0, DOWN)
562+ $Tuple5(H(dg, b), H(dV, dd), H(dW, de), bO((dx + dW), (dv + dV)), dZ)
560563 }
561564 else {
562- let dw = bM(dv, dt)
563- let dX = fraction(R((dw - dV)), d, dw)
564- let dY = D(dG, b)
565- if (if ((dw != e))
566- then (dX > dY)
565+ let dy = bO(dx, dv)
566+ let dZ = fraction(R((dy - dX)), d, dy)
567+ let ea = D(dI, b)
568+ if (if ((dy != e))
569+ then (dZ > ea)
567570 else false)
568- then throw(((("Price slippage " + toString(dX)) + " exceeded the passed limit of ") + toString(dY)))
571+ then throw(((("Price slippage " + toString(dZ)) + " exceeded the passed limit of ") + toString(ea)))
569572 else {
570- let dz = D(dr, b)
571- let dZ = fraction(dT, bP(dv, dt, CEILING), d, CEILING)
572- let ea = fraction(dU, d, bP(dv, dt, FLOOR), CEILING)
573- let eb = if ((dZ > dU))
574- then $Tuple2(ea, dU)
575- else $Tuple2(dT, dZ)
576- let ec = eb._1
577- let ed = eb._2
578- let de = fraction(dz, ed, dv, FLOOR)
579- $Tuple5(K(de, b, FLOOR), K(ec, db, CEILING), K(ed, dc, CEILING), dw, dX)
573+ let dB = D(dt, b)
574+ let eb = fraction(dV, bR(dx, dv, CEILING), d, CEILING)
575+ let ec = fraction(dW, d, bR(dx, dv, FLOOR), CEILING)
576+ let ed = if ((eb > dW))
577+ then $Tuple2(ec, dW)
578+ else $Tuple2(dV, eb)
579+ let ee = ed._1
580+ let ef = ed._2
581+ let dg = fraction(dB, ef, dx, FLOOR)
582+ $Tuple5(K(dg, b, FLOOR), K(ee, dd, CEILING), K(ef, de, CEILING), dy, dZ)
580583 }
581584 }
582- let ee = dW._1
583- let ef = dW._2
584- let eg = dW._3
585- let dx = H(dW._4, b)
586- let eh = H(dW._5, b)
587- if ((0 >= ee))
585+ let eg = dY._1
586+ let eh = dY._2
587+ let ei = dY._3
588+ let dz = H(dY._4, b)
589+ let ej = H(dY._5, b)
590+ if ((0 >= eg))
588591 then throw("Invalid calculations. LP calculated is less than zero.")
589592 else {
590- let ei = if (!(dM))
593+ let ek = if (!(dO))
591594 then 0
592- else ee
593- let ej = (dH - ef)
594- let ek = (dJ - eg)
595- let el = [IntegerEntry(W(), dx), IntegerEntry(X(height, lastBlock.timestamp), dx), StringEntry(aa(ab, dk), bu(ef, eg, ei, dx, dG, eh, height, lastBlock.timestamp, ej, ek))]
596- $Tuple13(ee, ei, dx, ds, du, dr, dn, dq, el, ej, ek, dI, dK)
595+ else eg
596+ let el = (dJ - eh)
597+ let em = (dL - ei)
598+ let en = [IntegerEntry(W(), dz), IntegerEntry(X(height, lastBlock.timestamp), dz), StringEntry(aa(ab, dm), bw(eh, ei, ek, dz, dI, ej, height, lastBlock.timestamp, el, em))]
599+ $Tuple13(eg, ek, dz, du, dw, dt, dp, ds, en, el, em, dK, dM)
597600 }
598601 }
599602 }
600603
601604
602-func em (en,eo,dr) = {
603- let ep = G(en, toBigInt(bp))
604- let eq = G(eo, toBigInt(bq))
605- let er = fraction(pow((ep * eq), 0, toBigInt(5), 1, 18, DOWN), g, dr)
606- if ((dr == f))
605+func eo (ep,eq,dt) = {
606+ let er = G(ep, toBigInt(br))
607+ let es = G(eq, toBigInt(bs))
608+ let et = fraction(pow((er * es), 0, toBigInt(5), 1, 18, DOWN), g, dt)
609+ if ((dt == f))
607610 then f
608- else er
611+ else et
609612 }
610613
611614
612-func es (et,eu,ev) = {
613- let ew = (toBigInt(bJ(bf(bn))) - et)
614- let ex = (toBigInt(bJ(bf(bo))) - eu)
615- let ey = (toBigInt(value(assetInfo(bm)).quantity) - ev)
616- let ez = em(ew, ex, ey)
617- ez
615+func eu (ev,ew,ex) = {
616+ let ey = (toBigInt(bL(bh(bp))) - ev)
617+ let ez = (toBigInt(bL(bh(bq))) - ew)
618+ let eA = (toBigInt(value(assetInfo(bo)).quantity) - ex)
619+ let eB = eo(ey, ez, eA)
620+ eB
618621 }
619622
620623
621-func eA (eB,eC,ev) = {
622- let ew = (bJ(bf(bn)) + eB)
623- let ex = (bJ(bf(bo)) + eC)
624- let ey = (value(assetInfo(bm)).quantity + ev)
625- let er = em(toBigInt(ew), toBigInt(ex), toBigInt(ey))
626- let eD = [IntegerEntry(ak, height), StringEntry(aj, toString(er))]
627- $Tuple2(eD, er)
624+func eC (eD,eE,ex) = {
625+ let ey = (bL(bh(bp)) + eD)
626+ let ez = (bL(bh(bq)) + eE)
627+ let eA = (value(assetInfo(bo)).quantity + ex)
628+ let et = eo(toBigInt(ey), toBigInt(ez), toBigInt(eA))
629+ let eF = [IntegerEntry(ak, height), StringEntry(aj, toString(et))]
630+ $Tuple2(eF, et)
628631 }
629632
630633
631-func eE (eF,er) = if ((er >= eF))
632- then true
633- else aQ(makeString(["updated KLp lower than current KLp", toString(eF), toString(er)], " "))
634+func eG () = valueOrElse(getBoolean(aV, aH(toString(this))), false)
634635
635636
636-func eG (eH) = {
637- let ew = bJ(bf(bn))
638- let ex = bJ(bf(bo))
639- let eI = eH.amount
640- let eJ = fraction(eH.amount, eH.price, b, FLOOR)
641- let eK = if ((eH.orderType == Buy))
642- then $Tuple2(eI, -(eJ))
643- else $Tuple2(-(eI), eJ)
644- let eB = eK._1
645- let eC = eK._2
646- if (if (if (aY())
637+func eH (eI,et) = if ((et >= eI))
638+ then true
639+ else aS(makeString(["updated KLp lower than current KLp", toString(eI), toString(et)], " "))
640+
641+
642+func eJ (eK) = {
643+ let ey = bL(bh(bp))
644+ let ez = bL(bh(bq))
645+ let eL = eK.amount
646+ let eM = fraction(eK.amount, eK.price, b, FLOOR)
647+ let eN = if ((eK.orderType == Buy))
648+ then $Tuple2(eL, -(eM))
649+ else $Tuple2(-(eL), eM)
650+ let eD = eN._1
651+ let eE = eN._2
652+ if (if (if (ba())
647653 then true
648- else (bl == m))
654+ else (bn == m))
649655 then true
650- else (bl == n))
656+ else (bn == n))
651657 then throw("Exchange operations disabled")
652- else if (if ((eH.assetPair.amountAsset != bn))
658+ else if (if ((eK.assetPair.amountAsset != bp))
653659 then true
654- else (eH.assetPair.priceAsset != bo))
660+ else (eK.assetPair.priceAsset != bq))
655661 then throw("Wrong order assets.")
656662 else {
657- let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
658- let eM = eA(eB, eC, 0)
659- let eN = eM._1
660- let eO = eM._2
661- let eP = (eO >= eL)
662- let eQ = makeString(["kLp=", toString(eL), " kLpNew=", toString(eO), " amountAssetBalance=", toString(ew), " priceAssetBalance=", toString(ex), " amountAssetBalanceDelta=", toString(eB), " priceAssetBalanceDelta=", toString(eC), " height=", toString(height)], "")
663- $Tuple2(eP, eQ)
663+ let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
664+ let eP = eC(eD, eE, 0)
665+ let eQ = eP._1
666+ let eR = eP._2
667+ let eS = (eR >= eO)
668+ let eT = makeString(["kLp=", toString(eO), " kLpNew=", toString(eR), " amountAssetBalance=", toString(ey), " priceAssetBalance=", toString(ez), " amountAssetBalanceDelta=", toString(eD), " priceAssetBalanceDelta=", toString(eE), " height=", toString(height)], "")
669+ $Tuple2(eS, eT)
664670 }
665671 }
666672
667673
668-func eR (eS) = if ((size(eS.payments) != 1))
674+func eU (eV) = if ((size(eV.payments) != 1))
669675 then throw("exactly 1 payment is expected")
670676 else {
671- let eT = value(eS.payments[0])
672- let dl = value(eT.assetId)
673- let eU = eT.amount
674- let dW = dj(toBase58String(eS.transactionId), toBase58String(dl), eU, eS.caller)
675- let dC = dW._1
676- let dD = dW._2
677- let dq = parseIntValue(dW._9)
678- let dE = dW._10
679- if (if (aY())
677+ let eW = value(eV.payments[0])
678+ let dn = value(eW.assetId)
679+ let eX = eW.amount
680+ let dY = dl(toBase58String(eV.transactionId), toBase58String(dn), eX, eV.caller)
681+ let dE = dY._1
682+ let dF = dY._2
683+ let ds = parseIntValue(dY._9)
684+ let dG = dY._10
685+ if (if (ba())
680686 then true
681- else (dq == n))
682- then throw(("Get operation is blocked by admin. Status = " + toString(dq)))
683- else $Tuple5(dC, dD, eU, dl, dE)
687+ else (ds == n))
688+ then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
689+ else $Tuple5(dE, dF, eX, dn, dG)
684690 }
685691
686692
687-func eV (eS,dG,dM) = if ((size(eS.payments) != 2))
693+func eY (eV,dI,dO) = if ((size(eV.payments) != 2))
688694 then throw("exactly 2 payments are expected")
689695 else {
690- let eW = value(eS.payments[0])
691- let eX = value(eS.payments[1])
692- let eY = dF(toBase58String(eS.transactionId), dG, eW.amount, eW.assetId, eX.amount, eX.assetId, toString(eS.caller), false, dM)
693- let dq = parseIntValue(eY._8)
694- if (if (if (aY())
696+ let eZ = value(eV.payments[0])
697+ let fa = value(eV.payments[1])
698+ let fb = dH(toBase58String(eV.transactionId), dI, eZ.amount, eZ.assetId, fa.amount, fa.assetId, toString(eV.caller), false, dO)
699+ let ds = parseIntValue(fb._8)
700+ if (if (if (ba())
695701 then true
696- else (dq == l))
702+ else (ds == l))
697703 then true
698- else (dq == n))
699- then throw(("Put operation is blocked by admin. Status = " + toString(dq)))
700- else eY
704+ else (ds == n))
705+ then throw(("Put operation is blocked by admin. Status = " + toString(ds)))
706+ else fb
701707 }
702708
703709
704-func eZ (bW) = {
705- let fa = invoke(aT, "emit", [bW], nil)
706- if ((fa == fa))
710+func fc (bY) = {
711+ let fd = invoke(aV, "emit", [bY], nil)
712+ if ((fd == fd))
707713 then {
708- let fb = {
709- let bT = fa
710- if ($isInstanceOf(bT, "Address"))
714+ let fe = {
715+ let bV = fd
716+ if ($isInstanceOf(bV, "Address"))
711717 then {
712- let fc = bT
713- invoke(fc, "emit", [bW], nil)
718+ let ff = bV
719+ invoke(ff, "emit", [bY], nil)
714720 }
715721 else unit
716722 }
717- if ((fb == fb))
718- then bW
723+ if ((fe == fe))
724+ then bY
719725 else throw("Strict value is not equal to itself.")
720726 }
721727 else throw("Strict value is not equal to itself.")
722728 }
723729
724730
725-func fd (bW,ai) = {
726- let fe = if ((ai == 0))
731+func fg (bY,ai) = {
732+ let fh = if ((ai == 0))
727733 then 0
728- else fraction(bW, ai, b)
729- $Tuple2((bW - fe), fe)
734+ else fraction(bY, ai, b)
735+ $Tuple2((bY - fh), fh)
730736 }
731737
732738
733-func ff (fg,fh,ab,ac) = {
734- let fi = (ac == unit)
735- let fj = bJ(bf(bn))
736- let fk = bJ(bf(bo))
737- let fl = if ((fh == bn))
739+func fi (fj,fk,ab,ac) = {
740+ let fl = (ac == unit)
741+ let fm = bL(bh(bp))
742+ let fn = bL(bh(bq))
743+ let fo = if ((fk == bp))
738744 then true
739- else if ((fh == bo))
745+ else if ((fk == bq))
740746 then false
741- else aQ("invalid asset")
742- let fm = if (fi)
743- then $Tuple2(fj, fk)
744- else if (fl)
745- then $Tuple2((fj - fg), fk)
746- else $Tuple2(fj, (fk - fg))
747- let fn = fm._1
748- let fo = fm._2
747+ else aS("invalid asset")
749748 let fp = if (fl)
750- then $Tuple2(fg, 0)
751- else $Tuple2(0, fg)
749+ then $Tuple2(fm, fn)
750+ else if (fo)
751+ then $Tuple2((fm - fj), fn)
752+ else $Tuple2(fm, (fn - fj))
752753 let fq = fp._1
753754 let fr = fp._2
754- let eI = fd(fq, aV)._1
755- let eJ = fd(fr, aV)._1
756- let fs = fd(fg, aV)
755+ let fs = if (fo)
756+ then $Tuple2(fj, 0)
757+ else $Tuple2(0, fj)
757758 let ft = fs._1
758- let fe = fs._2
759- let fu = (fn + eI)
760- let fv = (fo + eJ)
761- let fw = bM(D(fv, bq), D(fu, bp))
762- let fx = H(fw, b)
763- let fy = if (fl)
764- then fn
765- else fo
766- let fz = toBigInt(fy)
767- let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
768- let fB = if ((fA > f))
759+ let fu = fs._2
760+ let eL = fg(ft, aX)._1
761+ let eM = fg(fu, aX)._1
762+ let fv = fg(fj, aX)
763+ let fw = fv._1
764+ let fh = fv._2
765+ let fx = (fq + eL)
766+ let fy = (fr + eM)
767+ let fz = bO(D(fy, bs), D(fx, br))
768+ let fA = H(fz, b)
769+ let fB = if (fo)
770+ then fq
771+ else fr
772+ let fC = toBigInt(fB)
773+ let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
774+ let fE = if ((fD > f))
769775 then true
770- else aQ("initial deposit requires all coins")
771- if ((fB == fB))
776+ else aS("initial deposit requires all coins")
777+ if ((fE == fE))
772778 then {
773- let fC = toBigInt(ft)
774- let fD = max([0, toInt(((fA * (sqrtBigInt((d + ((fC * d) / fz)), 18, 18, DOWN) - d)) / d))])
775- let el = if (fi)
779+ let fF = toBigInt(fw)
780+ let fG = max([0, toInt(((fD * (sqrtBigInt((d + ((fF * d) / fC)), 18, 18, DOWN) - d)) / d))])
781+ let en = if (fl)
776782 then nil
777- else [IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bu(fq, fr, fD, fx, 0, 0, height, lastBlock.timestamp, 0, 0))]
778- let fE = bM(D(fo, bq), D(fn, bp))
779- let fF = H(fE, b)
780- let fG = {
781- let fH = if (fl)
782- then $Tuple2(fq, fn)
783- else $Tuple2(fr, fo)
784- let bW = fH._1
785- let fI = fH._2
786- let fJ = toInt(fraction(fA, toBigInt((bW / 2)), toBigInt(fI)))
787- fraction((fD - fJ), b, fJ)
783+ else [IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA), StringEntry(aa(toString(value(ab)), toBase58String(value(ac))), bw(ft, fu, fG, fA, 0, 0, height, lastBlock.timestamp, 0, 0))]
784+ let fH = bO(D(fr, bs), D(fq, br))
785+ let fI = H(fH, b)
786+ let fJ = {
787+ let fK = if (fo)
788+ then $Tuple2(ft, fq)
789+ else $Tuple2(fu, fr)
790+ let bY = fK._1
791+ let fL = fK._2
792+ let fM = toInt(fraction(fD, toBigInt((bY / 2)), toBigInt(fL)))
793+ fraction((fG - fM), b, fM)
788794 }
789- $Tuple5(fD, el, fe, fG, fl)
795+ $Tuple5(fG, en, fh, fJ, fo)
790796 }
791797 else throw("Strict value is not equal to itself.")
792798 }
793799
794800
795-func fK (fL,ft,fh,ab,ac) = {
796- let fi = (ac == unit)
797- let da = ba()
798- let db = parseIntValue(da[t])
799- let dc = parseIntValue(da[u])
800- let fM = [if ((fh == bm))
801+func fN (fO,fw,fk,ab,ac) = {
802+ let fl = (ac == unit)
803+ let dc = bc()
804+ let dd = parseIntValue(dc[t])
805+ let de = parseIntValue(dc[u])
806+ let fP = [if ((fk == bo))
801807 then true
802- else aQ("invalid lp asset")]
803- if ((fM == fM))
808+ else aS("invalid lp asset")]
809+ if ((fP == fP))
804810 then {
805- let fN = if ((fL == bn))
811+ let fQ = if ((fO == bp))
806812 then true
807- else if ((fL == bo))
813+ else if ((fO == bq))
808814 then false
809- else aQ("invalid asset")
810- let fO = if (fN)
811- then toBigInt(bJ(bf(bn)))
812- else toBigInt(bJ(bf(bo)))
813- let fP = if (fN)
814- then db
815- else dc
816- let fQ = bJ(bf(bn))
817- let fR = bJ(bf(bo))
818- let fS = if (fN)
819- then fQ
820- else fR
821- let fT = toBigInt(fS)
822- let fA = toBigInt(valueOrErrorMessage(assetInfo(bm), (("asset " + toBase58String(bm)) + " doesn't exist")).quantity)
823- let fU = toBigInt(ft)
824- let fV = max([0, toInt(((fO * (d - pow((d - ((fU * d) / fA)), 18, h, 0, 18, DOWN))) / d))])
825- let fW = fd(fV, aX)
826- let fX = fW._1
827- let fe = fW._2
828- let fY = if (fN)
829- then $Tuple4(fX, 0, (fQ - fV), fR)
830- else $Tuple4(0, fX, fQ, (fR - fV))
831- let fZ = fY._1
832- let ga = fY._2
833- let gb = fY._3
834- let gc = fY._4
835- let fw = bM(D(gc, bq), D(gb, bp))
836- let fx = H(fw, b)
837- let el = if (fi)
815+ else aS("invalid asset")
816+ let fR = if (fQ)
817+ then toBigInt(bL(bh(bp)))
818+ else toBigInt(bL(bh(bq)))
819+ let fS = if (fQ)
820+ then dd
821+ else de
822+ let fT = bL(bh(bp))
823+ let fU = bL(bh(bq))
824+ let fV = if (fQ)
825+ then fT
826+ else fU
827+ let fW = toBigInt(fV)
828+ let fD = toBigInt(valueOrErrorMessage(assetInfo(bo), (("asset " + toBase58String(bo)) + " doesn't exist")).quantity)
829+ let fX = toBigInt(fw)
830+ let fY = max([0, toInt(((fR * (d - pow((d - ((fX * d) / fD)), 18, h, 0, 18, DOWN))) / d))])
831+ let fZ = fg(fY, aZ)
832+ let ga = fZ._1
833+ let fh = fZ._2
834+ let gb = if (fQ)
835+ then $Tuple4(ga, 0, (fT - fY), fU)
836+ else $Tuple4(0, ga, fT, (fU - fY))
837+ let gc = gb._1
838+ let gd = gb._2
839+ let ge = gb._3
840+ let gf = gb._4
841+ let fz = bO(D(gf, bs), D(ge, br))
842+ let fA = H(fz, b)
843+ let en = if (fl)
838844 then nil
839- else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bF(fZ, ga, ft, fx, height, lastBlock.timestamp)), IntegerEntry(W(), fx), IntegerEntry(X(height, lastBlock.timestamp), fx)]
840- let fE = bM(D(fR, bq), D(fQ, bp))
841- let fF = H(fE, b)
842- let fG = {
843- let gd = (toInt(fraction(fO, fU, fA)) * 2)
844- fraction((fX - gd), b, gd)
845+ else [StringEntry(ad(toString(value(ab)), toBase58String(value(ac))), bH(gc, gd, fw, fA, height, lastBlock.timestamp)), IntegerEntry(W(), fA), IntegerEntry(X(height, lastBlock.timestamp), fA)]
846+ let fH = bO(D(fU, bs), D(fT, br))
847+ let fI = H(fH, b)
848+ let fJ = {
849+ let gg = (toInt(fraction(fR, fX, fD)) * 2)
850+ fraction((ga - gg), b, gg)
845851 }
846- $Tuple5(fX, el, fe, fG, fN)
852+ $Tuple5(ga, en, fh, fJ, fQ)
847853 }
848854 else throw("Strict value is not equal to itself.")
849855 }
850856
851857
852-func ge () = {
853- let bT = getString(U())
854- if ($isInstanceOf(bT, "String"))
858+func gh () = {
859+ let bV = getString(U())
860+ if ($isInstanceOf(bV, "String"))
855861 then {
856- let gf = bT
857- fromBase58String(gf)
862+ let gi = bV
863+ fromBase58String(gi)
858864 }
859- else if ($isInstanceOf(bT, "Unit"))
865+ else if ($isInstanceOf(bV, "Unit"))
860866 then unit
861867 else throw("Match error")
862868 }
863869
864870
865-func gg () = {
866- let bT = getString(V())
867- if ($isInstanceOf(bT, "String"))
871+func gj () = {
872+ let bV = getString(V())
873+ if ($isInstanceOf(bV, "String"))
868874 then {
869- let gf = bT
870- fromBase58String(gf)
875+ let gi = bV
876+ fromBase58String(gi)
871877 }
872- else if ($isInstanceOf(bT, "Unit"))
878+ else if ($isInstanceOf(bV, "Unit"))
873879 then unit
874880 else throw("Match error")
875881 }
876882
877883
878-func gh (eS) = {
879- let bT = ge()
880- if ($isInstanceOf(bT, "ByteVector"))
884+func gk (eV) = {
885+ let bV = gh()
886+ if ($isInstanceOf(bV, "ByteVector"))
881887 then {
882- let gi = bT
883- (eS.callerPublicKey == gi)
888+ let gl = bV
889+ (eV.callerPublicKey == gl)
884890 }
885- else if ($isInstanceOf(bT, "Unit"))
886- then (eS.caller == this)
891+ else if ($isInstanceOf(bV, "Unit"))
892+ then (eV.caller == this)
887893 else throw("Match error")
888894 }
889895
890896
891-func gj (eS) = {
892- let gk = throw("Permission denied")
893- let bT = ge()
894- if ($isInstanceOf(bT, "ByteVector"))
897+func gm (eV) = {
898+ let gn = throw("Permission denied")
899+ let bV = gh()
900+ if ($isInstanceOf(bV, "ByteVector"))
895901 then {
896- let gi = bT
897- if ((eS.callerPublicKey == gi))
902+ let gl = bV
903+ if ((eV.callerPublicKey == gl))
898904 then true
899- else gk
905+ else gn
900906 }
901- else if ($isInstanceOf(bT, "Unit"))
902- then if ((eS.caller == this))
907+ else if ($isInstanceOf(bV, "Unit"))
908+ then if ((eV.caller == this))
903909 then true
904- else gk
910+ else gn
905911 else throw("Match error")
906912 }
907913
908914
909-@Callable(eS)
910-func rebalance () = (cA(aM(this, ae())) ++ cA(aM(this, af())))
915+@Callable(eV)
916+func rebalance () = (cC(aO(this, ae())) ++ cC(aO(this, af())))
911917
912918
913919
914-@Callable(eS)
915-func calculateAmountOutForSwapREADONLY (gl,gm,gn) = {
916- let go = if ((gm == false))
920+@Callable(eV)
921+func calculateAmountOutForSwapREADONLY (go,gp,gq) = {
922+ let gr = if ((gp == false))
917923 then {
918- let gp = aM(this, af())
919- let gq = aM(this, ae())
920- $Tuple2(gp, gq)
924+ let gs = aO(this, af())
925+ let gt = aO(this, ae())
926+ $Tuple2(gs, gt)
921927 }
922928 else {
923- let gp = aM(this, ae())
924- let gq = aM(this, af())
925- $Tuple2(gp, gq)
929+ let gs = aO(this, ae())
930+ let gt = aO(this, af())
931+ $Tuple2(gs, gt)
926932 }
927- let gp = go._1
928- let gq = go._2
929- let gr = bJ(gq)
930- let gs = bJ(gp)
931- let gt = fraction(gs, gl, (gr + gl))
932- let gu = (toBigInt(gr) * toBigInt(gs))
933- let gv = (((toBigInt(bJ(gq)) + toBigInt(gl)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
934- let gw = if ((gv >= gu))
933+ let gs = gr._1
934+ let gt = gr._2
935+ let gu = bL(gt)
936+ let gv = bL(gs)
937+ let gw = fraction(gv, go, (gu + go))
938+ let gx = (toBigInt(gu) * toBigInt(gv))
939+ let gy = (((toBigInt(bL(gt)) + toBigInt(go)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
940+ let gz = if ((gy >= gx))
935941 then true
936942 else throw("new K is fewer error")
937- if ((gw == gw))
938- then $Tuple2(nil, gt)
943+ if ((gz == gz))
944+ then $Tuple2(nil, gw)
939945 else throw("Strict value is not equal to itself.")
940946 }
941947
942948
943949
944-@Callable(eS)
945-func calculateAmountOutForSwapAndSendTokens (gl,gm,gx,gy,gn) = {
946- let gz = {
947- let aW = invoke(aT, "getSwapContractREADONLY", nil, nil)
948- if ($isInstanceOf(aW, "String"))
949- then aW
950- else throw(($getType(aW) + " couldn't be cast to String"))
950+@Callable(eV)
951+func calculateAmountOutForSwapAndSendTokens (go,gp,gA,gB,gq) = {
952+ let gC = {
953+ let aY = invoke(aV, "getSwapContractREADONLY", nil, nil)
954+ if ($isInstanceOf(aY, "String"))
955+ then aY
956+ else throw(($getType(aY) + " couldn't be cast to String"))
951957 }
952- let fM = [if ((value(eS.payments[0]).amount >= gl))
958+ let fP = [if ((value(eV.payments[0]).amount >= go))
953959 then true
954- else aQ("Wrong amount"), if ((eS.caller == addressFromStringValue(gz)))
960+ else aS("Wrong amount"), if ((eV.caller == addressFromStringValue(gC)))
955961 then true
956- else aQ("Permission denied")]
957- if ((fM == fM))
962+ else aS("Permission denied")]
963+ if ((fP == fP))
958964 then {
959- let eT = value(eS.payments[0])
960- let gq = bf(eT.assetId)
961- let gp = if ((gm == false))
962- then aM(this, af())
963- else aM(this, ae())
964- let gr = (bJ(gq) - value(eS.payments[0]).amount)
965- let gs = bJ(gp)
966- let gt = fraction(gs, gl, (gr + gl))
967- let gu = (toBigInt(gr) * toBigInt(gs))
968- let gv = ((toBigInt(bJ(gq)) + toBigInt(gn)) * (toBigInt(bJ(gp)) - toBigInt(gt)))
969- let gw = if ((gv >= gu))
965+ let eW = value(eV.payments[0])
966+ let gt = bh(eW.assetId)
967+ let gs = if ((gp == false))
968+ then aO(this, af())
969+ else aO(this, ae())
970+ let gu = (bL(gt) - value(eV.payments[0]).amount)
971+ let gv = bL(gs)
972+ let gw = fraction(gv, go, (gu + go))
973+ let gx = (toBigInt(gu) * toBigInt(gv))
974+ let gy = ((toBigInt(bL(gt)) + toBigInt(gq)) * (toBigInt(bL(gs)) - toBigInt(gw)))
975+ let gz = if ((gy >= gx))
970976 then true
971977 else throw("new K is fewer error")
972- if ((gw == gw))
978+ if ((gz == gz))
973979 then {
974- let gA = if ((gt >= gx))
980+ let gD = if ((gw >= gA))
975981 then true
976982 else throw("Exchange result is fewer coins than expected")
977- if ((gA == gA))
983+ if ((gD == gD))
978984 then {
979- let gB = cA(gq)
980- if ((gB == gB))
985+ let gE = cC(gt)
986+ if ((gE == gE))
981987 then {
982- let gC = cH(gp, gt)
983- if ((gC == gC))
984- then $Tuple2(((gC ++ gB) ++ [ScriptTransfer(addressFromStringValue(gy), gt, bd(gp))]), gt)
988+ let gF = cJ(gs, gw)
989+ if ((gF == gF))
990+ then $Tuple2(((gF ++ gE) ++ [ScriptTransfer(addressFromStringValue(gB), gw, bf(gs))]), gw)
985991 else throw("Strict value is not equal to itself.")
986992 }
987993 else throw("Strict value is not equal to itself.")
988994 }
989995 else throw("Strict value is not equal to itself.")
990996 }
991997 else throw("Strict value is not equal to itself.")
992998 }
993999 else throw("Strict value is not equal to itself.")
9941000 }
9951001
9961002
9971003
998-@Callable(eS)
999-func setManager (gD) = {
1000- let gE = gj(eS)
1001- if ((gE == gE))
1004+@Callable(eV)
1005+func setManager (gG) = {
1006+ let gH = gm(eV)
1007+ if ((gH == gH))
10021008 then {
1003- let gF = fromBase58String(gD)
1004- if ((gF == gF))
1005- then [StringEntry(V(), gD)]
1009+ let gI = fromBase58String(gG)
1010+ if ((gI == gI))
1011+ then [StringEntry(V(), gG)]
10061012 else throw("Strict value is not equal to itself.")
10071013 }
10081014 else throw("Strict value is not equal to itself.")
10091015 }
10101016
10111017
10121018
1013-@Callable(eS)
1019+@Callable(eV)
10141020 func confirmManager () = {
1015- let gG = gg()
1016- let gH = if (isDefined(gG))
1021+ let gJ = gj()
1022+ let gK = if (isDefined(gJ))
10171023 then true
10181024 else throw("No pending manager")
1019- if ((gH == gH))
1025+ if ((gK == gK))
10201026 then {
1021- let gI = if ((eS.callerPublicKey == value(gG)))
1027+ let gL = if ((eV.callerPublicKey == value(gJ)))
10221028 then true
10231029 else throw("You are not pending manager")
1024- if ((gI == gI))
1025- then [StringEntry(U(), toBase58String(value(gG))), DeleteEntry(V())]
1030+ if ((gL == gL))
1031+ then [StringEntry(U(), toBase58String(value(gJ))), DeleteEntry(V())]
10261032 else throw("Strict value is not equal to itself.")
10271033 }
10281034 else throw("Strict value is not equal to itself.")
10291035 }
10301036
10311037
10321038
1033-@Callable(eS)
1034-func put (dG,gJ) = if ((0 > dG))
1039+@Callable(eV)
1040+func put (dI,gM) = if ((0 > dI))
10351041 then throw("Invalid slippageTolerance passed")
10361042 else {
1037- let eY = eV(eS, dG, true)
1038- let ei = eY._2
1039- let dn = eY._7
1040- let dE = eY._9
1041- let ej = eY._10
1042- let ek = eY._11
1043- let gK = eY._12
1044- let gL = eY._13
1045- let eW = toBigInt(value(eS.payments[0]).amount)
1046- let eX = toBigInt(value(eS.payments[1]).amount)
1047- let ez = es(eW, eX, toBigInt(0))
1048- if ((ez == ez))
1043+ let fb = eY(eV, dI, true)
1044+ let ek = fb._2
1045+ let dp = fb._7
1046+ let dG = fb._9
1047+ let el = fb._10
1048+ let em = fb._11
1049+ let gN = fb._12
1050+ let gO = fb._13
1051+ let eZ = toBigInt(value(eV.payments[0]).amount)
1052+ let fa = toBigInt(value(eV.payments[1]).amount)
1053+ let eB = eu(eZ, fa, toBigInt(0))
1054+ if ((eB == eB))
10491055 then {
1050- let fa = invoke(aT, "emit", [ei], nil)
1051- if ((fa == fa))
1056+ let fd = invoke(aV, "emit", [ek], nil)
1057+ if ((fd == fd))
10521058 then {
1053- let fb = {
1054- let bT = fa
1055- if ($isInstanceOf(bT, "Address"))
1059+ let fe = {
1060+ let bV = fd
1061+ if ($isInstanceOf(bV, "Address"))
10561062 then {
1057- let fc = bT
1058- invoke(fc, "emit", [ei], nil)
1063+ let ff = bV
1064+ invoke(ff, "emit", [ek], nil)
10591065 }
10601066 else unit
10611067 }
1062- if ((fb == fb))
1068+ if ((fe == fe))
10631069 then {
1064- let gM = if ((ej > 0))
1065- then invoke(bt, "put", nil, [AttachedPayment(gK, ej)])
1070+ let gP = if ((el > 0))
1071+ then invoke(bv, "put", nil, [AttachedPayment(gN, el)])
10661072 else nil
1067- if ((gM == gM))
1073+ if ((gP == gP))
10681074 then {
1069- let gN = if ((ek > 0))
1070- then invoke(bt, "put", nil, [AttachedPayment(gL, ek)])
1075+ let gQ = if ((em > 0))
1076+ then invoke(bv, "put", nil, [AttachedPayment(gO, em)])
10711077 else nil
1072- if ((gN == gN))
1078+ if ((gQ == gQ))
10731079 then {
1074- let gO = if (gJ)
1080+ let gR = if (gM)
10751081 then {
1076- let gP = invoke(bs, "stake", nil, [AttachedPayment(dn, ei)])
1077- if ((gP == gP))
1082+ let gS = invoke(bu, "stake", nil, [AttachedPayment(dp, ek)])
1083+ if ((gS == gS))
10781084 then nil
10791085 else throw("Strict value is not equal to itself.")
10801086 }
1081- else [ScriptTransfer(eS.caller, ei, dn)]
1082- let gQ = eA(0, 0, 0)
1083- if ((gQ == gQ))
1087+ else [ScriptTransfer(eV.caller, ek, dp)]
1088+ let gT = eC(0, 0, 0)
1089+ if ((gT == gT))
10841090 then {
1085- let er = gQ._2
1086- let gR = gQ._1
1087- let gS = eE(ez, er)
1088- if ((gS == gS))
1091+ let et = gT._2
1092+ let gU = gT._1
1093+ let gV = eH(eB, et)
1094+ if ((gV == gV))
10891095 then {
1090- let gT = invoke(this, "rebalance", nil, nil)
1091- if ((gT == gT))
1092- then ((dE ++ gO) ++ gR)
1096+ let gW = invoke(this, "rebalance", nil, nil)
1097+ if ((gW == gW))
1098+ then ((dG ++ gR) ++ gU)
10931099 else throw("Strict value is not equal to itself.")
10941100 }
10951101 else throw("Strict value is not equal to itself.")
10961102 }
10971103 else throw("Strict value is not equal to itself.")
10981104 }
10991105 else throw("Strict value is not equal to itself.")
11001106 }
11011107 else throw("Strict value is not equal to itself.")
11021108 }
11031109 else throw("Strict value is not equal to itself.")
11041110 }
11051111 else throw("Strict value is not equal to itself.")
11061112 }
11071113 else throw("Strict value is not equal to itself.")
11081114 }
11091115
11101116
11111117
1112-@Callable(eS)
1113-func putForFree (gU) = if ((0 > gU))
1118+@Callable(eV)
1119+func putForFree (gX) = if ((0 > gX))
11141120 then throw("Invalid value passed")
11151121 else {
1116- let eY = eV(eS, gU, false)
1117- let dE = eY._9
1118- let eW = toBigInt(value(eS.payments[0]).amount)
1119- let eX = toBigInt(value(eS.payments[1]).amount)
1120- let ez = es(eW, eX, toBigInt(0))
1121- if ((ez == ez))
1122+ let fb = eY(eV, gX, false)
1123+ let dG = fb._9
1124+ let eZ = toBigInt(value(eV.payments[0]).amount)
1125+ let fa = toBigInt(value(eV.payments[1]).amount)
1126+ let eB = eu(eZ, fa, toBigInt(0))
1127+ if ((eB == eB))
11221128 then {
1123- let gV = eA(0, 0, 0)
1124- let gR = gV._1
1125- let er = gV._2
1126- let gS = eE(ez, er)
1127- if ((gS == gS))
1128- then (dE ++ gR)
1129+ let gY = eC(0, 0, 0)
1130+ let gU = gY._1
1131+ let et = gY._2
1132+ let gV = eH(eB, et)
1133+ if ((gV == gV))
1134+ then (dG ++ gU)
11291135 else throw("Strict value is not equal to itself.")
11301136 }
11311137 else throw("Strict value is not equal to itself.")
11321138 }
11331139
11341140
11351141
1136-@Callable(eS)
1137-func putOneTkn (gW,gX) = {
1138- let gY = {
1139- let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1140- if ($isInstanceOf(aW, "Boolean"))
1141- then aW
1142- else throw(($getType(aW) + " couldn't be cast to Boolean"))
1142+@Callable(eV)
1143+func putOneTkn (gZ,ha) = {
1144+ let hb = {
1145+ let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1146+ if ($isInstanceOf(aY, "Boolean"))
1147+ then aY
1148+ else throw(($getType(aY) + " couldn't be cast to Boolean"))
11431149 }
1144- let gZ = if (if (if (aY())
1150+ let hc = if (if (if (ba())
11451151 then true
1146- else (bl == l))
1152+ else (bn == l))
11471153 then true
1148- else (bl == n))
1154+ else (bn == n))
11491155 then true
1150- else gY
1151- let fM = [if (if (!(gZ))
1156+ else hb
1157+ let fP = [if (if (!(hc))
11521158 then true
1153- else gh(eS))
1159+ else gk(eV))
11541160 then true
1155- else aQ("put operation is blocked by admin"), if ((size(eS.payments) == 1))
1161+ else aS("put operation is blocked by admin"), if ((size(eV.payments) == 1))
11561162 then true
1157- else aQ("exactly 1 payment are expected")]
1158- if ((fM == fM))
1163+ else aS("exactly 1 payment are expected")]
1164+ if ((fP == fP))
11591165 then {
1160- let ha = eS.payments[0]
1161- let fh = ha.assetId
1162- let fg = ha.amount
1163- let ez = if ((fh == bn))
1164- then es(toBigInt(fg), toBigInt(0), toBigInt(0))
1165- else if ((fh == bo))
1166- then es(toBigInt(0), toBigInt(fg), toBigInt(0))
1167- else aQ("payment asset is not supported")
1168- if ((ez == ez))
1166+ let hd = eV.payments[0]
1167+ let fk = hd.assetId
1168+ let fj = hd.amount
1169+ let eB = if ((fk == bp))
1170+ then eu(toBigInt(fj), toBigInt(0), toBigInt(0))
1171+ else if ((fk == bq))
1172+ then eu(toBigInt(0), toBigInt(fj), toBigInt(0))
1173+ else aS("payment asset is not supported")
1174+ if ((eB == eB))
11691175 then {
1170- let ab = eS.caller
1171- let ac = eS.transactionId
1172- let hb = ff(fg, fh, ab, ac)
1173- if ((hb == hb))
1176+ let ab = eV.caller
1177+ let ac = eV.transactionId
1178+ let he = fi(fj, fk, ab, ac)
1179+ if ((he == he))
11741180 then {
1175- let fl = hb._5
1176- let hc = hb._4
1177- let fe = hb._3
1178- let el = hb._2
1179- let hd = hb._1
1180- let he = if (if ((gW > 0))
1181- then (gW > hd)
1181+ let fo = he._5
1182+ let hf = he._4
1183+ let fh = he._3
1184+ let en = he._2
1185+ let hg = he._1
1186+ let hh = if (if ((gZ > 0))
1187+ then (gZ > hg)
11821188 else false)
1183- then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1184- else hd
1185- let fa = eZ(he)
1186- if ((fa == fa))
1189+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1190+ else hg
1191+ let fd = fc(hh)
1192+ if ((fd == fd))
11871193 then {
1188- let gO = if (gX)
1194+ let gR = if (ha)
11891195 then {
1190- let hf = invoke(bs, "stake", nil, [AttachedPayment(bm, he)])
1191- if ((hf == hf))
1196+ let hi = invoke(bu, "stake", nil, [AttachedPayment(bo, hh)])
1197+ if ((hi == hi))
11921198 then nil
11931199 else throw("Strict value is not equal to itself.")
11941200 }
1195- else [ScriptTransfer(eS.caller, he, bm)]
1196- let hg = if ((fe > 0))
1197- then [ScriptTransfer(aU, fe, fh)]
1201+ else [ScriptTransfer(eV.caller, hh, bo)]
1202+ let hj = if ((fh > 0))
1203+ then [ScriptTransfer(aW, fh, fk)]
11981204 else nil
1199- let hh = if ((this == aU))
1205+ let hk = if ((this == aW))
12001206 then $Tuple2(0, 0)
1201- else if (fl)
1202- then $Tuple2(-(fe), 0)
1203- else $Tuple2(0, -(fe))
1204- let eB = hh._1
1205- let eC = hh._2
1206- let hi = eA(eB, eC, 0)
1207- let gR = hi._1
1208- let er = hi._2
1209- let eL = value(getString(aj))
1210- let gS = eE(ez, er)
1211- if ((gS == gS))
1207+ else if (fo)
1208+ then $Tuple2(-(fh), 0)
1209+ else $Tuple2(0, -(fh))
1210+ let eD = hk._1
1211+ let eE = hk._2
1212+ let hl = eC(eD, eE, 0)
1213+ let gU = hl._1
1214+ let et = hl._2
1215+ let eO = value(getString(aj))
1216+ let gV = eH(eB, et)
1217+ if ((gV == gV))
12121218 then {
1213- let gT = invoke(this, "rebalance", nil, nil)
1214- if ((gT == gT))
1215- then $Tuple2((((el ++ gO) ++ hg) ++ gR), he)
1219+ let gW = invoke(this, "rebalance", nil, nil)
1220+ if ((gW == gW))
1221+ then $Tuple2((((en ++ gR) ++ hj) ++ gU), hh)
12161222 else throw("Strict value is not equal to itself.")
12171223 }
12181224 else throw("Strict value is not equal to itself.")
12191225 }
12201226 else throw("Strict value is not equal to itself.")
12211227 }
12221228 else throw("Strict value is not equal to itself.")
12231229 }
12241230 else throw("Strict value is not equal to itself.")
12251231 }
12261232 else throw("Strict value is not equal to itself.")
12271233 }
12281234
12291235
12301236
1231-@Callable(eS)
1232-func putOneTknREADONLY (fh,fg) = {
1233- let hj = ff(fg, bd(fh), unit, unit)
1234- let hd = hj._1
1235- let el = hj._2
1236- let fe = hj._3
1237- let hc = hj._4
1238- let fl = hj._5
1239- $Tuple2(nil, $Tuple3(hd, fe, hc))
1237+@Callable(eV)
1238+func putOneTknREADONLY (fk,fj) = {
1239+ let hm = fi(fj, bf(fk), unit, unit)
1240+ let hg = hm._1
1241+ let en = hm._2
1242+ let fh = hm._3
1243+ let hf = hm._4
1244+ let fo = hm._5
1245+ $Tuple2(nil, $Tuple3(hg, fh, hf))
12401246 }
12411247
12421248
12431249
1244-@Callable(eS)
1245-func getOneTkn (hk,gW) = {
1246- let gY = {
1247- let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1248- if ($isInstanceOf(aW, "Boolean"))
1249- then aW
1250- else throw(($getType(aW) + " couldn't be cast to Boolean"))
1250+@Callable(eV)
1251+func getOneTkn (hn,gZ) = {
1252+ let hb = {
1253+ let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1254+ if ($isInstanceOf(aY, "Boolean"))
1255+ then aY
1256+ else throw(($getType(aY) + " couldn't be cast to Boolean"))
12511257 }
1252- let hl = if (if (aY())
1258+ let ho = if (if (ba())
12531259 then true
1254- else (bl == n))
1260+ else (bn == n))
12551261 then true
1256- else gY
1257- let fM = [if (if (!(hl))
1262+ else hb
1263+ let fP = [if (if (!(ho))
12581264 then true
1259- else gh(eS))
1265+ else gk(eV))
12601266 then true
1261- else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 1))
1267+ else aS("get operation is blocked by admin"), if ((size(eV.payments) == 1))
12621268 then true
1263- else aQ("exactly 1 payment are expected")]
1264- if ((fM == fM))
1269+ else aS("exactly 1 payment are expected")]
1270+ if ((fP == fP))
12651271 then {
1266- let fL = bd(hk)
1267- let ha = eS.payments[0]
1268- let fh = ha.assetId
1269- let ft = ha.amount
1270- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1271- if ((ez == ez))
1272+ let fO = bf(hn)
1273+ let hd = eV.payments[0]
1274+ let fk = hd.assetId
1275+ let fw = hd.amount
1276+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1277+ if ((eB == eB))
12721278 then {
1273- let ab = eS.caller
1274- let ac = eS.transactionId
1275- let hm = fK(fL, ft, fh, ab, ac)
1276- if ((hm == hm))
1279+ let ab = eV.caller
1280+ let ac = eV.transactionId
1281+ let hp = fN(fO, fw, fk, ab, ac)
1282+ if ((hp == hp))
12771283 then {
1278- let fN = hm._5
1279- let hc = hm._4
1280- let fe = hm._3
1281- let el = hm._2
1282- let hn = hm._1
1283- let bW = if (if ((gW > 0))
1284- then (gW > hn)
1284+ let fQ = hp._5
1285+ let hf = hp._4
1286+ let fh = hp._3
1287+ let en = hp._2
1288+ let hq = hp._1
1289+ let bY = if (if ((gZ > 0))
1290+ then (gZ > hq)
12851291 else false)
1286- then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1287- else hn
1288- let ho = invoke(aT, "burn", [ft], [AttachedPayment(fh, ft)])
1289- if ((ho == ho))
1292+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1293+ else hq
1294+ let hr = invoke(aV, "burn", [fw], [AttachedPayment(fk, fw)])
1295+ if ((hr == hr))
12901296 then {
1291- let gC = cH(hk, (bW + max([0, fe])))
1292- let hp = [ScriptTransfer(ab, bW, fL)]
1293- let hg = if ((fe > 0))
1294- then [ScriptTransfer(aU, fe, fL)]
1297+ let gF = cJ(hn, (bY + max([0, fh])))
1298+ let hs = [ScriptTransfer(ab, bY, fO)]
1299+ let hj = if ((fh > 0))
1300+ then [ScriptTransfer(aW, fh, fO)]
12951301 else nil
1296- let hq = {
1297- let hr = if ((this == aU))
1302+ let ht = {
1303+ let hu = if ((this == aW))
12981304 then 0
1299- else fe
1300- if (fN)
1301- then $Tuple2(-((bW + hr)), 0)
1302- else $Tuple2(0, -((bW + hr)))
1305+ else fh
1306+ if (fQ)
1307+ then $Tuple2(-((bY + hu)), 0)
1308+ else $Tuple2(0, -((bY + hu)))
13031309 }
1304- let eB = hq._1
1305- let eC = hq._2
1306- let hs = eA(eB, eC, 0)
1307- let gR = hs._1
1308- let er = hs._2
1309- let gS = eE(ez, er)
1310- if ((gS == gS))
1311- then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
1310+ let eD = ht._1
1311+ let eE = ht._2
1312+ let hv = eC(eD, eE, 0)
1313+ let gU = hv._1
1314+ let et = hv._2
1315+ let gV = eH(eB, et)
1316+ if ((gV == gV))
1317+ then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
13121318 else throw("Strict value is not equal to itself.")
13131319 }
13141320 else throw("Strict value is not equal to itself.")
13151321 }
13161322 else throw("Strict value is not equal to itself.")
13171323 }
13181324 else throw("Strict value is not equal to itself.")
13191325 }
13201326 else throw("Strict value is not equal to itself.")
13211327 }
13221328
13231329
13241330
1325-@Callable(eS)
1326-func getOneTknREADONLY (fL,ft) = {
1327- let ht = fK(bd(fL), ft, bm, unit, unit)
1328- let hn = ht._1
1329- let el = ht._2
1330- let fe = ht._3
1331- let hc = ht._4
1332- let fN = ht._5
1333- $Tuple2(nil, $Tuple3(hn, fe, hc))
1331+@Callable(eV)
1332+func getOneTknREADONLY (fO,fw) = {
1333+ let hw = fN(bf(fO), fw, bo, unit, unit)
1334+ let hq = hw._1
1335+ let en = hw._2
1336+ let fh = hw._3
1337+ let hf = hw._4
1338+ let fQ = hw._5
1339+ $Tuple2(nil, $Tuple3(hq, fh, hf))
13341340 }
13351341
13361342
13371343
1338-@Callable(eS)
1339-func unstakeAndGetOneTkn (hu,hk,gW) = {
1340- let gY = {
1341- let aW = invoke(aT, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1342- if ($isInstanceOf(aW, "Boolean"))
1343- then aW
1344- else throw(($getType(aW) + " couldn't be cast to Boolean"))
1344+@Callable(eV)
1345+func unstakeAndGetOneTkn (hx,hn,gZ) = {
1346+ let hb = {
1347+ let aY = invoke(aV, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
1348+ if ($isInstanceOf(aY, "Boolean"))
1349+ then aY
1350+ else throw(($getType(aY) + " couldn't be cast to Boolean"))
13451351 }
1346- let hl = if (if (aY())
1352+ let ho = if (if (ba())
13471353 then true
1348- else (bl == n))
1354+ else (bn == n))
13491355 then true
1350- else gY
1351- let fM = [if (if (!(hl))
1356+ else hb
1357+ let fP = [if (if (!(ho))
13521358 then true
1353- else gh(eS))
1359+ else gk(eV))
13541360 then true
1355- else aQ("get operation is blocked by admin"), if ((size(eS.payments) == 0))
1361+ else aS("get operation is blocked by admin"), if ((size(eV.payments) == 0))
13561362 then true
1357- else aQ("no payments are expected")]
1358- if ((fM == fM))
1363+ else aS("no payments are expected")]
1364+ if ((fP == fP))
13591365 then {
1360- let fL = bd(hk)
1361- let ab = eS.caller
1362- let ac = eS.transactionId
1363- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1364- if ((ez == ez))
1366+ let fO = bf(hn)
1367+ let ab = eV.caller
1368+ let ac = eV.transactionId
1369+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1370+ if ((eB == eB))
13651371 then {
1366- let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1367- if ((hv == hv))
1372+ let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1373+ if ((hy == hy))
13681374 then {
1369- let hw = fK(fL, hu, bm, ab, ac)
1370- if ((hw == hw))
1375+ let hz = fN(fO, hx, bo, ab, ac)
1376+ if ((hz == hz))
13711377 then {
1372- let fN = hw._5
1373- let hc = hw._4
1374- let fe = hw._3
1375- let el = hw._2
1376- let hn = hw._1
1377- let bW = if (if ((gW > 0))
1378- then (gW > hn)
1378+ let fQ = hz._5
1379+ let hf = hz._4
1380+ let fh = hz._3
1381+ let en = hz._2
1382+ let hq = hz._1
1383+ let bY = if (if ((gZ > 0))
1384+ then (gZ > hq)
13791385 else false)
1380- then aQ(makeString(["amount to receive is less than ", toString(gW)], ""))
1381- else hn
1382- let ho = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1383- if ((ho == ho))
1386+ then aS(makeString(["amount to receive is less than ", toString(gZ)], ""))
1387+ else hq
1388+ let hr = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1389+ if ((hr == hr))
13841390 then {
1385- let gC = cH(hk, (bW + max([0, fe])))
1386- let hp = [ScriptTransfer(eS.caller, bW, fL)]
1387- let hg = if ((fe > 0))
1388- then [ScriptTransfer(aU, fe, fL)]
1391+ let gF = cJ(hn, (bY + max([0, fh])))
1392+ let hs = [ScriptTransfer(eV.caller, bY, fO)]
1393+ let hj = if ((fh > 0))
1394+ then [ScriptTransfer(aW, fh, fO)]
13891395 else nil
1390- let hx = {
1391- let hr = if ((this == aU))
1396+ let hA = {
1397+ let hu = if ((this == aW))
13921398 then 0
1393- else fe
1394- if (fN)
1395- then $Tuple2(-((bW + hr)), 0)
1396- else $Tuple2(0, -((bW + hr)))
1399+ else fh
1400+ if (fQ)
1401+ then $Tuple2(-((bY + hu)), 0)
1402+ else $Tuple2(0, -((bY + hu)))
13971403 }
1398- let eB = hx._1
1399- let eC = hx._2
1400- let hy = eA(eB, eC, 0)
1401- let gR = hy._1
1402- let er = hy._2
1403- let gS = eE(ez, er)
1404- if ((gS == gS))
1405- then $Tuple2(((((el ++ gC) ++ hp) ++ hg) ++ gR), bW)
1404+ let eD = hA._1
1405+ let eE = hA._2
1406+ let hB = eC(eD, eE, 0)
1407+ let gU = hB._1
1408+ let et = hB._2
1409+ let gV = eH(eB, et)
1410+ if ((gV == gV))
1411+ then $Tuple2(((((en ++ gF) ++ hs) ++ hj) ++ gU), bY)
14061412 else throw("Strict value is not equal to itself.")
14071413 }
14081414 else throw("Strict value is not equal to itself.")
14091415 }
14101416 else throw("Strict value is not equal to itself.")
14111417 }
14121418 else throw("Strict value is not equal to itself.")
14131419 }
14141420 else throw("Strict value is not equal to itself.")
14151421 }
14161422 else throw("Strict value is not equal to itself.")
14171423 }
14181424
14191425
14201426
1421-@Callable(eS)
1427+@Callable(eV)
14221428 func get () = {
1423- let dW = eR(eS)
1424- let dC = dW._1
1425- let dD = dW._2
1426- let eU = dW._3
1427- let dl = dW._4
1428- let dE = dW._5
1429- let gC = cM(dC, dD)
1430- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1431- if ((ez == ez))
1429+ let dY = eU(eV)
1430+ let dE = dY._1
1431+ let dF = dY._2
1432+ let eX = dY._3
1433+ let dn = dY._4
1434+ let dG = dY._5
1435+ let gF = cO(dE, dF)
1436+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1437+ if ((eB == eB))
14321438 then {
1433- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dl, eU)])
1434- if ((hz == hz))
1439+ let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1440+ if ((hC == hC))
14351441 then {
1436- let hA = eA(-(dC), -(dD), 0)
1437- let gR = hA._1
1438- let er = hA._2
1439- let gS = eE(ez, er)
1440- if ((gS == gS))
1441- then ((gC ++ dE) ++ gR)
1442+ let hD = eC(-(dE), -(dF), 0)
1443+ let gU = hD._1
1444+ let et = hD._2
1445+ let gV = eH(eB, et)
1446+ if ((gV == gV))
1447+ then ((gF ++ dG) ++ gU)
14421448 else throw("Strict value is not equal to itself.")
14431449 }
14441450 else throw("Strict value is not equal to itself.")
14451451 }
14461452 else throw("Strict value is not equal to itself.")
14471453 }
14481454
14491455
14501456
1451-@Callable(eS)
1452-func getNoLess (hB,hC) = {
1453- let dW = eR(eS)
1454- let dC = dW._1
1455- let dD = dW._2
1456- let eU = dW._3
1457- let dl = dW._4
1458- let dE = dW._5
1459- if ((hB > dC))
1460- then throw(((("noLessThenAmtAsset failed: " + toString(dC)) + " < ") + toString(hB)))
1461- else if ((hC > dD))
1462- then throw(((("noLessThenPriceAsset failed: " + toString(dD)) + " < ") + toString(hC)))
1457+@Callable(eV)
1458+func getNoLess (hE,hF) = {
1459+ let dY = eU(eV)
1460+ let dE = dY._1
1461+ let dF = dY._2
1462+ let eX = dY._3
1463+ let dn = dY._4
1464+ let dG = dY._5
1465+ if ((hE > dE))
1466+ then throw(((("noLessThenAmtAsset failed: " + toString(dE)) + " < ") + toString(hE)))
1467+ else if ((hF > dF))
1468+ then throw(((("noLessThenPriceAsset failed: " + toString(dF)) + " < ") + toString(hF)))
14631469 else {
1464- let gC = cM(dC, dD)
1465- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1466- if ((ez == ez))
1470+ let gF = cO(dE, dF)
1471+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1472+ if ((eB == eB))
14671473 then {
1468- let hz = invoke(aT, "burn", [eU], [AttachedPayment(dl, eU)])
1469- if ((hz == hz))
1474+ let hC = invoke(aV, "burn", [eX], [AttachedPayment(dn, eX)])
1475+ if ((hC == hC))
14701476 then {
1471- let hD = eA(-(dC), -(dD), 0)
1472- let gR = hD._1
1473- let er = hD._2
1474- let gS = eE(ez, er)
1475- if ((gS == gS))
1476- then ((gC ++ dE) ++ gR)
1477+ let hG = eC(-(dE), -(dF), 0)
1478+ let gU = hG._1
1479+ let et = hG._2
1480+ let gV = eH(eB, et)
1481+ if ((gV == gV))
1482+ then ((gF ++ dG) ++ gU)
14771483 else throw("Strict value is not equal to itself.")
14781484 }
14791485 else throw("Strict value is not equal to itself.")
14801486 }
14811487 else throw("Strict value is not equal to itself.")
14821488 }
14831489 }
14841490
14851491
14861492
1487-@Callable(eS)
1488-func unstakeAndGet (bW) = {
1489- let hE = if ((size(eS.payments) != 0))
1493+@Callable(eV)
1494+func unstakeAndGet (bY) = {
1495+ let hH = if ((size(eV.payments) != 0))
14901496 then throw("No payments are expected")
14911497 else true
1492- if ((hE == hE))
1498+ if ((hH == hH))
14931499 then {
1494- let da = ba()
1495- let dn = fromBase58String(da[q])
1496- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1497- if ((ez == ez))
1500+ let dc = bc()
1501+ let dp = fromBase58String(dc[q])
1502+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1503+ if ((eB == eB))
14981504 then {
1499- let hv = invoke(bs, "unstake", [toBase58String(dn), bW], nil)
1500- if ((hv == hv))
1505+ let hy = invoke(bu, "unstake", [toBase58String(dp), bY], nil)
1506+ if ((hy == hy))
15011507 then {
1502- let dW = dj(toBase58String(eS.transactionId), toBase58String(dn), bW, eS.caller)
1503- let dC = dW._1
1504- let dD = dW._2
1505- let dq = parseIntValue(dW._9)
1506- let dE = dW._10
1507- let gC = cM(dC, dD)
1508- let hF = if (if (aY())
1508+ let dY = dl(toBase58String(eV.transactionId), toBase58String(dp), bY, eV.caller)
1509+ let dE = dY._1
1510+ let dF = dY._2
1511+ let ds = parseIntValue(dY._9)
1512+ let dG = dY._10
1513+ let gF = cO(dE, dF)
1514+ let hI = if (if (ba())
15091515 then true
1510- else (dq == n))
1511- then throw(("Get operation is blocked by admin. Status = " + toString(dq)))
1516+ else (ds == n))
1517+ then throw(("Get operation is blocked by admin. Status = " + toString(ds)))
15121518 else true
1513- if ((hF == hF))
1519+ if ((hI == hI))
15141520 then {
1515- let hz = invoke(aT, "burn", [bW], [AttachedPayment(dn, bW)])
1516- if ((hz == hz))
1521+ let hC = invoke(aV, "burn", [bY], [AttachedPayment(dp, bY)])
1522+ if ((hC == hC))
15171523 then {
1518- let hG = eA(-(dC), -(dD), 0)
1519- let gR = hG._1
1520- let er = hG._2
1521- let gS = eE(ez, er)
1522- if ((gS == gS))
1523- then ((gC ++ dE) ++ gR)
1524+ let hJ = eC(-(dE), -(dF), 0)
1525+ let gU = hJ._1
1526+ let et = hJ._2
1527+ let gV = eH(eB, et)
1528+ if ((gV == gV))
1529+ then ((gF ++ dG) ++ gU)
15241530 else throw("Strict value is not equal to itself.")
15251531 }
15261532 else throw("Strict value is not equal to itself.")
15271533 }
15281534 else throw("Strict value is not equal to itself.")
15291535 }
15301536 else throw("Strict value is not equal to itself.")
15311537 }
15321538 else throw("Strict value is not equal to itself.")
15331539 }
15341540 else throw("Strict value is not equal to itself.")
15351541 }
15361542
15371543
15381544
1539-@Callable(eS)
1540-func unstakeAndGetNoLess (hu,hH,hC) = {
1541- let hl = if (aY())
1545+@Callable(eV)
1546+func unstakeAndGetNoLess (hx,hK,hF) = {
1547+ let ho = if (ba())
15421548 then true
1543- else (bl == n)
1544- let fM = [if (!(hl))
1549+ else (bn == n)
1550+ let fP = [if (!(ho))
15451551 then true
1546- else throw("get operation is blocked by admin"), if ((size(eS.payments) == 0))
1552+ else throw("get operation is blocked by admin"), if ((size(eV.payments) == 0))
15471553 then true
15481554 else throw("no payments are expected")]
1549- if ((fM == fM))
1555+ if ((fP == fP))
15501556 then {
1551- let ez = es(toBigInt(0), toBigInt(0), toBigInt(0))
1552- if ((ez == ez))
1557+ let eB = eu(toBigInt(0), toBigInt(0), toBigInt(0))
1558+ if ((eB == eB))
15531559 then {
1554- let hv = invoke(bs, "unstake", [toBase58String(bm), hu], nil)
1555- if ((hv == hv))
1560+ let hy = invoke(bu, "unstake", [toBase58String(bo), hx], nil)
1561+ if ((hy == hy))
15561562 then {
1557- let dW = dj(toBase58String(eS.transactionId), toBase58String(bm), hu, eS.caller)
1558- let dC = dW._1
1559- let dD = dW._2
1560- let dE = dW._10
1561- let gC = cM(dC, dD)
1562- let hI = [if ((dC >= hH))
1563+ let dY = dl(toBase58String(eV.transactionId), toBase58String(bo), hx, eV.caller)
1564+ let dE = dY._1
1565+ let dF = dY._2
1566+ let dG = dY._10
1567+ let gF = cO(dE, dF)
1568+ let hL = [if ((dE >= hK))
15631569 then true
1564- else throw(makeString(["amount asset amount to receive is less than ", toString(hH)], "")), if ((dD >= hC))
1570+ else throw(makeString(["amount asset amount to receive is less than ", toString(hK)], "")), if ((dF >= hF))
15651571 then true
1566- else throw(makeString(["price asset amount to receive is less than ", toString(hC)], ""))]
1567- if ((hI == hI))
1572+ else throw(makeString(["price asset amount to receive is less than ", toString(hF)], ""))]
1573+ if ((hL == hL))
15681574 then {
1569- let hz = invoke(aT, "burn", [hu], [AttachedPayment(bm, hu)])
1570- if ((hz == hz))
1575+ let hC = invoke(aV, "burn", [hx], [AttachedPayment(bo, hx)])
1576+ if ((hC == hC))
15711577 then {
1572- let hJ = eA(-(dC), -(dD), 0)
1573- let gR = hJ._1
1574- let er = hJ._2
1575- let gS = eE(ez, er)
1576- if ((gS == gS))
1577- then ((gC ++ dE) ++ gR)
1578+ let hM = eC(-(dE), -(dF), 0)
1579+ let gU = hM._1
1580+ let et = hM._2
1581+ let gV = eH(eB, et)
1582+ if ((gV == gV))
1583+ then ((gF ++ dG) ++ gU)
15781584 else throw("Strict value is not equal to itself.")
15791585 }
15801586 else throw("Strict value is not equal to itself.")
15811587 }
15821588 else throw("Strict value is not equal to itself.")
15831589 }
15841590 else throw("Strict value is not equal to itself.")
15851591 }
15861592 else throw("Strict value is not equal to itself.")
15871593 }
15881594 else throw("Strict value is not equal to itself.")
15891595 }
15901596
15911597
15921598
1593-@Callable(eS)
1594-func activate (hK,hL) = if ((toString(eS.caller) != toString(aT)))
1599+@Callable(eV)
1600+func activate (hN,hO) = if ((toString(eV.caller) != toString(aV)))
15951601 then throw("permissions denied")
1596- else $Tuple2([StringEntry(ae(), hK), StringEntry(af(), hL)], "success")
1602+ else $Tuple2([StringEntry(ae(), hN), StringEntry(af(), hO)], "success")
15971603
15981604
15991605
1600-@Callable(eS)
1606+@Callable(eV)
16011607 func refreshKLp () = {
1602- let hM = valueOrElse(getInteger(ak), 0)
1603- let hN = if (((height - hM) >= an))
1608+ let hP = valueOrElse(getInteger(ak), 0)
1609+ let hQ = if (((height - hP) >= an))
16041610 then unit
1605- else aQ(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1606- if ((hN == hN))
1611+ else aS(makeString([toString(an), " blocks have not passed since the previous call"], ""))
1612+ if ((hQ == hQ))
16071613 then {
1608- let eL = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aS("invalid kLp"))
1609- let hO = eA(0, 0, 0)
1610- let hP = hO._1
1611- let er = hO._2
1612- let eD = if ((eL != er))
1613- then hP
1614- else aQ("nothing to refresh")
1615- $Tuple2(eD, toString(er))
1614+ let eO = valueOrErrorMessage(parseBigInt(valueOrElse(getString(this, aj), "0")), aU("invalid kLp"))
1615+ let hR = eC(0, 0, 0)
1616+ let hS = hR._1
1617+ let et = hR._2
1618+ let eF = if ((eO != et))
1619+ then hS
1620+ else aS("nothing to refresh")
1621+ $Tuple2(eF, toString(et))
16161622 }
16171623 else throw("Strict value is not equal to itself.")
16181624 }
16191625
16201626
16211627
1622-@Callable(eS)
1623-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ba())
1628+@Callable(eV)
1629+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, bc())
16241630
16251631
16261632
1627-@Callable(eS)
1628-func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bJ(ap))
1633+@Callable(eV)
1634+func getAccBalanceWrapperREADONLY (ap) = $Tuple2(nil, bL(ap))
16291635
16301636
16311637
1632-@Callable(eS)
1633-func calcPricesWrapperREADONLY (cU,cV,cZ) = {
1634- let di = cY(cU, cV, cZ)
1635- $Tuple2(nil, [toString(di[0]), toString(di[1]), toString(di[2])])
1638+@Callable(eV)
1639+func calcPricesWrapperREADONLY (cW,cX,db) = {
1640+ let dk = da(cW, cX, db)
1641+ $Tuple2(nil, [toString(dk[0]), toString(dk[1]), toString(dk[2])])
16361642 }
16371643
16381644
16391645
1640-@Callable(eS)
1646+@Callable(eV)
16411647 func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
16421648
16431649
16441650
1645-@Callable(eS)
1651+@Callable(eV)
16461652 func fromX18WrapperREADONLY (I,J) = $Tuple2(nil, H(parseBigIntValue(I), J))
16471653
16481654
16491655
1650-@Callable(eS)
1651-func calcPriceBigIntWrapperREADONLY (bN,bO) = $Tuple2(nil, toString(bM(parseBigIntValue(bN), parseBigIntValue(bO))))
1656+@Callable(eV)
1657+func calcPriceBigIntWrapperREADONLY (bP,bQ) = $Tuple2(nil, toString(bO(parseBigIntValue(bP), parseBigIntValue(bQ))))
16521658
16531659
16541660
1655-@Callable(eS)
1656-func estimatePutOperationWrapperREADONLY (dk,dG,dH,dI,dJ,dK,ab,dL,dM) = $Tuple2(nil, dF(dk, dG, dH, dI, dJ, dK, ab, dL, dM))
1661+@Callable(eV)
1662+func estimatePutOperationWrapperREADONLY (dm,dI,dJ,dK,dL,dM,ab,dN,dO) = $Tuple2(nil, dH(dm, dI, dJ, dK, dL, dM, ab, dN, dO))
16571663
16581664
16591665
1660-@Callable(eS)
1661-func estimateGetOperationWrapperREADONLY (dk,dl,dm,ab) = {
1662- let dW = dj(dk, dl, dm, addressFromStringValue(ab))
1663- $Tuple2(nil, $Tuple10(dW._1, dW._2, dW._3, dW._4, dW._5, dW._6, dW._7, toString(dW._8), dW._9, dW._10))
1666+@Callable(eV)
1667+func estimateGetOperationWrapperREADONLY (dm,dn,do,ab) = {
1668+ let dY = dl(dm, dn, do, addressFromStringValue(ab))
1669+ $Tuple2(nil, $Tuple10(dY._1, dY._2, dY._3, dY._4, dY._5, dY._6, dY._7, toString(dY._8), dY._9, dY._10))
16641670 }
16651671
16661672
16671673
1668-@Callable(eS)
1674+@Callable(eV)
16691675 func statsREADONLY () = {
1670- let da = ba()
1671- let dn = fromBase58String(da[q])
1672- let hQ = da[r]
1673- let hR = da[s]
1674- let dP = da[v]
1675- let dQ = da[w]
1676- let db = parseIntValue(da[t])
1677- let dc = parseIntValue(da[u])
1678- let hS = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
1679- let hT = bJ(hQ)
1680- let hU = bJ(hR)
1681- let hV = if ((hS == 0))
1676+ let dc = bc()
1677+ let dp = fromBase58String(dc[q])
1678+ let hT = dc[r]
1679+ let hU = dc[s]
1680+ let dR = dc[v]
1681+ let dS = dc[w]
1682+ let dd = parseIntValue(dc[t])
1683+ let de = parseIntValue(dc[u])
1684+ let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1685+ let hW = bL(hT)
1686+ let hX = bL(hU)
1687+ let hY = if ((hV == 0))
16821688 then [e, e, e]
1683- else cY(hT, hU, hS)
1684- let dx = 0
1685- let hW = H(hV[1], b)
1686- let hX = H(hV[2], b)
1687- let hY = value(getInteger(aT, aD(toString(this))))
1688- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hT), toString(hU), toString(hS), toString(dx), toString(hW), toString(hX), toString(hY)], j))
1689+ else da(hW, hX, hV)
1690+ let dz = 0
1691+ let hZ = H(hY[1], b)
1692+ let ia = H(hY[2], b)
1693+ let ib = value(getInteger(aV, aD(toString(this))))
1694+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(hW), toString(hX), toString(hV), toString(dz), toString(hZ), toString(ia), toString(ib)], j))
16891695 }
16901696
16911697
16921698
1693-@Callable(eS)
1694-func evaluatePutByAmountAssetREADONLY (dH) = {
1695- let da = ba()
1696- let dn = fromBase58String(da[q])
1697- let dN = da[r]
1698- let do = fromBase58String(dN)
1699- let dO = da[s]
1700- let dp = fromBase58String(dO)
1701- let db = parseIntValue(da[t])
1702- let dc = parseIntValue(da[u])
1703- let dq = da[p]
1704- let hS = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
1705- let hT = bJ(dN)
1706- let hU = bJ(dO)
1707- let cW = D(hT, db)
1708- let cX = D(hU, dc)
1709- let dw = if ((hS == 0))
1699+@Callable(eV)
1700+func evaluatePutByAmountAssetREADONLY (dJ) = {
1701+ let dc = bc()
1702+ let dp = fromBase58String(dc[q])
1703+ let dP = dc[r]
1704+ let dq = fromBase58String(dP)
1705+ let dQ = dc[s]
1706+ let dr = fromBase58String(dQ)
1707+ let dd = parseIntValue(dc[t])
1708+ let de = parseIntValue(dc[u])
1709+ let ds = dc[p]
1710+ let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1711+ let hW = bL(dP)
1712+ let hX = bL(dQ)
1713+ let cY = D(hW, dd)
1714+ let cZ = D(hX, de)
1715+ let dy = if ((hV == 0))
17101716 then e
1711- else bM(cX, cW)
1712- let dT = D(dH, db)
1713- let dU = fraction(dT, dw, d)
1714- let dJ = H(dU, dc)
1715- let eY = dF("", 500000, dH, do, dJ, dp, "", true, false)
1716- let ee = eY._1
1717- let hZ = eY._3
1718- let ds = eY._4
1719- let du = eY._5
1720- let dr = eY._6
1721- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(dw, b)), toString(ds), toString(du), toString(dr), dq, toString(dH), toString(dJ)], j))
1717+ else bO(cZ, cY)
1718+ let dV = D(dJ, dd)
1719+ let dW = fraction(dV, dy, d)
1720+ let dL = H(dW, de)
1721+ let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1722+ let eg = fb._1
1723+ let ic = fb._3
1724+ let du = fb._4
1725+ let dw = fb._5
1726+ let dt = fb._6
1727+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
17221728 }
17231729
17241730
17251731
1726-@Callable(eS)
1727-func evaluatePutByPriceAssetREADONLY (dJ) = {
1728- let da = ba()
1729- let dn = fromBase58String(da[q])
1730- let dN = da[r]
1731- let do = fromBase58String(dN)
1732- let dO = da[s]
1733- let dp = fromBase58String(dO)
1734- let db = parseIntValue(da[t])
1735- let dc = parseIntValue(da[u])
1736- let dq = da[p]
1737- let hS = valueOrErrorMessage(assetInfo(dn), (("Asset " + toBase58String(dn)) + " doesn't exist")).quantity
1738- let ia = bJ(dN)
1739- let ib = bJ(dO)
1740- let ic = D(ia, db)
1741- let id = D(ib, dc)
1742- let dw = if ((hS == 0))
1732+@Callable(eV)
1733+func evaluatePutByPriceAssetREADONLY (dL) = {
1734+ let dc = bc()
1735+ let dp = fromBase58String(dc[q])
1736+ let dP = dc[r]
1737+ let dq = fromBase58String(dP)
1738+ let dQ = dc[s]
1739+ let dr = fromBase58String(dQ)
1740+ let dd = parseIntValue(dc[t])
1741+ let de = parseIntValue(dc[u])
1742+ let ds = dc[p]
1743+ let hV = valueOrErrorMessage(assetInfo(dp), (("Asset " + toBase58String(dp)) + " doesn't exist")).quantity
1744+ let id = bL(dP)
1745+ let ie = bL(dQ)
1746+ let if = D(id, dd)
1747+ let ig = D(ie, de)
1748+ let dy = if ((hV == 0))
17431749 then e
1744- else bM(id, ic)
1745- let dU = D(dJ, dc)
1746- let dT = fraction(dU, d, dw)
1747- let dH = H(dT, db)
1748- let eY = dF("", 500000, dH, do, dJ, dp, "", true, false)
1749- let ee = eY._1
1750- let hZ = eY._3
1751- let ds = eY._4
1752- let du = eY._5
1753- let dr = eY._6
1754- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ee), toString(H(dw, b)), toString(ds), toString(du), toString(dr), dq, toString(dH), toString(dJ)], j))
1750+ else bO(ig, if)
1751+ let dW = D(dL, de)
1752+ let dV = fraction(dW, d, dy)
1753+ let dJ = H(dV, dd)
1754+ let fb = dH("", 500000, dJ, dq, dL, dr, "", true, false)
1755+ let eg = fb._1
1756+ let ic = fb._3
1757+ let du = fb._4
1758+ let dw = fb._5
1759+ let dt = fb._6
1760+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(eg), toString(H(dy, b)), toString(du), toString(dw), toString(dt), ds, toString(dJ), toString(dL)], j))
17551761 }
17561762
17571763
17581764
1759-@Callable(eS)
1760-func evaluateGetREADONLY (ie,if) = {
1761- let dW = dj("", ie, if, this)
1762- let dC = dW._1
1763- let dD = dW._2
1764- let ds = dW._5
1765- let du = dW._6
1766- let dr = dW._7
1767- let dx = dW._8
1768- let dq = parseIntValue(dW._9)
1769- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dC), toString(dD), toString(ds), toString(du), toString(dr), toString(dx), toString(dq)], j))
1765+@Callable(eV)
1766+func evaluateGetREADONLY (ih,ii) = {
1767+ let dY = dl("", ih, ii, this)
1768+ let dE = dY._1
1769+ let dF = dY._2
1770+ let du = dY._5
1771+ let dw = dY._6
1772+ let dt = dY._7
1773+ let dz = dY._8
1774+ let ds = parseIntValue(dY._9)
1775+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(dE), toString(dF), toString(du), toString(dw), toString(dt), toString(dz), toString(ds)], j))
17701776 }
17711777
17721778
1773-@Verifier(ig)
1774-func ih () = {
1775- let ii = {
1776- let bT = ge()
1777- if ($isInstanceOf(bT, "ByteVector"))
1779+@Verifier(ij)
1780+func ik () = {
1781+ let il = {
1782+ let bV = gh()
1783+ if ($isInstanceOf(bV, "ByteVector"))
17781784 then {
1779- let gi = bT
1780- gi
1785+ let gl = bV
1786+ gl
17811787 }
1782- else if ($isInstanceOf(bT, "Unit"))
1783- then ig.senderPublicKey
1788+ else if ($isInstanceOf(bV, "Unit"))
1789+ then ij.senderPublicKey
17841790 else throw("Match error")
17851791 }
1786- let bT = ig
1787- if ($isInstanceOf(bT, "Order"))
1792+ let bV = ij
1793+ if ($isInstanceOf(bV, "Order"))
17881794 then {
1789- let eH = bT
1790- let ij = aZ()
1791- let ik = eG(eH)
1792- let aI = ik._1
1793- let aJ = ik._2
1794- let aK = sigVerify(eH.bodyBytes, eH.proofs[0], eH.senderPublicKey)
1795- let aL = sigVerify(eH.bodyBytes, eH.proofs[1], ij)
1796- if (if (if (aI)
1797- then aK
1795+ let eK = bV
1796+ let im = bb()
1797+ let in = if (eG())
1798+ then $Tuple2(true, "")
1799+ else eJ(eK)
1800+ let aK = in._1
1801+ let aL = in._2
1802+ let aM = sigVerify(eK.bodyBytes, eK.proofs[0], eK.senderPublicKey)
1803+ let aN = sigVerify(eK.bodyBytes, eK.proofs[1], im)
1804+ if (if (if (aK)
1805+ then aM
17981806 else false)
1799- then aL
1807+ then aN
18001808 else false)
18011809 then true
1802- else aH(aI, aJ, aK, aL)
1810+ else aJ(aK, aL, aM, aN)
18031811 }
1804- else if ($isInstanceOf(bT, "SetScriptTransaction"))
1812+ else if ($isInstanceOf(bV, "SetScriptTransaction"))
18051813 then {
1806- let gf = bT
1807- if (sigVerify(ig.bodyBytes, ig.proofs[0], ii))
1814+ let gi = bV
1815+ if (sigVerify(ij.bodyBytes, ij.proofs[0], il))
18081816 then true
18091817 else {
1810- let il = blake2b256(value(gf.script))
1811- let im = fromBase64String(value(getString(aT, aF())))
1812- let in = scriptHash(this)
1813- if ((im == il))
1814- then (in != il)
1818+ let io = blake2b256(value(gi.script))
1819+ let ip = fromBase64String(value(getString(aV, aF())))
1820+ let iq = scriptHash(this)
1821+ if ((ip == io))
1822+ then (iq != io)
18151823 else false
18161824 }
18171825 }
1818- else sigVerify(ig.bodyBytes, ig.proofs[0], ii)
1826+ else sigVerify(ij.bodyBytes, ij.proofs[0], il)
18191827 }
18201828

github/deemru/w8io/026f985 
685.48 ms