tx · 2WqmjJ82SYj4UuVv2SVpWHxdqBRpZJYnLdF3We2WaWpB

3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2:  -0.01500000 Waves

2019.10.22 15:23 [731264] smart account 3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2 > SELF 0.00000000 Waves

{ "type": 13, "id": "2WqmjJ82SYj4UuVv2SVpWHxdqBRpZJYnLdF3We2WaWpB", "fee": 1500000, "feeAssetId": null, "timestamp": 1571746929739, "version": 1, "sender": "3N2EM5HFgf6UMBnvcJX3Cegmozwdv1iDeq2", "senderPublicKey": "8y2Uc9uYf5gRD6Dzm1aC73zYe3LZvtVDUVAnAhNdN2mg", "proofs": [ "2Q3EjAPByfGanDHmRnnzG6D1gzWt4fYF8JTtFNW25ZG74QXz6MiTWTLZwvoaX78NqTFCK8pRNbYUcWa8uphefMHW" ], "script": "base64:AAIDAAAAAAAAAEAIARIDCgEIEgMKAQgSBgoEAQEICBIECgIIARIECgIICBIECgIIARIDCgEIEgMKAQgSBAoCCAgSAwoBCBIDCgEIAAAAOAAAAAADZGF5AAAAAAAAAAWgAAAAAAVXQVZFUwUAAAAEdW5pdAAAAAAEd0JUQwEAAAAgbPpq/8XtqowLf7Uqk9KiDC+Cgtt0egSMU/v9Ex9zoP8AAAAABHdFVVIBAAAAIOwWYQRfe5EhQQY7N/Pn19T489PGDqqAl/OQv9D6FbqZAAAAAAR3VVNEAQAAACDdHL0B8M91BTB4B7KotjiY0UXdXB+6M1rjQG/6Zllw/QAAAAAJYXVjdFRva2VuAQAAAAEAAAAAAAlzdGF0ZU9wZW4CAAAABk9wZW5lZAAAAAAOc3RhdGVTdWdnZXN0ZWQCAAAACVN1Z2dlc3RlZAAAAAALc3RhdGVDYW5jZWwCAAAACENhbmNlbGVkAAAAAA9zdGF0ZUluUHJvZ3Jlc3MCAAAACkluUHJvZ3Jlc3MAAAAAEXN0YXRlV2FpdDRDb25maXJtAgAAABNXYWl0Rm9yQ29uZmlybWF0aW9uAAAAAA1zdGF0ZUNvbXBsZXRlAgAAAAlDb21wbGV0ZWQAAAAADHN0YXRlRGlzcHV0ZQIAAAAHRGlzcHV0ZQAAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQCAAAAD0Rpc3B1dGVSZXNvbHZlZAAAAAAJY2F0ZWdvcnkxAgAAABhXZWIgRGVzaWduICYgRGV2ZWxvcG1lbnQAAAAACWNhdGVnb3J5MgIAAAAbV2F2ZXMgUklERSAmIFNtYXJ0IENvbnRyYWN0AAAAAAljYXRlZ29yeTMCAAAACk1vYmlsZSBBcHAAAAAACWNhdGVnb3J5NAIAAAARR3JhcGhpY3MgJiBEZXNpZ24AAAAACWNhdGVnb3J5NQIAAAAVV3JpdGluZyAmIFRyYW5zbGF0aW9uAAAAAAljYXRlZ29yeTYCAAAAEVZpZGVvICYgQW5pbWF0aW9uAAAAAAZjbGllbnQCAAAAAkNMAAAAAApmcmVlbGFuY2VyAgAAAAJGTAAAAAALYW1iYXNzYWRvcjECAAAALEZuZUNKcU01QlAyZUF1eXRlTWl1RUVIWUFMckU0YXhoRWZjcEhWR2JkcjVzAAAAAAthbWJhc3NhZG9yMgIAAAAsNlFBTWRzc2IxR0pqcFFWUVFjbng4ZktVOFdodGNGOVpzUWhpZmRUaEFFSzgAAAAAC2FtYmFzc2Fkb3IzAgAAACwyaXR1d1c3RFNSc0xQM1ZjYm5wcjk4UVVRTUdGUldLbXlZUEZxc1VLUkRvUAAAAAALYW1iYXNzYWRvcjQCAAAALEFOc1BRb2NFRVN5TGIzeVFxazJwd0Nkb0s3UEpReExvWlZwWXZzbTNTeFVHAAAAAAthbWJhc3NhZG9yNQIAAAAsMTNWaXh3UWluMU16WkN5WTY5TlNXTVNCTkVWMjdSemMxNTlvN3VaWFI5VlMBAAAABmdldEludAAAAAEAAAADa2V5BAAAABB2YWx1ZUpvYnNPbkdvaW5nCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQQAAAAHJG1hdGNoMAUAAAAQdmFsdWVKb2JzT25Hb2luZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAAA1jYXRlZ29yeUNoZWNrAAAAAQAAAAhjYXRlZ29yeQMDAwMDAwkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnkxBgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnkyBgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnkzBgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnk0BgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnk1BgkAAAAAAAACBQAAAAhjYXRlZ29yeQUAAAAJY2F0ZWdvcnk2BQAAAAhjYXRlZ29yeQkAAAIAAAABAgAAABNDYXRlZ29yeSBpcyBpbnZhbGlkAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABAAAACnBtdEFzc2V0SWQDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABBQAAAApwbXRBc3NldElkAgAAAAVXQVZFUwMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEd0JUQwIAAAADQlRDAwkAAAAAAAACBQAAAApwbXRBc3NldElkBQAAAAR3RVVSAgAAAANFVVIDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAABHdVU0QCAAAAA1VTRAMJAAAAAAAAAgUAAAAKcG10QXNzZXRJZAUAAAAJYXVjdFRva2VuAgAAAARBVUNUCQAAAgAAAAECAAAAFEFzc2V0SWQgaXMgaW5jb3JyZWN0AQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABAAAAEGF1Y3Rpb25Bc3NldE5hbWUDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAABVdBVkVTBQAAAAVXQVZFUwMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAADQlRDBQAAAAR3QlRDAwkAAAAAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAANFVVIFAAAABHdFVVIDCQAAAAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAAA1VTRAUAAAAEd1VTRAMJAAAAAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAEQVVDVAUAAAAJYXVjdFRva2VuCQAAAgAAAAECAAAAEkluY29ycmVjdCBBc3NldCBJZAEAAAAJdGltZUNoZWNrAAAAAwAAAAtjdXJyZW50VGltZQAAAAlzdGFydFRpbWUAAAAOZXhwaXJhdGlvblRpbWUJAABmAAAAAgkAAGUAAAACBQAAAAtjdXJyZW50VGltZQUAAAAJc3RhcnRUaW1lBQAAAA5leHBpcmF0aW9uVGltZQEAAAAOYmlkQW1vdW50Q2hlY2sAAAACAAAABmFtb3VudAAAAAxhdWN0aW9uUHJpY2UDCQAAZgAAAAIFAAAABmFtb3VudAUAAAAMYXVjdGlvblByaWNlCQAAAgAAAAECAAAAM0JpZCBhbW91bnQgbXVzdCBiZSBsb3dlciBvciBlcXVhbCB0aGFuIGF1Y3Rpb25QcmljZQUAAAAGYW1vdW50AQAAABZpbmNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAACQAAZAAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAQAAABZkZWNyZWFzZUZyZWV6ZWRCYWxhbmNlAAAAAgAAAAxwbXRBc3NldE5hbWUAAAAMYXVjdGlvblByaWNlBAAAAA9rZXlGcmVlemVkRnVuZHMJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAxwbXRBc3NldE5hbWUCAAAACF9GcmVlemVkBAAAABVjdXJyZW50RnJlZXplZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAD2tleUZyZWV6ZWRGdW5kcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAAFhCQAAZQAAAAIFAAAAFWN1cnJlbnRGcmVlemVkQmFsYW5jZQUAAAAMYXVjdGlvblByaWNlAwkAAGcAAAACBQAAAAFhAAAAAAAAAAAABQAAAAFhCQAAAgAAAAECAAAAJkZyZWV6ZWQgYW1vdW50IGNvdWxkbid0IGJlIGxlc3MgdGhhbiAwAQAAABBjbGllbnRSZWdpc3RlcmVkAAAAAQAAAAljYWxsZXJQdWIEAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAljYWxsZXJQdWICAAAAC19GcmVlbGFuY2VyBAAAAAckbWF0Y2gwBQAAABZmcmVlbGFuY2VySXNSZWdpc3RlcmVkAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAACNPbmx5IHJlZ2lzdGVyZWQgdXNlcnMgY2FuIG1ha2UgYmV0cwEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABAAAACWNhbGxlclB1YgQAAAAWZnJlZWxhbmNlcklzUmVnaXN0ZXJlZAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWNhbGxlclB1YgIAAAALX0ZyZWVsYW5jZXIEAAAAByRtYXRjaDAFAAAAFmZyZWVsYW5jZXJJc1JlZ2lzdGVyZWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAAJY2FsbGVyUHViCQAAAgAAAAECAAAAI09ubHkgcmVnaXN0ZXJlZCB1c2VycyBjYW4gbWFrZSBiZXRzAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEAAAAJcG10QW1vdW50AwkAAGYAAAACBQAAAAlwbXRBbW91bnQAAAAAAAAAAAAFAAAACXBtdEFtb3VudAkAAAIAAAABAgAAABxBbW91bnQgbXVzdCBiZSBoaWdoZXIgdGhlbiAwAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVTdGF0ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVN0YXRlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBTdGF0ZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQ2xpZW50UHViCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA5fQXVjdGlvbkNsaWVudAQAAAAHJG1hdGNoMAUAAAAOdmFsdWVDbGllbnRQdWIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlQXVjdGlvblN0YXJ0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fQXVjdGlvblN0YXJ0BAAAAAckbWF0Y2gwBQAAABF2YWx1ZUF1Y3Rpb25TdGFydAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gU3RhcnQgdGltZSB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAFHZhbHVlYXVjdGlvbkR1cmF0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfQXVjdGlvbkR1cmF0aW9uBAAAAAckbWF0Y2gwBQAAABR2YWx1ZWF1Y3Rpb25EdXJhdGlvbgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gZHVyYXRpb24gdGltZSB3YXMgbm90IGZvdW5kAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UEAAAAByRtYXRjaDAFAAAAF3ZhbHVlQmxvY2tzRm9yRXhlY3V0aW9uAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAqQXVjdGlvbiBqb2IgcGVyZm9ybWFuY2UgdGltZSB3YXMgbm90IGZvdW5kAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQAAAAlhdWN0aW9uSWQEAAAADnZhbHVlQXNzZXROYW1lCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAApfQXNzZXROYW1lBAAAAAckbWF0Y2gwBQAAAA52YWx1ZUFzc2V0TmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAIEF1Y3Rpb24gYXNzZXQgbmFtZSB3YXMgbm90IGZvdW5kAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABAAAACWF1Y3Rpb25JZAQAAAAKdmFsdWVQcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBAAAAAckbWF0Y2gwBQAAAAp2YWx1ZVByaWNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAbQXVjdGlvbiBwcmljZSB3YXMgbm90IGZvdW5kAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEAAAAJYXVjdGlvbklkBAAAAAt2YWx1ZUNsaWVudAkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0hpcmVkRnJlZWxhbmNlcgQAAAAHJG1hdGNoMAUAAAALdmFsdWVDbGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABxBdWN0aW9uIENsaWVudCB3YXMgbm90IGZvdW5kAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEXZhbHVlTG93ZXN0QmlkZGVyCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfTG93ZXN0QmlkZGVyUHViBAAAAAckbWF0Y2gwBQAAABF2YWx1ZUxvd2VzdEJpZGRlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhCQAAAgAAAAECAAAAI0F1Y3Rpb24gbG93ZXN0IGJpZGRlciB3YXMgbm90IGZvdW5kAQAAAAZnZXRCaWQAAAACAAAACWF1Y3Rpb25JZAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABR2YWx1ZU5ld0F1Y3Rpb25QcmljZQkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAHJG1hdGNoMAUAAAAUdmFsdWVOZXdBdWN0aW9uUHJpY2UDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAEAAAAVZGVmaW5lTmV3TG93ZXN0QmlkZGVyAAAABAAAAAlhdWN0aW9uSWQAAAAWY3VycmVudExvd2VzdEJpZGRlclB1YgAAAAliaWRBbW91bnQAAAANbmV3RnJlZWxhbmNlcgQAAAAVdmFsdWVDdXJyZW50TG93ZXN0QmlkCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViBAAAABBjdXJyZW50TG93ZXN0QmlkBAAAAAckbWF0Y2gwBQAAABV2YWx1ZUN1cnJlbnRMb3dlc3RCaWQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAACBBdWN0aW9uIGxvd2VzdCBiaWQgd2FzIG5vdCBmb3VuZAMJAABmAAAAAgUAAAAQY3VycmVudExvd2VzdEJpZAUAAAAJYmlkQW1vdW50BQAAAA1uZXdGcmVlbGFuY2VyBQAAABZjdXJyZW50TG93ZXN0QmlkZGVyUHViAQAAABZjaG9vc2VkRnJlZWxhbmNlckNoZWNrAAAAAgAAAAlhdWN0aW9uSWQAAAANZnJlZWxhbmNlclB1YgQAAAANbmV3RnJlZWxhbmNlcgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAVfQmlkXwUAAAANZnJlZWxhbmNlclB1YgQAAAAHJG1hdGNoMAUAAAANbmV3RnJlZWxhbmNlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAA1mcmVlbGFuY2VyUHViCQAAAgAAAAECAAAAHkVycm9yOiBJbmNvcnJlY3QgZnJlZWxhbmNlclB1YgEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgAAAA1leGVjdXRpb25EYXlzAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAHG5ld0F1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAABoAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAADZGF5AwkAAGYAAAACBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABlhdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uBQAAABxuZXdBdWN0aW9uQmxvY2tzRm9yRXhlY3V0aW9uCQAAAgAAAAECAAAAOE5ldyBleGVjdXRpb24gdGltZSBtdXN0IG1vcmUgdGhhbiBjdXJyZW50IGV4ZWN1dGlvbiB0aW1lAQAAAAlnZXRSYXRpbmcAAAABAAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAAt2YWx1ZVJhdGluZwkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nBAAAAAckbWF0Y2gwBQAAAAt2YWx1ZVJhdGluZwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAAAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABAAAACWNhbGxlclB1YgMDAwMDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjEGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjIGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjMGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjQGCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAALYW1iYXNzYWRvcjUFAAAACWNhbGxlclB1YgkAAAIAAAABAgAAAC1Pbmx5IGRlZmluZWQgYW1iYXNzYWRvcnMgY2FuIHZvdGUgaW4gZGlzcHV0ZXMBAAAAE2FtYmFzc2Fkb3JWb3RlQ2hlY2sAAAADAAAACWF1Y3Rpb25JZAAAAA1hbWJhc3NhZG9yUHViAAAABHZvdGUEAAAACGtleVZvdGVyCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAADWFtYmFzc2Fkb3JQdWIEAAAACnZhbHVlVm90ZXIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Vm90ZXIEAAAAD2FtYmFzc2Fkb3JWb3RlZAQAAAAHJG1hdGNoMAUAAAAKdmFsdWVWb3RlcgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBgcDBQAAAA9hbWJhc3NhZG9yVm90ZWQJAAACAAAAAQIAAAAZQW1iYXNzYWRvciB2b3RlZCBhbHJlYWR5IAMDCQAAAAAAAAIFAAAABHZvdGUFAAAABmNsaWVudAYJAAAAAAAAAgUAAAAEdm90ZQUAAAAKZnJlZWxhbmNlcgUAAAAEdm90ZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxWb3RlIGlzIGluY29ycmVjdC4gTXVzdCBiZTogBQAAAAZjbGllbnQCAAAABCBvciAFAAAACmZyZWVsYW5jZXIBAAAADmdldFZvdGVzTnVtYmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAAEHZhbHVlVm90ZXNOdW1iZXIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMEAAAAByRtYXRjaDAFAAAAEHZhbHVlVm90ZXNOdW1iZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQkAAAIAAAABAgAAABlWb3Rlc051bWJlciB3YXMgbm90IGZvdW5kAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAAAAAlhdWN0aW9uSWQAAAAHbmV3Vm90ZQAAAA1hdWN0aW9uQ2xpZW50AAAAEWF1Y3Rpb25GcmVlbGFuY2VyBAAAAA9hbWJhc3NhZG9yMVZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yMQQAAAAPYW1iYXNzYWRvcjJWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjIEAAAAD2FtYmFzc2Fkb3IzVm90ZQkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAxfRGlwdXRlVm90ZV8FAAAAC2FtYmFzc2Fkb3IzBAAAAA9hbWJhc3NhZG9yNFZvdGUJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAAthbWJhc3NhZG9yNAQAAAAPYW1iYXNzYWRvcjVWb3RlCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAALYW1iYXNzYWRvcjUEAAAAAnYxAwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yMVZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjIDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3IyVm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAJ2MwMJAAAAAAAAAgUAAAAPYW1iYXNzYWRvcjNWb3RlBQAAAAZjbGllbnQAAAAAAAAAAAEAAAAAAAAAAAAEAAAAAnY0AwkAAAAAAAACBQAAAA9hbWJhc3NhZG9yNFZvdGUFAAAABmNsaWVudAAAAAAAAAAAAQAAAAAAAAAAAAQAAAACdjUDCQAAAAAAAAIFAAAAD2FtYmFzc2Fkb3I1Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAAtjdXJyZW50Vm90ZQMJAAAAAAAAAgUAAAAHbmV3Vm90ZQUAAAAGY2xpZW50AAAAAAAAAAABAAAAAAAAAAAABAAAAA52b3Rlc0ZvckNsaWVudAkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAAnYxBQAAAAJ2MgUAAAACdjMFAAAAAnY0BQAAAAJ2NQUAAAALY3VycmVudFZvdGUDCQAAZgAAAAIFAAAADnZvdGVzRm9yQ2xpZW50AAAAAAAAAAACBQAAAA1hdWN0aW9uQ2xpZW50BQAAABFhdWN0aW9uRnJlZWxhbmNlcgAAAAsAAAABaQEAAAAQZnJlZWxhbmNlclNpZ25VcAAAAAEAAAAEaW5mbwQAAAANdXNlclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAACAAAAAQIAAAAXVXNlciBhbHJlYWR5IHJlZ2lzdGVyZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAALX0ZyZWVsYW5jZXIFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAQX1BlbmRpbmdFYXJuaW5ncwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fUGFpZEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADl9Ub3RhbEVhcm5pbmdzAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzUGVuZGluZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA5fSm9ic0NvbXBsZXRlZAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAApfSm9ic1RvdGFsAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAAMY2xpZW50U2lnblVwAAAAAQAAAARpbmZvBAAAAA11c2VyUHVibGljS2V5CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAARYWxyZWFkeVJlZ2lzdGVyZWQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAAdfQ2xpZW50AwkBAAAACWlzRGVmaW5lZAAAAAEFAAAAEWFscmVhZHlSZWdpc3RlcmVkCQAAAgAAAAECAAAAF1VzZXIgYWxyZWFkeSByZWdpc3RlcmVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAAB19DbGllbnQFAAAABGluZm8JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANdXNlclB1YmxpY0tleQIAAAAMX0pvYnNDcmVhdGVkAAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADXVzZXJQdWJsaWNLZXkCAAAADF9Kb2JzT25Hb2luZwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA11c2VyUHVibGljS2V5AgAAAA1fSm9iSW5EaXNwdXRlAAAAAAAAAAAABQAAAANuaWwAAAABaQEAAAANY3JlYXRlQXVjdGlvbgAAAAQAAAAQam9iRXhlY3V0aW9uRGF5cwAAABNhdWN0aW9uRHVyYXRpb25EYXlzAAAAC2F1Y3Rpb25JbmZvAAAACGNhdGVnb3J5BAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAlhdWN0aW9uSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAEGNsaWVudFJlZ2lzdGVyZWQAAAABBQAAAAljYWxsZXJQdWIEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlwbXRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50BAAAAAxhdWN0aW9uUHJpY2UJAQAAABdjcmVhdGVBdWN0aW9uUHJpY2VDaGVjawAAAAEFAAAACXBtdEFtb3VudAQAAAAMYXVjdGlvblN0YXJ0BQAAAAZoZWlnaHQEAAAAFWF1Y3Rpb25EdXJhdGlvbkJsb2NrcwkAAGgAAAACBQAAABNhdWN0aW9uRHVyYXRpb25EYXlzBQAAAANkYXkEAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkAAGgAAAACBQAAABBqb2JFeGVjdXRpb25EYXlzBQAAAANkYXkEAAAADHBtdEFzc2V0TmFtZQkBAAAAEkFzc2V0SWRUb0Fzc2V0TmFtZQAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAALam9ic0NyZWF0ZWQJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzQ3JlYXRlZAQAAAAPYXVjdGlvbkNhdGVnb3J5CQEAAAANY2F0ZWdvcnlDaGVjawAAAAEFAAAACGNhdGVnb3J5BAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmluY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAAAxwbXRBc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAJc3RhdGVPcGVuCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0luZm8FAAAAC2F1Y3Rpb25JbmZvCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAOX0F1Y3Rpb25DbGllbnQFAAAADWF1Y3Rpb25DbGllbnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fQXVjdGlvblN0YXJ0BQAAAAxhdWN0aW9uU3RhcnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfQXVjdGlvbkR1cmF0aW9uBQAAABVhdWN0aW9uRHVyYXRpb25CbG9ja3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA9fSm9iUGVyZm9ybWFuY2UFAAAAEmJsb2Nrc0ZvckV4ZWN1dGlvbgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAACl9Bc3NldE5hbWUFAAAADHBtdEFzc2V0TmFtZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9QcmljZQUAAAAMYXVjdGlvblByaWNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAJX0NhdGVnb3J5BQAAAA9hdWN0aW9uQ2F0ZWdvcnkJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAMcG10QXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAMX0pvYnNDcmVhdGVkCQAAZAAAAAIFAAAAC2pvYnNDcmVhdGVkAAAAAAAAAAABBQAAAANuaWwAAAABaQEAAAAHbWFrZUJpZAAAAAIAAAAJYXVjdGlvbklkAAAABmFtb3VudAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblN0YXJ0CQEAAAATZ2V0QXVjdGlvblN0YXJ0VGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAPYXVjdGlvbkR1cmF0aW9uCQEAAAAWZ2V0QXVjdGlvbkR1cmF0aW9uVGltZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldElkNTgJAQAAABJBc3NldE5hbWVUb0Fzc2V0SWQAAAABBQAAABBhdWN0aW9uQXNzZXROYW1lBAAAAA1uZXdGcmVlbGFuY2VyCQEAAAAUZnJlZWxhbmNlclJlZ2lzdGVyZWQAAAABBQAAAAljYWxsZXJQdWIEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UEAAAACWJpZEFtb3VudAkBAAAADmJpZEFtb3VudENoZWNrAAAAAgUAAAAGYW1vdW50BQAAAAxhdWN0aW9uUHJpY2UEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgMFAAAAEWF1Y3Rpb25UaW1laXNPdmVyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAC3N0YXRlQ2FuY2VsCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAANYXVjdGlvbkNsaWVudAkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uTG93ZXN0QmlkCQEAAAAGZ2V0QmlkAAAAAgUAAAAJYXVjdGlvbklkBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyBAAAABBhbW91bnREaWZmZXJlbmNlCQAAZQAAAAIJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAABBhdWN0aW9uTG93ZXN0QmlkBQAAAA5kQXBwQ29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9IaXJlZEZyZWVsYW5jZXIFAAAAE2F1Y3Rpb25Mb3dlc3RCaWRkZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEGFtb3VudERpZmZlcmVuY2UFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABV9CaWRfBQAAAA1uZXdGcmVlbGFuY2VyBQAAAAliaWRBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAQX0xvd2VzdEJpZGRlclB1YgUAAAAJY2FsbGVyUHViBQAAAANuaWwDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAOc3RhdGVTdWdnZXN0ZWQEAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIJAQAAABZnZXRBdWN0aW9uTG93ZXN0QmlkZGVyAAAAAQUAAAAJYXVjdGlvbklkBAAAABJuZXdMb3dlc3RCaWRkZXJQdWIJAQAAABVkZWZpbmVOZXdMb3dlc3RCaWRkZXIAAAAEBQAAAAlhdWN0aW9uSWQFAAAAFmN1cnJlbnRMb3dlc3RCaWRkZXJQdWIFAAAACWJpZEFtb3VudAUAAAANbmV3RnJlZWxhbmNlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAEF9Mb3dlc3RCaWRkZXJQdWIFAAAAEm5ld0xvd2VzdEJpZGRlclB1YgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAFX0JpZF8FAAAADW5ld0ZyZWVsYW5jZXIFAAAACWJpZEFtb3VudAUAAAADbmlsCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABxJbmNvcnJlY3Qgam9iSWQgc3RhdGUuIE5vdzogBQAAAAxhdWN0aW9uU3RhdGUCAAAACywgbXVzdCBiZTogBQAAAAlzdGF0ZU9wZW4CAAAABCBvciAFAAAADnN0YXRlU3VnZ2VzdGVkAAAAAWkBAAAAEGNob29zZUZyZWVsYW5jZXIAAAACAAAACWF1Y3Rpb25JZAAAAA1mcmVlbGFuY2VyUHViBAAAAAljYWxsZXJQdWIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAxhdWN0aW9uU3RhdGUJAQAAAA9nZXRBdWN0aW9uU3RhdGUAAAABBQAAAAlhdWN0aW9uSWQEAAAADWF1Y3Rpb25DbGllbnQJAQAAABNnZXRBdWN0aW9uQ2xpZW50UHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uU3RhcnQJAQAAABNnZXRBdWN0aW9uU3RhcnRUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAA9hdWN0aW9uRHVyYXRpb24JAQAAABZnZXRBdWN0aW9uRHVyYXRpb25UaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXROYW1lCQEAAAATZ2V0QXVjdGlvbkFzc2V0TmFtZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAMYXVjdGlvblByaWNlCQEAAAAPZ2V0QXVjdGlvblByaWNlAAAAAQUAAAAJYXVjdGlvbklkBAAAABBhdWN0aW9uQXNzZXRJZDU4CQEAAAASQXNzZXROYW1lVG9Bc3NldElkAAAAAQUAAAAQYXVjdGlvbkFzc2V0TmFtZQQAAAANbmV3RnJlZWxhbmNlcgkBAAAAFmNob29zZWRGcmVlbGFuY2VyQ2hlY2sAAAACBQAAAAlhdWN0aW9uSWQFAAAADWZyZWVsYW5jZXJQdWIEAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQJAQAAAAZnZXRCaWQAAAACBQAAAAlhdWN0aW9uSWQFAAAADW5ld0ZyZWVsYW5jZXIEAAAAEWF1Y3Rpb25UaW1laXNPdmVyCQEAAAAJdGltZUNoZWNrAAAAAwUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAD2F1Y3Rpb25EdXJhdGlvbgQAAAALam9ic09uR29pbmcJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwQAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwQAAAAXZnJlZWxhbmNlclRvdGFsRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDBQAAABFhdWN0aW9uVGltZWlzT3ZlcgMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4EAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQJAABlAAAAAgUAAAAMYXVjdGlvblByaWNlBQAAAA5kQXBwQ29tbWlzc2lvbgUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBAAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQEAAAAWZ2V0QXVjdGlvbkxvd2VzdEJpZGRlcgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkxvd2VzdEJpZAkBAAAABmdldEJpZAAAAAIFAAAACWF1Y3Rpb25JZAUAAAATYXVjdGlvbkxvd2VzdEJpZGRlcgQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAEGF1Y3Rpb25Mb3dlc3RCaWQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAABNhdWN0aW9uTG93ZXN0QmlkZGVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAABBhdWN0aW9uTG93ZXN0QmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAABBhdWN0aW9uTG93ZXN0QmlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZAAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAABBhdWN0aW9uTG93ZXN0QmlkBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50BQAAABBhbW91bnREaWZmZXJlbmNlBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAXSW5jb3JyZWN0IGF1Y3Rpb24gc3RhdGUDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAACXN0YXRlT3BlbgYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAA5zdGF0ZVN1Z2dlc3RlZAQAAAAQYW1vdW50RGlmZmVyZW5jZQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAAE2ZyZWVsYW5jZXJCaWRBbW91bnQEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAAEGFtb3VudERpZmZlcmVuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA9zdGF0ZUluUHJvZ3Jlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAABBfSGlyZWRGcmVlbGFuY2VyBQAAAA1uZXdGcmVlbGFuY2VyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1ByaWNlBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUCAAAACF9GcmVlemVkBQAAABFuZXdGcmVlemVkQmFsYW5jZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcJAABkAAAAAgUAAAALam9ic09uR29pbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANZnJlZWxhbmNlclB1YgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGQAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWZyZWVsYW5jZXJQdWICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZAAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAABNmcmVlbGFuY2VyQmlkQW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAAA1hdWN0aW9uQ2xpZW50CQAAZAAAAAIFAAAAEGFtb3VudERpZmZlcmVuY2UAAAAAAAAAAAEFAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABAgAAABdJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZQkAAAIAAAABAgAAAC1Pbmx5IGF1Y3Rpb24gY3VzdG9tZXIgY2FuIGNob29zZSBhIGZyZWVsYW5jZXIAAAABaQEAAAAVaW5jcmVhc2VFeGVjdXRpb25UaW1lAAAAAgAAAAlhdWN0aW9uSWQAAAANZXhlY3V0aW9uRGF5cwQAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgkBAAAAHGdldEF1Y3Rpb25Kb2JQZXJmb3JtYW5jZVRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAF25ld0F1Y3Rpb25FeGVjdXRpb25UaW1lCQEAAAAVbmV3RXhlY3V0aW9uVGltZUNoZWNrAAAAAgUAAAANZXhlY3V0aW9uRGF5cwUAAAAZYXVjdGlvbkJsb2Nrc0ZvckV4ZWN1dGlvbgMJAAAAAAAAAgUAAAAGY2FsbGVyBQAAAA1hdWN0aW9uQ2xpZW50AwMDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAAJc3RhdGVPcGVuBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADnN0YXRlU3VnZ2VzdGVkBgkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAAD19Kb2JQZXJmb3JtYW5jZQUAAAAXbmV3QXVjdGlvbkV4ZWN1dGlvblRpbWUFAAAAA25pbAkAAAIAAAABAgAAAA9JbmNvcnJlY3Qgc3RhdGUJAAACAAAAAQIAAAAnT25seSBDbGllbnQgY2FuIGluY3JlYXNlIGV4ZWN1dGlvbiB0aW1lAAAAAWkBAAAADWNhbmNlbEF1Y3Rpb24AAAABAAAACWF1Y3Rpb25JZAQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADmRBcHBDb21taXNzaW9uCQAAaQAAAAIJAABoAAAAAgUAAAAMYXVjdGlvblByaWNlAAAAAAAAAAADAAAAAAAAAABkBAAAABFhbW91bnRXaXRob3V0Q29tbQkAAGUAAAACBQAAAAxhdWN0aW9uUHJpY2UFAAAADmRBcHBDb21taXNzaW9uBAAAABFuZXdGcmVlemVkQmFsYW5jZQkBAAAAFmRlY3JlYXNlRnJlZXplZEJhbGFuY2UAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lBQAAAAxhdWN0aW9uUHJpY2UDCQAAAAAAAAIFAAAACWNhbGxlclB1YgUAAAANYXVjdGlvbkNsaWVudAMJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAAAlzdGF0ZU9wZW4JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAAtzdGF0ZUNhbmNlbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADWF1Y3Rpb25DbGllbnQFAAAAEWFtb3VudFdpdGhvdXRDb21tBQAAABBhdWN0aW9uQXNzZXRJZDU4BQAAAANuaWwJAAACAAAAAQIAAAAuQXVjdGlvbiBjYW4gYmUgY2FuY2VsZWQgb25seSBieSBhdWN0aW9uIG93bmVyLgkAAAIAAAABAgAAAB5Pbmx5IENsaWVudCBjYW4gY2FuY2VsIGF1Y3Rpb24AAAABaQEAAAALb3BlbkRpc3B1dGUAAAABAAAACWF1Y3Rpb25JZAQAAAAGY2FsbGVyCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUDAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwYJAAAAAAAAAgUAAAAMYXVjdGlvblN0YXRlBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQMDCQAAAAAAAAIFAAAABmNhbGxlcgUAAAANYXVjdGlvbkNsaWVudAYJAAAAAAAAAgUAAAAGY2FsbGVyBQAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAMc3RhdGVEaXNwdXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAA5fSm9ic0luRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAAACAAAAAQIAAAArT25seSBDbGllbnQgYW5kIEZyZWVsYW5jZXIgY2FuIG9wZW4gZGlzcHV0ZQkAAAIAAAABAgAAACtJbmNvcnJlY3QgYXVjdGlvbiBzdGF0ZSBmb3IgZGlzcHV0ZSBvcGVuaW5nAAAAAWkBAAAAC3ZvdGVEaXNwdXRlAAAAAgAAAAlhdWN0aW9uSWQAAAAEdm90ZQQAAAAJY2FsbGVyUHViCQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAMYXVjdGlvblN0YXRlCQEAAAAPZ2V0QXVjdGlvblN0YXRlAAAAAQUAAAAJYXVjdGlvbklkBAAAAA1hdWN0aW9uQ2xpZW50CQEAAAATZ2V0QXVjdGlvbkNsaWVudFB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAQYXVjdGlvbkFzc2V0TmFtZQkBAAAAE2dldEF1Y3Rpb25Bc3NldE5hbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25QcmljZQkBAAAAD2dldEF1Y3Rpb25QcmljZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAARYXVjdGlvbkZyZWVsYW5jZXIJAQAAABdnZXRBdWN0aW9uRnJlZWxhbmNlclB1YgAAAAEFAAAACWF1Y3Rpb25JZAQAAAAKY29tbWlzc2lvbgkAAGkAAAACCQAAaAAAAAIFAAAADGF1Y3Rpb25QcmljZQAAAAAAAAAAAwAAAAAAAAAAZAQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAADWFtYmFzc2Fkb3JQdWIJAQAAABJjYWxsZXJJc0FtYmFzc2Fkb3IAAAABBQAAAAljYWxsZXJQdWIEAAAADmFtYmFzc2Fkb3JWb3RlCQEAAAATYW1iYXNzYWRvclZvdGVDaGVjawAAAAMFAAAACWF1Y3Rpb25JZAUAAAANYW1iYXNzYWRvclB1YgUAAAAEdm90ZQQAAAALdm90ZXNOdW1iZXIJAQAAAA5nZXRWb3Rlc051bWJlcgAAAAEFAAAACWF1Y3Rpb25JZAQAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUEAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABdmcmVlbGFuY2VyVG90YWxFYXJuaW5ncwkBAAAABmdldEludAAAAAEJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADl9Ub3RhbEVhcm5pbmdzAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQMJAAAAAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAQEAAAAEGRpc3B1dGVXaW5uZXJQdWIJAQAAABNkZWZpbmVEaXNwdXRlV2lubmVyAAAABAUAAAAJYXVjdGlvbklkBQAAAA5hbWJhc3NhZG9yVm90ZQUAAAANYXVjdGlvbkNsaWVudAUAAAARYXVjdGlvbkZyZWVsYW5jZXIEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQMJAAAAAAAAAgUAAAAQZGlzcHV0ZVdpbm5lclB1YgUAAAANYXVjdGlvbkNsaWVudAQAAAAScGF5bWVudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQUAAAAKY29tbWlzc2lvbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAA1fRGlzcHV0ZVZvdGVzCQAAZAAAAAIFAAAAC3ZvdGVzTnVtYmVyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAABRzdGF0ZURpc3B1dGVSZXNvbHZlZAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAMX0RpcHV0ZVZvdGVfBQAAAA1hbWJhc3NhZG9yUHViBQAAAA5hbWJhc3NhZG9yVm90ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBhdWN0aW9uQXNzZXROYW1lAgAAAAhfRnJlZXplZAUAAAARbmV3RnJlZXplZEJhbGFuY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAAOX0pvYnNJbkRpc3B1dGUJAABlAAAAAgUAAAATY2xpZW50Sm9ic0luRGlzcHV0ZQAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADl9Ub3RhbEVhcm5pbmdzCQAAZQAAAAIFAAAAF2ZyZWVsYW5jZXJUb3RhbEVhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAAEGRpc3B1dGVXaW5uZXJQdWIFAAAAEnBheW1lbnRXaXRob3V0Q29tbQUAAAAQYXVjdGlvbkFzc2V0SWQ1OAUAAAADbmlsBAAAABJwYXltZW50V2l0aG91dENvbW0JAABlAAAAAgUAAAAMYXVjdGlvblByaWNlCQAAaAAAAAIFAAAACmNvbW1pc3Npb24AAAAAAAAAAAIJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAANX0Rpc3B1dGVWb3RlcwkAAGQAAAACBQAAAAt2b3Rlc051bWJlcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAABl9TdGF0ZQUAAAAUc3RhdGVEaXNwdXRlUmVzb2x2ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAANYW1iYXNzYWRvclB1YgUAAAAOYW1iYXNzYWRvclZvdGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlCQAAZQAAAAIFAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAAEF9QZW5kaW5nRWFybmluZ3MJAABlAAAAAgUAAAAZZnJlZWxhbmNlclBlbmRpbmdFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAABBkaXNwdXRlV2lubmVyUHViBQAAABJwYXltZW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMJAABkAAAAAgUAAAALdm90ZXNOdW1iZXIAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADF9EaXB1dGVWb3RlXwUAAAANYW1iYXNzYWRvclB1YgUAAAAOYW1iYXNzYWRvclZvdGUFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAAAxzdGF0ZURpc3B1dGUAAAABaQEAAAAMd29ya0hhbmRPdmVyAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24JAQAAABxnZXRBdWN0aW9uSm9iUGVyZm9ybWFuY2VUaW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAABFhdWN0aW9uRnJlZWxhbmNlcgkBAAAAF2dldEF1Y3Rpb25GcmVlbGFuY2VyUHViAAAAAQUAAAAJYXVjdGlvbklkBAAAAAp0aW1lSXNPdmVyCQAAZgAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAxhdWN0aW9uU3RhcnQFAAAAGWF1Y3Rpb25CbG9ja3NGb3JFeGVjdXRpb24EAAAAE2NsaWVudEpvYnNJbkRpc3B1dGUJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADl9Kb2JzSW5EaXNwdXRlAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAwkAAAAAAAACBQAAAAxhdWN0aW9uU3RhdGUFAAAAD3N0YXRlSW5Qcm9ncmVzcwMFAAAACnRpbWVJc092ZXIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAADHN0YXRlRGlzcHV0ZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAlhdWN0aW9uSWQCAAAADV9EaXNwdXRlVm90ZXMCAAAAATAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAANYXVjdGlvbkNsaWVudAIAAAANX0pvYkluRGlzcHV0ZQkAAGQAAAACBQAAABNjbGllbnRKb2JzSW5EaXNwdXRlAAAAAAAAAAABBQAAAANuaWwJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAJYXVjdGlvbklkAgAAAAZfU3RhdGUFAAAAEXN0YXRlV2FpdDRDb25maXJtBQAAAANuaWwJAAACAAAAAQIAAAAaQXVjdGlvbiBzdGF0ZSBpcyBpbmNvcnJlY3QJAAACAAAAAQIAAAA0T25seSBhIGZyZWVsYW5jZXIgY2FuIGluZGljYXRlIHRoYXQgdGhlIHdvcmsgaXMgZG9uZQAAAAFpAQAAAAphY2NlcHRXb3JrAAAAAQAAAAlhdWN0aW9uSWQEAAAACWNhbGxlclB1YgkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADGF1Y3Rpb25TdGF0ZQkBAAAAD2dldEF1Y3Rpb25TdGF0ZQAAAAEFAAAACWF1Y3Rpb25JZAQAAAANYXVjdGlvbkNsaWVudAkBAAAAE2dldEF1Y3Rpb25DbGllbnRQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAADGF1Y3Rpb25TdGFydAkBAAAAE2dldEF1Y3Rpb25TdGFydFRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAD2F1Y3Rpb25EdXJhdGlvbgkBAAAAFmdldEF1Y3Rpb25EdXJhdGlvblRpbWUAAAABBQAAAAlhdWN0aW9uSWQEAAAAEGF1Y3Rpb25Bc3NldE5hbWUJAQAAABNnZXRBdWN0aW9uQXNzZXROYW1lAAAAAQUAAAAJYXVjdGlvbklkBAAAAAxhdWN0aW9uUHJpY2UJAQAAAA9nZXRBdWN0aW9uUHJpY2UAAAABBQAAAAlhdWN0aW9uSWQEAAAAEWF1Y3Rpb25GcmVlbGFuY2VyCQEAAAAXZ2V0QXVjdGlvbkZyZWVsYW5jZXJQdWIAAAABBQAAAAlhdWN0aW9uSWQEAAAAC2pvYnNPbkdvaW5nCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAAA1hdWN0aW9uQ2xpZW50AgAAAAxfSm9ic09uR29pbmcEAAAAGWZyZWVsYW5jZXJQZW5kaW5nRWFybmluZ3MJAQAAAAZnZXRJbnQAAAABCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAABBfUGVuZGluZ0Vhcm5pbmdzBAAAABZmcmVlbGFuY2VyUGFpZEVhcm5pbmdzCQEAAAAGZ2V0SW50AAAAAQkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAANX1BhaWRFYXJuaW5ncwQAAAAOZEFwcENvbW1pc3Npb24JAABpAAAAAgkAAGgAAAACBQAAAAxhdWN0aW9uUHJpY2UAAAAAAAAAAAMAAAAAAAAAAGQEAAAAEWFtb3VudFdpdGhvdXRDb21tCQAAZQAAAAIFAAAADGF1Y3Rpb25QcmljZQkAAGgAAAACBQAAAA5kQXBwQ29tbWlzc2lvbgAAAAAAAAAAAgQAAAAQYXVjdGlvbkFzc2V0SWQ1OAkBAAAAEkFzc2V0TmFtZVRvQXNzZXRJZAAAAAEFAAAAEGF1Y3Rpb25Bc3NldE5hbWUEAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQEAAAAWZGVjcmVhc2VGcmVlemVkQmFsYW5jZQAAAAIFAAAAEGF1Y3Rpb25Bc3NldE5hbWUFAAAADGF1Y3Rpb25QcmljZQQAAAAQZnJlZWxhbmNlclJhdGluZwkBAAAACWdldFJhdGluZwAAAAEFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAwkAAAAAAAACBQAAAAljYWxsZXJQdWIFAAAADWF1Y3Rpb25DbGllbnQDCQAAAAAAAAIFAAAADGF1Y3Rpb25TdGF0ZQUAAAARc3RhdGVXYWl0NENvbmZpcm0JAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAACWF1Y3Rpb25JZAIAAAAGX1N0YXRlBQAAAA1zdGF0ZUNvbXBsZXRlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAAEWF1Y3Rpb25GcmVlbGFuY2VyAgAAAAdfUmF0aW5nCQAAZAAAAAIFAAAAEGZyZWVsYW5jZXJSYXRpbmcAAAAAAAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAAQYXVjdGlvbkFzc2V0TmFtZQIAAAAIX0ZyZWV6ZWQFAAAAEW5ld0ZyZWV6ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIFAAAADWF1Y3Rpb25DbGllbnQCAAAADF9Kb2JzT25Hb2luZwkAAGUAAAACBQAAAAtqb2JzT25Hb2luZwAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABFhdWN0aW9uRnJlZWxhbmNlcgIAAAAQX1BlbmRpbmdFYXJuaW5ncwkAAGUAAAACBQAAABlmcmVlbGFuY2VyUGVuZGluZ0Vhcm5pbmdzBQAAAAxhdWN0aW9uUHJpY2UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgUAAAARYXVjdGlvbkZyZWVsYW5jZXICAAAADV9QYWlkRWFybmluZ3MJAABkAAAAAgUAAAAWZnJlZWxhbmNlclBhaWRFYXJuaW5ncwUAAAAMYXVjdGlvblByaWNlBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABBQAAABFhdWN0aW9uRnJlZWxhbmNlcgUAAAARYW1vdW50V2l0aG91dENvbW0FAAAAEGF1Y3Rpb25Bc3NldElkNTgFAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAGkluY29ycmVjdCBzdGF0ZS4gTXVzdCBiZTogBQAAABFzdGF0ZVdhaXQ0Q29uZmlybQkAAAIAAAABAgAAACtPbmx5IGF1Y3Rpb24gY3VzdG9tZXIgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADdHR4BQAAAAckbWF0Y2gwBAAAAAlhc3NldE5hbWUJAQAAABJBc3NldElkVG9Bc3NldE5hbWUAAAABCAUAAAADdHR4AAAAB2Fzc2V0SWQEAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAJYXNzZXROYW1lAgAAAAlfUmVzZXJ2ZWQEAAAAD3Jlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMQUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMQUAAAABYQAAAAAAAAAAAAQAAAAQYXZhaWxhYmxlQmFsYW5jZQkAAGUAAAACCQAD6wAAAAIFAAAABHRoaXMIBQAAAAN0dHgAAAAHYXNzZXRJZAUAAAAPcmVzZXJ2ZWRCYWxhbmNlCQAAZwAAAAIFAAAAEGF2YWlsYWJsZUJhbGFuY2UIBQAAAAN0dHgAAAAGYW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAADc3R4BQAAAAckbWF0Y2gwBgcHCV+Agw==", "chainId": 84, "height": 731264, "spentComplexity": 0 } View: original | compacted Prev: 5BUM7Kj8n12HoTQxRt7bxEBBxXHJWEVR3FGk1wuxsu5r Next: GwzisNzvovBpWiYkmGRb9B1f4s6y5Z4DscLeMXZTa3xj Diff:
OldNewDifferences
2929
3030 let n = "DisputeResolved"
3131
32-let o = "CL"
32+let o = "Web Design & Development"
3333
34-let p = "FL"
34+let p = "Waves RIDE & Smart Contract"
3535
36-let q = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
36+let q = "Mobile App"
3737
38-let r = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
38+let r = "Graphics & Design"
3939
40-let s = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
40+let s = "Writing & Translation"
4141
42-let t = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
42+let t = "Video & Animation"
4343
44-let u = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
44+let u = "CL"
4545
46-func v (w) = {
47- let x = getInteger(this, w)
48- let y = x
49- if ($isInstanceOf(y, "Int"))
46+let v = "FL"
47+
48+let w = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
49+
50+let x = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
51+
52+let y = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
53+
54+let z = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
55+
56+let A = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
57+
58+func B (C) = {
59+ let D = getInteger(this, C)
60+ let E = D
61+ if ($isInstanceOf(E, "Int"))
5062 then {
51- let z = y
52- z
63+ let F = E
64+ F
5365 }
5466 else 0
5567 }
5668
5769
58-func A (B) = if (!(isDefined(B)))
70+func G (H) = if (if (if (if (if (if ((H == o))
71+ then true
72+ else (H == p))
73+ then true
74+ else (H == q))
75+ then true
76+ else (H == r))
77+ then true
78+ else (H == s))
79+ then true
80+ else (H == t))
81+ then H
82+ else throw("Category is invalid")
83+
84+
85+func I (J) = if (!(isDefined(J)))
5986 then "WAVES"
60- else if ((B == c))
87+ else if ((J == c))
6188 then "BTC"
62- else if ((B == d))
89+ else if ((J == d))
6390 then "EUR"
64- else if ((B == e))
91+ else if ((J == e))
6592 then "USD"
66- else if ((B == f))
93+ else if ((J == f))
6794 then "AUCT"
6895 else throw("AssetId is incorrect")
6996
7097
71-func C (D) = if ((D == "WAVES"))
98+func K (L) = if ((L == "WAVES"))
7299 then b
73- else if ((D == "BTC"))
100+ else if ((L == "BTC"))
74101 then c
75- else if ((D == "EUR"))
102+ else if ((L == "EUR"))
76103 then d
77- else if ((D == "USD"))
104+ else if ((L == "USD"))
78105 then e
79- else if ((D == "AUCT"))
106+ else if ((L == "AUCT"))
80107 then f
81108 else throw("Incorrect Asset Id")
82109
83110
84-func E (F,G,H) = ((F - G) > H)
111+func M (N,O,P) = ((N - O) > P)
85112
86113
87-func I (J,K) = if ((J > K))
114+func Q (R,S) = if ((R > S))
88115 then throw("Bid amount must be lower or equal than auctionPrice")
89- else J
116+ else R
90117
91118
92-func L (M,K) = {
93- let N = getInteger(this, (M + "_Freezed"))
94- let O = {
95- let y = N
96- if ($isInstanceOf(y, "Int"))
119+func T (U,S) = {
120+ let V = getInteger(this, (U + "_Freezed"))
121+ let W = {
122+ let E = V
123+ if ($isInstanceOf(E, "Int"))
97124 then {
98- let z = y
99- z
125+ let F = E
126+ F
100127 }
101128 else 0
102129 }
103- (O + K)
130+ (W + S)
104131 }
105132
106133
107-func P (M,K) = {
108- let N = getInteger(this, (M + "_Freezed"))
109- let O = {
110- let y = N
111- if ($isInstanceOf(y, "Int"))
134+func X (U,S) = {
135+ let V = getInteger(this, (U + "_Freezed"))
136+ let W = {
137+ let E = V
138+ if ($isInstanceOf(E, "Int"))
112139 then {
113- let z = y
114- z
140+ let F = E
141+ F
115142 }
116143 else 0
117144 }
118- let z = (O - K)
119- if ((z >= 0))
120- then z
145+ let F = (W - S)
146+ if ((F >= 0))
147+ then F
121148 else throw("Freezed amount couldn't be less than 0")
122149 }
123150
124151
125-func Q (R) = {
126- let S = getString(this, (R + "_Freelancer"))
127- let y = S
128- if ($isInstanceOf(y, "String"))
152+func Y (Z) = {
153+ let aa = getString(this, (Z + "_Freelancer"))
154+ let E = aa
155+ if ($isInstanceOf(E, "String"))
129156 then {
130- let z = y
131- R
157+ let F = E
158+ Z
132159 }
133160 else throw("Only registered users can make bets")
134161 }
135162
136163
137-func T (R) = {
138- let S = getString(this, (R + "_Freelancer"))
139- let y = S
140- if ($isInstanceOf(y, "String"))
164+func ab (Z) = {
165+ let aa = getString(this, (Z + "_Freelancer"))
166+ let E = aa
167+ if ($isInstanceOf(E, "String"))
141168 then {
142- let z = y
143- R
169+ let F = E
170+ Z
144171 }
145172 else throw("Only registered users can make bets")
146173 }
147174
148175
149-func U (V) = if ((V > 0))
150- then V
176+func ac (ad) = if ((ad > 0))
177+ then ad
151178 else throw("Amount must be higher then 0")
152179
153180
154-func W (X) = {
155- let Y = getString(this, (X + "_State"))
156- let y = Y
157- if ($isInstanceOf(y, "String"))
181+func ae (af) = {
182+ let ag = getString(this, (af + "_State"))
183+ let E = ag
184+ if ($isInstanceOf(E, "String"))
158185 then {
159- let z = y
160- z
186+ let F = E
187+ F
161188 }
162189 else throw("Auction State was not found")
163190 }
164191
165192
166-func Z (X) = {
167- let aa = getString(this, (X + "_AuctionClient"))
168- let y = aa
169- if ($isInstanceOf(y, "String"))
193+func ah (af) = {
194+ let ai = getString(this, (af + "_AuctionClient"))
195+ let E = ai
196+ if ($isInstanceOf(E, "String"))
170197 then {
171- let z = y
172- z
198+ let F = E
199+ F
173200 }
174201 else throw("Auction Client was not found")
175202 }
176203
177204
178-func ab (X) = {
179- let ac = getInteger(this, (X + "_AuctionStart"))
180- let y = ac
181- if ($isInstanceOf(y, "Int"))
205+func aj (af) = {
206+ let ak = getInteger(this, (af + "_AuctionStart"))
207+ let E = ak
208+ if ($isInstanceOf(E, "Int"))
182209 then {
183- let z = y
184- z
210+ let F = E
211+ F
185212 }
186213 else throw("Auction Start time was not found")
187214 }
188215
189216
190-func ad (X) = {
191- let ae = getInteger(this, (X + "_AuctionDuration"))
192- let y = ae
193- if ($isInstanceOf(y, "Int"))
217+func al (af) = {
218+ let am = getInteger(this, (af + "_AuctionDuration"))
219+ let E = am
220+ if ($isInstanceOf(E, "Int"))
194221 then {
195- let z = y
196- z
222+ let F = E
223+ F
197224 }
198225 else throw("Auction duration time was not found")
199226 }
200227
201228
202-func af (X) = {
203- let ag = getInteger(this, (X + "_JobPerformance"))
204- let y = ag
205- if ($isInstanceOf(y, "Int"))
229+func an (af) = {
230+ let ao = getInteger(this, (af + "_JobPerformance"))
231+ let E = ao
232+ if ($isInstanceOf(E, "Int"))
206233 then {
207- let z = y
208- z
234+ let F = E
235+ F
209236 }
210237 else throw("Auction job performance time was not found")
211238 }
212239
213240
214-func ah (X) = {
215- let ai = getString(this, (X + "_AssetName"))
216- let y = ai
217- if ($isInstanceOf(y, "String"))
241+func ap (af) = {
242+ let aq = getString(this, (af + "_AssetName"))
243+ let E = aq
244+ if ($isInstanceOf(E, "String"))
218245 then {
219- let z = y
220- z
246+ let F = E
247+ F
221248 }
222249 else throw("Auction asset name was not found")
223250 }
224251
225252
226-func aj (X) = {
227- let ak = getInteger(this, (X + "_Price"))
228- let y = ak
229- if ($isInstanceOf(y, "Int"))
253+func ar (af) = {
254+ let as = getInteger(this, (af + "_Price"))
255+ let E = as
256+ if ($isInstanceOf(E, "Int"))
230257 then {
231- let z = y
232- z
258+ let F = E
259+ F
233260 }
234261 else throw("Auction price was not found")
235262 }
236263
237264
238-func al (X) = {
239- let am = getString(this, (X + "_HiredFreelancer"))
240- let y = am
241- if ($isInstanceOf(y, "String"))
265+func at (af) = {
266+ let au = getString(this, (af + "_HiredFreelancer"))
267+ let E = au
268+ if ($isInstanceOf(E, "String"))
242269 then {
243- let z = y
244- z
270+ let F = E
271+ F
245272 }
246273 else throw("Auction Client was not found")
247274 }
248275
249276
250-func an (X) = {
251- let ao = getString(this, (X + "_LowestBidderPub"))
252- let y = ao
253- if ($isInstanceOf(y, "String"))
277+func av (af) = {
278+ let aw = getString(this, (af + "_LowestBidderPub"))
279+ let E = aw
280+ if ($isInstanceOf(E, "String"))
254281 then {
255- let z = y
256- z
282+ let F = E
283+ F
257284 }
258285 else throw("Auction lowest bidder was not found")
259286 }
260287
261288
262-func ap (X,aq) = {
263- let ar = getInteger(this, ((X + "_Bid_") + aq))
264- let y = ar
265- if ($isInstanceOf(y, "Int"))
289+func ax (af,ay) = {
290+ let az = getInteger(this, ((af + "_Bid_") + ay))
291+ let E = az
292+ if ($isInstanceOf(E, "Int"))
266293 then {
267- let z = y
268- z
294+ let F = E
295+ F
269296 }
270297 else throw("Auction lowest bid was not found")
271298 }
272299
273300
274-func as (X,at,au,av) = {
275- let aw = getInteger(this, ((X + "_Bid_") + at))
276- let ax = {
277- let y = aw
278- if ($isInstanceOf(y, "Int"))
301+func aA (af,aB,aC,aD) = {
302+ let aE = getInteger(this, ((af + "_Bid_") + aB))
303+ let aF = {
304+ let E = aE
305+ if ($isInstanceOf(E, "Int"))
279306 then {
280- let z = y
281- z
307+ let F = E
308+ F
282309 }
283310 else throw("Auction lowest bid was not found")
284311 }
285- if ((ax > au))
286- then av
287- else at
312+ if ((aF > aC))
313+ then aD
314+ else aB
288315 }
289316
290317
291-func ay (X,az) = {
292- let av = getInteger(this, ((X + "_Bid_") + az))
293- let y = av
294- if ($isInstanceOf(y, "Int"))
318+func aG (af,aH) = {
319+ let aD = getInteger(this, ((af + "_Bid_") + aH))
320+ let E = aD
321+ if ($isInstanceOf(E, "Int"))
295322 then {
296- let z = y
297- az
323+ let F = E
324+ aH
298325 }
299326 else throw("Error: Incorrect freelancerPub")
300327 }
301328
302329
303-func aA (aB,aC) = {
304- let aD = (aB * a)
305- if ((aD > aC))
306- then aD
330+func aI (aJ,aK) = {
331+ let aL = (aJ * a)
332+ if ((aL > aK))
333+ then aL
307334 else throw("New execution time must more than current execution time")
308335 }
309336
310337
311-func aE (aF) = {
312- let aG = getInteger(this, (aF + "_Rating"))
313- let y = aG
314- if ($isInstanceOf(y, "Int"))
338+func aM (aN) = {
339+ let aO = getInteger(this, (aN + "_Rating"))
340+ let E = aO
341+ if ($isInstanceOf(E, "Int"))
315342 then {
316- let z = y
317- z
343+ let F = E
344+ F
318345 }
319346 else 0
320347 }
321348
322349
323-func aH (R) = if (if (if (if (if ((R == q))
350+func aP (Z) = if (if (if (if (if ((Z == w))
324351 then true
325- else (R == r))
352+ else (Z == x))
326353 then true
327- else (R == s))
354+ else (Z == y))
328355 then true
329- else (R == t))
356+ else (Z == z))
330357 then true
331- else (R == u))
332- then R
358+ else (Z == A))
359+ then Z
333360 else throw("Only defined ambassadors can vote in disputes")
334361
335362
336-func aI (X,aJ,aK) = {
337- let aL = ((X + "_DiputeVote_") + aJ)
338- let aM = getString(this, aL)
339- let aN = {
340- let y = aM
341- if ($isInstanceOf(y, "String"))
363+func aQ (af,aR,aS) = {
364+ let aT = ((af + "_DiputeVote_") + aR)
365+ let aU = getString(this, aT)
366+ let aV = {
367+ let E = aU
368+ if ($isInstanceOf(E, "String"))
342369 then {
343- let z = y
370+ let F = E
344371 true
345372 }
346373 else false
347374 }
348- if (aN)
375+ if (aV)
349376 then throw("Ambassador voted already ")
350- else if (if ((aK == o))
377+ else if (if ((aS == u))
351378 then true
352- else (aK == p))
353- then aK
354- else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
379+ else (aS == v))
380+ then aS
381+ else throw(((("Vote is incorrect. Must be: " + u) + " or ") + v))
355382 }
356383
357384
358-func aO (X) = {
359- let aP = getInteger(this, (X + "_DisputeVotes"))
360- let y = aP
361- if ($isInstanceOf(y, "Int"))
385+func aW (af) = {
386+ let aX = getInteger(this, (af + "_DisputeVotes"))
387+ let E = aX
388+ if ($isInstanceOf(E, "Int"))
362389 then {
363- let z = y
364- z
390+ let F = E
391+ F
365392 }
366393 else throw("VotesNumber was not found")
367394 }
368395
369396
370-func aQ (X,aR,aS,aF) = {
371- let aT = getString(this, ((X + "_DiputeVote_") + q))
372- let aU = getString(this, ((X + "_DiputeVote_") + r))
373- let aV = getString(this, ((X + "_DiputeVote_") + s))
374- let aW = getString(this, ((X + "_DiputeVote_") + t))
375- let aX = getString(this, ((X + "_DiputeVote_") + u))
376- let aY = if ((aT == o))
397+func aY (af,aZ,ba,aN) = {
398+ let bb = getString(this, ((af + "_DiputeVote_") + w))
399+ let bc = getString(this, ((af + "_DiputeVote_") + x))
400+ let bd = getString(this, ((af + "_DiputeVote_") + y))
401+ let be = getString(this, ((af + "_DiputeVote_") + z))
402+ let bf = getString(this, ((af + "_DiputeVote_") + A))
403+ let bg = if ((bb == u))
377404 then 1
378405 else 0
379- let aZ = if ((aU == o))
406+ let bh = if ((bc == u))
380407 then 1
381408 else 0
382- let ba = if ((aV == o))
409+ let bi = if ((bd == u))
383410 then 1
384411 else 0
385- let bb = if ((aW == o))
412+ let bj = if ((be == u))
386413 then 1
387414 else 0
388- let bc = if ((aX == o))
415+ let bk = if ((bf == u))
389416 then 1
390417 else 0
391- let bd = if ((aR == o))
418+ let bl = if ((aZ == u))
392419 then 1
393420 else 0
394- let be = (((((aY + aZ) + ba) + bb) + bc) + bd)
395- if ((be > 2))
396- then aS
397- else aF
421+ let bm = (((((bg + bh) + bi) + bj) + bk) + bl)
422+ if ((bm > 2))
423+ then ba
424+ else aN
398425 }
399426
400427
401-@Callable(bf)
402-func freelancerSignUp (bg) = {
403- let bh = toBase58String(bf.callerPublicKey)
404- let bi = getString(this, (bh + "_Freelancer"))
405- if (isDefined(bi))
428+@Callable(bn)
429+func freelancerSignUp (bo) = {
430+ let bp = toBase58String(bn.callerPublicKey)
431+ let bq = getString(this, (bp + "_Freelancer"))
432+ if (isDefined(bq))
406433 then throw("User already registered")
407- else WriteSet([DataEntry((bh + "_Freelancer"), bg), DataEntry((bh + "_PendingEarnings"), 0), DataEntry((bh + "_PaidEarnings"), 0), DataEntry((bh + "_TotalEarnings"), 0), DataEntry((bh + "_JobsPending"), 0), DataEntry((bh + "_JobsCompleted"), 0), DataEntry((bh + "_JobsTotal"), 0)])
434+ else WriteSet([DataEntry((bp + "_Freelancer"), bo), DataEntry((bp + "_PendingEarnings"), 0), DataEntry((bp + "_PaidEarnings"), 0), DataEntry((bp + "_TotalEarnings"), 0), DataEntry((bp + "_JobsPending"), 0), DataEntry((bp + "_JobsCompleted"), 0), DataEntry((bp + "_JobsTotal"), 0)])
408435 }
409436
410437
411438
412-@Callable(bf)
413-func clientSignUp (bg) = {
414- let bh = toBase58String(bf.callerPublicKey)
415- let bi = getString(this, (bh + "_Client"))
416- if (isDefined(bi))
439+@Callable(bn)
440+func clientSignUp (bo) = {
441+ let bp = toBase58String(bn.callerPublicKey)
442+ let bq = getString(this, (bp + "_Client"))
443+ if (isDefined(bq))
417444 then throw("User already registered")
418- else WriteSet([DataEntry((bh + "_Client"), bg), DataEntry((bh + "_JobsCreated"), 0), DataEntry((bh + "_JobsOnGoing"), 0), DataEntry((bh + "_JobInDispute"), 0)])
445+ else WriteSet([DataEntry((bp + "_Client"), bo), DataEntry((bp + "_JobsCreated"), 0), DataEntry((bp + "_JobsOnGoing"), 0), DataEntry((bp + "_JobInDispute"), 0)])
419446 }
420447
421448
422449
423-@Callable(bf)
424-func createAuction (bj,bk,bl) = {
425- let R = toBase58String(bf.callerPublicKey)
426- let X = toBase58String(bf.transactionId)
427- let aS = Q(R)
428- let bm = extract(bf.payment)
429- let V = bm.amount
430- let K = U(V)
431- let bn = height
432- let bo = (bk * a)
433- let bp = (bj * a)
434- let M = A(bm.assetId)
435- let bq = v((aS + "_JobsCreated"))
436- let br = L(M, K)
437- WriteSet([DataEntry((X + "_State"), g), DataEntry((X + "_Info"), bl), DataEntry((X + "_AuctionClient"), aS), DataEntry((X + "_AuctionStart"), bn), DataEntry((X + "_AuctionDuration"), bo), DataEntry((X + "_JobPerformance"), bp), DataEntry((X + "_AssetName"), M), DataEntry((X + "_Price"), K), DataEntry((M + "_Freezed"), br), DataEntry((aS + "_JobsCreated"), (bq + 1))])
450+@Callable(bn)
451+func createAuction (br,bs,bt,H) = {
452+ let Z = toBase58String(bn.callerPublicKey)
453+ let af = toBase58String(bn.transactionId)
454+ let ba = Y(Z)
455+ let bu = extract(bn.payment)
456+ let ad = bu.amount
457+ let S = ac(ad)
458+ let bv = height
459+ let bw = (bs * a)
460+ let bx = (br * a)
461+ let U = I(bu.assetId)
462+ let by = B((ba + "_JobsCreated"))
463+ let bz = G(H)
464+ let bA = T(U, S)
465+ WriteSet([DataEntry((af + "_State"), g), DataEntry((af + "_Info"), bt), DataEntry((af + "_AuctionClient"), ba), DataEntry((af + "_AuctionStart"), bv), DataEntry((af + "_AuctionDuration"), bw), DataEntry((af + "_JobPerformance"), bx), DataEntry((af + "_AssetName"), U), DataEntry((af + "_Price"), S), DataEntry((af + "_Category"), bz), DataEntry((U + "_Freezed"), bA), DataEntry((ba + "_JobsCreated"), (by + 1))])
438466 }
439467
440468
441469
442-@Callable(bf)
443-func makeBid (X,J) = {
444- let R = toBase58String(bf.callerPublicKey)
445- let bs = W(X)
446- let aS = Z(X)
447- let bn = ab(X)
448- let bt = ad(X)
449- let aC = af(X)
450- let D = ah(X)
451- let K = aj(X)
452- let bu = C(D)
453- let av = T(R)
454- let bv = ((K * 3) / 100)
455- let br = P(D, K)
456- let au = I(J, K)
457- let bw = E(height, bn, bt)
458- if (bw)
459- then if ((bs == g))
460- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
461- else if ((bs == h))
470+@Callable(bn)
471+func makeBid (af,R) = {
472+ let Z = toBase58String(bn.callerPublicKey)
473+ let bB = ae(af)
474+ let ba = ah(af)
475+ let bv = aj(af)
476+ let bC = al(af)
477+ let aK = an(af)
478+ let L = ap(af)
479+ let S = ar(af)
480+ let bD = K(L)
481+ let aD = ab(Z)
482+ let bE = ((S * 3) / 100)
483+ let bA = X(L, S)
484+ let aC = Q(R, S)
485+ let bF = M(height, bv, bC)
486+ if (bF)
487+ then if ((bB == g))
488+ then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
489+ else if ((bB == h))
462490 then {
463- let aq = an(X)
464- let bx = ap(X, aq)
465- let by = ((K - bx) - bv)
466- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
491+ let ay = av(af)
492+ let bG = ax(af, ay)
493+ let bH = ((S - bG) - bE)
494+ ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
467495 }
468496 else throw("Incorrect auction state")
469- else if ((bs == g))
470- then WriteSet([DataEntry(((X + "_Bid_") + av), au), DataEntry((X + "_State"), h), DataEntry((X + "_LowestBidderPub"), R)])
471- else if ((bs == h))
497+ else if ((bB == g))
498+ then WriteSet([DataEntry(((af + "_Bid_") + aD), aC), DataEntry((af + "_State"), h), DataEntry((af + "_LowestBidderPub"), Z)])
499+ else if ((bB == h))
472500 then {
473- let at = an(X)
474- let bz = as(X, at, au, av)
475- WriteSet([DataEntry((X + "_LowestBidderPub"), bz), DataEntry(((X + "_Bid_") + av), au)])
501+ let aB = av(af)
502+ let bI = aA(af, aB, aC, aD)
503+ WriteSet([DataEntry((af + "_LowestBidderPub"), bI), DataEntry(((af + "_Bid_") + aD), aC)])
476504 }
477- else throw(((((("Incorrect jobId state. Now: " + bs) + ", must be: ") + g) + " or ") + h))
505+ else throw(((((("Incorrect jobId state. Now: " + bB) + ", must be: ") + g) + " or ") + h))
478506 }
479507
480508
481509
482-@Callable(bf)
483-func chooseFreelancer (X,az) = {
484- let R = toBase58String(bf.callerPublicKey)
485- let bs = W(X)
486- let aS = Z(X)
487- let bn = ab(X)
488- let bt = ad(X)
489- let D = ah(X)
490- let K = aj(X)
491- let bu = C(D)
492- let av = ay(X, az)
493- let bA = ap(X, av)
494- let bw = E(height, bn, bt)
495- let bB = v((aS + "_JobsOnGoing"))
496- let bC = v((az + "_PendingEarnings"))
497- let bD = v((az + "_TotalEarnings"))
498- if ((R == aS))
499- then if (bw)
500- then if ((bs == g))
510+@Callable(bn)
511+func chooseFreelancer (af,aH) = {
512+ let Z = toBase58String(bn.callerPublicKey)
513+ let bB = ae(af)
514+ let ba = ah(af)
515+ let bv = aj(af)
516+ let bC = al(af)
517+ let L = ap(af)
518+ let S = ar(af)
519+ let bD = K(L)
520+ let aD = aG(af, aH)
521+ let bJ = ax(af, aD)
522+ let bF = M(height, bv, bC)
523+ let bK = B((ba + "_JobsOnGoing"))
524+ let bL = B((aH + "_PendingEarnings"))
525+ let bM = B((aH + "_TotalEarnings"))
526+ if ((Z == ba))
527+ then if (bF)
528+ then if ((bB == g))
501529 then {
502- let br = P(D, K)
503- let bv = ((K * 3) / 100)
504- ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
530+ let bA = X(L, S)
531+ let bE = ((S * 3) / 100)
532+ ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
505533 }
506- else if ((bs == h))
534+ else if ((bB == h))
507535 then {
508- let aq = an(X)
509- let bx = ap(X, aq)
510- let by = (K - bx)
511- let br = P(D, by)
512- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bx)), DataEntry((az + "_TotalEarnings"), (bD + bx))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
536+ let ay = av(af)
537+ let bG = ax(af, ay)
538+ let bH = (S - bG)
539+ let bA = X(L, bH)
540+ ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bG)), DataEntry((aH + "_TotalEarnings"), (bM + bG))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
513541 }
514542 else throw("Incorrect auction state")
515- else if (if ((bs == g))
543+ else if (if ((bB == g))
516544 then true
517- else (bs == h))
545+ else (bB == h))
518546 then {
519- let by = (K - bA)
520- let br = P(D, by)
521- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), av), DataEntry((X + "_Price"), bA), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bA)), DataEntry((az + "_TotalEarnings"), (bD + bA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (by + 1), bu)]))
547+ let bH = (S - bJ)
548+ let bA = X(L, bH)
549+ ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), aD), DataEntry((af + "_Price"), bJ), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bJ)), DataEntry((aH + "_TotalEarnings"), (bM + bJ))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (bH + 1), bD)]))
522550 }
523551 else throw("Incorrect auction state")
524552 else throw("Only auction customer can choose a freelancer")
526554
527555
528556
529-@Callable(bf)
530-func increaseExecutionTime (X,aB) = {
531- let bE = toBase58String(bf.callerPublicKey)
532- let bs = W(X)
533- let aS = Z(X)
534- let aC = af(X)
535- let bF = aA(aB, aC)
536- if ((bE == aS))
537- then if (if (if ((bs == g))
557+@Callable(bn)
558+func increaseExecutionTime (af,aJ) = {
559+ let bN = toBase58String(bn.callerPublicKey)
560+ let bB = ae(af)
561+ let ba = ah(af)
562+ let aK = an(af)
563+ let bO = aI(aJ, aK)
564+ if ((bN == ba))
565+ then if (if (if ((bB == g))
538566 then true
539- else (bs == h))
567+ else (bB == h))
540568 then true
541- else (bs == j))
542- then WriteSet([DataEntry((X + "_JobPerformance"), bF)])
569+ else (bB == j))
570+ then WriteSet([DataEntry((af + "_JobPerformance"), bO)])
543571 else throw("Incorrect state")
544572 else throw("Only Client can increase execution time")
545573 }
546574
547575
548576
549-@Callable(bf)
550-func cancelAuction (X) = {
551- let R = toBase58String(bf.callerPublicKey)
552- let bs = W(X)
553- let aS = Z(X)
554- let D = ah(X)
555- let K = aj(X)
556- let bu = C(D)
557- let bv = ((K * 3) / 100)
558- let bG = (K - bv)
559- let br = P(D, K)
560- if ((R == aS))
561- then if ((bs == g))
562- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bG, bu)]))
577+@Callable(bn)
578+func cancelAuction (af) = {
579+ let Z = toBase58String(bn.callerPublicKey)
580+ let bB = ae(af)
581+ let ba = ah(af)
582+ let L = ap(af)
583+ let S = ar(af)
584+ let bD = K(L)
585+ let bE = ((S * 3) / 100)
586+ let bP = (S - bE)
587+ let bA = X(L, S)
588+ if ((Z == ba))
589+ then if ((bB == g))
590+ then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bP, bD)]))
563591 else throw("Auction can be canceled only by auction owner.")
564592 else throw("Only Client can cancel auction")
565593 }
566594
567595
568596
569-@Callable(bf)
570-func openDispute (X) = {
571- let bE = toBase58String(bf.callerPublicKey)
572- let bs = W(X)
573- let aS = Z(X)
574- let aF = al(X)
575- let bH = v((aS + "_JobsInDispute"))
576- if (if ((bs == j))
597+@Callable(bn)
598+func openDispute (af) = {
599+ let bN = toBase58String(bn.callerPublicKey)
600+ let bB = ae(af)
601+ let ba = ah(af)
602+ let aN = at(af)
603+ let bQ = B((ba + "_JobsInDispute"))
604+ if (if ((bB == j))
577605 then true
578- else (bs == k))
579- then if (if ((bE == aS))
606+ else (bB == k))
607+ then if (if ((bN == ba))
580608 then true
581- else (bE == aF))
582- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), 0), DataEntry((aS + "_JobsInDispute"), (bH + 1))])
609+ else (bN == aN))
610+ then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), 0), DataEntry((ba + "_JobsInDispute"), (bQ + 1))])
583611 else throw("Only Client and Freelancer can open dispute")
584612 else throw("Incorrect auction state for dispute opening")
585613 }
586614
587615
588616
589-@Callable(bf)
590-func voteDispute (X,aK) = {
591- let R = toBase58String(bf.callerPublicKey)
592- let bs = W(X)
593- let aS = Z(X)
594- let D = ah(X)
595- let K = aj(X)
596- let aF = al(X)
597- let bI = ((K * 3) / 100)
598- let bu = C(D)
599- let aJ = aH(R)
600- let bJ = aI(X, aJ, aK)
601- let bK = aO(X)
602- let bH = v((aS + "_JobsInDispute"))
603- let bC = v((aF + "_PendingEarnings"))
604- let bD = v((aF + "_TotalEarnings"))
605- if ((bs == m))
606- then if ((bK == 4))
617+@Callable(bn)
618+func voteDispute (af,aS) = {
619+ let Z = toBase58String(bn.callerPublicKey)
620+ let bB = ae(af)
621+ let ba = ah(af)
622+ let L = ap(af)
623+ let S = ar(af)
624+ let aN = at(af)
625+ let bR = ((S * 3) / 100)
626+ let bD = K(L)
627+ let aR = aP(Z)
628+ let bS = aQ(af, aR, aS)
629+ let bT = aW(af)
630+ let bQ = B((ba + "_JobsInDispute"))
631+ let bL = B((aN + "_PendingEarnings"))
632+ let bM = B((aN + "_TotalEarnings"))
633+ if ((bB == m))
634+ then if ((bT == 4))
607635 then {
608- let bL = aQ(X, bJ, aS, aF)
609- let br = P(D, K)
610- if ((bL == aS))
636+ let bU = aY(af, bS, ba, aN)
637+ let bA = X(L, S)
638+ if ((bU == ba))
611639 then {
612- let bM = (K - bI)
613- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_TotalEarnings"), (bD - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
640+ let bV = (S - bR)
641+ ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_TotalEarnings"), (bM - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
614642 }
615643 else {
616- let bM = (K - (bI * 2))
617- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
644+ let bV = (S - (bR * 2))
645+ ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
618646 }
619647 }
620- else WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry(((X + "_DiputeVote_") + aJ), bJ)])
648+ else WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry(((af + "_DiputeVote_") + aR), bS)])
621649 else throw(("Incorrect state. Must be: " + m))
622650 }
623651
624652
625653
626-@Callable(bf)
627-func workHandOver (X) = {
628- let R = toBase58String(bf.callerPublicKey)
629- let bs = W(X)
630- let aS = Z(X)
631- let bn = ab(X)
632- let bt = ad(X)
633- let aC = af(X)
634- let aF = al(X)
635- let bN = ((height - bn) > aC)
636- let bH = v((aS + "_JobsInDispute"))
637- if ((R == aF))
638- then if ((bs == j))
639- then if (bN)
640- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), "0"), DataEntry((aS + "_JobInDispute"), (bH + 1))])
641- else WriteSet([DataEntry((X + "_State"), k)])
654+@Callable(bn)
655+func workHandOver (af) = {
656+ let Z = toBase58String(bn.callerPublicKey)
657+ let bB = ae(af)
658+ let ba = ah(af)
659+ let bv = aj(af)
660+ let bC = al(af)
661+ let aK = an(af)
662+ let aN = at(af)
663+ let bW = ((height - bv) > aK)
664+ let bQ = B((ba + "_JobsInDispute"))
665+ if ((Z == aN))
666+ then if ((bB == j))
667+ then if (bW)
668+ then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), "0"), DataEntry((ba + "_JobInDispute"), (bQ + 1))])
669+ else WriteSet([DataEntry((af + "_State"), k)])
642670 else throw("Auction state is incorrect")
643671 else throw("Only a freelancer can indicate that the work is done")
644672 }
645673
646674
647675
648-@Callable(bf)
649-func acceptWork (X) = {
650- let R = toBase58String(bf.callerPublicKey)
651- let bs = W(X)
652- let aS = Z(X)
653- let bn = ab(X)
654- let bt = ad(X)
655- let D = ah(X)
656- let K = aj(X)
657- let aF = al(X)
658- let bB = v((aS + "_JobsOnGoing"))
659- let bC = v((aF + "_PendingEarnings"))
660- let bO = v((aF + "_PaidEarnings"))
661- let bv = ((K * 3) / 100)
662- let bG = (K - (bv * 2))
663- let bu = C(D)
664- let br = P(D, K)
665- let bP = aE(aF)
666- if ((R == aS))
667- then if ((bs == k))
668- then ScriptResult(WriteSet([DataEntry((X + "_State"), l), DataEntry((aF + "_Rating"), (bP + 1)), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_PaidEarnings"), (bO + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aF)), bG, bu)]))
676+@Callable(bn)
677+func acceptWork (af) = {
678+ let Z = toBase58String(bn.callerPublicKey)
679+ let bB = ae(af)
680+ let ba = ah(af)
681+ let bv = aj(af)
682+ let bC = al(af)
683+ let L = ap(af)
684+ let S = ar(af)
685+ let aN = at(af)
686+ let bK = B((ba + "_JobsOnGoing"))
687+ let bL = B((aN + "_PendingEarnings"))
688+ let bX = B((aN + "_PaidEarnings"))
689+ let bE = ((S * 3) / 100)
690+ let bP = (S - (bE * 2))
691+ let bD = K(L)
692+ let bA = X(L, S)
693+ let bY = aM(aN)
694+ if ((Z == ba))
695+ then if ((bB == k))
696+ then ScriptResult(WriteSet([DataEntry((af + "_State"), l), DataEntry((aN + "_Rating"), (bY + 1)), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_PaidEarnings"), (bX + S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aN)), bP, bD)]))
669697 else throw(("Incorrect state. Must be: " + k))
670698 else throw("Only auction customer can use this function")
671699 }
672700
673701
674-@Verifier(bQ)
675-func bR () = if (sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey))
702+@Verifier(bZ)
703+func ca () = if (sigVerify(bZ.bodyBytes, bZ.proofs[0], bZ.senderPublicKey))
676704 then {
677- let y = bQ
678- if ($isInstanceOf(y, "TransferTransaction"))
705+ let E = bZ
706+ if ($isInstanceOf(E, "TransferTransaction"))
679707 then {
680- let bS = y
681- let bT = A(bS.assetId)
682- let bU = getInteger(this, (bT + "_Reserved"))
683- let bV = {
684- let bW = bU
685- if ($isInstanceOf(bW, "Int"))
708+ let cb = E
709+ let cc = I(cb.assetId)
710+ let cd = getInteger(this, (cc + "_Reserved"))
711+ let ce = {
712+ let cf = cd
713+ if ($isInstanceOf(cf, "Int"))
686714 then {
687- let z = bW
688- z
715+ let F = cf
716+ F
689717 }
690718 else 0
691719 }
692- let bX = (assetBalance(this, bS.assetId) - bV)
693- (bX >= bS.amount)
720+ let cg = (assetBalance(this, cb.assetId) - ce)
721+ (cg >= cb.amount)
694722 }
695- else if ($isInstanceOf(y, "SetScriptTransaction"))
723+ else if ($isInstanceOf(E, "SetScriptTransaction"))
696724 then {
697- let bY = y
725+ let ch = E
698726 true
699727 }
700728 else false
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1440
55
66 let b = unit
77
88 let c = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
99
1010 let d = base58'Gtb1WRznfchDnTh37ezoDTJ4wcoKaRsKqKjJjy7nm2zU'
1111
1212 let e = base58'Ft8X1v1LTa1ABafufpaCWyVj8KkaxUWE6xBhW6sNFJck'
1313
1414 let f = base58'1'
1515
1616 let g = "Opened"
1717
1818 let h = "Suggested"
1919
2020 let i = "Canceled"
2121
2222 let j = "InProgress"
2323
2424 let k = "WaitForConfirmation"
2525
2626 let l = "Completed"
2727
2828 let m = "Dispute"
2929
3030 let n = "DisputeResolved"
3131
32-let o = "CL"
32+let o = "Web Design & Development"
3333
34-let p = "FL"
34+let p = "Waves RIDE & Smart Contract"
3535
36-let q = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
36+let q = "Mobile App"
3737
38-let r = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
38+let r = "Graphics & Design"
3939
40-let s = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
40+let s = "Writing & Translation"
4141
42-let t = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
42+let t = "Video & Animation"
4343
44-let u = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
44+let u = "CL"
4545
46-func v (w) = {
47- let x = getInteger(this, w)
48- let y = x
49- if ($isInstanceOf(y, "Int"))
46+let v = "FL"
47+
48+let w = "FneCJqM5BP2eAuyteMiuEEHYALrE4axhEfcpHVGbdr5s"
49+
50+let x = "6QAMdssb1GJjpQVQQcnx8fKU8WhtcF9ZsQhifdThAEK8"
51+
52+let y = "2ituwW7DSRsLP3Vcbnpr98QUQMGFRWKmyYPFqsUKRDoP"
53+
54+let z = "ANsPQocEESyLb3yQqk2pwCdoK7PJQxLoZVpYvsm3SxUG"
55+
56+let A = "13VixwQin1MzZCyY69NSWMSBNEV27Rzc159o7uZXR9VS"
57+
58+func B (C) = {
59+ let D = getInteger(this, C)
60+ let E = D
61+ if ($isInstanceOf(E, "Int"))
5062 then {
51- let z = y
52- z
63+ let F = E
64+ F
5365 }
5466 else 0
5567 }
5668
5769
58-func A (B) = if (!(isDefined(B)))
70+func G (H) = if (if (if (if (if (if ((H == o))
71+ then true
72+ else (H == p))
73+ then true
74+ else (H == q))
75+ then true
76+ else (H == r))
77+ then true
78+ else (H == s))
79+ then true
80+ else (H == t))
81+ then H
82+ else throw("Category is invalid")
83+
84+
85+func I (J) = if (!(isDefined(J)))
5986 then "WAVES"
60- else if ((B == c))
87+ else if ((J == c))
6188 then "BTC"
62- else if ((B == d))
89+ else if ((J == d))
6390 then "EUR"
64- else if ((B == e))
91+ else if ((J == e))
6592 then "USD"
66- else if ((B == f))
93+ else if ((J == f))
6794 then "AUCT"
6895 else throw("AssetId is incorrect")
6996
7097
71-func C (D) = if ((D == "WAVES"))
98+func K (L) = if ((L == "WAVES"))
7299 then b
73- else if ((D == "BTC"))
100+ else if ((L == "BTC"))
74101 then c
75- else if ((D == "EUR"))
102+ else if ((L == "EUR"))
76103 then d
77- else if ((D == "USD"))
104+ else if ((L == "USD"))
78105 then e
79- else if ((D == "AUCT"))
106+ else if ((L == "AUCT"))
80107 then f
81108 else throw("Incorrect Asset Id")
82109
83110
84-func E (F,G,H) = ((F - G) > H)
111+func M (N,O,P) = ((N - O) > P)
85112
86113
87-func I (J,K) = if ((J > K))
114+func Q (R,S) = if ((R > S))
88115 then throw("Bid amount must be lower or equal than auctionPrice")
89- else J
116+ else R
90117
91118
92-func L (M,K) = {
93- let N = getInteger(this, (M + "_Freezed"))
94- let O = {
95- let y = N
96- if ($isInstanceOf(y, "Int"))
119+func T (U,S) = {
120+ let V = getInteger(this, (U + "_Freezed"))
121+ let W = {
122+ let E = V
123+ if ($isInstanceOf(E, "Int"))
97124 then {
98- let z = y
99- z
125+ let F = E
126+ F
100127 }
101128 else 0
102129 }
103- (O + K)
130+ (W + S)
104131 }
105132
106133
107-func P (M,K) = {
108- let N = getInteger(this, (M + "_Freezed"))
109- let O = {
110- let y = N
111- if ($isInstanceOf(y, "Int"))
134+func X (U,S) = {
135+ let V = getInteger(this, (U + "_Freezed"))
136+ let W = {
137+ let E = V
138+ if ($isInstanceOf(E, "Int"))
112139 then {
113- let z = y
114- z
140+ let F = E
141+ F
115142 }
116143 else 0
117144 }
118- let z = (O - K)
119- if ((z >= 0))
120- then z
145+ let F = (W - S)
146+ if ((F >= 0))
147+ then F
121148 else throw("Freezed amount couldn't be less than 0")
122149 }
123150
124151
125-func Q (R) = {
126- let S = getString(this, (R + "_Freelancer"))
127- let y = S
128- if ($isInstanceOf(y, "String"))
152+func Y (Z) = {
153+ let aa = getString(this, (Z + "_Freelancer"))
154+ let E = aa
155+ if ($isInstanceOf(E, "String"))
129156 then {
130- let z = y
131- R
157+ let F = E
158+ Z
132159 }
133160 else throw("Only registered users can make bets")
134161 }
135162
136163
137-func T (R) = {
138- let S = getString(this, (R + "_Freelancer"))
139- let y = S
140- if ($isInstanceOf(y, "String"))
164+func ab (Z) = {
165+ let aa = getString(this, (Z + "_Freelancer"))
166+ let E = aa
167+ if ($isInstanceOf(E, "String"))
141168 then {
142- let z = y
143- R
169+ let F = E
170+ Z
144171 }
145172 else throw("Only registered users can make bets")
146173 }
147174
148175
149-func U (V) = if ((V > 0))
150- then V
176+func ac (ad) = if ((ad > 0))
177+ then ad
151178 else throw("Amount must be higher then 0")
152179
153180
154-func W (X) = {
155- let Y = getString(this, (X + "_State"))
156- let y = Y
157- if ($isInstanceOf(y, "String"))
181+func ae (af) = {
182+ let ag = getString(this, (af + "_State"))
183+ let E = ag
184+ if ($isInstanceOf(E, "String"))
158185 then {
159- let z = y
160- z
186+ let F = E
187+ F
161188 }
162189 else throw("Auction State was not found")
163190 }
164191
165192
166-func Z (X) = {
167- let aa = getString(this, (X + "_AuctionClient"))
168- let y = aa
169- if ($isInstanceOf(y, "String"))
193+func ah (af) = {
194+ let ai = getString(this, (af + "_AuctionClient"))
195+ let E = ai
196+ if ($isInstanceOf(E, "String"))
170197 then {
171- let z = y
172- z
198+ let F = E
199+ F
173200 }
174201 else throw("Auction Client was not found")
175202 }
176203
177204
178-func ab (X) = {
179- let ac = getInteger(this, (X + "_AuctionStart"))
180- let y = ac
181- if ($isInstanceOf(y, "Int"))
205+func aj (af) = {
206+ let ak = getInteger(this, (af + "_AuctionStart"))
207+ let E = ak
208+ if ($isInstanceOf(E, "Int"))
182209 then {
183- let z = y
184- z
210+ let F = E
211+ F
185212 }
186213 else throw("Auction Start time was not found")
187214 }
188215
189216
190-func ad (X) = {
191- let ae = getInteger(this, (X + "_AuctionDuration"))
192- let y = ae
193- if ($isInstanceOf(y, "Int"))
217+func al (af) = {
218+ let am = getInteger(this, (af + "_AuctionDuration"))
219+ let E = am
220+ if ($isInstanceOf(E, "Int"))
194221 then {
195- let z = y
196- z
222+ let F = E
223+ F
197224 }
198225 else throw("Auction duration time was not found")
199226 }
200227
201228
202-func af (X) = {
203- let ag = getInteger(this, (X + "_JobPerformance"))
204- let y = ag
205- if ($isInstanceOf(y, "Int"))
229+func an (af) = {
230+ let ao = getInteger(this, (af + "_JobPerformance"))
231+ let E = ao
232+ if ($isInstanceOf(E, "Int"))
206233 then {
207- let z = y
208- z
234+ let F = E
235+ F
209236 }
210237 else throw("Auction job performance time was not found")
211238 }
212239
213240
214-func ah (X) = {
215- let ai = getString(this, (X + "_AssetName"))
216- let y = ai
217- if ($isInstanceOf(y, "String"))
241+func ap (af) = {
242+ let aq = getString(this, (af + "_AssetName"))
243+ let E = aq
244+ if ($isInstanceOf(E, "String"))
218245 then {
219- let z = y
220- z
246+ let F = E
247+ F
221248 }
222249 else throw("Auction asset name was not found")
223250 }
224251
225252
226-func aj (X) = {
227- let ak = getInteger(this, (X + "_Price"))
228- let y = ak
229- if ($isInstanceOf(y, "Int"))
253+func ar (af) = {
254+ let as = getInteger(this, (af + "_Price"))
255+ let E = as
256+ if ($isInstanceOf(E, "Int"))
230257 then {
231- let z = y
232- z
258+ let F = E
259+ F
233260 }
234261 else throw("Auction price was not found")
235262 }
236263
237264
238-func al (X) = {
239- let am = getString(this, (X + "_HiredFreelancer"))
240- let y = am
241- if ($isInstanceOf(y, "String"))
265+func at (af) = {
266+ let au = getString(this, (af + "_HiredFreelancer"))
267+ let E = au
268+ if ($isInstanceOf(E, "String"))
242269 then {
243- let z = y
244- z
270+ let F = E
271+ F
245272 }
246273 else throw("Auction Client was not found")
247274 }
248275
249276
250-func an (X) = {
251- let ao = getString(this, (X + "_LowestBidderPub"))
252- let y = ao
253- if ($isInstanceOf(y, "String"))
277+func av (af) = {
278+ let aw = getString(this, (af + "_LowestBidderPub"))
279+ let E = aw
280+ if ($isInstanceOf(E, "String"))
254281 then {
255- let z = y
256- z
282+ let F = E
283+ F
257284 }
258285 else throw("Auction lowest bidder was not found")
259286 }
260287
261288
262-func ap (X,aq) = {
263- let ar = getInteger(this, ((X + "_Bid_") + aq))
264- let y = ar
265- if ($isInstanceOf(y, "Int"))
289+func ax (af,ay) = {
290+ let az = getInteger(this, ((af + "_Bid_") + ay))
291+ let E = az
292+ if ($isInstanceOf(E, "Int"))
266293 then {
267- let z = y
268- z
294+ let F = E
295+ F
269296 }
270297 else throw("Auction lowest bid was not found")
271298 }
272299
273300
274-func as (X,at,au,av) = {
275- let aw = getInteger(this, ((X + "_Bid_") + at))
276- let ax = {
277- let y = aw
278- if ($isInstanceOf(y, "Int"))
301+func aA (af,aB,aC,aD) = {
302+ let aE = getInteger(this, ((af + "_Bid_") + aB))
303+ let aF = {
304+ let E = aE
305+ if ($isInstanceOf(E, "Int"))
279306 then {
280- let z = y
281- z
307+ let F = E
308+ F
282309 }
283310 else throw("Auction lowest bid was not found")
284311 }
285- if ((ax > au))
286- then av
287- else at
312+ if ((aF > aC))
313+ then aD
314+ else aB
288315 }
289316
290317
291-func ay (X,az) = {
292- let av = getInteger(this, ((X + "_Bid_") + az))
293- let y = av
294- if ($isInstanceOf(y, "Int"))
318+func aG (af,aH) = {
319+ let aD = getInteger(this, ((af + "_Bid_") + aH))
320+ let E = aD
321+ if ($isInstanceOf(E, "Int"))
295322 then {
296- let z = y
297- az
323+ let F = E
324+ aH
298325 }
299326 else throw("Error: Incorrect freelancerPub")
300327 }
301328
302329
303-func aA (aB,aC) = {
304- let aD = (aB * a)
305- if ((aD > aC))
306- then aD
330+func aI (aJ,aK) = {
331+ let aL = (aJ * a)
332+ if ((aL > aK))
333+ then aL
307334 else throw("New execution time must more than current execution time")
308335 }
309336
310337
311-func aE (aF) = {
312- let aG = getInteger(this, (aF + "_Rating"))
313- let y = aG
314- if ($isInstanceOf(y, "Int"))
338+func aM (aN) = {
339+ let aO = getInteger(this, (aN + "_Rating"))
340+ let E = aO
341+ if ($isInstanceOf(E, "Int"))
315342 then {
316- let z = y
317- z
343+ let F = E
344+ F
318345 }
319346 else 0
320347 }
321348
322349
323-func aH (R) = if (if (if (if (if ((R == q))
350+func aP (Z) = if (if (if (if (if ((Z == w))
324351 then true
325- else (R == r))
352+ else (Z == x))
326353 then true
327- else (R == s))
354+ else (Z == y))
328355 then true
329- else (R == t))
356+ else (Z == z))
330357 then true
331- else (R == u))
332- then R
358+ else (Z == A))
359+ then Z
333360 else throw("Only defined ambassadors can vote in disputes")
334361
335362
336-func aI (X,aJ,aK) = {
337- let aL = ((X + "_DiputeVote_") + aJ)
338- let aM = getString(this, aL)
339- let aN = {
340- let y = aM
341- if ($isInstanceOf(y, "String"))
363+func aQ (af,aR,aS) = {
364+ let aT = ((af + "_DiputeVote_") + aR)
365+ let aU = getString(this, aT)
366+ let aV = {
367+ let E = aU
368+ if ($isInstanceOf(E, "String"))
342369 then {
343- let z = y
370+ let F = E
344371 true
345372 }
346373 else false
347374 }
348- if (aN)
375+ if (aV)
349376 then throw("Ambassador voted already ")
350- else if (if ((aK == o))
377+ else if (if ((aS == u))
351378 then true
352- else (aK == p))
353- then aK
354- else throw(((("Vote is incorrect. Must be: " + o) + " or ") + p))
379+ else (aS == v))
380+ then aS
381+ else throw(((("Vote is incorrect. Must be: " + u) + " or ") + v))
355382 }
356383
357384
358-func aO (X) = {
359- let aP = getInteger(this, (X + "_DisputeVotes"))
360- let y = aP
361- if ($isInstanceOf(y, "Int"))
385+func aW (af) = {
386+ let aX = getInteger(this, (af + "_DisputeVotes"))
387+ let E = aX
388+ if ($isInstanceOf(E, "Int"))
362389 then {
363- let z = y
364- z
390+ let F = E
391+ F
365392 }
366393 else throw("VotesNumber was not found")
367394 }
368395
369396
370-func aQ (X,aR,aS,aF) = {
371- let aT = getString(this, ((X + "_DiputeVote_") + q))
372- let aU = getString(this, ((X + "_DiputeVote_") + r))
373- let aV = getString(this, ((X + "_DiputeVote_") + s))
374- let aW = getString(this, ((X + "_DiputeVote_") + t))
375- let aX = getString(this, ((X + "_DiputeVote_") + u))
376- let aY = if ((aT == o))
397+func aY (af,aZ,ba,aN) = {
398+ let bb = getString(this, ((af + "_DiputeVote_") + w))
399+ let bc = getString(this, ((af + "_DiputeVote_") + x))
400+ let bd = getString(this, ((af + "_DiputeVote_") + y))
401+ let be = getString(this, ((af + "_DiputeVote_") + z))
402+ let bf = getString(this, ((af + "_DiputeVote_") + A))
403+ let bg = if ((bb == u))
377404 then 1
378405 else 0
379- let aZ = if ((aU == o))
406+ let bh = if ((bc == u))
380407 then 1
381408 else 0
382- let ba = if ((aV == o))
409+ let bi = if ((bd == u))
383410 then 1
384411 else 0
385- let bb = if ((aW == o))
412+ let bj = if ((be == u))
386413 then 1
387414 else 0
388- let bc = if ((aX == o))
415+ let bk = if ((bf == u))
389416 then 1
390417 else 0
391- let bd = if ((aR == o))
418+ let bl = if ((aZ == u))
392419 then 1
393420 else 0
394- let be = (((((aY + aZ) + ba) + bb) + bc) + bd)
395- if ((be > 2))
396- then aS
397- else aF
421+ let bm = (((((bg + bh) + bi) + bj) + bk) + bl)
422+ if ((bm > 2))
423+ then ba
424+ else aN
398425 }
399426
400427
401-@Callable(bf)
402-func freelancerSignUp (bg) = {
403- let bh = toBase58String(bf.callerPublicKey)
404- let bi = getString(this, (bh + "_Freelancer"))
405- if (isDefined(bi))
428+@Callable(bn)
429+func freelancerSignUp (bo) = {
430+ let bp = toBase58String(bn.callerPublicKey)
431+ let bq = getString(this, (bp + "_Freelancer"))
432+ if (isDefined(bq))
406433 then throw("User already registered")
407- else WriteSet([DataEntry((bh + "_Freelancer"), bg), DataEntry((bh + "_PendingEarnings"), 0), DataEntry((bh + "_PaidEarnings"), 0), DataEntry((bh + "_TotalEarnings"), 0), DataEntry((bh + "_JobsPending"), 0), DataEntry((bh + "_JobsCompleted"), 0), DataEntry((bh + "_JobsTotal"), 0)])
434+ else WriteSet([DataEntry((bp + "_Freelancer"), bo), DataEntry((bp + "_PendingEarnings"), 0), DataEntry((bp + "_PaidEarnings"), 0), DataEntry((bp + "_TotalEarnings"), 0), DataEntry((bp + "_JobsPending"), 0), DataEntry((bp + "_JobsCompleted"), 0), DataEntry((bp + "_JobsTotal"), 0)])
408435 }
409436
410437
411438
412-@Callable(bf)
413-func clientSignUp (bg) = {
414- let bh = toBase58String(bf.callerPublicKey)
415- let bi = getString(this, (bh + "_Client"))
416- if (isDefined(bi))
439+@Callable(bn)
440+func clientSignUp (bo) = {
441+ let bp = toBase58String(bn.callerPublicKey)
442+ let bq = getString(this, (bp + "_Client"))
443+ if (isDefined(bq))
417444 then throw("User already registered")
418- else WriteSet([DataEntry((bh + "_Client"), bg), DataEntry((bh + "_JobsCreated"), 0), DataEntry((bh + "_JobsOnGoing"), 0), DataEntry((bh + "_JobInDispute"), 0)])
445+ else WriteSet([DataEntry((bp + "_Client"), bo), DataEntry((bp + "_JobsCreated"), 0), DataEntry((bp + "_JobsOnGoing"), 0), DataEntry((bp + "_JobInDispute"), 0)])
419446 }
420447
421448
422449
423-@Callable(bf)
424-func createAuction (bj,bk,bl) = {
425- let R = toBase58String(bf.callerPublicKey)
426- let X = toBase58String(bf.transactionId)
427- let aS = Q(R)
428- let bm = extract(bf.payment)
429- let V = bm.amount
430- let K = U(V)
431- let bn = height
432- let bo = (bk * a)
433- let bp = (bj * a)
434- let M = A(bm.assetId)
435- let bq = v((aS + "_JobsCreated"))
436- let br = L(M, K)
437- WriteSet([DataEntry((X + "_State"), g), DataEntry((X + "_Info"), bl), DataEntry((X + "_AuctionClient"), aS), DataEntry((X + "_AuctionStart"), bn), DataEntry((X + "_AuctionDuration"), bo), DataEntry((X + "_JobPerformance"), bp), DataEntry((X + "_AssetName"), M), DataEntry((X + "_Price"), K), DataEntry((M + "_Freezed"), br), DataEntry((aS + "_JobsCreated"), (bq + 1))])
450+@Callable(bn)
451+func createAuction (br,bs,bt,H) = {
452+ let Z = toBase58String(bn.callerPublicKey)
453+ let af = toBase58String(bn.transactionId)
454+ let ba = Y(Z)
455+ let bu = extract(bn.payment)
456+ let ad = bu.amount
457+ let S = ac(ad)
458+ let bv = height
459+ let bw = (bs * a)
460+ let bx = (br * a)
461+ let U = I(bu.assetId)
462+ let by = B((ba + "_JobsCreated"))
463+ let bz = G(H)
464+ let bA = T(U, S)
465+ WriteSet([DataEntry((af + "_State"), g), DataEntry((af + "_Info"), bt), DataEntry((af + "_AuctionClient"), ba), DataEntry((af + "_AuctionStart"), bv), DataEntry((af + "_AuctionDuration"), bw), DataEntry((af + "_JobPerformance"), bx), DataEntry((af + "_AssetName"), U), DataEntry((af + "_Price"), S), DataEntry((af + "_Category"), bz), DataEntry((U + "_Freezed"), bA), DataEntry((ba + "_JobsCreated"), (by + 1))])
438466 }
439467
440468
441469
442-@Callable(bf)
443-func makeBid (X,J) = {
444- let R = toBase58String(bf.callerPublicKey)
445- let bs = W(X)
446- let aS = Z(X)
447- let bn = ab(X)
448- let bt = ad(X)
449- let aC = af(X)
450- let D = ah(X)
451- let K = aj(X)
452- let bu = C(D)
453- let av = T(R)
454- let bv = ((K * 3) / 100)
455- let br = P(D, K)
456- let au = I(J, K)
457- let bw = E(height, bn, bt)
458- if (bw)
459- then if ((bs == g))
460- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
461- else if ((bs == h))
470+@Callable(bn)
471+func makeBid (af,R) = {
472+ let Z = toBase58String(bn.callerPublicKey)
473+ let bB = ae(af)
474+ let ba = ah(af)
475+ let bv = aj(af)
476+ let bC = al(af)
477+ let aK = an(af)
478+ let L = ap(af)
479+ let S = ar(af)
480+ let bD = K(L)
481+ let aD = ab(Z)
482+ let bE = ((S * 3) / 100)
483+ let bA = X(L, S)
484+ let aC = Q(R, S)
485+ let bF = M(height, bv, bC)
486+ if (bF)
487+ then if ((bB == g))
488+ then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
489+ else if ((bB == h))
462490 then {
463- let aq = an(X)
464- let bx = ap(X, aq)
465- let by = ((K - bx) - bv)
466- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
491+ let ay = av(af)
492+ let bG = ax(af, ay)
493+ let bH = ((S - bG) - bE)
494+ ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
467495 }
468496 else throw("Incorrect auction state")
469- else if ((bs == g))
470- then WriteSet([DataEntry(((X + "_Bid_") + av), au), DataEntry((X + "_State"), h), DataEntry((X + "_LowestBidderPub"), R)])
471- else if ((bs == h))
497+ else if ((bB == g))
498+ then WriteSet([DataEntry(((af + "_Bid_") + aD), aC), DataEntry((af + "_State"), h), DataEntry((af + "_LowestBidderPub"), Z)])
499+ else if ((bB == h))
472500 then {
473- let at = an(X)
474- let bz = as(X, at, au, av)
475- WriteSet([DataEntry((X + "_LowestBidderPub"), bz), DataEntry(((X + "_Bid_") + av), au)])
501+ let aB = av(af)
502+ let bI = aA(af, aB, aC, aD)
503+ WriteSet([DataEntry((af + "_LowestBidderPub"), bI), DataEntry(((af + "_Bid_") + aD), aC)])
476504 }
477- else throw(((((("Incorrect jobId state. Now: " + bs) + ", must be: ") + g) + " or ") + h))
505+ else throw(((((("Incorrect jobId state. Now: " + bB) + ", must be: ") + g) + " or ") + h))
478506 }
479507
480508
481509
482-@Callable(bf)
483-func chooseFreelancer (X,az) = {
484- let R = toBase58String(bf.callerPublicKey)
485- let bs = W(X)
486- let aS = Z(X)
487- let bn = ab(X)
488- let bt = ad(X)
489- let D = ah(X)
490- let K = aj(X)
491- let bu = C(D)
492- let av = ay(X, az)
493- let bA = ap(X, av)
494- let bw = E(height, bn, bt)
495- let bB = v((aS + "_JobsOnGoing"))
496- let bC = v((az + "_PendingEarnings"))
497- let bD = v((az + "_TotalEarnings"))
498- if ((R == aS))
499- then if (bw)
500- then if ((bs == g))
510+@Callable(bn)
511+func chooseFreelancer (af,aH) = {
512+ let Z = toBase58String(bn.callerPublicKey)
513+ let bB = ae(af)
514+ let ba = ah(af)
515+ let bv = aj(af)
516+ let bC = al(af)
517+ let L = ap(af)
518+ let S = ar(af)
519+ let bD = K(L)
520+ let aD = aG(af, aH)
521+ let bJ = ax(af, aD)
522+ let bF = M(height, bv, bC)
523+ let bK = B((ba + "_JobsOnGoing"))
524+ let bL = B((aH + "_PendingEarnings"))
525+ let bM = B((aH + "_TotalEarnings"))
526+ if ((Z == ba))
527+ then if (bF)
528+ then if ((bB == g))
501529 then {
502- let br = P(D, K)
503- let bv = ((K * 3) / 100)
504- ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (K - bv), bu)]))
530+ let bA = X(L, S)
531+ let bE = ((S * 3) / 100)
532+ ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (S - bE), bD)]))
505533 }
506- else if ((bs == h))
534+ else if ((bB == h))
507535 then {
508- let aq = an(X)
509- let bx = ap(X, aq)
510- let by = (K - bx)
511- let br = P(D, by)
512- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), aq), DataEntry((X + "_Price"), bx), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bx)), DataEntry((az + "_TotalEarnings"), (bD + bx))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), by, bu)]))
536+ let ay = av(af)
537+ let bG = ax(af, ay)
538+ let bH = (S - bG)
539+ let bA = X(L, bH)
540+ ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), ay), DataEntry((af + "_Price"), bG), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bG)), DataEntry((aH + "_TotalEarnings"), (bM + bG))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bH, bD)]))
513541 }
514542 else throw("Incorrect auction state")
515- else if (if ((bs == g))
543+ else if (if ((bB == g))
516544 then true
517- else (bs == h))
545+ else (bB == h))
518546 then {
519- let by = (K - bA)
520- let br = P(D, by)
521- ScriptResult(WriteSet([DataEntry((X + "_State"), j), DataEntry((X + "_HiredFreelancer"), av), DataEntry((X + "_Price"), bA), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB + 1)), DataEntry((az + "_PendingEarnings"), (bC + bA)), DataEntry((az + "_TotalEarnings"), (bD + bA))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), (by + 1), bu)]))
547+ let bH = (S - bJ)
548+ let bA = X(L, bH)
549+ ScriptResult(WriteSet([DataEntry((af + "_State"), j), DataEntry((af + "_HiredFreelancer"), aD), DataEntry((af + "_Price"), bJ), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK + 1)), DataEntry((aH + "_PendingEarnings"), (bL + bJ)), DataEntry((aH + "_TotalEarnings"), (bM + bJ))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), (bH + 1), bD)]))
522550 }
523551 else throw("Incorrect auction state")
524552 else throw("Only auction customer can choose a freelancer")
525553 }
526554
527555
528556
529-@Callable(bf)
530-func increaseExecutionTime (X,aB) = {
531- let bE = toBase58String(bf.callerPublicKey)
532- let bs = W(X)
533- let aS = Z(X)
534- let aC = af(X)
535- let bF = aA(aB, aC)
536- if ((bE == aS))
537- then if (if (if ((bs == g))
557+@Callable(bn)
558+func increaseExecutionTime (af,aJ) = {
559+ let bN = toBase58String(bn.callerPublicKey)
560+ let bB = ae(af)
561+ let ba = ah(af)
562+ let aK = an(af)
563+ let bO = aI(aJ, aK)
564+ if ((bN == ba))
565+ then if (if (if ((bB == g))
538566 then true
539- else (bs == h))
567+ else (bB == h))
540568 then true
541- else (bs == j))
542- then WriteSet([DataEntry((X + "_JobPerformance"), bF)])
569+ else (bB == j))
570+ then WriteSet([DataEntry((af + "_JobPerformance"), bO)])
543571 else throw("Incorrect state")
544572 else throw("Only Client can increase execution time")
545573 }
546574
547575
548576
549-@Callable(bf)
550-func cancelAuction (X) = {
551- let R = toBase58String(bf.callerPublicKey)
552- let bs = W(X)
553- let aS = Z(X)
554- let D = ah(X)
555- let K = aj(X)
556- let bu = C(D)
557- let bv = ((K * 3) / 100)
558- let bG = (K - bv)
559- let br = P(D, K)
560- if ((R == aS))
561- then if ((bs == g))
562- then ScriptResult(WriteSet([DataEntry((X + "_State"), i), DataEntry((D + "_Freezed"), br)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aS)), bG, bu)]))
577+@Callable(bn)
578+func cancelAuction (af) = {
579+ let Z = toBase58String(bn.callerPublicKey)
580+ let bB = ae(af)
581+ let ba = ah(af)
582+ let L = ap(af)
583+ let S = ar(af)
584+ let bD = K(L)
585+ let bE = ((S * 3) / 100)
586+ let bP = (S - bE)
587+ let bA = X(L, S)
588+ if ((Z == ba))
589+ then if ((bB == g))
590+ then ScriptResult(WriteSet([DataEntry((af + "_State"), i), DataEntry((L + "_Freezed"), bA)]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(ba)), bP, bD)]))
563591 else throw("Auction can be canceled only by auction owner.")
564592 else throw("Only Client can cancel auction")
565593 }
566594
567595
568596
569-@Callable(bf)
570-func openDispute (X) = {
571- let bE = toBase58String(bf.callerPublicKey)
572- let bs = W(X)
573- let aS = Z(X)
574- let aF = al(X)
575- let bH = v((aS + "_JobsInDispute"))
576- if (if ((bs == j))
597+@Callable(bn)
598+func openDispute (af) = {
599+ let bN = toBase58String(bn.callerPublicKey)
600+ let bB = ae(af)
601+ let ba = ah(af)
602+ let aN = at(af)
603+ let bQ = B((ba + "_JobsInDispute"))
604+ if (if ((bB == j))
577605 then true
578- else (bs == k))
579- then if (if ((bE == aS))
606+ else (bB == k))
607+ then if (if ((bN == ba))
580608 then true
581- else (bE == aF))
582- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), 0), DataEntry((aS + "_JobsInDispute"), (bH + 1))])
609+ else (bN == aN))
610+ then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), 0), DataEntry((ba + "_JobsInDispute"), (bQ + 1))])
583611 else throw("Only Client and Freelancer can open dispute")
584612 else throw("Incorrect auction state for dispute opening")
585613 }
586614
587615
588616
589-@Callable(bf)
590-func voteDispute (X,aK) = {
591- let R = toBase58String(bf.callerPublicKey)
592- let bs = W(X)
593- let aS = Z(X)
594- let D = ah(X)
595- let K = aj(X)
596- let aF = al(X)
597- let bI = ((K * 3) / 100)
598- let bu = C(D)
599- let aJ = aH(R)
600- let bJ = aI(X, aJ, aK)
601- let bK = aO(X)
602- let bH = v((aS + "_JobsInDispute"))
603- let bC = v((aF + "_PendingEarnings"))
604- let bD = v((aF + "_TotalEarnings"))
605- if ((bs == m))
606- then if ((bK == 4))
617+@Callable(bn)
618+func voteDispute (af,aS) = {
619+ let Z = toBase58String(bn.callerPublicKey)
620+ let bB = ae(af)
621+ let ba = ah(af)
622+ let L = ap(af)
623+ let S = ar(af)
624+ let aN = at(af)
625+ let bR = ((S * 3) / 100)
626+ let bD = K(L)
627+ let aR = aP(Z)
628+ let bS = aQ(af, aR, aS)
629+ let bT = aW(af)
630+ let bQ = B((ba + "_JobsInDispute"))
631+ let bL = B((aN + "_PendingEarnings"))
632+ let bM = B((aN + "_TotalEarnings"))
633+ if ((bB == m))
634+ then if ((bT == 4))
607635 then {
608- let bL = aQ(X, bJ, aS, aF)
609- let br = P(D, K)
610- if ((bL == aS))
636+ let bU = aY(af, bS, ba, aN)
637+ let bA = X(L, S)
638+ if ((bU == ba))
611639 then {
612- let bM = (K - bI)
613- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_TotalEarnings"), (bD - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
640+ let bV = (S - bR)
641+ ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_TotalEarnings"), (bM - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
614642 }
615643 else {
616- let bM = (K - (bI * 2))
617- ScriptResult(WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry((X + "_State"), n), DataEntry(((X + "_DiputeVote_") + aJ), bJ), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsInDispute"), (bH - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bL)), bM, bu)]))
644+ let bV = (S - (bR * 2))
645+ ScriptResult(WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry((af + "_State"), n), DataEntry(((af + "_DiputeVote_") + aR), bS), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsInDispute"), (bQ - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(bU)), bV, bD)]))
618646 }
619647 }
620- else WriteSet([DataEntry((X + "_DisputeVotes"), (bK + 1)), DataEntry(((X + "_DiputeVote_") + aJ), bJ)])
648+ else WriteSet([DataEntry((af + "_DisputeVotes"), (bT + 1)), DataEntry(((af + "_DiputeVote_") + aR), bS)])
621649 else throw(("Incorrect state. Must be: " + m))
622650 }
623651
624652
625653
626-@Callable(bf)
627-func workHandOver (X) = {
628- let R = toBase58String(bf.callerPublicKey)
629- let bs = W(X)
630- let aS = Z(X)
631- let bn = ab(X)
632- let bt = ad(X)
633- let aC = af(X)
634- let aF = al(X)
635- let bN = ((height - bn) > aC)
636- let bH = v((aS + "_JobsInDispute"))
637- if ((R == aF))
638- then if ((bs == j))
639- then if (bN)
640- then WriteSet([DataEntry((X + "_State"), m), DataEntry((X + "_DisputeVotes"), "0"), DataEntry((aS + "_JobInDispute"), (bH + 1))])
641- else WriteSet([DataEntry((X + "_State"), k)])
654+@Callable(bn)
655+func workHandOver (af) = {
656+ let Z = toBase58String(bn.callerPublicKey)
657+ let bB = ae(af)
658+ let ba = ah(af)
659+ let bv = aj(af)
660+ let bC = al(af)
661+ let aK = an(af)
662+ let aN = at(af)
663+ let bW = ((height - bv) > aK)
664+ let bQ = B((ba + "_JobsInDispute"))
665+ if ((Z == aN))
666+ then if ((bB == j))
667+ then if (bW)
668+ then WriteSet([DataEntry((af + "_State"), m), DataEntry((af + "_DisputeVotes"), "0"), DataEntry((ba + "_JobInDispute"), (bQ + 1))])
669+ else WriteSet([DataEntry((af + "_State"), k)])
642670 else throw("Auction state is incorrect")
643671 else throw("Only a freelancer can indicate that the work is done")
644672 }
645673
646674
647675
648-@Callable(bf)
649-func acceptWork (X) = {
650- let R = toBase58String(bf.callerPublicKey)
651- let bs = W(X)
652- let aS = Z(X)
653- let bn = ab(X)
654- let bt = ad(X)
655- let D = ah(X)
656- let K = aj(X)
657- let aF = al(X)
658- let bB = v((aS + "_JobsOnGoing"))
659- let bC = v((aF + "_PendingEarnings"))
660- let bO = v((aF + "_PaidEarnings"))
661- let bv = ((K * 3) / 100)
662- let bG = (K - (bv * 2))
663- let bu = C(D)
664- let br = P(D, K)
665- let bP = aE(aF)
666- if ((R == aS))
667- then if ((bs == k))
668- then ScriptResult(WriteSet([DataEntry((X + "_State"), l), DataEntry((aF + "_Rating"), (bP + 1)), DataEntry((D + "_Freezed"), br), DataEntry((aS + "_JobsOnGoing"), (bB - 1)), DataEntry((aF + "_PendingEarnings"), (bC - K)), DataEntry((aF + "_PaidEarnings"), (bO + K))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aF)), bG, bu)]))
676+@Callable(bn)
677+func acceptWork (af) = {
678+ let Z = toBase58String(bn.callerPublicKey)
679+ let bB = ae(af)
680+ let ba = ah(af)
681+ let bv = aj(af)
682+ let bC = al(af)
683+ let L = ap(af)
684+ let S = ar(af)
685+ let aN = at(af)
686+ let bK = B((ba + "_JobsOnGoing"))
687+ let bL = B((aN + "_PendingEarnings"))
688+ let bX = B((aN + "_PaidEarnings"))
689+ let bE = ((S * 3) / 100)
690+ let bP = (S - (bE * 2))
691+ let bD = K(L)
692+ let bA = X(L, S)
693+ let bY = aM(aN)
694+ if ((Z == ba))
695+ then if ((bB == k))
696+ then ScriptResult(WriteSet([DataEntry((af + "_State"), l), DataEntry((aN + "_Rating"), (bY + 1)), DataEntry((L + "_Freezed"), bA), DataEntry((ba + "_JobsOnGoing"), (bK - 1)), DataEntry((aN + "_PendingEarnings"), (bL - S)), DataEntry((aN + "_PaidEarnings"), (bX + S))]), TransferSet([ScriptTransfer(addressFromPublicKey(fromBase58String(aN)), bP, bD)]))
669697 else throw(("Incorrect state. Must be: " + k))
670698 else throw("Only auction customer can use this function")
671699 }
672700
673701
674-@Verifier(bQ)
675-func bR () = if (sigVerify(bQ.bodyBytes, bQ.proofs[0], bQ.senderPublicKey))
702+@Verifier(bZ)
703+func ca () = if (sigVerify(bZ.bodyBytes, bZ.proofs[0], bZ.senderPublicKey))
676704 then {
677- let y = bQ
678- if ($isInstanceOf(y, "TransferTransaction"))
705+ let E = bZ
706+ if ($isInstanceOf(E, "TransferTransaction"))
679707 then {
680- let bS = y
681- let bT = A(bS.assetId)
682- let bU = getInteger(this, (bT + "_Reserved"))
683- let bV = {
684- let bW = bU
685- if ($isInstanceOf(bW, "Int"))
708+ let cb = E
709+ let cc = I(cb.assetId)
710+ let cd = getInteger(this, (cc + "_Reserved"))
711+ let ce = {
712+ let cf = cd
713+ if ($isInstanceOf(cf, "Int"))
686714 then {
687- let z = bW
688- z
715+ let F = cf
716+ F
689717 }
690718 else 0
691719 }
692- let bX = (assetBalance(this, bS.assetId) - bV)
693- (bX >= bS.amount)
720+ let cg = (assetBalance(this, cb.assetId) - ce)
721+ (cg >= cb.amount)
694722 }
695- else if ($isInstanceOf(y, "SetScriptTransaction"))
723+ else if ($isInstanceOf(E, "SetScriptTransaction"))
696724 then {
697- let bY = y
725+ let ch = E
698726 true
699727 }
700728 else false
701729 }
702730 else false
703731

github/deemru/w8io/169f3d6 
249.87 ms