From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ken Manheimer Newsgroups: gmane.emacs.devel Subject: Re: new version of allout.el - patch and ChangeLog Date: Sat, 1 Oct 2005 18:33:15 -0400 Message-ID: <2cd46e7f0510011533p4704d96eo4c14abe656828366@mail.gmail.com> References: <2cd46e7f0509301024r71462d81v81ebd8e858f06305@mail.gmail.com> Reply-To: Ken Manheimer NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_7826_6405744.1128205995879" X-Trace: sea.gmane.org 1128206293 10671 80.91.229.2 (1 Oct 2005 22:38:13 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 1 Oct 2005 22:38:13 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Oct 02 00:38:04 2005 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1ELpxt-0004cB-H2 for ged-emacs-devel@m.gmane.org; Sun, 02 Oct 2005 00:37:43 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ELpxq-0006b4-GB for ged-emacs-devel@m.gmane.org; Sat, 01 Oct 2005 18:36:18 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ELpvT-0005si-8n for emacs-devel@gnu.org; Sat, 01 Oct 2005 18:33:52 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ELpvB-0005mV-FV for emacs-devel@gnu.org; Sat, 01 Oct 2005 18:33:49 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ELpvB-0005mL-8A for emacs-devel@gnu.org; Sat, 01 Oct 2005 18:33:33 -0400 Original-Received: from [64.233.162.192] (helo=zproxy.gmail.com) by monty-python.gnu.org with esmtp (Exim 4.34) id 1ELpuv-000751-H1 for emacs-devel@gnu.org; Sat, 01 Oct 2005 18:33:19 -0400 Original-Received: by zproxy.gmail.com with SMTP id k1so105811nzf for ; Sat, 01 Oct 2005 15:33:16 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:references; b=IL2M2eFNUFvS6W5G09B5M8qNAZcisDkQJbk3FvxYTXfdiY7cLvYflabmiE4D/etiEXaVppuvnFMfbBFt30MX6a2HE9v98lZCV6ZswmoLiwZ7EJP6toYui03C75Skq/BrOQpKPNe9nvg3bnk4M/+zj25YhTU+GxufrEiR8ksz8So= Original-Received: by 10.36.36.4 with SMTP id j4mr1896531nzj; Sat, 01 Oct 2005 15:33:15 -0700 (PDT) Original-Received: by 10.36.36.6 with HTTP; Sat, 1 Oct 2005 15:33:15 -0700 (PDT) Original-To: rms@gnu.org In-Reply-To: X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:43440 Archived-At: ------=_Part_7826_6405744.1128205995879 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On 10/1/05, Richard M. Stallman wrote: > Thanks very much for sending this update. Now is a good time to > install it. great! i'll be glad to see these improvements out there in the world... > Could you be so kind as to itemize the change log, describing which > functions/defuns have been changed, and how? We need that in order > to install the change. > > Also, we need to have an item for etc/NEWS. Would you please write one? i've attached new versions of the patch and ChangeLog, and an etc/NEWS snip= pet. please use the new version of the patch, rather than the one i sent yesterday. it includes an xemacs compatibility provision for a problem i hadn't noticed until after i sent the patch out yesterday.=20 it also includes several small adjustments i noticed while doing the detailed enumeration of the functions that were changed. i'm cc'ing emacs-devel, figuring that's where the material will be used. ken ken.manheimer@gmail.com ------=_Part_7826_6405744.1128205995879 Content-Type: text/plain; name="allout-patch.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="allout-patch.txt" LS0tIGFsbG91dC5lbC5+MS42MS5+CTIwMDUtMDgtMDYgMTg6MTM6NDEuMDAwMDAwMDAwIC0wNDAw CisrKyBhbGxvdXQuZWwJMjAwNS0xMC0wMSAxNzo0NzoxMi4wMDAwMDAwMDAgLTA0MDAKQEAgLTMs MTAgKzMsMTEgQEAKIDs7IENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMjAwMSwgMjAw MiwgMjAwMywgMjAwNCwKIDs7ICAgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K IAotOzsgQXV0aG9yOiBLZW4gTWFuaGVpbWVyIDxrbG1Aem9wZS5jb20+Ci07OyBNYWludGFpbmVy OiBLZW4gTWFuaGVpbWVyIDxrbG1Aem9wZS5jb20+Cis7OyBBdXRob3I6IEtlbiBNYW5oZWltZXIg PGtlbiBkb3QgbWFuaGVpbWVyIGF0IGdtYWlsIGRvdCBjb20+Cis7OyBNYWludGFpbmVyOiBLZW4g TWFuaGVpbWVyIDxrZW4gZG90IG1hbmhlaW1lciBhdCBnbWFpbCBkb3QgY29tPgogOzsgQ3JlYXRl ZDogRGVjIDE5OTEgLSBmaXJzdCByZWxlYXNlIHRvIHVzZW5ldAotOzsgS2V5d29yZHM6IG91dGxp bmVzIG1vZGUgd3AgbGFuZ3VhZ2VzCis7OyBWZXJzaW9uOiAkSWQ6IGFsbG91dC5lbCx2IDEuNjgg MjAwNS8wOS8zMCAxOTo0ODoyNSBrbG0gRXhwICR8fAorOzsgS2V5d29yZHM6IG91dGxpbmVzIHdw IGxhbmd1YWdlcwogCiA7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCiAKQEAgLTM0 LDQzICszNSw2OCBAQAogOzsgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLiAgKEZvciBhbiBleGFtcGxl LCBzZWUgdGhlIGFsbG91dCBjb2RlCiA7OyBpdHNlbGYsIHdoaWNoIGlzIG9yZ2FuaXplZCBpbiA7 OyBhbiBvdXRsaW5lIGZyYW1ld29yay4pCiA7OwotOzsgSW4gYWRkaXRpb24gdG8gb3V0bGluZSBu YXZpZ2F0aW9uIGFuZCBleHBvc3VyZSwgYWxsb3V0IGluY2x1ZGVzOgorOzsgU29tZSBmZWF0dXJl czoKIDs7Ci07OyAgLSB0b3BpYy1vcmllbnRlZCByZXBvc2l0aW9uaW5nLCBjdXQsIGFuZCBwYXN0 ZQotOzsgIC0gaW50ZWdyYWwgb3V0bGluZSBleHBvc3VyZS1sYXlvdXQKLTs7ICAtIGluY3JlbWVu dGFsIHNlYXJjaCB3aXRoIGR5bmFtaWMgZXhwb3N1cmUgYW5kIHJlY29uY2VhbG1lbnQgb2YgaGlk ZGVuIHRleHQKKzs7ICAtIGNsYXNzaWMgb3V0bGluZS1tb2RlIHRvcGljLW9yaWVudGVkIG5hdmln YXRpb24gYW5kIGV4cG9zdXJlIGFkanVzdG1lbnQKKzs7ICAtIHRvcGljLW9yaWVudGVkIGVkaXRp bmcgaW5jbHVkaW5nIGNvaGVyZW50IHRvcGljIGFuZCBzdWJ0b3BpYworOzsgICAgY3JlYXRpb24s IHByb21vdGlvbiwgZGVtb3Rpb24sIGN1dC9wYXN0ZSBhY3Jvc3MgZGVwdGhzLCBldGMKKzs7ICAt IGluY3JlbWVudGFsIHNlYXJjaCB3aXRoIGR5bmFtaWMgZXhwb3N1cmUgYW5kIHJlY29uY2VhbG1l bnQgb2YgdGV4dAorOzsgIC0gY3VzdG9taXphYmxlIGJ1bGxldCBmb3JtYXQgZW5ibGVzIHByb2dy YW1taW5nLWxhbmd1YWdlIHNwZWNpZmljCis7OyAgICBvdXRsaW5pbmcsIGZvciB1bHRpbWF0ZSBj b2RlLWZvbGRpbmcgZWRpdGluZy4gIChhbGxvdXQgY29kZSBpdHNlbGYgaXMKKzs7ICAgIGZvcm1h dHRlZCBhcyBhbiBvdXRsaW5lIC0gZG8gRVNDLXggZXZhbC1jdXJyZW50LWJ1ZmZlciBpbiBhbGxv dXQuZWwKKzs7ICAgIHRvIHRyeSBpdCBvdXQuKQorOzsgIC0gY29uZmlndXJhYmxlIHBlci1maWxl IGluaXRpYWwgZXhwb3N1cmUgc2V0dGluZ3MKKzs7ICAtIHN5bW1ldHJpYy1rZXkgYW5kIGtleS1w YWlyIHRvcGljIGVuY3J5cHRpb24sIHBsdXMgcmVsaWFibGUga2V5Cis7OyAgICB2ZXJpZmljYXRp b24gYW5kIHVzZXItc3VwcGxpZWQgaGludCBtYWludGVuYW5jZS4gIChzZWUKKzs7ICAgIGFsbG91 dC10b2dnbGUtY3VycmVudC1zdWJ0cmVlLWVuY3J5cHRpb24gZG9jc3RyaW5nLikKIDs7ICAtIGF1 dG9tYXRpYyB0b3BpYy1udW1iZXIgbWFpbnRlbmFuY2UKLTs7ICAtICJIb3Qtc3BvdCIgb3BlcmF0 aW9uLCBmb3Igc2luZ2xlLWtleXN0cm9rZSBtYW5ldXZlcmluZyBhbmQKLTs7ICAgIGV4cG9zdXJl IGNvbnRyb2wuICAoU2VlIHRoZSBgYWxsb3V0LW1vZGUnIGRvY3N0cmluZy4pCis7OyAgLSAiaG90 LXNwb3QiIG9wZXJhdGlvbiwgZm9yIHNpbmdsZS1rZXlzdHJva2UgbWFuZXV2ZXJpbmcgYW5kCis7 OyAgICBleHBvc3VyZSBjb250cm9sIChzZWUgdGhlIGFsbG91dC1tb2RlIGRvY3N0cmluZykKKzs7 ICAtIGVhc3kgcmVuZGVyaW5nIG9mIGV4cG9zZWQgcG9ydGlvbnMgaW50byBudW1iZXJlZCwgbGF0 ZXgsIGluZGVudGVkLCBldGMKKzs7ICAgIG91dGxpbmUgc3R5bGVzCiA7OwotOzsgYW5kIG1hbnkg b3RoZXIgZmVhdHVyZXMuCis7OyBhbmQgbW9yZS4KIDs7CiA7OyBUaGUgb3V0bGluZSBtZW51YmFy IGFkZGl0aW9ucyBwcm92aWRlIHF1aWNrIHJlZmVyZW5jZSB0byBtYW55IG9mCi07OyB0aGUgZmVh dHVyZXMsIGFuZCBzZWUgdGhlIGRvY3N0cmluZyBvZiB0aGUgZnVuY3Rpb24gYGFsbG91dC1pbml0 JwotOzsgZm9yIGluc3RydWN0aW9ucyBvbiBwcmltaW5nIHlvdXIgRW1hY3Mgc2Vzc2lvbiBmb3Ig YXV0b21hdGljCi07OyBhY3RpdmF0aW9uIG9mIGBhbGxvdXQtbW9kZScuCis7OyB0aGUgZmVhdHVy ZXMsIGFuZCBzZWUgdGhlIGRvY3N0cmluZyBvZiB0aGUgdmFyaWFibGUgYGFsbG91dC1pbml0Jwor OzsgZm9yIGluc3RydWN0aW9ucyBvbiBwcmltaW5nIHlvdXIgZW1hY3Mgc2Vzc2lvbiBmb3IgYXV0 b21hdGljCis7OyBhY3RpdmF0aW9uIG9mIGFsbG91dC1tb2RlLgogOzsKIDs7IFNlZSB0aGUgZG9j c3RyaW5nIG9mIHRoZSB2YXJpYWJsZXMgYGFsbG91dC1sYXlvdXQnIGFuZAogOzsgYGFsbG91dC1h dXRvLWFjdGl2YXRpb24nIGZvciBkZXRhaWxzIG9uIGF1dG9tYXRpYyBhY3RpdmF0aW9uIG9mCi07 OyBhbGxvdXQgYGFsbG91dC1tb2RlJyBhcyBhIG1pbm9yIG1vZGUuICAoSXQgaGFzIGNoYW5nZWQg c2luY2UgYWxsb3V0Cis7OyBgYWxsb3V0LW1vZGUnIGFzIGEgbWlub3IgbW9kZS4gIChJdCBoYXMg Y2hhbmdlZCBzaW5jZSBhbGxvdXQKIDs7IDMueCwgZm9yIHRob3NlIG9mIHlvdSB0aGF0IGRlcGVu ZCBvbiB0aGUgb2xkIG1ldGhvZC4pCiA7OwogOzsgTm90ZSAtIHRoZSBsaW5lcyBiZWdpbm5pbmcg d2l0aCBgOzs7XycgYXJlIG91dGxpbmUgdG9waWMgaGVhZGVycy4KIDs7ICAgICAgICBKdXN0IGBF U0MteCBldmFsLWN1cnJlbnQtYnVmZmVyJyB0byBnaXZlIGl0IGEgd2hpcmwuCiAKLTs7IEtlbiBN YW5oZWltZXIJa2xtQHpvcGUuY29tCis7OyBrZW4gbWFuaGVpbWVyIChrZW4gZG90IG1hbmhlaW1l ciBhdCBnbWFpbCBkb3QgY29tKQogCiA7OzsgQ29kZToKIAogOzs7XyogUHJvdmlkZQorOyhwcm92 aWRlICdvdXRsaW5lKQogKHByb3ZpZGUgJ2FsbG91dCkKIAorOzs7XyogRGVwZW5kZW5jeSBhdXRv bG9hZHMKKyhldmFsLXdoZW4tY29tcGlsZSAnY2wpICAgICAgICAgICAgICAgICA7IG90aGVyd2lz ZSwgZmxldCBjb21waWxhdGlvbiBmb3VscworKGF1dG9sb2FkICdjcnlwdC1lbmNyeXB0LWJ1ZmZl ciAiY3J5cHQrKyIpCisoc2V0cS1kZWZhdWx0IGNyeXB0LWVuY3J5cHRpb24tdHlwZSAnZ3BnKQor CisoYXV0b2xvYWQgJ21jLWVuY3J5cHQgIm1haWxjcnlwdCIKKyAgIipFbmNyeXB0IHRoZSBjdXJy ZW50IGJ1ZmZlciIpCisoYXV0b2xvYWQgJ21jLWFjdGl2YXRlLXBhc3N3ZCAibWFpbGNyeXB0Igor ICAiQWN0aXZhdGUgdGhlIHBhc3NwaHJhc2UgbWF0Y2hpbmcgSUQsIHVzaW5nIFBST01QVCBmb3Ig YSBwcm9tcHQuCitSZXR1cm4gdGhlIHBhc3NwaHJhc2UuICBJZiBQUk9NUFQgaXMgbmlsLCBvbmx5 IHJldHVybiB2YWx1ZSBpZiBjYWNoZWQuIikKKyhhdXRvbG9hZCAnbWMtZ3BnLXByb2Nlc3MtcmVn aW9uICJtYy1ncGciKQorKGF1dG9sb2FkICdtYy1kZWN0aXZhdGUtcGFzc3dkICJtYWlsY3J5cHQi CisgICIqRGVhY3RpdmF0ZSB0aGUgcGFzc3BocmFzZSBjYWNoZS4iKQorCiA7OztfKiBVU0VSIENV U1RPTUlaQVRJT04gVkFSSUFCTEVTOgogKGRlZmdyb3VwIGFsbG91dCBuaWwKICAgIkV4dGVuc2l2 ZSBvdXRsaW5lIG1vZGUgZm9yIHVzZSBhbG9uZSBhbmQgd2l0aCBvdGhlciBtb2Rlcy4iCiAgIDpw cmVmaXggImFsbG91dC0iCi0gIDpncm91cCAnZWRpdGluZwotICA6dmVyc2lvbiAiMjIuMSIpCisg IDpncm91cCAnb3V0bGluZXMpCiAKIDs7O18gKyBMYXlvdXQsIE1vZGUsIGFuZCBUb3BpYyBIZWFk ZXIgQ29uZmlndXJhdGlvbgogCkBAIC0xMTEsOCArMTM3LDggQEAKIAogQSBsaXN0IHZhbHVlIHNw ZWNpZmllcyBhIGRlZmF1bHQgbGF5b3V0IGZvciB0aGUgY3VycmVudCBidWZmZXIsIHRvIGJlCiBh cHBsaWVkIHVwb24gYWN0aXZhdGlvbiBvZiBgYWxsb3V0LW1vZGUnLiAgQW55IG5vbi1uaWwgdmFs dWUgd2lsbAotYXV0b21hdGljYWxseSB0cmlnZ2VyIGBhbGxvdXQtbW9kZScsIHByb3ZpZGVkIGBh bGxvdXQtaW5pdCcKLWhhcyBiZWVuIGNhbGxlZCB0byBlbmFibGUgaXQuCithdXRvbWF0aWNhbGx5 IHRyaWdnZXIgYGFsbG91dC1tb2RlJyBcKHByb3ZpZGVkIGBhbGxvdXQtaW5pdCcgaGFzIGJlZW4g Y2FsbGVkCit0byBlbmFibGUgdGhpcyBiZWhhdmlvcikuCiAKIFNlZSB0aGUgZG9jc3RyaW5nIGZv ciBgYWxsb3V0LWluaXQnIGZvciBkZXRhaWxzIG9uIHNldHRpbmcgdXAgZm9yCiBhdXRvLW1vZGUt YWN0aXZhdGlvbiwgYW5kIGZvciBgYWxsb3V0LWV4cG9zZS10b3BpYycgZm9yIHRoZSBmb3JtYXQg b2YKQEAgLTE3MSw3ICsxOTcsNyBAQAogICA6Z3JvdXAgJ2FsbG91dCkKIChtYWtlLXZhcmlhYmxl LWJ1ZmZlci1sb2NhbCAnYWxsb3V0LXByaW1hcnktYnVsbGV0KQogOzs7XyAgPSBhbGxvdXQtcGxh aW4tYnVsbGV0cy1zdHJpbmcKLShkZWZjdXN0b20gYWxsb3V0LXBsYWluLWJ1bGxldHMtc3RyaW5n ICIuOiw7IgorKGRlZmN1c3RvbSBhbGxvdXQtcGxhaW4tYnVsbGV0cy1zdHJpbmcgIi4sIgogICAi KlRoZSBidWxsZXRzIG5vcm1hbGx5IHVzZWQgaW4gb3V0bGluZSB0b3BpYyBwcmVmaXhlcy4KIAog U2VlIGBhbGxvdXQtZGlzdGluY3RpdmUtYnVsbGV0cy1zdHJpbmcnIGZvciB0aGUgb3RoZXIga2lu ZCBvZgpAQCAtMTg1LDcgKzIxMSw3IEBACiAgIDpncm91cCAnYWxsb3V0KQogKG1ha2UtdmFyaWFi bGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtcGxhaW4tYnVsbGV0cy1zdHJpbmcpCiA7OztfICA9IGFs bG91dC1kaXN0aW5jdGl2ZS1idWxsZXRzLXN0cmluZwotKGRlZmN1c3RvbSBhbGxvdXQtZGlzdGlu Y3RpdmUtYnVsbGV0cy1zdHJpbmcgIiorLT0+KFt7fSYhPyMlXCJYQCR+X1xcIgorKGRlZmN1c3Rv bSBhbGxvdXQtZGlzdGluY3RpdmUtYnVsbGV0cy1zdHJpbmcgIiorLT0+KClbe30mIT8jJVwiWEAk fl9cXDo7XiIKICAgIipQZXJzaXN0ZW50IG91dGxpbmUgaGVhZGVyIGJ1bGxldHMgdXNlZCB0byBk aXN0aW5ndWlzaCBzcGVjaWFsIHRvcGljcy4KIAogVGhlc2UgYnVsbGV0cyBhcmUgdXNlZCB0byBk aXN0aW5ndWlzaCB0b3BpY3MgZnJvbSB0aGUgcnVuLW9mLXRoZS1taWxsCkBAIC0xOTgsMTIgKzIy NCwxMyBAQAogIGA/JyBxdWVzdGlvbiB0b3BpY3MKICBgXCgnIHBhcmVudGhldGljIGNvbW1lbnQg XCh3aXRoIGEgbWF0Y2hpbmcgY2xvc2UgcGFyZW4gaW5zaWRlKQogIGBbJyBtZXRhLW5vdGUgXCh3 aXRoIGEgbWF0Y2hpbmcgY2xvc2UgXSBpbnNpZGUpCi0gYFwiJyBhIHF1b3RlCisgYFwiJyBhIHF1 b3RhdGlvbgogIGA9JyB2YWx1ZSBzZXR0aW5ncwogIGB+JyBcIm1vcmUgb3IgbGVzc1wiCisgYF4n IHNlZSBhYm92ZQogCi0uLi4ganVzdCBmb3IgZXhhbXBsZS4gIChgIycgdHlwaWNhbGx5IGhhcyBh IHNwZWNpYWwgbWVhbmluZyB0byB0aGUKLXNvZnR3YXJlLCBhY2NvcmRpbmcgdG8gdGhlIHZhbHVl IG9mIGBhbGxvdXQtbnVtYmVyZWQtYnVsbGV0Jy4pCisgLi4uIGZvciBleGFtcGxlLiAgKGAjJyB0 eXBpY2FsbHkgaGFzIGEgc3BlY2lhbCBtZWFuaW5nIHRvIHRoZSBzb2Z0d2FyZSwKK2FjY29yZGlu ZyB0byB0aGUgdmFsdWUgb2YgYGFsbG91dC1udW1iZXJlZC1idWxsZXQnLikKIAogU2VlIGBhbGxv dXQtcGxhaW4tYnVsbGV0cy1zdHJpbmcnIGZvciB0aGUgc2VsZWN0aW9uIG9mCiBhbHRlcm5hdGlu ZyBidWxsZXRzLgpAQCAtMzM3LDcgKzM2NCw2IEBACiBTZXQgdGhpcyB2YXIgdG8gdGhlIGJ1bGxl dCB5b3Ugd2FudCB0byB1c2UgZm9yIGZpbGUgY3Jvc3MtcmVmZXJlbmNlcy4iCiAgIDp0eXBlICco Y2hvaWNlIChjb25zdCBuaWwpIHN0cmluZykKICAgOmdyb3VwICdhbGxvdXQpCi0KIDs7O18gID0g YWxsb3V0LXByZXNlbnRhdGlvbi1wYWRkaW5nCiAoZGVmY3VzdG9tIGFsbG91dC1wcmVzZW50YXRp b24tcGFkZGluZyAyCiAgICIqUHJlc2VudGF0aW9uLWZvcm1hdCB3aGl0ZS1zcGFjZSBwYWRkaW5n IGZhY3RvciwgZm9yIGdyZWF0ZXIgaW5kZW50LiIKQEAgLTM4MSw3ICs0MDcsNyBAQAogICA6dHlw ZSAnc3RyaW5nCiAgIDpncm91cCAnYWxsb3V0KQogOzs7XyAgLSBhbGxvdXQtdGl0bGUKLShkZWZj dXN0b20gYWxsb3V0LXRpdGxlICcob3IgYnVmZmVyLWZpbGUtbmFtZSAoY3VycmVudC1idWZmZXIt bmFtZSkpCisoZGVmY3VzdG9tIGFsbG91dC10aXRsZSAnKG9yIGJ1ZmZlci1maWxlLW5hbWUgKGJ1 ZmZlci1uYW1lKSkKICAgIipFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCB0byBkZXRlcm1pbmUg dGhlIHRpdGxlIGZvciBMYVRlWAogZm9ybWF0dGVkIGNvcHkuIgogICA6dHlwZSAnc2V4cApAQCAt Mzk3LDYgKzQyMyw5NCBAQAogICA6dHlwZSAnc3RyaW5nCiAgIDpncm91cCAnYWxsb3V0KQogCis7 OztfICsgVG9waWMgZW5jcnlwdGlvbgorOzs7XyAgPSBhbGxvdXQtdG9waWMtZW5jcnlwdGlvbi1i dWxsZXQKKyhkZWZjdXN0b20gYWxsb3V0LXRvcGljLWVuY3J5cHRpb24tYnVsbGV0ICJ+IgorICAi KkJ1bGxldCBzaWduaWZ5aW5nIGVuY3J5cHRpb24gb2YgdGhlIGVudHJ5J3MgYm9keS4iCisgIDp0 eXBlICcoY2hvaWNlIChjb25zdCBuaWwpIHN0cmluZykKKyAgOmdyb3VwICdhbGxvdXQpCis7Oztf ICA9IGFsbG91dC1kZWZhdWx0LWVuY3J5cHRpb24tc2NoZW1lCisoZGVmY3VzdG9tIGFsbG91dC1k ZWZhdWx0LWVuY3J5cHRpb24tc2NoZW1lICdtYy1zY2hlbWUtZ3BnCisgICIqRGVmYXVsdCBhbGxv dXQgb3V0bGluZSB0b3BpYyBlbmNyeXB0aW9uIG1vZGUuCisKK1NlZSBtYWlsY3J5cHQgdmFyaWFi bGUgYG1jLXNjaGVtZXMnIGFuZCBtYWlsY3J5cHQgZG9jcyBmb3IgZW5jcnlwdGlvbiBzY2hlbWVz LiIKKyAgOnR5cGUgJ3N5bWJvbAorICA6Z3JvdXAgJ2FsbG91dCkKKzs7O18gID0gYWxsb3V0LWtl eS12ZXJpZmllci1oYW5kbGluZworKGRlZmN1c3RvbSBhbGxvdXQta2V5LXZlcmlmaWVyLWhhbmRs aW5nICdzaXR1YXRlCisgICIqRGljdGF0ZSBvdXRsaW5lIGVuY3J5cHRpb24ga2V5IHZlcmlmaWVy IGhhbmRsaW5nLgorCitUaGUga2V5IHZlcmlmaWVyIGlzIHN0cmluZyBhc3NvY2lhdGVkIHdpdGgg YSBmaWxlIHRoYXQgaXMgZW5jcnlwdGVkIHdpdGgKK3RoZSBmaWxlJ3MgY3VycmVudCBzeW1tZXRy aWMgZW5jcnlwdGlvbiBrZXkuICBJdCBpcyB1c2VkLCBpZiBwcmVzZW50LCB0bworY29uZmlybSB0 aGF0IHRoZSBrZXkgZW50ZXJlZCBieSB0aGUgdXNlciBpcyB0aGUgc2FtZSBhcyB0aGUgZXN0YWJs aXNoZWQKK29uZSwgb3IgZXhwbGljaXRseSBwcmVzZW50aW5nIHRoZSB1c2VyIHdpdGggdGhlIGNo b2ljZSB0byBnbyB3aXRoIGEKK25ldyBrZXkgd2hlbiBhIGRpZmZlcmVuY2UgaXMgZW5jb3VudGVy ZWQuCisKK1RoZSByYW5nZSBvZiB2YWx1ZXMgYXJlOgorCisgc2l0dWF0ZSAtIGluY2x1ZGUga2V5 IHZlcmlmaWVyIHN0cmluZyBhcyB0ZXh0IGluIHRoZSBmaWxlJ3MgbG9jYWwtdmFycworICAgICAg ICAgICBzZWN0aW9uCisgdHJhbnNpZW50IC0gZXN0YWJsaXNoIHRoZSB2YWx1ZSBhcyBhIHZhcmlh YmxlIGluIHRoZSBmaWxlJ3MgYnVmZmVyLCBidXQKKyAgICAgICAgICAgICBkb24ndCBwcmVzZXJ2 ZSBpdCBhcyBhIGZpbGUgdmFyaWFibGUuCisgZGlzYWJsZWQgLSBkb24ndCBlc3RhYmxpc2ggb3Ig ZG8gdmVyaWZpY2F0aW9uLgorCitTZWUgdGhlIGRvY3N0cmluZyBmb3IgdGhlIGBhbGxvdXQtZW5h YmxlLWZpbGUtdmFyaWFibGUtYWRqdXN0bWVudCcKK3ZhcmlhYmxlIGZvciBkZXRhaWxzIGFib3V0 IGFsbG91dCBhanVzdG1lbnQgb2YgZmlsZSB2YXJpYWJsZXMuIgorICA6dHlwZSAnKGNob2ljZSAo Y29uc3Qgc2l0dWF0ZSkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IHRyYW5zaWVudCkKKyAgICAg ICAgICAgICAgICAgKGNvbnN0IGRpc2FibGVkKSkKKyAgOmdyb3VwICdhbGxvdXQpCisobWFrZS12 YXJpYWJsZS1idWZmZXItbG9jYWwgJ2FsbG91dC1rZXktdmVyaWZpZXItaGFuZGxpbmcpCis7Oztf ICA9IGFsbG91dC1rZXktaGludC1oYW5kbGluZworKGRlZmN1c3RvbSBhbGxvdXQta2V5LWhpbnQt aGFuZGxpbmcgJ2Fsd2F5cworICAiKkRpY3RhdGUgb3V0bGluZSBlbmNyeXB0aW9uIGtleSByZW1p bmRlciBoYW5kbGluZzoKKworIGFsd2F5cyAtIGFsd2F5cyBzaG93IHJlbWluZGVyIHdoZW4gcHJv bXB0aW5nCisgbmVlZGVkIC0gc2hvdyByZW1pbmRlciBvbiBrZXkgZW50cnkgZmFpbHVyZQorIG1h bmFnZSAtIG5ldmVyIHByZXNlbnQgcmVtaW5kZXIsIGJ1dCBzdGlsbCBtYW5hZ2UgYSBmaWxlLXZh ciBlbnRyeSBmb3IgaXQKKyBkaXNhYmxlZCAtIGRvbid0IGV2ZW4gbWFuYWdlIHRoZSBmaWxlIHZh cmlhYmxlIGVudHJ5CisKK1NlZSB0aGUgZG9jc3RyaW5nIGZvciB0aGUgYGFsbG91dC1lbmFibGUt ZmlsZS12YXJpYWJsZS1hZGp1c3RtZW50JwordmFyaWFibGUgZm9yIGRldGFpbHMgYWJvdXQgYWxs b3V0IGFqdXN0bWVudCBvZiBmaWxlIHZhcmlhYmxlcy4iCisgIDp0eXBlICcoY2hvaWNlIChjb25z dCBhbHdheXMpCisgICAgICAgICAgICAgICAgIChjb25zdCBuZWVkZWQpCisgICAgICAgICAgICAg ICAgIChjb25zdCBtYW5hZ2UpCisgICAgICAgICAgICAgICAgIChjb25zdCBkaXNhYmxlZCkpCisg IDpncm91cCAnYWxsb3V0KQorKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQta2V5 LWhpbnQtaGFuZGxpbmcpCis7OztfICA9IGFsbG91dC1lbmNyeXB0LXVuZW5jcnlwdGVkLW9uLXNh dmVzCisoZGVmY3VzdG9tIGFsbG91dC1lbmNyeXB0LXVuZW5jcnlwdGVkLW9uLXNhdmVzICdleGNl cHQtY3VycmVudAorICAiKldoZW4gc2F2aW5nLCBzaG91bGQgdG9waWNzIHBlbmRpbmcgZW5jcnlw dGlvbiBiZSBlbmNyeXB0ZWQ/CisKK1RoZSBpZGVhIGlzIHRvIHByZXZlbnQgZmlsZS1zeXN0ZW0g ZXhwb3N1cmUgb2YgYW55IHVuLWVuY3J5cHRlZCBzdHVmZiwgYW5kCittb3N0bHkgY292ZXJzIGJv dGggZGVsaWJlcmF0ZSBmaWxlIHdyaXRlcyBhbmQgYXV0by1zYXZlcy4KKworIC0gWWVzOiBlbmNy eXB0IGFsbCB0b3BpY3MgcGVuZGluZyBlbmNyeXB0aW9uLCBldmVuIGlmIGl0J3MgdGhlIG9uZQor ICAgICAgICBjdXJyZW50bHkgYmVpbmcgZWRpdGVkLiAgXChJbiB0aGF0IGNhc2UsIHRoZSBjdXJy ZW50bHkgZWRpdGVkIHRvcGljCisgICAgICAgIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZWNyeXB0 ZWQgYmVmb3JlIGFueSB1c2VyIGludGVyYWN0aW9uLCBzbyB0aGV5CisgICAgICAgIGNhbiBjb250 aW51ZSBlZGl0aW5nIGJ1dCB0aGUgY29weSBvbiB0aGUgZmlsZSBzeXN0ZW0gd2lsbCBiZQorICAg ICAgICBlbmNyeXB0ZWQuKQorICAgICAgICBBdXRvLXNhdmVzIHdpbGwgdXNlIHRoZSBcIkFsbCBl eGNlcHQgY3VycmVudCB0b3BpY1wiIG1vZGUgaWYgdGhpcworICAgICAgICBvbmUgaXMgc2VsZWN0 ZWQsIHRvIGF2b2lkIHByYWN0aWNhbCBkaWZmaWN1bHRpZXMgLSBzZWUgYmVsb3cuCisgLSBBbGwg ZXhjZXB0IGN1cnJlbnQgdG9waWM6IHNraXAgdGhlIHRvcGljIGN1cnJlbnRseSBiZWluZyBlZGl0 ZWQsIGV2ZW4gaWYKKyAgICAgICBpdCdzIHBlbmRpbmcgZW5jcnlwdGlvbi4gIFRoaXMgbWF5IGV4 cG9zZSB0aGUgY3VycmVudCB0b3BpYyBvbiB0aGUKKyAgICAgICBmaWxlIHN5dGVtLCBidXQgYXZv aWRzIHRoZSBudWlzYW5jZSBvZiBwcm9tcHRzIGZvciB0aGUgZW5jcnlwdGlvbgorICAgICAgIGtl eSBpbiB0aGUgbWlkZGxlIG9mIGVkaXRpbmcgZm9yLCBlZywgYXV0b3NhdmVzLgorICAgICAgIFRo aXMgbW9kZSBpcyB1c2VkIGZvciBhdXRvLXNhdmVzIGZvciBib3RoIHRoaXMgb3B0aW9uIGFuZCBc Illlc1wiLgorIC0gTm86IGxlYXZlIGl0IHRvIHRoZSB1c2VyIHRvIGVuY3J5cHQgYW55IHVuZW5j cnlwdGVkIHRvcGljcy4KKworRm9yIHByYWN0aWNhbCByZWFzb25zLCBhdXRvLXNhdmVzIGFsd2F5 cyB1c2UgdGhlICdleGNlcHQtY3VycmVudCBwb2xpY3kKK3doZW4gYXV0by1lbmNyeXB0aW9uIGlz IGVuYWJsZWQuICBcKE90aGVyd2lzZSwgc3B1cmlvdXMga2V5IHByb21wdHMgYW5kCit1bmF2b2lk YWJsZSB0aW1pbmcgY29sbGlzaW9ucyBhcmUgdG9vIGRpc3J1cHRpdmUuKSAgSWYgc2VjdXJpdHkg Zm9yIGEgZmlsZQorcmVxdWlyZXMgdGhhdCBldmVuIHRoZSBjdXJyZW50IHRvcGljIGlzIG5ldmVy IGF1dG8tc2F2ZWQgaW4gdGhlIGNsZWFyLAorZGlzYWJsZSBhdXRvLXNhdmVzIGZvciB0aGF0IGZp bGUuIgorCisgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJZZXMiIHQpCisgICAgICAgICAg ICAgICAgIChjb25zdCA6dGFnICJBbGwgZXhjZXB0IGN1cnJlbnQgdG9waWMiIGV4Y2VwdC1jdXJy ZW50KQorICAgICAgICAgICAgICAgICAoY29uc3QgOnRhZyAiTm8iIG5pbCkpCisgIDpncm91cCAn YWxsb3V0KQorKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtZW5jcnlwdC11bmVu Y3J5cHRlZC1vbi1zYXZlcykKKwogOzs7XyArIE1pc2NlbGxhbmVvdXMgY3VzdG9taXphdGlvbgog CiA7OztfICA9IGFsbG91dC1jb21tYW5kLXByZWZpeApAQCAtNDIyLDEzICs1MzYsMTUgQEAKICAg ICAgICAgKCJcQy1mIiBhbGxvdXQtZm9yd2FyZC1jdXJyZW50LWxldmVsKQogICAgICAgICAoIlxD LWIiIGFsbG91dC1iYWNrd2FyZC1jdXJyZW50LWxldmVsKQogICAgICAgICAoIlxDLWEiIGFsbG91 dC1iZWdpbm5pbmctb2YtY3VycmVudC1lbnRyeSkKLSAgICAgICAgKCJcQy1lIiBhbGxvdXQtZW5k LW9mLWN1cnJlbnQtZW50cnkpCisgICAgICAgICgiXEMtZSIgYWxsb3V0LWVuZC1vZi1lbnRyeSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IEV4cG9zdXJlIGNvbW1h bmRzOgogICAgICAgICAoIlxDLWkiIGFsbG91dC1zaG93LWNoaWxkcmVuKQogICAgICAgICAoIlxD LXMiIGFsbG91dC1zaG93LWN1cnJlbnQtc3VidHJlZSkKICAgICAgICAgKCJcQy1oIiBhbGxvdXQt aGlkZS1jdXJyZW50LXN1YnRyZWUpCisgICAgICAgICgiaCIgYWxsb3V0LWhpZGUtY3VycmVudC1z dWJ0cmVlKQogICAgICAgICAoIlxDLW8iIGFsbG91dC1zaG93LWN1cnJlbnQtZW50cnkpCiAgICAg ICAgICgiISIgYWxsb3V0LXNob3ctYWxsKQorICAgICAgICAoIngiIGFsbG91dC10b2dnbGUtY3Vy cmVudC1zdWJ0cmVlLWVuY3J5cHRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOyBBbHRlcmF0aW9uIGNvbW1hbmRzOgogICAgICAgICAoIiAiIGFsbG91dC1vcGVu LXNpYnRvcGljKQogICAgICAgICAoIi4iIGFsbG91dC1vcGVuLXN1YnRvcGljKQpAQCAtNDg5LDE5 ICs2MDUsMjIgQEAKIAogKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtcmVpbmRl bnQtYm9kaWVzKQogCi07OztfICA9IGFsbG91dC1pbmhpYml0LXByb3RlY3Rpb24KLShkZWZjdXN0 b20gYWxsb3V0LWluaGliaXQtcHJvdGVjdGlvbiBuaWwKLSAgIipOb24tbmlsIGRpc2FibGVzIHdh cm5pbmdzIGFuZCBjb25maXJtYXRpb24tY2hlY2tzIGZvciBjb25jZWFsZWQtdGV4dCBlZGl0cy4K LQotT3V0bGluZSBtb2RlIHVzZXMgRW1hY3MgY2hhbmdlLXRyaWdnZXJlZCBmdW5jdGlvbnMgdG8g ZGV0ZWN0IHVucnVseQotY2hhbmdlcyB0byBjb25jZWFsZWQgcmVnaW9ucy4gIFNldCB0aGlzIHZh ciBub24tbmlsIHRvIGRpc2FibGUgdGhlCi1wcm90ZWN0aW9uLCBwb3RlbnRpYWxseSBpbmNyZWFz aW5nIHRleHQtZW50cnkgcmVzcG9uc2l2ZW5lc3MgYSBiaXQuCi0KLVRoaXMgdmFyIHRha2VzIGVm ZmVjdCBhdCBgYWxsb3V0LW1vZGUnIGFjdGl2YXRpb24sIHNvIHlvdSBtYXkgaGF2ZSB0bwotZGVh Y3RpdmF0ZSBhbmQgdGhlbiByZWFjdGl2YXRlIHRoZSBtb2RlIGlmIHlvdSB3YW50IHRvIHRvZ2ds ZSB0aGUKLWJlaGF2aW9yLiIKKzs7O18gID0gYWxsb3V0LWVuYWJsZS1maWxlLXZhcmlhYmxlLWFk anVzdG1lbnQKKyhkZWZjdXN0b20gYWxsb3V0LWVuYWJsZS1maWxlLXZhcmlhYmxlLWFkanVzdG1l bnQgdAorICAiKklmIG5vbi1uaWwsIHNvbWUgYWxsb3V0IG91dGxpbmUgYWN0aW9ucyBjYW4gZWRp dCBFbWFjcyBmaWxlIHZhcmlhYmxlcyB0ZXh0LgorCitUaGlzIGNhbiByYW5nZSBmcm9tIGNoYW5n ZXMgdG8gZXhpc3RpbmcgZW50cmllcywgYWRkaXRpb24gb2YgbmV3IG9uZXMsCithbmQgY3JlYXRp b24gb2YgYSBuZXcgbG9jYWwgdmFyaWFibGVzIHNlY3Rpb24gd2hlbiBuZWNlc3NhcnkuCisKK0Vt YWNzIGZpbGUgdmFyaWFibGVzIGFkanVzdG1lbnRzIGFyZSBhbHNvIGluaGliaXRlZCBpZiBgZW5h YmxlLWxvY2FsLXZhcmlhYmxlcycKK2lzIG5pbC4KKworT3BlcmF0aW9ucyBwb3RlbnRpYWxseSBj YXVzaW5nIGVkaXRzIGluY2x1ZGUgYWxsb3V0IGVuY3J5cHRpb24gcm91dGluZXMuCitTZWUgdGhl IGRvY3N0cmluZyBmb3IgYGFsbG91dC10b2dnbGUtY3VycmVudC1zdWJ0cmVlLWVuY3J5cHRpb24n IGZvcgorZGV0YWlscy4iCiAgIDp0eXBlICdib29sZWFuCiAgIDpncm91cCAnYWxsb3V0KQorKG1h a2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtZW5hYmxlLWZpbGUtdmFyaWFibGUtYWRq dXN0bWVudCkKIAogOzs7XyogQ09ERSAtIG5vIHVzZXIgY3VzdG9taXphdGlvbnMgYmVsb3cuCiAK QEAgLTUwOSw3ICs2MjgsNyBAQAogOzs7XyAgOiBWZXJzaW9uCiA7OztfICAgPSBhbGxvdXQtdmVy c2lvbgogKGRlZnZhciBhbGxvdXQtdmVyc2lvbgotICAobGV0ICgocmNzLXJldiAiJFJldmlzaW9u JCIpKQorICAobGV0ICgocmNzLXJldiAiJFJldmlzaW9uOiAxLjY4ICQiKSkKICAgICAoY29uZGl0 aW9uLWNhc2UgZXJyCiAJKHNhdmUtbWF0Y2gtZGF0YQogCSAgKHN0cmluZy1tYXRjaCAiUmV2aXNp b246IFxcKFswLTldK1xcLlswLTldK1xcKSIgcmNzLXJldikKQEAgLTcyOCw3ICs4NDcsMTYgQEAK IAkJCSAgICAgIChjYXIgKGNkciBjZWxsKSkpKSkpKQogCSAgICBrZXltYXAtbGlzdCkKICAgICBt YXApKQotCis7OztfICAgPSBhbGxvdXQtcHJpb3ItYmluZGluZ3MgLSBiZWluZyBkZXByZWNhdGVk LgorKGRlZnZhciBhbGxvdXQtcHJpb3ItYmluZGluZ3MgbmlsCisgICJWYXJpYWJsZSBmb3IgdXNl IGluIFYxOCwgd2l0aCBhbGxvdXQtYWRkZWQtYmluZGluZ3MsIGZvcgorcmVzdXJyZWN0aW5nLCBv biBtb2RlIGRlYWN0aXZhdGlvbiwgYmluZGluZ3MgdGhhdCBleGlzdGVkIGJlZm9yZQorYWN0aXZh dGlvbi4gIEJlaW5nIGRlcHJlY2F0ZWQuIikKKzs7O18gICA9IGFsbG91dC1hZGRlZC1iaW5kaW5n cyAtIGJlaW5nIGRlcHJlY2F0ZWQKKyhkZWZ2YXIgYWxsb3V0LWFkZGVkLWJpbmRpbmdzIG5pbAor ICAiVmFyaWFibGUgZm9yIHVzZSBpbiBWMTgsIHdpdGggYWxsb3V0LXByaW9yLWJpbmRpbmdzLCBm b3IKK3Jlc3VycmVjdGluZywgb24gbW9kZSBkZWFjdGl2YXRpb24sIGJpbmRpbmdzIHRoYXQgZXhp c3RlZCBiZWZvcmUKK2FjdGl2YXRpb24uICBCZWluZyBkZXByZWNhdGVkLiIpCiA7OztfICA6IE1l bnUgYmFyCiAoZGVmdmFyIGFsbG91dC1tb2RlLWV4cG9zdXJlLW1lbnUpCiAoZGVmdmFyIGFsbG91 dC1tb2RlLWVkaXRpbmctbWVudSkKQEAgLTc1OSw3ICs4ODcsMTEgQEAKIAkJICAgICAgWyJTaGlm dCBUb3BpYyBPdXQiIGFsbG91dC1zaGlmdC1vdXQgdF0KIAkJICAgICAgWyJSZWJ1bGxldCBUb3Bp YyIgYWxsb3V0LXJlYnVsbGV0LXRvcGljIHRdCiAJCSAgICAgIFsiUmVidWxsZXQgSGVhZGluZyIg YWxsb3V0LXJlYnVsbGV0LWN1cnJlbnQtaGVhZGluZyB0XQotCQkgICAgICBbIk51bWJlciBTaWJs aW5ncyIgYWxsb3V0LW51bWJlci1zaWJsaW5ncyB0XSkpCisJCSAgICAgIFsiTnVtYmVyIFNpYmxp bmdzIiBhbGxvdXQtbnVtYmVyLXNpYmxpbmdzIHRdCisJCSAgICAgICItLS0tIgorICAgICAgICAg ICAgICAgICAgICAgIFsiVG9nZ2xlIFRvcGljIEVuY3J5cHRpb24iCisgICAgICAgICAgICAgICAg ICAgICAgIGFsbG91dC10b2dnbGUtY3VycmVudC1zdWJ0cmVlLWVuY3J5cHRpb24KKyAgICAgICAg ICAgICAgICAgICAgICAgKD4gKGFsbG91dC1jdXJyZW50LWRlcHRoKSAxKV0pKQogICAoZWFzeS1t ZW51LWRlZmluZSBhbGxvdXQtbW9kZS1uYXZpZ2F0aW9uLW1lbnUKIAkJICAgIGFsbG91dC1tb2Rl LW1hcAogCQkgICAgIkFsbG91dCBvdXRsaW5lIG5hdmlnYXRpb24gbWVudS4iCkBAIC03NzUsNyAr OTA3LDcgQEAKIAkJICAgICAgIi0tLS0iCiAJCSAgICAgIFsiQmVnaW5uaW5nIG9mIEVudHJ5Igog CQkgICAgICAgYWxsb3V0LWJlZ2lubmluZy1vZi1jdXJyZW50LWVudHJ5IHRdCi0JCSAgICAgIFsi RW5kIG9mIEVudHJ5IiBhbGxvdXQtZW5kLW9mLWN1cnJlbnQtZW50cnkgdF0KKwkJICAgICAgWyJF bmQgb2YgRW50cnkiIGFsbG91dC1lbmQtb2YtZW50cnkgdF0KIAkJICAgICAgWyJFbmQgb2YgU3Vi dHJlZSIgYWxsb3V0LWVuZC1vZi1jdXJyZW50LXN1YnRyZWUgdF0pKQogICAoZWFzeS1tZW51LWRl ZmluZSBhbGxvdXQtbW9kZS1taXNjLW1lbnUKIAkJICAgIGFsbG91dC1tb2RlLW1hcApAQCAtODU1 LDEzICs5ODcsNiBAQAogICAgICAgICAgIChzZXRxIGFsbG91dC1tb2RlLXByaW9yLXNldHRpbmdz IHJlYnVpbGQpKSkpKQogICApCiA7OztfICA6IE1vZGUtc3BlY2lmaWMgaW5jaWRlbnRhbHMKLTs7 O18gICA9IGFsbG91dC1kdXJpbmctd3JpdGUtY3VlIG5pbAotKGRlZnZhciBhbGxvdXQtZHVyaW5n LXdyaXRlLWN1ZSBuaWwKLSAgIlVzZWQgdG8gaW5oaWJpdCBvdXRsaW5lIGNoYW5nZS1wcm90ZWN0 aW9uIGR1cmluZyBmaWxlIHdyaXRlLgotCi1TZWUgYWxzbyBgYWxsb3V0LXBvc3QtY29tbWFuZC1i dXNpbmVzcycsIGBhbGxvdXQtd3JpdGUtZmlsZS1ob29rJywKLWBhbGxvdXQtYmVmb3JlLWNoYW5n ZS1wcm90ZWN0JywgYW5kIGBhbGxvdXQtcG9zdC1jb21tYW5kLWJ1c2luZXNzJwotZnVuY3Rpb25z LiIpCiA7OztfICAgPSBhbGxvdXQtcHJlLXdhcy1pc2VhcmNoaW5nIG5pbAogKGRlZnZhciBhbGxv dXQtcHJlLXdhcy1pc2VhcmNoaW5nIG5pbAogICAiQ3VlIGZvciBpc2VhcmNoLWR5bmFtaWMtZXhw b3N1cmUgbWVjaGFuaXNtLCBpbXBsZW1lbnRlZCBpbgpAQCAtODY5LDIyICs5OTQsMjggQEAKICht YWtlLXZhcmlhYmxlLWJ1ZmZlci1sb2NhbCAnYWxsb3V0LXByZS13YXMtaXNlYXJjaGluZykKIDs7 O18gICA9IGFsbG91dC1pc2VhcmNoLXByaW9yLXBvcyBuaWwKIChkZWZ2YXIgYWxsb3V0LWlzZWFy Y2gtcHJpb3ItcG9zIG5pbAotICAiQ3VlIGZvciBpc2VhcmNoLWR5bmFtaWMtZXhwb3N1cmUgdHJh Y2tpbmcsIHVzZWQgYnkgYGFsbG91dC1pc2VhcmNoLWV4cG9zZScuIikKKyAgIkN1ZSBmb3IgaXNl YXJjaC1keW5hbWljLWV4cG9zdXJlIHRyYWNraW5nLCB1c2VkIGJ5CitgYWxsb3V0LWlzZWFyY2gt ZXhwb3NlJy4iKQogKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtaXNlYXJjaC1w cmlvci1wb3MpCi07OztfICAgPSBhbGxvdXQtb3ZlcnJpZGUtcHJvdGVjdCBuaWwKLShkZWZ2YXIg YWxsb3V0LW92ZXJyaWRlLXByb3RlY3QgbmlsCi0gICJVc2VkIGluIGBhbGxvdXQtbW9kZScgZm9y IHJlZ3VsYXRlIG9mIGNvbmNlYWxlZC10ZXh0IHByb3RlY3Rpb24gbWVjaGFuaXNtLgotCi1BbGxv dXQgb3V0bGluZSBtb2RlIHJlZ3VsYXRlcyBhbHRlcmF0aW9uIG9mIGNvbmNlYWxlZCB0ZXh0IHRv IHByb3RlY3QKLWFnYWluc3QgaW5hZHZlcnRlbnQsIHVubm90aWNlZCBjaGFuZ2VzLiAgVGhpcyBp cyBmb3IgdXNlIGJ5IHNwZWNpZmljLAotbmF0aXZlIG91dGxpbmUgZnVuY3Rpb25zIHRvIHRlbXBv cmFyaWx5IG92ZXJyaWRlIHRoYXQgcHJvdGVjdGlvbi4KLUl0J3MgYXV0b21hdGljYWxseSByZXNl dCB0byBuaWwgYWZ0ZXIgZXZlcnkgYnVmZmVyIG1vZGlmaWNhdGlvbi4iKQotKG1ha2UtdmFyaWFi bGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtb3ZlcnJpZGUtcHJvdGVjdCkKKzs7O18gICA9IGFsbG91 dC1pc2VhcmNoLWRpZC1xdWl0CisoZGVmdmFyIGFsbG91dC1pc2VhcmNoLWRpZC1xdWl0IG5pbAor ICAiRGlzdGluZ3Vpc2hlcyBpc2VhcmNoIGNvbmNsdXNpb24gYW5kIGNhbmNlbGxhdGlvbi4KKwor TWFpbnRhaW5lZCBieSBhbGxvdXQtaXNlYXJjaC1hYm9ydCBcKHdoaWNoIGlzIHdyYXBwZWQgYXJv dW5kIHRoZSByZWFsCitpc2VhcmNoLWFib3J0KSwgYW5kIG1vbml0b3JlZCBieSBhbGxvdXQtaXNl YXJjaC1leHBvc2UgZm9yIGFjdGlvbi4iKQorKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdh bGxvdXQtaXNlYXJjaC1kaWQtcXVpdCkKIDs7O18gICA+IGFsbG91dC11bnByb3RlY3RlZCAoZXhw cikKLShkZWZtYWNybyBhbGxvdXQtdW5wcm90ZWN0ZWQgKGV4cHJlc3Npb24pCi0gICJFdmFsdWF0 ZSBFWFBSRVNTSU9OIHdpdGggYGFsbG91dC1vdmVycmlkZS1wcm90ZWN0JyBsZXQtYm91bmQgdG8g dC4iCi0gIGAobGV0ICgoYWxsb3V0LW92ZXJyaWRlLXByb3RlY3QgdCkpCi0gICAgICxleHByZXNz aW9uKSkKKyhkZWZtYWNybyBhbGxvdXQtdW5wcm90ZWN0ZWQgKGV4cHIpCisgICJFbmFibGUgaW50 ZXJuYWwgb3V0bGluZSBvcGVyYXRpb25zIHRvIGFsdGVyIHJlYWQtb25seSB0ZXh0LiIKKyAgYChs ZXQgKCh3YXMtaW5oaWJpdC1yLW8gaW5oaWJpdC1yZWFkLW9ubHkpKQorICAgICAodW53aW5kLXBy b3RlY3QKKyAgICAgICAgIChwcm9nbgorICAgICAgICAgICAoc2V0cSBpbmhpYml0LXJlYWQtb25s eSB0KQorICAgICAgICAgICAsZXhwcikKKyAgICAgICAoc2V0cSBpbmhpYml0LXJlYWQtb25seSB3 YXMtaW5oaWJpdC1yLW8pCisgICAgICAgKQorICAgICApCisgICkKIDs7O18gICA9IGFsbG91dC11 bmRvLWFnZ3JlZ2F0aW9uCiAoZGVmdmFyIGFsbG91dC11bmRvLWFnZ3JlZ2F0aW9uIDMwCiAgICJB bW91bnQgb2Ygc3VjY2Vzc2l2ZSBzZWxmLWluc2VydCBhY3Rpb25zIHRvIGJ1bmNoIHRvZ2V0aGVy IHBlciB1bmRvLgpAQCAtODk3LDE0ICsxMDI4LDEwOSBAQAogICAiSG9ycmlibGUgaGFjayB1c2Vk IHRvIHByZXZlbnQgaW52YWxpZCBtdWx0aXBsZSB0cmlnZ2VyaW5nIG9mIG91dGxpbmUKIG1vZGUg ZnJvbSBwcm9wLWxpbmUgZmlsZS12YXIgYWN0aXZhdGlvbi4gIFVzZWQgYnkgYGFsbG91dC1tb2Rl JyBmdW5jdGlvbgogdG8gdHJhY2sgcmVwZWF0cy4iKQotOzs7XyAgID4gYWxsb3V0LXdyaXRlLWZp bGUtaG9vayAoKQotKGRlZnVuIGFsbG91dC13cml0ZS1maWxlLWhvb2sgKCkKLSAgIkluIGBhbGxv dXQtbW9kZScsIHJ1biBhcyBhIGB3cml0ZS1jb250ZW50cy1mdW5jdGlvbnMnIGFjdGl2aXR5Lgot Ci1DdXJyZW50bHkganVzdCBzZXRzIGBhbGxvdXQtZHVyaW5nLXdyaXRlLWN1ZScsIHNvIG91dGxp bmUgY2hhbmdlLXByb3RlY3Rpb24KLWtub3dzIHRvIGtlZXAgaW5hY3RpdmUgZHVyaW5nIGZpbGUg d3JpdGUuIgotICAoc2V0cSBhbGxvdXQtZHVyaW5nLXdyaXRlLWN1ZSB0KQotICBuaWwpCis7Oztf ICAgPSBhbGxvdXQtZmlsZS1rZXktdmVyaWZpZXItc3RyaW5nCisoZGVmdmFyIGFsbG91dC1maWxl LWtleS12ZXJpZmllci1zdHJpbmcgbmlsCisgICJOYW1lIGZvciB1c2UgYXMgYSBmaWxlIHZhcmlh YmxlIGZvciB2ZXJpZnlpbmcgZW5jcnlwdGlvbiBrZXkgYWNyb3NzCitzZXNzaW9ucy4iKQorKG1h a2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtZmlsZS1rZXktdmVyaWZpZXItc3RyaW5n KQorOzs7XyAgID0gYWxsb3V0LWVuY3J5cHRpb24tc2NoZW1lCisoZGVmdmFyIGFsbG91dC1lbmNy eXB0aW9uLXNjaGVtZSBuaWwKKyAgIipBbGxvdXQgb3V0bGluZSB0b3BpYyBlbmNyeXB0aW9uIHNj aGVtZSBwZW5kaW5nIGZvciB0aGUgY3VycmVudCBidWZmZXIuCisKK0ludGVuZGVkIGFzIGEgZmls ZS1zcGVjaWZpYyAoYnVmZmVyIGxvY2FsKSBzZXR0aW5nLCBpdCBkZWZhdWx0cyB0byB0aGUKK3Zh bHVlIG9mIGFsbG91dC1kZWZhdWx0LWVuY3J5cHRpb24tc2NoZW1lIGlmIG5pbC4iKQorKG1ha2Ut dmFyaWFibGUtYnVmZmVyLWxvY2FsICdhbGxvdXQtZW5jcnlwdGlvbi1zY2hlbWUpCis7OztfICAg PSBhbGxvdXQta2V5LXZlcmlmaWVyLXN0cmluZworKGRlZnZhciBhbGxvdXQta2V5LXZlcmlmaWVy LXN0cmluZyBuaWwKKyAgIlNldHRpbmcgdXNlZCB0byB0ZXN0IHNvbGljaXRlZCBlbmNyeXB0aW9u IGtleXMgYWdhaW5zdCB0aGF0IGFscmVhZHkKK2Fzc29jaWF0ZWQgd2l0aCBhIGZpbGUuCisKK0l0 IGNvbnNpc3RzIG9mIGFuIGVuY3J5cHRlZCByYW5kb20gc3RyaW5nIHVzZWZ1bCBvbmx5IHRvIHZl cmlmeSB0aGF0IGEga2V5CitlbnRlcmVkIGJ5IHRoZSB1c2VyIGlzIGVmZmVjdGl2ZSBmb3IgZGVj cnlwdGlvbi4gIFRoZSBrZXkgaXRzZWxmIGlzIFwqbm90KgorcmVjb3JkZWQgaW4gdGhlIGZpbGUg YW55d2hlcmUsIGFuZCB0aGUgZW5jcnlwdGVkIGNvbnRlbnRzIGFyZSByYW5kb20gYmluYXJ5Citj aGFyYWN0ZXJzIHRvIGF2b2lkIGV4cG9zaW5nIGdyZWF0ZXIgc3VzY2VwdGliaWxpdHkgdG8gc2Vh cmNoIGF0dGFja3MuCisKK1RoZSB2ZXJpZmllciBzdHJpbmcgaXMgcmV0YWluZWQgYXMgYW4gRW1h Y3MgZmlsZSB2YXJpYWJsZSwgYXMgd2VsbCBhcyBpbgordGhlIGVtYWNzIGJ1ZmZlciBzdGF0ZSwg aWYgZmlsZSB2YXJpYWJsZSBhZGp1c3RtZW50cyBhcmUgZW5hYmxlZC4gIFNlZQorYGFsbG91dC1l bmFibGUtZmlsZS12YXJpYWJsZS1hZGp1c3RtZW50JyBmb3IgZGV0YWlscyBhYm91dCB0aGF0LiIp CisobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ2FsbG91dC1rZXktdmVyaWZpZXItc3RyaW5n KQorKHNldHEtZGVmYXVsdCBhbGxvdXQta2V5LXZlcmlmaWVyLXN0cmluZyBuaWwpCis7OztfICAg PSBhbGxvdXQta2V5LWhpbnQtc3RyaW5nCisoZGVmdmFyIGFsbG91dC1rZXktaGludC1zdHJpbmcg IiIKKyAgIlZhcmlhYmxlIHVzZWQgdG8gcmV0YWluIGEgcmVtaW5kZXIgc3RyaW5nIGZvciBhIGZp bGUncyBlbmNyeXB0aW9uIGtleS4KKworU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBgYWxsb3V0LWtl eS1oaW50LWhhbmRsaW5nJyBmb3IgZGV0YWlscyBhYm91dCBob3cKK3RoZSByZW1pbmRlciBpcyBk ZXBsb3llZC4KKworVGhlIGhpbnQgaXMgcmV0YWluZWQgYXMgYW4gRW1hY3MgZmlsZSB2YXJpYWJs ZSwgYXMgd2VsbCBhcyBpbiB0aGUgZW1hY3MgYnVmZmVyCitzdGF0ZSwgaWYgZmlsZSB2YXJpYWJs ZSBhZGp1c3RtZW50cyBhcmUgZW5hYmxlZC4gIFNlZQorYGFsbG91dC1lbmFibGUtZmlsZS12YXJp YWJsZS1hZGp1c3RtZW50JyBmb3IgZGV0YWlscyBhYm91dCB0aGF0LiIpCisobWFrZS12YXJpYWJs ZS1idWZmZXItbG9jYWwgJ2FsbG91dC1rZXktaGludC1zdHJpbmcpCisoc2V0cS1kZWZhdWx0IGFs bG91dC1rZXktaGludC1zdHJpbmcgIiIpCis7OztfICAgPSBhbGxvdXQtYWZ0ZXItc2F2ZS1kZWNy eXB0CisoZGVmdmFyIGFsbG91dC1hZnRlci1zYXZlLWRlY3J5cHQgbmlsCisgICJJbnRlcm5hbCB2 YXJpYWJsZSwgaXMgbmlsIG9yIGhhcyB0aGUgdmFsdWUgb2YgdHdvIHBvaW50czoKKworIC0gdGhl IGxvY2F0aW9uIG9mIGEgdG9waWMgdG8gYmUgZGVjcnlwdGVkIGFmdGVyIHNhdmluZyBpcyBkb25l CisgLSB3aGVyZSB0byBzaXR1YXRlIHRoZSBjdXJzb3IgYWZ0ZXIgdGhlIGRlY3J5cHRpb24gaXMg cGVyZm9ybWVkCisKK1RoaXMgaXMgdXNlZCB0byBkZWNyeXB0IHRoZSB0b3BpYyB0aGF0IHdhcyBj dXJyZW50bHkgYmVpbmcgZWRpdGVkLCBpZiBpdAord2FzIGVuY3J5cHRlZCBhdXRvbWF0aWNhbGx5 IGFzIHBhcnQgb2YgYSBmaWxlIHdyaXRlIG9yIGF1dG9zYXZlLiIpCisobWFrZS12YXJpYWJsZS1i dWZmZXItbG9jYWwgJ2FsbG91dC1hZnRlci1zYXZlLWRlY3J5cHQpCis7OztfICAgPiBhbGxvdXQt d3JpdGUtZmlsZS1ob29rLWhhbmRsZXIgKCkKKyhkZWZ1biBhbGxvdXQtd3JpdGUtZmlsZS1ob29r LWhhbmRsZXIgKCkKKyAgIkltcGxlbWVudCBgYWxsb3V0LWVuY3J5cHQtdW5lbmNyeXB0ZWQtb24t c2F2ZXMnIHBvbGljeSBmb3IgZmlsZSB3cml0ZXMuIgorCisgIChpZiAob3IgKG5vdCAoYm91bmRw ICdhbGxvdXQtZW5jcnlwdC11bmVuY3J5cHRlZC1vbi1zYXZlcykpCisgICAgICAgICAgKG5vdCBh bGxvdXQtZW5jcnlwdC11bmVuY3J5cHRlZC1vbi1zYXZlcykpCisgICAgICBuaWwKKyAgICAobGV0 ICgoZXhjZXB0LW1hcmsgKGFuZCAoZXF1YWwgYWxsb3V0LWVuY3J5cHQtdW5lbmNyeXB0ZWQtb24t c2F2ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VwdC1jdXJyZW50 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludC1tYXJrZXIpKSkpCisgICAgICAo aWYgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAg ICAgICAgICAgICAgIChhbGxvdXQtbmV4dC10b3BpYy1wZW5kaW5nLWVuY3J5cHRpb24gZXhjZXB0 LW1hcmspKQorICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgKG1lc3NhZ2UgImF1dG8tZW5j cnlwdGluZyBwZW5kaW5nIHRvcGljcyIpCisgICAgICAgICAgICAoc2l0LWZvciAyKQorICAgICAg ICAgICAgKGNvbmRpdGlvbi1jYXNlIGZhaWx1cmUKKyAgICAgICAgICAgICAgICAoc2V0cSBhbGxv dXQtYWZ0ZXItc2F2ZS1kZWNyeXB0CisgICAgICAgICAgICAgICAgICAgICAgKGFsbG91dC1lbmNy eXB0LWRlY3J5cHRlZCBleGNlcHQtbWFyaykpCisgICAgICAgICAgICAgIChlcnJvciAocHJvZ24K KyAgICAgICAgICAgICAgICAgICAgICAgKG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAg ICJhbGxvdXQtd3JpdGUtZmlsZS1ob29rLWhhbmRsZXIgc3VwcHJlc3NpbmcgZXJyb3IgJXMiCisg ICAgICAgICAgICAgICAgICAgICAgICBmYWlsdXJlKQorICAgICAgICAgICAgICAgICAgICAgICAo c2l0LWZvciAyKSkpKSkpCisgICAgICApKQorICAgIG5pbCkKKzs7O18gICA+IGFsbG91dC1hdXRv LXNhdmUtaG9vay1oYW5kbGVyICgpCisoZGVmdW4gYWxsb3V0LWF1dG8tc2F2ZS1ob29rLWhhbmRs ZXIgKCkKKyAgIkltcGxlbWVudCBgYWxsb3V0LWVuY3J5cHQtdW5lbmNyeXB0ZWQtb24tc2F2ZXMn IHBvbGljeSBmb3IgYXV0byBzYXZlcy4iCisKKyAgKGlmICBhbGxvdXQtZW5jcnlwdC11bmVuY3J5 cHRlZC1vbi1zYXZlcworICAgICAgOzsgQWx3YXlzIGltcGxlbWVudCAnZXhjZXB0LWN1cnJlbnQg cG9saWN5IHdoZW4gZW5hYmxlZC4KKyAgICAgIChsZXQgKChhbGxvdXQtZW5jcnlwdC11bmVuY3J5 cHRlZC1vbi1zYXZlcyAnZXhjZXB0LWN1cnJlbnQpKQorICAgICAgICAoYWxsb3V0LXdyaXRlLWZp bGUtaG9vay1oYW5kbGVyKSkpKQorOzs7XyAgID4gYWxsb3V0LWFmdGVyLXNhdmVzLWhhbmRsZXIg KCkKKyhkZWZ1biBhbGxvdXQtYWZ0ZXItc2F2ZXMtaGFuZGxlciAoKQorICAiRGVjcnlwdCB0b3Bp YyBlbmNyeXB0ZWQgZm9yIHNhdmUsIGlmIGl0J3MgY3VycmVudGx5IGJlaW5nIGVkaXRlZC4KKwor SWUsIGlmIGl0IHdhcyBwZW5kaW5nIGVuY3J5cHRpb24gYW5kIGNvbnRhaW5lZCB0aGUgcG9pbnQg aW4gaXRzIGJvZHkgYmVmb3JlCit0aGUgc2F2ZS4KKworV2UgdXNlIHZhbHVlcyBzdG9yZWQgaW4g YGFsbG91dC1hZnRlci1zYXZlLWRlY3J5cHQnIHRvIGxvY2F0ZSB0aGUgdG9waWMKK2FuZCB0aGUg cGxhY2UgZm9yIHRoZSBjdXJzb3IgYWZ0ZXIgdGhlIGRlY3J5cHRpb24gaXMgZG9uZS4iCisgIChp ZiAobm90IChhbmQgKGFsbG91dC1tb2RlLXApCisgICAgICAgICAgICAgICAgKGJvdW5kcCAnYWxs b3V0LWFmdGVyLXNhdmUtZGVjcnlwdCkKKyAgICAgICAgICAgICAgICBhbGxvdXQtYWZ0ZXItc2F2 ZS1kZWNyeXB0KSkKKyAgICAgIHQKKyAgICAoZ290by1jaGFyIChjYXIgYWxsb3V0LWFmdGVyLXNh dmUtZGVjcnlwdCkpCisgICAgKGxldCAoKHdhcy1tb2RpZmllZCAoYnVmZmVyLW1vZGlmaWVkLXAp KSkKKyAgICAgIChhbGxvdXQtdG9nZ2xlLWN1cnJlbnQtc3VidHJlZS1lbmNyeXB0aW9uKQorICAg ICAgKGlmIChub3Qgd2FzLW1vZGlmaWVkKQorICAgICAgICAgIChzZXQtYnVmZmVyLW1vZGlmaWVk LXAgbmlsKSkpCisgICAgKGdvdG8tY2hhciAoY2FkciBhbGxvdXQtYWZ0ZXItc2F2ZS1kZWNyeXB0 KSkKKyAgICAoc2V0cSBhbGxvdXQtYWZ0ZXItc2F2ZS1kZWNyeXB0IG5pbCkpCisgICkKIAogOzs7 XyAjMiBNb2RlIGFjdGl2YXRpb24KIDs7O18gID0gYWxsb3V0LW1vZGUKQEAgLTkxNiwxMSArMTE0 MiwxMCBAQAogICAnYWxsb3V0LW1vZGUpCiA7OztfICA9IGFsbG91dC1leHBsaWNpdGx5LWRlYWN0 aXZhdGVkCiAoZGVmdmFyIGFsbG91dC1leHBsaWNpdGx5LWRlYWN0aXZhdGVkIG5pbAotICAiTm9u LW5pbCBpZiBgYWxsb3V0LW1vZGUnIHdhcyBsYXN0IGRlbGliZXJhdGVseSBkZWFjdGl2YXRlZC4K KyAgIklmIHQsIGBhbGxvdXQtbW9kZSdzIGxhc3QgZGVhY3RpdmF0aW9uIHdhcyBkZWxpYmVyYXRl LgogU28gYGFsbG91dC1wb3N0LWNvbW1hbmQtYnVzaW5lc3MnIHNob3VsZCBub3QgcmVhY3RpdmF0 ZSBpdC4uLiIpCiAobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ2FsbG91dC1leHBsaWNpdGx5 LWRlYWN0aXZhdGVkKQogOzs7XyAgPiBhbGxvdXQtaW5pdCAoJm9wdGlvbmFsIG1vZGUpCi07Ozsj IyNhdXRvbG9hZAogKGRlZnVuIGFsbG91dC1pbml0ICgmb3B0aW9uYWwgbW9kZSkKICAgIlByaW1l IGBhbGxvdXQtbW9kZScgdG8gZW5hYmxlL2Rpc2FibGUgYXV0by1hY3RpdmF0aW9uLCB3cnQgYGFs bG91dC1sYXlvdXQnLgogCkBAIC05MzksOSArMTE2NCw5IEBACiB0aGUgYGFsbG91dC1sYXlvdXQn IHZhcmlhYmxlLiAgKFNlZSBgYWxsb3V0LWxheW91dCcgYW5kCiBgYWxsb3V0LWV4cG9zZS10b3Bp YycgZG9jc3RyaW5ncyBmb3IgbW9yZSBkZXRhaWxzIG9uIGF1dG8gbGF5b3V0KS4KIAotYGFsbG91 dC1pbml0JyB3b3JrcyBieSBzZXR0aW5nIHVwIChvciByZW1vdmluZykKLWBhbGxvdXQtZmluZC1m aWxlLWhvb2snIGluIGBmaW5kLWZpbGUtaG9vaycsIGFuZCBnaXZpbmcKLWBhbGxvdXQtYXV0by1h Y3RpdmF0aW9uJyBhIHN1aXRhYmxlIHNldHRpbmcuCitgYWxsb3V0LWluaXQnIHdvcmtzIGJ5IHNl dHRpbmcgdXAgKG9yIHJlbW92aW5nKSB0aGUgYGFsbG91dC1tb2RlJworZmluZC1maWxlLWhvb2ss IGFuZCBnaXZpbmcgYGFsbG91dC1hdXRvLWFjdGl2YXRpb24nIGEgc3VpdGFibGUKK3NldHRpbmcu CiAKIFRvIHByaW1lIHlvdXIgRW1hY3Mgc2Vzc2lvbiBmb3IgZnVsbCBhdXRvLW91dGxpbmUgb3Bl cmF0aW9uLCBpbmNsdWRlCiB0aGUgZm9sbG93aW5nIHR3byBsaW5lcyBpbiB5b3VyIEVtYWNzIGlu aXQgZmlsZToKQEAgLTk0OSwzMiArMTE3NCwzNSBAQAogXChyZXF1aXJlICdhbGxvdXQpCiBcKGFs bG91dC1pbml0IHQpIgogCi0gIChpbnRlcmFjdGl2ZQotICAgKGxldCAoKG0gKGNvbXBsZXRpbmct cmVhZAotCSAgICAgKGNvbmNhdCAiU2VsZWN0IG91dGxpbmUgYXV0byBzZXR1cCBtb2RlICIKLQkJ ICAgICAiKGVtcHR5IGZvciByZXBvcnQsID8gZm9yIG9wdGlvbnMpICIpCi0JICAgICAnKCgibmls IikoImZ1bGwiKSgiYWN0aXZhdGUiKSgiZGVhY3RpdmF0ZSIpCi0JICAgICAgICgiYXNrIikgKCJy ZXBvcnQiKSAoIiIpKQotCSAgICAgbmlsCi0JICAgICB0KSkpCi0gICAgIChpZiAoc3RyaW5nPSBt ICIiKSAncmVwb3J0Ci0gICAgICAgKGludGVybi1zb2Z0IG0pKSkpCisgIChpbnRlcmFjdGl2ZSkK KyAgKGlmIChpbnRlcmFjdGl2ZS1wKQorICAgICAgKHByb2duCisJKHNldHEgbW9kZQorCSAgICAg IChjb21wbGV0aW5nLXJlYWQKKwkgICAgICAgKGNvbmNhdCAiU2VsZWN0IG91dGxpbmUgYXV0byBz ZXR1cCBtb2RlICIKKwkJICAgICAgICIoZW1wdHkgZm9yIHJlcG9ydCwgPyBmb3Igb3B0aW9ucykg IikKKwkgICAgICAgJygoIm5pbCIpKCJmdWxsIikoImFjdGl2YXRlIikoImRlYWN0aXZhdGUiKQor CQkgKCJhc2siKSAoInJlcG9ydCIpICgiIikpCisJICAgICAgIG5pbAorCSAgICAgICB0KSkKKwko aWYgKHN0cmluZz0gbW9kZSAiIikKKwkgICAgKHNldHEgbW9kZSAncmVwb3J0KQorCSAgKHNldHEg bW9kZSAoaW50ZXJuLXNvZnQgbW9kZSkpKSkpCiAgIChsZXQKICAgICAgIDs7IGNvbnZlbmllbmNl IGFsaWFzZXMsIGZvciBjb25zaXN0ZW50IHJlZiB0byByZXNwZWN0aXZlIHZhcnM6CiAgICAgICAo KGhvb2sgJ2FsbG91dC1maW5kLWZpbGUtaG9vaykKICAgICAgICAoY3Vyci1tb2RlICdhbGxvdXQt YXV0by1hY3RpdmF0aW9uKSkKIAogICAgIChjb25kICgobm90IG1vZGUpCi0JICAgKHNldHEgZmlu ZC1maWxlLWhvb2sgKGRlbHEgaG9vayBmaW5kLWZpbGUtaG9vaykpCisJICAgKHNldHEgZmluZC1m aWxlLWhvb2tzIChkZWxxIGhvb2sgZmluZC1maWxlLWhvb2tzKSkKIAkgICAoaWYgKGludGVyYWN0 aXZlLXApCiAJICAgICAgIChtZXNzYWdlICJBbGxvdXQgb3V0bGluZSBtb2RlIGF1dG8tYWN0aXZh dGlvbiBpbmhpYml0ZWQuIikpKQogCSAgKChlcSBtb2RlICdyZXBvcnQpCi0JICAgKGlmIChtZW1x IGhvb2sgZmluZC1maWxlLWhvb2spCi0JICAgICAgIDs7IEp1c3QgcHVudCBhbmQgdXNlIHRoZSBy ZXBvcnRzIGZyb20gZWFjaCBvZiB0aGUgbW9kZXM6Ci0JICAgICAgIChhbGxvdXQtaW5pdCAoc3lt Ym9sLXZhbHVlIGN1cnItbW9kZSkpCi0JICAgICAoYWxsb3V0LWluaXQgbmlsKQotCSAgICAgKG1l c3NhZ2UgIkFsbG91dCBvdXRsaW5lIG1vZGUgYXV0by1hY3RpdmF0aW9uIGluaGliaXRlZC4iKSkp Ci0JICAodCAoYWRkLWhvb2sgJ2ZpbmQtZmlsZS1ob29rIGhvb2spCisJICAgKGlmIChub3QgKG1l bXEgaG9vayBmaW5kLWZpbGUtaG9va3MpKQorCSAgICAgICAoYWxsb3V0LWluaXQgbmlsKQorCSAg ICAgOzsgSnVzdCBwdW50IGFuZCB1c2UgdGhlIHJlcG9ydHMgZnJvbSBlYWNoIG9mIHRoZSBtb2Rl czoKKwkgICAgIChhbGxvdXQtaW5pdCAoc3ltYm9sLXZhbHVlIGN1cnItbW9kZSkpKSkKKwkgICh0 IChhZGQtaG9vayAnZmluZC1maWxlLWhvb2tzIGhvb2spCiAJICAgICAoc2V0IGN1cnItbW9kZQkJ OyBgc2V0Jywgbm90IGBzZXRxJyEKIAkJICAoY29uZCAoKGVxIG1vZGUgJ2FjdGl2YXRlKQogCQkJ IChtZXNzYWdlCkBAIC0xMDIyLDEwICsxMjUwLDExIEBACiAKIEluIGFkZGl0aW9uIHRvIG91dGxp bmUgbmF2aWdhdGlvbiBhbmQgZXhwb3N1cmUsIGFsbG91dCBpbmNsdWRlczoKIAotIC0gdG9waWMt b3JpZW50ZWQgcmVwb3NpdGlvbmluZywgY3V0LCBhbmQgcGFzdGUKKyAtIHRvcGljLW9yaWVudGVk IHJlcG9zaXRpb25pbmcsIHByb21vdGlvbi9kZW1vdGlvbiwgY3V0LCBhbmQgcGFzdGUKICAtIGlu dGVncmFsIG91dGxpbmUgZXhwb3N1cmUtbGF5b3V0CiAgLSBpbmNyZW1lbnRhbCBzZWFyY2ggd2l0 aCBkeW5hbWljIGV4cG9zdXJlIGFuZCByZWNvbmNlYWxtZW50IG9mIGhpZGRlbiB0ZXh0CiAgLSBh dXRvbWF0aWMgdG9waWMtbnVtYmVyIG1haW50ZW5hbmNlCisgLSBlYXN5IHRvcGljIGVuY3J5cHRp b24gYW5kIGRlY3J5cHRpb24KICAtIFwiSG90LXNwb3RcIiBvcGVyYXRpb24sIGZvciBzaW5nbGUt a2V5c3Ryb2tlIG1hbmV1dmVyaW5nIGFuZAogICAgIGV4cG9zdXJlIGNvbnRyb2wuICBcKFNlZSB0 aGUgYWxsb3V0LW1vZGUgZG9jc3RyaW5nLikKIApAQCAtMTAzNSw3ICsxMjY0LDcgQEAKIHNwZWNp YWwgYGFsbG91dC1tb2RlJyBmZWF0dXJlcyBhbmQgdGVybWlub2xvZ3kuICBTZWUgYWxzbyB0aGUg b3V0bGluZQogbWVudWJhciBhZGRpdGlvbnMgZm9yIHF1aWNrIHJlZmVyZW5jZSB0byBtYW55IG9m IHRoZSBmZWF0dXJlcywgYW5kIHNlZQogdGhlIGRvY3N0cmluZyBvZiB0aGUgZnVuY3Rpb24gYGFs bG91dC1pbml0JyBmb3IgaW5zdHJ1Y3Rpb25zIG9uCi1wcmltaW5nIHlvdXIgRW1hY3Mgc2Vzc2lv biBmb3IgYXV0b21hdGljIGFjdGl2YXRpb24gb2YgYGFsbG91dC1tb2RlJy4KK3ByaW1pbmcgeW91 ciBlbWFjcyBzZXNzaW9uIGZvciBhdXRvbWF0aWMgYWN0aXZhdGlvbiBvZiBgYWxsb3V0LW1vZGUn LgogCiAKIFRoZSBiaW5kaW5ncyBhcmUgZGljdGF0ZWQgYnkgdGhlIGBhbGxvdXQta2V5YmluZGlu Z3MtbGlzdCcgYW5kCkBAIC0xMDQ4LDcgKzEyNzcsNyBAQAogQy1jIEMtdSBhbGxvdXQtdXAtY3Vy cmVudC1sZXZlbCAgICAgICAgIHwgQy1jIEMtcyBhbGxvdXQtc2hvdy1jdXJyZW50LXN1YnRyZWUK IEMtYyBDLWYgYWxsb3V0LWZvcndhcmQtY3VycmVudC1sZXZlbCAgICB8IEMtYyBDLW8gYWxsb3V0 LXNob3ctY3VycmVudC1lbnRyeQogQy1jIEMtYiBhbGxvdXQtYmFja3dhcmQtY3VycmVudC1sZXZl bCAgIHwgXlUgQy1jIEMtcyBhbGxvdXQtc2hvdy1hbGwKLUMtYyBDLWUgYWxsb3V0LWVuZC1vZi1j dXJyZW50LWVudHJ5ICAgICB8CSAgIGFsbG91dC1oaWRlLWN1cnJlbnQtbGVhdmVzCitDLWMgQy1l IGFsbG91dC1lbmQtb2YtZW50cnkgICAgICAgICAgICAgfAkgICBhbGxvdXQtaGlkZS1jdXJyZW50 LWxlYXZlcwogQy1jIEMtYSBhbGxvdXQtYmVnaW5uaW5nLW9mLWN1cnJlbnQtZW50cnksIGFsdGVy bmF0ZWx5LCBnb2VzIHRvIGhvdC1zcG90CiAKIAlUb3BpYyBIZWFkZXIgUHJvZHVjdGlvbjoKQEAg LTEwNjQsNyArMTI5Myw3IEBACiBDLWM8Q1I+CWFsbG91dC1yZWJ1bGxldC10b3BpYwlSZWNvbmNp bGUgYnVsbGV0cyBvZiB0b3BpYyBhbmQgaXRzIG9mZnNwcmluZwogCQkJCS0gZGlzdGluY3RpdmUg YnVsbGV0cyBhcmUgbm90IGNoYW5nZWQsIG90aGVycwogCQkJCSAgYWx0ZXJuYXRlZCBhY2NvcmRp bmcgdG8gbmVzdGluZyBkZXB0aC4KLUMtYyAqCWFsbG91dC1yZWJ1bGxldC1jdXJyZW50LWhlYWRp bmcgUHJvbXB0IGZvciBhbHRlcm5hdGUgYnVsbGV0IGZvcgorQy1jIGIJYWxsb3V0LXJlYnVsbGV0 LWN1cnJlbnQtaGVhZGluZyBQcm9tcHQgZm9yIGFsdGVybmF0ZSBidWxsZXQgZm9yCiAJCQkJCSBj dXJyZW50IHRvcGljLgogQy1jICMJYWxsb3V0LW51bWJlci1zaWJsaW5ncwlOdW1iZXIgYnVsbGV0 cyBvZiB0b3BpYyBhbmQgc2libGluZ3MgLSB0aGUKIAkJCQlvZmZzcHJpbmcgYXJlIG5vdCBhZmZl Y3RlZC4gIFdpdGggcmVwZWF0CkBAIC0xMDg3LDggKzEzMTYsOCBAQAogQy1jIEMtU1BDIGFsbG91 dC1tYXJrLXRvcGljCiBDLWMgPSBjCWFsbG91dC1jb3B5LWV4cG9zZWQtdG8tYnVmZmVyCiAJCQkJ RHVwbGljYXRlIG91dGxpbmUsIHNhbnMgY29uY2VhbGVkIHRleHQsIHRvCi0JCQkJYnVmZmVyIHdp dGggbmFtZSBkZXJpdmVkIGZyb20gZGVyaXZlZCBmcm9tCi0JCQkJdGhhdCBvZiBjdXJyZW50IGJ1 ZmZlciAtIFwiKlhYWCBleHBvc2VkKlwiLgorCQkJCWJ1ZmZlciB3aXRoIG5hbWUgZGVyaXZlZCBm cm9tIGRlcml2ZWQgZnJvbSB0aGF0CisJCQkJb2YgY3VycmVudCBidWZmZXIgLSBcIipCVUZGRVJO QU1FIGV4cG9zZWQqXCIuCiBDLWMgPSBwCWFsbG91dC1mbGF0dGVuLWV4cG9zZWQtdG8tYnVmZmVy CiAJCQkJTGlrZSBhYm92ZSAnY29weS1leHBvc2VkJywgYnV0IGNvbnZlcnQgdG9waWMKIAkJCQlw cmVmaXhlcyB0byBzZWN0aW9uLnN1YnNlY3Rpb24uLi4gbnVtZXJpYwpAQCAtMTA5Niw2ICsxMzI1 LDE5IEBACiBFU0MgRVNDIChhbGxvdXQtaW5pdCB0KQlTZXR1cCBFbWFjcyBzZXNzaW9uIGZvciBv dXRsaW5lIG1vZGUKIAkJCQlhdXRvLWFjdGl2YXRpb24uCiAKKyAgICAgICAgICAgICAgICAgIEVu Y3J5cHRlZCBFbnRyaWVzCisKK091dGxpbmUgbW9kZSBzdXBwb3J0cyBlYXNpbHkgdG9nZ2xhYmxl IGdwZyBlbmNyeXB0aW9uIG9mIHRvcGljcywgd2l0aAorbmljZWl0aWVzIGxpa2Ugc3VwcG9ydCBm b3Igc3ltbWV0cmljIGFuZCBrZXktcGFpciBtb2Rlcywga2V5IHRpbWVvdXQsIGtleQorY29uc2lz dGVuY3kgY2hlY2tpbmcsIHVzZXItcHJvdmlkZWQgaGludGluZyBmb3Igc3ltbWV0cmljIGtleSBt b2RlLCBhbmQKK2F1dG8tZW5jcnlwdGlvbiBvZiB0b3BpY3MgcGVuZGluZyBlbmNyeXB0aW9uIG9u IHNhdmUuICBUaGUgYWltIGlzIHRvIGVuYWJsZQorcmVsaWFibGUgdG9waWMgcHJpdmFjeSB3aGls ZSBwcmV2ZW50aW5nIGFjY2lkZW50cyBsaWtlIG5lZ2xlY3RlZAorZW5jcnlwdGlvbiwgZW5jcnlw dGlvbiB3aXRoIGEgbWlzdGFrZW4ga2V5LCBmb3JnZXR0aW5nIHdoaWNoIGtleSB3YXMgdXNlZCwK K2FuZCBvdGhlciBwcmFjdGljYWwgcGl0ZmFsbHMuCisKK1NlZSB0aGUgYGFsbG91dC10b2dnbGUt Y3VycmVudC1zdWJ0cmVlLWVuY3J5cHRpb24nIGZ1bmN0aW9uIGFuZAorYGFsbG91dC1lbmNyeXB0 LXVuZW5jcnlwdGVkLW9uLXNhdmVzJyBjdXN0b21pemF0aW9uIHZhcmlhYmxlIGZvciBkZXRhaWxz LgorCiAJCSBIT1QtU1BPVCBPcGVyYXRpb24KIAogSG90LXNwb3Qgb3BlcmF0aW9uIHByb3ZpZGVz IGEgbWVhbnMgZm9yIGVhc3ksIHNpbmdsZS1rZXlzdHJva2Ugb3V0bGluZQpAQCAtMTE0OCwxMSAr MTM5MCwxMSBAQAogCiBIRUFERVI6CVRoZSBmaXJzdCBsaW5lIG9mIGEgdG9waWMsIGluY2x1ZGUg dGhlIHRvcGljIFBSRUZJWCBhbmQgaGVhZGVyCiAJdGV4dC4KLVBSRUZJWDogVGhlIGxlYWRpbmcg dGV4dCBvZiBhIHRvcGljIHdoaWNoIGRpc3Rpbmd1aXNoZXMgaXQgZnJvbQotCW5vcm1hbCB0ZXh0 LiAgSXQgaGFzIGEgc3RyaWN0IGZvcm0sIHdoaWNoIGNvbnNpc3RzIG9mIGEKLQlwcmVmaXgtbGVh ZCBzdHJpbmcsIHBhZGRpbmcsIGFuZCBhIGJ1bGxldC4gIFRoZSBidWxsZXQgbWF5IGJlCi0JZm9s bG93ZWQgYnkgYSBudW1iZXIsIGluZGljYXRpbmcgdGhlIG9yZGluYWwgbnVtYmVyIG9mIHRoZQot CXRvcGljIGFtb25nIGl0cyBzaWJsaW5ncywgYSBzcGFjZSwgYW5kIHRoZW4gdGhlIGhlYWRlciB0 ZXh0LgorUFJFRklYOiBUaGUgbGVhZGluZyB0ZXh0IG9mIGEgdG9waWMgd2hpY2ggZGlzdGluZ3Vp c2hlcyBpdCBmcm9tIG5vcm1hbAorICAgICAgICB0ZXh0LiAgSXQgaGFzIGEgc3RyaWN0IGZvcm0s IHdoaWNoIGNvbnNpc3RzIG9mIGEgcHJlZml4LWxlYWQKKyAgICAgICAgc3RyaW5nLCBwYWRkaW5n LCBhbmQgYSBidWxsZXQuICBUaGUgYnVsbGV0IG1heSBiZSBmb2xsb3dlZCBieSBhCisgICAgICAg IG51bWJlciwgaW5kaWNhdGluZyB0aGUgb3JkaW5hbCBudW1iZXIgb2YgdGhlIHRvcGljIGFtb25n IGl0cworICAgICAgICBzaWJsaW5ncywgYSBzcGFjZSwgYW5kIHRoZW4gdGhlIGhlYWRlciB0ZXh0 LgogCiAJVGhlIHJlbGF0aXZlIGxlbmd0aCBvZiB0aGUgUFJFRklYIGRldGVybWluZXMgdGhlIG5l c3RpbmcgZGVwdGgKIAlvZiB0aGUgdG9waWMuCkBAIC0xMjIzLDcgKzE0NjUsNyBAQAogICAgICA7 OyBvZmYgb24gc2Vjb25kIGludm9jYXRpb24sIHNvIHdlIGRldGVjdCBpdCBhcyBiZXN0IHdlIGNh biwgYW5kCiAgICAgIDs7IHNraXAgZXZlcnl0aGluZy4KICAgICAgKChhbmQgc2FtZS1jb21wbGV4 LWNvbW1hbmQJCTsgU3RpbGwgaW4gc2FtZSBjb21wbGV4IGNvbW1hbmQKLQkJCQkJOyBhcyBsYXN0 IHRpbWUgYGFsbG91dC1tb2RlJyBpbnZva2VkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgYXMgbGFzdCB0aW1lIGBhbGxvdXQtbW9kZScgaW52b2tlZC4KIAkgIGFj dGl2ZQkJCTsgQWxyZWFkeSBhY3RpdmF0ZWQuCiAJICAobm90IGV4cGxpY2l0LWFjdGl2YXRpb24p CTsgUHJvcC1saW5lIGZpbGUtdmFycyBkb24ndCBoYXZlIGFyZ3MuCiAJICAoc3RyaW5nLW1hdGNo ICJeMTkuMVs4OV0iCTsgQnVnIG9ubHkga25vd24gdG8gYmUgaW4gdjE5LjE4IGFuZApAQCAtMTIz OCw2ICsxNDgwLDE5IEBACiAJCQkJICAgICAgIDsgYWN0aXZlIHN0YXRlIG9yICpkZSphY3RpdmF0 aW9uCiAJCQkJICAgICAgIDsgc3BlY2lmaWNhbGx5IHJlcXVlc3RlZDoKICAgICAgIChzZXRxIGFs bG91dC1leHBsaWNpdGx5LWRlYWN0aXZhdGVkIHQpCisgICAgICAoaWYgKHN0cmluZy1tYXRjaCAi XjE4XC4iIGVtYWNzLXZlcnNpb24pCisJCQkJICAgICAgIDsgUmV2b2tlIHRob3NlIGtleXMgdGhh dCByZW1haW4KKwkJCQkgICAgICAgOyBhcyB3ZSBzZXQgdGhlbToKKwkgIChsZXQgKChjdXJyLWxv YyAoY3VycmVudC1sb2NhbC1tYXApKSkKKwkgICAobWFwY2FyIChmdW5jdGlvbgorCQkgICAgKGxh bWJkYSAoY2VsbCkKKwkJICAgICAgKGlmIChlcSAobG9va3VwLWtleSBjdXJyLWxvYyAoY2FyIGNl bGwpKQorCQkJICAgICAgKGNhciAoY2RyIGNlbGwpKSkKKwkJCSAgKGRlZmluZS1rZXkgY3Vyci1s b2MgKGNhciBjZWxsKQorCQkJICAgIChhc3NxIChjYXIgY2VsbCkgYWxsb3V0LXByaW9yLWJpbmRp bmdzKSkpKSkKKwkJICAgYWxsb3V0LWFkZGVkLWJpbmRpbmdzKQorCSAgIChhbGxvdXQtcmVzdW1w dGlvbnMgJ2FsbG91dC1hZGRlZC1iaW5kaW5ncykKKwkgICAoYWxsb3V0LXJlc3VtcHRpb25zICdh bGxvdXQtcHJpb3ItYmluZGluZ3MpKSkKIAogICAgICAgKGlmIGFsbG91dC1vbGQtc3R5bGUtcHJl Zml4ZXMKIAkgIChwcm9nbgpAQCAtMTI0Niw5ICsxNTAxLDEyIEBACiAgICAgICAoYWxsb3V0LXJl c3VtcHRpb25zICdzZWxlY3RpdmUtZGlzcGxheSkKICAgICAgIChpZiAoYW5kIChib3VuZHAgJ2Jl Zm9yZS1jaGFuZ2UtZnVuY3Rpb25zKSBiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucykKIAkgIChhbGxv dXQtcmVzdW1wdGlvbnMgJ2JlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zKSkKLSAgICAgIChzZXRxIHdy aXRlLWNvbnRlbnRzLWZ1bmN0aW9ucwotCSAgICAoZGVscSAnYWxsb3V0LXdyaXRlLWZpbGUtaG9v awotCQkgIHdyaXRlLWNvbnRlbnRzLWZ1bmN0aW9ucykpCisgICAgICAoc2V0cSBsb2NhbC13cml0 ZS1maWxlLWhvb2tzCisJICAgKGRlbHEgJ2FsbG91dC13cml0ZS1maWxlLWhvb2staGFuZGxlcgor CQkgbG9jYWwtd3JpdGUtZmlsZS1ob29rcykpCisgICAgICAoc2V0cSBhdXRvLXNhdmUtaG9vawor CSAgIChkZWxxICdhbGxvdXQtYXV0by1zYXZlLWhvb2staGFuZGxlcgorCQkgYXV0by1zYXZlLWhv b2spKQogICAgICAgKGFsbG91dC1yZXN1bXB0aW9ucyAncGFyYWdyYXBoLXN0YXJ0KQogICAgICAg KGFsbG91dC1yZXN1bXB0aW9ucyAncGFyYWdyYXBoLXNlcGFyYXRlKQogICAgICAgKGFsbG91dC1y ZXN1bXB0aW9ucyAoaWYgKHN0cmluZy1tYXRjaCAiXjE4IiBlbWFjcy12ZXJzaW9uKQpAQCAtMTI4 OCwyNSArMTU0NiwyNyBAQAogCQkgICAgIChjb25zICcoYWxsb3V0LW1vZGUgLiBhbGxvdXQtbW9k ZS1tYXApCiAJCQkgICBtaW5vci1tb2RlLW1hcC1hbGlzdCkpKSkKIAorCQkJCSAgICAgICA7IFYx OCBtaW5vci1tb2RlIGtleSBiaW5kaW5nczoKKwkJCQkgICAgICAgOyBTdGFzaCByZWNvcmQgb2Yg YWRkZWQgYmluZGluZ3MKKwkJCQkgICAgICAgOyBmb3IgbGF0ZXIgcmV2b2NhdGlvbjoKKwkoYWxs b3V0LXJlc3VtcHRpb25zICdhbGxvdXQtYWRkZWQtYmluZGluZ3MKKwkJCSAgICAobGlzdCBhbGxv dXQta2V5YmluZGluZ3MtbGlzdCkpCisJKGFsbG91dC1yZXN1bXB0aW9ucyAnYWxsb3V0LXByaW9y LWJpbmRpbmdzCisJCQkgICAgKGxpc3QgKGN1cnJlbnQtbG9jYWwtbWFwKSkpCiAJCQkJICAgICAg IDsgYW5kIGFkZCB0aGVtOgogCSh1c2UtbG9jYWwtbWFwIChwcm9kdWNlLWFsbG91dC1tb2RlLW1h cCBhbGxvdXQta2V5YmluZGluZ3MtbGlzdAogCQkJCQkJKGN1cnJlbnQtbG9jYWwtbWFwKSkpCiAJ KQogCiAJCQkJICAgICAgIDsgc2VsZWN0aXZlLWRpc3BsYXkgaXMgdGhlCi0JCQkJICAgICAgIDsg RW1hY3MgY29uZGl0aW9uYWwgZXhwb3N1cmUKKwkJCQkgICAgICAgOyBlbWFjcyBjb25kaXRpb25h bCBleHBvc3VyZQogCQkJCSAgICAgICA7IG1lY2hhbmlzbToKICAgICAgIChhbGxvdXQtcmVzdW1w dGlvbnMgJ3NlbGVjdGl2ZS1kaXNwbGF5ICcodCkpCi0gICAgICAoaWYgYWxsb3V0LWluaGliaXQt cHJvdGVjdGlvbgotCSAgdAotCShhbGxvdXQtcmVzdW1wdGlvbnMgJ2JlZm9yZS1jaGFuZ2UtZnVu Y3Rpb25zCi0JCQkgICAgJyhhbGxvdXQtYmVmb3JlLWNoYW5nZS1wcm90ZWN0KSkpCiAgICAgICAo YWRkLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sgJ2FsbG91dC1wcmUtY29tbWFuZC1idXNpbmVzcykK ICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhvb2sgJ2FsbG91dC1wb3N0LWNvbW1hbmQt YnVzaW5lc3MpCi0JCQkJICAgICAgIDsgVGVtcG9yYXJpbHkgc2V0IGJ5IGFueSBvdXRsaW5lCi0J CQkJICAgICAgIDsgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHRydXN0ZWQgdG8KLQkJCQkgICAgICAg OyBkZWFsIHByb3Blcmx5IHdpdGggY29uY2VhbGVkIHRleHQuCi0gICAgICAoYWRkLWhvb2sgJ3dy aXRlLWNvbnRlbnRzLWZ1bmN0aW9ucyAnYWxsb3V0LXdyaXRlLWZpbGUtaG9vaykKKyAgICAgIChh ZGQtaG9vayAnbG9jYWwtd3JpdGUtZmlsZS1ob29rcyAnYWxsb3V0LXdyaXRlLWZpbGUtaG9vay1o YW5kbGVyKQorICAgICAgKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdhdXRvLXNhdmUtaG9v aykKKyAgICAgIChhZGQtaG9vayAnYXV0by1zYXZlLWhvb2sgJ2FsbG91dC1hdXRvLXNhdmUtaG9v ay1oYW5kbGVyKQogCQkJCSAgICAgICA7IEN1c3RvbSBhdXRvLWZpbGwgZnVuYywgdG8gc3VwcG9y dAogCQkJCSAgICAgICA7IHJlc3BlY3QgZm9yIHRvcGljIGhlYWRsaW5lLAogCQkJCSAgICAgICA7 IGhhbmdpbmctaW5kZW50cywgZXRjOgpAQCAtMTMzNyw3ICsxNTk3LDggQEAKICAgICAgIChpZiBh bGxvdXQtbGF5b3V0CiAJICAoc2V0cSBkby1sYXlvdXQgdCkpCiAKLSAgICAgIChpZiBhbGxvdXQt aXNlYXJjaC1keW5hbWljLWV4cG9zZQorICAgICAgKGlmIChhbmQgYWxsb3V0LWlzZWFyY2gtZHlu YW1pYy1leHBvc2UKKwkgICAgICAgKG5vdCAoZmJvdW5kcCAnYWxsb3V0LXJlYWwtaXNlYXJjaC1h Ym9ydCkpKQogCSAgKGFsbG91dC1lbndyYXAtaXNlYXJjaCkpCiAKICAgICAgIChydW4taG9va3Mg J2FsbG91dC1tb2RlLWhvb2spCkBAIC0xMzc2LDcgKzE2MzcsNiBAQAogICAgICkJCQkJCTsgbGV0 KgogICApICAJCQkJCTsgZGVmdW4KIDs7O18gID4gYWxsb3V0LW1pbm9yLW1vZGUKLTs7OyBYWFgg cmVsZWFzZWQgdmVyaW9uIGRvZXNuJ3QgZG8gdGhpcz8KIChkZWZhbGlhcyAnYWxsb3V0LW1pbm9y LW1vZGUgJ2FsbG91dC1tb2RlKQogCiA7OztfICMzIEludGVybmFsIFBvc2l0aW9uIFN0YXRlLVRy YWNraW5nIC0gImFsbG91dC1yZWNlbnQtKiIgZnVuY3MKQEAgLTE0MDAsMTIgKzE2NjAsMTIgQEAK ICAgIkJ1ZmZlciBwb2ludCBsYXN0IHJldHVybmVkIGJ5IGBhbGxvdXQtZW5kLW9mLWN1cnJlbnQt c3VidHJlZScuIikKIChtYWtlLXZhcmlhYmxlLWJ1ZmZlci1sb2NhbCAnYWxsb3V0LXJlY2VudC1l bmQtb2Ytc3VidHJlZSkKIDs7O18gID4gYWxsb3V0LXByZWZpeC1kYXRhIChiZWcgZW5kKQotKGRl Zm1hY3JvIGFsbG91dC1wcmVmaXgtZGF0YSAoYmVnaW5uaW5nIGVuZCkKKyhkZWZtYWNybyBhbGxv dXQtcHJlZml4LWRhdGEgKGJlZyBlbmQpCiAgICJSZWdpc3RlciBhbGxvdXQtcHJlZml4IHN0YXRl IGRhdGEgLSBCRUdJTk5JTkcgYW5kIEVORCBvZiBwcmVmaXguCiAKIEZvciByZWZlcmVuY2UgYnkg YGFsbG91dC1yZWNlbnQnIGZ1bmNzLiAgUmV0dXJucyBCRUdJTk5JTkcuIgogICBgKHNldHEgYWxs b3V0LXJlY2VudC1wcmVmaXgtZW5kICxlbmQKLSAgICAgICAgIGFsbG91dC1yZWNlbnQtcHJlZml4 LWJlZ2lubmluZyAsYmVnaW5uaW5nKSkKKyAgICAgICAgIGFsbG91dC1yZWNlbnQtcHJlZml4LWJl Z2lubmluZyAsYmVnKSkKIDs7O18gID4gYWxsb3V0LXJlY2VudC1kZXB0aCAoKQogKGRlZm1hY3Jv IGFsbG91dC1yZWNlbnQtZGVwdGggKCkKICAgIlJldHVybiBkZXB0aCBvZiBsYXN0IGhlYWRpbmcg ZW5jb3VudGVyZWQgYnkgYW4gb3V0bGluZSBtYW5ldXZlcmluZyBmdW5jdGlvbi4KQEAgLTE2MTIs OSArMTg3MiwxMiBAQAogICAiUHJvZHVjZSBhIGxvY2F0aW9uIFwiY2hhcnRcIiBvZiBzdWJ0b3Bp Y3Mgb2YgdGhlIGNvbnRhaW5pbmcgdG9waWMuCiAKIE9wdGlvbmFsIGFyZ3VtZW50IExFVkVMUyBz cGVjaWZpZXMgdGhlIGRlcHRoIFwocmVsYXRpdmUgdG8gc3RhcnQKLWRlcHRoKSBmb3IgdGhlIGNo YXJ0LgorZGVwdGgpIGZvciB0aGUgY2hhcnQuICBTdWJzZXF1ZW50IG9wdGlvbmFsIGFyZ3MgYXJl IG5vdCBmb3IgcHVibGljCit1c2UuCisKK1BvaW50IGlzIGxlZnQgYXQgdGhlIGVuZCBvZiB0aGUg c3VidHJlZS4KIAotQ2hhcnRzIGFyZSB1c2VkIHRvIGNhcHR1cmUgb3V0bGluZSBzdHJ1Y3R1cmUs IHNvIHRoYXQgb3V0bGluZSBhbHRlcmluZworQ2hhcnRzIGFyZSB1c2VkIHRvIGNhcHR1cmUgb3V0 bGluZSBzdHJ1Y3R1cmUsIHNvIHRoYXQgb3V0bGluZS1hbHRlcmluZwogcm91dGluZXMgbmVlZCBh c3Nlc3MgdGhlIHN0cnVjdHVyZSBvbmx5IG9uY2UsIGFuZCB0aGVuIHVzZSB0aGUgY2hhcnQKIGZv ciB0aGVpciBlbGFib3JhdGUgbWFuaXB1bGF0aW9ucy4KIApAQCAtMTYyNSwxMSArMTg4OCw5IEBA CiBUaGUgY2hhcnQgZm9yIGEgdG9waWNzJyBvZmZzcHJpbmcgcHJlY2VkZXMgdGhlIGVudHJ5IGZv ciB0aGUgdG9waWMKIGl0c2VsZi4KIAotXChmbiAmb3B0aW9uYWwgTEVWRUxTKSIKLQotICA7OyBU aGUgb3RoZXIgZnVuY3Rpb24gcGFyYW1ldGVycyBhcmUgZm9yIGludGVybmFsIHJlY3Vyc2lvbiwg YW5kIHNob3VsZAotICA7OyBub3QgYmUgc3BlY2lmaWVkIGJ5IGV4dGVybmFsIGNhbGxlcnMuICBP UklHLURFUFRIIGlzIGRlcHRoIG9mIHRvcGljIGF0Ci0gIDs7IHN0YXJ0aW5nIHBvaW50LCBhbmQg UFJFVi1ERVBUSCBpcyBkZXB0aCBvZiBwcmlvciB0b3BpYy4iCitUaGUgb3RoZXIgZnVuY3Rpb24g cGFyYW1ldGVycyBhcmUgZm9yIGludGVybmFsIHJlY3Vyc2lvbiwgYW5kIHNob3VsZAorbm90IGJl IHNwZWNpZmllZCBieSBleHRlcm5hbCBjYWxsZXJzLiAgT1JJRy1ERVBUSCBpcyBkZXB0aCBvZiB0 b3BpYyBhdAorc3RhcnRpbmcgcG9pbnQsIGFuZCBQUkVWLURFUFRIIGlzIGRlcHRoIG9mIHByaW9y IHRvcGljLiIKIAogICAobGV0ICgob3JpZ2luYWwgKG5vdCBvcmlnLWRlcHRoKSkJOyBgb3JpZy1k ZXB0aCcgc2V0IG9ubHkgaW4gcmVjdXJzaW9uLgogCWNoYXJ0IGN1cnItZGVwdGgpCkBAIC0xODM1 LDExICsyMDk2LDE4IEBACiAgIChpZiAocmUtc2VhcmNoLWZvcndhcmQgYWxsb3V0LWxpbmUtYm91 bmRhcnktcmVnZXhwIG5pbCAnbW92ZSkKICAgICAgIChwcm9nMSAoZ290by1jaGFyIChtYXRjaC1i ZWdpbm5pbmcgMCkpCiAgICAgICAgICAgICAgKGFsbG91dC1wcmVmaXgtZGF0YSAobWF0Y2gtYmVn aW5uaW5nIDIpKG1hdGNoLWVuZCAyKSkpKSkKLTs7O18gICA+IGFsbG91dC1lbmQtb2YtY3VycmVu dC1zdWJ0cmVlICgpCi0oZGVmdW4gYWxsb3V0LWVuZC1vZi1jdXJyZW50LXN1YnRyZWUgKCkKLSAg IlB1dCBwb2ludCBhdCB0aGUgZW5kIG9mIHRoZSBsYXN0IGxlYWYgaW4gdGhlIGN1cnJlbnRseSB2 aXNpYmxlIHRvcGljLiIKLSAgKGludGVyYWN0aXZlKQotICAoYWxsb3V0LWJhY2stdG8tY3VycmVu dC1oZWFkaW5nKQorOzs7XyAgID4gYWxsb3V0LWVuZC1vZi1zdWJ0cmVlICgmb3B0aW9uYWwgY3Vy cmVudCkKKyhkZWZ1biBhbGxvdXQtZW5kLW9mLXN1YnRyZWUgKCZvcHRpb25hbCBjdXJyZW50KQor ICAiUHV0IHBvaW50IGF0IHRoZSBlbmQgb2YgdGhlIGxhc3QgbGVhZiBpbiB0aGUgY29udGFpbmlu ZyB0b3BpYy4KKworSWYgb3B0aW9uYWwgQ1VSUkVOVCBpcyB0cnVlIChkZWZhdWx0IGZhbHNlKSwg dGhlbiBwdXQgcG9pbnQgYXQgdGhlIGVuZCBvZgordGhlIGNvbnRhaW5pbmcgdmlzaWJsZSB0b3Bp Yy4KKworUmV0dXJucyB0aGUgdmFsdWUgb2YgcG9pbnQuIgorICAoaW50ZXJhY3RpdmUgIlAiKQor ICAoaWYgY3VycmVudAorICAgICAgKGFsbG91dC1iYWNrLXRvLWN1cnJlbnQtaGVhZGluZykKKyAg ICAoYWxsb3V0LWdvdG8tcHJlZml4KSkKICAgKGxldCAoKGxldmVsIChhbGxvdXQtcmVjZW50LWRl cHRoKSkpCiAgICAgKGFsbG91dC1uZXh0LWhlYWRpbmcpCiAgICAgKHdoaWxlIChhbmQgKG5vdCAo ZW9icCkpCkBAIC0xODUxLDkgKzIxMTksMTYgQEAKICAgICAgICAgICAgICAgICcoP1xuID9ccikp CiAgICAgICAgICAoZm9yd2FyZC1jaGFyIC0xKSkKICAgICAoc2V0cSBhbGxvdXQtcmVjZW50LWVu ZC1vZi1zdWJ0cmVlIChwb2ludCkpKSkKKzs7O18gICA+IGFsbG91dC1lbmQtb2YtY3VycmVudC1z dWJ0cmVlICgpCisoZGVmdW4gYWxsb3V0LWVuZC1vZi1jdXJyZW50LXN1YnRyZWUgKCkKKyAgIlB1 dCBwb2ludCBhdCBlbmQgb2YgbGFzdCBsZWFmIGluIGN1cnJlbnRseSB2aXNpYmxlIGNvbnRhaW5p bmcgdG9waWMuCisKK1JldHVybnMgdGhlIHZhbHVlIG9mIHBvaW50LiIKKyAgKGludGVyYWN0aXZl KQorICAoYWxsb3V0LWVuZC1vZi1zdWJ0cmVlIHQpKQogOzs7XyAgID4gYWxsb3V0LWJlZ2lubmlu Zy1vZi1jdXJyZW50LWVudHJ5ICgpCiAoZGVmdW4gYWxsb3V0LWJlZ2lubmluZy1vZi1jdXJyZW50 LWVudHJ5ICgpCi0gICJXaGVuIG5vdCBhbHJlYWR5IHRoZXJlLCBwb3NpdGlvbiBwb2ludCBhdCBi ZWdpbm5pbmcgb2YgY3VycmVudCB0b3BpYydzIGJvZHkuCisgICJXaGVuIG5vdCBhbHJlYWR5IHRo ZXJlLCBwb3NpdGlvbiBwb2ludCBhdCBiZWdpbm5pbmcgb2YgY3VycmVudCB0b3BpYyBoZWFkZXIu CiAKIElmIGFscmVhZHkgdGhlcmUsIG1vdmUgY3Vyc29yIHRvIGJ1bGxldCBmb3IgaG90LXNwb3Qg b3BlcmF0aW9uLgogXChTZWUgYGFsbG91dC1tb2RlJyBkb2Mgc3RyaW5nIGZvciBkZXRhaWxzIG9u IGhvdC1zcG90IG9wZXJhdGlvbi4pIgpAQCAtMTg2MywxMSArMjEzOCwxMCBAQAogICAgIChpZiAo YW5kIChpbnRlcmFjdGl2ZS1wKQogCSAgICAgKD0gKHBvaW50KSBzdGFydC1wb2ludCkpCiAJKGdv dG8tY2hhciAoYWxsb3V0LWN1cnJlbnQtYnVsbGV0LXBvcykpKSkpCi07OztfICAgPiBhbGxvdXQt ZW5kLW9mLWN1cnJlbnQtZW50cnkgKCkKLShkZWZ1biBhbGxvdXQtZW5kLW9mLWN1cnJlbnQtZW50 cnkgKCkKKzs7O18gICA+IGFsbG91dC1lbmQtb2YtZW50cnkgKCkKKyhkZWZ1biBhbGxvdXQtZW5k LW9mLWVudHJ5ICgpCiAgICJQb3NpdGlvbiB0aGUgcG9pbnQgYXQgdGhlIGVuZCBvZiB0aGUgY3Vy cmVudCB0b3BpY3MnIGVudHJ5LiIKICAgKGludGVyYWN0aXZlKQotICAoYWxsb3V0LXNob3ctZW50 cnkpCiAgIChwcm9nMSAoYWxsb3V0LXByZS1uZXh0LXByZWZhY2UpCiAgICAgKGlmIChhbmQgKG5v dCAoYm9icCkpKGxvb2tpbmctYXQgIl4kIikpCiAgICAgICAgIChmb3J3YXJkLWNoYXIgLTEpKSkp CkBAIC0xODc1LDkgKzIxNDksMjcgQEAKIChkZWZ1biBhbGxvdXQtZW5kLW9mLWN1cnJlbnQtaGVh ZGluZyAoKQogICAoaW50ZXJhY3RpdmUpCiAgIChhbGxvdXQtYmVnaW5uaW5nLW9mLWN1cnJlbnQt ZW50cnkpCi0gIChmb3J3YXJkLWxpbmUgLTEpCi0gIChlbmQtb2YtbGluZSkpCisgIChyZS1zZWFy Y2gtZm9yd2FyZCAiW1xuXHJdIiBuaWwgdCkKKyAgKGZvcndhcmQtY2hhciAtMSkpCiAoZGVmYWxp YXMgJ2FsbG91dC1lbmQtb2YtaGVhZGluZyAnYWxsb3V0LWVuZC1vZi1jdXJyZW50LWhlYWRpbmcp Cis7OztfICAgPiBhbGxvdXQtZ2V0LWJvZHktdGV4dCAoKQorKGRlZnVuIGFsbG91dC1nZXQtYm9k eS10ZXh0ICgpCisgICJSZXR1cm4gdGhlIHVubWFuZ2xlZCBib2R5IHRleHQgb2YgdGhlIHRvcGlj IGltbWVkaWF0ZWx5IGNvbnRhaW5pbmcgcG9pbnQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAo YWxsb3V0LWVuZC1vZi1wcmVmaXgpCisgICAgKGlmIChub3QgKHJlLXNlYXJjaC1mb3J3YXJkICJb XG5ccl0iIG5pbCB0KSkKKyAgICAgICAgbmlsCisgICAgICAoYmFja3dhcmQtY2hhciAxKQorICAg ICAgKGxldCAoKHByZS1ib2R5IChwb2ludCkpKQorICAgICAgICAoaWYgKG5vdCBwcmUtYm9keSkK KyAgICAgICAgICAgIG5pbAorICAgICAgICAgIChhbGxvdXQtZW5kLW9mLWVudHJ5KQorICAgICAg ICAgIChpZiAobm90ICg9IHByZS1ib2R5IChwb2ludCkpKQorICAgICAgICAgICAgICAoYnVmZmVy LXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzICgxKyBwcmUtYm9keSkgKHBvaW50KSkpKQorICAgICAg ICApCisgICAgICApCisgICAgKQorICApCiAKIDs7O18gIC0gRGVwdGgtd2lzZQogOzs7XyAgID4g YWxsb3V0LWFzY2VuZC10by1kZXB0aCAoZGVwdGgpCkBAIC0xODkyLDEyICsyMTg0LDE2IEBACiAg ICAgICAgIChpZiAoPSAoYWxsb3V0LXJlY2VudC1kZXB0aCkgZGVwdGgpCiAgICAgICAgICAgICAo cHJvZ24gKGdvdG8tY2hhciBhbGxvdXQtcmVjZW50LXByZWZpeC1iZWdpbm5pbmcpCiAgICAgICAg ICAgICAgICAgICAgZGVwdGgpCi0gICAgICAgICAgKGdvdG8tY2hhciBsYXN0LWdvb2QpKSkpKQor ICAgICAgICAgIChnb3RvLWNoYXIgbGFzdC1nb29kKQorICAgICAgICAgIG5pbCkpCisgICAgKGlm IChpbnRlcmFjdGl2ZS1wKSAoYWxsb3V0LWVuZC1vZi1wcmVmaXgpKSkpCiA7OztfICAgPiBhbGxv dXQtYXNjZW5kICgpCiAoZGVmdW4gYWxsb3V0LWFzY2VuZCAoKQogICAiQXNjZW5kIG9uZSBsZXZl bCwgcmV0dXJuaW5nIHQgaWYgc3VjY2Vzc2Z1bCwgbmlsIGlmIG5vdC4iCi0gIChpZiAoYWxsb3V0 LWJlZ2lubmluZy1vZi1sZXZlbCkKLSAgICAgIChhbGxvdXQtcHJldmlvdXMtaGVhZGluZykpKQor ICAocHJvZzEKKyAgICAgIChpZiAoYWxsb3V0LWJlZ2lubmluZy1vZi1sZXZlbCkKKwkgIChhbGxv dXQtcHJldmlvdXMtaGVhZGluZykpCisgICAgKGlmIChpbnRlcmFjdGl2ZS1wKSAoYWxsb3V0LWVu ZC1vZi1wcmVmaXgpKSkpCiA7OztfICAgPiBhbGxvdXQtZGVzY2VuZC10by1kZXB0aCAoZGVwdGgp CiAoZGVmdW4gYWxsb3V0LWRlc2NlbmQtdG8tZGVwdGggKGRlcHRoKQogICAiRGVzY2VuZCB0byBk ZXB0aCBERVBUSCB3aXRoaW4gY3VycmVudCB0b3BpYy4KQEAgLTE5MTcsMTMgKzIyMTMsMTMgQEAK ICAgICAgIG5pbCkpCiAgICkKIDs7O18gICA+IGFsbG91dC11cC1jdXJyZW50LWxldmVsIChhcmcg Jm9wdGlvbmFsIGRvbnQtY29tcGxhaW4pCi0oZGVmdW4gYWxsb3V0LXVwLWN1cnJlbnQtbGV2ZWwg KGFyZyAmb3B0aW9uYWwgZG9udC1jb21wbGFpbiBpbnRlcmFjdGl2ZSkKKyhkZWZ1biBhbGxvdXQt dXAtY3VycmVudC1sZXZlbCAoYXJnICZvcHRpb25hbCBkb250LWNvbXBsYWluKQogICAiTW92ZSBv dXQgQVJHIGxldmVscyBmcm9tIGN1cnJlbnQgdmlzaWJsZSB0b3BpYy4KIAogUG9zaXRpb25zIG9u IGhlYWRpbmcgbGluZSBvZiBjb250YWluaW5nIHRvcGljLiAgRXJyb3IgaWYgdW5hYmxlIHRvCiBh c2NlbmQgdGhhdCBmYXIsIG9yIG5pbCBpZiB1bmFibGUgdG8gYXNjZW5kIGJ1dCBvcHRpb25hbCBh cmcKIERPTlQtQ09NUExBSU4gaXMgbm9uLW5pbC4iCi0gIChpbnRlcmFjdGl2ZSAicFxucCIpCisg IChpbnRlcmFjdGl2ZSAicCIpCiAgIChhbGxvdXQtYmFjay10by1jdXJyZW50LWhlYWRpbmcpCiAg IChsZXQgKChwcmVzZW50LWxldmVsIChhbGxvdXQtcmVjZW50LWRlcHRoKSkKIAkobGFzdC1nb29k IChwb2ludCkpCkBAIC0xOTQ0LDEyICsyMjQwLDEyIEBACiAgICAgKGlmIChvciBmYWlsZWQKIAkg ICAgKD4gYXJnIDApKQogCShwcm9nbiAoZ290by1jaGFyIGxhc3QtZ29vZCkKLQkgICAgICAgKGlm IGludGVyYWN0aXZlIChhbGxvdXQtZW5kLW9mLXByZWZpeCkpCisJICAgICAgIChpZiAoaW50ZXJh Y3RpdmUtcCkgKGFsbG91dC1lbmQtb2YtcHJlZml4KSkKIAkgICAgICAgKGlmIChub3QgZG9udC1j b21wbGFpbikKIAkJICAgKGVycm9yICJDYW4ndCBhc2NlbmQgcGFzdCBvdXRlcm1vc3QgbGV2ZWwi KQotCQkgKGlmIGludGVyYWN0aXZlIChhbGxvdXQtZW5kLW9mLXByZWZpeCkpCisJCSAoaWYgKGlu dGVyYWN0aXZlLXApIChhbGxvdXQtZW5kLW9mLXByZWZpeCkpCiAJCSBuaWwpKQotICAgICAgKGlm IGludGVyYWN0aXZlIChhbGxvdXQtZW5kLW9mLXByZWZpeCkpCisgICAgICAoaWYgKGludGVyYWN0 aXZlLXApIChhbGxvdXQtZW5kLW9mLXByZWZpeCkpCiAgICAgICBhbGxvdXQtcmVjZW50LXByZWZp eC1iZWdpbm5pbmcpKSkKIAogOzs7XyAgLSBMaW5lYXIKQEAgLTE5ODEsNyArMjI3Nyw3IEBACiAg ICAgICAgIG5pbCkpKSkKIDs7O18gICA+IGFsbG91dC1wcmV2aW91cy1zaWJsaW5nICgmb3B0aW9u YWwgZGVwdGggYmFja3dhcmQpCiAoZGVmdW4gYWxsb3V0LXByZXZpb3VzLXNpYmxpbmcgKCZvcHRp b25hbCBkZXB0aCBiYWNrd2FyZCkKLSAgIkxpa2UgYGFsbG91dC1mb3J3YXJkLWN1cnJlbnQtbGV2 ZWwnLCBidXQgYmFja3dhcmRzICYgcmVzcGVjdCBpbnZpc2libGUgdG9waWNzLgorICAiTGlrZSBg YWxsb3V0LWZvcndhcmQtY3VycmVudC1sZXZlbCcgYmFja3dhcmRzLCByZXNwZWN0aW5nIGludmlz aWJsZSB0b3BpY3MuCiAKIE9wdGlvbmFsIERFUFRIIHNwZWNpZmllcyBkZXB0aCB0byB0cmF2ZXJz ZSwgZGVmYXVsdCBjdXJyZW50IGRlcHRoLgogCkBAIC0yMDE1LDcgKzIzMTEsNyBAQAogICAobGV0 ICgoZGVwdGggKGFsbG91dC1kZXB0aCkpKQogICAgICh3aGlsZSAoYWxsb3V0LXByZXZpb3VzLXNp YmxpbmcgZGVwdGggbmlsKSkKICAgICAocHJvZzEgKGFsbG91dC1yZWNlbnQtZGVwdGgpCi0gICAg ICAoYWxsb3V0LWVuZC1vZi1wcmVmaXgpKSkpCisgICAgICAoaWYgKGludGVyYWN0aXZlLXApIChh bGxvdXQtZW5kLW9mLXByZWZpeCkpKSkpCiA7OztfICAgPiBhbGxvdXQtbmV4dC12aXNpYmxlLWhl YWRpbmcgKGFyZykKIChkZWZ1biBhbGxvdXQtbmV4dC12aXNpYmxlLWhlYWRpbmcgKGFyZykKICAg Ik1vdmUgdG8gdGhlIG5leHQgQVJHJ3RoIHZpc2libGUgaGVhZGluZyBsaW5lLCBiYWNrd2FyZCBp ZiBhcmcgaXMgbmVnYXRpdmUuCkBAIC0yMDUzLDEzICsyMzQ5LDEzIEBACiAgIChpbnRlcmFjdGl2 ZSAicCIpCiAgIChhbGxvdXQtbmV4dC12aXNpYmxlLWhlYWRpbmcgKC0gYXJnKSkpCiA7OztfICAg PiBhbGxvdXQtZm9yd2FyZC1jdXJyZW50LWxldmVsIChhcmcpCi0oZGVmdW4gYWxsb3V0LWZvcndh cmQtY3VycmVudC1sZXZlbCAoYXJnICZvcHRpb25hbCBpbnRlcmFjdGl2ZSkKKyhkZWZ1biBhbGxv dXQtZm9yd2FyZC1jdXJyZW50LWxldmVsIChhcmcpCiAgICJQb3NpdGlvbiBwb2ludCBhdCB0aGUg bmV4dCBoZWFkaW5nIG9mIHRoZSBzYW1lIGxldmVsLgogCiBUYWtlcyBvcHRpb25hbCByZXBlYXQt Y291bnQsIGdvZXMgYmFja3dhcmQgaWYgY291bnQgaXMgbmVnYXRpdmUuCiAKIFJldHVybnMgcmVz dWx0aW5nIHBvc2l0aW9uLCBlbHNlIG5pbCBpZiBub25lIGZvdW5kLiIKLSAgKGludGVyYWN0aXZl ICJwXG5wIikKKyAgKGludGVyYWN0aXZlICJwIikKICAgKGxldCAoKHN0YXJ0LWRlcHRoIChhbGxv dXQtY3VycmVudC1kZXB0aCkpCiAJKHN0YXJ0LXBvaW50IChwb2ludCkpCiAJKHN0YXJ0LWFyZyBh cmcpCkBAIC0yMDg3LDcgKzIzODMsNyBAQAogCQkgICg9IChhbGxvdXQtcmVjZW50LWRlcHRoKSBz dGFydC1kZXB0aCkpKQogCWFsbG91dC1yZWNlbnQtcHJlZml4LWJlZ2lubmluZwogICAgICAgKGdv dG8tY2hhciBsYXN0LWdvb2QpCi0gICAgICAoaWYgKG5vdCBpbnRlcmFjdGl2ZSkKKyAgICAgIChp ZiAobm90IChpbnRlcmFjdGl2ZS1wKSkKIAkgIG5pbAogCShhbGxvdXQtZW5kLW9mLXByZWZpeCkK IAkoZXJyb3IgIkhpdCAlcyBsZXZlbCAlZCB0b3BpYywgdHJhdmVyc2VkICVkIG9mICVkIHJlcXVl c3RlZCIKQEAgLTIwOTYsMTAgKzIzOTIsMTAgQEAKIAkgICAgICAgKC0gKGFicyBzdGFydC1hcmcp IGFyZykKIAkgICAgICAgKGFicyBzdGFydC1hcmcpKSkpKSkKIDs7O18gICA+IGFsbG91dC1iYWNr d2FyZC1jdXJyZW50LWxldmVsIChhcmcpCi0oZGVmdW4gYWxsb3V0LWJhY2t3YXJkLWN1cnJlbnQt bGV2ZWwgKGFyZyAmb3B0aW9uYWwgaW50ZXJhY3RpdmUpCisoZGVmdW4gYWxsb3V0LWJhY2t3YXJk LWN1cnJlbnQtbGV2ZWwgKGFyZykKICAgIkludmVyc2Ugb2YgYGFsbG91dC1mb3J3YXJkLWN1cnJl bnQtbGV2ZWwnLiIKLSAgKGludGVyYWN0aXZlICJwXG5wIikKLSAgKGlmIGludGVyYWN0aXZlCisg IChpbnRlcmFjdGl2ZSAicCIpCisgIChpZiAoaW50ZXJhY3RpdmUtcCkKICAgICAgIChsZXQgKChj dXJyZW50LXByZWZpeC1hcmcgKCogLTEgYXJnKSkpCiAJKGNhbGwtaW50ZXJhY3RpdmVseSAnYWxs b3V0LWZvcndhcmQtY3VycmVudC1sZXZlbCkpCiAgICAgKGFsbG91dC1mb3J3YXJkLWN1cnJlbnQt bGV2ZWwgKCogLTEgYXJnKSkpKQpAQCAtMjEwNywxMjEgKzI0MDMsNiBAQAogOzs7XyAjNSBBbHRl cmF0aW9uCiAKIDs7O18gIC0gRnVuZGFtZW50YWwKLTs7O18gICA+IGFsbG91dC1iZWZvcmUtY2hh bmdlLXByb3RlY3QgKGJlZyBlbmQpCi0oZGVmdW4gYWxsb3V0LWJlZm9yZS1jaGFuZ2UtcHJvdGVj dCAoYmVnIGVuZCkKLSAgIk91dGxpbmUgYmVmb3JlLWNoYW5nZSBob29rLCByZWd1bGF0ZXMgY2hh bmdlcyB0byBjb25jZWFsZWQgdGV4dC4KLQotUmV2ZWFsIGNvbmNlYWxlZCB0ZXh0IHRoYXQgd291 bGQgYmUgY2hhbmdlZCBieSBjdXJyZW50IGNvbW1hbmQsIGFuZAotb2ZmZXIgdXNlciBjaG9pY2Ug dG8gY29tbWl0IG9yIGZvcmVnbyB0aGUgY2hhbmdlLiAgVW5jaGFuZ2VkIHRleHQgaXMKLXJlY29u Y2VhbGVkLiAgVXNlciBoYXMgb3B0aW9uIHRvIGhhdmUgY2hhbmdlZCB0ZXh0IHJlY29uY2VhbGVk LgotCi1VbmRvIGNvbW1hbmRzIGFyZSBzcGVjaWFsbHkgdHJlYXRlZCAtIHRoZSB1c2VyIGlzIG5v dCBwcm9tcHRlZCBmb3IKLWNob2ljZSwgdGhlIHVuZG9lcyBhcmUgYWx3YXlzIGNvbW1pdHRlZCAo YmFzZWQgb24gcHJlc3VtcHRpb24gdGhhdCB0aGUKLXRoaW5ncyBiZWluZyB1bmRvbmUgd2VyZSBh bHJlYWR5IHN1YmplY3QgdG8gdGhpcyByZWd1bGF0aW9uIHJvdXRpbmUpLAotYW5kIHVuZG9lcyBh bHdheXMgbGVhdmUgdGhlIGNoYW5nZWQgc3R1ZmYgZXhwb3NlZC4KLQotQ2hhbmdlcyB0byBjb25j ZWFsZWQgcmVnaW9ucyBhcmUgaWdub3JlZCB3aGlsZSBmaWxlIGlzIGJlaW5nIHdyaXR0ZW4uCi1c KFRoaXMgaXMgZm9yIHRoZSBzYWtlIG9mIGZ1bmN0aW9ucyB0aGF0IGRvIGNoYW5nZSB0aGUgZmls ZSBkdXJpbmcKLXdyaXRlcywgbGlrZSBjcnlwdCBhbmQgemlwIG1vZGVzLikKLQotTG9jYWxseSBi b3VuZCBpbiBvdXRsaW5lIGJ1ZmZlcnMgdG8gYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJywgd2hp Y2gKLWluIEVtYWNzIDE5IGlzIHJ1biBiZWZvcmUgYW55IGNoYW5nZSB0byB0aGUgYnVmZmVyLgot Ci1BbnkgZnVuY3Rpb25zIHdoaWNoIHNldCBbYHRoaXMtY29tbWFuZCcgdG8gYHVuZG8nLCBvciB3 aGljaCBzZXRdCi1gYWxsb3V0LW92ZXJyaWRlLXByb3RlY3QnIG5vbi1uaWwgKGFzIGRvZXMsIGVn LCBhbGxvdXQtZmxhZy1jaGFycykKLWFyZSBleGVtcHQgZnJvbSB0aGlzIHJlc3RyaWN0aW9uLiIK LSAgKGlmIChhbmQgKGFsbG91dC1tb2RlLXApCi0JCQkJCTsgYWxsb3V0LW92ZXJyaWRlLXByb3Rl Y3QKLQkJCQkJOyBzZXQgYnkgZnVuY3Rpb25zIHRoYXQga25vdyB3aGF0Ci0JCQkJCTsgdGhleSdy ZSBkb2luZywgZWcgb3V0bGluZSBpbnRlcm5hbHM6Ci0JICAgKG5vdCBhbGxvdXQtb3ZlcnJpZGUt cHJvdGVjdCkKLQkgICAobm90IGFsbG91dC1kdXJpbmctd3JpdGUtY3VlKQotCSAgIChzYXZlLW1h dGNoLWRhdGEJCTsgUHJlc2VydmUgb3BlcmF0aW9uIHBvc2l0aW9uIHN0YXRlLgotCQkJCQk7IEJv dGggYmVnaW5uaW5nIGFuZCBlbmQgY2hhcnMgbXVzdAotCQkJCQk7IGJlIGV4cG9zZWQ6Ci0JICAg ICAoc2F2ZS1leGN1cnNpb24gKGlmIChtZW1xIHRoaXMtY29tbWFuZCAnKG5ld2xpbmUgb3Blbi1s aW5lKSkKLQkJCQkgOzsgQ29tcGVuc2F0ZSBmb3Igc3R1cGlkIEVtYWNzIHtuZXcsCi0JCQkJIDs7 IG9wZW4tfWxpbmUgZGlzcGxheSBvcHRpbWl6YXRpb246Ci0JCQkJIChzZXRxIGJlZyAoMSsgYmVn KQotCQkJCSAgICAgICBlbmQgKDErIGVuZCkpKQotCQkJICAgICAoZ290by1jaGFyIGJlZykKLQkJ CSAgICAgKG9yIChhbGxvdXQtaGlkZGVuLXApCi0JCQkJIChhbmQgKG5vdCAoPSBiZWcgZW5kKSkK LQkJCQkgICAgICAoZ290by1jaGFyIGVuZCkKLQkJCQkgICAgICAoYWxsb3V0LWhpZGRlbi1wKSkp KSkpCi0gICAgICAoc2F2ZS1tYXRjaC1kYXRhCi0JKGlmIChlcXVhbCB0aGlzLWNvbW1hbmQgJ3Vu ZG8pCi0JCSA7OyBBbGxvdyB1bmRvIHdpdGhvdXQgaW5oaWJpdGlvbi4KLQkJIDs7IC0gVW5kb2lu ZyBuZXcgYW5kIG9wZW4tbGluZSBoaXRzIHN0dXBpZCBFbWFjcyByZWRpc3BsYXkKLQkJIDs7ICAg b3B0aW1pemF0aW9uIChlbSAxOSBjbWRzLmMsIH4gbGluZSAyMDApLgotCQkgOzsgLSBQcmVzdW1h Ymx5LCB1bmRvaW5nIHdoYXQgd2FzIHByb3Blcmx5IHByb3RlY3RlZCB3aGVuCi0JCSA7OyAgIGRv bmUuCi0JCSA7OyAtIFVuZG8gbWF5IGJlIHVzZXJzJyBvbmx5IHJlY291cnNlIGluIHByb3RlY3Rp b24gZmF1bHRzLgotCQkgOzsgU28sIGV4cG9zZSB3aGF0IGdldHRpbmcgY2hhbmdlZDoKLQkgICAg KHByb2duIChtZXNzYWdlICJVbmRvISAtIGV4cG9zaW5nIGNvbmNlYWxlZCB0YXJnZXQuLi4iKQot CQkgICAoaWYgKGFsbG91dC1oaWRkZW4tcCkKLQkJICAgICAgIChhbGxvdXQtc2hvdy1jaGlsZHJl bikpCi0JCSAgIChtZXNzYWdlICJVbmRvISIpKQotCSAgKGxldCAocmVzcG9uc2UKLQkJKHJlaGlk ZS1jb21wbGV0ZWx5IChzYXZlLWV4Y3Vyc2lvbiAoYWxsb3V0LWdvdG8tcHJlZml4KQotCQkJCQkJ ICAgKGFsbG91dC1oaWRkZW4tcCkpKQotCQlyZWhpZGUtcGxhY2UpCi0KLQkgICAgKHNhdmUtZXhj dXJzaW9uCi0JICAgICAgKGlmIChjb25kaXRpb24tY2FzZSBlcnIKLQkJICAgICAgOzsgQ29uZGl0 aW9uIGNhc2UgdG8gY2F0Y2gga2V5Ym9hcmQgcXVpdHMgZHVyaW5nIHJlYWRzLgotCQkgICAgICAo cHJvZ24KLQkJCQkJOyBHaXZlIHRoZW0gYSBwZWVrIHdoZXJlCi0JCQkoc2F2ZS1leGN1cnNpb24K LQkJCSAgKGlmIChlb2xwKSAoc2V0cSByZWhpZGUtcGxhY2UKLQkJCQkJICAgKGFsbG91dC1nb3Rv LXByZWZpeCkpKQotCQkJICAoYWxsb3V0LXNob3ctZW50cnkpKQotCQkJCQk7IFByZXNlbnQgdGhl IG1lc3NhZ2UsIGJ1dC4uLgotCQkJCQk7IGxlYXZlIHRoZSBjdXJzb3IgYXQgdGhlIGxvY2F0aW9u Ci0JCQkJCTsgdW50aWwgdGhleSByZXNwb25kOgotCQkJCQk7IFRoZW4gaW50ZXJwcmV0IHRoZSBy ZXNwb25zZToKLQkJCSh3aGlsZQotCQkJICAgIChwcm9nbgotCQkJICAgICAgKG1lc3NhZ2UgKGNv bmNhdCAiQ2hhbmdlIGluc2lkZSBjb25jZWFsZWQiCi0JCQkJCSAgICAgICAiIHJlZ2lvbiAtIGRv IGl0PyAiCi0JCQkJCSAgICAgICAiKG4gb3IgJ3knLydyJ2VjbG9zZSkiKSkKLQkJCSAgICAgIChz ZXRxIHJlc3BvbnNlIChyZWFkLWNoYXIpKQotCQkJICAgICAgKG5vdAotCQkJICAgICAgIChjb25k ICgobWVtcSByZXNwb25zZSAnKD9yID9SKSkKLQkJCQkgICAgICAoc2V0cSByZXNwb25zZSAncmVj bG9zZSkpCi0JCQkJICAgICAoKG1lbXEgcmVzcG9uc2UgJyg/eSA/WSA/ICkpCi0JCQkJICAgICAg KHNldHEgcmVzcG9uc2UgdCkpCi0JCQkJICAgICAoKG1lbXEgcmVzcG9uc2UgJyg/biA/TiAxMjcp KQotCQkJCSAgICAgIChzZXRxIHJlc3BvbnNlIG5pbCkKLQkJCQkgICAgICB0KQotCQkJCSAgICAg KChlcSByZXNwb25zZSA/PykKLQkJCQkgICAgICAobWVzc2FnZQotCQkJCSAgICAgICAiYHInIG1l YW5zIGB5ZXMsIHRoZW4gcmVjbG9zZSciKQotCQkJCSAgICAgIG5pbCkKLQkJCQkgICAgICh0ICht ZXNzYWdlICJQbGVhc2UgYW5zd2VyIHksIG4sIG9yIHIiKQotCQkJCQkoc2l0LWZvciAxKQotCQkJ CQluaWwpKSkpKQotCQkJcmVzcG9uc2UpCi0JCSAgICAoJ3F1aXQgbmlsKSkKLQkJCQkJOyBDb250 aW51ZToKLQkJICAoaWYgKGVxIHJlc3BvbnNlICdyZWNsb3NlKQotCQkgICAgICAoc2F2ZS1leGN1 cnNpb24KLQkJCShpZiByZWhpZGUtcGxhY2UgKGdvdG8tY2hhciByZWhpZGUtcGxhY2UpKQotCQkJ KGlmIHJlaGlkZS1jb21wbGV0ZWx5Ci0JCQkgICAgKGFsbG91dC1oaWRlLWN1cnJlbnQtZW50cnkt Y29tcGxldGVseSkKLQkJCSAgKGFsbG91dC1oaWRlLWN1cnJlbnQtZW50cnkpKSkKLQkJICAgIChp ZiAoYWxsb3V0LWFzY2VuZC10by1kZXB0aCAoMS0gKGFsbG91dC1yZWNlbnQtZGVwdGgpKSkKLQkJ CShhbGxvdXQtc2hvdy1jaGlsZHJlbikKLQkJICAgICAgKGFsbG91dC1zaG93LXRvLW9mZnNob290 KSkpCi0JCQkJCTsgUHJldmVudDoKLQkJKGlmIHJlaGlkZS1jb21wbGV0ZWx5Ci0JCSAgICAoc2F2 ZS1leGN1cnNpb24KLQkJICAgICAgKGlmIHJlaGlkZS1wbGFjZSAoZ290by1jaGFyIHJlaGlkZS1w bGFjZSkpCi0JCSAgICAgIChhbGxvdXQtaGlkZS1jdXJyZW50LWVudHJ5LWNvbXBsZXRlbHkpKQot CQkgIChhbGxvdXQtaGlkZS1jdXJyZW50LWVudHJ5KSkKLQkJKGVycm9yICJDaGFuZ2Ugd2l0aGlu IGNvbmNlYWxlZCByZWdpb24gcHJldmVudGVkIikpKSkpKQotICAgICkJOyBpZgotICApCTsgZGVm dW4KIDs7O18gICA9IGFsbG91dC1wb3N0LWdvdG8tYnVsbGV0CiAoZGVmdmFyIGFsbG91dC1wb3N0 LWdvdG8tYnVsbGV0IG5pbAogICAiT3V0bGluZSBpbnRlcm5hbCB2YXIsIGZvciBgYWxsb3V0LXBy ZS1jb21tYW5kLWJ1c2luZXNzJyBob3Qtc3BvdCBvcGVyYXRpb24uCkBAIC0yMjM2LDI0ICsyNDE3 LDIwIEBACiAoZGVmdW4gYWxsb3V0LXBvc3QtY29tbWFuZC1idXNpbmVzcyAoKQogICAiT3V0bGlu ZSBgcG9zdC1jb21tYW5kLWhvb2snIGZ1bmN0aW9uLgogCi0tIE51bGwgYGFsbG91dC1vdmVycmlk ZS1wcm90ZWN0Jywgc28gaXQncyBub3QgbGVmdCBvcGVuLgotCiAtIEltcGxlbWVudCAoYW5kIGNs ZWFyKSBgYWxsb3V0LXBvc3QtZ290by1idWxsZXQnLCBmb3IgaG90LXNwb3QKICAgb3V0bGluZSBj b21tYW5kcy4KIAotLSBNYXNzYWdlcyBgYnVmZmVyLXVuZG8tbGlzdCcgc28gc3VjY2Vzc2l2ZSwg c3RhbmRhcmQgY2hhcmFjdGVyIHNlbGYtaW5zZXJ0cwotICBhcmUgYWdncmVnYXRlZC4gIFRoaXMg a2x1ZGdlIGNvbXBlbnNhdGVzIGZvciBsYWNrIG9mIHVuZG8gYnVuY2hpbmcgd2hlbgotICBgYmVm b3JlLWNoYW5nZS1mdW5jdGlvbnMnIGlzIHVzZWQuIgorLSBEZWNyeXB0IHRvcGljIGN1cnJlbnRs eSBiZWluZyBlZGl0ZWQgaWYgaXQgd2FzIGVuY3J5cHRlZCBmb3IgYSBzYXZlLgorCistIE1hc3Nh Z2UgYnVmZmVyLXVuZG8tbGlzdCBzbyBzdWNjZXNzaXZlLCBzdGFuZGFyZCBjaGFyYWN0ZXIgc2Vs Zi1pbnNlcnRzIGFyZQorICBhZ2dyZWdhdGVkLiAgVGhpcyBrbHVkZ2UgY29tcGVuc2F0ZXMgZm9y IGxhY2sgb2YgdW5kbyBidW5jaGluZyB3aGVuCisgIGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zIGlz IHVzZWQuIgogCiAJCQkJCTsgQXBwbHkgYW55IGV4dGVybmFsIGNoYW5nZSBmdW5jOgogICAoaWYg KG5vdCAoYWxsb3V0LW1vZGUtcCkpCQk7IEluIGFsbG91dC1tb2RlLgogICAgICAgbmlsCi0gICAg KHNldHEgYWxsb3V0LW92ZXJyaWRlLXByb3RlY3QgbmlsKQogICAgIChpZiBhbGxvdXQtaXNlYXJj aC1keW5hbWljLWV4cG9zZQogCShhbGxvdXQtaXNlYXJjaC1yZWN0aWZpY2F0aW9uKSkKLSAgICAo aWYgYWxsb3V0LWR1cmluZy13cml0ZS1jdWUKLQk7OyBXYXMgdXNlZCBieSBhbGxvdXQtYmVmb3Jl LWNoYW5nZS1wcm90ZWN0LCBkb25lIHdpdGggaXQgbm93OgotCShzZXRxIGFsbG91dC1kdXJpbmct d3JpdGUtY3VlIG5pbCkpCiAgICAgOzsgVW5kbyBidW5jaGluZyBidXNpbmVzczoKICAgICAoaWYg KGFuZCAobGlzdHAgYnVmZmVyLXVuZG8tbGlzdCkJOyBVbmRvIGhpc3RvcnkgYmVpbmcga2VwdC4K IAkgICAgIChlcXVhbCB0aGlzLWNvbW1hbmQgJ3NlbGYtaW5zZXJ0LWNvbW1hbmQpCkBAIC0yMjgy LDYgKzI0NTksMTEgQEAKIAkgICAgICAoc2V0cSBidWZmZXItdW5kby1saXN0CiAJCSAgICAoY29u cyAoY29ucyBwcmV2LWZyb20gY3VyLXRvKQogCQkJICAoY2RyIChjZHIgKGNkciBidWZmZXItdW5k by1saXN0KSkpKSkpKSkKKworICAgIChpZiAoYW5kIChib3VuZHAgJ2FsbG91dC1hZnRlci1zYXZl LWRlY3J5cHQpCisgICAgICAgICAgICAgYWxsb3V0LWFmdGVyLXNhdmUtZGVjcnlwdCkKKyAgICAg ICAgKGFsbG91dC1hZnRlci1zYXZlcy1oYW5kbGVyKSkKKwogICAgIDs7IEltcGxlbWVudCAtcG9z dC1nb3RvLWJ1bGxldCwgaWYgc2V0OiAobXVzdCBiZSBhZnRlciB1bmRvIGJ1c2luZXNzKQogICAg IChpZiAoYW5kIGFsbG91dC1wb3N0LWdvdG8tYnVsbGV0CiAJICAgICAoYWxsb3V0LWN1cnJlbnQt YnVsbGV0LXBvcykpCkBAIC0yMzA0LDggKzI0ODYsOSBAQAogY2hhci4gIFdoZW4gaW4gdGhpcyBt b2RlIHlvdSBjYW4gdXNlIHJlZ3VsYXIgY3Vyc29yLXBvc2l0aW9uaW5nCiBjb21tYW5kL2tleXN0 cm9rZXMgdG8gcmVsb2NhdGUgdGhlIGN1cnNvciBvZmYgb2YgYSBidWxsZXQgY2hhcmFjdGVyIHRv CiByZXR1cm4gdG8gcmVndWxhciBpbnRlcnByZXRhdGlvbiBvZiBzZWxmLWluc2VydCBjaGFyYWN0 ZXJzLiIKKwogICAoaWYgKG5vdCAoYWxsb3V0LW1vZGUtcCkpCi0gICAgICA7OyBTaG91bGRuJ3Qg YmUgaW52b2tlZCBpZiBub3QgaW4gYWxsb3V0IGFsbG91dC1tb2RlLCBidXQganVzdCBpbiBjYXNl OgorICAgICAgOzsgU2hvdWxkbid0IGJlIGludm9rZWQgaWYgbm90IGluIGFsbG91dC1tb2RlLCBi dXQganVzdCBpbiBjYXNlOgogICAgICAgbmlsCiAgICAgOzsgUmVnaXN0ZXIgaXNlYXJjaCBzdGF0 dXM6CiAgICAgKGlmIChhbmQgKGJvdW5kcCAgJ2lzZWFyY2gtbW9kZSkgaXNlYXJjaC1tb2RlKQpA QCAtMjMxNyw3ICsyNTAwLDkgQEAKIAkobGV0KiAoKHRoaXMta2V5LW51bSAoY29uZAogCQkJICAg ICAgKChudW1iZXJwIGxhc3QtY29tbWFuZC1jaGFyKQogCQkJICAgICAgIGxhc3QtY29tbWFuZC1j aGFyKQotCQkJICAgICAgKChmYm91bmRwICdjaGFyLXRvLWludCkKKwkJCSAgICAgIDs7IE9ubHkg eGVtYWNzIGhhcyBjaGFyYWN0ZXJwLgorCQkJICAgICAgKChhbmQgKGZib3VuZHAgJ2NoYXJhY3Rl cnApCisJCQkJICAgIChjaGFyYWN0ZXJwIGxhc3QtY29tbWFuZC1jaGFyKSkKIAkJCSAgICAgICAo Y2hhci10by1pbnQgbGFzdC1jb21tYW5kLWNoYXIpKQogCQkJICAgICAgKHQgMCkpKQogCSAgICAg ICBtYXBwZWQtYmluZGluZykKQEAgLTIzNDAsNyArMjUyNSw3IEBACiAJCSAgICAgIHRoaXMtY29t bWFuZCBtYXBwZWQtYmluZGluZykpKSkpKSkKIDs7O18gICA+IGFsbG91dC1maW5kLWZpbGUtaG9v ayAoKQogKGRlZnVuIGFsbG91dC1maW5kLWZpbGUtaG9vayAoKQotICAiQWN0aXZhdGUgYGFsbG91 dC1tb2RlJyB3aGVuIGBhbGxvdXQtYXV0by1hY3RpdmF0aW9uJyAmIGBhbGxvdXQtbGF5b3V0JyBh cmUgbm9uLW5pbC4KKyAgIkFjdGl2YXRlIGBhbGxvdXQtbW9kZScgd2hlbiBgYWxsb3V0LWF1dG8t YWN0aXZhdGlvbicsIGBhbGxvdXQtbGF5b3V0JyBub24tbmlsLgogCiBTZWUgYGFsbG91dC1pbml0 JyBmb3Igc2V0dXAgaW5zdHJ1Y3Rpb25zLiIKICAgKGlmIChhbmQgYWxsb3V0LWF1dG8tYWN0aXZh dGlvbgpAQCAtMjM1Myw3ICsyNTM4LDcgQEAKIAogQ2FsbGVkIGFzIHBhcnQgb2YgYGFsbG91dC1w b3N0LWNvbW1hbmQtYnVzaW5lc3MnLiIKIAotICAobGV0ICgoaXNlYXJjaGluZyBpc2VhcmNoLW1v ZGUpKQorICAobGV0ICgoaXNlYXJjaGluZyAoYW5kIChib3VuZHAgJ2lzZWFyY2gtbW9kZSkgaXNl YXJjaC1tb2RlKSkpCiAgICAgKGNvbmQgKChhbmQgaXNlYXJjaGluZyAobm90IGFsbG91dC1wcmUt d2FzLWlzZWFyY2hpbmcpKQogCSAgIChhbGxvdXQtaXNlYXJjaC1leHBvc2UgJ3N0YXJ0KSkKIAkg ICgoYW5kIGlzZWFyY2hpbmcgYWxsb3V0LXByZS13YXMtaXNlYXJjaGluZykKQEAgLTIzNjEsMjQg KzI1NDYsMTEgQEAKIAkgICgoYW5kIChub3QgaXNlYXJjaGluZykgYWxsb3V0LXByZS13YXMtaXNl YXJjaGluZykKIAkgICAoYWxsb3V0LWlzZWFyY2gtZXhwb3NlICdmaW5hbCkpCiAJICA7OyBOb3Qg YW5kIHdhc24ndCBpc2VhcmNoaW5nOgotCSAgKHQgKHNldHEgYWxsb3V0LWlzZWFyY2gtcHJpb3It cG9zIG5pbCkpKSkpCisJICAodCAoc2V0cSBhbGxvdXQtaXNlYXJjaC1wcmlvci1wb3MgbmlsKQor CSAgICAgKHNldHEgYWxsb3V0LWlzZWFyY2gtZGlkLXF1aXQgbmlsKSkpKSkKIDs7O18gICA9IGFs bG91dC1pc2VhcmNoLXdhcy1mb250LWxvY2sKIChkZWZ2YXIgYWxsb3V0LWlzZWFyY2gtd2FzLWZv bnQtbG9jawogICAoYW5kIChib3VuZHAgJ2ZvbnQtbG9jay1tb2RlKSBmb250LWxvY2stbW9kZSkp Ci0KLTs7O18gICA+IGFsbG91dC1mbGFnLXJlZ2lvbiAoZnJvbSB0byBmbGFnKQotKGRlZm1hY3Jv IGFsbG91dC1mbGFnLXJlZ2lvbiAoZnJvbSB0byBmbGFnKQotICAiSGlkZSBvciBzaG93IGxpbmVz IGZyb20gRlJPTSB0byBUTywgdmlhIEVtYWNzIGBzZWxlY3RpdmUtZGlzcGxheScgRkxBRyBjaGFy LgotSWUsIHRleHQgZm9sbG93aW5nIGZsYWcgQy1tIFwoY2FycmlhZ2UtcmV0dXJuKSBpcyBoaWRk ZW4gdW50aWwgdGhlCi1uZXh0IEMtaiAobmV3bGluZSkgY2hhci4KLQotUmV0dXJucyB0aGUgZW5k cG9pbnQgb2YgdGhlIHJlZ2lvbi4iCi0gIGAobGV0ICgoYnVmZmVyLXJlYWQtb25seSBuaWwpCi0J ICAgKGFsbG91dC1vdmVycmlkZS1wcm90ZWN0IHQpKQotICAgICAgIChzdWJzdC1jaGFyLWluLXJl Z2lvbiAsZnJvbSAsdG8KLQkJCSAgICAgKGlmICg9ICxmbGFnID9cbikgP1xyID9cbikKLQkJCSAg ICAgLGZsYWcgdCkpKQotCiA7OztfICAgPiBhbGxvdXQtaXNlYXJjaC1leHBvc2UgKG1vZGUpCiAo ZGVmdW4gYWxsb3V0LWlzZWFyY2gtZXhwb3NlIChtb2RlKQogICAiTU9ERSBpcyBlaXRoZXIgJ2Ns ZWFyLCAnc3RhcnQsICdjb250aW51ZSwgb3IgJ2ZpbmFsLiIKQEAgLTI0MDMsMjEgKzI1NzUsNTYg QEAKICAgICAgIChzZXRxIGFsbG91dC1pc2VhcmNoLXByaW9yLXBvcyBuaWwpCiAgICAgKGlmIChu b3QgKGVxIG1vZGUgJ2ZpbmFsKSkKIAkoc2V0cSBhbGxvdXQtaXNlYXJjaC1wcmlvci1wb3MgKGNv bnMgKHBvaW50KSAoYWxsb3V0LXNob3ctZW50cnkpKSkKLSAgICAgIChpZiBpc2VhcmNoLW1vZGUt ZW5kLWhvb2stcXVpdAorICAgICAgKGlmIGFsbG91dC1pc2VhcmNoLWRpZC1xdWl0CiAJICBuaWwK IAkoc2V0cSBhbGxvdXQtaXNlYXJjaC1wcmlvci1wb3MgbmlsKQotCShhbGxvdXQtc2hvdy1jaGls ZHJlbikpKSkpCisJKGFsbG91dC1zaG93LWNoaWxkcmVuKSkpKQorICAoc2V0cSBhbGxvdXQtaXNl YXJjaC1kaWQtcXVpdCBuaWwpKQogOzs7XyAgID4gYWxsb3V0LWVud3JhcC1pc2VhcmNoICgpCiAo ZGVmdW4gYWxsb3V0LWVud3JhcC1pc2VhcmNoICgpCi0gICJJbXBvc2UgYGlzZWFyY2gtYWJvcnQn IHdyYXBwZXIgZm9yIGR5bmFtaWMgZXhwb3N1cmUgaW4gaXNlYXJjaC4KKyAgIkltcG9zZSBgYWxs b3V0LW1vZGUnIGlzZWFyY2gtYWJvcnQgd3JhcHBlciBmb3IgZHluYW1pYyBleHBvc3VyZSBpbiBp c2VhcmNoLgogCiBUaGUgZnVuY3Rpb24gY2hlY2tzIHRvIGVuc3VyZSB0aGF0IHRoZSByZWJpbmRp bmcgaXMgZG9uZSBvbmx5IG9uY2UuIgotICAoYWRkLWhvb2sgJ2lzZWFyY2gtbW9kZS1lbmQtaG9v ayAnYWxsb3V0LWlzZWFyY2gtcmVjdGlmaWNhdGlvbikpCisKKyAgKGFkZC1ob29rICdpc2VhcmNo LW1vZGUtZW5kLWhvb2sgJ2FsbG91dC1pc2VhcmNoLXJlY3RpZmljYXRpb24pCisgIChpZiAoZmJv dW5kcCAnYWxsb3V0LXJlYWwtaXNlYXJjaC1hYm9ydCkKKyAgICAgIDs7CisgICAgICBuaWwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IEVuc3VyZSBsb2FkIG9mIGlz ZWFyY2gtbW9kZToKKyAgICAoaWYgKG9yIChhbmQgKGZib3VuZHAgJ2lzZWFyY2gtbW9kZSkKKyAg ICAgICAgICAgICAgICAgKGZib3VuZHAgJ2lzZWFyY2gtYWJvcnQpKQorICAgICAgICAgICAgKGNv bmRpdGlvbi1jYXNlIGVycm9yCisgICAgICAgICAgICAgICAgKGxvYWQtbGlicmFyeSAiaXNlYXJj aC1tb2RlIikKKyAgICAgICAgICAgICAgKCdmaWxlLWVycm9yIChtZXNzYWdlCisJCQkgICAgIlNr aXBwaW5nIGlzZWFyY2gtbW9kZSBwcm92aXNpb25zIC0gJXMgJyVzJyIKKwkJCSAgICAoY2FyIChj ZHIgZXJyb3IpKQorCQkJICAgIChjYXIgKGNkciAoY2RyIGVycm9yKSkpKQorCQkJICAgKHNpdC1m b3IgMSkKKwkJCSAgIDs7IEluaGliaXQgc3Vic2VxdWVudCB0cmllcyBhbmQgcmV0dXJuIG5pbDoK KwkJCSAgIChzZXRxIGFsbG91dC1pc2VhcmNoLWR5bmFtaWMtZXhwb3NlIG5pbCkpKSkKKyAgICAg ICAgOzsgSXNlYXJjaC1tb2RlIGxvYWRlZCwgZW5jYXBzdWxhdGUgc3BlY2lmaWMgZW50cnkgcG9p bnRzIGZvcgorICAgICAgICA7OyBvdXRsaW5lIGR5bmFtaWMtZXhwb3N1cmUgYnVzaW5lc3M6Cisg ICAgICAgIChwcm9nbgorCSAgOzsgc3Rhc2ggY3J1Y2lhbCBpc2VhcmNoLW1vZGUgZnVuY3MgdW5k ZXIga25vd24sIHByaXZhdGUKKwkgIDs7IG5hbWVzLCB0aGVuIHJlZ2lzdGVyIHdyYXBwZXIgZnVu Y3Rpb25zIHVuZGVyIHRoZSBvbGQKKwkgIDs7IG5hbWVzLCBpbiB0aGVpciBzdGVhZDoKKyAgICAg ICAgICAoZnNldCAnYWxsb3V0LXJlYWwtaXNlYXJjaC1hYm9ydCAoc3ltYm9sLWZ1bmN0aW9uICdp c2VhcmNoLWFib3J0KSkKKyAgICAgICAgICAoZnNldCAnaXNlYXJjaC1hYm9ydCAnYWxsb3V0LWlz ZWFyY2gtYWJvcnQpKSkpKQorOzs7XyAgID4gYWxsb3V0LWlzZWFyY2gtYWJvcnQgKCkKKyhkZWZ1 biBhbGxvdXQtaXNlYXJjaC1hYm9ydCAoKQorICAiV3JhcHBlciBmb3IgYWxsb3V0LXJlYWwtaXNl YXJjaC1hYm9ydCBcKHdoaWNoIHNlZSksIHRvIHJlZ2lzdGVyCithY3R1YWwgcXVpdHMuIgorICAo aW50ZXJhY3RpdmUpCisgIChzZXRxIGFsbG91dC1pc2VhcmNoLWRpZC1xdWl0IG5pbCkKKyAgKGNv bmRpdGlvbi1jYXNlIHdoYXQKKyAgICAgIChhbGxvdXQtcmVhbC1pc2VhcmNoLWFib3J0KQorICAg ICgncXVpdCAoc2V0cSBhbGxvdXQtaXNlYXJjaC1kaWQtcXVpdCB0KQorCSAgKHNpZ25hbCAncXVp dCBuaWwpKSkpCiAKIDs7OyBQcmV2ZW50IHVubmVjZXNzYXJ5IGZvbnQtbG9jayB3aGlsZSBpc2Vh cmNoaW5nIQogKGRlZnZhciBpc2VhcmNoLXdhcy1mb250LWxvY2tpbmcgbmlsKQogKGRlZnVuIGlz ZWFyY2gtaW5oaWJpdC1mb250LWxvY2sgKCkKLSAgIkluaGliaXQgYGZvbnQtbG9jay1tb2RlJyB3 aGlsZSBpc2VhcmNoaW5nIC0gZm9yIHVzZSBvbiBgaXNlYXJjaC1tb2RlLWhvb2snLiIKKyAgIklu aGliaXQgYGZvbnQtbG9jaycgd2hpbGUgaXNlYXJjaGluZyAtIGZvciB1c2Ugb24gYGlzZWFyY2gt bW9kZS1ob29rJy4iCiAgIChpZiAoYW5kIChhbGxvdXQtbW9kZS1wKSAoYm91bmRwICdmb250LWxv Y2stbW9kZSkgZm9udC1sb2NrLW1vZGUpCiAgICAgICAoc2V0cSBpc2VhcmNoLXdhcy1mb250LWxv Y2tpbmcgdAogCSAgICBmb250LWxvY2stbW9kZSBuaWwpKSkKQEAgLTI0NjUsNiArMjY3MiwxNCBA QAogICAgICAgICAgICAgICAgICAoaWYgcHJlZml4CiAgICAgICAgICAgICAgICAgICAgICAoYWxs b3V0LWdldC1wcmVmaXgtYnVsbGV0IHByZWZpeCkKICAgICAgICAgICAgICAgICAgICAoYWxsb3V0 LWdldC1idWxsZXQpKSkpKQorOzs7XyAgID4gYWxsb3V0LWVuY3J5cHRlZC10eXBlLXByZWZpeCAo Jm9wdGlvbmFsIHByZWZpeCkKKyhkZWZ1biBhbGxvdXQtZW5jcnlwdGVkLXR5cGUtcHJlZml4ICgm b3B0aW9uYWwgcHJlZml4KQorICAiVHJ1ZSBpZiBjdXJyZW50IGhlYWRlciBwcmVmaXggYnVsbGV0 IGlzIGZvciBhbiBlbmNyeXB0ZWQgZW50cnkgXChib2R5KS4iCisgIChhbmQgYWxsb3V0LXRvcGlj LWVuY3J5cHRpb24tYnVsbGV0CisgICAgICAgIChzdHJpbmc9IGFsbG91dC10b3BpYy1lbmNyeXB0 aW9uLWJ1bGxldAorICAgICAgICAgICAgICAgICAoaWYgcHJlZml4CisgICAgICAgICAgICAgICAg ICAgICAoYWxsb3V0LWdldC1wcmVmaXgtYnVsbGV0IHByZWZpeCkKKyAgICAgICAgICAgICAgICAg ICAoYWxsb3V0LWdldC1idWxsZXQpKSkpKQogOzs7XyAgID4gYWxsb3V0LWJ1bGxldC1mb3ItZGVw dGggKCZvcHRpb25hbCBkZXB0aCkKIChkZWZ1biBhbGxvdXQtYnVsbGV0LWZvci1kZXB0aCAoJm9w dGlvbmFsIGRlcHRoKQogICAiUmV0dXJuIG91dGxpbmUgdG9waWMgYnVsbGV0IHN1aXRlZCB0byBv cHRpb25hbCBERVBUSCwgb3IgY3VycmVudCBkZXB0aC4iCkBAIC0yNjI1LDE1ICsyODQwLDE1IEBA CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYWxsb3V0LXNpYmxpbmctaW5k ZXgpKSkpKSkKICAgICApCiAgICkKLTs7O18gICA+IGFsbG91dC1vcGVuLXRvcGljIChyZWxhdGl2 ZS1kZXB0aCAmb3B0aW9uYWwgYmVmb3JlIHVzZS1zaWItYnVsbGV0KQotKGRlZnVuIGFsbG91dC1v cGVuLXRvcGljIChyZWxhdGl2ZS1kZXB0aCAmb3B0aW9uYWwgYmVmb3JlIHVzZS1zaWItYnVsbGV0 KQotICAiT3BlbiBhIG5ldyB0b3BpYyBhdCBkZXB0aCBSRUxBVElWRS1ERVBUSC4KKzs7O18gICA+ IGFsbG91dC1vcGVuLXRvcGljIChyZWxhdGl2ZS1kZXB0aCAmb3B0aW9uYWwgYmVmb3JlIHVzZV9y ZWNlbnRfYnVsbGV0KQorKGRlZnVuIGFsbG91dC1vcGVuLXRvcGljIChyZWxhdGl2ZS1kZXB0aCAm b3B0aW9uYWwgYmVmb3JlIHVzZV9yZWNlbnRfYnVsbGV0KQorICAiT3BlbiBhIG5ldyB0b3BpYyBh dCBkZXB0aCBERVBUSC4KIAogTmV3IHRvcGljIGlzIHNpdHVhdGVkIGFmdGVyIGN1cnJlbnQgb25l LCB1bmxlc3Mgb3B0aW9uYWwgZmxhZyBCRUZPUkUKIGlzIG5vbi1uaWwsIG9yIHVubGVzcyBjdXJy ZW50IGxpbmUgaXMgY29tcGxldGUgZW1wdHkgKG5vdCBldmVuCiB3aGl0ZXNwYWNlKSwgaW4gd2hp Y2ggY2FzZSBvcGVuIGlzIGRvbmUgb24gY3VycmVudCBsaW5lLgogCi1JZiBVU0UtU0lCLUJVTExF VCBpcyB0cnVlLCB1c2UgdGhlIGJ1bGxldCBvZiB0aGUgcHJpb3Igc2libGluZy4KK0lmIFVTRV9S RUNFTlRfQlVMTEVUIGlzIHRydWUsIG9mZmVyIHRvIHVzZSB0aGUgYnVsbGV0IG9mIHRoZSBwcmlv ciBzaWJsaW5nLgogCiBOdWFuY2VzOgogCkBAIC0yNjYwLDkgKzI4NzUsMTEgQEAKICAgKGxldCog KChkZXB0aCAoKyAoYWxsb3V0LWN1cnJlbnQtZGVwdGgpIHJlbGF0aXZlLWRlcHRoKSkKICAgICAg ICAgIChvcGVuaW5nLW9uLWJsYW5rIChpZiAobG9va2luZy1hdCAiXlwkIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobm90IChzZXRxIGJlZm9yZSBuaWwpKSkpCi0gICAgICAgICBv cGVuaW5nLW51bWJlcmVkCTsgV2lsbCBnZXQgd2hpbGUgY29tcHV0aW5nIHJlZi10b3BpYywgYmVs b3cKLSAgICAgICAgIHJlZi1kZXB0aAkJOyBXaWxsIGdldCB3aGlsZSBjb21wdXRpbmcgcmVmLXRv cGljLCBiZWxvdwotICAgICAgICAgcmVmLWJ1bGxldAkJOyBXaWxsIGdldCB3aGlsZSBjb21wdXRp bmcgcmVmLXRvcGljLCBuZXh0CisgICAgICAgICA7OyBidW5jaCBvIHZhcnMgc2V0IHdoaWxlIGNv bXB1dGluZyByZWYtdG9waWMKKyAgICAgICAgIG9wZW5pbmctbnVtYmVyZWQKKyAgICAgICAgIG9w ZW5pbmctZW5jcnlwdGVkCisgICAgICAgICByZWYtZGVwdGgKKyAgICAgICAgIHJlZi1idWxsZXQK ICAgICAgICAgIChyZWYtdG9waWMgKHNhdmUtZXhjdXJzaW9uCiAgICAgICAgICAgICAgICAgICAg ICAgKGNvbmQgKCg8IHJlbGF0aXZlLWRlcHRoIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChhbGxvdXQtYXNjZW5kLXRvLWRlcHRoIGRlcHRoKSkKQEAgLTI2ODAsNiArMjg5NywxMyBA QAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsbG91dC1kZXNjZW5k LXRvLWRlcHRoIGRlcHRoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlm IChhbGxvdXQtbnVtYmVyZWQtdHlwZS1wcmVmaXgpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbGxvdXQtbnVtYmVyZWQtYnVsbGV0KSkpKQorICAgICAgICAgICAgICAg ICAgICAgIChzZXRxIG9wZW5pbmctZW5jcnlwdGVkCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIGFs bG91dC10b3BpYy1lbmNyeXB0aW9uLWJ1bGxldAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAob3IgKDw9IHJlbGF0aXZlLWRlcHRoIDApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoYWxsb3V0LWRlc2NlbmQtdG8tZGVwdGggZGVwdGgpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGFsbG91dC1udW1iZXJlZC10eXBlLXBy ZWZpeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG91dC1udW1i ZXJlZC1idWxsZXQpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCiAgICAgICAg ICBkYmwtc3BhY2UKICAgICAgICAgIGRvaW5nLWJlZ2lubmluZykKQEAgLTI3MTgsMTkgKzI5NDIs MjQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKG5vdCAoYm9icCkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbGxvdXQtcHJldmlvdXMtaGVhZGluZykpKQog CSAgICAoaWYgKGFuZCBiZWZvcmUgKGJvYnApKQotCQkoYWxsb3V0LXVucHJvdGVjdGVkIChvcGVu LWxpbmUgMSkpKSkKKwkJKGFsbG91dC11bnByb3RlY3RlZCAoYWxsb3V0LW9wZW4tbGluZS1ub3Qt cmVhZC1vbmx5KSkpKQogCiAgICAgICAgICAgKGlmICg8PSByZWxhdGl2ZS1kZXB0aCAwKQogICAg ICAgICAgICAgICA7OyBOb3QgZ29pbmcgaW53YXJkcywgZG9uJ3Qgc251ZyB1cDoKICAgICAgICAg ICAgICAgKGlmIGRvaW5nLWJlZ2lubmluZwotCQkgIChhbGxvdXQtdW5wcm90ZWN0ZWQgKG9wZW4t bGluZSAoaWYgZGJsLXNwYWNlIDIgMSkpKQorICAgICAgICAgICAgICAgICAgKGFsbG91dC11bnBy b3RlY3RlZAorICAgICAgICAgICAgICAgICAgIChpZiAobm90IGRibC1zcGFjZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgKGFsbG91dC1vcGVuLWxpbmUtbm90LXJlYWQtb25seSkKKyAgICAgICAg ICAgICAgICAgICAgIChhbGxvdXQtb3Blbi1saW5lLW5vdC1yZWFkLW9ubHkpCisgICAgICAgICAg ICAgICAgICAgICAoYWxsb3V0LW9wZW4tbGluZS1ub3QtcmVhZC1vbmx5KSkpCiAJCShpZiBiZWZv cmUKIAkJICAgIChwcm9nbiAoZW5kLW9mLWxpbmUpCiAJCQkgICAoYWxsb3V0LXByZS1uZXh0LXBy ZWZhY2UpCiAJCQkgICAod2hpbGUgKD0gP1xyIChmb2xsb3dpbmctY2hhcikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgMSkpCiAJCQkgICAoaWYgKG5vdCAobG9v a2luZy1hdCAiXiQiKSkKLQkJCSAgICAgICAoYWxsb3V0LXVucHJvdGVjdGVkIChvcGVuLWxpbmUg MSkpKSkKKwkJCSAgICAgICAoYWxsb3V0LXVucHJvdGVjdGVkCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChhbGxvdXQtb3Blbi1saW5lLW5vdC1yZWFkLW9ubHkpKSkpCiAJCSAgKGFs bG91dC1lbmQtb2YtY3VycmVudC1zdWJ0cmVlKSkpCiAgICAgICAgICAgICA7OyBHb2luZyBpbndh cmRzIC0gZG91YmxlLXNwYWNlIGlmIGZpcnN0IG9mZnNwcmluZyBpcywKICAgICAgICAgICAgIDs7 IG90aGVyd2lzZSBzbnVnIHVwLgpAQCAtMjc0OCwzOCArMjk3Nyw0NyBAQAogICAgICAgICAgICAg ICAgICAgICAgIChwcm9nbiAoZm9yd2FyZC1saW5lIC0xKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobG9va2luZy1hdCAiXlxccy0qJCIpKSkpCiAgICAgICAgICAgICAgICAgKHByb2du IChmb3J3YXJkLWxpbmUgMSkKLSAgICAgICAgICAgICAgICAgICAgICAgKGFsbG91dC11bnByb3Rl Y3RlZCAob3Blbi1saW5lIDEpKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChhbGxvdXQtdW5w cm90ZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbGxvdXQtb3Blbi1saW5lLW5vdC1y ZWFkLW9ubHkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lIDEpKSkKICAg ICAgICAgICAgIChlbmQtb2YtbGluZSkpCiAgICAgICAgICAgOzsoaWYgZG9pbmctYmVnaW5uaW5n IChnb3RvLWNoYXIgZG9pbmctYmVnaW5uaW5nKSkKICAgICAgICAgICAoaWYgKG5vdCAoYm9icCkp CisgICAgICAgICAgICAgIDs7IFdlIGluc2VydCBhIG5ld2xpbmUgY2hhciByYXRoZXIgdGhhbiB1 c2luZyBvcGVuLWxpbmUgdG8KKyAgICAgICAgICAgICAgOzsgYXZvaWQgcmVhci1zdGlja2luZXNz IGluaGVyaXRlbmNlIG9mIHJlYWQtb25seSBwcm9wZXJ0eS4KICAgICAgICAgICAgICAgKHByb2du IChpZiAoYW5kIChub3QgKD4gZGVwdGggcmVmLWRlcHRoKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChub3QgYmVmb3JlKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAoYWxsb3V0 LXVucHJvdGVjdGVkIChvcGVuLWxpbmUgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGFs bG91dC11bnByb3RlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxsb3V0LW9wZW4t bGluZS1ub3QtcmVhZC1vbmx5KSkKIAkJICAgICAgIChpZiAoPiBkZXB0aCByZWYtZGVwdGgpCi0J CQkgICAoYWxsb3V0LXVucHJvdGVjdGVkIChuZXdsaW5lIDEpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIChhbGxvdXQtdW5wcm90ZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFs bG91dC1vcGVuLWxpbmUtbm90LXJlYWQtb25seSkpCiAJCQkgKGlmIGRibC1zcGFjZQotCQkJICAg ICAoYWxsb3V0LXVucHJvdGVjdGVkIChvcGVuLWxpbmUgMSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChhbGxvdXQtdW5wcm90ZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChhbGxvdXQtb3Blbi1saW5lLW5vdC1yZWFkLW9ubHkpKQogCQkJICAgKGlmIChub3QgYmVm b3JlKQogCQkJICAgICAgIChhbGxvdXQtdW5wcm90ZWN0ZWQgKG5ld2xpbmUgMSkpKSkpKQogICAg ICAgICAgICAgICAgICAgICAgKGlmIGRibC1zcGFjZQotCQkJIChhbGxvdXQtdW5wcm90ZWN0ZWQg KG5ld2xpbmUgIDEpKSkKKwkJCSAoYWxsb3V0LXVucHJvdGVjdGVkIChuZXdsaW5lIDEpKSkKICAg ICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIChub3QgKGVvYnApKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG5vdCAoYm9scCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIChm b3J3YXJkLWNoYXIgMSkpKSkKICAgICAgICAgICApKQogICAgIChpbnNlcnQgKGNvbmNhdCAoYWxs b3V0LW1ha2UtdG9waWMtcHJlZml4IG9wZW5pbmctbnVtYmVyZWQKLQkJCQkJICAgICAgIHQKLQkJ CQkJICAgICAgIGRlcHRoKQotCQkgICAgIiAiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGVwdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIpKQogCiAg ICAgOzsoaWYgZG9pbmctYmVnaW5uaW5nIChzYXZlLWV4Y3Vyc2lvbiAobmV3bGluZSAoaWYgZGJs LXNwYWNlIDIgMSkpKSkKIAogCi0gICAgKGFsbG91dC1yZWJ1bGxldC1oZWFkaW5nIChhbmQgdXNl LXNpYi1idWxsZXQgcmVmLWJ1bGxldCk7Ozsgc29saWNpdAorICAgIChhbGxvdXQtcmVidWxsZXQt aGVhZGluZyAoYW5kIHVzZV9yZWNlbnRfYnVsbGV0ICAgICAgICAgOzs7IHNvbGljaXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmLWJ1bGxldCkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRlcHRoCQkJICAgICA7OzsgZGVwdGgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5pbCAJCQkgICAgIDs7OyBudW1iZXItY29udHJvbAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmlsCQkJICAgICA7OzsgaW5kZXgKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHQpICAgICAoZW5kLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0KQorICAgIChlbmQtb2YtbGluZSkKICAgICApCiAgICkKIDs7O18gICAgLiBvcGVu LXRvcGljIGNvbnRpbmdlbmNpZXMKQEAgLTI3OTUsNiArMzAzMywxMyBAQAogOzs7XyAgICAgOyBi dWZmZXIgYm91bmRhcmllcyAtIHNwZWNpYWwgcHJvdmlzaW9ucyBmb3IgYmVnaW5uaW5nIGFuZCBl bmQgb2IKIDs7O18gICAgIDsgbGV2ZWwgMSB0b3BpY3MgaGF2ZSBzcGVjaWFsIHByb3Zpc2lvbnMg YWxzbyAtIGRvdWJsZSBzcGFjZS4KIDs7O18gICAgIDsgbG9jYXRpb24gb2YgbmV3IHRvcGljCis7 OztfICAgPiBhbGxvdXQtb3Blbi1saW5lLW5vdC1yZWFkLW9ubHkgKCkKKyhkZWZ1biBhbGxvdXQt b3Blbi1saW5lLW5vdC1yZWFkLW9ubHkgKCkKKyAgIk9wZW4gbGluZSBhbmQgcmVtb3ZlIGluaGVy aXRlZCByZWFkLW9ubHkgdGV4dCBwcm9wIGZyb20gbmV3IGNoYXIsIGlmIGFueS4iCisgIChvcGVu LWxpbmUgMSkKKyAgKGlmIChwbGlzdC1nZXQgKHRleHQtcHJvcGVydGllcy1hdCAocG9pbnQpKSAn cmVhZC1vbmx5KQorICAgICAgKGFsbG91dC11bnByb3RlY3RlZAorICAgICAgIChyZW1vdmUtdGV4 dC1wcm9wZXJ0aWVzIChwb2ludCkgKCsgMSAocG9pbnQpKSAnKHJlYWQtb25seSBuaWwpKSkpKQog Ozs7XyAgID4gYWxsb3V0LW9wZW4tc3VidG9waWMgKGFyZykKIChkZWZ1biBhbGxvdXQtb3Blbi1z dWJ0b3BpYyAoYXJnKQogICAiT3BlbiBuZXcgdG9waWMgaGVhZGVyIGF0IGRlZXBlciBsZXZlbCB0 aGFuIHRoZSBjdXJyZW50IG9uZS4KQEAgLTI4MDIsNyArMzA0Nyw3IEBACiBOZWdhdGl2ZSB1bml2 ZXJzYWwgYXJnIG1lYW5zIHRvIG9wZW4gZGVlcGVyLCBidXQgcGxhY2UgdGhlIG5ldyB0b3BpYwog cHJpb3IgdG8gdGhlIGN1cnJlbnQgb25lLiIKICAgKGludGVyYWN0aXZlICJwIikKLSAgKGFsbG91 dC1vcGVuLXRvcGljIDEgKD4gMCBhcmcpKSkKKyAgKGFsbG91dC1vcGVuLXRvcGljIDEgKD4gMCBh cmcpICg8IDEgYXJnKSkpCiA7OztfICAgPiBhbGxvdXQtb3Blbi1zaWJ0b3BpYyAoYXJnKQogKGRl ZnVuIGFsbG91dC1vcGVuLXNpYnRvcGljIChhcmcpCiAgICJPcGVuIG5ldyB0b3BpYyBoZWFkZXIg YXQgc2FtZSBsZXZlbCBhcyB0aGUgY3VycmVudCBvbmUuCkBAIC0yODEyLDcgKzMwNTcsNyBAQAog TmVnYXRpdmUgdW5pdmVyc2FsIGFyZyBtZWFucyB0byBwbGFjZSB0aGUgbmV3IHRvcGljIHByaW9y IHRvIHRoZSBjdXJyZW50CiBvbmUuIgogICAoaW50ZXJhY3RpdmUgInAiKQotICAoYWxsb3V0LW9w ZW4tdG9waWMgMCAoPiAwIGFyZykgKDwgMSBhcmcpKSkKKyAgKGFsbG91dC1vcGVuLXRvcGljIDAg KD4gMCBhcmcpIChub3QgKD0gMSBhcmcpKSkpCiA7OztfICAgPiBhbGxvdXQtb3Blbi1zdXBlcnRv cGljIChhcmcpCiAoZGVmdW4gYWxsb3V0LW9wZW4tc3VwZXJ0b3BpYyAoYXJnKQogICAiT3BlbiBu ZXcgdG9waWMgaGVhZGVyIGF0IHNoYWxsb3dlciBsZXZlbCB0aGFuIHRoZSBjdXJyZW50IG9uZS4K QEAgLTI4MjEsNyArMzA2Niw3IEBACiB0b3BpYyBwcmlvciB0byB0aGUgY3VycmVudCBvbmUuIgog CiAgIChpbnRlcmFjdGl2ZSAicCIpCi0gIChhbGxvdXQtb3Blbi10b3BpYyAtMSAoPiAwIGFyZykp KQorICAoYWxsb3V0LW9wZW4tdG9waWMgLTEgKD4gMCBhcmcpICg8IDEgYXJnKSkpCiAKIDs7O18g IC0gT3V0bGluZSBBbHRlcmF0aW9uCiA7OztfICAgOiBUb3BpYyBNb2RpZmljYXRpb24KQEAgLTI4 NzcsMTUgKzMxMjIsMTUgQEAKIAkJICAoc2V0cSBvbGQtaW5kZW50LWJlZ2luIChtYXRjaC1iZWdp bm5pbmcgMSkKIAkJCW9sZC1pbmRlbnQtZW5kIChtYXRjaC1lbmQgMSkpCiAJCSAgKG5vdCAobG9v a2luZy1hdCBhbGxvdXQtcmVnZXhwKSkpCi0JICAgKGlmICg+IDAgKHNldHEgZXhjZXNzICgtIChj dXJyZW50LWNvbHVtbikKLQkJCQkgICAgIG9sZC1tYXJnaW4pKSkKKwkgICAoaWYgKD4gMCAoc2V0 cSBleGNlc3MgKC0gKC0gb2xkLWluZGVudC1lbmQgb2xkLWluZGVudC1iZWdpbikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZC1tYXJnaW4pKSkKIAkgICAgICAgOzsgVGV4 dCBzdGFydHMgbGVmdCBvZiBvbGQgbWFyZ2luIC0gZG9uJ3QgYWRqdXN0OgogCSAgICAgICBuaWwK IAkgICAgIDs7IFRleHQgd2FzIGhhbmdpbmcgYXQgb3IgcmlnaHQgb2Ygb2xkIGxlZnQgbWFyZ2lu IC0KIAkgICAgIDs7IHJlaW5kZW50IGl0LCBwcmVzZXJ2aW5nIGl0cyBleGlzdGluZyBpbmRlbnRh dGlvbgogCSAgICAgOzsgYmV5b25kIHRoZSBvbGQgbWFyZ2luOgogCSAgICAgKGRlbGV0ZS1yZWdp b24gb2xkLWluZGVudC1iZWdpbiBvbGQtaW5kZW50LWVuZCkKLQkgICAgIChpbmRlbnQtdG8gKCsg bmV3LW1hcmdpbiBleGNlc3MpKSkpKSkpKSkKKyAgICAgICAgICAgICAoaW5kZW50LXRvICgrIG5l dy1tYXJnaW4gZXhjZXNzIChjdXJyZW50LWNvbHVtbikpKSkpKSkpKSkKIDs7O18gICAgPiBhbGxv dXQtcmVidWxsZXQtY3VycmVudC1oZWFkaW5nIChhcmcpCiAoZGVmdW4gYWxsb3V0LXJlYnVsbGV0 LWN1cnJlbnQtaGVhZGluZyAoYXJnKQogICAiU29saWNpdCBuZXcgYnVsbGV0IGZvciBjdXJyZW50 IHZpc2libGUgaGVhZGluZy4iCkBAIC0yOTIyLDI4ICszMTY3LDMwIEBACiAKICAgIkFkanVzdCBi dWxsZXQgb2YgY3VycmVudCB0b3BpYyBwcmVmaXguCiAKK0FsbCBhcmdzIGFyZSBvcHRpb25hbC4K KwogSWYgU09MSUNJVCBpcyBub24tbmlsLCB0aGVuIHRoZSBjaG9pY2Ugb2YgYnVsbGV0IGlzIHNv bGljaXRlZCBmcm9tCiB1c2VyLiAgSWYgaXQncyBhIGNoYXJhY3RlciwgdGhlbiB0aGF0IGNoYXJh Y3RlciBpcyBvZmZlcmVkIGFzIHRoZQogZGVmYXVsdCwgb3RoZXJ3aXNlIHRoZSBvbmUgc3VpdGVk IHRvIHRoZSBjb250ZXh0IFwoYWNjb3JkaW5nIHRvCiBkaXN0aW5jdGlvbiBvciBkZXB0aCkgaXMg b2ZmZXJlZC4gIElmIG5vbi1uaWwsIHRoZW4gdGhlCiBjb250ZXh0LXNwZWNpZmljIGJ1bGxldCBp cyBqdXN0IHVzZWQuCiAKLVNlY29uZCBhcmcgTkVXLURFUFRIIGZvcmNlcyB0aGUgdG9waWMgcHJl Zml4IHRvIHRoYXQgZGVwdGgsIHJlZ2FyZGxlc3MKK1NlY29uZCBhcmcgREVQVEggZm9yY2VzIHRo ZSB0b3BpYyBwcmVmaXggdG8gdGhhdCBkZXB0aCwgcmVnYXJkbGVzcwogb2YgdGhlIHRvcGljJ3Mg Y3VycmVudCBkZXB0aC4KIAogVGhpcmQgYXJnIE5VTUJFUi1DT05UUk9MIGNhbiBmb3JjZSB0aGUg cHJlZml4IHRvIG9yIGF3YXkgZnJvbQogbnVtYmVyZWQgZm9ybS4gIEl0IGhhcyBlZmZlY3Qgb25s eSBpZiBgYWxsb3V0LW51bWJlcmVkLWJ1bGxldCcgaXMKIG5vbi1uaWwgYW5kIHNvbGljaXRpbmcg d2FzIG5vdCBleHBsaWNpdGx5IGludm9rZWQgKHZpYSBmaXJzdCBhcmcpLgogSXRzIGVmZmVjdCwg bnVtYmVyaW5nIG9yIGRlbnVtYmVyaW5nLCB0aGVuIGRlcGVuZHMgb24gdGhlIHNldHRpbmcKLW9m IHRoZSBmb3VydGggYXJnLCBJTkRFWC4KK29mIHRoZSBmb3J0aCBhcmcsIElOREVYLgogCi1JZiBO VU1CRVItQ09OVFJPTCBpcyBub24tbmlsIGFuZCBmb3VydGggYXJnIElOREVYIGlzIG5pbCwgdGhl biB0aGUKK0lmIE5VTUJFUi1DT05UUk9MIGlzIG5vbi1uaWwgYW5kIGZvcnRoIGFyZyBJTkRFWCBp cyBuaWwsIHRoZW4gdGhlCiBwcmVmaXggb2YgdGhlIHRvcGljIGlzIGZvcmNlZCB0byBiZSBub24t bnVtYmVyZWQuICBOdWxsIGluZGV4IGFuZAogbm9uLW5pbCBOVU1CRVItQ09OVFJPTCBmb3JjZXMg ZGVudW1iZXJpbmcuICBOb24tbmlsIElOREVYIChhbmQKIG5vbi1uaWwgTlVNQkVSLUNPTlRST0wp IGZvcmNlcyBhIG51bWJlcmVkLXByZWZpeCBmb3JtLiAgSWYgbm9uLW5pbAogSU5ERVggaXMgYSBu dW1iZXIsIHRoZW4gdGhhdCBudW1iZXIgaXMgdXNlZCBmb3IgdGhlIG51bWJlcmVkCiBwcmVmaXgu ICBOb24tbmlsIGFuZCBub24tbnVtYmVyIG1lYW5zIHRoYXQgdGhlIGluZGV4IGZvciB0aGUKLW51 bWJlcmVkIHByZWZpeCB3aWxsIGJlIGRlcml2ZWQgYnkgYGFsbG91dC1tYWtlLXRvcGljLXByZWZp eCcuCitudW1iZXJlZCBwcmVmaXggd2lsbCBiZSBkZXJpdmVkIGJ5IGFsbG91dC1tYWtlLXRvcGlj LXByZWZpeC4KIAogRmlmdGggYXJnIERPLVNVQ0NFU1NPUlMgdCBtZWFucyByZS1yZXNvbHZlIGNv dW50IG9uIHN1Y2NlZWRpbmcKIHNpYmxpbmdzLgpAQCAtMjk4Niw5ICszMjMzLDEwIEBACiAJCQkJ CTsgUHV0IGluIG5ldyBwcmVmaXg6CiAgICAgICAoYWxsb3V0LXVucHJvdGVjdGVkIChpbnNlcnQg bmV3LXByZWZpeCkpCiAKLSAgICAgIDs7IFJlaW5kZW50IHRoZSBib2R5IGlmIGVsZWN0ZWQgYW5k IG1hcmdpbiBjaGFuZ2VkOgorICAgICAgOzsgUmVpbmRlbnQgdGhlIGJvZHkgaWYgZWxlY3RlZCwg bWFyZ2luIGNoYW5nZWQsIGFuZCBub3QgZW5jcnlwdGVkIGJvZHk6CiAgICAgICAoaWYgKGFuZCBh bGxvdXQtcmVpbmRlbnQtYm9kaWVzCi0JICAgICAgIChub3QgKD0gbmV3LWRlcHRoIGN1cnJlbnQt ZGVwdGgpKSkKKwkgICAgICAgKG5vdCAoPSBuZXctZGVwdGggY3VycmVudC1kZXB0aCkpCisgICAg ICAgICAgICAgICAobm90IChhbGxvdXQtZW5jcnlwdGVkLXRvcGljLXApKSkKIAkgIChhbGxvdXQt cmVpbmRlbnQtYm9keSBjdXJyZW50LWRlcHRoIG5ldy1kZXB0aCkpCiAKICAgICAgIDs7IFJlY3Vy c2l2ZWx5IHJlY3RpZnkgc3VjY2Vzc2l2ZSBzaWJsaW5ncyBvZiBvcmlnIHRvcGljIGlmCkBAIC0z MDEwLDcgKzMyNTgsNyBAQAogICApIDsgZGVmdW4KIDs7O18gICAgPiBhbGxvdXQtcmVidWxsZXQt dG9waWMgKGFyZykKIChkZWZ1biBhbGxvdXQtcmVidWxsZXQtdG9waWMgKGFyZykKLSAgIkxpa2Ug YGFsbG91dC1yZWJ1bGxldC10b3BpYy1ncnVudCcsIGJ1dCBzdGFydCBmcm9tIHRvcGljIHZpc2li bGUgYXQgcG9pbnQuCisgICJSZWJ1bGxldCB0aGUgdmlzaWJsZSB0b3BpYyBjb250YWluaW5nIHBv aW50IGFuZCBhbGwgY29udGFpbmVkIHN1YnRvcGljcy4KIAogRGVzY2VuZHMgaW50byBpbnZpc2li bGUgYXMgd2VsbCBhcyB2aXNpYmxlIHRvcGljcywgaG93ZXZlci4KIApAQCAtMzAzNiwxOCArMzI4 NCwxOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGFydGluZy1wb2ludAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmRleAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkby1zdWNjZXNzb3JzKQorICAiTGlrZSBgYWxsb3V0LXJlYnVsbGV0LXRvcGljJywgYnV0IG9u IG5lYXJlc3QgY29udGFpbmluZyB0b3BpYworXCh2aXNpYmxlIG9yIG5vdCkuCiAKLSAgIlJlYnVs bGV0IHRoZSB0b3BpYyBhdCBwb2ludCwgdmlzaWJsZSBvciBpbnZpc2libGUsIGFuZCBhbGwKLWNv bnRhaW5lZCBzdWJ0b3BpY3MuICBTZWUgYGFsbG91dC1yZWJ1bGxldC1oZWFkaW5nJyBmb3IgcmVi dWxsZXRpbmcKLWJlaGF2aW9yLgorU2VlIGBhbGxvdXQtcmVidWxsZXQtaGVhZGluZycgZm9yIHJl YnVsbGV0aW5nIGJlaGF2aW9yLgogCi1BcmcgUkVMQVRJVkUtREVQVEggbWVhbnMgdG8gc2hpZnQg dGhlIGRlcHRoIG9mIHRoZSBlbnRpcmUKLXRvcGljIHRoYXQgYW1vdW50LgorQWxsIGFyZ3VtZW50 cyBhcmUgb3B0aW9uYWwuCiAKLVwoZm4gJm9wdGlvbmFsIFJFTEFUSVZFLURFUFRIKSIKK0ZpcnN0 IGFyZyBSRUxBVElWRS1ERVBUSCBtZWFucyB0byBzaGlmdCB0aGUgZGVwdGggb2YgdGhlIGVudGly ZQordG9waWMgdGhhdCBhbW91bnQuCiAKLSAgOzsgQWxsIGFyZ3MgZXhjZXB0IHRoZSBmaXJzdCBv bmUgYXJlIGZvciBpbnRlcm5hbCByZWN1cnNpdmUgdXNlIGJ5IHRoZQotICA7OyBmdW5jdGlvbiBp dHNlbGYuCitUaGUgcmVzdCBvZiB0aGUgYXJncyBhcmUgZm9yIGludGVybmFsIHJlY3Vyc2l2ZSB1 c2UgYnkgdGhlIGZ1bmN0aW9uCitpdHNlbGYuICBUaGUgYXJlIFNUQVJUSU5HLURFUFRILCBTVEFS VElORy1QT0lOVCwgYW5kIElOREVYLiIKIAogICAobGV0KiAoKHJlbGF0aXZlLWRlcHRoIChvciBy ZWxhdGl2ZS1kZXB0aCAwKSkKICAgICAgICAgIChuZXctZGVwdGggKGFsbG91dC1kZXB0aCkpCkBA IC0zMTc3LDEzICszNDI1LDQyIEBACiAgICAgICAgIChzZXRxIG1vcmUgKGFsbG91dC1uZXh0LXNp YmxpbmcgZGVwdGggbmlsKSkpKSkpCiA7OztfICAgID4gYWxsb3V0LXNoaWZ0LWluIChhcmcpCiAo ZGVmdW4gYWxsb3V0LXNoaWZ0LWluIChhcmcpCi0gICJJbmNyZWFzZSBkZXB0aCBvZiBjdXJyZW50 IGhlYWRpbmcgYW5kIGFueSB0b3BpY3MgY29sbGFwc2VkIHdpdGhpbiBpdC4iCisgICJJbmNyZWFz ZSBkZXB0aCBvZiBjdXJyZW50IGhlYWRpbmcgYW5kIGFueSB0b3BpY3MgY29sbGFwc2VkIHdpdGhp biBpdC4KKworV2UgZGlzYWxsb3cgc2hpZnRzIHRoYXQgd291bGQgcmVzdWx0IGluIHRoZSB0b3Bp YyBoYXZpbmcgYSBkZXB0aCBtb3JlIHRoYW4KK29uZSBsZXZlbCBncmVhdGVyIHRoYW4gdGhlIGlt bWVkaWF0ZWx5IHByZXZpb3VzIHRvcGljLCB0byBhdm9pZCBjb250YWlubWVudAorZGlzY29udGlu dWl0eS4gIFRoZSBmaXJzdCB0b3BpYyBpbiB0aGUgZmlsZSBjYW4gYmUgYWRqdXN0ZWQgdG8gYW55 IHBvc2l0aXZlCitkZXB0aCwgaG93ZXZlci4iCiAgIChpbnRlcmFjdGl2ZSAicCIpCisgIChpZiAo PiBhcmcgMCkKKyAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAoYWxsb3V0LWJhY2stdG8t Y3VycmVudC1oZWFkaW5nKQorICAgICAgICAoaWYgKG5vdCAoYm9icCkpCisgICAgICAgICAgICAo bGV0KiAoKGN1cnJlbnQtZGVwdGggKGFsbG91dC1yZWNlbnQtZGVwdGgpKQorICAgICAgICAgICAg ICAgICAgIChzdGFydC1wb2ludCAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgIChwcmVkZWNl c3Nvci1kZXB0aCAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZm9yd2FyZC1jaGFyIC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChhbGxvdXQtZ290by1wcmVmaXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGlmICg8IChwb2ludCkgc3RhcnQtcG9pbnQpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChhbGxvdXQtcmVjZW50LWRlcHRoKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCkpKSkKKyAgICAgICAgICAgICAgKGlm IChhbmQgKD4gcHJlZGVjZXNzb3ItZGVwdGggMCkKKyAgICAgICAgICAgICAgICAgICAgICAgKD4g KCsgY3VycmVudC1kZXB0aCBhcmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICgxKyBwcmVk ZWNlc3Nvci1kZXB0aCkpKQorICAgICAgICAgICAgICAgICAgKGVycm9yIChjb25jYXQgIk1heSBu b3Qgc2hpZnQgZGVlcGVyIHRoYW4gb2Zmc3ByaW5nIGRlcHRoIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiBvZiBwcmV2aW91cyB0b3BpYyIpKSkpKSkpCiAgIChhbGxvdXQtcmVi dWxsZXQtdG9waWMgYXJnKSkKIDs7O18gICAgPiBhbGxvdXQtc2hpZnQtb3V0IChhcmcpCiAoZGVm dW4gYWxsb3V0LXNoaWZ0LW91dCAoYXJnKQotICAiRGVjcmVhc2UgZGVwdGggb2YgY3VycmVudCBo ZWFkaW5nIGFuZCBhbnkgdG9waWNzIGNvbGxhcHNlZCB3aXRoaW4gaXQuIgorICAiRGVjcmVhc2Ug ZGVwdGggb2YgY3VycmVudCBoZWFkaW5nIGFuZCBhbnkgdG9waWNzIGNvbGxhcHNlZCB3aXRoaW4g aXQuCisKK1dlIGRpc2FsbG93IHNoaWZ0cyB0aGF0IHdvdWxkIHJlc3VsdCBpbiB0aGUgdG9waWMg aGF2aW5nIGEgZGVwdGggbW9yZSB0aGFuCitvbmUgbGV2ZWwgZ3JlYXRlciB0aGFuIHRoZSBpbW1l ZGlhdGVseSBwcmV2aW91cyB0b3BpYywgdG8gYXZvaWQgY29udGFpbm1lbnQKK2Rpc2NvbnRpbnVp dHkuICBUaGUgZmlyc3QgdG9waWMgaW4gdGhlIGZpbGUgY2FuIGJlIGFkanVzdGVkIHRvIGFueSBw b3NpdGl2ZQorZGVwdGgsIGhvd2V2ZXIuIgogICAoaW50ZXJhY3RpdmUgInAiKQorICAoaWYgKDwg YXJnIDApCisgICAgICAoYWxsb3V0LXNoaWZ0LWluICgqIGFyZyAtMSkpKQogICAoYWxsb3V0LXJl YnVsbGV0LXRvcGljICgqIGFyZyAtMSkpKQogOzs7XyAgIDogU3VyZ2VyeSAoa2lsbC1yaW5nKSBm dW5jdGlvbnMgd2l0aCBzcGVjaWFsIHByb3Zpc2lvbnMgZm9yIG91dGxpbmVzOgogOzs7XyAgICA+ IGFsbG91dC1raWxsLWxpbmUgKCZvcHRpb25hbCBhcmcpCkBAIC0zMTkxLDI0ICszNDY4LDU2IEBA CiAgICJLaWxsIGxpbmUsIGFkanVzdGluZyBzdWJzZXF1ZW50IGxpbmVzIHN1aXRhYmx5IGZvciBv dXRsaW5lIG1vZGUuIgogCiAgIChpbnRlcmFjdGl2ZSAiKlAiKQotICAoaWYgKG5vdCAoYW5kIChh bGxvdXQtbW9kZS1wKQkJOyBhY3RpdmUgb3V0bGluZSBtb2RlLAotCQlhbGxvdXQtbnVtYmVyZWQt YnVsbGV0CQk7IG51bWJlcnMgbWF5IG5lZWQgYWRqdXN0bWVudCwKLQkJKGJvbHApCQkJCTsgbWF5 IGJlIGNsaXBwaW5nIHRvcGljIGhlYWQsCi0JCShsb29raW5nLWF0IGFsbG91dC1yZWdleHApKSkJ OyBhcmUgY2xpcHBpbmcgdG9waWMgaGVhZC4KLSAgICAgIDs7IEFib3ZlIGNvbmRpdGlvbnMgZG8g bm90IG9idGFpbiAtIGp1c3QgZG8gYSByZWd1bGFyIGtpbGw6Ci0gICAgICAoa2lsbC1saW5lIGFy ZykKLSAgICA7OyBBaCwgaGF2ZSB0byB3YXRjaCBvdXQgZm9yIGFkanVzdG1lbnRzOgotICAgIChs ZXQqICgoZGVwdGggKGFsbG91dC1kZXB0aCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDsgRG8gdGhlIGtpbGw6Ci0gICAgICAoa2lsbC1saW5lIGFyZykKKworICAo bGV0ICgoc3RhcnQtcG9pbnQgKHBvaW50KSkKKyAgICAgICAgKGxlYWRpbmcta2lsbC1yaW5nLWVu dHJ5IChjYXIga2lsbC1yaW5nKSkKKyAgICAgICAgYmluZGluZykKKworICAgIChjb25kaXRpb24t Y2FzZSBlcnIKKworICAgICAgICAoaWYgKG5vdCAoYW5kIChhbGxvdXQtbW9kZS1wKSAgICAgICAg OyBhY3RpdmUgb3V0bGluZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgIGFsbG91dC1udW1i ZXJlZC1idWxsZXQgOyBudW1iZXJzIG1heSBuZWVkIGFkanVzdG1lbnQsCisgICAgICAgICAgICAg ICAgICAgICAgKGJvbHApICAgICAgICAgICAgICAgICAgOyBtYXkgYmUgY2xpcHBpbmcgdG9waWMg aGVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAobG9va2luZy1hdCBhbGxvdXQtcmVnZXhwKSkp IDsgYXJlIGNsaXBwaW5nIHRvcGljIGhlYWQuCisgICAgICAgICAgICA7OyBBYm92ZSBjb25kaXRp b25zIGRvIG5vdCBvYnRhaW4gLSBqdXN0IGRvIGEgcmVndWxhciBraWxsOgorICAgICAgICAgICAg KGtpbGwtbGluZSBhcmcpCisgICAgICAgICAgOzsgQWgsIGhhdmUgdG8gd2F0Y2ggb3V0IGZvciBh ZGp1c3RtZW50czoKKyAgICAgICAgICAobGV0KiAoKGRlcHRoIChhbGxvdXQtZGVwdGgpKQorICAg ICAgICAgICAgICAgICAoc3RhcnQtcG9pbnQgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgYmlu ZGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IERvIHRoZSBr aWxsLCBwcmVzZW50aW5nIG9wdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDsgZm9yIHJlYWQtb25seSB0ZXh0OgorICAgICAgICAgICAgKGtpbGwtbGluZSBhcmcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBQcm92aWRlIHNvbWUg ZmVlZGJhY2s6Ci0gICAgICAoc2l0LWZvciAwKQotICAgICAgKHNhdmUtZXhjdXJzaW9uCisgICAg ICAgICAgKHNpdC1mb3IgMCkKKyAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IFN0YXJ0IHdpdGggdGhlIHRvcGljCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBmb2xsb3dpbmcga2lsbGVkIGxp bmU6Ci0gICAgICAgIChpZiAobm90IChsb29raW5nLWF0IGFsbG91dC1yZWdleHApKQotICAgICAg ICAgICAgKGFsbG91dC1uZXh0LWhlYWRpbmcpKQotICAgICAgICAoYWxsb3V0LXJlbnVtYmVyLXRv LWRlcHRoIGRlcHRoKSkpKSkKKyAgICAgICAgICAgIChpZiAobm90IChsb29raW5nLWF0IGFsbG91 dC1yZWdleHApKQorICAgICAgICAgICAgICAgIChhbGxvdXQtbmV4dC1oZWFkaW5nKSkKKyAgICAg ICAgICAgIChhbGxvdXQtcmVudW1iZXItdG8tZGVwdGggZGVwdGgpKSkpCisgICAgICA7OyBjb25k aXRpb24gY2FzZSBoYW5kbGVyOgorICAgICAgKHRleHQtcmVhZC1vbmx5CisgICAgICAgKGdvdG8t Y2hhciBzdGFydC1wb2ludCkKKyAgICAgICAoc2V0cSBiaW5kaW5nICh3aGVyZS1pcy1pbnRlcm5h bCAnYWxsb3V0LWtpbGwtdG9waWMgbmlsIHQpKQorICAgICAgIChjb25kICgobm90IGJpbmRpbmcp IChzZXRxIGJpbmRpbmcgIiIpKQorICAgICAgICAgICAgICgoYXJyYXlwIGJpbmRpbmcpCisgICAg ICAgICAgICAgIChzZXRxIGJpbmRpbmcgKG1hcGNvbmNhdCAna2V5LWRlc2NyaXB0aW9uIChsaXN0 IGJpbmRpbmcpICIsICIpKSkKKyAgICAgICAgICAgICAodCAoc2V0cSBiaW5kaW5nIChmb3JtYXQg IiVzIiBiaW5kaW5nKSkpKQorICAgICAgIDs7IGVuc3VyZSBwcmlvciBraWxsLXJpbmcgbGVhZGVy IGlzIHByb3Blcmx5IHJlc3RvcmVkOgorICAgICAgIChpZiAoZXEgbGVhZGluZy1raWxsLXJpbmct ZW50cnkgKGNhZHIga2lsbC1yaW5nKSkKKyAgICAgICAgICAgOzsgQWJvcnRlZCBraWxsIGdvdCBw dXNoZWQgb24gZnJvbnQgLSBkaXRjaCBpdDoKKyAgICAgICAgICAgKHBvcCBraWxsLXJpbmcpCisg ICAgICAgICA7OyBBYm9ydGVkIGtpbGwgZ290IGFwcGVuZGVkIHRvIHByaW9yIC0gcmVzdXJyZWN0 IHByaW9yOgorICAgICAgICAgKHNldGNhciBraWxsLXJpbmcgbGVhZGluZy1raWxsLXJpbmctZW50 cnkpKQorICAgICAgIDs7IG1ha2UgbGFzdC1jb21tYW5kIHNraXAgdGhpcyBmYWlsZWQgY29tbWFu ZCwgc28ga2lsbC1hcHBlbmRpbmcKKyAgICAgICA7OyBjb25kaXRpb25zIHRyYWNrOgorICAgICAg IChzZXRxIHRoaXMtY29tbWFuZCBsYXN0LWNvbW1hbmQpCisgICAgICAgKGVycm9yIChjb25jYXQg InJlYWQtb25seSB0ZXh0IGhpdCAtIHVzZSAlcyBhbGxvdXQta2lsbC10b3BpYyB0byIKKyAgICAg ICAgICAgICAgICAgICAgICAiIGRpc2NhcmQgY29sbGFwc2VkIHN0dWZmIikKKyAgICAgICAgICAg ICAgYmluZGluZykpKQorICAgICkKKyAgKQogOzs7XyAgICA+IGFsbG91dC1raWxsLXRvcGljICgp CiAoZGVmdW4gYWxsb3V0LWtpbGwtdG9waWMgKCkKICAgIktpbGwgdG9waWMgdG9nZXRoZXIgd2l0 aCBzdWJ0b3BpY3MuCkBAIC0zMjM2LDE0ICszNTQ1LDE0IEBACiAJCSAgICAgICAoPj0gKGFsbG91 dC1yZWNlbnQtZGVwdGgpIGRlcHRoKSkpKQogCSAgICAoZm9yd2FyZC1jaGFyIDEpKSkKIAotICAg IChraWxsLXJlZ2lvbiBiZWcgKHBvaW50KSkKKyAgICAoYWxsb3V0LXVucHJvdGVjdGVkIChraWxs LXJlZ2lvbiBiZWcgKHBvaW50KSkpCiAgICAgKHNpdC1mb3IgMCkKICAgICAoc2F2ZS1leGN1cnNp b24KICAgICAgIChhbGxvdXQtcmVudW1iZXItdG8tZGVwdGggZGVwdGgpKSkpCiA7OztfICAgID4g YWxsb3V0LXlhbmstcHJvY2Vzc2luZyAoKQogKGRlZnVuIGFsbG91dC15YW5rLXByb2Nlc3Npbmcg KCZvcHRpb25hbCBhcmcpCiAKLSAgIkluY2lkZW50YWwgb3V0bGluZSBzcGVjaWZpYyBidXNpbmVz cyB0byBiZSBkb25lIGp1c3QgYWZ0ZXIgdGV4dCB5YW5rcy4KKyAgIkluY2lkZW50YWwgb3V0bGlu ZS1zcGVjaWZpYyBidXNpbmVzcyB0byBiZSBkb25lIGp1c3QgYWZ0ZXIgdGV4dCB5YW5rcy4KIAog RG9lcyBkZXB0aCBhZGp1c3RtZW50IG9mIHlhbmtlZCB0b3BpY3MsIHdoZW46CiAKQEAgLTMyNTks NyArMzU2OCw3IEBACiAKIFRoZSBwb2ludCBpcyBsZWZ0IGluIGZyb250IG9mIHlhbmtlZCwgYWRq dXN0ZWQgdG9waWNzLCByYXRoZXIgdGhhbgogYXQgdGhlIGVuZCAoYW5kIHZpY2UtdmVyc2Egd2l0 aCB0aGUgbWFyaykuICBOb24tYWRqdXN0ZWQgeWFua3MsCi1ob3dldmVyLCBhcmUgbGVmdCBleGFj dGx5IGxpa2Ugbm9ybWFsLCBub3Qgb3V0bGluZSBzcGVjaWZpYyB5YW5rcy4iCitob3dldmVyLCBh cmUgbGVmdCBleGFjdGx5IGxpa2Ugbm9ybWFsLCBub24tYWxsb3V0LXNwZWNpZmljIHlhbmtzLiIK IAogICAoaW50ZXJhY3RpdmUgIipQIikKIAkJCQkJOyBHZXQgdG8gYmVnaW5uaW5nLCBsZWF2aW5n CkBAIC0zNDYzLDYgKzM3NzIsNjAgQEAKIDs7O18gIzYgRXhwb3N1cmUgQ29udHJvbAogCiA7Oztf ICAtIEZ1bmRhbWVudGFsCis7OztfICAgPiBhbGxvdXQtZmxhZy1yZWdpb24gKGZyb20gdG8gZmxh ZykKKyhkZWZ1biBhbGxvdXQtZmxhZy1yZWdpb24gKGZyb20gdG8gZmxhZykKKyAgIkhpZGUgb3Ig c2hvdyBsaW5lcyBmcm9tIEZST00gdG8gVE8sIHZpYSBFbWFjcyBzZWxlY3RpdmUtZGlzcGxheSBG TEFHIGNoYXIuCitJZSwgdGV4dCBmb2xsb3dpbmcgZmxhZyBDLW0gXChjYXJyaWFnZS1yZXR1cm4p IGlzIGhpZGRlbiB1bnRpbCB0aGUKK25leHQgQy1qIChuZXdsaW5lKSBjaGFyLgorCitSZXR1cm5z IHRoZSBlbmRwb2ludCBvZiB0aGUgcmVnaW9uLiIKKyAgOzsgIk9GUi0iIHByZWZpeGVzIHRvIGF2 b2lkIGNvbGxpc2lvbnMgd2l0aCB2YXJzIGluIGNvZGUgY2FsbGluZyB0aGUgbWFjcm8uCisgIDs7 IGllLCBlbGlzcCBtYWNybyB2YXJzIGFyZSBub3QgJ2h5Z2VuaWMnLCBzbyBkaXN0aW5jdCBuYW1l cyBhcmUgbmVjZXNzYXJ5LgorICAobGV0ICgod2FzLWluaGliaXQtci1vIGluaGliaXQtcmVhZC1v bmx5KQorICAgICAgICAod2FzLXVuZG8tbGlzdCBidWZmZXItdW5kby1saXN0KQorICAgICAgICAo d2FzLW1vZGlmaWVkIChidWZmZXItbW9kaWZpZWQtcCkpCisgICAgICAgIHRyYW5zKQorICAgICh1 bndpbmQtcHJvdGVjdAorICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAoc2V0cSBpbmhpYml0 LXJlYWQtb25seSB0KQorICAgICAgIChzZXRxIGJ1ZmZlci11bmRvLWxpc3QgdCkKKyAgICAgICAo aWYgKD4gZnJvbSB0bykKKyAgICAgICAgICAgKHNldHEgdHJhbnMgZnJvbSBmcm9tIHRvIHRvIHRy YW5zKSkKKyAgICAgICAoc3Vic3QtY2hhci1pbi1yZWdpb24gZnJvbSB0bworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoaWYgKD0gZmxhZyA/XG4pID9cciA/XG4pCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZsYWcgdCkKKyAgICAgICA7OyBhZGp1c3QgY2hhcmFjdGVyIHJlYWQt cHJvdGVjdGlvbiBvbiBhbGwgdGhlIGFmZmVjdGVkIGxpbmVzLgorICAgICAgIDs7IHdlIGhhbmRs ZSB0aGUgcmVnaW9uIGxpbmUtYnktbGluZS4KKyAgICAgICAoZ290by1jaGFyIHRvKQorICAgICAg IChlbmQtb2YtbGluZSkKKyAgICAgICAoc2V0cSB0byAobWluICgrIDIgKHBvaW50KSkgKHBvaW50 LW1heCkpKQorICAgICAgIChnb3RvLWNoYXIgZnJvbSkKKyAgICAgICAoYmVnaW5uaW5nLW9mLWxp bmUpCisgICAgICAgKHdoaWxlICg8IChwb2ludCkgdG8pCisgICAgICAgICA7OyBoYW5kbGUgZnJv bSBzdGFydCBvZiBleHBvc2VkIHRvIGJlZ2lubmluZyBvZiBoaWRkZW4sIG9yIGVvbDoKKyAgICAg ICAgIChyZW1vdmUtdGV4dC1wcm9wZXJ0aWVzIChwb2ludCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChwcm9nbiAoaWYgKHJlLXNlYXJjaC1mb3J3YXJkICJbXHJcbl0iCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuaWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZv cndhcmQtY2hhciAtMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcocmVhZC1vbmx5IG5p bCkpCisgICAgICAgICA7OyBoYW5kbGUgZnJvbSBzdGFydCBvZiBoaWRkZW4sIGlmIGFueSwgdG8g ZW9sOgorICAgICAgICAgKGlmIChhbmQgKG5vdCAoZW9icCkpICg9IChjaGFyLWFmdGVyIChwb2lu dCkpID9ccikpCisgICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5IChwb2ludCkgKHByb2du IChlbmQtb2YtbGluZSkgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3JlYWQtb25seSB0KSkKKyAgICAgICAgIDs7IEhhbmRsZSB0aGUgZW5kLW9mLWxpbmUgdG8gYmVn aW5uaW5nIG9mIG5leHQgbGluZToKKyAgICAgICAgIChpZiAobm90IChlb2JwKSkKKyAgICAgICAg ICAgICAocHJvZ24gKGZvcndhcmQtY2hhciAxKQorICAgICAgICAgICAgICAgICAgICAocmVtb3Zl LXRleHQtcHJvcGVydGllcyAoMS0gKHBvaW50KSkgKHBvaW50KQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnKHJlYWQtb25seSBuaWwpKSkpKQorICAgICAgICkK KyAgICAgKGlmIChub3Qgd2FzLW1vZGlmaWVkKQorICAgICAgICAgKHNldC1idWZmZXItbW9kaWZp ZWQtcCBuaWwpKQorICAgICAoc2V0cSBpbmhpYml0LXJlYWQtb25seSB3YXMtaW5oaWJpdC1yLW8p CisgICAgIChzZXRxIGJ1ZmZlci11bmRvLWxpc3Qgd2FzLXVuZG8tbGlzdCkKKyAgICAgKQorICAg ICkKKyAgKQogOzs7XyAgID4gYWxsb3V0LWZsYWctY3VycmVudC1zdWJ0cmVlIChmbGFnKQogKGRl ZnVuIGFsbG91dC1mbGFnLWN1cnJlbnQtc3VidHJlZSAoZmxhZykKICAgIkhpZGUgb3Igc2hvdyBz dWJ0cmVlIG9mIGN1cnJlbnRseS12aXNpYmxlIHRvcGljLgpAQCAtMzQ3MSw5ICszODM0LDkgQEAK IAogICAoc2F2ZS1leGN1cnNpb24KICAgICAoYWxsb3V0LWJhY2stdG8tY3VycmVudC1oZWFkaW5n KQotICAgIChhbGxvdXQtZmxhZy1yZWdpb24gKHBvaW50KQotCQkJIChwcm9nbiAoYWxsb3V0LWVu ZC1vZi1jdXJyZW50LXN1YnRyZWUpICgxLSAocG9pbnQpKSkKLQkJCSBmbGFnKSkpCisgICAgKGxl dCAoKGZyb20gKHBvaW50KSkKKyAgICAgICAgICAodG8gKHByb2duIChhbGxvdXQtZW5kLW9mLWN1 cnJlbnQtc3VidHJlZSkgKDEtIChwb2ludCkpKSkpCisgICAgICAoYWxsb3V0LWZsYWctcmVnaW9u IGZyb20gdG8gZmxhZykpKSkKIAogOzs7XyAgLSBUb3BpYy1zcGVjaWZpYwogOzs7XyAgID4gYWxs b3V0LXNob3ctZW50cnkgKCkKQEAgLTM0ODIsNyArMzg0NSw3IEBACiAKIFRoaXMgaXMgYSB3YXkg dG8gZ2l2ZSByZXN0cmljdGVkIHBlZWsgYXQgYSBjb25jZWFsZWQgbG9jYWxpdHkgd2l0aG91dCB0 aGUKIGV4cGVuc2Ugb2YgZXhwb3NpbmcgaXRzIGNvbnRleHQsIGJ1dCBjYW4gbGVhdmUgdGhlIG91 dGxpbmUgd2l0aCBhYmVycmFudAotZXhwb3N1cmUuICBgYWxsb3V0LWhpZGUtY3VycmVudC1lbnRy eS1jb21wbGV0ZWx5JyBvciBgYWxsb3V0LXNob3ctdG8tb2Zmc2hvb3QnCitleHBvc3VyZS4gIGBh bGxvdXQtaGlkZS1jdXJyZW50LWVudHJ5LWNvbXBsZXRlbHknIG9yIGBhbGxvdXQtc2hvdy1vZmZz aG9vdCcKIHNob3VsZCBiZSB1c2VkIGFmdGVyIHRoZSBwZWVrIHRvIHJlY3RpZnkgdGhlIGV4cG9z dXJlLiIKIAogICAoaW50ZXJhY3RpdmUpCkBAIC0zNjAyLDcgKzM5NjUsNyBAQAogICAoYWxsb3V0 LWJhY2stdG8tY3VycmVudC1oZWFkaW5nKQogICAoc2F2ZS1leGN1cnNpb24KICAgIChhbGxvdXQt ZmxhZy1yZWdpb24gKHBvaW50KQotICAgICAgICAgICAgICAgICAgICAgICAgKHByb2duIChhbGxv dXQtZW5kLW9mLWN1cnJlbnQtZW50cnkpIChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAg ICAocHJvZ24gKGFsbG91dC1lbmQtb2YtZW50cnkpIChwb2ludCkpCiAgICAgICAgICAgICAgICAg ICAgICAgICA/XHIpKSkKIDs7O18gICA+IGFsbG91dC1zaG93LWN1cnJlbnQtZW50cnkgKCZvcHRp b25hbCBhcmcpCiAoZGVmdW4gYWxsb3V0LXNob3ctY3VycmVudC1lbnRyeSAoJm9wdGlvbmFsIGFy ZykKQEAgLTM2MTQsOCArMzk3Nyw5IEBACiAgICAgICAoYWxsb3V0LWhpZGUtY3VycmVudC1lbnRy eSkKICAgICAoc2F2ZS1leGN1cnNpb24KICAgICAgIChhbGxvdXQtZmxhZy1yZWdpb24gKHBvaW50 KQotCQkJICAgKHByb2duIChhbGxvdXQtZW5kLW9mLWN1cnJlbnQtZW50cnkpIChwb2ludCkpCi0J CQkgICA/XG4pKSkpCisJCQkgICAocHJvZ24gKGFsbG91dC1lbmQtb2YtZW50cnkpIChwb2ludCkp CisJCQkgICA/XG4pCisgICAgICApKSkKIDs7O18gICA+IGFsbG91dC1oaWRlLWN1cnJlbnQtZW50 cnktY29tcGxldGVseSAoKQogOyAuLi4gYWxsb3V0LWhpZGUtY3VycmVudC1lbnRyeS1jb21wbGV0 ZWx5IGFsc28gZm9yIGlzZWFyY2ggZHluYW1pYyBleHBvc3VyZToKIChkZWZ1biBhbGxvdXQtaGlk ZS1jdXJyZW50LWVudHJ5LWNvbXBsZXRlbHkgKCkKQEAgLTM4NDYsNyArNDIxMCwxMSBAQAogICAg ICAgbWF4LXBvcykpKQogOzs7XyAgID4gYWxsb3V0LW9sZC1leHBvc2UtdG9waWMgKHNwZWMgJnJl c3QgZm9sbG93ZXJzKQogKGRlZnVuIGFsbG91dC1vbGQtZXhwb3NlLXRvcGljIChzcGVjICZyZXN0 IGZvbGxvd2VycykKLSAgIkRpY3RhdGUgd2hvbGVzYWxlIGV4cG9zdXJlIHNjaGVtZSBmb3IgY3Vy cmVudCB0b3BpYywgYWNjb3JkaW5nIHRvIFNQRUMuCisKKyAgIkRlcHJlY2F0ZWQuICBVc2UgYGFs bG91dC1leHBvc2UtdG9waWMnIFwod2l0aCBkaWZmZXJlbnQgc2NoZW1hCitmb3JtYXQpIGluc3Rl YWQuCisKK0RpY3RhdGUgd2hvbGVzYWxlIGV4cG9zdXJlIHNjaGVtZSBmb3IgY3VycmVudCB0b3Bp YywgYWNjb3JkaW5nIHRvIFNQRUMuCiAKIFNQRUMgaXMgZWl0aGVyIGEgbnVtYmVyIG9yIGEgbGlz dC4gIE9wdGlvbmFsIHN1Y2Nlc3NpdmUgYXJncwogZGljdGF0ZSBleHBvc3VyZSBmb3Igc3Vic2Vx dWVudCBzaWJsaW5ncyBvZiBjdXJyZW50IHRvcGljLgpAQCAtMzkxOCw5ICs0Mjg2LDYgQEAKICAg ICAgIChhbGxvdXQtb2xkLWV4cG9zZS10b3BpYyAoY2FyIGZvbGxvd2VycykpCiAgICAgICAoc2V0 cSBmb2xsb3dlcnMgKGNkciBmb2xsb3dlcnMpKSkKICAgICBtYXgtcG9zKSkKLShtYWtlLW9ic29s ZXRlICdhbGxvdXQtb2xkLWV4cG9zZS10b3BpYwotICAgICAgICAgICAgICAgInVzZSBgYWxsb3V0 LWV4cG9zZS10b3BpYycgKHdpdGggZGlmZmVyZW50IHNjaGVtYSBmb3JtYXQpIGluc3RlYWQuIgot ICAgICAgICAgICAgICAgIjE5LjIzIikKIDs7O18gICA+IGFsbG91dC1uZXctZXhwb3N1cmUgJygp CiAoZGVmbWFjcm8gYWxsb3V0LW5ldy1leHBvc3VyZSAoJnJlc3Qgc3BlYykKICAgIkxpdGVyYWwg ZnJvbnRlbmQgZm9yIGBhbGxvdXQtZXhwb3NlLXRvcGljJywgZG9lc24ndCBldmFsdWF0ZSBhcmd1 bWVudHMuCkBAIC0zOTI5LDYgKzQyOTQsOCBAQAogCiBDdXJzb3IgaXMgbGVmdCBhdCBzdGFydCBw b3NpdGlvbi4KIAorVXNlIHRoaXMgaW5zdGVhZCBvZiBvYnNvbGV0ZSBgYWxsb3V0LWV4cG9zdXJl Jy4KKwogRXhhbXBsZXM6CiBcKGFsbG91dC1uZXctZXhwb3N1cmUgKC0xICgpICgpICgpIDEpIDAp CiAJQ2xvc2UgY3VycmVudCB0b3BpYyBhdCBjdXJyZW50IGxldmVsIHNvIG9ubHkgdGhlIGltbWVk aWF0ZQpAQCAtNDE1MSwxMyArNDUxOCwyMCBAQAogCQkJCSAoY2RyIGZvcm1hdCkpKSkpKSkKICAg ICAgIDs7IFB1dCB0aGUgbGlzdCB3aXRoIGZpcnN0IGF0IGZyb250LCB0byBsYXN0IGF0IGJhY2s6 CiAgICAgICAobnJldmVyc2UgcmVzdWx0KSkpKQorOzs7XyAgID4gbXktcmVnaW9uLWFjdGl2ZS1w ICgpCisoZGVmbWFjcm8gbXktcmVnaW9uLWFjdGl2ZS1wICgpCisgIChpZiAoZmJvdW5kcCAncmVn aW9uLWFjdGl2ZS1wKQorICAgICAgJyhyZWdpb24tYWN0aXZlLXApCisgICAgJ21hcmstYWN0aXZl KSkKIDs7O18gICA+IGFsbG91dC1wcm9jZXNzLWV4cG9zZWQgKCZvcHRpb25hbCBmdW5jIGZyb20g dG8gZnJvbWJ1ZgogOzs7CQkJCQkgICAgdG9idWYgZm9ybWF0KQogKGRlZnVuIGFsbG91dC1wcm9j ZXNzLWV4cG9zZWQgKCZvcHRpb25hbCBmdW5jIGZyb20gdG8gZnJvbWJ1ZiB0b2J1ZgotCQkJCQkg IGZvcm1hdCBzdGFydC1udW0pCisJCQkJCSAgZm9ybWF0ICZvcHRpb25hbCBzdGFydC1udW0pCiAg ICJNYXAgZnVuY3Rpb24gb24gZXhwb3NlZCBwYXJ0cyBvZiBjdXJyZW50IHRvcGljOyByZXN1bHRz IHRvIGFub3RoZXIgYnVmZmVyLgogCi1BcHBseSBGVU5DIHRvIGV4cG9zZWQgcG9ydGlvbnMgRlJP TSBwb3NpdGlvbiBUTyBwb3NpdGlvbiBpbiBidWZmZXIKK0FsbCBhcmdzIGFyZSBvcHRpb25zOyBk ZWZhdWx0IHZhbHVlcyBpdGVtaXplZCBiZWxvdy4KKworQXBwbHkgRlVOQ1RJT04gdG8gZXhwb3Nl ZCBwb3J0aW9ucyBGUk9NIHBvc2l0aW9uIFRPIHBvc2l0aW9uIGluIGJ1ZmZlcgogRlJPTUJVRiB0 byBidWZmZXIgVE9CVUYuICBTaXh0aCBvcHRpb25hbCBhcmcsIEZPUk1BVCwgZGVzaWduYXRlcyBh bgogYWx0ZXJuYXRlIHByZXNlbnRhdGlvbiBmb3JtOgogCkBAIC00MTcwLDcgKzQ1NDQsNyBAQAog CQkgICAgICAgZXhjZXB0IGZvciBkaXN0aW5jdGl2ZSBidWxsZXRzLgogCiBEZWZhdWx0czoKLSAg RlVOQzoJCWBhbGxvdXQtaW5zZXJ0LWxpc3RpZmllZCcKKyAgRlVOQ1RJT046CWBhbGxvdXQtaW5z ZXJ0LWxpc3RpZmllZCcKICAgRlJPTToJCXJlZ2lvbiBzdGFydCwgaWYgcmVnaW9uIGFjdGl2ZSwg ZWxzZSBzdGFydCBvZiBidWZmZXIKICAgVE86CQlyZWdpb24gZW5kLCBpZiByZWdpb24gYWN0aXZl LCBlbHNlIGVuZCBvZiBidWZmZXIKICAgRlJPTUJVRjoJY3VycmVudCBidWZmZXIKQEAgLTQyMTks OSArNDU5Myw3IEBACiAKICBcYChkZXB0aCBwcmVmaXggdGV4dCknCiAKLW9yCi0KLSBcYChkZXB0 aCBwcmVmaXggdGV4dCBidWxsZXQtcGx1cyknCitvciBcYChkZXB0aCBwcmVmaXggdGV4dCBidWxs ZXQtcGx1cyknCiAKIElmIGBidWxsZXQtcGx1cycgaXMgc3BlY2lmaWVkLCBpdCBpcyBpbnNlcnRl ZCBqdXN0IGFmdGVyIHRoZSBlbnRpcmUgcHJlZml4LiIKICAgKHNldHEgbGlzdGlmaWVkIChjZHIg bGlzdGlmaWVkKSkKQEAgLTQyMzcsNyArNDYwOSw3IEBACiAgICAgKHdoaWxlIHRleHQKICAgICAg IChpbnNlcnQgKGNhciB0ZXh0KSkKICAgICAgIChpZiAoc2V0cSB0ZXh0IChjZHIgdGV4dCkpCi0J ICAoaW5zZXJ0ICJcbiIpKSkKKwkgIChpbnNlcnQtc3RyaW5nICJcbiIpKSkKICAgICAoaW5zZXJ0 ICJcbiIpKSkKIDs7O18gICA+IGFsbG91dC1jb3B5LWV4cG9zZWQtdG8tYnVmZmVyICgmb3B0aW9u YWwgYXJnIHRvYnVmIGZvcm1hdCkKIChkZWZ1biBhbGxvdXQtY29weS1leHBvc2VkLXRvLWJ1ZmZl ciAoJm9wdGlvbmFsIGFyZyB0b2J1ZiBmb3JtYXQpCkBAIC00NDQwLDE0ICs0ODEyLDE0IEBACiAJ IGJvZHktY29udGVudCBib3ApCiAJCQkJCTsgRG8gdGhlIGhlYWQgbGluZToKICAgICAoaW5zZXJ0 IChjb25jYXQgIlxcT25lSGVhZExpbmV7XFx2ZXJiXDEgIgotCQkgICAgKGFsbG91dC1sYXRleC12 ZXJiLXF1b3RlIGJ1bGxldCkKLQkJICAgICJcMX17IgotCQkgICAgZGVwdGgKLQkJICAgICJ9e1xc dmVyYlwxICIKLQkJICAgIChpZiBoZWFkLWxpbmUKLQkJCShhbGxvdXQtbGF0ZXgtdmVyYi1xdW90 ZSBoZWFkLWxpbmUpCi0JCSAgICAgICIiKQotCQkgICAgIlwxfVxuIikpCisgICAgICAgICAgICAg ICAgICAgIChhbGxvdXQtbGF0ZXgtdmVyYi1xdW90ZSBidWxsZXQpCisgICAgICAgICAgICAgICAg ICAgICJcMX17IgorICAgICAgICAgICAgICAgICAgICBkZXB0aAorICAgICAgICAgICAgICAgICAg ICAifXtcXHZlcmJcMSAiCisgICAgICAgICAgICAgICAgICAgIChpZiBoZWFkLWxpbmUKKyAgICAg ICAgICAgICAgICAgICAgICAgIChhbGxvdXQtbGF0ZXgtdmVyYi1xdW90ZSBoZWFkLWxpbmUpCisg ICAgICAgICAgICAgICAgICAgICAgIiIpCisgICAgICAgICAgICAgICAgICAgICJcMX1cbiIpKQog ICAgIChpZiAobm90IGJvZHktbGluZXMpCiAJbmlsCiAgICAgICA7OyhpbnNlcnQgIlxcYmVnaW5s aW5lc1xuIikKQEAgLTQ1MDksNyArNDg4MSw2MTUgQEAKICAgICAocG9wLXRvLWJ1ZmZlciBidWYp CiAgICAgKGdvdG8tY2hhciBzdGFydC1wdCkpKQogCi07OztfICM4IG1pc2NlbGxhbmVvdXMKKzs7 O18gIzggRW5jcnlwdGlvbgorOzs7XyAgPiBhbGxvdXQtdG9nZ2xlLWN1cnJlbnQtc3VidHJlZS1l bmNyeXB0aW9uICgmb3B0aW9uYWwgZmV0Y2gta2V5KQorKGRlZnVuIGFsbG91dC10b2dnbGUtY3Vy cmVudC1zdWJ0cmVlLWVuY3J5cHRpb24gKCZvcHRpb25hbCBmZXRjaC1rZXkpCisgICJFbmNyeXB0 IGNsZWFyIHRleHQgb3IgZGVjcnlwdCBlbmNvZGVkIGNvbnRlbnRzIG9mIGEgdG9waWMuCisKK0Nv bnRlbnRzIGluY2x1ZGVzIGJvZHkgYW5kIHN1YnRvcGljcy4KKworQ3VycmVudGx5IG9ubHkgR251 UEcgZW5jcnlwdGlvbiBpcyBzdXBwb3J0ZWQuCisKK1wqKk5PVEUgV0VMTCoqIHRoYXQgdGhlIGVu Y3J5cHRlZCB0ZXh0IG11c3QgYmUgYXNjaWktYXJtb3JlZC4gIEZvciBnbnVwZworZW5jcnlwdGlv biwgaW5jbHVkZSB0aGUgb3B0aW9uIGBgYXJtb3InJyBpbiB5b3VyIH4vLmdudXBnL2dwZy5jb25m IGZpbGUuCisKK0JvdGggc3ltbWV0cmljLWtleSBhbmQga2V5LXBhaXIgZW5jcnlwdGlvbiBpcyBp bXBsZW1lbnRlZC4gIFN5bW1ldHJpYyBpcwordGhlIGRlZmF1bHQsIHVzZSBhIHNpbmdsZSBcKHg0 KSB1bml2ZXJzYWwgYXJndW1lbnQgZm9yIGtleXBhaXIgbW9kZS4KKworRW5jcnlwdGVkIHRvcGlj J3MgYnVsbGV0IGlzIHNldCB0byBhIGB+JyB0byBzaWduYWwgdGhhdCB0aGUgY29udGVudHMgb2Yg dGhlCit0b3BpYyBcKGJvZHkgYW5kIHN1YnRvcGljcywgYnV0IG5vdCBoZWFkaW5nKSBpcyBwZW5k aW5nIGVuY3J5cHRpb24gb3IKK2VuY3J5cHRlZC4gIEFuIGAqJyBhc3RlcmlzayBpbW1lZGlhdGVs eSBhZnRlciB0aGUgYnVsbGV0IHNpZ25hbHMgdGhhdCB0aGUKK2JvZHkgaXMgZW5jcnlwdGVkLCBp dHMgYWJzZW5jZSBtZWFucyBpdCdzIG1lYW50IHRvIGJlIGVuY3J5cHRlZCBidXQgaXMgbm90Cist IGl0J3MgXCJkaXNjbG9zZWRcIi4gIFdoZW4gYSBmaWxlIHdpdGggZGlzY2xvc2VkIHRvcGljcyBp cyBzYXZlZCwgdGhlIHVzZXIKK3Byb21wdGVkIGZvciBhbiBvayB0byBcKHN5bW1ldHJpYy1rZXkp IGVuY3J5cHQgdGhlIGRpc2Nsb3NlZCB0b3BpY3MuICBOT1RFCitXRUxMIHRoYXQgeW91IG11c3Qg ZXhwbGljaXRseSBcKHJlKWVuY3J5cHQga2V5LXBhaXIgZW5jcnlwdGVkIHRvcGljcyBpZiB5b3UK K3dhbnQgdGhlbSB0byBjb250aW51ZSB0byBiZSBpbiBrZXktcGFpciBtb2RlLgorCitMZXZlbC0x IHRvcGljcywgd2l0aCBwcmVmaXggY29uc2lzdGluZyBzb2xlbHkgb2YgYW4gYConIGFzdGVyaXNr LCBjYW5ub3QgYmUKK2VuY3J5cHRlZC4gIElmIHlvdSB3YW50IHRvIGVuY3J5cHQgdGhlIGNvbnRl bnRzIG9mIGEgdG9wLWxldmVsIHRvcGljLCB1c2UKK1xcW2FsbG91dC1zaGlmdC1pbl0gdG8gaW5j cmVhc2UgaXRzIGRlcHRoLgorCitGYWlsZWQgdHJhbnNmb3JtYXRpb24gZG9lcyBub3QgY2hhbmdl IHRoZSBhbiBlbnRyeSBiZWluZyBlbmNyeXB0ZWQgLQoraW5zdGVhZCwgdGhlIGtleSBpcyByZS1z b2xpY2l0ZWQgYW5kIHRoZSB0cmFuc2Zvcm1hdGlvbiBpcyByZXRyaWVkLgorXFxba2V5Ym9hcmQt cXVpdF0gdG8gYWJvcnQuCisKK0RlY3J5cHRpb24gZG9lcyBzeW1tZXRyaWMgb3Iga2V5LXBhaXIg a2V5IG1vZGUgZGVwZW5kaW5nIG9uIGhvdyB0aGUgdGV4dAord2FzIGVuY3J5cHRlZC4gIFRoZSBl bmNyeXB0aW9uIGtleSBpcyBzb2xpY2l0ZWQgaWYgbm90IGN1cnJlbnRseSBhdmFpbGFibGUKK2Zy b20gdGhlIGtleSBjYWNoZSBmcm9tIGEgcmVjZW50IHByaW9yIGVuY3J5cHRpb24gYWN0aW9uLgor CitPcHRpb25hbCBGRVRDSC1LRVkgdW5pdmVyc2FsIGFyZ3VtZW50IGlzIHVzZWQgZm9yIHR3byBw dXJwb3NlcyAtIHRvIHByb3Zva2UKK2tleS1wYWlyIGluc3RlYWQgb2Ygc3ltbWV0cmljIGVuY3J5 cHRpb24sIG9yIHRvIHByb3Zva2UgY2xlYXJpbmcgb2YgdGhlIGtleQorY2FjaGUgc28ga2V5cyBh cmUgZnJlc2hseSBmZXRjaGVkLgorCisgLSBXaXRob3V0IGFueSB1bml2ZXJzYWwgYXJndW1lbnRz LCB0aGVuIHRoZSBhcHByb3ByaWF0ZSBrZXkgZm9yIHRoZSBpcworICAgb2J0YWluZWQgZnJvbSB0 aGUgY2FjaGUsIGlmIGF2YWlsYWJsZSwgZWxzZSBmcm9tIHRoZSB1c2VyLgorCisgLSBJZiBGRVRD SC1LRVkgaXMgdGhlIHJlc3VsdCBvZiBvbmUgdW5pdmVyc2FsIGFyZ3VtZW50IC0gaWUsIGVxdWFs IHRvIDQgLQorICAgdGhlbiBrZXktcGFpciBlbmNyeXB0aW9uIGlzIHVzZWQuCisKKyAtIFdpdGgg cmVwZWF0ZWQgdW5pdmVyc2FsIGFyZ3VtZW50IC0gZXF1YWwgdG8gMTYgLSB0aGVuIHRoZSBrZXkg Y2FjaGUgaXMKKyAgIGNsZWFyZWQgYmVmb3JlIGFueSBlbmNyeXB0aW9uIHRyYW5zZm9ybWF0aW9u cywgdG8gZm9yY2UgcHJvbXB0aW5nIG9mIHRoZQorICAgdXNlciBmb3IgdGhlIGtleS4KKworVGhl IHNvbGljaXRlZCBrZXkgaXMgcmV0YWluZWQgZm9yIHJldXNlIGluIGEgYnVmZmVyLXNwZWNpZmlj IGNhY2hlIGZvciBzb21lCitzZXQgcGVyaW9kIG9mIHRpbWUgXChkZWZhdWx0LCA2MCBzZWNvbmRz KSwgYWZ0ZXIgd2hpY2ggdGhlIHN0cmluZyBpcworbnVsbGVkLiAgYG1haWxjcnlwdCcgcHJvdmlk ZXMgdGhlIGtleSBjYWNoaW5nIGZ1bmN0aW9uYWxpdHkuICBZb3UgY2FuCithZGp1c3QgdGhlIGtl eSBjYWNoZSB0aW1lb3V0IGJ5IGFqZHVzdGluZyB0aGUgc2V0dGluZyBvZiB0aGUgZWxpc3AgdmFy aWFibGUKK2BtYy1wYXNzd2QtdGltZW91dCcuCisKK0lmIHRoZSBmaWxlIHByZXZpb3VzbHkgaGFk IG5vIGFzc29jaWF0ZWQga2V5LCBvciBoYWQgYSBkaWZmZXJlbnQga2V5IHRoYW4KK3NwZWNpZmll ZCwgdGhlIHVzZXIgaXMgcHJvbXB0ZWQgdG8gcmVwZWF0IHRoZSBuZXcgb25lIGZvciBjb3Jyb2Jv cmF0aW9uLiAgQQorcmFuZG9tIHN0cmluZyBlbmNyeXB0ZWQgYnkgdGhlIG5ldyBrZXkgaXMgc2V0 IG9uIHRoZSBidWZmZXItc3BlY2lmaWMKK3ZhcmlhYmxlIGBhbGxvdXQta2V5LXZlcmlmaWVyLXN0 cmluZycsIGZvciBjb25maXJtYXRpb24gb2YgdGhlIGtleSB3aGVuCituZXh0IG9idGFpbmVkLCBi ZWZvcmUgZW5jcnlwdGluZyBvciBkZWNyeXB0aW5nIGFueXRoaW5nIHdpdGggaXQuICBUaGlzCito ZWxwcyBhdm9pZCBtaXN0YWtlbmx5IHNoaWZ0aW5nIGJldHdlZW4ga2V5cy4KKworSWYgYWxsb3V0 IGN1c3RvbWl6YXRpb24gdmFyIGBhbGxvdXQta2V5LXZlcmlmaWVyLWhhbmRsaW5nJyBpcyBub24t bmlsLCBhbgorZW50cnkgZm9yIGBhbGxvdXQta2V5LXZlcmlmaWVyLXN0cmluZycgYW5kIGl0cyB2 YWx1ZSBpcyBhZGRlZCB0byBhbiBFbWFjcworJ2xvY2FsIHZhcmlhYmxlcycgc2VjdGlvbiBhdCB0 aGUgZW5kIG9mIHRoZSBmaWxlLCB3aGljaCBpcyBjcmVhdGVkIGlmCituZWNlc3NhcnkuICBUaGF0 IHNldHRpbmcgaXMgZm9yIHJldGVudGlvbiBvZiB0aGUga2V5IHZlcmlmaWVyIGFjcm9zcyBlbWFj cworc2Vzc2lvbnMuCisKK1NpbWlsYXJseSwgYGFsbG91dC1rZXktaGludC1zdHJpbmcnIHN0b3Jl cyBhIHVzZXItcHJvdmlkZWQgcmVtaW5kZXIgYWJvdXQKK3RoZWlyIGtleSwgYW5kIGBhbGxvdXQt a2V5LWhpbnQtaGFuZGxpbmcnIHNwZWNpZmllcyB3aGVuIHRoZSBoaW50IGlzCitwcmVzZW50ZWQs IG9yIGlmIGtleSBoaW50cyBhcmUgZGlzYWJsZWQuICBJZiBlbmFibGVkIFwoc2VlIHRoZQorYGFs bG91dC1rZXktaGludC1oYW5kbGluZycgZG9jc3RyaW5nIGZvciBkZXRhaWxzKSwgdGhlIGhpbnQg c3RyaW5nIGlzCitzdG9yZWQgaW4gdGhlIGxvY2FsLXZhcmlhYmxlcyBzZWN0aW9uIG9mIHRoZSBm aWxlLCBhbmQgc29saWNpdGVkIHdoZW5ldmVyCit0aGUga2V5IGlzIGNoYW5nZWQuIgorCis7Ozsg VGhpcyByb3V0aW5lIGhhbmRsZXMgYWxsb3V0LXNwZWNpZmljIGJ1c2luZXNzLCBkaXNwYXRjaGlu ZworOzs7IGVuY3J5cHRpb24tc3BlY2lmaWMgYnVzaW5lc3MgdG8gYWxsb3V0LWVuY3J5cHQtc3Ry aW5nLgorCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChhbGxv dXQtZW5kLW9mLXByZWZpeCB0KQorCisgICAgKGlmICg9IChhbGxvdXQtcmVjZW50LWRlcHRoKSAx KQorICAgICAgICAoZXJyb3IgKGNvbmNhdCAiQ2Fubm90IGVuY3J5cHQgb3IgZGVjcnlwdCBsZXZl bCAxIHRvcGljcyAtIgorICAgICAgICAgICAgICAgICAgICAgICAiIHNoaWZ0IGl0IGluIHRvIG1h a2UgaXQgZW5jcnlwdGFibGUiKSkpCisKKyAgICAoaWYgKGFuZCBmZXRjaC1rZXkKKyAgICAgICAg ICAgICAobm90IChlcXVhbCBmZXRjaC1rZXkgJyg0KSkpKQorICAgICAgICAobWMtZGVhY3RpdmF0 ZS1wYXNzd2QpKQorCisgICAgKGxldCogKChhbGxvdXQtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikp CisgICAgICAgICAgIDs7IEFzc2VzIGxvY2F0aW9uOgorICAgICAgICAgICAoYWZ0ZXItYnVsbGV0 LXBvcyAocG9pbnQpKQorICAgICAgICAgICAod2FzLWVuY3J5cHRlZAorICAgICAgICAgICAgKHBy b2duIChpZiAoPSAocG9pbnQtbWF4KSBhZnRlci1idWxsZXQtcG9zKQorICAgICAgICAgICAgICAg ICAgICAgICAoZXJyb3IgIm5vIGJvZHkgdG8gZW5jcnlwdCIpKQorICAgICAgICAgICAgICAgICAg IChsb29raW5nLWF0ICJcXCoiKSkpCisgICAgICAgICAgICh3YXMtY29sbGFwc2VkIChpZiAobm90 IChyZS1zZWFyY2gtZm9yd2FyZCAiW1xuXHJdIiBuaWwgdCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFja3dhcmQtY2hh ciAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb29raW5nLWF0ICJcciIpKSkKKyAg ICAgICAgICAgKHN1YnRyZWUtYmVnICgxKyAocG9pbnQpKSkKKyAgICAgICAgICAgKHN1YnRyZWUt ZW5kIChhbGxvdXQtZW5kLW9mLXN1YnRyZWUpKQorICAgICAgICAgICAoc3ViamVjdC10ZXh0IChi dWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3VidHJlZS1iZWcKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnRyZWUtZW5kKSkK KyAgICAgICAgICAgKHN1YnRyZWUtZW5kLWNoYXIgKGNoYXItYWZ0ZXIgKDEtIHN1YnRyZWUtZW5k KSkpCisgICAgICAgICAgIChzdWJ0cmVlLXRyYWlsbGluZy1jaGFyIChjaGFyLWFmdGVyIHN1YnRy ZWUtZW5kKSkKKyAgICAgICAgICAgKHBsYWNlLWhvbGRlciAoaWYgKG9yIChzdHJpbmc9ICIiIHN1 YmplY3QtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmc9ICJc biIgc3ViamVjdC10ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJO byB0b3BpYyBjb250ZW50cyB0byAlc2NyeXB0IgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGlmIHdhcy1lbmNyeXB0ZWQgImRlIiAiZW4iKSkpKQorICAgICAgICAgICA7OyBB c3Nlc3Mga2V5IHBhcmFtZXRlcnM6CisgICAgICAgICAgIChrZXktdHlwZSAob3IKKyAgICAgICAg ICAgICAgICAgICAgICA7OyBkZXRlY3QgdGhlIHR5cGUgYnkgd2hpY2ggaXQgaXMgYWxyZWFkeSBl bmNyeXB0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAoYW5kIHdhcy1lbmNyeXB0ZWQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhbGxvdXQtZW5jcnlwdGVkLXRleHQtdHlwZSBzdWJqZWN0 LXRleHQpKQorICAgICAgICAgICAgICAgICAgICAgIChhbmQgKG1lbWJlciBmZXRjaC1rZXkgJyg0 ICg0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoeWVzLW9yLW5vLXAgIlVzZSBrZXkt cGFpciBlbmNyeXB0aW9uIGluc3RlYWQ/ICIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAn a2V5cGFpcikKKyAgICAgICAgICAgICAgICAgICAgICAnc3ltbWV0cmljKSkKKyAgICAgICAgICAg KGZldGNoLWtleSAoYW5kIGZldGNoLWtleSAobm90IChtZW1iZXIgZmV0Y2gta2V5ICcoMTYgKDE2 KSkpKSkpCisgICAgICAgICAgIHJlc3VsdC10ZXh0KQorCisgICAgICAoc2V0cSByZXN1bHQtdGV4 dAorICAgICAgICAgICAgKGFsbG91dC1lbmNyeXB0LXN0cmluZyBzdWJqZWN0LXRleHQgd2FzLWVu Y3J5cHRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVm ZmVyKSBrZXktdHlwZSBmZXRjaC1rZXkpKQorCisgICAgICAgOzsgUmVwbGFjZSB0aGUgc3VidHJl ZSB3aXRoIHRoZSBwcm9jZXNzZWQgcHJvZHVjdC4KKyAgICAgIChhbGxvdXQtdW5wcm90ZWN0ZWQK KyAgICAgICAocHJvZ24KKyAgICAgICAgIChzZXQtYnVmZmVyIGFsbG91dC1idWZmZXIpCisgICAg ICAgICAoZGVsZXRlLXJlZ2lvbiBzdWJ0cmVlLWJlZyBzdWJ0cmVlLWVuZCkKKyAgICAgICAgIChp bnNlcnQgcmVzdWx0LXRleHQpCisgICAgICAgICAoaWYgd2FzLWNvbGxhcHNlZAorICAgICAgICAg ICAgIChhbGxvdXQtZmxhZy1yZWdpb24gc3VidHJlZS1iZWcgKDEtIChwb2ludCkpID9ccikpCisg ICAgICAgICA7OyBhZGp1c3QgdHJhaWxsaW5nLWJsYW5rLWxpbmVzIHRvIHByZXNlcnZlIHRvcGlj IHNwYWNpbmc6CisgICAgICAgICAoaWYgKG5vdCB3YXMtZW5jcnlwdGVkKQorICAgICAgICAgICAg IChpZiAoYW5kIChtZW1iZXIgc3VidHJlZS1lbmQtY2hhciAnKD9cciA/XG4pKQorICAgICAgICAg ICAgICAgICAgICAgIChtZW1iZXIgc3VidHJlZS10cmFpbGxpbmctY2hhciAnKD9cciA/XG4pKSkK KyAgICAgICAgICAgICAgICAgKGluc2VydCBzdWJ0cmVlLXRyYWlsbGluZy1jaGFyKSkpCisgICAg ICAgICA7OyBFbnN1cmUgdGhhdCB0aGUgaXRlbSBoYXMgYW4gZW5jcnlwdGVkLWVudHJ5IGJ1bGxl dDoKKyAgICAgICAgIChpZiAobm90IChzdHJpbmc9IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3Bl cnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gYWZ0ZXItYnVsbGV0LXBvcykg YWZ0ZXItYnVsbGV0LXBvcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG91dC10b3Bp Yy1lbmNyeXB0aW9uLWJ1bGxldCkpCisgICAgICAgICAgICAgKHByb2duIChnb3RvLWNoYXIgKDEt IGFmdGVyLWJ1bGxldC1wb3MpKQorICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLWNoYXIgMSkK KyAgICAgICAgICAgICAgICAgICAgKGluc2VydCBhbGxvdXQtdG9waWMtZW5jcnlwdGlvbi1idWxs ZXQpKSkKKyAgICAgICAgIChpZiB3YXMtZW5jcnlwdGVkCisgICAgICAgICAgICAgOzsgUmVtb3Zl IHRoZSBpcy1lbmNyeXB0ZWQgYnVsbGV0IHF1YWxpZmllcjoKKyAgICAgICAgICAgICAocHJvZ24g KGdvdG8tY2hhciBhZnRlci1idWxsZXQtcG9zKQorICAgICAgICAgICAgICAgICAgICAoZGVsZXRl LWNoYXIgMSkpCisgICAgICAgICAgIDs7IEFkZCB0aGUgaXMtZW5jcnlwdGVkIGJ1bGxldCBxdWFs aWZpZXI6CisgICAgICAgICAgIChnb3RvLWNoYXIgYWZ0ZXItYnVsbGV0LXBvcykKKyAgICAgICAg ICAgKGluc2VydCAiKiIpKQorICAgICAgICAgKQorICAgICAgICkKKyAgICAgICkKKyAgICApCisg ICkKKzs7O18gID4gYWxsb3V0LWVuY3J5cHQtc3RyaW5nICh0ZXh0IGRlY3J5cHQgYWxsb3V0LWJ1 ZmZlciBrZXktdHlwZSByZWtleQorOzs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZvcHRpb25hbCByZXRyaWVkIHZlcmlmeWluZykKKyhkZWZ1biBhbGxvdXQtZW5jcnlwdC1zdHJp bmcgKHRleHQgZGVjcnlwdCBhbGxvdXQtYnVmZmVyIGtleS10eXBlIHJla2V5CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwgcmV0cmllZCB2ZXJpZnlpbmcpCisg ICJFbmNyeXB0IG9yIGRlY3J5cHQgYSBzdHJpbmcgVEVYVCB1c2luZyBLRVkuCisKK0lmIG9wdGlv bmFsIERFQ1JZUFQgaXMgdHJ1ZSAoZGVmYXVsdCBmYWxzZSksIHRoZW4gZGVjcnlwdCBpbnN0ZWFk IG9mCitlbmNyeXB0LgorCitPcHRpb25hbCBSRUtFWSAoZGVmYXVsdCBmYWxzZSkgcHJvdm9rZXMg Y2xlYXJpbmcgb2YgdGhlIGtleSBjYWNoZSB0byBmb3JjZQorZnJlc2ggcHJvbXB0aW5nIGZvciB0 aGUga2V5LgorCitPcHRpb25hbCBSRVRSSUVEIGlzIGZvciBpbnRlcm5hbCB1c2UgLSBjb252ZXlz IHRoZSBudW1iZXIgb2YgZmFpbGVkIGtleXMgaGF2ZQorYmVlbiBzb2xpY2l0ZWQgaW4gc2VxdWVu Y2UgbGVhZGluZyB0byB0aGlzIGN1cnJlbnQgY2FsbC4KKworT3B0aW9uYWwgVkVSSUZZSU5HIGlz IGZvciBpbnRlcm5hbCB1c2UsIHNpZ25pZnlpbmcgcHJvY2Vzc2luZyBvZiB0ZXh0Citzb2xlbHkg Zm9yIHZlcmlmaWNhdGlvbiBvZiB0aGUgY2FjaGVkIGtleS4KKworUmV0dXJucyB0aGUgcmVzdWx0 aW5nIHN0cmluZywgb3IgbmlsIGlmIHRoZSB0cmFuc2Zvcm1hdGlvbiBmYWlscy4iCisKKyAgOzsg RW5zdXJlIHRoYXQgd2UgaGF2ZSBhbiBhbHRlcm5hdGUgaGFuZGxlIG9uIHRoZSByZWFsIG1jLWFj dGl2YXRlLXBhc3N3ZDoKKyAgKGlmIChub3QgKGZib3VuZHAgJ3JlYWwtbWMtYWN0aXZhdGUtcGFz c3dkKSkKKyAgICAgIDs7IEZvcmNlIGxvYWRzIG9mIHRoZSBwcmltYXJ5IG1haWxjcnlwdCBwYWNr YWdlcywgc28gZmxldCBiZWxvdyBob2xkcy4KKyAgICAgIChwcm9nbiAocmVxdWlyZSAnbWFpbGNy eXB0KQorICAgICAgICAgICAgIChsb2FkICJtYy10b3BsZXYiKQorICAgICAgICAgICAgIChmc2V0 ICdyZWFsLW1jLWFjdGl2YXRlLXBhc3N3ZAorICAgICAgICAgICAgICAgICAgIChzeW1ib2wtZnVu Y3Rpb24gJ21jLWFjdGl2YXRlLXBhc3N3ZCkpKSkKKworICAoaWYgKGFuZCByZWtleSAobm90IHZl cmlmeWluZykpIChtYy1kZWFjdGl2YXRlLXBhc3N3ZCkpCisKKyAgKGNhdGNoICdlbmNyeXB0aW9u LWZhaWxlZAorICAgIChzYXZlLWV4Y3Vyc2lvbgorCisgICAgICAobGV0KiAoKG1jLWRlZmF1bHQt c2NoZW1lIChvciBhbGxvdXQtZW5jcnlwdGlvbi1zY2hlbWUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFsbG91dC1kZWZhdWx0LWVuY3J5cHRpb24tc2NoZW1lKSkKKyAgICAg ICAgICAgICAoaWQgKGZvcm1hdCAiJXMtJXMiIGtleS10eXBlCisgICAgICAgICAgICAgICAgICAg ICAgICAgKG9yIChidWZmZXItZmlsZS1uYW1lIGFsbG91dC1idWZmZXIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChidWZmZXItbmFtZSBhbGxvdXQtYnVmZmVyKSkpKQorICAgICAgICAg ICAgIChjYWNoZWQgKHJlYWwtbWMtYWN0aXZhdGUtcGFzc3dkIGlkIG5pbCkpCisgICAgICAgICAg ICAgKGNvbW1lbnQgIlByb2Nlc3NlZCBieSBhbGxvdXQgZHJpdmluZyBtYWlsY3J5cHQiKQorICAg ICAgICAgICAgIGtleSB3b3JrLWJ1ZmZlciByZXN1bHQgcmVzdWx0LXRleHQgZW5jcnlwdGlvbi1w cm9jZXNzLXN0YXR1cykKKworICAgICAgICAodW53aW5kLXByb3RlY3QKKworICAgICAgICAgICAg OzsgSW50ZXJqZWN0IG91ciBtYy1hY3RpdmF0ZS1wYXNzd2Qgd3JhcHBlcjoKKyAgICAgICAgICAg IChmbGV0ICgobWMtYWN0aXZhdGUtcGFzc3dkIChpZCAmb3B0aW9uYWwgcHJvbXB0KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsbG91dC1tYy1hY3RpdmF0ZS1wYXNz d2QgaWQgcHJvbXB0KSkpCisKKyAgICAgICAgICAgICAgKHNldHEgd29yay1idWZmZXIKKyAgICAg ICAgICAgICAgICAgICAgKHNldC1idWZmZXIgKGFsbG91dC1lbmNyeXB0aW9uLXByb2R1Y2Utd29y ay1idWZmZXIgdGV4dCkpKQorCisgICAgICAgICAgICAgIChjb25kCisKKyAgICAgICAgICAgICAg IDs7IHN5bW1ldHJpYzoKKyAgICAgICAgICAgICAgICgoZXF1YWwga2V5LXR5cGUgJ3N5bW1ldHJp YykKKyAgICAgICAgICAgICAgICAoc2V0cSBrZXkgKGlmIHZlcmlmeWluZworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJlYWwtbWMtYWN0aXZhdGUtcGFzc3dkIGlkIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYWxsb3V0LW1jLWFjdGl2YXRlLXBhc3N3ZCBpZCkpKQor ICAgICAgICAgICAgICAgIChzZXRxIGVuY3J5cHRpb24tcHJvY2Vzcy1zdGF0dXMKKyAgICAgICAg ICAgICAgICAgICAgICAoY3J5cHQtZW5jcnlwdC1idWZmZXIga2V5IGRlY3J5cHQpKQorICAgICAg ICAgICAgICAgIChpZiAoemVyb3AgZW5jcnlwdGlvbi1wcm9jZXNzLXN0YXR1cykKKyAgICAgICAg ICAgICAgICAgICAgdAorICAgICAgICAgICAgICAgICAgKGlmIHZlcmlmeWluZworICAgICAgICAg ICAgICAgICAgICAgICh0aHJvdyAnZW5jcnlwdGlvbi1mYWlsZWQgbmlsKQorICAgICAgICAgICAg ICAgICAgICAobWMtZGVhY3RpdmF0ZS1wYXNzd2QpCisgICAgICAgICAgICAgICAgICAgIChlcnJv ciAiU3ltbWV0cmljLWtleSBlbmNyeXB0aW9uIGZhaWxlZCAoJXMpIC0gd3Jvbmcga2V5PyIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVuY3J5cHRpb24tcHJvY2Vzcy1zdGF0dXMpKSkpCisK KyAgICAgICAgICAgICAgIDs7IGVuY3J5cHQgJ2tleXBhaXI6CisgICAgICAgICAgICAgICAoKG5v dCBkZWNyeXB0KQorICAgICAgICAgICAgICAgIChjb25kaXRpb24tY2FzZSByZXN1bHQKKyAgICAg ICAgICAgICAgICAgICAgKG1haWxjcnlwdC1lbmNyeXB0IDEpCisgICAgICAgICAgICAgICAgICAo ZXJyb3IgKG1jLWRlYWN0aXZhdGUtcGFzc3dkKQorICAgICAgICAgICAgICAgICAgICAgICAgIChl cnJvciAiZW5jcnlwdGlvbiBmYWlsZWQ6ICVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2FkciByZXN1bHQpKSkpKQorCisgICAgICAgICAgICAgICA7OyBkZWNyeXB0ICdrZXlw YWlyOgorICAgICAgICAgICAgICAgKHQgKGNvbmRpdGlvbi1jYXNlIHJlc3VsdAorICAgICAgICAg ICAgICAgICAgICAgIChtYy1kZWNyeXB0KQorICAgICAgICAgICAgICAgICAgICAoZXJyb3IgKG1j LWRlYWN0aXZhdGUtcGFzc3dkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJk ZWNyeXB0aW9uIGZhaWxlZDogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNhZHIgcmVzdWx0KSkpKSkpCisKKyAgICAgICAgICAgICAgKHNldHEgcmVzdWx0LXRleHQgKGlm IChvciAoZXF1YWwga2V5LXR5cGUgJ2tleXBhaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG5vdCBkZWNyeXB0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nIDEgKDEtIChwb2ludC1tYXgpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKQorICAgICAgICAgICAg ICA7OyB2YWxpZGF0ZSByZXN1bHQgLSBub24tZW1wdHkKKyAgICAgICAgICAgICAgKGNvbmQgKChu b3QgcmVzdWx0LXRleHQpCisgICAgICAgICAgICAgICAgICAgICAoaWYgdmVyaWZ5aW5nCisgICAg ICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICAgIDs7IFRyYW5z Zm9ybWF0aW9uIHdhcyBmcnVpdGxlc3MgLSByZXRyeSB3aXRoIG5ldyBrZXkuCisgICAgICAgICAg ICAgICAgICAgICAgIChtYy1kZWFjdGl2YXRlLXBhc3N3ZCkKKyAgICAgICAgICAgICAgICAgICAg ICAgKGFsbG91dC1lbmNyeXB0LXN0cmluZyB0ZXh0IGFsbG91dC1idWZmZXIgZGVjcnlwdCBuaWwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHJldHJp ZWQgKDErIHJldHJpZWQpIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZlcmlmeWluZykpKQorCisgICAgICAgICAgICAgICAgICAgIDs7IEJhcmYgaWYg ZW5jcnlwdGlvbiB5aWVsZHMgZXh0cmFvcmRpbmFyeSBjb250cm9sIGNoYXJzOgorICAgICAgICAg ICAgICAgICAgICAoKGFuZCAobm90IGRlY3J5cHQpCisgICAgICAgICAgICAgICAgICAgICAgICAg IChzdHJpbmctbWF0Y2ggIltcQy1hXEMta1xDLW8tXEMtelxDLUBdIiByZXN1bHQtdGV4dCkpCisg ICAgICAgICAgICAgICAgICAgICAoZXJyb3IgKGNvbmNhdCAiZW5jcnlwdGlvbiBwcm9kdWNlZCB1 bnVzYWJsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgbm9uLWFybW9y ZWQgdGV4dCAtIHJlY29uZmlndXJlISIpKSkKKworICAgICAgICAgICAgICAgICAgICA7OyB2YWxp ZCByZXN1bHQgYW5kIGp1c3QgdmVyaWZ5aW5nIG9yIG5vbi1zeW1tZXRyaWM6CisgICAgICAgICAg ICAgICAgICAgICgob3IgdmVyaWZ5aW5nIChub3QgKGVxdWFsIGtleS10eXBlICdzeW1tZXRyaWMp KSkKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC10ZXh0KQorCisgICAgICAgICAgICAgICAg ICAgIDs7IHZhbGlkIHJlc3VsdCBhbmQgcmVndWxhciBzeW1tZXRyaWMgLSBzaXR1YXRlIHZhbGlk YXRvcjoKKyAgICAgICAgICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAgICAgICAgIDs7IHZh bGlkIHJlc3VsdCBhbmQgdmVyaWZpZXIgbmVlZHMgdG8gYmUgc2l0dWF0ZWQgaW4KKyAgICAgICAg ICAgICAgICAgICAgIDs7IGFsbG91dC1idWZmZXI6CisgICAgICAgICAgICAgICAgICAgICAoc2V0 LWJ1ZmZlciBhbGxvdXQtYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKG9y IHJla2V5IChub3QgY2FjaGVkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3Qg KGFsbG91dC12ZXJpZnkta2V5IGtleSBhbGxvdXQtYnVmZmVyKSkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgKGFsbG91dC1zaXR1YXRlLWVuY3J5cHRpb24ta2V5LXZlcmlmaWVyIGtleSBpZCkp CisgICAgICAgICAgICAgICAgICAgICByZXN1bHQtdGV4dCkKKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgICApCisKKyAgICAgICAgICA7OyB1bndpbmQtcHJvdGVjdCBlbWVyZ2Vu Y2U6CisgICAgICAgICAgKGlmIHdvcmstYnVmZmVyCisgICAgICAgICAgICAgIChraWxsLWJ1ZmZl ciB3b3JrLWJ1ZmZlcikpCisgICAgICAgICAgKQorICAgICAgICApCisgICAgICApCisgICAgKQor ICApCis7OztfICA+IGFsbG91dC1tYy1hY3RpdmF0ZS1wYXNzd2QgKGlkICZvcHRpb25hbCBwcm9t cHQpCisoZGVmdW4gYWxsb3V0LW1jLWFjdGl2YXRlLXBhc3N3ZCAoaWQgJm9wdGlvbmFsIHByb21w dCkKKyAgIlN1YnN0aXR1dGVkIGZvciBtYy1hY3RpdmF0ZS1wYXNzd2QgZHVyaW5nIGFsbG91dCBv dXRsaW5lIGVuY3J5cHRpb24uCisKK1dlIGFkZCBrZXktdmVyaWZpY2F0aW9uIHRvIHZhbmlsbGEg bWMtYWN0aXZhdGUtcGFzc3dkLgorCitXZSBkZXBlbmQgaW4gc29tZSBjYXNlcyBvbiB2YWx1ZXMg b2YgdGhlIGZvbGxvd2luZyBhbGxvdXQtZW5jcnlwdC1zdHJpbmcKK2ludGVybmFsIG9yIHByZXZh aWxpbmcgdmFyaWFibGVzOgorICAtIGtleS10eXBlIC0gJ3N5bW1ldHJpYyBvciAna2V5cGFpcgor ICAtIGlkIC0gaWQgYXNzb2NpYXRlZCB3aXRoIGN1cnJlbnQga2V5IGluIGtleSBjYWNoZQorICAt IGFsbG91dC1idWZmZXIgLSB3aGVyZSBzdWJqZWN0IHRleHQgcmVzaWRlcworICAtIHJldHJpZWQg LSBudW1iZXIgb2YgY3VycmVudCBhdHRlbXB0cyB0byBvYnRhaW4gdGhpcyBrZXkKKyAgLSByZWtl eSAtIHVzZXIgYXNrZWQgdG8gcHJlc2VudCBhIG5ldyBrZXkgLSBuZWVkcyB0byBiZSBjb25maXJt ZWQiCisKKzs7ICAtIGlmIHdlJ3JlIGRvaW5nIG5vbi1zeW1tZXRyaWMga2V5LCBqdXN0IGRvIG5v cm1hbCBtYy1hY3RpdmF0ZS1wYXNzd2QKKzs7ICAtIG90aGVyd2lzZSwgaWYgd2UgYXJlIGhhdmUg YSBjYWNoZWQgdmVyc2lvbiBvZiB0aGUga2V5LCB0aGVuIGFzc3VtZQorOzsgICAgaXQncyB2ZXJp ZmllZCBhbmQgcmV0dXJuIGl0Cis7OyAgLSBvdGhlcndpc2UsIHByb21wdCBmb3IgYSBrZXksIGFu ZDoKKzs7ICAgIC0gaWYgd2UgaGF2ZSBhIGtleSB2ZXJpZmllciBcKGEgc3RyaW5nIHZhbHVlIHdo aWNoIHNob3VsZCBkZWNyeXB0Cis7OyAgICAgIGFnYWluc3QgYSBzeW1tZXRyaWMga2V5KSwgdmFs aWRhdGUgYWdhaW5zdCB0aGUgdmVyaWZpZXIKKzs7ICAgICAgLSBpZiBzdWNjZXNzZnVsLCByZXR1 cm4gdGhlIHZlcmlmaWVkIGtleQorOzsgICAgICAtIGlmIHVuc3VjY2Vzc2Z1bDoKKzs7ICAgICAg ICAtIG9mZmVyIHRvIHVzZSB0aGUgbmV3IGtleQorOzsgICAgICAgICAgLSBpZiBhY2NlcHRlZCwg ZG8gY29uZmlybSBwcm9jZXNzCis7OyAgICAgICAgICAtIGlmIHJlZnVzZWQsIHRyeSBhZ2FpbiB1 bnRpbCB3ZSBnZXQgYSBjb3JyZWN0bHkgc3BlbGxlZCBvbmUgb3IgdGhlCis7OyAgICAgICAgICAg IHVzZXIgcXVpdHMKKzs7ICAgIC0gaWYgbm8ga2V5IHZlcmlmaWVyLCByZXNvbGljaXQgdGhlIGtl eSB0byBnZXQgY29ycm9ib3JhdGlvbiBhbmQgcmV0dXJuCis7OyAgICAgIHRoZSBjb3Jyb2JvcmF0 ZWQga2V5IGlmIHNwZWxsZWQgaWRlbnRpY2FsbHksIG9yIGVycm9yIGlmIG5vdC4KKworICAoaWYg KG5vdCAoZXF1YWwga2V5LXR5cGUgJ3N5bW1ldHJpYykpCisgICAgICA7OyBkbyByZWd1bGFyIG1j LWFjdGl2YXRlLXBhc3N3ZCBvbiBub24tc3ltbWV0cmljIGtleQorICAgICAgKHJlYWwtbWMtYWN0 aXZhdGUtcGFzc3dkIGlkIHByb21wdCkKKworICAgIDs7IFN5bW1ldHJpYyBoZXJlb246CisKKyAg ICAoc2F2ZS1leGN1cnNpb24KKyAgICAgIChzZXQtYnVmZmVyIGFsbG91dC1idWZmZXIpCisgICAg ICAobGV0KiAoKGhpbnQgKGlmIChhbmQgKG5vdCAoc3RyaW5nPSBhbGxvdXQta2V5LWhpbnQtc3Ry aW5nICIiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKGVxdWFsIGFsbG91dC1r ZXktaGludC1oYW5kbGluZyAnYWx3YXlzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoYW5kIChlcXVhbCBhbGxvdXQta2V5LWhpbnQtaGFuZGxpbmcgJ25lZWRlZCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyaWVkKSkpCisgICAgICAgICAgICAgICAg ICAgICAgIChmb3JtYXQgIiBbJXNdIiBhbGxvdXQta2V5LWhpbnQtc3RyaW5nKQorICAgICAgICAg ICAgICAgICAgICAgIiIpKQorICAgICAgICAgICAgIChyZXRyeS1tZXNzYWdlIChpZiByZXRyaWVk IChmb3JtYXQgIiAoJXMgcmV0cnkpIiByZXRyaWVkKSAiIikpCisgICAgICAgICAgICAgKHByb21w dC1zYW5zLWhpbnQgKGZvcm1hdCAiJyVzJyBzeW1tZXRyaWMga2V5JXM6ICIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItbmFtZSBhbGxvdXQtYnVmZmVyKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0cnktbWVzc2FnZSkpCisg ICAgICAgICAgICAgKGZ1bGwtcHJvbXB0IChmb3JtYXQgIiclcycgc3ltbWV0cmljIGtleSVzJXM6 ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUgYWxsb3V0 LWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaW50IHJldHJ5LW1l c3NhZ2UpKQorICAgICAgICAgICAgIChwcm9tcHQgZnVsbC1wcm9tcHQpCisgICAgICAgICAgICAg KHZlcmlmaWVyLXN0cmluZyAoYWxsb3V0LWdldC1lbmNyeXB0aW9uLWtleS12ZXJpZmllcikpCisg ICAgICAgICAgICAgOzsgZm9yY2UgcmV0ZW50aW9uIG9mIGNhY2hlZCBwYXNzd29yZHMgZm9yIGZp dmUgbWludXRlcyB3aGlsZQorICAgICAgICAgICAgIDs7IHdlJ3JlIGluIHRoaXMgcGFydGljdWxh ciByb3V0aW5lOgorICAgICAgICAgICAgIChtYy1wYXNzd2QtdGltZW91dCAzMDApCisgICAgICAg ICAgICAgKGNhY2hlZCAocmVhbC1tYy1hY3RpdmF0ZS1wYXNzd2QgaWQgbmlsKSkKKyAgICAgICAg ICAgICAoZ290IChvciBjYWNoZWQgKHJlYWwtbWMtYWN0aXZhdGUtcGFzc3dkIGlkIGZ1bGwtcHJv bXB0KSkpCisgICAgICAgICAgICAgY29uZmlybWF0aW9uKQorCisgICAgICAgIChpZiAobm90IGdv dCkKKyAgICAgICAgICAgIG5pbAorCisgICAgICAgICAgOzsgRHVwbGljYXRlIG91ciBoYW5kbGUg b24gdGhlIGtleSBzbyBpdCdzIG5vdCBjbG9iYmVyZWQgYnkKKyAgICAgICAgICA7OyBkZWFjdGl2 YXRlLXBhc3N3ZCBtZW1vcnkgY2xlYXJpbmc6CisgICAgICAgICAgKHNldHEgZ290IChmb3JtYXQg IiVzIiBnb3QpKQorCisgICAgICAgICAgKGNvbmQgKHZlcmlmaWVyLXN0cmluZworICAgICAgICAg ICAgICAgICAoaWYgKGFuZCAobm90IChhbGxvdXQtZW5jcnlwdC1zdHJpbmcKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXItc3RyaW5nICdkZWNyeXB0IGFsbG91dC1idWZm ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5bW1ldHJpYyBuaWwgMCAndmVy aWZ5aW5nKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmICh5ZXMtb3Itbm8tcAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIktleSBkaWZmZXJzIGZyb20gZXN0 YWJsaXNoZWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0gdXNl IG5ldyBvbmUgaW5zdGVhZD8gIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBk ZWFjdGl2YXRlIHBhc3N3b3JkIGZvciBzdWJzZXF1ZW50CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7OyBjb25maXJtYXRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cHJvZ24gKG1jLWRlYWN0aXZhdGUtcGFzc3dkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzZXRxIHByb21wdCBwcm9tcHQtc2Fucy1oaW50KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 KSkKKyAgICAgICAgICAgICAgICAgICAgIChwcm9nbiAobWMtZGVhY3RpdmF0ZS1wYXNzd2QpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJXcm9uZyBrZXkuIikpKSkKKyAgICAg ICAgICAgICAgICA7OyBGb3JjZSBjb25maXJtYXRpb24gYnkgcmVwZXRpdGlvbiBmb3IgbmV3IGtl eToKKyAgICAgICAgICAgICAgICAoKG9yIHJla2V5IChub3QgY2FjaGVkKSkgKG1jLWRlYWN0aXZh dGUtcGFzc3dkKSkpKQorICAgICAgICA7OyB3ZSBoYXZlIGEga2V5IGFuZCBpdCdzIGVpdGhlciB2 ZXJpZmllZCBhbmQgY2FjaGVkLgorICAgICAgICA7OyBjb25maXJtYXRpb24gdnMgbmV3IGlucHV0 IC0gZG9pbmcgbWMtYWN0aXZhdGUtcGFzc3dkIHdpbGwgZG8gdGhlCisgICAgICAgIDs7IHJpZ2h0 IHRoaW5nLCBpbiBlaXRoZXIgY2FzZToKKyAgICAgICAgKHNldHEgY29uZmlybWF0aW9uCisgICAg ICAgICAgICAgIChyZWFsLW1jLWFjdGl2YXRlLXBhc3N3ZCBpZCAoY29uY2F0IHByb21wdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC4uLiBjb25m aXJtIHNwZWxsaW5nOiAiKSkpCisgICAgICAgIChwcm9nMQorICAgICAgICAgICAgKGlmIChlcXVh bCBnb3QgY29uZmlybWF0aW9uKQorICAgICAgICAgICAgICAgIGNvbmZpcm1hdGlvbgorICAgICAg ICAgICAgICAoaWYgKHllcy1vci1uby1wIChjb25jYXQgInNwZWxsaW5nIG9mIG9yaWdpbmFsIGFu ZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgY29uZmlybWF0aW9u IGRpZmZlciAtIHJldHJ5PyAiKSkKKyAgICAgICAgICAgICAgICAgIChwcm9nbiAoc2V0cSByZXRy aWVkIChpZiByZXRyaWVkICgxKyByZXRyaWVkKSAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAobWMtZGVhY3RpdmF0ZS1wYXNzd2QpCisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgcmVj dXJzZSB0byB0aGlzIHJvdXRpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICAgKG1jLWFjdGl2 YXRlLXBhc3N3ZCBpZCBwcm9tcHQtc2Fucy1oaW50KSkKKyAgICAgICAgICAgICAgICAobWMtZGVh Y3RpdmF0ZS1wYXNzd2QpCisgICAgICAgICAgICAgICAgKGVycm9yICJDb25maXJtYXRpb24gZmFp bGVkLiIpKSkKKyAgICAgICAgICA7OyByZWR1Y2Ugb3Bwb3J0dW5pdHkgZm9yIG1lbW9yeSBjaGVy cnktcGlja2luZyBieSB6ZXJvaW5nIGR1cGxpY2F0ZToKKyAgICAgICAgICAoZG90aW1lcyAoaSAo bGVuZ3RoIGdvdCkpCisgICAgICAgICAgICAoYXNldCBnb3QgaSAwKSkKKyAgICAgICAgICApCisg ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKzs7O18gID4gYWxsb3V0LWVuY3J5cHRpb24t cHJvZHVjZS13b3JrLWJ1ZmZlciAodGV4dCkKKyhkZWZ1biBhbGxvdXQtZW5jcnlwdGlvbi1wcm9k dWNlLXdvcmstYnVmZmVyICh0ZXh0KQorICAiRXN0YWJsaXNoIGEgbmV3IGJ1ZmZlciBmaWxsZWQg d2l0aCBURVhULCBmb3Igb3V0bGluZSBlbmNyeXBpb24gcHJvY2Vzc2luZy4KKworVEVYVCBpcyBt YXNzYWdlZCBzbyBvdXRsaW5lIGNvbGxhcHNpbmcsIGlmIGFueSwgaXMgcmVtb3ZlZC4iCisgIChs ZXQgKCh3b3JrLWJ1ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiICphbGxvdXQgZW5jcnlwdGlv bioiKSkpCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAoc2V0LWJ1ZmZlciB3b3JrLWJ1ZmZl cikKKyAgICAgIChpbnNlcnQgKHN1YnN0LWNoYXItaW4tc3RyaW5nID9cciA/XG4gdGV4dCkpKQor ICAgIHdvcmstYnVmZmVyKSkKKzs7O18gID4gYWxsb3V0LWVuY3J5cHRlZC10b3BpYy1wICgpCiso ZGVmdW4gYWxsb3V0LWVuY3J5cHRlZC10b3BpYy1wICgpCisgICJUcnVlIGlmIHRoZSBjdXJyZW50 IHRvcGljIGlzIGVuY3J5cHRhYmxlIGFuZCBlbmNyeXB0ZWQuIgorICAoc2F2ZS1leGN1cnNpb24K KyAgICAoYWxsb3V0LWVuZC1vZi1wcmVmaXggdCkKKyAgICAoYW5kIChzdHJpbmc9IChidWZmZXIt c3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKDEtIChwb2ludCkpIChwb2ludCkpCisgICAgICAgICAg ICAgICAgICBhbGxvdXQtdG9waWMtZW5jcnlwdGlvbi1idWxsZXQpCisgICAgICAgICAobG9va2lu Zy1hdCAiXFwqIikpCisgICAgKQorICApCis7OztfICA+IGFsbG91dC1lbmNyeXB0ZWQtdGV4dC10 eXBlICh0ZXh0KQorOzs7IFhYWCBncGctc3BlY2lmaWMsIG5vdCBnZW5lcmljIQorKGRlZnVuIGFs bG91dC1lbmNyeXB0ZWQtdGV4dC10eXBlICh0ZXh0KQorICAiRm9yIGdwZyBlbmNyeXB0ZWQgdGV4 dCwgcmV0dXJuICdzeW1tZXRyaWMgb3IgJ2tleXBhaXIuIgorCisgIDs7IEVuc3VyZSBtYy1ncGct cGF0aCBoYXMgYSB2YWx1ZToKKyAgKGlmIChub3QgKGJvdW5kcCAnbWMtZ3BnLXBhdGgpKQorICAg ICAgKGxvYWQtbGlicmFyeSAibWMtZ3BnIikpCisKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKGxl dCogKCh3b3JrLWJ1ZmZlciAoc2V0LWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgIChh bGxvdXQtZW5jcnlwdGlvbi1wcm9kdWNlLXdvcmstYnVmZmVyIHRleHQpKSkKKyAgICAgICAgICAg KHJlc3VsdCAobWMtZ3BnLXByb2Nlc3MtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwgbWMtZ3BnLXBhdGgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoIi0tYmF0Y2giICIt LWRlY3J5cHQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21j LWdwZy1kZWNyeXB0LXBhcnNlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgd29yay1idWZmZXIgbmlsKSkpCisgICAgICAoY29uZCAoKGVxdWFsIChudGggMCByZXN1 bHQpICdzeW1tZXRyaWMpCisgICAgICAgICAgICAgJ3N5bW1ldHJpYykKKyAgICAgICAgICAgICgo ZXF1YWwgKG50aCAwIHJlc3VsdCkgdCkKKyAgICAgICAgICAgICAna2V5cGFpcikKKyAgICAgICAg ICAgICh0IChlcnJvciAiVW5yZWNvZ25pemVkL3Vuc3VwcG9ydGVkIGVuY3J5cHRpb24gdHlwZSAl UyIKKyAgICAgICAgICAgICAgICAgICAgICAobnRoIDAgcmVzdWx0KSkpKQorICAgICAgKQorICAg ICkKKyAgKQorOzs7XyAgPiBhbGxvdXQtY3JlYXRlLWVuY3J5cHRpb24ta2V5LXZlcmlmaWVyIChr ZXkgaWQpCisoZGVmdW4gYWxsb3V0LWNyZWF0ZS1lbmNyeXB0aW9uLWtleS12ZXJpZmllciAoa2V5 IGlkKQorICAiRW5jcnlwdCBhIHJhbmRvbSBtZXNzYWdlIGZvciBsYXRlciB2YWxpZGF0aW9uIG9m IHN5bW1ldHJpYyBrZXkuIgorICA7OyB1c2UgMjAgcmFuZG9tIGFzY2lpIGNoYXJhY3RlcnMsIGFj cm9zcyB0aGUgZW50aXJlIGFzY2lpIHJhbmdlLgorICAocmFuZG9tIHQpCisgIChsZXQgKChzcGV3 IChtYWtlLXN0cmluZyAyMCA/XDApKSkKKyAgICAoZG90aW1lcyAoaSAobGVuZ3RoIHNwZXcpKQor ICAgICAgKGFzZXQgc3BldyBpICgxKyAocmFuZG9tIDI1NCkpKSkKKyAgICAoYWxsb3V0LWVuY3J5 cHQtc3RyaW5nIHNwZXcgbmlsIG5pbCAnc3ltbWV0cmljIG5pbCBuaWwgdCkpCisgICkKKzs7O18g ID4gYWxsb3V0LXNpdHVhdGUtZW5jcnlwdGlvbi1rZXktdmVyaWZpZXIgKGtleSBpZCkKKyhkZWZ1 biBhbGxvdXQtc2l0dWF0ZS1lbmNyeXB0aW9uLWtleS12ZXJpZmllciAoa2V5IGlkKQorICAiRXN0 YWJsaXNoIGtleSB2ZXJpZmllciBzdHJpbmcgb24gZmlsZSB2YXJpYWJsZS4KKworV2UgYWxzbyBw cm9tcHQgZm9yIGFuZCBzaXR1YXRlIGEgbmV3IHJlbWluZGVyLCBpZiByZW1pbmRlcnMgYXJlIGVu YWJsZWQuCisKK1dlIG1hc3NhZ2UgdGhlIHN0cmluZyB0byBzaW1wbGlmeSBwcm9ncmFtbWF0aWMg YWRqdXN0bWVudC4gIEZpbGUgdmFyaWFibGUKK2lzIGBhbGxvdXQtZmlsZS1rZXktdmVyaWZpZXIt c3RyaW5nJy4iCisgIChsZXQgKCh2ZXJpZmllci1zdHJpbmcKKyAgICAgICAgIDs7IENvbGxhcHNl IHRvIGEgc2luZ2xlIGxpbmUgYW5kIGVuY2xvc2UgaW4gc3RyaW5nIHF1b3RlczoKKyAgICAgICAg IChzdWJzdC1jaGFyLWluLXN0cmluZyA/XG4gP1xDLWEKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoYWxsb3V0LWNyZWF0ZS1lbmNyeXB0aW9uLWtleS12ZXJpZmllcgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBrZXkgaWQpKSkKKyAgICAgICAgKHJlbWluZGVyIChpZiAo bm90IChlcXVhbCBhbGxvdXQta2V5LWhpbnQtaGFuZGxpbmcgJ2Rpc2FibGVkKSkKKyAgICAgICAg ICAgICAgICAgICAgICAocmVhZC1mcm9tLW1pbmlidWZmZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgIktleSBoaW50IHRvIGpvZyB5b3VyIG1lbW9yeSBuZXh0IHRpbWU6ICIKKyAgICAgICAgICAg ICAgICAgICAgICAgYWxsb3V0LWtleS1oaW50LXN0cmluZykpKSkKKyAgICAoc2V0cSBhbGxvdXQt a2V5LXZlcmlmaWVyLXN0cmluZyB2ZXJpZmllci1zdHJpbmcpCisgICAgKGFsbG91dC1hZGp1c3Qt ZmlsZS12YXJpYWJsZSAiYWxsb3V0LWtleS12ZXJpZmllci1zdHJpbmciCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVyaWZpZXItc3RyaW5nKQorICAgIChjb25kICgoZXF1YWwg YWxsb3V0LWtleS1oaW50LWhhbmRsaW5nICdkaXNhYmxlZCkKKyAgICAgICAgICAgbmlsKQorICAg ICAgICAgICgobm90IChzdHJpbmc9IHJlbWluZGVyIGFsbG91dC1rZXktaGludC1zdHJpbmcpKQor ICAgICAgICAgICAoc2V0cSBhbGxvdXQta2V5LWhpbnQtc3RyaW5nIHJlbWluZGVyKQorICAgICAg ICAgICAoYWxsb3V0LWFkanVzdC1maWxlLXZhcmlhYmxlICJhbGxvdXQta2V5LWhpbnQtc3RyaW5n IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1pbmRlcikpKQor ICAgICkKKyAgKQorOzs7XyAgPiBhbGxvdXQtZ2V0LWVuY3J5cHRpb24ta2V5LXZlcmlmaWVyICgp CisoZGVmdW4gYWxsb3V0LWdldC1lbmNyeXB0aW9uLWtleS12ZXJpZmllciAoKQorICAiUmV0dXJu IHRoZSB0ZXh0IG9mIHRoZSBlbmNyeXB0IGtleSB2ZXJpZmllciwgdW5tYXNzYWdlZCwgb3Igbmls IGlmIG5vbmUuCisKK0Rlcml2ZWQgZnJvbSB2YWx1ZSBvZiBgYWxsb3V0LWZpbGUta2V5LXZlcmlm aWVyLXN0cmluZycuIgorCisgIChsZXQgKCh2ZXJpZmllci1zdHJpbmcgKGFuZCAoYm91bmRwICdh bGxvdXQta2V5LXZlcmlmaWVyLXN0cmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFsbG91dC1rZXktdmVyaWZpZXItc3RyaW5nKSkpCisgICAgKGlmIHZlcmlmaWVyLXN0cmluZwor ICAgICAgICA7OyBSZXR1cm4gaXQgdW5jb2xsYXBzZWQKKyAgICAgICAgKHN1YnN0LWNoYXItaW4t c3RyaW5nID9cQy1hID9cbiB2ZXJpZmllci1zdHJpbmcpCisgICAgICBuaWwpCisgICApCisgICkK Kzs7O18gID4gYWxsb3V0LXZlcmlmeS1rZXkgKGtleSkKKyhkZWZ1biBhbGxvdXQtdmVyaWZ5LWtl eSAoa2V5IGFsbG91dC1idWZmZXIpCisgICJUcnVlIGlmIGtleSBzdWNjZXNzZnVsbHkgZGVjcnlw dHMga2V5IHZlcmlmaWVyLCBuaWwgb3RoZXJ3aXNlLgorCitcIk90aGVyd2lzZVwiIGluY2x1ZGVz IGFic2VuY2Ugb2Yga2V5IHZlcmlmaWVyLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAgKHNldC1i dWZmZXIgYWxsb3V0LWJ1ZmZlcikKKyAgICAoYW5kIChib3VuZHAgJ2FsbG91dC1rZXktdmVyaWZp ZXItc3RyaW5nKQorICAgICAgICAgYWxsb3V0LWtleS12ZXJpZmllci1zdHJpbmcKKyAgICAgICAg IChhbGxvdXQtZW5jcnlwdC1zdHJpbmcgKGFsbG91dC1nZXQtZW5jcnlwdGlvbi1rZXktdmVyaWZp ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVjcnlwdCBhbGxvdXQtYnVm ZmVyICdzeW1tZXRyaWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCBuaWwg J3ZlcmlmeWluZykKKyAgICAgICAgIHQpKSkKKzs7O18gID4gYWxsb3V0LW5leHQtdG9waWMtcGVu ZGluZy1lbmNyeXB0aW9uICgmb3B0aW9uYWwgZXhjZXB0LW1hcmspCisoZGVmdW4gYWxsb3V0LW5l eHQtdG9waWMtcGVuZGluZy1lbmNyeXB0aW9uICgmb3B0aW9uYWwgZXhjZXB0LW1hcmspCisgICJS ZXR1cm4gdGhlIHBvaW50IG9mIHRoZSBuZXh0IHRvcGljIHBlbmRpbmcgZW5jcnlwdGlvbiwgb3Ig bmlsIGlmIG5vbmUuCisKK0VYQ0VQVC1NQVJLIGlkZW50aWZpZXMgYSBwb2ludCB3aG9zZSBjb250 YWluaW5nIHRvcGljcyBzaG91bGQgYmUgZXhjbHVkZWQKK2Zyb20gZW5jcnlwdGlvbi4gIFRoaXMg c3VwcG9ydHMgJ2V4Y2VwdC1jdXJyZW50IG1vZGUgb2YKK2BhbGxvdXQtZW5jcnlwdC11bmVuY3J5 cHRlZC1vbi1zYXZlcycuCisKK1N1Y2ggYSB0b3BpYyBoYXMgdGhlIGFsbG91dC10b3BpYy1lbmNy eXB0aW9uLWJ1bGxldCB3aXRob3V0IGFuCitpbW1lZGlhdGVseSBmb2xsb3dpbmcgJyonIHRoYXQg d291bGQgbWFyayB0aGUgdG9waWMgYXMgYmVpbmcgZW5jcnlwdGVkLiAgSXQKK211c3QgYWxzbyBo YXZlIGNvbnRlbnQuIgorICAobGV0IChkb25lIGdvdCBjb250ZW50LWJlZykKKyAgICAod2hpbGUg KG5vdCBkb25lKQorCisgICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWZvcndhcmQKKyAgICAgICAg ICAgICAgICAoZm9ybWF0ICJcXChcXGBcXHxbXG5ccl1cXCklcyAqJXNbXipdIgorICAgICAgICAg ICAgICAgICAgICAgICAgKHJlZ2V4cC1xdW90ZSBhbGxvdXQtaGVhZGVyLXByZWZpeCkKKyAgICAg ICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUgYWxsb3V0LXRvcGljLWVuY3J5cHRpb24t YnVsbGV0KSkKKyAgICAgICAgICAgICAgICBuaWwgdCkpCisgICAgICAgICAgKHNldHEgZ290IG5p bAorICAgICAgICAgICAgICAgIGRvbmUgdCkKKyAgICAgICAgKGdvdG8tY2hhciAoc2V0cSBnb3Qg KG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAgIChpZiAobG9va2luZy1hdCAiW1xuXHJdIikK KyAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgMSkpCisgICAgICAgIChzZXRxIGdvdCAocG9pbnQp KSkKKworICAgICAgKGNvbmQgKChub3QgZ290KQorICAgICAgICAgICAgIChzZXRxIGRvbmUgdCkp CisKKyAgICAgICAgICAgICgobm90IChyZS1zZWFyY2gtZm9yd2FyZCAiW1xuXHJdIikpCisgICAg ICAgICAgICAgKHNldHEgZ290IG5pbAorICAgICAgICAgICAgICAgICAgIGRvbmUgdCkpCisKKyAg ICAgICAgICAgICgoZW9icCkKKyAgICAgICAgICAgICAoc2V0cSBnb3QgbmlsCisgICAgICAgICAg ICAgICAgICAgZG9uZSB0KSkKKworICAgICAgICAgICAgKHQKKyAgICAgICAgICAgICAoc2V0cSBj b250ZW50LWJlZyAocG9pbnQpKQorICAgICAgICAgICAgIChiYWNrd2FyZC1jaGFyIDEpCisgICAg ICAgICAgICAgKGFsbG91dC1lbmQtb2Ytc3VidHJlZSkKKyAgICAgICAgICAgICAoaWYgKG9yICg8 PSAocG9pbnQpIGNvbnRlbnQtYmVnKQorICAgICAgICAgICAgICAgICAgICAgKGFuZCBleGNlcHQt bWFyaworICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gY29udGVudC1iZWcgZXhjZXB0LW1h cmspCisgICAgICAgICAgICAgICAgICAgICAgICAgICg+PSAocG9pbnQpIGV4Y2VwdC1tYXJrKSkp CisgICAgICAgICAgICAgICAgIDs7IENvbnRpbnVlIGxvb2tpbmcKKyAgICAgICAgICAgICAgICAg KHNldHEgZ290IG5pbCkKKyAgICAgICAgICAgICAgIDs7IEdvdCBpdCEKKyAgICAgICAgICAgICAg IChzZXRxIGRvbmUgdCkpKQorICAgICAgICAgICAgKQorICAgICAgKQorICAgIChpZiBnb3QKKyAg ICAgICAgKGdvdG8tY2hhciBnb3QpKQorICAgICkKKyAgKQorOzs7XyAgPiBhbGxvdXQtZW5jcnlw dC1kZWNyeXB0ZWQgKCZvcHRpb25hbCBleGNlcHQtbWFyaykKKyhkZWZ1biBhbGxvdXQtZW5jcnlw dC1kZWNyeXB0ZWQgKCZvcHRpb25hbCBleGNlcHQtbWFyaykKKyAgIkVuY3J5cHQgdG9waWNzIHBl bmRpbmcgZW5jcnlwdGlvbiBleGNlcHQgdGhvc2UgY29udGFpbmluZyBleGVtcHRpb24gcG9pbnQu CisKK0VYQ0VQVC1NQVJLIGlkZW50aWZpZXMgYSBwb2ludCB3aG9zZSBjb250YWluaW5nIHRvcGlj cyBzaG91bGQgYmUgZXhjbHVkZWQKK2Zyb20gZW5jcnlwdGlvbi4gIFRoaXMgc3VwcG9ydHMgJ2V4 Y2VwdC1jdXJyZW50IG1vZGUgb2YKK2BhbGxvdXQtZW5jcnlwdC11bmVuY3J5cHRlZC1vbi1zYXZl cycuCisKK0lmIGEgdG9waWMgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkIHdhcyBlbmNy eXB0ZWQsIHdlIHJldHVybiBhIGxpc3QKK2NvbnRhaW5pbmcgdGhlIGxvY2F0aW9uIG9mIHRoZSB0 b3BpYyBhbmQgdGhlIGxvY2F0aW9uIG9mIHRoZSBjdXJzb3IganVzdAorYmVmb3JlIHRoZSB0b3Bp YyB3YXMgZW5jcnlwdGVkLiAgVGhpcyBjYW4gYmUgdXNlZCwgZWcsIHRvIGRlY3J5cHQgdGhlIHRv cGljCithbmQgZXhhY3RseSByZXNpdHVhdGUgdGhlIGN1cnNvciBpZiB0aGlzIGlzIGJlaW5nIGRv bmUgYXMgcGFydCBvZiBhIGZpbGUKK3NhdmUuICBTZWUgYGFsbG91dC1lbmNyeXB0LXVuZW5jcnlw dGVkLW9uLXNhdmVzJyBmb3IgbW9yZSBpbmZvLiIKKworICAoaW50ZXJhY3RpdmUgInAiKQorICAo c2F2ZS1leGN1cnNpb24KKyAgICAobGV0ICgoY3VycmVudC1tYXJrIChwb2ludC1tYXJrZXIpKQor ICAgICAgICAgIHdhcy1tb2RpZmllZAorICAgICAgICAgIGJvLXN1YnRyZWUKKyAgICAgICAgICBl ZGl0aW5nLXRvcGljIGVkaXRpbmctcG9pbnQpCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4p KQorICAgICAgKHdoaWxlIChhbGxvdXQtbmV4dC10b3BpYy1wZW5kaW5nLWVuY3J5cHRpb24gZXhj ZXB0LW1hcmspCisgICAgICAgIChzZXRxIHdhcy1tb2RpZmllZCAoYnVmZmVyLW1vZGlmaWVkLXAp KQorICAgICAgICAoaWYgKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAgIChhbmQgKGJvdW5k cCAnYWxsb3V0LWVuY3J5cHQtdW5lbmNyeXB0ZWQtb24tc2F2ZXMpCisgICAgICAgICAgICAgICAg ICAgYWxsb3V0LWVuY3J5cHQtdW5lbmNyeXB0ZWQtb24tc2F2ZXMKKyAgICAgICAgICAgICAgICAg ICAoc2V0cSBiby1zdWJ0cmVlIChyZS1zZWFyY2gtZm9yd2FyZCAiW1xuXHJdIikpCisgICAgICAg ICAgICAgICAgICAgOzsgTm90IGNvbGxhcHNlZDoKKyAgICAgICAgICAgICAgICAgICAoc3RyaW5n PSAobWF0Y2gtc3RyaW5nIDApICJcbiIpCisgICAgICAgICAgICAgICAgICAgKD49IGN1cnJlbnQt bWFyayAocG9pbnQpKQorICAgICAgICAgICAgICAgICAgIChhbGxvdXQtZW5kLW9mLWN1cnJlbnQt c3VidHJlZSkKKyAgICAgICAgICAgICAgICAgICAoPD0gY3VycmVudC1tYXJrIChwb2ludCkpKSkK KyAgICAgICAgICAgIChzZXRxIGVkaXRpbmctdG9waWMgKHBvaW50KQorICAgICAgICAgICAgICAg ICAgOzsgd2UgaGFkIHRvIHdhaXQgZm9yIHRoaXMgJ3RpbCBub3cgc28gcHJpb3IgdG9waWNzIGFy ZQorICAgICAgICAgICAgICAgICAgOzsgZW5jcnlwdGVkLCBhbnkgcmVsZXZhbnQgdGV4dCBzaGlm dHMgYXJlIGluIHBsYWNlOgorICAgICAgICAgICAgICAgICAgZWRpdGluZy1wb2ludCAobWFya2Vy LXBvc2l0aW9uIGN1cnJlbnQtbWFyaykpKQorICAgICAgICAoYWxsb3V0LXRvZ2dsZS1jdXJyZW50 LXN1YnRyZWUtZW5jcnlwdGlvbikKKyAgICAgICAgKGlmIChub3Qgd2FzLW1vZGlmaWVkKQorICAg ICAgICAgICAgKHNldC1idWZmZXItbW9kaWZpZWQtcCBuaWwpKQorICAgICAgICApCisgICAgICAo aWYgKG5vdCB3YXMtbW9kaWZpZWQpCisgICAgICAgICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG5p bCkpCisgICAgICAoaWYgZWRpdGluZy10b3BpYyAobGlzdCBlZGl0aW5nLXRvcGljIGVkaXRpbmct cG9pbnQpKQorICAgICAgKQorICAgICkKKyAgKQorCis7OztfICM5IG1pc2NlbGxhbmVvdXMKIDs7 O18gID4gYWxsb3V0LW1hcmstdG9waWMgKCkKIChkZWZ1biBhbGxvdXQtbWFyay10b3BpYyAoKQog ICAiUHV0IHRoZSByZWdpb24gYXJvdW5kIHRvcGljIGN1cnJlbnRseSBjb250YWluaW5nIHBvaW50 LiIKQEAgLTQ1MzgsMjIgKzU1MTgsMTAwIEBACiAJdAogICAgICAgKGFsbG91dC1vcGVuLXRvcGlj IDIpCiAgICAgICAoaW5zZXJ0IChjb25jYXQgIkR1bW15IG91dGxpbmUgdG9waWMgaGVhZGVyIC0g c2VlIgotCQkgICAgICAiYGFsbG91dC1tb2RlJyBkb2NzdHJpbmc6IGBeSG0nLiIpKQotICAgICAg KGZvcndhcmQtbGluZSAxKQorICAgICAgICAgICAgICAgICAgICAgICJgYWxsb3V0LW1vZGUnIGRv Y3N0cmluZzogYF5IbScuIikpCisgICAgICAoYWxsb3V0LWFkanVzdC1maWxlLXZhcmlhYmxlCisg ICAgICAgImFsbG91dC1sYXlvdXQiIChmb3JtYXQgIiVzIiAob3IgYWxsb3V0LWxheW91dCAnKC0x IDogMCkpKSkpKSkKKzs7O18gID4gYWxsb3V0LWZpbGUtdmFycy1zZWN0aW9uLWRhdGEgKCkKKyhk ZWZ1biBhbGxvdXQtZmlsZS12YXJzLXNlY3Rpb24tZGF0YSAoKQorICAiUmV0dXJuIGRhdGEgaWRl bnRpZnlpbmcgdGhlIGZpbGUtdmFycyBzZWN0aW9uLCBvciBuaWwgaWYgbm9uZS4KKworUmV0dXJu cyBsaXN0IGAoYmVnaW5uaW5nLXBvaW50IHByZWZpeC1zdHJpbmcgc3VmZml4LXN0cmluZyknLiIK KyAgOzsgbWluaW1hbGx5IGdsZWFuZWQgZnJvbSBlbWFjcyAyMS40IGZpbGVzLmVsIGhhY2stbG9j YWwtdmFyaWFibGVzIGZ1bmN0aW9uLgorICAobGV0IChiZWcgcHJlZml4IHN1ZmZpeCkKKyAgICAo c2F2ZS1leGN1cnNpb24KICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCi0gICAgICAob3Bl bi1saW5lIDEpCi0gICAgICAoYWxsb3V0LW9wZW4tdG9waWMgMCkKLSAgICAgIChpbnNlcnQgIkxv Y2FsIGVtYWNzIHZhcnMuXG4iKQotICAgICAgKGFsbG91dC1vcGVuLXRvcGljIDEpCi0gICAgICAo aW5zZXJ0ICIoYGFsbG91dC1sYXlvdXQnIGlzIGZvciBhbGxvdXQuZWwgYWxsb3V0LW1vZGUpXG4i KQotICAgICAgKGFsbG91dC1vcGVuLXRvcGljIDApCi0gICAgICAoaW5zZXJ0ICJMb2NhbCB2YXJp YWJsZXM6XG4iKQotICAgICAgKGFsbG91dC1vcGVuLXRvcGljIDApCi0gICAgICAoaW5zZXJ0IChm b3JtYXQgImFsbG91dC1sYXlvdXQ6ICVzXG4iCi0JCQkgICAgIChvciBhbGxvdXQtbGF5b3V0Ci0J CQkJICcoLTEgOiAwKSkpKQotICAgICAgKGFsbG91dC1vcGVuLXRvcGljIDApCi0gICAgICAoaW5z ZXJ0ICJFbmQ6XG4iKSkpKQorICAgICAgKHNlYXJjaC1iYWNrd2FyZCAiXG5cXkwiIChtYXggKC0g KHBvaW50LW1heCkgMzAwMCkgKHBvaW50LW1pbikpICdtb3ZlKQorICAgICAgKGlmIChsZXQgKChj YXNlLWZvbGQtc2VhcmNoIHQpKQorCSAgICAobm90IChzZWFyY2gtZm9yd2FyZCAiTG9jYWwgVmFy aWFibGVzOiIgbmlsIHQpKSkKKyAgICAgICAgICBuaWwKKyAgICAgICAgKHNldHEgYmVnICgtIChw b2ludCkgMTYpKQorICAgICAgICAoc2V0cSBzdWZmaXggKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJv cGVydGllcworICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkKKyAgICAgICAgICAgICAgICAg ICAgICAocHJvZ24gKGlmIChyZS1zZWFyY2gtZm9yd2FyZCAiW1xuXHJdIiBuaWwgdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgLTEpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAgICAgIChzZXRxIHByZWZpeCAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgKHByb2du IChpZiAocmUtc2VhcmNoLWJhY2t3YXJkICJbXG5ccl0iIG5pbCB0KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGZvcndhcmQtY2hhciAxKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAgICBiZWcpKQorICAgICAgICAo bGlzdCBiZWcgcHJlZml4IHN1ZmZpeCkpCisgICAgICApCisgICAgKQorICApCis7OztfICA+IGFs bG91dC1hZGp1c3QtZmlsZS12YXJpYWJsZSAodmFybmFtZSB2YWx1ZSkKKyhkZWZ1biBhbGxvdXQt YWRqdXN0LWZpbGUtdmFyaWFibGUgKHZhcm5hbWUgdmFsdWUpCisgICJBZGp1c3QgdGhlIHNldHRp bmcgb2YgYW4gZW1hY3MgZmlsZSB2YXJpYWJsZSBuYW1lZCBWQVJOQU1FIHRvIFZBTFVFLgorCitU aGlzIGFjdGl2aXR5IGlzIGluaGliaXRlZCBpZiBlaXRoZXIgYGVuYWJsZS1sb2NhbC12YXJpYWJs ZXMnCitgYWxsb3V0LWVuYWJsZS1maWxlLXZhcmlhYmxlLWFkanVzdG1lbnQnIGFyZSBuaWwuCisK K1doZW4gZW5hYmxlZCwgYW4gZW50cnkgZm9yIHRoZSB2YXJpYWJsZSBpcyBjcmVhdGVkIGlmIG5v dCBhbHJlYWR5IHByZXNlbnQsCitvciBjaGFuZ2VkIGlmIGVzdGFibGlzaGVkIHdpdGggYSBkaWZm ZXJlbnQgdmFsdWUuICBUaGUgc2VjdGlvbiBmb3IgdGhlIGZpbGUKK3ZhcmlhYmxlcywgaXRzZWxm LCBpcyBjcmVhdGVkIGlmIG5vdCBhbHJlYWR5IHByZXNlbnQuICBXaGVuIGNyZWF0ZWQsIHRoZQor c2VjdGlvbiBsaW5lcyBcKGluY2x1ZGluZyB0aGUgc2VjdGlvbiBsaW5lKSBleGlzdCBhcyBzZWNv bmQtbGV2ZWwgdG9waWNzIGluCithIHRvcC1sZXZlbCB0b3BpYyBhdCB0aGUgZW5kIG9mIHRoZSBm aWxlLgorCitlbmFibGUtbG9jYWwtdmFyaWFibGVzIG11c3QgYmUgdHJ1ZSBmb3IgYW55IG9mIHRo aXMgdG8gaGFwcGVuLiIKKyAgKGlmIChub3QgKGFuZCBlbmFibGUtbG9jYWwtdmFyaWFibGVzCisg ICAgICAgICAgICAgICAgYWxsb3V0LWVuYWJsZS1maWxlLXZhcmlhYmxlLWFkanVzdG1lbnQpKQor ICAgICAgbmlsCisgICAgKHNhdmUtZXhjdXJzaW9uCisgICAgICAobGV0ICgoc2VjdGlvbi1kYXRh IChhbGxvdXQtZmlsZS12YXJzLXNlY3Rpb24tZGF0YSkpCisgICAgICAgICAgICBiZWcgcHJlZml4 IHN1ZmZpeCkKKyAgICAgICAgKGlmIHNlY3Rpb24tZGF0YQorICAgICAgICAgICAgKHNldHEgYmVn IChjYXIgc2VjdGlvbi1kYXRhKQorICAgICAgICAgICAgICAgICAgcHJlZml4IChjYWRyIHNlY3Rp b24tZGF0YSkKKyAgICAgICAgICAgICAgICAgIHN1ZmZpeCAoY2FyIChjZGRyIHNlY3Rpb24tZGF0 YSkpKQorICAgICAgICAgIDs7IGNyZWF0ZSB0aGUgc2VjdGlvbgorICAgICAgICAgIChnb3RvLWNo YXIgKHBvaW50LW1heCkpCisgICAgICAgICAgKG9wZW4tbGluZSAxKQorICAgICAgICAgIChhbGxv dXQtb3Blbi10b3BpYyAwKQorICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICAgICAoaW5z ZXJ0ICJMb2NhbCBlbWFjcyB2YXJzLlxuIikKKyAgICAgICAgICAoYWxsb3V0LW9wZW4tdG9waWMg MSkKKyAgICAgICAgICAoc2V0cSBiZWcgKHBvaW50KQorICAgICAgICAgICAgICAgIHN1ZmZpeCAi IgorICAgICAgICAgICAgICAgIHByZWZpeCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz IChwcm9nbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWcpKQorICAgICAgICAgIChn b3RvLWNoYXIgYmVnKQorICAgICAgICAgIChpbnNlcnQgIkxvY2FsIHZhcmlhYmxlczpcbiIpCisg ICAgICAgICAgKGFsbG91dC1vcGVuLXRvcGljIDApCisgICAgICAgICAgKGluc2VydCAiRW5kOlxu IikKKyAgICAgICAgICApCisgICAgICAgIDs7IGxvb2sgZm9yIGV4aXN0aW5nIGVudHJ5IG9yIGNy ZWF0ZSBvbmUsIGxlYXZpbmcgcG9pbnQgZm9yIGluc2VydGlvbgorICAgICAgICA7OyBvZiBuZXcg dmFsdWU6CisgICAgICAgIChnb3RvLWNoYXIgYmVnKQorICAgICAgICAoYWxsb3V0LXNob3ctdG8t b2Zmc2hvb3QpCisgICAgICAgIChpZiAoc2VhcmNoLWZvcndhcmQgKGNvbmNhdCAiXG4iIHByZWZp eCB2YXJuYW1lICI6IikgbmlsIHQpCisgICAgICAgICAgICAobGV0KiAoKHZhbHVlLWJlZyAocG9p bnQpKQorICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZCAocHJvZ24gKGlmIChyZS1zZWFyY2gt Zm9yd2FyZCAiW1xuXHJdIiBuaWwgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZm9yd2FyZC1jaGFyIC0xKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAgICh2YWx1ZS1lbmQgKC0gbGluZS1l bmQgKGxlbmd0aCBzdWZmaXgpKSkpCisgICAgICAgICAgICAgIChpZiAoPiB2YWx1ZS1lbmQgdmFs dWUtYmVnKQorICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1yZWdpb24gdmFsdWUtYmVnIHZhbHVl LWVuZCkpKQorICAgICAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICAgICAob3Blbi1saW5lIDEp CisgICAgICAgICAgKGZvcndhcmQtbGluZSAxKQorICAgICAgICAgIChpbnNlcnQgKGNvbmNhdCBw cmVmaXggdmFybmFtZSAiOiIpKSkKKyAgICAgICAgKGluc2VydCAoZm9ybWF0ICIgJVMlcyIgdmFs dWUgc3VmZml4KSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQogOzs7XyAgPiBzb2xp Y2l0LWNoYXItaW4tc3RyaW5nIChwcm9tcHQgc3RyaW5nICZvcHRpb25hbCBkby1kZWZhdWx0aW5n KQogKGRlZnVuIHNvbGljaXQtY2hhci1pbi1zdHJpbmcgKHByb21wdCBzdHJpbmcgJm9wdGlvbmFs IGRvLWRlZmF1bHRpbmcpCiAgICJTb2xpY2l0ICh3aXRoIGZpcnN0IGFyZyBQUk9NUFQpIGNob2lj ZSBvZiBhIGNoYXJhY3RlciBmcm9tIHN0cmluZyBTVFJJTkcuCkBAIC00NTk0LDggKzU2NTIsNyBA QAogUmVwcmVzZW50YXRpb25zIG9mIGFjdHVhbCBiYWNrc2xhc2hlcyAtICdcXFxcXFxcXCcgLSBh cmUgbGVmdCBhcyBhCiBzaW5nbGUgYmFja3NsYXNoLgogCi1cKGZuIFJFR0VYUCkiCi07OyBPcHRp b25hbCBhcmcgU1VDQ0VTU0lWRS1CQUNLU0xBU0hFUyBpcyB1c2VkIGludGVybmFsbHkgZm9yIHJl Y3Vyc2lvbi4KK09wdGlvbmFsIGFyZyBTVUNDRVNTSVZFLUJBQ0tTTEFTSEVTIGlzIHVzZWQgaW50 ZXJuYWxseSBmb3IgcmVjdXJzaW9uLiIKIAogICAoaWYgKHN0cmluZz0gcmVnZXhwICIiKQogICAg ICAgIiIKQEAgLTQ2MTEsMTEgKzU2NjgsNiBAQAogCQkocmVnZXhwLXNhbnMtZXNjYXBlcyAoc3Vi c3RyaW5nIHJlZ2V4cCAxKSkpCiAgICAgICA7OyBFeGNsdWRlIGZpcnN0IGNoYXIsIGJ1dCBtYWlu dGFpbiBjb3VudDoKICAgICAgIChyZWdleHAtc2Fucy1lc2NhcGVzIChzdWJzdHJpbmcgcmVnZXhw IDEpIHN1Y2Nlc3NpdmUtYmFja3NsYXNoZXMpKSkpCi07OztfICA+IG15LXJlZ2lvbi1hY3RpdmUt cCAoKQotKGRlZm1hY3JvIG15LXJlZ2lvbi1hY3RpdmUtcCAoKQotICAoaWYgKGZib3VuZHAgJ3Jl Z2lvbi1hY3RpdmUtcCkKLSAgICAgICcocmVnaW9uLWFjdGl2ZS1wKQotICAgICdtYXJrLWFjdGl2 ZSkpCiA7OztfICAtIGFkZC1ob29rIGRlZmluaXRpb24gZm9yIGRpdmVyZ2VudCBlbWFjc2VuCiA7 OztfICAgPiBhZGQtaG9vayAoaG9vayBmdW5jdGlvbiAmb3B0aW9uYWwgYXBwZW5kKQogKGlmIChu b3QgKGZib3VuZHAgJ2FkZC1ob29rKSkKQEAgLTQ2MzYsMTcgKzU2ODgsMzAgQEAKIAkgICAgICAg KGlmIGFwcGVuZAogCQkgICAobmNvbmMgKHN5bWJvbC12YWx1ZSBob29rKSAobGlzdCBmdW5jdGlv bikpCiAJCSAoY29ucyBmdW5jdGlvbiAoc3ltYm9sLXZhbHVlIGhvb2spKSkpKSkpCis7OztfICA+ IHN1YnN0LWNoYXItaW4tc3RyaW5nIGlmIG5lY2Vzc2FyeQorKGlmIChub3QgKGZib3VuZHAgJ3N1 YnN0LWNoYXItaW4tc3RyaW5nKSkKKyAgICAoZGVmdW4gc3Vic3QtY2hhci1pbi1zdHJpbmcgKGZy b21jaGFyIHRvY2hhciBzdHJpbmcgJm9wdGlvbmFsIGlucGxhY2UpCisgICAgICAiUmVwbGFjZSBG Uk9NQ0hBUiB3aXRoIFRPQ0hBUiBpbiBTVFJJTkcgZWFjaCB0aW1lIGl0IG9jY3Vycy4KK1VubGVz cyBvcHRpb25hbCBhcmd1bWVudCBJTlBMQUNFIGlzIG5vbi1uaWwsIHJldHVybiBhIG5ldyBzdHJp bmcuIgorICAgICAgKGxldCAoKGkgKGxlbmd0aCBzdHJpbmcpKQorICAgICAgICAgICAgKG5ld3N0 ciAoaWYgaW5wbGFjZSBzdHJpbmcgKGNvcHktc2VxdWVuY2Ugc3RyaW5nKSkpKQorICAgICAgICAo d2hpbGUgKD4gaSAwKQorICAgICAgICAgIChzZXRxIGkgKDEtIGkpKQorICAgICAgICAgIChpZiAo ZXEgKGFyZWYgbmV3c3RyIGkpIGZyb21jaGFyKQorICAgICAgICAgICAgICAoYXNldCBuZXdzdHIg aSB0b2NoYXIpKSkKKyAgICAgICAgbmV3c3RyKSkpCisKIDs7O18gIDogbXktbWFyay1tYXJrZXIg dG8gYWNjb21tb2RhdGUgZGl2ZXJnZW50IGVtYWNzZW46CiAoZGVmdW4gbXktbWFyay1tYXJrZXIg KCZvcHRpb25hbCBmb3JjZSBidWZmZXIpCiAgICJBY2NvbW1vZGF0ZSB0aGUgZGlmZmVyZW50IHNp Z25hdHVyZSBmb3IgYG1hcmstbWFya2VyJyBhY3Jvc3MgRW1hY3Nlbi4KIAotWEVtYWNzIHRha2Vz IHR3byBvcHRpb25hbCBhcmdzLCB3aGlsZSBHTlUgRW1hY3MgZG9lcyBub3QsCitYRW1hY3MgdGFr ZXMgdHdvIG9wdGlvbmFsIGFyZ3MsIHdoaWxlIG1haW5saW5lIEdOVSBFbWFjcyBkb2VzIG5vdCwK IHNvIHBhc3MgdGhlbSBhbG9uZyB3aGVuIGFwcHJvcHJpYXRlLiIKLSAgKGlmIChmZWF0dXJlcCAn eGVtYWNzKQorICAoaWYgKHN0cmluZy1tYXRjaCAiIFhFbWFjcyAiIGVtYWNzLXZlcnNpb24pCiAg ICAgICAobWFyay1tYXJrZXIgZm9yY2UgYnVmZmVyKQogICAgIChtYXJrLW1hcmtlcikpKQogCi07 OztfICM5IFVuZGVyIGRldmVsb3BtZW50Cis7OztfICMxMCBVbmRlciBkZXZlbG9wbWVudAogOzs7 XyAgPiBhbGxvdXQtYnVsbGV0LWlzZWFyY2ggKCZvcHRpb25hbCBidWxsZXQpCiAoZGVmdW4gYWxs b3V0LWJ1bGxldC1pc2VhcmNoICgmb3B0aW9uYWwgYnVsbGV0KQogICAiSXNlYXJjaCBcKHJlZ2V4 cCkgZm9yIHRvcGljIHdpdGggYnVsbGV0IEJVTExFVC4iCg== ------=_Part_7826_6405744.1128205995879 Content-Type: text/plain; name="allout-ChangeLog.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="allout-ChangeLog.txt" MjAwNS0wOS0zMCAgS2VuIE1hbmhlaW1lciAgPGtlbi5tYW5oZWltZXJAZ21haWwuY29tPgoKCSog YWxsb3V0LmVsOiBvbW5pYnVzIGNoYW5nZXMKCgkgIC0gbmV3IHN1YnN5c3RlbSBzdXBwb3J0aW5n IGVhc3kgZ3BnIHRvcGljIGVuY3J5cHRpb24vZGVjcnlwdGlvbi4KCgkgICAgc2FsaWVudCBmZWF0 dXJlczoKCgkgICAgLSBib3RoIHB1YmxpYy0gYW5kIHN5bW1ldHJpYy1rZXkgbW9kZXMgYXJlIHN1 cHBvcnRlZC4KCSAgICAtIGVuY3J5cHRpb24gYmVpbmcgb24gYSBwZXItdG9waWMgYmFzaXMgbWVh bnMgeW91IGNhbgoJICAgICAgaW50ZXJzcGVyc2UgZW5jcnlwdGVkIGFuZCBjbGVhci10ZXh0IGRh dGEgaW4gYSBzaW5nbGUgZmlsZQoJICAgICAgdG8geW91ciBoZWFydCdzIGNvbnRlbnQuCgkgICAg LSB1c2VyLXByb3ZpZGVkIHN5bW1ldHJpYy1rZXkgaGludHMsIHdpdGggY29uc2lzdGVuY3kKCSAg ICAgIHZlcmlmaWNhdGlvbiB0byBoZWxwIHVzZXIgYXZvaWQgY29uZnVzaW9uCgkgICAgLSB0aW1l LWxpbWl0ZWQga2V5IHJldXNlLCBhIGxhIChhbmQgdXNpbmcpIG1haWxjcnlwdCdzCgkgICAgICBt Yy1wYXNzd2QtdGltZW91dAoJICAgIC0gd3JpdGUtZmlsZS1ob29rIGFuZCBhdXRvLXNhdmUtaG9v ayBhY3Rpdml0aWVzIHRvIHN1cHBvcnQgYXV0bwoJICAgICAgZW5jcnlwdGlvbiBvZiBwZW5kaW5n IHRvcGljcyBvbiBzYXZlOyBwcm92aXNpb24gdG8gc2tpcAoJICAgICAgY3VycmVudGx5LWVkaXRl ZCB0b3BpYyB0byBhdm9pZCBlZGl0aW5nIGRpc3R1cmJhbmNlCgoJICAgIHRvcGljIGVuY3J5cHRp b24gZnVuY3Rpb25hbGl0eSBkZXBlbmRzIG9uIGJvdGggbWFpbGNyeXB0IGFuZAoJICAgIGNyeXB0 KysgcGFja2FnZXMuICAobm9uLWVuY3J5cHRpb24gYWxsb3V0IGZ1bmN0aW9uYWxpdHkgaXMgbm90 CgkgICAgZGlzcnVwdGVkIGlmIGVpdGhlciBtYWlsY3J5cHQgb3IgY3J5cHQrKyBhcmUgYWJzZW50 LikKCgkgICAgZG9jc3RyaW5nIGZvciBgYWxsb3V0LXRvZ2dsZS1jdXJyZW50LXN1YnRyZWUtZW5j cnlwdGlvbicKCSAgICBhbmQgY3VzdG9taXphdGlvbiB2YXJpYWJsZXMgcHJvdmlkZSBkZXRhaWxl ZCBkZXNjcmlwdGlvbi4KCgkgICAgY29kZSBjaGFuZ2VzOgoKCSAgICBuZXcgYXV0b2xvYWRzIG9m IGNyeXB0KysgYW5kIG1haWxjcnlwdCByb3V0aW5lcywgYWxsIGZvcgoJICAgIGVuY3J5cHRpb24g ZnVuY3Rpb25hbGl0eS4KCgkgICAgJ2FsbG91dCBjdXN0b21pemF0aW9uIHN1Ymdyb3VwIG5vdyBw b3NpdGlvbmVkIGluICdvdXRsaW5lcwoJICAgIGdyb3VwIChpbnN0ZWFkIG9mIHByaW9yICdlZGl0 aW5nIGdyb3VwKQoKCSAgICBjZW50cmFsIHRvcGljLWVuY3J5cHRpb24gZW50cnkgcG9pbnQ6Cgkg ICAgKG91dGxpbmUtdG9nZ2xlLWN1cnJlbnQtc3VidHJlZS1lbmNyeXB0aW9uKQoKCSAgICBvdGhl ciBuZXcgZW5jcnlwdGlvbiByb3V0aW5lczoKCSAgICAoYWxsb3V0LWVuY3J5cHQtc3RyaW5nLCBh bGxvdXQtZW5jcnlwdGlvbi1wcm9kdWNlLXdvcmstYnVmZmVyLAoJICAgIGFsbG91dC1lbmNyeXB0 ZWQtdG9waWMtcCwgYWxsb3V0LWVuY3J5cHRlZC10ZXh0LXR5cGUsCgkgICAgYWxsb3V0LW1jLWFj dGl2YXRlLXBhc3N3ZCwKCSAgICBhbGxvdXQtY3JlYXRlLWVuY3J5cHRpb24ta2V5LXZlcmlmaWVy LAoJICAgIGFsbG91dC1zaXR1YXRlLWVuY3J5cHRpb24ta2V5LXZlcmlmaWVyLAoJICAgIGFsbG91 dC1nZXQtZW5jcnlwdGlvbi1rZXktdmVyaWZpZXIsIGFsbG91dC12ZXJpZnkta2V5LAoJICAgIGFs bG91dC1uZXh0LXRvcGljLXBlbmRpbmctZW5jcnlwdGlvbiwKCSAgICBhbGxvdXQtZW5jcnlwdC1k ZWNyeXB0ZWQsIGFsbG91dC1lbmNyeXB0ZWQtdHlwZS1wcmVmaXgpCgoJICAgIG5ldyBjdXN0b21p emF0aW9uIHZhcmlhYmxlczoKCSAgICAob3V0bGluZS10b3BpYy1lbmNyeXB0aW9uLWJ1bGxldCwK CSAgICBvdXRsaW5lLWRlZmF1bHQtZW5jcnlwdGlvbi1zY2hlbWUsCgkgICAgb3V0bGluZS1rZXkt dmVyaWZpZXItaGFuZGxpbmcsIG91dGxpbmUta2V5LWhpbnQtaGFuZGxpbmcsCgkgICAgb3V0bGlu ZS1lbmNyeXB0LXVuZW5jcnlwdGVkLW9uLXNhdmVzKQoKCSAgICBuZXcgb3BlcmF0aW9uYWwgdmFy aWFibGVzOgoJICAgIChhbGxvdXQtZmlsZS1rZXktdmVyaWZpZXItc3RyaW5nLCBhbGxvdXQtZW5j cnlwdGlvbi1zY2hlbWUsCgkgICAgYWxsb3V0LWtleS12ZXJpZmllci1zdHJpbmcsIGFsbG91dC1r ZXktaGludC1zdHJpbmcsCgkgICAgYWxsb3V0LWFmdGVyLXNhdmUtZGVjcnlwdCkKCgkgICAgbmV3 IGhvb2sgZnVuY3Rpb25zIGZvciBhdXRvLWVuY3J5cHRpb24gb2YgcGVuZGluZyB0b3BpY3M6Cgkg ICAgKGFsbG91dC13cml0ZS1maWxlLWhvb2staGFuZGxlciwgYWxsb3V0LWF1dG8tc2F2ZS1ob29r LWhhbmRsZXIsCgkgICAgYWxsb3V0LWFmdGVyLXNhdmVzLWhhbmRsZXIpCgoJICAgIChhbGxvdXQt cG9zdC1jb21tYW5kLWJ1c2luZXNzKTogZG8gYWxsb3V0LWFmdGVyLXNhdmUtZGVjcnlwdAoKCSAg LSBhZGRlZCBtZWNoYW5pc20gZm9yIGFkZGluZyBhbmQgYWRqdXN0aW5nIHNldHRpbmdzIG9mIEVt YWNzIGZpbGUKCSAgICB2YXJpYWJsZXMuCgoJICAgIChhbGxvdXQtZW5hYmxlLWZpbGUtdmFyaWFi bGUtYWRqdXN0bWVudCk6IGN1c3RvbSB2YXIgdG8gZW5hYmxlCgkgICAgbWVjaGFuaXNtCgkgICAg KGFsbG91dC1hZGp1c3QtZmlsZS12YXJpYWJsZSwgYWxsb3V0LWZpbGUtdmFycy1zZWN0aW9uLWRh dGEpOgoJICAgIG1lY2hhbmlzbSBpbXBsZW1lbnRhdGlvbgoJICAgIChvdXRsaW5laWZ5LXN0aWNr eSk6IHVzZSBmaWxlIHZhcnMgbWVjaGFuaXNtCgoJICAtIHJlcGxhY2VkIGJyb2tlbiBtZWNoYW5p c20gZm9yIGluaGliaXRpb24gb2YgY29uY2VhbGVkLXRleHQgZWRpdHMKCgkgICAgdXNpbmcgcmVh ZC1vbmx5IHRleHQgaW5zdGVhZCBvZiBiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucywKCSAgICBiZWNh dXNlIHRoZSBsYXR0ZXIgY2FuIG5vIGxvbmdlciB2ZXRvIHRoZSBjaGFuZ2VzIHdpdGhvdXQgYmVp bmcKCSAgICBkaXNhYmxlZC4gIHJlYWQtb25seSB0ZXh0IGlzIG1vcmUgc3VpdGFibGUgYW5kIGxl c3MKCSAgICBjb21wbGljYXRlZCwgYW55d2F5LgoKCSAgICAoaXQgYWxzbyBub3RpY2FibHkgc2xv d3MgbWFzc2l2ZSBleHBvc3VyZSBjaGFuZ2VzLCBidXQgaQoJICAgIGNvbnNpZGVyIHRoZSBwZXJm b3JtYW5jZSBhY2NlcHRhYmxlLiAgZWcsIGkgaGF2ZSBibGFua2V0CgkgICAgYXV0by1leHBvc3Vy ZSBzZXQgZm9yIG15IGRhaWx5LW5vdGVzIGxvZywgd2hpY2ggaGFzIHJlYWwtd29ybGQKCSAgICBp bnRyaWNhY3kgaW4gYSAxLjEgTWIsIDcwMDAgdG9waWMgb3V0bGluZSwgYW5kIGhhdmUgbm8gcHJv YmxlbXMKCSAgICB3b3JraW5nIHdpdGggaXQgb24gYSAyMDAgTWhaIHdpbmRvd3MgbGFwdG9wLikK CgkgICAgKGFsbG91dC1pbmhpYml0LXByb3RlY3Rpb24sIGFsbG91dC1kdXJpbmctd3JpdGUtY3Vl LAoJICAgIGFsbG91dC1vdmVycmlkZS1wcm90ZWN0LCBhbGxvdXQtYmVmb3JlLWNoYW5nZS1wcm90 ZWN0KTogcmVtb3ZlZAoKCSAgICAoYWxsb3V0LWZsYWctcmVnaW9uLCBhbGxvdXQtb3Blbi10b3Bp Yyk6IHJldmlzZWQgdG8gYWRqdXN0CgkgICAgcmVhZC1vbmx5IHRleHQKCgkgICAgKGFsbG91dC1v cGVuLWxpbmUtbm90LXJlYWQtb25seSk6IGFkZGVkIHRvIGZhY2lsaXRhdGUgcmVhZC1vbmx5Cgkg ICAgdGV4dCBiYXNlZCBwcm90ZWN0aW9uCgoJICAgIChhbGxvdXQta2lsbC1saW5lKTogcmV2aXNl ZCB0byBhZGp1c3QgcmVhZC1vbmx5IHRleHQsIGNsdWUgdGhlCgkgICAgdXNlciBhYm91dCB0aGUg aW5oaWJpdGlvbgoKCSAgLSAoYWxsb3V0LXVucHJvdGVjdGVkKTogcm9idXN0aWZpZWQgd2l0aCBh biB1bndpbmQtcHJvdGVjdAoKCSAgLSBkaXNhbGxvdyBtYW51YWxseSBzaGlmdGluZyBhIHRvcGlj IGRlZXBlciB0aGFuIHRoZSBvZmZzcHJpbmcKCSAgICBkZXB0aCBvZiB0aGUgcHJldmlvdXMgdG9w aWMgLSBhdm9pZGluZyBjb25mdXNpbmcgImNvbnRhaW5tZW50CgkgICAgZGlzY29udGludWl0aWVz IgoKCSAgICAoYWxsb3V0LXNoaWZ0LWluLCBhbGxvdXQtc2hpZnQtb3V0KQoKCSAgLSBmaXhlZCBy ZXRlbnRpb24gb2YgYm9keSByZWxhdGl2ZSBoYW5naW5nIGluZGVudCBkdXJpbmcKCSAgICBwcm9t b3Rpb24gb2YgY29sbGFwc2VkIGJvZGllcwoKCSAgICAoYWxsb3V0LXJlaW5kZW50LWJvZGllcykK CgkgIC0gbWFkZSBpdCBlYXN5IHRvIG9wZW4gbmV3IHRvcGljIHdpdGggc2FtZSBidWxsZXQgYXMg Y3VycmVudAoJICAgIHRvcGljIC0gdG9waWMgY3JlYXRpb24gZnVuY3Rpb25zIHByb3ZpZGVkIHdp dGggYW55IHVuaXZlcnNhbAoJICAgIGFyZ3VtZW50IHByb3Zva2VzIG5vdyBwcm9tcHQgZm9yIGJ1 bGxldCwgZGVmYXVsdGluZyB0byB0aGUKCSAgICBidWxsZXQgb2YgdGhlIHByZXZpb3VzIHRvcGlj LiAgdmVyeSBlcmdvbm9taWMuCgoJICAgIChhbGxvdXQtb3Blbi10b3BpYykKCgkgIC0gKGFsbG91 dC1wbGFpbi1idWxsZXRzLXN0cmluZywgYWxsb3V0LWRpc3RpbmN0aXZlLWJ1bGxldHMtc3RyaW5n KToKCSAgICBwbGFpbiBidWxsZXQgYWx0ZXJuYXRlcyAnLicJIHBlcmlvZCBhbmQgJywnIGNvbW1h IG9ubHkuICBhbGwKCSAgICBvdGhlciBidWxsZXRzIGFyZSByZWxlZ2F0ZWQgdG8gc3BlY2lhbCBz dGF0dXMgKGJ1dAoJICAgIGN1c3RvbWl6YWJsZSkKCgkgIC0gKGFsbG91dC1lbmQtb2YtZW50cnkp OiByZW5hbWVkIGZyb20gJ2FsbG91dC1lbmQtb2YtY3VycmVudC1lbnRyeQoJICAgIHNpbmNlIGl0 IGFjdHVhbGx5IG9wZXJhdGVzIHcuci50LiBtb3N0IGltbWVkaWF0ZWx5IGNvbnRhaW5pbmcKCSAg ICBlbnRyeSwgdmlzaWJsZSBvciBub3QKCgkgICAgKGFsbG91dC1oaWRlLWN1cnJlbnQtZW50cnks IGFsbG91dC1zaG93LWN1cnJlbnQtZW50cnkpOiB1c2UgdGhlCgkgICAgcmV2aXNlZCB2ZXJzaW9u CgoJICAtIChhbGxvdXQtb2xkLWV4cG9zZS10b3BpYyk6IHNvbGlkaWZ5IGRlcHJlY2F0aW9uLgoK CSAgLSAoYWxsb3V0LWVuZC1vZi1zdWJ0cmVlKTogYWRkZWQsIHNvIHdlIGNhbiBzcGFuIGNvbmNl YWxlZCBhcwoJICAgIHdlbGwgYXMgdmlzaWJsZSB0b3BpY3MuCgkgICAgKGFsbG91dC1lbmQtb2Yt Y3VycmVudC1zdWJ0cmVlKTogdXNlIGBhbGxvdXQtZW5kLW9mLXN1YnRyZWUnLgoKCSAgLSAoYWxs b3V0LWVuZC1vZi1jdXJyZW50LWhlYWRpbmcpOiB0d2Vha2VkIHRvIGp1c3QgcmVzcGVjdCB0aGUK CSAgICBmaXJzdCBsaW5lCgoJICAtIChhbGxvdXQtZ2V0LWJvZHktdGV4dCk6IGFkZGVkCgoJICAt IChhbGxvdXQtYXNjZW5kLXRvLWRlcHRoLCBhbGxvdXQtYXNjZW5kKTogcG9zaXRpb24gYXQgZW5k IG9mCgkgICAgcHJlZml4IHdoZW4gaW52b2tlZCBpbnRlcmFjdGl2ZWx5CgoJICAtIChhbGxvdXQt dXAtY3VycmVudC1sZXZlbCk6IHVzZSBgaW50ZXJhY3RpdmUtcCcKCgkgIC0gKGFsbG91dC1tb2Rl LCBhbGxvdXQtaW5pdCk6IG1pc2NlbGxhbmVvdXMgZG9jc3RyaW5nIGFuZAoJICAgIG9wZXJhdGlv bmFsIHJlZmluZW1lbnRzLCBhcyB3ZWxsIGFzIGhvb2t1cHMgb2YgbmV3IGVuY3J5cHRpb24KCSAg ICBzdHVmZgoKCSAgLSBjb21tZW50cyBhbmQgcm91dGluZSBuYW1lcyBiZXR0ZXIgZGlzdGluZ3Vp c2ggYmV0d2VlbjoKCSAgICAtIHRvcGljIGJvZHkgLSB0aGUgdGV4dCBjb250YWluZWQgYWZ0ZXIg YSBoZWFkZXIKCSAgICAtIHRvcGljIGhlYWRlciAtIHRoZSBmaXJzdCBsaW5lLCBiZWZvcmUgdGhl IGJvZHkKCSAgICAtIHRvcGljIGVudHJ5IC0gdGhlIGhlYWRlciwgYm9keSwgYW5kIG9mZnNwcmlu ZwoKCSAgLSAoYWxsb3V0LWJlZ2lubmluZy1vZi1jdXJyZW50LWVudHJ5KTogbm93IHdvcmtzIGFz IGFkdmVydGlzZWQKCgkgIC0gKGFsbG91dC1lbmQtb2YtY3VycmVudC1lbnRyeSk6IHJlbGlldmVk IG9mIHN1cGVyZmx1b3VzCgkgICAgYWxsb3V0LXNob3ctZW50cnkKCgkgIC0gKGFsbG91dC1pc2Vh cmNoLXJlY3RpZmljYXRpb24pOiByZWZpbmUgY29uZGl0aW9uIGZvciBpc2VhcmNoaW5nCgkgICAg KGFsbG91dC1pc2VhcmNoLWFib3J0LCBhbGxvdXQtZW53cmFwLWlzZWFyY2gpCgoJICAtIHJlY29u Y2lsZWQgd2l0aCBkaXN0cmlidXRlZCBhbGxvdXQuZWwgMS42MSAoY3VycmVudCBDVlMgdmVyc2lv bgoJICAgIGFzIG9mIDA5LzMwLzIwMDUpLCBpbmNsdWRpbmcgaW50ZXJhY3RpdmUtcCBmaXhlcywg dHlwbyBhbmQKCSAgICBjb2Rpbmcgc3R5bGUgZml4ZXMsIGNoYW5nZSBvZiBmdW5jdGlvbiBwcmVm aXggdG8gImFsbG91dC0iLCBldGMsCgkgICAgYW5kIGZpeGVkIHByb2JsZW0gY3JlYXRlZCBpbiBv dXRsaW5lIHlhbmtpbmcgZHVlIHRvIHRoZQoJICAgIGludGVyYWN0aXZlLXAgZml4ZXMKCgkgIC0g cmVsb2NhdGVkIHNvbWUgbWFjcm9zCgkgICAgKGFsbG91dC1mbGFnLXJlZ2lvbiwgbXktcmVnaW9u LWFjdGl2ZS1wKQoKCSAgLSByZWZpbmVkIG1hbnkgZG9jc3RyaW5ncywgaW5jbHVkaW5nIGFueXRo aW5nIGZyb20gY29ycmVjdGluZwoJICAgIHR5cG9zIHRvIGNvbmNlcHR1YWwgY2xhcmlmaWNhdGlv biBhbmQgY29ycmVjdGlvbgoKCSAgLSAoYWxsb3V0LXRpdGxlKTogZmFsbGJhY2sgdGl0bGUgaXMg JyhidWZmZXItbmFtZSknLCBub3QKCSAgICBub24tZXhpc3RpbmcgJyhjdXJyZW50LWJ1ZmZlci1u YW1lKScKCgkgIC0gKHN1YnN0LWNoYXItaW4tc3RyaW5nKTogZGVmaW5lIGlmIGFic2VudCAoZm9y IHNvbWUgeGVtYWNzIHZlcnNpb25zKQoKCSAgLSBjb3JyZWN0ZWQgY29tbWVudGFyeSAna2V5d29y ZHMnIHRvIGxlZ2l0aW1hdGUgb25lcwoKCSAgLSB1cGRhdGVkIGNvbWVudGFyeSBhdXRob3IgaW5m byAodXNpbmcgbXkgY3VycmVudCBlbWFpbCBhZGRyZXNzLAoJICAgIG9ic2N1cmlmaWVkKQo= ------=_Part_7826_6405744.1128205995879 Content-Type: text/plain; name="allout-news.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="allout-news.txt" KiogYWxsb3V0IChleHRlbnNpdmUgb3V0bGluZSBuYXZpZ2F0aW9uIGFuZCBhdXRob3JpbmcgbW9k ZSksIHNpZ25pZmljYW50bHkKICAgdXBkYXRlZDoKCiAtIHRvcGljIGNyeXB0b2dyYXBoeSBhZGRl ZCwgZW5hYmxpbmcgZWFzeSBncGcgdG9waWMgZW5jcnlwdGlvbiBhbmQKICAgZGVjcnlwdGlvbi4g IHBlci10b3BpYyBiYXNpcyBlbmFibGVzIGludGVyc3BlcnNpbmcgZW5jcnlwdGVkLXRleHQgYW5k CiAgIGNsZWFyLXRleHQgd2l0aGluIGEgc2luZ2xlIGZpbGUgdG8geW91ciBoZWFydHMgY29udGVu dCwgdXNpbmcgc3ltbWV0cmljCiAgIGFuZC9vciBwdWJsaWMga2V5IG1vZGVzLiAgdGltZS1saW1p dGVkIGtleSBjYWNoaW5nLCB1c2VyLXByb3ZpZGVkCiAgIHN5bW1ldHJpYyBrZXkgaGludGluZyBh bmQgY29uc2l0ZW5jeSB2ZXJpZmljYXRpb24sIGF1dG8tZW5jcnlwdGlvbiBvZgogICBwZW5kaW5n IHRvcGljcyBvbiBzYXZlLCBhbmQgbW9yZSwgbWFrZSBpdCBlYXN5IHRvIHVzZSBlbmNyeXB0aW9u IGluCiAgIHBvd2VyZnVsIHdheXMuCgogLSBtYW55IHN1YnN0YW50aWFsIGZpeGVzIGFuZCByZWZp bmVtZW50cywgaW5jbHVkaW5nOgoKICAgLSByZXBhaXJlZCBpbmhpYml0aW9uIG9mIGluYWR2ZXJ0 YW50IGVkaXRzIHRvIGNvbmNlYWxlZCB0ZXh0CiAgIC0gcmVwYWlyZWQgcmV0ZW50aW9uIG9mIHRv cGljIGJvZHkgaGFuZ2luZyBpbmRlbnQgdXBvbiB0b3BpYyBkZXB0aCBzaGlmdHMKICAgLSBwcmV2 ZW50ICJjb250YWlubWVudCBkaXNjb250aW51aXRpZXMiIHdoZXJlIGEgdG9waWMgaXMgc2hpZnRl ZCBkZWVwZXIKICAgICB0aGFuIHRoZSBvZmZzcHJpbmctZGVwdGggb2YgaXRzJyBjb250YWluZXIK ICAgLSBlYXN5IHRvIGFkb3B0IHRoZSBkaXN0aW5jdGl2ZSBidWxsZXQgb2YgYSB0b3BpYyBpbiBh IHRvcGljIGNyZWF0ZWQKICAgICByZWxhdGl2ZSB0byBpdCwgb3Igc2VsZWN0IGEgbmV3IG9uZSwg b3IgdXNlIHRoZSBjb21tb24gdG9waWMgYnVsbGV0CiAgIC0gcGxhaW4gYnVsbGV0cywgYnkgZGVm YXVsdCwgbm93IGFsdGVybmF0ZSBiZXR3ZWVuIG9ubHkgdHdvIGNoYXJhY3RlcnMKICAgICAoJy4n IGFuZCAnLCcpLCB5aWVsZGluZyBsZXNzIGNsdXR0ZXJlZCBvdXRsaW5lcy4KICAgLSBtYW55IGlu dGVybmFsIGZpeGVzLgo= ------=_Part_7826_6405744.1128205995879 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ------=_Part_7826_6405744.1128205995879--