tx · 66hhriTNkPzoHNTfvyNrJKUcjGyB8nXW2Utmsf1zzsRK

3NAkaTXEn5ksi5J9kQdwmS6RdUhH8vvLjPi:  -0.01800000 Waves

2022.11.03 15:17 [2300926] smart account 3NAkaTXEn5ksi5J9kQdwmS6RdUhH8vvLjPi > SELF 0.00000000 Waves

{ "type": 13, "id": "66hhriTNkPzoHNTfvyNrJKUcjGyB8nXW2Utmsf1zzsRK", "fee": 1800000, "feeAssetId": null, "timestamp": 1667477877575, "version": 2, "chainId": 84, "sender": "3NAkaTXEn5ksi5J9kQdwmS6RdUhH8vvLjPi", "senderPublicKey": "FE9WhnvegU85r27QvN7xPQbDk62VjxubEV8SvUXrMcT6", "proofs": [ "663Zh2GPJU219LcUFfLgKspz6r7sTRoCAjBu99Q9gu1RJ2GSR7LVQAw8hn54FQHTXujMiCmgCeqq1Uu3A3tZBotC" ], "script": "base64:BgJgCAISBAoCCAgSCAoGCAgICAgIEgkKBwgICAgICAgSAwoBCBIECgIICBIGCgQICAgIEggKBggICAEBARIJCgcICAgIAQEBEgUKAwgIBBIECgIICBIFCgMICAgSABIDCgEIMwAHVkVSU0lPTgIFMS4wLjABDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgAACHVzZXJEYXBwCQEFdmFsdWUBCQCmCAEJAQ5nZXRTdHJpbmdCeUtleQECD2NvbmZfdXNlcnNfZGFwcAALZmVlUmVjZWl2ZXIJAQ5nZXRTdHJpbmdCeUtleQECEWNvbmZfZmVlX3JlY2VpdmVyAAtzaWduQXNzZXRJZAkA2QQBCQEOZ2V0U3RyaW5nQnlLZXkBAhhjb25mX2FjY2VwdGVkX2Fzc2V0X1NJR04ABWNocmlzCQEOZ2V0U3RyaW5nQnlLZXkBAgxjb25mX2FkbWluXzEBD2dldEludGVnZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXRCb29sZWFuQnlLZXkBA2tleQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQNrZXkHAAtkYXBwUnVubmluZwkBC3ZhbHVlT3JFbHNlAgkAmwgCBQh1c2VyRGFwcAIUY29uZl9kYXBwX2lzX3J1bm5pbmcGAA5tYWludGVuYW5jZU1TRwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQh1c2VyRGFwcAIUY29uZl9tYWludGVuYW5jZV9tc2cCAAANdXNlclN1c3BlbmRlZAIJU1VTUEVOREVEABB1c2VyVW5yZWdpc3RlcmVkAgxVTlJFR0lTVEVSRUQBC3ZhbGlkYXRlQ0lEAQNjaWQDCQEIY29udGFpbnMCBQNjaWQCAS8DAwkAZgIATAkAsQIBBQNjaWQJAAACCQCxAgEJAJEDAgkAtQkCBQNjaWQCAS8AAAA7BwkAZgIAEAkAsQIBCQCRAwIJALUJAgUDY2lkAgEvAAEHBwAHc2lnbkN1dAACAQ1rZXlVc2VyU3RhdHVzAQZjYWxsZXIJAKwCAgIMdXNlcl9zdGF0dXNfBQZjYWxsZXIBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBB2V2ZW50SWQJAKwCAgIQZ2V0X2V2ZW50X293bmVyXwUHZXZlbnRJZAERa2V5RXZlbnRBZGRlZERhdGUCBmNhbGxlcgdldmVudElkCQCsAgIJAKwCAgkArAICAhBldmVudF9hZGRlZERhdGVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RGF0ZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2RhdGVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50TmFtZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X25hbWVfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RGVzYwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2Rlc2NfBQdldmVudElkAgFfBQZjYWxsZXIBEmtleUV2ZW50RGlzcGxheUNpZAIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICEWV2ZW50X2Rpc3BsYXlDaWRfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50VGFncwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X3RhZ3NfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50RmxhZwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X2ZsYWdfBQdldmVudElkAgFfBQZjYWxsZXIBDGtleUV2ZW50Tm90ZQIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICC2V2ZW50X25vdGVfBQdldmVudElkAgFfBQZjYWxsZXIBD2tleUV2ZW50Q3Jhd2xlcgIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICEWV2ZW50X2NyYXdsZXJDaWRfBQdldmVudElkAgFfBQZjYWxsZXIBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICF2V2ZW50X3RvdGFsVGlja2V0VHlwZXNfBQdldmVudElkAgFfBQZjYWxsZXIBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgZjYWxsZXIHZXZlbnRJZAkArAICCQCsAgIJAKwCAgISZXZlbnRfdG90YWxJc3N1ZWRfBQdldmVudElkAgFfBQZjYWxsZXIBEGtleUV2ZW50Q2FuY2VsZWQCBmNhbGxlcgdldmVudElkCQCsAgIJAKwCAgkArAICAg9ldmVudF9jYW5jZWxlZF8FB2V2ZW50SWQCAV8FBmNhbGxlcgEWa2V5RXZlbnRDYW5jZWxlZFJlYXNvbgIGY2FsbGVyB2V2ZW50SWQJAKwCAgkArAICCQCsAgICFWV2ZW50X2NhbmNlbGVkUmVhc29uXwUHZXZlbnRJZAIBXwUGY2FsbGVyAQ1rZXlUaWNrZXROYW1lAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDHRpY2tldF9uYW1lXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAENa2V5VGlja2V0RGVzYwMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgx0aWNrZXRfZGVzY18FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDmtleVRpY2tldFByaWNlAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDXRpY2tldF9wcmljZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDWtleVRpY2tldERhdGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIMdGlja2V0X2RhdGVfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIUdGlja2V0X21heEF2YWlsYWJsZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBD2tleVRpY2tldE9uU2FsZQMGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg50aWNrZXRfb25TYWxlXwUHZXZlbnRJZAIBXwUGY2FsbGVyAgFfBQh0aWNrZXRJZAETa2V5VGlja2V0QW1vdW50VXNlZAQGY2FsbGVyB2V2ZW50SWQIdGlja2V0SWQFbmZ0SWQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgISdGlja2V0X2Ftb3VudFVzZWRfBQdldmVudElkAgFfBQZjYWxsZXICAV8FCHRpY2tldElkAgFfBQVuZnRJZAEUa2V5VGlja2V0SGlzdG9yeVVzZWQFBmNhbGxlcgdldmVudElkCHRpY2tldElkBW5mdElkCnVzYWdlSW5kZXgJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICE3RpY2tldF9oaXN0b3J5VXNlZF8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQCAV8FBW5mdElkAgFfBQp1c2FnZUluZGV4AQ9rZXlUaWNrZXRNYXhVc2UDBmNhbGxlcgdldmVudElkCHRpY2tldElkCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIOdGlja2V0X21heFVzZV8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBFGtleVRpY2tldFRvdGFsSXNzdWVkAwZjYWxsZXIHZXZlbnRJZAh0aWNrZXRJZAkArAICCQCsAgIJAKwCAgkArAICCQCsAgICE3RpY2tldF90b3RhbElzc3VlZF8FB2V2ZW50SWQCAV8FBmNhbGxlcgIBXwUIdGlja2V0SWQBDnZhbGlkYXRlU3RyaW5nAgNzdHIDbWF4AwkAAAIJALECAQUDc3RyAAAJAAIBAhhGaWVsZCBjYW5ub3QgYmUgaXMgZW1wdHkDCQBmAgkAsQIBBQNzdHIFA21heAkAAgEJAKwCAgUDc3RyAgwgaXMgdG9vIGxvbmcGAQt2YWxpZGF0ZUludAEDbnVtCQBmAgAABQNudW0BFmdldEV2ZW50T3duZXJCeUV2ZW50SWQBB2V2ZW50SWQJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBBQdldmVudElkAgABDHZhbGlkYXRlVXNlcgEGY2FsbGVyBAp1c2VyU3RhdHVzCQELdmFsdWVPckVsc2UCCQCdCAIFCHVzZXJEYXBwCQENa2V5VXNlclN0YXR1cwEFBmNhbGxlcgUQdXNlclVucmVnaXN0ZXJlZAMJAAACBQp1c2VyU3RhdHVzBRB1c2VyVW5yZWdpc3RlcmVkAi5SZWdpc3RlciB0aGlzIGFjY291bnQgZmlyc3Qgd2l0aCAiQWNjb3VudCIgdGFiAwkAAAIFCnVzZXJTdGF0dXMFDXVzZXJTdXNwZW5kZWQCEUFjY291bnQgc3VzcGVuZGVkAgABEXZhbGlkYXRlRXZlbnREYXRhBgZjYWxsZXIKY2lkRGlzcGxheQRuYW1lC2Rlc2NyaXB0aW9uBHRhZ3MEZGF0ZQQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQAAAgkAsQIBBQpjaWREaXNwbGF5AAAJAAIBAhtEaXNwbGF5IENJRCBjYW5ub3QgYmUgZW1wdHkDCQEBIQEJAQt2YWxpZGF0ZUNJRAEFCmNpZERpc3BsYXkJAAIBAhBQcm9ibGVtIHdpdGggQ0lEAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQRuYW1lAKwCCQACAQISMzAwIENoYXIuIG1heCBuYW1lAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQtkZXNjcmlwdGlvbgC4FwkAAgECGjMwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQRkYXRlAOgHCQACAQITMTAwMCBDaGFyLiBtYXggZGF0ZQMJAGYCCQCQAwEJALUJAgUEdGFncwIBLAAFCQACAQILNSB0YWdzIG1heC4CAAESdmFsaWRhdGVUaWNrZXREYXRhBwdldmVudElkBmNhbGxlcgRuYW1lC2Rlc2NyaXB0aW9uBXByaWNlDG1heEF2YWlsYWJsZQZtYXhVc2UECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQRuYW1lAMgBCQACAQISMTAwIENoYXIuIG1heCBuYW1lAwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQtkZXNjcmlwdGlvbgDoBwkAAgECGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAwMDCQELdmFsaWRhdGVJbnQBBQVwcmljZQYJAQt2YWxpZGF0ZUludAEFBm1heFVzZQYJAQt2YWxpZGF0ZUludAEFDG1heEF2YWlsYWJsZQkAAgECFFBvc2l0aXZlIGFtb3VudCBvbmx5AwkBASEBCQEOdmFsaWRhdGVTdHJpbmcCBQtkZXNjcmlwdGlvbgDoBwkAAgECGjEwMDAgQ2hhci4gbWF4IGRlc2NyaXB0aW9uAgABDGlkQ2FsbGVyRGF0ZQEBaQMJAQEhAQULZGFwcFJ1bm5pbmcJAAIBBQ5tYWludGVuYW5jZU1TRwkAlQoDCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQJANgEAQgIBQFpBmNhbGxlcgVieXRlcwgFCWxhc3RCbG9jawl0aW1lc3RhbXABCWlzUGF5bWVudAEBaQMJAAACCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhNObyBwYXltZW50IGF0dGFjaGVkBAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmFtb3VudAkBBXZhbHVlAQgFB3BheW1lbnQGYW1vdW50CQCUCgIFB3BheW1lbnQFBmFtb3VudAEUdmFsaWRhdGVQcmljZUFzc2V0SWQDAWkMcHJpY2VBc3NldElkDGFydHdvcmtQcmljZQQLJHQwNjU4MjY2MTgJAQlpc1BheW1lbnQBBQFpBAdwYXltZW50CAULJHQwNjU4MjY2MTgCXzEEBmFtb3VudAgFCyR0MDY1ODI2NjE4Al8yAwkBASEBCQEJaXNEZWZpbmVkAQgFB3BheW1lbnQHYXNzZXRJZAkAAgECFFdyb25nIGFzc2V0IGF0dGFjaGVkBAdhc3NldElkAwMJAGYCCQCxAgEFDHByaWNlQXNzZXRJZAAACQAAAgkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBQxwcmljZUFzc2V0SWQHCAUHcGF5bWVudAdhc3NldElkCQACAQIUV3JvbmcgYXNzZXQgYXR0YWNoZWQDCQECIT0CBQxhcnR3b3JrUHJpY2UFBmFtb3VudAkAAgECGlBheW1lbnQgYW1vdW50IGRvbid0IG1hdGNoCQCUCgIFBmFtb3VudAUHYXNzZXRJZAEMaXNFdmVudE93bmVyAgdldmVudElkBmNhbGxlcgQKZXZlbnRPd25lcgkBFmdldEV2ZW50T3duZXJCeUV2ZW50SWQBBQdldmVudElkAwkAAAIFCmV2ZW50T3duZXICAAkAAgECD0V2ZW50IG5vdCBmb3VuZAkAAAIFCmV2ZW50T3duZXIFBmNhbGxlcgELdGlja2V0RXhpc3QDBmNhbGxlcgdldmVudElkCHRpY2tldElkBAZ0aWNrZXQJAQ5nZXRTdHJpbmdCeUtleQEJAQ1rZXlUaWNrZXROYW1lAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkBAiE9AgkAsQIBBQZ0aWNrZXQAAAEPZXZlbnRJc0NhbmNlbGVkAgZpc3N1ZXIHZXZlbnRJZAkBD2dldEJvb2xlYW5CeUtleQEJARBrZXlFdmVudENhbmNlbGVkAgUGaXNzdWVyBQdldmVudElkDQZpbnZva2UBB3NldENvbmYCA2tleQN2YWwEBmNhbGxlcgkApQgBCAUGaW52b2tlBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFBWNocmlzCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQZjYWxsZXIDCQEIY29udGFpbnMCBQNrZXkCBWNvbmZfCQDMCAIJAQtTdHJpbmdFbnRyeQIFA2tleQUDdmFsBQNuaWwJAAIBAiBFbnRyaWVzIHN0YXJ0aW5nIHdpdGggY29uZl8gb25seQkAAgECIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gY2hhbmdlIHRoaXMBaQEIYWRkRXZlbnQGBG5hbWULZGVzY3JpcHRpb24EdGFncwpjaWREaXNwbGF5B2NyYXdsZXIEZGF0ZQQLJHQwNzk0Nzc5OTYJAQxpZENhbGxlckRhdGUBBQFpBAdldmVudElkCAULJHQwNzk0Nzc5OTYCXzEEBmNhbGxlcggFCyR0MDc5NDc3OTk2Al8yBAlhZGRlZERhdGUIBQskdDA3OTQ3Nzk5NgJfMwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIEDXZhbGlkYXRlRXZlbnQJARF2YWxpZGF0ZUV2ZW50RGF0YQYFBmNhbGxlcgUKY2lkRGlzcGxheQUEbmFtZQULZGVzY3JpcHRpb24FBHRhZ3MFBGRhdGUDCQECIT0CBQ12YWxpZGF0ZUV2ZW50AgAJAAIBAhVTb21ldGhpbmcgd2VudCB3cm9uZyEJAMwIAgkBDEludGVnZXJFbnRyeQIJARFrZXlFdmVudEFkZGVkRGF0ZQIFBmNhbGxlcgUHZXZlbnRJZAUJYWRkZWREYXRlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudERhdGUCBQZjYWxsZXIFB2V2ZW50SWQFBGRhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50TmFtZQIFBmNhbGxlcgUHZXZlbnRJZAUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnREZXNjAgUGY2FsbGVyBQdldmVudElkBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQESa2V5RXZlbnREaXNwbGF5Q2lkAgUGY2FsbGVyBQdldmVudElkBQpjaWREaXNwbGF5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudFRhZ3MCBQZjYWxsZXIFB2V2ZW50SWQFBHRhZ3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleUV2ZW50Q3Jhd2xlcgIFBmNhbGxlcgUHZXZlbnRJZAUHY3Jhd2xlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGY2FsbGVyBQdldmVudElkAAAJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARBrZXlFdmVudENhbmNlbGVkAgUGY2FsbGVyBQdldmVudElkBwkAzAgCCQELU3RyaW5nRW50cnkCCQEWa2V5RXZlbnRPd25lckJ5RXZlbnRJZAEFB2V2ZW50SWQFBmNhbGxlcgUDbmlsAWkBCWVkaXRFdmVudAcHZXZlbnRJZARuYW1lC2Rlc2NyaXB0aW9uBHRhZ3MKY2lkRGlzcGxheQdjcmF3bGVyBGRhdGUDCQEBIQEFC2RhcHBSdW5uaW5nCQACAQUObWFpbnRlbmFuY2VNU0cEBmNhbGxlcgkA2AQBCAgFAWkGY2FsbGVyBWJ5dGVzBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgQNdmFsaWRhdGVFdmVudAkBEXZhbGlkYXRlRXZlbnREYXRhBgUGY2FsbGVyBQpjaWREaXNwbGF5BQRuYW1lBQtkZXNjcmlwdGlvbgUEdGFncwUEZGF0ZQMJAQIhPQIFDXZhbGlkYXRlRXZlbnQCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQKZW50cnlFeGlzdAkBDmdldFN0cmluZ0J5S2V5AQkBDGtleUV2ZW50TmFtZQIFBmNhbGxlcgUHZXZlbnRJZAMJAAACBQplbnRyeUV4aXN0AgAJAAIBAg9FbnRyeSBub3QgZm91bmQEBGZsYWcJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlFdmVudEZsYWcCBQZjYWxsZXIFB2V2ZW50SWQDCQAAAgUEZmxhZwIHSUxMRUdBTAkAAgECG0Nhbm5vdCB1cGRhdGUgSUxMRUdBTCBFdmVudAkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RXZlbnROYW1lAgUGY2FsbGVyBQdldmVudElkBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlFdmVudERhdGUCBQZjYWxsZXIFB2V2ZW50SWQFBGRhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50RGVzYwIFBmNhbGxlcgUHZXZlbnRJZAULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50VGFncwIFBmNhbGxlcgUHZXZlbnRJZAUEdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5RXZlbnRDcmF3bGVyAgUGY2FsbGVyBQdldmVudElkBQdjcmF3bGVyBQNuaWwBaQELZGVsZXRlRXZlbnQBB2V2ZW50SWQEDSR0MDEwMjE2MTAyNjAJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEwMjE2MTAyNjACXzEEBmNhbGxlcggFDSR0MDEwMjE2MTAyNjACXzIECWFkZGVkRGF0ZQgFDSR0MDEwMjE2MTAyNjACXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQEDWV2ZW50VG90YWxORlQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEaa2V5RXZlbnRUb3RhbFRpY2tldHNJc3N1ZWQCBQZjYWxsZXIFB2V2ZW50SWQDCQECIT0CBQ1ldmVudFRvdGFsTkZUAAAJAAIBAi1DYW5ub3QgZGVsZXRlIGV2ZW50IHdpdGggYWxyZWFkeSBzb2xkIHRpY2tldHMEF3RvdGFsVGlja2V0VHlwZUZvckV2ZW50CQEPZ2V0SW50ZWdlckJ5S2V5AQkBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIFBmNhbGxlcgUHZXZlbnRJZAMJAGYCBRd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAAACQACAQIYRGVsZXRlIGFsbCB0aWNrZXRzIGZpcnN0CQDMCAIJAQtEZWxldGVFbnRyeQEJARFrZXlFdmVudEFkZGVkRGF0ZQIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEMa2V5RXZlbnREYXRlAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlFdmVudE5hbWUCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleUV2ZW50RGVzYwIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQESa2V5RXZlbnREaXNwbGF5Q2lkAgUGY2FsbGVyBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQxrZXlFdmVudFRhZ3MCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBD2tleUV2ZW50Q3Jhd2xlcgIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5RXZlbnRUb3RhbFRpY2tldHNJc3N1ZWQCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEGtleUV2ZW50Q2FuY2VsZWQCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFmtleUV2ZW50T3duZXJCeUV2ZW50SWQBBQdldmVudElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQFA25pbAFpAQtjYW5jZWxFdmVudAIHZXZlbnRJZAZyZWFzb24EDSR0MDExNjAxMTE2NDUJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDExNjAxMTE2NDUCXzEEBmNhbGxlcggFDSR0MDExNjAxMTE2NDUCXzIECWFkZGVkRGF0ZQgFDSR0MDExNjAxMTE2NDUCXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARBrZXlFdmVudENhbmNlbGVkAgUGY2FsbGVyBQdldmVudElkBgkAzAgCCQELU3RyaW5nRW50cnkCCQEWa2V5RXZlbnRDYW5jZWxlZFJlYXNvbgIFBmNhbGxlcgUHZXZlbnRJZAUGcmVhc29uBQNuaWwBaQEJZmxhZ0V2ZW50BAdldmVudElkBGFkZHIEZmxhZwRub3RlBA0kdDAxMjA4MDEyMTEzCQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxMjA4MDEyMTEzAl8xBAZjYWxsZXIIBQ0kdDAxMjA4MDEyMTEzAl8yAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUFY2hyaXMJAMwIAgkApQgBBQR0aGlzBQNuaWwFBmNhbGxlcgMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICAAkAzAgCAg9DSEFOR0VfUkVRVUlSRUQJAMwIAgIHRkxBR0dFRAkAzAgCAgdJTExFR0FMBQNuaWwFBGZsYWcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50RmxhZwIFBGFkZHIFB2V2ZW50SWQFBGZsYWcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUV2ZW50Tm90ZQIFBGFkZHIFB2V2ZW50SWQFBG5vdGUFA25pbAkAAgEJAKwCAgIOVW5rbm93IHN0YXR1cyAFBGZsYWcJAAIBAhNZb3UgYXJlIG5vdCBhbGxvd2VkAWkBCWFkZFRpY2tldAYHZXZlbnRJZARuYW1lC2Rlc2NyaXB0aW9uBXByaWNlDG1heEF2YWlsYWJsZQZNYXhVc2UEDSR0MDEyNjE0MTI2NTQJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDEyNjE0MTI2NTQCXzEEBmNhbGxlcggFDSR0MDEyNjE0MTI2NTQCXzIEBGRhdGUIBQ0kdDAxMjYxNDEyNjU0Al8zBAljaGVja1VzZXIJAQx2YWxpZGF0ZVVzZXIBBQZjYWxsZXIDCQECIT0CBQljaGVja1VzZXICAAkAAgEFCWNoZWNrVXNlcgMJAQ9ldmVudElzQ2FuY2VsZWQCBQZjYWxsZXIFB2V2ZW50SWQJAAIBAhhFdmVudCBoYXZlIGJlZW4gY2FuY2VsZWQDCQEBIQEJAQxpc0V2ZW50T3duZXICBQdldmVudElkBQZjYWxsZXIJAAIBAiNZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBldmVudAQOdmFsaWRhdGVUaWNrZXQJARJ2YWxpZGF0ZVRpY2tldERhdGEHBQdldmVudElkBQZjYWxsZXIFBG5hbWUFC2Rlc2NyaXB0aW9uBQVwcmljZQUMbWF4QXZhaWxhYmxlBQZNYXhVc2UDCQECIT0CBQ52YWxpZGF0ZVRpY2tldAIACQACAQIVU29tZXRoaW5nIHdlbnQgd3JvbmchBBd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAkBD2dldEludGVnZXJCeUtleQEJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVRpY2tldE5hbWUDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQRuYW1lCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5VGlja2V0RGF0ZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFBGRhdGUJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVRpY2tldERlc2MDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQtkZXNjcmlwdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmtleVRpY2tldFByaWNlAwUGY2FsbGVyBQdldmVudElkBQJpZAUFcHJpY2UJAMwIAgkBDEludGVnZXJFbnRyeQIJARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBQxtYXhBdmFpbGFibGUJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ9rZXlUaWNrZXRPblNhbGUDBQZjYWxsZXIFB2V2ZW50SWQFAmlkBgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleVRpY2tldE1heFVzZQMFBmNhbGxlcgUHZXZlbnRJZAUCaWQFBk1heFVzZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleVRpY2tldFRvdGFsSXNzdWVkAwUGY2FsbGVyBQdldmVudElkBQJpZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5RXZlbnRUb3RhbFRpY2tldFR5cGVzAgUGY2FsbGVyBQdldmVudElkCQBkAgUXdG90YWxUaWNrZXRUeXBlRm9yRXZlbnQAAQUDbmlsAWkBCmVkaXRUaWNrZXQHCHRpY2tldElkB2V2ZW50SWQEbmFtZQtkZXNjcmlwdGlvbgVwcmljZQxtYXhBdmFpbGFibGUGbWF4VXNlBA0kdDAxNDE2NjE0MjA2CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxNDE2NjE0MjA2Al8xBAZjYWxsZXIIBQ0kdDAxNDE2NjE0MjA2Al8yBARkYXRlCAUNJHQwMTQxNjYxNDIwNgJfMwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEBIQEJAQxpc0V2ZW50T3duZXICBQdldmVudElkBQZjYWxsZXIJAAIBAiNZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBldmVudAMJAQEhAQkBC3RpY2tldEV4aXN0AwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAAgECEFRpY2tldCBub3QgZm91bmQEDnZhbGlkYXRlVGlja2V0CQESdmFsaWRhdGVUaWNrZXREYXRhBwUHZXZlbnRJZAUGY2FsbGVyBQRuYW1lBQtkZXNjcmlwdGlvbgUFcHJpY2UFDG1heEF2YWlsYWJsZQUGbWF4VXNlAwkBAiE9AgUOdmFsaWRhdGVUaWNrZXQCAAkAAgECFVNvbWV0aGluZyB3ZW50IHdyb25nIQQKdGlja2V0U29sZAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkAAADCQBmAgUKdGlja2V0U29sZAUMbWF4QXZhaWxhYmxlCQACAQI+TWF4IHRpY2tldHMgYXZhaWxhYmxlIGNhbm5vdCBiZSBsb3dlciB0aGFuIGFtb3VudCBhbHJlYWR5IHNvbGQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDWtleVRpY2tldE5hbWUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ1rZXlUaWNrZXREZXNjAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAULZGVzY3JpcHRpb24JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlUaWNrZXRQcmljZQMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQFBXByaWNlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEVa2V5VGlja2V0TWF4QXZhaWxhYmxlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAUMbWF4QXZhaWxhYmxlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5VGlja2V0TWF4VXNlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAUGbWF4VXNlBQNuaWwBaQEPcGF1c2VUaWNrZXRTYWxlAwdldmVudElkCHRpY2tldElkBnN0YXR1cwQNJHQwMTUzNTExNTM5MQkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTUzNTExNTM5MQJfMQQGY2FsbGVyCAUNJHQwMTUzNTExNTM5MQJfMgQEZGF0ZQgFDSR0MDE1MzUxMTUzOTECXzMECWNoZWNrVXNlcgkBDHZhbGlkYXRlVXNlcgEFBmNhbGxlcgMJAQIhPQIFCWNoZWNrVXNlcgIACQACAQUJY2hlY2tVc2VyAwkBASEBCQEMaXNFdmVudE93bmVyAgUHZXZlbnRJZAUGY2FsbGVyCQACAQIjWW91IGFyZSBub3QgdGhlIG93bmVyIG9mIHRoaXMgZXZlbnQDCQEBIQEJAQt0aWNrZXRFeGlzdAMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAAIBAhBUaWNrZXQgbm90IGZvdW5kCQDMCAIJAQxCb29sZWFuRW50cnkCCQEPa2V5VGlja2V0T25TYWxlAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAUGc3RhdHVzBQNuaWwBaQEMZGVsZXRlVGlja2V0Agh0aWNrZXRJZAdldmVudElkBA0kdDAxNTg1NDE1ODk0CQEMaWRDYWxsZXJEYXRlAQUBaQQCaWQIBQ0kdDAxNTg1NDE1ODk0Al8xBAZjYWxsZXIIBQ0kdDAxNTg1NDE1ODk0Al8yBARkYXRlCAUNJHQwMTU4NTQxNTg5NAJfMwQJY2hlY2tVc2VyCQEMdmFsaWRhdGVVc2VyAQUGY2FsbGVyAwkBAiE9AgUJY2hlY2tVc2VyAgAJAAIBBQljaGVja1VzZXIDCQEBIQEJAQxpc0V2ZW50T3duZXICBQdldmVudElkBQZjYWxsZXIJAAIBAiNZb3UgYXJlIG5vdCB0aGUgb3duZXIgb2YgdGhpcyBldmVudAMJAQEhAQkBC3RpY2tldEV4aXN0AwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAAgECEFRpY2tldCBub3QgZm91bmQECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkAwkBAiE9AgUKYW1vdW50U29sZAAACQACAQImQ2Fubm90IGRlbGV0ZSB0aWNrZXQgdGhhdCBzb2xkIGFscmVhZHkEF3RvdGFsVGlja2V0VHlwZUZvckV2ZW50CQEPZ2V0SW50ZWdlckJ5S2V5AQkBGGtleUV2ZW50VG90YWxUaWNrZXRUeXBlcwIFBmNhbGxlcgUHZXZlbnRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQENa2V5VGlja2V0TmFtZQMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDWtleVRpY2tldERhdGUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ1rZXlUaWNrZXREZXNjAwUGY2FsbGVyBQdldmVudElkBQh0aWNrZXRJZAkAzAgCCQELRGVsZXRlRW50cnkBCQEOa2V5VGlja2V0UHJpY2UDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARVrZXlUaWNrZXRNYXhBdmFpbGFibGUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlUaWNrZXRPblNhbGUDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlUaWNrZXRNYXhVc2UDBQZjYWxsZXIFB2V2ZW50SWQFCHRpY2tldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARRrZXlUaWNrZXRUb3RhbElzc3VlZAMFBmNhbGxlcgUHZXZlbnRJZAUIdGlja2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARhrZXlFdmVudFRvdGFsVGlja2V0VHlwZXMCBQZjYWxsZXIFB2V2ZW50SWQJAGUCBRd0b3RhbFRpY2tldFR5cGVGb3JFdmVudAABBQNuaWwBaQEJYnV5VGlja2V0Awh0aWNrZXRJZAdldmVudElkBmlzc3VlcgQNJHQwMTcxMjUxNzE2MwkBDGlkQ2FsbGVyRGF0ZQEFAWkEAmlkCAUNJHQwMTcxMjUxNzE2MwJfMQQGY2FsbGVyCAUNJHQwMTcxMjUxNzE2MwJfMgQEZGF0ZQgFDSR0MDE3MTI1MTcxNjMCXzMECHRvdGFsTkZUCQELdmFsdWVPckVsc2UCCQEPZ2V0SW50ZWdlckJ5S2V5AQIUdG90YWxfdGlja2V0c19pc3N1ZWQAAAMJAQEhAQkBDGlzRXZlbnRPd25lcgIFB2V2ZW50SWQFBmlzc3VlcgkAAgECH0V2ZW50IElEIGFuZCBJc3N1ZXIgZG9uJ3QgbWF0Y2gDCQEBIQEJAQt0aWNrZXRFeGlzdAMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQJAAIBAhBUaWNrZXQgbm90IGZvdW5kBAlldmVudE5hbWUJAQ5nZXRTdHJpbmdCeUtleQEJAQxrZXlFdmVudE5hbWUCBQZpc3N1ZXIFB2V2ZW50SWQDCQAAAgUJZXZlbnROYW1lAgAJAAIBAhFBcnQgZG9lc24ndCBleGlzdAMJAQ9ldmVudElzQ2FuY2VsZWQCBQZpc3N1ZXIFB2V2ZW50SWQJAAIBAhhFdmVudCBoYXZlIGJlZW4gY2FuY2VsZWQECGlzT25TYWxlCQEPZ2V0Qm9vbGVhbkJ5S2V5AQkBD2tleVRpY2tldE9uU2FsZQMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQDCQEBIQEFCGlzT25TYWxlCQACAQIUVGlja2V0cyBub3QgZm9yIHNhbGUECmFtb3VudFNvbGQJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkBAt0aWNrZXRQcmljZQkBD2dldEludGVnZXJCeUtleQEJAQ5rZXlUaWNrZXRQcmljZQMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQEDHByaWNlQXNzZXRJZAkA2AQBBQtzaWduQXNzZXRJZAQNJHQwMTgwMTYxODA5MAkBFHZhbGlkYXRlUHJpY2VBc3NldElkAwUBaQUMcHJpY2VBc3NldElkBQt0aWNrZXRQcmljZQQGYW1vdW50CAUNJHQwMTgwMTYxODA5MAJfMQQHYXNzZXRJZAgFDSR0MDE4MDE2MTgwOTACXzIECm1heENhblNlbGwJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEVa2V5VGlja2V0TWF4QXZhaWxhYmxlAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAQNYW1vdW50Rm9yU2lnbgkAawMFBmFtb3VudAUHc2lnbkN1dABkBBJhbW91bnRGb3JPcmdhbml6ZXIJAGUCBQZhbW91bnQFDWFtb3VudEZvclNpZ24DCQAAAgUKYW1vdW50U29sZAUKbWF4Q2FuU2VsbAkAAgECDEFydCBzb2xkIG91dAQNbmV3QW1vdW50U29sZAkAZAIFCmFtb3VudFNvbGQAAQQJaXNzdWVNZXRhCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgILT3JnYW5pemVyOiAFBmlzc3VlcgIMLAogRXZlbnRJRDogBQdldmVudElkAg0sCiBUaWNrZXRJRDogBQh0aWNrZXRJZAIOLAogRXZlbnROYW1lOiAFCWV2ZW50TmFtZQIKLAogSXNzdWU6IAkApAMBBQ1uZXdBbW91bnRTb2xkAgEvCQCkAwEFCm1heENhblNlbGwECGlzc3VlTkZUCQDCCAUJAKwCAgIDU1RfCQCkAwEJAGQCBQh0b3RhbE5GVAABBQlpc3N1ZU1ldGEAAQAABwQFaWRORlQJALgIAQUIaXNzdWVORlQECnNlbGxTdGF0dXMDCQAAAgUNbmV3QW1vdW50U29sZAUKbWF4Q2FuU2VsbAcGBApyZWNlaXZlTkZUCAUBaQZjYWxsZXIEB3NvbGRLZXkJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgx0aWNrZXRfc29sZF8JAKQDAQUNbmV3QW1vdW50U29sZAIEX29mXwkApAMBBQptYXhDYW5TZWxsAgFfBQh0aWNrZXRJZAIBXwUHZXZlbnRJZAIBXwUGaXNzdWVyAgFfCQDYBAEFBWlkTkZUBAlzb2xkVmFsdWUJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQClCAEFCnJlY2VpdmVORlQCAV8JAKQDAQUEZGF0ZQIBXwUCaWQCAV8JAKQDAQUGYW1vdW50AgFfCQDYBAEFBWlkTkZUBAhzb2xkRGF0YQkBC1N0cmluZ0VudHJ5AgUHc29sZEtleQUJc29sZFZhbHVlBA1ldmVudFRvdGFsTkZUCQEPZ2V0SW50ZWdlckJ5S2V5AQkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGaXNzdWVyBQdldmVudElkBA50aWNrZXRUb3RhbE5GVAkBD2dldEludGVnZXJCeUtleQEJARRrZXlUaWNrZXRUb3RhbElzc3VlZAMFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQEBmJ1eVJlcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgICBG5mdF8JANgEAQUFaWRORlQFB3NvbGRLZXkJAMwIAgkBDEludGVnZXJFbnRyeQICFHRvdGFsX3RpY2tldHNfaXNzdWVkCQBkAgUIdG90YWxORlQAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleUV2ZW50VG90YWxUaWNrZXRzSXNzdWVkAgUGaXNzdWVyBQdldmVudElkCQBkAgUNZXZlbnRUb3RhbE5GVAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEUa2V5VGlja2V0VG90YWxJc3N1ZWQDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkBQ1uZXdBbW91bnRTb2xkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgNTVF8JAKQDAQkAZAIFCHRvdGFsTkZUAAECCF9hc3NldElkCQCsAgIJAKwCAgUIdGlja2V0SWQCAV8JANgEAQUFaWRORlQJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQ9rZXlUaWNrZXRPblNhbGUDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkBQpzZWxsU3RhdHVzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQETa2V5VGlja2V0QW1vdW50VXNlZAQFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQJANgEAQUFaWRORlQAAAkAzAgCBQhpc3N1ZU5GVAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQUGaXNzdWVyBRJhbW91bnRGb3JPcmdhbml6ZXIFB2Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUKcmVjZWl2ZU5GVAABBQVpZE5GVAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEJANkEAQULZmVlUmVjZWl2ZXIFDWFtb3VudEZvclNpZ24FB2Fzc2V0SWQFA25pbAkAzAgCBQhzb2xkRGF0YQUGYnV5UmVzAWkBCXVzZVRpY2tldAAEDSR0MDIwMjUwMjAyODgJAQxpZENhbGxlckRhdGUBBQFpBAJpZAgFDSR0MDIwMjUwMjAyODgCXzEEBmNhbGxlcggFDSR0MDIwMjUwMjAyODgCXzIEBGRhdGUIBQ0kdDAyMDI1MDIwMjg4Al8zBA0kdDAyMDI5NDIwMzMwCQEJaXNQYXltZW50AQUBaQQHcGF5bWVudAgFDSR0MDIwMjk0MjAzMzACXzEEBmFtb3VudAgFDSR0MDIwMjk0MjAzMzACXzIDCQEBIQEJAQlpc0RlZmluZWQBCAUHcGF5bWVudAdhc3NldElkCQACAQIUV3JvbmcgYXNzZXQgYXR0YWNoZWQECWV2ZW50RGF0YQkBDmdldFN0cmluZ0J5S2V5AQkArAICAgRuZnRfCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQDCQAAAgkAsQIBBQlldmVudERhdGEAAAkAAgECFFNvbWV0aGluZyB3ZW50IHdyb25nBAxldmVudERhdGFBcnIJALUJAgUJZXZlbnREYXRhAgFfBAZpc3N1ZXIJAJEDAgUMZXZlbnREYXRhQXJyAAYEB2V2ZW50SWQJAJEDAgUMZXZlbnREYXRhQXJyAAUECHRpY2tldElkCQCRAwIFDGV2ZW50RGF0YUFycgAHAwkBASEBCQELdGlja2V0RXhpc3QDBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQACAQIQVGlja2V0IG5vdCBmb3VuZAQKYW1vdW50VXNlZAkBD2dldEludGVnZXJCeUtleQEJARNrZXlUaWNrZXRBbW91bnRVc2VkBAUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAkA2AQBCQEFdmFsdWUBCAUHcGF5bWVudAdhc3NldElkBAxtYXhVc2luZ1RpbWUJAQ9nZXRJbnRlZ2VyQnlLZXkBCQEPa2V5VGlja2V0TWF4VXNlAwUGaXNzdWVyBQdldmVudElkBQh0aWNrZXRJZAMJAAACBQxtYXhVc2luZ1RpbWUFCmFtb3VudFVzZWQJAAIBCQCsAgIJAKwCAgIMVGlja2V0IHVzZWQgCQCkAwEFCmFtb3VudFVzZWQCDiB0aW1lcyBhbHJlYWR5CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQETa2V5VGlja2V0QW1vdW50VXNlZAQFBmlzc3VlcgUHZXZlbnRJZAUIdGlja2V0SWQJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkAZAIFCmFtb3VudFVzZWQAAQkAzAgCCQELU3RyaW5nRW50cnkCCQEUa2V5VGlja2V0SGlzdG9yeVVzZWQFBQZpc3N1ZXIFB2V2ZW50SWQFCHRpY2tldElkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQJAKQDAQkAZAIFCmFtb3VudFVzZWQAAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUCaWQCAV8FBmNhbGxlcgIBXwkApAMBBQRkYXRlAgFfCQCkAwEJAGQCBQphbW91bnRVc2VkAAEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBCQDZBAEFBmNhbGxlcgABCAUHcGF5bWVudAdhc3NldElkBQNuaWwBaQELZGVsZXRlRW50cnkBBWVudHJ5BAZjYWxsZXIJAKUIAQgFAWkGY2FsbGVyAwkAAAIFBmNhbGxlcgUFY2hyaXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQUFZW50cnkFA25pbAkAAgECAm5vAOG3UAk=", "height": 2300926, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 8Cphk7Sag4JAxsVZvoae7dF4LmFeDAwvg2dfhrVTKxRD Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "1.0.0"
5+
6+func b (c) = valueOrElse(getString(this, c), "")
7+
8+
9+let d = value(addressFromString(b("conf_users_dapp")))
10+
11+let e = b("conf_fee_receiver")
12+
13+let f = fromBase58String(b("conf_accepted_asset_SIGN"))
14+
15+let g = b("conf_admin_1")
16+
17+func h (c) = valueOrElse(getInteger(this, c), 0)
18+
19+
20+func i (c) = valueOrElse(getBoolean(this, c), false)
21+
22+
23+let j = valueOrElse(getBoolean(d, "conf_dapp_is_running"), true)
24+
25+let k = valueOrElse(getString(d, "conf_maintenance_msg"), "")
26+
27+let l = "SUSPENDED"
28+
29+let m = "UNREGISTERED"
30+
31+func n (o) = if (contains(o, "/"))
32+ then if (if ((76 > size(o)))
33+ then (size(split(o, "/")[0]) == 59)
34+ else false)
35+ then (16 > size(split(o, "/")[1]))
36+ else false
37+ else false
38+
39+
40+let p = 2
41+
42+func q (r) = ("user_status_" + r)
43+
44+
45+func s (t) = ("get_event_owner_" + t)
46+
47+
48+func u (r,t) = ((("event_addedDate_" + t) + "_") + r)
49+
50+
51+func v (r,t) = ((("event_date_" + t) + "_") + r)
52+
53+
54+func w (r,t) = ((("event_name_" + t) + "_") + r)
55+
56+
57+func x (r,t) = ((("event_desc_" + t) + "_") + r)
58+
59+
60+func y (r,t) = ((("event_displayCid_" + t) + "_") + r)
61+
62+
63+func z (r,t) = ((("event_tags_" + t) + "_") + r)
64+
65+
66+func A (r,t) = ((("event_flag_" + t) + "_") + r)
67+
68+
69+func B (r,t) = ((("event_note_" + t) + "_") + r)
70+
71+
72+func C (r,t) = ((("event_crawlerCid_" + t) + "_") + r)
73+
74+
75+func D (r,t) = ((("event_totalTicketTypes_" + t) + "_") + r)
76+
77+
78+func E (r,t) = ((("event_totalIssued_" + t) + "_") + r)
79+
80+
81+func F (r,t) = ((("event_canceled_" + t) + "_") + r)
82+
83+
84+func G (r,t) = ((("event_canceledReason_" + t) + "_") + r)
85+
86+
87+func H (r,t,I) = ((((("ticket_name_" + t) + "_") + r) + "_") + I)
88+
89+
90+func J (r,t,I) = ((((("ticket_desc_" + t) + "_") + r) + "_") + I)
91+
92+
93+func K (r,t,I) = ((((("ticket_price_" + t) + "_") + r) + "_") + I)
94+
95+
96+func L (r,t,I) = ((((("ticket_date_" + t) + "_") + r) + "_") + I)
97+
98+
99+func M (r,t,I) = ((((("ticket_maxAvailable_" + t) + "_") + r) + "_") + I)
100+
101+
102+func N (r,t,I) = ((((("ticket_onSale_" + t) + "_") + r) + "_") + I)
103+
104+
105+func O (r,t,I,P) = ((((((("ticket_amountUsed_" + t) + "_") + r) + "_") + I) + "_") + P)
106+
107+
108+func Q (r,t,I,P,R) = ((((((((("ticket_historyUsed_" + t) + "_") + r) + "_") + I) + "_") + P) + "_") + R)
109+
110+
111+func S (r,t,I) = ((((("ticket_maxUse_" + t) + "_") + r) + "_") + I)
112+
113+
114+func T (r,t,I) = ((((("ticket_totalIssued_" + t) + "_") + r) + "_") + I)
115+
116+
117+func U (V,W) = if ((size(V) == 0))
118+ then throw("Field cannot be is empty")
119+ else if ((size(V) > W))
120+ then throw((V + " is too long"))
121+ else true
122+
123+
124+func X (Y) = (0 > Y)
125+
126+
127+func Z (t) = valueOrElse(getString(this, s(t)), "")
128+
129+
130+func aa (r) = {
131+ let ab = valueOrElse(getString(d, q(r)), m)
132+ if ((ab == m))
133+ then "Register this account first with \"Account\" tab"
134+ else if ((ab == l))
135+ then "Account suspended"
136+ else ""
137+ }
138+
139+
140+func ac (r,ad,ae,af,ag,ah) = {
141+ let ai = aa(r)
142+ if ((ai != ""))
143+ then throw(ai)
144+ else if ((size(ad) == 0))
145+ then throw("Display CID cannot be empty")
146+ else if (!(n(ad)))
147+ then throw("Problem with CID")
148+ else if (!(U(ae, 300)))
149+ then throw("300 Char. max name")
150+ else if (!(U(af, 3000)))
151+ then throw("3000 Char. max description")
152+ else if (!(U(ah, 1000)))
153+ then throw("1000 Char. max date")
154+ else if ((size(split(ag, ",")) > 5))
155+ then throw("5 tags max.")
156+ else ""
157+ }
158+
159+
160+func aj (t,r,ae,af,ak,al,am) = {
161+ let ai = aa(r)
162+ if ((ai != ""))
163+ then throw(ai)
164+ else if (!(U(ae, 200)))
165+ then throw("100 Char. max name")
166+ else if (!(U(af, 1000)))
167+ then throw("1000 Char. max description")
168+ else if (if (if (X(ak))
169+ then true
170+ else X(am))
171+ then true
172+ else X(al))
173+ then throw("Positive amount only")
174+ else if (!(U(af, 1000)))
175+ then throw("1000 Char. max description")
176+ else ""
177+ }
178+
179+
180+func an (ao) = if (!(j))
181+ then throw(k)
182+ else $Tuple3(toBase58String(ao.transactionId), toBase58String(ao.caller.bytes), lastBlock.timestamp)
183+
184+
185+func ap (ao) = if ((size(ao.payments) == 0))
186+ then throw("No payment attached")
187+ else {
188+ let aq = value(ao.payments[0])
189+ let ar = value(aq.amount)
190+ $Tuple2(aq, ar)
191+ }
192+
193+
194+func as (ao,at,au) = {
195+ let av = ap(ao)
196+ let aq = av._1
197+ let ar = av._2
198+ if (!(isDefined(aq.assetId)))
199+ then throw("Wrong asset attached")
200+ else {
201+ let aw = if (if ((size(at) > 0))
202+ then (toBase58String(value(aq.assetId)) == at)
203+ else false)
204+ then aq.assetId
205+ else throw("Wrong asset attached")
206+ if ((au != ar))
207+ then throw("Payment amount don't match")
208+ else $Tuple2(ar, aw)
209+ }
210+ }
211+
212+
213+func ax (t,r) = {
214+ let ay = Z(t)
215+ if ((ay == ""))
216+ then throw("Event not found")
217+ else (ay == r)
218+ }
219+
220+
221+func az (r,t,I) = {
222+ let aA = b(H(r, t, I))
223+ (size(aA) != 0)
224+ }
225+
226+
227+func aB (aC,t) = i(F(aC, t))
228+
229+
230+@Callable(aD)
231+func setConf (c,aE) = {
232+ let r = toString(aD.caller)
233+ if (containsElement([g, toString(this)], r))
234+ then if (contains(c, "conf_"))
235+ then [StringEntry(c, aE)]
236+ else throw("Entries starting with conf_ only")
237+ else throw("You are not allowed to change this")
238+ }
239+
240+
241+
242+@Callable(ao)
243+func addEvent (ae,af,ag,ad,aF,ah) = {
244+ let aG = an(ao)
245+ let t = aG._1
246+ let r = aG._2
247+ let aH = aG._3
248+ let ai = aa(r)
249+ if ((ai != ""))
250+ then throw(ai)
251+ else {
252+ let aI = ac(r, ad, ae, af, ag, ah)
253+ if ((aI != ""))
254+ then throw("Something went wrong!")
255+ else [IntegerEntry(u(r, t), aH), StringEntry(v(r, t), ah), StringEntry(w(r, t), ae), StringEntry(x(r, t), af), StringEntry(y(r, t), ad), StringEntry(z(r, t), ag), StringEntry(C(r, t), aF), IntegerEntry(E(r, t), 0), BooleanEntry(F(r, t), false), StringEntry(s(t), r)]
256+ }
257+ }
258+
259+
260+
261+@Callable(ao)
262+func editEvent (t,ae,af,ag,ad,aF,ah) = if (!(j))
263+ then throw(k)
264+ else {
265+ let r = toBase58String(ao.caller.bytes)
266+ let ai = aa(r)
267+ if ((ai != ""))
268+ then throw(ai)
269+ else {
270+ let aI = ac(r, ad, ae, af, ag, ah)
271+ if ((aI != ""))
272+ then throw("Something went wrong!")
273+ else {
274+ let aJ = b(w(r, t))
275+ if ((aJ == ""))
276+ then throw("Entry not found")
277+ else {
278+ let aK = b(A(r, t))
279+ if ((aK == "ILLEGAL"))
280+ then throw("Cannot update ILLEGAL Event")
281+ else [StringEntry(w(r, t), ae), StringEntry(v(r, t), ah), StringEntry(x(r, t), af), StringEntry(z(r, t), ag), StringEntry(C(r, t), aF)]
282+ }
283+ }
284+ }
285+ }
286+
287+
288+
289+@Callable(ao)
290+func deleteEvent (t) = {
291+ let aL = an(ao)
292+ let aM = aL._1
293+ let r = aL._2
294+ let aH = aL._3
295+ let ai = aa(r)
296+ if ((ai != ""))
297+ then throw(ai)
298+ else if (!(ax(t, r)))
299+ then throw("You are not the owner of this event")
300+ else {
301+ let aN = h(E(r, t))
302+ if ((aN != 0))
303+ then throw("Cannot delete event with already sold tickets")
304+ else {
305+ let aO = h(D(r, t))
306+ if ((aO > 0))
307+ then throw("Delete all tickets first")
308+ else [DeleteEntry(u(r, t)), DeleteEntry(v(r, t)), DeleteEntry(w(r, t)), DeleteEntry(x(r, t)), DeleteEntry(y(r, t)), DeleteEntry(z(r, t)), DeleteEntry(C(r, t)), DeleteEntry(E(r, t)), DeleteEntry(F(r, t)), DeleteEntry(s(t)), DeleteEntry(D(r, t))]
309+ }
310+ }
311+ }
312+
313+
314+
315+@Callable(ao)
316+func cancelEvent (t,aP) = {
317+ let aQ = an(ao)
318+ let aM = aQ._1
319+ let r = aQ._2
320+ let aH = aQ._3
321+ let ai = aa(r)
322+ if ((ai != ""))
323+ then throw(ai)
324+ else if (!(ax(t, r)))
325+ then throw("You are not the owner of this event")
326+ else [BooleanEntry(F(r, t), true), StringEntry(G(r, t), aP)]
327+ }
328+
329+
330+
331+@Callable(ao)
332+func flagEvent (t,aR,aK,aS) = {
333+ let aT = an(ao)
334+ let aM = aT._1
335+ let r = aT._2
336+ if (containsElement([g, toString(this)], r))
337+ then if (containsElement(["", "CHANGE_REQUIRED", "FLAGGED", "ILLEGAL"], aK))
338+ then [StringEntry(A(aR, t), aK), StringEntry(B(aR, t), aS)]
339+ else throw(("Unknow status " + aK))
340+ else throw("You are not allowed")
341+ }
342+
343+
344+
345+@Callable(ao)
346+func addTicket (t,ae,af,ak,al,aU) = {
347+ let aV = an(ao)
348+ let aM = aV._1
349+ let r = aV._2
350+ let ah = aV._3
351+ let ai = aa(r)
352+ if ((ai != ""))
353+ then throw(ai)
354+ else if (aB(r, t))
355+ then throw("Event have been canceled")
356+ else if (!(ax(t, r)))
357+ then throw("You are not the owner of this event")
358+ else {
359+ let aW = aj(t, r, ae, af, ak, al, aU)
360+ if ((aW != ""))
361+ then throw("Something went wrong!")
362+ else {
363+ let aO = h(D(r, t))
364+[StringEntry(H(r, t, aM), ae), IntegerEntry(L(r, t, aM), ah), StringEntry(J(r, t, aM), af), IntegerEntry(K(r, t, aM), ak), IntegerEntry(M(r, t, aM), al), BooleanEntry(N(r, t, aM), true), IntegerEntry(S(r, t, aM), aU), IntegerEntry(T(r, t, aM), 0), IntegerEntry(D(r, t), (aO + 1))]
365+ }
366+ }
367+ }
368+
369+
370+
371+@Callable(ao)
372+func editTicket (I,t,ae,af,ak,al,am) = {
373+ let aX = an(ao)
374+ let aM = aX._1
375+ let r = aX._2
376+ let ah = aX._3
377+ let ai = aa(r)
378+ if ((ai != ""))
379+ then throw(ai)
380+ else if (!(ax(t, r)))
381+ then throw("You are not the owner of this event")
382+ else if (!(az(r, t, I)))
383+ then throw("Ticket not found")
384+ else {
385+ let aW = aj(t, r, ae, af, ak, al, am)
386+ if ((aW != ""))
387+ then throw("Something went wrong!")
388+ else {
389+ let aY = valueOrElse(getInteger(T(r, t, I)), 0)
390+ if ((aY > al))
391+ then throw("Max tickets available cannot be lower than amount already sold")
392+ else [StringEntry(H(r, t, I), ae), StringEntry(J(r, t, I), af), IntegerEntry(K(r, t, I), ak), IntegerEntry(M(r, t, I), al), IntegerEntry(S(r, t, I), am)]
393+ }
394+ }
395+ }
396+
397+
398+
399+@Callable(ao)
400+func pauseTicketSale (t,I,aZ) = {
401+ let ba = an(ao)
402+ let aM = ba._1
403+ let r = ba._2
404+ let ah = ba._3
405+ let ai = aa(r)
406+ if ((ai != ""))
407+ then throw(ai)
408+ else if (!(ax(t, r)))
409+ then throw("You are not the owner of this event")
410+ else if (!(az(r, t, I)))
411+ then throw("Ticket not found")
412+ else [BooleanEntry(N(r, t, I), aZ)]
413+ }
414+
415+
416+
417+@Callable(ao)
418+func deleteTicket (I,t) = {
419+ let bb = an(ao)
420+ let aM = bb._1
421+ let r = bb._2
422+ let ah = bb._3
423+ let ai = aa(r)
424+ if ((ai != ""))
425+ then throw(ai)
426+ else if (!(ax(t, r)))
427+ then throw("You are not the owner of this event")
428+ else if (!(az(r, t, I)))
429+ then throw("Ticket not found")
430+ else {
431+ let bc = h(T(r, t, I))
432+ if ((bc != 0))
433+ then throw("Cannot delete ticket that sold already")
434+ else {
435+ let aO = h(D(r, t))
436+[DeleteEntry(H(r, t, I)), DeleteEntry(L(r, t, I)), DeleteEntry(J(r, t, I)), DeleteEntry(K(r, t, I)), DeleteEntry(M(r, t, I)), DeleteEntry(N(r, t, I)), DeleteEntry(S(r, t, I)), DeleteEntry(T(r, t, I)), IntegerEntry(D(r, t), (aO - 1))]
437+ }
438+ }
439+ }
440+
441+
442+
443+@Callable(ao)
444+func buyTicket (I,t,aC) = {
445+ let bd = an(ao)
446+ let aM = bd._1
447+ let r = bd._2
448+ let ah = bd._3
449+ let be = valueOrElse(h("total_tickets_issued"), 0)
450+ if (!(ax(t, aC)))
451+ then throw("Event ID and Issuer don't match")
452+ else if (!(az(aC, t, I)))
453+ then throw("Ticket not found")
454+ else {
455+ let bf = b(w(aC, t))
456+ if ((bf == ""))
457+ then throw("Art doesn't exist")
458+ else if (aB(aC, t))
459+ then throw("Event have been canceled")
460+ else {
461+ let bg = i(N(aC, t, I))
462+ if (!(bg))
463+ then throw("Tickets not for sale")
464+ else {
465+ let bc = h(T(aC, t, I))
466+ let bh = h(K(aC, t, I))
467+ let at = toBase58String(f)
468+ let bi = as(ao, at, bh)
469+ let ar = bi._1
470+ let aw = bi._2
471+ let bj = h(M(aC, t, I))
472+ let bk = fraction(ar, p, 100)
473+ let bl = (ar - bk)
474+ if ((bc == bj))
475+ then throw("Art sold out")
476+ else {
477+ let bm = (bc + 1)
478+ let bn = ((((((((((("Organizer: " + aC) + ",
479+ EventID: ") + t) + ",
480+ TicketID: ") + I) + ",
481+ EventName: ") + bf) + ",
482+ Issue: ") + toString(bm)) + "/") + toString(bj))
483+ let bo = Issue(("ST_" + toString((be + 1))), bn, 1, 0, false)
484+ let bp = calculateAssetId(bo)
485+ let bq = if ((bm == bj))
486+ then false
487+ else true
488+ let br = ao.caller
489+ let bs = ((((((((((("ticket_sold_" + toString(bm)) + "_of_") + toString(bj)) + "_") + I) + "_") + t) + "_") + aC) + "_") + toBase58String(bp))
490+ let bt = ((((((((toString(br) + "_") + toString(ah)) + "_") + aM) + "_") + toString(ar)) + "_") + toBase58String(bp))
491+ let bu = StringEntry(bs, bt)
492+ let aN = h(E(aC, t))
493+ let bv = h(T(aC, t, I))
494+ let bw = [StringEntry(("nft_" + toBase58String(bp)), bs), IntegerEntry("total_tickets_issued", (be + 1)), IntegerEntry(E(aC, t), (aN + 1)), IntegerEntry(T(aC, t, I), bm), StringEntry((("ST_" + toString((be + 1))) + "_assetId"), ((I + "_") + toBase58String(bp))), BooleanEntry(N(aC, t, I), bq), IntegerEntry(O(aC, t, I, toBase58String(bp)), 0), bo, ScriptTransfer(Address(fromBase58String(aC)), bl, aw), ScriptTransfer(br, 1, bp), ScriptTransfer(Address(fromBase58String(e)), bk, aw)]
495+bu :: bw
496+ }
497+ }
498+ }
499+ }
500+ }
501+
502+
503+
504+@Callable(ao)
505+func useTicket () = {
506+ let bx = an(ao)
507+ let aM = bx._1
508+ let r = bx._2
509+ let ah = bx._3
510+ let by = ap(ao)
511+ let aq = by._1
512+ let ar = by._2
513+ if (!(isDefined(aq.assetId)))
514+ then throw("Wrong asset attached")
515+ else {
516+ let bz = b(("nft_" + toBase58String(value(aq.assetId))))
517+ if ((size(bz) == 0))
518+ then throw("Something went wrong")
519+ else {
520+ let bA = split(bz, "_")
521+ let aC = bA[6]
522+ let t = bA[5]
523+ let I = bA[7]
524+ if (!(az(aC, t, I)))
525+ then throw("Ticket not found")
526+ else {
527+ let bB = h(O(aC, t, I, toBase58String(value(aq.assetId))))
528+ let bC = h(S(aC, t, I))
529+ if ((bC == bB))
530+ then throw((("Ticket used " + toString(bB)) + " times already"))
531+ else [IntegerEntry(O(aC, t, I, toBase58String(value(aq.assetId))), (bB + 1)), StringEntry(Q(aC, t, I, toBase58String(value(aq.assetId)), toString((bB + 1))), ((((((aM + "_") + r) + "_") + toString(ah)) + "_") + toString((bB + 1)))), ScriptTransfer(Address(fromBase58String(r)), 1, aq.assetId)]
532+ }
533+ }
534+ }
535+ }
536+
537+
538+
539+@Callable(ao)
540+func deleteEntry (bD) = {
541+ let r = toString(ao.caller)
542+ if ((r == g))
543+ then [DeleteEntry(bD)]
544+ else throw("no")
545+ }
546+
547+

github/deemru/w8io/3ef1775 
49.44 ms