tx · B94FsyD5gvDZhwSxP4FUuUqZgb4n1e27U8iMd6jjwVVo 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU: -0.01400000 Waves 2021.07.14 10:26 [1612988] smart account 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU > SELF 0.00000000 Waves
{ "type": 13, "id": "B94FsyD5gvDZhwSxP4FUuUqZgb4n1e27U8iMd6jjwVVo", "fee": 1400000, "feeAssetId": null, "timestamp": 1626247626544, "version": 2, "chainId": 84, "sender": "3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU", "senderPublicKey": "AWADFmQjf2WbDSqb24S9YZpix3VEdiBdeiJ2J2sSfQ49", "proofs": [ "3F9fA6tPDd3sSw5WF8SVk3ssPM3vatoMDQuJHacTfpDbcaFWCdwxuNTijCw5JFPY9ExDngc8DwMt5oViTwxPDGyb" ], "script": "base64:AAIFAAAAAAAAABsIAhIAEgASAwoBARIAEgASBgoEGBEBARIAEgAAAABTAAAAABRhZG1pblB1YktleVN0YXJ0U3RvcAEAAAAgBM915WTQwQ9OZ7kfE2TEGg3qhCRCMX0zkF1AWAqdk0oAAAAAEWFkbWluUHViS2V5V2FsbGV0AQAAACA+d1plWlbJ/ClXM7W8DUUtysyn+IWSDjd3WPNiFVIUEgAAAAAJa2V5QWN0aXZlAgAAAAZhY3RpdmUAAAAACGtleUNhdXNlAgAAAA5zaHV0ZG93bl9jYXVzZQAAAAAPa2V5TGFzdEludGVyZXN0AgAAAA1sYXN0X2ludGVyZXN0AAAAABNrZXlVc2VyTGFzdEludGVyZXN0AgAAAA5fbGFzdF9pbnRlcmVzdAAAAAARa2V5VXNlclNXT1BMb2NrZWQCAAAADF9TV09QX2Ftb3VudAAAAAAUa2V5VXNlckdldEJhY2tIZWlnaHQCAAAADl9nZXRCYWNrSGVpZ2h0AAAAABJrZXlUb3RhbFNXT1BMb2NrZWQCAAAAEXRvdGFsX1NXT1BfYW1vdW50AAAAABJrVXNlclRvdGFsVm90ZVNXT1ACAAAAFV91c2VyX3RvdGFsX1NXT1Bfdm90ZQAAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQCAAAAE19TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAIAAAAYdG90YWxfU1dPUF9vcHRpb25fYW1vdW50AAAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQCAAAAFF9TV09QX2NsYWltZWRfYW1vdW50AAAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50AgAAABlfU1dPUF9sYXN0X2NsYWltZWRfYW1vdW50AAAAAAtrZXlWb3RlTmFtZQIAAAAJdm90ZV9uYW1lAAAAAA1rZXlPcHRpb25OYW1lAgAAAAxfb3B0aW9uX25hbWUAAAAAFGtleVZvdGluZ1N0YXJ0SGVpZ2h0AgAAAAxfc3RhcnRIZWlnaHQAAAAAD2tleVZvdGVEdXJhdGlvbgIAAAAOX3ZvdGVfZHVyYXRpb24AAAAAHGtleVJld2FyZFBvb2xGcmFjdGlvbkN1cnJlbnQCAAAAHV9jdXJyZW50X3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwIAAAAeX3ByZXZpb3VzX3Bvb2xfZnJhY3Rpb25fcmV3YXJkAAAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24CAAAAGl9wb29sX3Jld2FyZF91cGRhdGVfaGVpZ2h0AAAAAB1rZXlUb3RhbFJld2FyZFBlckJsb2NrQ3VycmVudAIAAAAedG90YWxfcmV3YXJkX3Blcl9ibG9ja19jdXJyZW50AAAAAB5rZXlUb3RhbFJld2FyZFBlckJsb2NrUHJldmlvdXMCAAAAH3RvdGFsX3Jld2FyZF9wZXJfYmxvY2tfcHJldmlvdXMAAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAIAAAAUcmV3YXJkX3VwZGF0ZV9oZWlnaHQAAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAIAAAAlcmV3YXJkX3VwZGF0ZV9oZWlnaHRfZmlyc3RfcGFnaW5hdGlvbgAAAAAVa2V5Tm9Wb3RpbmdGb3JOZXdQb29sAgAAAAhfdm90ZV9ubwAAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAIAAAAJX3ZvdGVfeWVzAAAAABtrZXlBbW91bnRPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAEW1heF9hbW91bnRfdm90aW5nAAAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wCAAAAB19zdGF0dXMAAAAAH2tleUhlaWdodE9mUG9vbFZvdGluZ0Zvck5ld1Bvb2wCAAAADl9maW5pc2hfaGVpZ2h0AAAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAFHZvdGluZ19hY3RpdmVfY2VsbF8xAAAAABBhY3RpdmVWb3RlU2Vjb25kAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMgAAAAAPYWN0aXZlVm90ZVRoaXJkAgAAABR2b3RpbmdfYWN0aXZlX2NlbGxfMwAAAAANa2V5VGVtcEN1clN1bQIAAAASc3VtX3Jld2FyZF9jdXJyZW50AAAAAA9rZXlBZG1pblB1YktleTECAAAAC2FkbWluX3B1Yl8xAAAAAA9rZXlBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA9rZXlBZG1pblB1YktleTMCAAAAC2FkbWluX3B1Yl8zAAAAAA9vcmFjbGVBZG1pblBvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVSASQQg8oyz+7dxVOj4PLohRHZWDMPVBaoBAAAAC2dldEFkbWluUHViAAAAAQAAAAtrZXlBZG1pblB1YgQAAAAHJG1hdGNoMAkABB0AAAACBQAAAA9vcmFjbGVBZG1pblBvb2wFAAAAC2tleUFkbWluUHViAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAABnN0cmluZwUAAAAHJG1hdGNoMAkAAlkAAAABBQAAAAZzdHJpbmcEAAAAB25vdGhpbmcFAAAAByRtYXRjaDAJAAACAAAAAQIAAAAZQWRtaW4gcHVibGljIGtleSBpcyBlbXB0eQAAAAAMYWRtaW5QdWJLZXkxCQEAAAALZ2V0QWRtaW5QdWIAAAABBQAAAA9rZXlBZG1pblB1YktleTEAAAAADGFkbWluUHViS2V5MgkBAAAAC2dldEFkbWluUHViAAAAAQUAAAAPa2V5QWRtaW5QdWJLZXkyAAAAAAxhZG1pblB1YktleTMJAQAAAAtnZXRBZG1pblB1YgAAAAEFAAAAD2tleUFkbWluUHViS2V5MwAAAAAIaXNBY3RpdmUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAAJa2V5QWN0aXZlBgAAAAASZmFybWluZ1NXT1BBZGRyZXNzCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFULEuCdkaN7xkyPSmpBMwL+vYh0o63mS9mAAAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQaNn7fV6KdJ2lc/r/3JtTn+6HDaD4gyn8AAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVR2IeF5Fctzd38/oGN0UKsjLFsZGIPzS4IAAAAACWtleVNXT1BpZAIAAAAHU1dPUF9pZAAAAAAEU1dPUAkAAlkAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAABJmYXJtaW5nU1dPUEFkZHJlc3MFAAAACWtleVNXT1BpZAAAAAAKc2NhbGVWYWx1ZQAAAAAABfXhAAAAAAAOdG90YWxWb3RlU2hhcmUAAAAAAlQL5AAAAAAADGtTdGFydEhlaWdodAIAAAAMc3RhcnRfaGVpZ2h0AAAAAAtrQmFzZVBlcmlvZAIAAAALYmFzZV9wZXJpb2QAAAAADWtQZXJpb2RMZW5ndGgCAAAADXBlcmlvZF9sZW5ndGgAAAAAD2tVc2VyVG90YWxTdHJ1YwIAAAARX3VzZXJfdG90YWxfc3RydWMAAAAACmJhc2VQZXJpb2QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QFAAAAC2tCYXNlUGVyaW9kAgAAACRFbXB0eSBrQmFzZVBlcmlvZCBhdCB2b3RpbmcgY29udHJhY3QAAAAAC3N0YXJ0SGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0BQAAAAxrU3RhcnRIZWlnaHQCAAAAJUVtcHR5IGtTdGFydEhlaWdodCBhdCB2b3RpbmcgY29udHJhY3QAAAAADHBlcmlvZExlbmd0aAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAUAAAANa1BlcmlvZExlbmd0aAIAAAAmRW1wdHkga1BlcmlvZExlbmd0aCBhdCB2b3RpbmcgY29udHJhY3QAAAAAD2ZpcnN0QWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlRmlyc3QCAAAAAAAAAAAQc2Vjb25kQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAABBhY3RpdmVWb3RlU2Vjb25kAgAAAAAAAAAAD3RoaXJkQWN0aXZlVm90ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAAAAAAAAQY3VyclZvdGluZ1BlcmlvZAkAAGQAAAACBQAAAApiYXNlUGVyaW9kCQAAaQAAAAIJAABlAAAAAgUAAAAGaGVpZ2h0BQAAAAtzdGFydEhlaWdodAUAAAAMcGVyaW9kTGVuZ3RoAQAAAAdzdXNwZW5kAAAAAQAAAAVjYXVzZQkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgUAAAAJa2V5QWN0aXZlBwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAhrZXlDYXVzZQUAAAAFY2F1c2UFAAAAA25pbAEAAAASdGhyb3dOb3RFbm91Z2hTV09QAAAAAAkAAAIAAAABAgAAAEZOb3QgZW5vdWdoIFNXT1A6IHVzZXJTV09QTG9ja2VkIC0gdXNlclRvdGFsVm90ZUFtb3VudCA8IHZvdGVTV09QQW1vdW50AQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAAMbGFzdEludGVyZXN0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAD2tleUxhc3RJbnRlcmVzdAAAAAAAAAAAAAUAAAAMbGFzdEludGVyZXN0AQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQAAAAAAAAAAAABAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAAAAAAAAAQAAABZnZXRVc2VyVG90YWxWb3RlQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAEmtVc2VyVG90YWxWb3RlU1dPUAAAAAAAAAAAAAEAAAATZ2V0VXNlckludGVyZXN0SW5mbwAAAAIAAAAEdXNlcgAAAAxsYXN0SW50ZXJlc3QEAAAADnVzZXJTV09QQW1vdW50CQEAAAARZ2V0VXNlclNXT1BMb2NrZWQAAAABBQAAAAR1c2VyBAAAABB1c2VyTGFzdEludGVyZXN0CQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BAAAABV1c2VyTGFzdEludGVyZXN0VmFsdWUEAAAAByRtYXRjaDAFAAAAEHVzZXJMYXN0SW50ZXJlc3QDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0CQAFFAAAAAIFAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQUAAAAOdXNlclNXT1BBbW91bnQBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgAAAARwb29sAAAABHVzZXIEAAAABnZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sBQAAAARwb29sAP//////////BAAAAA5oZWlnaHRPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAAB9rZXlIZWlnaHRPZlBvb2xWb3RpbmdGb3JOZXdQb29sAAAAAAAAAAAABAAAAA5zdGF0dXNPZlZvdGluZwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAGkAAAAAQUAAAAGdm90aW5nBQAAABtrZXlTdGF0dXNPZlZvdGluZ0Zvck5ld1Bvb2wGBAAAAA1jdXJyZW50SGVpZ2h0BQAAAAZoZWlnaHQDCQAAZgAAAAIAAAAAAAAAAAAFAAAABnZvdGluZwAAAAAAAAAAAAMJAQAAAAEhAAAAAQUAAAAOc3RhdHVzT2ZWb3RpbmcAAAAAAAAAAAADCQAAZgAAAAIFAAAADmhlaWdodE9mVm90aW5nBQAAAA1jdXJyZW50SGVpZ2h0CQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAQdm90aW5nRm9yTmV3UG9vbAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyAgAAAAFfCQABpAAAAAEFAAAABnZvdGluZwUAAAAWa2V5WWVzVm90aW5nRm9yTmV3UG9vbAAAAAAAAAAAAAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAAGdm90aW5nBQAAABVrZXlOb1ZvdGluZ0Zvck5ld1Bvb2wAAAAAAAAAAAAAAAAAAAAAAAABAAAAIGdldFVzZXJUb3RhbFZvdGVGb3JOZXdQb29sQW1vdW50AAAAAQAAAAR1c2VyBAAAAAxsaXN0T2ZWb3RpbmcJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPZmlyc3RBY3RpdmVWb3RlBQAAAAR1c2VyCQAETAAAAAIJAQAAACBnZXRVc2VyVG90YWxWb3RlQW1vdW50Rm9yT25lUG9vbAAAAAIFAAAAEHNlY29uZEFjdGl2ZVZvdGUFAAAABHVzZXIJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAPdGhpcmRBY3RpdmVWb3RlBQAAAAR1c2VyBQAAAANuaWwJAAGWAAAAAQUAAAAMbGlzdE9mVm90aW5nAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmtleVRvdGFsU1dPUExvY2tlZAAAAAAAAAAAAAEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQAAAAR1c2VyBAAAAAskdDA2MzYwNjkxMQMJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAD2tVc2VyVG90YWxTdHJ1YwQAAAAEZGF0YQkABLUAAAACCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAPa1VzZXJUb3RhbFN0cnVjAgAAABVFbXB0eSBrVXNlclRvdGFsU3RydWMCAAAAAV8JAAUVAAAAAwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAAJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAABCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAgQAAAAOdVBvb2xUb3RhbFNXT1AJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAASa1VzZXJUb3RhbFZvdGVTV09QAAAAAAAAAAAACQAFFQAAAAMFAAAADnVQb29sVG90YWxTV09QAAAAAAAAAAAABQAAABBjdXJyVm90aW5nUGVyaW9kBAAAABF1c2VyVG90YWxWb3RlU1dPUAgFAAAACyR0MDYzNjA2OTExAAAAAl8xBAAAAAt1c2VyVW52b3RlZAgFAAAACyR0MDYzNjA2OTExAAAAAl8yBAAAABF1c2VyVW52b3RlZFBlcmlvZAgFAAAACyR0MDYzNjA2OTExAAAAAl8zBAAAABF1c2VyVW52b3RlZEFjdHVhbAMJAAAAAAAAAgUAAAARdXNlclVudm90ZWRQZXJpb2QFAAAAEGN1cnJWb3RpbmdQZXJpb2QFAAAAC3VzZXJVbnZvdGVkAAAAAAAAAAAACQAFFAAAAAIFAAAAEXVzZXJUb3RhbFZvdGVTV09QBQAAABF1c2VyVW52b3RlZEFjdHVhbAEAAAAXZ2V0VXNlclZvdGVPcHRpb25BbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AAAAAAAAAAAAAQAAABRnZXRWb3RpbmdTdGFydEhlaWdodAAAAAEAAAAIdm90ZU5hbWUJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQAAAAAAAAAAAABAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24AAAAAAAAAAAABAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEAAAAEcG9vbAkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABVrZXlIZWlnaHRQb29sRnJhY3Rpb24BAAAAEGdldEN1clBvb2xXZWlnaHQAAAABAAAABHBvb2wJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50AAAAAAAAAAAAAQAAABFnZXRQcmV2UG9vbFdlaWdodAAAAAEAAAAEcG9vbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzAAAAAAAAAAAAAQAAABNnZXRWb3RlT3B0aW9uQW1vdW50AAAAAwAAAAR1c2VyAAAACHZvdGVOYW1lAAAABm9wdGlvbgQAAAAUdXNlclZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAIdm90ZU5hbWUFAAAABm9wdGlvbgkABCUAAAABBQAAAAR1c2VyBQAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAQAAAAEdXZvYQQAAAAHJG1hdGNoMAUAAAAUdXNlclZvdGVPcHRpb25BbW91bnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAAEdXZvYQUAAAAHJG1hdGNoMAUAAAAEdXZvYQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAAEdXZvYQUAAAAHJG1hdGNoMAAAAAAAAAAAAAkAAAIAAAABAgAAAAtNYXRjaCBlcnJvcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACBQAAAAR1dm9hCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAFE5vIGRhdGEgb24gdGhlIGtleTogBQAAAAh2b3RlTmFtZQUAAAAGb3B0aW9uCQAEJQAAAAEFAAAABHVzZXIFAAAAF2tleVVzZXJWb3RlT3B0aW9uQW1vdW50AQAAAA9nZXRWb3RlRHVyYXRpb24AAAABAAAACHZvdGVOYW1lCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAh2b3RlTmFtZQUAAAAPa2V5Vm90ZUR1cmF0aW9uCQABLAAAAAIJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAACHZvdGVOYW1lBQAAAA9rZXlWb3RlRHVyYXRpb24BAAAAGGdldFRvdGFsVm90ZU9wdGlvbkFtb3VudAAAAAIAAAAIdm90ZU5hbWUAAAAGb3B0aW9uBAAAABV0b3RhbFZvdGVPcHRpb25BbW91bnQJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAAAZvcHRpb24FAAAAGGtleVRvdGFsVm90ZU9wdGlvbkFtb3VudAQAAAAEdHZvYQQAAAAHJG1hdGNoMAUAAAAVdG90YWxWb3RlT3B0aW9uQW1vdW50AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAABHR2b2EFAAAAByRtYXRjaDAFAAAABHR2b2EDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABFVuaXQEAAAABHR2b2EFAAAAByRtYXRjaDAAAAAAAAAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IFAAAABHR2b2EBAAAAFGdldFVzZXJHZXRCYWNrQW1vdW50AAAABAAAAAh2b3RlTmFtZQAAAAZvcHRpb24AAAAEdXNlcgAAABFnZXRCYWNrU1dPUEhlaWdodAQAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh2b3RlTmFtZQIAAAABXwUAAAAGb3B0aW9uAgAAAAFfCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAARZ2V0QmFja1NXT1BIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkJAAEsAAAAAgIAAAAUTm8gZGF0YSBvbiB0aGUga2V5OiAFAAAAA2tleQEAAAAJY2xhaW1DYWxjAAAAAQAAAAZjYWxsZXIEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA5MzE1OTM5NQkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACBQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDkzMTU5Mzk1AAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAACyR0MDkzMTU5Mzk1AAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAaAAAAABCQABPAAAAAMJAAE2AAAAAQUAAAAOdXNlclNXT1BMb2NrZWQJAAE2AAAAAQkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QJAAE2AAAAAQUAAAAKc2NhbGVWYWx1ZQQAAAAPdXNlck5ld0ludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QJAAUUAAAAAgUAAAAPdXNlck5ld0ludGVyZXN0BQAAAAtjbGFpbUFtb3VudAAAAAgAAAABaQEAAAAHYWlyRHJvcAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAACyR0MDk3MDM5Nzc4CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwOTcwMzk3NzgAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA5NzAzOTc3OAAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAAD3RvdGFsU1dPUExvY2tlZAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAtpbnRlcmVzdE5ldwkAAGQAAAACBQAAAAxsYXN0SW50ZXJlc3QJAAGgAAAAAQkAATwAAAADCQABNgAAAAEFAAAACXBtdEFtb3VudAkAATYAAAABBQAAAApzY2FsZVZhbHVlCQABNgAAAAEFAAAAD3RvdGFsU1dPUExvY2tlZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPa2V5TGFzdEludGVyZXN0BQAAAAtpbnRlcmVzdE5ldwUAAAADbmlsAAAAAWkBAAAACGxvY2tTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAANJHQwMTAyNTcxMDMzMgkABRQAAAACCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAZhbW91bnQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAAB2Fzc2V0SWQEAAAACXBtdEFtb3VudAgFAAAADSR0MDEwMjU3MTAzMzIAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAA0kdDAxMDI1NzEwMzMyAAAAAl8yAwkBAAAAAiE9AAAAAgUAAAAKcG10QXNzZXRJZAUAAAAEU1dPUAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcG10QXNzZXRJZAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDEwNDQ4MTA1MzAJAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAxsYXN0SW50ZXJlc3QEAAAAEHVzZXJMYXN0SW50ZXJlc3QIBQAAAA0kdDAxMDQ0ODEwNTMwAAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAADSR0MDEwNDQ4MTA1MzAAAAACXzIEAAAAC2NsYWltQW1vdW50CQABoAAAAAEJAAE8AAAAAwkAATYAAAABBQAAAA51c2VyU1dPUExvY2tlZAkAATYAAAABCQAAZQAAAAIFAAAADGxhc3RJbnRlcmVzdAUAAAAQdXNlckxhc3RJbnRlcmVzdAkAATYAAAABBQAAAApzY2FsZVZhbHVlBAAAABF1c2VyU1dPUExvY2tlZE5ldwkAAGQAAAACCQAAZAAAAAIFAAAADnVzZXJTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAAA91c2VyTmV3SW50ZXJlc3QFAAAADGxhc3RJbnRlcmVzdAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAASdG90YWxTV09QTG9ja2VkTmV3CQAAZAAAAAIJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAlwbXRBbW91bnQFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAAMd2l0aGRyYXdTV09QAAAAAQAAAA53aXRoZHJhd0Ftb3VudAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAMJAABnAAAAAgAAAAAAAAAAAAUAAAAOd2l0aGRyYXdBbW91bnQJAAACAAAAAQIAAAATd2l0aGRyYXdBbW91bnQgPD0gMAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAANJHQwMTE3MjMxMTc3OAkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAANJHQwMTE3MjMxMTc3OAAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAA0kdDAxMTcyMzExNzc4AAAAAl8yBAAAAA0kdDAxMTc4MzExODQ4CQEAAAAPZ2V0VXNlclZvdGVJbmZvAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyVm90ZUFtb3VudAgFAAAADSR0MDExNzgzMTE4NDgAAAACXzEEAAAAEHVzZXJVbnZvdGVBbW91bnQIBQAAAA0kdDAxMTc4MzExODQ4AAAAAl8yBAAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAQAAACBnZXRVc2VyVG90YWxWb3RlRm9yTmV3UG9vbEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgMDAwkAAGYAAAACAAAAAAAAAAAABQAAABB1c2VyVW52b3RlQW1vdW50BgkAAGYAAAACAAAAAAAAAAAABQAAAA51c2VyVm90ZUFtb3VudAYJAABmAAAAAgAAAAAAAAAAAAUAAAAYdXNlclZvdGVBbW91bnRGb3JOZXdQb29sCQAAAgAAAAECAAAASnVzZXJVbnZvdGVBbW91bnQgPCAwIHx8IHVzZXJWb3RlQW1vdW50IDwgMCB8fCB1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wgPCAwBAAAABJhdmFpbGFibGVUb1Vuc3Rha2UJAABlAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQJAAGWAAAAAQkABEwAAAACBQAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAARMAAAAAgkAAGQAAAACBQAAAA51c2VyVm90ZUFtb3VudAUAAAAQdXNlclVudm90ZUFtb3VudAUAAAADbmlsAwkAAGYAAAACBQAAAA53aXRoZHJhd0Ftb3VudAUAAAASYXZhaWxhYmxlVG9VbnN0YWtlCQAAAgAAAAECAAAAI3dpdGhkcmF3QW1vdW50ID4gYXZhaWxhYmxlVG9VbnN0YWtlBAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABlAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BQAAAA53aXRoZHJhd0Ftb3VudAQAAAARdXNlclNXT1BhbW91bnROZXcJAABlAAAAAgkAAGQAAAACBQAAAA51c2VyU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQFAAAADndpdGhkcmF3QW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEWtleVVzZXJTV09QTG9ja2VkBQAAABF1c2VyU1dPUGFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5VG90YWxTV09QTG9ja2VkBQAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA53aXRoZHJhd0Ftb3VudAUAAAAEU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAABRjbGFpbUFuZFdpdGhkcmF3U1dPUAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAA0kdDAxMzIyMzEzMjc4CQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMzIyMzEzMjc4AAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDEzMjIzMTMyNzgAAAACXzIEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQDCQAAAAAAAAIFAAAAC2NsYWltQW1vdW50AAAAAAAAAAAACQAAAgAAAAECAAAAGVlvdSBoYXZlIDAgYXZhaWxhYmxlIFNXT1AJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAAtjbGFpbUFtb3VudAUAAAAEU1dPUAUAAAADbmlsAAAAAWkBAAAAEWNsYWltQW5kU3Rha2VTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAAPdG90YWxTV09QTG9ja2VkCQEAAAASZ2V0VG90YWxTV09QTG9ja2VkAAAAAAQAAAAOdXNlclNXT1BMb2NrZWQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDE0MDU3MTQxMTIJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDE0MDU3MTQxMTIAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTQwNTcxNDExMgAAAAJfMgQAAAARdXNlclNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgUAAAAPdG90YWxTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAWkBAAAADXVwZGF0ZVdlaWdodHMAAAAEAAAADGN1cnJlbnRQb29scwAAAA5jdXJyZW50UmV3YXJkcwAAABJyZXdhcmRVcGRhdGVIZWlnaHQAAAAKcGFnaW5hdGlvbgMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAALYW1vdW50UG9vbHMAAAAAAAAAAAoEAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAFWtleVJld2FyZFVwZGF0ZUhlaWdodAAAAAAAAAAAAAMJAQAAAAEhAAAAAQkBAAAAD2NvbnRhaW5zRWxlbWVudAAAAAIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIFAAAADGFkbWluUHViS2V5MgkABEwAAAACBQAAAAxhZG1pblB1YktleTMJAARMAAAAAgUAAAAUYWRtaW5QdWJLZXlTdGFydFN0b3AJAARMAAAAAgUAAAARYWRtaW5QdWJLZXlXYWxsZXQFAAAAA25pbAgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgMJAABmAAAAAgkAAZAAAAABBQAAAAxjdXJyZW50UG9vbHMFAAAAC2Ftb3VudFBvb2xzCQAAAgAAAAEJAAEsAAAAAgIAAAAWTWF4IGFtb3VudCBvZiBwb29sIGlzIAkAAaQAAAABBQAAAAthbW91bnRQb29scwMJAABnAAAAAgUAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAAC1yZXdhcmRVcGRhdGVIZWlnaHQgPD0gdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAHGhlaWdodCA+PSByZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAABgwID49IHJld2FyZFVwZGF0ZUhlaWdodCAKAQAAAANzdW0AAAACAAAAAWEAAAABYgkAAGQAAAACBQAAAAFhBQAAAAFiCgEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAkBAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABBQAAAARwb29sAwMJAQAAAAEhAAAAAQkBAAAAGGlzRGVmaW5lUG9vbFVwZGF0ZUhlaWdodAAAAAEFAAAABHBvb2wGAwkBAAAAAiE9AAAAAgUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0BQAAABZwb29sUmV3YXJkVXBkYXRlSGVpZ2h0CQAAAAAAAAIFAAAAFnBvb2xSZXdhcmRVcGRhdGVIZWlnaHQFAAAAF3RvdGFsUmV3YXJkVXBkYXRlSGVpZ2h0BwQAAAAKcG9vbFJld2FyZAkBAAAAEGdldEN1clBvb2xXZWlnaHQAAAABBQAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAQAAAAKcG9vbFJld2FyZAkBAAAAEWdldFByZXZQb29sV2VpZ2h0AAAAAQUAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAKcG9vbFJld2FyZAUAAAALYWNjdW11bGF0ZWQKAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAxjdXJyZW50UG9vbHMFAAAABHBvb2wEAAAACnBvb2xSZXdhcmQJAAGRAAAAAgUAAAAOY3VycmVudFJld2FyZHMFAAAACXBvb2xJbmRleAMJAABmAAAAAgAAAAAAAAAAAAUAAAAKcG9vbFJld2FyZAkAAAIAAAABAgAAAA5Qb29sUmV3YXJkIDwgMAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAABxrZXlSZXdhcmRQb29sRnJhY3Rpb25DdXJyZW50BQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAoBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAApwb29sSGVpZ2h0BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAVa2V5SGVpZ2h0UG9vbEZyYWN0aW9uBQAAAApwb29sSGVpZ2h0BQAAAAthY2N1bXVsYXRlZAoBAAAADGdldFN1bVJld2FyZAAAAAIAAAAKY3VyVGVtcFN1bQAAAApwYWdpbmF0aW9uAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAAAAwkAAGYAAAACBQAAAApjdXJUZW1wU3VtBQAAAA50b3RhbFZvdGVTaGFyZQkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAEpzdW1SZXdhcmRQcmV2aW91cyA+IHRvdGFsVm90ZVNoYXJlIG9yIHN1bVJld2FyZEN1cnJlbnQgPiB0b3RhbFZvdGVTaGFyZSAtIAkAAaQAAAABBQAAAApwYWdpbmF0aW9uAgAAAAEgCQABpAAAAAEFAAAACmN1clRlbXBTdW0JAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAKY3VyVGVtcFN1bQUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAABBAAAABFjdXJUZW1wU3VtRnJvbUtleQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAABAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQAAAAAAAAAAAADCQAAZgAAAAIJAABkAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAARY3VyVGVtcFN1bUZyb21LZXkFAAAADnRvdGFsVm90ZVNoYXJlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAASnN1bVJld2FyZFByZXZpb3VzID4gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCA+IHRvdGFsVm90ZVNoYXJlIC0gCQABpAAAAAEFAAAACnBhZ2luYXRpb24CAAAAASAJAAGkAAAAAQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQkAAGQAAAACBQAAAApjdXJUZW1wU3VtBQAAABFjdXJUZW1wU3VtRnJvbUtleQUAAAADbmlsBQAAAANuaWwDCQAAAAAAAAIFAAAACnBhZ2luYXRpb24AAAAAAAAAAAIEAAAABmN1clN1bQkAAGQAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADWtleVRlbXBDdXJTdW0AAAAAAAAAAAAFAAAACmN1clRlbXBTdW0EAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAAAAAAAAAAAAAMJAQAAAAIhPQAAAAIFAAAABmN1clN1bQUAAAAOdG90YWxWb3RlU2hhcmUJAAACAAAAAQIAAABJc3VtUmV3YXJkUHJldmlvdXMgIT0gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCAhPSB0b3RhbFZvdGVTaGFyZQMJAQAAAAIhPQAAAAIFAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5BQAAABJyZXdhcmRVcGRhdGVIZWlnaHQJAAACAAAAAQIAAABEY3VycmVudCByZXdhcmRVcGRhdGVIZWlnaHQgIT0gcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAGY3VyU3VtBQAAAANuaWwFAAAAA25pbAkAAAIAAAABAgAAABRJbmNvcnJlY3QgcGFnaW5hdGlvbgQAAAAWcHJldmlvdXNSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxODk3MzE5MDI1BQAAAAxjdXJyZW50UG9vbHMEAAAADyRzaXplMTg5NzMxOTAyNQkAAZAAAAABBQAAAA8kbGlzdDE4OTczMTkwMjUEAAAADyRhY2MwMTg5NzMxOTAyNQUAAAADbmlsAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAAFAAAADyRhY2MwMTg5NzMxOTAyNQQAAAAPJGFjYzExODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MwMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAAAQUAAAAPJGFjYzExODk3MzE5MDI1BAAAAA8kYWNjMjE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAACBQAAAA8kYWNjMjE4OTczMTkwMjUEAAAADyRhY2MzMTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMjE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAACAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAMFAAAADyRhY2MzMTg5NzMxOTAyNQQAAAAPJGFjYzQxODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MzMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAABAUAAAAPJGFjYzQxODk3MzE5MDI1BAAAAA8kYWNjNTE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAAFBQAAAA8kYWNjNTE4OTczMTkwMjUEAAAADyRhY2M2MTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNTE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAFAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAYFAAAADyRhY2M2MTg5NzMxOTAyNQQAAAAPJGFjYzcxODk3MzE5MDI1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M2MTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTg5NzMxOTAyNQAAAAAAAAAABwUAAAAPJGFjYzcxODk3MzE5MDI1BAAAAA8kYWNjODE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxODk3MzE5MDI1CQABkQAAAAIFAAAADyRsaXN0MTg5NzMxOTAyNQAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxODk3MzE5MDI1AAAAAAAAAAAIBQAAAA8kYWNjODE4OTczMTkwMjUEAAAADyRhY2M5MTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjODE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAIAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAkFAAAADyRhY2M5MTg5NzMxOTAyNQQAAAAQJGFjYzEwMTg5NzMxOTAyNQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjOTE4OTczMTkwMjUJAAGRAAAAAgUAAAAPJGxpc3QxODk3MzE5MDI1AAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE4OTczMTkwMjUAAAAAAAAAAAoFAAAAECRhY2MxMDE4OTczMTkwMjUEAAAAECRhY2MxMTE4OTczMTkwMjUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTg5NzMxOTAyNQkAAZEAAAACBQAAAA8kbGlzdDE4OTczMTkwMjUAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAVY3VycmVudFJld2FyZEVudHJ5TmV3BAAAAA8kbGlzdDE5MDU4MTkxMTAFAAAADGN1cnJlbnRQb29scwQAAAAPJHNpemUxOTA1ODE5MTEwCQABkAAAAAEFAAAADyRsaXN0MTkwNTgxOTExMAQAAAAPJGFjYzAxOTA1ODE5MTEwBQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAAAAUAAAAPJGFjYzAxOTA1ODE5MTEwBAAAAA8kYWNjMTE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMDE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAEFAAAADyRhY2MxMTkwNTgxOTExMAQAAAAPJGFjYzIxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzExOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAACBQAAAA8kYWNjMjE5MDU4MTkxMTAEAAAADyRhY2MzMTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MyMTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAAAwUAAAAPJGFjYzMxOTA1ODE5MTEwBAAAAA8kYWNjNDE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMzE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAQFAAAADyRhY2M0MTkwNTgxOTExMAQAAAAPJGFjYzUxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzQxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAFBQAAAA8kYWNjNTE5MDU4MTkxMTAEAAAADyRhY2M2MTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M1MTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAUDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAABgUAAAAPJGFjYzYxOTA1ODE5MTEwBAAAAA8kYWNjNzE5MDU4MTkxMTAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNjE5MDU4MTkxMTAJAAGRAAAAAgUAAAAPJGxpc3QxOTA1ODE5MTEwAAAAAAAAAAAGAwkAAAAAAAACBQAAAA8kc2l6ZTE5MDU4MTkxMTAAAAAAAAAAAAcFAAAADyRhY2M3MTkwNTgxOTExMAQAAAAPJGFjYzgxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzcxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAIBQAAAA8kYWNjODE5MDU4MTkxMTAEAAAADyRhY2M5MTkwNTgxOTExMAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M4MTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAgDCQAAAAAAAAIFAAAADyRzaXplMTkwNTgxOTExMAAAAAAAAAAACQUAAAAPJGFjYzkxOTA1ODE5MTEwBAAAABAkYWNjMTAxOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzkxOTA1ODE5MTEwCQABkQAAAAIFAAAADyRsaXN0MTkwNTgxOTExMAAAAAAAAAAACQMJAAAAAAAAAgUAAAAPJHNpemUxOTA1ODE5MTEwAAAAAAAAAAAKBQAAABAkYWNjMTAxOTA1ODE5MTEwBAAAABAkYWNjMTExOTA1ODE5MTEwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAQJGFjYzEwMTkwNTgxOTExMAkAAZEAAAACBQAAAA8kbGlzdDE5MDU4MTkxMTAAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAARaGVpZ2h0RW50cnlOZXdDdXIEAAAADyRsaXN0MTkxMzkxOTE4NAUAAAAMY3VycmVudFBvb2xzBAAAAA8kc2l6ZTE5MTM5MTkxODQJAAGQAAAAAQUAAAAPJGxpc3QxOTEzOTE5MTg0BAAAAA8kYWNjMDE5MTM5MTkxODQFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAABQAAAA8kYWNjMDE5MTM5MTkxODQEAAAADyRhY2MxMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzAxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAABBQAAAA8kYWNjMTE5MTM5MTkxODQEAAAADyRhY2MyMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzExOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAQMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAACBQAAAA8kYWNjMjE5MTM5MTkxODQEAAAADyRhY2MzMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzIxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAADBQAAAA8kYWNjMzE5MTM5MTkxODQEAAAADyRhY2M0MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzMxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAAAwMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAEBQAAAA8kYWNjNDE5MTM5MTkxODQEAAAADyRhY2M1MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzQxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAFBQAAAA8kYWNjNTE5MTM5MTkxODQEAAAADyRhY2M2MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzUxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAGBQAAAA8kYWNjNjE5MTM5MTkxODQEAAAADyRhY2M3MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzYxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABgMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAHBQAAAA8kYWNjNzE5MTM5MTkxODQEAAAADyRhY2M4MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzcxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAABwMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAIBQAAAA8kYWNjODE5MTM5MTkxODQEAAAADyRhY2M5MTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAPJGFjYzgxOTEzOTE5MTg0CQABkQAAAAIFAAAADyRsaXN0MTkxMzkxOTE4NAAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTEzOTE5MTg0AAAAAAAAAAAJBQAAAA8kYWNjOTE5MTM5MTkxODQEAAAAECRhY2MxMDE5MTM5MTkxODQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M5MTkxMzkxOTE4NAkAAZEAAAACBQAAAA8kbGlzdDE5MTM5MTkxODQAAAAAAAAAAAkDCQAAAAAAAAIFAAAADyRzaXplMTkxMzkxOTE4NAAAAAAAAAAACgUAAAAQJGFjYzEwMTkxMzkxOTE4NAQAAAAQJGFjYzExMTkxMzkxOTE4NAkBAAAAEWNoYW5nZUhlaWdodEVudHJ5AAAAAgUAAAAQJGFjYzEwMTkxMzkxOTE4NAkAAZEAAAACBQAAAA8kbGlzdDE5MTM5MTkxODQAAAAAAAAAAAoJAAACAAAAAQIAAAATTGlzdCBzaXplIGV4Y2VlZCAxMAQAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAEAAAADyRsaXN0MTkyMTgxOTI1MAUAAAAOY3VycmVudFJld2FyZHMEAAAADyRzaXplMTkyMTgxOTI1MAkAAZAAAAABBQAAAA8kbGlzdDE5MjE4MTkyNTAEAAAADyRhY2MwMTkyMTgxOTI1MAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAABQAAAA8kYWNjMDE5MjE4MTkyNTAEAAAADyRhY2MxMTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2MwMTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAAAQUAAAAPJGFjYzExOTIxODE5MjUwBAAAAA8kYWNjMjE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjMTE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAABAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAIFAAAADyRhY2MyMTkyMTgxOTI1MAQAAAAPJGFjYzMxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzIxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAADBQAAAA8kYWNjMzE5MjE4MTkyNTAEAAAADyRhY2M0MTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2MzMTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAABAUAAAAPJGFjYzQxOTIxODE5MjUwBAAAAA8kYWNjNTE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjNDE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAEAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAUFAAAADyRhY2M1MTkyMTgxOTI1MAQAAAAPJGFjYzYxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzUxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAGBQAAAA8kYWNjNjE5MjE4MTkyNTAEAAAADyRhY2M3MTkyMTgxOTI1MAkBAAAAA3N1bQAAAAIFAAAADyRhY2M2MTkyMTgxOTI1MAkAAZEAAAACBQAAAA8kbGlzdDE5MjE4MTkyNTAAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTkyMTgxOTI1MAAAAAAAAAAABwUAAAAPJGFjYzcxOTIxODE5MjUwBAAAAA8kYWNjODE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjNzE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAHAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAgFAAAADyRhY2M4MTkyMTgxOTI1MAQAAAAPJGFjYzkxOTIxODE5MjUwCQEAAAADc3VtAAAAAgUAAAAPJGFjYzgxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTIxODE5MjUwAAAAAAAAAAAJBQAAAA8kYWNjOTE5MjE4MTkyNTAEAAAAECRhY2MxMDE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAAA8kYWNjOTE5MjE4MTkyNTAJAAGRAAAAAgUAAAAPJGxpc3QxOTIxODE5MjUwAAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE5MjE4MTkyNTAAAAAAAAAAAAoFAAAAECRhY2MxMDE5MjE4MTkyNTAEAAAAECRhY2MxMTE5MjE4MTkyNTAJAQAAAANzdW0AAAACBQAAABAkYWNjMTAxOTIxODE5MjUwCQABkQAAAAIFAAAADyRsaXN0MTkyMTgxOTI1MAAAAAAAAAAACgkAAAIAAAABAgAAABNMaXN0IHNpemUgZXhjZWVkIDEwBAAAAA0kdDAxOTI1NjE5MzY3CQEAAAAMZ2V0U3VtUmV3YXJkAAAAAgUAAAAUc3VtUmV3YXJkQ3VycmVudFRlbXAFAAAACnBhZ2luYXRpb24EAAAAEHN1bVJld2FyZEN1cnJlbnQIBQAAAA0kdDAxOTI1NjE5MzY3AAAAAl8xBAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQgFAAAADSR0MDE5MjU2MTkzNjcAAAACXzIEAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5AwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAG3Jld2FyZFVwZGF0ZUhlaWdodCA8IGhlaWdodAkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAAFnByZXZpb3VzUmV3YXJkRW50cnlOZXcFAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwUAAAARaGVpZ2h0RW50cnlOZXdDdXIFAAAAEHN1bVJld2FyZEN1cnJlbnQFAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5BQAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQAAAAFpAQAAAAhzaHV0ZG93bgAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAEJAAEsAAAAAgIAAAAiREFwcCBpcyBhbHJlYWR5IHN1c3BlbmRlZC4gQ2F1c2U6IAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAhrZXlDYXVzZQIAAAAadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAQAAAAdzdXNwZW5kAAAAAQIAAAAPUGF1c2VkIGJ5IGFkbWluAAAAAWkBAAAACGFjdGl2YXRlAAAAAAMFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAFkRBcHAgaXMgYWxyZWFkeSBhY3RpdmUDCQEAAAABIQAAAAEJAQAAAA9jb250YWluc0VsZW1lbnQAAAACCQAETAAAAAIFAAAADGFkbWluUHViS2V5MQkABEwAAAACBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkzCQAETAAAAAIFAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wBQAAAANuaWwIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAACFPbmx5IGFkbWluIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24JAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIFAAAACWtleUFjdGl2ZQYJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAIa2V5Q2F1c2UFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAEmFkbWluUHViS2V5MVNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxhZG1pblB1YktleTEAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5MlNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxhZG1pblB1YktleTIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEmFkbWluUHViS2V5M1NpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAxhZG1pblB1YktleTMAAAAAAAAAAAEAAAAAAAAAAAAJAABnAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAEmFkbWluUHViS2V5MVNpZ25lZAUAAAASYWRtaW5QdWJLZXkyU2lnbmVkBQAAABJhZG1pblB1YktleTNTaWduZWQAAAAAAAAAAAKpY8Lt", "height": 1612988, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 56n7J4K8cqhiw3Aw6UsvT2FNwpoXHucJnSqbKVxhLPT6 Next: B19w4a1oHoLB6JZkfhoP45ELhQebDusMwBTQ1cafH7rQ Diff:
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK' | |
5 | 5 | ||
6 | - | let b = base58' | |
6 | + | let b = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw' | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = "active" | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = "shutdown_cause" | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = "last_interest" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "_last_interest" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "_SWOP_amount" | |
17 | 17 | ||
18 | - | let h = " | |
18 | + | let h = "_getBackHeight" | |
19 | 19 | ||
20 | - | let i = "_ | |
20 | + | let i = "total_SWOP_amount" | |
21 | 21 | ||
22 | - | let j = "_SWOP_ | |
22 | + | let j = "_user_total_SWOP_vote" | |
23 | 23 | ||
24 | - | let k = "_ | |
24 | + | let k = "_SWOP_option_amount" | |
25 | 25 | ||
26 | - | let l = "total_SWOP_amount" | |
26 | + | let l = "total_SWOP_option_amount" | |
27 | 27 | ||
28 | - | let m = "_ | |
28 | + | let m = "_SWOP_claimed_amount" | |
29 | 29 | ||
30 | - | let n = "_SWOP_ | |
30 | + | let n = "_SWOP_last_claimed_amount" | |
31 | 31 | ||
32 | - | let o = " | |
32 | + | let o = "vote_name" | |
33 | 33 | ||
34 | - | let p = "_ | |
34 | + | let p = "_option_name" | |
35 | 35 | ||
36 | - | let q = "_ | |
36 | + | let q = "_startHeight" | |
37 | 37 | ||
38 | - | let r = "vote_ | |
38 | + | let r = "_vote_duration" | |
39 | 39 | ||
40 | - | let s = "_ | |
40 | + | let s = "_current_pool_fraction_reward" | |
41 | 41 | ||
42 | - | let t = "_ | |
42 | + | let t = "_previous_pool_fraction_reward" | |
43 | 43 | ||
44 | - | let u = "_ | |
44 | + | let u = "_pool_reward_update_height" | |
45 | 45 | ||
46 | - | let v = "_current | |
46 | + | let v = "total_reward_per_block_current" | |
47 | 47 | ||
48 | - | let w = "_previous | |
48 | + | let w = "total_reward_per_block_previous" | |
49 | 49 | ||
50 | - | let x = " | |
50 | + | let x = "reward_update_height" | |
51 | 51 | ||
52 | - | let y = " | |
52 | + | let y = "reward_update_height_first_pagination" | |
53 | 53 | ||
54 | - | let z = " | |
54 | + | let z = "_vote_no" | |
55 | 55 | ||
56 | - | let A = " | |
56 | + | let A = "_vote_yes" | |
57 | 57 | ||
58 | - | let B = " | |
58 | + | let B = "max_amount_voting" | |
59 | 59 | ||
60 | - | let C = "_ | |
60 | + | let C = "_status" | |
61 | 61 | ||
62 | - | let D = "_ | |
62 | + | let D = "_finish_height" | |
63 | 63 | ||
64 | - | let E = " | |
64 | + | let E = "voting_active_cell_1" | |
65 | 65 | ||
66 | - | let F = "_ | |
66 | + | let F = "voting_active_cell_2" | |
67 | 67 | ||
68 | - | let G = "_ | |
68 | + | let G = "voting_active_cell_3" | |
69 | 69 | ||
70 | - | let H = " | |
70 | + | let H = "sum_reward_current" | |
71 | 71 | ||
72 | - | let I = " | |
72 | + | let I = "admin_pub_1" | |
73 | 73 | ||
74 | - | let J = " | |
74 | + | let J = "admin_pub_2" | |
75 | 75 | ||
76 | - | let K = " | |
76 | + | let K = "admin_pub_3" | |
77 | 77 | ||
78 | - | let L = | |
78 | + | let L = Address(base58'3N1cPjixuHTujhGvb5HQoFvGt4fkUG8o3KF') | |
79 | 79 | ||
80 | - | let M = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT') | |
81 | - | ||
82 | - | let N = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ') | |
83 | - | ||
84 | - | let O = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb') | |
85 | - | ||
86 | - | let P = "SWOP_id" | |
87 | - | ||
88 | - | let Q = fromBase58String(getStringValue(M, P)) | |
89 | - | ||
90 | - | let R = 100000000 | |
91 | - | ||
92 | - | let S = 10000000000 | |
93 | - | ||
94 | - | let T = "start_height" | |
95 | - | ||
96 | - | let U = "base_period" | |
97 | - | ||
98 | - | let V = "period_length" | |
99 | - | ||
100 | - | let W = "_user_total_struc" | |
101 | - | ||
102 | - | let X = valueOrErrorMessage(getInteger(N, U), "Empty kBasePeriod at voting contract") | |
103 | - | ||
104 | - | let Y = valueOrErrorMessage(getInteger(N, T), "Empty kStartHeight at voting contract") | |
105 | - | ||
106 | - | let Z = valueOrErrorMessage(getInteger(N, V), "Empty kPeriodLength at voting contract") | |
107 | - | ||
108 | - | let aa = valueOrElse(getString(O, H), "") | |
109 | - | ||
110 | - | let ab = valueOrElse(getString(O, I), "") | |
111 | - | ||
112 | - | let ac = valueOrElse(getString(O, J), "") | |
113 | - | ||
114 | - | let ad = (X + ((height - Y) / Z)) | |
115 | - | ||
116 | - | func ae (af) = [BooleanEntry(f, false), StringEntry(g, af)] | |
117 | - | ||
118 | - | ||
119 | - | func ag () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount") | |
120 | - | ||
121 | - | ||
122 | - | func ah () = { | |
123 | - | let ai = valueOrElse(getInteger(this, h), 0) | |
124 | - | ai | |
80 | + | func M (N) = { | |
81 | + | let O = getString(L, N) | |
82 | + | if ($isInstanceOf(O, "String")) | |
83 | + | then { | |
84 | + | let P = O | |
85 | + | fromBase58String(P) | |
86 | + | } | |
87 | + | else { | |
88 | + | let Q = O | |
89 | + | throw("Admin public key is empty") | |
90 | + | } | |
125 | 91 | } | |
126 | 92 | ||
127 | 93 | ||
128 | - | func aj (ak) = valueOrElse(getInteger(this, (toString(ak) + j)), 0) | |
94 | + | let R = M(I) | |
95 | + | ||
96 | + | let S = M(J) | |
97 | + | ||
98 | + | let T = M(K) | |
99 | + | ||
100 | + | let U = valueOrElse(getBoolean(this, c), true) | |
101 | + | ||
102 | + | let V = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT') | |
103 | + | ||
104 | + | let W = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ') | |
105 | + | ||
106 | + | let X = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb') | |
107 | + | ||
108 | + | let Y = "SWOP_id" | |
109 | + | ||
110 | + | let Z = fromBase58String(getStringValue(V, Y)) | |
111 | + | ||
112 | + | let aa = 100000000 | |
113 | + | ||
114 | + | let ab = 10000000000 | |
115 | + | ||
116 | + | let ac = "start_height" | |
117 | + | ||
118 | + | let ad = "base_period" | |
119 | + | ||
120 | + | let ae = "period_length" | |
121 | + | ||
122 | + | let af = "_user_total_struc" | |
123 | + | ||
124 | + | let ag = valueOrErrorMessage(getInteger(W, ad), "Empty kBasePeriod at voting contract") | |
125 | + | ||
126 | + | let ah = valueOrErrorMessage(getInteger(W, ac), "Empty kStartHeight at voting contract") | |
127 | + | ||
128 | + | let ai = valueOrErrorMessage(getInteger(W, ae), "Empty kPeriodLength at voting contract") | |
129 | + | ||
130 | + | let aj = valueOrElse(getString(X, E), "") | |
131 | + | ||
132 | + | let ak = valueOrElse(getString(X, F), "") | |
133 | + | ||
134 | + | let al = valueOrElse(getString(X, G), "") | |
135 | + | ||
136 | + | let am = (ag + ((height - ah) / ai)) | |
137 | + | ||
138 | + | func an (ao) = [BooleanEntry(c, false), StringEntry(d, ao)] | |
129 | 139 | ||
130 | 140 | ||
131 | - | func | |
141 | + | func ap () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount") | |
132 | 142 | ||
133 | 143 | ||
134 | - | func am (ak) = valueOrElse(getInteger(N, (toString(ak) + m)), 0) | |
135 | - | ||
136 | - | ||
137 | - | func an (ak,ai) = { | |
138 | - | let ao = aj(ak) | |
139 | - | let ap = getInteger(this, (toString(ak) + i)) | |
140 | - | let aq = { | |
141 | - | let ar = ap | |
142 | - | if ($isInstanceOf(ar, "Int")) | |
143 | - | then { | |
144 | - | let ap = ar | |
145 | - | ap | |
146 | - | } | |
147 | - | else ai | |
148 | - | } | |
149 | - | $Tuple2(aq, ao) | |
144 | + | func aq () = { | |
145 | + | let ar = valueOrElse(getInteger(this, e), 0) | |
146 | + | ar | |
150 | 147 | } | |
151 | 148 | ||
152 | 149 | ||
153 | - | func as (at,ak) = { | |
154 | - | let au = valueOrElse(getInteger(O, at), -1) | |
155 | - | let av = valueOrElse(getInteger(O, (toString(au) + G)), 0) | |
156 | - | let aw = valueOrElse(getBoolean(O, (toString(au) + F)), true) | |
157 | - | let ax = height | |
158 | - | if ((0 > au)) | |
150 | + | func as (at) = valueOrElse(getInteger(this, (toString(at) + g)), 0) | |
151 | + | ||
152 | + | ||
153 | + | func au (at) = valueOrElse(getInteger(this, (toString(at) + m)), 0) | |
154 | + | ||
155 | + | ||
156 | + | func av (at) = valueOrElse(getInteger(W, (toString(at) + j)), 0) | |
157 | + | ||
158 | + | ||
159 | + | func aw (at,ar) = { | |
160 | + | let ax = as(at) | |
161 | + | let ay = getInteger(this, (toString(at) + f)) | |
162 | + | let az = { | |
163 | + | let O = ay | |
164 | + | if ($isInstanceOf(O, "Int")) | |
165 | + | then { | |
166 | + | let ay = O | |
167 | + | ay | |
168 | + | } | |
169 | + | else ar | |
170 | + | } | |
171 | + | $Tuple2(az, ax) | |
172 | + | } | |
173 | + | ||
174 | + | ||
175 | + | func aA (aB,at) = { | |
176 | + | let aC = valueOrElse(getInteger(X, aB), -1) | |
177 | + | let aD = valueOrElse(getInteger(X, (toString(aC) + D)), 0) | |
178 | + | let aE = valueOrElse(getBoolean(X, (toString(aC) + C)), true) | |
179 | + | let aF = height | |
180 | + | if ((0 > aC)) | |
159 | 181 | then 0 | |
160 | - | else if (!( | |
182 | + | else if (!(aE)) | |
161 | 183 | then 0 | |
162 | - | else if (( | |
163 | - | then (valueOrElse(getInteger( | |
184 | + | else if ((aD > aF)) | |
185 | + | then (valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + A)), 0) + valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + z)), 0)) | |
164 | 186 | else 0 | |
165 | 187 | } | |
166 | 188 | ||
167 | 189 | ||
168 | - | func | |
169 | - | let | |
170 | - | max( | |
190 | + | func aG (at) = { | |
191 | + | let aH = [aA(aj, at), aA(ak, at), aA(al, at)] | |
192 | + | max(aH) | |
171 | 193 | } | |
172 | 194 | ||
173 | 195 | ||
174 | - | func | |
196 | + | func aI () = valueOrElse(getInteger(this, i), 0) | |
175 | 197 | ||
176 | 198 | ||
177 | - | func | |
178 | - | let | |
199 | + | func aJ (at) = { | |
200 | + | let aK = if (isDefined(getString(W, (toString(at) + af)))) | |
179 | 201 | then { | |
180 | - | let | |
181 | - | $Tuple3(parseIntValue( | |
202 | + | let aL = split(valueOrErrorMessage(getString(W, (toString(at) + af)), "Empty kUserTotalStruc"), "_") | |
203 | + | $Tuple3(parseIntValue(aL[0]), parseIntValue(aL[1]), parseIntValue(aL[2])) | |
182 | 204 | } | |
183 | 205 | else { | |
184 | - | let | |
185 | - | $Tuple3( | |
206 | + | let aM = valueOrElse(getInteger(W, (toString(at) + j)), 0) | |
207 | + | $Tuple3(aM, 0, am) | |
186 | 208 | } | |
187 | - | let | |
188 | - | let | |
189 | - | let | |
190 | - | let | |
191 | - | then | |
209 | + | let aN = aK._1 | |
210 | + | let aO = aK._2 | |
211 | + | let aP = aK._3 | |
212 | + | let aQ = if ((aP == am)) | |
213 | + | then aO | |
192 | 214 | else 0 | |
193 | - | $Tuple2( | |
215 | + | $Tuple2(aN, aQ) | |
194 | 216 | } | |
195 | 217 | ||
196 | 218 | ||
197 | - | func | |
219 | + | func aR (at) = valueOrElse(getInteger(this, (toString(at) + k)), 0) | |
198 | 220 | ||
199 | 221 | ||
200 | - | func | |
222 | + | func aS (aT) = valueOrElse(getInteger(this, (aT + q)), 0) | |
201 | 223 | ||
202 | 224 | ||
203 | - | func | |
225 | + | func aU (aB) = valueOrElse(getInteger(this, (aB + u)), 0) | |
204 | 226 | ||
205 | 227 | ||
206 | - | func | |
228 | + | func aV (aB) = isDefined(getInteger(this, (aB + u))) | |
207 | 229 | ||
208 | 230 | ||
209 | - | func | |
231 | + | func aW (aB) = valueOrElse(getInteger(this, (aB + s)), 0) | |
210 | 232 | ||
211 | 233 | ||
212 | - | func | |
234 | + | func aX (aB) = valueOrElse(getInteger(this, (aB + t)), 0) | |
213 | 235 | ||
214 | 236 | ||
215 | - | func | |
216 | - | let | |
217 | - | let | |
218 | - | let | |
219 | - | if ($isInstanceOf( | |
237 | + | func aY (at,aT,aZ) = { | |
238 | + | let ba = getInteger(this, (((aT + aZ) + toString(at)) + k)) | |
239 | + | let bb = { | |
240 | + | let O = ba | |
241 | + | if ($isInstanceOf(O, "Int")) | |
220 | 242 | then { | |
221 | - | let | |
222 | - | | |
243 | + | let bb = O | |
244 | + | bb | |
223 | 245 | } | |
224 | - | else if ($isInstanceOf( | |
246 | + | else if ($isInstanceOf(O, "Unit")) | |
225 | 247 | then { | |
226 | - | let | |
248 | + | let bb = O | |
227 | 249 | 0 | |
228 | 250 | } | |
229 | 251 | else throw("Match error") | |
230 | 252 | } | |
231 | - | valueOrErrorMessage( | |
253 | + | valueOrErrorMessage(bb, (((("No data on the key: " + aT) + aZ) + toString(at)) + k)) | |
232 | 254 | } | |
233 | 255 | ||
234 | 256 | ||
235 | - | func | |
257 | + | func bc (aT) = valueOrErrorMessage(getInteger(this, (aT + r)), (("No data on the key: " + aT) + r)) | |
236 | 258 | ||
237 | 259 | ||
238 | - | func | |
239 | - | let | |
240 | - | let | |
241 | - | let | |
242 | - | if ($isInstanceOf( | |
260 | + | func bd (aT,aZ) = { | |
261 | + | let be = getInteger(this, ((aT + aZ) + l)) | |
262 | + | let bf = { | |
263 | + | let O = be | |
264 | + | if ($isInstanceOf(O, "Int")) | |
243 | 265 | then { | |
244 | - | let | |
245 | - | | |
266 | + | let bf = O | |
267 | + | bf | |
246 | 268 | } | |
247 | - | else if ($isInstanceOf( | |
269 | + | else if ($isInstanceOf(O, "Unit")) | |
248 | 270 | then { | |
249 | - | let | |
271 | + | let bf = O | |
250 | 272 | 0 | |
251 | 273 | } | |
252 | 274 | else throw("Match error") | |
253 | 275 | } | |
254 | - | | |
276 | + | bf | |
255 | 277 | } | |
256 | 278 | ||
257 | 279 | ||
258 | - | func | |
259 | - | let | |
260 | - | valueOrErrorMessage(getInteger(this, | |
280 | + | func bg (aT,aZ,at,bh) = { | |
281 | + | let bi = ((((((aT + "_") + aZ) + "_") + toString(at)) + "_") + toString(bh)) | |
282 | + | valueOrErrorMessage(getInteger(this, bi), ("No data on the key: " + bi)) | |
261 | 283 | } | |
262 | 284 | ||
263 | 285 | ||
264 | - | func | |
265 | - | let | |
266 | - | let | |
267 | - | let | |
268 | - | let | |
269 | - | let | |
270 | - | let | |
271 | - | $Tuple2( | |
286 | + | func bj (bk) = { | |
287 | + | let ar = aq() | |
288 | + | let bl = aw(bk, ar) | |
289 | + | let ay = bl._1 | |
290 | + | let bm = bl._2 | |
291 | + | let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa))) | |
292 | + | let bo = ar | |
293 | + | $Tuple2(bo, bn) | |
272 | 294 | } | |
273 | 295 | ||
274 | 296 | ||
275 | - | @Callable( | |
276 | - | func airDrop () = if (!( | |
297 | + | @Callable(bp) | |
298 | + | func airDrop () = if (!(U)) | |
277 | 299 | then throw("DApp is inactive at this moment") | |
278 | 300 | else { | |
279 | - | let | |
280 | - | let | |
281 | - | let | |
282 | - | if (( | |
301 | + | let bq = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId) | |
302 | + | let br = bq._1 | |
303 | + | let bs = bq._2 | |
304 | + | if ((bs != Z)) | |
283 | 305 | then throw("Incorrect pmtAssetId") | |
284 | 306 | else { | |
285 | - | let | |
286 | - | let | |
287 | - | let | |
288 | - | [IntegerEntry( | |
307 | + | let bt = aI() | |
308 | + | let ar = aq() | |
309 | + | let bu = (ar + toInt(fraction(toBigInt(br), toBigInt(aa), toBigInt(bt)))) | |
310 | + | [IntegerEntry(e, bu)] | |
289 | 311 | } | |
290 | 312 | } | |
291 | 313 | ||
292 | 314 | ||
293 | 315 | ||
294 | - | @Callable( | |
295 | - | func lockSWOP () = if (!( | |
316 | + | @Callable(bp) | |
317 | + | func lockSWOP () = if (!(U)) | |
296 | 318 | then throw("DApp is inactive at this moment") | |
297 | 319 | else { | |
298 | - | let | |
299 | - | let | |
300 | - | let | |
301 | - | if (( | |
320 | + | let bv = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId) | |
321 | + | let br = bv._1 | |
322 | + | let bs = bv._2 | |
323 | + | if ((bs != Z)) | |
302 | 324 | then throw("Incorrect pmtAssetId") | |
303 | 325 | else { | |
304 | - | let | |
305 | - | let | |
306 | - | let | |
307 | - | let | |
308 | - | let | |
309 | - | let | |
310 | - | let | |
311 | - | let | |
312 | - | let | |
313 | - | let | |
314 | - | let | |
315 | - | [IntegerEntry((toString( | |
326 | + | let ar = aq() | |
327 | + | let bw = aw(bp.caller, ar) | |
328 | + | let ay = bw._1 | |
329 | + | let bm = bw._2 | |
330 | + | let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa))) | |
331 | + | let bx = ((bm + br) + bn) | |
332 | + | let bo = ar | |
333 | + | let bt = aI() | |
334 | + | let by = ((bt + br) + bn) | |
335 | + | let bz = au(bp.caller) | |
336 | + | let bA = (bz + bn) | |
337 | + | [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)] | |
316 | 338 | } | |
317 | 339 | } | |
318 | 340 | ||
319 | 341 | ||
320 | 342 | ||
321 | - | @Callable( | |
322 | - | func withdrawSWOP ( | |
343 | + | @Callable(bp) | |
344 | + | func withdrawSWOP (bB) = if (!(U)) | |
323 | 345 | then throw("DApp is inactive at this moment") | |
324 | - | else if ((0 >= | |
346 | + | else if ((0 >= bB)) | |
325 | 347 | then throw("withdrawAmount <= 0") | |
326 | 348 | else { | |
327 | - | let | |
328 | - | let | |
329 | - | let | |
330 | - | let | |
331 | - | let | |
332 | - | let | |
333 | - | let | |
334 | - | let | |
335 | - | let | |
336 | - | if (if (if ((0 > | |
349 | + | let bt = aI() | |
350 | + | let bm = as(bp.caller) | |
351 | + | let bC = bj(bp.caller) | |
352 | + | let bo = bC._1 | |
353 | + | let bn = bC._2 | |
354 | + | let bD = aJ(bp.caller) | |
355 | + | let bE = bD._1 | |
356 | + | let bF = bD._2 | |
357 | + | let bG = aG(bp.caller) | |
358 | + | if (if (if ((0 > bF)) | |
337 | 359 | then true | |
338 | - | else (0 > | |
360 | + | else (0 > bE)) | |
339 | 361 | then true | |
340 | - | else (0 > | |
362 | + | else (0 > bG)) | |
341 | 363 | then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0") | |
342 | 364 | else { | |
343 | - | let | |
344 | - | if (( | |
365 | + | let bH = (bm - max([bG, (bE + bF)])) | |
366 | + | if ((bB > bH)) | |
345 | 367 | then throw("withdrawAmount > availableToUnstake") | |
346 | 368 | else { | |
347 | - | let | |
348 | - | let | |
349 | - | let | |
350 | - | let | |
351 | - | [IntegerEntry((toString( | |
369 | + | let by = ((bt + bn) - bB) | |
370 | + | let bI = ((bm + bn) - bB) | |
371 | + | let bz = au(bp.caller) | |
372 | + | let bA = (bz + bn) | |
373 | + | [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bI), IntegerEntry(i, by), ScriptTransfer(bp.caller, bB, Z), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)] | |
352 | 374 | } | |
353 | 375 | } | |
354 | 376 | } | |
355 | 377 | ||
356 | 378 | ||
357 | 379 | ||
358 | - | @Callable( | |
359 | - | func claimAndWithdrawSWOP () = if (!( | |
380 | + | @Callable(bp) | |
381 | + | func claimAndWithdrawSWOP () = if (!(U)) | |
360 | 382 | then throw("DApp is inactive at this moment") | |
361 | 383 | else { | |
362 | - | let | |
363 | - | let | |
364 | - | let | |
365 | - | let | |
366 | - | let | |
367 | - | let | |
368 | - | if (( | |
384 | + | let ar = aq() | |
385 | + | let bJ = bj(bp.caller) | |
386 | + | let bo = bJ._1 | |
387 | + | let bn = bJ._2 | |
388 | + | let bz = au(bp.caller) | |
389 | + | let bA = (bz + bn) | |
390 | + | if ((bn == 0)) | |
369 | 391 | then throw("You have 0 available SWOP") | |
370 | - | else [IntegerEntry((toString( | |
392 | + | else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn), ScriptTransfer(bp.caller, bn, Z)] | |
371 | 393 | } | |
372 | 394 | ||
373 | 395 | ||
374 | 396 | ||
375 | - | @Callable( | |
376 | - | func claimAndStakeSWOP () = if (!( | |
397 | + | @Callable(bp) | |
398 | + | func claimAndStakeSWOP () = if (!(U)) | |
377 | 399 | then throw("DApp is inactive at this moment") | |
378 | 400 | else { | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | let | |
386 | - | let | |
387 | - | let | |
388 | - | let | |
389 | - | if (( | |
401 | + | let bt = aI() | |
402 | + | let bm = as(bp.caller) | |
403 | + | let ar = aq() | |
404 | + | let bK = bj(bp.caller) | |
405 | + | let bo = bK._1 | |
406 | + | let bn = bK._2 | |
407 | + | let bx = (bm + bn) | |
408 | + | let by = (bt + bn) | |
409 | + | let bz = au(bp.caller) | |
410 | + | let bA = (bz + bn) | |
411 | + | if ((bn == 0)) | |
390 | 412 | then throw("You have 0 available SWOP") | |
391 | - | else [IntegerEntry((toString( | |
413 | + | else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)] | |
392 | 414 | } | |
393 | 415 | ||
394 | 416 | ||
395 | 417 | ||
396 | - | @Callable( | |
397 | - | func updateWeights ( | |
418 | + | @Callable(bp) | |
419 | + | func updateWeights (bL,bM,bN,bO) = if (!(U)) | |
398 | 420 | then throw("DApp is inactive at this moment") | |
399 | 421 | else { | |
400 | - | let | |
401 | - | let | |
402 | - | if (!(containsElement([a, b | |
422 | + | let bP = 10 | |
423 | + | let bQ = valueOrElse(getInteger(this, x), 0) | |
424 | + | if (!(containsElement([R, S, T, a, b], bp.callerPublicKey))) | |
403 | 425 | then throw("Only admin can call this function") | |
404 | - | else if ((size( | |
405 | - | then throw(("Max amount of pool is " + toString( | |
406 | - | else if (( | |
426 | + | else if ((size(bL) > bP)) | |
427 | + | then throw(("Max amount of pool is " + toString(bP))) | |
428 | + | else if ((bQ >= bN)) | |
407 | 429 | then throw("rewardUpdateHeight <= totalRewardUpdateHeight") | |
408 | - | else if ((height >= | |
430 | + | else if ((height >= bN)) | |
409 | 431 | then throw("height >= rewardUpdateHeight") | |
410 | - | else if ((0 >= | |
432 | + | else if ((0 >= bN)) | |
411 | 433 | then throw("0 >= rewardUpdateHeight ") | |
412 | 434 | else { | |
413 | - | func | |
435 | + | func bR (bS,bT) = (bS + bT) | |
414 | 436 | ||
415 | - | func | |
416 | - | let | |
417 | - | if (if (!( | |
437 | + | func bU (bV,aB) = { | |
438 | + | let bW = aU(aB) | |
439 | + | if (if (!(aV(aB))) | |
418 | 440 | then true | |
419 | - | else if (( | |
420 | - | then ( | |
441 | + | else if ((bN != bW)) | |
442 | + | then (bW == bQ) | |
421 | 443 | else false) | |
422 | 444 | then { | |
423 | - | let | |
424 | - | IntegerEntry(( | |
445 | + | let bX = aW(aB) | |
446 | + | IntegerEntry((aB + t), bX) :: bV | |
425 | 447 | } | |
426 | 448 | else { | |
427 | - | let | |
428 | - | IntegerEntry(( | |
449 | + | let bX = aX(aB) | |
450 | + | IntegerEntry((aB + t), bX) :: bV | |
429 | 451 | } | |
430 | 452 | } | |
431 | 453 | ||
432 | - | func | |
433 | - | let | |
434 | - | let | |
435 | - | if ((0 > | |
454 | + | func bY (bV,aB) = { | |
455 | + | let bZ = value(indexOf(bL, aB)) | |
456 | + | let bX = bM[bZ] | |
457 | + | if ((0 > bX)) | |
436 | 458 | then throw("PoolReward < 0") | |
437 | - | else IntegerEntry(( | |
459 | + | else IntegerEntry((aB + s), bX) :: bV | |
438 | 460 | } | |
439 | 461 | ||
440 | - | func | |
441 | - | let | |
442 | - | IntegerEntry(( | |
462 | + | func ca (bV,aB) = { | |
463 | + | let cb = bN | |
464 | + | IntegerEntry((aB + u), cb) :: bV | |
443 | 465 | } | |
444 | 466 | ||
445 | - | func | |
446 | - | then if (( | |
447 | - | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString( | |
448 | - | else $Tuple2([IntegerEntry( | |
449 | - | else if (( | |
467 | + | func cc (cd,bO) = if ((bO == 0)) | |
468 | + | then if ((cd > ab)) | |
469 | + | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString(cd))) | |
470 | + | else $Tuple2([IntegerEntry(H, cd)], [IntegerEntry(y, bN)]) | |
471 | + | else if ((bO == 1)) | |
450 | 472 | then { | |
451 | - | let | |
452 | - | let | |
453 | - | if ((( | |
454 | - | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString( | |
455 | - | else if (( | |
473 | + | let ce = valueOrElse(getInteger(this, H), 0) | |
474 | + | let cf = valueOrElse(getInteger(this, y), 0) | |
475 | + | if (((cd + ce) > ab)) | |
476 | + | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString((cd + ce)))) | |
477 | + | else if ((cf != bN)) | |
456 | 478 | then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry") | |
457 | - | else $Tuple2([IntegerEntry( | |
479 | + | else $Tuple2([IntegerEntry(H, (cd + ce))], nil) | |
458 | 480 | } | |
459 | - | else if (( | |
481 | + | else if ((bO == 2)) | |
460 | 482 | then { | |
461 | - | let | |
462 | - | let | |
463 | - | if (( | |
483 | + | let cg = (valueOrElse(getInteger(this, H), 0) + cd) | |
484 | + | let cf = valueOrElse(getInteger(this, y), 0) | |
485 | + | if ((cg != ab)) | |
464 | 486 | then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare") | |
465 | - | else if (( | |
487 | + | else if ((cf != bN)) | |
466 | 488 | then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry") | |
467 | - | else $Tuple2([IntegerEntry( | |
489 | + | else $Tuple2([IntegerEntry(H, cg)], nil) | |
468 | 490 | } | |
469 | 491 | else throw("Incorrect pagination") | |
470 | 492 | ||
471 | - | let | |
472 | - | let | |
473 | - | let | |
474 | - | let | |
475 | - | if (( | |
476 | - | then | |
493 | + | let ch = { | |
494 | + | let ci = bL | |
495 | + | let cj = size(ci) | |
496 | + | let ck = nil | |
497 | + | if ((cj == 0)) | |
498 | + | then ck | |
477 | 499 | else { | |
478 | - | let | |
479 | - | if (( | |
480 | - | then | |
500 | + | let cl = bU(ck, ci[0]) | |
501 | + | if ((cj == 1)) | |
502 | + | then cl | |
481 | 503 | else { | |
482 | - | let | |
483 | - | if (( | |
484 | - | then | |
504 | + | let cm = bU(cl, ci[1]) | |
505 | + | if ((cj == 2)) | |
506 | + | then cm | |
485 | 507 | else { | |
486 | - | let | |
487 | - | if (( | |
488 | - | then | |
508 | + | let cn = bU(cm, ci[2]) | |
509 | + | if ((cj == 3)) | |
510 | + | then cn | |
489 | 511 | else { | |
490 | - | let | |
491 | - | if (( | |
492 | - | then | |
512 | + | let co = bU(cn, ci[3]) | |
513 | + | if ((cj == 4)) | |
514 | + | then co | |
493 | 515 | else { | |
494 | - | let | |
495 | - | if (( | |
496 | - | then | |
516 | + | let cp = bU(co, ci[4]) | |
517 | + | if ((cj == 5)) | |
518 | + | then cp | |
497 | 519 | else { | |
498 | - | let | |
499 | - | if (( | |
500 | - | then | |
520 | + | let cq = bU(cp, ci[5]) | |
521 | + | if ((cj == 6)) | |
522 | + | then cq | |
501 | 523 | else { | |
502 | - | let | |
503 | - | if (( | |
504 | - | then | |
524 | + | let cr = bU(cq, ci[6]) | |
525 | + | if ((cj == 7)) | |
526 | + | then cr | |
505 | 527 | else { | |
506 | - | let | |
507 | - | if (( | |
508 | - | then | |
528 | + | let cs = bU(cr, ci[7]) | |
529 | + | if ((cj == 8)) | |
530 | + | then cs | |
509 | 531 | else { | |
510 | - | let | |
511 | - | if (( | |
512 | - | then | |
532 | + | let ct = bU(cs, ci[8]) | |
533 | + | if ((cj == 9)) | |
534 | + | then ct | |
513 | 535 | else { | |
514 | - | let | |
515 | - | if (( | |
516 | - | then | |
536 | + | let cu = bU(ct, ci[9]) | |
537 | + | if ((cj == 10)) | |
538 | + | then cu | |
517 | 539 | else { | |
518 | - | let | |
540 | + | let cv = bU(cu, ci[10]) | |
519 | 541 | throw("List size exceed 10") | |
520 | 542 | } | |
521 | 543 | } | |
529 | 551 | } | |
530 | 552 | } | |
531 | 553 | } | |
532 | - | let | |
533 | - | let | |
534 | - | let | |
535 | - | let | |
536 | - | if (( | |
537 | - | then | |
554 | + | let cw = { | |
555 | + | let cx = bL | |
556 | + | let cy = size(cx) | |
557 | + | let cz = nil | |
558 | + | if ((cy == 0)) | |
559 | + | then cz | |
538 | 560 | else { | |
539 | - | let | |
540 | - | if (( | |
541 | - | then | |
561 | + | let cA = bY(cz, cx[0]) | |
562 | + | if ((cy == 1)) | |
563 | + | then cA | |
542 | 564 | else { | |
543 | - | let | |
544 | - | if (( | |
545 | - | then | |
565 | + | let cB = bY(cA, cx[1]) | |
566 | + | if ((cy == 2)) | |
567 | + | then cB | |
546 | 568 | else { | |
547 | - | let | |
548 | - | if (( | |
549 | - | then | |
569 | + | let cC = bY(cB, cx[2]) | |
570 | + | if ((cy == 3)) | |
571 | + | then cC | |
550 | 572 | else { | |
551 | - | let | |
552 | - | if (( | |
553 | - | then | |
573 | + | let cD = bY(cC, cx[3]) | |
574 | + | if ((cy == 4)) | |
575 | + | then cD | |
554 | 576 | else { | |
555 | - | let | |
556 | - | if (( | |
557 | - | then | |
577 | + | let cE = bY(cD, cx[4]) | |
578 | + | if ((cy == 5)) | |
579 | + | then cE | |
558 | 580 | else { | |
559 | - | let | |
560 | - | if (( | |
561 | - | then | |
581 | + | let cF = bY(cE, cx[5]) | |
582 | + | if ((cy == 6)) | |
583 | + | then cF | |
562 | 584 | else { | |
563 | - | let | |
564 | - | if (( | |
565 | - | then | |
585 | + | let cG = bY(cF, cx[6]) | |
586 | + | if ((cy == 7)) | |
587 | + | then cG | |
566 | 588 | else { | |
567 | - | let | |
568 | - | if (( | |
569 | - | then | |
589 | + | let cH = bY(cG, cx[7]) | |
590 | + | if ((cy == 8)) | |
591 | + | then cH | |
570 | 592 | else { | |
571 | - | let | |
572 | - | if (( | |
573 | - | then | |
593 | + | let cI = bY(cH, cx[8]) | |
594 | + | if ((cy == 9)) | |
595 | + | then cI | |
574 | 596 | else { | |
575 | - | let | |
576 | - | if (( | |
577 | - | then | |
597 | + | let cJ = bY(cI, cx[9]) | |
598 | + | if ((cy == 10)) | |
599 | + | then cJ | |
578 | 600 | else { | |
579 | - | let | |
601 | + | let cK = bY(cJ, cx[10]) | |
580 | 602 | throw("List size exceed 10") | |
581 | 603 | } | |
582 | 604 | } | |
590 | 612 | } | |
591 | 613 | } | |
592 | 614 | } | |
593 | - | let | |
594 | - | let | |
595 | - | let | |
596 | - | let | |
597 | - | if (( | |
598 | - | then | |
615 | + | let cL = { | |
616 | + | let cM = bL | |
617 | + | let cN = size(cM) | |
618 | + | let cO = nil | |
619 | + | if ((cN == 0)) | |
620 | + | then cO | |
599 | 621 | else { | |
600 | - | let | |
601 | - | if (( | |
602 | - | then | |
622 | + | let cP = ca(cO, cM[0]) | |
623 | + | if ((cN == 1)) | |
624 | + | then cP | |
603 | 625 | else { | |
604 | - | let | |
605 | - | if (( | |
606 | - | then | |
626 | + | let cQ = ca(cP, cM[1]) | |
627 | + | if ((cN == 2)) | |
628 | + | then cQ | |
607 | 629 | else { | |
608 | - | let | |
609 | - | if (( | |
610 | - | then | |
630 | + | let cR = ca(cQ, cM[2]) | |
631 | + | if ((cN == 3)) | |
632 | + | then cR | |
611 | 633 | else { | |
612 | - | let | |
613 | - | if (( | |
614 | - | then | |
634 | + | let cS = ca(cR, cM[3]) | |
635 | + | if ((cN == 4)) | |
636 | + | then cS | |
615 | 637 | else { | |
616 | - | let | |
617 | - | if (( | |
618 | - | then | |
638 | + | let cT = ca(cS, cM[4]) | |
639 | + | if ((cN == 5)) | |
640 | + | then cT | |
619 | 641 | else { | |
620 | - | let | |
621 | - | if (( | |
622 | - | then | |
642 | + | let cU = ca(cT, cM[5]) | |
643 | + | if ((cN == 6)) | |
644 | + | then cU | |
623 | 645 | else { | |
624 | - | let | |
625 | - | if (( | |
626 | - | then | |
646 | + | let cV = ca(cU, cM[6]) | |
647 | + | if ((cN == 7)) | |
648 | + | then cV | |
627 | 649 | else { | |
628 | - | let | |
629 | - | if (( | |
630 | - | then | |
650 | + | let cW = ca(cV, cM[7]) | |
651 | + | if ((cN == 8)) | |
652 | + | then cW | |
631 | 653 | else { | |
632 | - | let | |
633 | - | if (( | |
634 | - | then | |
654 | + | let cX = ca(cW, cM[8]) | |
655 | + | if ((cN == 9)) | |
656 | + | then cX | |
635 | 657 | else { | |
636 | - | let | |
637 | - | if (( | |
638 | - | then | |
658 | + | let cY = ca(cX, cM[9]) | |
659 | + | if ((cN == 10)) | |
660 | + | then cY | |
639 | 661 | else { | |
640 | - | let | |
662 | + | let cZ = ca(cY, cM[10]) | |
641 | 663 | throw("List size exceed 10") | |
642 | 664 | } | |
643 | 665 | } | |
651 | 673 | } | |
652 | 674 | } | |
653 | 675 | } | |
654 | - | let | |
655 | - | let | |
656 | - | let | |
657 | - | let | |
658 | - | if (( | |
659 | - | then | |
676 | + | let da = { | |
677 | + | let db = bM | |
678 | + | let dc = size(db) | |
679 | + | let dd = 0 | |
680 | + | if ((dc == 0)) | |
681 | + | then dd | |
660 | 682 | else { | |
661 | - | let | |
662 | - | if (( | |
663 | - | then | |
683 | + | let de = bR(dd, db[0]) | |
684 | + | if ((dc == 1)) | |
685 | + | then de | |
664 | 686 | else { | |
665 | - | let | |
666 | - | if (( | |
667 | - | then | |
687 | + | let df = bR(de, db[1]) | |
688 | + | if ((dc == 2)) | |
689 | + | then df | |
668 | 690 | else { | |
669 | - | let | |
670 | - | if (( | |
671 | - | then | |
691 | + | let dg = bR(df, db[2]) | |
692 | + | if ((dc == 3)) | |
693 | + | then dg | |
672 | 694 | else { | |
673 | - | let | |
674 | - | if (( | |
675 | - | then | |
695 | + | let dh = bR(dg, db[3]) | |
696 | + | if ((dc == 4)) | |
697 | + | then dh | |
676 | 698 | else { | |
677 | - | let | |
678 | - | if (( | |
679 | - | then | |
699 | + | let di = bR(dh, db[4]) | |
700 | + | if ((dc == 5)) | |
701 | + | then di | |
680 | 702 | else { | |
681 | - | let | |
682 | - | if (( | |
683 | - | then | |
703 | + | let dj = bR(di, db[5]) | |
704 | + | if ((dc == 6)) | |
705 | + | then dj | |
684 | 706 | else { | |
685 | - | let | |
686 | - | if (( | |
687 | - | then | |
707 | + | let dk = bR(dj, db[6]) | |
708 | + | if ((dc == 7)) | |
709 | + | then dk | |
688 | 710 | else { | |
689 | - | let | |
690 | - | if (( | |
691 | - | then | |
711 | + | let dl = bR(dk, db[7]) | |
712 | + | if ((dc == 8)) | |
713 | + | then dl | |
692 | 714 | else { | |
693 | - | let | |
694 | - | if (( | |
695 | - | then | |
715 | + | let dm = bR(dl, db[8]) | |
716 | + | if ((dc == 9)) | |
717 | + | then dm | |
696 | 718 | else { | |
697 | - | let | |
698 | - | if (( | |
699 | - | then | |
719 | + | let dn = bR(dm, db[9]) | |
720 | + | if ((dc == 10)) | |
721 | + | then dn | |
700 | 722 | else { | |
701 | - | let | |
723 | + | let do = bR(dn, db[10]) | |
702 | 724 | throw("List size exceed 10") | |
703 | 725 | } | |
704 | 726 | } | |
712 | 734 | } | |
713 | 735 | } | |
714 | 736 | } | |
715 | - | let | |
716 | - | let | |
717 | - | let | |
718 | - | let | |
719 | - | then [IntegerEntry( | |
737 | + | let dp = cc(da, bO) | |
738 | + | let dq = dp._1 | |
739 | + | let cf = dp._2 | |
740 | + | let dr = if ((bO == 2)) | |
741 | + | then [IntegerEntry(x, bN)] | |
720 | 742 | else nil | |
721 | - | if ((height > | |
743 | + | if ((height > bN)) | |
722 | 744 | then throw("rewardUpdateHeight < height") | |
723 | - | else ((((( | |
745 | + | else (((((ch ++ cw) ++ cL) ++ dq) ++ dr) ++ cf) | |
724 | 746 | } | |
725 | 747 | } | |
726 | 748 | ||
727 | 749 | ||
728 | 750 | ||
729 | - | @Callable( | |
730 | - | func shutdown () = if (!( | |
731 | - | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, | |
732 | - | else if (!(containsElement([ | |
751 | + | @Callable(bp) | |
752 | + | func shutdown () = if (!(U)) | |
753 | + | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, d), "the cause wasn't specified"))) | |
754 | + | else if (!(containsElement([R, S, T, a], bp.callerPublicKey))) | |
733 | 755 | then throw("Only admin can call this function") | |
734 | - | else | |
756 | + | else an("Paused by admin") | |
735 | 757 | ||
736 | 758 | ||
737 | 759 | ||
738 | - | @Callable( | |
739 | - | func activate () = if ( | |
760 | + | @Callable(bp) | |
761 | + | func activate () = if (U) | |
740 | 762 | then throw("DApp is already active") | |
741 | - | else if (!(containsElement([ | |
763 | + | else if (!(containsElement([R, S, T, a], bp.callerPublicKey))) | |
742 | 764 | then throw("Only admin can call this function") | |
743 | - | else [BooleanEntry( | |
765 | + | else [BooleanEntry(c, true), DeleteEntry(d)] | |
744 | 766 | ||
745 | 767 | ||
746 | - | @Verifier(dk) | |
747 | - | func dl () = sigVerify(dk.bodyBytes, dk.proofs[0], dk.senderPublicKey) | |
768 | + | @Verifier(ds) | |
769 | + | func dt () = { | |
770 | + | let du = if (sigVerify(ds.bodyBytes, ds.proofs[0], R)) | |
771 | + | then 1 | |
772 | + | else 0 | |
773 | + | let dv = if (sigVerify(ds.bodyBytes, ds.proofs[1], S)) | |
774 | + | then 1 | |
775 | + | else 0 | |
776 | + | let dw = if (sigVerify(ds.bodyBytes, ds.proofs[2], T)) | |
777 | + | then 1 | |
778 | + | else 0 | |
779 | + | (((du + dv) + dw) >= 2) | |
780 | + | } | |
748 | 781 |
Old | New | Differences | |
---|---|---|---|
1 | - | {-# STDLIB_VERSION | |
1 | + | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK' | |
5 | 5 | ||
6 | - | let b = base58' | |
6 | + | let b = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw' | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = "active" | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = "shutdown_cause" | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = "last_interest" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "_last_interest" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "_SWOP_amount" | |
17 | 17 | ||
18 | - | let h = " | |
18 | + | let h = "_getBackHeight" | |
19 | 19 | ||
20 | - | let i = "_ | |
20 | + | let i = "total_SWOP_amount" | |
21 | 21 | ||
22 | - | let j = "_SWOP_ | |
22 | + | let j = "_user_total_SWOP_vote" | |
23 | 23 | ||
24 | - | let k = "_ | |
24 | + | let k = "_SWOP_option_amount" | |
25 | 25 | ||
26 | - | let l = "total_SWOP_amount" | |
26 | + | let l = "total_SWOP_option_amount" | |
27 | 27 | ||
28 | - | let m = "_ | |
28 | + | let m = "_SWOP_claimed_amount" | |
29 | 29 | ||
30 | - | let n = "_SWOP_ | |
30 | + | let n = "_SWOP_last_claimed_amount" | |
31 | 31 | ||
32 | - | let o = " | |
32 | + | let o = "vote_name" | |
33 | 33 | ||
34 | - | let p = "_ | |
34 | + | let p = "_option_name" | |
35 | 35 | ||
36 | - | let q = "_ | |
36 | + | let q = "_startHeight" | |
37 | 37 | ||
38 | - | let r = "vote_ | |
38 | + | let r = "_vote_duration" | |
39 | 39 | ||
40 | - | let s = "_ | |
40 | + | let s = "_current_pool_fraction_reward" | |
41 | 41 | ||
42 | - | let t = "_ | |
42 | + | let t = "_previous_pool_fraction_reward" | |
43 | 43 | ||
44 | - | let u = "_ | |
44 | + | let u = "_pool_reward_update_height" | |
45 | 45 | ||
46 | - | let v = "_current | |
46 | + | let v = "total_reward_per_block_current" | |
47 | 47 | ||
48 | - | let w = "_previous | |
48 | + | let w = "total_reward_per_block_previous" | |
49 | 49 | ||
50 | - | let x = " | |
50 | + | let x = "reward_update_height" | |
51 | 51 | ||
52 | - | let y = " | |
52 | + | let y = "reward_update_height_first_pagination" | |
53 | 53 | ||
54 | - | let z = " | |
54 | + | let z = "_vote_no" | |
55 | 55 | ||
56 | - | let A = " | |
56 | + | let A = "_vote_yes" | |
57 | 57 | ||
58 | - | let B = " | |
58 | + | let B = "max_amount_voting" | |
59 | 59 | ||
60 | - | let C = "_ | |
60 | + | let C = "_status" | |
61 | 61 | ||
62 | - | let D = "_ | |
62 | + | let D = "_finish_height" | |
63 | 63 | ||
64 | - | let E = " | |
64 | + | let E = "voting_active_cell_1" | |
65 | 65 | ||
66 | - | let F = "_ | |
66 | + | let F = "voting_active_cell_2" | |
67 | 67 | ||
68 | - | let G = "_ | |
68 | + | let G = "voting_active_cell_3" | |
69 | 69 | ||
70 | - | let H = " | |
70 | + | let H = "sum_reward_current" | |
71 | 71 | ||
72 | - | let I = " | |
72 | + | let I = "admin_pub_1" | |
73 | 73 | ||
74 | - | let J = " | |
74 | + | let J = "admin_pub_2" | |
75 | 75 | ||
76 | - | let K = " | |
76 | + | let K = "admin_pub_3" | |
77 | 77 | ||
78 | - | let L = | |
78 | + | let L = Address(base58'3N1cPjixuHTujhGvb5HQoFvGt4fkUG8o3KF') | |
79 | 79 | ||
80 | - | let M = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT') | |
81 | - | ||
82 | - | let N = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ') | |
83 | - | ||
84 | - | let O = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb') | |
85 | - | ||
86 | - | let P = "SWOP_id" | |
87 | - | ||
88 | - | let Q = fromBase58String(getStringValue(M, P)) | |
89 | - | ||
90 | - | let R = 100000000 | |
91 | - | ||
92 | - | let S = 10000000000 | |
93 | - | ||
94 | - | let T = "start_height" | |
95 | - | ||
96 | - | let U = "base_period" | |
97 | - | ||
98 | - | let V = "period_length" | |
99 | - | ||
100 | - | let W = "_user_total_struc" | |
101 | - | ||
102 | - | let X = valueOrErrorMessage(getInteger(N, U), "Empty kBasePeriod at voting contract") | |
103 | - | ||
104 | - | let Y = valueOrErrorMessage(getInteger(N, T), "Empty kStartHeight at voting contract") | |
105 | - | ||
106 | - | let Z = valueOrErrorMessage(getInteger(N, V), "Empty kPeriodLength at voting contract") | |
107 | - | ||
108 | - | let aa = valueOrElse(getString(O, H), "") | |
109 | - | ||
110 | - | let ab = valueOrElse(getString(O, I), "") | |
111 | - | ||
112 | - | let ac = valueOrElse(getString(O, J), "") | |
113 | - | ||
114 | - | let ad = (X + ((height - Y) / Z)) | |
115 | - | ||
116 | - | func ae (af) = [BooleanEntry(f, false), StringEntry(g, af)] | |
117 | - | ||
118 | - | ||
119 | - | func ag () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount") | |
120 | - | ||
121 | - | ||
122 | - | func ah () = { | |
123 | - | let ai = valueOrElse(getInteger(this, h), 0) | |
124 | - | ai | |
80 | + | func M (N) = { | |
81 | + | let O = getString(L, N) | |
82 | + | if ($isInstanceOf(O, "String")) | |
83 | + | then { | |
84 | + | let P = O | |
85 | + | fromBase58String(P) | |
86 | + | } | |
87 | + | else { | |
88 | + | let Q = O | |
89 | + | throw("Admin public key is empty") | |
90 | + | } | |
125 | 91 | } | |
126 | 92 | ||
127 | 93 | ||
128 | - | func aj (ak) = valueOrElse(getInteger(this, (toString(ak) + j)), 0) | |
94 | + | let R = M(I) | |
95 | + | ||
96 | + | let S = M(J) | |
97 | + | ||
98 | + | let T = M(K) | |
99 | + | ||
100 | + | let U = valueOrElse(getBoolean(this, c), true) | |
101 | + | ||
102 | + | let V = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT') | |
103 | + | ||
104 | + | let W = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ') | |
105 | + | ||
106 | + | let X = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb') | |
107 | + | ||
108 | + | let Y = "SWOP_id" | |
109 | + | ||
110 | + | let Z = fromBase58String(getStringValue(V, Y)) | |
111 | + | ||
112 | + | let aa = 100000000 | |
113 | + | ||
114 | + | let ab = 10000000000 | |
115 | + | ||
116 | + | let ac = "start_height" | |
117 | + | ||
118 | + | let ad = "base_period" | |
119 | + | ||
120 | + | let ae = "period_length" | |
121 | + | ||
122 | + | let af = "_user_total_struc" | |
123 | + | ||
124 | + | let ag = valueOrErrorMessage(getInteger(W, ad), "Empty kBasePeriod at voting contract") | |
125 | + | ||
126 | + | let ah = valueOrErrorMessage(getInteger(W, ac), "Empty kStartHeight at voting contract") | |
127 | + | ||
128 | + | let ai = valueOrErrorMessage(getInteger(W, ae), "Empty kPeriodLength at voting contract") | |
129 | + | ||
130 | + | let aj = valueOrElse(getString(X, E), "") | |
131 | + | ||
132 | + | let ak = valueOrElse(getString(X, F), "") | |
133 | + | ||
134 | + | let al = valueOrElse(getString(X, G), "") | |
135 | + | ||
136 | + | let am = (ag + ((height - ah) / ai)) | |
137 | + | ||
138 | + | func an (ao) = [BooleanEntry(c, false), StringEntry(d, ao)] | |
129 | 139 | ||
130 | 140 | ||
131 | - | func | |
141 | + | func ap () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount") | |
132 | 142 | ||
133 | 143 | ||
134 | - | func am (ak) = valueOrElse(getInteger(N, (toString(ak) + m)), 0) | |
135 | - | ||
136 | - | ||
137 | - | func an (ak,ai) = { | |
138 | - | let ao = aj(ak) | |
139 | - | let ap = getInteger(this, (toString(ak) + i)) | |
140 | - | let aq = { | |
141 | - | let ar = ap | |
142 | - | if ($isInstanceOf(ar, "Int")) | |
143 | - | then { | |
144 | - | let ap = ar | |
145 | - | ap | |
146 | - | } | |
147 | - | else ai | |
148 | - | } | |
149 | - | $Tuple2(aq, ao) | |
144 | + | func aq () = { | |
145 | + | let ar = valueOrElse(getInteger(this, e), 0) | |
146 | + | ar | |
150 | 147 | } | |
151 | 148 | ||
152 | 149 | ||
153 | - | func as (at,ak) = { | |
154 | - | let au = valueOrElse(getInteger(O, at), -1) | |
155 | - | let av = valueOrElse(getInteger(O, (toString(au) + G)), 0) | |
156 | - | let aw = valueOrElse(getBoolean(O, (toString(au) + F)), true) | |
157 | - | let ax = height | |
158 | - | if ((0 > au)) | |
150 | + | func as (at) = valueOrElse(getInteger(this, (toString(at) + g)), 0) | |
151 | + | ||
152 | + | ||
153 | + | func au (at) = valueOrElse(getInteger(this, (toString(at) + m)), 0) | |
154 | + | ||
155 | + | ||
156 | + | func av (at) = valueOrElse(getInteger(W, (toString(at) + j)), 0) | |
157 | + | ||
158 | + | ||
159 | + | func aw (at,ar) = { | |
160 | + | let ax = as(at) | |
161 | + | let ay = getInteger(this, (toString(at) + f)) | |
162 | + | let az = { | |
163 | + | let O = ay | |
164 | + | if ($isInstanceOf(O, "Int")) | |
165 | + | then { | |
166 | + | let ay = O | |
167 | + | ay | |
168 | + | } | |
169 | + | else ar | |
170 | + | } | |
171 | + | $Tuple2(az, ax) | |
172 | + | } | |
173 | + | ||
174 | + | ||
175 | + | func aA (aB,at) = { | |
176 | + | let aC = valueOrElse(getInteger(X, aB), -1) | |
177 | + | let aD = valueOrElse(getInteger(X, (toString(aC) + D)), 0) | |
178 | + | let aE = valueOrElse(getBoolean(X, (toString(aC) + C)), true) | |
179 | + | let aF = height | |
180 | + | if ((0 > aC)) | |
159 | 181 | then 0 | |
160 | - | else if (!( | |
182 | + | else if (!(aE)) | |
161 | 183 | then 0 | |
162 | - | else if (( | |
163 | - | then (valueOrElse(getInteger( | |
184 | + | else if ((aD > aF)) | |
185 | + | then (valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + A)), 0) + valueOrElse(getInteger(X, (((toString(at) + "_") + toString(aC)) + z)), 0)) | |
164 | 186 | else 0 | |
165 | 187 | } | |
166 | 188 | ||
167 | 189 | ||
168 | - | func | |
169 | - | let | |
170 | - | max( | |
190 | + | func aG (at) = { | |
191 | + | let aH = [aA(aj, at), aA(ak, at), aA(al, at)] | |
192 | + | max(aH) | |
171 | 193 | } | |
172 | 194 | ||
173 | 195 | ||
174 | - | func | |
196 | + | func aI () = valueOrElse(getInteger(this, i), 0) | |
175 | 197 | ||
176 | 198 | ||
177 | - | func | |
178 | - | let | |
199 | + | func aJ (at) = { | |
200 | + | let aK = if (isDefined(getString(W, (toString(at) + af)))) | |
179 | 201 | then { | |
180 | - | let | |
181 | - | $Tuple3(parseIntValue( | |
202 | + | let aL = split(valueOrErrorMessage(getString(W, (toString(at) + af)), "Empty kUserTotalStruc"), "_") | |
203 | + | $Tuple3(parseIntValue(aL[0]), parseIntValue(aL[1]), parseIntValue(aL[2])) | |
182 | 204 | } | |
183 | 205 | else { | |
184 | - | let | |
185 | - | $Tuple3( | |
206 | + | let aM = valueOrElse(getInteger(W, (toString(at) + j)), 0) | |
207 | + | $Tuple3(aM, 0, am) | |
186 | 208 | } | |
187 | - | let | |
188 | - | let | |
189 | - | let | |
190 | - | let | |
191 | - | then | |
209 | + | let aN = aK._1 | |
210 | + | let aO = aK._2 | |
211 | + | let aP = aK._3 | |
212 | + | let aQ = if ((aP == am)) | |
213 | + | then aO | |
192 | 214 | else 0 | |
193 | - | $Tuple2( | |
215 | + | $Tuple2(aN, aQ) | |
194 | 216 | } | |
195 | 217 | ||
196 | 218 | ||
197 | - | func | |
219 | + | func aR (at) = valueOrElse(getInteger(this, (toString(at) + k)), 0) | |
198 | 220 | ||
199 | 221 | ||
200 | - | func | |
222 | + | func aS (aT) = valueOrElse(getInteger(this, (aT + q)), 0) | |
201 | 223 | ||
202 | 224 | ||
203 | - | func | |
225 | + | func aU (aB) = valueOrElse(getInteger(this, (aB + u)), 0) | |
204 | 226 | ||
205 | 227 | ||
206 | - | func | |
228 | + | func aV (aB) = isDefined(getInteger(this, (aB + u))) | |
207 | 229 | ||
208 | 230 | ||
209 | - | func | |
231 | + | func aW (aB) = valueOrElse(getInteger(this, (aB + s)), 0) | |
210 | 232 | ||
211 | 233 | ||
212 | - | func | |
234 | + | func aX (aB) = valueOrElse(getInteger(this, (aB + t)), 0) | |
213 | 235 | ||
214 | 236 | ||
215 | - | func | |
216 | - | let | |
217 | - | let | |
218 | - | let | |
219 | - | if ($isInstanceOf( | |
237 | + | func aY (at,aT,aZ) = { | |
238 | + | let ba = getInteger(this, (((aT + aZ) + toString(at)) + k)) | |
239 | + | let bb = { | |
240 | + | let O = ba | |
241 | + | if ($isInstanceOf(O, "Int")) | |
220 | 242 | then { | |
221 | - | let | |
222 | - | | |
243 | + | let bb = O | |
244 | + | bb | |
223 | 245 | } | |
224 | - | else if ($isInstanceOf( | |
246 | + | else if ($isInstanceOf(O, "Unit")) | |
225 | 247 | then { | |
226 | - | let | |
248 | + | let bb = O | |
227 | 249 | 0 | |
228 | 250 | } | |
229 | 251 | else throw("Match error") | |
230 | 252 | } | |
231 | - | valueOrErrorMessage( | |
253 | + | valueOrErrorMessage(bb, (((("No data on the key: " + aT) + aZ) + toString(at)) + k)) | |
232 | 254 | } | |
233 | 255 | ||
234 | 256 | ||
235 | - | func | |
257 | + | func bc (aT) = valueOrErrorMessage(getInteger(this, (aT + r)), (("No data on the key: " + aT) + r)) | |
236 | 258 | ||
237 | 259 | ||
238 | - | func | |
239 | - | let | |
240 | - | let | |
241 | - | let | |
242 | - | if ($isInstanceOf( | |
260 | + | func bd (aT,aZ) = { | |
261 | + | let be = getInteger(this, ((aT + aZ) + l)) | |
262 | + | let bf = { | |
263 | + | let O = be | |
264 | + | if ($isInstanceOf(O, "Int")) | |
243 | 265 | then { | |
244 | - | let | |
245 | - | | |
266 | + | let bf = O | |
267 | + | bf | |
246 | 268 | } | |
247 | - | else if ($isInstanceOf( | |
269 | + | else if ($isInstanceOf(O, "Unit")) | |
248 | 270 | then { | |
249 | - | let | |
271 | + | let bf = O | |
250 | 272 | 0 | |
251 | 273 | } | |
252 | 274 | else throw("Match error") | |
253 | 275 | } | |
254 | - | | |
276 | + | bf | |
255 | 277 | } | |
256 | 278 | ||
257 | 279 | ||
258 | - | func | |
259 | - | let | |
260 | - | valueOrErrorMessage(getInteger(this, | |
280 | + | func bg (aT,aZ,at,bh) = { | |
281 | + | let bi = ((((((aT + "_") + aZ) + "_") + toString(at)) + "_") + toString(bh)) | |
282 | + | valueOrErrorMessage(getInteger(this, bi), ("No data on the key: " + bi)) | |
261 | 283 | } | |
262 | 284 | ||
263 | 285 | ||
264 | - | func | |
265 | - | let | |
266 | - | let | |
267 | - | let | |
268 | - | let | |
269 | - | let | |
270 | - | let | |
271 | - | $Tuple2( | |
286 | + | func bj (bk) = { | |
287 | + | let ar = aq() | |
288 | + | let bl = aw(bk, ar) | |
289 | + | let ay = bl._1 | |
290 | + | let bm = bl._2 | |
291 | + | let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa))) | |
292 | + | let bo = ar | |
293 | + | $Tuple2(bo, bn) | |
272 | 294 | } | |
273 | 295 | ||
274 | 296 | ||
275 | - | @Callable( | |
276 | - | func airDrop () = if (!( | |
297 | + | @Callable(bp) | |
298 | + | func airDrop () = if (!(U)) | |
277 | 299 | then throw("DApp is inactive at this moment") | |
278 | 300 | else { | |
279 | - | let | |
280 | - | let | |
281 | - | let | |
282 | - | if (( | |
301 | + | let bq = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId) | |
302 | + | let br = bq._1 | |
303 | + | let bs = bq._2 | |
304 | + | if ((bs != Z)) | |
283 | 305 | then throw("Incorrect pmtAssetId") | |
284 | 306 | else { | |
285 | - | let | |
286 | - | let | |
287 | - | let | |
288 | - | [IntegerEntry( | |
307 | + | let bt = aI() | |
308 | + | let ar = aq() | |
309 | + | let bu = (ar + toInt(fraction(toBigInt(br), toBigInt(aa), toBigInt(bt)))) | |
310 | + | [IntegerEntry(e, bu)] | |
289 | 311 | } | |
290 | 312 | } | |
291 | 313 | ||
292 | 314 | ||
293 | 315 | ||
294 | - | @Callable( | |
295 | - | func lockSWOP () = if (!( | |
316 | + | @Callable(bp) | |
317 | + | func lockSWOP () = if (!(U)) | |
296 | 318 | then throw("DApp is inactive at this moment") | |
297 | 319 | else { | |
298 | - | let | |
299 | - | let | |
300 | - | let | |
301 | - | if (( | |
320 | + | let bv = $Tuple2(bp.payments[0].amount, bp.payments[0].assetId) | |
321 | + | let br = bv._1 | |
322 | + | let bs = bv._2 | |
323 | + | if ((bs != Z)) | |
302 | 324 | then throw("Incorrect pmtAssetId") | |
303 | 325 | else { | |
304 | - | let | |
305 | - | let | |
306 | - | let | |
307 | - | let | |
308 | - | let | |
309 | - | let | |
310 | - | let | |
311 | - | let | |
312 | - | let | |
313 | - | let | |
314 | - | let | |
315 | - | [IntegerEntry((toString( | |
326 | + | let ar = aq() | |
327 | + | let bw = aw(bp.caller, ar) | |
328 | + | let ay = bw._1 | |
329 | + | let bm = bw._2 | |
330 | + | let bn = toInt(fraction(toBigInt(bm), toBigInt((ar - ay)), toBigInt(aa))) | |
331 | + | let bx = ((bm + br) + bn) | |
332 | + | let bo = ar | |
333 | + | let bt = aI() | |
334 | + | let by = ((bt + br) + bn) | |
335 | + | let bz = au(bp.caller) | |
336 | + | let bA = (bz + bn) | |
337 | + | [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)] | |
316 | 338 | } | |
317 | 339 | } | |
318 | 340 | ||
319 | 341 | ||
320 | 342 | ||
321 | - | @Callable( | |
322 | - | func withdrawSWOP ( | |
343 | + | @Callable(bp) | |
344 | + | func withdrawSWOP (bB) = if (!(U)) | |
323 | 345 | then throw("DApp is inactive at this moment") | |
324 | - | else if ((0 >= | |
346 | + | else if ((0 >= bB)) | |
325 | 347 | then throw("withdrawAmount <= 0") | |
326 | 348 | else { | |
327 | - | let | |
328 | - | let | |
329 | - | let | |
330 | - | let | |
331 | - | let | |
332 | - | let | |
333 | - | let | |
334 | - | let | |
335 | - | let | |
336 | - | if (if (if ((0 > | |
349 | + | let bt = aI() | |
350 | + | let bm = as(bp.caller) | |
351 | + | let bC = bj(bp.caller) | |
352 | + | let bo = bC._1 | |
353 | + | let bn = bC._2 | |
354 | + | let bD = aJ(bp.caller) | |
355 | + | let bE = bD._1 | |
356 | + | let bF = bD._2 | |
357 | + | let bG = aG(bp.caller) | |
358 | + | if (if (if ((0 > bF)) | |
337 | 359 | then true | |
338 | - | else (0 > | |
360 | + | else (0 > bE)) | |
339 | 361 | then true | |
340 | - | else (0 > | |
362 | + | else (0 > bG)) | |
341 | 363 | then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0") | |
342 | 364 | else { | |
343 | - | let | |
344 | - | if (( | |
365 | + | let bH = (bm - max([bG, (bE + bF)])) | |
366 | + | if ((bB > bH)) | |
345 | 367 | then throw("withdrawAmount > availableToUnstake") | |
346 | 368 | else { | |
347 | - | let | |
348 | - | let | |
349 | - | let | |
350 | - | let | |
351 | - | [IntegerEntry((toString( | |
369 | + | let by = ((bt + bn) - bB) | |
370 | + | let bI = ((bm + bn) - bB) | |
371 | + | let bz = au(bp.caller) | |
372 | + | let bA = (bz + bn) | |
373 | + | [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + g), bI), IntegerEntry(i, by), ScriptTransfer(bp.caller, bB, Z), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)] | |
352 | 374 | } | |
353 | 375 | } | |
354 | 376 | } | |
355 | 377 | ||
356 | 378 | ||
357 | 379 | ||
358 | - | @Callable( | |
359 | - | func claimAndWithdrawSWOP () = if (!( | |
380 | + | @Callable(bp) | |
381 | + | func claimAndWithdrawSWOP () = if (!(U)) | |
360 | 382 | then throw("DApp is inactive at this moment") | |
361 | 383 | else { | |
362 | - | let | |
363 | - | let | |
364 | - | let | |
365 | - | let | |
366 | - | let | |
367 | - | let | |
368 | - | if (( | |
384 | + | let ar = aq() | |
385 | + | let bJ = bj(bp.caller) | |
386 | + | let bo = bJ._1 | |
387 | + | let bn = bJ._2 | |
388 | + | let bz = au(bp.caller) | |
389 | + | let bA = (bz + bn) | |
390 | + | if ((bn == 0)) | |
369 | 391 | then throw("You have 0 available SWOP") | |
370 | - | else [IntegerEntry((toString( | |
392 | + | else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn), ScriptTransfer(bp.caller, bn, Z)] | |
371 | 393 | } | |
372 | 394 | ||
373 | 395 | ||
374 | 396 | ||
375 | - | @Callable( | |
376 | - | func claimAndStakeSWOP () = if (!( | |
397 | + | @Callable(bp) | |
398 | + | func claimAndStakeSWOP () = if (!(U)) | |
377 | 399 | then throw("DApp is inactive at this moment") | |
378 | 400 | else { | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | let | |
386 | - | let | |
387 | - | let | |
388 | - | let | |
389 | - | if (( | |
401 | + | let bt = aI() | |
402 | + | let bm = as(bp.caller) | |
403 | + | let ar = aq() | |
404 | + | let bK = bj(bp.caller) | |
405 | + | let bo = bK._1 | |
406 | + | let bn = bK._2 | |
407 | + | let bx = (bm + bn) | |
408 | + | let by = (bt + bn) | |
409 | + | let bz = au(bp.caller) | |
410 | + | let bA = (bz + bn) | |
411 | + | if ((bn == 0)) | |
390 | 412 | then throw("You have 0 available SWOP") | |
391 | - | else [IntegerEntry((toString( | |
413 | + | else [IntegerEntry((toString(bp.caller) + f), bo), IntegerEntry(i, by), IntegerEntry((toString(bp.caller) + g), bx), IntegerEntry((toString(bp.caller) + m), bA), IntegerEntry((toString(bp.caller) + n), bn)] | |
392 | 414 | } | |
393 | 415 | ||
394 | 416 | ||
395 | 417 | ||
396 | - | @Callable( | |
397 | - | func updateWeights ( | |
418 | + | @Callable(bp) | |
419 | + | func updateWeights (bL,bM,bN,bO) = if (!(U)) | |
398 | 420 | then throw("DApp is inactive at this moment") | |
399 | 421 | else { | |
400 | - | let | |
401 | - | let | |
402 | - | if (!(containsElement([a, b | |
422 | + | let bP = 10 | |
423 | + | let bQ = valueOrElse(getInteger(this, x), 0) | |
424 | + | if (!(containsElement([R, S, T, a, b], bp.callerPublicKey))) | |
403 | 425 | then throw("Only admin can call this function") | |
404 | - | else if ((size( | |
405 | - | then throw(("Max amount of pool is " + toString( | |
406 | - | else if (( | |
426 | + | else if ((size(bL) > bP)) | |
427 | + | then throw(("Max amount of pool is " + toString(bP))) | |
428 | + | else if ((bQ >= bN)) | |
407 | 429 | then throw("rewardUpdateHeight <= totalRewardUpdateHeight") | |
408 | - | else if ((height >= | |
430 | + | else if ((height >= bN)) | |
409 | 431 | then throw("height >= rewardUpdateHeight") | |
410 | - | else if ((0 >= | |
432 | + | else if ((0 >= bN)) | |
411 | 433 | then throw("0 >= rewardUpdateHeight ") | |
412 | 434 | else { | |
413 | - | func | |
435 | + | func bR (bS,bT) = (bS + bT) | |
414 | 436 | ||
415 | - | func | |
416 | - | let | |
417 | - | if (if (!( | |
437 | + | func bU (bV,aB) = { | |
438 | + | let bW = aU(aB) | |
439 | + | if (if (!(aV(aB))) | |
418 | 440 | then true | |
419 | - | else if (( | |
420 | - | then ( | |
441 | + | else if ((bN != bW)) | |
442 | + | then (bW == bQ) | |
421 | 443 | else false) | |
422 | 444 | then { | |
423 | - | let | |
424 | - | IntegerEntry(( | |
445 | + | let bX = aW(aB) | |
446 | + | IntegerEntry((aB + t), bX) :: bV | |
425 | 447 | } | |
426 | 448 | else { | |
427 | - | let | |
428 | - | IntegerEntry(( | |
449 | + | let bX = aX(aB) | |
450 | + | IntegerEntry((aB + t), bX) :: bV | |
429 | 451 | } | |
430 | 452 | } | |
431 | 453 | ||
432 | - | func | |
433 | - | let | |
434 | - | let | |
435 | - | if ((0 > | |
454 | + | func bY (bV,aB) = { | |
455 | + | let bZ = value(indexOf(bL, aB)) | |
456 | + | let bX = bM[bZ] | |
457 | + | if ((0 > bX)) | |
436 | 458 | then throw("PoolReward < 0") | |
437 | - | else IntegerEntry(( | |
459 | + | else IntegerEntry((aB + s), bX) :: bV | |
438 | 460 | } | |
439 | 461 | ||
440 | - | func | |
441 | - | let | |
442 | - | IntegerEntry(( | |
462 | + | func ca (bV,aB) = { | |
463 | + | let cb = bN | |
464 | + | IntegerEntry((aB + u), cb) :: bV | |
443 | 465 | } | |
444 | 466 | ||
445 | - | func | |
446 | - | then if (( | |
447 | - | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString( | |
448 | - | else $Tuple2([IntegerEntry( | |
449 | - | else if (( | |
467 | + | func cc (cd,bO) = if ((bO == 0)) | |
468 | + | then if ((cd > ab)) | |
469 | + | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString(cd))) | |
470 | + | else $Tuple2([IntegerEntry(H, cd)], [IntegerEntry(y, bN)]) | |
471 | + | else if ((bO == 1)) | |
450 | 472 | then { | |
451 | - | let | |
452 | - | let | |
453 | - | if ((( | |
454 | - | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString( | |
455 | - | else if (( | |
473 | + | let ce = valueOrElse(getInteger(this, H), 0) | |
474 | + | let cf = valueOrElse(getInteger(this, y), 0) | |
475 | + | if (((cd + ce) > ab)) | |
476 | + | then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bO)) + " ") + toString((cd + ce)))) | |
477 | + | else if ((cf != bN)) | |
456 | 478 | then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry") | |
457 | - | else $Tuple2([IntegerEntry( | |
479 | + | else $Tuple2([IntegerEntry(H, (cd + ce))], nil) | |
458 | 480 | } | |
459 | - | else if (( | |
481 | + | else if ((bO == 2)) | |
460 | 482 | then { | |
461 | - | let | |
462 | - | let | |
463 | - | if (( | |
483 | + | let cg = (valueOrElse(getInteger(this, H), 0) + cd) | |
484 | + | let cf = valueOrElse(getInteger(this, y), 0) | |
485 | + | if ((cg != ab)) | |
464 | 486 | then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare") | |
465 | - | else if (( | |
487 | + | else if ((cf != bN)) | |
466 | 488 | then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry") | |
467 | - | else $Tuple2([IntegerEntry( | |
489 | + | else $Tuple2([IntegerEntry(H, cg)], nil) | |
468 | 490 | } | |
469 | 491 | else throw("Incorrect pagination") | |
470 | 492 | ||
471 | - | let | |
472 | - | let | |
473 | - | let | |
474 | - | let | |
475 | - | if (( | |
476 | - | then | |
493 | + | let ch = { | |
494 | + | let ci = bL | |
495 | + | let cj = size(ci) | |
496 | + | let ck = nil | |
497 | + | if ((cj == 0)) | |
498 | + | then ck | |
477 | 499 | else { | |
478 | - | let | |
479 | - | if (( | |
480 | - | then | |
500 | + | let cl = bU(ck, ci[0]) | |
501 | + | if ((cj == 1)) | |
502 | + | then cl | |
481 | 503 | else { | |
482 | - | let | |
483 | - | if (( | |
484 | - | then | |
504 | + | let cm = bU(cl, ci[1]) | |
505 | + | if ((cj == 2)) | |
506 | + | then cm | |
485 | 507 | else { | |
486 | - | let | |
487 | - | if (( | |
488 | - | then | |
508 | + | let cn = bU(cm, ci[2]) | |
509 | + | if ((cj == 3)) | |
510 | + | then cn | |
489 | 511 | else { | |
490 | - | let | |
491 | - | if (( | |
492 | - | then | |
512 | + | let co = bU(cn, ci[3]) | |
513 | + | if ((cj == 4)) | |
514 | + | then co | |
493 | 515 | else { | |
494 | - | let | |
495 | - | if (( | |
496 | - | then | |
516 | + | let cp = bU(co, ci[4]) | |
517 | + | if ((cj == 5)) | |
518 | + | then cp | |
497 | 519 | else { | |
498 | - | let | |
499 | - | if (( | |
500 | - | then | |
520 | + | let cq = bU(cp, ci[5]) | |
521 | + | if ((cj == 6)) | |
522 | + | then cq | |
501 | 523 | else { | |
502 | - | let | |
503 | - | if (( | |
504 | - | then | |
524 | + | let cr = bU(cq, ci[6]) | |
525 | + | if ((cj == 7)) | |
526 | + | then cr | |
505 | 527 | else { | |
506 | - | let | |
507 | - | if (( | |
508 | - | then | |
528 | + | let cs = bU(cr, ci[7]) | |
529 | + | if ((cj == 8)) | |
530 | + | then cs | |
509 | 531 | else { | |
510 | - | let | |
511 | - | if (( | |
512 | - | then | |
532 | + | let ct = bU(cs, ci[8]) | |
533 | + | if ((cj == 9)) | |
534 | + | then ct | |
513 | 535 | else { | |
514 | - | let | |
515 | - | if (( | |
516 | - | then | |
536 | + | let cu = bU(ct, ci[9]) | |
537 | + | if ((cj == 10)) | |
538 | + | then cu | |
517 | 539 | else { | |
518 | - | let | |
540 | + | let cv = bU(cu, ci[10]) | |
519 | 541 | throw("List size exceed 10") | |
520 | 542 | } | |
521 | 543 | } | |
522 | 544 | } | |
523 | 545 | } | |
524 | 546 | } | |
525 | 547 | } | |
526 | 548 | } | |
527 | 549 | } | |
528 | 550 | } | |
529 | 551 | } | |
530 | 552 | } | |
531 | 553 | } | |
532 | - | let | |
533 | - | let | |
534 | - | let | |
535 | - | let | |
536 | - | if (( | |
537 | - | then | |
554 | + | let cw = { | |
555 | + | let cx = bL | |
556 | + | let cy = size(cx) | |
557 | + | let cz = nil | |
558 | + | if ((cy == 0)) | |
559 | + | then cz | |
538 | 560 | else { | |
539 | - | let | |
540 | - | if (( | |
541 | - | then | |
561 | + | let cA = bY(cz, cx[0]) | |
562 | + | if ((cy == 1)) | |
563 | + | then cA | |
542 | 564 | else { | |
543 | - | let | |
544 | - | if (( | |
545 | - | then | |
565 | + | let cB = bY(cA, cx[1]) | |
566 | + | if ((cy == 2)) | |
567 | + | then cB | |
546 | 568 | else { | |
547 | - | let | |
548 | - | if (( | |
549 | - | then | |
569 | + | let cC = bY(cB, cx[2]) | |
570 | + | if ((cy == 3)) | |
571 | + | then cC | |
550 | 572 | else { | |
551 | - | let | |
552 | - | if (( | |
553 | - | then | |
573 | + | let cD = bY(cC, cx[3]) | |
574 | + | if ((cy == 4)) | |
575 | + | then cD | |
554 | 576 | else { | |
555 | - | let | |
556 | - | if (( | |
557 | - | then | |
577 | + | let cE = bY(cD, cx[4]) | |
578 | + | if ((cy == 5)) | |
579 | + | then cE | |
558 | 580 | else { | |
559 | - | let | |
560 | - | if (( | |
561 | - | then | |
581 | + | let cF = bY(cE, cx[5]) | |
582 | + | if ((cy == 6)) | |
583 | + | then cF | |
562 | 584 | else { | |
563 | - | let | |
564 | - | if (( | |
565 | - | then | |
585 | + | let cG = bY(cF, cx[6]) | |
586 | + | if ((cy == 7)) | |
587 | + | then cG | |
566 | 588 | else { | |
567 | - | let | |
568 | - | if (( | |
569 | - | then | |
589 | + | let cH = bY(cG, cx[7]) | |
590 | + | if ((cy == 8)) | |
591 | + | then cH | |
570 | 592 | else { | |
571 | - | let | |
572 | - | if (( | |
573 | - | then | |
593 | + | let cI = bY(cH, cx[8]) | |
594 | + | if ((cy == 9)) | |
595 | + | then cI | |
574 | 596 | else { | |
575 | - | let | |
576 | - | if (( | |
577 | - | then | |
597 | + | let cJ = bY(cI, cx[9]) | |
598 | + | if ((cy == 10)) | |
599 | + | then cJ | |
578 | 600 | else { | |
579 | - | let | |
601 | + | let cK = bY(cJ, cx[10]) | |
580 | 602 | throw("List size exceed 10") | |
581 | 603 | } | |
582 | 604 | } | |
583 | 605 | } | |
584 | 606 | } | |
585 | 607 | } | |
586 | 608 | } | |
587 | 609 | } | |
588 | 610 | } | |
589 | 611 | } | |
590 | 612 | } | |
591 | 613 | } | |
592 | 614 | } | |
593 | - | let | |
594 | - | let | |
595 | - | let | |
596 | - | let | |
597 | - | if (( | |
598 | - | then | |
615 | + | let cL = { | |
616 | + | let cM = bL | |
617 | + | let cN = size(cM) | |
618 | + | let cO = nil | |
619 | + | if ((cN == 0)) | |
620 | + | then cO | |
599 | 621 | else { | |
600 | - | let | |
601 | - | if (( | |
602 | - | then | |
622 | + | let cP = ca(cO, cM[0]) | |
623 | + | if ((cN == 1)) | |
624 | + | then cP | |
603 | 625 | else { | |
604 | - | let | |
605 | - | if (( | |
606 | - | then | |
626 | + | let cQ = ca(cP, cM[1]) | |
627 | + | if ((cN == 2)) | |
628 | + | then cQ | |
607 | 629 | else { | |
608 | - | let | |
609 | - | if (( | |
610 | - | then | |
630 | + | let cR = ca(cQ, cM[2]) | |
631 | + | if ((cN == 3)) | |
632 | + | then cR | |
611 | 633 | else { | |
612 | - | let | |
613 | - | if (( | |
614 | - | then | |
634 | + | let cS = ca(cR, cM[3]) | |
635 | + | if ((cN == 4)) | |
636 | + | then cS | |
615 | 637 | else { | |
616 | - | let | |
617 | - | if (( | |
618 | - | then | |
638 | + | let cT = ca(cS, cM[4]) | |
639 | + | if ((cN == 5)) | |
640 | + | then cT | |
619 | 641 | else { | |
620 | - | let | |
621 | - | if (( | |
622 | - | then | |
642 | + | let cU = ca(cT, cM[5]) | |
643 | + | if ((cN == 6)) | |
644 | + | then cU | |
623 | 645 | else { | |
624 | - | let | |
625 | - | if (( | |
626 | - | then | |
646 | + | let cV = ca(cU, cM[6]) | |
647 | + | if ((cN == 7)) | |
648 | + | then cV | |
627 | 649 | else { | |
628 | - | let | |
629 | - | if (( | |
630 | - | then | |
650 | + | let cW = ca(cV, cM[7]) | |
651 | + | if ((cN == 8)) | |
652 | + | then cW | |
631 | 653 | else { | |
632 | - | let | |
633 | - | if (( | |
634 | - | then | |
654 | + | let cX = ca(cW, cM[8]) | |
655 | + | if ((cN == 9)) | |
656 | + | then cX | |
635 | 657 | else { | |
636 | - | let | |
637 | - | if (( | |
638 | - | then | |
658 | + | let cY = ca(cX, cM[9]) | |
659 | + | if ((cN == 10)) | |
660 | + | then cY | |
639 | 661 | else { | |
640 | - | let | |
662 | + | let cZ = ca(cY, cM[10]) | |
641 | 663 | throw("List size exceed 10") | |
642 | 664 | } | |
643 | 665 | } | |
644 | 666 | } | |
645 | 667 | } | |
646 | 668 | } | |
647 | 669 | } | |
648 | 670 | } | |
649 | 671 | } | |
650 | 672 | } | |
651 | 673 | } | |
652 | 674 | } | |
653 | 675 | } | |
654 | - | let | |
655 | - | let | |
656 | - | let | |
657 | - | let | |
658 | - | if (( | |
659 | - | then | |
676 | + | let da = { | |
677 | + | let db = bM | |
678 | + | let dc = size(db) | |
679 | + | let dd = 0 | |
680 | + | if ((dc == 0)) | |
681 | + | then dd | |
660 | 682 | else { | |
661 | - | let | |
662 | - | if (( | |
663 | - | then | |
683 | + | let de = bR(dd, db[0]) | |
684 | + | if ((dc == 1)) | |
685 | + | then de | |
664 | 686 | else { | |
665 | - | let | |
666 | - | if (( | |
667 | - | then | |
687 | + | let df = bR(de, db[1]) | |
688 | + | if ((dc == 2)) | |
689 | + | then df | |
668 | 690 | else { | |
669 | - | let | |
670 | - | if (( | |
671 | - | then | |
691 | + | let dg = bR(df, db[2]) | |
692 | + | if ((dc == 3)) | |
693 | + | then dg | |
672 | 694 | else { | |
673 | - | let | |
674 | - | if (( | |
675 | - | then | |
695 | + | let dh = bR(dg, db[3]) | |
696 | + | if ((dc == 4)) | |
697 | + | then dh | |
676 | 698 | else { | |
677 | - | let | |
678 | - | if (( | |
679 | - | then | |
699 | + | let di = bR(dh, db[4]) | |
700 | + | if ((dc == 5)) | |
701 | + | then di | |
680 | 702 | else { | |
681 | - | let | |
682 | - | if (( | |
683 | - | then | |
703 | + | let dj = bR(di, db[5]) | |
704 | + | if ((dc == 6)) | |
705 | + | then dj | |
684 | 706 | else { | |
685 | - | let | |
686 | - | if (( | |
687 | - | then | |
707 | + | let dk = bR(dj, db[6]) | |
708 | + | if ((dc == 7)) | |
709 | + | then dk | |
688 | 710 | else { | |
689 | - | let | |
690 | - | if (( | |
691 | - | then | |
711 | + | let dl = bR(dk, db[7]) | |
712 | + | if ((dc == 8)) | |
713 | + | then dl | |
692 | 714 | else { | |
693 | - | let | |
694 | - | if (( | |
695 | - | then | |
715 | + | let dm = bR(dl, db[8]) | |
716 | + | if ((dc == 9)) | |
717 | + | then dm | |
696 | 718 | else { | |
697 | - | let | |
698 | - | if (( | |
699 | - | then | |
719 | + | let dn = bR(dm, db[9]) | |
720 | + | if ((dc == 10)) | |
721 | + | then dn | |
700 | 722 | else { | |
701 | - | let | |
723 | + | let do = bR(dn, db[10]) | |
702 | 724 | throw("List size exceed 10") | |
703 | 725 | } | |
704 | 726 | } | |
705 | 727 | } | |
706 | 728 | } | |
707 | 729 | } | |
708 | 730 | } | |
709 | 731 | } | |
710 | 732 | } | |
711 | 733 | } | |
712 | 734 | } | |
713 | 735 | } | |
714 | 736 | } | |
715 | - | let | |
716 | - | let | |
717 | - | let | |
718 | - | let | |
719 | - | then [IntegerEntry( | |
737 | + | let dp = cc(da, bO) | |
738 | + | let dq = dp._1 | |
739 | + | let cf = dp._2 | |
740 | + | let dr = if ((bO == 2)) | |
741 | + | then [IntegerEntry(x, bN)] | |
720 | 742 | else nil | |
721 | - | if ((height > | |
743 | + | if ((height > bN)) | |
722 | 744 | then throw("rewardUpdateHeight < height") | |
723 | - | else ((((( | |
745 | + | else (((((ch ++ cw) ++ cL) ++ dq) ++ dr) ++ cf) | |
724 | 746 | } | |
725 | 747 | } | |
726 | 748 | ||
727 | 749 | ||
728 | 750 | ||
729 | - | @Callable( | |
730 | - | func shutdown () = if (!( | |
731 | - | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, | |
732 | - | else if (!(containsElement([ | |
751 | + | @Callable(bp) | |
752 | + | func shutdown () = if (!(U)) | |
753 | + | then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, d), "the cause wasn't specified"))) | |
754 | + | else if (!(containsElement([R, S, T, a], bp.callerPublicKey))) | |
733 | 755 | then throw("Only admin can call this function") | |
734 | - | else | |
756 | + | else an("Paused by admin") | |
735 | 757 | ||
736 | 758 | ||
737 | 759 | ||
738 | - | @Callable( | |
739 | - | func activate () = if ( | |
760 | + | @Callable(bp) | |
761 | + | func activate () = if (U) | |
740 | 762 | then throw("DApp is already active") | |
741 | - | else if (!(containsElement([ | |
763 | + | else if (!(containsElement([R, S, T, a], bp.callerPublicKey))) | |
742 | 764 | then throw("Only admin can call this function") | |
743 | - | else [BooleanEntry( | |
765 | + | else [BooleanEntry(c, true), DeleteEntry(d)] | |
744 | 766 | ||
745 | 767 | ||
746 | - | @Verifier(dk) | |
747 | - | func dl () = sigVerify(dk.bodyBytes, dk.proofs[0], dk.senderPublicKey) | |
768 | + | @Verifier(ds) | |
769 | + | func dt () = { | |
770 | + | let du = if (sigVerify(ds.bodyBytes, ds.proofs[0], R)) | |
771 | + | then 1 | |
772 | + | else 0 | |
773 | + | let dv = if (sigVerify(ds.bodyBytes, ds.proofs[1], S)) | |
774 | + | then 1 | |
775 | + | else 0 | |
776 | + | let dw = if (sigVerify(ds.bodyBytes, ds.proofs[2], T)) | |
777 | + | then 1 | |
778 | + | else 0 | |
779 | + | (((du + dv) + dw) >= 2) | |
780 | + | } | |
748 | 781 |
github/deemru/w8io/169f3d6 474.54 ms ◑![]()