Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUJsYW5rZXQgV3JpdGUgUHJpdnMuCgpSaWNoYXJkIEVhcm5zaGF3CQkJCXJlYXJuc2hhQGFybS5jb20KUmljaGFyZCBIZW5kZXJzb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRoQHJlZGhhdC5jb20KR2VvZmZyZXkgS2VhdGluZwkJCQlnZW9mZmtAZ2VvZmZrLm9yZwpSaWNoYXJkIEtlbm5lcgkJCQkJa2VubmVyQG55dS5lZHUKSmVmZiBMYXcJCQkJCWxhd0ByZWRoYXQuY29tCk1pY2hhZWwgTWVpc3NuZXIJCQkJZ251QHRoZS1tZWlzc25lcnMub3JnCkphc29uIE1lcnJpbGwJCQkJCWphc29uQHJlZGhhdC5jb20KRGF2aWQgUy4gTWlsbGVyCQkJCQlkYXZlbUByZWRoYXQuY29tCk1hcmsgTWl0Y2hlbGwJCQkJCW1hcmtAY29kZXNvdXJjZXJ5LmNvbQpCZXJuZCBTY2htaWR0CQkJCQliZXJuZHNAcmVkaGF0LmNvbQpaYWNrIFdlaW5iZXJnCQkJCQl6YWNrQGNvZGVzb3VyY2VyeS5jb20KSmltIFdpbHNvbgkJCQkJd2lsc29uQHNwZWNpZml4aW5jLmNvbQoKCgkJCUNQVSBQb3J0IE1haW50YWluZXJzCShDUFUgYWxwaGFiZXRpY2FsIG9yZGVyKQoKYWxwaGEgcG9ydAkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KYXJtIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQphcm0gcG9ydAkJUmljaGFyZCBFYXJuc2hhdwlyZWFybnNoYUBhcm0uY29tCmF2ciBwb3J0CQlEZW5pcyBDaGVydHlrb3YJCWRlbmlzY0BvdmVydGEucnUKYXZyIHBvcnQJCU1hcmVrIE1pY2hhbGtpZXdpY3oJbWFyZWttQGFtZWxlay5nZGEucGwKYzR4IHBvcnQJCU1pY2hhZWwgSGF5ZXMJCW0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56CmNyaXMgcG9ydAkJSGFucy1QZXRlciBOaWxzc29uCWhwQGF4aXMuY29tCmZyMzAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCmg4IHBvcnQJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KaDggcG9ydAkJCUthenUgSGlyYXRhCQlrYXp1QGNzLnVtYXNzLmVkdQpocHBhIHBvcnQJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpocHBhIHBvcnQJCURhdmUgQW5nbGluCQlkYXZlLmFuZ2xpbkBucmMuY2EKaTM4NiBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQppODYwIHBvcnQJCUphc29uIEVja2hhcmR0CQlqbGVAcmljZS5lZHUKaTk2MCBwb3J0CQlKaW0gV2lsc29uCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCmlhNjQgcG9ydAkJSmltIFdpbHNvbgkJd2lsc29uQHNwZWNpZml4aW5jLmNvbQppcDJrIHBvcnQJCURlbmlzIENoZXJ0eWtvdgkJZGVuaXNjQG92ZXJ0YS5ydQppcTIwMDAgcG9ydAkJU3RhbiBDb3gJCXNjb3hAcmVkaGF0LmNvbQptMzJyIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQptNjhoYzExIHBvcnQJCVN0ZXBoYW5lIENhcnJlegkJc3RjYXJyZXpAbmVyaW0uZnIKbTY4ayBwb3J0ICg/KQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm02OGstbW90b3JvbGEtc3lzdiBwb3J0CVBoaWxpcHBlIERlIE11eXRlcglwaGRtQG1hY3FlbC5iZQptY29yZSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbWlwcyBwb3J0ICAgICAgICAgICAgICAgRXJpYyBDaHJpc3RvcGhlciAgICAgICAgZWNocmlzdG9AcmVkaGF0LmNvbQptaXBzIHBvcnQJCVJpY2hhcmQgU2FuZGlmb3JkCXJzYW5kaWZvQHJlZGhhdC5jb20KbW1peCBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYml0cmFuZ2UuY29tCm1uMTAzMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1uMTAzMDAgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpuczMyayBwb3J0CQlJYW4gRGFsbAkJaWFuQGJld2FyZS5kcm9wYmVhci5pZC5hdQpwZHAxMSBwb3J0CQlQYXVsIEtvbmluZwkJbmkxZEBhcnJsLm5ldApyczYwMDAgcG9ydAkJR2VvZmYgS2VhdGluZwkJZ2VvZmZrQGdlb2Zmay5vcmcKcnM2MDAwIHBvcnQJCURhdmlkIEVkZWxzb2huCQlkamVAd2F0c29uLmlibS5jb20KcnM2MDAwIHZlY3RvciBleHRucwlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpzMzkwIHBvcnQJCUhhcnRtdXQgUGVubmVyCQlocGVubmVyQGRlLmlibS5jb20KczM5MCBwb3J0CQlVbHJpY2ggV2VpZ2FuZAkJdXdlaWdhbmRAZGUuaWJtLmNvbQpzaCBwb3J0CQkJSm9lcm4gUmVubmVja2UJCWpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20Kc2ggcG9ydAkJCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJRGF2aWQgUy4gTWlsbGVyCQlkYXZlbUByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20Kc3BhcmMgcG9ydAkJRXJpYyBCb3RjYXpvdQkJZWJvdGNhem91QGxpYmVydHlzdXJmLmZyCnY4NTAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnZheCBwb3J0CQlEYXZlIEFuZ2xpbgkJZGF2ZS5hbmdsaW5AbnJjLmNhCnZheCBwb3J0CQlNYXR0IFRob21hcwkJbWF0dEAzYW0tc29mdHdhcmUuY29tCng4Ni02NCBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp4c3Rvcm15MTYgcG9ydAkJR2VvZmZyZXkgS2VhdGluZwlnZW9mZmtAZ2VvZmZrLm9yZwp4dGVuc2EgcG9ydAkJQm9iIFdpbHNvbgkJYm9iLndpbHNvbkBhY20ub3JnCgoJCQlPUyBQb3J0IE1haW50YWluZXJzCShPUyBhbHBoYWJldGljYWwgb3JkZXIpCgpkYXJ3aW4gcG9ydAkJU3RhbiBTaGVicwkJc2hlYnNAYXBwbGUuY29tCmZyZWVic2QJCQlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKbmV0YnNkCQkJSmFzb24gVGhvcnBlCQl0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tCnNjbzUsIHVuaXh3YXJlLCBzY28gdWRrCUtlYW4gSm9obnN0b24JCWprakBzY28uY29tCnNoLWxpbnV4LWdudQkJS2F6IEtvamltYQkJa2tvamltYUBnY2MuZ251Lm9yZwoKCQkJVmFyaW91cyBNYWludGFpbmVycwoKQyBmcm9udCBlbmQvSVNPIEM5OQlKb3NlcGggTXllcnMJCWpzbUBwb2x5b21pbm8ub3JnLnVrCkMgZnJvbnQgZW5kL0lTTyBDOTkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KQWRhIGZyb250IGVuZAkJR2VlcnQgQm9zY2gJCWJvc2NoQGduYXQuY29tCkFkYSBmcm9udCBlbmQJCVJvYmVydCBEZXdhcgkJZGV3YXJAZ25hdC5jb20KQWRhIGZyb250IGVuZAkJQXJuYXVkIENoYXJsZXQJCWNoYXJsZXRAYWN0LWV1cm9wZS5mcgpmb3J0cmFuCQkJUmljaGFyZCBIZW5kZXJzb24JcnRoQHJlZGhhdC5jb20KZm9ydHJhbgkJCVRvb24gTW9lbmUJCXRvb25AbW9lbmUuaW5kaXYubmx1dWcubmwKZm9ydHJhbiA5NQkJUGF1bCBCcm9vawkJcGF1bEBub3d0Lm9yZwpmb3J0cmFuIDk1CQlTdGV2ZW4gQm9zc2NoZXIJCXN0ZXZlbmJAc3VzZS5kZQpmb3J0cmFuIDk1CQlUb29uIE1vZW5lCQl0b29uQG1vZW5lLmluZGl2Lm5sdXVnLm5sCmMrKwkJCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrICAgICAgICAgICAgICAgICAgICAgTWFyayBNaXRjaGVsbAkJbWFya0Bjb2Rlc291cmNlcnkuY29tCmNwcGxpYgkJCURhdmUgQnJvbGxleQkJYnJvbGxleUByZWRoYXQuY29tCmNwcGxpYgkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KY3BwbGliCQkJWmFjayBXZWluYmVyZwkJemFja0Bjb2Rlc291cmNlcnkuY29tCmNwcGxpYgkJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCmphdmEJCQlQZXIgQm90aG5lcgkJcGVyQGJvdGhuZXIuY29tCmphdmEJCQlBbmRyZXcgSGFsZXkJCWFwaEByZWRoYXQuY29tCmxpYmdjagkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCmxpYmdjagkJCUJyeWNlIE1jS2lubGF5CQlicnljZUBnY2MuZ251Lm9yZwptZXJjdXJ5CQkJRmVyZ3VzIEhlbmRlcnNvbglmamhAY3MubXUub3ouYXUKb2JqZWN0aXZlLWMJCVN0YW4gU2hlYnMJCXNoZWJzQGFwcGxlLmNvbQpvYmplY3RpdmUtYwkJT3ZpZGl1IFByZWRlc2N1CQlvdmlkaXVAY3VwLmhwLmNvbQpvYmplY3RpdmUtYwkJWmllbW93aXQgTGFza2kJCXpsYXNraUBhcHBsZS5jb20KbGlib2JqYwkJCU5pY29sYSBQZXJvCQluLnBlcm9AbWkuZmxhc2huZXQuaXQKbGlib2JqYwkJCUFuZHJldyBQaW5za2kJCXBpbnNraWFAcGh5c2ljcy51Yy5lZHUKYWxpYXMgYW5hbHlzaXMJCUpvaG4gQ2FycgkJamZjQG1pdC5lZHUKbG9vcCB1bnJvbGxpbmcJCUppbSBXaWxzb24JCXdpbHNvbkBzcGVjaWZpeGluYy5jb20KbG9vcCBkaXNjb3ZlcnkJCU1pY2hhZWwgSGF5ZXMJCW0uaGF5ZXNAZWxlYy5jYW50ZXJidXJ5LmFjLm56CnNjaGVkdWxlciAoKyBoYWlmYSkJSmltIFdpbHNvbgkJd2lsc29uQHNwZWNpZml4aW5jLmNvbQpzY2hlZHVsZXIgKCsgaGFpZmEpCU1pY2hhZWwgTWVpc3NuZXIJZ251QHRoZS1tZWlzc25lcnMub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCnJlb3JnCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmNhbGxlci1zYXZlLmMJCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpjYWxsZ3JhcGgJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmRlYnVnZ2luZyBjb2RlCQlKaW0gV2lsc29uCQl3aWxzb25Ac3BlY2lmaXhpbmMuY29tCmR3YXJmIGRlYnVnZ2luZyBjb2RlCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwY2FybGluaUBzdXNlLmRlCmMrKyBydW50aW1lIGxpYnMgICAgICAgIEdhYnJpZWwgRG9zIFJlaXMgICAgICAgIGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYysrIHJ1bnRpbWUgbGlicwlVbHJpY2ggRHJlcHBlcgkJZHJlcHBlckByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJUGhpbCBFZHdhcmRzCQlwbWVAZ2NjLmdudS5vcmcKYysrIHJ1bnRpbWUgbGlicwlCZW5qYW1pbiBLb3NuaWsJCWJrb3pAcmVkaGF0LmNvbQpjKysgcnVudGltZSBsaWJzCUxvcmVuIEouIFJpdHRsZQkJbGpyaXR0bGVAYWNtLm9yZwoqc3ludGhldGljIG11bHRpcGx5CVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KKmMtdG9ydHVyZQkJVG9yYmpvcm4gR3Jhbmx1bmQJdGVnZUBzd294LmNvbQpmaXhpbmNsdWRlcwkJQnJ1Y2UgS29yYgkJYmtvcmJAZ251Lm9yZwpnY3NlLmMgCQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmdsb2JhbCBvcHQgZnJhbWV3b3JrCUplZmYgTGF3CQlsYXdAcmVkaGF0LmNvbQpqdW1wLmMJCQlEYXZpZCBTLiBNaWxsZXIJCWRhdmVtQHJlZGhhdC5jb20Kd2ViIHBhZ2VzCQlHZXJhbGQgUGZlaWZlcgkJZ2VyYWxkQHBmZWlmZXIuY29tCndlYiBwYWdlcwkJSmFuaXMgSm9obnNvbgkJamFuaXMxODdAdXMuaWJtLmNvbQpjb25maWcuc3ViL2NvbmZpZy5ndWVzcwlCZW4gRWxsaXN0b24JCWNvbmZpZy1wYXRjaGVzQGdudS5vcmcKYmFzaWMgYmxvY2sgcmVvcmRlcmluZwlKYXNvbiBFY2toYXJkdAkJamxlQHJpY2UuZWR1CmkxOG4JCQlQaGlsaXBwIFRob21hcwkJcHRob21hc0BzdXNlLmRlCmRpYWdub3N0aWMgbWVzc2FnZXMJR2FicmllbCBEb3MgUmVpcwlnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0CndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJQ2hyaXN0b3BoZXIgRmF5bG9yCWNnZkByZWRoYXQuY29tCkRKR1BQCQkJREogRGVsb3JpZQkJZGpAZGVsb3JpZS5jb20KbGliaWJlcnR5CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmxpYmliZXJ0eQkJSWFuIExhbmNlIFRheWxvcglpYW5Ad2FzYWJpc3lzdGVtcy5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJTmF0aGFuYWVsIE5lcm9kZQluZXJvZGVuQGdjYy5nbnUub3JnCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpkb2NzIGNvLW1haW50YWluZXIJR2VyYWxkIFBmZWlmZXIJCWdlcmFsZEBwZmVpZmVyLmNvbQpkb2NzIGNvLW1haW50YWluZXIJSm9zZXBoIE15ZXJzCQlqc21AcG9seW9taW5vLm9yZy51awpQaWNvLUphdmEgcG9ydAkJU3RldmUgQ2hhbWJlcmxhaW4Jc2FjQHRyYW5zbWV0YS5jb20KUlRFTVMgUG9ydHMJCUpvZWwgU2hlcnJpbGwJCWpvZWxAb2FyY29ycC5jb20KVnhXb3Jrcwlwb3J0cwkJWmFjayBXZWluYmVyZwkJemFja0Bjb2Rlc291cmNlcnkuY29tClZ4V29ya3MJcG9ydHMJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpwcmVkaWN0LmRlZgkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKY29udHJpYi9yZWdyZXNzaW9uCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCnRyZWVsYW5nICAgICAgICAgICAgICAgIFRpbSBKb3NsaW5nICAgICAgICAgICAgIHRlakBtZWxicGMub3JnLmF1Cm5ldyByZWdhbGxvYyAocmEqKQlNaWNoYWVsIE1hdHoJCW1hdHpAc3VzZS5kZQpnY292CQkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKZ2NvdgkJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpvcHRpb24gaGFuZGxpbmcJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCmxpYmZmaSB0ZXN0c3VpdGUJQW5kcmVhcyBUb2JsZXIJCWFuZHJlYXN0QGdjYy5nbnUub3JnCm1pZGRsZS1lbmQJCVJvZ2VyIFNheWxlCQlyb2dlckBleWVzb3Blbi5jb20KCk5vdGUgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBuZWVkIGFwcHJvdmFsIHRvIGNoZWNrCmluIGNoYW5nZXMgb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoKCQkJV3JpdGUgQWZ0ZXIgQXBwcm92YWwJKGxhc3QgbmFtZSBhbHBoYWJldGljYWwgb3JkZXIpCgpNYXR0IEF1c3Rlcm4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXN0ZXJuQGFwcGxlLmNvbQpHaW92YW5uaSBCYWpvCQkJCQlnaW92YW5uaWJham9AZ2NjLmdudS5vcmcKU2NvdHQgQmFtYnJvdWdoCQkJCQlzY290dGJAbmV0d2luZGVyLm9yZwpXb2xmZ2FuZyBCYW5nZXJ0aAkJCQliYW5nZXJ0aEBkZWFsaWkub3JnCkRhbmllbCBCZXJsaW4JCQkJCWRhbkBkYmVybGluLm9yZwpEYXZpZCBCaWxsaW5naHVyc3QJCQkJRGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbQpMYXVyeW5hcyBCaXZlaW5pcwkJCSAgICAgICAgbGF1cnluYXMuYml2ZWluaXNAbWlmLnZ1Lmx0CkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnCkppbSBCbGFuZHkJCQkJCWppbWJAcmVkaGF0LmNvbQpQaGlsIEJsdW5kZWxsCQkJCQlwYkBmdXR1cmV0di5jb20KSGFucyBCb2VobQkJCQkJaGJvZWhtQGdjYy5nbnUub3JnClJvYmVydCBCb3dkaWRnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvd2RpZGdlQGFwcGxlLmNvbQpKb2VsIEJyb2JlY2tlcgkJCQkJYnJvYmVja2VyQGduYXQuY29tCktldmluIEJ1ZXR0bmVyCQkJCQlrZXZpbmJAcmVkaGF0LmNvbQpBbmRyZXcgQ2FnbmV5CQkJCQljYWduZXlAcmVkaGF0LmNvbQpDaGFuZHJhIENoYXZ2YQkJCQkJY2NoYXZ2YUByZWRoYXQuY29tCldpbGxpYW0gQ29oZW4JCQkJCXdjb2hlbkByZWRoYXQuY29tClIuIEtlbGxleSBDb29rCQkJCQlrY29va0BnY2MuZ251Lm9yZwpDaHJpc3RpYW4gQ29ybmVsc3NlbgkJCQljY29ybkBjcy50dS1iZXJsaW4uZGUKRGF2aWQgRGFuZXkJCQkJCWRkYW5leUBhdnRyZXguY29tCkNocmlzIERlbWV0cmlvdQkJCQkJY2dkQGJyb2FkY29tLmNvbQpaZGVuZWsgRHZvcmFrCQkJCQlkdm9yYWt6QHN1c2UuY3oKU3RldmUgRWxsY2V5CQkJCQlzamVAY3VwLmhwLmNvbQpCZW4gRWxsaXN0b24JCQkJCWJqZUB3YXNhYmlzeXN0ZW1zLmNvbQpNb2hhbiBFbWJhcgkJCQkJZ251c3R1ZmZAdGhpc2lzY29vbC5jb20KTWFyYyBFc3BpZQkJCQkJZXNwaWVAY3ZzLm9wZW5ic2Qub3JnCkFuc2dhciBFc3p0ZXJtYW5uCQkJCWFuc2dhckB0aHBoeS51bmktZHVlc3NlbGRvcmYuZGUKRG91ZyBFdmFucwkJCQkJZGplQHRyYW5zbWV0YS5jb20KS2F2ZWggR2hhemkJCQkJCWdoYXppQGNhaXAucnV0Z2Vycy5lZHUKTWF0dGhldyBHaW5nZWxsCQkJCQlnaW5nZWxsQGduYXQuY29tCkFudGhvbnkgR3JlZW4JCQkJCWdyZWVuQHJlZGhhdC5jb20KTGF1cmVudCBHdWVyYnkJCQkJCWd1ZXJieUBhY20ub3JnCk9saXZpZXIgSGFpbnF1ZQkJCQkJaGFpbnF1ZUBhY3QtZXVyb3BlLmZyClN0dWFydCBIYXN0aW5ncwkJCQkJc3R1YXJ0QGFwcGxlLmNvbQpNYXR0aGV3IEhpbGxlcgkJCQkJaGlsbGVyQHJlZGhhdC5jb20KTWFuZnJlZCBIb2xsc3RlaW4JCQkJbWhAc3VzZS5jb20KRmFsayBIdWVmZm5lcgkJCQkJZmFsa0BkZWJpYW4ub3JnCkJlcm5hcmRvIElubm9jZW50aQkJCQliZXJuaWVAZGV2ZWxlci5jb20KRGFuaWVsIEphY29ib3dpdHoJCQkJZGFuQGRlYmlhbi5vcmcKQW5kcmVhcyBKYWVnZXIJCQkJCWFqQHN1c2UuZGUKRmFyaWJvcnogSmFoYW5pYW4JCQkJZmphaGFuaWFuQGFwcGxlLmNvbQpEYWxlIEpvaGFubmVzZW4gCQkJCWRhbGVqQGFwcGxlLmNvbQpLbGF1cyBLYWVtcGYJCQkJCWtrYWVtcGZAcHJvZ2lzLmRlCkJyZW5kYW4gS2Vob2UJCQkJCWJyZW5kYW5AemVuLm9yZwpNdW1pdCBLaGFuCQkJCQlraGFuQHhyYXlsaXRoLndpc2MuZWR1Ck1hdHRoaWFzIEtsb3NlCQkJCQlkb2tvQGRlYmlhbi5vcmcKSmVmZiBLbmFnZ3MJCQkJCWprbmFnZ3NAcmVkaGF0LmNvbQpNYXR0IEtyYWFpCQkJCQlrcmFhaUBhbHVtbmkuY211LmVkdQpNYXJjIExlaG1hbm4JCQkJCXBjZ0Bnb29mLmNvbQpBbGFuIExlaG90c2t5CQkJCQlhcGxAYWx1bS5taXQuZWR1CkphbWVzIExlbWtlCQkJCQlqaW1Ad2FzYWJpc3lzdGVtcy5jb20KS3JpYW5nIExlcmRzdXdhbmFraWoJCQkJbGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0CldhcnJlbiBMZXZ5CQkJCQl3YXJyZW5sQGNydXppby5jb20KRG9uIExpbmRzYXkJCQkJCWRsaW5kc2F5QHJlZGhhdC5jb20KUmFscGggTG9hZGVyCQkJCQlyY2xAaWh1Zy5jby5uegpEYXZlIExvdmUJCQkJCWQubG92ZUBkbC5hYy51awpNYXJ0aW4gdi4gTPZ3aXMJCQkJCWxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZQpISiBMdQkJCQkJCWhqbEBsdWNvbi5vcmcKQW5kcmV3IE1hY2xlb2QJCQkJCWFtYWNsZW9kQHJlZGhhdC5jb20KVmxhZGltaXIgTWFrYXJvdgkJCQl2bWFrYXJvdkByZWRoYXQuY29tCkdyZWcgTWNHYXJ5CQkJCQlna21AZ251Lm9yZwpBZGFtIE1lZ2FjegkJCQkJYWRhbUB4d3Qub3JnCkFsYW4gTW9kcmEJCQkJCWFtb2RyYUBiaWdwb25kLm5ldC5hdQpDYXRoZXJpbmUgTW9vcmUJCQkJCWNsbUByZWRoYXQuY29tCkRvcml0IE5haXNobG9zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvcml0QGlsLmlibS5jb20KQWRhbSBOZW1ldAkJCQkJYW5lbWV0QGxueHcuY29tCkRhbiBOaWNvbGFlc2N1CQkJCQlkYW5uQGljcy51Y2kuZWR1CkRpZWdvIE5vdmlsbG8JCQkJCWRub3ZpbGxvQHJlZGhhdC5jb20KRGF2aWQgTydCcmllbgkJCQkJb2JyaWVuQEZyZWVCU0Qub3JnClR1cmx5IE8nQ29ubm9yCQkJCQl0dXJseUBhcHBsZS5jb20KSmVmZnJleSBELiBPbGRoYW0JCQkJb2xkaGFtQGNvZGVzb3VyY2VyeS5jb20KUmFpbmVyIE9ydGgJCQkJCXJvQFRlY2hGYWsuVW5pLUJpZWxlZmVsZC5ERQpEZXZhbmcgUGF0ZWwJCQkJCWRwYXRlbEBhcHBsZS5jb20KR3JhZW1lIFBldGVyc29uCQkJCQlncEBxbnguY29tCkFsZXhhbmRyZSBQZXRpdC1CaWFuY28JCQkJYXBiaWFuY29AcmVkaGF0LmNvbQpOaWNvbGFzIFBpdHJlCQkJCQluaWNvQGNhbS5vcmcKU2ViYXN0aWFuIFBvcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5wb3BAbGFwb3N0ZS5uZXQKQ2xpbnRvbiBQb3BldHoJCQkJCWNwb3BldHpAY3BvcGV0ei5jb20KSmVycnkgUXVpbm4JCQkJCWpscXVpbm5Ab3B0b25saW5lLm5ldApSb2xmIFJhc211c3NlbgkJCQkJcm9sZndyQGdjYy5nbnUub3JnClZvbGtlciBSZWljaGVsdAkJCQkJcmVpY2hlbHRAaWdwbS5yd3RoLWFhY2hlbi5kZQpUb20gUml4CQkJCQkJdHJpeEByZWRoYXQuY29tCkNyYWlnIFJvZHJpZ3VlcwkJCQkJcm9kcmlnY0BnY2MuZ251Lm9yZwpHYXZpbiBSb21pZy1Lb2NoCQkJCWdhdmluQHJlZGhhdC5jb20KSXJhIFJ1YmVuCQkJCQlpcmFAYXBwbGUuY29tCkRvdWdsYXMgUnVwcAkJCQkJcnVwcEBnbmF0LmNvbQpBbGV4IFNhbXVlbAkJCQkJc2FtdWVsQGNvZGVzb3VyY2VyeS5jb20KQW5kcmVhcyBTY2h3YWIJCQkJCXNjaHdhYkBzdXNlLmRlClN2ZWluIFNlbGRhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN2ZWluLnNlbGRhbEBzb2xpZGFzLmNvbQpGcmFueiBTaXJsCQkJCQlmcmFuei5zaXJsLWtlcm5lbEBsYXV0ZXJiYWNoLmNvbQpEYW5ueSBTbWl0aAkJCQkJZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKTWljaGFlbCBTb2tvbG92CQkJCQltc29rb2xvdkBpdmFuLkhhcmhhbi5PUkcKUmljaGFyZCBTdGFsbG1hbgkJCQlybXNAZ251Lm9yZwpHcmFoYW0gU3RvdHQJCQkJCWdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbQpNaWtlIFN0dW1wCQkJCQltcnNAYXBwbGUuY29tCkplZmYgU3R1cm0JCQkJCWpzdHVybUBnY2MuZ251Lm9yZwpLcmVzdGVuIEtyYWIgVGhvcnVwCQkJCWtyYWJAZ2NjLmdudS5vcmcKTWljaGFlbCBUaWVtYW5uCQkJCQl0aWVtYW5uQHJlZGhhdC5jb20KSm9uYXRoYW4gV2FrZWx5CQkJCQlyZWRpQGdjYy5nbnUub3JnCktyaXN0ZXIgV2FsZnJpZHNzb24JCQkJY2F0b0BkZi5sdGguc2UKSm9obiBXZWhsZQkJCQkJam9obkBmZWl0aC5jb20KRmxvcmlhbiBXZWltZXIJCQkJCWZ3QGRlbmViLmVueW8uZGUKTWFyayBXaWVsYWFyZAkJCQkJbWFya0BnY2MuZ251Lm9yZwpDYXJsbyBXb29kCQkJCQljYXJsb0BhbGlub2UuY29tCkpvc2VmIFpsb21lawkJCQkJam9zZWYuemxvbWVrQGVtYWlsLmN6CgpCdWcgZGF0YWJhc2Ugb25seSBhY2NvdW50cwoKSmFtZXMgRGVubmV0dAkJCQkJamRlbm5ldHRAYWNtLm9yZwpDaHJpc3RpYW4gRWhyaGFyZHQJCQkJZWhyaGFyZHRAbWF0aGVtYXRpay51bmktdWxtLmRlCkRhcmEgSGF6ZWdoaQkJCQkJZGhhemVnaGlAeWFob28uY29tCg==