VQ0NCgAAAADLuIxjjXYBAOMAAAAAAAAAAAAAAAAAAAAADQAAAEAAAABz+AUAAFUAZABkAWwAWgBkAGQBbAFaAWQAZAFsAloCZABkAWwDWgNkAGQBbARaBGQAZAFsBVoFZABkAWwGWgZkAGQCbAdtCFoIbQlaCQEAZABkA2wKbQtaC20MWgwBAGQAZARsDW0NWg0BAGQAZAVsDm0PWg8BAGQAZAZsEG0QWhABAGQAZAdsEW0SWhIBAGQAZAhsAG0TWhMBAGQAZAlsFG0VWhUBAGQAZApsFm0XWhcBAGQAZAtsGG0ZWhkBAGQAZAxsGm0bWhttHFocbR1aHQEAZABkDWwebR9aH20gWiBtIVohbSJaIm0jWiNtJFokbSVaJW0mWiZtJ1onbShaKG0pWiltKloqbStaK20sWixtLVotAQBlBGouZA5rBZABcjRkAGQPbB5tL1ovbTBaMG0xWjEBAG4UZABkD2wybS9aL20wWjBtMVoxAQBkEGQRbDNtNFo0bTVaNQEAZBBkEmw2bTZaNgEAZBBkE2w3bThaOG05WjkBAGQQZBRsOm07WjttPFo8AQBkEGQVbD1tPlo+bT9aPwEAZBBkFmxAbUFaQW1CWkIBAGQQZBdsQ21EWkQBAGQQZBhsRW1GWkYBAGQQZBlsR21IWkhtSVpJAQBkEGQabEptS1pMAQBkEGQbbE1tTlpObU9aTwEAZBBkHGxQbVFaUW1SWlIBAGQQZB1sU21UWlRtVVpVAQBkEGQebFZtV1pXAQBkEGQfbFhtWVpZAQBkEGQgbFptW1pbAQBkEGQhbFxtXVpdAQBkEGQibF5tX1pfAQBkEGQjbGBtYVphbWJaYgEAZBBkJGxjbWRaZAEAZBBkJWxlbWZaZm1nWmdtaFpoAQBkEGQmbGltalpqbWtaawEAZBBkJ2xsbW1abW1uWm4BAGUgkAJyvmQQZChsb21wWnABAGQQZClscW1yWnIBAGQQZCpsc210WnQBAGQrWnVkLFp2ZQOgd6EAZC1rAlp4ZSJlLGV5ZC5mAhkAZwFkLmYCGQBaemUvZC8ZAFp7ZS9kMBkAWnxHAGQxZDKEAGQygwJafWV9gwBafnoOZQRqf6CAoQBagVcAbhoEAGWCawqQA3I0AQABAAEAZABagVkAbgJYAHoOZQRqg6CAoQBahFcAbhoEAGWCawqQA3JeAQABAAEAZBBahFkAbgJYAHoOZQRqhaCAoQBahlcAbhoEAGWCawqQA3KIAQABAAEAZDNahlkAbgJYAGWBZYRlhmYDWodlhGWGZgJaiGVBaollQWqKZDScAlqLRwBkNWQ2hABkNmUngwNajGULRwBkN2Q4hABkOIMCgwFajWUxRwBkOWQ6hABkOmUwgwODAVqOZTFHAGQ7ZDyEAGQ8ZTCDA4MBWo9lLGWPZY5leWYDGQBakGUkZSxlkGVfZgIZABkAWpFlSIMAWpJHAGQ9ZD6EAGQ+ZYKDA1qTRwBkP2RAhABkQIMCWpRHAGRBZEKEAGRCgwJalUcAZENkRIQAZESDAlqWRwBkRWRGhABkRoMCWpdHAGRHZEiEAGRIgwJamEcAZElkSoQAZEqDAlqZRwBkS2RMhABkTIMCWppkh2WbZSJkTmUiZE5lmmYCGQBmAhkAZE+cAmRQZFGEBVqcZZtkUpwBZFNkVIQEWp1lQWqKZUFqiWVBap5lQWp4ZFWcBFqfZFZkV4QAZZ+goKEARACDAVqhZQtHAGRYZFmEAGRZZQVqooMDgwFao0cAZFpkW4QAZFtlCIMDWqRkAWGlZShkXBkAZaZkXTwAZFxkUpwBZF5kX4QEWqdlm2RSnAFkYGRhhARaqEcAZGJkY4QAZGODAlqpZXlleWRknAJkZWRmhARaqmWrZGdrApAFcvRlqWRNZGiNAVqsZaygrWRpZGpka2RNZGxkAWRtZG5kb2RwZHGcAmRyZHOcBKEHAQBlrKCtZHRkdWWuZayDAaEDAQBlrKCvZAFnAGRNZHZkd2R4ZHlkemcEZHpke5wDZHycAmRsZH1kfmR/ZIBkgWcEZIBke5wDZIJkEGQzZHJkg2cEZINke5wDZIScA2SFnAJkhpwDoQEBAGQBUwApiOkAAAAATikC2gNBQkPaDmFic3RyYWN0bWV0aG9kKQLaCWRhdGFjbGFzc9oFZmllbGQpAdoIZGF0ZXRpbWUpAdoFd3JhcHMpAdoHZ2V0cGFzcykB2gZlc2NhcGUpAdoHaXNjbGFzcykB2gZpc2xpY2UpAdoEY2VpbCkB2gltb25vdG9uaWMpA9oJRnJhbWVUeXBl2gpNb2R1bGVUeXBl2g1UcmFjZWJhY2tUeXBlKQ/aAklP2g1UWVBFX0NIRUNLSU5H2gNBbnnaCENhbGxhYmxl2gREaWN02ghJdGVyYWJsZdoETGlzdNoHTWFwcGluZ9oKTmFtZWRUdXBsZdoIT3B0aW9uYWzaBlRleHRJT9oFVHVwbGXaBFR5cGXaBVVuaW9u2gRjYXN0KQLpAwAAAOkIAAAAKQPaB0xpdGVyYWzaCFByb3RvY29s2hFydW50aW1lX2NoZWNrYWJsZekBAAAAKQLaBmVycm9yc9oGdGhlbWVzKQHaDl9lbW9qaV9yZXBsYWNlKQLaE0NPTlNPTEVfSFRNTF9GT1JNQVTaEkNPTlNPTEVfU1ZHX0ZPUk1BVCkC2hJGb3JtYXRUaW1lQ2FsbGFibGXaCUxvZ1JlbmRlcikC2gVBbGlnbtoLQWxpZ25NZXRob2QpAtoLQ29sb3JTeXN0ZW3aCWJsZW5kX3JnYikB2gdDb250cm9sKQHaDEVtb2ppVmFyaWFudCkC2g9OdWxsSGlnaGxpZ2h0ZXLaD1JlcHJIaWdobGlnaHRlcqkB2gZyZW5kZXIpAtoLTWVhc3VyZW1lbnTaE21lYXN1cmVfcmVuZGVyYWJsZXMpAtoFUGFnZXLaC1N5c3RlbVBhZ2VyKQLaBlByZXR0edoNaXNfZXhwYW5kYWJsZSkB2glyaWNoX2Nhc3QpAdoGUmVnaW9uKQHaDHJlbmRlcl9zY29wZSkB2gZTY3JlZW4pAdoHU2VnbWVudCkC2gVTdHlsZdoJU3R5bGVUeXBlqQHaBlN0eWxlZCkD2hZERUZBVUxUX1RFUk1JTkFMX1RIRU1F2hBTVkdfRVhQT1JUX1RIRU1F2g1UZXJtaW5hbFRoZW1lKQLaBFRleHTaCFRleHRUeXBlKQLaBVRoZW1l2gpUaGVtZVN0YWNrKQHaFldpbmRvd3NDb25zb2xlRmVhdHVyZXMpAdoETGl2ZakB2gZTdGF0dXPpcwAAAOlkAAAA2gdXaW5kb3dzckkAAAApBdoHZGVmYXVsdNoEbGVmdNoGY2VudGVy2gVyaWdodNoEZnVsbCkE2gRmb2xk2gRjcm9wWghlbGxpcHNpc9oGaWdub3JlYwAAAAAAAAAAAAAAAAAAAAABAAAAQAAAAHMMAAAAZQBaAWQAWgJkAVMAKQLaCE5vQ2hhbmdlTikD2ghfX25hbWVfX9oKX19tb2R1bGVfX9oMX19xdWFsbmFtZV9fqQByYAAAAHJgAAAA+jwvdG1wL3BpcC11bnBhY2tlZC13aGVl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AWUOZQ1kBGQ4nANkOWQ6hAZaMWQEZA6cAWQ7ZDyEBFoyZAdkN5wBZQ5lDWUzZDicA2Q9ZD6EBlo0ZRplC2UIGQBkDpwBZD9kQIQEgwFaNWUaZQhkDpwBZEFkQoQEgwFaNmUaZQ1kDpwBZENkRIQEgwFaN2UaZQ1kDpwBZEVkRoQEgwFaOGUaZTlkDpwBZEdkSIQEgwFaOmUaZTtkDpwBZElkSoQEgwFaPGU8ahxlPWUQZRBmAhkAZARkS5wCZExkSoQEgwFaPGUaZRBkDpwBZE1kToQEgwFaPmU+ahxlEGQEZE+cAmRQZE6EBIMBWj5lGmUQZA6cAWRRZFKEBIMBWj9lP2ocZRBkBGRTnAJkVGRShASDAVo/ZARkDpwBZFVkVoQEWkBlQWQOnAFkV2RYhARaQmThZQtlQxkAZQ1lDWVEZFmcBGRaZFuEBVpFZOJlEGQEZF2cAmReZF+EBVpGZONlDWQEZGCcAmRhZGKEBVpHZGNkZGRlZGZkZ5wEZUhlCGUIZRdlF2RoZGmcBmRqZGuEBlpJZORlDWUNZGycAmRtZG6EBVpKZOVlDWUNZG+cAmRwZHGEBVpLZRplDWQOnAFkcmRzhASDAVpMZQhlDWR0nAJkdWR2hARaTWTmZQ1lC2URGQBkd2R4nANkeWR6hAVaTmQEZHucAWVIZQtlORkAZU9kfJwDZH1kfoQGWlBk52VIZQtlORkAZVFlHhkAZHycA2R/ZICEBVpSZOhkBGQHZAVkgZwDZUhlC2U5GQBlC2VTGQBlDWUNZR1lHWUeGQAZAGSCnAZkg2SEhAdaVGSFZARkBGQEZARkBGQEZIacB2UIZRNlCGVTZgIZAGULZVUZAGULZVYZAGULZQ0ZAGULZQ0ZAGULZQ0ZAGULZVcZAGSHZIicCWSJZIqEBlpYZARki5wBZRNlCGVTZgIZAGULZRNlU2UIZgIZABkAZVNkjJwDZI1kjoQGWllkBGQEZARkBGSPnARlUWUtGQBlCGUIZQtlVRkAZQtlDRkAZQtlDRkAZQtlDRkAZR1lWhkAZJCcCGSRZJKEBlpbZOlkk2SUZJVklpwDZVxlCGUTZQhlU2YCGQBlXWQEZJecBWSYZJmEB1peZV9kBGSanAJkm2SchARaYGSdZJ5kBGQEZJ+cBGUtZQhlCGULZRNlCGVTZgIZABkAZQtlDRkAZARkoJwGZKFkooQGWmFknWSeZARkBGQEZARkBGQEZARkBGQEZAdkBGQFZKOcDmUtZQhlCGULZRNlCGVTZgIZABkAZQtlVRkAZQtlVhkAZQtlDRkAZQtlDRkAZQtlDRkAZQtlDRkAZQtlEBkAZQtlEBkAZQ1lC2UNGQBlDWQEZKScEGSlZKaEBlpiZOpkBGSnZAdkBWQHZAdkB2QEZAVkqJwJZQtlCBkAZS1lE2QEZRBlCGYDGQBlDWUNZQ1lDWUNZQtlFWUtZwFlLWYCGQAZAGUNZARkqZwLZKpkq4QHWmNkBGQEZKycAmVIZQtlZBkAZQtlORkAZARkrZwEZK5kr4QGWmVk62UdZR1lHhkAGQBlEGUQZARksZwEZLJks4QFWmZktGS1ZARkBWQFZLZktGS3nAdlC2UQGQBlEGULZQgZAGUNZQ1lUWUTZQhlZ2YCGQAZAGUQZARkuJwIZLlkuoQGWmhlaWVqamtmAWUQZRVnAGULZWwZAGYCGQBlPWUIZRBlbWUIZS1mAhkAZgMZAGS7nANkvGS9hAWDAVpuZJ1knmQEZARkBGQEZARkBWRcZL6cCWUtZQhlCGULZRNlCGVTZgIZABkAZQtlVRkAZQtlDRkAZQtlDRkAZQtlDRkAZQ1lEGQEZL+cC2TAZMGEBlpvZARkDpwBZMJkw4QEWnBlUWUeGQBlCGTEnAJkxWTGhARacWTsZAdkB2QFZARkx5wEZVxlDWUNZQ1lC2VyGQBlCGTInAZkyWTKhAdac2QHZAVky5wCZQ1lDWUIZMycA2TNZM6EBlp0ZAdkBWTLnAJlCGUNZQ1kBGTPnARk0GTRhAZadWQEZAdkBGQFZNKcBGULZXYZAGUNZQtlCBkAZQ1lCGTTnAVk1GTVhAZad2QEZAdleGQFZNKcBGUIZQtldhkAZQ1lCGUNZARk1pwGZNdk2IQGWnlk2WQEZAdlemTanARlCGULZXYZAGUNZQhlCGTbnAVk3GTdhAZae2TZZARkB2V6ZNqcBGUIZQhlC2V2GQBlDWUIZARk3pwGZN9k4IQGWnxkBFMAKe1ylQAAAGFyDAAAQSBoaWdoIGxldmVsIGNvbnNvbGUgaW50ZXJmYWNlLgoKICAgIEFyZ3M6CiAgICAgICAgY29sb3Jfc3lzdGVtIChzdHIsIG9wdGlvbmFsKTogVGhlIGNvbG9yIHN5c3RlbSBzdXBwb3J0ZWQgYnkgeW91ciB0ZXJtaW5hbCwKICAgICAgICAgICAgZWl0aGVyIGBgInN0YW5kYXJkImBgLCBgYCIyNTYiYGAgb3IgYGAidHJ1ZWNvbG9yImBgLiBMZWF2ZSBhcyBgYCJhdXRvImBgIHRvIGF1dG9kZXRlY3QuCiAgICAgICAgZm9yY2VfdGVybWluYWwgKE9wdGlvbmFsW2Jvb2xdLCBvcHRpb25hbCk6IEVuYWJsZS9kaXNhYmxlIHRlcm1pbmFsIGNvbnRyb2wgY29kZXMsIG9yIE5vbmUgdG8gYXV0by1kZXRlY3QgdGVybWluYWwuIERlZmF1bHRzIHRvIE5vbmUuCiAgICAgICAgZm9yY2VfanVweXRlciAoT3B0aW9uYWxbYm9vbF0sIG9wdGlvbmFsKTogRW5hYmxlL2Rpc2FibGUgSnVweXRlciByZW5kZXJpbmcsIG9yIE5vbmUgdG8gYXV0by1kZXRlY3QgSnVweXRlci4gRGVmYXVsdHMgdG8gTm9uZS4KICAgICAgICBmb3JjZV9pbnRlcmFjdGl2ZSAoT3B0aW9uYWxbYm9vbF0sIG9wdGlvbmFsKTogRW5hYmxlL2Rpc2FibGUgaW50ZXJhY3RpdmUgbW9kZSwgb3IgTm9uZSB0byBhdXRvIGRldGVjdC4gRGVmYXVsdHMgdG8gTm9uZS4KICAgICAgICBzb2Z0X3dyYXAgKE9wdGlvbmFsW2Jvb2xdLCBvcHRpb25hbCk6IFNldCBzb2Z0IHdyYXAgZGVmYXVsdCBvbiBwcmludCBtZXRob2QuIERlZmF1bHRzIHRvIEZhbHNlLgogICAgICAgIHRoZW1lIChUaGVtZSwgb3B0aW9uYWwpOiBBbiBvcHRpb25hbCBzdHlsZSB0aGVtZSBvYmplY3QsIG9yIGBgTm9uZWBgIGZvciBkZWZhdWx0IHRoZW1lLgogICAgICAgIHN0ZGVyciAoYm9vbCwgb3B0aW9uYWwpOiBVc2Ugc3RkZXJyIHJhdGhlciB0aGFuIHN0ZG91dCBpZiBgYGZpbGVgYCBpcyBub3Qgc3BlY2lmaWVkLiBEZWZhdWx0cyB0byBGYWxzZS4KICAgICAgICBmaWxlIChJTywgb3B0aW9uYWwpOiBBIGZpbGUgb2JqZWN0IHdoZXJlIHRoZSBjb25zb2xlIHNob3VsZCB3cml0ZSB0by4gRGVmYXVsdHMgdG8gc3Rkb3V0LgogICAgICAgIHF1aWV0IChib29sLCBPcHRpb25hbCk6IEJvb2xlYW4gdG8gc3VwcHJlc3MgYWxsIG91dHB1dC4gRGVmYXVsdHMgdG8gRmFsc2UuCiAgICAgICAgd2lkdGggKGludCwgb3B0aW9uYWwpOiBUaGUgd2lkdGggb2YgdGhlIHRlcm1pbmFsLiBMZWF2ZSBhcyBkZWZhdWx0IHRvIGF1dG8tZGV0ZWN0IHdpZHRoLgogICAgICAgIGhlaWdodCAoaW50LCBvcHRpb25hbCk6IFRoZSBoZWlnaHQgb2YgdGhlIHRlcm1pbmFsLiBMZWF2ZSBhcyBkZWZhdWx0IHRvIGF1dG8tZGV0ZWN0IGhlaWdodC4KICAgICAgICBzdHlsZSAoU3R5bGVUeXBlLCBvcHRpb25hbCk6IFN0eWxlIHRvIGFwcGx5IHRvIGFsbCBvdXRwdXQsIG9yIE5vbmUgZm9yIG5vIHN0eWxlLiBEZWZhdWx0cyB0byBOb25lLgogICAgICAgIG5vX2NvbG9yIChPcHRpb25hbFtib29sXSwgb3B0aW9uYWwpOiBFbmFibGVkIG5vIGNvbG9yIG1vZGUsIG9yIE5vbmUgdG8gYXV0byBkZXRlY3QuIERlZmF1bHRzIHRvIE5vbmUuCiAgICAgICAgdGFiX3NpemUgKGludCwgb3B0aW9uYWwpOiBOdW1iZXIgb2Ygc3BhY2VzIHVzZWQgdG8gcmVwbGFjZSBhIHRhYiBjaGFyYWN0ZXIuIERlZmF1bHRzIHRvIDguCiAgICAgICAgcmVjb3JkIChib29sLCBvcHRpb25hbCk6IEJvb2xlYW4gdG8gZW5hYmxlIHJlY29yZGluZyBvZiB0ZXJtaW5hbCBvdXRwdXQsCiAgICAgICAgICAgIHJlcXVpcmVkIHRvIGNhbGwgOm1ldGg6YGV4cG9ydF9odG1sYCwgOm1ldGg6YGV4cG9ydF9zdmdgLCBhbmQgOm1ldGg6YGV4cG9ydF90ZXh0YC4gRGVmYXVsdHMgdG8gRmFsc2UuCiAgICAgICAgbWFya3VwIChib29sLCBvcHRpb25hbCk6IEJvb2xlYW4gdG8gZW5hYmxlIDpyZWY6YGNvbnNvbGVfbWFya3VwYC4gRGVmYXVsdHMgdG8gVHJ1ZS4KICAgICAgICBlbW9qaSAoYm9vbCwgb3B0aW9uYWwpOiBFbmFibGUgZW1vamkgY29kZS4gRGVmYXVsdHMgdG8gVHJ1ZS4KICAgICAgICBlbW9qaV92YXJpYW50IChzdHIsIG9wdGlvbmFsKTogT3B0aW9uYWwgZW1vamkgdmFyaWFudCwgZWl0aGVyICJ0ZXh0IiBvciAiZW1vamkiLiBEZWZhdWx0cyB0byBOb25lLgogICAgICAgIGhpZ2hsaWdodCAoYm9vbCwgb3B0aW9uYWwpOiBFbmFibGUgYXV0b21hdGljIGhpZ2hsaWdodGluZy4gRGVmYXVsdHMgdG8gVHJ1ZS4KICAgICAgICBsb2dfdGltZSAoYm9vbCwgb3B0aW9uYWwpOiBCb29sZWFuIHRvIGVuYWJsZSBsb2dnaW5nIG9mIHRpbWUgYnkgOm1ldGg6YGxvZ2AgbWV0aG9kcy4gRGVmYXVsdHMgdG8gVHJ1ZS4KICAgICAgICBsb2dfcGF0aCAoYm9vbCwgb3B0aW9uYWwpOiBCb29sZWFuIHRvIGVuYWJsZSB0aGUgbG9nZ2luZyBvZiB0aGUgY2FsbGVyIGJ5IDptZXRoOmBsb2dgLiBEZWZhdWx0cyB0byBUcnVlLgogICAgICAgIGxvZ190aW1lX2Zvcm1hdCAoVW5pb25bc3RyLCBUaW1lRm9ybWF0dGVyQ2FsbGFibGVdLCBvcHRpb25hbCk6IElmIGBgbG9nX3RpbWVgYCBpcyBlbmFibGVkLCBlaXRoZXIgc3RyaW5nIGZvciBzdHJmdGltZSBvciBjYWxsYWJsZSB0aGF0IGZvcm1hdHMgdGhlIHRpbWUuIERlZmF1bHRzIHRvICJbJVhdICIuCiAgICAgICAgaGlnaGxpZ2h0ZXIgKEhpZ2hsaWdodGVyVHlwZSwgb3B0aW9uYWwpOiBEZWZhdWx0IGhpZ2hsaWdodGVyLgogICAgICAgIGxlZ2FjeV93aW5kb3dzIChib29sLCBvcHRpb25hbCk6IEVuYWJsZSBsZWdhY3kgV2luZG93cyBtb2RlLCBvciBgYE5vbmVgYCB0byBhdXRvIGRldGVjdC4gRGVmYXVsdHMgdG8gYGBOb25lYGAuCiAgICAgICAgc2FmZV9ib3ggKGJvb2wsIG9wdGlvbmFsKTogUmVzdHJpY3QgYm94IG9wdGlvbnMgdGhhdCBkb24ndCByZW5kZXIgb24gbGVnYWN5IFdpbmRvd3MuCiAgICAgICAgZ2V0X2RhdGV0aW1lIChDYWxsYWJsZVtbXSwgZGF0ZXRpbWVdLCBvcHRpb25hbCk6IENhbGxhYmxlIHRoYXQgZ2V0cyB0aGUgY3VycmVudCB0aW1lIGFzIGEgZGF0ZXRpbWUuZGF0ZXRpbWUgb2JqZWN0ICh1c2VkIGJ5IENvbnNvbGUubG9nKSwKICAgICAgICAgICAgb3IgTm9uZSBmb3IgZGF0ZXRpbWUubm93LgogICAgICAgIGdldF90aW1lIChDYWxsYWJsZVtbXSwgdGltZV0sIG9wdGlvbmFsKTogQ2FsbGFibGUgdGhhdCBnZXRzIHRoZSBjdXJyZW50IHRpbWUgaW4gc2Vjb25kcywgZGVmYXVsdCB1c2VzIHRpbWUubW9ub3RvbmljLgogICAg2ghfZW52aXJvbtoEYXV0b05GciEAAABUegRbJVhdKRzaDGNvbG9yX3N5c3RlbdoOZm9yY2VfdGVybWluYWzaDWZvcmNlX2p1cHl0ZXLaEWZvcmNlX2ludGVyYWN0aXZl2glzb2Z0X3dyYXByuwAAANoGc3RkZXJy2gRmaWxl2gVxdWlldHJkAAAAcmUAAAByzwAAANoIbm9fY29sb3LaCHRhYl9zaXpl2gZyZWNvcmRydQAAANoFZW1vamnaDWVtb2ppX3ZhcmlhbnRydAAAANoIbG9nX3RpbWXaCGxvZ19wYXRo2g9sb2dfdGltZV9mb3JtYXTaC2hpZ2hsaWdodGVycmsAAADaCHNhZmVfYm942gxnZXRfZGF0ZXRpbWXaCGdldF90aW1lcgABAAApBXIBAQAAcuwAAABy7QAAAHLuAAAAcu8AAADaD0hpZ2hsaWdodGVyVHlwZWMBAAAAAAAAABwAAAAhAAAABQAAAEMAAABzXAIAAHwcZABrCXIOfBx8AF8AfANkAGsIchx0AYMAbgJ8A3wAXwJ8AGoCcox8CmQAawhyWnwAagCgA2QBoQF9HXwdZABrCXJWfB2gBKEAclZ0BXwdgwF9Cm4EdAZ9CnwLZABrCHKMfABqAKADZAKhAX0efB5kAGsJcoh8HqAEoQByiHQFfB6DAX0LbgR0B30LfA58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AHMQAAAAdAB8AHwBfAJ8A2QBjQRTACkCYRcDAABBIGNvbnRleHQgbWFuYWdlciB0byBkaXNwbGF5IGFueXRoaW5nIHByaW50ZWQgd2l0aGluIGEgInBhZ2VyIi4gVGhlIHBhZ2VyIGFwcGxpY2F0aW9uCiAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgc3lzdGVtIGFuZCB3aWxsIHR5cGljYWxseSBzdXBwb3J0IGF0IGxlYXN0IHByZXNzaW5nIGEga2V5IHRvIHNjcm9sbC4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgcGFnZXIgKFBhZ2VyLCBvcHRpb25hbCk6IEEgcGFnZXIgb2JqZWN0LCBvciBOb25lIHRvIHVzZSA6Y2xhc3M6YH5yaWNoLnBhZ2VyLlN5c3RlbVBhZ2VyYC4gRGVmYXVsdHMgdG8gTm9uZS4KICAgICAgICAgICAgc3R5bGVzIChib29sLCBvcHRpb25hbCk6IFNob3cgc3R5bGVzIGluIHBhZ2VyLiBEZWZhdWx0cyB0byBGYWxzZS4KICAgICAgICAgICAgbGlua3MgKGJvb2wsIG9wdGlvbmFsKTogU2hvdyBsaW5rcyBpbiBwYWdlci4gRGVmYXVsdHMgdG8gRmFsc2UuCgogICAgICAgIEV4YW1wbGU6CiAgICAgICAgICAgID4+PiBmcm9tIHJpY2guY29uc29sZSBpbXBvcnQgQ29uc29sZQogICAgICAgICAgICA+Pj4gZnJvbSByaWNoLl9fbWFpbl9fIGltcG9ydCBtYWtlX3Rlc3RfY2FyZAogICAgICAgICAgICA+Pj4gY29uc29sZSA9IENvbnNvbGUoKQogICAgICAgICAgICA+Pj4gd2l0aCBjb25zb2xlLnBhZ2VyKCk6CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5wcmludChtYWtlX3Rlc3RfY2FyZCgpKQoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBQYWdlckNvbnRleHQ6IEEgY29udGV4dCBtYW5hZ2VyLgogICAgICAgICkDcsAAAABywQAAAHLCAAAAKQFyvwAAACkEcnsAAABywAAAAHLBAAAAcsIAAAByYAAAAHJgAAAAcmEAAABywAAAADcEAABzAgAAAAAVeg1D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IGFsdCBzY3JlZW4gd2FzIGVuYWJsZWQsIG90aGVyd2lzZSBGYWxzZS4KICAgICAgICApAXI1AQAAcnoAAAByYAAAAHJgAAAAcmEAAADaDWlzX2FsdF9zY3JlZW6kBAAAcwIAAAAAB3oVQ29uc29sZS5pc19hbHRfc2NyZWVuKQLaBXRpdGxlcncAAABjAgAAAAAAAAAAAAAAAgAAAAUAAABDAAAAcx4AAAB8AGoAchp8AKABdAKgA3wBoQGhAQEAZAFTAGQCUwApA2EUBQAAU2V0IHRoZSB0aXRsZSBvZiB0aGUgY29uc29sZSB0ZXJtaW5hbCB3aW5kb3cuCgogICAgICAgIFdhcm5pbmc6IFRoZXJlIGlzIG5vIG1lYW5zIHdpdGhpbiBSaWNoIG9mICJyZXNldHRpbmciIHRoZSB3aW5kb3cgdGl0bGUgdG8gaXRzCiAgICAgICAgcHJldmlvdXMgdmFsdWUsIG1lYW5pbmcgdGhlIHRpdGxlIHlvdSBzZXQgd2lsbCBwZXJzaXN0IGV2ZW4gYWZ0ZXIgeW91ciBhcHBsaWNhdGlvbgogICAgICAgIGV4aXRzLgoKICAgICAgICBgYGZpc2hgYCBzaGVsbCByZXNldHMgdGhlIHdpbmRvdyB0aXRsZSBiZWZvcmUgYW5kIGFmdGVyIGVhY2ggY29tbWFuZCBieSBkZWZhdWx0LAogICAgICAgIG5lZ2F0aW5nIHRoaXMgaXNzdWUuIFdpbmRvd3MgVGVybWluYWwgYW5kIGNvbW1hbmQgcHJvbXB0IHdpbGwgYWxzbyByZXNldCB0aGUgdGl0bGUgZm9yIHlvdS4KICAgICAgICBNb3N0IG90aGVyIHNoZWxscyBhbmQgdGVybWluYWxzLCBob3dldmVyLCBkbyBub3QgZG8gdGhpcy4KCiAgICAgICAgU29tZSB0ZXJtaW5hbHMgbWF5IHJlcXVpcmUgY29uZmlndXJhdGlvbiBjaGFuZ2VzIGJlZm9yZSB5b3UgY2FuIHNldCB0aGUgdGl0bGUuCiAgICAgICAgU29tZSB0ZXJtaW5hbHMgbWF5IG5vdCBzdXBwb3J0IHNldHRpbmcgdGhlIHRpdGxlIGF0IGFsbC4KCiAgICAgICAgT3RoZXIgc29mdHdhcmUgKGluY2x1ZGluZyB0aGUgdGVybWluYWwgaXRzZWxmLCB0aGUgc2hlbGwsIGN1c3RvbSBwcm9tcHRzLCBwbHVnaW5zLCBldGMuKQogICAgICAgIG1heSBhbHNvIHNldCB0aGUgdGVybWluYWwgd2luZG93IHRpdGxlLiBUaGlzIGNvdWxkIHJlc3VsdCBpbiB3aGF0ZXZlciB2YWx1ZSB5b3Ugd3JpdGUKICAgICAgICB1c2luZyB0aGlzIG1ldGhvZCBiZWluZyBvdmVyd3JpdHRlbi4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgdGl0bGUgKHN0cik6IFRoZSBuZXcgdGl0bGUgb2YgdGhlIHRlcm1pbmFsIHdpbmRvdy4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgYm9vbDogVHJ1ZSBpZiB0aGUgY29udHJvbCBjb2RlIHRvIGNoYW5nZSB0aGUgdGVybWluYWwgdGl0bGUgd2FzCiAgICAgICAgICAgICAgICB3cml0dGVuLCBvdGhlcndpc2UgRmFsc2UuIE5vdGUgdGhhdCBhIHJldHVybiB2YWx1ZSBvZiBUcnVlCiAgICAgICAgICAgICAgICBkb2VzIG5vdCBndWFyYW50ZWUgdGhhdCB0aGUgd2luZG93IHRpdGxlIGhhcyBhY3R1YWxseSBjaGFuZ2VkLAogICAgICAgICAgICAgICAgc2luY2UgdGhlIGZlYXR1cmUgbWF5IGJlIHVuc3VwcG9ydGVkL2Rpc2FibGVkIGluIHNvbWUgdGVybWluYWxzLgogICAgICAgIFRGKQRybgAAAHJsAQAAcjEAAAByewEAACkCcnsAAAByewEAAHJgAAAAcmAAAAByYQAAANoQc2V0X3dpbmRvd190aXRsZa0EAABzCAAAAAAbBgEQAQQBehhDb25zb2xlLnNldF93aW5kb3dfdGl0bGVyzAAAACkDcs4AAAByzwAAAHJ3AAAAYwMAAAAAAAAAAAAAAAMAAAAFAAAAQwAAAHMSAAAAdAB8AHwBfAJwDGQBZAKNA1MAKQNhdQEAAENvbnRleHQgbWFuYWdlciB0byBlbmFibGUgYW5kIGRpc2FibGUgJ2FsdGVybmF0aXZlIHNjcmVlbicgbW9kZS4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgaGlkZV9jdXJzb3IgKGJvb2wsIG9wdGlvbmFsKTogQWxzbyBoaWRlIHRoZSBjdXJzb3IuIERlZmF1bHRzIHRvIEZhbHNlLgogICAgICAgICAgICBzdHlsZSAoU3R5bGUsIG9wdGlvbmFsKTogT3B0aW9uYWwgc3R5bGUgZm9yIHNjcmVlbi4gRGVmYXVsdHMgdG8gTm9uZS4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgflNjcmVlbkNvbnRleHQ6IENvbnRleHQgd2hpY2ggZW5hYmxlcyBhbHRlcm5hdGUgc2NyZWVuIG9uIGVudGVyLCBhbmQgZGlzYWJsZXMgaXQgb24gZXhpdC4KICAgICAgICByzQAAACkCcs4AAAByzwAAACkBcswAAAApA3J7AAAAcs4AAAByzwAAAHJgAAAAcmAAAAByYQAAAHLRAAAAzQQAAHMCAAAAAAx6DkNvbnNvbGUuc2NyZWVuqQFygQAAACkDctcAAABygQAAAHJ3AAAAYwIAAAAAAAAAAQAAAAQAAAAFAAAAQwAAAHMYAAAAdACgAXwAfAJwDnwAagJ8AaEDfQN8A1MAKQFh8wEAAE1lYXN1cmUgYSByZW5kZXJhYmxlLiBSZXR1cm5zIGEgOmNsYXNzOmB+cmljaC5tZWFzdXJlLk1lYXN1cmVtZW50YCBvYmplY3Qgd2hpY2ggY29udGFpbnMKICAgICAgICBpbmZvcm1hdGlvbiByZWdhcmRpbmcgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlcXVpcmVkIHRvIHByaW50IHRoZSByZW5kZXJhYmxlLgoKICAgICAgICBBcmdzOgogICAgICAgICAgICByZW5kZXJhYmxlIChSZW5kZXJhYmxlVHlwZSk6IEFueSByZW5kZXJhYmxlIG9yIHN0cmluZy4KICAgICAgICAgICAgb3B0aW9ucyAoT3B0aW9uYWxbQ29uc29sZU9wdGlvbnNdLCBvcHRpb25hbCk6IE9wdGlvbnMgdG8gdXNlIHdoZW4gbWVhc3VyaW5nLCBvciBOb25lCiAgICAgICAgICAgICAgICB0byB1c2UgZGVmYXVsdCBvcHRpb25zLiBEZWZhdWx0cyB0byBOb25lLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBNZWFzdXJlbWVudDog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UgBYAGQBUwApBmFHAwAAUmVuZGVyIG9iamVjdHMgaW4gdG8gYSBsaXN0IG9mIGxpbmVzLgoKICAgICAgICBUaGUgb3V0cHV0IG9mIHJlbmRlcl9saW5lcyBpcyB1c2VmdWwgd2hlbiBmdXJ0aGVyIGZvcm1hdHRpbmcgb2YgcmVuZGVyZWQgY29uc29sZSB0ZXh0CiAgICAgICAgaXMgcmVxdWlyZWQsIHN1Y2ggYXMgdGhlIFBhbmVsIGNsYXNzIHdoaWNoIGRyYXdzIGEgYm9yZGVyIGFyb3VuZCBhbnkgcmVuZGVyYWJsZSBvYmplY3QuCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIHJlbmRlcmFibGUgKFJlbmRlcmFibGVUeXBlKTogQW55IG9iamVjdCByZW5kZXJhYmxlIGluIHRoZSBjb25zb2xlLgogICAgICAgICAgICBvcHRpb25zIChPcHRpb25hbFtDb25zb2xlT3B0aW9uc10sIG9wdGlvbmFsKTogQ29uc29sZSBvcHRpb25zLCBvciBOb25lIHRvIHVzZSBzZWxmLm9wdGlvbnMuIERlZmF1bHQgdG8gYGBOb25lYGAuCiAgICAgICAgICAgIHN0eWxlIChTdHlsZSwgb3B0aW9uYWwpOiBPcHRpb25hbCBzdHlsZSB0byBhcHBseSB0byByZW5kZXJhYmxlcy4gRGVmYXVsdHMgdG8gYGBOb25lYGAuCiAgICAgICAgICAgIHBhZCAoYm9vbCwgb3B0aW9uYWwpOiBQYWQgbGluZXMgc2hvcnRlciB0aGFuIHJlbmRlciB3aWR0aC4gRGVmYXVsdHMgdG8gYGBUcnVlYGAuCiAgICAgICAgICAgIG5ld19saW5lcyAoYm9vbCwgb3B0aW9uYWwpOiBJbmNsdWRlICIKIiBjaGFyYWN0ZXJzIGF0IGVuZCBvZiBsaW5lcy4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgTGlzdFtMaXN0W1NlZ21lbnRdXTogQSBsaXN0IG9mIGxpbmVzLCB3aGVyZSBhIGxpbmUgaXMgYSBsaXN0IG9mIFNlZ21lbnQgb2JqZWN0cy4KICAgICAgICBOcgEAAAApA1oRaW5jbHVkZV9uZXdfbGluZXNygwEAAHLPAAAAcjcBAAByoQAAACkNcsQAAABygQAAAHI2AAAAckEAAADaC2FwcGx5X3N0eWxlcmUAAABygwAAAHLgAAAAcgsAAADaFHNwbGl0X2FuZF9jcm9wX2xpbmVzcm0AAABy1QAAANoGZXh0ZW5kKQxyewAAAHLXAAAAcoEAAAByzwAAAHKDAQAAcoQBAADaDnJlbmRlcl9vcHRpb25zWglfcmVuZGVyZWRaDXJlbmRlcl9oZWlnaHRypAAAANoLZXh0cmFfbGluZXNaCHBhZF9saW5lcmAAAAByYAAAAHJhAAAA2gxyZW5kZXJfbGluZXMfBQAAczwAAAAAGAgBCgEMAQQBDAIGAQgBCgICAQIBBAECAQQBAgECAQL7BAcCAQL3Av8EDQoBDgEIAwL/GgIQ/QQFDgJ6FENvbnNvbGUucmVuZGVyX2xpbmVzcs0AAAApB3LPAAAAcnEAAABycgAAAHINAQAAcnUAAABydAAAAHISAQAAckkAAAApCdoEdGV4dHLPAAAAcnEAAABycgAAAHINAQAAcnUAAABydAAAAHISAQAAcncAAABjAgAAAAAAAAAHAAAADwAAAAYAAABDAAAAc7QAAAB8BXAQfAVkAWsIbxB8AGoAfQl8BnAifAZkAWsIbyJ8AGoBfQp8B3A0fAdkAWsIbzR8AGoCfQt8CnJadAN8AXwCfAl8AGoEZAKNBH0MfAN8DF8FfAR8DF8GbiJ0B3wJcm50CHwBfABqBGQDjQJuAnwBfAN8BHwCZASNBH0MfAtyinwIcIx8AGoJbgJkAX0NfA1kAWsJcrB8DXQKfAyDAYMBfQ58DqALfAyhAQEAfA5TAHwMUwApBWGmAwAAQ29udmVydCBhIHN0cmluZyB0byBhIFRleHQgaW5zdGFuY2UuIFRoaXMgaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgaWYKICAgICAgICB5b3UgcHJpbnQgb3IgbG9nIGEgc3RyaW5nLgoKICAgICAgICBBcmdzOgogICAgICAgICAgICB0ZXh0IChzdHIpOiBUZXh0IHRvIHJlbmRlci4KICAgICAgICAgICAgc3R5bGUgKFVuaW9uW3N0ciwgU3R5bGVdLCBvcHRpb25hbCk6IFN0eWxlIHRvIGFwcGx5IHRvIHJlbmRlcmVkIHRleHQuCiAgICAgICAgICAgIGp1c3RpZnkgKHN0ciwgb3B0aW9uYWwpOiBKdXN0aWZ5IG1ldGhvZDogImRlZmF1bHQiLCAibGVmdCIsICJjZW50ZXIiLCAiZnVsbCIsIG9yICJyaWdodCIuIERlZmF1bHRzIHRvIGBgTm9uZWBgLgogICAgICAgICAgICBvdmVyZmxvdyAoc3RyLCBvcHRpb25hbCk6IE92ZXJmbG93IG1ldGhvZDogImNyb3AiLCAiZm9sZCIsIG9yICJlbGxpcHNpcyIuIERlZmF1bHRzIHRvIGBgTm9uZWBgLgogICAgICAgICAgICBlbW9qaSAoT3B0aW9uYWxbYm9vbF0sIG9wdGlvbmFsKTogRW5hYmxlIGVtb2ppLCBvciBgYE5vbmVgYCB0byB1c2UgQ29uc29sZSBkZWZhdWx0LgogICAgICAgICAgICBtYXJrdXAgKE9wdGlvbmFsW2Jvb2xdLCBvcHRpb25hbCk6IEVuYWJsZSBtYXJrdXAsIG9yIGBgTm9uZWBgIHRvIHVzZSBDb25zb2xlIGRlZmF1bHQuCiAgICAgICAgICAgIGhpZ2hsaWdodCAoT3B0aW9uYWxbYm9vbF0sIG9wdGlvbmFsKTogRW5hYmxlIGhpZ2hsaWdodGluZywgb3IgYGBOb25lYGAgdG8gdXNlIENvbnNvbGUgZGVmYXVsdC4KICAgICAgICAgICAgaGlnaGxpZ2h0ZXIgKEhpZ2hsaWdodGVyVHlwZSwgb3B0aW9uYWwpOiBPcHRpb25hbCBoaWdobGlnaHRlciB0byBhcHBseS4KICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBDb25zb2xlUmVuZGVyYWJsZTogUmVuZGVyYWJsZSBvYmplY3QuCgogICAgICAgIE4pA3LPAAAAcg0BAAByDgEAACkBWg9kZWZhdWx0X3ZhcmlhbnQpA3JxAAAAcnIAAAByzwAAACkMch8BAAByHgEAAHIhAQAA2g1yZW5kZXJfbWFya3VwciABAABycQAAAHJyAAAAckkAAAByKAAAAHISAQAAcowAAABaC2NvcHlfc3R5bGVzKQ9yewAAAHKLAQAAcs8AAABycQAAAHJyAAAAcg0BAABydQAAAHJ0AAAAchIBAABaDWVtb2ppX2VuYWJsZWRaDm1hcmt1cF9lbmFibGVkWhFoaWdobGlnaHRfZW5hYmxlZFoJcmlj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VW5pb25bc3RyLCBTdHlsZV0sIG9wdGlvbmFsKTogQSBzdHlsZSB0byBhcHBseSB0byBvdXRwdXQuIERlZmF1bHRzIHRvIE5vbmUuCiAgICAgICAgICAgIGp1c3RpZnkgKHN0ciwgb3B0aW9uYWwpOiBKdXN0aWZ5IG1ldGhvZDogImRlZmF1bHQiLCAibGVmdCIsICJyaWdodCIsICJjZW50ZXIiLCBvciAiZnVsbCIuIERlZmF1bHRzIHRvIGBgTm9uZWBgLgogICAgICAgICAgICBvdmVyZmxvdyAoc3RyLCBvcHRpb25hbCk6IE92ZXJmbG93IG1ldGhvZDogImlnbm9yZSIsICJjcm9wIiwgImZvbGQiLCBvciAiZWxsaXBzaXMiLiBEZWZhdWx0cyB0byBOb25lLgogICAgICAgICAgICBub193cmFwIChPcHRpb25hbFtib29sXSwgb3B0aW9uYWwpOiBEaXNhYmxlIHdvcmQgd3JhcHBpbmcuIERlZmF1bHRzIHRvIE5vbmUuCiAgICAgICAgICAgIGVtb2ppIChPcHRpb25hbFtib29sXSwgb3B0aW9uYWwpOiBFbmFibGUgZW1vamkgY29kZSwgb3IgYGBOb25lYGAgdG8gdXNlIGNvbnNvbGUgZGVmYXVsdC4gRGVmYXVsdHMgdG8gYGBOb25lYGAuCiAgICAgICAgICAgIG1hcmt1cCAoT3B0aW9uYWxbYm9vbF0sIG9wdGlvbmFsKTogRW5hYmxlIG1hcmt1cCwgb3IgYGBOb25lYGAgdG8gdXNlIGNvbnNvbGUgZGVmYXVsdC4gRGVmYXVsdHMgdG8gYGBOb25lYGAuCiAgICAgICAgICAgIGhpZ2hsaWdodCAoT3B0aW9uYWxbYm9vbF0sIG9wdGlvbmFsKTogRW5hYmxlIGF1dG9tYXRpYyBoaWdobGlnaHRpbmcsIG9yIGBgTm9uZWBgIHRvIHVzZSBjb25zb2xlIGRlZmF1bHQuIERlZmF1bHRzIHRvIGBgTm9uZWBgLgogICAgICAgICAgICB3aWR0aCAoT3B0aW9uYWxbaW50XSwgb3B0aW9uYWwpOiBXaWR0aCBvZiBvdXRwdXQsIG9yIGBgTm9uZWBgIHRvIGF1dG8tZGV0ZWN0LiBEZWZhdWx0cyB0byBgYE5vbmVgYC4KICAg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IG9wdGlvbmFsKTogU2tpcCBrZXlzIG5vdCBvZiBhIGJhc2ljIHR5cGUuIERlZmF1bHRzIHRvIEZhbHNlLgogICAgICAgICAgICBlbnN1cmVfYXNjaWkgKGJvb2wsIG9wdGlvbmFsKTogRXNjYXBlIGFsbCBub24tYXNjaWkgY2hhcmFjdGVycy4gRGVmYXVsdHMgdG8gRmFsc2UuCiAgICAgICAgICAgIGNoZWNrX2NpcmN1bGFyIChib29sLCBvcHRpb25hbCk6IENoZWNrIGZvciBjaXJjdWxhciByZWZlcmVuY2VzLiBEZWZhdWx0cyB0byBUcnVlLgogICAgICAgICAgICBhbGxvd19uYW4gKGJvb2wsIG9wdGlvbmFsKTogQWxsb3cgTmFOIGFuZCBJbmZpbml0eSB2YWx1ZXMuIERlZmF1bHRzIHRvIFRydWUuCiAgICAgICAgICAgIGRlZmF1bHQgKENhbGxhYmxlLCBvcHRpb25hbCk6IEEgY2FsbGFibGUgdGhhdCBjb252ZXJ0cyB2YWx1ZXMgdGhhdCBjYW4gbm90IGJlIGVuY29kZWQKICAgICAgICAgICAgICAgIGluIHRvIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBKU09OIGVuY29kZWQuIERlZmF1bHRzIHRvIE5vbmUuCiAgICAgICAgICAgIHNvcnRfa2V5cyAoYm9vbCwgb3B0aW9uYWwpOiBTb3J0IGRpY3Rpb25hcnkga2V5cy4gRGVmYXVsdHMgdG8gRmFsc2UuCiAgICAgICAgcgEAAAApAdoESlNPTk4pCHKvAQAAcnQAAABysAEAAHKxAQAAcrIBAAByswEAAHJUAAAAcrQBAAB6L2pzb24gbXVzdCBiZSBzdHIuIERpZCB5b3UgbWVhbiBwcmludF9qc29uKGRhdGE9egMpID9UKQFyBgEAACkHWhVwaXAuX3ZlbmRvci5yaWNoLmpzb25ytgEAAFoJZnJvbV9kYXRhcoIAAAByjAAAAHKBAQAActgAAAApDXJ7AAAAcrUBAAByrgEAAHKvAQAAcnQAAABysAEAAHKxAQAAcrIBAAByswEAAHJUAAAAcrQBAABytgEAAFoPanNvbl9yZW5kZXJhYmxlcmAAAAByYAAAAHJhAAAA2gpwcmludF9qc29uoAYAAHM6AAAAAB0M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AGQBZAJsAG0BfQgBAHwIfAF8AnwDfAR8BXwGfAdkA40HfQl8AKACfAmhAQEAZARTACkFYQ0DAABQcmludHMgYSByaWNoIHJlbmRlciBvZiB0aGUgbGFzdCBleGNlcHRpb24gYW5kIHRyYWNlYmFjay4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgd2lkdGggKE9wdGlvbmFsW2ludF0sIG9wdGlvbmFsKTogTnVtYmVyIG9mIGNoYXJhY3RlcnMgdXNlZCB0byByZW5kZXIgY29kZS4gRGVmYXVsdHMgdG8gMTAwLgogICAgICAgICAgICBleHRyYV9saW5lcyAoaW50LCBvcHRpb25hbCk6IEFkZGl0aW9uYWwgbGluZXMgb2YgY29kZSB0byByZW5kZXIuIERlZmF1bHRzIHRvIDMuCiAgICAgICAgICAgIHRoZW1lIChzdHIsIG9wdGlvbmFsKTogT3ZlcnJpZGUgcHlnbWVudHMgdGhlbWUgdXNlZCBpbiB0cmFjZWJhY2sKICAgICAgICAgICAgd29yZF93cmFwIChib29sLCBvcHRpb25hbCk6IEVuYWJsZSB3b3JkIHdyYXBwaW5nIG9mIGxvbmcgbGluZXMuIERlZmF1bHRzIHRvIEZhbHNlLgogICAgICAgICAgICBzaG93X2xvY2FscyAoYm9vbCwgb3B0aW9uYWwpOiBFbmFibGUgZGlzcGxheSBvZiBsb2NhbCB2YXJpYWJsZXMuIERlZmF1bHRzIHRvIEZhbHNlLgogICAgICAgICAgICBzdXBwcmVzcyAoSXRlcmFibGVbVW5pb25bc3RyLCBNb2R1bGVUeXBlXV0pOiBPcHRpb25hbCBzZXF1ZW5jZSBvZiBtb2R1bGVzIG9yIHBhdGhzIHRvIGV4Y2x1ZGUgZnJvbSB0cmFjZWJhY2suCiAgICAgICAgICAgIG1heF9mcmFtZXMgKGludCk6IE1heGltdW0gbnVtYmVyIG9mIGZyYW1lcyB0byBzaG93IGluIGEgdHJhY2ViYWNrLCAwIGZvciBubyBtYXhpbXVtLiBEZWZhdWx0cyB0byAxMDAuCiAgICAgICAgciUAAAApAdoJVHJhY2ViYWNrcr0BAABOKQNyWQEAAHLCAQAActgAAAApCnJ7AAAAcmQAAAByiQEAAHK7AAAA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ICAgICAgICAgIGVuZCAoc3RyLCBvcHRpb25hbCk6IFN0cmluZyB0byB3cml0ZSBhdCBlbmQgb2YgcHJpbnQgZGF0YS4gRGVmYXVsdHMgdG8gIlxcbiIuCiAgICAgICAgICAgIHN0eWxlIChVbmlvbltzdHIsIFN0eWxlXSwgb3B0aW9uYWwpOiBBIHN0eWxlIHRvIGFwcGx5IHRvIG91dHB1dC4gRGVmYXVsdHMgdG8gTm9uZS4KICAgICAgICAgICAganVzdGlmeSAoc3RyLCBvcHRpb25hbCk6IE9uZSBvZiAibGVmdCIsICJyaWdodCIsICJjZW50ZXIiLCBvciAiZnVsbCIuIERlZmF1bHRzIHRvIGBgTm9uZWBgLgogICAgICAgICAgICBvdmVyZmxvdyAoc3RyLCBvcHRpb25hbCk6IE92ZXJmbG93IG1ldGhvZDogImNyb3AiLCAiZm9sZCIsIG9yICJlbGxpcHNpcyIuIERlZmF1bHRzIHRvIE5vbmUuCiAgICAgICAgICAgIGVtb2ppIChPcHRpb25hbFtib29sXSwgb3B0aW9uYWwpOiBFbmFibGUgZW1vamkgY29kZSwgb3IgYGBOb25lYGAgdG8gdXNlIGNvbnNvbGUgZGVmYXVsdC4gRGVmYXVsdHMgdG8gTm9uZS4KICAgICAgICAgICAgbWFya3VwIChPcHRpb25hbFtib29sXSwgb3B0aW9uYWwpOiBFbmFibGUgbWFya3VwLCBvciBgYE5vbmVgYCB0byB1c2UgY29uc29sZSBkZWZhdWx0LiBEZWZhdWx0cyB0byBOb25lLgogICAgICAgICAgICBoaWdobGlnaHQgKE9wdGlvbmFsW2Jvb2xdLCBvcHRpb25hbCk6IEVuYWJsZSBhdXRvbWF0aWMgaGlnaGxpZ2h0aW5nLCBvciBgYE5vbmVgYCB0byB1c2UgY29uc29sZSBkZWZhdWx0LiBEZWZhdWx0cyB0byBOb25lLgogICAgICAgICAgICBsb2dfbG9jYWxzIChib29sLCBvcHRpb25hbCk6IEJvb2xlYW4gdG8gZW5hYmxlIGxvZ2dpbmcgb2YgbG9jYWxzIHdoZXJlIGBgbG9nKClgYAogICAgICAgICAgICAgICAgd2FzIGNhbGxlZC4gRGVmYXVsdHMgdG8gRmFsc2Uu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AwAAR2VuZXJhdGUgSFRNTCBmcm9tIGNvbnNvbGUgY29udGVudHMgKHJlcXVpcmVzIHJlY29yZD1UcnVlIGFyZ3VtZW50IGluIGNvbnN0cnVjdG9yKS4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgdGhlbWUgKFRlcm1pbmFsVGhlbWUsIG9wdGlvbmFsKTogVGVybWluYWxUaGVtZSBvYmplY3QgY29udGFpbmluZyBjb25zb2xlIGNvbG9ycy4KICAgICAgICAgICAgY2xlYXIgKGJvb2wsIG9wdGlvbmFsKTogQ2xlYXIgcmVjb3JkIGJ1ZmZlciBhZnRlciBleHBvcnRpbmcuIERlZmF1bHRzIHRvIGBgVHJ1ZWBgLgogICAgICAgICAgICBjb2RlX2Zvcm1hdCAoc3RyLCBvcHRpb25hbCk6IEZvcm1hdCBzdHJpbmcgdG8gcmVuZGVyIEhUTUwuIEluIGFkZGl0aW9uIHRvICd7Zm9yZWdyb3VuZH0nLAogICAgICAgICAgICAgICAgJ3tiYWNrZ3JvdW5kfScsIGFuZCAne2NvZGV9Jywgc2hvdWxkIGNvbnRhaW4gJ3tzdHlsZXNoZWV0fScgaWYgaW5saW5lX3N0eWxlcyBpcyBgYEZhbHNlYGAuCiAgICAgICAgICAgIGlubGluZV9zdHlsZXMgKGJvb2wsIG9wdGlvbmFsKTogSWYgYGBUcnVlYGAgc3R5bGVzIHdpbGwgYmUgaW5saW5lZCBpbiB0byBzcGFucywgd2hpY2ggbWFrZXMgZmlsZXMKICAgICAgICAgICAgICAgIGxhcmdlciBidXQgZWFzaWVyIHRvIGN1dCBhbmQgcGFzdGUgbWFya3VwLiBJZiBgYEZhbHNlYGAsIHN0eWxlcyB3aWxsIGJlIGVtYmVkZGVkIGluIGEgc3R5bGUgdGFnLgogICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gRmFsc2UuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIHN0cjogU3RyaW5nIGNvbnRhaW5pbmcgY29uc29sZSBjb250ZW50cyBhcyBIVE1MLgogICAgICAgIHLxAQAAcs0AAABOegk8YSBocmVmPSJ6AiI+egQ8L2E+eg08c3BhbiBzdHlsZT0iegc8L3NwYW4+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AQIBAvkEAgICAgECAQIBAgEC+AwhEgsSFQIBEAgQIQAAAP8CAQIABgEC/gwPAv8EAQIABgEC/gwSAP8CAQIABgEG/gw2AP0CBQIBAgEC+QQCAgEGAgYBAgECAQr4DD8CAQIBAgECAQIBAgEC9gQCAgIKAQYBBgEGAQYBBgEGAQL1DDwC/wQBCgAOAQL+DCQCAQIBAgEC9wQCBgECAQICBgEGAQYBBgEG9gxNAP4CBAIBAgEC+gQCAgICAQoBAgEC+QwVEA0CAQIBAgEC+gQCAgECAQIBDgEGAQL5DCMCAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQLwBAICAQIBAgEOAQYBBgEGAQYBBgEGAQYBBgECAQYBAgEC7wxlAP4CBAIBAgECAQIBAgECAQIBAgEC9AQCBgICAQwBAgECAQIBAgECARABAgEC8wxBAgEC+wQCAgIGAQYBAvoMIwAAAP8CAQoAAgACAQL+DBcCAQIBAgECAQIBAgEC9wQDBgECAQYBAgECAQ4BAgEC9gwjAgME/gIBAgEOART9DiUCAQIBAgECAQIBAgECAQIBAvUEAgIBAgECAQ4BBgEGAQYBBgECAQIBAvQMUg49FBoA/gIEAgECAQIBAvkEAgICAgECAQIBBgEC+AwiGiAcEQIBAgECAQL6BAMGAQIBBgECAQL5DE8CAQIBAgEC+QQCAgIGAQIBAgECAQL4DCICAQIBAgEC+gQDAgEGAQIBAgEC+Qx/AHgCAQIBAgEC+QQCAgICAQYBAgECAQL4cpUAAAApAtoNc3ZnX21haW5fY29kZXJ3AAAAYwEAAAAAAAAAAAAAAAEAAAAFAAAAQwAAAHMSAAAAdAB0AaACfACgA6EAoQGDAVMAKQF6zVJldHVybnMgYSB1bmlxdWUgaGFzaCBmb3IgdGhlIGdpdmVuIFNWRyBtYWluIGNvZGUuCgogICAgQXJnczoKICAgICAgICBzdmdfbWFpbl9jb2RlIChzdHIpOiBUaGUgY29udGVudCB3ZSdyZSBnb2luZyB0byBpbmplY3QgaW4gdGhlIFNWRyBlbnZlbG9wZS4KCiAgICBSZXR1cm5zOgogICAgICAgIHN0cjogYSBoYXNoIG9mIHRoZSBnaXZlbiBjb250ZW50CiAgICApBHKMAAAAcjwCAAByPQIAAHI+AgAAKQFySQIAAHJg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