From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kaushal Modi Subject: [PATCH] Refactor org-set-tags arguments for clarity Date: Wed, 12 Jul 2017 02:46:05 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a11411230f2defd055415d131" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50931) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dV7gS-0001uA-3P for emacs-orgmode@gnu.org; Tue, 11 Jul 2017 22:47:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dV7gN-0002kN-7M for emacs-orgmode@gnu.org; Tue, 11 Jul 2017 22:47:24 -0400 Received: from mail-lf0-f50.google.com ([209.85.215.50]:32967) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dV7gM-0002jr-Mb for emacs-orgmode@gnu.org; Tue, 11 Jul 2017 22:47:19 -0400 Received: by mail-lf0-f50.google.com with SMTP id z78so5594226lff.0 for ; Tue, 11 Jul 2017 19:47:18 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-org list --001a11411230f2defd055415d131 Content-Type: multipart/alternative; boundary="001a11411230f2def7055415d12f" --001a11411230f2def7055415d12f Content-Type: text/plain; charset="UTF-8" Hello, I recently started looking at the org-set-tags function in org.el, but then quickly got confused with the doc-string. "Set the tags for the current headline. With prefix ARG, realign all tags in headings in the current buffer. When JUST-ALIGN is non-nil, only align tags." The purpose of ARG and JUST-ALIGN seems to be the exact same from the doc-string. On reading the code, I realized that actually ARG should have been called JUST-ALIGN and the JUST-ALIGN should have been called ALIGN-ONLY-CURRENT. The attached patch contains the updated doc-string, refactoring of the argument names, and renaming of the argument symbol to :align-only-current from 'align and 'ignore-column in org-set-tag calls. I have left most of the org-set-tags calls untouched where the argument values are simply t instead of descriptive 'align or 'ignore-column. As the patch introduces no functional changes, I have based it off maint. "make test" is still passing with these changes. Can you please review the patch and let me know if it's good for committing? Thanks. -- Kaushal Modi --001a11411230f2def7055415d12f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,

I recently started looking at th= e org-set-tags function in org.el, but then quickly got confused with the d= oc-string.=C2=A0
=C2=A0
=C2=A0 "Set the = tags for the current headline.
With prefix ARG, realign all tags = in headings in the current buffer.
When JUST-ALIGN is non-nil, on= ly align tags."

The purpose of ARG and JUST-ALIGN seems to be the exact= same from the doc-string. On reading the code, I realized that actually AR= G should have been called JUST-ALIGN and the JUST-ALIGN should have been ca= lled ALIGN-ONLY-CURRENT.

The attached patch contai= ns the updated doc-string, refactoring of the argument names, and renaming = of the argument symbol to :align-only-current from 'align and 'igno= re-column in org-set-tag calls. I have left most of the org-set-tags calls = untouched where the argument values are simply t instead of descriptive = 9;align or 'ignore-column.=C2=A0

As the patch = introduces no functional changes, I have based it off maint. "make tes= t" is still passing with these changes.

Can y= ou please review the patch and let me know if it's good for committing?=

Thanks.
--
=

Kaushal Modi

--001a11411230f2def7055415d12f-- --001a11411230f2defd055415d131 Content-Type: application/octet-stream; name="0001-Clarify-the-purpose-of-org-set-tags-arguments.patch" Content-Disposition: attachment; filename="0001-Clarify-the-purpose-of-org-set-tags-arguments.patch" Content-Transfer-Encoding: base64 Content-ID: <15d34ae0844b75082a42> X-Attachment-Id: 15d34ae0844b75082a42 RnJvbSBmNDgzN2M5MjMxZTM2NTU2YTAzMGI0ZTAyZGQ5MmE4YWMzNTIyMDI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLYXVzaGFsIE1vZGkgPGthdXNoYWwubW9kaUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTEgSnVsIDIwMTcgMjI6NDA6MzggLTA0MDAKU3ViamVjdDogW1BBVENIXSBD bGFyaWZ5IHRoZSBwdXJwb3NlIG9mIG9yZy1zZXQtdGFncyBhcmd1bWVudHMKCiogbGlzcC9vcmcu ZWwgKG9yZy1zZXQtdGFncy1jb21tYW5kLCBvcmctc2V0LXRhZ3MpOiBJbXByb3ZlIGFyZ3VtZW50 CiAgbmFtZXMgYW5kIGRvYy1zdHJpbmcuIEF1dG8taW5kZW50IHRoZSBmdW5jdGlvbnMuCgoqIGxp c3Avb3JnLW1vdXNlLmVsIChvcmctbW91c2UtdGFnLW1lbnUpOiBSZW1vdmUgcmVkdW5kYW50IGFy Z3VtZW50IGluCiAgYG9yZy1zZXQtdGFncycgY2FsbC4KCiogbGlzcC9vcmcuZWwgKG9yZy1wcm9t b3RlLCBvcmctZGVtb3RlLCBvcmctcHJpb3JpdHkpCiAgKG9yZy1zZXQtdGFncy10bywgb3JnLWVu dHJ5LXB1dCk6CiogbGlzcC9vcmctbW9iaWxlLmVsIChvcmctbW9iaWxlLWVkaXQpOgoqIGxpc3Av b3JnLWNhcHR1cmUuZWwgKG9yZy1jYXB0dXJlLWZpbGwtdGVtcGxhdGUpOiBVc2UgYSBtb3JlIGFj Y3VyYXRlCiAgYXJndW1lbnQgc3ltYm9sIHRvIG1hdGNoIHRoZSBhYm92ZSBgb3JnLXNldC10YWdz JyByZWZhY3RvcmluZy4KCiogbGlzcC9vcmcuZWwgKG9yZy1maXgtdGFncy1vbi10aGUtZmx5KTog VHlwbyBmaXggaW4gZG9jc3RyaW5nLgotLS0KIGxpc3Avb3JnLWNhcHR1cmUuZWwgfCAgIDIgKy0K IGxpc3Avb3JnLW1vYmlsZS5lbCAgfCAgIDIgKy0KIGxpc3Avb3JnLW1vdXNlLmVsICAgfCAgIDIg Ky0KIGxpc3Avb3JnLmVsICAgICAgICAgfCAyNTggKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxNDAgaW5zZXJ0aW9u cygrKSwgMTI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Avb3JnLWNhcHR1cmUuZWwg Yi9saXNwL29yZy1jYXB0dXJlLmVsCmluZGV4IDExNzVjYjQwODQuLjQxZDllNDBkNmQgMTAwNjQ0 Ci0tLSBhL2xpc3Avb3JnLWNhcHR1cmUuZWwKKysrIGIvbGlzcC9vcmctY2FwdHVyZS5lbApAQCAt MTcyOCw3ICsxNzI4LDcgQEAgVGhlIHRlbXBsYXRlIG1heSBzdGlsbCBjb250YWluIFwiJT9cIiBm b3IgY3Vyc29yIHBvc2l0aW9uaW5nLiIKIAkJCSAodW5sZXNzIChlcSAoY2hhci1hZnRlcikgPzop IChpbnNlcnQgIjoiKSkKIAkJCSAoYW5kIChvcmctYXQtaGVhZGluZy1wKQogCQkJICAgICAgKGxl dCAoKG9yZy1pZ25vcmUtcmVnaW9uIHQpKQotCQkJCShvcmctc2V0LXRhZ3MgbmlsICdhbGlnbikp KSkpKQorCQkJCShvcmctc2V0LXRhZ3MgbmlsIDphbGlnbi1vbmx5LWN1cnJlbnQpKSkpKSkKIAkJ ICAgICgob3IgIkMiICJMIikKIAkJICAgICAobGV0ICgoaW5zZXJ0LWZ1biAoaWYgKGVxdWFsIGtl eSAiQyIpICMnaW5zZXJ0CiAJCQkJCSAobGFtYmRhIChzKSAob3JnLWluc2VydC1saW5rIDAgcykp KSkpCmRpZmYgLS1naXQgYS9saXNwL29yZy1tb2JpbGUuZWwgYi9saXNwL29yZy1tb2JpbGUuZWwK aW5kZXggMTJlNmM4NGIzYy4uMDY1MTM3YzUzZCAxMDA2NDQKLS0tIGEvbGlzcC9vcmctbW9iaWxl LmVsCisrKyBiL2xpc3Avb3JnLW1vYmlsZS5lbApAQCAtMTAzMSw3ICsxMDMxLDcgQEAgYmUgcmV0 dXJuZWQgdGhhdCBpbmRpY2F0ZXMgd2hhdCB3ZW50IHdyb25nLiIKIAkgICAgICAoZ290by1jaGFy IChtYXRjaC1iZWdpbm5pbmcgNCkpCiAJICAgICAgKGluc2VydCBuZXcpCiAJICAgICAgKGRlbGV0 ZS1yZWdpb24gKHBvaW50KSAoKyAocG9pbnQpIChsZW5ndGggY3VycmVudCkpKQotCSAgICAgIChv cmctc2V0LXRhZ3MgbmlsICdhbGlnbikpCisJICAgICAgKG9yZy1zZXQtdGFncyBuaWwgOmFsaWdu LW9ubHktY3VycmVudCkpCiAJICAgICAodCAoZXJyb3IgIkhlYWRpbmcgY2hhbmdlZCBpbiBNb2Jp bGVPcmcgYW5kIG9uIHRoZSBjb21wdXRlciIpKSkpKSkpCiAKICAgICAgKChlcSB3aGF0ICdhZGRo ZWFkaW5nKQpkaWZmIC0tZ2l0IGEvbGlzcC9vcmctbW91c2UuZWwgYi9saXNwL29yZy1tb3VzZS5l bAppbmRleCBkNmE0NzI3ODdlLi5kNjYyZjg3NjczIDEwMDY0NAotLS0gYS9saXNwL29yZy1tb3Vz ZS5lbAorKysgYi9saXNwL29yZy1tb3VzZS5lbApAQCAtNDM1LDcgKzQzNSw3IEBAIFNDSEVEVUxF RDogb3IgREVBRExJTkU6IG9yIEFOWVRISU5HTElLRVRISVM6IgogICAgICAgKSkKICAgICcoIi0t IgogICAgICBbIkFsaWduIFRhZ3MgSGVyZSIgKG9yZy1zZXQtdGFncyBuaWwgdCkgdF0KLSAgICAg WyJBbGlnbiBUYWdzIGluIEJ1ZmZlciIgKG9yZy1zZXQtdGFncyB0IHQpIHRdCisgICAgIFsiQWxp Z24gVGFncyBpbiBCdWZmZXIiIChvcmctc2V0LXRhZ3MgdCkgdF0KICAgICAgWyJTZXQgVGFncyAu Li4iIChvcmctc2V0LXRhZ3MpIHRdKSkpCiAKIChkZWZ1biBvcmctbW91c2Utc2V0LXRhZ3MgKHRh Z3MpCmRpZmYgLS1naXQgYS9saXNwL29yZy5lbCBiL2xpc3Avb3JnLmVsCmluZGV4IGVhYTg1ZGQ4 NTMuLmIyYWJjY2YwYjYgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLmVsCisrKyBiL2xpc3Avb3JnLmVs CkBAIC04MjkxLDcgKzgyOTEsNyBAQCBldmVuIGxldmVsIG51bWJlcnMgd2lsbCBiZWNvbWUgdGhl IG5leHQgaGlnaGVyIG9kZCBudW1iZXIuIgogICAgICAgICh1c2VyLWVycm9yICJDYW5ub3QgcHJv bW90ZSB0byBsZXZlbCAwLiAgVU5ETyB0byByZWNvdmVyIGlmIG5lY2Vzc2FyeSIpKQogICAgICAg KHQgKHJlcGxhY2UtbWF0Y2ggdXAtaGVhZCBuaWwgdCkpKQogICAgICAodW5sZXNzICg9IGxldmVs IDEpCi0gICAgICAgKHdoZW4gb3JnLWF1dG8tYWxpZ24tdGFncyAob3JnLXNldC10YWdzIG5pbCAn aWdub3JlLWNvbHVtbikpCisgICAgICAgKHdoZW4gb3JnLWF1dG8tYWxpZ24tdGFncyAob3JnLXNl dC10YWdzIG5pbCA6YWxpZ24tb25seS1jdXJyZW50KSkKICAgICAgICAod2hlbiBvcmctYWRhcHQt aW5kZW50YXRpb24gKG9yZy1maXh1cC1pbmRlbnRhdGlvbiAoLSBkaWZmKSkpKQogICAgICAocnVu LWhvb2tzICdvcmctYWZ0ZXItcHJvbW90ZS1lbnRyeS1ob29rKSkpKQogCkBAIC04MzA1LDcgKzgz MDUsNyBAQCBldmVuIGxldmVsIG51bWJlcnMgd2lsbCBiZWNvbWUgdGhlIG5leHQgaGlnaGVyIG9k ZCBudW1iZXIuIgogCSAgKGRvd24taGVhZCAoY29uY2F0IChtYWtlLXN0cmluZyAob3JnLWdldC12 YWxpZC1sZXZlbCBsZXZlbCAxKSA/KikgIiAiKSkKIAkgIChkaWZmIChhYnMgKC0gbGV2ZWwgKGxl bmd0aCBkb3duLWhlYWQpIC0xKSkpKQogICAgICAocmVwbGFjZS1tYXRjaCBkb3duLWhlYWQgbmls IHQpCi0gICAgICh3aGVuIG9yZy1hdXRvLWFsaWduLXRhZ3MgKG9yZy1zZXQtdGFncyBuaWwgJ2ln bm9yZS1jb2x1bW4pKQorICAgICAod2hlbiBvcmctYXV0by1hbGlnbi10YWdzIChvcmctc2V0LXRh Z3MgbmlsIDphbGlnbi1vbmx5LWN1cnJlbnQpKQogICAgICAod2hlbiBvcmctYWRhcHQtaW5kZW50 YXRpb24gKG9yZy1maXh1cC1pbmRlbnRhdGlvbiBkaWZmKSkKICAgICAgKHJ1bi1ob29rcyAnb3Jn LWFmdGVyLWRlbW90ZS1lbnRyeS1ob29rKSkpKQogCkBAIC0xNDE5OSw3ICsxNDE5OSw3IEBAIEFD VElPTiBjYW4gYmUgYHNldCcsIGB1cCcsIGBkb3duJywgb3IgYSBjaGFyYWN0ZXIuIgogCQkgIChp bnNlcnQgIiBbIyIgbmV3cyAiXSIpKQogCSAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmlu ZyAzKSkKIAkgICAgICAoaW5zZXJ0ICJbIyIgbmV3cyAiXSAiKSkpKQotCShvcmctc2V0LXRhZ3Mg bmlsICdhbGlnbikpCisJKG9yZy1zZXQtdGFncyBuaWwgOmFsaWduLW9ubHktY3VycmVudCkpCiAg ICAgICAoaWYgcmVtb3ZlCiAJICAobWVzc2FnZSAiUHJpb3JpdHkgcmVtb3ZlZCIpCiAJKG1lc3Nh Z2UgIlByaW9yaXR5IG9mIGN1cnJlbnQgaXRlbSBzZXQgdG8gJXMiIG5ld3MpKSkpKQpAQCAtMTQ5 NTUsMTYgKzE0OTU1LDI1IEBAIEFzc3VtZSBwb2ludCBpcyBvbiBhIGhlYWRsaW5lLiIKIAk7OyBi ZWZvcmUgdGFncy4KIAkod2hlbiAoPCBwb3MgKHBvaW50KSkgKGdvdG8tY2hhciBwb3MpKSkpKSkK IAotKGRlZnVuIG9yZy1zZXQtdGFncy1jb21tYW5kICgmb3B0aW9uYWwgYXJnIGp1c3QtYWxpZ24p Ci0gICJDYWxsIHRoZSBzZXQtdGFncyBjb21tYW5kIGZvciB0aGUgY3VycmVudCBlbnRyeS4iCiso ZGVmdW4gb3JnLXNldC10YWdzLWNvbW1hbmQgKCZvcHRpb25hbCBqdXN0LWFsaWduIGFsaWduLW9u bHktY3VycmVudCkKKyAgIlNldCB0aGUgdGFncyBmb3IgdGhlIGN1cnJlbnQgaGVhZGxpbmUuCitX aXRoIHByZWZpeCBKVVNULUFMSUdOLCBvbmx5IHJlLWFsaWduIGFsbCB0YWdzIGluIGhlYWRpbmdz IGluIHRoZQorY3VycmVudCBidWZmZXIuICBJZiBKVVNULUFMSUdOIGlzIG5pbCBhbmQgQUxJR04t T05MWS1DVVJSRU5UIGlzCitub24tbmlsLCBhbmQgaWYgdGhlIHBvaW50IGlzIG9uIGEgaGVhZGxp bmUsIG9ubHkgYWxpZ24gdGFncyBpbgordGhhdCBoZWFkaW5nLgorCitUaGlzIGNvbW1hbmQgaXMg c2ltaWxhciB0byBgb3JnLXNldC10YWdzJywgYnV0IGRvZXMgbm90IG5lZWQgdGhlCitwb2ludCB0 byBiZSBvbiBhbiBoZWFkaW5nIHdoZW4gY2FsbGVkLiAiCiAgIChpbnRlcmFjdGl2ZSAiUCIpCi0g IChpZiAob3IgKG9yZy1hdC1oZWFkaW5nLXApIChhbmQgYXJnIChvcmctYmVmb3JlLWZpcnN0LWhl YWRpbmctcCkpKQotICAgICAgKG9yZy1zZXQtdGFncyBhcmcganVzdC1hbGlnbikKKyAgKGlmIChv ciAob3JnLWF0LWhlYWRpbmctcCkKKyAgICAgICAgICAoYW5kIGp1c3QtYWxpZ24KKyAgICAgICAg ICAgICAgIChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkpKQorICAgICAgKG9yZy1zZXQtdGFn cyBqdXN0LWFsaWduIGFsaWduLW9ubHktY3VycmVudCkKICAgICAoc2F2ZS1leGN1cnNpb24KICAg ICAgICh1bmxlc3MgKGFuZCAob3JnLXJlZ2lvbi1hY3RpdmUtcCkKLQkJICAgb3JnLWxvb3Atb3Zl ci1oZWFkbGluZXMtaW4tYWN0aXZlLXJlZ2lvbikKLQkob3JnLWJhY2stdG8taGVhZGluZyB0KSkK LSAgICAgIChvcmctc2V0LXRhZ3MgYXJnIGp1c3QtYWxpZ24pKSkpCisgICAgICAgICAgICAgICAg ICAgb3JnLWxvb3Atb3Zlci1oZWFkbGluZXMtaW4tYWN0aXZlLXJlZ2lvbikKKyAgICAgICAgKG9y Zy1iYWNrLXRvLWhlYWRpbmcgdCkpCisgICAgICAob3JnLXNldC10YWdzIGp1c3QtYWxpZ24gYWxp Z24tb25seS1jdXJyZW50KSkpKQogCiAoZGVmdW4gb3JnLXNldC10YWdzLXRvIChkYXRhKQogICAi U2V0IHRoZSB0YWdzIG9mIHRoZSBjdXJyZW50IGVudHJ5IHRvIERBVEEsIHJlcGxhY2luZyB0aGUg Y3VycmVudCB0YWdzLgpAQCAtMTQ5OTAsMTAgKzE0OTk5LDEwIEBAIElmIERBVEEgaXMgbmlsIG9y IHRoZSBlbXB0eSBzdHJpbmcsIGFueSB0YWdzIHdpbGwgYmUgcmVtb3ZlZC4iCiAJICAgICAgKGdv dG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDUpKQogCSAgICAgIChpbnNlcnQgZGF0YSkKIAkgICAg ICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQpIChwb2ludC1hdC1lb2wpKQotCSAgICAgIChvcmctc2V0 LXRhZ3MgbmlsICdhbGlnbikpCisJICAgICAgKG9yZy1zZXQtdGFncyBuaWwgOmFsaWduLW9ubHkt Y3VycmVudCkpCiAJICAoZ290by1jaGFyIChwb2ludC1hdC1lb2wpKQogCSAgKGluc2VydCAiICIg ZGF0YSkKLQkgIChvcmctc2V0LXRhZ3MgbmlsICdhbGlnbikpKQorCSAgKG9yZy1zZXQtdGFncyBu aWwgOmFsaWduLW9ubHktY3VycmVudCkpKQogICAgICAgKGJlZ2lubmluZy1vZi1saW5lIDEpCiAg ICAgICAod2hlbiAobG9va2luZy1hdCAiLio/XFwoWyBcdF0rXFwpJCIpCiAJKGRlbGV0ZS1yZWdp b24gKG1hdGNoLWJlZ2lubmluZyAxKSAobWF0Y2gtZW5kIDEpKSkpKSkKQEAgLTE1MDA5LDEyNyAr MTUwMTgsMTM0IEBAIElmIERBVEEgaXMgbmlsIG9yIHRoZSBlbXB0eSBzdHJpbmcsIGFueSB0YWdz IHdpbGwgYmUgcmVtb3ZlZC4iCiAgICAgICAobWVzc2FnZSAiTm8gaGVhZGluZ3MiKSkpKQogCiAo ZGVmdmFyIG9yZy1pbmRlbnQtaW5kZW50YXRpb24tcGVyLWxldmVsKQotKGRlZnVuIG9yZy1zZXQt dGFncyAoJm9wdGlvbmFsIGFyZyBqdXN0LWFsaWduKQorKGRlZnVuIG9yZy1zZXQtdGFncyAoJm9w dGlvbmFsIGp1c3QtYWxpZ24gYWxpZ24tb25seS1jdXJyZW50KQogICAiU2V0IHRoZSB0YWdzIGZv ciB0aGUgY3VycmVudCBoZWFkbGluZS4KLVdpdGggcHJlZml4IEFSRywgcmVhbGlnbiBhbGwgdGFn cyBpbiBoZWFkaW5ncyBpbiB0aGUgY3VycmVudCBidWZmZXIuCi1XaGVuIEpVU1QtQUxJR04gaXMg bm9uLW5pbCwgb25seSBhbGlnbiB0YWdzLiIKK1dpdGggcHJlZml4IEpVU1QtQUxJR04sIG9ubHkg cmUtYWxpZ24gYWxsIHRhZ3MgaW4gaGVhZGluZ3MgaW4gdGhlCitjdXJyZW50IGJ1ZmZlci4gIElm IEpVU1QtQUxJR04gaXMgbmlsIGFuZCBBTElHTi1PTkxZLUNVUlJFTlQgaXMKK25vbi1uaWwsIGFu ZCBpZiB0aGUgcG9pbnQgaXMgb24gYSBoZWFkbGluZSwgb25seSBhbGlnbiB0YWdzIGluCit0aGF0 IGhlYWRpbmcuCisKK0l0IGlzIGFzc3VtZWQgdGhhdCB0aGUgcG9pbnQgaXMgaW4gYSBoZWFkaW5n IHdoZW4gdGhpcyBmdW5jdGlvbgoraXMgY2FsbGVkLiIKICAgKGludGVyYWN0aXZlICJQIikKICAg KGlmIChhbmQgKG9yZy1yZWdpb24tYWN0aXZlLXApIG9yZy1sb29wLW92ZXItaGVhZGxpbmVzLWlu LWFjdGl2ZS1yZWdpb24pCiAgICAgICAobGV0ICgoY2wgKGlmIChlcSBvcmctbG9vcC1vdmVyLWhl YWRsaW5lcy1pbi1hY3RpdmUtcmVnaW9uICdzdGFydC1sZXZlbCkKICAgICAgICAgICAgICAgICAg ICAgJ3JlZ2lvbi1zdGFydC1sZXZlbAotCQkgICdyZWdpb24pKQorICAgICAgICAgICAgICAgICAg J3JlZ2lvbikpCiAgICAgICAgICAgICBvcmctbG9vcC1vdmVyLWhlYWRsaW5lcy1pbi1hY3RpdmUt cmVnaW9uKQogICAgICAgICAob3JnLW1hcC1lbnRyaWVzCi0gICAgICAgICA7OyBXZSBkb24ndCB1 c2UgQVJHIGFuZCBKVVNULUFMSUdOIGhlcmUgYmVjYXVzZSB0aGVzZSBhcmdzCi0gICAgICAgICA7 OyBhcmUgbm90IHVzZWZ1bCB3aGVuIGxvb3Bpbmcgb3ZlciBoZWFkbGluZXMuCisgICAgICAgICA7 OyBXZSBkb24ndCB1c2UgSlVTVC1BTElHTiBhbmQgQUxJR04tT05MWS1DVVJSRU5UIGhlcmUKKyAg ICAgICAgIDs7IGJlY2F1c2UgdGhlc2UgYXJncyBhcmUgbm90IHVzZWZ1bCB3aGVuIGxvb3Bpbmcg b3ZlcgorICAgICAgICAgOzsgaGVhZGxpbmVzLgogICAgICAgICAgIydvcmctc2V0LXRhZ3MKICAg ICAgICAgIG9yZy1sb29wLW92ZXItaGVhZGxpbmVzLWluLWFjdGl2ZS1yZWdpb24KICAgICAgICAg IGNsCi0JICcod2hlbiAob3JnLWludmlzaWJsZS1wKSAob3JnLWVuZC1vZi1zdWJ0cmVlIG5pbCB0 KSkpKQorICAgICAgICAgJyh3aGVuIChvcmctaW52aXNpYmxlLXApIChvcmctZW5kLW9mLXN1YnRy ZWUgbmlsIHQpKSkpCiAgICAgKGxldCAoKG9yZy1zZXR0aW5nLXRhZ3MgdCkpCi0gICAgICAoaWYg YXJnCisgICAgICAoaWYganVzdC1hbGlnbgogICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAg ICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgICAgICAgICh3aGlsZSAocmUt c2VhcmNoLWZvcndhcmQgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCBuaWwgdCkKLQkgICAgICAob3Jn LXNldC10YWdzIG5pbCB0KQotCSAgICAgIChlbmQtb2YtbGluZSkpCisgICAgICAgICAgICAgIChv cmctc2V0LXRhZ3MgbmlsIDphbGlnbi1vbmx5LWN1cnJlbnQpCisgICAgICAgICAgICAgIChlbmQt b2YtbGluZSkpCiAgICAgICAgICAgICAobWVzc2FnZSAiQWxsIHRhZ3MgcmVhbGlnbmVkIHRvIGNv bHVtbiAlZCIgb3JnLXRhZ3MtY29sdW1uKSkKLQkobGV0KiAoKGN1cnJlbnQgKG9yZy1nZXQtdGFn cy1zdHJpbmcpKQotCSAgICAgICAodGFncwotCQkoaWYganVzdC1hbGlnbiBjdXJyZW50Ci0JCSAg OzsgR2V0IGEgbmV3IHNldCBvZiB0YWdzIGZyb20gdGhlIHVzZXIuCi0JCSAgKHNhdmUtZXhjdXJz aW9uCi0JCSAgICAobGV0KiAoKHNlZW4pCi0JCQkgICAodGFibGUKLQkJCSAgICAoc2V0cQotCQkJ ICAgICBvcmctbGFzdC10YWdzLWNvbXBsZXRpb24tdGFibGUKLQkJCSAgICAgOzsgVW5pcXVpZnkg dGFncyBpbiBhbGlzdHMsIHlldCBwcmVzZXJ2ZQotCQkJICAgICA7OyBzdHJ1Y3R1cmUgKGkuZS4s IGtleXdvcmRzKS4KLQkJCSAgICAgKGRlbHEgbmlsCi0JCQkJICAgKG1hcGNhcgotCQkJCSAgICAo bGFtYmRhIChwYWlyKQotCQkJCSAgICAgIChsZXQgKChoZWFkIChjYXIgcGFpcikpKQotCQkJCQko Y29uZCAoKHN5bWJvbHAgaGVhZCkgcGFpcikKLQkJCQkJICAgICAgKChtZW1iZXIgaGVhZCBzZWVu KSBuaWwpCi0JCQkJCSAgICAgICh0IChwdXNoIGhlYWQgc2VlbikKLQkJCQkJCSBwYWlyKSkpKQot CQkJCSAgICAoYXBwZW5kCi0JCQkJICAgICAob3Igb3JnLWN1cnJlbnQtdGFnLWFsaXN0Ci0JCQkJ CSAob3JnLWdldC1idWZmZXItdGFncykpCi0JCQkJICAgICAoYW5kCi0JCQkJICAgICAgb3JnLWNv bXBsZXRlLXRhZ3MtYWx3YXlzLW9mZmVyLWFsbC1hZ2VuZGEtdGFncwotCQkJCSAgICAgIChvcmct Z2xvYmFsLXRhZ3MtY29tcGxldGlvbi10YWJsZQotCQkJCSAgICAgICAob3JnLWFnZW5kYS1maWxl cykpKSkpKSkpCi0JCQkgICAoY3VycmVudC10YWdzIChvcmctc3BsaXQtc3RyaW5nIGN1cnJlbnQg IjoiKSkKLQkJCSAgIChpbmhlcml0ZWQtdGFncwotCQkJICAgIChucmV2ZXJzZSAobnRoY2RyIChs ZW5ndGggY3VycmVudC10YWdzKQotCQkJCQkgICAgICAobnJldmVyc2UgKG9yZy1nZXQtdGFncy1h dCkpKSkpKQotCQkgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCi0JCSAgICAgICAiXFwo Wy0rJl0rXFx8LFxcKSIKLQkJICAgICAgICI6IgotCQkgICAgICAgKGlmIChvciAoZXEgdCBvcmct dXNlLWZhc3QtdGFnLXNlbGVjdGlvbikKLQkJCSAgICAgICAoYW5kIG9yZy11c2UtZmFzdC10YWct c2VsZWN0aW9uCi0JCQkJICAgIChkZWxxIG5pbCAobWFwY2FyICMnY2RyIHRhYmxlKSkpKQotCQkJ ICAgKG9yZy1mYXN0LXRhZy1zZWxlY3Rpb24KLQkJCSAgICBjdXJyZW50LXRhZ3MgaW5oZXJpdGVk LXRhZ3MgdGFibGUKLQkJCSAgICAoYW5kIG9yZy1mYXN0LXRhZy1zZWxlY3Rpb24taW5jbHVkZS10 b2RvCi0JCQkJIG9yZy10b2RvLWtleS1hbGlzdCkpCi0JCQkgKGxldCAoKG9yZy1hZGQtY29sb24t YWZ0ZXItdGFnLWNvbXBsZXRpb24KLQkJCQkoPCAxIChsZW5ndGggdGFibGUpKSkpCi0JCQkgICAo b3JnLXRyaW0KLQkJCSAgICAoY29tcGxldGluZy1yZWFkCi0JCQkgICAgICJUYWdzOiAiCi0JCQkg ICAgICMnb3JnLXRhZ3MtY29tcGxldGlvbi1mdW5jdGlvbgotCQkJICAgICBuaWwgbmlsIGN1cnJl bnQgJ29yZy10YWdzLWhpc3RvcnkpKSkpKSkpKSkpCi0KLQkgICh3aGVuIG9yZy10YWdzLXNvcnQt ZnVuY3Rpb24KLQkgICAgKHNldHEgdGFncwotCQkgIChtYXBjb25jYXQKLQkJICAgIydpZGVudGl0 eQotCQkgICAoc29ydCAob3JnLXNwbGl0LXN0cmluZyB0YWdzICJbXls6YWxudW06XV9AIyVdKyIp Ci0JCQkgb3JnLXRhZ3Mtc29ydC1mdW5jdGlvbikKLQkJICAgIjoiKSkpCi0KLQkgIChpZiAob3Ig KHN0cmluZz0gIjoiIHRhZ3MpCi0JCSAgKHN0cmluZz0gIjo6IiB0YWdzKSkKLQkgICAgICAoc2V0 cSB0YWdzICIiKSkKLQkgIChpZiAobm90IChvcmctc3RyaW5nLW53LXAgdGFncykpIChzZXRxIHRh Z3MgIiIpCi0JICAgICh1bmxlc3MgKHN0cmluZy1zdWZmaXgtcCAiOiIgdGFncykgKHNldHEgdGFn cyAoY29uY2F0IHRhZ3MgIjoiKSkpCi0JICAgICh1bmxlc3MgKHN0cmluZy1wcmVmaXgtcCAiOiIg dGFncykgKHNldHEgdGFncyAoY29uY2F0ICI6IiB0YWdzKSkpKQotCi0JICA7OyBJbnNlcnQgbmV3 IHRhZ3MgYXQgdGhlIGNvcnJlY3QgY29sdW1uLgotCSAgKHVubGVzcyAoZXF1YWwgY3VycmVudCB0 YWdzKQotCSAgICAoc2F2ZS1leGN1cnNpb24KLQkgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0J ICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkKLQkJKGxvb2tpbmctYXQgb3JnLWNv bXBsZXgtaGVhZGluZy1yZWdleHApKQotCSAgICAgIDs7IFJlbW92ZSBjdXJyZW50IHRhZ3MsIGlm IGFueS4KLQkgICAgICAod2hlbiAobWF0Y2gtZW5kIDUpIChyZXBsYWNlLW1hdGNoICIiIG5pbCBu aWwgbmlsIDUpKQotCSAgICAgIDs7IEluc2VydCBuZXcgdGFncywgaWYgYW55LiAgT3RoZXJ3aXNl LCByZW1vdmUgdHJhaWxpbmcKLQkgICAgICA7OyB3aGl0ZSBzcGFjZXMuCi0JICAgICAgKGVuZC1v Zi1saW5lKQotCSAgICAgIChpZiAobm90IChlcXVhbCB0YWdzICIiKSkKLQkJICA7OyBXaGVuIHRl eHQgaXMgYmVpbmcgaW5zZXJ0ZWQgb24gYW4gaW52aXNpYmxlCi0JCSAgOzsgcmVnaW9uIGJvdW5k YXJ5LCBpdCBjYW4gYmUgaW5hZHZlcnRlbnRseSBzdWNrZWQKLQkJICA7OyBpbnRvIGludmlzaWJp bGl0eS4KLQkJICAob3V0bGluZS1mbGFnLXJlZ2lvbiAocG9pbnQpIChwcm9nbiAoaW5zZXJ0ICIg IiB0YWdzKSAocG9pbnQpKSBuaWwpCi0JCShza2lwLWNoYXJzLWJhY2t3YXJkICIgXHQiKQotCQko ZGVsZXRlLXJlZ2lvbiAocG9pbnQpIChsaW5lLWVuZC1wb3NpdGlvbikpKSkpCi0JICA7OyBBbGln biB0YWdzLCBpZiBhbnkuICBGaXggdGFncyBjb2x1bW4gaWYgYG9yZy1pbmRlbnQtbW9kZScKLQkg IDs7IGlzIG9uLgotCSAgKHVubGVzcyAoZXF1YWwgdGFncyAiIikKLQkgICAgKGxldCogKChsZXZl bCAoc2F2ZS1leGN1cnNpb24KLQkJCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0JCQkgICAgKHNr aXAtY2hhcnMtZm9yd2FyZCAiXFwqIikpKQotCQkgICAob2Zmc2V0IChpZiAoYm91bmQtYW5kLXRy dWUtcCBvcmctaW5kZW50LW1vZGUpCi0JCQkgICAgICAgKCogKDEtIG9yZy1pbmRlbnQtaW5kZW50 YXRpb24tcGVyLWxldmVsKQotCQkJCSAgKDEtIGxldmVsKSkKLQkJCSAgICAgMCkpCi0JCSAgICh0 YWdzLWNvbHVtbgotCQkgICAgKCsgb3JnLXRhZ3MtY29sdW1uCi0JCSAgICAgICAoaWYgKD4gb3Jn LXRhZ3MtY29sdW1uIDApICgtIG9mZnNldCkgb2Zmc2V0KSkpKQotCSAgICAgIChvcmctLWFsaWdu LXRhZ3MtaGVyZSB0YWdzLWNvbHVtbikpKSkKLSAgICAgICAgKHVubGVzcyBqdXN0LWFsaWduIChy dW4taG9va3MgJ29yZy1hZnRlci10YWdzLWNoYW5nZS1ob29rKSkpKSkpCisgICAgICAgIChsZXQq ICgoY3VycmVudCAob3JnLWdldC10YWdzLXN0cmluZykpCisgICAgICAgICAgICAgICAodGFncwor ICAgICAgICAgICAgICAgIChpZiBhbGlnbi1vbmx5LWN1cnJlbnQKKyAgICAgICAgICAgICAgICAg ICAgY3VycmVudAorICAgICAgICAgICAgICAgICAgOzsgR2V0IGEgbmV3IHNldCBvZiB0YWdzIGZy b20gdGhlIHVzZXIuCisgICAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAg ICAgICAgICAgICAgKGxldCogKChzZWVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRh YmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3JnLWxhc3QtdGFncy1jb21wbGV0aW9uLXRhYmxlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDs7IFVuaXF1aWZ5IHRhZ3MgaW4gYWxpc3RzLCB5ZXQgcHJlc2VydmUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc3RydWN0dXJlIChpLmUuLCBrZXl3b3Jk cykuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxxIG5pbAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobGFtYmRhIChwYWlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGV0ICgoaGVhZCAoY2FyIHBhaXIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uZCAoKHN5bWJvbHAgaGVhZCkgcGFpcikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbWJlciBoZWFkIHNlZW4pIG5p bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCAocHVz aCBoZWFkIHNlZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFpcikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBl bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Igb3JnLWN1cnJlbnQt dGFnLWFsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmct Z2V0LWJ1ZmZlci10YWdzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo YW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1jb21wbGV0ZS10 YWdzLWFsd2F5cy1vZmZlci1hbGwtYWdlbmRhLXRhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG9yZy1nbG9iYWwtdGFncy1jb21wbGV0aW9uLXRhYmxlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWFnZW5kYS1maWxlcykpKSkpKSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC10YWdzIChvcmctc3BsaXQtc3Ry aW5nIGN1cnJlbnQgIjoiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmhlcml0ZWQt dGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAgIChucmV2ZXJzZSAobnRoY2RyIChsZW5n dGggY3VycmVudC10YWdzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChucmV2ZXJzZSAob3JnLWdldC10YWdzLWF0KSkpKSkpCisgICAgICAgICAgICAgICAg ICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAi XFwoWy0rJl0rXFx8LFxcKSIKKyAgICAgICAgICAgICAgICAgICAgICAgIjoiCisgICAgICAgICAg ICAgICAgICAgICAgIChpZiAob3IgKGVxIHQgb3JnLXVzZS1mYXN0LXRhZy1zZWxlY3Rpb24pCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCBvcmctdXNlLWZhc3QtdGFnLXNlbGVj dGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbHEgbmlsIChtYXBj YXIgIydjZHIgdGFibGUpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWZhc3Qt dGFnLXNlbGVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQtdGFncyBp bmhlcml0ZWQtdGFncyB0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgb3Jn LWZhc3QtdGFnLXNlbGVjdGlvbi1pbmNsdWRlLXRvZG8KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9yZy10b2RvLWtleS1hbGlzdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg KGxldCAoKG9yZy1hZGQtY29sb24tYWZ0ZXItdGFnLWNvbXBsZXRpb24KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKDwgMSAobGVuZ3RoIHRhYmxlKSkpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG9yZy10cmltCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBs ZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFnczogIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjJ29yZy10YWdzLWNvbXBsZXRpb24tZnVuY3Rpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIG5pbCBjdXJyZW50ICdvcmctdGFncy1oaXN0 b3J5KSkpKSkpKSkpKQorCisgICAgICAgICAgKHdoZW4gb3JnLXRhZ3Mtc29ydC1mdW5jdGlvbgor ICAgICAgICAgICAgKHNldHEgdGFncworICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdAorICAg ICAgICAgICAgICAgICAgICMnaWRlbnRpdHkKKyAgICAgICAgICAgICAgICAgICAoc29ydCAob3Jn LXNwbGl0LXN0cmluZyB0YWdzICJbXls6YWxudW06XV9AIyVdKyIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgb3JnLXRhZ3Mtc29ydC1mdW5jdGlvbikKKyAgICAgICAgICAgICAgICAgICAiOiIp KSkKKworICAgICAgICAgIChpZiAob3IgKHN0cmluZz0gIjoiIHRhZ3MpCisgICAgICAgICAgICAg ICAgICAoc3RyaW5nPSAiOjoiIHRhZ3MpKQorICAgICAgICAgICAgICAoc2V0cSB0YWdzICIiKSkK KyAgICAgICAgICAoaWYgKG5vdCAob3JnLXN0cmluZy1udy1wIHRhZ3MpKSAoc2V0cSB0YWdzICIi KQorICAgICAgICAgICAgKHVubGVzcyAoc3RyaW5nLXN1ZmZpeC1wICI6IiB0YWdzKSAoc2V0cSB0 YWdzIChjb25jYXQgdGFncyAiOiIpKSkKKyAgICAgICAgICAgICh1bmxlc3MgKHN0cmluZy1wcmVm aXgtcCAiOiIgdGFncykgKHNldHEgdGFncyAoY29uY2F0ICI6IiB0YWdzKSkpKQorCisgICAgICAg ICAgOzsgSW5zZXJ0IG5ldyB0YWdzIGF0IHRoZSBjb3JyZWN0IGNvbHVtbi4KKyAgICAgICAgICAo dW5sZXNzIChlcXVhbCBjdXJyZW50IHRhZ3MpCisgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24K KyAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCBuaWwpKQorICAgICAgICAgICAgICAgIChsb29raW5nLWF0IG9yZy1j b21wbGV4LWhlYWRpbmctcmVnZXhwKSkKKyAgICAgICAgICAgICAgOzsgUmVtb3ZlIGN1cnJlbnQg dGFncywgaWYgYW55LgorICAgICAgICAgICAgICAod2hlbiAobWF0Y2gtZW5kIDUpIChyZXBsYWNl LW1hdGNoICIiIG5pbCBuaWwgbmlsIDUpKQorICAgICAgICAgICAgICA7OyBJbnNlcnQgbmV3IHRh Z3MsIGlmIGFueS4gIE90aGVyd2lzZSwgcmVtb3ZlIHRyYWlsaW5nCisgICAgICAgICAgICAgIDs7 IHdoaXRlIHNwYWNlcy4KKyAgICAgICAgICAgICAgKGVuZC1vZi1saW5lKQorICAgICAgICAgICAg ICAoaWYgKG5vdCAoZXF1YWwgdGFncyAiIikpCisgICAgICAgICAgICAgICAgICA7OyBXaGVuIHRl eHQgaXMgYmVpbmcgaW5zZXJ0ZWQgb24gYW4gaW52aXNpYmxlCisgICAgICAgICAgICAgICAgICA7 OyByZWdpb24gYm91bmRhcnksIGl0IGNhbiBiZSBpbmFkdmVydGVudGx5IHN1Y2tlZAorICAgICAg ICAgICAgICAgICAgOzsgaW50byBpbnZpc2liaWxpdHkuCisgICAgICAgICAgICAgICAgICAob3V0 bGluZS1mbGFnLXJlZ2lvbiAocG9pbnQpIChwcm9nbiAoaW5zZXJ0ICIgIiB0YWdzKSAocG9pbnQp KSBuaWwpCisgICAgICAgICAgICAgICAgKHNraXAtY2hhcnMtYmFja3dhcmQgIiBcdCIpCisgICAg ICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gKHBvaW50KSAobGluZS1lbmQtcG9zaXRpb24pKSkp KQorICAgICAgICAgIDs7IEFsaWduIHRhZ3MsIGlmIGFueS4gIEZpeCB0YWdzIGNvbHVtbiBpZiBg b3JnLWluZGVudC1tb2RlJworICAgICAgICAgIDs7IGlzIG9uLgorICAgICAgICAgICh1bmxlc3Mg KGVxdWFsIHRhZ3MgIiIpCisgICAgICAgICAgICAobGV0KiAoKGxldmVsIChzYXZlLWV4Y3Vyc2lv bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc2tpcC1jaGFycy1mb3J3YXJkICJcXCoiKSkpCisgICAg ICAgICAgICAgICAgICAgKG9mZnNldCAoaWYgKGJvdW5kLWFuZC10cnVlLXAgb3JnLWluZGVudC1t b2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICgxLSBvcmctaW5kZW50LWlu ZGVudGF0aW9uLXBlci1sZXZlbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo MS0gbGV2ZWwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkKKyAgICAgICAgICAg ICAgICAgICAodGFncy1jb2x1bW4KKyAgICAgICAgICAgICAgICAgICAgKCsgb3JnLXRhZ3MtY29s dW1uCisgICAgICAgICAgICAgICAgICAgICAgIChpZiAoPiBvcmctdGFncy1jb2x1bW4gMCkgKC0g b2Zmc2V0KSBvZmZzZXQpKSkpCisgICAgICAgICAgICAgIChvcmctLWFsaWduLXRhZ3MtaGVyZSB0 YWdzLWNvbHVtbikpKSkKKyAgICAgICAgKHVubGVzcyBhbGlnbi1vbmx5LWN1cnJlbnQgKHJ1bi1o b29rcyAnb3JnLWFmdGVyLXRhZ3MtY2hhbmdlLWhvb2spKSkpKSkKIAogKGRlZnVuIG9yZy1jaGFu Z2UtdGFnLWluLXJlZ2lvbiAoYmVnIGVuZCB0YWcgb2ZmKQogICAiQWRkIG9yIHJlbW92ZSBUQUcg Zm9yIGVhY2ggZW50cnkgaW4gdGhlIHJlZ2lvbi4KQEAgLTE2MTY0LDEwICsxNjE4MCwxMCBAQCBk ZWNyZWFzZXMgc2NoZWR1bGVkIG9yIGRlYWRsaW5lIGRhdGUgYnkgb25lIGRheS4iCiAJICAgICAg KChub3QgKG1lbWJlciB2YWx1ZSBvcmctdG9kby1rZXl3b3Jkcy0xKSkKIAkgICAgICAgKHVzZXIt ZXJyb3IgIlwiJXNcIiBpcyBub3QgYSB2YWxpZCBUT0RPIHN0YXRlIiB2YWx1ZSkpKQogCShvcmct dG9kbyB2YWx1ZSkKLQkob3JnLXNldC10YWdzIG5pbCAnYWxpZ24pKQorCShvcmctc2V0LXRhZ3Mg bmlsIDphbGlnbi1vbmx5LWN1cnJlbnQpKQogICAgICAgICgoZXF1YWwgcHJvcGVydHkgIlBSSU9S SVRZIikKIAkob3JnLXByaW9yaXR5IChpZiAob3JnLXN0cmluZy1udy1wIHZhbHVlKSAoc3RyaW5n LXRvLWNoYXIgdmFsdWUpID9ccykpCi0JKG9yZy1zZXQtdGFncyBuaWwgJ2FsaWduKSkKKwkob3Jn LXNldC10YWdzIG5pbCA6YWxpZ24tb25seS1jdXJyZW50KSkKICAgICAgICAoKGVxdWFsIHByb3Bl cnR5ICJTQ0hFRFVMRUQiKQogCShmb3J3YXJkLWxpbmUpCiAJKGlmIChhbmQgKGxvb2tpbmctYXQt cCBvcmctcGxhbm5pbmctbGluZS1yZSkKQEAgLTIwMjU0LDcgKzIwMjcwLDcgQEAgVGhlIGRldGFp bGVkIHJlYWN0aW9uIGRlcGVuZHMgb24gdGhlIHVzZXIgb3B0aW9uIGBvcmctY2F0Y2gtaW52aXNp YmxlLWVkaXRzJy4iCiAKIChkZWZ1biBvcmctZml4LXRhZ3Mtb24tdGhlLWZseSAoKQogICAiQWxp Z24gdGFncyBpbiBoZWFkbGluZSBhdCBwb2ludC4KLVVubGlrZSB0byBgb3JnLXNldC10YWdzJywg aXQgaWdub3JlcyByZWdpb24gYW5kIHNvcnRpbmcuIgorVW5saWtlIGBvcmctc2V0LXRhZ3MnLCBp dCBpZ25vcmVzIHJlZ2lvbiBhbmQgc29ydGluZy4iCiAgICh3aGVuIChhbmQgKGVxIChjaGFyLWFm dGVyIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpID8qKSA7c2hvcnQtY2lyY3VpdAogCSAgICAg KG9yZy1hdC1oZWFkaW5nLXApKQogICAgIChsZXQgKChvcmctaWdub3JlLXJlZ2lvbiB0KQotLSAK Mi4xMy4wCgo= --001a11411230f2defd055415d131--