From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Luke Lee Newsgroups: gmane.emacs.bugs Subject: bug#17854: The patch #3 of 3 for hideif.el, a lot of bug fixes and enhancements Date: Thu, 26 Jun 2014 21:51:36 +0800 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b2ede7141424604fcbd8001 X-Trace: ger.gmane.org 1403790808 6800 80.91.229.3 (26 Jun 2014 13:53:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 26 Jun 2014 13:53:28 +0000 (UTC) To: 17854@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jun 26 15:53:22 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1X0A75-0005Ve-Mo for geb-bug-gnu-emacs@m.gmane.org; Thu, 26 Jun 2014 15:53:20 +0200 Original-Received: from localhost ([::1]:44720 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X0A74-0006Xm-Tj for geb-bug-gnu-emacs@m.gmane.org; Thu, 26 Jun 2014 09:53:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40429) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X0A6u-0006Wc-OP for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:53:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X0A6o-0004NF-Tb for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:53:08 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:41979) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X0A6o-0004N9-Pu for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:53:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1X0A6o-00034p-8z for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:53:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Luke Lee Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 26 Jun 2014 13:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 17854 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.140379077811814 (code B ref -1); Thu, 26 Jun 2014 13:53:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 26 Jun 2014 13:52:58 +0000 Original-Received: from localhost ([127.0.0.1]:33128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X0A6e-00034H-Bh for submit@debbugs.gnu.org; Thu, 26 Jun 2014 09:52:57 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:38569) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1X0A6W-00033p-NH for submit@debbugs.gnu.org; Thu, 26 Jun 2014 09:52:50 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X0A6M-0004II-8f for submit@debbugs.gnu.org; Thu, 26 Jun 2014 09:52:39 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:33888) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X0A6M-0004I9-5B for submit@debbugs.gnu.org; Thu, 26 Jun 2014 09:52:34 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40221) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X0A6G-0006W5-3R for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:52:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X0A67-0004Cl-Qr for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:52:28 -0400 Original-Received: from mail-pa0-x233.google.com ([2607:f8b0:400e:c03::233]:56183) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X0A67-0004Cc-6X for bug-gnu-emacs@gnu.org; Thu, 26 Jun 2014 09:52:19 -0400 Original-Received: by mail-pa0-f51.google.com with SMTP id hz1so3233393pad.10 for ; Thu, 26 Jun 2014 06:52:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc:content-type; bh=JlDtkhAWlqUeL7fNXHCEL5qVFBEEvHGdSQOUfdvy2mQ=; b=XGG03nT+qyU5xZ8bNgc6/FtQXlyII7lmjPmMC7BQegVpq/xWKokXeiHKRQB3QPc0uS bEvZSZTLFpzNKr8e1hDdBE529qKCJHHYnLOPQCeuhJwfFBkMqEssduzFxznIiAZx2UM1 2lvA9Ik9aH4xSUAq6NSNMaz7A2gTPgnz6NX9g0t0gFCfX4wjgvOoP/WqZQDEutZoO8pc gn2DHcUlCA83gR0IcsWd9nY05TgpIdGmCB733oE/dbkzWNniwouUs+wJdtrQFwwwk+Zj i3md10MHZW2YpZI04F4hFfD7HIUbZ8B4qFZUehlr8M546PMp/TEGshSGgk7eiNEXRiEM I2hA== X-Received: by 10.68.222.196 with SMTP id qo4mr21746540pbc.14.1403790737611; Thu, 26 Jun 2014 06:52:17 -0700 (PDT) Original-Received: by 10.70.89.165 with HTTP; Thu, 26 Jun 2014 06:51:36 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:90836 Archived-At: --047d7b2ede7141424604fcbd8001 Content-Type: multipart/alternative; boundary=047d7b2ede7141424204fcbd80ff --047d7b2ede7141424204fcbd80ff Content-Type: text/plain; charset=UTF-8 Hi all, Attached is the bug fix and enhancements patchset #3 for hideifdef mode to complete my earlier posted hideif.el on http://www.emacswiki.org/emacs/hideif.el . The earlier two patches are already submitted into Emacs trunk and had reviewed by Stefan (Thanks Stefan!) Now I post the 3rd patch here. Please help review my changes and give me your suggestions. Thanks! -- Best regards, Luke Lee --047d7b2ede7141424204fcbd80ff Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi all,

Attached is t= he bug fix and enhancements patchset #3 for hideifdef
mode to complete = my earlier posted hideif.el on
http://www.emacswiki.org/emacs/hideif.el .
The earlier two patches are already submitted into Emacs trunk a= nd
had reviewed by Stefan (Thanks Stefan!) Now I post the 3rd patch
here. Please help review my changes and give me your suggestion= s.

Thanks!

--
Best regards,Luke Lee

--047d7b2ede7141424204fcbd80ff-- --047d7b2ede7141424604fcbd8001 Content-Type: application/octet-stream; name="0003-Other-hideif-enhancements-and-bug-fixes.patch" Content-Disposition: attachment; filename="0003-Other-hideif-enhancements-and-bug-fixes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hww4om6v0 RnJvbSA5ZWNhYzY3ZDAxMWFjMjU5MDQwNjg2MDZkOWFkYzc0MmM2ZWViZWJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWtlIExlZSA8bHVrZS55eC5sZWVAZ21haWwuY29tPgpEYXRl OiBUaHUsIDI2IEp1biAyMDE0IDIxOjI5OjI1ICswODAwClN1YmplY3Q6IFtQQVRDSF0gT3RoZXIg aGlkZWlmIGVuaGFuY2VtZW50cyBhbmQgYnVnIGZpeGVzOiAqIEFkZCBtYWNybwogZXZhbHVhdGlv biBmdW5jdGlvbiBhbmQga2V5IGJpbmRpbmcuICogTWVyZ2UgY29udGludW91cyAiLi4uIiBpbnRv IG9uZS4gKiBGaXgKIG9yaWdpbmFsIGJ1ZyB0aGF0IHNvbWV0aW1lcyBmYWlsIHRvIGhpZGUgdGhl IGNvcnJlY3QgcG9ydGlvbiBpbiBhIGxvbmcgIAogaWZkZWZzIGNvbnRhaW5pbmcgZWxpZiBhbmQg ZWxzZS4gKiBTdXBwb3J0IGhpZGUvc2hvdyBjb21tYW5kcyBpbiBhIG1hcmtlZAogcmVnaW9uLiAq IEV4cGFuZCB0b3AgbGV2ZWwgZm9yIC5oIGZpbGVzIHRvIHByZXZlbnQgcmUtaW5jbHVzaW9uIHBy b3RlY3Rpb24KIGNvZGVzIGZyb20gICBiZWluZyBoaWRkZW4uICogT3RoZXJzLgoKLS0tCiBsaXNw L3Byb2dtb2Rlcy9oaWRlaWYuZWwgfCA4MzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1NDIgaW5zZXJ0aW9ucygrKSwgMjk3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL2hpZGVpZi5lbCBiL2xp c3AvcHJvZ21vZGVzL2hpZGVpZi5lbAppbmRleCBiMGNhNGYwLi5hMTVjNWI3IDEwMDY0NAotLS0g YS9saXNwL3Byb2dtb2Rlcy9oaWRlaWYuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVs CkBAIC0zLDcgKzMsNyBAQAogOzsgQ29weXJpZ2h0IChDKSAxOTg4LCAxOTk0LCAyMDAxLTIwMTQg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKIDs7IEF1dGhvcjogQnJpYW4gTWFyaWNr Ci07OwlEYW5pZWwgTGFMaWJlcnRlIDxsaWJlcnRlQGhvbG9uZXh1cy5vcmc+Cis7OyAgICAgIERh bmllbCBMYUxpYmVydGUgPGxpYmVydGVAaG9sb25leHVzLm9yZz4KIDs7IE1haW50YWluZXI6IGVt YWNzLWRldmVsQGdudS5vcmcKIDs7IEtleXdvcmRzOiBjLCBvdXRsaW5lcwogCkBAIC0zNiw3ICsz Niw3IEBACiA7OwogOzsgSGlkZS1pZmRlZiBzdXBwcmVzc2VzIHRoZSBkaXNwbGF5IG9mIGNvZGUg dGhhdCB0aGUgcHJlcHJvY2Vzc29yIHdvdWxkbid0CiA7OyBwYXNzIHRocm91Z2guICBTdXBwb3J0 IGNvbXBsZXRlIEMvQysrIGV4cHJlc3Npb24gYW5kIHByZWNlZGVuY2UuCi07OyBJdCB3aWxsIGF1 dG9tYXRpY2FsbHkgc2NhbnMgZm9yIG5ldyAjZGVmaW5lIHN5bWJvbHMgYW5kIG1hY3JvcyBvbiB0 aGUgd2F5Cis7OyBJdCB3aWxsIGF1dG9tYXRpY2FsbHkgc2NhbiBmb3IgbmV3ICNkZWZpbmUgc3lt Ym9scyBhbmQgbWFjcm9zIG9uIHRoZSB3YXkKIDs7IHBhcnNpbmcuCiA7OwogOzsgVGhlIGhpZGRl biBjb2RlIGlzIG1hcmtlZCBieSBlbGxpcHNlcyAoLi4uKS4gIEJlCkBAIC02NiwxMSArNjYsMTEg QEAKIDs7CiA7OyAoYWRkLWhvb2sgJ2hpZGUtaWZkZWYtbW9kZS1ob29rCiA7OyAgICAgIChsYW1i ZGEgKCkKLTs7CSAodW5sZXNzIGhpZGUtaWZkZWYtZGVmaW5lLWFsaXN0Ci07OwkgICAoc2V0cSBo aWRlLWlmZGVmLWRlZmluZS1hbGlzdAotOzsJCScoKGxpc3QxIE9ORSBUV08pCi07OwkJICAobGlz dDIgVFdPIFRIUkVFKSkpKQotOzsJIChoaWRlLWlmZGVmLXVzZS1kZWZpbmUtYWxpc3QgJ2xpc3Qy KSkpIDsgdXNlIGxpc3QyIGJ5IGRlZmF1bHQKKzs7ICAgICAgICh1bmxlc3MgaGlkZS1pZmRlZi1k ZWZpbmUtYWxpc3QKKzs7ICAgICAgICAgKHNldHEgaGlkZS1pZmRlZi1kZWZpbmUtYWxpc3QKKzs7 ICAgICAgICAgICAgICAnKChsaXN0MSBPTkUgVFdPKQorOzsgICAgICAgICAgICAgICAgKGxpc3Qy IFRXTyBUSFJFRSkpKSkKKzs7ICAgICAgIChoaWRlLWlmZGVmLXVzZS1kZWZpbmUtYWxpc3QgJ2xp c3QyKSkpIDsgdXNlIGxpc3QyIGJ5IGRlZmF1bHQKIDs7CiA7OyBZb3UgY2FuIGNhbGwgaGlkZS1p ZmRlZi11c2UtZGVmaW5lLWFsaXN0IChDLWMgQCBVKSBhdCBhbnkgdGltZSB0byBzcGVjaWZ5CiA7 OyBhbm90aGVyIGxpc3QgdG8gdXNlLgpAQCAtMTI5LDE2ICsxMjksNDQgQEAKICAgIk5vbi1uaWwg bWVhbnMgc2hhZG93IHRleHQgaW5zdGVhZCBvZiBoaWRpbmcgaXQuIgogICA6dHlwZSAnYm9vbGVh bgogICA6Z3JvdXAgJ2hpZGUtaWZkZWYKLSAgOnZlcnNpb24gIjIzLjEiKQorICA6dmVyc2lvbiAi MjQuNSIpCiAKIChkZWZmYWNlIGhpZGUtaWZkZWYtc2hhZG93ICcoKHQgKDppbmhlcml0IHNoYWRv dykpKQogICAiRmFjZSBmb3Igc2hhZG93aW5nIGlmZGVmIGJsb2Nrcy4iCiAgIDpncm91cCAnaGlk ZS1pZmRlZgotICA6dmVyc2lvbiAiMjMuMSIpCisgIDp2ZXJzaW9uICIyNC41IikKIAogKGRlZmN1 c3RvbSBoaWRlLWlmZGVmLWV4Y2x1ZGUtZGVmaW5lLXJlZ2V4cCBuaWwKICAgIklnbm9yZSAjZGVm aW5lIG5hbWVzIGlmIHRob3NlIG5hbWVzIG1hdGNoIHRoaXMgZXhjbHVzaW9uIHBhdHRlcm4uIgog ICA6dHlwZSAnc3RyaW5nKQorKGRlZmN1c3RvbSBoaWRlLWlmZGVmLWV4cGFuZC1yZWluY2x1c2lv bi1wcm90ZWN0aW9uIHQKKyAgIldoZW4gaGlkaW5nIGhlYWRlciBmaWxlcywgZW5hYmxpbmcgdGhp cyBmbGFnIGFsbG93cyBoaWRlaWYgYWx3YXlzIHRyeSB0bworZXhwYW5kIHRoZSByZS1pbmNsdXNp b24gcHJvdGVjdGVkIGlmZGVmcy4gIERpc2FibGluZyB0aGlzIGZsYWcgdGhvc2UgaGVhZGVycwor YXJlIHVzdWFsbHkgaGlkZGVuIHRvIGEgdG9wIGxldmVsICNpZmRlZi4uLiNlbmRpZiBkdWUgdG8g dGhvc2UgZGVmaW5lZCBzeW1ib2xzLgorCitNb3N0IEMvQysrIGhlYWRlciBmaWxlcyBhcmUgd3Jh cHBlZCB3aXRoIGlmZGVmcyB0byBwcmV2ZW50IHJlLWluY2x1c2lvbiBvZiB0aGlzCitmb3JtCisK KyAgLS0tLS0gYmVnaW5uaW5nIG9mIGZpbGUgLS0tLS0KKyAgI2lmZGVmIF9YWFhfSEVBREVSX0ZJ TEVfSU5DTFVERURfCisgICNkZWZpbmUgX1hYWF9IRUFERVJfRklMRV9JTkNMVURFRF8KKyAgLi4u CisgICNlbmRpZgorICAtLS0tLSBlbmQgb2YgZmlsZSAtLS0tLQorCitIZW5jZSwgaWYgd2UgdHJ5 IHRvIGhpZGUgdGhpcyBoZWFkZXIgZmlsZSB0d2ljZSwgaXQgd2lsbCBoaWRlIGV2ZXJ5dGhpbmcg YmV0d2VlbgordGhlIHRvcCBsZXZlbCAjaWZkZWYgLi4uICNlbmRpZiB3aGVuIHlvdSB0cmllZCB0 byBoaWRlIHRoaXMgZmlsZSB0aGUgc2Vjb25kIHRpbWUKK3NpbmNlIF9YWFhfSEVBREVSX0ZJTEVf SU5DTFVERURfIGlzIGRlZmluZWQgYXQgdGhlIGZpcnN0IHRpbWUgd2hlbiB5b3Ugd2UgaGlkZQor aXQuIgorICA6dHlwZSAnYm9vbGVhbgorICA6Z3JvdXAgJ2hpZGUtaWZkZWYpCisKKyhkZWZjdXN0 b20gaGlkZS1pZmRlZi1oZWFkZXItcmVnZXhwLXBhdHRlcm4KKyAgIl4uKlxcLltoSF1cXChbaEhd XFx8W3hYXVt4WF1cXHxbcFBdW3BQXVxcKT8iCisgICJDL0MrKyBoZWFkZXIgZmlsZSBuYW1lIHBh dHRlcm5zLiBFZmZlY3RpdmUgb25seSBpZgorYGhpZGUtaWZkZWYtZXhwYW5kLXJlaW5jbHVzaW9u LXByb3RlY3Rpb24nIGlzIHQuIgorICA6dHlwZSAnc3RyaW5nCisgIDpncm91cCAnaGlkZS1pZmRl ZikKIAogKGRlZnZhciBoaWRlLWlmZGVmLW1vZGUtc3VibWFwCiAgIDs7IFNldCB1cCB0aGUgc3Vi bWFwIHRoYXQgZ29lcyBhZnRlciB0aGUgcHJlZml4IGtleS4KQEAgLTE1Miw2ICsxODAsOCBAQAog ICAgIChkZWZpbmUta2V5IG1hcCAicyIgJ3Nob3ctaWZkZWZzKQogICAgIChkZWZpbmUta2V5IG1h cCAiXEMtZCIgJ2hpZGUtaWZkZWYtYmxvY2spCiAgICAgKGRlZmluZS1rZXkgbWFwICJcQy1zIiAn c2hvdy1pZmRlZi1ibG9jaykKKyAgICAoZGVmaW5lLWtleSBtYXAgImUiICdoaWYtZXZhbHVhdGUt bWFjcm8pCisgICAgKGRlZmluZS1rZXkgbWFwICJDIiAnaGlmLWNsZWFyLWFsbC1pZmRlZi1kZWZp bmVkKQogCiAgICAgKGRlZmluZS1rZXkgbWFwICJcQy1xIiAnaGlkZS1pZmRlZi10b2dnbGUtcmVh ZC1vbmx5KQogICAgIChkZWZpbmUta2V5IG1hcCAiXEMtdyIgJ2hpZGUtaWZkZWYtdG9nZ2xlLXNo YWRvd2luZykKQEAgLTIwNCw3ICsyMzQsNyBAQAogICAgICAgICAgIChjb25zICcoaGlkZS1pZmRl Zi1oaWRpbmcgIiBIaWRpbmciKQogICAgICAgICAgICAgICAgIG1pbm9yLW1vZGUtYWxpc3QpKSkK IAotOzsgZml4IGMtbW9kZSBzeW50YXggdGFibGUgc28gd2UgY2FuIHJlY29nbml6ZSB3aG9sZSBz eW1ib2xzLgorOzsgRml4IGMtbW9kZSBzeW50YXggdGFibGUgc28gd2UgY2FuIHJlY29nbml6ZSB3 aG9sZSBzeW1ib2xzLgogKGRlZnZhciBoaWRlLWlmZGVmLXN5bnRheC10YWJsZQogICAobGV0ICgo c3QgKGNvcHktc3ludGF4LXRhYmxlIGMtbW9kZS1zeW50YXgtdGFibGUpKSkKICAgICAobW9kaWZ5 LXN5bnRheC1lbnRyeSA/XyAidyIgc3QpCkBAIC0yMTUsNiArMjQ1LDkgQEAKIAogKGRlZnZhciBo aWRlLWlmZGVmLWVudiBuaWwKICAgIkFuIGFsaXN0IG9mIGRlZmluZWQgc3ltYm9scyBhbmQgdGhl aXIgdmFsdWVzLiIpCisoZGVmdmFyIGhpZGUtaWZkZWYtZW52LWJhY2t1cCBuaWwKKyAgIkEgYmFj a3VwIHZhcmlhYmxlIHRvIHByZXZlbnQgYGhpZGUtaWZkZWYtZW52JyBhY2NpZGVudGFsbHkgY2xl YXJlZCBieQorYGhpZi1jbGVhci1hbGwtaWZkZWYtZGVmaW5lZCcuIikKIAogKGRlZnZhciBoaWYt b3V0c2lkZS1yZWFkLW9ubHkgbmlsCiAgICJJbnRlcm5hbCB2YXJpYWJsZS4gIFNhdmVzIHRoZSB2 YWx1ZSBvZiBgYnVmZmVyLXJlYWQtb25seScgd2hpbGUgaGlkaW5nLiIpCkBAIC0yMzIsNTMgKzI2 NSw2NCBAQCB0aGF0IHRoZSBDIHByZXByb2Nlc3NvciB3b3VsZCBlbGltaW5hdGUgbWF5IGJlIGhp ZGRlbiBmcm9tIHZpZXcuCiBTZXZlcmFsIHZhcmlhYmxlcyBhZmZlY3QgaG93IHRoZSBoaWRpbmcg aXMgZG9uZToKIAogYGhpZGUtaWZkZWYtZW52JwotCUFuIGFzc29jaWF0aW9uIGxpc3Qgb2YgZGVm aW5lZCBhbmQgdW5kZWZpbmVkIHN5bWJvbHMgZm9yIHRoZQotCWN1cnJlbnQgYnVmZmVyLiAgSW5p dGlhbGx5LCB0aGUgZ2xvYmFsIHZhbHVlIG9mIGBoaWRlLWlmZGVmLWVudicKLQlpcyB1c2VkLgor ICAgICAgICBBbiBhc3NvY2lhdGlvbiBsaXN0IG9mIGRlZmluZWQgYW5kIHVuZGVmaW5lZCBzeW1i b2xzIGZvciB0aGUKKyAgICAgICAgY3VycmVudCBwcm9qZWN0LiAgSW5pdGlhbGx5LCB0aGUgZ2xv YmFsIHZhbHVlIG9mIGBoaWRlLWlmZGVmLWVudicKKyAgICAgICAgaXMgdXNlZC4gIFRoaXMgdmFy aWFibGUgd2FzIGEgYnVmZmVyLWxvY2FsIHZhcmlhYmxlIGJ1dCBpcyBub3cgYQorICAgICAgICBn bG9iYWwgdmFyaWFibGUgc2luY2Ugd2UndmUgZXh0ZW5kIGhpZGVpZiB0byBzdXBwb3J0IHByb2pl Y3QtYmFzZWQKKyAgICAgICAgYWNyb3NzIGFsbC1idWZmZXJzLiAgVG8gc2ltdWxhdGUgdGhlIG9y aWdpbmFsIGJ1ZmZlciBsb2NhbCBiZWhhdmlvcgorICAgICAgICB3ZSBuZWVkIHRvIGNsZWFyIHRo aXMgdmFyaWFibGUgKEMtYyBAIEMpIHRoZW4gaGlkZSBjdXJyZW50IGJ1ZmZlci4KIAogYGhpZGUt aWZkZWYtZGVmaW5lLWFsaXN0JwotCUFuIGFzc29jaWF0aW9uIGxpc3Qgb2YgZGVmaW5lZCBzeW1i b2wgbGlzdHMuCisgICAgICAgIEFuIGFzc29jaWF0aW9uIGxpc3Qgb2YgZGVmaW5lZCBzeW1ib2wg bGlzdHMuCiAgICAgICAgIFVzZSBgaGlkZS1pZmRlZi1zZXQtZGVmaW5lLWFsaXN0JyB0byBzYXZl IHRoZSBjdXJyZW50IGBoaWRlLWlmZGVmLWVudicKICAgICAgICAgYW5kIGBoaWRlLWlmZGVmLXVz ZS1kZWZpbmUtYWxpc3QnIHRvIHNldCB0aGUgY3VycmVudCBgaGlkZS1pZmRlZi1lbnYnCiAgICAg ICAgIGZyb20gb25lIG9mIHRoZSBsaXN0cyBpbiBgaGlkZS1pZmRlZi1kZWZpbmUtYWxpc3QnLgog CiBgaGlkZS1pZmRlZi1saW5lcycKLQlTZXQgdG8gbm9uLW5pbCB0byBub3Qgc2hvdyAjaWYsICNp ZmRlZiwgI2lmbmRlZiwgI2Vsc2UsIGFuZAotCSNlbmRpZiBsaW5lcyB3aGVuIGhpZGluZy4KKyAg ICAgICAgU2V0IHRvIG5vbi1uaWwgdG8gbm90IHNob3cgI2lmLCAjaWZkZWYsICNpZm5kZWYsICNl bHNlLCBhbmQKKyAgICAgICAgI2VuZGlmIGxpbmVzIHdoZW4gaGlkaW5nLgogCiBgaGlkZS1pZmRl Zi1pbml0aWFsbHknCi0JSW5kaWNhdGVzIHdoZXRoZXIgYGhpZGUtaWZkZWZzJyBzaG91bGQgYmUg Y2FsbGVkIHdoZW4gSGlkZS1JZmRlZiBtb2RlCi0JaXMgYWN0aXZhdGVkLgorICAgICAgICBJbmRp Y2F0ZXMgd2hldGhlciBgaGlkZS1pZmRlZnMnIHNob3VsZCBiZSBjYWxsZWQgd2hlbiBIaWRlLUlm ZGVmIG1vZGUKKyAgICAgICAgaXMgYWN0aXZhdGVkLgogCiBgaGlkZS1pZmRlZi1yZWFkLW9ubHkn Ci0JU2V0IHRvIG5vbi1uaWwgaWYgeW91IHdhbnQgdG8gbWFrZSBidWZmZXJzIHJlYWQgb25seSB3 aGlsZSBoaWRpbmcuCi0JQWZ0ZXIgYHNob3ctaWZkZWZzJywgcmVhZC1vbmx5IHN0YXR1cyBpcyBy ZXN0b3JlZCB0byBwcmV2aW91cyB2YWx1ZS4KKyAgICAgICAgU2V0IHRvIG5vbi1uaWwgaWYgeW91 IHdhbnQgdG8gbWFrZSBidWZmZXJzIHJlYWQgb25seSB3aGlsZSBoaWRpbmcuCisgICAgICAgIEFm dGVyIGBzaG93LWlmZGVmcycsIHJlYWQtb25seSBzdGF0dXMgaXMgcmVzdG9yZWQgdG8gcHJldmlv dXMgdmFsdWUuCiAKIFxce2hpZGUtaWZkZWYtbW9kZS1tYXB9IgogICA6Z3JvdXAgJ2hpZGUtaWZk ZWYgOmxpZ2h0ZXIgIiBJZmRlZiIKICAgKGlmIGhpZGUtaWZkZWYtbW9kZQogICAgICAgKHByb2du Ci0JOzsgaW5oZXJpdCBnbG9iYWwgdmFsdWVzCi0JKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAn aGlkZS1pZmRlZi1lbnYpCi0JICAgICAoZGVmYXVsdC12YWx1ZSAnaGlkZS1pZmRlZi1lbnYpKQot CShzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2hpZGUtaWZkZWYtaGlkaW5nKQotCSAgICAgKGRl ZmF1bHQtdmFsdWUgJ2hpZGUtaWZkZWYtaGlkaW5nKSkKLQkoc2V0IChtYWtlLWxvY2FsLXZhcmlh YmxlICdoaWYtb3V0c2lkZS1yZWFkLW9ubHkpIGJ1ZmZlci1yZWFkLW9ubHkpCi0JKHNldCAobWFr ZS1sb2NhbC12YXJpYWJsZSAnbGluZS1tb3ZlLWlnbm9yZS1pbnZpc2libGUpIHQpCi0JKGFkZC1o b29rICdjaGFuZ2UtbWFqb3ItbW9kZS1ob29rCi0JCSAgKGxhbWJkYSAoKSAoaGlkZS1pZmRlZi1t b2RlIC0xKSkgbmlsIHQpCi0KLQkoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjICcoaGlkZS1pZmRl ZiAuIHQpKQotCi0JKGlmIGhpZGUtaWZkZWYtaW5pdGlhbGx5Ci0JICAgIChoaWRlLWlmZGVmcykK LQkgIChzaG93LWlmZGVmcykpKQorICAgICAgICA7OyBpbmhlcml0IGdsb2JhbCB2YWx1ZXMKKzs7 ICAgICAgKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAnaGlkZS1pZmRlZi1lbnYpCis7OyAgICAg ICAgICAgKGRlZmF1bHQtdmFsdWUgJ2hpZGUtaWZkZWYtZW52KSkKKyAgICAgICAgKHNldCAnaGlk ZS1pZmRlZi1lbnYgKGRlZmF1bHQtdmFsdWUgJ2hpZGUtaWZkZWYtZW52KSkKKyAgICAgICAgKHNl dCAobWFrZS1sb2NhbC12YXJpYWJsZSAnaGlkZS1pZmRlZi1oaWRpbmcpCisgICAgICAgICAgICAg KGRlZmF1bHQtdmFsdWUgJ2hpZGUtaWZkZWYtaGlkaW5nKSkKKyAgICAgICAgKHNldCAobWFrZS1s b2NhbC12YXJpYWJsZSAnaGlmLW91dHNpZGUtcmVhZC1vbmx5KSBidWZmZXItcmVhZC1vbmx5KQor ICAgICAgICAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlICdsaW5lLW1vdmUtaWdub3JlLWludmlz aWJsZSkgdCkKKyAgICAgICAgKGFkZC1ob29rICdjaGFuZ2UtbWFqb3ItbW9kZS1ob29rCisgICAg ICAgICAgICAgICAgICAobGFtYmRhICgpIChoaWRlLWlmZGVmLW1vZGUgLTEpKSBuaWwgdCkKKwor ICAgICAgICAoYWRkLXRvLWludmlzaWJpbGl0eS1zcGVjICcoaGlkZS1pZmRlZiAuIHQpKQorCisg ICAgICAgIChpZiBoaWRlLWlmZGVmLWluaXRpYWxseQorICAgICAgICAgICAgKGhpZGUtaWZkZWZz KQorICAgICAgICAgIChzaG93LWlmZGVmcykpKQogICAgIDs7IGVsc2UgZW5kIGhpZGUtaWZkZWYt bW9kZQogICAgIChraWxsLWxvY2FsLXZhcmlhYmxlICdsaW5lLW1vdmUtaWdub3JlLWludmlzaWJs ZSkKICAgICAocmVtb3ZlLWZyb20taW52aXNpYmlsaXR5LXNwZWMgJyhoaWRlLWlmZGVmIC4gdCkp CiAgICAgKHdoZW4gaGlkZS1pZmRlZi1oaWRpbmcKICAgICAgIChzaG93LWlmZGVmcykpKSkKIAor KGRlZnVuIGhpZi1jbGVhci1hbGwtaWZkZWYtZGVmaW5lZCAoKQorICAiQ2xlYXIgYWxsIHZhcmlh YmxlcyBpbiBgaGlkZS1pZmRlZi1lbnYnLiAgSXQgd2lsbCBiYWNrdXAgdGhpcyB2YXJpYWJsZSB0 bworYGhpZGUtaWZkZWYtZW52LWJhY2t1cCcgYmVmb3JlIGNsZWFyaW5nIHRvIHByZXZlbnQgYWNj aWRlbnRhbCBjbGVhcmFuY2UuIgorICAoaW50ZXJhY3RpdmUpCisgICh3aGVuICh5LW9yLW4tcCAi Q2xlYXIgYWxsICNkZWZpbmVkIHN5bWJvbHM/IikKKyAgICAoc2V0cSBoaWRlLWlmZGVmLWVudi1i YWNrdXAgaGlkZS1pZmRlZi1lbnYpCisgICAgKHNldHEgaGlkZS1pZmRlZi1lbnYgbmlsKSkpCiAK IChkZWZ1biBoaWYtc2hvdy1hbGwgKCkKICAgIlNob3cgYWxsIG9mIHRoZSB0ZXh0IGluIHRoZSBj dXJyZW50IGJ1ZmZlci4iCkBAIC0yOTgsMTYgKzM0Miw2MiBAQCBTZXZlcmFsIHZhcmlhYmxlcyBh ZmZlY3QgaG93IHRoZSBoaWRpbmcgaXMgZG9uZToKICAgKHdoaWxlICg9IChsb2dhbmQgMSAoc2tp cC1jaGFycy1iYWNrd2FyZCAiXFxcXCIpKSAxKQogICAgIChlbmQtb2YtbGluZSAyKSkpCiAKKyhk ZWZ1biBoaWYtbWVyZ2UtaWZkZWYtcmVnaW9uIChzdGFydCBlbmQpCisgICJNZXJnZSBuZWFyYnkg aWZkZWYgcmVnaW9ucyB0byBmb3JtIGEgYmlnZ2VyIG92ZXJsYXkuIFRoaXMgd2lsbCBkZWNyZWFz ZQordGhlIG51bWJlciBvZiBvdmVybGF5cyBjcmVhdGVkLiIKKyAgOzsgR2VuZXJuYWxseSB0aGVy ZSBpcyBubyBuZWVkIHRvIGNhbGwgaXRzZWxmIHJlY3Vyc2l2ZWx5IHNpbmNlIHRoZXJlIHNob3Vs ZAorICA7OyBvcmlnaW5hbGx5IGV4aXN0cyBubyB1bi1tZXJnZWQgcmVnaW9uczsgaG93ZXZlciwg aWYgYSBwYXJ0IG9mIHRoZSBmaWxlIGlzCisgIDs7IGhpZGRlbiB3aXRoIGBoaWRlLWlmZGVmLWxp bmVzJyBlcXVhbHMgdG8gbmlsIHdoaWxlIGFub3RoZXIgcGFydCB3aXRoICd0LAorICA7OyB0aGlz IGNhc2UgaGFwcGVucy4KKyAgOzsgVE9ETzogU2hvdWxkIHdlIG1lcmdlPyBvciBqdXN0IGNyZWF0 ZSBhIGNvbnRhaW5lciBvdmVybGF5PyAtLSB0aGlzIGNhbgorICA7OyBwcmV2ZW50IGBoaWRlaWYt c2hvdy1pZmRlZicgZXhwYW5kaW5nIHRvbyBtYW55IGhpZGRlbiBjb250ZW50cyBzaW5jZSB0aGVy ZQorICA7OyBpcyBvbmx5IGEgYmlnIG92ZXJsYXkgZXhpc3RzIHRoZXJlIHdpdGhvdXQgYW55IHNt YWxsZXIgb3ZlcmxheXMuCisgIChzYXZlLXJlc3RyaWN0aW9uCisgICAgKHdpZGVuKSA7IE90aGVy d2lzZSBgcG9pbnQtbWluJyBhbmQgYHBvaW50LW1heCcgd2lsbCBiZSByZXN0cmljdGVkIGFuZCB0 aHVzCisgICAgICAgICAgICA7IGZhaWwgdG8gZmluZCBuZWlnaGJvciBvdmVybGF5cworICAgIChs ZXQgKChiZWdvdnJzIChvdmVybGF5cy1pbgorICAgICAgICAgICAgICAgICAgICAobWF4ICgtIHN0 YXJ0IDIpIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICAgICAobWF4ICgtIHN0YXJ0IDEp IChwb2ludC1taW4pKSkpCisgICAgICAgICAgKGVuZG92cnMgKG92ZXJsYXlzLWluCisgICAgICAg ICAgICAgICAgICAgIChtaW4gKCsgZW5kIDEpIChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAg ICAgICAobWluICgrIGVuZCAyKSAocG9pbnQtbWF4KSkpKQorICAgICAgICAgIChvYiBuaWwpCisg ICAgICAgICAgKG9lIG5pbCkKKyAgICAgICAgICBiIGUpCisgICAgICA7OyBNZXJnZSBvdmVybGF5 cyBiZWZvcmUgU1RBUlQKKyAgICAgIChkb2xpc3QgKG8gYmVnb3ZycykKKyAgICAgICAgKHdoZW4g KG92ZXJsYXktZ2V0IG8gJ2hpZGUtaWZkZWYpCisgICAgICAgICAgKHNldHEgYiAobWluIHN0YXJ0 IChvdmVybGF5LXN0YXJ0IG8pKQorICAgICAgICAgICAgICAgIGUgKG1heCBlbmQgKG92ZXJsYXkt ZW5kIG8pKSkKKyAgICAgICAgICAobW92ZS1vdmVybGF5IG8gYiBlKQorICAgICAgICAgIChoaWYt bWVyZ2UtaWZkZWYtcmVnaW9uIGIgZSkKKyAgICAgICAgICAoc2V0cSBvYiBvKSkpCisgICAgICA7 OyBNZXJnZSBvdmVybGF5cyBhZnRlciBFTkQKKyAgICAgIChkb2xpc3QgKG8gZW5kb3ZycykKKyAg ICAgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG8gJ2hpZGUtaWZkZWYpCisgICAgICAgICAgKHNldHEg YiAobWluIHN0YXJ0IChvdmVybGF5LXN0YXJ0IG8pKQorICAgICAgICAgICAgICAgIGUgKG1heCBl bmQgKG92ZXJsYXktZW5kIG8pKSkKKyAgICAgICAgICAobW92ZS1vdmVybGF5IG8gYiBlKQorICAg ICAgICAgIChoaWYtbWVyZ2UtaWZkZWYtcmVnaW9uIGIgZSkKKyAgICAgICAgICAoc2V0ZiBvZSBv KSkpCisgICAgICA7OyBJZiBib3RoIFNUQVJUIGFuZCBFTkQgbWVyZ2luZyBoYXBwZW5zLCBtZXJn ZSBpbnRvIGJpZ2dlciBvbmUKKyAgICAgICh3aGVuIChhbmQgb2Igb2UpCisgICAgICAgIChsZXQg KChiIChtaW4gKG92ZXJsYXktc3RhcnQgb2IpIChvdmVybGF5LXN0YXJ0IG9lKSkpCisgICAgICAg ICAgICAgIChlIChtYXggKG92ZXJsYXktZW5kIG9iKSAob3ZlcmxheS1lbmQgb2UpKSkpCisgICAg ICAgICAgKGRlbGV0ZS1vdmVybGF5IG9lKQorICAgICAgICAgIChtb3ZlLW92ZXJsYXkgb2IgYiBl KQorICAgICAgICAgIChoaWYtbWVyZ2UtaWZkZWYtcmVnaW9uIGIgZSkpKQorICAgICAgKG9yIG9i IG9lKSkpKQogKGRlZnVuIGhpZGUtaWZkZWYtcmVnaW9uLWludGVybmFsIChzdGFydCBlbmQpCi0g IChyZW1vdmUtb3ZlcmxheXMgc3RhcnQgZW5kICdoaWRlLWlmZGVmIHQpCisgICh1bmxlc3MgKGhp Zi1tZXJnZS1pZmRlZi1yZWdpb24gc3RhcnQgZW5kKQogICAobGV0ICgobyAobWFrZS1vdmVybGF5 IHN0YXJ0IGVuZCkpKQogICAgIChvdmVybGF5LXB1dCBvICdoaWRlLWlmZGVmIHQpCiAgICAgKGlm IGhpZGUtaWZkZWYtc2hhZG93Ci0JKG92ZXJsYXktcHV0IG8gJ2ZhY2UgJ2hpZGUtaWZkZWYtc2hh ZG93KQotICAgICAgKG92ZXJsYXktcHV0IG8gJ2ludmlzaWJsZSAnaGlkZS1pZmRlZikpKSkKKyAg ICAgICAgKG92ZXJsYXktcHV0IG8gJ2ZhY2UgJ2hpZGUtaWZkZWYtc2hhZG93KQorICAgICAgICAo b3ZlcmxheS1wdXQgbyAnaW52aXNpYmxlICdoaWRlLWlmZGVmKSkpKSkKIAogKGRlZnVuIGhpZGUt aWZkZWYtcmVnaW9uIChzdGFydCBlbmQpCi0gICJTVEFSVCBpcyB0aGUgc3RhcnQgb2YgYSAjaWYg b3IgI2Vsc2UgZm9ybS4gIEVORCBpcyB0aGUgZW5kaW5nIHBhcnQuCisgICJTVEFSVCBpcyB0aGUg c3RhcnQgb2YgYSAjaWYsICNlbGlmLCBvciAjZWxzZSBmb3JtLiAgRU5EIGlzIHRoZSBlbmRpbmcg cGFydC4KIEV2ZXJ5dGhpbmcgaW5jbHVkaW5nIHRoZXNlIGxpbmVzIGlzIG1hZGUgaW52aXNpYmxl LiIKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgKGdvdG8tY2hhciBzdGFydCkgKGhpZi1lbmQtb2Yt bGluZSkgKHNldHEgc3RhcnQgKHBvaW50KSkKQEAgLTMxNiw3ICs0MDYsOSBAQCBFdmVyeXRoaW5n IGluY2x1ZGluZyB0aGVzZSBsaW5lcyBpcyBtYWRlIGludmlzaWJsZS4iCiAKIChkZWZ1biBoaWYt c2hvdy1pZmRlZi1yZWdpb24gKHN0YXJ0IGVuZCkKICAgIkV2ZXJ5dGhpbmcgYmV0d2VlbiBTVEFS VCBhbmQgRU5EIGlzIG1hZGUgdmlzaWJsZS4iCi0gIChyZW1vdmUtb3ZlcmxheXMgc3RhcnQgZW5k ICdoaWRlLWlmZGVmIHQpKQorICAobGV0ICgob251bSAobGVuZ3RoIChvdmVybGF5cy1pbiBzdGFy dCBlbmQpKSkpCisgICAgKHJlbW92ZS1vdmVybGF5cyBzdGFydCBlbmQgJ2hpZGUtaWZkZWYgdCkK KyAgICAoLz0gb251bSAobGVuZ3RoIChvdmVybGF5cy1pbiBzdGFydCBlbmQpKSkpKQogCiAKIDs7 PT09JSVTRiUlIGV2YWx1YXRpb24gKFN0YXJ0KSAgPT09CkBAIC0zNDEsMTEgKzQzMywxMSBAQCB0 aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogCiAoZGVmdW4gaGlmLWxvb2t1cCAodmFy KQogICAob3IgKHdoZW4gKGJvdW5kLWFuZC10cnVlLXAgc2VtYW50aWMtYy10YWtlb3Zlci1oaWRl aWYpCi0JKHNlbWFudGljLWMtaGlkZWlmLWxvb2t1cCB2YXIpKQorICAgICAgICAoc2VtYW50aWMt Yy1oaWRlaWYtbG9va3VwIHZhcikpCiAgICAgICAobGV0ICgodmFsIChhc3NvYyB2YXIgaGlkZS1p ZmRlZi1lbnYpKSkKLQkoaWYgdmFsCi0JICAgIChjZHIgdmFsKQotCSAgaGlmLXVuZGVmaW5lZC1z eW1ib2wpKSkpCisgICAgICAgIChpZiB2YWwKKyAgICAgICAgICAgIChjZHIgdmFsKQorICAgICAg ICAgIGhpZi11bmRlZmluZWQtc3ltYm9sKSkpKQogCiAoZGVmdW4gaGlmLWRlZmluZWQgKHZhcikK ICAgKGNvbmQKQEAgLTM3NSwxMCArNDY3LDggQEAgdGhhdCBmb3JtIHNob3VsZCBiZSBkaXNwbGF5 ZWQuIikKICAgKGNvbmNhdCBoaWYtY3BwLXByZWZpeCAiXFwoaWZcXChuP2RlZlxcKT9cXHxlbGlm XFx8ZGVmaW5lXFwpWyBcdF0rIikpCiAKIChkZWZjb25zdCBoaWYtd2hpdGUtcmVnZXhwICAgICAg ICAgIlsgXHRdKiIpCi0oZGVmY29uc3QgaGlmLWRlZmluZS1yZWdleHAKLSAgKGNvbmNhdCBoaWYt Y3BwLXByZWZpeCAiXFwoZGVmaW5lXFx8dW5kZWZcXCkiKSkKLShkZWZjb25zdCBoaWYtaWQtcmVn ZXhwCi0gIChjb25jYXQgIltbOmFscGhhOl1fXVtbOmFsbnVtOl1fXSoiKSkKKyhkZWZjb25zdCBo aWYtZGVmaW5lLXJlZ2V4cCAgIChjb25jYXQgaGlmLWNwcC1wcmVmaXggIlxcKGRlZmluZVxcfHVu ZGVmXFwpIikpCisoZGVmY29uc3QgaGlmLWlkLXJlZ2V4cCAgICAgICAoY29uY2F0ICJbWzphbHBo YTpdX11bWzphbG51bTpdX10qIikpCiAoZGVmY29uc3QgaGlmLW1hY3JvcmVmLXJlZ2V4cAogICAo Y29uY2F0IGhpZi13aGl0ZS1yZWdleHAgIlxcKCIgaGlmLWlkLXJlZ2V4cCAiXFwpIiBoaWYtd2hp dGUtcmVnZXhwCiAgICAgICAgICAgIlxcKCIKQEAgLTM4OSw4ICs0NzksOCBAQCB0aGF0IGZvcm0g c2hvdWxkIGJlIGRpc3BsYXllZC4iKQogICAgICAgICAgICIpIgogICAgICAgICAgICJcXCk/IiAp KQogCi07OyBVc2VkIHRvIHN0b3JlIHRoZSBjdXJyZW50IHRva2VuIGFuZCB0aGUgd2hvbGUgdG9r ZW4gbGlzdCBkdXJpbmcgcGFyc2luZy4KLTs7IE9ubHkgYm91bmQgZHluYW1pY2FsbHkuCis7OyBT dG9yZSB0aGUgY3VycmVudCB0b2tlbiBhbmQgdGhlIHdob2xlIHRva2VuIGxpc3QgZHVyaW5nIHBh cnNpbmcuCis7OyBCb3VuZCBkeW5hbWljYWxseS4KIChkZWZ2YXIgaGlmLXRva2VuKQogKGRlZnZh ciBoaWYtdG9rZW4tbGlzdCkKIApAQCAtNDYzLDIzICs1NTMsMjMgQEAgdGhhdCBmb3JtIHNob3Vs ZCBiZSBkaXNwbGF5ZWQuIikKICAgICAoc2V0cSBoaWYtc2ltcGxlLXRva2VuLW9ubHkgdCkKICAg ICAod2l0aC1zeW50YXgtdGFibGUgaGlkZS1pZmRlZi1zeW50YXgtdGFibGUKICAgICAgIChzYXZl LWV4Y3Vyc2lvbgotCShnb3RvLWNoYXIgc3RhcnQpCi0JKHdoaWxlIChwcm9nbiAoZm9yd2FyZC1j b21tZW50IChwb2ludC1tYXgpKSAoPCAocG9pbnQpIGVuZCkpCi0JICA7OyAobWVzc2FnZSAiZXhw ci1zdGFydCA9ICVkIiBleHByLXN0YXJ0KSAoc2l0LWZvciAxKQotCSAgKGNvbmQKLQkgICAoKGxv b2tpbmctYXQgIlxcXFxcbiIpCi0JICAgIChmb3J3YXJkLWNoYXIgMikpCisgICAgICAgIChnb3Rv LWNoYXIgc3RhcnQpCisgICAgICAgICh3aGlsZSAocHJvZ24gKGZvcndhcmQtY29tbWVudCAocG9p bnQtbWF4KSkgKDwgKHBvaW50KSBlbmQpKQorICAgICAgICAgIDs7IChtZXNzYWdlICJleHByLXN0 YXJ0ID0gJWQiIGV4cHItc3RhcnQpIChzaXQtZm9yIDEpCisgICAgICAgICAgKGNvbmQKKyAgICAg ICAgICAgKChsb29raW5nLWF0ICJcXFxcXG4iKQorICAgICAgICAgICAgKGZvcndhcmQtY2hhciAy KSkKIAogICAgICAgICAgICAoKGxvb2tpbmctYXQgaGlmLXN0cmluZy1saXRlcmFsLXJlZ2V4cCkK ICAgICAgICAgICAgIChwdXNoIChzdWJzdHJpbmctbm8tcHJvcGVydGllcyAobWF0Y2gtc3RyaW5n IDEpKSB0b2tlbi1saXN0KQogICAgICAgICAgICAgKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKSkK IAotCSAgICgobG9va2luZy1hdCBoaWYtdG9rZW4tcmVnZXhwKQorICAgICAgICAgICAoKGxvb2tp bmctYXQgaGlmLXRva2VuLXJlZ2V4cCkKICAgICAgICAgICAgIChsZXQgKCh0b2tlbiAoYnVmZmVy LXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2lu dCkgKG1hdGNoLWVuZCAwKSkpKQotCSAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkKLQkg ICAgICA7OyAobWVzc2FnZSAidG9rZW46ICVzIiB0b2tlbikgKHNpdC1mb3IgMSkKLQkgICAgICAo cHVzaAorICAgICAgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpCisgICAgICAgICAg ICAgIDs7IChtZXNzYWdlICJ0b2tlbjogJXMiIHRva2VuKSAoc2l0LWZvciAxKQorICAgICAgICAg ICAgICAocHVzaAogICAgICAgICAgICAgICAgKG9yIChjZHIgKGFzc29jIHRva2VuIGhpZi10b2tl bi1hbGlzdCkpCiAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctZXF1YWwgdG9rZW4gImRl ZmluZWQiKSAnaGlmLWRlZmluZWQpCiAgICAgICAgICAgICAgICAgICAgOzsgVE9ETzoKQEAgLTQ5 OCw3ICs1ODgsOSBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogICAgICAgICAg ICAgICAgICAgICAgKHNldHEgaGlmLXNpbXBsZS10b2tlbi1vbmx5IG5pbCkpKQogICAgICAgICAg ICAgICAgdG9rZW4tbGlzdCkpKQogCi0JICAgKHQgKGVycm9yICJCYWQgI2lmIGV4cHJlc3Npb246 ICVzIiAoYnVmZmVyLXN0cmluZykpKSkpKSkKKyAgICAgICAgICAgKChsb29raW5nLWF0ICJcciIp IDsgU29tZXRpbWVzIE1TLVdpbmRvd3MgdXNlciB3aWxsIGxlYXZlIENSIGluCisgICAgICAgICAg ICAoZm9yd2FyZC1jaGFyIDEpKSA7ICB0aGUgc291cmNlIGNvZGUuIExldCdzIGRvbid0IHN0dWNr IGhlcmUuCisgICAgICAgICAgICh0IChlcnJvciAiQmFkICNpZiBleHByZXNzaW9uOiAlcyIgKGJ1 ZmZlci1zdHJpbmcpKSkpKSkpCiAKICAgICAobnJldmVyc2UgdG9rZW4tbGlzdCkpKQogCkBAIC01 OTQsOSArNjg2LDkgQEAgc3Vic2l0aXR1dGVkIgogCiAgICAgICAgICAgKChzZXRxIHJlcCAoaGlm LWxvb2t1cCB0b2spKQogICAgICAgICAgICAoaWYgKGFuZCAobGlzdHAgcmVwKQotICAgICAgICAg ICAgICAgICAgICAoZXEgKGNhciByZXApICdoaWYtZGVmaW5lLW1hY3JvKSkgOzsgYSBkZWZpbmVk IG1hY3JvCisgICAgICAgICAgICAgICAgICAgIChlcSAoY2FyIHJlcCkgJ2hpZi1kZWZpbmUtbWFj cm8pKSA7IGEgZGVmaW5lZCBtYWNybwogICAgICAgICAgICAgICAgOzsgUmVjdXJzaXZlbHkgZXhw YW5kIGl0Ci0gICAgICAgICAgICAgICAoaWYgKGNhZHIgcmVwKSA7OyBBcmd1bWVudCBsaXN0IGlz IG5vdCBuaWwKKyAgICAgICAgICAgICAgIChpZiAoY2FkciByZXApIDsgQXJndW1lbnQgbGlzdCBp cyBub3QgbmlsCiAgICAgICAgICAgICAgICAgICAgKGlmIChub3QgKGVxIChjYXIgcmVtYWlucykg J2hpZi1scGFyZW4pKQogICAgICAgICAgICAgICAgICAgICAgICA7OyBObyBhcmd1bWVudCwgbm8g aW52b2NhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICB0b2sKQEAgLTYxNiw3ICs3MDgsNyBA QCBzdWJzaXRpdHV0ZWQiCiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkpCiAgICAgICAg ICAgICAgICAgIDs7IEFyZ3VtZW50IGxpc3QgaXMgbmlsLCBkaXJlY3QgZXhwYW5zaW9uCiAgICAg ICAgICAgICAgICAgIChzZXRxIHJlcCAoaGlmLWV4cGFuZC10b2tlbi1saXN0Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNhZGRyIHJlcCkgOzsgTWFjcm8ncyB0b2tlbiBsaXN0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNhZGRyIHJlcCkgOyBNYWNybydzIHRva2VuIGxpc3QK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2sgZXhwYW5kX2xpc3QpKQogICAgICAgICAg ICAgICAgICA7OyBSZXBsYWNlIGFsbCByZW1haW5pbmcgcmVmZXJlbmNlcyBpbW1lZGlhdGVseQog ICAgICAgICAgICAgICAgICAoc2V0cSByZW1haW5zIChzdWJzdGl0dXRlIHRvayByZXAgcmVtYWlu cykpCkBAIC02MjcsMTIgKzcxOSwxMiBAQCBzdWJzaXRpdHV0ZWQiCiAgICAgICAgICAgOztbMjAx My0xMC0yMiAxNjowNjoxMiArMDgwMF0gTXVzdCBrZWVwIHRoZSB0b2tlbiwgcmVtb3ZpbmcKICAg ICAgICAgICA7OyB0aGlzIHRva2VuIG1pZ2h0IHJlc3VsdHMgaW4gYW4gaW5jb21wbGV0ZSBleHBy ZXNzaW9uIHRoYXQKICAgICAgICAgICA7OyBjYW5ub3QgYmUgcGFyc2VkIGZ1cnRoZXIuCi0gICAg ICAgICAgOzsoKD0gMSAoaGlmLWRlZmluZWQgdG9rKSkgOzsgZGVmaW5lZCAoaGlmLWRlZmluZWQg dG9rKT0xLAorICAgICAgICAgIDs7KCg9IDEgKGhpZi1kZWZpbmVkIHRvaykpIDsgZGVmaW5lZCAo aGlmLWRlZmluZWQgdG9rKT0xLAogICAgICAgICAgIDs7ICA7O2J1dCBlbXB0eSAoaGlmLWxvb2t1 cCB0b2spPW5pbCwgdGh1cyByZW1vdmUgdGhpcyB0b2tlbgogICAgICAgICAgIDs7IChzZXRxIHJl bWFpbnMgKGRlbGV0ZSB0b2sgcmVtYWlucykpCiAgICAgICAgICAgOzsgbmlsKQogCi0gICAgICAg ICAgKHQgOzsgVXN1YWwgSURzCisgICAgICAgICAgKHQgOyBVc3VhbCBJRHMKICAgICAgICAgICAg dG9rKSkKIAogICAgICAgICAgZXhwYW5kZWQpKQpAQCAtNjU0LDI4ICs3NDYsMjggQEAgaXMgYXBw bGllZCB3aGVuIGludm9raW5nIG1hY3JvcyB0byBwcmV2ZW50IHNlbGYtcmVmZXJlbmNpbmcgbWFj cm9zLiIKICAgIlBhcnNlIGFuIGV4cHJsaXN0OiBleHByIHsgJywnIGV4cHJ9IgogICAobGV0ICgo cmVzdWx0IChoaWYtZXhwcikpKQogICAgIChpZiAoZXEgaGlmLXRva2VuICdoaWYtY29tbWEpCi0J KGxldCAoKHRlbXAgKGxpc3QgcmVzdWx0KSkpCi0JICAod2hpbGUKLQkgICAgKHByb2duCi0JICAg ICAgKGhpZi1uZXh0dG9rZW4pCi0JICAgICAgKHB1c2ggKGhpZi1leHByKSB0ZW1wKQotCSAgICAg IChlcSBoaWYtdG9rZW4gJ2hpZi1jb21tYSkpKQotCSAgKGNvbnMgJ2hpZi1jb21tYSAobnJldmVy c2UgdGVtcCkpKQorICAgICAgICAobGV0ICgodGVtcCAobGlzdCByZXN1bHQpKSkKKyAgICAgICAg ICAod2hpbGUKKyAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAoaGlmLW5leHR0b2tl bikKKyAgICAgICAgICAgICAgKHB1c2ggKGhpZi1leHByKSB0ZW1wKQorICAgICAgICAgICAgICAo ZXEgaGlmLXRva2VuICdoaWYtY29tbWEpKSkKKyAgICAgICAgICAoY29ucyAnaGlmLWNvbW1hIChu cmV2ZXJzZSB0ZW1wKSkpCiAgICAgICByZXN1bHQpKSkKIAogKGRlZnVuIGhpZi1leHByICgpCiAg ICJQYXJzZSBhbiBleHByZXNzaW9uIGFzIGZvdW5kIGluICNpZi4KICAgICAgICBleHByIDogb3It ZXhwciB8IG9yLWV4cHIgJz8nIGV4cHIgJzonIGV4cHIuIgogICAobGV0ICgocmVzdWx0IChoaWYt b3ItZXhwcikpCi0JbWlkZGxlKQorICAgICAgICBtaWRkbGUpCiAgICAgKHdoaWxlIChlcSBoaWYt dG9rZW4gJ2hpZi1jb25kaXRpb25hbCkKICAgICAgIChoaWYtbmV4dHRva2VuKQogICAgICAgKHNl dHEgbWlkZGxlIChoaWYtZXhwcikpCiAgICAgICAoaWYgKGVxIGhpZi10b2tlbiAnaGlmLWNvbG9u KQotCSAgKHByb2duCi0JICAgIChoaWYtbmV4dHRva2VuKQotCSAgICAoc2V0cSByZXN1bHQgKGxp c3QgJ2hpZi1jb25kaXRpb25hbCByZXN1bHQgbWlkZGxlIChoaWYtZXhwcikpKSkKLQkoZXJyb3Ig IkVycm9yOiB1bmV4cGVjdGVkIHRva2VuOiAlcyIgaGlmLXRva2VuKSkpCisgICAgICAgICAgKHBy b2duCisgICAgICAgICAgICAoaGlmLW5leHR0b2tlbikKKyAgICAgICAgICAgIChzZXRxIHJlc3Vs dCAobGlzdCAnaGlmLWNvbmRpdGlvbmFsIHJlc3VsdCBtaWRkbGUgKGhpZi1leHByKSkpKQorICAg ICAgICAoZXJyb3IgIkVycm9yOiB1bmV4cGVjdGVkIHRva2VuOiAlcyIgaGlmLXRva2VuKSkpCiAg ICAgcmVzdWx0KSkKIAogKGRlZnVuIGhpZi1vci1leHByICgpCkBAIC03MjEsNyArODEzLDcgQEAg aXMgYXBwbGllZCB3aGVuIGludm9raW5nIG1hY3JvcyB0byBwcmV2ZW50IHNlbGYtcmVmZXJlbmNp bmcgbWFjcm9zLiIKIChkZWZ1biBoaWYtZXEtZXhwciAoKQogICAiUGFyc2UgYW4gZXEtZXhwciA6 IGNvbXAgfCBlcS1leHByIGA9PSd8YCE9JyBjb21wLiIKICAgKGxldCAoKHJlc3VsdCAoaGlmLWNv bXAtZXhwcikpCi0JKGVxLXRva2VuIG5pbCkpCisgICAgICAgIChlcS10b2tlbiBuaWwpKQogICAg ICh3aGlsZSAobWVtcSBoaWYtdG9rZW4gJyhoaWYtZXF1YWwgaGlmLW5vdGVxdWFsKSkKICAgICAg IChzZXRxIGVxLXRva2VuIGhpZi10b2tlbikKICAgICAgIChoaWYtbmV4dHRva2VuKQpAQCAtNzY0 LDcgKzg1Niw3IEBAIGlzIGFwcGxpZWQgd2hlbiBpbnZva2luZyBtYWNyb3MgdG8gcHJldmVudCBz ZWxmLXJlZmVyZW5jaW5nIG1hY3Jvcy4iCiAgICJQYXJzZSBhbiBleHByZXNzaW9uIHdpdGggKiwv LCUuCiAgICAgICAgbXVsZGl2IDogZmFjdG9yIHwgbXVsZGl2ICcqfC98JScgZmFjdG9yLiIKICAg KGxldCAoKHJlc3VsdCAoaGlmLWZhY3RvcikpCi0JKG1hdGgtb3AgbmlsKSkKKyAgICAgICAgKG1h dGgtb3AgbmlsKSkKICAgICAod2hpbGUgKG1lbXEgaGlmLXRva2VuICcoaGlmLW11bHRpcGx5IGhp Zi1kaXZpZGUgaGlmLW1vZHVsbykpCiAgICAgICAoc2V0cSBtYXRoLW9wIGhpZi10b2tlbikKICAg ICAgIChoaWYtbmV4dHRva2VuKQpAQCAtNzg3LDIwICs4NzksMjAgQEAgaXMgYXBwbGllZCB3aGVu IGludm9raW5nIG1hY3JvcyB0byBwcmV2ZW50IHNlbGYtcmVmZXJlbmNpbmcgbWFjcm9zLiIKICAg ICAoaGlmLW5leHR0b2tlbikKICAgICAobGV0ICgocmVzdWx0IChoaWYtZXhwcmxpc3QpKSkKICAg ICAgIChpZiAobm90IChlcSBoaWYtdG9rZW4gJ2hpZi1ycGFyZW4pKQotCSAgKGVycm9yICJCYWQg dG9rZW4gaW4gcGFyZW50aGVzaXplZCBleHByZXNzaW9uOiAlcyIgaGlmLXRva2VuKQotCShoaWYt bmV4dHRva2VuKQotCXJlc3VsdCkpKQorICAgICAgICAgIChlcnJvciAiQmFkIHRva2VuIGluIHBh cmVudGhlc2l6ZWQgZXhwcmVzc2lvbjogJXMiIGhpZi10b2tlbikKKyAgICAgICAgKGhpZi1uZXh0 dG9rZW4pCisgICAgICAgIHJlc3VsdCkpKQogCiAgICAoKGVxIGhpZi10b2tlbiAnaGlmLWRlZmlu ZWQpCiAgICAgKGhpZi1uZXh0dG9rZW4pCiAgICAgKGxldCAoKHBhcmVuICh3aGVuIChlcSBoaWYt dG9rZW4gJ2hpZi1scGFyZW4pIChoaWYtbmV4dHRva2VuKSB0KSkKLQkgIChpZGVudCBoaWYtdG9r ZW4pKQorICAgICAgICAgIChpZGVudCBoaWYtdG9rZW4pKQogICAgICAgKGlmIChtZW1xIGhpZi10 b2tlbiAnKG9yIGFuZCBub3QgaGlmLWRlZmluZWQgaGlmLWxwYXJlbiBoaWYtcnBhcmVuKSkKLQkg IChlcnJvciAiRXJyb3I6IHVuZXhwZWN0ZWQgdG9rZW46ICVzIiBoaWYtdG9rZW4pKQorICAgICAg ICAgIChlcnJvciAiRXJyb3I6IHVuZXhwZWN0ZWQgdG9rZW46ICVzIiBoaWYtdG9rZW4pKQogICAg ICAgKHdoZW4gcGFyZW4KLQkoaGlmLW5leHR0b2tlbikKKyAgICAgICAgKGhpZi1uZXh0dG9rZW4p CiAgICAgICAgICh1bmxlc3MgKGVxIGhpZi10b2tlbiAnaGlmLXJwYXJlbikKLQkgIChlcnJvciAi RXJyb3I6IGV4cGVjdGVkIFwiKVwiIGFmdGVyIGlkZW50aWZpZXIiKSkpCisgICAgICAgICAgKGVy cm9yICJFcnJvcjogZXhwZWN0ZWQgXCIpXCIgYWZ0ZXIgaWRlbnRpZmllciIpKSkKICAgICAgICho aWYtbmV4dHRva2VuKQogICAgICAgYChoaWYtZGVmaW5lZCAocXVvdGUgLGlkZW50KSkpKQogCkBA IC04MTMsNyArOTA1LDcgQEAgaXMgYXBwbGllZCB3aGVuIGludm9raW5nIG1hY3JvcyB0byBwcmV2 ZW50IHNlbGYtcmVmZXJlbmNpbmcgbWFjcm9zLiIKICAgICgobWVtcSBoaWYtdG9rZW4gJyhoaWYt bWludXMgaGlmLXBsdXMpKQogICAgIChsaXN0IChwcm9nMSBoaWYtdG9rZW4gKGhpZi1uZXh0dG9r ZW4pKSAwIChoaWYtZmFjdG9yKSkpCiAKLSAgICh0CQkJCQk7IGlkZW50aWZpZXIKKyAgICh0ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IGlkZW50aWZpZXIKICAgICAobGV0ICgo aWRlbnQgaGlmLXRva2VuKSkKICAgICAgIChoaWYtbmV4dHRva2VuKQogICAgICAgKGlmIChlcSBo aWYtdG9rZW4gJ2hpZi1scGFyZW4pCkBAIC04MjIsNyArOTE0LDcgQEAgaXMgYXBwbGllZCB3aGVu IGludm9raW5nIG1hY3JvcyB0byBwcmV2ZW50IHNlbGYtcmVmZXJlbmNpbmcgbWFjcm9zLiIKIAog KGRlZnVuIGhpZi1nZXQtYXJndW1lbnQtbGlzdCAoaWRlbnQpCiAgIChsZXQgKChuZXN0IDApCi0g ICAgICAgIChwYXJtbGlzdCBuaWwpIDs7IEEgInRva2VuIiBsaXN0IG9mIHBhcmFtZXRlcnMsIHdp bGwgbGF0ZXIgYmUgcGFyc2VkCisgICAgICAgIChwYXJtbGlzdCBuaWwpIDsgQSAidG9rZW4iIGxp c3Qgb2YgcGFyYW1ldGVycywgd2lsbCBsYXRlciBiZSBwYXJzZWQKICAgICAgICAgKHBhcm0gbmls KSkKIAogICAgICh3aGlsZSAob3IgKG5vdCAoZXEgKGhpZi1uZXh0dG9rZW4pICdoaWYtcnBhcmVu KSkKQEAgLTg0MCw4ICs5MzIsOCBAQCBpcyBhcHBsaWVkIHdoZW4gaW52b2tpbmcgbWFjcm9zIHRv IHByZXZlbnQgc2VsZi1yZWZlcmVuY2luZyBtYWNyb3MuIgogICAgICAgICAoc2V0cSBwYXJtIG5p bCkpKQogICAgICAgKHB1c2ggaGlmLXRva2VuIHBhcm0pKQogCi0gICAgKHB1c2ggKG5yZXZlcnNl IHBhcm0pIHBhcm1saXN0KSA7OyBPa2F5IGV2ZW4gaWYgcGFybSBpcyBuaWwKLSAgICAoaGlmLW5l eHR0b2tlbikgOzsgRHJvcCB0aGUgaGlmLXJwYXJlbiwgZ2V0IG5leHQgdG9rZW4KKyAgICAocHVz aCAobnJldmVyc2UgcGFybSkgcGFybWxpc3QpIDsgT2theSBldmVuIGlmIFBBUk0gaXMgbmlsCisg ICAgKGhpZi1uZXh0dG9rZW4pIDsgRHJvcCB0aGUgYGhpZi1ycGFyZW4nLCBnZXQgbmV4dCB0b2tl bgogICAgIChucmV2ZXJzZSBwYXJtbGlzdCkpKQogCiAoZGVmdW4gaGlmLXBsYWNlLW1hY3JvLWlu dm9jYXRpb24gKGlkZW50KQpAQCAtOTA0LDggKzk5Niw4IEBAIHByZXByb2Nlc3NpbmcgdG9rZW4u IgogKGRlZnVuIGhpZi1tYXRoaWZ5ICh2YWwpCiAgICJUcmVhdCBWQUwgYXMgYSBudW1iZXI6IGlm IGl0J3MgdCBvciBuaWwsIHVzZSAxIG9yIDAuIgogICAoY29uZCAoKGVxIHZhbCB0KSAxKQotCSgo bnVsbCB2YWwpIDApCi0JKHQgdmFsKSkpCisgICAgICAgICgobnVsbCB2YWwpIDApCisgICAgICAg ICh0IHZhbCkpKQogCiAoZGVmdW4gaGlmLWNvbmRpdGlvbmFsIChhIGIgYykKICAgKGlmIChub3Qg KHplcm9wIChoaWYtbWF0aGlmeSBhKSkpIChoaWYtbWF0aGlmeSBiKSAoaGlmLW1hdGhpZnkgYykp KQpAQCAtOTU1LDcgKzEwNDcsNyBAQCBwcmVwcm9jZXNzaW5nIHRva2VuLiIKIAogCiAoZGVmdW4g aGlmLWNvbW1hICgmcmVzdCBleHByKQotICAiRXZhbHVhdGUgYSBsaXN0IG9mIGV4cHIsIHJldHVy biB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGl0ZW0uIgorICAiRXZhbHVhdGUgYSBsaXN0IG9mIEVY UFIsIHJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBsYXN0IGl0ZW0uIgogICAobGV0ICgocmVzdWx0 IG5pbCkpCiAgICAgKGRvbGlzdCAoZSBleHByKQogICAgICAgKGlnbm9yZS1lcnJvcnMKQEAgLTk2 Myw3ICsxMDU1LDcgQEAgcHJlcHJvY2Vzc2luZyB0b2tlbi4iCiAgICAgcmVzdWx0KSkKIAogKGRl ZnVuIGhpZi10b2tlbi1zdHJpbmdpZmljYXRpb24gKGwpCi0gICJTY2FuIHRva2VuIGxpc3QgZm9y ICdoaWYtc3RyaW5naWZ5JyAoJyMnKSB0b2tlbiBhbmQgc3RyaW5naWZ5IHRoZSBuZXh0CisgICJT Y2FuIHRva2VuIGxpc3QgZm9yIGBoaWYtc3RyaW5naWZ5JyAoJyMnKSB0b2tlbiBhbmQgc3RyaW5n aWZ5IHRoZSBuZXh0CiB0b2tlbi4iCiAgIChsZXQgKHJlc3VsdCkKICAgICAod2hpbGUgbApAQCAt OTc5LDcgKzEwNzEsNyBAQCB0b2tlbi4iCiAgICAgKG5yZXZlcnNlIHJlc3VsdCkpKQogCiAoZGVm dW4gaGlmLXRva2VuLWNvbmNhdGVuYXRpb24gKGwpCi0gICJTY2FuIHRva2VuIGxpc3QgZm9yICdo aWYtdG9rZW4tY29uY2F0JyAoJyMjJykgdG9rZW4gYW5kIGNvbmNhdGVuYXRlIHR3bworICAiU2Nh biB0b2tlbiBsaXN0IGZvciBgaGlmLXRva2VuLWNvbmNhdCcgKCcjIycpIHRva2VuIGFuZCBjb25j YXRlbmF0ZSB0d28KIHRva2Vucy4iCiAgIChsZXQgKChwcmV2IG5pbCkKICAgICAgICAgcmVzdWx0 KQpAQCAtMTAxNCw3ICsxMTA2LDYgQEAgdG9rZW5zLiIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjZGRyIFNBKSkpCiAgICAgICAgICAoZm9ybWFsLXBhcm1zICAgICAgICAg KGFuZCBtYWNybyAoY2FyIG1hY3JvKSkpCiAgICAgICAgICAobWFjcm8tYm9keSAgICAgICAgICAg KGFuZCBtYWNybyAoY2FkciBtYWNybykpKQotICAgICAgICAgKGhpZGUtaWZkZWYtbG9jYWwtZW52 IG5pbCkgOyBkeW5hbWljIGJpbmRpbmcgbG9jYWwgdGFibGUKICAgICAgICAgIGFjdHVhbC1jb3Vu dAogICAgICAgICAgZm9ybWFsLWNvdW50CiAgICAgICAgICBhY3R1YWwKQEAgLTEwMjMsMTAgKzEx MTQsMTAgQEAgdG9rZW5zLiIKIAogICAgICh3aGVuIChhbmQgYWN0dWFsLXBhcm1zIGZvcm1hbC1w YXJtcyBtYWNyby1ib2R5KQogICAgICAgOzsgRm9yIGVhY2ggYWN0dWFsIHBhcmFtZXRlciwgZXZh bHVhdGUgZWFjaCBvbmUgYW5kIGFzc29jaWF0ZSBpdAotICAgICAgOzsgd2l0aCB0aGUgYXNzb2Np YXRlZCBhY3R1YWwgcGFyYW1ldGVyLCBwdXQgaXQgaW50byBsb2NhbCB0YWJsZSBhbmQgZmluYWxs eQorICAgICAgOzsgd2l0aCBhbiBhY3R1YWwgcGFyYW1ldGVyLCBwdXQgaXQgaW50byBsb2NhbCB0 YWJsZSBhbmQgZmluYWxseQogICAgICAgOzsgZXZhbHVhdGUgdGhlIG1hY3JvIGJvZHkuCiAgICAg ICAoaWYgKHNldHEgZXRjIChlcSAoY2FyIGZvcm1hbC1wYXJtcykgJ2hpZi1ldGMpKQotICAgICAg ICAgIDs7IFRha2UgY2FyZSBvZiAnaGlmLWV0YyBmaXJzdC4gUHJlZml4ICdoaWYtY29tbWEgYmFj ayBpZiBuZWVkZWQuCisgICAgICAgICAgOzsgVGFrZSBjYXJlIG9mIGBoaWYtZXRjJyBmaXJzdC4g UHJlZml4IGBoaWYtY29tbWEnIGJhY2sgaWYgbmVlZGVkLgogICAgICAgICAgIChzZXRxIGZvcm1h bC1wYXJtcyAoY2RyIGZvcm1hbC1wYXJtcykpKQogICAgICAgKHNldHEgZm9ybWFsLWNvdW50IChs ZW5ndGggZm9ybWFsLXBhcm1zKQogICAgICAgICAgICAgYWN0dWFsLWNvdW50IChsZW5ndGggYWN0 dWFsLXBhcm1zKSkKQEAgLTEwMzcsOSArMTEyOCw5IEBAIHRva2Vucy4iCiAgICAgICAgICAgICAo b3IgZXRjCiAgICAgICAgICAgICAgICAgKGVycm9yICJUb28gbWFueSBwYXJhbWV0ZXJzIGZvciBt YWNybyAlUyIgbWFjcm8tbmFtZSkpKSkKIAotICAgICAgOzsgUGVyZm9ybSB0b2tlbiByZXBsYWNl bWVudCBvbiB0aGUgbWFjcm8tYm9keSBvbiB0aGUgcGFyYW1ldGVycworICAgICAgOzsgUGVyZm9y bSB0b2tlbiByZXBsYWNlbWVudCBvbiB0aGUgTUFDUk8tQk9EWSB3aXRoIHRoZSBwYXJhbWV0ZXJz CiAgICAgICAod2hpbGUgKHNldHEgZm9ybWFsIChwb3AgZm9ybWFsLXBhcm1zKSkKLSAgICAgICAg OzsgUHJldmVudCByZXBldGl0aXZlIHN1YnN0aXR1dGF0aW9uLCB0aHVzIGNhbm5vdCB1c2UgJ3N1 YnN0JworICAgICAgICA7OyBQcmV2ZW50IHJlcGV0aXRpdmUgc3Vic3RpdHV0YXRpb24sIHRodXMg Y2Fubm90IHVzZSBgc3Vic3QnCiAgICAgICAgIDs7IGZvciBleGFtcGxlOgogICAgICAgICA7OyAj ZGVmaW5lIG1hYyhhLGIpIChhK2IpCiAgICAgICAgIDs7ICNkZWZpbmUgdGVzdG1hYyBtYWMoYix5 KQpAQCAtMTA1MSw3ICsxMTQyLDcgQEAgdG9rZW5zLiIKICAgICAgICAgOzsgMi4gZm9ybWFsIHBh cm0gIzIgJ2InIHJlcGxhY2VkIGJ5IGFjdHVhbCBwYXJtICd5JywgdGh1cyAoYitiKQogICAgICAg ICA7OyAgICBiZWNvbWVzICh5K3kpLgogICAgICAgICAoc2V0cSBtYWNyby1ib2R5Ci0gICAgICAg ICAgICAgIDs7IFVubGlrZSAnc3Vic3QnLCAnc3Vic3RpdHV0ZScgcmVwbGFjZSBvbmx5IHRoZSB0 b3AgbGV2ZWwKKyAgICAgICAgICAgICAgOzsgVW5saWtlIGBzdWJzdCcsIGBzdWJzdGl0dXRlJyBy ZXBsYWNlIG9ubHkgdGhlIHRvcCBsZXZlbAogICAgICAgICAgICAgICA7OyBpbnN0ZWFkIG9mIHRo ZSB3aG9sZSB0cmVlOyBtb3JlIGltcG9ydGFudGx5LCBpdCdzIG5vdAogICAgICAgICAgICAgICA7 OyBkZXN0cnVjdGl2ZS4KICAgICAgICAgICAgICAgKHN1YnN0aXR1dGUgKGlmIChhbmQgZXRjIChu dWxsIGZvcm1hbC1wYXJtcykpCkBAIC0xMDc4LDcgKzExNjksNyBAQCBmaW5hbGx5IGludm9rZSB0 aGUgbWFjcm8uIgogOzs7LS0tLS0tLS0tLS0gZW5kIG9mIHBhcnNlciAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogCiAKLShkZWZ1biBoaWYtY2Fub25pY2FsaXplLXRva2VucyAocmVnZXhwKSA7OyBm b3IgZGVidWdnaW5nCisoZGVmdW4gaGlmLWNhbm9uaWNhbGl6ZS10b2tlbnMgKHJlZ2V4cCkgOyBG b3IgZGVidWdnaW5nCiAgICJSZXR1cm4gdGhlIGV4cGFuZGVkIHJlc3VsdCBvZiB0aGUgc2Nhbm5l ZCB0b2tlbnMuIgogICAoc2F2ZS1leGN1cnNpb24KICAgICAocmUtc2VhcmNoLWZvcndhcmQgcmVn ZXhwKQpAQCAtMTEwNSw3ICsxMTk2LDcgQEAgaXRzIGNvbmRpdGlvbi4iCiAgICAgICAgICAgICAg KGRlZmluZWQgKHN0cmluZy1tYXRjaCBoaWYtaWZ4ZGVmLXJlZ2V4cCBjdXJyLXJlZ2V4cCkpCiAg ICAgICAgICAgICAgKG5lZ2F0ZSAoYW5kIGRlZmluZWQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cmluZz0gKG1hdGNoLXN0cmluZyAyIGN1cnItcmVnZXhwKSAibiIpKSkKLSAgICAgICAg ICAgICAoaGlmLXNpbXBsZS10b2tlbi1vbmx5IG5pbCkgOzsgRHluYW1pYyBiaW5kaW5nIGZvciBg aGlmLXRva2VuaXplJworICAgICAgICAgICAgIChoaWYtc2ltcGxlLXRva2VuLW9ubHkgbmlsKSA7 IER5bmFtaWMgYmluZGluZyBmb3IgYGhpZi10b2tlbml6ZScKICAgICAgICAgICAgICAodG9rZW5z IChoaWYtdG9rZW5pemUgKHBvaW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAocHJvZ24gKGhpZi1lbmQtb2YtbGluZSkgKHBvaW50KSkpKSkKICAgICAgICAgKGlmIGRlZmlu ZWQKQEAgLTExMzksNyArMTIzMCw3IEBAIGl0cyBjb25kaXRpb24uIgogICAgICAoYmVnaW5uaW5n LW9mLWxpbmUpKSkKIAogCi0oZGVmdW4gaGlmLWxvb2tpbmctYXQtaWZYICgpCQk7OyBTaG91bGQg ZXZlbnR1YWxseSBzZWUgI2lmCisoZGVmdW4gaGlmLWxvb2tpbmctYXQtaWZYICgpICAgICAgICAg ICAgOyBTaG91bGQgZXZlbnR1YWxseSBzZWUgI2lmCiAgIChsb29raW5nLWF0IGhpZi1pZngtcmVn ZXhwKSkKIChkZWZ1biBoaWYtbG9va2luZy1hdC1lbmRpZiAoKQogICAobG9va2luZy1hdCBoaWYt ZW5kaWYtcmVnZXhwKSkKQEAgLTExNTUsMTYgKzEyNDYsMTYgQEAgaXRzIGNvbmRpdGlvbi4iCiAg IDs7IChtZXNzYWdlICJoaWYtaWZkZWYtdG8tZW5kaWYgYXQgJWQiIChwb2ludCkpIChzaXQtZm9y IDEpCiAgIChoaWYtZmluZC1uZXh0LXJlbGV2YW50KQogICAoY29uZCAoKGhpZi1sb29raW5nLWF0 LWlmWCkKLQkgKGhpZi1pZmRlZi10by1lbmRpZikgOyBmaW5kIGVuZGlmIG9mIG5lc3RlZCBpZgot CSAoaGlmLWlmZGVmLXRvLWVuZGlmKSkgOyBmaW5kIG91dGVyIGVuZGlmIG9yIGVsc2UKKyAgICAg ICAgIChoaWYtaWZkZWYtdG8tZW5kaWYpIDsgRmluZCBlbmRpZiBvZiBuZXN0ZWQgaWYKKyAgICAg ICAgIChoaWYtaWZkZWYtdG8tZW5kaWYpKSA7IEZpbmQgb3V0ZXIgZW5kaWYgb3IgZWxzZQogICAg ICAgICAoKGhpZi1sb29raW5nLWF0LWVsaWYpCiAgICAgICAgICAoaGlmLWlmZGVmLXRvLWVuZGlm KSkKLQkoKGhpZi1sb29raW5nLWF0LWVsc2UpCi0JIChoaWYtaWZkZWYtdG8tZW5kaWYpKSA7IGZp bmQgZW5kaWYgZm9sbG93aW5nIGVsc2UKLQkoKGhpZi1sb29raW5nLWF0LWVuZGlmKQotCSAnZG9u ZSkKLQkodAotCSAoZXJyb3IgIk1pc21hdGNoZWQgI2lmZGVmICNlbmRpZiBwYWlyIikpKSkKKyAg ICAgICAgKChoaWYtbG9va2luZy1hdC1lbHNlKQorICAgICAgICAgKGhpZi1pZmRlZi10by1lbmRp ZikpIDsgRmluZCBlbmRpZiBmb2xsb3dpbmcgZWxzZQorICAgICAgICAoKGhpZi1sb29raW5nLWF0 LWVuZGlmKQorICAgICAgICAgJ2RvbmUpCisgICAgICAgICh0CisgICAgICAgICAoZXJyb3IgIk1p c21hdGNoZWQgI2lmZGVmICNlbmRpZiBwYWlyIikpKSkKIAogCiAoZGVmdW4gaGlmLWVuZGlmLXRv LWlmZGVmICgpCkBAIC0xMTczLDE1ICsxMjY0LDE4IEBAIGl0cyBjb25kaXRpb24uIgogICAobGV0 ICgoc3RhcnQgKHBvaW50KSkpCiAgICAgKGhpZi1maW5kLXByZXZpb3VzLXJlbGV2YW50KQogICAg IChpZiAoPSBzdGFydCAocG9pbnQpKQotCShlcnJvciAiTWlzbWF0Y2hlZCAjaWZkZWYgI2VuZGlm IHBhaXIiKSkpCisgICAgICAgIChlcnJvciAiTWlzbWF0Y2hlZCAjaWZkZWYgI2VuZGlmIHBhaXIi KSkpCiAgIChjb25kICgoaGlmLWxvb2tpbmctYXQtZW5kaWYpCi0JIChoaWYtZW5kaWYtdG8taWZk ZWYpIDsgZmluZCBiZWdpbm5pbmcgb2YgbmVzdGVkIGlmCi0JIChoaWYtZW5kaWYtdG8taWZkZWYp KSA7IGZpbmQgYmVnaW5uaW5nIG9mIG91dGVyIGlmIG9yIGVsc2UKLQkoKGhpZi1sb29raW5nLWF0 LWVsc2UpCi0JIChoaWYtZW5kaWYtdG8taWZkZWYpKQotCSgoaGlmLWxvb2tpbmctYXQtaWZYKQot CSAnZG9uZSkKLQkodCkpKQkJCTsgbmV2ZXIgZ2V0cyBoZXJlCisgICAgICAgICAoaGlmLWVuZGlm LXRvLWlmZGVmKSA7IEZpbmQgYmVnaW5uaW5nIG9mIG5lc3RlZCBpZgorICAgICAgICAgKGhpZi1l bmRpZi10by1pZmRlZikpIDsgRmluZCBiZWdpbm5pbmcgb2Ygb3V0ZXIgaWYgb3IgZWxzZQorICAg ICAgICAoKGhpZi1sb29raW5nLWF0LWVsaWYpCisgICAgICAgICAoaGlmLWVuZGlmLXRvLWlmZGVm KSkKKyAgICAgICAgKChoaWYtbG9va2luZy1hdC1lbHNlKQorICAgICAgICAgKGhpZi1lbmRpZi10 by1pZmRlZikpCisgICAgICAgICgoaGlmLWxvb2tpbmctYXQtaWZYKQorICAgICAgICAgJ2RvbmUp CisgICAgICAgICh0CisgICAgICAgICAoZXJyb3IgIk1pc21hdGNoZWQgI2VuZGlmIikpKSkgICAg ICAgICAgICAgICAgIDsgbmV2ZXIgZ2V0cyBoZXJlCiAKIAogKGRlZnVuIGZvcndhcmQtaWZkZWYg KCZvcHRpb25hbCBhcmcpCkBAIC0xMTkzLDEyICsxMjg3LDEyIEBAIFdpdGggYXJndW1lbnQsIGRv IHRoaXMgdGhhdCBtYW55IHRpbWVzLiIKICAgICAod2hpbGUgKDwgMCBhcmcpCiAgICAgICAoc2V0 cSBhcmcgKC0gYXJnKSkKICAgICAgIChsZXQgKChzdGFydCAocG9pbnQpKSkKLQkodW5sZXNzICho aWYtbG9va2luZy1hdC1pZlgpCi0JICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkpCi0JKGlmICho aWYtbG9va2luZy1hdC1pZlgpCi0JICAgIChoaWYtaWZkZWYtdG8tZW5kaWYpCi0JICAoZ290by1j aGFyIHN0YXJ0KQotCSAgKGVycm9yICJObyBmb2xsb3dpbmcgI2lmZGVmIikpKSkpKQorICAgICAg ICAodW5sZXNzIChoaWYtbG9va2luZy1hdC1pZlgpCisgICAgICAgICAgKGhpZi1maW5kLW5leHQt cmVsZXZhbnQpKQorICAgICAgICAoaWYgKGhpZi1sb29raW5nLWF0LWlmWCkKKyAgICAgICAgICAg IChoaWYtaWZkZWYtdG8tZW5kaWYpCisgICAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKKyAgICAg ICAgICAoZXJyb3IgIk5vIGZvbGxvd2luZyAjaWZkZWYiKSkpKSkpCiAKIAogKGRlZnVuIGJhY2t3 YXJkLWlmZGVmICgmb3B0aW9uYWwgYXJnKQpAQCAtMTIxMSwxMiArMTMwNSwxMiBAQCBXaXRoIGFy Z3VtZW50LCBkbyB0aGlzIHRoYXQgbWFueSB0aW1lcy4iCiAgICAgICAoc2V0cSBhcmcgKDEtIGFy ZykpCiAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCiAgICAgICAobGV0ICgoc3RhcnQgKHBvaW50 KSkpCi0JKHVubGVzcyAoaGlmLWxvb2tpbmctYXQtZW5kaWYpCi0JICAoaGlmLWZpbmQtcHJldmlv dXMtcmVsZXZhbnQpKQotCShpZiAoaGlmLWxvb2tpbmctYXQtZW5kaWYpCi0JICAgIChoaWYtZW5k aWYtdG8taWZkZWYpCi0JICAoZ290by1jaGFyIHN0YXJ0KQotCSAgKGVycm9yICJObyBwcmV2aW91 cyAjaWZkZWYiKSkpKSkpCisgICAgICAgICh1bmxlc3MgKGhpZi1sb29raW5nLWF0LWVuZGlmKQor ICAgICAgICAgIChoaWYtZmluZC1wcmV2aW91cy1yZWxldmFudCkpCisgICAgICAgIChpZiAoaGlm LWxvb2tpbmctYXQtZW5kaWYpCisgICAgICAgICAgICAoaGlmLWVuZGlmLXRvLWlmZGVmKQorICAg ICAgICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgICAgICAgKGVycm9yICJObyBwcmV2aW91cyAj aWZkZWYiKSkpKSkpCiAKIAogKGRlZnVuIGRvd24taWZkZWYgKCkKQEAgLTEyMjUsOSArMTMxOSw5 IEBAIFdpdGggYXJndW1lbnQsIGRvIHRoaXMgdGhhdCBtYW55IHRpbWVzLiIKICAgICAobGV0ICgo c3RhcnQgKHBvaW50KSkpCiAgICAgICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkKICAgICAgIChp ZiAob3IgKGhpZi1sb29raW5nLWF0LWlmWCkgKGhpZi1sb29raW5nLWF0LWVsc2UpKQotCSAgKCkK LQkoZ290by1jaGFyIHN0YXJ0KQotCShlcnJvciAiTm8gZm9sbG93aW5nICNpZmRlZiIpKSkpCisg ICAgICAgICAgKCkKKyAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKKyAgICAgICAgKGVycm9yICJO byBmb2xsb3dpbmcgI2lmZGVmIikpKSkKIAogCiAoZGVmdW4gdXAtaWZkZWYgKCkKQEAgLTEyMzgs OSArMTMzMiw5IEBAIFdpdGggYXJndW1lbnQsIGRvIHRoaXMgdGhhdCBtYW55IHRpbWVzLiIKICAg ICAodW5sZXNzIChoaWYtbG9va2luZy1hdC1lbmRpZikKICAgICAgIChoaWYtZmluZC1wcmV2aW91 cy1yZWxldmFudCkpCiAgICAgKGlmIChoaWYtbG9va2luZy1hdC1lbmRpZikKLQkoaGlmLWVuZGlm LXRvLWlmZGVmKSkKKyAgICAgICAgKGhpZi1lbmRpZi10by1pZmRlZikpCiAgICAgICAoaWYgKD0g c3RhcnQgKHBvaW50KSkKLQkgIChlcnJvciAiTm8gcHJldmlvdXMgI2lmZGVmIikpKSkKKyAgICAg ICAgICAoZXJyb3IgIk5vIHByZXZpb3VzICNpZmRlZiIpKSkpCiAKIChkZWZ1biBuZXh0LWlmZGVm ICgmb3B0aW9uYWwgYXJnKQogICAiTW92ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0ICNp ZlgsICNlbHNlLCBvciAjZW5kaWYuCkBAIC0xMjUyLDggKzEzNDYsOCBAQCBXaXRoIGFyZ3VtZW50 LCBkbyB0aGlzIHRoYXQgbWFueSB0aW1lcy4iCiAgICAgICAoc2V0cSBhcmcgKDEtIGFyZykpCiAg ICAgICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkKICAgICAgICh3aGVuIChlb2xwKQotCShiZWdp bm5pbmctb2YtbGluZSkKLQkoZXJyb3IgIk5vIGZvbGxvd2luZyAjaWZkZWZzLCAjZWxzZXMsIG9y ICNlbmRpZnMiKSkpKSkKKyAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAoZXJy b3IgIk5vIGZvbGxvd2luZyAjaWZkZWZzLCAjZWxzZXMsIG9yICNlbmRpZnMiKSkpKSkKIAogKGRl ZnVuIHByZXZpb3VzLWlmZGVmICgmb3B0aW9uYWwgYXJnKQogICAiTW92ZSB0byB0aGUgYmVnaW5u aW5nIG9mIHRoZSBwcmV2aW91cyAjaWZYLCAjZWxzZSwgb3IgI2VuZGlmLgpAQCAtMTI2NCw5ICsx MzU4LDkgQEAgV2l0aCBhcmd1bWVudCwgZG8gdGhpcyB0aGF0IG1hbnkgdGltZXMuIgogICAgICh3 aGlsZSAoPCAwIGFyZykKICAgICAgIChzZXRxIGFyZyAoMS0gYXJnKSkKICAgICAgIChsZXQgKChz dGFydCAocG9pbnQpKSkKLQkoaGlmLWZpbmQtcHJldmlvdXMtcmVsZXZhbnQpCi0JKGlmICg9IHN0 YXJ0IChwb2ludCkpCi0JICAgIChlcnJvciAiTm8gcHJldmlvdXMgI2lmZGVmcywgI2Vsc2VzLCBv ciAjZW5kaWZzIikpKSkpKQorICAgICAgICAoaGlmLWZpbmQtcHJldmlvdXMtcmVsZXZhbnQpCisg ICAgICAgIChpZiAoPSBzdGFydCAocG9pbnQpKQorICAgICAgICAgICAgKGVycm9yICJObyBwcmV2 aW91cyAjaWZkZWZzLCAjZWxzZXMsIG9yICNlbmRpZnMiKSkpKSkpCiAKIAogOzs9PT0lJVNGJSUg cGFyc2luZyAoRW5kKSAgPT09CkBAIC0xMjc1LDI2ICsxMzY5LDI2IEBAIFdpdGggYXJndW1lbnQs IGRvIHRoaXMgdGhhdCBtYW55IHRpbWVzLiIKIDs7PT09JSVTRiUlIGhpZGUtaWZkZWYtaGlkaW5n IChTdGFydCkgID09PQogCiAKLTs7OyBBIHJhbmdlIGlzIGEgc3RydWN0dXJlIHdpdGggZm91ciBj b21wb25lbnRzOgotOzs7IEVMU0UtUAlUcnVlIGlmIHRoZXJlIHdhcyBhbiBlbHNlIGNsYXVzZSBm b3IgdGhlIGlmZGVmLgotOzs7IFNUQVJUCVRoZSBzdGFydCBvZiB0aGUgcmFuZ2UuIChiZWdpbm5p bmcgb2YgbGluZSkKLTs7OyBFTFNFCVRoZSBlbHNlIG1hcmtlciAoYmVnaW5uaW5nIG9mIGxpbmUp Ci07OzsJCQlPbmx5IHZhbGlkIGlmIEVMU0UtUCBpcyB0cnVlLgotOzs7IEVORAkJVGhlIGVuZCBv ZiB0aGUgcmFuZ2UuICAoYmVnaW5uaW5nIG9mIGxpbmUpCis7OyBBIHJhbmdlIGlzIGEgc3RydWN0 dXJlIHdpdGggZm91ciBjb21wb25lbnRzOgorOzsgU1RBUlQgICAgICAgVGhlIHN0YXJ0IG9mIHRo ZSByYW5nZS4gKGJlZ2lubmluZyBvZiBsaW5lKQorOzsgRUxTRSAgICAgICAgVGhlIGVsc2UgbWFy a2VyIChiZWdpbm5pbmcgb2YgbGluZSkKKzs7IEVORCAgICAgICAgIFRoZSBlbmQgb2YgdGhlIHJh bmdlLiAgKGJlZ2lubmluZyBvZiBsaW5lKQorOzsgRUxJRiAgICAgICAgQSBzZXF1ZW5jZSBvZiAj ZWxpZiBtYXJrZXJzIChiZWdpbm5pbmcgb2YgbGluZSkKIAotKGRlZnN1YnN0IGhpZi1tYWtlLXJh bmdlIChzdGFydCBlbmQgJm9wdGlvbmFsIGVsc2UpCi0gIChsaXN0IHN0YXJ0IGVsc2UgZW5kKSkK KyhkZWZzdWJzdCBoaWYtbWFrZS1yYW5nZSAoc3RhcnQgZW5kICZvcHRpb25hbCBlbHNlIGVsaWYp CisgIChsaXN0IHN0YXJ0IGVsc2UgZW5kIGVsaWYpKQogCiAoZGVmc3Vic3QgaGlmLXJhbmdlLXN0 YXJ0IChyYW5nZSkgKGVsdCByYW5nZSAwKSkKIChkZWZzdWJzdCBoaWYtcmFuZ2UtZWxzZSAocmFu Z2UpIChlbHQgcmFuZ2UgMSkpCiAoZGVmc3Vic3QgaGlmLXJhbmdlLWVuZCAocmFuZ2UpIChlbHQg cmFuZ2UgMikpCisoZGVmc3Vic3QgaGlmLXJhbmdlLWVsaWYgKHJhbmdlKSAoZWx0IHJhbmdlIDMp KQogCiAKIAotOzs7IEZpbmQtUmFuZ2UKLTs7OyBUaGUgd29ya2hvcnNlLCBpdCBkZWxpbWl0cyB0 aGUgI2lmIHJlZ2lvbi4gIFJlYXNvbmFibHkgc2ltcGxlOgotOzs7IFNraXAgdW50aWwgYW4gI2Vs c2Ugb3IgI2VuZGlmIGlzIGZvdW5kLCByZW1lbWJlcmluZyBwb3NpdGlvbnMuICBJZgotOzs7IGFu ICNlbHNlIHdhcyBmb3VuZCwgc2tpcCBzb21lIG1vcmUsIGxvb2tpbmcgZm9yIHRoZSB0cnVlICNl bmRpZi4KKzs7IEZpbmQtUmFuZ2UKKzs7IFRoZSB3b3JraG9yc2UsIGl0IGRlbGltaXRzIHRoZSAj aWYgcmVnaW9uLiAgUmVhc29uYWJseSBzaW1wbGU6Cis7OyBTa2lwIHVudGlsIGFuICNlbHNlIG9y ICNlbmRpZiBpcyBmb3VuZCwgcmVtZW1iZXJpbmcgcG9zaXRpb25zLiAgSWYKKzs7IGFuICNlbHNl IHdhcyBmb3VuZCwgc2tpcCBzb21lIG1vcmUsIGxvb2tpbmcgZm9yIHRoZSB0cnVlICNlbmRpZi4K IAogKGRlZnVuIGhpZi1maW5kLXJhbmdlICgpCiAgICJSZXR1cm4gYSBSYW5nZSBzdHJ1Y3R1cmUg ZGVzY3JpYmluZyB0aGUgY3VycmVudCAjaWYgcmVnaW9uLgpAQCAtMTMwMywzMiArMTM5NywzNiBA QCBQb2ludCBpcyBsZWZ0IHVuY2hhbmdlZC4iCiAgIChzYXZlLWV4Y3Vyc2lvbgogICAgIChiZWdp bm5pbmctb2YtbGluZSkKICAgICAobGV0ICgoc3RhcnQgKHBvaW50KSkKLQkgIChlbHNlIG5pbCkK LQkgIChlbmQgbmlsKSkKLSAgICAgIDs7IFBhcnQgb25lLiAgTG9vayBmb3IgZWl0aGVyICNlbmRp ZiBvciAjZWxzZS4KKyAgICAgICAgICAoZWxpZiBuaWwpCisgICAgICAgICAgKGVsc2UgbmlsKQor ICAgICAgICAgIChlbmQgbmlsKSkKKyAgICAgIDs7IFBhcnQgb25lLiAgTG9vayBmb3IgZWl0aGVy ICNlbGlmLCAjZWxzZSBvciAjZW5kaWYuCiAgICAgICA7OyBUaGlzIGxvb3AtYW5kLWEtaGFsZiBk ZWRpY2F0ZWQgdG8gRS4gRGlqa3N0cmEuCisgICAgICAod2hpbGUgKGFuZCAobm90IGVsc2UpIChu b3QgZW5kKSkKICAgICAgICh3aGlsZSAocHJvZ24KLQkgICAgICAgKGhpZi1maW5kLW5leHQtcmVs ZXZhbnQpCi0JICAgICAgIChoaWYtbG9va2luZy1hdC1pZlgpKQkJOyBTa2lwIG5lc3RlZCBpZmRl ZgotCShoaWYtaWZkZWYtdG8tZW5kaWYpKQotICAgICAgOzsgRm91bmQgZWl0aGVyIGEgI2Vsc2Ug b3IgYW4gI2VuZGlmLgotICAgICAgKGNvbmQgKChoaWYtbG9va2luZy1hdC1lbHNlKQotCSAgICAg KHNldHEgZWxzZSAocG9pbnQpKSkKLQkgICAgKHQKLQkgICAgIChzZXRxIGVuZCAocG9pbnQpKSkp IDsgKGxpbmUtZW5kLXBvc2l0aW9uKQorICAgICAgICAgICAgICAgKGhpZi1maW5kLW5leHQtcmVs ZXZhbnQpCisgICAgICAgICAgICAgICAoaGlmLWxvb2tpbmctYXQtaWZYKSkgICAgICAgICAgICA7 IFNraXAgbmVzdGVkIGlmZGVmCisgICAgICAgIChoaWYtaWZkZWYtdG8tZW5kaWYpKQorICAgICAg ICA7OyBGb3VuZCBlaXRoZXIgYSAjZWxzZSwgI2VsaWYsIG9yIGFuICNlbmRpZi4KKyAgICAgICAg KGNvbmQgKChoaWYtbG9va2luZy1hdC1lbGlmKQorICAgICAgICAgICAgICAgKHNldHEgZWxpZiAo bmNvbmMgZWxpZiAobGlzdCAocG9pbnQpKSkpKQorICAgICAgICAgICAgICAoKGhpZi1sb29raW5n LWF0LWVsc2UpCisgICAgICAgICAgICAgKHNldHEgZWxzZSAocG9pbnQpKSkKKyAgICAgICAgICAg ICh0CisgICAgICAgICAgICAgICAoc2V0cSBlbmQgKHBvaW50KSkpKSkKICAgICAgIDs7IElmIGZv dW5kICNlbHNlLCBsb29rIGZvciAjZW5kaWYuCiAgICAgICAod2hlbiBlbHNlCi0JKHdoaWxlIChw cm9nbgotCQkgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpCi0JCSAoaGlmLWxvb2tpbmctYXQtaWZY KSkJOyBTa2lwIG5lc3RlZCBpZmRlZgotCSAgKGhpZi1pZmRlZi10by1lbmRpZikpCi0JKGlmICho aWYtbG9va2luZy1hdC1lbHNlKQotCSAgICAoZXJyb3IgIkZvdW5kIHR3byBlbHNlcyBpbiBhIHJv dz8gIEJyb2tlbiEiKSkKLQkoc2V0cSBlbmQgKHBvaW50KSkpCSAgICAgICA7IChsaW5lLWVuZC1w b3NpdGlvbikKLSAgICAgIChoaWYtbWFrZS1yYW5nZSBzdGFydCBlbmQgZWxzZSkpKSkKKyAgICAg ICAgKHdoaWxlIChwcm9nbgorICAgICAgICAgICAgICAgICAoaGlmLWZpbmQtbmV4dC1yZWxldmFu dCkKKyAgICAgICAgICAgICAgICAgKGhpZi1sb29raW5nLWF0LWlmWCkpICA7IFNraXAgbmVzdGVk IGlmZGVmCisgICAgICAgICAgKGhpZi1pZmRlZi10by1lbmRpZikpCisgICAgICAgIChpZiAoaGlm LWxvb2tpbmctYXQtZWxzZSkKKyAgICAgICAgICAgIChlcnJvciAiRm91bmQgdHdvIGVsc2VzIGlu IGEgcm93PyAgQnJva2VuISIpKQorICAgICAgICAoc2V0cSBlbmQgKHBvaW50KSkpICAgICAgICAg ICAgOyAobGluZS1lbmQtcG9zaXRpb24pCisgICAgICAoaGlmLW1ha2UtcmFuZ2Ugc3RhcnQgZW5k IGVsc2UgZWxpZikpKSkKIAogCi07OzsgQSBiaXQgc2xpbXkuCis7OyBBIGJpdCBzbGlteS4KIAog KGRlZnVuIGhpZi1oaWRlLWxpbmUgKHBvaW50KQogICAiSGlkZSB0aGUgbGluZSBjb250YWluaW5n IHBvaW50LiBEb2VzIG5vdGhpbmcgaWYgYGhpZGUtaWZkZWYtbGluZXMnIGlzIG5pbC4iCkBAIC0x MzM5LDc4ICsxNDM3LDE4NCBAQCBQb2ludCBpcyBsZWZ0IHVuY2hhbmdlZC4iCiAgICAgICAgKGxp bmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocHJvZ24gKGhpZi1lbmQtb2YtbGluZSkgKHBvaW50KSkp KSkpCiAKIAotOzs7ICBIaWYtUG9zc2libHktSGlkZQotOzs7ICBUaGVyZSBhcmUgZm91ciBjYXNl cy4gIFRoZSAjaWZYIGV4cHJlc3Npb24gaXMgInRha2VuIiBpZiBpdAotOzs7ICB0aGUgaGlkZS1p ZmRlZi1ldmFsdWF0b3IgcmV0dXJucyBULiAgUHJlc3VtYWJseSwgdGhpcyBtZWFucyB0aGUgY29k ZQotOzs7ICBpbnNpZGUgdGhlICNpZmRlZiB3b3VsZCBiZSBpbmNsdWRlZCB3aGVuIHRoZSBwcm9n cmFtIHdhcwotOzs7ICBjb21waWxlZC4KLTs7OwotOzs7ICBDYXNlIDE6ICAjaWZYIHRha2VuLCBh bmQgdGhlcmUncyBhbiAjZWxzZS4KLTs7OwlUaGUgI2Vsc2UgcGFydCBtdXN0IGJlIGhpZGRlbi4g IFRoZSAjaWYgKHRoZW4pIHBhcnQgbXVzdCBiZQotOzs7CXByb2Nlc3NlZCBmb3IgbmVzdGVkICNp Zlgncy4KLTs7OyAgQ2FzZSAyOiAgI2lmWCB0YWtlbiwgYW5kIHRoZXJlJ3Mgbm8gI2Vsc2UuCi07 OzsJVGhlICNpZiBwYXJ0IG11c3QgYmUgcHJvY2Vzc2VkIGZvciBuZXN0ZWQgI2lmWCdzLgotOzs7 ICBDYXNlIDM6ICAjaWZYIG5vdCB0YWtlbiwgYW5kIHRoZXJlJ3MgYW4gI2Vsc2UuCi07OzsJVGhl ICNpZiBwYXJ0IG11c3QgYmUgaGlkZGVuLiAgVGhlICNlbHNlIHBhcnQgbXVzdCBiZSBwcm9jZXNz ZWQKLTs7Owlmb3IgbmVzdGVkICNpZnMuCi07OzsgIENhc2UgNDogICNpZlggbm90IHRha2VuLCBh bmQgdGhlcmUncyBubyAjZWxzZS4KLTs7OwlUaGUgI2lmWCBwYXJ0IG11c3QgYmUgaGlkZGVuLgot Ozs7Ci07OzsgIEZ1cnRoZXIgcHJvY2Vzc2luZyBpcyBkb25lIGJ5IG5hcnJvd2luZyB0byB0aGUg cmVsZXZhbnQgcmVnaW9uCi07OzsgIGFuZCBqdXN0IHJlY3Vyc2l2ZWx5IGNhbGxpbmcgaGlkZS1p ZmRlZi1ndXRzLgotOzs7Ci07OzsgIFdoZW4gaGlmLXBvc3NpYmx5LWhpZGUgcmV0dXJucywgcG9p bnQgaXMgYXQgdGhlIGVuZCBvZiB0aGUKLTs7OyAgcG9zc2libHktaGlkZGVuIHJhbmdlLgotCi0o ZGVmdW4gaGlmLXJlY3Vyc2Utb24gKHN0YXJ0IGVuZCkKKzs7ICBIaWYtUG9zc2libHktSGlkZQor OzsgIFRoZXJlIGFyZSBmb3VyIGNhc2VzLiAgVGhlICNpZlggZXhwcmVzc2lvbiBpcyAidGFrZW4i IGlmIGl0Cis7OyAgdGhlIGhpZGUtaWZkZWYtZXZhbHVhdG9yIHJldHVybnMgVC4gIFByZXN1bWFi bHksIHRoaXMgbWVhbnMgdGhlIGNvZGUKKzs7ICBpbnNpZGUgdGhlICNpZmRlZiB3b3VsZCBiZSBp bmNsdWRlZCB3aGVuIHRoZSBwcm9ncmFtIHdhcworOzsgIGNvbXBpbGVkLgorOzsKKzs7ICBDYXNl IDE6ICAjaWZYIHRha2VuLCBhbmQgdGhlcmUncyBhbiAjZWxzZS4KKzs7ICAgICBUaGUgI2Vsc2Ug cGFydCBtdXN0IGJlIGhpZGRlbi4gIFRoZSAjaWYgKHRoZW4pIHBhcnQgbXVzdCBiZQorOzsgICAg IHByb2Nlc3NlZCBmb3IgbmVzdGVkICNpZlgncy4KKzs7ICBDYXNlIDI6ICAjaWZYIHRha2VuLCBh bmQgdGhlcmUncyBubyAjZWxzZS4KKzs7ICAgICBUaGUgI2lmIHBhcnQgbXVzdCBiZSBwcm9jZXNz ZWQgZm9yIG5lc3RlZCAjaWZYJ3MuCis7OyAgQ2FzZSAzOiAgI2lmWCBub3QgdGFrZW4sIGFuZCB0 aGVyZSdzIGFuICNlbGlmCis7OyAgICAgVGhlICNpZiBwYXJ0IG11c3QgYmUgaGlkZGVuLCBhbmQg dGhlbiBldmFsdWF0ZQorOzsgICAgIHRoZSAjZWxpZiBjb25kaXRpb24gbGlrZSBhIG5ldyAjaWZY LgorOzsgIENhc2UgNDogICNpZlggbm90IHRha2VuLCBhbmQgdGhlcmUncyBqdXN0IGFuICNlbHNl LgorOzsgICAgIFRoZSAjaWYgcGFydCBtdXN0IGJlIGhpZGRlbi4gIFRoZSAjZWxzZSBwYXJ0IG11 c3QgYmUgcHJvY2Vzc2VkCis7OyAgICAgZm9yIG5lc3RlZCAjaWZzLgorOzsgIENhc2UgNTogICNp Zlggbm90IHRha2VuLCBhbmQgdGhlcmUncyBubyAjZWxzZS4KKzs7ICAgICBUaGUgI2lmWCBwYXJ0 IG11c3QgYmUgaGlkZGVuLgorOzsKKzs7ICBGdXJ0aGVyIHByb2Nlc3NpbmcgaXMgZG9uZSBieSBu YXJyb3dpbmcgdG8gdGhlIHJlbGV2YW50IHJlZ2lvbgorOzsgIGFuZCBqdXN0IHJlY3Vyc2l2ZWx5 IGNhbGxpbmcgaGlkZS1pZmRlZi1ndXRzLgorOzsKKzs7ICBXaGVuIGhpZi1wb3NzaWJseS1oaWRl IHJldHVybnMsIHBvaW50IGlzIGF0IHRoZSBlbmQgb2YgdGhlCis7OyAgcG9zc2libHktaGlkZGVu IHJhbmdlLgorCisoZGVmdmFyIGhpZi1yZWN1cnNlLWxldmVsIDApCisKKyhkZWZ1biBoaWYtcmVj dXJzZS1vbiAoc3RhcnQgZW5kICZvcHRpb25hbCBkb250LWdvLWVvbCkKICAgIkNhbGwgYGhpZGUt aWZkZWYtZ3V0cycgYWZ0ZXIgbmFycm93aW5nIHRvIGVuZCBvZiBTVEFSVCBsaW5lIGFuZCBFTkQg bGluZS4iCiAgIChzYXZlLWV4Y3Vyc2lvbgogICAgIChzYXZlLXJlc3RyaWN0aW9uCiAgICAgICAo Z290by1jaGFyIHN0YXJ0KQotICAgICAgKGVuZC1vZi1saW5lKQorICAgICAgKHVubGVzcyBkb250 LWdvLWVvbAorICAgICAgICAoZW5kLW9mLWxpbmUpKQogICAgICAgKG5hcnJvdy10by1yZWdpb24g KHBvaW50KSBlbmQpCi0gICAgICAoaGlkZS1pZmRlZi1ndXRzKSkpKQorICAgICAgKGxldCAoKGhp Zi1yZWN1cnNlLWxldmVsICgxKyBoaWYtcmVjdXJzZS1sZXZlbCkpKQorICAgICAgICAoaGlkZS1p ZmRlZi1ndXRzKSkpKSkKIAotKGRlZnVuIGhpZi1wb3NzaWJseS1oaWRlICgpCisoZGVmdW4gaGlm LXBvc3NpYmx5LWhpZGUgKGV4cGFuZC1yZWluY2x1c2lvbikKICAgIkNhbGxlZCBhdCAjaWZYIGV4 cHJlc3Npb24sIHRoaXMgaGlkZXMgdGhvc2UgcGFydHMgdGhhdCBzaG91bGQgYmUgaGlkZGVuLgog SXQgdXNlcyB0aGUganVkZ21lbnQgb2YgYGhpZGUtaWZkZWYtZXZhbHVhdG9yJy4iCiAgIDs7ICht ZXNzYWdlICJoaWYtcG9zc2libHktaGlkZSIpIChzaXQtZm9yIDEpCi0gIChsZXQgKCh0ZXN0ICho aWYtY2Fub25pY2FsaXplIGhpZi1pZngtcmVnZXhwKSkKLQkocmFuZ2UgKGhpZi1maW5kLXJhbmdl KSkpCisgIChsZXQqICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpCisgICAgICAgICAodGVzdCAoaGlm LWNhbm9uaWNhbGl6ZSBoaWYtaWZ4LXJlZ2V4cCkpCisgICAgICAgICAocmFuZ2UgKGhpZi1maW5k LXJhbmdlKSkKKyAgICAgICAgIChlbGlmcyAoaGlmLXJhbmdlLWVsaWYgcmFuZ2UpKQorICAgICAg ICAgKGlmLXBhcnQgdCkgOzsgZXZlcnl0aW1lIHdlIHN0YXJ0IGZyb20gaWYtcGFydAorICAgICAg ICAgKGNvbXBsZXRlIG5pbCkpCiAgICAgOzsgKG1lc3NhZ2UgInRlc3QgPSAlcyIgdGVzdCkgKHNp dC1mb3IgMSkKIAogICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkKLSAg ICAoaWYgKG5vdCAoaGlmLW5vdCAoZnVuY2FsbCBoaWRlLWlmZGVmLWV2YWx1YXRvciB0ZXN0KSkp Ci0JKGNvbmQgKChoaWYtcmFuZ2UtZWxzZSByYW5nZSkJOyBjYXNlIDEKLQkgICAgICAgKGhpZi1o aWRlLWxpbmUgKGhpZi1yYW5nZS1lbHNlIHJhbmdlKSkKLQkgICAgICAgKGhpZGUtaWZkZWYtcmVn aW9uIChoaWYtcmFuZ2UtZWxzZSByYW5nZSkKLQkJCQkgICgxLSAoaGlmLXJhbmdlLWVuZCByYW5n ZSkpKQotCSAgICAgICAoaGlmLXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1zdGFydCByYW5nZSkKLQkJ CSAgICAgICAoaGlmLXJhbmdlLWVsc2UgcmFuZ2UpKSkKLQkgICAgICAodAkJCTsgY2FzZSAyCi0J ICAgICAgIChoaWYtcmVjdXJzZS1vbiAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKQotCQkJICAgICAg IChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkpKQotICAgICAgKGNvbmQgKChoaWYtcmFuZ2UtZWxzZSBy YW5nZSkJOyBjYXNlIDMKLQkgICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFuZ2UtZWxzZSByYW5n ZSkpCi0JICAgICAoaGlkZS1pZmRlZi1yZWdpb24gKGhpZi1yYW5nZS1zdGFydCByYW5nZSkKLQkJ CQkoMS0gKGhpZi1yYW5nZS1lbHNlIHJhbmdlKSkpCi0JICAgICAoaGlmLXJlY3Vyc2Utb24gKGhp Zi1yYW5nZS1lbHNlIHJhbmdlKQotCQkJICAgICAoaGlmLXJhbmdlLWVuZCByYW5nZSkpKQotCSAg ICAodAkJCQk7IGNhc2UgNAotCSAgICAgKGhpZGUtaWZkZWYtcmVnaW9uIChwb2ludCkKLQkJCQko MS0gKGhpZi1yYW5nZS1lbmQgcmFuZ2UpKSkpKSkKKyAgICAod2hpbGUgKG5vdCBjb21wbGV0ZSkK KyAgICAgIChpZiAoYW5kIChub3QgKGFuZCBleHBhbmQtcmVpbmNsdXNpb24gaWYtcGFydCkpCisg ICAgICAgICAgICAgICAoaGlmLW5vdCAoZnVuY2FsbCBoaWRlLWlmZGVmLWV2YWx1YXRvciB0ZXN0 KSkpCisgICAgICAgICAgOzsgaWZYL2VsaWYgaXMgRkFMU0UKKyAgICAgICAgICAoaWYgZWxpZnMK KyAgICAgICAgICAgICAgOzsgQ2FzZSAzIC0gSGlkZSB0aGUgI2lmWCBhbmQgZXZhbCAjZWxpZgor ICAgICAgICAgICAgICAobGV0ICgobmV3c3RhcnQgKGNhciBlbGlmcykpKQorICAgICAgICAgICAg ICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFuZ2Utc3RhcnQgcmFuZ2UpKQorICAgICAgICAgICAg ICAgIChoaWRlLWlmZGVmLXJlZ2lvbiAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gbmV3c3RhcnQpKQorICAgICAgICAgICAgICAg IChzZXRjYXIgcmFuZ2UgbmV3c3RhcnQpCisgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBuZXdz dGFydCkKKyAgICAgICAgICAgICAgICAoc2V0cSBlbGlmcyAoY2RyIGVsaWZzKSkKKyAgICAgICAg ICAgICAgICAoc2V0cSB0ZXN0IChoaWYtY2Fub25pY2FsaXplIGhpZi1lbGlmLXJlZ2V4cCkpKQor CisgICAgICAgICAgICA7OyBDaGVjayBmb3IgI2Vsc2UKKyAgICAgICAgICAgIChjb25kICgoaGlm LXJhbmdlLWVsc2UgcmFuZ2UpCisgICAgICAgICAgICAgICAgICAgOzsgQ2FzZSA0IC0gI2Vsc2Ug YmxvY2sgdmlzaWJsZQorICAgICAgICAgICAgICAgICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFu Z2UtZWxzZSByYW5nZSkpCisgICAgICAgICAgICAgICAgICAgKGhpZGUtaWZkZWYtcmVnaW9uICho aWYtcmFuZ2Utc3RhcnQgcmFuZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgxLSAoaGlmLXJhbmdlLWVsc2UgcmFuZ2UpKSkKKyAgICAgICAgICAgICAgICAgICAoaGlm LXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1lbHNlIHJhbmdlKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoaGlmLXJhbmdlLWVuZCByYW5nZSkpKQorICAgICAgICAgICAgICAgICAg KHQKKyAgICAgICAgICAgICAgICAgICA7OyBDYXNlIDUgLSBObyAjZWxzZSBibG9jaywgaGlkZSAj aWZYCisgICAgICAgICAgICAgICAgICAgKGhpZGUtaWZkZWYtcmVnaW9uIChwb2ludCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEtIChoaWYtcmFuZ2UtZW5kIHJhbmdl KSkpKSkKKyAgICAgICAgICAgIChzZXRxIGNvbXBsZXRlIHQpKQorCisgICAgICAgIDs7IGlmWC9l bGlmIGlzIFRSVUUKKyAgICAgICAgKGNvbmQgKGVsaWZzCisgICAgICAgICAgICAgICA7OyBMdWtl IGZpeDogZGlzdGluZ3Vpc2ggZnJvbSAjZWxpZi4uI2VsaWYgdG8gI2VsaWYuLiNlbHNlCisgICAg ICAgICAgICAgICAobGV0ICgoZWxpZiAoY2FyIGVsaWZzKSkpCisgICAgICAgICAgICAgICAgIDs7 IGhpZGUgYWxsIGVsaWZzCisgICAgICAgICAgICAgICAgIChoaWYtaGlkZS1saW5lIGVsaWYpCisg ICAgICAgICAgICAgICAgIChoaWRlLWlmZGVmLXJlZ2lvbiBlbGlmICgxLSAoaGlmLXJhbmdlLWVu ZCByYW5nZSkpKQorICAgICAgICAgICAgICAgICAoaGlmLXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1z dGFydCByYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYpKSkKKyAg ICAgICAgICAgICAgKChoaWYtcmFuZ2UtZWxzZSByYW5nZSkKKyAgICAgICAgICAgICAgIDs7IENh c2UgMSAtIEhpZGUgI2VsaWYgYW5kICNlbHNlIGJsb2NrcywgcmVjdXJzZSAjaWZYCisgICAgICAg ICAgICAgICAoaGlmLWhpZGUtbGluZSAoaGlmLXJhbmdlLWVsc2UgcmFuZ2UpKQorICAgICAgICAg ICAgICAgKGhpZGUtaWZkZWYtcmVnaW9uIChoaWYtcmFuZ2UtZWxzZSByYW5nZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gKGhpZi1yYW5nZS1lbmQgcmFuZ2UpKSkKKyAg ICAgICAgICAgICAgIChoaWYtcmVjdXJzZS1vbiAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoaWYtcmFuZ2UtZWxzZSByYW5nZSkpKQorICAg ICAgICAgICAgICAodAorICAgICAgICAgICAgICAgOzsgQ2FzZSAyIC0gTm8gI2Vsc2UsIGp1c3Qg cmVjdXJzZSAjaWZYCisgICAgICAgICAgICAgICAoaGlmLXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1z dGFydCByYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlmLXJhbmdlLWVu ZCByYW5nZSkpKSkKKyAgICAgICAgKHNldHEgY29tcGxldGUgdCkpCisgICAgICAoc2V0cSBpZi1w YXJ0IG5pbCkpCisKKyAgICA7OyBjb21wbGV0ZSA9IHQKICAgICAoaGlmLWhpZGUtbGluZSAoaGlm LXJhbmdlLXN0YXJ0IHJhbmdlKSkgOyBBbHdheXMgaGlkZSBzdGFydC4KICAgICAoZ290by1jaGFy IChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkKICAgICAoZW5kLW9mLWxpbmUpKSkKKyhkZWZ1biBoaWYt ZXZhbHVhdGUtcmVnaW9uIChzdGFydCBlbmQpCisgIChsZXQqICgodG9rZW5zIChpZ25vcmUtZXJy b3JzIDsgUHJldmVudCBDIHN0YXRlbWVudCB0aGluZ3MgbGlrZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7ICdkbyB7IC4uLiB9IHdoaWxlICgwKScKKyAgICAgICAgICAgICAgICAg ICAoaGlmLXRva2VuaXplIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKGV4cHIgKGFuZCB0b2tlbnMK KyAgICAgICAgICAgICAgICAgICAgKGNvbmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAgICAg ICAgICAgICAgKGhpZi1wYXJzZS1leHAgdG9rZW5zKQorICAgICAgICAgICAgICAgICAgICAgIChl cnJvcgorICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMpKSkpCisgICAgICAgICAocmVzdWx0 IChmdW5jYWxsIGhpZGUtaWZkZWYtZXZhbHVhdG9yIGV4cHIpKSkKKyAgICByZXN1bHQpKQorCiso ZGVmdW4gaGlmLWV2YWx1YXRlLW1hY3JvIChyc3RhcnQgcmVuZCkKKyAgIkV2YWx1YXRlIHRoZSBt YWNybyBleHBhbnNpb24gcmVzdWx0IGZvciBhIHJlZ2lvbi4gSWYgbm8gcmVnaW9uIGFjdGl2ZSwK K2ZpbmQgdGhlIGN1cnJlbnQgI2lmZGVmcyBhbmQgZXZhbHVhdGUgdGhlIHJlc3VsdC4gQ3VycmVu dGx5IGl0IHN1cHBvcnQgb25seQorbWF0aCBjYWxjdWxhdGlvbiwgbm8gc3RyaW5nIG9yIGFyZ3Vt ZW50ZWQgbWFjcm9zIGNhbiBiZSBleHBhbmRlZC4iCisgIChpbnRlcmFjdGl2ZSAiciIpCisgIChs ZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAo dW5sZXNzIG1hcmstYWN0aXZlCisgICAgICAgIChzZXRxIHJzdGFydCBuaWwgcmVuZCBuaWwpCisg ICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgKHdoZW4gKGFuZCAocmUtc2VhcmNo LWZvcndhcmQgaGlmLW1hY3JvLWV4cHItcHJlZml4LXJlZ2V4cCBuaWwgdCkKKyAgICAgICAgICAg ICAgICAgICAoc3RyaW5nPSAiZGVmaW5lIiAobWF0Y2gtc3RyaW5nIDIpKSkKKyAgICAgICAgICAo cmUtc2VhcmNoLWZvcndhcmQgaGlmLW1hY3JvcmVmLXJlZ2V4cCBuaWwgdCkpKQorICAgICAgKGxl dCogKChzdGFydCAob3IgcnN0YXJ0IChwb2ludCkpKQorICAgICAgICAgICAgIChlbmQgICAob3Ig cmVuZCAocHJvZ24gKGhpZi1lbmQtb2YtbGluZSkgKHBvaW50KSkpKQorICAgICAgICAgICAgIChk ZWZpbmVkIG5pbCkKKyAgICAgICAgICAgICAoc2ltcGxlICd0KQorICAgICAgICAgICAgICh0b2tl bnMgKGlnbm9yZS1lcnJvcnMgOyBQcmV2ZW50IEMgc3RhdGVtZW50IHRoaW5ncyBsaWtlCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICdkbyB7IC4uLiB9IHdoaWxlICgwKScK KyAgICAgICAgICAgICAgICAgICAgICAgKGhpZi10b2tlbml6ZSBzdGFydCBlbmQpKSkKKyAgICAg ICAgICAgICAoZXhwciAob3IgKGFuZCAoPD0gKGxlbmd0aCB0b2tlbnMpIDEpIDsgU2ltcGxlIHRv a2VuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgZGVmaW5lZCAoYXNzb2MgKGNh ciB0b2tlbnMpIGhpZGUtaWZkZWYtZW52KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c2V0cSBzaW1wbGUgKGF0b20gKGhpZi1sb29rdXAgKGNhciB0b2tlbnMpKSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGhpZi1sb29rdXAgKGNhciB0b2tlbnMpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgKGFuZCB0b2tlbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u ZGl0aW9uLWNhc2UgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoaWYtcGFy c2UtZXhwIHRva2VucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpKSkpCisgICAgICAgICAgICAgKHJlc3Vs dCAoZnVuY2FsbCBoaWRlLWlmZGVmLWV2YWx1YXRvciBleHByKSkKKyAgICAgICAgICAgICAoZXhw cnN0cmluZyAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAg ICAgIDs7IFRyaW0gb2ZmIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzCisgICAgICAgICAgICAgICAg ICAgICAgICAgICJeWyBcdF0qXFwoW14gXHRdK1xcKVsgXHRdKiIgIlxcMSIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlxcKC8vLipcXCkiICIiIDsgVHJpbSBvZmYgZW5kLW9mLWxpbmUgY29tbWVu dHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl cnRpZXMgc3RhcnQgZW5kKSkpKSkKKyAgICAgICAgKGNvbmQKKyAgICAgICAgICgoYW5kICg8PSAo bGVuZ3RoIHRva2VucykgMSkgc2ltcGxlKSA7IFNpbXBsZSB0b2tlbgorICAgICAgICAgIChpZiBk ZWZpbmVkCisgICAgICAgICAgICAgIChtZXNzYWdlICIlUyA8PSBgJXMnIiByZXN1bHQgZXhwcnN0 cmluZykKKyAgICAgICAgICAgIChtZXNzYWdlICJgJXMnIGlzIG5vdCBkZWZpbmVkIiBleHByc3Ry aW5nKSkpCisgICAgICAgICAoKGludGVnZXJwIHJlc3VsdCkKKyAgICAgICAgICAoaWYgKG9yICg9 IDAgcmVzdWx0KSAoPSAxIHJlc3VsdCkpCisgICAgICAgICAgICAgIChtZXNzYWdlICIlUyA8PSBg JXMnIiByZXN1bHQgZXhwcnN0cmluZykKKyAgICAgICAgICAgIChtZXNzYWdlICIlUyAoMHgleCkg PD0gYCVzJyIgcmVzdWx0IHJlc3VsdCBleHByc3RyaW5nKSkpCisgICAgICAgICAoKG51bGwgcmVz dWx0KSAobWVzc2FnZSAiJVMgPD0gYCVzJyIgJ2ZhbHNlIGV4cHJzdHJpbmcpKQorICAgICAgICAg KChlcSB0IHJlc3VsdCkgKG1lc3NhZ2UgIiVTIDw9IGAlcyciICd0cnVlIGV4cHJzdHJpbmcpKQor ICAgICAgICAgKHQgKG1lc3NhZ2UgIiVTIDw9IGAlcyciIHJlc3VsdCBleHByc3RyaW5nKSkpCisg ICAgICAgIHJlc3VsdCkpKSkKIAogKGRlZnVuIGhpZi1wYXJzZS1tYWNyby1hcmdsaXN0IChzdHIp CiAgICJQYXJzZSBhcmd1bWVudCBsaXN0IGZvcm1hdHRlZCBhcyAnKCBhcmcxIFsgLCBhcmduXSBb Li4uXSApJywgaW5jbHVkaW5nCiB0aGUgJy4uLicuICBSZXR1cm4gYSBsaXN0IG9mIHRoZSBhcmd1 bWVudHMsIGlmICcuLi4nIGV4aXN0cyB0aGUgZmlyc3QgYXJnCiB3aWxsIGJlIGhpZi1ldGMuIgot ICAobGV0KiAoKGhpZi1zaW1wbGUtdG9rZW4tb25seSBuaWwpIDs7IER5bmFtaWMgYmluZGluZyB2 YXIgZm9yIGBoaWYtdG9rZW5pemUnCisgIChsZXQqICgoaGlmLXNpbXBsZS10b2tlbi1vbmx5IG5p bCkgOyBEeW5hbWljIGJpbmRpbmcgdmFyIGZvciBgaGlmLXRva2VuaXplJwogICAgICAgICAgKHRv a2VubGlzdAogICAgICAgICAgIChjZHIgKGhpZi10b2tlbml6ZQotICAgICAgICAgICAgICAgICgt IChwb2ludCkgKGxlbmd0aCBzdHIpKSAocG9pbnQpKSkpIDsgcmVtb3ZlIGhpZi1scGFyZW4KKyAg ICAgICAgICAgICAgICgtIChwb2ludCkgKGxlbmd0aCBzdHIpKSAocG9pbnQpKSkpIDsgUmVtb3Zl IGBoaWYtbHBhcmVuJwogICAgICAgICAgZXRjIHJlc3VsdCB0b2tlbikKICAgICAod2hpbGUgKG5v dCAoZXEgKHNldHEgdG9rZW4gKHBvcCB0b2tlbmxpc3QpKSAnaGlmLXJwYXJlbikpCiAgICAgICAo Y29uZApAQCAtMTQ2Miw3ICsxNjY2LDcgQEAgd2lsbCBiZSBoaWYtZXRjLiIKICAgICAgICAgICAg ICAgIChuYW1lIChhbmQgKHJlLXNlYXJjaC1mb3J3YXJkIGhpZi1tYWNyb3JlZi1yZWdleHAgbWF4 IHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaC1zdHJpbmcgMSkpKQogICAgICAg ICAgICAgICAgKHBhcnNlZCBuaWwpCi0gICAgICAgICAgICAgICAocGFybWxpc3QgKGFuZCAobWF0 Y2gtc3RyaW5nIDMpIDs7IEZpcnN0IGFyZyBpZCBmb3VuZAorICAgICAgICAgICAgICAgKHBhcm1s aXN0IChhbmQgKG1hdGNoLXN0cmluZyAzKSA7IEZpcnN0IGFyZyBpZCBmb3VuZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGhpZi1wYXJzZS1tYWNyby1hcmdsaXN0IChtYXRjaC1zdHJp bmcgMikpKSkpCiAgICAgICAgICAgKGlmIGRlZmluaW5nCiAgICAgICAgICAgICAgIDs7IElnbm9y ZSBuYW1lIChzdGlsbCBuZWVkIHRvIHJldHVybiAndCksIG9yIGRlZmluZSB0aGUgbmFtZQpAQCAt MTQ3Miw3ICsxNjc2LDcgQEAgd2lsbCBiZSBoaWYtZXRjLiIKIAogICAgICAgICAgICAgICAgICAg KGxldCogKChzdGFydCAocG9pbnQpKQogICAgICAgICAgICAgICAgICAgICAgICAgIChlbmQgICAo cHJvZ24gKGhpZi1lbmQtb2YtbGluZSkgKHBvaW50KSkpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgKGhpZi1zaW1wbGUtdG9rZW4tb25seSBuaWwpIDs7IER5bmFtaWMgYmluZGluZworICAgICAg ICAgICAgICAgICAgICAgICAgIChoaWYtc2ltcGxlLXRva2VuLW9ubHkgbmlsKSA7IER5bmFtaWMg YmluZGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICh0b2tlbnMKICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGFuZCBuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg YGhpZi1zaW1wbGUtdG9rZW4tb25seScgaXMgc2V0L2NsZWFyCkBAIC0xNTMyLDYgKzE3MzYsMTAg QEAgSXQgZG9lcyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50bGVzcyB0byByZWRvIG9uIGEg cmVjdXJzaXZlIGVudHJ5LiIKICAgOzsgKG1lc3NhZ2UgImhpZGUtaWZkZWYtZ3V0cyIpCiAgIChz YXZlLWV4Y3Vyc2lvbgogICAgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5pbCkKKyAgICAgICAg ICAoZXhwYW5kLWhlYWRlciAoYW5kIGhpZGUtaWZkZWYtZXhwYW5kLXJlaW5jbHVzaW9uLXByb3Rl Y3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2ggaGlkZS1p ZmRlZi1oZWFkZXItcmVnZXhwLXBhdHRlcm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGJ1ZmZlci1uYW1lIChjdXJyZW50LWJ1ZmZlcikpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHplcm9wIGhpZi1yZWN1cnNlLWxldmVsKSkpCiAgICAgICAg ICAgbWluIG1heCkKICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgICAgKHNldGYgbWlu IChwb2ludCkpCkBAIC0xNTM5LDcgKzE3NDcsNyBAQCBJdCBkb2VzIG5vdCBkbyB0aGUgd29yayB0 aGF0J3MgcG9pbnRsZXNzIHRvIHJlZG8gb24gYSByZWN1cnNpdmUgZW50cnkuIgogICAgICAgICAg ICAgKHNldGYgbWF4IChoaWYtZmluZC1hbnktaWZYKSkKICAgICAgICAgICAgIChoaWYtYWRkLW5l dy1kZWZpbmVzIG1pbiBtYXgpCiAgICAgICAgICAgICAoaWYgbWF4Ci0gICAgICAgICAgICAgICAg KGhpZi1wb3NzaWJseS1oaWRlKSkKKyAgICAgICAgICAgICAgICAoaGlmLXBvc3NpYmx5LWhpZGUg ZXhwYW5kLWhlYWRlcikpCiAgICAgICAgICAgICAoc2V0ZiBtaW4gKHBvaW50KSkKICAgICAgICAg ICAgIHdoaWxlIG1heCkpKSkKIApAQCAtMTU1Myw3ICsxNzYxLDcgQEAgSXQgZG9lcyBub3QgZG8g dGhlIHdvcmsgdGhhdCdzIHBvaW50bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIK ICAgKGludGVyYWN0aXZlKQogICAoc2V0cSBoaWRlLWlmZGVmLXJlYWQtb25seSAobm90IGhpZGUt aWZkZWYtcmVhZC1vbmx5KSkKICAgKG1lc3NhZ2UgIkhpZGUtUmVhZC1Pbmx5ICVzIgotCSAgIChp ZiBoaWRlLWlmZGVmLXJlYWQtb25seSAiT04iICJPRkYiKSkKKyAgICAgICAgICAgKGlmIGhpZGUt aWZkZWYtcmVhZC1vbmx5ICJPTiIgIk9GRiIpKQogICAoaWYgaGlkZS1pZmRlZi1oaWRpbmcKICAg ICAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgKG9yIGhpZGUtaWZkZWYtcmVhZC1vbmx5CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWYtb3V0c2lkZS1yZWFkLW9ubHkpKSkKQEAg LTE1NjQsMTAgKzE3NzIsMTAgQEAgSXQgZG9lcyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50 bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIKICAgKGludGVyYWN0aXZlKQogICAo c2V0cSBoaWYtb3V0c2lkZS1yZWFkLW9ubHkgKG5vdCBoaWYtb3V0c2lkZS1yZWFkLW9ubHkpKQog ICAobWVzc2FnZSAiUmVhZCBvbmx5ICVzIgotCSAgIChpZiBoaWYtb3V0c2lkZS1yZWFkLW9ubHkg Ik9OIiAiT0ZGIikpCisgICAgICAgICAgIChpZiBoaWYtb3V0c2lkZS1yZWFkLW9ubHkgIk9OIiAi T0ZGIikpCiAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkKLQkob3IgKGFuZCBoaWRlLWlmZGVmLWhp ZGluZyBoaWRlLWlmZGVmLXJlYWQtb25seSkKLQkgICAgaGlmLW91dHNpZGUtcmVhZC1vbmx5KSkK KyAgICAgICAgKG9yIChhbmQgaGlkZS1pZmRlZi1oaWRpbmcgaGlkZS1pZmRlZi1yZWFkLW9ubHkp CisgICAgICAgICAgICBoaWYtb3V0c2lkZS1yZWFkLW9ubHkpKQogICAoZm9yY2UtbW9kZS1saW5l LXVwZGF0ZSkpCiAKIChkZWZ1biBoaWRlLWlmZGVmLXRvZ2dsZS1zaGFkb3dpbmcgKCkKQEAgLTE1 NzksMzEgKzE3ODcsMzcgQEAgSXQgZG9lcyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50bGVz cyB0byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIKICAgICAod2lkZW4pCiAgICAgKGRvbGlz dCAob3ZlcmxheSAob3ZlcmxheXMtaW4gKHBvaW50LW1pbikgKHBvaW50LW1heCkpKQogICAgICAg KHdoZW4gKG92ZXJsYXktZ2V0IG92ZXJsYXkgJ2hpZGUtaWZkZWYpCi0JKGlmIGhpZGUtaWZkZWYt c2hhZG93Ci0JICAgIChwcm9nbgotCSAgICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdpbnZpc2li bGUgbmlsKQotCSAgICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdmYWNlICdoaWRlLWlmZGVmLXNo YWRvdykpCi0JICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnZmFjZSBuaWwpCi0JICAob3ZlcmxheS1w dXQgb3ZlcmxheSAnaW52aXNpYmxlICdoaWRlLWlmZGVmKSkpKSkpCi0KLShkZWZ1biBoaWRlLWlm ZGVmLWRlZmluZSAodmFyKQotICAiRGVmaW5lIGEgVkFSIHNvIHRoYXQgI2lmZGVmIFZBUiB3b3Vs ZCBiZSBpbmNsdWRlZC4iCi0gIChpbnRlcmFjdGl2ZSAiU0RlZmluZSB3aGF0PyAiKQotICAoaGlm LXNldC12YXIgdmFyIDEpCisgICAgICAgIChpZiBoaWRlLWlmZGVmLXNoYWRvdworICAgICAgICAg ICAgKHByb2duCisgICAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdpbnZpc2libGUg bmlsKQorICAgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnZmFjZSAnaGlkZS1pZmRl Zi1zaGFkb3cpKQorICAgICAgICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdmYWNlIG5pbCkKKyAg ICAgICAgICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnaW52aXNpYmxlICdoaWRlLWlmZGVmKSkpKSkp CisKKyhkZWZ1biBoaWRlLWlmZGVmLWRlZmluZSAodmFyIHZhbCkKKyAgIkRlZmluZSBhIFZBUiwg b3B0aW9uYWxseSB0byBhIHNwZWNpZmljIHZhbHVlLCBzbyB0aGF0ICNpZmRlZiBWQVIKK3dvdWxk IGJlIGluY2x1ZGVkLiIKKyAgKGludGVyYWN0aXZlCisgICAobGV0KiAoKGRlZmF1bHQgKHNhdmUt ZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAg ICAgICAgICAgICAgICAgICAoY29uZCAoKGxvb2tpbmctYXQgaGlmLWlmeC1lbHNlLWVuZGlmLXJl Z2V4cCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC13b3JkIDIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtd29yZCAnc3RyaWN0KSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkp KQorICAgICAgICAgKHZhciAocmVhZC1taW5pYnVmZmVyICJEZWZpbmUgd2hhdD8gIiBkZWZhdWx0 KSkKKyAgICAgICAgICh2YWwgKHJlYWQtZnJvbS1taW5pYnVmZmVyIChmb3JtYXQgIlNldCAlcyB0 bz8gKGRlZmF1bHQgMSk6ICIgdmFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmlsIG5pbCB0IG5pbCAiMSIpKSkKKyAgICAgKGxpc3QgdmFyIHZhbCkpKQorICAgKGhpZi1z ZXQtdmFyIHZhciAob3IgdmFsIDEpKQorICAgKG1lc3NhZ2UgIiVzIHNldCB0byAlcyIgdmFyIChv ciB2YWwgMSkpCisgICAoc2xlZXAtZm9yIDEpCiAgIChpZiBoaWRlLWlmZGVmLWhpZGluZyAoaGlk ZS1pZmRlZnMpKSkKIAogKGRlZnVuIGhpZi11bmRlZmluZS1zeW1ib2wgKHZhcikKICAgKHNldHEg aGlkZS1pZmRlZi1lbnYKICAgICAgICAgKGRlbGV0ZSAoYXNzb2MgdmFyIGhpZGUtaWZkZWYtZW52 KSBoaWRlLWlmZGVmLWVudikpKQogCi07OyhkZWZ1biBoaWRlLWlmZGVmLXVuZGVmICh2YXIpCi07 OyAgIlVuZGVmaW5lIGEgVkFSIHNvIHRoYXQgI2lmZGVmIFZBUiB3b3VsZCBub3QgYmUgaW5jbHVk ZWQuIgotOzsgIChpbnRlcmFjdGl2ZSAiU1VuZGVmaW5lIHdoYXQ/ICIpCi07OyAgOzsoaGlmLXNl dC12YXIgdmFyIG5pbCk7O0x1a2UgZml4ZWQ6IHNldCBpdCBuaWwgaXMgc3RpbGwgY29uc2lkZXJl ZAotOzsgIDs7ZGVmaW5lZCBzbyAjaWZkZWYgVkFSIGlzIHN0aWxsIHRydWUuCi07OyAgKGhpZi11 bmRlZmluZS1zeW1ib2wgdmFyKQotOzsgIChpZiBoaWRlLWlmZGVmLWhpZGluZyAoaGlkZS1pZmRl ZnMpKSkKLQogKGRlZnVuIGhpZGUtaWZkZWYtdW5kZWYgKHN0YXJ0IGVuZCkKICAgIlVuZGVmaW5l IGEgVkFSIHNvIHRoYXQgI2lmZGVmIFZBUiB3b3VsZCBub3QgYmUgaW5jbHVkZWQuIgogICAoaW50 ZXJhY3RpdmUgInIiKQpAQCAtMTYyNCwyMCArMTgzOCwyMyBAQCBJdCBkb2VzIG5vdCBkbyB0aGUg d29yayB0aGF0J3MgcG9pbnRsZXNzIHRvIHJlZG8gb24gYSByZWN1cnNpdmUgZW50cnkuIgogQXNz dW1lIHRoYXQgZGVmaW5lZCBzeW1ib2xzIGhhdmUgYmVlbiBhZGRlZCB0byBgaGlkZS1pZmRlZi1l bnYnLgogVGhlIHRleHQgaGlkZGVuIGlzIHRoZSB0ZXh0IHRoYXQgd291bGQgbm90IGJlIGluY2x1 ZGVkIGJ5IHRoZSBDCiBwcmVwcm9jZXNzb3IgaWYgaXQgd2VyZSBnaXZlbiB0aGUgZmlsZSB3aXRo IHRob3NlIHN5bWJvbHMgZGVmaW5lZC4KK0lmIHRoaXMgY29tbWFuZCBpcyBwcmVmaXhlZCwgaGlk ZSBhbHNvIHRoZSAjaWZkZWZzIHRoZW1zZWx2ZXMuCiAKIFR1cm4gb2ZmIGhpZGluZyBieSBjYWxs aW5nIGBzaG93LWlmZGVmcycuIgogCiAgIChpbnRlcmFjdGl2ZSkKLSAgKG1lc3NhZ2UgIkhpZGlu Zy4uLiIpCisgIChsZXQgKChoaWRlLWlmZGVmLWxpbmVzIGN1cnJlbnQtcHJlZml4LWFyZykpCisg ICAgKG9yIG5vbXNnCisgICAgICAgIChtZXNzYWdlICJIaWRpbmcuLi4iKSkKICAgKHNldHEgaGlm LW91dHNpZGUtcmVhZC1vbmx5IGJ1ZmZlci1yZWFkLW9ubHkpCiAgICh1bmxlc3MgaGlkZS1pZmRl Zi1tb2RlIChoaWRlLWlmZGVmLW1vZGUgMSkpIDsgdHVybiBvbiBoaWRlLWlmZGVmLW1vZGUKICAg KGlmIGhpZGUtaWZkZWYtaGlkaW5nCi0gICAgICAoc2hvdy1pZmRlZnMpKQkJCTsgT3RoZXJ3aXNl LCBkZWVwIGNvbmZ1c2lvbi4KKyAgICAgIChzaG93LWlmZGVmcykpICAgICAgICAgICAgICAgICAg ICA7IE90aGVyd2lzZSwgZGVlcCBjb25mdXNpb24uCiAgIChzZXRxIGhpZGUtaWZkZWYtaGlkaW5n IHQpCiAgIChoaWRlLWlmZGVmLWd1dHMpCiAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgKG9yIGhp ZGUtaWZkZWYtcmVhZC1vbmx5IGhpZi1vdXRzaWRlLXJlYWQtb25seSkpCiAgIChvciBub21zZwot ICAgICAgKG1lc3NhZ2UgIkhpZGluZyBkb25lIikpKQorICAgICAgICAobWVzc2FnZSAiSGlkaW5n IGRvbmUiKSkpKQogCiAKIChkZWZ1biBzaG93LWlmZGVmcyAoKQpAQCAtMTY1Myw0NiArMTg3MCw3 NCBAQCBUdXJuIG9mZiBoaWRpbmcgYnkgY2FsbGluZyBgc2hvdy1pZmRlZnMnLiIKIFJldHVybiBh cyAoVE9QIC4gQk9UVE9NKSB0aGUgZXh0ZW50IG9mIGlmZGVmIGJsb2NrLiIKICAgKGxldCAobWF4 LWJvdHRvbSkKICAgICAoY29ucyAoc2F2ZS1leGN1cnNpb24KLQkgICAgKGJlZ2lubmluZy1vZi1s aW5lKQotCSAgICAodW5sZXNzIChvciAoaGlmLWxvb2tpbmctYXQtZWxzZSkgKGhpZi1sb29raW5n LWF0LWlmWCkpCi0JICAgICAgKHVwLWlmZGVmKSkKLQkgICAgKHByb2cxIChwb2ludCkKLQkgICAg ICAoaGlmLWlmZGVmLXRvLWVuZGlmKQotCSAgICAgIChzZXRxIG1heC1ib3R0b20gKDEtIChwb2lu dCkpKSkpCi0JICAoc2F2ZS1leGN1cnNpb24KLQkgICAgKGJlZ2lubmluZy1vZi1saW5lKQotCSAg ICAodW5sZXNzIChoaWYtbG9va2luZy1hdC1lbmRpZikKLQkgICAgICAoaGlmLWZpbmQtbmV4dC1y ZWxldmFudCkpCi0JICAgICh3aGlsZSAoaGlmLWxvb2tpbmctYXQtaWZYKQotCSAgICAgIChoaWYt aWZkZWYtdG8tZW5kaWYpCi0JICAgICAgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpKQotCSAgICAo bWluIG1heC1ib3R0b20gKDEtIChwb2ludCkpKSkpKSkKLQotCi0oZGVmdW4gaGlkZS1pZmRlZi1i bG9jayAoKQotICAiSGlkZSB0aGUgaWZkZWYgYmxvY2sgKHRydWUgb3IgZmFsc2UgcGFydCkgZW5j bG9zaW5nIG9yIGJlZm9yZSB0aGUgY3Vyc29yLiIKLSAgKGludGVyYWN0aXZlKQotICAodW5sZXNz IGhpZGUtaWZkZWYtbW9kZSAoaGlkZS1pZmRlZi1tb2RlIDEpKQotICAobGV0ICgodG9wLWJvdHRv bSAoaGlmLWZpbmQtaWZkZWYtYmxvY2spKSkKLSAgICAoaGlkZS1pZmRlZi1yZWdpb24gKGNhciB0 b3AtYm90dG9tKSAoY2RyIHRvcC1ib3R0b20pKQotICAgICh3aGVuIGhpZGUtaWZkZWYtbGluZXMK LSAgICAgIChoaWYtaGlkZS1saW5lIChjYXIgdG9wLWJvdHRvbSkpCi0gICAgICAoaGlmLWhpZGUt bGluZSAoMSsgKGNkciB0b3AtYm90dG9tKSkpKQotICAgIChzZXRxIGhpZGUtaWZkZWYtaGlkaW5n IHQpKQotICAoc2V0cSBidWZmZXItcmVhZC1vbmx5IChvciBoaWRlLWlmZGVmLXJlYWQtb25seSBo aWYtb3V0c2lkZS1yZWFkLW9ubHkpKSkKLQotKGRlZnVuIHNob3ctaWZkZWYtYmxvY2sgKCkKKyAg ICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAgICAgICAgICh1bmxlc3MgKG9yICho aWYtbG9va2luZy1hdC1lbHNlKSAoaGlmLWxvb2tpbmctYXQtaWZYKSkKKyAgICAgICAgICAgICAg KHVwLWlmZGVmKSkKKyAgICAgICAgICAgIChwcm9nMSAocG9pbnQpCisgICAgICAgICAgICAgICho aWYtaWZkZWYtdG8tZW5kaWYpCisgICAgICAgICAgICAgIChzZXRxIG1heC1ib3R0b20gKDEtIChw b2ludCkpKSkpCisgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAoYmVnaW5u aW5nLW9mLWxpbmUpCisgICAgICAgICAgICAodW5sZXNzIChoaWYtbG9va2luZy1hdC1lbmRpZikK KyAgICAgICAgICAgICAgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpKQorICAgICAgICAgICAgKHdo aWxlIChoaWYtbG9va2luZy1hdC1pZlgpCisgICAgICAgICAgICAgIChoaWYtaWZkZWYtdG8tZW5k aWYpCisgICAgICAgICAgICAgIChoaWYtZmluZC1uZXh0LXJlbGV2YW50KSkKKyAgICAgICAgICAg ICAgKG1pbiBtYXgtYm90dG9tICgxLSAocG9pbnQpKSkpKSkpCisKKworKGRlZnVuIGhpZGUtaWZk ZWYtYmxvY2sgKCZvcHRpb25hbCBzdGFydCBlbmQpCisgICJIaWRlIHRoZSBpZmRlZiBibG9jayAo dHJ1ZSBvciBmYWxzZSBwYXJ0KSBlbmNsb3Npbmcgb3IgYmVmb3JlIHRoZSBjdXJzb3IuCitJZiBw cmVmaXhlZCwgaXQgd2lsbCBhbHNvIGhpZGUgI2lmZGVmcyB0aGVtc2VsdmVzLiIKKyAgKGludGVy YWN0aXZlICJyIikKKyAgKGxldCAoKGhpZGUtaWZkZWYtbGluZXMgY3VycmVudC1wcmVmaXgtYXJn KSkKKyAgICAoaWYgbWFyay1hY3RpdmUKKyAgICAgICAgKGxldCAoKGhpZi1yZWN1cnNlLWxldmVs ICgxKyBoaWYtcmVjdXJzZS1sZXZlbCkpKQorICAgICAgICAgIChoaWYtcmVjdXJzZS1vbiBzdGFy dCBlbmQgdCkKKyAgICAgICAgICAoc2V0cSBtYXJrLWFjdGl2ZSBuaWwpKQorICAgICAgKHVubGVz cyBoaWRlLWlmZGVmLW1vZGUgKGhpZGUtaWZkZWYtbW9kZSAxKSkKKyAgICAgIChsZXQgKCh0b3At Ym90dG9tIChoaWYtZmluZC1pZmRlZi1ibG9jaykpKQorICAgICAgICAoaGlkZS1pZmRlZi1yZWdp b24gKGNhciB0b3AtYm90dG9tKSAoY2RyIHRvcC1ib3R0b20pKQorICAgICAgICAod2hlbiBoaWRl LWlmZGVmLWxpbmVzCisgICAgICAgICAgKGhpZi1oaWRlLWxpbmUgKGNhciB0b3AtYm90dG9tKSkK KyAgICAgICAgICAoaGlmLWhpZGUtbGluZSAoMSsgKGNkciB0b3AtYm90dG9tKSkpKQorICAgICAg ICAoc2V0cSBoaWRlLWlmZGVmLWhpZGluZyB0KSkKKyAgICAgIChzZXRxIGJ1ZmZlci1yZWFkLW9u bHkKKyAgICAgICAgICAgIChvciBoaWRlLWlmZGVmLXJlYWQtb25seSBoaWYtb3V0c2lkZS1yZWFk LW9ubHkpKSkpKQorCisoZGVmdW4gc2hvdy1pZmRlZi1ibG9jayAoJm9wdGlvbmFsIHN0YXJ0IGVu ZCkKICAgIlNob3cgdGhlIGlmZGVmIGJsb2NrICh0cnVlIG9yIGZhbHNlIHBhcnQpIGVuY2xvc2lu ZyBvciBiZWZvcmUgdGhlIGN1cnNvci4iCi0gIChpbnRlcmFjdGl2ZSkKLSAgKGxldCAoKHRvcC1i b3R0b20gKGhpZi1maW5kLWlmZGVmLWJsb2NrKSkpCisgIChpbnRlcmFjdGl2ZSAiciIpCisgIChp ZiBtYXJrLWFjdGl2ZQorICAgICAgKHByb2duCisgICAgICAgIChkb2xpc3QgKG8gKG92ZXJsYXlz LWluIHN0YXJ0IGVuZCkpCisgICAgICAgICAgKGlmIChvdmVybGF5LWdldCBvICdoaWRlLWlmZGVm KQorICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbykpKQorICAgICAgICAoc2V0cSBtYXJr LWFjdGl2ZSBuaWwpKQorICAgIChsZXQgKCh0b3AtYm90dG9tIChjb25kaXRpb24tY2FzZSBuaWwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZi1maW5kLWlmZGVmLWJsb2NrKQorICAgICAg ICAgICAgICAgICAgICAgICAgKGVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgbmlsKSkp CisgICAgICAgICAgKG92cnMgKG92ZXJsYXlzLWluIChtYXggKHBvaW50LW1pbikgKDEtIChwb2lu dCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluIChwb2ludC1tYXgpICgxKyAo cG9pbnQpKSkpKQorICAgICAgICAgIChkZWwgbmlsKSkKKyAgICAgIChpZiB0b3AtYm90dG9tCiAg ICAgKGlmIGhpZGUtaWZkZWYtbGluZXMKLSAJKGhpZi1zaG93LWlmZGVmLXJlZ2lvbgotIAkgKHNh dmUtZXhjdXJzaW9uCi0gCSAgIChnb3RvLWNoYXIgKGNhciB0b3AtYm90dG9tKSkgKGxpbmUtYmVn aW5uaW5nLXBvc2l0aW9uKSkKLSAJIChzYXZlLWV4Y3Vyc2lvbgotIAkgICAoZ290by1jaGFyICgx KyAoY2RyIHRvcC1ib3R0b20pKSkKLQkgICAoaGlmLWVuZC1vZi1saW5lKSAocG9pbnQpKSkKLSAg ICAgIChoaWYtc2hvdy1pZmRlZi1yZWdpb24gKDEtIChjYXIgdG9wLWJvdHRvbSkpIChjZHIgdG9w LWJvdHRvbSkpKSkpCisgICAgICAgIChoaWYtc2hvdy1pZmRlZi1yZWdpb24KKyAgICAgICAgIChz YXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAoZ290by1jaGFyIChjYXIgdG9wLWJvdHRvbSkpIChs aW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAg ICAgICAgKGdvdG8tY2hhciAoMSsgKGNkciB0b3AtYm90dG9tKSkpCisgICAgICAgICAgIChoaWYt ZW5kLW9mLWxpbmUpIChwb2ludCkpKQorICAgICAgKHNldGYgZGVsIChoaWYtc2hvdy1pZmRlZi1y ZWdpb24KKyAgICAgICAgICAgICAgICAgKDEtIChjYXIgdG9wLWJvdHRvbSkpIChjZHIgdG9wLWJv dHRvbSkpKSkpCisgICAgICAoaWYgKG5vdCAoYW5kIHRvcC1ib3R0b20KKyAgICAgICAgICAgICAg ICAgICAgZGVsKSkKKyAgICAgICAgICAoZG9saXN0IChvIG92cnMpCisgICAgICAgICAgICA7Oyhk b2xpc3QgKG8gKG92ZXJsYXlzLWluICgxLSAocG9pbnQpKSAoMSsgKHBvaW50KSkpKQorICAgICAg ICAgICAgOzsgICAoaWYgKG92ZXJsYXktZ2V0IG8gJ2hpZGUtaWZkZWYpIChtZXNzYWdlICIlUyIg bykpKQorICAgICAgICAgICAgKGlmIChvdmVybGF5LWdldCBvICdoaWRlLWlmZGVmKQorICAgICAg ICAgICAgICAgIChkZWxldGUtb3ZlcmxheSBvKSkpKSkpKQogCiAKIDs7OyAgZGVmaW5pdGlvbiBh bGlzdCBzdXBwb3J0CkBAIC0xNzEwLDIxICsxOTU1LDIxIEBAIFJldHVybiBhcyAoVE9QIC4gQk9U VE9NKSB0aGUgZXh0ZW50IG9mIGlmZGVmIGJsb2NrLiIKICAgIlNldCB0aGUgYXNzb2NpYXRpb24g Zm9yIE5BTUUgdG8gYGhpZGUtaWZkZWYtZW52Jy4iCiAgIChpbnRlcmFjdGl2ZSAiU1NldCBkZWZp bmUgbGlzdDogIikKICAgKHB1c2ggKGNvbnMgbmFtZSAoaGlmLWNvbXByZXNzLWRlZmluZS1saXN0 IGhpZGUtaWZkZWYtZW52KSkKLQloaWRlLWlmZGVmLWRlZmluZS1hbGlzdCkpCisgICAgICAgIGhp ZGUtaWZkZWYtZGVmaW5lLWFsaXN0KSkKIAogKGRlZnVuIGhpZGUtaWZkZWYtdXNlLWRlZmluZS1h bGlzdCAobmFtZSkKICAgIlNldCBgaGlkZS1pZmRlZi1lbnYnIHRvIHRoZSBkZWZpbmUgbGlzdCBz cGVjaWZpZWQgYnkgTkFNRS4iCiAgIChpbnRlcmFjdGl2ZQogICAgKGxpc3QgKGNvbXBsZXRpbmct cmVhZCAiVXNlIGRlZmluZSBsaXN0OiAiCi0JCQkgIChtYXBjYXIgKGxhbWJkYSAoeCkgKHN5bWJv bC1uYW1lIChjYXIgeCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1i ZGEgKHgpIChzeW1ib2wtbmFtZSAoY2FyIHgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBoaWRlLWlmZGVmLWRlZmluZS1hbGlzdCkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmlsIHQpKSkKICAgKGlmIChzdHJpbmdwIG5hbWUpIChzZXRxIG5hbWUgKGludGVybiBuYW1l KSkpCiAgIChsZXQgKChkZWZpbmUtbGlzdCAoYXNzb2MgbmFtZSBoaWRlLWlmZGVmLWRlZmluZS1h bGlzdCkpKQogICAgIChpZiBkZWZpbmUtbGlzdAotCShzZXRxIGhpZGUtaWZkZWYtZW52Ci0JICAg ICAgKG1hcGNhciAobGFtYmRhIChhcmcpIChjb25zIGFyZyB0KSkKLQkJICAgICAgKGNkciBkZWZp bmUtbGlzdCkpKQorICAgICAgICAoc2V0cSBoaWRlLWlmZGVmLWVudgorICAgICAgICAgICAgICAo bWFwY2FyIChsYW1iZGEgKGFyZykgKGNvbnMgYXJnIHQpKQorICAgICAgICAgICAgICAgICAgICAg IChjZHIgZGVmaW5lLWxpc3QpKSkKICAgICAgIChlcnJvciAiTm8gZGVmaW5lIGxpc3QgZm9yICVz IiBuYW1lKSkKICAgICAoaWYgaGlkZS1pZmRlZi1oaWRpbmcgKGhpZGUtaWZkZWZzKSkpKQogCi0t IAoxLjguMy4yCgo= --047d7b2ede7141424604fcbd8001--