tx · 9Zy5T91w7qQPEzxvxewEuiz64bRouEUZUeoP1bCktpVu

3N8sfbgCJCsLbcWYRiVKm6ivccPLMsQmVDx:  -0.03000000 Waves

2022.11.09 10:36 [2309307] smart account 3N8sfbgCJCsLbcWYRiVKm6ivccPLMsQmVDx > SELF 0.00000000 Waves

{ "type": 13, "id": "9Zy5T91w7qQPEzxvxewEuiz64bRouEUZUeoP1bCktpVu", "fee": 3000000, "feeAssetId": null, "timestamp": 1667979395730, "version": 1, "sender": "3N8sfbgCJCsLbcWYRiVKm6ivccPLMsQmVDx", "senderPublicKey": "G4Ha5wvhDpHGy5koVJsmfWC2zwF89jXDUmWBb28mRyrr", "proofs": [ "4LV15xea8ye614L59pA8bndpe9AsQHZi1eKdcJxkQ8Vds6WYNzhpJg69A2QAmoHCvM6j31A1a7thBZ9p99WVsFnh" ], "script": "base64:BgKxJwgCEgMKAQgSABIECgIBBBIDCgEBEgQKAgEEEgQKAggBEgQKAggBEgQKAggBEgUKAwEIARIAEgQKAgEBEgMKAQESBQoDAQEBEgQKAggIEgASAwoBCBIFCgMBAQESBAoCAQESBAoCCAESBAoCCAgSCwoJCAEBAgECCAQEEgYKBAgIAQgSABIDCgEBEgMKAQESBAoCCAEiCmxQZGVjaW1hbHMiBnNjYWxlOCIMc2NhbGU4QmlnSW50IgdzY2FsZTE4Igp6ZXJvQmlnSW50IgRiaWcwIgRiaWcxIgRiaWcyIgt3YXZlc1N0cmluZyIDU0VQIgpQb29sQWN0aXZlIg9Qb29sUHV0RGlzYWJsZWQiE1Bvb2xNYXRjaGVyRGlzYWJsZWQiDFBvb2xTaHV0ZG93biIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIhJpZHhQb29sQW10QXNzZXRBbXQiFGlkeFBvb2xQcmljZUFzc2V0QW10IhFpZHhQb29sTFBBc3NldEFtdCIZaWR4RmFjdG9yeVN0YWtpbmdDb250cmFjdCIaaWR4RmFjdG9yeVNsaXBwYWdlQ29udHJhY3QiBXRvWDE4IgdvcmlnVmFsIg1vcmlnU2NhbGVNdWx0Igdmcm9tWDE4IgN2YWwiD3Jlc3VsdFNjYWxlTXVsdCIHdG9TY2FsZSIDYW10IghyZXNTY2FsZSIIY3VyU2NhbGUiA2FicyIJYWJzQmlnSW50IgJmYyIDbXBrIgRwbXBrIgJwbCICcGgiAWgiCXRpbWVzdGFtcCIDcGF1Igt1c2VyQWRkcmVzcyIEdHhJZCIDZ2F1IgJhYSICcGEiBmtleUZlZSIKZmVlRGVmYXVsdCIDZmVlIhBrZXlGYWN0b3J5Q29uZmlnIg1rZXlNYXRjaGVyUHViIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyINa2V5UG9vbENvbmZpZyIJaUFtdEFzc2V0IgtpUHJpY2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIhNrZXlBbGxQb29sc1NodXRkb3duIg1rZXlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiFmtleUFsbG93ZWRMcFNjcmlwdEhhc2giFmtleUZlZUNvbGxlY3RvckFkZHJlc3MiD3Rocm93T3JkZXJFcnJvciIKb3JkZXJWYWxpZCILc2VuZGVyVmFsaWQiDG1hdGNoZXJWYWxpZCIPZ2V0U3RyaW5nT3JGYWlsIgdhZGRyZXNzIgNrZXkiDGdldEludE9yRmFpbCIIdGhyb3dFcnIiA21zZyIPZmFjdG9yeUNvbnRyYWN0IhNmZWVDb2xsZWN0b3JBZGRyZXNzIhBpc0dsb2JhbFNodXRkb3duIhNnZXRNYXRjaGVyUHViT3JGYWlsIg1nZXRQb29sQ29uZmlnIghhbXRBc3NldCIKcHJpY2VBc3NldCIMcGFyc2VBc3NldElkIgVpbnB1dCIPYXNzZXRJZFRvU3RyaW5nIg9wYXJzZVBvb2xDb25maWciCnBvb2xDb25maWciEHBvb2xDb25maWdQYXJzZWQiCyR0MDc1NDQ3NzEwIg5jZmdQb29sQWRkcmVzcyINY2ZnUG9vbFN0YXR1cyIMY2ZnTHBBc3NldElkIhBjZmdBbW91bnRBc3NldElkIg9jZmdQcmljZUFzc2V0SWQiFmNmZ0Ftb3VudEFzc2V0RGVjaW1hbHMiFWNmZ1ByaWNlQXNzZXREZWNpbWFscyIQZ2V0RmFjdG9yeUNvbmZpZyIPc3Rha2luZ0NvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IhFkYXRhUHV0QWN0aW9uSW5mbyINaW5BbXRBc3NldEFtdCIPaW5QcmljZUFzc2V0QW10IghvdXRMcEFtdCIFcHJpY2UiHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyIhVzbGlwcGFnZVRvbGVyYW5jZVJlYWwiCHR4SGVpZ2h0Igt0eFRpbWVzdGFtcCISc2xpcGFnZUFtdEFzc2V0QW10IhRzbGlwYWdlUHJpY2VBc3NldEFtdCIRZGF0YUdldEFjdGlvbkluZm8iDm91dEFtdEFzc2V0QW10IhBvdXRQcmljZUFzc2V0QW10IgdpbkxwQW10Ig1nZXRBY2NCYWxhbmNlIgdhc3NldElkIg9jYWxjUHJpY2VCaWdJbnQiCHByQW10WDE4IghhbUFtdFgxOCIQcHJpdmF0ZUNhbGNQcmljZSIKYW1Bc3NldERjbSIKcHJBc3NldERjbSIFYW1BbXQiBXByQW10Ig5hbXRBc3NldEFtdFgxOCIQcHJpY2VBc3NldEFtdFgxOCIKY2FsY1ByaWNlcyIFbHBBbXQiA2NmZyILYW10QXNzZXREY20iDXByaWNlQXNzZXREY20iCHByaWNlWDE4IghscEFtdFgxOCITbHBQcmljZUluQW1Bc3NldFgxOCITbHBQcmljZUluUHJBc3NldFgxOCIPY2FsY3VsYXRlUHJpY2VzIgZwcmljZXMiFGVzdGltYXRlR2V0T3BlcmF0aW9uIgZ0eElkNTgiCnBtdEFzc2V0SWQiCHBtdExwQW10IglscEFzc2V0SWQiCWFtQXNzZXRJZCIJcHJBc3NldElkIgpwb29sU3RhdHVzIgpscEVtaXNzaW9uIglhbUJhbGFuY2UiDGFtQmFsYW5jZVgxOCIJcHJCYWxhbmNlIgxwckJhbGFuY2VYMTgiC2N1clByaWNlWDE4IghjdXJQcmljZSILcG10THBBbXRYMTgiDWxwRW1pc3Npb25YMTgiC291dEFtQW10WDE4IgtvdXRQckFtdFgxOCIIb3V0QW1BbXQiCG91dFByQW10IgVzdGF0ZSIUZXN0aW1hdGVQdXRPcGVyYXRpb24iEXNsaXBwYWdlVG9sZXJhbmNlIgxpbkFtQXNzZXRBbXQiC2luQW1Bc3NldElkIgxpblByQXNzZXRBbXQiC2luUHJBc3NldElkIgppc0V2YWx1YXRlIgZlbWl0THAiDGFtQXNzZXRJZFN0ciIMcHJBc3NldElkU3RyIgtpQW10QXNzZXRJZCINaVByaWNlQXNzZXRJZCIOaW5BbUFzc2V0SWRTdHIiDmluUHJBc3NldElkU3RyIg9pbkFtQXNzZXRBbXRYMTgiD2luUHJBc3NldEFtdFgxOCIMdXNlclByaWNlWDE4IgNyZXMiC3NsaXBwYWdlWDE4IhRzbGlwcGFnZVRvbGVyYW5jZVgxOCIKcHJWaWFBbVgxOCIKYW1WaWFQclgxOCIMZXhwZWN0ZWRBbXRzIhFleHBBbXRBc3NldEFtdFgxOCITZXhwUHJpY2VBc3NldEFtdFgxOCIJY2FsY0xwQW10Ig5jYWxjQW1Bc3NldFBtdCIOY2FsY1ByQXNzZXRQbXQiDHNsaXBwYWdlQ2FsYyIJZW1pdExwQW10IgZhbURpZmYiBnByRGlmZiILY29tbW9uU3RhdGUiG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZCIFb3JkZXIiCmFtdEFzc2V0SWQiDHByaWNlQXNzZXRJZCISYWNjQW10QXNzZXRCYWxhbmNlIhRhY2NQcmljZUFzc2V0QmFsYW5jZSINb3JkZXJBbXRBc3NldCIQb3JkZXJBbXRBc3NldFN0ciIPb3JkZXJQcmljZUFzc2V0IhJvcmRlclByaWNlQXNzZXRTdHIiCm9yZGVyUHJpY2UiCHByaWNlRGNtIhBjYXN0ZWRPcmRlclByaWNlIhFpc09yZGVyUHJpY2VWYWxpZCIJY29tbW9uR2V0IgFpIgNwbXQiBnBtdEFtdCIJY29tbW9uUHV0IgphbUFzc2V0UG10IgpwckFzc2V0UG10IgZlc3RQdXQiBGVtaXQiBmFtb3VudCIHZW1pdEludiINZW1pdEludkxlZ2FjeSIHJG1hdGNoMCIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0Igd0YWtlRmVlIglmZWVBbW91bnQiD2NhbGNQdXRPbmVUb2tlbiIQcGF5bWVudEFtb3VudFJhdyIOcGF5bWVudEFzc2V0SWQiBmlzRXZhbCIQYW1vdW50QmFsYW5jZVJhdyIPcHJpY2VCYWxhbmNlUmF3IhRwYXltZW50SW5BbW91bnRBc3NldCINJHQwMjI1NzEyMjg2NCIQYW1vdW50QmFsYW5jZU9sZCIPcHJpY2VCYWxhbmNlT2xkIg0kdDAyMjg2ODIzMDE3IhRhbW91bnRBc3NldEFtb3VudFJhdyITcHJpY2VBc3NldEFtb3VudFJhdyIRYW1vdW50QXNzZXRBbW91bnQiEHByaWNlQXNzZXRBbW91bnQiDSR0MDIzMTM5MjMxOTgiDXBheW1lbnRBbW91bnQiEGFtb3VudEJhbGFuY2VOZXciD3ByaWNlQmFsYW5jZU5ldyILcHJpY2VOZXdYMTgiCHByaWNlTmV3Ig5wYXltZW50QmFsYW5jZSIUcGF5bWVudEJhbGFuY2VCaWdJbnQiDHN1cHBseUJpZ0ludCILY2hlY2hTdXBwbHkiDWRlcG9zaXRCaWdJbnQiC2lzc3VlQW1vdW50IgtwcmljZU9sZFgxOCIIcHJpY2VPbGQiBGxvc3MiDSR0MDI0Njc1MjQ4NDIiB2JhbGFuY2UiD2lzc3VlQW1vdW50Qm90aCIPY2FsY0dldE9uZVRva2VuIgpvdXRBc3NldElkIgZjaGVja3MiEG91dEluQW1vdW50QXNzZXQiDWJhbGFuY2VCaWdJbnQiDGFtQmFsYW5jZU9sZCIMcHJCYWxhbmNlT2xkIgpvdXRCYWxhbmNlIhBvdXRCYWxhbmNlQmlnSW50Ig5yZWRlZW1lZEJpZ0ludCIJYW1vdW50UmF3Ig0kdDAyNjQyMjI2NDcyIgt0b3RhbEFtb3VudCINJHQwMjY0NzYyNjcwMiILb3V0QW1BbW91bnQiC291dFByQW1vdW50IgxhbUJhbGFuY2VOZXciDHByQmFsYW5jZU5ldyIYYW1vdW50Qm90aEluUGF5bWVudEFzc2V0IhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAnBkIgJwayIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiC2NoZWNrQ2FsbGVyIhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIPc2hvdWxkQXV0b1N0YWtlIgRhbUlkIgRwcklkIgxzbGlwcGFnZUFJbnYiDHNsaXBwYWdlUEludiIKbHBUcmFuc2ZlciILc2xwU3Rha2VJbnYiC21heFNsaXBwYWdlIgxtaW5PdXRBbW91bnQiCWF1dG9TdGFrZSIgaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiAUAiDWlzUHV0RGlzYWJsZWQiB3BheW1lbnQiDSR0MDMxNDEyMzE1MzkiE2VtaXRBbW91bnRFc3RpbWF0ZWQiBWJvbnVzIgplbWl0QW1vdW50IghzdGFrZUludiIHc2VuZEZlZSINJHQwMzIyNjgzMjQwMyINb3V0QXNzZXRJZFN0ciINaXNHZXREaXNhYmxlZCINJHQwMzMxNzUzMzMwNyIPYW1vdW50RXN0aW1hdGVkIgdidXJuSW52Ig1hc3NldFRyYW5zZmVyIg0kdDAzMzk0MjM0MDgwIg11bnN0YWtlQW1vdW50Igp1bnN0YWtlSW52Ig0kdDAzNDg3MjM1MDAyIglvdXRBbXRBbXQiFGJ1cm5MUEFzc2V0T25GYWN0b3J5IhJub0xlc3NUaGVuQW10QXNzZXQiFG5vTGVzc1RoZW5QcmljZUFzc2V0Ig1jaGVja1BheW1lbnRzIg9jaGVja1Bvb2xTdGF0dXMiFW5vTGVzc1RoZW5BbW91bnRBc3NldCIMY2hlY2tBbW91bnRzIgthbXRBc3NldFN0ciINcHJpY2VBc3NldFN0ciINcG9vbExQQmFsYW5jZSIKcHJpY2VzTGlzdCIPbHBBbXRBc3NldFNoYXJlIhFscFByaWNlQXNzZXRTaGFyZSIKcG9vbFdlaWdodCIMY3VyUHJpY2VDYWxjIgxhbUJhbGFuY2VSYXciDHByQmFsYW5jZVJhdyIPYW1CYWxhbmNlUmF3WDE4Ig9wckJhbGFuY2VSYXdYMTgiEHBheW1lbnRMcEFzc2V0SWQiDHBheW1lbnRMcEFtdCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5IgptYXRjaGVyUHViIgduZXdIYXNoIgthbGxvd2VkSGFzaCILY3VycmVudEhhc2hiAAFhAAgAAWIAgMLXLwABYwkAtgIBAIDC1y8AAWQJALYCAQCAgJC7utat8A0AAWUJALYCAQAAAAFmCQC2AgEAAAABZwkAtgIBAAEAAWgJALYCAQACAAFpAgVXQVZFUwABagICX18AAWsAAQABbAACAAFtAAMAAW4ABAABbwABAAFwAAIAAXEAAwABcgAEAAFzAAUAAXQABgABdQAHAAF2AAgAAXcACQABeAAKAAF5AAEAAXoAAgABQQADAAFCAAEAAUMABwEBRAIBRQFGCQC8AgMJALYCAQUBRQUBZAkAtgIBBQFGAQFHAgFIAUkJAKADAQkAvAIDBQFICQC2AgEFAUkFAWQBAUoDAUsBTAFNCQBrAwUBSwUBTAUBTQEBTgEBSAMJAGYCAAAFAUgJAQEtAQUBSAUBSAEBTwEBSAMJAL8CAgUBZQUBSAkAvgIBBQFIBQFIAQFQAAITJXNfX2ZhY3RvcnlDb250cmFjdAEBUQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFSAAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5AQFTAAIRJXMlc19fcHJpY2VfX2xhc3QBAVQCAVUBVgkAuQkCCQDMCAICGCVzJXMlZCVkX19wcmljZV9faGlzdG9yeQkAzAgCCQCkAwEFAVUJAMwIAgkApAMBBQFWBQNuaWwFAWoBAVcCAVgBWQkArAICCQCsAgIJAKwCAgILJXMlcyVzX19QX18FAVgCAl9fBQFZAQFaAgFYAVkJAKwCAgkArAICCQCsAgICCyVzJXMlc19fR19fBQFYAgJfXwUBWQECYWEAAg8lc19fYW1vdW50QXNzZXQBAmFiAAIOJXNfX3ByaWNlQXNzZXQAAmFjAgclc19fZmVlAAJhZAkAawMACgUBYgCQTgACYWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCYWMFAmFkAQJhZgACESVzX19mYWN0b3J5Q29uZmlnAQJhZwACGCVzJXNfX21hdGNoZXJfX3B1YmxpY0tleQECYWgBAmFpCQCsAgIJAKwCAgIIJXMlcyVzX18FAmFpAiBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAECYWoCAmFrAmFsCQCsAgIJAKwCAgkArAICCQCsAgICCCVkJWQlc19fBQJhawICX18FAmFsAghfX2NvbmZpZwECYW0BAmFuCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFuAQJhbwACDCVzX19zaHV0ZG93bgECYXABAmFxCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYXEBAmFyAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gAAmFzAhclc19fZmVlQ29sbGVjdG9yQWRkcmVzcwECYXQDAmF1AmF2AmF3CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICJG9yZGVyIHZhbGlkYXRpb24gZmFpbGVkOiBvcmRlclZhbGlkPQkApQMBBQJhdQINIHNlbmRlclZhbGlkPQkApQMBBQJhdgIOIG1hdGNoZXJWYWxpZD0JAKUDAQUCYXcBAmF4AgJheQJhegkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAmF5BQJhegkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJheQkAzAgCAgEuCQDMCAIFAmF6CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFBAgJheQJhegkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAmF5BQJhegkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQJheQkAzAgCAgEuCQDMCAIFAmF6CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABAmFCAQJhQwkAAgEJALkJAgkAzAgCAghscC5yaWRlOgkAzAgCBQJhQwUDbmlsAgEgAAJhRAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmF4AgUEdGhpcwkBAVAAAAJhRQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAmF4AgUCYUQFAmFzAQJhRgAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUCYUQJAQJhbwAHAQJhRwAJANkEAQkBAmF4AgUCYUQJAQJhZwABAmFIAAQCYUkJAQJheAIFBHRoaXMJAQJhYQAEAmFKCQECYXgCBQR0aGlzCQECYWIABAJhbAkBAmFBAgUCYUQJAQJhbQEFAmFKBAJhawkBAmFBAgUCYUQJAQJhbQEFAmFJCQC1CQIJAQJheAIFAmFECQECYWoCCQCkAwEFAmFrCQCkAwEFAmFsBQFqAQJhSwECYUwDCQAAAgUCYUwFAWkFBHVuaXQJANkEAQUCYUwBAmFNAQJhTAMJAAACBQJhTAUEdW5pdAUBaQkA2AQBCQEFdmFsdWUBBQJhTAECYU4BAmFPCQCZCgcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYU8FAW8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTwUBcAkA2QQBCQCRAwIFAmFPBQFxCQECYUsBCQCRAwIFAmFPBQFyCQECYUsBCQCRAwIFAmFPBQFzCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYU8FAXQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhTwUBdQACYVAJAQJhTgEJAQJhSAAAAmFRBQJhUAACYVIIBQJhUQJfMQACYVMIBQJhUQJfMgACYVQIBQJhUQJfMwACYVUIBQJhUQJfNAACYVYIBQJhUQJfNQACYVcIBQJhUQJfNgACYVgIBQJhUQJfNwECYVkACQC1CQIJAQJheAIFAmFECQECYWYABQFqAAJhWgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgkBAmFZAAUBQgIZaW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcwACYmEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIJAQJhWQAFAUMCGWluY29ycmVjdCBzdGFraW5nIGFkZHJlc3MBAmJiCgJiYwJiZAJiZQJiZgJiZwJiaAJiaQJiagJiawJibAkAuQkCCQDMCAICFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYmMJAMwIAgkApAMBBQJiZAkAzAgCCQCkAwEFAmJlCQDMCAIJAKQDAQUCYmYJAMwIAgkApAMBBQJiZwkAzAgCCQCkAwEFAmJoCQDMCAIJAKQDAQUCYmkJAMwIAgkApAMBBQJiagkAzAgCCQCkAwEFAmJrCQDMCAIJAKQDAQUCYmwFA25pbAUBagECYm0GAmJuAmJvAmJwAmJmAmJpAmJqCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCYm4JAMwIAgkApAMBBQJibwkAzAgCCQCkAwEFAmJwCQDMCAIJAKQDAQUCYmYJAMwIAgkApAMBBQJiaQkAzAgCCQCkAwEFAmJqBQNuaWwFAWoBAmJxAQJicgMJAAACBQJicgIFV0FWRVMICQDvBwEFBHRoaXMJYXZhaWxhYmxlCQDwBwIFBHRoaXMJANkEAQUCYnIBAmJzAgJidAJidQkAvAIDBQJidAUBZAUCYnUBAmJ2BAJidwJieAJieQJiegQCYkEJAQFEAgUCYnkFAmJ3BAJiQgkBAUQCBQJiegUCYngJAQJicwIFAmJCBQJiQQECYkMDAmJ5AmJ6AmJEBAJiRQkBAmFIAAQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRQUBdAQCYkcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRQUBdQQCYkgJAQJidgQFAmJGBQJiRwUCYnkFAmJ6BAJidQkBAUQCBQJieQUCYkYEAmJ0CQEBRAIFAmJ6BQJiRwQCYkkJAQFEAgUCYkQFAWIEAmJKCQECYnMCBQJidQUCYkkEAmJLCQECYnMCBQJidAUCYkkJAMwIAgUCYkgJAMwIAgUCYkoJAMwIAgUCYksFA25pbAECYkwDAmJ5AmJ6AmJEBAJiTQkBAmJDAwUCYnkFAmJ6BQJiRAkAzAgCCQEBRwIJAJEDAgUCYk0AAAUBYgkAzAgCCQEBRwIJAJEDAgUCYk0AAQUBYgkAzAgCCQEBRwIJAJEDAgUCYk0AAgUBYgUDbmlsAQJiTgQCYk8CYlACYlEBWAQCYkUJAQJhSAAEAmJSCQCRAwIFAmJFBQFxBAJiUwkAkQMCBQJiRQUBcgQCYlQJAJEDAgUCYkUFAXMEAmJ3CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkUFAXQEAmJ4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYkUFAXUEAmJVCQCRAwIFAmJFBQFwBAJiVggJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7AcBCQDZBAEFAmJSCQCsAgIJAKwCAgIGQXNzZXQgBQJiUgIOIGRvZXNuJ3QgZXhpc3QIcXVhbnRpdHkDCQECIT0CBQJiUgUCYlAJAAIBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAmJXCQECYnEBBQJiUwQCYlgJAQFEAgUCYlcFAmJ3BAJiWQkBAmJxAQUCYlQEAmJaCQEBRAIFAmJZBQJieAQCY2EJAQJicwIFAmJaBQJiWAQCY2IJAQFHAgUCY2EFAWIEAmNjCQEBRAIFAmJRBQFiBAJjZAkBAUQCBQJiVgUBYgQCY2UJALwCAwUCYlgFAmNjBQJjZAQCY2YJALwCAwUCYloFAmNjBQJjZAQCY2cJAQFHAgUCY2UFAmJ3BAJjaAkBAUcCBQJjZgUCYngEAmNpAwkAAAIFAmJPAgAFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQFYBQJjZwMJAAACBQJiUwIFV0FWRVMFBHVuaXQJANkEAQUCYlMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBWAUCY2gDCQAAAgUCYlQCBVdBVkVTBQR1bml0CQDZBAEFAmJUCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFaAgkApQgBBQFYBQJiTwkBAmJtBgUCY2cFAmNoBQJiUQUCY2IFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCY2IJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCY2IFA25pbAkAnAoKBQJjZwUCY2gFAmJTBQJiVAUCYlcFAmJZBQJiVgUCY2EFAmJVBQJjaQECY2oJAmJPAmNrAmNsAmNtAmNuAmNvAVgCY3ACY3EEAmJFCQECYUgABAJiUgkA2QQBCQCRAwIFAmJFBQFxBAJjcgkAkQMCBQJiRQUBcgQCY3MJAJEDAgUCYkUFAXMEAmN0CQCRAwIFAmJFBQF2BAJjdQkAkQMCBQJiRQUBdwQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRQUBdAQCYkcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRQUBdQQCYlUJAJEDAgUCYkUFAXAEAmJWCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmJSCQCsAgIJAKwCAgIGQXNzZXQgCQDYBAEFAmJSAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCY3YJANgEAQkBC3ZhbHVlT3JFbHNlAgUCY20JANkEAQIFV0FWRVMEAmN3CQDYBAEJAQt2YWx1ZU9yRWxzZQIFAmNvCQDZBAECBVdBVkVTAwMJAQIhPQIFAmNyBQJjdgYJAQIhPQIFAmNzBQJjdwkAAgECIkludmFsaWQgYW10IG9yIHByaWNlIGFzc2V0IHBhc3NlZC4EAmJXAwUCY3AJAQJicQEFAmNyCQBlAgkBAmJxAQUCY3IFAmNsBAJiWQMFAmNwCQECYnEBBQJjcwkAZQIJAQJicQEFAmNzBQJjbgQCY3gJAQFEAgUCY2wFAmJGBAJjeQkBAUQCBQJjbgUCYkcEAmN6CQECYnMCBQJjeQUCY3gEAmJYCQEBRAIFAmJXBQJiRgQCYloJAQFEAgUCYlkFAmJHBAJjQQMJAAACBQJiVgAABAJjYQUBZQQCY0IFAWUEAmJJCQB2BgkAuQICBQJjeAUCY3kAAAkAtgIBAAUAAQAABQRET1dOCQCXCgUJAQFHAgUCYkkFAWIJAQFHAgUCY3gFAmJGCQEBRwIFAmN5BQJiRwkBAmJzAgkAtwICBQJiWgUCY3kJALcCAgUCYlgFAmN4BQJjQgQCY2EJAQJicwIFAmJaBQJiWAQCY0IJALwCAwkBAU8BCQC4AgIFAmNhBQJjegUBZAUCY2EEAmNDCQEBRAIFAmNrBQFiAwMJAQIhPQIFAmNhBQFlCQC/AgIFAmNCBQJjQwcJAAIBCQCsAgIJAKwCAgkArAICAg9QcmljZSBzbGlwcGFnZSAJAKYDAQUCY0ICHiBleGNlZWRlZCB0aGUgcGFzc2VkIGxpbWl0IG9mIAkApgMBBQJjQwQCY2QJAQFEAgUCYlYFAWIEAmNECQC8AgMFAmN4BQJjYQUBZAQCY0UJALwCAwUCY3kFAWQFAmNhBAJjRgMJAL8CAgUCY0QFAmN5CQCUCgIFAmNFBQJjeQkAlAoCBQJjeAUCY0QEAmNHCAUCY0YCXzEEAmNICAUCY0YCXzIEAmJJCQC8AgMFAmNkBQJjSAUCYloJAJcKBQkBAUcCBQJiSQUBYgkBAUcCBQJjRwUCYkYJAQFHAgUCY0gFAmJHBQJjYQUCY0IEAmNJCAUCY0ECXzEEAmNKCAUCY0ECXzIEAmNLCAUCY0ECXzMEAmNiCQEBRwIIBQJjQQJfNAUBYgQCY0wJAQFHAggFAmNBAl81BQFiAwkAZwIAAAUCY0kJAAIBAjZJbnZhbGlkIGNhbGN1bGF0aW9ucy4gTFAgY2FsY3VsYXRlZCBpcyBsZXNzIHRoYW4gemVyby4EAmNNAwkBASEBBQJjcQAABQJjSQQCY04JAGUCBQJjbAUCY0oEAmNPCQBlAgUCY24FAmNLBAJjUAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVMABQJjYgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVQCBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjYgkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwIFAVgFAmJPCQECYmIKBQJjSgUCY0sFAmNNBQJjYgUCY2sFAmNMBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQJjTgUCY08FA25pbAkAnwoNBQJjSQUCY00FAmNiBQJiVwUCYlkFAmJWBQJiUgUCYlUFAmNQBQJjTgUCY08FAmNtBQJjbwECY1EBAmNSBAJiRQkBAmFIAAQCY1MJAJEDAgUCYkUFAXIEAmNUCQCRAwIFAmJFBQFzBAJiVQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQFwBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQF0BAJiRwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQF1BAJjVQkBAmJxAQUCY1MEAmNWCQECYnEBBQJjVAQCY2EDCQAAAggFAmNSCW9yZGVyVHlwZQUDQnV5CQECYnYEBQJiRgUCYkcJAGQCBQJjVQgFAmNSBmFtb3VudAUCY1YJAQJidgQFAmJGBQJiRwkAZQIFAmNVCAUCY1IGYW1vdW50BQJjVgQCY2IJAQFHAgUCY2EFAWIDAwMJAQJhRgAGCQAAAgUCYlUFAW0GCQAAAgUCYlUFAW4JAAIBAhxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkBAJjVwgIBQJjUglhc3NldFBhaXILYW1vdW50QXNzZXQEAmNYAwkAAAIFAmNXBQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQJjVwQCY1kICAUCY1IJYXNzZXRQYWlyCnByaWNlQXNzZXQEAmNaAwkAAAIFAmNZBQR1bml0AgVXQVZFUwkA2AQBCQEFdmFsdWUBBQJjWQMDCQECIT0CBQJjWAUCY1MGCQECIT0CBQJjWgUCY1QJAAIBAhNXcm9uZyBvcmRlciBhc3NldHMuBAJkYQgFAmNSBXByaWNlBAJkYgkAawMFAWIFAmJHBQJiRgQCZGMJAQFKAwUCZGEFAWIFAmRiBAJkZAMJAAACCAUCY1IJb3JkZXJUeXBlBQNCdXkJAGcCBQJjYgUCZGMJAGcCBQJkYwUCY2IGAQJkZQECZGYDCQECIT0CCQCQAwEIBQJkZghwYXltZW50cwABCQACAQIdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAmRnCQEFdmFsdWUBCQCRAwIIBQJkZghwYXltZW50cwAABAJiUAkBBXZhbHVlAQgFAmRnB2Fzc2V0SWQEAmRoCAUCZGcGYW1vdW50BAJjQQkBAmJOBAkA2AQBCAUCZGYNdHJhbnNhY3Rpb25JZAkA2AQBBQJiUAUCZGgIBQJkZgZjYWxsZXIEAmNnCAUCY0ECXzEEAmNoCAUCY0ECXzIEAmJVCQENcGFyc2VJbnRWYWx1ZQEIBQJjQQJfOQQCY2kIBQJjQQNfMTADAwkBAmFGAAYJAAACBQJiVQUBbgkAAgEJAKwCAgIsR2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlUJAJcKBQUCY2cFAmNoBQJkaAUCYlAFAmNpAQJkaQMCZGYCY2sCY3EDCQECIT0CCQCQAwEIBQJkZghwYXltZW50cwACCQACAQIfZXhhY3RseSAyIHBheW1lbnRzIGFyZSBleHBlY3RlZAQCZGoJAQV2YWx1ZQEJAJEDAggFAmRmCHBheW1lbnRzAAAEAmRrCQEFdmFsdWUBCQCRAwIIBQJkZghwYXltZW50cwABBAJkbAkBAmNqCQkA2AQBCAUCZGYNdHJhbnNhY3Rpb25JZAUCY2sIBQJkagZhbW91bnQIBQJkagdhc3NldElkCAUCZGsGYW1vdW50CAUCZGsHYXNzZXRJZAkApQgBCAUCZGYGY2FsbGVyBwUCY3EEAmJVCQENcGFyc2VJbnRWYWx1ZQEIBQJkbAJfOAMDAwkBAmFGAAYJAAACBQJiVQUBbAYJAAACBQJiVQUBbgkAAgEJAKwCAgIsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAKQDAQUCYlUFAmRsAQJkbQECZG4EAmRvCQD8BwQFAmFEAgRlbWl0CQDMCAIFAmRuBQNuaWwFA25pbAMJAAACBQJkbwUCZG8EAmRwBAJkcQUCZG8DCQABAgUCZHECB0FkZHJlc3MEAmRyBQJkcQkA/AcEBQJkcgIEZW1pdAkAzAgCBQJkbgUDbmlsBQNuaWwFBHVuaXQDCQAAAgUCZHAFAmRwBQJkbgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZHMBAmRuBAJkdAkAawMFAmRuBQJhZQUBYgkAlAoCCQBlAgUCZG4FAmR0BQJkdAECZHUEAmR2AmR3AVgBWQQCZHgJAAACBQFZBQR1bml0BAJkeQkBAmJxAQkBAmFNAQUCYVUEAmR6CQECYnEBCQECYU0BBQJhVgQCZEEDCQAAAgUCZHcFAmFVBgMJAAACBQJkdwUCYVYHCQECYUIBAg1pbnZhbGlkIGFzc2V0BAJkQgMFAmR4CQCUCgIFAmR5BQJkegMFAmRBCQCUCgIJAGUCBQJkeQUCZHYFAmR6CQCUCgIFAmR5CQBlAgUCZHoFAmR2BAJkQwgFAmRCAl8xBAJkRAgFAmRCAl8yBAJkRQMFAmRBCQCUCgIFAmR2AAAJAJQKAgAABQJkdgQCZEYIBQJkRQJfMQQCZEcIBQJkRQJfMgQCZEgICQECZHMBBQJkRgJfMQQCZEkICQECZHMBBQJkRwJfMQQCZEoJAQJkcwEFAmR2BAJkSwgFAmRKAl8xBAJkdAgFAmRKAl8yBAJkTAkAZAIFAmRDBQJkSAQCZE0JAGQCBQJkRAUCZEkEAmROCQECYnMCCQEBRAIFAmRNBQJhWAkBAUQCBQJkTAUCYVcEAmRPCQEBRwIFAmROBQFiBAJkUAMFAmRBBQJkQwUCZEQEAmRRCQC2AgEFAmRQBAJkUgkAtgIBCAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDsBwEFAmFUCQCsAgIJAKwCAgIGYXNzZXQgCQDYBAEFAmFUAg4gZG9lc24ndCBleGlzdAhxdWFudGl0eQQCZFMDCQC/AgIFAmRSBQFmBgkBAmFCAQIiaW5pdGlhbCBkZXBvc2l0IHJlcXVpcmVzIGFsbCBjb2lucwMJAAACBQJkUwUCZFMEAmRUCQC2AgEFAmRLBAJkVQkAlgMBCQDMCAIAAAkAzAgCCQCgAwEJALoCAgkAuQICBQJkUgkAuAICCQEKc3FydEJpZ0ludAQJALcCAgUBZAkAugICCQC5AgIFAmRUBQFkBQJkUQASABIFBERPV04FAWQFAWQFA25pbAQCY1ADBQJkeAUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBUwAFAmRPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBVAIFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmRPCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFXAgkApQgBCQEFdmFsdWUBBQFYCQDYBAEJAQV2YWx1ZQEFAVkJAQJiYgoFAmRGBQJkRwUCZFUFAmRPAAAAAAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAAAAAAFA25pbAQCZFYJAQJicwIJAQFEAgUCZEQFAmFYCQEBRAIFAmRDBQJhVwQCZFcJAQFHAgUCZFYFAWIEAmRYBAJkWQMFAmRBCQCUCgIFAmRGBQJkQwkAlAoCBQJkRwUCZEQEAmRuCAUCZFkCXzEEAmRaCAUCZFkCXzIEAmVhCQCgAwEJALwCAwUCZFIJALYCAQkAaQIFAmRuAAIJALYCAQUCZFoJAGsDCQBlAgUCZFUFAmVhBQFiBQJlYQkAlgoEBQJkVQUCY1AFAmR0BQJkWAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZWIFAmVjAmRLAmR3AVgBWQQCZHgJAAACBQFZBQR1bml0BAJlZAkAzAgCAwkAAAIFAmR3BQJhVAYJAQJhQgECEGludmFsaWQgbHAgYXNzZXQFA25pbAMJAAACBQJlZAUCZWQEAmVlAwkAAAIFAmVjBQJhVQYDCQAAAgUCZWMFAmFWBwkBAmFCAQINaW52YWxpZCBhc3NldAQCZWYDBQJlZQkAtgIBCQECYnEBCQECYU0BBQJhVQkAtgIBCQECYnEBCQECYU0BBQJhVgQCZWcJAQJicQEJAQJhTQEFAmFVBAJlaAkBAmJxAQkBAmFNAQUCYVYEAmVpAwUCZWUFAmVnBQJlaAQCZWoJALYCAQUCZWkEAmRSCQC2AgEICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYVQJAKwCAgkArAICAgZhc3NldCAJANgEAQUCYVQCDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJlawkAtgIBBQJkSwQCZWwJAJYDAQkAzAgCAAAJAMwIAgkAoAMBCQC6AgIJALkCAgUCZWYJALgCAgUBZAkAdgYJALgCAgUBZAkAugICCQC5AgIFAmVrBQFkBQJkUgASBQFoAAAAEgUERE9XTgUBZAUDbmlsBAJlbQkBAmRzAQUCZWwEAmVuCAUCZW0CXzEEAmR0CAUCZW0CXzIEAmVvAwUCZWUJAJYKBAUCZW4AAAkAZQIFAmVnBQJlbAUCZWgJAJYKBAAABQJlbgUCZWcJAGUCBQJlaAUCZWwEAmVwCAUCZW8CXzEEAmVxCAUCZW8CXzIEAmVyCAUCZW8CXzMEAmVzCAUCZW8CXzQEAmROCQECYnMCCQEBRAIFAmVzBQJhWAkBAUQCBQJlcgUCYVcEAmRPCQEBRwIFAmROBQFiBAJjUAMFAmR4BQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVoCCQClCAEJAQV2YWx1ZQEFAVgJANgEAQkBBXZhbHVlAQUBWQkBAmJtBgUCZXAFAmVxBQJkSwUCZE8FBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFTAAUCZE8JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFUAgUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCZE8FA25pbAQCZFYJAQJicwIJAQFEAgUCZWgFAmFYCQEBRAIFAmVnBQJhVwQCZFcJAQFHAgUCZFYFAWIEAmRYBAJldAkAaAIJAKADAQkAvAIDBQJlZgUCZWsFAmRSAAIJAGsDCQBlAgUCZW4FAmV0BQFiBQJldAkAlgoEBQJlbgUCY1AFAmR0BQJkWAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZXUABAJkcQkAoggBCQEBUQADCQABAgUCZHECBlN0cmluZwQCZXYFAmRxCQDZBAEFAmV2AwkAAQIFAmRxAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmV3AAQCZHEJAKIIAQkBAVIAAwkAAQIFAmRxAgZTdHJpbmcEAmV2BQJkcQkA2QQBBQJldgMJAAECBQJkcQIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJleAECZGYEAmV5CQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmRxCQECZXUAAwkAAQIFAmRxAgpCeXRlVmVjdG9yBAJlegUCZHEDCQAAAggFAmRmD2NhbGxlclB1YmxpY0tleQUCZXoGBQJleQMJAAECBQJkcQIEVW5pdAMJAAACCAUCZGYGY2FsbGVyBQR0aGlzBgUCZXkJAAIBAgtNYXRjaCBlcnJvchoCZGYBCnNldE1hbmFnZXIBAmVBBAJlQgkBAmV4AQUCZGYDCQAAAgUCZUIFAmVCBAJlQwkA2QQBBQJlQQMJAAACBQJlQwUCZUMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVIABQJlQQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRmAQ5jb25maXJtTWFuYWdlcgAEAmVECQECZXcABAJlRQMJAQlpc0RlZmluZWQBBQJlRAYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZUUFAmVFBAJlRgMJAAACCAUCZGYPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJlRAYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZUYFAmVGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFRAAkA2AQBCQEFdmFsdWUBBQJlRAkAzAgCCQELRGVsZXRlRW50cnkBCQEBUgAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZgEDcHV0AgJjawJlRwMJAGYCAAAFAmNrCQACAQIgSW52YWxpZCBzbGlwcGFnZVRvbGVyYW5jZSBwYXNzZWQEAmRsCQECZGkDBQJkZgUCY2sGBAJjTQgFAmRsAl8yBAJiUggFAmRsAl83BAJjaQgFAmRsAl85BAJjTggFAmRsA18xMAQCY08IBQJkbANfMTEEAmVICAUCZGwDXzEyBAJlSQgFAmRsA18xMwQCZG8JAPwHBAUCYUQCBGVtaXQJAMwIAgUCY00FA25pbAUDbmlsAwkAAAIFAmRvBQJkbwQCZHAEAmRxBQJkbwMJAAECBQJkcQIHQWRkcmVzcwQCZHIFAmRxCQD8BwQFAmRyAgRlbWl0CQDMCAIFAmNNBQNuaWwFA25pbAUEdW5pdAMJAAACBQJkcAUCZHAEAmVKAwkAZgIFAmNOAAAJAPwHBAUCYmECA3B1dAUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQJlSAUCY04FA25pbAUDbmlsAwkAAAIFAmVKBQJlSgQCZUsDCQBmAgUCY08AAAkA/AcEBQJiYQIDcHV0BQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmVJBQJjTwUDbmlsBQNuaWwDCQAAAgUCZUsFAmVLBAJlTAMFAmVHBAJlTQkA/AcEBQJhWgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlIFAmNNBQNuaWwDCQAAAgUCZU0FAmVNBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRmBmNhbGxlcgUCY00FAmJSBQNuaWwJAM4IAgUCY2kFAmVMCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRmAQpwdXRGb3JGcmVlAQJlTgMJAGYCAAAFAmVOCQACAQIUSW52YWxpZCB2YWx1ZSBwYXNzZWQEAmRsCQECZGkDBQJkZgUCZU4HCAUCZGwCXzkCZGYBCXB1dE9uZVRrbgICZU8CZVAEAmVRCgACZVIJAPwHBAUCYUQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJlUgIHQm9vbGVhbgUCZVIJAAIBCQCsAgIJAAMBBQJlUgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZVMDAwMJAQJhRgAGCQAAAgUCYVMFAWwGCQAAAgUCYVMFAW4GBQJlUQQCZWQJAMwIAgMJAQEhAQUCZVMGCQECYUIBAiFwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQgYnkgYWRtaW4JAMwIAgMJAAACCQCQAwEIBQJkZghwYXltZW50cwABBgkBAmFCAQIeZXhhY3RseSAxIHBheW1lbnQgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWQFAmVkBAJlVAkAkQMCCAUCZGYIcGF5bWVudHMAAAQCZHcIBQJlVAdhc3NldElkBAJkdggFAmVUBmFtb3VudAQBWAgFAmRmBmNhbGxlcgQBWQgFAmRmDXRyYW5zYWN0aW9uSWQEAmVVCQECZHUEBQJkdgUCZHcFAVgFAVkEAmVWCAUCZVUCXzEEAmNQCAUCZVUCXzIEAmR0CAUCZVUCXzMEAmVXCAUCZVUCXzQEAmVYAwMJAGYCBQJlTwAACQBmAgUCZU8FAmVWBwkBAmFCAQkAuQkCCQDMCAICH2Ftb3VudCB0byByZWNlaXZlIGlzIGxlc3MgdGhhbiAJAMwIAgkApAMBBQJlTwUDbmlsAgAFAmVWBAJkbwkBAmRtAQUCZVgDCQAAAgUCZG8FAmRvBAJlTAMFAmVQBAJlWQkA/AcEBQJhWgIFc3Rha2UFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVQFAmVYBQNuaWwDCQAAAgUCZVkFAmVZBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRmBmNhbGxlcgUCZVgFAmFUBQNuaWwEAmVaAwkAZgIFAmR0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUUFAmR0BQJkdwUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNQBQJlTAUCZVoFAmVYCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRmARFwdXRPbmVUa25SRUFET05MWQICZHcCZHYEAmZhCQECZHUEBQJkdgkBAmFLAQUCZHcFBHVuaXQFBHVuaXQEAmVWCAUCZmECXzEEAmNQCAUCZmECXzIEAmR0CAUCZmECXzMEAmVXCAUCZmECXzQJAJQKAgUDbmlsCQCVCgMFAmVWBQJkdAUCZVcCZGYBCWdldE9uZVRrbgICZmICZU8EAmVRCgACZVIJAPwHBAUCYUQCKGlzUG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkUkVBRE9OTFkJAMwIAgkApQgBBQR0aGlzBQNuaWwFA25pbAMJAAECBQJlUgIHQm9vbGVhbgUCZVIJAAIBCQCsAgIJAAMBBQJlUgIcIGNvdWxkbid0IGJlIGNhc3QgdG8gQm9vbGVhbgQCZmMDAwkBAmFGAAYJAAACBQJhUwUBbgYFAmVRBAJlZAkAzAgCAwkBASEBBQJmYwYJAQJhQgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRmCHBheW1lbnRzAAEGCQECYUIBAh5leGFjdGx5IDEgcGF5bWVudCBhcmUgZXhwZWN0ZWQFA25pbAMJAAACBQJlZAUCZWQEAmVjCQECYUsBBQJmYgQCZVQJAJEDAggFAmRmCHBheW1lbnRzAAAEAmR3CAUCZVQHYXNzZXRJZAQCZEsIBQJlVAZhbW91bnQEAVgIBQJkZgZjYWxsZXIEAVkIBQJkZg10cmFuc2FjdGlvbklkBAJmZAkBAmViBQUCZWMFAmRLBQJkdwUBWAUBWQQCZmUIBQJmZAJfMQQCY1AIBQJmZAJfMgQCZHQIBQJmZAJfMwQCZVcIBQJmZAJfNAQCZG4DAwkAZgIFAmVPAAAJAGYCBQJlTwUCZmUHCQECYUIBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmVPBQNuaWwCAAUCZmUEAmZmCQD8BwQFAmFEAgRidXJuCQDMCAIFAmRLBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmR3BQJkSwUDbmlsAwkAAAIFAmZmBQJmZgQCZmcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUBWAUCZG4FAmVjBQNuaWwEAmVaAwkAZgIFAmR0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUUFAmR0BQJlYwUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNQBQJmZwUCZVoFAmRuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRmARFnZXRPbmVUa25SRUFET05MWQICZWMCZEsEAmZoCQECZWIFCQECYUsBBQJlYwUCZEsFAmFUBQR1bml0BQR1bml0BAJmZQgFAmZoAl8xBAJjUAgFAmZoAl8yBAJkdAgFAmZoAl8zBAJlVwgFAmZoAl80CQCUCgIFA25pbAkAlQoDBQJmZQUCZHQFAmVXAmRmARN1bnN0YWtlQW5kR2V0T25lVGtuAwJmaQJmYgJlTwQCZVEKAAJlUgkA/AcEBQJhRAIoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAQIFAmVSAgdCb29sZWFuBQJlUgkAAgEJAKwCAgkAAwEFAmVSAhwgY291bGRuJ3QgYmUgY2FzdCB0byBCb29sZWFuBAJmYwMDCQECYUYABgkAAAIFAmFTBQFuBgUCZVEEAmVkCQDMCAIDCQEBIQEFAmZjBgkBAmFCAQIhZ2V0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluCQDMCAIDCQAAAgkAkAMBCAUCZGYIcGF5bWVudHMAAAYJAQJhQgECGG5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAUDbmlsAwkAAAIFAmVkBQJlZAQCZWMJAQJhSwEFAmZiBAFYCAUCZGYGY2FsbGVyBAFZCAUCZGYNdHJhbnNhY3Rpb25JZAQCZmoJAPwHBAUCYVoCB3Vuc3Rha2UJAMwIAgkA2AQBBQJhVAkAzAgCBQJmaQUDbmlsBQNuaWwDCQAAAgUCZmoFAmZqBAJmawkBAmViBQUCZWMFAmZpBQJhVAUBWAUBWQQCZmUIBQJmawJfMQQCY1AIBQJmawJfMgQCZHQIBQJmawJfMwQCZVcIBQJmawJfNAQCZG4DAwkAZgIFAmVPAAAJAGYCBQJlTwUCZmUHCQECYUIBCQC5CQIJAMwIAgIfYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmVPBQNuaWwCAAUCZmUEAmZmCQD8BwQFAmFEAgRidXJuCQDMCAIFAmZpBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmFUBQJmaQUDbmlsAwkAAAIFAmZmBQJmZgQCZmcJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmRmBmNhbGxlcgUCZG4FAmVjBQNuaWwEAmVaAwkAZgIFAmR0AAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYUUFAmR0BQJlYwUDbmlsBQNuaWwJAJQKAgkAzggCCQDOCAIFAmNQBQJmZwUCZVoFAmRuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmRmAQNnZXQABAJjQQkBAmRlAQUCZGYEAmZsCAUCY0ECXzEEAmNoCAUCY0ECXzIEAmRoCAUCY0ECXzMEAmJQCAUCY0ECXzQEAmNpCAUCY0ECXzUEAmZtCQD8BwQFAmFEAgRidXJuCQDMCAIFAmRoBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJQBQJkaAUDbmlsAwkAAAIFAmZtBQJmbQUCY2kJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGYBCWdldE5vTGVzcwICZm4CZm8EAmNBCQECZGUBBQJkZgQCY2cIBQJjQQJfMQQCY2gIBQJjQQJfMgQCZGgIBQJjQQJfMwQCYlAIBQJjQQJfNAQCY2kIBQJjQQJfNQMJAGYCBQJmbgUCY2cJAAIBCQCsAgIJAKwCAgkArAICAhxub0xlc3NUaGVuQW10QXNzZXQgZmFpbGVkOiAgCQCkAwEFAmNnAgMgPCAJAKQDAQUCZm4DCQBmAgUCZm8FAmNoCQACAQkArAICCQCsAgIJAKwCAgIdbm9MZXNzVGhlblByaWNlQXNzZXQgZmFpbGVkOiAJAKQDAQUCY2gCAyA8IAkApAMBBQJmbwQCZm0JAPwHBAUCYUQCBGJ1cm4JAMwIAgUCZGgFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYlAFAmRoBQNuaWwDCQAAAgUCZm0FAmZtBQJjaQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZgENdW5zdGFrZUFuZEdldAECZG4EAmZwAwkBAiE9AgkAkAMBCAUCZGYIcGF5bWVudHMAAAkAAgECGE5vIHBheW1lbnRzIGFyZSBleHBlY3RlZAYDCQAAAgUCZnAFAmZwBAJiRQkBAmFIAAQCYlIJANkEAQkAkQMCBQJiRQUBcQQCZmoJAPwHBAUCYVoCB3Vuc3Rha2UJAMwIAgkA2AQBBQJiUgkAzAgCBQJkbgUDbmlsBQNuaWwDCQAAAgUCZmoFAmZqBAJjQQkBAmJOBAkA2AQBCAUCZGYNdHJhbnNhY3Rpb25JZAkA2AQBBQJiUgUCZG4IBQJkZgZjYWxsZXIEAmJVCQENcGFyc2VJbnRWYWx1ZQEIBQJjQQJfOQQCY2kIBQJjQQNfMTAEAmZxAwMJAQJhRgAGCQAAAgUCYlUFAW4JAAIBCQCsAgICLEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQCkAwEFAmJVBgMJAAACBQJmcQUCZnEEAmZtCQD8BwQFAmFEAgRidXJuCQDMCAIFAmRuBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFAmJSBQJkbgUDbmlsAwkAAAIFAmZtBQJmbQUCY2kJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CZGYBE3Vuc3Rha2VBbmRHZXROb0xlc3MDAmZpAmZyAmZvBAJmYwMJAQJhRgAGCQAAAgUCYVMFAW4EAmVkCQDMCAIDCQEBIQEFAmZjBgkAAgECIWdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbgkAzAgCAwkAAAIJAJADAQgFAmRmCHBheW1lbnRzAAAGCQACAQIYbm8gcGF5bWVudHMgYXJlIGV4cGVjdGVkBQNuaWwDCQAAAgUCZWQFAmVkBAJmagkA/AcEBQJhWgIHdW5zdGFrZQkAzAgCCQDYBAEFAmFUCQDMCAIFAmZpBQNuaWwFA25pbAMJAAACBQJmagUCZmoEAmNBCQECYk4ECQDYBAEIBQJkZg10cmFuc2FjdGlvbklkCQDYBAEFAmFUBQJmaQgFAmRmBmNhbGxlcgQCY2cIBQJjQQJfMQQCY2gIBQJjQQJfMgQCY2kIBQJjQQNfMTAEAmZzCQDMCAIDCQBnAgUCY2cFAmZyBgkAAgEJALkJAgkAzAgCAixhbW91bnQgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZyBQNuaWwCAAkAzAgCAwkAZwIFAmNoBQJmbwYJAAIBCQC5CQIJAMwIAgIrcHJpY2UgYXNzZXQgYW1vdW50IHRvIHJlY2VpdmUgaXMgbGVzcyB0aGFuIAkAzAgCCQCkAwEFAmZvBQNuaWwCAAUDbmlsAwkAAAIFAmZzBQJmcwQCZm0JAPwHBAUCYUQCBGJ1cm4JAMwIAgUCZmkFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUCYVQFAmZpBQNuaWwDCQAAAgUCZm0FAmZtBQJjaQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJkZgEIYWN0aXZhdGUCAmZ0AmZ1AwkBAiE9AgkApQgBCAUCZGYGY2FsbGVyCQClCAEFAmFECQACAQIScGVybWlzc2lvbnMgZGVuaWVkCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAAUCZnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAAUCZnUFA25pbAIHc3VjY2VzcwJkZgEcZ2V0UG9vbENvbmZpZ1dyYXBwZXJSRUFET05MWQAJAJQKAgUDbmlsCQECYUgAAmRmARxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZAQJicgkAlAoCBQNuaWwJAQJicQEFAmJyAmRmARljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZAwJieQJiegJiRAQCYk0JAQJiQwMFAmJ5BQJiegUCYkQJAJQKAgUDbmlsCQDMCAIJAKYDAQkAkQMCBQJiTQAACQDMCAIJAKYDAQkAkQMCBQJiTQABCQDMCAIJAKYDAQkAkQMCBQJiTQACBQNuaWwCZGYBFHRvWDE4V3JhcHBlclJFQURPTkxZAgFFAUYJAJQKAgUDbmlsCQCmAwEJAQFEAgUBRQUBRgJkZgEWZnJvbVgxOFdyYXBwZXJSRUFET05MWQIBSAFJCQCUCgIFA25pbAkBAUcCCQCnAwEFAUgFAUkCZGYBHmNhbGNQcmljZUJpZ0ludFdyYXBwZXJSRUFET05MWQICYnQCYnUJAJQKAgUDbmlsCQCmAwEJAQJicwIJAKcDAQUCYnQJAKcDAQUCYnUCZGYBI2VzdGltYXRlUHV0T3BlcmF0aW9uV3JhcHBlclJFQURPTkxZCQJiTwJjawJjbAJjbQJjbgJjbwFYAmNwAmNxCQCUCgIFA25pbAkBAmNqCQUCYk8FAmNrBQJjbAUCY20FAmNuBQJjbwUBWAUCY3AFAmNxAmRmASNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQQCYk8CYlACYlEBWAQCY0EJAQJiTgQFAmJPBQJiUAUCYlEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVgJAJQKAgUDbmlsCQCcCgoIBQJjQQJfMQgFAmNBAl8yCAUCY0ECXzMIBQJjQQJfNAgFAmNBAl81CAUCY0ECXzYIBQJjQQJfNwkApgMBCAUCY0ECXzgIBQJjQQJfOQgFAmNBA18xMAJkZgENc3RhdHNSRUFET05MWQAEAmJFCQECYUgABAJiUgkA2QQBCQCRAwIFAmJFBQFxBAJjUwkAkQMCBQJiRQUBcgQCY1QJAJEDAgUCYkUFAXMEAmN0CQCRAwIFAmJFBQF2BAJjdQkAkQMCBQJiRQUBdwQCYkYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRQUBdAQCYkcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiRQUBdQQCZnYICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlIJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjVQkBAmJxAQUCY1MEAmNWCQECYnEBBQJjVAQCZncDCQAAAgUCZnYAAAkAzAgCBQFlCQDMCAIFAWUJAMwIAgUBZQUDbmlsCQECYkMDBQJjVQUCY1YFAmZ2BAJjYgAABAJmeAkBAUcCCQCRAwIFAmZ3AAEFAWIEAmZ5CQEBRwIJAJEDAgUCZncAAgUBYgQCZnoJAQV2YWx1ZQEJAJoIAgUCYUQJAQJhcAEJAKUIAQUEdGhpcwkAlAoCBQNuaWwJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEFAmNVCQDMCAIJAKQDAQUCY1YJAMwIAgkApAMBBQJmdgkAzAgCCQCkAwEFAmNiCQDMCAIJAKQDAQUCZngJAMwIAgkApAMBBQJmeQkAzAgCCQCkAwEFAmZ6BQNuaWwFAWoCZGYBIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAQJjbAQCYkUJAQJhSAAEAmJSCQDZBAEJAJEDAgUCYkUFAXEEAmNyCQCRAwIFAmJFBQFyBAJiUwkA2QQBBQJjcgQCY3MJAJEDAgUCYkUFAXMEAmJUCQDZBAEFAmNzBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQF0BAJiRwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQF1BAJiVQkAkQMCBQJiRQUBcAQCZnYICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlIJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJjVQkBAmJxAQUCY3IEAmNWCQECYnEBBQJjcwQCYkEJAQFEAgUCY1UFAmJGBAJiQgkBAUQCBQJjVgUCYkcEAmNhAwkAAAIFAmZ2AAAFAWUJAQJicwIFAmJCBQJiQQQCY3gJAQFEAgUCY2wFAmJGBAJjeQkAvAIDBQJjeAUCY2EFAWQEAmNuCQEBRwIFAmN5BQJiRwQCZGwJAQJjagkCAACgwh4FAmNsBQJiUwUCY24FAmJUAgAGBwQCY0kIBQJkbAJfMQQCZkEIBQJkbAJfMwQCYlcIBQJkbAJfNAQCYlkIBQJkbAJfNQQCYlYIBQJkbAJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY0kJAMwIAgkApAMBCQEBRwIFAmNhBQFiCQDMCAIJAKQDAQUCYlcJAMwIAgkApAMBBQJiWQkAzAgCCQCkAwEFAmJWCQDMCAIFAmJVCQDMCAIJAKQDAQUCY2wJAMwIAgkApAMBBQJjbgUDbmlsBQFqAmRmAR9ldmFsdWF0ZVB1dEJ5UHJpY2VBc3NldFJFQURPTkxZAQJjbgQCYkUJAQJhSAAEAmJSCQDZBAEJAJEDAgUCYkUFAXEEAmNyCQCRAwIFAmJFBQFyBAJiUwkA2QQBBQJjcgQCY3MJAJEDAgUCYkUFAXMEAmJUCQDZBAEFAmNzBAJiRgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQF0BAJiRwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJFBQF1BAJiVQkAkQMCBQJiRQUBcAQCZnYICQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQUCYlIJAKwCAgkArAICAgZBc3NldCAJANgEAQUCYlICDiBkb2Vzbid0IGV4aXN0CHF1YW50aXR5BAJmQgkBAmJxAQUCY3IEAmZDCQECYnEBBQJjcwQCZkQJAQFEAgUCZkIFAmJGBAJmRQkBAUQCBQJmQwUCYkcEAmNhAwkAAAIFAmZ2AAAFAWUJAQJicwIFAmZFBQJmRAQCY3kJAQFEAgUCY24FAmJHBAJjeAkAvAIDBQJjeQUBZAUCY2EEAmNsCQEBRwIFAmN4BQJiRgQCZGwJAQJjagkCAACgwh4FAmNsBQJiUwUCY24FAmJUAgAGBwQCY0kIBQJkbAJfMQQCZkEIBQJkbAJfMwQCYlcIBQJkbAJfNAQCYlkIBQJkbAJfNQQCYlYIBQJkbAJfNgkAlAoCBQNuaWwJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQUCY0kJAMwIAgkApAMBCQEBRwIFAmNhBQFiCQDMCAIJAKQDAQUCYlcJAMwIAgkApAMBBQJiWQkAzAgCCQCkAwEFAmJWCQDMCAIFAmJVCQDMCAIJAKQDAQUCY2wJAMwIAgkApAMBBQJjbgUDbmlsBQFqAmRmARNldmFsdWF0ZUdldFJFQURPTkxZAgJmRgJmRwQCY0EJAQJiTgQCAAUCZkYFAmZHBQR0aGlzBAJjZwgFAmNBAl8xBAJjaAgFAmNBAl8yBAJiVwgFAmNBAl81BAJiWQgFAmNBAl82BAJiVggFAmNBAl83BAJjYggFAmNBAl84BAJiVQkBDXBhcnNlSW50VmFsdWUBCAUCY0ECXzkJAJQKAgUDbmlsCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBBQJjZwkAzAgCCQCkAwEFAmNoCQDMCAIJAKQDAQUCYlcJAMwIAgkApAMBBQJiWQkAzAgCCQCkAwEFAmJWCQDMCAIJAKYDAQUCY2IJAMwIAgkApAMBBQJiVQUDbmlsBQFqAQJmSAECZkkABAJmSgQCZHEJAQJldQADCQABAgUCZHECCkJ5dGVWZWN0b3IEAmV6BQJkcQUCZXoDCQABAgUCZHECBFVuaXQIBQJmSA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgQCZHEFAmZIAwkAAQIFAmRxAgVPcmRlcgQCY1IFAmRxBAJmSwkBAmFHAAQCYXUJAQJjUQEFAmNSBAJhdgkA9AMDCAUCY1IJYm9keUJ5dGVzCQCRAwIIBQJjUgZwcm9vZnMAAAgFAmNSD3NlbmRlclB1YmxpY0tleQQCYXcJAPQDAwgFAmNSCWJvZHlCeXRlcwkAkQMCCAUCY1IGcHJvb2ZzAAEFAmZLAwMDBQJhdQUCYXYHBQJhdwcGCQECYXQDBQJhdQUCYXYFAmF3AwkAAQIFAmRxAhRTZXRTY3JpcHRUcmFuc2FjdGlvbgQCZXYFAmRxBAJmTAkA9gMBCQEFdmFsdWUBCAUCZXYGc2NyaXB0BAJmTQkA2wQBCQEFdmFsdWUBCQCdCAIFAmFECQECYXIABAJmTgkA8QcBBQR0aGlzAwMJAAACBQJmTQUCZkwJAQIhPQIFAmZOBQJmTAcGCQD0AwMIBQJmSAlib2R5Qnl0ZXMJAJEDAggFAmZIBnByb29mcwAABQJmSgkA9AMDCAUCZkgJYm9keUJ5dGVzCQCRAwIIBQJmSAZwcm9vZnMAAAUCZkrGvHs8", "chainId": 84, "height": 2309307, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6bJbMgMe4bggRLTsdgmGLbhA3JiWSJymCCrMmqUqFZxG Next: Gk8NWJHDeYhfHBe9EZAGDxunyQp2WepRWGz8GAqpMfwi Diff:
OldNewDifferences
5959
6060 let C = 7
6161
62-let D = 1
63-
64-let E = 1
65-
66-func F (G,H) = fraction(toBigInt(G), d, toBigInt(H))
62+func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6763
6864
69-func I (J,K) = toInt(fraction(J, toBigInt(K), d))
65+func G (H,I) = toInt(fraction(H, toBigInt(I), d))
7066
7167
72-func L (M,N,O) = fraction(M, N, O)
68+func J (K,L,M) = fraction(K, L, M)
7369
7470
75-func P (J) = if ((0 > J))
76- then -(J)
77- else J
71+func N (H) = if ((0 > H))
72+ then -(H)
73+ else H
7874
7975
80-func Q (J) = if ((e > J))
81- then -(J)
82- else J
76+func O (H) = if ((e > H))
77+ then -(H)
78+ else H
8379
8480
85-func R () = "%s__factoryContract"
81+func P () = "%s__factoryContract"
8682
8783
88-func S () = "%s__managerPublicKey"
84+func Q () = "%s__managerPublicKey"
8985
9086
91-func T () = "%s__pendingManagerPublicKey"
87+func R () = "%s__pendingManagerPublicKey"
9288
9389
94-func U () = "%s%s__price__last"
90+func S () = "%s%s__price__last"
9591
9692
97-func V (W,X) = makeString(["%s%s%d%d__price__history", toString(W), toString(X)], j)
93+func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
9894
9995
100-func Y (Z,aa) = ((("%s%s%s__P__" + Z) + "__") + aa)
96+func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
10197
10298
103-func ab (Z,aa) = ((("%s%s%s__G__" + Z) + "__") + aa)
99+func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
104100
105101
106-func ac () = "%s__amountAsset"
102+func aa () = "%s__amountAsset"
107103
108104
109-func ad () = "%s__priceAsset"
105+func ab () = "%s__priceAsset"
110106
111107
112-let ae = "%s__fee"
108+let ac = "%s__fee"
113109
114-let af = fraction(10, b, 10000)
110+let ad = fraction(10, b, 10000)
115111
116-let ag = valueOrElse(getInteger(this, ae), af)
112+let ae = valueOrElse(getInteger(this, ac), ad)
117113
118-func ah () = "%s__factoryConfig"
114+func af () = "%s__factoryConfig"
119115
120116
121-func ai () = "%s%s__matcher__publicKey"
117+func ag () = "%s%s__matcher__publicKey"
122118
123119
124-func aj (ak) = (("%s%s%s__" + ak) + "__mappings__poolContract2LpAsset")
120+func ah (ai) = (("%s%s%s__" + ai) + "__mappings__poolContract2LpAsset")
125121
126122
127-func al (am,an) = (((("%d%d%s__" + am) + "__") + an) + "__config")
123+func aj (ak,al) = (((("%d%d%s__" + ak) + "__") + al) + "__config")
128124
129125
130-func ao (ap) = ("%s%s%s__mappings__baseAsset2internalId__" + ap)
126+func am (an) = ("%s%s%s__mappings__baseAsset2internalId__" + an)
131127
132128
133-func aq () = "%s__shutdown"
129+func ao () = "%s__shutdown"
134130
135131
136-func ar (as) = ("%s%s__poolWeight__" + as)
132+func ap (aq) = ("%s%s__poolWeight__" + aq)
137133
138134
139-func at () = "%s__allowedLpScriptHash"
135+func ar () = "%s__allowedLpScriptHash"
140136
141137
142-let au = "%s__feeCollectorAddress"
138+let as = "%s__feeCollectorAddress"
143139
144-func av (aw,ax,ay) = throw(((((("order validation failed: orderValid=" + toString(aw)) + " senderValid=") + toString(ax)) + " matcherValid=") + toString(ay)))
140+func at (au,av,aw) = throw(((((("order validation failed: orderValid=" + toString(au)) + " senderValid=") + toString(av)) + " matcherValid=") + toString(aw)))
145141
146142
147-func az (aA,aB) = valueOrErrorMessage(getString(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
143+func ax (ay,az) = valueOrErrorMessage(getString(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
148144
149145
150-func aC (aA,aB) = valueOrErrorMessage(getInteger(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
146+func aA (ay,az) = valueOrErrorMessage(getInteger(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
151147
152148
153-func aD (aE) = throw(makeString(["lp.ride:", aE], " "))
149+func aB (aC) = throw(makeString(["lp.ride:", aC], " "))
154150
155151
156-let aF = addressFromStringValue(az(this, R()))
152+let aD = addressFromStringValue(ax(this, P()))
157153
158-let aG = addressFromStringValue(az(aF, au))
154+let aE = addressFromStringValue(ax(aD, as))
159155
160-func aH () = valueOrElse(getBoolean(aF, aq()), false)
156+func aF () = valueOrElse(getBoolean(aD, ao()), false)
161157
162158
163-func aI () = fromBase58String(az(aF, ai()))
159+func aG () = fromBase58String(ax(aD, ag()))
164160
165161
166-func aJ () = {
167- let aK = az(this, ac())
168- let aL = az(this, ad())
169- let an = aC(aF, ao(aL))
170- let am = aC(aF, ao(aK))
171- split(az(aF, al(toString(am), toString(an))), j)
162+func aH () = {
163+ let aI = ax(this, aa())
164+ let aJ = ax(this, ab())
165+ let al = aA(aD, am(aJ))
166+ let ak = aA(aD, am(aI))
167+ split(ax(aD, aj(toString(ak), toString(al))), j)
172168 }
173169
174170
175-func aM (aN) = if ((aN == i))
171+func aK (aL) = if ((aL == i))
176172 then unit
177- else fromBase58String(aN)
173+ else fromBase58String(aL)
178174
179175
180-func aO (aN) = if ((aN == unit))
176+func aM (aL) = if ((aL == unit))
181177 then i
182- else toBase58String(value(aN))
178+ else toBase58String(value(aL))
183179
184180
185-func aP (aQ) = $Tuple7(addressFromStringValue(aQ[o]), parseIntValue(aQ[p]), fromBase58String(aQ[q]), aM(aQ[r]), aM(aQ[s]), parseIntValue(aQ[t]), parseIntValue(aQ[u]))
181+func aN (aO) = $Tuple7(addressFromStringValue(aO[o]), parseIntValue(aO[p]), fromBase58String(aO[q]), aK(aO[r]), aK(aO[s]), parseIntValue(aO[t]), parseIntValue(aO[u]))
186182
187183
188-let aR = aP(aJ())
184+let aP = aN(aH())
189185
190-let aS = aR
186+let aQ = aP
191187
192-let aT = aS._1
188+let aR = aQ._1
193189
194-let aU = aS._2
190+let aS = aQ._2
195191
196-let aV = aS._3
192+let aT = aQ._3
197193
198-let aW = aS._4
194+let aU = aQ._4
199195
200-let aX = aS._5
196+let aV = aQ._5
201197
202-let aY = aS._6
198+let aW = aQ._6
203199
204-let aZ = aS._7
200+let aX = aQ._7
205201
206-func ba () = split(az(aF, ah()), j)
202+func aY () = split(ax(aD, af()), j)
207203
208204
209-let bb = valueOrErrorMessage(addressFromString(ba()[B]), "incorrect staking address")
205+let aZ = valueOrErrorMessage(addressFromString(aY()[B]), "incorrect staking address")
210206
211-let bc = valueOrErrorMessage(addressFromString(ba()[C]), "incorrect staking address")
207+let ba = valueOrErrorMessage(addressFromString(aY()[C]), "incorrect staking address")
212208
213-func bd (be,bf,bg,bh,bi,bj,bk,bl,bm,bn) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn)], j)
209+func bb (bc,bd,be,bf,bg,bh,bi,bj,bk,bl) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl)], j)
214210
215211
216-func bo (bp,bq,br,bh,bk,bl) = makeString(["%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bh), toString(bk), toString(bl)], j)
212+func bm (bn,bo,bp,bf,bi,bj) = makeString(["%d%d%d%d%d%d", toString(bn), toString(bo), toString(bp), toString(bf), toString(bi), toString(bj)], j)
217213
218214
219-func bs (bt) = if ((bt == "WAVES"))
215+func bq (br) = if ((br == "WAVES"))
220216 then wavesBalance(this).available
221- else assetBalance(this, fromBase58String(bt))
217+ else assetBalance(this, fromBase58String(br))
222218
223219
224-func bu (bv,bw) = fraction(bv, d, bw)
220+func bs (bt,bu) = fraction(bt, d, bu)
225221
226222
227-func bx (by,bz,bA,bB) = {
228- let bC = F(bA, by)
229- let bD = F(bB, bz)
230- bu(bD, bC)
223+func bv (bw,bx,by,bz) = {
224+ let bA = D(by, bw)
225+ let bB = D(bz, bx)
226+ bs(bB, bA)
231227 }
232228
233229
234-func bE (bA,bB,bF) = {
235- let bG = aJ()
236- let bH = parseIntValue(bG[t])
237- let bI = parseIntValue(bG[u])
238- let bJ = bx(bH, bI, bA, bB)
239- let bw = F(bA, bH)
240- let bv = F(bB, bI)
241- let bK = F(bF, b)
242- let bL = bu(bw, bK)
243- let bM = bu(bv, bK)
244-[bJ, bL, bM]
230+func bC (by,bz,bD) = {
231+ let bE = aH()
232+ let bF = parseIntValue(bE[t])
233+ let bG = parseIntValue(bE[u])
234+ let bH = bv(bF, bG, by, bz)
235+ let bu = D(by, bF)
236+ let bt = D(bz, bG)
237+ let bI = D(bD, b)
238+ let bJ = bs(bu, bI)
239+ let bK = bs(bt, bI)
240+[bH, bJ, bK]
245241 }
246242
247243
248-func bN (bA,bB,bF) = {
249- let bO = bE(bA, bB, bF)
250-[I(bO[0], b), I(bO[1], b), I(bO[2], b)]
244+func bL (by,bz,bD) = {
245+ let bM = bC(by, bz, bD)
246+[G(bM[0], b), G(bM[1], b), G(bM[2], b)]
251247 }
252248
253249
254-func bP (bQ,bR,bS,Z) = {
255- let bG = aJ()
256- let bT = bG[q]
257- let bU = bG[r]
258- let bV = bG[s]
259- let by = parseIntValue(bG[t])
260- let bz = parseIntValue(bG[u])
261- let bW = bG[p]
262- let bX = valueOrErrorMessage(assetInfo(fromBase58String(bT)), (("Asset " + bT) + " doesn't exist")).quantity
263- if ((bT != bR))
250+func bN (bO,bP,bQ,X) = {
251+ let bE = aH()
252+ let bR = bE[q]
253+ let bS = bE[r]
254+ let bT = bE[s]
255+ let bw = parseIntValue(bE[t])
256+ let bx = parseIntValue(bE[u])
257+ let bU = bE[p]
258+ let bV = valueOrErrorMessage(assetInfo(fromBase58String(bR)), (("Asset " + bR) + " doesn't exist")).quantity
259+ if ((bR != bP))
264260 then throw("Invalid asset passed.")
265261 else {
266- let bY = bs(bU)
267- let bZ = F(bY, by)
268- let ca = bs(bV)
269- let cb = F(ca, bz)
270- let cc = bu(cb, bZ)
271- let cd = I(cc, b)
272- let ce = F(bS, b)
273- let cf = F(bX, b)
274- let cg = fraction(bZ, ce, cf)
275- let ch = fraction(cb, ce, cf)
276- let ci = I(cg, by)
277- let cj = I(ch, bz)
278- let ck = if ((bQ == ""))
262+ let bW = bq(bS)
263+ let bX = D(bW, bw)
264+ let bY = bq(bT)
265+ let bZ = D(bY, bx)
266+ let ca = bs(bZ, bX)
267+ let cb = G(ca, b)
268+ let cc = D(bQ, b)
269+ let cd = D(bV, b)
270+ let ce = fraction(bX, cc, cd)
271+ let cf = fraction(bZ, cc, cd)
272+ let cg = G(ce, bw)
273+ let ch = G(cf, bx)
274+ let ci = if ((bO == ""))
279275 then nil
280- else [ScriptTransfer(Z, ci, if ((bU == "WAVES"))
276+ else [ScriptTransfer(X, cg, if ((bS == "WAVES"))
281277 then unit
282- else fromBase58String(bU)), ScriptTransfer(Z, cj, if ((bV == "WAVES"))
278+ else fromBase58String(bS)), ScriptTransfer(X, ch, if ((bT == "WAVES"))
283279 then unit
284- else fromBase58String(bV)), StringEntry(ab(toString(Z), bQ), bo(ci, cj, bS, cd, height, lastBlock.timestamp)), IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd)]
285- $Tuple10(ci, cj, bU, bV, bY, ca, bX, cc, bW, ck)
280+ else fromBase58String(bT)), StringEntry(Z(toString(X), bO), bm(cg, ch, bQ, cb, height, lastBlock.timestamp)), IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb)]
281+ $Tuple10(cg, ch, bS, bT, bW, bY, bV, ca, bU, ci)
286282 }
287283 }
288284
289285
290-func cl (bQ,cm,cn,co,cp,cq,Z,cr,cs) = {
291- let bG = aJ()
292- let bT = fromBase58String(bG[q])
293- let ct = bG[r]
294- let cu = bG[s]
295- let cv = bG[v]
296- let cw = bG[w]
297- let bH = parseIntValue(bG[t])
298- let bI = parseIntValue(bG[u])
299- let bW = bG[p]
300- let bX = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
301- let cx = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
302- let cy = toBase58String(valueOrElse(cq, fromBase58String("WAVES")))
303- if (if ((ct != cx))
286+func cj (bO,ck,cl,cm,cn,co,X,cp,cq) = {
287+ let bE = aH()
288+ let bR = fromBase58String(bE[q])
289+ let cr = bE[r]
290+ let cs = bE[s]
291+ let ct = bE[v]
292+ let cu = bE[w]
293+ let bF = parseIntValue(bE[t])
294+ let bG = parseIntValue(bE[u])
295+ let bU = bE[p]
296+ let bV = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
297+ let cv = toBase58String(valueOrElse(cm, fromBase58String("WAVES")))
298+ let cw = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
299+ if (if ((cr != cv))
304300 then true
305- else (cu != cy))
301+ else (cs != cw))
306302 then throw("Invalid amt or price asset passed.")
307303 else {
308- let bY = if (cr)
309- then bs(ct)
310- else (bs(ct) - cn)
311- let ca = if (cr)
312- then bs(cu)
313- else (bs(cu) - cp)
314- let cz = F(cn, bH)
315- let cA = F(cp, bI)
316- let cB = bu(cA, cz)
317- let bZ = F(bY, bH)
318- let cb = F(ca, bI)
319- let cC = if ((bX == 0))
304+ let bW = if (cp)
305+ then bq(cr)
306+ else (bq(cr) - cl)
307+ let bY = if (cp)
308+ then bq(cs)
309+ else (bq(cs) - cn)
310+ let cx = D(cl, bF)
311+ let cy = D(cn, bG)
312+ let cz = bs(cy, cx)
313+ let bX = D(bW, bF)
314+ let bZ = D(bY, bG)
315+ let cA = if ((bV == 0))
320316 then {
321- let cc = e
322- let cD = e
323- let bK = pow((cz * cA), 0, toBigInt(5), 1, 0, DOWN)
324- $Tuple5(I(bK, b), I(cz, bH), I(cA, bI), bu((cb + cA), (bZ + cz)), cD)
317+ let ca = e
318+ let cB = e
319+ let bI = pow((cx * cy), 0, toBigInt(5), 1, 0, DOWN)
320+ $Tuple5(G(bI, b), G(cx, bF), G(cy, bG), bs((bZ + cy), (bX + cx)), cB)
325321 }
326322 else {
327- let cc = bu(cb, bZ)
328- let cD = fraction(Q((cc - cB)), d, cc)
329- let cE = F(cm, b)
330- if (if ((cc != e))
331- then (cD > cE)
323+ let ca = bs(bZ, bX)
324+ let cB = fraction(O((ca - cz)), d, ca)
325+ let cC = D(ck, b)
326+ if (if ((ca != e))
327+ then (cB > cC)
332328 else false)
333- then throw(((("Price slippage " + toString(cD)) + " exceeded the passed limit of ") + toString(cE)))
329+ then throw(((("Price slippage " + toString(cB)) + " exceeded the passed limit of ") + toString(cC)))
334330 else {
335- let cf = F(bX, b)
336- let cF = fraction(cz, cc, d)
337- let cG = fraction(cA, d, cc)
338- let cH = if ((cF > cA))
339- then $Tuple2(cG, cA)
340- else $Tuple2(cz, cF)
341- let cI = cH._1
342- let cJ = cH._2
343- let bK = fraction(cf, cJ, cb)
344- $Tuple5(I(bK, b), I(cI, bH), I(cJ, bI), cc, cD)
331+ let cd = D(bV, b)
332+ let cD = fraction(cx, ca, d)
333+ let cE = fraction(cy, d, ca)
334+ let cF = if ((cD > cy))
335+ then $Tuple2(cE, cy)
336+ else $Tuple2(cx, cD)
337+ let cG = cF._1
338+ let cH = cF._2
339+ let bI = fraction(cd, cH, bZ)
340+ $Tuple5(G(bI, b), G(cG, bF), G(cH, bG), ca, cB)
345341 }
346342 }
347- let cK = cC._1
348- let cL = cC._2
349- let cM = cC._3
350- let cd = I(cC._4, b)
351- let cN = I(cC._5, b)
352- if ((0 >= cK))
343+ let cI = cA._1
344+ let cJ = cA._2
345+ let cK = cA._3
346+ let cb = G(cA._4, b)
347+ let cL = G(cA._5, b)
348+ if ((0 >= cI))
353349 then throw("Invalid calculations. LP calculated is less than zero.")
354350 else {
355- let cO = if (!(cs))
351+ let cM = if (!(cq))
356352 then 0
357- else cK
358- let cP = (cn - cL)
359- let cQ = (cp - cM)
360- let cR = [IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd), StringEntry(Y(Z, bQ), bd(cL, cM, cO, cd, cm, cN, height, lastBlock.timestamp, cP, cQ))]
361- $Tuple13(cK, cO, cd, bY, ca, bX, bT, bW, cR, cP, cQ, co, cq)
353+ else cI
354+ let cN = (cl - cJ)
355+ let cO = (cn - cK)
356+ let cP = [IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb), StringEntry(W(X, bO), bb(cJ, cK, cM, cb, ck, cL, height, lastBlock.timestamp, cN, cO))]
357+ $Tuple13(cI, cM, cb, bW, bY, bV, bR, bU, cP, cN, cO, cm, co)
362358 }
363359 }
364360 }
365361
366362
367-func cS (cT) = {
368- let bG = aJ()
369- let cU = bG[r]
370- let cV = bG[s]
371- let bW = parseIntValue(bG[p])
372- let bH = parseIntValue(bG[t])
373- let bI = parseIntValue(bG[u])
374- let cW = bs(cU)
375- let cX = bs(cV)
376- let cc = if ((cT.orderType == Buy))
377- then bx(bH, bI, (cW + cT.amount), cX)
378- else bx(bH, bI, (cW - cT.amount), cX)
379- let cd = I(cc, b)
380- if (if (if (aH())
363+func cQ (cR) = {
364+ let bE = aH()
365+ let cS = bE[r]
366+ let cT = bE[s]
367+ let bU = parseIntValue(bE[p])
368+ let bF = parseIntValue(bE[t])
369+ let bG = parseIntValue(bE[u])
370+ let cU = bq(cS)
371+ let cV = bq(cT)
372+ let ca = if ((cR.orderType == Buy))
373+ then bv(bF, bG, (cU + cR.amount), cV)
374+ else bv(bF, bG, (cU - cR.amount), cV)
375+ let cb = G(ca, b)
376+ if (if (if (aF())
381377 then true
382- else (bW == m))
378+ else (bU == m))
383379 then true
384- else (bW == n))
380+ else (bU == n))
385381 then throw("Exchange operations disabled")
386382 else {
387- let cY = cT.assetPair.amountAsset
383+ let cW = cR.assetPair.amountAsset
384+ let cX = if ((cW == unit))
385+ then "WAVES"
386+ else toBase58String(value(cW))
387+ let cY = cR.assetPair.priceAsset
388388 let cZ = if ((cY == unit))
389389 then "WAVES"
390390 else toBase58String(value(cY))
391- let da = cT.assetPair.priceAsset
392- let db = if ((da == unit))
393- then "WAVES"
394- else toBase58String(value(da))
395- if (if ((cZ != cU))
391+ if (if ((cX != cS))
396392 then true
397- else (db != cV))
393+ else (cZ != cT))
398394 then throw("Wrong order assets.")
399395 else {
400- let dc = cT.price
401- let dd = fraction(b, bI, bH)
402- let de = L(dc, b, dd)
403- let df = if ((cT.orderType == Buy))
404- then (cd >= de)
405- else (de >= cd)
396+ let da = cR.price
397+ let db = fraction(b, bG, bF)
398+ let dc = J(da, b, db)
399+ let dd = if ((cR.orderType == Buy))
400+ then (cb >= dc)
401+ else (dc >= cb)
406402 true
407403 }
408404 }
409405 }
410406
411407
412-func dg (dh) = if ((size(dh.payments) != 1))
408+func de (df) = if ((size(df.payments) != 1))
413409 then throw("exactly 1 payment is expected")
414410 else {
415- let di = value(dh.payments[0])
416- let bR = value(di.assetId)
417- let dj = di.amount
418- let cC = bP(toBase58String(dh.transactionId), toBase58String(bR), dj, dh.caller)
419- let ci = cC._1
420- let cj = cC._2
421- let bW = parseIntValue(cC._9)
422- let ck = cC._10
423- if (if (aH())
411+ let dg = value(df.payments[0])
412+ let bP = value(dg.assetId)
413+ let dh = dg.amount
414+ let cA = bN(toBase58String(df.transactionId), toBase58String(bP), dh, df.caller)
415+ let cg = cA._1
416+ let ch = cA._2
417+ let bU = parseIntValue(cA._9)
418+ let ci = cA._10
419+ if (if (aF())
424420 then true
425- else (bW == n))
426- then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
427- else $Tuple5(ci, cj, dj, bR, ck)
421+ else (bU == n))
422+ then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
423+ else $Tuple5(cg, ch, dh, bP, ci)
428424 }
429425
430426
431-func dk (dh,cm,cs) = if ((size(dh.payments) != 2))
427+func di (df,ck,cq) = if ((size(df.payments) != 2))
432428 then throw("exactly 2 payments are expected")
433429 else {
434- let dl = value(dh.payments[0])
435- let dm = value(dh.payments[1])
436- let dn = cl(toBase58String(dh.transactionId), cm, dl.amount, dl.assetId, dm.amount, dm.assetId, toString(dh.caller), false, cs)
437- let bW = parseIntValue(dn._8)
438- if (if (if (aH())
430+ let dj = value(df.payments[0])
431+ let dk = value(df.payments[1])
432+ let dl = cj(toBase58String(df.transactionId), ck, dj.amount, dj.assetId, dk.amount, dk.assetId, toString(df.caller), false, cq)
433+ let bU = parseIntValue(dl._8)
434+ if (if (if (aF())
439435 then true
440- else (bW == l))
436+ else (bU == l))
441437 then true
442- else (bW == n))
443- then throw(("Put operation is blocked by admin. Status = " + toString(bW)))
444- else dn
438+ else (bU == n))
439+ then throw(("Put operation is blocked by admin. Status = " + toString(bU)))
440+ else dl
445441 }
446442
447443
448-func do (dp) = {
449- let dq = invoke(aF, "emit", [dp], nil)
450- if ((dq == dq))
444+func dm (dn) = {
445+ let do = invoke(aD, "emit", [dn], nil)
446+ if ((do == do))
451447 then {
452- let dr = {
453- let ds = dq
454- if ($isInstanceOf(ds, "Address"))
448+ let dp = {
449+ let dq = do
450+ if ($isInstanceOf(dq, "Address"))
455451 then {
456- let dt = ds
457- invoke(dt, "emit", [dp], nil)
452+ let dr = dq
453+ invoke(dr, "emit", [dn], nil)
458454 }
459455 else unit
460456 }
461- if ((dr == dr))
462- then dp
457+ if ((dp == dp))
458+ then dn
463459 else throw("Strict value is not equal to itself.")
464460 }
465461 else throw("Strict value is not equal to itself.")
466462 }
467463
468464
469-func du (dp) = {
470- let dv = fraction(dp, ag, b)
471- $Tuple2((dp - dv), dv)
465+func ds (dn) = {
466+ let dt = fraction(dn, ae, b)
467+ $Tuple2((dn - dt), dt)
472468 }
473469
474470
475-func dw (dx,dy,Z,aa) = {
476- let dz = (aa == unit)
477- let dA = bs(aO(aW))
478- let dB = bs(aO(aX))
479- let dC = if ((dy == aW))
471+func du (dv,dw,X,Y) = {
472+ let dx = (Y == unit)
473+ let dy = bq(aM(aU))
474+ let dz = bq(aM(aV))
475+ let dA = if ((dw == aU))
480476 then true
481- else if ((dy == aX))
477+ else if ((dw == aV))
482478 then false
483- else aD("invalid asset")
484- let dD = if (dz)
485- then $Tuple2(dA, dB)
486- else if (dC)
487- then $Tuple2((dA - dx), dB)
488- else $Tuple2(dA, (dB - dx))
489- let dE = dD._1
490- let dF = dD._2
491- let dG = if (dC)
492- then $Tuple2(dx, 0)
493- else $Tuple2(0, dx)
494- let dH = dG._1
495- let dI = dG._2
496- let dJ = du(dH)._1
497- let dK = du(dI)._1
498- let dL = du(dx)
499- let dM = dL._1
500- let dv = dL._2
501- let dN = (dE + dJ)
502- let dO = (dF + dK)
503- let dP = bu(F(dO, aZ), F(dN, aY))
504- let dQ = I(dP, b)
505- let dR = if (dC)
506- then dE
507- else dF
508- let dS = toBigInt(dR)
509- let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
510- let dU = if ((dT > f))
479+ else aB("invalid asset")
480+ let dB = if (dx)
481+ then $Tuple2(dy, dz)
482+ else if (dA)
483+ then $Tuple2((dy - dv), dz)
484+ else $Tuple2(dy, (dz - dv))
485+ let dC = dB._1
486+ let dD = dB._2
487+ let dE = if (dA)
488+ then $Tuple2(dv, 0)
489+ else $Tuple2(0, dv)
490+ let dF = dE._1
491+ let dG = dE._2
492+ let dH = ds(dF)._1
493+ let dI = ds(dG)._1
494+ let dJ = ds(dv)
495+ let dK = dJ._1
496+ let dt = dJ._2
497+ let dL = (dC + dH)
498+ let dM = (dD + dI)
499+ let dN = bs(D(dM, aX), D(dL, aW))
500+ let dO = G(dN, b)
501+ let dP = if (dA)
502+ then dC
503+ else dD
504+ let dQ = toBigInt(dP)
505+ let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
506+ let dS = if ((dR > f))
511507 then true
512- else aD("initial deposit requires all coins")
513- if ((dU == dU))
508+ else aB("initial deposit requires all coins")
509+ if ((dS == dS))
514510 then {
515- let dV = toBigInt(dM)
516- let dW = max([0, toInt(((dT * (sqrtBigInt((d + ((dV * d) / dS)), 18, 18, DOWN) - d)) / d))])
517- let cR = if (dz)
511+ let dT = toBigInt(dK)
512+ let dU = max([0, toInt(((dR * (sqrtBigInt((d + ((dT * d) / dQ)), 18, 18, DOWN) - d)) / d))])
513+ let cP = if (dx)
518514 then nil
519- else [IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ), StringEntry(Y(toString(value(Z)), toBase58String(value(aa))), bd(dH, dI, dW, dQ, 0, 0, height, lastBlock.timestamp, 0, 0))]
520- let dX = bu(F(dF, aZ), F(dE, aY))
521- let dY = I(dX, b)
522- let dZ = {
523- let ea = if (dC)
524- then $Tuple2(dH, dE)
525- else $Tuple2(dI, dF)
526- let dp = ea._1
527- let eb = ea._2
528- let ec = toInt(fraction(dT, toBigInt((dp / 2)), toBigInt(eb)))
529- fraction((dW - ec), b, ec)
515+ else [IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bb(dF, dG, dU, dO, 0, 0, height, lastBlock.timestamp, 0, 0))]
516+ let dV = bs(D(dD, aX), D(dC, aW))
517+ let dW = G(dV, b)
518+ let dX = {
519+ let dY = if (dA)
520+ then $Tuple2(dF, dC)
521+ else $Tuple2(dG, dD)
522+ let dn = dY._1
523+ let dZ = dY._2
524+ let ea = toInt(fraction(dR, toBigInt((dn / 2)), toBigInt(dZ)))
525+ fraction((dU - ea), b, ea)
530526 }
531- $Tuple4(dW, cR, dv, dZ)
527+ $Tuple4(dU, cP, dt, dX)
532528 }
533529 else throw("Strict value is not equal to itself.")
534530 }
535531
536532
537-func ed (ee,dM,dy,Z,aa) = {
538- let dz = (aa == unit)
539- let ef = [if ((dy == aV))
533+func eb (ec,dK,dw,X,Y) = {
534+ let dx = (Y == unit)
535+ let ed = [if ((dw == aT))
540536 then true
541- else aD("invalid lp asset")]
542- if ((ef == ef))
537+ else aB("invalid lp asset")]
538+ if ((ed == ed))
543539 then {
544- let eg = if ((ee == aW))
540+ let ee = if ((ec == aU))
545541 then true
546- else if ((ee == aX))
542+ else if ((ec == aV))
547543 then false
548- else aD("invalid asset")
549- let eh = if (eg)
550- then toBigInt(bs(aO(aW)))
551- else toBigInt(bs(aO(aX)))
552- let ei = bs(aO(aW))
553- let ej = bs(aO(aX))
554- let ek = if (eg)
555- then ei
556- else ej
557- let el = toBigInt(ek)
558- let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
559- let em = toBigInt(dM)
560- let en = max([0, toInt(((eh * (d - pow((d - ((em * d) / dT)), 18, h, 0, 18, DOWN))) / d))])
561- let eo = du(en)
544+ else aB("invalid asset")
545+ let ef = if (ee)
546+ then toBigInt(bq(aM(aU)))
547+ else toBigInt(bq(aM(aV)))
548+ let eg = bq(aM(aU))
549+ let eh = bq(aM(aV))
550+ let ei = if (ee)
551+ then eg
552+ else eh
553+ let ej = toBigInt(ei)
554+ let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
555+ let ek = toBigInt(dK)
556+ let el = max([0, toInt(((ef * (d - pow((d - ((ek * d) / dR)), 18, h, 0, 18, DOWN))) / d))])
557+ let em = ds(el)
558+ let en = em._1
559+ let dt = em._2
560+ let eo = if (ee)
561+ then $Tuple4(en, 0, (eg - el), eh)
562+ else $Tuple4(0, en, eg, (eh - el))
562563 let ep = eo._1
563- let dv = eo._2
564- let eq = if (eg)
565- then $Tuple4(ep, 0, (ei - en), ej)
566- else $Tuple4(0, ep, ei, (ej - en))
567- let er = eq._1
568- let es = eq._2
569- let et = eq._3
570- let eu = eq._4
571- let dP = bu(F(eu, aZ), F(et, aY))
572- let dQ = I(dP, b)
573- let cR = if (dz)
564+ let eq = eo._2
565+ let er = eo._3
566+ let es = eo._4
567+ let dN = bs(D(es, aX), D(er, aW))
568+ let dO = G(dN, b)
569+ let cP = if (dx)
574570 then nil
575- else [StringEntry(ab(toString(value(Z)), toBase58String(value(aa))), bo(er, es, dM, dQ, height, lastBlock.timestamp)), IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ)]
576- let dX = bu(F(ej, aZ), F(ei, aY))
577- let dY = I(dX, b)
578- let dZ = {
579- let ev = (toInt(fraction(eh, em, dT)) * 2)
580- fraction((ep - ev), b, ev)
571+ else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bm(ep, eq, dK, dO, height, lastBlock.timestamp)), IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO)]
572+ let dV = bs(D(eh, aX), D(eg, aW))
573+ let dW = G(dV, b)
574+ let dX = {
575+ let et = (toInt(fraction(ef, ek, dR)) * 2)
576+ fraction((en - et), b, et)
581577 }
582- $Tuple4(ep, cR, dv, dZ)
578+ $Tuple4(en, cP, dt, dX)
583579 }
584580 else throw("Strict value is not equal to itself.")
585581 }
586582
587583
588-func ew () = {
589- let ds = getString(S())
590- if ($isInstanceOf(ds, "String"))
584+func eu () = {
585+ let dq = getString(Q())
586+ if ($isInstanceOf(dq, "String"))
591587 then {
592- let ex = ds
593- fromBase58String(ex)
588+ let ev = dq
589+ fromBase58String(ev)
594590 }
595- else if ($isInstanceOf(ds, "Unit"))
591+ else if ($isInstanceOf(dq, "Unit"))
596592 then unit
597593 else throw("Match error")
598594 }
599595
600596
601-func ey () = {
602- let ds = getString(T())
603- if ($isInstanceOf(ds, "String"))
597+func ew () = {
598+ let dq = getString(R())
599+ if ($isInstanceOf(dq, "String"))
604600 then {
605- let ex = ds
606- fromBase58String(ex)
601+ let ev = dq
602+ fromBase58String(ev)
607603 }
608- else if ($isInstanceOf(ds, "Unit"))
604+ else if ($isInstanceOf(dq, "Unit"))
609605 then unit
610606 else throw("Match error")
611607 }
612608
613609
614-func ez (dh) = {
615- let eA = throw("Permission denied")
616- let ds = ew()
617- if ($isInstanceOf(ds, "ByteVector"))
610+func ex (df) = {
611+ let ey = throw("Permission denied")
612+ let dq = eu()
613+ if ($isInstanceOf(dq, "ByteVector"))
618614 then {
619- let eB = ds
620- if ((dh.callerPublicKey == eB))
615+ let ez = dq
616+ if ((df.callerPublicKey == ez))
621617 then true
622- else eA
618+ else ey
623619 }
624- else if ($isInstanceOf(ds, "Unit"))
625- then if ((dh.caller == this))
620+ else if ($isInstanceOf(dq, "Unit"))
621+ then if ((df.caller == this))
626622 then true
627- else eA
623+ else ey
628624 else throw("Match error")
629625 }
630626
631627
632-@Callable(dh)
633-func setManager (eC) = {
634- let eD = ez(dh)
635- if ((eD == eD))
628+@Callable(df)
629+func setManager (eA) = {
630+ let eB = ex(df)
631+ if ((eB == eB))
636632 then {
637- let eE = fromBase58String(eC)
638- if ((eE == eE))
639- then [StringEntry(T(), eC)]
633+ let eC = fromBase58String(eA)
634+ if ((eC == eC))
635+ then [StringEntry(R(), eA)]
640636 else throw("Strict value is not equal to itself.")
641637 }
642638 else throw("Strict value is not equal to itself.")
644640
645641
646642
647-@Callable(dh)
643+@Callable(df)
648644 func confirmManager () = {
649- let eF = ey()
650- let eG = if (isDefined(eF))
645+ let eD = ew()
646+ let eE = if (isDefined(eD))
651647 then true
652648 else throw("No pending manager")
653- if ((eG == eG))
649+ if ((eE == eE))
654650 then {
655- let eH = if ((dh.callerPublicKey == value(eF)))
651+ let eF = if ((df.callerPublicKey == value(eD)))
656652 then true
657653 else throw("You are not pending manager")
658- if ((eH == eH))
659- then [StringEntry(S(), toBase58String(value(eF))), DeleteEntry(T())]
654+ if ((eF == eF))
655+ then [StringEntry(Q(), toBase58String(value(eD))), DeleteEntry(R())]
660656 else throw("Strict value is not equal to itself.")
661657 }
662658 else throw("Strict value is not equal to itself.")
664660
665661
666662
667-@Callable(dh)
668-func put (cm,eI) = if ((0 > cm))
663+@Callable(df)
664+func put (ck,eG) = if ((0 > ck))
669665 then throw("Invalid slippageTolerance passed")
670666 else {
671- let dn = dk(dh, cm, true)
672- let cO = dn._2
673- let bT = dn._7
674- let ck = dn._9
675- let cP = dn._10
676- let cQ = dn._11
677- let eJ = dn._12
678- let eK = dn._13
679- let dq = invoke(aF, "emit", [cO], nil)
680- if ((dq == dq))
667+ let dl = di(df, ck, true)
668+ let cM = dl._2
669+ let bR = dl._7
670+ let ci = dl._9
671+ let cN = dl._10
672+ let cO = dl._11
673+ let eH = dl._12
674+ let eI = dl._13
675+ let do = invoke(aD, "emit", [cM], nil)
676+ if ((do == do))
681677 then {
682- let dr = {
683- let ds = dq
684- if ($isInstanceOf(ds, "Address"))
678+ let dp = {
679+ let dq = do
680+ if ($isInstanceOf(dq, "Address"))
685681 then {
686- let dt = ds
687- invoke(dt, "emit", [cO], nil)
682+ let dr = dq
683+ invoke(dr, "emit", [cM], nil)
688684 }
689685 else unit
690686 }
691- if ((dr == dr))
687+ if ((dp == dp))
692688 then {
693- let eL = if ((cP > 0))
694- then invoke(bc, "put", nil, [AttachedPayment(eJ, cP)])
689+ let eJ = if ((cN > 0))
690+ then invoke(ba, "put", nil, [AttachedPayment(eH, cN)])
695691 else nil
696- if ((eL == eL))
692+ if ((eJ == eJ))
697693 then {
698- let eM = if ((cQ > 0))
699- then invoke(bc, "put", nil, [AttachedPayment(eK, cQ)])
694+ let eK = if ((cO > 0))
695+ then invoke(ba, "put", nil, [AttachedPayment(eI, cO)])
700696 else nil
701- if ((eM == eM))
697+ if ((eK == eK))
702698 then {
703- let eN = if (eI)
699+ let eL = if (eG)
704700 then {
705- let eO = invoke(bb, "stake", nil, [AttachedPayment(bT, cO)])
706- if ((eO == eO))
701+ let eM = invoke(aZ, "stake", nil, [AttachedPayment(bR, cM)])
702+ if ((eM == eM))
707703 then nil
708704 else throw("Strict value is not equal to itself.")
709705 }
710- else [ScriptTransfer(dh.caller, cO, bT)]
711- (ck ++ eN)
706+ else [ScriptTransfer(df.caller, cM, bR)]
707+ (ci ++ eL)
712708 }
713709 else throw("Strict value is not equal to itself.")
714710 }
721717
722718
723719
724-@Callable(dh)
725-func putForFree (eP) = if ((0 > eP))
720+@Callable(df)
721+func putForFree (eN) = if ((0 > eN))
726722 then throw("Invalid value passed")
727723 else {
728- let dn = dk(dh, eP, false)
729- dn._9
724+ let dl = di(df, eN, false)
725+ dl._9
730726 }
731727
732728
733729
734-@Callable(dh)
735-func putOneTkn (eQ,eR) = {
736- let eS = {
737- let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
738- if ($isInstanceOf(eT, "Boolean"))
739- then eT
740- else throw(($getType(eT) + " couldn't be cast to Boolean"))
730+@Callable(df)
731+func putOneTkn (eO,eP) = {
732+ let eQ = {
733+ let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
734+ if ($isInstanceOf(eR, "Boolean"))
735+ then eR
736+ else throw(($getType(eR) + " couldn't be cast to Boolean"))
741737 }
742- let eU = if (if (if (aH())
738+ let eS = if (if (if (aF())
743739 then true
744- else (aU == l))
740+ else (aS == l))
745741 then true
746- else (aU == n))
742+ else (aS == n))
747743 then true
748- else eS
749- let ef = [if (!(eU))
744+ else eQ
745+ let ed = [if (!(eS))
750746 then true
751- else aD("put operation is blocked by admin"), if ((size(dh.payments) == 1))
747+ else aB("put operation is blocked by admin"), if ((size(df.payments) == 1))
752748 then true
753- else aD("exactly 1 payment are expected")]
754- if ((ef == ef))
749+ else aB("exactly 1 payment are expected")]
750+ if ((ed == ed))
755751 then {
756- let eV = dh.payments[0]
757- let dy = eV.assetId
758- let dx = eV.amount
759- let Z = dh.caller
760- let aa = dh.transactionId
761- let eW = dw(dx, dy, Z, aa)
762- let eX = eW._1
763- let cR = eW._2
764- let dv = eW._3
765- let eY = eW._4
766- let eZ = if (if ((eQ > 0))
767- then (eQ > eX)
752+ let eT = df.payments[0]
753+ let dw = eT.assetId
754+ let dv = eT.amount
755+ let X = df.caller
756+ let Y = df.transactionId
757+ let eU = du(dv, dw, X, Y)
758+ let eV = eU._1
759+ let cP = eU._2
760+ let dt = eU._3
761+ let eW = eU._4
762+ let eX = if (if ((eO > 0))
763+ then (eO > eV)
768764 else false)
769- then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
770- else eX
771- let dq = do(eZ)
772- if ((dq == dq))
765+ then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
766+ else eV
767+ let do = dm(eX)
768+ if ((do == do))
773769 then {
774- let eN = if (eR)
770+ let eL = if (eP)
775771 then {
776- let fa = invoke(bb, "stake", nil, [AttachedPayment(aV, eZ)])
777- if ((fa == fa))
772+ let eY = invoke(aZ, "stake", nil, [AttachedPayment(aT, eX)])
773+ if ((eY == eY))
778774 then nil
779775 else throw("Strict value is not equal to itself.")
780776 }
781- else [ScriptTransfer(dh.caller, eZ, aV)]
782- let fb = if ((dv > 0))
783- then [ScriptTransfer(aG, dv, dy)]
777+ else [ScriptTransfer(df.caller, eX, aT)]
778+ let eZ = if ((dt > 0))
779+ then [ScriptTransfer(aE, dt, dw)]
784780 else nil
785- $Tuple2(((cR ++ eN) ++ fb), eZ)
781+ $Tuple2(((cP ++ eL) ++ eZ), eX)
786782 }
787783 else throw("Strict value is not equal to itself.")
788784 }
791787
792788
793789
794-@Callable(dh)
795-func putOneTknREADONLY (dy,dx) = {
796- let fc = dw(dx, aM(dy), unit, unit)
797- let eX = fc._1
798- let cR = fc._2
799- let dv = fc._3
800- let eY = fc._4
801- $Tuple2(nil, $Tuple3(eX, dv, eY))
790+@Callable(df)
791+func putOneTknREADONLY (dw,dv) = {
792+ let fa = du(dv, aK(dw), unit, unit)
793+ let eV = fa._1
794+ let cP = fa._2
795+ let dt = fa._3
796+ let eW = fa._4
797+ $Tuple2(nil, $Tuple3(eV, dt, eW))
802798 }
803799
804800
805801
806-@Callable(dh)
807-func getOneTkn (fd,eQ) = {
808- let eS = {
809- let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810- if ($isInstanceOf(eT, "Boolean"))
811- then eT
812- else throw(($getType(eT) + " couldn't be cast to Boolean"))
802+@Callable(df)
803+func getOneTkn (fb,eO) = {
804+ let eQ = {
805+ let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
806+ if ($isInstanceOf(eR, "Boolean"))
807+ then eR
808+ else throw(($getType(eR) + " couldn't be cast to Boolean"))
813809 }
814- let fe = if (if (aH())
810+ let fc = if (if (aF())
815811 then true
816- else (aU == n))
812+ else (aS == n))
817813 then true
818- else eS
819- let ef = [if (!(fe))
814+ else eQ
815+ let ed = [if (!(fc))
820816 then true
821- else aD("get operation is blocked by admin"), if ((size(dh.payments) == 1))
817+ else aB("get operation is blocked by admin"), if ((size(df.payments) == 1))
822818 then true
823- else aD("exactly 1 payment are expected")]
824- if ((ef == ef))
819+ else aB("exactly 1 payment are expected")]
820+ if ((ed == ed))
825821 then {
826- let ee = aM(fd)
827- let eV = dh.payments[0]
828- let dy = eV.assetId
829- let dM = eV.amount
830- let Z = dh.caller
831- let aa = dh.transactionId
832- let ff = ed(ee, dM, dy, Z, aa)
833- let fg = ff._1
834- let cR = ff._2
835- let dv = ff._3
836- let eY = ff._4
837- let dp = if (if ((eQ > 0))
838- then (eQ > fg)
822+ let ec = aK(fb)
823+ let eT = df.payments[0]
824+ let dw = eT.assetId
825+ let dK = eT.amount
826+ let X = df.caller
827+ let Y = df.transactionId
828+ let fd = eb(ec, dK, dw, X, Y)
829+ let fe = fd._1
830+ let cP = fd._2
831+ let dt = fd._3
832+ let eW = fd._4
833+ let dn = if (if ((eO > 0))
834+ then (eO > fe)
839835 else false)
840- then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
841- else fg
842- let fh = invoke(aF, "burn", [dM], [AttachedPayment(dy, dM)])
843- if ((fh == fh))
836+ then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
837+ else fe
838+ let ff = invoke(aD, "burn", [dK], [AttachedPayment(dw, dK)])
839+ if ((ff == ff))
844840 then {
845- let fi = [ScriptTransfer(Z, dp, ee)]
846- let fb = if ((dv > 0))
847- then [ScriptTransfer(aG, dv, ee)]
841+ let fg = [ScriptTransfer(X, dn, ec)]
842+ let eZ = if ((dt > 0))
843+ then [ScriptTransfer(aE, dt, ec)]
848844 else nil
849- $Tuple2(((cR ++ fi) ++ fb), dp)
845+ $Tuple2(((cP ++ fg) ++ eZ), dn)
850846 }
851847 else throw("Strict value is not equal to itself.")
852848 }
855851
856852
857853
858-@Callable(dh)
859-func getOneTknREADONLY (ee,dM) = {
860- let fj = ed(aM(ee), dM, aV, unit, unit)
861- let fg = fj._1
862- let cR = fj._2
863- let dv = fj._3
864- let eY = fj._4
865- $Tuple2(nil, $Tuple3(fg, dv, eY))
854+@Callable(df)
855+func getOneTknREADONLY (ec,dK) = {
856+ let fh = eb(aK(ec), dK, aT, unit, unit)
857+ let fe = fh._1
858+ let cP = fh._2
859+ let dt = fh._3
860+ let eW = fh._4
861+ $Tuple2(nil, $Tuple3(fe, dt, eW))
866862 }
867863
868864
869865
870-@Callable(dh)
871-func unstakeAndGetOneTkn (fk,fd,eQ) = {
872- let eS = {
873- let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
874- if ($isInstanceOf(eT, "Boolean"))
875- then eT
876- else throw(($getType(eT) + " couldn't be cast to Boolean"))
866+@Callable(df)
867+func unstakeAndGetOneTkn (fi,fb,eO) = {
868+ let eQ = {
869+ let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
870+ if ($isInstanceOf(eR, "Boolean"))
871+ then eR
872+ else throw(($getType(eR) + " couldn't be cast to Boolean"))
877873 }
878- let fe = if (if (aH())
874+ let fc = if (if (aF())
879875 then true
880- else (aU == n))
876+ else (aS == n))
881877 then true
882- else eS
883- let ef = [if (!(fe))
878+ else eQ
879+ let ed = [if (!(fc))
884880 then true
885- else aD("get operation is blocked by admin"), if ((size(dh.payments) == 0))
881+ else aB("get operation is blocked by admin"), if ((size(df.payments) == 0))
886882 then true
887- else aD("no payments are expected")]
888- if ((ef == ef))
883+ else aB("no payments are expected")]
884+ if ((ed == ed))
889885 then {
890- let ee = aM(fd)
891- let Z = dh.caller
892- let aa = dh.transactionId
893- let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
894- if ((fl == fl))
886+ let ec = aK(fb)
887+ let X = df.caller
888+ let Y = df.transactionId
889+ let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
890+ if ((fj == fj))
895891 then {
896- let fm = ed(ee, fk, aV, Z, aa)
897- let fg = fm._1
898- let cR = fm._2
899- let dv = fm._3
900- let eY = fm._4
901- let dp = if (if ((eQ > 0))
902- then (eQ > fg)
892+ let fk = eb(ec, fi, aT, X, Y)
893+ let fe = fk._1
894+ let cP = fk._2
895+ let dt = fk._3
896+ let eW = fk._4
897+ let dn = if (if ((eO > 0))
898+ then (eO > fe)
903899 else false)
904- then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
905- else fg
906- let fh = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
907- if ((fh == fh))
900+ then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
901+ else fe
902+ let ff = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
903+ if ((ff == ff))
908904 then {
909- let fi = [ScriptTransfer(dh.caller, dp, ee)]
910- let fb = if ((dv > 0))
911- then [ScriptTransfer(aG, dv, ee)]
905+ let fg = [ScriptTransfer(df.caller, dn, ec)]
906+ let eZ = if ((dt > 0))
907+ then [ScriptTransfer(aE, dt, ec)]
912908 else nil
913- $Tuple2(((cR ++ fi) ++ fb), dp)
909+ $Tuple2(((cP ++ fg) ++ eZ), dn)
914910 }
915911 else throw("Strict value is not equal to itself.")
916912 }
921917
922918
923919
924-@Callable(dh)
920+@Callable(df)
925921 func get () = {
926- let cC = dg(dh)
927- let fn = cC._1
928- let cj = cC._2
929- let dj = cC._3
930- let bR = cC._4
931- let ck = cC._5
932- let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
933- if ((fo == fo))
934- then ck
922+ let cA = de(df)
923+ let fl = cA._1
924+ let ch = cA._2
925+ let dh = cA._3
926+ let bP = cA._4
927+ let ci = cA._5
928+ let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
929+ if ((fm == fm))
930+ then ci
935931 else throw("Strict value is not equal to itself.")
936932 }
937933
938934
939935
940-@Callable(dh)
941-func getNoLess (fp,fq) = {
942- let cC = dg(dh)
943- let ci = cC._1
944- let cj = cC._2
945- let dj = cC._3
946- let bR = cC._4
947- let ck = cC._5
948- if ((fp > ci))
949- then throw(((("noLessThenAmtAsset failed: " + toString(ci)) + " < ") + toString(fp)))
950- else if ((fq > cj))
951- then throw(((("noLessThenPriceAsset failed: " + toString(cj)) + " < ") + toString(fq)))
936+@Callable(df)
937+func getNoLess (fn,fo) = {
938+ let cA = de(df)
939+ let cg = cA._1
940+ let ch = cA._2
941+ let dh = cA._3
942+ let bP = cA._4
943+ let ci = cA._5
944+ if ((fn > cg))
945+ then throw(((("noLessThenAmtAsset failed: " + toString(cg)) + " < ") + toString(fn)))
946+ else if ((fo > ch))
947+ then throw(((("noLessThenPriceAsset failed: " + toString(ch)) + " < ") + toString(fo)))
952948 else {
953- let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
954- if ((fo == fo))
955- then ck
949+ let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
950+ if ((fm == fm))
951+ then ci
956952 else throw("Strict value is not equal to itself.")
957953 }
958954 }
959955
960956
961957
962-@Callable(dh)
963-func unstakeAndGet (dp) = {
964- let fr = if ((size(dh.payments) != 0))
958+@Callable(df)
959+func unstakeAndGet (dn) = {
960+ let fp = if ((size(df.payments) != 0))
965961 then throw("No payments are expected")
966962 else true
967- if ((fr == fr))
963+ if ((fp == fp))
968964 then {
969- let bG = aJ()
970- let bT = fromBase58String(bG[q])
971- let fl = invoke(bb, "unstake", [toBase58String(bT), dp], nil)
972- if ((fl == fl))
965+ let bE = aH()
966+ let bR = fromBase58String(bE[q])
967+ let fj = invoke(aZ, "unstake", [toBase58String(bR), dn], nil)
968+ if ((fj == fj))
973969 then {
974- let cC = bP(toBase58String(dh.transactionId), toBase58String(bT), dp, dh.caller)
975- let bW = parseIntValue(cC._9)
976- let ck = cC._10
977- let fs = if (if (aH())
970+ let cA = bN(toBase58String(df.transactionId), toBase58String(bR), dn, df.caller)
971+ let bU = parseIntValue(cA._9)
972+ let ci = cA._10
973+ let fq = if (if (aF())
978974 then true
979- else (bW == n))
980- then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
975+ else (bU == n))
976+ then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
981977 else true
982- if ((fs == fs))
978+ if ((fq == fq))
983979 then {
984- let fo = invoke(aF, "burn", [dp], [AttachedPayment(bT, dp)])
985- if ((fo == fo))
986- then ck
980+ let fm = invoke(aD, "burn", [dn], [AttachedPayment(bR, dn)])
981+ if ((fm == fm))
982+ then ci
987983 else throw("Strict value is not equal to itself.")
988984 }
989985 else throw("Strict value is not equal to itself.")
995991
996992
997993
998-@Callable(dh)
999-func unstakeAndGetNoLess (fk,ft,fq) = {
1000- let fe = if (aH())
994+@Callable(df)
995+func unstakeAndGetNoLess (fi,fr,fo) = {
996+ let fc = if (aF())
1001997 then true
1002- else (aU == n)
1003- let ef = [if (!(fe))
998+ else (aS == n)
999+ let ed = [if (!(fc))
10041000 then true
1005- else throw("get operation is blocked by admin"), if ((size(dh.payments) == 0))
1001+ else throw("get operation is blocked by admin"), if ((size(df.payments) == 0))
10061002 then true
10071003 else throw("no payments are expected")]
1008- if ((ef == ef))
1004+ if ((ed == ed))
10091005 then {
1010- let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
1011- if ((fl == fl))
1006+ let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
1007+ if ((fj == fj))
10121008 then {
1013- let cC = bP(toBase58String(dh.transactionId), toBase58String(aV), fk, dh.caller)
1014- let ci = cC._1
1015- let cj = cC._2
1016- let ck = cC._10
1017- let fu = [if ((ci >= ft))
1009+ let cA = bN(toBase58String(df.transactionId), toBase58String(aT), fi, df.caller)
1010+ let cg = cA._1
1011+ let ch = cA._2
1012+ let ci = cA._10
1013+ let fs = [if ((cg >= fr))
10181014 then true
1019- else throw(makeString(["amount asset amount to receive is less than ", toString(ft)], "")), if ((cj >= fq))
1015+ else throw(makeString(["amount asset amount to receive is less than ", toString(fr)], "")), if ((ch >= fo))
10201016 then true
1021- else throw(makeString(["price asset amount to receive is less than ", toString(fq)], ""))]
1022- if ((fu == fu))
1017+ else throw(makeString(["price asset amount to receive is less than ", toString(fo)], ""))]
1018+ if ((fs == fs))
10231019 then {
1024- let fo = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
1025- if ((fo == fo))
1026- then ck
1020+ let fm = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
1021+ if ((fm == fm))
1022+ then ci
10271023 else throw("Strict value is not equal to itself.")
10281024 }
10291025 else throw("Strict value is not equal to itself.")
10351031
10361032
10371033
1038-@Callable(dh)
1039-func activate (fv,fw) = if ((toString(dh.caller) != toString(aF)))
1034+@Callable(df)
1035+func activate (ft,fu) = if ((toString(df.caller) != toString(aD)))
10401036 then throw("permissions denied")
1041- else $Tuple2([StringEntry(ac(), fv), StringEntry(ad(), fw)], "success")
1037+ else $Tuple2([StringEntry(aa(), ft), StringEntry(ab(), fu)], "success")
10421038
10431039
10441040
1045-@Callable(dh)
1046-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aJ())
1041+@Callable(df)
1042+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aH())
10471043
10481044
10491045
1050-@Callable(dh)
1051-func getAccBalanceWrapperREADONLY (bt) = $Tuple2(nil, bs(bt))
1046+@Callable(df)
1047+func getAccBalanceWrapperREADONLY (br) = $Tuple2(nil, bq(br))
10521048
10531049
10541050
1055-@Callable(dh)
1056-func calcPricesWrapperREADONLY (bA,bB,bF) = {
1057- let bO = bE(bA, bB, bF)
1058- $Tuple2(nil, [toString(bO[0]), toString(bO[1]), toString(bO[2])])
1051+@Callable(df)
1052+func calcPricesWrapperREADONLY (by,bz,bD) = {
1053+ let bM = bC(by, bz, bD)
1054+ $Tuple2(nil, [toString(bM[0]), toString(bM[1]), toString(bM[2])])
10591055 }
10601056
10611057
10621058
1063-@Callable(dh)
1064-func toX18WrapperREADONLY (G,H) = $Tuple2(nil, toString(F(G, H)))
1059+@Callable(df)
1060+func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
10651061
10661062
10671063
1068-@Callable(dh)
1069-func fromX18WrapperREADONLY (J,K) = $Tuple2(nil, I(parseBigIntValue(J), K))
1064+@Callable(df)
1065+func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
10701066
10711067
10721068
1073-@Callable(dh)
1074-func calcPriceBigIntWrapperREADONLY (bv,bw) = $Tuple2(nil, toString(bu(parseBigIntValue(bv), parseBigIntValue(bw))))
1069+@Callable(df)
1070+func calcPriceBigIntWrapperREADONLY (bt,bu) = $Tuple2(nil, toString(bs(parseBigIntValue(bt), parseBigIntValue(bu))))
10751071
10761072
10771073
1078-@Callable(dh)
1079-func estimatePutOperationWrapperREADONLY (bQ,cm,cn,co,cp,cq,Z,cr,cs) = $Tuple2(nil, cl(bQ, cm, cn, co, cp, cq, Z, cr, cs))
1074+@Callable(df)
1075+func estimatePutOperationWrapperREADONLY (bO,ck,cl,cm,cn,co,X,cp,cq) = $Tuple2(nil, cj(bO, ck, cl, cm, cn, co, X, cp, cq))
10801076
10811077
10821078
1083-@Callable(dh)
1084-func estimateGetOperationWrapperREADONLY (bQ,bR,bS,Z) = {
1085- let cC = bP(bQ, bR, bS, addressFromStringValue(Z))
1086- $Tuple2(nil, $Tuple10(cC._1, cC._2, cC._3, cC._4, cC._5, cC._6, cC._7, toString(cC._8), cC._9, cC._10))
1079+@Callable(df)
1080+func estimateGetOperationWrapperREADONLY (bO,bP,bQ,X) = {
1081+ let cA = bN(bO, bP, bQ, addressFromStringValue(X))
1082+ $Tuple2(nil, $Tuple10(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, toString(cA._8), cA._9, cA._10))
10871083 }
10881084
10891085
10901086
1091-@Callable(dh)
1087+@Callable(df)
10921088 func statsREADONLY () = {
1093- let bG = aJ()
1094- let bT = fromBase58String(bG[q])
1095- let cU = bG[r]
1096- let cV = bG[s]
1097- let cv = bG[v]
1098- let cw = bG[w]
1099- let bH = parseIntValue(bG[t])
1100- let bI = parseIntValue(bG[u])
1101- let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1102- let cW = bs(cU)
1103- let cX = bs(cV)
1104- let fy = if ((fx == 0))
1089+ let bE = aH()
1090+ let bR = fromBase58String(bE[q])
1091+ let cS = bE[r]
1092+ let cT = bE[s]
1093+ let ct = bE[v]
1094+ let cu = bE[w]
1095+ let bF = parseIntValue(bE[t])
1096+ let bG = parseIntValue(bE[u])
1097+ let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1098+ let cU = bq(cS)
1099+ let cV = bq(cT)
1100+ let fw = if ((fv == 0))
11051101 then [e, e, e]
1106- else bE(cW, cX, fx)
1107- let cd = 0
1108- let fz = I(fy[1], b)
1109- let fA = I(fy[2], b)
1110- let fB = value(getInteger(aF, ar(toString(this))))
1111- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cW), toString(cX), toString(fx), toString(cd), toString(fz), toString(fA), toString(fB)], j))
1102+ else bC(cU, cV, fv)
1103+ let cb = 0
1104+ let fx = G(fw[1], b)
1105+ let fy = G(fw[2], b)
1106+ let fz = value(getInteger(aD, ap(toString(this))))
1107+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cU), toString(cV), toString(fv), toString(cb), toString(fx), toString(fy), toString(fz)], j))
11121108 }
11131109
11141110
11151111
1116-@Callable(dh)
1117-func evaluatePutByAmountAssetREADONLY (cn) = {
1118- let bG = aJ()
1119- let bT = fromBase58String(bG[q])
1120- let ct = bG[r]
1121- let bU = fromBase58String(ct)
1122- let cu = bG[s]
1123- let bV = fromBase58String(cu)
1124- let bH = parseIntValue(bG[t])
1125- let bI = parseIntValue(bG[u])
1126- let bW = bG[p]
1127- let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1128- let cW = bs(ct)
1129- let cX = bs(cu)
1130- let bC = F(cW, bH)
1131- let bD = F(cX, bI)
1132- let cc = if ((fx == 0))
1112+@Callable(df)
1113+func evaluatePutByAmountAssetREADONLY (cl) = {
1114+ let bE = aH()
1115+ let bR = fromBase58String(bE[q])
1116+ let cr = bE[r]
1117+ let bS = fromBase58String(cr)
1118+ let cs = bE[s]
1119+ let bT = fromBase58String(cs)
1120+ let bF = parseIntValue(bE[t])
1121+ let bG = parseIntValue(bE[u])
1122+ let bU = bE[p]
1123+ let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1124+ let cU = bq(cr)
1125+ let cV = bq(cs)
1126+ let bA = D(cU, bF)
1127+ let bB = D(cV, bG)
1128+ let ca = if ((fv == 0))
11331129 then e
1134- else bu(bD, bC)
1135- let cz = F(cn, bH)
1136- let cA = fraction(cz, cc, d)
1137- let cp = I(cA, bI)
1138- let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1139- let cK = dn._1
1140- let fC = dn._3
1141- let bY = dn._4
1142- let ca = dn._5
1143- let bX = dn._6
1144- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
1130+ else bs(bB, bA)
1131+ let cx = D(cl, bF)
1132+ let cy = fraction(cx, ca, d)
1133+ let cn = G(cy, bG)
1134+ let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1135+ let cI = dl._1
1136+ let fA = dl._3
1137+ let bW = dl._4
1138+ let bY = dl._5
1139+ let bV = dl._6
1140+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
11451141 }
11461142
11471143
11481144
1149-@Callable(dh)
1150-func evaluatePutByPriceAssetREADONLY (cp) = {
1151- let bG = aJ()
1152- let bT = fromBase58String(bG[q])
1153- let ct = bG[r]
1154- let bU = fromBase58String(ct)
1155- let cu = bG[s]
1156- let bV = fromBase58String(cu)
1157- let bH = parseIntValue(bG[t])
1158- let bI = parseIntValue(bG[u])
1159- let bW = bG[p]
1160- let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1161- let fD = bs(ct)
1162- let fE = bs(cu)
1163- let fF = F(fD, bH)
1164- let fG = F(fE, bI)
1165- let cc = if ((fx == 0))
1145+@Callable(df)
1146+func evaluatePutByPriceAssetREADONLY (cn) = {
1147+ let bE = aH()
1148+ let bR = fromBase58String(bE[q])
1149+ let cr = bE[r]
1150+ let bS = fromBase58String(cr)
1151+ let cs = bE[s]
1152+ let bT = fromBase58String(cs)
1153+ let bF = parseIntValue(bE[t])
1154+ let bG = parseIntValue(bE[u])
1155+ let bU = bE[p]
1156+ let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1157+ let fB = bq(cr)
1158+ let fC = bq(cs)
1159+ let fD = D(fB, bF)
1160+ let fE = D(fC, bG)
1161+ let ca = if ((fv == 0))
11661162 then e
1167- else bu(fG, fF)
1168- let cA = F(cp, bI)
1169- let cz = fraction(cA, d, cc)
1170- let cn = I(cz, bH)
1171- let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1172- let cK = dn._1
1173- let fC = dn._3
1174- let bY = dn._4
1175- let ca = dn._5
1176- let bX = dn._6
1177- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
1163+ else bs(fE, fD)
1164+ let cy = D(cn, bG)
1165+ let cx = fraction(cy, d, ca)
1166+ let cl = G(cx, bF)
1167+ let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1168+ let cI = dl._1
1169+ let fA = dl._3
1170+ let bW = dl._4
1171+ let bY = dl._5
1172+ let bV = dl._6
1173+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
11781174 }
11791175
11801176
11811177
1182-@Callable(dh)
1183-func evaluateGetREADONLY (fH,fI) = {
1184- let cC = bP("", fH, fI, this)
1185- let ci = cC._1
1186- let cj = cC._2
1187- let bY = cC._5
1188- let ca = cC._6
1189- let bX = cC._7
1190- let cd = cC._8
1191- let bW = parseIntValue(cC._9)
1192- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ci), toString(cj), toString(bY), toString(ca), toString(bX), toString(cd), toString(bW)], j))
1178+@Callable(df)
1179+func evaluateGetREADONLY (fF,fG) = {
1180+ let cA = bN("", fF, fG, this)
1181+ let cg = cA._1
1182+ let ch = cA._2
1183+ let bW = cA._5
1184+ let bY = cA._6
1185+ let bV = cA._7
1186+ let cb = cA._8
1187+ let bU = parseIntValue(cA._9)
1188+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cg), toString(ch), toString(bW), toString(bY), toString(bV), toString(cb), toString(bU)], j))
11931189 }
11941190
11951191
1196-@Verifier(fJ)
1197-func fK () = {
1198- let fL = {
1199- let ds = ew()
1200- if ($isInstanceOf(ds, "ByteVector"))
1192+@Verifier(fH)
1193+func fI () = {
1194+ let fJ = {
1195+ let dq = eu()
1196+ if ($isInstanceOf(dq, "ByteVector"))
12011197 then {
1202- let eB = ds
1203- eB
1198+ let ez = dq
1199+ ez
12041200 }
1205- else if ($isInstanceOf(ds, "Unit"))
1206- then fJ.senderPublicKey
1201+ else if ($isInstanceOf(dq, "Unit"))
1202+ then fH.senderPublicKey
12071203 else throw("Match error")
12081204 }
1209- let ds = fJ
1210- if ($isInstanceOf(ds, "Order"))
1205+ let dq = fH
1206+ if ($isInstanceOf(dq, "Order"))
12111207 then {
1212- let cT = ds
1213- let fM = aI()
1214- let aw = cS(cT)
1215- let ax = sigVerify(cT.bodyBytes, cT.proofs[0], cT.senderPublicKey)
1216- let ay = sigVerify(cT.bodyBytes, cT.proofs[1], fM)
1217- if (if (if (aw)
1218- then ax
1208+ let cR = dq
1209+ let fK = aG()
1210+ let au = cQ(cR)
1211+ let av = sigVerify(cR.bodyBytes, cR.proofs[0], cR.senderPublicKey)
1212+ let aw = sigVerify(cR.bodyBytes, cR.proofs[1], fK)
1213+ if (if (if (au)
1214+ then av
12191215 else false)
1220- then ay
1216+ then aw
12211217 else false)
12221218 then true
1223- else av(aw, ax, ay)
1219+ else at(au, av, aw)
12241220 }
1225- else if ($isInstanceOf(ds, "SetScriptTransaction"))
1221+ else if ($isInstanceOf(dq, "SetScriptTransaction"))
12261222 then {
1227- let ex = ds
1228- let fN = blake2b256(value(ex.script))
1229- let fO = fromBase64String(value(getString(aF, at())))
1230- let fP = scriptHash(this)
1231- if (if ((fO == fN))
1232- then (fP != fN)
1223+ let ev = dq
1224+ let fL = blake2b256(value(ev.script))
1225+ let fM = fromBase64String(value(getString(aD, ar())))
1226+ let fN = scriptHash(this)
1227+ if (if ((fM == fL))
1228+ then (fN != fL)
12331229 else false)
12341230 then true
1235- else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
1231+ else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
12361232 }
1237- else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
1233+ else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
12381234 }
12391235
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
62-let D = 1
63-
64-let E = 1
65-
66-func F (G,H) = fraction(toBigInt(G), d, toBigInt(H))
62+func D (E,F) = fraction(toBigInt(E), d, toBigInt(F))
6763
6864
69-func I (J,K) = toInt(fraction(J, toBigInt(K), d))
65+func G (H,I) = toInt(fraction(H, toBigInt(I), d))
7066
7167
72-func L (M,N,O) = fraction(M, N, O)
68+func J (K,L,M) = fraction(K, L, M)
7369
7470
75-func P (J) = if ((0 > J))
76- then -(J)
77- else J
71+func N (H) = if ((0 > H))
72+ then -(H)
73+ else H
7874
7975
80-func Q (J) = if ((e > J))
81- then -(J)
82- else J
76+func O (H) = if ((e > H))
77+ then -(H)
78+ else H
8379
8480
85-func R () = "%s__factoryContract"
81+func P () = "%s__factoryContract"
8682
8783
88-func S () = "%s__managerPublicKey"
84+func Q () = "%s__managerPublicKey"
8985
9086
91-func T () = "%s__pendingManagerPublicKey"
87+func R () = "%s__pendingManagerPublicKey"
9288
9389
94-func U () = "%s%s__price__last"
90+func S () = "%s%s__price__last"
9591
9692
97-func V (W,X) = makeString(["%s%s%d%d__price__history", toString(W), toString(X)], j)
93+func T (U,V) = makeString(["%s%s%d%d__price__history", toString(U), toString(V)], j)
9894
9995
100-func Y (Z,aa) = ((("%s%s%s__P__" + Z) + "__") + aa)
96+func W (X,Y) = ((("%s%s%s__P__" + X) + "__") + Y)
10197
10298
103-func ab (Z,aa) = ((("%s%s%s__G__" + Z) + "__") + aa)
99+func Z (X,Y) = ((("%s%s%s__G__" + X) + "__") + Y)
104100
105101
106-func ac () = "%s__amountAsset"
102+func aa () = "%s__amountAsset"
107103
108104
109-func ad () = "%s__priceAsset"
105+func ab () = "%s__priceAsset"
110106
111107
112-let ae = "%s__fee"
108+let ac = "%s__fee"
113109
114-let af = fraction(10, b, 10000)
110+let ad = fraction(10, b, 10000)
115111
116-let ag = valueOrElse(getInteger(this, ae), af)
112+let ae = valueOrElse(getInteger(this, ac), ad)
117113
118-func ah () = "%s__factoryConfig"
114+func af () = "%s__factoryConfig"
119115
120116
121-func ai () = "%s%s__matcher__publicKey"
117+func ag () = "%s%s__matcher__publicKey"
122118
123119
124-func aj (ak) = (("%s%s%s__" + ak) + "__mappings__poolContract2LpAsset")
120+func ah (ai) = (("%s%s%s__" + ai) + "__mappings__poolContract2LpAsset")
125121
126122
127-func al (am,an) = (((("%d%d%s__" + am) + "__") + an) + "__config")
123+func aj (ak,al) = (((("%d%d%s__" + ak) + "__") + al) + "__config")
128124
129125
130-func ao (ap) = ("%s%s%s__mappings__baseAsset2internalId__" + ap)
126+func am (an) = ("%s%s%s__mappings__baseAsset2internalId__" + an)
131127
132128
133-func aq () = "%s__shutdown"
129+func ao () = "%s__shutdown"
134130
135131
136-func ar (as) = ("%s%s__poolWeight__" + as)
132+func ap (aq) = ("%s%s__poolWeight__" + aq)
137133
138134
139-func at () = "%s__allowedLpScriptHash"
135+func ar () = "%s__allowedLpScriptHash"
140136
141137
142-let au = "%s__feeCollectorAddress"
138+let as = "%s__feeCollectorAddress"
143139
144-func av (aw,ax,ay) = throw(((((("order validation failed: orderValid=" + toString(aw)) + " senderValid=") + toString(ax)) + " matcherValid=") + toString(ay)))
140+func at (au,av,aw) = throw(((((("order validation failed: orderValid=" + toString(au)) + " senderValid=") + toString(av)) + " matcherValid=") + toString(aw)))
145141
146142
147-func az (aA,aB) = valueOrErrorMessage(getString(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
143+func ax (ay,az) = valueOrErrorMessage(getString(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
148144
149145
150-func aC (aA,aB) = valueOrErrorMessage(getInteger(aA, aB), makeString(["mandatory ", toString(aA), ".", aB, " is not defined"], ""))
146+func aA (ay,az) = valueOrErrorMessage(getInteger(ay, az), makeString(["mandatory ", toString(ay), ".", az, " is not defined"], ""))
151147
152148
153-func aD (aE) = throw(makeString(["lp.ride:", aE], " "))
149+func aB (aC) = throw(makeString(["lp.ride:", aC], " "))
154150
155151
156-let aF = addressFromStringValue(az(this, R()))
152+let aD = addressFromStringValue(ax(this, P()))
157153
158-let aG = addressFromStringValue(az(aF, au))
154+let aE = addressFromStringValue(ax(aD, as))
159155
160-func aH () = valueOrElse(getBoolean(aF, aq()), false)
156+func aF () = valueOrElse(getBoolean(aD, ao()), false)
161157
162158
163-func aI () = fromBase58String(az(aF, ai()))
159+func aG () = fromBase58String(ax(aD, ag()))
164160
165161
166-func aJ () = {
167- let aK = az(this, ac())
168- let aL = az(this, ad())
169- let an = aC(aF, ao(aL))
170- let am = aC(aF, ao(aK))
171- split(az(aF, al(toString(am), toString(an))), j)
162+func aH () = {
163+ let aI = ax(this, aa())
164+ let aJ = ax(this, ab())
165+ let al = aA(aD, am(aJ))
166+ let ak = aA(aD, am(aI))
167+ split(ax(aD, aj(toString(ak), toString(al))), j)
172168 }
173169
174170
175-func aM (aN) = if ((aN == i))
171+func aK (aL) = if ((aL == i))
176172 then unit
177- else fromBase58String(aN)
173+ else fromBase58String(aL)
178174
179175
180-func aO (aN) = if ((aN == unit))
176+func aM (aL) = if ((aL == unit))
181177 then i
182- else toBase58String(value(aN))
178+ else toBase58String(value(aL))
183179
184180
185-func aP (aQ) = $Tuple7(addressFromStringValue(aQ[o]), parseIntValue(aQ[p]), fromBase58String(aQ[q]), aM(aQ[r]), aM(aQ[s]), parseIntValue(aQ[t]), parseIntValue(aQ[u]))
181+func aN (aO) = $Tuple7(addressFromStringValue(aO[o]), parseIntValue(aO[p]), fromBase58String(aO[q]), aK(aO[r]), aK(aO[s]), parseIntValue(aO[t]), parseIntValue(aO[u]))
186182
187183
188-let aR = aP(aJ())
184+let aP = aN(aH())
189185
190-let aS = aR
186+let aQ = aP
191187
192-let aT = aS._1
188+let aR = aQ._1
193189
194-let aU = aS._2
190+let aS = aQ._2
195191
196-let aV = aS._3
192+let aT = aQ._3
197193
198-let aW = aS._4
194+let aU = aQ._4
199195
200-let aX = aS._5
196+let aV = aQ._5
201197
202-let aY = aS._6
198+let aW = aQ._6
203199
204-let aZ = aS._7
200+let aX = aQ._7
205201
206-func ba () = split(az(aF, ah()), j)
202+func aY () = split(ax(aD, af()), j)
207203
208204
209-let bb = valueOrErrorMessage(addressFromString(ba()[B]), "incorrect staking address")
205+let aZ = valueOrErrorMessage(addressFromString(aY()[B]), "incorrect staking address")
210206
211-let bc = valueOrErrorMessage(addressFromString(ba()[C]), "incorrect staking address")
207+let ba = valueOrErrorMessage(addressFromString(aY()[C]), "incorrect staking address")
212208
213-func bd (be,bf,bg,bh,bi,bj,bk,bl,bm,bn) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl), toString(bm), toString(bn)], j)
209+func bb (bc,bd,be,bf,bg,bh,bi,bj,bk,bl) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(bc), toString(bd), toString(be), toString(bf), toString(bg), toString(bh), toString(bi), toString(bj), toString(bk), toString(bl)], j)
214210
215211
216-func bo (bp,bq,br,bh,bk,bl) = makeString(["%d%d%d%d%d%d", toString(bp), toString(bq), toString(br), toString(bh), toString(bk), toString(bl)], j)
212+func bm (bn,bo,bp,bf,bi,bj) = makeString(["%d%d%d%d%d%d", toString(bn), toString(bo), toString(bp), toString(bf), toString(bi), toString(bj)], j)
217213
218214
219-func bs (bt) = if ((bt == "WAVES"))
215+func bq (br) = if ((br == "WAVES"))
220216 then wavesBalance(this).available
221- else assetBalance(this, fromBase58String(bt))
217+ else assetBalance(this, fromBase58String(br))
222218
223219
224-func bu (bv,bw) = fraction(bv, d, bw)
220+func bs (bt,bu) = fraction(bt, d, bu)
225221
226222
227-func bx (by,bz,bA,bB) = {
228- let bC = F(bA, by)
229- let bD = F(bB, bz)
230- bu(bD, bC)
223+func bv (bw,bx,by,bz) = {
224+ let bA = D(by, bw)
225+ let bB = D(bz, bx)
226+ bs(bB, bA)
231227 }
232228
233229
234-func bE (bA,bB,bF) = {
235- let bG = aJ()
236- let bH = parseIntValue(bG[t])
237- let bI = parseIntValue(bG[u])
238- let bJ = bx(bH, bI, bA, bB)
239- let bw = F(bA, bH)
240- let bv = F(bB, bI)
241- let bK = F(bF, b)
242- let bL = bu(bw, bK)
243- let bM = bu(bv, bK)
244-[bJ, bL, bM]
230+func bC (by,bz,bD) = {
231+ let bE = aH()
232+ let bF = parseIntValue(bE[t])
233+ let bG = parseIntValue(bE[u])
234+ let bH = bv(bF, bG, by, bz)
235+ let bu = D(by, bF)
236+ let bt = D(bz, bG)
237+ let bI = D(bD, b)
238+ let bJ = bs(bu, bI)
239+ let bK = bs(bt, bI)
240+[bH, bJ, bK]
245241 }
246242
247243
248-func bN (bA,bB,bF) = {
249- let bO = bE(bA, bB, bF)
250-[I(bO[0], b), I(bO[1], b), I(bO[2], b)]
244+func bL (by,bz,bD) = {
245+ let bM = bC(by, bz, bD)
246+[G(bM[0], b), G(bM[1], b), G(bM[2], b)]
251247 }
252248
253249
254-func bP (bQ,bR,bS,Z) = {
255- let bG = aJ()
256- let bT = bG[q]
257- let bU = bG[r]
258- let bV = bG[s]
259- let by = parseIntValue(bG[t])
260- let bz = parseIntValue(bG[u])
261- let bW = bG[p]
262- let bX = valueOrErrorMessage(assetInfo(fromBase58String(bT)), (("Asset " + bT) + " doesn't exist")).quantity
263- if ((bT != bR))
250+func bN (bO,bP,bQ,X) = {
251+ let bE = aH()
252+ let bR = bE[q]
253+ let bS = bE[r]
254+ let bT = bE[s]
255+ let bw = parseIntValue(bE[t])
256+ let bx = parseIntValue(bE[u])
257+ let bU = bE[p]
258+ let bV = valueOrErrorMessage(assetInfo(fromBase58String(bR)), (("Asset " + bR) + " doesn't exist")).quantity
259+ if ((bR != bP))
264260 then throw("Invalid asset passed.")
265261 else {
266- let bY = bs(bU)
267- let bZ = F(bY, by)
268- let ca = bs(bV)
269- let cb = F(ca, bz)
270- let cc = bu(cb, bZ)
271- let cd = I(cc, b)
272- let ce = F(bS, b)
273- let cf = F(bX, b)
274- let cg = fraction(bZ, ce, cf)
275- let ch = fraction(cb, ce, cf)
276- let ci = I(cg, by)
277- let cj = I(ch, bz)
278- let ck = if ((bQ == ""))
262+ let bW = bq(bS)
263+ let bX = D(bW, bw)
264+ let bY = bq(bT)
265+ let bZ = D(bY, bx)
266+ let ca = bs(bZ, bX)
267+ let cb = G(ca, b)
268+ let cc = D(bQ, b)
269+ let cd = D(bV, b)
270+ let ce = fraction(bX, cc, cd)
271+ let cf = fraction(bZ, cc, cd)
272+ let cg = G(ce, bw)
273+ let ch = G(cf, bx)
274+ let ci = if ((bO == ""))
279275 then nil
280- else [ScriptTransfer(Z, ci, if ((bU == "WAVES"))
276+ else [ScriptTransfer(X, cg, if ((bS == "WAVES"))
281277 then unit
282- else fromBase58String(bU)), ScriptTransfer(Z, cj, if ((bV == "WAVES"))
278+ else fromBase58String(bS)), ScriptTransfer(X, ch, if ((bT == "WAVES"))
283279 then unit
284- else fromBase58String(bV)), StringEntry(ab(toString(Z), bQ), bo(ci, cj, bS, cd, height, lastBlock.timestamp)), IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd)]
285- $Tuple10(ci, cj, bU, bV, bY, ca, bX, cc, bW, ck)
280+ else fromBase58String(bT)), StringEntry(Z(toString(X), bO), bm(cg, ch, bQ, cb, height, lastBlock.timestamp)), IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb)]
281+ $Tuple10(cg, ch, bS, bT, bW, bY, bV, ca, bU, ci)
286282 }
287283 }
288284
289285
290-func cl (bQ,cm,cn,co,cp,cq,Z,cr,cs) = {
291- let bG = aJ()
292- let bT = fromBase58String(bG[q])
293- let ct = bG[r]
294- let cu = bG[s]
295- let cv = bG[v]
296- let cw = bG[w]
297- let bH = parseIntValue(bG[t])
298- let bI = parseIntValue(bG[u])
299- let bW = bG[p]
300- let bX = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
301- let cx = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
302- let cy = toBase58String(valueOrElse(cq, fromBase58String("WAVES")))
303- if (if ((ct != cx))
286+func cj (bO,ck,cl,cm,cn,co,X,cp,cq) = {
287+ let bE = aH()
288+ let bR = fromBase58String(bE[q])
289+ let cr = bE[r]
290+ let cs = bE[s]
291+ let ct = bE[v]
292+ let cu = bE[w]
293+ let bF = parseIntValue(bE[t])
294+ let bG = parseIntValue(bE[u])
295+ let bU = bE[p]
296+ let bV = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
297+ let cv = toBase58String(valueOrElse(cm, fromBase58String("WAVES")))
298+ let cw = toBase58String(valueOrElse(co, fromBase58String("WAVES")))
299+ if (if ((cr != cv))
304300 then true
305- else (cu != cy))
301+ else (cs != cw))
306302 then throw("Invalid amt or price asset passed.")
307303 else {
308- let bY = if (cr)
309- then bs(ct)
310- else (bs(ct) - cn)
311- let ca = if (cr)
312- then bs(cu)
313- else (bs(cu) - cp)
314- let cz = F(cn, bH)
315- let cA = F(cp, bI)
316- let cB = bu(cA, cz)
317- let bZ = F(bY, bH)
318- let cb = F(ca, bI)
319- let cC = if ((bX == 0))
304+ let bW = if (cp)
305+ then bq(cr)
306+ else (bq(cr) - cl)
307+ let bY = if (cp)
308+ then bq(cs)
309+ else (bq(cs) - cn)
310+ let cx = D(cl, bF)
311+ let cy = D(cn, bG)
312+ let cz = bs(cy, cx)
313+ let bX = D(bW, bF)
314+ let bZ = D(bY, bG)
315+ let cA = if ((bV == 0))
320316 then {
321- let cc = e
322- let cD = e
323- let bK = pow((cz * cA), 0, toBigInt(5), 1, 0, DOWN)
324- $Tuple5(I(bK, b), I(cz, bH), I(cA, bI), bu((cb + cA), (bZ + cz)), cD)
317+ let ca = e
318+ let cB = e
319+ let bI = pow((cx * cy), 0, toBigInt(5), 1, 0, DOWN)
320+ $Tuple5(G(bI, b), G(cx, bF), G(cy, bG), bs((bZ + cy), (bX + cx)), cB)
325321 }
326322 else {
327- let cc = bu(cb, bZ)
328- let cD = fraction(Q((cc - cB)), d, cc)
329- let cE = F(cm, b)
330- if (if ((cc != e))
331- then (cD > cE)
323+ let ca = bs(bZ, bX)
324+ let cB = fraction(O((ca - cz)), d, ca)
325+ let cC = D(ck, b)
326+ if (if ((ca != e))
327+ then (cB > cC)
332328 else false)
333- then throw(((("Price slippage " + toString(cD)) + " exceeded the passed limit of ") + toString(cE)))
329+ then throw(((("Price slippage " + toString(cB)) + " exceeded the passed limit of ") + toString(cC)))
334330 else {
335- let cf = F(bX, b)
336- let cF = fraction(cz, cc, d)
337- let cG = fraction(cA, d, cc)
338- let cH = if ((cF > cA))
339- then $Tuple2(cG, cA)
340- else $Tuple2(cz, cF)
341- let cI = cH._1
342- let cJ = cH._2
343- let bK = fraction(cf, cJ, cb)
344- $Tuple5(I(bK, b), I(cI, bH), I(cJ, bI), cc, cD)
331+ let cd = D(bV, b)
332+ let cD = fraction(cx, ca, d)
333+ let cE = fraction(cy, d, ca)
334+ let cF = if ((cD > cy))
335+ then $Tuple2(cE, cy)
336+ else $Tuple2(cx, cD)
337+ let cG = cF._1
338+ let cH = cF._2
339+ let bI = fraction(cd, cH, bZ)
340+ $Tuple5(G(bI, b), G(cG, bF), G(cH, bG), ca, cB)
345341 }
346342 }
347- let cK = cC._1
348- let cL = cC._2
349- let cM = cC._3
350- let cd = I(cC._4, b)
351- let cN = I(cC._5, b)
352- if ((0 >= cK))
343+ let cI = cA._1
344+ let cJ = cA._2
345+ let cK = cA._3
346+ let cb = G(cA._4, b)
347+ let cL = G(cA._5, b)
348+ if ((0 >= cI))
353349 then throw("Invalid calculations. LP calculated is less than zero.")
354350 else {
355- let cO = if (!(cs))
351+ let cM = if (!(cq))
356352 then 0
357- else cK
358- let cP = (cn - cL)
359- let cQ = (cp - cM)
360- let cR = [IntegerEntry(U(), cd), IntegerEntry(V(height, lastBlock.timestamp), cd), StringEntry(Y(Z, bQ), bd(cL, cM, cO, cd, cm, cN, height, lastBlock.timestamp, cP, cQ))]
361- $Tuple13(cK, cO, cd, bY, ca, bX, bT, bW, cR, cP, cQ, co, cq)
353+ else cI
354+ let cN = (cl - cJ)
355+ let cO = (cn - cK)
356+ let cP = [IntegerEntry(S(), cb), IntegerEntry(T(height, lastBlock.timestamp), cb), StringEntry(W(X, bO), bb(cJ, cK, cM, cb, ck, cL, height, lastBlock.timestamp, cN, cO))]
357+ $Tuple13(cI, cM, cb, bW, bY, bV, bR, bU, cP, cN, cO, cm, co)
362358 }
363359 }
364360 }
365361
366362
367-func cS (cT) = {
368- let bG = aJ()
369- let cU = bG[r]
370- let cV = bG[s]
371- let bW = parseIntValue(bG[p])
372- let bH = parseIntValue(bG[t])
373- let bI = parseIntValue(bG[u])
374- let cW = bs(cU)
375- let cX = bs(cV)
376- let cc = if ((cT.orderType == Buy))
377- then bx(bH, bI, (cW + cT.amount), cX)
378- else bx(bH, bI, (cW - cT.amount), cX)
379- let cd = I(cc, b)
380- if (if (if (aH())
363+func cQ (cR) = {
364+ let bE = aH()
365+ let cS = bE[r]
366+ let cT = bE[s]
367+ let bU = parseIntValue(bE[p])
368+ let bF = parseIntValue(bE[t])
369+ let bG = parseIntValue(bE[u])
370+ let cU = bq(cS)
371+ let cV = bq(cT)
372+ let ca = if ((cR.orderType == Buy))
373+ then bv(bF, bG, (cU + cR.amount), cV)
374+ else bv(bF, bG, (cU - cR.amount), cV)
375+ let cb = G(ca, b)
376+ if (if (if (aF())
381377 then true
382- else (bW == m))
378+ else (bU == m))
383379 then true
384- else (bW == n))
380+ else (bU == n))
385381 then throw("Exchange operations disabled")
386382 else {
387- let cY = cT.assetPair.amountAsset
383+ let cW = cR.assetPair.amountAsset
384+ let cX = if ((cW == unit))
385+ then "WAVES"
386+ else toBase58String(value(cW))
387+ let cY = cR.assetPair.priceAsset
388388 let cZ = if ((cY == unit))
389389 then "WAVES"
390390 else toBase58String(value(cY))
391- let da = cT.assetPair.priceAsset
392- let db = if ((da == unit))
393- then "WAVES"
394- else toBase58String(value(da))
395- if (if ((cZ != cU))
391+ if (if ((cX != cS))
396392 then true
397- else (db != cV))
393+ else (cZ != cT))
398394 then throw("Wrong order assets.")
399395 else {
400- let dc = cT.price
401- let dd = fraction(b, bI, bH)
402- let de = L(dc, b, dd)
403- let df = if ((cT.orderType == Buy))
404- then (cd >= de)
405- else (de >= cd)
396+ let da = cR.price
397+ let db = fraction(b, bG, bF)
398+ let dc = J(da, b, db)
399+ let dd = if ((cR.orderType == Buy))
400+ then (cb >= dc)
401+ else (dc >= cb)
406402 true
407403 }
408404 }
409405 }
410406
411407
412-func dg (dh) = if ((size(dh.payments) != 1))
408+func de (df) = if ((size(df.payments) != 1))
413409 then throw("exactly 1 payment is expected")
414410 else {
415- let di = value(dh.payments[0])
416- let bR = value(di.assetId)
417- let dj = di.amount
418- let cC = bP(toBase58String(dh.transactionId), toBase58String(bR), dj, dh.caller)
419- let ci = cC._1
420- let cj = cC._2
421- let bW = parseIntValue(cC._9)
422- let ck = cC._10
423- if (if (aH())
411+ let dg = value(df.payments[0])
412+ let bP = value(dg.assetId)
413+ let dh = dg.amount
414+ let cA = bN(toBase58String(df.transactionId), toBase58String(bP), dh, df.caller)
415+ let cg = cA._1
416+ let ch = cA._2
417+ let bU = parseIntValue(cA._9)
418+ let ci = cA._10
419+ if (if (aF())
424420 then true
425- else (bW == n))
426- then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
427- else $Tuple5(ci, cj, dj, bR, ck)
421+ else (bU == n))
422+ then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
423+ else $Tuple5(cg, ch, dh, bP, ci)
428424 }
429425
430426
431-func dk (dh,cm,cs) = if ((size(dh.payments) != 2))
427+func di (df,ck,cq) = if ((size(df.payments) != 2))
432428 then throw("exactly 2 payments are expected")
433429 else {
434- let dl = value(dh.payments[0])
435- let dm = value(dh.payments[1])
436- let dn = cl(toBase58String(dh.transactionId), cm, dl.amount, dl.assetId, dm.amount, dm.assetId, toString(dh.caller), false, cs)
437- let bW = parseIntValue(dn._8)
438- if (if (if (aH())
430+ let dj = value(df.payments[0])
431+ let dk = value(df.payments[1])
432+ let dl = cj(toBase58String(df.transactionId), ck, dj.amount, dj.assetId, dk.amount, dk.assetId, toString(df.caller), false, cq)
433+ let bU = parseIntValue(dl._8)
434+ if (if (if (aF())
439435 then true
440- else (bW == l))
436+ else (bU == l))
441437 then true
442- else (bW == n))
443- then throw(("Put operation is blocked by admin. Status = " + toString(bW)))
444- else dn
438+ else (bU == n))
439+ then throw(("Put operation is blocked by admin. Status = " + toString(bU)))
440+ else dl
445441 }
446442
447443
448-func do (dp) = {
449- let dq = invoke(aF, "emit", [dp], nil)
450- if ((dq == dq))
444+func dm (dn) = {
445+ let do = invoke(aD, "emit", [dn], nil)
446+ if ((do == do))
451447 then {
452- let dr = {
453- let ds = dq
454- if ($isInstanceOf(ds, "Address"))
448+ let dp = {
449+ let dq = do
450+ if ($isInstanceOf(dq, "Address"))
455451 then {
456- let dt = ds
457- invoke(dt, "emit", [dp], nil)
452+ let dr = dq
453+ invoke(dr, "emit", [dn], nil)
458454 }
459455 else unit
460456 }
461- if ((dr == dr))
462- then dp
457+ if ((dp == dp))
458+ then dn
463459 else throw("Strict value is not equal to itself.")
464460 }
465461 else throw("Strict value is not equal to itself.")
466462 }
467463
468464
469-func du (dp) = {
470- let dv = fraction(dp, ag, b)
471- $Tuple2((dp - dv), dv)
465+func ds (dn) = {
466+ let dt = fraction(dn, ae, b)
467+ $Tuple2((dn - dt), dt)
472468 }
473469
474470
475-func dw (dx,dy,Z,aa) = {
476- let dz = (aa == unit)
477- let dA = bs(aO(aW))
478- let dB = bs(aO(aX))
479- let dC = if ((dy == aW))
471+func du (dv,dw,X,Y) = {
472+ let dx = (Y == unit)
473+ let dy = bq(aM(aU))
474+ let dz = bq(aM(aV))
475+ let dA = if ((dw == aU))
480476 then true
481- else if ((dy == aX))
477+ else if ((dw == aV))
482478 then false
483- else aD("invalid asset")
484- let dD = if (dz)
485- then $Tuple2(dA, dB)
486- else if (dC)
487- then $Tuple2((dA - dx), dB)
488- else $Tuple2(dA, (dB - dx))
489- let dE = dD._1
490- let dF = dD._2
491- let dG = if (dC)
492- then $Tuple2(dx, 0)
493- else $Tuple2(0, dx)
494- let dH = dG._1
495- let dI = dG._2
496- let dJ = du(dH)._1
497- let dK = du(dI)._1
498- let dL = du(dx)
499- let dM = dL._1
500- let dv = dL._2
501- let dN = (dE + dJ)
502- let dO = (dF + dK)
503- let dP = bu(F(dO, aZ), F(dN, aY))
504- let dQ = I(dP, b)
505- let dR = if (dC)
506- then dE
507- else dF
508- let dS = toBigInt(dR)
509- let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
510- let dU = if ((dT > f))
479+ else aB("invalid asset")
480+ let dB = if (dx)
481+ then $Tuple2(dy, dz)
482+ else if (dA)
483+ then $Tuple2((dy - dv), dz)
484+ else $Tuple2(dy, (dz - dv))
485+ let dC = dB._1
486+ let dD = dB._2
487+ let dE = if (dA)
488+ then $Tuple2(dv, 0)
489+ else $Tuple2(0, dv)
490+ let dF = dE._1
491+ let dG = dE._2
492+ let dH = ds(dF)._1
493+ let dI = ds(dG)._1
494+ let dJ = ds(dv)
495+ let dK = dJ._1
496+ let dt = dJ._2
497+ let dL = (dC + dH)
498+ let dM = (dD + dI)
499+ let dN = bs(D(dM, aX), D(dL, aW))
500+ let dO = G(dN, b)
501+ let dP = if (dA)
502+ then dC
503+ else dD
504+ let dQ = toBigInt(dP)
505+ let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
506+ let dS = if ((dR > f))
511507 then true
512- else aD("initial deposit requires all coins")
513- if ((dU == dU))
508+ else aB("initial deposit requires all coins")
509+ if ((dS == dS))
514510 then {
515- let dV = toBigInt(dM)
516- let dW = max([0, toInt(((dT * (sqrtBigInt((d + ((dV * d) / dS)), 18, 18, DOWN) - d)) / d))])
517- let cR = if (dz)
511+ let dT = toBigInt(dK)
512+ let dU = max([0, toInt(((dR * (sqrtBigInt((d + ((dT * d) / dQ)), 18, 18, DOWN) - d)) / d))])
513+ let cP = if (dx)
518514 then nil
519- else [IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ), StringEntry(Y(toString(value(Z)), toBase58String(value(aa))), bd(dH, dI, dW, dQ, 0, 0, height, lastBlock.timestamp, 0, 0))]
520- let dX = bu(F(dF, aZ), F(dE, aY))
521- let dY = I(dX, b)
522- let dZ = {
523- let ea = if (dC)
524- then $Tuple2(dH, dE)
525- else $Tuple2(dI, dF)
526- let dp = ea._1
527- let eb = ea._2
528- let ec = toInt(fraction(dT, toBigInt((dp / 2)), toBigInt(eb)))
529- fraction((dW - ec), b, ec)
515+ else [IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO), StringEntry(W(toString(value(X)), toBase58String(value(Y))), bb(dF, dG, dU, dO, 0, 0, height, lastBlock.timestamp, 0, 0))]
516+ let dV = bs(D(dD, aX), D(dC, aW))
517+ let dW = G(dV, b)
518+ let dX = {
519+ let dY = if (dA)
520+ then $Tuple2(dF, dC)
521+ else $Tuple2(dG, dD)
522+ let dn = dY._1
523+ let dZ = dY._2
524+ let ea = toInt(fraction(dR, toBigInt((dn / 2)), toBigInt(dZ)))
525+ fraction((dU - ea), b, ea)
530526 }
531- $Tuple4(dW, cR, dv, dZ)
527+ $Tuple4(dU, cP, dt, dX)
532528 }
533529 else throw("Strict value is not equal to itself.")
534530 }
535531
536532
537-func ed (ee,dM,dy,Z,aa) = {
538- let dz = (aa == unit)
539- let ef = [if ((dy == aV))
533+func eb (ec,dK,dw,X,Y) = {
534+ let dx = (Y == unit)
535+ let ed = [if ((dw == aT))
540536 then true
541- else aD("invalid lp asset")]
542- if ((ef == ef))
537+ else aB("invalid lp asset")]
538+ if ((ed == ed))
543539 then {
544- let eg = if ((ee == aW))
540+ let ee = if ((ec == aU))
545541 then true
546- else if ((ee == aX))
542+ else if ((ec == aV))
547543 then false
548- else aD("invalid asset")
549- let eh = if (eg)
550- then toBigInt(bs(aO(aW)))
551- else toBigInt(bs(aO(aX)))
552- let ei = bs(aO(aW))
553- let ej = bs(aO(aX))
554- let ek = if (eg)
555- then ei
556- else ej
557- let el = toBigInt(ek)
558- let dT = toBigInt(valueOrErrorMessage(assetInfo(aV), (("asset " + toBase58String(aV)) + " doesn't exist")).quantity)
559- let em = toBigInt(dM)
560- let en = max([0, toInt(((eh * (d - pow((d - ((em * d) / dT)), 18, h, 0, 18, DOWN))) / d))])
561- let eo = du(en)
544+ else aB("invalid asset")
545+ let ef = if (ee)
546+ then toBigInt(bq(aM(aU)))
547+ else toBigInt(bq(aM(aV)))
548+ let eg = bq(aM(aU))
549+ let eh = bq(aM(aV))
550+ let ei = if (ee)
551+ then eg
552+ else eh
553+ let ej = toBigInt(ei)
554+ let dR = toBigInt(valueOrErrorMessage(assetInfo(aT), (("asset " + toBase58String(aT)) + " doesn't exist")).quantity)
555+ let ek = toBigInt(dK)
556+ let el = max([0, toInt(((ef * (d - pow((d - ((ek * d) / dR)), 18, h, 0, 18, DOWN))) / d))])
557+ let em = ds(el)
558+ let en = em._1
559+ let dt = em._2
560+ let eo = if (ee)
561+ then $Tuple4(en, 0, (eg - el), eh)
562+ else $Tuple4(0, en, eg, (eh - el))
562563 let ep = eo._1
563- let dv = eo._2
564- let eq = if (eg)
565- then $Tuple4(ep, 0, (ei - en), ej)
566- else $Tuple4(0, ep, ei, (ej - en))
567- let er = eq._1
568- let es = eq._2
569- let et = eq._3
570- let eu = eq._4
571- let dP = bu(F(eu, aZ), F(et, aY))
572- let dQ = I(dP, b)
573- let cR = if (dz)
564+ let eq = eo._2
565+ let er = eo._3
566+ let es = eo._4
567+ let dN = bs(D(es, aX), D(er, aW))
568+ let dO = G(dN, b)
569+ let cP = if (dx)
574570 then nil
575- else [StringEntry(ab(toString(value(Z)), toBase58String(value(aa))), bo(er, es, dM, dQ, height, lastBlock.timestamp)), IntegerEntry(U(), dQ), IntegerEntry(V(height, lastBlock.timestamp), dQ)]
576- let dX = bu(F(ej, aZ), F(ei, aY))
577- let dY = I(dX, b)
578- let dZ = {
579- let ev = (toInt(fraction(eh, em, dT)) * 2)
580- fraction((ep - ev), b, ev)
571+ else [StringEntry(Z(toString(value(X)), toBase58String(value(Y))), bm(ep, eq, dK, dO, height, lastBlock.timestamp)), IntegerEntry(S(), dO), IntegerEntry(T(height, lastBlock.timestamp), dO)]
572+ let dV = bs(D(eh, aX), D(eg, aW))
573+ let dW = G(dV, b)
574+ let dX = {
575+ let et = (toInt(fraction(ef, ek, dR)) * 2)
576+ fraction((en - et), b, et)
581577 }
582- $Tuple4(ep, cR, dv, dZ)
578+ $Tuple4(en, cP, dt, dX)
583579 }
584580 else throw("Strict value is not equal to itself.")
585581 }
586582
587583
588-func ew () = {
589- let ds = getString(S())
590- if ($isInstanceOf(ds, "String"))
584+func eu () = {
585+ let dq = getString(Q())
586+ if ($isInstanceOf(dq, "String"))
591587 then {
592- let ex = ds
593- fromBase58String(ex)
588+ let ev = dq
589+ fromBase58String(ev)
594590 }
595- else if ($isInstanceOf(ds, "Unit"))
591+ else if ($isInstanceOf(dq, "Unit"))
596592 then unit
597593 else throw("Match error")
598594 }
599595
600596
601-func ey () = {
602- let ds = getString(T())
603- if ($isInstanceOf(ds, "String"))
597+func ew () = {
598+ let dq = getString(R())
599+ if ($isInstanceOf(dq, "String"))
604600 then {
605- let ex = ds
606- fromBase58String(ex)
601+ let ev = dq
602+ fromBase58String(ev)
607603 }
608- else if ($isInstanceOf(ds, "Unit"))
604+ else if ($isInstanceOf(dq, "Unit"))
609605 then unit
610606 else throw("Match error")
611607 }
612608
613609
614-func ez (dh) = {
615- let eA = throw("Permission denied")
616- let ds = ew()
617- if ($isInstanceOf(ds, "ByteVector"))
610+func ex (df) = {
611+ let ey = throw("Permission denied")
612+ let dq = eu()
613+ if ($isInstanceOf(dq, "ByteVector"))
618614 then {
619- let eB = ds
620- if ((dh.callerPublicKey == eB))
615+ let ez = dq
616+ if ((df.callerPublicKey == ez))
621617 then true
622- else eA
618+ else ey
623619 }
624- else if ($isInstanceOf(ds, "Unit"))
625- then if ((dh.caller == this))
620+ else if ($isInstanceOf(dq, "Unit"))
621+ then if ((df.caller == this))
626622 then true
627- else eA
623+ else ey
628624 else throw("Match error")
629625 }
630626
631627
632-@Callable(dh)
633-func setManager (eC) = {
634- let eD = ez(dh)
635- if ((eD == eD))
628+@Callable(df)
629+func setManager (eA) = {
630+ let eB = ex(df)
631+ if ((eB == eB))
636632 then {
637- let eE = fromBase58String(eC)
638- if ((eE == eE))
639- then [StringEntry(T(), eC)]
633+ let eC = fromBase58String(eA)
634+ if ((eC == eC))
635+ then [StringEntry(R(), eA)]
640636 else throw("Strict value is not equal to itself.")
641637 }
642638 else throw("Strict value is not equal to itself.")
643639 }
644640
645641
646642
647-@Callable(dh)
643+@Callable(df)
648644 func confirmManager () = {
649- let eF = ey()
650- let eG = if (isDefined(eF))
645+ let eD = ew()
646+ let eE = if (isDefined(eD))
651647 then true
652648 else throw("No pending manager")
653- if ((eG == eG))
649+ if ((eE == eE))
654650 then {
655- let eH = if ((dh.callerPublicKey == value(eF)))
651+ let eF = if ((df.callerPublicKey == value(eD)))
656652 then true
657653 else throw("You are not pending manager")
658- if ((eH == eH))
659- then [StringEntry(S(), toBase58String(value(eF))), DeleteEntry(T())]
654+ if ((eF == eF))
655+ then [StringEntry(Q(), toBase58String(value(eD))), DeleteEntry(R())]
660656 else throw("Strict value is not equal to itself.")
661657 }
662658 else throw("Strict value is not equal to itself.")
663659 }
664660
665661
666662
667-@Callable(dh)
668-func put (cm,eI) = if ((0 > cm))
663+@Callable(df)
664+func put (ck,eG) = if ((0 > ck))
669665 then throw("Invalid slippageTolerance passed")
670666 else {
671- let dn = dk(dh, cm, true)
672- let cO = dn._2
673- let bT = dn._7
674- let ck = dn._9
675- let cP = dn._10
676- let cQ = dn._11
677- let eJ = dn._12
678- let eK = dn._13
679- let dq = invoke(aF, "emit", [cO], nil)
680- if ((dq == dq))
667+ let dl = di(df, ck, true)
668+ let cM = dl._2
669+ let bR = dl._7
670+ let ci = dl._9
671+ let cN = dl._10
672+ let cO = dl._11
673+ let eH = dl._12
674+ let eI = dl._13
675+ let do = invoke(aD, "emit", [cM], nil)
676+ if ((do == do))
681677 then {
682- let dr = {
683- let ds = dq
684- if ($isInstanceOf(ds, "Address"))
678+ let dp = {
679+ let dq = do
680+ if ($isInstanceOf(dq, "Address"))
685681 then {
686- let dt = ds
687- invoke(dt, "emit", [cO], nil)
682+ let dr = dq
683+ invoke(dr, "emit", [cM], nil)
688684 }
689685 else unit
690686 }
691- if ((dr == dr))
687+ if ((dp == dp))
692688 then {
693- let eL = if ((cP > 0))
694- then invoke(bc, "put", nil, [AttachedPayment(eJ, cP)])
689+ let eJ = if ((cN > 0))
690+ then invoke(ba, "put", nil, [AttachedPayment(eH, cN)])
695691 else nil
696- if ((eL == eL))
692+ if ((eJ == eJ))
697693 then {
698- let eM = if ((cQ > 0))
699- then invoke(bc, "put", nil, [AttachedPayment(eK, cQ)])
694+ let eK = if ((cO > 0))
695+ then invoke(ba, "put", nil, [AttachedPayment(eI, cO)])
700696 else nil
701- if ((eM == eM))
697+ if ((eK == eK))
702698 then {
703- let eN = if (eI)
699+ let eL = if (eG)
704700 then {
705- let eO = invoke(bb, "stake", nil, [AttachedPayment(bT, cO)])
706- if ((eO == eO))
701+ let eM = invoke(aZ, "stake", nil, [AttachedPayment(bR, cM)])
702+ if ((eM == eM))
707703 then nil
708704 else throw("Strict value is not equal to itself.")
709705 }
710- else [ScriptTransfer(dh.caller, cO, bT)]
711- (ck ++ eN)
706+ else [ScriptTransfer(df.caller, cM, bR)]
707+ (ci ++ eL)
712708 }
713709 else throw("Strict value is not equal to itself.")
714710 }
715711 else throw("Strict value is not equal to itself.")
716712 }
717713 else throw("Strict value is not equal to itself.")
718714 }
719715 else throw("Strict value is not equal to itself.")
720716 }
721717
722718
723719
724-@Callable(dh)
725-func putForFree (eP) = if ((0 > eP))
720+@Callable(df)
721+func putForFree (eN) = if ((0 > eN))
726722 then throw("Invalid value passed")
727723 else {
728- let dn = dk(dh, eP, false)
729- dn._9
724+ let dl = di(df, eN, false)
725+ dl._9
730726 }
731727
732728
733729
734-@Callable(dh)
735-func putOneTkn (eQ,eR) = {
736- let eS = {
737- let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
738- if ($isInstanceOf(eT, "Boolean"))
739- then eT
740- else throw(($getType(eT) + " couldn't be cast to Boolean"))
730+@Callable(df)
731+func putOneTkn (eO,eP) = {
732+ let eQ = {
733+ let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
734+ if ($isInstanceOf(eR, "Boolean"))
735+ then eR
736+ else throw(($getType(eR) + " couldn't be cast to Boolean"))
741737 }
742- let eU = if (if (if (aH())
738+ let eS = if (if (if (aF())
743739 then true
744- else (aU == l))
740+ else (aS == l))
745741 then true
746- else (aU == n))
742+ else (aS == n))
747743 then true
748- else eS
749- let ef = [if (!(eU))
744+ else eQ
745+ let ed = [if (!(eS))
750746 then true
751- else aD("put operation is blocked by admin"), if ((size(dh.payments) == 1))
747+ else aB("put operation is blocked by admin"), if ((size(df.payments) == 1))
752748 then true
753- else aD("exactly 1 payment are expected")]
754- if ((ef == ef))
749+ else aB("exactly 1 payment are expected")]
750+ if ((ed == ed))
755751 then {
756- let eV = dh.payments[0]
757- let dy = eV.assetId
758- let dx = eV.amount
759- let Z = dh.caller
760- let aa = dh.transactionId
761- let eW = dw(dx, dy, Z, aa)
762- let eX = eW._1
763- let cR = eW._2
764- let dv = eW._3
765- let eY = eW._4
766- let eZ = if (if ((eQ > 0))
767- then (eQ > eX)
752+ let eT = df.payments[0]
753+ let dw = eT.assetId
754+ let dv = eT.amount
755+ let X = df.caller
756+ let Y = df.transactionId
757+ let eU = du(dv, dw, X, Y)
758+ let eV = eU._1
759+ let cP = eU._2
760+ let dt = eU._3
761+ let eW = eU._4
762+ let eX = if (if ((eO > 0))
763+ then (eO > eV)
768764 else false)
769- then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
770- else eX
771- let dq = do(eZ)
772- if ((dq == dq))
765+ then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
766+ else eV
767+ let do = dm(eX)
768+ if ((do == do))
773769 then {
774- let eN = if (eR)
770+ let eL = if (eP)
775771 then {
776- let fa = invoke(bb, "stake", nil, [AttachedPayment(aV, eZ)])
777- if ((fa == fa))
772+ let eY = invoke(aZ, "stake", nil, [AttachedPayment(aT, eX)])
773+ if ((eY == eY))
778774 then nil
779775 else throw("Strict value is not equal to itself.")
780776 }
781- else [ScriptTransfer(dh.caller, eZ, aV)]
782- let fb = if ((dv > 0))
783- then [ScriptTransfer(aG, dv, dy)]
777+ else [ScriptTransfer(df.caller, eX, aT)]
778+ let eZ = if ((dt > 0))
779+ then [ScriptTransfer(aE, dt, dw)]
784780 else nil
785- $Tuple2(((cR ++ eN) ++ fb), eZ)
781+ $Tuple2(((cP ++ eL) ++ eZ), eX)
786782 }
787783 else throw("Strict value is not equal to itself.")
788784 }
789785 else throw("Strict value is not equal to itself.")
790786 }
791787
792788
793789
794-@Callable(dh)
795-func putOneTknREADONLY (dy,dx) = {
796- let fc = dw(dx, aM(dy), unit, unit)
797- let eX = fc._1
798- let cR = fc._2
799- let dv = fc._3
800- let eY = fc._4
801- $Tuple2(nil, $Tuple3(eX, dv, eY))
790+@Callable(df)
791+func putOneTknREADONLY (dw,dv) = {
792+ let fa = du(dv, aK(dw), unit, unit)
793+ let eV = fa._1
794+ let cP = fa._2
795+ let dt = fa._3
796+ let eW = fa._4
797+ $Tuple2(nil, $Tuple3(eV, dt, eW))
802798 }
803799
804800
805801
806-@Callable(dh)
807-func getOneTkn (fd,eQ) = {
808- let eS = {
809- let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
810- if ($isInstanceOf(eT, "Boolean"))
811- then eT
812- else throw(($getType(eT) + " couldn't be cast to Boolean"))
802+@Callable(df)
803+func getOneTkn (fb,eO) = {
804+ let eQ = {
805+ let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
806+ if ($isInstanceOf(eR, "Boolean"))
807+ then eR
808+ else throw(($getType(eR) + " couldn't be cast to Boolean"))
813809 }
814- let fe = if (if (aH())
810+ let fc = if (if (aF())
815811 then true
816- else (aU == n))
812+ else (aS == n))
817813 then true
818- else eS
819- let ef = [if (!(fe))
814+ else eQ
815+ let ed = [if (!(fc))
820816 then true
821- else aD("get operation is blocked by admin"), if ((size(dh.payments) == 1))
817+ else aB("get operation is blocked by admin"), if ((size(df.payments) == 1))
822818 then true
823- else aD("exactly 1 payment are expected")]
824- if ((ef == ef))
819+ else aB("exactly 1 payment are expected")]
820+ if ((ed == ed))
825821 then {
826- let ee = aM(fd)
827- let eV = dh.payments[0]
828- let dy = eV.assetId
829- let dM = eV.amount
830- let Z = dh.caller
831- let aa = dh.transactionId
832- let ff = ed(ee, dM, dy, Z, aa)
833- let fg = ff._1
834- let cR = ff._2
835- let dv = ff._3
836- let eY = ff._4
837- let dp = if (if ((eQ > 0))
838- then (eQ > fg)
822+ let ec = aK(fb)
823+ let eT = df.payments[0]
824+ let dw = eT.assetId
825+ let dK = eT.amount
826+ let X = df.caller
827+ let Y = df.transactionId
828+ let fd = eb(ec, dK, dw, X, Y)
829+ let fe = fd._1
830+ let cP = fd._2
831+ let dt = fd._3
832+ let eW = fd._4
833+ let dn = if (if ((eO > 0))
834+ then (eO > fe)
839835 else false)
840- then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
841- else fg
842- let fh = invoke(aF, "burn", [dM], [AttachedPayment(dy, dM)])
843- if ((fh == fh))
836+ then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
837+ else fe
838+ let ff = invoke(aD, "burn", [dK], [AttachedPayment(dw, dK)])
839+ if ((ff == ff))
844840 then {
845- let fi = [ScriptTransfer(Z, dp, ee)]
846- let fb = if ((dv > 0))
847- then [ScriptTransfer(aG, dv, ee)]
841+ let fg = [ScriptTransfer(X, dn, ec)]
842+ let eZ = if ((dt > 0))
843+ then [ScriptTransfer(aE, dt, ec)]
848844 else nil
849- $Tuple2(((cR ++ fi) ++ fb), dp)
845+ $Tuple2(((cP ++ fg) ++ eZ), dn)
850846 }
851847 else throw("Strict value is not equal to itself.")
852848 }
853849 else throw("Strict value is not equal to itself.")
854850 }
855851
856852
857853
858-@Callable(dh)
859-func getOneTknREADONLY (ee,dM) = {
860- let fj = ed(aM(ee), dM, aV, unit, unit)
861- let fg = fj._1
862- let cR = fj._2
863- let dv = fj._3
864- let eY = fj._4
865- $Tuple2(nil, $Tuple3(fg, dv, eY))
854+@Callable(df)
855+func getOneTknREADONLY (ec,dK) = {
856+ let fh = eb(aK(ec), dK, aT, unit, unit)
857+ let fe = fh._1
858+ let cP = fh._2
859+ let dt = fh._3
860+ let eW = fh._4
861+ $Tuple2(nil, $Tuple3(fe, dt, eW))
866862 }
867863
868864
869865
870-@Callable(dh)
871-func unstakeAndGetOneTkn (fk,fd,eQ) = {
872- let eS = {
873- let eT = invoke(aF, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
874- if ($isInstanceOf(eT, "Boolean"))
875- then eT
876- else throw(($getType(eT) + " couldn't be cast to Boolean"))
866+@Callable(df)
867+func unstakeAndGetOneTkn (fi,fb,eO) = {
868+ let eQ = {
869+ let eR = invoke(aD, "isPoolOneTokenOperationsDisabledREADONLY", [toString(this)], nil)
870+ if ($isInstanceOf(eR, "Boolean"))
871+ then eR
872+ else throw(($getType(eR) + " couldn't be cast to Boolean"))
877873 }
878- let fe = if (if (aH())
874+ let fc = if (if (aF())
879875 then true
880- else (aU == n))
876+ else (aS == n))
881877 then true
882- else eS
883- let ef = [if (!(fe))
878+ else eQ
879+ let ed = [if (!(fc))
884880 then true
885- else aD("get operation is blocked by admin"), if ((size(dh.payments) == 0))
881+ else aB("get operation is blocked by admin"), if ((size(df.payments) == 0))
886882 then true
887- else aD("no payments are expected")]
888- if ((ef == ef))
883+ else aB("no payments are expected")]
884+ if ((ed == ed))
889885 then {
890- let ee = aM(fd)
891- let Z = dh.caller
892- let aa = dh.transactionId
893- let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
894- if ((fl == fl))
886+ let ec = aK(fb)
887+ let X = df.caller
888+ let Y = df.transactionId
889+ let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
890+ if ((fj == fj))
895891 then {
896- let fm = ed(ee, fk, aV, Z, aa)
897- let fg = fm._1
898- let cR = fm._2
899- let dv = fm._3
900- let eY = fm._4
901- let dp = if (if ((eQ > 0))
902- then (eQ > fg)
892+ let fk = eb(ec, fi, aT, X, Y)
893+ let fe = fk._1
894+ let cP = fk._2
895+ let dt = fk._3
896+ let eW = fk._4
897+ let dn = if (if ((eO > 0))
898+ then (eO > fe)
903899 else false)
904- then aD(makeString(["amount to receive is less than ", toString(eQ)], ""))
905- else fg
906- let fh = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
907- if ((fh == fh))
900+ then aB(makeString(["amount to receive is less than ", toString(eO)], ""))
901+ else fe
902+ let ff = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
903+ if ((ff == ff))
908904 then {
909- let fi = [ScriptTransfer(dh.caller, dp, ee)]
910- let fb = if ((dv > 0))
911- then [ScriptTransfer(aG, dv, ee)]
905+ let fg = [ScriptTransfer(df.caller, dn, ec)]
906+ let eZ = if ((dt > 0))
907+ then [ScriptTransfer(aE, dt, ec)]
912908 else nil
913- $Tuple2(((cR ++ fi) ++ fb), dp)
909+ $Tuple2(((cP ++ fg) ++ eZ), dn)
914910 }
915911 else throw("Strict value is not equal to itself.")
916912 }
917913 else throw("Strict value is not equal to itself.")
918914 }
919915 else throw("Strict value is not equal to itself.")
920916 }
921917
922918
923919
924-@Callable(dh)
920+@Callable(df)
925921 func get () = {
926- let cC = dg(dh)
927- let fn = cC._1
928- let cj = cC._2
929- let dj = cC._3
930- let bR = cC._4
931- let ck = cC._5
932- let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
933- if ((fo == fo))
934- then ck
922+ let cA = de(df)
923+ let fl = cA._1
924+ let ch = cA._2
925+ let dh = cA._3
926+ let bP = cA._4
927+ let ci = cA._5
928+ let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
929+ if ((fm == fm))
930+ then ci
935931 else throw("Strict value is not equal to itself.")
936932 }
937933
938934
939935
940-@Callable(dh)
941-func getNoLess (fp,fq) = {
942- let cC = dg(dh)
943- let ci = cC._1
944- let cj = cC._2
945- let dj = cC._3
946- let bR = cC._4
947- let ck = cC._5
948- if ((fp > ci))
949- then throw(((("noLessThenAmtAsset failed: " + toString(ci)) + " < ") + toString(fp)))
950- else if ((fq > cj))
951- then throw(((("noLessThenPriceAsset failed: " + toString(cj)) + " < ") + toString(fq)))
936+@Callable(df)
937+func getNoLess (fn,fo) = {
938+ let cA = de(df)
939+ let cg = cA._1
940+ let ch = cA._2
941+ let dh = cA._3
942+ let bP = cA._4
943+ let ci = cA._5
944+ if ((fn > cg))
945+ then throw(((("noLessThenAmtAsset failed: " + toString(cg)) + " < ") + toString(fn)))
946+ else if ((fo > ch))
947+ then throw(((("noLessThenPriceAsset failed: " + toString(ch)) + " < ") + toString(fo)))
952948 else {
953- let fo = invoke(aF, "burn", [dj], [AttachedPayment(bR, dj)])
954- if ((fo == fo))
955- then ck
949+ let fm = invoke(aD, "burn", [dh], [AttachedPayment(bP, dh)])
950+ if ((fm == fm))
951+ then ci
956952 else throw("Strict value is not equal to itself.")
957953 }
958954 }
959955
960956
961957
962-@Callable(dh)
963-func unstakeAndGet (dp) = {
964- let fr = if ((size(dh.payments) != 0))
958+@Callable(df)
959+func unstakeAndGet (dn) = {
960+ let fp = if ((size(df.payments) != 0))
965961 then throw("No payments are expected")
966962 else true
967- if ((fr == fr))
963+ if ((fp == fp))
968964 then {
969- let bG = aJ()
970- let bT = fromBase58String(bG[q])
971- let fl = invoke(bb, "unstake", [toBase58String(bT), dp], nil)
972- if ((fl == fl))
965+ let bE = aH()
966+ let bR = fromBase58String(bE[q])
967+ let fj = invoke(aZ, "unstake", [toBase58String(bR), dn], nil)
968+ if ((fj == fj))
973969 then {
974- let cC = bP(toBase58String(dh.transactionId), toBase58String(bT), dp, dh.caller)
975- let bW = parseIntValue(cC._9)
976- let ck = cC._10
977- let fs = if (if (aH())
970+ let cA = bN(toBase58String(df.transactionId), toBase58String(bR), dn, df.caller)
971+ let bU = parseIntValue(cA._9)
972+ let ci = cA._10
973+ let fq = if (if (aF())
978974 then true
979- else (bW == n))
980- then throw(("Get operation is blocked by admin. Status = " + toString(bW)))
975+ else (bU == n))
976+ then throw(("Get operation is blocked by admin. Status = " + toString(bU)))
981977 else true
982- if ((fs == fs))
978+ if ((fq == fq))
983979 then {
984- let fo = invoke(aF, "burn", [dp], [AttachedPayment(bT, dp)])
985- if ((fo == fo))
986- then ck
980+ let fm = invoke(aD, "burn", [dn], [AttachedPayment(bR, dn)])
981+ if ((fm == fm))
982+ then ci
987983 else throw("Strict value is not equal to itself.")
988984 }
989985 else throw("Strict value is not equal to itself.")
990986 }
991987 else throw("Strict value is not equal to itself.")
992988 }
993989 else throw("Strict value is not equal to itself.")
994990 }
995991
996992
997993
998-@Callable(dh)
999-func unstakeAndGetNoLess (fk,ft,fq) = {
1000- let fe = if (aH())
994+@Callable(df)
995+func unstakeAndGetNoLess (fi,fr,fo) = {
996+ let fc = if (aF())
1001997 then true
1002- else (aU == n)
1003- let ef = [if (!(fe))
998+ else (aS == n)
999+ let ed = [if (!(fc))
10041000 then true
1005- else throw("get operation is blocked by admin"), if ((size(dh.payments) == 0))
1001+ else throw("get operation is blocked by admin"), if ((size(df.payments) == 0))
10061002 then true
10071003 else throw("no payments are expected")]
1008- if ((ef == ef))
1004+ if ((ed == ed))
10091005 then {
1010- let fl = invoke(bb, "unstake", [toBase58String(aV), fk], nil)
1011- if ((fl == fl))
1006+ let fj = invoke(aZ, "unstake", [toBase58String(aT), fi], nil)
1007+ if ((fj == fj))
10121008 then {
1013- let cC = bP(toBase58String(dh.transactionId), toBase58String(aV), fk, dh.caller)
1014- let ci = cC._1
1015- let cj = cC._2
1016- let ck = cC._10
1017- let fu = [if ((ci >= ft))
1009+ let cA = bN(toBase58String(df.transactionId), toBase58String(aT), fi, df.caller)
1010+ let cg = cA._1
1011+ let ch = cA._2
1012+ let ci = cA._10
1013+ let fs = [if ((cg >= fr))
10181014 then true
1019- else throw(makeString(["amount asset amount to receive is less than ", toString(ft)], "")), if ((cj >= fq))
1015+ else throw(makeString(["amount asset amount to receive is less than ", toString(fr)], "")), if ((ch >= fo))
10201016 then true
1021- else throw(makeString(["price asset amount to receive is less than ", toString(fq)], ""))]
1022- if ((fu == fu))
1017+ else throw(makeString(["price asset amount to receive is less than ", toString(fo)], ""))]
1018+ if ((fs == fs))
10231019 then {
1024- let fo = invoke(aF, "burn", [fk], [AttachedPayment(aV, fk)])
1025- if ((fo == fo))
1026- then ck
1020+ let fm = invoke(aD, "burn", [fi], [AttachedPayment(aT, fi)])
1021+ if ((fm == fm))
1022+ then ci
10271023 else throw("Strict value is not equal to itself.")
10281024 }
10291025 else throw("Strict value is not equal to itself.")
10301026 }
10311027 else throw("Strict value is not equal to itself.")
10321028 }
10331029 else throw("Strict value is not equal to itself.")
10341030 }
10351031
10361032
10371033
1038-@Callable(dh)
1039-func activate (fv,fw) = if ((toString(dh.caller) != toString(aF)))
1034+@Callable(df)
1035+func activate (ft,fu) = if ((toString(df.caller) != toString(aD)))
10401036 then throw("permissions denied")
1041- else $Tuple2([StringEntry(ac(), fv), StringEntry(ad(), fw)], "success")
1037+ else $Tuple2([StringEntry(aa(), ft), StringEntry(ab(), fu)], "success")
10421038
10431039
10441040
1045-@Callable(dh)
1046-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aJ())
1041+@Callable(df)
1042+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, aH())
10471043
10481044
10491045
1050-@Callable(dh)
1051-func getAccBalanceWrapperREADONLY (bt) = $Tuple2(nil, bs(bt))
1046+@Callable(df)
1047+func getAccBalanceWrapperREADONLY (br) = $Tuple2(nil, bq(br))
10521048
10531049
10541050
1055-@Callable(dh)
1056-func calcPricesWrapperREADONLY (bA,bB,bF) = {
1057- let bO = bE(bA, bB, bF)
1058- $Tuple2(nil, [toString(bO[0]), toString(bO[1]), toString(bO[2])])
1051+@Callable(df)
1052+func calcPricesWrapperREADONLY (by,bz,bD) = {
1053+ let bM = bC(by, bz, bD)
1054+ $Tuple2(nil, [toString(bM[0]), toString(bM[1]), toString(bM[2])])
10591055 }
10601056
10611057
10621058
1063-@Callable(dh)
1064-func toX18WrapperREADONLY (G,H) = $Tuple2(nil, toString(F(G, H)))
1059+@Callable(df)
1060+func toX18WrapperREADONLY (E,F) = $Tuple2(nil, toString(D(E, F)))
10651061
10661062
10671063
1068-@Callable(dh)
1069-func fromX18WrapperREADONLY (J,K) = $Tuple2(nil, I(parseBigIntValue(J), K))
1064+@Callable(df)
1065+func fromX18WrapperREADONLY (H,I) = $Tuple2(nil, G(parseBigIntValue(H), I))
10701066
10711067
10721068
1073-@Callable(dh)
1074-func calcPriceBigIntWrapperREADONLY (bv,bw) = $Tuple2(nil, toString(bu(parseBigIntValue(bv), parseBigIntValue(bw))))
1069+@Callable(df)
1070+func calcPriceBigIntWrapperREADONLY (bt,bu) = $Tuple2(nil, toString(bs(parseBigIntValue(bt), parseBigIntValue(bu))))
10751071
10761072
10771073
1078-@Callable(dh)
1079-func estimatePutOperationWrapperREADONLY (bQ,cm,cn,co,cp,cq,Z,cr,cs) = $Tuple2(nil, cl(bQ, cm, cn, co, cp, cq, Z, cr, cs))
1074+@Callable(df)
1075+func estimatePutOperationWrapperREADONLY (bO,ck,cl,cm,cn,co,X,cp,cq) = $Tuple2(nil, cj(bO, ck, cl, cm, cn, co, X, cp, cq))
10801076
10811077
10821078
1083-@Callable(dh)
1084-func estimateGetOperationWrapperREADONLY (bQ,bR,bS,Z) = {
1085- let cC = bP(bQ, bR, bS, addressFromStringValue(Z))
1086- $Tuple2(nil, $Tuple10(cC._1, cC._2, cC._3, cC._4, cC._5, cC._6, cC._7, toString(cC._8), cC._9, cC._10))
1079+@Callable(df)
1080+func estimateGetOperationWrapperREADONLY (bO,bP,bQ,X) = {
1081+ let cA = bN(bO, bP, bQ, addressFromStringValue(X))
1082+ $Tuple2(nil, $Tuple10(cA._1, cA._2, cA._3, cA._4, cA._5, cA._6, cA._7, toString(cA._8), cA._9, cA._10))
10871083 }
10881084
10891085
10901086
1091-@Callable(dh)
1087+@Callable(df)
10921088 func statsREADONLY () = {
1093- let bG = aJ()
1094- let bT = fromBase58String(bG[q])
1095- let cU = bG[r]
1096- let cV = bG[s]
1097- let cv = bG[v]
1098- let cw = bG[w]
1099- let bH = parseIntValue(bG[t])
1100- let bI = parseIntValue(bG[u])
1101- let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1102- let cW = bs(cU)
1103- let cX = bs(cV)
1104- let fy = if ((fx == 0))
1089+ let bE = aH()
1090+ let bR = fromBase58String(bE[q])
1091+ let cS = bE[r]
1092+ let cT = bE[s]
1093+ let ct = bE[v]
1094+ let cu = bE[w]
1095+ let bF = parseIntValue(bE[t])
1096+ let bG = parseIntValue(bE[u])
1097+ let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1098+ let cU = bq(cS)
1099+ let cV = bq(cT)
1100+ let fw = if ((fv == 0))
11051101 then [e, e, e]
1106- else bE(cW, cX, fx)
1107- let cd = 0
1108- let fz = I(fy[1], b)
1109- let fA = I(fy[2], b)
1110- let fB = value(getInteger(aF, ar(toString(this))))
1111- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cW), toString(cX), toString(fx), toString(cd), toString(fz), toString(fA), toString(fB)], j))
1102+ else bC(cU, cV, fv)
1103+ let cb = 0
1104+ let fx = G(fw[1], b)
1105+ let fy = G(fw[2], b)
1106+ let fz = value(getInteger(aD, ap(toString(this))))
1107+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cU), toString(cV), toString(fv), toString(cb), toString(fx), toString(fy), toString(fz)], j))
11121108 }
11131109
11141110
11151111
1116-@Callable(dh)
1117-func evaluatePutByAmountAssetREADONLY (cn) = {
1118- let bG = aJ()
1119- let bT = fromBase58String(bG[q])
1120- let ct = bG[r]
1121- let bU = fromBase58String(ct)
1122- let cu = bG[s]
1123- let bV = fromBase58String(cu)
1124- let bH = parseIntValue(bG[t])
1125- let bI = parseIntValue(bG[u])
1126- let bW = bG[p]
1127- let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1128- let cW = bs(ct)
1129- let cX = bs(cu)
1130- let bC = F(cW, bH)
1131- let bD = F(cX, bI)
1132- let cc = if ((fx == 0))
1112+@Callable(df)
1113+func evaluatePutByAmountAssetREADONLY (cl) = {
1114+ let bE = aH()
1115+ let bR = fromBase58String(bE[q])
1116+ let cr = bE[r]
1117+ let bS = fromBase58String(cr)
1118+ let cs = bE[s]
1119+ let bT = fromBase58String(cs)
1120+ let bF = parseIntValue(bE[t])
1121+ let bG = parseIntValue(bE[u])
1122+ let bU = bE[p]
1123+ let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1124+ let cU = bq(cr)
1125+ let cV = bq(cs)
1126+ let bA = D(cU, bF)
1127+ let bB = D(cV, bG)
1128+ let ca = if ((fv == 0))
11331129 then e
1134- else bu(bD, bC)
1135- let cz = F(cn, bH)
1136- let cA = fraction(cz, cc, d)
1137- let cp = I(cA, bI)
1138- let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1139- let cK = dn._1
1140- let fC = dn._3
1141- let bY = dn._4
1142- let ca = dn._5
1143- let bX = dn._6
1144- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
1130+ else bs(bB, bA)
1131+ let cx = D(cl, bF)
1132+ let cy = fraction(cx, ca, d)
1133+ let cn = G(cy, bG)
1134+ let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1135+ let cI = dl._1
1136+ let fA = dl._3
1137+ let bW = dl._4
1138+ let bY = dl._5
1139+ let bV = dl._6
1140+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
11451141 }
11461142
11471143
11481144
1149-@Callable(dh)
1150-func evaluatePutByPriceAssetREADONLY (cp) = {
1151- let bG = aJ()
1152- let bT = fromBase58String(bG[q])
1153- let ct = bG[r]
1154- let bU = fromBase58String(ct)
1155- let cu = bG[s]
1156- let bV = fromBase58String(cu)
1157- let bH = parseIntValue(bG[t])
1158- let bI = parseIntValue(bG[u])
1159- let bW = bG[p]
1160- let fx = valueOrErrorMessage(assetInfo(bT), (("Asset " + toBase58String(bT)) + " doesn't exist")).quantity
1161- let fD = bs(ct)
1162- let fE = bs(cu)
1163- let fF = F(fD, bH)
1164- let fG = F(fE, bI)
1165- let cc = if ((fx == 0))
1145+@Callable(df)
1146+func evaluatePutByPriceAssetREADONLY (cn) = {
1147+ let bE = aH()
1148+ let bR = fromBase58String(bE[q])
1149+ let cr = bE[r]
1150+ let bS = fromBase58String(cr)
1151+ let cs = bE[s]
1152+ let bT = fromBase58String(cs)
1153+ let bF = parseIntValue(bE[t])
1154+ let bG = parseIntValue(bE[u])
1155+ let bU = bE[p]
1156+ let fv = valueOrErrorMessage(assetInfo(bR), (("Asset " + toBase58String(bR)) + " doesn't exist")).quantity
1157+ let fB = bq(cr)
1158+ let fC = bq(cs)
1159+ let fD = D(fB, bF)
1160+ let fE = D(fC, bG)
1161+ let ca = if ((fv == 0))
11661162 then e
1167- else bu(fG, fF)
1168- let cA = F(cp, bI)
1169- let cz = fraction(cA, d, cc)
1170- let cn = I(cz, bH)
1171- let dn = cl("", 500000, cn, bU, cp, bV, "", true, false)
1172- let cK = dn._1
1173- let fC = dn._3
1174- let bY = dn._4
1175- let ca = dn._5
1176- let bX = dn._6
1177- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cK), toString(I(cc, b)), toString(bY), toString(ca), toString(bX), bW, toString(cn), toString(cp)], j))
1163+ else bs(fE, fD)
1164+ let cy = D(cn, bG)
1165+ let cx = fraction(cy, d, ca)
1166+ let cl = G(cx, bF)
1167+ let dl = cj("", 500000, cl, bS, cn, bT, "", true, false)
1168+ let cI = dl._1
1169+ let fA = dl._3
1170+ let bW = dl._4
1171+ let bY = dl._5
1172+ let bV = dl._6
1173+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cI), toString(G(ca, b)), toString(bW), toString(bY), toString(bV), bU, toString(cl), toString(cn)], j))
11781174 }
11791175
11801176
11811177
1182-@Callable(dh)
1183-func evaluateGetREADONLY (fH,fI) = {
1184- let cC = bP("", fH, fI, this)
1185- let ci = cC._1
1186- let cj = cC._2
1187- let bY = cC._5
1188- let ca = cC._6
1189- let bX = cC._7
1190- let cd = cC._8
1191- let bW = parseIntValue(cC._9)
1192- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(ci), toString(cj), toString(bY), toString(ca), toString(bX), toString(cd), toString(bW)], j))
1178+@Callable(df)
1179+func evaluateGetREADONLY (fF,fG) = {
1180+ let cA = bN("", fF, fG, this)
1181+ let cg = cA._1
1182+ let ch = cA._2
1183+ let bW = cA._5
1184+ let bY = cA._6
1185+ let bV = cA._7
1186+ let cb = cA._8
1187+ let bU = parseIntValue(cA._9)
1188+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cg), toString(ch), toString(bW), toString(bY), toString(bV), toString(cb), toString(bU)], j))
11931189 }
11941190
11951191
1196-@Verifier(fJ)
1197-func fK () = {
1198- let fL = {
1199- let ds = ew()
1200- if ($isInstanceOf(ds, "ByteVector"))
1192+@Verifier(fH)
1193+func fI () = {
1194+ let fJ = {
1195+ let dq = eu()
1196+ if ($isInstanceOf(dq, "ByteVector"))
12011197 then {
1202- let eB = ds
1203- eB
1198+ let ez = dq
1199+ ez
12041200 }
1205- else if ($isInstanceOf(ds, "Unit"))
1206- then fJ.senderPublicKey
1201+ else if ($isInstanceOf(dq, "Unit"))
1202+ then fH.senderPublicKey
12071203 else throw("Match error")
12081204 }
1209- let ds = fJ
1210- if ($isInstanceOf(ds, "Order"))
1205+ let dq = fH
1206+ if ($isInstanceOf(dq, "Order"))
12111207 then {
1212- let cT = ds
1213- let fM = aI()
1214- let aw = cS(cT)
1215- let ax = sigVerify(cT.bodyBytes, cT.proofs[0], cT.senderPublicKey)
1216- let ay = sigVerify(cT.bodyBytes, cT.proofs[1], fM)
1217- if (if (if (aw)
1218- then ax
1208+ let cR = dq
1209+ let fK = aG()
1210+ let au = cQ(cR)
1211+ let av = sigVerify(cR.bodyBytes, cR.proofs[0], cR.senderPublicKey)
1212+ let aw = sigVerify(cR.bodyBytes, cR.proofs[1], fK)
1213+ if (if (if (au)
1214+ then av
12191215 else false)
1220- then ay
1216+ then aw
12211217 else false)
12221218 then true
1223- else av(aw, ax, ay)
1219+ else at(au, av, aw)
12241220 }
1225- else if ($isInstanceOf(ds, "SetScriptTransaction"))
1221+ else if ($isInstanceOf(dq, "SetScriptTransaction"))
12261222 then {
1227- let ex = ds
1228- let fN = blake2b256(value(ex.script))
1229- let fO = fromBase64String(value(getString(aF, at())))
1230- let fP = scriptHash(this)
1231- if (if ((fO == fN))
1232- then (fP != fN)
1223+ let ev = dq
1224+ let fL = blake2b256(value(ev.script))
1225+ let fM = fromBase64String(value(getString(aD, ar())))
1226+ let fN = scriptHash(this)
1227+ if (if ((fM == fL))
1228+ then (fN != fL)
12331229 else false)
12341230 then true
1235- else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
1231+ else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
12361232 }
1237- else sigVerify(fJ.bodyBytes, fJ.proofs[0], fL)
1233+ else sigVerify(fH.bodyBytes, fH.proofs[0], fJ)
12381234 }
12391235

github/deemru/w8io/169f3d6 
462.51 ms