IyAkSWQkCgojIGxhbmd1YWdlIGZyCgojIHBhY2thZ2Ugb3JnLmFwYWNoZS5qay5hanAudG9tY2F0NDsKCmFqcDEzQ29ubmVjdG9yLmFscmVhZHlTdGFydGVkPWxlIGNvbm5lY3RldXIgYWpwMTMgYSBk6WrgIOl06SBk6W1hcnLpCmFqcDEzQ29ubmVjdG9yLmFsbEFkZHJlc3Nlcz1PdXZlcnR1cmUgZHUgc2VydmV1ciBzb2NrZXQgc3VyIHRvdXRlcyBsZXMgYWRyZXNzZXMgSVAKYWpwMTNDb25uZWN0b3IuZmFpbGVkU29ja2V0RmFjdG9yeUxvYWRpbmc9SW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxlIGNy6WF0ZXVyIGRlIHNvY2tldCAoc29ja2V0IGZhY3RvcnkpCmFqcDEzQ29ubmVjdG9yLmZhaWxlZFRvQ3JlYXRlU29ja2V0PUxlIGNy6WF0ZXVyIGRlIHNvY2tldCAoc29ja2V0IGZhY3RvcnkpIG4nYSBwdSBjcullciB1biBzb2NrZXQKYWpwMTNDb25uZWN0b3IuYW5BZGRyZXNzPU91dmVydHVyZSBkdSBzZXJ2ZXVyIHNvY2tldCBzdXIgbCcnYWRyZXNzZSBJUCB7MH0KYWpwMTNDb25uZWN0b3Iubm9BZGRyZXNzPVBhcyBkJydhZHJlc3NlIElQIGNvcnJlc3BvbmRhbnQg4CB7MH0sIG91dmVydHVyZSBzdXIgdG91dGVzIGxlcyBhZHJlc3NlcwphanAxM0Nvbm5lY3Rvci5ub1Byb2Nlc3Nvcj1QYXMgZGUgcHJvY2Vzc2V1ciBkaXNwb25pYmxlLCByZWpldCBkZSBjZXR0ZSBjb25uZXhpb24KYWpwMTNDb25uZWN0b3Iubm90U3RhcnRlZD1MZSBjb25uZWN0ZXVyIGFqcDEzIG4nYSBwYXMgZW5jb3JlIOl06SBk6W1hcnLpCmFqcDEzQ29ubmVjdG9yLnN0YXJ0aW5nPUTpbWFycmFnZSBkZSBsYSB0YWNoZSBkZSBmb25kIChiYWNrZ3JvdW5kIHRocmVhZCkKYWpwMTNDb25uZWN0b3Iuc3RvcHBpbmc9QXJy6nQgZGUgbGEgdGFjaGUgZGUgZm9uZCAoYmFja2dyb3VuZCB0aHJlYWQpCgphanAxM1Byb2Nlc3Nvci5hbHJlYWR5U3RhcnRlZD1MZSBwcm9jZXNzZXVyIGFqcDEzIGEgZOlq4CDpdOkgZOltYXJy6QphanAxM1Byb2Nlc3Nvci5ub3RTdGFydGVkPUxlIHByb2Nlc3NldXIgYWpwMTMgbidhIHBhcyBlbmNvcmUg6XTpIGTpbWFycukKYWpwMTNQcm9jZXNzb3Iuc3RhcnQ9TGUgcHJvY2Vzc2V1ciBhanAxMyBhIGTpauAg6XTpIGTpbWFycukKYWpwMTNQcm9jZXNzb3Iuc3RhcnRpbmc9ROltYXJyYWdlIGRlIGxhIHRhY2hlIGRlIGZvbmQgKGJhY2tncm91bmQgdGhyZWFkKQphanAxM1Byb2Nlc3Nvci5zdG9wcGluZz1BcnLqdCBkZSBsYSB0YWNoZSBkZSBmb25kIChiYWNrZ3JvdW5kIHRocmVhZCkK