From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Rodriguez Subject: [PATCH] New version of org-velocity Date: Mon, 27 Oct 2014 14:06:14 -0500 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113613e685018105066c39e6 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50144) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XipcU-0006lC-HL for emacs-orgmode@gnu.org; Mon, 27 Oct 2014 15:06:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XipcR-0001xZ-CX for emacs-orgmode@gnu.org; Mon, 27 Oct 2014 15:06:22 -0400 Received: from mail-wi0-x236.google.com ([2a00:1450:400c:c05::236]:33840) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XipcQ-0001xF-Sg for emacs-orgmode@gnu.org; Mon, 27 Oct 2014 15:06:19 -0400 Received: by mail-wi0-f182.google.com with SMTP id d1so3834362wiv.3 for ; Mon, 27 Oct 2014 12:06:14 -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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --001a113613e685018105066c39e6 Content-Type: multipart/alternative; boundary=001a113613e685017805066c39e4 --001a113613e685017805066c39e4 Content-Type: text/plain; charset=UTF-8 This is a new version of org-velocity. Principally it differs in using cl-lib and lexical binding, but there are also some minor bugfixes for presenting results on very large screens and compatibility with evil-mode. Also, for anyone interested in org-velocity: there is now a development repository on GitHub: . Paul Rodriguez --001a113613e685017805066c39e4 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
This is a new version of org-velocity. Principally it diff= ers in using cl-lib and lexical binding, but there are also some minor bugf= ixes for presenting results on very large screens and compatibility with ev= il-mode.

Also, for anyone interested in org-velocity: th= ere is now a development repository on GitHub: <https://github.com/ruricol= ist/org-velocity>.

Paul Rodriguez
--001a113613e685017805066c39e4-- --001a113613e685018105066c39e6 Content-Type: text/x-patch; charset=UTF-8; name="0001-New-version-of-Org-Velocity.patch" Content-Disposition: attachment; filename="0001-New-version-of-Org-Velocity.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i1qypva80 RnJvbSA1Y2FjMjVhMGQyMTg2N2JjZTljNmEyNGUxMGRmZjE5MGVkOTJiNTY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBNLiBSb2RyaWd1ZXoiIDxwbXJAcnVyaWNvbGlzdC5j b20+CkRhdGU6IFN1biwgMjYgT2N0IDIwMTQgMTc6MTM6MTggLTA1MDAKU3ViamVjdDogW1BBVENI XSBOZXcgdmVyc2lvbiBvZiBPcmctVmVsb2NpdHkKCi0tLQogY29udHJpYi9saXNwL29yZy12ZWxv Y2l0eS5lbCB8ICAzMDkgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTYzIGluc2VydGlvbnMoKyksIDE0NiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2xpc3Avb3JnLXZlbG9jaXR5LmVsIGIvY29udHJpYi9saXNwL29y Zy12ZWxvY2l0eS5lbAppbmRleCBlNjc4OGM2Li5hNzgyMGYxIDEwMDY0NAotLS0gYS9jb250cmli L2xpc3Avb3JnLXZlbG9jaXR5LmVsCisrKyBiL2NvbnRyaWIvbGlzcC9vcmctdmVsb2NpdHkuZWwK QEAgLTEsMTAgKzEsMTAgQEAKLTs7OyBvcmctdmVsb2NpdHkuZWwgLS0tIHNvbWV0aGluZyBsaWtl IE5vdGF0aW9uYWwgVmVsb2NpdHkgZm9yIE9yZy4KKzs7OyBvcmctdmVsb2NpdHkuZWwgLS0tIHNv bWV0aGluZyBsaWtlIE5vdGF0aW9uYWwgVmVsb2NpdHkgZm9yIE9yZy4gLSotIGxleGljYWwtYmlu ZGluZzogdCAtKi0KIAogOzsgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTQgUGF1bCBNLiBSb2RyaWd1 ZXoKIAogOzsgQXV0aG9yOiBQYXVsIE0uIFJvZHJpZ3VleiA8cGF1bG1yb2RyaWd1ZXpAZ21haWwu Y29tPgogOzsgQ3JlYXRlZDogMjAxMC0wNS0wNQotOzsgVmVyc2lvbjogMy4wCis7OyBWZXJzaW9u OiA0LjAKIAogOzsgVGhpcyBmaWxlIGlzIG5vdCBwYXJ0IG9mIEdOVSBFbWFjcy4KIApAQCAtNjQs NyArNjQsNyBAQAogKHJlcXVpcmUgJ2J1dHRvbikKIChyZXF1aXJlICdlbGVjdHJpYykKIChyZXF1 aXJlICdkYWJicmV2KQotKGV2YWwtd2hlbi1jb21waWxlIChyZXF1aXJlICdjbCkpCisocmVxdWly ZSAnY2wtbGliKQogCiAoZGVmZ3JvdXAgb3JnLXZlbG9jaXR5IG5pbAogICAiTm90YXRpb25hbCBW ZWxvY2l0eS1zdHlsZSBpbnRlcmZhY2UgZm9yIE9yZy4iCkBAIC0xMzMsOSArMTMzLDkgQEAgZmls ZS4iCiAgICJNYXRjaCBvbiB3aG9sZSBwaHJhc2UsIGFueSB3b3JkLCBvciBhbGwgd29yZHM/Igog ICA6Z3JvdXAgJ29yZy12ZWxvY2l0eQogICA6dHlwZSAnKGNob2ljZQotCSAgKGNvbnN0IDp0YWcg Ik1hdGNoIHdob2xlIHBocmFzZSIgcGhyYXNlKQotCSAgKGNvbnN0IDp0YWcgIk1hdGNoIGFueSB3 b3JkIiBhbnkpCi0JICAoY29uc3QgOnRhZyAiTWF0Y2ggYWxsIHdvcmRzIiBhbGwpCisgICAgICAg ICAgKGNvbnN0IDp0YWcgIk1hdGNoIHdob2xlIHBocmFzZSIgcGhyYXNlKQorICAgICAgICAgIChj b25zdCA6dGFnICJNYXRjaCBhbnkgd29yZCIgYW55KQorICAgICAgICAgIChjb25zdCA6dGFnICJN YXRjaCBhbGwgd29yZHMiIGFsbCkKICAgICAgICAgICAoY29uc3QgOnRhZyAiTWF0Y2ggYSByZWd1 bGFyIGV4cHJlc3Npb24iIHJlZ2V4cCkpCiAgIDpzYWZlIChsYW1iZGEgKHYpIChtZW1xIHYgJyhw aHJhc2UgYW55IGFsbCByZWdleHApKSkpCiAKQEAgLTE1Miw2ICsxNTIsMTcgQEAgU2VlIHRoZSBk b2N1bWVudGF0aW9uIGZvciBgb3JnLWNhcHR1cmUtdGVtcGxhdGVzJy4iCiAgIDpncm91cCAnb3Jn LXZlbG9jaXR5CiAgIDp0eXBlIChvciAoZ2V0ICdvcmctY2FwdHVyZS10ZW1wbGF0ZXMgJ2N1c3Rv bS10eXBlKSAnbGlzdCkpCiAKKyhkZWZjdXN0b20gb3JnLXZlbG9jaXR5LWhlYWRpbmctbGV2ZWwg MQorICAiT25seSBtYXRjaCBoZWFkaW5ncyBhdCB0aGlzIGxldmVsIG9yIGhpZ2hlci4KKzAgbWVh bnMgdG8gbWF0Y2ggaGVhZGluZ3MgYXQgYW55IGxldmVsLiIKKyAgOmdyb3VwICdvcmctdmVsb2Np dHkKKyAgOnR5cGUgJ2ludGVnZXIKKyAgOnNhZmUgKGxhbWJkYSAoeCkKKyAgICAgICAgICAoYW5k IChpbnRlZ2VycCB4KQorICAgICAgICAgICAgICAgKD49IHggMCkpKSkKKworKGRlZnZhciBjcm0t c2VwYXJhdG9yKSAgICAgICAgICAgICAgICAgIDtFbnN1cmUgZHluYW1pYyBiaW5kaW5nLgorCiAo ZGVmc3Vic3Qgb3JnLXZlbG9jaXR5LWdyYWItcHJldmlldyAoKQogICAiR3JhYiBwcmV2aWV3IG9m IGEgc3VidHJlZS4KIFRoZSBsZW5ndGggb2YgdGhlIHByZXZpZXcgaXMgZGV0ZXJtaW5lZCBieSBg d2luZG93LXdpZHRoJy4KQEAgLTE3MiwxNCArMTgzLDE0IEBAIFJlcGxhY2UgYWxsIGNvbnRpZ3Vv dXMgd2hpdGVzcGFjZSB3aXRoIHNpbmdsZSBzcGFjZXMuIgogICAgICAgICAocG9pbnQtbWF4KSkp KQogICAgICAiICIpKSkKIAotKGRlZnN0cnVjdCBvcmctdmVsb2NpdHktaGVhZGluZyBidWZmZXIg cG9zaXRpb24gbmFtZSBsZXZlbCBwcmV2aWV3KQorKGNsLWRlZnN0cnVjdCBvcmctdmVsb2NpdHkt aGVhZGluZyBidWZmZXIgcG9zaXRpb24gbmFtZSBsZXZlbCBwcmV2aWV3KQogCiAoZGVmc3Vic3Qg b3JnLXZlbG9jaXR5LW5lYXJlc3QtaGVhZGluZyAocG9zaXRpb24pCiAgICJSZXR1cm4gbGFzdCBo ZWFkaW5nIGF0IFBPU0lUSU9OLgogSWYgdGhlcmUgaXMgbm8gbGFzdCBoZWFkaW5nLCByZXR1cm4g bmlsLiIKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgKGdvdG8tY2hhciBwb3NpdGlvbikKLSAgICAo cmUtc2VhcmNoLWJhY2t3YXJkIG9yZy12ZWxvY2l0eS1oZWFkaW5nLXJlZ2V4cCkKKyAgICAocmUt c2VhcmNoLWJhY2t3YXJkIChvcmctdmVsb2NpdHktaGVhZGluZy1yZWdleHApKQogICAgIChsZXQg KChjb21wb25lbnRzIChvcmctaGVhZGluZy1jb21wb25lbnRzKSkpCiAgICAgICAobWFrZS1vcmct dmVsb2NpdHktaGVhZGluZwogICAgICAgIDpidWZmZXIgKGN1cnJlbnQtYnVmZmVyKQpAQCAtMTkx LDE1ICsyMDIsMTggQEAgSWYgdGhlcmUgaXMgbm8gbGFzdCBoZWFkaW5nLCByZXR1cm4gbmlsLiIK IAogKGRlZmNvbnN0IG9yZy12ZWxvY2l0eS1pbmRleAogICAoZXZhbC13aGVuLWNvbXBpbGUKLSAg ICAobmNvbmMgKG51bWJlci1zZXF1ZW5jZSA0OSA1NykgCTtudW1iZXJzCisgICAgKG5jb25jIChu dW1iZXItc2VxdWVuY2UgNDkgNTcpICAgICAgO251bWJlcnMKICAgICAgICAgICAgKG51bWJlci1z ZXF1ZW5jZSA5NyAxMjIpCTtsb3dlcmNhc2UgbGV0dGVycwogICAgICAgICAgICAobnVtYmVyLXNl cXVlbmNlIDY1IDkwKSkpCTt1cHBlcmNhc2UgbGV0dGVycwogICAiTGlzdCBvZiBjaGFycyBmb3Ig aW5kZXhpbmcgcmVzdWx0cy4iKQogCiAoZGVmY29uc3Qgb3JnLXZlbG9jaXR5LW1hdGNoLWJ1ZmZl ci1uYW1lICIqVmVsb2NpdHkgbWF0Y2hlcyoiKQogCi0oZGVmY29uc3Qgb3JnLXZlbG9jaXR5LWhl YWRpbmctcmVnZXhwICJeXFwqICIKLSAgIlJlZ2V4cCB0byBtYXRjaCBvbmx5IHRvcC1sZXZlbCBo ZWFkaW5ncy4iKQorKGNsLWRlZnVuIG9yZy12ZWxvY2l0eS1oZWFkaW5nLXJlZ2V4cCAoJm9wdGlv bmFsIChsZXZlbCBvcmctdmVsb2NpdHktaGVhZGluZy1sZXZlbCkpCisgICJSZWdleHAgdG8gbWF0 Y2ggaGVhZGluZ3MgYXQgTEVWRUwgb3IgZGVlcGVyLiIKKyAgKGlmICh6ZXJvcCBsZXZlbCkKKyAg ICAgICJeXFwqKyAiCisgICAgKGZvcm1hdCAiXlxcKlxcezEsJWRcXH0gIiBsZXZlbCkpKQogCiAo ZGVmdmFyIG9yZy12ZWxvY2l0eS1zZWFyY2ggbmlsCiAgICJWYXJpYWJsZSB0byBiaW5kIHRvIGN1 cnJlbnQgc2VhcmNoLiIpCkBAIC0yMjMsMTIgKzIzNyw2IEBAIG9mIHRoZSBiYXNlIGJ1ZmZlcjsg aW4gdGhlIGxhdHRlciwgcmV0dXJuIHRoZSBmaWxlIG5hbWUgb2YKICAgICAgICh3aXRoLWN1cnJl bnQtYnVmZmVyICh3aW5kb3ctYnVmZmVyIChhY3RpdmUtbWluaWJ1ZmZlci13aW5kb3cpKQogICAg ICAgICAobWluaWJ1ZmZlci1jb250ZW50cykpKSkKIAotKGRlZnN1YnN0IG9yZy12ZWxvY2l0eS1z aW5nbGVwIChvYmplY3QpCi0gICJSZXR1cm4gdCB3aGVuIE9CSkVDVCBpcyBhIGxpc3Qgb3Igc2Vx dWVuY2Ugb2Ygb25lIGVsZW1lbnQuIgotICAoaWYgKGNvbnNwIG9iamVjdCkKLSAgICAgIChudWxs IChjZHIgb2JqZWN0KSkKLSAgICAoPSAobGVuZ3RoIG9iamVjdCkgMSkpKQotCiAoZGVmdW4gb3Jn LXZlbG9jaXR5LWJ1Y2tldC1maWxlICgpCiAgICJSZXR1cm4gdGhlIHByb3BlciBmaWxlIGZvciBP cmctVmVsb2NpdHkgdG8gc2VhcmNoLgogSWYgYG9yZy12ZWxvY2l0eS1hbHdheXMtdXNlLWJ1Y2tl dCcgaXMgdCwgdXNlIGJ1Y2tldCBmaWxlOwpAQCAtMjYwLDE3ICsyNjgsMjIgQEAgdXNlIGl0LiIK ICAgIlJldHVybiB0aGUgcHJvcGVyIGJ1ZmZlciBmb3IgT3JnLVZlbG9jaXR5IHRvIGRpc3BsYXkg aW4uIgogICAoZ2V0LWJ1ZmZlci1jcmVhdGUgb3JnLXZlbG9jaXR5LW1hdGNoLWJ1ZmZlci1uYW1l KSkKIAorKGRlZnN1YnN0IG9yZy12ZWxvY2l0eS1tYXRjaC13aW5kb3cgKCkKKyAgKGdldC1idWZm ZXItd2luZG93IChvcmctdmVsb2NpdHktbWF0Y2gtYnVmZmVyKSkpCisKKyhkZWZzdWJzdCBvcmct dmVsb2NpdHktbWF0Y2gtc3RhZ2luZy1idWZmZXIgKCkKKyAgKGdldC1idWZmZXItY3JlYXRlICIg VmVsb2NpdHkgbWF0Y2hlcyIpKQorCiAoZGVmdW4gb3JnLXZlbG9jaXR5LWJlZ2lubmluZy1vZi1o ZWFkaW5ncyAoKQogICAiR290byB0aGUgc3RhcnQgb2YgdGhlIGZpcnN0IGhlYWRpbmcuIgogICAo Z290by1jaGFyIChwb2ludC1taW4pKQogICA7OyBJZiB3ZSBhcmUgYmVmb3JlIHRoZSBmaXJzdCBo ZWFkaW5nIHdlIGNvdWxkIHN0aWxsIGJlIGF0IHRoZQogICA7OyBmaXJzdCBoZWFkaW5nLgotICAo b3IgKGxvb2tpbmctYXQgb3JnLXZlbG9jaXR5LWhlYWRpbmctcmVnZXhwKQotICAgICAgKHJlLXNl YXJjaC1mb3J3YXJkIG9yZy12ZWxvY2l0eS1oZWFkaW5nLXJlZ2V4cCkpKQorICAob3IgKGxvb2tp bmctYXQgKG9yZy12ZWxvY2l0eS1oZWFkaW5nLXJlZ2V4cCkpCisgICAgICAocmUtc2VhcmNoLWZv cndhcmQgKG9yZy12ZWxvY2l0eS1oZWFkaW5nLXJlZ2V4cCkpKSkKIAogKGRlZnVuIG9yZy12ZWxv Y2l0eS1tYWtlLWluZGlyZWN0LWJ1ZmZlciAoaGVhZGluZykKICAgIk1ha2Ugb3Igc3dpdGNoIHRv IGFuIGluZGlyZWN0IGJ1ZmZlciB2aXNpdGluZyBIRUFESU5HLiIKLQogICAobGV0KiAoKGJ1Y2tl dCAob3JnLXZlbG9jaXR5LWhlYWRpbmctYnVmZmVyIGhlYWRpbmcpKQogICAgICAgICAgKG5hbWUg KG9yZy12ZWxvY2l0eS1oZWFkaW5nLW5hbWUgaGVhZGluZykpCiAgICAgICAgICAoZXhpc3Rpbmcg KGdldC1idWZmZXIgbmFtZSkpKQpAQCAtMjc5LDcgKzI5Miw4IEBAIHVzZSBpdC4iCiAgICAgICAg IGV4aXN0aW5nCiAgICAgICAobWFrZS1pbmRpcmVjdC1idWZmZXIKICAgICAgICBidWNrZXQKLSAg ICAgICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIChvcmctdmVsb2NpdHktaGVhZGluZy1uYW1l IGhlYWRpbmcpKSkpKSkKKyAgICAgICAoZ2VuZXJhdGUtbmV3LWJ1ZmZlci1uYW1lIChvcmctdmVs b2NpdHktaGVhZGluZy1uYW1lIGhlYWRpbmcpKQorICAgICAgIHQpKSkpCiAKIChkZWZ1biBvcmct dmVsb2NpdHktY2FwdHVyZSAoKQogICAiUmVjb3JkIGEgbm90ZSB3aXRoIGBvcmctY2FwdHVyZScu IgpAQCAtMjg3LDM0ICszMDEsMzggQEAgdXNlIGl0LiIKICAgICAgICAgIG9yZy12ZWxvY2l0eS1j YXB0dXJlLXRlbXBsYXRlcykpCiAgICAgKG9yZy1jYXB0dXJlIG5pbAogICAgICAgICAgICAgICAg ICA7OyBUaGlzIGlzIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLgotICAgICAgICAg ICAgICAgICAod2hlbiAob3JnLXZlbG9jaXR5LXNpbmdsZXAgb3JnLWNhcHR1cmUtdGVtcGxhdGVz KQorICAgICAgICAgICAgICAgICAod2hlbiAobnVsbCAoY2RyIG9yZy1jYXB0dXJlLXRlbXBsYXRl cykpCiAgICAgICAgICAgICAgICAgICAgKGNhYXIgb3JnLWNhcHR1cmUtdGVtcGxhdGVzKSkpCi0g ICAgKGlmIG9yZy1jYXB0dXJlLW1vZGUgKHJlbmFtZS1idWZmZXIgb3JnLXZlbG9jaXR5LXNlYXJj aCB0KSkpKQorICAgICh3aGVuIG9yZy1jYXB0dXJlLW1vZGUKKyAgICAgIChyZW5hbWUtYnVmZmVy IG9yZy12ZWxvY2l0eS1zZWFyY2ggdCkpKSkKIAogKGRlZnZhciBvcmctdmVsb2NpdHktc2F2ZWQt d2luY29uZiBuaWwpCiAobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ29yZy12ZWxvY2l0eS1z YXZlZC13aW5jb25mKQogCiAoZGVmdW4gb3JnLXZlbG9jaXR5LWVkaXQtZW50cnkgKGhlYWRpbmcp CiAgICJFZGl0IGVudHJ5IGF0IEhFQURJTkcgaW4gYW4gaW5kaXJlY3QgYnVmZmVyLiIKLSAgKGxl dCAoKHdpbmNvbmYgKGN1cnJlbnQtd2luZG93LWNvbmZpZ3VyYXRpb24pKSkKLSAgICAobGV0ICgo YnVmZmVyIChvcmctdmVsb2NpdHktbWFrZS1pbmRpcmVjdC1idWZmZXIgaGVhZGluZykpKQotICAg ICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCi0gICAgICAgIChsZXQgKChvcmctaW5oaWJp dC1zdGFydHVwIHQpKQotICAgICAgICAgIChvcmctbW9kZSkpCi0gICAgICAgIChzZXRxIG9yZy12 ZWxvY2l0eS1zYXZlZC13aW5jb25mIHdpbmNvbmYpCi0gICAgICAgIChnb3RvLWNoYXIgKG9yZy12 ZWxvY2l0eS1oZWFkaW5nLXBvc2l0aW9uIGhlYWRpbmcpKQotICAgICAgICAobmFycm93LXRvLXJl Z2lvbiAocG9pbnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctZW5kLW9mLXN1YnRyZWUgdCkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkKLSAgICAgICAgKGdvdG8tY2hhciAocG9p bnQtbWluKSkKLSAgICAgICAgKGFkZC1ob29rICdvcmctY3RybC1jLWN0cmwtYy1ob29rICdvcmct dmVsb2NpdHktZGlzbWlzcyBuaWwgdCkpCi0gICAgICAocG9wLXRvLWJ1ZmZlciBidWZmZXIpCi0g ICAgICAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlICdoZWFkZXItbGluZS1mb3JtYXQpCi0gICAg ICAgICAgIChmb3JtYXQgIiVzIFVzZSBDLWMgQy1jIHRvIGZpbmlzaC4iCi0gICAgICAgICAgICAg ICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lCi0gICAgICAgICAgICAgICAgICAgIChidWZmZXIt ZmlsZS1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAob3JnLXZlbG9jaXR5LWhlYWRpbmctYnVm ZmVyIGhlYWRpbmcpKSkpKSkpKQorICAobGV0ICgod2luY29uZiAoY3VycmVudC13aW5kb3ctY29u ZmlndXJhdGlvbikpCisgICAgICAgIChidWZmZXIgKG9yZy12ZWxvY2l0eS1tYWtlLWluZGlyZWN0 LWJ1ZmZlciBoZWFkaW5nKSkKKyAgICAgICAgKGluaGliaXQtcG9pbnQtbW90aW9uLWhvb2tzIHQp CisgICAgICAgIChpbmhpYml0LWZpZWxkLXRleHQtbW90aW9uIHQpKQorICAgICh3aXRoLWN1cnJl bnQtYnVmZmVyIGJ1ZmZlcgorICAgICAgKHNldHEgb3JnLXZlbG9jaXR5LXNhdmVkLXdpbmNvbmYg d2luY29uZikKKyAgICAgIChnb3RvLWNoYXIgKG9yZy12ZWxvY2l0eS1oZWFkaW5nLXBvc2l0aW9u IGhlYWRpbmcpKQorICAgICAgKGxldCAoKHN0YXJ0IChwb2ludCkpCisgICAgICAgICAgICAoZW5k IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgIChvcmctZW5kLW9mLXN1YnRyZWUg dCkKKyAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgIDs7IE91dGxpbmUgdmll dyBhbmQgbmFycm93LXRvLXJlZ2lvbiBpbnRlcmFjdCBwb29ybHkuCisgICAgICAgIChvdXRsaW5l LWZsYWctcmVnaW9uIHN0YXJ0IGVuZCBuaWwpCisgICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIHN0 YXJ0IGVuZCkpCisgICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQorICAgICAgKGFkZC1ob29r ICdvcmctY3RybC1jLWN0cmwtYy1ob29rICdvcmctdmVsb2NpdHktZGlzbWlzcyBuaWwgdCkpCisg ICAgKHBvcC10by1idWZmZXIgYnVmZmVyKQorICAgIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUg J2hlYWRlci1saW5lLWZvcm1hdCkKKyAgICAgICAgIChmb3JtYXQgIiVzIFVzZSBDLWMgQy1jIHRv IGZpbmlzaC4iCisgICAgICAgICAgICAgICAgIChhYmJyZXZpYXRlLWZpbGUtbmFtZQorICAgICAg ICAgICAgICAgICAgKGJ1ZmZlci1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAgICAob3JnLXZl bG9jaXR5LWhlYWRpbmctYnVmZmVyIGhlYWRpbmcpKSkpKSkpCiAKIChkZWZ1biBvcmctdmVsb2Np dHktZGlzbWlzcyAoKQogICAiU2F2ZSBjdXJyZW50IGVudHJ5IGFuZCBjbG9zZSBpbmRpcmVjdCBi dWZmZXIuIgpAQCAtMzI3LDE0ICszNDUsMTggQEAgdXNlIGl0LiIKIAogKGRlZnVuIG9yZy12ZWxv Y2l0eS12aXNpdC1idXR0b24gKGJ1dHRvbikKICAgKHJ1bi1ob29rcyAnbW91c2UtbGVhdmUtYnVm ZmVyLWhvb2spCi0gIChpZiBvcmctdmVsb2NpdHktdXNlLXNlYXJjaC1yaW5nCi0gICAgICAoYWRk LXRvLWhpc3RvcnkgJ3NlYXJjaC1yaW5nCi0gICAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbi1n ZXQgYnV0dG9uICdzZWFyY2gpCi0gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoLXJpbmctbWF4 KSkKLSAgKG9yZy12ZWxvY2l0eS1lZGl0LWVudHJ5IChidXR0b24tZ2V0IGJ1dHRvbiAnbWF0Y2gp KSkKKyAgKHdoZW4gb3JnLXZlbG9jaXR5LXVzZS1zZWFyY2gtcmluZworICAgIChhZGQtdG8taGlz dG9yeSAnc2VhcmNoLXJpbmcKKyAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbi1nZXQgYnV0dG9u ICdzZWFyY2gpCisgICAgICAgICAgICAgICAgICAgIHNlYXJjaC1yaW5nLW1heCkpCisgIChsZXQg KChtYXRjaCAoYnV0dG9uLWdldCBidXR0b24gJ21hdGNoKSkpCisgICAgKHRocm93ICdvcmctdmVs b2NpdHktZG9uZQorICAgICAgICAgICAobGFtYmRhICgpCisgICAgICAgICAgICAgKG9yZy12ZWxv Y2l0eS1lZGl0LWVudHJ5IG1hdGNoKSkpKSkKIAogKGRlZmluZS1idXR0b24tdHlwZSAnb3JnLXZl bG9jaXR5LWJ1dHRvbgotICAnYWN0aW9uICMnb3JnLXZlbG9jaXR5LXZpc2l0LWJ1dHRvbikKKyAg J2FjdGlvbiAjJ29yZy12ZWxvY2l0eS12aXNpdC1idXR0b24KKyAgJ2ZvbGxvdy1saW5rICdtb3Vz ZS1mYWNlKQogCiAoZGVmc3Vic3Qgb3JnLXZlbG9jaXR5LWJ1dHRvbml6ZSAoaGVhZGluZykKICAg Ikluc2VydCBIRUFESU5HIGFzIGEgdGV4dCBidXR0b24gd2l0aCBubyBoaW50cy4iCkBAIC0zNTIs OCArMzc0LDggQEAgdXNlIGl0LiIKICAgICAgIChvcmctdmVsb2NpdHktaGVhZGluZy1wcmV2aWV3 IGhlYWRpbmcpCiAgICAgICAnZmFjZSAnc2hhZG93KSkpKQogCi0oZGVmc3Vic3QqIG9yZy12ZWxv Y2l0eS1wcmVzZW50LW1hdGNoICgma2V5IGhpbnQgbWF0Y2gpCi0gICh3aXRoLWN1cnJlbnQtYnVm ZmVyIChvcmctdmVsb2NpdHktbWF0Y2gtYnVmZmVyKQorKGRlZnN1YnN0IG9yZy12ZWxvY2l0eS1w cmVzZW50LW1hdGNoIChoaW50IG1hdGNoKQorICAod2l0aC1jdXJyZW50LWJ1ZmZlciAob3JnLXZl bG9jaXR5LW1hdGNoLXN0YWdpbmctYnVmZmVyKQogICAgICh3aGVuIGhpbnQgKGluc2VydCAiIyIg aGludCAiICIpKQogICAgIChvcmctdmVsb2NpdHktYnV0dG9uaXplIG1hdGNoKQogICAgIChvcmct dmVsb2NpdHktaW5zZXJ0LXByZXZpZXcgbWF0Y2gpCkBAIC0zNjIsMTkgKzM4NCwxOSBAQCB1c2Ug aXQuIgogKGRlZnVuIG9yZy12ZWxvY2l0eS1nZW5lcmljLXNlYXJjaCAoc2VhcmNoICZvcHRpb25h bCBoaWRlLWhpbnRzKQogICAiRGlzcGxheSBhbnkgZW50cnkgY29udGFpbmluZyBTRUFSQ0guIgog ICAobGV0ICgoaGludHMgb3JnLXZlbG9jaXR5LWluZGV4KSBtYXRjaGVzKQotICAgIChibG9jayBu aWwKKyAgICAoY2wtYmxvY2sgbmlsCiAgICAgICAod2hpbGUgKGFuZCBoaW50cyAocmUtc2VhcmNo LWZvcndhcmQgc2VhcmNoIG5pbCB0KSkKICAgICAgICAgKGxldCAoKG1hdGNoIChvcmctdmVsb2Np dHktbmVhcmVzdC1oZWFkaW5nIChwb2ludCkpKSkKICAgICAgICAgICAob3JnLXZlbG9jaXR5LXBy ZXNlbnQtbWF0Y2gKLSAgICAgICAgICAgOmhpbnQgKHVubGVzcyBoaWRlLWhpbnRzIChjYXIgaGlu dHMpKQotICAgICAgICAgICA6bWF0Y2ggbWF0Y2gpCisgICAgICAgICAgICh1bmxlc3MgaGlkZS1o aW50cyAoY2FyIGhpbnRzKSkKKyAgICAgICAgICAgbWF0Y2gpCiAgICAgICAgICAgKHB1c2ggbWF0 Y2ggbWF0Y2hlcykpCiAgICAgICAgIChzZXRxIGhpbnRzIChjZHIgaGludHMpKQotICAgICAgICAo dW5sZXNzIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctdmVsb2NpdHktaGVhZGluZy1yZWdleHAgbmls IHQpCisgICAgICAgICh1bmxlc3MgKHJlLXNlYXJjaC1mb3J3YXJkIChvcmctdmVsb2NpdHktaGVh ZGluZy1yZWdleHApIG5pbCB0KQogICAgICAgICAgIChyZXR1cm4pKSkpCiAgICAgKG5yZXZlcnNl IG1hdGNoZXMpKSkKIAotKGRlZnVuKiBvcmctdmVsb2NpdHktYWxsLXNlYXJjaCAoc2VhcmNoICZv cHRpb25hbCBoaWRlLWhpbnRzIG1heCkKKyhjbC1kZWZ1biBvcmctdmVsb2NpdHktYWxsLXNlYXJj aCAoc2VhcmNoICZvcHRpb25hbCBoaWRlLWhpbnRzKQogICAiRGlzcGxheSBvbmx5IGVudHJpZXMg Y29udGFpbmluZyBldmVyeSB3b3JkIGluIFNFQVJDSC4iCiAgIChsZXQgKChrZXl3b3JkcyAobWFw Y2FyICdyZWdleHAtcXVvdGUgKHNwbGl0LXN0cmluZyBzZWFyY2gpKSkKICAgICAgICAgKGhpbnRz IG9yZy12ZWxvY2l0eS1pbmRleCkKQEAgLTM4OCwyMyArNDEwLDIzIEBAIHVzZSBpdC4iCiAgICAg ICAgKHNldHEgb3JnLW1hcC1jb250aW51ZS1mcm9tCiAgICAgICAgICAgICAgKHNhdmUtZXhjdXJz aW9uCiAgICAgICAgICAgICAgICAoZ290by1jaGFyIChsaW5lLWVuZC1wb3NpdGlvbikpCi0gICAg ICAgICAgICAgICAoaWYgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy12ZWxvY2l0eS1oZWFkaW5nLXJl Z2V4cCBuaWwgdCkKKyAgICAgICAgICAgICAgIChpZiAocmUtc2VhcmNoLWZvcndhcmQgKG9yZy12 ZWxvY2l0eS1oZWFkaW5nLXJlZ2V4cCkgbmlsIHQpCiAgICAgICAgICAgICAgICAgICAgKGxpbmUt ZW5kLXBvc2l0aW9uKQogICAgICAgICAgICAgICAgICAocG9pbnQtbWF4KSkpKQotICAgICAgICh3 aGVuIChsb29wIGZvciB3b3JkIGluIGtleXdvcmRzCi0gICAgICAgICAgICAgICAgICAgYWx3YXlz IChzYXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZS1zZWFyY2gt Zm9yd2FyZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXDwiIHdvcmQg IlxcPiIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1tYXAtY29udGludWUtZnJv bSB0KSkpCisgICAgICAgKHdoZW4gKGNsLWxvb3AgZm9yIHdvcmQgaW4ga2V5d29yZHMKKyAgICAg ICAgICAgICAgICAgICAgICBhbHdheXMgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjb25jYXQgIlxcPCIgd29yZCAiXFw+IikKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3JnLW1hcC1jb250aW51ZS1mcm9tIHQpKSkKICAgICAgICAgIChsZXQgKCht YXRjaCAob3JnLXZlbG9jaXR5LW5lYXJlc3QtaGVhZGluZyAobWF0Y2gtZW5kIDApKSkpCiAgICAg ICAgICAgIChvcmctdmVsb2NpdHktcHJlc2VudC1tYXRjaAotICAgICAgICAgICAgOmhpbnQgKHVu bGVzcyBoaWRlLWhpbnRzIChjYXIgaGludHMpKQotICAgICAgICAgICAgOm1hdGNoIG1hdGNoKQor ICAgICAgICAgICAgKHVubGVzcyBoaWRlLWhpbnRzIChjYXIgaGludHMpKQorICAgICAgICAgICAg bWF0Y2gpCiAgICAgICAgICAgIChwdXNoIG1hdGNoIG1hdGNoZXMpCiAgICAgICAgICAgIChzZXRx IGhpbnRzIChjZHIgaGludHMpKSkpKSkKICAgICAobnJldmVyc2UgbWF0Y2hlcykpKQogCi0oZGVm dW4qIG9yZy12ZWxvY2l0eS1wcmVzZW50IChzZWFyY2ggJmtleSBoaWRlLWhpbnRzKQorKGNsLWRl ZnVuIG9yZy12ZWxvY2l0eS1wcmVzZW50IChzZWFyY2ggJmtleSBoaWRlLWhpbnRzKQogICAiQnV0 dG9uaXplIG1hdGNoZXMgZm9yIFNFQVJDSCBpbiBgb3JnLXZlbG9jaXR5LW1hdGNoLWJ1ZmZlcicu CiBJZiBISURFLUhJTlRTIGlzIG5vbi1uaWwsIGRpc3BsYXkgZW50cmllcyB3aXRob3V0IGluZGlj ZXMuIFNFQVJDSAogYmluZHMgYG9yZy12ZWxvY2l0eS1zZWFyY2gnLgpAQCAtNDI1LDcgKzQ0Nyw3 IEBAIFJldHVybiBtYXRjaGVzLiIKICAgICAgICAgICAgICAgICAgICAgKGluaGliaXQtZmllbGQt dGV4dC1tb3Rpb24gdCkpCiAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgICAg ICAgICAgICAgICAob3JnLXZlbG9jaXR5LWJlZ2lubmluZy1vZi1oZWFkaW5ncykKLSAgICAgICAg ICAgICAgICAgIChjYXNlIG9yZy12ZWxvY2l0eS1zZWFyY2gtbWV0aG9kCisgICAgICAgICAgICAg ICAgICAoY2wtY2FzZSBvcmctdmVsb2NpdHktc2VhcmNoLW1ldGhvZAogICAgICAgICAgICAgICAg ICAgICAoYWxsIChvcmctdmVsb2NpdHktYWxsLXNlYXJjaCBzZWFyY2ggaGlkZS1oaW50cykpCiAg ICAgICAgICAgICAgICAgICAgIChwaHJhc2UgKG9yZy12ZWxvY2l0eS1nZW5lcmljLXNlYXJjaAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXDwiIChyZWdleHAtcXVvdGUg c2VhcmNoKSkKQEAgLTQ0MCw2ICs0NjIsNyBAQCBSZXR1cm4gbWF0Y2hlcy4iCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaW52YWxpZC1yZWdleHAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobWluaWJ1ZmZlci1tZXNzYWdlICIlcyIgbG9zc2FnZSkpKSkpKSkpCiAgICAg ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKG9yZy12ZWxvY2l0eS1tYXRjaC1idWZmZXIpCisg ICAgICAgICAgICAoYnVmZmVyLXN3YXAtdGV4dCAob3JnLXZlbG9jaXR5LW1hdGNoLXN0YWdpbmct YnVmZmVyKSkKICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkpCiAgICAgKHdp dGgtY3VycmVudC1idWZmZXIgKG9yZy12ZWxvY2l0eS1tYXRjaC1idWZmZXIpCiAgICAgICAoZXJh c2UtYnVmZmVyKSkpKQpAQCAtNDUyLDE0ICs0NzUsMTQgQEAgUmV0dXJuIG1hdGNoZXMuIgogCiAo YWRkLWhvb2sgJ29yZy1zdG9yZS1saW5rLWZ1bmN0aW9ucyAnb3JnLXZlbG9jaXR5LXN0b3JlLWxp bmspCiAKLShkZWZ1biogb3JnLXZlbG9jaXR5LWNyZWF0ZSAoc2VhcmNoICZrZXkgYXNrKQorKGNs LWRlZnVuIG9yZy12ZWxvY2l0eS1jcmVhdGUgKHNlYXJjaCAma2V5IGFzaykKICAgIkNyZWF0ZSBu ZXcgaGVhZGluZyBuYW1lZCBTRUFSQ0guCiBJZiBBU0sgaXMgbm9uLW5pbCwgYXNrIGZpcnN0LiIK ICAgKHdoZW4gKG9yIChudWxsIGFzaykgKHktb3Itbi1wICJObyBtYXRjaCBmb3VuZCwgY3JlYXRl PyAiKSkKICAgICAobGV0ICgob3JnLXZlbG9jaXR5LXNlYXJjaCBzZWFyY2gpCi0JICAob3JnLWRl ZmF1bHQtbm90ZXMtZmlsZSAob3JnLXZlbG9jaXR5LWJ1Y2tldC1maWxlKSkKLQkgIDs7IHNhdmUg YSBzdG9yZWQgbGluawotCSAgb3JnLXN0b3JlLWxpbmstcGxpc3QpCisgICAgICAgICAgKG9yZy1k ZWZhdWx0LW5vdGVzLWZpbGUgKG9yZy12ZWxvY2l0eS1idWNrZXQtZmlsZSkpCisgICAgICAgICAg Ozsgc2F2ZSBhIHN0b3JlZCBsaW5rCisgICAgICAgICAgb3JnLXN0b3JlLWxpbmstcGxpc3QpCiAg ICAgICAob3JnLXZlbG9jaXR5LWNhcHR1cmUpKQogICAgIHNlYXJjaCkpCiAKQEAgLTQ2OSwxNyAr NDkyLDE4IEBAIElmIEFTSyBpcyBub24tbmlsLCBhc2sgZmlyc3QuIgogICAgICh1bmxlc3MgKG9y CiAgICAgICAgICAgICAgKG5vdCAoc3RyaW5ncCBzZWFyY2gpKQogICAgICAgICAgICAgIChzdHJp bmc9ICIiIHNlYXJjaCkpCTtleGl0IG9uIGVtcHR5IHN0cmluZwotICAgICAgKGNhc2UKKyAgICAg IChjbC1jYXNlCiAgICAgICAgICAgKGlmIChhbmQgb3JnLXZlbG9jaXR5LWZvcmNlLW5ldyAoZXEg bGFzdC1jb21tYW5kLWV2ZW50ID9cQy1qKSkKICAgICAgICAgICAgICAgOmZvcmNlCi0gICAgICAg ICAgICAobGV0ICgobWF0Y2hlcyAob3JnLXZlbG9jaXR5LXByZXNlbnQgc2VhcmNoKSkpCisgICAg ICAgICAgICAobGV0KiAoKG9yZy12ZWxvY2l0eS1pbmRleCAob3JnLXZlbG9jaXR5LWFkanVzdC1p bmRleCkpCisgICAgICAgICAgICAgICAgICAgKG1hdGNoZXMgKG9yZy12ZWxvY2l0eS1wcmVzZW50 IHNlYXJjaCkpKQogICAgICAgICAgICAgICAoY29uZCAoKG51bGwgbWF0Y2hlcykgOm5ldykKLSAg ICAgICAgICAgICAgICAgICAgKChvcmctdmVsb2NpdHktc2luZ2xlcCBtYXRjaGVzKSA6Zm9sbG93 KQorICAgICAgICAgICAgICAgICAgICAoKG51bGwgKGNkciBtYXRjaGVzKSkgOmZvbGxvdykKICAg ICAgICAgICAgICAgICAgICAgKHQgOnByb21wdCkpKSkKICAgICAgICAgKDpwcm9tcHQgKHByb2du CiAgICAgICAgICAgICAgICAgICAgKHBvcC10by1idWZmZXIgKG9yZy12ZWxvY2l0eS1tYXRjaC1i dWZmZXIpKQogICAgICAgICAgICAgICAgICAgIChsZXQgKChoaW50IChvcmctdmVsb2NpdHktZWxl Y3RyaWMtcmVhZC1oaW50KSkpCi0gICAgICAgICAgICAgICAgICAgICAod2hlbiBoaW50IChjYXNl IGhpbnQKKyAgICAgICAgICAgICAgICAgICAgICh3aGVuIGhpbnQgKGNsLWNhc2UgaGludAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6ZWRpdCAob3JnLXZlbG9jaXR5LXJlYWQg bmlsIHNlYXJjaCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDpmb3JjZSAo b3JnLXZlbG9jaXR5LWNyZWF0ZSBzZWFyY2gpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChvdGhlcndpc2UgKG9yZy12ZWxvY2l0eS1hY3RpdmF0ZS1idXR0b24gaGludCkpKSkp KSkKQEAgLTQ5MywxNyArNTE3LDEwIEBAIElmIEFTSyBpcyBub24tbmlsLCBhc2sgZmlyc3QuIgog ICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uLWFjdGl2YXRlIChuZXh0LWJ1dHRvbiAocG9p bnQpKSkpCiAgICAgICAgICAgICAgICAgICAgKG9yZy12ZWxvY2l0eS1yZWFkIG5pbCBzZWFyY2gp KSkpKSkpCiAKLShkZWZ1biBvcmctdmVsb2NpdHktcG9zaXRpb24gKGl0ZW0gbGlzdCkKLSAgIlJl dHVybiBmaXJzdCBwb3NpdGlvbiBvZiBJVEVNIGluIExJU1QuIgotICAobG9vcCBmb3IgZWx0IGlu IGxpc3QKLSAgICAgICAgZm9yIGkgZnJvbSAwCi0gICAgICAgIHdoZW4gKGVxdWFsIGVsdCBpdGVt KQotICAgICAgICByZXR1cm4gaSkpCi0KIChkZWZ1biBvcmctdmVsb2NpdHktYWN0aXZhdGUtYnV0 dG9uIChjaGFyKQogICAiR28gdG8gYnV0dG9uIG9uIGxpbmUgbnVtYmVyIGFzc29jaWF0ZWQgd2l0 aCBDSEFSIGluIGBvcmctdmVsb2NpdHktaW5kZXgnLiIKICAgKGdvdG8tY2hhciAocG9pbnQtbWlu KSkKLSAgKGZvcndhcmQtbGluZSAob3JnLXZlbG9jaXR5LXBvc2l0aW9uIGNoYXIgb3JnLXZlbG9j aXR5LWluZGV4KSkKKyAgKGZvcndhcmQtbGluZSAoY2wtcG9zaXRpb24gY2hhciBvcmctdmVsb2Np dHktaW5kZXgpKQogICAoZ290by1jaGFyCiAgICAoYnV0dG9uLXN0YXJ0CiAgICAgKG5leHQtYnV0 dG9uIChwb2ludCkpKSkKQEAgLTUxNCw4ICs1MzEsOCBAQCBJZiBBU0sgaXMgbm9uLW5pbCwgYXNr IGZpcnN0LiIKICAgIkNvbXBsYWluIGFib3V0IGFuIHVuZGVmaW5lZCBrZXkuIgogICAoaW50ZXJh Y3RpdmUpCiAgIChtZXNzYWdlICIlcyIKLQkgICAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMKLQkg ICAgIlxcW29yZy12ZWxvY2l0eS1lbGVjdHJpYy1uZXddIGZvciBuZXcgZW50cnksCisgICAgICAg ICAgIChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cworICAgICAgICAgICAgIlxcW29yZy12ZWxvY2l0 eS1lbGVjdHJpYy1uZXddIGZvciBuZXcgZW50cnksCiBcXFtvcmctdmVsb2NpdHktZWxlY3RyaWMt ZWRpdF0gdG8gZWRpdCBzZWFyY2gsCiBcXFtzY3JvbGwtdXBdIHRvIHNjcm9sbCB1cCwKIFxcW3Nj cm9sbC1kb3duXSB0byBzY3JvbGwgZG93biwKQEAgLTUyNSwyMCArNTQyLDExIEBAIElmIEFTSyBp cyBub24tbmlsLCBhc2sgZmlyc3QuIgogKGRlZnVuIG9yZy12ZWxvY2l0eS1lbGVjdHJpYy1mb2xs b3cgKGV2KQogICAiRm9sbG93IGEgaGludCBpbmRleGVkIGJ5IGtleWJvYXJkIGV2ZW50IEVWLiIK ICAgKGludGVyYWN0aXZlIChsaXN0IGxhc3QtY29tbWFuZC1ldmVudCkpCi0gIChpZiAobm90ICg+ IChvcmctdmVsb2NpdHktcG9zaXRpb24gZXYgb3JnLXZlbG9jaXR5LWluZGV4KQorICAoaWYgKG5v dCAoPiAoY2wtcG9zaXRpb24gZXYgb3JnLXZlbG9jaXR5LWluZGV4KQogICAgICAgICAgICAgICAo MS0gKGNvdW50LWxpbmVzIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQogICAgICAgKHRocm93 ICdvcmctdmVsb2NpdHktc2VsZWN0IGV2KQogICAgIChjYWxsLWludGVyYWN0aXZlbHkgJ29yZy12 ZWxvY2l0eS1lbGVjdHJpYy11bmRlZmluZWQpKSkKIAotKGRlZnVuIG9yZy12ZWxvY2l0eS1lbGVj dHJpYy1jbGljayAoZXYpCi0gICJGb2xsb3cgaGludCBpbmRleGVkIGJ5IGEgbW91c2UgZXZlbnQg RVYuIgotICAoaW50ZXJhY3RpdmUgImUiKQotICAodGhyb3cgJ29yZy12ZWxvY2l0eS1zZWxlY3QK LQkgKG50aCAoMS0gKGNvdW50LWxpbmVzCi0JCSAgIChwb2ludC1taW4pCi0JCSAgIChwb3NuLXBv aW50IChldmVudC1zdGFydCBldikpKSkKLQkgICAgICBvcmctdmVsb2NpdHktaW5kZXgpKSkKLQog KGRlZnVuIG9yZy12ZWxvY2l0eS1lbGVjdHJpYy1lZGl0ICgpCiAgICJFZGl0IHRoZSBzZWFyY2gg c3RyaW5nLiIKICAgKGludGVyYWN0aXZlKQpAQCAtNTUyLDE0ICs1NjAsMTUgQEAgSWYgQVNLIGlz IG5vbi1uaWwsIGFzayBmaXJzdC4iCiAoZGVmdmFyIG9yZy12ZWxvY2l0eS1lbGVjdHJpYy1tYXAK ICAgKGxldCAoKG1hcCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCiAgICAgKGRlZmluZS1rZXkgbWFw IFt0XSAnb3JnLXZlbG9jaXR5LWVsZWN0cmljLXVuZGVmaW5lZCkKLSAgICAobG9vcCBmb3IgYyBp biBvcmctdmVsb2NpdHktaW5kZXgKLQkgIGRvIChkZWZpbmUta2V5IG1hcCAoY2hhci10by1zdHJp bmcgYykgJ29yZy12ZWxvY2l0eS1lbGVjdHJpYy1mb2xsb3cpKQorICAgIChkb2xpc3QgKGMgb3Jn LXZlbG9jaXR5LWluZGV4KQorICAgICAgKGRlZmluZS1rZXkgbWFwIChjaGFyLXRvLXN0cmluZyBj KQorICAgICAgICAnb3JnLXZlbG9jaXR5LWVsZWN0cmljLWZvbGxvdykpCiAgICAgKGRlZmluZS1r ZXkgbWFwICIwIiAnb3JnLXZlbG9jaXR5LWVsZWN0cmljLW5ldykKICAgICAoZGVmaW5lLWtleSBt YXAgIlxDLXYiICdzY3JvbGwtdXApCiAgICAgKGRlZmluZS1rZXkgbWFwICJcTS12IiAnc2Nyb2xs LWRvd24pCiAgICAgKGRlZmluZS1rZXkgbWFwIChrYmQgIlJFVCIpICdvcmctdmVsb2NpdHktZWxl Y3RyaWMtZWRpdCkKLSAgICAoZGVmaW5lLWtleSBtYXAgW21vdXNlLTFdICdvcmctdmVsb2NpdHkt ZWxlY3RyaWMtY2xpY2spCi0gICAgKGRlZmluZS1rZXkgbWFwIFttb3VzZS0yXSAnb3JnLXZlbG9j aXR5LWVsZWN0cmljLWNsaWNrKQorICAgIChkZWZpbmUta2V5IG1hcCBbbW91c2UtMV0gbmlsKQor ICAgIChkZWZpbmUta2V5IG1hcCBbbW91c2UtMl0gbmlsKQogICAgIChkZWZpbmUta2V5IG1hcCBb ZXNjYXBlXSAna2V5Ym9hcmQtcXVpdCkKICAgICAoZGVmaW5lLWtleSBtYXAgIlxDLWgiICdoZWxw LWNvbW1hbmQpCiAgICAgbWFwKSkKQEAgLTU2NywyOSArNTc2LDE5IEBAIElmIEFTSyBpcyBub24t bmlsLCBhc2sgZmlyc3QuIgogKGRlZnVuIG9yZy12ZWxvY2l0eS1lbGVjdHJpYy1yZWFkLWhpbnQg KCkKICAgIlJlYWQgaW5kZXggb2YgYnV0dG9uIGVsZWN0cmljYWxseS4iCiAgICh3aXRoLWN1cnJl bnQtYnVmZmVyIChvcmctdmVsb2NpdHktbWF0Y2gtYnVmZmVyKQorICAgICh3aGVuIChmZWF0dXJl cCAnZXZpbCkKKyAgICAgIDs7IE5CIElkZW1wb3RlbnQuCisgICAgICAoZXZpbC1tYWtlLW92ZXJy aWRpbmctbWFwIG9yZy12ZWxvY2l0eS1lbGVjdHJpYy1tYXApKQogICAgICh1c2UtbG9jYWwtbWFw IG9yZy12ZWxvY2l0eS1lbGVjdHJpYy1tYXApCiAgICAgKGNhdGNoICdvcmctdmVsb2NpdHktc2Vs ZWN0CiAgICAgICAoRWxlY3RyaWMtY29tbWFuZC1sb29wICdvcmctdmVsb2NpdHktc2VsZWN0ICJG b2xsb3c6ICIpKSkpCiAKIChkZWZ2YXIgb3JnLXZlbG9jaXR5LWluY3JlbWVudGFsLWtleW1hcAog ICAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXltYXApKSkKLSAgICAoZGVmaW5lLWtleSBtYXAg W21vdXNlLTFdICdvcmctdmVsb2NpdHktY2xpY2stZm9yLWluY3JlbWVudGFsKQotICAgIChkZWZp bmUta2V5IG1hcCBbbW91c2UtMl0gJ29yZy12ZWxvY2l0eS1jbGljay1mb3ItaW5jcmVtZW50YWwp CiAgICAgKGRlZmluZS1rZXkgbWFwICJcQy12IiAnc2Nyb2xsLXVwKQogICAgIChkZWZpbmUta2V5 IG1hcCAiXE0tdiIgJ3Njcm9sbC1kb3duKQogICAgIG1hcCkpCiAKLShkZWZ1biBvcmctdmVsb2Np dHktY2xpY2stZm9yLWluY3JlbWVudGFsICgpCi0gICJKdW1wIG91dCBvZiBzZWFyY2ggYW5kIHNl bGVjdCBoaW50IGNsaWNrZWQgb24uIgotICAoaW50ZXJhY3RpdmUpCi0gIChsZXQgKChldiBsYXN0 LWNvbW1hbmQtZXZlbnQpKQotICAgIChvcmctdmVsb2NpdHktYWN0aXZhdGUtYnV0dG9uCi0gICAg IChudGggKC0gKGNvdW50LWxpbmVzCi0gICAgICAgICAgICAgIChwb2ludC1taW4pCi0gICAgICAg ICAgICAgIChwb3NuLXBvaW50IChldmVudC1zdGFydCBldikpKSAyKQotICAgICAgICAgIG9yZy12 ZWxvY2l0eS1pbmRleCkpKQotICAodGhyb3cgJ2NsaWNrIChjdXJyZW50LWJ1ZmZlcikpKQotCiAo ZGVmdW4gb3JnLXZlbG9jaXR5LWRpc3BsYXlpbmctY29tcGxldGlvbnMtcCAoKQogICAiSXMgdGhl cmUgYSAqQ29tcGxldGlvbnMqIGJ1ZmZlciBzaG93aW5nPyIKICAgKGdldC13aW5kb3ctd2l0aC1w cmVkaWNhdGUKQEAgLTU5OCw4ICs1OTcsNyBAQCBJZiBBU0sgaXMgbm9uLW5pbCwgYXNrIGZpcnN0 LiIKICAgICAgICAgICdjb21wbGV0aW9uLWxpc3QtbW9kZSkpKSkKIAogKGRlZnVuIG9yZy12ZWxv Y2l0eS11cGRhdGUgKCkKLSAgIkRpc3BsYXkgcmVzdWx0cyBvZiBzZWFyY2ggd2l0aG91dCBoaW50 aW5nLgotU3RvcCBzZWFyY2hpbmcgb25jZSB0aGVyZSBhcmUgbW9yZSBtYXRjaGVzIHRoYW4gY2Fu IGJlIGRpc3BsYXllZC4iCisgICJEaXNwbGF5IHJlc3VsdHMgb2Ygc2VhcmNoIHdpdGhvdXQgaGlu dGluZy4iCiAgICh1bmxlc3MgKG9yZy12ZWxvY2l0eS1kaXNwbGF5aW5nLWNvbXBsZXRpb25zLXAp CiAgICAgKGxldCogKChzZWFyY2ggKG9yZy12ZWxvY2l0eS1taW5pYnVmZmVyLWNvbnRlbnRzKSkK ICAgICAgICAgICAgKG1hdGNoZXMgKG9yZy12ZWxvY2l0eS1wcmVzZW50IHNlYXJjaCA6aGlkZS1o aW50cyB0KSkpCkBAIC02MDcsMjAgKzYwNSwyMCBAQCBTdG9wIHNlYXJjaGluZyBvbmNlIHRoZXJl IGFyZSBtb3JlIG1hdGNoZXMgdGhhbiBjYW4gYmUgZGlzcGxheWVkLiIKICAgICAgICAgICAgICAo c2VsZWN0LXdpbmRvdyAoYWN0aXZlLW1pbmlidWZmZXItd2luZG93KSkKICAgICAgICAgICAgICAo dW5sZXNzIChvciAobnVsbCBzZWFyY2gpIChzdHJpbmc9ICIiIHNlYXJjaCkpCiAgICAgICAgICAg ICAgICAobWluaWJ1ZmZlci1tZXNzYWdlICJObyBtYXRjaDsgUkVUIHRvIGNyZWF0ZSIpKSkKLSAg ICAgICAgICAgICgoYW5kIChvcmctdmVsb2NpdHktc2luZ2xlcCBtYXRjaGVzKQorICAgICAgICAg ICAgKChhbmQgKG51bGwgKGNkciBtYXRjaGVzKSkKICAgICAgICAgICAgICAgICAgIG9yZy12ZWxv Y2l0eS1leGl0LW9uLW1hdGNoKQogICAgICAgICAgICAgICh0aHJvdyAnY2xpY2sgc2VhcmNoKSkK ICAgICAgICAgICAgICh0CiAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKG9yZy12 ZWxvY2l0eS1tYXRjaC1idWZmZXIpCiAgICAgICAgICAgICAgICAodXNlLWxvY2FsLW1hcCBvcmct dmVsb2NpdHktaW5jcmVtZW50YWwta2V5bWFwKSkpKSkpKQogCi0oZGVmdmFyIGRhYmJyZXYtLWxh c3QtYWJicmV2KQorKGRlZnZhciBkYWJicmV2LS1sYXN0LWFiYnJldmlhdGlvbikKIAogKGRlZnVu IG9yZy12ZWxvY2l0eS1kYWJicmV2LWNvbXBsZXRpb24tbGlzdCAoYWJicmV2KQogICAiUmV0dXJu IGFsbCBkYWJicmV2IGNvbXBsZXRpb25zIGZvciBBQkJSRVYuIgogICA7OyBUaGlzIGlzIGJhc2Vk IG9uIGBkYWJicmV2LWNvbXBsZXRpb24nLgogICAoZGFiYnJldi0tcmVzZXQtZ2xvYmFsLXZhcmlh YmxlcykKLSAgKHNldHEgZGFiYnJldi0tbGFzdC1hYmJyZXYgYWJicmV2KQorICAoc2V0cSBkYWJi cmV2LS1sYXN0LWFiYnJldmlhdGlvbiBhYmJyZXYpCiAgIChkYWJicmV2LS1maW5kLWFsbC1leHBh bnNpb25zIGFiYnJldiBjYXNlLWZvbGQtc2VhcmNoKSkKIAogKGRlZnZhciBvcmctdmVsb2NpdHkt bG9jYWwtY29tcGxldGlvbi1tYXAKQEAgLTYzOCw3ICs2MzYsNyBAQCBTdG9wIHNlYXJjaGluZyBv bmNlIHRoZXJlIGFyZSBtb3JlIG1hdGNoZXMgdGhhbiBjYW4gYmUgZGlzcGxheWVkLiIKICAgICAg ICAgKGNvbXBsZXRpb24tbm8tYXV0by1leGl0IHQpCiAgICAgICAgIChjcm0tc2VwYXJhdG9yICIg IikpCiAgICAgKGZ1bmNhbGwKLSAgICAgKGNhc2Ugb3JnLXZlbG9jaXR5LXNlYXJjaC1tZXRob2QK KyAgICAgKGNsLWNhc2Ugb3JnLXZlbG9jaXR5LXNlYXJjaC1tZXRob2QKICAgICAgICAocGhyYXNl ICMnY29tcGxldGluZy1yZWFkKQogICAgICAgIChhbnkgICAgIydjb21wbGV0aW5nLXJlYWQtbXVs dGlwbGUpCiAgICAgICAgKGFsbCAgICAjJ2NvbXBsZXRpbmctcmVhZC1tdWx0aXBsZSkpCkBAIC02 NTIsMzggKzY1MCw1MCBAQCBTdG9wIHNlYXJjaGluZyBvbmNlIHRoZXJlIGFyZSBtb3JlIG1hdGNo ZXMgdGhhbiBjYW4gYmUgZGlzcGxheWVkLiIKICAgOzsgYHJlYWQtZnJvbS1taW5pYnVmZmVyJyks IGJ1dCBpbiB0aGlzIGNhc2UgaXQgaXMgdGhlIHVzZXItZnJpZW5kbHkKICAgOzsgdGhpbmcgdG8g ZG8uCiAgIChtaW5pYnVmZmVyLXdpdGgtc2V0dXAtaG9vawotICAgICAgKGxleGljYWwtbGV0ICgo aW5pdGlhbC1pbnB1dCBpbml0aWFsLWlucHV0KSkKKyAgICAgIChsZXQgKChpbml0aWFsLWlucHV0 IGluaXRpYWwtaW5wdXQpKQogICAgICAgICAobGFtYmRhICgpCiAgICAgICAgICAgKGFuZCBpbml0 aWFsLWlucHV0IChpbnNlcnQgaW5pdGlhbC1pbnB1dCkpCiAgICAgICAgICAgKGdvdG8tY2hhciAo cG9pbnQtbWF4KSkpKQogICAgIChpZiAoZXEgb3JnLXZlbG9jaXR5LXNlYXJjaC1tZXRob2QgJ3Jl Z2V4cCkKLQkocmVhZC1yZWdleHAgcHJvbXB0KQorICAgICAgICAocmVhZC1yZWdleHAgcHJvbXB0 KQogICAgICAgKGlmIG9yZy12ZWxvY2l0eS11c2UtY29tcGxldGlvbgotCSAgKG9yZy12ZWxvY2l0 eS1yZWFkLXdpdGgtY29tcGxldGlvbiBwcm9tcHQpCi0JKHJlYWQtc3RyaW5nIHByb21wdCkpKSkp CisgICAgICAgICAgKG9yZy12ZWxvY2l0eS1yZWFkLXdpdGgtY29tcGxldGlvbiBwcm9tcHQpCisg ICAgICAgIChyZWFkLXN0cmluZyBwcm9tcHQpKSkpKQorCisoY2wtZGVmdW4gb3JnLXZlbG9jaXR5 LWFkanVzdC1pbmRleAorICAgICgmb3B0aW9uYWwgKG1hdGNoLXdpbmRvdyAob3JnLXZlbG9jaXR5 LW1hdGNoLXdpbmRvdykpKQorICAiVHJ1bmNhdGUgb3IgZXh0ZW5kIGBvcmctdmVsb2NpdHktaW5k ZXgnIHRvIHRoZSBsaW5lcyBpbgorTUFUQ0gtV0lORE9XLiIKKyAgKHdpdGgtc2VsZWN0ZWQtd2lu ZG93IG1hdGNoLXdpbmRvdworICAgIChsZXQgKChsaW5lcyAod2luZG93LWhlaWdodCkpCisgICAg ICAgICAgKGhpbnRzIChsZW5ndGggb3JnLXZlbG9jaXR5LWluZGV4KSkpCisgICAgICAoY29uZCAo KD0gbGluZXMgaGludHMpCisgICAgICAgICAgICAgb3JnLXZlbG9jaXR5LWluZGV4KQorICAgICAg ICAgICAgOzsgVHJ1bmNhdGUgdGhlIGluZGV4IHRvIHRoZSBzaXplIG9mCisgICAgICAgICAgICA7 OyB0aGUgYnVmZmVyIHRvIGJlIGRpc3BsYXllZC4KKyAgICAgICAgICAgICgoPCBsaW5lcyBoaW50 cykKKyAgICAgICAgICAgICAoY2wtc3Vic2VxIG9yZy12ZWxvY2l0eS1pbmRleCAwIGxpbmVzKSkK KyAgICAgICAgICAgIDs7IElmIHRoZSB3aW5kb3cgaXMgc28gdGFsbCB3ZSBydW4gb3V0IG9mIGlu ZGljZXMsIGF0CisgICAgICAgICAgICA7OyBsZWFzdCBtYWtlIHRoZSBhZGRpdGlvbmFsIHJlc3Vs dHMgY2xpY2thYmxlLgorICAgICAgICAgICAgKCg+IGxpbmVzIGhpbnRzKQorICAgICAgICAgICAg IChhcHBlbmQgb3JnLXZlbG9jaXR5LWluZGV4CisgICAgICAgICAgICAgICAgICAgICAobWFrZS1s aXN0ICgtIGxpbmVzIGhpbnRzKSBuaWwpKSkpKSkpCiAKIChkZWZ1biBvcmctdmVsb2NpdHktaW5j cmVtZW50YWwtcmVhZCAocHJvbXB0KQotICAiUmVhZCBzdHJpbmcgd2l0aCBQUk9NUFQgYW5kIGRp c3BsYXkgcmVzdWx0cyBpbmNyZW1lbnRhbGx5LiIKKyAgIlJlYWQgc3RyaW5nIHdpdGggUFJPTVBU IGFuZCBkaXNwbGF5IHJlc3VsdHMgaW5jcmVtZW50YWxseS4KK1N0b3Agc2VhcmNoaW5nIG9uY2Ug dGhlcmUgYXJlIG1vcmUgbWF0Y2hlcyB0aGFuIGNhbiBiZQorZGlzcGxheWVkLiIKICAgKGxldCAo KHJlcwogICAgICAgICAgKHVud2luZC1wcm90ZWN0CiAgICAgICAgICAgICAgKGxldCogKChtYXRj aC13aW5kb3cgKGRpc3BsYXktYnVmZmVyIChvcmctdmVsb2NpdHktbWF0Y2gtYnVmZmVyKSkpCi0g ICAgICAgICAgICAgICAgICAgIChvcmctdmVsb2NpdHktaW5kZXgKLSAgICAgICAgICAgICAgICAg ICAgIDs7IFRydW5jYXRlIHRoZSBpbmRleCB0byB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyIHRvIGJl Ci0gICAgICAgICAgICAgICAgICAgICA7OyBkaXNwbGF5ZWQuCi0gICAgICAgICAgICAgICAgICAg ICAod2l0aC1zZWxlY3RlZC13aW5kb3cgbWF0Y2gtd2luZG93Ci0gICAgICAgICAgICAgICAgICAg ICAgIChpZiAoPCAod2luZG93LWhlaWdodCkgKGxlbmd0aCBvcmctdmVsb2NpdHktaW5kZXgpKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKHN1YnNlcSBvcmctdmVsb2NpdHktaW5kZXgg MCAod2luZG93LWhlaWdodCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoaGlu dHMgKGNvcHktc2VxdWVuY2Ugb3JnLXZlbG9jaXR5LWluZGV4KSkpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzZXRjZHIgKG50aGNkciAod2luZG93LWhlaWdodCkgaGludHMpIG5pbCkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGludHMpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgb3JnLXZlbG9jaXR5LWluZGV4KSkpKQorICAgICAgICAgICAgICAgICAgICAob3JnLXZl bG9jaXR5LWluZGV4IChvcmctdmVsb2NpdHktYWRqdXN0LWluZGV4IG1hdGNoLXdpbmRvdykpKQog ICAgICAgICAgICAgICAgKGNhdGNoICdjbGljawogICAgICAgICAgICAgICAgICAoYWRkLWhvb2sg J3Bvc3QtY29tbWFuZC1ob29rICdvcmctdmVsb2NpdHktdXBkYXRlKQotICAgICAgICAgICAgICAg ICAoaWYgKGVxIG9yZy12ZWxvY2l0eS1zZWFyY2gtbWV0aG9kICdyZWdleHApCi0gICAgICAgICAg ICAgICAgICAgICAocmVhZC1yZWdleHAgcHJvbXB0KQotICAgICAgICAgICAgICAgICAgIChpZiBv cmctdmVsb2NpdHktdXNlLWNvbXBsZXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgKG9yZy12 ZWxvY2l0eS1yZWFkLXdpdGgtY29tcGxldGlvbiBwcm9tcHQpCi0gICAgICAgICAgICAgICAgICAg ICAocmVhZC1zdHJpbmcgcHJvbXB0KSkpKSkKKyAgICAgICAgICAgICAgICAgKGNvbmQgKChlcSBv cmctdmVsb2NpdHktc2VhcmNoLW1ldGhvZCAncmVnZXhwKQorICAgICAgICAgICAgICAgICAgICAg ICAgKHJlYWQtcmVnZXhwIHByb21wdCkpCisgICAgICAgICAgICAgICAgICAgICAgIChvcmctdmVs b2NpdHktdXNlLWNvbXBsZXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgIChvcmctdmVsb2Np dHktcmVhZC13aXRoLWNvbXBsZXRpb24gcHJvbXB0KSkKKyAgICAgICAgICAgICAgICAgICAgICAg KHQgKHJlYWQtc3RyaW5nIHByb21wdCkpKSkpCiAgICAgICAgICAgIChyZW1vdmUtaG9vayAncG9z dC1jb21tYW5kLWhvb2sgJ29yZy12ZWxvY2l0eS11cGRhdGUpKSkpCiAgICAgKGlmIChidWZmZXJw IHJlcykgKG9yZy1wb3AtdG8tYnVmZmVyLXNhbWUtd2luZG93IHJlcykgcmVzKSkpCiAKQEAgLTY5 NywyNCArNzA3LDMxIEBAIGNyZWF0ZWQgbmFtZWQgU0VBUkNILgogSWYgYG9yZy12ZWxvY2l0eS1i dWNrZXQnIGlzIGRlZmluZWQgYW5kCiBgb3JnLXZlbG9jaXR5LWFsd2F5cy11c2UtYnVja2V0JyBp cyBub24tbmlsLCB0aGVuIHRoZSBidWNrZXQgZmlsZQogd2lsbCBiZSB1c2VkOyBvdGhlcndpc2Us IHRoaXMgd2lsbCB3b3JrIHdoZW4gY2FsbGVkIGluIGFueSBPcmcKLWZpbGUuIENhbGxpbmcgd2l0 aCBBUkcgZm9yY2VzIGN1cnJlbnQgZmlsZS4iCitmaWxlLgorCitDYWxsaW5nIHdpdGggQVJHIHJl dmVyc2VzIHdoaWNoIGZpbGUg4oCTIHRoZSBjdXJyZW50IGZpbGUgb3IgdGhlCitidWNrZXQgZmls ZSDigJMgdG8gdXNlLiBJZiB0aGUgYnVja2V0IGZpbGUgd291bGQgaGF2ZSBiZWVuIHVzZWQsCit0 aGVuIHRoZSBjdXJyZW50IGZpbGUgaXMgdXNlZCBpbnN0ZWFkLCBhbmQgdmljZSB2ZXJzYS4iCiAg IChpbnRlcmFjdGl2ZSAiUCIpCiAgIChsZXQgKChvcmctdmVsb2NpdHktYWx3YXlzLXVzZS1idWNr ZXQKLQkgKGlmIGFyZyBuaWwgb3JnLXZlbG9jaXR5LWFsd2F5cy11c2UtYnVja2V0KSkpCisgICAg ICAgICAoaWYgb3JnLXZlbG9jaXR5LWFsd2F5cy11c2UtYnVja2V0CisgICAgICAgICAgICAgKG5v dCBhcmcpCisgICAgICAgICAgIGFyZykpKQogICAgIDs7IGNvbXBsYWluIGlmIGluYXBwcm9wcmlh dGUKLSAgICAoYXNzZXJ0IChvcmctdmVsb2NpdHktYnVja2V0LWZpbGUpKQorICAgIChjbC1hc3Nl cnQgKG9yZy12ZWxvY2l0eS1idWNrZXQtZmlsZSkpCiAgICAgKGxldCAoKG9yZy12ZWxvY2l0eS1i dWNrZXQtYnVmZmVyCiAgICAgICAgICAgIChmaW5kLWZpbGUtbm9zZWxlY3QgKG9yZy12ZWxvY2l0 eS1idWNrZXQtZmlsZSkpKSkKICAgICAgICh1bndpbmQtcHJvdGVjdAogICAgICAgICAgIChsZXQg KChkYWJicmV2LXNlYXJjaC10aGVzZS1idWZmZXJzLW9ubHkKICAgICAgICAgICAgICAgICAgKGxp c3QgKG9yZy12ZWxvY2l0eS1idWNrZXQtYnVmZmVyKSkpKQotICAgICAgICAgICAgKG9yZy12ZWxv Y2l0eS1lbmdpbmUKLSAgICAgICAgICAgICAoaWYgb3JnLXZlbG9jaXR5LXNlYXJjaC1pcy1pbmNy ZW1lbnRhbAotICAgICAgICAgICAgICAgICAob3JnLXZlbG9jaXR5LWluY3JlbWVudGFsLXJlYWQg IlZlbG9jaXR5IHNlYXJjaDogIikKLSAgICAgICAgICAgICAgIChvcmctdmVsb2NpdHktcmVhZC1z dHJpbmcgIlZlbG9jaXR5IHNlYXJjaDogIiBzZWFyY2gpKSkpCi0gICAgICAgIChwcm9nbgotICAg ICAgICAgIChraWxsLWJ1ZmZlciAob3JnLXZlbG9jaXR5LW1hdGNoLWJ1ZmZlcikpCi0gICAgICAg ICAgKGRlbGV0ZS1vdGhlci13aW5kb3dzKSkpKSkpCisgICAgICAgICAgICAoZnVuY2FsbAorICAg ICAgICAgICAgIChjYXRjaCAnb3JnLXZlbG9jaXR5LWRvbmUKKyAgICAgICAgICAgICAgIChvcmct dmVsb2NpdHktZW5naW5lCisgICAgICAgICAgICAgICAgKGlmIG9yZy12ZWxvY2l0eS1zZWFyY2gt aXMtaW5jcmVtZW50YWwKKyAgICAgICAgICAgICAgICAgICAgKG9yZy12ZWxvY2l0eS1pbmNyZW1l bnRhbC1yZWFkICJWZWxvY2l0eSBzZWFyY2g6ICIpCisgICAgICAgICAgICAgICAgICAob3JnLXZl bG9jaXR5LXJlYWQtc3RyaW5nICJWZWxvY2l0eSBzZWFyY2g6ICIgc2VhcmNoKSkpCisgICAgICAg ICAgICAgICAjJ2lnbm9yZSkpKQorICAgICAgICAoa2lsbC1idWZmZXIgKG9yZy12ZWxvY2l0eS1t YXRjaC1idWZmZXIpKSkpKSkKIAogKGRlZmFsaWFzICdvcmctdmVsb2NpdHktcmVhZCAnb3JnLXZl bG9jaXR5KQogCi0tIAoxLjcuOS41Cgo= --001a113613e685018105066c39e6--