tx · EuXdBSC64ERnDjXwNWTLZ8E4i7NvL3ZhBhtv2he8MwkJ

3MsqKJ6o1ABE37676cHHBxJRs6huYTt72ch:  -0.02300000 Waves

2024.04.03 17:55 [3046754] smart account 3MsqKJ6o1ABE37676cHHBxJRs6huYTt72ch > SELF 0.00000000 Waves

{ "type": 13, "id": "EuXdBSC64ERnDjXwNWTLZ8E4i7NvL3ZhBhtv2he8MwkJ", "fee": 2300000, "feeAssetId": null, "timestamp": 1712159695000, "version": 1, "sender": "3MsqKJ6o1ABE37676cHHBxJRs6huYTt72ch", "senderPublicKey": "3xjN6fjYDXBGUE1mcRw2Fvr4R6tEZnuJA98QFGF99sXd", "proofs": [ "3fDFa24maL6s818qSCgMujs9AWEvFvkZurscVpnUMtnnNWAegCsrtpMtaPbd3apBRvX7sXcU9GW6eDeqMrwVkiu6" ], "script": "base64:CAIlCAISBAoCAgISBQoDAgIBEgUKAwICARIGCgQBAgIBEgMKAQISADIAB0lOVF9NQVgA//////////9/AAVXQVZFUwCAwtcvAAtNSU5fQkFMQU5DRQkAaAIAoJwBBQVXQVZFUwATTUFYX0JMT0NLU19BVF9FUE9DSAAyAANTRVACASwAD0JMT0NLX0hBU0hfU0laRQAgAAxBRERSRVNTX1NJWkUAGgATTUFYX0JMT0NLU19TVFJfU0laRQkAZAIJAGgCAEAFE01BWF9CTE9DS1NfQVRfRVBPQ0gJAGUCBRNNQVhfQkxPQ0tTX0FUX0VQT0NIAAEAEHRoaXNFcG9jaERhdGFLZXkCDXRoaXNFcG9jaERhdGEADGFsbE1pbmVyc0tleQIJYWxsTWluZXJzAA5tYWluQ2hhaW5JZEtleQILbWFpbkNoYWluSWQADmxhc3RDaGFpbklkS2V5AgtsYXN0Q2hhaW5JZAAYbGFzdEVwb2NoQmxvY2tzTnVtYmVyS2V5AhVsYXN0RXBvY2hCbG9ja3NOdW1iZXIADm1pbmVyUmV3YXJkS2V5AgttaW5lclJld2FyZAAWc3Rha2luZ0NvbnRyYWN0QWRkcmVzcwkBB0FkZHJlc3MBCQERQGV4dHJOYXRpdmUoMTA1MikCBQR0aGlzAhZzdGFraW5nQ29udHJhY3RBZGRyZXNzARFnZW5lcmF0aW5nQmFsYW5jZQEHYWRkcmVzcwQHJG1hdGNoMAkAnQgCBRZzdGFraW5nQ29udHJhY3RBZGRyZXNzCQCsAgICBCVzX18JAKUIAQUHYWRkcmVzcwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA3N0cgUHJG1hdGNoMAQJcGFyYW1MaXN0CQC1CQIFA3N0cgICX18ECnByZXZIZWlnaHQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQlwYXJhbUxpc3QAAQQLcHJldkJhbGFuY2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQlwYXJhbUxpc3QAAgQKbmV4dEhlaWdodAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCXBhcmFtTGlzdAADBAtuZXh0QmFsYW5jZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCXBhcmFtTGlzdAAEAwkAZwIFBmhlaWdodAUKbmV4dEhlaWdodAULbmV4dEJhbGFuY2UDCQBnAgUGaGVpZ2h0BQpwcmV2SGVpZ2h0BQtwcmV2QmFsYW5jZQAAAAABDGJsb2NrTWV0YUtleQEHYmxvY2tJZAkArAICAglibG9ja01ldGEJANwEAQUHYmxvY2tJZAEKY2hhaW5JZEtleQEJZ2VuZXJhdG9yCQCsAgICCWNoYWluSWRPZgkA3AQBBQlnZW5lcmF0b3IBDmNoYWluSGVpZ2h0S2V5AQdjaGFpbklkCQCsAgIJAKwCAgIFY2hhaW4JAKQDAQUHY2hhaW5JZAIGSGVpZ2h0ARRjaGFpbkZpcnN0QmxvY2tJZEtleQEHY2hhaW5JZAkArAICCQCsAgICBWNoYWluCQCkAwEFB2NoYWluSWQCCkZpcnN0QmxvY2sBE2NoYWluTGFzdEJsb2NrSWRLZXkBB2NoYWluSWQJAKwCAgkArAICAgVjaGFpbgkApAMBBQdjaGFpbklkAglMYXN0QmxvY2sBE2NoYWluQWxsQmxvY2tJZHNLZXkCB2NoYWluSWQBbgkArAICCQCsAgIJAKwCAgIFY2hhaW4JAKQDAQUHY2hhaW5JZAIJQWxsQmxvY2tzCQCkAwEFAW4BGGNoYWluQWxsQmxvY2tJZHNMYXN0TktleQEHY2hhaW5JZAkArAICCQCsAgICBWNoYWluCQCkAwEFB2NoYWluSWQCDkFsbEJsb2Nrc0xhc3ROAQ1zdXBwb3J0ZXJzS2V5AQdjaGFpbklkCQCsAgIJAKwCAgIFY2hhaW4JAKQDAQUHY2hhaW5JZAIKU3VwcG9ydGVycwESbWluZXJSZXdhcmRBZGRyZXNzAQltaW5lckFkZHIJAKwCAgkArAICAgVtaW5lcgUJbWluZXJBZGRyAg1SZXdhcmRBZGRyZXNzARJtaW5lckpvaW5IZWlnaHRLZXkBCW1pbmVyQWRkcgkArAICCQCsAgICBW1pbmVyBQltaW5lckFkZHICCkpvaW5IZWlnaHQBCm1pbmVyUGtLZXkBDXJld2FyZEFkZHJlc3MJAKwCAgkArAICAgVtaW5lcgUNcmV3YXJkQWRkcmVzcwICUEsBEGxlYXZpbmdNaW5lcnNLZXkBBWVwb2NoCQCsAgICD2xlYXZpbmdNaW5lcnNBdAkApAMBBQVlcG9jaAALbWFpbkNoYWluSWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUObWFpbkNoYWluSWRLZXkAAAAOdGhpc0Vwb2NoTWluZXIEByRtYXRjaDAJAKIIAQUQdGhpc0Vwb2NoRGF0YUtleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEEHJhd1RoaXNFcG9jaERhdGEFByRtYXRjaDAEDXRoaXNFcG9jaERhdGEJALUJAgUQcmF3VGhpc0Vwb2NoRGF0YQUDU0VQBAl0aGlzRXBvY2gJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ10aGlzRXBvY2hEYXRhAAADCQAAAgUJdGhpc0Vwb2NoBQZoZWlnaHQJANkEAQkAkQMCBQ10aGlzRXBvY2hEYXRhAAEFBHVuaXQFBHVuaXQACWFsbE1pbmVycwQHJG1hdGNoMAkAoggBBQxhbGxNaW5lcnNLZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANyYXcFByRtYXRjaDAJALwJAgUDcmF3BQNTRVAFA25pbAAQYWxsTGVhdmluZ01pbmVycwQHJG1hdGNoMAkAoggBCQEQbGVhdmluZ01pbmVyc0tleQEFBmhlaWdodAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA3JhdwUHJG1hdGNoMAkAvAkCBQNyYXcFA1NFUAUDbmlsAQlibG9ja01ldGEBB2Jsb2NrSWQEBG1ldGEJARFAZXh0ck5hdGl2ZSgxMDU3KQEJAQxibG9ja01ldGFLZXkBBQdibG9ja0lkBBFtZXRhV2l0aG91dEhlaWdodAkAygECBQRtZXRhAAgEFm1ldGFXaXRob3V0SGVpZ2h0RXBvY2gJAMoBAgURbWV0YVdpdGhvdXRIZWlnaHQACAQLYmxvY2tIZWlnaHQJALEJAQkAyQECBQRtZXRhAAgECmJsb2NrRXBvY2gJALEJAQkAyQECBRFtZXRhV2l0aG91dEhlaWdodAAIBAtibG9ja1BhcmVudAkAyQECBRZtZXRhV2l0aG91dEhlaWdodEVwb2NoBQ9CTE9DS19IQVNIX1NJWkUEDmJsb2NrR2VuZXJhdG9yCQDMAQIFBG1ldGEFDEFERFJFU1NfU0laRQkAlgoEBQtibG9ja0hlaWdodAUKYmxvY2tFcG9jaAULYmxvY2tQYXJlbnQFDmJsb2NrR2VuZXJhdG9yAQxzZXRFcG9jaERhdGEBCWdlbmVyYXRvcgkBC1N0cmluZ0VudHJ5AgUQdGhpc0Vwb2NoRGF0YUtleQkArAICCQCsAgIJAKQDAQUGaGVpZ2h0BQNTRVAJANgEAQgFCWdlbmVyYXRvcgVieXRlcwALJHQwMzY1MzQ3MTAECWhpdFNvdXJjZQQHJG1hdGNoMAgFCWxhc3RCbG9jawN2cmYDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQDdnJmBQckbWF0Y2gwBQN2cmYIBQlsYXN0QmxvY2sTZ2VuZXJhdGlvblNpZ25hdHVyZQoBDHByb2Nlc3NNaW5lcgIEcHJldgVtaW5lcgQLJHQwMzk1MTQwMTQFBHByZXYECXByZXZEZWxheQgFCyR0MDM5NTE0MDE0Al8xBAlwcmV2TWluZXIIBQskdDAzOTUxNDAxNAJfMgQQcHJldlRvdGFsQmFsYW5jZQgFCyR0MDM5NTE0MDE0Al8zBApwcmV2TWluZXJzCAULJHQwMzk1MTQwMTQCXzQEDG1pbmVyQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQUFbWluZXIED3dhdmVzR2VuQmFsYW5jZQgJAO8HAQUMbWluZXJBZGRyZXNzCmdlbmVyYXRpbmcEDG1pbmVyQmFsYW5jZQkBEWdlbmVyYXRpbmdCYWxhbmNlAQUMbWluZXJBZGRyZXNzAwMDCQBmAgULTUlOX0JBTEFOQ0UFD3dhdmVzR2VuQmFsYW5jZQYJAGcCAAAFDG1pbmVyQmFsYW5jZQYJAGYCCQELdmFsdWVPckVsc2UCCQCfCAEJARJtaW5lckpvaW5IZWlnaHRLZXkBBQVtaW5lcgUHSU5UX01BWAUGaGVpZ2h0BQRwcmV2BAluZXh0RGVsYXkJAIUHAgUMbWluZXJBZGRyZXNzBQxtaW5lckJhbGFuY2UDCQBmAgUJcHJldkRlbGF5BQluZXh0RGVsYXkJAJYKBAUJbmV4dERlbGF5BQVtaW5lcgkAZAIFEHByZXZUb3RhbEJhbGFuY2UFDG1pbmVyQmFsYW5jZQkAzQgCBQpwcmV2TWluZXJzBQVtaW5lcgkAlgoEBQlwcmV2RGVsYXkFCXByZXZNaW5lcgkAZAIFEHByZXZUb3RhbEJhbGFuY2UFDG1pbmVyQmFsYW5jZQkAzQgCBQpwcmV2TWluZXJzBQVtaW5lcgoAAiRsCQDOCAIFCWFsbE1pbmVycwUQYWxsTGVhdmluZ01pbmVycwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJYKBAUHSU5UX01BWAIAAAAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMcHJvY2Vzc01pbmVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyA1MAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIADWNvbXB1dGVkRGVsYXkIBQskdDAzNjUzNDcxMAJfMQARY29tcHV0ZWRHZW5lcmF0b3IIBQskdDAzNjUzNDcxMAJfMgAUY29tcHV0ZWRUb3RhbEJhbGFuY2UIBQskdDAzNjUzNDcxMAJfMwAOZmlsdGVyZWRNaW5lcnMIBQskdDAzNjUzNDcxMAJfNAASc2FmZVJvbGxiYWNrSGVpZ2h0CgEKYWRkQmFsYW5jZQIDYWNjCmJsb2NrSWRTdHIECyR0MDQ4MjQ0ODY4BQNhY2MEDHRvdGFsQmFsYW5jZQgFCyR0MDQ4MjQ0ODY4Al8xBAZwcmV2SWQIBQskdDA0ODI0NDg2OAJfMgQKZ2VuZXJhdG9ycwgFCyR0MDQ4MjQ0ODY4Al8zAwkAZgIFDHRvdGFsQmFsYW5jZQkAaQIFFGNvbXB1dGVkVG90YWxCYWxhbmNlAAIFA2FjYwQHYmxvY2tJZAkA3QQBBQpibG9ja0lkU3RyBAlnZW5lcmF0b3IJAQdBZGRyZXNzAQgJAQlibG9ja01ldGEBBQdibG9ja0lkAl80AwkBD2NvbnRhaW5zRWxlbWVudAIFCmdlbmVyYXRvcnMFCWdlbmVyYXRvcgUDYWNjBAdiYWxhbmNlCQERZ2VuZXJhdGluZ0JhbGFuY2UBBQlnZW5lcmF0b3IJAJUKAwkAZAIFDHRvdGFsQmFsYW5jZQUHYmFsYW5jZQUHYmxvY2tJZAkAzQgCBQpnZW5lcmF0b3JzBQlnZW5lcmF0b3IKAQtnZXRCbG9ja0lkcwEBbgQGcmF3U3RyCQELdmFsdWVPckVsc2UCCQCiCAEJARNjaGFpbkFsbEJsb2NrSWRzS2V5AgULbWFpbkNoYWluSWQFAW4CAAMJAAACBQZyYXdTdHICAAUDbmlsCQC8CQIFBnJhd1N0cgUDU0VQBAVsYXN0TgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEYY2hhaW5BbGxCbG9ja0lkc0xhc3ROS2V5AQULbWFpbkNoYWluSWQAAAQMYWxsQmxvY2tzSWRzCQDOCAIJAM4IAgkAzggCCQELZ2V0QmxvY2tJZHMBBQVsYXN0TgkBC2dldEJsb2NrSWRzAQkAZQIFBWxhc3ROAAEJAQtnZXRCbG9ja0lkcwEJAGUCBQVsYXN0TgACCQELZ2V0QmxvY2tJZHMBCQBlAgUFbGFzdE4AAwQLJHQwNTYzNjU3MTAKAAIkbAUMYWxsQmxvY2tzSWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlQoDAAABAAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQphZGRCYWxhbmNlAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhVMaXN0IHNpemUgZXhjZWVkcyAyMDAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGkAagBrAGwAbQBuAG8AcABxAHIAcwB0AHUAdgB3AHgAeQB6AHsAfAB9AH4AfwCAAQCBAQCCAQCDAQCEAQCFAQCGAQCHAQCIAQCJAQCKAQCLAQCMAQCNAQCOAQCPAQCQAQCRAQCSAQCTAQCUAQCVAQCWAQCXAQCYAQCZAQCaAQCbAQCcAQCdAQCeAQCfAQCgAQChAQCiAQCjAQCkAQClAQCmAQCnAQCoAQCpAQCqAQCrAQCsAQCtAQCuAQCvAQCwAQCxAQCyAQCzAQC0AQC1AQC2AQC3AQC4AQC5AQC6AQC7AQC8AQC9AQC+AQC/AQDAAQDBAQDCAQDDAQDEAQDFAQDGAQDHAQDIAQQCX2IIBQskdDA1NjM2NTcxMAJfMQQHYmxvY2tJZAgFCyR0MDU2MzY1NzEwAl8yCAkBCWJsb2NrTWV0YQEFB2Jsb2NrSWQCXzEBEXN1cHBvcnRpbmdCYWxhbmNlAQdjaGFpbklkCgEKYWRkQmFsYW5jZQIDYWNjDGdlbmVyYXRvclN0cgQLJHQwNTg1NTU4OTEFA2FjYwQMdG90YWxCYWxhbmNlCAULJHQwNTg1NTU4OTECXzEECmdlbmVyYXRvcnMIBQskdDA1ODU1NTg5MQJfMgQJZ2VuZXJhdG9yCQERQGV4dHJOYXRpdmUoMTA2MikBBQxnZW5lcmF0b3JTdHIDCQEPY29udGFpbnNFbGVtZW50AgUKZ2VuZXJhdG9ycwUJZ2VuZXJhdG9yBQNhY2MEB2JhbGFuY2UJARFnZW5lcmF0aW5nQmFsYW5jZQEFCWdlbmVyYXRvcgkAlAoCCQBkAgUMdG90YWxCYWxhbmNlBQdiYWxhbmNlCQDNCAIFCmdlbmVyYXRvcnMFCWdlbmVyYXRvcgQNYWxsR2VuZXJhdG9ycwkAvAkCCQERQGV4dHJOYXRpdmUoMTA1OCkBCQENc3VwcG9ydGVyc0tleQEFB2NoYWluSWQFA1NFUAQLJHQwNjIxMzYyNzgKAAIkbAUNYWxsR2VuZXJhdG9ycwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJQKAgAABQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmFkZEJhbGFuY2UCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFUxpc3Qgc2l6ZSBleGNlZWRzIDEwMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkBAdiYWxhbmNlCAULJHQwNjIxMzYyNzgCXzEEAl9nCAULJHQwNjIxMzYyNzgCXzIFB2JhbGFuY2UBEWVuc3VyZU1pbmluZ0Vwb2NoAQlnZW5lcmF0b3IDCQECIT0CCQClCAEFCWdlbmVyYXRvcgURY29tcHV0ZWRHZW5lcmF0b3IJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJANgEAQgFCWdlbmVyYXRvcgVieXRlcwIbIGlzIG5vdCBhbGxvd2VkIHRvIG1pbmUgaW4gCQCkAwEFBmhlaWdodAIRIGVwb2NoLiBFeHBlY3RlZCAFEWNvbXB1dGVkR2VuZXJhdG9yBQR1bml0ARJpc1JlZmVyZW5jZUNvcnJlY3QCCXJlZmVyZW5jZQlsYXN0QmxvY2sEByRtYXRjaDAFCWxhc3RCbG9jawMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0AwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmxiBQckbWF0Y2gwAwkAAAIFCXJlZmVyZW5jZQUCbGIFBHVuaXQJAAIBCQCsAgIJAKwCAgkArAICAi5FeHBlY3RlZCBhIHJlZmVyZW5jZSB0byB0aGUgY2hhaW4gbGFzdCBibG9jazogCQDcBAEFAmxiAgcuIEdvdDogCQDcBAEFCXJlZmVyZW5jZQkAAgECC01hdGNoIGVycm9yAQ9jaGFpbklzSW5hY3RpdmUBB2NoYWluSWQEDGZpcnN0QmxvY2tJZAkBEUBleHRyTmF0aXZlKDEwNTcpAQkBFGNoYWluRmlyc3RCbG9ja0lkS2V5AQUHY2hhaW5JZAkAZgIFEnNhZmVSb2xsYmFja0hlaWdodAgJAQlibG9ja01ldGEBBQxmaXJzdEJsb2NrSWQCXzEBGWVuc3VyZU1haW5PckluYWN0aXZlQ2hhaW4BCWdlbmVyYXRvcgQHJG1hdGNoMAkAnwgBCQEKY2hhaW5JZEtleQEIBQlnZW5lcmF0b3IFYnl0ZXMDCQABAgUHJG1hdGNoMAIDSW50BAljdXJyZW50SWQFByRtYXRjaDADAwkAAAIFCWN1cnJlbnRJZAULbWFpbkNoYWluSWQGCQEPY2hhaW5Jc0luYWN0aXZlAQUJY3VycmVudElkBQR1bml0CQACAQkArAICAhxtaW5lciBpcyBtaW5pbmcgb3RoZXIgY2hhaW4gCQCkAwEFCWN1cnJlbnRJZAUEdW5pdAEXZW5zdXJlQWx0Q2hhaW5FeHRlbnNpb24CCWdlbmVyYXRvcgdjaGFpbklkBAckbWF0Y2gwCQCfCAEJAQpjaGFpbklkS2V5AQgFCWdlbmVyYXRvcgVieXRlcwMJAAECBQckbWF0Y2gwAgNJbnQECWN1cnJlbnRJZAUHJG1hdGNoMAMJAAACBQljdXJyZW50SWQFB2NoYWluSWQFBHVuaXQEFWV4dGVuZGluZ0ZpcnN0QmxvY2tJZAkBEUBleHRyTmF0aXZlKDEwNTcpAQkBFGNoYWluRmlyc3RCbG9ja0lkS2V5AQUHY2hhaW5JZAQYbWluZXJDdXJyZW50Rmlyc3RCbG9ja0lkCQERQGV4dHJOYXRpdmUoMTA1NykBCQEUY2hhaW5GaXJzdEJsb2NrSWRLZXkBBQljdXJyZW50SWQEGWV4dGVuZGluZ0ZpcnN0QmxvY2tIZWlnaHQICQEJYmxvY2tNZXRhAQUVZXh0ZW5kaW5nRmlyc3RCbG9ja0lkAl8xBBxtaW5lckN1cnJlbnRGaXJzdEJsb2NrSGVpZ2h0CAkBCWJsb2NrTWV0YQEFGG1pbmVyQ3VycmVudEZpcnN0QmxvY2tJZAJfMQMJAGYCBRlleHRlbmRpbmdGaXJzdEJsb2NrSGVpZ2h0BRxtaW5lckN1cnJlbnRGaXJzdEJsb2NrSGVpZ2h0BQR1bml0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICHG1pbmVyIGlzIG1pbmluZyBvdGhlciBjaGFpbiAJAKQDAQUJY3VycmVudElkAiYsIGhlaWdodCBvZiB0aGUgYWx0IGNoYWluIGZpcnN0IGJsb2NrIAkApAMBBRlleHRlbmRpbmdGaXJzdEJsb2NrSGVpZ2h0Aj8gaXMgbm90IGxlc3MgdGhhbiBoZWlnaHQgb2YgdGhlIG1pbmVyIGFjdGl2ZSBjaGFpbiBmaXJzdCBibG9jayAJAKQDAQUcbWluZXJDdXJyZW50Rmlyc3RCbG9ja0hlaWdodAUEdW5pdAEgZW5zdXJlUmVmZXJlbmNlSXNTYWZlRm9yUm9sbGJhY2sBCXJlZmVyZW5jZQQLc3RhcnRIZWlnaHQICQEJYmxvY2tNZXRhAQUJcmVmZXJlbmNlAl8xAwkAZgIFEnNhZmVSb2xsYmFja0hlaWdodAULc3RhcnRIZWlnaHQJAAIBCQCsAgIJAKwCAgkArAICAg1zdGFydCBoZWlnaHQgCQCkAwEFC3N0YXJ0SGVpZ2h0Ah0gaXMgbGVzcyB0aGFuIG1pbmltdW0gaGVpZ2h0IAkApAMBBRJzYWZlUm9sbGJhY2tIZWlnaHQFBHVuaXQBEmVuc3VyZUNvcnJlY3RFcG9jaAEFZXBvY2gDCQAAAgUFZXBvY2gFBmhlaWdodAUEdW5pdAkAAgEJAKwCAgkArAICCQCsAgICGkV4cGVjdGVkIGJsb2NrIGZyb20gZXBvY2ggCQCkAwEFBmhlaWdodAIGLiBHb3QgCQCkAwEFBWVwb2NoARFjaGVja0Jsb2Nrc051bWJlcgADCQBmAgUTTUFYX0JMT0NLU19BVF9FUE9DSAkBEUBleHRyTmF0aXZlKDEwNTUpAQUYbGFzdEVwb2NoQmxvY2tzTnVtYmVyS2V5BQR1bml0CQACAQIiTWF4IGJsb2NrcyBudW1iZXIgYXQgZXBvY2ggcmVhY2hlZAEMYWRkU3VwcG9ydGVyAgdjaGFpbklkCWdlbmVyYXRvcgQNc3VwcG9ydGVyc1N0cgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBDXN1cHBvcnRlcnNLZXkBBQdjaGFpbklkBApzdXBwb3J0ZXJzCQC1CQIFDXN1cHBvcnRlcnNTdHIFA1NFUAMJAQ9jb250YWluc0VsZW1lbnQCBQpzdXBwb3J0ZXJzCQClCAEFCWdlbmVyYXRvcgUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1zdXBwb3J0ZXJzS2V5AQUHY2hhaW5JZAkArAICCQCsAgIFDXN1cHBvcnRlcnNTdHIFA1NFUAkApQgBBQlnZW5lcmF0b3IFA25pbAYBaQELYXBwZW5kQmxvY2sCCWJsb2NrSGFzaAlyZWZlcmVuY2UEBWNoZWNrCQERY2hlY2tCbG9ja3NOdW1iZXIAAwkAAAIFBWNoZWNrBQVjaGVjawMJAQIhPQIFDnRoaXNFcG9jaE1pbmVyCAgFAWkMb3JpZ2luQ2FsbGVyBWJ5dGVzBAckbWF0Y2gwBQ50aGlzRXBvY2hNaW5lcgMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAplcG9jaE1pbmVyBQckbWF0Y2gwCQACAQkArAICAjlub3QgYWxsb3dlZCB0byBmb3JnZSBibG9ja3MgaW4gdGhpcyBlcG9jaCwgZXhwZWN0ZWQgZnJvbSAJANgEAQUKZXBvY2hNaW5lcgkAAgECQG5vdCBhbGxvd2VkIHRvIGZvcmdlIGJsb2NrcyBpbiB0aGlzIGVwb2NoLCBlcG9jaCBtaW5lciBpcyBhYnNlbnQEB2NoYWluSWQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBCmNoYWluSWRLZXkBCAgFAWkMb3JpZ2luQ2FsbGVyBWJ5dGVzBQttYWluQ2hhaW5JZAQLbGFzdEJsb2NrSWQJARFAZXh0ck5hdGl2ZSgxMDU3KQEJARNjaGFpbkxhc3RCbG9ja0lkS2V5AQUHY2hhaW5JZAQGY2hlY2syCQESaXNSZWZlcmVuY2VDb3JyZWN0AgUJcmVmZXJlbmNlBQtsYXN0QmxvY2tJZAMJAAACBQZjaGVjazIFBmNoZWNrMgQLY2hhaW5IZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDmNoYWluSGVpZ2h0S2V5AQUHY2hhaW5JZAAABAluZXdIZWlnaHQJAGQCBQtjaGFpbkhlaWdodAABBAxibG9ja3NOdW1iZXIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUYbGFzdEVwb2NoQmxvY2tzTnVtYmVyS2V5AAAEDG5ld0Jsb2NrTWV0YQkAywECCQDLAQIJAMsBAgkAmgMBBQluZXdIZWlnaHQJAJoDAQUGaGVpZ2h0BQtsYXN0QmxvY2tJZAgIBQFpDG9yaWdpbkNhbGxlcgVieXRlcwkAzAgCCQELQmluYXJ5RW50cnkCCQEMYmxvY2tNZXRhS2V5AQUJYmxvY2tIYXNoBQxuZXdCbG9ja01ldGEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5jaGFpbkhlaWdodEtleQEFB2NoYWluSWQFCW5ld0hlaWdodAkAzAgCCQELQmluYXJ5RW50cnkCCQETY2hhaW5MYXN0QmxvY2tJZEtleQEFB2NoYWluSWQFCWJsb2NrSGFzaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUYbGFzdEVwb2NoQmxvY2tzTnVtYmVyS2V5CQBkAgUMYmxvY2tzTnVtYmVyAAEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ9leHRlbmRNYWluQ2hhaW4DCWJsb2NrSGFzaAlyZWZlcmVuY2UFZXBvY2gECmNoZWNrRXBvY2gJARJlbnN1cmVDb3JyZWN0RXBvY2gBBQVlcG9jaAMJAAACBQpjaGVja0Vwb2NoBQpjaGVja0Vwb2NoBA5jaGVja0dlbmVyYXRvcgkBEWVuc3VyZU1pbmluZ0Vwb2NoAQgFAWkMb3JpZ2luQ2FsbGVyAwkAAAIFDmNoZWNrR2VuZXJhdG9yBQ5jaGVja0dlbmVyYXRvcgQKY2hlY2tDaGFpbgkBGWVuc3VyZU1haW5PckluYWN0aXZlQ2hhaW4BCAUBaQxvcmlnaW5DYWxsZXIDCQAAAgUKY2hlY2tDaGFpbgUKY2hlY2tDaGFpbgQLY2hhaW5IZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDmNoYWluSGVpZ2h0S2V5AQULbWFpbkNoYWluSWQAAAQQbGFzdFZhbGlkQmxvY2tJZAkAoQgBCQETY2hhaW5MYXN0QmxvY2tJZEtleQEFC21haW5DaGFpbklkBA5jaGVja1JlZmVyZW5jZQkBEmlzUmVmZXJlbmNlQ29ycmVjdAIFCXJlZmVyZW5jZQUQbGFzdFZhbGlkQmxvY2tJZAMJAAACBQ5jaGVja1JlZmVyZW5jZQUOY2hlY2tSZWZlcmVuY2UEDWJsb2NrSWRzTGFzdE4JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBGGNoYWluQWxsQmxvY2tJZHNMYXN0TktleQEFC21haW5DaGFpbklkAAAECGJsb2NrSWRzCQELdmFsdWVPckVsc2UCCQCiCAEJARNjaGFpbkFsbEJsb2NrSWRzS2V5AgULbWFpbkNoYWluSWQFDWJsb2NrSWRzTGFzdE4CAAQJbmV3SGVpZ2h0CQBkAgULY2hhaW5IZWlnaHQAAQQRdXBkYXRlQWxsQmxvY2tJZHMDCQBnAgkAsQIBBQhibG9ja0lkcwUTTUFYX0JMT0NLU19TVFJfU0laRQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGNoYWluQWxsQmxvY2tJZHNMYXN0TktleQEFC21haW5DaGFpbklkCQBkAgUNYmxvY2tJZHNMYXN0TgABCQDMCAIJAQtTdHJpbmdFbnRyeQIJARNjaGFpbkFsbEJsb2NrSWRzS2V5AgULbWFpbkNoYWluSWQJAGQCBQ1ibG9ja0lkc0xhc3ROAAEJANwEAQUJYmxvY2tIYXNoBQNuaWwEC25ld0Jsb2NrSWRzAwkAAAIFCGJsb2NrSWRzAgAJANwEAQUJYmxvY2tIYXNoCQCsAgIJAKwCAgkA3AQBBQlibG9ja0hhc2gFA1NFUAUIYmxvY2tJZHMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2NoYWluQWxsQmxvY2tJZHNLZXkCBQttYWluQ2hhaW5JZAUNYmxvY2tJZHNMYXN0TgULbmV3QmxvY2tJZHMFA25pbAQMZmlyc3RCbG9ja0lkBAckbWF0Y2gwBRBsYXN0VmFsaWRCbG9ja0lkAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAmlkBQckbWF0Y2gwBQNuaWwJAMwIAgkBC0JpbmFyeUVudHJ5AgkBFGNoYWluRmlyc3RCbG9ja0lkS2V5AQULbWFpbkNoYWluSWQFCWJsb2NrSGFzaAUDbmlsBAxuZXdCbG9ja01ldGEJAMsBAgkAywECCQDLAQIJAJoDAQUJbmV3SGVpZ2h0CQCaAwEFBmhlaWdodAUJcmVmZXJlbmNlCAgFAWkMb3JpZ2luQ2FsbGVyBWJ5dGVzCQDOCAIJAM4IAgkAzAgCCQELQmluYXJ5RW50cnkCCQEMYmxvY2tNZXRhS2V5AQUJYmxvY2tIYXNoBQxuZXdCbG9ja01ldGEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5jaGFpbkhlaWdodEtleQEFC21haW5DaGFpbklkBQluZXdIZWlnaHQJAMwIAgkBC0JpbmFyeUVudHJ5AgkBE2NoYWluTGFzdEJsb2NrSWRLZXkBBQttYWluQ2hhaW5JZAUJYmxvY2tIYXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEKY2hhaW5JZEtleQEICAUBaQxvcmlnaW5DYWxsZXIFYnl0ZXMFC21haW5DaGFpbklkCQDMCAIJAQxzZXRFcG9jaERhdGEBCAUBaQxvcmlnaW5DYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIFGGxhc3RFcG9jaEJsb2Nrc051bWJlcktleQABBQNuaWwFDGZpcnN0QmxvY2tJZAURdXBkYXRlQWxsQmxvY2tJZHMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENc3RhcnRBbHRDaGFpbgMJYmxvY2tIYXNoCXJlZmVyZW5jZQVlcG9jaAQKY2hlY2tFcG9jaAkBEmVuc3VyZUNvcnJlY3RFcG9jaAEFBWVwb2NoAwkAAAIFCmNoZWNrRXBvY2gFCmNoZWNrRXBvY2gEDmNoZWNrUmVmZXJlbmNlCQEgZW5zdXJlUmVmZXJlbmNlSXNTYWZlRm9yUm9sbGJhY2sBBQlyZWZlcmVuY2UDCQAAAgUOY2hlY2tSZWZlcmVuY2UFDmNoZWNrUmVmZXJlbmNlBA5jaGVja0dlbmVyYXRvcgkBEWVuc3VyZU1pbmluZ0Vwb2NoAQgFAWkMb3JpZ2luQ2FsbGVyAwkAAAIFDmNoZWNrR2VuZXJhdG9yBQ5jaGVja0dlbmVyYXRvcgQKY2hlY2tDaGFpbgkBGWVuc3VyZU1haW5PckluYWN0aXZlQ2hhaW4BCAUBaQxvcmlnaW5DYWxsZXIDCQAAAgUKY2hlY2tDaGFpbgUKY2hlY2tDaGFpbgQKbmV3Q2hhaW5JZAkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUObGFzdENoYWluSWRLZXkAAAABBAluZXdIZWlnaHQJAGQCCAkBCWJsb2NrTWV0YQEFCXJlZmVyZW5jZQJfMQABBAxuZXdCbG9ja01ldGEJAMsBAgkAywECCQDLAQIJAJoDAQUJbmV3SGVpZ2h0CQCaAwEFBmhlaWdodAUJcmVmZXJlbmNlCAgFAWkMb3JpZ2luQ2FsbGVyBWJ5dGVzCQDMCAIJAQtCaW5hcnlFbnRyeQIJAQxibG9ja01ldGFLZXkBBQlibG9ja0hhc2gFDG5ld0Jsb2NrTWV0YQkAzAgCCQELQmluYXJ5RW50cnkCCQEUY2hhaW5GaXJzdEJsb2NrSWRLZXkBBQpuZXdDaGFpbklkBQlibG9ja0hhc2gJAMwIAgkBC0JpbmFyeUVudHJ5AgkBE2NoYWluTGFzdEJsb2NrSWRLZXkBBQpuZXdDaGFpbklkBQlibG9ja0hhc2gJAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2NoYWluQWxsQmxvY2tJZHNLZXkCBQpuZXdDaGFpbklkAAAJANwEAQUJYmxvY2tIYXNoCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOY2hhaW5IZWlnaHRLZXkBBQpuZXdDaGFpbklkBQluZXdIZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQpjaGFpbklkS2V5AQgIBQFpDG9yaWdpbkNhbGxlcgVieXRlcwUKbmV3Q2hhaW5JZAkAzAgCCQEMc2V0RXBvY2hEYXRhAQgFAWkMb3JpZ2luQ2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1zdXBwb3J0ZXJzS2V5AQUKbmV3Q2hhaW5JZAkApQgBCAUBaQxvcmlnaW5DYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIFGGxhc3RFcG9jaEJsb2Nrc051bWJlcktleQABCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5sYXN0Q2hhaW5JZEtleQUKbmV3Q2hhaW5JZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmV4dGVuZEFsdENoYWluBAdjaGFpbklkCWJsb2NrSGFzaAlyZWZlcmVuY2UFZXBvY2gECmNoZWNrRXBvY2gJARJlbnN1cmVDb3JyZWN0RXBvY2gBBQVlcG9jaAMJAAACBQpjaGVja0Vwb2NoBQpjaGVja0Vwb2NoBA5jaGVja0dlbmVyYXRvcgkBEWVuc3VyZU1pbmluZ0Vwb2NoAQgFAWkMb3JpZ2luQ2FsbGVyAwkAAAIFDmNoZWNrR2VuZXJhdG9yBQ5jaGVja0dlbmVyYXRvcgQKY2hlY2tDaGFpbgkBF2Vuc3VyZUFsdENoYWluRXh0ZW5zaW9uAggFAWkMb3JpZ2luQ2FsbGVyBQdjaGFpbklkAwkAAAIFCmNoZWNrQ2hhaW4FCmNoZWNrQ2hhaW4EDmNoZWNrUmVmZXJlbmNlCQESaXNSZWZlcmVuY2VDb3JyZWN0AgUJcmVmZXJlbmNlCQChCAEJARNjaGFpbkxhc3RCbG9ja0lkS2V5AQUHY2hhaW5JZAMJAAACBQ5jaGVja1JlZmVyZW5jZQUOY2hlY2tSZWZlcmVuY2UEC2NoYWluSGVpZ2h0CQELdmFsdWVPckVsc2UCCQCfCAEJAQ5jaGFpbkhlaWdodEtleQEFB2NoYWluSWQAAAQNYmxvY2tJZHNMYXN0TgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEYY2hhaW5BbGxCbG9ja0lkc0xhc3ROS2V5AQUHY2hhaW5JZAAABAhibG9ja0lkcwkBEUBleHRyTmF0aXZlKDEwNTgpAQkBE2NoYWluQWxsQmxvY2tJZHNLZXkCBQdjaGFpbklkBQ1ibG9ja0lkc0xhc3ROBAluZXdIZWlnaHQJAGQCBQtjaGFpbkhlaWdodAABBBF1cGRhdGVBbGxCbG9ja0lkcwMJAGcCCQCxAgEFCGJsb2NrSWRzBRNNQVhfQkxPQ0tTX1NUUl9TSVpFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYY2hhaW5BbGxCbG9ja0lkc0xhc3ROS2V5AQUHY2hhaW5JZAkAZAIFDWJsb2NrSWRzTGFzdE4AAQkAzAgCCQELU3RyaW5nRW50cnkCCQETY2hhaW5BbGxCbG9ja0lkc0tleQIFB2NoYWluSWQJAGQCBQ1ibG9ja0lkc0xhc3ROAAEJANwEAQUJYmxvY2tIYXNoBQNuaWwEC25ld0Jsb2NrSWRzCQCsAgIJAKwCAgkA3AQBBQlibG9ja0hhc2gFA1NFUAUIYmxvY2tJZHMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2NoYWluQWxsQmxvY2tJZHNLZXkCBQdjaGFpbklkBQ1ibG9ja0lkc0xhc3ROBQtuZXdCbG9ja0lkcwUDbmlsBA5tYWluQ2hhaW5FbnRyeQMJAGYCCQERc3VwcG9ydGluZ0JhbGFuY2UBBQdjaGFpbklkCQBpAgUUY29tcHV0ZWRUb3RhbEJhbGFuY2UAAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUObWFpbkNoYWluSWRLZXkFB2NoYWluSWQFA25pbAUDbmlsBAxuZXdCbG9ja01ldGEJAMsBAgkAywECCQDLAQIJAJoDAQUJbmV3SGVpZ2h0CQCaAwEFBmhlaWdodAUJcmVmZXJlbmNlCAgFAWkMb3JpZ2luQ2FsbGVyBWJ5dGVzCQDOCAIJAM4IAgkAzggCCQDMCAIJAQtCaW5hcnlFbnRyeQIJAQxibG9ja01ldGFLZXkBBQlibG9ja0hhc2gFDG5ld0Jsb2NrTWV0YQkAzAgCCQELQmluYXJ5RW50cnkCCQETY2hhaW5MYXN0QmxvY2tJZEtleQEFB2NoYWluSWQFCWJsb2NrSGFzaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmNoYWluSGVpZ2h0S2V5AQUHY2hhaW5JZAUJbmV3SGVpZ2h0CQDMCAIJAQxzZXRFcG9jaERhdGEBCAUBaQxvcmlnaW5DYWxsZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQpjaGFpbklkS2V5AQgIBQFpDG9yaWdpbkNhbGxlcgVieXRlcwUHY2hhaW5JZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUYbGFzdEVwb2NoQmxvY2tzTnVtYmVyS2V5AAEFA25pbAUObWFpbkNoYWluRW50cnkJAQxhZGRTdXBwb3J0ZXICBQdjaGFpbklkCAUBaQxvcmlnaW5DYWxsZXIFEXVwZGF0ZUFsbEJsb2NrSWRzCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBGpvaW4BDXJld2FyZEFkZHJlc3MKARJjaGVja1Jld2FyZEFkZHJlc3MBB2FkZHJlc3MEByRtYXRjaDAJAKEIAQkBCm1pbmVyUGtLZXkBBQdhZGRyZXNzAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwAwkAAAIFAnBrCAUBaRVvcmlnaW5DYWxsZXJQdWJsaWNLZXkFBHVuaXQJAAIBCQCsAgIJAKwCAgkArAICAhFMMiBtaW5lciBhZGRyZXNzIAUHYWRkcmVzcwIYIGlzIGFscmVhZHkgbGlua2VkIHdpdGggCQDYBAEFAnBrBQR1bml0AwkAZgIFC01JTl9CQUxBTkNFCAkA7wcBCAUBaQxvcmlnaW5DYWxsZXIKZ2VuZXJhdGluZwkAAgEJAKwCAgkArAICCQCsAgICIUluc3VmZmljaWVudCBnZW5lcmF0aW5nIGJhbGFuY2U6IAkApAMBCAkA7wcBCAUBaQxvcmlnaW5DYWxsZXIKZ2VuZXJhdGluZwIMLiBSZXF1aXJlZDogCQCkAwEFC01JTl9CQUxBTkNFAwkBAiE9AgkAyAEBBQ1yZXdhcmRBZGRyZXNzABQJAAIBAiVyZXdhcmRBZGRyZXNzIHNob3VsZCBiZSBhbiBMMiBhZGRyZXNz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AQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIJAQUkZjFfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyBBBuZXdMZWF2aW5nTWluZXJzCAUNJHQwMTcwMTExNzEwMQJfMQQJaXNVcGRhdGVkCAUNJHQwMTcwMTExNzEwMQJfMgQWbmV3TGVhdmluZ01pbmVyc0FjdGlvbgMJAQIhPQIFEG5ld0xlYXZpbmdNaW5lcnMFA25pbAkAzAgCCQELU3RyaW5nRW50cnkCCQEQbGVhdmluZ01pbmVyc0tleQEFBmhlaWdodAkAugkCBRBuZXdMZWF2aW5nTWluZXJzBQNTRVAFA25pbAMJAQIhPQIFEGFsbExlYXZpbmdNaW5lcnMFA25pbAkAzAgCCQELRGVsZXRlRW50cnkBCQEQbGVhdmluZ01pbmVyc0tleQEFBmhlaWdodAUDbmlsBQNuaWwECmpvaW5IZWlnaHQDBQlpc1VwZGF0ZWQFBmhlaWdodAkAZAIFBmhlaWdodAABBBhkZWxldGVPbGRSZXdhcmRBZGRyZXNzUGsEByRtYXRjaDAJAKEIAQkBEm1pbmVyUmV3YXJkQWRkcmVzcwEFCG5ld01pbmVyAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IECm9sZEFkZHJlc3MFByRtYXRjaDADCQAAAgUKb2xkQWRkcmVzcwUNcmV3YXJkQWRkcmVzcwUDbmlsCQDMCAIJAQtEZWxldGVFbnRyeQEJAQptaW5lclBrS2V5AQkA3AQBBQpvbGRBZGRyZXNzBQNuaWwFA25pbAkAzggCCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgUMYWxsTWluZXJzS2V5BQluZXdNaW5lcnMJAMwIAgkBDEludGVnZXJFbnRyeQIJARJtaW5lckpvaW5IZWlnaHRLZXkBBQhuZXdNaW5lcgUKam9pbkhlaWdodAkAzAgCCQELQmluYXJ5RW50cnkCCQESbWluZXJSZXdhcmRBZGRyZXNzAQUIbmV3TWluZXIFDXJld2FyZEFkZHJlc3MJAMwIAgkBC0JpbmFyeUVudHJ5AgkBCm1pbmVyUGtLZXkBBRByZXdhcmRBZGRyZXNzSGV4CAUBaRVvcmlnaW5DYWxsZXJQdWJsaWNLZXkFA25pbAUWbmV3TGVhdmluZ01pbmVyc0FjdGlvbgUYZGVsZXRlT2xkUmV3YXJkQWRkcmVzc1BrCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBWxlYXZlAAQMbGVhdmluZ01pbmVyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgoBC2ZpbHRlck1pbmVyAgNhY2MFbWluZXIDCQAAAgUFbWluZXIFDGxlYXZpbmdNaW5lcgUDYWNjCQDNCAIFA2FjYwUFbWluZXIECnJlc3RNaW5lcnMKAAIkbAUJYWxsTWluZXJzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQtmaWx0ZXJNaW5lcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgNTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyAwkAAAIFDnRoaXNFcG9jaE1pbmVyCAgFAWkMb3JpZ2luQ2FsbGVyBWJ5dGVzCQACAQIcZGVzaWduYXRlZCBtaW5lciBjYW4ndCBsZWF2ZQQHJG1hdGNoMAkAnwgBCQESbWluZXJKb2luSGVpZ2h0S2V5AQUMbGVhdmluZ01pbmVyAwkAAQIFByRtYXRjaDACA0ludAQLbWluZXJIZWlnaHQFByRtYXRjaDADCQBmAgULbWluZXJIZWlnaHQFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQxhbGxNaW5lcnNLZXkJALoJAgUKcmVzdE1pbmVycwUDU0VQCQDMCAIJAQtEZWxldGVFbnRyeQEJARJtaW5lckpvaW5IZWlnaHRLZXkBBQxsZWF2aW5nTWluZXIFA25pbAQQb2xkTGVhdmluZ01pbmVycwkBC3ZhbHVlT3JFbHNlAgkAoggBCQEQbGVhdmluZ01pbmVyc0tleQEFBmhlaWdodAIABBBuZXdMZWF2aW5nTWluZXJzAwkAAAIFEG9sZExlYXZpbmdNaW5lcnMCAAUMbGVhdmluZ01pbmVyCQCsAgIJAKwCAgUQb2xkTGVhdmluZ01pbmVycwUDU0VQBQxsZWF2aW5nTWluZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUMYWxsTWluZXJzS2V5CQC6CQIFCnJlc3RNaW5lcnMFA1NFUAkAzAgCCQELRGVsZXRlRW50cnkBCQESbWluZXJKb2luSGVpZ2h0S2V5AQUMbGVhdmluZ01pbmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJARBsZWF2aW5nTWluZXJzS2V5AQUGaGVpZ2h0BRBuZXdMZWF2aW5nTWluZXJzBQNuaWwJAMwIAgkBC1N0cmluZ0VudHJ5AgUMYWxsTWluZXJzS2V5CQC6CQIFCnJlc3RNaW5lcnMFA1NFUAUDbmlsAHiFeYA=", "chainId": 84, "height": 3046754, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9LVcNq4yYu4tSAK7dib3z1Wimo7hRHSdnK5CvW66kuni Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 8 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = 9223372036854775807
5+
6+let b = 100000000
7+
8+let c = (20000 * b)
9+
10+let d = 50
11+
12+let e = ","
13+
14+let f = 32
15+
16+let g = 26
17+
18+let h = ((64 * d) + (d - 1))
19+
20+let i = "thisEpochData"
21+
22+let j = "allMiners"
23+
24+let k = "mainChainId"
25+
26+let l = "lastChainId"
27+
28+let m = "lastEpochBlocksNumber"
29+
30+let n = "minerReward"
31+
32+let o = Address(getBinaryValue(this, "stakingContractAddress"))
33+
34+func p (q) = {
35+ let r = getString(o, ("%s__" + toString(q)))
36+ if ($isInstanceOf(r, "String"))
37+ then {
38+ let s = r
39+ let t = split(s, "__")
40+ let u = parseIntValue(t[1])
41+ let v = parseIntValue(t[2])
42+ let w = parseIntValue(t[3])
43+ let x = parseIntValue(t[4])
44+ if ((height >= w))
45+ then x
46+ else if ((height >= u))
47+ then v
48+ else 0
49+ }
50+ else 0
51+ }
52+
53+
54+func y (z) = ("blockMeta" + toBase16String(z))
55+
56+
57+func A (B) = ("chainIdOf" + toBase16String(B))
58+
59+
60+func C (D) = (("chain" + toString(D)) + "Height")
61+
62+
63+func E (D) = (("chain" + toString(D)) + "FirstBlock")
64+
65+
66+func F (D) = (("chain" + toString(D)) + "LastBlock")
67+
68+
69+func G (D,H) = ((("chain" + toString(D)) + "AllBlocks") + toString(H))
70+
71+
72+func I (D) = (("chain" + toString(D)) + "AllBlocksLastN")
73+
74+
75+func J (D) = (("chain" + toString(D)) + "Supporters")
76+
77+
78+func K (L) = (("miner" + L) + "RewardAddress")
79+
80+
81+func M (L) = (("miner" + L) + "JoinHeight")
82+
83+
84+func N (O) = (("miner" + O) + "PK")
85+
86+
87+func P (Q) = ("leavingMinersAt" + toString(Q))
88+
89+
90+let R = valueOrElse(getInteger(k), 0)
91+
92+let S = {
93+ let r = getString(i)
94+ if ($isInstanceOf(r, "String"))
95+ then {
96+ let T = r
97+ let U = split(T, e)
98+ let V = parseIntValue(U[0])
99+ if ((V == height))
100+ then fromBase58String(U[1])
101+ else unit
102+ }
103+ else unit
104+ }
105+
106+let W = {
107+ let r = getString(j)
108+ if ($isInstanceOf(r, "String"))
109+ then {
110+ let X = r
111+ split_4C(X, e)
112+ }
113+ else nil
114+ }
115+
116+let Y = {
117+ let r = getString(P(height))
118+ if ($isInstanceOf(r, "String"))
119+ then {
120+ let X = r
121+ split_4C(X, e)
122+ }
123+ else nil
124+ }
125+
126+func Z (z) = {
127+ let aa = getBinaryValue(y(z))
128+ let ab = drop(aa, 8)
129+ let ac = drop(ab, 8)
130+ let ad = toInt(take(aa, 8))
131+ let ae = toInt(take(ab, 8))
132+ let af = take(ac, f)
133+ let ag = takeRight(aa, g)
134+ $Tuple4(ad, ae, af, ag)
135+ }
136+
137+
138+func ah (B) = StringEntry(i, ((toString(height) + e) + toBase58String(B.bytes)))
139+
140+
141+let ai = {
142+ let aj = {
143+ let r = lastBlock.vrf
144+ if ($isInstanceOf(r, "ByteVector"))
145+ then {
146+ let ak = r
147+ ak
148+ }
149+ else lastBlock.generationSignature
150+ }
151+ func al (am,an) = {
152+ let ao = am
153+ let ap = ao._1
154+ let aq = ao._2
155+ let ar = ao._3
156+ let as = ao._4
157+ let at = addressFromStringValue(an)
158+ let au = wavesBalance(at).generating
159+ let av = p(at)
160+ if (if (if ((c > au))
161+ then true
162+ else (0 >= av))
163+ then true
164+ else (valueOrElse(getInteger(M(an)), a) > height))
165+ then am
166+ else {
167+ let aw = calculateDelay(at, av)
168+ if ((ap > aw))
169+ then $Tuple4(aw, an, (ar + av), (as :+ an))
170+ else $Tuple4(ap, aq, (ar + av), (as :+ an))
171+ }
172+ }
173+
174+ let ax = (W ++ Y)
175+ let ay = size(ax)
176+ let az = $Tuple4(a, "", 0, nil)
177+ func aA (aB,aC) = if ((aC >= ay))
178+ then aB
179+ else al(aB, ax[aC])
180+
181+ func aD (aB,aC) = if ((aC >= ay))
182+ then aB
183+ else throw("List size exceeds 50")
184+
185+ aD(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
186+ }
187+
188+let aE = ai._1
189+
190+let aF = ai._2
191+
192+let aG = ai._3
193+
194+let aH = ai._4
195+
196+let aI = {
197+ func aJ (aK,aL) = {
198+ let aM = aK
199+ let aN = aM._1
200+ let aO = aM._2
201+ let aP = aM._3
202+ if ((aN > (aG / 2)))
203+ then aK
204+ else {
205+ let z = fromBase16String(aL)
206+ let B = Address(Z(z)._4)
207+ if (containsElement(aP, B))
208+ then aK
209+ else {
210+ let aQ = p(B)
211+ $Tuple3((aN + aQ), z, (aP :+ B))
212+ }
213+ }
214+ }
215+
216+ func aR (H) = {
217+ let aS = valueOrElse(getString(G(R, H)), "")
218+ if ((aS == ""))
219+ then nil
220+ else split_4C(aS, e)
221+ }
222+
223+ let aT = valueOrElse(getInteger(I(R)), 0)
224+ let aU = (((aR(aT) ++ aR((aT - 1))) ++ aR((aT - 2))) ++ aR((aT - 3)))
225+ let aV = {
226+ let ax = aU
227+ let ay = size(ax)
228+ let az = $Tuple3(0, base58'', nil)
229+ func aA (aB,aC) = if ((aC >= ay))
230+ then aB
231+ else aJ(aB, ax[aC])
232+
233+ func aD (aB,aC) = if ((aC >= ay))
234+ then aB
235+ else throw("List size exceeds 200")
236+
237+ aD(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100), 101), 102), 103), 104), 105), 106), 107), 108), 109), 110), 111), 112), 113), 114), 115), 116), 117), 118), 119), 120), 121), 122), 123), 124), 125), 126), 127), 128), 129), 130), 131), 132), 133), 134), 135), 136), 137), 138), 139), 140), 141), 142), 143), 144), 145), 146), 147), 148), 149), 150), 151), 152), 153), 154), 155), 156), 157), 158), 159), 160), 161), 162), 163), 164), 165), 166), 167), 168), 169), 170), 171), 172), 173), 174), 175), 176), 177), 178), 179), 180), 181), 182), 183), 184), 185), 186), 187), 188), 189), 190), 191), 192), 193), 194), 195), 196), 197), 198), 199), 200)
238+ }
239+ let aW = aV._1
240+ let z = aV._2
241+ Z(z)._1
242+ }
243+
244+func aX (D) = {
245+ func aJ (aK,aY) = {
246+ let aZ = aK
247+ let aN = aZ._1
248+ let aP = aZ._2
249+ let B = addressFromStringValue(aY)
250+ if (containsElement(aP, B))
251+ then aK
252+ else {
253+ let aQ = p(B)
254+ $Tuple2((aN + aQ), (aP :+ B))
255+ }
256+ }
257+
258+ let ba = split_4C(getStringValue(J(D)), e)
259+ let bb = {
260+ let ax = ba
261+ let ay = size(ax)
262+ let az = $Tuple2(0, nil)
263+ func aA (aB,aC) = if ((aC >= ay))
264+ then aB
265+ else aJ(aB, ax[aC])
266+
267+ func aD (aB,aC) = if ((aC >= ay))
268+ then aB
269+ else throw("List size exceeds 100")
270+
271+ aD(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
272+ }
273+ let aQ = bb._1
274+ let bc = bb._2
275+ aQ
276+ }
277+
278+
279+func bd (B) = if ((toString(B) != aF))
280+ then throw(((((toBase58String(B.bytes) + " is not allowed to mine in ") + toString(height)) + " epoch. Expected ") + aF))
281+ else unit
282+
283+
284+func be (bf,bg) = {
285+ let r = bg
286+ if ($isInstanceOf(r, "Unit"))
287+ then unit
288+ else if ($isInstanceOf(r, "ByteVector"))
289+ then {
290+ let bh = r
291+ if ((bf == bh))
292+ then unit
293+ else throw(((("Expected a reference to the chain last block: " + toBase16String(bh)) + ". Got: ") + toBase16String(bf)))
294+ }
295+ else throw("Match error")
296+ }
297+
298+
299+func bi (D) = {
300+ let bj = getBinaryValue(E(D))
301+ (aI > Z(bj)._1)
302+ }
303+
304+
305+func bk (B) = {
306+ let r = getInteger(A(B.bytes))
307+ if ($isInstanceOf(r, "Int"))
308+ then {
309+ let bl = r
310+ if (if ((bl == R))
311+ then true
312+ else bi(bl))
313+ then unit
314+ else throw(("miner is mining other chain " + toString(bl)))
315+ }
316+ else unit
317+ }
318+
319+
320+func bm (B,D) = {
321+ let r = getInteger(A(B.bytes))
322+ if ($isInstanceOf(r, "Int"))
323+ then {
324+ let bl = r
325+ if ((bl == D))
326+ then unit
327+ else {
328+ let bn = getBinaryValue(E(D))
329+ let bo = getBinaryValue(E(bl))
330+ let bp = Z(bn)._1
331+ let bq = Z(bo)._1
332+ if ((bp > bq))
333+ then unit
334+ else throw(((((("miner is mining other chain " + toString(bl)) + ", height of the alt chain first block ") + toString(bp)) + " is not less than height of the miner active chain first block ") + toString(bq)))
335+ }
336+ }
337+ else unit
338+ }
339+
340+
341+func br (bf) = {
342+ let bs = Z(bf)._1
343+ if ((aI > bs))
344+ then throw(((("start height " + toString(bs)) + " is less than minimum height ") + toString(aI)))
345+ else unit
346+ }
347+
348+
349+func bt (Q) = if ((Q == height))
350+ then unit
351+ else throw(((("Expected block from epoch " + toString(height)) + ". Got ") + toString(Q)))
352+
353+
354+func bu () = if ((d > getIntegerValue(m)))
355+ then unit
356+ else throw("Max blocks number at epoch reached")
357+
358+
359+func bv (D,B) = {
360+ let bw = getStringValue(J(D))
361+ let bx = split(bw, e)
362+ if (containsElement(bx, toString(B)))
363+ then nil
364+ else [StringEntry(J(D), ((bw + e) + toString(B)))]
365+ }
366+
367+
368+@Callable(by)
369+func appendBlock (bz,bf) = {
370+ let bA = bu()
371+ if ((bA == bA))
372+ then if ((S != by.originCaller.bytes))
373+ then {
374+ let r = S
375+ if ($isInstanceOf(r, "ByteVector"))
376+ then {
377+ let bB = r
378+ throw(("not allowed to forge blocks in this epoch, expected from " + toBase58String(bB)))
379+ }
380+ else throw("not allowed to forge blocks in this epoch, epoch miner is absent")
381+ }
382+ else {
383+ let D = valueOrElse(getInteger(A(by.originCaller.bytes)), R)
384+ let bC = getBinaryValue(F(D))
385+ let bD = be(bf, bC)
386+ if ((bD == bD))
387+ then {
388+ let bE = valueOrElse(getInteger(C(D)), 0)
389+ let bF = (bE + 1)
390+ let bG = valueOrElse(getInteger(m), 0)
391+ let bH = (((toBytes(bF) + toBytes(height)) + bC) + by.originCaller.bytes)
392+[BinaryEntry(y(bz), bH), IntegerEntry(C(D), bF), BinaryEntry(F(D), bz), IntegerEntry(m, (bG + 1))]
393+ }
394+ else throw("Strict value is not equal to itself.")
395+ }
396+ else throw("Strict value is not equal to itself.")
397+ }
398+
399+
400+
401+@Callable(by)
402+func extendMainChain (bz,bf,Q) = {
403+ let bI = bt(Q)
404+ if ((bI == bI))
405+ then {
406+ let bJ = bd(by.originCaller)
407+ if ((bJ == bJ))
408+ then {
409+ let bK = bk(by.originCaller)
410+ if ((bK == bK))
411+ then {
412+ let bE = valueOrElse(getInteger(C(R)), 0)
413+ let bL = getBinary(F(R))
414+ let bM = be(bf, bL)
415+ if ((bM == bM))
416+ then {
417+ let bN = valueOrElse(getInteger(I(R)), 0)
418+ let bO = valueOrElse(getString(G(R, bN)), "")
419+ let bF = (bE + 1)
420+ let bP = if ((size(bO) >= h))
421+ then [IntegerEntry(I(R), (bN + 1)), StringEntry(G(R, (bN + 1)), toBase16String(bz))]
422+ else {
423+ let bQ = if ((bO == ""))
424+ then toBase16String(bz)
425+ else ((toBase16String(bz) + e) + bO)
426+[StringEntry(G(R, bN), bQ)]
427+ }
428+ let bj = {
429+ let r = bL
430+ if ($isInstanceOf(r, "ByteVector"))
431+ then {
432+ let bR = r
433+ nil
434+ }
435+ else [BinaryEntry(E(R), bz)]
436+ }
437+ let bH = (((toBytes(bF) + toBytes(height)) + bf) + by.originCaller.bytes)
438+ (([BinaryEntry(y(bz), bH), IntegerEntry(C(R), bF), BinaryEntry(F(R), bz), IntegerEntry(A(by.originCaller.bytes), R), ah(by.originCaller), IntegerEntry(m, 1)] ++ bj) ++ bP)
439+ }
440+ else throw("Strict value is not equal to itself.")
441+ }
442+ else throw("Strict value is not equal to itself.")
443+ }
444+ else throw("Strict value is not equal to itself.")
445+ }
446+ else throw("Strict value is not equal to itself.")
447+ }
448+
449+
450+
451+@Callable(by)
452+func startAltChain (bz,bf,Q) = {
453+ let bI = bt(Q)
454+ if ((bI == bI))
455+ then {
456+ let bM = br(bf)
457+ if ((bM == bM))
458+ then {
459+ let bJ = bd(by.originCaller)
460+ if ((bJ == bJ))
461+ then {
462+ let bK = bk(by.originCaller)
463+ if ((bK == bK))
464+ then {
465+ let bS = (valueOrElse(getInteger(l), 0) + 1)
466+ let bF = (Z(bf)._1 + 1)
467+ let bH = (((toBytes(bF) + toBytes(height)) + bf) + by.originCaller.bytes)
468+[BinaryEntry(y(bz), bH), BinaryEntry(E(bS), bz), BinaryEntry(F(bS), bz), StringEntry(G(bS, 0), toBase16String(bz)), IntegerEntry(C(bS), bF), IntegerEntry(A(by.originCaller.bytes), bS), ah(by.originCaller), StringEntry(J(bS), toString(by.originCaller)), IntegerEntry(m, 1), IntegerEntry(l, bS)]
469+ }
470+ else throw("Strict value is not equal to itself.")
471+ }
472+ else throw("Strict value is not equal to itself.")
473+ }
474+ else throw("Strict value is not equal to itself.")
475+ }
476+ else throw("Strict value is not equal to itself.")
477+ }
478+
479+
480+
481+@Callable(by)
482+func extendAltChain (D,bz,bf,Q) = {
483+ let bI = bt(Q)
484+ if ((bI == bI))
485+ then {
486+ let bJ = bd(by.originCaller)
487+ if ((bJ == bJ))
488+ then {
489+ let bK = bm(by.originCaller, D)
490+ if ((bK == bK))
491+ then {
492+ let bM = be(bf, getBinary(F(D)))
493+ if ((bM == bM))
494+ then {
495+ let bE = valueOrElse(getInteger(C(D)), 0)
496+ let bN = valueOrElse(getInteger(I(D)), 0)
497+ let bO = getStringValue(G(D, bN))
498+ let bF = (bE + 1)
499+ let bP = if ((size(bO) >= h))
500+ then [IntegerEntry(I(D), (bN + 1)), StringEntry(G(D, (bN + 1)), toBase16String(bz))]
501+ else {
502+ let bQ = ((toBase16String(bz) + e) + bO)
503+[StringEntry(G(D, bN), bQ)]
504+ }
505+ let bT = if ((aX(D) > (aG / 2)))
506+ then [IntegerEntry(k, D)]
507+ else nil
508+ let bH = (((toBytes(bF) + toBytes(height)) + bf) + by.originCaller.bytes)
509+ ((([BinaryEntry(y(bz), bH), BinaryEntry(F(D), bz), IntegerEntry(C(D), bF), ah(by.originCaller), IntegerEntry(A(by.originCaller.bytes), D), IntegerEntry(m, 1)] ++ bT) ++ bv(D, by.originCaller)) ++ bP)
510+ }
511+ else throw("Strict value is not equal to itself.")
512+ }
513+ else throw("Strict value is not equal to itself.")
514+ }
515+ else throw("Strict value is not equal to itself.")
516+ }
517+ else throw("Strict value is not equal to itself.")
518+ }
519+
520+
521+
522+@Callable(by)
523+func join (O) = {
524+ func bU (q) = {
525+ let r = getBinary(N(q))
526+ if ($isInstanceOf(r, "ByteVector"))
527+ then {
528+ let bV = r
529+ if ((bV == by.originCallerPublicKey))
530+ then unit
531+ else throw(((("L2 miner address " + q) + " is already linked with ") + toBase58String(bV)))
532+ }
533+ else unit
534+ }
535+
536+ if ((c > wavesBalance(by.originCaller).generating))
537+ then throw(((("Insufficient generating balance: " + toString(wavesBalance(by.originCaller).generating)) + ". Required: ") + toString(c)))
538+ else if ((size(O) != 20))
539+ then throw("rewardAddress should be an L2 address")
540+ else {
541+ func bW (bX,an) = if (bX)
542+ then true
543+ else (an == toString(by.originCaller))
544+
545+ let bY = {
546+ let ax = W
547+ let ay = size(ax)
548+ let az = false
549+ func aA (aB,aC) = if ((aC >= ay))
550+ then aB
551+ else bW(aB, ax[aC])
552+
553+ func aD (aB,aC) = if ((aC >= ay))
554+ then aB
555+ else throw("List size exceeds 50")
556+
557+ aD(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
558+ }
559+ if (bY)
560+ then nil
561+ else {
562+ let bZ = toString(by.originCaller)
563+ let ca = toBase16String(O)
564+ let bA = bU(ca)
565+ if ((bA == bA))
566+ then {
567+ func cb (aK,an) = {
568+ let cc = aK
569+ let cd = cc._1
570+ let ce = cc._2
571+ if ((an == bZ))
572+ then $Tuple2(cd, true)
573+ else $Tuple2((cd :+ an), ce)
574+ }
575+
576+ let cf = if ((size(W) == 0))
577+ then bZ
578+ else ((makeString_2C(W, e) + e) + bZ)
579+ let cg = {
580+ let ax = Y
581+ let ay = size(ax)
582+ let az = $Tuple2(nil, false)
583+ func ch (aB,aC) = if ((aC >= ay))
584+ then aB
585+ else cb(aB, ax[aC])
586+
587+ func ci (aB,aC) = if ((aC >= ay))
588+ then aB
589+ else throw("List size exceeds 50")
590+
591+ ci(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(ch(az, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
592+ }
593+ let cj = cg._1
594+ let ce = cg._2
595+ let ck = if ((cj != nil))
596+ then [StringEntry(P(height), makeString_2C(cj, e))]
597+ else if ((Y != nil))
598+ then [DeleteEntry(P(height))]
599+ else nil
600+ let cl = if (ce)
601+ then height
602+ else (height + 1)
603+ let cm = {
604+ let r = getBinary(K(bZ))
605+ if ($isInstanceOf(r, "ByteVector"))
606+ then {
607+ let cn = r
608+ if ((cn == O))
609+ then nil
610+ else [DeleteEntry(N(toBase16String(cn)))]
611+ }
612+ else nil
613+ }
614+ (([StringEntry(j, cf), IntegerEntry(M(bZ), cl), BinaryEntry(K(bZ), O), BinaryEntry(N(ca), by.originCallerPublicKey)] ++ ck) ++ cm)
615+ }
616+ else throw("Strict value is not equal to itself.")
617+ }
618+ }
619+ }
620+
621+
622+
623+@Callable(by)
624+func leave () = {
625+ let co = toString(by.originCaller)
626+ func cp (aK,an) = if ((an == co))
627+ then aK
628+ else (aK :+ an)
629+
630+ let cq = {
631+ let ax = W
632+ let ay = size(ax)
633+ let az = nil
634+ func aA (aB,aC) = if ((aC >= ay))
635+ then aB
636+ else cp(aB, ax[aC])
637+
638+ func aD (aB,aC) = if ((aC >= ay))
639+ then aB
640+ else throw("List size exceeds 50")
641+
642+ aD(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(aA(az, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
643+ }
644+ if ((S == by.originCaller.bytes))
645+ then throw("designated miner can't leave")
646+ else {
647+ let r = getInteger(M(co))
648+ if ($isInstanceOf(r, "Int"))
649+ then {
650+ let cr = r
651+ if ((cr > height))
652+ then [StringEntry(j, makeString_2C(cq, e)), DeleteEntry(M(co))]
653+ else {
654+ let cs = valueOrElse(getString(P(height)), "")
655+ let cj = if ((cs == ""))
656+ then co
657+ else ((cs + e) + co)
658+[StringEntry(j, makeString_2C(cq, e)), DeleteEntry(M(co)), StringEntry(P(height), cj)]
659+ }
660+ }
661+ else [StringEntry(j, makeString_2C(cq, e))]
662+ }
663+ }
664+
665+

github/deemru/w8io/6500d08 
57.33 ms