tx · DEo4pThXpVZW2gdC41amVkbJrSVWp8xKZsBoNAHPNJHM

3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU:  -0.01400000 Waves

2021.06.13 10:26 [1568265] smart account 3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU > SELF 0.00000000 Waves

{ "type": 13, "id": "DEo4pThXpVZW2gdC41amVkbJrSVWp8xKZsBoNAHPNJHM", "fee": 1400000, "feeAssetId": null, "timestamp": 1623569211974, "version": 2, "chainId": 84, "sender": "3N5W8da2iiijVieA6qLGo7KzCJj8B19smWU", "senderPublicKey": "AWADFmQjf2WbDSqb24S9YZpix3VEdiBdeiJ2J2sSfQ49", "proofs": [ "guC7ZRFXhuVKhFUxSEyvXJDJJE3294nMRJhsEhmhq6N87ohZiVPe3DY63ZCP8FTHa6jo4SdaamXXfvixQWtq7U1" ], "script": "base64:AAIEAAAAAAAAAB0IAhIAEgASAwoBARIAEgASCAoGGBEYEQEBEgASAAAAAE4AAAAADGFkbWluUHViS2V5MQEAAAAgugnXO4lZpNFdoP/xuzPQquE5aQ/L4r2R1jvuT16o4BMAAAAADGFkbWluUHViS2V5MgEAAAAgwpFEmbPSsLQNIqWRWL2IvKE3uwjL/92M5pTvWxYOfkAAAAAADGFkbWluUHViS2V5MwEAAAAgjh4XLnixBzv0SE56Myhgdih3/JnlkjCjIMLPqKvpDlUAAAAAFGFkbWluUHViS2V5U3RhcnRTdG9wAQAAACDOWQ7c6rNeo64b/Vde5+t5ETUpdEYymzwVXzwFGyhhewAAAAARYWRtaW5QdWJLZXlXYWxsZXQBAAAAIOWrnLMJte4zFN7NTCEmuQUEYSMarDhlqoxRtcWhn88cAAAAAAlrZXlBY3RpdmUCAAAABmFjdGl2ZQAAAAAIa2V5Q2F1c2UCAAAADnNodXRkb3duX2NhdXNlAAAAAA9rZXlMYXN0SW50ZXJlc3QCAAAADWxhc3RfaW50ZXJlc3QAAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QCAAAADl9sYXN0X2ludGVyZXN0AAAAABFrZXlVc2VyU1dPUExvY2tlZAIAAAAMX1NXT1BfYW1vdW50AAAAABRrZXlVc2VyR2V0QmFja0hlaWdodAIAAAAOX2dldEJhY2tIZWlnaHQAAAAAEmtleVRvdGFsU1dPUExvY2tlZAIAAAARdG90YWxfU1dPUF9hbW91bnQAAAAAEmtVc2VyVG90YWxWb3RlU1dPUAIAAAAVX3VzZXJfdG90YWxfU1dPUF92b3RlAAAAABdrZXlVc2VyVm90ZU9wdGlvbkFtb3VudAIAAAATX1NXT1Bfb3B0aW9uX2Ftb3VudAAAAAAYa2V5VG90YWxWb3RlT3B0aW9uQW1vdW50AgAAABh0b3RhbF9TV09QX29wdGlvbl9hbW91bnQAAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAIAAAAUX1NXT1BfY2xhaW1lZF9hbW91bnQAAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQCAAAAGV9TV09QX2xhc3RfY2xhaW1lZF9hbW91bnQAAAAAC2tleVZvdGVOYW1lAgAAAAl2b3RlX25hbWUAAAAADWtleU9wdGlvbk5hbWUCAAAADF9vcHRpb25fbmFtZQAAAAAUa2V5Vm90aW5nU3RhcnRIZWlnaHQCAAAADF9zdGFydEhlaWdodAAAAAAPa2V5Vm90ZUR1cmF0aW9uAgAAAA5fdm90ZV9kdXJhdGlvbgAAAAAca2V5UmV3YXJkUG9vbEZyYWN0aW9uQ3VycmVudAIAAAAdX2N1cnJlbnRfcG9vbF9mcmFjdGlvbl9yZXdhcmQAAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzAgAAAB5fcHJldmlvdXNfcG9vbF9mcmFjdGlvbl9yZXdhcmQAAAAAFWtleUhlaWdodFBvb2xGcmFjdGlvbgIAAAAaX3Bvb2xfcmV3YXJkX3VwZGF0ZV9oZWlnaHQAAAAAHWtleVRvdGFsUmV3YXJkUGVyQmxvY2tDdXJyZW50AgAAAB50b3RhbF9yZXdhcmRfcGVyX2Jsb2NrX2N1cnJlbnQAAAAAHmtleVRvdGFsUmV3YXJkUGVyQmxvY2tQcmV2aW91cwIAAAAfdG90YWxfcmV3YXJkX3Blcl9ibG9ja19wcmV2aW91cwAAAAAVa2V5UmV3YXJkVXBkYXRlSGVpZ2h0AgAAABRyZXdhcmRfdXBkYXRlX2hlaWdodAAAAAAka2V5UmV3YXJkVXBkYXRlRmlyc3RQYWdpbmF0aW9uSGVpZ2h0AgAAACVyZXdhcmRfdXBkYXRlX2hlaWdodF9maXJzdF9wYWdpbmF0aW9uAAAAABVrZXlOb1ZvdGluZ0Zvck5ld1Bvb2wCAAAACF92b3RlX25vAAAAABZrZXlZZXNWb3RpbmdGb3JOZXdQb29sAgAAAAlfdm90ZV95ZXMAAAAAG2tleUFtb3VudE9mVm90aW5nRm9yTmV3UG9vbAIAAAARbWF4X2Ftb3VudF92b3RpbmcAAAAAG2tleVN0YXR1c09mVm90aW5nRm9yTmV3UG9vbAIAAAAHX3N0YXR1cwAAAAAfa2V5SGVpZ2h0T2ZQb29sVm90aW5nRm9yTmV3UG9vbAIAAAAOX2ZpbmlzaF9oZWlnaHQAAAAAD2FjdGl2ZVZvdGVGaXJzdAIAAAAUdm90aW5nX2FjdGl2ZV9jZWxsXzEAAAAAEGFjdGl2ZVZvdGVTZWNvbmQCAAAAFHZvdGluZ19hY3RpdmVfY2VsbF8yAAAAAA9hY3RpdmVWb3RlVGhpcmQCAAAAFHZvdGluZ19hY3RpdmVfY2VsbF8zAAAAAA5rZXlUZW1wUHJldlN1bQIAAAATc3VtX3Jld2FyZF9wcmV2aW91cwAAAAANa2V5VGVtcEN1clN1bQIAAAASc3VtX3Jld2FyZF9jdXJyZW50AAAAAAhpc0FjdGl2ZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBsAAAACBQAAAAR0aGlzBQAAAAlrZXlBY3RpdmUGAAAAABJmYXJtaW5nU1dPUEFkZHJlc3MJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVc4DeZLRuf+UBcj/qBUTcgH5R4tWRCTmkoAAAAAEnZvdGluZ0xpdGVDb250cmFjdAkBAAAAB0FkZHJlc3MAAAABAQAAABoBV/g/+6xPyWLNjZSZW67sqUsI3PCMpKwiuwAAAAAQdm90aW5nRm9yTmV3UG9vbAkBAAAAB0FkZHJlc3MAAAABAQAAABoBV6y+6ZiMjPxkx6QfYg3Npzh7t63US4EQYQAAAAAJa2V5U1dPUGlkAgAAAAdTV09QX2lkAAAAAARTV09QCQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEmZhcm1pbmdTV09QQWRkcmVzcwUAAAAJa2V5U1dPUGlkAAAAAApzY2FsZVZhbHVlAAAAAAAF9eEAAAAAAA50b3RhbFZvdGVTaGFyZQAAAAACVAvkAAAAAAAMa1N0YXJ0SGVpZ2h0AgAAAAxzdGFydF9oZWlnaHQAAAAAC2tCYXNlUGVyaW9kAgAAAAtiYXNlX3BlcmlvZAAAAAANa1BlcmlvZExlbmd0aAIAAAANcGVyaW9kX2xlbmd0aAAAAAAPa1VzZXJUb3RhbFN0cnVjAgAAABFfdXNlcl90b3RhbF9zdHJ1YwAAAAAKYmFzZVBlcmlvZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAEnZvdGluZ0xpdGVDb250cmFjdAUAAAALa0Jhc2VQZXJpb2QCAAAAJEVtcHR5IGtCYXNlUGVyaW9kIGF0IHZvdGluZyBjb250cmFjdAAAAAALc3RhcnRIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QFAAAADGtTdGFydEhlaWdodAIAAAAlRW1wdHkga1N0YXJ0SGVpZ2h0IGF0IHZvdGluZyBjb250cmFjdAAAAAAMcGVyaW9kTGVuZ3RoCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0BQAAAA1rUGVyaW9kTGVuZ3RoAgAAACZFbXB0eSBrUGVyaW9kTGVuZ3RoIGF0IHZvdGluZyBjb250cmFjdAAAAAAPZmlyc3RBY3RpdmVWb3RlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wFAAAAD2FjdGl2ZVZvdGVGaXJzdAIAAAAAAAAAABBzZWNvbmRBY3RpdmVWb3RlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wFAAAAEGFjdGl2ZVZvdGVTZWNvbmQCAAAAAAAAAAAPdGhpcmRBY3RpdmVWb3RlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wFAAAAD2FjdGl2ZVZvdGVUaGlyZAIAAAAAAAAAABBjdXJyVm90aW5nUGVyaW9kCQAAZAAAAAIFAAAACmJhc2VQZXJpb2QJAABpAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAC3N0YXJ0SGVpZ2h0BQAAAAxwZXJpb2RMZW5ndGgBAAAAB3N1c3BlbmQAAAABAAAABWNhdXNlCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUHCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACGtleUNhdXNlBQAAAAVjYXVzZQUAAAADbmlsAQAAABJ0aHJvd05vdEVub3VnaFNXT1AAAAAACQAAAgAAAAECAAAARk5vdCBlbm91Z2ggU1dPUDogdXNlclNXT1BMb2NrZWQgLSB1c2VyVG90YWxWb3RlQW1vdW50IDwgdm90ZVNXT1BBbW91bnQBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAxsYXN0SW50ZXJlc3QJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAPa2V5TGFzdEludGVyZXN0AAAAAAAAAAAABQAAAAxsYXN0SW50ZXJlc3QBAAAAEWdldFVzZXJTV09QTG9ja2VkAAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABFrZXlVc2VyU1dPUExvY2tlZAAAAAAAAAAAAAEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQAAAAR1c2VyCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQAAAAAAAAAAAABAAAAFmdldFVzZXJUb3RhbFZvdGVBbW91bnQAAAABAAAABHVzZXIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAASa1VzZXJUb3RhbFZvdGVTV09QAAAAAAAAAAAAAQAAABNnZXRVc2VySW50ZXJlc3RJbmZvAAAAAgAAAAR1c2VyAAAADGxhc3RJbnRlcmVzdAQAAAAOdXNlclNXT1BBbW91bnQJAQAAABFnZXRVc2VyU1dPUExvY2tlZAAAAAEFAAAABHVzZXIEAAAAEHVzZXJMYXN0SW50ZXJlc3QJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQAEJQAAAAEFAAAABHVzZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QEAAAAFXVzZXJMYXN0SW50ZXJlc3RWYWx1ZQQAAAAHJG1hdGNoMAUAAAAQdXNlckxhc3RJbnRlcmVzdAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAABB1c2VyTGFzdEludGVyZXN0BQAAAAckbWF0Y2gwBQAAABB1c2VyTGFzdEludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QJAAUUAAAAAgUAAAAVdXNlckxhc3RJbnRlcmVzdFZhbHVlBQAAAA51c2VyU1dPUEFtb3VudAEAAAAgZ2V0VXNlclRvdGFsVm90ZUFtb3VudEZvck9uZVBvb2wAAAACAAAABHBvb2wAAAAEdXNlcgQAAAAGdm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wFAAAABHBvb2wA//////////8EAAAADmhlaWdodE9mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAAEsAAAAAgkAAaQAAAABBQAAAAZ2b3RpbmcFAAAAH2tleUhlaWdodE9mUG9vbFZvdGluZ0Zvck5ld1Bvb2wAAAAAAAAAAAAEAAAADnN0YXR1c09mVm90aW5nCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAAEsAAAAAgkAAaQAAAABBQAAAAZ2b3RpbmcFAAAAG2tleVN0YXR1c09mVm90aW5nRm9yTmV3UG9vbAYEAAAADWN1cnJlbnRIZWlnaHQFAAAABmhlaWdodAMJAABmAAAAAgAAAAAAAAAAAAUAAAAGdm90aW5nAAAAAAAAAAAAAwkBAAAAASEAAAABBQAAAA5zdGF0dXNPZlZvdGluZwAAAAAAAAAAAAMJAABmAAAAAgUAAAAOaGVpZ2h0T2ZWb3RpbmcFAAAADWN1cnJlbnRIZWlnaHQJAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABB2b3RpbmdGb3JOZXdQb29sCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHVzZXICAAAAAV8JAAGkAAAAAQUAAAAGdm90aW5nBQAAABZrZXlZZXNWb3RpbmdGb3JOZXdQb29sAAAAAAAAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAEHZvdGluZ0Zvck5ld1Bvb2wJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgIAAAABXwkAAaQAAAABBQAAAAZ2b3RpbmcFAAAAFWtleU5vVm90aW5nRm9yTmV3UG9vbAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAgZ2V0VXNlclRvdGFsVm90ZUZvck5ld1Bvb2xBbW91bnQAAAABAAAABHVzZXIEAAAADGxpc3RPZlZvdGluZwkABEwAAAACCQEAAAAgZ2V0VXNlclRvdGFsVm90ZUFtb3VudEZvck9uZVBvb2wAAAACBQAAAA9maXJzdEFjdGl2ZVZvdGUFAAAABHVzZXIJAARMAAAAAgkBAAAAIGdldFVzZXJUb3RhbFZvdGVBbW91bnRGb3JPbmVQb29sAAAAAgUAAAAQc2Vjb25kQWN0aXZlVm90ZQUAAAAEdXNlcgkABEwAAAACCQEAAAAgZ2V0VXNlclRvdGFsVm90ZUFtb3VudEZvck9uZVBvb2wAAAACBQAAAA90aGlyZEFjdGl2ZVZvdGUFAAAABHVzZXIFAAAAA25pbAkAAZYAAAABBQAAAAxsaXN0T2ZWb3RpbmcBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAASa2V5VG90YWxTV09QTG9ja2VkAAAAAAAAAAAAAQAAAA9nZXRVc2VyVm90ZUluZm8AAAABAAAABHVzZXIEAAAACyR0MDU5NTE2NTAyAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAASdm90aW5nTGl0ZUNvbnRyYWN0CQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAPa1VzZXJUb3RhbFN0cnVjBAAAAARkYXRhCQAEtQAAAAIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAAA9rVXNlclRvdGFsU3RydWMCAAAAFUVtcHR5IGtVc2VyVG90YWxTdHJ1YwIAAAABXwkABRUAAAADCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAEZGF0YQAAAAAAAAAAAAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAABGRhdGEAAAAAAAAAAAEJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAARkYXRhAAAAAAAAAAACBAAAAA51UG9vbFRvdGFsU1dPUAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAABJ2b3RpbmdMaXRlQ29udHJhY3QJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABJrVXNlclRvdGFsVm90ZVNXT1AAAAAAAAAAAAAJAAUVAAAAAwUAAAAOdVBvb2xUb3RhbFNXT1AAAAAAAAAAAAAFAAAAEGN1cnJWb3RpbmdQZXJpb2QEAAAAEXVzZXJUb3RhbFZvdGVTV09QCAUAAAALJHQwNTk1MTY1MDIAAAACXzEEAAAAC3VzZXJVbnZvdGVkCAUAAAALJHQwNTk1MTY1MDIAAAACXzIEAAAAEXVzZXJVbnZvdGVkUGVyaW9kCAUAAAALJHQwNTk1MTY1MDIAAAACXzMEAAAAEXVzZXJVbnZvdGVkQWN0dWFsAwkAAAAAAAACBQAAABF1c2VyVW52b3RlZFBlcmlvZAUAAAAQY3VyclZvdGluZ1BlcmlvZAUAAAALdXNlclVudm90ZWQAAAAAAAAAAAAJAAUUAAAAAgUAAAARdXNlclRvdGFsVm90ZVNXT1AFAAAAEXVzZXJVbnZvdGVkQWN0dWFsAQAAABdnZXRVc2VyVm90ZU9wdGlvbkFtb3VudAAAAAEAAAAEdXNlcgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgUAAAAXa2V5VXNlclZvdGVPcHRpb25BbW91bnQAAAAAAAAAAAABAAAAFGdldFZvdGluZ1N0YXJ0SGVpZ2h0AAAAAQAAAAh2b3RlTmFtZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAACHZvdGVOYW1lBQAAABRrZXlWb3RpbmdTdGFydEhlaWdodAAAAAAAAAAAAAEAAAATZ2V0UG9vbFVwZGF0ZUhlaWdodAAAAAEAAAAEcG9vbAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wFAAAAFWtleUhlaWdodFBvb2xGcmFjdGlvbgAAAAAAAAAAAAEAAAAYaXNEZWZpbmVQb29sVXBkYXRlSGVpZ2h0AAAAAQAAAARwb29sCQEAAAAJaXNEZWZpbmVkAAAAAQkABBoA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AAACXzEEAAAADnVzZXJTV09QTG9ja2VkCAUAAAALJHQwODc1NDg4MzQAAAACXzIEAAAAC2NsYWltQW1vdW50CQAAawAAAAMFAAAADnVzZXJTV09QTG9ja2VkCQAAZQAAAAIFAAAADGxhc3RJbnRlcmVzdAUAAAAQdXNlckxhc3RJbnRlcmVzdAUAAAAKc2NhbGVWYWx1ZQQAAAAPdXNlck5ld0ludGVyZXN0BQAAAAxsYXN0SW50ZXJlc3QJAAUUAAAAAgUAAAAPdXNlck5ld0ludGVyZXN0BQAAAAtjbGFpbUFtb3VudAAAAAgAAAABaQEAAAAHYWlyRHJvcAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAACyR0MDkwOTk5MTc0CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwOTA5OTkxNzQAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA5MDk5OTE3NAAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAAD3RvdGFsU1dPUExvY2tlZAkBAAAAEmdldFRvdGFsU1dPUExvY2tlZAAAAAAEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAtpbnRlcmVzdE5ldwkAAGQAAAACBQAAAAxsYXN0SW50ZXJlc3QJAABrAAAAAwUAAAAJcG10QW1vdW50BQAAAApzY2FsZVZhbHVlBQAAAA90b3RhbFNXT1BMb2NrZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD2tleUxhc3RJbnRlcmVzdAUAAAALaW50ZXJlc3ROZXcFAAAAA25pbAAAAAFpAQAAAAhsb2NrU1dPUAAAAAADCQEAAAABIQAAAAEFAAAACGlzQWN0aXZlCQAAAgAAAAECAAAAH0RBcHAgaXMgaW5hY3RpdmUgYXQgdGhpcyBtb21lbnQEAAAACyR0MDk2MTI5Njg3CQAFFAAAAAIICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAQAAAAJcG10QW1vdW50CAUAAAALJHQwOTYxMjk2ODcAAAACXzEEAAAACnBtdEFzc2V0SWQIBQAAAAskdDA5NjEyOTY4NwAAAAJfMgMJAQAAAAIhPQAAAAIFAAAACnBtdEFzc2V0SWQFAAAABFNXT1AJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBtdEFzc2V0SWQEAAAADGxhc3RJbnRlcmVzdAkBAAAAE2dldExhc3RJbnRlcmVzdEluZm8AAAAABAAAAAskdDA5ODAzOTg4NQkBAAAAE2dldFVzZXJJbnRlcmVzdEluZm8AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAADGxhc3RJbnRlcmVzdAQAAAAQdXNlckxhc3RJbnRlcmVzdAgFAAAACyR0MDk4MDM5ODg1AAAAAl8xBAAAAA51c2VyU1dPUExvY2tlZAgFAAAACyR0MDk4MDM5ODg1AAAAAl8yBAAAAAtjbGFpbUFtb3VudAkAAGsAAAADBQAAAA51c2VyU1dPUExvY2tlZAkAAGUAAAACBQAAAAxsYXN0SW50ZXJlc3QFAAAAEHVzZXJMYXN0SW50ZXJlc3QFAAAACnNjYWxlVmFsdWUEAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAAZAAAAAIJAABkAAAAAgUAAAAOdXNlclNXT1BMb2NrZWQFAAAACXBtdEFtb3VudAUAAAALY2xhaW1BbW91bnQEAAAAD3VzZXJOZXdJbnRlcmVzdAUAAAAMbGFzdEludGVyZXN0BAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAABJ0b3RhbFNXT1BMb2NrZWROZXcJAABkAAAAAgkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAACXBtdEFtb3VudAUAAAALY2xhaW1BbW91bnQEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAYa2V5VXNlclNXT1BDbGFpbWVkQW1vdW50BQAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAca2V5VXNlclNXT1BMYXN0Q2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQFAAAAA25pbAAAAAFpAQAAAAx3aXRoZHJhd1NXT1AAAAABAAAADndpdGhkcmF3QW1vdW50AwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50AwkAAGcAAAACAAAAAAAAAAAABQAAAA53aXRoZHJhd0Ftb3VudAkAAAIAAAABAgAAABN3aXRoZHJhd0Ftb3VudCA8PSAwBAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAA51c2VyU1dPUExvY2tlZAkBAAAAEWdldFVzZXJTV09QTG9ja2VkAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA0kdDAxMTAzNTExMDkwCQEAAAAJY2xhaW1DYWxjAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA91c2VyTmV3SW50ZXJlc3QIBQAAAA0kdDAxMTAzNTExMDkwAAAAAl8xBAAAAAtjbGFpbUFtb3VudAgFAAAADSR0MDExMDM1MTEwOTAAAAACXzIEAAAADSR0MDExMDk1MTExNjAJAQAAAA9nZXRVc2VyVm90ZUluZm8AAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJWb3RlQW1vdW50CAUAAAANJHQwMTEwOTUxMTE2MAAAAAJfMQQAAAAQdXNlclVudm90ZUFtb3VudAgFAAAADSR0MDExMDk1MTExNjAAAAACXzIEAAAAGHVzZXJWb3RlQW1vdW50Rm9yTmV3UG9vbAkBAAAAIGdldFVzZXJUb3RhbFZvdGVGb3JOZXdQb29sQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyAwMDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEHVzZXJVbnZvdGVBbW91bnQGCQAAZgAAAAIAAAAAAAAAAAAFAAAADnVzZXJWb3RlQW1vdW50BgkAAGYAAAACAAAAAAAAAAAABQAAABh1c2VyVm90ZUFtb3VudEZvck5ld1Bvb2wJAAACAAAAAQIAAABKdXNlclVudm90ZUFtb3VudCA8IDAgfHwgdXNlclZvdGVBbW91bnQgPCAwIHx8IHVzZXJWb3RlQW1vdW50Rm9yTmV3UG9vbCA8IDAEAAAAEmF2YWlsYWJsZVRvVW5zdGFrZQkAAGUAAAACBQAAAA51c2VyU1dPUExvY2tlZAkAAZYAAAABCQAETAAAAAIFAAAAGHVzZXJWb3RlQW1vdW50Rm9yTmV3UG9vbAkABEwAAAACCQAAZAAAAAIFAAAADnVzZXJWb3RlQW1vdW50BQAAABB1c2VyVW52b3RlQW1vdW50BQAAAANuaWwDCQAAZgAAAAIFAAAADndpdGhkcmF3QW1vdW50BQAAABJhdmFpbGFibGVUb1Vuc3Rha2UJAAACAAAAAQIAAAAjd2l0aGRyYXdBbW91bnQgPiBhdmFpbGFibGVUb1Vuc3Rha2UEAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkAAGUAAAACCQAAZAAAAAIFAAAAD3RvdGFsU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQFAAAADndpdGhkcmF3QW1vdW50BAAAABF1c2VyU1dPUGFtb3VudE5ldwkAAGUAAAACCQAAZAAAAAIFAAAADnVzZXJTV09QTG9ja2VkBQAAAAtjbGFpbUFtb3VudAUAAAAOd2l0aGRyYXdBbW91bnQEAAAAEXVzZXJDbGFpbWVkQW1vdW50CQEAAAAYZ2V0VXNlclNXT1BDbGFpbWVkQW1vdW50AAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAABR1c2VyQ2xhaW1lZEFtb3VudE5ldwkAAGQAAAACBQAAABF1c2VyQ2xhaW1lZEFtb3VudAUAAAALY2xhaW1BbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAE2tleVVzZXJMYXN0SW50ZXJlc3QFAAAAD3VzZXJOZXdJbnRlcmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa2V5VXNlclNXT1BMb2NrZWQFAAAAEXVzZXJTV09QYW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlUb3RhbFNXT1BMb2NrZWQFAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADndpdGhkcmF3QW1vdW50BQAAAARTV09QCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAUAAAADbmlsAAAAAWkBAAAAFGNsYWltQW5kV2l0aGRyYXdTV09QAAAAAAMJAQAAAAEhAAAAAQUAAAAIaXNBY3RpdmUJAAACAAAAAQIAAAAfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAQAAAAMbGFzdEludGVyZXN0CQEAAAATZ2V0TGFzdEludGVyZXN0SW5mbwAAAAAEAAAADSR0MDEyNTM1MTI1OTAJAQAAAAljbGFpbUNhbGMAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAD3VzZXJOZXdJbnRlcmVzdAgFAAAADSR0MDEyNTM1MTI1OTAAAAACXzEEAAAAC2NsYWltQW1vdW50CAUAAAANJHQwMTI1MzUxMjU5MAAAAAJfMgQAAAARdXNlckNsYWltZWRBbW91bnQJAQAAABhnZXRVc2VyU1dPUENsYWltZWRBbW91bnQAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAAZAAAAAIFAAAAEXVzZXJDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAMJAAAAAAAAAgUAAAALY2xhaW1BbW91bnQAAAAAAAAAAAAJAAACAAAAAQIAAAAZWW91IGhhdmUgMCBhdmFpbGFibGUgU1dPUAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAATa2V5VXNlckxhc3RJbnRlcmVzdAUAAAAPdXNlck5ld0ludGVyZXN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABhrZXlVc2VyU1dPUENsYWltZWRBbW91bnQFAAAAFHVzZXJDbGFpbWVkQW1vdW50TmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABxrZXlVc2VyU1dPUExhc3RDbGFpbWVkQW1vdW50BQAAAAtjbGFpbUFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAC2NsYWltQW1vdW50BQAAAARTV09QBQAAAANuaWwAAAABaQEAAAARY2xhaW1BbmRTdGFrZVNXT1AAAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50BAAAAA90b3RhbFNXT1BMb2NrZWQJAQAAABJnZXRUb3RhbFNXT1BMb2NrZWQAAAAABAAAAA51c2VyU1dPUExvY2tlZAkBAAAAEWdldFVzZXJTV09QTG9ja2VkAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAxsYXN0SW50ZXJlc3QJAQAAABNnZXRMYXN0SW50ZXJlc3RJbmZvAAAAAAQAAAANJHQwMTMzNjkxMzQyNAkBAAAACWNsYWltQ2FsYwAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAPdXNlck5ld0ludGVyZXN0CAUAAAANJHQwMTMzNjkxMzQyNAAAAAJfMQQAAAALY2xhaW1BbW91bnQIBQAAAA0kdDAxMzM2OTEzNDI0AAAAAl8yBAAAABF1c2VyU1dPUExvY2tlZE5ldwkAAGQAAAACBQAAAA51c2VyU1dPUExvY2tlZAUAAAALY2xhaW1BbW91bnQEAAAAEnRvdGFsU1dPUExvY2tlZE5ldwkAAGQAAAACBQAAAA90b3RhbFNXT1BMb2NrZWQFAAAAC2NsYWltQW1vdW50BAAAABF1c2VyQ2xhaW1lZEFtb3VudAkBAAAAGGdldFVzZXJTV09QQ2xhaW1lZEFtb3VudAAAAAEIBQAAAAFpAAAABmNhbGxlcgQAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAABkAAAAAgUAAAARdXNlckNsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50AwkAAAAAAAACBQAAAAtjbGFpbUFtb3VudAAAAAAAAAAAAAkAAAIAAAABAgAAABlZb3UgaGF2ZSAwIGF2YWlsYWJsZSBTV09QCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABNrZXlVc2VyTGFzdEludGVyZXN0BQAAAA91c2VyTmV3SW50ZXJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEmtleVRvdGFsU1dPUExvY2tlZAUAAAASdG90YWxTV09QTG9ja2VkTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABFrZXlVc2VyU1dPUExvY2tlZAUAAAARdXNlclNXT1BMb2NrZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAGGtleVVzZXJTV09QQ2xhaW1lZEFtb3VudAUAAAAUdXNlckNsYWltZWRBbW91bnROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAHGtleVVzZXJTV09QTGFzdENsYWltZWRBbW91bnQFAAAAC2NsYWltQW1vdW50BQAAAANuaWwAAAABaQEAAAANdXBkYXRlV2VpZ2h0cwAAAAYAAAANcHJldmlvdXNQb29scwAAAA9wcmV2aW91c1Jld2FyZHMAAAAMY3VycmVudFBvb2xzAAAADmN1cnJlbnRSZXdhcmRzAAAAEnJld2FyZFVwZGF0ZUhlaWdodAAAAApwYWdpbmF0aW9uAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAAB9EQXBwIGlzIGluYWN0aXZlIGF0IHRoaXMgbW9tZW50BAAAAAthbW91bnRQb29scwAAAAAAAAAACgQAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAVa2V5UmV3YXJkVXBkYXRlSGVpZ2h0AAAAAAAAAAAAAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAkABEwAAAACBQAAABFhZG1pblB1YktleVdhbGxldAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAwMJAABmAAAAAgkAAZAAAAABBQAAAA1wcmV2aW91c1Bvb2xzBQAAAAthbW91bnRQb29scwYJAABmAAAAAgkAAZAAAAABBQAAAAxjdXJyZW50UG9vbHMFAAAAC2Ftb3VudFBvb2xzCQAAAgAAAAEJAAEsAAAAAgIAAAAWTWF4IGFtb3VudCBvZiBwb29sIGlzIAkAAaQAAAABBQAAAAthbW91bnRQb29scwMJAABnAAAAAgUAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAAC1yZXdhcmRVcGRhdGVIZWlnaHQgPD0gdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAHGhlaWdodCA+PSByZXdhcmRVcGRhdGVIZWlnaHQDCQAAZwAAAAIAAAAAAAAAAAAFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAABgwID49IHJld2FyZFVwZGF0ZUhlaWdodCAKAQAAAANzdW0AAAACAAAAAWEAAAABYgkAAGQAAAACBQAAAAFhBQAAAAFiCgEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAkBAAAAE2dldFBvb2xVcGRhdGVIZWlnaHQAAAABBQAAAARwb29sAwkBAAAAASEAAAABCQEAAAAYaXNEZWZpbmVQb29sVXBkYXRlSGVpZ2h0AAAAAQUAAAAEcG9vbAQAAAAKcG9vbFJld2FyZAkBAAAAEGdldEN1clBvb2xXZWlnaHQAAAABBQAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAHWtleVJld2FyZFBvb2xGcmFjdGlvblByZXZpb3VzBQAAAApwb29sUmV3YXJkBQAAAAthY2N1bXVsYXRlZAMJAQAAAAIhPQAAAAIFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAMJAAAAAAAAAgUAAAAWcG9vbFJld2FyZFVwZGF0ZUhlaWdodAUAAAAXdG90YWxSZXdhcmRVcGRhdGVIZWlnaHQEAAAACnBvb2xSZXdhcmQJAQAAABBnZXRDdXJQb29sV2VpZ2h0AAAAAQUAAAAEcG9vbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAARwb29sBQAAAB1rZXlSZXdhcmRQb29sRnJhY3Rpb25QcmV2aW91cwUAAAAKcG9vbFJld2FyZAUAAAALYWNjdW11bGF0ZWQFAAAAA25pbAUAAAADbmlsCgEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sBAAAAAlwb29sSW5kZXgJAQAAAAV2YWx1ZQAAAAEJAARPAAAAAgUAAAAMY3VycmVudFBvb2xzBQAAAARwb29sBAAAAApwb29sUmV3YXJkCQABkQAAAAIFAAAADmN1cnJlbnRSZXdhcmRzBQAAAAlwb29sSW5kZXgDCQAAZgAAAAIAAAAAAAAAAAAFAAAACnBvb2xSZXdhcmQJAAACAAAAAQIAAAAOUG9vbFJld2FyZCA8IDAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAUAAAAca2V5UmV3YXJkUG9vbEZyYWN0aW9uQ3VycmVudAUAAAAKcG9vbFJld2FyZAUAAAALYWNjdW11bGF0ZWQKAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAKcG9vbEhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wFAAAAFWtleUhlaWdodFBvb2xGcmFjdGlvbgUAAAAKcG9vbEhlaWdodAUAAAALYWNjdW11bGF0ZWQKAQAAAAxnZXRTdW1SZXdhcmQAAAADAAAAC3ByZXZUZW1wU3VtAAAACmN1clRlbXBTdW0AAAAKcGFnaW5hdGlvbgMJAAAAAAAAAgUAAAAKcGFnaW5hdGlvbgAAAAAAAAAAAAMDCQAAZgAAAAIFAAAAC3ByZXZUZW1wU3VtBQAAAA50b3RhbFZvdGVTaGFyZQYJAABmAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAAOdG90YWxWb3RlU2hhcmUJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAASnN1bVJld2FyZFByZXZpb3VzID4gdG90YWxWb3RlU2hhcmUgb3Igc3VtUmV3YXJkQ3VycmVudCA+IHRvdGFsVm90ZVNoYXJlIC0gCQABpAAAAAEFAAAACnBhZ2luYXRpb24CAAAAASAJAAGkAAAAAQUAAAALcHJldlRlbXBTdW0CAAAAASAJAAGkAAAAAQUAAAAKY3VyVGVtcFN1bQkABRUAAAADCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5rZXlUZW1wUHJldlN1bQUAAAALcHJldlRlbXBTdW0FAAAAA25pbAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAANa2V5VGVtcEN1clN1bQUAAAAKY3VyVGVtcFN1bQUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAABBAAAABJwcmV2VGVtcFN1bUZyb21LZXkJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAOa2V5VGVtcFByZXZTdW0AAAAAAAAAAAAEAAAAEWN1clRlbXBTdW1Gcm9tS2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADWtleVRlbXBDdXJTdW0AAAAAAAAAAAAEAAAAJnJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAJGtleVJld2FyZFVwZGF0ZUZpcnN0UGFnaW5hdGlvbkhlaWdodAAAAAAAAAAAAAMDCQAAZgAAAAIJAABkAAAAAgUAAAALcHJldlRlbXBTdW0FAAAAEnByZXZUZW1wU3VtRnJvbUtleQUAAAAOdG90YWxWb3RlU2hhcmUGCQAAZgAAAAIJAABkAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAARY3VyVGVtcFN1bUZyb21LZXkFAAAADnRvdGFsVm90ZVNoYXJlCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAEpzdW1SZXdhcmRQcmV2aW91cyA+IHRvdGFsVm90ZVNoYXJlIG9yIHN1bVJld2FyZEN1cnJlbnQgPiB0b3RhbFZvdGVTaGFyZSAtIAkAAaQAAAABBQAAAApwYWdpbmF0aW9uAgAAAAEgCQABpAAAAAEJAABkAAAAAgUAAAALcHJldlRlbXBTdW0FAAAAEnByZXZUZW1wU3VtRnJvbUtleQIAAAABIAkAAaQAAAABCQAAZAAAAAIFAAAACmN1clRlbXBTdW0FAAAAEWN1clRlbXBTdW1Gcm9tS2V5AwkBAAAAAiE9AAAAAgUAAAAmcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAkAAAIAAAABAgAAAERjdXJyZW50IHJld2FyZFVwZGF0ZUhlaWdodCAhPSByZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQkABRUAAAADCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5rZXlUZW1wUHJldlN1bQkAAGQAAAACBQAAAAtwcmV2VGVtcFN1bQUAAAAScHJldlRlbXBTdW1Gcm9tS2V5BQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleVRlbXBDdXJTdW0JAABkAAAAAgUAAAAKY3VyVGVtcFN1bQUAAAARY3VyVGVtcFN1bUZyb21LZXkFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACBAAAAAdwcmV2U3VtCQAAZAAAAAIJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAOa2V5VGVtcFByZXZTdW0AAAAAAAAAAAAFAAAAC3ByZXZUZW1wU3VtBAAAAAZjdXJTdW0JAABkAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA1rZXlUZW1wQ3VyU3VtAAAAAAAAAAAABQAAAApjdXJUZW1wU3VtBAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAACRrZXlSZXdhcmRVcGRhdGVGaXJzdFBhZ2luYXRpb25IZWlnaHQAAAAAAAAAAAADAwkBAAAAAiE9AAAAAgUAAAAHcHJldlN1bQUAAAAOdG90YWxWb3RlU2hhcmUGCQEAAAACIT0AAAACBQAAAAZjdXJTdW0FAAAADnRvdGFsVm90ZVNoYXJlCQAAAgAAAAECAAAASXN1bVJld2FyZFByZXZpb3VzICE9IHRvdGFsVm90ZVNoYXJlIG9yIHN1bVJld2FyZEN1cnJlbnQgIT0gdG90YWxWb3RlU2hhcmUDCQEAAAACIT0AAAACBQAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAARGN1cnJlbnQgcmV3YXJkVXBkYXRlSGVpZ2h0ICE9IHJld2FyZFVwZGF0ZUhlaWdodEZpcnN0UGFnaW5hdGlvbkVudHJ5CQAFFQAAAAMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADmtleVRlbXBQcmV2U3VtBQAAAAdwcmV2U3VtBQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADWtleVRlbXBDdXJTdW0FAAAABmN1clN1bQUAAAADbmlsBQAAAANuaWwJAAACAAAAAQIAAAAUSW5jb3JyZWN0IHBhZ2luYXRpb24EAAAAFXN1bVJld2FyZFByZXZpb3VzVGVtcAQAAAAPJGxpc3QxOTAx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dW1SZXdhcmQAAAADBQAAABVzdW1SZXdhcmRQcmV2aW91c1RlbXAFAAAAFHN1bVJld2FyZEN1cnJlbnRUZW1wBQAAAApwYWdpbmF0aW9uBAAAABFzdW1SZXdhcmRQcmV2aW91cwgFAAAADSR0MDE5MTE4MTkyNzEAAAACXzEEAAAAEHN1bVJld2FyZEN1cnJlbnQIBQAAAA0kdDAxOTExODE5MjcxAAAAAl8yBAAAACZyZXdhcmRVcGRhdGVIZWlnaHRGaXJzdFBhZ2luYXRpb25FbnRyeQgFAAAADSR0MDE5MTE4MTkyNzEAAAACXzMEAAAAF3Jld2FyZFVwZGF0ZUhlaWdodEVudHJ5AwkAAAAAAAACBQAAAApwYWdpbmF0aW9uAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABVrZXlSZXdhcmRVcGRhdGVIZWlnaHQFAAAAEnJld2FyZFVwZGF0ZUhlaWdodAUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAABmhlaWdodAUAAAAScmV3YXJkVXBkYXRlSGVpZ2h0CQAAAgAAAAECAAAAG3Jld2FyZFVwZGF0ZUhlaWdodCA8IGhlaWdodAQAAAAWcHJldmlvdXNSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxOTUyMTE5NTc1BQAAAA1wcmV2aW91c1Bvb2xzBAAAAA8kc2l6ZTE5NTIxMTk1NzUJAAGQAAAAAQUAAAAPJGxpc3QxOTUyMTE5NTc1BAAAAA8kYWNjMDE5NTIxMTk1NzUFAAAAA25pbAMJAAAAAAAAAgUAAAAPJHNpemUxOTUyMTE5NTc1AAAAAAAAAAAABQAAAA8kYWNjMDE5NTIxMTk1NzUEAAAADyRhY2MxMTk1MjExOTU3NQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMDE5NTIxMTk1NzUJAAGRAAAAAgUAAAAPJGxpc3QxOTUyMTE5NTc1AAAAAAAAAAAAAwkAAAAAAAACBQAAAA8kc2l6ZTE5NTIxMTk1NzUAAAAAAAAAAAEFAAAADyRhY2MxMTk1MjExOTU3NQQAAAAPJGFjYzIxOTUyMTE5NTc1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MxMTk1MjExOTU3NQkAAZEAAAACBQAAAA8kbGlzdDE5NTIxMTk1NzUAAAAAAAAAAAEDCQAAAAAAAAIFAAAADyRzaXplMTk1MjExOTU3NQAAAAAAAAAAAgUAAAAPJGFjYzIxOTUyMTE5NTc1BAAAAA8kYWNjMzE5NTIxMTk1NzUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzIxOTUyMTE5NTc1CQABkQAAAAIFAAAADyRsaXN0MTk1MjExOTU3NQAAAAAAAAAAAgMJAAAAAAAAAgUAAAAPJHNpemUxOTUyMTE5NTc1AAAAAAAAAAADBQAAAA8kYWNjMzE5NTIxMTk1NzUEAAAADyRhY2M0MTk1MjExOTU3NQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMzE5NTIxMTk1NzUJAAGRAAAAAgUAAAAPJGxpc3QxOTUyMTE5NTc1AAAAAAAAAAADAwkAAAAAAAACBQAAAA8kc2l6ZTE5NTIxMTk1NzUAAAAAAAAAAAQFAAAADyRhY2M0MTk1MjExOTU3NQQAAAAPJGFjYzUxOTUyMTE5NTc1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M0MTk1MjExOTU3NQkAAZEAAAACBQAAAA8kbGlzdDE5NTIxMTk1NzUAAAAAAAAAAAQDCQAAAAAAAAIFAAAADyRzaXplMTk1MjExOTU3NQAAAAAAAAAABQUAAAAPJGFjYzUxOTUyMTE5NTc1BAAAAA8kYWNjNjE5NTIxMTk1NzUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzUxOTUyMTE5NTc1CQABkQAAAAIFAAAADyRsaXN0MTk1MjExOTU3NQAAAAAAAAAABQMJAAAAAAAAAgUAAAAPJHNpemUxOTUyMTE5NTc1AAAAAAAAAAAGBQAAAA8kYWNjNjE5NTIxMTk1NzUEAAAADyRhY2M3MTk1MjExOTU3NQkBAAAAGWNoYW5nZVByZXZpb3VzUmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNjE5NTIxMTk1NzUJAAGRAAAAAgUAAAAPJGxpc3QxOTUyMTE5NTc1AAAAAAAAAAAGAwkAAAAAAAACBQAAAA8kc2l6ZTE5NTIxMTk1NzUAAAAAAAAAAAcFAAAADyRhY2M3MTk1MjExOTU3NQQAAAAPJGFjYzgxOTUyMTE5NTc1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M3MTk1MjExOTU3NQkAAZEAAAACBQAAAA8kbGlzdDE5NTIxMTk1NzUAAAAAAAAAAAcDCQAAAAAAAAIFAAAADyRzaXplMTk1MjExOTU3NQAAAAAAAAAACAUAAAAPJGFjYzgxOTUyMTE5NTc1BAAAAA8kYWNjOTE5NTIxMTk1NzUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzgxOTUyMTE5NTc1CQABkQAAAAIFAAAADyRsaXN0MTk1MjExOTU3NQAAAAAAAAAACAMJAAAAAAAAAgUAAAAPJHNpemUxOTUyMTE5NTc1AAAAAAAAAAAJBQAAAA8kYWNjOTE5NTIxMTk1NzUEAAAAECRhY2MxMDE5NTIxMTk1NzUJAQAAABljaGFuZ2VQcmV2aW91c1Jld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzkxOTUyMTE5NTc1CQABkQAAAAIFAAAADyRsaXN0MTk1MjExOTU3NQAAAAAAAAAACQMJAAAAAAAAAgUAAAAPJHNpemUxOTUyMTE5NTc1AAAAAAAAAAAKBQAAABAkYWNjMTAxOTUyMTE5NTc1BAAAABAkYWNjMTExOTUyMTE5NTc1CQEAAAAZY2hhbmdlUHJldmlvdXNSZXdhcmRFbnRyeQAAAAIFAAAAECRhY2MxMDE5NTIxMTk1NzUJAAGRAAAAAgUAAAAPJGxpc3QxOTUyMTE5NTc1AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAEAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwQAAAAPJGxpc3QxOTYwODE5NjYwBQAAAAxjdXJyZW50UG9vbHMEAAAADyRzaXplMTk2MDgxOTY2MAkAAZAAAAABBQAAAA8kbGlzdDE5NjA4MTk2NjAEAAAADyRhY2MwMTk2MDgxOTY2MAUAAAADbmlsAwkAAAAAAAACBQAAAA8kc2l6ZTE5NjA4MTk2NjAAAAAAAAAAAAAFAAAADyRhY2MwMTk2MDgxOTY2MAQAAAAPJGFjYzExOTYwODE5NjYwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzAxOTYwODE5NjYwCQABkQAAAAIFAAAADyRsaXN0MTk2MDgxOTY2MAAAAAAAAAAAAAMJAAAAAAAAAgUAAAAPJHNpemUxOTYwODE5NjYwAAAAAAAAAAABBQAAAA8kYWNjMTE5NjA4MTk2NjAEAAAADyRhY2MyMTk2MDgxOTY2MAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2MxMTk2MDgxOTY2MAkAAZEAAAACBQAAAA8kbGlzdDE5NjA4MTk2NjAAAAAAAAAAAAEDCQAAAAAAAAIFAAAADyRzaXplMTk2MDgxOTY2MAAAAAAAAAAAAgUAAAAPJGFjYzIxOTYwODE5NjYwBAAAAA8kYWNjMzE5NjA4MTk2NjAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjMjE5NjA4MTk2NjAJAAGRAAAAAgUAAAAPJGxpc3QxOTYwODE5NjYwAAAAAAAAAAACAwkAAAAAAAACBQAAAA8kc2l6ZTE5NjA4MTk2NjAAAAAAAAAAAAMFAAAADyRhY2MzMTk2MDgxOTY2MAQAAAAPJGFjYzQxOTYwODE5NjYwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzMxOTYwODE5NjYwCQABkQAAAAIFAAAADyRsaXN0MTk2MDgxOTY2MAAAAAAAAAAAAwMJAAAAAAAAAgUAAAAPJHNpemUxOTYwODE5NjYwAAAAAAAAAAAEBQAAAA8kYWNjNDE5NjA4MTk2NjAEAAAADyRhY2M1MTk2MDgxOTY2MAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M0MTk2MDgxOTY2MAkAAZEAAAACBQAAAA8kbGlzdDE5NjA4MTk2NjAAAAAAAAAAAAQDCQAAAAAAAAIFAAAADyRzaXplMTk2MDgxOTY2MAAAAAAAAAAABQUAAAAPJGFjYzUxOTYwODE5NjYwBAAAAA8kYWNjNjE5NjA4MTk2NjAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjNTE5NjA4MTk2NjAJAAGRAAAAAgUAAAAPJGxpc3QxOTYwODE5NjYwAAAAAAAAAAAFAwkAAAAAAAACBQAAAA8kc2l6ZTE5NjA4MTk2NjAAAAAAAAAAAAYFAAAADyRhY2M2MTk2MDgxOTY2MAQAAAAPJGFjYzcxOTYwODE5NjYwCQEAAAAYY2hhbmdlQ3VycmVudFJld2FyZEVudHJ5AAAAAgUAAAAPJGFjYzYxOTYwODE5NjYwCQABkQAAAAIFAAAADyRsaXN0MTk2MDgxOTY2MAAAAAAAAAAABgMJAAAAAAAAAgUAAAAPJHNpemUxOTYwODE5NjYwAAAAAAAAAAAHBQAAAA8kYWNjNzE5NjA4MTk2NjAEAAAADyRhY2M4MTk2MDgxOTY2MAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M3MTk2MDgxOTY2MAkAAZEAAAACBQAAAA8kbGlzdDE5NjA4MTk2NjAAAAAAAAAAAAcDCQAAAAAAAAIFAAAADyRzaXplMTk2MDgxOTY2MAAAAAAAAAAACAUAAAAPJGFjYzgxOTYwODE5NjYwBAAAAA8kYWNjOTE5NjA4MTk2NjAJAQAAABhjaGFuZ2VDdXJyZW50UmV3YXJkRW50cnkAAAACBQAAAA8kYWNjODE5NjA4MTk2NjAJAAGRAAAAAgUAAAAPJGxpc3QxOTYwODE5NjYwAAAAAAAAAAAIAwkAAAAAAAACBQAAAA8kc2l6ZTE5NjA4MTk2NjAAAAAAAAAAAAkFAAAADyRhY2M5MTk2MDgxOTY2MAQAAAAQJGFjYzEwMTk2MDgxOTY2MAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAADyRhY2M5MTk2MDgxOTY2MAkAAZEAAAACBQAAAA8kbGlzdDE5NjA4MTk2NjAAAAAAAAAAAAkDCQAAAAAAAAIFAAAADyRzaXplMTk2MDgxOTY2MAAAAAAAAAAACgUAAAAQJGFjYzEwMTk2MDgxOTY2MAQAAAAQJGFjYzExMTk2MDgxOTY2MAkBAAAAGGNoYW5nZUN1cnJlbnRSZXdhcmRFbnRyeQAAAAIFAAAAECRhY2MxMDE5NjA4MTk2NjAJAAGRAAAAAgUAAAAPJGxpc3QxOTYwODE5NjYwAAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAEAAAAEWhlaWdodEVudHJ5TmV3Q3VyBAAAAA8kbGlzdDE5Njg5MTk3MzQFAAAADGN1cnJlbnRQb29scwQAAAAPJHNpemUxOTY4OTE5NzM0CQABkAAAAAEFAAAADyRsaXN0MTk2ODkxOTczNAQAAAAPJGFjYzAxOTY4OTE5NzM0BQAAAANuaWwDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAAAAUAAAAPJGFjYzAxOTY4OTE5NzM0BAAAAA8kYWNjMTE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MwMTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAADCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAAAQUAAAAPJGFjYzExOTY4OTE5NzM0BAAAAA8kYWNjMjE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MxMTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAEDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAAAgUAAAAPJGFjYzIxOTY4OTE5NzM0BAAAAA8kYWNjMzE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MyMTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAIDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAAAwUAAAAPJGFjYzMxOTY4OTE5NzM0BAAAAA8kYWNjNDE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2MzMTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAMDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAABAUAAAAPJGFjYzQxOTY4OTE5NzM0BAAAAA8kYWNjNTE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M0MTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAQDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAABQUAAAAPJGFjYzUxOTY4OTE5NzM0BAAAAA8kYWNjNjE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M1MTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAUDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAABgUAAAAPJGFjYzYxOTY4OTE5NzM0BAAAAA8kYWNjNzE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M2MTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAYDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAABwUAAAAPJGFjYzcxOTY4OTE5NzM0BAAAAA8kYWNjODE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M3MTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAcDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAACAUAAAAPJGFjYzgxOTY4OTE5NzM0BAAAAA8kYWNjOTE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAADyRhY2M4MTk2ODkxOTczNAkAAZEAAAACBQAAAA8kbGlzdDE5Njg5MTk3MzQAAAAAAAAAAAgDCQAAAAAAAAIFAAAADyRzaXplMTk2ODkxOTczNAAAAAAAAAAACQUAAAAPJGFjYzkxOTY4OTE5NzM0BAAAABAkYWNjMTAxOTY4OTE5NzM0CQEAAAARY2hhbmdlSGVpZ2h0RW50cnkAAAACBQAAAA8kYWNjOTE5Njg5MTk3MzQJAAGRAAAAAgUAAAAPJGxpc3QxOTY4OTE5NzM0AAAAAAAAAAAJAwkAAAAAAAACBQAAAA8kc2l6ZTE5Njg5MTk3MzQAAAAAAAAAAAoFAAAAECRhY2MxMDE5Njg5MTk3MzQEAAAAECRhY2MxMTE5Njg5MTk3MzQJAQAAABFjaGFuZ2VIZWlnaHRFbnRyeQAAAAIFAAAAECRhY2MxMDE5Njg5MTk3MzQJAAGRAAAAAgUAAAAPJGxpc3QxOTY4OTE5NzM0AAAAAAAAAAAKCQAAAgAAAAECAAAAE0xpc3Qgc2l6ZSBleGNlZWQgMTAJAAROAAAAAgkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABE4AAAACCQAETgAAAAIFAAAAFnByZXZpb3VzUmV3YXJkRW50cnlOZXcFAAAAFWN1cnJlbnRSZXdhcmRFbnRyeU5ldwUAAAARaGVpZ2h0RW50cnlOZXdDdXIFAAAAEXN1bVJld2FyZFByZXZpb3VzBQAAABBzdW1SZXdhcmRDdXJyZW50BQAAABdyZXdhcmRVcGRhdGVIZWlnaHRFbnRyeQUAAAAmcmV3YXJkVXBkYXRlSGVpZ2h0Rmlyc3RQYWdpbmF0aW9uRW50cnkAAAABaQEAAAAIc2h1dGRvd24AAAAAAwkBAAAAASEAAAABBQAAAAhpc0FjdGl2ZQkAAAIAAAABCQABLAAAAAICAAAAIkRBcHAgaXMgYWxyZWFkeSBzdXNwZW5kZWQuIENhdXNlOiAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAIa2V5Q2F1c2UCAAAAGnRoZSBjYXVzZSB3YXNuJ3Qgc3BlY2lmaWVkAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQEAAAAHc3VzcGVuZAAAAAECAAAAD1BhdXNlZCBieSBhZG1pbgAAAAFpAQAAAAhhY3RpdmF0ZQAAAAADBQAAAAhpc0FjdGl2ZQkAAAIAAAABAgAAABZEQXBwIGlzIGFscmVhZHkgYWN0aXZlAwkBAAAAASEAAAABCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwkABEwAAAACBQAAABRhZG1pblB1YktleVN0YXJ0U3RvcAUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAAhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAlrZXlBY3RpdmUGCQAETAAAAAIJAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAACGtleUNhdXNlBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAABAAAABJhZG1pblB1YktleTFTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAMYWRtaW5QdWJLZXkxAAAAAAAAAAABAAAAAAAAAAAABAAAABJhZG1pblB1YktleTJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAMYWRtaW5QdWJLZXkyAAAAAAAAAAABAAAAAAAAAAAABAAAABJhZG1pblB1YktleTNTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAMYWRtaW5QdWJLZXkzAAAAAAAAAAABAAAAAAAAAAAACQAAZwAAAAIJAABkAAAAAgkAAGQAAAACBQAAABJhZG1pblB1YktleTFTaWduZWQFAAAAEmFkbWluUHViS2V5MlNpZ25lZAUAAAASYWRtaW5QdWJLZXkzU2lnbmVkAAAAAAAAAAACwDoSYg==", "height": 1568265, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CM4ztN1EiadtH8XvwuHp8baLByXTLu1aVeCuq7fANoDd Next: sqmkUDBCZbMpNBmhcE8cZXs84DFAUBQfe1iiv3tuW5Q Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4+let a = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
55
6-let b = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
6+let b = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
77
8-let c = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8+let c = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
99
10-let d = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
10+let d = base58'EtVkT6ed8GtbUiVVEqdmEqsp2J4qbb3rre2HFgxeVYdg'
1111
12-let e = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
12+let e = base58'GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw'
1313
1414 let f = "active"
1515
7979
8080 let M = valueOrElse(getBoolean(this, f), true)
8181
82-let N = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
82+let N = Address(base58'3P73HDkPqG15nLXevjCbmXtazHYTZbpPoPw')
8383
84-let O = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
84+let O = Address(base58'3PQZWxShKGRgBN1qoJw6B4s9YWS9FneZTPg')
8585
86-let P = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
86+let P = Address(base58'3PHgHf5C4WvHJucSHrjoVnMFsP1EhWffVLt')
8787
8888 let Q = "SWOP_id"
8989
205205 func aN (au) = valueOrElse(getInteger(this, (au + x)), 0)
206206
207207
208-func aO (au) = valueOrElse(getIntegerValue(this, (au + v)), 0)
208+func aO (au) = isDefined(getInteger(this, (au + x)))
209209
210210
211-func aP (al,aM,aQ) = {
212- let aR = getInteger(this, (((aM + aQ) + toString(al)) + n))
213- let aS = {
214- let as = aR
211+func aP (au) = valueOrElse(getInteger(this, (au + v)), 0)
212+
213+
214+func aQ (al,aM,aR) = {
215+ let aS = getInteger(this, (((aM + aR) + toString(al)) + n))
216+ let aT = {
217+ let as = aS
215218 if ($isInstanceOf(as, "Int"))
216219 then {
217- let aS = as
218- aS
220+ let aT = as
221+ aT
219222 }
220223 else if ($isInstanceOf(as, "Unit"))
221224 then {
222- let aS = as
225+ let aT = as
223226 0
224227 }
225228 else throw("Match error")
226229 }
227- valueOrErrorMessage(aS, (((("No data on the key: " + aM) + aQ) + toString(al)) + n))
230+ valueOrErrorMessage(aT, (((("No data on the key: " + aM) + aR) + toString(al)) + n))
228231 }
229232
230233
231-func aT (aM) = valueOrErrorMessage(getInteger(this, (aM + u)), (("No data on the key: " + aM) + u))
234+func aU (aM) = valueOrErrorMessage(getInteger(this, (aM + u)), (("No data on the key: " + aM) + u))
232235
233236
234-func aU (aM,aQ) = {
235- let aV = getInteger(this, ((aM + aQ) + o))
236- let aW = {
237- let as = aV
237+func aV (aM,aR) = {
238+ let aW = getInteger(this, ((aM + aR) + o))
239+ let aX = {
240+ let as = aW
238241 if ($isInstanceOf(as, "Int"))
239242 then {
240- let aW = as
241- aW
243+ let aX = as
244+ aX
242245 }
243246 else if ($isInstanceOf(as, "Unit"))
244247 then {
245- let aW = as
248+ let aX = as
246249 0
247250 }
248251 else throw("Match error")
249252 }
250- aW
253+ aX
251254 }
252255
253256
254-func aX (aM,aQ,al,aY) = {
255- let aZ = ((((((aM + "_") + aQ) + "_") + toString(al)) + "_") + toString(aY))
256- valueOrErrorMessage(getInteger(this, aZ), ("No data on the key: " + aZ))
257+func aY (aM,aR,al,aZ) = {
258+ let ba = ((((((aM + "_") + aR) + "_") + toString(al)) + "_") + toString(aZ))
259+ valueOrErrorMessage(getInteger(this, ba), ("No data on the key: " + ba))
257260 }
258261
259262
260-func ba (bb) = {
263+func bb (bc) = {
261264 let aj = ai()
262- let bc = ao(bb, aj)
263- let aq = bc._1
264- let bd = bc._2
265- let be = fraction(bd, (aj - aq), S)
266- let bf = aj
267- $Tuple2(bf, be)
265+ let bd = ao(bc, aj)
266+ let aq = bd._1
267+ let be = bd._2
268+ let bf = fraction(be, (aj - aq), S)
269+ let bg = aj
270+ $Tuple2(bg, bf)
268271 }
269272
270273
271-@Callable(bg)
274+@Callable(bh)
272275 func airDrop () = if (!(M))
273276 then throw("DApp is inactive at this moment")
274277 else {
275- let bh = $Tuple2(bg.payments[0].amount, bg.payments[0].assetId)
276- let bi = bh._1
277- let bj = bh._2
278- if ((bj != R))
278+ let bi = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
279+ let bj = bi._1
280+ let bk = bi._2
281+ if ((bk != R))
279282 then throw("Incorrect pmtAssetId")
280283 else {
281- let bk = aB()
284+ let bl = aB()
282285 let aj = ai()
283- let bl = (aj + fraction(bi, S, bk))
284-[IntegerEntry(h, bl)]
286+ let bm = (aj + fraction(bj, S, bl))
287+[IntegerEntry(h, bm)]
285288 }
286289 }
287290
288291
289292
290-@Callable(bg)
293+@Callable(bh)
291294 func lockSWOP () = if (!(M))
292295 then throw("DApp is inactive at this moment")
293296 else {
294- let bm = $Tuple2(bg.payments[0].amount, bg.payments[0].assetId)
295- let bi = bm._1
296- let bj = bm._2
297- if ((bj != R))
297+ let bn = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
298+ let bj = bn._1
299+ let bk = bn._2
300+ if ((bk != R))
298301 then throw("Incorrect pmtAssetId")
299302 else {
300303 let aj = ai()
301- let bn = ao(bg.caller, aj)
302- let aq = bn._1
303- let bd = bn._2
304- let be = fraction(bd, (aj - aq), S)
305- let bo = ((bd + bi) + be)
306- let bf = aj
307- let bk = aB()
308- let bp = ((bk + bi) + be)
309- let bq = am(bg.caller)
310- let br = (bq + be)
311-[IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry((toString(bg.caller) + j), bo), IntegerEntry(l, bp), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be)]
304+ let bo = ao(bh.caller, aj)
305+ let aq = bo._1
306+ let be = bo._2
307+ let bf = fraction(be, (aj - aq), S)
308+ let bp = ((be + bj) + bf)
309+ let bg = aj
310+ let bl = aB()
311+ let bq = ((bl + bj) + bf)
312+ let br = am(bh.caller)
313+ let bs = (br + bf)
314+[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
312315 }
313316 }
314317
315318
316319
317-@Callable(bg)
318-func withdrawSWOP (bs) = if (!(M))
320+@Callable(bh)
321+func withdrawSWOP (bt) = if (!(M))
319322 then throw("DApp is inactive at this moment")
320- else if ((0 >= bs))
323+ else if ((0 >= bt))
321324 then throw("withdrawAmount <= 0")
322325 else {
323- let bk = aB()
324- let bd = ak(bg.caller)
325- let bt = ba(bg.caller)
326- let bf = bt._1
327- let be = bt._2
328- let bu = aC(bg.caller)
329- let bv = bu._1
330- let bw = bu._2
331- let bx = az(bg.caller)
332- if (if (if ((0 > bw))
326+ let bl = aB()
327+ let be = ak(bh.caller)
328+ let bu = bb(bh.caller)
329+ let bg = bu._1
330+ let bf = bu._2
331+ let bv = aC(bh.caller)
332+ let bw = bv._1
333+ let bx = bv._2
334+ let by = az(bh.caller)
335+ if (if (if ((0 > bx))
333336 then true
334- else (0 > bv))
337+ else (0 > bw))
335338 then true
336- else (0 > bx))
339+ else (0 > by))
337340 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
338341 else {
339- let by = (bd - max([bx, (bv + bw)]))
340- if ((bs > by))
342+ let bz = (be - max([by, (bw + bx)]))
343+ if ((bt > bz))
341344 then throw("withdrawAmount > availableToUnstake")
342345 else {
343- let bp = ((bk + be) - bs)
344- let bz = ((bd + be) - bs)
345- let bq = am(bg.caller)
346- let br = (bq + be)
347-[IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry((toString(bg.caller) + j), bz), IntegerEntry(l, bp), ScriptTransfer(bg.caller, bs, R), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be)]
346+ let bq = ((bl + bf) - bt)
347+ let bA = ((be + bf) - bt)
348+ let br = am(bh.caller)
349+ let bs = (br + bf)
350+[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bA), IntegerEntry(l, bq), ScriptTransfer(bh.caller, bt, R), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
348351 }
349352 }
350353 }
351354
352355
353356
354-@Callable(bg)
357+@Callable(bh)
355358 func claimAndWithdrawSWOP () = if (!(M))
356359 then throw("DApp is inactive at this moment")
357360 else {
358361 let aj = ai()
359- let bA = ba(bg.caller)
360- let bf = bA._1
361- let be = bA._2
362- let bq = am(bg.caller)
363- let br = (bq + be)
364- if ((be == 0))
362+ let bB = bb(bh.caller)
363+ let bg = bB._1
364+ let bf = bB._2
365+ let br = am(bh.caller)
366+ let bs = (br + bf)
367+ if ((bf == 0))
365368 then throw("You have 0 available SWOP")
366- else [IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be), ScriptTransfer(bg.caller, be, R)]
369+ else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf), ScriptTransfer(bh.caller, bf, R)]
367370 }
368371
369372
370373
371-@Callable(bg)
374+@Callable(bh)
372375 func claimAndStakeSWOP () = if (!(M))
373376 then throw("DApp is inactive at this moment")
374377 else {
375- let bk = aB()
376- let bd = ak(bg.caller)
378+ let bl = aB()
379+ let be = ak(bh.caller)
377380 let aj = ai()
378- let bB = ba(bg.caller)
379- let bf = bB._1
380- let be = bB._2
381- let bo = (bd + be)
382- let bp = (bk + be)
383- let bq = am(bg.caller)
384- let br = (bq + be)
385- if ((be == 0))
381+ let bC = bb(bh.caller)
382+ let bg = bC._1
383+ let bf = bC._2
384+ let bp = (be + bf)
385+ let bq = (bl + bf)
386+ let br = am(bh.caller)
387+ let bs = (br + bf)
388+ if ((bf == 0))
386389 then throw("You have 0 available SWOP")
387- else [IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry(l, bp), IntegerEntry((toString(bg.caller) + j), bo), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be)]
390+ else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
388391 }
389392
390393
391394
392-@Callable(bg)
393-func updateWeights (bC,bD,bE,bF,bG,bH) = if (!(M))
395+@Callable(bh)
396+func updateWeights (bD,bE,bF,bG,bH,bI) = if (!(M))
394397 then throw("DApp is inactive at this moment")
395398 else {
396- let bI = 10
397- let bJ = valueOrElse(getIntegerValue(this, A), 0)
398- if (!(containsElement([a, b, c, d, e], bg.callerPublicKey)))
399+ let bJ = 10
400+ let bK = valueOrElse(getInteger(this, A), 0)
401+ if (!(containsElement([a, b, c, d, e], bh.callerPublicKey)))
399402 then throw("Only admin can call this function")
400- else if (if ((size(bC) > bI))
403+ else if (if ((size(bD) > bJ))
401404 then true
402- else (size(bE) > bI))
403- then throw(("Max amount of pool is " + toString(bI)))
404- else if ((bJ >= bG))
405- then throw(((("rewardUpdateHeight <= totalRewardUpdateHeight; rewardUpdateHeight: " + toString(bG)) + "; totalRewardUpdateHeight: ") + toString(bJ)))
406- else if ((height >= bG))
405+ else (size(bF) > bJ))
406+ then throw(("Max amount of pool is " + toString(bJ)))
407+ else if ((bK >= bH))
408+ then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
409+ else if ((height >= bH))
407410 then throw("height >= rewardUpdateHeight")
408- else if ((0 >= bG))
411+ else if ((0 >= bH))
409412 then throw("0 >= rewardUpdateHeight ")
410413 else {
411- func bK (bL,bM) = (bL + bM)
414+ func bL (bM,bN) = (bM + bN)
412415
413- func bN (bO,au) = {
414- let bP = aN(au)
415- if ((bG != bP))
416- then if ((bP == bJ))
417- then {
418- let bQ = aO(au)
419-IntegerEntry((au + w), bQ) :: bO
420- }
416+ func bO (bP,au) = {
417+ let bQ = aN(au)
418+ if (!(aO(au)))
419+ then {
420+ let bR = aP(au)
421+IntegerEntry((au + w), bR) :: bP
422+ }
423+ else if ((bH != bQ))
424+ then if ((bQ == bK))
425+ then {
426+ let bR = aP(au)
427+IntegerEntry((au + w), bR) :: bP
428+ }
429+ else nil
421430 else nil
422- else nil
423431 }
424432
425- func bR (bO,au) = {
426- let bS = value(indexOf(bE, au))
427- let bQ = bF[bS]
428- if ((0 > bQ))
433+ func bS (bP,au) = {
434+ let bT = value(indexOf(bF, au))
435+ let bR = bG[bT]
436+ if ((0 > bR))
429437 then throw("PoolReward < 0")
430- else IntegerEntry((au + v), bQ) :: bO
438+ else IntegerEntry((au + v), bR) :: bP
431439 }
432440
433- func bT (bO,au) = {
434- let bU = bG
435-IntegerEntry((au + x), bU) :: bO
441+ func bU (bP,au) = {
442+ let bV = bH
443+IntegerEntry((au + x), bV) :: bP
436444 }
437445
438- func bV (bW,bX,bH) = if ((bH == 0))
439- then if (if ((bW > T))
446+ func bW (bX,bY,bI) = if ((bI == 0))
447+ then if (if ((bX > T))
440448 then true
441- else (bX > T))
442- then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare: " + toString(bH)) + " ") + toString(bW)) + " ") + toString(bX)))
443- else $Tuple3([IntegerEntry(K, bW)], [IntegerEntry(L, bX)], [IntegerEntry(B, bG)])
444- else if ((bH == 1))
449+ else (bY > T))
450+ then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bI)) + " ") + toString(bX)) + " ") + toString(bY)))
451+ else $Tuple3([IntegerEntry(K, bX)], [IntegerEntry(L, bY)], [IntegerEntry(B, bH)])
452+ else if ((bI == 1))
445453 then {
446- let bY = valueOrElse(getInteger(this, K), 0)
447- let bZ = valueOrElse(getInteger(this, L), 0)
448- let ca = valueOrElse(getInteger(this, B), 0)
449- if (if (((bW + bY) > T))
454+ let bZ = valueOrElse(getInteger(this, K), 0)
455+ let ca = valueOrElse(getInteger(this, L), 0)
456+ let cb = valueOrElse(getInteger(this, B), 0)
457+ if (if (((bX + bZ) > T))
450458 then true
451- else ((bX + bZ) > T))
452- then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare: " + toString(bH)) + " ") + toString((bW + bY))) + " ") + toString((bX + bZ))))
453- else if ((ca != bG))
454- then throw(((("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry; rewardUpdateHeight: " + toString(bG)) + " rewardUpdateHeightFirstPaginationEntry: ") + toString(ca)))
455- else $Tuple3([IntegerEntry(K, (bW + bY))], [IntegerEntry(L, (bX + bZ))], nil)
459+ else ((bY + ca) > T))
460+ then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bI)) + " ") + toString((bX + bZ))) + " ") + toString((bY + ca))))
461+ else if ((cb != bH))
462+ then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
463+ else $Tuple3([IntegerEntry(K, (bX + bZ))], [IntegerEntry(L, (bY + ca))], nil)
456464 }
457- else if ((bH == 2))
465+ else if ((bI == 2))
458466 then {
459- let cb = (valueOrElse(getInteger(this, K), 0) + bW)
460- let cc = (valueOrElse(getInteger(this, L), 0) + bX)
461- let ca = valueOrElse(getInteger(this, B), 0)
462- if (if ((cb != T))
467+ let cc = (valueOrElse(getInteger(this, K), 0) + bX)
468+ let cd = (valueOrElse(getInteger(this, L), 0) + bY)
469+ let cb = valueOrElse(getInteger(this, B), 0)
470+ if (if ((cc != T))
463471 then true
464- else (cc != T))
465- then throw(((("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare; sumRewardPrevious: " + toString(cb)) + "; sumRewardCurrent:") + toString(cc)))
466- else if ((ca != bG))
467- then throw(((("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry; rewardUpdateHeight: " + toString(bG)) + " rewardUpdateHeightFirstPaginationEntry: ") + toString(ca)))
468- else $Tuple3([IntegerEntry(K, cb)], [IntegerEntry(L, cc)], nil)
472+ else (cd != T))
473+ then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
474+ else if ((cb != bH))
475+ then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
476+ else $Tuple3([IntegerEntry(K, cc)], [IntegerEntry(L, cd)], nil)
469477 }
470- else throw(("Incorrect pagination: " + toString(bH)))
478+ else throw("Incorrect pagination")
471479
472- let cd = {
473- let ce = bD
474- let cf = size(ce)
475- let cg = 0
476- if ((cf == 0))
477- then cg
480+ let ce = {
481+ let cf = bE
482+ let cg = size(cf)
483+ let ch = 0
484+ if ((cg == 0))
485+ then ch
478486 else {
479- let ch = bK(cg, ce[0])
480- if ((cf == 1))
481- then ch
487+ let ci = bL(ch, cf[0])
488+ if ((cg == 1))
489+ then ci
482490 else {
483- let ci = bK(ch, ce[1])
484- if ((cf == 2))
485- then ci
491+ let cj = bL(ci, cf[1])
492+ if ((cg == 2))
493+ then cj
486494 else {
487- let cj = bK(ci, ce[2])
488- if ((cf == 3))
489- then cj
495+ let ck = bL(cj, cf[2])
496+ if ((cg == 3))
497+ then ck
490498 else {
491- let ck = bK(cj, ce[3])
492- if ((cf == 4))
493- then ck
499+ let cl = bL(ck, cf[3])
500+ if ((cg == 4))
501+ then cl
494502 else {
495- let cl = bK(ck, ce[4])
496- if ((cf == 5))
497- then cl
503+ let cm = bL(cl, cf[4])
504+ if ((cg == 5))
505+ then cm
498506 else {
499- let cm = bK(cl, ce[5])
500- if ((cf == 6))
501- then cm
507+ let cn = bL(cm, cf[5])
508+ if ((cg == 6))
509+ then cn
502510 else {
503- let cn = bK(cm, ce[6])
504- if ((cf == 7))
505- then cn
511+ let co = bL(cn, cf[6])
512+ if ((cg == 7))
513+ then co
506514 else {
507- let co = bK(cn, ce[7])
508- if ((cf == 8))
509- then co
515+ let cp = bL(co, cf[7])
516+ if ((cg == 8))
517+ then cp
510518 else {
511- let cp = bK(co, ce[8])
512- if ((cf == 9))
513- then cp
519+ let cq = bL(cp, cf[8])
520+ if ((cg == 9))
521+ then cq
514522 else {
515- let cq = bK(cp, ce[9])
516- if ((cf == 10))
517- then cq
523+ let cr = bL(cq, cf[9])
524+ if ((cg == 10))
525+ then cr
518526 else {
519- let cr = bK(cq, ce[10])
527+ let cs = bL(cr, cf[10])
520528 throw("List size exceed 10")
521529 }
522530 }
530538 }
531539 }
532540 }
533- let cs = {
534- let ct = bF
535- let cu = size(ct)
536- let cv = 0
537- if ((cu == 0))
538- then cv
541+ let ct = {
542+ let cu = bG
543+ let cv = size(cu)
544+ let cw = 0
545+ if ((cv == 0))
546+ then cw
539547 else {
540- let cw = bK(cv, ct[0])
541- if ((cu == 1))
542- then cw
548+ let cx = bL(cw, cu[0])
549+ if ((cv == 1))
550+ then cx
543551 else {
544- let cx = bK(cw, ct[1])
545- if ((cu == 2))
546- then cx
552+ let cy = bL(cx, cu[1])
553+ if ((cv == 2))
554+ then cy
547555 else {
548- let cy = bK(cx, ct[2])
549- if ((cu == 3))
550- then cy
556+ let cz = bL(cy, cu[2])
557+ if ((cv == 3))
558+ then cz
551559 else {
552- let cz = bK(cy, ct[3])
553- if ((cu == 4))
554- then cz
560+ let cA = bL(cz, cu[3])
561+ if ((cv == 4))
562+ then cA
555563 else {
556- let cA = bK(cz, ct[4])
557- if ((cu == 5))
558- then cA
564+ let cB = bL(cA, cu[4])
565+ if ((cv == 5))
566+ then cB
559567 else {
560- let cB = bK(cA, ct[5])
561- if ((cu == 6))
562- then cB
568+ let cC = bL(cB, cu[5])
569+ if ((cv == 6))
570+ then cC
563571 else {
564- let cC = bK(cB, ct[6])
565- if ((cu == 7))
566- then cC
572+ let cD = bL(cC, cu[6])
573+ if ((cv == 7))
574+ then cD
567575 else {
568- let cD = bK(cC, ct[7])
569- if ((cu == 8))
570- then cD
576+ let cE = bL(cD, cu[7])
577+ if ((cv == 8))
578+ then cE
571579 else {
572- let cE = bK(cD, ct[8])
573- if ((cu == 9))
574- then cE
580+ let cF = bL(cE, cu[8])
581+ if ((cv == 9))
582+ then cF
575583 else {
576- let cF = bK(cE, ct[9])
577- if ((cu == 10))
578- then cF
584+ let cG = bL(cF, cu[9])
585+ if ((cv == 10))
586+ then cG
579587 else {
580- let cG = bK(cF, ct[10])
588+ let cH = bL(cG, cu[10])
581589 throw("List size exceed 10")
582590 }
583591 }
591599 }
592600 }
593601 }
594- let cH = bV(cd, cs, bH)
595- let cI = cH._1
596- let cJ = cH._2
597- let ca = cH._3
598- let cK = if ((bH == 2))
599- then [IntegerEntry(A, bG)]
600- else [IntegerEntry(A, getIntegerValue(this, A))]
601- if ((height > bG))
602+ let cI = bW(ce, ct, bI)
603+ let cJ = cI._1
604+ let cK = cI._2
605+ let cb = cI._3
606+ let cL = if ((bI == 2))
607+ then [IntegerEntry(A, bH)]
608+ else nil
609+ if ((height > bH))
602610 then throw("rewardUpdateHeight < height")
603611 else {
604- let cL = {
605- let cM = bC
606- let cN = size(cM)
607- let cO = nil
608- if ((cN == 0))
609- then cO
612+ let cM = {
613+ let cN = bD
614+ let cO = size(cN)
615+ let cP = nil
616+ if ((cO == 0))
617+ then cP
610618 else {
611- let cP = bN(cO, cM[0])
612- if ((cN == 1))
613- then cP
619+ let cQ = bO(cP, cN[0])
620+ if ((cO == 1))
621+ then cQ
614622 else {
615- let cQ = bN(cP, cM[1])
616- if ((cN == 2))
617- then cQ
623+ let cR = bO(cQ, cN[1])
624+ if ((cO == 2))
625+ then cR
618626 else {
619- let cR = bN(cQ, cM[2])
620- if ((cN == 3))
621- then cR
627+ let cS = bO(cR, cN[2])
628+ if ((cO == 3))
629+ then cS
622630 else {
623- let cS = bN(cR, cM[3])
624- if ((cN == 4))
625- then cS
631+ let cT = bO(cS, cN[3])
632+ if ((cO == 4))
633+ then cT
626634 else {
627- let cT = bN(cS, cM[4])
628- if ((cN == 5))
629- then cT
635+ let cU = bO(cT, cN[4])
636+ if ((cO == 5))
637+ then cU
630638 else {
631- let cU = bN(cT, cM[5])
632- if ((cN == 6))
633- then cU
639+ let cV = bO(cU, cN[5])
640+ if ((cO == 6))
641+ then cV
634642 else {
635- let cV = bN(cU, cM[6])
636- if ((cN == 7))
637- then cV
643+ let cW = bO(cV, cN[6])
644+ if ((cO == 7))
645+ then cW
638646 else {
639- let cW = bN(cV, cM[7])
640- if ((cN == 8))
641- then cW
647+ let cX = bO(cW, cN[7])
648+ if ((cO == 8))
649+ then cX
642650 else {
643- let cX = bN(cW, cM[8])
644- if ((cN == 9))
645- then cX
651+ let cY = bO(cX, cN[8])
652+ if ((cO == 9))
653+ then cY
646654 else {
647- let cY = bN(cX, cM[9])
648- if ((cN == 10))
649- then cY
655+ let cZ = bO(cY, cN[9])
656+ if ((cO == 10))
657+ then cZ
650658 else {
651- let cZ = bN(cY, cM[10])
659+ let da = bO(cZ, cN[10])
652660 throw("List size exceed 10")
653661 }
654662 }
662670 }
663671 }
664672 }
665- let da = {
666- let db = bE
667- let dc = size(db)
668- let dd = nil
669- if ((dc == 0))
670- then dd
673+ let db = {
674+ let dc = bF
675+ let dd = size(dc)
676+ let de = nil
677+ if ((dd == 0))
678+ then de
671679 else {
672- let de = bR(dd, db[0])
673- if ((dc == 1))
674- then de
680+ let df = bS(de, dc[0])
681+ if ((dd == 1))
682+ then df
675683 else {
676- let df = bR(de, db[1])
677- if ((dc == 2))
678- then df
684+ let dg = bS(df, dc[1])
685+ if ((dd == 2))
686+ then dg
679687 else {
680- let dg = bR(df, db[2])
681- if ((dc == 3))
682- then dg
688+ let dh = bS(dg, dc[2])
689+ if ((dd == 3))
690+ then dh
683691 else {
684- let dh = bR(dg, db[3])
685- if ((dc == 4))
686- then dh
692+ let di = bS(dh, dc[3])
693+ if ((dd == 4))
694+ then di
687695 else {
688- let di = bR(dh, db[4])
689- if ((dc == 5))
690- then di
696+ let dj = bS(di, dc[4])
697+ if ((dd == 5))
698+ then dj
691699 else {
692- let dj = bR(di, db[5])
693- if ((dc == 6))
694- then dj
700+ let dk = bS(dj, dc[5])
701+ if ((dd == 6))
702+ then dk
695703 else {
696- let dk = bR(dj, db[6])
697- if ((dc == 7))
698- then dk
704+ let dl = bS(dk, dc[6])
705+ if ((dd == 7))
706+ then dl
699707 else {
700- let dl = bR(dk, db[7])
701- if ((dc == 8))
702- then dl
708+ let dm = bS(dl, dc[7])
709+ if ((dd == 8))
710+ then dm
703711 else {
704- let dm = bR(dl, db[8])
705- if ((dc == 9))
706- then dm
712+ let dn = bS(dm, dc[8])
713+ if ((dd == 9))
714+ then dn
707715 else {
708- let dn = bR(dm, db[9])
709- if ((dc == 10))
710- then dn
716+ let do = bS(dn, dc[9])
717+ if ((dd == 10))
718+ then do
711719 else {
712- let do = bR(dn, db[10])
720+ let dp = bS(do, dc[10])
713721 throw("List size exceed 10")
714722 }
715723 }
723731 }
724732 }
725733 }
726- let dp = {
727- let dq = bE
728- let dr = size(dq)
729- let ds = nil
730- if ((dr == 0))
731- then ds
734+ let dq = {
735+ let dr = bF
736+ let ds = size(dr)
737+ let dt = nil
738+ if ((ds == 0))
739+ then dt
732740 else {
733- let dt = bT(ds, dq[0])
734- if ((dr == 1))
735- then dt
741+ let du = bU(dt, dr[0])
742+ if ((ds == 1))
743+ then du
736744 else {
737- let du = bT(dt, dq[1])
738- if ((dr == 2))
739- then du
745+ let dv = bU(du, dr[1])
746+ if ((ds == 2))
747+ then dv
740748 else {
741- let dv = bT(du, dq[2])
742- if ((dr == 3))
743- then dv
749+ let dw = bU(dv, dr[2])
750+ if ((ds == 3))
751+ then dw
744752 else {
745- let dw = bT(dv, dq[3])
746- if ((dr == 4))
747- then dw
753+ let dx = bU(dw, dr[3])
754+ if ((ds == 4))
755+ then dx
748756 else {
749- let dx = bT(dw, dq[4])
750- if ((dr == 5))
751- then dx
757+ let dy = bU(dx, dr[4])
758+ if ((ds == 5))
759+ then dy
752760 else {
753- let dy = bT(dx, dq[5])
754- if ((dr == 6))
755- then dy
761+ let dz = bU(dy, dr[5])
762+ if ((ds == 6))
763+ then dz
756764 else {
757- let dz = bT(dy, dq[6])
758- if ((dr == 7))
759- then dz
765+ let dA = bU(dz, dr[6])
766+ if ((ds == 7))
767+ then dA
760768 else {
761- let dA = bT(dz, dq[7])
762- if ((dr == 8))
763- then dA
769+ let dB = bU(dA, dr[7])
770+ if ((ds == 8))
771+ then dB
764772 else {
765- let dB = bT(dA, dq[8])
766- if ((dr == 9))
767- then dB
773+ let dC = bU(dB, dr[8])
774+ if ((ds == 9))
775+ then dC
768776 else {
769- let dC = bT(dB, dq[9])
770- if ((dr == 10))
771- then dC
777+ let dD = bU(dC, dr[9])
778+ if ((ds == 10))
779+ then dD
772780 else {
773- let dD = bT(dC, dq[10])
781+ let dE = bU(dD, dr[10])
774782 throw("List size exceed 10")
775783 }
776784 }
784792 }
785793 }
786794 }
787- ((((((cL ++ da) ++ dp) ++ cI) ++ cJ) ++ cK) ++ ca)
795+ ((((((cM ++ db) ++ dq) ++ cJ) ++ cK) ++ cL) ++ cb)
788796 }
789797 }
790798 }
791799
792800
793801
794-@Callable(bg)
802+@Callable(bh)
795803 func shutdown () = if (!(M))
796804 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, g), "the cause wasn't specified")))
797- else if (!(containsElement([a, b, c, d], bg.callerPublicKey)))
805+ else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
798806 then throw("Only admin can call this function")
799807 else af("Paused by admin")
800808
801809
802810
803-@Callable(bg)
811+@Callable(bh)
804812 func activate () = if (M)
805813 then throw("DApp is already active")
806- else if (!(containsElement([a, b, c, d], bg.callerPublicKey)))
814+ else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
807815 then throw("Only admin can call this function")
808816 else [BooleanEntry(f, true), DeleteEntry(g)]
809817
810818
811-@Verifier(dE)
812-func dF () = sigVerify(dE.bodyBytes, dE.proofs[0], dE.senderPublicKey)
819+@Verifier(dF)
820+func dG () = {
821+ let dH = if (sigVerify(dF.bodyBytes, dF.proofs[0], a))
822+ then 1
823+ else 0
824+ let dI = if (sigVerify(dF.bodyBytes, dF.proofs[1], b))
825+ then 1
826+ else 0
827+ let dJ = if (sigVerify(dF.bodyBytes, dF.proofs[2], c))
828+ then 1
829+ else 0
830+ (((dH + dI) + dJ) >= 2)
831+ }
813832
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4+let a = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA'
55
6-let b = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
6+let b = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7'
77
8-let c = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
8+let c = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ'
99
10-let d = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
10+let d = base58'EtVkT6ed8GtbUiVVEqdmEqsp2J4qbb3rre2HFgxeVYdg'
1111
12-let e = base58'5CqqMkmtXXt35KRH9LdWA3ap6TffPvTT5SHQzYrVFbBw'
12+let e = base58'GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw'
1313
1414 let f = "active"
1515
1616 let g = "shutdown_cause"
1717
1818 let h = "last_interest"
1919
2020 let i = "_last_interest"
2121
2222 let j = "_SWOP_amount"
2323
2424 let k = "_getBackHeight"
2525
2626 let l = "total_SWOP_amount"
2727
2828 let m = "_user_total_SWOP_vote"
2929
3030 let n = "_SWOP_option_amount"
3131
3232 let o = "total_SWOP_option_amount"
3333
3434 let p = "_SWOP_claimed_amount"
3535
3636 let q = "_SWOP_last_claimed_amount"
3737
3838 let r = "vote_name"
3939
4040 let s = "_option_name"
4141
4242 let t = "_startHeight"
4343
4444 let u = "_vote_duration"
4545
4646 let v = "_current_pool_fraction_reward"
4747
4848 let w = "_previous_pool_fraction_reward"
4949
5050 let x = "_pool_reward_update_height"
5151
5252 let y = "total_reward_per_block_current"
5353
5454 let z = "total_reward_per_block_previous"
5555
5656 let A = "reward_update_height"
5757
5858 let B = "reward_update_height_first_pagination"
5959
6060 let C = "_vote_no"
6161
6262 let D = "_vote_yes"
6363
6464 let E = "max_amount_voting"
6565
6666 let F = "_status"
6767
6868 let G = "_finish_height"
6969
7070 let H = "voting_active_cell_1"
7171
7272 let I = "voting_active_cell_2"
7373
7474 let J = "voting_active_cell_3"
7575
7676 let K = "sum_reward_previous"
7777
7878 let L = "sum_reward_current"
7979
8080 let M = valueOrElse(getBoolean(this, f), true)
8181
82-let N = Address(base58'3MsxHxruYWoddB4HRiPBYAWtMXMtCF1V9XT')
82+let N = Address(base58'3P73HDkPqG15nLXevjCbmXtazHYTZbpPoPw')
8383
84-let O = Address(base58'3MrJgdL1GniipErHy44YF9idzLaUL2iX5DQ')
84+let O = Address(base58'3PQZWxShKGRgBN1qoJw6B4s9YWS9FneZTPg')
8585
86-let P = Address(base58'3Mzgi6deFV8CyF2nqbWSBkqba5JaD42EXyb')
86+let P = Address(base58'3PHgHf5C4WvHJucSHrjoVnMFsP1EhWffVLt')
8787
8888 let Q = "SWOP_id"
8989
9090 let R = fromBase58String(getStringValue(N, Q))
9191
9292 let S = 100000000
9393
9494 let T = 10000000000
9595
9696 let U = "start_height"
9797
9898 let V = "base_period"
9999
100100 let W = "period_length"
101101
102102 let X = "_user_total_struc"
103103
104104 let Y = valueOrErrorMessage(getInteger(O, V), "Empty kBasePeriod at voting contract")
105105
106106 let Z = valueOrErrorMessage(getInteger(O, U), "Empty kStartHeight at voting contract")
107107
108108 let aa = valueOrErrorMessage(getInteger(O, W), "Empty kPeriodLength at voting contract")
109109
110110 let ab = valueOrElse(getString(P, H), "")
111111
112112 let ac = valueOrElse(getString(P, I), "")
113113
114114 let ad = valueOrElse(getString(P, J), "")
115115
116116 let ae = (Y + ((height - Z) / aa))
117117
118118 func af (ag) = [BooleanEntry(f, false), StringEntry(g, ag)]
119119
120120
121121 func ah () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
122122
123123
124124 func ai () = {
125125 let aj = valueOrElse(getInteger(this, h), 0)
126126 aj
127127 }
128128
129129
130130 func ak (al) = valueOrElse(getInteger(this, (toString(al) + j)), 0)
131131
132132
133133 func am (al) = valueOrElse(getInteger(this, (toString(al) + p)), 0)
134134
135135
136136 func an (al) = valueOrElse(getInteger(O, (toString(al) + m)), 0)
137137
138138
139139 func ao (al,aj) = {
140140 let ap = ak(al)
141141 let aq = getInteger(this, (toString(al) + i))
142142 let ar = {
143143 let as = aq
144144 if ($isInstanceOf(as, "Int"))
145145 then {
146146 let aq = as
147147 aq
148148 }
149149 else aj
150150 }
151151 $Tuple2(ar, ap)
152152 }
153153
154154
155155 func at (au,al) = {
156156 let av = valueOrElse(getInteger(P, au), -1)
157157 let aw = valueOrElse(getInteger(P, (toString(av) + G)), 0)
158158 let ax = valueOrElse(getBoolean(P, (toString(av) + F)), true)
159159 let ay = height
160160 if ((0 > av))
161161 then 0
162162 else if (!(ax))
163163 then 0
164164 else if ((aw > ay))
165165 then (valueOrElse(getInteger(P, (((toString(al) + "_") + toString(av)) + D)), 0) + valueOrElse(getInteger(P, (((toString(al) + "_") + toString(av)) + C)), 0))
166166 else 0
167167 }
168168
169169
170170 func az (al) = {
171171 let aA = [at(ab, al), at(ac, al), at(ad, al)]
172172 max(aA)
173173 }
174174
175175
176176 func aB () = valueOrElse(getInteger(this, l), 0)
177177
178178
179179 func aC (al) = {
180180 let aD = if (isDefined(getString(O, (toString(al) + X))))
181181 then {
182182 let aE = split(valueOrErrorMessage(getString(O, (toString(al) + X)), "Empty kUserTotalStruc"), "_")
183183 $Tuple3(parseIntValue(aE[0]), parseIntValue(aE[1]), parseIntValue(aE[2]))
184184 }
185185 else {
186186 let aF = valueOrElse(getInteger(O, (toString(al) + m)), 0)
187187 $Tuple3(aF, 0, ae)
188188 }
189189 let aG = aD._1
190190 let aH = aD._2
191191 let aI = aD._3
192192 let aJ = if ((aI == ae))
193193 then aH
194194 else 0
195195 $Tuple2(aG, aJ)
196196 }
197197
198198
199199 func aK (al) = valueOrElse(getInteger(this, (toString(al) + n)), 0)
200200
201201
202202 func aL (aM) = valueOrElse(getInteger(this, (aM + t)), 0)
203203
204204
205205 func aN (au) = valueOrElse(getInteger(this, (au + x)), 0)
206206
207207
208-func aO (au) = valueOrElse(getIntegerValue(this, (au + v)), 0)
208+func aO (au) = isDefined(getInteger(this, (au + x)))
209209
210210
211-func aP (al,aM,aQ) = {
212- let aR = getInteger(this, (((aM + aQ) + toString(al)) + n))
213- let aS = {
214- let as = aR
211+func aP (au) = valueOrElse(getInteger(this, (au + v)), 0)
212+
213+
214+func aQ (al,aM,aR) = {
215+ let aS = getInteger(this, (((aM + aR) + toString(al)) + n))
216+ let aT = {
217+ let as = aS
215218 if ($isInstanceOf(as, "Int"))
216219 then {
217- let aS = as
218- aS
220+ let aT = as
221+ aT
219222 }
220223 else if ($isInstanceOf(as, "Unit"))
221224 then {
222- let aS = as
225+ let aT = as
223226 0
224227 }
225228 else throw("Match error")
226229 }
227- valueOrErrorMessage(aS, (((("No data on the key: " + aM) + aQ) + toString(al)) + n))
230+ valueOrErrorMessage(aT, (((("No data on the key: " + aM) + aR) + toString(al)) + n))
228231 }
229232
230233
231-func aT (aM) = valueOrErrorMessage(getInteger(this, (aM + u)), (("No data on the key: " + aM) + u))
234+func aU (aM) = valueOrErrorMessage(getInteger(this, (aM + u)), (("No data on the key: " + aM) + u))
232235
233236
234-func aU (aM,aQ) = {
235- let aV = getInteger(this, ((aM + aQ) + o))
236- let aW = {
237- let as = aV
237+func aV (aM,aR) = {
238+ let aW = getInteger(this, ((aM + aR) + o))
239+ let aX = {
240+ let as = aW
238241 if ($isInstanceOf(as, "Int"))
239242 then {
240- let aW = as
241- aW
243+ let aX = as
244+ aX
242245 }
243246 else if ($isInstanceOf(as, "Unit"))
244247 then {
245- let aW = as
248+ let aX = as
246249 0
247250 }
248251 else throw("Match error")
249252 }
250- aW
253+ aX
251254 }
252255
253256
254-func aX (aM,aQ,al,aY) = {
255- let aZ = ((((((aM + "_") + aQ) + "_") + toString(al)) + "_") + toString(aY))
256- valueOrErrorMessage(getInteger(this, aZ), ("No data on the key: " + aZ))
257+func aY (aM,aR,al,aZ) = {
258+ let ba = ((((((aM + "_") + aR) + "_") + toString(al)) + "_") + toString(aZ))
259+ valueOrErrorMessage(getInteger(this, ba), ("No data on the key: " + ba))
257260 }
258261
259262
260-func ba (bb) = {
263+func bb (bc) = {
261264 let aj = ai()
262- let bc = ao(bb, aj)
263- let aq = bc._1
264- let bd = bc._2
265- let be = fraction(bd, (aj - aq), S)
266- let bf = aj
267- $Tuple2(bf, be)
265+ let bd = ao(bc, aj)
266+ let aq = bd._1
267+ let be = bd._2
268+ let bf = fraction(be, (aj - aq), S)
269+ let bg = aj
270+ $Tuple2(bg, bf)
268271 }
269272
270273
271-@Callable(bg)
274+@Callable(bh)
272275 func airDrop () = if (!(M))
273276 then throw("DApp is inactive at this moment")
274277 else {
275- let bh = $Tuple2(bg.payments[0].amount, bg.payments[0].assetId)
276- let bi = bh._1
277- let bj = bh._2
278- if ((bj != R))
278+ let bi = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
279+ let bj = bi._1
280+ let bk = bi._2
281+ if ((bk != R))
279282 then throw("Incorrect pmtAssetId")
280283 else {
281- let bk = aB()
284+ let bl = aB()
282285 let aj = ai()
283- let bl = (aj + fraction(bi, S, bk))
284-[IntegerEntry(h, bl)]
286+ let bm = (aj + fraction(bj, S, bl))
287+[IntegerEntry(h, bm)]
285288 }
286289 }
287290
288291
289292
290-@Callable(bg)
293+@Callable(bh)
291294 func lockSWOP () = if (!(M))
292295 then throw("DApp is inactive at this moment")
293296 else {
294- let bm = $Tuple2(bg.payments[0].amount, bg.payments[0].assetId)
295- let bi = bm._1
296- let bj = bm._2
297- if ((bj != R))
297+ let bn = $Tuple2(bh.payments[0].amount, bh.payments[0].assetId)
298+ let bj = bn._1
299+ let bk = bn._2
300+ if ((bk != R))
298301 then throw("Incorrect pmtAssetId")
299302 else {
300303 let aj = ai()
301- let bn = ao(bg.caller, aj)
302- let aq = bn._1
303- let bd = bn._2
304- let be = fraction(bd, (aj - aq), S)
305- let bo = ((bd + bi) + be)
306- let bf = aj
307- let bk = aB()
308- let bp = ((bk + bi) + be)
309- let bq = am(bg.caller)
310- let br = (bq + be)
311-[IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry((toString(bg.caller) + j), bo), IntegerEntry(l, bp), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be)]
304+ let bo = ao(bh.caller, aj)
305+ let aq = bo._1
306+ let be = bo._2
307+ let bf = fraction(be, (aj - aq), S)
308+ let bp = ((be + bj) + bf)
309+ let bg = aj
310+ let bl = aB()
311+ let bq = ((bl + bj) + bf)
312+ let br = am(bh.caller)
313+ let bs = (br + bf)
314+[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
312315 }
313316 }
314317
315318
316319
317-@Callable(bg)
318-func withdrawSWOP (bs) = if (!(M))
320+@Callable(bh)
321+func withdrawSWOP (bt) = if (!(M))
319322 then throw("DApp is inactive at this moment")
320- else if ((0 >= bs))
323+ else if ((0 >= bt))
321324 then throw("withdrawAmount <= 0")
322325 else {
323- let bk = aB()
324- let bd = ak(bg.caller)
325- let bt = ba(bg.caller)
326- let bf = bt._1
327- let be = bt._2
328- let bu = aC(bg.caller)
329- let bv = bu._1
330- let bw = bu._2
331- let bx = az(bg.caller)
332- if (if (if ((0 > bw))
326+ let bl = aB()
327+ let be = ak(bh.caller)
328+ let bu = bb(bh.caller)
329+ let bg = bu._1
330+ let bf = bu._2
331+ let bv = aC(bh.caller)
332+ let bw = bv._1
333+ let bx = bv._2
334+ let by = az(bh.caller)
335+ if (if (if ((0 > bx))
333336 then true
334- else (0 > bv))
337+ else (0 > bw))
335338 then true
336- else (0 > bx))
339+ else (0 > by))
337340 then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
338341 else {
339- let by = (bd - max([bx, (bv + bw)]))
340- if ((bs > by))
342+ let bz = (be - max([by, (bw + bx)]))
343+ if ((bt > bz))
341344 then throw("withdrawAmount > availableToUnstake")
342345 else {
343- let bp = ((bk + be) - bs)
344- let bz = ((bd + be) - bs)
345- let bq = am(bg.caller)
346- let br = (bq + be)
347-[IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry((toString(bg.caller) + j), bz), IntegerEntry(l, bp), ScriptTransfer(bg.caller, bs, R), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be)]
346+ let bq = ((bl + bf) - bt)
347+ let bA = ((be + bf) - bt)
348+ let br = am(bh.caller)
349+ let bs = (br + bf)
350+[IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + j), bA), IntegerEntry(l, bq), ScriptTransfer(bh.caller, bt, R), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
348351 }
349352 }
350353 }
351354
352355
353356
354-@Callable(bg)
357+@Callable(bh)
355358 func claimAndWithdrawSWOP () = if (!(M))
356359 then throw("DApp is inactive at this moment")
357360 else {
358361 let aj = ai()
359- let bA = ba(bg.caller)
360- let bf = bA._1
361- let be = bA._2
362- let bq = am(bg.caller)
363- let br = (bq + be)
364- if ((be == 0))
362+ let bB = bb(bh.caller)
363+ let bg = bB._1
364+ let bf = bB._2
365+ let br = am(bh.caller)
366+ let bs = (br + bf)
367+ if ((bf == 0))
365368 then throw("You have 0 available SWOP")
366- else [IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be), ScriptTransfer(bg.caller, be, R)]
369+ else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf), ScriptTransfer(bh.caller, bf, R)]
367370 }
368371
369372
370373
371-@Callable(bg)
374+@Callable(bh)
372375 func claimAndStakeSWOP () = if (!(M))
373376 then throw("DApp is inactive at this moment")
374377 else {
375- let bk = aB()
376- let bd = ak(bg.caller)
378+ let bl = aB()
379+ let be = ak(bh.caller)
377380 let aj = ai()
378- let bB = ba(bg.caller)
379- let bf = bB._1
380- let be = bB._2
381- let bo = (bd + be)
382- let bp = (bk + be)
383- let bq = am(bg.caller)
384- let br = (bq + be)
385- if ((be == 0))
381+ let bC = bb(bh.caller)
382+ let bg = bC._1
383+ let bf = bC._2
384+ let bp = (be + bf)
385+ let bq = (bl + bf)
386+ let br = am(bh.caller)
387+ let bs = (br + bf)
388+ if ((bf == 0))
386389 then throw("You have 0 available SWOP")
387- else [IntegerEntry((toString(bg.caller) + i), bf), IntegerEntry(l, bp), IntegerEntry((toString(bg.caller) + j), bo), IntegerEntry((toString(bg.caller) + p), br), IntegerEntry((toString(bg.caller) + q), be)]
390+ else [IntegerEntry((toString(bh.caller) + i), bg), IntegerEntry(l, bq), IntegerEntry((toString(bh.caller) + j), bp), IntegerEntry((toString(bh.caller) + p), bs), IntegerEntry((toString(bh.caller) + q), bf)]
388391 }
389392
390393
391394
392-@Callable(bg)
393-func updateWeights (bC,bD,bE,bF,bG,bH) = if (!(M))
395+@Callable(bh)
396+func updateWeights (bD,bE,bF,bG,bH,bI) = if (!(M))
394397 then throw("DApp is inactive at this moment")
395398 else {
396- let bI = 10
397- let bJ = valueOrElse(getIntegerValue(this, A), 0)
398- if (!(containsElement([a, b, c, d, e], bg.callerPublicKey)))
399+ let bJ = 10
400+ let bK = valueOrElse(getInteger(this, A), 0)
401+ if (!(containsElement([a, b, c, d, e], bh.callerPublicKey)))
399402 then throw("Only admin can call this function")
400- else if (if ((size(bC) > bI))
403+ else if (if ((size(bD) > bJ))
401404 then true
402- else (size(bE) > bI))
403- then throw(("Max amount of pool is " + toString(bI)))
404- else if ((bJ >= bG))
405- then throw(((("rewardUpdateHeight <= totalRewardUpdateHeight; rewardUpdateHeight: " + toString(bG)) + "; totalRewardUpdateHeight: ") + toString(bJ)))
406- else if ((height >= bG))
405+ else (size(bF) > bJ))
406+ then throw(("Max amount of pool is " + toString(bJ)))
407+ else if ((bK >= bH))
408+ then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
409+ else if ((height >= bH))
407410 then throw("height >= rewardUpdateHeight")
408- else if ((0 >= bG))
411+ else if ((0 >= bH))
409412 then throw("0 >= rewardUpdateHeight ")
410413 else {
411- func bK (bL,bM) = (bL + bM)
414+ func bL (bM,bN) = (bM + bN)
412415
413- func bN (bO,au) = {
414- let bP = aN(au)
415- if ((bG != bP))
416- then if ((bP == bJ))
417- then {
418- let bQ = aO(au)
419-IntegerEntry((au + w), bQ) :: bO
420- }
416+ func bO (bP,au) = {
417+ let bQ = aN(au)
418+ if (!(aO(au)))
419+ then {
420+ let bR = aP(au)
421+IntegerEntry((au + w), bR) :: bP
422+ }
423+ else if ((bH != bQ))
424+ then if ((bQ == bK))
425+ then {
426+ let bR = aP(au)
427+IntegerEntry((au + w), bR) :: bP
428+ }
429+ else nil
421430 else nil
422- else nil
423431 }
424432
425- func bR (bO,au) = {
426- let bS = value(indexOf(bE, au))
427- let bQ = bF[bS]
428- if ((0 > bQ))
433+ func bS (bP,au) = {
434+ let bT = value(indexOf(bF, au))
435+ let bR = bG[bT]
436+ if ((0 > bR))
429437 then throw("PoolReward < 0")
430- else IntegerEntry((au + v), bQ) :: bO
438+ else IntegerEntry((au + v), bR) :: bP
431439 }
432440
433- func bT (bO,au) = {
434- let bU = bG
435-IntegerEntry((au + x), bU) :: bO
441+ func bU (bP,au) = {
442+ let bV = bH
443+IntegerEntry((au + x), bV) :: bP
436444 }
437445
438- func bV (bW,bX,bH) = if ((bH == 0))
439- then if (if ((bW > T))
446+ func bW (bX,bY,bI) = if ((bI == 0))
447+ then if (if ((bX > T))
440448 then true
441- else (bX > T))
442- then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare: " + toString(bH)) + " ") + toString(bW)) + " ") + toString(bX)))
443- else $Tuple3([IntegerEntry(K, bW)], [IntegerEntry(L, bX)], [IntegerEntry(B, bG)])
444- else if ((bH == 1))
449+ else (bY > T))
450+ then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bI)) + " ") + toString(bX)) + " ") + toString(bY)))
451+ else $Tuple3([IntegerEntry(K, bX)], [IntegerEntry(L, bY)], [IntegerEntry(B, bH)])
452+ else if ((bI == 1))
445453 then {
446- let bY = valueOrElse(getInteger(this, K), 0)
447- let bZ = valueOrElse(getInteger(this, L), 0)
448- let ca = valueOrElse(getInteger(this, B), 0)
449- if (if (((bW + bY) > T))
454+ let bZ = valueOrElse(getInteger(this, K), 0)
455+ let ca = valueOrElse(getInteger(this, L), 0)
456+ let cb = valueOrElse(getInteger(this, B), 0)
457+ if (if (((bX + bZ) > T))
450458 then true
451- else ((bX + bZ) > T))
452- then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare: " + toString(bH)) + " ") + toString((bW + bY))) + " ") + toString((bX + bZ))))
453- else if ((ca != bG))
454- then throw(((("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry; rewardUpdateHeight: " + toString(bG)) + " rewardUpdateHeightFirstPaginationEntry: ") + toString(ca)))
455- else $Tuple3([IntegerEntry(K, (bW + bY))], [IntegerEntry(L, (bX + bZ))], nil)
459+ else ((bY + ca) > T))
460+ then throw(((((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(bI)) + " ") + toString((bX + bZ))) + " ") + toString((bY + ca))))
461+ else if ((cb != bH))
462+ then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
463+ else $Tuple3([IntegerEntry(K, (bX + bZ))], [IntegerEntry(L, (bY + ca))], nil)
456464 }
457- else if ((bH == 2))
465+ else if ((bI == 2))
458466 then {
459- let cb = (valueOrElse(getInteger(this, K), 0) + bW)
460- let cc = (valueOrElse(getInteger(this, L), 0) + bX)
461- let ca = valueOrElse(getInteger(this, B), 0)
462- if (if ((cb != T))
467+ let cc = (valueOrElse(getInteger(this, K), 0) + bX)
468+ let cd = (valueOrElse(getInteger(this, L), 0) + bY)
469+ let cb = valueOrElse(getInteger(this, B), 0)
470+ if (if ((cc != T))
463471 then true
464- else (cc != T))
465- then throw(((("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare; sumRewardPrevious: " + toString(cb)) + "; sumRewardCurrent:") + toString(cc)))
466- else if ((ca != bG))
467- then throw(((("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry; rewardUpdateHeight: " + toString(bG)) + " rewardUpdateHeightFirstPaginationEntry: ") + toString(ca)))
468- else $Tuple3([IntegerEntry(K, cb)], [IntegerEntry(L, cc)], nil)
472+ else (cd != T))
473+ then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
474+ else if ((cb != bH))
475+ then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
476+ else $Tuple3([IntegerEntry(K, cc)], [IntegerEntry(L, cd)], nil)
469477 }
470- else throw(("Incorrect pagination: " + toString(bH)))
478+ else throw("Incorrect pagination")
471479
472- let cd = {
473- let ce = bD
474- let cf = size(ce)
475- let cg = 0
476- if ((cf == 0))
477- then cg
480+ let ce = {
481+ let cf = bE
482+ let cg = size(cf)
483+ let ch = 0
484+ if ((cg == 0))
485+ then ch
478486 else {
479- let ch = bK(cg, ce[0])
480- if ((cf == 1))
481- then ch
487+ let ci = bL(ch, cf[0])
488+ if ((cg == 1))
489+ then ci
482490 else {
483- let ci = bK(ch, ce[1])
484- if ((cf == 2))
485- then ci
491+ let cj = bL(ci, cf[1])
492+ if ((cg == 2))
493+ then cj
486494 else {
487- let cj = bK(ci, ce[2])
488- if ((cf == 3))
489- then cj
495+ let ck = bL(cj, cf[2])
496+ if ((cg == 3))
497+ then ck
490498 else {
491- let ck = bK(cj, ce[3])
492- if ((cf == 4))
493- then ck
499+ let cl = bL(ck, cf[3])
500+ if ((cg == 4))
501+ then cl
494502 else {
495- let cl = bK(ck, ce[4])
496- if ((cf == 5))
497- then cl
503+ let cm = bL(cl, cf[4])
504+ if ((cg == 5))
505+ then cm
498506 else {
499- let cm = bK(cl, ce[5])
500- if ((cf == 6))
501- then cm
507+ let cn = bL(cm, cf[5])
508+ if ((cg == 6))
509+ then cn
502510 else {
503- let cn = bK(cm, ce[6])
504- if ((cf == 7))
505- then cn
511+ let co = bL(cn, cf[6])
512+ if ((cg == 7))
513+ then co
506514 else {
507- let co = bK(cn, ce[7])
508- if ((cf == 8))
509- then co
515+ let cp = bL(co, cf[7])
516+ if ((cg == 8))
517+ then cp
510518 else {
511- let cp = bK(co, ce[8])
512- if ((cf == 9))
513- then cp
519+ let cq = bL(cp, cf[8])
520+ if ((cg == 9))
521+ then cq
514522 else {
515- let cq = bK(cp, ce[9])
516- if ((cf == 10))
517- then cq
523+ let cr = bL(cq, cf[9])
524+ if ((cg == 10))
525+ then cr
518526 else {
519- let cr = bK(cq, ce[10])
527+ let cs = bL(cr, cf[10])
520528 throw("List size exceed 10")
521529 }
522530 }
523531 }
524532 }
525533 }
526534 }
527535 }
528536 }
529537 }
530538 }
531539 }
532540 }
533- let cs = {
534- let ct = bF
535- let cu = size(ct)
536- let cv = 0
537- if ((cu == 0))
538- then cv
541+ let ct = {
542+ let cu = bG
543+ let cv = size(cu)
544+ let cw = 0
545+ if ((cv == 0))
546+ then cw
539547 else {
540- let cw = bK(cv, ct[0])
541- if ((cu == 1))
542- then cw
548+ let cx = bL(cw, cu[0])
549+ if ((cv == 1))
550+ then cx
543551 else {
544- let cx = bK(cw, ct[1])
545- if ((cu == 2))
546- then cx
552+ let cy = bL(cx, cu[1])
553+ if ((cv == 2))
554+ then cy
547555 else {
548- let cy = bK(cx, ct[2])
549- if ((cu == 3))
550- then cy
556+ let cz = bL(cy, cu[2])
557+ if ((cv == 3))
558+ then cz
551559 else {
552- let cz = bK(cy, ct[3])
553- if ((cu == 4))
554- then cz
560+ let cA = bL(cz, cu[3])
561+ if ((cv == 4))
562+ then cA
555563 else {
556- let cA = bK(cz, ct[4])
557- if ((cu == 5))
558- then cA
564+ let cB = bL(cA, cu[4])
565+ if ((cv == 5))
566+ then cB
559567 else {
560- let cB = bK(cA, ct[5])
561- if ((cu == 6))
562- then cB
568+ let cC = bL(cB, cu[5])
569+ if ((cv == 6))
570+ then cC
563571 else {
564- let cC = bK(cB, ct[6])
565- if ((cu == 7))
566- then cC
572+ let cD = bL(cC, cu[6])
573+ if ((cv == 7))
574+ then cD
567575 else {
568- let cD = bK(cC, ct[7])
569- if ((cu == 8))
570- then cD
576+ let cE = bL(cD, cu[7])
577+ if ((cv == 8))
578+ then cE
571579 else {
572- let cE = bK(cD, ct[8])
573- if ((cu == 9))
574- then cE
580+ let cF = bL(cE, cu[8])
581+ if ((cv == 9))
582+ then cF
575583 else {
576- let cF = bK(cE, ct[9])
577- if ((cu == 10))
578- then cF
584+ let cG = bL(cF, cu[9])
585+ if ((cv == 10))
586+ then cG
579587 else {
580- let cG = bK(cF, ct[10])
588+ let cH = bL(cG, cu[10])
581589 throw("List size exceed 10")
582590 }
583591 }
584592 }
585593 }
586594 }
587595 }
588596 }
589597 }
590598 }
591599 }
592600 }
593601 }
594- let cH = bV(cd, cs, bH)
595- let cI = cH._1
596- let cJ = cH._2
597- let ca = cH._3
598- let cK = if ((bH == 2))
599- then [IntegerEntry(A, bG)]
600- else [IntegerEntry(A, getIntegerValue(this, A))]
601- if ((height > bG))
602+ let cI = bW(ce, ct, bI)
603+ let cJ = cI._1
604+ let cK = cI._2
605+ let cb = cI._3
606+ let cL = if ((bI == 2))
607+ then [IntegerEntry(A, bH)]
608+ else nil
609+ if ((height > bH))
602610 then throw("rewardUpdateHeight < height")
603611 else {
604- let cL = {
605- let cM = bC
606- let cN = size(cM)
607- let cO = nil
608- if ((cN == 0))
609- then cO
612+ let cM = {
613+ let cN = bD
614+ let cO = size(cN)
615+ let cP = nil
616+ if ((cO == 0))
617+ then cP
610618 else {
611- let cP = bN(cO, cM[0])
612- if ((cN == 1))
613- then cP
619+ let cQ = bO(cP, cN[0])
620+ if ((cO == 1))
621+ then cQ
614622 else {
615- let cQ = bN(cP, cM[1])
616- if ((cN == 2))
617- then cQ
623+ let cR = bO(cQ, cN[1])
624+ if ((cO == 2))
625+ then cR
618626 else {
619- let cR = bN(cQ, cM[2])
620- if ((cN == 3))
621- then cR
627+ let cS = bO(cR, cN[2])
628+ if ((cO == 3))
629+ then cS
622630 else {
623- let cS = bN(cR, cM[3])
624- if ((cN == 4))
625- then cS
631+ let cT = bO(cS, cN[3])
632+ if ((cO == 4))
633+ then cT
626634 else {
627- let cT = bN(cS, cM[4])
628- if ((cN == 5))
629- then cT
635+ let cU = bO(cT, cN[4])
636+ if ((cO == 5))
637+ then cU
630638 else {
631- let cU = bN(cT, cM[5])
632- if ((cN == 6))
633- then cU
639+ let cV = bO(cU, cN[5])
640+ if ((cO == 6))
641+ then cV
634642 else {
635- let cV = bN(cU, cM[6])
636- if ((cN == 7))
637- then cV
643+ let cW = bO(cV, cN[6])
644+ if ((cO == 7))
645+ then cW
638646 else {
639- let cW = bN(cV, cM[7])
640- if ((cN == 8))
641- then cW
647+ let cX = bO(cW, cN[7])
648+ if ((cO == 8))
649+ then cX
642650 else {
643- let cX = bN(cW, cM[8])
644- if ((cN == 9))
645- then cX
651+ let cY = bO(cX, cN[8])
652+ if ((cO == 9))
653+ then cY
646654 else {
647- let cY = bN(cX, cM[9])
648- if ((cN == 10))
649- then cY
655+ let cZ = bO(cY, cN[9])
656+ if ((cO == 10))
657+ then cZ
650658 else {
651- let cZ = bN(cY, cM[10])
659+ let da = bO(cZ, cN[10])
652660 throw("List size exceed 10")
653661 }
654662 }
655663 }
656664 }
657665 }
658666 }
659667 }
660668 }
661669 }
662670 }
663671 }
664672 }
665- let da = {
666- let db = bE
667- let dc = size(db)
668- let dd = nil
669- if ((dc == 0))
670- then dd
673+ let db = {
674+ let dc = bF
675+ let dd = size(dc)
676+ let de = nil
677+ if ((dd == 0))
678+ then de
671679 else {
672- let de = bR(dd, db[0])
673- if ((dc == 1))
674- then de
680+ let df = bS(de, dc[0])
681+ if ((dd == 1))
682+ then df
675683 else {
676- let df = bR(de, db[1])
677- if ((dc == 2))
678- then df
684+ let dg = bS(df, dc[1])
685+ if ((dd == 2))
686+ then dg
679687 else {
680- let dg = bR(df, db[2])
681- if ((dc == 3))
682- then dg
688+ let dh = bS(dg, dc[2])
689+ if ((dd == 3))
690+ then dh
683691 else {
684- let dh = bR(dg, db[3])
685- if ((dc == 4))
686- then dh
692+ let di = bS(dh, dc[3])
693+ if ((dd == 4))
694+ then di
687695 else {
688- let di = bR(dh, db[4])
689- if ((dc == 5))
690- then di
696+ let dj = bS(di, dc[4])
697+ if ((dd == 5))
698+ then dj
691699 else {
692- let dj = bR(di, db[5])
693- if ((dc == 6))
694- then dj
700+ let dk = bS(dj, dc[5])
701+ if ((dd == 6))
702+ then dk
695703 else {
696- let dk = bR(dj, db[6])
697- if ((dc == 7))
698- then dk
704+ let dl = bS(dk, dc[6])
705+ if ((dd == 7))
706+ then dl
699707 else {
700- let dl = bR(dk, db[7])
701- if ((dc == 8))
702- then dl
708+ let dm = bS(dl, dc[7])
709+ if ((dd == 8))
710+ then dm
703711 else {
704- let dm = bR(dl, db[8])
705- if ((dc == 9))
706- then dm
712+ let dn = bS(dm, dc[8])
713+ if ((dd == 9))
714+ then dn
707715 else {
708- let dn = bR(dm, db[9])
709- if ((dc == 10))
710- then dn
716+ let do = bS(dn, dc[9])
717+ if ((dd == 10))
718+ then do
711719 else {
712- let do = bR(dn, db[10])
720+ let dp = bS(do, dc[10])
713721 throw("List size exceed 10")
714722 }
715723 }
716724 }
717725 }
718726 }
719727 }
720728 }
721729 }
722730 }
723731 }
724732 }
725733 }
726- let dp = {
727- let dq = bE
728- let dr = size(dq)
729- let ds = nil
730- if ((dr == 0))
731- then ds
734+ let dq = {
735+ let dr = bF
736+ let ds = size(dr)
737+ let dt = nil
738+ if ((ds == 0))
739+ then dt
732740 else {
733- let dt = bT(ds, dq[0])
734- if ((dr == 1))
735- then dt
741+ let du = bU(dt, dr[0])
742+ if ((ds == 1))
743+ then du
736744 else {
737- let du = bT(dt, dq[1])
738- if ((dr == 2))
739- then du
745+ let dv = bU(du, dr[1])
746+ if ((ds == 2))
747+ then dv
740748 else {
741- let dv = bT(du, dq[2])
742- if ((dr == 3))
743- then dv
749+ let dw = bU(dv, dr[2])
750+ if ((ds == 3))
751+ then dw
744752 else {
745- let dw = bT(dv, dq[3])
746- if ((dr == 4))
747- then dw
753+ let dx = bU(dw, dr[3])
754+ if ((ds == 4))
755+ then dx
748756 else {
749- let dx = bT(dw, dq[4])
750- if ((dr == 5))
751- then dx
757+ let dy = bU(dx, dr[4])
758+ if ((ds == 5))
759+ then dy
752760 else {
753- let dy = bT(dx, dq[5])
754- if ((dr == 6))
755- then dy
761+ let dz = bU(dy, dr[5])
762+ if ((ds == 6))
763+ then dz
756764 else {
757- let dz = bT(dy, dq[6])
758- if ((dr == 7))
759- then dz
765+ let dA = bU(dz, dr[6])
766+ if ((ds == 7))
767+ then dA
760768 else {
761- let dA = bT(dz, dq[7])
762- if ((dr == 8))
763- then dA
769+ let dB = bU(dA, dr[7])
770+ if ((ds == 8))
771+ then dB
764772 else {
765- let dB = bT(dA, dq[8])
766- if ((dr == 9))
767- then dB
773+ let dC = bU(dB, dr[8])
774+ if ((ds == 9))
775+ then dC
768776 else {
769- let dC = bT(dB, dq[9])
770- if ((dr == 10))
771- then dC
777+ let dD = bU(dC, dr[9])
778+ if ((ds == 10))
779+ then dD
772780 else {
773- let dD = bT(dC, dq[10])
781+ let dE = bU(dD, dr[10])
774782 throw("List size exceed 10")
775783 }
776784 }
777785 }
778786 }
779787 }
780788 }
781789 }
782790 }
783791 }
784792 }
785793 }
786794 }
787- ((((((cL ++ da) ++ dp) ++ cI) ++ cJ) ++ cK) ++ ca)
795+ ((((((cM ++ db) ++ dq) ++ cJ) ++ cK) ++ cL) ++ cb)
788796 }
789797 }
790798 }
791799
792800
793801
794-@Callable(bg)
802+@Callable(bh)
795803 func shutdown () = if (!(M))
796804 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, g), "the cause wasn't specified")))
797- else if (!(containsElement([a, b, c, d], bg.callerPublicKey)))
805+ else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
798806 then throw("Only admin can call this function")
799807 else af("Paused by admin")
800808
801809
802810
803-@Callable(bg)
811+@Callable(bh)
804812 func activate () = if (M)
805813 then throw("DApp is already active")
806- else if (!(containsElement([a, b, c, d], bg.callerPublicKey)))
814+ else if (!(containsElement([a, b, c, d], bh.callerPublicKey)))
807815 then throw("Only admin can call this function")
808816 else [BooleanEntry(f, true), DeleteEntry(g)]
809817
810818
811-@Verifier(dE)
812-func dF () = sigVerify(dE.bodyBytes, dE.proofs[0], dE.senderPublicKey)
819+@Verifier(dF)
820+func dG () = {
821+ let dH = if (sigVerify(dF.bodyBytes, dF.proofs[0], a))
822+ then 1
823+ else 0
824+ let dI = if (sigVerify(dF.bodyBytes, dF.proofs[1], b))
825+ then 1
826+ else 0
827+ let dJ = if (sigVerify(dF.bodyBytes, dF.proofs[2], c))
828+ then 1
829+ else 0
830+ (((dH + dI) + dJ) >= 2)
831+ }
813832

github/deemru/w8io/169f3d6 
850.83 ms