tx · HjqtFmehXKdA6RFVXN35LMqvtRRfSksAXjkyedHMMfMF

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03100000 Waves

2024.04.17 09:31 [3066416] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "HjqtFmehXKdA6RFVXN35LMqvtRRfSksAXjkyedHMMfMF", "fee": 3100000, "feeAssetId": null, "timestamp": 1713335476615, "version": 2, "chainId": 84, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "37PREQM5HcvEgChADhgu7RBsXUTmAZdcAVUGqQWkoBUYpjEeq8cTNWwZsFbKQpXguUvGNLmhojDhW4SsE4zrKJT2" ], "script": "base64:BgLuMQgCEgASBAoCCAgSBAoCCAgSAwoBCBIKCggICAgICAgIARIDCgEIEgYKBAgICAgSBAoCCBgSAwoBCBIECgIIGBIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIIgZTQ0FMRTgiBU1VTFQ4IgZNVUxUMTIiB1NDQUxFMTgiBk1VTFQxOCIOUE9PTFdFSUdIVE1VTFQiDkdXWHZpcnR1YWxQT09MIgxsYWJlbFBvb2xzTHAiDWRlZmF1bHRTcHJlYWQiC3dhdmVzU3RyaW5nIhBjb250cmFjdEZpbGVuYW1lIhFkZWNpbWFsc011bHRQcmljZSIDU0VQIgVFTVBUWSIKUG9vbEFjdGl2ZSIPUG9vbFB1dERpc2FibGVkIhNQb29sTWF0Y2hlckRpc2FibGVkIgxQb29sU2h1dGRvd24iEmlkeEludGVybmFsQXNzZXRJZCIPaWR4UmVzdXRBY3Rpb25zIiBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZCIOaWR4UG9vbEFkZHJlc3MiDWlkeFBvb2xTdGF0dXMiEGlkeFBvb2xMUEFzc2V0SWQiDWlkeEFtdEFzc2V0SWQiD2lkeFByaWNlQXNzZXRJZCIOaWR4QW10QXNzZXREY20iEGlkeFByaWNlQXNzZXREY20iDmlkeElBbXRBc3NldElkIhBpZHhJUHJpY2VBc3NldElkIg1pZHhMUEFzc2V0RGNtIgtpZHhQb29sVHlwZSITcG9vbExhYmVsV3hFbWlzc2lvbiIPdmFsaWRQb29sTGFiZWxzIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIhZrZXlBbGxvd2VkTHBTY3JpcHRIYXNoIhxrZXlBbGxvd2VkTHBTdGFibGVTY3JpcHRIYXNoIgxzd2FwQ29udHJhY3QiEGtleUZhY3RvcnlDb25maWciD2tleUxwVG9rZW5zTGlzdCIRa2V5UG9vbFNjcmlwdEhhc2giDWtleU1hdGNoZXJQdWIiGGtleUxlZ2FjeUZhY3RvcnlDb250cmFjdCIOa2V5TGVnYWN5UG9vbHMiE2tleU1hbmFnZXJQdWJsaWNLZXkiFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MiD2tleUFkbWluUHViS2V5cyIWa2V5QXNzZXRzU3RvcmVDb250cmFjdCIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIUa2V5VXNlclBvb2xzQ29udHJhY3QiDmtleVByaWNlQXNzZXRzIhBrZXlQcmljZURlY2ltYWxzIhNrZXlBbGxQb29sc1NodXRkb3duIhZrZXlOZXh0SW50ZXJuYWxBc3NldElkIg9rZXlQb29sVG9XZWlnaHQiC3Bvb2xBZGRyZXNzIhZrZXlQb29sVG9XZWlnaHRIaXN0b3J5IgNudW0iH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIgxiYXNlQXNzZXRTdHIiDWtleVBvb2xDb25maWciE2Ftb3VudEFzc2V0SW50ZXJuYWwiEnByaWNlQXNzZXRJbnRlcm5hbCIha2V5UG9vbE9uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIg5hc3NldHNJbnRlcm5hbCILJHQwMzg3ODM5NDAiJWtleUFsbFBvb2xzT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQiE2tleVBvb2xTd2FwRGlzYWJsZWQiCyR0MDQyMzI0Mjk0IhdrZXlBbGxQb29sc1N3YXBEaXNhYmxlZCIda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMiCmxwQXNzZXRTdHIiHWtleU1hcHBpbmdQb29sQXNzZXRzVG9McGFzc2V0IhhpbnRlcm5hbEFtb3VudEFzc2V0SWRTdHIiF2ludGVybmFsUHJpY2VBc3NldElkU3RyIg1rZXlQb29sU3ByZWFkIilrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cyITcG9vbENvbnRyYWN0QWRkcmVzcyIpa2V5TWFwcGluZ1Bvb2xBc3NldHNUb1Bvb2xDb250cmFjdEFkZHJlc3MiH2tleU1hcHBpbmdQb29sQ29udHJhY3RUb0xQQXNzZXQiKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyINa2V5V3hFbWlzc2lvbiINYW1vdW50QXNzZXRJZCIMcHJpY2VBc3NldElkIghrZXlJbkZlZSIPa2V5SW5GZWVEZWZhdWx0IgprZXlTd2FwRmVlIglrZXlPdXRGZWUiEGtleU91dEZlZURlZmF1bHQiHGtleVBvb2xBc3NldERlZmF1bHRNaW5BbW91bnQiFmtleVBvb2xBc3NldHNNaW5BbW91bnQiB2Fzc2V0SWQiFmtleVNraXBPcmRlclZhbGlkYXRpb24iEWtleUNoYW5nZUFtcERlbGF5IhFrZXlDaGFuZ2VBbXBEZWx0YSISa2V5Q2hhbmdlQW1wVGFyZ2V0IhVrZXlTV2F2ZXNQcm94eUFkZHJlc3MiEGtleVNXYXZlc0Fzc2V0SWQiF2tleVN0YWtpbmdQcm9maXRBZGRyZXNzIg5rZXlMZWFzZWRSYXRpbyIVa2V5TGVhc2VkUmF0aW9EZWZhdWx0IhdrZXlMZWFzZWRSYXRpb1RvbGVyYW5jZSINa2V5TWluQmFsYW5jZSIUa2V5TWluQmFsYW5jZURlZmF1bHQiFWtleUFkZHJlc3NXaGl0ZWxpc3RlZCIHYWRkcmVzcyIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIMcGFyc2VBc3NldElkIgVpbnB1dCIcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcyIHJG1hdGNoMCIBcyIFdG9YMTgiB29yaWdWYWwiDW9yaWdTY2FsZU11bHQiB2Zyb21YMTgiA3ZhbCIPcmVzdWx0U2NhbGVNdWx0IhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIg5nZXRQcmljZUFzc2V0cyIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCITbWFuYWdlclZhdWx0QWRkcmVzcyIVcGVybWlzc2lvbkRlbmllZEVycm9yIgl0ZXN0RXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIScG9vbEV4aXN0c0ludGVybmFsIgRhbUFzIgRwckFzIgNjZmciCmNmZ1JldmVyc2UiBmV4aXN0cyIcZ2V0QXNzZXRzRGF0YUZyb21Qb29sQWRkcmVzcyIOZ2V0UG9vbENyZWF0b3IiDSR0MDE2MTAzMTYyNDAiEXVzZXJQb29sc0NvbnRyYWN0Igtwb29sQ3JlYXRvciIRZ2V0QWRkcmVzc0JhbGFuY2UiDWFkZHJlc3NTdHJpbmciDWFzc2V0SWRTdHJpbmciC2lzUG9vbEVtcHR5Ig0kdDAxNjgxNTE2OTUyIg0kdDAxNzI2NzE3NTcxIgFyIgckbWF0Y2gxIgJyZCIKaXNMZWFzYWJsZSILbGVhc2VkUmF0aW8iCm1pbkJhbGFuY2UiAWIiAmJkIg0kdDAxNzgzNzE4MDYxIgxwcm94eUFkZHJlc3MiDHByb3h5QXNzZXRJZCIMcHJveHlSYXRlTXVsIhRzdGFraW5nUHJvZml0QWRkcmVzcyIGYXNzZXQxIgZhc3NldDIiCWFzc2V0TnVtMSIJYXNzZXROdW0yIgJlZSIDcmVzIgJscCIPc3Rha2luZ0NvbnRyYWN0IhBib29zdGluZ0NvbnRyYWN0IhBzbHBpcGFnZUNvbnRyYWN0Ig1wcmljZURlY2ltYWxzIgtjaGVja0NhbGxlciIQbWF0aGNoZXJQdWI1OFN0ciIKbWF0aGNlclB1YiIVbGVnYWN5RmFjdG9yeUNvbnRyYWN0IgtsZWdhY3lQb29scyITYXNzZXRzU3RvcmVDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCILcHJpY2VBc3NldHMiBWNoZWtzIgxhZG1pblB1YktleXMiC2xwQXNzZXROYW1lIgxscEFzc2V0RGVzY3IiCnBvb2xXZWlnaHQiBGxvZ28iF2ludGVybmFsQW1vdW50QXNzZXREYXRhIhVpbnRlcm5hbEFtb3VudEFzc2V0SWQiFmludGVybmFsUHJpY2VBc3NldERhdGEiFGludGVybmFsUHJpY2VBc3NldElkIhVwb29sQWNjb3VudFNjcmlwdEhhc2giHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2giCnBvb2xFeGlzdHMiD3Bvb2xDb25maWdWYWx1ZSIUYW1vdW50QXNzZXRzRGVjaW1hbHMiE3ByaWNlQXNzZXRzRGVjaW1hbHMiEmxwQXNzZXRJc3N1ZUFjdGlvbiIMbHBBc3NldElkU3RyIhhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQiGGNyZWF0ZU9yVXBkYXRlTHBBc3NldEludiISYWRkUG9vbHNMcExhYmVsSW52IgpzZXRMb2dvSW52IhBhZGRBc3NldHNMaW5rSW52IhtpbmNyZWFzZUFzc2V0UG9vbHNOdW1iZXJJbnYiCW5ld1N0YXR1cyIKcG9vbENvbmZpZyIKbHBBc3NldERjbSIMYW1vdW50VG9FbWl0IgZjYWxsZXIiDG9yaWdpbkNhbGxlciIQbHBBc3NldFJlcXVlc3RlZCIHbHBBc3NldCIMYW1vdW50VG9CdXJuIgdwYXltZW50Ig1wYXltZW50QW1vdW50Ig9pbkFtb3VudEFzc2V0SWQiGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nIgVzaGFyZSINcG9vbFdlaWdodEtleSIMZ3d4V2VpZ2h0S2V5Iglnd3hXZWlnaHQiDXBvb2xXZWlnaHROZXciEW9uTW9kaWZ5V2VpZ2h0SW52IhVnd3hWaXJ0dWFsUG9vbEFjdGlvbnMiFHBvb2xXZWlnaHRIaXN0b3J5S2V5Ihdwb29sV2VpZ2h0SGlzdG9yeU9yVW5pdCIYcG9vbFdlaWdodEhpc3RvcnlBY3Rpb25zIg5idGNQb29sQWRkcmVzcyIOZXRoUG9vbEFkZHJlc3MiEWV0aEJ0Y1Bvb2xBZGRyZXNzIhN1c2RjVXNkdFBvb2xBZGRyZXNzIg9ldGhCdGNXZWlnaHROZXciEXVzZGNVc2R0V2VpZ2h0TmV3Ig93ZWlnaHREZWNyZW1lbnQiC3N0YWtpbmdEYXBwIg1nd3hSZXdhcmREYXBwIgxidGNXZWlnaHRLRVkiDGV0aFdlaWdodEtFWSIPZXRoQnRjV2VpZ2h0S0VZIhF1c2RjVXNkdFdlaWdodEtFWSIJYnRjV2VpZ2h0IglldGhXZWlnaHQiDGJ0Y1dlaWdodE5ldyIMZXRoV2VpZ2h0TmV3Ig9idGNMcEFzc2V0SWRTdHIiD2V0aExwQXNzZXRJZFN0ciISZXRoQnRjTHBBc3NldElkU3RyIhR1c2RjVXNkdExwQXNzZXRJZFN0ciIRb25Nb2RpZnlXZWlnaHRCdGMiEW9uTW9kaWZ5V2VpZ2h0RXRoIhRvbk1vZGlmeVdlaWdodEV0aEJ0YyIWb25Nb2RpZnlXZWlnaHRVc2RjVXNkdCIJaGF2ZUxhYmVsIhRjaGVja1ByaWNlQXNzZXRzU2l6ZSICY2IiA2FjYyIKcHJpY2VBc3NldCIHYWN0aW9ucyICJGwiAiRzIgUkYWNjMCIFJGYwXzEiAiRhIgIkaSIFJGYwXzIiHnBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIiYWxsUG9vbHNPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIQcG9vbFN3YXBEaXNhYmxlZCIUYWxsUG9vbHNTd2FwRGlzYWJsZWQiA2ZlZSIOcG9vbEFkZHJlc3NTdHIiCWZlZU9wdGlvbiIFcGFydHMiB3Bvb2xGZWUiC3Byb3RvY29sRmVlIhBhbW91bnRBc3NldElkU3RyIg9wcmljZUFzc2V0SWRTdHIiG2Ftb3VudEFzc2V0SW50ZXJuYWxJZE9wdGlvbiIacHJpY2VBc3NldEludGVybmFsSWRPcHRpb24iGXBvb2xDb250cmFjdEFkZHJlc3NPcHRpb24iD2xwQXNzZXRJZE9wdGlvbiIIcG9vbEluZm8iBWRlbGF5IgVkZWx0YSIGdGFyZ2V0IgZ3ZWlnaHQiC2NoZWNrV2VpZ2h0IgtjaGVja1N0YXR1cyINJHQwNDA5MTQ0MTA1MSIPdXNlclBvb2xzSW52b2tlIhR2b3RpbmdFbWlzc2lvbkludm9rZSIRYXNzZXRzU3RvcmVJbnZva2UiCmFtdEFzc2V0SWQiDXBvb2xMcEJhbGFuY2UiEmFjY0FtdEFzc2V0QmFsYW5jZSIBQCIUYWNjUHJpY2VBc3NldEJhbGFuY2UiBXByaWNlIhVhc3NldE1pbkFtb3VudERlZmF1bHQiFGFtb3VudEFzc2V0TWluQW1vdW50IhNwcmljZUFzc2V0TWluQW1vdW50IhJhbW91bnRBc3NldEJhbGFuY2UiEXByaWNlQXNzZXRCYWxhbmNlIhZhbW91bnRBc3NldEJhbGFuY2VJc09rIhVwcmljZUFzc2V0QmFsYW5jZUlzT2siC2JhbGFuY2VJc09rIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXmFAQABYQAIAAFiAIDC1y8AAWMAgKCUpY0dAAFkABIAAWUJALYCAQCAgJC7utat8A0AAWYFAWIAAWcCDkdXWHZpcnR1YWxQT09MAAFoAghQT09MU19MUAABaQCAiXoAAWoCBVdBVkVTAAFrAg9mYWN0b3J5X3YyLnJpZGUAAWwJAGgCCQBoAgBkAOgHAOgHAAFtAgJfXwABbgIAAAFvAAEAAXAAAgABcQADAAFyAAQAAXMAAQABdAACAAF1AAMAAXYAAQABdwACAAF4AAMAAXkABAABegAFAAFBAAYAAUIABwABQwAIAAFEAAkAAUUACgABRgALAAFHAgtXWF9FTUlTU0lPTgABSAkAzAgCBQFHBQNuaWwBAUkBAUoJALkJAgkAzAgCBQFrCQDMCAICAjogCQDMCAIFAUoFA25pbAIAAQFLAQFKCQACAQkBAUkBBQFKAQFMAAIXJXNfX2FsbG93ZWRMcFNjcmlwdEhhc2gBAU0AAh0lc19fYWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaAEBTgACECVzX19zd2FwQ29udHJhY3QBAU8AAhElc19fZmFjdG9yeUNvbmZpZwEBUAACECVzX19scFRva2Vuc0xpc3QBAVEAAhYlcyVzX19wb29sX19zY3JpcHRIYXNoAQFSAAIYJXMlc19fbWF0Y2hlcl9fcHVibGljS2V5AQFTAAIZJXNfX2xlZ2FjeUZhY3RvcnlDb250cmFjdAEBVAACDyVzX19sZWdhY3lQb29scwEBVQACFCVzX19tYW5hZ2VyUHVibGljS2V5AQFWAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAVcAAhAlc19fYWRtaW5QdWJLZXlzAQFYAAIXJXNfX2Fzc2V0c1N0b3JlQ29udHJhY3QBAVkAAholc19fdm90aW5nRW1pc3Npb25Db250cmFjdAEBWgACFSVzX191c2VyUG9vbHNDb250cmFjdAECYWEACQC5CQIJAMwIAgICJXMJAMwIAgILcHJpY2VBc3NldHMFA25pbAUBbQECYWIAAhElc19fcHJpY2VEZWNpbWFscwECYWMAAgwlc19fc2h1dGRvd24BAmFkAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAmFlAQJhZgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAmFmAQJhZwICYWYCYWgJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUCYWYCAl9fCQCkAwEFAmFoAQJhaQECYWoJAKwCAgIoJXMlcyVkX19tYXBwaW5nc19faW50ZXJuYWwyYmFzZUFzc2V0SWRfXwkApAMBBQJhagECYWsBAmFsCQCsAgICKCVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJpbnRlcm5hbElkX18FAmFsAQJhbQICYW4CYW8JAKwCAgkArAICCQCsAgIJAKwCAgIIJWQlZCVzX18FAmFuAgJfXwUCYW8CCF9fY29uZmlnAQJhcAECYXEEAmFyBQJhcQQCYW4IBQJhcgJfMQQCYW8IBQJhcgJfMgkAuQkCCQDMCAICBiVkJWQlcwkAzAgCCQCkAwEFAmFuCQDMCAIJAKQDAQUCYW8JAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXMACQC5CQIJAMwIAgICJXMJAMwIAgIab25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWQFA25pbAUBbQECYXQBAmFxBAJhdQUCYXEEAmFuCAUCYXUCXzEEAmFvCAUCYXUCXzIJALkJAgkAzAgCAgYlZCVkJXMJAMwIAgkApAMBBQJhbgkAzAgCCQCkAwEFAmFvCQDMCAICDHN3YXBEaXNhYmxlZAUDbmlsBQFtAQJhdgAJALkJAgkAzAgCAgIlcwkAzAgCAgxzd2FwRGlzYWJsZWQFA25pbAUBbQECYXcBAmF4CQCsAgIJAKwCAgIIJXMlcyVzX18FAmF4AhhfX21hcHBpbmdzX19scEFzc2V0MlBvb2wBAmF5AgJhegJhQQkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fBQJhegICX18FAmFBAh5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAmFCAQJhZgkArAICAg4lcyVzX19zcHJlYWRfXwUCYWYBAmFDAQJhRAkArAICCQCsAgICCCVzJXMlc19fBQJhRAIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBAmFFAgJhegJhQQkArAICCQCsAgIJAKwCAgkArAICAgolZCVkJXMlc19fCQCkAwEFAmF6AgJfXwkApAMBBQJhQQIjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAmFGAQJhRAkArAICCQCsAgICCCVzJXMlc19fBQJhRAIgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAmFHAQJheAkArAICCQCsAgICCCVzJXMlc19fBQJheAIgX19tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QBAmFIAgJhSQJhSgkArAICCQCsAgIJAKwCAgIUJXMlcyVzX193eEVtaXNzaW9uX18FAmFJAgJfXwUCYUoBAmFLAQJhZgkArAICAg0lcyVzX19pbkZlZV9fBQJhZgECYUwAAhAlc19faW5GZWVEZWZhdWx0AQJhTQECYWYJAKwCAgIPJXMlc19fc3dhcEZlZV9fBQJhZgECYU4BAmFmCQCsAgICDiVzJXNfX291dEZlZV9fBQJhZgECYU8AAhElc19fb3V0RmVlRGVmYXVsdAECYVAACQC5CQIJAMwIAgICJXMJAMwIAgIZcG9vbEFzc2V0RGVmYXVsdE1pbkFtb3VudAUDbmlsBQFtAQJhUQECYVIJALkJAgkAzAgCAgQlcyVzCQDMCAICEnBvb2xBc3NldE1pbkFtb3VudAkAzAgCBQJhUgUDbmlsBQFtAQJhUwECYWYJAKwCAgIbJXMlc19fc2tpcE9yZGVyVmFsaWRhdGlvbl9fBQJhZgECYVQBAmFmCQCsAgICFiVzJXNfX2NoYW5nZUFtcERlbGF5X18FAmFmAQJhVQECYWYJAKwCAgIWJXMlc19fY2hhbmdlQW1wRGVsdGFfXwUCYWYBAmFWAQJhZgkArAICAhclcyVzX19jaGFuZ2VBbXBUYXJnZXRfXwUCYWYBAmFXAAIWJXNfX3NXYXZlc1Byb3h5QWRkcmVzcwECYVgAAhElc19fc1dhdmVzQXNzZXRJZAECYVkAAhglc19fc3Rha2luZ1Byb2ZpdEFkZHJlc3MBAmFaAgJhZgJhUgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgtsZWFzZWRSYXRpbwkAzAgCBQJhZgkAzAgCBQJhUgUDbmlsBQFtAQJiYQECYVIJALkJAgkAzAgCAgQlcyVzCQDMCAICEmxlYXNlZFJhdGlvRGVmYXVsdAkAzAgCBQJhUgUDbmlsBQFtAQJiYgICYWYCYVIJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIUbGVhc2VkUmF0aW9Ub2xlcmFuY2UJAMwIAgUCYWYJAMwIAgUCYVIFA25pbAUBbQECYmMCAmFmAmFSCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCm1pbkJhbGFuY2UJAMwIAgUCYWYJAMwIAgUCYVIFA25pbAUBbQECYmQBAmFSCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhFtaW5CYWxhbmNlRGVmYXVsdAkAzAgCBQJhUgUDbmlsBQFtAQJiZQECYmYJALkJAgkAzAgCAgQlcyVzCQDMCAICC3doaXRlbGlzdGVkCQDMCAIJAKUIAQUCYmYFA25pbAUBbQECYmcBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmkBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmoBAmJoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUCYmgJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQJiaAECYmsBAmJsAwkAAAIFAmJsBQFqBQR1bml0CQDZBAEFAmJsAQJibQAEAmJuCQCiCAEJAQFWAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4JARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJvBQR0aGlzAQJicAICYnECYnIJALwCAwkAtgIBBQJicQUBZQkAtgIBBQJicgECYnMCAmJ0AmJ1CQCgAwEJALwCAwUCYnQJALYCAQUCYnUFAWUAAmJ2AAEAAmJ3AAIAAmJ4AAMAAmJ5AAQAAmJ6AAUAAmJBAAYAAmJCAAcAAmJDAAgAAmJEAAkAAmJFAAoAAmJGAAsBAmJHAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYncBAmJJAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYnoBAmJKAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYnYBAmJLAQJiSAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJiSAUCYkUBAmJMAAQCYm4JAKIIAQkBAmFhAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4DCQAAAgkAsQIBBQJibwAABQNuaWwJALwJAgUCYm8FAW0FA25pbAECYk0ABAJiTgkBAmJtAAQCYm4JAJ0IAgUCYk4JAQFVAAMJAAECBQJibgIGU3RyaW5nBAJibwUCYm4JANkEAQUCYm8DCQABAgUCYm4CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgACYk8JAQFLAQIRUGVybWlzc2lvbiBkZW5pZWQAAmJQCQEBSwECD1Rlc3QgZXJyb3IgaGVyZQECYlEBAmJSAwkAAAIIBQJiUgZjYWxsZXIFBHRoaXMGBQJiTwECYlMBAmJSBAJibgkBAmJNAAMJAAECBQJibgIKQnl0ZVZlY3RvcgQCYlQFAmJuAwkAAAIIBQJiUg9jYWxsZXJQdWJsaWNLZXkFAmJUBgUCYk8DCQABAgUCYm4CBFVuaXQJAQJiUQEFAmJSCQACAQILTWF0Y2ggZXJyb3IBAmJVCwJiVgJiVwJiWAJiWQJiWgJjYQJjYgJjYwJjZAJjZQJjZgkAuQkCCQDMCAICFiVzJXMlcyVzJXMlcyVzJXMlcyVzJXMJAMwIAgUCYlYJAMwIAgUCYlcJAMwIAgUCYlgJAMwIAgUCYlkJAMwIAgUCYloJAMwIAgUCY2EJAMwIAgUCY2IJAMwIAgUCY2MJAMwIAgUCY2QJAMwIAgUCY2UJAMwIAgUCY2YFA25pbAUBbQECY2cHAmJWAmJXAmJYAmJZAmJaAmNhAmNiCQC5CQIJAMwIAgIMJXMlcyVzJXMlcyVzCQDMCAIFAmJWCQDMCAIFAmJXCQDMCAIFAmJYCQDMCAIFAmJZCQDMCAIFAmJaCQDMCAIFAmNhCQDMCAIFAmNiBQNuaWwFAW0BAmNoCwJhZgJjaQJjagJjawJjbAJjbQJjbgJjbwJjcAJjcQJjcgkAuQkCCQDMCAICFiVzJWQlcyVzJXMlZCVkJWQlZCVkJXMJAMwIAgUCYWYJAMwIAgUCY2kJAMwIAgUCY2oJAMwIAgUCY2sJAMwIAgUCY2wJAMwIAgkApAMBBQJjbQkAzAgCCQCkAwEFAmNuCQDMCAIJAKQDAQUCY28JAMwIAgkApAMBBQJjcAkAzAgCCQCkAwEFAmNxCQDMCAIFAmNyBQNuaWwFAW0BAmNzAgJjdAJjdQkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJjdAkAzAgCCQCkAwEFAmN1BQNuaWwFAW0BAmN2AQJhZgQCY3cJALUJAgkBAmJnAQkBAmFDAQUCYWYFAW0EAmFuCQCRAwIFAmN3AAEEAmFvCQCRAwIFAmN3AAIJALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtAQJjeAICY3kCY3oEAmNBCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhawEFAmN5AAAEAmNCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJhZAAAAAQCY0MDCQAAAgUCY0EAAAQCY0QJAGQCBQJjQgUCY3oJAJUKAwUCY0QJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZAAFAmNECQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsBBQJjeQUCY0QJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFpAQUCY0QFAmN5BQNuaWwGCQCVCgMFAmNBBQNuaWwHBQJjQwECY0UBAmJSBAJjRgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQFXAAUBbgUBbQMJAQ9jb250YWluc0VsZW1lbnQCBQJjRgkA2AQBCAUCYlIPY2FsbGVyUHVibGljS2V5BgQCY0cJAQJiUwEFAmJSAwkAAAIFAmNHBQJjRwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmNIAwJiaAJjSQJjSgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJiaAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJjSQUCY0oBAmNLAgJhSQJhSgQCYW4JAJ8IAQkBAmFrAQUCYUkEAmFvCQCfCAEJAQJhawEFAmFKAwMJAAACBQJhbgUEdW5pdAYJAAACBQJhbwUEdW5pdAcEAmNMCQCkAwEJAQV2YWx1ZQEFAmFuBAJjTQkApAMBCQEFdmFsdWUBBQJhbwQCY04JAKIIAQkBAmFtAgUCY0wFAmNNBAJjTwkAoggBCQECYW0CBQJjTQUCY0wEAmNQAwkBAiE9AgUCY04FBHVuaXQGCQECIT0CBQJjTwUEdW5pdAUCY1ABAmNRAQJhRAQCY3cEAmJuCQCiCAEJAQJhQwEFAmFEAwkAAQIFAmJuAgZTdHJpbmcEAmJvBQJibgkAtQkCBQJibwUBbQkBAUsBCQC5CQIJAMwIAgUCYUQJAMwIAgIRcG9vbCBpcyBub3QgZm91bmQFA25pbAIBIAQCYW4JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJjdwABBAJhbwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmN3AAIEAmFJCQERQGV4dHJOYXRpdmUoMTA1OCkBCQECYWkBBQJhbgQCYUoJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQJhaQEFAmFvBAJjagkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAmFGAQUCYUQJAJcKBQUCYUkFAmFKBQJjagUCYW4FAmFvAQJjUgECYUQEAmNTCQECY1EBBQJhRAQCYUkIBQJjUwJfMQQCYUoIBQJjUwJfMgQCY2oIBQJjUwJfMwQCYW4IBQJjUwJfNAQCYW8IBQJjUwJfNQQCY1QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFaAAQCY1UJAPwHBAUCY1QCFmdldFBvb2xDcmVhdG9yUkVBRE9OTFkJAMwIAgUCYUkJAMwIAgUCYUoFA25pbAUDbmlsBQJjVQECY1YCAmNXAmNYBAJiZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY1cDCQAAAgUCY1gCBVdBVkVTCAkA7wcBBQJiZgdyZWd1bGFyBAJhUgkA2QQBBQJjWAkA8AcCBQJiZgUCYVIBAmNZAQJhRAQCY1oJAQJjUQEFAmFEBAJhSQgFAmNaAl8xBAJhSggFAmNaAl8yBAJjaggFAmNaAl8zBAJhbggFAmNaAl80BAJhbwgFAmNaAl81AwkAAAIJAQJjVgIFAmFEBQJhSQAACQAAAgkBAmNWAgUCYUQFAmFKAAAHJQJiUgEXZ2V0U3dhcENvbnRyYWN0UkVBRE9OTFkACQCUCgIFA25pbAkBAmJnAQkBAU4AAmJSARpnZXRQb29sTGVhc2VDb25maWdSRUFET05MWQICYWYCYVIEAmRhBAJibgkAmggCBQR0aGlzCQECYVoCBQJhZgUCYVIDCQABAgUCYm4CA0ludAQCZGIFAmJuCQCUCgIGCQCXAwEJAMwIAgBkCQDMCAIJAJYDAQkAzAgCAAAJAMwIAgUCZGIFA25pbAUDbmlsBAJkYwkAmggCBQR0aGlzCQECYmEBBQJhUgMJAAECBQJkYwIDSW50BAJkZAUCZGMJAJQKAgYJAJcDAQkAzAgCAGQJAMwIAgkAlgMBCQDMCAIAAAkAzAgCBQJkZAUDbmlsBQNuaWwJAJQKAgcAAAQCZGUIBQJkYQJfMQQCZGYIBQJkYQJfMgQCZGcEAmJuCQCaCAIFBHRoaXMJAQJiYwIFAmFmBQJhUgMJAAECBQJibgIDSW50BAJkaAUCYm4JAJYDAQkAzAgCAAAJAMwIAgUCZGgFA25pbAQCZGMJAJoIAgUEdGhpcwkBAmJkAQUCYVIDCQABAgUCZGMCA0ludAQCZGkFAmRjCQCWAwEJAMwIAgAACQDMCAIFAmRpBQNuaWwAAAQCZGoDCQAAAgUCYVICBVdBVkVTCQCVCgMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFXAAIACQCdCAIFBHRoaXMJAQt2YWx1ZU9yRWxzZQIJAQJhWAACAAUBYwkAlQoDAgACAAAABAJkawgFAmRqAl8xBAJkbAgFAmRqAl8yBAJkbQgFAmRqAl8zBAJkbgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQECYVkAAgAJAJQKAgUDbmlsCQCZCgcFAmRlBQJkZgUCZGcFAmRrBQJkbAUCZG0FAmRuAmJSASBnZXRMcEFzc2V0RnJvbVBvb2xBc3NldHNSRUFET05MWQICZG8CZHADAwkAAAIFAmRvAiw4TFFXOGY3UDVkNVBaTTdHdFpFQmdhcVJQR1N6UzNEZlB1aVhyVVJKNEFKUwkAAAIFAmRwAgVXQVZFUwcJAJQKAgUDbmlsBQR1bml0BAJkcQkBBXZhbHVlAQkAmggCBQR0aGlzCQECYWsBBQJkbwQCZHIJAQV2YWx1ZQEJAJoIAgUEdGhpcwkBAmFrAQUCZHAEAmRzCQCdCAIFBHRoaXMJAQJheQIJAKQDAQUCZHEJAKQDAQUCZHIEAmR0AwkAAAIFAmRzBQR1bml0BQR1bml0CQCwAgIJAQV2YWx1ZQEFAmRzAAQJAJQKAgUDbmlsBQJkdAJiUgEhZ2V0UG9vbEFkZHJlc3NGcm9tTHBBc3NldFJFQURPTkxZAQJkdQkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBAmFHAQUCZHUCAAJiUgELY29uc3RydWN0b3IIAmR2AmR3AmJYAmJZAmJaAmNhAmR4AmR5BAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFPAAkBAmNnBwUCZHYFAmR3BQJiWAUCYlkFAmJaBQJjYQUCZHgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYgAFAmR5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjIBAmRBBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJkQgkApwgBCQDZBAEFAmRBAwkAAAIFAmRCBQJkQgkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgAFAmRBBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjMEAmNjAmNkAmNlAmNmBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJiSAkAtQkCCQECYmcBCQEBTwAFAW0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU8ACQECYlULCQCRAwIFAmJIAAEJAJEDAgUCYkgAAgkAkQMCBQJiSAADCQCRAwIFAmJIAAQJAJEDAgUCYkgABQkAkQMCBQJiSAAGCQCRAwIFAmJIAAcFAmNjBQJjZAUCY2UFAmNmBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjQCAmRDAmREBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFTAAUCZEMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVQACQC5CQIFAmREBQFtBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBDWNvbnN0cnVjdG9yVjUBAmRFBAJkegkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFYAAUCZEUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgENY29uc3RydWN0b3JWNgICZEYCZEcEAmRICQDMCAIJAQJiUwEFAmJSCQDMCAIDCQECIT0CCQCmCAEFAmRGBQR1bml0BgIoaW52YWxpZCB2b3RpbmcgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwUDbmlsAwkAAAIFAmRIBQJkSAkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQAFAmRGCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhYQAJALkJAgUCZEcFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEJc2V0QWRtaW5zAQJkSQQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegkAzAgCCQELU3RyaW5nRW50cnkCCQEBVwAJALkJAgUCZEkFAW0FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEPYWN0aXZhdGVOZXdQb29sCAJhZgJjawJjbAJkSgJkSwJkTAJjcgJkTQQCZHoJAQJjRQEFAmJSAwkAAAIFAmR6BQJkegMJAQlpc0RlZmluZWQBCQCiCAEJAQJhQwEFAmFmCQEBSwEJAKwCAgkArAICAg1Qb29sIGFkZHJlc3MgBQJhZgIUIGFscmVhZHkgcmVnaXN0ZXJlZC4EAmROCQECY3gCBQJjawABBAJkTwgFAmROAl8xBAJkUAkBAmN4AgUCY2wDCAUCZE4CXzMAAgABBAJkUQgFAmRQAl8xBAJkUgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDxBwEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFmCQCsAgICKU5vIHNjcmlwdCBoYXMgYmVlbiBmb3VuZCBvbiBwb29sIGFjY291bnQgBQJhZgQCZFMJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQFRAAQCZFQJAQJjSwIFAmNrBQJjbAMFAmRUCQEBSwEJAKwCAgkArAICCQCsAgIJAKwCAgIFUG9vbCAFAmNrAgEvBQJjbAIcIGhhcyBhbHJlYWR5IGJlZW4gYWN0aXZhdGVkLgQCZFUJAQV2YWx1ZQEJAJ0IAgUEdGhpcwkBAmFtAgkApAMBBQJkTwkApAMBBQJkUQQCZFYDCQAAAgUCY2sCBVdBVkVTBQFsCQBsBgAKAAAICQEFdmFsdWUBCQDsBwEJANkEAQUCY2sIZGVjaW1hbHMAAAAABQRET1dOBAJkVwMJAAACBQJjbAIFV0FWRVMFAWwJAGwGAAoAAAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQJjbAhkZWNpbWFscwAAAAAFBERPV04EAmRYCQDCCAUFAmRKBQJkSwABAAgGBAJjagkAuAgBBQJkWAQCZFkJANgEAQUCY2oEAmRaCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFmAghhY3RpdmF0ZQkAzAgCBQJjawkAzAgCBQJjbAUDbmlsBQNuaWwDCQAAAgUCZFoFAmRaAwkBAiE9AgUCZFoCB3N1Y2Nlc3MJAQFLAQIjUG9vbCBpbml0aWFsaXNhdGlvbiBlcnJvciBoYXBwZW5lZC4EAmRFCQERQGV4dHJOYXRpdmUoMTA2MikBCQECYmcBCQEBWAAEAmVhCQD8BwQFAmRFAg5jcmVhdGVPclVwZGF0ZQkAzAgCBQJkWQkAzAgCBQJkSgkAzAgCBwUDbmlsBQNuaWwDCQAAAgUCZWEFAmVhBAJlYgkA/AcEBQJkRQIIYWRkTGFiZWwJAMwIAgUCZFkJAMwIAgUBaAUDbmlsBQNuaWwDCQAAAgUCZWIFAmViBAJlYwkA/AcEBQJkRQIHc2V0TG9nbwkAzAgCBQJkWQkAzAgCBQJkTQUDbmlsBQNuaWwDCQAAAgUCZWMFAmVjBAJlZAkA/AcEBQJkRQINYWRkQXNzZXRzTGluawkAzAgCBQJjawkAzAgCBQJjbAkAzAgCBQJkWQUDbmlsBQNuaWwDCQAAAgUCZWQFAmVkBAJlZQkA/AcEBQJkRQIYaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVyCQDMCAIFAmNrBQNuaWwFA25pbAMJAAACBQJlZQUCZWUJAJQKAgkAzggCCQDOCAIIBQJkTgJfMggFAmRQAl8yCQDMCAIFAmRYCQDMCAIJAQRCdXJuAgUCY2oAAQkAzAgCCQELU3RyaW5nRW50cnkCCQECYW0CCQCkAwEFAmRPCQCkAwEFAmRRCQECY2gLBQJhZgkApAMBBQFvBQJkWQUCY2sFAmNsBQJkVgUCZFcFAmRPBQJkUQUBbAUCY3IJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF3AQUCZFkJAQJjcwIFAmRPBQJkUQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXkCCQCkAwEFAmRPCQCkAwEFAmRRCQCsAgICBCVzX18FAmRZCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhQwEFAmFmCQECY3MCBQJkTwUCZFEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFFAgUCZE8FAmRRBQJhZgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUcBBQJkWQUCYWYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFGAQUCYWYFAmRZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWUBBQJhZgUCZEwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhQgEFAmFmBQFpBQNuaWwFAmRZCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJSAQptYW5hZ2VQb29sAgJhZgJlZgQCZHoJAQJjRQEFAmJSAwkAAAIFAmR6BQJkegQCZWcJAQJjdgEFAmFmBAJjaQkAkQMCBQJlZwUBdwQCZFkJAJEDAgUCZWcFAXgEAmNrCQCRAwIFAmVnBQF5BAJjbAkAkQMCBQJlZwUBegQCZFYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQQQCZFcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQgQCZE8JAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQwQCZFEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBRAQCZWgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBRQQCY3IJAJEDAgUCZWcFAUYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFtAgkApAMBBQJkTwkApAMBBQJkUQkBAmNoCwUCYWYJAKQDAQUCZWYFAmRZBQJjawUCY2wFAmRWBQJkVwUCZE8FAmRRBQJlaAUCY3IFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEEZW1pdAECZWkEAmVqCAUCYlIGY2FsbGVyBAJlawgFAmJSDG9yaWdpbkNhbGxlcgQCZWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYUYBCQClCAEFAmVqAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgQCZW0JANkEAQUCZWwEAmRECQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAVQABQFuBQFtBAJkQwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQFTAAIoTGVnYWN5IGZhY3RvcnkgY29udHJhY3QgZG9lcyBub3QgZXhpc3RzLgMJAGcCAAAFAmVpBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUCZEQJAKUIAQUCZWoJAJQKAgUDbmlsBQJkQwkAlAoCCQDMCAIJAQdSZWlzc3VlAwUCZW0FAmVpBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYlIGY2FsbGVyBQJlaQUCZW0FA25pbAIHc3VjY2VzcwJiUgEEYnVybgECZW4EAmVqCAUCYlIGY2FsbGVyBAJlawgFAmJSDG9yaWdpbkNhbGxlcgQCZW8JAQV2YWx1ZQEJAJEDAggFAmJSCHBheW1lbnRzAAAEAmVwCQEFdmFsdWUBCAUCZW8GYW1vdW50BAJlcQkA2AQBCQEFdmFsdWUBCAUCZW8HYXNzZXRJZAQCZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQECYUYBCQClCAEFAmVqAh1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQIhPQIFAmVxBQJlcgkBAUsBAhVJbnZhbGlkIGFzc2V0IHBhc3NlZC4DCQECIT0CBQJlbgUCZXAJAQFLAQIWSW52YWxpZCBhbW91bnQgcGFzc2VkLgQCZW0JANkEAQUCZXIJAJQKAgkAzAgCCQEEQnVybgIFAmVtBQJlbgUDbmlsAgdzdWNjZXNzAmJSAQxtb2RpZnlXZWlnaHQCAmNqAmVzBAJkegMJAAACCQDYBAEICAUCYlIGY2FsbGVyBWJ5dGVzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQFZAAIABgkBAmJTAQUCYlIDCQAAAgUCZHoFAmR6BAJhRAkBAmJnAQkBAmFHAQUCY2oEAmV0CQECYWUBBQJhRAQCZXUJAQJhZQEFAWcEAmV2CQELdmFsdWVPckVsc2UCCQCfCAEFAmV1AAAEAmRMCQELdmFsdWVPckVsc2UCCQCfCAEFAmV0AAAEAmV3BQJlcwQCYkgJALUJAgkBAmJnAQkBAU8ABQFtBAJkdgkBAmJKAQUCYkgEAmV4CQD8BwQFAmR2Ag5vbk1vZGlmeVdlaWdodAkAzAgCBQJjagkAzAgCBQJhRAUDbmlsBQNuaWwDCQAAAgUCZXgFAmV4BAJleQMJAAACBQJldgAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmV1AAAFA25pbAQCZXoJAQJhZwIFAmFEAAAEAmVBCQCfCAEFAmV6BAJlQgMJAAACBQJlQQUEdW5pdAUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEFAmV6BQNuaWwJAM4IAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJldAUCZXcFA25pbAUCZXkFAmVCCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmJSAQ1tb2RpZnlXZWlnaHRzBAJlQwJlRAJlRQJlRgQCZHoJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZUcJAGkCCQBoAgAFBQFmAGQEAmVICQBpAgkAaAIABQUBZgBkBAJlSQkAaQIJAGgCAAUFAWYAZAQCYkgJALUJAgkBAmJnAQkBAU8ABQFtBAJlSgkBAmJKAQUCYkgEAmVLCQECYksBBQJiSAQCZUwJAQJhZQEFAmVDBAJlTQkBAmFlAQUCZUQEAmVOCQECYWUBBQJlRQQCZU8JAQJhZQEFAmVGBAJlUAkBAmJqAQUCZUwEAmVRCQECYmoBBQJlTQQCZVIJAGUCBQJlUAUCZUkEAmVTCQBlAgUCZVEFAmVJAwkAZwIAAAUCZVIJAQFLAQkArAICAhZpbnZhbGlkIGJ0Y1dlaWdodE5ldzogCQCkAwEFAmVSAwkAZwIAAAUCZVMJAQFLAQkArAICAhZpbnZhbGlkIGV0aFdlaWdodE5ldzogCQCkAwEFAmVTBAJlVAkBAmJnAQkBAmFGAQUCZUMEAmVVCQECYmcBCQECYUYBBQJlRAQCZVYJAQJiZwEJAQJhRgEFAmVFBAJlVwkBAmJnAQkBAmFGAQUCZUYEAmVYCQD8BwQFAmVKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlVAkAzAgCBQJlQwUDbmlsBQNuaWwDCQAAAgUCZVgFAmVYBAJlWQkA/AcEBQJlSgIOb25Nb2RpZnlXZWlnaHQJAMwIAgUCZVUJAMwIAgUCZUQFA25pbAUDbmlsAwkAAAIFAmVZBQJlWQQCZVoJAPwHBAUCZUoCDm9uTW9kaWZ5V2VpZ2h0CQDMCAIFAmVWCQDMCAIFAmVFBQNuaWwFA25pbAMJAAACBQJlWgUCZVoEAmZhCQD8BwQFAmVKAg5vbk1vZGlmeVdlaWdodAkAzAgCBQJlVwkAzAgCBQJlRgUDbmlsBQNuaWwDCQAAAgUCZmEFAmZhCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlTAUCZVIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVNBQJlUwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZU4FAmVHCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlTwUCZUgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVDAAAFAmVQCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcCBQJlRAAABQJlUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAgUCZUUAAAUCZUcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwIFAmVGAAAFAmVIBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBGGNoZWNrV3hFbWlzc2lvblBvb2xMYWJlbAICYUkCYUoEAmZiBAJibgkAoAgBCQECYUgCBQJhSQUCYUoDCQABAgUCYm4CB0Jvb2xlYW4EAmRoBQJibgUCZGgHCQCUCgIFA25pbAUCZmICYlIBFnNldFd4RW1pc3Npb25Qb29sTGFiZWwCAmFJAmFKBAJkegkBAmNFAQUCYlIDCQAAAgUCZHoFAmR6CQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQJhSAIFAmFJBQJhSgYFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEZZGVsZXRlV3hFbWlzc2lvblBvb2xMYWJlbAICYUkCYUoEAmR6AwkAAAIIBQJiUgZjYWxsZXIFBHRoaXMGCQECY0UBBQJiUgMJAAACBQJkegUCZHoJAJQKAgkAzAgCCQELRGVsZXRlRW50cnkBCQECYUgCBQJhSQUCYUoFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgESb25WZXJpZmljYXRpb25Mb3NzAQJhUgQCZHoDCQAAAgkA2AQBCAgFAmJSBmNhbGxlcgVieXRlcwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEBWAACAAYJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZEcJAQJiTAAEAmZjAwkAZgIJAJADAQUCZEcAAAYJAQFLAQIUaW52YWxpZCBwcmljZSBhc3NldHMDCQAAAgUCZmMFAmZjCgECZmQCAmZlAmZmBAJkYgkA/AcEBQR0aGlzAhlkZWxldGVXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAmFSCQDMCAIFAmZmBQNuaWwFA25pbAMJAAACBQJkYgUCZGIFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmZnCgACZmgFAmRHCgACZmkJAJADAQUCZmgKAAJmagUEdW5pdAoBAmZrAgJmbAJmbQMJAGcCBQJmbQUCZmkFAmZsCQECZmQCBQJmbAkAkQMCBQJmaAUCZm0KAQJmbgICZmwCZm0DCQBnAgUCZm0FAmZpBQJmbAkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEzCQECZm4CCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCCQECZmsCBQJmagAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0DCQAAAgUCZmcFAmZnCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJiUgEoaXNQb29sT25lVG9rZW5PcGVyYXRpb25zRGlzYWJsZWRSRUFET05MWQECYWYEAmVnCQECY3YBBQJhZgQCYXEJAJQKAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVnBQFDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWcFAUQEAmZvCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhcAEFAmFxBwQCZnAJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAmFzAAcJAJQKAgUDbmlsAwUCZnAGBQJmbwJiUgEaaXNQb29sU3dhcERpc2FibGVkUkVBRE9OTFkBAmFmBAJlZwkBAmN2AQUCYWYEAmFxCQCUCgIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlZwUBQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVnBQFEBAJmcQkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYXQBBQJhcQcEAmZyCQELdmFsdWVPckVsc2UCCQCgCAEJAQJhdgAHCQCUCgIFA25pbAMFAmZyBgUCZnECYlIBEGdldEluRmVlUkVBRE9OTFkBAmFmBAJmcwkBAmNIAwkBAmFLAQUCYWYJAQJhTAAAAAkAlAoCBQNuaWwFAmZzAmJSARFnZXRPdXRGZWVSRUFET05MWQECYWYEAmZzCQECY0gDCQECYU4BBQJhZgkBAmFPAAkAawMACgUBYgCQTgkAlAoCBQNuaWwFAmZzAmJSARJnZXRTd2FwRmVlUkVBRE9OTFkBAmZ0BAJmdQQCYm4JAJ0IAgUEdGhpcwkBAmFNAQUCZnQDCQABAgUCYm4CBlN0cmluZwQCYm8FAmJuBAJmdgkAtQkCBQJibwUBbQQCZncJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJmdgABBAJmeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmZ2AAIJAJQKAgUCZncFAmZ4AwkAAQIFAmJuAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IJAJQKAgUDbmlsBQJmdQJiUgEQcG9vbEluZm9SRUFET05MWQICZnkCZnoEAmZBCQCaCAIFBHRoaXMJAQJhawEFAmZ5BAJmQgkAmggCBQR0aGlzCQECYWsBBQJmegQCZkMJAJ0IAgUEdGhpcwkBAmFFAgkBBXZhbHVlAQUCZkEJAQV2YWx1ZQEFAmZCBAJmRAkAnQgCBQR0aGlzCQECYUYBCQEFdmFsdWUBBQJmQwQCZFQDAwkBCWlzRGVmaW5lZAEFAmZBCQEJaXNEZWZpbmVkAQUCZkIHCQEJaXNEZWZpbmVkAQUCZkMHBAJmRQMFAmRUCQCUCgIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEFAmZDCQECYmsBCQEFdmFsdWUBBQJmRAUEdW5pdAkAlAoCBQNuaWwFAmZFAmJSARVnZXRQb29sU3RhdHVzUkVBRE9OTFkBAmFmBAJjdwkAtQkCCQECYmcBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3cAAQQCYW8JAJEDAgUCY3cAAgQCY04JALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmNOBQF3AmJSARVnZXRQb29sQ29uZmlnUkVBRE9OTFkBAmFmBAJjdwkAtQkCCQECYmcBCQECYUMBBQJhZgUBbQQCYW4JAJEDAgUCY3cAAQQCYW8JAJEDAgUCY3cAAgQCY04JALUJAgkBAmJnAQkBAmFtAgUCYW4FAmFvBQFtCQCUCgIFA25pbAUCY04CYlIBIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZAQJkWQQCY3cJALUJAgkBAmJnAQkBAmF3AQUCZFkFAW0EAmFuCQCRAwIFAmN3AAEEAmFvCQCRAwIFAmN3AAIEAmNOCQC1CQIJAQJiZwEJAQJhbQIFAmFuBQJhbwUBbQkAlAoCBQNuaWwFAmNOAmJSARJwb29sRXhpc3RzUkVBRE9OTFkCAmFJAmFKCQCUCgIFA25pbAkBAmNLAgUCYUkFAmFKAmJSARtza2lwT3JkZXJWYWxpZGF0aW9uUkVBRE9OTFkBAmFmCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQECYVMBBQJhZgcCYlIBGmdldENoYW5nZUFtcENvbmZpZ1JFQURPTkxZAQJhZgQCZkYJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQJhVAEFAmFmBAJmRwkBEUBleHRyTmF0aXZlKDEwNTUpAQkBAmFVAQUCYWYEAmZICQERQGV4dHJOYXRpdmUoMTA1NSkBCQECYVYBBQJhZgkAlAoCBQNuaWwJAMwIAgUCZkYJAMwIAgUCZkcJAMwIAgUCZkgFA25pbAJiUgEVZ2V0UG9vbFdlaWdodFJFQURPTkxZAQJjagQCYWYJAQJiZwEJAQJhRwEFAmNqBAJmSQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhZgAACQCUCgIFA25pbAUCZkkCYlIBCmRlbGV0ZVBvb2wBAmFEBAJlZwkBAmN2AQUCYUQEAmR6AwkAAAIJAKUIAQgFAmJSBmNhbGxlcgkBAmNSAQUCYUQDCQECY1kBBQJhRAYJAQFLAQIRUG9vbCBpcyBub3QgZW1wdHkJAQJiUwEFAmJSAwkAAAIFAmR6BQJkegQCZkoDCQAAAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWUBBQJhRAAAAAAGCQEBSwECF1Bvb2wgd2VpZ2h0IGlzIG5vdCBaZXJvAwkAAAIFAmZKBQJmSgQCZksDCQAAAgkAkQMCBQJlZwUBdwkApAMBBQFyBgkBAUsBAhlQb29sIG11c3QgYmUgU0hVVERPV04gKDQpAwkAAAIFAmZLBQJmSwQCZkwJAQJjUQEFAmFEBAJhSQgFAmZMAl8xBAJhSggFAmZMAl8yBAJjaggFAmZMAl8zBAJhbggFAmZMAl80BAJhbwgFAmZMAl81BAJjVAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVoABAJmTQkA/AcEBQJjVAIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk0FAmZNBAJkRgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVkABAJmTgkA/AcEBQJkRgIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk4FAmZOBAJkRQkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBAVgABAJmTwkA/AcEBQJkRQIKZGVsZXRlUG9vbAkAzAgCBQJhSQkAzAgCBQJhSgUDbmlsBQNuaWwDCQAAAgUCZk8FAmZPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhRgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJheQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFFAgUCYW4FAmFvCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhbQIJAKQDAQUCYW4JAKQDAQUCYW8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmF3AQUCY2oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFHAQUCY2oJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFIAgUCYUkFAmFKCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZQEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhQgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhSwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTgEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhUwEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVAEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVQEFAmFECQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhVgEFAmFEBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYlIBCGdldFByaWNlAQJmdAQCYWYJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmZ0BAJjTgkBAmN2AQUCZnQEAmNqCQDZBAEJAJEDAgUCY04FAXgEAmZQCQCRAwIFAmNOBQF5BAJhSgkAkQMCBQJjTgUBegQCZlEICQEFdmFsdWUBCQDsBwEFAmNqCHF1YW50aXR5BAJmUgoAAmZTCQD8BwQFAmFmAhxnZXRBY2NCYWxhbmNlV3JhcHBlclJFQURPTkxZCQDMCAIFAmZQBQNuaWwFA25pbAMJAAECBQJmUwIDSW50BQJmUwkAAgEJAKwCAgkAAwEFAmZTAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmZUCgACZlMJAPwHBAUCYWYCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCYUoFA25pbAUDbmlsAwkAAQIFAmZTAgNJbnQFAmZTCQACAQkArAICCQADAQUCZlMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCZlUDCQAAAgUCZlEAAAAACgACZlMJAJEDAgoAAmZTCQD8BwQFAmFmAhljYWxjUHJpY2VzV3JhcHBlclJFQURPTkxZCQDMCAIFAmZSCQDMCAIFAmZUCQDMCAIFAmZRBQNuaWwFA25pbAMJAAECBQJmUwIJTGlzdFtBbnldBQJmUwkAAgEJAKwCAgkAAwEFAmZTAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0AAAMJAAECBQJmUwIGU3RyaW5nBQJmUwkAAgEJAKwCAgkAAwEFAmZTAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcJAJQKAgUDbmlsBQJmVQJiUgEMY2hlY2tCYWxhbmNlAQJkWQQCZnQJAQJiZwEJAQJhRwEFAmRZBAJhZgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCZnQEAmNOCQECY3YBBQJmdAQCZnkJAJEDAgUCY04FAXkEAmZ6CQCRAwIFAmNOBQF6BAJmVgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwkBAmFQAAQCZlcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFRAQUCZnkFAmZWBAJmWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYVEBBQJmegUCZlYEAmZZCgACZlMJAPwHBAUCYWYCHGdldEFjY0JhbGFuY2VXcmFwcGVyUkVBRE9OTFkJAMwIAgUCZnkFA25pbAUDbmlsAwkAAQIFAmZTAgNJbnQFAmZTCQACAQkArAICCQADAQUCZlMCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCZloKAAJmUwkA/AcEBQJhZgIcZ2V0QWNjQmFsYW5jZVdyYXBwZXJSRUFET05MWQkAzAgCBQJmegUDbmlsBQNuaWwDCQABAgUCZlMCA0ludAUCZlMJAAIBCQCsAgIJAAMBBQJmUwIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJnYQkAZwIFAmZZCQBpAgUCZlcAAgQCZ2IJAGcCBQJmWgkAaQIFAmZYAAIEAmdjAwUCZ2EFAmdiBwkAlAoCBQNuaWwFAmdjAQJnZAECZ2UABAJnZgQCYm4JAQJiTQADCQABAgUCYm4CCkJ5dGVWZWN0b3IEAmJUBQJibgUCYlQDCQABAgUCYm4CBFVuaXQIBQJnZA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZ2QJYm9keUJ5dGVzCQCRAwIIBQJnZAZwcm9vZnMAAAUCZ2ZkhDVT", "height": 3066416, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6BSd8JiJrFHfk31qb713HJUFZd3Cz1XRBBuPMcGxUTfC Next: none Diff:
OldNewDifferences
369369 }
370370
371371
372-func bU (bR) = {
373- let bn = bM()
374- if ($isInstanceOf(bn, "ByteVector"))
375- then {
376- let bT = bn
377- (bR.callerPublicKey == bT)
378- }
379- else if ($isInstanceOf(bn, "Unit"))
380- then (bR.caller == this)
381- else throw("Match error")
382- }
372+func bU (bV,bW,bX,bY,bZ,ca,cb,cc,cd,ce,cf) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb, cc, cd, ce, cf], m)
383373
384374
385-func bV (bW,bX,bY,bZ,ca,cb,cc,cd,ce,cf,cg) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bW, bX, bY, bZ, ca, cb, cc, cd, ce, cf, cg], m)
375+func cg (bV,bW,bX,bY,bZ,ca,cb) = makeString(["%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb], m)
386376
387377
388-func ch (bW,bX,bY,bZ,ca,cb,cc) = makeString(["%s%s%s%s%s%s", bW, bX, bY, bZ, ca, cb, cc], m)
378+func ch (af,ci,cj,ck,cl,cm,cn,co,cp,cq,cr) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, ci, cj, ck, cl, toString(cm), toString(cn), toString(co), toString(cp), toString(cq), cr], m)
389379
390380
391-func ci (af,cj,ck,cl,cm,cn,co,cp,cq,cr,cs) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, cj, ck, cl, cm, toString(cn), toString(co), toString(cp), toString(cq), toString(cr), cs], m)
381+func cs (ct,cu) = makeString(["%d%d", toString(ct), toString(cu)], m)
392382
393383
394-func ct (cu,cv) = makeString(["%d%d", toString(cu), toString(cv)], m)
395-
396-
397-func cw (af) = {
398- let cx = split(bg(aC(af)), m)
399- let an = cx[1]
400- let ao = cx[2]
384+func cv (af) = {
385+ let cw = split(bg(aC(af)), m)
386+ let an = cw[1]
387+ let ao = cw[2]
401388 split(bg(am(an, ao)), m)
402389 }
403390
404391
405-func cy (cz,cA) = {
406- let cB = valueOrElse(getInteger(this, ak(cz)), 0)
407- let cC = valueOrElse(getInteger(this, ad()), 0)
408- let cD = if ((cB == 0))
392+func cx (cy,cz) = {
393+ let cA = valueOrElse(getInteger(this, ak(cy)), 0)
394+ let cB = valueOrElse(getInteger(this, ad()), 0)
395+ let cC = if ((cA == 0))
409396 then {
410- let cE = (cC + cA)
411- $Tuple3(cE, [IntegerEntry(ad(), cE), IntegerEntry(ak(cz), cE), StringEntry(ai(cE), cz)], true)
397+ let cD = (cB + cz)
398+ $Tuple3(cD, [IntegerEntry(ad(), cD), IntegerEntry(ak(cy), cD), StringEntry(ai(cD), cy)], true)
412399 }
413- else $Tuple3(cB, nil, false)
414- cD
400+ else $Tuple3(cA, nil, false)
401+ cC
415402 }
416403
417404
418-func cF (bR) = {
419- let cG = split(valueOrElse(getString(W()), n), m)
420- if (containsElement(cG, toBase58String(bR.callerPublicKey)))
405+func cE (bR) = {
406+ let cF = split(valueOrElse(getString(W()), n), m)
407+ if (containsElement(cF, toBase58String(bR.callerPublicKey)))
421408 then true
422409 else {
423- let cH = bS(bR)
424- if ((cH == cH))
410+ let cG = bS(bR)
411+ if ((cG == cG))
425412 then true
426413 else throw("Strict value is not equal to itself.")
427414 }
428415 }
429416
430417
431-func cI (bh,cJ,cK) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cJ), cK))
418+func cH (bh,cI,cJ) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cI), cJ))
432419
433420
434-func cL (aI,aJ) = {
421+func cK (aI,aJ) = {
435422 let an = getInteger(ak(aI))
436423 let ao = getInteger(ak(aJ))
437424 if (if ((an == unit))
439426 else (ao == unit))
440427 then false
441428 else {
442- let cM = toString(value(an))
443- let cN = toString(value(ao))
444- let cO = getString(am(cM, cN))
445- let cP = getString(am(cN, cM))
446- let cQ = if ((cO != unit))
429+ let cL = toString(value(an))
430+ let cM = toString(value(ao))
431+ let cN = getString(am(cL, cM))
432+ let cO = getString(am(cM, cL))
433+ let cP = if ((cN != unit))
447434 then true
448- else (cP != unit)
449- cQ
435+ else (cO != unit)
436+ cP
450437 }
451438 }
452439
453440
454-func cR (aD) = {
455- let cx = {
441+func cQ (aD) = {
442+ let cw = {
456443 let bn = getString(aC(aD))
457444 if ($isInstanceOf(bn, "String"))
458445 then {
461448 }
462449 else K(makeString([aD, "pool is not found"], " "))
463450 }
464- let an = parseIntValue(cx[1])
465- let ao = parseIntValue(cx[2])
451+ let an = parseIntValue(cw[1])
452+ let ao = parseIntValue(cw[2])
466453 let aI = getStringValue(ai(an))
467454 let aJ = getStringValue(ai(ao))
468- let ck = getStringValue(aF(aD))
469- $Tuple5(aI, aJ, ck, an, ao)
455+ let cj = getStringValue(aF(aD))
456+ $Tuple5(aI, aJ, cj, an, ao)
470457 }
471458
472459
473-func cS (aD) = {
474- let cT = cR(aD)
475- let aI = cT._1
476- let aJ = cT._2
477- let ck = cT._3
478- let an = cT._4
479- let ao = cT._5
480- let cU = addressFromStringValue(getStringValue(Z()))
481- let cV = invoke(cU, "getPoolCreatorREADONLY", [aI, aJ], nil)
482- cV
460+func cR (aD) = {
461+ let cS = cQ(aD)
462+ let aI = cS._1
463+ let aJ = cS._2
464+ let cj = cS._3
465+ let an = cS._4
466+ let ao = cS._5
467+ let cT = addressFromStringValue(getStringValue(Z()))
468+ let cU = invoke(cT, "getPoolCreatorREADONLY", [aI, aJ], nil)
469+ cU
483470 }
484471
485472
486-func cW (cX,cY) = {
487- let bf = addressFromStringValue(cX)
488- if ((cY == "WAVES"))
473+func cV (cW,cX) = {
474+ let bf = addressFromStringValue(cW)
475+ if ((cX == "WAVES"))
489476 then wavesBalance(bf).regular
490477 else {
491- let aR = fromBase58String(cY)
478+ let aR = fromBase58String(cX)
492479 assetBalance(bf, aR)
493480 }
494481 }
495482
496483
497-func cZ (aD) = {
498- let da = cR(aD)
499- let aI = da._1
500- let aJ = da._2
501- let ck = da._3
502- let an = da._4
503- let ao = da._5
504- if ((cW(aD, aI) == 0))
505- then (cW(aD, aJ) == 0)
484+func cY (aD) = {
485+ let cZ = cQ(aD)
486+ let aI = cZ._1
487+ let aJ = cZ._2
488+ let cj = cZ._3
489+ let an = cZ._4
490+ let ao = cZ._5
491+ if ((cV(aD, aI) == 0))
492+ then (cV(aD, aJ) == 0)
506493 else false
507494 }
508495
514501
515502 @Callable(bR)
516503 func getPoolLeaseConfigREADONLY (af,aR) = {
517- let db = {
504+ let da = {
518505 let bn = getInteger(this, aZ(af, aR))
519506 if ($isInstanceOf(bn, "Int"))
520507 then {
521- let dc = bn
522- $Tuple2(true, min([100, max([0, dc])]))
508+ let db = bn
509+ $Tuple2(true, min([100, max([0, db])]))
523510 }
524511 else {
525- let dd = getInteger(this, ba(aR))
526- if ($isInstanceOf(dd, "Int"))
512+ let dc = getInteger(this, ba(aR))
513+ if ($isInstanceOf(dc, "Int"))
527514 then {
528- let de = dd
529- $Tuple2(true, min([100, max([0, de])]))
515+ let dd = dc
516+ $Tuple2(true, min([100, max([0, dd])]))
530517 }
531518 else $Tuple2(false, 0)
532519 }
533520 }
534- let df = db._1
535- let dg = db._2
536- let dh = {
521+ let de = da._1
522+ let df = da._2
523+ let dg = {
537524 let bn = getInteger(this, bc(af, aR))
538525 if ($isInstanceOf(bn, "Int"))
539526 then {
540- let di = bn
541- max([0, di])
527+ let dh = bn
528+ max([0, dh])
542529 }
543530 else {
544- let dd = getInteger(this, bd(aR))
545- if ($isInstanceOf(dd, "Int"))
531+ let dc = getInteger(this, bd(aR))
532+ if ($isInstanceOf(dc, "Int"))
546533 then {
547- let dj = dd
548- max([0, dj])
534+ let di = dc
535+ max([0, di])
549536 }
550537 else 0
551538 }
552539 }
553- let dk = if ((aR == "WAVES"))
540+ let dj = if ((aR == "WAVES"))
554541 then $Tuple3(valueOrElse(getString(this, aW()), ""), getString(this, valueOrElse(aX(), "")), c)
555542 else $Tuple3("", "", 0)
556- let dl = dk._1
557- let dm = dk._2
558- let dn = dk._3
559- let do = valueOrElse(getString(this, aY()), "")
560- $Tuple2(nil, $Tuple7(df, dg, dh, dl, dm, dn, do))
543+ let dk = dj._1
544+ let dl = dj._2
545+ let dm = dj._3
546+ let dn = valueOrElse(getString(this, aY()), "")
547+ $Tuple2(nil, $Tuple7(de, df, dg, dk, dl, dm, dn))
561548 }
562549
563550
564551
565552 @Callable(bR)
566-func getLpAssetFromPoolAssetsREADONLY (dp,dq) = if (if ((dp == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
567- then (dq == "WAVES")
553+func getLpAssetFromPoolAssetsREADONLY (do,dp) = if (if ((do == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
554+ then (dp == "WAVES")
568555 else false)
569556 then $Tuple2(nil, unit)
570557 else {
558+ let dq = value(getInteger(this, ak(do)))
571559 let dr = value(getInteger(this, ak(dp)))
572- let ds = value(getInteger(this, ak(dq)))
573- let dt = getString(this, ay(toString(dr), toString(ds)))
574- let du = if ((dt == unit))
560+ let ds = getString(this, ay(toString(dq), toString(dr)))
561+ let dt = if ((ds == unit))
575562 then unit
576- else drop(value(dt), 4)
577- $Tuple2(nil, du)
563+ else drop(value(ds), 4)
564+ $Tuple2(nil, dt)
578565 }
579566
580567
581568
582569 @Callable(bR)
583-func getPoolAddressFromLpAssetREADONLY (dv) = $Tuple2(nil, valueOrElse(getString(this, aG(dv)), ""))
570+func getPoolAddressFromLpAssetREADONLY (du) = $Tuple2(nil, valueOrElse(getString(this, aG(du)), ""))
584571
585572
586573
587574 @Callable(bR)
588-func constructor (dw,dx,bY,bZ,ca,cb,dy,dz) = {
589- let dA = bS(bR)
590- if ((dA == dA))
591- then [StringEntry(O(), ch(dw, dx, bY, bZ, ca, cb, dy)), IntegerEntry(ab(), dz)]
575+func constructor (dv,dw,bX,bY,bZ,ca,dx,dy) = {
576+ let dz = bS(bR)
577+ if ((dz == dz))
578+ then [StringEntry(O(), cg(dv, dw, bX, bY, bZ, ca, dx)), IntegerEntry(ab(), dy)]
592579 else throw("Strict value is not equal to itself.")
593580 }
594581
595582
596583
597584 @Callable(bR)
598-func constructorV2 (dB) = {
599- let dA = bS(bR)
600- if ((dA == dA))
585+func constructorV2 (dA) = {
586+ let dz = bS(bR)
587+ if ((dz == dz))
601588 then {
602- let dC = addressFromPublicKey(fromBase58String(dB))
603- if ((dC == dC))
604- then [StringEntry(R(), dB)]
589+ let dB = addressFromPublicKey(fromBase58String(dA))
590+ if ((dB == dB))
591+ then [StringEntry(R(), dA)]
605592 else throw("Strict value is not equal to itself.")
606593 }
607594 else throw("Strict value is not equal to itself.")
610597
611598
612599 @Callable(bR)
613-func constructorV3 (cd,ce,cf,cg) = {
614- let dA = bS(bR)
615- if ((dA == dA))
600+func constructorV3 (cc,cd,ce,cf) = {
601+ let dz = bS(bR)
602+ if ((dz == dz))
616603 then {
617604 let bH = split(bg(O()), m)
618-[StringEntry(O(), bV(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cd, ce, cf, cg))]
605+[StringEntry(O(), bU(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cc, cd, ce, cf))]
619606 }
620607 else throw("Strict value is not equal to itself.")
621608 }
623610
624611
625612 @Callable(bR)
626-func constructorV4 (dD,dE) = {
627- let dA = bS(bR)
628- if ((dA == dA))
629- then [StringEntry(S(), dD), StringEntry(T(), makeString(dE, m))]
613+func constructorV4 (dC,dD) = {
614+ let dz = bS(bR)
615+ if ((dz == dz))
616+ then [StringEntry(S(), dC), StringEntry(T(), makeString(dD, m))]
630617 else throw("Strict value is not equal to itself.")
631618 }
632619
633620
634621
635622 @Callable(bR)
636-func constructorV5 (dF) = {
637- let dA = bS(bR)
638- if ((dA == dA))
639- then [StringEntry(X(), dF)]
623+func constructorV5 (dE) = {
624+ let dz = bS(bR)
625+ if ((dz == dz))
626+ then [StringEntry(X(), dE)]
640627 else throw("Strict value is not equal to itself.")
641628 }
642629
643630
644631
645632 @Callable(bR)
646-func constructorV6 (dG,dH) = {
647- let dI = [bS(bR), if ((addressFromString(dG) != unit))
633+func constructorV6 (dF,dG) = {
634+ let dH = [bS(bR), if ((addressFromString(dF) != unit))
648635 then true
649636 else "invalid voting emission contract address"]
650- if ((dI == dI))
651- then [StringEntry(Y(), dG), StringEntry(aa(), makeString(dH, m))]
637+ if ((dH == dH))
638+ then [StringEntry(Y(), dF), StringEntry(aa(), makeString(dG, m))]
652639 else throw("Strict value is not equal to itself.")
653640 }
654641
655642
656643
657644 @Callable(bR)
658-func setAdmins (dJ) = {
659- let dA = bS(bR)
660- if ((dA == dA))
661- then [StringEntry(W(), makeString(dJ, m))]
645+func setAdmins (dI) = {
646+ let dz = bS(bR)
647+ if ((dz == dz))
648+ then [StringEntry(W(), makeString(dI, m))]
662649 else throw("Strict value is not equal to itself.")
663650 }
664651
665652
666653
667654 @Callable(bR)
668-func activateNewPool (af,cl,cm,dK,dL,dM,cs,dN) = {
669- let dA = cF(bR)
670- if ((dA == dA))
655+func activateNewPool (af,ck,cl,dJ,dK,dL,cr,dM) = {
656+ let dz = cE(bR)
657+ if ((dz == dz))
671658 then if (isDefined(getString(aC(af))))
672659 then K((("Pool address " + af) + " already registered."))
673660 else {
674- let dO = cy(cl, 1)
675- let dP = dO._1
676- let dQ = cy(cm, if (dO._3)
661+ let dN = cx(ck, 1)
662+ let dO = dN._1
663+ let dP = cx(cl, if (dN._3)
677664 then 2
678665 else 1)
679- let dR = dQ._1
680- let dS = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
681- let dT = getBinaryValue(Q())
682- let dU = cL(cl, cm)
683- if (dU)
684- then K((((("Pool " + cl) + "/") + cm) + " has already been activated."))
666+ let dQ = dP._1
667+ let dR = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
668+ let dS = getBinaryValue(Q())
669+ let dT = cK(ck, cl)
670+ if (dT)
671+ then K((((("Pool " + ck) + "/") + cl) + " has already been activated."))
685672 else {
686- let dV = value(getString(this, am(toString(dP), toString(dR))))
673+ let dU = value(getString(this, am(toString(dO), toString(dQ))))
674+ let dV = if ((ck == "WAVES"))
675+ then l
676+ else pow(10, 0, value(assetInfo(fromBase58String(ck))).decimals, 0, 0, DOWN)
687677 let dW = if ((cl == "WAVES"))
688678 then l
689679 else pow(10, 0, value(assetInfo(fromBase58String(cl))).decimals, 0, 0, DOWN)
690- let dX = if ((cm == "WAVES"))
691- then l
692- else pow(10, 0, value(assetInfo(fromBase58String(cm))).decimals, 0, 0, DOWN)
693- let dY = Issue(dK, dL, 1, 8, true)
694- let ck = calculateAssetId(dY)
695- let dZ = toBase58String(ck)
696- let ea = invoke(addressFromStringValue(af), "activate", [cl, cm], nil)
697- if ((ea == ea))
698- then if ((ea != "success"))
680+ let dX = Issue(dJ, dK, 1, 8, true)
681+ let cj = calculateAssetId(dX)
682+ let dY = toBase58String(cj)
683+ let dZ = invoke(addressFromStringValue(af), "activate", [ck, cl], nil)
684+ if ((dZ == dZ))
685+ then if ((dZ != "success"))
699686 then K("Pool initialisation error happened.")
700687 else {
701- let dF = addressFromStringValue(bg(X()))
702- let eb = invoke(dF, "createOrUpdate", [dZ, dK, false], nil)
703- if ((eb == eb))
688+ let dE = addressFromStringValue(bg(X()))
689+ let ea = invoke(dE, "createOrUpdate", [dY, dJ, false], nil)
690+ if ((ea == ea))
704691 then {
705- let ec = invoke(dF, "addLabel", [dZ, h], nil)
706- if ((ec == ec))
692+ let eb = invoke(dE, "addLabel", [dY, h], nil)
693+ if ((eb == eb))
707694 then {
708- let ed = invoke(dF, "setLogo", [dZ, dN], nil)
709- if ((ed == ed))
695+ let ec = invoke(dE, "setLogo", [dY, dM], nil)
696+ if ((ec == ec))
710697 then {
711- let ee = invoke(dF, "addAssetsLink", [cl, cm, dZ], nil)
712- if ((ee == ee))
698+ let ed = invoke(dE, "addAssetsLink", [ck, cl, dY], nil)
699+ if ((ed == ed))
713700 then {
714- let ef = invoke(dF, "increaseAssetPoolsNumber", [cl], nil)
715- if ((ef == ef))
716- then $Tuple2(((dO._2 ++ dQ._2) ++ [dY, Burn(ck, 1), StringEntry(am(toString(dP), toString(dR)), ci(af, toString(o), dZ, cl, cm, dW, dX, dP, dR, l, cs)), StringEntry(aw(dZ), ct(dP, dR)), StringEntry(ay(toString(dP), toString(dR)), ("%s__" + dZ)), StringEntry(aC(af), ct(dP, dR)), StringEntry(aE(dP, dR), af), StringEntry(aG(dZ), af), StringEntry(aF(af), dZ), IntegerEntry(ae(af), dM), IntegerEntry(aB(af), i)]), dZ)
701+ let ee = invoke(dE, "increaseAssetPoolsNumber", [ck], nil)
702+ if ((ee == ee))
703+ then $Tuple2(((dN._2 ++ dP._2) ++ [dX, Burn(cj, 1), StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(o), dY, ck, cl, dV, dW, dO, dQ, l, cr)), StringEntry(aw(dY), cs(dO, dQ)), StringEntry(ay(toString(dO), toString(dQ)), ("%s__" + dY)), StringEntry(aC(af), cs(dO, dQ)), StringEntry(aE(dO, dQ), af), StringEntry(aG(dY), af), StringEntry(aF(af), dY), IntegerEntry(ae(af), dL), IntegerEntry(aB(af), i)]), dY)
717704 else throw("Strict value is not equal to itself.")
718705 }
719706 else throw("Strict value is not equal to itself.")
733720
734721
735722 @Callable(bR)
736-func managePool (af,eg) = {
737- let dA = bS(bR)
738- if ((dA == dA))
723+func managePool (af,ef) = {
724+ let dz = cE(bR)
725+ if ((dz == dz))
739726 then {
740- let eh = cw(af)
741- let cj = eh[w]
742- let dZ = eh[x]
743- let cl = eh[y]
744- let cm = eh[z]
745- let dW = parseIntValue(eh[A])
746- let dX = parseIntValue(eh[B])
747- let dP = parseIntValue(eh[C])
748- let dR = parseIntValue(eh[D])
749- let ei = parseIntValue(eh[E])
750- let cs = eh[F]
751-[StringEntry(am(toString(dP), toString(dR)), ci(af, toString(eg), dZ, cl, cm, dW, dX, dP, dR, ei, cs))]
727+ let eg = cv(af)
728+ let ci = eg[w]
729+ let dY = eg[x]
730+ let ck = eg[y]
731+ let cl = eg[z]
732+ let dV = parseIntValue(eg[A])
733+ let dW = parseIntValue(eg[B])
734+ let dO = parseIntValue(eg[C])
735+ let dQ = parseIntValue(eg[D])
736+ let eh = parseIntValue(eg[E])
737+ let cr = eg[F]
738+[StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(ef), dY, ck, cl, dV, dW, dO, dQ, eh, cr))]
752739 }
753740 else throw("Strict value is not equal to itself.")
754741 }
756743
757744
758745 @Callable(bR)
759-func emit (ej) = {
760- let ek = bR.caller
761- let el = bR.originCaller
762- let em = valueOrErrorMessage(getString(aF(toString(ek))), "Invalid LP address called me.")
763- let en = fromBase58String(em)
764- let dE = split(valueOrElse(getString(T()), n), m)
765- let dD = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
766- if ((0 >= ej))
746+func emit (ei) = {
747+ let ej = bR.caller
748+ let ek = bR.originCaller
749+ let el = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
750+ let em = fromBase58String(el)
751+ let dD = split(valueOrElse(getString(T()), n), m)
752+ let dC = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
753+ if ((0 >= ei))
767754 then nil
768- else if (containsElement(dE, toString(ek)))
769- then $Tuple2(nil, dD)
770- else $Tuple2([Reissue(en, ej, true), ScriptTransfer(bR.caller, ej, en)], "success")
755+ else if (containsElement(dD, toString(ej)))
756+ then $Tuple2(nil, dC)
757+ else $Tuple2([Reissue(em, ei, true), ScriptTransfer(bR.caller, ei, em)], "success")
771758 }
772759
773760
774761
775762 @Callable(bR)
776-func burn (eo) = {
777- let ek = bR.caller
778- let el = bR.originCaller
779- let ep = value(bR.payments[0])
780- let eq = value(ep.amount)
781- let er = toBase58String(value(ep.assetId))
782- let es = valueOrErrorMessage(getString(aF(toString(ek))), "Invalid LP address called me.")
783- if ((er != es))
763+func burn (en) = {
764+ let ej = bR.caller
765+ let ek = bR.originCaller
766+ let eo = value(bR.payments[0])
767+ let ep = value(eo.amount)
768+ let eq = toBase58String(value(eo.assetId))
769+ let er = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
770+ if ((eq != er))
784771 then K("Invalid asset passed.")
785- else if ((eo != eq))
772+ else if ((en != ep))
786773 then K("Invalid amount passed.")
787774 else {
788- let en = fromBase58String(es)
789- $Tuple2([Burn(en, eo)], "success")
775+ let em = fromBase58String(er)
776+ $Tuple2([Burn(em, en)], "success")
790777 }
791778 }
792779
793780
794781
795782 @Callable(bR)
796-func modifyWeight (ck,et) = {
797- let dA = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
783+func modifyWeight (cj,es) = {
784+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
798785 then true
799786 else bS(bR)
800- if ((dA == dA))
787+ if ((dz == dz))
801788 then {
802- let aD = bg(aG(ck))
803- let eu = ae(aD)
804- let ev = ae(g)
805- let ew = valueOrElse(getInteger(ev), 0)
806- let dM = valueOrElse(getInteger(eu), 0)
807- let ex = et
789+ let aD = bg(aG(cj))
790+ let et = ae(aD)
791+ let eu = ae(g)
792+ let ev = valueOrElse(getInteger(eu), 0)
793+ let dL = valueOrElse(getInteger(et), 0)
794+ let ew = es
808795 let bH = split(bg(O()), m)
809- let dw = bJ(bH)
810- let ey = invoke(dw, "onModifyWeight", [ck, aD], nil)
811- if ((ey == ey))
796+ let dv = bJ(bH)
797+ let ex = invoke(dv, "onModifyWeight", [cj, aD], nil)
798+ if ((ex == ex))
812799 then {
813- let ez = if ((ew == 0))
800+ let ey = if ((ev == 0))
814801 then nil
815- else [IntegerEntry(ev, 0)]
816- let eA = ag(aD, 0)
817- let eB = getInteger(eA)
818- let eC = if ((eB == unit))
802+ else [IntegerEntry(eu, 0)]
803+ let ez = ag(aD, 0)
804+ let eA = getInteger(ez)
805+ let eB = if ((eA == unit))
819806 then nil
820- else [DeleteEntry(eA)]
821- (([IntegerEntry(eu, ex)] ++ ez) ++ eC)
807+ else [DeleteEntry(ez)]
808+ (([IntegerEntry(et, ew)] ++ ey) ++ eB)
822809 }
823810 else throw("Strict value is not equal to itself.")
824811 }
828815
829816
830817 @Callable(bR)
831-func modifyWeights (eD,eE,eF,eG) = {
832- let dA = bS(bR)
833- if ((dA == dA))
818+func modifyWeights (eC,eD,eE,eF) = {
819+ let dz = bS(bR)
820+ if ((dz == dz))
834821 then {
822+ let eG = ((5 * f) / 100)
835823 let eH = ((5 * f) / 100)
836824 let eI = ((5 * f) / 100)
837- let eJ = ((5 * f) / 100)
838825 let bH = split(bg(O()), m)
839- let eK = bJ(bH)
840- let eL = bK(bH)
826+ let eJ = bJ(bH)
827+ let eK = bK(bH)
828+ let eL = ae(eC)
841829 let eM = ae(eD)
842830 let eN = ae(eE)
843831 let eO = ae(eF)
844- let eP = ae(eG)
832+ let eP = bj(eL)
845833 let eQ = bj(eM)
846- let eR = bj(eN)
847- let eS = (eQ - eJ)
848- let eT = (eR - eJ)
849- if ((0 >= eS))
850- then K(("invalid btcWeightNew: " + toString(eS)))
851- else if ((0 >= eT))
852- then K(("invalid ethWeightNew: " + toString(eT)))
834+ let eR = (eP - eI)
835+ let eS = (eQ - eI)
836+ if ((0 >= eR))
837+ then K(("invalid btcWeightNew: " + toString(eR)))
838+ else if ((0 >= eS))
839+ then K(("invalid ethWeightNew: " + toString(eS)))
853840 else {
841+ let eT = bg(aF(eC))
854842 let eU = bg(aF(eD))
855843 let eV = bg(aF(eE))
856844 let eW = bg(aF(eF))
857- let eX = bg(aF(eG))
858- let eY = invoke(eK, "onModifyWeight", [eU, eD], nil)
859- if ((eY == eY))
845+ let eX = invoke(eJ, "onModifyWeight", [eT, eC], nil)
846+ if ((eX == eX))
860847 then {
861- let eZ = invoke(eK, "onModifyWeight", [eV, eE], nil)
862- if ((eZ == eZ))
848+ let eY = invoke(eJ, "onModifyWeight", [eU, eD], nil)
849+ if ((eY == eY))
863850 then {
864- let fa = invoke(eK, "onModifyWeight", [eW, eF], nil)
865- if ((fa == fa))
851+ let eZ = invoke(eJ, "onModifyWeight", [eV, eE], nil)
852+ if ((eZ == eZ))
866853 then {
867- let fb = invoke(eK, "onModifyWeight", [eX, eG], nil)
868- if ((fb == fb))
869- then [IntegerEntry(eM, eS), IntegerEntry(eN, eT), IntegerEntry(eO, eH), IntegerEntry(eP, eI), IntegerEntry(ag(eD, 0), eQ), IntegerEntry(ag(eE, 0), eR), IntegerEntry(ag(eF, 0), eH), IntegerEntry(ag(eG, 0), eI)]
854+ let fa = invoke(eJ, "onModifyWeight", [eW, eF], nil)
855+ if ((fa == fa))
856+ then [IntegerEntry(eL, eR), IntegerEntry(eM, eS), IntegerEntry(eN, eG), IntegerEntry(eO, eH), IntegerEntry(ag(eC, 0), eP), IntegerEntry(ag(eD, 0), eQ), IntegerEntry(ag(eE, 0), eG), IntegerEntry(ag(eF, 0), eH)]
870857 else throw("Strict value is not equal to itself.")
871858 }
872859 else throw("Strict value is not equal to itself.")
883870
884871 @Callable(bR)
885872 func checkWxEmissionPoolLabel (aI,aJ) = {
886- let fc = {
873+ let fb = {
887874 let bn = getBoolean(aH(aI, aJ))
888875 if ($isInstanceOf(bn, "Boolean"))
889876 then {
890- let di = bn
891- di
877+ let dh = bn
878+ dh
892879 }
893880 else false
894881 }
895- $Tuple2(nil, fc)
882+ $Tuple2(nil, fb)
896883 }
897884
898885
899886
900887 @Callable(bR)
901888 func setWxEmissionPoolLabel (aI,aJ) = {
902- let dA = cF(bR)
903- if ((dA == dA))
889+ let dz = cE(bR)
890+ if ((dz == dz))
904891 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
905892 else throw("Strict value is not equal to itself.")
906893 }
909896
910897 @Callable(bR)
911898 func deleteWxEmissionPoolLabel (aI,aJ) = {
912- let dA = if ((bR.caller == this))
899+ let dz = if ((bR.caller == this))
913900 then true
914- else cF(bR)
915- if ((dA == dA))
901+ else cE(bR)
902+ if ((dz == dz))
916903 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
917904 else throw("Strict value is not equal to itself.")
918905 }
921908
922909 @Callable(bR)
923910 func onVerificationLoss (aR) = {
924- let dA = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
911+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
925912 then true
926913 else bS(bR)
927- if ((dA == dA))
914+ if ((dz == dz))
928915 then {
929- let dH = bL()
930- let fd = if ((size(dH) > 0))
916+ let dG = bL()
917+ let fc = if ((size(dG) > 0))
931918 then true
932919 else K("invalid price assets")
933- if ((fd == fd))
920+ if ((fc == fc))
934921 then {
935- func fe (ff,fg) = {
936- let dc = invoke(this, "deleteWxEmissionPoolLabel", [aR, fg], nil)
937- if ((dc == dc))
922+ func fd (fe,ff) = {
923+ let db = invoke(this, "deleteWxEmissionPoolLabel", [aR, ff], nil)
924+ if ((db == db))
938925 then unit
939926 else throw("Strict value is not equal to itself.")
940927 }
941928
942- let fh = {
943- let fi = dH
944- let fj = size(fi)
945- let fk = unit
946- func fl (fm,fn) = if ((fn >= fj))
947- then fm
948- else fe(fm, fi[fn])
929+ let fg = {
930+ let fh = dG
931+ let fi = size(fh)
932+ let fj = unit
933+ func fk (fl,fm) = if ((fm >= fi))
934+ then fl
935+ else fd(fl, fh[fm])
949936
950- func fo (fm,fn) = if ((fn >= fj))
951- then fm
937+ func fn (fl,fm) = if ((fm >= fi))
938+ then fl
952939 else throw("List size exceeds 13")
953940
954- fo(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
941+ fn(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fj, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
955942 }
956- if ((fh == fh))
943+ if ((fg == fg))
957944 then $Tuple2(nil, unit)
958945 else throw("Strict value is not equal to itself.")
959946 }
966953
967954 @Callable(bR)
968955 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
969- let eh = cw(af)
970- let aq = $Tuple2(parseIntValue(eh[C]), parseIntValue(eh[D]))
971- let fp = valueOrElse(getBoolean(ap(aq)), false)
972- let fq = valueOrElse(getBoolean(as()), false)
973- $Tuple2(nil, if (fq)
956+ let eg = cv(af)
957+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
958+ let fo = valueOrElse(getBoolean(ap(aq)), false)
959+ let fp = valueOrElse(getBoolean(as()), false)
960+ $Tuple2(nil, if (fp)
974961 then true
975- else fp)
962+ else fo)
976963 }
977964
978965
979966
980967 @Callable(bR)
981968 func isPoolSwapDisabledREADONLY (af) = {
982- let eh = cw(af)
983- let aq = $Tuple2(parseIntValue(eh[C]), parseIntValue(eh[D]))
984- let fr = valueOrElse(getBoolean(at(aq)), false)
985- let fs = valueOrElse(getBoolean(av()), false)
986- $Tuple2(nil, if (fs)
969+ let eg = cv(af)
970+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
971+ let fq = valueOrElse(getBoolean(at(aq)), false)
972+ let fr = valueOrElse(getBoolean(av()), false)
973+ $Tuple2(nil, if (fr)
987974 then true
988- else fr)
975+ else fq)
989976 }
990977
991978
992979
993980 @Callable(bR)
994981 func getInFeeREADONLY (af) = {
995- let ft = cI(aK(af), aL(), 0)
996- $Tuple2(nil, ft)
982+ let fs = cH(aK(af), aL(), 0)
983+ $Tuple2(nil, fs)
997984 }
998985
999986
1000987
1001988 @Callable(bR)
1002989 func getOutFeeREADONLY (af) = {
1003- let ft = cI(aN(af), aO(), fraction(10, b, 10000))
1004- $Tuple2(nil, ft)
990+ let fs = cH(aN(af), aO(), fraction(10, b, 10000))
991+ $Tuple2(nil, fs)
1005992 }
1006993
1007994
1008995
1009996 @Callable(bR)
1010-func getSwapFeeREADONLY (fu) = {
1011- let fv = {
1012- let bn = getString(this, aM(fu))
997+func getSwapFeeREADONLY (ft) = {
998+ let fu = {
999+ let bn = getString(this, aM(ft))
10131000 if ($isInstanceOf(bn, "String"))
10141001 then {
10151002 let bo = bn
1016- let fw = split(bo, m)
1017- let fx = parseIntValue(fw[1])
1018- let fy = parseIntValue(fw[2])
1019- $Tuple2(fx, fy)
1003+ let fv = split(bo, m)
1004+ let fw = parseIntValue(fv[1])
1005+ let fx = parseIntValue(fv[2])
1006+ $Tuple2(fw, fx)
10201007 }
10211008 else if ($isInstanceOf(bn, "Unit"))
10221009 then unit
10231010 else throw("Match error")
10241011 }
1025- $Tuple2(nil, fv)
1012+ $Tuple2(nil, fu)
10261013 }
10271014
10281015
10291016
10301017 @Callable(bR)
1031-func poolInfoREADONLY (fz,fA) = {
1018+func poolInfoREADONLY (fy,fz) = {
1019+ let fA = getInteger(this, ak(fy))
10321020 let fB = getInteger(this, ak(fz))
1033- let fC = getInteger(this, ak(fA))
1034- let fD = getString(this, aE(value(fB), value(fC)))
1035- let fE = getString(this, aF(value(fD)))
1036- let dU = if (if (isDefined(fB))
1021+ let fC = getString(this, aE(value(fA), value(fB)))
1022+ let fD = getString(this, aF(value(fC)))
1023+ let dT = if (if (isDefined(fA))
1024+ then isDefined(fB)
1025+ else false)
10371026 then isDefined(fC)
1038- else false)
1039- then isDefined(fD)
10401027 else false
1041- let fF = if (dU)
1042- then $Tuple2(addressFromStringValue(value(fD)), bk(value(fE)))
1028+ let fE = if (dT)
1029+ then $Tuple2(addressFromStringValue(value(fC)), bk(value(fD)))
10431030 else unit
1044- $Tuple2(nil, fF)
1031+ $Tuple2(nil, fE)
10451032 }
10461033
10471034
10481035
10491036 @Callable(bR)
10501037 func getPoolStatusREADONLY (af) = {
1051- let cx = split(bg(aC(af)), m)
1052- let an = cx[1]
1053- let ao = cx[2]
1054- let cO = split(bg(am(an, ao)), m)
1055- $Tuple2(nil, parseIntValue(cO[w]))
1038+ let cw = split(bg(aC(af)), m)
1039+ let an = cw[1]
1040+ let ao = cw[2]
1041+ let cN = split(bg(am(an, ao)), m)
1042+ $Tuple2(nil, parseIntValue(cN[w]))
10561043 }
10571044
10581045
10591046
10601047 @Callable(bR)
10611048 func getPoolConfigREADONLY (af) = {
1062- let cx = split(bg(aC(af)), m)
1063- let an = cx[1]
1064- let ao = cx[2]
1065- let cO = split(bg(am(an, ao)), m)
1066- $Tuple2(nil, cO)
1049+ let cw = split(bg(aC(af)), m)
1050+ let an = cw[1]
1051+ let ao = cw[2]
1052+ let cN = split(bg(am(an, ao)), m)
1053+ $Tuple2(nil, cN)
10671054 }
10681055
10691056
10701057
10711058 @Callable(bR)
1072-func getPoolConfigByLpAssetIdREADONLY (dZ) = {
1073- let cx = split(bg(aw(dZ)), m)
1074- let an = cx[1]
1075- let ao = cx[2]
1076- let cO = split(bg(am(an, ao)), m)
1077- $Tuple2(nil, cO)
1059+func getPoolConfigByLpAssetIdREADONLY (dY) = {
1060+ let cw = split(bg(aw(dY)), m)
1061+ let an = cw[1]
1062+ let ao = cw[2]
1063+ let cN = split(bg(am(an, ao)), m)
1064+ $Tuple2(nil, cN)
10781065 }
10791066
10801067
10811068
10821069 @Callable(bR)
1083-func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cL(aI, aJ))
1070+func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cK(aI, aJ))
10841071
10851072
10861073
10911078
10921079 @Callable(bR)
10931080 func getChangeAmpConfigREADONLY (af) = {
1094- let fG = getIntegerValue(aT(af))
1095- let fH = getIntegerValue(aU(af))
1096- let fI = getIntegerValue(aV(af))
1097- $Tuple2(nil, [fG, fH, fI])
1081+ let fF = getIntegerValue(aT(af))
1082+ let fG = getIntegerValue(aU(af))
1083+ let fH = getIntegerValue(aV(af))
1084+ $Tuple2(nil, [fF, fG, fH])
10981085 }
10991086
11001087
11011088
11021089 @Callable(bR)
1103-func getPoolWeightREADONLY (ck) = {
1104- let af = bg(aG(ck))
1105- let fJ = valueOrElse(getInteger(ae(af)), 0)
1106- $Tuple2(nil, fJ)
1090+func getPoolWeightREADONLY (cj) = {
1091+ let af = bg(aG(cj))
1092+ let fI = valueOrElse(getInteger(ae(af)), 0)
1093+ $Tuple2(nil, fI)
11071094 }
11081095
11091096
11101097
11111098 @Callable(bR)
11121099 func deletePool (aD) = {
1113- let eh = cw(aD)
1114- let dA = [if (if (bU(bR))
1115- then true
1116- else if ((toString(bR.caller) == cS(aD)))
1117- then cZ(aD)
1118- else false)
1119- then true
1120- else K("Pool is not empty")]
1121- if ((dA == dA))
1100+ let eg = cv(aD)
1101+ let dz = if ((toString(bR.caller) == cR(aD)))
1102+ then if (cY(aD))
1103+ then true
1104+ else K("Pool is not empty")
1105+ else bS(bR)
1106+ if ((dz == dz))
11221107 then {
1123- let fK = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
1108+ let fJ = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
11241109 then true
11251110 else K("Pool weight is not Zero")
1126- if ((fK == fK))
1111+ if ((fJ == fJ))
11271112 then {
1128- let fL = if ((eh[w] == toString(r)))
1113+ let fK = if ((eg[w] == toString(r)))
11291114 then true
11301115 else K("Pool must be SHUTDOWN (4)")
1131- if ((fL == fL))
1116+ if ((fK == fK))
11321117 then {
1133- let fM = cR(aD)
1134- let aI = fM._1
1135- let aJ = fM._2
1136- let ck = fM._3
1137- let an = fM._4
1138- let ao = fM._5
1139- let cU = addressFromStringValue(getStringValue(Z()))
1140- let fN = invoke(cU, "deletePool", [aI, aJ], nil)
1141- if ((fN == fN))
1118+ let fL = cQ(aD)
1119+ let aI = fL._1
1120+ let aJ = fL._2
1121+ let cj = fL._3
1122+ let an = fL._4
1123+ let ao = fL._5
1124+ let cT = addressFromStringValue(getStringValue(Z()))
1125+ let fM = invoke(cT, "deletePool", [aI, aJ], nil)
1126+ if ((fM == fM))
11421127 then {
1143- let dG = addressFromStringValue(getStringValue(Y()))
1144- let fO = invoke(dG, "deletePool", [aI, aJ], nil)
1145- if ((fO == fO))
1128+ let dF = addressFromStringValue(getStringValue(Y()))
1129+ let fN = invoke(dF, "deletePool", [aI, aJ], nil)
1130+ if ((fN == fN))
11461131 then {
1147- let dF = addressFromStringValue(getStringValue(X()))
1148- let fP = invoke(dF, "deletePool", [aI, aJ], nil)
1149- if ((fP == fP))
1150- then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(ck)), DeleteEntry(aG(ck)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aS(aD)), DeleteEntry(aT(aD)), DeleteEntry(aU(aD)), DeleteEntry(aV(aD))]
1132+ let dE = addressFromStringValue(getStringValue(X()))
1133+ let fO = invoke(dE, "deletePool", [aI, aJ], nil)
1134+ if ((fO == fO))
1135+ then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(cj)), DeleteEntry(aG(cj)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aS(aD)), DeleteEntry(aT(aD)), DeleteEntry(aU(aD)), DeleteEntry(aV(aD))]
11511136 else throw("Strict value is not equal to itself.")
11521137 }
11531138 else throw("Strict value is not equal to itself.")
11641149
11651150
11661151 @Callable(bR)
1167-func getPrice (fu) = {
1168- let af = addressFromStringValue(fu)
1169- let cO = cw(fu)
1170- let ck = fromBase58String(cO[x])
1171- let fQ = cO[y]
1172- let aJ = cO[z]
1173- let fR = value(assetInfo(ck)).quantity
1174- let fS = {
1175- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [fQ], nil)
1176- if ($isInstanceOf(fT, "Int"))
1177- then fT
1178- else throw(($getType(fT) + " couldn't be cast to Int"))
1152+func getPrice (ft) = {
1153+ let af = addressFromStringValue(ft)
1154+ let cN = cv(ft)
1155+ let cj = fromBase58String(cN[x])
1156+ let fP = cN[y]
1157+ let aJ = cN[z]
1158+ let fQ = value(assetInfo(cj)).quantity
1159+ let fR = {
1160+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fP], nil)
1161+ if ($isInstanceOf(fS, "Int"))
1162+ then fS
1163+ else throw(($getType(fS) + " couldn't be cast to Int"))
11791164 }
1180- let fU = {
1181- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1182- if ($isInstanceOf(fT, "Int"))
1183- then fT
1184- else throw(($getType(fT) + " couldn't be cast to Int"))
1165+ let fT = {
1166+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1167+ if ($isInstanceOf(fS, "Int"))
1168+ then fS
1169+ else throw(($getType(fS) + " couldn't be cast to Int"))
11851170 }
1186- let fV = if ((fR == 0))
1171+ let fU = if ((fQ == 0))
11871172 then 0
11881173 else {
1189- let fT = ({
1190- let fT = invoke(af, "calcPricesWrapperREADONLY", [fS, fU, fR], nil)
1191- if ($isInstanceOf(fT, "List[Any]"))
1192- then fT
1193- else throw(($getType(fT) + " couldn't be cast to List[Any]"))
1174+ let fS = ({
1175+ let fS = invoke(af, "calcPricesWrapperREADONLY", [fR, fT, fQ], nil)
1176+ if ($isInstanceOf(fS, "List[Any]"))
1177+ then fS
1178+ else throw(($getType(fS) + " couldn't be cast to List[Any]"))
11941179 })[0]
1195- if ($isInstanceOf(fT, "String"))
1196- then fT
1197- else throw(($getType(fT) + " couldn't be cast to String"))
1180+ if ($isInstanceOf(fS, "String"))
1181+ then fS
1182+ else throw(($getType(fS) + " couldn't be cast to String"))
11981183 }
1199- $Tuple2(nil, fV)
1184+ $Tuple2(nil, fU)
12001185 }
12011186
12021187
12031188
12041189 @Callable(bR)
1205-func checkBalance (dZ) = {
1206- let fu = bg(aG(dZ))
1207- let af = addressFromStringValue(fu)
1208- let cO = cw(fu)
1209- let fz = cO[y]
1210- let fA = cO[z]
1211- let fW = getIntegerValue(this, aP())
1212- let fX = valueOrElse(getInteger(this, aQ(fz)), fW)
1213- let fY = valueOrElse(getInteger(this, aQ(fA)), fW)
1190+func checkBalance (dY) = {
1191+ let ft = bg(aG(dY))
1192+ let af = addressFromStringValue(ft)
1193+ let cN = cv(ft)
1194+ let fy = cN[y]
1195+ let fz = cN[z]
1196+ let fV = getIntegerValue(this, aP())
1197+ let fW = valueOrElse(getInteger(this, aQ(fy)), fV)
1198+ let fX = valueOrElse(getInteger(this, aQ(fz)), fV)
1199+ let fY = {
1200+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fy], nil)
1201+ if ($isInstanceOf(fS, "Int"))
1202+ then fS
1203+ else throw(($getType(fS) + " couldn't be cast to Int"))
1204+ }
12141205 let fZ = {
1215- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
1216- if ($isInstanceOf(fT, "Int"))
1217- then fT
1218- else throw(($getType(fT) + " couldn't be cast to Int"))
1206+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
1207+ if ($isInstanceOf(fS, "Int"))
1208+ then fS
1209+ else throw(($getType(fS) + " couldn't be cast to Int"))
12191210 }
1220- let ga = {
1221- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [fA], nil)
1222- if ($isInstanceOf(fT, "Int"))
1223- then fT
1224- else throw(($getType(fT) + " couldn't be cast to Int"))
1225- }
1211+ let ga = (fY >= (fW / 2))
12261212 let gb = (fZ >= (fX / 2))
1227- let gc = (ga >= (fY / 2))
1228- let gd = if (gb)
1229- then gc
1213+ let gc = if (ga)
1214+ then gb
12301215 else false
1231- $Tuple2(nil, gd)
1216+ $Tuple2(nil, gc)
12321217 }
12331218
12341219
1235-@Verifier(ge)
1236-func gf () = {
1237- let gg = {
1220+@Verifier(gd)
1221+func ge () = {
1222+ let gf = {
12381223 let bn = bM()
12391224 if ($isInstanceOf(bn, "ByteVector"))
12401225 then {
12421227 bT
12431228 }
12441229 else if ($isInstanceOf(bn, "Unit"))
1245- then ge.senderPublicKey
1230+ then gd.senderPublicKey
12461231 else throw("Match error")
12471232 }
1248- sigVerify(ge.bodyBytes, ge.proofs[0], gg)
1233+ sigVerify(gd.bodyBytes, gd.proofs[0], gf)
12491234 }
12501235
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 = 1000000000000
99
1010 let d = 18
1111
1212 let e = toBigInt(1000000000000000000)
1313
1414 let f = b
1515
1616 let g = "GWXvirtualPOOL"
1717
1818 let h = "POOLS_LP"
1919
2020 let i = 2000000
2121
2222 let j = "WAVES"
2323
2424 let k = "factory_v2.ride"
2525
2626 let l = ((100 * 1000) * 1000)
2727
2828 let m = "__"
2929
3030 let n = ""
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 1
4747
4848 let w = 2
4949
5050 let x = 3
5151
5252 let y = 4
5353
5454 let z = 5
5555
5656 let A = 6
5757
5858 let B = 7
5959
6060 let C = 8
6161
6262 let D = 9
6363
6464 let E = 10
6565
6666 let F = 11
6767
6868 let G = "WX_EMISSION"
6969
7070 let H = [G]
7171
7272 func I (J) = makeString([k, ": ", J], "")
7373
7474
7575 func K (J) = throw(I(J))
7676
7777
7878 func L () = "%s__allowedLpScriptHash"
7979
8080
8181 func M () = "%s__allowedLpStableScriptHash"
8282
8383
8484 func N () = "%s__swapContract"
8585
8686
8787 func O () = "%s__factoryConfig"
8888
8989
9090 func P () = "%s__lpTokensList"
9191
9292
9393 func Q () = "%s%s__pool__scriptHash"
9494
9595
9696 func R () = "%s%s__matcher__publicKey"
9797
9898
9999 func S () = "%s__legacyFactoryContract"
100100
101101
102102 func T () = "%s__legacyPools"
103103
104104
105105 func U () = "%s__managerPublicKey"
106106
107107
108108 func V () = "%s__managerVaultAddress"
109109
110110
111111 func W () = "%s__adminPubKeys"
112112
113113
114114 func X () = "%s__assetsStoreContract"
115115
116116
117117 func Y () = "%s__votingEmissionContract"
118118
119119
120120 func Z () = "%s__userPoolsContract"
121121
122122
123123 func aa () = makeString(["%s", "priceAssets"], m)
124124
125125
126126 func ab () = "%s__priceDecimals"
127127
128128
129129 func ac () = "%s__shutdown"
130130
131131
132132 func ad () = "%s__nextInternalAssetId"
133133
134134
135135 func ae (af) = ("%s%s__poolWeight__" + af)
136136
137137
138138 func ag (af,ah) = ((("%s%s__poolWeight__" + af) + "__") + toString(ah))
139139
140140
141141 func ai (aj) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(aj))
142142
143143
144144 func ak (al) = ("%s%s%s__mappings__baseAsset2internalId__" + al)
145145
146146
147147 func am (an,ao) = (((("%d%d%s__" + an) + "__") + ao) + "__config")
148148
149149
150150 func ap (aq) = {
151151 let ar = aq
152152 let an = ar._1
153153 let ao = ar._2
154154 makeString(["%d%d%s", toString(an), toString(ao), "oneTokenOperationsDisabled"], m)
155155 }
156156
157157
158158 func as () = makeString(["%s", "oneTokenOperationsDisabled"], m)
159159
160160
161161 func at (aq) = {
162162 let au = aq
163163 let an = au._1
164164 let ao = au._2
165165 makeString(["%d%d%s", toString(an), toString(ao), "swapDisabled"], m)
166166 }
167167
168168
169169 func av () = makeString(["%s", "swapDisabled"], m)
170170
171171
172172 func aw (ax) = (("%s%s%s__" + ax) + "__mappings__lpAsset2Pool")
173173
174174
175175 func ay (az,aA) = (((("%d%d%s%s__" + az) + "__") + aA) + "__mappings__PoolAssets2LpAsset")
176176
177177
178178 func aB (af) = ("%s%s__spread__" + af)
179179
180180
181181 func aC (aD) = (("%s%s%s__" + aD) + "__mappings__poolContract2PoolAssets")
182182
183183
184184 func aE (az,aA) = (((("%d%d%s%s__" + toString(az)) + "__") + toString(aA)) + "__mappings__poolAssets2PoolContract")
185185
186186
187187 func aF (aD) = (("%s%s%s__" + aD) + "__mappings__poolContract2LpAsset")
188188
189189
190190 func aG (ax) = (("%s%s%s__" + ax) + "__mappings__lpAsset2PoolContract")
191191
192192
193193 func aH (aI,aJ) = ((("%s%s%s__wxEmission__" + aI) + "__") + aJ)
194194
195195
196196 func aK (af) = ("%s%s__inFee__" + af)
197197
198198
199199 func aL () = "%s__inFeeDefault"
200200
201201
202202 func aM (af) = ("%s%s__swapFee__" + af)
203203
204204
205205 func aN (af) = ("%s%s__outFee__" + af)
206206
207207
208208 func aO () = "%s__outFeeDefault"
209209
210210
211211 func aP () = makeString(["%s", "poolAssetDefaultMinAmount"], m)
212212
213213
214214 func aQ (aR) = makeString(["%s%s", "poolAssetMinAmount", aR], m)
215215
216216
217217 func aS (af) = ("%s%s__skipOrderValidation__" + af)
218218
219219
220220 func aT (af) = ("%s%s__changeAmpDelay__" + af)
221221
222222
223223 func aU (af) = ("%s%s__changeAmpDelta__" + af)
224224
225225
226226 func aV (af) = ("%s%s__changeAmpTarget__" + af)
227227
228228
229229 func aW () = "%s__sWavesProxyAddress"
230230
231231
232232 func aX () = "%s__sWavesAssetId"
233233
234234
235235 func aY () = "%s__stakingProfitAddress"
236236
237237
238238 func aZ (af,aR) = makeString(["%s%s%s", "leasedRatio", af, aR], m)
239239
240240
241241 func ba (aR) = makeString(["%s%s", "leasedRatioDefault", aR], m)
242242
243243
244244 func bb (af,aR) = makeString(["%s%s%s", "leasedRatioTolerance", af, aR], m)
245245
246246
247247 func bc (af,aR) = makeString(["%s%s%s", "minBalance", af, aR], m)
248248
249249
250250 func bd (aR) = makeString(["%s%s", "minBalanceDefault", aR], m)
251251
252252
253253 func be (bf) = makeString(["%s%s", "whitelisted", toString(bf)], m)
254254
255255
256256 func bg (bh) = valueOrErrorMessage(getString(this, bh), ("No data for this.key=" + bh))
257257
258258
259259 func bi (bh) = valueOrErrorMessage(getBoolean(this, bh), ("No data for this.key=" + bh))
260260
261261
262262 func bj (bh) = valueOrErrorMessage(getInteger(this, bh), ("No data for this.key=" + bh))
263263
264264
265265 func bk (bl) = if ((bl == j))
266266 then unit
267267 else fromBase58String(bl)
268268
269269
270270 func bm () = {
271271 let bn = getString(V())
272272 if ($isInstanceOf(bn, "String"))
273273 then {
274274 let bo = bn
275275 addressFromStringValue(bo)
276276 }
277277 else this
278278 }
279279
280280
281281 func bp (bq,br) = fraction(toBigInt(bq), e, toBigInt(br))
282282
283283
284284 func bs (bt,bu) = toInt(fraction(bt, toBigInt(bu), e))
285285
286286
287287 let bv = 1
288288
289289 let bw = 2
290290
291291 let bx = 3
292292
293293 let by = 4
294294
295295 let bz = 5
296296
297297 let bA = 6
298298
299299 let bB = 7
300300
301301 let bC = 8
302302
303303 let bD = 9
304304
305305 let bE = 10
306306
307307 let bF = 11
308308
309309 func bG (bH) = addressFromStringValue(bH[bw])
310310
311311
312312 func bI (bH) = addressFromStringValue(bH[bz])
313313
314314
315315 func bJ (bH) = addressFromStringValue(bH[bv])
316316
317317
318318 func bK (bH) = addressFromStringValue(bH[bE])
319319
320320
321321 func bL () = {
322322 let bn = getString(aa())
323323 if ($isInstanceOf(bn, "String"))
324324 then {
325325 let bo = bn
326326 if ((size(bo) == 0))
327327 then nil
328328 else split_4C(bo, m)
329329 }
330330 else nil
331331 }
332332
333333
334334 func bM () = {
335335 let bN = bm()
336336 let bn = getString(bN, U())
337337 if ($isInstanceOf(bn, "String"))
338338 then {
339339 let bo = bn
340340 fromBase58String(bo)
341341 }
342342 else if ($isInstanceOf(bn, "Unit"))
343343 then unit
344344 else throw("Match error")
345345 }
346346
347347
348348 let bO = K("Permission denied")
349349
350350 let bP = K("Test error here")
351351
352352 func bQ (bR) = if ((bR.caller == this))
353353 then true
354354 else bO
355355
356356
357357 func bS (bR) = {
358358 let bn = bM()
359359 if ($isInstanceOf(bn, "ByteVector"))
360360 then {
361361 let bT = bn
362362 if ((bR.callerPublicKey == bT))
363363 then true
364364 else bO
365365 }
366366 else if ($isInstanceOf(bn, "Unit"))
367367 then bQ(bR)
368368 else throw("Match error")
369369 }
370370
371371
372-func bU (bR) = {
373- let bn = bM()
374- if ($isInstanceOf(bn, "ByteVector"))
375- then {
376- let bT = bn
377- (bR.callerPublicKey == bT)
378- }
379- else if ($isInstanceOf(bn, "Unit"))
380- then (bR.caller == this)
381- else throw("Match error")
382- }
372+func bU (bV,bW,bX,bY,bZ,ca,cb,cc,cd,ce,cf) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb, cc, cd, ce, cf], m)
383373
384374
385-func bV (bW,bX,bY,bZ,ca,cb,cc,cd,ce,cf,cg) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bW, bX, bY, bZ, ca, cb, cc, cd, ce, cf, cg], m)
375+func cg (bV,bW,bX,bY,bZ,ca,cb) = makeString(["%s%s%s%s%s%s", bV, bW, bX, bY, bZ, ca, cb], m)
386376
387377
388-func ch (bW,bX,bY,bZ,ca,cb,cc) = makeString(["%s%s%s%s%s%s", bW, bX, bY, bZ, ca, cb, cc], m)
378+func ch (af,ci,cj,ck,cl,cm,cn,co,cp,cq,cr) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, ci, cj, ck, cl, toString(cm), toString(cn), toString(co), toString(cp), toString(cq), cr], m)
389379
390380
391-func ci (af,cj,ck,cl,cm,cn,co,cp,cq,cr,cs) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", af, cj, ck, cl, cm, toString(cn), toString(co), toString(cp), toString(cq), toString(cr), cs], m)
381+func cs (ct,cu) = makeString(["%d%d", toString(ct), toString(cu)], m)
392382
393383
394-func ct (cu,cv) = makeString(["%d%d", toString(cu), toString(cv)], m)
395-
396-
397-func cw (af) = {
398- let cx = split(bg(aC(af)), m)
399- let an = cx[1]
400- let ao = cx[2]
384+func cv (af) = {
385+ let cw = split(bg(aC(af)), m)
386+ let an = cw[1]
387+ let ao = cw[2]
401388 split(bg(am(an, ao)), m)
402389 }
403390
404391
405-func cy (cz,cA) = {
406- let cB = valueOrElse(getInteger(this, ak(cz)), 0)
407- let cC = valueOrElse(getInteger(this, ad()), 0)
408- let cD = if ((cB == 0))
392+func cx (cy,cz) = {
393+ let cA = valueOrElse(getInteger(this, ak(cy)), 0)
394+ let cB = valueOrElse(getInteger(this, ad()), 0)
395+ let cC = if ((cA == 0))
409396 then {
410- let cE = (cC + cA)
411- $Tuple3(cE, [IntegerEntry(ad(), cE), IntegerEntry(ak(cz), cE), StringEntry(ai(cE), cz)], true)
397+ let cD = (cB + cz)
398+ $Tuple3(cD, [IntegerEntry(ad(), cD), IntegerEntry(ak(cy), cD), StringEntry(ai(cD), cy)], true)
412399 }
413- else $Tuple3(cB, nil, false)
414- cD
400+ else $Tuple3(cA, nil, false)
401+ cC
415402 }
416403
417404
418-func cF (bR) = {
419- let cG = split(valueOrElse(getString(W()), n), m)
420- if (containsElement(cG, toBase58String(bR.callerPublicKey)))
405+func cE (bR) = {
406+ let cF = split(valueOrElse(getString(W()), n), m)
407+ if (containsElement(cF, toBase58String(bR.callerPublicKey)))
421408 then true
422409 else {
423- let cH = bS(bR)
424- if ((cH == cH))
410+ let cG = bS(bR)
411+ if ((cG == cG))
425412 then true
426413 else throw("Strict value is not equal to itself.")
427414 }
428415 }
429416
430417
431-func cI (bh,cJ,cK) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cJ), cK))
418+func cH (bh,cI,cJ) = valueOrElse(getInteger(this, bh), valueOrElse(getInteger(this, cI), cJ))
432419
433420
434-func cL (aI,aJ) = {
421+func cK (aI,aJ) = {
435422 let an = getInteger(ak(aI))
436423 let ao = getInteger(ak(aJ))
437424 if (if ((an == unit))
438425 then true
439426 else (ao == unit))
440427 then false
441428 else {
442- let cM = toString(value(an))
443- let cN = toString(value(ao))
444- let cO = getString(am(cM, cN))
445- let cP = getString(am(cN, cM))
446- let cQ = if ((cO != unit))
429+ let cL = toString(value(an))
430+ let cM = toString(value(ao))
431+ let cN = getString(am(cL, cM))
432+ let cO = getString(am(cM, cL))
433+ let cP = if ((cN != unit))
447434 then true
448- else (cP != unit)
449- cQ
435+ else (cO != unit)
436+ cP
450437 }
451438 }
452439
453440
454-func cR (aD) = {
455- let cx = {
441+func cQ (aD) = {
442+ let cw = {
456443 let bn = getString(aC(aD))
457444 if ($isInstanceOf(bn, "String"))
458445 then {
459446 let bo = bn
460447 split(bo, m)
461448 }
462449 else K(makeString([aD, "pool is not found"], " "))
463450 }
464- let an = parseIntValue(cx[1])
465- let ao = parseIntValue(cx[2])
451+ let an = parseIntValue(cw[1])
452+ let ao = parseIntValue(cw[2])
466453 let aI = getStringValue(ai(an))
467454 let aJ = getStringValue(ai(ao))
468- let ck = getStringValue(aF(aD))
469- $Tuple5(aI, aJ, ck, an, ao)
455+ let cj = getStringValue(aF(aD))
456+ $Tuple5(aI, aJ, cj, an, ao)
470457 }
471458
472459
473-func cS (aD) = {
474- let cT = cR(aD)
475- let aI = cT._1
476- let aJ = cT._2
477- let ck = cT._3
478- let an = cT._4
479- let ao = cT._5
480- let cU = addressFromStringValue(getStringValue(Z()))
481- let cV = invoke(cU, "getPoolCreatorREADONLY", [aI, aJ], nil)
482- cV
460+func cR (aD) = {
461+ let cS = cQ(aD)
462+ let aI = cS._1
463+ let aJ = cS._2
464+ let cj = cS._3
465+ let an = cS._4
466+ let ao = cS._5
467+ let cT = addressFromStringValue(getStringValue(Z()))
468+ let cU = invoke(cT, "getPoolCreatorREADONLY", [aI, aJ], nil)
469+ cU
483470 }
484471
485472
486-func cW (cX,cY) = {
487- let bf = addressFromStringValue(cX)
488- if ((cY == "WAVES"))
473+func cV (cW,cX) = {
474+ let bf = addressFromStringValue(cW)
475+ if ((cX == "WAVES"))
489476 then wavesBalance(bf).regular
490477 else {
491- let aR = fromBase58String(cY)
478+ let aR = fromBase58String(cX)
492479 assetBalance(bf, aR)
493480 }
494481 }
495482
496483
497-func cZ (aD) = {
498- let da = cR(aD)
499- let aI = da._1
500- let aJ = da._2
501- let ck = da._3
502- let an = da._4
503- let ao = da._5
504- if ((cW(aD, aI) == 0))
505- then (cW(aD, aJ) == 0)
484+func cY (aD) = {
485+ let cZ = cQ(aD)
486+ let aI = cZ._1
487+ let aJ = cZ._2
488+ let cj = cZ._3
489+ let an = cZ._4
490+ let ao = cZ._5
491+ if ((cV(aD, aI) == 0))
492+ then (cV(aD, aJ) == 0)
506493 else false
507494 }
508495
509496
510497 @Callable(bR)
511498 func getSwapContractREADONLY () = $Tuple2(nil, bg(N()))
512499
513500
514501
515502 @Callable(bR)
516503 func getPoolLeaseConfigREADONLY (af,aR) = {
517- let db = {
504+ let da = {
518505 let bn = getInteger(this, aZ(af, aR))
519506 if ($isInstanceOf(bn, "Int"))
520507 then {
521- let dc = bn
522- $Tuple2(true, min([100, max([0, dc])]))
508+ let db = bn
509+ $Tuple2(true, min([100, max([0, db])]))
523510 }
524511 else {
525- let dd = getInteger(this, ba(aR))
526- if ($isInstanceOf(dd, "Int"))
512+ let dc = getInteger(this, ba(aR))
513+ if ($isInstanceOf(dc, "Int"))
527514 then {
528- let de = dd
529- $Tuple2(true, min([100, max([0, de])]))
515+ let dd = dc
516+ $Tuple2(true, min([100, max([0, dd])]))
530517 }
531518 else $Tuple2(false, 0)
532519 }
533520 }
534- let df = db._1
535- let dg = db._2
536- let dh = {
521+ let de = da._1
522+ let df = da._2
523+ let dg = {
537524 let bn = getInteger(this, bc(af, aR))
538525 if ($isInstanceOf(bn, "Int"))
539526 then {
540- let di = bn
541- max([0, di])
527+ let dh = bn
528+ max([0, dh])
542529 }
543530 else {
544- let dd = getInteger(this, bd(aR))
545- if ($isInstanceOf(dd, "Int"))
531+ let dc = getInteger(this, bd(aR))
532+ if ($isInstanceOf(dc, "Int"))
546533 then {
547- let dj = dd
548- max([0, dj])
534+ let di = dc
535+ max([0, di])
549536 }
550537 else 0
551538 }
552539 }
553- let dk = if ((aR == "WAVES"))
540+ let dj = if ((aR == "WAVES"))
554541 then $Tuple3(valueOrElse(getString(this, aW()), ""), getString(this, valueOrElse(aX(), "")), c)
555542 else $Tuple3("", "", 0)
556- let dl = dk._1
557- let dm = dk._2
558- let dn = dk._3
559- let do = valueOrElse(getString(this, aY()), "")
560- $Tuple2(nil, $Tuple7(df, dg, dh, dl, dm, dn, do))
543+ let dk = dj._1
544+ let dl = dj._2
545+ let dm = dj._3
546+ let dn = valueOrElse(getString(this, aY()), "")
547+ $Tuple2(nil, $Tuple7(de, df, dg, dk, dl, dm, dn))
561548 }
562549
563550
564551
565552 @Callable(bR)
566-func getLpAssetFromPoolAssetsREADONLY (dp,dq) = if (if ((dp == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
567- then (dq == "WAVES")
553+func getLpAssetFromPoolAssetsREADONLY (do,dp) = if (if ((do == "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"))
554+ then (dp == "WAVES")
568555 else false)
569556 then $Tuple2(nil, unit)
570557 else {
558+ let dq = value(getInteger(this, ak(do)))
571559 let dr = value(getInteger(this, ak(dp)))
572- let ds = value(getInteger(this, ak(dq)))
573- let dt = getString(this, ay(toString(dr), toString(ds)))
574- let du = if ((dt == unit))
560+ let ds = getString(this, ay(toString(dq), toString(dr)))
561+ let dt = if ((ds == unit))
575562 then unit
576- else drop(value(dt), 4)
577- $Tuple2(nil, du)
563+ else drop(value(ds), 4)
564+ $Tuple2(nil, dt)
578565 }
579566
580567
581568
582569 @Callable(bR)
583-func getPoolAddressFromLpAssetREADONLY (dv) = $Tuple2(nil, valueOrElse(getString(this, aG(dv)), ""))
570+func getPoolAddressFromLpAssetREADONLY (du) = $Tuple2(nil, valueOrElse(getString(this, aG(du)), ""))
584571
585572
586573
587574 @Callable(bR)
588-func constructor (dw,dx,bY,bZ,ca,cb,dy,dz) = {
589- let dA = bS(bR)
590- if ((dA == dA))
591- then [StringEntry(O(), ch(dw, dx, bY, bZ, ca, cb, dy)), IntegerEntry(ab(), dz)]
575+func constructor (dv,dw,bX,bY,bZ,ca,dx,dy) = {
576+ let dz = bS(bR)
577+ if ((dz == dz))
578+ then [StringEntry(O(), cg(dv, dw, bX, bY, bZ, ca, dx)), IntegerEntry(ab(), dy)]
592579 else throw("Strict value is not equal to itself.")
593580 }
594581
595582
596583
597584 @Callable(bR)
598-func constructorV2 (dB) = {
599- let dA = bS(bR)
600- if ((dA == dA))
585+func constructorV2 (dA) = {
586+ let dz = bS(bR)
587+ if ((dz == dz))
601588 then {
602- let dC = addressFromPublicKey(fromBase58String(dB))
603- if ((dC == dC))
604- then [StringEntry(R(), dB)]
589+ let dB = addressFromPublicKey(fromBase58String(dA))
590+ if ((dB == dB))
591+ then [StringEntry(R(), dA)]
605592 else throw("Strict value is not equal to itself.")
606593 }
607594 else throw("Strict value is not equal to itself.")
608595 }
609596
610597
611598
612599 @Callable(bR)
613-func constructorV3 (cd,ce,cf,cg) = {
614- let dA = bS(bR)
615- if ((dA == dA))
600+func constructorV3 (cc,cd,ce,cf) = {
601+ let dz = bS(bR)
602+ if ((dz == dz))
616603 then {
617604 let bH = split(bg(O()), m)
618-[StringEntry(O(), bV(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cd, ce, cf, cg))]
605+[StringEntry(O(), bU(bH[1], bH[2], bH[3], bH[4], bH[5], bH[6], bH[7], cc, cd, ce, cf))]
619606 }
620607 else throw("Strict value is not equal to itself.")
621608 }
622609
623610
624611
625612 @Callable(bR)
626-func constructorV4 (dD,dE) = {
627- let dA = bS(bR)
628- if ((dA == dA))
629- then [StringEntry(S(), dD), StringEntry(T(), makeString(dE, m))]
613+func constructorV4 (dC,dD) = {
614+ let dz = bS(bR)
615+ if ((dz == dz))
616+ then [StringEntry(S(), dC), StringEntry(T(), makeString(dD, m))]
630617 else throw("Strict value is not equal to itself.")
631618 }
632619
633620
634621
635622 @Callable(bR)
636-func constructorV5 (dF) = {
637- let dA = bS(bR)
638- if ((dA == dA))
639- then [StringEntry(X(), dF)]
623+func constructorV5 (dE) = {
624+ let dz = bS(bR)
625+ if ((dz == dz))
626+ then [StringEntry(X(), dE)]
640627 else throw("Strict value is not equal to itself.")
641628 }
642629
643630
644631
645632 @Callable(bR)
646-func constructorV6 (dG,dH) = {
647- let dI = [bS(bR), if ((addressFromString(dG) != unit))
633+func constructorV6 (dF,dG) = {
634+ let dH = [bS(bR), if ((addressFromString(dF) != unit))
648635 then true
649636 else "invalid voting emission contract address"]
650- if ((dI == dI))
651- then [StringEntry(Y(), dG), StringEntry(aa(), makeString(dH, m))]
637+ if ((dH == dH))
638+ then [StringEntry(Y(), dF), StringEntry(aa(), makeString(dG, m))]
652639 else throw("Strict value is not equal to itself.")
653640 }
654641
655642
656643
657644 @Callable(bR)
658-func setAdmins (dJ) = {
659- let dA = bS(bR)
660- if ((dA == dA))
661- then [StringEntry(W(), makeString(dJ, m))]
645+func setAdmins (dI) = {
646+ let dz = bS(bR)
647+ if ((dz == dz))
648+ then [StringEntry(W(), makeString(dI, m))]
662649 else throw("Strict value is not equal to itself.")
663650 }
664651
665652
666653
667654 @Callable(bR)
668-func activateNewPool (af,cl,cm,dK,dL,dM,cs,dN) = {
669- let dA = cF(bR)
670- if ((dA == dA))
655+func activateNewPool (af,ck,cl,dJ,dK,dL,cr,dM) = {
656+ let dz = cE(bR)
657+ if ((dz == dz))
671658 then if (isDefined(getString(aC(af))))
672659 then K((("Pool address " + af) + " already registered."))
673660 else {
674- let dO = cy(cl, 1)
675- let dP = dO._1
676- let dQ = cy(cm, if (dO._3)
661+ let dN = cx(ck, 1)
662+ let dO = dN._1
663+ let dP = cx(cl, if (dN._3)
677664 then 2
678665 else 1)
679- let dR = dQ._1
680- let dS = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
681- let dT = getBinaryValue(Q())
682- let dU = cL(cl, cm)
683- if (dU)
684- then K((((("Pool " + cl) + "/") + cm) + " has already been activated."))
666+ let dQ = dP._1
667+ let dR = valueOrErrorMessage(scriptHash(addressFromStringValue(af)), ("No script has been found on pool account " + af))
668+ let dS = getBinaryValue(Q())
669+ let dT = cK(ck, cl)
670+ if (dT)
671+ then K((((("Pool " + ck) + "/") + cl) + " has already been activated."))
685672 else {
686- let dV = value(getString(this, am(toString(dP), toString(dR))))
673+ let dU = value(getString(this, am(toString(dO), toString(dQ))))
674+ let dV = if ((ck == "WAVES"))
675+ then l
676+ else pow(10, 0, value(assetInfo(fromBase58String(ck))).decimals, 0, 0, DOWN)
687677 let dW = if ((cl == "WAVES"))
688678 then l
689679 else pow(10, 0, value(assetInfo(fromBase58String(cl))).decimals, 0, 0, DOWN)
690- let dX = if ((cm == "WAVES"))
691- then l
692- else pow(10, 0, value(assetInfo(fromBase58String(cm))).decimals, 0, 0, DOWN)
693- let dY = Issue(dK, dL, 1, 8, true)
694- let ck = calculateAssetId(dY)
695- let dZ = toBase58String(ck)
696- let ea = invoke(addressFromStringValue(af), "activate", [cl, cm], nil)
697- if ((ea == ea))
698- then if ((ea != "success"))
680+ let dX = Issue(dJ, dK, 1, 8, true)
681+ let cj = calculateAssetId(dX)
682+ let dY = toBase58String(cj)
683+ let dZ = invoke(addressFromStringValue(af), "activate", [ck, cl], nil)
684+ if ((dZ == dZ))
685+ then if ((dZ != "success"))
699686 then K("Pool initialisation error happened.")
700687 else {
701- let dF = addressFromStringValue(bg(X()))
702- let eb = invoke(dF, "createOrUpdate", [dZ, dK, false], nil)
703- if ((eb == eb))
688+ let dE = addressFromStringValue(bg(X()))
689+ let ea = invoke(dE, "createOrUpdate", [dY, dJ, false], nil)
690+ if ((ea == ea))
704691 then {
705- let ec = invoke(dF, "addLabel", [dZ, h], nil)
706- if ((ec == ec))
692+ let eb = invoke(dE, "addLabel", [dY, h], nil)
693+ if ((eb == eb))
707694 then {
708- let ed = invoke(dF, "setLogo", [dZ, dN], nil)
709- if ((ed == ed))
695+ let ec = invoke(dE, "setLogo", [dY, dM], nil)
696+ if ((ec == ec))
710697 then {
711- let ee = invoke(dF, "addAssetsLink", [cl, cm, dZ], nil)
712- if ((ee == ee))
698+ let ed = invoke(dE, "addAssetsLink", [ck, cl, dY], nil)
699+ if ((ed == ed))
713700 then {
714- let ef = invoke(dF, "increaseAssetPoolsNumber", [cl], nil)
715- if ((ef == ef))
716- then $Tuple2(((dO._2 ++ dQ._2) ++ [dY, Burn(ck, 1), StringEntry(am(toString(dP), toString(dR)), ci(af, toString(o), dZ, cl, cm, dW, dX, dP, dR, l, cs)), StringEntry(aw(dZ), ct(dP, dR)), StringEntry(ay(toString(dP), toString(dR)), ("%s__" + dZ)), StringEntry(aC(af), ct(dP, dR)), StringEntry(aE(dP, dR), af), StringEntry(aG(dZ), af), StringEntry(aF(af), dZ), IntegerEntry(ae(af), dM), IntegerEntry(aB(af), i)]), dZ)
701+ let ee = invoke(dE, "increaseAssetPoolsNumber", [ck], nil)
702+ if ((ee == ee))
703+ then $Tuple2(((dN._2 ++ dP._2) ++ [dX, Burn(cj, 1), StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(o), dY, ck, cl, dV, dW, dO, dQ, l, cr)), StringEntry(aw(dY), cs(dO, dQ)), StringEntry(ay(toString(dO), toString(dQ)), ("%s__" + dY)), StringEntry(aC(af), cs(dO, dQ)), StringEntry(aE(dO, dQ), af), StringEntry(aG(dY), af), StringEntry(aF(af), dY), IntegerEntry(ae(af), dL), IntegerEntry(aB(af), i)]), dY)
717704 else throw("Strict value is not equal to itself.")
718705 }
719706 else throw("Strict value is not equal to itself.")
720707 }
721708 else throw("Strict value is not equal to itself.")
722709 }
723710 else throw("Strict value is not equal to itself.")
724711 }
725712 else throw("Strict value is not equal to itself.")
726713 }
727714 else throw("Strict value is not equal to itself.")
728715 }
729716 }
730717 else throw("Strict value is not equal to itself.")
731718 }
732719
733720
734721
735722 @Callable(bR)
736-func managePool (af,eg) = {
737- let dA = bS(bR)
738- if ((dA == dA))
723+func managePool (af,ef) = {
724+ let dz = cE(bR)
725+ if ((dz == dz))
739726 then {
740- let eh = cw(af)
741- let cj = eh[w]
742- let dZ = eh[x]
743- let cl = eh[y]
744- let cm = eh[z]
745- let dW = parseIntValue(eh[A])
746- let dX = parseIntValue(eh[B])
747- let dP = parseIntValue(eh[C])
748- let dR = parseIntValue(eh[D])
749- let ei = parseIntValue(eh[E])
750- let cs = eh[F]
751-[StringEntry(am(toString(dP), toString(dR)), ci(af, toString(eg), dZ, cl, cm, dW, dX, dP, dR, ei, cs))]
727+ let eg = cv(af)
728+ let ci = eg[w]
729+ let dY = eg[x]
730+ let ck = eg[y]
731+ let cl = eg[z]
732+ let dV = parseIntValue(eg[A])
733+ let dW = parseIntValue(eg[B])
734+ let dO = parseIntValue(eg[C])
735+ let dQ = parseIntValue(eg[D])
736+ let eh = parseIntValue(eg[E])
737+ let cr = eg[F]
738+[StringEntry(am(toString(dO), toString(dQ)), ch(af, toString(ef), dY, ck, cl, dV, dW, dO, dQ, eh, cr))]
752739 }
753740 else throw("Strict value is not equal to itself.")
754741 }
755742
756743
757744
758745 @Callable(bR)
759-func emit (ej) = {
760- let ek = bR.caller
761- let el = bR.originCaller
762- let em = valueOrErrorMessage(getString(aF(toString(ek))), "Invalid LP address called me.")
763- let en = fromBase58String(em)
764- let dE = split(valueOrElse(getString(T()), n), m)
765- let dD = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
766- if ((0 >= ej))
746+func emit (ei) = {
747+ let ej = bR.caller
748+ let ek = bR.originCaller
749+ let el = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
750+ let em = fromBase58String(el)
751+ let dD = split(valueOrElse(getString(T()), n), m)
752+ let dC = addressFromStringValue(valueOrErrorMessage(getString(S()), "Legacy factory contract does not exists."))
753+ if ((0 >= ei))
767754 then nil
768- else if (containsElement(dE, toString(ek)))
769- then $Tuple2(nil, dD)
770- else $Tuple2([Reissue(en, ej, true), ScriptTransfer(bR.caller, ej, en)], "success")
755+ else if (containsElement(dD, toString(ej)))
756+ then $Tuple2(nil, dC)
757+ else $Tuple2([Reissue(em, ei, true), ScriptTransfer(bR.caller, ei, em)], "success")
771758 }
772759
773760
774761
775762 @Callable(bR)
776-func burn (eo) = {
777- let ek = bR.caller
778- let el = bR.originCaller
779- let ep = value(bR.payments[0])
780- let eq = value(ep.amount)
781- let er = toBase58String(value(ep.assetId))
782- let es = valueOrErrorMessage(getString(aF(toString(ek))), "Invalid LP address called me.")
783- if ((er != es))
763+func burn (en) = {
764+ let ej = bR.caller
765+ let ek = bR.originCaller
766+ let eo = value(bR.payments[0])
767+ let ep = value(eo.amount)
768+ let eq = toBase58String(value(eo.assetId))
769+ let er = valueOrErrorMessage(getString(aF(toString(ej))), "Invalid LP address called me.")
770+ if ((eq != er))
784771 then K("Invalid asset passed.")
785- else if ((eo != eq))
772+ else if ((en != ep))
786773 then K("Invalid amount passed.")
787774 else {
788- let en = fromBase58String(es)
789- $Tuple2([Burn(en, eo)], "success")
775+ let em = fromBase58String(er)
776+ $Tuple2([Burn(em, en)], "success")
790777 }
791778 }
792779
793780
794781
795782 @Callable(bR)
796-func modifyWeight (ck,et) = {
797- let dA = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
783+func modifyWeight (cj,es) = {
784+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, Y()), "")))
798785 then true
799786 else bS(bR)
800- if ((dA == dA))
787+ if ((dz == dz))
801788 then {
802- let aD = bg(aG(ck))
803- let eu = ae(aD)
804- let ev = ae(g)
805- let ew = valueOrElse(getInteger(ev), 0)
806- let dM = valueOrElse(getInteger(eu), 0)
807- let ex = et
789+ let aD = bg(aG(cj))
790+ let et = ae(aD)
791+ let eu = ae(g)
792+ let ev = valueOrElse(getInteger(eu), 0)
793+ let dL = valueOrElse(getInteger(et), 0)
794+ let ew = es
808795 let bH = split(bg(O()), m)
809- let dw = bJ(bH)
810- let ey = invoke(dw, "onModifyWeight", [ck, aD], nil)
811- if ((ey == ey))
796+ let dv = bJ(bH)
797+ let ex = invoke(dv, "onModifyWeight", [cj, aD], nil)
798+ if ((ex == ex))
812799 then {
813- let ez = if ((ew == 0))
800+ let ey = if ((ev == 0))
814801 then nil
815- else [IntegerEntry(ev, 0)]
816- let eA = ag(aD, 0)
817- let eB = getInteger(eA)
818- let eC = if ((eB == unit))
802+ else [IntegerEntry(eu, 0)]
803+ let ez = ag(aD, 0)
804+ let eA = getInteger(ez)
805+ let eB = if ((eA == unit))
819806 then nil
820- else [DeleteEntry(eA)]
821- (([IntegerEntry(eu, ex)] ++ ez) ++ eC)
807+ else [DeleteEntry(ez)]
808+ (([IntegerEntry(et, ew)] ++ ey) ++ eB)
822809 }
823810 else throw("Strict value is not equal to itself.")
824811 }
825812 else throw("Strict value is not equal to itself.")
826813 }
827814
828815
829816
830817 @Callable(bR)
831-func modifyWeights (eD,eE,eF,eG) = {
832- let dA = bS(bR)
833- if ((dA == dA))
818+func modifyWeights (eC,eD,eE,eF) = {
819+ let dz = bS(bR)
820+ if ((dz == dz))
834821 then {
822+ let eG = ((5 * f) / 100)
835823 let eH = ((5 * f) / 100)
836824 let eI = ((5 * f) / 100)
837- let eJ = ((5 * f) / 100)
838825 let bH = split(bg(O()), m)
839- let eK = bJ(bH)
840- let eL = bK(bH)
826+ let eJ = bJ(bH)
827+ let eK = bK(bH)
828+ let eL = ae(eC)
841829 let eM = ae(eD)
842830 let eN = ae(eE)
843831 let eO = ae(eF)
844- let eP = ae(eG)
832+ let eP = bj(eL)
845833 let eQ = bj(eM)
846- let eR = bj(eN)
847- let eS = (eQ - eJ)
848- let eT = (eR - eJ)
849- if ((0 >= eS))
850- then K(("invalid btcWeightNew: " + toString(eS)))
851- else if ((0 >= eT))
852- then K(("invalid ethWeightNew: " + toString(eT)))
834+ let eR = (eP - eI)
835+ let eS = (eQ - eI)
836+ if ((0 >= eR))
837+ then K(("invalid btcWeightNew: " + toString(eR)))
838+ else if ((0 >= eS))
839+ then K(("invalid ethWeightNew: " + toString(eS)))
853840 else {
841+ let eT = bg(aF(eC))
854842 let eU = bg(aF(eD))
855843 let eV = bg(aF(eE))
856844 let eW = bg(aF(eF))
857- let eX = bg(aF(eG))
858- let eY = invoke(eK, "onModifyWeight", [eU, eD], nil)
859- if ((eY == eY))
845+ let eX = invoke(eJ, "onModifyWeight", [eT, eC], nil)
846+ if ((eX == eX))
860847 then {
861- let eZ = invoke(eK, "onModifyWeight", [eV, eE], nil)
862- if ((eZ == eZ))
848+ let eY = invoke(eJ, "onModifyWeight", [eU, eD], nil)
849+ if ((eY == eY))
863850 then {
864- let fa = invoke(eK, "onModifyWeight", [eW, eF], nil)
865- if ((fa == fa))
851+ let eZ = invoke(eJ, "onModifyWeight", [eV, eE], nil)
852+ if ((eZ == eZ))
866853 then {
867- let fb = invoke(eK, "onModifyWeight", [eX, eG], nil)
868- if ((fb == fb))
869- then [IntegerEntry(eM, eS), IntegerEntry(eN, eT), IntegerEntry(eO, eH), IntegerEntry(eP, eI), IntegerEntry(ag(eD, 0), eQ), IntegerEntry(ag(eE, 0), eR), IntegerEntry(ag(eF, 0), eH), IntegerEntry(ag(eG, 0), eI)]
854+ let fa = invoke(eJ, "onModifyWeight", [eW, eF], nil)
855+ if ((fa == fa))
856+ then [IntegerEntry(eL, eR), IntegerEntry(eM, eS), IntegerEntry(eN, eG), IntegerEntry(eO, eH), IntegerEntry(ag(eC, 0), eP), IntegerEntry(ag(eD, 0), eQ), IntegerEntry(ag(eE, 0), eG), IntegerEntry(ag(eF, 0), eH)]
870857 else throw("Strict value is not equal to itself.")
871858 }
872859 else throw("Strict value is not equal to itself.")
873860 }
874861 else throw("Strict value is not equal to itself.")
875862 }
876863 else throw("Strict value is not equal to itself.")
877864 }
878865 }
879866 else throw("Strict value is not equal to itself.")
880867 }
881868
882869
883870
884871 @Callable(bR)
885872 func checkWxEmissionPoolLabel (aI,aJ) = {
886- let fc = {
873+ let fb = {
887874 let bn = getBoolean(aH(aI, aJ))
888875 if ($isInstanceOf(bn, "Boolean"))
889876 then {
890- let di = bn
891- di
877+ let dh = bn
878+ dh
892879 }
893880 else false
894881 }
895- $Tuple2(nil, fc)
882+ $Tuple2(nil, fb)
896883 }
897884
898885
899886
900887 @Callable(bR)
901888 func setWxEmissionPoolLabel (aI,aJ) = {
902- let dA = cF(bR)
903- if ((dA == dA))
889+ let dz = cE(bR)
890+ if ((dz == dz))
904891 then $Tuple2([BooleanEntry(aH(aI, aJ), true)], unit)
905892 else throw("Strict value is not equal to itself.")
906893 }
907894
908895
909896
910897 @Callable(bR)
911898 func deleteWxEmissionPoolLabel (aI,aJ) = {
912- let dA = if ((bR.caller == this))
899+ let dz = if ((bR.caller == this))
913900 then true
914- else cF(bR)
915- if ((dA == dA))
901+ else cE(bR)
902+ if ((dz == dz))
916903 then $Tuple2([DeleteEntry(aH(aI, aJ))], unit)
917904 else throw("Strict value is not equal to itself.")
918905 }
919906
920907
921908
922909 @Callable(bR)
923910 func onVerificationLoss (aR) = {
924- let dA = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
911+ let dz = if ((toBase58String(bR.caller.bytes) == valueOrElse(getString(this, X()), "")))
925912 then true
926913 else bS(bR)
927- if ((dA == dA))
914+ if ((dz == dz))
928915 then {
929- let dH = bL()
930- let fd = if ((size(dH) > 0))
916+ let dG = bL()
917+ let fc = if ((size(dG) > 0))
931918 then true
932919 else K("invalid price assets")
933- if ((fd == fd))
920+ if ((fc == fc))
934921 then {
935- func fe (ff,fg) = {
936- let dc = invoke(this, "deleteWxEmissionPoolLabel", [aR, fg], nil)
937- if ((dc == dc))
922+ func fd (fe,ff) = {
923+ let db = invoke(this, "deleteWxEmissionPoolLabel", [aR, ff], nil)
924+ if ((db == db))
938925 then unit
939926 else throw("Strict value is not equal to itself.")
940927 }
941928
942- let fh = {
943- let fi = dH
944- let fj = size(fi)
945- let fk = unit
946- func fl (fm,fn) = if ((fn >= fj))
947- then fm
948- else fe(fm, fi[fn])
929+ let fg = {
930+ let fh = dG
931+ let fi = size(fh)
932+ let fj = unit
933+ func fk (fl,fm) = if ((fm >= fi))
934+ then fl
935+ else fd(fl, fh[fm])
949936
950- func fo (fm,fn) = if ((fn >= fj))
951- then fm
937+ func fn (fl,fm) = if ((fm >= fi))
938+ then fl
952939 else throw("List size exceeds 13")
953940
954- fo(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fl(fk, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
941+ fn(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fk(fj, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13)
955942 }
956- if ((fh == fh))
943+ if ((fg == fg))
957944 then $Tuple2(nil, unit)
958945 else throw("Strict value is not equal to itself.")
959946 }
960947 else throw("Strict value is not equal to itself.")
961948 }
962949 else throw("Strict value is not equal to itself.")
963950 }
964951
965952
966953
967954 @Callable(bR)
968955 func isPoolOneTokenOperationsDisabledREADONLY (af) = {
969- let eh = cw(af)
970- let aq = $Tuple2(parseIntValue(eh[C]), parseIntValue(eh[D]))
971- let fp = valueOrElse(getBoolean(ap(aq)), false)
972- let fq = valueOrElse(getBoolean(as()), false)
973- $Tuple2(nil, if (fq)
956+ let eg = cv(af)
957+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
958+ let fo = valueOrElse(getBoolean(ap(aq)), false)
959+ let fp = valueOrElse(getBoolean(as()), false)
960+ $Tuple2(nil, if (fp)
974961 then true
975- else fp)
962+ else fo)
976963 }
977964
978965
979966
980967 @Callable(bR)
981968 func isPoolSwapDisabledREADONLY (af) = {
982- let eh = cw(af)
983- let aq = $Tuple2(parseIntValue(eh[C]), parseIntValue(eh[D]))
984- let fr = valueOrElse(getBoolean(at(aq)), false)
985- let fs = valueOrElse(getBoolean(av()), false)
986- $Tuple2(nil, if (fs)
969+ let eg = cv(af)
970+ let aq = $Tuple2(parseIntValue(eg[C]), parseIntValue(eg[D]))
971+ let fq = valueOrElse(getBoolean(at(aq)), false)
972+ let fr = valueOrElse(getBoolean(av()), false)
973+ $Tuple2(nil, if (fr)
987974 then true
988- else fr)
975+ else fq)
989976 }
990977
991978
992979
993980 @Callable(bR)
994981 func getInFeeREADONLY (af) = {
995- let ft = cI(aK(af), aL(), 0)
996- $Tuple2(nil, ft)
982+ let fs = cH(aK(af), aL(), 0)
983+ $Tuple2(nil, fs)
997984 }
998985
999986
1000987
1001988 @Callable(bR)
1002989 func getOutFeeREADONLY (af) = {
1003- let ft = cI(aN(af), aO(), fraction(10, b, 10000))
1004- $Tuple2(nil, ft)
990+ let fs = cH(aN(af), aO(), fraction(10, b, 10000))
991+ $Tuple2(nil, fs)
1005992 }
1006993
1007994
1008995
1009996 @Callable(bR)
1010-func getSwapFeeREADONLY (fu) = {
1011- let fv = {
1012- let bn = getString(this, aM(fu))
997+func getSwapFeeREADONLY (ft) = {
998+ let fu = {
999+ let bn = getString(this, aM(ft))
10131000 if ($isInstanceOf(bn, "String"))
10141001 then {
10151002 let bo = bn
1016- let fw = split(bo, m)
1017- let fx = parseIntValue(fw[1])
1018- let fy = parseIntValue(fw[2])
1019- $Tuple2(fx, fy)
1003+ let fv = split(bo, m)
1004+ let fw = parseIntValue(fv[1])
1005+ let fx = parseIntValue(fv[2])
1006+ $Tuple2(fw, fx)
10201007 }
10211008 else if ($isInstanceOf(bn, "Unit"))
10221009 then unit
10231010 else throw("Match error")
10241011 }
1025- $Tuple2(nil, fv)
1012+ $Tuple2(nil, fu)
10261013 }
10271014
10281015
10291016
10301017 @Callable(bR)
1031-func poolInfoREADONLY (fz,fA) = {
1018+func poolInfoREADONLY (fy,fz) = {
1019+ let fA = getInteger(this, ak(fy))
10321020 let fB = getInteger(this, ak(fz))
1033- let fC = getInteger(this, ak(fA))
1034- let fD = getString(this, aE(value(fB), value(fC)))
1035- let fE = getString(this, aF(value(fD)))
1036- let dU = if (if (isDefined(fB))
1021+ let fC = getString(this, aE(value(fA), value(fB)))
1022+ let fD = getString(this, aF(value(fC)))
1023+ let dT = if (if (isDefined(fA))
1024+ then isDefined(fB)
1025+ else false)
10371026 then isDefined(fC)
1038- else false)
1039- then isDefined(fD)
10401027 else false
1041- let fF = if (dU)
1042- then $Tuple2(addressFromStringValue(value(fD)), bk(value(fE)))
1028+ let fE = if (dT)
1029+ then $Tuple2(addressFromStringValue(value(fC)), bk(value(fD)))
10431030 else unit
1044- $Tuple2(nil, fF)
1031+ $Tuple2(nil, fE)
10451032 }
10461033
10471034
10481035
10491036 @Callable(bR)
10501037 func getPoolStatusREADONLY (af) = {
1051- let cx = split(bg(aC(af)), m)
1052- let an = cx[1]
1053- let ao = cx[2]
1054- let cO = split(bg(am(an, ao)), m)
1055- $Tuple2(nil, parseIntValue(cO[w]))
1038+ let cw = split(bg(aC(af)), m)
1039+ let an = cw[1]
1040+ let ao = cw[2]
1041+ let cN = split(bg(am(an, ao)), m)
1042+ $Tuple2(nil, parseIntValue(cN[w]))
10561043 }
10571044
10581045
10591046
10601047 @Callable(bR)
10611048 func getPoolConfigREADONLY (af) = {
1062- let cx = split(bg(aC(af)), m)
1063- let an = cx[1]
1064- let ao = cx[2]
1065- let cO = split(bg(am(an, ao)), m)
1066- $Tuple2(nil, cO)
1049+ let cw = split(bg(aC(af)), m)
1050+ let an = cw[1]
1051+ let ao = cw[2]
1052+ let cN = split(bg(am(an, ao)), m)
1053+ $Tuple2(nil, cN)
10671054 }
10681055
10691056
10701057
10711058 @Callable(bR)
1072-func getPoolConfigByLpAssetIdREADONLY (dZ) = {
1073- let cx = split(bg(aw(dZ)), m)
1074- let an = cx[1]
1075- let ao = cx[2]
1076- let cO = split(bg(am(an, ao)), m)
1077- $Tuple2(nil, cO)
1059+func getPoolConfigByLpAssetIdREADONLY (dY) = {
1060+ let cw = split(bg(aw(dY)), m)
1061+ let an = cw[1]
1062+ let ao = cw[2]
1063+ let cN = split(bg(am(an, ao)), m)
1064+ $Tuple2(nil, cN)
10781065 }
10791066
10801067
10811068
10821069 @Callable(bR)
1083-func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cL(aI, aJ))
1070+func poolExistsREADONLY (aI,aJ) = $Tuple2(nil, cK(aI, aJ))
10841071
10851072
10861073
10871074 @Callable(bR)
10881075 func skipOrderValidationREADONLY (af) = $Tuple2(nil, valueOrElse(getBoolean(aS(af)), false))
10891076
10901077
10911078
10921079 @Callable(bR)
10931080 func getChangeAmpConfigREADONLY (af) = {
1094- let fG = getIntegerValue(aT(af))
1095- let fH = getIntegerValue(aU(af))
1096- let fI = getIntegerValue(aV(af))
1097- $Tuple2(nil, [fG, fH, fI])
1081+ let fF = getIntegerValue(aT(af))
1082+ let fG = getIntegerValue(aU(af))
1083+ let fH = getIntegerValue(aV(af))
1084+ $Tuple2(nil, [fF, fG, fH])
10981085 }
10991086
11001087
11011088
11021089 @Callable(bR)
1103-func getPoolWeightREADONLY (ck) = {
1104- let af = bg(aG(ck))
1105- let fJ = valueOrElse(getInteger(ae(af)), 0)
1106- $Tuple2(nil, fJ)
1090+func getPoolWeightREADONLY (cj) = {
1091+ let af = bg(aG(cj))
1092+ let fI = valueOrElse(getInteger(ae(af)), 0)
1093+ $Tuple2(nil, fI)
11071094 }
11081095
11091096
11101097
11111098 @Callable(bR)
11121099 func deletePool (aD) = {
1113- let eh = cw(aD)
1114- let dA = [if (if (bU(bR))
1115- then true
1116- else if ((toString(bR.caller) == cS(aD)))
1117- then cZ(aD)
1118- else false)
1119- then true
1120- else K("Pool is not empty")]
1121- if ((dA == dA))
1100+ let eg = cv(aD)
1101+ let dz = if ((toString(bR.caller) == cR(aD)))
1102+ then if (cY(aD))
1103+ then true
1104+ else K("Pool is not empty")
1105+ else bS(bR)
1106+ if ((dz == dz))
11221107 then {
1123- let fK = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
1108+ let fJ = if ((valueOrElse(getInteger(ae(aD)), 0) == 0))
11241109 then true
11251110 else K("Pool weight is not Zero")
1126- if ((fK == fK))
1111+ if ((fJ == fJ))
11271112 then {
1128- let fL = if ((eh[w] == toString(r)))
1113+ let fK = if ((eg[w] == toString(r)))
11291114 then true
11301115 else K("Pool must be SHUTDOWN (4)")
1131- if ((fL == fL))
1116+ if ((fK == fK))
11321117 then {
1133- let fM = cR(aD)
1134- let aI = fM._1
1135- let aJ = fM._2
1136- let ck = fM._3
1137- let an = fM._4
1138- let ao = fM._5
1139- let cU = addressFromStringValue(getStringValue(Z()))
1140- let fN = invoke(cU, "deletePool", [aI, aJ], nil)
1141- if ((fN == fN))
1118+ let fL = cQ(aD)
1119+ let aI = fL._1
1120+ let aJ = fL._2
1121+ let cj = fL._3
1122+ let an = fL._4
1123+ let ao = fL._5
1124+ let cT = addressFromStringValue(getStringValue(Z()))
1125+ let fM = invoke(cT, "deletePool", [aI, aJ], nil)
1126+ if ((fM == fM))
11421127 then {
1143- let dG = addressFromStringValue(getStringValue(Y()))
1144- let fO = invoke(dG, "deletePool", [aI, aJ], nil)
1145- if ((fO == fO))
1128+ let dF = addressFromStringValue(getStringValue(Y()))
1129+ let fN = invoke(dF, "deletePool", [aI, aJ], nil)
1130+ if ((fN == fN))
11461131 then {
1147- let dF = addressFromStringValue(getStringValue(X()))
1148- let fP = invoke(dF, "deletePool", [aI, aJ], nil)
1149- if ((fP == fP))
1150- then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(ck)), DeleteEntry(aG(ck)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aS(aD)), DeleteEntry(aT(aD)), DeleteEntry(aU(aD)), DeleteEntry(aV(aD))]
1132+ let dE = addressFromStringValue(getStringValue(X()))
1133+ let fO = invoke(dE, "deletePool", [aI, aJ], nil)
1134+ if ((fO == fO))
1135+ then [DeleteEntry(aF(aD)), DeleteEntry(aC(aD)), DeleteEntry(ay(toString(an), toString(ao))), DeleteEntry(aE(an, ao)), DeleteEntry(am(toString(an), toString(ao))), DeleteEntry(aw(cj)), DeleteEntry(aG(cj)), DeleteEntry(aH(aI, aJ)), DeleteEntry(ae(aD)), DeleteEntry(aB(aD)), DeleteEntry(aK(aD)), DeleteEntry(aN(aD)), DeleteEntry(aS(aD)), DeleteEntry(aT(aD)), DeleteEntry(aU(aD)), DeleteEntry(aV(aD))]
11511136 else throw("Strict value is not equal to itself.")
11521137 }
11531138 else throw("Strict value is not equal to itself.")
11541139 }
11551140 else throw("Strict value is not equal to itself.")
11561141 }
11571142 else throw("Strict value is not equal to itself.")
11581143 }
11591144 else throw("Strict value is not equal to itself.")
11601145 }
11611146 else throw("Strict value is not equal to itself.")
11621147 }
11631148
11641149
11651150
11661151 @Callable(bR)
1167-func getPrice (fu) = {
1168- let af = addressFromStringValue(fu)
1169- let cO = cw(fu)
1170- let ck = fromBase58String(cO[x])
1171- let fQ = cO[y]
1172- let aJ = cO[z]
1173- let fR = value(assetInfo(ck)).quantity
1174- let fS = {
1175- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [fQ], nil)
1176- if ($isInstanceOf(fT, "Int"))
1177- then fT
1178- else throw(($getType(fT) + " couldn't be cast to Int"))
1152+func getPrice (ft) = {
1153+ let af = addressFromStringValue(ft)
1154+ let cN = cv(ft)
1155+ let cj = fromBase58String(cN[x])
1156+ let fP = cN[y]
1157+ let aJ = cN[z]
1158+ let fQ = value(assetInfo(cj)).quantity
1159+ let fR = {
1160+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fP], nil)
1161+ if ($isInstanceOf(fS, "Int"))
1162+ then fS
1163+ else throw(($getType(fS) + " couldn't be cast to Int"))
11791164 }
1180- let fU = {
1181- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1182- if ($isInstanceOf(fT, "Int"))
1183- then fT
1184- else throw(($getType(fT) + " couldn't be cast to Int"))
1165+ let fT = {
1166+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [aJ], nil)
1167+ if ($isInstanceOf(fS, "Int"))
1168+ then fS
1169+ else throw(($getType(fS) + " couldn't be cast to Int"))
11851170 }
1186- let fV = if ((fR == 0))
1171+ let fU = if ((fQ == 0))
11871172 then 0
11881173 else {
1189- let fT = ({
1190- let fT = invoke(af, "calcPricesWrapperREADONLY", [fS, fU, fR], nil)
1191- if ($isInstanceOf(fT, "List[Any]"))
1192- then fT
1193- else throw(($getType(fT) + " couldn't be cast to List[Any]"))
1174+ let fS = ({
1175+ let fS = invoke(af, "calcPricesWrapperREADONLY", [fR, fT, fQ], nil)
1176+ if ($isInstanceOf(fS, "List[Any]"))
1177+ then fS
1178+ else throw(($getType(fS) + " couldn't be cast to List[Any]"))
11941179 })[0]
1195- if ($isInstanceOf(fT, "String"))
1196- then fT
1197- else throw(($getType(fT) + " couldn't be cast to String"))
1180+ if ($isInstanceOf(fS, "String"))
1181+ then fS
1182+ else throw(($getType(fS) + " couldn't be cast to String"))
11981183 }
1199- $Tuple2(nil, fV)
1184+ $Tuple2(nil, fU)
12001185 }
12011186
12021187
12031188
12041189 @Callable(bR)
1205-func checkBalance (dZ) = {
1206- let fu = bg(aG(dZ))
1207- let af = addressFromStringValue(fu)
1208- let cO = cw(fu)
1209- let fz = cO[y]
1210- let fA = cO[z]
1211- let fW = getIntegerValue(this, aP())
1212- let fX = valueOrElse(getInteger(this, aQ(fz)), fW)
1213- let fY = valueOrElse(getInteger(this, aQ(fA)), fW)
1190+func checkBalance (dY) = {
1191+ let ft = bg(aG(dY))
1192+ let af = addressFromStringValue(ft)
1193+ let cN = cv(ft)
1194+ let fy = cN[y]
1195+ let fz = cN[z]
1196+ let fV = getIntegerValue(this, aP())
1197+ let fW = valueOrElse(getInteger(this, aQ(fy)), fV)
1198+ let fX = valueOrElse(getInteger(this, aQ(fz)), fV)
1199+ let fY = {
1200+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fy], nil)
1201+ if ($isInstanceOf(fS, "Int"))
1202+ then fS
1203+ else throw(($getType(fS) + " couldn't be cast to Int"))
1204+ }
12141205 let fZ = {
1215- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
1216- if ($isInstanceOf(fT, "Int"))
1217- then fT
1218- else throw(($getType(fT) + " couldn't be cast to Int"))
1206+ let fS = invoke(af, "getAccBalanceWrapperREADONLY", [fz], nil)
1207+ if ($isInstanceOf(fS, "Int"))
1208+ then fS
1209+ else throw(($getType(fS) + " couldn't be cast to Int"))
12191210 }
1220- let ga = {
1221- let fT = invoke(af, "getAccBalanceWrapperREADONLY", [fA], nil)
1222- if ($isInstanceOf(fT, "Int"))
1223- then fT
1224- else throw(($getType(fT) + " couldn't be cast to Int"))
1225- }
1211+ let ga = (fY >= (fW / 2))
12261212 let gb = (fZ >= (fX / 2))
1227- let gc = (ga >= (fY / 2))
1228- let gd = if (gb)
1229- then gc
1213+ let gc = if (ga)
1214+ then gb
12301215 else false
1231- $Tuple2(nil, gd)
1216+ $Tuple2(nil, gc)
12321217 }
12331218
12341219
1235-@Verifier(ge)
1236-func gf () = {
1237- let gg = {
1220+@Verifier(gd)
1221+func ge () = {
1222+ let gf = {
12381223 let bn = bM()
12391224 if ($isInstanceOf(bn, "ByteVector"))
12401225 then {
12411226 let bT = bn
12421227 bT
12431228 }
12441229 else if ($isInstanceOf(bn, "Unit"))
1245- then ge.senderPublicKey
1230+ then gd.senderPublicKey
12461231 else throw("Match error")
12471232 }
1248- sigVerify(ge.bodyBytes, ge.proofs[0], gg)
1233+ sigVerify(gd.bodyBytes, gd.proofs[0], gf)
12491234 }
12501235

github/deemru/w8io/6500d08 
437.16 ms