tx · GMyusQBqu7Txr3tZ7JNGdk9XvtCJw3eC29QHFHx9qzCQ

3Mp8Ho5tMT8763ehdYqbi7zPtbGDuqC6Wsd:  -0.01600000 Waves

2022.12.20 10:58 [2368341] smart account 3Mp8Ho5tMT8763ehdYqbi7zPtbGDuqC6Wsd > SELF 0.00000000 Waves

{ "type": 13, "id": "GMyusQBqu7Txr3tZ7JNGdk9XvtCJw3eC29QHFHx9qzCQ", "fee": 1600000, "feeAssetId": null, "timestamp": 1671523098004, "version": 2, "chainId": 84, "sender": "3Mp8Ho5tMT8763ehdYqbi7zPtbGDuqC6Wsd", "senderPublicKey": "AKGrXfFfmMqNYsJJoMcL5YZHfRhxau4pkJbVGKhx468Q", "proofs": [ "2mCMVykNj37QG75GJS3bedm6ppvNubuWV9ED8jeZ66Z9PAPCF1XbGFa2AHTkxodeE1CMqj3GgnMD1V99pwHsyf2R" ], "script": "base64:BgL4EQgCEgQKAggIEg4KDAgICAgICAgICAgICBINCgsICAgICAgICAgICBIGCgQICAgIEgQKAggIEgcKBQgBAQgBEgQKAggIEgQKAggIEgYKBAgICAgSBgoECAgICCIOZ2V0U3RyaW5nQnlLZXkiA2tleSIIdW5pdFRlc3QiCW9yYWNsZUZlZSIIc2lnbkRhcHAiC2ZlZVJlY2VpdmVyIgh1c2VyRGFwcCINd2hpdGVsaXN0RGFwcCILc2lnbkFzc2V0SWQiC3VzZG5Bc3NldElkIgx3YXZlc0Fzc2V0SWQiBWNocmlzIhlnZXRJbnRlZ2VyQnlLZXlGcm9tT3JhY2xlIg9nZXRJbnRlZ2VyQnlLZXkiDmNoZWNrV2hpdGVsaXN0Ig9nZXRCb29sZWFuQnlLZXkiB3NpZ25DdXQiC3VzZG5XYXZlQ3V0Ig5kZWZhdWx0TGljZW5jZSISZGVmYXVsdEhhc2hMaWNlbmNlIgtkYXBwUnVubmluZyIObWFpbnRlbmFuY2VNU0ciDXVzZXJTdXNwZW5kZWQiC3VzZXJSZW1vdmVkIhB1c2VyVW5yZWdpc3RlcmVkIgt1c2VyQWxsb3dlZCIZY3VycmVudENlcnRpZmljYXRpb25QcmljZSIUY2hlY2tTaWduQ2VydGlmaWNhdGUiBnNpZ25JRCIFT3duZXIiCnNoYTI1Nkhhc2giByRtYXRjaDAiAWEiC3ZhbGlkYXRlQ0lEIgNjaWQiDHZhbGlkYXRlSGFzaCIEaGFzaCINa2V5VXNlclN0YXR1cyIGY2FsbGVyIgdrZXlEYXRlIgVhcnRJZCIHa2V5TmFtZSIHa2V5RGVzYyINa2V5RGlzcGxheUNpZCINa2V5RXhwb3J0SGFzaCIMa2V5RXhwb3J0Q2lkIgprZXlNYXhNaW50IglrZXlTaWduSUQiCWtleUlzc3VlZCIJa2V5T25TYWxlIg5rZXlMaWNlbmNlSGFzaCINa2V5TGljZW5jZUNpZCIHa2V5VGFncyIHa2V5VHlwZSIHa2V5Tm90ZSIKa2V5Q3Jhd2xlciIIa2V5UHJpY2UiCmtleUVuZFNhbGUiEmtleUFzc2V0SWRBY2NlcHRlZCIHa2V5RmxhZyISa2V5QXJ0aXN0QWdlbnRBZGRyIgphcnRpc3RBZGRyIg9rZXlQcmltYXJ5U2hhcmUiEWtleUhhc2hCeVR4aWRBZGRyIgR0eGlkIg5rZXlPd25lckJ5SGFzaCINa2V5aWRCeVNpZ25pZCIGc2lnbklkIhJrZXlUeGlkQnlIYXNoT3duZXIiDnZhbGlkYXRlQWxsQ0lEIgpjaWREaXNwbGF5IgljaWRFeHBvcnQiCmNpZExpY2VuY2UiD3ZhbGlkYXRlQWxsSGFzaCIMc2hhMjU2RXhwb3J0Ig1zaGEyNTZMaWNlbmNlIg52YWxpZGF0ZVN0cmluZyIDc3RyIgNtYXgiDHZhbGlkYXRlVXNlciIKdXNlclN0YXR1cyIKc2V0TEljZW5jZSITdmFsaWRhdGVBcnR3b3JrRGF0YSIKbGljZW5jZUNJRCILbGljZW5jZUhhc2giBG5hbWUiC2Rlc2NyaXB0aW9uIgR0YWdzIgljaGVja1VzZXIiCWlzUGF5bWVudCIBaSIHcGF5bWVudCIGYW1vdW50Ig92YWxpZGF0ZVBheW1lbnQiCyR0MDgzOTE4NDI3Igdhc3NldElkIgtpc0FydE1pbnRlZCIJYWRkclRvVXNlIgFiIhR2YWxpZGF0ZVByaWNlQXNzZXRJZCIMcHJpY2VBc3NldElkIgxhcnR3b3JrUHJpY2UiCyR0MDkwMjA5MDU2IhBhY2NlcHRlZEFzc2V0SWRzIg92YWxpZGF0ZU1pblNlbGwiBXByaWNlIgxtaW5TZWxsV2F2ZXMiC21pblNlbGxVc2RuIgttaW5TZWxsU2lnbiINZ2V0QmlkQXNzZXRJZCIWZ2V0UHJpY2VBc3NldElkRnJvbUJpZCIKYmlkRGF0YUtleSIHYmlkRGF0YSIKYmlkRGF0YUFyciIJYmlkQW1vdW50IgpiaWRBc3NldElkIgxpZENhbGxlckRhdGUiB2J1eU1pbnQiBmlzc3VlciIFYmlkSWQiCGJpZE93bmVyIg0kdDAxMTI4MTExMzQwIgJpZCIEZGF0ZSIFaXNCaWQiCGJsb2NrRW5kIg5jYWxsZXJJc0lzc3VlciIIdG90YWxORlQiC2FydHdvcmtOYW1lIghpc09uU2FsZSIKYW1vdW50U29sZCIKbWF4Q2FuU2VsbCINJHQwMTMwOTExMzI1OCIFYWdlbnQiCmFnZW50U2hhcmUiDWlzV2hpdGVsaXN0ZWQiA2N1dCINYW1vdW50Rm9yU2lnbiIOYW1vdW50Rm9yQWdlbnQiEGFtb3VudEZvckNyZWF0b3IiDW5ld0Ftb3VudFNvbGQiCWlzc3VlTWV0YSIIaXNzdWVORlQiBWlkTkZUIgpzZWxsU3RhdHVzIgpyZWNlaXZlTkZUIgphc3NldElkQmlkIgliaWREZWxPbGQiCWJpZFVwZGF0ZSIHc29sZEtleSIJc29sZFZhbHVlIghzb2xkRGF0YSILY29tbWlzc2lvbnMiBmJ1eVJlcyIGaW52b2tlIgN2YWwiBHR5cGUiB2NyYXdsZXIiDSR0MDE3MDQzMTcwODYiDSR0MDE3MTg3MTcyNTYiD3ZhbGlkYXRlQXJ0d29yayINJHQwMTc0NzUxNzUxNyIKZW50cnlFeGlzdCIJaGFzaEV4aXN0Ig9pc1NpZ25DZXJ0aWZpZWQiDSR0MDIwMjQ5MjAzMTgiBGZsYWciBGFkZHIiBG5vdGUiDSR0MDIxNzQzMjE3NzciDSR0MDIyMjEzMjIyNDciDGRhdGFUb0RlbGV0ZSIHbWF4TWludCINJHQwMjUwMTQyNTA0OCIGYmlkTmJyIgpiYXNlSGVpZ2h0Ig0kdDAyNzMwNTI3MzQ1Ig0kdDAyNzM1MDI3Mzg2Ig0kdDAyODgxMzI4ODc0Ig1yZXR1cm5Nb25leVRvIgliaWRTdGF0dXNIAQFhAQFiCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAWICAAABYwcAAWQJAQV2YWx1ZQEJAKYIAQkBAWEBAg9jb25mX29yYWNsZV9mZWUAAWUJAQV2YWx1ZQEJAKYIAQkBAWEBAhFjb25mX3NpZ253ZWJfZGFwcAABZgkBAWEBAhFjb25mX2ZlZV9yZWNlaXZlcgABZwMFAWMJAQV2YWx1ZQEJAKYIAQIjM010NFJHTUV5alNXWUFvY1RQcWQ1NXdkSFFRQjNQVTJVQ20JAQV2YWx1ZQEJAKYIAQkBAWEBAg9jb25mX3VzZXJzX2RhcHAAAWgJAQV2YWx1ZQEJAKYIAQkBAWEBAhNjb25mX3doaXRlbGlzdF9kYXBwAAFpCQDZBAEJAQFhAQIYY29uZl9hY2NlcHRlZF9hc3NldF9TSUdOAAFqCQDZBAEJAQFhAQIYY29uZl9hY2NlcHRlZF9hc3NldF9VU0ROAAFrAQAAAWwJAQFhAQIMY29uZl9hZG1pbl8xAQFtAQFiCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBZAUBYgIfSW50ZWdlciB1bmRlZmluZSBvciAwIGluIG9yYWNsZQEBbgEBYgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFiAAABAW8BAWIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBaAUBYgAAAQFwAQFiCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFAWIHAAFxAAcAAXIACgABcwkBAWEBAhRjb25mX2RlZmF1bHRfbGljZW5jZQABdAkBAWEBAhljb25mX2RlZmF1bHRfbGljZW5jZV9oYXNoAAF1CQELdmFsdWVPckVsc2UCCQCbCAIFAWcCFGNvbmZfZGFwcF9pc19ydW5uaW5nBgABdgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQFnAhRjb25mX21haW50ZW5hbmNlX21zZwIAAAF3AglTVVNQRU5ERUQAAXgCB1JFTU9WRUQAAXkCDFVOUkVHSVNURVJFRAABegIHQUxMT1dFRAABQQkBAW0BCQCsAgICEmNlcnRpZmljYXRpb25fZmVlXwkA2AQBBQFpAQFCAwFDAUQBRQQBRgkAnQgCBQFlCQCsAgIJAKwCAgkArAICAghkYXRhX2ZjXwUBQwIBXwUBRAMJAAECBQFGAgZTdHJpbmcEAUcFAUYDCQEIY29udGFpbnMCBQFHBQFFBgcHAQFIAQFJAwkBCGNvbnRhaW5zAgUBSQIBLwMDCQBmAgBMCQCxAgEFAUkJAAACCQCxAgEJAJEDAgkAtQkCBQFJAgEvAAAAOwcJAGYCABAJALECAQkAkQMCCQC1CQIFAUkCAS8AAQcHAQFKAQFLCQAAAgkAsQIBBQFLAEABAUwBAU0JAKwCAgIMdXNlcl9zdGF0dXNfBQFNAQFOAgFNAU8JAKwCAgkArAICCQCsAgICCWFydF9kYXRlXwUBTwIBXwUBTQEBUAIBTQFPCQCsAgIJAKwCAgkArAICAglhcnRfbmFtZV8FAU8CAV8FAU0BAVECAU0BTwkArAICCQCsAgIJAKwCAgIJYXJ0X2Rlc2NfBQFPAgFfBQFNAQFSAgFNAU8JAKwCAgkArAICCQCsAgICEGFydF9kaXNwbGF5X2NpZF8FAU8CAV8FAU0BAVMCAU0BTwkArAICCQCsAgIJAKwCAgIQYXJ0X2V4cG9ydF9oYXNoXwUBTwIBXwUBTQEBVAIBTQFPCQCsAgIJAKwCAgkArAICAg9hcnRfZXhwb3J0X2NpZF8FAU8CAV8FAU0BAVUCAU0BTwkArAICCQCsAgIJAKwCAgIMYXJ0X21heG1pbnRfBQFPAgFfBQFNAQFWAgFNAU8JAKwCAgkArAICCQCsAgICC2FydF9zaWduaWRfBQFPAgFfBQFNAQFXAgFNAU8JAKwCAgkArAICCQCsAgICC2FydF9pc3N1ZWRfBQFPAgFfBQFNAQFYAgFNAU8JAKwCAgkArAICCQCsAgICC2FydF9vbnNhbGVfBQFPAgFfBQFNAQFZAgFNAU8JAKwCAgkArAICCQCsAgICEWFydF9saWNlbmNlX2hhc2hfBQFPAgFfBQFNAQFaAgFNAU8JAKwCAgkArAICCQCsAgICEGFydF9saWNlbmNlX2NpZF8FAU8CAV8FAU0BAmFhAgFNAU8JAKwCAgkArAICCQCsAgICCWFydF90YWdzXwUBTwIBXwUBTQECYWICAU0BTwkArAICCQCsAgIJAKwCAgIJYXJ0X3R5cGVfBQFPAgFfBQFNAQJhYwIBTQFPCQCsAgIJAKwCAgkArAICAglhcnRfbm90ZV8FAU8CAV8FAU0BAmFkAgFNAU8JAKwCAgkArAICCQCsAgICEGFydF9jcmF3bGVyX2NpZF8FAU8CAV8FAU0BAmFlAgFNAU8JAKwCAgkArAICCQCsAgICCmFydF9wcmljZV8FAU8CAV8FAU0BAmFmAgFNAU8JAKwCAgkArAICCQCsAgICDGFydF9lbmRzYWxlXwUBTwIBXwUBTQECYWcCAU0BTwkArAICCQCsAgIJAKwCAgISYXJ0X2Fzc2V0QWNjZXB0ZWRfBQFPAgFfBQFNAQJhaAIBTQFPCQCsAgIJAKwCAgkArAICAglhcnRfZmxhZ18FAU8CAV8FAU0BAmFpAQJhagkArAICAg1hcnRpc3RfYWdlbnRfBQJhagECYWsBAmFqCQCsAgICFWFydGlzdF9hZ2VudF9wcmltYXJ5XwUCYWoBAmFsAgFNAmFtCQCsAgIJAKwCAgkArAICAhNnZXRfaGFzaGJ5dHhpZGFkZHJfBQJhbQIBXwUBTQECYW4BAUUJAKwCAgISZ2V0X293bmVyX2J5X2hhc2hfBQFFAQJhbwIBTQJhcAkArAICCQCsAgIJAKwCAgISZ2V0X2FydGlkYnlzaWduaWRfBQJhcAIBXwUBTQECYXECAUUBTQkArAICAhdnZXRfdHhpZF9ieV9oYXNoX293bmVyXwkA2AQBCQDUFgEJAJsDAQkArAICBQFFBQFNAQJhcgMCYXMCYXQCYXUDCQEBIQEJAQFIAQUCYXMJAAIBAhFXcm9uZyBEaXNwbGF5IENJRAMJAQEhAQkBAUgBBQJhdAkAAgECEFdyb25nIEV4cG9ydCBDSUQDAwkBAiE9AgUCYXUCAAkBASEBCQEBSAEFAmF1BwkAAgECEVdyb25nIExpY2VuY2UgQ0lEBgECYXYCAmF3AmF4AwkBASEBCQEBSgEFAmF3CQACAQIYRXhwb3J0IEhhc2ggNjQgY2hhci4gbWF4AwkBASEBCQEBSgEFAmF4CQACAQIZTGljZW5jZSBIYXNoIDY0IGNoYXIuIG1heAYBAmF5AgJhegJhQQMJAAACCQCxAgEFAmF6AAAJAAIBAhhGaWVsZCBjYW5ub3QgYmUgaXMgZW1wdHkDCQBmAgkAsQIBBQJhegUCYUEJAAIBCQCsAgIFAmF6AgwgaXMgdG9vIGxvbmcGAQJhQgEBTQQCYUMJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUBZwkBAUwBBQFNBQF5AwMJAAACBQJhQwUBeQYJAAACBQJhQwUBegIuUmVnaXN0ZXIgdGhpcyBhY2NvdW50IGZpcnN0IHdpdGggIkFjY291bnQiIHRhYgMJAAACBQJhQwUBdwIRQWNjb3VudCBzdXNwZW5kZWQDCQAAAgUCYUMFAXgCD0FjY291bnQgcmVtb3ZlZAIAAQJhRAICYXUCYXgEAUkDCQAAAgkAsQIBBQJhdQAABQFzBQJhdQQBSwMJAAACCQCxAgEFAmF4AAAFAXQFAmF4CQCUCgIFAUkFAUsBAmFFCQFNAmFzAmF0AmFGAmF3AmFHAmFIAmFJAmFKBAJhSwkBAmFCAQUBTQMJAQIhPQIFAmFLAgAJAAIBBQJhSwMJAAACCQCxAgEFAmFzAAAJAAIBAhtEaXNwbGF5IENJRCBjYW5ub3QgYmUgZW1wdHkDCQEBIQEJAQJhcgMFAmFzBQJhdAUCYUYJAAIBAhBQcm9ibGVtIHdpdGggQ0lEAwkBASEBCQECYXYCBQJhdwUCYUcJAAIBAhNQcm9ibGVtIHdpdGggSGFzaGVzAwkBASEBCQECYXkCBQJhSABkCQACAQISMTAwIENoYXIuIG1heCBuYW1lAwkBASEBCQECYXkCBQJhSQDoBwkAAgECGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkAZgIJAJADAQkAtQkCBQJhSgIBLAAFCQACAQILNSB0YWdzIG1heC4CAAECYUwBAmFNAwkAAAIJAJADAQgFAmFNCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAJhTgkBBXZhbHVlAQkAkQMCCAUCYU0IcGF5bWVudHMAAAQCYU8JAQV2YWx1ZQEIBQJhTgZhbW91bnQJAJQKAgUCYU4FAmFPAQJhUAECYU0EAmFRCQECYUwBBQJhTQQCYU4IBQJhUQJfMQQCYU8IBQJhUQJfMgQCYVIDAwkBCWlzRGVmaW5lZAEIBQJhTgdhc3NldElkCQAAAggFAmFOB2Fzc2V0SWQFAWkHCAUCYU4HYXNzZXRJZAkAAgECK09ubHkgU0lHTiB0b2tlbiBhY2NlcHRlZCBhcyB0cmFuc2FjdGlvbiBmZWUDCQECIT0CBQJhTwUBQQkAAgEJAKwCAgIZUGF5bWVudCBhbW91bnQgc2hvdWxkIGJlIAkApAMBBQFBCQCUCgIFAmFPBQJhUgECYVMCAmFUAU8EAUYJAJoIAgUEdGhpcwkBAVcCBQJhVAUBTwMJAAECBQFGAgNJbnQEAmFVBQFGAwkBAiE9AgUCYVUAAAYHBwECYVYDAmFNAmFXAmFYBAJhWQkBAmFMAQUCYU0EAmFOCAUCYVkCXzEEAmFPCAUCYVkCXzIEAmFSAwkBASEBCQEJaXNEZWZpbmVkAQgFAmFOB2Fzc2V0SWQFBHVuaXQDAwkAZgIJALECAQUCYVcAAAkAAAIJANgEAQkBBXZhbHVlAQgFAmFOB2Fzc2V0SWQFAmFXBwgFAmFOB2Fzc2V0SWQJAAIBAg5Xcm9uZyBhc3NldCBpZAMDCQAAAgUCYVIFBHVuaXQJAQIhPQIFAmFXAgAHCQACAQIOV3JvbmcgYXNzZXQgaWQDCQECIT0CBQJhWAUCYU8JAAIBAhNQYXltZW50IGRvbid0IG1hdGNoCQCUCgIFAmFPBQJhUgECYVoBAmFSAwMDAwkBAiE9AgUCYVIJANgEAQUBaQkBAiE9AgUCYVIJANgEAQUBawcJAQIhPQIFAmFSAgVXQVZFUwcJAQIhPQIFAmFSCQDYBAEFAWoHCQACAQIhT25seSBTSUdOLCBVU0ROIG9yIFdBVkVTIGFjY2VwdGVkBgECYmECAmFSAmJiBAJiYwMFAWMACgkBAW0BAg53YXZlc19taW5fc2VsbAQCYmQAwIQ9BAJiZQMFAWMAAQkAaAIFAUEAAgMDAwMDCQAAAgUCYVIJANgEAQUBagkAZgIFAmJkBQJiYgcJAQIhPQIFAmJiAAAHBgMDCQAAAgUCYVIJANgEAQUBaQkAZgIFAmJlBQJiYgcJAQIhPQIFAmJiAAAHBgMDAwkAAAIFAmFSCQDYBAEFAWsGCQAAAgUCYVICBVdBVkVTCQBmAgUCYmMFAmJiBwkBAiE9AgUCYmIAAAcJAAIBAhhXcm9uZyBtaW5pbXVtIHNlbGwgcHJpY2UGAQJiZgECYVIDCQAAAgUCYVICBVdBVkVTBQR1bml0CQDZBAEFAmFSAQJiZwECYmgEAmJpCQEBYQEJAKwCAgUCYmgCBV9PUEVOAwkAAAIFAmJpAgAJAAIBAg1CaWQgbm90IGZvdW5kBAJiagkAtQkCBQJiaQIBXwQCYmsJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJiagABBAJibAkBAmJmAQkAkQMCBQJiagAAAwkAZwIAAAUCYmsJAAIBAgxXcm9uZyBhbW91bnQJAJQKAgUCYmsFAmJsAQJibQECYU0DCQEBIQEFAXUJAAIBBQF2CQCVCgMJANgEAQgFAmFNDXRyYW5zYWN0aW9uSWQJANgEAQgIBQJhTQZjYWxsZXIFYnl0ZXMIBQlsYXN0QmxvY2sJdGltZXN0YW1wAQJibgUCYU0BTwJibwJicAJicQQCYnIJAQJibQEFAmFNBAJicwgFAmJyAl8xBAFNCAUCYnICXzIEAmJ0CAUCYnICXzMEAmJ1AwMDCQAAAgkA2AQBCAgFAmFNBmNhbGxlcgVieXRlcwUCYm8JAQIhPQIFAmJxAgAHCQECIT0CBQJicAIABwYHBAJidgkBAW4BCQECYWYCBQFNBQFPAwMDCQECIT0CBQJidgAACQBnAgUGaGVpZ2h0BQJidgcJAQEhAQUCYnUHCQACAQILU2FsZSBlbmRlZC4EAmJ3CQAAAgkA2AQBCAgFAmFNBmNhbGxlcgVieXRlcwUCYm8EAmJ4CQEBbgECEHRvdGFsX25mdF9pc3N1ZWQEAUMJAQFhAQkBAVYCBQJibwUBTwQCYnkJAQFhAQkBAVACBQJibwUBTwMJAAACBQJieQIACQACAQIRQXJ0IGRvZXNuJ3QgZXhpc3QEAmJ6CQEBcAEJAQFYAgUCYm8FAU8EAmJBCQEBbgEJAQFXAgUCYm8FAU8EAmFYAwUCYncJAGgCBQFBAAIJAQFuAQkBAmFlAgUCYm8FAU8EAmFXAwUCYncJANgEAQUBaQkBAWEBCQECYWcCBQJibwUBTwQCYkIJAQFuAQkBAVUCBQJibwUBTwMDAwkBASEBBQJidQkBASEBBQJidwcDAwkAZwIAAAUCYVgGCQEBIQEFAmJ6BgkAZwIAAAUCYkIHCQACAQIQQXJ0IG5vdCBmb3Igc2FsZQMDAwkBASEBBQJidQUCYncHCQBnAgAABQJiQgcJAAIBAhRNYXggaXNzdWFibGUgbm90IHNldAQCYUsJAQJhQgEFAmJvAwMFAmJ1CQECIT0CBQJhSwIABwkAAgEFAmFLBAJiaAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgRiaWRfBQFPAgFfBQJibwIBXwUCYnECAV8FAmJwBAJiQwMFAmJ1CQECYmcBBQJiaAkBAmFWAwUCYU0FAmFXBQJhWAQCYU8IBQJiQwJfMQQCYVIIBQJiQwJfMgQCYkQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUBZwkBAmFpAQUCYm8FAWYEAmJFCQELdmFsdWVPckVsc2UCCQCaCAIFAWcJAQJhawEFAmJvAAAEAmJGCQEBbwEFAmJvBAJiRwMJAGYCBQJiRgUGaGVpZ2h0AAADCQAAAgUCYVIFAWkFAXEFAXIEAmJICQBrAwUCYU8FAmJHAGQEAmJJAwMDCQECIT0CBQJiRAUBZgkAZgIFAmJFAAAHCQBmAgUGaGVpZ2h0BQJiRgcJAGsDBQJhTwUCYkUAZAAABAJiSgkAZQIFAmFPBQJiSAMJAAACBQJiQQUCYkIJAAIBAgxBcnQgc29sZCBvdXQEAmJLCQBkAgUCYkEAAQQCYkwJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglDcmVhdG9yOiAFAmJvAgosCiBBcnRJRDogBQFPAgssCiBTaWduSUQ6IAUBQwIRLAogQXJ0d29yayBuYW1lOiAFAmJ5AgosCiBJc3N1ZTogCQCkAwEFAmJLAgEvCQCkAwEFAmJCBAJiTQkAwggFCQCsAgICA1NBXwkApAMBCQBkAgUCYngAAQUCYkwAAQAABwQCYk4JALgIAQUCYk0EAmJPAwMJAAACBQJiSwUCYkIGCQEBIQEFAmJ6BwYEAmJQAwMDCQAAAgUBTQUCYm8JAQIhPQIFAmJxAgAHCQECIT0CBQJicAIABwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYnEIBQJhTQZjYWxsZXIEAmJRAwkBASEBCQEJaXNEZWZpbmVkAQUCYVICBVdBVkVTCQDYBAEJAQV2YWx1ZQEFAmFSBAJiaQkBAWEBCQCsAgIFAmJoAgVfT1BFTgQCYlIJAQtEZWxldGVFbnRyeQEJAKwCAgUCYmgCBV9PUEVOBAJiUwkBC1N0cmluZ0VudHJ5AgkArAICBQJiaAIHX0NMT1NFRAkArAICCQCsAgIFAmJpAgFfCQCkAwEFAmJ0BAJiVAkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglhcnRfc29sZF8JAKQDAQUCYksCBF9vZl8JAKQDAQUCYkICAV8FAU8CAV8FAmJvBAJiVQMJAQEhAQUCYnUJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUBTQIBXwkApAMBBQJidAIBXwUCYnMCAV8JAKQDAQUCYVgCAV8FAmFXAgFfCQDYBAEFAmJOCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKUIAQUCYlACAV8JAKQDAQUCYnQCAV8FAmJzAgFfCQCkAwEFAmFPAgFfBQJiUQIBXwkA2AQBBQJiTgQCYlYJAQtTdHJpbmdFbnRyeQIFAmJUBQJiVQQCYlcDCQECIT0CBQJiSQAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQFmCQBlAgUCYkgFAmJJBQJhUgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUCYkQFAmJJBQJhUgUDbmlsCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQFmBQJiSAUCYVIFA25pbAQCYlgJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcCBQJibwUBTwUCYksJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICAgRuZnRfCQDYBAEFAmJOBQJiVAkAzAgCCQEMSW50ZWdlckVudHJ5AgIQdG90YWxfbmZ0X2lzc3VlZAkAZAIFAmJ4AAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZgIFAmJvBQFPAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFYAgUCYm8FAU8FAmJPCQDMCAIFAmJNCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQJibwUCYkoFAmFSCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJQAAEFAmJOBQNuaWwFAmJXAwUCYnUJAMwIAgUCYlYJAMwIAgUCYlMJAMwIAgUCYlIFAmJYCQDMCAIFAmJWBQJiWAoCYlkBB3NldENvbmYCAWICYloEAU0JAKUIAQgFAmJZBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFAWwJAMwIAgkApQgBBQR0aGlzBQNuaWwFAU0DCQEIY29udGFpbnMCBQFiAgVjb25mXwkAzAgCCQELU3RyaW5nRW50cnkCBQFiBQJiWgUDbmlsCQACAQIgRW50cmllcyBzdGFydGluZyB3aXRoIGNvbmZfIG9ubHkJAAIBAiJZb3UgYXJlIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSB0aGlzAmFNAQphZGRBcnR3b3JrDAFFAUMCYUgCYUkCYUoCY2ECYXMCYXcCYXQCYXgCYXUCY2IEAmNjCQECYm0BBQJhTQQBTwgFAmNjAl8xBAFNCAUCY2MCXzIEAmJ0CAUCY2MCXzMDCQEBIQEJAQFKAQUBRQkAAgECJEhhc2ggc2hvdWxkIGJlIDY0IGNoYXJhY3RlcnMgbWF4aW11bQQCY2QJAQJhRAIFAmF1BQJheAQCYUYIBQJjZAJfMQQCYUcIBQJjZAJfMgQCY2UJAQJhRQkFAU0FAmFzBQJhdAUCYUYFAmF3BQJhRwUCYUgFAmFJBQJhSgMJAQIhPQIFAmNlAgAJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEEAmNmCQECYVABBQJhTQQCYU8IBQJjZgJfMQQCYVIIBQJjZgJfMgMJAQEhAQkBCWlzRGVmaW5lZAEFAmFPCQACAQIUU29tZXRoaW5nIHdlbnQgd3JvbmcEAmNnCQEBYQEJAQJhcQIFAUUFAU0DCQECIT0CBQJjZwIACQACAQIUWW91IGFscmVhZHkgYWRkZWQgaXQEAmNoCQEBYQEJAQJhbgEFAUUDCQECIT0CBQJjaAIACQACAQIXSGFzaCBhbHJlYWR5IHJlZ2lzdGVyZWQEAmNpCQEBQgMFAUMFAU0FAUUDCQEBIQEFAmNpCQACAQIsU2lnbiBDZXJ0aWZpY2F0ZSBub3QgZm91bmQgZm9yIHRoaXMgYWRkcmVzcy4JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFuAQUBRQUBTQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXECBQFFBQFNBQFPCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBTgIFAU0FAU8FAmJ0CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFQAgUBTQUBTwUCYUgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVECBQFNBQFPBQJhSQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgIFAU0FAU8FAmFzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFUAgUBTQUBTwUCYXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAVMCBQFNBQFPBQJhdwkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQIFAU0FAU8FAmFHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFaAgUBTQUBTwUCYUYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAgUBTQUBTwUCY2EJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFhAgUBTQUBTwUCYUoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAgUBTQUBTwAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFWAgUBTQUBTwUBQwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAVcCBQFNBQFPAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFYAgUBTQUBTwcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFvAgUBTQUBQwUBTwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWwCBQFNBQFPBQFFCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIFAU0FAU8FAmNiCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQFmBQJhTwUCYVIFA25pbAJhTQENdXBkYXRlQXJ0d29yawsCYW0CYUgCYUkCYUoCY2ECYXMCYXcCYXQCYXgCYXUCY2IDCQEBIQEFAXUJAAIBBQF2BAFNCQDYBAEICAUCYU0GY2FsbGVyBWJ5dGVzBAJjagkBAmFEAgUCYXUFAmF4BAJhRggFAmNqAl8xBAJhRwgFAmNqAl8yBAJjZQkBAmFFCQUBTQUCYXMFAmF0BQJhRgUCYXcFAmFHBQJhSAUCYUkFAmFKAwkBAiE9AgUCY2UCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQCY2cJAQFhAQkBAVACBQFNBQJhbQMJAAACBQJjZwIACQACAQIPRW50cnkgbm90IGZvdW5kBAJjawkBAWEBCQECYWgCBQFNBQJhbQMJAAACBQJjawIHSUxMRUdBTAkAAgECHUNhbm5vdCB1cGRhdGUgSUxMRUdBTCBhcnR3b3JrAwkBASEBCQECYVMCBQFNBQJhbQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUAIFAU0FAmFtBQJhSAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUQIFAU0FAmFtBQJhSQkAzAgCCQELU3RyaW5nRW50cnkCCQEBUgIFAU0FAmFtBQJhcwkAzAgCCQELU3RyaW5nRW50cnkCCQEBVAIFAU0FAmFtBQJhdAkAzAgCCQELU3RyaW5nRW50cnkCCQEBUwIFAU0FAmFtBQJhdwkAzAgCCQELU3RyaW5nRW50cnkCCQEBWgIFAU0FAmFtBQJhRgkAzAgCCQELU3RyaW5nRW50cnkCCQEBWQIFAU0FAmFtBQJhRwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWECBQFNBQJhbQUCYUoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFiAgUBTQUCYW0FAmNhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZAIFAU0FAmFtBQJjYgUDbmlsCQACAQIOQWxyZWFkeSBtaW50ZWQCYU0BC2ZsYWdBcnR3b3JrBAFPAmNsAmNrAmNtBAJjbgkBAmJtAQUCYU0EAmJzCAUCY24CXzEEAU0IBQJjbgJfMgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFAWwJAMwIAgkApQgBBQR0aGlzBQNuaWwFAU0DCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAgdDT05TRU5UCQDMCAICAAkAzAgCAg9DSEFOR0VfUkVRVUlSRUQJAMwIAgIHRkxBR0dFRAkAzAgCAgdJTExFR0FMBQNuaWwFAmNrCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaAIFAmNsBQFPBQJjawkAzAgCCQELU3RyaW5nRW50cnkCCQECYWMCBQJjbAUBTwUCY20FA25pbAkAAgEJAKwCAgIOVW5rbm93IHN0YXR1cyAFAmNrCQACAQITWW91IGFyZSBub3QgYWxsb3dlZAJhTQENZGVsZXRlQXJ0d29yawIBTwJjbAQCY28JAQJibQEFAmFNBAJicwgFAmNvAl8xBAFNCAUCY28CXzIEAmFUAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUBbAkAzAgCCQClCAEFBHRoaXMFA25pbAUBTQUCY2wFAU0EAmNnCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQFhAQkBAVACBQJhVAUBTwIgTm8gYXJ0IG1hdGNoaW5nIGZvciB0aGlzIGFkZHJlc3MDCQAAAgUCY2cCAAkAAgECIE5vIGFydCBtYXRjaGluZyBmb3IgdGhpcyBhZGRyZXNzBAFFCQEBYQEJAQJhbAIFAmFUBQFPAwkAAAIFAUUCAAkAAgECJU5vIGFydCBoYXNoIG1hdGNoaW5nIGZvciB0aGlzIGFkZHJlc3MEAUMJAQFhAQkBAVYCBQJhVAUBTwMJAAACBQFDAgAJAAIBAhNObyBTSUdOIElEIG1hdGNoaW5nBAJjcAkAzAgCCQELRGVsZXRlRW50cnkBCQEBTgIFAmFUBQFPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFQAgUCYVQFAU8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVECBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQEBUgIFAmFUBQFPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFUAgUCYVQFAU8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVMCBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQEBWQIFAmFUBQFPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFaAgUCYVQFAU8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFiAgUCYVQFAU8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFhAgUCYVQFAU8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVUCBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQEBVgIFAmFUBQFPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFXAgUCYVQFAU8JAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAVgCBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQECYWgCBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQECYWUCBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQECYWcCBQJhVAUBTwkAzAgCCQELRGVsZXRlRW50cnkBCQECYW4BBQFFCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhbwIFAmFUBQFDCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhcQIFAUUFAmFUCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZgIFAmFUBQFPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhYwIFAmFUBQFPCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZAIFAmFUBQFPBQNuaWwDCQEBIQEJAQJhUwIFAmFUBQFPAwkBASEBBQF1CQACAQUBdgUCY3ADCQEPY29udGFpbnNFbGVtZW50AgkAzAgCBQFsCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQFNBQJjcAkAAgECKEFydCBhbHJlYWR5IG1pbnRlZCwgeW91IGNhbm5vdCBkZWxldGUgaXQCYU0BC3NlbGxBcnR3b3JrBQFPAmJiAmNxAmFSAmJ2BAJjcgkBAmJtAQUCYU0EAmJzCAUCY3ICXzEEAU0IBQJjcgJfMgQCYnkJAQFhAQkBAVACBQFNBQFPAwkAAAIFAmJ5AgAJAAIBAiNUaGlzIGFydCBkb2Vzbid0IG1hdGNoIHlvdXIgYWNjb3VudAQCY2sJAQFhAQkBAmFoAgUBTQUBTwMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICD0NIQU5HRV9SRVFVSVJFRAkAzAgCAgdGTEFHR0VECQDMCAICB0lMTEVHQUwFA25pbAUCY2sJAAIBAg9GbGFnZ2VkIGFydHdvcmsEAmNzCQEBbgEJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQFPAwkAZgIAAAUCYnYJAAIBAgxOZWdhdGl2ZSBlbmQDAwkAZgIFAmJ2AAADCQECIT0CBQJjcQABBgkBAiE9AgUCYmIAAAcJAAIBAjpUaW1lZCBvZmZlciBvbmx5IGFsbG93ZWQgZm9yIHVuaXF1ZSBlZGl0aW9uIGFuZCBvZmZlciBvbmx5BAJjdAMJAAACBQJidgAAAAAFBmhlaWdodAMJAQEhAQkBAmFaAQUCYVIJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEDCQEBIQEJAQJiYQIFAmFSBQJiYgkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQCYUsJAQJhQgEFAU0DCQECIT0CBQJhSwIACQACAQUCYUsEAmJBCQEBbgEJAQFXAgUBTQUBTwQCYkIJAQFuAQkBAVUCBQFNBQFPAwkAZgIFAmNxAGQJAAIBAhwxMDAgZWRpdGlvbnMgbWF4IHBlciBhcnR3b3JrAwMJAQIhPQIFAmJBAAAJAAACBQJiQQUCYkIHCQACAQIUTWF4IGVkaXRpb24gcmVhY2hlZC4DAwkAZgIFAmJBAAAJAQIhPQIFAmJCBQJjcQcJAAIBAiZDYW5ub3QgY2hhbmdlIG1heGltdW0gaXNzdWFibGUgYW55bW9yZQMDCQBmAgUCY3MAAAkBAiE9AgUCYkIFAmNxBwkAAgECMUNhbm5vdCBjaGFuZ2UgbWF4aW11bSBpc3N1YWJsZSB3aXRoIGFjdGl2ZSBvcmRlcnMEAmJPAwMJAGYCBQJiYgAACQBmAgUCY3EAAAcGBwkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAVgCBQFNBQFPBQJiTwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFlAgUBTQUBTwUCYmIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFVAgUBTQUBTwUCY3EJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAgUBTQUBTwUCYVIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZgIFAU0FAU8JAGQCBQJjdAUCYnYFA25pbAJhTQEKYnV5QXJ0d29yawIBTwJibwkBAmJuBQUCYU0FAU8FAmJvAgACAAJhTQEGc2V0QmlkAgFPAmJvBAJjdQkBAmJtAQUCYU0EAmJzCAUCY3UCXzEEAU0IBQJjdQJfMgQCYnQIBQJjdQJfMwQCY3YJAQJhTAEFAmFNBAJhTggFAmN2Al8xBAJhTwgFAmN2Al8yBAJhUgMJAQEhAQkBCWlzRGVmaW5lZAEIBQJhTgdhc3NldElkAgVXQVZFUwkA2AQBCQEFdmFsdWUBCAUCYU4HYXNzZXRJZAQCYnYJAQFuAQkBAmFmAgUCYm8FAU8DAwkBAiE9AgUCYnYAAAkAZwIFBmhlaWdodAUCYnYHCQACAQILU2FsZSBlbmRlZC4EAmNzCQEBbgEJAKwCAgISY3VycmVudF9iaWRhbW91bnRfBQFPAwkBASEBCQECYVoBBQJhUgkAAgECEmFzc2V0IG5vdCBhY2NlcHRlZAMJAQEhAQkBAmJhAgUCYVIFAmFPCQACAQIOV3JvbmcgbWluIHNlbGwEAmJBCQEBbgEJAQFXAgUCYm8FAU8EAmJCCQEBbgEJAQFVAgUCYm8FAU8DCQBnAgAABQJiQgkAAgECI05vIG1heCBlZGl0aW9uIHNldCBmb3IgdGhpcyBhcnR3b3JrAwkAZwIFAmJBBQJiQgkAAgECGFNvbGQgb3V0LCB5b3UgY2Fubm90IGJpZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIEYmlkXwUBTwIBXwUCYm8CAV8FAU0CAV8FAmJzAgVfT1BFTgkArAICCQCsAgIJAKwCAgkArAICBQJhUgIBXwkApAMBBQJhTwIBXwkApAMBBQJidAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FAU8JAGQCBQJjcwABBQNuaWwCYU0BCWFjY2VwdEJpZAQBTwJibwJicAJicQQBTQkA2AQBCAgFAmFNBmNhbGxlcgVieXRlcwMJAQIhPQIFAU0FAmJvCQACAQIZWW91IGNhbm5vdCBkbyB0aGlzIGFjdGlvbgkBAmJuBQUCYU0FAU8FAmJvBQJicAUCYnECYU0BCWNhbmNlbEJpZAQBTwJibwJicAJicQQCY3cJAQJibQEFAmFNBAJicwgFAmN3Al8xBAFNCAUCY3cCXzIEAmJ0CAUCY3cCXzMDAwkBAiE9AgUBTQUCYnEJAQIhPQIFAU0FAmJvBwkAAgECGVlvdSBjYW5ub3QgZG8gdGhpcyBhY3Rpb24EAmN4AwkAAAIFAU0FAmJvBQJicQUBTQQCY3MJAQFuAQkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FAU8EAmJoCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICBGJpZF8FAU8CAV8FAmJvAgFfBQJicQIBXwUCYnAEAmJpCQEBYQEJAKwCAgUCYmgCBV9PUEVOAwkAAAIFAmJpAgAJAAIBAg1CaWQgbm90IGZvdW5kBAJiagkAtQkCBQJiaQIBXwQCYVIJAQJiZgEJAJEDAgUCYmoAAAQCY3kCCENBTkNFTEVECQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgUCYmgCBV9PUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICBQJiaAIBXwUCY3kJAKwCAgkArAICBQJiaQIBXwkApAMBBQJidAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICAhJjdXJyZW50X2JpZGFtb3VudF8FAU8JAGUCBQJjcwABCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQkA2QQBBQJjeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJqAAEFAmFSBQNuaWwAx6GMlw==", "height": 2368341, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ydEe7NWa9esYFVqJkWtkhkGXgojzFuKUEbKW9F9dqtU Next: 7L3dhQVGXzSsRTFUW61kr62vf3336iu51nwakQudTuy4 Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = addressFromStringValue("3PPZWgFNRKHLvM51pwS934C8VZ7d2F4Z58g")
5-
6-let b = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
7-
8-let c = "DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p"
9-
10-let d = base58'7KZbJrVopwJhkdwbe1eFDBbex4dkY63MxjTNjqXtrzj1'
11-
12-let e = addressFromStringValue("3PGFHzVGT4NTigwCKP1NcwoXkodVZwvBuuU")
13-
14-let f = addressFromStringValue("3PDrYPF6izza2sXWffzTPF7e2Fcir2CMpki")
15-
16-let g = base58'At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL'
17-
18-let h = "At8D6NFFpheCbvKVnjVoeLL84Eo8NZn6ovManxfLaFWL"
19-
20-let i = addressFromStringValue("3P7r93vXHuusageNJVGwzqaz3WMotAu49Yz")
21-
22-let j = addressFromStringValue("3PLp9KrdrbWAvSFHGJVEaszUubquz3M6mfe")
23-
24-let k = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
25-
26-let l = "Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on"
27-
28-let m = addressFromStringValue("3PKi4G3VX2k42ZSmNNrmvgdDH7JzRaUhY7R")
29-
30-let n = addressFromStringValue("3PCENpEKe8atwELZ7oCSmcdEfcRuKTrUx99")
31-
32-let o = base58'F2AKkA513k5yHEJkLsU6vWxCYYk811GpjLhwEv2WGwZ9'
33-
34-let p = addressFromStringValue("3PC3HtupBxBmy4WtZf1Tym1vrxg9MwbZRK1")
35-
36-let q = "6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ"
37-
38-let r = base58'6XtHjpXbs9RRJP2Sr9GUyVqzACcby9TkThHXnjVC5CDJ'
39-
40-let s = base58'EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5'
41-
42-let t = addressFromStringValue("3P93Kqz8PUbCudvMyjbci54WxQrtBtw4dbZ")
43-
44-let u = addressFromStringValue("3P8KMyAJCPWNcyedqrmymxaeWonvmkhGauz")
45-
46-let v = "34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ"
47-
48-let w = base58'34N9YcEETLWn93qYQ64EsP1x89tSruJU44RrEMSXXEPJ'
49-
50-let x = base58'97zHFp1C3cB7qfvx8Xv5f2rWp9nUSG5UnAamfPcW6txf'
51-
52-let y = addressFromStringValue("3P93Kqz8PUbCudvMyjbci54WxQrtBtw4dbZ")
53-
54-let z = addressFromStringValue("3PH832eKnw67PFvJfUg9Knz6BHM87QvjMeL")
55-
56-let A = "8t4DPWTwPzpatHA9AkTxWAB47THnYzBsDnoY7fQqbG91"
57-
58-let B = base58'8t4DPWTwPzpatHA9AkTxWAB47THnYzBsDnoY7fQqbG91'
59-
60-let C = base58'EbwpqrZjrvi7XLowkM5Z2rg7xVdzfg6S5ec9asarpAU9'
61-
62-let D = addressFromStringValue("3PN1eJpdhJyRptcN9iLTarsJBtR2Kb3NXSU")
63-
64-let E = addressFromStringValue("3PCBWDTA6jrFswd7gQgaE3Xk7gLM5RKofvp")
65-
66-let F = addressFromStringValue("3PACj2DLTw3uUhsUmT98zHU5M4hPufbHKav")
67-
68-let G = "8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS"
69-
70-let H = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
71-
72-let I = base58'8WhH5CCJ6NakPvEvAJcizqqD7H6axhupdYHDFumSDwsy'
73-
74-let J = base58'58RNQJqLQ3tYYpkjuJujWzLzMX3nzpGn6bTC8LfLtgAM'
75-
76-let K = addressFromStringValue("3PEMqetsaJDbYMw1XGovmE37FB8VUhGnX9A")
77-
78-let L = "474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu"
79-
80-let M = base58'474jTeYx2r2Va35794tCScAXWJG9hU2HcgxzMowaZUnu'
81-
82-let N = base58'6gtgBD12xZkUTnzGofoFJpMg5gYG1FP6PaGyLviVQjbh'
83-
84-let O = addressFromStringValue("3PNEC4YKqZiMMytFrYRVtpW2ujvi3aGXRPm")
85-
86-let P = base58'H8wRVSgq82j6YU1K7jXVpDXHpd5m91t3bmCzRR7uFGc7'
87-
88-let Q = addressFromStringValue("3P94wvu5gA7VhjPgAB3twaeqdwHCwNK2vsn")
89-
90-let R = "HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk"
91-
92-let S = base58'HZk1mbfuJpmxU1Fs4AX5MWLVYtctsNcg6e2C6VKqK8zk'
93-
94-let T = base58'CNkqC6GPi888WdJ1EuVtu9JGZ9VHpAn8eTHwR8YZxXbv'
95-
96-let U = addressFromStringValue("3P32Rjpo9YHoHaorLSxvnV6CkKFXyfDCkJh")
97-
98-let V = base58'2npCQ21bzjEgBYWMepyd95aA3vwXaQpPBXnHtmmXadXF'
99-
100-let W = addressFromStringValue("3PFxchXqKNjgP1CcbgFZjHyrEj9xMbSeLU3")
101-
102-let X = "4LHHvYGNKJUg5hj65aGD5vgScvCBmLpdRFtjokvCjSL8"
103-
104-let Y = base58'4LHHvYGNKJUg5hj65aGD5vgScvCBmLpdRFtjokvCjSL8'
105-
106-let Z = base58'CaryXC3PhVr1rTxUGk8Bx7CcoxPX9ea3F5RGFiCe98Jr'
107-
108-let aa = addressFromStringValue("3P6DLdJTP2EySq9MFdJu6beUevrQd2sVVBh")
109-
110-let ab = base58'8g1Ki9cvjjhLUTyNwd4MaZ4fNfNTVc92Cb6f8My4qb1A'
111-
112-let ac = addressFromStringValue("3P3Y38zymCHoTM6qcE9JcEA8rhaGTQbVMgu")
113-
114-let ad = "C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS"
115-
116-let ae = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
117-
118-let af = base58'EsGs3xQLW8QSRiABfztfVLe8u5a2pvNfkdti4VYes1ms'
119-
120-let ag = addressFromStringValue("3PEeJQRJT4v4XvSUBPmxhdWKz439nae7KtQ")
121-
122-let ah = base58'2wk64hhVqjC3DgJa9HE9bcV7dCazuRtCSs6giqBAbBak'
123-
124-let ai = addressFromStringValue("3PDSXwwA2xAtmxeo2bebDP3AA5ynZ2Krgnw")
125-
126-let aj = base58'CBFNT7ti8bGzESndbsNB376Ug4fQ2ZyhXzdY892edTqq'
127-
128-let ak = "Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5"
129-
130-let al = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5'
131-
132-let am = addressFromStringValue("3P93Kqz8PUbCudvMyjbci54WxQrtBtw4dbZ")
133-
134-func an (ao) = valueOrElse(getInteger(this, ao), 35)
4+func a (b) = valueOrElse(getString(this, b), "")
1355
1366
137-let ap = an("montant")
7+let c = false
1388
139-@Callable(aq)
140-func set (ap) = if ((aq.caller != this))
141- then throw("you are not allowed to set!")
142- else [IntegerEntry("montant", ap)]
9+let d = value(addressFromString(a("conf_oracle_fee")))
10+
11+let e = value(addressFromString(a("conf_signweb_dapp")))
12+
13+let f = a("conf_fee_receiver")
14+
15+let g = if (c)
16+ then value(addressFromString("3Mt4RGMEyjSWYAocTPqd55wdHQQB3PU2UCm"))
17+ else value(addressFromString(a("conf_users_dapp")))
18+
19+let h = value(addressFromString(a("conf_whitelist_dapp")))
20+
21+let i = fromBase58String(a("conf_accepted_asset_SIGN"))
22+
23+let j = fromBase58String(a("conf_accepted_asset_USDN"))
24+
25+let k = base58''
26+
27+let l = a("conf_admin_1")
28+
29+func m (b) = valueOrErrorMessage(getInteger(d, b), "Integer undefine or 0 in oracle")
30+
31+
32+func n (b) = valueOrElse(getInteger(this, b), 0)
33+
34+
35+func o (b) = valueOrElse(getInteger(h, b), 0)
36+
37+
38+func p (b) = valueOrElse(getBoolean(this, b), false)
39+
40+
41+let q = 7
42+
43+let r = 10
44+
45+let s = a("conf_default_licence")
46+
47+let t = a("conf_default_licence_hash")
48+
49+let u = valueOrElse(getBoolean(g, "conf_dapp_is_running"), true)
50+
51+let v = valueOrElse(getString(g, "conf_maintenance_msg"), "")
52+
53+let w = "SUSPENDED"
54+
55+let x = "REMOVED"
56+
57+let y = "UNREGISTERED"
58+
59+let z = "ALLOWED"
60+
61+let A = m(("certification_fee_" + toBase58String(i)))
62+
63+func B (C,D,E) = {
64+ let F = getString(e, ((("data_fc_" + C) + "_") + D))
65+ if ($isInstanceOf(F, "String"))
66+ then {
67+ let G = F
68+ if (contains(G, E))
69+ then true
70+ else false
71+ }
72+ else false
73+ }
74+
75+
76+func H (I) = if (contains(I, "/"))
77+ then if (if ((76 > size(I)))
78+ then (size(split(I, "/")[0]) == 59)
79+ else false)
80+ then (16 > size(split(I, "/")[1]))
81+ else false
82+ else false
83+
84+
85+func J (K) = (size(K) == 64)
86+
87+
88+func L (M) = ("user_status_" + M)
89+
90+
91+func N (M,O) = ((("art_date_" + O) + "_") + M)
92+
93+
94+func P (M,O) = ((("art_name_" + O) + "_") + M)
95+
96+
97+func Q (M,O) = ((("art_desc_" + O) + "_") + M)
98+
99+
100+func R (M,O) = ((("art_display_cid_" + O) + "_") + M)
101+
102+
103+func S (M,O) = ((("art_export_hash_" + O) + "_") + M)
104+
105+
106+func T (M,O) = ((("art_export_cid_" + O) + "_") + M)
107+
108+
109+func U (M,O) = ((("art_maxmint_" + O) + "_") + M)
110+
111+
112+func V (M,O) = ((("art_signid_" + O) + "_") + M)
113+
114+
115+func W (M,O) = ((("art_issued_" + O) + "_") + M)
116+
117+
118+func X (M,O) = ((("art_onsale_" + O) + "_") + M)
119+
120+
121+func Y (M,O) = ((("art_licence_hash_" + O) + "_") + M)
122+
123+
124+func Z (M,O) = ((("art_licence_cid_" + O) + "_") + M)
125+
126+
127+func aa (M,O) = ((("art_tags_" + O) + "_") + M)
128+
129+
130+func ab (M,O) = ((("art_type_" + O) + "_") + M)
131+
132+
133+func ac (M,O) = ((("art_note_" + O) + "_") + M)
134+
135+
136+func ad (M,O) = ((("art_crawler_cid_" + O) + "_") + M)
137+
138+
139+func ae (M,O) = ((("art_price_" + O) + "_") + M)
140+
141+
142+func af (M,O) = ((("art_endsale_" + O) + "_") + M)
143+
144+
145+func ag (M,O) = ((("art_assetAccepted_" + O) + "_") + M)
146+
147+
148+func ah (M,O) = ((("art_flag_" + O) + "_") + M)
149+
150+
151+func ai (aj) = ("artist_agent_" + aj)
152+
153+
154+func ak (aj) = ("artist_agent_primary_" + aj)
155+
156+
157+func al (M,am) = ((("get_hashbytxidaddr_" + am) + "_") + M)
158+
159+
160+func an (E) = ("get_owner_by_hash_" + E)
161+
162+
163+func ao (M,ap) = ((("get_artidbysignid_" + ap) + "_") + M)
164+
165+
166+func aq (E,M) = ("get_txid_by_hash_owner_" + toBase58String(sha256_16Kb(toBytes((E + M)))))
167+
168+
169+func ar (as,at,au) = if (!(H(as)))
170+ then throw("Wrong Display CID")
171+ else if (!(H(at)))
172+ then throw("Wrong Export CID")
173+ else if (if ((au != ""))
174+ then !(H(au))
175+ else false)
176+ then throw("Wrong Licence CID")
177+ else true
178+
179+
180+func av (aw,ax) = if (!(J(aw)))
181+ then throw("Export Hash 64 char. max")
182+ else if (!(J(ax)))
183+ then throw("Licence Hash 64 char. max")
184+ else true
185+
186+
187+func ay (az,aA) = if ((size(az) == 0))
188+ then throw("Field cannot be is empty")
189+ else if ((size(az) > aA))
190+ then throw((az + " is too long"))
191+ else true
192+
193+
194+func aB (M) = {
195+ let aC = valueOrElse(getString(g, L(M)), y)
196+ if (if ((aC == y))
197+ then true
198+ else (aC == z))
199+ then "Register this account first with \"Account\" tab"
200+ else if ((aC == w))
201+ then "Account suspended"
202+ else if ((aC == x))
203+ then "Account removed"
204+ else ""
205+ }
206+
207+
208+func aD (au,ax) = {
209+ let I = if ((size(au) == 0))
210+ then s
211+ else au
212+ let K = if ((size(ax) == 0))
213+ then t
214+ else ax
215+ $Tuple2(I, K)
216+ }
217+
218+
219+func aE (M,as,at,aF,aw,aG,aH,aI,aJ) = {
220+ let aK = aB(M)
221+ if ((aK != ""))
222+ then throw(aK)
223+ else if ((size(as) == 0))
224+ then throw("Display CID cannot be empty")
225+ else if (!(ar(as, at, aF)))
226+ then throw("Problem with CID")
227+ else if (!(av(aw, aG)))
228+ then throw("Problem with Hashes")
229+ else if (!(ay(aH, 100)))
230+ then throw("100 Char. max name")
231+ else if (!(ay(aI, 1000)))
232+ then throw("1000 Char. max description")
233+ else if ((size(split(aJ, ",")) > 5))
234+ then throw("5 tags max.")
235+ else ""
236+ }
237+
238+
239+func aL (aM) = if ((size(aM.payments) == 0))
240+ then throw("No payment attached")
241+ else {
242+ let aN = value(aM.payments[0])
243+ let aO = value(aN.amount)
244+ $Tuple2(aN, aO)
245+ }
246+
247+
248+func aP (aM) = {
249+ let aQ = aL(aM)
250+ let aN = aQ._1
251+ let aO = aQ._2
252+ let aR = if (if (isDefined(aN.assetId))
253+ then (aN.assetId == i)
254+ else false)
255+ then aN.assetId
256+ else throw("Only SIGN token accepted as transaction fee")
257+ if ((aO != A))
258+ then throw(("Payment amount should be " + toString(A)))
259+ else $Tuple2(aO, aR)
260+ }
261+
262+
263+func aS (aT,O) = {
264+ let F = getInteger(this, W(aT, O))
265+ if ($isInstanceOf(F, "Int"))
266+ then {
267+ let aU = F
268+ if ((aU != 0))
269+ then true
270+ else false
271+ }
272+ else false
273+ }
274+
275+
276+func aV (aM,aW,aX) = {
277+ let aY = aL(aM)
278+ let aN = aY._1
279+ let aO = aY._2
280+ let aR = if (!(isDefined(aN.assetId)))
281+ then unit
282+ else if (if ((size(aW) > 0))
283+ then (toBase58String(value(aN.assetId)) == aW)
284+ else false)
285+ then aN.assetId
286+ else throw("Wrong asset id")
287+ if (if ((aR == unit))
288+ then (aW != "")
289+ else false)
290+ then throw("Wrong asset id")
291+ else if ((aX != aO))
292+ then throw("Payment don't match")
293+ else $Tuple2(aO, aR)
294+ }
295+
296+
297+func aZ (aR) = if (if (if (if ((aR != toBase58String(i)))
298+ then (aR != toBase58String(k))
299+ else false)
300+ then (aR != "WAVES")
301+ else false)
302+ then (aR != toBase58String(j))
303+ else false)
304+ then throw("Only SIGN, USDN or WAVES accepted")
305+ else true
306+
307+
308+func ba (aR,bb) = {
309+ let bc = if (c)
310+ then 10
311+ else m("waves_min_sell")
312+ let bd = 1000000
313+ let be = if (c)
314+ then 1
315+ else (A * 2)
316+ if (if (if (if (if ((aR == toBase58String(j)))
317+ then (bd > bb)
318+ else false)
319+ then (bb != 0)
320+ else false)
321+ then true
322+ else if (if ((aR == toBase58String(i)))
323+ then (be > bb)
324+ else false)
325+ then (bb != 0)
326+ else false)
327+ then true
328+ else if (if (if ((aR == toBase58String(k)))
329+ then true
330+ else (aR == "WAVES"))
331+ then (bc > bb)
332+ else false)
333+ then (bb != 0)
334+ else false)
335+ then throw("Wrong minimum sell price")
336+ else true
337+ }
338+
339+
340+func bf (aR) = if ((aR == "WAVES"))
341+ then unit
342+ else fromBase58String(aR)
343+
344+
345+func bg (bh) = {
346+ let bi = a((bh + "_OPEN"))
347+ if ((bi == ""))
348+ then throw("Bid not found")
349+ else {
350+ let bj = split(bi, "_")
351+ let bk = parseIntValue(bj[1])
352+ let bl = bf(bj[0])
353+ if ((0 >= bk))
354+ then throw("Wrong amount")
355+ else $Tuple2(bk, bl)
356+ }
357+ }
358+
359+
360+func bm (aM) = if (!(u))
361+ then throw(v)
362+ else $Tuple3(toBase58String(aM.transactionId), toBase58String(aM.caller.bytes), lastBlock.timestamp)
363+
364+
365+func bn (aM,O,bo,bp,bq) = {
366+ let br = bm(aM)
367+ let bs = br._1
368+ let M = br._2
369+ let bt = br._3
370+ let bu = if (if (if ((toBase58String(aM.caller.bytes) == bo))
371+ then (bq != "")
372+ else false)
373+ then (bp != "")
374+ else false)
375+ then true
376+ else false
377+ let bv = n(af(M, O))
378+ if (if (if ((bv != 0))
379+ then (height >= bv)
380+ else false)
381+ then !(bu)
382+ else false)
383+ then throw("Sale ended.")
384+ else {
385+ let bw = (toBase58String(aM.caller.bytes) == bo)
386+ let bx = n("total_nft_issued")
387+ let C = a(V(bo, O))
388+ let by = a(P(bo, O))
389+ if ((by == ""))
390+ then throw("Art doesn't exist")
391+ else {
392+ let bz = p(X(bo, O))
393+ let bA = n(W(bo, O))
394+ let aX = if (bw)
395+ then (A * 2)
396+ else n(ae(bo, O))
397+ let aW = if (bw)
398+ then toBase58String(i)
399+ else a(ag(bo, O))
400+ let bB = n(U(bo, O))
401+ if (if (if (!(bu))
402+ then !(bw)
403+ else false)
404+ then if (if ((0 >= aX))
405+ then true
406+ else !(bz))
407+ then true
408+ else (0 >= bB)
409+ else false)
410+ then throw("Art not for sale")
411+ else if (if (if (!(bu))
412+ then bw
413+ else false)
414+ then (0 >= bB)
415+ else false)
416+ then throw("Max issuable not set")
417+ else {
418+ let aK = aB(bo)
419+ if (if (bu)
420+ then (aK != "")
421+ else false)
422+ then throw(aK)
423+ else {
424+ let bh = ((((((("bid_" + O) + "_") + bo) + "_") + bq) + "_") + bp)
425+ let bC = if (bu)
426+ then bg(bh)
427+ else aV(aM, aW, aX)
428+ let aO = bC._1
429+ let aR = bC._2
430+ let bD = valueOrElse(getString(g, ai(bo)), f)
431+ let bE = valueOrElse(getInteger(g, ak(bo)), 0)
432+ let bF = o(bo)
433+ let bG = if ((bF > height))
434+ then 0
435+ else if ((aR == i))
436+ then q
437+ else r
438+ let bH = fraction(aO, bG, 100)
439+ let bI = if (if (if ((bD != f))
440+ then (bE > 0)
441+ else false)
442+ then (height > bF)
443+ else false)
444+ then fraction(aO, bE, 100)
445+ else 0
446+ let bJ = (aO - bH)
447+ if ((bA == bB))
448+ then throw("Art sold out")
449+ else {
450+ let bK = (bA + 1)
451+ let bL = ((((((((((("Creator: " + bo) + ",
452+ ArtID: ") + O) + ",
453+ SignID: ") + C) + ",
454+ Artwork name: ") + by) + ",
455+ Issue: ") + toString(bK)) + "/") + toString(bB))
456+ let bM = Issue(("SA_" + toString((bx + 1))), bL, 1, 0, false)
457+ let bN = calculateAssetId(bM)
458+ let bO = if (if ((bK == bB))
459+ then true
460+ else !(bz))
461+ then false
462+ else true
463+ let bP = if (if (if ((M == bo))
464+ then (bq != "")
465+ else false)
466+ then (bp != "")
467+ else false)
468+ then addressFromStringValue(bq)
469+ else aM.caller
470+ let bQ = if (!(isDefined(aR)))
471+ then "WAVES"
472+ else toBase58String(value(aR))
473+ let bi = a((bh + "_OPEN"))
474+ let bR = DeleteEntry((bh + "_OPEN"))
475+ let bS = StringEntry((bh + "_CLOSED"), ((bi + "_") + toString(bt)))
476+ let bT = ((((((("art_sold_" + toString(bK)) + "_of_") + toString(bB)) + "_") + O) + "_") + bo)
477+ let bU = if (!(bu))
478+ then ((((((((((M + "_") + toString(bt)) + "_") + bs) + "_") + toString(aX)) + "_") + aW) + "_") + toBase58String(bN))
479+ else ((((((((((toString(bP) + "_") + toString(bt)) + "_") + bs) + "_") + toString(aO)) + "_") + bQ) + "_") + toBase58String(bN))
480+ let bV = StringEntry(bT, bU)
481+ let bW = if ((bI != 0))
482+ then [ScriptTransfer(Address(fromBase58String(f)), (bH - bI), aR), ScriptTransfer(Address(fromBase58String(bD)), bI, aR)]
483+ else [ScriptTransfer(Address(fromBase58String(f)), bH, aR)]
484+ let bX = ([IntegerEntry(W(bo, O), bK), StringEntry(("nft_" + toBase58String(bN)), bT), IntegerEntry("total_nft_issued", (bx + 1)), IntegerEntry(af(bo, O), 0), BooleanEntry(X(bo, O), bO), bM, ScriptTransfer(Address(fromBase58String(bo)), bJ, aR), ScriptTransfer(bP, 1, bN)] ++ bW)
485+ if (bu)
486+ then [bV, bS, bR] :: bX
487+ else bV :: bX
488+ }
489+ }
490+ }
491+ }
492+ }
493+ }
494+
495+
496+@Callable(bY)
497+func setConf (b,bZ) = {
498+ let M = toString(bY.caller)
499+ if (containsElement([l, toString(this)], M))
500+ then if (contains(b, "conf_"))
501+ then [StringEntry(b, bZ)]
502+ else throw("Entries starting with conf_ only")
503+ else throw("You are not allowed to change this")
504+ }
143505
144506
145507
146-@Callable(aq)
147-func a1 () = if ((aq.caller != this))
148- then throw("you are not allowed to arb!")
508+@Callable(aM)
509+func addArtwork (E,C,aH,aI,aJ,ca,as,aw,at,ax,au,cb) = {
510+ let cc = bm(aM)
511+ let O = cc._1
512+ let M = cc._2
513+ let bt = cc._3
514+ if (!(J(E)))
515+ then throw("Hash should be 64 characters maximum")
516+ else {
517+ let cd = aD(au, ax)
518+ let aF = cd._1
519+ let aG = cd._2
520+ let ce = aE(M, as, at, aF, aw, aG, aH, aI, aJ)
521+ if ((ce != ""))
522+ then throw("Something went wrong!")
523+ else {
524+ let cf = aP(aM)
525+ let aO = cf._1
526+ let aR = cf._2
527+ if (!(isDefined(aO)))
528+ then throw("Something went wrong")
529+ else {
530+ let cg = a(aq(E, M))
531+ if ((cg != ""))
532+ then throw("You already added it")
533+ else {
534+ let ch = a(an(E))
535+ if ((ch != ""))
536+ then throw("Hash already registered")
537+ else {
538+ let ci = B(C, M, E)
539+ if (!(ci))
540+ then throw("Sign Certificate not found for this address.")
541+ else [StringEntry(an(E), M), StringEntry(aq(E, M), O), IntegerEntry(N(M, O), bt), StringEntry(P(M, O), aH), StringEntry(Q(M, O), aI), StringEntry(R(M, O), as), StringEntry(T(M, O), at), StringEntry(S(M, O), aw), StringEntry(Y(M, O), aG), StringEntry(Z(M, O), aF), StringEntry(ab(M, O), ca), StringEntry(aa(M, O), aJ), IntegerEntry(U(M, O), 0), StringEntry(V(M, O), C), IntegerEntry(W(M, O), 0), BooleanEntry(X(M, O), false), StringEntry(ao(M, C), O), StringEntry(al(M, O), E), StringEntry(ad(M, O), cb), ScriptTransfer(Address(fromBase58String(f)), aO, aR)]
542+ }
543+ }
544+ }
545+ }
546+ }
547+ }
548+
549+
550+
551+@Callable(aM)
552+func updateArtwork (am,aH,aI,aJ,ca,as,aw,at,ax,au,cb) = if (!(u))
553+ then throw(v)
149554 else {
150- let ar = assetBalance(this, b)
151- if ((ar == ar))
152- then {
153- let as = wavesBalance(this).available
154- if ((as == as))
155- then {
156- let at = invoke(f, "swap", ["WAVES", 1], [AttachedPayment(b, (ap * 1000000))])
157- if ((at == at))
158- then {
159- let au = (wavesBalance(this).available - as)
160- if ((0 >= au))
161- then throw("nothing to arb")
162- else {
163- let av = invoke(a, "putOneTkn", [1, false], [AttachedPayment(unit, au)])
164- if ((av == av))
165- then {
166- let aw = assetBalance(this, d)
167- if ((aw == aw))
168- then {
169- let ax = invoke(a, "getOneTkn", [c, 1], [AttachedPayment(d, aw)])
170- if ((ax == ax))
171- then {
172- let ay = assetBalance(this, b)
173- if ((ay == ay))
174- then if ((0 >= (ay - ar)))
175- then throw("WU PUZZLE -> WX [($_$)]")
176- else nil
177- else throw("Strict value is not equal to itself.")
178- }
179- else throw("Strict value is not equal to itself.")
180- }
181- else throw("Strict value is not equal to itself.")
182- }
183- else throw("Strict value is not equal to itself.")
184- }
185- }
186- else throw("Strict value is not equal to itself.")
555+ let M = toBase58String(aM.caller.bytes)
556+ let cj = aD(au, ax)
557+ let aF = cj._1
558+ let aG = cj._2
559+ let ce = aE(M, as, at, aF, aw, aG, aH, aI, aJ)
560+ if ((ce != ""))
561+ then throw("Something went wrong!")
562+ else {
563+ let cg = a(P(M, am))
564+ if ((cg == ""))
565+ then throw("Entry not found")
566+ else {
567+ let ck = a(ah(M, am))
568+ if ((ck == "ILLEGAL"))
569+ then throw("Cannot update ILLEGAL artwork")
570+ else if (!(aS(M, am)))
571+ then [StringEntry(P(M, am), aH), StringEntry(Q(M, am), aI), StringEntry(R(M, am), as), StringEntry(T(M, am), at), StringEntry(S(M, am), aw), StringEntry(Z(M, am), aF), StringEntry(Y(M, am), aG), StringEntry(aa(M, am), aJ), StringEntry(ab(M, am), ca), StringEntry(ad(M, am), cb)]
572+ else throw("Already minted")
187573 }
188- else throw("Strict value is not equal to itself.")
189574 }
190- else throw("Strict value is not equal to itself.")
191575 }
192576
193577
194578
195-@Callable(aq)
196-func a2 () = if ((aq.caller != this))
197- then throw("you are not allowed to arb!")
198- else {
199- let ar = assetBalance(this, b)
200- if ((ar == ar))
201- then {
202- let as = wavesBalance(this).available
203- if ((as == as))
204- then {
205- let av = invoke(a, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
206- if ((av == av))
207- then {
208- let aw = assetBalance(this, d)
209- if ((aw == aw))
210- then {
211- let ax = invoke(a, "getOneTkn", ["WAVES", 1], [AttachedPayment(d, aw)])
212- if ((ax == ax))
213- then {
214- let au = (wavesBalance(this).available - as)
215- if ((0 >= au))
216- then throw("nothing to arb")
217- else {
218- let at = invoke(f, "swap", [c, 1], [AttachedPayment(unit, au)])
219- if ((at == at))
220- then {
221- let ay = assetBalance(this, b)
222- if ((ay == ay))
223- then if ((0 >= (ay - ar)))
224- then throw("WU WX -> PUZZLE [($_$)]")
225- else nil
226- else throw("Strict value is not equal to itself.")
227- }
228- else throw("Strict value is not equal to itself.")
229- }
230- }
231- else throw("Strict value is not equal to itself.")
232- }
233- else throw("Strict value is not equal to itself.")
234- }
235- else throw("Strict value is not equal to itself.")
236- }
237- else throw("Strict value is not equal to itself.")
238- }
239- else throw("Strict value is not equal to itself.")
240- }
579+@Callable(aM)
580+func flagArtwork (O,cl,ck,cm) = {
581+ let cn = bm(aM)
582+ let bs = cn._1
583+ let M = cn._2
584+ if (containsElement([l, toString(this)], M))
585+ then if (containsElement(["CONSENT", "", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], ck))
586+ then [StringEntry(ah(cl, O), ck), StringEntry(ac(cl, O), cm)]
587+ else throw(("Unknow status " + ck))
588+ else throw("You are not allowed")
589+ }
241590
242591
243592
244-@Callable(aq)
245-func a3 () = if ((aq.caller != this))
246- then throw("you are not allowed to arb!")
247- else {
248- let ar = assetBalance(this, b)
249- if ((ar == ar))
250- then {
251- let az = invoke(i, "swap", [h, 1], [AttachedPayment(b, (ap * 1000000))])
252- if ((az == az))
253- then {
254- let aA = assetBalance(this, g)
255- let aB = invoke(j, "exchange", [1], [AttachedPayment(g, aA)])
256- if ((aB == aB))
257- then {
258- let ay = assetBalance(this, b)
259- if ((ay == ay))
260- then if ((0 >= (ay - ar)))
261- then throw("SURF PUZZLE -> SWOP [($_$)]")
262- else nil
263- else throw("Strict value is not equal to itself.")
264- }
265- else throw("Strict value is not equal to itself.")
266- }
267- else throw("Strict value is not equal to itself.")
268- }
269- else throw("Strict value is not equal to itself.")
270- }
593+@Callable(aM)
594+func deleteArtwork (O,cl) = {
595+ let co = bm(aM)
596+ let bs = co._1
597+ let M = co._2
598+ let aT = if (containsElement([l, toString(this)], M))
599+ then cl
600+ else M
601+ let cg = valueOrErrorMessage(a(P(aT, O)), "No art matching for this address")
602+ if ((cg == ""))
603+ then throw("No art matching for this address")
604+ else {
605+ let E = a(al(aT, O))
606+ if ((E == ""))
607+ then throw("No art hash matching for this address")
608+ else {
609+ let C = a(V(aT, O))
610+ if ((C == ""))
611+ then throw("No SIGN ID matching")
612+ else {
613+ let cp = [DeleteEntry(N(aT, O)), DeleteEntry(P(aT, O)), DeleteEntry(Q(aT, O)), DeleteEntry(R(aT, O)), DeleteEntry(T(aT, O)), DeleteEntry(S(aT, O)), DeleteEntry(Y(aT, O)), DeleteEntry(Z(aT, O)), DeleteEntry(ab(aT, O)), DeleteEntry(aa(aT, O)), DeleteEntry(U(aT, O)), DeleteEntry(V(aT, O)), DeleteEntry(W(aT, O)), DeleteEntry(X(aT, O)), DeleteEntry(ah(aT, O)), DeleteEntry(ae(aT, O)), DeleteEntry(ag(aT, O)), DeleteEntry(an(E)), DeleteEntry(ao(aT, C)), DeleteEntry(aq(E, aT)), DeleteEntry(af(aT, O)), DeleteEntry(ac(aT, O)), DeleteEntry(ad(aT, O))]
614+ if (!(aS(aT, O)))
615+ then if (!(u))
616+ then throw(v)
617+ else cp
618+ else if (containsElement([l, toString(this)], M))
619+ then cp
620+ else throw("Art already minted, you cannot delete it")
621+ }
622+ }
623+ }
624+ }
271625
272626
273627
274-@Callable(aq)
275-func a4 () = if ((aq.caller != this))
276- then throw("you are not allowed to arb!")
277- else {
278- let ar = assetBalance(this, b)
279- if ((ar == ar))
280- then {
281- let aC = invoke(j, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
282- if ((aC == aC))
283- then {
284- let aA = assetBalance(this, g)
285- let aD = invoke(i, "swap", [c, 1], [AttachedPayment(g, aA)])
286- if ((aD == aD))
287- then {
288- let ay = assetBalance(this, b)
289- if ((ay == ay))
290- then if ((0 >= (ay - ar)))
291- then throw("SURF SWOP -> PUZZLE [($_$)]")
292- else nil
293- else throw("Strict value is not equal to itself.")
628+@Callable(aM)
629+func sellArtwork (O,bb,cq,aR,bv) = {
630+ let cr = bm(aM)
631+ let bs = cr._1
632+ let M = cr._2
633+ let by = a(P(M, O))
634+ if ((by == ""))
635+ then throw("This art doesn't match your account")
636+ else {
637+ let ck = a(ah(M, O))
638+ if (containsElement(["CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], ck))
639+ then throw("Flagged artwork")
640+ else {
641+ let cs = n(("current_bidamount_" + O))
642+ if ((0 > bv))
643+ then throw("Negative end")
644+ else if (if ((bv > 0))
645+ then if ((cq != 1))
646+ then true
647+ else (bb != 0)
648+ else false)
649+ then throw("Timed offer only allowed for unique edition and offer only")
650+ else {
651+ let ct = if ((bv == 0))
652+ then 0
653+ else height
654+ if (!(aZ(aR)))
655+ then throw("Something went wrong!")
656+ else if (!(ba(aR, bb)))
657+ then throw("Something went wrong!")
658+ else {
659+ let aK = aB(M)
660+ if ((aK != ""))
661+ then throw(aK)
662+ else {
663+ let bA = n(W(M, O))
664+ let bB = n(U(M, O))
665+ if ((cq > 100))
666+ then throw("100 editions max per artwork")
667+ else if (if ((bA != 0))
668+ then (bA == bB)
669+ else false)
670+ then throw("Max edition reached.")
671+ else if (if ((bA > 0))
672+ then (bB != cq)
673+ else false)
674+ then throw("Cannot change maximum issuable anymore")
675+ else if (if ((cs > 0))
676+ then (bB != cq)
677+ else false)
678+ then throw("Cannot change maximum issuable with active orders")
679+ else {
680+ let bO = if (if ((bb > 0))
681+ then (cq > 0)
682+ else false)
683+ then true
684+ else false
685+[BooleanEntry(X(M, O), bO), IntegerEntry(ae(M, O), bb), IntegerEntry(U(M, O), cq), StringEntry(ag(M, O), aR), IntegerEntry(af(M, O), (ct + bv))]
686+ }
687+ }
688+ }
294689 }
295- else throw("Strict value is not equal to itself.")
296- }
297- else throw("Strict value is not equal to itself.")
298- }
299- else throw("Strict value is not equal to itself.")
300- }
690+ }
691+ }
692+ }
301693
302694
303695
304-@Callable(aq)
305-func a5 () = if ((aq.caller != this))
306- then throw("you are not allowed to arb!")
307- else {
308- let ar = assetBalance(this, b)
309- if ((ar == ar))
310- then {
311- let av = invoke(n, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
312- if ((av == av))
313- then {
314- let aw = assetBalance(this, o)
315- if ((aw == aw))
316- then {
317- let ax = invoke(n, "getOneTkn", [l, 1], [AttachedPayment(o, aw)])
318- if ((ax == ax))
319- then {
320- let aE = assetBalance(this, k)
321- let aF = invoke(m, "exchange", [1], [AttachedPayment(k, aE)])
322- if ((aF == aF))
323- then {
324- let ay = assetBalance(this, b)
325- if ((ay == ay))
326- then if ((0 >= (ay - ar)))
327- then throw("WX WX -> SWOP [($_$)]")
328- else nil
329- else throw("Strict value is not equal to itself.")
330- }
331- else throw("Strict value is not equal to itself.")
332- }
333- else throw("Strict value is not equal to itself.")
334- }
335- else throw("Strict value is not equal to itself.")
336- }
337- else throw("Strict value is not equal to itself.")
338- }
339- else throw("Strict value is not equal to itself.")
340- }
696+@Callable(aM)
697+func buyArtwork (O,bo) = bn(aM, O, bo, "", "")
341698
342699
343700
344-@Callable(aq)
345-func a6 () = if ((aq.caller != this))
346- then throw("you are not allowed to arb!")
347- else {
348- let ar = assetBalance(this, b)
349- if ((ar == ar))
350- then {
351- let aG = invoke(m, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
352- if ((aG == aG))
353- then {
354- let aE = assetBalance(this, k)
355- let av = invoke(n, "putOneTkn", [1, false], [AttachedPayment(k, aE)])
356- if ((av == av))
357- then {
358- let aw = assetBalance(this, o)
359- if ((aw == aw))
360- then {
361- let ax = invoke(n, "getOneTkn", [c, 1], [AttachedPayment(o, aw)])
362- if ((ax == ax))
363- then {
364- let ay = assetBalance(this, b)
365- if ((ay == ay))
366- then if ((0 >= (ay - ar)))
367- then throw("WX SWOP -> WX [($_$)]")
368- else nil
369- else throw("Strict value is not equal to itself.")
370- }
371- else throw("Strict value is not equal to itself.")
372- }
373- else throw("Strict value is not equal to itself.")
374- }
375- else throw("Strict value is not equal to itself.")
701+@Callable(aM)
702+func setBid (O,bo) = {
703+ let cu = bm(aM)
704+ let bs = cu._1
705+ let M = cu._2
706+ let bt = cu._3
707+ let cv = aL(aM)
708+ let aN = cv._1
709+ let aO = cv._2
710+ let aR = if (!(isDefined(aN.assetId)))
711+ then "WAVES"
712+ else toBase58String(value(aN.assetId))
713+ let bv = n(af(bo, O))
714+ if (if ((bv != 0))
715+ then (height >= bv)
716+ else false)
717+ then throw("Sale ended.")
718+ else {
719+ let cs = n(("current_bidamount_" + O))
720+ if (!(aZ(aR)))
721+ then throw("asset not accepted")
722+ else if (!(ba(aR, aO)))
723+ then throw("Wrong min sell")
724+ else {
725+ let bA = n(W(bo, O))
726+ let bB = n(U(bo, O))
727+ if ((0 >= bB))
728+ then throw("No max edition set for this artwork")
729+ else if ((bA >= bB))
730+ then throw("Sold out, you cannot bid")
731+ else [StringEntry((((((((("bid_" + O) + "_") + bo) + "_") + M) + "_") + bs) + "_OPEN"), ((((aR + "_") + toString(aO)) + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + O), (cs + 1))]
376732 }
377- else throw("Strict value is not equal to itself.")
378- }
379- else throw("Strict value is not equal to itself.")
380- }
733+ }
734+ }
381735
382736
383737
384-@Callable(aq)
385-func a7 () = if ((aq.caller != this))
386- then throw("you are not allowed to arb!")
387- else {
388- let ar = assetBalance(this, b)
389- if ((ar == ar))
390- then {
391- let aH = invoke(t, "swap", [q, 1], [AttachedPayment(b, (ap * 1000000))])
392- if ((aH == aH))
393- then {
394- let aI = assetBalance(this, r)
395- if ((aI == aI))
396- then {
397- let av = invoke(p, "putOneTknV2", [1, false], [AttachedPayment(r, aI)])
398- if ((av == av))
399- then {
400- let aw = assetBalance(this, s)
401- if ((aw == aw))
402- then {
403- let ax = invoke(p, "getOneTknV2", [c, 1], [AttachedPayment(s, aw)])
404- if ((ax == ax))
405- then {
406- let ay = assetBalance(this, b)
407- if ((ay == ay))
408- then if ((0 >= (ay - ar)))
409- then throw("USDC PUZZLE -> WX [($_$)]")
410- else nil
411- else throw("Strict value is not equal to itself.")
412- }
413- else throw("Strict value is not equal to itself.")
414- }
415- else throw("Strict value is not equal to itself.")
416- }
417- else throw("Strict value is not equal to itself.")
418- }
419- else throw("Strict value is not equal to itself.")
420- }
421- else throw("Strict value is not equal to itself.")
422- }
423- else throw("Strict value is not equal to itself.")
424- }
738+@Callable(aM)
739+func acceptBid (O,bo,bp,bq) = {
740+ let M = toBase58String(aM.caller.bytes)
741+ if ((M != bo))
742+ then throw("You cannot do this action")
743+ else bn(aM, O, bo, bp, bq)
744+ }
425745
426746
427747
428-@Callable(aq)
429-func a8 () = if ((aq.caller != this))
430- then throw("you are not allowed to arb!")
431- else {
432- let ar = assetBalance(this, b)
433- if ((ar == ar))
434- then {
435- let av = invoke(p, "putOneTknV2", [1, false], [AttachedPayment(b, (ap * 1000000))])
436- if ((av == av))
437- then {
438- let aw = assetBalance(this, s)
439- if ((aw == aw))
440- then {
441- let ax = invoke(p, "getOneTknV2", [q, 1], [AttachedPayment(s, aw)])
442- if ((ax == ax))
443- then {
444- let aI = assetBalance(this, r)
445- if ((aI == aI))
446- then {
447- let aJ = invoke(t, "swap", [c, 1], [AttachedPayment(r, aI)])
448- if ((aJ == aJ))
449- then {
450- let ay = assetBalance(this, b)
451- if ((ay == ay))
452- then if ((0 >= (ay - ar)))
453- then throw("USDC WX -> PUZZLE [($_$)]")
454- else nil
455- else throw("Strict value is not equal to itself.")
456- }
457- else throw("Strict value is not equal to itself.")
458- }
459- else throw("Strict value is not equal to itself.")
460- }
461- else throw("Strict value is not equal to itself.")
462- }
463- else throw("Strict value is not equal to itself.")
464- }
465- else throw("Strict value is not equal to itself.")
466- }
467- else throw("Strict value is not equal to itself.")
468- }
748+@Callable(aM)
749+func cancelBid (O,bo,bp,bq) = {
750+ let cw = bm(aM)
751+ let bs = cw._1
752+ let M = cw._2
753+ let bt = cw._3
754+ if (if ((M != bq))
755+ then (M != bo)
756+ else false)
757+ then throw("You cannot do this action")
758+ else {
759+ let cx = if ((M == bo))
760+ then bq
761+ else M
762+ let cs = n(("current_bidamount_" + O))
763+ let bh = ((((((("bid_" + O) + "_") + bo) + "_") + bq) + "_") + bp)
764+ let bi = a((bh + "_OPEN"))
765+ if ((bi == ""))
766+ then throw("Bid not found")
767+ else {
768+ let bj = split(bi, "_")
769+ let aR = bf(bj[0])
770+ let cy = "CANCELED"
771+[DeleteEntry((bh + "_OPEN")), StringEntry(((bh + "_") + cy), ((bi + "_") + toString(bt))), IntegerEntry(("current_bidamount_" + O), (cs - 1)), ScriptTransfer(Address(fromBase58String(cx)), parseIntValue(bj[1]), aR)]
772+ }
773+ }
774+ }
469775
470-
471-
472-@Callable(aq)
473-func a9 () = if ((aq.caller != this))
474- then throw("you are not allowed to arb!")
475- else {
476- let ar = assetBalance(this, b)
477- if ((ar == ar))
478- then {
479- let aK = invoke(y, "swap", [v, 1], [AttachedPayment(b, (ap * 1000000))])
480- if ((aK == aK))
481- then {
482- let aL = assetBalance(this, w)
483- if ((aL == aL))
484- then {
485- let av = invoke(u, "putOneTknV2", [1, false], [AttachedPayment(w, aL)])
486- if ((av == av))
487- then {
488- let aw = assetBalance(this, x)
489- if ((aw == aw))
490- then {
491- let ax = invoke(u, "getOneTknV2", [c, 1], [AttachedPayment(x, aw)])
492- if ((ax == ax))
493- then {
494- let ay = assetBalance(this, b)
495- if ((ay == ay))
496- then if ((0 >= (ay - ar)))
497- then throw("USDT PUZZLE -> WX [($_$)]")
498- else nil
499- else throw("Strict value is not equal to itself.")
500- }
501- else throw("Strict value is not equal to itself.")
502- }
503- else throw("Strict value is not equal to itself.")
504- }
505- else throw("Strict value is not equal to itself.")
506- }
507- else throw("Strict value is not equal to itself.")
508- }
509- else throw("Strict value is not equal to itself.")
510- }
511- else throw("Strict value is not equal to itself.")
512- }
513-
514-
515-
516-@Callable(aq)
517-func a10 () = if ((aq.caller != this))
518- then throw("you are not allowed to arb!")
519- else {
520- let ar = assetBalance(this, b)
521- if ((ar == ar))
522- then {
523- let av = invoke(u, "putOneTknV2", [1, false], [AttachedPayment(b, (ap * 1000000))])
524- if ((av == av))
525- then {
526- let aw = assetBalance(this, x)
527- if ((aw == aw))
528- then {
529- let ax = invoke(u, "getOneTknV2", [v, 1], [AttachedPayment(x, aw)])
530- if ((ax == ax))
531- then {
532- let aL = assetBalance(this, w)
533- if ((aL == aL))
534- then {
535- let aM = invoke(y, "swap", [c, 1], [AttachedPayment(w, aL)])
536- if ((aM == aM))
537- then {
538- let ay = assetBalance(this, b)
539- if ((ay == ay))
540- then if ((0 >= (ay - ar)))
541- then throw("USDT WX -> PUZZLE [($_$)]")
542- else nil
543- else throw("Strict value is not equal to itself.")
544- }
545- else throw("Strict value is not equal to itself.")
546- }
547- else throw("Strict value is not equal to itself.")
548- }
549- else throw("Strict value is not equal to itself.")
550- }
551- else throw("Strict value is not equal to itself.")
552- }
553- else throw("Strict value is not equal to itself.")
554- }
555- else throw("Strict value is not equal to itself.")
556- }
557-
558-
559-
560-@Callable(aq)
561-func a11 () = if ((aq.caller != this))
562- then throw("you are not allowed to arb!")
563- else {
564- let ar = assetBalance(this, b)
565- if ((ar == ar))
566- then {
567- let aN = invoke(D, "swap", [A, 1], [AttachedPayment(b, (ap * 1000000))])
568- if ((aN == aN))
569- then {
570- let aO = assetBalance(this, B)
571- if ((aO == aO))
572- then {
573- let av = invoke(z, "putOneTkn", [1, false], [AttachedPayment(B, aO)])
574- if ((av == av))
575- then {
576- let aw = assetBalance(this, C)
577- if ((aw == aw))
578- then {
579- let ax = invoke(z, "getOneTkn", [c, 1], [AttachedPayment(C, aw)])
580- if ((ax == ax))
581- then {
582- let ay = assetBalance(this, b)
583- if ((ay == ay))
584- then if ((0 >= (ay - ar)))
585- then throw("TSN PUZZLE -> WX [($_$)]")
586- else nil
587- else throw("Strict value is not equal to itself.")
588- }
589- else throw("Strict value is not equal to itself.")
590- }
591- else throw("Strict value is not equal to itself.")
592- }
593- else throw("Strict value is not equal to itself.")
594- }
595- else throw("Strict value is not equal to itself.")
596- }
597- else throw("Strict value is not equal to itself.")
598- }
599- else throw("Strict value is not equal to itself.")
600- }
601-
602-
603-
604-@Callable(aq)
605-func a12 () = if ((aq.caller != this))
606- then throw("you are not allowed to arb!")
607- else {
608- let ar = assetBalance(this, b)
609- if ((ar == ar))
610- then {
611- let av = invoke(z, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
612- if ((av == av))
613- then {
614- let aw = assetBalance(this, C)
615- if ((aw == aw))
616- then {
617- let ax = invoke(z, "getOneTkn", [A, 1], [AttachedPayment(C, aw)])
618- if ((ax == ax))
619- then {
620- let aO = assetBalance(this, B)
621- if ((aO == aO))
622- then {
623- let aP = invoke(D, "swap", [c, 1], [AttachedPayment(B, aO)])
624- if ((aP == aP))
625- then {
626- let ay = assetBalance(this, b)
627- if ((ay == ay))
628- then if ((0 >= (ay - ar)))
629- then throw("TSN WX -> PUZZLE [($_$)]")
630- else nil
631- else throw("Strict value is not equal to itself.")
632- }
633- else throw("Strict value is not equal to itself.")
634- }
635- else throw("Strict value is not equal to itself.")
636- }
637- else throw("Strict value is not equal to itself.")
638- }
639- else throw("Strict value is not equal to itself.")
640- }
641- else throw("Strict value is not equal to itself.")
642- }
643- else throw("Strict value is not equal to itself.")
644- }
645-
646-
647-
648-@Callable(aq)
649-func a13 () = if ((aq.caller != this))
650- then throw("you are not allowed to arb!")
651- else {
652- let ar = assetBalance(this, b)
653- if ((ar == ar))
654- then {
655- let av = invoke(E, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
656- if ((av == av))
657- then {
658- let aw = assetBalance(this, I)
659- if ((aw == aw))
660- then {
661- let ax = invoke(E, "getOneTkn", [G, 1], [AttachedPayment(I, aw)])
662- if ((ax == ax))
663- then {
664- let aQ = assetBalance(this, H)
665- let aR = invoke(F, "exchange", [1], [AttachedPayment(H, aQ)])
666- if ((aR == aR))
667- then {
668- let ay = assetBalance(this, b)
669- if ((ay == ay))
670- then if ((0 >= (ay - ar)))
671- then throw("BTC WX -> SWOP [($_$)]")
672- else nil
673- else throw("Strict value is not equal to itself.")
674- }
675- else throw("Strict value is not equal to itself.")
676- }
677- else throw("Strict value is not equal to itself.")
678- }
679- else throw("Strict value is not equal to itself.")
680- }
681- else throw("Strict value is not equal to itself.")
682- }
683- else throw("Strict value is not equal to itself.")
684- }
685-
686-
687-
688-@Callable(aq)
689-func a14 () = if ((aq.caller != this))
690- then throw("you are not allowed to arb!")
691- else {
692- let ar = assetBalance(this, b)
693- if ((ar == ar))
694- then {
695- let aS = invoke(F, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
696- if ((aS == aS))
697- then {
698- let aQ = assetBalance(this, H)
699- let av = invoke(E, "putOneTkn", [1, false], [AttachedPayment(H, aQ)])
700- if ((av == av))
701- then {
702- let aw = assetBalance(this, I)
703- if ((aw == aw))
704- then {
705- let ax = invoke(E, "getOneTkn", [c, 1], [AttachedPayment(I, aw)])
706- if ((ax == ax))
707- then {
708- let ay = assetBalance(this, b)
709- if ((ay == ay))
710- then if ((0 >= (ay - ar)))
711- then throw("BTC SWOP -> WX [($_$)]")
712- else nil
713- else throw("Strict value is not equal to itself.")
714- }
715- else throw("Strict value is not equal to itself.")
716- }
717- else throw("Strict value is not equal to itself.")
718- }
719- else throw("Strict value is not equal to itself.")
720- }
721- else throw("Strict value is not equal to itself.")
722- }
723- else throw("Strict value is not equal to itself.")
724- }
725-
726-
727-
728-@Callable(aq)
729-func a15 () = if ((aq.caller != this))
730- then throw("you are not allowed to arb!")
731- else {
732- let ar = assetBalance(this, b)
733- if ((ar == ar))
734- then {
735- let av = invoke(K, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
736- if ((av == av))
737- then {
738- let aw = assetBalance(this, N)
739- if ((aw == aw))
740- then {
741- let ax = invoke(K, "getOneTkn", [L, 1], [AttachedPayment(N, aw)])
742- if ((ax == ax))
743- then {
744- let aT = assetBalance(this, M)
745- let aU = invoke(O, "exchange", [1], [AttachedPayment(M, aT)])
746- if ((aU == aU))
747- then {
748- let ay = assetBalance(this, b)
749- if ((ay == ay))
750- then if ((0 >= (ay - ar)))
751- then throw("ETH WX -> SWOP [($_$)]")
752- else nil
753- else throw("Strict value is not equal to itself.")
754- }
755- else throw("Strict value is not equal to itself.")
756- }
757- else throw("Strict value is not equal to itself.")
758- }
759- else throw("Strict value is not equal to itself.")
760- }
761- else throw("Strict value is not equal to itself.")
762- }
763- else throw("Strict value is not equal to itself.")
764- }
765-
766-
767-
768-@Callable(aq)
769-func a16 () = if ((aq.caller != this))
770- then throw("you are not allowed to arb!")
771- else {
772- let ar = assetBalance(this, b)
773- if ((ar == ar))
774- then {
775- let aV = invoke(O, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
776- if ((aV == aV))
777- then {
778- let aT = assetBalance(this, M)
779- let av = invoke(K, "putOneTkn", [1, false], [AttachedPayment(M, aT)])
780- if ((av == av))
781- then {
782- let aw = assetBalance(this, N)
783- if ((aw == aw))
784- then {
785- let ax = invoke(K, "getOneTkn", [c, 1], [AttachedPayment(N, aw)])
786- if ((ax == ax))
787- then {
788- let ay = assetBalance(this, b)
789- if ((ay == ay))
790- then if ((0 >= (ay - ar)))
791- then throw("ETH SWOP -> WX [($_$)]")
792- else nil
793- else throw("Strict value is not equal to itself.")
794- }
795- else throw("Strict value is not equal to itself.")
796- }
797- else throw("Strict value is not equal to itself.")
798- }
799- else throw("Strict value is not equal to itself.")
800- }
801- else throw("Strict value is not equal to itself.")
802- }
803- else throw("Strict value is not equal to itself.")
804- }
805-
806-
807-
808-@Callable(aq)
809-func a17 () = if ((aq.caller != this))
810- then throw("you are not allowed to arb!")
811- else {
812- let ar = assetBalance(this, b)
813- if ((ar == ar))
814- then {
815- let av = invoke(Q, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
816- if ((av == av))
817- then {
818- let aw = assetBalance(this, T)
819- if ((aw == aw))
820- then {
821- let ax = invoke(Q, "getOneTkn", [R, 1], [AttachedPayment(T, aw)])
822- if ((ax == ax))
823- then {
824- let aW = assetBalance(this, S)
825- let aX = invoke(U, "exchange", [1], [AttachedPayment(S, aW)])
826- if ((aX == aX))
827- then {
828- let ay = assetBalance(this, b)
829- if ((ay == ay))
830- then if ((0 >= (ay - ar)))
831- then throw("LTC WX -> SWOP [($_$)]")
832- else nil
833- else throw("Strict value is not equal to itself.")
834- }
835- else throw("Strict value is not equal to itself.")
836- }
837- else throw("Strict value is not equal to itself.")
838- }
839- else throw("Strict value is not equal to itself.")
840- }
841- else throw("Strict value is not equal to itself.")
842- }
843- else throw("Strict value is not equal to itself.")
844- }
845-
846-
847-
848-@Callable(aq)
849-func a18 () = if ((aq.caller != this))
850- then throw("you are not allowed to arb!")
851- else {
852- let ar = assetBalance(this, b)
853- if ((ar == ar))
854- then {
855- let aY = invoke(U, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
856- if ((aY == aY))
857- then {
858- let aW = assetBalance(this, S)
859- let av = invoke(Q, "putOneTkn", [1, false], [AttachedPayment(S, aW)])
860- if ((av == av))
861- then {
862- let aw = assetBalance(this, T)
863- if ((aw == aw))
864- then {
865- let ax = invoke(Q, "getOneTkn", [c, 1], [AttachedPayment(T, aw)])
866- if ((ax == ax))
867- then {
868- let ay = assetBalance(this, b)
869- if ((ay == ay))
870- then if ((0 >= (ay - ar)))
871- then throw("LTC SWOP -> WX [($_$)]")
872- else nil
873- else throw("Strict value is not equal to itself.")
874- }
875- else throw("Strict value is not equal to itself.")
876- }
877- else throw("Strict value is not equal to itself.")
878- }
879- else throw("Strict value is not equal to itself.")
880- }
881- else throw("Strict value is not equal to itself.")
882- }
883- else throw("Strict value is not equal to itself.")
884- }
885-
886-
887-
888-@Callable(aq)
889-func a19 () = if ((aq.caller != this))
890- then throw("you are not allowed to arb!")
891- else {
892- let ar = assetBalance(this, b)
893- if ((ar == ar))
894- then {
895- let av = invoke(W, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
896- if ((av == av))
897- then {
898- let aw = assetBalance(this, Z)
899- if ((aw == aw))
900- then {
901- let ax = invoke(W, "getOneTkn", [X, 1], [AttachedPayment(Z, aw)])
902- if ((ax == ax))
903- then {
904- let aZ = assetBalance(this, Y)
905- let ba = invoke(aa, "exchange", [1], [AttachedPayment(Y, aZ)])
906- if ((ba == ba))
907- then {
908- let ay = assetBalance(this, b)
909- if ((ay == ay))
910- then if ((0 >= (ay - ar)))
911- then throw("WEST WX -> SWOP [($_$)]")
912- else nil
913- else throw("Strict value is not equal to itself.")
914- }
915- else throw("Strict value is not equal to itself.")
916- }
917- else throw("Strict value is not equal to itself.")
918- }
919- else throw("Strict value is not equal to itself.")
920- }
921- else throw("Strict value is not equal to itself.")
922- }
923- else throw("Strict value is not equal to itself.")
924- }
925-
926-
927-
928-@Callable(aq)
929-func a20 () = if ((aq.caller != this))
930- then throw("you are not allowed to arb!")
931- else {
932- let ar = assetBalance(this, b)
933- if ((ar == ar))
934- then {
935- let bb = invoke(aa, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
936- if ((bb == bb))
937- then {
938- let aZ = assetBalance(this, Y)
939- let av = invoke(W, "putOneTkn", [1, false], [AttachedPayment(Y, aZ)])
940- if ((av == av))
941- then {
942- let aw = assetBalance(this, Z)
943- if ((aw == aw))
944- then {
945- let ax = invoke(W, "getOneTkn", [c, 1], [AttachedPayment(Z, aw)])
946- if ((ax == ax))
947- then {
948- let ay = assetBalance(this, b)
949- if ((ay == ay))
950- then if ((0 >= (ay - ar)))
951- then throw("WEST SWOP -> WX [($_$)]")
952- else nil
953- else throw("Strict value is not equal to itself.")
954- }
955- else throw("Strict value is not equal to itself.")
956- }
957- else throw("Strict value is not equal to itself.")
958- }
959- else throw("Strict value is not equal to itself.")
960- }
961- else throw("Strict value is not equal to itself.")
962- }
963- else throw("Strict value is not equal to itself.")
964- }
965-
966-
967-
968-@Callable(aq)
969-func a21 () = if ((aq.caller != this))
970- then throw("you are not allowed to arb!")
971- else {
972- let ar = assetBalance(this, b)
973- if ((ar == ar))
974- then {
975- let av = invoke(ac, "putOneTkn", [1, false], [AttachedPayment(b, (ap * 1000000))])
976- if ((av == av))
977- then {
978- let aw = assetBalance(this, af)
979- if ((aw == aw))
980- then {
981- let ax = invoke(ac, "getOneTkn", [ad, 1], [AttachedPayment(af, aw)])
982- if ((ax == ax))
983- then {
984- let bc = assetBalance(this, ae)
985- let bd = invoke(ag, "exchange", [1], [AttachedPayment(ae, bc)])
986- if ((bd == bd))
987- then {
988- let ay = assetBalance(this, b)
989- if ((ay == ay))
990- then if ((0 >= (ay - ar)))
991- then throw("EGG WX -> SWOP [($_$)]")
992- else nil
993- else throw("Strict value is not equal to itself.")
994- }
995- else throw("Strict value is not equal to itself.")
996- }
997- else throw("Strict value is not equal to itself.")
998- }
999- else throw("Strict value is not equal to itself.")
1000- }
1001- else throw("Strict value is not equal to itself.")
1002- }
1003- else throw("Strict value is not equal to itself.")
1004- }
1005-
1006-
1007-
1008-@Callable(aq)
1009-func a22 () = if ((aq.caller != this))
1010- then throw("you are not allowed to arb!")
1011- else {
1012- let ar = assetBalance(this, b)
1013- if ((ar == ar))
1014- then {
1015- let be = invoke(ag, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
1016- if ((be == be))
1017- then {
1018- let bc = assetBalance(this, ae)
1019- let av = invoke(ac, "putOneTkn", [1, false], [AttachedPayment(ae, bc)])
1020- if ((av == av))
1021- then {
1022- let aw = assetBalance(this, af)
1023- if ((aw == aw))
1024- then {
1025- let ax = invoke(ac, "getOneTkn", [c, 1], [AttachedPayment(af, aw)])
1026- if ((ax == ax))
1027- then {
1028- let ay = assetBalance(this, b)
1029- if ((ay == ay))
1030- then if ((0 >= (ay - ar)))
1031- then throw("EGG SWOP -> WX [($_$)]")
1032- else nil
1033- else throw("Strict value is not equal to itself.")
1034- }
1035- else throw("Strict value is not equal to itself.")
1036- }
1037- else throw("Strict value is not equal to itself.")
1038- }
1039- else throw("Strict value is not equal to itself.")
1040- }
1041- else throw("Strict value is not equal to itself.")
1042- }
1043- else throw("Strict value is not equal to itself.")
1044- }
1045-
1046-
1047-
1048-@Callable(aq)
1049-func a23 () = if ((aq.caller != this))
1050- then throw("you are not allowed to arb!")
1051- else {
1052- let ar = assetBalance(this, b)
1053- if ((ar == ar))
1054- then {
1055- let bf = invoke(am, "swap", [ak, 1], [AttachedPayment(b, (ap * 1000000))])
1056- if ((bf == bf))
1057- then {
1058- let bg = assetBalance(this, al)
1059- let bh = invoke(ai, "exchange", [1], [AttachedPayment(al, bg)])
1060- if ((bh == bh))
1061- then {
1062- let ay = assetBalance(this, b)
1063- if ((ay == ay))
1064- then if ((0 >= (ay - ar)))
1065- then throw("PLUTO PUZZLE -> SWOP [($_$)]")
1066- else nil
1067- else throw("Strict value is not equal to itself.")
1068- }
1069- else throw("Strict value is not equal to itself.")
1070- }
1071- else throw("Strict value is not equal to itself.")
1072- }
1073- else throw("Strict value is not equal to itself.")
1074- }
1075-
1076-
1077-
1078-@Callable(aq)
1079-func a24 () = if ((aq.caller != this))
1080- then throw("you are not allowed to arb!")
1081- else {
1082- let ar = assetBalance(this, b)
1083- if ((ar == ar))
1084- then {
1085- let bi = invoke(ai, "exchange", [1], [AttachedPayment(b, (ap * 1000000))])
1086- if ((bi == bi))
1087- then {
1088- let bg = assetBalance(this, al)
1089- let bj = invoke(am, "swap", [c, 1], [AttachedPayment(al, bg)])
1090- if ((bj == bj))
1091- then {
1092- let ay = assetBalance(this, b)
1093- if ((ay == ay))
1094- then if ((0 >= (ay - ar)))
1095- then throw("PLUTO SWOP -> PUZZLE [($_$)]")
1096- else nil
1097- else throw("Strict value is not equal to itself.")
1098- }
1099- else throw("Strict value is not equal to itself.")
1100- }
1101- else throw("Strict value is not equal to itself.")
1102- }
1103- else throw("Strict value is not equal to itself.")
1104- }
1105-
1106-
1107-@Verifier(bk)
1108-func bl () = sigVerify_128Kb(bk.bodyBytes, bk.proofs[0], bk.senderPublicKey)
1109776

github/deemru/w8io/3ef1775 
144.50 ms