From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Radon Rosborough Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Fixing package-initialize, adding early init file Date: Mon, 25 Sep 2017 09:27:28 -0700 Message-ID: References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="001a113f9f3449faa9055a060ba4" X-Trace: blaine.gmane.org 1506356934 17810 195.159.176.226 (25 Sep 2017 16:28:54 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 25 Sep 2017 16:28:54 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Sep 25 18:28:50 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dwWFV-0004AH-22 for ged-emacs-devel@m.gmane.org; Mon, 25 Sep 2017 18:28:49 +0200 Original-Received: from localhost ([::1]:43394 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwWFc-0006ZM-67 for ged-emacs-devel@m.gmane.org; Mon, 25 Sep 2017 12:28:56 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53889) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwWEv-0006ZH-AF for emacs-devel@gnu.org; Mon, 25 Sep 2017 12:28:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwWEu-00033b-Ey for emacs-devel@gnu.org; Mon, 25 Sep 2017 12:28:13 -0400 Original-Received: from mail-wr0-x22b.google.com ([2a00:1450:400c:c0c::22b]:43486) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dwWEt-00032f-Vj for emacs-devel@gnu.org; Mon, 25 Sep 2017 12:28:12 -0400 Original-Received: by mail-wr0-x22b.google.com with SMTP id a43so8804347wrc.0 for ; Mon, 25 Sep 2017 09:28:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=isqvR9s6vAedMfOLeHfaCDicgPvXhDgSQX2gh4YQflQ=; b=DUEs+Sbu0NnBIR9RdO8J6Bvssxsim2UmAUDEC7OhN20ZsqAKXCu68Q+RoRze7vmIkk 2xABNBBRaAh6c7X8LIOuePC5nN24mTc19dV1io3O3a7Bu1ZrvAmu7cZnnB7cHQsu507t R30QRo0s5jizCqSq/obD1mMD53QH61hbqwAFMR1G/ferhZM6sFhI3unZV/Q/oiDE+qmO fEr4Wvj4VTAR9mBEbLCmzhJvAm73Fgpsnyz24shFVVsAsnjIAalO7hsFYXpDseRDMhem fLS1bh9GUS4zeg7/WFSiGoJmXoUaR+QVyWWewZA6bSMn25EC3pTY0K0CeeQtTNdB49ZQ /IzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=isqvR9s6vAedMfOLeHfaCDicgPvXhDgSQX2gh4YQflQ=; b=jgcTSAHgXWuJjzmwr1Z5YmSebZZ70PLHuFv8ZdOuy053jxFmSEDRtiLZzOPlmNHkTI SylpUfRB2K2TH+Qmppphquv5zJQ8DtypOa07SLnUncfkxN15Etkg8sAV10j+fa8rmiEz BK1XZs6Rf6sF4b8tt7LBEKvAhgmm6fp/IbyqmoBDAb1RJugfgwHlDGglxiOouhcB1ubq F72UDSLV9kkkuOcDrMokgTM/+xSrnEuoJWg/BMaNzMtWZlIT/4XThognb31AWvzJhBqG fdyeiYMJCkdyKh19fTgcxBWtWUMe7isHaJoHBsbalA6HuisCSuVKbCRoqkaUAeptohnv PTDA== X-Gm-Message-State: AHPjjUg6PiNKgpCB1zKS5eB1CIEfhHiFm6KRhjhwXrthrcqpDeYHvHAx mtbU5V6QA6pHnUFmuENDTt/ZQuUra++EKWTpd3BVsf2dct4= X-Google-Smtp-Source: AOwi7QDtuQeLdX2apXfIQLSP1rom8IZFl5UyvGPhVvaIDp4u0/Yc3+j2yLMnUKLnSugjABqclOcQYqYCYUMyLi0JtSI= X-Received: by 10.25.150.3 with SMTP id y3mr2394423lfd.237.1506356889247; Mon, 25 Sep 2017 09:28:09 -0700 (PDT) Original-Received: by 10.25.22.76 with HTTP; Mon, 25 Sep 2017 09:27:28 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:400c:c0c::22b X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:218775 Archived-At: --001a113f9f3449faa9055a060ba4 Content-Type: multipart/alternative; boundary="001a113f9f3449faa5055a060ba2" --001a113f9f3449faa5055a060ba2 Content-Type: text/plain; charset="UTF-8" > BTW, in a subsequent patch we could rename this to > package-initialized, so the name reflects what the variable contains > rather than what it's used for. I don't think that's a good idea, since the most common usage of this variable will be (setq package-initialized nil) in the early init file, and that doesn't make much sense from a readability perspective (are we asserting that package.el wasn't initialized?). > This is not used from C code, so make it a plain old defvar in > startup.el. Done. New patch attached. --001a113f9f3449faa5055a060ba2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
> BTW, in a subsequent patch we could rename = this to
> package-initialized, so the name reflects what the v= ariable contains
> rather than what it's used for.

I don't think that's a good idea, since the most = common usage of this
variable will be

= =C2=A0 =C2=A0 (setq package-initialized nil)

in th= e early init file, and that doesn't make much sense from a
re= adability perspective (are we asserting that package.el wasn't
initialized?).

> This is not used from C code= , so make it a plain old defvar in
> startup.el.
Done. New patch attached.

--001a113f9f3449faa5055a060ba2-- --001a113f9f3449faa9055a060ba4 Content-Type: application/octet-stream; name="0001-Add-early-init-file-stop-package-initialize-insertio.patch" Content-Disposition: attachment; filename="0001-Add-early-init-file-stop-package-initialize-insertio.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j80dyfnb0 RnJvbSA5ZDJlMjViOGM3YzBmMTFmYzhlNWZiNDYwNDc3MDFkNDNlNjlhZjZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWRvbiBSb3Nib3JvdWdoIDxyYWRvbi5uZW9uQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAxNyBTZXAgMjAxNyAyMjoxNzoxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCBlYXJseSBpbml0IGZpbGUsIHN0b3AgcGFja2FnZS1pbml0aWFsaXplIGluc2VydGlvbgoK KiBsaXNwL3N0YXJ0dXAuZWw6IE5ldyB2YXJpYWJsZSBgZWFybHktaW5pdC1maWxlJywgZm9yIHRo ZSBmaWxlbmFtZSBvZgogIHRoZSBlYXJseSBpbml0IGZpbGUgdGhhdCB3YXMgbG9hZGVkLiAgTG9h ZCB0aGUgZWFybHkgaW5pdCBmaWxlLCBpZgogIGl0IGlzIGZvdW5kLiAgTW92ZSB0aGUgY2hlY2sg Zm9yIGFuIGludmFsaWQgdXNlcm5hbWUgdG8ganVzdCBiZWZvcmUKICB0aGF0LCBhbmQgbW92ZSB0 aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBhY2thZ2Ugc3lzdGVtIHRvIGp1c3QKICBhZnRlci4K CiogbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UuZWwgKHBhY2thZ2UtLWVuc3VyZS1pbml0LWZpbGUp OiBSZW1vdmUuIEJ1cm4KICB3aXRoIGZpcmUuIFJlbW92ZSByZWxhdGVkIGNvZGUgYW5kIGRvY3Vt ZW50YXRpb24uCgoqIGRvYy9saXNwcmVmL29zLnRleGk6IERvY3VtZW50IGVhcmx5IGluaXQgZmls ZS4KCiogZG9jL2xpc3ByZWYvcGFja2FnZS50ZXhpOiBEb2N1bWVudCBjaGFuZ2VzIHRvIHdoZW4K ICBwYWNrYWdlLWluaXRpYWxpemUgaXMgY2FsbGVkLCBhbmQgYWR2aXNlIGFnYWluc3QgY2FsbGlu ZyBpdCBpbiB0aGUKICBpbml0IGZpbGUuCgoqIGRvYy9lbWFjcy9wYWNrYWdlLnRleGk6IERvY3Vt ZW50IGNoYW5nZXMgdG8gd2hlbiBwYWNrYWdlLWluaXRpYWxpemUKICBpcyBjYWxsZWQuCgoqIGRv Yy9taXNjL29yZy50ZXhpOiBEb24ndCByZWNvbW1lbmQgdG8gY2FsbCBwYWNrYWdlLWluaXRpYWxp emUgaW4gdGhlCiAgaW5pdCBmaWxlLgoKKiBldGMvTkVXUzogRG9jdW1lbnQgY2hhbmdlcyB0byBz dGFydHVwIGFuZCBwYWNrYWdlLmVsLgoKRGlzY3Vzc2lvbiBvbiBlbWFjcy1kZXZlbCBsZWFkaW5n IHVwIHRvIHRoaXMgY2hhbmdlIChhcHByb3hpbWF0ZWx5IDE1MAptZXNzYWdlcyk6CgotIGh0dHBz Oi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZW1hY3MtZGV2ZWwvMjAxNy0wOC9tc2cwMDE1 NC5odG1sCi0gaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9lbWFjcy1kZXZlbC8y MDE3LTA4L21zZzAwNDMzLmh0bWwKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s L2VtYWNzLWRldmVsLzIwMTctMDkvbXNnMDAwMjMuaHRtbAotLS0KIGRvYy9lbWFjcy9wYWNrYWdl LnRleGkgICAgIHwgIDI4ICsrLS0tLQogZG9jL2xpc3ByZWYvb3MudGV4aSAgICAgICAgfCAgMTQg KysrCiBkb2MvbGlzcHJlZi9wYWNrYWdlLnRleGkgICB8ICAxNiArKystCiBkb2MvbWlzYy9vcmcu dGV4aSAgICAgICAgICB8ICAgNCArLQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgfCAgMTgg KysrKwogbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UuZWwgfCAgNzEgKy0tLS0tLS0tLS0tLS0tCiBs aXNwL3N0YXJ0dXAuZWwgICAgICAgICAgICB8IDIxMyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKyks IDE1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZW1hY3MvcGFja2FnZS50ZXhpIGIv ZG9jL2VtYWNzL3BhY2thZ2UudGV4aQppbmRleCAyMTVmNTBjYjQwLi5iZDdjY2NjZTZjIDEwMDY0 NAotLS0gYS9kb2MvZW1hY3MvcGFja2FnZS50ZXhpCisrKyBiL2RvYy9lbWFjcy9wYWNrYWdlLnRl eGkKQEAgLTI1MywzMCArMjUzLDE2IEBAIFBhY2thZ2UgSW5zdGFsbGF0aW9uCiBjb25zdWx0IHRo ZSBwYWNrYWdlJ3MgaGVscCBidWZmZXIuCiAKICAgQnkgZGVmYXVsdCwgRW1hY3MgYWxzbyBhdXRv bWF0aWNhbGx5IGxvYWRzIGFsbCBpbnN0YWxsZWQgcGFja2FnZXMgaW4KLXN1YnNlcXVlbnQgRW1h Y3Mgc2Vzc2lvbnMuICBUaGlzIGhhcHBlbnMgYXQgc3RhcnR1cCwgYWZ0ZXIgcHJvY2Vzc2luZwot dGhlIGluaXQgZmlsZSAoQHB4cmVme0luaXQgRmlsZX0pLiAgQXMgYW4gZXhjZXB0aW9uLCBFbWFj cyBkb2VzIG5vdAotbG9hZCBwYWNrYWdlcyBhdCBzdGFydHVwIGlmIGludm9rZWQgd2l0aCB0aGUg QHNhbXB7LXF9IG9yCi1Ac2FtcHstLW5vLWluaXQtZmlsZX0gb3B0aW9ucyAoQHB4cmVme0luaXRp YWwgT3B0aW9uc30pLgorc3Vic2VxdWVudCBFbWFjcyBzZXNzaW9ucy4gIFRoaXMgaGFwcGVucyBh dCBzdGFydHVwLCBiZWZvcmUgcHJvY2Vzc2luZwordGhlIGluaXQgZmlsZSBidXQgYWZ0ZXIgcHJv Y2Vzc2luZyB0aGUgZWFybHkgaW5pdCBmaWxlIChAcHhyZWZ7RWFybHkKK0luaXQgRmlsZSwsLCBl bGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0pLiAgQXMgYW4KK2V4Y2VwdGlv biwgRW1hY3MgZG9lcyBub3QgbG9hZCBwYWNrYWdlcyBhdCBzdGFydHVwIGlmIGludm9rZWQgd2l0 aCB0aGUKK0BzYW1wey1xfSBvciBAc2FtcHstLW5vLWluaXQtZmlsZX0gb3B0aW9ucyAoQHhyZWZ7 SW5pdGlhbCBPcHRpb25zfSkuCiAKIEB2aW5kZXggcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cAog ICBUbyBkaXNhYmxlIGF1dG9tYXRpYyBwYWNrYWdlIGxvYWRpbmcsIGNoYW5nZSB0aGUgdmFyaWFi bGUKLUBjb2Rle3BhY2thZ2UtZW5hYmxlLWF0LXN0YXJ0dXB9IHRvIEBjb2Rle25pbH0uCi0KLUBm aW5kZXggcGFja2FnZS1pbml0aWFsaXplCi0gIFRoZSByZWFzb24gYXV0b21hdGljIHBhY2thZ2Ug bG9hZGluZyBvY2N1cnMgYWZ0ZXIgbG9hZGluZyB0aGUgaW5pdAotZmlsZSBpcyB0aGF0IHVzZXIg b3B0aW9ucyBvbmx5IHJlY2VpdmUgdGhlaXIgY3VzdG9taXplZCB2YWx1ZXMgYWZ0ZXIKLWxvYWRp bmcgdGhlIGluaXQgZmlsZSwgaW5jbHVkaW5nIHVzZXIgb3B0aW9ucyB3aGljaCBhZmZlY3QgdGhl Ci1wYWNrYWdpbmcgc3lzdGVtLiAgSW4gc29tZSBjaXJjdW1zdGFuY2VzLCB5b3UgbWF5IHdhbnQg dG8gbG9hZAotcGFja2FnZXMgZXhwbGljaXRseSBpbiB5b3VyIGluaXQgZmlsZSAodXN1YWxseSBi ZWNhdXNlIHNvbWUgb3RoZXIgY29kZQotaW4geW91ciBpbml0IGZpbGUgZGVwZW5kcyBvbiBhIHBh Y2thZ2UpLiAgSW4gdGhhdCBjYXNlLCB5b3VyIGluaXQgZmlsZQotc2hvdWxkIGNhbGwgdGhlIGZ1 bmN0aW9uIEBjb2Rle3BhY2thZ2UtaW5pdGlhbGl6ZX0uICBJdCBpcyB1cCB0byB5b3UKLXRvIGVu c3VyZSB0aGF0IHJlbGV2YW50IHVzZXIgb3B0aW9ucywgc3VjaCBhcyBAY29kZXtwYWNrYWdlLWxv YWQtbGlzdH0KLShzZWUgYmVsb3cpLCBhcmUgc2V0IHVwIHByaW9yIHRvIHRoZSBAY29kZXtwYWNr YWdlLWluaXRpYWxpemV9IGNhbGwuCi1UaGlzIHdpbGwgYXV0b21hdGljYWxseSBzZXQgQGNvZGV7 cGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cH0gdG8gQGNvZGV7bmlsfSwgdG8KLWF2b2lkIGxvYWRp bmcgdGhlIHBhY2thZ2VzIGFnYWluIGFmdGVyIHByb2Nlc3NpbmcgdGhlIGluaXQgZmlsZS4KLUFs dGVybmF0aXZlbHksIHlvdSBtYXkgY2hvb3NlIHRvIGNvbXBsZXRlbHkgaW5oaWJpdCBwYWNrYWdl IGxvYWRpbmcgYXQKLXN0YXJ0dXAsIGFuZCBpbnZva2UgdGhlIGNvbW1hbmQgQGtiZHtNLXggcGFj a2FnZS1pbml0aWFsaXplfSB0byBsb2FkCi15b3VyIHBhY2thZ2VzIG1hbnVhbGx5LgorQGNvZGV7 cGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cH0gdG8gQGNvZGV7bmlsfS4gIFlvdSBtdXN0IGRvIHRo aXMgaW4KK3RoZSBlYXJseSBpbml0IGZpbGUuICBDdXJyZW50bHkgaXQgY2Fubm90IGJlIGRvbmUg dmlhIEN1c3RvbWl6ZS4KIAogQHZpbmRleCBwYWNrYWdlLWxvYWQtbGlzdAogICBGb3IgZmluZXIg Y29udHJvbCBvdmVyIHBhY2thZ2UgbG9hZGluZywgeW91IGNhbiB1c2UgdGhlIHZhcmlhYmxlCmRp ZmYgLS1naXQgYS9kb2MvbGlzcHJlZi9vcy50ZXhpIGIvZG9jL2xpc3ByZWYvb3MudGV4aQppbmRl eCA0NDFmZGE1ZDgyLi4wNjJhYTI4MjIyIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9vcy50ZXhp CisrKyBiL2RvYy9saXNwcmVmL29zLnRleGkKQEAgLTM2MSw2ICszNjEsNyBAQCBJbml0IEZpbGUK IEBjaW5kZXggaW5pdCBmaWxlCiBAY2luZGV4IEBmaWxley5lbWFjc30KIEBjaW5kZXggQGZpbGV7 aW5pdC5lbH0KK0BjaW5kZXggQGZpbGV7ZWFybHktaW5pdC5lbH0KIAogICBXaGVuIHlvdSBzdGFy dCBFbWFjcywgaXQgbm9ybWFsbHkgYXR0ZW1wdHMgdG8gbG9hZCB5b3VyIEBkZm57aW5pdAogZmls ZX0uICBUaGlzIGlzIGVpdGhlciBhIGZpbGUgbmFtZWQgQGZpbGV7LmVtYWNzfSBvciBAZmlsZXsu ZW1hY3MuZWx9CkBAIC0zODQsNiArMzg1LDE5IEBAIEluaXQgRmlsZQogZmlsZS4gIElmIHRob3Nl IGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgYWJzZW50LCB0aG91Z2gsIEVtYWNzIHVzZXMKIHlv dXIgdXNlci1pZCB0byBmaW5kIHlvdXIgaG9tZSBkaXJlY3RvcnkuCiAKK0BjaW5kZXggZWFybHkg aW5pdCBmaWxlCisgIEVtYWNzIGFsc28gYXR0ZW1wdHMgdG8gbG9hZCBhIHNlY29uZCBpbml0IGZp bGUsIGNhbGxlZCB0aGUKKyAgQGRmbntlYXJseSBpbml0IGZpbGV9LCBpZiBpdCBleGlzdHMuICBU aGlzIGlzIGEgZmlsZSBuYW1lZAorICBAZmlsZXtlYXJseS1pbml0LmVsfSBpbiBhIHN1YmRpcmVj dG9yeSBuYW1lZCBAZmlsZXsuZW1hY3MuZH0gaW4geW91cgorICBob21lIGRpcmVjdG9yeS4gIFRo ZSBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIGVhcmx5IGluaXQgZmlsZSBpcworICBsb2FkZWQgbXVj aCBlYXJsaWVyIGR1cmluZyB0aGUgc3RhcnR1cCBwcm9jZXNzLCBzbyB5b3UgY2FuIHVzZSBpdCB0 bworICBjdXN0b21pemUgc29tZSB0aGluZ3MgdGhhdCBhcmUgaW5pdGlhbGl6ZWQgYmVmb3JlIGxv YWRpbmcgdGhlCisgIHJlZ3VsYXIgaW5pdCBmaWxlLiAgRm9yIGV4YW1wbGUsIGhlcmUgeW91IGNh biBjdXN0b21pemUgdGhlIHByb2Nlc3MKKyAgb2YgbG9hZGluZyBpbnN0YWxsZWQgcGFja2FnZXMs IGJ5IHNldHRpbmcgdmFyaWFibGVzIHN1Y2ggYXMKKyAgQHZhcntwYWNrYWdlLWxvYWQtbGlzdH0g b3IKKyAgQHZhcntwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwfS4gQHhyZWZ7UGFja2FnZSBJbnN0 YWxsYXRpb24sLCwKKyAgZW1hY3MsVGhlIEdOVSBFbWFjcyBNYW51YWx9LgorCiBAY2luZGV4IGRl ZmF1bHQgaW5pdCBmaWxlCiAgIEFuIEVtYWNzIGluc3RhbGxhdGlvbiBtYXkgaGF2ZSBhIEBkZm57 ZGVmYXVsdCBpbml0IGZpbGV9LCB3aGljaCBpcyBhCiBMaXNwIGxpYnJhcnkgbmFtZWQgQGZpbGV7 ZGVmYXVsdC5lbH0uICBFbWFjcyBmaW5kcyB0aGlzIGZpbGUgdGhyb3VnaApkaWZmIC0tZ2l0IGEv ZG9jL2xpc3ByZWYvcGFja2FnZS50ZXhpIGIvZG9jL2xpc3ByZWYvcGFja2FnZS50ZXhpCmluZGV4 IDE1M2VlNDg3NDEuLjJlOTNmMjliZDIgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3BhY2thZ2Uu dGV4aQorKysgYi9kb2MvbGlzcHJlZi9wYWNrYWdlLnRleGkKQEAgLTEwNiwxMCArMTA2LDEyIEBA IFBhY2thZ2luZyBCYXNpY3MKIAogICBXaGVuZXZlciBFbWFjcyBzdGFydHMgdXAsIGl0IGF1dG9t YXRpY2FsbHkgY2FsbHMgdGhlIGZ1bmN0aW9uCiBAY29kZXtwYWNrYWdlLWluaXRpYWxpemV9IHRv IGxvYWQgaW5zdGFsbGVkIHBhY2thZ2VzLiAgVGhpcyBpcyBkb25lCi1hZnRlciBsb2FkaW5nIHRo ZSBpbml0IGZpbGUgYW5kIGFiYnJldiBmaWxlIChpZiBhbnkpIGFuZCBiZWZvcmUKLXJ1bm5pbmcg QGNvZGV7YWZ0ZXItaW5pdC1ob29rfSAoQHB4cmVme1N0YXJ0dXAgU3VtbWFyeX0pLiAgQXV0b21h dGljCi1wYWNrYWdlIGxvYWRpbmcgaXMgZGlzYWJsZWQgaWYgdGhlIHVzZXIgb3B0aW9uCi1AY29k ZXtwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwfSBpcyBAY29kZXtuaWx9LgorYWZ0ZXIgbG9hZGlu ZyB0aGUgZWFybHkgaW5pdCBmaWxlLCBidXQgYmVmb3JlIGxvYWRpbmcgdGhlIGVhcmx5IGluaXQK K2ZpbGUgYW5kIGFiYnJldiBmaWxlIChpZiBhbnkpIGFuZCBiZWZvcmUgcnVubmluZworQGNvZGV7 YWZ0ZXItaW5pdC1ob29rfSAoQHB4cmVme1N0YXJ0dXAgU3VtbWFyeX0pLiAgQXV0b21hdGljIHBh Y2thZ2UKK2xvYWRpbmcgaXMgZGlzYWJsZWQgaWYgdGhlIHVzZXIgb3B0aW9uCitAY29kZXtwYWNr YWdlLWVuYWJsZS1hdC1zdGFydHVwfSBpcyBAY29kZXtuaWx9LiAgKE9mIGNvdXJzZSwgdGhlCitz ZXR0aW5nIG9mIHRoaXMgdXNlciBvcHRpb24gbXVzdCBiZSBkb25lIGluIHRoZSBlYXJseSBpbml0 IGZpbGUuKQogCiBAZGVmZm4gQ29tbWFuZCBwYWNrYWdlLWluaXRpYWxpemUgJm9wdGlvbmFsIG5v LWFjdGl2YXRlCiBUaGlzIGZ1bmN0aW9uIGluaXRpYWxpemVzIEVtYWNzJyBpbnRlcm5hbCByZWNv cmQgb2Ygd2hpY2ggcGFja2FnZXMgYXJlCkBAIC0xMjMsNiArMTI1LDEyIEBAIFBhY2thZ2luZyBC YXNpY3MKIFRoZSBvcHRpb25hbCBhcmd1bWVudCBAdmFye25vLWFjdGl2YXRlfSwgaWYgbm9uLUBj b2Rle25pbH0sIGNhdXNlcwogRW1hY3MgdG8gdXBkYXRlIGl0cyByZWNvcmQgb2YgaW5zdGFsbGVk IHBhY2thZ2VzIHdpdGhvdXQgYWN0dWFsbHkKIGxvYWRpbmcgdGhlbTsgaXQgaXMgZm9yIGludGVy bmFsIHVzZSBvbmx5LgorCitJbiBtb3N0IGNhc2VzLCB5b3Ugc2hvdWxkIG5vdCBuZWVkIHRvIGNh bGwgQGNvZGV7cGFja2FnZS1pbml0aWFsaXplfSwKK2FzIHRoaXMgaXMgZG9uZSBhdXRvbWF0aWNh bGx5IGR1cmluZyBzdGFydHVwLiAgU2ltcGx5IG1ha2Ugc3VyZSB0byBwdXQKK2FueSBjb2RlIHRo YXQgc2hvdWxkIHJ1biBiZWZvcmUgQGNvZGV7cGFja2FnZS1pbml0aWFsaXplfSBpbiB0aGUgZWFy bHkKK2luaXQgZmlsZSwgYW5kIGFueSBjb2RlIHRoYXQgc2hvdWxkIHJ1biBhZnRlciBpbiB0aGUg cHJpbWFyeSBpbml0CitmaWxlIChAeHJlZntJbml0IEZpbGUsLCwgZW1hY3MsIFRoZSBHTlUgRW1h Y3MgTWFudWFsfSkuCiBAZW5kIGRlZmZuCiAKIEBub2RlIFNpbXBsZSBQYWNrYWdlcwpkaWZmIC0t Z2l0IGEvZG9jL21pc2Mvb3JnLnRleGkgYi9kb2MvbWlzYy9vcmcudGV4aQppbmRleCBjYTU3NTAx ZjNkLi5jNDg3ZDQzYTEzIDEwMDY0NAotLS0gYS9kb2MvbWlzYy9vcmcudGV4aQorKysgYi9kb2Mv bWlzYy9vcmcudGV4aQpAQCAtODkxLDkgKzg5MSw3IEBAIEluc3RhbGxhdGlvbgogYmVlbiB2aXNp dGVkLCBpLmUuLCB3aGVyZSBubyBPcmcgYnVpbHQtaW4gZnVuY3Rpb24gaGF2ZSBiZWVuIGxvYWRl ZC4KIE90aGVyd2lzZSBhdXRvbG9hZCBPcmcgZnVuY3Rpb25zIHdpbGwgbWVzcyB1cCB0aGUgaW5z dGFsbGF0aW9uLgogCi1UaGVuLCB0byBtYWtlIHN1cmUgeW91ciBPcmcgY29uZmlndXJhdGlvbiBp cyB0YWtlbiBpbnRvIGFjY291bnQsIGluaXRpYWxpemUKLXRoZSBwYWNrYWdlIHN5c3RlbSB3aXRo IEBjb2RleyhwYWNrYWdlLWluaXRpYWxpemUpfSBpbiB5b3VyIEVtYWNzIGluaXQgZmlsZQotYmVm b3JlIHNldHRpbmcgYW55IE9yZyBvcHRpb24uICBJZiB5b3Ugd2FudCB0byB1c2UgT3JnJ3MgcGFj a2FnZSByZXBvc2l0b3J5LAorSWYgeW91IHdhbnQgdG8gdXNlIE9yZydzIHBhY2thZ2UgcmVwb3Np dG9yeSwKIGNoZWNrIG91dCB0aGUgQHVyZWZ7aHR0cDovL29yZ21vZGUub3JnL2VscGEuaHRtbCwg T3JnIEVMUEEgcGFnZX0uCiAKIEBzdWJzdWJoZWFkaW5nIERvd25sb2FkaW5nIE9yZyBhcyBhbiBh cmNoaXZlCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IDM3MWNkZjY4NmMu LjgwNjc4NTUxYzcgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0yOCw2 ICsyOCwyNCBAQCBXaGVuIHlvdSBhZGQgYSBuZXcgaXRlbSwgdXNlIHRoZSBhcHByb3ByaWF0ZSBt YXJrIGlmIHlvdSBhcmUgc3VyZSBpdCBhcHBsaWVzLAogDAogKiBTdGFydHVwIENoYW5nZXMgaW4g RW1hY3MgMjcuMQogCisrKysKKyoqIEVtYWNzIGNhbiBub3cgYmUgY29uZmlndXJlZCB1c2luZyBh biBlYXJseSBpbml0IGZpbGUuCitUaGUgZmlsZSBpcyBjYWxsZWQgZWFybHktaW5pdC5lbCwgaW4g YHVzZXItZW1hY3MtZGlyZWN0b3J5Jy4gIEl0IGlzCitsb2FkZWQgdmVyeSBlYXJseSBpbiB0aGUg c3RhcnR1cCBwcm9jZXNzOiBpbiBwYXJ0aWN1bGFyLCBiZWZvcmUKK2dyYXBoaWNhbCBlbGVtZW50 cyBzdWNoIGFzIHRoZSB0b29sIGJhciBhcmUgaW5pdGlhbGl6ZWQsIGFuZCBiZWZvcmUKK3RoZSBw YWNrYWdlIG1hbmFnZXIgaXMgaW5pdGlhbGl6ZWQuCisKKysrKworKiogRW1hY3Mgbm93IGluaXRp YWxpemVzIHBhY2thZ2UuZWwgYmVmb3JlIGxvYWRpbmcgdGhlIGluaXQtZmlsZS4KK1RoaXMgaXMg cGFydCBvZiBhIGNoYW5nZSBpbnRlbmRlZCB0byBlbGltaW5hdGUgdGhlIGJlaGF2aW9yIG9mCitw YWNrYWdlLmVsIGluc2VydGluZyBhIGNhbGwgdG8gKHBhY2thZ2UtaW5pdGlhbGl6ZSkgaW50byB0 aGUKK2luaXQtZmlsZSwgd2hpY2ggd2FzIHByZXZpb3VzbHkgZG9uZSB3aGVuIEVtYWNzIHdhcyBz dGFydGVkLiAgVXNlcnMKK3dobyBkbyBub3QgY29uZmlndXJlIHBhY2thZ2UuZWwgdmFyaWFibGVz IHN1Y2ggYXMgYHBhY2thZ2UtbG9hZC1saXN0JworYW5kIGBwYWNrYWdlLXVzZXItZGlyJyBuZWVk IG5vdCBtYWtlIGFueSBjb25maWd1cmF0aW9uIGNoYW5nZXMuICBVc2Vycword2hvIGRvIGNvbmZp Z3VyZSBzdWNoIHZhcmlhYmxlcyBzaG91bGQgcGxhY2UgdGhlIGNvbmZpZ3VyYXRpb24gaW50bwor dGhlIG5ld2x5IGludHJvZHVjZWQgZWFybHkgaW5pdCBmaWxlLCB3aGljaCBpcyBsb2FkZWQgYmVm b3JlCitwYWNrYWdlLmVsIGlzIGluaXRpYWxpemVkLgorCiAMCiAqIENoYW5nZXMgaW4gRW1hY3Mg MjcuMQogCmRpZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbCBiL2xpc3AvZW1h Y3MtbGlzcC9wYWNrYWdlLmVsCmluZGV4IDhiMTAxYzEzMjMuLjMwNTQ1M2E0YmEgMTAwNjQ0Ci0t LSBhL2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9wYWNr YWdlLmVsCkBAIC0xNDM2LDE2ICsxNDM2LDExIEBAIHBhY2thZ2UtcmVhZC1hbGwtYXJjaGl2ZS1j b250ZW50cwogOzsgYXZhaWxhYmxlIG9uIGRpc2suCiAoZGVmdmFyIHBhY2thZ2UtLWluaXRpYWxp emVkIG5pbCkKIAotKGRlZnZhciBwYWNrYWdlLS1pbml0LWZpbGUtZW5zdXJlZCBuaWwKLSAgIldo ZXRoZXIgd2Uga25vdyB0aGUgaW5pdCBmaWxlIGhhcyBwYWNrYWdlLWluaXRpYWxpemUuIikKLQog Ozs7IyMjYXV0b2xvYWQKIChkZWZ1biBwYWNrYWdlLWluaXRpYWxpemUgKCZvcHRpb25hbCBuby1h Y3RpdmF0ZSkKICAgIkxvYWQgRW1hY3MgTGlzcCBwYWNrYWdlcywgYW5kIGFjdGl2YXRlIHRoZW0u CiBUaGUgdmFyaWFibGUgYHBhY2thZ2UtbG9hZC1saXN0JyBjb250cm9scyB3aGljaCBwYWNrYWdl cyB0byBsb2FkLgogSWYgb3B0aW9uYWwgYXJnIE5PLUFDVElWQVRFIGlzIG5vbi1uaWwsIGRvbid0 IGFjdGl2YXRlIHBhY2thZ2VzLgotSWYgYHVzZXItaW5pdC1maWxlJyBkb2VzIG5vdCBtZW50aW9u IGAocGFja2FnZS1pbml0aWFsaXplKScsIGFkZAotaXQgdG8gdGhlIGZpbGUuCiBJZiBjYWxsZWQg YXMgcGFydCBvZiBsb2FkaW5nIGB1c2VyLWluaXQtZmlsZScsIHNldAogYHBhY2thZ2UtZW5hYmxl LWF0LXN0YXJ0dXAnIHRvIG5pbCwgdG8gcHJldmVudCBhY2NpZGVudGFsbHkKIGxvYWRpbmcgcGFj a2FnZXMgdHdpY2UuCkBAIC0xNDU0LDEzICsxNDQ5LDcgQEAgcGFja2FnZS1pbml0aWFsaXplCiB0 YWtlbiBjYXJlIG9mIGJ5IGBwYWNrYWdlLWluaXRpYWxpemUnLiIKICAgKGludGVyYWN0aXZlKQog ICAoc2V0cSBwYWNrYWdlLWFsaXN0IG5pbCkKLSAgKGlmIGFmdGVyLWluaXQtdGltZQotICAgICAg KHBhY2thZ2UtLWVuc3VyZS1pbml0LWZpbGUpCi0gICAgOzsgSWYgYHBhY2thZ2UtaW5pdGlhbGl6 ZScgaXMgYmVmb3JlIHdlIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGluaXQKLSAgICA7OyBmaWxlLCBp dCdzIG9idmlvdXMgd2UgZG9uJ3QgbmVlZCB0byBlbnN1cmUtaW5pdC4KLSAgICAoc2V0cSBwYWNr YWdlLS1pbml0LWZpbGUtZW5zdXJlZCB0Ci0gICAgICAgICAgOzsgQW5kIGxpa2VseSB3ZSBkb24n dCBuZWVkIHRvIHJ1biBpdCBhZ2FpbiBhZnRlciBpbml0LgotICAgICAgICAgIHBhY2thZ2UtZW5h YmxlLWF0LXN0YXJ0dXAgbmlsKSkKKyAgKHNldHEgcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cCBu aWwpCiAgIChwYWNrYWdlLWxvYWQtYWxsLWRlc2NyaXB0b3JzKQogICAocGFja2FnZS1yZWFkLWFs bC1hcmNoaXZlLWNvbnRlbnRzKQogICAodW5sZXNzIG5vLWFjdGl2YXRlCkBAIC0xODc3LDY0ICsx ODY2LDYgQEAgcGFja2FnZS1kb3dubG9hZC10cmFuc2FjdGlvbgogdXNpbmcgYHBhY2thZ2UtY29t cHV0ZS10cmFuc2FjdGlvbicuIgogICAobWFwYyAjJ3BhY2thZ2UtaW5zdGFsbC1mcm9tLWFyY2hp dmUgcGFja2FnZXMpKQogCi0oZGVmdW4gcGFja2FnZS0tZW5zdXJlLWluaXQtZmlsZSAoKQotICAi RW5zdXJlIHRoYXQgdGhlIHVzZXIncyBpbml0IGZpbGUgaGFzIGBwYWNrYWdlLWluaXRpYWxpemUn LgotYHBhY2thZ2UtaW5pdGlhbGl6ZScgZG9lc24ndCBoYXZlIHRvIGJlIGNhbGxlZCwgYXMgbG9u ZyBhcyBpdCBpcwotcHJlc2VudCBzb21ld2hlcmUgaW4gdGhlIGZpbGUsIGV2ZW4gYXMgYSBjb21t ZW50LiAgSWYgaXQgaXMgbm90LAotYWRkIGEgY2FsbCB0byBpdCBhbG9uZyB3aXRoIHNvbWUgZXhw bGFuYXRvcnkgY29tbWVudHMuIgotICA7OyBEb24ndCBtZXNzIHdpdGggdGhlIGluaXQtZmlsZSBm cm9tICJlbWFjcyAtUSIuCi0gICh3aGVuIChhbmQgKHN0cmluZ3AgdXNlci1pbml0LWZpbGUpCi0g ICAgICAgICAgICAgKG5vdCBwYWNrYWdlLS1pbml0LWZpbGUtZW5zdXJlZCkKLSAgICAgICAgICAg ICAoZmlsZS1yZWFkYWJsZS1wIHVzZXItaW5pdC1maWxlKQotICAgICAgICAgICAgIChmaWxlLXdy aXRhYmxlLXAgdXNlci1pbml0LWZpbGUpKQotICAgIChsZXQqICgoYnVmZmVyIChmaW5kLWJ1ZmZl ci12aXNpdGluZyB1c2VyLWluaXQtZmlsZSkpCi0gICAgICAgICAgIGJ1ZmZlci1uYW1lCi0gICAg ICAgICAgIChjb250YWlucy1pbml0Ci0gICAgICAgICAgICAoaWYgYnVmZmVyCi0gICAgICAgICAg ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCi0gICAgICAgICAgICAgICAgICAoc2F2 ZS1leGN1cnNpb24KLSAgICAgICAgICAgICAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KLSAgICAg ICAgICAgICAgICAgICAgICAod2lkZW4pCi0gICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkKLSAgICAgICAgICAgICAgICAgICAgICAocmUtc2VhcmNoLWZvcndhcmQg IihwYWNrYWdlLWluaXRpYWxpemVcXF8+IiBuaWwgJ25vZXJyb3IpKSkpCi0gICAgICAgICAgICAg IDs7IERvbid0IHZpc2l0IHRoZSBmaWxlIGlmIHdlIGRvbid0IGhhdmUgdG8uCi0gICAgICAgICAg ICAgICh3aXRoLXRlbXAtYnVmZmVyCi0gICAgICAgICAgICAgICAgKGluc2VydC1maWxlLWNvbnRl bnRzIHVzZXItaW5pdC1maWxlKQotICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1p bikpCi0gICAgICAgICAgICAgICAgKHJlLXNlYXJjaC1mb3J3YXJkICIocGFja2FnZS1pbml0aWFs aXplXFxfPiIgbmlsICdub2Vycm9yKSkpKSkKLSAgICAgICh1bmxlc3MgY29udGFpbnMtaW5pdAot ICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAob3IgYnVmZmVyCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobGV0ICgoZGVsYXktbW9kZS1ob29rcyB0KQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZS12aXNpdC10cnVlbmFtZSB0KSkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZS1ub3NlbGVjdCB1 c2VyLWluaXQtZmlsZSkpKQotICAgICAgICAgICh3aGVuIGJ1ZmZlcgotICAgICAgICAgICAgKHNl dHEgYnVmZmVyLW5hbWUgKGJ1ZmZlci1maWxlLW5hbWUpKQotICAgICAgICAgICAgKHNldC12aXNp dGVkLWZpbGUtbmFtZSAoZmlsZS1jaGFzZS1saW5rcyB1c2VyLWluaXQtZmlsZSkpKQotICAgICAg ICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgKHNhdmUtcmVzdHJpY3Rpb24KLSAgICAg ICAgICAgICAgKHdpZGVuKQotICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQot ICAgICAgICAgICAgICAod2hpbGUgKGFuZCAobG9va2luZy1hdC1wICJbWzpibGFuazpdXSpcXCg7 XFx8JFxcKSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVvYnApKSkKLSAgICAg ICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKQotICAgICAgICAgICAgICAoaW5zZXJ0Ci0gICAg ICAgICAgICAgICAiXG4iCi0gICAgICAgICAgICAgICAiOzsgQWRkZWQgYnkgUGFja2FnZS5lbC4g IFRoaXMgbXVzdCBjb21lIGJlZm9yZSBjb25maWd1cmF0aW9ucyBvZlxuIgotICAgICAgICAgICAg ICAgIjs7IGluc3RhbGxlZCBwYWNrYWdlcy4gIERvbid0IGRlbGV0ZSB0aGlzIGxpbmUuICBJZiB5 b3UgZG9uJ3Qgd2FudCBpdCxcbiIKLSAgICAgICAgICAgICAgICI7OyBqdXN0IGNvbW1lbnQgaXQg b3V0IGJ5IGFkZGluZyBhIHNlbWljb2xvbiB0byB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuXG4iCi0g ICAgICAgICAgICAgICAiOzsgWW91IG1heSBkZWxldGUgdGhlc2UgZXhwbGFuYXRvcnkgY29tbWVu dHMuXG4iCi0gICAgICAgICAgICAgICAiKHBhY2thZ2UtaW5pdGlhbGl6ZSlcbiIpCi0gICAgICAg ICAgICAgICh1bmxlc3MgKGxvb2tpbmctYXQtcCAiJCIpCi0gICAgICAgICAgICAgICAgKGluc2Vy dCAiXG4iKSkKLSAgICAgICAgICAgICAgKGxldCAoKGZpbGUtcHJlY2lvdXMtZmxhZyB0KSkKLSAg ICAgICAgICAgICAgICAoc2F2ZS1idWZmZXIpKQotICAgICAgICAgICAgICAoaWYgYnVmZmVyCi0g ICAgICAgICAgICAgICAgICAocHJvZ24KLSAgICAgICAgICAgICAgICAgICAgKHNldC12aXNpdGVk LWZpbGUtbmFtZSBidWZmZXItbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgKHNldC1idWZmZXIt bW9kaWZpZWQtcCBuaWwpKQotICAgICAgICAgICAgICAgIChraWxsLWJ1ZmZlciAoY3VycmVudC1i dWZmZXIpKSkpKSkpKSkKLSAgKHNldHEgcGFja2FnZS0taW5pdC1maWxlLWVuc3VyZWQgdCkpCi0K IDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gcGFja2FnZS1pbnN0YWxsIChwa2cgJm9wdGlvbmFsIGRv bnQtc2VsZWN0KQogICAiSW5zdGFsbCB0aGUgcGFja2FnZSBQS0cuCmRpZmYgLS1naXQgYS9saXNw L3N0YXJ0dXAuZWwgYi9saXNwL3N0YXJ0dXAuZWwKaW5kZXggN2NmNmZlZTQyNS4uNTJmZDFmOWNm NSAxMDA2NDQKLS0tIGEvbGlzcC9zdGFydHVwLmVsCisrKyBiL2xpc3Avc3RhcnR1cC5lbApAQCAt MzEyLDYgKzMxMiwxNSBAQCBpbmhpYml0LXN0YXJ0dXAtaG9va3MKIEN1cnJlbnRseSB0aGlzIGFw cGxpZXMgdG86IGBlbWFjcy1zdGFydHVwLWhvb2snLCBgdGVybS1zZXR1cC1ob29rJywKIGFuZCBg d2luZG93LXNldHVwLWhvb2snLiIpCiAKKyhkZWZ2YXIgZWFybHktaW5pdC1maWxlIG5pbAorICAi RmlsZSBuYW1lLCBpbmNsdWRpbmcgZGlyZWN0b3J5LCBvZiB1c2VyJ3MgZWFybHkgaW5pdCBmaWxl LgorSWYgdGhlIGZpbGUgbG9hZGVkIGhhZCBleHRlbnNpb24gYC5lbGMnLCBhbmQgdGhlIGNvcnJl c3BvbmRpbmcKK3NvdXJjZSBmaWxlIGV4aXN0cywgdGhpcyB2YXJpYWJsZSBjb250YWlucyB0aGUg bmFtZSBvZiBzb3VyY2UKK2ZpbGUsIHN1aXRhYmxlIGZvciB1c2UgYnkgZnVuY3Rpb25zIGxpa2Ug YGN1c3RvbS1zYXZlLWFsbCcgd2hpY2gKK2VkaXQgdGhlIGluaXQgZmlsZS4gIFdoaWxlIEVtYWNz IGxvYWRzIGFuZCBldmFsdWF0ZXMgdGhlIGluaXQKK2ZpbGUsIHZhbHVlIGlzIHRoZSByZWFsIG5h bWUgb2YgdGhlIGZpbGUsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlcgorb3Igbm90IGl0IGhhcyB0aGUg YC5lbGMnIGV4dGVuc2lvbi4iKQorCiAoZGVmdmFyIGtleWJvYXJkLXR5cGUgbmlsCiAgICJUaGUg YnJhbmQgb2Yga2V5Ym9hcmQgeW91IGFyZSB1c2luZy4KIFRoaXMgdmFyaWFibGUgaXMgdXNlZCB0 byBkZWZpbmUgdGhlIHByb3BlciBmdW5jdGlvbiBhbmQga2V5cGFkCkBAIC0xMDIxLDYgKzEwMzAs MTU2IEBAIGNvbW1hbmQtbGluZQogICAgIChhbmQgY29tbWFuZC1saW5lLWFyZ3MKICAgICAgICAg IChzZXRjZHIgY29tbWFuZC1saW5lLWFyZ3MgYXJncykpKQogCisgIDs7IFdhcm4gZm9yIGludmFs aWQgdXNlciBuYW1lLgorICAod2hlbiBpbml0LWZpbGUtdXNlcgorICAgIChpZiAoc3RyaW5nLW1h dGNoICJbfi86XG5dIiBpbml0LWZpbGUtdXNlcikKKyAgICAgICAgKGRpc3BsYXktd2FybmluZyAn aW5pdGlhbGl6YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJJbnZhbGlk IHVzZXIgbmFtZSAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQtZmls ZS11c2VyKQorICAgICAgICAgICAgICAgICAgICAgICAgIDplcnJvcikKKyAgICAgIChpZiAoZmls ZS1kaXJlY3RvcnktcCAoZXhwYW5kLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA7OyBXZSBkb24ndCBzdXBwb3J0IH5VU0VSIG9uIE1TLVdpbmRvd3MKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOzsgYW5kIE1TLURPUyBleGNlcHQgZm9yIHRoZSBjdXJyZW50Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHVzZXIsIGFuZCBhbHdheXMgbG9hZCAuZW1h Y3MgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGUgY3VycmVudCB1c2Vy J3MgaG9tZSBkaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgKHNlZSBi ZWxvdykuICBTbyBhbHdheXMgY2hlY2sgIn4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA7OyBldmVuIGlmIGludm9rZWQgd2l0aCAiLXUgVVNFUiIsIG9yCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IGlmICRVU0VSIG9yICRMT0dOQU1FIGFyZSBzZXQgdG8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgc29tZXRoaW5nIGRpZmZlcmVudC4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGlmIChtZW1xIHN5c3RlbS10eXBlICcod2luZG93cy1udCBtcy1k b3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn4iCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbmNhdCAifiIgaW5pdC1maWxlLXVzZXIpKSkpCisgICAgICAg ICAgbmlsCisgICAgICAgIChkaXNwbGF5LXdhcm5pbmcgJ2luaXRpYWxpemF0aW9uCisgICAgICAg ICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiVXNlciAlcyBoYXMgbm8gaG9tZSBkaXJlY3Rvcnki CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxdWFsIGluaXQtZmlsZS11 c2VyICIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1c2VyLXJlYWwt bG9naW4tbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdC1maWxl LXVzZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAgIDplcnJvcikpKSkKKworICA7OyBMb2Fk IHRoZSBlYXJseSBpbml0IGZpbGUsIGlmIGZvdW5kLgorICAobGV0ICgoZGVidWctb24tZXJyb3It ZnJvbS1pbml0LWZpbGUgbmlsKQorICAgICAgICAoZGVidWctb24tZXJyb3Itc2hvdWxkLWJlLXNl dCBuaWwpCisgICAgICAgIChkZWJ1Zy1vbi1lcnJvci1pbml0aWFsIChpZiAoZXEgaW5pdC1maWxl LWRlYnVnIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhcnR1cAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQtZmlsZS1kZWJ1ZykpCisgICAg ICAgIChvcmlnLWVuYWJsZS1tdWx0aWJ5dGUgKGRlZmF1bHQtdmFsdWUgJ2VuYWJsZS1tdWx0aWJ5 dGUtY2hhcmFjdGVycykpKQorICAgIChsZXQgKChkZWJ1Zy1vbi1lcnJvciBkZWJ1Zy1vbi1lcnJv ci1pbml0aWFsKQorICAgICAgICAgIChpbm5lcgorICAgICAgICAgICAobGFtYmRhICgpCisgICAg ICAgICAgICAgOzsgSWYgbm8gdXNlcm5hbWUsIGRvbid0IGxvYWQgdGhlIGluaXQgZmlsZS4KKyAg ICAgICAgICAgICAod2hlbiBpbml0LWZpbGUtdXNlcgorICAgICAgICAgICAgICAgKGxldCAoKGVh cmx5LWluaXQtZmlsZS0xCisgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUK KyAgICAgICAgICAgICAgICAgICAgICAgImVhcmx5LWluaXQiCisgICAgICAgICAgICAgICAgICAg ICAgIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAoY29u Y2F0ICJ+IiBpbml0LWZpbGUtdXNlciAiLy5lbWFjcy5kIikpKSkpCisgICAgICAgICAgICAgICAg IDs7IFNldHRpbmcgYHVzZXItaW5pdC1maWxlJyB0byB0IHRlbGxzIGBsb2FkJyB0bworICAgICAg ICAgICAgICAgICA7OyBzdG9yZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSB0aGF0IHdhcyBsb2FkZWQs IGlmCisgICAgICAgICAgICAgICAgIDs7IHBvc3NpYmxlLCBpbnRvIGB1c2VyLWluaXQtZmlsZScu IFdlJ3JlIG5vdCB1c2luZworICAgICAgICAgICAgICAgICA7OyBgdXNlci1pbml0LWZpbGUnIHll dCwgc28gd2UgY2FuIHJlLXVzZSBpdCBoZXJlIGZvcgorICAgICAgICAgICAgICAgICA7OyB0aGUg ZWFybHkgaW5pdCBmaWxlLgorICAgICAgICAgICAgICAgICAoc2V0cSB1c2VyLWluaXQtZmlsZSB0 KQorCisgICAgICAgICAgICAgICAgIDs7IEF0dGVtcHQgdG8gbG9hZCB0aGUgZWFybHkgaW5pdCBm aWxlLiBJZiBpdCBkb2Vzbid0CisgICAgICAgICAgICAgICAgIDs7IGV4aXN0LCBkbyBub3RoaW5n LgorICAgICAgICAgICAgICAgICAobG9hZCBlYXJseS1pbml0LWZpbGUtMSB0IHQpCisKKyAgICAg ICAgICAgICAgICAgOzsgSWYgdGhlIGluaXQgZmlsZSBjb3VsZCBiZSBsb2FkZWQsIG1vdmUgaXRz CisgICAgICAgICAgICAgICAgIDs7IGRpc2NvdmVyZWQgZmlsZW5hbWUgZnJvbSBgdXNlci1pbml0 LWZpbGUnIGludG8KKyAgICAgICAgICAgICAgICAgOzsgYGVhcmx5LWluaXQtZmlsZScsIHdoZXJl IGl0IGJlbG9uZ3MuCisgICAgICAgICAgICAgICAgICh1bmxlc3MgKGVxIHVzZXItaW5pdC1maWxl IHQpCisgICAgICAgICAgICAgICAgICAgKHNldHEgZWFybHktaW5pdC1maWxlIHVzZXItaW5pdC1m aWxlKQorICAgICAgICAgICAgICAgICAgICh3aGVuIChhbmQgZWFybHktaW5pdC1maWxlCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgKGZpbGUtbmFtZS1leHRlbnNpb24gZWFy bHktaW5pdC1maWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbGMi KSkKKyAgICAgICAgICAgICAgICAgICAgIChsZXQqICgoc291cmNlIChmaWxlLW5hbWUtc2Fucy1l eHRlbnNpb24gZWFybHktaW5pdC1maWxlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo YWx0IChjb25jYXQgc291cmNlICIuZWwiKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChzZXRx IHNvdXJjZSAoY29uZCAoKGZpbGUtZXhpc3RzLXAgYWx0KSBhbHQpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoKGZpbGUtZXhpc3RzLXAgc291cmNlKSBzb3VyY2Up CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodCBuaWwpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgKHdoZW4gc291cmNlCisgICAgICAgICAgICAgICAgICAgICAg ICAgKHdoZW4gKGZpbGUtbmV3ZXItdGhhbi1maWxlLXAgc291cmNlIGVhcmx5LWluaXQtZmlsZSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZXNzYWdlICJXYXJuaW5nOiAlcyBpcyBuZXdl ciB0aGFuICVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlIGVh cmx5LWluaXQtZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaXQtZm9yIDEpKQor ICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGVhcmx5LWluaXQtZmlsZSBzb3VyY2UpKSkp KSkpKSkpCisgICAgICAoaWYgaW5pdC1maWxlLWRlYnVnCisgICAgICAgICAgKGZ1bmNhbGwgaW5u ZXIpCisgICAgICAgIChjb25kaXRpb24tY2FzZSBlcnJvcgorICAgICAgICAgICAgKHByb2duCisg ICAgICAgICAgICAgIChmdW5jYWxsIGlubmVyKQorICAgICAgICAgICAgICAoc2V0cSBpbml0LWZp bGUtaGFkLWVycm9yIG5pbCkpCisgICAgICAgICAgKGVycm9yCisgICAgICAgICAgIChkaXNwbGF5 LXdhcm5pbmcKKyAgICAgICAgICAgICdpbml0aWFsaXphdGlvbgorICAgICAgICAgICAgKGZvcm1h dC1tZXNzYWdlICJcCitBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIGAlcyc6XG5cbiVz JXMlc1xuXG5cCitUbyBlbnN1cmUgbm9ybWFsIG9wZXJhdGlvbiwgeW91IHNob3VsZCBpbnZlc3Rp Z2F0ZSBhbmQgcmVtb3ZlIHRoZQorY2F1c2Ugb2YgdGhlIGVycm9yIGluIHlvdXIgaW5pdGlhbGl6 YXRpb24gZmlsZS4gIFN0YXJ0IEVtYWNzIHdpdGgKK3RoZSBgLS1kZWJ1Zy1pbml0JyBvcHRpb24g dG8gdmlldyBhIGNvbXBsZXRlIGVycm9yIGJhY2t0cmFjZS4iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOzsgVXNlIGB1c2VyLWluaXQtZmlsZScgaGVyZSBiZWNhdXNlIGlmCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGxvYWRpbmcg dGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgaW5pdCBmaWxlLCB0aGVuIGBlYXJs eS1pbml0LWZpbGUnIG1heQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IG5vdCBoYXZl IGJlZW4gcmVhc3NpZ25lZDsgYnV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgYHVz ZXItaW5pdC1maWxlJyB3aWxsIHN0aWxsIGJlIHNldCBieQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDs7IGBsb2FkJy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLWluaXQt ZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXQgKGNhciBlcnJvcikgJ2Vycm9y LW1lc3NhZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChjZHIgZXJyb3IpICI6 ICIgIiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAobGFtYmRhIChz KSAocHJpbjEtdG8tc3RyaW5nIHMgdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY2RyIGVycm9yKSAiLCAiKSkKKyAgICAgICAgICAgIDp3YXJuaW5nKQorICAgICAg ICAgICAoc2V0cSBpbml0LWZpbGUtaGFkLWVycm9yIHQpKSkpCisgICAgICAob3IgKGVxIGRlYnVn LW9uLWVycm9yIGRlYnVnLW9uLWVycm9yLWluaXRpYWwpCisgICAgICAgICAgKHNldHEgZGVidWct b24tZXJyb3Itc2hvdWxkLWJlLXNldCB0CisgICAgICAgICAgICAgICAgZGVidWctb24tZXJyb3It ZnJvbS1pbml0LWZpbGUgZGVidWctb24tZXJyb3IpKSkKKyAgICAoaWYgZGVidWctb24tZXJyb3It c2hvdWxkLWJlLXNldAorCSAgKHNldHEgZGVidWctb24tZXJyb3IgZGVidWctb24tZXJyb3ItZnJv bS1pbml0LWZpbGUpKQorICAgICAgKHVubGVzcyAob3IgKGRlZmF1bHQtdmFsdWUgJ2VuYWJsZS1t dWx0aWJ5dGUtY2hhcmFjdGVycykKKwkJICAoZXEgb3JpZy1lbmFibGUtbXVsdGlieXRlIChkZWZh dWx0LXZhbHVlCisJCQkJCSAgICAgICdlbmFibGUtbXVsdGlieXRlLWNoYXJhY3RlcnMpKSkKKwk7 OyBJbml0IGZpbGUgY2hhbmdlZCB0byB1bmlieXRlLiAgUmVzZXQgZXhpc3RpbmcgbXVsdGlieXRl CisJOzsgYnVmZmVycyAocHJvYmFibHkgKnNjcmF0Y2gqLCAqTWVzc2FnZXMqLCAqTWluaWJ1Zi0w KikuCisJOzsgQXJndWFibHkgdGhpcyBzaG91bGQgb25seSBiZSBkb25lIGlmIHRoZXkncmUgZnJl ZSBvZgorCTs7IG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgorCShtYXBjIChsYW1iZGEgKGJ1ZmZlcikK KwkJKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCisJCSAgKGlmIGVuYWJsZS1tdWx0aWJ5dGUt Y2hhcmFjdGVycworCQkgICAgICAoc2V0LWJ1ZmZlci1tdWx0aWJ5dGUgbmlsKSkpKQorCSAgICAg IChidWZmZXItbGlzdCkpCisJOzsgQWxzbyByZS1zZXQgdGhlIGxhbmd1YWdlIGVudmlyb25tZW50 IGluIGNhc2UgaXQgd2FzCisJOzsgb3JpZ2luYWxseSBkb25lIGJlZm9yZSB1bmlieXRlIHdhcyBz ZXQgYW5kIGlzIHNlbnNpdGl2ZSB0bworCTs7IHVuaWJ5dGUgKGRpc3BsYXkgdGFibGUsIHRlcm1p bmFsIGNvZGluZyBzeXN0ZW0gJmMpLgorCShzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQgY3VycmVu dC1sYW5ndWFnZS1lbnZpcm9ubWVudCkpKQorCisgIDs7IElmIGFueSBwYWNrYWdlIGRpcmVjdG9y eSBleGlzdHMsIGluaXRpYWxpemUgdGhlIHBhY2thZ2Ugc3lzdGVtLgorICAoYW5kIHVzZXItaW5p dC1maWxlCisgICAgICAgcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cAorICAgICAgIChjYXRjaCAn cGFja2FnZS1kaXItZm91bmQKKwkgKGxldCAoZGlycykKKwkgICAoaWYgKGJvdW5kcCAncGFja2Fn ZS1kaXJlY3RvcnktbGlzdCkKKwkgICAgICAgKHNldHEgZGlycyBwYWNrYWdlLWRpcmVjdG9yeS1s aXN0KQorCSAgICAgKGRvbGlzdCAoZiBsb2FkLXBhdGgpCisJICAgICAgIChhbmQgKHN0cmluZ3Ag ZikKKwkJICAgIChlcXVhbCAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmKSAic2l0ZS1saXNwIikK KwkJICAgIChwdXNoIChleHBhbmQtZmlsZS1uYW1lICJlbHBhIiBmKSBkaXJzKSkpKQorCSAgIChw dXNoIChpZiAoYm91bmRwICdwYWNrYWdlLXVzZXItZGlyKQorCQkgICAgIHBhY2thZ2UtdXNlci1k aXIKKwkJICAgKGxvY2F0ZS11c2VyLWVtYWNzLWZpbGUgImVscGEiKSkKKwkJIGRpcnMpCisJICAg KGRvbGlzdCAoZGlyIGRpcnMpCisJICAgICAod2hlbiAoZmlsZS1kaXJlY3RvcnktcCBkaXIpCisJ ICAgICAgIChkb2xpc3QgKHN1YmRpciAoZGlyZWN0b3J5LWZpbGVzIGRpcikpCisJCSAod2hlbiAo bGV0ICgoc3ViZGlyIChleHBhbmQtZmlsZS1uYW1lIHN1YmRpciBkaXIpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAoYW5kIChmaWxlLWRpcmVjdG9yeS1wIHN1YmRpcikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHBhY2thZ2UtLWRlc2NyaXB0aW9uLWZpbGUgc3ViZGlyKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdWJkaXIpKSkpCisJCSAgICh0aHJvdyAncGFja2FnZS1kaXItZm91bmQg dCkpKSkpKSkKKyAgICAgICAocGFja2FnZS1pbml0aWFsaXplKSkKKwogICA7OyBNYWtlIHN1cmUg d2luZG93IHN5c3RlbSdzIGluaXQgZmlsZSB3YXMgbG9hZGVkIGluIGxvYWR1cC5lbCBpZgogICA7 OyB1c2luZyBhIHdpbmRvdyBzeXN0ZW0uCiAgIDs7IEluaXRpYWxpemUgdGhlIHdpbmRvdy1zeXN0 ZW0gb25seSBhZnRlciBwcm9jZXNzaW5nIHRoZSBjb21tYW5kLWxpbmUKQEAgLTExMjcsMzMgKzEy ODYsNiBAQCBjb21tYW5kLWxpbmUKICAgICA7OyB0aGUgc3RhcnR1cCBzY3JlZW4uCiAgICAgKHNl dHEgaW5oaWJpdC1zdGFydHVwLXNjcmVlbiBuaWwpCiAKLSAgICA7OyBXYXJuIGZvciBpbnZhbGlk IHVzZXIgbmFtZS4KLSAgICAod2hlbiBpbml0LWZpbGUtdXNlcgotICAgICAgKGlmIChzdHJpbmct bWF0Y2ggIlt+Lzpcbl0iIGluaXQtZmlsZS11c2VyKQotCSAgKGRpc3BsYXktd2FybmluZyAnaW5p dGlhbGl6YXRpb24KLQkJCSAgIChmb3JtYXQgIkludmFsaWQgdXNlciBuYW1lICVzIgotCQkJCSAg IGluaXQtZmlsZS11c2VyKQotCQkJICAgOmVycm9yKQotCShpZiAoZmlsZS1kaXJlY3RvcnktcCAo ZXhwYW5kLWZpbGUtbmFtZQotCQkJICAgICAgIDs7IFdlIGRvbid0IHN1cHBvcnQgflVTRVIgb24g TVMtV2luZG93cwotCQkJICAgICAgIDs7IGFuZCBNUy1ET1MgZXhjZXB0IGZvciB0aGUgY3VycmVu dAotCQkJICAgICAgIDs7IHVzZXIsIGFuZCBhbHdheXMgbG9hZCAuZW1hY3MgZnJvbQotCQkJICAg ICAgIDs7IHRoZSBjdXJyZW50IHVzZXIncyBob21lIGRpcmVjdG9yeQotCQkJICAgICAgIDs7IChz ZWUgYmVsb3cpLiAgU28gYWx3YXlzIGNoZWNrICJ+IiwKLQkJCSAgICAgICA7OyBldmVuIGlmIGlu dm9rZWQgd2l0aCAiLXUgVVNFUiIsIG9yCi0JCQkgICAgICAgOzsgaWYgJFVTRVIgb3IgJExPR05B TUUgYXJlIHNldCB0bwotCQkJICAgICAgIDs7IHNvbWV0aGluZyBkaWZmZXJlbnQuCi0JCQkgICAg ICAgKGlmIChtZW1xIHN5c3RlbS10eXBlICcod2luZG93cy1udCBtcy1kb3MpKQotCQkJCSAgICJ+ IgotCQkJCSAoY29uY2F0ICJ+IiBpbml0LWZpbGUtdXNlcikpKSkKLQkgICAgbmlsCi0JICAoZGlz cGxheS13YXJuaW5nICdpbml0aWFsaXphdGlvbgotCQkJICAgKGZvcm1hdCAiVXNlciAlcyBoYXMg bm8gaG9tZSBkaXJlY3RvcnkiCi0JCQkJICAgKGlmIChlcXVhbCBpbml0LWZpbGUtdXNlciAiIikK LQkJCQkgICAgICAgKHVzZXItcmVhbC1sb2dpbi1uYW1lKQotCQkJCSAgICAgaW5pdC1maWxlLXVz ZXIpKQotCQkJICAgOmVycm9yKSkpKQotCiAgICAgOzsgTG9hZCB0aGF0IHVzZXIncyBpbml0IGZp bGUsIG9yIHRoZSBkZWZhdWx0IG9uZSwgb3Igbm9uZS4KICAgICAobGV0IChkZWJ1Zy1vbi1lcnJv ci1mcm9tLWluaXQtZmlsZQogCSAgZGVidWctb24tZXJyb3Itc2hvdWxkLWJlLXNldApAQCAtMTMx MiwzMyArMTQ0NCw2IEBAIGNvbW1hbmQtbGluZQogCQkgKGVxIGZhY2UtaWdub3JlZC1mb250cyBv bGQtZmFjZS1pZ25vcmVkLWZvbnRzKSkKICAgICAgIChjbGVhci1mYWNlLWNhY2hlKSkpCiAKLSAg OzsgSWYgYW55IHBhY2thZ2UgZGlyZWN0b3J5IGV4aXN0cywgaW5pdGlhbGl6ZSB0aGUgcGFja2Fn ZSBzeXN0ZW0uCi0gIChhbmQgdXNlci1pbml0LWZpbGUKLSAgICAgICBwYWNrYWdlLWVuYWJsZS1h dC1zdGFydHVwCi0gICAgICAgKGNhdGNoICdwYWNrYWdlLWRpci1mb3VuZAotCSAobGV0IChkaXJz KQotCSAgIChpZiAoYm91bmRwICdwYWNrYWdlLWRpcmVjdG9yeS1saXN0KQotCSAgICAgICAoc2V0 cSBkaXJzIHBhY2thZ2UtZGlyZWN0b3J5LWxpc3QpCi0JICAgICAoZG9saXN0IChmIGxvYWQtcGF0 aCkKLQkgICAgICAgKGFuZCAoc3RyaW5ncCBmKQotCQkgICAgKGVxdWFsIChmaWxlLW5hbWUtbm9u ZGlyZWN0b3J5IGYpICJzaXRlLWxpc3AiKQotCQkgICAgKHB1c2ggKGV4cGFuZC1maWxlLW5hbWUg ImVscGEiIGYpIGRpcnMpKSkpCi0JICAgKHB1c2ggKGlmIChib3VuZHAgJ3BhY2thZ2UtdXNlci1k aXIpCi0JCSAgICAgcGFja2FnZS11c2VyLWRpcgotCQkgICAobG9jYXRlLXVzZXItZW1hY3MtZmls ZSAiZWxwYSIpKQotCQkgZGlycykKLQkgICAoZG9saXN0IChkaXIgZGlycykKLQkgICAgICh3aGVu IChmaWxlLWRpcmVjdG9yeS1wIGRpcikKLQkgICAgICAgKGRvbGlzdCAoc3ViZGlyIChkaXJlY3Rv cnktZmlsZXMgZGlyKSkKLQkJICh3aGVuIChsZXQgKChzdWJkaXIgKGV4cGFuZC1maWxlLW5hbWUg c3ViZGlyIGRpcikpKQotICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGZpbGUtZGlyZWN0 b3J5LXAgc3ViZGlyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3Rz LXAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS0tZGVzY3JpcHRpb24tZmlsZSBz dWJkaXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmRpcikpKSkKLQkJICAg KHRocm93ICdwYWNrYWdlLWRpci1mb3VuZCB0KSkpKSkpKQotICAgICAgIChwYWNrYWdlLWluaXRp YWxpemUpKQotCiAgIChzZXRxIGFmdGVyLWluaXQtdGltZSAoY3VycmVudC10aW1lKSkKICAgOzsg RGlzcGxheSBhbnkgYWNjdW11bGF0ZWQgd2FybmluZ3MgYWZ0ZXIgYWxsIGZ1bmN0aW9ucyBpbgog ICA7OyBgYWZ0ZXItaW5pdC1ob29rJyBsaWtlIGBkZXNrdG9wLXJlYWQnIGhhdmUgZmluYWxpemVk IHBvc3NpYmxlCi0tIAoyLjE0LjEKCg== --001a113f9f3449faa9055a060ba4--