A/MNCk1crFFjAAAAAAAAAAANAAAAQAAAAHPyAwAAZAAAWgAAZAEAWgEAZAIAWgIAZAMAZAQAbAMAWgMAZAMAZAQAbAQAWgQAZAMAZAQAbAUAWgUAZAMAZAQAbAYAWgYAeQ0AZQUAagcAWggAV24vAARlCQBrCgBygAABAQFlAwBqCgBkWgBrBgBydwBkCQBaCABxgQBkCgBaCABuAQBYZQYAagsAZAsAgwEAWgwAZQMAag0AZAwAZAwAZA0AZA4AhAQAWg4AZA8AhAAAWg8AZQYAagsAZBAAgwEAWhAAZQYAagsAZBEAgwEAWhEAZQYAagsAZBIAgwEAWhIAZFsAWhMAZCAAhAAAWhQAZAwAZAwAZAwAZRMAZCEAZCIAhAUAWhUAZAwAZAwAZAwAZRMAZCMAhAQAWhYAZCQAZFwAZCUAhAAAgwAAWVoXAGQmAGQEAGQnAIQCAFoZAGQMAGQoAIQBAFoaAGUGAGoLAGQpAIMBAFobAGQMAGQMAGQMAGRdAGQqAIQEAFocAGQMAGQrAIQBAFodAGQMAGQMAGQMAGQMAGQsAIQEAFoeAGQEAGQtAIQBAFofAGQuAIQAAFogAGQvAIQAAFohAGQwAIQAAFoiAGQMAGReAGQMAGQxAIQDAFojAGQyAIQAAFokAGQMAGQMAGRfAGRgAGQzAIQEAFolAGQ0AIQAAFomAGQ1AIQAAFonAGQMAGQ2AIQBAFooAGUpAGUFAGoqAGQ3AIMCAHNBAmUFAGoqAGorAGUFAGoqAGosAGUFAGotAGUFAGoqAGouAGQ4AIQEAFovAG4MAGUFAGoqAGowAFovAGQ5AIQAAFoxAGQMAGQ6AIQBAFoyAGQMAGQ7AIQBAFozAGkDAGRhAGQGADZkYgBkBwA2ZGMAZAUANlo0AGUGAGoLAGQ/AIMBAGo1AFo2AGUDAGoNAGQMAGQMAGRAAIQDAFo3AGQEAGE4AGRBAIQAAFo5AGRCAIQAAFo6AGRDAIQAAFo7AGREAIQAAFo8AGRFAIQAAFo9AGRGAIQAAFo+AGRHAIQAAFo/AGUGAGoLAGRIAIMBAFpAAGUGAGoLAGRJAIMBAFpBAGUGAGoLAGRKAIMBAFpCAGkAAFpDAGQEAGRLAIQBAFpEAGRMAIQAAFpFAGRNAIQAAFpGAGROAIQAAFpHAGRPAIQAAFpIAGRQAIQAAFpJAGRRAIQAAFpKAGRSAIQAAFpLAGkAAFpMAGRTAGRTAGRUAIQCAFoKAGVNAGRVAGsCAHLuA2RWAGUDAGpOAGsGAHCvA2RXAGUDAGpOAGsGAFpPAGRYAGUDAGpOAGsHAG/NA2RZAGUDAGpOAGsHAFpQAGUKAGVQAGVPAIMCAEdIZQMAalEAZFMAgwEAAW4AAGQEAFMoZAAAAHM4AQAAIFRoaXMgbW9kdWxlIHRyaWVzIHRvIHJldHJpZXZlIGFzIG11Y2ggcGxhdGZvcm0taWRlbnRpZnlpbmcgZGF0YSBhcwogICAgcG9zc2libGUuIEl0IG1ha2VzIHRoaXMgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHZpYSBmdW5jdGlvbiBBUElzLgoKICAgIElmIGNhbGxlZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGl0IHByaW50cyB0aGUgcGxhdGZvcm0KICAgIGluZm9ybWF0aW9uIGNvbmNhdGVuYXRlZCBhcyBzaW5nbGUgc3RyaW5nIHRvIHN0ZG91dC4gVGhlIG91dHB1dAogICAgZm9ybWF0IGlzIHVzZWFibGUgYXMgcGFydCBvZiBhIGZpbGVuYW1lLgoKcwUEAAAKICAgIENvcHlyaWdodCAoYykgMTk5OS0yMDAwLCBNYXJjLUFuZHJlIExlbWJ1cmc7IG1haWx0bzptYWxAbGVtYnVyZy5jb20KICAgIENvcHlyaWdodCAoYykgMjAwMC0yMDEwLCBlR2VuaXguY29tIFNvZnR3YXJlIEdtYkg7IG1haWx0bzppbmZvQGVnZW5peC5jb20KCiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKICAgIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBvciByb3lhbHR5IGlzIGhlcmVieSBncmFudGVkLAogICAgcHJvdmlkZWQgdGhhdCB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhhdAogICAgYm90aCB0aGF0IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXBwZWFyIGluCiAgICBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24gb3IgcG9ydGlvbnMgdGhlcmVvZiwgaW5jbHVkaW5nIG1vZGlmaWNhdGlvbnMsCiAgICB0aGF0IHlvdSBtYWtlLgoKICAgIEVHRU5JWC5DT00gU09GVFdBUkUgR01CSCBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSCBSRUdBUkQgVE8KICAgIFRISVMgU09GVFdBUkUsIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQKICAgIEZJVE5FU1MsIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwKICAgIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORwogICAgRlJPTSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKICAgIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCiAgICBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRSAhCgpzBQAAADEuMC43af////9OdAMAAABkb3N0BQAAAHdpbjMydAUAAAB3aW4xNnQDAAAAb3MydAMAAABOVUxzCQAAAC9kZXYvbnVsbHNDAAAAKF9fbGliY19pbml0KXwoR0xJQkNfKFswLTkuXSspKXwobGliYyhfXHcrKT9cLnNvKD86XC4oXGRbMC05Ll0qKSk/KXQAAAAAaQAIAABjBAAAAA4AAAAGAAAAQwAAAHN+AQAAdAAAdAEAagIAZAEAgwIAcicAdAEAagIAagMAfAAAgwEAfQAAbgAAdAQAfAAAZAIAgwIAfQQAfAQAagUAfAMAgwEAfQUAZAMAfQYAeBwBdAYAagcAfAUAfAYAgwIAfQcAfAcAc4sAfAQAagUAfAMAgwEAfQUAfAUAc38AUG4AAGQDAH0GAHFOAG4AAHwHAGoIAIMAAFwGAH0IAH0JAH0KAH0LAH0MAH0NAHwIAHK/AHwBAAxyvwBkBAB9AQBunAB8CQBy+AB8AQBkBQBrAwBy4ABkBQB9AQB8CgB9AgBxWwF8CgB8AgBrBAByWwF8CgB9AgBxWwFuYwB8CwByWwF8AQBkBQBrAwByWwFkBAB9AQB8DQByKwF8DQB8AgBrBAByKwF8DQB9AgBuAAB8DAByWAF8AgB0CQB8DACDAQALH3wMAGsDAHJYAXwCAHwMABd9AgBxWAFxWwFuAAB8BwBqCgCDAAB9BgBxTgB8BABqCwCDAAABfAEAfAIAZgIAUygGAAAAcxECAAAgVHJpZXMgdG8gZGV0ZXJtaW5lIHRoZSBsaWJjIHZlcnNpb24gdGhhdCB0aGUgZmlsZSBleGVjdXRhYmxlCiAgICAgICAgKHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIpIGlzIGxpbmtlZCBhZ2FpbnN0LgoKICAgICAgICBSZXR1cm5zIGEgdHVwbGUgb2Ygc3RyaW5ncyAobGliLHZlcnNpb24pIHdoaWNoIGRlZmF1bHQgdG8gdGhlCiAgICAgICAgZ2l2ZW4gcGFyYW1ldGVycyBpbiBjYXNlIHRoZSBsb29rdXAgZmFpbHMuCgogICAgICAgIE5vdGUgdGhhdCB0aGUgZnVuY3Rpb24gaGFzIGludGltYXRlIGtub3dsZWRnZSBvZiBob3cgZGlmZmVyZW50CiAgICAgICAgbGliYyB2ZXJzaW9ucyBhZGQgc3ltYm9scyB0byB0aGUgZXhlY3V0YWJsZSBhbmQgdGh1cyBpcyBwcm9iYWJseQogICAgICAgIG9ubHkgdXNlYWJsZSBmb3IgZXhlY3V0YWJsZXMgY29tcGlsZWQgdXNpbmcgZ2NjLgoKICAgICAgICBUaGUgZmlsZSBpcyByZWFkIGFuZCBzY2FubmVkIGluIGNodW5rcyBvZiBjaHVua3NpemUgYnl0ZXMuCgogICAgdAgAAAByZWFscGF0aHQCAAAAcmJpAAAAAHQEAAAAbGliY3QFAAAAZ2xpYmMoDAAAAHQHAAAAaGFzYXR0cnQCAAAAb3N0BAAAAHBhdGhSBgAAAHQEAAAAb3BlbnQEAAAAcmVhZHQMAAAAX2xpYmNfc2VhcmNodAYAAABzZWFyY2h0BgAAAGdyb3Vwc3QDAAAAbGVudAMAAABlbmR0BQAAAGNsb3NlKA4AAAB0CgAAAGV4ZWN1dGFibGV0AwAAAGxpYnQHAAAAdmVyc2lvbnQJAAAAY2h1bmtzaXpldAEAAABmdAYAAABiaW5hcnl0AwAAAHBvc3QBAAAAbXQIAAAAbGliY2luaXRSCQAAAHQMAAAAZ2xpYmN2ZXJzaW9udAIAAABzb3QHAAAAdGhyZWFkc3QJAAAAc292ZXJzaW9uKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0CAAAAGxpYmNfdmVyjQAAAHNAAAAAABESBBUBDwEPAQYBAwESAQYBDwEGAQQBBgEGAR4BDQEJAQYBDAEGAQkBDAEMAQYBDAEGARIBCQEdARMBDwEKAWMDAAAADAAAAAUAAABDAAAAc+gBAAB0AABqAQBqAgBkAQCDAQByxAB0AwBkAQCDAQBqBACDAAB9AwBkAgB9AAB4igB8AwBEXYIAfQQAdAUAagYAfAQAgwEAfQUAdAcAfAUAgwEAZAMAawIAcjEAfAUAXAIAfQYAfQcAbgMAcTEAfAYAZAQAawIAcogAdAUAaggAfAcAgwEAfQEAcTEAfAYAZAUAawIAcjEAdAUAagYAfAcAZAYAgwIAfQgAfAgAZAMAGX0CAHExAHExAFd8AAB8AQB8AgBmAwBTdAAAagEAagIAZAcAgwEAckEBdAMAZAcAgwEAagQAgwAAfQMAeFYAfAMARF1LAH0EAHQFAGoGAHwEAGQGAIMCAH0JAHQHAHwJAIMBAGQDAGsFAHLvAHwJAGQIABlkCQBrAgBy7wBkCQB8CQBkCgAZfAIAZgMAU3HvAFduAAB0AABqAQBqCQBkCwCDAQBy2wF0AABqCgBkCwCDAQB9CgB4QgB0CwB0BwB8CgCDAQBkCgAYZAwAZAwAgwMARF0kAH0LAHwKAHwLABlkDQAgZA4AawMAcn8BfAoAfAsAPXF/AXF/AVd8CgBy2wF8CgBqDACDAAABZA8AfQAAfAoAZAwAGWQNAB99AQB8AAB8AQB8AgBmAwBTbgAAfAAAfAEAfAIAZgMAUygQAAAAc9kAAAAgVHJpZXMgc29tZSBzcGVjaWFsIHRyaWNrcyB0byBnZXQgdGhlIGRpc3RyaWJ1dGlvbgogICAgICAgIGluZm9ybWF0aW9uIGluIGNhc2UgdGhlIGRlZmF1bHQgbWV0aG9kIGZhaWxzLgoKICAgICAgICBDdXJyZW50bHkgc3VwcG9ydHMgb2xkZXIgU3VTRSBMaW51eCwgQ2FsZGVyYSBPcGVuTGludXggYW5kCiAgICAgICAgU2xhY2t3YXJlIExpbnV4IGRpc3RyaWJ1dGlvbnMuCgogICAgcxYAAAAvdmFyL2FkbS9pbnN0LWxvZy9pbmZvdAQAAABTdVNFaQIAAAB0EAAAAE1JTl9ESVNUX1ZFUlNJT050CgAAAERJU1RfSURFTlR0AQAAAC1zDwAAAC9ldGMvLmluc3RhbGxlZGkAAAAAdAkAAABPcGVuTGludXhpAQAAAHMOAAAAL3Vzci9saWIvc2V0dXBp/////2kOAAAAcw4AAABzbGFjay12ZXJzaW9uLXQJAAAAc2xhY2t3YXJlKA0AAABSCwAAAFIMAAAAdAYAAABleGlzdHNSDQAAAHQJAAAAcmVhZGxpbmVzdAYAAABzdHJpbmd0BQAAAHNwbGl0UhIAAAB0BQAAAHN0cmlwdAUAAABpc2RpcnQHAAAAbGlzdGRpcnQFAAAAcmFuZ2V0BAAAAHNvcnQoDAAAAHQIAAAAZGlzdG5hbWVSFwAAAHQCAAAAaWR0BAAAAGluZm90BAAAAGxpbmV0AgAAAHR2dAMAAAB0YWd0BQAAAHZhbHVldAYAAAB2YWx1ZXN0AwAAAHBrZ3QIAAAAdmVyZmlsZXN0AQAAAG4oAAAAACgAAAAAc1AAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9wbGF0Zm9ybS5weXQQAAAAX2Rpc3RfdHJ5X2hhcmRlcsIAAABzPgAAAAAJEgISAQYBDQEPARIBDwIDAQwBEgEMARIBEQENAhICEgENARIBIgMYAhICDwEjARQBDgEGAQoBBgEOARACcxoAAAAoXHcrKVstX10ocmVsZWFzZXx2ZXJzaW9uKXMnAAAAKC4rKSByZWxlYXNlIChbXGQuXSspW14oXSooPzpcKCguKylcKSk/czEAAAAoW14wLTldKykoPzogcmVsZWFzZSApPyhbXGQuXSspW14oXSooPzpcKCguKylcKSk/UiMAAAB0BgAAAGRlYmlhbnQGAAAAZmVkb3JhdAYAAAByZWRoYXR0BgAAAGNlbnRvc3QIAAAAbWFuZHJha2V0CAAAAG1hbmRyaXZhdAUAAAByb2Nrc1IoAAAAdAkAAAB5ZWxsb3dkb2d0BgAAAGdlbnRvb3QLAAAAVW5pdGVkTGludXh0CgAAAHR1cmJvbGludXhjAQAAAAUAAAADAAAAQwAAAHO5AAAAZAEAfQEAZAEAfQIAdAAAagEAfAAAgwEAfQMAfAMAZAAAawkAcjcAdAMAfAMAagQAgwAAgwEAU3QFAGoBAHwAAIMBAH0DAHwDAGQAAGsJAHJiAHQDAHwDAGoEAIMAAIMBAFN0BgBqBwB0BgBqCAB8AACDAQCDAQB9BAB8BAByrAB8BABkAgAZfQEAdAkAfAQAgwEAZAMAawQAcqwAfAQAZAMAGX0CAHGsAG4AAGQBAHwBAHwCAGYDAFMoBAAAAE5SBQAAAGkAAAAAaQEAAAAoCgAAAHQUAAAAX2xzYl9yZWxlYXNlX3ZlcnNpb250BQAAAG1hdGNodAQAAABOb25ldAUAAAB0dXBsZVIRAAAAdBAAAABfcmVsZWFzZV92ZXJzaW9uUisAAABSLAAAAFItAAAAUhIAAAAoBQAAAHQJAAAAZmlyc3RsaW5lUhcAAABSMwAAAFIcAAAAdAEAAABsKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0EwAAAF9wYXJzZV9yZWxlYXNlX2ZpbGUIAQAAcxwAAAAABQYBBgMPAQwCEAMPAQwBEAMYAQYBCgESARABaQEAAABjBQAAAA4AAAAFAAAAQwAAAHMjAQAAeRMAdAAAagEAZAEAgwEAfQUAV24eAAR0AABqAgBrCgByMwABAQF8AAB8AQB8AgBmAwBTWHwFAGoDAIMAAAF4ZAB8BQBEXUwAfQYAdAQAagUAfAYAgwEAfQcAfAcAZAQAawkAckUAfAcAagcAgwAAXAIAfQgAfQkAfAgAfAMAawYAcpEAfAgAfQAAUHGRAHFFAHFFAFd0CAB8AAB8AQB8AgCDAwBTdAkAZAIAfAYAF2QDAIMCAH0KAHwKAGoKAIMAAH0LAHwKAGoLAIMAAAF0DAB8CwCDAQBcAwB9CAB9DAB9DQB8CABy+AB8BABy+AB8CAB9AABuAAB8DAByBwF8DAB9AQBuAAB8DQByFgF8DQB9AgBuAAB8AAB8AQB8AgBmAwBTKAUAAABz5AIAACBUcmllcyB0byBkZXRlcm1pbmUgdGhlIG5hbWUgb2YgdGhlIExpbnV4IE9TIGRpc3RyaWJ1dGlvbiBuYW1lLgoKICAgICAgICBUaGUgZnVuY3Rpb24gZmlyc3QgbG9va3MgZm9yIGEgZGlzdHJpYnV0aW9uIHJlbGVhc2UgZmlsZSBpbgogICAgICAgIC9ldGMgYW5kIHRoZW4gcmV2ZXJ0cyB0byBfZGlzdF90cnlfaGFyZGVyKCkgaW4gY2FzZSBubwogICAgICAgIHN1aXRhYmxlIGZpbGVzIGFyZSBmb3VuZC4KCiAgICAgICAgc3VwcG9ydGVkX2Rpc3RzIG1heSBiZSBnaXZlbiB0byBkZWZpbmUgdGhlIHNldCBvZiBMaW51eAogICAgICAgIGRpc3RyaWJ1dGlvbnMgdG8gbG9vayBmb3IuIEl0IGRlZmF1bHRzIHRvIGEgbGlzdCBvZiBjdXJyZW50bHkKICAgICAgICBzdXBwb3J0ZWQgTGludXggZGlzdHJpYnV0aW9ucyBpZGVudGlmaWVkIGJ5IHRoZWlyIHJlbGVhc2UgZmlsZQogICAgICAgIG5hbWUuCgogICAgICAgIElmIGZ1bGxfZGlzdHJpYnV0aW9uX25hbWUgaXMgdHJ1ZSAoZGVmYXVsdCksIHRoZSBmdWxsCiAgICAgICAgZGlzdHJpYnV0aW9uIHJlYWQgZnJvbSB0aGUgT1MgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSB0aGUgc2hvcnQKICAgICAgICBuYW1lIHRha2VuIGZyb20gc3VwcG9ydGVkX2Rpc3RzIGlzIHVzZWQuCgogICAgICAgIFJldHVybnMgYSB0dXBsZSAoZGlzdG5hbWUsdmVyc2lvbixpZCkgd2hpY2ggZGVmYXVsdCB0byB0aGUKICAgICAgICBhcmdzIGdpdmVuIGFzIHBhcmFt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IEZyZWUnIG9uIG11bHRpCiAgICAgICAgcHJvY2Vzc29yIG1hY2hpbmVzLiBUaGUgJ0ZyZWUnIHJlZmVycyB0byB0aGUgT1MgdmVyc2lvbiBiZWluZwogICAgICAgIGZyZWUgb2YgZGVidWdnaW5nIGNvZGUuIEl0IGNvdWxkIGFsc28gc3RhdGUgJ0NoZWNrZWQnIHdoaWNoCiAgICAgICAgbWVhbnMgdGhlIE9TIHZlcnNpb24gdXNlcyBkZWJ1Z2dpbmcgY29kZSwgaS5lLiBjb2RlIHRoYXQKICAgICAgICBjaGVja3MgYXJndW1lbnRzLCByYW5nZXMsIGV0Yy4gKFRob21hcyBIZWxsZXIpLgoKICAgICAgICBOb3RlOiB0aGlzIGZ1bmN0aW9uIHdvcmtzIGJlc3Qgd2l0aCBNYXJrIEhhbW1vbmQncyB3aW4zMgogICAgICAgIHBhY2thZ2UgaW5zdGFsbGVkLCBidXQgYWxzbyBvbiBQeXRob24gMi4zIGFuZCBsYXRlci4gSXQKICAgICAgICBvYnZpb3VzbHkgb25seSBydW5zIG9uIFdpbjMyIGNvbXBhdGlibGUgcGxhdGZvcm1zLgoKICAgIGn/////TigEAAAAUowAAAB0DAAAAFJlZ09wZW5LZXlFeHQLAAAAUmVnQ2xvc2VLZXl0DAAAAEdldFZlcnNpb25FeCgEAAAAdBIAAABIS0VZX0xPQ0FMX01BQ0hJTkV0FQAAAFZFUl9QTEFURk9STV9XSU4zMl9OVHQaAAAAVkVSX1BMQVRGT1JNX1dJTjMyX1dJTkRPV1N0EgAAAFZFUl9OVF9XT1JLU1RBVElPTmkBAAAAaQIAAABpAwAAAHMIAAAAJWkuJWkuJWlp//8AAHQMAAAAc2VydmljZV9wYWNrUgUAAABzBAAAAFNQJXNpDQAAAHMNAAAAU2VydmljZSBQYWNrIHQCAAAAU1BzKQAAAFNPRlRXQVJFXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uaQQAAABpAAAAAHQCAAAAOTVpCgAAAHQCAAAAOThpWgAAAHQCAAAATWV0BgAAAHBvc3RNZWkFAAAAdAQAAAAyMDAwcywAAABTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93cyBOVFxDdXJyZW50VmVyc2lvbnQC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bi4KCiAgICAgICAgUmV0dXJucyBhIHR1cGxlIChyZWxlYXNlLHZlbmRvcix2bWluZm8sb3NpbmZvKSB3aXRoIHZtaW5mbyBiZWluZwogICAgICAgIGEgdHVwbGUgKHZtX25hbWUsdm1fcmVsZWFzZSx2bV92ZW5kb3IpIGFuZCBvc2luZm8gYmVpbmcgYQogICAgICAgIHR1cGxlIChvc19uYW1lLG9zX3ZlcnNpb24sb3NfYXJjaCkuCgogICAgICAgIFZhbHVlcyB3aGljaCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBhcmUgc2V0IHRvIHRoZSBkZWZhdWx0cwogICAgICAgIGdpdmVuIGFzIHBhcmFtZXRlcnMgKHdoaWNoIGFsbCBkZWZhdWx0IHRvICcnKS4KCiAgICBp/////05zCwAAAGphdmEudmVuZG9ycwwAAABqYXZhLnZlcnNpb25zDAAAAGphdmEudm0ubmFtZXMOAAAAamF2YS52bS52ZW5kb3JzDwAAAGphdmEudm0udmVyc2lvbnMMAAAAamF2YS5vcy5hcmNocwwAAABqYXZhLm9zLm5hbWVzDwAAAGphdmEub3MudmVyc2lvbigDAAAAUuoAAABSeAAAAFLsAAAAKAsAAABSiAAAAHQGAAAAdmVuZG9ydAYAAAB2bWluZm90BgAAAG9zaW5mb3QEAAAAamF2YXQHAAAAdm1fbmFtZXQKAAAAdm1fcmVsZWFzZXQJAAAAdm1fdmVuZG9ydAcAAABvc19uYW1ldAoAAABvc192ZXJzaW9udAcAAABvc19hcmNoKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0CAAAAGphdmFfdmVyQQMAAHMiAAAAAA0DARABDQERAg8BDwEPAQ8BDwEPAQ8BDwEPAQ8BDwEPAmMDAAAABQAAAAUAAABDAAAAcx8BAAB8AABkAQBrAgByHQBkAgB8AAB8AQAXfAIAZgMAU3wAAGQDAGsCAHLPAHwBAGQEAGsAAHJCAHwAAHwBAHwCAGYDAFN0AABqAQB8AQBkBQCDAgB9AwB8AwBysQB5FAB0AgB8AwBkBgAZgwEAfQQAV24R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ZBIAfAgAawYAcn4BZBMAfQIAcbEBZBEAfQIAbioAZBQAfAgAawYAcpwBZBQAfQIAbhUAZBUAfAgAawYAcrEBZBYAfQIAbgAAfAEAfAIAZgIAUygXAAAAc5MDAAAgUXVlcmllcyB0aGUgZ2l2ZW4gZXhlY3V0YWJsZSAoZGVmYXVsdHMgdG8gdGhlIFB5dGhvbiBpbnRlcnByZXRlcgogICAgICAgIGJpbmFyeSkgZm9yIHZhcmlvdXMgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uLgoKICAgICAgICBSZXR1cm5zIGEgdHVwbGUgKGJpdHMsbGlua2FnZSkgd2hpY2ggY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQKICAgICAgICB0aGUgYml0IGFyY2hpdGVjdHVyZSBhbmQgdGhlIGxpbmthZ2UgZm9ybWF0IHVzZWQgZm9yIHRoZQogICAgICAgIGV4ZWN1dGFibGUuIEJvdGggdmFsdWVzIGFyZSByZXR1cm5lZCBhcyBzdHJpbmdzLgoKICAgICAgICBWYWx1ZXMgdGhhdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBhcmUgcmV0dXJuZWQgYXMgZ2l2ZW4gYnkgdGhlCiAgICAgICAgcGFyYW1ldGVyIHByZXNldHMuIElmIGJpdHMgaXMgZ2l2ZW4gYXMgJycsIHRoZSBzaXplb2YocG9pbnRlcikKICAgICAgICAob3Igc2l6ZW9mKGxvbmcpIG9uIFB5dGhvbiB2ZXJzaW9uIDwgMS41LjIpIGlzIHVzZWQgYXMKICAgICAgICBpbmRpY2F0b3IgZm9yIHRoZSBzdXBwb3J0ZWQgcG9pbnRlciBzaXplLgoKICAgICAgICBUaGUgZnVuY3Rpb24gcmVsaWVzIG9uIHRoZSBzeXN0ZW0ncyAiZmlsZSIgY29tbWFuZCB0byBkbyB0aGUKICAgICAgICBhY3R1YWwgd29yay4gVGhpcyBpcyBhdmFpbGFibGUgb24gbW9zdCBpZiBub3QgYWxsIFVuaXgKICAgICAgICBwbGF0Zm9ybXMuIE9uIHNvbWUgbm9uLVVuaXggcGxhdGZvcm1zIHdoZXJlIHRoZSAiZmlsZSIgY29tbWFuZAogICAgICAgIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgZXhl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ZSBkZXRlcm1pbmVkLgoKICAgIGkCAAAAKAEAAABS5AAAACgAAAAAKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHlSiAAAACoFAABzAgAAAAAHYwAAAAAAAAAAAgAAAEMAAABzCwAAAHQAAIMAAGQBABlTKAIAAABzhwAAACBSZXR1cm5zIHRoZSBzeXN0ZW0ncyByZWxlYXNlIHZlcnNpb24sIGUuZy4gJyMzIG9uIGRlZ2FzJwoKICAgICAgICBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgoKICAgIGkDAAAAKAEAAABS5AAAACgAAAAAKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHlSFwAAADMFAABzAgAAAAAHYwAAAAAAAAAAAgAAAEMAAABzCwAAAHQAAIMAAGQBABlTKAIAAABzdAAAACBSZXR1cm5zIHRoZSBtYWNoaW5lIHR5cGUsIGUuZy4gJ2kzODYnCgogICAgICAgIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIGRldGVybWluZWQuCgogICAgaQQAAAAoAQAAAFLkAAAAKAAAAAAoAAAAACgAAAAAc1AAAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy9wbGF0Zm9ybS5weVLdAAAAPAUAAHMCAAAAAAdjAAAAAAAAAAACAAAAQwAAAHMLAAAAdAAAgwAAZAEAGVMoAgAAAHMZAQAAIFJldHVybnMgdGhlICh0cnVlKSBwcm9jZXNzb3IgbmFtZSwgZS5nLiAnYW1kazYnCgogICAgICAgIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiB0aGUgdmFsdWUgY2Fubm90IGJlCiAgICAgICAgZGV0ZXJtaW5lZC4gTm90ZSB0aGF0IG1hbnkgcGxhdGZvcm1zIGRvIG5vdCBwcm92aWRlIHRoaXMKICAgICAgICBpbmZvcm1hdGlvbiBvciBzaW1wbHkgcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFzIGZvciBtYWNoaW5lKCksCiAgICAgICAgZS5nLiAgTmV0QlNEIGRvZXMgdGhpcy4KCiAgICBpBQAAACgBAAAAUuQAAAAoAAAAACgAAAAAKAAAAABzUAAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3BsYXRmb3JtLnB5Uk4BAABFBQAAcwIAAAAACnNCAAAAKFtcdy4rXSspXHMqXCgjPyhbXixdKyksXHMqKFtcdyBdKyksXHMqKFtcdyA6XSspXClccypcWyhbXlxdXSspXF0/czsAAABJcm9uUHl0aG9uXHMqKFtcZFwuXSspKD86IFwoKFtcZFwuXSspXCkpPyBvbiAoLk5FVCBbXGRcLl0rKXNFAAAAKFtcdy4rXSspXHMqXCgjPyhbXixdKyksXHMqKFtcdyBdKyksXHMqKFtcdyA6XSspXClccypcW1B5UHkgW15cXV0rXF0/YwEAAAAOAAAABwAAAEMAAABzhQIAAHwAAGQSAGsIAHIYAHQBAGoCAH0AAG4AAHQDAGoEAHwAAGQSAIMCAH0BAHwBAGQSAGsJAHI6AHwBAFN8AABkAQAgZAIAawIAcqgAZAIAfQIAdAUAagYAfAAAgwEAfQMAfAMAZBIAawgAcoQAdAcAZAMAdAgAfAAAgwEAFoMBAIIBAG4AAHwDAGoJAIMAAFwDAH0EAH0FAH0GAGQEAH0HAGQEAH0IAG4+AXQBAGoKAGQFACBkBgBrAgByHAFkBwB9AgB0CwBqBgB8AACDAQB9AwB8AwBkEgBrCABy9QB0BwBkCAB0CAB8AACDAQAWgwEAggEAbgAAfAMAagkAgwAAXAUAfQQAfQcAfQgAfQkAfQoAdAEAagoAfQYAbsoAZAkAfAAAawYAcoMBZAkAfQIAdAwAagYAfAAAgwEAfQMAfAMAZBIAawgAcmIBdAcAZAoAdAgAfAAAgwEAFoMBAIIBAG4AAHwDAGoJAIMAAFwEAH0EAH0HAH0IAH0JAGQEAH0GAG5jAHQLAGoGAHwAAIMBAH0DAHwDAGQSAGsIAHK3AXQHAGQLAHQIAHwAAIMBABaDAQCCAQBuAAB8AwBqCQCDAABcBQB9BAB9BwB9CAB9CQB9BgBkDAB9AgB8CABkDQAXfAkAF30IAHQNAHQBAGQOAIMCAHIKAnQBAGoOAFwDAH0KAH0LAH0MAG4MAGQEAH0LAGQEAH0MAHQPAGoQAHwEAGQPAIMCAH0NAHQRAHwNAIMBAGQQAGsCAHJcAnwNAGoSAGQRAIMBAAF0DwBqEwB8DQBkDwCDAgB9BABuAAB8AgB8BAB8CwB8DAB8BwB8CAB8BgBmBwB9AQB8AQB0AwB8AAA8fAEAUygTAAAAc9sCAAAgUmV0dXJucyBhIHBhcnNlZCB2ZXJzaW9uIG9mIFB5dGhvbidzIHN5cy52ZXJzaW9uIGFzIHR1cGxlCiAgICAgICAgKG5hbWUsIHZlcnNpb24sIGJyYW5jaCwgcmV2aXNpb24sIGJ1aWxkbm8sIGJ1aWxkZGF0ZSwgY29tcGlsZXIpCiAgICAgICAgcmVmZXJyaW5nIHRvIHRoZSBQeXRob24gaW1wbGVtZW50YXRpb24gbmFtZSwgdmVyc2lvbiwgYnJhbmNoLAogICAgICAgIHJldmlzaW9uLCBidWlsZCBudW1iZXIsIGJ1aWxkIGRhdGUvdGltZSBhcyBzdHJpbmcgYW5kIHRoZSBjb21waWxlcgogICAgICAgIGlkZW50aWZpY2F0aW9uIHN0cmluZy4KCiAgICAgICAgTm90ZSB0aGF0IHVubGlrZSB0aGUgUHl0aG9uIHN5cy52ZXJzaW9uLCB0aGUgcmV0dXJuZWQgdmFsdWUKICAgICAgICBmb3IgdGhlIFB5dGhvbiB2ZXJzaW9uIHdpbGwgYWx3YXlzIGluY2x1ZGUgdGhlIHBhdGNobGV2ZWwgKGl0CiAgICAgICAgZGVmYXVsdHMgdG8gJy4wJykuCgogICAgICAgIFRoZSBmdW5jdGlvbiByZXR1cm5zIGVtcHR5IHN0cmluZ3MgZm9yIHR1cGxlIGVudHJpZXMgdGhhdAogICAgICAgIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgoKICAgICAgICBzeXNfdmVyc2lvbiBtYXkgYmUgZ2l2ZW4gdG8gcGFyc2UgYW4gYWx0ZXJuYXRpdmUgdmVyc2lvbgogICAgICAgIHN0cmluZywgZS5nLiBpZiB0aGUgdmVyc2lvbiB3YXMgcmVhZCBmcm9tIGEgZGlmZmVyZW50IFB5dGhvbgogICAgICAgIGludGVycHJldGVyLgoKICAgIGkKAAAAdAoAAABJcm9uUHl0aG9ucyoAAABmYWlsZWQgdG8gcGFyc2UgSXJvblB5dGhvbiBzeXMudmVyc2lvbjogJXNSBQAAAGkEAAAAUvAAAAB0BgAAAEp5dGhvbnMmAAAAZmFpbGVkIHRvIHBhcnNlIEp5dGhvbiBzeXMudmVyc2lvbjogJXN0BAAAAFB5UHlzJAAAAGZhaWxlZCB0byBwYXJzZSBQeVB5IHN5cy52ZXJzaW9uOiAlc3MnAAAAZmFpbGVkIHRvIHBhcnNlIENQeXRob24gc3lzLnZlcnNpb246ICVzdAcAAABDUHl0aG9uUgIBAAB0CgAAAHN1YnZlcnNpb25SewAAAGkCAAAAUkcBAABOKBQAAABSSwAAAFJ5AAAAUhcAAAB0EgAAAF9zeXNfdmVyc2lvbl9jYWNoZVJ2AAAAdB4AAABfaXJvbnB5dGhvbl9zeXNfdmVyc2lvbl9wYXJzZXJSSgAAAFJgAAAAdAQAAAByZXByUhEAAABSegAAAHQTAAAAX3N5c192ZXJzaW9uX3BhcnNlcnQYAAAAX3B5cHlfc3lzX3ZlcnNpb25fcGFyc2VyUgoAAABSVwEAAFIrAAAAUiwAAABSEgAAAFJ8AAAAUoAAAAAoDgAAAHQLAAAAc3lzX3ZlcnNpb250BgAAAHJlc3VsdFKRAAAAUkoAAABSFwAAAHQLAAAAYWx0X3ZlcnNpb250CAAAAGNvbXBpbGVyUsIAAAB0CQAAAGJ1aWxkZGF0ZXQJAAAAYnVpbGR0aW1lUgMBAAB0BgAAAGJyYW5jaHQIAAAAcmV2aXNpb25STwAAACgAAAAAKAAAAABzUAAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3BsYXRmb3JtLnB5dAwAAABfc3lzX3ZlcnNpb25lBQAAc2YAAAAAFQwBDAMSAQwBBAMQAgYBDwEMAQMBAwETARUBBgEJAhMCBgEPAQwBAwEDARMBGwEMAgwCBgEPAQwBBgETARgBCQQPAQwBAwEDARMCGwEGAQ4CDwIVAgYBBgMSARIBDQEVAxsBCgFjAAAAAAAAAAACAAAAQwAAAHMLAAAAdAAAgwAAZAEAGVMoAgAAAHNSAQAAIFJldHVybnMgYSBzdHJpbmcgaWRlbnRpZnlpbmcgdGhlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbi4KCiAgICAgICAgQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGltcGxlbWVudGF0aW9ucyBhcmUgaWRlbnRpZmllZDoKICAgICAgICAgICdDUHl0aG9uJyAoQyBpbXBsZW1lbnRhdGlvbiBvZiBQeXRob24pLAogICAgICAgICAgJ0lyb25QeXRob24nICguTkVUIGltcGxlbWVudGF0aW9uIG9mIFB5dGhvbiksCiAgICAgICAgICAnSnl0aG9uJyAoSmF2YSBpbXBsZW1lbnRhdGlvbiBvZiBQeXRob24pLAogICAgICAgICAgJ1B5UHknIChQeXRob24gaW1wbGVtZW50YXRpb24gb2YgUHl0aG9uKS4KCiAgICBpAAAAACgBAAAAUmUBAAAoAAAAACgAAAAAKAAAAABzUAAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3BsYXRmb3JtLnB5dBUAAABweXRob25faW1wbGVtZW50YXRpb27CBQAAcwIAAAAAC2MAAAAAAAAAAAIAAABDAAAAcwsAAAB0AACDAABkAQAZUygCAAAAc8gAAAAgUmV0dXJucyB0aGUgUHl0aG9uIHZlcnNpb24gYXMgc3RyaW5nICdtYWpvci5taW5vci5wYXRjaGxldmVsJwoKICAgICAgICBOb3RlIHRoYXQgdW5saWtlIHRoZSBQeXRob24gc3lzLnZlcnNpb24sIHRoZSByZXR1cm5lZCB2YWx1ZQogICAgICAgIHdpbGwgYWx3YXlzIGluY2x1ZGUgdGhlIHBhdGNobGV2ZWwgKGl0IGRlZmF1bHRzIHRvIDApLgoKICAgIGkBAAAAKAEAAABSZQEAACgAAAAAKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0DgAAAHB5dGhvbl92ZXJzaW9uzwUAAHMCAAAAAAhjAAAAAAAAAAAEAAAAQwAAAHMdAAAAdAAAdAEAagIAdAMAgwAAZAEAGWQCAIMCAIMBAFMoAwAAAHPdAAAAIFJldHVybnMgdGhlIFB5dGhvbiB2ZXJzaW9uIGFzIHR1cGxlIChtYWpvciwgbWlub3IsIHBhdGNobGV2ZWwpCiAgICAgICAgb2Ygc3RyaW5ncy4KCiAgICAgICAgTm90ZSB0aGF0IHVubGlrZSB0aGUgUHl0aG9uIHN5cy52ZXJzaW9uLCB0aGUgcmV0dXJuZWQgdmFsdWUKICAgICAgICB3aWxsIGFsd2F5cyBpbmNsdWRlIHRoZSBwYXRjaGxldmVsIChpdCBkZWZhdWx0cyB0byAwKS4KCiAgICBpAQAAAFJ7AAAAKAQAAABSTAAAAFIrAAAAUiwAAABSZQEAACgAAAAAKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0FAAAAHB5dGhvbl92ZXJzaW9uX3R1cGxl2QUAAHMCAAAAAAljAAAAAAAAAAACAAAAQwAAAHMLAAAAdAAAgwAAZAEAGVMoAgAAAHPoAAAAIFJldHVybnMgYSBzdHJpbmcgaWRlbnRpZnlpbmcgdGhlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbgogICAgICAgIGJyYW5jaC4KCiAgICAgICAgRm9yIENQeXRob24gdGhpcyBpcyB0aGUgU3VidmVyc2lvbiBicmFuY2ggZnJvbSB3aGljaCB0aGUKICAgICAgICBQeXRob24gYmluYXJ5IHdhcyBidWlsdC4KCiAgICAgICAgSWYgbm90IGF2YWlsYWJsZSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgoKICAgIGkCAAAAKAEAAABSZQEAACgAAAAAKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0DQAAAHB5dGhvbl9icmFuY2jkBQAAcwIAAAAADGMAAAAAAAAAAAIAAABDAAAAcwsAAAB0AACDAABkAQAZUygCAAAAc+wAAAAgUmV0dXJucyBhIHN0cmluZyBpZGVudGlmeWluZyB0aGUgUHl0aG9uIGltcGxlbWVudGF0aW9uCiAgICAgICAgcmV2aXNpb24uCgogICAgICAgIEZvciBDUHl0aG9uIHRoaXMgaXMgdGhlIFN1YnZlcnNpb24gcmV2aXNpb24gZnJvbSB3aGljaCB0aGUKICAgICAgICBQeXRob24gYmluYXJ5IHdhcyBidWlsdC4KCiAgICAgICAgSWYgbm90IGF2YWlsYWJsZSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgoKICAgIGkDAAAAKAEAAABSZQEAACgAAAAAKAAAAAAoAAAAAHNQAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvcGxhdGZvcm0ucHl0DwAAAHB5dGhvbl9yZXZpc2lvbvIFAABzAgAAAAALYwAAAAAAAAAAAwAAAEMAAABzDgAAAHQAAIMAAGQBAGQCACFTKAMAAABzaAAAACBSZXR1cm5zIGEgdHVwbGUgKGJ1aWxkbm8sIGJ1aWxkZGF0ZSkgc3RhdGluZyB0aGUgUHl0aG9uCiAgICAgICAgYnVpbGQgbnVtYmVyIGFuZCBkYXRlIGFzIHN0cmluZ3MuCgogICAgaQQAAABpBgAAACgBAAAAUmUBAAAoAAAAACgAAAAAKAAAAABzUAAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3BsYXRmb3JtLnB5dAwAAABweXRob25fYnVpbGT/BQAAcwIAAAAABmMAAAAAAAAAAAIAAABDAAAAcwsAAAB0AACDAABkAQAZUygCAAAAc1MAAAAgUmV0dXJucyBhIHN0cmluZyBpZGVudGlmeWluZyB0aGUgY29tcGlsZXIgdXNlZCBmb3IgY29tcGlsaW5nCiAgICAgICAgUHl0aG9u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