[mb-commits] r13698 - in search_server/trunk: index/src/main/java/org/musicbrainz/search/index index/src/test/java/org/musicbrainz/search/index servlet/src/test/java/org/musicbrainz/search/servlet

[email protected] Wed, 05 Jun 2013 10:59:31 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1UkBRD-0003BD-6r@wiley>
QXV0aG9yOiBpamFiegpEYXRlOiAyMDEzLTA2LTA1IDEwOjU5OjI0ICswMDAwIChXZWQsIDA1IEp1
biAyMDEzKQpOZXcgUmV2aXNpb246IDEzNjk4CgpNb2RpZmllZDoKICAgc2VhcmNoX3NlcnZlci90
cnVuay9pbmRleC9zcmMvbWFpbi9qYXZhL29yZy9tdXNpY2JyYWluei9zZWFyY2gvaW5kZXgvQXJ0
aXN0SW5kZXguamF2YQogICBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy9tYWluL2phdmEv
b3JnL211c2ljYnJhaW56L3NlYXJjaC9pbmRleC9BcnRpc3RJbmRleEZpZWxkLmphdmEKICAgc2Vh
cmNoX3NlcnZlci90cnVuay9pbmRleC9zcmMvbWFpbi9qYXZhL29yZy9tdXNpY2JyYWluei9zZWFy
Y2gvaW5kZXgvTGFiZWxJbmRleC5qYXZhCiAgIHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvaW5kZXgvc3Jj
L21haW4vamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0xhYmVsSW5kZXhGaWVsZC5q
YXZhCiAgIHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvaW5kZXgvc3JjL3Rlc3QvamF2YS9vcmcvbXVzaWNi
cmFpbnovc2VhcmNoL2luZGV4L0FydGlzdEluZGV4VGVzdC5qYXZhCiAgIHNlYXJjaF9zZXJ2ZXIv
dHJ1bmsvaW5kZXgvc3JjL3Rlc3QvamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0xh
YmVsSW5kZXhUZXN0LmphdmEKICAgc2VhcmNoX3NlcnZlci90cnVuay9zZXJ2bGV0L3NyYy90ZXN0
L2phdmEvb3JnL211c2ljYnJhaW56L3NlYXJjaC9zZXJ2bGV0L0ZpbmRBcnRpc3RUZXN0LmphdmEK
ICAgc2VhcmNoX3NlcnZlci90cnVuay9zZXJ2bGV0L3NyYy90ZXN0L2phdmEvb3JnL211c2ljYnJh
aW56L3NlYXJjaC9zZXJ2bGV0L0ZpbmRMYWJlbFRlc3QuamF2YQpMb2c6ClNFQVJDSC0yOTI6IElu
Y2x1ZGUgYXJlYSBpbmZvIGluIHRoZSBpbmRleGVkIHNlYXJjaCByZXN1bHRzIGZyaW8gYXJ0aXN0
cyBhbmQgbGFiZWxzCgpNb2RpZmllZDogc2VhcmNoX3NlcnZlci90cnVuay9pbmRleC9zcmMvbWFp
bi9qYXZhL29yZy9tdXNpY2JyYWluei9zZWFyY2gvaW5kZXgvQXJ0aXN0SW5kZXguamF2YQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy9tYWluL2phdmEvb3JnL211
c2ljYnJhaW56L3NlYXJjaC9pbmRleC9BcnRpc3RJbmRleC5qYXZhCTIwMTMtMDYtMDUgMDg6MDc6
MzYgVVRDIChyZXYgMTM2OTcpCisrKyBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy9tYWlu
L2phdmEvb3JnL211c2ljYnJhaW56L3NlYXJjaC9pbmRleC9BcnRpc3RJbmRleC5qYXZhCTIwMTMt
MDYtMDUgMTA6NTk6MjQgVVRDIChyZXYgMTM2OTgpCkBAIC0xMjYsMTcgKzEyNiwyMyBAQAogCiAK
ICAgICAgICAgYWRkUHJlcGFyZWRTdGF0ZW1lbnQoIkFSVElTVFMiLAotICAgICAgICAgICAgICAg
ICJTRUxFQ1QgYXJ0aXN0LmlkLCBnaWQsIG4wLm5hbWUgYXMgbmFtZSwgbjEubmFtZSBhcyBzb3J0
X25hbWUsICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgIiAgYXJ0aXN0X3R5cGUubmFtZSBh
cyB0eXBlLCBiZWdpbl9kYXRlX3llYXIsIGJlZ2luX2RhdGVfbW9udGgsIGJlZ2luX2RhdGVfZGF5
LCAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICIgIGVuZF9kYXRlX3llYXIsIGVuZF9kYXRl
X21vbnRoLCBlbmRfZGF0ZV9kYXksZW5kZWQsICIgKwotICAgICAgICAgICAgICAgICAgICAgICAg
IiAgY29tbWVudCwgbG93ZXIoaS5jb2RlKSBhcyBjb3VudHJ5LCBsb3dlcihnZW5kZXIubmFtZSkg
YXMgZ2VuZGVyICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgIiBGUk9NIGFydGlzdCAiICsK
LSAgICAgICAgICAgICAgICAgICAgICAgICIgIExFRlQgSk9JTiBhcnRpc3RfbmFtZSBuMCBPTiBh
cnRpc3QubmFtZSA9IG4wLmlkICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgIiAgTEVGVCBK
T0lOIGFydGlzdF9uYW1lIG4xIE9OIGFydGlzdC5zb3J0X25hbWUgPSBuMS5pZCAiICsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICIgIExFRlQgSk9JTiBhcnRpc3RfdHlwZSBPTiBhcnRpc3QudHlw
ZSA9IGFydGlzdF90eXBlLmlkICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgIiAgTEVGVCBK
T0lOIGlzb18zMTY2XzEgaSBvbiBhcnRpc3QuYXJlYT1pLmFyZWEiICsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICIgIExFRlQgSk9JTiBnZW5kZXIgT04gYXJ0aXN0LmdlbmRlcj1nZW5kZXIuaWQg
IiArCi0gICAgICAgICAgICAgICAgICAgICAgICAiIFdIRVJFIGFydGlzdC5pZCBCRVRXRUVOID8g
QU5EID8iKTsKKyAgICAgICAgICAgICAgICAiU0VMRUNUIGEuaWQsIGEuZ2lkIGFzIGdpZCwgbjAu
bmFtZSBhcyBuYW1lLCBuMS5uYW1lIGFzIHNvcnRfbmFtZSwgIiArCisgICAgICAgICAgICAgICAg
ICAgICAgICAiICBhcnRpc3RfdHlwZS5uYW1lIGFzIHR5cGUsIGEuYmVnaW5fZGF0ZV95ZWFyLCBh
LmJlZ2luX2RhdGVfbW9udGgsIGEuYmVnaW5fZGF0ZV9kYXksICIgKworICAgICAgICAgICAgICAg
ICAgICAgICAgIiAgYS5lbmRfZGF0ZV95ZWFyLCBhLmVuZF9kYXRlX21vbnRoLCBhLmVuZF9kYXRl
X2RheSxhLmVuZGVkLCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgIGNvbW1lbnQsIGxv
d2VyKGkuY29kZSkgYXMgY291bnRyeSwgbG93ZXIoZ2VuZGVyLm5hbWUpIGFzIGdlbmRlciwiICsK
KyAgICAgICAgICAgICAgICAgICAgICAgICIgIGExLmdpZCBhcyBhcmVhX2dpZCwgYTEubmFtZSBh
cyBhcmVhX25hbWUsIGExLnNvcnRfbmFtZSBhcyBhcmVhX3NvcnRuYW1lLCAiICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIgIGEyLmdpZCBhcyBiZWdpbmFyZWFfZ2lkLCBhMi5uYW1lIGFzIGJl
Z2luYXJlYV9uYW1lLCBhMi5zb3J0X25hbWUgYXMgYmVnaW5hcmVhX3NvcnRuYW1lLCAiICsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICIgIGEzLmdpZCBhcyBlbmRhcmVhX2dpZCwgYTMubmFtZSBh
cyBlbmRhcmVhX25hbWUsIGEzLnNvcnRfbmFtZSBhcyBlbmRhcmVhX3NvcnRuYW1lIiArCisgICAg
ICAgICAgICAgICAgICAgICAgICAiIEZST00gYXJ0aXN0IGEgIiArCisgICAgICAgICAgICAgICAg
ICAgICAgICAiICBMRUZUIEpPSU4gYXJ0aXN0X25hbWUgbjAgT04gYS5uYW1lID0gbjAuaWQgIiAr
CisgICAgICAgICAgICAgICAgICAgICAgICAiICBMRUZUIEpPSU4gYXJ0aXN0X25hbWUgbjEgT04g
YS5zb3J0X25hbWUgPSBuMS5pZCAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIgIExFRlQg
Sk9JTiBhcnRpc3RfdHlwZSBPTiBhLnR5cGUgPSBhcnRpc3RfdHlwZS5pZCAiICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIgIExFRlQgSk9JTiBpc29fMzE2Nl8xIGkgb24gYS5hcmVhPWkuYXJl
YSIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiAgTEVGVCBKT0lOIGdlbmRlciBPTiBhLmdl
bmRlcj1nZW5kZXIuaWQgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAiICBMRUZUIEpPSU4g
YXJlYSBhMSBvbiBhLmFyZWEgPSBhMS5pZCIgKworICAgICAgICAgICAgICAgICAgICAgICAgIiAg
TEVGVCBKT0lOIGFyZWEgYTIgb24gYS5iZWdpbl9hcmVhID0gYTIuaWQiICsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICIgIExFRlQgSk9JTiBhcmVhIGEzIG9uIGEuZW5kX2FyZWEgPSBhMy5pZCIg
KworICAgICAgICAgICAgICAgICIgV0hFUkUgYS5pZCBCRVRXRUVOID8gQU5EID8iKTsKIAogICAg
ICAgICBhZGRQcmVwYXJlZFN0YXRlbWVudCgiSVBJQ09ERVMiLAogICAgICAgICAgICAgICAgICJT
RUxFQ1QgaXBpLCBhcnRpc3QgIiArCkBAIC0zMjMsNiArMzI5LDUyIEBACiAgICAgICAgICAgICBh
cnRpc3Quc2V0Q291bnRyeShjb3VudHJ5LnRvVXBwZXJDYXNlKExvY2FsZS5VUykpOwogICAgICAg
ICB9CiAKKyAgICAgICAgU3RyaW5nIGFyZWFJZCA9IHJzLmdldFN0cmluZygiYXJlYV9naWQiKTsK
KyAgICAgICAgaWYoYXJlYUlkIT1udWxsKSB7CisgICAgICAgICAgICBEZWZBcmVhRWxlbWVudElu
bmVyIGFyZWEgPSBvZi5jcmVhdGVEZWZBcmVhRWxlbWVudElubmVyKCk7CisgICAgICAgICAgICBh
cmVhLnNldElkKGFyZWFJZCk7CisgICAgICAgICAgICBTdHJpbmcgYXJlYU5hbWUgPSBycy5nZXRT
dHJpbmcoImFyZWFfbmFtZSIpOworICAgICAgICAgICAgZG9jLmFkZEZpZWxkT3JOb1ZhbHVlKEFy
dGlzdEluZGV4RmllbGQuQVJFQSwgYXJlYU5hbWUpOworICAgICAgICAgICAgYXJlYS5zZXROYW1l
KGFyZWFOYW1lKTsKKyAgICAgICAgICAgIFN0cmluZyBhcmVhU29ydE5hbWUgPSBycy5nZXRTdHJp
bmcoImFyZWFfc29ydG5hbWUiKTsKKyAgICAgICAgICAgIGFyZWEuc2V0U29ydE5hbWUoYXJlYVNv
cnROYW1lKTsKKyAgICAgICAgICAgIGFydGlzdC5zZXRBcmVhKGFyZWEpOworICAgICAgICB9Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgZG9jLmFkZEZpZWxkKEFydGlzdEluZGV4RmllbGQu
QVJFQSwgSW5kZXguTk9fVkFMVUUpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGJlZ2lu
QXJlYUlkID0gcnMuZ2V0U3RyaW5nKCJiZWdpbmFyZWFfZ2lkIik7CisgICAgICAgIGlmKGJlZ2lu
QXJlYUlkIT1udWxsKSB7CisgICAgICAgICAgICBEZWZBcmVhRWxlbWVudElubmVyIGFyZWEgPSBv
Zi5jcmVhdGVEZWZBcmVhRWxlbWVudElubmVyKCk7CisgICAgICAgICAgICBhcmVhLnNldElkKGJl
Z2luQXJlYUlkKTsKKyAgICAgICAgICAgIFN0cmluZyBhcmVhTmFtZSA9IHJzLmdldFN0cmluZygi
YmVnaW5hcmVhX25hbWUiKTsKKyAgICAgICAgICAgIGRvYy5hZGRGaWVsZE9yTm9WYWx1ZShBcnRp
c3RJbmRleEZpZWxkLkJFR0lOX0FSRUEsIGFyZWFOYW1lKTsKKyAgICAgICAgICAgIGFyZWEuc2V0
TmFtZShhcmVhTmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgYXJlYVNvcnROYW1lID0gcnMuZ2V0
U3RyaW5nKCJiZWdpbmFyZWFfc29ydG5hbWUiKTsKKyAgICAgICAgICAgIGFyZWEuc2V0U29ydE5h
bWUoYXJlYVNvcnROYW1lKTsKKyAgICAgICAgICAgIGFydGlzdC5zZXRCZWdpbkFyZWEoYXJlYSk7
CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkb2MuYWRkRmllbGQoQXJ0
aXN0SW5kZXhGaWVsZC5CRUdJTl9BUkVBLCBJbmRleC5OT19WQUxVRSk7CisgICAgICAgIH0KKwor
CisgICAgICAgIFN0cmluZyBlbmRBcmVhSWQgPSBycy5nZXRTdHJpbmcoImVuZGFyZWFfZ2lkIik7
CisgICAgICAgIGlmKGVuZEFyZWFJZCE9bnVsbCkgeworICAgICAgICAgICAgRGVmQXJlYUVsZW1l
bnRJbm5lciBhcmVhID0gb2YuY3JlYXRlRGVmQXJlYUVsZW1lbnRJbm5lcigpOworICAgICAgICAg
ICAgYXJlYS5zZXRJZChlbmRBcmVhSWQpOworICAgICAgICAgICAgU3RyaW5nIGFyZWFOYW1lID0g
cnMuZ2V0U3RyaW5nKCJlbmRhcmVhX25hbWUiKTsKKyAgICAgICAgICAgIGRvYy5hZGRGaWVsZE9y
Tm9WYWx1ZShBcnRpc3RJbmRleEZpZWxkLkVORF9BUkVBLCBhcmVhTmFtZSk7CisgICAgICAgICAg
ICBhcmVhLnNldE5hbWUoYXJlYU5hbWUpOworICAgICAgICAgICAgU3RyaW5nIGFyZWFTb3J0TmFt
ZSA9IHJzLmdldFN0cmluZygiZW5kYXJlYV9zb3J0bmFtZSIpOworICAgICAgICAgICAgYXJlYS5z
ZXRTb3J0TmFtZShhcmVhU29ydE5hbWUpOworICAgICAgICAgICAgYXJ0aXN0LnNldEVuZEFyZWEo
YXJlYSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkb2MuYWRkRmll
bGQoQXJ0aXN0SW5kZXhGaWVsZC5FTkRfQVJFQSwgSW5kZXguTk9fVkFMVUUpOworICAgICAgICB9
CisKICAgICAgICAgU3RyaW5nIGdlbmRlciA9IHJzLmdldFN0cmluZygiZ2VuZGVyIik7CiAgICAg
ICAgIGlmIChnZW5kZXIgIT0gbnVsbCkgewogICAgICAgICAgICAgZG9jLmFkZEZpZWxkKEFydGlz
dEluZGV4RmllbGQuR0VOREVSLCBnZW5kZXIpOwoKTW9kaWZpZWQ6IHNlYXJjaF9zZXJ2ZXIvdHJ1
bmsvaW5kZXgvc3JjL21haW4vamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0FydGlz
dEluZGV4RmllbGQuamF2YQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4
L3NyYy9tYWluL2phdmEvb3JnL211c2ljYnJhaW56L3NlYXJjaC9pbmRleC9BcnRpc3RJbmRleEZp
ZWxkLmphdmEJMjAxMy0wNi0wNSAwODowNzozNiBVVEMgKHJldiAxMzY5NykKKysrIHNlYXJjaF9z
ZXJ2ZXIvdHJ1bmsvaW5kZXgvc3JjL21haW4vamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2lu
ZGV4L0FydGlzdEluZGV4RmllbGQuamF2YQkyMDEzLTA2LTA1IDEwOjU5OjI0IFVUQyAocmV2IDEz
Njk4KQpAQCAtNTcsNiArNTcsOSBAQAogICAgIFNPUlROQU1FCSAgICAoInNvcnRuYW1lIiwJTXVz
aWNCcmFpbnpGaWVsZFR5cGVzLlRFWFRfTk9UX1NUT1JFRF9BTkFMWVpFRCksCiAgICAgVEFHCQkg
ICAgICAgICgidGFnIiwJCSAgICBNdXNpY0JyYWluekZpZWxkVHlwZXMuVEVYVF9OT1RfU1RPUkVE
X0FOQUxZWkVELCBuZXcgTXVzaWNicmFpbnpXaXRoUG9zR2FwQW5hbHl6ZXIoKSksCiAgICAgVFlQ
RQkJICAgICgidHlwZSIsCQlNdXNpY0JyYWluekZpZWxkVHlwZXMuVEVYVF9OT1RfU1RPUkVEX0FO
QUxZWkVEX05PX05PUk1TLCBuZXcgQ2FzZUluc2Vuc2l0aXZlS2V5d29yZEFuYWx5emVyKCkpLAor
ICAgIEFSRUEJCSAgICAoImFyZWEiLAkJTXVzaWNCcmFpbnpGaWVsZFR5cGVzLlRFWFRfTk9UX1NU
T1JFRF9BTkFMWVpFRCwgbmV3IE11c2ljYnJhaW56QW5hbHl6ZXIoKSksCisgICAgQkVHSU5fQVJF
QQkJKCJiZWdpbmFyZWEiLCAgIE11c2ljQnJhaW56RmllbGRUeXBlcy5URVhUX05PVF9TVE9SRURf
QU5BTFlaRUQsIG5ldyBNdXNpY2JyYWluekFuYWx5emVyKCkpLAorICAgIEVORF9BUkVBCQkoImVu
ZGFyZWEiLAkgICAgTXVzaWNCcmFpbnpGaWVsZFR5cGVzLlRFWFRfTk9UX1NUT1JFRF9BTkFMWVpF
RCwgbmV3IE11c2ljYnJhaW56QW5hbHl6ZXIoKSksCiAgICAgQVJUSVNUX1NUT1JFICAgICgiYXJ0
aXN0c3RvcmUiLCBNdXNpY0JyYWluekZpZWxkVHlwZXMuVEVYVF9TVE9SRURfTk9UX0lOREVYRUQp
LAogICAgIDsKIAoKTW9kaWZpZWQ6IHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvaW5kZXgvc3JjL21haW4v
amF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0xhYmVsSW5kZXguamF2YQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy9tYWluL2phdmEvb3JnL211c2lj
YnJhaW56L3NlYXJjaC9pbmRleC9MYWJlbEluZGV4LmphdmEJMjAxMy0wNi0wNSAwODowNzozNiBV
VEMgKHJldiAxMzY5NykKKysrIHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvaW5kZXgvc3JjL21haW4vamF2
YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0xhYmVsSW5kZXguamF2YQkyMDEzLTA2LTA1
IDEwOjU5OjI0IFVUQyAocmV2IDEzNjk4KQpAQCAtMTA0LDE1ICsxMDQsMTcgQEAKIAogCiAgICAg
ICAgIGFkZFByZXBhcmVkU3RhdGVtZW50KCJMQUJFTFMiLAotICAgICAgICAgICAgICAgICJTRUxF
Q1QgbGFiZWwuaWQsIGdpZCwgbjAubmFtZSBhcyBuYW1lLCBuMS5uYW1lIGFzIHNvcnRfbmFtZSwg
IiArCi0gICAgICAgICAgICAgICAgIiAgbGFiZWxfdHlwZS5uYW1lIGFzIHR5cGUsIGJlZ2luX2Rh
dGVfeWVhciwgYmVnaW5fZGF0ZV9tb250aCwgYmVnaW5fZGF0ZV9kYXksICIgKwotICAgICAgICAg
ICAgICAgICIgIGVuZF9kYXRlX3llYXIsIGVuZF9kYXRlX21vbnRoLCBlbmRfZGF0ZV9kYXksIGVu
ZGVkLCIgKwotICAgICAgICAgICAgICAgICIgIGNvbW1lbnQsIGxhYmVsX2NvZGUsIGxvd2VyKGku
Y29kZSkgYXMgY291bnRyeSAiICsKKyAgICAgICAgICAgICAgICAiU0VMRUNUIGxhYmVsLmlkLCBs
YWJlbC5naWQsIG4wLm5hbWUgYXMgbmFtZSwgbjEubmFtZSBhcyBzb3J0X25hbWUsICIgKworICAg
ICAgICAgICAgICAgICIgIGxhYmVsX3R5cGUubmFtZSBhcyB0eXBlLCBsYWJlbC5iZWdpbl9kYXRl
X3llYXIsIGxhYmVsLmJlZ2luX2RhdGVfbW9udGgsIGxhYmVsLmJlZ2luX2RhdGVfZGF5LCAiICsK
KyAgICAgICAgICAgICAgICAiICBsYWJlbC5lbmRfZGF0ZV95ZWFyLCBsYWJlbC5lbmRfZGF0ZV9t
b250aCwgbGFiZWwuZW5kX2RhdGVfZGF5LCBsYWJlbC5lbmRlZCwiICsKKyAgICAgICAgICAgICAg
ICAiICBjb21tZW50LCBsYWJlbF9jb2RlLCBsb3dlcihpLmNvZGUpIGFzIGNvdW50cnksICIgKwor
ICAgICAgICAgICAgICAgICIgIGExLmdpZCBhcyBhcmVhX2dpZCwgYTEubmFtZSBhcyBhcmVhX25h
bWUsIGExLnNvcnRfbmFtZSBhcyBhcmVhX3NvcnRuYW1lICIgKwogICAgICAgICAgICAgICAgICIg
RlJPTSBsYWJlbCAiICsKICAgICAgICAgICAgICAgICAiICBMRUZUIEpPSU4gbGFiZWxfbmFtZSBu
MCBPTiBsYWJlbC5uYW1lID0gbjAuaWQgIiArCiAgICAgICAgICAgICAgICAgIiAgTEVGVCBKT0lO
IGxhYmVsX25hbWUgbjEgT04gbGFiZWwuc29ydF9uYW1lID0gbjEuaWQgIiArCiAgICAgICAgICAg
ICAgICAgIiAgTEVGVCBKT0lOIGxhYmVsX3R5cGUgT04gbGFiZWwudHlwZSA9IGxhYmVsX3R5cGUu
aWQgIiArCiAgICAgICAgICAgICAgICAgIiAgTEVGVCBKT0lOIGlzb18zMTY2XzEgaSBvbiBsYWJl
bC5hcmVhPWkuYXJlYSIgKworICAgICAgICAgICAgICAgICIgIExFRlQgSk9JTiBhcmVhIGExIG9u
IGxhYmVsLmFyZWEgPSBhMS5pZCIgKwogICAgICAgICAgICAgICAgICIgV0hFUkUgbGFiZWwuaWQg
QkVUV0VFTiA/IEFORCA/Iik7CiAKICAgICAgICAgYWRkUHJlcGFyZWRTdGF0ZW1lbnQoIklQSUNP
REVTIiwKQEAgLTI3MCw2ICsyNzIsMjEgQEAKICAgICAgICAgICAgIGxhYmVsLnNldENvdW50cnko
Y291bnRyeS50b1VwcGVyQ2FzZShMb2NhbGUuVVMpKTsKICAgICAgICAgfQogCisgICAgICAgIFN0
cmluZyBhcmVhSWQgPSBycy5nZXRTdHJpbmcoImFyZWFfZ2lkIik7CisgICAgICAgIGlmKGFyZWFJ
ZCE9bnVsbCkgeworICAgICAgICAgICAgRGVmQXJlYUVsZW1lbnRJbm5lciBhcmVhID0gb2YuY3Jl
YXRlRGVmQXJlYUVsZW1lbnRJbm5lcigpOworICAgICAgICAgICAgYXJlYS5zZXRJZChhcmVhSWQp
OworICAgICAgICAgICAgU3RyaW5nIGFyZWFOYW1lID0gcnMuZ2V0U3RyaW5nKCJhcmVhX25hbWUi
KTsKKyAgICAgICAgICAgIGFyZWEuc2V0TmFtZShhcmVhTmFtZSk7CisgICAgICAgICAgICBkb2Mu
YWRkRmllbGRPck5vVmFsdWUoQXJ0aXN0SW5kZXhGaWVsZC5BUkVBLCBhcmVhTmFtZSk7CisgICAg
ICAgICAgICBTdHJpbmcgYXJlYVNvcnROYW1lID0gcnMuZ2V0U3RyaW5nKCJhcmVhX3NvcnRuYW1l
Iik7CisgICAgICAgICAgICBhcmVhLnNldFNvcnROYW1lKGFyZWFTb3J0TmFtZSk7CisgICAgICAg
ICAgICBsYWJlbC5zZXRBcmVhKGFyZWEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgZG9jLmFkZEZpZWxkKEFydGlzdEluZGV4RmllbGQuQVJFQSwgSW5kZXguTk9fVkFM
VUUpOworICAgICAgICB9CisKICAgICAgICAgYm9vbGVhbiBlbmRlZCA9IHJzLmdldEJvb2xlYW4o
ImVuZGVkIik7CiAgICAgICAgIGRvYy5hZGRGaWVsZE9yVW5rbm93bihMYWJlbEluZGV4RmllbGQu
RU5ERUQsIEJvb2xlYW4udG9TdHJpbmcoZW5kZWQpKTsKIAoKTW9kaWZpZWQ6IHNlYXJjaF9zZXJ2
ZXIvdHJ1bmsvaW5kZXgvc3JjL21haW4vamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4
L0xhYmVsSW5kZXhGaWVsZC5qYXZhCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNlYXJjaF9zZXJ2ZXIvdHJ1bmsv
aW5kZXgvc3JjL21haW4vamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0xhYmVsSW5k
ZXhGaWVsZC5qYXZhCTIwMTMtMDYtMDUgMDg6MDc6MzYgVVRDIChyZXYgMTM2OTcpCisrKyBzZWFy
Y2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy9tYWluL2phdmEvb3JnL211c2ljYnJhaW56L3NlYXJj
aC9pbmRleC9MYWJlbEluZGV4RmllbGQuamF2YQkyMDEzLTA2LTA1IDEwOjU5OjI0IFVUQyAocmV2
IDEzNjk4KQpAQCAtNTMsNiArNTMsNyBAQAogICAgIFNPUlROQU1FCSgic29ydG5hbWUiLAlNdXNp
Y0JyYWluekZpZWxkVHlwZXMuVEVYVF9OT1RfU1RPUkVEX0FOQUxZWkVEKSwKICAgICBUQUcJCSAg
ICAoInRhZyIsCQkgICAgTXVzaWNCcmFpbnpGaWVsZFR5cGVzLlRFWFRfTk9UX1NUT1JFRF9BTkFM
WVpFRCwgbmV3IE11c2ljYnJhaW56V2l0aFBvc0dhcEFuYWx5emVyKCkpLAogICAgIFRZUEUJCSgi
dHlwZSIsCQlNdXNpY0JyYWluekZpZWxkVHlwZXMuVEVYVF9OT1RfU1RPUkVEX0FOQUxZWkVEX05P
X05PUk1TLCBuZXcgQ2FzZUluc2Vuc2l0aXZlS2V5d29yZEFuYWx5emVyKCkpLAorICAgIEFSRUEJ
CSgiYXJlYSIsCQlNdXNpY0JyYWluekZpZWxkVHlwZXMuVEVYVF9OT1RfU1RPUkVEX0FOQUxZWkVE
LCBuZXcgTXVzaWNicmFpbnpBbmFseXplcigpKSwKICAgICBMQUJFTF9TVE9SRSAoImxhYmVsc3Rv
cmUiLCAgTXVzaWNCcmFpbnpGaWVsZFR5cGVzLlRFWFRfU1RPUkVEX05PVF9JTkRFWEVEKSwKICAg
ICA7CiAKCk1vZGlmaWVkOiBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy90ZXN0L2phdmEv
b3JnL211c2ljYnJhaW56L3NlYXJjaC9pbmRleC9BcnRpc3RJbmRleFRlc3QuamF2YQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBzZWFyY2hfc2VydmVyL3RydW5rL2luZGV4L3NyYy90ZXN0L2phdmEvb3JnL211c2lj
YnJhaW56L3NlYXJjaC9pbmRleC9BcnRpc3RJbmRleFRlc3QuamF2YQkyMDEzLTA2LTA1IDA4OjA3
OjM2IFVUQyAocmV2IDEzNjk3KQorKysgc2VhcmNoX3NlcnZlci90cnVuay9pbmRleC9zcmMvdGVz
dC9qYXZhL29yZy9tdXNpY2JyYWluei9zZWFyY2gvaW5kZXgvQXJ0aXN0SW5kZXhUZXN0LmphdmEJ
MjAxMy0wNi0wNSAxMDo1OToyNCBVVEMgKHJldiAxMzY5OCkKQEAgLTE1LDYgKzE1LDcgQEAKIAog
aW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydEVxdWFsczsKIGltcG9ydCBzdGF0
aWMgb3JnLmp1bml0LkFzc2VydC5hc3NlcnROb3ROdWxsOworaW1wb3J0IHN0YXRpYyBvcmcuanVu
aXQuQXNzZXJ0LmFzc2VydE51bGw7CiAKIHB1YmxpYyBjbGFzcyBBcnRpc3RJbmRleFRlc3QgZXh0
ZW5kcyBBYnN0cmFjdEluZGV4VGVzdCB7CiAKQEAgLTM5LDEyICs0MCwxMyBAQAogICAgICAgICBT
dGF0ZW1lbnQgc3RtdCA9IGNvbm4uY3JlYXRlU3RhdGVtZW50KCk7CiAKICAgICAgICAgc3RtdC5h
ZGRCYXRjaCgiSU5TRVJUIElOVE8gYXJ0aXN0X25hbWUgKGlkLCBuYW1lKSBWQUxVRVMgKDEsICdG
YXJtaW5nIEluY2lkZW50JykiKTsKLSAgICAgICAgc3RtdC5hZGRCYXRjaCgiSU5TRVJUIElOVE8g
YXJ0aXN0IChpZCwgbmFtZSwgZ2lkLCBzb3J0X25hbWUsIGJlZ2luX2RhdGVfeWVhciwgYmVnaW5f
ZGF0ZV9tb250aCwgdHlwZSwgZ2VuZGVyLCBhcmVhLGVuZGVkKSIgKwotICAgICAgICAgICAgIiBW
QUxVRVMgKDUyMTMxNiwgMSwgJzQzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4OWUzNGIzNics
IDEsIDE5OTksIDQsIDIsIDEsIDEsdHJ1ZSkiKTsKKyAgICAgICAgc3RtdC5hZGRCYXRjaCgiSU5T
RVJUIElOVE8gYXJ0aXN0IChpZCwgbmFtZSwgZ2lkLCBzb3J0X25hbWUsIGJlZ2luX2RhdGVfeWVh
ciwgYmVnaW5fZGF0ZV9tb250aCwgdHlwZSwgZ2VuZGVyLCBhcmVhLGJlZ2luX2FyZWEsZW5kZWQp
IiArCisgICAgICAgICAgICAiIFZBTFVFUyAoNTIxMzE2LCAxLCAnNDMwMmUyNjQtMWNmMC00ZDFm
LWFjYTctMmE2Zjg5ZTM0YjM2JywgMSwgMTk5OSwgNCwgMiwgMSwgMSwzOCx0cnVlKSIpOwogICAg
ICAgICBzdG10LmFkZEJhdGNoKCJJTlNFUlQgSU5UTyBhcnRpc3RfaXBpIChhcnRpc3QsaXBpKSB2
YWx1ZXMoNTIxMzE2LCcxMDAwMScpIik7Ci0gICAgICAgIHN0bXQuYWRkQmF0Y2goIklOU0VSVCBJ
TlRPIGFyZWEgKGlkLCBuYW1lKSBWQUxVRVMgKDEsICdBZmdoYW5pc3RhbicpIik7CisgICAgICAg
IHN0bXQuYWRkQmF0Y2goIklOU0VSVCBJTlRPIGFyZWEgKGlkLCBnaWQsIG5hbWUsIHNvcnRfbmFt
ZSkgVkFMVUVTICgxLCAnNDMwMmUyNjQtMWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2JywnQWZn
aGFuaXN0YW4nLCdBZmdoYW5pc3RhbicpIik7CiAgICAgICAgIHN0bXQuYWRkQmF0Y2goIklOU0VS
VCBJTlRPIGlzb18zMTY2XzEgKGFyZWEsIGNvZGUpIFZBTFVFUyAoMSwgJ0FGJykiKTsKLQorICAg
ICAgICBzdG10LmFkZEJhdGNoKCJJTlNFUlQgSU5UTyBhcmVhIChpZCwgZ2lkLCBuYW1lLCBzb3J0
X25hbWUpIFZBTFVFUyAoMzgsICdiOGNhYTY5Mi03MDRkLTQxMmItYTQxMC00ZmJjZjViOWM3OTYn
LCdDYW5hZGEnLCdDYW5hZGEnKSIpOworICAgICAgICBzdG10LmFkZEJhdGNoKCJJTlNFUlQgSU5U
TyBpc29fMzE2Nl8xIChhcmVhLCBjb2RlKSBWQUxVRVMgKDM4LCAnQ0EnKSIpOwogICAgICAgICBz
dG10LmV4ZWN1dGVCYXRjaCgpOwogICAgICAgICBzdG10LmNsb3NlKCk7CiAgICAgfQpAQCAtNTc1
LDggKzU3Nyw2NCBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgLyoqCisgICAgICoKKyAgICAg
KiBAdGhyb3dzIEV4Y2VwdGlvbgorICAgICAqLworICAgIEBUZXN0CisgICAgcHVibGljIHZvaWQg
dGVzdEFyZWEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKIAorICAgICAgICBhZGRBcnRpc3RPbmUoKTsK
KyAgICAgICAgUkFNRGlyZWN0b3J5IHJhbURpciA9IG5ldyBSQU1EaXJlY3RvcnkoKTsKKyAgICAg
ICAgY3JlYXRlSW5kZXgocmFtRGlyKTsKKworICAgICAgICBJbmRleFJlYWRlciBpciA9IERpcmVj
dG9yeVJlYWRlci5vcGVuKHJhbURpcik7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBpci5udW1E
b2NzKCkpOworICAgICAgICB7CisgICAgICAgICAgICBjaGVja1Rlcm0oaXIsIEFydGlzdEluZGV4
RmllbGQuQVJFQSwgImFmZ2hhbmlzdGFuIik7CisgICAgICAgIH0KKyAgICAgICAgaXIuY2xvc2Uo
KTsKKyAgICB9CisKICAgICAvKioKKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uCisg
ICAgICovCisgICAgQFRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0QmVnaW5BcmVhKCkgdGhyb3dz
IEV4Y2VwdGlvbiB7CisKKyAgICAgICAgYWRkQXJ0aXN0T25lKCk7CisgICAgICAgIFJBTURpcmVj
dG9yeSByYW1EaXIgPSBuZXcgUkFNRGlyZWN0b3J5KCk7CisgICAgICAgIGNyZWF0ZUluZGV4KHJh
bURpcik7CisKKyAgICAgICAgSW5kZXhSZWFkZXIgaXIgPSBEaXJlY3RvcnlSZWFkZXIub3Blbihy
YW1EaXIpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgaXIubnVtRG9jcygpKTsKKyAgICAgICAg
eworICAgICAgICAgICAgY2hlY2tUZXJtKGlyLCBBcnRpc3RJbmRleEZpZWxkLkJFR0lOX0FSRUEs
ICJjYW5hZGEiKTsKKyAgICAgICAgfQorICAgICAgICBpci5jbG9zZSgpOworICAgIH0KKworICAg
IC8qKgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBAVGVz
dAorICAgIHB1YmxpYyB2b2lkIHRlc3ROb0VuZEFyZWEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwor
ICAgICAgICBhZGRBcnRpc3RPbmUoKTsKKyAgICAgICAgUkFNRGlyZWN0b3J5IHJhbURpciA9IG5l
dyBSQU1EaXJlY3RvcnkoKTsKKyAgICAgICAgY3JlYXRlSW5kZXgocmFtRGlyKTsKKworICAgICAg
ICBJbmRleFJlYWRlciBpciA9IERpcmVjdG9yeVJlYWRlci5vcGVuKHJhbURpcik7CisgICAgICAg
IGFzc2VydEVxdWFscygyLCBpci5udW1Eb2NzKCkpOworICAgICAgICB7CisgICAgICAgICAgICBj
aGVja1Rlcm0oaXIsIEFydGlzdEluZGV4RmllbGQuRU5EX0FSRUEsICItIik7CisgICAgICAgIH0K
KyAgICAgICAgaXIuY2xvc2UoKTsKKyAgICB9CisKKyAgICAvKioKICAgICAgKiBAdGhyb3dzIEV4
Y2VwdGlvbiBleGNlcHRpb24KICAgICAgKi8KICAgICBAVGVzdApAQCAtNTk1LDggKzY1MywxNyBA
QAogICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCI0MzAyZTI2NC0xY2YwLTRkMWYtYWNhNy0yYTZm
ODllMzRiMzYiLCBhcnRpc3QuZ2V0SWQoKSk7CiAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkZh
cm1pbmcgSW5jaWRlbnQiLCBhcnRpc3QuZ2V0TmFtZSgpKTsKICAgICAgICAgICAgIGFzc2VydEVx
dWFscygiQUYiLCBhcnRpc3QuZ2V0Q291bnRyeSgpKTsKKyAgICAgICAgICAgIGFzc2VydE5vdE51
bGwoYXJ0aXN0LmdldEFyZWEoKSk7CiAKKyAgICAgICAgICAgIGFzc2VydEVxdWFscygiNDMwMmUy
NjQtMWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2IixhcnRpc3QuZ2V0QXJlYSgpLmdldElkKCkp
OworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJBZmdoYW5pc3RhbiIsYXJ0aXN0LmdldEFyZWEo
KS5nZXROYW1lKCkpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJBZmdoYW5pc3RhbiIsYXJ0
aXN0LmdldEFyZWEoKS5nZXRTb3J0TmFtZSgpKTsKIAorICAgICAgICAgICAgYXNzZXJ0RXF1YWxz
KCJiOGNhYTY5Mi03MDRkLTQxMmItYTQxMC00ZmJjZjViOWM3OTYiLCBhcnRpc3QuZ2V0QmVnaW5B
cmVhKCkuZ2V0SWQoKSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkNhbmFkYSIsYXJ0aXN0
LmdldEJlZ2luQXJlYSgpLmdldE5hbWUoKSk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIkNh
bmFkYSIsYXJ0aXN0LmdldEJlZ2luQXJlYSgpLmdldFNvcnROYW1lKCkpOworCisgICAgICAgICAg
ICBhc3NlcnROdWxsKGFydGlzdC5nZXRFbmRBcmVhKCkpOwogICAgICAgICB9CiAgICAgICAgIGly
LmNsb3NlKCk7CiAgICAgfQoKTW9kaWZpZWQ6IHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvaW5kZXgvc3Jj
L3Rlc3QvamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL2luZGV4L0xhYmVsSW5kZXhUZXN0Lmph
dmEKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gc2VhcmNoX3NlcnZlci90cnVuay9pbmRleC9zcmMvdGVzdC9qYXZh
L29yZy9tdXNpY2JyYWluei9zZWFyY2gvaW5kZXgvTGFiZWxJbmRleFRlc3QuamF2YQkyMDEzLTA2
LTA1IDA4OjA3OjM2IFVUQyAocmV2IDEzNjk3KQorKysgc2VhcmNoX3NlcnZlci90cnVuay9pbmRl
eC9zcmMvdGVzdC9qYXZhL29yZy9tdXNpY2JyYWluei9zZWFyY2gvaW5kZXgvTGFiZWxJbmRleFRl
c3QuamF2YQkyMDEzLTA2LTA1IDEwOjU5OjI0IFVUQyAocmV2IDEzNjk4KQpAQCAtNjYsNyArNjYs
NyBAQAogCiAgICAgICAgIFN0YXRlbWVudCBzdG10ID0gY29ubi5jcmVhdGVTdGF0ZW1lbnQoKTsK
IAotICAgICAgICBzdG10LmFkZEJhdGNoKCJJTlNFUlQgSU5UTyBhcmVhIChpZCwgbmFtZSkgVkFM
VUVTICgzOCwgJ0NhbmFkYScpIik7CisgICAgICAgIHN0bXQuYWRkQmF0Y2goIklOU0VSVCBJTlRP
IGFyZWEgKGlkLCBnaWQsIG5hbWUsIHNvcnRfbmFtZSkgVkFMVUVTICgzOCwgJ2I4Y2FhNjkyLTcw
NGQtNDEyYi1hNDEwLTRmYmNmNWI5Yzc5NicsJ0NhbmFkYScsJ0NhbmFkYScpIik7CiAgICAgICAg
IHN0bXQuYWRkQmF0Y2goIklOU0VSVCBJTlRPIGlzb18zMTY2XzEgKGFyZWEsIGNvZGUpIFZBTFVF
UyAoMzgsICdDQScpIik7CiAJICAgIHN0bXQuYWRkQmF0Y2goIklOU0VSVCBJTlRPIGxhYmVsX25h
bWUgKGlkLCBuYW1lKSBWQUxVRVMgKDMsICdNdXNpY0JyYWlueiBEYXRhIFRlc3RpbmcgTGFiZWwn
KSIpOwogCSAgICBzdG10LmFkZEJhdGNoKCJJTlNFUlQgSU5UTyBsYWJlbF9uYW1lIChpZCwgbmFt
ZSkgVkFMVUVTICg0LCAnRGF0YSBUZXN0aW5nIExhYmVsLCBNdXNpY0JyYWlueicpIik7CkBAIC00
MTgsNiArNDE4LDIxIEBACiAgICAgICAgIGlyLmNsb3NlKCk7CiAgICAgfQogCisgICAgQFRlc3QK
KyAgICBwdWJsaWMgdm9pZCB0ZXN0SW5kZXhMYWJlbFdpdGhBcmVhKCkgdGhyb3dzIEV4Y2VwdGlv
biB7CisKKyAgICAgICAgYWRkTGFiZWxUd28oKTsKKyAgICAgICAgUkFNRGlyZWN0b3J5IHJhbURp
ciA9IG5ldyBSQU1EaXJlY3RvcnkoKTsKKyAgICAgICAgY3JlYXRlSW5kZXgocmFtRGlyKTsKKwor
ICAgICAgICBJbmRleFJlYWRlciBpciA9IERpcmVjdG9yeVJlYWRlci5vcGVuKHJhbURpcik7Cisg
ICAgICAgIGFzc2VydEVxdWFscygyLCBpci5udW1Eb2NzKCkpOworICAgICAgICB7CisgICAgICAg
ICAgICBjaGVja1Rlcm0oaXIsIExhYmVsSW5kZXhGaWVsZC5BUkVBLCAiY2FuYWRhIik7CisgICAg
ICAgIH0KKyAgICAgICAgaXIuY2xvc2UoKTsKKyAgICB9CisKICAgICAvKioKICAgICAgKiBAdGhy
b3dzIEV4Y2VwdGlvbiBleGNlcHRpb24KICAgICAgKi8KQEAgLTQ3Myw3ICs0ODgsMTAgQEAKICAg
ICAgICAgICAgIGFzc2VydEVxdWFscygiMjAwOS0wMS0wMSIsbGlmZXNwYW4uZ2V0QmVnaW4oKSk7
CiAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoImZhbHNlIixsaWZlc3Bhbi5nZXRFbmRlZCgpKTsK
ICAgICAgICAgICAgIGFzc2VydEVxdWFscygiMjAwOS0wNCIsbGlmZXNwYW4uZ2V0RW5kKCkpOwot
CisgICAgICAgICAgICBhc3NlcnROb3ROdWxsKGxhYmVsLmdldEFyZWEoKSk7CisgICAgICAgICAg
ICBhc3NlcnRFcXVhbHMoImI4Y2FhNjkyLTcwNGQtNDEyYi1hNDEwLTRmYmNmNWI5Yzc5NiIsbGFi
ZWwuZ2V0QXJlYSgpLmdldElkKCkpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJDYW5hZGEi
LGxhYmVsLmdldEFyZWEoKS5nZXROYW1lKCkpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCJD
YW5hZGEiLGxhYmVsLmdldEFyZWEoKS5nZXRTb3J0TmFtZSgpKTsKICAgICAgICAgfQogICAgICAg
ICBpci5jbG9zZSgpOwogICAgIH0KCk1vZGlmaWVkOiBzZWFyY2hfc2VydmVyL3RydW5rL3NlcnZs
ZXQvc3JjL3Rlc3QvamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL3NlcnZsZXQvRmluZEFydGlz
dFRlc3QuamF2YQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzZWFyY2hfc2VydmVyL3RydW5rL3NlcnZsZXQvc3Jj
L3Rlc3QvamF2YS9vcmcvbXVzaWNicmFpbnovc2VhcmNoL3NlcnZsZXQvRmluZEFydGlzdFRlc3Qu
amF2YQkyMDEzLTA2LTA1IDA4OjA3OjM2IFVUQyAocmV2IDEzNjk3KQorKysgc2VhcmNoX3NlcnZl
ci90cnVuay9zZXJ2bGV0L3NyYy90ZXN0L2phdmEvb3JnL211c2ljYnJhaW56L3NlYXJjaC9zZXJ2
bGV0L0ZpbmRBcnRpc3RUZXN0LmphdmEJMjAxMy0wNi0wNSAxMDo1OToyNCBVVEMgKHJldiAxMzY5
OCkKQEAgLTczLDYgKzczLDIzIEBACiAgICAgICAgICAgICBhcnRpc3Quc2V0VHlwZSgiR3JvdXAi
KTsKICAgICAgICAgICAgIGFydGlzdC5zZXREaXNhbWJpZ3VhdGlvbigidGhlIHJlYWwgb25lIik7
CiAgICAgICAgICAgICBhcnRpc3Quc2V0Q291bnRyeSgiQUYiKTsKKworICAgICAgICAgICAgRGVm
QXJlYUVsZW1lbnRJbm5lciBhcmVhID0gIG9mLmNyZWF0ZURlZkFyZWFFbGVtZW50SW5uZXIoKTsK
KyAgICAgICAgICAgIGFyZWEuc2V0SWQoIjUzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4OWUz
NGIzNiIpOworICAgICAgICAgICAgYXJlYS5zZXROYW1lKCJBZmdoYW5pc3RhbiIpOworICAgICAg
ICAgICAgYXJlYS5zZXRTb3J0TmFtZSgiQWZnaGFuaXN0YW4iKTsKKyAgICAgICAgICAgIGFydGlz
dC5zZXRBcmVhKGFyZWEpOworICAgICAgICAgICAgZG9jLmFkZEZpZWxkKEFydGlzdEluZGV4Rmll
bGQuQVJFQSwgIkFmZ2hhbmlzdGFuIik7CisKKyAgICAgICAgICAgIERlZkFyZWFFbGVtZW50SW5u
ZXIgYmVnaW5BcmVhID0gIG9mLmNyZWF0ZURlZkFyZWFFbGVtZW50SW5uZXIoKTsKKyAgICAgICAg
ICAgIGJlZ2luQXJlYS5zZXRJZCgiNjMwMmUyNjQtMWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2
Iik7CisgICAgICAgICAgICBiZWdpbkFyZWEuc2V0TmFtZSgiQ2FuYWRhIik7CisgICAgICAgICAg
ICBiZWdpbkFyZWEuc2V0U29ydE5hbWUoIkNhbmFkYSIpOworICAgICAgICAgICAgYXJ0aXN0LnNl
dEJlZ2luQXJlYShiZWdpbkFyZWEpOworICAgICAgICAgICAgZG9jLmFkZEZpZWxkKEFydGlzdElu
ZGV4RmllbGQuQkVHSU5fQVJFQSwgIkNhbmFkYSIpOworCisgICAgICAgICAgICBkb2MuYWRkRmll
bGQoQXJ0aXN0SW5kZXhGaWVsZC5FTkRfQVJFQSwgIi0iKTsKKwogICAgICAgICAgICAgYXJ0aXN0
LnNldEdlbmRlcigibWFsZSIpOwogICAgICAgICAgICAgVGFnTGlzdCB0YWdMaXN0ID0gb2YuY3Jl
YXRlVGFnTGlzdCgpOwogICAgICAgICAgICAgVGFnIHRhZyA9IG9mLmNyZWF0ZVRhZygpOwpAQCAt
MTk3LDYgKzIxNCwyOCBAQAogICAgIH0KIAogICAgIEBUZXN0CisgICAgcHVibGljIHZvaWQgdGVz
dEZpbmRBcnRpc3RCeUFyZWEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgUmVzdWx0cyBy
ZXMgPSBzcy5zZWFyY2goImFyZWE6XCJBZmdoYW5pc3RhblwiIiwgMCwgMTApOworICAgICAgICBh
c3NlcnRFcXVhbHMoMSwgcmVzLmdldFRvdGFsSGl0cygpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxz
KCI0MzAyZTI2NC0xY2YwLTRkMWYtYWNhNy0yYTZmODllMzRiMzYiLCBnZXRBcnRpc3RJZChyZXMu
cmVzdWx0cy5nZXQoMCkuZ2V0RG9jKCkpKTsKKyAgICB9CisKKyAgICBAVGVzdAorICAgIHB1Ymxp
YyB2b2lkIHRlc3RGaW5kQXJ0aXN0QnlCZWdpbkFyZWEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAg
ICAgICAgUmVzdWx0cyByZXMgPSBzcy5zZWFyY2goImJlZ2luYXJlYTpcIkNhbmFkYVwiIiwgMCwg
MTApOworICAgICAgICBhc3NlcnRFcXVhbHMoMSwgcmVzLmdldFRvdGFsSGl0cygpKTsKKyAgICAg
ICAgYXNzZXJ0RXF1YWxzKCI0MzAyZTI2NC0xY2YwLTRkMWYtYWNhNy0yYTZmODllMzRiMzYiLCBn
ZXRBcnRpc3RJZChyZXMucmVzdWx0cy5nZXQoMCkuZ2V0RG9jKCkpKTsKKyAgICB9CisKKyAgICBA
VGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kQXJ0aXN0QnlOb0VuZEFyZWEoKSB0aHJvd3Mg
RXhjZXB0aW9uIHsKKyAgICAgICAgUmVzdWx0cyByZXMgPSBzcy5zZWFyY2goImVuZGFyZWE6XCIt
XCIiLCAwLCAxMCk7CisgICAgICAgIGFzc2VydEVxdWFscygxLCByZXMuZ2V0VG90YWxIaXRzKCkp
OworICAgICAgICBhc3NlcnRFcXVhbHMoIjQzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4OWUz
NGIzNiIsIGdldEFydGlzdElkKHJlcy5yZXN1bHRzLmdldCgwKS5nZXREb2MoKSkpOworICAgIH0K
KworCisgICAgQFRlc3QKICAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZEFydGlzdERpc21heFNpbmds
ZVRlcm0oKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAgUmVzdWx0cyByZXMgPSBzZC5zZWFy
Y2goIkZhcm1pbmciLCAwLCAxMCk7CiAgICAgICAgIGFzc2VydEVxdWFscygxLCByZXMuZ2V0VG90
YWxIaXRzKCkpOwpAQCAtNDQ0LDYgKzQ4MywxMCBAQAogICAgICAgICBhc3NlcnRUcnVlKG91dHB1
dC5jb250YWlucygiZ8O8dGg8L25hbWU+IikpOwogICAgICAgICBhc3NlcnRGYWxzZShvdXRwdXQu
Y29udGFpbnMoImFsaWFzIikpOwogICAgICAgICBhc3NlcnRGYWxzZShvdXRwdXQuY29udGFpbnMo
ImRpc2FtYnVnYXRpb24iKSk7CisgICAgICAgIGFzc2VydFRydWUob3V0cHV0LmNvbnRhaW5zKCI8
YXJlYSBpZD1cIjUzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4OWUzNGIzNlwiPjxuYW1lPkFm
Z2hhbmlzdGFuPC9uYW1lPjxzb3J0LW5hbWU+QWZnaGFuaXN0YW48L3NvcnQtbmFtZT48L2FyZWE+
IikpOworICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygiPGJlZ2luLWFyZWEgaWQ9
XCI2MzAyZTI2NC0xY2YwLTRkMWYtYWNhNy0yYTZmODllMzRiMzZcIj48bmFtZT5DYW5hZGE8L25h
bWU+PHNvcnQtbmFtZT5DYW5hZGE8L3NvcnQtbmFtZT48L2JlZ2luLWFyZWE+IikpOworICAgICAg
ICBhc3NlcnRGYWxzZShvdXRwdXQuY29udGFpbnMoImVuZC1hcmVhIikpOworCiAgICAgfQogCiAg
ICAgLyoqCkBAIC01NDMsNiArNTg2LDEzIEBACiAgICAgICAgIGFzc2VydFRydWUob3V0cHV0LmNv
bnRhaW5zKCJcImNvdW50cnlcIjpcIkFGXCIiKSk7CiAgICAgICAgIGFzc2VydFRydWUob3V0cHV0
LmNvbnRhaW5zKCJcImdlbmRlclwiOlwibWFsZVwiIikpOwogICAgICAgICBhc3NlcnRUcnVlKG91
dHB1dC5jb250YWlucygiXCJ0YWdcIjpbe1wiY291bnRcIjo1LFwibmFtZVwiOlwidGhyYXNoXCJ9
LHtcImNvdW50XCI6MTEsXCJuYW1lXCI6XCJnw7x0aFwifSIpKTsKKyAgICAgICAgYXNzZXJ0VHJ1
ZShvdXRwdXQuY29udGFpbnMoIlwiaWRcIjpcIjUzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4
OWUzNGIzNlwiLCIpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwibmFt
ZVwiOlwiQWZnaGFuaXN0YW5cIiwiKSk7CisgICAgICAgIGFzc2VydFRydWUob3V0cHV0LmNvbnRh
aW5zKCJcInNvcnQtbmFtZVwiOlwiQWZnaGFuaXN0YW5cIiIpKTsKKyAgICAgICAgYXNzZXJ0VHJ1
ZShvdXRwdXQuY29udGFpbnMoIlwiaWRcIjpcIjYzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4
OWUzNGIzNlwiLCIpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwibmFt
ZVwiOlwiQ2FuYWRhXCIsIikpOworICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygi
XCJzb3J0LW5hbWVcIjpcIkNhbmFkYVwiIikpOworCiAgICAgfQogCiAKQEAgLTU5MCw2ICs2NDAs
MTIgQEAKICAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwibmFtZVwiOlwiZ8O8
dGhcIiIpKTsKICAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwiY291bnRcIjox
IikpOwogICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygiXCJvZmZzZXRcIjowIikp
OworICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygiXCJpZFwiOlwiNTMwMmUyNjQt
MWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2XCIsIikpOworICAgICAgICBhc3NlcnRUcnVlKG91
dHB1dC5jb250YWlucygiXCJuYW1lXCI6XCJBZmdoYW5pc3RhblwiLCIpKTsKKyAgICAgICAgYXNz
ZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwic29ydC1uYW1lXCI6XCJBZmdoYW5pc3RhblwiIikp
OworICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygiXCJpZFwiOlwiNjMwMmUyNjQt
MWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2XCIsIikpOworICAgICAgICBhc3NlcnRUcnVlKG91
dHB1dC5jb250YWlucygiXCJuYW1lXCI6XCJDYW5hZGFcIiwiKSk7CisgICAgICAgIGFzc2VydFRy
dWUob3V0cHV0LmNvbnRhaW5zKCJcInNvcnQtbmFtZVwiOlwiQ2FuYWRhXCIiKSk7CiAKICAgICB9
CiAKCk1vZGlmaWVkOiBzZWFyY2hfc2VydmVyL3RydW5rL3NlcnZsZXQvc3JjL3Rlc3QvamF2YS9v
cmcvbXVzaWNicmFpbnovc2VhcmNoL3NlcnZsZXQvRmluZExhYmVsVGVzdC5qYXZhCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvc2VydmxldC9zcmMvdGVzdC9qYXZhL29yZy9tdXNp
Y2JyYWluei9zZWFyY2gvc2VydmxldC9GaW5kTGFiZWxUZXN0LmphdmEJMjAxMy0wNi0wNSAwODow
NzozNiBVVEMgKHJldiAxMzY5NykKKysrIHNlYXJjaF9zZXJ2ZXIvdHJ1bmsvc2VydmxldC9zcmMv
dGVzdC9qYXZhL29yZy9tdXNpY2JyYWluei9zZWFyY2gvc2VydmxldC9GaW5kTGFiZWxUZXN0Lmph
dmEJMjAxMy0wNi0wNSAxMDo1OToyNCBVVEMgKHJldiAxMzY5OCkKQEAgLTgwLDYgKzgwLDEzIEBA
CiAgICAgICAgICAgICBkb2MuYWRkRmllbGQoTGFiZWxJbmRleEZpZWxkLkNPVU5UUlksICJHQiIp
OwogICAgICAgICAgICAgbGFiZWwuc2V0Q291bnRyeSgiR0IiKTsKIAorICAgICAgICAgICAgRGVm
QXJlYUVsZW1lbnRJbm5lciBhcmVhID0gIG9mLmNyZWF0ZURlZkFyZWFFbGVtZW50SW5uZXIoKTsK
KyAgICAgICAgICAgIGFyZWEuc2V0SWQoIjUzMDJlMjY0LTFjZjAtNGQxZi1hY2E3LTJhNmY4OWUz
NGIzNiIpOworICAgICAgICAgICAgYXJlYS5zZXROYW1lKCJVbml0ZWQgS2luZ2RvbSIpOworICAg
ICAgICAgICAgYXJlYS5zZXRTb3J0TmFtZSgiS2luZ2RvbSBVbml0ZWQiKTsKKyAgICAgICAgICAg
IGxhYmVsLnNldEFyZWEoYXJlYSk7CisgICAgICAgICAgICBkb2MuYWRkRmllbGQoQXJ0aXN0SW5k
ZXhGaWVsZC5BUkVBLCAiVW5pdGVkIEtpbmdkb20iKTsKKwogICAgICAgICAgICAgZG9jLmFkZEZp
ZWxkKExhYmVsSW5kZXhGaWVsZC5UQUcsICJkYW5jZSIpOwogICAgICAgICAgICAgVGFnTGlzdCB0
YWdMaXN0ID0gb2YuY3JlYXRlVGFnTGlzdCgpOwogICAgICAgICAgICAgVGFnIHRhZyA9IG9mLmNy
ZWF0ZVRhZygpOwpAQCAtMTk1LDYgKzIwMiwxNiBAQAogICAgIH0KIAogICAgIEBUZXN0CisgICAg
cHVibGljIHZvaWQgdGVzdEZpbmRMYWJlbEJ5QXJlYSgpIHRocm93cyBFeGNlcHRpb24geworICAg
ICAgICBSZXN1bHRzIHJlcyA9IHNzLnNlYXJjaCgiYXJlYTpcIlVuaXRlZCBLaW5nZG9tXCIiLCAw
LCAxMCk7CisgICAgICAgIGFzc2VydEVxdWFscygxLCByZXMuZ2V0VG90YWxIaXRzKCkpOworICAg
ICAgICBSZXN1bHQgcmVzdWx0ID0gcmVzLnJlc3VsdHMuZ2V0KDApOworICAgICAgICBNYkRvY3Vt
ZW50IGRvYyA9IHJlc3VsdC5nZXREb2MoKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJmZjU3MWZm
NC0wNGNiLTRiOWMtOGExYy0zNTRjMzMwZjg2M2MiLCBkb2MuZ2V0KExhYmVsSW5kZXhGaWVsZC5M
QUJFTF9JRCkpOworICAgICAgICBhc3NlcnRFcXVhbHMoIkpvY2tleSBTbHV0IiwgZG9jLmdldChM
YWJlbEluZGV4RmllbGQuTEFCRUwpKTsKKyAgICB9CisKKyAgICBAVGVzdAogICAgIHB1YmxpYyB2
b2lkIHRlc3RGaW5kTGFiZWxCeURpc21heDEoKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICAgICAg
UmVzdWx0cyByZXMgPSBzZC5zZWFyY2goIkpvY2tleSBTbHV0IiwgMCwgMTApOwogICAgICAgICBh
c3NlcnRFcXVhbHMoMSwgcmVzLmdldFRvdGFsSGl0cygpKTsKQEAgLTQ4NCw2ICs1MDEsNyBAQAog
ICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygiPGVuZGVkPnRydWU8L2VuZGVkPiIp
KTsKICAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoImRhbmNlPC9uYW1lPiIpKTsK
ICAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIjxpcGktbGlzdD48aXBpPjEwMDE8
L2lwaT48L2lwaS1saXN0PiIpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMo
IjxhcmVhIGlkPVwiNTMwMmUyNjQtMWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2XCI+PG5hbWU+
VW5pdGVkIEtpbmdkb208L25hbWU+PHNvcnQtbmFtZT5LaW5nZG9tIFVuaXRlZDwvc29ydC1uYW1l
PjwvYXJlYT4iKSk7CiAgICAgfQogCiAgICAgQFRlc3QKQEAgLTU0Nyw2ICs1NjUsNyBAQAogICAg
ICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygiXCJjb3VudHJ5XCI6XCJHQlwiIikpOwog
ICAgICAgICBhc3NlcnRUcnVlKG91dHB1dC5jb250YWlucygidGFnLWxpc3RcIjp7XCJ0YWdcIjpb
e1wiY291bnRcIjoyMixcIm5hbWVcIjpcImRhbmNlXCJ9IikpOwogICAgICAgICBhc3NlcnRUcnVl
KG91dHB1dC5jb250YWlucygiXCJlbmRlZFwiOlwidHJ1ZVwiIikpOworICAgICAgICBhc3NlcnRU
cnVlKG91dHB1dC5jb250YWlucygiXCJhcmVhXCI6e1wiaWRcIjpcIjUzMDJlMjY0LTFjZjAtNGQx
Zi1hY2E3LTJhNmY4OWUzNGIzNlwiLFwibmFtZVwiOlwiVW5pdGVkIEtpbmdkb21cIixcInNvcnQt
bmFtZVwiOlwiS2luZ2RvbSBVbml0ZWRcIn0iKSk7CiAgICAgfQogCiAgICAgLyoqCkBAIC01Nzks
NiArNTk4LDcgQEAKICAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwibGFiZWwt
Y29kZVwiOjEyMzQiKSk7CiAgICAgICAgIGFzc2VydFRydWUob3V0cHV0LmNvbnRhaW5zKCJcImNv
dW50XCI6MSIpKTsKICAgICAgICAgYXNzZXJ0VHJ1ZShvdXRwdXQuY29udGFpbnMoIlwib2Zmc2V0
XCI6MCwiKSk7CisgICAgICAgIGFzc2VydFRydWUob3V0cHV0LmNvbnRhaW5zKCJcImFyZWFcIjp7
XCJpZFwiOlwiNTMwMmUyNjQtMWNmMC00ZDFmLWFjYTctMmE2Zjg5ZTM0YjM2XCIsXCJuYW1lXCI6
XCJVbml0ZWQgS2luZ2RvbVwiLFwic29ydC1uYW1lXCI6XCJLaW5nZG9tIFVuaXRlZFwifSIpKTsK
IAogICAgIH0KIAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk11c2ljQnJhaW56LWNvbW1pdHMgbWFpbGluZyBsaXN0Ck11c2ljQnJhaW56LWNvbW1pdHNA
bGlzdHMubXVzaWNicmFpbnoub3JnCmh0dHA6Ly9saXN0cy5tdXNpY2JyYWluei5vcmcvbWFpbG1h
bi9saXN0aW5mby9tdXNpY2JyYWluei1jb21taXRz