tx · 7j34EtuKEvVTLxQkXEdxVXzBS6knWJGGToPdzcTbUEZ3

3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm:  -0.10300000 Waves

2023.09.22 23:08 [2767055] smart account 3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm > SELF 0.00000000 Waves

{ "type": 13, "id": "7j34EtuKEvVTLxQkXEdxVXzBS6knWJGGToPdzcTbUEZ3", "fee": 10300000, "feeAssetId": null, "timestamp": 1695413281301, "version": 2, "chainId": 84, "sender": "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm", "senderPublicKey": "EVooykMNV691Venwp1dHUTBd7KWequzUcda57Wd3LQEX", "proofs": [ "4Mtr1mq18sqVDzJVVkN3KwVE6MfLBz25LTBWAcVmLD9SY6tkopRAV7aiAMJaT81cAjBWtj1psioXpCGnRTQZvBLd" ], "script": "base64:BgLbAQgCEgMKAQgSAwoBBBIAEgMKAQgSABIDCgEIEgQKAgEIEgQKAgEIEgQKAgICEgUKAwEBARIAEgQKAggIEgASAwoBCBIAEgQKAgICEgASAwoBCBIECgIICBIDCgEYEgQKAggIEgQKAggIEgMKAQgSAwoBGBIDCgEIEgUKAwgICBIECgIICBIHCgUBAQEBARIDCgEBEgUKAwEBCBIDCgEIEgMKAQgSABIECgIIARIECgIIARIDCgEIEgQKAggIEgMKAQgSABIDCgEIEgMKAQgSBAoCAgISBAoCAgISAJMCAAlEQVlNSUxMSVMAgLiZKQEUa2V5TGFzdEFyYlRpbWVCeVVzZXIBBGFkZHIJAKwCAgIQbGFzdEFyYlRpbWVVc2VyXwUEYWRkcgAGU0NBTEU4AIDC1y8ADHhwTGV2ZWxTY2FsZQCAGQAPeHBMZXZlbFJlY2lwUG93AKAfABJudW1Qb2ludHNPbkxldmVsVXAAAwAOcm9iYmVyeUNvc3RNaW4AgMLXLwAUcm9iYmVyeUNvb2xkb3duQ29lZmYAkAMADHJlcXVpcmVtZW50cwkAzAgCAghTdHJlbmd0aAkAzAgCAghBY2N1cmFjeQkAzAgCAglJbnRlbGxlY3QJAMwIAgIJRW5kdXJhbmNlCQDMCAICCURleHRlcml0eQkAzAgCAgVMZXZlbAkAzAgCAgZIZWFsdGgFA25pbAAMY2hhclN0cmVuZ3RoAAAADGNoYXJBY2N1cmFjeQABAA1jaGFySW50ZWxsZWN0AAIADWNoYXJFbmR1cmFuY2UAAwANY2hhckRleHRlcml0eQAEAAtzZWdCYWNrcGFjawAAAAtOVU1TRUdNRU5UUwAGAApOVU1NQUlOQVVYAAIACE1BWFNMT1RTAAIADU1BWFBST0RJTlNMT1QAHgAQbGFuZFJvYkNvb2xkb3ducwkAzAgCAAAJAMwIAgDAzyQJAMwIAgCg9zYJAMwIAgCA3MwUCQDMCAIAgK6mCgUDbmlsAA5NSU5fUkVTX1RPX1JPQgCA2sQJAAxyb2JJZHhMb2NrZWQAAQALZHVja0lkeEZyZWUAAAAQZHVja0lkeFByZXBhcmluZwABAQ1rZXlEdWNrSGVhbHRoAQtkdWNrQXNzZXRJZAkArAICAgtkdWNrSGVhbHRoXwULZHVja0Fzc2V0SWQBDGtleUR1Y2tDaGFycwELZHVja0Fzc2V0SWQJAKwCAgIKZHVja0NoYXJzXwULZHVja0Fzc2V0SWQBCWtleUR1Y2tYUAELZHVja0Fzc2V0SWQJAKwCAgIHZHVja1hQXwULZHVja0Fzc2V0SWQBDGtleUR1Y2tMZXZlbAELZHVja0Fzc2V0SWQJAKwCAgIKZHVja0xldmVsXwULZHVja0Fzc2V0SWQBEWtleUR1Y2tGcmVlUG9pbnRzAQtkdWNrQXNzZXRJZAkArAICAg9kdWNrRnJlZVBvaW50c18FC2R1Y2tBc3NldElkARBrZXlEdWNrRXF1aXBtZW50AQtkdWNrQXNzZXRJZAkArAICAg5kdWNrRXF1aXBtZW50XwULZHVja0Fzc2V0SWQBCWtleVVzZXJYUAEEYWRkcgkArAICAgd1c2VyWFBfBQRhZGRyAQxrZXlVc2VyTGV2ZWwBBGFkZHIJAKwCAgIKdXNlckxldmVsXwUEYWRkcgERa2V5VXNlckZyZWVQb2ludHMBBGFkZHIJAKwCAgIPdXNlckZyZWVQb2ludHNfBQRhZGRyAQ5rZXlTYXZlZEhlYWx0aAELZHVja0Fzc2V0SWQJAKwCAgIMc2F2ZWRIZWFsdGhfBQtkdWNrQXNzZXRJZAEQa2V5U2F2ZWRMb2NhdGlvbgELZHVja0Fzc2V0SWQJAKwCAgIOc2F2ZWRMb2NhdGlvbl8FC2R1Y2tBc3NldElkAQxrZXlEdWNrQnVmZnMBC2R1Y2tBc3NldElkCQCsAgICCmR1Y2tCdWZmc18FC2R1Y2tBc3NldElkARhrZXlMYXN0Um9iYmVyeVRpbWVCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICEGxhc3RSb2JiZXJ5VGltZV8FC2R1Y2tBc3NldElkARhrZXlMYXN0Um9iYmVyeUNvc3RCeUR1Y2sBC2R1Y2tBc3NldElkCQCsAgICEGxhc3RSb2JiZXJ5Q29zdF8FC2R1Y2tBc3NldElkARNrZXlMYW5kUm9iYmVyeVN0YXRlAQtsYW5kQXNzZXRJZAkArAICAhFsYW5kUm9iYmVyeVN0YXRlXwULbGFuZEFzc2V0SWQBEmtleUxhbmRDb29sZG93bkVUQQELbGFuZEFzc2V0SWQJAKwCAgIQbGFuZENvb2xkb3duRVRBXwULbGFuZEFzc2V0SWQBE2tleUR1Y2tSb2JiZXJ5U3RhdGUBC2R1Y2tBc3NldElkCQCsAgICEWR1Y2tSb2JiZXJ5U3RhdGVfBQtkdWNrQXNzZXRJZAETa2V5TG9ja2VkTGFuZEJ5RHVjawELZHVja0Fzc2V0SWQJAKwCAgIRbG9ja2VkTGFuZEJ5RHVja18FC2R1Y2tBc3NldElkARZrZXlEZWxpdmVyeURlbGF5QnlEdWNrAQtkdWNrQXNzZXRJZAkArAICAhRkZWxpdmVyeURlbGF5QnlEdWNrXwULZHVja0Fzc2V0SWQAB3hwQ2xhaW0AkE4AD3hwU3VjY2Vzc0ZsaWdodACQTgAMeHBGYWlsRmxpZ2h0ANAPAAh4cENhbGxFUwCgjQYADHhwQ3VzdG9tTmFtZQDAhD0ACnhwTmV3U0xhbmQAwJaxAgAOeHBVcGdyYWRlSW5mcmEAkE4AB3hwTWVyZ2UAwIQ9AAl4cE9uYm9hcmQAwIQ9AAZ4cEhlYWwAkE4BCWxldmVsQnlYUAECeHAJAGsDBQx4cExldmVsU2NhbGUJAGwGBQJ4cAAEBQ94cExldmVsUmVjaXBQb3cABAAEBQRET1dOBQZTQ0FMRTgBCW1heEhlYWx0aAEFbGV2ZWwJAGQCAGQFBWxldmVsAQdsZXZlbFVwAgljdXJyTGV2ZWwFbmV3WFAECG5ld0xldmVsCQEJbGV2ZWxCeVhQAQUFbmV3WFAJAMwIAgUIbmV3TGV2ZWwJAMwIAgkAaAIFEm51bVBvaW50c09uTGV2ZWxVcAkAZQIFCG5ld0xldmVsBQljdXJyTGV2ZWwFA25pbAEMZ2V0RHVja1N0YXRzBA9zdGFraW5nQ29udHJhY3QLZHVja0Fzc2V0SWQKYnVmZkVmZmVjdApmb3JjZUJ1ZmZzBAVjaGFycwkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBDGtleUR1Y2tDaGFycwEFC2R1Y2tBc3NldElkAgkwXzBfMF8wXzACAV8EA2x2bAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAAABAZoZWFsdGgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0CQENa2V5RHVja0hlYWx0aAEFC2R1Y2tBc3NldElkCQEJbWF4SGVhbHRoAQUDbHZsBApzdGF0ZUJ1ZmZzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEMa2V5RHVja0J1ZmZzAQULZHVja0Fzc2V0SWQCCTBfMF8wXzBfMAIBXwkAzggCCQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUMY2hhclN0cmVuZ3RoCQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUMY2hhckFjY3VyYWN5CQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckludGVsbGVjdAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFY2hhcnMFDWNoYXJFbmR1cmFuY2UJAMwIAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWNoYXJzBQ1jaGFyRGV4dGVyaXR5CQDMCAIFA2x2bAkAzAgCBQZoZWFsdGgFA25pbAMFCmZvcmNlQnVmZnMJAMwIAgUKYnVmZkVmZmVjdAkAzAgCBQpidWZmRWZmZWN0CQDMCAIFCmJ1ZmZFZmZlY3QJAMwIAgUKYnVmZkVmZmVjdAkAzAgCBQpidWZmRWZmZWN0BQNuaWwJAMwIAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCnN0YXRlQnVmZnMFDGNoYXJTdHJlbmd0aAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKc3RhdGVCdWZmcwUMY2hhckFjY3VyYWN5CQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpzdGF0ZUJ1ZmZzBQ1jaGFySW50ZWxsZWN0CQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpzdGF0ZUJ1ZmZzBQ1jaGFyRW5kdXJhbmNlCQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpzdGF0ZUJ1ZmZzBQ1jaGFyRGV4dGVyaXR5BQNuaWwBDmdldFJvYmJlcnlEYXRhAg9zdGFraW5nQ29udHJhY3QLZHVja0Fzc2V0SWQEC2xhc3RSb2JDb3N0CQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBGGtleUxhc3RSb2JiZXJ5Q29zdEJ5RHVjawEFC2R1Y2tBc3NldElkAAAEC2xhc3RSb2JUaW1lCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBGGtleUxhc3RSb2JiZXJ5VGltZUJ5RHVjawEFC2R1Y2tBc3NldElkAAAEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEB3JvYkNvc3QJAJYDAQkAzAgCBQ5yb2JiZXJ5Q29zdE1pbgkAzAgCCQBlAgULbGFzdFJvYkNvc3QJAGgCBRRyb2JiZXJ5Q29vbGRvd25Db2VmZgkAZQIFA25vdwULbGFzdFJvYlRpbWUFA25pbAQJZHVja1N0YXRlCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBE2tleUR1Y2tSb2JiZXJ5U3RhdGUBBQtkdWNrQXNzZXRJZAAABApsb2NrZWRMYW5kCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAkBE2tleUxvY2tlZExhbmRCeUR1Y2sBBQtkdWNrQXNzZXRJZAIABAdsYW5kRVRBCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkBEmtleUxhbmRDb29sZG93bkVUQQEFCmxvY2tlZExhbmQAAAkAlwoFBQdyb2JDb3N0BQtsYXN0Um9iVGltZQUJZHVja1N0YXRlBQpsb2NrZWRMYW5kBQdsYW5kRVRBAApMQU5EUFJFRklYAgRMQU5EAApEVUNLUFJFRklYAgREVUNLAApBUlRQUkVTQUxFAgdQUkVTQUxFAAZOVU1SRVMABgAYTUFYX0xBTkRTX1NUQUtFRF9CWV9VU0VSABkAD0RBSUxZUkVTQllQSUVDRQCA+NIBAAxXSE1VTFRJUExJRVIAgMivoCUAD0RFRkFVTFRMT0NBVElPTgIPQWZyaWNhX0ZfQWZyaWNhABBSRVNPVVJDRVBSSUNFTUlOANW1AgAKRVNTRUxMQ09FRgAKABVNSU5fVVNEVF9GRUVfREVMSVZFUlkA0IYDAAlwcm9kVHlwZXMJAMwIAgIQRmlyc3QgQWlkIEtpdCBMMQkAzAgCAhBGaXJzdCBBaWQgS2l0IEwyCQDMCAICEEZpcnN0IEFpZCBLaXQgTDMJAMwIAgILQmFja3BhY2sgTDEJAMwIAgILQmFja3BhY2sgTDIJAMwIAgILQmFja3BhY2sgTDMJAMwIAgIORm9vZCBSYXRpb24gTDEJAMwIAgIORm9vZCBSYXRpb24gTDIJAMwIAgIORm9vZCBSYXRpb24gTDMJAMwIAgILSmV0IFBhY2sgTDEJAMwIAgILSmV0IFBhY2sgTDIJAMwIAgILSmV0IFBhY2sgTDMJAMwIAgIJU2hpZWxkIEwxCQDMCAICCVNoaWVsZCBMMgkAzAgCAglTaGllbGQgTDMJAMwIAgIHTWluZSBMMQkAzAgCAgdNaW5lIEwyCQDMCAICB01pbmUgTDMJAMwIAgIHVHJhcCBMMQkAzAgCAgdUcmFwIEwyCQDMCAICB1RyYXAgTDMFA25pbAAKY29udGluZW50cwkAzAgCAghBbWVyaWNhcwkAzAgCAgZFdXJvcGUJAMwIAgIEQXNpYQkAzAgCAgZBZnJpY2EJAMwIAgIHT2NlYW5pYQUDbmlsAAlDT0VGRjJNQVQAgK3iBAAQZm9ydEFsbG93ZWRQcm9kcwkAzAgCAA8JAMwIAgAQCQDMCAIAEQkAzAgCABIJAMwIAgATCQDMCAIAFAUDbmlsABBwcm9kdWN0aW9uTWF0cml4CQDMCAICJThfOF84XzE3XzE3XzQyXzEyXzBfMzBfMCwwLDAsMCwwLDAsMF8JAMwIAgIlOF84XzhfMTdfMTdfNDJfMjRfMF82MF8wLDAsNSwyLDAsMCwwXwkAzAgCAic4XzhfOF8xN18xN180Ml8zNl8wXzEyMF8wLDAsMTAsNCwwLDAsMF8JAMwIAgIpOF8xOV8xOV84XzI3XzE5XzI2XzFfMjBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIpOF8xOV8xOV84XzI3XzE5XzUyXzFfNDBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIpOF8xOV8xOV84XzI3XzE5Xzc4XzFfODBfMCwwLDAsMCwwLDAsMF8wMDEJAMwIAgIlOF84XzhfOF84XzYwXzEzXzJfMl8wLDAsMCwwLDAsMCwwXzAxMQkAzAgCAiU4XzhfOF84XzhfNjBfMjZfMl80XzAsMCwwLDAsMCwwLDBfMDExCQDMCAICJThfOF84XzhfOF82MF8zOV8yXzhfMCwwLDAsMCwwLDAsMF8wMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzMwXzNfMzBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzYwXzNfNTBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIpMzBfMzBfM18xN18xN18zXzkwXzNfNzBfMCwwLDAsMCwwLDAsMF8xMTEJAMwIAgIrMThfMThfMTBfMThfMThfMThfMTFfNF8xMF8wLDAsMCwwLDAsMCwwXzIwMQkAzAgCAisxOF8xOF8xMF8xOF8xOF8xOF8yMl80XzIwXzAsMCwwLDAsMCwwLDBfMjAxCQDMCAICKzE4XzE4XzEwXzE4XzE4XzE4XzMzXzRfMzBfMCwwLDAsMCwwLDAsMF8yMDEJAMwIAgIqNF8xM18yMl80XzM1XzIyXzIzXzBfNTAsMSwwXzAsMCwwLDAsMCwwLDBfCQDMCAICKjRfMTNfMjJfNF8zNV8yMl80Nl8wXzUwLDEsMV8wLDIsNSwwLDAsMCwwXwkAzAgCAis0XzEzXzIyXzRfMzVfMjJfNjlfMF81MCwyLDFfMCw1LDEwLDAsMCwwLDBfCQDMCAICKjVfMjVfNDBfNV8xMF8xNV8yMF8xXzMwLDEsMV8wLDAsMCwwLDAsMCwwXwkAzAgCAio1XzI1XzQwXzVfMTBfMTVfNDBfMV8zMCwxLDJfMiwxLDMsMCwwLDAsMF8JAMwIAgIqNV8yNV80MF81XzEwXzE1XzYwXzFfMzAsMSwzXzUsMiw4LDAsMCwwLDBfBQNuaWwACXJJZHhDb2VmZgAGAApySWR4RWZmZWN0AAgAEHJJZHhSZXF1aXJlbWVudHMACQAJcklkeFNsb3RzAAoADlBST0RVQ1RQS0dTSVpFAAoAC3doSWR4TGV2ZWxzAAAACHdoSWR4UmVzAAEACHdoSWR4TWF0AAIACXdoSWR4UHJvZAADAAl3aElkeExPRlQABAAJdm9sTG9ja2VkAAAAC3ZvbE9jY3VwaWVkAAEAB3ZvbEZyZWUAAgAIdm9sVG90YWwAAwAKYnBJZHhMZXZlbAAAAAhicElkeFJlcwABAAhicElkeE1hdAACAAlicElkeFByb2QAAwAPbG9jSWR4Q29udGluZW50AAAACmxvY0lkeFR5cGUAAQAIbG9jSWR4SWQAAgEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQdhc3NldElkCQCsAgICA25vXwUHYXNzZXRJZAEaa2V5TGFuZEFzc2V0SWRUb0N1c3RvbU5hbWUBB2Fzc2V0SWQJAKwCAgIFbGNuYV8FB2Fzc2V0SWQBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBB2Fzc2V0SWQJAKwCAgIDc3RfBQdhc3NldElkASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIEdHlwZQdhc3NldElkCQC5CQIJAMwIAgIDbGFzCQDMCAIFBHR5cGUJAMwIAgUHYXNzZXRJZAUDbmlsAgFfASJrZXlTdGFrZWRUaW1lQnlUeXBlQXNzZXRJZEFuZE93bmVyAwduZnRUeXBlB2Fzc2V0SWQJb3duZXJBZGRyCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIGc3R0YW9fBQduZnRUeXBlAgFfBQdhc3NldElkAgFfBQlvd25lckFkZHIBEmtleVdhcmVob3VzZUJ5TGFuZAELbGFuZEFzc2V0SWQJAKwCAgIDd2hfBQtsYW5kQXNzZXRJZAEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEHYXNzZXRJZAkArAICAgtpbmZyYUxldmVsXwUHYXNzZXRJZAEXa2V5Rm9ydGlmaWNhdGlvbnNCeUxhbmQBC2xhbmRBc3NldElkCQCsAgICD2ZvcnRpZmljYXRpb25zXwULbGFuZEFzc2V0SWQBGmtleUR1Y2tBc3NldElkVG9DdXN0b21OYW1lAQdhc3NldElkCQCsAgICGGR1Y2tDdXN0b21OYW1lQnlBc3NldElkXwUHYXNzZXRJZAEWa2V5QWRkcmVzc1RvQ3VzdG9tTmFtZQEEYWRkcgkArAICAhhhY2NvdW50Q3VzdG9tTmFtZUJ5QWRkcl8FBGFkZHIBD2tleUFkZHJlc3NSZWZCeQEEYWRkcgkArAICAglhY2NSZWZCeV8FBGFkZHIBHGtleU9uYm9hcmRBcnRBY3RpdmF0ZWRPbkR1Y2sBC2R1Y2tBc3NldElkCQCsAgICGm9uYm9hcmRBcnRBY3RpdmF0ZWRPbkR1Y2tfBQtkdWNrQXNzZXRJZAEca2V5T25ib2FyZEFydER1Y2tBY3RpdmF0ZWRCeQEEYWRkcgkArAICAhpvbmJvYXJkQXJ0QWN0aXZhdGVkRHVja0J5XwUEYWRkcgETa2V5QWRkcmVzc1JlZmVycmFscwEEYWRkcgkArAICAg1hY2NSZWZlcnJhbHNfBQRhZGRyARBrZXlEdWNrSWRUb093bmVyAQdhc3NldElkCQCsAgICCmR1Y2tPd25lcl8FB2Fzc2V0SWQBFGtleVN0YWtlZER1Y2tCeU93bmVyAQlvd25lckFkZHIJAKwCAgISc3Rha2VkRHVja0J5T3duZXJfBQlvd25lckFkZHIBEWtleUJhY2twYWNrQnlEdWNrAQtkdWNrQXNzZXRJZAkArAICAgliYWNrUGFja18FC2R1Y2tBc3NldElkAQ9rZXlEdWNrTG9jYXRpb24BC2R1Y2tBc3NldElkCQCsAgICDWR1Y2tMb2NhdGlvbl8FC2R1Y2tBc3NldElkARVrZXlVc2VyR3dsUmVsZWFzZVRpbWUBCHVzZXJBZGRyCQCsAgICGiVzJXNfX3VzZXJHd2xSZWxlYXNlVGltZV9fBQh1c2VyQWRkcgEOa2V5RXNXYXJlaG91c2UAAhplbWVyZ2VuY3lXYXJlaG91c2VQcm9kdWN0cwAPZGVsaXZlcnlGdW5kS2V5AgxkZWxpdmVyeUZ1bmQAEWRlbGl2ZXJ5TG9ja2VkS2V5Ag5kZWxpdmVyeUxvY2tlZAANbGFzdFRvdXJJZEtleQIOJXNfX2xhc3RUb3VySWQBFWtleVRvdXJTdGF0aWNEYXRhQnlJZAEDdElkCQCsAgICFiVzJWRfX3RvdXJTdGF0aWNEYXRhX18JAKQDAQUDdElkARZrZXlUb3VyRHluYW1pY0RhdGFCeUlkAQN0SWQJAKwCAgIXJXMlZF9fdG91ckR5bmFtaWNEYXRhX18JAKQDAQUDdElkARprZXlCZXN0UmVzdWx0QnlUb3VyQW5kRHVjawIDdElkC2R1Y2tBc3NldElkCQC5CQIJAMwIAgIfJXMlZCVzX19iZXN0UmVzdWx0QnlUb3VyQW5kRHVjawkAzAgCCQCkAwEFA3RJZAkAzAgCBQtkdWNrQXNzZXRJZAUDbmlsAgJfXwAJaWR4U3RhdGljAAAACmlkeER5bmFtaWMAAQAKdFN0YXRpY0VuZAAGAA50RHluYW1pY1N0YXR1cwABAQtnZXRUb3VyRGF0YQIMdG91ckNvbnRyYWN0A3RJZAQGc3RhdGljCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQx0b3VyQ29udHJhY3QJARVrZXlUb3VyU3RhdGljRGF0YUJ5SWQBBQN0SWQJAKwCAgkArAICAhlFcnJvciByZWFkaW5nIHRvdXJuYW1lbnQgCQCkAwEFA3RJZAIFIGRhdGECAl9fBAdkeW5hbWljCQC8CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQx0b3VyQ29udHJhY3QJARZrZXlUb3VyRHluYW1pY0RhdGFCeUlkAQUDdElkCQCsAgIJAKwCAgIZRXJyb3IgcmVhZGluZyB0b3VybmFtZW50IAkApAMBBQN0SWQCBSBkYXRhAgJfXwkAzAgCBQZzdGF0aWMJAMwIAgUHZHluYW1pYwUDbmlsAQ5pc0luVG91cm5hbWVudAIMdG91ckNvbnRyYWN0CGxvY2F0aW9uBAZsYXN0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUMdG91ckNvbnRyYWN0BQ1sYXN0VG91cklkS2V5AAAEA2xvYwkAtQkCBQhsb2NhdGlvbgIBXwQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQFdERhdGEJAQtnZXRUb3VyRGF0YQIFDHRvdXJDb250cmFjdAUGbGFzdElkBAZzdGF0aWMJAJEDAgUFdERhdGEFCWlkeFN0YXRpYwQHZHluYW1pYwkAkQMCBQV0RGF0YQUKaWR4RHluYW1pYwMDAwkAAAIJAJEDAgUDbG9jBQpsb2NJZHhUeXBlAgFUCQAAAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFA2xvYwUPbG9jSWR4Q29udGluZW50BQZsYXN0SWQHCQAAAgkAkQMCBQdkeW5hbWljBQ50RHluYW1pY1N0YXR1cwIKSU5QUk9HUkVTUwcJAGYCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RhdGljBQp0U3RhdGljRW5kBQNub3cHARJnZXRSZWNpcGVNYXRlcmlhbHMBBnJlY2lwZQkAaAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQZyZWNpcGUFCXJJZHhDb2VmZgUJQ09FRkYyTUFUABZLU19TRVBBUkFURV9QVUJMSUNfS0VZBwAYS1NfQUxMT1dfQklHX0lORlJBX01FUkdFBwARS1NfQUxMT1dfREVMSVZFUlkGAAVjaGFpbgkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQALdXNkdEFzc2V0SWQEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDABIITaerIIAz9O0bvKju6Lk7zJgt0LXfoHlqjUI/moD/+5AwkAAAIBAVQFByRtYXRjaDABIFWx2J9yh4Lv5eNbjawFq2XemkOhLxa7BfMat4el8cUYCQACAQINVW5rbm93biBjaGFpbgAVZGVmYXVsdFJlc3RBZGRyZXNzU3RyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAiMzUFFDdXZGYnZoNExrUFVucm5VMXozam5iQTFwOW0zV05odgMJAAACAQFUBQckbWF0Y2gwAiMzTXVta0dHenRDS0FYcFdEcXhrZGRvZnFYU1VicVFrdlNKeQkAAgECDVVua25vd24gY2hhaW4AEUluZnJhVXBncmFkZUNvc3RTBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAIDIr6AlAwkAAAIBAVQFByRtYXRjaDAAgMLXLwkAAgECDVVua25vd24gY2hhaW4ADmFyYml0cmFnZURlbGF5BAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAIC4mSkDCQAAAgEBVAUHJG1hdGNoMADg1AMJAAIBAg1Vbmtub3duIGNoYWluAANTRVACAl9fAAVNVUxUNgDAhD0ABU1VTFQ4AIDC1y8ABVNTSVpFABkABU1TSVpFAGQABUxTSVpFAOEBAAZYTFNJWkUAkAMAB1hYTFNJWkUA8QQABUlURVI2CQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFBQNuaWwBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABFJZHhDZmdTdGFraW5nRGFwcAABABFJZHhDZmdFY29ub215RGFwcAACABRJZHhDZmdHb3Zlcm5hbmNlRGFwcAADAA1JZHhDZmdXbGdEYXBwAAQAFElkeENmZ1RvdXJuYW1lbnREYXBwAAcAD0lkeENmZ0FjcmVzRGFwcAAIAQprZXlSZXN0Q2ZnAAIOJXNfX3Jlc3RDb25maWcBDmtleVJlc3RBZGRyZXNzAAIMJXNfX3Jlc3RBZGRyARFyZWFkUmVzdENmZ09yRmFpbAEEcmVzdAkAvAkCCQEPZ2V0U3RyaW5nT3JGYWlsAgUEcmVzdAkBCmtleVJlc3RDZmcABQNTRVABGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIHcmVzdENmZwNpZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFB3Jlc3RDZmcFA2lkeAkArAICAipSZXN0IGNmZyBkb2Vzbid0IGNvbnRhaW4gYWRkcmVzcyBhdCBpbmRleCAJAKQDAQUDaWR4AAxyZXN0Q29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBDmtleVJlc3RBZGRyZXNzAAUVZGVmYXVsdFJlc3RBZGRyZXNzU3RyAAdyZXN0Q2ZnCQERcmVhZFJlc3RDZmdPckZhaWwBBQxyZXN0Q29udHJhY3QAD3N0YWtpbmdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFEUlkeENmZ1N0YWtpbmdEYXBwAA9lY29ub215Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRFJZHhDZmdFY29ub215RGFwcAALZ292Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdHb3Zlcm5hbmNlRGFwcAALd2xnQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBQ1JZHhDZmdXbGdEYXBwABJ0b3VybmFtZW50Q29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdUb3VybmFtZW50RGFwcAANYWNyZXNDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFD0lkeENmZ0FjcmVzRGFwcAAKcmVjTGFuZE51bQAAAAtyZWNMYW5kU2l6ZQABAAtyZWNUZXJyYWlucwACAAxyZWNDb250aW5lbnQAAwANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0AA9hY3Jlc0Fzc2V0SWRLZXkCDGFjcmVzQXNzZXRJZAAMYWNyZXNBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJwIAgUNYWNyZXNDb250cmFjdAUPYWNyZXNBc3NldElkS2V5AhdBQ1JFUyBpcyBub3QgaXNzdWVkIHlldAALcmFuZG9tRGVsYXkAAgEJa2V5Q29tbWl0AQdhZGRyZXNzCQCsAgICE2ZpbmlzaEJsb2NrRm9yQWRkcl8FB2FkZHJlc3MBEWtleVJlc1Byb3BvcnRpb25zAAITcmVzVHlwZXNQcm9wb3J0aW9ucwEWa2V5UmVzVHlwZXNCeUNvbnRpbmVudAEJY29udGluZW50CQCsAgICFHJlc1R5cGVzQnlDb250aW5lbnRfBQljb250aW5lbnQBFWtleVN0YWtlZExhbmRzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICE3N0YWtlZExhbmRzQnlPd25lcl8FCW93bmVyQWRkcgEWa2V5U3Rha2VkUGllY2VzQnlPd25lcgEJb3duZXJBZGRyCQCsAgICFHN0YWtlZFBpZWNlc0J5T3duZXJfBQlvd25lckFkZHIBCGFzU3RyaW5nAQF2BAckbWF0Y2gwBQF2AwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAUBcwkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwEFYXNJbnQBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIDSW50BAFuBQckbWF0Y2gwBQFuCQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQlhc0Jvb2xlYW4BAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBcwUHJG1hdGNoMAUBcwkAAgECGWZhaWwgdG8gY2FzdCBpbnRvIEJvb2xlYW4BD251bVBpZWNlc0J5U2l6ZQEIbGFuZFNpemUEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAFBVNTSVpFAwkAAAICAU0FByRtYXRjaDAFBU1TSVpFAwkAAAICAUwFByRtYXRjaDAFBUxTSVpFAwkAAAICAlhMBQckbWF0Y2gwBQZYTFNJWkUDCQAAAgIDWFhMBQckbWF0Y2gwBQdYWExTSVpFCQACAQIRVW5rbm93biBsYW5kIHNpemUBB2lzRGlnaXQBAXMJAQlpc0RlZmluZWQBCQC2CQEFAXMBCmtleUJsb2NrZWQAAhBjb250cmFjdHNCbG9ja2VkARFrZXlMYXN0VHhJZEJ5VXNlcgEEYWRkcgkArAICAg9sYXN0VHhJZEJ5VXNlcl8FBGFkZHIBCmZpeGVkUG9pbnQCA3ZhbAhkZWNpbWFscwQGdGVuUG93CQBsBgAKAAAFCGRlY2ltYWxzAAAAAAUERE9XTgQHbG93UGFydAkApAMBCQBqAgUDdmFsBQZ0ZW5Qb3cEBnplcm9lcwkAsAICCQCkAwEFBnRlblBvdwkAZAIAAQkAsQIBBQdsb3dQYXJ0CQCsAgIJAKwCAgkArAICCQCkAwEJAGkCBQN2YWwFBnRlblBvdwIBLgUGemVyb2VzBQdsb3dQYXJ0AQ9nZXRSYW5kb21OdW1iZXIDCG1heFZhbHVlDGZpbmlzaEhlaWdodAphdXhFbnRyb3B5BA9yYW5kb21TZWVkQmxvY2sJAQV2YWx1ZQEJAO0HAQUMZmluaXNoSGVpZ2h0BApyYW5kb21IYXNoCQD3AwEJAMsBAgkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYFCmF1eEVudHJvcHkJAGoCCQCxCQEFCnJhbmRvbUhhc2gFCG1heFZhbHVlAA1pbmN1YmF0b3JBZGRyBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBAiMzUEVrdFZ1eDJSaGNoU042M0RzRG80YjRtejRRcXpLU2VEdgMJAAACAQFUBQckbWF0Y2gwBQR0aGlzCQACAQINVW5rbm93biBjaGFpbgALYnJlZWRlckFkZHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQRFZ1VTQ1SDdFaDVkbXROYm5STlJTdEd3VUxBN05ZNkhiAwkAAAIBAVQFByRtYXRjaDAFBHRoaXMJAAIBAg1Vbmtub3duIGNoYWluAANwdWIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDADBRZLU19TRVBBUkFURV9QVUJMSUNfS0VZASCrF1ePFWfjWVRBsNZy62abxKPTZl7VmYZQ35g3H7IJCAEgT1PiGj9UqNadUk4THUYnVb2zU/Mse8lUVLD/Q8G0FCgDCQAAAgEBVAUHJG1hdGNoMAEgT1PiGj9UqNadUk4THUYnVb2zU/Mse8lUVLD/Q8G0FCgJAAIBAg1Vbmtub3duIGNoYWluAAxFTVBUWV9QUk9ENTABkAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFGSVZFTUlOVVRFU01JTExJUwDgpxIAElRFTl9NSU5VVEVTX01JTExJUwDAzyQADFJFTkFNSU5HQ09TVADAlrECAApNQVhOQU1FTEVOADIAFUluZnJhVXBncmFkZUNvc3RTVXNkdACAreIEAAxFWFBNQVRFUklBTFMEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAApt2C7asHAwkAAAIBAVQFByRtYXRjaDAAqqeBswkJAAIBAg1Vbmtub3duIGNoYWluAAdFWFBVU0RUBAckbWF0Y2gwBQVjaGFpbgMJAAACAQFXBQckbWF0Y2gwAIDlmncDCQAAAgEBVAUHJG1hdGNoMACA5Zp3CQACAQINVW5rbm93biBjaGFpbgAMU19DT1NUX0FDUkVTAIDyi6gJAAVGSVZFWAkAtgIBAAUAB1RXRU5UWVgJALYCAQAUAAhUV0VOVFkyWAkAtgIBCQBoAgAUABQACFRXRU5UWTNYCQC2AgEJAGgCCQBoAgAUABQAFAAIVFdFTlRZNFgJALYCAQkAaAIJAGgCCQBoAgAUABQAFAAUAAhUV0VOVFk1WAkAtgIBCQBoAgkAaAIJAGgCCQBoAgAUABQAFAAUABQAD1BSRVNBTEVOVU1MQU5EUwD0AwESa2V5TmV4dEZyZWVMYW5kTnVtAAILbmV4dExhbmROdW0BGmtleUxhbmRDdXN0b21OYW1lVG9Bc3NldElkAQRuYW1lCQCsAgICBGxjbl8FBG5hbWUBEGtleUxhbmRUb0Fzc2V0SWQBB2xhbmROdW0JAKwCAgIDbGFfBQdsYW5kTnVtAR5rZXlJbmZyYUxldmVsQnlBc3NldElkQW5kT3duZXICB2Fzc2V0SWQJb3duZXJBZGRyCQCsAgIJAKwCAgkArAICAgVpbGFvXwUHYXNzZXRJZAIBXwUJb3duZXJBZGRyARFrZXlMYW5kTnVtVG9Pd25lcgEHbGFuZE51bQkArAICAgNsb18FB2xhbmROdW0BGmtleUR1Y2tDdXN0b21OYW1lVG9Bc3NldElkAQRuYW1lCQCsAgICEWR1Y2tCeUN1c3RvbU5hbWVfBQRuYW1lARZrZXlDdXN0b21OYW1lVG9BZGRyZXNzAQRuYW1lCQCsAgICFGFjY291bnRCeUN1c3RvbU5hbWVfBQRuYW1lAQlrZXlPbGRpZXMAAgpvbGRpZXNMaXN0AAtjbGFpbU1vZGVXaAAAAA1jbGFpbU1vZGVEdWNrAAEAE2NsYWltTW9kZVdoVGhlbkR1Y2sAAgAIZmxIZWFsdGgAAAALZmxUaW1lc3RhbXAABQAHZmxCb251cwAGAAtmbFByb2RzVXNlZAAHAQduZnROYW1lAgdsYW5kTnVtCGxhbmRTaXplCQCsAgIJAKwCAgUKTEFORFBSRUZJWAUHbGFuZE51bQUIbGFuZFNpemUBCHRvVm9sdW1lAgZhbW91bnQHcGtnU2l6ZQQEcGtncwMJAGcCBQZhbW91bnQAAAkAaQIJAGUCCQBkAgUGYW1vdW50BQdwa2dTaXplAAEFB3BrZ1NpemUJAQEtAQkAaQIJAGUCCQBkAgkBAS0BBQZhbW91bnQFB3BrZ1NpemUAAQUHcGtnU2l6ZQkAaAIFBHBrZ3MFBU1VTFQ4ARNkaXN0cmlidXRlQnlXZWlnaHRzAgV0b3RhbAd3ZWlnaHRzBANzdW0JAGQCCQBkAgkAZAIJAGQCCQBkAgkAkQMCBQd3ZWlnaHRzAAAJAJEDAgUHd2VpZ2h0cwABCQCRAwIFB3dlaWdodHMAAgkAkQMCBQd3ZWlnaHRzAAMJAJEDAgUHd2VpZ2h0cwAECQCRAwIFB3dlaWdodHMABQMJAGcCAAAFA3N1bQkAAgECEFplcm8gd2VpZ2h0cyBzdW0EBW5vcm02CQBrAwUFdG90YWwFBU1VTFQ2BQNzdW0KAQpub3JtYWxpemVyAgNhY2MEZWxlbQkAzQgCBQNhY2MJAGsDBQRlbGVtBQVub3JtNgUFTVVMVDYKAAIkbAUHd2VpZ2h0cwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEKbm9ybWFsaXplcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgESZ2V0TmVlZGVkTWF0ZXJpYWxzAQV0b3RhbAQFcHJvcHMJALUJAgkBBXZhbHVlAQkAoggBCQERa2V5UmVzUHJvcG9ydGlvbnMAAgFfAwkBAiE9AgkAkAMBBQVwcm9wcwUGTlVNUkVTCQACAQIWV3JvbmcgcHJvcG9ydGlvbnMgZGF0YQQBcgkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAgkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMAAwkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMABAkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcHJvcHMABQUDbmlsCQETZGlzdHJpYnV0ZUJ5V2VpZ2h0cwIFBXRvdGFsBQFyARFzdWJ0cmFjdE1hdGVyaWFscwMMc2hvdWxkVXNlTWF0A2hhcwl0b3RhbE5lZWQEBG5lZWQJARJnZXROZWVkZWRNYXRlcmlhbHMBBQl0b3RhbE5lZWQKAQpzdWJ0cmFjdG9yAgNhY2MDaWR4BAZyZXN1bHQJAGUCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUDaGFzBQNpZHgJAJEDAgUEbmVlZAUDaWR4AwkAZgIAAAUGcmVzdWx0CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICGE5vdCBlbm91Z2ggbWF0ZXJpYWwgaWR4PQkApAMBBQNpZHgCCywgeW91IGhhdmUgCQCRAwIFA2hhcwUDaWR4AgssIGJ1dCBuZWVkIAkApAMBCQCRAwIFBG5lZWQFA2lkeAkAzQgCBQNhY2MJAKQDAQUGcmVzdWx0AwUMc2hvdWxkVXNlTWF0CgACJGwFBUlURVI2CgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQpzdWJ0cmFjdG9yAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGBQNoYXMBEXN1YnRyYWN0RXF1aXBtZW50AgVvbGRFcQVwVXNlZAMJAAACBQVwVXNlZAIACQCUCgIFBW9sZEVxBwoBB3N1YlVzZWQCA2FjYwZpZHhBbXQEBXBhcnRzCQC1CQIFBmlkeEFtdAIBLAMJAQIhPQIJAJADAQUFcGFydHMAAgkAAgECKEluY29ycmVjdCBmb3JtYXQsIHNob3VsZCBiZSBpbmRleCxhbW91bnQEA2lkeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAADAwkAZgIAAAUDaWR4BgkAZwIFA2lkeAkAkAMBBRBwcm9kdWN0aW9uTWF0cml4CQACAQITVW5rbm93biBwcm9kdWN0IGlkeAQDYW10CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQQHZXFQYXJ0cwkAtQkCCAUDYWNjAl8xCQCsAgIJAJEDAgUFcGFydHMAAAIBOgMJAQIhPQIJAJADAQUHZXFQYXJ0cwACCQACAQkArAICCQCsAgICD1lvdSBkb24ndCBoYXZlIAkAkQMCBQlwcm9kVHlwZXMFA2lkeAIJIGVxdWlwcGVkBAN0bXAJAJEDAgUHZXFQYXJ0cwABBAZudW1MZW4DCQEHaXNEaWdpdAEJAK8CAgkAsAICBQN0bXAAAQABAAIAAQQEY3VycgkBDXBhcnNlSW50VmFsdWUBCQCvAgIFA3RtcAUGbnVtTGVuBAR0YWlsCQCwAgIFA3RtcAUGbnVtTGVuBAZuZXdBbXQDCQBnAgUEY3VycgUDYW10CQBlAgUEY3VycgUDYW10CQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICDVlvdSBlcXVpcHBlZCAJAKQDAQUEY3VycgIEIG9mIAkAkQMCBQlwcm9kVHlwZXMFA2lkeAITLCBidXQgdHJpZWQgdG8gdXNlIAkApAMBBQNhbXQJAJQKAgkArAICCQCsAgIJAKwCAgkArAICCQCRAwIFB2VxUGFydHMAAAkAkQMCBQVwYXJ0cwAAAgE6CQCkAwEFBm5ld0FtdAUEdGFpbAMIBQNhY2MCXzIGAwMJAGcCBQNpZHgABgkAZwIACAUDaWR4BwkAAAIFBm5ld0FtdAAABwoAAiRsCQC1CQIFBXBVc2VkAgFfCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQVvbGRFcQcKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBB3N1YlVzZWQCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBl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DXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAAEBWNvdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIFEGZvcnRBbGxvd2VkUHJvZHMFCnByb2R1Y3RJZHgJAAIBCQCsAgIJAKwCAgIJUHJvZHVjdCAnCQCRAwIFCXByb2RUeXBlcwUKcHJvZHVjdElkeAIhJyBjYW5ub3QgYmUgdXNlZCBmb3IgbGFuZCBkZWZlbnNlAwkAZgIAAAUFY291bnQJAAIBAhdDb3VudCBjYW4ndCBiZSBuZWdhdGl2ZQMJAGYCBQVjb3VudAUNTUFYUFJPRElOU0xPVAkAAgEJAKwCAgkArAICCQCsAgICFENhbid0IHB1dCBtb3JlIHRoYW4gCQCkAwEFDU1BWFBST0RJTlNMT1QCBCBvZiAJAJEDAgUJcHJvZFR5cGVzBQpwcm9kdWN0SWR4AwkAAAIFBWNvdW50AAAJAJUKAwUFcExpc3QFCG9jY3VwaWVkBQRmcmVlBARoZWFkCQDJAQIFBXBMaXN0CQBoAgAIBQpwcm9kdWN0SWR4BARjdXJyCQCxCQEJAMkBAgkAygECBQVwTGlzdAkAaAIACAUKcHJvZHVjdElkeAAIBAR0YWlsCQDKAQIFBXBMaXN0CQBoAgAICQBkAgUKcHJvZHVjdElkeAABBAZyZWNpcGUJALUJAgkAkQMCBRBwcm9kdWN0aW9uTWF0cml4BQpwcm9kdWN0SWR4AgFfAwMJAQEhAQUKaXNQb3NpdGl2ZQkAZgIFBWNvdW50BQRjdXJyBwkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAglZb3UgaGF2ZSAJAKQDAQUEY3VycgIEIG9mIAkAkQMCBQlwcm9kVHlwZXMFCnByb2R1Y3RJZHgCEywgYnV0IHRyaWVkIHRvIHVzZSAJAKQDAQUFY291bnQEBm5ld0FtdAMDCQEBIQEFCmlzUG9zaXRpdmUJARVjaGVja1N0YXRSZXF1aXJlbWVudHMCBQlkdWNrU3RhdHMJALUJAgkAkQMCBQZyZWNpcGUFEHJJZHhSZXF1aXJlbWVudHMCASwHCQBlAgUEY3VycgUFY291bnQJAGQCBQRjdXJyBQVjb3VudAQIZGVsdGFWb2wJAGUCCQEIdG9Wb2x1bWUCBQZuZXdBbXQFDlBST0RVQ1RQS0dTSVpFCQEIdG9Wb2x1bWUCBQRjdXJyBQ5QUk9EVUNUUEtHU0laRQkAlQoDCQDLAQIJAMsBAgUEaGVhZAkAmgMBBQZuZXdBbXQFBHRhaWwJAGQCBQhvY2N1cGllZAUIZGVsdGFWb2wJAGUCBQRmcmVlBQhkZWx0YVZvbAEIYWRkUHJvZEIHBmlkeENudAVwTGlzdAppc1Bvc2l0aXZlB3NlZ21lbnQHbWFpbkF1eARzbG90CWR1Y2tTdGF0cwQFcGFydHMJALUJAgUGaWR4Q250AgE6AwkBAiE9AgkAkAMBBQVwYXJ0cwACCQACAQIoSW5jb3JyZWN0IGZvcm1hdCwgc2hvdWxkIGJlIGluZGV4OmFtb3VudAMDCQEBIQEFCmlzUG9zaXRpdmUJAQIhPQIJALECAQkAkQMCBQVwYXJ0cwAAAAIHCQACAQIrUHJvZHVjdCBpZHggc2hvdWxkIGJlIDIgZGlnaXRzLCB6ZXJvIHBhZGRlZAQKcHJvZHVjdElkeAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBXBhcnRzAAAEBWNvdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFcGFydHMAAQMDCQBmAgAABQpwcm9kdWN0SWR4BgkAZwIFCnByb2R1Y3RJZHgJAJADAQUQcHJvZHVjdGlvbk1hdHJpeAkAAgECE1Vua25vd24gcHJvZHVjdCBpZHgDCQBmAgAABQVjb3VudAkAAgECF0NvdW50IGNhbid0IGJlIG5lZ2F0aXZlAwkAZgIFBWNvdW50BQ1NQVhQUk9ESU5TTE9UCQACAQkArAICCQCsAgIJAKwCAgIUQ2FuJ3QgcHV0IG1vcmUgdGhhbiAJAKQDAQUNTUFYUFJPRElOU0xPVAIEIG9mIAkAkQMCBQlwcm9kVHlwZXMFCnByb2R1Y3RJZHgDCQAAAgUFY291bnQAAAkAlAoCBQVwTGlzdAcEBGhlYWQJAMkBAgUFcExpc3QJAGgCAAgFCnByb2R1Y3RJZHgEBGN1cnIJALEJAQkAyQECCQDKAQIFBXBMaXN0CQBoAgAIBQpwcm9kdWN0SWR4AAgEBHRhaWwJAMoBAgUFcExpc3QJAGgCAAgJAGQCBQpwcm9kdWN0SWR4AAEEBnJlY2lwZQkAtQkCCQCRAwIFEHByb2R1Y3Rpb25NYXRyaXgFCnByb2R1Y3RJZHgCAV8DAwkBASEBBQppc1Bvc2l0aXZlCQBmAgUFY291bnQFBGN1cnIHCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCVlvdSBoYXZlIAkApAMBBQRjdXJyAgQgb2YgCQCRAwIFCXByb2RUeXBlcwUKcHJvZHVjdElkeAITLCBidXQgdHJpZWQgdG8gdXNlIAkApAMBBQVjb3VudAQJaXNCaWdJdGVtAwMJAQEhAQUKaXNQb3NpdGl2ZQkBFWNoZWNrU3RhdFJlcXVpcmVtZW50cwIFCWR1Y2tTdGF0cwkAtQkCCQCRAwIFBnJlY2lwZQUQcklkeFJlcXVpcmVtZW50cwIBLAcEBmNvbXBhdAkAkQMCBQZyZWNpcGUFCXJJZHhTbG90cwMJAAACBQZjb21wYXQCAAkAAgECF0l0ZW0gY2Fubm90IGJlIGVxdWlwcGVkBAFjCQENcGFyc2VJbnRWYWx1ZQEFBmNvbXBhdAQEY1NlZwkAaQIFAWMAZAMJAQIhPQIFB3NlZ21lbnQFBGNTZWcJAAIBAhRTZWdtZW50IGluY29tcGF0aWJsZQQIY01haW5BdXgJAGkCCQBqAgUBYwBkAAoDCQECIT0CBQdtYWluQXV4BQhjTWFpbkF1eAkAAgECEVNsb3QgaW5jb21wYXRpYmxlBAljTnVtU2xvdHMJAGoCBQFjAAoDAwkBAiE9AgUEc2xvdAAACQBmAgUJY051bVNsb3RzAAEHCQACAQIeQmlnIGl0ZW1zIHNob3VsZCBvY2N1cHkgc2xvdCAwCQBmAgUJY051bVNsb3RzAAEHCQCUCgIJAMsBAgkAywECBQRoZWFkCQCaAwEJAGQCBQRjdXJyAwUKaXNQb3NpdGl2ZQUFY291bnQJAQEtAQUFY291bnQFBHRhaWwFCWlzQmlnSXRlbQELc2xvdHNHcm91cEIGAWcEYnBJbgppc1Bvc2l0aXZlB3NlZ21lbnQHbWFpbkF1eAVzdGF0cwMJAQIhPQIFAWcCAAQFc2xvdHMJALUJAgUBZwIBLAMJAGYCCQCQAwEFBXNsb3RzBQhNQVhTTE9UUwkAAgECEldyb25nIHNsb3RzIGZvcm1hdAQCczAJAJEDAgUFc2xvdHMAAAQCczEDCQBmAgkA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cQULc2VnQmFja3BhY2sCATsAAQQKYnVmZkVmZmVjdAMJAAACBQhzZWdCcEF1eAIAAAAEBGF1eDAJAJEDAgkAtQkCBQhzZWdCcEF1eAIBLAAAAwkAAAIFBGF1eDACAAAABAZpZHhDbnQJALUJAgUEYXV4MAIBOgQDaWR4CQCRAwIFBmlkeENudAAABANjbnQJAJEDAgUGaWR4Q250AAEDAwMDAwkAAAIFA2lkeAICMDYGCQAAAgUDaWR4AgIwNwYJAAACBQNpZHgCAjA4CQECIT0CBQNjbnQCAAcJAGYCCQENcGFyc2VJbnRWYWx1ZQEFA2NudAAABwkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkAkQMCBRBwcm9kdWN0aW9uTWF0cml4CQENcGFyc2VJbnRWYWx1ZQEFA2lkeAIBXwUKcklkeEVmZmVjdAAABAVzdGF0cwkBDGdldER1Y2tTdGF0cwQFBHRoaXMFC2R1Y2tBc3NldElkBQpidWZmRWZmZWN0BgQIbmV3UHJvZEIJAQZkcmVzc0IEBQZjdXJyRXEFCXRlbXBQcm9kQgcFBXN0YXRzCQAAAgUIbmV3UHJvZEIFCG5ld1Byb2RCARl1cGRhdGVQcm9wb3J0aW9uc0ludGVybmFsBAhwcm9wTGlzdA10ZXJyYWluQ291bnRzDWxhbmRTaXplSW5kZXgEc2lnbgMJAQIhPQIJAJADAQUIcHJvcExpc3QFBk5VTVJFUwkAAgECFldyb25nIHByb3BvcnRpb25zIGRhdGEKAQd1cGRhdGVyAgNhY2MBaQQGcmVzdWx0CQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCHByb3BMaXN0BQFpCQBoAgkAaAIFBHNpZ24JAJEDAgUNdGVycmFpbkNvdW50cwUBaQUNbGFuZFNpemVJbmRleAMJAGYCAAAFBnJlc3VsdAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIWUGFuaWMhIFBpZWNlcyBvZiB0eXBlPQkApAMBBQFpAgcsIHNpZ249CQCkAwEFBHNpZ24CEywgdGVycmFpbkNvdW50c1tpXT0JAKQDAQkAkQMCBQ10ZXJyYWluQ291bnRzBQFpAhAsIGxhbmRTaXplSW5kZXg9CQCkAwEFDWxhbmRTaXplSW5kZXgJAM0IAgUDYWNjCQCkAwEFBnJlc3VsdAoAAiRsBQVJVEVSNgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHdXBkYXRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgERdXBkYXRlUHJvcG9ydGlvbnMDDXRlcnJhaW5Db3VudHMNbGFuZFNpemVJbmRleARzaWduBAhwcm9wTGlzdAkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJARFrZXlSZXNQcm9wb3J0aW9ucwACCzBfMF8wXzBfMF8wAgFfCQC5CQIJARl1cGRhdGVQcm9wb3J0aW9uc0ludGVybmFsBAUIcHJvcExpc3QFDXRlcnJhaW5Db3VudHMFDWxhbmRTaXplSW5kZXgFBHNpZ24CAV8BDWNvdW50VGVycmFpbnMBCHRlcnJhaW5zCQDMCAIJAGUCCQCQAwEJALUJAgUIdGVycmFpbnMCAUEAAQkAzAgCCQBlAgkAkAMBCQC1CQIFCHRlcnJhaW5zAgFCAAEJAMwIAgkAZQIJAJADAQkAtQkCBQh0ZXJyYWlucwIBQwABCQDMCAIJAGUCCQCQAwEJALUJAgUIdGVycmFpbnMCAUQAAQkAzAgCCQBlAgkAkAMBCQC1CQIFCHRlcnJhaW5zAgFFAAEJAMwIAgkAZQIJAJADAQkAtQkCBQh0ZXJyYWlucwIBRgABBQNuaWwBBmFkZFJlcwUKY3VycmVudFJlcw10ZXJyYWluQ291bnRzCWRlbHRhVGltZQ1sYW5kU2l6ZUluZGV4F2RhaWx5QnlQaWVjZVdpdGhCb251c2VzCgEFYWRkZXICA2FjYwFpBAlyZXNPZlR5cGUJAGgCCQBoAgkAawMFCWRlbHRhVGltZQUXZGFpbHlCeVBpZWNlV2l0aEJvbnVzZXMFCURBWU1JTExJUwkAkQMCBQ10ZXJyYWluQ291bnRzBQFpBQ1sYW5kU2l6ZUluZGV4CQDNCAIFA2FjYwkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCmN1cnJlbnRSZXMFAWkFCXJlc09mVHlwZQQBcgoAAiRsBQVJVEVSNgoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYJALkJAgUBcgIBXwEJdmlydENsYWltBA10ZXJyYWluQ291bnRzCWRlbHRhVGltZQ1sYW5kU2l6ZUluZGV4F2RhaWx5QnlQaWVjZVdpdGhCb251c2VzCgEFYWRkZXICA2FjYwFpBAlyZXNPZlR5cGUJAGgCCQBoAgkAawMFCWRlbHRhVGltZQUXZGFpbHlCeVBpZWNlV2l0aEJvbnVzZXMFCURBWU1JTExJUwkAkQMCBQ10ZXJyYWluQ291bnRzBQFpBQ1sYW5kU2l6ZUluZGV4CQCUCgIJAM0IAggFA2FjYwJfMQUJcmVzT2ZUeXBlCQBkAggFA2FjYwJfMgUJcmVzT2ZUeXBlCgACJGwFBUlURVI2CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYBDWRpc3RyaWJ1dGVSZXMEDGN1cnJlbnRXaFJlcw5jdXJyZW50UGFja1JlcwpyZXNUb0NsYWltC3doU3BhY2VMZWZ0BA5yZXNMaXN0VG9DbGFpbQgFCnJlc1RvQ2xhaW0CXzEEDHJlc0FtVG9DbGFpbQgFCnJlc1RvQ2xhaW0CXzIDCQAAAgUMcmVzQW1Ub0NsYWltAAAJAJQKAgkAuQkCBQxjdXJyZW50V2hSZXMCAV8JALkJAgUOY3VycmVudFBhY2tSZXMCAV8DCQBnAgULd2hTcGFjZUxlZnQFDHJlc0FtVG9DbGFpbQoBCGFkZExpc3RzAgNhY2MBaQkAzQgCBQNhY2MJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQxjdXJyZW50V2hSZXMFAWkJAJEDAgUOcmVzTGlzdFRvQ2xhaW0FAWkEAXIKAAIkbAUFSVRFUjYKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCGFkZExpc3RzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGCQCUCgIJALkJAgUBcgIBXwkAuQkCBQ5jdXJyZW50UGFja1JlcwIBXwoBDGFkZFBhcnRMaXN0cwIDYWNjAWkEBndoUGFydAkAawMJAJEDAgUOcmVzTGlzdFRvQ2xhaW0FAWkFC3doU3BhY2VMZWZ0BQxyZXNBbVRvQ2xhaW0JAJQKAgkAzQgCCAUDYWNjAl8xCQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUMY3VycmVudFdoUmVzBQFpBQZ3aFBhcnQJAM0IAggFA2FjYwJfMgkApAMBCQBlAgkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQ5jdXJyZW50UGFja1JlcwUBaQkAkQMCBQ5yZXNMaXN0VG9DbGFpbQUBaQUGd2hQYXJ0BAFyCgACJGwFBUlURVI2CgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEMYWRkUGFydExpc3Rz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dGFsBQh3aExvY2tlZAUDb2NjCQDMCAIJAKQDAQUHd2hUb3RhbAUDbmlsAgFfCQDMCAIJAJEDAgUCd2gFC3doSWR4TGV2ZWxzCQDMCAIDCQAAAgkAkAMBCQC1CQIJAJEDAgUCd2gFCHdoSWR4UmVzAgFfBQZOVU1SRVMJAJEDAgUCd2gFCHdoSWR4UmVzAgswXzBfMF8wXzBfMAkAzAgCAwkAAAIJAJADAQkAtQkCCQCRAwIFAndoBQh3aElkeE1hdAIBXwUGTlVNUkVTCQCRAwIFAndoBQh3aElkeE1hdAILMF8wXzBfMF8wXzAJAMwIAgkAkQMCBQJ3aAUJd2hJZHhQcm9kCQDMCAIFBndoTG9mdAUDbmlsARVnZXRXYXJlaG91c2VTcGFjZUxlZnQBCWN1cnJlbnRXaAQLb2NjdXBpZWRWb2wJARdnZXRXYXJlaG91c2VPY2N1cGllZFZvbAEFCWN1cnJlbnRXaAQPY3VycldoTG9ja2VkVm9sCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCCQCRAwIFCWN1cnJlbnRXaAUJd2hJZHhMT0ZUAgFfBQl2b2xMb2NrZWQJAGUCCQBlAgkBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQkAkQMCBQljdXJyZW50V2gFC3doSWR4TGV2ZWxzBQtvY2N1cGllZFZvbAUPY3VycldoTG9ja2VkVm9sAQltb3ZlU3R1ZmYDCmNhcmdvUGFydHMJY3VycmVudFdoC2N1cnJlbnRQYWNrAwkBAiE9AgkAkAMBBQpjYXJnb1BhcnRzAAMJAAIBAjRjYXJnb0xpc3RTdHIgc2hvdWxkIGNvbnRhaW4gZXhhY3RseSAyICc6JyBzZXBhcmF0b3JzBAhyZXNQYXJ0cwkAtQkCCQCRAwIFCmNhcmdvUGFydHMAAAIBXwQIbWF0UGFydHMJALUJAgkAkQMCBQpjYXJnb1BhcnRzAAECAV8ECXByb2RQYXJ0cwMJAAACCQCRAwIFCmNhcmdvUGFydHMAAgIABQNuaWwJALwJAgkAkQMCBQpjYXJnb1BhcnRzAAICAV8DCQECIT0CCQCQAwEFCHJlc1BhcnRzBQZOVU1SRVMJAAIBAiBBbGwgNiByZXNvdXJjZXMgc2hvdWxkIGJlIHBhc3NlZAMJAQIhPQIJAJADAQUIbWF0UGFydHMFBk5VTVJFUwkAAgECIEFsbCA2IG1hdGVyaWFscyBzaG91bGQgYmUgcGFzc2VkBAt3aFNwYWNlTGVmdAkBFWdldFdhcmVob3VzZVNwYWNlTGVmdAEFCWN1cnJlbnRXaAQJY3VycldoUmVzCQC1CQIJAJEDAgUJY3VycmVudFdoBQh3aElkeFJlcwIBXwQJY3VycldoTWF0CQC1CQIJAJEDAgUJY3VycmVudFdoBQh3aElkeE1hdAIBXwQKY3VycldoUHJvZAMJAAACCQCRAwIFCWN1cnJlbnRXaAUJd2hJZHhQcm9kAgAFA25pbAkAvAkCCQCRAwIFCWN1cnJlbnRXaAUJd2hJZHhQcm9kAgFfBA5jdXJyZW50UGFja1JlcwkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwIBXwQOY3VycmVudFBhY2tNYXQJALUJAgkAkQMCBQtjdXJyZW50UGFjawUIYnBJZHhNYXQCAV8ED2N1cnJlbnRQYWNrUHJvZAMJAAACCQCRAwIFC2N1cnJlbnRQYWNrBQlicElkeFByb2QCAAUDbmlsCQC8CQIJAJEDAgULY3VycmVudFBhY2sFCWJwSWR4UHJvZAIBXwoBA212UgIDYWNjBGl0ZW0EAWkIBQNhY2MCXzEEAmFtCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0EA3docgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCWN1cnJXaFJlcwUBaQQDYnByCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUOY3VycmVudFBhY2tSZXMFAWkDCQAAAgUCYW0AAAkAlgoECQBkAgUBaQABCQDNCAIIBQNhY2MCXzIJAJEDAgUJY3VycldoUmVzBQFpCQDNCAIIBQNhY2MCXzMJAJEDAgUOY3VycmVudFBhY2tSZXMFAWkIBQNhY2MCXzQDCQBmAgUCYW0AAAMJAGYCBQJhbQUDYnByCQACAQkArAICCQCsAgIJAKwCAgkArAICAhBBdHRlbXB0IHRvIHRha2UgBQRpdGVtAhkgZnJvbSBiYWNrcGFjaywgYnV0IG9ubHkgCQCkAwEFA2JwcgIKIGF2YWlsYWJsZQkAlgoECQBkAgUBaQABCQDNCAIIBQNhY2MCXzIJAKQDAQkAZAIFA3docgUCYW0JAM0IAggFA2Fj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QUxFTlVNTEFORFMAAQQHbGFuZE51bQkApAMBBQdmcmVlTnVtBAxjb250aW5lbnRJZHgJAKADAQkAuwICBQZiaWdOdW0FBUZJVkVYBAh0ZXJyYWlucwkBC2dlblRlcnJhaW5zAgUGYmlnTnVtBQxjb250aW5lbnRJZHgECWNvbnRpbmVudAkAkQMCBQpjb250aW5lbnRzBQxjb250aW5lbnRJZHgEBWlzc3VlCQDCCAUJAQduZnROYW1lAgUHbGFuZE51bQIBUwkAuQkCCQDMCAIFB2xhbmROdW0JAMwIAgIBUwkAzAgCBQh0ZXJyYWlucwkAzAgCBQljb250aW5lbnQFA25pbAIBXwABAAAHBAdhc3NldElkCQC4CAEFBWlzc3VlBAJpZAkA2AQBBQdhc3NldElkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJARJrZXlOZXh0RnJlZUxhbmROdW0ACQBkAgUHZnJlZU51bQABCQDMCAIFBWlzc3VlCQDMCAIJAQtTdHJpbmdFbnRyeQIJARBrZXlMYW5kVG9Bc3NldElkAQUHbGFuZE51bQUCaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFAmlkBQh1c2VyQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5TGFuZE51bVRvT3duZXIBBQdsYW5kTnVtBQh1c2VyQWRkcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBBQJpZAAACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEea2V5SW5mcmFMZXZlbEJ5QXNzZXRJZEFuZE93bmVyAgUCaWQFCHVzZXJBZGRyAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUGY2FsbGVyAAEFB2Fzc2V0SWQFA25pbAkAlAoCBQJpZAUJY29udGluZW50AQxmbGlnaHRDb21tb24DCHVzZXJBZGRyB21lc3NhZ2UDc2lnAwkBASEBCQDEEwMFB21lc3NhZ2UFA3NpZwUDcHViCQACAQIYc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoBAVwYXJ0cwkAvAkCCQCwCQEFB21lc3NhZ2UCATsECWZsaWdodExvZwkAvAkCCQCRAwIFBXBhcnRzAAACAXwEAmhwCQC1CQIJAJEDAgUJZmxpZ2h0TG9nBQhmbEhlYWx0aAIBXwQFY3VySFAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJocAAABAVuZXdIUAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmhwAAEEC25ld0xvY1R4VmVyCQC1CQIJAJEDAgUFcGFydHMAAQIBOgQLbmV3TG9jYXRpb24JAJEDAgULbmV3TG9jVHhWZXIAAAQEdGltZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCWZsaWdodExvZwULZmxUaW1lc3RhbXADAwkAZgIFBHRpbWUJAGQCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAURRklWRU1JTlVURVNNSUxMSVMGCQBmAgkAZQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBRFGSVZFTUlOVVRFU01JTExJUwUEdGltZQkAAgEJAKwCAgkArAICCQCsAgICHHNpZ25hdHVyZSBvdXRkYXRlZDogbG9nVGltZT0JAKQDAQUEdGltZQIJLCBiY1RpbWU9CQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAl0eEZyb21Nc2cJAJEDAgULbmV3TG9jVHhWZXIAAQQGbGFzdFR4CQELdmFsdWVPckVsc2UCCQCiCAEJARFrZXlMYXN0VHhJZEJ5VXNlcgEFCHVzZXJBZGRyAgADCQECIT0CBQZsYXN0VHgFCXR4RnJvbU1zZwkAAgEJAKwCAgkArAICCQCsAgICHlR4IGlkcyBkb24ndCBtYXRjaCEgSW4gc3RhdGU6IAUGbGFzdFR4AgosIGluIG1zZzogBQl0eEZyb21Nc2cEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUIdXNlckFkZHICHFlvdSBkb24ndCBoYXZlIGEgZHVjayBzdGFrZWQECWtleUhlYWx0aAkBDWtleUR1Y2tIZWFsdGgBBQtkdWNrQXNzZXRJZAQFbWF4SFAJAQltYXhIZWFsdGgBCQELdmFsdWVPckVsc2UCCQCfCAEJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAAABAxvbGRGcm9tU3RhdGUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJa2V5SGVhbHRoBQVtYXhIUAMJAQIhPQIFDG9sZEZyb21TdGF0ZQUFY3VySFAJAAIBCQCsAgIJAKwCAgkArAICAgpvbGRIZWFsdGg9CQCkAwEFDG9sZEZyb21TdGF0ZQIvIGZyb20gc3RhdGUgZG9lcyBub3QgbWF0Y2ggb25lIGZyb20gZmxpZ2h0IGxvZz0JAKQDAQUFY3VySFADCQBnAgAABQVjdXJIUAkAAgECHllvdSBjYW4ndCBmbHkgd2l0aCB6ZXJvIGhlYWx0aAMJAQEhAQkBF2NhbldlYXJDdXJyZW50RXF1aXBtZW50AQULZHVja0Fzc2V0SWQJAAIBAhZFcXVpcG1lbnQgaW5jb21wYXRpYmxlBAVib251cwMJAGYCCQCQAwEFCWZsaWdodExvZwUHZmxCb251cwkAkQMCBQlmbGlnaHRMb2cFB2ZsQm9udXMCAAQIcHJvZFVzZWQDCQBmAgkAkAMBBQlmbGlnaHRMb2cFC2ZsUHJvZHNVc2VkCQCRAwIFCWZsaWdodExvZwULZmxQcm9kc1VzZWQCAAQKc2VudEFtb3VudAMDCQBmAgUFbmV3SFAAAAkAAAIFBWJvbnVzAgEkBwkBBWFzSW50AQkA/AcEBQxyZXN0Q29udHJhY3QCDXNlbmRVc2R0UHJpemUJAMwIAgUIdXNlckFkZHIFA25pbAUDbmlsAAAJAJcKBQUFbmV3SFAFC2R1Y2tBc3NldElkBQpzZW50QW1vdW50BQtuZXdMb2NhdGlvbgUIcHJvZFVzZWQBDGFwcGx5Qm9udXNlcwILbGFuZEFzc2V0SWQGcGllY2VzBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQJYXJ0UGllY2VzCQELdmFsdWVPckVsc2UCCQCfCAEJASBrZXlMYW5kQXJ0U3RhdHVzQnlUeXBlQW5kQXNzZXRJZAIFCkFSVFBSRVNBTEUFC2xhbmRBc3NldElkAAAEBGFkZDYJAGkCBQppbmZyYUxldmVsAAYEBGFkZDcJAGkCBQppbmZyYUxldmVsAAcJAGQCCQBkAgUPREFJTFlSRVNCWVBJRUNFCQBrAwUPREFJTFlSRVNCWVBJRUNFCQBkAgkAZAIFCmluZnJhTGV2ZWwFBGFkZDYJAGgCAAIFBGFkZDcABQkAawMFD0RBSUxZUkVTQllQSUVDRQUJYXJ0UGllY2VzCQBoAgUGcGllY2VzAAUBFGNoZWNrQ2xhaW1Db25kaXRpb25zAwRhZGRyCWNsYWltTW9kZQ1sYW5kQXNzZXRJZEluBA0kdDAzMzc4NDM0MzIzAwkAAAIFCWNsYWltTW9kZQULY2xhaW1Nb2RlV2gJAJQKAgUNbGFuZEFzc2V0SWRJbgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAgAEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUEYWRkcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAQLY3VyTG9jYXRpb24JAQt2YWx1ZU9yRWxzZQIJAKIIAQkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQ9ERUZBVUxUTE9DQVRJT04EA2xvYwkAtQkCCQEFdmFsdWUBBQtjdXJMb2NhdGlvbgIBXwMJAQIhPQIJAJEDAgUDbG9jBQpsb2NJZHhUeXBlAgFMCQACAQkArAICCQCsAgICFkR1Y2sgbG9jYXRpb24gdHlwZSBpcyAJAJEDAgUDbG9jBQpsb2NJZHhUeXBlAhEsIGJ1dCBzaG91bGQgYmUgTAkAlAoCCQCRAwIFA2xvYwUIbG9jSWR4SWQFC2R1Y2tBc3NldElkBAtsYW5kQXNzZXRJZAgFDSR0MDMzNzg0MzQzMjMCXzEEBmR1Y2tJZAgFDSR0MDMzNzg0MzQzMjMCXzIEBWFzc2V0CQEFdmFsdWUBCQDsBwEJANkEAQULbGFuZEFzc2V0SWQEB3RpbWVLZXkJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQECXNhdmVkVGltZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEFB3RpbWVLZXkJAKwCAgkArAICAgVMYW5kIAgFBWFzc2V0BG5hbWUCDiBpcyBub3Qgc3Rha2VkBAVvd25lcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARVrZXlMYW5kQXNzZXRJZFRvT3duZXIBBQtsYW5kQXNzZXRJZAkArAICCQCsAgICBE5GVCAIBQVhc3NldARuYW1lAgwgaXMgb3JwaGFuZWQDCQECIT0CBQVvd25lcgUEYWRkcgkAAgEJAKwCAgUKTEFORFBSRUZJWAINIGlzIG5vdCB5b3VycwQBZAkAtQkCCAUFYXNzZXQLZGVzY3JpcHRpb24CAV8JAJYKBAUGZHVja0lkBQtsYW5kQXNzZXRJZAUBZAUJc2F2ZWRUaW1lARBjbGFpbVJlc0ludGVybmFsBARhZGRyBmFtb3VudAljbGFpbU1vZGUNbGFuZEFzc2V0SWRJbgMJAGYCAAAFBmFtb3VudAkAAgECD05lZ2F0aXZlIGFtb3VudAQBYwkBFGNoZWNrQ2xhaW1Db25kaXRpb25zAwUEYWRkcgUJY2xhaW1Nb2RlBQ1sYW5kQXNzZXRJZEluBAhsYW5kU2l6ZQkAkQMCCAUBYwJfMwULcmVjTGFuZFNpemUEDXRlcnJhaW5Db3VudHMJAQ1jb3VudFRlcnJhaW5zAQkAkQMCCAUBYwJfMwULcmVjVGVycmFpbnMECWRlbHRhVGltZQkAZQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCAUBYwJfNAMJAGYCAAAFCWRlbHRhVGltZQkAAgEJAKwCAgkArAICCQCsAgICJlNhdmVkIHRpbWVzdGFtcCBpcyBpbiBmdXR1cmUsIHNhdmVkID0gCQCkAwEIBQFjAl80AgwsIGN1cnJlbnQgPSAJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAEBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEFCGxhbmRTaXplBBZkYWlseVByb2R1Y3Rpb25CeVBpZWNlCQEMYXBwbHlCb251c2VzAggFAWMCXzIFBnBpZWNlcwQIYXZhaWxSZXMJAGsDBQlkZWx0YVRpbWUJAGgCBRZkYWlseVByb2R1Y3Rpb25CeVBpZWNlBQZwaWVjZXMFCURBWU1JTExJUwMJAGYCBQZhbW91bnQFCGF2YWlsUmVzCQACAQkArAICCQCsAgIJAKwCAgIiTm90IGVub3VnaCByZXNvdXJjZXMsIGF2YWlsYWJsZSA9IAkApAMBBQhhdmFpbFJlcwIOLCByZXF1ZXN0ZWQgPSAJAKQDAQUGYW1vdW50BAxuZXdEZWx0YVRpbWUJAGsDCQBlAgUIYXZhaWxSZXMFBmFtb3VudAUJREFZTUlMTElTCQBoAgUWZGFpbHlQcm9kdWN0aW9uQnlQaWVjZQUGcGllY2VzBAxuZXdUaW1lc3RhbXAJAGUCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUMbmV3RGVsdGFUaW1lBAlsYW5kSW5kZXgJAGkCBQZwaWVjZXMFBVNTSVpFBApyZXNUb0NsYWltCQEJdmlydENsYWltBAUNdGVycmFpbkNvdW50cwkAZQIFCWRlbHRhVGltZQUMbmV3RGVsdGFUaW1lBQlsYW5kSW5kZXgFFmRhaWx5UHJvZHVjdGlvbkJ5UGllY2UEBXdoS2V5CQESa2V5V2FyZWhvdXNlQnlMYW5kAQgFAWMCXzIECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBCAUBYwJfMgAABAljdXJyZW50V2gJAQxnZXRXYXJlaG91c2UDBQV3aEtleQUJbGFuZEluZGV4BQppbmZyYUxldmVsBARsb2Z0CQC1CQIJAJEDAgUJY3VycmVudFdoBQl3aElkeExPRlQCAV8EC3doU3BhY2VMZWZ0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQMDCQAAAgUJY2xhaW1Nb2RlBQtjbGFpbU1vZGVXaAkAZgIFBmFtb3VudAULd2hTcGFjZUxlZnQHCQACAQkArAICCQCsAgICBU9ubHkgCQCkAwEFC3doU3BhY2VMZWZ0Ahggc3BhY2UgbGVmdCBpbiB3YXJlaG91c2UEBWJwS2V5CQERa2V5QmFja3BhY2tCeUR1Y2sBCAUBYwJfMQQLY3VycmVudFBhY2sJAQtnZXRCYWNrcGFjawEFBWJwS2V5BA5jdXJyZW50UGFja1JlcwkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwIBXwQMY3VycmVudFdoUmVzCQC1CQIJAJEDAgUJY3VycmVudFdoBQh3aElkeFJlcwIBXwQNJHQwMzY2OTczNzU2OAMJAAACBQljbGFpbU1vZGUFC2NsYWltTW9kZVdoCQCWCgQJAQZhZGRSZXMFBQxjdXJyZW50V2hSZXMFDXRlcnJhaW5Db3VudHMJAGUCBQlkZWx0YVRpbWUFDG5ld0RlbHRhVGltZQUJbGFuZEluZGV4BRZkYWlseVByb2R1Y3Rpb25CeVBpZWNlCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQRsb2Z0BQt2b2xPY2N1cGllZAgFCnJlc1RvQ2xhaW0CXzIJAGUCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQgFCnJlc1RvQ2xhaW0CXzIDCQAAAgUJY2xhaW1Nb2RlBQ1jbGFpbU1vZGVEdWNrCQCWCgQJAJEDAgUJY3VycmVudFdoBQh3aElkeFJlcwkBBmFkZFJlcwUFDmN1cnJlbnRQYWNrUmVzBQ10ZXJyYWluQ291bnRzCQBlAgUJZGVsdGFUaW1lBQxuZXdEZWx0YVRpbWUFCWxhbmRJbmRleAUWZGFpbHlQcm9kdWN0aW9uQnlQaWVjZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFC3ZvbE9jY3VwaWVkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQQFZGlzdHIJAQ1kaXN0cmlidXRlUmVzBAUMY3VycmVudFdoUmVzBQ5jdXJyZW50UGFja1JlcwUKcmVzVG9DbGFpbQULd2hTcGFjZUxlZnQEBHdoQW0JAJcDAQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQkAzAgCCAUKcmVzVG9DbGFpbQJfMgUDbmlsCQCWCgQIBQVkaXN0cgJfMQgFBWRpc3RyAl8yCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFC3ZvbE9jY3VwaWVkBQR3aEFtCQBlAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFB3ZvbEZyZWUFBHdoQW0EBXdoUmVzCAUNJHQwMzY2OTczNzU2OAJfMQQFYnBSZXMIBQ0kdDAzNjY5NzM3NTY4Al8yBAVsb2Z0TwgFDSR0MDM2Njk3Mzc1NjgCXzMEBWxvZnRGCAUNJHQwMzY2OTczNzU2OAJfNAkAlwoFCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEIBQFjAl8yBQxuZXdUaW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJASJrZXlTdGFrZWRUaW1lQnlUeXBlQXNzZXRJZEFuZE93bmVyAwUKTEFORFBSRUZJWAgFAWMCXzIFBGFkZHIFDG5ld1RpbWVzdGFtcAUDbmlsBQVicEtleQkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIFBWJwUmVzCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4TWF0CQDMCAIJAJEDAgULY3VycmVudFBhY2sFCWJwSWR4UHJvZAUDbmlsBQV3aEtleQkAzAgCCQCRAwIFCWN1cnJlbnRXaAULd2hJZHhMZXZlbHMJAMwIAgUFd2hSZXMJAMwIAgkAkQMCBQljdXJyZW50V2gFCHdoSWR4TWF0CQDMCAIJAJEDAgUJY3VycmVudFdoBQl3aElkeFByb2QJAMwIAgkAuQkCCQDMCAIJAJEDAgUEbG9mdAUJdm9sTG9ja2VkCQDMCAIJAKQDAQUFbG9mdE8JAMwIAgkApAMBBQVsb2Z0RgkAzAgCCQCRAwIFBGxvZnQFCHZvbFRvdGFsBQNuaWwCAV8FA25pbAEIY2xhaW1BbGwEBGFkZHILbGFuZEFzc2V0SWQGcGllY2VzCWNsYWltTW9kZQQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAQJc2F2ZWRUaW1lCQEFdmFsdWUBCQCfCAEFB3RpbWVLZXkECGF2YWlsUmVzCQBoAgkAawMJAGUCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUJc2F2ZWRUaW1lCQEMYXBwbHlCb251c2VzAgULbGFuZEFzc2V0SWQFBnBpZWNlcwUJREFZTUlMTElTBQZwaWVjZXMJARBjbGFpbVJlc0ludGVybmFsBAUEYWRkcgUIYXZhaWxSZXMFCWNsYWltTW9kZQULbGFuZEFzc2V0SWQBDXVwSW5mcmFDb21tb24EDHNob3VsZFVzZU1hdAZjYWxsZXINcGF5bWVudEFtb3VudAtsYW5kQXNzZXRJZAQEYWRkcgkApQgBBQZjYWxsZXIEAWMJARRjaGVja0NsYWltQ29uZGl0aW9ucwMFBGFkZHIFE2NsYWltTW9kZVdoVGhlbkR1Y2sFC2xhbmRBc3NldElkBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIIBQFjAl8zBQtyZWNMYW5kU2l6ZQQIaW5mcmFLZXkJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQgFAWMCXzIECGN1ckxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEFCGluZnJhS2V5AAADAwkBASEBBRhLU19BTExPV19CSUdfSU5GUkFfTUVSR0UJAGcCBQhjdXJMZXZlbAADBwkAAgECJkN1cnJlbnRseSBtYXggaW5mcmFzdHJ1Y3R1cmUgbGV2ZWwgPSAzBAhtYXhJbmZyYQkAZAIJAGkCCQEEc3FydAQFBnBpZWNlcwAAAAAFBERPV04ABQACBAhuZXdMZXZlbAkAZAIFCGN1ckxldmVsAAEDAwUYS1NfQUxMT1dfQklHX0lORlJBX01FUkdFCQBmAgUIbmV3TGV2ZWwFCG1heEluZnJhBwkAAgEJAKwCAgIlQ3VycmVudGx5IG1heCBpbmZyYXN0cnVjdHVyZSBsZXZlbCA9IAkApAMBBQhtYXhJbmZyYQQEY29zdAkAawMFFUluZnJhVXBncmFkZUNvc3RTVXNkdAkAaAIFBnBpZWNlcwUIbmV3TGV2ZWwFBVNTSVpFAwMJAQEhAQUMc2hvdWxkVXNlTWF0CQECIT0CBQ1wYXltZW50QW1vdW50BQRjb3N0BwkAAgEJAKwCAgIbUGF5bWVudCBhdHRhY2hlZCBzaG91bGQgYmUgCQCkAwEFBGNvc3QEBWJwS2V5CQERa2V5QmFja3BhY2tCeUR1Y2sBCAUBYwJfMQQLY3VycmVudFBhY2sJAQtnZXRCYWNrcGFjawEFBWJwS2V5BAVtTGlzdAkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeE1hdAIBXwQHbWF0VXNlZAkAawMFEUluZnJhVXBncmFkZUNvc3RTCQBoAgUGcGllY2VzBQhuZXdMZXZlbAUFU1NJWkUEBm5ld01hdAkAuQkCCQERc3VidHJhY3RNYXRlcmlhbHMDBQxzaG91bGRVc2VNYXQFBW1MaXN0BQdtYXRVc2VkAgFfBAtjbGFpbVJlc3VsdAkBCGNsYWltQWxsBAUEYWRkcggFAWMCXzIFBnBpZWNlcwUTY2xhaW1Nb2RlV2hUaGVuRHVjawQGd2hEYXRhCAULY2xhaW1SZXN1bHQCXzUEBm9sZFZvbAkBF2dldFdhcmVob3VzZVRvdGFsVm9sdW1lAQkAkQMCBQZ3aERhdGEFC3doSWR4TGV2ZWxzBApuZXdWb2xEYXRhCQC5CQIJAMwIAgkAkQMCCQC1CQIJAJEDAgUGd2hEYXRhBQt3aElkeExldmVscwIBXwAACQDMCAIJAKQDAQUIbmV3TGV2ZWwFA25pbAIBXwQGbmV3Vm9sCQEXZ2V0V2FyZWhvdXNlVG90YWxWb2x1bWUBBQpuZXdWb2xEYXRhBARsb2Z0CQC1CQIJAJEDAgUGd2hEYXRhBQl3aElkeExPRlQCAV8ECm5ld0xvZnRTdHIJALkJAgkAzAgCCQCRAwIFBGxvZnQFCXZvbExvY2tlZAkAzAgCCQCRAwIFBGxvZnQFC3ZvbE9jY3VwaWVkCQDMCAIJAKQDAQkAZQIJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAUHdm9sRnJlZQUGbmV3Vm9sBQZvbGRWb2wJAMwIAgkApAMBBQZuZXdWb2wFA25pbAIBXwkAlQoDCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFCGluZnJhS2V5BQhuZXdMZXZlbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBHmtleUluZnJhTGV2ZWxCeUFzc2V0SWRBbmRPd25lcgIIBQFjAl8yBQRhZGRyBQhuZXdMZXZlbAkAzAgCCQELU3RyaW5nRW50cnkCBQVicEtleQkAuQkCCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCmJwSWR4TGV2ZWwJAMwIAgkAkQMCCAULY2xhaW1SZXN1bHQCXzMFCGJwSWR4UmVzCQDMCAIFBm5ld01hdAkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQlicElkeFByb2QFA25pbAIBOgkAzAgCCQELU3RyaW5nRW50cnkCCAULY2xhaW1SZXN1bHQCXzQJALkJAgkAzAgCBQpuZXdWb2xEYXRhCQDMCAIJAJEDAgUGd2hEYXRhBQh3aElkeFJlcwkAzAgCCQCRAwIFBndoRGF0YQUId2hJZHhNYXQJAMwIAgkAkQMCBQZ3aERhdGEFCXdoSWR4UHJvZAkAzAgCBQpuZXdMb2Z0U3RyBQNuaWwCAToFA25pbAgFC2NsYWltUmVzdWx0Al8xBQhuZXdMZXZlbAUHbWF0VXNlZAEXdXBkYXRlRHVja1N0YXRzSW50ZXJuYWwCC2R1Y2tBc3NldElkB2RlbHRhWFAEBmx2bEtleQkBDGtleUR1Y2tMZXZlbAEFC2R1Y2tBc3NldElkBAV4cEtleQkBCWtleUR1Y2tYUAEFC2R1Y2tBc3NldElkBAJ4cAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QFBXhwS2V5AAAEBW5ld1hQCQBkAgUCeHAFB2RlbHRhWFAECWx2bFBvaW50cwkBB2xldmVsVXACCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAUGbHZsS2V5AAAFBW5ld1hQBAlrZXlQb2ludHMJARFrZXlEdWNrRnJlZVBvaW50cwEFC2R1Y2tBc3NldElkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFBmx2bEtleQkAkQMCBQlsdmxQb2ludHMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUFeHBLZXkFBW5ld1hQCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrZXlQb2ludHMJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFCWtleVBvaW50cwAACQCRAwIFCWx2bFBvaW50cwABBQNuaWwFBW5ld1hQARZ1cGRhdGVBY2NTdGF0c0ludGVybmFsAgRhZGRyB2RlbHRhWFAEBmx2bEtleQkBDGtleVVzZXJMZXZlbAEFBGFkZHIEBXhwS2V5CQEJa2V5VXNlclhQAQUEYWRkcgQCeHAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUPc3Rha2luZ0NvbnRyYWN0BQV4cEtleQAABAVuZXdYUAkAZAIFAnhwBQdkZWx0YVhQBAlsdmxQb2ludHMJAQdsZXZlbFVwAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QFBmx2bEtleQAABQVuZXdYUAQJa2V5UG9pbnRzCQERa2V5VXNlckZyZWVQb2ludHMBBQRhZGRyCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFBmx2bEtleQkAkQMCBQlsdmxQb2ludHMAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUFeHBLZXkFBW5ld1hQCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlrZXlQb2ludHMJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFCWtleVBvaW50cwAACQCRAwIFCWx2bFBvaW50cwABBQNuaWwFBW5ld1hQARJhY3RpdmF0ZU9uYm9hcmRBcnQBBGFkZHIEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUEYWRkcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAQIcmVmQnlLZXkJAQ9rZXlBZGRyZXNzUmVmQnkBBQRhZGRyBAVyZWZCeQkAoggBBQhyZWZCeUtleQMJAQEhAQkBCWlzRGVmaW5lZAEFBXJlZkJ5CQACAQIpWW91IGFyZSBub3QgZWxpZ2libGUgZm9yIE9OQk9BUkQgYXJ0aWZhY3QEBmFydEtleQkBHGtleU9uYm9hcmRBcnREdWNrQWN0aXZhdGVkQnkBBQRhZGRyBAdhcnREdWNrCQCiCAEFBmFydEtleQMJAQlpc0RlZmluZWQBBQdhcnREdWNrCQACAQkArAICAi9Zb3UgYWxyZWFkeSB1c2VkIHlvdXIgT05CT0FSRCBhcnRpZmFjdCBvbiBkdWNrIAkBBXZhbHVlAQUHYXJ0RHVjawQQZHVja0FjdGl2YXRvcktleQkBHGtleU9uYm9hcmRBcnRBY3RpdmF0ZWRPbkR1Y2sBBQtkdWNrQXNzZXRJZAQNZHVja0FjdGl2YXRvcgkAoggBBRBkdWNrQWN0aXZhdG9yS2V5AwkBCWlzRGVmaW5lZAEFDWR1Y2tBY3RpdmF0b3IJAAIBCQCsAgIJAKwCAgkArAICAglUaGUgZHVjayAFC2R1Y2tBc3NldElkAjQgYWxyZWFkeSBnb3QgcG9pbnRzIGZyb20gT05CT0FSRCBhcnRpZmFjdCBmcm9tIHVzZXIgCQEFdmFsdWUBBQ1kdWNrQWN0aXZhdG9yCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgUGYXJ0S2V5BQtkdWNrQXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCBRBkdWNrQWN0aXZhdG9yS2V5BQRhZGRyBQNuaWwICQEXdXBkYXRlRHVja1N0YXRzSW50ZXJuYWwCBQtkdWNrQXNzZXRJZAUJeHBPbmJvYXJkAl8xARJhY3RpdmF0ZVByZXNhbGVBcnQCBGFkZHINbGFuZEFzc2V0SWRJbgQBYwkBFGNoZWNrQ2xhaW1Db25kaXRpb25zAwUEYWRkcgUTY2xhaW1Nb2RlV2hUaGVuRHVjawUNbGFuZEFzc2V0SWRJbgQLbGFuZEFzc2V0SWQIBQFjAl8yBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIIBQFjAl8zBQtyZWNMYW5kU2l6ZQQNYWN0aXZhdGlvbktleQkBIGtleUxhbmRBcnRTdGF0dXNCeVR5cGVBbmRBc3NldElkAgUKQVJUUFJFU0FMRQULbGFuZEFzc2V0SWQDCQBmAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQ1hY3RpdmF0aW9uS2V5AAAAAAkAAgECJVByZXNhbGUgYXJ0aWZhY3QgaXMgYWxyZWFkeSBhY3RpdmF0ZWQDCQBmAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIIBQFjAl8zBQpyZWNMYW5kTnVtBQ9QUkVTQUxFTlVNTEFORFMJAAIBCQCsAgIJAKwCAgkArAICBQpMQU5EUFJFRklYAgEgBQtsYW5kQXNzZXRJZAIlIGlzIG5vdCBlbGlnaWJsZSBmb3IgcHJlc2FsZSBhcnRpZmFjdAQLY2xhaW1SZXN1bHQJAQhjbGFpbUFsbAQFBGFkZHIFC2xhbmRBc3NldElkBQZwaWVjZXMFE2NsYWltTW9kZVdoVGhlbkR1Y2sJAM0IAgkAzQgCCQDNCAIIBQtjbGFpbVJlc3VsdAJfMQkBDEludGVnZXJFbnRyeQIFDWFjdGl2YXRpb25LZXkFBnBpZWNlcwkBC1N0cmluZ0VudHJ5AggFC2NsYWltUmVzdWx0Al8yCQC5CQIIBQtjbGFpbVJlc3VsdAJfMwIBOgkBC1N0cmluZ0VudHJ5AggFC2NsYWltUmVzdWx0Al80CQC5CQIIBQtjbGFpbVJlc3VsdAJfNQIBOgEPY2hlY2tUb3VybmFtZW50AQtkdWNrQXNzZXRJZAQGbGFzdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEnRvdXJuYW1lbnRDb250cmFjdAUNbGFzdFRvdXJJZEtleQAABAtjdXJMb2NhdGlvbgkAtQkCCQELdmFsdWVPckVsc2UCCQCiCAEJAQ9rZXlEdWNrTG9jYXRpb24BBQtkdWNrQXNzZXRJZAUPREVGQVVMVExPQ0FUSU9OAgFfBANub3cIBQlsYXN0QmxvY2sJdGltZXN0YW1wBAV0RGF0YQkBC2dldFRvdXJEYXRhAgUSdG91cm5hbWVudENvbnRyYWN0BQZsYXN0SWQEBnN0YXRpYwkAkQMCBQV0RGF0YQUJaWR4U3RhdGljBAdkeW5hbWljCQCRAwIFBXREYXRhBQppZHhEeW5hbWljAwkBAiE9AgkAkQMCBQtjdXJMb2NhdGlvbgUKbG9jSWR4VHlwZQIBVAcDAwMJAAACCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULY3VyTG9jYXRpb24FD2xvY0lkeENvbnRpbmVudAUGbGFzdElkCQAAAgkAkQMCBQdkeW5hbWljBQ50RHluYW1pY1N0YXR1cwIKSU5QUk9HUkVTUwcJAGYCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGc3RhdGljBQp0U3RhdGljRW5kBQNub3cHCQACAQIqWW91ciBkdWNrIGlzIHRha2luZyBwYXJ0IGluIHRoZSB0b3VybmFtZW50CQEJYXNCb29sZWFuAQkA/AcEBQR0aGlzAhZleGl0VG91cm5hbWVudEludGVybmFsCQDMCAIFC2R1Y2tBc3NldElkBQNuaWwFA25pbAENY2hlY2tEZWxpdmVyeQELZHVja0Fzc2V0SWQEC2N1ckxvY2F0aW9uCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQ9ERUZBVUxUTE9DQVRJT04CAV8EA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXADCQECIT0CCQCRAwIFC2N1ckxvY2F0aW9uBQpsb2NJZHhUeXBlAgFEBwQJc3RhcnRUaW1lCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULY3VyTG9jYXRpb24FD2xvY0lkeENvbnRpbmVudAQIZGlzdGFuY2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQtjdXJMb2NhdGlvbgUIbG9jSWR4SWQDAwkAZgIFA25vdwkAZAIFCXN0YXJ0VGltZQUSVEVOX01JTlVURVNfTUlMTElTCQBmAgADBQhkaXN0YW5jZQcJAAIBAiBZb3VyIGR1Y2sgaXMgb24gZGVsaXZlcnkgbWlzc2lvbgkBCWFzQm9vbGVhbgEJAPwHBAUEdGhpcwIUZXhpdERlbGl2ZXJ5SW50ZXJuYWwJAMwIAgULZHVja0Fzc2V0SWQFA25pbAUDbmlsAQ1tZXJnZUludGVybmFsBgtuZXdMYW5kU2l6ZQhuZXdMZXZlbAdmb3JtdWxhBGFkZHIMbGFuZEFzc2V0SWRzB25lZWRNYXQEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUEYWRkcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAMJAQ9jaGVja1RvdXJuYW1lbnQBBQtkdWNrQXNzZXRJZAkAAgECHW1lcmdlSW50ZXJuYWxfY2hlY2tUb3VybmFtZW50AwkBDWNoZWNrRGVsaXZlcnkBBQtkdWNrQXNzZXRJZAkAAgECG21lcmdlSW50ZXJuYWxfY2hlY2tEZWxpdmVyeQoBCmNoZWNrTWVyZ2UCA2FjYwtsYW5kQXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAQJc2F2ZWRUaW1lCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQUHdGltZUtleQkArAICCQCsAgICBE5GVCAIBQVhc3NldARuYW1lAg4gaXMgbm90IHN0YWtlZAQFb3duZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQULbGFuZEFzc2V0SWQJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQIMIGlzIG9ycGhhbmVkAwkBAiE9AgUFb3duZXIFBGFkZHIJAAIBCQCsAgIFCkxBTkRQUkVGSVgCDSBpcyBub3QgeW91cnMEAWQJALUJAggFBWFzc2V0C2Rlc2NyaXB0aW9uAgFfBAljb250aW5lbnQJAJEDAgUBZAUMcmVjQ29udGluZW50AwMJAQIhPQIIBQNhY2MCXzMCAAkBAiE9AggFA2FjYwJfMwUJY29udGluZW50BwkAAgECLkxhbmRzIHNob3VsZCBiZSBvbiB0aGUgc2FtZSBjb250aW5lbnQgdG8gbWVyZ2UECGxhbmRTaXplCQCRAwIFAWQFC3JlY0xhbmRTaXplBAdzaXplc0luCAUDYWNjAl8xBAFpCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALMJAgUHc2l6ZXNJbgUIbGFuZFNpemUCJ1lvdSBoYXZlbid0IHBhc3NlZCBhbGwgdGhlIGxhbmRzIG5lZWRlZAQIc2l6ZXNPdXQJAKwCAgkArwICBQdzaXplc0luBQFpCQCwAgIFB3NpemVzSW4JAGQCBQFpAAEEBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEFCGxhbmRTaXplBARhcnRzCQBkAggFA2FjYwJfMgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEga2V5TGFuZEFydFN0YXR1c0J5VHlwZUFuZEFzc2V0SWQCBQpBUlRQUkVTQUxFBQtsYW5kQXNzZXRJZAAABAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQIcmVxTGV2ZWwEByRtYXRjaDAFCGxhbmRTaXplAwkAAAICAVMFByRtYXRjaDAAAwMJAAACAgFNBQckbWF0Y2gwAAQDCQAAAgIBTAUHJG1hdGNoMAAFAwkAAAICAlhMBQckbWF0Y2gwAAYJAAIBAhpPbmx5IFMsIE0sIEwsIFhMIGNhbiBtZXJnZQMJAQIhPQIFCmluZnJhTGV2ZWwFCHJlcUxldmVsCQACAQIiQWxsIGxhbmRzIHNob3VsZCBiZSBtYXhlZCB0byBtZXJnZQQHbGFuZE51bQkAkQMCBQFkBQpyZWNMYW5kTnVtBA10ZXJyYWluQ291bnRzCQENY291bnRUZXJyYWlucwEJAJEDAgUBZAULcmVjVGVycmFpbnMECWRlbHRhVGltZQkAZQIIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQlzYXZlZFRpbWUDCQBmAgAABQlkZWx0YVRpbWUJAAIBCQCsAgIJAKwCAgkArAICAiZTYXZlZCB0aW1lc3RhbXAgaXMgaW4gZnV0dXJlLCBzYXZlZCA9IAkApAMBBQlzYXZlZFRpbWUCDCwgY3VycmVudCA9IAkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQWZGFpbHlQcm9kdWN0aW9uQnlQaWVjZQkBDGFwcGx5Qm9udXNlcwIFC2xhbmRBc3NldElkBQZwaWVjZXMECWxhbmRJbmRleAkAaQIFBnBpZWNlcwUFU1NJWkUEBWJwUmVzCQEGYWRkUmVzBQkAtQkCCAUDYWNjAl80AgFfBQ10ZXJyYWluQ291bnRzBQlkZWx0YVRpbWUFCWxhbmRJbmRleAUWZGFpbHlQcm9kdWN0aW9uQnlQaWVjZQQFcHJvcHMJARl1cGRhdGVQcm9wb3J0aW9uc0ludGVybmFsBAgFA2FjYwJfNgUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AP///////////wEEBmNQcm9wcwkBGXVwZGF0ZVByb3BvcnRpb25zSW50ZXJuYWwECAUDYWNjA18xMAUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AP///////////wEEC3N1bVRlcnJhaW5zCQEZdXBkYXRlUHJvcG9ydGlvbnNJbnRlcm5hbAQIBQNhY2MCXzkFDXRlcnJhaW5Db3VudHMFCWxhbmRJbmRleAABBAVsYW5kcwgFA2FjYwJfNwQDaWR4CQDPCAIFBWxhbmRzBQtsYW5kQXNzZXRJZAMJAQEhAQkBCWlzRGVmaW5lZAEFA2lkeAkAAgEJAKwCAgIgWW91ciBzdGFrZWQgbGFuZHMgZG9uJ3QgY29udGFpbiAFC2xhbmRBc3NldElkBAljdXN0b21LZXkJARprZXlMYW5kQXNzZXRJZFRvQ3VzdG9tTmFtZQEFC2xhbmRBc3NldElkBApjdXN0b21OYW1lCQELdmFsdWVPckVsc2UCCQCiCAEFCWN1c3RvbUtleQIACQCcCgoFCHNpemVzT3V0BQRhcnRzBQljb250aW5lbnQFBWJwUmVzCQDOCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCAUDYWNjAl81CQELRGVsZXRlRW50cnkBCQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkCQELRGVsZXRlRW50cnkBCQEia2V5U3Rha2VkVGltZUJ5VHlwZUFzc2V0SWRBbmRPd25lcgMFCkxBTkRQUkVGSVgFC2xhbmRBc3NldElkBQRhZGRyCQELRGVsZXRlRW50cnkBCQEQa2V5TGFuZFRvQXNzZXRJZAEFB2xhbmROdW0JAQtEZWxldGVFbnRyeQEJARVrZXlMYW5kQXNzZXRJZFRvT3duZXIBBQtsYW5kQXNzZXRJZAkBC0RlbGV0ZUVudHJ5AQkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAkBC0RlbGV0ZUVudHJ5AQkBHmtleUluZnJhTGV2ZWxCeUFzc2V0SWRBbmRPd25lcgIFC2xhbmRBc3NldElkBQRhZGRyCQELRGVsZXRlRW50cnkBCQEga2V5TGFuZEFydFN0YXR1c0J5VHlwZUFuZEFzc2V0SWQCBQpBUlRQUkVTQUxFBQtsYW5kQXNzZXRJZAkBC0RlbGV0ZUVudHJ5AQkBEWtleUxhbmROdW1Ub093bmVyAQUHbGFuZE51bQkBC0RlbGV0ZUVudHJ5AQkBEmtleVdhcmVob3VzZUJ5TGFuZAEFC2xhbmRBc3NldElkCQELRGVsZXRlRW50cnkBBQljdXN0b21LZXkJAQRCdXJuAgkA2QQBBQtsYW5kQXNzZXRJZAABAwkBAiE9AgUKY3VzdG9tTmFtZQIACQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlMYW5kQ3VzdG9tTmFtZVRvQXNzZXRJZAEFCmN1c3RvbU5hbWUFA25pbAUDbmlsBQVwcm9wcwkA0QgCBQVsYW5kcwkBBXZhbHVlAQUDaWR4CQBkAggFA2FjYwJfOAUGcGllY2VzBQtzdW1UZXJyYWlucwUGY1Byb3BzBAVicEtleQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEC2N1cnJlbnRQYWNrCQELZ2V0QmFja3BhY2sBBQVicEtleQQIcHJvcExpc3QJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQERa2V5UmVzUHJvcG9ydGlvbnMAAgswXzBfMF8wXzBfMAIBXwQIbGFuZHNLZXkJARVrZXlTdGFrZWRMYW5kc0J5T3duZXIBBQRhZGRyBAhsYW5kc1N0cgkAoggBBQhsYW5kc0tleQQHbGFuZHNJbgMJAQlpc0RlZmluZWQBBQhsYW5kc1N0cgkAvQkCCQEFdmFsdWUBBQhsYW5kc1N0cgIBXwUDbmlsBAVjb250MAkAkQMCCQC1CQIICQEFdmFsdWUBCQDsBwEJANkEAQkAkQMCBQxsYW5kQXNzZXRJZHMAAAtkZXNjcmlwdGlvbgIBXwUMcmVjQ29udGluZW50BAljb250UHJvcHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEWa2V5UmVzVHlwZXNCeUNvbnRpbmVudAEFBWNvbnQwAgswXzBfMF8wXzBfMAIBXwQBcgoAAiRsBQxsYW5kQXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCcCgoFB2Zvcm11bGEAAAIACQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwUDbmlsBQhwcm9wTGlzdAUHbGFuZHNJbgAACQC1CQICCzBfMF8wXzBfMF8wAgFfBQljb250UHJvcHMKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmNoZWNrTWVyZ2UCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFBAljb250aW5lbnQIBQFyAl8zBAxjb250aW5lbnRJZHgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQpjb250aW5lbnRzBQljb250aW5lbnQJAKwCAgITVW5rbm93biBjb250aW5lbnQ6IAUJY29udGluZW50BAh0ZXJyYWlucwkBE2dlblRlcnJhaW5zRm9yTWVyZ2UCCAUBcgJfOQkAaQIJAQ9udW1QaWVjZXNCeVNpemUBBQtuZXdMYW5kU2l6ZQUFU1NJWkUEB2ZyZWVOdW0JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmtleU5leHRGcmVlTGFuZE51bQAJAGQCBQ9QUkVTQUxFTlVNTEFORFMAAQQKbmV3TGFuZE51bQkApAMBBQdmcmVlTnVtBAVpc3N1ZQkAwggFCQEHbmZ0TmFtZQIFCm5ld0xhbmROdW0FC25ld0xhbmRTaXplCQC5CQIJAMwIAgUKbmV3TGFuZE51bQkAzAgCBQtuZXdMYW5kU2l6ZQkAzAgCBQh0ZXJyYWlucwkAzAgCBQljb250aW5lbnQFA25pbAIBXwABAAAHBAdhc3NldElkCQC4CAEFBWlzc3VlBA5uZXdMYW5kQXNzZXRJZAkA2AQBBQdhc3NldElkBAZuZXdNYXQJALkJAgkBEXN1YnRyYWN0TWF0ZXJpYWxzAwkAZgIFB25lZWRNYXQAAAkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeE1hdAIBXwUHbmVlZE1hdAIBXwQJcGllY2VzS2V5CQEWa2V5U3Rha2VkUGllY2VzQnlPd25lcgEFBGFkZHIEDHN0YWtlZFBpZWNlcwkBC3ZhbHVlT3JFbHNlAgkAnwgBBQlwaWVjZXNLZXkAAAkAlAoCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCQDNCAIJAM0IAgkAzQgCCAUBcgJfNQMJAGYCCQCQAwEIBQFyAl83AAAJAQtTdHJpbmdFbnRyeQIFCGxhbmRzS2V5CQC7CQIIBQFyAl83AgFfCQELRGVsZXRlRW50cnkBBQhsYW5kc0tleQkBDEludGVnZXJFbnRyeQIFCXBpZWNlc0tleQMJAGYCCAUBcgJfOAUMc3Rha2VkUGllY2VzAAAJAGUCBQxzdGFrZWRQaWVjZXMIBQFyAl84CQEMSW50ZWdlckVudHJ5AgkBEmtleU5leHRGcmVlTGFuZE51bQAJAGQCBQdmcmVlTnVtAAEFBWlzc3VlCQELU3RyaW5nRW50cnkCCQEQa2V5TGFuZFRvQXNzZXRJZAEFCm5ld0xhbmROdW0FDm5ld0xhbmRBc3NldElkCQELU3RyaW5nRW50cnkCCQEVa2V5TGFuZEFzc2V0SWRUb093bmVyAQUObmV3TGFuZEFzc2V0SWQFBGFkZHIJAQtTdHJpbmdFbnRyeQIJARFrZXlMYW5kTnVtVG9Pd25lcgEFCm5ld0xhbmROdW0FBGFkZHIJAQxJbnRlZ2VyRW50cnkCCQEga2V5TGFuZEFydFN0YXR1c0J5VHlwZUFuZEFzc2V0SWQCBQpBUlRQUkVTQUxFBQ5uZXdMYW5kQXNzZXRJZAgFAXICXzIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEFDm5ld0xhbmRBc3NldElkBQhuZXdMZXZlbAkBDEludGVnZXJFbnRyeQIJAR5rZXlJbmZyYUxldmVsQnlBc3NldElkQW5kT3duZXICBQ5uZXdMYW5kQXNzZXRJZAUEYWRkcgUIbmV3TGV2ZWwJAQtTdHJpbmdFbnRyeQIFBWJwS2V5CQC5CQIJAMwIAgkAkQMCBQtjdXJyZW50UGFjawUKYnBJZHhMZXZlbAkAzAgCCAUBcgJfNAkAzAgCBQZuZXdNYXQJAMwIAgkAkQMCBQtjdXJyZW50UGFjawUJYnBJZHhQcm9kBQNuaWwCAToJAQtTdHJpbmdFbnRyeQIJARFrZXlSZXNQcm9wb3J0aW9ucwAJALkJAggFAXICXzYCAV8JAQtTdHJpbmdFbnRyeQIJARZrZXlSZXNUeXBlc0J5Q29udGluZW50AQUJY29udGluZW50CQC5CQIIBQFyA18xMAIBXwkBC1N0cmluZ0VudHJ5AgkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkCQC5CQIJAMwIAgUJY29udGluZW50CQDMCAICAUwJAMwIAgUObmV3TGFuZEFzc2V0SWQFA25pbAIBXwkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUEYWRkcgABBQdhc3NldElkBQ5uZXdMYW5kQXNzZXRJZAEDczJtAgRhZGRyDGxhbmRBc3NldElkcwkBDW1lcmdlSW50ZXJuYWwGAgFNAAMCBFNTU1MFBGFkZHIFDGxhbmRBc3NldElkcwAAAQNtMmwCBGFkZHIMbGFuZEFzc2V0SWRzCQENbWVyZ2VJbnRlcm5hbAYCAUwABAIDU01NBQRhZGRyBQxsYW5kQXNzZXRJZHMJAGgCBRFJbmZyYVVwZ3JhZGVDb3N0UwAEAQRsMnhsAgRhZGRyDGxhbmRBc3NldElkcwkBDW1lcmdlSW50ZXJuYWwGAgJYTAAFAgVTU1NNTAUEYWRkcgUMbGFuZEFzc2V0SWRzCQBoAgURSW5mcmFVcGdyYWRlQ29zdFMALwEGeGwyeHhsAgRhZGRyDGxhbmRBc3NldElkcwkBDW1lcmdlSW50ZXJuYWwGAgNYWEwABgIDTFhMBQRhZGRyBQxsYW5kQXNzZXRJZHMJAGgCBRFJbmZyYVVwZ3JhZGVDb3N0UwA2AQttZXJnZUNvbW1vbgIEYWRkcgxsYW5kQXNzZXRJZHMEByRtYXRjaDAJAJADAQUMbGFuZEFzc2V0SWRzAwkAAAIABAUHJG1hdGNoMAkBA3MybQIFBGFkZHIFDGxhbmRBc3NldElkcwMJAAACAAMFByRtYXRjaDAJAQNtMmwCBQRhZGRyBQxsYW5kQXNzZXRJZHMDCQAAAgAFBQckbWF0Y2gwCQEEbDJ4bAIFBGFkZHIFDGxhbmRBc3NldElkcwMJAAACAAIFByRtYXRjaDAJAQZ4bDJ4eGwCBQRhZGRyBQxsYW5kQXNzZXRJZHMJAAIBAg1Vbmtub3duIG1lcmdlAQZwcm9sb2cBAWkDAwkBAiE9AggFAWkMb3JpZ2luQ2FsbGVyBQxyZXN0Q29udHJhY3QJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBCmtleUJsb2NrZWQABwcJAAIBAh9Db250cmFjdHMgYXJlIHVuZGVyIG1haW50ZW5hbmNlCQELU3RyaW5nRW50cnkCCQERa2V5TGFzdFR4SWRCeVVzZXIBCQClCAEIBQFpDG9yaWdpbkNhbGxlcgkA2AQBCAUBaQ10cmFuc2FjdGlvbklkLAFpAQ1jb25zdHJ1Y3RvclYxAQhyZXN0QWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZXN0QWRkcmVzcwAFCHJlc3RBZGRyBQNuaWwBaQEKc2V0QmxvY2tlZAEJaXNCbG9ja2VkAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIRcGVybWlzc2lvbiBkZW5pZWQJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQprZXlCbG9ja2VkAAUJaXNCbG9ja2VkBQNuaWwBaQEJc3Rha2VMYW5kAAQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECHEV4YWN0bHkgb25lIHBheW1lbnQgcmVxdWlyZWQEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAdhc3NldElkCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyAwkBAiE9AggFA3BtdAZhbW91bnQAAQkAAgEJAKwCAgkArAICAgRORlQgBQpMQU5EUFJFRklYAiQgdG9rZW4gc2hvdWxkIGJlIGF0dGFjaGVkIGFzIHBheW1lbnQEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQDCQECIT0CCAUFYXNzZXQGaXNzdWVyBQR0aGlzCQACAQIXVW5rbm93biBpc3N1ZXIgb2YgdG9rZW4DCQEBIQEJAQhjb250YWlucwIIBQVhc3NldARuYW1lBQpMQU5EUFJFRklYCQACAQkArAICCQCsAgICCU9ubHkgTkZUIAUKTEFORFBSRUZJWAIUIHRva2VucyBhcmUgYWNjZXB0ZWQEC2xhbmROdW1TaXplCQCwAgIIBQVhc3NldARuYW1lAAQEB2xhbmROdW0DCQEIY29udGFpbnMCBQtsYW5kTnVtU2l6ZQIDWFhMCQCzAgIFC2xhbmROdW1TaXplAAMDCQEIY29udGFpbnMCBQtsYW5kTnVtU2l6ZQICWEwJALMCAgULbGFuZE51bVNpemUAAgkAswICBQtsYW5kTnVtU2l6ZQABAwkBASEBCQEJaXNEZWZpbmVkAQkAtgkBBQdsYW5kTnVtCQACAQkArAICAh5DYW5ub3QgcGFyc2UgbGFuZCBudW1iZXIgZnJvbSAIBQVhc3NldARuYW1lBAtsYW5kQXNzZXRJZAkA2AQBBQdhc3NldElkBAd0aW1lS2V5CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAwkBCWlzRGVmaW5lZAEJAJ8IAQUHdGltZUtleQkAAgEJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQISIGlzIGFscmVhZHkgc3Rha2VkBAFkCQC1CQIIBQVhc3NldAtkZXNjcmlwdGlvbgIBXwQNdGVycmFpbkNvdW50cwkBDWNvdW50VGVycmFpbnMBCQCRAwIFAWQFC3JlY1RlcnJhaW5zBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAlsYW5kSW5kZXgJAGkCBQZwaWVjZXMFBVNTSVpFBAVwcm9wcwkBEXVwZGF0ZVByb3BvcnRpb25zAwUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AAEEDHJlc0J5Q29udEtleQkBFmtleVJlc1R5cGVzQnlDb250aW5lbnQBCQCRAwIFAWQFDHJlY0NvbnRpbmVudAQJY29udFByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUMcmVzQnlDb250S2V5AgswXzBfMF8wXzBfMAIBXwQQdXBkYXRlZENvbnRQcm9wcwkAuQkCCQEZdXBkYXRlUHJvcG9ydGlvbnNJbnRlcm5hbAQFCWNvbnRQcm9wcwUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AAECAV8ECGxhbmRzS2V5CQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUHYWRkcmVzcwQIbGFuZHNTdHIJAKIIAQUIbGFuZHNLZXkEBWxhbmRzAwkBCWlzRGVmaW5lZAEFCGxhbmRzU3RyCQC9CQIJAQV2YWx1ZQEFCGxhbmRzU3RyAgFfBQNuaWwDCQEPY29udGFpbnNFbGVtZW50AgUFbGFuZHMFC2xhbmRBc3NldElkCQACAQkArAICAiJZb3VyIHN0YWtlZCBsYW5kcyBhbHJlYWR5IGNvbnRhaW4gBQtsYW5kQXNzZXRJZAMJAGcCCQCQAwEFBWxhbmRzBRhNQVhfTEFORFNfU1RBS0VEX0JZX1VTRVIJAAIBCQCsAgIJAKwCAgIZWW91ciBhbHJlYWR5IHN0YWtlZCBtYXggKAkApAMBBRhNQVhfTEFORFNfU1RBS0VEX0JZX1VTRVICBykgbGFuZHMECmluZnJhTGV2ZWwJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleUluZnJhTGV2ZWxCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAAABAlwaWVjZXNLZXkJARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQUHYWRkcmVzcwQJb2xkUGllY2VzCQELdmFsdWVPckVsc2UCCQCfCAEFCXBpZWNlc0tleQAABAl3bGdSZXN1bHQJAPwHBAULd2xnQ29udHJhY3QCEm9uU3Rha2VVbnN0YWtlTGFuZAkAzAgCBQdhZGRyZXNzBQNuaWwFA25pbAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQd0aW1lS2V5CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBImtleVN0YWtlZFRpbWVCeVR5cGVBc3NldElkQW5kT3duZXIDBQpMQU5EUFJFRklYBQtsYW5kQXNzZXRJZAUHYWRkcmVzcwgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBC1N0cmluZ0VudHJ5AgUIbGFuZHNLZXkJALsJAgkAzQgCBQVsYW5kcwULbGFuZEFzc2V0SWQCAV8JAMwIAgkBDEludGVnZXJFbnRyeQIFCXBpZWNlc0tleQkAZAIFCW9sZFBpZWNlcwUGcGllY2VzCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVrZXlMYW5kQXNzZXRJZFRvT3duZXIBBQtsYW5kQXNzZXRJZAUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5TGFuZE51bVRvT3duZXIBBQdsYW5kTnVtBQdhZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEea2V5SW5mcmFMZXZlbEJ5QXNzZXRJZEFuZE93bmVyAgULbGFuZEFzc2V0SWQFB2FkZHJlc3MFCmluZnJhTGV2ZWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleVJlc1Byb3BvcnRpb25zAAUFcHJvcHMJAMwIAgkBC1N0cmluZ0VudHJ5AgUMcmVzQnlDb250S2V5BRB1cGRhdGVkQ29udFByb3BzCQDMCAIFDHByb2xvZ0FjdGlvbgUDbmlsBQl3bGdSZXN1bHQBaQELdW5zdGFrZUxhbmQBDWxhbmRBc3NldElkSW4EDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQEYWRkcgkApQgBCAUBaQZjYWxsZXIEAWMJARRjaGVja0NsYWltQ29uZGl0aW9ucwMFBGFkZHIFDWNsYWltTW9kZUR1Y2sFDWxhbmRBc3NldElkSW4EC2xhbmRBc3NldElkCAUBYwJfMgQBZAgFAWMCXzMECGxhbmRzS2V5CQEVa2V5U3Rha2VkTGFuZHNCeU93bmVyAQUEYWRkcgQNdGVycmFpbkNvdW50cwkBDWNvdW50VGVycmFpbnMBCQCRAwIFAWQFC3JlY1RlcnJhaW5zBAZwaWVjZXMJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBAlsYW5kSW5kZXgJAGkCBQZwaWVjZXMFBVNTSVpFBAVwcm9wcwkBEXVwZGF0ZVByb3BvcnRpb25zAwUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AP///////////wEEDHJlc0J5Q29udEtleQkBFmtleVJlc1R5cGVzQnlDb250aW5lbnQBCQCRAwIFAWQFDHJlY0NvbnRpbmVudAQJY29udFByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUMcmVzQnlDb250S2V5AgswXzBfMF8wXzBfMAIBXwQQdXBkYXRlZENvbnRQcm9wcwkAuQkCCQEZdXBkYXRlUHJvcG9ydGlvbnNJbnRlcm5hbAQFCWNvbnRQcm9wcwUNdGVycmFpbkNvdW50cwUJbGFuZEluZGV4AP///////////wECAV8EC2NsYWltUmVzdWx0CQEIY2xhaW1BbGwEBQRhZGRyBQtsYW5kQXNzZXRJZAUGcGllY2VzBQ1jbGFpbU1vZGVEdWNrBAVsYW5kcwkAvQkCCQELdmFsdWVPckVsc2UCCQCiCAEFCGxhbmRzS2V5AgACAV8EA2lkeAkAzwgCBQVsYW5kcwULbGFuZEFzc2V0SWQDCQEBIQEJAQlpc0RlZmluZWQBBQNpZHgJAAIBCQCsAgICIFlvdXIgc3Rha2VkIGxhbmRzIGRvbid0IGNvbnRhaW4gBQtsYW5kQXNzZXRJZAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQOZ292UmVsZWFzZVRpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgULZ292Q29udHJhY3QJARVrZXlVc2VyR3dsUmVsZWFzZVRpbWUBBQRhZGRyAAADCQBnAgUOZ292UmVsZWFzZVRpbWUFA25vdwkAAgEJAKwCAgI5WW91ciBnV0wgYXJlIHRha2luZyBwYXJ0IGluIHZvdGluZywgY2Fubm90IHVuc3Rha2UgdW50aWwgCQCkAwEFDmdvdlJlbGVhc2VUaW1lBA5hcmJSZWxlYXNlVGltZQkAZAIJAQt2YWx1ZU9yRWxzZQIJAJoIAgULd2xnQ29udHJhY3QJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIAAAUOYXJiaXRyYWdlRGVsYXkDCQBmAgUOYXJiUmVsZWFzZVRpbWUFA25vdwkAAgEJAKwCAgI/WW91ciBzdGFrZWQgbGFuZHMgdG9vayBwYXJ0IGluIGFyYml0cmFnZSwgY2Fubm90IHVuc3Rha2UgdW50aWwgCQCkAwEFDmFyYlJlbGVhc2VUaW1lBAlwaWVjZXNLZXkJARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQUEYWRkcgQMc3Rha2VkUGllY2VzCQELdmFsdWVPckVsc2UCCQCfCAEFCXBpZWNlc0tleQAABAluZXdQaWVjZXMDCQBmAgUGcGllY2VzBQxzdGFrZWRQaWVjZXMAAAkAZQIFDHN0YWtlZFBpZWNlcwUGcGllY2VzBAl3bGdSZXN1bHQJAPwHBAULd2xnQ29udHJhY3QCEm9uU3Rha2VVbnN0YWtlTGFuZAkAzAgCBQRhZGRyBQNuaWwFA25pbAkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABCQDZBAEFC2xhbmRBc3NldElkCQDMCAIJAQtEZWxldGVFbnRyeQEJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQULbGFuZEFzc2V0SWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBImtleVN0YWtlZFRpbWVCeVR5cGVBc3NldElkQW5kT3duZXIDBQpMQU5EUFJFRklYBQtsYW5kQXNzZXRJZAUEYWRkcgkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5UmVzUHJvcG9ydGlvbnMABQVwcm9wcwkAzAgCCQELU3RyaW5nRW50cnkCBQxyZXNCeUNvbnRLZXkFEHVwZGF0ZWRDb250UHJvcHMJAMwIAgkBC1N0cmluZ0VudHJ5AggFC2NsYWltUmVzdWx0Al8yCQC5CQIIBQtjbGFpbVJlc3VsdAJfMwIBOgkAzAgCAwkAZgIJAJADAQUFbGFuZHMAAQkBC1N0cmluZ0VudHJ5AgUIbGFuZHNLZXkJALsJAgkA0QgCBQVsYW5kcwkBBXZhbHVlAQUDaWR4AgFfCQELRGVsZXRlRW50cnkBBQhsYW5kc0tleQkAzAgCCQEMSW50ZWdlckVudHJ5AgUJcGllY2VzS2V5BQluZXdQaWVjZXMJAMwIAgUMcHJvbG9nQWN0aW9uBQNuaWwFCXdsZ1Jlc3VsdAFpAQlzdGFrZUR1Y2sABAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIcRXhhY3RseSBvbmUgcGF5bWVudCByZXF1aXJlZAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEB2Fzc2V0SWQJAQV2YWx1ZQEIBQNwbXQHYXNzZXRJZAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIDCQECIT0CCAUDcG10BmFtb3VudAABCQACAQkArAICCQCsAgICBE5GVCAFCkRVQ0tQUkVGSVgCJCB0b2tlbiBzaG91bGQgYmUgYXR0YWNoZWQgYXMgcGF5bWVudAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQUHYXNzZXRJZAMDCQECIT0CCAUFYXNzZXQGaXNzdWVyBQ1pbmN1YmF0b3JBZGRyCQECIT0CCAUFYXNzZXQGaXNzdWVyBQticmVlZGVyQWRkcgcJAAIBCQCsAgIJAKwCAgISVW5rbm93biBpc3N1ZXIgb2YgBQpEVUNLUFJFRklYAgYgdG9rZW4DCQEBIQEJAQhjb250YWlucwIIBQVhc3NldARuYW1lBQpEVUNLUFJFRklYCQACAQkArAICCQCsAgICCU9ubHkgTkZUIAUKRFVDS1BSRUZJWAIUIHRva2VucyBhcmUgYWNjZXB0ZWQECmFzc2V0SWRTdHIJANgEAQUHYXNzZXRJZAQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQphc3NldElkU3RyAwkBCWlzRGVmaW5lZAEJAJ8IAQUHdGltZUtleQkAAgEJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQISIGlzIGFscmVhZHkgc3Rha2VkAwkBCWlzRGVmaW5lZAEJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUHYWRkcmVzcwkAAgEJAKwCAgIdWW91IGFscmVhZHkgc3Rha2VkIG9uZSBkdWNrOiAIBQVhc3NldARuYW1lBAZsb2NLZXkJAQ9rZXlEdWNrTG9jYXRpb24BBQphc3NldElkU3RyBAhsb2NhdGlvbgkAoggBBQZsb2NLZXkEBWJwS2V5CQERa2V5QmFja3BhY2tCeUR1Y2sBBQphc3NldElkU3RyBAhiYWNrcGFjawkAoggBBQVicEtleQQJa2V5SGVhbHRoCQENa2V5RHVja0hlYWx0aAEFCmFzc2V0SWRTdHIEBW1heEhQCQEJbWF4SGVhbHRoAQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEMa2V5RHVja0xldmVsAQUKYXNzZXRJZFN0cgAABAljdXJIZWFsdGgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJa2V5SGVhbHRoBQVtYXhIUAkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQd0aW1lS2V5CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBImtleVN0YWtlZFRpbWVCeVR5cGVBc3NldElkQW5kT3duZXIDBQpEVUNLUFJFRklYCQDYBAEFB2Fzc2V0SWQFB2FkZHJlc3MIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQtTdHJpbmdFbnRyeQIJARBrZXlEdWNrSWRUb093bmVyAQUKYXNzZXRJZFN0cgUHYWRkcmVzcwkAzAgCCQELU3RyaW5nRW50cnkCCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQdhZGRyZXNzBQphc3NldElkU3RyBQNuaWwDCQEJaXNEZWZpbmVkAQUIbG9jYXRpb24FA25pbAkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmxvY0tleQUPREVGQVVMVExPQ0FUSU9OBQNuaWwDCQEJaXNEZWZpbmVkAQUIYmFja3BhY2sFA25pbAkAzQgCCQDNCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgUFYnBLZXkCGjA6MF8wXzBfMF8wXzA6MF8wXzBfMF8wXzA6BQNuaWwJAQxJbnRlZ2VyRW50cnkCBQlrZXlIZWFsdGgFCWN1ckhlYWx0aAUMcHJvbG9nQWN0aW9uAWkBC3Vuc3Rha2VEdWNrAQphc3NldElkU3RyBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEB2Fzc2V0SWQJANkEAQUKYXNzZXRJZFN0cgQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEBWFzc2V0CQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQEB3RpbWVLZXkJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQUKYXNzZXRJZFN0cgMJAQEhAQkBCWlzRGVmaW5lZAEJAJ8IAQUHdGltZUtleQkAAgEJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQIOIGlzIG5vdCBzdGFrZWQDCQEBIQEJAQlpc0RlZmluZWQBCQCiCAEJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFB2FkZHJlc3MJAAIBCQCsAgIJAKwCAgIJVGhlIGR1Y2sgCAUFYXNzZXQEbmFtZQIOIGlzIG5vdCBzdGFrZWQEBW93bmVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBEGtleUR1Y2tJZFRvT3duZXIBBQphc3NldElkU3RyCQCsAgIJAKwCAgIETkZUIAgFBWFzc2V0BG5hbWUCDCBpcyBvcnBoYW5lZAMJAQIhPQIFBW93bmVyBQdhZGRyZXNzCQACAQIXU3Rha2VkIE5GVCBpcyBub3QgeW91cnMDCQEPY2hlY2tUb3VybmFtZW50AQUKYXNzZXRJZFN0cgkAAgECG3Vuc3Rha2VEdWNrX2NoZWNrVG91cm5hbWVudAMJAQ1jaGVja0RlbGl2ZXJ5AQUKYXNzZXRJZFN0cgkAAgECGXVuc3Rha2VEdWNrX2NoZWNrRGVsaXZlcnkECWtleUhlYWx0aAkBDWtleUR1Y2tIZWFsdGgBBQphc3NldElkU3RyBAVtYXhIUAkBCW1heEhlYWx0aAEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDGtleUR1Y2tMZXZlbAEFCmFzc2V0SWRTdHIAAAQGaGVhbHRoCQELdmFsdWVPckVsc2UCCQCfCAEFCWtleUhlYWx0aAUFbWF4SFADCQBmAgUFbWF4SFAFBmhlYWx0aAkAAgEJAKwCAgkArAICAhlQbGVhc2UgaGVhbCB5b3VyIGR1Y2sgdG8gCQCkAwEFBW1heEhQAhNocCBiZWZvcmUgdW5zdGFraW5nCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgABBQdhc3NldElkCQDMCAIJAQtEZWxldGVFbnRyeQEFB3RpbWVLZXkJAMwIAgkBC0RlbGV0ZUVudHJ5AQUJa2V5SGVhbHRoCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlEdWNrTG9jYXRpb24BBQphc3NldElkU3RyCQDMCAIJAQtEZWxldGVFbnRyeQEJARBrZXlEdWNrSWRUb093bmVyAQUKYXNzZXRJZFN0cgkAzAgCCQELRGVsZXRlRW50cnkBCQEia2V5U3Rha2VkVGltZUJ5VHlwZUFzc2V0SWRBbmRPd25lcgMFCkRVQ0tQUkVGSVgFCmFzc2V0SWRTdHIFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUHYWRkcmVzcwkAzAgCBQxwcm9sb2dBY3Rpb24FA25pbAFpAQhjbGFpbVJlcwIGYW1vdW50DmxhbmRBc3NldElkU3RyBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEBGFkZHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBAZyZXN1bHQJARBjbGFpbVJlc0ludGVybmFsBAUEYWRkcgUGYW1vdW50BQ1jbGFpbU1vZGVEdWNrBQ5sYW5kQXNzZXRJZFN0cgQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAhxZb3UgZG9uJ3QgaGF2ZSBhIGR1Y2sgc3Rha2VkCQCUCgIJAM0IAgkAzQgCCQDNCAIJAM4IAggFBnJlc3VsdAJfMQgJARd1cGRhdGVEdWNrU3RhdHNJbnRlcm5hbAIFC2R1Y2tBc3NldElkCQBrAwUHeHBDbGFpbQUGYW1vdW50BQVNVUxUOAJfMQkBC1N0cmluZ0VudHJ5AggFBnJlc3VsdAJfMgkAuQkCCAUGcmVzdWx0Al8zAgE6CQELU3RyaW5nRW50cnkCCAUGcmVzdWx0Al80CQC5CQIIBQZyZXN1bHQCXzUCAToFDHByb2xvZ0FjdGlvbgkAkQMCCAUGcmVzdWx0Al8zBQhicElkeFJlcwFpAQxjbGFpbVJlc1RvV0gCBmFtb3VudA5sYW5kQXNzZXRJZFN0cgQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBARhZGRyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQGcmVzdWx0CQEQY2xhaW1SZXNJbnRlcm5hbAQFBGFkZHIFBmFtb3VudAULY2xhaW1Nb2RlV2gFDmxhbmRBc3NldElkU3RyCQCUCgIJAM0IAgkAzQgCCQDNCAIJAM4IAggFBnJlc3VsdAJfMQgJARZ1cGRhdGVBY2NTdGF0c0ludGVybmFsAgUEYWRkcgkAawMFB3hwQ2xhaW0FBmFtb3VudAUFTVVMVDgCXzEJAQtTdHJpbmdFbnRyeQIIBQZyZXN1bHQCXzIJALkJAggFBnJlc3VsdAJfMwIBOgkBC1N0cmluZ0VudHJ5AggFBnJlc3VsdAJfNAkAuQkCCAUGcmVzdWx0Al81AgE6BQxwcm9sb2dBY3Rpb24JAJEDAggFBnJlc3VsdAJfNQUId2hJZHhSZXMBaQEGZmxpZ2h0AgdtZXNzYWdlA3NpZwQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBAh1c2VyQWRkcgkApQgBCAUBaQZjYWxsZXIEAWYJAQxmbGlnaHRDb21tb24DBQh1c2VyQWRkcgUHbWVzc2FnZQUDc2lnBAVuZXdIUAgFAWYCXzEEC2R1Y2tBc3NldElkCAUBZgJfMgQGbG9jS2V5CQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQEC2N1ckxvY2F0aW9uCQELdmFsdWVPckVsc2UCCQCiCAEFBmxvY0tleQUPREVGQVVMVExPQ0FUSU9OBAtuZXdMb2NhdGlvbggFAWYCXzQDCQAAAgULbmV3TG9jYXRpb24FC2N1ckxvY2F0aW9uCQACAQIiWW91IGNhbid0IGZseSB0byB0aGUgc2FtZSBsb2NhdGlvbgQGbmV3TG9jCQC1CQIFC25ld0xvY2F0aW9uAgFfBAZpc1RvdXIJAAACCQCRAwIFBm5ld0xvYwUKbG9jSWR4VHlwZQIBVAQFZXFLZXkJARBrZXlEdWNrRXF1aXBtZW50AQULZHVja0Fzc2V0SWQECWN1cnJlbnRFcQkBC3ZhbHVlT3JFbHNlAgkAoggBBQVlcUtleQIXLDssXyw7LF8sOyxfLDssXyw7LF8sOywEDSR0MDY2ODEzNjY5MTAJARFzdWJ0cmFjdEVxdWlwbWVudAIFCWN1cnJlbnRFcQgFAWYCXzUEBW5ld0VxCAUNJHQwNjY4MTM2NjkxMAJfMQQPc2hvdWxkWmVyb0J1ZmZzCAUNJHQwNjY4MTM2NjkxMAJfMgQJbG9jVG9TYXZlAwkBASEBCQEOaXNJblRvdXJuYW1lbnQCBRJ0b3VybmFtZW50Q29udHJhY3QFC2N1ckxvY2F0aW9uAwUGaXNUb3VyCQACAQkArAICCQCsAgIJAKwCAgIWQ2hlYXQgYXR0ZW1wdDogb2xkTG9jPQULY3VyTG9jYXRpb24CCSwgbmV3TG9jPQULbmV3TG9jYXRpb24DCQBmAgUFbmV3SFAAAAULbmV3TG9jYXRpb24FC2N1ckxvY2F0aW9uAwkBASEBCQEOaXNJblRvdXJuYW1lbnQCBRJ0b3VybmFtZW50Q29udHJhY3QFC25ld0xvY2F0aW9uCQACAQIqWW91ciBkdWNrIGlzIHRha2luZyBwYXJ0IGluIHRoZSB0b3VybmFtZW50BAVzY29yZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBm5ld0xvYwUIbG9jSWR4SWQEBmN1ckxvYwkAtQkCBQtjdXJMb2NhdGlvbgIBXwQGbGFzdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEnRvdXJuYW1lbnRDb250cmFjdAUNbGFzdFRvdXJJZEtleQAAAwkBAiE9AgUFc2NvcmUJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUGY3VyTG9jBQhsb2NJZHhJZAABCQACAQkArAICCQCsAgIJAKwCAgIWQ2hlYXQgYXR0ZW1wdDogb2xkTG9jPQULY3VyTG9jYXRpb24CCSwgbmV3TG9jPQULbmV3TG9jYXRpb24DCQBmAgUFbmV3SFAAAAQJbG9jYWxCZXN0CQELdmFsdWVPckVsc2UCCQCaCAIFEnRvdXJuYW1lbnRDb250cmFjdAkBGmtleUJlc3RSZXN1bHRCeVRvdXJBbmREdWNrAgUGbGFzdElkBQtkdWNrQXNzZXRJZAAABAh1cGRMb2NhbAMJAGYCBQVzY29yZQUJbG9jYWxCZXN0CQD8BwQFEnRvdXJuYW1lbnRDb250cmFjdAIOc2F2ZUR1Y2tSZXN1bHQJAMwIAgULZHVja0Fzc2V0SWQJAMwIAgUFc2NvcmUFA25pbAUDbmlsBQR1bml0AwkAAAIFCHVwZExvY2FsBQh1cGRMb2NhbAULbmV3TG9jYXRpb24JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FC2N1ckxvY2F0aW9uCQCUCgIJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCBQZsb2NLZXkFCWxvY1RvU2F2ZQkAzAgCCQELU3RyaW5nRW50cnkCBQVlcUtleQUFbmV3RXEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQFBW5ld0hQCQDMCAIFDHByb2xvZ0FjdGlvbgUDbmlsAwUPc2hvdWxkWmVyb0J1ZmZzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQxrZXlEdWNrQnVmZnMBBQtkdWNrQXNzZXRJZAIJMF8wXzBfMF8wBQNuaWwJAM4IAgUDbmlsCAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQDCQBmAgUFbmV3SFAAAAUPeHBTdWNjZXNzRmxpZ2h0BQx4cEZhaWxGbGlnaHQCXzEIBQFmAl8zAWkBBGhlYWwDCnF1YW50aXR5TDEKcXVhbnRpdHlMMgpxdWFudGl0eUwzBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwMDCQBmAgAABQpxdWFudGl0eUwxBgkAZgIAAAUKcXVhbnRpdHlMMgYJAGYCAAAFCnF1YW50aXR5TDMJAAIBAhtRdWFudGl0eSBjYW5ub3QgYmUgbmVnYXRpdmUEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQkApQgBCAUBaQZjYWxsZXICHFlvdSBkb24ndCBoYXZlIGEgZHVjayBzdGFrZWQDCQEPY2hlY2tUb3VybmFtZW50AQULZHVja0Fzc2V0SWQJAAIBAhRoZWFsX2NoZWNrVG91cm5hbWVudAMJAQ1jaGVja0RlbGl2ZXJ5AQULZHVja0Fzc2V0SWQJAAIBAhJoZWFsX2NoZWNrRGVsaXZlcnkEA3F0cwkAzAgCBQpxdWFudGl0eUwxCQDMCAIFCnF1YW50aXR5TDIJAMwIAgUKcXVhbnRpdHlMMwUDbmlsBAlrZXlIZWFsdGgJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQEBW1heEhQCQEJbWF4SGVhbHRoAQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEMa2V5RHVja0xldmVsAQULZHVja0Fzc2V0SWQAAAQJb2xkSGVhbHRoCQELdmFsdWVPckVsc2UCCQCfCAEFCWtleUhlYWx0aAUFbWF4SFADCQBnAgUJb2xkSGVhbHRoBQVtYXhIUAkAAgEJAKwCAgkArAICAg9IUCBzaG91bGQgYmUgPCAJAKQDAQUFbWF4SFACCCB0byBoZWFsBAVicEtleQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEC2N1cnJlbnRQYWNrCQELZ2V0QmFja3BhY2sBBQVicEtleQQIcHJvZExpc3QDCQAAAgkAkQMCBQtjdXJyZW50UGFjawUJYnBJZHhQcm9kAgAFA25pbAkAvAkCCQCRAwIFC2N1cnJlbnRQYWNrBQlicElkeFByb2QCAV8KAQtpdGVyYXRlUHJvZAIDYWNjBnJlY2lwZQQBbggFA2FjYwJfMgQBeAMJAGYCCQCQAwEFCHByb2RMaXN0BQFuCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIcHJvZExpc3QFAW4AAAMJAGYCAAMFAW4EAXEJAJEDAgUDcXRzBQFuAwkAZgIFAXEFAXgJAAIBCQCsAgIJAKwCAgkArAICAg5Zb3UgaGF2ZSBvbmx5IAkApAMBBQF4AgQgb2YgCQCRAwIFCXByb2RUeXBlcwUBbgkAlQoDCQDNCAIIBQNhY2MCXzEJAKQDAQkAZQIFAXgFAXEJAGQCBQFuAAEJAGQCCAUDYWNjAl8zCQBoAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgUGcmVjaXBlAgFfBQpySWR4RWZmZWN0BQFxCQCVCgMJAM0IAggFA2FjYwJfMQkApAMBBQF4CQBkAgUBbgABCAUDYWNjAl8zBAZyZXN1bHQKAAIkbAUQcHJvZHVjdGlvbk1hdHJpeAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsAAAAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQELaXRlcmF0ZVByb2QCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDUwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgQJbmV3SGVhbHRoCQCXAwEJAMwIAgUFbWF4SFAJAMwIAgkAZAIFCW9sZEhlYWx0aAgFBnJlc3VsdAJfMwUDbmlsCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5SGVhbHRoBQluZXdIZWFsdGgJAMwIAgkBC1N0cmluZ0VudHJ5AgUFYnBLZXkJALoJAgkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4UmVzCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4TWF0CQDMCAIJALkJAggFBnJlc3VsdAJfMQIBXwUDbmlsAgE6CQDMCAIFDHByb2xvZ0FjdGlvbgUDbmlsCAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQJAGgCBQZ4cEhlYWwJAGQCCQBkAgUKcXVhbnRpdHlMMQUKcXVhbnRpdHlMMgUKcXVhbnRpdHlMMwJfMQUJbmV3SGVhbHRoAWkBBmhlYWxFUwAEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAhxFeGFjdGx5IG9uZSBwYXltZW50IHJlcXVpcmVkBANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAMJAQIhPQIIBQNwbXQHYXNzZXRJZAULdXNkdEFzc2V0SWQJAAIBAhpBbGxvd2VkIFVTRFQgcGF5bWVudCBvbmx5IQQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBCQClCAEIBQFpBmNhbGxlcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAMJAQ9jaGVja1RvdXJuYW1lbnQBBQtkdWNrQXNzZXRJZAkAAgECFmhlYWxFU19jaGVja1RvdXJuYW1lbnQDCQENY2hlY2tEZWxpdmVyeQEFC2R1Y2tBc3NldElkCQACAQIUaGVhbEVTX2NoZWNrRGVsaXZlcnkECWtleUhlYWx0aAkBDWtleUR1Y2tIZWFsdGgBBQtkdWNrQXNzZXRJZAQFbWF4SFAJAQltYXhIZWFsdGgBCQELdmFsdWVPckVsc2UCCQCfCAEJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAAABAlvbGRIZWFsdGgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJa2V5SGVhbHRoBQVtYXhIUAMJAGYCBQlvbGRIZWFsdGgAAAkAAgECKEhQIHNob3VsZCBiZSAwIHRvIGNhbGwgRW1lcmdlbmN5IFNlcnZpY2UEBWJwS2V5CQERa2V5QmFja3BhY2tCeUR1Y2sBBQtkdWNrQXNzZXRJZAQLY3VycmVudFBhY2sJAQtnZXRCYWNrcGFjawEFBWJwS2V5BAhwcm9kTGlzdAMJAAACCQCRAwIFC2N1cnJlbnRQYWNrBQlicElkeFByb2QCAAUDbmlsCQC8CQIJAJEDAgULY3VycmVudFBhY2sFCWJwSWR4UHJvZAIBXwQNbWVkS2l0QW1vdW50MQMJAGYCCQCQAwEFCHByb2RMaXN0AAAJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhwcm9kTGlzdAAAAAAEDW1lZEtpdEFtb3VudDIDCQBmAgkAkAMBBQhwcm9kTGlzdAABCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIcHJvZExpc3QAAQAABA1tZWRLaXRBbW91bnQzAwkAZgIJAJADAQUIcHJvZExpc3QAAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCHByb2RMaXN0AAIAAAMDAwkAZgIFDW1lZEtpdEFtb3VudDEAAAYJAGYCBQ1tZWRLaXRBbW91bnQyAAAGCQBmAgUNbWVkS2l0QW1vdW50MwAACQACAQIfWW91IGhhdmUgdG8gdXNlIG93biBNZWRpY2FsIEtpdAQIZXhpc3RTdHIJAJ0IAgUPZWNvbm9teUNvbnRyYWN0CQEOa2V5RXNXYXJlaG91c2UABAxleGlzdEFtb3VudHMDCQEJaXNEZWZpbmVkAQUIZXhpc3RTdHIJALwJAgkBBXZhbHVlAQUIZXhpc3RTdHICAV8FA25pbAQLZXhpc3RBbW91bnQDCQBmAgkAkAMBBQxleGlzdEFtb3VudHMAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDGV4aXN0QW1vdW50cwAAAAADCQBnAgAABQtleGlzdEFtb3VudAkAAgECOVRoZXJlIGFyZSBubyBNZWRpY2FsIEtpdHMgTDEgYXQgRW1lcmdlbmN5IFNlcnZpY2Ugc3RvcmFnZQQJbmV3SGVhbHRoCQBkAgUJb2xkSGVhbHRoCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgkAtQkCCQCRAwIFEHByb2R1Y3Rpb25NYXRyaXgAAAIBXwUKcklkeEVmZmVjdAQFbmV3RVMJALkJAgkAzAgCCQCkAwEJAGUCBQtleGlzdEFtb3VudAABCQDRCAIFDGV4aXN0QW1vdW50cwAAAgFfBAZyZWNpcGUJALUJAgkAkQMCBRBwcm9kdWN0aW9uTWF0cml4AAACAV8ECHRvdGFsTWF0CQESZ2V0UmVjaXBlTWF0ZXJpYWxzAQUGcmVjaXBlBAlzZWxsUHJpY2UJAGsDCQBoAgUIdG90YWxNYXQFCkVTU0VMTENPRUYFEFJFU09VUkNFUFJJQ0VNSU4JAGgCBQVNVUxUOAUOUFJPRFVDVFBLR1NJWkUDCQECIT0CCAUDcG10BmFtb3VudAUJc2VsbFByaWNlCQACAQkArAICAhtQYXltZW50IGF0dGFjaGVkIHNob3VsZCBiZSAJAKQDAQUJc2VsbFByaWNlBAZyZXN1bHQJAQhhc1N0cmluZwEJAPwHBAUPZWNvbm9teUNvbnRyYWN0Ag91cGRhdGVFc1N0b3JhZ2UJAMwIAgUFbmV3RVMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgULdXNkdEFzc2V0SWQFCXNlbGxQcmljZQUDbmlsCQCUCgIJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5SGVhbHRoBQluZXdIZWFsdGgJAMwIAgUMcHJvbG9nQWN0aW9uBQNuaWwICQEXdXBkYXRlRHVja1N0YXRzSW50ZXJuYWwCBQtkdWNrQXNzZXRJZAUIeHBDYWxsRVMCXzEFBnJlc3VsdAFpAQ51cGRhdGVCYWNrcGFjawILZHVja0Fzc2V0SWQHbmV3UGFjawMJAQIhPQIIBQFpBmNhbGxlcgUPZWNvbm9teUNvbnRyYWN0CQACAQIRcGVybWlzc2lvbiBkZW5pZWQJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5QmFja3BhY2tCeUR1Y2sBBQtkdWNrQXNzZXRJZAUHbmV3UGFjawUDbmlsBQduZXdQYWNrAWkBD2NvbW1pdEZvclJhbmRvbQAEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkEC2ZpbmlzaEJsb2NrCQBkAgUGaGVpZ2h0BQtyYW5kb21EZWxheQQEYWRkcgkApQgBCAUBaQZjYWxsZXIJAJQKAgkAzQgCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEJa2V5Q29tbWl0AQUEYWRkcgULZmluaXNoQmxvY2sFA25pbAUMcHJvbG9nQWN0aW9uBQtmaW5pc2hCbG9jawFpAQphd2FyZFNMYW5kAQdhZGRyZXNzAwkBAiE9AggFAWkGY2FsbGVyBRJ0b3VybmFtZW50Q29udHJhY3QJAAIBAg1BY2Nlc3MgZGVuaWVkAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEBnJlc3VsdAkBEmV4cGVkaXRpb25JbnRlcm5hbAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB2FkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQJAJQKAggFBnJlc3VsdAJfMQgIBQZyZXN1bHQCXzICXzEBaQEIYnV5U0xhbmQABAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIcRXhhY3RseSBvbmUgcGF5bWVudCByZXF1aXJlZAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAADCQECIT0CCAUDcG10B2Fzc2V0SWQFC3VzZHRBc3NldElkCQACAQIaQWxsb3dlZCBVU0RUIHBheW1lbnQgb25seSEDCQECIT0CCAUDcG10BmFtb3VudAUHRVhQVVNEVAkAAgEJAKwCAgIbUGF5bWVudCBhdHRhY2hlZCBzaG91bGQgYmUgCQCkAwEFB0VYUFVTRFQEBnJlc3VsdAkBEmV4cGVkaXRpb25JbnRlcm5hbAIIBQFpBmNhbGxlcggFAWkNdHJhbnNhY3Rpb25JZAQLYWNyZXNSZXN1bHQJAQVhc0ludAEJAPwHBAUNYWNyZXNDb250cmFjdAIJYnVybkFjcmVzCQDMCAIFDFNfQ09TVF9BQ1JFUwUDbmlsBQNuaWwJAJQKAgkAzQgCCQDOCAIJAM0IAggFBnJlc3VsdAJfMQkBDlNjcmlwdFRyYW5zZmVyAwUPZWNvbm9teUNvbnRyYWN0CAUDcG10BmFtb3VudAULdXNkdEFzc2V0SWQICQEWdXBkYXRlQWNjU3RhdHNJbnRlcm5hbAIJAKUIAQgFAWkGY2FsbGVyBQp4cE5ld1NMYW5kAl8xBQxwcm9sb2dBY3Rpb24JAJQKAggIBQZyZXN1bHQCXzICXzEFC2FjcmVzUmVzdWx0AWkBCmV4cGVkaXRpb24CB21lc3NhZ2UDc2lnBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQECHVzZXJBZGRyCQClCAEIBQFpBmNhbGxlcgQBZgkBDGZsaWdodENvbW1vbgMFCHVzZXJBZGRyBQdtZXNzYWdlBQNzaWcEC2R1Y2tBc3NldElkCAUBZgJfMgQJa2V5SGVhbHRoCQENa2V5RHVja0hlYWx0aAEFC2R1Y2tBc3NldElkBAVicEtleQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEC2N1cnJlbnRQYWNrCQELZ2V0QmFja3BhY2sBBQVicEtleQQFbUxpc3QJALUJAgkAkQMCBQtjdXJyZW50UGFjawUIYnBJZHhNYXQCAV8EBm5ld01hdAkAuQkCCQERc3VidHJhY3RNYXRlcmlhbHMDBgUFbUxpc3QFDEVYUE1BVEVSSUFMUwIBXwQFZXFLZXkJARBrZXlEdWNrRXF1aXBtZW50AQULZHVja0Fzc2V0SWQECWN1cnJlbnRFcQkBC3ZhbHVlT3JFbHNlAgkAoggBBQVlcUtleQIXLDssXyw7LF8sOyxfLDssXyw7LF8sOywEDSR0MDc1ODM4NzU5MzUJARFzdWJ0cmFjdEVxdWlwbWVudAIFCWN1cnJlbnRFcQgFAWYCXzUEBW5ld0VxCAUNJHQwNzU4Mzg3NTkzNQJfMQQPc2hvdWxkWmVyb0J1ZmZzCAUNJHQwNzU4Mzg3NTkzNQJfMgQBZQkBEmV4cGVkaXRpb25JbnRlcm5hbAIIBQFpBmNhbGxlcggFAWkNdHJhbnNhY3Rpb25JZAQCaWQICAUBZQJfMgJfMQQGcmVzdWx0AwkAZwIAAAgFAWYCXzEJAJUKAwkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5SGVhbHRoAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgUFZXFLZXkFBW5ld0VxBQNuaWwCAAAACQCVCgMJAM4IAggFAWUCXzEDBQ9zaG91bGRaZXJvQnVmZnMJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleUR1Y2tCdWZmcwEFC2R1Y2tBc3NldElkAgkwXzBfMF8wXzAFA25pbAkAzQgCCQDNCAIJAM0IAgkAzQgCBQNuaWwJAQtTdHJpbmdFbnRyeQIJAQ9rZXlEdWNrTG9jYXRpb24BBQtkdWNrQXNzZXRJZAkAuQkCCQDMCAIICAUBZQJfMgJfMgkAzAgCAgFMCQDMCAIFAmlkBQNuaWwCAV8JAQxJbnRlZ2VyRW50cnkCBQlrZXlIZWFsdGgIBQFmAl8xCQELU3RyaW5nRW50cnkCBQVlcUtleQUFbmV3RXEJAQtTdHJpbmdFbnRyeQIFBWJwS2V5CQC5CQIJAMwIAgkAkQMCBQtjdXJyZW50UGFjawUKYnBJZHhMZXZlbAkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwkAzAgCBQZuZXdNYXQJAMwIAgkAkQMCBQtjdXJyZW50UGFjawUJYnBJZHhQcm9kBQNuaWwCAToFAmlkCAUBZgJfMwMJAQ9jaGVja1RvdXJuYW1lbnQBBQtkdWNrQXNzZXRJZAkAAgECGmV4cGVkaXRpb25fY2hlY2tUb3VybmFtZW50AwkBDWNoZWNrRGVsaXZlcnkBBQtkdWNrQXNzZXRJZAkAAgECGGV4cGVkaXRpb25fY2hlY2tEZWxpdmVyeQQLYWNyZXNSZXN1bHQJAQVhc0ludAEJAPwHBAUNYWNyZXNDb250cmFjdAIJYnVybkFjcmVzCQDMCAIFDFNfQ09TVF9BQ1JFUwUDbmlsBQNuaWwJAJQKAgkAzQgCCQDOCAIIBQZyZXN1bHQCXzEICQEXdXBkYXRlRHVja1N0YXRzSW50ZXJuYWwCBQtkdWNrQXNzZXRJZAUKeHBOZXdTTGFuZAJfMQUMcHJvbG9nQWN0aW9uCQCVCgMIBQZyZXN1bHQCXzIIBQZyZXN1bHQCXzMFC2FjcmVzUmVzdWx0AWkBEGJ1eVNMYW5kRm9yQWNyZXMABAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEA2FtdAgFA3BtdAZhbW91bnQDAwkBASEBCQEJaXNEZWZpbmVkAQgFA3BtdAdhc3NldElkBgkBAiE9AgkBBXZhbHVlAQgFA3BtdAdhc3NldElkBQxhY3Jlc0Fzc2V0SWQJAAIBAhRBQ1JFUyBwYXltZW50cyBvbmx5IQMJAQIhPQIFA2FtdAUMU19DT1NUX0FDUkVTCQACAQkArAICAhtQYXltZW50IGF0dGFjaGVkIHNob3VsZCBiZSAJAKQDAQUMU19DT1NUX0FDUkVTBAZyZXN1bHQJARJleHBlZGl0aW9uSW50ZXJuYWwCCAUBaQZjYWxsZXIIBQFpDXRyYW5zYWN0aW9uSWQEC2FjcmVzUmVzdWx0CQEFYXNJbnQBCQD8BwQFDWFjcmVzQ29udHJhY3QCCWJ1cm5BY3JlcwkAzAgCBQxTX0NPU1RfQUNSRVMFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUMYWNyZXNBc3NldElkBQNhbXQFA25pbAkAlAoCCQDNCAIJAM4IAgkAzQgCCAUGcmVzdWx0Al8xCQEOU2NyaXB0VHJhbnNmZXIDBQ9lY29ub215Q29udHJhY3QIBQNwbXQGYW1vdW50BQt1c2R0QXNzZXRJZAgJARZ1cGRhdGVBY2NTdGF0c0ludGVybmFsAgkApQgBCAUBaQZjYWxsZXIFCnhwTmV3U0xhbmQCXzEFDHByb2xvZ0FjdGlvbgkAlAoCCAgFBnJlc3VsdAJfMgJfMQULYWNyZXNSZXN1bHQBaQEMdXBncmFkZUluZnJhAQtsYW5kQXNzZXRJZAQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBAZyZXN1bHQJAQ11cEluZnJhQ29tbW9uBAYIBQFpBmNhbGxlcgAABQtsYW5kQXNzZXRJZAQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBCQClCAEIBQFpBmNhbGxlcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAkAlAoCCQDOCAIJAM0IAggFBnJlc3VsdAJfMQUMcHJvbG9nQWN0aW9uCAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQJAGsDBQ54cFVwZ3JhZGVJbmZyYQgFBnJlc3VsdAJfMwUFTVVMVDgCXzEIBQZyZXN1bHQCXzIBaQEQYWN0aXZhdGVBcnRpZmFjdAIHYXJ0TmFtZQ5sYW5kQXNzZXRJZE9wdAQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBARhZGRyCQClCAEIBQFpBmNhbGxlcgQGcmVzdWx0BAckbWF0Y2gwBQdhcnROYW1lAwkAAAICB1BSRVNBTEUFByRtYXRjaDAJARJhY3RpdmF0ZVByZXNhbGVBcnQCBQRhZGRyBQ5sYW5kQXNzZXRJZE9wdAMJAAACAgdPTkJPQVJEBQckbWF0Y2gwCQESYWN0aXZhdGVPbmJvYXJkQXJ0AQUEYWRkcgkAAgECEFVua25vd24gYXJ0aWZhY3QJAM0IAgUGcmVzdWx0BQxwcm9sb2dBY3Rpb24BaQEKbWVyZ2VMYW5kcwEMbGFuZEFzc2V0SWRzBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEBnJlc3VsdAkBC21lcmdlQ29tbW9uAgkApQgBCAUBaQZjYWxsZXIFDGxhbmRBc3NldElkcwkAlAoCCQDOCAIJAM0IAggFBnJlc3VsdAJfMQUMcHJvbG9nQWN0aW9uCAkBFnVwZGF0ZUFjY1N0YXRzSW50ZXJuYWwCCQClCAEIBQFpBmNhbGxlcgUHeHBNZXJnZQJfMQgFBnJlc3VsdAJfMgFpAQ1jYXJnb0V4Y2hhbmdlAgxjYXJnb0xpc3RTdHILbGFuZEFzc2V0SWQEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQKY2FyZ29QYXJ0cwkAvAkCBQxjYXJnb0xpc3RTdHICAToEBGFkZHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFC2xhbmRBc3NldElkBAd0aW1lS2V5CQEWa2V5U3Rha2VkVGltZUJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQkAnwgBBQd0aW1lS2V5CQACAQkArAICCAUFYXNzZXQEbmFtZQIOIGlzIG5vdCBzdGFrZWQEBW93bmVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFC2xhbmRBc3NldElkCQCsAgIJAKwCAgIETkZUIAgFBWFzc2V0BG5hbWUCDCBpcyBvcnBoYW5lZAMJAQIhPQIFBW93bmVyBQRhZGRyCQACAQkArAICBQpMQU5EUFJFRklYAg0gaXMgbm90IHlvdXJzBAlsYW5kSW5kZXgJAGkCCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCCQC1CQIIBQVhc3NldAtkZXNjcmlwdGlvbgIBXwULcmVjTGFuZFNpemUFBVNTSVpFBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAhxZb3UgZG9uJ3QgaGF2ZSBhIGR1Y2sgc3Rha2VkBAtjdXJMb2NhdGlvbgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQFD0RFRkFVTFRMT0NBVElPTgQDbG9jCQC1CQIJAQV2YWx1ZQEFC2N1ckxvY2F0aW9uAgFfAwkBAiE9AgkAkQMCBQNsb2MFCmxvY0lkeFR5cGUCAUwJAAIBCQCsAgIJAKwCAgIWRHVjayBsb2NhdGlvbiB0eXBlIGlzIAkAkQMCBQNsb2MFCmxvY0lkeFR5cGUCESwgYnV0IHNob3VsZCBiZSBMAwkBAiE9AgkAkQMCBQNsb2MFCGxvY0lkeElkBQtsYW5kQXNzZXRJZAkAAgEJAKwCAgIbRHVjayBzaG91bGQgYmUgb24gdGhlIGxhbmQgBQtsYW5kQXNzZXRJZAQFd2hLZXkJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAQJY3VycmVudFdoCQEMZ2V0V2FyZWhvdXNlAwUFd2hLZXkFCWxhbmRJbmRleAUKaW5mcmFMZXZlbAQFYnBLZXkJARFrZXlCYWNrcGFja0J5RHVjawEFC2R1Y2tBc3NldElkBAtjdXJyZW50UGFjawkBC2dldEJhY2twYWNrAQUFYnBLZXkEBnJlc3VsdAkBCW1vdmVTdHVmZgMFCmNhcmdvUGFydHMFCWN1cnJlbnRXaAULY3VycmVudFBhY2sEBGxvZnQJALUJAgkAkQMCBQljdXJyZW50V2gFCXdoSWR4TE9GVAIBXwQFbG9mdE8JAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEbG9mdAULdm9sT2NjdXBpZWQIBQZyZXN1bHQCXzcEBWxvZnRGCQBlAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBGxvZnQFB3ZvbEZyZWUIBQZyZXN1bHQCXzcJAMwIAgkBC1N0cmluZ0VudHJ5AgUFYnBLZXkJALoJAgkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIIBQZyZXN1bHQCXzQJAMwIAggFBnJlc3VsdAJfNQkAzAgCCAUGcmVzdWx0Al82BQNuaWwCAToJAMwIAgkBC1N0cmluZ0VudHJ5AgUFd2hLZXkJALoJAgkAzAgCCQCRAwIFCWN1cnJlbnRXaAULd2hJZHhMZXZlbHMJAMwIAggFBnJlc3VsdAJfMQkAzAgCCAUGcmVzdWx0Al8yCQDMCAIIBQZyZXN1bHQCXzMJAMwIAgkAuQkCCQDMCAIJAJEDAgUEbG9mdAUJdm9sTG9ja2VkCQDMCAIJAKQDAQUFbG9mdE8JAMwIAgkApAMBBQVsb2Z0RgkAzAgCCQCRAwIFBGxvZnQFCHZvbFRvdGFsBQNuaWwCAV8FA25pbAIBOgkAzAgCBQxwcm9sb2dBY3Rpb24FA25pbAFpAQ1zYXZlV2FyZWhvdXNlAgV3aFN0cgtsYW5kQXNzZXRJZAMJAQIhPQIIBQFpBmNhbGxlcgUPZWNvbm9teUNvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAQFd2hLZXkJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAQCd2gJALwJAgUFd2hTdHICAToDCQECIT0CCQCQAwEFAndoAAUJAAIBAjB3YXJlaG91c2Ugc3RyaW5nIHNob3VsZCBjb250YWluIDQgJzonIHNlcGFyYXRvcnMEBWxvZnRMCQCRAwIJALUJAgkAkQMCBQJ3aAUJd2hJZHhMT0ZUAgFfBQl2b2xMb2NrZWQEBWxvZnRPCQEXZ2V0V2FyZWhvdXNlT2NjdXBpZWRWb2wBBQJ3aAQFbG9mdFQJARdnZXRXYXJlaG91c2VUb3RhbFZvbHVtZQEJAJEDAgUCd2gFC3doSWR4TGV2ZWxzBAVsb2Z0RgkAZQIJAGUCBQVsb2Z0VAkBDXBhcnNlSW50VmFsdWUBBQVsb2Z0TAUFbG9mdE8ECG5ld1doU3RyCQC6CQIJAMwIAgkAkQMCBQJ3aAULd2hJZHhMZXZlbHMJAMwIAgkAkQMCBQJ3aAUId2hJZHhSZXMJAMwIAgkAkQMCBQJ3aAUId2hJZHhNYXQJAMwIAgkAkQMCBQJ3aAUJd2hJZHhQcm9kCQDMCAIJALkJAgkAzAgCBQVsb2Z0TAkAzAgCCQCkAwEFBWxvZnRPCQDMCAIJAKQDAQUFbG9mdEYJAMwIAgkApAMBBQVsb2Z0VAUDbmlsAgFfBQNuaWwCAToJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQV3aEtleQUIbmV3V2hTdHIFA25pbAUIbmV3V2hTdHIBaQESZml4V2FyZWhvdXNlRm9ybWF0AQtsYW5kQXNzZXRJZAMJAQIhPQIIBQFpBmNhbGxlcgUMcmVzdENvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAQFd2hLZXkJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQJbGFuZEluZGV4CQBpAgkBD251bVBpZWNlc0J5U2l6ZQEJAJEDAgkAtQkCCAUFYXNzZXQLZGVzY3JpcHRpb24CAV8FC3JlY0xhbmRTaXplBQVTU0laRQQKaW5mcmFMZXZlbAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAAAEAndoCQEMZ2V0V2FyZWhvdXNlAwUFd2hLZXkFCWxhbmRJbmRleAUKaW5mcmFMZXZlbAQFbG9mdEwJAQVhc0ludAEJAPwHBAUPZWNvbm9teUNvbnRyYWN0AhpyZWNhbGNMb2NrZWRWb2x1bWVSRUFET05MWQkAzAgCBQtsYW5kQXNzZXRJZAkAzAgCBQJ3aAUDbmlsBQNuaWwEBWxvZnRPCQEXZ2V0V2FyZWhvdXNlT2NjdXBpZWRWb2wBBQJ3aAQFbG9mdFQJARdnZXRXYXJlaG91c2VUb3RhbFZvbHVtZQEJAJEDAgUCd2gFC3doSWR4TGV2ZWxzBAVsb2Z0RgkAZQIJAGUCBQVsb2Z0VAUFbG9mdEwFBWxvZnRPBAhuZXdXaFN0cgkAugkCCQDMCAIJAJEDAgUCd2gFC3doSWR4TGV2ZWxzCQDMCAIJAJEDAgUCd2gFCHdoSWR4UmVzCQDMCAIJAJEDAgUCd2gFCHdoSWR4TWF0CQDMCAIJAJEDAgUCd2gFCXdoSWR4UHJvZAkAzAgCCQC5CQIJAMwIAgkApAMBBQVsb2Z0TAkAzAgCCQCkAwEFBWxvZnRPCQDMCAIJAKQDAQUFbG9mdEYJAMwIAgkApAMBBQVsb2Z0VAUDbmlsAgFfBQNuaWwCAToJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQV3aEtleQUIbmV3V2hTdHIFA25pbAUIbmV3V2hTdHIBaQEXZml4Q29udGluZW50UHJvcG9ydGlvbnMBDGxhbmRBc3NldElkcwMJAQIhPQIIBQFpBmNhbGxlcgUMcmVzdENvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAoBCGdldFByb3BzAgNhY2MEY29udAkAzQgCBQNhY2MJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBFmtleVJlc1R5cGVzQnlDb250aW5lbnQBBQRjb250AgswXzBfMF8wXzBfMAQBcAoAAiRsBQpjb250aW5lbnRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUDbmlsCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhnZXRQcm9wcwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUKAQlwcm9jZXNzb3ICA2FjYwtsYW5kQXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQBZAkAtQkCCAUFYXNzZXQLZGVzY3JpcHRpb24CAV8ECWxhbmRJbmRleAkAaQIJAQ9udW1QaWVjZXNCeVNpemUBCQCRAwIFAWQFC3JlY0xhbmRTaXplBQVTU0laRQQEY29udAkAkQMCBQFkBQxyZWNDb250aW5lbnQEDXRlcnJhaW5Db3VudHMJAQ1jb3VudFRlcnJhaW5zAQkAkQMCBQFkBQtyZWNUZXJyYWlucwQMY29udGluZW50SWR4CQEFdmFsdWUBCQDPCAIFCmNvbnRpbmVudHMFBGNvbnQECWNvbnRQcm9wcwkAtQkCCQCRAwIFA2FjYwUMY29udGluZW50SWR4AgFfBAd1cGRhdGVkCQC5CQIJARl1cGRhdGVQcm9wb3J0aW9uc0ludGVybmFsBAUJY29udFByb3BzBQ10ZXJyYWluQ291bnRzBQlsYW5kSW5kZXgAAQIBXwQHJG1hdGNoMAUEY29udAMJAAACAghBbWVyaWNhcwUHJG1hdGNoMAkAzAgCBQd1cGRhdGVkCQDMCAIJAJEDAgUDYWNjAAEJAMwIAgkAkQMCBQNhY2MAAgkAzAgCCQCRAwIFA2FjYwADCQDMCAIJAJEDAgUDYWNjAAQFA25pbAMJAAACAgZFdXJvcGUFByRtYXRjaDAJAMwIAgkAkQMCBQNhY2MAAAkAzAgCBQd1cGRhdGVkCQDMCAIJAJEDAgUDYWNjAAIJAMwIAgkAkQMCBQNhY2MAAwkAzAgCCQCRAwIFA2FjYwAEBQNuaWwDCQAAAgIEQXNpYQUHJG1hdGNoMAkAzAgCCQCRAwIFA2FjYwAACQDMCAIJAJEDAgUDYWNjAAEJAMwIAgUHdXBkYXRlZAkAzAgCCQCRAwIFA2FjYwADCQDMCAIJAJEDAgUDYWNjAAQFA25pbAMJAAACAgZBZnJpY2EFByRtYXRjaDAJAMwIAgkAkQMCBQNhY2MAAAkAzAgCCQCRAwIFA2FjYwABCQDMCAIJAJEDAgUDYWNjAAIJAMwIAgUHdXBkYXRlZAkAzAgCCQCRAwIFA2FjYwAEBQNuaWwDCQAAAgIHT2NlYW5pYQUHJG1hdGNoMAkAzAgCCQCR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cGF5bWVudCByZXF1aXJlZAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAADCQECIT0CCAUDcG10B2Fzc2V0SWQFC3VzZHRBc3NldElkCQACAQIaQWxsb3dlZCBVU0RUIHBheW1lbnQgb25seSEDCQECIT0CCAUDcG10BmFtb3VudAUMUkVOQU1JTkdDT1NUCQACAQkArAICAhJQYXltZW50IHNob3VsZCBiZSAJAKQDAQUMUkVOQU1JTkdDT1NUAwkBCGNvbnRhaW5zAgUKY3VzdG9tTmFtZQICX18JAAIBCQCsAgICHk5hbWUgc2hvdWxkIG5vdCBjb250YWluICdfXyc6IAUKY3VzdG9tTmFtZQMJAGYCCQCxAgEFCmN1c3RvbU5hbWUFCk1BWE5BTUVMRU4JAAIBCQCsAgICGU5hbWUgdG9vIGxvbmcsIG1heExlbmd0aD0JAKQDAQUKTUFYTkFNRUxFTgQEYWRkcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEB2FjdGlvbnMEByRtYXRjaDAFBHR5cGUDCQAAAgIHQUNDT1VOVAUHJG1hdGNoMAQKcmV2ZXJzZUtleQkBFmtleUN1c3RvbU5hbWVUb0FkZHJlc3MBBQpjdXN0b21OYW1lBAluYW1lT3duZXIJAKIIAQUKcmV2ZXJzZUtleQMJAQlpc0RlZmluZWQBBQluYW1lT3duZXIJAAIBCQCsAgICGU5hbWUgYWxyZWFkeSByZWdpc3RlcmVkOiAFCmN1c3RvbU5hbWUEDWFkZHJUb05hbWVLZXkJARZrZXlBZGRyZXNzVG9DdXN0b21OYW1lAQUEYWRkcgQHb2xkTmFtZQkAoggBBQ1hZGRyVG9OYW1lS2V5BAdmcmVlT2xkAwkBCWlzRGVmaW5lZAEFB29sZE5hbWUJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFmtleUN1c3RvbU5hbWVUb0FkZHJlc3MBCQEFdmFsdWUBBQdvbGROYW1lBQNuaWwFA25pbAkAzggCCQDNCAIJAM0IAgUHZnJlZU9sZAkBC1N0cmluZ0VudHJ5AgUNYWRkclRvTmFtZUtleQUKY3VzdG9tTmFtZQkBC1N0cmluZ0VudHJ5AgUKcmV2ZXJzZUtleQUEYWRkcggJARZ1cGRhdGVBY2NTdGF0c0ludGVybmFsAgUEYWRkcgUMeHBDdXN0b21OYW1lAl8xAwkAAAICBExBTkQFByRtYXRjaDAEBWFzc2V0CQEFdmFsdWUBCQDsBwEJANkEAQUHYXNzZXRJZAQHdGltZUtleQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQkAnwgBBQd0aW1lS2V5CQACAQkArAICCAUFYXNzZXQEbmFtZQIOIGlzIG5vdCBzdGFrZWQEBW93bmVyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFWtleUxhbmRBc3NldElkVG9Pd25lcgEFB2Fzc2V0SWQJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQIMIGlzIG9ycGhhbmVkAwkBAiE9AgUFb3duZXIFBGFkZHIJAAIBCQCsAgIFCkxBTkRQUkVGSVgCDSBpcyBub3QgeW91cnMECnJldmVyc2VLZXkJARprZXlMYW5kQ3VzdG9tTmFtZVRvQXNzZXRJZAEFCmN1c3RvbU5hbWUECW5hbWVPd25lcgkAoggBBQpyZXZlcnNlS2V5AwkBCWlzRGVmaW5lZAEFCW5hbWVPd25lcgkAAgEJAKwCAgIZTmFtZSBhbHJlYWR5IHJlZ2lzdGVyZWQ6IAUKY3VzdG9tTmFtZQQOYXNzZXRUb05hbWVLZXkJARprZXlMYW5kQXNzZXRJZFRvQ3VzdG9tTmFtZQEFB2Fzc2V0SWQEB29sZE5hbWUJAKIIAQUOYXNzZXRUb05hbWVLZXkEB2ZyZWVPbGQDCQEJaXNEZWZpbmVkAQUHb2xkTmFtZQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5TGFuZEN1c3RvbU5hbWVUb0Fzc2V0SWQBCQEFdmFsdWUBBQdvbGROYW1lBQNuaWwFA25pbAkAzggCCQDNCAIJAM0IAgUHZnJlZU9sZAkBC1N0cmluZ0VudHJ5AgUOYXNzZXRUb05hbWVLZXkFCmN1c3RvbU5hbWUJAQtTdHJpbmdFbnRyeQIFCnJldmVyc2VLZXkFB2Fzc2V0SWQICQEWdXBkYXRlQWNjU3RhdHNJbnRlcm5hbAIFBGFkZHIFDHhwQ3VzdG9tTmFtZQJfMQMJAAACAgREVUNLBQckbWF0Y2gwBAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFB2Fzc2V0SWQEB3RpbWVLZXkJARZrZXlTdGFrZWRUaW1lQnlBc3NldElkAQUHYXNzZXRJZAMDCQEBIQEJAQlpc0RlZmluZWQBCQCfCAEFB3RpbWVLZXkGCQEBIQEJAQlpc0RlZmluZWQBCQCiCAEJARRrZXlTdGFrZWREdWNrQnlPd25lcgEFBGFkZHIJAAIBCQCsAgIIBQVhc3NldARuYW1lAg4gaXMgbm90IHN0YWtlZAQFb3duZXIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEQa2V5RHVja0lkVG9Pd25lcgEFB2Fzc2V0SWQJAKwCAgkArAICAgRORlQgCAUFYXNzZXQEbmFtZQIMIGlzIG9ycGhhbmVkAwkBAiE9AgUFb3duZXIFBGFkZHIJAAIBCQCsAgIFCkRVQ0tQUkVGSVgCDSBpcyBub3QgeW91cnMECnJldmVyc2VLZXkJARprZXlEdWNrQ3VzdG9tTmFtZVRvQXNzZXRJZAEFCmN1c3RvbU5hbWUECW5hbWVPd25lcgkAoggBBQpyZXZlcnNlS2V5AwkBCWlzRGVmaW5lZAEFCW5hbWVPd25lcgkAAgEJAKwCAgIZTmFtZSBhbHJlYWR5IHJlZ2lzdGVyZWQ6IAUKY3VzdG9tTmFtZQQOYXNzZXRUb05hbWVLZXkJARprZXlEdWNrQXNzZXRJZFRvQ3VzdG9tTmFtZQEFB2Fzc2V0SWQEB29sZE5hbWUJAKIIAQUOYXNzZXRUb05hbWVLZXkEB2ZyZWVPbGQDCQEJaXNEZWZpbmVkAQUHb2xkTmFtZQkAzAgCCQELRGVsZXRlRW50cnkBCQEaa2V5RHVja0N1c3RvbU5hbWVUb0Fzc2V0SWQBCQEFdmFsdWUBBQdvbGROYW1lBQNuaWwFA25pbAkAzggCCQDNCAIJAM0IAgUHZnJlZU9sZAkBC1N0cmluZ0VudHJ5AgUOYXNzZXRUb05hbWVLZXkFCmN1c3RvbU5hbWUJAQtTdHJpbmdFbnRyeQIFCnJldmVyc2VLZXkFB2Fzc2V0SWQICQEXdXBkYXRlRHVja1N0YXRzSW50ZXJuYWwCBQdhc3NldElkBQx4cEN1c3RvbU5hbWUCXzEJAAIBAhNVbmtub3duIGVudGl0eSB0eXBlCQCUCgIJAM0IAgkAzQgCBQdhY3Rpb25zCQEOU2NyaXB0VHJhbnNmZXIDBQ9lY29ub215Q29udHJhY3QIBQNwbXQGYW1vdW50BQt1c2R0QXNzZXRJZAUMcHJvbG9nQWN0aW9uAAABaQEMc2V0UmVmZXJyYWxzAglvbGRQbGF5ZXIJbmV3UGxheWVyAwkBAiE9AggFAWkPY2FsbGVyUHVibGljS2V5BQNwdWIJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkAwkBASEBCQEJaXNEZWZpbmVkAQkApggBBQlvbGRQbGF5ZXIJAAIBCQCsAgICEUludmFsaWQgYWRkcmVzczogBQlvbGRQbGF5ZXIDCQEBIQEJAQlpc0RlZmluZWQBCQCmCAEFCW5ld1BsYXllcgkAAgEJAKwCAgIRSW52YWxpZCBhZGRyZXNzOiAFCW5ld1BsYXllcgQHb2xkc0tleQkBCWtleU9sZGllcwAEBG9sZHMJAKIIAQUHb2xkc0tleQQGb2xkaWVzAwkBCWlzRGVmaW5lZAEFBG9sZHMJALwJAgkBBXZhbHVlAQUEb2xkcwIBXwUDbmlsAwkBD2NvbnRhaW5zRWxlbWVudAIFBm9sZGllcwUJbmV3UGxheWVyCQACAQkArAICBQluZXdQbGF5ZXICJiBpcyBub3QgbmV3YmllIChhbHJlYWR5IGhhcyByZWZlcnJhbHMpBAhyZWZCeUtleQkBD2tleUFkZHJlc3NSZWZCeQEFCW5ld1BsYXllcgQFcmVmQnkJAKIIAQUIcmVmQnlLZXkDAwkBCWlzRGVmaW5lZAEFBXJlZkJ5CQEJaXNEZWZpbmVkAQkApggBCQEFdmFsdWUBBQVyZWZCeQcJAAIBCQCsAgIJAKwCAgUJbmV3UGxheWVyAhQgYWxyZWFkeSBoYXMgcmVmQnk6IAkBBXZhbHVlAQUFcmVmQnkEB3JlZnNLZXkJARNrZXlBZGRyZXNzUmVmZXJyYWxzAQUJb2xkUGxheWVyBARyZWZzCQCiCAEFB3JlZnNLZXkECXJlZnNBcnJheQMJAQlpc0RlZmluZWQBBQRyZWZzCQC8CQIJAQV2YWx1ZQEFBHJlZnMCAV8FA25pbAMJAQ9jb250YWluc0VsZW1lbnQCBQlyZWZzQXJyYXkFCW5ld1BsYXllcgkAAgEJAKwCAgkArAICCQCsAgIFCW9sZFBsYXllcgISIGFscmVhZHkgY29udGFpbnMgBQluZXdQbGF5ZXICESB3aXRoaW4gcmVmZXJyYWxzBAduZXdSZWZzCQC6CQIJAM0IAgUJcmVmc0FycmF5BQluZXdQbGF5ZXICAV8EB25ld09sZHMDCQEPY29udGFpbnNFbGVtZW50AgUGb2xkaWVzBQlvbGRQbGF5ZXIJAQV2YWx1ZQEFBG9sZHMJALoJAgkAzQgCBQZvbGRpZXMFCW9sZFBsYXllcgIBXwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFCHJlZkJ5S2V5BQlvbGRQbGF5ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgUHcmVmc0tleQUHbmV3UmVmcwkAzAgCCQELU3RyaW5nRW50cnkCBQdvbGRzS2V5BQduZXdPbGRzCQDMCAIFDHByb2xvZ0FjdGlvbgUDbmlsAAABaQEQZGlzdHJpYnV0ZVBvaW50cwUIc3RyZW5ndGgIYWNjdXJhY3kJaW50ZWxsZWN0CWVuZHVyYW5jZQlkZXh0ZXJpdHkEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQEYWRkcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUEYWRkcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAQKZnJlZUtleUFjYwkBEWtleVVzZXJGcmVlUG9pbnRzAQUEYWRkcgQNZnJlZVBvaW50c0FjYwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QFCmZyZWVLZXlBY2MAAAQLZnJlZUtleUR1Y2sJARFrZXlEdWNrRnJlZVBvaW50cwEFC2R1Y2tBc3NldElkBA5mcmVlUG9pbnRzRHVjawkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QFC2ZyZWVLZXlEdWNrAAAEB3N1bUZyZWUJAGQCBQ1mcmVlUG9pbnRzQWNjBQ5mcmVlUG9pbnRzRHVjawQPc3VtVG9EaXN0cmlidXRlCQBkAgkAZAIJAGQCCQBkAgUIc3RyZW5ndGgFCGFjY3VyYWN5BQlpbnRlbGxlY3QFCWVuZHVyYW5jZQUJZGV4dGVyaXR5AwkAZgIFD3N1bVRvRGlzdHJpYnV0ZQUHc3VtRnJlZQkAAgEJAKwCAgkArAICAg9UaGVyZSBhcmUgb25seSAJAKQDAQUHc3VtRnJlZQIaIGZyZWUgcG9pbnRzIHRvIGRpc3RyaWJ1dGUECGNoYXJzS2V5CQEMa2V5RHVja0NoYXJzAQULZHVja0Fzc2V0SWQEBWNoYXJzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0BQhjaGFyc0tleQIJMF8wXzBfMF8wAgFfBAZuZXdBY2MJAGUCBQ1mcmVlUG9pbnRzQWNjBQ9zdW1Ub0Rpc3RyaWJ1dGUJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUKZnJlZUtleUFjYwMJAGYCAAAFBm5ld0FjYwAABQZuZXdBY2MJAMwIAgkBDEludGVnZXJFbnRyeQIFC2ZyZWVLZXlEdWNrAwkAZgIAAAUGbmV3QWNjCQBkAgUOZnJlZVBvaW50c0R1Y2sFBm5ld0FjYwUOZnJlZVBvaW50c0R1Y2sJAMwIAgkBC1N0cmluZ0VudHJ5AgUIY2hhcnNLZXkJALkJAgkAzAgCCQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUFY2hhcnMFDGNoYXJTdHJlbmd0aAUIc3RyZW5ndGgJAMwIAgkApAMBCQBkAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWNoYXJzBQxjaGFyQWNjdXJhY3kFCGFjY3VyYWN5CQDMCAIJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckludGVsbGVjdAUJaW50ZWxsZWN0CQDMCAIJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckVuZHVyYW5jZQUJZW5kdXJhbmNlCQDMCAIJAKQDAQkAZAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQVjaGFycwUNY2hhckRleHRlcml0eQUJZGV4dGVyaXR5BQNuaWwCAV8JAMwIAgUMcHJvbG9nQWN0aW9uBQNuaWwAAAFpARxzcGxpdEJ5R2xvYmFsV2VpZ2h0c1JFQURPTkxZAQZhbW91bnQJAJQKAgUDbmlsCQESZ2V0TmVlZGVkTWF0ZXJpYWxzAQUGYW1vdW50AWkBJHNwbGl0QnlHbG9iYWxBbmRMb2NhbFdlaWdodHNSRUFET05MWQMJbWF0QW1vdW50CXJlc0Ftb3VudAh0ZXJyYWlucwQNdGVycmFpbkNvdW50cwkBDWNvdW50VGVycmFpbnMBBQh0ZXJyYWlucwkAlAoCBQNuaWwJAJQKAgkBEmdldE5lZWRlZE1hdGVyaWFscwEFCW1hdEFtb3VudAkBE2Rpc3RyaWJ1dGVCeVdlaWdodHMCBQlyZXNBbW91bnQFDXRlcnJhaW5Db3VudHMBaQETZ2V0QmFja3BhY2tSRUFET05MWQELZHVja0Fzc2V0SWQJAJQKAgUDbmlsCQC5CQIJAQtnZXRCYWNrcGFjawEJARFrZXlCYWNrcGFja0J5RHVjawEFC2R1Y2tBc3NldElkAgE6AWkBFGdldFdhcmVob3VzZVJFQURPTkxZAQtsYW5kQXNzZXRJZAQFYXNzZXQJAQV2YWx1ZQEJAOwHAQkA2QQBBQtsYW5kQXNzZXRJZAQJbGFuZEluZGV4CQBpAgkBD251bVBpZWNlc0J5U2l6ZQEJAJEDAgkAtQkCCAUFYXNzZXQLZGVzY3JpcHRpb24CAV8FC3JlY0xhbmRTaXplBQVTU0laRQQKaW5mcmFMZXZlbAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEWa2V5SW5mcmFMZXZlbEJ5QXNzZXRJZAEFC2xhbmRBc3NldElkAAAJAJQKAgUDbmlsCQC6CQIJAQxnZXRXYXJlaG91c2UDCQESa2V5V2FyZWhvdXNlQnlMYW5kAQULbGFuZEFzc2V0SWQFCWxhbmRJbmRleAUKaW5mcmFMZXZlbAIBOgFpAQpzYXZlTGFzdFR4AAQGY2FsbGVyCAUBaQZjYWxsZXIDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFD2Vjb25vbXlDb250cmFjdAkAzAgCBRJ0b3VybmFtZW50Q29udHJhY3QJAMwIAgUNYWNyZXNDb250cmFjdAUDbmlsBQZjYWxsZXIJAAIBAg1BY2Nlc3MgZGVuaWVkCQCUCgIJAMwIAgkBBnByb2xvZwEFAWkFA25pbAAqAWkBD3VwZGF0ZUR1Y2tTdGF0cwILZHVja0Fzc2V0SWQHZGVsdGFYUAMJAQIhPQIIBQFpBmNhbGxlcgUPZWNvbm9teUNvbnRyYWN0CQACAQINQWNjZXNzIGRlbmllZAkBF3VwZGF0ZUR1Y2tTdGF0c0ludGVybmFsAgULZHVja0Fzc2V0SWQFB2RlbHRhWFABaQEOdXBkYXRlQWNjU3RhdHMCBGFkZHIHZGVsdGFYUAMDCQECIT0CCAUBaQZjYWxsZXIFD2Vjb25vbXlDb250cmFjdAkBAiE9AggFAWkGY2FsbGVyBQ1hY3Jlc0NvbnRyYWN0BwkAAgECDUFjY2VzcyBkZW5pZWQJARZ1cGRhdGVBY2NTdGF0c0ludGVybmFsAgUEYWRkcgUHZGVsdGFYUAFpAQllcXVpcER1Y2sBCWVxdWlwbWVudAQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECFE5vIHBheW1lbnRzIHJlcXVpcmVkBARhZGRyCQClCAEIBQFpDG9yaWdpbkNhbGxlcgQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAhxZb3UgZG9uJ3QgaGF2ZSBhIGR1Y2sgc3Rha2VkAwkBD2NoZWNrVG91cm5hbWVudAEFC2R1Y2tBc3NldElkCQACAQIZZXF1aXBEdWNrX2NoZWNrVG91cm5hbWVudAMJAQ1jaGVja0RlbGl2ZXJ5AQULZHVja0Fzc2V0SWQJAAIBAhdlcXVpcER1Y2tfY2hlY2tEZWxpdmVyeQQFZXFLZXkJARBrZXlEdWNrRXF1aXBtZW50AQULZHVja0Fzc2V0SWQEC2N1cnJlbnRTZWdzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUFZXFLZXkCFyw7LF8sOyxfLDssXyw7LF8sOyxfLDssAgFfBAVicEtleQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEC2N1cnJlbnRQYWNrCQELZ2V0QmFja3BhY2sBBQVicEtleQQFbmV3RXEJALUJAgUJZXF1aXBtZW50AgFfAwkBAiE9AgkAkAMBBQVuZXdFcQULTlVNU0VHTUVOVFMJAAIBAhZXcm9uZyBlcXVpcG1lbnQgc3RyaW5nBAl0ZW1wUHJvZEIJAQZkcmVzc0IEBQtjdXJyZW50U2VncwkBDnByb2RTdHJUb0J5dGVzAQkAkQMCBQtjdXJyZW50UGFjawUJYnBJZHhQcm9kBgUDbmlsBAhzZWdCcEF1eAkAkQMCCQC1CQIJAJEDAgUFbmV3RXEFC3NlZ0JhY2twYWNrAgE7AAEECmJ1ZmZFZmZlY3QDCQAAAgUIc2VnQnBBdXgCAAAABARhdXgwCQCRAwIJALUJAgUIc2VnQnBBdXgCASwAAAMJAAACBQRhdXgwAgAAAAQGaWR4Q250CQC1CQIFBGF1eDACAToEA2lkeAkAkQMCBQZpZHhDbnQAAAQDY250CQCRAwIFBmlkeENudAABAwMDAwMJAAACBQNpZHgCAjA2BgkAAAIFA2lkeAICMDcGCQAAAgUDaWR4AgIwOAkBAiE9AgUDY250AgAHCQBmAgkBDXBhcnNlSW50VmFsdWUBBQNjbnQAAAcJAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIJAJEDAgUQcHJvZHVjdGlvbk1hdHJpeAkBDXBhcnNlSW50VmFsdWUBBQNpZHgCAV8FCnJJZHhFZmZlY3QAAAQFc3RhdHMJAQxnZXREdWNrU3RhdHMEBQR0aGlzBQtkdWNrQXNzZXRJZAUKYnVmZkVmZmVjdAYECG5ld1Byb2RCCQEGZHJlc3NCBAUFbmV3RXEFCXRlbXBQcm9kQgcFBXN0YXRzBApuZXdQcm9kU3RyCQEOYnl0ZXNUb1Byb2RTdHIBBQhuZXdQcm9kQgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFBWVxS2V5BQllcXVpcG1lbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgUFYnBLZXkJALoJAgkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4UmVzCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4TWF0CQDMCAIFCm5ld1Byb2RTdHIFA25pbAIBOgkAzAgCCQELU3RyaW5nRW50cnkCCQEMa2V5RHVja0J1ZmZzAQULZHVja0Fzc2V0SWQJALkJAgkAzAgCCQCkAwEJAJEDAgUFc3RhdHMABwkAzAgCCQCkAwEJAJEDAgUFc3RhdHMACAkAzAgCCQCkAwEJAJEDAgUFc3RhdHMACQkAzAgCCQCkAwEJAJEDAgUFc3RhdHMACgkAzAgCCQCkAwEJAJEDAgUFc3RhdHMACwUDbmlsAgFfCQDMCAIFDHByb2xvZ0FjdGlvbgUDbmlsAAABaQEPZm9ydGlmaWNhdGVMYW5kAgtsYW5kQXNzZXRJZARwbGFuBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwAACQACAQIUTm8gcGF5bWVudHMgcmVxdWlyZWQEBGFkZHIJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyBAtkdWNrQXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQRhZGRyAgAECWR1Y2tTdGF0cwkBDGdldER1Y2tTdGF0cwQFBHRoaXMFC2R1Y2tBc3NldElkAAAHBAdmb3J0S2V5CQEXa2V5Rm9ydGlmaWNhdGlvbnNCeUxhbmQBBQtsYW5kQXNzZXRJZAQMY3VycmVudEZvcnRzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQUHZm9ydEtleQIMOjBfMTU6MF8xODowAgFfBAVhc3NldAkBBXZhbHVlAQkA7AcBCQDZBAEFC2xhbmRBc3NldElkBAlsYW5kSW5kZXgJAGkCCQEPbnVtUGllY2VzQnlTaXplAQkAkQMCCQC1CQIIBQVhc3NldAtkZXNjcmlwdGlvbgIBXwULcmVjTGFuZFNpemUFBVNTSVpFBAppbmZyYUxldmVsCQELdmFsdWVPckVsc2UCCQCfCAEJARZrZXlJbmZyYUxldmVsQnlBc3NldElkAQULbGFuZEFzc2V0SWQAAAQFd2hLZXkJARJrZXlXYXJlaG91c2VCeUxhbmQBBQtsYW5kQXNzZXRJZAQCd2gJAQxnZXRXYXJlaG91c2UDBQV3aEtleQUJbGFuZEluZGV4BQppbmZyYUxldmVsBAdjdXJMb2Z0CQC1CQIJAJEDAgUCd2gFCXdoSWR4TE9GVAIBXwQEY3VyTwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFB2N1ckxvZnQFC3ZvbE9jY3VwaWVkBARjdXJGCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHY3VyTG9mdAUHdm9sRnJlZQQIbmV3Rm9ydHMJALUJAgUEcGxhbgIBXwQNJHQwOTgwMzM5ODE0OAkBBWZvcnRCBgUMY3VycmVudEZvcnRzCQEOcHJvZFN0clRvQnl0ZXMBCQCRAwIFAndoBQl3aElkeFByb2QFBGN1ck8FBGN1ckYGBQNuaWwECXRlbXBQcm9kQggFDSR0MDk4MDMzOTgxNDgCXzEEBXRlbXBPCAUNJHQwOTgwMzM5ODE0OAJfMgQFdGVtcEYIBQ0kdDA5ODAzMzk4MTQ4Al8zBA0kdDA5ODE1MTk4MjQ3CQEFZm9ydEIGBQhuZXdGb3J0cwUJdGVtcFByb2RCBQV0ZW1wTwUFdGVtcEYHBQlkdWNrU3RhdHMECG5ld1Byb2RCCAUNJHQwOTgxNTE5ODI0NwJfMQQEbmV3TwgFDSR0MDk4MTUxOTgyNDcCXzIEBG5ld0YIBQ0kdDA5ODE1MTk4MjQ3Al8zBApuZXdQcm9kU3RyCQEOYnl0ZXNUb1Byb2RTdHIBBQhuZXdQcm9kQgQKbmV3TG9mdFN0cgkAuQkCCQDMCAIJAJEDAgUHY3VyTG9mdAUJdm9sTG9ja2VkCQDMCAIJAKQDAQUEbmV3TwkAzAgCCQCkAwEFBG5ld0YJAMwIAgkAkQMCBQdjdXJMb2Z0BQh2b2xUb3RhbAUDbmlsAgFfCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUHZm9ydEtleQUEcGxhbgkAzAgCCQELU3RyaW5nRW50cnkCBQV3aEtleQkAugkCCQDMCAIJAJEDAgUCd2gFC3doSWR4TGV2ZWxzCQDMCAIJAJEDAgUCd2gFCHdoSWR4UmVzCQDMCAIJAJEDAgUCd2gFCHdoSWR4TWF0CQDMCAIFCm5ld1Byb2RTdHIJAMwIAgUKbmV3TG9mdFN0cgUDbmlsAgE6CQDMCAIFDHByb2xvZ0FjdGlvbgUDbmlsAAABaQETaW5pdER1Y2tUb3VyQXR0ZW1wdAELZHVja0Fzc2V0SWQDCQECIT0CCAUBaQZjYWxsZXIFEnRvdXJuYW1lbnRDb250cmFjdAkAAgECDUFjY2VzcyBkZW5pZWQEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkECWtleUhlYWx0aAkBDWtleUR1Y2tIZWFsdGgBBQtkdWNrQXNzZXRJZAQFbWF4SFAJAQltYXhIZWFsdGgBCQELdmFsdWVPckVsc2UCCQCfCAEJAQxrZXlEdWNrTGV2ZWwBBQtkdWNrQXNzZXRJZAAABAljdXJIZWFsdGgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUJa2V5SGVhbHRoBQVtYXhIUAQJY3VyTG9jS2V5CQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQEC2N1ckxvY2F0aW9uCQELdmFsdWVPckVsc2UCCQCiCAEFCWN1ckxvY0tleQUPREVGQVVMVExPQ0FUSU9OBAZsYXN0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSdG91cm5hbWVudENvbnRyYWN0BQ1sYXN0VG91cklkS2V5AAAEDHRvdXJMb2NhdGlvbgkArAICCQCkAwEFBmxhc3RJZAIEX1RfMAkAlAoCCQDMCAIFDHByb2xvZ0FjdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDmtleVNhdmVkSGVhbHRoAQULZHVja0Fzc2V0SWQFCWN1ckhlYWx0aAkAzAgCCQEMSW50ZWdlckVudHJ5AgUJa2V5SGVhbHRoBQVtYXhIUAkAzAgCCQELU3RyaW5nRW50cnkCCQEQa2V5U2F2ZWRMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQtjdXJMb2NhdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCBQljdXJMb2NLZXkFDHRvdXJMb2NhdGlvbgUDbmlsBQx0b3VyTG9jYXRpb24BaQEMYnJlYWtBdHRlbXB0AAQMcHJvbG9nQWN0aW9uCQEGcHJvbG9nAQUBaQQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBCQClCAEIBQFpBmNhbGxlcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAQJY3VyTG9jS2V5CQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQEC2N1ckxvY2F0aW9uCQELdmFsdWVPckVsc2UCCQCiCAEFCWN1ckxvY0tleQUPREVGQVVMVExPQ0FUSU9OAwkBAiE9AgkAkQMCCQC1CQIFC2N1ckxvY2F0aW9uAgFfBQpsb2NJZHhUeXBlAgFUCQACAQIiWW91ciBkdWNrIGlzIG5vdCBpbiB0aGUgdG91cm5hbWVudAQLc2F2ZWRIZWFsdGgJARFAZXh0ck5hdGl2ZSgxMDU1KQEJAQ5rZXlTYXZlZEhlYWx0aAEFC2R1Y2tBc3NldElkBA1zYXZlZExvY2F0aW9uCQERQGV4dHJOYXRpdmUoMTA1OCkBCQEQa2V5U2F2ZWRMb2NhdGlvbgEFC2R1Y2tBc3NldElkCQCUCgIJAMwIAgUMcHJvbG9nQWN0aW9uCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5RHVja0hlYWx0aAEFC2R1Y2tBc3NldElkBQtzYXZlZEhlYWx0aAkAzAgCCQELU3RyaW5nRW50cnkCBQljdXJMb2NLZXkFDXNhdmVkTG9jYXRpb24FA25pbAULY3VyTG9jYXRpb24BaQEWZXhpdFRvdXJuYW1lbnRJbnRlcm5hbAELZHVja0Fzc2V0SWQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg1BY2Nlc3MgZGVuaWVkBAtzYXZlZEhlYWx0aAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBDmtleVNhdmVkSGVhbHRoAQULZHVja0Fzc2V0SWQEDXNhdmVkTG9jYXRpb24JARFAZXh0ck5hdGl2ZSgxMDU4KQEJARBrZXlTYXZlZExvY2F0aW9uAQULZHVja0Fzc2V0SWQJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDWtleUR1Y2tIZWFsdGgBBQtkdWNrQXNzZXRJZAULc2F2ZWRIZWFsdGgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQ1zYXZlZExvY2F0aW9uBQNuaWwHAWkBFGV4aXREZWxpdmVyeUludGVybmFsAQtkdWNrQXNzZXRJZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECDUFjY2VzcyBkZW5pZWQEC2N1ckxvY2F0aW9uCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQ9ERUZBVUxUTE9DQVRJT04CAV8EA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAECXN0YXJ0VGltZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFC2N1ckxvY2F0aW9uBQ9sb2NJZHhDb250aW5lbnQECGRpc3RhbmNlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgULY3VyTG9jYXRpb24FCGxvY0lkeElkBAVvd25lcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJARBrZXlEdWNrSWRUb093bmVyAQULZHVja0Fzc2V0SWQCFE5GVCBkdWNrIGlzIG9ycGhhbmVkBAloZWFsdGhLZXkJAQ1rZXlEdWNrSGVhbHRoAQULZHVja0Fzc2V0SWQECWN1ckhlYWx0aAkBEUBleHRyTmF0aXZlKDEwNTUpAQUJaGVhbHRoS2V5BA5vdXRjb21lQWN0aW9ucwMJAGcCBQhkaXN0YW5jZQADBAZyZXdhcmQJAPwHBAUPZWNvbm9teUNvbnRyYWN0AhJzZW5kRGVsaXZlcnlSZXdhcmQJAMwIAgUFb3duZXIFA25pbAUDbmlsAwkAAAIFBnJld2FyZAUGcmV3YXJkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EC2xvY2tlZFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIFD2Vjb25vbXlDb250cmFjdAURZGVsaXZlcnlMb2NrZWRLZXkAAAQGdW5sb2NrCQD8BwQFD2Vjb25vbXlDb250cmFjdAIUdXBkYXRlRGVsaXZlcnlMb2NrZWQJAMwIAgkAZQIFC2xvY2tlZFRvdGFsBRVNSU5fVVNEVF9GRUVfREVMSVZFUlkFA25pbAUDbmlsAwkAAAIFBnVubG9jawUGdW5sb2NrAwkAZwIAAAUJY3VySGVhbHRoBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlEZWxpdmVyeURlbGF5QnlEdWNrAQULZHVja0Fzc2V0SWQJAGQCBQlzdGFydFRpbWUFCURBWU1JTExJUwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBAtzYXZlZEhlYWx0aAkBEUBleHRyTmF0aXZlKDEwNTUpAQkBDmtleVNhdmVkSGVhbHRoAQULZHVja0Fzc2V0SWQEDXNhdmVkTG9jYXRpb24JARFAZXh0ck5hdGl2ZSgxMDU4KQEJARBrZXlTYXZlZExvY2F0aW9uAQULZHVja0Fzc2V0SWQJAJQKAgkAzQgCCQDNCAIFDm91dGNvbWVBY3Rpb25zCQEMSW50ZWdlckVudHJ5AgUJaGVhbHRoS2V5BQtzYXZlZEhlYWx0aAkBC1N0cmluZ0VudHJ5AgkBD2tleUR1Y2tMb2NhdGlvbgEFC2R1Y2tBc3NldElkBQ1zYXZlZExvY2F0aW9uBwFpAQ5wcmVwYXJlUm9iYmVyeQIHbWVzc2FnZQNzaWcEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkDCQEBIQEJAMQTAwUHbWVzc2FnZQUDc2lnBQNwdWIJAAIBAhhzaWduYXR1cmUgZG9lcyBub3QgbWF0Y2gDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQGd2xnQW10CAUDcG10BmFtb3VudAMDCQEBIQEJAQlpc0RlZmluZWQBCAUDcG10B2Fzc2V0SWQGCQECIT0CCQEFdmFsdWUBCAUDcG10B2Fzc2V0SWQFCndsZ0Fzc2V0SWQJAAIBAhVXTEdPTEQgcGF5bWVudHMgb25seSEEBXBhcnRzCQC1CQIJALAJAQUHbWVzc2FnZQIBfAMJAQIhPQIJAJADAQUFcGFydHMAAgkAAgECFFdyb25nIG1lc3NhZ2UgZm9ybWF0BAtkdWNrQXNzZXRJZAkAkQMCBQVwYXJ0cwAABAdyb2JDb3N0CAkBDmdldFJvYmJlcnlEYXRhAgUEdGhpcwULZHVja0Fzc2V0SWQCXzEDCQBmAgUHcm9iQ29zdAUGd2xnQW10CQACAQkArAICCQCsAgIJAKwCAgIIUGF5bWVudCAJAKQDAQUGd2xnQW10AgwgPCByZXF1aXJlZCAJAKQDAQUHcm9iQ29zdAQKY2FuZGlkYXRlcwkAtQkCCQCRAwIFBXBhcnRzAAECAV8EA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAECWR1Y2tTdGF0ZQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5RHVja1JvYmJlcnlTdGF0ZQEFC2R1Y2tBc3NldElkAAAECmxvY2tlZExhbmQJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBE2tleUxvY2tlZExhbmRCeUR1Y2sBBQtkdWNrQXNzZXRJZAIABAdsYW5kRVRBCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlMYW5kQ29vbGRvd25FVEEBBQpsb2NrZWRMYW5kAAADAwkBAiE9AgUJZHVja1N0YXRlBQtkdWNrSWR4RnJlZQkAZgIFB2xhbmRFVEEFA25vdwcJAAIBCQCsAgICJ1lvdSBhbHJlYWR5IHN0YXJ0ZWQgcm9iYmluZywgd2FpdCB0aWxsIAkApAMBBQdsYW5kRVRBCgEHY2hlY2tlcgIDYWNjC2xhbmRBc3NldElkBAVzdGF0ZQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQETa2V5TGFuZFJvYmJlcnlTdGF0ZQEFC2xhbmRBc3NldElkAAAEC2Nvb2xkb3duRVRBCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlMYW5kQ29vbGRvd25FVEEBBQtsYW5kQXNzZXRJZAAAAwkAZgIFBXN0YXRlCQCQAwEFEGxhbmRSb2JDb29sZG93bnMJAAIBAg1JbnZhbGlkIHN0YXRlAwkAZgIFA25vdwULY29vbGRvd25FVEEECnN0YWtlZFRpbWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleVN0YWtlZFRpbWVCeUFzc2V0SWQBBQtsYW5kQXNzZXRJZAAAAwkAZwIAAAUKc3Rha2VkVGltZQUDYWNjBAFhCQEFdmFsdWUBCQDsBwEJANkEAQULbGFuZEFzc2V0SWQEAWQJALUJAggFAWELZGVzY3JpcHRpb24CAV8EBnBpZWNlcwkBD251bVBpZWNlc0J5U2l6ZQEJAJEDAgUBZAULcmVjTGFuZFNpemUEDHByb2R1Y3Rpdml0eQkBDGFwcGx5Qm9udXNlcwIFC2xhbmRBc3NldElkBQZwaWVjZXMECWRlbHRhVGltZQkAZQIFA25vdwUKc3Rha2VkVGltZQQIYXZhaWxSZXMJAGsDBQlkZWx0YVRpbWUJAGgCBQxwcm9kdWN0aXZpdHkFBnBpZWNlcwUJREFZTUlMTElTAwkAZgIFDk1JTl9SRVNfVE9fUk9CBQhhdmFpbFJlcwUDYWNjCQDNCAIFA2FjYwULbGFuZEFzc2V0SWQFA2FjYwQIZmlsdGVyZWQKAAIkbAUKY2FuZGlkYXRlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHY2hlY2tlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACCQCQAwEFCGZpbHRlcmVkAAAJAAIBAhlObyBjYW5kaWRhdGVzIGZvciByb2JiZXJ5BAZybmRJZHgJAQ9nZXRSYW5kb21OdW1iZXIDCQCQAwEFCGZpbHRlcmVkBQZoZWlnaHQJAMsBAgUDc2lnCAUBaQ10cmFuc2FjdGlvbklkBAtsYW5kQXNzZXRJZAkAkQMCBQhmaWx0ZXJlZAUGcm5kSWR4CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJARNrZXlMYW5kUm9iYmVyeVN0YXRlAQULbGFuZEFzc2V0SWQFDHJvYklkeExvY2tlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleUxhbmRDb29sZG93bkVUQQEFC2xhbmRBc3NldElkCQBkAgUDbm93CQCRAwIFEGxhbmRSb2JDb29sZG93bnMFDHJvYklkeExvY2tlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBE2tleUR1Y2tSb2JiZXJ5U3RhdGUBBQtkdWNrQXNzZXRJZAUQZHVja0lkeFByZXBhcmluZwkAzAgCCQELU3RyaW5nRW50cnkCCQETa2V5TG9ja2VkTGFuZEJ5RHVjawEFC2R1Y2tBc3NldElkBQtsYW5kQXNzZXRJZAkAzAgCBQxwcm9sb2dBY3Rpb24FA25pbAULbGFuZEFzc2V0SWQBaQEHcm9iTGFuZAIHbWVzc2FnZQNzaWcEDHByb2xvZ0FjdGlvbgkBBnByb2xvZwEFAWkDCQEBIQEJAMQTAwUHbWVzc2FnZQUDc2lnBQNwdWIJAAIBAhhzaWduYXR1cmUgZG9lcyBub3QgbWF0Y2gECHVzZXJBZGRyCQClCAEIBQFpBmNhbGxlcgQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAoggBCQEUa2V5U3Rha2VkRHVja0J5T3duZXIBBQh1c2VyQWRkcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAlAoCCQDMCAIFDHByb2xvZ0FjdGlvbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleUxhc3RSb2JiZXJ5VGltZUJ5RHVjawEFC2R1Y2tBc3NldElkBQNub3cFA25pbAAAAWkBDmFjY2VwdERlbGl2ZXJ5AAMJAQEhAQURS1NfQUxMT1dfREVMSVZFUlkJAAIBAh9EZWxpdmVyeSBmZWF0dXJlIGlzIHR1cm5lZCBvZmYhBAxwcm9sb2dBY3Rpb24JAQZwcm9sb2cBBQFpBAh1c2VyQWRkcgkApQgBCAUBaQZjYWxsZXIEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBFGtleVN0YWtlZER1Y2tCeU93bmVyAQUIdXNlckFkZHICHFlvdSBkb24ndCBoYXZlIGEgZHVjayBzdGFrZWQECWZ1bmRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9lY29ub215Q29udHJhY3QFD2RlbGl2ZXJ5RnVuZEtleQAABAtsb2NrZWRUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9lY29ub215Q29udHJhY3QFEWRlbGl2ZXJ5TG9ja2VkS2V5AAADCQBmAgUVTUlOX1VTRFRfRkVFX0RFTElWRVJZCQBlAgUJZnVuZFRvdGFsBQtsb2NrZWRUb3RhbAkAAgEJAKwCAgkArAICCQCsAgICIERlbGl2ZXJ5IGlzIG5vdCBhdmFpbGFibGUsIGZ1bmQ9CQEKZml4ZWRQb2ludAIFCWZ1bmRUb3RhbAAGAgksIGxvY2tlZD0JAQpmaXhlZFBvaW50AgULbG9ja2VkVG90YWwABgQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQIZGVsYXlFVEEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBFmtleURlbGl2ZXJ5RGVsYXlCeUR1Y2sBBQtkdWNrQXNzZXRJZAAAAwkAZgIFCGRlbGF5RVRBBQNub3cJAAIBCQCsAgICKkRlbGl2ZXJ5IGlzIGZvcmJpZGRlbiBmb3IgeW91ciBkdWNrIHVudGlsIAkApAMBBQhkZWxheUVUQQMJAQ9jaGVja1RvdXJuYW1lbnQBBQtkdWNrQXNzZXRJZAkAAgECHmFjY2VwdERlbGl2ZXJ5X2NoZWNrVG91cm5hbWVudAMJAQ1jaGVja0RlbGl2ZXJ5AQULZHVja0Fzc2V0SWQJAAIBAhxhY2NlcHREZWxpdmVyeV9jaGVja0RlbGl2ZXJ5BA5uZXdMb2NrZWRUb3RhbAkBBWFzSW50AQkA/AcEBQ9lY29ub215Q29udHJhY3QCFHVwZGF0ZURlbGl2ZXJ5TG9ja2VkCQDMCAIJAGQCBQtsb2NrZWRUb3RhbAUVTUlOX1VTRFRfRkVFX0RFTElWRVJZBQNuaWwFA25pbAQJa2V5SGVhbHRoCQENa2V5RHVja0hlYWx0aAEFC2R1Y2tBc3NldElkBAVtYXhIUAkBCW1heEhlYWx0aAEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBDGtleUR1Y2tMZXZlbAEFC2R1Y2tBc3NldElkAAAECWN1ckhlYWx0aAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQlrZXlIZWFsdGgFBW1heEhQBAljdXJMb2NLZXkJAQ9rZXlEdWNrTG9jYXRpb24BBQtkdWNrQXNzZXRJZAQLY3VyTG9jYXRpb24JAQt2YWx1ZU9yRWxzZQIJAKIIAQUJY3VyTG9jS2V5BQ9ERUZBVUxUTE9DQVRJT04EEGRlbGl2ZXJ5TG9jYXRpb24JAKwCAgkApAMBBQNub3cCBF9EXzAJAJQKAgkAzAgCBQxwcm9sb2dBY3Rpb24JAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlTYXZlZEhlYWx0aAEFC2R1Y2tBc3NldElkBQljdXJIZWFsdGgJAMwIAgkBDEludGVnZXJFbnRyeQIFCWtleUhlYWx0aAUFbWF4SFAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEGtleVNhdmVkTG9jYXRpb24BBQtkdWNrQXNzZXRJZAULY3VyTG9jYXRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgUJY3VyTG9jS2V5BRBkZWxpdmVyeUxvY2F0aW9uBQNuaWwJAJQKAgUQZGVsaXZlcnlMb2NhdGlvbgUObmV3TG9ja2VkVG90YWwAG7Y5zg==", "height": 2767055, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GSTt7Z228WrMXnJgjAsmhPN3H9DTj2vrnW34G31kWnj5 Next: 9iCofFmGB55kmxJ8EUHWbiV5pWLtJsgmEgUBWMtaH6Cb Diff:
OldNewDifferences
30743074
30753075
30763076 @Callable(gw)
3077-func updateAccStats (c,jM) = if ((gw.caller != cR))
3077+func updateAccStats (c,jM) = if (if ((gw.caller != cR))
3078+ then (gw.caller != cV)
3079+ else false)
30783080 then throw("Access denied")
30793081 else jR(c, jM)
30803082
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 86400000
55
66 func b (c) = ("lastArbTimeUser_" + c)
77
88
99 let d = 100000000
1010
1111 let e = 3200
1212
1313 let f = 4000
1414
1515 let g = 3
1616
1717 let h = 100000000
1818
1919 let i = 400
2020
2121 let j = ["Strength", "Accuracy", "Intellect", "Endurance", "Dexterity", "Level", "Health"]
2222
2323 let k = 0
2424
2525 let l = 1
2626
2727 let m = 2
2828
2929 let n = 3
3030
3131 let o = 4
3232
3333 let p = 0
3434
3535 let q = 6
3636
3737 let r = 2
3838
3939 let s = 2
4040
4141 let t = 30
4242
4343 let u = [0, 600000, 900000, 43200000, 21600000]
4444
4545 let v = 20000000
4646
4747 let w = 1
4848
4949 let x = 0
5050
5151 let y = 1
5252
5353 func z (A) = ("duckHealth_" + A)
5454
5555
5656 func B (A) = ("duckChars_" + A)
5757
5858
5959 func C (A) = ("duckXP_" + A)
6060
6161
6262 func D (A) = ("duckLevel_" + A)
6363
6464
6565 func E (A) = ("duckFreePoints_" + A)
6666
6767
6868 func F (A) = ("duckEquipment_" + A)
6969
7070
7171 func G (c) = ("userXP_" + c)
7272
7373
7474 func H (c) = ("userLevel_" + c)
7575
7676
7777 func I (c) = ("userFreePoints_" + c)
7878
7979
8080 func J (A) = ("savedHealth_" + A)
8181
8282
8383 func K (A) = ("savedLocation_" + A)
8484
8585
8686 func L (A) = ("duckBuffs_" + A)
8787
8888
8989 func M (A) = ("lastRobberyTime_" + A)
9090
9191
9292 func N (A) = ("lastRobberyCost_" + A)
9393
9494
9595 func O (P) = ("landRobberyState_" + P)
9696
9797
9898 func Q (P) = ("landCooldownETA_" + P)
9999
100100
101101 func R (A) = ("duckRobberyState_" + A)
102102
103103
104104 func S (A) = ("lockedLandByDuck_" + A)
105105
106106
107107 func T (A) = ("deliveryDelayByDuck_" + A)
108108
109109
110110 let U = 10000
111111
112112 let V = 10000
113113
114114 let W = 2000
115115
116116 let X = 100000
117117
118118 let Y = 1000000
119119
120120 let Z = 5000000
121121
122122 let aa = 10000
123123
124124 let ab = 1000000
125125
126126 let ac = 1000000
127127
128128 let ad = 10000
129129
130130 func ae (af) = fraction(e, pow(af, 4, f, 4, 4, DOWN), d)
131131
132132
133133 func ag (ah) = (100 + ah)
134134
135135
136136 func ai (aj,ak) = {
137137 let al = ae(ak)
138138 [al, (g * (al - aj))]
139139 }
140140
141141
142142 func am (an,A,ao,ap) = {
143143 let aq = split(valueOrElse(getString(an, B(A)), "0_0_0_0_0"), "_")
144144 let ar = valueOrElse(getInteger(an, D(A)), 0)
145145 let as = valueOrElse(getInteger(an, z(A)), ag(ar))
146146 let at = split(valueOrElse(getString(an, L(A)), "0_0_0_0_0"), "_")
147147 ([parseIntValue(aq[k]), parseIntValue(aq[l]), parseIntValue(aq[m]), parseIntValue(aq[n]), parseIntValue(aq[o]), ar, as] ++ (if (ap)
148148 then [ao, ao, ao, ao, ao]
149149 else [parseIntValue(at[k]), parseIntValue(at[l]), parseIntValue(at[m]), parseIntValue(at[n]), parseIntValue(at[o])]))
150150 }
151151
152152
153153 func au (an,A) = {
154154 let av = valueOrElse(getInteger(an, N(A)), 0)
155155 let aw = valueOrElse(getInteger(an, M(A)), 0)
156156 let ax = lastBlock.timestamp
157157 let ay = max([h, (av - (i * (ax - aw)))])
158158 let az = valueOrElse(getInteger(an, R(A)), 0)
159159 let aA = valueOrElse(getString(an, S(A)), "")
160160 let aB = valueOrElse(getInteger(an, Q(aA)), 0)
161161 $Tuple5(ay, aw, az, aA, aB)
162162 }
163163
164164
165165 let aC = "LAND"
166166
167167 let aD = "DUCK"
168168
169169 let aE = "PRESALE"
170170
171171 let aF = 6
172172
173173 let aG = 25
174174
175175 let aH = 3456000
176176
177177 let aI = 10000000000
178178
179179 let aJ = "Africa_F_Africa"
180180
181181 let aK = 39637
182182
183183 let aL = 10
184184
185185 let aM = 50000
186186
187187 let aN = ["First Aid Kit L1", "First Aid Kit L2", "First Aid Kit L3", "Backpack L1", "Backpack L2", "Backpack L3", "Food Ration L1", "Food Ration L2", "Food Ration L3", "Jet Pack L1", "Jet Pack L2", "Jet Pack L3", "Shield L1", "Shield L2", "Shield L3", "Mine L1", "Mine L2", "Mine L3", "Trap L1", "Trap L2", "Trap L3"]
188188
189189 let aO = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
190190
191191 let aP = 10000000
192192
193193 let aQ = [15, 16, 17, 18, 19, 20]
194194
195195 let aR = ["8_8_8_17_17_42_12_0_30_0,0,0,0,0,0,0_", "8_8_8_17_17_42_24_0_60_0,0,5,2,0,0,0_", "8_8_8_17_17_42_36_0_120_0,0,10,4,0,0,0_", "8_19_19_8_27_19_26_1_20_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_52_1_40_0,0,0,0,0,0,0_001", "8_19_19_8_27_19_78_1_80_0,0,0,0,0,0,0_001", "8_8_8_8_8_60_13_2_2_0,0,0,0,0,0,0_011", "8_8_8_8_8_60_26_2_4_0,0,0,0,0,0,0_011", "8_8_8_8_8_60_39_2_8_0,0,0,0,0,0,0_011", "30_30_3_17_17_3_30_3_30_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_60_3_50_0,0,0,0,0,0,0_111", "30_30_3_17_17_3_90_3_70_0,0,0,0,0,0,0_111", "18_18_10_18_18_18_11_4_10_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_22_4_20_0,0,0,0,0,0,0_201", "18_18_10_18_18_18_33_4_30_0,0,0,0,0,0,0_201", "4_13_22_4_35_22_23_0_50,1,0_0,0,0,0,0,0,0_", "4_13_22_4_35_22_46_0_50,1,1_0,2,5,0,0,0,0_", "4_13_22_4_35_22_69_0_50,2,1_0,5,10,0,0,0,0_", "5_25_40_5_10_15_20_1_30,1,1_0,0,0,0,0,0,0_", "5_25_40_5_10_15_40_1_30,1,2_2,1,3,0,0,0,0_", "5_25_40_5_10_15_60_1_30,1,3_5,2,8,0,0,0,0_"]
196196
197197 let aS = 6
198198
199199 let aT = 8
200200
201201 let aU = 9
202202
203203 let aV = 10
204204
205205 let aW = 10
206206
207207 let aX = 0
208208
209209 let aY = 1
210210
211211 let aZ = 2
212212
213213 let ba = 3
214214
215215 let bb = 4
216216
217217 let bc = 0
218218
219219 let bd = 1
220220
221221 let be = 2
222222
223223 let bf = 3
224224
225225 let bg = 0
226226
227227 let bh = 1
228228
229229 let bi = 2
230230
231231 let bj = 3
232232
233233 let bk = 0
234234
235235 let bl = 1
236236
237237 let bm = 2
238238
239239 func bn (bo) = ("no_" + bo)
240240
241241
242242 func bp (bo) = ("lcna_" + bo)
243243
244244
245245 func bq (bo) = ("st_" + bo)
246246
247247
248248 func br (bs,bo) = makeString(["las", bs, bo], "_")
249249
250250
251251 func bt (bu,bo,bv) = ((((("sttao_" + bu) + "_") + bo) + "_") + bv)
252252
253253
254254 func bw (P) = ("wh_" + P)
255255
256256
257257 func bx (bo) = ("infraLevel_" + bo)
258258
259259
260260 func by (P) = ("fortifications_" + P)
261261
262262
263263 func bz (bo) = ("duckCustomNameByAssetId_" + bo)
264264
265265
266266 func bA (c) = ("accountCustomNameByAddr_" + c)
267267
268268
269269 func bB (c) = ("accRefBy_" + c)
270270
271271
272272 func bC (A) = ("onboardArtActivatedOnDuck_" + A)
273273
274274
275275 func bD (c) = ("onboardArtActivatedDuckBy_" + c)
276276
277277
278278 func bE (c) = ("accReferrals_" + c)
279279
280280
281281 func bF (bo) = ("duckOwner_" + bo)
282282
283283
284284 func bG (bv) = ("stakedDuckByOwner_" + bv)
285285
286286
287287 func bH (A) = ("backPack_" + A)
288288
289289
290290 func bI (A) = ("duckLocation_" + A)
291291
292292
293293 func bJ (bK) = ("%s%s__userGwlReleaseTime__" + bK)
294294
295295
296296 func bL () = "emergencyWarehouseProducts"
297297
298298
299299 let bM = "deliveryFund"
300300
301301 let bN = "deliveryLocked"
302302
303303 let bO = "%s__lastTourId"
304304
305305 func bP (bQ) = ("%s%d__tourStaticData__" + toString(bQ))
306306
307307
308308 func bR (bQ) = ("%s%d__tourDynamicData__" + toString(bQ))
309309
310310
311311 func bS (bQ,A) = makeString(["%s%d%s__bestResultByTourAndDuck", toString(bQ), A], "__")
312312
313313
314314 let bT = 0
315315
316316 let bU = 1
317317
318318 let bV = 6
319319
320320 let bW = 1
321321
322322 func bX (bY,bQ) = {
323323 let bZ = split(valueOrErrorMessage(getString(bY, bP(bQ)), (("Error reading tournament " + toString(bQ)) + " data")), "__")
324324 let ca = split_4C(valueOrErrorMessage(getString(bY, bR(bQ)), (("Error reading tournament " + toString(bQ)) + " data")), "__")
325325 [bZ, ca]
326326 }
327327
328328
329329 func cb (bY,cc) = {
330330 let cd = valueOrElse(getInteger(bY, bO), 0)
331331 let ce = split(cc, "_")
332332 let ax = lastBlock.timestamp
333333 let cf = bX(bY, cd)
334334 let bZ = cf[bT]
335335 let ca = cf[bU]
336336 if (if (if ((ce[bl] == "T"))
337337 then (parseIntValue(ce[bk]) == cd)
338338 else false)
339339 then (ca[bW] == "INPROGRESS")
340340 else false)
341341 then (parseIntValue(bZ[bV]) > ax)
342342 else false
343343 }
344344
345345
346346 func cg (ch) = (parseIntValue(ch[aS]) * aP)
347347
348348
349349 let ci = false
350350
351351 let cj = false
352352
353353 let ck = true
354354
355355 let cl = take(drop(this.bytes, 1), 1)
356356
357357 let cm = {
358358 let cn = cl
359359 if ((base58'2W' == cn))
360360 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
361361 else if ((base58'2T' == cn))
362362 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
363363 else throw("Unknown chain")
364364 }
365365
366366 let co = {
367367 let cn = cl
368368 if ((base58'2W' == cn))
369369 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
370370 else if ((base58'2T' == cn))
371371 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
372372 else throw("Unknown chain")
373373 }
374374
375375 let cp = {
376376 let cn = cl
377377 if ((base58'2W' == cn))
378378 then 10000000000
379379 else if ((base58'2T' == cn))
380380 then 100000000
381381 else throw("Unknown chain")
382382 }
383383
384384 let cq = {
385385 let cn = cl
386386 if ((base58'2W' == cn))
387387 then 86400000
388388 else if ((base58'2T' == cn))
389389 then 60000
390390 else throw("Unknown chain")
391391 }
392392
393393 let cr = "__"
394394
395395 let cs = 1000000
396396
397397 let ct = 100000000
398398
399399 let cu = 25
400400
401401 let cv = 100
402402
403403 let cw = 225
404404
405405 let cx = 400
406406
407407 let cy = 625
408408
409409 let cz = [0, 1, 2, 3, 4, 5]
410410
411411 func cA (cB,cC) = valueOrErrorMessage(getString(cB, cC), makeString(["mandatory ", toString(cB), ".", cC, " is not defined"], ""))
412412
413413
414414 let cD = 1
415415
416416 let cE = 2
417417
418418 let cF = 3
419419
420420 let cG = 4
421421
422422 let cH = 7
423423
424424 let cI = 8
425425
426426 func cJ () = "%s__restConfig"
427427
428428
429429 func cK () = "%s__restAddr"
430430
431431
432432 func cL (cM) = split_4C(cA(cM, cJ()), cr)
433433
434434
435435 func cN (cO,cP) = valueOrErrorMessage(addressFromString(cO[cP]), ("Rest cfg doesn't contain address at index " + toString(cP)))
436436
437437
438438 let cQ = addressFromStringValue(valueOrElse(getString(this, cK()), co))
439439
440440 let cO = cL(cQ)
441441
442442 let an = cN(cO, cD)
443443
444444 let cR = cN(cO, cE)
445445
446446 let cS = cN(cO, cF)
447447
448448 let cT = cN(cO, cG)
449449
450450 let cU = cN(cO, cH)
451451
452452 let cV = cN(cO, cI)
453453
454454 let cW = 0
455455
456456 let cX = 1
457457
458458 let cY = 2
459459
460460 let cZ = 3
461461
462462 let da = "wlg_assetId"
463463
464464 let db = valueOrErrorMessage(getBinary(cT, da), "WLGOLD is not issued yet")
465465
466466 let dc = "acresAssetId"
467467
468468 let dd = valueOrErrorMessage(getBinary(cV, dc), "ACRES is not issued yet")
469469
470470 let de = 2
471471
472472 func df (cB) = ("finishBlockForAddr_" + cB)
473473
474474
475475 func dg () = "resTypesProportions"
476476
477477
478478 func dh (di) = ("resTypesByContinent_" + di)
479479
480480
481481 func dj (bv) = ("stakedLandsByOwner_" + bv)
482482
483483
484484 func dk (bv) = ("stakedPiecesByOwner_" + bv)
485485
486486
487487 func dl (dm) = {
488488 let cn = dm
489489 if ($isInstanceOf(cn, "String"))
490490 then {
491491 let dn = cn
492492 dn
493493 }
494494 else throw("fail to cast into String")
495495 }
496496
497497
498498 func do (dm) = {
499499 let cn = dm
500500 if ($isInstanceOf(cn, "Int"))
501501 then {
502502 let dp = cn
503503 dp
504504 }
505505 else throw("fail to cast into Int")
506506 }
507507
508508
509509 func dq (dm) = {
510510 let cn = dm
511511 if ($isInstanceOf(cn, "Boolean"))
512512 then {
513513 let dn = cn
514514 dn
515515 }
516516 else throw("fail to cast into Boolean")
517517 }
518518
519519
520520 func dr (ds) = {
521521 let cn = ds
522522 if (("S" == cn))
523523 then cu
524524 else if (("M" == cn))
525525 then cv
526526 else if (("L" == cn))
527527 then cw
528528 else if (("XL" == cn))
529529 then cx
530530 else if (("XXL" == cn))
531531 then cy
532532 else throw("Unknown land size")
533533 }
534534
535535
536536 func dt (dn) = isDefined(parseInt(dn))
537537
538538
539539 func du () = "contractsBlocked"
540540
541541
542542 func dv (c) = ("lastTxIdByUser_" + c)
543543
544544
545545 func dw (dx,dy) = {
546546 let dz = pow(10, 0, dy, 0, 0, DOWN)
547547 let dA = toString((dx % dz))
548548 let dB = drop(toString(dz), (1 + size(dA)))
549549 (((toString((dx / dz)) + ".") + dB) + dA)
550550 }
551551
552552
553553 func dC (dD,dE,dF) = {
554554 let dG = value(blockInfoByHeight(dE))
555555 let dH = sha256((value(dG.vrf) + dF))
556556 (toInt(dH) % dD)
557557 }
558558
559559
560560 let dI = {
561561 let cn = cl
562562 if ((base58'2W' == cn))
563563 then addressFromStringValue("3PEktVux2RhchSN63DsDo4b4mz4QqzKSeDv")
564564 else if ((base58'2T' == cn))
565565 then this
566566 else throw("Unknown chain")
567567 }
568568
569569 let dJ = {
570570 let cn = cl
571571 if ((base58'2W' == cn))
572572 then addressFromStringValue("3PDVuU45H7Eh5dmtNbnRNRStGwULA7NY6Hb")
573573 else if ((base58'2T' == cn))
574574 then this
575575 else throw("Unknown chain")
576576 }
577577
578578 let dK = {
579579 let cn = cl
580580 if ((base58'2W' == cn))
581581 then if (ci)
582582 then base58'CWsMtTZC5BjjoL4Q1ayW4Wwb1ehGACQB6DrKyPgotKfm'
583583 else base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
584584 else if ((base58'2T' == cn))
585585 then base58'6LfPuKJjLgekmncBhMg2LZyMTNVzZBccXR28ySXm9uXD'
586586 else throw("Unknown chain")
587587 }
588588
589589 let dL = base64'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=='
590590
591591 let dM = 300000
592592
593593 let dN = 600000
594594
595595 let dO = 5000000
596596
597597 let dP = 50
598598
599599 let dQ = 10000000
600600
601601 let dR = {
602602 let cn = cl
603603 if ((base58'2W' == cn))
604604 then 252289527462
605605 else if ((base58'2T' == cn))
606606 then 2522895274
607607 else throw("Unknown chain")
608608 }
609609
610610 let dS = {
611611 let cn = cl
612612 if ((base58'2W' == cn))
613613 then 250000000
614614 else if ((base58'2T' == cn))
615615 then 250000000
616616 else throw("Unknown chain")
617617 }
618618
619619 let dT = 2500000000
620620
621621 let dU = toBigInt(5)
622622
623623 let dV = toBigInt(20)
624624
625625 let dW = toBigInt((20 * 20))
626626
627627 let dX = toBigInt(((20 * 20) * 20))
628628
629629 let dY = toBigInt((((20 * 20) * 20) * 20))
630630
631631 let dZ = toBigInt(((((20 * 20) * 20) * 20) * 20))
632632
633633 let ea = 500
634634
635635 func eb () = "nextLandNum"
636636
637637
638638 func ec (ed) = ("lcn_" + ed)
639639
640640
641641 func ee (ef) = ("la_" + ef)
642642
643643
644644 func eg (bo,bv) = ((("ilao_" + bo) + "_") + bv)
645645
646646
647647 func eh (ef) = ("lo_" + ef)
648648
649649
650650 func ei (ed) = ("duckByCustomName_" + ed)
651651
652652
653653 func ej (ed) = ("accountByCustomName_" + ed)
654654
655655
656656 func ek () = "oldiesList"
657657
658658
659659 let el = 0
660660
661661 let em = 1
662662
663663 let en = 2
664664
665665 let eo = 0
666666
667667 let ep = 5
668668
669669 let eq = 6
670670
671671 let er = 7
672672
673673 func es (ef,ds) = ((aC + ef) + ds)
674674
675675
676676 func et (eu,ev) = {
677677 let ew = if ((eu >= 0))
678678 then (((eu + ev) - 1) / ev)
679679 else -((((-(eu) + ev) - 1) / ev))
680680 (ew * ct)
681681 }
682682
683683
684684 func ex (ey,ez) = {
685685 let eA = (((((ez[0] + ez[1]) + ez[2]) + ez[3]) + ez[4]) + ez[5])
686686 if ((0 >= eA))
687687 then throw("Zero weights sum")
688688 else {
689689 let eB = fraction(ey, cs, eA)
690690 func eC (eD,eE) = (eD :+ fraction(eE, eB, cs))
691691
692692 let eF = ez
693693 let eG = size(eF)
694694 let eH = nil
695695 func eI (eJ,eK) = if ((eK >= eG))
696696 then eJ
697697 else eC(eJ, eF[eK])
698698
699699 func eL (eJ,eK) = if ((eK >= eG))
700700 then eJ
701701 else throw("List size exceeds 6")
702702
703703 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
704704 }
705705 }
706706
707707
708708 func eM (ey) = {
709709 let eN = split(value(getString(dg())), "_")
710710 if ((size(eN) != aF))
711711 then throw("Wrong proportions data")
712712 else {
713713 let eO = [parseIntValue(eN[0]), parseIntValue(eN[1]), parseIntValue(eN[2]), parseIntValue(eN[3]), parseIntValue(eN[4]), parseIntValue(eN[5])]
714714 ex(ey, eO)
715715 }
716716 }
717717
718718
719719 func eP (eQ,eR,eS) = {
720720 let eT = eM(eS)
721721 func eU (eD,cP) = {
722722 let eV = (parseIntValue(eR[cP]) - eT[cP])
723723 if ((0 > eV))
724724 then throw(((((("Not enough material idx=" + toString(cP)) + ", you have ") + eR[cP]) + ", but need ") + toString(eT[cP])))
725725 else (eD :+ toString(eV))
726726 }
727727
728728 if (eQ)
729729 then {
730730 let eF = cz
731731 let eG = size(eF)
732732 let eH = nil
733733 func eI (eJ,eK) = if ((eK >= eG))
734734 then eJ
735735 else eU(eJ, eF[eK])
736736
737737 func eL (eJ,eK) = if ((eK >= eG))
738738 then eJ
739739 else throw("List size exceeds 6")
740740
741741 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
742742 }
743743 else eR
744744 }
745745
746746
747747 func eW (eX,eY) = if ((eY == ""))
748748 then $Tuple2(eX, false)
749749 else {
750750 func eZ (eD,fa) = {
751751 let fb = split(fa, ",")
752752 if ((size(fb) != 2))
753753 then throw("Incorrect format, should be index,amount")
754754 else {
755755 let cP = parseIntValue(fb[0])
756756 if (if ((0 > cP))
757757 then true
758758 else (cP >= size(aR)))
759759 then throw("Unknown product idx")
760760 else {
761761 let fc = parseIntValue(fb[1])
762762 let fd = split(eD._1, (fb[0] + ":"))
763763 if ((size(fd) != 2))
764764 then throw((("You don't have " + aN[cP]) + " equipped"))
765765 else {
766766 let fe = fd[1]
767767 let ff = if (dt(take(drop(fe, 1), 1)))
768768 then 2
769769 else 1
770770 let fg = parseIntValue(take(fe, ff))
771771 let fh = drop(fe, ff)
772772 let fi = if ((fg >= fc))
773773 then (fg - fc)
774774 else throw(((((("You equipped " + toString(fg)) + " of ") + aN[cP]) + ", but tried to use ") + toString(fc)))
775775 $Tuple2(((((fd[0] + fb[0]) + ":") + toString(fi)) + fh), if (eD._2)
776776 then true
777777 else if (if ((cP >= 6))
778778 then (8 >= cP)
779779 else false)
780780 then (fi == 0)
781781 else false)
782782 }
783783 }
784784 }
785785 }
786786
787787 let eF = split(eY, "_")
788788 let eG = size(eF)
789789 let eH = $Tuple2(eX, false)
790790 func eI (eJ,eK) = if ((eK >= eG))
791791 then eJ
792792 else eZ(eJ, eF[eK])
793793
794794 func eL (eJ,eK) = if ((eK >= eG))
795795 then eJ
796796 else throw("List size exceeds 10")
797797
798798 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
799799 }
800800
801801
802802 func fj (fk) = {
803803 let fl = if ((fk == ""))
804804 then nil
805805 else split_4C(fk, "_")
806806 func fm (eD,ch) = {
807807 let fn = (size(eD) / 8)
808808 let fg = if ((size(fl) > fn))
809809 then parseIntValue(fl[fn])
810810 else 0
811811 (eD + toBytes(fg))
812812 }
813813
814814 let eF = aR
815815 let eG = size(eF)
816816 let eH = base58''
817817 func eI (eJ,eK) = if ((eK >= eG))
818818 then eJ
819819 else fm(eJ, eF[eK])
820820
821821 func eL (eJ,eK) = if ((eK >= eG))
822822 then eJ
823823 else throw("List size exceeds 50")
824824
825825 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
826826 }
827827
828828
829829 func fo (fp) = {
830830 func fq (eD,ch) = {
831831 let fn = size(eD)
832832 let fr = take(drop(fp, (8 * fn)), 8)
833833 (eD :+ toString(toInt(fr)))
834834 }
835835
836836 makeString_2C({
837837 let eF = aR
838838 let eG = size(eF)
839839 let eH = nil
840840 func eI (eJ,eK) = if ((eK >= eG))
841841 then eJ
842842 else fq(eJ, eF[eK])
843843
844844 func eL (eJ,eK) = if ((eK >= eG))
845845 then eJ
846846 else throw("List size exceeds 50")
847847
848848 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
849849 }, "_")
850850 }
851851
852852
853853 func fs (ft,fu) = {
854854 func fv (eD,fn) = {
855855 let fw = if ((size(ft) > (7 + fn)))
856856 then ft[(7 + fn)]
857857 else 0
858858 if ((parseIntValue(fu[fn]) > (ft[fn] + fw)))
859859 then throw(("Requirement not satisfied: " + j[fn]))
860860 else true
861861 }
862862
863863 let eF = [0, 1, 2, 3, 4, 5, 6]
864864 let eG = size(eF)
865865 let eH = false
866866 func eI (eJ,eK) = if ((eK >= eG))
867867 then eJ
868868 else fv(eJ, eF[eK])
869869
870870 func eL (eJ,eK) = if ((eK >= eG))
871871 then eJ
872872 else throw("List size exceeds 7")
873873
874874 eL(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7)
875875 }
876876
877877
878878 func fx (fy,fl,fz,ft,fA,fB) = {
879879 let fb = split(fy, ":")
880880 if ((size(fb) != 2))
881881 then throw("Incorrect format, should be index:amount")
882882 else if (if (!(fz))
883883 then (size(fb[0]) != 2)
884884 else false)
885885 then throw("Product idx should be 2 digits, zero padded")
886886 else {
887887 let fC = parseIntValue(fb[0])
888888 let fD = parseIntValue(fb[1])
889889 if (!(containsElement(aQ, fC)))
890890 then throw((("Product '" + aN[fC]) + "' cannot be used for land defense"))
891891 else if ((0 > fD))
892892 then throw("Count can't be negative")
893893 else if ((fD > t))
894894 then throw(((("Can't put more than " + toString(t)) + " of ") + aN[fC]))
895895 else if ((fD == 0))
896896 then $Tuple3(fl, fA, fB)
897897 else {
898898 let fE = take(fl, (8 * fC))
899899 let fg = toInt(take(drop(fl, (8 * fC)), 8))
900900 let fh = drop(fl, (8 * (fC + 1)))
901901 let ch = split(aR[fC], "_")
902902 if (if (!(fz))
903903 then (fD > fg)
904904 else false)
905905 then throw(((((("You have " + toString(fg)) + " of ") + aN[fC]) + ", but tried to use ") + toString(fD)))
906906 else {
907907 let fi = if (if (!(fz))
908908 then fs(ft, split(ch[aU], ","))
909909 else false)
910910 then (fg - fD)
911911 else (fg + fD)
912912 let fF = (et(fi, aW) - et(fg, aW))
913913 $Tuple3(((fE + toBytes(fi)) + fh), (fA + fF), (fB - fF))
914914 }
915915 }
916916 }
917917 }
918918
919919
920920 func fG (fy,fl,fz,fH,fI,fJ,ft) = {
921921 let fb = split(fy, ":")
922922 if ((size(fb) != 2))
923923 then throw("Incorrect format, should be index:amount")
924924 else if (if (!(fz))
925925 then (size(fb[0]) != 2)
926926 else false)
927927 then throw("Product idx should be 2 digits, zero padded")
928928 else {
929929 let fC = parseIntValue(fb[0])
930930 let fD = parseIntValue(fb[1])
931931 if (if ((0 > fC))
932932 then true
933933 else (fC >= size(aR)))
934934 then throw("Unknown product idx")
935935 else if ((0 > fD))
936936 then throw("Count can't be negative")
937937 else if ((fD > t))
938938 then throw(((("Can't put more than " + toString(t)) + " of ") + aN[fC]))
939939 else if ((fD == 0))
940940 then $Tuple2(fl, false)
941941 else {
942942 let fE = take(fl, (8 * fC))
943943 let fg = toInt(take(drop(fl, (8 * fC)), 8))
944944 let fh = drop(fl, (8 * (fC + 1)))
945945 let ch = split(aR[fC], "_")
946946 if (if (!(fz))
947947 then (fD > fg)
948948 else false)
949949 then throw(((((("You have " + toString(fg)) + " of ") + aN[fC]) + ", but tried to use ") + toString(fD)))
950950 else {
951951 let fK = if (if (!(fz))
952952 then fs(ft, split(ch[aU], ","))
953953 else false)
954954 then {
955955 let fL = ch[aV]
956956 if ((fL == ""))
957957 then throw("Item cannot be equipped")
958958 else {
959959 let fM = parseIntValue(fL)
960960 let fN = (fM / 100)
961961 if ((fH != fN))
962962 then throw("Segment incompatible")
963963 else {
964964 let fO = ((fM % 100) / 10)
965965 if ((fI != fO))
966966 then throw("Slot incompatible")
967967 else {
968968 let fP = (fM % 10)
969969 if (if ((fJ != 0))
970970 then (fP > 1)
971971 else false)
972972 then throw("Big items should occupy slot 0")
973973 else (fP > 1)
974974 }
975975 }
976976 }
977977 }
978978 else false
979979 $Tuple2(((fE + toBytes((fg + (if (fz)
980980 then fD
981981 else -(fD))))) + fh), fK)
982982 }
983983 }
984984 }
985985 }
986986
987987
988988 func fQ (fR,fS,fz,fH,fI,fT) = if ((fR != ""))
989989 then {
990990 let fU = split(fR, ",")
991991 if ((size(fU) > s))
992992 then throw("Wrong slots format")
993993 else {
994994 let fV = fU[0]
995995 let fW = if ((size(fU) > 1))
996996 then fU[1]
997997 else ""
998998 if (if ((fV == ""))
999999 then (fW == "")
10001000 else false)
10011001 then fS
10021002 else {
10031003 let fX = if ((fV != ""))
10041004 then fG(fV, fS, fz, fH, fI, 0, fT)
10051005 else $Tuple2(fS, false)
10061006 if ((fW != ""))
10071007 then if (fX._2)
10081008 then throw("Big item already occupies slot")
10091009 else fG(fW, fX._1, fz, fH, fI, 1, fT)._1
10101010 else fX._1
10111011 }
10121012 }
10131013 }
10141014 else fS
10151015
10161016
10171017 func fY (fZ,ga,fz,fT) = {
10181018 func fH (eD,gb) = {
10191019 let fn = eD._1
10201020 let fI = split(gb, ";")
10211021 if ((size(fI) != r))
10221022 then throw("Wrong segment format")
10231023 else {
10241024 let gc = fI[0]
10251025 let gd = fI[1]
10261026 if (if ((gc == ""))
10271027 then (gd == "")
10281028 else false)
10291029 then $Tuple2((fn + 1), eD._2)
10301030 else {
10311031 let ge = fQ(gc, eD._2, fz, fn, 0, fT)
10321032 $Tuple2((fn + 1), fQ(gd, ge, fz, fn, 1, fT))
10331033 }
10341034 }
10351035 }
10361036
10371037 ( let eF = fZ
10381038 let eG = size(eF)
10391039 let eH = $Tuple2(0, ga)
10401040 func eI (eJ,eK) = if ((eK >= eG))
10411041 then eJ
10421042 else fH(eJ, eF[eK])
10431043
10441044 func eL (eJ,eK) = if ((eK >= eG))
10451045 then eJ
10461046 else throw("List size exceeds 6")
10471047
10481048 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6))._2
10491049 }
10501050
10511051
10521052 func gf (fZ,ga,fA,fB,fz,ft) = if ((3 > size(fZ)))
10531053 then throw("At least duck, mines and traps parts are required")
10541054 else {
10551055 func fH (eD,gb) = {
10561056 let fn = eD._1
10571057 if ((fn == 0))
10581058 then $Tuple4((fn + 1), eD._2, eD._3, eD._4)
10591059 else {
10601060 let gg = fx(gb, eD._2, fz, ft, eD._3, eD._4)
10611061 $Tuple4((fn + 1), gg._1, gg._2, gg._3)
10621062 }
10631063 }
10641064
10651065 let gh = {
10661066 let eF = fZ
10671067 let eG = size(eF)
10681068 let eH = $Tuple4(0, ga, fA, fB)
10691069 func eI (eJ,eK) = if ((eK >= eG))
10701070 then eJ
10711071 else fH(eJ, eF[eK])
10721072
10731073 func eL (eJ,eK) = if ((eK >= eG))
10741074 then eJ
10751075 else throw("List size exceeds 10")
10761076
10771077 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
10781078 }
10791079 $Tuple3(gh._2, gh._3, gh._4)
10801080 }
10811081
10821082
10831083 func gi (A) = {
10841084 let gj = F(A)
10851085 let gk = split(valueOrElse(getString(gj), ",;,_,;,_,;,_,;,_,;,_,;,"), "_")
10861086 let gl = fY(gk, dL, true, nil)
10871087 let gm = split(gk[p], ";")[1]
10881088 let ao = if ((gm == ""))
10891089 then 0
10901090 else {
10911091 let gn = split(gm, ",")[0]
10921092 if ((gn == ""))
10931093 then 0
10941094 else {
10951095 let fy = split(gn, ":")
10961096 let cP = fy[0]
10971097 let go = fy[1]
10981098 if (if (if (if (if ((cP == "06"))
10991099 then true
11001100 else (cP == "07"))
11011101 then true
11021102 else (cP == "08"))
11031103 then (go != "")
11041104 else false)
11051105 then (parseIntValue(go) > 0)
11061106 else false)
11071107 then parseIntValue(split(aR[parseIntValue(cP)], "_")[aT])
11081108 else 0
11091109 }
11101110 }
11111111 let fT = am(this, A, ao, true)
11121112 let gp = fY(gk, gl, false, fT)
11131113 (gp == gp)
11141114 }
11151115
11161116
11171117 func gq (gr,gs,gt,gu) = if ((size(gr) != aF))
11181118 then throw("Wrong proportions data")
11191119 else {
11201120 func gv (eD,gw) = {
11211121 let eV = (parseIntValue(gr[gw]) + ((gu * gs[gw]) * gt))
11221122 if ((0 > eV))
11231123 then throw(((((((("Panic! Pieces of type=" + toString(gw)) + ", sign=") + toString(gu)) + ", terrainCounts[i]=") + toString(gs[gw])) + ", landSizeIndex=") + toString(gt)))
11241124 else (eD :+ toString(eV))
11251125 }
11261126
11271127 let eF = cz
11281128 let eG = size(eF)
11291129 let eH = nil
11301130 func eI (eJ,eK) = if ((eK >= eG))
11311131 then eJ
11321132 else gv(eJ, eF[eK])
11331133
11341134 func eL (eJ,eK) = if ((eK >= eG))
11351135 then eJ
11361136 else throw("List size exceeds 6")
11371137
11381138 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
11391139 }
11401140
11411141
11421142 func gx (gs,gt,gu) = {
11431143 let gr = split(valueOrElse(getString(dg()), "0_0_0_0_0_0"), "_")
11441144 makeString(gq(gr, gs, gt, gu), "_")
11451145 }
11461146
11471147
11481148 func gy (gz) = [(size(split(gz, "A")) - 1), (size(split(gz, "B")) - 1), (size(split(gz, "C")) - 1), (size(split(gz, "D")) - 1), (size(split(gz, "E")) - 1), (size(split(gz, "F")) - 1)]
11491149
11501150
11511151 func gA (gB,gs,gC,gt,gD) = {
11521152 func gE (eD,gw) = {
11531153 let gF = ((fraction(gC, gD, a) * gs[gw]) * gt)
11541154 (eD :+ toString((parseIntValue(gB[gw]) + gF)))
11551155 }
11561156
11571157 let eO = {
11581158 let eF = cz
11591159 let eG = size(eF)
11601160 let eH = nil
11611161 func eI (eJ,eK) = if ((eK >= eG))
11621162 then eJ
11631163 else gE(eJ, eF[eK])
11641164
11651165 func eL (eJ,eK) = if ((eK >= eG))
11661166 then eJ
11671167 else throw("List size exceeds 6")
11681168
11691169 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
11701170 }
11711171 makeString(eO, "_")
11721172 }
11731173
11741174
11751175 func gG (gs,gC,gt,gD) = {
11761176 func gE (eD,gw) = {
11771177 let gF = ((fraction(gC, gD, a) * gs[gw]) * gt)
11781178 $Tuple2((eD._1 :+ gF), (eD._2 + gF))
11791179 }
11801180
11811181 let eF = cz
11821182 let eG = size(eF)
11831183 let eH = $Tuple2(nil, 0)
11841184 func eI (eJ,eK) = if ((eK >= eG))
11851185 then eJ
11861186 else gE(eJ, eF[eK])
11871187
11881188 func eL (eJ,eK) = if ((eK >= eG))
11891189 then eJ
11901190 else throw("List size exceeds 6")
11911191
11921192 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
11931193 }
11941194
11951195
11961196 func gH (gI,gJ,gK,gL) = {
11971197 let gM = gK._1
11981198 let gN = gK._2
11991199 if ((gN == 0))
12001200 then $Tuple2(makeString(gI, "_"), makeString(gJ, "_"))
12011201 else if ((gL >= gN))
12021202 then {
12031203 func gO (eD,gw) = (eD :+ toString((parseIntValue(gI[gw]) + gM[gw])))
12041204
12051205 let eO = {
12061206 let eF = cz
12071207 let eG = size(eF)
12081208 let eH = nil
12091209 func eI (eJ,eK) = if ((eK >= eG))
12101210 then eJ
12111211 else gO(eJ, eF[eK])
12121212
12131213 func eL (eJ,eK) = if ((eK >= eG))
12141214 then eJ
12151215 else throw("List size exceeds 6")
12161216
12171217 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
12181218 }
12191219 $Tuple2(makeString(eO, "_"), makeString(gJ, "_"))
12201220 }
12211221 else {
12221222 func gP (eD,gw) = {
12231223 let gQ = fraction(gM[gw], gL, gN)
12241224 $Tuple2((eD._1 :+ toString((parseIntValue(gI[gw]) + gQ))), (eD._2 :+ toString(((parseIntValue(gJ[gw]) + gM[gw]) - gQ))))
12251225 }
12261226
12271227 let eO = {
12281228 let eF = cz
12291229 let eG = size(eF)
12301230 let eH = $Tuple2(nil, nil)
12311231 func eI (eJ,eK) = if ((eK >= eG))
12321232 then eJ
12331233 else gP(eJ, eF[eK])
12341234
12351235 func eL (eJ,eK) = if ((eK >= eG))
12361236 then eJ
12371237 else throw("List size exceeds 6")
12381238
12391239 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
12401240 }
12411241 $Tuple2(makeString(eO._1, "_"), makeString(eO._2, "_"))
12421242 }
12431243 }
12441244
12451245
12461246 func gR (gS) = if ((gS >= toBigInt(0)))
12471247 then gS
12481248 else -(gS)
12491249
12501250
12511251 let gT = [[6, 9, 14, 15, 16], [5, 8, 13, 14, 15], [1, 4, 9, 10, 15], [1, 6, 7, 15, 19], [4, 7, 8, 13, 18]]
12521252
12531253 func gU (dp,gV) = {
12541254 let gW = toInt((dp % dV))
12551255 let gX = if ((gV[0] > gW))
12561256 then "A"
12571257 else if ((gV[1] > gW))
12581258 then "B"
12591259 else if ((gV[2] > gW))
12601260 then "C"
12611261 else if ((gV[3] > gW))
12621262 then "D"
12631263 else if ((gV[4] > gW))
12641264 then "E"
12651265 else "F"
12661266 gX
12671267 }
12681268
12691269
12701270 func gY (gZ,ha) = {
12711271 let hb = gT[ha]
12721272 func hc (eD,eE) = $Tuple2((((((eD._1 + gU(eD._2, hb)) + gU((eD._2 / dV), hb)) + gU((eD._2 / dW), hb)) + gU((eD._2 / dX), hb)) + gU((eD._2 / dY), hb)), (eD._2 / dZ))
12731273
12741274 let gh = {
12751275 let eF = [1, 2, 3, 4, 5]
12761276 let eG = size(eF)
12771277 let eH = $Tuple2("", (gZ / dU))
12781278 func eI (eJ,eK) = if ((eK >= eG))
12791279 then eJ
12801280 else hc(eJ, eF[eK])
12811281
12821282 func eL (eJ,eK) = if ((eK >= eG))
12831283 then eJ
12841284 else throw("List size exceeds 5")
12851285
12861286 eL(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5)
12871287 }
12881288 gh._1
12891289 }
12901290
12911291
12921292 let hd = [7, 2, 15, 19, 8, 24, 1, 21, 16, 5, 0, 22, 20, 23, 11, 4, 18, 12, 6, 10, 3, 17, 13, 9, 14]
12931293
12941294 let he = ["A", "B", "C", "D", "E", "F"]
12951295
12961296 func hf (hg,gt) = {
12971297 func hh (eD,dn) = {
12981298 let fn = eD._2
12991299 let hi = parseIntValue(dn)
13001300 let gS = if ((hi == 0))
13011301 then 0
13021302 else if ((hi >= (4 * gt)))
13031303 then (hi / gt)
13041304 else if ((hi > (3 * gt)))
13051305 then 3
13061306 else (((hi - 1) / gt) + 1)
13071307 $Tuple3((eD._1 :+ gS), (eD._2 + 1), (eD._3 + gS))
13081308 }
13091309
13101310 let gh = {
13111311 let eF = hg
13121312 let eG = size(eF)
13131313 let eH = $Tuple3(nil, 0, 0)
13141314 func eI (eJ,eK) = if ((eK >= eG))
13151315 then eJ
13161316 else hh(eJ, eF[eK])
13171317
13181318 func eL (eJ,eK) = if ((eK >= eG))
13191319 then eJ
13201320 else throw("List size exceeds 6")
13211321
13221322 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
13231323 }
13241324 let hj = gh._1
13251325 let hk = value(indexOf(hj, max(hj)))
13261326 let hl = (gh._3 - 25)
13271327 func hm (eD,cP) = {
13281328 let dx = if ((cP == hk))
13291329 then (hj[cP] - hl)
13301330 else hj[cP]
13311331 let dB = if ((dx == 0))
13321332 then nil
13331333 else split(drop(toString(pow(10, 0, dx, 0, 0, DOWN)), 1), "")
13341334 let fM = he[cP]
13351335 func hn (ho,hp) = (ho :+ fM)
13361336
13371337 let hq = {
13381338 let eF = dB
13391339 let eG = size(eF)
13401340 let eH = nil
13411341 func hr (eJ,eK) = if ((eK >= eG))
13421342 then eJ
13431343 else hn(eJ, eF[eK])
13441344
13451345 func hs (eJ,eK) = if ((eK >= eG))
13461346 then eJ
13471347 else throw("List size exceeds 25")
13481348
13491349 hs(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25)
13501350 }
13511351 (eD ++ hq)
13521352 }
13531353
13541354 let eO = {
13551355 let eF = cz
13561356 let eG = size(eF)
13571357 let eH = nil
13581358 func hr (eJ,eK) = if ((eK >= eG))
13591359 then eJ
13601360 else hm(eJ, eF[eK])
13611361
13621362 func hs (eJ,eK) = if ((eK >= eG))
13631363 then eJ
13641364 else throw("List size exceeds 6")
13651365
13661366 hs(hr(hr(hr(hr(hr(hr(eH, 0), 1), 2), 3), 4), 5), 6)
13671367 }
13681368 func ht (eD,fn) = (eD + eO[fn])
13691369
13701370 let eF = hd
13711371 let eG = size(eF)
13721372 let eH = ""
13731373 func hu (eJ,eK) = if ((eK >= eG))
13741374 then eJ
13751375 else ht(eJ, eF[eK])
13761376
13771377 func hv (eJ,eK) = if ((eK >= eG))
13781378 then eJ
13791379 else throw("List size exceeds 25")
13801380
13811381 hv(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25)
13821382 }
13831383
13841384
13851385 func hw (hx) = {
13861386 let gg = split(valueOrElse(getString(hx), "0:0_0_0_0_0_0:0_0_0_0_0_0:"), ":")
13871387 [toString(valueOrElse(parseInt(gg[bg]), 0)), if ((size(split(gg[bh], "_")) == aF))
13881388 then gg[bh]
13891389 else "0_0_0_0_0_0", if ((size(split(gg[bi], "_")) == aF))
13901390 then gg[bi]
13911391 else "0_0_0_0_0_0", gg[bj]]
13921392 }
13931393
13941394
13951395 func hy (hz) = {
13961396 let fb = split(hz, "_")
13971397 ((aI * (parseIntValue(fb[1]) + 1)) * parseIntValue(fb[0]))
13981398 }
13991399
14001400
14011401 func hA (hB) = {
14021402 let hC = hB[ba]
14031403 func hD (eD,hE) = (eD + parseIntValue(hE))
14041404
14051405 func hF (eD,hE) = {
14061406 let cP = eD._1
14071407 let ew = (((parseIntValue(hE) + aW) - 1) / aW)
14081408 $Tuple2((cP + 1), (eD._2 + (ew * ct)))
14091409 }
14101410
14111411 let hG = {
14121412 let eF = split(hB[aY], "_")
14131413 let eG = size(eF)
14141414 let eH = 0
14151415 func eI (eJ,eK) = if ((eK >= eG))
14161416 then eJ
14171417 else hD(eJ, eF[eK])
14181418
14191419 func eL (eJ,eK) = if ((eK >= eG))
14201420 then eJ
14211421 else throw("List size exceeds 6")
14221422
14231423 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
14241424 }
14251425 let hH = {
14261426 let eF = split(hB[aZ], "_")
14271427 let eG = size(eF)
14281428 let eH = 0
14291429 func hr (eJ,eK) = if ((eK >= eG))
14301430 then eJ
14311431 else hD(eJ, eF[eK])
14321432
14331433 func hs (eJ,eK) = if ((eK >= eG))
14341434 then eJ
14351435 else throw("List size exceeds 6")
14361436
14371437 hs(hr(hr(hr(hr(hr(hr(eH, 0), 1), 2), 3), 4), 5), 6)
14381438 }
14391439 let hI = if ((hC == ""))
14401440 then 0
14411441 else ( let eF = split_4C(hC, "_")
14421442 let eG = size(eF)
14431443 let eH = $Tuple2(0, 0)
14441444 func hu (eJ,eK) = if ((eK >= eG))
14451445 then eJ
14461446 else hF(eJ, eF[eK])
14471447
14481448 func hv (eJ,eK) = if ((eK >= eG))
14491449 then eJ
14501450 else throw("List size exceeds 50")
14511451
14521452 hv(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50))._2
14531453 ((hG + hH) + hI)
14541454 }
14551455
14561456
14571457 func hJ (hK,hL,hM) = {
14581458 let hz = ((toString(hL) + "_") + toString(hM))
14591459 let hN = hy(hz)
14601460 let hO = valueOrElse(getString(hK), (hz + ":0_0_0_0_0_0:0_0_0_0_0_0::0"))
14611461 let hP = split_4C(hO, ":")
14621462 let hQ = hA(hP)
14631463 let hR = if ((5 > size(hP)))
14641464 then makeString(["0", toString(hQ), toString((hN - hQ)), toString(hN)], "_")
14651465 else {
14661466 let hS = split(hP[bb], "_")
14671467 let hT = parseIntValue(hS[bc])
14681468 let hU = if ((size(hS) > 1))
14691469 then parseIntValue(hS[bd])
14701470 else hQ
14711471 makeString([toString(hT), toString(hU), toString(((hN - hT) - hU)), toString(hN)], "_")
14721472 }
14731473 [hP[aX], if ((size(split(hP[aY], "_")) == aF))
14741474 then hP[aY]
14751475 else "0_0_0_0_0_0", if ((size(split(hP[aZ], "_")) == aF))
14761476 then hP[aZ]
14771477 else "0_0_0_0_0_0", hP[ba], hR]
14781478 }
14791479
14801480
14811481 func hV (hB) = {
14821482 let hW = hA(hB)
14831483 let hX = parseIntValue(split(hB[bb], "_")[bc])
14841484 ((hy(hB[aX]) - hW) - hX)
14851485 }
14861486
14871487
14881488 func hY (hZ,hB,ia) = if ((size(hZ) != 3))
14891489 then throw("cargoListStr should contain exactly 2 ':' separators")
14901490 else {
14911491 let ib = split(hZ[0], "_")
14921492 let ic = split(hZ[1], "_")
14931493 let id = if ((hZ[2] == ""))
14941494 then nil
14951495 else split_4C(hZ[2], "_")
14961496 if ((size(ib) != aF))
14971497 then throw("All 6 resources should be passed")
14981498 else if ((size(ic) != aF))
14991499 then throw("All 6 materials should be passed")
15001500 else {
15011501 let gL = hV(hB)
15021502 let ie = split(hB[aY], "_")
15031503 let if = split(hB[aZ], "_")
15041504 let ig = if ((hB[ba] == ""))
15051505 then nil
15061506 else split_4C(hB[ba], "_")
15071507 let gJ = split(ia[bh], "_")
15081508 let ih = split(ia[bi], "_")
15091509 let ii = if ((ia[bj] == ""))
15101510 then nil
15111511 else split_4C(ia[bj], "_")
15121512 func ij (eD,hE) = {
15131513 let gw = eD._1
15141514 let ik = parseIntValue(hE)
15151515 let il = parseIntValue(ie[gw])
15161516 let im = parseIntValue(gJ[gw])
15171517 if ((ik == 0))
15181518 then $Tuple4((gw + 1), (eD._2 :+ ie[gw]), (eD._3 :+ gJ[gw]), eD._4)
15191519 else if ((ik > 0))
15201520 then if ((ik > im))
15211521 then throw((((("Attempt to take " + hE) + " from backpack, but only ") + toString(im)) + " available"))
15221522 else $Tuple4((gw + 1), (eD._2 :+ toString((il + ik))), (eD._3 :+ toString((im - ik))), (eD._4 + ik))
15231523 else if ((-(ik) > il))
15241524 then throw((((("Attempt to take " + toString(-(ik))) + " from warehouse, but only ") + toString(il)) + " available"))
15251525 else $Tuple4((gw + 1), (eD._2 :+ toString((il + ik))), (eD._3 :+ toString((im - ik))), (eD._4 + ik))
15261526 }
15271527
15281528 let eO = {
15291529 let eF = ib
15301530 let eG = size(eF)
15311531 let eH = $Tuple4(0, nil, nil, 0)
15321532 func eI (eJ,eK) = if ((eK >= eG))
15331533 then eJ
15341534 else ij(eJ, eF[eK])
15351535
15361536 func eL (eJ,eK) = if ((eK >= eG))
15371537 then eJ
15381538 else throw("List size exceeds 6")
15391539
15401540 eL(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6)
15411541 }
15421542 func in (eD,hE) = {
15431543 let gw = eD._1
15441544 let ik = parseIntValue(hE)
15451545 let io = parseIntValue(if[gw])
15461546 let ip = parseIntValue(ih[gw])
15471547 if ((ik == 0))
15481548 then $Tuple4((gw + 1), (eD._2 :+ if[gw]), (eD._3 :+ ih[gw]), eD._4)
15491549 else if ((ik > 0))
15501550 then if ((ik > ip))
15511551 then throw((((("Attempt to take " + hE) + " from backpack, but only ") + toString(ip)) + " available"))
15521552 else $Tuple4((gw + 1), (eD._2 :+ toString((io + ik))), (eD._3 :+ toString((ip - ik))), (eD._4 + ik))
15531553 else if ((-(ik) > io))
15541554 then throw((((("Attempt to take " + toString(-(ik))) + " from warehouse, but only ") + toString(io)) + " available"))
15551555 else $Tuple4((gw + 1), (eD._2 :+ toString((io + ik))), (eD._3 :+ toString((ip - ik))), (eD._4 + ik))
15561556 }
15571557
15581558 let gc = {
15591559 let eF = ic
15601560 let eG = size(eF)
15611561 let eH = $Tuple4(0, nil, nil, eO._4)
15621562 func hr (eJ,eK) = if ((eK >= eG))
15631563 then eJ
15641564 else in(eJ, eF[eK])
15651565
15661566 func hs (eJ,eK) = if ((eK >= eG))
15671567 then eJ
15681568 else throw("List size exceeds 6")
15691569
15701570 hs(hr(hr(hr(hr(hr(hr(eH, 0), 1), 2), 3), 4), 5), 6)
15711571 }
15721572 func iq (eD,hE) = {
15731573 let gw = eD._1
15741574 let ik = parseIntValue(hE)
15751575 let ir = if ((size(ig) > gw))
15761576 then parseIntValue(ig[gw])
15771577 else 0
15781578 let is = if ((size(ii) > gw))
15791579 then parseIntValue(ii[gw])
15801580 else 0
15811581 if ((ik == 0))
15821582 then $Tuple4((gw + 1), (eD._2 :+ toString(ir)), (eD._3 :+ toString(is)), eD._4)
15831583 else if ((ik > 0))
15841584 then if ((ik > is))
15851585 then throw((((("Attempt to take " + hE) + " from backpack, but only ") + toString(is)) + " available"))
15861586 else {
15871587 let fF = (et((ir + ik), aW) - et(ir, aW))
15881588 $Tuple4((gw + 1), (eD._2 :+ toString((ir + ik))), (eD._3 :+ toString((is - ik))), (eD._4 + fF))
15891589 }
15901590 else if ((-(ik) > ir))
15911591 then throw((((("Attempt to take " + toString(-(ik))) + " from warehouse, but only ") + toString(ir)) + " available"))
15921592 else {
15931593 let fF = (et((ir + ik), aW) - et(ir, aW))
15941594 $Tuple4((gw + 1), (eD._2 :+ toString((ir + ik))), (eD._3 :+ toString((is - ik))), (eD._4 + fF))
15951595 }
15961596 }
15971597
15981598 let gg = if ((size(id) != 0))
15991599 then {
16001600 let eF = id
16011601 let eG = size(eF)
16021602 let eH = $Tuple4(0, nil, nil, gc._4)
16031603 func hu (eJ,eK) = if ((eK >= eG))
16041604 then eJ
16051605 else iq(eJ, eF[eK])
16061606
16071607 func hv (eJ,eK) = if ((eK >= eG))
16081608 then eJ
16091609 else throw("List size exceeds 50")
16101610
16111611 hv(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(hu(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
16121612 }
16131613 else $Tuple4(0, ig, ii, gc._4)
16141614 let it = gg._4
16151615 if ((it > gL))
16161616 then throw((((("Attempt to put total " + toString(it)) + " stuff, but only ") + toString(gL)) + " warehouse space left"))
16171617 else $Tuple7(makeString(eO._2, "_"), makeString(gc._2, "_"), makeString_2C(gg._2, "_"), makeString(eO._3, "_"), makeString(gc._3, "_"), makeString_2C(gg._3, "_"), it)
16181618 }
16191619 }
16201620
16211621
16221622 func iu (iv,iw) = {
16231623 let bK = toString(iv)
16241624 let ix = gR(toBigInt(iw))
16251625 let iy = valueOrElse(getInteger(eb()), (ea + 1))
16261626 let ef = toString(iy)
16271627 let ha = toInt((ix % dU))
16281628 let gz = gY(ix, ha)
16291629 let di = aO[ha]
16301630 let iz = Issue(es(ef, "S"), makeString([ef, "S", gz, di], "_"), 1, 0, false)
16311631 let bo = calculateAssetId(iz)
16321632 let iA = toBase58String(bo)
16331633 $Tuple2([IntegerEntry(eb(), (iy + 1)), iz, StringEntry(ee(ef), iA), StringEntry(bn(iA), bK), StringEntry(eh(ef), bK), IntegerEntry(bx(iA), 0), IntegerEntry(eg(iA, bK), 0), ScriptTransfer(iv, 1, bo)], $Tuple2(iA, di))
16341634 }
16351635
16361636
16371637 func iB (bK,iC,iD) = if (!(sigVerify_8Kb(iC, iD, dK)))
16381638 then throw("signature does not match")
16391639 else {
16401640 let fb = split_4C(toUtf8String(iC), ";")
16411641 let iE = split_4C(fb[0], "|")
16421642 let iF = split(iE[eo], "_")
16431643 let iG = parseIntValue(iF[0])
16441644 let iH = parseIntValue(iF[1])
16451645 let iI = split(fb[1], ":")
16461646 let iJ = iI[0]
16471647 let iK = parseIntValue(iE[ep])
16481648 if (if ((iK > (lastBlock.timestamp + dM)))
16491649 then true
16501650 else ((lastBlock.timestamp - dM) > iK))
16511651 then throw(((("signature outdated: logTime=" + toString(iK)) + ", bcTime=") + toString(lastBlock.timestamp)))
16521652 else {
16531653 let iL = iI[1]
16541654 let iM = valueOrElse(getString(dv(bK)), "")
16551655 if ((iM != iL))
16561656 then throw(((("Tx ids don't match! In state: " + iM) + ", in msg: ") + iL))
16571657 else {
16581658 let A = valueOrErrorMessage(getString(bG(bK)), "You don't have a duck staked")
16591659 let iN = z(A)
16601660 let iO = ag(valueOrElse(getInteger(D(A)), 0))
16611661 let iP = valueOrElse(getInteger(iN), iO)
16621662 if ((iP != iG))
16631663 then throw(((("oldHealth=" + toString(iP)) + " from state does not match one from flight log=") + toString(iG)))
16641664 else if ((0 >= iG))
16651665 then throw("You can't fly with zero health")
16661666 else if (!(gi(A)))
16671667 then throw("Equipment incompatible")
16681668 else {
16691669 let iQ = if ((size(iE) > eq))
16701670 then iE[eq]
16711671 else ""
16721672 let iR = if ((size(iE) > er))
16731673 then iE[er]
16741674 else ""
16751675 let iS = if (if ((iH > 0))
16761676 then (iQ == "$")
16771677 else false)
16781678 then do(invoke(cQ, "sendUsdtPrize", [bK], nil))
16791679 else 0
16801680 $Tuple5(iH, A, iS, iJ, iR)
16811681 }
16821682 }
16831683 }
16841684 }
16851685
16861686
16871687 func iT (P,iU) = {
16881688 let hM = valueOrElse(getInteger(bx(P)), 0)
16891689 let iV = valueOrElse(getInteger(br(aE, P)), 0)
16901690 let iW = (hM / 6)
16911691 let iX = (hM / 7)
16921692 ((aH + fraction(aH, ((hM + iW) + (2 * iX)), 5)) + fraction(aH, iV, (iU * 5)))
16931693 }
16941694
16951695
16961696 func iY (c,iZ,ja) = {
16971697 let jb = if ((iZ == el))
16981698 then $Tuple2(ja, valueOrElse(getString(bG(c)), ""))
16991699 else {
17001700 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
17011701 let jc = valueOrElse(getString(bI(A)), aJ)
17021702 let ce = split(value(jc), "_")
17031703 if ((ce[bl] != "L"))
17041704 then throw((("Duck location type is " + ce[bl]) + ", but should be L"))
17051705 else $Tuple2(ce[bm], A)
17061706 }
17071707 let P = jb._1
17081708 let jd = jb._2
17091709 let je = value(assetInfo(fromBase58String(P)))
17101710 let jf = bq(P)
17111711 let jg = valueOrErrorMessage(getInteger(jf), (("Land " + je.name) + " is not staked"))
17121712 let jh = valueOrErrorMessage(getString(bn(P)), (("NFT " + je.name) + " is orphaned"))
17131713 if ((jh != c))
17141714 then throw((aC + " is not yours"))
17151715 else {
17161716 let ji = split(je.description, "_")
17171717 $Tuple4(jd, P, ji, jg)
17181718 }
17191719 }
17201720
17211721
17221722 func jj (c,eu,iZ,ja) = if ((0 > eu))
17231723 then throw("Negative amount")
17241724 else {
17251725 let fM = iY(c, iZ, ja)
17261726 let ds = fM._3[cX]
17271727 let gs = gy(fM._3[cY])
17281728 let gC = (lastBlock.timestamp - fM._4)
17291729 if ((0 > gC))
17301730 then throw(((("Saved timestamp is in future, saved = " + toString(fM._4)) + ", current = ") + toString(lastBlock.timestamp)))
17311731 else {
17321732 let iU = dr(ds)
17331733 let jk = iT(fM._2, iU)
17341734 let jl = fraction(gC, (jk * iU), a)
17351735 if ((eu > jl))
17361736 then throw(((("Not enough resources, available = " + toString(jl)) + ", requested = ") + toString(eu)))
17371737 else {
17381738 let jm = fraction((jl - eu), a, (jk * iU))
17391739 let jn = (lastBlock.timestamp - jm)
17401740 let hL = (iU / cu)
17411741 let gK = gG(gs, (gC - jm), hL, jk)
17421742 let hK = bw(fM._2)
17431743 let hM = valueOrElse(getInteger(bx(fM._2)), 0)
17441744 let hB = hJ(hK, hL, hM)
17451745 let hS = split(hB[bb], "_")
17461746 let gL = parseIntValue(hS[be])
17471747 if (if ((iZ == el))
17481748 then (eu > gL)
17491749 else false)
17501750 then throw((("Only " + toString(gL)) + " space left in warehouse"))
17511751 else {
17521752 let hx = bH(fM._1)
17531753 let ia = hw(hx)
17541754 let gJ = split(ia[bh], "_")
17551755 let gI = split(hB[aY], "_")
17561756 let jo = if ((iZ == el))
17571757 then $Tuple4(gA(gI, gs, (gC - jm), hL, jk), ia[bh], (parseIntValue(hS[bd]) + gK._2), (parseIntValue(hS[be]) - gK._2))
17581758 else if ((iZ == em))
17591759 then $Tuple4(hB[aY], gA(gJ, gs, (gC - jm), hL, jk), parseIntValue(hS[bd]), parseIntValue(hS[be]))
17601760 else {
17611761 let jp = gH(gI, gJ, gK, gL)
17621762 let jq = min([parseIntValue(hS[be]), gK._2])
17631763 $Tuple4(jp._1, jp._2, (parseIntValue(hS[bd]) + jq), (parseIntValue(hS[be]) - jq))
17641764 }
17651765 let jr = jo._1
17661766 let js = jo._2
17671767 let jt = jo._3
17681768 let ju = jo._4
17691769 $Tuple5([IntegerEntry(bq(fM._2), jn), IntegerEntry(bt(aC, fM._2, c), jn)], hx, [ia[bg], js, ia[bi], ia[bj]], hK, [hB[aX], jr, hB[aZ], hB[ba], makeString([hS[bc], toString(jt), toString(ju), hS[bf]], "_")])
17701770 }
17711771 }
17721772 }
17731773 }
17741774
17751775
17761776 func jv (c,P,iU,iZ) = {
17771777 let jf = bq(P)
17781778 let jg = value(getInteger(jf))
17791779 let jl = (fraction((lastBlock.timestamp - jg), iT(P, iU), a) * iU)
17801780 jj(c, jl, iZ, P)
17811781 }
17821782
17831783
17841784 func jw (eQ,iv,jx,P) = {
17851785 let c = toString(iv)
17861786 let fM = iY(c, en, P)
17871787 let iU = dr(fM._3[cX])
17881788 let jy = bx(fM._2)
17891789 let jz = valueOrElse(getInteger(jy), 0)
17901790 if (if (!(cj))
17911791 then (jz >= 3)
17921792 else false)
17931793 then throw("Currently max infrastructure level = 3")
17941794 else {
17951795 let jA = ((sqrt(iU, 0, 0, DOWN) / 5) + 2)
17961796 let al = (jz + 1)
17971797 if (if (cj)
17981798 then (al > jA)
17991799 else false)
18001800 then throw(("Currently max infrastructure level = " + toString(jA)))
18011801 else {
18021802 let jB = fraction(dQ, (iU * al), cu)
18031803 if (if (!(eQ))
18041804 then (jx != jB)
18051805 else false)
18061806 then throw(("Payment attached should be " + toString(jB)))
18071807 else {
18081808 let hx = bH(fM._1)
18091809 let ia = hw(hx)
18101810 let jC = split(ia[bi], "_")
18111811 let jD = fraction(cp, (iU * al), cu)
18121812 let jE = makeString(eP(eQ, jC, jD), "_")
18131813 let jF = jv(c, fM._2, iU, en)
18141814 let jG = jF._5
18151815 let jH = hy(jG[aX])
18161816 let jI = makeString([split(jG[aX], "_")[0], toString(al)], "_")
18171817 let jJ = hy(jI)
18181818 let hS = split(jG[bb], "_")
18191819 let jK = makeString([hS[bc], hS[bd], toString(((parseIntValue(hS[be]) + jJ) - jH)), toString(jJ)], "_")
18201820 $Tuple3(([IntegerEntry(jy, al), IntegerEntry(eg(fM._2, c), al), StringEntry(hx, makeString([ia[bg], jF._3[bh], jE, ia[bj]], ":")), StringEntry(jF._4, makeString([jI, jG[aY], jG[aZ], jG[ba], jK], ":"))] ++ jF._1), al, jD)
18211821 }
18221822 }
18231823 }
18241824 }
18251825
18261826
18271827 func jL (A,jM) = {
18281828 let jN = D(A)
18291829 let jO = C(A)
18301830 let af = valueOrElse(getInteger(an, jO), 0)
18311831 let ak = (af + jM)
18321832 let jP = ai(valueOrElse(getInteger(an, jN), 0), ak)
18331833 let jQ = E(A)
18341834 $Tuple2([IntegerEntry(jN, jP[0]), IntegerEntry(jO, ak), IntegerEntry(jQ, (valueOrElse(getInteger(jQ), 0) + jP[1]))], ak)
18351835 }
18361836
18371837
18381838 func jR (c,jM) = {
18391839 let jN = H(c)
18401840 let jO = G(c)
18411841 let af = valueOrElse(getInteger(an, jO), 0)
18421842 let ak = (af + jM)
18431843 let jP = ai(valueOrElse(getInteger(an, jN), 0), ak)
18441844 let jQ = I(c)
18451845 $Tuple2([IntegerEntry(jN, jP[0]), IntegerEntry(jO, ak), IntegerEntry(jQ, (valueOrElse(getInteger(jQ), 0) + jP[1]))], ak)
18461846 }
18471847
18481848
18491849 func jS (c) = {
18501850 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
18511851 let jT = bB(c)
18521852 let jU = getString(jT)
18531853 if (!(isDefined(jU)))
18541854 then throw("You are not eligible for ONBOARD artifact")
18551855 else {
18561856 let jV = bD(c)
18571857 let jW = getString(jV)
18581858 if (isDefined(jW))
18591859 then throw(("You already used your ONBOARD artifact on duck " + value(jW)))
18601860 else {
18611861 let jX = bC(A)
18621862 let jY = getString(jX)
18631863 if (isDefined(jY))
18641864 then throw(((("The duck " + A) + " already got points from ONBOARD artifact from user ") + value(jY)))
18651865 else ([StringEntry(jV, A), StringEntry(jX, c)] ++ jL(A, ac)._1)
18661866 }
18671867 }
18681868 }
18691869
18701870
18711871 func jZ (c,ja) = {
18721872 let fM = iY(c, en, ja)
18731873 let P = fM._2
18741874 let iU = dr(fM._3[cX])
18751875 let ka = br(aE, P)
18761876 if ((valueOrElse(getInteger(ka), 0) > 0))
18771877 then throw("Presale artifact is already activated")
18781878 else if ((parseIntValue(fM._3[cW]) > ea))
18791879 then throw((((aC + " ") + P) + " is not eligible for presale artifact"))
18801880 else {
18811881 let jF = jv(c, P, iU, en)
18821882 (((jF._1 :+ IntegerEntry(ka, iU)) :+ StringEntry(jF._2, makeString(jF._3, ":"))) :+ StringEntry(jF._4, makeString(jF._5, ":")))
18831883 }
18841884 }
18851885
18861886
18871887 func kb (A) = {
18881888 let cd = valueOrElse(getInteger(cU, bO), 0)
18891889 let jc = split(valueOrElse(getString(bI(A)), aJ), "_")
18901890 let ax = lastBlock.timestamp
18911891 let cf = bX(cU, cd)
18921892 let bZ = cf[bT]
18931893 let ca = cf[bU]
18941894 if ((jc[bl] != "T"))
18951895 then false
18961896 else if (if (if ((parseIntValue(jc[bk]) == cd))
18971897 then (ca[bW] == "INPROGRESS")
18981898 else false)
18991899 then (parseIntValue(bZ[bV]) > ax)
19001900 else false)
19011901 then throw("Your duck is taking part in the tournament")
19021902 else dq(invoke(this, "exitTournamentInternal", [A], nil))
19031903 }
19041904
19051905
19061906 func kc (A) = {
19071907 let jc = split(valueOrElse(getString(bI(A)), aJ), "_")
19081908 let ax = lastBlock.timestamp
19091909 if ((jc[bl] != "D"))
19101910 then false
19111911 else {
19121912 let kd = parseIntValue(jc[bk])
19131913 let ke = parseIntValue(jc[bm])
19141914 if (if ((ax > (kd + dN)))
19151915 then (3 > ke)
19161916 else false)
19171917 then throw("Your duck is on delivery mission")
19181918 else dq(invoke(this, "exitDeliveryInternal", [A], nil))
19191919 }
19201920 }
19211921
19221922
19231923 func kf (kg,al,kh,c,ki,kj) = {
19241924 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
19251925 if (kb(A))
19261926 then throw("mergeInternal_checkTournament")
19271927 else if (kc(A))
19281928 then throw("mergeInternal_checkDelivery")
19291929 else {
19301930 func kk (eD,P) = {
19311931 let je = value(assetInfo(fromBase58String(P)))
19321932 let jf = bq(P)
19331933 let jg = valueOrErrorMessage(getInteger(jf), (("NFT " + je.name) + " is not staked"))
19341934 let jh = valueOrErrorMessage(getString(bn(P)), (("NFT " + je.name) + " is orphaned"))
19351935 if ((jh != c))
19361936 then throw((aC + " is not yours"))
19371937 else {
19381938 let ji = split(je.description, "_")
19391939 let di = ji[cZ]
19401940 if (if ((eD._3 != ""))
19411941 then (eD._3 != di)
19421942 else false)
19431943 then throw("Lands should be on the same continent to merge")
19441944 else {
19451945 let ds = ji[cX]
19461946 let kl = eD._1
19471947 let gw = valueOrErrorMessage(indexOf(kl, ds), "You haven't passed all the lands needed")
19481948 let km = (take(kl, gw) + drop(kl, (gw + 1)))
19491949 let iU = dr(ds)
19501950 let kn = (eD._2 + valueOrElse(getInteger(br(aE, P)), 0))
19511951 let hM = valueOrElse(getInteger(bx(P)), 0)
19521952 let ko = {
19531953 let cn = ds
19541954 if (("S" == cn))
19551955 then 3
19561956 else if (("M" == cn))
19571957 then 4
19581958 else if (("L" == cn))
19591959 then 5
19601960 else if (("XL" == cn))
19611961 then 6
19621962 else throw("Only S, M, L, XL can merge")
19631963 }
19641964 if ((hM != ko))
19651965 then throw("All lands should be maxed to merge")
19661966 else {
19671967 let ef = ji[cW]
19681968 let gs = gy(ji[cY])
19691969 let gC = (lastBlock.timestamp - jg)
19701970 if ((0 > gC))
19711971 then throw(((("Saved timestamp is in future, saved = " + toString(jg)) + ", current = ") + toString(lastBlock.timestamp)))
19721972 else {
19731973 let jk = iT(P, iU)
19741974 let hL = (iU / cu)
19751975 let js = gA(split(eD._4, "_"), gs, gC, hL, jk)
19761976 let eN = gq(eD._6, gs, hL, -1)
19771977 let kp = gq(eD._10, gs, hL, -1)
19781978 let hg = gq(eD._9, gs, hL, 1)
19791979 let kq = eD._7
19801980 let cP = indexOf(kq, P)
19811981 if (!(isDefined(cP)))
19821982 then throw(("Your staked lands don't contain " + P))
19831983 else {
19841984 let kr = bp(P)
19851985 let ks = valueOrElse(getString(kr), "")
19861986 $Tuple10(km, kn, di, js, ((((((((((((eD._5 :+ DeleteEntry(bq(P))) :+ DeleteEntry(bt(aC, P, c))) :+ DeleteEntry(ee(ef))) :+ DeleteEntry(bn(P))) :+ DeleteEntry(bx(P))) :+ DeleteEntry(eg(P, c))) :+ DeleteEntry(br(aE, P))) :+ DeleteEntry(eh(ef))) :+ DeleteEntry(bw(P))) :+ DeleteEntry(kr)) :+ Burn(fromBase58String(P), 1)) ++ (if ((ks != ""))
19871987 then [DeleteEntry(ec(ks))]
19881988 else nil)), eN, removeByIndex(kq, value(cP)), (eD._8 + iU), hg, kp)
19891989 }
19901990 }
19911991 }
19921992 }
19931993 }
19941994 }
19951995
19961996 let hx = bH(A)
19971997 let ia = hw(hx)
19981998 let gr = split(valueOrElse(getString(dg()), "0_0_0_0_0_0"), "_")
19991999 let kt = dj(c)
20002000 let ku = getString(kt)
20012001 let kv = if (isDefined(ku))
20022002 then split_51C(value(ku), "_")
20032003 else nil
20042004 let kw = split(value(assetInfo(fromBase58String(ki[0]))).description, "_")[cZ]
20052005 let kx = split(valueOrElse(getString(dh(kw)), "0_0_0_0_0_0"), "_")
20062006 let eO = {
20072007 let eF = ki
20082008 let eG = size(eF)
20092009 let eH = $Tuple10(kh, 0, "", ia[bh], nil, gr, kv, 0, split("0_0_0_0_0_0", "_"), kx)
20102010 func eI (eJ,eK) = if ((eK >= eG))
20112011 then eJ
20122012 else kk(eJ, eF[eK])
20132013
20142014 func eL (eJ,eK) = if ((eK >= eG))
20152015 then eJ
20162016 else throw("List size exceeds 5")
20172017
20182018 eL(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5)
20192019 }
20202020 let di = eO._3
20212021 let ha = valueOrErrorMessage(indexOf(aO, di), ("Unknown continent: " + di))
20222022 let gz = hf(eO._9, (dr(kg) / cu))
20232023 let iy = valueOrElse(getInteger(eb()), (ea + 1))
20242024 let ky = toString(iy)
20252025 let iz = Issue(es(ky, kg), makeString([ky, kg, gz, di], "_"), 1, 0, false)
20262026 let bo = calculateAssetId(iz)
20272027 let kz = toBase58String(bo)
20282028 let jE = makeString(eP((kj > 0), split(ia[bi], "_"), kj), "_")
20292029 let kA = dk(c)
20302030 let kB = valueOrElse(getInteger(kA), 0)
20312031 $Tuple2((((((((((((((((eO._5 :+ (if ((size(eO._7) > 0))
20322032 then StringEntry(kt, makeString_11C(eO._7, "_"))
20332033 else DeleteEntry(kt))) :+ IntegerEntry(kA, if ((eO._8 > kB))
20342034 then 0
20352035 else (kB - eO._8))) :+ IntegerEntry(eb(), (iy + 1))) :+ iz) :+ StringEntry(ee(ky), kz)) :+ StringEntry(bn(kz), c)) :+ StringEntry(eh(ky), c)) :+ IntegerEntry(br(aE, kz), eO._2)) :+ IntegerEntry(bx(kz), al)) :+ IntegerEntry(eg(kz, c), al)) :+ StringEntry(hx, makeString([ia[bg], eO._4, jE, ia[bj]], ":"))) :+ StringEntry(dg(), makeString(eO._6, "_"))) :+ StringEntry(dh(di), makeString(eO._10, "_"))) :+ StringEntry(bI(A), makeString([di, "L", kz], "_"))) :+ ScriptTransfer(addressFromStringValue(c), 1, bo)), kz)
20362036 }
20372037 }
20382038
20392039
20402040 func kC (c,ki) = kf("M", 3, "SSSS", c, ki, 0)
20412041
20422042
20432043 func kD (c,ki) = kf("L", 4, "SMM", c, ki, (cp * 4))
20442044
20452045
20462046 func kE (c,ki) = kf("XL", 5, "SSSML", c, ki, (cp * 47))
20472047
20482048
20492049 func kF (c,ki) = kf("XXL", 6, "LXL", c, ki, (cp * 54))
20502050
20512051
20522052 func kG (c,ki) = {
20532053 let cn = size(ki)
20542054 if ((4 == cn))
20552055 then kC(c, ki)
20562056 else if ((3 == cn))
20572057 then kD(c, ki)
20582058 else if ((5 == cn))
20592059 then kE(c, ki)
20602060 else if ((2 == cn))
20612061 then kF(c, ki)
20622062 else throw("Unknown merge")
20632063 }
20642064
20652065
20662066 func kH (gw) = if (if ((gw.originCaller != cQ))
20672067 then valueOrElse(getBoolean(du()), false)
20682068 else false)
20692069 then throw("Contracts are under maintenance")
20702070 else StringEntry(dv(toString(gw.originCaller)), toBase58String(gw.transactionId))
20712071
20722072
20732073 @Callable(gw)
20742074 func constructorV1 (kI) = if ((gw.caller != this))
20752075 then throw("Permission denied")
20762076 else [StringEntry(cK(), kI)]
20772077
20782078
20792079
20802080 @Callable(gw)
20812081 func setBlocked (kJ) = if ((gw.caller != this))
20822082 then throw("permission denied")
20832083 else [BooleanEntry(du(), kJ)]
20842084
20852085
20862086
20872087 @Callable(gw)
20882088 func stakeLand () = {
20892089 let kK = kH(gw)
20902090 if ((size(gw.payments) != 1))
20912091 then throw("Exactly one payment required")
20922092 else {
20932093 let kL = value(gw.payments[0])
20942094 let bo = value(kL.assetId)
20952095 let cB = toString(gw.caller)
20962096 if ((kL.amount != 1))
20972097 then throw((("NFT " + aC) + " token should be attached as payment"))
20982098 else {
20992099 let je = value(assetInfo(bo))
21002100 if ((je.issuer != this))
21012101 then throw("Unknown issuer of token")
21022102 else if (!(contains(je.name, aC)))
21032103 then throw((("Only NFT " + aC) + " tokens are accepted"))
21042104 else {
21052105 let kM = drop(je.name, 4)
21062106 let ef = if (contains(kM, "XXL"))
21072107 then dropRight(kM, 3)
21082108 else if (contains(kM, "XL"))
21092109 then dropRight(kM, 2)
21102110 else dropRight(kM, 1)
21112111 if (!(isDefined(parseInt(ef))))
21122112 then throw(("Cannot parse land number from " + je.name))
21132113 else {
21142114 let P = toBase58String(bo)
21152115 let jf = bq(P)
21162116 if (isDefined(getInteger(jf)))
21172117 then throw((("NFT " + je.name) + " is already staked"))
21182118 else {
21192119 let ji = split(je.description, "_")
21202120 let gs = gy(ji[cY])
21212121 let iU = dr(ji[cX])
21222122 let hL = (iU / cu)
21232123 let eN = gx(gs, hL, 1)
21242124 let kN = dh(ji[cZ])
21252125 let kx = split(valueOrElse(getString(kN), "0_0_0_0_0_0"), "_")
21262126 let kO = makeString(gq(kx, gs, hL, 1), "_")
21272127 let kt = dj(cB)
21282128 let ku = getString(kt)
21292129 let kq = if (isDefined(ku))
21302130 then split_51C(value(ku), "_")
21312131 else nil
21322132 if (containsElement(kq, P))
21332133 then throw(("Your staked lands already contain " + P))
21342134 else if ((size(kq) >= aG))
21352135 then throw((("Your already staked max (" + toString(aG)) + ") lands"))
21362136 else {
21372137 let hM = valueOrElse(getInteger(bx(P)), 0)
21382138 let kA = dk(cB)
21392139 let kP = valueOrElse(getInteger(kA), 0)
21402140 let kQ = invoke(cT, "onStakeUnstakeLand", [cB], nil)
21412141 $Tuple2([IntegerEntry(jf, lastBlock.timestamp), IntegerEntry(bt(aC, P, cB), lastBlock.timestamp), StringEntry(kt, makeString_11C((kq :+ P), "_")), IntegerEntry(kA, (kP + iU)), StringEntry(bn(P), cB), StringEntry(eh(ef), cB), IntegerEntry(eg(P, cB), hM), StringEntry(dg(), eN), StringEntry(kN, kO), kK], kQ)
21422142 }
21432143 }
21442144 }
21452145 }
21462146 }
21472147 }
21482148 }
21492149
21502150
21512151
21522152 @Callable(gw)
21532153 func unstakeLand (ja) = {
21542154 let kK = kH(gw)
21552155 if ((size(gw.payments) != 0))
21562156 then throw("No payments required")
21572157 else {
21582158 let c = toString(gw.caller)
21592159 let fM = iY(c, em, ja)
21602160 let P = fM._2
21612161 let ji = fM._3
21622162 let kt = dj(c)
21632163 let gs = gy(ji[cY])
21642164 let iU = dr(ji[cX])
21652165 let hL = (iU / cu)
21662166 let eN = gx(gs, hL, -1)
21672167 let kN = dh(ji[cZ])
21682168 let kx = split(valueOrElse(getString(kN), "0_0_0_0_0_0"), "_")
21692169 let kO = makeString(gq(kx, gs, hL, -1), "_")
21702170 let jF = jv(c, P, iU, em)
21712171 let kq = split_51C(valueOrElse(getString(kt), ""), "_")
21722172 let cP = indexOf(kq, P)
21732173 if (!(isDefined(cP)))
21742174 then throw(("Your staked lands don't contain " + P))
21752175 else {
21762176 let ax = lastBlock.timestamp
21772177 let kR = valueOrElse(getInteger(cS, bJ(c)), 0)
21782178 if ((kR >= ax))
21792179 then throw(("Your gWL are taking part in voting, cannot unstake until " + toString(kR)))
21802180 else {
21812181 let kS = (valueOrElse(getInteger(cT, b(c)), 0) + cq)
21822182 if ((kS > ax))
21832183 then throw(("Your staked lands took part in arbitrage, cannot unstake until " + toString(kS)))
21842184 else {
21852185 let kA = dk(c)
21862186 let kB = valueOrElse(getInteger(kA), 0)
21872187 let kT = if ((iU > kB))
21882188 then 0
21892189 else (kB - iU)
21902190 let kQ = invoke(cT, "onStakeUnstakeLand", [c], nil)
21912191 $Tuple2([ScriptTransfer(gw.caller, 1, fromBase58String(P)), DeleteEntry(bq(P)), DeleteEntry(bt(aC, P, c)), StringEntry(dg(), eN), StringEntry(kN, kO), StringEntry(jF._2, makeString(jF._3, ":")), if ((size(kq) > 1))
21922192 then StringEntry(kt, makeString_11C(removeByIndex(kq, value(cP)), "_"))
21932193 else DeleteEntry(kt), IntegerEntry(kA, kT), kK], kQ)
21942194 }
21952195 }
21962196 }
21972197 }
21982198 }
21992199
22002200
22012201
22022202 @Callable(gw)
22032203 func stakeDuck () = {
22042204 let kK = kH(gw)
22052205 if ((size(gw.payments) != 1))
22062206 then throw("Exactly one payment required")
22072207 else {
22082208 let kL = value(gw.payments[0])
22092209 let bo = value(kL.assetId)
22102210 let cB = toString(gw.caller)
22112211 if ((kL.amount != 1))
22122212 then throw((("NFT " + aD) + " token should be attached as payment"))
22132213 else {
22142214 let je = value(assetInfo(bo))
22152215 if (if ((je.issuer != dI))
22162216 then (je.issuer != dJ)
22172217 else false)
22182218 then throw((("Unknown issuer of " + aD) + " token"))
22192219 else if (!(contains(je.name, aD)))
22202220 then throw((("Only NFT " + aD) + " tokens are accepted"))
22212221 else {
22222222 let kU = toBase58String(bo)
22232223 let jf = bq(kU)
22242224 if (isDefined(getInteger(jf)))
22252225 then throw((("NFT " + je.name) + " is already staked"))
22262226 else if (isDefined(getString(bG(cB))))
22272227 then throw(("You already staked one duck: " + je.name))
22282228 else {
22292229 let kV = bI(kU)
22302230 let cc = getString(kV)
22312231 let hx = bH(kU)
22322232 let kW = getString(hx)
22332233 let iN = z(kU)
22342234 let iO = ag(valueOrElse(getInteger(D(kU)), 0))
22352235 let kX = valueOrElse(getInteger(iN), iO)
22362236 ([IntegerEntry(jf, lastBlock.timestamp), IntegerEntry(bt(aD, toBase58String(bo), cB), lastBlock.timestamp), StringEntry(bF(kU), cB), StringEntry(bG(cB), kU)] ++ (if (isDefined(cc))
22372237 then nil
22382238 else ([StringEntry(kV, aJ)] ++ (if (isDefined(kW))
22392239 then nil
22402240 else (([StringEntry(hx, "0:0_0_0_0_0_0:0_0_0_0_0_0:")] :+ IntegerEntry(iN, kX)) :+ kK)))))
22412241 }
22422242 }
22432243 }
22442244 }
22452245 }
22462246
22472247
22482248
22492249 @Callable(gw)
22502250 func unstakeDuck (kU) = {
22512251 let kK = kH(gw)
22522252 if ((size(gw.payments) != 0))
22532253 then throw("No payments required")
22542254 else {
22552255 let bo = fromBase58String(kU)
22562256 let cB = toString(gw.caller)
22572257 let je = value(assetInfo(bo))
22582258 let jf = bq(kU)
22592259 if (!(isDefined(getInteger(jf))))
22602260 then throw((("NFT " + je.name) + " is not staked"))
22612261 else if (!(isDefined(getString(bG(cB)))))
22622262 then throw((("The duck " + je.name) + " is not staked"))
22632263 else {
22642264 let jh = valueOrErrorMessage(getString(bF(kU)), (("NFT " + je.name) + " is orphaned"))
22652265 if ((jh != cB))
22662266 then throw("Staked NFT is not yours")
22672267 else if (kb(kU))
22682268 then throw("unstakeDuck_checkTournament")
22692269 else if (kc(kU))
22702270 then throw("unstakeDuck_checkDelivery")
22712271 else {
22722272 let iN = z(kU)
22732273 let iO = ag(valueOrElse(getInteger(D(kU)), 0))
22742274 let as = valueOrElse(getInteger(iN), iO)
22752275 if ((iO > as))
22762276 then throw((("Please heal your duck to " + toString(iO)) + "hp before unstaking"))
22772277 else [ScriptTransfer(gw.caller, 1, bo), DeleteEntry(jf), DeleteEntry(iN), DeleteEntry(bI(kU)), DeleteEntry(bF(kU)), DeleteEntry(bt(aD, kU, cB)), DeleteEntry(bG(cB)), kK]
22782278 }
22792279 }
22802280 }
22812281 }
22822282
22832283
22842284
22852285 @Callable(gw)
22862286 func claimRes (eu,kY) = {
22872287 let kK = kH(gw)
22882288 if ((size(gw.payments) != 0))
22892289 then throw("No payments required")
22902290 else {
22912291 let c = toString(gw.originCaller)
22922292 let eV = jj(c, eu, em, kY)
22932293 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
22942294 $Tuple2(((((eV._1 ++ jL(A, fraction(U, eu, ct))._1) :+ StringEntry(eV._2, makeString(eV._3, ":"))) :+ StringEntry(eV._4, makeString(eV._5, ":"))) :+ kK), eV._3[bh])
22952295 }
22962296 }
22972297
22982298
22992299
23002300 @Callable(gw)
23012301 func claimResToWH (eu,kY) = {
23022302 let kK = kH(gw)
23032303 if ((size(gw.payments) != 0))
23042304 then throw("No payments required")
23052305 else {
23062306 let c = toString(gw.originCaller)
23072307 let eV = jj(c, eu, el, kY)
23082308 $Tuple2(((((eV._1 ++ jR(c, fraction(U, eu, ct))._1) :+ StringEntry(eV._2, makeString(eV._3, ":"))) :+ StringEntry(eV._4, makeString(eV._5, ":"))) :+ kK), eV._5[aY])
23092309 }
23102310 }
23112311
23122312
23132313
23142314 @Callable(gw)
23152315 func flight (iC,iD) = {
23162316 let kK = kH(gw)
23172317 if ((size(gw.payments) != 0))
23182318 then throw("No payments required")
23192319 else {
23202320 let bK = toString(gw.caller)
23212321 let hb = iB(bK, iC, iD)
23222322 let iH = hb._1
23232323 let A = hb._2
23242324 let kV = bI(A)
23252325 let jc = valueOrElse(getString(kV), aJ)
23262326 let iJ = hb._4
23272327 if ((iJ == jc))
23282328 then throw("You can't fly to the same location")
23292329 else {
23302330 let kZ = split(iJ, "_")
23312331 let la = (kZ[bl] == "T")
23322332 let gj = F(A)
23332333 let lb = valueOrElse(getString(gj), ",;,_,;,_,;,_,;,_,;,_,;,")
23342334 let lc = eW(lb, hb._5)
23352335 let ld = lc._1
23362336 let le = lc._2
23372337 let lf = if (!(cb(cU, jc)))
23382338 then if (la)
23392339 then throw(((("Cheat attempt: oldLoc=" + jc) + ", newLoc=") + iJ))
23402340 else if ((iH > 0))
23412341 then iJ
23422342 else jc
23432343 else if (!(cb(cU, iJ)))
23442344 then throw("Your duck is taking part in the tournament")
23452345 else {
23462346 let lg = parseIntValue(kZ[bm])
23472347 let lh = split(jc, "_")
23482348 let cd = valueOrElse(getInteger(cU, bO), 0)
23492349 if ((lg != (parseIntValue(lh[bm]) + 1)))
23502350 then throw(((("Cheat attempt: oldLoc=" + jc) + ", newLoc=") + iJ))
23512351 else if ((iH > 0))
23522352 then {
23532353 let li = valueOrElse(getInteger(cU, bS(cd, A)), 0)
23542354 let lj = if ((lg > li))
23552355 then invoke(cU, "saveDuckResult", [A, lg], nil)
23562356 else unit
23572357 if ((lj == lj))
23582358 then iJ
23592359 else throw("Strict value is not equal to itself.")
23602360 }
23612361 else jc
23622362 }
23632363 $Tuple2(([StringEntry(kV, lf), StringEntry(gj, ld), IntegerEntry(z(A), iH), kK] ++ (if (le)
23642364 then [StringEntry(L(A), "0_0_0_0_0")]
23652365 else (nil ++ jL(A, if ((iH > 0))
23662366 then V
23672367 else W)._1))), hb._3)
23682368 }
23692369 }
23702370 }
23712371
23722372
23732373
23742374 @Callable(gw)
23752375 func heal (lk,ll,lm) = {
23762376 let kK = kH(gw)
23772377 if (if (if ((0 > lk))
23782378 then true
23792379 else (0 > ll))
23802380 then true
23812381 else (0 > lm))
23822382 then throw("Quantity cannot be negative")
23832383 else {
23842384 let A = valueOrErrorMessage(getString(bG(toString(gw.caller))), "You don't have a duck staked")
23852385 if (kb(A))
23862386 then throw("heal_checkTournament")
23872387 else if (kc(A))
23882388 then throw("heal_checkDelivery")
23892389 else {
23902390 let ln = [lk, ll, lm]
23912391 let iN = z(A)
23922392 let iO = ag(valueOrElse(getInteger(D(A)), 0))
23932393 let lo = valueOrElse(getInteger(iN), iO)
23942394 if ((lo >= iO))
23952395 then throw((("HP should be < " + toString(iO)) + " to heal"))
23962396 else {
23972397 let hx = bH(A)
23982398 let ia = hw(hx)
23992399 let lp = if ((ia[bj] == ""))
24002400 then nil
24012401 else split_4C(ia[bj], "_")
24022402 func lq (eD,ch) = {
24032403 let dp = eD._2
24042404 let gS = if ((size(lp) > dp))
24052405 then parseIntValue(lp[dp])
24062406 else 0
24072407 if ((3 > dp))
24082408 then {
24092409 let lr = ln[dp]
24102410 if ((lr > gS))
24112411 then throw(((("You have only " + toString(gS)) + " of ") + aN[dp]))
24122412 else $Tuple3((eD._1 :+ toString((gS - lr))), (dp + 1), (eD._3 + (parseIntValue(split(ch, "_")[aT]) * lr)))
24132413 }
24142414 else $Tuple3((eD._1 :+ toString(gS)), (dp + 1), eD._3)
24152415 }
24162416
24172417 let eV = {
24182418 let eF = aR
24192419 let eG = size(eF)
24202420 let eH = $Tuple3(nil, 0, 0)
24212421 func eI (eJ,eK) = if ((eK >= eG))
24222422 then eJ
24232423 else lq(eJ, eF[eK])
24242424
24252425 func eL (eJ,eK) = if ((eK >= eG))
24262426 then eJ
24272427 else throw("List size exceeds 50")
24282428
24292429 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
24302430 }
24312431 let ls = min([iO, (lo + eV._3)])
24322432 $Tuple2(([IntegerEntry(iN, ls), StringEntry(hx, makeString_2C([ia[bg], ia[bh], ia[bi], makeString(eV._1, "_")], ":")), kK] ++ jL(A, (ad * ((lk + ll) + lm)))._1), ls)
24332433 }
24342434 }
24352435 }
24362436 }
24372437
24382438
24392439
24402440 @Callable(gw)
24412441 func healES () = {
24422442 let kK = kH(gw)
24432443 if ((size(gw.payments) != 1))
24442444 then throw("Exactly one payment required")
24452445 else {
24462446 let kL = value(gw.payments[0])
24472447 if ((kL.assetId != cm))
24482448 then throw("Allowed USDT payment only!")
24492449 else {
24502450 let A = valueOrErrorMessage(getString(bG(toString(gw.caller))), "You don't have a duck staked")
24512451 if (kb(A))
24522452 then throw("healES_checkTournament")
24532453 else if (kc(A))
24542454 then throw("healES_checkDelivery")
24552455 else {
24562456 let iN = z(A)
24572457 let iO = ag(valueOrElse(getInteger(D(A)), 0))
24582458 let lo = valueOrElse(getInteger(iN), iO)
24592459 if ((lo > 0))
24602460 then throw("HP should be 0 to call Emergency Service")
24612461 else {
24622462 let hx = bH(A)
24632463 let ia = hw(hx)
24642464 let lp = if ((ia[bj] == ""))
24652465 then nil
24662466 else split_4C(ia[bj], "_")
24672467 let lt = if ((size(lp) > 0))
24682468 then parseIntValue(lp[0])
24692469 else 0
24702470 let lu = if ((size(lp) > 1))
24712471 then parseIntValue(lp[1])
24722472 else 0
24732473 let lv = if ((size(lp) > 2))
24742474 then parseIntValue(lp[2])
24752475 else 0
24762476 if (if (if ((lt > 0))
24772477 then true
24782478 else (lu > 0))
24792479 then true
24802480 else (lv > 0))
24812481 then throw("You have to use own Medical Kit")
24822482 else {
24832483 let lw = getString(cR, bL())
24842484 let lx = if (isDefined(lw))
24852485 then split_4C(value(lw), "_")
24862486 else nil
24872487 let ly = if ((size(lx) > 0))
24882488 then parseIntValue(lx[0])
24892489 else 0
24902490 if ((0 >= ly))
24912491 then throw("There are no Medical Kits L1 at Emergency Service storage")
24922492 else {
24932493 let ls = (lo + parseIntValue(split(aR[0], "_")[aT]))
24942494 let lz = makeString([toString((ly - 1)), removeByIndex(lx, 0)], "_")
24952495 let ch = split(aR[0], "_")
24962496 let lA = cg(ch)
24972497 let lB = fraction((lA * aL), aK, (ct * aW))
24982498 if ((kL.amount != lB))
24992499 then throw(("Payment attached should be " + toString(lB)))
25002500 else {
25012501 let eV = dl(invoke(cR, "updateEsStorage", [lz], [AttachedPayment(cm, lB)]))
25022502 $Tuple2(([IntegerEntry(iN, ls), kK] ++ jL(A, X)._1), eV)
25032503 }
25042504 }
25052505 }
25062506 }
25072507 }
25082508 }
25092509 }
25102510 }
25112511
25122512
25132513
25142514 @Callable(gw)
25152515 func updateBackpack (A,lC) = if ((gw.caller != cR))
25162516 then throw("permission denied")
25172517 else $Tuple2([StringEntry(bH(A), lC)], lC)
25182518
25192519
25202520
25212521 @Callable(gw)
25222522 func commitForRandom () = {
25232523 let kK = kH(gw)
25242524 let lD = (height + de)
25252525 let c = toString(gw.caller)
25262526 $Tuple2(([IntegerEntry(df(c), lD)] :+ kK), lD)
25272527 }
25282528
25292529
25302530
25312531 @Callable(gw)
25322532 func awardSLand (cB) = if ((gw.caller != cU))
25332533 then throw("Access denied")
25342534 else if ((size(gw.payments) != 0))
25352535 then throw("No payments required")
25362536 else {
25372537 let eV = iu(addressFromStringValue(cB), gw.transactionId)
25382538 $Tuple2(eV._1, eV._2._1)
25392539 }
25402540
25412541
25422542
25432543 @Callable(gw)
25442544 func buySLand () = {
25452545 let kK = kH(gw)
25462546 if ((size(gw.payments) != 1))
25472547 then throw("Exactly one payment required")
25482548 else {
25492549 let kL = value(gw.payments[0])
25502550 if ((kL.assetId != cm))
25512551 then throw("Allowed USDT payment only!")
25522552 else if ((kL.amount != dS))
25532553 then throw(("Payment attached should be " + toString(dS)))
25542554 else {
25552555 let eV = iu(gw.caller, gw.transactionId)
25562556 let lE = do(invoke(cV, "burnAcres", [dT], nil))
25572557 $Tuple2((((eV._1 :+ ScriptTransfer(cR, kL.amount, cm)) ++ jR(toString(gw.caller), Z)._1) :+ kK), $Tuple2(eV._2._1, lE))
25582558 }
25592559 }
25602560 }
25612561
25622562
25632563
25642564 @Callable(gw)
25652565 func expedition (iC,iD) = {
25662566 let kK = kH(gw)
25672567 if ((size(gw.payments) != 0))
25682568 then throw("No payments required")
25692569 else {
25702570 let bK = toString(gw.caller)
25712571 let hb = iB(bK, iC, iD)
25722572 let A = hb._2
25732573 let iN = z(A)
25742574 let hx = bH(A)
25752575 let ia = hw(hx)
25762576 let jC = split(ia[bi], "_")
25772577 let jE = makeString(eP(true, jC, dR), "_")
25782578 let gj = F(A)
25792579 let lb = valueOrElse(getString(gj), ",;,_,;,_,;,_,;,_,;,_,;,")
25802580 let lF = eW(lb, hb._5)
25812581 let ld = lF._1
25822582 let le = lF._2
25832583 let lG = iu(gw.caller, gw.transactionId)
25842584 let iA = lG._2._1
25852585 let eV = if ((0 >= hb._1))
25862586 then $Tuple3([IntegerEntry(iN, 0), StringEntry(gj, ld)], "", 0)
25872587 else $Tuple3((lG._1 ++ (if (le)
25882588 then [StringEntry(L(A), "0_0_0_0_0")]
25892589 else ((((nil :+ StringEntry(bI(A), makeString([lG._2._2, "L", iA], "_"))) :+ IntegerEntry(iN, hb._1)) :+ StringEntry(gj, ld)) :+ StringEntry(hx, makeString([ia[bg], ia[bh], jE, ia[bj]], ":"))))), iA, hb._3)
25902590 if (kb(A))
25912591 then throw("expedition_checkTournament")
25922592 else if (kc(A))
25932593 then throw("expedition_checkDelivery")
25942594 else {
25952595 let lE = do(invoke(cV, "burnAcres", [dT], nil))
25962596 $Tuple2(((eV._1 ++ jL(A, Z)._1) :+ kK), $Tuple3(eV._2, eV._3, lE))
25972597 }
25982598 }
25992599 }
26002600
26012601
26022602
26032603 @Callable(gw)
26042604 func buySLandForAcres () = {
26052605 let kK = kH(gw)
26062606 if ((size(gw.payments) != 1))
26072607 then throw("exactly 1 payment must be attached")
26082608 else {
26092609 let kL = gw.payments[0]
26102610 let fc = kL.amount
26112611 if (if (!(isDefined(kL.assetId)))
26122612 then true
26132613 else (value(kL.assetId) != dd))
26142614 then throw("ACRES payments only!")
26152615 else if ((fc != dT))
26162616 then throw(("Payment attached should be " + toString(dT)))
26172617 else {
26182618 let eV = iu(gw.caller, gw.transactionId)
26192619 let lE = do(invoke(cV, "burnAcres", [dT], [AttachedPayment(dd, fc)]))
26202620 $Tuple2((((eV._1 :+ ScriptTransfer(cR, kL.amount, cm)) ++ jR(toString(gw.caller), Z)._1) :+ kK), $Tuple2(eV._2._1, lE))
26212621 }
26222622 }
26232623 }
26242624
26252625
26262626
26272627 @Callable(gw)
26282628 func upgradeInfra (P) = {
26292629 let kK = kH(gw)
26302630 if ((size(gw.payments) != 0))
26312631 then throw("No payments required")
26322632 else {
26332633 let eV = jw(true, gw.caller, 0, P)
26342634 let A = valueOrErrorMessage(getString(bG(toString(gw.caller))), "You don't have a duck staked")
26352635 $Tuple2(((eV._1 :+ kK) ++ jL(A, fraction(aa, eV._3, ct))._1), eV._2)
26362636 }
26372637 }
26382638
26392639
26402640
26412641 @Callable(gw)
26422642 func activateArtifact (lH,lI) = {
26432643 let kK = kH(gw)
26442644 if ((size(gw.payments) != 0))
26452645 then throw("No payments required")
26462646 else {
26472647 let c = toString(gw.caller)
26482648 let eV = {
26492649 let cn = lH
26502650 if (("PRESALE" == cn))
26512651 then jZ(c, lI)
26522652 else if (("ONBOARD" == cn))
26532653 then jS(c)
26542654 else throw("Unknown artifact")
26552655 }
26562656 (eV :+ kK)
26572657 }
26582658 }
26592659
26602660
26612661
26622662 @Callable(gw)
26632663 func mergeLands (ki) = {
26642664 let kK = kH(gw)
26652665 if ((size(gw.payments) != 0))
26662666 then throw("No payments required")
26672667 else {
26682668 let eV = kG(toString(gw.caller), ki)
26692669 $Tuple2(((eV._1 :+ kK) ++ jR(toString(gw.caller), ab)._1), eV._2)
26702670 }
26712671 }
26722672
26732673
26742674
26752675 @Callable(gw)
26762676 func cargoExchange (lJ,P) = {
26772677 let kK = kH(gw)
26782678 if ((size(gw.payments) != 0))
26792679 then throw("No payments required")
26802680 else {
26812681 let hZ = split_4C(lJ, ":")
26822682 let c = toString(gw.originCaller)
26832683 let je = value(assetInfo(fromBase58String(P)))
26842684 let jf = bq(P)
26852685 if (!(isDefined(getInteger(jf))))
26862686 then throw((je.name + " is not staked"))
26872687 else {
26882688 let jh = valueOrErrorMessage(getString(bn(P)), (("NFT " + je.name) + " is orphaned"))
26892689 if ((jh != c))
26902690 then throw((aC + " is not yours"))
26912691 else {
26922692 let hL = (dr(split(je.description, "_")[cX]) / cu)
26932693 let hM = valueOrElse(getInteger(bx(P)), 0)
26942694 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
26952695 let jc = valueOrElse(getString(bI(A)), aJ)
26962696 let ce = split(value(jc), "_")
26972697 if ((ce[bl] != "L"))
26982698 then throw((("Duck location type is " + ce[bl]) + ", but should be L"))
26992699 else if ((ce[bm] != P))
27002700 then throw(("Duck should be on the land " + P))
27012701 else {
27022702 let hK = bw(P)
27032703 let hB = hJ(hK, hL, hM)
27042704 let hx = bH(A)
27052705 let ia = hw(hx)
27062706 let eV = hY(hZ, hB, ia)
27072707 let hS = split(hB[bb], "_")
27082708 let jt = (parseIntValue(hS[bd]) + eV._7)
27092709 let ju = (parseIntValue(hS[be]) - eV._7)
27102710 [StringEntry(hx, makeString_2C([ia[bg], eV._4, eV._5, eV._6], ":")), StringEntry(hK, makeString_2C([hB[aX], eV._1, eV._2, eV._3, makeString([hS[bc], toString(jt), toString(ju), hS[bf]], "_")], ":")), kK]
27112711 }
27122712 }
27132713 }
27142714 }
27152715 }
27162716
27172717
27182718
27192719 @Callable(gw)
27202720 func saveWarehouse (hO,P) = if ((gw.caller != cR))
27212721 then throw("Access denied")
27222722 else {
27232723 let hK = bw(P)
27242724 let hP = split_4C(hO, ":")
27252725 if ((size(hP) != 5))
27262726 then throw("warehouse string should contain 4 ':' separators")
27272727 else {
27282728 let lK = split(hP[bb], "_")[bc]
27292729 let jt = hA(hP)
27302730 let lL = hy(hP[aX])
27312731 let ju = ((lL - parseIntValue(lK)) - jt)
27322732 let lM = makeString_2C([hP[aX], hP[aY], hP[aZ], hP[ba], makeString([lK, toString(jt), toString(ju), toString(lL)], "_")], ":")
27332733 $Tuple2([StringEntry(hK, lM)], lM)
27342734 }
27352735 }
27362736
27372737
27382738
27392739 @Callable(gw)
27402740 func fixWarehouseFormat (P) = if ((gw.caller != cQ))
27412741 then throw("Access denied")
27422742 else {
27432743 let hK = bw(P)
27442744 let je = value(assetInfo(fromBase58String(P)))
27452745 let hL = (dr(split(je.description, "_")[cX]) / cu)
27462746 let hM = valueOrElse(getInteger(bx(P)), 0)
27472747 let hP = hJ(hK, hL, hM)
27482748 let lK = do(invoke(cR, "recalcLockedVolumeREADONLY", [P, hP], nil))
27492749 let jt = hA(hP)
27502750 let lL = hy(hP[aX])
27512751 let ju = ((lL - lK) - jt)
27522752 let lM = makeString_2C([hP[aX], hP[aY], hP[aZ], hP[ba], makeString([toString(lK), toString(jt), toString(ju), toString(lL)], "_")], ":")
27532753 $Tuple2([StringEntry(hK, lM)], lM)
27542754 }
27552755
27562756
27572757
27582758 @Callable(gw)
27592759 func fixContinentProportions (ki) = if ((gw.caller != cQ))
27602760 then throw("Access denied")
27612761 else {
27622762 func lN (eD,lO) = (eD :+ valueOrElse(getString(dh(lO)), "0_0_0_0_0_0"))
27632763
27642764 let gg = {
27652765 let eF = aO
27662766 let eG = size(eF)
27672767 let eH = nil
27682768 func eI (eJ,eK) = if ((eK >= eG))
27692769 then eJ
27702770 else lN(eJ, eF[eK])
27712771
27722772 func eL (eJ,eK) = if ((eK >= eG))
27732773 then eJ
27742774 else throw("List size exceeds 5")
27752775
27762776 eL(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5)
27772777 }
27782778 func lP (eD,P) = {
27792779 let je = value(assetInfo(fromBase58String(P)))
27802780 let ji = split(je.description, "_")
27812781 let hL = (dr(ji[cX]) / cu)
27822782 let lO = ji[cZ]
27832783 let gs = gy(ji[cY])
27842784 let ha = value(indexOf(aO, lO))
27852785 let kx = split(eD[ha], "_")
27862786 let lQ = makeString(gq(kx, gs, hL, 1), "_")
27872787 let cn = lO
27882788 if (("Americas" == cn))
27892789 then [lQ, eD[1], eD[2], eD[3], eD[4]]
27902790 else if (("Europe" == cn))
27912791 then [eD[0], lQ, eD[2], eD[3], eD[4]]
27922792 else if (("Asia" == cn))
27932793 then [eD[0], eD[1], lQ, eD[3], eD[4]]
27942794 else if (("Africa" == cn))
27952795 then [eD[0], eD[1], eD[2], lQ, eD[4]]
27962796 else if (("Oceania" == cn))
27972797 then [eD[0], eD[1], eD[2], eD[3], lQ]
27982798 else throw("wrong continent")
27992799 }
28002800
28012801 let eO = {
28022802 let eF = ki
28032803 let eG = size(eF)
28042804 let eH = gg
28052805 func hr (eJ,eK) = if ((eK >= eG))
28062806 then eJ
28072807 else lP(eJ, eF[eK])
28082808
28092809 func hs (eJ,eK) = if ((eK >= eG))
28102810 then eJ
28112811 else throw("List size exceeds 100")
28122812
28132813 hs(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(hr(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
28142814 }
28152815 $Tuple2([StringEntry(dh("Americas"), eO[0]), StringEntry(dh("Europe"), eO[1]), StringEntry(dh("Asia"), eO[2]), StringEntry(dh("Africa"), eO[3]), StringEntry(dh("Oceania"), eO[4])], 0)
28162816 }
28172817
28182818
28192819
28202820 @Callable(gw)
28212821 func fixStakedPieces (cB) = if ((gw.caller != cQ))
28222822 then throw("Access denied")
28232823 else {
28242824 let kB = if ((cB == ""))
28252825 then 0
28262826 else {
28272827 let ku = getString(an, dj(cB))
28282828 let kq = if (isDefined(ku))
28292829 then split_51C(value(ku), "_")
28302830 else nil
28312831 func lR (eD,P) = {
28322832 let je = value(assetInfo(fromBase58String(P)))
28332833 let ds = split(je.description, "_")[cX]
28342834 (eD + dr(ds))
28352835 }
28362836
28372837 let eF = kq
28382838 let eG = size(eF)
28392839 let eH = 0
28402840 func eI (eJ,eK) = if ((eK >= eG))
28412841 then eJ
28422842 else lR(eJ, eF[eK])
28432843
28442844 func eL (eJ,eK) = if ((eK >= eG))
28452845 then eJ
28462846 else throw("List size exceeds 100")
28472847
28482848 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50), 51), 52), 53), 54), 55), 56), 57), 58), 59), 60), 61), 62), 63), 64), 65), 66), 67), 68), 69), 70), 71), 72), 73), 74), 75), 76), 77), 78), 79), 80), 81), 82), 83), 84), 85), 86), 87), 88), 89), 90), 91), 92), 93), 94), 95), 96), 97), 98), 99), 100)
28492849 }
28502850 $Tuple2([IntegerEntry(dk(cB), kB)], kB)
28512851 }
28522852
28532853
28542854
28552855 @Callable(gw)
28562856 func setCustomName (bo,ks,bs) = {
28572857 let kK = kH(gw)
28582858 if ((size(gw.payments) != 1))
28592859 then throw("Exactly one payment required")
28602860 else {
28612861 let kL = value(gw.payments[0])
28622862 if ((kL.assetId != cm))
28632863 then throw("Allowed USDT payment only!")
28642864 else if ((kL.amount != dO))
28652865 then throw(("Payment should be " + toString(dO)))
28662866 else if (contains(ks, "__"))
28672867 then throw(("Name should not contain '__': " + ks))
28682868 else if ((size(ks) > dP))
28692869 then throw(("Name too long, maxLength=" + toString(dP)))
28702870 else {
28712871 let c = toString(gw.originCaller)
28722872 let lS = {
28732873 let cn = bs
28742874 if (("ACCOUNT" == cn))
28752875 then {
28762876 let lT = ej(ks)
28772877 let lU = getString(lT)
28782878 if (isDefined(lU))
28792879 then throw(("Name already registered: " + ks))
28802880 else {
28812881 let lV = bA(c)
28822882 let lW = getString(lV)
28832883 let lX = if (isDefined(lW))
28842884 then [DeleteEntry(ej(value(lW)))]
28852885 else nil
28862886 (((lX :+ StringEntry(lV, ks)) :+ StringEntry(lT, c)) ++ jR(c, Y)._1)
28872887 }
28882888 }
28892889 else if (("LAND" == cn))
28902890 then {
28912891 let je = value(assetInfo(fromBase58String(bo)))
28922892 let jf = bq(bo)
28932893 if (!(isDefined(getInteger(jf))))
28942894 then throw((je.name + " is not staked"))
28952895 else {
28962896 let jh = valueOrErrorMessage(getString(bn(bo)), (("NFT " + je.name) + " is orphaned"))
28972897 if ((jh != c))
28982898 then throw((aC + " is not yours"))
28992899 else {
29002900 let lT = ec(ks)
29012901 let lU = getString(lT)
29022902 if (isDefined(lU))
29032903 then throw(("Name already registered: " + ks))
29042904 else {
29052905 let lY = bp(bo)
29062906 let lW = getString(lY)
29072907 let lX = if (isDefined(lW))
29082908 then [DeleteEntry(ec(value(lW)))]
29092909 else nil
29102910 (((lX :+ StringEntry(lY, ks)) :+ StringEntry(lT, bo)) ++ jR(c, Y)._1)
29112911 }
29122912 }
29132913 }
29142914 }
29152915 else if (("DUCK" == cn))
29162916 then {
29172917 let je = value(assetInfo(fromBase58String(bo)))
29182918 let jf = bq(bo)
29192919 if (if (!(isDefined(getInteger(jf))))
29202920 then true
29212921 else !(isDefined(getString(bG(c)))))
29222922 then throw((je.name + " is not staked"))
29232923 else {
29242924 let jh = valueOrErrorMessage(getString(bF(bo)), (("NFT " + je.name) + " is orphaned"))
29252925 if ((jh != c))
29262926 then throw((aD + " is not yours"))
29272927 else {
29282928 let lT = ei(ks)
29292929 let lU = getString(lT)
29302930 if (isDefined(lU))
29312931 then throw(("Name already registered: " + ks))
29322932 else {
29332933 let lY = bz(bo)
29342934 let lW = getString(lY)
29352935 let lX = if (isDefined(lW))
29362936 then [DeleteEntry(ei(value(lW)))]
29372937 else nil
29382938 (((lX :+ StringEntry(lY, ks)) :+ StringEntry(lT, bo)) ++ jL(bo, Y)._1)
29392939 }
29402940 }
29412941 }
29422942 }
29432943 else throw("Unknown entity type")
29442944 }
29452945 $Tuple2(((lS :+ ScriptTransfer(cR, kL.amount, cm)) :+ kK), 0)
29462946 }
29472947 }
29482948 }
29492949
29502950
29512951
29522952 @Callable(gw)
29532953 func setReferrals (lZ,ma) = if ((gw.callerPublicKey != dK))
29542954 then throw("Permission denied")
29552955 else {
29562956 let kK = kH(gw)
29572957 if ((size(gw.payments) != 0))
29582958 then throw("No payments required")
29592959 else if (!(isDefined(addressFromString(lZ))))
29602960 then throw(("Invalid address: " + lZ))
29612961 else if (!(isDefined(addressFromString(ma))))
29622962 then throw(("Invalid address: " + ma))
29632963 else {
29642964 let mb = ek()
29652965 let mc = getString(mb)
29662966 let md = if (isDefined(mc))
29672967 then split_4C(value(mc), "_")
29682968 else nil
29692969 if (containsElement(md, ma))
29702970 then throw((ma + " is not newbie (already has referrals)"))
29712971 else {
29722972 let jT = bB(ma)
29732973 let jU = getString(jT)
29742974 if (if (isDefined(jU))
29752975 then isDefined(addressFromString(value(jU)))
29762976 else false)
29772977 then throw(((ma + " already has refBy: ") + value(jU)))
29782978 else {
29792979 let me = bE(lZ)
29802980 let mf = getString(me)
29812981 let mg = if (isDefined(mf))
29822982 then split_4C(value(mf), "_")
29832983 else nil
29842984 if (containsElement(mg, ma))
29852985 then throw((((lZ + " already contains ") + ma) + " within referrals"))
29862986 else {
29872987 let mh = makeString_2C((mg :+ ma), "_")
29882988 let mi = if (containsElement(md, lZ))
29892989 then value(mc)
29902990 else makeString_2C((md :+ lZ), "_")
29912991 $Tuple2([StringEntry(jT, lZ), StringEntry(me, mh), StringEntry(mb, mi), kK], 0)
29922992 }
29932993 }
29942994 }
29952995 }
29962996 }
29972997
29982998
29992999
30003000 @Callable(gw)
30013001 func distributePoints (mj,mk,ml,mm,mn) = {
30023002 let kK = kH(gw)
30033003 if ((size(gw.payments) != 0))
30043004 then throw("No payments required")
30053005 else {
30063006 let c = toString(gw.originCaller)
30073007 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
30083008 let mo = I(c)
30093009 let mp = valueOrElse(getInteger(an, mo), 0)
30103010 let mq = E(A)
30113011 let mr = valueOrElse(getInteger(an, mq), 0)
30123012 let ms = (mp + mr)
30133013 let mt = ((((mj + mk) + ml) + mm) + mn)
30143014 if ((mt > ms))
30153015 then throw((("There are only " + toString(ms)) + " free points to distribute"))
30163016 else {
30173017 let mu = B(A)
30183018 let aq = split(valueOrElse(getString(an, mu), "0_0_0_0_0"), "_")
30193019 let mv = (mp - mt)
30203020 $Tuple2([IntegerEntry(mo, if ((0 > mv))
30213021 then 0
30223022 else mv), IntegerEntry(mq, if ((0 > mv))
30233023 then (mr + mv)
30243024 else mr), StringEntry(mu, makeString([toString((parseIntValue(aq[k]) + mj)), toString((parseIntValue(aq[l]) + mk)), toString((parseIntValue(aq[m]) + ml)), toString((parseIntValue(aq[n]) + mm)), toString((parseIntValue(aq[o]) + mn))], "_")), kK], 0)
30253025 }
30263026 }
30273027 }
30283028
30293029
30303030
30313031 @Callable(gw)
30323032 func splitByGlobalWeightsREADONLY (eu) = $Tuple2(nil, eM(eu))
30333033
30343034
30353035
30363036 @Callable(gw)
30373037 func splitByGlobalAndLocalWeightsREADONLY (mw,mx,gz) = {
30383038 let gs = gy(gz)
30393039 $Tuple2(nil, $Tuple2(eM(mw), ex(mx, gs)))
30403040 }
30413041
30423042
30433043
30443044 @Callable(gw)
30453045 func getBackpackREADONLY (A) = $Tuple2(nil, makeString(hw(bH(A)), ":"))
30463046
30473047
30483048
30493049 @Callable(gw)
30503050 func getWarehouseREADONLY (P) = {
30513051 let je = value(assetInfo(fromBase58String(P)))
30523052 let hL = (dr(split(je.description, "_")[cX]) / cu)
30533053 let hM = valueOrElse(getInteger(bx(P)), 0)
30543054 $Tuple2(nil, makeString_2C(hJ(bw(P), hL, hM), ":"))
30553055 }
30563056
30573057
30583058
30593059 @Callable(gw)
30603060 func saveLastTx () = {
30613061 let iv = gw.caller
30623062 if (!(containsElement([cT, cR, cU, cV], iv)))
30633063 then throw("Access denied")
30643064 else $Tuple2([kH(gw)], 42)
30653065 }
30663066
30673067
30683068
30693069 @Callable(gw)
30703070 func updateDuckStats (A,jM) = if ((gw.caller != cR))
30713071 then throw("Access denied")
30723072 else jL(A, jM)
30733073
30743074
30753075
30763076 @Callable(gw)
3077-func updateAccStats (c,jM) = if ((gw.caller != cR))
3077+func updateAccStats (c,jM) = if (if ((gw.caller != cR))
3078+ then (gw.caller != cV)
3079+ else false)
30783080 then throw("Access denied")
30793081 else jR(c, jM)
30803082
30813083
30823084
30833085 @Callable(gw)
30843086 func equipDuck (my) = {
30853087 let kK = kH(gw)
30863088 if ((size(gw.payments) != 0))
30873089 then throw("No payments required")
30883090 else {
30893091 let c = toString(gw.originCaller)
30903092 let A = valueOrErrorMessage(getString(bG(c)), "You don't have a duck staked")
30913093 if (kb(A))
30923094 then throw("equipDuck_checkTournament")
30933095 else if (kc(A))
30943096 then throw("equipDuck_checkDelivery")
30953097 else {
30963098 let gj = F(A)
30973099 let mz = split(valueOrElse(getString(gj), ",;,_,;,_,;,_,;,_,;,_,;,"), "_")
30983100 let hx = bH(A)
30993101 let ia = hw(hx)
31003102 let ld = split(my, "_")
31013103 if ((size(ld) != q))
31023104 then throw("Wrong equipment string")
31033105 else {
31043106 let gl = fY(mz, fj(ia[bj]), true, nil)
31053107 let gm = split(ld[p], ";")[1]
31063108 let ao = if ((gm == ""))
31073109 then 0
31083110 else {
31093111 let gn = split(gm, ",")[0]
31103112 if ((gn == ""))
31113113 then 0
31123114 else {
31133115 let fy = split(gn, ":")
31143116 let cP = fy[0]
31153117 let go = fy[1]
31163118 if (if (if (if (if ((cP == "06"))
31173119 then true
31183120 else (cP == "07"))
31193121 then true
31203122 else (cP == "08"))
31213123 then (go != "")
31223124 else false)
31233125 then (parseIntValue(go) > 0)
31243126 else false)
31253127 then parseIntValue(split(aR[parseIntValue(cP)], "_")[aT])
31263128 else 0
31273129 }
31283130 }
31293131 let fT = am(this, A, ao, true)
31303132 let gp = fY(ld, gl, false, fT)
31313133 let mA = fo(gp)
31323134 $Tuple2([StringEntry(gj, my), StringEntry(hx, makeString_2C([ia[bg], ia[bh], ia[bi], mA], ":")), StringEntry(L(A), makeString([toString(fT[7]), toString(fT[8]), toString(fT[9]), toString(fT[10]), toString(fT[11])], "_")), kK], 0)
31333135 }
31343136 }
31353137 }
31363138 }
31373139
31383140
31393141
31403142 @Callable(gw)
31413143 func fortificateLand (P,mB) = {
31423144 let kK = kH(gw)
31433145 if ((size(gw.payments) != 0))
31443146 then throw("No payments required")
31453147 else {
31463148 let c = toString(gw.originCaller)
31473149 let A = valueOrElse(getString(bG(c)), "")
31483150 let ft = am(this, A, 0, false)
31493151 let mC = by(P)
31503152 let mD = split(valueOrElse(getString(mC), ":0_15:0_18:0"), "_")
31513153 let je = value(assetInfo(fromBase58String(P)))
31523154 let hL = (dr(split(je.description, "_")[cX]) / cu)
31533155 let hM = valueOrElse(getInteger(bx(P)), 0)
31543156 let hK = bw(P)
31553157 let hP = hJ(hK, hL, hM)
31563158 let mE = split(hP[bb], "_")
31573159 let mF = parseIntValue(mE[bd])
31583160 let mG = parseIntValue(mE[be])
31593161 let mH = split(mB, "_")
31603162 let mI = gf(mD, fj(hP[ba]), mF, mG, true, nil)
31613163 let gl = mI._1
31623164 let mJ = mI._2
31633165 let mK = mI._3
31643166 let mL = gf(mH, gl, mJ, mK, false, ft)
31653167 let gp = mL._1
31663168 let mM = mL._2
31673169 let mN = mL._3
31683170 let mA = fo(gp)
31693171 let jK = makeString([mE[bc], toString(mM), toString(mN), mE[bf]], "_")
31703172 $Tuple2([StringEntry(mC, mB), StringEntry(hK, makeString_2C([hP[aX], hP[aY], hP[aZ], mA, jK], ":")), kK], 0)
31713173 }
31723174 }
31733175
31743176
31753177
31763178 @Callable(gw)
31773179 func initDuckTourAttempt (A) = if ((gw.caller != cU))
31783180 then throw("Access denied")
31793181 else {
31803182 let kK = kH(gw)
31813183 let iN = z(A)
31823184 let iO = ag(valueOrElse(getInteger(D(A)), 0))
31833185 let kX = valueOrElse(getInteger(iN), iO)
31843186 let mO = bI(A)
31853187 let jc = valueOrElse(getString(mO), aJ)
31863188 let cd = valueOrElse(getInteger(cU, bO), 0)
31873189 let mP = (toString(cd) + "_T_0")
31883190 $Tuple2([kK, IntegerEntry(J(A), kX), IntegerEntry(iN, iO), StringEntry(K(A), jc), StringEntry(mO, mP)], mP)
31893191 }
31903192
31913193
31923194
31933195 @Callable(gw)
31943196 func breakAttempt () = {
31953197 let kK = kH(gw)
31963198 let A = valueOrErrorMessage(getString(bG(toString(gw.caller))), "You don't have a duck staked")
31973199 let mO = bI(A)
31983200 let jc = valueOrElse(getString(mO), aJ)
31993201 if ((split(jc, "_")[bl] != "T"))
32003202 then throw("Your duck is not in the tournament")
32013203 else {
32023204 let mQ = getIntegerValue(J(A))
32033205 let mR = getStringValue(K(A))
32043206 $Tuple2([kK, IntegerEntry(z(A), mQ), StringEntry(mO, mR)], jc)
32053207 }
32063208 }
32073209
32083210
32093211
32103212 @Callable(gw)
32113213 func exitTournamentInternal (A) = if ((gw.caller != this))
32123214 then throw("Access denied")
32133215 else {
32143216 let mQ = getIntegerValue(J(A))
32153217 let mR = getStringValue(K(A))
32163218 $Tuple2([IntegerEntry(z(A), mQ), StringEntry(bI(A), mR)], false)
32173219 }
32183220
32193221
32203222
32213223 @Callable(gw)
32223224 func exitDeliveryInternal (A) = if ((gw.caller != this))
32233225 then throw("Access denied")
32243226 else {
32253227 let jc = split(valueOrElse(getString(bI(A)), aJ), "_")
32263228 let ax = lastBlock.timestamp
32273229 let kd = parseIntValue(jc[bk])
32283230 let ke = parseIntValue(jc[bm])
32293231 let jh = valueOrErrorMessage(getString(bF(A)), "NFT duck is orphaned")
32303232 let mS = z(A)
32313233 let kX = getIntegerValue(mS)
32323234 let mT = if ((ke >= 3))
32333235 then {
32343236 let mU = invoke(cR, "sendDeliveryReward", [jh], nil)
32353237 if ((mU == mU))
32363238 then nil
32373239 else throw("Strict value is not equal to itself.")
32383240 }
32393241 else {
32403242 let mV = valueOrElse(getInteger(cR, bN), 0)
32413243 let mW = invoke(cR, "updateDeliveryLocked", [(mV - aM)], nil)
32423244 if ((mW == mW))
32433245 then if ((0 >= kX))
32443246 then nil
32453247 else [IntegerEntry(T(A), (kd + a))]
32463248 else throw("Strict value is not equal to itself.")
32473249 }
32483250 let mQ = getIntegerValue(J(A))
32493251 let mR = getStringValue(K(A))
32503252 $Tuple2(((mT :+ IntegerEntry(mS, mQ)) :+ StringEntry(bI(A), mR)), false)
32513253 }
32523254
32533255
32543256
32553257 @Callable(gw)
32563258 func prepareRobbery (iC,iD) = {
32573259 let kK = kH(gw)
32583260 if (!(sigVerify_8Kb(iC, iD, dK)))
32593261 then throw("signature does not match")
32603262 else if ((size(gw.payments) != 1))
32613263 then throw("exactly 1 payment must be attached")
32623264 else {
32633265 let kL = gw.payments[0]
32643266 let mX = kL.amount
32653267 if (if (!(isDefined(kL.assetId)))
32663268 then true
32673269 else (value(kL.assetId) != db))
32683270 then throw("WLGOLD payments only!")
32693271 else {
32703272 let fb = split(toUtf8String(iC), "|")
32713273 if ((size(fb) != 2))
32723274 then throw("Wrong message format")
32733275 else {
32743276 let A = fb[0]
32753277 let ay = au(this, A)._1
32763278 if ((ay > mX))
32773279 then throw(((("Payment " + toString(mX)) + " < required ") + toString(ay)))
32783280 else {
32793281 let mY = split(fb[1], "_")
32803282 let ax = lastBlock.timestamp
32813283 let az = valueOrElse(getInteger(R(A)), 0)
32823284 let aA = valueOrElse(getString(S(A)), "")
32833285 let aB = valueOrElse(getInteger(Q(aA)), 0)
32843286 if (if ((az != x))
32853287 then (aB > ax)
32863288 else false)
32873289 then throw(("You already started robbing, wait till " + toString(aB)))
32883290 else {
32893291 func mZ (eD,P) = {
32903292 let na = valueOrElse(getInteger(O(P)), 0)
32913293 let nb = valueOrElse(getInteger(Q(P)), 0)
32923294 if ((na > size(u)))
32933295 then throw("Invalid state")
32943296 else if ((ax > nb))
32953297 then {
32963298 let nc = valueOrElse(getInteger(bq(P)), 0)
32973299 if ((0 >= nc))
32983300 then eD
32993301 else {
33003302 let gd = value(assetInfo(fromBase58String(P)))
33013303 let ji = split(gd.description, "_")
33023304 let iU = dr(ji[cX])
33033305 let nd = iT(P, iU)
33043306 let gC = (ax - nc)
33053307 let jl = fraction(gC, (nd * iU), a)
33063308 if ((v > jl))
33073309 then eD
33083310 else (eD :+ P)
33093311 }
33103312 }
33113313 else eD
33123314 }
33133315
33143316 let ne = {
33153317 let eF = mY
33163318 let eG = size(eF)
33173319 let eH = nil
33183320 func eI (eJ,eK) = if ((eK >= eG))
33193321 then eJ
33203322 else mZ(eJ, eF[eK])
33213323
33223324 func eL (eJ,eK) = if ((eK >= eG))
33233325 then eJ
33243326 else throw("List size exceeds 10")
33253327
33263328 eL(eI(eI(eI(eI(eI(eI(eI(eI(eI(eI(eH, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
33273329 }
33283330 if ((size(ne) == 0))
33293331 then throw("No candidates for robbery")
33303332 else {
33313333 let nf = dC(size(ne), height, (iD + gw.transactionId))
33323334 let P = ne[nf]
33333335 $Tuple2([IntegerEntry(O(P), w), IntegerEntry(Q(P), (ax + u[w])), IntegerEntry(R(A), y), StringEntry(S(A), P), kK], P)
33343336 }
33353337 }
33363338 }
33373339 }
33383340 }
33393341 }
33403342 }
33413343
33423344
33433345
33443346 @Callable(gw)
33453347 func robLand (iC,iD) = {
33463348 let kK = kH(gw)
33473349 if (!(sigVerify_8Kb(iC, iD, dK)))
33483350 then throw("signature does not match")
33493351 else {
33503352 let bK = toString(gw.caller)
33513353 let A = valueOrErrorMessage(getString(bG(bK)), "You don't have a duck staked")
33523354 let ax = lastBlock.timestamp
33533355 $Tuple2([kK, IntegerEntry(M(A), ax)], 0)
33543356 }
33553357 }
33563358
33573359
33583360
33593361 @Callable(gw)
33603362 func acceptDelivery () = if (!(ck))
33613363 then throw("Delivery feature is turned off!")
33623364 else {
33633365 let kK = kH(gw)
33643366 let bK = toString(gw.caller)
33653367 let A = valueOrErrorMessage(getString(bG(bK)), "You don't have a duck staked")
33663368 let ng = valueOrElse(getInteger(cR, bM), 0)
33673369 let mV = valueOrElse(getInteger(cR, bN), 0)
33683370 if ((aM > (ng - mV)))
33693371 then throw(((("Delivery is not available, fund=" + dw(ng, 6)) + ", locked=") + dw(mV, 6)))
33703372 else {
33713373 let ax = lastBlock.timestamp
33723374 let nh = valueOrElse(getInteger(T(A)), 0)
33733375 if ((nh > ax))
33743376 then throw(("Delivery is forbidden for your duck until " + toString(nh)))
33753377 else if (kb(A))
33763378 then throw("acceptDelivery_checkTournament")
33773379 else if (kc(A))
33783380 then throw("acceptDelivery_checkDelivery")
33793381 else {
33803382 let ni = do(invoke(cR, "updateDeliveryLocked", [(mV + aM)], nil))
33813383 let iN = z(A)
33823384 let iO = ag(valueOrElse(getInteger(D(A)), 0))
33833385 let kX = valueOrElse(getInteger(iN), iO)
33843386 let mO = bI(A)
33853387 let jc = valueOrElse(getString(mO), aJ)
33863388 let nj = (toString(ax) + "_D_0")
33873389 $Tuple2([kK, IntegerEntry(J(A), kX), IntegerEntry(iN, iO), StringEntry(K(A), jc), StringEntry(mO, nj)], $Tuple2(nj, ni))
33883390 }
33893391 }
33903392 }
33913393
33923394

github/deemru/w8io/169f3d6 
306.17 ms