Tm90ZQo9PT09CgpUaGlzIGZpbGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgcGVvcGxlIHdobyBhcmUgcGVybWl0dGVkIHRvIG1ha2UKY2hhbmdlcyB0byB2YXJpb3VzIHBhcnRzIG9mIHRoZSBjb21waWxlciBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMuCgpQbGVhc2UgZG8gbm90IGNvbnRhY3QgdGhlIHBlb3BsZSBpbiB0aGlzIGZpbGUgZGlyZWN0bHkgdG8gcmVwb3J0CnByb2JsZW1zIGluIEdDQy4KCkZvciBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IEdDQywgcGxlYXNlIHZpc2l0OgoKICBodHRwOi8vZ2NjLmdudS5vcmcKClRvIHJlcG9ydCBwcm9ibGVtcyBpbiBHQ0MsIHBsZWFzZSB2aXNpdDoKCiAgaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbAoKTWFpbnRhaW5lcnMKPT09PT09PT09PT0KCgkJCUdsb2JhbCBSZXZpZXdlcnMKClJpY2hhcmQgRWFybnNoYXcJCQkJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tClJpY2hhcmQgSGVuZGVyc29uCQkJCXJ0aEByZWRoYXQuY29tCkdlb2ZmcmV5IEtlYXRpbmcJCQkJZ2VvZmZrQGdlb2Zmay5vcmcKUmljaGFyZCBLZW5uZXIJCQkJCWtlbm5lckBueXUuZWR1CkplZmYgTGF3CQkJCQlsYXdAcmVkaGF0LmNvbQpNaWNoYWVsIE1laXNzbmVyCQkJCWdudUB0aGUtbWVpc3NuZXJzLm9yZwpKYXNvbiBNZXJyaWxsCQkJCQlqYXNvbkByZWRoYXQuY29tCkRhdmlkIFMuIE1pbGxlcgkJCQkJZGF2ZW1AcmVkaGF0LmNvbQpNYXJrIE1pdGNoZWxsCQkJCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KRGllZ28gTm92aWxsbwkJCQkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpCZXJuZCBTY2htaWR0CQkJCQliZXJuZHNAY29kZXNvdXJjZXJ5LmNvbQpJYW4gTGFuY2UgVGF5bG9yCQkJCWlhbkBhaXJzLmNvbQpKaW0gV2lsc29uCQkJCQl3aWxzb25AdHVsaXB0cmVlLm9yZwoKTm90ZSB0aGF0IHdoaWxlIGdsb2JhbCByZXZpZXdlcnMgY2FuIGFwcHJvdmUgY2hhbmdlcyB0byBhbnkgcGFydCBvZgp0aGUgY29tcGlsZXIgb3IgYXNzb2NpYXRlZCBsaWJyYXJpZXMsIHRoZXkgc3RpbGwgbmVlZCBhcHByb3ZhbCBmb3IKdGhlaXIgb3duIHBhdGNoZXMgZnJvbSBvdGhlciBtYWludGFpbmVycyBvciByZXZpZXdlcnMuCgoJCQlDUFUgUG9ydCBNYWludGFpbmVycwkoQ1BVIGFscGhhYmV0aWNhbCBvcmRlcikKCmFscGhhIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmFybSBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KYXJtIHBvcnQJCVJpY2hhcmQgRWFybnNoYXcJcmljaGFyZC5lYXJuc2hhd0Bhcm0uY29tCmFybSBwb3J0CQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYXJtIHBvcnQJCVJhbWFuYSBSYWRoYWtyaXNobmFuCXJhbWFuYS5yYWRoYWtyaXNobmFuQGFybS5jb20KYXZyIHBvcnQJCURlbmlzIENoZXJ0eWtvdgkJY2hlcnR5a292QGdtYWlsLmNvbQphdnIgcG9ydAkJQW5hdG9seSBTb2tvbG92CQlhZXNva0Bwb3N0LnJ1CmF2ciBwb3J0CQlFcmljIFdlZGRpbmd0b24JCWVyaWMud2VkZGluZ3RvbkBhdG1lbC5jb20KYmZpbiBwb3J0CQlCZXJuZCBTY2htaWR0CQliZXJuZHNAY29kZXNvdXJjZXJ5LmNvbQpiZmluIHBvcnQJCUppZSBaaGFuZwkJamllQGNvZGVzb3VyY2VyeS5jb20KY3JpcyBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYXhpcy5jb20KY3J4IHBvcnQJCVBvbXBhcGF0aGkgViBHYWRhZCAJUG9tcGFwYXRoaS5WLkdhZGFkQG5zYy5jb20KZnIzMCBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KZnJ2IHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQpmcnYgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQpoOCBwb3J0CQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmg4IHBvcnQJCQlLYXp1IEhpcmF0YQkJa2F6dUBjb2Rlc291cmNlcnkuY29tCmhwcGEgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmhwcGEgcG9ydAkJSm9obiBEYXZpZCBBbmdsaW4JZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2EKaTM4NiBwb3J0CQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQppMzg2IHBvcnQJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmkzODYgcG9ydAkJVXJvcyBCaXpqYWsJCXViaXpqYWtAZ21haWwuY29tCmlhNjQgcG9ydAkJSmltIFdpbHNvbgkJd2lsc29uQHR1bGlwdHJlZS5vcmcKaWE2NCBwb3J0CQlTdGV2ZSBFbGxjZXkJCXNqZUBjdXAuaHAuY29tCmlxMjAwMCBwb3J0CQlOaWNrIENsaWZ0b24JCW5pY2tjQHJlZGhhdC5jb20KbG0zMiBwb3J0CQlTZWJhc3RpZW4gQm91cmRlYXVkdWNxCXNlYmFzdGllbkBtaWxreW1pc3Qub3JnCm0zMmMgcG9ydAkJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQptMzJyIHBvcnQJCU5pY2sgQ2xpZnRvbgkJbmlja2NAcmVkaGF0LmNvbQptNjhoYzExIHBvcnQJCVN0ZXBoYW5lIENhcnJlegkJc3RjYXJyZXpAbmVyaW0uZnIKbTY4ayBwb3J0ICg/KQkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm02OGsgcG9ydAkJQW5kcmVhcyBTY2h3YWIJCXNjaHdhYkBsaW51eC1tNjhrLm9yZwptNjhrLW1vdG9yb2xhLXN5c3YgcG9ydAlQaGlsaXBwZSBEZSBNdXl0ZXIJcGhkbUBtYWNxZWwuYmUKbWNvcmUgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCm1lcCBwb3J0CQlESiBEZWxvcmllCQlkakByZWRoYXQuY29tCm1pY3JvYmxhemUJCU1pY2hhZWwgRWFnZXIJCWVhZ2VyQGVhZ2VyY29uLmNvbQptaXBzIHBvcnQJCUVyaWMgQ2hyaXN0b3BoZXIJZWNocmlzdG9AYXBwbGUuY29tCm1pcHMgcG9ydAkJUmljaGFyZCBTYW5kaWZvcmQJcmRzYW5kaWZvcmRAZ29vZ2xlbWFpbC5jb20KbW1peCBwb3J0CQlIYW5zLVBldGVyIE5pbHNzb24JaHBAYml0cmFuZ2UuY29tCm1uMTAzMDAgcG9ydAkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCm1uMTAzMDAgcG9ydAkJQWxleGFuZHJlIE9saXZhCQlhb2xpdmFAcmVkaGF0LmNvbQptb3hpZSBwb3J0CQlBbnRob255IEdyZWVuCQlncmVlbkBtb3hpZWxvZ2ljLmNvbQpwZHAxMSBwb3J0CQlQYXVsIEtvbmluZwkJbmkxZEBhcnJsLm5ldApwaWNvY2hpcCBwb3J0CQlIYXJpaGFyYW4gU2FuZGFuYWdvYmFsYW5lCWhhcmloYXJhbkBwaWNvY2hpcC5jb20KcGljb2NoaXAgcG9ydAkJRGFuaWVsIFRvd25lcgkJZGFudEBwaWNvY2hpcC5jb20KcnM2MDAwIHBvcnQJCUdlb2ZmIEtlYXRpbmcJCWdlb2Zma0BnZW9mZmsub3JnCnJzNjAwMCBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplLmdjY0BnbWFpbC5jb20KcnM2MDAwIHZlY3RvciBleHRucwlBbGR5IEhlcm5hbmRlegkJYWxkeWhAcmVkaGF0LmNvbQpyeCBwb3J0CSAgICAgIAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnMzOTAgcG9ydAkJSGFydG11dCBQZW5uZXIJCWhwZW5uZXJAZGUuaWJtLmNvbQpzMzkwIHBvcnQJCVVscmljaCBXZWlnYW5kCQl1d2VpZ2FuZEBkZS5pYm0uY29tCnMzOTAgcG9ydAkJQW5kcmVhcyBLcmViYmVsCQlBbmRyZWFzLktyZWJiZWxAZGUuaWJtLmNvbQpzY29yZSBwb3J0CQlDaGVuIExpcWluCQlsaXFpbi5nY2NAZ21haWwuY29tCnNoIHBvcnQJCQlBbGV4YW5kcmUgT2xpdmEJCWFvbGl2YUByZWRoYXQuY29tCnNoIHBvcnQJCQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnCnNwYXJjIHBvcnQJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCnNwYXJjIHBvcnQJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQpzcGFyYyBwb3J0CQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCnNwYXJjIHBvcnQJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgpzcHUgcG9ydAkJVHJldm9yIFNtaWdpZWwJCXRyZXZvcl9zbWlnaWVsQHBsYXlzdGF0aW9uLnNvbnkuY29tCnNwdSBwb3J0CQlEYXZpZCBFZGVsc29obgkJZGplLmdjY0BnbWFpbC5jb20Kc3B1IHBvcnQJCVVscmljaCBXZWlnYW5kCQl1d2VpZ2FuZEBkZS5pYm0uY29tCnY4NTAgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnZheCBwb3J0CQlNYXR0IFRob21hcwkJbWF0dEAzYW0tc29mdHdhcmUuY29tCng4Ni02NCBwb3J0CQlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp4c3Rvcm15MTYgcG9ydAkJTmljayBDbGlmdG9uCQluaWNrY0ByZWRoYXQuY29tCnh0ZW5zYSBwb3J0CQlTdGVybGluZyBBdWd1c3RpbmUJc3RlcmxpbmdAdGVuc2lsaWNhLmNvbQoKCQkJT1MgUG9ydCBNYWludGFpbmVycwkoT1MgYWxwaGFiZXRpY2FsIG9yZGVyKQoKZGFyd2luIHBvcnQJCURhbGUgSm9oYW5uZXNlbgkJZGFsZWpAYXBwbGUuY29tCmRhcndpbiBwb3J0CQlNaWtlIFN0dW1wCQltaWtlc3R1bXBAY29tY2FzdC5uZXQKZGFyd2luIHBvcnQJCUVyaWMgQ2hyaXN0b3BoZXIJZWNocmlzdG9AYXBwbGUuY29tCmRhcndpbiBwb3J0CQlTdGFuIFNoZWJzCQlzdGFuc2hlYnNAZWFydGhsaW5rLm5ldApESkdQUAkJCURKIERlbG9yaWUJCWRqQGRlbG9yaWUuY29tCmZyZWVic2QJCQlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKR05VL0h1cmQJCVRob21hcyBTY2h3aW5nZQkJdGhvbWFzQHNjaHdpbmdlLm5hbWUKaHB1eAkJCUpvaG4gRGF2aWQgQW5nbGluCWRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhCmhwdXgJCQlTdGV2ZSBFbGxjZXkJCXNqZUBjdXAuaHAuY29tCmlyaXgsIG9zZiwgc29sYXJpcwlSYWluZXIgT3J0aAkJcm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFCm5ldGJzZAkJCUphc29uIFRob3JwZQkJdGhvcnBlakBuZXRic2Qub3JnCm5ldGJzZAkJCUtyaXN0ZXIgV2FsZnJpZHNzb24Ja3Jpc3Rlci53YWxmcmlkc3NvbkBnbWFpbC5jb20Kc2gtbGludXgtZ251CQlLYXogS29qaW1hCQlra29qaW1hQGdjYy5nbnUub3JnClJURU1TIFBvcnRzCQlKb2VsIFNoZXJyaWxsCQlqb2VsQG9hcmNvcnAuY29tClJURU1TIFBvcnRzCQlSYWxmIENvcnNlcGl1cwkJcmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnClZNUwkJCURvdWdsYXMgUnVwcAkJcnVwcEBnbmF0LmNvbQpWTVMJCQlUcmlzdGFuIEdpbmdvbGQJCWdpbmdvbGRAYWRhY29yZS5jb20KVnhXb3JrcyBwb3J0cwkJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCndpbmRvd3MsIGN5Z3dpbiwgbWluZ3cJQ2hyaXN0b3BoZXIgRmF5bG9yCWNnZkBnY2MuZ251Lm9yZwp3aW5kb3dzLCBjeWd3aW4sIG1pbmd3CUthaSBUaWV0egkJa3RpZXR6QHJlZGhhdC5jb20Kd2luZG93cywgY3lnd2luLCBtaW5ndwlEYXZlIEtvcm4JCWRhdmUua29ybi5jeWd3aW5AZ21haWwuY29tCgoJCQlMYW5ndWFnZSBGcm9udCBFbmRzIE1haW50YWluZXJzCgpDIGZyb250IGVuZC9JU08gQzk5CUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KQyBmcm9udCBlbmQvSVNPIEM5OQlSaWNoYXJkIEhlbmRlcnNvbglydGhAcmVkaGF0LmNvbQpBZGEgZnJvbnQgZW5kCQlHZWVydCBCb3NjaAkJYm9zY2hAZ25hdC5jb20KQWRhIGZyb250IGVuZAkJUm9iZXJ0IERld2FyCQlkZXdhckBnbmF0LmNvbQpBZGEgZnJvbnQgZW5kCQlBcm5hdWQgQ2hhcmxldAkJY2hhcmxldEBhY3QtZXVyb3BlLmZyCkZvcnRyYW4JCQlQYXVsIEJyb29rCQlwYXVsQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJSmFzb24gTWVycmlsbAkJamFzb25AcmVkaGF0LmNvbQpjKysJCQlNYXJrIE1pdGNoZWxsCQltYXJrQGNvZGVzb3VyY2VyeS5jb20KYysrCQkJTmF0aGFuIFNpZHdlbGwJCW5hdGhhbkBjb2Rlc291cmNlcnkuY29tCmdvCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KamF2YQkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KamF2YQkJCUFuZHJldyBIYWxleQkJYXBoQHJlZGhhdC5jb20KamF2YQkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCm9iamVjdGl2ZS1jL2MrKwkJTWlrZSBTdHVtcAkJbWlrZXN0dW1wQGNvbWNhc3QubmV0Cm9iamVjdGl2ZS1jL2MrKwkJU3RhbiBTaGVicwkJc3RhbnNoZWJzQGVhcnRobGluay5uZXQKCgkJCVZhcmlvdXMgTWFpbnRhaW5lcnMKCmxpYmNwcAkJCVBlciBCb3RobmVyCQlwZXJAYm90aG5lci5jb20KbGliY3BwCQkJQWxsIEMgYW5kIEMrKyBmcm9udCBlbmQgbWFpbnRhaW5lcnMKZnAtYml0CQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZGVjbnVtYmVyCQlCZW4gRWxsaXN0b24JCWJqZUBnbnUub3JnCmxpYmdjYwkJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCmxpYmdjagkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCmxpYmdjagkJCUJyeWNlIE1jS2lubGF5CQltY2tpbmxheUByZWRoYXQuY29tCmxpYmdvCQkJSWFuIExhbmNlIFRheWxvcglpYW5AYWlycy5jb20KbGliZ29tcAkJCVJpY2hhcmQgSGVuZGVyc29uCXJ0aEByZWRoYXQuY29tCmxpYmdvbXAJCQlKYWt1YiBKZWxpbmVrCQlqYWt1YkByZWRoYXQuY29tCmxpYmliZXJ0eQkJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQpsaWJpYmVydHkJCUlhbiBMYW5jZSBUYXlsb3IJaWFuQGFpcnMuY29tCmxpYmZmaSB0ZXN0c3VpdGUJQW5kcmVhcyBUb2JsZXIJCWFuZHJlYXN0QGdjYy5nbnUub3JnCmxpYm9iamMJCQlOaWNvbGEgUGVybwkJbmljb2xhLnBlcm9AbWV0YS1pbm5vdmF0aW9uLmNvbQpsaWJvYmpjCQkJQW5kcmV3IFBpbnNraQkJcGluc2tpYUBnbWFpbC5jb20KbGlicXVhZG1hdGgJCVRvYmlhcyBCdXJudXMJCWJ1cm51c0BuZXQtYi5kZQpsaWJxdWFkbWF0aAkJSmFrdWIgSmVsaW5lawkJamFrdWJAcmVkaGF0LmNvbQpsb29wIGRpc2NvdmVyeQkJTWljaGFlbCBIYXllcwkJbS5oYXllc0BlbGVjLmNhbnRlcmJ1cnkuYWMubnoKc29mdC1mcAkJCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20Kc2NoZWR1bGVyICgrIGhhaWZhKQlKaW0gV2lsc29uCQl3aWxzb25AdHVsaXB0cmVlLm9yZwpzY2hlZHVsZXIgKCsgaGFpZmEpCU1pY2hhZWwgTWVpc3NuZXIJZ251QHRoZS1tZWlzc25lcnMub3JnCnNjaGVkdWxlciAoKyBoYWlmYSkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCnNjaGVkdWxlciAoKyBoYWlmYSkJVmxhZGltaXIgTWFrYXJvdgl2bWFrYXJvdkByZWRoYXQuY29tCm1vZHVsby1zY2hlZHVsZXIJQXlhbCBaYWtzCQl6YWtzQGlsLmlibS5jb20KcmVvcmcJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KY2FsbGVyLXNhdmUuYwkJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmNhbGxncmFwaAkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKZGVidWdnaW5nIGNvZGUJCUppbSBXaWxzb24JCXdpbHNvbkB0dWxpcHRyZWUub3JnCmR3YXJmIGRlYnVnZ2luZyBjb2RlCUphc29uIE1lcnJpbGwJCWphc29uQHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlQYW9sbyBDYXJsaW5pCQlwYW9sby5jYXJsaW5pQG9yYWNsZS5jb20KYysrIHJ1bnRpbWUgbGlicwlHYWJyaWVsIERvcyBSZWlzCWdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQKYysrIHJ1bnRpbWUgbGlicwlVbHJpY2ggRHJlcHBlcgkJZHJlcHBlckByZWRoYXQuY29tCmMrKyBydW50aW1lIGxpYnMJQmVuamFtaW4gS29zbmlrCQlia296QHJlZGhhdC5jb20KYysrIHJ1bnRpbWUgbGlicwlMb3JlbiBKLiBSaXR0bGUJCWxqcml0dGxlQGFjbS5vcmcKYysrIHJ1bnRpbWUgbGlicwlKb25hdGhhbiBXYWtlbHkJCXJlZGlAZ2NjLmdudS5vcmcKKnN5bnRoZXRpYyBtdWx0aXBseQlUb3Jiam9ybiBHcmFubHVuZAl0ZWdlQHN3b3guY29tCipjLXRvcnR1cmUJCVRvcmJqb3JuIEdyYW5sdW5kCXRlZ2VAc3dveC5jb20KZml4aW5jbHVkZXMJCUJydWNlIEtvcmIJCWJrb3JiQGdudS5vcmcKKmdpbXBsKgkJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20KKmdpbXBsKgkJCUFsZHkgSGVybmFuZGV6CQlhbGR5aEByZWRoYXQuY29tCipnaW1wbCoJCQlKYXNvbiBNZXJyaWxsCQlqYXNvbkByZWRoYXQuY29tCmdjc2UuYyAJCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KZ2xvYmFsIG9wdCBmcmFtZXdvcmsJSmVmZiBMYXcJCWxhd0ByZWRoYXQuY29tCmp1bXAuYwkJCURhdmlkIFMuIE1pbGxlcgkJZGF2ZW1AcmVkaGF0LmNvbQp3ZWIgcGFnZXMJCUdlcmFsZCBQZmVpZmVyCQlnZXJhbGRAcGZlaWZlci5jb20KY29uZmlnLnN1Yi9jb25maWcuZ3Vlc3MJQmVuIEVsbGlzdG9uCQljb25maWctcGF0Y2hlc0BnbnUub3JnCmJhc2ljIGJsb2NrIHJlb3JkZXJpbmcJSmFzb24gRWNraGFyZHQJCWpsZUByaWNlLmVkdQppMThuCQkJUGhpbGlwcCBUaG9tYXMJCXB0aEBzdXNlLmRlCmkxOG4JCQlKb3NlcGggTXllcnMJCWpvc2VwaEBjb2Rlc291cmNlcnkuY29tCmRpYWdub3N0aWMgbWVzc2FnZXMJR2FicmllbCBEb3MgUmVpcwlnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0CmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJUGFvbG8gQm9uemluaQkJYm9uemluaUBnbnUub3JnCmJ1aWxkIG1hY2hpbmVyeSAoKi5pbikJREogRGVsb3JpZQkJZGpAcmVkaGF0LmNvbQpidWlsZCBtYWNoaW5lcnkgKCouaW4pCU5hdGhhbmFlbCBOZXJvZGUJbmVyb2RlbkBnY2MuZ251Lm9yZwpidWlsZCBtYWNoaW5lcnkgKCouaW4pCUFsZXhhbmRyZSBPbGl2YQkJYW9saXZhQHJlZGhhdC5jb20KYnVpbGQgbWFjaGluZXJ5ICgqLmluKQlSYWxmIFdpbGRlbmh1ZXMJCVJhbGYuV2lsZGVuaHVlc0BnbXguZGUKZG9jcyBjby1tYWludGFpbmVyCUdlcmFsZCBQZmVpZmVyCQlnZXJhbGRAcGZlaWZlci5jb20KZG9jcyBjby1tYWludGFpbmVyCUpvc2VwaCBNeWVycwkJam9zZXBoQGNvZGVzb3VyY2VyeS5jb20KcHJlZGljdC5kZWYJCUphbiBIdWJpY2thCQlqaEBzdXNlLmN6CmNvbnRyaWIvcmVncmVzc2lvbglHZW9mZiBLZWF0aW5nCQlnZW9mZmtAZ2VvZmZrLm9yZwpnY292CQkJSmFuIEh1Ymlja2EJCWpoQHN1c2UuY3oKZ2NvdgkJCU5hdGhhbiBTaWR3ZWxsCQluYXRoYW5AY29kZXNvdXJjZXJ5LmNvbQpvcHRpb24gaGFuZGxpbmcJCU5laWwgQm9vdGgJCW5laWxAZGFpa29rdXlhLmNvLnVrCm9wdGlvbiBoYW5kbGluZwkJSm9zZXBoIE15ZXJzCQlqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbQptaWRkbGUtZW5kCQlKZWZmIExhdwkJbGF3QHJlZGhhdC5jb20KbWlkZGxlLWVuZAkJUm9nZXIgU2F5bGUJCXJvZ2VyQGV5ZXNvcGVuLmNvbQptaWRkbGUtZW5kCQlJYW4gTGFuY2UgVGF5bG9yCWlhbkBhaXJzLmNvbQptaWRkbGUtZW5kCQlEaWVnbyBOb3ZpbGxvCQlkbm92aWxsb0Bnb29nbGUuY29tCm1pZGRsZS1lbmQJCVJpY2hhcmQgR3VlbnRoZXIJcmd1ZW50aGVyQHN1c2UuZGUKdHJlZS1zc2EJCURpZWdvIE5vdmlsbG8JCWRub3ZpbGxvQGdvb2dsZS5jb20KdHJlZS1zc2EJCUFuZHJldyBNYWNMZW9kCQlhbWFjbGVvZEByZWRoYXQuY29tClBSRQkJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKY29kZSBzaW5raW5nCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCm11ZGZsYXAJCQlGcmFuayBDaC4gRWlnbGVyCWZjaGVAcmVkaGF0LmNvbQp0cmVlIGJyb3dzZXIvdW5wYXJzZXIJU2ViYXN0aWFuIFBvcAkJc2ViYXN0aWFuLnBvcEBhbWQuY29tCnNjZXYsIGRhdGEgZGVwZW5kZW5jZQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCnNjZXYsIGRhdGEgZGVwZW5kZW5jZQlTZWJhc3RpYW4gUG9wCQlzZWJhc3RpYW4ucG9wQGFtZC5jb20KcHJvZmlsZSBmZWVkYmFjawlKYW4gSHViaWNrYQkJamhAc3VzZS5jegp0eXBlLXNhZmUgdmVjdG9ycwlOYXRoYW4gU2lkd2VsbAkJbmF0aGFuQGNvZGVzb3VyY2VyeS5jb20KYWxpYXMgYW5hbHlzaXMJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKcmVsb2FkCQkJVWxyaWNoIFdlaWdhbmQJCXV3ZWlnYW5kQGRlLmlibS5jb20KcmVsb2FkCQkJQmVybmQgU2NobWlkdAkJYmVybmRzQGNvZGVzb3VyY2VyeS5jb20KZGZwLmMsIHJlbGF0ZWQJCUJlbiBFbGxpc3RvbgkJYmplQGdudS5vcmcKUlRMIG9wdGltaXplcnMJCUVyaWMgQm90Y2F6b3UJCWVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcgphdXRvLXZlY3Rvcml6ZXIJCVJpY2hhcmQgR3VlbnRoZXIJcmd1ZW50aGVyQHN1c2UuZGUKYXV0by12ZWN0b3JpemVyCQlaZGVuZWsgRHZvcmFrCQlvb2tAdWN3LmN6CmF1dG8tdmVjdG9yaXplcgkJSXJhIFJvc2VuCQlpcmFyQGlsLmlibS5jb20KbG9vcCBpbmZyYXN0cnVjdHVyZQlaZGVuZWsgRHZvcmFrCQlvb2tAdWN3LmN6Ck9wZW5NUAkJCUpha3ViIEplbGluZWsJCWpha3ViQHJlZGhhdC5jb20KdGVzdHN1aXRlCQlSYWluZXIgT3J0aAkJcm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFCnRlc3RzdWl0ZQkJTWlrZSBTdHVtcAkJbWlrZXN0dW1wQGNvbWNhc3QubmV0CgpOb3RlIHRoYXQgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBuZWVkIGFwcHJvdmFsIHRvCmNoZWNrIGluIGNoYW5nZXMgb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoJCQlOb24tQWxnb3JpdGhtaWMgTWFpbnRhaW5lcnMKCmxvb3Agb3B0aW1pemVyCQlEYW5pZWwgQmVybGluCQlkYmVybGluQGRiZXJsaW4ub3JnCgpOb3RlIHRoYXQgaW5kaXZpZHVhbHMgd2hvIG1haW50YWluIHBhcnRzIG9mIHRoZSBjb21waWxlciBhcyBub24tYWxnb3JpdGhtaWMKbWFpbnRhaW5lcnMgbmVlZCBhcHByb3ZhbCB0byBjaGVjayBpbiBhbGdvcml0aG1pYyBjaGFuZ2VzIG9yIGNoYW5nZXMKb3V0c2lkZSBvZiB0aGUgcGFydHMgb2YgdGhlIGNvbXBpbGVyIHRoZXkgbWFpbnRhaW4uCgoJCQlSZXZpZXdlcnMKCmRhdGFmbG93CQlQYW9sbyBCb256aW5pCQlib256aW5pQGdudS5vcmcKZGF0YWZsb3cJCVNlb25nYmFlIFBhcmsJCXNlb25nYmFlLnBhcmtAZ21haWwuY29tCmRhdGFmbG93IAkJS2VubmV0aCBaYWRlY2sJCXphZGVja0BuYXR1cmFsYnJpZGdlLmNvbQpkcml2ZXIJCQlKb3NlcGggTXllcnMJCWpvc2VwaEBjb2Rlc291cmNlcnkuY29tCkZvcnRyYW4JCQlKYW5uZSBCbG9tcXZpc3QJCWpiQGdjYy5nbnUub3JnCkZvcnRyYW4JCQlUb2JpYXMgQnVybnVzCQlidXJudXNAbmV0LWIuZGUKRm9ydHJhbgkJCUplcnJ5IERlTGlzbGUJCWp2ZGVsaXNsZUBnY2MuZ251Lm9yZwpGb3J0cmFuCQkJRXJpayBFZGVsbWFubgkJZXJpay5lZGVsbWFubkBpa2kuZmkKRm9ydHJhbgkJCURhbmllbCBGcmFua2UJCWZyYW5rZS5kYW5pZWxAZ21haWwuY29tCkZvcnRyYW4JCQlTdGV2ZW4gRy4gS2FyZ2wJCXNna0B0cm91dG1hc2suYXBsLndhc2hpbmd0b24uZWR1CkZvcnRyYW4JCQlUaG9tYXMgS/ZuaWcJCXRrb2VuaWdAZ2NjLmdudS5vcmcKRm9ydHJhbgkJCURhbmllbCBLcmFmdAkJZEBkb21vYi5ldQpGb3J0cmFuCQkJVG9vbiBNb2VuZQkJdG9vbkBtb2VuZS5vcmcKRm9ydHJhbgkJCU1pa2FlbCBNb3JpbgkJbWlrYWVsLm1vcmluQHNmci5mcgpGb3J0cmFuCQkJQnJvb2tzIE1vc2VzCQlicm9va3MubW9zZXNAY29kZXNvdXJjZXJ5LmNvbQpGb3J0cmFuCQkJVG9iaWFzIFNjaGz8dGVyCQl0b2JpYXMuc2NobHVldGVyQHBoeXNpay51bmktbXVlbmNoZW4uZGUKRm9ydHJhbgkJCVBhdWwgVGhvbWFzCQlwYXVsdEBnY2MuZ251Lm9yZwpGb3J0cmFuCQkJSmFudXMgV2VpbAkJamFudXNAZ2NjLmdudS5vcmcKZ2VuZ3R5cGUvR1RZCQlMYXVyeW5hcyBCaXZlaW5pcyAgICAgICBsYXVyeW5hcy5iaXZlaW5pc0BnbWFpbC5jb20KR3JhcGhpdGUJCURhbmllbCBCZXJsaW4JCWRiZXJsaW5AZGJlcmxpbi5vcmcKR3JhcGhpdGUgCQlUb2JpYXMgR3Jvc3NlcgkJZ3Jvc3NlckBmaW0udW5pLXBhc3NhdS5kZQpHcmFwaGl0ZQkJU2ViYXN0aWFuIFBvcAkJc2ViYXN0aWFuLnBvcEBhbWQuY29tCmxpYmNwcAkJCVRvbSBUcm9tZXkJCXRyb21leUByZWRoYXQuY29tCmxvb3Agb3B0aW1pemVyCQlaZGVuZWsgRHZvcmFrCQlvb2tAdWN3LmN6ClBsdWdpbgkJCURpZWdvIE5vdmlsbG8JCWRub3ZpbGxvQGdvb2dsZS5jb20KUGx1Z2luCQkJTGUtQ2h1biBXdQkJbGN3dUBnb29nbGUuY29tCnJlZ2lzdGVyIGFsbG9jYXRpb24JUGV0ZXIgQmVyZ25lcgkJYmVyZ25lckB2bmV0LmlibS5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglWbGFkaW1pciBNYWthcm92CXZtYWthcm92QHJlZGhhdC5jb20KcmVnaXN0ZXIgYWxsb2NhdGlvbglLZW5uZXRoIFphZGVjawkJemFkZWNrQG5hdHVyYWxicmlkZ2UuY29tCnJlZ2lzdGVyIGFsbG9jYXRpb24JU2VvbmdiYWUgUGFyawkJc2VvbmdiYWUucGFya0BnbWFpbC5jb20KTFRPCQkJRGllZ28gTm92aWxsbwkJZG5vdmlsbG9AZ29vZ2xlLmNvbQpMVE8JCQlSaWNoYXJkIEd1ZW50aGVyCXJndWVudGhlckBzdXNlLmRlCkxUTyBwbHVnaW4JCUNhcnkgQ291dGFudAkJY2NvdXRhbnRAZ29vZ2xlLmNvbQoKTm90ZSB0aGF0IHdoaWxlIHJldmlld2VycyBjYW4gYXBwcm92ZSBjaGFuZ2VzIHRvIHBhcnRzIG9mIHRoZSBjb21waWxlcgp0aGF0IHRoZXkgbWFpbnRhaW4sIHRoZXkgc3RpbGwgbmVlZCBhcHByb3ZhbCBmb3IgdGhlaXIgb3duIHBhdGNoZXMKZnJvbSBvdGhlciBtYWludGFpbmVycyBvciByZXZpZXdlcnMuCgoJCQlXcml0ZSBBZnRlciBBcHByb3ZhbAkobGFzdCBuYW1lIGFscGhhYmV0aWNhbCBvcmRlcikKCk1hcmsgRy4gQWRhbXMJCQkJCW1hcmsuZy5hZGFtc0BzeW1wYXRpY28uY2EKUmFrc2l0IEFzaG9rCQkJCQlyYWtzaXRAZ29vZ2xlLmNvbQpNYXR0IEF1c3Rlcm4JCQkJCWF1c3Rlcm5AZ29vZ2xlLmNvbQpEYXZpZCBBeWVycwkJCQkJYXllcnNAZnNmZS5vcmcKR2lvdmFubmkgQmFqbwkJCQkJZ2lvdmFubmliYWpvQGdjYy5nbnUub3JnClNpbW9uIEJhbGR3aW4JCQkJCXNpbW9uYkBnb29nbGUuY29tClNjb3R0IEJhbWJyb3VnaAkJCQkJc2NvdHRiQG5ldHdpbmRlci5vcmcKV29sZmdhbmcgQmFuZ2VydGgJCQkJYmFuZ2VydGhAZGVhbGlpLm9yZwpUZWphcyBCZWxhZ29kCQkJCQl0ZWphcy5iZWxhZ29kQGFybS5jb20KQW5kcmV5IEJlbGV2YW50c2V2CQkJCWFiZWxAaXNwcmFzLnJ1CkpvbiBCZW5pc3RvbgkJCQkJam9uQGJlbmlzdG9uLmNvbQpQZXRlciBCZXJnbmVyCQkJCQliZXJnbmVyQHZuZXQuaWJtLmNvbQpKYW4gQmV1bGljaAkJCQkJamJldWxpY2hAbm92ZWxsLmNvbQpEYXZpZCBCaWxsaW5naHVyc3QJCQkJRGF2aWQuQmlsbGluZ2h1cnN0QHJpb3RpbnRvLmNvbQpUb21hcyBCaWx5CQkJCQl0YmlseUBzdXNlLmN6CkVyaWMgQmxha2UJCQkJCWVyaWNiQGdjYy5nbnUub3JnClBoaWwgQmx1bmRlbGwJCQkJCXBiQGZ1dHVyZXR2LmNvbQpIYW5zIEJvZWhtCQkJCQloYm9laG1AZ2NjLmdudS5vcmcKU2VnaGVyIEJvZXNzZW5rb29sCQkJCXNlZ2hlckBrZXJuZWwuY3Jhc2hpbmcub3JnCklhbiBCb2x0b24JCQkJCWlhbi5ib2x0b25AYXJtLmNvbQpBbmRyZWEgQm9uYQkJCQkJYW5kcmVhLmJvbmFAc3QuY29tClBhb2xvIEJvbnppbmkJCQkJCWJvbnppbmlAZ251Lm9yZwpOZWlsIEJvb3RoCQkJCQluZWlsQGRhaWtva3V5YS5jby51awpTdGV2ZW4gQm9zc2NoZXIJCQkJCXN0ZXZlbkBnY2MuZ251Lm9yZwpSb2JlcnQgQm93ZGlkZ2UJCQkJCWJvd2RpZGdlQGFwcGxlLmNvbQpKb2VsIEJyb2JlY2tlcgkJCQkJYnJvYmVja2VyQGduYXQuY29tCkRhdmUgQnJvbGxleQkJCQkJYnJvbGxleUByZWRoYXQuY29tCkp1bGlhbiBCcm93bgkJCQkJanVsaWFuQGNvZGVzb3VyY2VyeS5jb20KQ2hyaXN0aWFuIEJydWVsCQkJCQljaHJpc3RpYW4uYnJ1ZWxAc3QuY29tCktldmluIEJ1ZXR0bmVyCQkJCQlrZXZpbmJAcmVkaGF0LmNvbQpBbmRyZXcgQ2FnbmV5CQkJCQljYWduZXlAcmVkaGF0LmNvbQpDaGFuZHJhIENoYXZ2YQkJCQkJY2NoYXZ2YUByZWRoYXQuY29tCkZhYmllbiBDaOpuZQkJCQkJZmFiaWVuQGdjYy5nbnUub3JnCldpbGxpYW0gQ29oZW4JCQkJCXdjb2hlbkByZWRoYXQuY29tCkpvc2ggQ29ubmVyCQkJCQlqY29ubmVyQGFwcGxlLmNvbQpSLiBLZWxsZXkgQ29vawkJCQkJa2Nvb2tAZ2NjLmdudS5vcmcKQ2hyaXN0aWFuIENvcm5lbHNzZW4JCQkJY2Nvcm5AY3MudHUtYmVybGluLmRlCkZyYW7nb2lzLVhhdmllciBDb3VkZXJ0CQkJCWZ4Y291ZGVydEBnY2MuZ251Lm9yZwpDYXJ5IENvdXRhbnQJCQkJCWNjb3V0YW50QGdvb2dsZS5jb20KSWFuIERhbGwJCQkJCWlhbkBiZXdhcmUuZHJvcGJlYXIuaWQuYXUKRGF2aWQgRGFuZXkJCQkJCWRhdmlkLmRhbmV5QGNhdml1bW5ldHdvcmtzLmNvbQpCdWQgRGF2aXMJCQkJCWptZGF2aXNAbGluay5jb20KQ2hyaXMgRGVtZXRyaW91CQkJCQljZ2RAZ29vZ2xlLmNvbQpGcmFu529pcyBEdW1vbnQJCQkJCWZkdW1vbnRAZ2NjLmdudS5vcmcKQmVub2l0IER1cG9udCBkZSBEaW5lY2hpbgkJCWJlbm9pdC5kdXBvbnQtZGUtZGluZWNoaW5Ac3QuY29tCk1pY2hhZWwgRWFnZXIJCQkJCWVhZ2VyQGVhZ2VyY29uLmNvbQpQaGlsIEVkd2FyZHMJCQkJCXBtZUBnY2MuZ251Lm9yZwpNb2hhbiBFbWJhcgkJCQkJZ251c3R1ZmZAdGhpc2lzY29vbC5jb20KUmV2aXRhbCBFcmVzCQkJCQllcmVzQGlsLmlibS5jb20KTWFyYyBFc3BpZQkJCQkJZXNwaWVAY3ZzLm9wZW5ic2Qub3JnClJhZmFlbCDBdmlsYSBkZSBFc3DtbmRvbGEJCQllc3BpbmRvbGFAZ29vZ2xlLmNvbQpBbnNnYXIgRXN6dGVybWFubgkJCQlhbnNnYXJAdGhwaHkudW5pLWR1ZXNzZWxkb3JmLmRlCkRvdWcgRXZhbnMJCQkJCWRqZUBnb29nbGUuY29tCkNocmlzIEZhaXJsZXMJCQkJCWNmYWlybGVzQGdjYy5nbnUub3JnCkNoYW5ncGVuZyBGYW5nCQkJCQljaGFuZ3BlbmcuZmFuZ0BhbWQuY29tCkxpIEZlbmcJCQkJCQluZW1va2luZ2RvbUBnbWFpbC5jb20KVGhvbWFzIEZpdHpzaW1tb25zCQkJCWZpdHpzaW1AcmVkaGF0LmNvbQpCcmlhbiBGb3JkCQkJCQlmb3JkQHZzcy5mc2kuY29tCkpvaG4gRnJlZW1hbgkJCQkJamZyZWVtYW4wOEBnbWFpbC5jb20KTmF0aGFuIEZyb3lkCQkJCQlmcm95ZG5qQGNvZGVzb3VyY2VyeS5jb20KQ2hhby15aW5nIEZ1CQkJCQlmdUBtaXBzLmNvbQpHYXJ5IEZ1bmNrCQkJCQlnYXJ5QGludHJlcGlkLmNvbQpLYXZlaCBHaGF6aQkJCQkJZ2hhemlAZ2NjLmdudS5vcmcKTWF0dGhldyBHaW5nZWxsCQkJCQlnaW5nZWxsQGduYXQuY29tClRyaXN0YW4gR2luZ29sZAkJCQkJZ2luZ29sZEBhZGFjb3JlLmNvbQpBbnRob255IEdyZWVuCQkJCQlncmVlbkByZWRoYXQuY29tCkRvdWcgR3JlZ29yCQkJCQlkb3VnLmdyZWdvckBnbWFpbC5jb20KSm9uIEdyaW1tCQkJCQlqZ3JpbW0yQHVzLmlibS5jb20KTGF1cmVudCBHdWVyYnkJCQkJCWxhdXJlbnRAZ3VlcmJ5Lm5ldApYdWVwZW5nIEd1bwkJCQkJdGVycnkuZ3VvQGFybS5jb20KV2VpIEd1b3poaQkJCQkJY2Fycm90QGdvb2dsZS5jb20KTW9zdGFmYSBIYWdvZwkJCQkJaGFnb2dAZ2NjLmdudS5vcmcKT2xpdmllciBIYWlucXVlCQkJCQloYWlucXVlQGFjdC1ldXJvcGUuZnIKU3R1YXJ0IEhhc3RpbmdzCQkJCQlzdHVhcnRAYXBwbGUuY29tClBhdCBIYXVnZW4JCQkJCXB0aGF1Z2VuQHVzLmlibS5jb20KTWFyayBIZWZmZXJuYW4JCQkJCW1laGVmZkBnb29nbGUuY29tCkdlb3JnZSBIZWxmZnJpY2gJCQkJZ2VvcmdlQGdjYy5nbnUub3JnCkZlcmd1cyBIZW5kZXJzb24JCQkJZmpoQGNzLm11Lm96LmF1Ck1hdHRoZXcgSGlsbGVyCQkJCQloaWxsZXJAcmVkaGF0LmNvbQpNYW5mcmVkIEhvbGxzdGVpbgkJCQltaEBzdXNlLmNvbQpGYWxrIEh1ZWZmbmVyCQkJCQlmYWxrQGRlYmlhbi5vcmcKQW5kcmV3IEpvaG4gSHVnaGVzCQkJCWdudV9hbmRyZXdAbWVtYmVyLmZzZi5vcmcKQW5keSBIdXRjaGluc29uCQkJCQlodXRjaGluc29uYW5keUBhaW0uY29tCkJlcm5hcmRvIElubm9jZW50aQkJCQliZXJuaWVAZGV2ZWxlci5jb20KRGFuaWVsIEphY29ib3dpdHoJCQkJZGFuQGNvZGVzb3VyY2VyeS5jb20KQW5kcmVhcyBKYWVnZXIJCQkJCWFqQHN1c2UuZGUKSGFyc2hhIEphZ2FzaWEJCQkJCWhhcnNoYS5qYWdhc2lhQGFtZC5jb20KRmFyaWJvcnogSmFoYW5pYW4JCQkJZmphaGFuaWFuQGFwcGxlLmNvbQpNYXJ0aW4gSmFtYm9yCQkJCQltamFtYm9yQHN1c2UuY3oKQW5kcmV3IEplbm5lcgkJCQkJYW5kcmV3QGNvZGVzb3VyY2VyeS5jb20KS2VhbiBKb2huc3RvbgkJCQkJamtqQHNjby5jb20KUGhpbGxpcCBKb3JkYW4JCQkJCXBoaWxsaXAubS5qb3JkYW5AZ21haWwuY29tClRpbSBKb3NsaW5nCQkJCQl0ZWpAbWVsYnBjLm9yZy5hdQpWaWN0b3IgS2FwbGFuc2t5CQkJCXZpY3RvcmtAaWwuaWJtLmNvbQpCcmVuZGFuIEtlaG9lCQkJCQlicmVuZGFuQHplbi5vcmcKTWF0dGhpYXMgS2xvc2UJCQkJCWRva29AZGViaWFuLm9yZwpBbmRpIEtsZWVuCQkJCQlhbmRpQGZpcnN0Zmxvb3Iub3JnCkplZmYgS25hZ2dzCQkJCQlqa25hZ2dzQHJlZGhhdC5jb20KTWljaGFlbCBLb2NoCQkJCQlrb25xdWVyb3JAZ214LmRlCk1hdHQgS3JhYWkJCQkJCWtyYWFpQGZ0YmZzLm9yZwpKYW4gS3JhdG9jaHZpbAkJCQkJamFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbQpNYXhpbSBLdXZ5cmtvdgkJCQkJbWF4aW1AY29kZXNvdXJjZXJ5LmNvbQpEb3VnIEt3YW4JCQkJCWRvdWdrd2FuQGdvb2dsZS5jb20KU2NvdHQgUm9iZXJ0IExhZGQJCQkJc2NvdHQubGFkZEBjb3lvdGVndWxjaC5jb20KUmF6eWEgTGFkZWxza3kJCQkJCXJhenlhQGdjYy5nbnUub3JnClRoaWVycnkgTGFmYWdlCQkJCQl0aGllcnJ5LmxhZmFnZUBpbnJpYS5mcgpBYXJvbiBXLiBMYUZyYW1ib2lzZQkJCQlhYXJvbmF2YXk2MkBhYXJvbndsLmNvbQpSYXNrIEluZ2VtYW5uIExhbWJlcnRzZW4JCQljY2M5NDQ1M0B2aXAuY3liZXJjaXR5LmRrCkFzaGVyIExhbmd0b24JCQkJCWxhbmd0b24yQGxsbmwuZ292CkNocmlzIExhdHRuZXIJCQkJCXNhYnJlQG5vbmRvdC5vcmcKVGVycnkgTGF1cmVuem8JCQkJCXRsYXVyZW56b0BnbWFpbC5jb20KTWFyYyBMZWhtYW5uCQkJCQlwY2dAZ29vZi5jb20KSmFtZXMgTGVta2UJCQkJCWp3bGVta2VAanVuaXBlci5uZXQKS3JpYW5nIExlcmRzdXdhbmFraWoJCQkJbGVyZHN1d2FAdXNlcnMuc291cmNlZm9yZ2UubmV0ClNhIExpdQkJCQkJCXNhbGl1QGRlLmlibS5jb20KUmFscGggTG9hZGVyCQkJCQlyY2xAaWh1Zy5jby5uegpHYWJvciBMb2tpCQkJCQlsb2tpQGluZi51LXN6ZWdlZC5odQpTYW5kcmEgTG9vc2Vtb3JlCQkJCXNhbmRyYUBjb2Rlc291cmNlcnkuY29tCk1hbnVlbCBM83Blei1JYuHxZXoJCQkJbWFudUBnY2MuZ251Lm9yZwpNYXJ0aW4gdi4gTPZ3aXMJCQkJCWxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZQpILkouIEx1CQkJCQkJaGpsLnRvb2xzQGdtYWlsLmNvbQpYaW5saWFuZyBEYXZpZCBMaQkJCQlkYXZpZHhsQGdvb2dsZS5jb20KTHVpcyBNYWNoYWRvCQkJCQlsdWlzZ3BtQGJyLmlibS5jb20KWmlnYSBNYWhrb3ZlYwkJCQkJemlnYS5tYWhrb3ZlY0BrbGlrYS5zaQpTaW1vbiBNYXJ0aW4JCQkJCXNpbWFydGluQHVzZXJzLnNvdXJjZWZvcmdlLm5ldApSYW5qaXQgTWF0aGV3CQkJCQlybWF0aGV3QGhvdG1haWwuY29tCk1pY2hhZWwgTWF0egkJCQkJbWF0ekBzdXNlLmRlCkdyZWcgTWNHYXJ5CQkJCQlna21AZ251Lm9yZwpBZGFtIE1lZ2FjegkJCQkJYWRhbUB4d3Qub3JnCkJpbmdmZW5nIE1laQkJCQkJYm1laUBicm9hZGNvbS5jb20KTWFydGluIE1pY2hsbWF5cgkJCQl0Ym1AY3lyaXVzLmNvbQpMZWUgTWlsbHdhcmQJCQkJCWxlZS5taWxsd2FyZEBnbWFpbC5jb20KQWxhbiBNb2RyYQkJCQkJYW1vZHJhQGdtYWlsLmNvbQpBbGV4YW5kZXIgTW9uYWtvdgkJCQlhbW9uYWtvdkBpc3ByYXMucnUKQ2F0aGVyaW5lIE1vb3JlCQkJCQljbG1AY29kZXNvdXJjZXJ5LmNvbQpKYW1lcyBBLiBNb3JyaXNvbgkJCQlwaHl0aG9uQGdjYy5nbnUub3JnCkRpcmsgTXVlbGxlcgkJCQkJZG11ZWxsZXJAc3VzZS5kZQpQaGlsIE11bGRvb24JCQkJCXBtdWxkb29uQHJlZGhhdC5jb20KUXVlbnRpbiBOZWlsbAkJCQkJcXVlbnRpbi5uZWlsbC5nbnVAZ21haWwuY29tCkFkYW0gTmVtZXQJCQkJCWFkYW1ibmVtZXRAZ21haWwuY29tClRob21hcyBOZXVtYW5uCQkJCQl0bmV1bWFubkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKRGFuIE5pY29sYWVzY3UJCQkJCWRhbm5AaWNzLnVjaS5lZHUKRG9yaXQgTnV6bWFuCQkJCQlkb3JpdEBpbC5pYm0uY29tCkRhdmlkIE8nQnJpZW4JCQkJCW9icmllbkBGcmVlQlNELm9yZwpDYXJsb3MgTydEb25lbGwJCQkJCWNhcmxvc0Bjb2Rlc291cmNlcnkuY29tClBldGVyIE8nR29ybWFuCQkJCQlwb2dtYUB0aGV3cml0dGVud29yZC5jb20KQW5kcmVhIE9ybnN0ZWluCQkJCQlhbmRyZWEub3Juc3RlaW5Ac3QuY29tClNlb25nYmFlIFBhcmsJCQkJCXNlb25nYmFlLnBhcmtAZ21haWwuY29tCkRldmFuZyBQYXRlbAkJCQkJZHBhdGVsQGFwcGxlLmNvbQpGZXJuYW5kbyBQZXJlaXJhCQkJCXByb25lc3RvQGdtYWlsLmNvbQpLYXVzaGlrIFBoYXRhawkJCQkJa2F1c2hpay5waGF0YWtAa3BpdGN1bW1pbnMuY29tCk5pY29sYXMgUGl0cmUJCQkJCW5pY29AY2FtLm9yZwpBbnRvbml1IFBvcAkJCQkJYW50b25pdS5wb3BAZ21haWwuY29tClZsYWRpbWlyIFBydXMJCQkJCXZsYWRpbWlyQGNvZGVzb3VyY2VyeS5jb20KWWFvIFFpCQkJCQkJeWFvQGNvZGVzb3VyY2VyeS5jb20KSmVycnkgUXVpbm4JCQkJCWpscXVpbm5Ab3B0b25saW5lLm5ldApSYW1hbmEgUmFkaGFrcmlzaG5hbgkJCQlyYW1hbmEucmFkaGFrcmlzaG5hbkBhcm0uY29tClJvbGYgUmFzbXVzc2VuCQkJCQlyb2xmd3JAZ2NjLmdudS5vcmcKVm9sa2VyIFJlaWNoZWx0CQkJCQl2LnJlaWNoZWx0QG5ldGNvbG9nbmUuZGUKSm9lcm4gUmVubmVja2UJCQkJCWFteWxhYXJAc3BhbWNvcC5uZXQKSm9lcm4gUmVubmVja2UJCQkJCWpvZXJuLnJlbm5lY2tlQGVtYmVjb3NtLmNvbQpCZXJuaGFyZCBSZXV0bmVyLUZpc2NoZXIJCQlyZXAuZG90Lm5vcEBnbWFpbC5jb20KVG9tIFJpeAkJCQkJCXRyaXhAcmVkaGF0LmNvbQpDcmFpZyBSb2RyaWd1ZXMJCQkJCXJvZHJpZ2NAZ2NjLmdudS5vcmcKRXJ2ZW4gUm9ob3UJCQkJCWVydmVuLnJvaG91QGlucmlhLmZyCklyYSBSb3NlbgkJCQkJaXJhckBpbC5pYm0uY29tCk1hY2llaiBXLiBSb3p5Y2tpCQkJCW1hY3JvQGxpbnV4LW1pcHMub3JnClNpbHZpdXMgUnVzCQkJCQlydXNAZ29vZ2xlLmNvbQpNYXR0aGV3IFNhY2hzCQkJCQltc2FjaHNAYXBwbGUuY29tCklhaW4gU2FuZG9lCQkJCQlpYWluc0BnY2MuZ251Lm9yZwpEdW5jYW4gU2FuZHMJCQkJCWJhbGRyaWNrQGdjYy5nbnUub3JnCldpbGxpYW0gU2NobWlkdCAJCQkJd3NjaG1pZHRAbGludXgudm5ldC5pYm0uY29tCkRvZGppIFNla2V0ZWxpCQkJCQlkc2VrZXRlbEByZWRoYXQuY29tClN2ZWluIFNlbGRhbAkJCQkJc3ZlaW5AZGV2LnNlbGRhbC5jb20KVGhpZW1vIFNldWZlcgkJCQkJdGhzQG5ldHdvcmtuby5kZQpNYXJjdXMgU2hhd2Nyb2Z0CQkJCW1hcmN1cy5zaGF3Y3JvZnRAYXJtLmNvbQpKb2hhbm5lcyBTaW5nbGVyCQkJCXNpbmdsZXJAa2l0LmVkdQpGcmFueiBTaXJsCQkJCQlmcmFuei5zaXJsLWtlcm5lbEBsYXV0ZXJiYWNoLmNvbQpKYW4gU2pvZGluCQkJCQlqYW4uc2pvZGluQGFtZC5jb20KRWR3YXJkIFNtaXRoLVJvd2xhbmQJCQkJM2R3NHJkQHZlcml6b24ubmV0Ck1pY2hhZWwgU29rb2xvdgkJCQkJbXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHClJpY2hhcmQgU3RhbGxtYW4JCQkJcm1zQGdudS5vcmcKQmFzaWxlIFN0YXJ5bmtldml0Y2gJCQkJYmFzaWxlQHN0YXJ5bmtldml0Y2gubmV0Ckpha3ViIFN0YXN6YWsJCQkJCWt1YmFAZXQucGwKR3JhaGFtIFN0b3R0CQkJCQlncmFoYW0uc3RvdHRAYnRpbnRlcm5ldC5jb20KQW5kcmV3IFN0dWJicwkJCQkJYW1zQGNvZGVzb3VyY2VyeS5jb20KTWlrZSBTdHVtcAkJCQkJbWlrZXN0dW1wQGNvbWNhc3QubmV0CkplZmYgU3R1cm0JCQkJCWpzdHVybUBnY2MuZ251Lm9yZwpHYWJyaWVsZSBTdmVsdG8JCQkJCWdhYnJpZWxlLnN2ZWx0b0BzdC5jb20KU3JpcmFtYW4gVGFsbGFtCQkJCQl0bXNyaXJhbUBnb29nbGUuY29tCkNodW5nLUxpbiBUYW5nCQkJCQljbHRhbmdAY29kZXNvdXJjZXJ5LmNvbQpTYW11ZWwgVGFyZGlldQkJCQkJc2FtQHJmYzExNDkubmV0CktyZXN0ZW4gS3JhYiBUaG9ydXAJCQkJa3JhYkBnY2MuZ251Lm9yZwpDYXJvbGluZSBUaWNlCQkJCQljdGljZUBhcHBsZS5jb20KS29ucmFkIFRyaWZ1bm92aWMJCQkJa29ucmFkLnRyaWZ1bm92aWNAaW5yaWEuZnIKRGF2aWQgVW5nCQkJCQlkYXZpZHVAbWlwcy5jb20KTmVpbCBWYWNoaGFyYWphbmkJCQkJbnZhY2hoYXJAZ21haWwuY29tCktyaXMgVmFuIEhlZXMJCQkJCWtyaXMudmFuLmhlZXNAb3JhY2xlLmNvbQpGZW5nIFdhbmcJCQkJCWZlbmd3YW5nQG51ZHQuZWR1LmNuClN0ZXBoZW4gTS4gV2ViYgkJCQkJc3RlcGhlbi53ZWJiQGJyZWdtYXNvZnQuY29tCkpvaG4gV2VobGUJCQkJCWpvaG5AZmVpdGguY29tCkZsb3JpYW4gV2VpbWVyCQkJCQlmd0BkZW5lYi5lbnlvLmRlClphY2sgV2VpbmJlcmcJCQkJCXphY2t3QHBhbml4LmNvbQpNYXJrIFdpZWxhYXJkCQkJCQltYXJrQGdjYy5nbnUub3JnCk9sbGllIFdpbGQJCQkJCWFhd0Bnb29nbGUuY29tCktldmluIFdpbGxpYW1zCQkJCQlrZXZpbi53aWxsaWFtc0BpbnJpYS5mcgpDYXJsbyBXb29kCQkJCQljYXJsb0BhbGlub2UuY29tCkxlLUNodW4gV3UJCQkJCWxjd3VAZ29vZ2xlLmNvbQpNaW5namllIFhpbmcJCQkJCW1pbmdqaWUueGluZ0BnbWFpbC5jb20KQ2FucXVuIFlhbmcJCQkJCWNhbnF1bkBudWR0LmVkdS5jbgpKZWZmcmV5IFlhc3NraW4JCQkJCWp5YXNza2luQGdvb2dsZS5jb20KSm9leSBZZQkJCQkJCWpvZXkueWVAYXJtLmNvbQpEYXZpZCBZdXN0ZQkJCQkJZGF2aWQueXVzdGVAZ21haWwuY29tCktlbm5ldGggWmFkZWNrCQkJCQl6YWRlY2tAbmF0dXJhbGJyaWRnZS5jb20KU2h1amluZyBaaGFvCQkJCQlwZWFybHkuemhhb0BvcmFjbGUuY29tCkpvbiBaaWVnbGVyCQkJCQlqb256QGFwcGxlLmNvbQpSb21hbiBaaXBwZWwJCQkJCXppcHBlbEBsaW51eC1tNjhrLm9yZwpKb3NlZiBabG9tZWsJCQkJCWpvc2VmLnpsb21la0BlbWFpbC5jegoKQnVnIGRhdGFiYXNlIG9ubHkgYWNjb3VudHMKCkphbWVzIERlbm5ldHQJCQkJCWpkZW5uZXR0QGFjbS5vcmcKQ2hyaXN0aWFuIEVocmhhcmR0CQkJCWVocmhhcmR0QG1hdGhlbWF0aWsudW5pLXVsbS5kZQpEYXJhIEhhemVnaGkJCQkJCWRoYXplZ2hpQHlhaG9vLmNvbQo=