tx · 8gVojZycevAs5czoMdkK9ujpFaH4apmJf2SkatujC8xb

3N2FjnCq4gcpewsYQVT4scz9MjTgD6a4kQK:  -0.01400000 Waves

2019.09.26 21:24 [693699] smart account 3N2FjnCq4gcpewsYQVT4scz9MjTgD6a4kQK > SELF 0.00000000 Waves

{ "type": 13, "id": "8gVojZycevAs5czoMdkK9ujpFaH4apmJf2SkatujC8xb", "fee": 1400000, "feeAssetId": null, "timestamp": 1569522277853, "version": 1, "sender": "3N2FjnCq4gcpewsYQVT4scz9MjTgD6a4kQK", "senderPublicKey": "7A8H5cWfJVSpSrnB71CzWqyNm8KMxZPjwFcj1mDUU8an", "proofs": [ "4a4Zzfjb7A617ZwEqexRBrr76xGtmkXRSVN1ranPcJj7ZGLXjLRvfAQXwbiQCtrjNMBLDCPSdqwKFuu49pKh8MrD" ], "script": "base64:AAIDAAAAAAAAAAAAAABLAAAAABZvcmFjbGVXaGl0ZUxpc3RBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFURgbF8Y7OPgkLtFiSdXpmu5LRzu6Rj638AAAAABR0aGlzQWRkcmVzc1B1YmxpY0tleQEAAAAgW3yTxZOTTiNmvooSpXcphBB5DlU9aluLSa1r39oafQsAAAAAC0RBUFBBRERSRVNTAgAAACMzTjJGam5DcTRnY3Bld3NZUVZUNHNjejlNalRnRDZhNGtRSwAAAAAFQURNSU4CAAAAIzNOQ0tvRlF4UmY3enNETmJpdkxGdzFvSjd5OHFKekxtRXM0AAAAAARXVVNEAQAAACDdHL0B8M91BTB4B7KotjiY0UXdXB+6M1rjQG/6Zllw/QAAAAAEV0VVUgEAAAAg7BZhBF97kSFBBjs38+fX1Pjz08YOqoCX85C/0PoVupkAAAAABFdCVEMBAAAAIGz6av/F7aqMC3+1KpPSogwvgoLbdHoEjFP7/RMfc6D/AAAAAAVLT0xJTgEAAAAg2pnGDzCaCArIN9AsIhvcgYMfZowVYuDqNDNtJmjyiQ0AAAAABFdFVEgBAAAAIC4gw/bqip+JUbu/6IgREzbsftjCQgNyZQ1YzXMmQmWCAAAAAARXTFRDAQAAACD2HjZC05fd8lpYFSDuLA/aLUYGioA2kq5ViVmesMUsoQAAAAAKTElTVElOR0ZFRQkAAGgAAAACAAAAAAAAAAABAAAAAAAAD0JAAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIAAAAAC1dISVRFTElTVEVEAgAAAAtXSElURUxJU1RFRAAAAAALQkxBQ0tMSVNURUQCAAAAC0JMQUNLTElTVEVEAAAAAAdJTlZJVEVEAgAAAAdJTlZJVEVEAAAAAAtTUEVORElOVklURQIAAAAMU1BFTkRfSU5WSVRFAAAAAAlNT0RFUkFUT1ICAAAACU1PREVSQVRPUgAAAAAGUVVPUlVNAAAAAAAAAAAFAQAAAApnZXRLZXlJdGVtAAAAAgAAAAR1c2VyAAAABGl0ZW0JAAEsAAAAAgIAAAAFaXRlbV8JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAAMZ2V0VmFsdWVJdGVtAAAAAgAAAAR1c2VyAAAABGl0ZW0JAAJYAAAAAQkAAfcAAAABCQABmwAAAAEJAAEsAAAAAgUAAAAEdXNlcgUAAAAEaXRlbQEAAAASZ2V0S2V5SXRlbURvY3VtZW50AAAAAQAAAAhkb2N1bWVudAkAASwAAAACAgAAAAVpdGVtXwUAAAAIZG9jdW1lbnQBAAAAFGdldFZhbHVlSXRlbURvY3VtZW50AAAAAQAAAAhkb2N1bWVudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1Eb2N1bWVudAAAAAEFAAAACGRvY3VtZW50AQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABAAAAB2FjY291bnQJAAEsAAAAAgIAAAAHd2xfcmVmXwUAAAAHYWNjb3VudAEAAAAUZ2V0VmFsdWVXaGl0ZWxpc3RSZWYAAAABAAAAB2FjY291bnQJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABJnZXRLZXlXaGl0ZWxpc3RSZWYAAAABBQAAAAdhY2NvdW50AQAAABVnZXRLZXlXaGl0ZWxpc3RTdGF0dXMAAAABAAAAB2FjY291bnQJAAEsAAAAAgIAAAAHd2xfc3RzXwUAAAAHYWNjb3VudAEAAAANZ2V0S2V5QmFsYW5jZQAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAAAhiYWxhbmNlXwUAAAAHYWNjb3VudAEAAAASZ2V0S2V5V2hpdGVsaXN0QmlvAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX2Jpb18FAAAAB2FjY291bnQBAAAAFGdldEtleVdoaXRlbGlzdEJsb2NrAAAAAQAAAAdhY2NvdW50CQABLAAAAAICAAAAB3dsX2Jsa18FAAAAB2FjY291bnQBAAAAF2dldEtleUl0ZW1BY2NSZXBvcnREYXRhAAAAAgAAAARpdGVtAAAAB2FjY291bnQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAB3JlcG9ydF8FAAAABGl0ZW0CAAAAAV8FAAAAB2FjY291bnQBAAAAD2dldFZhbHVlQmFsYW5jZQAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAADWdldEtleUJhbGFuY2UAAAABBQAAAAdhY2NvdW50AQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEAAAAHYWNjb3VudAkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAFWdldEtleVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQBAAAAEGdldEtleUl0ZW1BdXRob3IAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAHYXV0aG9yXwUAAAAEaXRlbQEAAAASZ2V0VmFsdWVJdGVtQXV0aG9yAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAQZ2V0S2V5SXRlbUF1dGhvcgAAAAEFAAAABGl0ZW0BAAAAEmdldEtleUl0ZW1EZWFkbGluZQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA5kZWFkbGluZWJsb2NrXwUAAAAEaXRlbQEAAAAUZ2V0VmFsdWVJdGVtRGVhZGxpbmUAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABJnZXRLZXlJdGVtRGVhZGxpbmUAAAABBQAAAARpdGVtAQAAAA9nZXRLZXlJdGVtQmxvY2sAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAGYmxvY2tfBQAAAARpdGVtAQAAABFnZXRWYWx1ZUl0ZW1CbG9jawAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUl0ZW1CbG9jawAAAAEFAAAABGl0ZW0BAAAAFGdldEtleUl0ZW1UeXBlT2ZXb3JrAAAAAQAAAARpdGVtCQABLAAAAAICAAAAC3R5cGVvZndvcmtfBQAAAARpdGVtAQAAABZnZXRWYWx1ZUl0ZW1UeXBlT2ZXb3JrAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAUZ2V0S2V5SXRlbVR5cGVPZldvcmsAAAABBQAAAARpdGVtAQAAABNnZXRLZXlJdGVtV29yZENvdW50AAAAAQAAAARpdGVtCQABLAAAAAICAAAACndvcmRjb3VudF8FAAAABGl0ZW0BAAAAFWdldFZhbHVlSXRlbVdvcmRDb3VudAAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAE2dldEtleUl0ZW1Xb3JkQ291bnQAAAABBQAAAARpdGVtAQAAABJnZXRLZXlJdGVtUHJpY2VVU0QAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAJcHJpY2VVU0RfBQAAAARpdGVtAQAAABRnZXRWYWx1ZUl0ZW1QcmljZVVTRAAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEmdldEtleUl0ZW1QcmljZVVTRAAAAAEFAAAABGl0ZW0BAAAAEWdldEtleUl0ZW1Bc3NldElEAAAAAQAAAARpdGVtCQABLAAAAAICAAAAC3BtdGFzc2V0SURfBQAAAARpdGVtAQAAABNnZXRWYWx1ZUl0ZW1Bc3NldElEAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAARZ2V0S2V5SXRlbUFzc2V0SUQAAAABBQAAAARpdGVtAQAAABZnZXRLZXlJdGVtUHJpY2VBc3NldElEAAAAAQAAAARpdGVtCQABLAAAAAICAAAADXByaWNlYXNzZXRJRF8FAAAABGl0ZW0BAAAAGGdldFZhbHVlSXRlbVByaWNlQXNzZXRJRAAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAFmdldEtleUl0ZW1QcmljZUFzc2V0SUQAAAABBQAAAARpdGVtAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAlkYXRhanNvbl8FAAAABGl0ZW0BAAAAEGdldFZhbHVlSXRlbURhdGEAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAA5nZXRLZXlJdGVtRGF0YQAAAAEFAAAABGl0ZW0BAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAHc3RhdHVzXwUAAAAEaXRlbQEAAAASZ2V0VmFsdWVJdGVtU3RhdHVzAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEFAAAABGl0ZW0BAAAAFGdldEtleUl0ZW1UcmFuc2xhdG9yAAAAAQAAAARpdGVtCQABLAAAAAICAAAAC3RyYW5zbGF0b3JfBQAAAARpdGVtAQAAABZnZXRWYWx1ZUl0ZW1UcmFuc2xhdG9yAAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAUZ2V0S2V5SXRlbVRyYW5zbGF0b3IAAAABBQAAAARpdGVtAQAAABBnZXRLZXlJdGVtRHVlRm9yAAAAAQAAAARpdGVtCQABLAAAAAICAAAACGR1ZV9mb3JfBQAAAARpdGVtAQAAABJnZXRWYWx1ZUl0ZW1EdWVGb3IAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABBnZXRLZXlJdGVtRHVlRm9yAAAAAQUAAAAEaXRlbQEAAAAcZ2V0S2V5SXRlbURpc3B1dGVJbml0aWF0ZWRCeQAAAAEAAAAEaXRlbQkAASwAAAACAgAAAAtkaXNwdXRlZGJ5XwUAAAAEaXRlbQEAAAAeZ2V0VmFsdWVJdGVtRGlzcHV0ZUluaXRpYXRlZEJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAcZ2V0S2V5SXRlbURpc3B1dGVJbml0aWF0ZWRCeQAAAAEFAAAABGl0ZW0BAAAAGWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkQnkAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAQZGlzcHV0ZWNsb3NlZGJ5XwUAAAAEaXRlbQEAAAAbZ2V0VmFsdWVJdGVtRGlzcHV0ZUNsb3NlZEJ5AAAAAQAAAARpdGVtCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAZZ2V0S2V5SXRlbURpc3B1dGVDbG9zZWRCeQAAAAEFAAAABGl0ZW0BAAAAHWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkV2lubmVyAAAAAQAAAARpdGVtAgAAAA9kaXNwdXRlX3dpbm5lcl8BAAAAHmdldEtleVZhbHVlRGlzcHV0ZUNsb3NlZFdpbm5lcgAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQkBAAAAHWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkV2lubmVyAAAAAQUAAAAEaXRlbQEAAAAUZ2V0S2V5SXRlbUxhc3RVcGRhdGUAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAMbGFzdF91cGRhdGVfBQAAAARpdGVtAQAAABZnZXRWYWx1ZUl0ZW1MYXN0VXBkYXRlAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAUZ2V0S2V5SXRlbUxhc3RVcGRhdGUAAAABBQAAAARpdGVtAQAAACBnZXRLZXlJdGVtRGlzcHV0ZVZvdGVzVHJhbnNsYXRvcgAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA9jbnRfdHJhbnNsYXRvcl8FAAAABGl0ZW0BAAAAImdldFZhbHVlSXRlbURpc3B1dGVWb3Rlc1RyYW5zbGF0b3IAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAACBnZXRLZXlJdGVtRGlzcHV0ZVZvdGVzVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0BAAAAGmdldEtleUl0ZW1EaXNwdXRlVm90ZXNVc2VyAAAAAQAAAARpdGVtCQABLAAAAAICAAAACWNudF91c2VyXwUAAAAEaXRlbQEAAAAcZ2V0VmFsdWVJdGVtRGlzcHV0ZVZvdGVzVXNlcgAAAAEAAAAEaXRlbQkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAGmdldEtleUl0ZW1EaXNwdXRlVm90ZXNVc2VyAAAAAQUAAAAEaXRlbQEAAAARZ2V0S2V5SXRlbUJhbGFuY2UAAAABAAAABGl0ZW0JAAEsAAAAAgIAAAAIYmFsYW5jZV8FAAAABGl0ZW0BAAAAE2dldFZhbHVlSXRlbUJhbGFuY2UAAAABAAAABGl0ZW0JAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABFnZXRLZXlJdGVtQmFsYW5jZQAAAAEFAAAABGl0ZW0BAAAAGGdldEtleUl0ZW1CYWxhbmNlQXNzZXRJRAAAAAEAAAAEaXRlbQkAASwAAAACAgAAAA9iYWxhbmNlX2Fzc2V0SUQFAAAABGl0ZW0BAAAAGmdldFZhbHVlSXRlbUJhbGFuY2VBc3NldElEAAAAAQAAAARpdGVtCQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0S2V5SXRlbUJhbGFuY2VBc3NldElEAAAAAQUAAAAEaXRlbQEAAAAcZ2V0RXh0S2V5SXRlbVdoaXRlTGlzdFN0YXR1cwAAAAEAAAAHYWNjb3VudAkAASwAAAACAgAAABB2ZXJpZmllcl9zdGF0dXNfBQAAAAdhY2NvdW50AQAAAB5nZXRFeHRWYWx1ZUl0ZW1XaGl0ZUxpc3RTdGF0dXMAAAACAAAABm9yYWNsZQAAAAdhY2NvdW50BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAGb3JhY2xlCQEAAAAcZ2V0RXh0S2V5SXRlbVdoaXRlTGlzdFN0YXR1cwAAAAEFAAAAB2FjY291bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQUAAAAETk9ORQUAAAADc3RyAAAACwAAAAFpAQAAABFzdWJtaXRUcmFuc2xhdGlvbgAAAAcAAAAIZG9jdW1lbnQAAAAEZGF0YQAAAAdhc3NldElEAAAADGZ1dHVyZUJsb2NrcwAAAAl3b3JkQ291bnQAAAAKdHlwZU9mV29yawAAAAxwcmljZUFzc2V0SUQEAAAABHVzZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAEaXRlbQkBAAAACmdldEtleUl0ZW0AAAACBQAAAAR1c2VyBQAAAAhkb2N1bWVudAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAADWRlYWRsaW5lYmxvY2sJAABkAAAAAggFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQFAAAADGZ1dHVyZUJsb2NrcwQAAAAKY3VycnN0YXR1cwkBAAAAHmdldEV4dFZhbHVlSXRlbVdoaXRlTGlz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CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAASZ2V0S2V5SXRlbVByaWNlVVNEAAAAAQUAAAAEaXRlbQkAAGgAAAACBQAAAAp0eXBlT2ZXb3JrBQAAAAl3b3JkQ291bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRLZXlJdGVtQXNzZXRJRAAAAAEFAAAABGl0ZW0FAAAAB2Fzc2V0SUQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABZnZXRLZXlJdGVtUHJpY2VBc3NldElEAAAAAQUAAAAEaXRlbQUAAAAMcHJpY2VBc3NldElECQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEFAAAABGl0ZW0CAAAACG5ldyBwb3N0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAOZ2V0S2V5SXRlbURhdGEAAAABBQAAAARpdGVtBQAAAARkYXRhBQAAAANuaWwAAAABaQEAAAAGZXNjcm93AAAAAwAAAARpdGVtAAAACnRyYW5zbGF0b3IAAAAMZnV0dXJlQmxvY2tzBAAAAAR1c2VyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAhkb2N1bWVudAUAAAAEaXRlbQQAAAANZGVhZGxpbmVibG9jawkAAGQAAAACCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAUAAAAMZnV0dXJlQmxvY2tzBAAAAAVwcmljZQkBAAAAGGdldFZhbHVlSXRlbVByaWNlQXNzZXRJRAAAAAEFAAAABGl0ZW0EAAAAEXJlZ2lzdGVyZWRBc3NldElECQEAAAATZ2V0VmFsdWVJdGVtQXNzZXRJRAAAAAEFAAAABGl0ZW0EAAAAEHRyYW5zbGF0b3JTdGF0dXMJAQAAAB5nZXRFeHRWYWx1ZUl0ZW1XaGl0ZUxpc3RTdGF0dXMAAAACBQAAABZvcmFjbGVXaGl0ZUxpc3RBZGRyZXNzBQAAAAp0cmFuc2xhdG9yBAAAAAp1c2VyU3RhdHVzCQEAAAAeZ2V0RXh0VmFsdWVJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAgUAAAAWb3JhY2xlV2hpdGVMaXN0QWRkcmVzcwUAAAAEdXNlcgMDAwMJAQAAAAIhPQAAAAIFAAAACnVzZXJTdGF0dXMFAAAAC1dISVRFTElTVEVECQEAAAACIT0AAAACBQAAAAR1c2VyBQAAAAtEQVBQQUREUkVTUwcJAQAAAAIhPQAAAAIFAAAACnVzZXJTdGF0dXMFAAAABUFETUlOBwkBAAAAAiE9AAAAAgUAAAAKdXNlclN0YXR1cwUAAAAJTU9ERVJBVE9SBwkAAAIAAAABCQABLAAAAAICAAAAKFlvdXIgYWNjb3VudCBpcyBub3QgcmVnaXN0ZXJlZC4gc3RhdHVzOiAFAAAACnVzZXJTdGF0dXMDAwMDCQEAAAACIT0AAAACBQAAABB0cmFuc2xhdG9yU3RhdHVzBQAAAAtXSElURUxJU1RFRAkBAAAAAiE9AAAAAgUAAAAKdHJhbnNsYXRvcgUAAAALREFQUEFERFJFU1MHCQEAAAACIT0AAAACBQAAABB0cmFuc2xhdG9yU3RhdHVzBQAAAAVBRE1JTgcJAQAAAAIhPQAAAAIFAAAAEHRyYW5zbGF0b3JTdGF0dXMFAAAACU1PREVSQVRPUgcJAAACAAAAAQkAASwAAAACAgAAAChZb3VyIGFjY291bnQgaXMgbm90IHJlZ2lzdGVyZWQuIHN0YXR1czogBQAAAAp1c2VyU3RhdHVzAwkBAAAAAiE9AAAAAgkBAAAAFGdldFZhbHVlSXRlbURvY3VtZW50AAAAAQUAAAAIZG9jdW1lbnQFAAAABGl0ZW0JAAACAAAAAQkAASwAAAACAgAAAB90cmFuc2xhdGlvbiB3b3JrIG5vdCBmb3VuZCBmb3IgBQAAAARpdGVtAwkAAGcAAAACCQEAAAAUZ2V0VmFsdWVJdGVtRGVhZGxpbmUAAAABBQAAAARpdGVtCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAAIAAAABAgAAADBkZWFkbGluZSBmb3IgdGhpcyB3b3JrIGhhcyBiZWVuIGFscmVhZHkgYWNoaWV2ZWQDCQAAZgAAAAIFAAAABXByaWNlCAUAAAADcG10AAAABmFtb3VudAkAAAIAAAABAgAAADFwcmljZSBsb3dlciB0aGFuIHBvc3RlZCBmb3IgdGhpcyB0cmFuc2xhdGlvbiB3b3JrAwkAAGYAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAAFcHJpY2UJAAACAAAAAQIAAABGbW9uZXkgcGF5ZWQgaXMgaGlnaGVyIHRoYW4gdGhpcyB0cmFuc2xhdGlvbiB3b3JrLCBubyBuZWVkIHRvIG92ZXJzcGVuZAMJAQAAAAIhPQAAAAIFAAAABHVzZXIJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtCQAAAgAAAAECAAAAMVVzZXIgaXMgZGlmZmVyZW50IHRoYW4gdHJhbnNsYXRpb24ncyBwb3N0IGNyZWF0b3IDCQAAAAAAAAIFAAAACnVzZXJTdGF0dXMFAAAAC0JMQUNLTElTVEVECQAAAgAAAAECAAAAI3VzZXIncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdGVkAwkAAAAAAAACBQAAABB0cmFuc2xhdG9yU3RhdHVzBQAAAAtCTEFDS0xJU1RFRAkAAAIAAAABAgAAACl0cmFuc2xhdG9yJ3MgYWNjb3VudCBoYXMgYmVlbiBibGFja2xpc3RlZAMJAABmAAAAAgAAAAAAAAAFoAUAAAAMZnV0dXJlQmxvY2tzCQAAAgAAAAECAAAAW3BsZWFzZSBhbGxvdyBhdCBsZWFzdCAyNCBoICh+MTQ0MCBibG9ja3MpIGZvciB0aGUgdHJhbnNsYXRpb24gd29yayB0byBiZSBwdWJsaXNoZWQgcHJvcGVybHkDCQAAZgAAAAIFAAAADGZ1dHVyZUJsb2NrcwAAAAAAAACuYAkAAAIAAAABAgAAAE1hIHRyYW5zbGF0aW9uIHdvcmsgY2FuIG5vdCBiZSBwb3N0ZWQgZm9yIGxvbmdlciB0aGFuIDMxIGRheXMgKH40NDY0MCBibG9ja3MpIAMJAQAAAAIhPQAAAAIJAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAAAhuZXcgcG9zdAkAAAIAAAABAgAAACRlc2Nyb3cgZm9yIHRoaXMgd29yayBhbHJlYWR5IHByZXNlbnQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEFAAAABGl0ZW0CAAAAHHdvcmsgYWxsb2NhdGVkIHRvIHRyYW5zbGF0b3IJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABRnZXRLZXlJdGVtVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0FAAAACnRyYW5zbGF0b3IJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRLZXlJdGVtRHVlRm9yAAAAAQUAAAAEaXRlbQUAAAANZGVhZGxpbmVibG9jawkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFGdldEtleUl0ZW1MYXN0VXBkYXRlAAAAAQUAAAAEaXRlbQUAAAAGaGVpZ2h0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5SXRlbUJhbGFuY2UAAAABBQAAAARpdGVtCAUAAAADcG10AAAABmFtb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGGdldEtleUl0ZW1CYWxhbmNlQXNzZXRJRAAAAAEFAAAABGl0ZW0FAAAAEXJlZ2lzdGVyZWRBc3NldElEBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAAA1kaXNwdXRlRXNjcm93AAAAAQAAAARpdGVtBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGYW1vdW50CQEAAAAYZ2V0VmFsdWVJdGVtUHJpY2VBc3NldElEAAAAAQUAAAAEaXRlbQQAAAAHYXNzZXRJRAkBAAAAE2dldFZhbHVlSXRlbUFzc2V0SUQAAAABBQAAAARpdGVtBAAAAA1ibG9ja1VubG9ja2VkCQEAAAASZ2V0VmFsdWVJdGVtRHVlRm9yAAAAAQUAAAAEaXRlbQQAAAAQdHJhbnNsYXRvclN0YXR1cwkBAAAAHmdldEV4dFZhbHVlSXRlbVdoaXRlTGlzdFN0YXR1cwAAAAIFAAAAFm9yYWNsZVdoaXRlTGlzdEFkZHJlc3MJAQAAABZnZXRWYWx1ZUl0ZW1UcmFuc2xhdG9yAAAAAQUAAAAEaXRlbQQAAAAKdXNlclN0YXR1cwkBAAAAHmdldEV4dFZhbHVlSXRlbVdoaXRlTGlzdFN0YXR1cwAAAAIFAAAAFm9yYWNsZVdoaXRlTGlzdEFkZHJlc3MJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtBAAAAApjdXJyc3RhdHVzCQEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAZjYWxsZXIDAwMJAQAAAAIhPQAAAAIFAAAACmN1cnJzdGF0dXMFAAAAC1dISVRFTElTVEVECQEAAAACIT0AAAACBQAAAAZjYWxsZXIFAAAAC0RBUFBBRERSRVNTBwkBAAAAAiE9AAAAAgUAAAAKY3VycnN0YXR1cwUAAAAFQURNSU4HCQAAAgAAAAEJAAEsAAAAAgIAAAAoWW91ciBhY2NvdW50IGlzIG5vdCByZWdpc3RlcmVkLiBzdGF0dXM6IAUAAAAKY3VycnN0YXR1cwMDAwkBAAAAAiE9AAAAAgUAAAAGY2FsbGVyCQEAAAAWZ2V0VmFsdWVJdGVtVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0GCQEAAAACIT0AAAACBQAAAAZjYWxsZXIJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtBgkBAAAAAiE9AAAAAgUAAAAGY2FsbGVyBQAAAAVBRE1JTgkAAAIAAAABAgAAAEBqdXN0IHdvcmsgY3JlYXRvciwgdHJhbnNsYXRvciBvciBhbiBhZG1pbiBjYW4gaW5pdGlhdGUgYSBkaXNwdXRlAwkAAAAAAAACCQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEFAAAABGl0ZW0CAAAAE2Rpc3B1dGUgaW4gcHJvZ3Jlc3MJAAACAAAAAQIAAAAkVGhpcyB3b3JrIGlzIGN1cnJlbnRseSB1bmRlciBkaXNwdXRlAwkAAAAAAAACBQAAAAp1c2VyU3RhdHVzBQAAAAtCTEFDS0xJU1RFRAkAAAIAAAABAgAAACN1c2VyJ3MgYWNjb3VudCBoYXMgYmVlbiBibGFja2xpc3RlZAMJAAAAAAAAAgUAAAAQdHJhbnNsYXRvclN0YXR1cwUAAAALQkxBQ0tMSVNURUQJAAACAAAAAQIAAAApdHJhbnNsYXRvcidzIGFjY291bnQgaGFzIGJlZW4gYmxhY2tsaXN0ZWQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5SXRlbVN0YXR1cwAAAAEFAAAABGl0ZW0CAAAAE2Rpc3B1dGUgaW4gcHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABxnZXRLZXlJdGVtRGlzcHV0ZUluaXRpYXRlZEJ5AAAAAQUAAAAEaXRlbQUAAAAGY2FsbGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAQZ2V0S2V5SXRlbUR1ZUZvcgAAAAEFAAAABGl0ZW0JAABkAAAAAggFAAAACWxhc3RCbG9jawAAAAZoZWlnaHQAAAAAAAAABaAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABRnZXRLZXlJdGVtTGFzdFVwZGF0ZQAAAAEFAAAABGl0ZW0FAAAABmhlaWdodAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkQnkAAAABBQAAAARpdGVtBQAAAAROT05FCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAdZ2V0S2V5SXRlbURpc3B1dGVDbG9zZWRXaW5uZXIAAAABBQAAAARpdGVtBQAAAAROT05FBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAABJkaXNwdXRlQ2xvc2VFc2Nyb3cAAAABAAAABGl0ZW0EAAAABmNhbGxlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZhbW91bnQJAQAAABhnZXRWYWx1ZUl0ZW1QcmljZUFzc2V0SUQAAAABBQAAAARpdGVtBAAAAAdhc3NldElECQEAAAATZ2V0VmFsdWVJdGVtQXNzZXRJRAAAAAEFAAAABGl0ZW0EAAAADWJsb2NrVW5sb2NrZWQJAQAAABJnZXRWYWx1ZUl0ZW1EdWVGb3IAAAABBQAAAARpdGVtBAAAABB0cmFuc2xhdG9yU3RhdHVzCQEAAAAeZ2V0RXh0VmFsdWVJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAgUAAAAWb3JhY2xlV2hpdGVMaXN0QWRkcmVzcwkBAAAAFmdldFZhbHVlSXRlbVRyYW5zbGF0b3IAAAABBQAAAARpdGVtBAAAAAp1c2VyU3RhdHVzCQEAAAAeZ2V0RXh0VmFsdWVJdGVtV2hpdGVMaXN0U3RhdHVzAAAAAgUAAAAWb3JhY2xlV2hpdGVMaXN0QWRkcmVzcwkBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEFAAAABGl0ZW0EAAAACmN1cnJzdGF0dXMJAQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAABmNhbGxlcgMDAwkBAAAAAiE9AAAAAgUAAAAKY3VycnN0YXR1cwUAAAALV0hJVEVMSVNURUQJAQAAAAIhPQAAAAIFAAAABmNhbGxlcgUAAAALREFQUEFERFJFU1MHCQEAAAACIT0AAAACBQAAAApjdXJyc3RhdHVzBQAAAAVBRE1JTgcJAAACAAAAAQkAASwAAAACAgAAAChZb3VyIGFjY291bnQgaXMgbm90IHJlZ2lzdGVyZWQuIHN0YXR1czogBQAAAApjdXJyc3RhdHVzAwkBAAAAAiE9AAAAAgUAAAAKY3VycnN0YXR1cwUAAAAFQURNSU4JAAACAAAAAQIAAAAfanVzdCBhZG1pbnMgY2FuIGNsb3NlIGEgZGlzcHV0ZQMJAQAAAAIhPQAAAAIJAQAAABBnZXRLZXlJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQIAAAATZGlzcHV0ZSBpbiBwcm9ncmVzcwkAAAIAAAABAgAAAB5UaGlzIHdvcmsgaXMgbm90IHVuZGVyIGRpc3B1dGUDCQAAAAAAAAIFAAAACnVzZXJTdGF0dXMFAAAAC0JMQUNLTElTVEVECQAAAgAAAAECAAAAI3VzZXIncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdGVkAwkAAAAAAAACBQAAABB0cmFuc2xhdG9yU3RhdHVzBQAAAAtCTEFDS0xJU1RFRAkAAAIAAAABAgAAACl0cmFuc2xhdG9yJ3MgYWNjb3VudCBoYXMgYmVlbiBibGFja2xpc3RlZAMDCQAAZgAAAAIFAAAABlFVT1JVTQkBAAAAImdldFZhbHVlSXRlbURpc3B1dGVWb3Rlc1RyYW5zbGF0b3IAAAABBQAAAARpdGVtCQAAZgAAAAIFAAAABlFVT1JVTQkBAAAAHGdldFZhbHVlSXRlbURpc3B1dGVWb3Rlc1VzZXIAAAABBQAAAARpdGVtBwkAAAIAAAABAgAAADBWb3RlcyBhcmUgbm90IGVub3VnaCB0byBmYXZvdXIgYW55IGludm9sdmVkIHBhcnQDCQAAZwAAAAIJAQAAACJnZXRWYWx1ZUl0ZW1EaXNwdXRlVm90ZXNUcmFuc2xhdG9yAAAAAQUAAAAEaXRlbQUAAAAGUVVPUlVNCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAAA5kaXNwdXRlIGNsb3NlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkQnkAAAABBQAAAARpdGVtBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlJdGVtRGlzcHV0ZUNsb3NlZFdpbm5lcgAAAAEFAAAABGl0ZW0JAQAAABZnZXRWYWx1ZUl0ZW1UcmFuc2xhdG9yAAAAAQUAAAAEaXRlbQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFGdldEtleUl0ZW1MYXN0VXBkYXRlAAAAAQUAAAAEaXRlbQUAAAAGaGVpZ2h0BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQEAAAAWZ2V0VmFsdWVJdGVtVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0FAAAABmFtb3VudAkAAlkAAAABBQAAAAdhc3NldElEBQAAAANuaWwDCQAAZwAAAAIJAQAAABxnZXRWYWx1ZUl0ZW1EaXNwdXRlVm90ZXNVc2VyAAAAAQUAAAAEaXRlbQUAAAAGUVVPUlVNCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAAA5kaXNwdXRlIGNsb3NlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkQnkAAAABBQAAAARpdGVtBQAAAAZjYWxsZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAB1nZXRLZXlJdGVtRGlzcHV0ZUNsb3NlZFdpbm5lcgAAAAEFAAAABGl0ZW0JAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAUZ2V0S2V5SXRlbUxhc3RVcGRhdGUAAAABBQAAAARpdGVtBQAAAAZoZWlnaHQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtBQAAAAZhbW91bnQJAAJZAAAAAQUAAAAHYXNzZXRJRAUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAABpkaXNwdXRlIHN0aWxsIHVuZGVyIHJldmlldwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAGWdldEtleUl0ZW1EaXNwdXRlQ2xvc2VkQnkAAAABBQAAAARpdGVtBQAAAAROT05FCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAdZ2V0S2V5SXRlbURpc3B1dGVDbG9zZWRXaW5uZXIAAAABBQAAAARpdGVtBQAAAAROT05FCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAUZ2V0S2V5SXRlbUxhc3RVcGRhdGUAAAABBQAAAARpdGVtBQAAAAZoZWlnaHQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZXRLZXlJdGVtRHVlRm9yAAAAAQUAAAAEaXRlbQkAAGQAAAACCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAAAAAAAAAAFoAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAANuaWwAAAABaQEAAAARdm90ZURpc3B1dGVFc2Nyb3cAAAACAAAABGl0ZW0AAAAEdm90ZQQAAAAGY2FsbGVyCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQAAAAAAAAIJAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAAA5kaXNwdXRlIGNsb3NlZAkAAAIAAAABAgAAABZ0aGlzIGRpc3B1dGUgaXMgY2xvc2VkAwMJAQAAAAIhPQAAAAIJAQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAABmNhbGxlcgUAAAAJTU9ERVJBVE9SBgkBAAAAAiE9AAAAAgkBAAAAF2dldFZhbHVlV2hpdGVsaXN0U3RhdHVzAAAAAQUAAAAGY2FsbGVyBQAAAAVBRE1JTgkAAAIAAAABAgAAAEF5b3UgZWl0aGVyIG5lZWQgdG8gYmUgYW4gQURNSU4gb3IgYSBNT0RFUkFUT1IgdG8gdm90ZSBpbiBkaXNwdXRlcwMDCQEAAAACIT0AAAACCQEAAAASZ2V0VmFsdWVJdGVtU3RhdHVzAAAAAQUAAAAEaXRlbQIAAAATZGlzcHV0ZSBpbiBwcm9ncmVzcwYJAQAAAAIhPQAAAAIJAQAAABJnZXRWYWx1ZUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAABpkaXNwdXRlIHN0aWxsIHVuZGVyIHJldmlldwkAAAIAAAABAgAAACJ0cmFuc2xhdGlvbiB3b3JrIG5vdCB1bmRlciBkaXNwdXRlAwkAAGcAAAACCQEAAAAiZ2V0VmFsdWVJdGVtRGlzcHV0ZVZvdGVzVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0FAAAABlFVT1JVTQkAAAIAAAABAgAAAClWb3RlcyBhcmUgZW5vdWdoIHRvIGZhdm91ciB0aGUgVHJhbnNsYXRvcgMJAABnAAAAAgkBAAAAHGdldFZhbHVlSXRlbURpc3B1dGVWb3Rlc1VzZXIAAAABBQAAAARpdGVtBQAAAAZRVU9SVU0JAAACAAAAAQIAAAAjVm90ZXMgYXJlIGVub3VnaCB0byBmYXZvdXIgdGhlIFVzZXIDCQAAAAAAAAIFAAAABHZvdGUJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAaZ2V0S2V5SXRlbURpc3B1dGVWb3Rlc1VzZXIAAAABBQAAAARpdGVtCQAAZAAAAAIJAQAAABxnZXRWYWx1ZUl0ZW1EaXNwdXRlVm90ZXNVc2VyAAAAAQUAAAAEaXRlbQAAAAAAAAAAAQUAAAADbmlsAwkAAAAAAAACBQAAAAR2b3RlCQEAAAAWZ2V0VmFsdWVJdGVtVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAACBnZXRLZXlJdGVtRGlzcHV0ZVZvdGVzVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0JAABkAAAAAgkBAAAAImdldFZhbHVlSXRlbURpc3B1dGVWb3Rlc1RyYW5zbGF0b3IAAAABBQAAAARpdGVtAAAAAAAAAAABBQAAAANuaWwJAAACAAAAAQIAAAASdm90ZSBub3Qgc3VibWl0dGVkAAAAAWkBAAAADndpdGhkcmF3RXNjcm93AAAAAgAAAAdhZGRyZXNzAAAABGl0ZW0EAAAABmNhbGxlcgkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdhc3NldElECQEAAAATZ2V0VmFsdWVJdGVtQXNzZXRJRAAAAAEFAAAABGl0ZW0EAAAABmFtb3VudAkBAAAAGGdldFZhbHVlSXRlbVByaWNlQXNzZXRJRAAAAAEFAAAABGl0ZW0EAAAACmN1cnJzdGF0dXMJAQAAABdnZXRWYWx1ZVdoaXRlbGlzdFN0YXR1cwAAAAEFAAAABmNhbGxlcgQAAAAQdHJhbnNsYXRvclN0YXR1cwkBAAAAHmdldEV4dFZhbHVlSXRlbVdoaXRlTGlzdFN0YXR1cwAAAAIFAAAAFm9yYWNsZVdoaXRlTGlzdEFkZHJlc3MJAQAAABZnZXRWYWx1ZUl0ZW1UcmFuc2xhdG9yAAAAAQUAAAAEaXRlbQQAAAAKdXNlclN0YXR1cwkBAAAAHmdldEV4dFZhbHVlSXRlbVdoaXRlTGlzdFN0YXR1cwAAAAIFAAAAFm9yYWNsZVdoaXRlTGlzdEFkZHJlc3MJAQAAABJnZXRWYWx1ZUl0ZW1BdXRob3IAAAABBQAAAARpdGVtAwMDCQEAAAACIT0AAAACBQAAAApjdXJyc3RhdHVzBQAAAAtXSElURUxJU1RFRAkBAAAAAiE9AAAAAgUAAAAGY2FsbGVyBQAAAAtEQVBQQUREUkVTUwcJAQAAAAIhPQAAAAIFAAAACmN1cnJzdGF0dXMFAAAABUFETUlOBwkAAAIAAAABCQABLAAAAAICAAAAKFlvdXIgYWNjb3VudCBpcyBub3QgcmVnaXN0ZXJlZC4gc3RhdHVzOiAFAAAACmN1cnJzdGF0dXMDCQAAZgAAAAIJAQAAABJnZXRWYWx1ZUl0ZW1EdWVGb3IAAAABBQAAAARpdGVtCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkAAAIAAAABAgAAAB1EZWFkbGluZSBoYXMgbm90IGZpbmlzaGVkIHlldAMJAAAAAAAAAgkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtAgAAABNkaXNwdXRlIGluIHByb2dyZXNzCQAAAgAAAAECAAAAJFRoaXMgd29yayBpcyBjdXJyZW50bHkgdW5kZXIgZGlzcHV0ZQMDCQEAAAACIT0AAAACBQAAAAZjYWxsZXIJAQAAABZnZXRWYWx1ZUl0ZW1UcmFuc2xhdG9yAAAAAQUAAAAEaXRlbQYJAQAAAAIhPQAAAAIFAAAABmNhbGxlcgkBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEFAAAABGl0ZW0JAAACAAAAAQIAAABSanVzdCB3b3JrIGNyZWF0b3Igb3IgdHJhbnNsYXRvciBjYW4gd2l0aGRyYXcgZnVuZHMuIEFkbWlucyBtdXN0IGluaXRpYXRlIGEgZGlzcHV0ZQMDCQAAAAAAAAIFAAAABmNhbGxlcgkBAAAAEmdldFZhbHVlSXRlbUF1dGhvcgAAAAEFAAAABGl0ZW0JAAAAAAAAAgUAAAAKdXNlclN0YXR1cwUAAAALQkxBQ0tMSVNURUQHCQAAAgAAAAECAAAAI3VzZXIncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdGVkAwMJAAAAAAAAAgUAAAAGY2FsbGVyCQEAAAAWZ2V0VmFsdWVJdGVtVHJhbnNsYXRvcgAAAAEFAAAABGl0ZW0JAAAAAAAAAgUAAAAQdHJhbnNsYXRvclN0YXR1cwUAAAALQkxBQ0tMSVNURUQHCQAAAgAAAAECAAAAKXRyYW5zbGF0b3IncyBhY2NvdW50IGhhcyBiZWVuIGJsYWNrbGlzdGVkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEWdldEtleUl0ZW1CYWxhbmNlAAAAAQUAAAAEaXRlbQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdldEtleUl0ZW1TdGF0dXMAAAABBQAAAARpdGVtCQABLAAAAAICAAAAE21vbmV5IHdpdGhkcmF3biBieSAFAAAABmNhbGxlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAFGdldEtleUl0ZW1MYXN0VXBkYXRlAAAAAQUAAAAEaXRlbQUAAAAGaGVpZ2h0BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAZjYWxsZXIFAAAABmFtb3VudAkAAlkAAAABBQAAAAdhc3NldElEBQAAAANuaWwAAAABaQEAAAAKaW52aXRldXNlcgAAAAIAAAAKbmV3YWNjb3VudAAAAARkYXRhBAAAAAZjYWxsZXIJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAJbmV3c3RhdHVzCQEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAApuZXdhY2NvdW50BAAAAApjdXJyc3RhdHVzCQEAAAAXZ2V0VmFsdWVXaGl0ZWxpc3RTdGF0dXMAAAABBQAAAAZjYWxsZXIDAwMJAAAAAAAAAgUA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", "chainId": 84, "height": 693699, "spentComplexity": 0 } View: original | compacted Prev: A2MYQrqD3VbtDCT6Xb8Xty1ma5UtaosPDZiY8d6ve9Vo Next: De8HJjULeeKHweXrK3Vj8rhozJjkiybVrch1u9VzSwXD Diff:
OldNewDifferences
6868 func z (A,B) = ("item_" + toBase58String(sha256(toBytes((A + B)))))
6969
7070
71-func C (D) = ("document_" + D)
71+func C (A,B) = toBase58String(sha256(toBytes((A + B))))
7272
7373
74-func E (D) = r(C(D))
74+func D (E) = ("item_" + E)
7575
7676
77-func F (G) = ("wl_ref_" + G)
77+func F (E) = r(D(E))
7878
7979
80-func H (G) = r(F(G))
80+func G (H) = ("wl_ref_" + H)
8181
8282
83-func I (G) = ("wl_sts_" + G)
83+func I (H) = r(G(H))
8484
8585
86-func J (G) = ("balance_" + G)
86+func J (H) = ("wl_sts_" + H)
8787
8888
89-func K (G) = ("wl_bio_" + G)
89+func K (H) = ("balance_" + H)
9090
9191
92-func L (G) = ("wl_blk_" + G)
92+func L (H) = ("wl_bio_" + H)
9393
9494
95-func M (B,G) = ((("report_" + B) + "_") + G)
95+func M (H) = ("wl_blk_" + H)
9696
9797
98-func N (G) = m(J(G))
98+func N (B,H) = ((("report_" + B) + "_") + H)
9999
100100
101-func O (G) = r(I(G))
101+func O (H) = m(K(H))
102102
103103
104-func P (B) = ("author_" + B)
104+func P (H) = r(J(H))
105105
106106
107-func Q (B) = r(P(B))
107+func Q (B) = ("author_" + B)
108108
109109
110-func R (B) = ("deadlineblock_" + B)
110+func R (B) = r(Q(B))
111111
112112
113-func S (B) = m(R(B))
113+func S (B) = ("deadlineblock_" + B)
114114
115115
116-func T (B) = ("block_" + B)
116+func T (B) = m(S(B))
117117
118118
119-func U (B) = m(T(B))
119+func U (B) = ("block_" + B)
120120
121121
122-func V (B) = ("typeofwork_" + B)
122+func V (B) = m(U(B))
123123
124124
125-func W (B) = m(V(B))
125+func W (B) = ("typeofwork_" + B)
126126
127127
128-func X (B) = ("wordcount_" + B)
128+func X (B) = m(W(B))
129129
130130
131-func Y (B) = m(X(B))
131+func Y (B) = ("wordcount_" + B)
132132
133133
134-func Z (B) = ("priceUSD_" + B)
134+func Z (B) = m(Y(B))
135135
136136
137-func aa (B) = m(Z(B))
137+func aa (B) = ("priceUSD_" + B)
138138
139139
140-func ab (B) = ("pmtassetID_" + B)
140+func ab (B) = m(aa(B))
141141
142142
143-func ac (B) = r(ab(B))
143+func ac (B) = ("pmtassetID_" + B)
144144
145145
146-func ad (B) = ("priceassetID_" + B)
146+func ad (B) = r(ac(B))
147147
148148
149-func ae (B) = m(ad(B))
149+func ae (B) = ("priceassetID_" + B)
150150
151151
152-func af (B) = ("datajson_" + B)
152+func af (B) = m(ae(B))
153153
154154
155-func ag (B) = r(af(B))
155+func ag (B) = ("datajson_" + B)
156156
157157
158-func ah (B) = ("status_" + B)
158+func ah (B) = r(ag(B))
159159
160160
161-func ai (B) = r(ah(B))
161+func ai (B) = ("status_" + B)
162162
163163
164-func aj (B) = ("translator_" + B)
164+func aj (B) = r(ai(B))
165165
166166
167-func ak (B) = r(aj(B))
167+func ak (B) = ("translator_" + B)
168168
169169
170-func al (B) = ("due_for_" + B)
170+func al (B) = r(ak(B))
171171
172172
173-func am (B) = m(al(B))
173+func am (B) = ("due_for_" + B)
174174
175175
176-func an (B) = ("disputedby_" + B)
176+func an (B) = m(am(B))
177177
178178
179-func ao (B) = r(an(B))
179+func ao (B) = ("disputedby_" + B)
180180
181181
182-func ap (B) = ("disputeclosedby_" + B)
182+func ap (B) = r(ao(B))
183183
184184
185-func aq (B) = r(ap(B))
185+func aq (B) = ("disputeclosedby_" + B)
186186
187187
188-func ar (B) = "dispute_winner_"
188+func ar (B) = r(aq(B))
189189
190190
191-func as (B) = r(ar(B))
191+func as (B) = "dispute_winner_"
192192
193193
194-func at (B) = ("last_update_" + B)
194+func at (B) = r(as(B))
195195
196196
197-func au (B) = m(at(B))
197+func au (B) = ("last_update_" + B)
198198
199199
200-func av (B) = ("cnt_translator_" + B)
200+func av (B) = m(au(B))
201201
202202
203-func aw (B) = m(av(B))
203+func aw (B) = ("cnt_translator_" + B)
204204
205205
206-func ax (B) = ("cnt_user_" + B)
206+func ax (B) = m(aw(B))
207207
208208
209-func ay (B) = m(ax(B))
209+func ay (B) = ("cnt_user_" + B)
210210
211211
212-func az (B) = ("balance_" + B)
212+func az (B) = m(ay(B))
213213
214214
215-func aA (B) = m(az(B))
215+func aA (B) = ("balance_" + B)
216216
217217
218-func aB (B) = ("balance_assetID" + B)
218+func aB (B) = m(aA(B))
219219
220220
221-func aC (B) = m(aB(B))
221+func aC (B) = ("balance_assetID" + B)
222222
223223
224-func aD (G) = ("verifier_status_" + G)
224+func aD (B) = m(aC(B))
225225
226226
227-func aE (aF,G) = {
227+func aE (H) = ("verifier_status_" + H)
228+
229+
230+func aF (aG,H) = {
228231 let s = {
229- let p = getString(aF, aD(G))
232+ let p = getString(aG, aE(H))
230233 if ($isInstanceOf(p, "String"))
231234 then {
232235 let q = p
238241 }
239242
240243
241-@Callable(aG)
242-func submitTranslation (D,aH,aI,aJ,aK,aL,aM) = {
243- let A = toBase58String(aG.caller.bytes)
244- let B = z(A, D)
245- let aN = extract(aG.payment)
246- let aO = (lastBlock.height + aJ)
247- let aP = aE(a, A)
248- if (if (if (if ((aP != t))
249- then (aP != d)
244+@Callable(aH)
245+func submitTranslation (E,aI,aJ,aK,aL,aM,aN) = {
246+ let A = toBase58String(aH.caller.bytes)
247+ let B = z(A, E)
248+ let aO = extract(aH.payment)
249+ let aP = (lastBlock.height + aK)
250+ let aQ = aF(a, A)
251+ if (if (if (if ((aQ != t))
252+ then (aQ != d)
250253 else false)
251- then (aP != x)
254+ then (aQ != x)
252255 else false)
253256 then (A != c)
254257 else false)
255- then throw(("Your account is not registered. status: " + aP))
256- else if (if (if (if (if (if (if ((isDefined(aN.assetId) != false))
257- then (aN.assetId != i)
258+ then throw(("Your account is not registered. status: " + aQ))
259+ else if (if (if (if (if (if (if ((isDefined(aO.assetId) != false))
260+ then (aO.assetId != i)
258261 else false)
259- then (aN.assetId != j)
262+ then (aO.assetId != j)
260263 else false)
261- then (aN.assetId != f)
264+ then (aO.assetId != f)
262265 else false)
263- then (aN.assetId != e)
266+ then (aO.assetId != e)
264267 else false)
265- then (aN.assetId != g)
268+ then (aO.assetId != g)
266269 else false)
267- then (aN.assetId != h)
270+ then (aO.assetId != h)
268271 else false)
269272 then throw("can only use WAVES, USD, EUR, BTC, ETH, LTC and KOLIN as payment methods")
270- else if ((aN.amount != k))
271- then throw(((("Please pay exact amount for the listing: " + toString(k)) + ", actual payment is: ") + toString(aN.amount)))
272- else if ((Q(B) != l))
273+ else if ((aO.amount != k))
274+ then throw(((("Please pay exact amount for the listing: " + toString(k)) + ", actual payment is: ") + toString(aO.amount)))
275+ else if ((R(B) != l))
273276 then throw("Item already exist")
274- else if ((1440 > aJ))
277+ else if ((1440 > aK))
275278 then throw("please allow at least 24 h (~1440 blocks) for the translation work to be published properly")
276- else if ((aJ > 44640))
279+ else if ((aK > 44640))
277280 then throw("a translation work can not be posted for longer than 31 days (~44640 blocks) ")
278- else WriteSet([DataEntry(B, C(D)), DataEntry(P(B), A), DataEntry(T(B), height), DataEntry(at(B), height), DataEntry(R(B), aO), DataEntry(V(B), aL), DataEntry(X(B), aK), DataEntry(Z(B), (aL * aK)), DataEntry(ab(B), aI), DataEntry(ad(B), aM), DataEntry(ah(B), "new post"), DataEntry(af(B), aH)])
281+ else WriteSet([DataEntry(B, C(A, E)), DataEntry(Q(B), A), DataEntry(U(B), height), DataEntry(au(B), height), DataEntry(S(B), aP), DataEntry(W(B), aM), DataEntry(Y(B), aL), DataEntry(aa(B), (aM * aL)), DataEntry(ac(B), aJ), DataEntry(ae(B), aN), DataEntry(ai(B), "new post"), DataEntry(ag(B), aI)])
279282 }
280283
281284
282285
283-@Callable(aG)
284-func escrow (B,aQ,aJ) = {
285- let A = toBase58String(aG.caller.bytes)
286- let aN = extract(aG.payment)
287- let D = B
288- let aO = (lastBlock.height + aJ)
289- let aR = ae(B)
290- let aS = ac(B)
291- let aT = aE(a, aQ)
292- let aU = aE(a, A)
293- if (if (if (if ((aU != t))
286+@Callable(aH)
287+func escrow (B,aR,aK) = {
288+ let A = toBase58String(aH.caller.bytes)
289+ let aO = extract(aH.payment)
290+ let E = B
291+ let aP = (lastBlock.height + aK)
292+ let aS = af(B)
293+ let aT = ad(B)
294+ let aU = aF(a, aR)
295+ let aV = aF(a, A)
296+ if (if (if (if ((aV != t))
294297 then (A != c)
295298 else false)
296- then (aU != d)
299+ then (aV != d)
297300 else false)
298- then (aU != x)
301+ then (aV != x)
299302 else false)
300- then throw(("Your account is not registered. status: " + aU))
301- else if (if (if (if ((aT != t))
302- then (aQ != c)
303+ then throw(("Your account is not registered. status: " + aV))
304+ else if (if (if (if ((aU != t))
305+ then (aR != c)
303306 else false)
304- then (aT != d)
307+ then (aU != d)
305308 else false)
306- then (aT != x)
309+ then (aU != x)
307310 else false)
308- then throw(("Your account is not registered. status: " + aU))
309- else if ((E(D) != B))
310- then throw("translation work not found")
311- else if ((S(B) >= lastBlock.height))
311+ then throw(("Your account is not registered. status: " + aV))
312+ else if ((F(E) != B))
313+ then throw(("translation work not found for " + B))
314+ else if ((T(B) >= lastBlock.height))
312315 then throw("deadline for this work has been already achieved")
313- else if ((aR > aN.amount))
316+ else if ((aS > aO.amount))
314317 then throw("price lower than posted for this translation work")
315- else if ((aN.amount > aR))
318+ else if ((aO.amount > aS))
316319 then throw("money payed is higher than this translation work, no need to overspend")
317- else if ((A != Q(B)))
320+ else if ((A != R(B)))
318321 then throw("User is different than translation's post creator")
319- else if ((aU == u))
322+ else if ((aV == u))
320323 then throw("user's account has been blacklisted")
321- else if ((aT == u))
324+ else if ((aU == u))
322325 then throw("translator's account has been blacklisted")
323- else if ((1440 > aJ))
326+ else if ((1440 > aK))
324327 then throw("please allow at least 24 h (~1440 blocks) for the translation work to be published properly")
325- else if ((aJ > 44640))
328+ else if ((aK > 44640))
326329 then throw("a translation work can not be posted for longer than 31 days (~44640 blocks) ")
327- else if ((ai(B) != "new post"))
330+ else if ((aj(B) != "new post"))
328331 then throw("escrow for this work already present")
329- else ScriptResult(WriteSet([DataEntry(ah(B), "work allocated to translator"), DataEntry(aj(B), aQ), DataEntry(al(B), aO), DataEntry(at(B), height), DataEntry(az(B), aN.amount), DataEntry(aB(B), aS)]), TransferSet(nil))
332+ else ScriptResult(WriteSet([DataEntry(ai(B), "work allocated to translator"), DataEntry(ak(B), aR), DataEntry(am(B), aP), DataEntry(au(B), height), DataEntry(aA(B), aO.amount), DataEntry(aC(B), aT)]), TransferSet(nil))
330333 }
331334
332335
333336
334-@Callable(aG)
337+@Callable(aH)
335338 func disputeEscrow (B) = {
336- let aV = toBase58String(aG.caller.bytes)
337- let aW = ae(B)
338- let aI = ac(B)
339- let aX = am(B)
340- let aT = aE(a, ak(B))
341- let aU = aE(a, Q(B))
342- let aP = O(aV)
343- if (if (if ((aP != t))
344- then (aV != c)
339+ let aW = toBase58String(aH.caller.bytes)
340+ let aX = af(B)
341+ let aJ = ad(B)
342+ let aY = an(B)
343+ let aU = aF(a, al(B))
344+ let aV = aF(a, R(B))
345+ let aQ = P(aW)
346+ if (if (if ((aQ != t))
347+ then (aW != c)
345348 else false)
346- then (aP != d)
349+ then (aQ != d)
347350 else false)
348- then throw(("Your account is not registered. status: " + aP))
349- else if (if (if ((aV != ak(B)))
351+ then throw(("Your account is not registered. status: " + aQ))
352+ else if (if (if ((aW != al(B)))
350353 then true
351- else (aV != Q(B)))
354+ else (aW != R(B)))
352355 then true
353- else (aV != d))
356+ else (aW != d))
354357 then throw("just work creator, translator or an admin can initiate a dispute")
355- else if ((ah(B) == "dispute in progress"))
358+ else if ((ai(B) == "dispute in progress"))
356359 then throw("This work is currently under dispute")
357- else if ((aU == u))
360+ else if ((aV == u))
358361 then throw("user's account has been blacklisted")
359- else if ((aT == u))
362+ else if ((aU == u))
360363 then throw("translator's account has been blacklisted")
361- else ScriptResult(WriteSet([DataEntry(ah(B), "dispute in progress"), DataEntry(an(B), aV), DataEntry(al(B), (lastBlock.height + 1440)), DataEntry(at(B), height), DataEntry(ap(B), l), DataEntry(ar(B), l)]), TransferSet(nil))
364+ else ScriptResult(WriteSet([DataEntry(ai(B), "dispute in progress"), DataEntry(ao(B), aW), DataEntry(am(B), (lastBlock.height + 1440)), DataEntry(au(B), height), DataEntry(aq(B), l), DataEntry(as(B), l)]), TransferSet(nil))
362365 }
363366
364367
365368
366-@Callable(aG)
369+@Callable(aH)
367370 func disputeCloseEscrow (B) = {
368- let aV = toBase58String(aG.caller.bytes)
369- let aW = ae(B)
370- let aI = ac(B)
371- let aX = am(B)
372- let aT = aE(a, ak(B))
373- let aU = aE(a, Q(B))
374- let aP = O(aV)
375- if (if (if ((aP != t))
376- then (aV != c)
371+ let aW = toBase58String(aH.caller.bytes)
372+ let aX = af(B)
373+ let aJ = ad(B)
374+ let aY = an(B)
375+ let aU = aF(a, al(B))
376+ let aV = aF(a, R(B))
377+ let aQ = P(aW)
378+ if (if (if ((aQ != t))
379+ then (aW != c)
377380 else false)
378- then (aP != d)
381+ then (aQ != d)
379382 else false)
380- then throw(("Your account is not registered. status: " + aP))
381- else if ((aP != d))
383+ then throw(("Your account is not registered. status: " + aQ))
384+ else if ((aQ != d))
382385 then throw("just admins can close a dispute")
383- else if ((ah(B) != "dispute in progress"))
386+ else if ((ai(B) != "dispute in progress"))
384387 then throw("This work is not under dispute")
385- else if ((aU == u))
388+ else if ((aV == u))
386389 then throw("user's account has been blacklisted")
387- else if ((aT == u))
390+ else if ((aU == u))
388391 then throw("translator's account has been blacklisted")
389- else if (if ((y > aw(B)))
390- then (y > ay(B))
392+ else if (if ((y > ax(B)))
393+ then (y > az(B))
391394 else false)
392395 then throw("Votes are not enough to favour any involved part")
393- else if ((aw(B) >= y))
394- then ScriptResult(WriteSet([DataEntry(ah(B), "dispute closed"), DataEntry(ap(B), aV), DataEntry(ar(B), ak(B)), DataEntry(at(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(ak(B)), aW, fromBase58String(aI))]))
395- else if ((ay(B) >= y))
396- then ScriptResult(WriteSet([DataEntry(ah(B), "dispute closed"), DataEntry(ap(B), aV), DataEntry(ar(B), Q(B)), DataEntry(at(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(Q(B)), aW, fromBase58String(aI))]))
397- else ScriptResult(WriteSet([DataEntry(ah(B), "dispute still under review"), DataEntry(ap(B), l), DataEntry(ar(B), l), DataEntry(at(B), height), DataEntry(al(B), (lastBlock.height + 1440))]), TransferSet(nil))
396+ else if ((ax(B) >= y))
397+ then ScriptResult(WriteSet([DataEntry(ai(B), "dispute closed"), DataEntry(aq(B), aW), DataEntry(as(B), al(B)), DataEntry(au(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(al(B)), aX, fromBase58String(aJ))]))
398+ else if ((az(B) >= y))
399+ then ScriptResult(WriteSet([DataEntry(ai(B), "dispute closed"), DataEntry(aq(B), aW), DataEntry(as(B), R(B)), DataEntry(au(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(R(B)), aX, fromBase58String(aJ))]))
400+ else ScriptResult(WriteSet([DataEntry(ai(B), "dispute still under review"), DataEntry(aq(B), l), DataEntry(as(B), l), DataEntry(au(B), height), DataEntry(am(B), (lastBlock.height + 1440))]), TransferSet(nil))
398401 }
399402
400403
401404
402-@Callable(aG)
403-func voteDisputeEscrow (B,aY) = {
404- let aV = toBase58String(aG.caller.bytes)
405- if ((ai(B) == "dispute closed"))
405+@Callable(aH)
406+func voteDisputeEscrow (B,aZ) = {
407+ let aW = toBase58String(aH.caller.bytes)
408+ if ((aj(B) == "dispute closed"))
406409 then throw("this dispute is closed")
407- else if (if ((O(aV) != x))
410+ else if (if ((P(aW) != x))
408411 then true
409- else (O(aV) != d))
412+ else (P(aW) != d))
410413 then throw("you either need to be an ADMIN or a MODERATOR to vote in disputes")
411- else if (if ((ai(B) != "dispute in progress"))
414+ else if (if ((aj(B) != "dispute in progress"))
412415 then true
413- else (ai(B) != "dispute still under review"))
416+ else (aj(B) != "dispute still under review"))
414417 then throw("translation work not under dispute")
415- else if ((aw(B) >= y))
418+ else if ((ax(B) >= y))
416419 then throw("Votes are enough to favour the Translator")
417- else if ((ay(B) >= y))
420+ else if ((az(B) >= y))
418421 then throw("Votes are enough to favour the User")
419- else if ((aY == Q(B)))
420- then WriteSet([DataEntry(ax(B), (ay(B) + 1))])
421- else if ((aY == ak(B)))
422- then WriteSet([DataEntry(av(B), (aw(B) + 1))])
422+ else if ((aZ == R(B)))
423+ then WriteSet([DataEntry(ay(B), (az(B) + 1))])
424+ else if ((aZ == al(B)))
425+ then WriteSet([DataEntry(aw(B), (ax(B) + 1))])
423426 else throw("vote not submitted")
424427 }
425428
426429
427430
428-@Callable(aG)
429-func withdrawEscrow (aZ,B) = {
430- let aV = toBase58String(aG.caller.bytes)
431- let aI = ac(B)
432- let aW = ae(B)
433- let aP = O(aV)
434- let aT = aE(a, ak(B))
435- let aU = aE(a, Q(B))
436- if (if (if ((aP != t))
437- then (aV != c)
431+@Callable(aH)
432+func withdrawEscrow (ba,B) = {
433+ let aW = toBase58String(aH.caller.bytes)
434+ let aJ = ad(B)
435+ let aX = af(B)
436+ let aQ = P(aW)
437+ let aU = aF(a, al(B))
438+ let aV = aF(a, R(B))
439+ if (if (if ((aQ != t))
440+ then (aW != c)
438441 else false)
439- then (aP != d)
442+ then (aQ != d)
440443 else false)
441- then throw(("Your account is not registered. status: " + aP))
442- else if ((am(B) > lastBlock.height))
444+ then throw(("Your account is not registered. status: " + aQ))
445+ else if ((an(B) > lastBlock.height))
443446 then throw("Deadline has not finished yet")
444- else if ((ah(B) == "dispute in progress"))
447+ else if ((ai(B) == "dispute in progress"))
445448 then throw("This work is currently under dispute")
446- else if (if ((aV != ak(B)))
449+ else if (if ((aW != al(B)))
447450 then true
448- else (aV != Q(B)))
451+ else (aW != R(B)))
449452 then throw("just work creator or translator can withdraw funds. Admins must initiate a dispute")
450- else if (if ((aV == Q(B)))
451- then (aU == u)
453+ else if (if ((aW == R(B)))
454+ then (aV == u)
452455 else false)
453456 then throw("user's account has been blacklisted")
454- else if (if ((aV == ak(B)))
455- then (aT == u)
457+ else if (if ((aW == al(B)))
458+ then (aU == u)
456459 else false)
457460 then throw("translator's account has been blacklisted")
458- else ScriptResult(WriteSet([DataEntry(az(B), 0), DataEntry(ah(B), ("money withdrawn by " + aV)), DataEntry(at(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(aV), aW, fromBase58String(aI))]))
461+ else ScriptResult(WriteSet([DataEntry(aA(B), 0), DataEntry(ai(B), ("money withdrawn by " + aW)), DataEntry(au(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(aW), aX, fromBase58String(aJ))]))
459462 }
460463
461464
462465
463-@Callable(aG)
464-func inviteuser (ba,aH) = {
465- let aV = toBase58String(aG.caller.bytes)
466- let bb = O(ba)
467- let aP = O(aV)
468- if (if (if ((bb == t))
466+@Callable(aH)
467+func inviteuser (bb,aI) = {
468+ let aW = toBase58String(aH.caller.bytes)
469+ let bc = P(bb)
470+ let aQ = P(aW)
471+ if (if (if ((bc == t))
469472 then true
470- else (bb == x))
473+ else (bc == x))
471474 then true
472- else (bb == d))
475+ else (bc == d))
473476 then throw("User has already been registered")
474- else if ((bb == u))
477+ else if ((bc == u))
475478 then throw("The user you want to invite is already Blacklisted")
476- else if (if (if ((aP != t))
477- then (aV != c)
479+ else if (if (if ((aQ != t))
480+ then (aW != c)
478481 else false)
479- then (aP != d)
482+ then (aQ != d)
480483 else false)
481- then throw(("Your account should be whitelisted. status: " + aP))
482- else WriteSet([DataEntry(F(ba), aV), DataEntry(K(ba), aH), DataEntry(I(ba), v)])
484+ then throw(("Your account should be whitelisted. status: " + aQ))
485+ else WriteSet([DataEntry(G(bb), aW), DataEntry(L(bb), aI), DataEntry(J(bb), v)])
483486 }
484487
485488
486489
487-@Callable(aG)
488-func userupdate (aH,bc) = {
489- let G = toBase58String(aG.caller.bytes)
490- if (if (if ((bc == x))
490+@Callable(aH)
491+func userupdate (aI,bd) = {
492+ let H = toBase58String(aH.caller.bytes)
493+ if (if (if ((bd == x))
491494 then true
492- else (bc == d))
493- then (O(G) == t)
495+ else (bd == d))
496+ then (P(H) == t)
494497 else false)
495498 then throw("an ADMIN or MODERATOR account can be created by an ADMIN only")
496- else if (if ((bc == d))
497- then (O(G) != d)
499+ else if (if ((bd == d))
500+ then (P(H) != d)
498501 else false)
499502 then throw("an ADMIN account can be created by another ADMIN only")
500- else WriteSet([DataEntry(K(G), aH), DataEntry(I(G), if ((bc == x))
503+ else WriteSet([DataEntry(L(H), aI), DataEntry(J(H), if ((bd == x))
501504 then x
502- else if ((bc == d))
505+ else if ((bd == d))
503506 then d
504507 else t)])
505508 }
506509
507510
508511
509-@Callable(aG)
510-func signupbylink (bd,aH,bc) = {
511- let G = toBase58String(aG.caller.bytes)
512- let be = O(bd)
513- if ((be != v))
514- then throw(((((("Referral invite needed. Current status: " + be) + ", key:") + I(bd)) + ", account:") + bd))
515- else WriteSet([DataEntry(K(G), aH), DataEntry(L(G), height), DataEntry(I(G), if ((bc == x))
512+@Callable(aH)
513+func signupbylink (be,aI,bd) = {
514+ let H = toBase58String(aH.caller.bytes)
515+ let bf = P(be)
516+ if ((bf != v))
517+ then throw(((((("Referral invite needed. Current status: " + bf) + ", key:") + J(be)) + ", account:") + be))
518+ else WriteSet([DataEntry(L(H), aI), DataEntry(M(H), height), DataEntry(J(H), if ((bd == x))
516519 then x
517- else t), DataEntry(I(bd), w), DataEntry(F(G), H(bd))])
520+ else t), DataEntry(J(be), w), DataEntry(G(H), I(be))])
518521 }
519522
520523
521524
522-@Callable(aG)
523-func signup (aH,bc) = {
524- let G = toBase58String(aG.caller.bytes)
525- let be = O(G)
526- if ((be == l))
527- then throw(((((("Referral invite needed. Current status: " + be) + ", key:") + I(G)) + ", account:") + G))
528- else WriteSet([DataEntry(K(G), aH), DataEntry(L(G), height), DataEntry(I(G), if ((bc == x))
525+@Callable(aH)
526+func signup (aI,bd) = {
527+ let H = toBase58String(aH.caller.bytes)
528+ let bf = P(H)
529+ if ((bf == l))
530+ then throw(((((("Referral invite needed. Current status: " + bf) + ", key:") + J(H)) + ", account:") + H))
531+ else WriteSet([DataEntry(L(H), aI), DataEntry(M(H), height), DataEntry(J(H), if ((bd == x))
529532 then x
530533 else t)])
531534 }
532535
533536
534537
535-@Callable(aG)
536-func reportProject (B,aH) = {
537- let G = toBase58String(aG.caller.bytes)
538- WriteSet([DataEntry(M(B, G), aH)])
538+@Callable(aH)
539+func reportProject (B,aI) = {
540+ let H = toBase58String(aH.caller.bytes)
541+ WriteSet([DataEntry(N(B, H), aI)])
539542 }
540543
541544
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = Address(base58'3MvJMBxdrVAf1nCHiarJcQVnKy91HhBKe6w')
55
66 let b = base58'7A8H5cWfJVSpSrnB71CzWqyNm8KMxZPjwFcj1mDUU8an'
77
88 let c = "3N2FjnCq4gcpewsYQVT4scz9MjTgD6a4kQK"
99
1010 let d = "3NCKoFQxRf7zsDNbivLFw1oJ7y8qJzLmEs4"
1111
1212 let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
1414 let f = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1515
1616 let g = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
1717
1818 let h = base58'FiKspxSpkpzT4pMUA9ccZkbJmVXTdu4JhFDXNNXr5noW'
1919
2020 let i = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'
2121
2222 let j = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'
2323
2424 let k = (1 * 1000000)
2525
2626 let l = "none"
2727
2828 func m (n) = {
2929 let o = {
3030 let p = getInteger(this, n)
3131 if ($isInstanceOf(p, "Int"))
3232 then {
3333 let q = p
3434 q
3535 }
3636 else 0
3737 }
3838 o
3939 }
4040
4141
4242 func r (n) = {
4343 let s = {
4444 let p = getString(this, n)
4545 if ($isInstanceOf(p, "String"))
4646 then {
4747 let q = p
4848 q
4949 }
5050 else l
5151 }
5252 s
5353 }
5454
5555
5656 let t = "WHITELISTED"
5757
5858 let u = "BLACKLISTED"
5959
6060 let v = "INVITED"
6161
6262 let w = "SPEND_INVITE"
6363
6464 let x = "MODERATOR"
6565
6666 let y = 5
6767
6868 func z (A,B) = ("item_" + toBase58String(sha256(toBytes((A + B)))))
6969
7070
71-func C (D) = ("document_" + D)
71+func C (A,B) = toBase58String(sha256(toBytes((A + B))))
7272
7373
74-func E (D) = r(C(D))
74+func D (E) = ("item_" + E)
7575
7676
77-func F (G) = ("wl_ref_" + G)
77+func F (E) = r(D(E))
7878
7979
80-func H (G) = r(F(G))
80+func G (H) = ("wl_ref_" + H)
8181
8282
83-func I (G) = ("wl_sts_" + G)
83+func I (H) = r(G(H))
8484
8585
86-func J (G) = ("balance_" + G)
86+func J (H) = ("wl_sts_" + H)
8787
8888
89-func K (G) = ("wl_bio_" + G)
89+func K (H) = ("balance_" + H)
9090
9191
92-func L (G) = ("wl_blk_" + G)
92+func L (H) = ("wl_bio_" + H)
9393
9494
95-func M (B,G) = ((("report_" + B) + "_") + G)
95+func M (H) = ("wl_blk_" + H)
9696
9797
98-func N (G) = m(J(G))
98+func N (B,H) = ((("report_" + B) + "_") + H)
9999
100100
101-func O (G) = r(I(G))
101+func O (H) = m(K(H))
102102
103103
104-func P (B) = ("author_" + B)
104+func P (H) = r(J(H))
105105
106106
107-func Q (B) = r(P(B))
107+func Q (B) = ("author_" + B)
108108
109109
110-func R (B) = ("deadlineblock_" + B)
110+func R (B) = r(Q(B))
111111
112112
113-func S (B) = m(R(B))
113+func S (B) = ("deadlineblock_" + B)
114114
115115
116-func T (B) = ("block_" + B)
116+func T (B) = m(S(B))
117117
118118
119-func U (B) = m(T(B))
119+func U (B) = ("block_" + B)
120120
121121
122-func V (B) = ("typeofwork_" + B)
122+func V (B) = m(U(B))
123123
124124
125-func W (B) = m(V(B))
125+func W (B) = ("typeofwork_" + B)
126126
127127
128-func X (B) = ("wordcount_" + B)
128+func X (B) = m(W(B))
129129
130130
131-func Y (B) = m(X(B))
131+func Y (B) = ("wordcount_" + B)
132132
133133
134-func Z (B) = ("priceUSD_" + B)
134+func Z (B) = m(Y(B))
135135
136136
137-func aa (B) = m(Z(B))
137+func aa (B) = ("priceUSD_" + B)
138138
139139
140-func ab (B) = ("pmtassetID_" + B)
140+func ab (B) = m(aa(B))
141141
142142
143-func ac (B) = r(ab(B))
143+func ac (B) = ("pmtassetID_" + B)
144144
145145
146-func ad (B) = ("priceassetID_" + B)
146+func ad (B) = r(ac(B))
147147
148148
149-func ae (B) = m(ad(B))
149+func ae (B) = ("priceassetID_" + B)
150150
151151
152-func af (B) = ("datajson_" + B)
152+func af (B) = m(ae(B))
153153
154154
155-func ag (B) = r(af(B))
155+func ag (B) = ("datajson_" + B)
156156
157157
158-func ah (B) = ("status_" + B)
158+func ah (B) = r(ag(B))
159159
160160
161-func ai (B) = r(ah(B))
161+func ai (B) = ("status_" + B)
162162
163163
164-func aj (B) = ("translator_" + B)
164+func aj (B) = r(ai(B))
165165
166166
167-func ak (B) = r(aj(B))
167+func ak (B) = ("translator_" + B)
168168
169169
170-func al (B) = ("due_for_" + B)
170+func al (B) = r(ak(B))
171171
172172
173-func am (B) = m(al(B))
173+func am (B) = ("due_for_" + B)
174174
175175
176-func an (B) = ("disputedby_" + B)
176+func an (B) = m(am(B))
177177
178178
179-func ao (B) = r(an(B))
179+func ao (B) = ("disputedby_" + B)
180180
181181
182-func ap (B) = ("disputeclosedby_" + B)
182+func ap (B) = r(ao(B))
183183
184184
185-func aq (B) = r(ap(B))
185+func aq (B) = ("disputeclosedby_" + B)
186186
187187
188-func ar (B) = "dispute_winner_"
188+func ar (B) = r(aq(B))
189189
190190
191-func as (B) = r(ar(B))
191+func as (B) = "dispute_winner_"
192192
193193
194-func at (B) = ("last_update_" + B)
194+func at (B) = r(as(B))
195195
196196
197-func au (B) = m(at(B))
197+func au (B) = ("last_update_" + B)
198198
199199
200-func av (B) = ("cnt_translator_" + B)
200+func av (B) = m(au(B))
201201
202202
203-func aw (B) = m(av(B))
203+func aw (B) = ("cnt_translator_" + B)
204204
205205
206-func ax (B) = ("cnt_user_" + B)
206+func ax (B) = m(aw(B))
207207
208208
209-func ay (B) = m(ax(B))
209+func ay (B) = ("cnt_user_" + B)
210210
211211
212-func az (B) = ("balance_" + B)
212+func az (B) = m(ay(B))
213213
214214
215-func aA (B) = m(az(B))
215+func aA (B) = ("balance_" + B)
216216
217217
218-func aB (B) = ("balance_assetID" + B)
218+func aB (B) = m(aA(B))
219219
220220
221-func aC (B) = m(aB(B))
221+func aC (B) = ("balance_assetID" + B)
222222
223223
224-func aD (G) = ("verifier_status_" + G)
224+func aD (B) = m(aC(B))
225225
226226
227-func aE (aF,G) = {
227+func aE (H) = ("verifier_status_" + H)
228+
229+
230+func aF (aG,H) = {
228231 let s = {
229- let p = getString(aF, aD(G))
232+ let p = getString(aG, aE(H))
230233 if ($isInstanceOf(p, "String"))
231234 then {
232235 let q = p
233236 q
234237 }
235238 else l
236239 }
237240 s
238241 }
239242
240243
241-@Callable(aG)
242-func submitTranslation (D,aH,aI,aJ,aK,aL,aM) = {
243- let A = toBase58String(aG.caller.bytes)
244- let B = z(A, D)
245- let aN = extract(aG.payment)
246- let aO = (lastBlock.height + aJ)
247- let aP = aE(a, A)
248- if (if (if (if ((aP != t))
249- then (aP != d)
244+@Callable(aH)
245+func submitTranslation (E,aI,aJ,aK,aL,aM,aN) = {
246+ let A = toBase58String(aH.caller.bytes)
247+ let B = z(A, E)
248+ let aO = extract(aH.payment)
249+ let aP = (lastBlock.height + aK)
250+ let aQ = aF(a, A)
251+ if (if (if (if ((aQ != t))
252+ then (aQ != d)
250253 else false)
251- then (aP != x)
254+ then (aQ != x)
252255 else false)
253256 then (A != c)
254257 else false)
255- then throw(("Your account is not registered. status: " + aP))
256- else if (if (if (if (if (if (if ((isDefined(aN.assetId) != false))
257- then (aN.assetId != i)
258+ then throw(("Your account is not registered. status: " + aQ))
259+ else if (if (if (if (if (if (if ((isDefined(aO.assetId) != false))
260+ then (aO.assetId != i)
258261 else false)
259- then (aN.assetId != j)
262+ then (aO.assetId != j)
260263 else false)
261- then (aN.assetId != f)
264+ then (aO.assetId != f)
262265 else false)
263- then (aN.assetId != e)
266+ then (aO.assetId != e)
264267 else false)
265- then (aN.assetId != g)
268+ then (aO.assetId != g)
266269 else false)
267- then (aN.assetId != h)
270+ then (aO.assetId != h)
268271 else false)
269272 then throw("can only use WAVES, USD, EUR, BTC, ETH, LTC and KOLIN as payment methods")
270- else if ((aN.amount != k))
271- then throw(((("Please pay exact amount for the listing: " + toString(k)) + ", actual payment is: ") + toString(aN.amount)))
272- else if ((Q(B) != l))
273+ else if ((aO.amount != k))
274+ then throw(((("Please pay exact amount for the listing: " + toString(k)) + ", actual payment is: ") + toString(aO.amount)))
275+ else if ((R(B) != l))
273276 then throw("Item already exist")
274- else if ((1440 > aJ))
277+ else if ((1440 > aK))
275278 then throw("please allow at least 24 h (~1440 blocks) for the translation work to be published properly")
276- else if ((aJ > 44640))
279+ else if ((aK > 44640))
277280 then throw("a translation work can not be posted for longer than 31 days (~44640 blocks) ")
278- else WriteSet([DataEntry(B, C(D)), DataEntry(P(B), A), DataEntry(T(B), height), DataEntry(at(B), height), DataEntry(R(B), aO), DataEntry(V(B), aL), DataEntry(X(B), aK), DataEntry(Z(B), (aL * aK)), DataEntry(ab(B), aI), DataEntry(ad(B), aM), DataEntry(ah(B), "new post"), DataEntry(af(B), aH)])
281+ else WriteSet([DataEntry(B, C(A, E)), DataEntry(Q(B), A), DataEntry(U(B), height), DataEntry(au(B), height), DataEntry(S(B), aP), DataEntry(W(B), aM), DataEntry(Y(B), aL), DataEntry(aa(B), (aM * aL)), DataEntry(ac(B), aJ), DataEntry(ae(B), aN), DataEntry(ai(B), "new post"), DataEntry(ag(B), aI)])
279282 }
280283
281284
282285
283-@Callable(aG)
284-func escrow (B,aQ,aJ) = {
285- let A = toBase58String(aG.caller.bytes)
286- let aN = extract(aG.payment)
287- let D = B
288- let aO = (lastBlock.height + aJ)
289- let aR = ae(B)
290- let aS = ac(B)
291- let aT = aE(a, aQ)
292- let aU = aE(a, A)
293- if (if (if (if ((aU != t))
286+@Callable(aH)
287+func escrow (B,aR,aK) = {
288+ let A = toBase58String(aH.caller.bytes)
289+ let aO = extract(aH.payment)
290+ let E = B
291+ let aP = (lastBlock.height + aK)
292+ let aS = af(B)
293+ let aT = ad(B)
294+ let aU = aF(a, aR)
295+ let aV = aF(a, A)
296+ if (if (if (if ((aV != t))
294297 then (A != c)
295298 else false)
296- then (aU != d)
299+ then (aV != d)
297300 else false)
298- then (aU != x)
301+ then (aV != x)
299302 else false)
300- then throw(("Your account is not registered. status: " + aU))
301- else if (if (if (if ((aT != t))
302- then (aQ != c)
303+ then throw(("Your account is not registered. status: " + aV))
304+ else if (if (if (if ((aU != t))
305+ then (aR != c)
303306 else false)
304- then (aT != d)
307+ then (aU != d)
305308 else false)
306- then (aT != x)
309+ then (aU != x)
307310 else false)
308- then throw(("Your account is not registered. status: " + aU))
309- else if ((E(D) != B))
310- then throw("translation work not found")
311- else if ((S(B) >= lastBlock.height))
311+ then throw(("Your account is not registered. status: " + aV))
312+ else if ((F(E) != B))
313+ then throw(("translation work not found for " + B))
314+ else if ((T(B) >= lastBlock.height))
312315 then throw("deadline for this work has been already achieved")
313- else if ((aR > aN.amount))
316+ else if ((aS > aO.amount))
314317 then throw("price lower than posted for this translation work")
315- else if ((aN.amount > aR))
318+ else if ((aO.amount > aS))
316319 then throw("money payed is higher than this translation work, no need to overspend")
317- else if ((A != Q(B)))
320+ else if ((A != R(B)))
318321 then throw("User is different than translation's post creator")
319- else if ((aU == u))
322+ else if ((aV == u))
320323 then throw("user's account has been blacklisted")
321- else if ((aT == u))
324+ else if ((aU == u))
322325 then throw("translator's account has been blacklisted")
323- else if ((1440 > aJ))
326+ else if ((1440 > aK))
324327 then throw("please allow at least 24 h (~1440 blocks) for the translation work to be published properly")
325- else if ((aJ > 44640))
328+ else if ((aK > 44640))
326329 then throw("a translation work can not be posted for longer than 31 days (~44640 blocks) ")
327- else if ((ai(B) != "new post"))
330+ else if ((aj(B) != "new post"))
328331 then throw("escrow for this work already present")
329- else ScriptResult(WriteSet([DataEntry(ah(B), "work allocated to translator"), DataEntry(aj(B), aQ), DataEntry(al(B), aO), DataEntry(at(B), height), DataEntry(az(B), aN.amount), DataEntry(aB(B), aS)]), TransferSet(nil))
332+ else ScriptResult(WriteSet([DataEntry(ai(B), "work allocated to translator"), DataEntry(ak(B), aR), DataEntry(am(B), aP), DataEntry(au(B), height), DataEntry(aA(B), aO.amount), DataEntry(aC(B), aT)]), TransferSet(nil))
330333 }
331334
332335
333336
334-@Callable(aG)
337+@Callable(aH)
335338 func disputeEscrow (B) = {
336- let aV = toBase58String(aG.caller.bytes)
337- let aW = ae(B)
338- let aI = ac(B)
339- let aX = am(B)
340- let aT = aE(a, ak(B))
341- let aU = aE(a, Q(B))
342- let aP = O(aV)
343- if (if (if ((aP != t))
344- then (aV != c)
339+ let aW = toBase58String(aH.caller.bytes)
340+ let aX = af(B)
341+ let aJ = ad(B)
342+ let aY = an(B)
343+ let aU = aF(a, al(B))
344+ let aV = aF(a, R(B))
345+ let aQ = P(aW)
346+ if (if (if ((aQ != t))
347+ then (aW != c)
345348 else false)
346- then (aP != d)
349+ then (aQ != d)
347350 else false)
348- then throw(("Your account is not registered. status: " + aP))
349- else if (if (if ((aV != ak(B)))
351+ then throw(("Your account is not registered. status: " + aQ))
352+ else if (if (if ((aW != al(B)))
350353 then true
351- else (aV != Q(B)))
354+ else (aW != R(B)))
352355 then true
353- else (aV != d))
356+ else (aW != d))
354357 then throw("just work creator, translator or an admin can initiate a dispute")
355- else if ((ah(B) == "dispute in progress"))
358+ else if ((ai(B) == "dispute in progress"))
356359 then throw("This work is currently under dispute")
357- else if ((aU == u))
360+ else if ((aV == u))
358361 then throw("user's account has been blacklisted")
359- else if ((aT == u))
362+ else if ((aU == u))
360363 then throw("translator's account has been blacklisted")
361- else ScriptResult(WriteSet([DataEntry(ah(B), "dispute in progress"), DataEntry(an(B), aV), DataEntry(al(B), (lastBlock.height + 1440)), DataEntry(at(B), height), DataEntry(ap(B), l), DataEntry(ar(B), l)]), TransferSet(nil))
364+ else ScriptResult(WriteSet([DataEntry(ai(B), "dispute in progress"), DataEntry(ao(B), aW), DataEntry(am(B), (lastBlock.height + 1440)), DataEntry(au(B), height), DataEntry(aq(B), l), DataEntry(as(B), l)]), TransferSet(nil))
362365 }
363366
364367
365368
366-@Callable(aG)
369+@Callable(aH)
367370 func disputeCloseEscrow (B) = {
368- let aV = toBase58String(aG.caller.bytes)
369- let aW = ae(B)
370- let aI = ac(B)
371- let aX = am(B)
372- let aT = aE(a, ak(B))
373- let aU = aE(a, Q(B))
374- let aP = O(aV)
375- if (if (if ((aP != t))
376- then (aV != c)
371+ let aW = toBase58String(aH.caller.bytes)
372+ let aX = af(B)
373+ let aJ = ad(B)
374+ let aY = an(B)
375+ let aU = aF(a, al(B))
376+ let aV = aF(a, R(B))
377+ let aQ = P(aW)
378+ if (if (if ((aQ != t))
379+ then (aW != c)
377380 else false)
378- then (aP != d)
381+ then (aQ != d)
379382 else false)
380- then throw(("Your account is not registered. status: " + aP))
381- else if ((aP != d))
383+ then throw(("Your account is not registered. status: " + aQ))
384+ else if ((aQ != d))
382385 then throw("just admins can close a dispute")
383- else if ((ah(B) != "dispute in progress"))
386+ else if ((ai(B) != "dispute in progress"))
384387 then throw("This work is not under dispute")
385- else if ((aU == u))
388+ else if ((aV == u))
386389 then throw("user's account has been blacklisted")
387- else if ((aT == u))
390+ else if ((aU == u))
388391 then throw("translator's account has been blacklisted")
389- else if (if ((y > aw(B)))
390- then (y > ay(B))
392+ else if (if ((y > ax(B)))
393+ then (y > az(B))
391394 else false)
392395 then throw("Votes are not enough to favour any involved part")
393- else if ((aw(B) >= y))
394- then ScriptResult(WriteSet([DataEntry(ah(B), "dispute closed"), DataEntry(ap(B), aV), DataEntry(ar(B), ak(B)), DataEntry(at(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(ak(B)), aW, fromBase58String(aI))]))
395- else if ((ay(B) >= y))
396- then ScriptResult(WriteSet([DataEntry(ah(B), "dispute closed"), DataEntry(ap(B), aV), DataEntry(ar(B), Q(B)), DataEntry(at(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(Q(B)), aW, fromBase58String(aI))]))
397- else ScriptResult(WriteSet([DataEntry(ah(B), "dispute still under review"), DataEntry(ap(B), l), DataEntry(ar(B), l), DataEntry(at(B), height), DataEntry(al(B), (lastBlock.height + 1440))]), TransferSet(nil))
396+ else if ((ax(B) >= y))
397+ then ScriptResult(WriteSet([DataEntry(ai(B), "dispute closed"), DataEntry(aq(B), aW), DataEntry(as(B), al(B)), DataEntry(au(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(al(B)), aX, fromBase58String(aJ))]))
398+ else if ((az(B) >= y))
399+ then ScriptResult(WriteSet([DataEntry(ai(B), "dispute closed"), DataEntry(aq(B), aW), DataEntry(as(B), R(B)), DataEntry(au(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(R(B)), aX, fromBase58String(aJ))]))
400+ else ScriptResult(WriteSet([DataEntry(ai(B), "dispute still under review"), DataEntry(aq(B), l), DataEntry(as(B), l), DataEntry(au(B), height), DataEntry(am(B), (lastBlock.height + 1440))]), TransferSet(nil))
398401 }
399402
400403
401404
402-@Callable(aG)
403-func voteDisputeEscrow (B,aY) = {
404- let aV = toBase58String(aG.caller.bytes)
405- if ((ai(B) == "dispute closed"))
405+@Callable(aH)
406+func voteDisputeEscrow (B,aZ) = {
407+ let aW = toBase58String(aH.caller.bytes)
408+ if ((aj(B) == "dispute closed"))
406409 then throw("this dispute is closed")
407- else if (if ((O(aV) != x))
410+ else if (if ((P(aW) != x))
408411 then true
409- else (O(aV) != d))
412+ else (P(aW) != d))
410413 then throw("you either need to be an ADMIN or a MODERATOR to vote in disputes")
411- else if (if ((ai(B) != "dispute in progress"))
414+ else if (if ((aj(B) != "dispute in progress"))
412415 then true
413- else (ai(B) != "dispute still under review"))
416+ else (aj(B) != "dispute still under review"))
414417 then throw("translation work not under dispute")
415- else if ((aw(B) >= y))
418+ else if ((ax(B) >= y))
416419 then throw("Votes are enough to favour the Translator")
417- else if ((ay(B) >= y))
420+ else if ((az(B) >= y))
418421 then throw("Votes are enough to favour the User")
419- else if ((aY == Q(B)))
420- then WriteSet([DataEntry(ax(B), (ay(B) + 1))])
421- else if ((aY == ak(B)))
422- then WriteSet([DataEntry(av(B), (aw(B) + 1))])
422+ else if ((aZ == R(B)))
423+ then WriteSet([DataEntry(ay(B), (az(B) + 1))])
424+ else if ((aZ == al(B)))
425+ then WriteSet([DataEntry(aw(B), (ax(B) + 1))])
423426 else throw("vote not submitted")
424427 }
425428
426429
427430
428-@Callable(aG)
429-func withdrawEscrow (aZ,B) = {
430- let aV = toBase58String(aG.caller.bytes)
431- let aI = ac(B)
432- let aW = ae(B)
433- let aP = O(aV)
434- let aT = aE(a, ak(B))
435- let aU = aE(a, Q(B))
436- if (if (if ((aP != t))
437- then (aV != c)
431+@Callable(aH)
432+func withdrawEscrow (ba,B) = {
433+ let aW = toBase58String(aH.caller.bytes)
434+ let aJ = ad(B)
435+ let aX = af(B)
436+ let aQ = P(aW)
437+ let aU = aF(a, al(B))
438+ let aV = aF(a, R(B))
439+ if (if (if ((aQ != t))
440+ then (aW != c)
438441 else false)
439- then (aP != d)
442+ then (aQ != d)
440443 else false)
441- then throw(("Your account is not registered. status: " + aP))
442- else if ((am(B) > lastBlock.height))
444+ then throw(("Your account is not registered. status: " + aQ))
445+ else if ((an(B) > lastBlock.height))
443446 then throw("Deadline has not finished yet")
444- else if ((ah(B) == "dispute in progress"))
447+ else if ((ai(B) == "dispute in progress"))
445448 then throw("This work is currently under dispute")
446- else if (if ((aV != ak(B)))
449+ else if (if ((aW != al(B)))
447450 then true
448- else (aV != Q(B)))
451+ else (aW != R(B)))
449452 then throw("just work creator or translator can withdraw funds. Admins must initiate a dispute")
450- else if (if ((aV == Q(B)))
451- then (aU == u)
453+ else if (if ((aW == R(B)))
454+ then (aV == u)
452455 else false)
453456 then throw("user's account has been blacklisted")
454- else if (if ((aV == ak(B)))
455- then (aT == u)
457+ else if (if ((aW == al(B)))
458+ then (aU == u)
456459 else false)
457460 then throw("translator's account has been blacklisted")
458- else ScriptResult(WriteSet([DataEntry(az(B), 0), DataEntry(ah(B), ("money withdrawn by " + aV)), DataEntry(at(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(aV), aW, fromBase58String(aI))]))
461+ else ScriptResult(WriteSet([DataEntry(aA(B), 0), DataEntry(ai(B), ("money withdrawn by " + aW)), DataEntry(au(B), height)]), TransferSet([ScriptTransfer(addressFromStringValue(aW), aX, fromBase58String(aJ))]))
459462 }
460463
461464
462465
463-@Callable(aG)
464-func inviteuser (ba,aH) = {
465- let aV = toBase58String(aG.caller.bytes)
466- let bb = O(ba)
467- let aP = O(aV)
468- if (if (if ((bb == t))
466+@Callable(aH)
467+func inviteuser (bb,aI) = {
468+ let aW = toBase58String(aH.caller.bytes)
469+ let bc = P(bb)
470+ let aQ = P(aW)
471+ if (if (if ((bc == t))
469472 then true
470- else (bb == x))
473+ else (bc == x))
471474 then true
472- else (bb == d))
475+ else (bc == d))
473476 then throw("User has already been registered")
474- else if ((bb == u))
477+ else if ((bc == u))
475478 then throw("The user you want to invite is already Blacklisted")
476- else if (if (if ((aP != t))
477- then (aV != c)
479+ else if (if (if ((aQ != t))
480+ then (aW != c)
478481 else false)
479- then (aP != d)
482+ then (aQ != d)
480483 else false)
481- then throw(("Your account should be whitelisted. status: " + aP))
482- else WriteSet([DataEntry(F(ba), aV), DataEntry(K(ba), aH), DataEntry(I(ba), v)])
484+ then throw(("Your account should be whitelisted. status: " + aQ))
485+ else WriteSet([DataEntry(G(bb), aW), DataEntry(L(bb), aI), DataEntry(J(bb), v)])
483486 }
484487
485488
486489
487-@Callable(aG)
488-func userupdate (aH,bc) = {
489- let G = toBase58String(aG.caller.bytes)
490- if (if (if ((bc == x))
490+@Callable(aH)
491+func userupdate (aI,bd) = {
492+ let H = toBase58String(aH.caller.bytes)
493+ if (if (if ((bd == x))
491494 then true
492- else (bc == d))
493- then (O(G) == t)
495+ else (bd == d))
496+ then (P(H) == t)
494497 else false)
495498 then throw("an ADMIN or MODERATOR account can be created by an ADMIN only")
496- else if (if ((bc == d))
497- then (O(G) != d)
499+ else if (if ((bd == d))
500+ then (P(H) != d)
498501 else false)
499502 then throw("an ADMIN account can be created by another ADMIN only")
500- else WriteSet([DataEntry(K(G), aH), DataEntry(I(G), if ((bc == x))
503+ else WriteSet([DataEntry(L(H), aI), DataEntry(J(H), if ((bd == x))
501504 then x
502- else if ((bc == d))
505+ else if ((bd == d))
503506 then d
504507 else t)])
505508 }
506509
507510
508511
509-@Callable(aG)
510-func signupbylink (bd,aH,bc) = {
511- let G = toBase58String(aG.caller.bytes)
512- let be = O(bd)
513- if ((be != v))
514- then throw(((((("Referral invite needed. Current status: " + be) + ", key:") + I(bd)) + ", account:") + bd))
515- else WriteSet([DataEntry(K(G), aH), DataEntry(L(G), height), DataEntry(I(G), if ((bc == x))
512+@Callable(aH)
513+func signupbylink (be,aI,bd) = {
514+ let H = toBase58String(aH.caller.bytes)
515+ let bf = P(be)
516+ if ((bf != v))
517+ then throw(((((("Referral invite needed. Current status: " + bf) + ", key:") + J(be)) + ", account:") + be))
518+ else WriteSet([DataEntry(L(H), aI), DataEntry(M(H), height), DataEntry(J(H), if ((bd == x))
516519 then x
517- else t), DataEntry(I(bd), w), DataEntry(F(G), H(bd))])
520+ else t), DataEntry(J(be), w), DataEntry(G(H), I(be))])
518521 }
519522
520523
521524
522-@Callable(aG)
523-func signup (aH,bc) = {
524- let G = toBase58String(aG.caller.bytes)
525- let be = O(G)
526- if ((be == l))
527- then throw(((((("Referral invite needed. Current status: " + be) + ", key:") + I(G)) + ", account:") + G))
528- else WriteSet([DataEntry(K(G), aH), DataEntry(L(G), height), DataEntry(I(G), if ((bc == x))
525+@Callable(aH)
526+func signup (aI,bd) = {
527+ let H = toBase58String(aH.caller.bytes)
528+ let bf = P(H)
529+ if ((bf == l))
530+ then throw(((((("Referral invite needed. Current status: " + bf) + ", key:") + J(H)) + ", account:") + H))
531+ else WriteSet([DataEntry(L(H), aI), DataEntry(M(H), height), DataEntry(J(H), if ((bd == x))
529532 then x
530533 else t)])
531534 }
532535
533536
534537
535-@Callable(aG)
536-func reportProject (B,aH) = {
537- let G = toBase58String(aG.caller.bytes)
538- WriteSet([DataEntry(M(B, G), aH)])
538+@Callable(aH)
539+func reportProject (B,aI) = {
540+ let H = toBase58String(aH.caller.bytes)
541+ WriteSet([DataEntry(N(B, H), aI)])
539542 }
540543
541544

github/deemru/w8io/169f3d6 
222.81 ms