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AABtYWNyb3N0DAAAAGluY2x1ZGVfZGlyc3QJAAAAbGlicmFyaWVzdAwAAABsaWJyYXJ5X2RpcnN0FAAAAHJ1bnRpbWVfbGlicmFyeV9kaXJzdAcAAABvYmplY3RzdAsAAABleGVjdXRhYmxlc3QEAAAAa2V5c3QOAAAAc2V0X2V4ZWN1dGFibGUoBQAAAHQEAAAAc2VsZlISAAAAUhAAAABSEQAAAHQDAAAAa2V5KAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAgAAABfX2luaXRfX10AAABzGAAAAAABCQEJAQkECQYJAwkECQMJBAkECQIWAWMBAAAAAwAAAAUAAABLAAAAc1oAAAB4UwB8AQBqAACDAABEXUUAfQIAfAIAfAAAagEAawcAcj4AdAIAZAEAfAIAfAAAagMAagQAZgIAFoICAG4AAHwAAGoFAHwCAHwBAHwCABmDAgABcQ0AV2QCAFMoAwAAAHOLAwAARGVmaW5lIHRoZSBleGVjdXRhYmxlcyAoYW5kIG9wdGlvbnMgZm9yIHRoZW0pIHRoYXQgd2lsbCBiZSBydW4KICAgICAgICB0byBwZXJmb3JtIHRoZSB2YXJpb3VzIHN0YWdlcyBvZiBjb21waWxhdGlvbi4gIFRoZSBleGFjdCBzZXQgb2YKICAgICAgICBleGVjdXRhYmxlcyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaGVyZSBkZXBlbmRzIG9uIHRoZSBjb21waWxlcgogICAgICAgIGNsYXNzICh2aWEgdGhlICdleGVjdXRhYmxlcycgY2xhc3MgYXR0cmlidXRlKSwgYnV0IG1vc3Qgd2lsbCBoYXZlOgogICAgICAgICAgY29tcGlsZXIgICAgICB0aGUgQy9DKysgY29tcGlsZXIKICAgICAgICAgIGxpbmtlcl9zbyAgICAgbGlua2VyIHVzZWQgdG8gY3JlYXRlIHNoYXJlZCBvYmplY3RzIGFuZCBsaWJyYXJpZXMKICAgICAgICAgIGxpbmtlcl9leGUgICAgbGlua2VyIHVzZWQgdG8gY3JlYXRlIGJpbmFyeSBleGVjdXRhYmxlcwogICAgICAgICAgYXJjaGl2ZXIgICAgICBzdGF0aWMgbGlicmFyeSBjcmVhdG9yCgogICAgICAgIE9uIHBsYXRmb3JtcyB3aXRoIGEgY29tbWFuZC1saW5lIChVbml4LCBET1MvV2luZG93cyksIGVhY2ggb2YgdGhlc2UKICAgICAgICBpcyBhIHN0cmluZyB0aGF0IHdpbGwgYmUgc3BsaXQgaW50byBleGVjdXRhYmxlIG5hbWUgYW5kIChvcHRpb25hbCkKICAgICAgICBsaXN0IG9mIGFyZ3VtZW50cy4gIChTcGxpdHRpbmcgdGhlIHN0cmluZyBpcyBkb25lIHNpbWlsYXJseSB0byBob3cKICAgICAgICBVbml4IHNoZWxscyBvcGVyYXRlOiB3b3JkcyBhcmUgZGVsaW1pdGVkIGJ5IHNwYWNlcywgYnV0IHF1b3RlcyBhbmQKICAgICAgICBiYWNrc2xhc2hlcyBjYW4gb3ZlcnJpZGUgdGhpcy4gIFNlZQogICAgICAgICdkaXN0dXRpbHMudXRpbC5zcGxpdF9xdW90ZWQoKScuKQogICAgICAgIHMkAAAAdW5rbm93biBleGVjdXRhYmxlICclcycgZm9yIGNsYXNzICVzTigGAAAAUhwAAABSGwAAAHQKAAAAVmFsdWVFcnJvcnQJAAAAX19jbGFzc19fdAgAAABfX25hbWVfX1IdAAAAKAMAAABSHgAAAHQEAAAAYXJnc1IfAAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA8AAABzZXRfZXhlY3V0YWJsZXOBAAAAcwwAAAAAGhMBDwEDAQMBFgFjAwAAAAMAAAAFAAAAQwAAAHM8AAAAdAAAfAIAdAEAgwIAcigAdAIAfAAAfAEAdAMAfAIAgwEAgwMAAW4QAHQCAHwAAHwBAHwCAIMDAAFkAABTKAEAAABOKAQAAAB0CgAAAGlzaW5zdGFuY2V0AwAAAHN0cnQHAAAAc2V0YXR0clIJAAAAKAMAAABSHgAAAFIfAAAAdAUAAAB2YWx1ZSgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weVIdAAAAogAAAHMGAAAAAAEPARkCYwIAAAAEAAAAAwAAAEMAAABzPAAAAGQBAH0CAHgvAHwAAGoAAERdJAB9AwB8AwBkAQAZfAEAawIAcioAfAIAU3wCAGQCABd9AgBxEABXZAAAUygDAAAATmkAAAAAaQEAAAAoAgAAAFIVAAAAUhMAAAAoBAAAAFIeAAAAdAQAAABuYW1ldAEAAABpdAQAAABkZWZuKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAsAAABfZmluZF9tYWNyb6gAAABzDAAAAAABBgEQARABBAEOAWMCAAAAAwAAAAkAAABDAAAAc5YAAAB4jwB8AQBEXYcAfQIAdAAAfAIAdAEAgwIAb3MAdAIAfAIAgwEAZAEAawIAc2MAdAIAfAIAgwEAZAIAawIAb3MAdAAAfAIAZAEAGXQDAIMCAHNjAHwCAGQBABlkBwBrCABvcwB0AAB8AgBkAwAZdAMAgwIAcwcAdAUAZAQAfAIAFmQFABdkBgAXggIAcQcAcQcAV2QHAFMoCAAAAHPXAAAARW5zdXJlcyB0aGF0IGV2ZXJ5IGVsZW1lbnQgb2YgJ2RlZmluaXRpb25zJyBpcyBhIHZhbGlkIG1hY3JvCiAgICAgICAgZGVmaW5pdGlvbiwgaWUuIGVpdGhlciAobmFtZSx2YWx1ZSkgMi10dXBsZSBvciBhIChuYW1lLCkgdHVwbGUuICBEbwogICAgICAgIG5vdGhpbmcgaWYgYWxsIGRlZmluaXRpb25zIGFyZSBPSywgcmFpc2UgVHlwZUVycm9yIG90aGVyd2lzZS4KICAgICAgICBpAQAAAGkCAAAAaQAAAABzHwAAAGludmFsaWQgbWFjcm8gZGVmaW5pdGlvbiAnJXMnOiBzLgAAAG11c3QgYmUgdHVwbGUgKHN0cmluZywpLCAoc3RyaW5nLCBzdHJpbmcpLCBvciBzDgAAAChzdHJpbmcsIE5vbmUpTigGAAAAUiYAAAB0BQAAAHR1cGxldAMAAABsZW5SJwAAAFITAAAAdAkAAABUeXBlRXJyb3IoAwAAAFIeAAAAdAsAAABkZWZpbml0aW9uc1IsAAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dBgAAABfY2hlY2tfbWFjcm9fZGVmaW5pdGlvbnOwAAAAcxIAAAAABQ0BDwESARIBIwETAQMCCwFjAwAAAAUAAAACAAAAQwAAAHNIAAAAfAAAagAAfAEAgwEAfQMAfAMAZAEAawkAcigAfAAAagIAfAMAPW4AAHwBAHwCAGYCAH0EAHwAAGoCAGoDAHwEAIMBAAFkAQBTKAIAAABzXwEAAERlZmluZSBhIHByZXByb2Nlc3NvciBtYWNybyBmb3IgYWxsIGNvbXBpbGF0aW9ucyBkcml2ZW4gYnkgdGhpcwogICAgICAgIGNvbXBpbGVyIG9iamVjdC4gIFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgJ3ZhbHVlJyBzaG91bGQgYmUgYQogICAgICAgIHN0cmluZzsgaWYgaXQgaXMgbm90IHN1cHBsaWVkLCB0aGVuIHRoZSBtYWNybyB3aWxsIGJlIGRlZmluZWQKICAgICAgICB3aXRob3V0IGFuIGV4cGxpY2l0IHZhbHVlIGFuZCB0aGUgZXhhY3Qgb3V0Y29tZSBkZXBlbmRzIG9uIHRoZQogICAgICAgIGNvbXBpbGVyIHVzZWQgKFhYWCB0cnVlPyBkb2VzIEFOU0kgc2F5IGFueXRoaW5nIGFib3V0IHRoaXM/KQogICAgICAgIE4oBAAAAFItAAAAUhMAAABSFQAAAHQGAAAAYXBwZW5kKAUAAABSHgAAAFIqAAAAUikAAABSKwAAAFIsAAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAwAAABkZWZpbmVfbWFjcm/DAAAAcwoAAAAACQ8BDAENAgwBYwIAAAAEAAAAAgAAAEMAAABzRQAAAHwAAGoAAHwBAIMBAH0CAHwCAGQBAGsJAHIoAHwAAGoCAHwCAD1uAAB8AQBmAQB9AwB8AABqAgBqAwB8AwCDAQABZAEAUygCAAAAc7MBAABVbmRlZmluZSBhIHByZXByb2Nlc3NvciBtYWNybyBmb3IgYWxsIGNvbXBpbGF0aW9ucyBkcml2ZW4gYnkKICAgICAgICB0aGlzIGNvbXBpbGVyIG9iamVjdC4gIElmIHRoZSBzYW1lIG1hY3JvIGlzIGRlZmluZWQgYnkKICAgICAgICAnZGVmaW5lX21hY3JvKCknIGFuZCB1bmRlZmluZWQgYnkgJ3VuZGVmaW5lX21hY3JvKCknIHRoZSBsYXN0IGNhbGwKICAgICAgICB0YWtlcyBwcmVjZWRlbmNlIChpbmNsdWRpbmcgbXVsdGlwbGUgcmVkZWZpbml0aW9ucyBvcgogICAgICAgIHVuZGVmaW5pdGlvbnMpLiAgSWYgdGhlIG1hY3JvIGlzIHJlZGVmaW5lZC91bmRlZmluZWQgb24gYQogICAgICAgIHBlci1jb21waWxhdGlvbiBiYXNpcyAoaWUuIGluIHRoZSBjYWxsIHRvICdjb21waWxlKCknKSwgdGhlbiB0aGF0CiAgICAgICAgdGFrZXMgcHJlY2VkZW5jZS4KICAgICAgICBOKAQAAABSLQAAAFITAAAAUhUAAABSMwAAACgEAAAAUh4AAABSKgAAAFIrAAAAdAYAAAB1bmRlZm4oAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DgAAAHVuZGVmaW5lX21hY3Jv0wAAAHMKAAAAAAsPAQwBDQIJAWMCAAAAAgAAAAIAAABDAAAAcxQAAAB8AABqAABqAQB8AQCDAQABZAEAUygCAAAAc/MAAABBZGQgJ2RpcicgdG8gdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdGhhdCB3aWxsIGJlIHNlYXJjaGVkIGZvcgogICAgICAgIGhlYWRlciBmaWxlcy4gIFRoZSBjb21waWxlciBpcyBpbnN0cnVjdGVkIHRvIHNlYXJjaCBkaXJlY3RvcmllcyBpbgogICAgICAgIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZSBzdXBwbGllZCBieSBzdWNjZXNzaXZlIGNhbGxzIHRvCiAgICAgICAgJ2FkZF9pbmNsdWRlX2RpcigpJy4KICAgICAgICBOKAIAAABSFgAAAFIzAAAAKAIAAABSHgAAAHQDAAAAZGlyKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA8AAABhZGRfaW5jbHVkZV9kaXLlAAAAcwIAAAAABmMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AQAefAAAXwAAZAEAUygCAAAAc3kBAABTZXQgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdGhhdCB3aWxsIGJlIHNlYXJjaGVkIHRvICdkaXJzJyAoYQogICAgICAgIGxpc3Qgb2Ygc3RyaW5ncykuICBPdmVycmlkZXMgYW55IHByZWNlZGluZyBjYWxscyB0bwogICAgICAgICdhZGRfaW5jbHVkZV9kaXIoKSc7IHN1YnNlcXVlbmNlIGNhbGxzIHRvICdhZGRfaW5jbHVkZV9kaXIoKScgYWRkCiAgICAgICAgdG8gdGhlIGxpc3QgcGFzc2VkIHRvICdzZXRfaW5jbHVkZV9kaXJzKCknLiAgVGhpcyBkb2VzIG5vdCBhZmZlY3QKICAgICAgICBhbnkgbGlzdCBvZiBzdGFuZGFyZCBpbmNsdWRlIGRpcmVjdG9yaWVzIHRoYXQgdGhlIGNvbXBpbGVyIG1heQogICAgICAgIHNlYXJjaCBieSBkZWZhdWx0LgogICAgICAgIE4oAQAAAFIWAAAAKAIAAABSHgAAAHQEAAAAZGlycygAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQQAAAAc2V0X2luY2x1ZGVfZGlyc+0AAABzAgAAAAAIYwIAAAACAAAAAgAAAEMAAABzFAAAAHwAAGoAAGoBAHwBAIMBAAFkAQBTKAIAAABzvwIAAEFkZCAnbGlibmFtZScgdG8gdGhlIGxpc3Qgb2YgbGlicmFyaWVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbgogICAgICAgIGFsbCBsaW5rcyBkcml2ZW4gYnkgdGhpcyBjb21waWxlciBvYmplY3QuICBOb3RlIHRoYXQgJ2xpYm5hbWUnCiAgICAgICAgc2hvdWxkICpub3QqIGJlIHRoZSBuYW1lIG9mIGEgZmlsZSBjb250YWluaW5nIGEgbGlicmFyeSwgYnV0IHRoZQogICAgICAgIG5hbWUgb2YgdGhlIGxpYnJhcnkgaXRzZWxmOiB0aGUgYWN0dWFsIGZpbGVuYW1lIHdpbGwgYmUgaW5mZXJyZWQgYnkKICAgICAgICB0aGUgbGlua2VyLCB0aGUgY29tcGlsZXIsIG9yIHRoZSBjb21waWxlciBjbGFzcyAoZGVwZW5kaW5nIG9uIHRoZQogICAgICAgIHBsYXRmb3JtKS4KCiAgICAgICAgVGhlIGxpbmtlciB3aWxsIGJlIGluc3RydWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYnJhcmllcyBpbiB0aGUKICAgICAgICBvcmRlciB0aGV5IHdlcmUgc3VwcGxpZWQgdG8gJ2FkZF9saWJyYXJ5KCknIGFuZC9vcgogICAgICAgICdzZXRfbGlicmFyaWVzKCknLiAgSXQgaXMgcGVyZmVjdGx5IHZhbGlkIHRvIGR1cGxpY2F0ZSBsaWJyYXJ5CiAgICAgICAgbmFtZXM7IHRoZSBsaW5rZXIgd2lsbCBiZSBpbnN0cnVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJyYXJpZXMgYXMKICAgICAgICBtYW55IHRpbWVzIGFzIHRoZXkgYXJlIG1lbnRpb25lZC4KICAgICAgICBOKAIAAABSFwAAAFIzAAAAKAIAAABSHgAAAHQHAAAAbGlibmFtZSgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQLAAAAYWRkX2xpYnJhcnn3AAAAcwIAAAAADmMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AQAefAAAXwAAZAEAUygCAAAAc/QAAABTZXQgdGhlIGxpc3Qgb2YgbGlicmFyaWVzIHRvIGJlIGluY2x1ZGVkIGluIGFsbCBsaW5rcyBkcml2ZW4gYnkKICAgICAgICB0aGlzIGNvbXBpbGVyIG9iamVjdCB0byAnbGlibmFtZXMnIChhIGxpc3Qgb2Ygc3RyaW5ncykuICBUaGlzIGRvZXMKICAgICAgICBub3QgYWZmZWN0IGFueSBzdGFuZGFyZCBzeXN0ZW0gbGlicmFyaWVzIHRoYXQgdGhlIGxpbmtlciBtYXkKICAgICAgICBpbmNsdWRlIGJ5IGRlZmF1bHQuCiAgICAgICAgTigBAAAAUhcAAAAoAgAAAFIeAAAAdAgAAABsaWJuYW1lcygAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQNAAAAc2V0X2xpYnJhcmllcwcBAABzAgAAAAAGYwIAAAACAAAAAgAAAEMAAABzFAAAAHwAAGoAAGoBAHwBAIMBAAFkAQBTKAIAAABzJwEAAEFkZCAnZGlyJyB0byB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQgZm9yCiAgICAgICAgbGlicmFyaWVzIHNwZWNpZmllZCB0byAnYWRkX2xpYnJhcnkoKScgYW5kICdzZXRfbGlicmFyaWVzKCknLiAgVGhlCiAgICAgICAgbGlua2VyIHdpbGwgYmUgaW5zdHJ1Y3RlZCB0byBzZWFyY2ggZm9yIGxpYnJhcmllcyBpbiB0aGUgb3JkZXIgdGhleQogICAgICAgIGFyZSBzdXBwbGllZCB0byAnYWRkX2xpYnJhcnlfZGlyKCknIGFuZC9vciAnc2V0X2xpYnJhcnlfZGlycygpJy4KICAgICAgICBOKAIAAABSGAAAAFIzAAAAKAIAAABSHgAAAFI3AAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA8AAABhZGRfbGlicmFyeV9kaXIQAQAAcwIAAAAABmMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AQAefAAAXwAAZAEAUygCAAAAc8AAAABTZXQgdGhlIGxpc3Qgb2YgbGlicmFyeSBzZWFyY2ggZGlyZWN0b3JpZXMgdG8gJ2RpcnMnIChhIGxpc3Qgb2YKICAgICAgICBzdHJpbmdzKS4gIFRoaXMgZG9lcyBub3QgYWZmZWN0IGFueSBzdGFuZGFyZCBsaWJyYXJ5IHNlYXJjaCBwYXRoCiAgICAgICAgdGhhdCB0aGUgbGlua2VyIG1heSBzZWFyY2ggYnkgZGVmYXVsdC4KICAgICAgICBOKAEAAABSGAAAACgCAAAAUh4AAABSOQAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQQAAAAc2V0X2xpYnJhcnlfZGlycxgBAABzAgAAAAAFYwIAAAACAAAAAgAAAEMAAABzFAAAAHwAAGoAAGoBAHwBAIMBAAFkAQBTKAIAAABzbAAAAEFkZCAnZGlyJyB0byB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyB0aGF0IHdpbGwgYmUgc2VhcmNoZWQgZm9yCiAgICAgICAgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgogICAgICAgIE4oAgAAAFIZAAAAUjMAAAAoAgAAAFIeAAAAUjcAAAAoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0FwAAAGFkZF9ydW50aW1lX2xpYnJhcnlfZGlyHwEAAHMCAAAAAARjAgAAAAIAAAACAAAAQwAAAHMOAAAAfAEAHnwAAF8AAGQBAFMoAgAAAHPjAAAAU2V0IHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIHNlYXJjaCBmb3Igc2hhcmVkIGxpYnJhcmllcyBhdAogICAgICAgIHJ1bnRpbWUgdG8gJ2RpcnMnIChhIGxpc3Qgb2Ygc3RyaW5ncykuICBUaGlzIGRvZXMgbm90IGFmZmVjdCBhbnkKICAgICAgICBzdGFuZGFyZCBzZWFyY2ggcGF0aCB0aGF0IHRoZSBydW50aW1lIGxpbmtlciBtYXkgc2VhcmNoIGJ5CiAgICAgICAgZGVmYXVsdC4KICAgICAgICBOKAEAAABSGQAAACgCAAAAUh4AAABSOQAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQYAAAAc2V0X3J1bnRpbWVfbGlicmFyeV9kaXJzJQEAAHMCAAAAAAZjAgAAAAIAAAACAAAAQwAAAHMUAAAAfAAAagAAagEAfAEAgwEAAWQBAFMoAgAAAHPjAAAAQWRkICdvYmplY3QnIHRvIHRoZSBsaXN0IG9mIG9iamVjdCBmaWxlcyAob3IgYW5hbG9ndWVzLCBzdWNoIGFzCiAgICAgICAgZXhwbGljaXRseSBuYW1lZCBsaWJyYXJ5IGZpbGVzIG9yIHRoZSBvdXRwdXQgb2YgInJlc291cmNlCiAgICAgICAgY29tcGlsZXJzIikgdG8gYmUgaW5jbHVkZWQgaW4gZXZlcnkgbGluayBkcml2ZW4gYnkgdGhpcyBjb21waWxlcgogICAgICAgIG9iamVjdC4KICAgICAgICBOKAIAAABSGgAAAFIzAAAAKAIAAABSHgAAAHQGAAAAb2JqZWN0KAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA8AAABhZGRfbGlua19vYmplY3QtAQAAcwIAAAAABmMCAAAAAgAAAAIAAABDAAAAcw4AAAB8AQAefAAAXwAAZAEAUygCAAAAc+oAAABTZXQgdGhlIGxpc3Qgb2Ygb2JqZWN0IGZpbGVzIChvciBhbmFsb2d1ZXMpIHRvIGJlIGluY2x1ZGVkIGluCiAgICAgICAgZXZlcnkgbGluayB0byAnb2JqZWN0cycuICBUaGlzIGRvZXMgbm90IGFmZmVjdCBhbnkgc3RhbmRhcmQgb2JqZWN0CiAgICAgICAgZmlsZXMgdGhhdCB0aGUgbGlua2VyIG1heSBpbmNsdWRlIGJ5IGRlZmF1bHQgKHN1Y2ggYXMgc3lzdGVtCiAgICAgICAgbGlicmFyaWVzKS4KICAgICAgICBOKAEAAABSGgAAACgCAAAAUh4AAABSGgAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQQAAAAc2V0X2xpbmtfb2JqZWN0czUBAABzAgAAAAAGYwcAAAAOAAAACAAAAEMAAABzkwEAAHwBAGQIAGsIAHIYAHwAAGoBAH0BAG4bAHQCAHwBAHQDAIMCAHMzAHQEAGQBAIICAG4AAHwCAGQIAGsIAHJLAHwAAGoFAH0CAG4uAHQCAHwCAHQGAIMCAHJwAHwCAHwAAGoFAHBpAGcAABd9AgBuCQB0BABkAgCCAgB8AwBkCABrCABykQB8AABqBwB9AwBuOgB0AgB8AwB0BgB0CABmAgCDAgBywgB0BgB8AwCDAQB8AABqBwBwuwBnAAAXfQMAbgkAdAQAZAMAggIAfAYAZAgAawgAcuAAZwAAfQYAbgAAfAAAagkAfAQAZAQAZAUAZAYAfAEAgwECfQcAdAoAfAIAfAMAgwIAfQgAaQAAfQkAeG0AdAsAdAwAfAQAgwEAgwEARF1ZAH0KAHwEAHwKABl9CwB8BwB8CgAZfQwAdA0Aag4Aag8AfAsAgwEAZAcAGX0NAHwAAGoQAHQNAGoOAGoRAHwMAIMBAIMBAAF8CwB8DQBmAgB8CQB8DAA8cSMBV3wCAHwHAHwGAHwIAHwJAGYFAFMoCQAAAHM7AAAAUHJvY2VzcyBhcmd1bWVudHMgYW5kIGRlY2lkZSB3aGljaCBzb3VyY2UgZmlsZXMgdG8gY29tcGlsZS5zJQAAACdvdXRwdXRfZGlyJyBtdXN0IGJlIGEgc3RyaW5nIG9yIE5vbmVzLwAAACdtYWNyb3MnIChpZiBzdXBwbGllZCkgbXVzdCBiZSBhIGxpc3Qgb2YgdHVwbGVzczYAAAAnaW5jbHVkZV9kaXJzJyAoaWYgc3VwcGxpZWQpIG11c3QgYmUgYSBsaXN0IG9mIHN0cmluZ3N0CQAAAHN0cmlwX2RpcmkAAAAAUhQAAABpAQAAAE4oEgAAAFITAAAAUhQAAABSJgAAAFInAAAAUjAAAABSFQAAAHQEAAAAbGlzdFIWAAAAUi4AAAB0EAAAAG9iamVjdF9maWxlbmFtZXN0FgAAAGdlbl9wcmVwcm9jZXNzX29wdGlvbnN0BQAAAHJhbmdlUi8AAAB0AgAAAG9zdAQAAABwYXRodAgAAABzcGxpdGV4dFIHAAAAdAcAAABkaXJuYW1lKA4AAABSHgAAAHQGAAAAb3V0ZGlyUhUAAAB0BwAAAGluY2RpcnN0BwAAAHNvdXJjZXN0BwAAAGRlcGVuZHN0BQAAAGV4dHJhUhoAAAB0BwAAAHBwX29wdHN0BQAAAGJ1aWxkUisAAAB0AwAAAHNyY3QDAAAAb2JqdAMAAABleHQoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DgAAAF9zZXR1cF9jb21waWxlQwEAAHM6AAAAAAMMAQwBDwEMAgwBDAEPARYCCQIMAQwBFQEcAgMBBgIMAQkDDAEGAQkDDwIGARkBCgEKARYBGQEUAmMEAAAABQAAAAMAAABDAAAAczoAAAB8AQBkAQBnAQAXfQQAfAIAciMAZAIAZwEAfAQAZAMAKm4AAHwDAHI2AHwDAHwEAGQDACpuAAB8BABTKAQAAABOcwIAAAAtY3MCAAAALWdpAAAAACgAAAAAKAUAAABSHgAAAFJUAAAAdAUAAABkZWJ1Z3QGAAAAYmVmb3JldAcAAABjY19hcmdzKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAwAAABfZ2V0X2NjX2FyZ3NvAQAAcwwAAAAAAg0BBgEQAQYBDQFjBAAAAAQAAAAFAAAAQwAAAHPYAAAAfAEAZAQAawgAchgAfAAAagEAfQEAbhsAdAIAfAEAdAMAgwIAczMAdAQAZAEAggIAbgAAfAIAZAQAawgAcksAfAAAagUAfQIAbi4AdAIAfAIAdAYAgwIAcnAAfAIAfAAAagUAcGkAZwAAF30CAG4JAHQEAGQCAIICAHwDAGQEAGsIAHKRAHwAAGoHAH0DAG46AHQCAHwDAHQGAHQIAGYCAIMCAHLCAHQGAHwDAIMBAHwAAGoHAHC7AGcAABd9AwBuCQB0BABkAwCCAgB8AQB8AgB8AwBmAwBTKAUAAABzJwIAAFR5cGVjaGVjayBhbmQgZml4LXVwIHNvbWUgb2YgdGhlIGFyZ3VtZW50cyB0byB0aGUgJ2NvbXBpbGUoKScKICAgICAgICBtZXRob2QsIGFuZCByZXR1cm4gZml4ZWQtdXAgdmFsdWVzLiAgU3BlY2lmaWNhbGx5OiBpZiAnb3V0cHV0X2RpcicKICAgICAgICBpcyBOb25lLCByZXBsYWNlcyBpdCB3aXRoICdzZWxmLm91dHB1dF9kaXInOyBlbnN1cmVzIHRoYXQgJ21hY3JvcycKICAgICAgICBpcyBhIGxpc3QsIGFuZCBhdWdtZW50cyBpdCB3aXRoICdzZWxmLm1hY3Jvcyc7IGVuc3VyZXMgdGhhdAogICAgICAgICdpbmNsdWRlX2RpcnMnIGlzIGEgbGlzdCwgYW5kIGF1Z21lbnRzIGl0IHdpdGggJ3NlbGYuaW5jbHVkZV9kaXJzJy4KICAgICAgICBHdWFyYW50ZWVzIHRoYXQgdGhlIHJldHVybmVkIHZhbHVlcyBhcmUgb2YgdGhlIGNvcnJlY3QgdHlwZSwKICAgICAgICBpLmUuIGZvciAnb3V0cHV0X2RpcicgZWl0aGVyIHN0cmluZyBvciBOb25lLCBhbmQgZm9yICdtYWNyb3MnIGFuZAogICAgICAgICdpbmNsdWRlX2RpcnMnIGVpdGhlciBsaXN0IG9yIE5vbmUuCiAgICAgICAgcyUAAAAnb3V0cHV0X2RpcicgbXVzdCBiZSBhIHN0cmluZyBvciBOb25lcy8AAAAnbWFjcm9zJyAoaWYgc3VwcGxpZWQpIG11c3QgYmUgYSBsaXN0IG9mIHR1cGxlc3M2AAAAJ2luY2x1ZGVfZGlycycgKGlmIHN1cHBsaWVkKSBtdXN0IGJlIGEgbGlzdCBvZiBzdHJpbmdzTigJAAAAUhMAAABSFAAAAFImAAAAUicAAABSMAAAAFIVAAAAUkcAAABSFgAAAFIuAAAAKAQAAABSHgAAAFIUAAAAUhUAAABSFgAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQRAAAAX2ZpeF9jb21waWxlX2FyZ3N4AQAAcyAAAAAACgwBDAEPAQwCDAEMAQ8BFgIJAgwBDAEVARwCAwEGAmMDAAAAAwAAAAQAAABDAAAAc2oAAAB0AAB8AQB0AQB0AgBmAgCDAgBzIQB0AwBkAQCCAgBuAAB0AQB8AQCDAQB9AQB8AgBkAwBrCAByRQB8AABqBQB9AgBuGwB0AAB8AgB0BgCDAgBzYAB0AwBkAgCCAgBuAAB8AQB8AgBmAgBTKAQAAABz+wAAAFR5cGVjaGVjayBhbmQgZml4IHVwIHNvbWUgYXJndW1lbnRzIHN1cHBsaWVkIHRvIHZhcmlvdXMgbWV0aG9kcy4KICAgICAgICBTcGVjaWZpY2FsbHk6IGVuc3VyZSB0aGF0ICdvYmplY3RzJyBpcyBhIGxpc3Q7IGlmIG91dHB1dF9kaXIgaXMKICAgICAgICBOb25lLCByZXBsYWNlIHdpdGggc2VsZi5vdXRwdXRfZGlyLiAgUmV0dXJuIGZpeGVkIHZlcnNpb25zIG9mCiAgICAgICAgJ29iamVjdHMnIGFuZCAnb3V0cHV0X2RpcicuCiAgICAgICAgcywAAAAnb2JqZWN0cycgbXVzdCBiZSBhIGxpc3Qgb3IgdHVwbGUgb2Ygc3RyaW5nc3MlAAAAJ291dHB1dF9kaXInIG11c3QgYmUgYSBzdHJpbmcgb3IgTm9uZU4oBwAAAFImAAAAUkcAAABSLgAAAFIwAAAAUhMAAABSFAAAAFInAAAAKAMAAABSHgAAAFIaAAAAUhQAAAAoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0EAAAAF9maXhfb2JqZWN0X2FyZ3OYAQAAcxIAAAAABhUBAwEJAQwCDAEMAQ8BDAJjBAAAAAQAAAAGAAAAQwAAAHMHAQAAfAEAZAUAawgAchgAfAAAagEAfQEAbjoAdAIAfAEAdAMAdAQAZgIAgwIAckkAdAMAfAEAgwEAfAAAagEAcEIAZwAAF30BAG4JAHQFAGQBAIICAHwCAGQFAGsIAHJqAHwAAGoGAH0CAG46AHQCAHwCAHQDAHQEAGYCAIMCAHKbAHQDAHwCAIMBAHwAAGoGAHCUAGcAABd9AgBuCQB0BQBkAgCCAgB8AwBkBQBrCAByvAB8AABqBwB9AwBuPgB0AgB8AwB0AwB0BABmAgCDAgBy7QB0AwB8AwCDAQB8AABqBwBw5gBnAAAXfQMAbg0AdAUAZAMAZAQAF4ICAHwBAHwCAHwDAGYDAFMoBgAAAHM7AQAAVHlwZWNoZWNrIGFuZCBmaXggdXAgc29tZSBvZiB0aGUgYXJndW1lbnRzIHN1cHBsaWVkIHRvIHRoZQogICAgICAgICdsaW5rXyonIG1ldGhvZHMuICBTcGVjaWZpY2FsbHk6IGVuc3VyZSB0aGF0IGFsbCBhcmd1bWVudHMgYXJlCiAgICAgICAgbGlzdHMsIGFuZCBhdWdtZW50IHRoZW0gd2l0aCB0aGVpciBwZXJtYW5lbnQgdmVyc2lvbnMKICAgICAgICAoZWcuICdzZWxmLmxpYnJhcmllcycgYXVnbWVudHMgJ2xpYnJhcmllcycpLiAgUmV0dXJuIGEgdHVwbGUgd2l0aAogICAgICAgIGZpeGVkIHZlcnNpb25zIG9mIGFsbCBhcmd1bWVudHMuCiAgICAgICAgczMAAAAnbGlicmFyaWVzJyAoaWYgc3VwcGxpZWQpIG11c3QgYmUgYSBsaXN0IG9mIHN0cmluZ3NzNgAAACdsaWJyYXJ5X2RpcnMnIChpZiBzdXBwbGllZCkgbXVzdCBiZSBhIGxpc3Qgb2Ygc3RyaW5nc3MlAAAAJ3J1bnRpbWVfbGlicmFyeV9kaXJzJyAoaWYgc3VwcGxpZWQpIHMZAAAAbXVzdCBiZSBhIGxpc3Qgb2Ygc3RyaW5nc04oCAAAAFITAAAAUhcAAABSJgAAAFJHAAAAUi4AAABSMAAAAFIYAAAAUhkAAAAoBAAAAFIeAAAAUhcAAABSGAAAAFIZAAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dA0AAABfZml4X2xpYl9hcmdzqgEAAHMqAAAAAAcMAQwBFQEcAgMBBgIMAQwBFQEcAgMBBgIMAQwBFQEJARMCAwEDAQcCYwMAAAAEAAAABQAAAEMAAABzRQAAAHwAAGoAAHINAGQBAFN8AABqAQByLgB0AgB8AQB8AgBkAgBkAwCDAgF9AwBuDwB0AgB8AQB8AgCDAgB9AwB8AwBTZAQAUygFAAAAc2oAAABSZXR1cm4gdHJ1ZSBpZiB3ZSBuZWVkIHRvIHJlbGluayB0aGUgZmlsZXMgbGlzdGVkIGluICdvYmplY3RzJwogICAgICAgIHRvIHJlY3JlYXRlICdvdXRwdXRfZmlsZScuCiAgICAgICAgaQEAAAB0BwAAAG1pc3Npbmd0BQAAAG5ld2VyTigDAAAAUhEAAABSEAAAAFIIAAAAKAQAAABSHgAAAFIaAAAAdAsAAABvdXRwdXRfZmlsZVJiAAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAoAAABfbmVlZF9saW5rzQEAAHMMAAAAAAQJAQQCCQEYAg8BYwIAAAAJAAAABgAAAEMAAABztAAAAHQAAHwBAHQBAIMCAHMbAHwBAGcBAH0BAG4AAGQBAH0CAHQDAHwAAGoEAIMBAH0DAHh9AHwBAERddQB9BAB0BQBqBgBqBwB8BACDAQBcAgB9BQB9BgB8AABqCABqCQB8BgCDAQB9BwB5MQB8AABqBABqCgB8BwCDAQB9CAB8CAB8AwBrAABylwB8BwB9AgB8CAB9AwBuAABXcTcABHQLAGsKAHKrAAEBAXE3AFhxNwBXfAIAUygCAAAAc3wAAABEZXRlY3QgdGhlIGxhbmd1YWdlIG9mIGEgZ2l2ZW4gZmlsZSwgb3IgbGlzdCBvZiBmaWxlcy4gVXNlcwogICAgICAgIGxhbmd1YWdlX21hcCwgYW5kIGxhbmd1YWdlX29yZGVyIHRvIGRvIHRoZSBqb2IuCiAgICAgICAgTigMAAAAUiYAAABSRwAAAFITAAAAUi8AAAB0DgAAAGxhbmd1YWdlX29yZGVyUksAAABSTAAAAFJNAAAAdAwAAABsYW5ndWFnZV9tYXB0AwAAAGdldHQFAAAAaW5kZXhSIQAAACgJAAAAUh4AAABSUQAAAHQEAAAAbGFuZ1JoAAAAdAYAAABzb3VyY2V0BAAAAGJhc2VSWAAAAHQHAAAAZXh0bGFuZ3QIAAAAZXh0aW5kZXgoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DwAAAGRldGVjdF9sYW5ndWFnZdoBAABzHgAAAAAEDwEMAQYBDwENARgBEgEDARIBDAEGAQ0BDQEIAWMHAAAABwAAAAEAAABDAAAAcwQAAABkAQBTKAIAAABz1QEAAFByZXByb2Nlc3MgYSBzaW5nbGUgQy9DKysgc291cmNlIGZpbGUsIG5hbWVkIGluICdzb3VyY2UnLgogICAgICAgIE91dHB1dCB3aWxsIGJlIHdyaXR0ZW4gdG8gZmlsZSBuYW1lZCAnb3V0cHV0X2ZpbGUnLCBvciBzdGRvdXQgaWYKICAgICAgICAnb3V0cHV0X2ZpbGUnIG5vdCBzdXBwbGllZC4gICdtYWNyb3MnIGlzIGEgbGlzdCBvZiBtYWNybwogICAgICAgIGRlZmluaXRpb25zIGFzIGZvciAnY29tcGlsZSgpJywgd2hpY2ggd2lsbCBhdWdtZW50IHRoZSBtYWNyb3Mgc2V0CiAgICAgICAgd2l0aCAnZGVmaW5lX21hY3JvKCknIGFuZCAndW5kZWZpbmVfbWFjcm8oKScuICAnaW5jbHVkZV9kaXJzJyBpcyBhCiAgICAgICAgbGlzdCBvZiBkaXJlY3RvcnkgbmFtZXMgdGhhdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBkZWZhdWx0IGxpc3QuCgogICAgICAgIFJhaXNlcyBQcmVwcm9jZXNzRXJyb3Igb24gZmFpbHVyZS4KICAgICAgICBOKAAAAAAoBwAAAFIeAAAAUmoAAABSYwAAAFIVAAAAUhYAAAB0DQAAAGV4dHJhX3ByZWFyZ3N0DgAAAGV4dHJhX3Bvc3RhcmdzKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAoAAABwcmVwcm9jZXNz8QEAAHMCAAAAAAtjCQAAABAAAAAIAAAAQwAAAHOeAAAAfAAAagAAfAIAfAMAfAQAfAEAfAgAfAcAgwYAXAUAfQMAfQkAfQcAfQoAfQsAfAAAagEAfAoAfAUAfAYAgwMAfQwAeFUAfAkARF1NAH0NAHkUAHwLAHwNABlcAgB9DgB9DwBXbhQABHQCAGsKAHJ5AAEBAXFJAG4BAFh8AABqAwB8DQB8DgB8DwB8DAB8BwB8CgCDBgABcUkAV3wJAFMoAQAAAHNLCQAAQ29tcGlsZSBvbmUgb3IgbW9yZSBzb3VyY2UgZmlsZXMuCgogICAgICAgICdzb3VyY2VzJyBtdXN0IGJlIGEgbGlzdCBvZiBmaWxlbmFtZXMsIG1vc3QgbGlrZWx5IEMvQysrCiAgICAgICAgZmlsZXMsIGJ1dCBpbiByZWFsaXR5IGFueXRoaW5nIHRoYXQgY2FuIGJlIGhhbmRsZWQgYnkgYQogICAgICAgIHBhcnRpY3VsYXIgY29tcGlsZXIgYW5kIGNvbXBpbGVyIGNsYXNzIChlZy4gTVNWQ0NvbXBpbGVyIGNhbgogICAgICAgIGhhbmRsZSByZXNvdXJjZSBmaWxlcyBpbiAnc291cmNlcycpLiAgUmV0dXJuIGEgbGlzdCBvZiBvYmplY3QKICAgICAgICBmaWxlbmFtZXMsIG9uZSBwZXIgc291cmNlIGZpbGVuYW1lIGluICdzb3VyY2VzJy4gIERlcGVuZGluZyBvbgogICAgICAgIHRoZSBpbXBsZW1lbnRhdGlvbiwgbm90IGFsbCBzb3VyY2UgZmlsZXMgd2lsbCBuZWNlc3NhcmlseSBiZQogICAgICAgIGNvbXBpbGVkLCBidXQgYWxsIGNvcnJlc3BvbmRpbmcgb2JqZWN0IGZpbGVuYW1lcyB3aWxsIGJlCiAgICAgICAgcmV0dXJuZWQuCgogICAgICAgIElmICdvdXRwdXRfZGlyJyBpcyBnaXZlbiwgb2JqZWN0IGZpbGVzIHdpbGwgYmUgcHV0IHVuZGVyIGl0LCB3aGlsZQogICAgICAgIHJldGFpbmluZyB0aGVpciBvcmlnaW5hbCBwYXRoIGNvbXBvbmVudC4gIFRoYXQgaXMsICJmb28vYmFyLmMiCiAgICAgICAgbm9ybWFsbHkgY29tcGlsZXMgdG8gImZvby9iYXIubyIgKGZvciBhIFVuaXggaW1wbGVtZW50YXRpb24pOyBpZgogICAgICAgICdvdXRwdXRfZGlyJyBpcyAiYnVpbGQiLCB0aGVuIGl0IHdvdWxkIGNvbXBpbGUgdG8KICAgICAgICAiYnVpbGQvZm9vL2Jhci5vIi4KCiAgICAgICAgJ21hY3JvcycsIGlmIGdpdmVuLCBtdXN0IGJlIGEgbGlzdCBvZiBtYWNybyBkZWZpbml0aW9ucy4gIEEgbWFjcm8KICAgICAgICBkZWZpbml0aW9uIGlzIGVpdGhlciBhIChuYW1lLCB2YWx1ZSkgMi10dXBsZSBvciBhIChuYW1lLCkgMS10dXBsZS4KICAgICAgICBUaGUgZm9ybWVyIGRlZmluZXMgYSBtYWNybzsgaWYgdGhlIHZhbHVlIGlzIE5vbmUsIHRoZSBtYWNybyBpcwogICAgICAgIGRlZmluZWQgd2l0aG91dCBhbiBleHBsaWNpdCB2YWx1ZS4gIFRoZSAxLXR1cGxlIGNhc2UgdW5kZWZpbmVzIGEKICAgICAgICBtYWNyby4gIExhdGVyIGRlZmluaXRpb25zL3JlZGVmaW5pdGlvbnMvIHVuZGVmaW5pdGlvbnMgdGFrZQogICAgICAgIHByZWNlZGVuY2UuCgogICAgICAgICdpbmNsdWRlX2RpcnMnLCBpZiBnaXZlbiwgbXVzdCBiZSBhIGxpc3Qgb2Ygc3RyaW5ncywgdGhlCiAgICAgICAgZGlyZWN0b3JpZXMgdG8gYWRkIHRvIHRoZSBkZWZhdWx0IGluY2x1ZGUgZmlsZSBzZWFyY2ggcGF0aCBmb3IgdGhpcwogICAgICAgIGNvbXBpbGF0aW9uIG9ubHkuCgogICAgICAgICdkZWJ1ZycgaXMgYSBib29sZWFuOyBpZiB0cnVlLCB0aGUgY29tcGlsZXIgd2lsbCBiZSBpbnN0cnVjdGVkIHRvCiAgICAgICAgb3V0cHV0IGRlYnVnIHN5bWJvbHMgaW4gKG9yIGFsb25nc2lkZSkgdGhlIG9iamVjdCBmaWxlKHMpLgoKICAgICAgICAnZXh0cmFfcHJlYXJncycgYW5kICdleHRyYV9wb3N0YXJncycgYXJlIGltcGxlbWVudGF0aW9uLSBkZXBlbmRlbnQuCiAgICAgICAgT24gcGxhdGZvcm1zIHRoYXQgaGF2ZSB0aGUgbm90aW9uIG9mIGEgY29tbWFuZC1saW5lIChlLmcuIFVuaXgsCiAgICAgICAgRE9TL1dpbmRvd3MpLCB0aGV5IGFyZSBtb3N0IGxpa2VseSBsaXN0cyBvZiBzdHJpbmdzOiBleHRyYQogICAgICAgIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gcHJlcGFuZC9hcHBlbmQgdG8gdGhlIGNvbXBpbGVyIGNvbW1hbmQKICAgICAgICBsaW5lLiAgT24gb3RoZXIgcGxhdGZvcm1zLCBjb25zdWx0IHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcwogICAgICAgIGRvY3VtZW50YXRpb24uICBJbiBhbnkgZXZlbnQsIHRoZXkgYXJlIGludGVuZGVkIGFzIGFuIGVzY2FwZSBoYXRjaAogICAgICAgIGZvciB0aG9zZSBvY2Nhc2lvbnMgd2hlbiB0aGUgYWJzdHJhY3QgY29tcGlsZXIgZnJhbWV3b3JrIGRvZXNuJ3QKICAgICAgICBjdXQgdGhlIG11c3RhcmQuCgogICAgICAgICdkZXBlbmRzJywgaWYgZ2l2ZW4sIGlzIGEgbGlzdCBvZiBmaWxlbmFtZXMgdGhhdCBhbGwgdGFyZ2V0cwogICAgICAgIGRlcGVuZCBvbi4gIElmIGEgc291cmNlIGZpbGUgaXMgb2xkZXIgdGhhbiBhbnkgZmlsZSBpbgogICAgICAgIGRlcGVuZHMsIHRoZW4gdGhlIHNvdXJjZSBmaWxlIHdpbGwgYmUgcmVjb21waWxlZC4gIFRoaXMKICAgICAgICBzdXBwb3J0cyBkZXBlbmRlbmN5IHRyYWNraW5nLCBidXQgb25seSBhdCBhIGNvYXJzZQogICAgICAgIGdyYW51bGFyaXR5LgoKICAgICAgICBSYWlzZXMgQ29tcGlsZUVycm9yIG9uIGZhaWx1cmUuCiAgICAgICAgKAQAAABSWQAAAFJdAAAAdAgAAABLZXlFcnJvcnQIAAAAX2NvbXBpbGUoEAAAAFIeAAAAUlEAAABSFAAAAFIVAAAAUhYAAABSWgAAAFJvAAAAUnAAAABSUgAAAFIaAAAAUlQAAABSVQAAAFJcAAAAUlcAAABSVgAAAFJYAAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dAcAAABjb21waWxl/gEAAHMUAAAAADcSARsBFQINAQMBFAENAQcBIANjBwAAAAcAAAABAAAAQwAAAHMEAAAAZAEAUygCAAAAcx8AAABDb21waWxlICdzcmMnIHRvIHByb2R1Y3QgJ29iaicuTigAAAAAKAcAAABSHgAAAFJXAAAAUlYAAABSWAAAAFJcAAAAUnAAAABSVAAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weVJzAAAAQwIAAHMCAAAAAAVjBgAAAAYAAAABAAAAQwAAAHMEAAAAZAEAUygCAAAAcyYEAABMaW5rIGEgYnVuY2ggb2Ygc3R1ZmYgdG9nZXRoZXIgdG8gY3JlYXRlIGEgc3RhdGljIGxpYnJhcnkgZmlsZS4KICAgICAgICBUaGUgImJ1bmNoIG9mIHN0dWZmIiBjb25zaXN0cyBvZiB0aGUgbGlzdCBvZiBvYmplY3QgZmlsZXMgc3VwcGxpZWQKICAgICAgICBhcyAnb2JqZWN0cycsIHRoZSBleHRyYSBvYmplY3QgZmlsZXMgc3VwcGxpZWQgdG8KICAgICAgICAnYWRkX2xpbmtfb2JqZWN0KCknIGFuZC9vciAnc2V0X2xpbmtfb2JqZWN0cygpJywgdGhlIGxpYnJhcmllcwogICAgICAgIHN1cHBsaWVkIHRvICdhZGRfbGlicmFyeSgpJyBhbmQvb3IgJ3NldF9saWJyYXJpZXMoKScsIGFuZCB0aGUKICAgICAgICBsaWJyYXJpZXMgc3VwcGxpZWQgYXMgJ2xpYnJhcmllcycgKGlmIGFueSkuCgogICAgICAgICdvdXRwdXRfbGlibmFtZScgc2hvdWxkIGJlIGEgbGlicmFyeSBuYW1lLCBub3QgYSBmaWxlbmFtZTsgdGhlCiAgICAgICAgZmlsZW5hbWUgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBsaWJyYXJ5IG5hbWUuICAnb3V0cHV0X2RpcicgaXMKICAgICAgICB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBsaWJyYXJ5IGZpbGUgd2lsbCBiZSBwdXQuCgogICAgICAgICdkZWJ1ZycgaXMgYSBib29sZWFuOyBpZiB0cnVlLCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gd2lsbCBiZQogICAgICAgIGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5IChub3RlIHRoYXQgb24gbW9zdCBwbGF0Zm9ybXMsIGl0IGlzIHRoZQogICAgICAgIGNvbXBpbGUgc3RlcCB3aGVyZSB0aGlzIG1hdHRlcnM6IHRoZSAnZGVidWcnIGZsYWcgaXMgaW5jbHVkZWQgaGVyZQogICAgICAgIGp1c3QgZm9yIGNvbnNpc3RlbmN5KS4KCiAgICAgICAgJ3RhcmdldF9sYW5nJyBpcyB0aGUgdGFyZ2V0IGxhbmd1YWdlIGZvciB3aGljaCB0aGUgZ2l2ZW4gb2JqZWN0cwogICAgICAgIGFyZSBiZWluZyBjb21waWxlZC4gVGhpcyBhbGxvd3Mgc3BlY2lmaWMgbGlua2FnZSB0aW1lIHRyZWF0bWVudCBvZgogICAgICAgIGNlcnRhaW4gbGFuZ3VhZ2VzLgoKICAgICAgICBSYWlzZXMgTGliRXJyb3Igb24gZmFpbHVyZS4KICAgICAgICBOKAAAAAAoBgAAAFIeAAAAUhoAAAB0DgAAAG91dHB1dF9saWJuYW1lUhQAAABSWgAAAHQLAAAAdGFyZ2V0X2xhbmcoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0EQAAAGNyZWF0ZV9zdGF0aWNfbGliSgIAAHMCAAAAABh0DQAAAHNoYXJlZF9vYmplY3R0DgAAAHNoYXJlZF9saWJyYXJ5dAoAAABleGVjdXRhYmxlYw4AAAAOAAAAAQAAAEMAAABzCgAAAHQAAIIBAGQBAFMoAgAAAHN1CAAATGluayBhIGJ1bmNoIG9mIHN0dWZmIHRvZ2V0aGVyIHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlIG9yCiAgICAgICAgc2hhcmVkIGxpYnJhcnkgZmlsZS4KCiAgICAgICAgVGhlICJidW5jaCBvZiBzdHVmZiIgY29uc2lzdHMgb2YgdGhlIGxpc3Qgb2Ygb2JqZWN0IGZpbGVzIHN1cHBsaWVkCiAgICAgICAgYXMgJ29iamVjdHMnLiAgJ291dHB1dF9maWxlbmFtZScgc2hvdWxkIGJlIGEgZmlsZW5hbWUuICBJZgogICAgICAgICdvdXRwdXRfZGlyJyBpcyBzdXBwbGllZCwgJ291dHB1dF9maWxlbmFtZScgaXMgcmVsYXRpdmUgdG8gaXQKICAgICAgICAoaS5lLiAnb3V0cHV0X2ZpbGVuYW1lJyBjYW4gcHJvdmlkZSBkaXJlY3RvcnkgY29tcG9uZW50cyBpZgogICAgICAgIG5lZWRlZCkuCgogICAgICAgICdsaWJyYXJpZXMnIGlzIGEgbGlzdCBvZiBsaWJyYXJpZXMgdG8gbGluayBhZ2FpbnN0LiAgVGhlc2UgYXJlCiAgICAgICAgbGlicmFyeSBuYW1lcywgbm90IGZpbGVuYW1lcywgc2luY2UgdGhleSdyZSB0cmFuc2xhdGVkIGludG8KICAgICAgICBmaWxlbmFtZXMgaW4gYSBwbGF0Zm9ybS1zcGVjaWZpYyB3YXkgKGVnLiAiZm9vIiBiZWNvbWVzICJsaWJmb28uYSIKICAgICAgICBvbiBVbml4IGFuZCAiZm9vLmxpYiIgb24gRE9TL1dpbmRvd3MpLiAgSG93ZXZlciwgdGhleSBjYW4gaW5jbHVkZSBhCiAgICAgICAgZGlyZWN0b3J5IGNvbXBvbmVudCwgd2hpY2ggbWVhbnMgdGhlIGxpbmtlciB3aWxsIGxvb2sgaW4gdGhhdAogICAgICAgIHNwZWNpZmljIGRpcmVjdG9yeSByYXRoZXIgdGhhbiBzZWFyY2hpbmcgYWxsIHRoZSBub3JtYWwgbG9jYXRpb25zLgoKICAgICAgICAnbGlicmFyeV9kaXJzJywgaWYgc3VwcGxpZWQsIHNob3VsZCBiZSBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8KICAgICAgICBzZWFyY2ggZm9yIGxpYnJhcmllcyB0aGF0IHdlcmUgc3BlY2lmaWVkIGFzIGJhcmUgbGlicmFyeSBuYW1lcwogICAgICAgIChpZS4gbm8gZGlyZWN0b3J5IGNvbXBvbmVudCkuICBUaGVzZSBhcmUgb24gdG9wIG9mIHRoZSBzeXN0ZW0KICAgICAgICBkZWZhdWx0IGFuZCB0aG9zZSBzdXBwbGllZCB0byAnYWRkX2xpYnJhcnlfZGlyKCknIGFuZC9vcgogICAgICAgICdzZXRfbGlicmFyeV9kaXJzKCknLiAgJ3J1bnRpbWVfbGlicmFyeV9kaXJzJyBpcyBhIGxpc3Qgb2YKICAgICAgICBkaXJlY3RvcmllcyB0aGF0IHdpbGwgYmUgZW1iZWRkZWQgaW50byB0aGUgc2hhcmVkIGxpYnJhcnkgYW5kIHVzZWQKICAgICAgICB0byBzZWFyY2ggZm9yIG90aGVyIHNoYXJlZCBsaWJyYXJpZXMgdGhhdCAqaXQqIGRlcGVuZHMgb24gYXQKICAgICAgICBydW4tdGltZS4gIChUaGlzIG1heSBvbmx5IGJlIHJlbGV2YW50IG9uIFVuaXguKQoKICAgICAgICAnZXhwb3J0X3N5bWJvbHMnIGlzIGEgbGlzdCBvZiBzeW1ib2xzIHRoYXQgdGhlIHNoYXJlZCBsaWJyYXJ5IHdpbGwKICAgICAgICBleHBvcnQuICAoVGhpcyBhcHBlYXJzIHRvIGJlIHJlbGV2YW50IG9ubHkgb24gV2luZG93cy4pCgogICAgICAgICdkZWJ1ZycgaXMgYXMgZm9yICdjb21waWxlKCknIGFuZCAnY3JlYXRlX3N0YXRpY19saWIoKScsIHdpdGggdGhlCiAgICAgICAgc2xpZ2h0IGRpc3RpbmN0aW9uIHRoYXQgaXQgYWN0dWFsbHkgbWF0dGVycyBvbiBtb3N0IHBsYXRmb3JtcyAoYXMKICAgICAgICBvcHBvc2VkIHRvICdjcmVhdGVfc3RhdGljX2xpYigpJywgd2hpY2ggaW5jbHVkZXMgYSAnZGVidWcnIGZsYWcKICAgICAgICBtb3N0bHkgZm9yIGZvcm0ncyBzYWtlKS4KCiAgICAgICAgJ2V4dHJhX3ByZWFyZ3MnIGFuZCAnZXh0cmFfcG9zdGFyZ3MnIGFyZSBhcyBmb3IgJ2NvbXBpbGUoKScgKGV4Y2VwdAogICAgICAgIG9mIGNvdXJzZSB0aGF0IHRoZXkgc3VwcGx5IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgZm9yIHRoZQogICAgICAgIHBhcnRpY3VsYXIgbGlua2VyIGJlaW5nIHVzZWQpLgoKICAgICAgICAndGFyZ2V0X2xhbmcnIGlzIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgZm9yIHdoaWNoIHRoZSBnaXZlbiBvYmplY3RzCiAgICAgICAgYXJlIGJlaW5nIGNvbXBpbGVkLiBUaGlzIGFsbG93cyBzcGVjaWZpYyBsaW5rYWdlIHRpbWUgdHJlYXRtZW50IG9mCiAgICAgICAgY2VydGFpbiBsYW5ndWFnZXMuCgogICAgICAgIFJhaXNlcyBMaW5rRXJyb3Igb24gZmFpbHVyZS4KICAgICAgICBOKAEAAAB0EwAAAE5vdEltcGxlbWVudGVkRXJyb3IoDgAAAFIeAAAAdAsAAAB0YXJnZXRfZGVzY1IaAAAAdA8AAABvdXRwdXRfZmlsZW5hbWVSFAAAAFIXAAAAUhgAAABSGQAAAHQOAAAAZXhwb3J0X3N5bWJvbHNSWgAAAFJvAAAAUnAAAAB0CgAAAGJ1aWxkX3RlbXBSdgAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQEAAAAbGlua2kCAABzAgAAAAAvYw0AAAANAAAADgAAAEMAAABzRwAAAHwAAGoAAHQBAGoCAHwBAHwAAGoDAHwCAGQBAGQCAIMBAXwDAHwEAHwFAHwGAHwHAHwIAHwJAHwKAHwLAHwMAIMNAAFkAABTKAMAAABOdAgAAABsaWJfdHlwZXQGAAAAc2hhcmVkKAQAAABSgAAAAFINAAAAdA4AAABTSEFSRURfTElCUkFSWXQQAAAAbGlicmFyeV9maWxlbmFtZSgNAAAAUh4AAABSGgAAAFJ1AAAAUhQAAABSFwAAAFIYAAAAUhkAAABSfgAAAFJaAAAAUm8AAABScAAAAFJ/AAAAUnYAAAAoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0DwAAAGxpbmtfc2hhcmVkX2xpYp0CAABzDAAAAAAFDwESAQMBCQEGAWMNAAAADQAAAA4AAABDAAAAczgAAAB8AABqAAB0AQBqAgB8AQB8AgB8AwB8BAB8BQB8BgB8BwB8CAB8CQB8CgB8CwB8DACDDQABZAAAUygBAAAATigDAAAAUoAAAABSDQAAAHQNAAAAU0hBUkVEX09CSkVDVCgNAAAAUh4AAABSGgAAAFJ9AAAAUhQAAABSFwAAAFIYAAAAUhkAAABSfgAAAFJaAAAAUm8AAABScAAAAFJ/AAAAUnYAAAAoAAAAACgAAAAAc1oAAAAvYnVpbGRib3QvdG1wL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9saWIvcHl0aG9uMi43L2Rpc3R1dGlscy9jY29tcGlsZXIucHl0EgAAAGxpbmtfc2hhcmVkX29iamVjdKoCAABzCgAAAAAFDwEGAQkBBgFjCwAAAAsAAAAOAAAAQwAAAHNBAAAAfAAAagAAdAEAagIAfAEAfAAAagMAfAIAgwEAfAMAfAQAfAUAfAYAZAAAfAcAfAgAfAkAZAAAfAoAgw0AAWQAAFMoAQAAAE4oBQAAAFKAAAAAUg0AAAB0CgAAAEVYRUNVVEFCTEV0EwAAAGV4ZWN1dGFibGVfZmlsZW5hbWVSEwAAACgLAAAAUh4AAABSGgAAAHQPAAAAb3V0cHV0X3Byb2duYW1lUhQAAABSFwAAAFIYAAAAUhkAAABSWgAAAFJvAAAAUnAAAABSdgAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQPAAAAbGlua19leGVjdXRhYmxltQIAAHMIAAAAAAQPAQ8BDAFjAgAAAAIAAAABAAAAQwAAAHMKAAAAdAAAggEAZAEAUygCAAAAc2sAAABSZXR1cm4gdGhlIGNvbXBpbGVyIG9wdGlvbiB0byBhZGQgJ2RpcicgdG8gdGhlIGxpc3Qgb2YKICAgICAgICBkaXJlY3RvcmllcyBzZWFyY2hlZCBmb3IgbGlicmFyaWVzLgogICAgICAgIE4oAQAAAFJ7AAAAKAIAAABSHgAAAFI3AAAAKAAAAAAoAAAAAHNaAAAAL2J1aWxkYm90L3RtcC9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9saW51eC14ODZfNjQvbGliL3B5dGhvbjIuNy9kaXN0dXRpbHMvY2NvbXBpbGVyLnB5dBIAAABsaWJyYXJ5X2Rpcl9vcHRpb27EAgAAcwIAAAAABGMCAAAAAgAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABzcwAAAFJldHVybiB0aGUgY29tcGlsZXIgb3B0aW9uIHRvIGFkZCAnZGlyJyB0byB0aGUgbGlzdCBvZgogICAgICAgIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGZvciBydW50aW1lIGxpYnJhcmllcy4KICAgICAgICBOKAEAAABSewAAACgCAAAAUh4AAABSNwAAACgAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQaAAAAcnVudGltZV9saWJyYXJ5X2Rpcl9vcHRpb27KAgAAcwIAAAAABGMCAAAAAgAAAAEAAABDAAAAcwoAAAB0AACCAQBkAQBTKAIAAABzfwAAAFJldHVy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b3IgdGhlIGdpdmVuIHBsYXRmb3JtLgoKICAgICAgICBvc25hbWUgc2hvdWxkIGJlIG9uZSBvZiB0aGUgc3RhbmRhcmQgUHl0aG9uIE9TIG5hbWVzIChpLmUuIHRoZQogICAgICAgIG9uZXMgcmV0dXJuZWQgYnkgb3MubmFtZSkgYW5kIHBsYXRmb3JtIHRoZSBjb21tb24gdmFsdWUKICAgICAgICByZXR1cm5lZCBieSBzeXMucGxhdGZvcm0gZm9yIHRoZSBwbGF0Zm9ybSBpbiBxdWVzdGlvbi4KCiAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWVzIGFyZSBvcy5uYW1lIGFuZCBzeXMucGxhdGZvcm0gaW4gY2FzZSB0aGUKICAgICAgICBwYXJhbWV0ZXJzIGFyZSBub3QgZ2l2ZW4uCgogICAgUs0AAAB0AwAAAEdDQ2kAAAAAdAcAAABtaW5ndzMyUskAAABOKAoAAABSEwAAAFJLAAAAUioAAABSvAAAAHQIAAAAcGxhdGZvcm10BwAAAHZlcnNpb250BAAAAGZpbmR0EgAAAF9kZWZhdWx0X2NvbXBpbGVyc3QCAAAAcmV0BQAAAG1hdGNoKAQAAAB0BgAAAG9zbmFtZVLRAAAAdAcAAABwYXR0ZXJudAgAAABjb21waWxlcigAAAAAKAAAAABzWgAAAC9idWlsZGJvdC90bXAvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvbGludXgteDg2XzY0L2xpYi9weXRob24yLjcvZGlzdHV0aWxzL2Njb21waWxlci5weXQUAAAAZ2V0X2RlZmF1bHRfY29tcGlsZXKKAwAAcxYAAAAACwwBDAEMAQwBJAEEARMBGAEYAQgCdA0AAAB1bml4Y2NvbXBpbGVydA0AAABVbml4Q0NvbXBpbGVycxwAAABzdGFuZGFyZCBVTklYLXN0eWxlIGNvbXBpbGVydAwAAABtc3ZjY29tcGlsZXJ0DAAAAE1TVkNDb21waWxlcnMUAAAATWljcm9zb2Z0IFZpc3VhbCBDKyt0DwAAAGN5Z3dpbmNjb21waWxlcnQPAAAAQ3lnd2luQ0NvbXBpbGVycycAAABDeWd3aW4gcG9ydCBvZiBHTlUgQyBDb21waWxlciBmb3IgV2luMzJ0BgAAAGN5Z3dpbnQQAAAA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