From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id MODdLzEoWmXlEgAA9RJhRA:P1 (envelope-from ) for ; Sun, 19 Nov 2023 16:22:25 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id MODdLzEoWmXlEgAA9RJhRA (envelope-from ) for ; Sun, 19 Nov 2023 16:22:25 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 667645872D for ; Sun, 19 Nov 2023 16:22:24 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=ricklupton.name header.s=fm3 header.b="C Nnq3W0"; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b=WR0ASRqK; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1700407345; a=rsa-sha256; cv=none; b=ndiR9naXvUQ16UOQnOlrDDfRpHpxfXmoTs+yiB1N+LsIP/m0B4iqzv3CAYSilxn7RdiqYl Wj2vTUEvX9Qjwwrhjw6YjVX2SsQ1NtSLvrxdq8b/oK72wYl0vXYmhDsk1KTL/hZ3VJ6sdt dtf9K1ZFGOW7JjECQ8xI1bozJ5KAqhv0O7AgB17IH9zXXV+mfoO11BeCB/vbD36Cblivh0 AUbtcKx2CyZ3qBW3MsfUbrkTm+Wdsik0eLa/tGFWO3BY05o1KXxvvWDkfwrz7tqXS4pPSK vRjtJEiip2asqOvkoqlLrnGYWxNe7cLwP0HEaTk1AmlNxeBV8JzVRFNQA/k1Tw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=ricklupton.name header.s=fm3 header.b="C Nnq3W0"; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b=WR0ASRqK; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1700407345; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=p35gy82H9JRgLL11+wl+XDpq7/CDHaoQEsjWckQcUpQ=; b=pBP6E4uLClIwlllKNJjfSlFl2A7rPBQnG0F2H1lYURm/h8kUw/A+A6ROpDYRnUh2xUys3m /q8iNZlmt8i4sEx6TVwGNCwEhzyVNlGVBLAa6qnfLFzMW7gfMx1ISwzm4P5J2VSicW/Fr/ iFuqt9mh/ClPqCsCL97WIlqVT4IGWjFWThyIR2K6mc4qEASqicOErPhZeeaEVtO4dXy5sL nt8GY03iY6YBsOLqh0qaY+fuI3C8MpKhkRM7xDBAlOrE8VJolRAGrd7s8gWqIBj92BtJCm ZTFhgE4QSZHhh/rbcyXHzrnk5fSbfkV7WDJm9x6iCWmr4IR7JRaEZVwEfjXC+w== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r4jc7-0000yv-57; Sun, 19 Nov 2023 10:21:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r4jc6-0000yn-4S for emacs-orgmode@gnu.org; Sun, 19 Nov 2023 10:21:34 -0500 Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r4jc4-0007Dv-0s for emacs-orgmode@gnu.org; Sun, 19 Nov 2023 10:21:33 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id DB86C5C01EE; Sun, 19 Nov 2023 10:21:29 -0500 (EST) Received: from imap50 ([10.202.2.100]) by compute2.internal (MEProxy); Sun, 19 Nov 2023 10:21:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ricklupton.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm3; t=1700407289; x= 1700493689; bh=p35gy82H9JRgLL11+wl+XDpq7/CDHaoQEsjWckQcUpQ=; b=C Nnq3W0EguINJ9P+4j2kc8J4SrJ35RhMLedXRCw8YdPWOz6Qm4B48OmktNOuVOgms isXY8FDlJt4yMfiCSh1m9XbrHelPgiNYYxgyO4GnuxOKYYFXrZn+IiqzBX7NJKm+ MNREm0Zhf3IWCdgFI9z4MBFf6sKWoJXFP5oJxpA/9i+kGoJ8MdlmH6lpxiBy4SaS +YtMScIrNkrXAfkWz35F00bH6MiqFSyGobVHZoYznY8Q/hYYCgU3v1d5l3A9bAOW s2TPogT4b2G0oJ7zEBQgbBwyEIgZPEstntO4vr/AFnz9YEonl9gEtJtLlTvb9zAq ej+jTF+F5QDT1plp10G6Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1700407289; x=1700493689; bh=p35gy82H9JRgL L11+wl+XDpq7/CDHaoQEsjWckQcUpQ=; b=WR0ASRqKQknqJeCT+34iUfKj1MglN 0xL+Ru2Pw9NSmPFCxqlY3yOIgelZdVRdAAB8LzmVJWZA0B7rTkmhbezQiMN1LX16 MN6hktjLRAtexjzElP69Eu+EXww8W3XYOkMl0lCYG4s9NPpKpX8831KNIHO2pg8d Ac5LheWjJxcM+M/wSSDJZyOkbNVSPHOnGGDMN04TJEraH3Lnm4V199neUx2y4QLo vPy4huMsbh+8XZ/ochfi6mBUxTkxP0c5oy0Gbsv9PwLU0MvgIG/haW/Rm+7ElGew jKRxUK6rek/4Z66KoJikhfDSjmYuuAg9xyM86ZLA6mmBBpyT1LoOpJjvg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudeggedgjeeiucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsehmtderreerredtnecuhfhrohhmpedftfhi tghkucfnuhhpthhonhdfuceomhgrihhlsehrihgtkhhluhhpthhonhdrnhgrmhgvqeenuc ggtffrrghtthgvrhhnpedtudekueffvefgueeikedtffeujedvhfevtdetgedvjeetjeef tdeiheejgfeuueenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehmrghilhesrhhitghklhhuphhtohhnrdhnrghmvg X-ME-Proxy: Feedback-ID: i0143436f:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 774661700093; Sun, 19 Nov 2023 10:21:29 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-1108-g3a29173c6d-fm-20231031.005-g3a29173c MIME-Version: 1.0 Message-Id: In-Reply-To: <87cywh2ad6.fsf@localhost> References: <118435e8-0b20-46fd-af6a-88de8e19fac6@app.fastmail.com> <87edkwsafe.fsf@localhost> <87cywh2ad6.fsf@localhost> Date: Sun, 19 Nov 2023 15:21:09 +0000 From: "Rick Lupton" To: "Ihor Radchenko" Cc: "emacs-orgmode list" Subject: Re: [PATCH] org-id: allow using parent's existing id in links to headlines Content-Type: multipart/mixed; boundary=82c438a2bce84bfa92084733299dc832 Received-SPF: pass client-ip=66.111.4.29; envelope-from=mail@ricklupton.name; helo=out5-smtp.messagingengine.com X-Spam_score_int: -37 X-Spam_score: -3.8 X-Spam_bar: --- X-Spam_report: (-3.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Queue-Id: 667645872D X-Migadu-Scanner: mx12.migadu.com X-Migadu-Spam-Score: -3.51 X-Spam-Score: -3.51 X-TUID: YuOC5HDkbJdD --82c438a2bce84bfa92084733299dc832 Content-Type: text/plain Here's an updated patch, which adds (optional) search strings to ID links, and the option to inherit ID targets from parent headline / the top level file properties. I've also updated ORG-NEWS and the manual, and added tests. I think I've fixed all the issues with my first patch about which headline gets used for the description when inheriting IDs, what happens if there is no ID, etc. > Ideally, we should have all the necessary logic to store the link within `org-id-store-link' and then use `org-link-set-parameters' to configure id links. > ... > I think that we need to make a change in the rules for :store functions. `interactive?' may be passed as the argument to these functions. I've also moved the org-id specific logic from `org-store-link` to `org-id-store-link`, and added the `interactive?` argument to link store functions as discussed. >> So my question is: should search strings be added to all org-id links? > Sounds as a reasonable default, but users should have an option to revert to previous behaviour with heading id being stored. The default value for the new option `org-id-link-use-context` is `t`, but it can be set to `nil` (or disabled with a prefix argument to `org-store-link` temporarily). This is a change in default behaviour when storing ID links with point at a subheading, named block, or target, or with an active region. The option `org-id-link-consider-parent-id` I've left with a default value of `nil`, since I'm not sure if everyone will want this behaviour. Thanks Rick --82c438a2bce84bfa92084733299dc832 Content-Disposition: attachment; filename*0="0001-org-id.el-Extend-links-with-search-strings-inherit-p.pat"; filename*1="ch" Content-Type: application/octet-stream; name="=?UTF-8?Q?0001-org-id.el-Extend-links-with-search-strings-inherit-p.patc?= =?UTF-8?Q?h?=" Content-Transfer-Encoding: BASE64 RnJvbSBiOTRjZDFiZWJhOWI1NGFlMjM5NDdkNTllNmE1Y2RjNzdmYjI2NDBlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNrIEx1cHRvbiA8bWFpbEByaWNrbHVwdG9uLm5h bWU+CkRhdGU6IFN1biwgMTkgTm92IDIwMjMgMTQ6NTI6MDUgKzAwMDAKU3ViamVjdDogW1BB VENIXSBvcmctaWQuZWw6IEV4dGVuZCBsaW5rcyB3aXRoIHNlYXJjaCBzdHJpbmdzLCBpbmhl cml0IHBhcmVudAogSURzCgoqIGxpc3Avb2wuZWwgKG9yZy1zdG9yZS1saW5rKTogUmVmYWN0 b3Igb3JnLWlkIGxpbmtzIHRvIHVzZSBzdGFuZGFyZApgb3JnLXN0b3JlLWxpbmstZnVuY3Rp b25zJy4KKG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQpOiBOZXcgZnVuY3Rpb24gZXh0 cmFjdGluZyBsb2dpYyB0bwppZGVudGlmeSBhIHByZWNpc2UgbGluayB0YXJnZXQsIGUuZy4g YSBoZWFkaW5nLCBuYW1lZCBvYmplY3QsIG9yIHRleHQKc2VhcmNoLgoob3JnLWxpbmstdHJ5 LWxpbmstc3RvcmUtZnVuY3Rpb25zKTogRXh0cmFjdCBsb2dpYyB0byBjYWxsIGV4dGVybmFs Cmxpbmsgc3RvcmUgZnVuY3Rpb25zLiBQYXNzIHRoZW0gYSBuZXcgYGludGVyYWN0aXZlPycg YXJndW1lbnQuCiogbGlzcC9vcmctaWQuZWwgKG9yZy1pZC1saW5rLWNvbnNpZGVyLXBhcmVu dC1pZCk6IE5ldyBvcHRpb24gdG8gYWxsb3cKYSBwYXJlbnQgaGVhZGluZyB3aXRoIGFuIGlk IHRvIGJlIGNvbnNpZGVyZWQgYXMgYSBsaW5rIHRhcmdldC4KKG9yZy1pZC1saW5rLXVzZS1j b250ZXh0KTogTmV3IG9wdGlvbiBlcXVpdmFsZW50IHRvCmBvcmctbGluay1jb250ZXh0LWZv ci1maWxlc2AsIGJ1dCBmb3Igb3JnLWlkIGxpbmtzLgoob3JnLWlkLWdldC1jcmVhdGUsIG9y Zy1pZC1nZXQpOiBBZGQgb3B0aW9uYWwgYGluaGVyaXQnIGFyZ3VtZW50IHdoaWNoCmNvbnNp ZGVycyBwYXJlbnRzJyBJRHMgaWYgdGhlIGN1cnJlbnQgZW50cnkgZG9lcyBub3QgaGF2ZSBv bmUuCihvcmctaWQtc3RvcmUtbGluayk6IE1vdmUgbG9naWMgZnJvbSBgb3JnLXN0b3JlLWxp bmsnIGhlcmUgdG8KZGV0ZXJtaW5lIHdoZW4gYW4gb3JnLWlkIGxpbmsgc2hvdWxkIGJlIHN0 b3JlZC4gQ29uc2lkZXIgSURzIG9mIHBhcmVudApoZWFkaW5ncyBhcyBsaW5rIHRhcmdldHMg d2hlbiBjdXJyZW50IGhlYWRpbmcgaGFzIG5vIElEIGFuZApgb3JnLWlkLWxpbmstY29uc2lk ZXItcGFyZW50LWlkJyBpcyBzZXQuIEFkZCBhIHNlYXJjaCBzdHJpbmcgdG8gdGhlCmxpbmsg d2hlbiBlbmFibGVkLgoob3JnLWlkLW9wZW4pOiBSZWNvZ25pc2Ugc2VhcmNoIHN0cmluZ3Mg YWZ0ZXIgIjo6IiBpbiBvcmctaWQgbGlua3MuCiogdGVzdGluZy9saXNwL3Rlc3Qtb2wuZWw6 IEFkZCB0ZXN0cyBmb3IKYG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQnIGFuZCBgb3Jn LWlkLXN0b3JlLWxpbmsnIGZ1bmN0aW9ucywKdGVzdGluZyBuZXcgb3B0aW9ucy4KKiBkb2Mv b3JnLW1hbnVhbC5vcmc6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGFib3V0IGxpbmtzLgoqIGV0 Yy9PUkctTkVXUzogRG9jdW1lbnQgY2hhbmdlcyBhbmQgbmV3IG9wdGlvbnMuCgpUaGVzZSBm ZWF0dXJlIGFsbG93cyBmb3IgbW9yZSBwcmVjaXNlIGxpbmtzIHdoZW4gdXNpbmcgb3JnLWlk IHRvIGxpbmsgdG8Kb3JnIGhlYWRpbmdzLCB3aXRob3V0IHJlcXVpcmluZyBldmVyeSBzaW5n bGUgaGVhZGxpbmUgdG8gaGF2ZSBhbiBpZC4KCkxpbms6IGh0dHBzOi8vbGlzdC5vcmdtb2Rl Lm9yZy8xMTg0MzVlOC0wYjIwLTQ2ZmQtYWY2YS04OGRlOGUxOWZhYzZAYXBwLmZhc3RtYWls LmNvbS8KLS0tCiBkb2Mvb3JnLW1hbnVhbC5vcmcgICAgICB8IDExOCArKysrKysrKysrKysr LS0tLS0tLS0tLS0KIGV0Yy9PUkctTkVXUyAgICAgICAgICAgIHwgIDMzICsrKysrKysKIGxp c3Avb2wuZWwgICAgICAgICAgICAgIHwgMTk4ICsrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0KIGxpc3Avb3JnLWlkLmVsICAgICAgICAgIHwgIDk2ICsrKysrKysr KysrKysrKystLS0KIHRlc3RpbmcvbGlzcC90ZXN0LW9sLmVsIHwgMTM0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0MzMgaW5zZXJ0aW9ucygrKSwg MTQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9vcmctbWFudWFsLm9yZyBiL2Rv Yy9vcmctbWFudWFsLm9yZwppbmRleCA4NTU2OGU3YWIuLmVlZGFmMzY1YSAxMDA2NDQKLS0t IGEvZG9jL29yZy1tYW51YWwub3JnCisrKyBiL2RvYy9vcmctbWFudWFsLm9yZwpAQCAtMzI5 NiwxMCArMzI5Niw2IEBAIEhlcmUgaXMgdGhlIGZ1bGwgc2V0IG9mIGJ1aWx0LWluIGxpbmsg dHlwZXM6CiAKICAgRmlsZSBsaW5rcy4gIEZpbGUgbmFtZSBtYXkgYmUgcmVtb3RlLCBhYnNv bHV0ZSwgb3IgcmVsYXRpdmUuCiAKLSAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkg YSBsaW5lIG51bWJlciwgb3IgYSB0ZXh0IHNlYXJjaC4KLSAgSW4gT3JnIGZpbGVzLCB5b3Ug bWF5IGxpbmsgdG8gYSBoZWFkbGluZSBuYW1lLCBhIGN1c3RvbSBJRCwgb3IgYQotICBjb2Rl IHJlZmVyZW5jZSBpbnN0ZWFkLgotCiAgIEFzIGEgc3BlY2lhbCBjYXNlLCAiZmlsZSIgcHJl Zml4IG1heSBiZSBvbWl0dGVkIGlmIHRoZSBmaWxlIG5hbWUKICAgaXMgY29tcGxldGUsIGUu Zy4sIGl0IHN0YXJ0cyB3aXRoID0uLz0sIG9yID0vPS4KIApAQCAtMzM2Myw0NCArMzM1OSw1 MCBAQCBIZXJlIGlzIHRoZSBmdWxsIHNldCBvZiBidWlsdC1pbiBsaW5rIHR5cGVzOgogCiAg IEV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIHVwb24gYWN0aXZhdGlvbi4KIAorCitGb3IgPWZp bGU6PSBhbmQgPWlkOj0gbGlua3MsIHlvdSBjYW4gYWRkaXRpb25hbGx5IHNwZWNpZnkgYSBs aW5lCitudW1iZXIsIG9yIGEgdGV4dCBzZWFyY2ggc3RyaW5nLCBzZXBhcmF0ZWQgYnkgPTo6 PS4gIEluIE9yZyBmaWxlcywgeW91CittYXkgbGluayB0byBhIGhlYWRsaW5lIG5hbWUsIGEg Y3VzdG9tIElELCBvciBhIGNvZGUgcmVmZXJlbmNlIGluc3RlYWQuCisKIFRoZSBmb2xsb3dp bmcgdGFibGUgaWxsdXN0cmF0ZXMgdGhlIGxpbmsgdHlwZXMgYWJvdmUsIGFsb25nIHdpdGgg dGhlaXIKIG9wdGlvbnM6CiAKLXwgTGluayBUeXBlICB8IEV4YW1wbGUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwtLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLXwKLXwgaHR0cCAgICAgICB8ID1odHRwOi8vc3RhZmYuc2NpZW5jZS51dmEubmwvYy5k b21pbmlrLz0gICAgICAgICAgICAgICAgIHwKLXwgaHR0cHMgICAgICB8ID1odHRwczovL29y Z21vZGUub3JnLz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgZG9p ICAgICAgICB8ID1kb2k6MTAuMTAwMC8xODI9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKLXwgZmlsZSAgICAgICB8ID1maWxlOi9ob21lL2RvbWluaWsvaW1h Z2VzL2p1cGl0ZXIuanBnPSAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID0v aG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVyLmpwZz0gKHNhbWUgYXMgYWJvdmUpICAgICAg IHwKLXwgICAgICAgICAgICB8ID1maWxlOnBhcGVycy9sYXN0LnBkZj0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID0uL3BhcGVycy9sYXN0 LnBkZj0gKHNhbWUgYXMgYWJvdmUpICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAg ICAgICB8ID1maWxlOi9zc2g6bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9IChyZW1v dGUpICAgICAgIHwKLXwgICAgICAgICAgICB8ID0vc3NoOm1lQHNvbWUud2hlcmU6cGFwZXJz L2xhc3QucGRmPSAoc2FtZSBhcyBhYm92ZSkgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxl OnNvbWV0ZXh0ZmlsZTo6Tk5OPSAoanVtcCB0byBsaW5lIG51bWJlcikgICAgICAgICAgIHwK LXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9yZz0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9y Zzo6c29tZSB3b3Jkcz0gKHRleHQgc2VhcmNoKVtmbjoxMl0gICAgIHwKLXwgICAgICAgICAg ICB8ID1maWxlOnByb2plY3RzLm9yZzo6KnRhc2sgdGl0bGU9IChoZWFkbGluZSBzZWFyY2gp ICAgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6I2N1c3RvbS1p ZD0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAgIHwKLXwgYXR0YWNobWVudCB8ID1hdHRhY2ht ZW50OnByb2plY3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg ICAgICAgICAgICB8ID1hdHRhY2htZW50OnByb2plY3RzLm9yZzo6c29tZSB3b3Jkcz0gKHRl eHQgc2VhcmNoKSAgICAgIHwKLXwgZG9jdmlldyAgICB8ID1kb2N2aWV3OnBhcGVycy9sYXN0 LnBkZjo6Tk5OPSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgaWQgICAgICAgICB8 ID1pZDpCNzQyM0Y0RC0yRThBLTQ3MUItODgxMC1DNDBGMDc0NzE3RTk9ICAgICAgICAgICAg ICAgIHwKLXwgbmV3cyAgICAgICB8ID1uZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgbWFpbHRvICAgICB8ID1tYWlsdG86YWRl bnRAZ2FsYXh5Lm5ldD0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgbWhl ICAgICAgICB8ID1taGU6Zm9sZGVyPSAoZm9sZGVyIGxpbmspICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1taGU6Zm9sZGVyI2lkPSAobWVzc2Fn ZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgcm1haWwgICAgICB8ID1y bWFpbDpmb2xkZXI9IChmb2xkZXIgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLXwgICAgICAgICAgICB8ID1ybWFpbDpmb2xkZXIjaWQ9IChtZXNzYWdlIGxpbmspICAg ICAgICAgICAgICAgICAgICAgICAgIHwKLXwgZ251cyAgICAgICB8ID1nbnVzOmdyb3VwPSAo Z3JvdXAgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAg ICAgICB8ID1nbnVzOmdyb3VwI2lkPSAoYXJ0aWNsZSBsaW5rKSAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKLXwgYmJkYiAgICAgICB8ID1iYmRiOlIuKlN0YWxsbWFuPSAocmVjb3Jk IHdpdGggcmVnZXhwKSAgICAgICAgICAgICAgICAgIHwKLXwgaXJjICAgICAgICB8ID1pcmM6 L2lyYy5jb20vI2VtYWNzL2JvYj0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwK LXwgaGVscCAgICAgICB8ID1oZWxwOm9yZy1zdG9yZS1saW5rPSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLXwgaW5mbyAgICAgICB8ID1pbmZvOm9yZyNFeHRlcm5h bCBsaW5rcz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgc2hlbGwgICAg ICB8ID1zaGVsbDpscyAqLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKLXwgZWxpc3AgICAgICB8ID1lbGlzcDooZmluZC1maWxlICJFbGlzcC5vcmci KT0gKEVsaXNwIGZvcm0gdG8gZXZhbHVhdGUpIHwKLXwgICAgICAgICAgICB8ID1lbGlzcDpv cmctYWdlbmRhPSAoaW50ZXJhY3RpdmUgRWxpc3AgY29tbWFuZCkgICAgICAgICAgIHwKK3wg TGluayBUeXBlICB8IEV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tfAorfCBodHRwICAgICAgIHwgPWh0dHA6Ly9zdGFmZi5zY2llbmNlLnV2YS5ubC9jLmRv bWluaWsvPSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgaHR0cHMgICAgICB8ID1o dHRwczovL29yZ21vZGUub3JnLz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cit8IGRvaSAgICAgICAgfCA9ZG9pOjEwLjEwMDAvMTgyPSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBmaWxlICAg ICAgIHwgPWZpbGU6L2hvbWUvZG9taW5pay9pbWFnZXMvanVwaXRlci5qcGc9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID0vaG9tZS9kb21pbmlrL2lt YWdlcy9qdXBpdGVyLmpwZz0gKHNhbWUgYXMgYWJvdmUpICAgICAgICAgICAgICAgICB8Cit8 ICAgICAgICAgICAgfCA9ZmlsZTpwYXBlcnMvbGFzdC5wZGY9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPS4vcGFwZXJz L2xhc3QucGRmPSAoc2FtZSBhcyBhYm92ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKK3wgICAgICAgICAgICB8ID1maWxlOi9zc2g6bWVAc29tZS53aGVyZTpwYXBlcnMv bGFzdC5wZGY9IChyZW1vdGUpICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9 L3NzaDptZUBzb21lLndoZXJlOnBhcGVycy9sYXN0LnBkZj0gKHNhbWUgYXMgYWJvdmUpICAg ICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWZpbGU6c29tZXRleHRmaWxlOjpOTk49 IChqdW1wIHRvIGxpbmUgbnVtYmVyKSAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAg ICAgICB8ID1maWxlOnByb2plY3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTpwcm9qZWN0cy5v cmc6OnNvbWUgd29yZHM9ICh0ZXh0IHNlYXJjaClbZm46MTJdICAgICAgICAgICAgICAgfAor fCAgICAgICAgICAgIHwgPWZpbGU6cHJvamVjdHMub3JnOjoqdGFzayB0aXRsZT0gKGhlYWRs aW5lIHNlYXJjaCkgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1maWxlOnBy b2plY3RzLm9yZzo6I2N1c3RvbS1pZD0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAgICAgICAg ICAgICB8Cit8IGF0dGFjaG1lbnQgfCA9YXR0YWNobWVudDpwcm9qZWN0cy5vcmc9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwg PWF0dGFjaG1lbnQ6cHJvamVjdHMub3JnOjpzb21lIHdvcmRzPSAodGV4dCBzZWFyY2gpICAg ICAgICAgICAgICAgIHwKK3wgZG9jdmlldyAgICB8ID1kb2N2aWV3OnBhcGVycy9sYXN0LnBk Zjo6Tk5OPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGlkICAg ICAgICAgfCA9aWQ6Qjc0MjNGNEQtMkU4QS00NzFCLTg4MTAtQzQwRjA3NDcxN0U5PSAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWlkOkI3NDIzRjRELTJF OEEtNDcxQi04ODEwLUM0MEYwNzQ3MTdFOTo6KnRhc2s9IChoZWFkbGluZSBzZWFyY2gpIHwK K3wgbmV3cyAgICAgICB8ID1uZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IG1haWx0byAgICAgfCA9bWFpbHRv OmFkZW50QGdhbGF4eS5uZXQ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAorfCBtaGUgICAgICAgIHwgPW1oZTpmb2xkZXI9IChmb2xkZXIgbGluaykgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8 ID1taGU6Zm9sZGVyI2lkPSAobWVzc2FnZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Cit8IHJtYWlsICAgICAgfCA9cm1haWw6Zm9sZGVyPSAoZm9sZGVy IGxpbmspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAg ICAgICAgIHwgPXJtYWlsOmZvbGRlciNpZD0gKG1lc3NhZ2UgbGluaykgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKK3wgZ251cyAgICAgICB8ID1nbnVzOmdyb3VwPSAo Z3JvdXAgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 Cit8ICAgICAgICAgICAgfCA9Z251czpncm91cCNpZD0gKGFydGljbGUgbGluaykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBiYmRiICAgICAgIHwgPWJiZGI6 Ui4qU3RhbGxtYW49IChyZWNvcmQgd2l0aCByZWdleHApICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKK3wgaXJjICAgICAgICB8ID1pcmM6L2lyYy5jb20vI2VtYWNzL2JvYj0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGhlbHAgICAgICAg fCA9aGVscDpvcmctc3RvcmUtbGluaz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorfCBpbmZvICAgICAgIHwgPWluZm86b3JnI0V4dGVybmFsIGxp bmtzPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgc2hl bGwgICAgICB8ID1zaGVsbDpscyAqLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGVsaXNwICAgICAgfCA9ZWxpc3A6KGZpbmQt ZmlsZSAiRWxpc3Aub3JnIik9IChFbGlzcCBmb3JtIHRvIGV2YWx1YXRlKSAgICAgICAgICAg fAorfCAgICAgICAgICAgIHwgPWVsaXNwOm9yZy1hZ2VuZGE9IChpbnRlcmFjdGl2ZSBFbGlz cCBjb21tYW5kKSAgICAgICAgICAgICAgICAgICAgIHwKIAogIytjaW5kZXg6IFZNIGxpbmtz CiAjK2NpbmRleDogV2FuZGVybHVzdCBsaW5rcwpAQCAtMzQ2MSw4ICszNDYzLDkgQEAgY3Vy cmVudCBidWZmZXI6CiAtIC9PcmcgbW9kZSBidWZmZXJzLyA6OgogCiAgIEZvciBPcmcgZmls ZXMsIGlmIHRoZXJlIGlzIGEgPTw8dGFyZ2V0Pj49IGF0IHBvaW50LCB0aGUgbGluayBwb2lu dHMKLSAgdG8gdGhlIHRhcmdldC4gIE90aGVyd2lzZSBpdCBwb2ludHMgdG8gdGhlIGN1cnJl bnQgaGVhZGxpbmUsIHdoaWNoCi0gIGlzIGFsc28gdGhlIGRlc2NyaXB0aW9uLgorICB0byB0 aGUgdGFyZ2V0LiAgSWYgdGhlcmUgaXMgYSBuYW1lZCBibG9jayAodXNpbmcgPSMrbmFtZTo9 KSBhdAorICBwb2ludCwgdGhlIGxpbmsgcG9pbnRzIHRvIHRoYXQgbmFtZS4gIE90aGVyd2lz ZSBpdCBwb2ludHMgdG8gdGhlCisgIGN1cnJlbnQgaGVhZGxpbmUsIHdoaWNoIGlzIGFsc28g dGhlIGRlc2NyaXB0aW9uLgogCiAgICMrdmluZGV4OiBvcmctaWQtbGluay10by1vcmctdXNl LWlkCiAgICMrY2luZGV4OiBAc2FtcHtDVVNUT01fSUR9LCBwcm9wZXJ0eQpAQCAtMzQ4MCw2 ICszNDgzLDEzIEBAIGN1cnJlbnQgYnVmZmVyOgogICB0aW1lc3RhbXAsIGRlcGVuZGluZyBv biB+b3JnLWlkLW1ldGhvZH4uICBMYXRlciwgd2hlbiBpbnNlcnRpbmcgdGhlCiAgIGxpbmss IHlvdSBuZWVkIHRvIGRlY2lkZSB3aGljaCBvbmUgdG8gdXNlLgogCisgICMrdmluZGV4OiBv cmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQKKyAgV2hlbiB+b3JnLWlkLWxpbmstY29u c2lkZXItcGFyZW50LWlkfiBpcyB+dH4sIHBhcmVudCA9SUQ9IHByb3BlcnRpZXMKKyAgYXJl IGNvbnNpZGVyZWQuICBUaGlzIGFsbG93cyBsaW5raW5nIHRvIHNwZWNpZmljIHRhcmdldHMs IG5hbWVkCisgIGJsb2Nrcywgb3IgaGVhZGxpbmVzICh3aGljaCBtYXkgbm90IGhhdmUgYSBn bG9iYWxseSB1bmlxdWUgPUlEPQorICB0aGVtc2VsdmVzKSB3aXRoaW4gdGhlIGNvbnRleHQg b2YgYSBwYXJlbnQgaGVhZGxpbmUgb3IgZmlsZSB3aGljaAorICBkb2VzLgorCiAtIC9FbWFp bC9OZXdzIGNsaWVudHM6IFZNLCBSbWFpbCwgV2FuZGVybHVzdCwgTUgtRSwgR251cy8gOjoK IAogICAjK3ZpbmRleDogb3JnLWxpbmstZW1haWwtZGVzY3JpcHRpb24tZm9ybWF0CkBAIC0z NzUzLDEzICszNzYzLDE1IEBAIHRoZSBsaW5rIGNvbXBsZXRpb24gZnVuY3Rpb24gbGlrZSB0 aGlzOgogKG9yZy1saW5rLXNldC1wYXJhbWV0ZXIgInR5cGUiIDpjb21wbGV0ZSAjJ3NvbWUt Y29tcGxldGlvbi1mdW5jdGlvbikKICMrZW5kX3NyYwogCi0qKiBTZWFyY2ggT3B0aW9ucyBp biBGaWxlIExpbmtzCisqKiBTZWFyY2ggT3B0aW9ucyBpbiBGaWxlIGFuZCBJRCBMaW5rcwog OlBST1BFUlRJRVM6CiA6REVTQ1JJUFRJT046IExpbmtpbmcgdG8gYSBzcGVjaWZpYyBsb2Nh dGlvbi4KIDpBTFRfVElUTEU6IFNlYXJjaCBPcHRpb25zCiA6RU5EOgogIytjaW5kZXg6IHNl YXJjaCBvcHRpb24gaW4gZmlsZSBsaW5rcworIytjaW5kZXg6IHNlYXJjaCBvcHRpb24gaW4g aWQgbGlua3MKICMrY2luZGV4OiBmaWxlIGxpbmtzLCBzZWFyY2hpbmcKKyMrY2luZGV4OiBp ZCBsaW5rcywgc2VhcmNoaW5nCiAjK2NpbmRleDogYXR0YWNobWVudCBsaW5rcywgc2VhcmNo aW5nCiAKIEZpbGUgbGlua3MgY2FuIGNvbnRhaW4gYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0 byBtYWtlIEVtYWNzIGp1bXAgdG8gYQpAQCAtMzc3MSw4ICszNzgzLDggQEAgZXhhbXBsZSwg d2hlbiB0aGUgY29tbWFuZCB+b3JnLXN0b3JlLWxpbmt+IGNyZWF0ZXMgYSBsaW5rIChzZWUK IGxpbmUgYXMgYSBzZWFyY2ggc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmluZCB0aGlz IGxpbmUgYmFjayBsYXRlcgogd2hlbiBmb2xsb3dpbmcgdGhlIGxpbmsgd2l0aCB7e3trYmQo Qy1jIEMtbyl9fX0uCiAKLU5vdGUgdGhhdCBhbGwgc2VhcmNoIG9wdGlvbnMgYXBwbHkgZm9y IEF0dGFjaG1lbnQgbGlua3MgaW4gdGhlIHNhbWUKLXdheSB0aGF0IHRoZXkgYXBwbHkgZm9y IEZpbGUgbGlua3MuCitOb3RlIHRoYXQgYWxsIHNlYXJjaCBvcHRpb25zIGFwcGx5IGZvciBB dHRhY2htZW50IGFuZCBJRCBsaW5rcyBpbiB0aGUKK3NhbWUgd2F5IHRoYXQgdGhleSBhcHBs eSBmb3IgRmlsZSBsaW5rcy4KIAogSGVyZSBpcyB0aGUgc3ludGF4IG9mIHRoZSBkaWZmZXJl bnQgd2F5cyB0byBhdHRhY2ggYSBzZWFyY2ggdG8gYSBmaWxlCiBsaW5rLCB0b2dldGhlciB3 aXRoIGV4cGxhbmF0aW9ucyBmb3IgZWFjaDoKQEAgLTIxMTc3LDcgKzIxMTg5LDcgQEAgVGhl IGZvbGxvd2luZyA9b2wtbWFuLmVsPSBmaWxlIGltcGxlbWVudHMgaXQKIFBBVEggc2hvdWxk IGJlIGEgdG9waWMgdGhhdCBjYW4gYmUgdGhyb3duIGF0IHRoZSBtYW4gY29tbWFuZC4iCiAg IChmdW5jYWxsIG9yZy1tYW4tY29tbWFuZCBwYXRoKSkKIAotKGRlZnVuIG9yZy1tYW4tc3Rv cmUtbGluayAoKQorKGRlZnVuIG9yZy1tYW4tc3RvcmUtbGluayAoJm9wdGlvbmFsIF9pbnRl cmFjdGl2ZT8pCiAgICJTdG9yZSBhIGxpbmsgdG8gYSBtYW4gcGFnZS4iCiAgICh3aGVuICht ZW1xIG1ham9yLW1vZGUgJyhNYW4tbW9kZSB3b21hbi1tb2RlKSkKICAgICA7OyBUaGlzIGlz IGEgbWFuIHBhZ2UsIHdlIGRvIG1ha2UgdGhpcyBsaW5rLgpAQCAtMjEyMzcsMTMgKzIxMjQ5 LDE1IEBAIEEgcmV2aWV3IG9mID1vbC1tYW4uZWw9OgogCiAgICBGb3IgZXhhbXBsZSwgfm9y Zy1tYW4tc3RvcmUtbGlua34gaXMgcmVzcG9uc2libGUgZm9yIHN0b3JpbmcgYSBsaW5rCiAg ICB3aGVuIH5vcmctc3RvcmUtbGlua34gKHNlZSBbWypIYW5kbGluZyBMaW5rc11dKSBpcyBj YWxsZWQgZnJvbSBhIGJ1ZmZlcgotICAgZGlzcGxheWluZyBhIG1hbiBwYWdlLiAgSXQgZmly c3QgY2hlY2tzIGlmIHRoZSBtYWpvciBtb2RlIGlzCi0gICBhcHByb3ByaWF0ZS4gIElmIGNo ZWNrIGZhaWxzLCB0aGUgZnVuY3Rpb24gcmV0dXJucyB+bmlsfiwgd2hpY2gKLSAgIG1lYW5z IGl0IGlzbid0IHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhIGxpbmsgdG8gdGhlIGN1cnJl bnQKLSAgIGJ1ZmZlci4gIE90aGVyd2lzZSB0aGUgZnVuY3Rpb24gbWFrZXMgYSBsaW5rIHN0 cmluZyBieSBjb21iaW5pbmcKLSAgIHRoZSA9bWFuOj0gcHJlZml4IHdpdGggdGhlIG1hbiB0 b3BpYy4gIEl0IGFsc28gcHJvdmlkZXMgYSBkZWZhdWx0Ci0gICBkZXNjcmlwdGlvbi4gIFRo ZSBmdW5jdGlvbiB+b3JnLWluc2VydC1saW5rfiBjYW4gaW5zZXJ0IGl0IGJhY2sKLSAgIGlu dG8gYW4gT3JnIGJ1ZmZlciBsYXRlciBvbi4KKyAgIGRpc3BsYXlpbmcgYSBtYW4gcGFnZS4g IEl0IGlzIHBhc3NlZCBhbiBhcmd1bWVudCB+aW50ZXJhY3RpdmU/fgorICAgd2hpY2ggdGhp cyBmdW5jdGlvbiBkb2VzIG5vdCB1c2UsIGJ1dCBvdGhlciBzdG9yZSBmdW5jdGlvbnMgdXNl IHRvCisgICBiZWhhdmUgZGlmZmVyZW50bHkgd2hlbiBhIGxpbmsgaXMgc3RvcmVkIGludGVy YWN0aXZlbHkgYnkgdGhlIHVzZXIuCisgICBJdCBmaXJzdCBjaGVja3MgaWYgdGhlIG1ham9y IG1vZGUgaXMgYXBwcm9wcmlhdGUuICBJZiBjaGVjayBmYWlscywKKyAgIHRoZSBmdW5jdGlv biByZXR1cm5zIH5uaWx+LCB3aGljaCBtZWFucyBpdCBpc24ndCByZXNwb25zaWJsZSBmb3IK KyAgIGNyZWF0aW5nIGEgbGluayB0byB0aGUgY3VycmVudCBidWZmZXIuICBPdGhlcndpc2Ug dGhlIGZ1bmN0aW9uCisgICBtYWtlcyBhIGxpbmsgc3RyaW5nIGJ5IGNvbWJpbmluZyB0aGUg PW1hbjo9IHByZWZpeCB3aXRoIHRoZSBtYW4KKyAgIHRvcGljLiAgSXQgYWxzbyBwcm92aWRl cyBhIGRlZmF1bHQgZGVzY3JpcHRpb24uICBUaGUgZnVuY3Rpb24KKyAgIH5vcmctaW5zZXJ0 LWxpbmt+IGNhbiBpbnNlcnQgaXQgYmFjayBpbnRvIGFuIE9yZyBidWZmZXIgbGF0ZXIgb24u CiAKICoqIEFkZGluZyBFeHBvcnQgQmFja2VuZHMKIDpQUk9QRVJUSUVTOgpkaWZmIC0tZ2l0 IGEvZXRjL09SRy1ORVdTIGIvZXRjL09SRy1ORVdTCmluZGV4IDE5MTE3ODIxYS4uNmM2MTcx ZGM3IDEwMDY0NAotLS0gYS9ldGMvT1JHLU5FV1MKKysrIGIvZXRjL09SRy1ORVdTCkBAIC0y MjksNiArMjI5LDEyIEBAIHRpbWVzdGFtcCBvYmplY3QuICBQb3NzaWJsZSB2YWx1ZXM6IH50 aW1lcmFuZ2V+LCB+ZGF0ZXJhbmdlfiwgfm5pbH4uCiB+b3JnLWVsZW1lbnQtdGltZXN0YW1w LWludGVycHJldGVyfiB0YWtlcyBpbnRvIGFjY291bnQgdGhpcyBwcm9wZXJ0eQogYW5kIHJl dHVybnMgYW4gYXBwcm9wcmlhdGUgdGltZXN0YW1wIHN0cmluZy4KIAorKioqKiA9b3JnLWxp bms9IHN0b3JlIGZ1bmN0aW9ucyBhcmUgcGFzc2VkIGFuIH5pbnRlcmFjdGl2ZT9+IGFyZ3Vt ZW50CisKK1RoZSB+OnN0b3JlOn4gZnVuY3Rpb25zIHNldCBmb3IgbGluayB0eXBlcyB1c2lu Zworfm9yZy1saW5rLXNldC1wYXJhbWV0ZXJzfiBhcmUgbm93IHBhc3NlZCBhbiB+aW50ZXJh Y3RpdmU/fiBhcmd1bWVudCwKK2luZGljYXRpbmcgd2hldGhlciB+b3JnLXN0b3JlLWxpbmt+ IHdhcyBjYWxsZWQgaW50ZXJhY3RpdmVseS4KKwogKioqIH5vcmctcHJpb3JpdHk9c2hvd34g Y29tbWFuZCBubyBsb25nZXIgYWRqdXN0cyBmb3Igc2NoZWR1bGVkL2RlYWRsaW5lCiAKIElu IGFnZW5kYSB2aWV3cywgfm9yZy1wcmlvcml0eT1zaG93fiBjb21tYW5kIHByZXZpb3VzbHkg ZGlzcGxheWVkIHRoZQpAQCAtMzA3LDYgKzMxMywxNyBAQCBUaGUgY2hhbmdlIGlzIGJyZWFr aW5nIHdoZW4gfm9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2V+IGlzIHNldCB0byB+dH4u CiAqKiogfm9yZy1iYWJlbC1saWx5cG9uZC1jb21waWxlLWxpbHlmaWxlfiBpZ25vcmVzIG9w dGlvbmFsIHNlY29uZCBhcmd1bWVudAogCiBUaGUgPVRFU1Q9IHBhcmFtZXRlciBpcyBiZXR0 ZXIgc2VydmVkIGJ5IEVtYWNzIGRlYnVnZ2luZyB0b29scy4KKworKioqIH5vcmctaWQtc3Rv cmUtbGlua34gbm93IGFkZHMgc2VhcmNoIHN0cmluZ3MgZm9yIHByZWNpc2UgbGluayB0YXJn ZXRzCisKK1ByZXZpb3VzbHksIHNlYXJjaCBzdHJpbmdzIGFyZSBzdXBwb3J0ZWQgZm9yID1m aWxlOj0gbGlua3MgYnV0IG5vdCBmb3IKKz1pZDo9IGxpbmtzLiAgVGhpcyBjaGFuZ2UgYWRk cyBzdXBwb3J0IGZvciBzZWFyY2ggc3RyaW5ncyB0byA9aWQ6PQorbGlua3MuCisKK1RoaXMg bmV3IGJlaGF2aW91ciBjYW4gYmUgZGlzYWJsZWQgZ2VuZXJhbGx5IGJ5IHNldHRpbmcKK35v cmctaWQtbGluay11c2UtY29udGV4dH4gdG8gfm5pbH4sIG9yIHdoZW4gc3RvcmluZyBhIHNw ZWNpZmljIGxpbmsgYnkKK3Bhc3NpbmcgYSBwcmVmaXggYXJndW1lbnQgdG8gfm9yZy1zdG9y ZS1saW5rfi4KKwogKiogTmV3IGFuZCBjaGFuZ2VkIG9wdGlvbnMKICoqKiBOZXcgdmFyaWFi bGUgfm9yZy1jbG9jay1vdXQtcmVtb3ZlZC1sYXN0LWNsb2NrfgogCkBAIC00ODUsNiArNTAy LDIyIEBAIEN1cnJlbnRseSBpbXBsZW1lbnRlZCBvcHRpb25zIGFyZToKICAgdGFza3MgdGhp cyB0ZWNobmljYWxseSB2aW9sYXRlcyB0aGUgaUNhbGVuZGFyIHNwZWMsIGJ1dCBzb21lCiAg IGlDYWxlbmRhciBwcm9ncmFtcyBzdXBwb3J0IHRoaXMgdXNhZ2UuCiAKKyoqKiBOZXcgb3B0 aW9uIH5vcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWR+IHRvIGFsbG93ID1pZDo9IGxp bmtzIHRvIHBhcmVudCBoZWFkbGluZXMKKworRm9yID1pZDo9IGxpbmtzLCB3aGVuIHRoaXMg b3B0aW9uIGlzIGVuYWJsZWQsIH5vcmctc3RvcmUtbGlua34gd2lsbAorbG9vayBmb3IgaWRz IGZyb20gcGFyZW50L2FuY2VzdG9yIGhlYWRsaW5lcywgaWYgdGhlIGN1cnJlbnQgaGVhZGxp bmUKK2RvZXMgbm90IGhhdmUgYW4gaWQuCisKK0NvbWJpbmVkIHdpdGggdGhlIG5ldyBhYmls aXR5IGZvciA9aWQ6PSBsaW5rcyB0byB1c2Ugc2VhcmNoIHN0cmluZ3MKK2ZvciBwcmVjaXNl IGxpbmsgdGFyZ2V0cyAod2hlbiA9b3JnLWlkLWxpbmstdXNlLWNvbnRleHQ9IGlzID10PSwg d2hpY2gKK2lzIHRoZSBkZWZhdWx0KSwgdGhpcyBhbGxvd3MgbGlua2luZyB0byBzcGVjaWZp YyBoZWFkbGluZXMgd2l0aG91dAorcmVxdWlyaW5nIGV2ZXJ5IGhlYWRsaW5lIHRvIGhhdmUg YW4gaWQgcHJvcGVydHksIGFzIGxvbmcgYXMgdGhlCitoZWFkbGluZSBpcyB1bmlxdWUgd2l0 aGluIGEgc3VidHJlZSB0aGF0IGRvZXMgaGF2ZSBhbiBpZCBwcm9wZXJ0eS4KKworQnkgZ2l2 aW5nIGZpbGVzIHRvcC1sZXZlbCBpZCBwcm9wZXJ0aWVzLCBsaW5rcyB0byBoZWFkbGluZXMg aW4gdGhlCitmaWxlIGNhbiBiZSBtYWRlIG1vcmUgcm9idXN0IGJ5IHVzaW5nIHRoZSBmaWxl IGlkIGluc3RlYWQgb2YgdGhlIGZpbGUKK3BhdGguCisKICoqIE5ldyBmZWF0dXJlcwogKioq ID1vYi1wbGFudHVtbC5lbD06IFN1cHBvcnQgdGlreiBmaWxlIGZvcm1hdCBvdXRwdXQKIApk aWZmIC0tZ2l0IGEvbGlzcC9vbC5lbCBiL2xpc3Avb2wuZWwKaW5kZXggZTY4NGI5NTA0Li5l NTkzOGVlMTMgMTAwNjQ0Ci0tLSBhL2xpc3Avb2wuZWwKKysrIGIvbGlzcC9vbC5lbApAQCAt NjMsNyArNjMsNiBAQAogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWZpbmQtcHJvcGVydHkgIm9y ZyIgKHByb3BlcnR5ICZvcHRpb25hbCB2YWx1ZSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmct Z2V0LWhlYWRpbmcgIm9yZyIgKCZvcHRpb25hbCBuby10YWdzIG5vLXRvZG8gbm8tcHJpb3Jp dHkgbm8tY29tbWVudCkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctaWQtZmluZC1pZC1maWxl ICJvcmctaWQiIChpZCkpCi0oZGVjbGFyZS1mdW5jdGlvbiBvcmctaWQtc3RvcmUtbGluayAi b3JnLWlkIiAoKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1pbnNlcnQtaGVhZGluZyAib3Jn IiAoJm9wdGlvbmFsIGFyZyBpbnZpc2libGUtb2sgdG9wKSkKIChkZWNsYXJlLWZ1bmN0aW9u IG9yZy1sb2FkLW1vZHVsZXMtbWF5YmUgIm9yZyIgKCZvcHRpb25hbCBmb3JjZSkpCiAoZGVj bGFyZS1mdW5jdGlvbiBvcmctbWFyay1yaW5nLXB1c2ggIm9yZyIgKCZvcHRpb25hbCBwb3Mg YnVmZmVyKSkKQEAgLTgxOSw2ICs4MTgsNDYgQEAgc3BlYy4iCiAgICAgKG5vdCAob3JnLWlu LXJlZ2V4cCBvcmctbGluay1hbnktcmUpKSkpCiAKIAwKKyhkZWZ1biBvcmctbGluay0tdHJ5 LWxpbmstc3RvcmUtZnVuY3Rpb25zIChpbnRlcmFjdGl2ZT8pCisgICJUcnkgc3RvcmluZyBl eHRlcm5hbCBsaW5rcywgcHJvbXB0aW5nIGlmIG1vcmUgdGhhbiBvbmUgaXMgcG9zc2libGUu CisKK0VhY2ggZnVuY3Rpb24gcmV0dXJuZWQgYnkgYG9yZy1zdG9yZS1saW5rLWZ1bmN0aW9u c2AgaXMgY2FsbGVkIGluCit0dXJuLiBJZiBtdWx0aXBsZSBmdW5jdGlvbnMgcmV0dXJuIG5v bi1uaWwsIHByb21wdCBmb3Igd2hpY2ggbGluaworc2hvdWxkIGJlIHN0b3JlZC4KKworUmV0 dXJuIHQgaWYgYSBmdW5jdGlvbiBoYXMgc3VjY2Vzc2Z1bGx5IHN0b3JlZCBhIGxpbmssIHdo aWNoIHdpbGwKK2JlIHN0b3JlZCBpbiBgb3JnLWxpbmstc3RvcmUtcHJvcHNgLgorIgorICAo bGV0ICgocmVzdWx0cy1hbGlzdCBuaWwpKQorICAgIChkb2xpc3QgKGYgKG9yZy1zdG9yZS1s aW5rLWZ1bmN0aW9ucykpCisgICAgICAod2hlbiAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAg ICAgICAgICAgICAgKGZ1bmNhbGwgZiBpbnRlcmFjdGl2ZT8pCisgICAgICAgICAgICAgIDs7 IFhYWDogVGhlIHN0b3JlIGZ1bmN0aW9uIHVzZWQgKDwgT3JnIDkuNykgdG8gYWNjZXB0IG5v CisgICAgICAgICAgICAgIDs7IGFyZ3VtZW50czsgcHJvdmlkZSBiYWNrd2FyZCBjb21wYXRp YmlsaXR5IHN1cHBvcnQgZm9yCisgICAgICAgICAgICAgIDs7IHRoZW0uCisgICAgICAgICAg ICAgICh3cm9uZy1udW1iZXItb2YtYXJndW1lbnRzCisgICAgICAgICAgICAgICAoZnVuY2Fs bCBmKSkpCisgICAgICAgIDs7IFhYWDogcmV0dXJuIHZhbHVlIGlzIG5vdCBsaW5rJ3MgcGxp c3QsIHNvIHdlCisgICAgICAgIDs7IHN0b3JlIHRoZSBuZXcgdmFsdWUgYmVmb3JlIGl0IGlz IG1vZGlmaWVkLiAgSXQKKyAgICAgICAgOzsgd291bGQgYmUgY2xlYW5lciB0byBhc2sgc3Rv cmUgbGluayBmdW5jdGlvbnMgdG8KKyAgICAgICAgOzsgcmV0dXJuIHRoZSBwbGlzdCBpbnN0 ZWFkLgorICAgICAgICAocHVzaCAoY29ucyBmIChjb3B5LXNlcXVlbmNlIG9yZy1zdG9yZS1s aW5rLXBsaXN0KSkKKyAgICAgICAgICAgICAgcmVzdWx0cy1hbGlzdCkpKQorICAgIChwY2Fz ZSByZXN1bHRzLWFsaXN0CisgICAgICAoYG5pbCBuaWwpCisgICAgICAoYCgoLF8gLiAsXykp IHQpCTtzaW5nbGUgY2hvaWNlOiBub3RoaW5nIHRvIGRvCisgICAgICAoYCgoLG5hbWUgLiAs XykgLiAsXykKKyAgICAgICA7OyBSZWluc3RhdGUgbGluayBwbGlzdCBhc3NvY2lhdGVkIHRv IHRoZSBjaG9zZW4KKyAgICAgICA7OyBmdW5jdGlvbi4KKyAgICAgICAoYXBwbHkgIydvcmct bGluay1zdG9yZS1wcm9wcworICAgICAgICAgICAgICAoY2RyIChhc3NvYy1zdHJpbmcKKyAg ICAgICAgICAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZAorICAgICAgICAgICAgICAgICAg ICAgKGZvcm1hdCAiU3RvcmUgbGluayB3aXRoIChkZWZhdWx0ICVzKTogIiBuYW1lKQorICAg ICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciByZXN1bHRzLWFsaXN0KQorICAgICAg ICAgICAgICAgICAgICAgbmlsIHQgbmlsIG5pbCAoc3ltYm9sLW5hbWUgbmFtZSkpCisgICAg ICAgICAgICAgICAgICAgIHJlc3VsdHMtYWxpc3QpKSkKKyAgICAgICB0KSkpKQorCiA7Ozsg UHVibGljIEFQSQogCiAoZGVmdW4gb3JnLWxpbmstdHlwZXMgKCkKQEAgLTEzMzQsNiArMTM3 Myw1NyBAQCBwcmlvcml0eSBjb29raWUgb3IgdGFnLiIKIAkgIChvcmctbGluay0tbm9ybWFs aXplLXN0cmluZwogCSAgIChvciBzdHJpbmcgKG9yZy1nZXQtaGVhZGluZyB0IHQgdCB0KSkp KSkKIAorKGRlZnVuIG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQgKCZvcHRpb25hbCBy ZWxhdGl2ZS10bykKKyAgIkRldGVybWluZSBzZWFyY2ggc3RyaW5nIGFuZCBkZXNjcmlwdGlv biBmb3Igc3RvcmluZyBhIGxpbmsuCisKK0lmIGEgc2VhcmNoIHN0cmluZyBpcyBmb3VuZCwg cmV0dXJuIGNvbnMgY2VsbCBgKHNlYXJjaC1zdHJpbmcKKy4gZGVzYylgLiAgT3RoZXJ3aXNl LCByZXR1cm4gbmlsLgorCitJZiB0aGVyZSBpcyBhbiBhY3RpdmUgcmVnaW9uLCB0aGUgY29u dGVudHMgaXMgdXNlZCAoc2VlCitgb3JnLWxpbmstLWNvbnRleHQtZnJvbS1yZWdpb25gKS4K KworSW4gb3JnLW1vZGUgYnVmZmVycywgaWYgcG9pbnQgaXMgYXQgYSBuYW1lZCBlbGVtZW50 IChlLmcuIGEKK3NvdXJjZSBibG9jayksIHRoZSBuYW1lIGlzIHVzZWQuIElmIHdpdGhpbiBh IGhlYWRpbmcsIHRoZSBjdXJyZW50CitoZWFkaW5nIGlzIHVzZWQuCisKK0lmIG5vbmUgb2Yg dGhvc2UgZmluZHMgYSBzdWl0YWJsZSBzZWFyY2ggc3RyaW5nLCB0aGUgY3VycmVudCBsaW5l CitpcyB1c2VkIGFzIHRoZSBzZWFyY2ggc3RyaW5nLgorCitPcHRpb25hbCBhcmd1bWVudCBS RUxBVElWRS1UTyBzcGVjaWZpZXMgdGhlIGJ1ZmZlciBwb3NpdGlvbiB3aGVyZQordGhlIHNl YXJjaCB3aWxsIHN0YXJ0IGZyb20uICBJZiB0aGUgc2VhcmNoIHRhcmdldCB0aGF0IHdvdWxk IGJlCityZXR1cm5lZCBpcyBhbHJlYWR5IGF0IHRoaXMgbG9jYXRpb24sIHJldHVybiBuaWwg dG8gYXZvaWQKK3VubmVjZXNzYXJ5IHNlYXJjaCBzdHJpbmdzIChmb3IgZXhhbXBsZSwgd2hl biB1c2luZyBzZWFyY2gKK3N0cmluZ3MgdG8gZmluZCB0YXJnZXRzIHdpdGhpbiBvcmctaWQg bGlua3MpLiIKKyAgKGxldCAoKHJlc3VsdAorICAgICAgICAgKGNvbmQKKyAgICAgICAgICAo KGRlcml2ZWQtbW9kZS1wICdvcmctbW9kZSkKKyAgICAgICAgICAgKGxldCogKChlbGVtZW50 IChvcmctZWxlbWVudC1hdC1wb2ludCkpCisgICAgICAgICAgICAgICAgICAobmFtZSAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOm5hbWUgZWxlbWVudCkpCisgICAgICAgICAgICAgICAgICAo aGVhZGluZyAob3JnLWVsZW1lbnQtbGluZWFnZSBlbGVtZW50ICdoZWFkbGluZSB0KSkpCisg ICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgKChsZXQgKChyZWdpb24gKG9yZy1s aW5rLS1jb250ZXh0LWZyb20tcmVnaW9uKSkpCisgICAgICAgICAgICAgICAgIChhbmQgcmVn aW9uIChjb25zIChvcmctbGluay0tbm9ybWFsaXplLXN0cmluZyByZWdpb24gdCkgbmlsKSkp KQorICAgICAgICAgICAgICAobmFtZQorICAgICAgICAgICAgICAgKGNvbnMgbmFtZSBuYW1l KSkKKyAgICAgICAgICAgICAgKChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkKKyAgICAg ICAgICAgICAgIChjb25zIChvcmctbGluay0tbm9ybWFsaXplLXN0cmluZyAob3JnLWN1cnJl bnQtbGluZS1zdHJpbmcpIHQpIG5pbCkpCisgICAgICAgICAgICAgICgoYW5kIGhlYWRpbmcK KyAgICAgICAgICAgICAgICAgICAgKD4gKG9yZy1lbGVtZW50LWJlZ2luIGhlYWRpbmcpIChv ciByZWxhdGl2ZS10byAwKSkpCisgICAgICAgICAgICAgICAoY29ucyAob3JnLWxpbmstaGVh ZGluZy1zZWFyY2gtc3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgKG9yZy1saW5rLS1u b3JtYWxpemUtc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgKG9yZy1nZXQtaGVhZGlu ZyB0IHQgdCB0KSkpKSkpKQorCisgICAgICAgICAgOzsgTm90IGluIGFuIG9yZy1tb2RlIGJ1 ZmZlcgorICAgICAgICAgICh0CisgICAgICAgICAgIChjb25zIChvcmctbGluay0tbm9ybWFs aXplLXN0cmluZworICAgICAgICAgICAgICAgICAgKG9yIChvcmctbGluay0tY29udGV4dC1m cm9tLXJlZ2lvbikgKG9yZy1jdXJyZW50LWxpbmUtc3RyaW5nKSkKKyAgICAgICAgICAgICAg ICAgIHQpCisgICAgICAgICAgICAgICAgIG5pbCkpKSkpCisKKyAgICA7OyBPbmx5IHVzZSBz ZWFyY2ggb3B0aW9uIGlmIHRoZXJlIGlzIHNvbWUgdGV4dC4KKyAgICAod2hlbiAob3JnLXN0 cmluZy1udy1wIChjYXIgcmVzdWx0KSkKKyAgICAgIHJlc3VsdCkpKQorCiAoZGVmdW4gb3Jn LWxpbmstb3Blbi1hcy1maWxlIChwYXRoIGluLWVtYWNzKQogICAiUHJldGVuZCBQQVRIIGlz IGEgZmlsZSBuYW1lIGFuZCBvcGVuIGl0LgogCkBAIC0xNTYwLDI5ICsxNjUwLDcgQEAgbm9u LW5pbC4iCiAgICAgICAgOzsgYXZhaWxhYmxlLiBJZiBtb3JlIHRoYW4gb25lIGNhbiBnZW5l cmF0ZSBhIGxpbmsgZnJvbSBjdXJyZW50CiAgICAgICAgOzsgbG9jYXRpb24sIGFzayB3aGlj aCBvbmUgdG8gdXNlLgogICAgICAgICgoYW5kIChub3QgKGVxdWFsIGFyZyAnKDE2KSkpCi0J ICAgICAobGV0ICgocmVzdWx0cy1hbGlzdCBuaWwpKQotCSAgICAgICAoZG9saXN0IChmIChv cmctc3RvcmUtbGluay1mdW5jdGlvbnMpKQotCQkgKHdoZW4gKGZ1bmNhbGwgZikKLQkJICAg OzsgWFhYOiByZXR1cm4gdmFsdWUgaXMgbm90IGxpbmsncyBwbGlzdCwgc28gd2UKLQkJICAg Ozsgc3RvcmUgdGhlIG5ldyB2YWx1ZSBiZWZvcmUgaXQgaXMgbW9kaWZpZWQuICBJdAotCQkg ICA7OyB3b3VsZCBiZSBjbGVhbmVyIHRvIGFzayBzdG9yZSBsaW5rIGZ1bmN0aW9ucyB0bwot CQkgICA7OyByZXR1cm4gdGhlIHBsaXN0IGluc3RlYWQuCi0JCSAgIChwdXNoIChjb25zIGYg KGNvcHktc2VxdWVuY2Ugb3JnLXN0b3JlLWxpbmstcGxpc3QpKQotCQkJIHJlc3VsdHMtYWxp c3QpKSkKLQkgICAgICAgKHBjYXNlIHJlc3VsdHMtYWxpc3QKLQkJIChgbmlsIG5pbCkKLQkJ IChgKCgsXyAuICxfKSkgdCkJO3NpbmdsZSBjaG9pY2U6IG5vdGhpbmcgdG8gZG8KLQkJIChg KCgsbmFtZSAuICxfKSAuICxfKQotCQkgIDs7IFJlaW5zdGF0ZSBsaW5rIHBsaXN0IGFzc29j aWF0ZWQgdG8gdGhlIGNob3NlbgotCQkgIDs7IGZ1bmN0aW9uLgotCQkgIChhcHBseSAjJ29y Zy1saW5rLXN0b3JlLXByb3BzCi0JCQkgKGNkciAoYXNzb2Mtc3RyaW5nCi0JCQkgICAgICAg KGNvbXBsZXRpbmctcmVhZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9y bWF0ICJTdG9yZSBsaW5rIHdpdGggKGRlZmF1bHQgJXMpOiAiIG5hbWUpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIgcmVzdWx0cy1hbGlzdCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIHQgbmlsIG5pbCAoc3ltYm9sLW5h bWUgbmFtZSkpCi0JCQkgICAgICAgcmVzdWx0cy1hbGlzdCkpKQotCQkgIHQpKSkpCisJICAg ICAob3JnLWxpbmstLXRyeS1saW5rLXN0b3JlLWZ1bmN0aW9ucyBpbnRlcmFjdGl2ZT8pKQog CShzZXRxIGxpbmsgKHBsaXN0LWdldCBvcmctc3RvcmUtbGluay1wbGlzdCA6bGluaykpCiAg ICAgICAgIDs7IElmIHN0b3JlIGZ1bmN0aW9uIGFjdHVhbGx5IHNldCBgOmRlc2NyaXB0aW9u JyBwcm9wZXJ0eSwgdXNlCiAgICAgICAgIDs7IGl0LCBldmVuIGlmIGl0IGlzIG5pbC4gIE90 aGVyd2lzZSwgZmFsbGJhY2sgdG8gbmlsIChhc2sgdXNlcikuCkBAIC0xNjM0LDYgKzE3MDIs NyBAQCBub24tbmlsLiIKIAkgICAgKG9yZy13aXRoLXBvaW50LWF0IG0KIAkgICAgICAoc2V0 cSBhZ2VuZGEtbGluayAob3JnLXN0b3JlLWxpbmsgbmlsIGludGVyYWN0aXZlPykpKSkpKQog CisgICAgICAgOzsgQ2FsZW5kYXIgbW9kZQogICAgICAgICgoZXEgbWFqb3ItbW9kZSAnY2Fs ZW5kYXItbW9kZSkKIAkobGV0ICgoY2QgKGNhbGVuZGFyLWN1cnNvci10by1kYXRlKSkpCiAJ ICAoc2V0cSBsaW5rCkBAIC0xNjQyLDYgKzE3MTEsNyBAQCBub24tbmlsLiIKIAkJIChvcmct ZW5jb2RlLXRpbWUgMCAwIDAgKG50aCAxIGNkKSAobnRoIDAgY2QpIChudGggMiBjZCkpKSkK IAkgIChvcmctbGluay1zdG9yZS1wcm9wcyA6dHlwZSAiY2FsZW5kYXIiIDpkYXRlIGNkKSkp CiAKKyAgICAgICA7OyBJbWFnZSBtb2RlCiAgICAgICAgKChlcSBtYWpvci1tb2RlICdpbWFn ZS1tb2RlKQogCShzZXRxIGNwbHR4dCAoY29uY2F0ICJmaWxlOiIKIAkJCSAgICAgKGFiYnJl dmlhdGUtZmlsZS1uYW1lIGJ1ZmZlci1maWxlLW5hbWUpKQpAQCAtMTY1OSwxMiArMTcyOSwy MCBAQCBub24tbmlsLiIKIAkgIChzZXRxIGNwbHR4dCAoY29uY2F0ICJmaWxlOiIgZmlsZSkK IAkJbGluayBjcGx0eHQpKSkKIAorICAgICAgIDs7IFRyeSBgb3JnLWNyZWF0ZS1maWxlLXNl YXJjaC1mdW5jdGlvbnNgLiAgSWYgYW55IGFyZQorICAgICAgIDs7IHN1Y2Nlc3NmdWwsIGNy ZWF0ZSBhIGZpbGUgbGluayB0byB0aGUgY3VycmVudCBidWZmZXIgd2l0aAorICAgICAgIDs7 IHRoZSBwcm92aWRlZCBzZWFyY2ggc3RyaW5nLiAgKHNldHMgYGxpbmtgIGFuZCBgY3BsdHh0 YCB0bworICAgICAgIDs7IHRoZSBzYW1lIHRoaW5nOyBpdCBsb29rcyBsaWtlIHRoZSBpbnRl bnRpb24gb3JpZ2luYWxseSB3YXMKKyAgICAgICA7OyB0aGF0IGNwbHR4dCB3YXMgYSBkZXNj cmlwdGlvbiwgd2hpY2ggbWlnaHQgaGF2ZSBiZWVuIHNldCBieQorICAgICAgIDs7IHRoZSBz ZWFyY2gtZnVuY3Rpb24gKHJlbW92ZWQgaW4gc3dpdGNoIHRvIGxleGljYWwgYmluZGluZykp LgogICAgICAgICgoc2V0cSBzZWFyY2ggKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNj ZXNzCiAJCSAgICAgICdvcmctY3JlYXRlLWZpbGUtc2VhcmNoLWZ1bmN0aW9ucykpCiAJKHNl dHEgbGluayAoY29uY2F0ICJmaWxlOiIgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGJ1ZmZlci1m aWxlLW5hbWUpCiAJCQkgICAiOjoiIHNlYXJjaCkpCiAJKHNldHEgY3BsdHh0IChvciBsaW5r KSkpIDs7IGRlc2NyaXB0aW9uCiAKKyAgICAgICA7OyBNYWluIGxvZ2ljIGZvciBzdG9yaW5n IGJ1aWx0LWluIGxpbmsgdHlwZXMgaW4gb3JnLW1vZGUKKyAgICAgICA7OyBidWZmZXJzCiAg ICAgICAgKChhbmQgKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpIChk ZXJpdmVkLW1vZGUtcCAnb3JnLW1vZGUpKQogCShvcmctd2l0aC1saW1pdGVkLWxldmVscwog CSAoc2V0cSBjdXN0b20taWQgKG9yZy1lbnRyeS1nZXQgbmlsICJDVVNUT01fSUQiKSkKQEAg LTE2ODQsNzEgKzE3NjIsMzMgQEAgbm9uLW5pbC4iCiAgICAgICAgICAgICAgICAgIGRlc2Mg bmlsCiAgICAgICAgICAgICAgICAgIDs7IERvIG5vdCBhcHBlbmQgI0NVU1RPTV9JRCBsaW5r IGJlbG93LgogICAgICAgICAgICAgICAgICBjdXN0b20taWQgbmlsKSkKLQkgICgoYW5kIChm ZWF0dXJlcCAnb3JnLWlkKQotCQkob3IgKGVxIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQg dCkKLQkJICAgIChhbmQgaW50ZXJhY3RpdmU/Ci0JCQkgKG9yIChlcSBvcmctaWQtbGluay10 by1vcmctdXNlLWlkICdjcmVhdGUtaWYtaW50ZXJhY3RpdmUpCi0JCQkgICAgIChhbmQgKGVx IG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQKLQkJCQkgICAgICAnY3JlYXRlLWlmLWludGVy YWN0aXZlLWFuZC1uby1jdXN0b20taWQpCi0JCQkJICAobm90IGN1c3RvbS1pZCkpKSkKLQkJ ICAgIChhbmQgb3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCAob3JnLWVudHJ5LWdldCBuaWwg IklEIikpKSkKLQkgICA7OyBTdG9yZSBhIGxpbmsgdXNpbmcgdGhlIElEIGF0IHBvaW50Ci0J ICAgKHNldHEgbGluayAoY29uZGl0aW9uLWNhc2UgbmlsCi0JCQkgIChwcm9nMSAob3JnLWlk LXN0b3JlLWxpbmspCi0JCQkgICAgKHNldHEgZGVzYyAocGxpc3QtZ2V0IG9yZy1zdG9yZS1s aW5rLXBsaXN0IDpkZXNjcmlwdGlvbikpKQotCQkJKGVycm9yCi0JCQkgOzsgUHJvYmFibHkg YmVmb3JlIGZpcnN0IGhlYWRsaW5lLCBsaW5rIG9ubHkgdG8gZmlsZQotCQkJIChjb25jYXQg ImZpbGU6IgotCQkJCSAoYWJicmV2aWF0ZS1maWxlLW5hbWUKLQkJCQkgIChidWZmZXItZmls ZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKSkpKSkpKQotCSAgKHQKKyAgICAgICAgICAo dAogCSAgIDs7IEp1c3QgbGluayB0byBjdXJyZW50IGhlYWRsaW5lLgogCSAgIChzZXRxIGNw bHR4dCAoY29uY2F0ICJmaWxlOiIKIAkJCQkoYWJicmV2aWF0ZS1maWxlLW5hbWUKIAkJCQkg KGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpKSkpCi0JICAgOzsgQWRk IGEgY29udGV4dCBzZWFyY2ggc3RyaW5nLgotCSAgICh3aGVuIChvcmcteG9yIG9yZy1saW5r LWNvbnRleHQtZm9yLWZpbGVzIChlcXVhbCBhcmcgJyg0KSkpCi0JICAgICAobGV0KiAoKGVs ZW1lbnQgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkKLQkJICAgIChuYW1lIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6bmFtZSBlbGVtZW50KSkKLQkJICAgIChjb250ZXh0Ci0JCSAgICAgKGNv bmQKLQkJICAgICAgKChsZXQgKChyZWdpb24gKG9yZy1saW5rLS1jb250ZXh0LWZyb20tcmVn aW9uKSkpCi0JCQkgKGFuZCByZWdpb24gKG9yZy1saW5rLS1ub3JtYWxpemUtc3RyaW5nIHJl Z2lvbiB0KSkpKQotCQkgICAgICAobmFtZSkKLQkJICAgICAgKChvcmctYmVmb3JlLWZpcnN0 LWhlYWRpbmctcCkKLQkJICAgICAgIChvcmctbGluay0tbm9ybWFsaXplLXN0cmluZyAob3Jn LWN1cnJlbnQtbGluZS1zdHJpbmcpIHQpKQotCQkgICAgICAodCAob3JnLWxpbmstaGVhZGlu Zy1zZWFyY2gtc3RyaW5nKSkpKSkKLQkgICAgICAgKHdoZW4gKG9yZy1zdHJpbmctbnctcCBj b250ZXh0KQotCQkgKHNldHEgY3BsdHh0IChmb3JtYXQgIiVzOjolcyIgY3BsdHh0IGNvbnRl eHQpKQotCQkgKHNldHEgZGVzYwotCQkgICAgICAgKG9yIG5hbWUKLQkJCSAgIDs7IEFsdGhv dWdoIGRlc2NyaXB0aW9uIGlzIG5vdCBhIHNlYXJjaAotCQkJICAgOzsgc3RyaW5nLCB1c2Ug YG9yZy1saW5rLS1ub3JtYWxpemUtc3RyaW5nJwotCQkJICAgOzsgdG8gcHJldHRpZnkgaXQg KGNvbnRpZ3VvdXMgd2hpdGUgc3BhY2VzKQotCQkJICAgOzsgYW5kIHJlbW92ZSB2b2xhdGls ZSBjb250ZW50cyAoc3RhdGlzdGljcwotCQkJICAgOzsgY29va2llcykuCi0JCQkgICAoYW5k IChub3QgKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKSkKLQkJCQkob3JnLWxpbmstLW5v cm1hbGl6ZS1zdHJpbmcKLQkJCQkgKG9yZy1nZXQtaGVhZGluZyB0IHQgdCB0KSkpCi0JCQkg ICAiTk9ORSIpKSkpKQotCSAgIChzZXRxIGxpbmsgY3BsdHh0KSkpKSkKLQorICAgICAgICAg ICAod2hlbiAob3JnLXhvciBvcmctbGluay1jb250ZXh0LWZvci1maWxlcyAoZXF1YWwgYXJn ICcoNCkpKQorICAgICAgICAgICAgIChwY2FzZSAob3JnLWxpbmstcHJlY2lzZS1saW5rLXRh cmdldCkKKyAgICAgICAgICAgICAgIChgbmlsIG5pbCkKKyAgICAgICAgICAgICAgIChgKCxz ZWFyY2gtc3RyaW5nIC4gLHNlYXJjaC1kZXNjKQorICAgICAgICAgICAgICAgIChzZXRxIGNw bHR4dCAoZm9ybWF0ICIlczo6JXMiIGNwbHR4dCBzZWFyY2gtc3RyaW5nKSkKKyAgICAgICAg ICAgICAgICAoc2V0cSBkZXNjIHNlYXJjaC1kZXNjKSkpKQorICAgICAgICAgICAoc2V0cSBs aW5rIGNwbHR4dCkpKSkpCisKKyAgICAgICA7OyBCdWZmZXIgbGlua2VkIHRvIGZpbGUsIGJ1 dCBub3QgYW4gb3JnLW1vZGUgYnVmZmVyLgogICAgICAgICgoYnVmZmVyLWZpbGUtbmFtZSAo YnVmZmVyLWJhc2UtYnVmZmVyKSkKIAk7OyBKdXN0IGxpbmsgdG8gdGhpcyBmaWxlIGhlcmUu CiAJKHNldHEgY3BsdHh0IChjb25jYXQgImZpbGU6IgogCQkJICAgICAoYWJicmV2aWF0ZS1m aWxlLW5hbWUKIAkJCSAgICAgIChidWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZm ZXIpKSkpKQogCTs7IEFkZCBhIGNvbnRleHQgc2VhcmNoIHN0cmluZy4KLQkod2hlbiAob3Jn LXhvciBvcmctbGluay1jb250ZXh0LWZvci1maWxlcyAoZXF1YWwgYXJnICcoNCkpKQotCSAg KGxldCAoKGNvbnRleHQgKG9yZy1saW5rLS1ub3JtYWxpemUtc3RyaW5nCi0JCQkgIChvciAo b3JnLWxpbmstLWNvbnRleHQtZnJvbS1yZWdpb24pCi0JCQkgICAgICAob3JnLWN1cnJlbnQt bGluZS1zdHJpbmcpKQotCQkJICB0KSkpCi0JICAgIDs7IE9ubHkgdXNlIHNlYXJjaCBvcHRp b24gaWYgdGhlcmUgaXMgc29tZSB0ZXh0LgotCSAgICAod2hlbiAob3JnLXN0cmluZy1udy1w IGNvbnRleHQpCi0JICAgICAgKHNldHEgY3BsdHh0IChmb3JtYXQgIiVzOjolcyIgY3BsdHh0 IGNvbnRleHQpKQotCSAgICAgIChzZXRxIGRlc2MgIk5PTkUiKSkpKQotCShzZXRxIGxpbmsg Y3BsdHh0KSkKKyAgICAgICAgKHdoZW4gKG9yZy14b3Igb3JnLWxpbmstY29udGV4dC1mb3It ZmlsZXMgKGVxdWFsIGFyZyAnKDQpKSkKKyAgICAgICAgICAocGNhc2UgKG9yZy1saW5rLXBy ZWNpc2UtbGluay10YXJnZXQpCisgICAgICAgICAgICAoYG5pbCBuaWwpCisgICAgICAgICAg ICAoYCgsc2VhcmNoLXN0cmluZyAuICxzZWFyY2gtZGVzYykKKyAgICAgICAgICAgICAoc2V0 cSBjcGx0eHQgKGZvcm1hdCAiJXM6OiVzIiBjcGx0eHQgc2VhcmNoLXN0cmluZykpCisgICAg ICAgICAgICAgKHNldHEgZGVzYyBzZWFyY2gtZGVzYykpKSkKKyAgICAgICAgKHNldHEgbGlu ayBjcGx0eHQpKQogCiAgICAgICAgKGludGVyYWN0aXZlPwogCSh1c2VyLWVycm9yICJObyBt ZXRob2QgZm9yIHN0b3JpbmcgYSBsaW5rIGZyb20gdGhpcyBidWZmZXIiKSkKZGlmZiAtLWdp dCBhL2xpc3Avb3JnLWlkLmVsIGIvbGlzcC9vcmctaWQuZWwKaW5kZXggZmJlNmEwZWQwLi43 ODRkN2NiMDAgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWlkLmVsCisrKyBiL2xpc3Avb3JnLWlk LmVsCkBAIC0xMjksNiArMTI5LDM3IEBAIG5pbCAgIE5ldmVyIHVzZSBhbiBJRCB0byBtYWtl IGEgbGluaywgaW5zdGVhZCBsaW5rIHVzaW5nIGEgdGV4dCBzZWFyY2ggZm9yCiAJICAoY29u c3QgOnRhZyAiT25seSB1c2UgZXhpc3RpbmciIHVzZS1leGlzdGluZykKIAkgIChjb25zdCA6 dGFnICJEbyBub3QgdXNlIElEIHRvIGNyZWF0ZSBsaW5rIiBuaWwpKSkKIAorKGRlZmN1c3Rv bSBvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQgbmlsCisgICJOb24tbmlsIG1lYW5z IHN0b3JpbmcgYSBsaW5rIHRvIGFuIE9yZyBmaWxlIHdpbGwgY29uc2lkZXIgcGFyZW50IGVu dHJ5IElEcy4KKworVXNlIHRoaXMgd2l0aCBgb3JnLWlkLWxpbmstdXNlLWNvbnRleHRgIHNl dCB0byBgdGAgdG8gYWxsb3cKK2xpbmtpbmcgdG8gdW5pcXVlbHktbmFtZWQgc3ViLWVudHJp ZXMgd2l0aGluIGEgcGFyZW50IGVudHJ5IHdpdGgKK2FuIElELCB3aXRob3V0IHJlcXVpcmlu ZyBldmVyeSBzdWItZW50cnkgdG8gaGF2ZSBpdHMgb3duIElELiIKKyAgOmdyb3VwICdvcmct bGluay1zdG9yZQorICA6Z3JvdXAgJ29yZy1pZAorICA6cGFja2FnZS12ZXJzaW9uICcoT3Jn IC4gIjkuNyIpCisgIDp0eXBlICdib29sZWFuKQorCisoZGVmY3VzdG9tIG9yZy1pZC1saW5r LXVzZS1jb250ZXh0IHQKKyAgIk5vbi1uaWwgbWVhbnMgb3JnLWlkIGxpbmtzIGZyb20gYG9y Zy1pZC1zdG9yZS1saW5rJyBjb250YWluIGNvbnRleHQuCitcXDxvcmctbW9kZS1tYXA+CitB IHNlYXJjaCBzdHJpbmcgaXMgYWRkZWQgdG8gdGhlIGlkIHdpdGggXCI6OlwiIGFzIHNlcGFy YXRvciBhbmQKK3VzZWQgdG8gZmluZCB0aGUgY29udGV4dCB3aGVuIHRoZSBsaW5rIGlzIGFj dGl2YXRlZCBieSB0aGUKK2NvbW1hbmQgYG9yZy1vcGVuLWF0LXBvaW50Jy4gIFdoZW4gdGhp cyBvcHRpb24gaXMgdCwgdGhlIGVudGlyZQorYWN0aXZlIHJlZ2lvbiBpcyBiZSBwbGFjZWQg aW4gdGhlIHNlYXJjaCBzdHJpbmcgb2YgdGhlIGZpbGUgbGluay4KK0lmIHNldCB0byBhIHBv c2l0aXZlIGludGVnZXIgTiwgb25seSB0aGUgZmlyc3QgTiBsaW5lcyBvZiBjb250ZXh0Cith cmUgc3RvcmVkLgorCitVc2luZyBhIHByZWZpeCBhcmd1bWVudCB0byB0aGUgY29tbWFuZHMg YG9yZy1zdG9yZS1saW5rJyBcCitcKGBcXFt1bml2ZXJzYWwtYXJndW1lbnRdIFxcW29yZy1z dG9yZS1saW5rXScpIG9yCitgb3JnLWlkLXN0b3JlLWxpbmtgIG5lZ2F0ZXMgdGhpcyBzZXR0 aW5nIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlCitjb21tYW5kLiIKKyAgOmdyb3VwICdvcmct bGluay1zdG9yZQorICA6Z3JvdXAgJ29yZy1pZAorICA6cGFja2FnZS12ZXJzaW9uICcoT3Jn IC4gIjkuNyIpCisgIDp0eXBlICcoY2hvaWNlIGJvb2xlYW4gaW50ZWdlcikKKyAgOnNhZmUg KGxhbWJkYSAodmFsKSAob3IgKGJvb2xlYW5wIHZhbCkgKGludGVnZXJwIHZhbCkpKSkKKwog KGRlZmN1c3RvbSBvcmctaWQtdXVpZC1wcm9ncmFtICJ1dWlkZ2VuIgogICAiVGhlIHV1aWRn ZW4gcHJvZ3JhbS4iCiAgIDpncm91cCAnb3JnLWlkCkBAIC0yNTgsMTQgKzI4OSwxNyBAQCBU aGlzIHZhcmlhYmxlIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBgb3JnLWlkLXRyYWNrLWdsb2Jh bGx5JyBpcyBzZXQuIgogOzs7IFRoZSBBUEkgZnVuY3Rpb25zCiAKIDs7OyMjI2F1dG9sb2Fk Ci0oZGVmdW4gb3JnLWlkLWdldC1jcmVhdGUgKCZvcHRpb25hbCBmb3JjZSkKKyhkZWZ1biBv cmctaWQtZ2V0LWNyZWF0ZSAoJm9wdGlvbmFsIGZvcmNlIGluaGVyaXQpCiAgICJDcmVhdGUg YW4gSUQgZm9yIHRoZSBjdXJyZW50IGVudHJ5IGFuZCByZXR1cm4gaXQuCiBJZiB0aGUgZW50 cnkgYWxyZWFkeSBoYXMgYW4gSUQsIGp1c3QgcmV0dXJuIGl0LgotV2l0aCBvcHRpb25hbCBh cmd1bWVudCBGT1JDRSwgZm9yY2UgdGhlIGNyZWF0aW9uIG9mIGEgbmV3IElELiIKK1dpdGgg b3B0aW9uYWwgYXJndW1lbnQgRk9SQ0UsIGZvcmNlIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyBJ RC4KK1dpdGggb3B0aW9uYWwgYXJndW1lbnQgSU5IRVJJVCwgY29uc2lkZXIgcGFyZW50cycg SURzIGlmIHRoZQorY3VycmVudCBlbnRyeSBkb2VzIG5vdCBoYXZlIG9uZS4iCiAgIChpbnRl cmFjdGl2ZSAiUCIpCiAgICh3aGVuIGZvcmNlCi0gICAgKG9yZy1lbnRyeS1wdXQgKHBvaW50 KSAiSUQiIG5pbCkpCi0gIChvcmctaWQtZ2V0IChwb2ludCkgJ2NyZWF0ZSkpCisgICAgKG9y Zy1lbnRyeS1wdXQgKHBvaW50KSAiSUQiIG5pbCkKKyAgICAoc2V0cSBpbmhlcml0IG5pbCkp CisgIChvcmctaWQtZ2V0IChwb2ludCkgJ2NyZWF0ZSBuaWwgaW5oZXJpdCkpCiAKIDs7OyMj I2F1dG9sb2FkCiAoZGVmdW4gb3JnLWlkLWNvcHkgKCkKQEAgLTI4MCwxNSArMzE0LDE2IEBA IFRoaXMgaXMgdXNlZnVsIHdoZW4gd29ya2luZyB3aXRoIGNvbnRlbnRzIGluIGEgdGVtcG9y YXJ5IGJ1ZmZlcgogdGhhdCB3aWxsIGJlIGNvcGllZCBiYWNrIHRvIHRoZSBvcmlnaW5hbC4i KQogCiA7OzsjIyNhdXRvbG9hZAotKGRlZnVuIG9yZy1pZC1nZXQgKCZvcHRpb25hbCBlcG9t IGNyZWF0ZSBwcmVmaXgpCisoZGVmdW4gb3JnLWlkLWdldCAoJm9wdGlvbmFsIGVwb20gY3Jl YXRlIHByZWZpeCBpbmhlcml0KQogICAiR2V0IHRoZSBJRCBwcm9wZXJ0eSBvZiB0aGUgZW50 cnkgYXQgRVBPTS4KIEVQT00gaXMgYW4gZWxlbWVudCwgbWFya2VyLCBvciBidWZmZXIgcG9z aXRpb24uCiBJZiBFUE9NIGlzIG5pbCwgcmVmZXIgdG8gdGhlIGVudHJ5IGF0IHBvaW50Lgog SWYgdGhlIGVudHJ5IGRvZXMgbm90IGhhdmUgYW4gSUQsIHRoZSBmdW5jdGlvbiByZXR1cm5z IG5pbC4KK0lmIElOSEVSSVQgaXMgbm9uLW5pbCwgcGFyZW50cycgSURzIGFyZSBhbHNvIGNv bnNpZGVyZWQuCiBIb3dldmVyLCB3aGVuIENSRUFURSBpcyBub24tbmlsLCBjcmVhdGUgYW4g SUQgaWYgbm9uZSBpcyBwcmVzZW50IGFscmVhZHkuCiBQUkVGSVggd2lsbCBiZSBwYXNzZWQg dGhyb3VnaCB0byBgb3JnLWlkLW5ldycuCiBJbiBhbnkgY2FzZSwgdGhlIElEIG9mIHRoZSBl bnRyeSBpcyByZXR1cm5lZC4iCi0gIChsZXQgKChpZCAob3JnLWVudHJ5LWdldCBlcG9tICJJ RCIpKSkKKyAgKGxldCAoKGlkIChvcmctZW50cnktZ2V0IGVwb20gIklEIiBpbmhlcml0KSkp CiAgICAgKGNvbmQKICAgICAgKChhbmQgaWQgKHN0cmluZ3AgaWQpIChzdHJpbmctbWF0Y2gg IlxcUy0iIGlkKSkKICAgICAgIGlkKQpAQCAtNzA0LDE3ICs3MzksMzMgQEAgb3B0aW9uYWwg YXJndW1lbnQgTUFSS0VSUCwgcmV0dXJuIHRoZSBwb3NpdGlvbiBhcyBhIG5ldyBtYXJrZXIu IgogOzsgc28gd2UgZG8gaGF2ZSB0byBhZGQgaXQgdG8gYG9yZy1zdG9yZS1saW5rLWZ1bmN0 aW9ucycuCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gb3JnLWlkLXN0b3JlLWxpbmsgKCkK KyhkZWZ1biBvcmctaWQtc3RvcmUtbGluayAoaW50ZXJhY3RpdmU/KQogICAiU3RvcmUgYSBs aW5rIHRvIHRoZSBjdXJyZW50IGVudHJ5LCB1c2luZyBpdHMgSUQuCiAKK1NlZSBhbHNvIGBv cmctaWQtbGluay10by1vcmctdXNlLWlkYCwKK2BvcmctaWQtbGluay11c2UtY29udGV4dGAs Citgb3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkYC4KKwogSWYgYmVmb3JlIGZpcnN0 IGhlYWRpbmcgc3RvcmUgZmlyc3QgdGl0bGUta2V5d29yZCBhcyBkZXNjcmlwdGlvbgogb3Ig ZmlsZW5hbWUgaWYgbm8gdGl0bGUuIgotICAoaW50ZXJhY3RpdmUpCi0gICh3aGVuIChhbmQg KGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpIChkZXJpdmVkLW1vZGUt cCAnb3JnLW1vZGUpKQotICAgIChsZXQqICgobGluayAoY29uY2F0ICJpZDoiIChvcmctaWQt Z2V0LWNyZWF0ZSkpKQorICAoaW50ZXJhY3RpdmUgInAiKQorICAod2hlbiAoYW5kIChidWZm ZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKQorICAgICAgICAgICAgIChkZXJp dmVkLW1vZGUtcCAnb3JnLW1vZGUpCisgICAgICAgICAgICAgKG9yIChlcSBvcmctaWQtbGlu ay10by1vcmctdXNlLWlkIHQpCisgICAgICAgICAgICAgICAgIChhbmQgaW50ZXJhY3RpdmU/ CisgICAgICAgICAgICAgICAgICAgICAgKG9yIChlcSBvcmctaWQtbGluay10by1vcmctdXNl LWlkICdjcmVhdGUtaWYtaW50ZXJhY3RpdmUpCisgICAgICAgICAgICAgICAgICAgICAgICAg IChhbmQgKGVxIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2NyZWF0ZS1pZi1pbnRlcmFjdGl2ZS1hbmQtbm8tY3VzdG9t LWlkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKG9yZy1lbnRyeS1n ZXQgbmlsICJDVVNUT01fSUQiKSkpKSkKKyAgICAgICAgICAgICAgICAgKGFuZCBvcmctaWQt bGluay10by1vcmctdXNlLWlkCisgICAgICAgICAgICAgICAgICAgICAgKG9yZy1lbnRyeS1n ZXQgbmlsICJJRCIgb3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkKSkpKQorICAgIChs ZXQqICgobGluayAoY29uY2F0ICJpZDoiIChvcmctaWQtZ2V0LWNyZWF0ZSBuaWwgb3JnLWlk LWxpbmstY29uc2lkZXItcGFyZW50LWlkKSkpCisgICAgICAgICAgIChpZC1sb2NhdGlvbiAo b3IgKGFuZCBvcmctZW50cnktcHJvcGVydHktaW5oZXJpdGVkLWZyb20KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItcG9zaXRpb24gb3JnLWVudHJ5LXByb3Bl cnR5LWluaGVyaXRlZC1mcm9tKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2 ZS1leGN1cnNpb24gKG9yZy1iYWNrLXRvLWhlYWRpbmctb3ItcG9pbnQtbWluKSAocG9pbnQp KSkpCiAJICAgKGNhc2UtZm9sZC1zZWFyY2ggbmlsKQogCSAgIChkZXNjIChzYXZlLWV4Y3Vy c2lvbgotCQkgICAob3JnLWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4gdCkKKyAgICAg ICAgICAgICAgICAgICAoZ290by1jaGFyIGlkLWxvY2F0aW9uKQogICAgICAgICAgICAgICAg ICAgIChjb25kICgob3JnLWJlZm9yZS1maXJzdC1oZWFkaW5nLXApCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsZXQgKChrZXl3b3JkcyAob3JnLWNvbGxlY3Qta2V5d29yZHMgJygi VElUTEUiKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBrZXl3b3JkcwpA QCAtNzI2LDE0ICs3NzcsMjUgQEAgb3IgZmlsZW5hbWUgaWYgbm8gdGl0bGUuIgogCQkJICAg ICAgKG1hdGNoLXN0cmluZyA0KQogCQkJICAgIChtYXRjaC1zdHJpbmcgMCkpKQogICAgICAg ICAgICAgICAgICAgICAgICAgICh0IGxpbmspKSkpKQorICAgICAgOzsgUHJlZml4IHRvIGBv cmctc3RvcmUtbGlua2AgbmVnYXRlcyBwcmVmZXJlbmNlIGZyb20gYG9yZy1pZC1saW5rLXVz ZS1jb250ZXh0YC4KKyAgICAgICh3aGVuIChvcmcteG9yIGN1cnJlbnQtcHJlZml4LWFyZyBv cmctaWQtbGluay11c2UtY29udGV4dCkKKyAgICAgICAgKHBjYXNlIChvcmctbGluay1wcmVj aXNlLWxpbmstdGFyZ2V0IGlkLWxvY2F0aW9uKQorICAgICAgICAgIChgbmlsIG5pbCkKKyAg ICAgICAgICAoYCgsc2VhcmNoLXN0cmluZyAuICxzZWFyY2gtZGVzYykKKyAgICAgICAgICAg KHNldHEgbGluayAoY29uY2F0IGxpbmsgIjo6IiBzZWFyY2gtc3RyaW5nKSkKKyAgICAgICAg ICAgKHNldHEgZGVzYyBzZWFyY2gtZGVzYykpKSkKICAgICAgIChvcmctbGluay1zdG9yZS1w cm9wcyA6bGluayBsaW5rIDpkZXNjcmlwdGlvbiBkZXNjIDp0eXBlICJpZCIpCiAgICAgICBs aW5rKSkpCiAKIChkZWZ1biBvcmctaWQtb3BlbiAoaWQgXykKICAgIkdvIHRvIHRoZSBlbnRy eSB3aXRoIGlkIElELiIKLSAgKG9yZy1tYXJrLXJpbmctcHVzaCkKLSAgKGxldCAoKG0gKG9y Zy1pZC1maW5kIGlkICdtYXJrZXIpKQotCWNtZCkKKyAgKGxldCogKChvcHRpb24gKGFuZCAo c3RyaW5nLW1hdGNoICI6OlxcKC4qXFwpXFwnIiBpZCkKKwkJICAgICAgKG1hdGNoLXN0cmlu ZyAxIGlkKSkpCisJIChpZCAoaWYgKG5vdCBvcHRpb24pIGlkCisgICAgICAgICAgICAgICAo c3Vic3RyaW5nIGlkIDAgKG1hdGNoLWJlZ2lubmluZyAwKSkpKQorICAgICAgICAgbSBjbWQp CisgICAgKG9yZy1tYXJrLXJpbmctcHVzaCkKKyAgICAoc2V0cSBtIChvcmctaWQtZmluZCBp ZCAnbWFya2VyKSkKICAgICAodW5sZXNzIG0KICAgICAgIChlcnJvciAiQ2Fubm90IGZpbmQg ZW50cnkgd2l0aCBJRCBcIiVzXCIiIGlkKSkKICAgICA7OyBVc2UgYSBidWZmZXItc3dpdGNo aW5nIGNvbW1hbmQgaW4gYW5hbG9neSB0byBmaW5kaW5nIGZpbGVzCkBAIC03NTAsOSArODEy LDEzIEBAIG9yIGZpbGVuYW1lIGlmIG5vIHRpdGxlLiIKIAkoZnVuY2FsbCBjbWQgKG1hcmtl ci1idWZmZXIgbSkpKQogICAgIChnb3RvLWNoYXIgbSkKICAgICAobW92ZS1tYXJrZXIgbSBu aWwpCisgICAgKHdoZW4gb3B0aW9uCisgICAgICAob3JnLWxpbmstc2VhcmNoIG9wdGlvbikp CiAgICAgKG9yZy1mb2xkLXNob3ctY29udGV4dCkpKQogCi0ob3JnLWxpbmstc2V0LXBhcmFt ZXRlcnMgImlkIiA6Zm9sbG93ICMnb3JnLWlkLW9wZW4pCisob3JnLWxpbmstc2V0LXBhcmFt ZXRlcnMgImlkIgorICA6Zm9sbG93ICMnb3JnLWlkLW9wZW4KKyAgOnN0b3JlICMnb3JnLWlk LXN0b3JlLWxpbmspCiAKIChwcm92aWRlICdvcmctaWQpCiAKZGlmZiAtLWdpdCBhL3Rlc3Rp bmcvbGlzcC90ZXN0LW9sLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2wuZWwKaW5kZXggZTBj ZWMwODU0Li4yNGQ5MjYwODQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9sLmVs CisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9sLmVsCkBAIC0zODEsNiArMzgxLDE0MCBAQCBT ZWUgaHR0cHM6Ly9naXRodWIuY29tL3lhbnRhcjkyL29yZy9pc3N1ZXMvNC4iCiAJIChlcXVh bCAoZm9ybWF0ICJbW2ZpbGU6JXM6Oipmb28gYmFyXVtmb28gYmFyXV0iIGZpbGUgZmlsZSkK IAkJKG9yZy1zdG9yZS1saW5rIG5pbCkpKSkpKSkKIAorKGVydC1kZWZ0ZXN0IHRlc3Qtb3Jn LWxpbmsvcHJlY2lzZS1saW5rLXRhcmdldCAoKQorICAiVGVzdCBgb3JnLWxpbmstcHJlY2lz ZS1saW5rLXRhcmdldGAgc3BlY2lmaWNhdGlvbnMuIgorICAoc2hvdWxkCisgICAoZXF1YWwg JygiKkgxIiAuICJIMSIpCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIq IEgxPHBvaW50PlxuKiBIMlxuIgorICAgICAgICAgICAgKG9yZy1saW5rLXByZWNpc2UtbGlu ay10YXJnZXQpKSkpCisgIChzaG91bGQKKyAgIChlcXVhbCAnKCJmb28iIC4gImZvbyIpCisg ICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgxXG4jK25hbWU6IGZvbzxw b2ludD5cbiMrYmVnaW5fZXhhbXBsZVxuaGlcbiMrZW5kX2V4YW1wbGVcbiIKKyAgICAgICAg ICAgIChvcmctbGluay1wcmVjaXNlLWxpbmstdGFyZ2V0KSkpKQorICAoc2hvdWxkCisgICAo ZXF1YWwgJygiVGV4dCIgLiBuaWwpCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0ICJcblRleHQ8cG9pbnQ+XG4qIEgxXG4iCisgICAgICAgICAgICAob3JnLWxpbmstcHJl Y2lzZS1saW5rLXRhcmdldCkpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsIG5pbAorICAgICAg ICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiXG48cG9pbnQ+XG4qIEgxXG4iCisgICAg ICAgICAgICAob3JnLWxpbmstcHJlY2lzZS1saW5rLXRhcmdldCkpKSkKKyAgOzsgcmVsYXRp dmUgdG8gYSBoZWFkaW5nCisgIChzaG91bGQKKyAgIChlcXVhbCBuaWwKKyAgICAgICAgICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSDE8cG9pbnQ+XG4qIEgyXG4iCisgICAgICAg ICAgICAob3JnLWxpbmstcHJlY2lzZS1saW5rLXRhcmdldCAxKSkpKQorICAoc2hvdWxkCisg ICAoZXF1YWwgJygiKkgyIiAuICJIMiIpCisgICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0ICIqIEgxXG4qIEgyPHBvaW50PlxuIgorICAgICAgICAgICAgKG9yZy1saW5rLXBy ZWNpc2UtbGluay10YXJnZXQgMSkpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsIG5pbAorICAg ICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBIMVxuKiBIMjxwb2ludD5cbiIK KyAgICAgICAgICAgIChvcmctbGluay1wcmVjaXNlLWxpbmstdGFyZ2V0IDYpKSkpCisgICkK KworKGRlZm1hY3JvIHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICh0ZXh0ICZyZXN0 IGJvZHkpCisgICJSZXR1cm4gOmxpbmsgYW5kIDpkZXNjcmlwdGlvbiBmcm9tIGxpbmsgc3Rv cmVkIGluIGJvZHkuIgorICAoZGVjbGFyZSAoaW5kZW50IDEpKQorICBgKGxldCAob3JnLXN0 b3JlLWxpbmstcGxpc3QpCisgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dC1pbi1maWxl ICx0ZXh0CisgICAgICAgLEBib2R5CisgICAgICAgKGxpc3QgKHBsaXN0LWdldCBvcmctc3Rv cmUtbGluay1wbGlzdCA6bGluaykKKyAgICAgICAgICAgICAocGxpc3QtZ2V0IG9yZy1zdG9y ZS1saW5rLXBsaXN0IDpkZXNjcmlwdGlvbikpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9y Zy1saW5rL2lkLXN0b3JlLWxpbmsgKCkKKyAgIlRlc3QgYG9yZy1pZC1zdG9yZS1saW5rJyBz cGVjaWZpY2F0aW9ucy4iCisgIChsZXQgKChvcmctaWQtbGluay10by1vcmctdXNlLWlkIG5p bCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJyhuaWwgbmlsKQorICAgICAgICAgICAg KHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG46UFJPUEVSVElFUzpcbjpJ RDogYWJjXG46RU5EOlxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmsgdCkp KSkpCisgIDs7IE9uIGEgaGVhZGxpbmUsIGxpbmsgdG8gdGhhdCBoZWFkbGluZSdzIElELiAg VXNlIGhlYWRpbmcgYXMgdGhlCisgIDs7IGRlc2NyaXB0aW9uIG9mIHRoZSBsaW5rLgorICAo bGV0ICgob3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCB0KSkKKyAgICAoc2hvdWxkCisgICAg IChlcXVhbCAnKCJpZDphYmMiICJIMSIpCisgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQt bGluay13aXRoLXRleHQgIiogSDFcbjpQUk9QRVJUSUVTOlxuOklEOiBhYmNcbjpFTkQ6XG4i CisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluayB0KSkpKSkKKyAgOzsgUmVtb3Zl IFRPRE8ga2V5d29yZHMgZXRjIGZyb20gZGVzY3JpcHRpb24gb2YgdGhlIGxpbmsuCisgIChs ZXQgKChvcmctaWQtbGluay10by1vcmctdXNlLWlkIHQpKQorICAgIChzaG91bGQKKyAgICAg KGVxdWFsICcoImlkOmFiYyIgIkgxIikKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1s aW5rLXdpdGgtdGV4dCAiKiBUT0RPIFsjQV0gSDEgOnRhZzpcbjpQUk9QRVJUSUVTOlxuOklE OiBhYmNcbjpFTkQ6XG4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluayB0KSkp KSkKKyAgOzsgY3JlYXRlLWlmLWludGVyYWN0aXZlCisgIChsZXQgKChvcmctaWQtbGluay10 by1vcmctdXNlLWlkICdjcmVhdGUtaWYtaW50ZXJhY3RpdmUpKQorICAgIChzaG91bGQKKyAg ICAgKGVxdWFsICcoImlkOmFiYyIgIkgxIikKKyAgICAgICAgICAgIChjbC1sZXRmICgoKHN5 bWJvbC1mdW5jdGlvbiAnb3JnLWlkLW5ldykKKyAgICAgICAgICAgICAgICAgICAgICAgKGxh bWJkYSAoJnJlc3QgX3Jlc3QpICJhYmMiKSkpCisgICAgICAgICAgICAgICh0ZXN0LW9sLXN0 b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuIgorICAgICAgICAgICAgICAgIChvcmctaWQt c3RvcmUtbGluayB0KSkpKSkKKyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKG5pbCBuaWwp CisgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQgIiogSDFcbiIK KyAgICAgICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5rIG5pbCkpKSkpCisgIDs7IGNyZWF0 ZS1pZi1pbnRlcmFjdGl2ZS1hbmQtbm8tY3VzdG9tLWlkCisgIChsZXQgKChvcmctaWQtbGlu ay10by1vcmctdXNlLWlkICdjcmVhdGUtaWYtaW50ZXJhY3RpdmUtYW5kLW5vLWN1c3RvbS1p ZCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJygiaWQ6YWJjIiAiSDEiKQorICAgICAg ICAgICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdvcmctaWQtbmV3KQorICAgICAg ICAgICAgICAgICAgICAgICAobGFtYmRhICgmcmVzdCBfcmVzdCkgImFiYyIpKSkKKyAgICAg ICAgICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG4iCisgICAg ICAgICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5rIHQpKSkpKQorICAgIChzaG91bGQKKyAg ICAgKGVxdWFsICcobmlsIG5pbCkKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5r LXdpdGgtdGV4dCAiKiBIMVxuOlBST1BFUlRJRVM6XG46Q1VTVE9NX0lEOiB4eXpcbjpFTkQ6 XG4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluayB0KSkpKQorICAgIChzaG91 bGQKKyAgICAgKGVxdWFsICcobmlsIG5pbCkKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3Jl ZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3Jl LWxpbmsgbmlsKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9yZy1saW5rL2lkLXN0b3Jl LWxpbmstdXNpbmctcGFyZW50ICgpCisgICJUZXN0IGBvcmctaWQtc3RvcmUtbGluaycgc3Bl Y2lmaWNhdGlvbnMgd2l0aCBgb3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkYCBzZXQu IgorICAobGV0ICgob3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCAndXNlLWV4aXN0aW5nKQor ICAgICAgICAob3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkIG5pbCkpCisgICAgKHNo b3VsZAorICAgICAoZXF1YWwgJyhuaWwgbmlsKQorICAgICAgICAgICAgKHRlc3Qtb2wtc3Rv cmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5E OlxuKiogSDJcbjxwb2ludD4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluayB0 KSkpKSkKKyAgOzsgd2hlbiB1c2luZyBjb250ZXh0IHRvIHN0aWxsIGZpbmQgc3BlY2lmaWMg aGVhZGluZworICAobGV0ICgob3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCAndXNlLWV4aXN0 aW5nKQorICAgICAgICAob3JnLWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkIHQpCisgICAg ICAgIChvcmctaWQtbGluay11c2UtY29udGV4dCB0KSkKKyAgICAoc2hvdWxkCisgICAgIChl cXVhbCAnKCJpZDphYmM6OipIMiIgIkgyIikKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3Jl ZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuOlBST1BFUlRJRVM6XG46SUQ6IGFiY1xuOkVORDpc bioqIEgyXG48cG9pbnQ+IgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmsgdCkp KSkKKyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKCJpZDphYmM6Om5hbWUiICJuYW1lIikK KyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuOlBS T1BFUlRJRVM6XG46SUQ6IGFiY1xuOkVORDpcblxuIytuYW1lOiBuYW1lXG48cG9pbnQ+Iyti ZWdpbl9leGFtcGxlXG5oaVxuIytlbmRfZXhhbXBsZVxuIgorICAgICAgICAgICAgICAob3Jn LWlkLXN0b3JlLWxpbmsgdCkpKSkKKyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKCJpZDph YmMiICJIMSIpCisgICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQg IiogSDE8cG9pbnQ+XG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuKiogSDJcbiIK KyAgICAgICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5rIHQpKSkpKQorICA7OyB3aGVuIG5v dCB1c2luZyBjb250ZXh0LCBkZXNjcmlwdGlvbiBzaG91bGQgYmUgdGhlIHBhcmVudC9maWxl CisgIChsZXQgKChvcmctaWQtbGluay10by1vcmctdXNlLWlkICd1c2UtZXhpc3RpbmcpCisg ICAgICAgIChvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQgdCkKKyAgICAgICAgKG9y Zy1pZC1saW5rLXVzZS1jb250ZXh0IG5pbCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwg JygiaWQ6YWJjIiAiSDEiKQorICAgICAgICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0 aC10ZXh0ICIqIEgxXG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuKiogSDJcbjxw b2ludD4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluayB0KSkpKQorICAgIChz aG91bGQKKyAgICAgKGxldCAoKHJlc3VsdCAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRl eHQgIjpQUk9QRVJUSUVTOlxuOklEOiB0b3BcbjpFTkQ6XG46KiBIMVxuPHBvaW50PiIKKyAg ICAgICAgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluayB0KSkpKQorICAgICAgIChl cXVhbCAiaWQ6dG9wIiAoY2FyIHJlc3VsdCkpCisgICAgICAgOzsgc3RyaXAgcmFuZG9tIGJ1 ZmZlciBmaWxlIG5hbWUKKyAgICAgICAoZXF1YWwgIm9yZy10ZXN0IiAoc3Vic3RyaW5nIChj YWRyIHJlc3VsdCkgMCA4KSkpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICcoImlkOnRv cCIgInRpdGxlIikKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4 dCAiOlBST1BFUlRJRVM6XG46SUQ6IHRvcFxuOkVORDpcbiMrVElUTEU6IHRpdGxlXG5cbjoq IEgxXG48cG9pbnQ+IgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3JlLWxpbmsgdCkpKSkp KQorCiAMCiA7OzsgUmFkaW8gVGFyZ2V0cwogCi0tIAoyLjM5LjIgKEFwcGxlIEdpdC0xNDMp Cgo= --82c438a2bce84bfa92084733299dc832--