r9913 - in apps/gobi/trunk/code: Global Page User
[email protected] Wed, 16 Sep 2009 23:08:59 +0200 (CEST)
| Newsgroups | gmane.comp.java.helma.cvs |
|---|---|
| Message-ID | <20090916210859.36BB43D0E3@mia> |
QXV0aG9yOiBoYW5uZXMKRGF0ZTogMjAwOS0wOS0xNiAyMzowODo1OSArMDIwMCAoV2VkLCAxNiBT ZXAgMjAwOSkKTmV3IFJldmlzaW9uOiA5OTEzCgpBZGRlZDoKICAgYXBwcy9nb2JpL3RydW5rL2Nv ZGUvVXNlci9wYXNzd29yZC5za2luCk1vZGlmaWVkOgogICBhcHBzL2dvYmkvdHJ1bmsvY29kZS9H bG9iYWwvRGlmZi5qcwogICBhcHBzL2dvYmkvdHJ1bmsvY29kZS9HbG9iYWwvR2xvYmFsLmpzCiAg IGFwcHMvZ29iaS90cnVuay9jb2RlL0dsb2JhbC9NZXNzYWdlcy5qcwogICBhcHBzL2dvYmkvdHJ1 bmsvY29kZS9QYWdlL1BhZ2VBY3Rpb25zLmpzCiAgIGFwcHMvZ29iaS90cnVuay9jb2RlL1BhZ2Uv UGFnZUNvcmUuanMKICAgYXBwcy9nb2JpL3RydW5rL2NvZGUvVXNlci9Vc2VyLmpzCiAgIGFwcHMv Z29iaS90cnVuay9jb2RlL1VzZXIvYm9keS5za2luCiAgIGFwcHMvZ29iaS90cnVuay9jb2RlL1Vz ZXIvY3JlYXRlLnNraW4KICAgYXBwcy9nb2JpL3RydW5rL2NvZGUvVXNlci9lZGl0LnNraW4KTG9n OgpEbyBub3Qgc3RvcmUgY2xlYXItdGV4dCBwYXNzd29yZHMsIGFuZCBtYWtlIFVzZXIgcGFnZSBl ZGl0YWJsZSBhbmQgYWRkIHBhc3N3b3JkIGNoYW5nZSBhY3Rpb24uCgpEZXRhaWxzIGF0IGh0dHA6 Ly9kZXYuaGVsbWEub3JnL3RyYWMvaGVsbWEvY2hhbmdlc2V0Lzk5MTMKCk1vZGlmaWVkOiBhcHBz L2dvYmkvdHJ1bmsvY29kZS9HbG9iYWwvRGlmZi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBhcHBzL2dvYmkv dHJ1bmsvY29kZS9HbG9iYWwvRGlmZi5qcwkyMDA5LTA5LTE2IDE1OjQxOjQwIFVUQyAocmV2IDk5 MTIpCisrKyBhcHBzL2dvYmkvdHJ1bmsvY29kZS9HbG9iYWwvRGlmZi5qcwkyMDA5LTA5LTE2IDIx OjA4OjU5IFVUQyAocmV2IDk5MTMpCkBAIC0zMTAsNyArMzEwLDggQEAKICAgICB2YXIgZGlmZiA9 IHtyZW1vdmVkOiBbXSwgY2hhbmdlZDogW10sIGFkZGVkOiBbXX07CiAgICAgdmFyIHByb3BuYW1l ID0ge307CiAgICAgZm9yICh2YXIgaSBpbiBvYmoxKSB7Ci0gICAgICAgIGlmIChvYmoxW2ldID09 IG9iajJbaV0pCisgICAgICAgIC8vIEhBQ0sgZXhjbHVkZSBwYXNzd29yZCByZWxhdGVkIHN0dWZm CisgICAgICAgIGlmIChTdHJpbmcoaSkuaW5kZXhPZigicGFzc3dvcmQiKSA9PSAwIHx8IG9iajFb aV0gPT0gb2JqMltpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAob2JqMVtp XSkgewogICAgICAgICAgICAgaWYgKCFvYmoyW2ldKQpAQCAtMzIwLDcgKzMyMSw3IEBACiAgICAg ICAgIH0KICAgICB9CiAgICAgZm9yICh2YXIgaSBpbiBvYmoyKSB7Ci0gICAgICAgIGlmIChvYmox W2ldID09IG9iajJbaV0pCisgICAgICAgIGlmIChTdHJpbmcoaSkuaW5kZXhPZigicGFzc3dvcmQi KSA9PSAwIHx8IG9iajFbaV0gPT0gb2JqMltpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg ICAgICBpZiAoIW9iajFbaV0pCiAgICAgICAgICAgICBkaWZmLmFkZGVkLnB1c2goaSk7CgpNb2Rp ZmllZDogYXBwcy9nb2JpL3RydW5rL2NvZGUvR2xvYmFsL0dsb2JhbC5qcwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBhcHBzL2dvYmkvdHJ1bmsvY29kZS9HbG9iYWwvR2xvYmFsLmpzCTIwMDktMDktMTYgMTU6NDE6 NDAgVVRDIChyZXYgOTkxMikKKysrIGFwcHMvZ29iaS90cnVuay9jb2RlL0dsb2JhbC9HbG9iYWwu anMJMjAwOS0wOS0xNiAyMTowODo1OSBVVEMgKHJldiA5OTEzKQpAQCAtMzgxLDE2ICszODEsMTUg QEAKIC8qKgogICogU2V0IGF1dG8tbG9naW4gY29va2llCiAgKi8KLWZ1bmN0aW9uIHNldEF1dG9M b2dpbkNvb2tpZShuYW1lLCBwdykgewotICAgIHZhciBjb29raWUgPSBuYW1lKyIvIjsKLSAgICBj b29raWUgKz0gUGFja2FnZXMuaGVsbWEudXRpbC5NRDVFbmNvZGVyLmVuY29kZShwdyArIHJlcS5k YXRhLmh0dHBfcmVtb3RlaG9zdCk7Ci0gICAgcmVzLnNldENvb2tpZSgiZ29iaV9hdXRvbG9naW4i LCBjb29raWUsIDkwKTsKK2Z1bmN0aW9uIHNldEF1dG9Mb2dpbkNvb2tpZShuYW1lLCB0b2tlbikg eworICAgIHZhciBjb29raWUgPSBuYW1lICsgIi8iICsgKHRva2VuICsgcmVxLmRhdGEuaHR0cF9y ZW1vdGVob3N0KS5tZDUoKTsKKyAgICByZXMuc2V0Q29va2llKCJnb2JpX2F1dG9sb2dpbiIsIGNv b2tpZSwgMzY1KTsKIH0KIAogLyoqCiAgKiBVbnNldCBhdXRvLWxvZ2luIGNvb2tpZQogICovCi1m dW5jdGlvbiB1bnNldEF1dG9Mb2dpbkNvb2tpZShuYW1lLCBwdykgeworZnVuY3Rpb24gdW5zZXRB dXRvTG9naW5Db29raWUoKSB7CiAgICAgcmVzLnVuc2V0Q29va2llKCJnb2JpX2F1dG9sb2dpbiIp OwogfQogCkBAIC0zOTgsMTYgKzM5NywxNiBAQAogICogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdXNl ciBzaG91bGQgYmUgbG9nZ2VkIGluIGJ5IGF1dG8tbG9naW4gY29va2llCiAgKi8KIGZ1bmN0aW9u IHRyeUF1dG9Mb2dpbigpIHsKLSAgICBpZiAoc2Vzc2lvbi51c2VyIHx8ICFyZXEuZGF0YS5nb2Jp X2F1dG9sb2dpbikgCisgICAgaWYgKHNlc3Npb24udXNlciB8fCAhcmVxLmRhdGEuZ29iaV9hdXRv bG9naW4pCiAgICAgICAgIHJldHVybjsKICAgICB2YXIgY29va2llID0gcmVxLmRhdGEuZ29iaV9h dXRvbG9naW4uc3BsaXQoIi8iKTsKICAgICB2YXIgdXNlciA9IGdldFVzZXIoY29va2llWzBdKTsK ICAgICBpZiAoIXVzZXIpCiAgICAgICAgIHJldHVybjsKLSAgICB2YXIgcHcgPSB1c2VyLmdldEZv cm1EYXRhKCkucGFzc3dvcmQ7Ci0gICAgaWYgKHB3ID09IG51bGwpCisgICAgdmFyIGZvcm1kYXRh ID0gdXNlci5nZXRGb3JtRGF0YSgpOworICAgIGlmICghZm9ybWRhdGEucGFzc3dvcmQgJiYgIWZv cm1kYXRhLnBhc3N3b3JkX2hhc2gpCiAgICAgICAgIHJldHVybjsKLSAgICB2YXIgaGFzaCA9IFBh Y2thZ2VzLmhlbG1hLnV0aWwuTUQ1RW5jb2Rlci5lbmNvZGUocHcgKyByZXEuZGF0YS5odHRwX3Jl bW90ZWhvc3QpCisgICAgdmFyIGhhc2ggPSAoKGZvcm1kYXRhLnBhc3N3b3JkX2hhc2ggfHwgZm9y bWRhdGFfcGFzc3dvcmQpICsgcmVxLmRhdGEuaHR0cF9yZW1vdGVob3N0KS5tZDUoKTsKICAgICBp ZiAoaGFzaCA9PSBjb29raWVbMV0pIHsKICAgICAgICAgcmVzLm1lc3NhZ2UgPSBtc2coImxvZ2lu X3N1Y2NlZWRlZCIsIHJvb3QubmFtZSwgdXNlci5uYW1lKTsKICAgICAgICAgc2Vzc2lvbi5sb2dp bih1c2VyKTsKCk1vZGlmaWVkOiBhcHBzL2dvYmkvdHJ1bmsvY29kZS9HbG9iYWwvTWVzc2FnZXMu anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gYXBwcy9nb2JpL3RydW5rL2NvZGUvR2xvYmFsL01lc3NhZ2VzLmpz CTIwMDktMDktMTYgMTU6NDE6NDAgVVRDIChyZXYgOTkxMikKKysrIGFwcHMvZ29iaS90cnVuay9j b2RlL0dsb2JhbC9NZXNzYWdlcy5qcwkyMDA5LTA5LTE2IDIxOjA4OjU5IFVUQyAocmV2IDk5MTMp CkBAIC0xOSw2ICsxOSw3IEBACiAgICAgZWRpdF9idXR0b246ICJTYXZlIFBhZ2UiLAogICAgIGVk aXRfY29uZmlybTogIllvdXIgY2hhbmdlcyB0byB0aGUgcGFnZSBoYXZlIGJlZW4gc2F2ZWQhIiwK ICAgICBlZGl0X2NvbnRpbnVlOiAiQ29udGludWUgRWRpdGluZyIsCisgICAgZWRpdF92YWxpZGF0 aW9uX2Vycm9yOiAiVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHlvdXIgaW5wdXQiLAogICAgIGxv Z2luX3BsZWFzZTogIlBsZWFzZSBlbnRlciB5b3VyIHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQiLAog ICAgIGxvZ2luX2ZhaWxlZDogIkxvZ2luIGZhaWxlZC4gUGxlYXNlIGNoZWNrIHlvdXIgaW5wdXQg YW5kIHRyeSBhZ2FpbiEiLAogICAgIGxvZ2luX3N1Y2NlZWRlZDogIldlbGNvbWUgdG8gICQxLCAk MiEiLApAQCAtMjksOSArMzAsMTAgQEAKICAgICByZWdpc3Rlcl9wbGVhc2U6ICJGaWxsIGluIHRo ZSBmaWVsZHMgYmVsb3cgdG8gcmVnaXN0ZXIgYSBuZXcgVXNlcjoiLAogICAgIHJlZ2lzdGVyX3Vz ZXJfZXhpc3RzOiAiU29ycnksIHVzZXIgbmFtZSAnJDEnIGlzIGFscmVhZHkgdGFrZW4uIFBsZWFz ZSBjaG9vc2UgYSBkaWZmZXJlbnQgb25lISIsCiAgICAgcmVnaXN0ZXJfZW50ZXJfbmFtZTogIlBs ZWFzZSBlbnRlciBhIHVzZXIgbmFtZSEiLAotICAgIHJlZ2lzdGVyX3Bhc3N3b3Jkc19kb250X21h dGNoOiAiVGhlIHR3byBwYXNzd29yZHMgeW91IGVudGVyZWQgZG9uJ3QgbWF0Y2ghIiwKICAgICBy ZWdpc3Rlcl9jb25maXJtOiAiVXNlciAkMSBoYXMgYmVlbiBjcmVhdGVkLiAiLAogICAgIHJlZ2lz dGVyX3dlbGNvbWU6ICJXZWxjb21lIG9uIGJvYXJkISIsCisgICAgcGFzc3dvcmRfdmFsaWRhdGlv bl9lcnJvcjogIlBhc3N3b3JkcyBkb24ndCBtYXRjaCEiLAorICAgIHBhc3N3b3JkX2NoYW5nZV9j b25maXJtOiAiUGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZCIsCiAgICAgaGlzdG9yeV9ub192ZXJz aW9uczogIk5vIHZlcnNpb25zIHRvIGNvbXBhcmUhIiwKICAgICBoaXN0b3J5X3ZlcnNpb25faGVh ZGVyOiAiPGg0PjxhIGhyZWY9JyQxJz5WZXJzaW9uICQyPC9hPiBieSAkMyBvbiAkNDwvaDQ+IiwK ICAgICBoaXN0b3J5X3ZlcnNpb25faGVhZGVyXzI6ICI8aDQ+VmVyc2lvbiAkMSBieSAkMiBvbiAk MzwvaDQ+IiwKQEAgLTg5LDYgKzkxLDEwIEBACiAgICAgcHJvcGVydHlfYWRkZWQ6ICJTZXQgPHNw YW4gY2xhc3M9J2RpZmZwcm9wbmFtZSc+JDE8L3NwYW4+IHRvIDxzcGFuIGNsYXNzPSdkaWZmYWRk ZWQnPiQyPC9zcGFuPiIsCiAgICAgcHJvcGVydHlfcmVtb3ZlZDogIkRlbGV0ZWQgPHNwYW4gY2xh c3M9J2RpZmZwcm9wbmFtZSc+JDE8L3NwYW4+IiwKICAgICBwcm9wZXJ0eV9jaGFuZ2VkOiAiQ2hh bmdlZCA8c3BhbiBjbGFzcz0nZGlmZnByb3BuYW1lJz4kMTwvc3Bhbj4gdG8gPHNwYW4gY2xhc3M9 J2RpZmZhZGRlZCc+JDM8L3NwYW4+IiwKKyAgICBhY3Rpb25fbWFpbjogIlBhZ2UiLAorICAgIGFj dGlvbl9lZGl0OiAiRWRpdCIsCisgICAgYWN0aW9uX2hpc3Rvcnk6ICJIaXN0b3J5IiwKKyAgICAv LyBldGMuLi4KICAgICB0b1N0cmluZzogZnVuY3Rpb24oKSB7cmV0dXJuICJNRVNTQUdFUyI7fQog fQogCkBAIC0xMTIsNyArMTE4LDcgQEAKICAgICBwcmV2aWV3X21lc3NhZ2U6ICJLbGlja2VuIFNp ZSAnU2VpdGUgQW5sZWdlbicgdW0gZGllIFNlaXRlIHp1IHNwZWljaGVybiEiLAogICAgIGVkaXRf YnV0dG9uOiAiU2VpdGUgU3BlaWNoZXJuIiwKICAgICBlZGl0X2NvbmZpcm06ICJJaHJlIMOEbmRl cnVuZ2VuIGFuIGRlciBTZWl0ZSB3dXJkZW4gZ2VzcGVpY2hlcnQhIiwKLSAgICBlZGl0X2NvbnRp bnVlOiAiV2VpdGVyIGJlYXJiZWl0ZW4iLCAgIAorICAgIGVkaXRfY29udGludWU6ICJXZWl0ZXIg YmVhcmJlaXRlbiIsCiAgICAgbG9naW5fcGxlYXNlOiAiR2ViZW4gU2llIGJpdHRlIEJlbnV0emVy bmFtZSB1bmQgUGFzc3dvcnQgZWluISIsCiAgICAgbG9naW5fZmFpbGVkOiAiQW5tZWxkdW5nIGZl aGxnZXNjaGxhZ2VuLiBCaXR0ZSDDnGJlcnByw7xmZW4gU2llIElocmUgRWluZ2FiZW4hIiwKICAg ICBsb2dpbl9zdWNjZWVkZWQ6ICJXaWxsa29tbWVuIGJlaSAkMSwgJDIhIiwKQEAgLTEyMyw5ICsx MjksMTAgQEAKICAgICByZWdpc3Rlcl9wbGVhc2U6ICJOZXVlbiBCZW51dHplciBBbmxlZ2VuIiwK ICAgICByZWdpc3Rlcl91c2VyX2V4aXN0czogIkVpbiBCZW51dHplciBuYW1lbnMgJyQxJyBleGlz dGllcnQgc2Nob24uIEJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIGFuZGVyZW4gTmFtZW4hIiwKICAg ICByZWdpc3Rlcl9lbnRlcl9uYW1lOiAiR2ViZW4gU2llIGJpdHRlIGVpbmVuIE5hbWVuIGVpbiEi LAotICAgIHJlZ2lzdGVyX3Bhc3N3b3Jkc19kb250X21hdGNoOiAiRGllIGJlaWRlbiBQYXNzd8O2 cnRlciBzdGltbWVuIG5pY2h0IMO8YmVyZWluISIsCiAgICAgcmVnaXN0ZXJfY29uZmlybTogIkJl bnV0emVyICQxIHd1cmRlIGFuZ2VsZWd0LiAiLAogICAgIHJlZ2lzdGVyX3dlbGNvbWU6ICJXaWxs a29tbWVuIGFuIEJvcmQhIiwKKyAgICBwYXNzd29yZF92YWxpZGF0aW9uX2Vycm9yOiAiRGllIFBh c3N3w7ZydGVyIHN0aW1tZW4gbmljaHQgw7xiZXJlaW4hIiwKKyAgICBwYXNzd29yZF9jaGFuZ2Vf Y29uZmlybTogIkRhcyBQYXNzd29ydCB3dXJkZSBnZcOkbmRlcnQiLAogICAgIGhpc3Rvcnlfbm9f dmVyc2lvbnM6ICJLZWluZSBWZXJzaW9uc2RhdGVuIHZvcmhhbmRlbiEiLAogICAgIGhpc3Rvcnlf dmVyc2lvbl9oZWFkZXI6ICI8aDQ+PGEgaHJlZj0nJDEnPlZlcnNpb24gJDI8L2E+IHZvbiAkMyBh bSAkNDwvaDQ+IiwKICAgICBoaXN0b3J5X3ZlcnNpb25faGVhZGVyXzI6ICI8aDQ+VmVyc2lvbiAk MSB2b24gJDIgYW0gJDM8L2g0PiIsCgpNb2RpZmllZDogYXBwcy9nb2JpL3RydW5rL2NvZGUvUGFn ZS9QYWdlQWN0aW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBhcHBzL2dvYmkvdHJ1bmsvY29kZS9QYWdl L1BhZ2VBY3Rpb25zLmpzCTIwMDktMDktMTYgMTU6NDE6NDAgVVRDIChyZXYgOTkxMikKKysrIGFw cHMvZ29iaS90cnVuay9jb2RlL1BhZ2UvUGFnZUFjdGlvbnMuanMJMjAwOS0wOS0xNiAyMTowODo1 OSBVVEMgKHJldiA5OTEzKQpAQCAtMjY3LDYgKzI2NywxNCBAQAogICAgICAgICAgICAgdmFyIG9s ZEJvZHkgPSB0aGlzLmJvZHk7CiAgICAgICAgICAgICB2YXIgb2xkRm9ybWRhdGEgPSB0aGlzLmdl dEZvcm1EYXRhKCkuY2xvbmUoKTsKICAgICAgICAgICAgIHRoaXMucmVhZEVkaXRGb3JtKHRydWUp OworICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmVycm9ycykgeworICAgICAgICAgICAgICAgIHJl cy5tZXNzYWdlID0gbXNnKCJlZGl0X3ZhbGlkYXRpb25fZXJyb3IiKTsKKyAgICAgICAgICAgICAg ICByZXMuZGF0YS5ib2R5ID0gdGhpcy5yZW5kZXJTa2luQXNTdHJpbmcoImVkaXQiKTsKKyAgICAg ICAgICAgICAgICB0aGlzLnJlbmRlclNraW4oInBhZ2UiKTsKKyAgICAgICAgICAgICAgICByZXMu YWJvcnQoKTsKKyAgICAgICAgICAgICAgICB0aGlzLmludmFsaWRhdGUoKTsKKyAgICAgICAgICAg ICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLm1vZGlmaWVyID0g c2Vzc2lvbi51c2VyOwogICAgICAgICAgICAgdGhpcy5tb2RpZnl0aW1lID0gbmV3IERhdGUoKTsK ICAgICAgICAgICAgIC8vIGNyZWF0ZSB2ZXJzaW9uIGluZm8KQEAgLTU4OSw5ICs1OTcsMTEgQEAK ICAgICB9IGVsc2UgewogICAgICAgICBpZiAocmVxLmRhdGEubG9naW4pIHsKICAgICAgICAgICAg IHZhciB1c2VyID0gdXNlcnMuZ2V0KHJlcS5kYXRhLm5hbWUpOwotICAgICAgICAgICAgaWYgKHVz ZXIgJiYgdXNlci5nZXRGb3JtRGF0YSgpLnBhc3N3b3JkID09IHJlcS5kYXRhLnBhc3N3b3JkKSB7 CisgICAgICAgICAgICB2YXIgZm9ybWRhdGEgPSB1c2VyICYmIHVzZXIuZ2V0Rm9ybURhdGEoKTsK KyAgICAgICAgICAgIGlmIChmb3JtZGF0YSAmJiAoZm9ybWRhdGEucGFzc3dvcmQgPT0gcmVxLmRh dGEucGFzc3dvcmQgfHwKKyAgICAgICAgICAgICAgICAgICAgKGZvcm1kYXRhLnBhc3N3b3JkX3Nh bHQgKyByZXEuZGF0YS5wYXNzd29yZCkubWQ1KCkgPT0gZm9ybWRhdGEucGFzc3dvcmRfaGFzaCkp IHsKICAgICAgICAgICAgICAgICBzZXNzaW9uLmxvZ2luKHVzZXIpOwotICAgICAgICAgICAgICAg IHNldEF1dG9Mb2dpbkNvb2tpZSh1c2VyLm5hbWUsIHJlcS5kYXRhLnBhc3N3b3JkKTsKKyAgICAg ICAgICAgICAgICBzZXRBdXRvTG9naW5Db29raWUodXNlci5uYW1lLCBmb3JtZGF0YS5wYXNzd29y ZF9oYXNoIHx8IGZvcm1kYXRhLnBhc3N3b3JkKTsKICAgICAgICAgICAgICAgICByZXMubWVzc2Fn ZSA9IG1zZygibG9naW5fc3VjY2VlZGVkIiwgcm9vdC5uYW1lLCB1c2VyLm5hbWUpOwogICAgICAg ICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHNlc3Npb24uZGF0YS5sYXN0TG9jYXRpb247CiAgICAg ICAgICAgICAgICAgc2Vzc2lvbi5kYXRhLmxhc3RMb2NhdGlvbiA9IG51bGw7CkBAIC02MDUsNyAr NjE1LDcgQEAKIAogICAgICAgICByZXMucHVzaCgpOwogICAgICAgICBIdG1sLmZvcm0oe21ldGhv ZDogInBvc3QiLCBhY3Rpb246IHRoaXMuaHJlZigibG9naW4iKX0pOwotICAgICAgICByZXMud3Jp dGUoIjxwPjxiPiIrbXNnKCJsb2dpbl9wbGVhc2UiKSsiPC9iPjwvcD4iKTsKKyAgICAgICAgcmVz LndyaXRlKCI8aDM+IiArIG1zZygibG9naW5fcGxlYXNlIikgKyAiPC9oMz4iKTsKICAgICAgICAg dmFyIHRhYmxlID0gbmV3IEh0bWwuVGFibGVXcml0ZXIoMiwge3RkOiB7c3R5bGU6ICJwYWRkaW5n LWJvdHRvbTogNnB4OyJ9fSk7CiAgICAgICAgIHRhYmxlLndyaXRlKG1zZygibG9naW5fdXNlcm5h bWUiKSArICI6ICIpOwogICAgICAgICB0YWJsZS53cml0ZShIdG1sLklucHV0KHtuYW1lOiAibmFt ZSIsIHZhbHVlOiByZXEuZGF0YS5uYW1lfSkpOwpAQCAtNjUxLDI4ICs2NjEsMjcgQEAKICAgICAg ICAgaWYgKG5hbWUgJiYgbmFtZS5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICBpZiAodXNlcnMu Z2V0KG5hbWUpKSB7CiAgICAgICAgICAgICAgICAgcmVzLm1lc3NhZ2UgPSBtc2coInJlZ2lzdGVy X3VzZXJfZXhpc3RzIiwgbmFtZSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKCFyZXEuZGF0YS5m b3JtZGF0YSB8fAotICAgICAgICAgICAgICAgICAgICAgICByZXEuZGF0YS5mb3JtZGF0YS5wYXNz d29yZCAhPSByZXEuZGF0YS5mb3JtZGF0YS5wYXNzd29yZF8yKSB7Ci0gICAgICAgICAgICAgICAg cmVzLm1lc3NhZ2UgPSBtc2coInJlZ2lzdGVyX3Bhc3N3b3Jkc19kb250X21hdGNoIik7CiAgICAg ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGl0LmNyZWF0b3IgPSBpdC5tb2RpZmll ciA9IGl0OwotICAgICAgICAgICAgICAgIGl0LmNyZWF0ZXRpbWUgPSBpdC5tb2RpZnl0aW1lID0g bmV3IERhdGUoKTsKLSAgICAgICAgICAgICAgICB1c2Vycy5hZGRDaGlsZFBhZ2UoaXQpOwogICAg ICAgICAgICAgICAgIGl0LnJlYWRFZGl0Rm9ybSh0cnVlKTsKLSAgICAgICAgICAgICAgICByZXMu bWVzc2FnZSA9IG1zZygicmVnaXN0ZXJfY29uZmlybSIsIGl0Lm5hbWUpOwotICAgICAgICAgICAg ICAgIHVzZXJzLmNoaWxkQ3JlYXRlZChpdCk7Ci0gICAgICAgICAgICAgICAgcGFnZUNyZWF0ZWQo aXQpOwotICAgICAgICAgICAgICAgIC8vIGlmIGZpcnN0IHVzZXIsIG1ha2UgaXQgYWRtaW4KLSAg ICAgICAgICAgICAgICBpZiAodXNlcnMuc2l6ZSgpID09IDEpIHsKLSAgICAgICAgICAgICAgICAg ICAgaXQuYWRkTGluaygic3lzdGVtOmFkbWluIiwgIm91dCIsIHJvb3QpOworICAgICAgICAgICAg ICAgIGlmICghcmVzLmRhdGEuZXJyb3JzKSB7CisgICAgICAgICAgICAgICAgICAgIGl0LmNyZWF0 b3IgPSBpdC5tb2RpZmllciA9IGl0OworICAgICAgICAgICAgICAgICAgICBpdC5jcmVhdGV0aW1l ID0gaXQubW9kaWZ5dGltZSA9IG5ldyBEYXRlKCk7CisgICAgICAgICAgICAgICAgICAgIHVzZXJz LmFkZENoaWxkUGFnZShpdCk7CisgICAgICAgICAgICAgICAgICAgIHJlcy5tZXNzYWdlID0gbXNn KCJyZWdpc3Rlcl9jb25maXJtIiwgaXQubmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHVzZXJz LmNoaWxkQ3JlYXRlZChpdCk7CisgICAgICAgICAgICAgICAgICAgIHBhZ2VDcmVhdGVkKGl0KTsK KyAgICAgICAgICAgICAgICAgICAgLy8gaWYgZmlyc3QgdXNlciwgbWFrZSBpdCBhZG1pbgorICAg ICAgICAgICAgICAgICAgICBpZiAodXNlcnMuc2l6ZSgpID09IDEpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGl0LmFkZExpbmsoInN5c3RlbTphZG1pbiIsICJvdXQiLCByb290KTsKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAvLyBpZiBjdXJyZW50IHVzZXIg aXMgbm90IGxvZ2dlZCBpbiwgbG9nIGluIGFzIG5ldyB1c2VyCisgICAgICAgICAgICAgICAgICAg IGlmICghc2Vzc2lvbi51c2VyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLmxv Z2luKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEF1dG9Mb2dpbkNvb2tpZShpdC5u YW1lLCByZXEuZGF0YS5wYXNzd29yZCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMubWVz c2FnZSArPSBtc2coInJlZ2lzdGVyX3dlbGNvbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QodGhpcy5ocmVmKCkpOwogICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAvLyBpZiBjdXJyZW50IHVzZXIgaXMgbm90IGxvZ2dl ZCBpbiwgbG9nIGluIGFzIG5ldyB1c2VyCi0gICAgICAgICAgICAgICAgaWYgKCFzZXNzaW9uLnVz ZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbi5sb2dpbihpdCk7Ci0gICAgICAgICAg ICAgICAgICAgIHNldEF1dG9Mb2dpbkNvb2tpZShpdC5uYW1lLCByZXEuZGF0YS5wYXNzd29yZCk7 Ci0gICAgICAgICAgICAgICAgICAgIHJlcy5tZXNzYWdlICs9IG1zZygicmVnaXN0ZXJfd2VsY29t ZSIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXMucmVkaXJlY3QodGhp cy5ocmVmKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg cmVzLm1lc3NhZ2UgPSBtc2coInJlZ2lzdGVyX2VudGVyX25hbWUiKTsKQEAgLTY4MSw3ICs2OTAs NyBAQAogICAgIGlmIChyZXEuaXNQb3N0KCkpIHsKICAgICAgICAgaXQucmVhZEVkaXRGb3JtKGZh bHNlKTsKICAgICB9Ci0gICAgcmVzLmRhdGEuYm9keSA9ICI8aDQ+Iittc2coInJlZ2lzdGVyX3Bs ZWFzZSIpKyI8L2g0PiI7CisgICAgcmVzLmRhdGEuYm9keSA9ICI8aDM+IiArIG1zZygicmVnaXN0 ZXJfcGxlYXNlIikgKyAiPC9oMz4iOwogICAgIHJlcy5kYXRhLmJvZHkgKz0gaXQucmVuZGVyU2tp bkFzU3RyaW5nKCJjcmVhdGUiKTsKICAgICB0aGlzLnJlbmRlclNraW4oInBhZ2UiKTsKIH0KCk1v ZGlmaWVkOiBhcHBzL2dvYmkvdHJ1bmsvY29kZS9QYWdlL1BhZ2VDb3JlLmpzCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGFwcHMvZ29iaS90cnVuay9jb2RlL1BhZ2UvUGFnZUNvcmUuanMJMjAwOS0wOS0xNiAxNTo0 MTo0MCBVVEMgKHJldiA5OTEyKQorKysgYXBwcy9nb2JpL3RydW5rL2NvZGUvUGFnZS9QYWdlQ29y ZS5qcwkyMDA5LTA5LTE2IDIxOjA4OjU5IFVUQyAocmV2IDk5MTMpCkBAIC04MzYsMzIgKzgzNiwz OSBAQAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHZhciBsYWJlbCA9IHBhcmFt ICYmIHBhcmFtLmxhYmVsICE9IG51bGwgPyBwYXJhbS5sYWJlbCA6IGZpZWxkLmxhYmVsOwogICAg IHZhciBzaXplID0gcGFyYW0gJiYgcGFyYW0uc2l6ZSAhPSBudWxsID8gcGFyYW0uc2l6ZSA6IDQw OwogICAgIHZhciBuYW1lID0gImZvcm1kYXRhWyIgKyBmaWVsZC5uYW1lICsgIl0iOwotICAgIAor CisgICAgZnVuY3Rpb24gd3JpdGVMYWJlbCgpIHsKKyAgICAgICAgdmFyIGxhYmVsID0gcGFyYW0g JiYgcGFyYW0ubGFiZWwgIT0gbnVsbCA/IHBhcmFtLmxhYmVsIDogZmllbGQubGFiZWw7CisgICAg ICAgIHJlcy53cml0ZSgiPHAgc3R5bGU9XCJjbGVhcjogYm90aDtcIj4iKTsKKyAgICAgICAgcmVz LndyaXRlKCI8ZGl2PiIpCisgICAgICAgIHJlcy53cml0ZShsYWJlbCk7CisgICAgICAgIHJlcy53 cml0ZWxuKCI8L2Rpdj4iKTsKKyAgICAgICAgdmFyIGVycm9yID0gcmVzLmRhdGEuZXJyb3JzID8g cmVzLmRhdGEuZXJyb3JzW2ZpZWxkLm5hbWVdIDogbnVsbDsKKyAgICAgICAgaWYgKGVycm9yKSB7 CisgICAgICAgICAgICByZXMud3JpdGUoIjxkaXYgY2xhc3M9J3ZhbGlkYXRpb25FcnJvcicgc3R5 bGU9J2NvbG9yOiByZWQ7IGZvbnQtd2VpZ2h0OiBib2xkOyc+Iik7CisgICAgICAgICAgICByZXMu d3JpdGUoZXJyb3IpOworICAgICAgICAgICAgcmVzLndyaXRlKCI8L2Rpdj4iKTsKKyAgICAgICAg fQorICAgIH0KKwogICAgIHN3aXRjaCAoZmllbGQuZWRpdG9yKSB7CiAgICAgICAgIGNhc2UgSElE REVOOgogICAgICAgICAgICAgSHRtbC5oaWRkZW4oe25hbWU6IG5hbWUsIHZhbHVlOiBwcm9wfSk7 CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJTlBVVDoKLSAgICAgICAgICAgIHJl cy53cml0ZSgiPHAgc3R5bGU9XCJjbGVhcjogYm90aDtcIj4iKTsKLSAgICAgICAgICAgIHJlcy53 cml0ZShsYWJlbCk7Ci0gICAgICAgICAgICByZXMud3JpdGVsbigiPGJyIC8+Iik7CisgICAgICAg ICAgICB3cml0ZUxhYmVsKCk7CiAgICAgICAgICAgICBIdG1sLmlucHV0KHtuYW1lOiBuYW1lLCB2 YWx1ZTogcHJvcCwgc2l6ZTogc2l6ZX0pOwogICAgICAgICAgICAgcmVzLndyaXRlKCI8L3A+Iik7 CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQQVNTV09SRDoKLSAgICAgICAgICAg IHJlcy53cml0ZSgiPHAgc3R5bGU9XCJjbGVhcjogYm90aDtcIj4iKTsKLSAgICAgICAgICAgIHJl cy53cml0ZShsYWJlbCk7Ci0gICAgICAgICAgICByZXMud3JpdGVsbigiPGJyIC8+Iik7CisgICAg ICAgICAgICB3cml0ZUxhYmVsKCk7CiAgICAgICAgICAgICBIdG1sLnBhc3N3b3JkKHtuYW1lOiBu YW1lfSk7CiAgICAgICAgICAgICByZXMud3JpdGUoIjwvcD4iKTsKICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICBjYXNlIFRFWFRBUkVBOgotICAgICAgICAgICAgcmVzLndyaXRlKCI8cCBzdHls ZT1cImNsZWFyOiBib3RoO1wiPiIpOwotICAgICAgICAgICAgcmVzLndyaXRlKGxhYmVsKTsKLSAg ICAgICAgICAgIHJlcy53cml0ZWxuKCI8YnIgLz4iKTsKKyAgICAgICAgICAgIHdyaXRlTGFiZWwo KTsKICAgICAgICAgICAgIEh0bWwudGV4dGFyZWEoe25hbWU6IG5hbWUsICJjbGFzcyI6ICJob3Jp em9udGFsRmlsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBmaWVsZC5yb3dz ID8gZmllbGQucm93cyA6IDZ9LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcCB8fCAi Iik7CkBAIC04NzksOSArODg2LDcgQEAKICAgICAgICAgICAgIHJlcy53cml0ZSgiPC9wPiIpOwog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ0hPSUNFOgotICAgICAgICAgICAgcmVz LndyaXRlKCI8ZGl2IHN0eWxlPVwiY2xlYXI6IGJvdGg7XCI+Iik7Ci0gICAgICAgICAgICByZXMu d3JpdGUobGFiZWwpOwotICAgICAgICAgICAgcmVzLndyaXRlbG4oIjxiciAvPiIpOworICAgICAg ICAgICAgd3JpdGVMYWJlbCgpOwogICAgICAgICAgICAgSHRtbC5zZWxlY3Qoe25hbWU6IG5hbWV9 LAogICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVGb3JtKGZpZWxkLm9wdGlvbnMpLnNw bGl0KCIsIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3AsCkBAIC04ODksOSArODk0 LDcgQEAKICAgICAgICAgICAgIHJlcy53cml0ZSgiPC9kaXY+Iik7CiAgICAgICAgICAgICBicmVh azsKICAgICAgICAgY2FzZSBVUExPQUQ6Ci0gICAgICAgICAgICByZXMud3JpdGUoIjxwIHN0eWxl PVwiY2xlYXI6IGJvdGg7XCI+Iik7Ci0gICAgICAgICAgICByZXMud3JpdGUobGFiZWwpOwotICAg ICAgICAgICAgcmVzLndyaXRlbG4oIjxiciAvPiIpOworICAgICAgICAgICAgd3JpdGVMYWJlbCgp OwogICAgICAgICAgICAgSHRtbC5maWxlKHtuYW1lOiBuYW1lLCBzaXplOiAzMH0pOwogICAgICAg ICAgICAgaWYgKHByb3AgJiYgcHJvcC5saW5rKSB7CiAgICAgICAgICAgICAgICAgcmVzLndyaXRl bG4oIiIpOwpAQCAtOTAwLDkgKzkwMyw3IEBACiAgICAgICAgICAgICByZXMud3JpdGUoIjwvcD4i KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIERBVEU6Ci0gICAgICAgICAgICBy ZXMud3JpdGUoIjxwIHN0eWxlPVwiY2xlYXI6IGJvdGg7XCI+Iik7Ci0gICAgICAgICAgICByZXMu d3JpdGUobGFiZWwpOwotICAgICAgICAgICAgcmVzLndyaXRlbG4oIjxiciAvPiIpOworICAgICAg ICAgICAgd3JpdGVMYWJlbCgpOwogICAgICAgICAgICAgdmFyIGRhdGUgPSB7fTsKICAgICAgICAg ICAgIGlmIChwcm9wICYmIHByb3AuZ2V0WWVhcikgewogICAgICAgICAgICAgICAgIGRhdGUueWVh ciA9IHByb3AuZ2V0WWVhcigpICsgMTkwMDsKQEAgLTkyMSw5ICs5MjIsNyBAQAogICAgICAgICAg ICAgcmVzLndyaXRlKCI8L3A+Iik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBM SU5LOgotICAgICAgICAgICAgcmVzLndyaXRlKCI8cCBzdHlsZT1cImNsZWFyOiBib3RoO1wiPiIp OwotICAgICAgICAgICAgcmVzLndyaXRlKGxhYmVsKTsKLSAgICAgICAgICAgIHJlcy53cml0ZWxu KCI8YnIgLz4iKTsKKyAgICAgICAgICAgIHdyaXRlTGFiZWwoKTsKICAgICAgICAgICAgIHZhciBw YWdlcyA9IHRoaXMuZ2V0TGlua2VkUGFnZXMoZmllbGQudHlwZSwgZmllbGQuZGlyZWN0aW9uKTsK ICAgICAgICAgICAgIHZhciB2YWx1ZSA9IFBhZ2VMaXN0Lm5hbWVMaXN0KHBhZ2VzKSB8fCBwcm9w OwogICAgICAgICAgICAgSHRtbC5pbnB1dCh7bmFtZTogbmFtZSArICJbdGFyZ2V0c10iLCB2YWx1 ZTogdmFsdWUsCkBAIC05NTIsNiArOTUxLDcgQEAKIAogLyoqCiAgKiBSZWFkIHRoZSBmb3JtIGRh dGEgZnJvbSBhIHN1Ym1pdHRlZCBlZGl0IG9yIG5ldyBwYWdlIHBhZ2UuCisgKiBAcGFyYW0gcGVy c2lzdCBCb29sZWFuIHRydWUgaWYgdGhlIHBhZ2UgaXMgdG8gYmUgcGVyc2lzdGVkCiAgKi8KIGZ1 bmN0aW9uIHJlYWRFZGl0Rm9ybShwZXJzaXN0KSB7CiAgICAgdmFyIG5hbWUgPSB0aGlzLnByb2Nl c3NQYWdlTmFtZShjaGVja1BhZ2VOYW1lKHJlcS5kYXRhLm5hbWUpKTsKQEAgLTk3OCwyNyArOTc4 LDQxIEBACiAgICAgICAgIHRoaXMud2VpZ2h0ID0gcGFyc2VJbnQocmVxLmRhdGEud2VpZ2h0KTsK ICAgICB9CiAgICAgdmFyIGZvcm0gPSB0aGlzLmdldEZvcm0oKTsKLSAgICB2YXIgZGVzYyA9IGZv cm0gJiYgZm9ybS5nZXRGb3JtRGF0YSgpLmxpc3QoKTsKLSAgICBpZiAodGhpcy5fZm9ybXByb3Bl cnRpZXMpCi0gICAgICAgIGRlc2MgPSBkZXNjID8gCi0gICAgICAgICAgICBkZXNjLmNvbmNhdCh0 aGlzLl9mb3JtcHJvcGVydGllcy5jaGlsZHJlbikgOgotICAgICAgICAgICAgdGhpcy5fZm9ybXBy b3BlcnRpZXMuY2hpbGRyZW47Ci0gICAgaWYgKGRlc2MpIHsKKyAgICB2YXIgZm9ybURlZiA9IGZv cm0gJiYgZm9ybS5nZXRGb3JtRGF0YSgpLmxpc3QoKSB8fCBbXTsKKyAgICBpZiAodGhpcy5fZm9y bXByb3BlcnRpZXMpIHsKKyAgICAgICAgZm9ybURlZiA9IGZvcm1EZWYuY29uY2F0KHRoaXMuX2Zv cm1wcm9wZXJ0aWVzLmNoaWxkcmVuKTsKKyAgICB9CisgICAgaWYgKGZvcm1EZWYpIHsKICAgICAg ICAgdmFyIGRhdGEgPSB0aGlzLmdldEZvcm1EYXRhKCk7CiAgICAgICAgIHZhciBwYXJhbXMgPSBy ZXEucGFyYW1zLmZvcm1kYXRhOwotICAgICAgICBmb3IgKHZhciBpIGluIGRlc2MpIHsKLSAgICAg ICAgICAgIHZhciBwcm9wTmFtZSA9IGRlc2NbaV0ubmFtZTsKLSAgICAgICAgICAgIGlmIChwYXJh bXMgJiYgdGhpcy5jaGVja1Blcm1pc3Npb24oZGVzY1tpXS5wZXJtaXNzaW9uKSkgewotICAgICAg ICAgICAgICAgIGlmIChkZXNjW2ldLmVkaXRvciA9PSBMSU5LICYmIHBhcmFtc1twcm9wTmFtZV0p IHsKKyAgICAgICAgZm9yIGVhY2ggKHZhciBmaWVsZCBpbiBmb3JtRGVmKSB7CisgICAgICAgICAg ICB2YXIgcHJvcE5hbWUgPSBmaWVsZC5uYW1lOworICAgICAgICAgICAgaWYgKHBhcmFtc1twcm9w TmFtZV0gPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg fQorICAgICAgICAgICAgaWYgKHBhcmFtcyAmJiB0aGlzLmNoZWNrUGVybWlzc2lvbihmaWVsZC5w ZXJtaXNzaW9uKSkgeworICAgICAgICAgICAgICAgIGlmIChmaWVsZC5lZGl0b3IgPT0gTElOSyAm JiBwYXJhbXNbcHJvcE5hbWVdKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJzaXN0KSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBldmFsdWF0ZSBsaW5rcwogICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5ldmFsTGlua0ZpZWxkKHBhcmFtc1twcm9wTmFtZV0sIHByb3BOYW1l KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBkYXRhW3Byb3BO YW1lXSA9IHBhcmFtc1twcm9wTmFtZV0udGFyZ2V0czsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug aWYgKGRlc2NbaV0uZWRpdG9yID09IENIRUNLQk9YKSB7CisgICAgICAgICAgICAgICAgfSBlbHNl IGlmIChmaWVsZC5lZGl0b3IgPT0gUEFTU1dPUkQpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFy IGNvbmZpcm0gPSBwYXJhbXNbcHJvcE5hbWUgKyAiX2NvbmZpcm0iXTsKKyAgICAgICAgICAgICAg ICAgICAgaWYgKGNvbmZpcm0gIT0gbnVsbCAmJiBwYXJhbXNbcHJvcE5hbWVdICE9IGNvbmZpcm0p IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9ycyA9IHJlcy5kYXRhLmVy cm9ycyB8fCBbXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9yc1twcm9w TmFtZV0gPSBtc2coInBhc3N3b3JkX3ZhbGlkYXRpb25fZXJyb3IiKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgIHJlcy5kYXRhLmVycm9ycy5wdXNoKHRydWUpOworICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJuZCA9IGphdmEuc2VjdXJp dHkuU2VjdXJlUmFuZG9tLmdldEluc3RhbmNlKCJTSEExUFJORyIpOworICAgICAgICAgICAgICAg ICAgICAgICAgdmFyIHNhbHQgPSBkYXRhW3Byb3BOYW1lICsgIl9zYWx0Il0gPSBybmQubmV4dExv bmcoKS50b1N0cmluZygzNik7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW3Byb3BOYW1l ICsgIl9oYXNoIl0gPSAoc2FsdCArIGNvbmZpcm0pLm1kNSgpOworICAgICAgICAgICAgICAgICAg ICAgICAgZGVsZXRlIGRhdGFbcHJvcE5hbWVdOworICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZC5lZGl0b3IgPT0gQ0hFQ0tCT1gpIHsKICAgICAg ICAgICAgICAgICAgICAgLy8gc2V0IGNoZWNrYm94IHZhbHVlCiAgICAgICAgICAgICAgICAgICAg IGRhdGFbcHJvcE5hbWVdID0gcGFyYW1zW3Byb3BOYW1lXS52YWx1ZSA/IDEgOiAwOwotICAgICAg ICAgICAgICAgIH0gZWxzZSBpZiAoZGVzY1tpXS5lZGl0b3IgPT0gVVBMT0FEICYmIHBlcnNpc3Qp IHsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLmVkaXRvciA9PSBVUExPQUQgJiYg cGVyc2lzdCkgewogICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIGZpbGUgdXBsb2FkCiAgICAg ICAgICAgICAgICAgICAgIHZhciBtaW1lUGFydCA9IHBhcmFtc1twcm9wTmFtZV07CiAgICAgICAg ICAgICAgICAgICAgIGlmIChtaW1lUGFydCAmJiBtaW1lUGFydC5uYW1lKSB7CkBAIC0xMDA2LDcg KzEwMjAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtwcm9wTmFtZV0gPSB1cGxv YWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lUGFydC53cml0ZVRvRmlsZSh0aGlzLmdl dFN0YXRpY0Rpcih0cnVlKSwgbWltZVBhcnQubmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRlc2NbaV0uZWRpdG9yID09IERBVEUpIHsKKyAg ICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLmVkaXRvciA9PSBEQVRFKSB7CiAgICAgICAg ICAgICAgICAgICAgIHZhciB5ZWFyID0gcGFyYW1zW3Byb3BOYW1lXS55ZWFyOwogICAgICAgICAg ICAgICAgICAgICB2YXIgbW9udGggPSBwYXJhbXNbcHJvcE5hbWVdLm1vbnRoOwogICAgICAgICAg ICAgICAgICAgICB2YXIgZGF5ID0gcGFyYW1zW3Byb3BOYW1lXS5kYXk7CkBAIC0xMDE1LDEyICsx MDI5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhW3Byb3BOYW1lXSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgaWYgKGRlc2NbaV0uY2FsX3BhdGgpIHsKKyAgICAgICAgICAgICAg ICAgICAgaWYgKGZpZWxkLmNhbF9wYXRoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBj cmVhdGUgYSBkYXRlZCBsaW5rIHRvIGEgY2FsZW5kYXIgcGFnZQotICAgICAgICAgICAgICAgICAg ICAgICAgdmFyIHAgPSByb290LmdldFBhZ2UoZGVzY1tpXS5jYWxfcGF0aCk7CisgICAgICAgICAg ICAgICAgICAgICAgICB2YXIgcCA9IHJvb3QuZ2V0UGFnZShmaWVsZC5jYWxfcGF0aCk7CiAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAocCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhciBsaW5rdHlwZSA9IGRlc2NbaV0uY2FsX3BhdHRlcm4gPwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkZXNjW2ldLmNhbF9wYXR0ZXJuIDogInVwZGF0ZWQiOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhciBsaW5rdHlwZSA9IGZpZWxkLmNhbF9wYXR0ZXJuID8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuY2FsX3BhdHRlcm4gOiAidXBkYXRl ZCI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua3R5cGUgKz0gIjoiOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBhbnkgcHJldmlvdXMgbGlua3MKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVnZXhwID0gbmV3IFJlZ0V4cCgiXiIrbGlua3R5 cGUpOwpAQCAtMTAzNiw5ICsxMDUwLDkgQEAKICAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSBn ZW5lcmljIHByb3BlcnR5CiAgICAgICAgICAgICAgICAgICAgIGRhdGFbcHJvcE5hbWVdID0gcGFy YW1zW3Byb3BOYW1lXTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgaWYg KGRhdGFbcHJvcE5hbWVdID09IG51bGwgJiYgZGVzY1tpXS5kZWZhdWx0dmFsdWUgIT0gbnVsbCkg eworICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhW3Byb3BOYW1lXSA9PSBudWxsICYmIGZpZWxk LmRlZmF1bHR2YWx1ZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgLy8gbm8gcGVybWlzc2lv biB0byBlZGl0IGZpZWxkLCB1c2UgZGVmYXVsdCB2YWx1ZSBpZiBvbmUgaXMgZGVmaW5lZAotICAg ICAgICAgICAgICAgIGRhdGFbcHJvcE5hbWVdID0gZGVzY1tpXS5kZWZhdWx0dmFsdWU7CisgICAg ICAgICAgICAgICAgZGF0YVtwcm9wTmFtZV0gPSBmaWVsZC5kZWZhdWx0dmFsdWU7CiAgICAgICAg ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5zZXRGb3JtRGF0YShkYXRhKTsKCk1vZGlm aWVkOiBhcHBzL2dvYmkvdHJ1bmsvY29kZS9Vc2VyL1VzZXIuanMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYXBw cy9nb2JpL3RydW5rL2NvZGUvVXNlci9Vc2VyLmpzCTIwMDktMDktMTYgMTU6NDE6NDAgVVRDIChy ZXYgOTkxMikKKysrIGFwcHMvZ29iaS90cnVuay9jb2RlL1VzZXIvVXNlci5qcwkyMDA5LTA5LTE2 IDIxOjA4OjU5IFVUQyAocmV2IDk5MTMpCkBAIC0zOSw4ICszOSw4IEBACiB0aGlzLl9hY3Rpb25z ID0gbmV3IExvb2t1cExpc3QoWwogICAgIG5ldyBBY3Rpb24oIm1haW4iLCB7IGNhdGVnb3J5OiBS RUFELCBsYWJlbDogIk1haW4gVmlldyIgfSksCiAgICAgbmV3IEFjdGlvbigiZWRpdCIsIHsgY2F0 ZWdvcnk6IFdSSVRFLCBsYWJlbDogIkVkaXQgVXNlciIgfSksCi0gICAgbmV3IEFjdGlvbigiZGVs ZXRlIiwgeyBjYXRlZ29yeTogTUFOQUdFLCBsYWJlbDogIkRlbGV0ZSBVc2VyIiB9KSwKLSAgICBu ZXcgQWN0aW9uKCJtYW5hZ2UiLCB7IGNhdGVnb3J5OiBNQU5BR0UsIGxhYmVsOiAiTWFuYWdlIFVz ZXIiIH0pCisgICAgbmV3IEFjdGlvbigicGFzc3dvcmQiLCB7IGNhdGVnb3J5OiBXUklURSwgbGFi ZWw6ICJDaGFuZ2UgUGFzc3dvcmQiIH0pLAorICAgIG5ldyBBY3Rpb24oImRlbGV0ZSIsIHsgY2F0 ZWdvcnk6IE1BTkFHRSwgbGFiZWw6ICJEZWxldGUgVXNlciIgfSkKIF0pOwogCiAvKioKQEAgLTUx LDQgKzUxLDI2IEBACiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitmdW5jdGlvbiBwYXNzd29yZF9h Y3Rpb24oKSB7CisgICAgaWYgKHJlcS5pc1Bvc3QoKSkgeworICAgICAgICBpZiAocmVxLmRhdGEu c2F2ZSkgeworICAgICAgICAgICAgdGhpcy5yZWFkRWRpdEZvcm0odHJ1ZSk7CisgICAgICAgICAg ICBpZiAocmVzLmRhdGEuZXJyb3JzKSB7CisgICAgICAgICAgICAgICAgcmVzLm1lc3NhZ2UgPSBt c2coInBhc3N3b3JkX3ZhbGlkYXRpb25fZXJyb3IiKTsKKyAgICAgICAgICAgICAgICByZXMuZGF0 YS5ib2R5ID0gdGhpcy5yZW5kZXJTa2luQXNTdHJpbmcoInBhc3N3b3JkIik7CisgICAgICAgICAg ICAgICAgdGhpcy5yZW5kZXJTa2luKCJwYWdlIik7CisgICAgICAgICAgICAgICAgcmVzLmFib3J0 KCk7CisgICAgICAgICAgICAgICAgdGhpcy5pbnZhbGlkYXRlKCk7CisgICAgICAgICAgICAgICAg cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5tb2RpZmllciA9IHNlc3Np b24udXNlcjsKKyAgICAgICAgICAgIHRoaXMubW9kaWZ5dGltZSA9IG5ldyBEYXRlKCk7CisgICAg ICAgICAgICByZXMubWVzc2FnZSA9IG1zZygicGFzc3dvcmRfY2hhbmdlX2NvbmZpcm0iKTsKKyAg ICAgICAgICAgIHJlcy5yZWRpcmVjdCh0aGlzLmhyZWYoKSk7CisgICAgICAgIH0KKyAgICB9Cisg ICAgcmVzLmRhdGEuYm9keSA9IHRoaXMucmVuZGVyU2tpbkFzU3RyaW5nKCJwYXNzd29yZCIpOwor ICAgIHRoaXMucmVuZGVyU2tpbigicGFnZSIpOworfQogCisKCk1vZGlmaWVkOiBhcHBzL2dvYmkv dHJ1bmsvY29kZS9Vc2VyL2JvZHkuc2tpbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBhcHBzL2dvYmkvdHJ1bmsv Y29kZS9Vc2VyL2JvZHkuc2tpbgkyMDA5LTA5LTE2IDE1OjQxOjQwIFVUQyAocmV2IDk5MTIpCisr KyBhcHBzL2dvYmkvdHJ1bmsvY29kZS9Vc2VyL2JvZHkuc2tpbgkyMDA5LTA5LTE2IDIxOjA4OjU5 IFVUQyAocmV2IDk5MTMpCkBAIC0xLDYgKzEsMTEgQEAKKzxoMj5Vc2VyIDwlIHRoaXMubmFtZSAl PjwvaDI+CisKKzxkaXYgc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1zaXplOiBzbWFs bDsiPlJlZ2lzdGVyZWQgc2luY2UgPCUgdGhpcy5jcmVhdGV0aW1lICU+PC9kaXY+CisKIDwlIHRo aXMuYm9keSAlPgogCi08JSB0aGlzLmFjdGlvbmxpbmsgYWN0aW9uPSJlZGl0IiB0ZXh0PSJFZGl0 IHRoaXMgdXNlciIgJT4KKzwlIHRoaXMuYWN0aW9ubGluayBhY3Rpb249ImVkaXQiIHRleHQ9IkVk aXQgdXNlciBzZXR0aW5ncyIgcHJlZml4PSI8cD4iIHN1ZmZpeD0iPC9wPiIgJT4KKzwlIHRoaXMu YWN0aW9ubGluayBhY3Rpb249InBhc3N3b3JkIiB0ZXh0PSJDaGFuZ2UgcGFzc3dvcmQiIHByZWZp eD0iPHA+IiBzdWZmaXg9IjwvcD4iICU+CiAKIDwlIHRoaXMubGlua2xpc3QgdHlwZT0ic3lzdGVt OmFkbWluIiBmdWxscGF0aD0idHJ1ZSIKICAgcHJlZml4PSI8aDQ+YWRtaW4gb2Y6PC9oND4iICU+ CgpNb2RpZmllZDogYXBwcy9nb2JpL3RydW5rL2NvZGUvVXNlci9jcmVhdGUuc2tpbgo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBhcHBzL2dvYmkvdHJ1bmsvY29kZS9Vc2VyL2NyZWF0ZS5za2luCTIwMDktMDktMTYg MTU6NDE6NDAgVVRDIChyZXYgOTkxMikKKysrIGFwcHMvZ29iaS90cnVuay9jb2RlL1VzZXIvY3Jl YXRlLnNraW4JMjAwOS0wOS0xNiAyMTowODo1OSBVVEMgKHJldiA5OTEzKQpAQCAtNCw3ICs0LDcg QEAKIDwlIHRoaXMuZm9ybSBuYW1lPSJwYXNzd29yZCIgYXM9ImVkaXRvciIgc2l6ZT0iNDAiCiAg ICAgIGxhYmVsPSJQYXNzd29yZCIKICAgICAgcHJlZml4PSI8ZGl2PiIKLSAgICAgc3VmZml4PSI8 L2Rpdj5SZXBlYXQgUGFzc3dvcmQ8ZGl2PjxpbnB1dCBuYW1lPSdmb3JtZGF0YVtwYXNzd29yZF8y XScgdHlwZT0ncGFzc3dvcmQnPjwvZGl2PiIgJT4KKyAgICAgc3VmZml4PSI8L2Rpdj5SZXBlYXQg UGFzc3dvcmQ8ZGl2PjxpbnB1dCBuYW1lPSdmb3JtZGF0YVtwYXNzd29yZF9jb25maXJtXScgdHlw ZT0ncGFzc3dvcmQnPjwvZGl2PiIgJT4KIAogPCUgdGhpcy5mb3JtIG5hbWU9ImVtYWlsIiBhcz0i ZWRpdG9yIiBzaXplPSI0MCIgCiAgICAgIGxhYmVsPSJFbWFpbCBBZGRyZXNzIgoKTW9kaWZpZWQ6 IGFwcHMvZ29iaS90cnVuay9jb2RlL1VzZXIvZWRpdC5za2luCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGFwcHMv Z29iaS90cnVuay9jb2RlL1VzZXIvZWRpdC5za2luCTIwMDktMDktMTYgMTU6NDE6NDAgVVRDIChy ZXYgOTkxMikKKysrIGFwcHMvZ29iaS90cnVuay9jb2RlL1VzZXIvZWRpdC5za2luCTIwMDktMDkt MTYgMjE6MDg6NTkgVVRDIChyZXYgOTkxMykKQEAgLTEsMTggKzEsMTkgQEAKKzxoMz5FZGl0IHVz ZXIgPCUgdGhpcy5uYW1lICU+PC9oMz4KKwogPGZvcm0gbWV0aG9kPSJwb3N0Ij4KIDwlIHRoaXMu aW5wdXQgbmFtZT0ibmFtZSIgc2l6ZT0iNDAiIHByZWZpeD0iTmFtZTxkaXY+IiBzdWZmaXg9Ijwv ZGl2PiIgJT4KIAotPCUgdGhpcy5mb3JtIG5hbWU9InBhc3N3b3JkIiBhcz0iZWRpdG9yIiBzaXpl PSI0MCIKLSAgICAgbGFiZWw9IlBhc3N3b3JkIgotICAgICBwcmVmaXg9IjxkaXY+IgotICAgICBz dWZmaXg9IjwvZGl2PlJlcGVhdCBQYXNzd29yZDxkaXY+PGlucHV0IG5hbWU9J2Zvcm1kYXRhW3Bh c3N3b3JkXzJdJyB0eXBlPSdwYXNzd29yZCc+PC9kaXY+IiAlPgotCiA8JSB0aGlzLmZvcm0gbmFt ZT0iZW1haWwiIGFzPSJlZGl0b3IiIHNpemU9IjQwIiAKICAgICAgbGFiZWw9IkVtYWlsIEFkZHJl c3MiCiAgICAgIHByZWZpeD0iPGRpdj4iIHN1ZmZpeD0iPC9kaXY+IiAlPgogCiA8JSB0aGlzLmZv cm1FZGl0b3IgJT4KIAotPGJyPgorPHAgc3R5bGU9ImNsZWFyOiBib3RoOyI+RGVzY3JpcHRpb248 YnIgLz4KKzwlIHRoaXMudGV4dEFyZWEgbmFtZT0iYm9keSIgcm93cz0iMTgiIGNsYXNzPSJob3Jp em9udGFsRmlsbCIgJT48L3A+CiAKLTxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InNhdmUiIHZh bHVlPSJTYXZlIj4KKzxwPgorICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzYXZlIiB2YWx1 ZT0iU2F2ZSI+CisgIDxhIGhyZWY9IjwlIHBhZ2UuaHJlZiAlPiIgY2xhc3M9ImNvbW1lbnRMaW5r Ij4gPCUgbXNnIG5hbWU9J2NhbmNlbCcgJT48L2E+Cis8L3A+CiA8L2Zvcm0+CgpBZGRlZDogYXBw cy9nb2JpL3RydW5rL2NvZGUvVXNlci9wYXNzd29yZC5za2luCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpIZWxtYS1DVlMgbWFpbGluZyBsaXN0CkhlbG1h LUNWU0BoZWxtYS5vcmcKaHR0cDovL2hlbG1hLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2hlbG1hLWN2 cwo=