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bnRheCBlcnJvcgogICAgb2NjdXJyZWQgd2l0aCBhIGNhcmV0IG9uIHRoZSBuZXh0IGxpbmUgaW5kaWNhdGluZyB0aGUgYXBwcm94aW1hdGUKICAgIHBvc2l0aW9uIG9mIHRoZSBlcnJvci4KICAgIHMiAAAAVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlIOAAAATigGAAAAUhQAAABSFQAAAFIWAAAAUhMAAABSDAAAAFIDAAAAKAcAAAB0BQAAAGV0eXBldAUAAAB2YWx1ZVIsAAAAUi0AAABSEAAAAHQFAAAAbGluZXNSHAAAACgAAAAAKAAAAABzdAAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvdHJhY2ViYWNrLnB5UgkAAABuAAAAcxAAAAAACwwBDAEGAQ0BEwEPAQ0BYwQAAAAFAAAABAAAAEMAAABzQgAAAHwCAHIlAGQBAGcBAH0EAHwEAHQAAHwCAHwDAIMCABd9BABuBgBnAAB9BAB8BAB0AQB8AAB8AQCDAgAXfQQAfAQAUygCAAAAc3oBAABGb3JtYXQgYSBzdGFjayB0cmFjZSBhbmQgdGhlIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbi4KCiAgICBUaGUgYXJndW1lbnRzIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyB0aGUgY29ycmVzcG9uZGluZyBhcmd1bWVudHMKICAgIHRvIHByaW50X2V4Y2VwdGlvbigpLiAgVGhlIHJldHVybiB2YWx1ZSBpcyBhIGxpc3Qgb2Ygc3RyaW5ncywgZWFjaAogICAgZW5kaW5nIGluIGEgbmV3bGluZSBhbmQgc29tZSBjb250YWluaW5nIGludGVybmFsIG5ld2xpbmVzLiAgV2hlbgogICAgdGhlc2UgbGluZXMgYXJlIGNvbmNhdGVuYXRlZCBhbmQgcHJpbnRlZCwgZXhhY3RseSB0aGUgc2FtZSB0ZXh0IGlzCiAgICBwcmludGVkIGFzIGRvZXMgcHJpbnRfZXhjZXB0aW9uKCkuCiAgICBzIwAAAFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKAIAAABSBgAAAFIDAAAAKAUAAABSMQAAAFIyAAAAUiwAAABSLQAAAFIfAAAAKAAAAAAoAAAAAHN0AAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy90cmFjZWJhY2sucHlSAgAAAIIAAABzDAAAAAAJBgEJARYCBgETAWMCAAAACgAAAAgAAABDAAAAc2sBAAB0AAB8AAB0AQCDAgBzPwB0AAB8AAB0AgBqAwCDAgBzPwB8AABkCABrCABzPwB0BQB8AACDAQB0BgBrCAByTwB0BwB8AAB8AQCDAgBnAQBTfAAAaggAfQIAdAkAfAAAdAoAgwIAc3cAdAcAfAIAfAEAgwIAZwEAU2cAAH0DAHkfAHwBAGoLAFwCAH0EAFwEAH0FAH0GAH0HAH0IAFduEQAEdAwAawoAcq8AAQEBbqIAWHwFAHC5AGQBAH0FAHwDAGoNAGQCAHwFAHwGAGYCABaDAQABfAgAZAgAawkAcksBfAMAag0AZAMAfAgAag4AgwAAFoMBAAF8BwBkCABrCQBySwF8CABqDwBkBACDAQB8BwAgahAAgwAAfQkAZAUAhAAAfAkARIMBAH0JAHwDAGoNAGQGAGQHAGoRAHwJAIMBABaDAQABcUsBbgAAfAQAfQEAfAMAag0AdAcAfAIAfAEAgwIAgwEAAXwDAFMoCQAAAHMUAgAARm9ybWF0IHRoZSBleGNlcHRpb24gcGFydCBvZiBhIHRyYWNlYmFjay4KCiAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgZXhjZXB0aW9uIHR5cGUgYW5kIHZhbHVlIHN1Y2ggYXMgZ2l2ZW4gYnkKICAgIHN5cy5sYXN0X3R5cGUgYW5kIHN5cy5sYXN0X3ZhbHVlLiBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgbGlzdCBvZgogICAgc3RyaW5ncywgZWFjaCBlbmRpbmcgaW4gYSBuZXdsaW5lLgoKICAgIE5vcm1hbGx5LCB0aGUgbGlzdCBjb250YWlucyBhIHNpbmdsZSBzdHJpbmc7IGhvd2V2ZXIsIGZvcgogICAgU3ludGF4RXJyb3IgZXhjZXB0aW9ucywgaXQgY29udGFpbnMgc2V2ZXJhbCBsaW5lcyB0aGF0ICh3aGVuCiAgICBwcmludGVkKSBkaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHdoZXJlIHRoZSBzeW50YXgKICAgIGVycm9yIG9jY3VycmVkLgoKICAgIFRoZSBtZXNzYWdlIGluZGljYXRpbmcgd2hpY2ggZXhjZXB0aW9uIG9jY3VycmVkIGlzIGFsd2F5cyB0aGUgbGFzdAogICAgc3RyaW5nIGluIHRoZSBsaXN0LgoKICAgIHMIAAAAPHN0cmluZz5zFQAAACAgRmlsZSAiJXMiLCBsaW5lICVkCnMHAAAAICAgICVzCnMBAAAACmMBAAAAAgAAAAQAAABzAAAAcycAAAB8AABdHQB9AQB8AQBqAACDAAByGwB8AQBwHgBkAABWAXEDAGQBAFMoAgAAAHQBAAAAIE4oAQAAAHQHAAAAaXNzcGFjZSgCAAAAdAIAAAAuMHQBAAAAYygAAAAAKAAAAABzdAAAAC9ob21lL3ZhZ3JhbnQvcnBtYnVpbGQvQlVJTEQvYnVpbGQtdG9vbGNoYWluL29wdC90b29sY2hhaW5zL3N0YmdjYy00LjgtMS4wL3B5dGhvbi1ydW50aW1lL2xpYi9weXRob24yLjcvdHJhY2ViYWNrLnB5cwkAAAA8Z2VuZXhwcj7CAAAAcwIAAAAGAHMHAAAAICAgJXNeClIOAAAATigSAAAAdAoAAABpc2luc3RhbmNldA0AAABCYXNlRXhjZXB0aW9udAUAAAB0eXBlc3QMAAAASW5zdGFuY2VUeXBlUhQAAAB0BAAAAHR5cGVSEQAAAHQWAAAAX2Zvcm1hdF9maW5hbF9leGNfbGluZXQIAAAAX19uYW1lX190CgAAAGlzc3ViY2xhc3N0CwAAAFN5bnRheEVycm9ydAQAAABhcmdzdAkAAABFeGNlcHRpb25SHgAAAFIXAAAAdAYAAAByc3RyaXB0BgAAAGxzdHJpcHQEAAAAam9pbigKAAAAUjEAAABSMgAAAHQFAAAAc3R5cGVSMwAAAHQDAAAAbXNnUhkAAABSGgAAAHQGAAAAb2Zmc2V0dAcAAABiYWRsaW5ldAoAAABjYXJldHNwYWNlKAAA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