Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUJsYW5rZXQgV3JpdGUgUHJpdnMuCgpSaWNoYXJkIEVhcm5zaGF3CQkJCXJlYXJuc2hhQGFybS5jb20KUmljaGFyZCBIZW5kZXJzb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRoQHJlZGhhdC5jb20KR2VvZmZyZXkgS2VhdGluZwkJCQlnZW9mZmtAZ2VvZmZrLm9yZwpSaWNoYXJkIEtlbm5lcgkJCQkJa2VubmVyQG55dS5lZHUKSmVmZiBMYXcJCQkJCWxhd0ByZWRoYXQuY29tCkphc29uIE1lcnJpbGwJCQkJCWphc29uQHJlZGhhdC5jb20KTWljaGFlbCBNZWlzc25lcgkJCQltZWlzc25lckByZWRoYXQuY29tCkRhdmlkIFMuIE1pbGxlcgkJCQkJZGF2ZW1AcmVkaGF0LmNvbQpNYXJrIE1pdGNoZWxsCQkJCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KQmVybmQgU2NobWlkdAkJCQkJYmVybmRzQHJlZGhhdC5jb20KWmFjayBXZWluYmVyZwkJCQkJemFja0Bjb2Rlc291cmNlcnkuY29tCkppbSBXaWxzb24JCQkJCXdpbHNvbkB0dWxpcHRyZWUub3JnCgoKCQkJQ1BVIFBvcnQgTWFpbnRhaW5lcnMJKENQVSBhbHBoYWJldGljYWwgb3JkZXIpCgphbHBoYSBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQphcmMgcG9ydAkJUmljaGFyZCBLZW5uZXIJCWtlbm5lckBueXUuZWR1CmFybSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KYXJtIHBvcnQJCVJpY2hhcmQgRWFybnNoYXcJcmVhcm5zaGFAYXJtLmNvbQphdnIgcG9ydAkJRGVuaXMgQ2hlcnR5a292CQlkZW5pc2NAb3ZlcnRhLnJ1CmF2ciBwb3J0CQlNYXJlayBNaWNoYWxraWV3aWN6CW1hcmVrbUBsaW51eC5vcmcucGwKYzR4IHBvcnQJCU1pY2hhZWwgSGF5ZXMJCW0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56CmNyaXMgcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGF4aXMuY29tCmZyMzAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmg4IHBvcnQJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaDggcG9ydAkJCUthenUgSGlyYXRhCQlrYXp1QGNzLnVtYXNzLmVkdQpocHBhIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpocHBhIHBvcnQJCURhdmUgQW5nbGluCQlkYXZlLmFuZ2xpbkBucmMuY2EKaTM4NiBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQppOTYwIHBvcnQJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmlhNjQgcG9ydAkJSmltIFdpbHNvbgkJd2lsc29uQHR1bGlwdHJlZS5vcmcKaXAyayBwb3J0CQlEZW5pcyBDaGVydHlrb3YJCWRlbmlzY0BvdmVydGEucnUKbTMyciBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbTMyciBwb3J0CQlNaWNoYWVsIE1laXNzbmVyCW1laXNzbmVyQHJlZGhhdC5jb20KbTY4aGMxMSBwb3J0CQlTdGVwaGFuZSBDYXJyZXoJCXN0Y2FycmV6QG5lcmltLmZyCm02OGsgcG9ydCAoPykJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQptNjhrLW1vdG9yb2xhLXN5c3YgcG9ydAlQaGlsaXBwZSBEZSBNdXl0ZXIJcGhkbUBtYWNxZWwuYmUKbWNvcmUgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm1pcHMgcG9ydCAgICAgICAgICAgICAgIEVyaWMgQ2hyaXN0b3BoZXIgICAgICAgIGVjaHJpc3RvQHJlZGhhdC5jb20KbW1peCBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYml0cmFuZ2UuY29tCm1uMTAyMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1uMTAzMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1uMTAzMDAgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpyczYwMDAgcG9ydAkJR2VvZmYgS2VhdGluZwkJZ2VvZmZrQGdlb2Zmay5vcmcKcnM2MDAwIHBvcnQJCURhdmlkIEVkZWxzb2huCQlkamVAd2F0c29uLmlibS5jb20KcnM2MDAwIHZlY3RvciBleHRucwlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpzMzkwIHBvcnQJCUhhcnRtdXQgUGVubmVyCQlocGVubmVyQGRlLmlibS5jb20KczM5MCBwb3J0CQlVbHJpY2ggV2VpZ2FuZAkJdXdlaWdhbmRAZGUuaWJtLmNvbQpzaCBwb3J0CQkJSm9lcm4gUmVubmVja2UJCWpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20Kc2ggcG9ydAkJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJRGF2aWQgUy4gTWlsbGVyCQlkYXZlbUByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20Kdjg1MCBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20Kdjg1MCBwb3J0CQlNaWNoYWVsIE1laXNzbmVyCW1laXNzbmVyQHJlZGhhdC5jb20KdmF4IHBvcnQJCURhdmUgQW5nbGluCQlkYXZlLmFuZ2xpbkBucmMuY2EKeDg2LTY0IHBvcnQJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CnhzdG9ybXkxNiBwb3J0CQlHZW9mZnJleSBLZWF0aW5nCWdlb2Zma0BnZW9mZmsub3JnCnh0ZW5zYSBwb3J0CQlCb2IgV2lsc29uCQlib2Iud2lsc29uQGFjbS5vcmcKCgkJCU9TIFBvcnQgTWFpbnRhaW5lcnMJKE9TIGFscGhhYmV0aWNhbCBvcmRlcikKCmRhcndpbiBwb3J0CQlTdGFuIFNoZWJzCQlzaGVic0BhcHBsZS5jb20KbmV0YnNkCQkJSmFzb24gVGhvcnBlCQl0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tCnNjbzUsIHVuaXh3YXJlLCBzY28gdWRrCVJvYmVydCBMaXBlCQlyb2JlcnRsaXBlQHVzYS5uZXQKc2gtbGludXgtZ251CQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnCgoJCQlWYXJpb3VzIE1haW50YWluZXJzCgpDIGZyb250IGVuZC9JU08gQzk5CUpvc2VwaCBNeWVycwkJanNtMjhAY2FtLmFjLnVrCkMgZnJvbnQgZW5kL0lTTyBDOTkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KQWRhIGZyb250IGVuZAkJR2VlcnQgQm9zY2gJCWJvc2NoQGduYXQuY29tCkFkYSBmcm9udCBlbmQJCVJvYmVydCBEZXdhcgkJZGV3YXJAZ25hdC5jb20KZm9ydHJhbgkJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmZvcnRyYW4JCQlUb29uIE1vZW5lCQl0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sCmMrKwkJCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrICAgICAgICAgICAgICAgICAgICAgTWFyayBNaXRjaGVsbAkJbWFya0Bjb2Rlc291cmNlcnkuY29tCmNwcGxpYgkJCURhdmUgQnJvbGxleQkJYnJvbGxleUByZWRoYXQuY29tCmNwcGxpYgkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KY3BwbGliCQkJWmFjayBXZWluYmVyZwkJemFja0Bjb2Rlc291cmNlcnkuY29tCmNwcGxpYgkJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCmphdmEJCQlQZXIgQm90aG5lcgkJcGVyQGJvdGhuZXIuY29tCmphdmEJCQlBbGV4YW5kcmUgUGV0aXQtQmlhbmNvCWFwYmlhbmNvQHJlZGhhdC5jb20KamF2YQkJCUFuZHJldyBIYWxleQkJYXBoQHJlZGhhdC5jb20KbGliZ2NqCQkJVG9tIFRyb21leQkJdHJvbWV5QHJlZGhhdC5jb20KbGliZ2NqCQkJQnJ5Y2UgTWNLaW5sYXkJCWJyeWNlQGdjYy5nbnUub3JnCm1lcmN1cnkJCQlGZXJndXMgSGVuZGVyc29uCWZqaEBjcy5tdS5vei5hdQpvYmplY3RpdmUtYwkJU3RhbiBTaGVicwkJc2hlYnNAYXBwbGUuY29tCm9iamVjdGl2ZS1jCQlPdmlkaXUgUHJlZGVzY3UJCW92aWRpdUBjdXAuaHAuY29tCmFsaWFzIGFuYWx5c2lzCQlKb2huIENhcnIJCWpmY0BtaXQuZWR1Cmxvb3AgdW5yb2xsaW5nCQlKaW0gV2lsc29uCQl3aWxzb25AdHVsaXB0cmVlLm9yZwpsb29wIGRpc2NvdmVyeQkJTWljaGFlbCBIYXllcwkJbS5oYXllc0BlbGVjLmNhbnRlcmJ1cnkuYWMubnoKc2NoZWR1bGVyICgrIGhhaWZhKQlKaW0gV2lsc29uCQl3aWxzb25AdHVsaXB0cmVlLm9yZwpzY2hlZHVsZXIgKCsgaGFpZmEpCU1pY2hhZWwgTWVpc3NuZXIJbWVpc3NuZXJAcmVkaGF0LmNvbQpzY2hlZHVsZXIgKCsgaGFpZmEpCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpyZW9yZwkJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpjYWxsZXItc2F2ZS5jCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KZGVidWdnaW5nIGNvZGUJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmR3YXJmIGRlYnVnZ2luZyBjb2RlCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwY2FybGluaUB1bml0dXMuaXQKYysrIHJ1bnRpbWUgbGlicyAgICAgICAgR2FicmllbCBEb3MgUmVpcyAgICAgICAgZ2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldApjKysgcnVudGltZSBsaWJzCVVscmljaCBEcmVwcGVyCQlkcmVwcGVyQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQaGlsIEVkd2FyZHMJCXBtZUBnY2MuZ251Lm9yZwpjKysgcnVudGltZSBsaWJzCUJlbmphbWluIEtvc25pawkJYmtvekByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJTG9yZW4gSi4gUml0dGxlCQlsanJpdHRsZUBhY20ub3JnCipzeW50aGV0aWMgbXVsdGlwbHkJVG9yYmpvcm4gR3Jhbmx1bmQJdGVnZUBzd294LmNvbQoqYy10b3J0dXJlCQlUb3Jiam9ybiBHcmFubHVuZAl0ZWdlQHN3b3guY29tCmZpeGluY2x1ZGVzCQlCcnVjZSBLb3JiCQlia29yYkBnbnUub3JnCmdjc2UuYyAJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KZ2xvYmFsIG9wdCBmcmFtZXdvcmsJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmp1bXAuYwkJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQp3ZWIgcGFnZXMJCUdlcmFsZCBQZmVpZmVyCQlwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0CndlYiBwYWdlcwkJSmFuaXMgSm9obnNvbgkJamFuaXMxODdAdXMuaWJtLmNvbQpjb25maWcuc3ViL2NvbmZpZy5ndWVzcwlCZW4gRWxsaXN0b24JCWNvbmZpZy1wYXRjaGVzQGdudS5vcmcKYmFzaWMgYmxvY2sgcmVvcmRlcmluZwlKYXNvbiBFY2toYXJkdAkJamxlQHJpY2UuZWR1CmkxOG4JCQlQaGlsaXBwIFRob21hcwkJcHRob21hc0BzdXNlLmRlCmRpYWdub3N0aWMgbWVzc2FnZXMJR2FicmllbCBEb3MgUmVpcwlnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0CndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJQ2hyaXN0b3BoZXIgRmF5bG9yCWNnZkByZWRoYXQuY29tCndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQpESkdQUAkJCURKIERlbG9yaWUJCWRqQGRlbG9yaWUuY29tCmxpYmliZXJ0eQkJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQpidWlsZCBtYWNoaW5lcnkgKCouaW4pCURKIERlbG9yaWUJCWRqQHJlZGhhdC5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCmRvY3MgY28tbWFpbnRhaW5lcglHZXJhbGQgUGZlaWZlcgkJcGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdApkb2NzIGNvLW1haW50YWluZXIJSm9zZXBoIE15ZXJzCQlqc20yOEBjYW0uYWMudWsKUGljby1KYXZhIHBvcnQJCVN0ZXZlIENoYW1iZXJsYWluCXNhY0B0cmFuc21ldGEuY29tClJURU1TIFBvcnRzCQlKb2VsIFNoZXJyaWxsCQlqb2VsQG9hcmNvcnAuY29tClZ4V29ya3MJcG9ydHMJCVphY2sgV2VpbmJlcmcJCXphY2tAY29kZXNvdXJjZXJ5LmNvbQpWeFdvcmtzCXBvcnRzCQlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20KcHJlZGljdC5kZWYJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmNvbnRyaWIvcmVncmVzc2lvbglHZW9mZiBLZWF0aW5nCQlnZW9mZmtAZ2VvZmZrLm9yZwp0cmVlbGFuZyAgICAgICAgICAgICAgICBUaW0gSm9zbGluZyAgICAgICAgICAgICB0ZWpAbWVsYnBjLm9yZy5hdQpuZXcgcmVnYWxsb2MgKHJhKikJTWljaGFlbCBNYXR6CQltYXR6QHN1c2UuZGUKCk5vdGUgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBuZWVkIGFwcHJvdmFsIHRvIGNoZWNrCmluIGNoYW5nZXMgb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXR0IEF1c3Rlcm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXN0ZXJuQGFwcGxlLmNvbQpTY290dCBCYW1icm91Z2gJCQkJCXNjb3R0YkBuZXR3aW5kZXIub3JnCkRhbmllbCBCZXJsaW4JCQkJCWRhbkBkYmVybGluLm9yZwpEYXZpZCBCaWxsaW5naHVyc3QJCQkJRGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbQpMYXVyeW5hcyBCaXZlaW5pcwkJCSAgICAgICAgbGF1cnluYXMuYml2ZWluaXNAbWlmLnZ1Lmx0CkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnCkppbSBCbGFuZHkJCQkJCWppbWJAcmVkaGF0LmNvbQpQaGlsIEJsdW5kZWxsCQkJCQlwYkBmdXR1cmV0di5jb20KSGFucyBCb2VobQkJCQkJaGJvZWhtQGdjYy5nbnUub3JnCkVyaWMgQm90Y2F6b3UJCQkJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgpBbmRyZXcgQ2FnbmV5CQkJCQljYWduZXlAcmVkaGF0LmNvbQpDaGFuZHJhIENoYXZ2YQkJCQkJY2NoYXZ2YUByZWRoYXQuY29tCldpbGxpYW0gQ29oZW4JCQkJCXdjb2hlbkByZWRoYXQuY29tCkNocmlzdGlhbiBDb3JuZWxzc2VuCQkJCWNjb3JuQGNzLnR1LWJlcmxpbi5kZQpDaHJpcyBEZW1ldHJpb3UJCQkJCWNnZEBicm9hZGNvbS5jb20KU3RldmUgRWxsY2V5CQkJCQlzamVAY3VwLmhwLmNvbQpCZW4gRWxsaXN0b24JCQkJCWJqZUB3YXNhYmlzeXN0ZW1zLmNvbQpNYXJjIEVzcGllCQkJCQllc3BpZUBjdnMub3BlbmJzZC5vcmcKRG91ZyBFdmFucwkJCQkJZGplQHRyYW5zbWV0YS5jb20KS2F2ZWggR2hhemkJCQkJCWdoYXppQGNhaXAucnV0Z2Vycy5lZHUKTWF0dGhldyBHaW5nZWxsCQkJCQlnaW5nZWxsQGduYXQuY29tCkFudGhvbnkgR3JlZW4JCQkJCWdyZWVuQHJlZGhhdC5jb20KU3R1IEdyb3NzbWFuCQkJCQlncm9zc21hbkByZWRoYXQuY29tCkxhdXJlbnQgR3VlcmJ5CQkJCQlndWVyYnlAYWNtLm9yZwpBbmRyZXcgSGFsZXkJCQkJCWFwaEByZWRoYXQuY29tClN0dWFydCBIYXN0aW5ncwkJCQkJc3R1YXJ0QGFwcGxlLmNvbQpNYXR0aGV3IEhpbGxlcgkJCQkJaGlsbGVyQHJlZGhhdC5jb20KTWFuZnJlZCBIb2xsc3RlaW4JCQkJbWhvbGxzdGVpbkByZWRoYXQuY29tCkFuZHJlYXMgSmFlZ2VyCQkJCQlhakBzdXNlLmRlCkZhcmlib3J6IEphaGFuaWFuCQkJCWZqYWhhbmlhbkBhcHBsZS5jb20KRGFsZSBKb2hhbm5lc2VuIAkJCQlkYWxlakBhcHBsZS5jb20KS2xhdXMgS2FlbXBmCQkJCQlra2FlbXBmQHByb2dpcy5kZQpCcmVuZGFuIEtlaG9lCQkJCQlicmVuZGFuQHplbi5vcmcKTXVtaXQgS2hhbgkJCQkJa2hhbkB4cmF5bGl0aC53aXNjLmVkdQpNYXR0aGlhcyBLbG9zZQkJCQkJZG9rb0BkZWJpYW4ub3JnCkplZmYgS25hZ2dzCQkJCQlqa25hZ2dzQHJlZGhhdC5jb20KUGF1bCBLb25pbmcJCQkJCW5pMWRAYXJybC5uZXQKTWF0dCBLcmFhaQkJCQkJa3JhYWlAYWx1bW5pLmNtdS5lZHUKWmllbW93aXQgTGFza2kJCQkJCXpsYXNraUBhcHBsZS5jb20KTWFyYyBMZWhtYW5uCQkJCQlwY2dAZ29vZi5jb20KQWxhbiBMZWhvdHNreQkJCQkJYXBsQGFsdW0ubWl0LmVkdQpXYXJyZW4gTGV2eQkJCQkJd2FycmVubEBjcnV6aW8uY29tCktyaWFuZyBMZXJkc3V3YW5ha2lqCQkJCWxlcmRzdXdhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApEb24gTGluZHNheQkJCQkJZGxpbmRzYXlAcmVkaGF0LmNvbQpEYXZlIExvdmUJCQkJCWQubG92ZUBkbC5hYy51awpNYXJ0aW4gdi4gTPZ3aXMJCQkJCWxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZQpISiBMdQkJCQkJCWhqbEBsdWNvbi5vcmcKQW5kcmV3IE1hY2xlb2QJCQkJCWFtYWNsZW9kQHJlZGhhdC5jb20KVmxhZGltaXIgTWFrYXJvdgkJCQl2bWFrYXJvdkByZWRoYXQuY29tCkdyZWcgTWNHYXJ5CQkJCQlna21AZ251Lm9yZwpBZGFtIE1lZ2FjegkJCQkJYWRhbUB4d3Qub3JnCkFsYW4gTW9kcmEJCQkJCWFtb2RyYUBiaWdwb25kLm5ldC5hdQpDYXRoZXJpbmUgTW9vcmUJCQkJCWNsbUByZWRoYXQuY29tCkFkYW0gTmVtZXQJCQkJCWFuZW1ldEBsbnh3LmNvbQpOYXRoYW5hZWwgTmVyb2RlCQkJCW5lcm9kZW5AZ2NjLmdudS5vcmcKRGllZ28gTm92aWxsbwkJCQkJZG5vdmlsbG9AcmVkaGF0LmNvbQpEYXZpZCBPJ0JyaWVuCQkJCQlvYnJpZW5ARnJlZUJTRC5vcmcKVHVybHkgTydDb25ub3IJCQkJCXR1cmx5QGFwcGxlLmNvbQpKZWZmcmV5IEQuIE9sZGhhbQkJCQlvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbQpSYWluZXIgT3J0aAkJCQkJcm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFCkRldmFuZyBQYXRlbAkJCQkJZHBhdGVsQGFwcGxlLmNvbQpOaWNvbGEgUGVybwkJCQkJbi5wZXJvQG1pLmZsYXNobmV0Lml0CkFsZXhhbmRyZSBQZXRpdC1CaWFuY28JCQkJYXBiaWFuY29AcmVkaGF0LmNvbQpTZWJhc3RpYW4gUG9wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnBvcEBsYXBvc3RlLm5ldApDbGludG9uIFBvcGV0egkJCQkJY3BvcGV0ekBjcG9wZXR6LmNvbQpLZW4gUmFlYnVybgkJCQkJcmFlYnVybkByZWRoYXQuY29tClJvbGYgUmFzbXVzc2VuCQkJCQlyb2xmd3JAZ2NjLmdudS5vcmcKVm9sa2VyIFJlaWNoZWx0CQkJCQlyZWljaGVsdEBpZ3BtLnJ3dGgtYWFjaGVuLmRlClRvbSBSaXgJCQkJCQl0cml4QHJlZGhhdC5jb20KQ3JhaWcgUm9kcmlndWVzCQkJCQlyb2RyaWdjQGdjYy5nbnUub3JnCkdhdmluIFJvbWlnLUtvY2gJCQkJZ2F2aW5AcmVkaGF0LmNvbQpJcmEgUnViZW4JCQkJCWlyYUBhcHBsZS5jb20KRG91Z2xhcyBSdXBwCQkJCQlydXBwQGduYXQuY29tCkFsZXggU2FtdWVsCQkJCQlzYW11ZWxAY29kZXNvdXJjZXJ5LmNvbQpSaWNoYXJkIFNhbmRpZm9yZAkJCQlyc2FuZGlmb0ByZWRoYXQuY29tClJvZ2VyIFNheWxlCQkJCQlyb2dlckBleWVzb3Blbi5jb20KQW5kcmVhcyBTY2h3YWIJCQkJCXNjaHdhYkBzdXNlLmRlClN2ZWluIFNlbGRhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2ZWluLnNlbGRhbEBzb2xpZGFzLmNvbQpOYXRoYW4gU2lkd2VsbAkJCQkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20KRnJhbnogU2lybAkJCQkJZnJhbnouc2lybC1rZXJuZWxAbGF1dGVyYmFjaC5jb20KRGFubnkgU21pdGgJCQkJCWRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0Ck1pY2hhZWwgU29rb2xvdgkJCQkJbXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHClJpY2hhcmQgU3RhbGxtYW4JCQkJcm1zQGdudS5vcmcKR3JhaGFtIFN0b3R0CQkJCQlncmFoYW0uc3RvdHRAYnRpbnRlcm5ldC5jb20KTWlrZSBTdHVtcAkJCQkJbXJzQGFwcGxlLmNvbQpKZWZmIFN0dXJtCQkJCQlqc3R1cm1AZ2NjLmdudS5vcmcKSWFuIFRheWxvcgkJCQkJaWFuQHplbWJ1LmNvbQpNaWNoYWVsIFRpZW1hbm4JCQkJCXRpZW1hbm5AcmVkaGF0LmNvbQpLcmVzdGVuIEtyYWIgVGhvcnVwCQkJCWtyYWJAZ2NjLmdudS5vcmcKQW5kcmVhcyBUb2JsZXIJCQkJCWFuZHJlYXN0QGdjYy5nbnUub3JnCkpvbmF0aGFuIFdha2VseQkJCQkJcmVkaUBnY2MuZ251Lm9yZwpLcmlzdGVyIFdhbGZyaWRzc29uCQkJCWNhdG9AZGYubHRoLnNlCkpvaG4gV2VobGUJCQkJCWpvaG5AZmVpdGguY29tCkZsb3JpYW4gV2VpbWVyCQkJCQlmd0BkZW5lYi5lbnlvLmRlCk1hcmsgV2llbGFhcmQJCQkJCW1hcmtAZ2NjLmdudS5vcmcKSm9zZWYgWmxvbWVrCQkJCQl6bG9tZWtqQHN1c2UuY3oKCkdOQVRTIG9ubHkgYWNjb3VudHMKCldvbGZnYW5nIEJhbmdlcnRoCWJhbmdlcnRoCQliYW5nZXJ0aEB0aWNhbS51dGV4YXMuZWR1CkphbWVzIERlbm5ldHQJCWpkZW5uZXR0CQlqZGVubmV0dEBhY20ub3JnCkNocmlzdGlhbiBFaHJoYXJkdAljYWUJCQllaHJoYXJkdEBtYXRoZW1hdGlrLnVuaS11bG0uZGUKClBldGVyIEJpZW5zdG1hbig/KQpCZW5qYW1pbiBDaGVsZig/KQpNYXJrIEdhbGFzc2koPykK