From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.devel Subject: Side Windows Date: Thu, 22 Sep 2016 11:07:24 +0200 Message-ID: <57E39F4C.7010208@gmx.at> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060509000507030204070605" X-Trace: blaine.gmane.org 1474536415 30985 195.159.176.226 (22 Sep 2016 09:26:55 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 22 Sep 2016 09:26:55 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 22 11:26:48 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bn0H1-0005Gg-Hk for ged-emacs-devel@m.gmane.org; Thu, 22 Sep 2016 11:26:32 +0200 Original-Received: from localhost ([::1]:34032 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bn0Gz-0003bo-QH for ged-emacs-devel@m.gmane.org; Thu, 22 Sep 2016 05:26:29 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:32893) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmzyq-0003vw-CE for emacs-devel@gnu.org; Thu, 22 Sep 2016 05:07:49 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bmzyj-0007Ko-2A for emacs-devel@gnu.org; Thu, 22 Sep 2016 05:07:43 -0400 Original-Received: from mout.gmx.net ([212.227.17.22]:59985) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bmzyi-0007Kc-GI for emacs-devel@gnu.org; Thu, 22 Sep 2016 05:07:36 -0400 Original-Received: from [192.168.1.100] ([212.95.7.104]) by mail.gmx.com (mrgmx101) with ESMTPSA (Nemesis) id 0MbbWD-1bWHuF1YRx-00IzRk for ; Thu, 22 Sep 2016 11:07:34 +0200 X-Provags-ID: V03:K0:Hp3UzrrtzGXeHGbNSdtQy5GMaIGRzhtjanCNNqIh8Lg4BA0zFwN tU4CtQTml5VFmWquHlVmfqMFfwabGpqmZiYkjlq9Vh2PrQcVF3YuDF3wbrE3Mkr2UZT1tB/ uGeyDtgXCu0I800iZAqE6gajsmWRFRmYRSGeGgFZpSc1xZ35sECIuwFwfL4VzNznO5jRKHB NbFS4LJXKlifMlsUig7Fg== X-UI-Out-Filterresults: notjunk:1;V01:K0:7amyCDwa2bw=:I1EPJDm5GVqlSg6WpNnr0p yiBTLeMRfHu2G1u6lNwufBN+AGHvT6ayJ3LBvzTMXEAhPS3kgpVH25K/y2lesbY9VgfmG9szB b4XH0fK71TwDgXHIJGFlVqqFIcNhwtemIdCODVRadcGTlDORmYkDn56nkt6RFjBYC3Nv9G9Ew s+4Bc5uOyNzmo30TOW/M8upCY9ilrw3TBibpnH/nT7LJLgTNs5O7mSQ72BeXDnnY8SUgwP+YX 5wzdk5dIi7ua26XKyd3ZR+39e2mR4NUCk3C0eUy9xhwwfjs9tuJnqsHImuefwsCg0x3KitTb1 aK36IwJcttFwmlNlW8dpRhcA0F9nYOk4ty4J3GbpTAoXr9HxZR0s5rWW3+jWX/A90ASQ35T1/ UM4Zzvak2peZyfySRgz2oqLfe/zmS7z9eXh3MEP7ZQcUpW8lqXZHWYWouB9i6ZU9jRxJQBVld Y2jfjV2HPEmO7q+6inWQLGJDXyudDcSto6ssimP7xfRQYvElbmCeXVcmH0kF3nxnl6UowZ4vO fIxfg9IKQeKPyL2ineSFdxxFKWwDstyQ+xHc4d1mSnOyf7U8M4Rc0HX9/Dn2tGHWBe4C9pMEB JkBXB46q4E5eBKD/i1tI9oupgVnYkwggcJwT2CZCkOQiR2q9ati0QKHlf1KtilUtfEUFIIuZ1 UqpI7rxFBuhREXAE0/EVrNGRpanKikrrZqmg6XmDbx82WaxDrlLYWu4rZmGfXaMM0LrIUUGe7 ROrKwcYrm+ERub38GkWQKBlbz4IoNVn8lwXllpPoxdIGIrPI/wNDCfFx3+aKfiAtHfwmIWC2 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.17.22 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:207684 Archived-At: This is a multi-part message in MIME format. --------------060509000507030204070605 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit The attached patch fixes some longstanding bugs/issues with side windows and provides the lacking documentation. Comments welcome. Thanks, martin --------------060509000507030204070605 Content-Type: text/plain; charset=windows-1252; name="side-windows.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="side-windows.diff" LS0tIGEvZG9jL2xpc3ByZWYvZWxpc3AudGV4aQorKysgYi9kb2MvbGlzcHJlZi9lbGlzcC50 ZXhpCkBAIC0xMDM4LDYgKzEwMzgsNyBAQCBUb3AKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGEgc3BlY2lmaWMgd2luZG93LgogKiBRdWl0dGluZyBXaW5kb3dzOjogICAgICAg IEhvdyB0byByZXN0b3JlIHRoZSBzdGF0ZSBwcmlvciB0byBkaXNwbGF5aW5nIGEKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci4KKyogU2lkZSBXaW5kb3dzOjogICAg ICAgICAgICBTcGVjaWFsIHdpbmRvd3Mgb24gYSBmcmFtZSdzIHNpZGVzLgogKiBXaW5kb3cg UG9pbnQ6OiAgICAgICAgICAgIEVhY2ggd2luZG93IGhhcyBpdHMgb3duIGxvY2F0aW9uIG9m IHBvaW50LgogKiBXaW5kb3cgU3RhcnQgYW5kIEVuZDo6ICAgIEJ1ZmZlciBwb3NpdGlvbnMg aW5kaWNhdGluZyB3aGljaCB0ZXh0IGlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbi1zY3JlZW4gaW4gYSB3aW5kb3cuCkBAIC0xMDUxLDYgKzEwNTIsMTQgQEAgVG9wCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpc3BsYXkgZ29pbmcgcGFzdCBhIGNl cnRhaW4gcG9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB3aW5kb3cg Y29uZmlndXJhdGlvbiBjaGFuZ2VzLgoKK1NpZGUgV2luZG93cworCisqIERpc3BsYXlpbmcg QnVmZmVycyBpbiBTaWRlIFdpbmRvd3M6OiBBbiBhY3Rpb24gZnVuY3Rpb24gZm9yIGRpc3Bs YXlpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnMgaW4gc2lkZSB3 aW5kb3dzLgorKiBTaWRlIFdpbmRvdyBPcHRpb25zIGFuZCBGdW5jdGlvbnM6OiBGdXJ0aGVy IHR1bmluZyBvZiBzaWRlIHdpbmRvd3MuCisqIEZyYW1lIExheW91dHMgd2l0aCBTaWRlIFdp bmRvd3M6OiBTZXR0aW5nIHVwIGZyYW1lIGxheW91dHMgd2l0aCBzaWRlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3aW5kb3dzLgorCiBGcmFtZXMKCiAqIENyZWF0aW5nIEZy YW1lczo6ICAgICAgICAgQ3JlYXRpbmcgYWRkaXRpb25hbCBmcmFtZXMuCmRpZmYgLS1naXQg YS9kb2MvbGlzcHJlZi93aW5kb3dzLnRleGkgYi9kb2MvbGlzcHJlZi93aW5kb3dzLnRleGkK aW5kZXggM2M5ZGYwYi4uYzMyNmI3YyAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvd2luZG93 cy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL3dpbmRvd3MudGV4aQpAQCAtMzMsNiArMzMsNyBA QCBXaW5kb3dzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHNwZWNpZmljIHdp bmRvdy4KICogUXVpdHRpbmcgV2luZG93czo6ICAgICAgICBIb3cgdG8gcmVzdG9yZSB0aGUg c3RhdGUgcHJpb3IgdG8gZGlzcGxheWluZyBhCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBidWZmZXIuCisqIFNpZGUgV2luZG93czo6ICAgICAgICAgICAgU3BlY2lhbCB3aW5k b3dzIG9uIGEgZnJhbWUncyBzaWRlcy4KICogV2luZG93IFBvaW50OjogICAgICAgICAgICBF YWNoIHdpbmRvdyBoYXMgaXRzIG93biBsb2NhdGlvbiBvZiBwb2ludC4KICogV2luZG93IFN0 YXJ0IGFuZCBFbmQ6OiAgICBCdWZmZXIgcG9zaXRpb25zIGluZGljYXRpbmcgd2hpY2ggdGV4 dCBpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb24tc2NyZWVuIGluIGEgd2lu ZG93LgpAQCAtMTI3NSw5ICsxMjc2LDEyIEBAIERlbGV0aW5nIFdpbmRvd3MKIEBkZWZmbiBD b21tYW5kIGRlbGV0ZS13aW5kb3cgJm9wdGlvbmFsIHdpbmRvdwogVGhpcyBmdW5jdGlvbiBy ZW1vdmVzIEB2YXJ7d2luZG93fSBmcm9tIGRpc3BsYXkgYW5kIHJldHVybnMKIEBjb2Rle25p bH0uICBJZiBAdmFye3dpbmRvd30gaXMgb21pdHRlZCBvciBAY29kZXtuaWx9LCBpdCBkZWZh dWx0cyB0bwotdGhlIHNlbGVjdGVkIHdpbmRvdy4gIElmIGRlbGV0aW5nIHRoZSB3aW5kb3cg d291bGQgbGVhdmUgbm8gbW9yZQotd2luZG93cyBpbiB0aGUgd2luZG93IHRyZWUgKGUuZy4s IGlmIGl0IGlzIHRoZSBvbmx5IGxpdmUgd2luZG93IGluIHRoZQotZnJhbWUpLCBhbiBlcnJv ciBpcyBzaWduYWxlZC4KK3RoZSBzZWxlY3RlZCB3aW5kb3cuCisKK0lmIGRlbGV0aW5nIHRo ZSB3aW5kb3cgd291bGQgbGVhdmUgbm8gbW9yZSB3aW5kb3dzIGluIHRoZSB3aW5kb3cgdHJl ZQorKGUuZy4sIGlmIGl0IGlzIHRoZSBvbmx5IGxpdmUgd2luZG93IGluIHRoZSBmcmFtZSkg b3IgYWxsIHJlbWFpbmluZword2luZG93cyBvbiBAdmFye3dpbmRvd30ncyBmcmFtZSBhcmUg c2lkZSB3aW5kb3dzIChAcHhyZWZ7U2lkZSBXaW5kb3dzfSksCithbiBlcnJvciBpcyBzaWdu YWxlZC4KCiBCeSBkZWZhdWx0LCB0aGUgc3BhY2UgdGFrZW4gdXAgYnkgQHZhcnt3aW5kb3d9 IGlzIGdpdmVuIHRvIG9uZSBvZiBpdHMKIGFkamFjZW50IHNpYmxpbmcgd2luZG93cywgaWYg YW55LiAgSG93ZXZlciwgaWYgdGhlIHZhcmlhYmxlCkBAIC0xMjg1LDMzICsxMjg5LDM0IEBA IERlbGV0aW5nIFdpbmRvd3MKIHByb3BvcnRpb25hbGx5IGRpc3RyaWJ1dGVkIGFtb25nIGFu eSByZW1haW5pbmcgd2luZG93cyBpbiB0aGUgc2FtZQogd2luZG93IGNvbWJpbmF0aW9uLiAg QHhyZWZ7UmVjb21iaW5pbmcgV2luZG93c30uCgotVGhlIGJlaGF2aW9yIG9mIHRoaXMgZnVu Y3Rpb24gbWF5IGJlIGFsdGVyZWQgYnkgdGhlIHdpbmRvdyBwYXJhbWV0ZXJzCi1vZiBAdmFy e3dpbmRvd30sIHNvIGxvbmcgYXMgdGhlIHZhcmlhYmxlCi1AY29kZXtpZ25vcmUtd2luZG93 LXBhcmFtZXRlcnN9IGlzIEBjb2Rle25pbH0uICBJZiB0aGUgdmFsdWUgb2YKLXRoZSBAY29k ZXtkZWxldGUtd2luZG93fSB3aW5kb3cgcGFyYW1ldGVyIGlzIEBjb2Rle3R9LCB0aGlzIGZ1 bmN0aW9uCi1pZ25vcmVzIGFsbCBvdGhlciB3aW5kb3cgcGFyYW1ldGVycy4gIE90aGVyd2lz ZSwgaWYgdGhlIHZhbHVlIG9mIHRoZQotQGNvZGV7ZGVsZXRlLXdpbmRvd30gd2luZG93IHBh cmFtZXRlciBpcyBhIGZ1bmN0aW9uLCB0aGF0IGZ1bmN0aW9uIGlzCi1jYWxsZWQgd2l0aCB0 aGUgYXJndW1lbnQgQHZhcnt3aW5kb3d9LCBpbiBsaWV1IG9mIHRoZSB1c3VhbCBhY3Rpb24g b2YKLUBjb2Rle2RlbGV0ZS13aW5kb3d9LiAgT3RoZXJ3aXNlLCB0aGlzIGZ1bmN0aW9uIG9i ZXlzIHRoZQotQGNvZGV7d2luZG93LWF0b219IG9yIEBjb2Rle3dpbmRvdy1zaWRlfSB3aW5k b3cgcGFyYW1ldGVyLCBpZiBhbnkuCi1AeHJlZntXaW5kb3cgUGFyYW1ldGVyc30uCitUaGUg YmVoYXZpb3Igb2YgdGhpcyBmdW5jdGlvbiBtYXkgYmUgYWx0ZXJlZCBieSB0aGUgd2luZG93 IHBhcmFtZXRlcnMgb2YKK0B2YXJ7d2luZG93fSwgc28gbG9uZyBhcyB0aGUgdmFyaWFibGUg QGNvZGV7aWdub3JlLXdpbmRvdy1wYXJhbWV0ZXJzfSBpcworQGNvZGV7bmlsfS4gIElmIHRo ZSB2YWx1ZSBvZiB0aGUgQGNvZGV7ZGVsZXRlLXdpbmRvd30gd2luZG93IHBhcmFtZXRlcgor aXMgQGNvZGV7dH0sIHRoaXMgZnVuY3Rpb24gaWdub3JlcyBhbGwgb3RoZXIgd2luZG93IHBh cmFtZXRlcnMuCitPdGhlcndpc2UsIGlmIHRoZSB2YWx1ZSBvZiB0aGUgQGNvZGV7ZGVsZXRl LXdpbmRvd30gd2luZG93IHBhcmFtZXRlciBpcworYSBmdW5jdGlvbiwgdGhhdCBmdW5jdGlv biBpcyBjYWxsZWQgd2l0aCB0aGUgYXJndW1lbnQgQHZhcnt3aW5kb3d9LCBpbgorbGlldSBv ZiB0aGUgdXN1YWwgYWN0aW9uIG9mIEBjb2Rle2RlbGV0ZS13aW5kb3d9LiAgQHhyZWZ7V2lu ZG93CitQYXJhbWV0ZXJzfS4KIEBlbmQgZGVmZm4KCiBAZGVmZm4gQ29tbWFuZCBkZWxldGUt b3RoZXItd2luZG93cyAmb3B0aW9uYWwgd2luZG93Ci1UaGlzIGZ1bmN0aW9uIG1ha2VzIEB2 YXJ7d2luZG93fSBmaWxsIGl0cyBmcmFtZSwgYnkgZGVsZXRpbmcgb3RoZXIKLXdpbmRvd3Mg YXMgbmVjZXNzYXJ5LiAgSWYgQHZhcnt3aW5kb3d9IGlzIG9taXR0ZWQgb3IgQGNvZGV7bmls fSwgaXQKLWRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCB3aW5kb3cuICBUaGUgcmV0dXJuIHZh bHVlIGlzIEBjb2Rle25pbH0uCi0KLVRoZSBiZWhhdmlvciBvZiB0aGlzIGZ1bmN0aW9uIG1h eSBiZSBhbHRlcmVkIGJ5IHRoZSB3aW5kb3cgcGFyYW1ldGVycwotb2YgQHZhcnt3aW5kb3d9 LCBzbyBsb25nIGFzIHRoZSB2YXJpYWJsZQotQGNvZGV7aWdub3JlLXdpbmRvdy1wYXJhbWV0 ZXJzfSBpcyBAY29kZXtuaWx9LiAgSWYgdGhlIHZhbHVlIG9mCi10aGUgQGNvZGV7ZGVsZXRl LW90aGVyLXdpbmRvd3N9IHdpbmRvdyBwYXJhbWV0ZXIgaXMgQGNvZGV7dH0sIHRoaXMKLWZ1 bmN0aW9uIGlnbm9yZXMgYWxsIG90aGVyIHdpbmRvdyBwYXJhbWV0ZXJzLiAgT3RoZXJ3aXNl LCBpZiB0aGUgdmFsdWUKLW9mIHRoZSBAY29kZXtkZWxldGUtb3RoZXItd2luZG93c30gd2lu ZG93IHBhcmFtZXRlciBpcyBhIGZ1bmN0aW9uLAotdGhhdCBmdW5jdGlvbiBpcyBjYWxsZWQg d2l0aCB0aGUgYXJndW1lbnQgQHZhcnt3aW5kb3d9LCBpbiBsaWV1IG9mIHRoZQotdXN1YWwg YWN0aW9uIG9mIEBjb2Rle2RlbGV0ZS1vdGhlci13aW5kb3dzfS4gIE90aGVyd2lzZSwgdGhp cyBmdW5jdGlvbgotb2JleXMgdGhlIEBjb2Rle3dpbmRvdy1hdG9tfSBvciBAY29kZXt3aW5k b3ctc2lkZX0gd2luZG93IHBhcmFtZXRlciwKLWlmIGFueS4gIEB4cmVme1dpbmRvdyBQYXJh bWV0ZXJzfS4KK1RoaXMgZnVuY3Rpb24gbWFrZXMgQHZhcnt3aW5kb3d9IGZpbGwgaXRzIGZy YW1lLCBkZWxldGluZyBvdGhlciB3aW5kb3dzCithcyBuZWNlc3NhcnkuICBJZiBAdmFye3dp bmRvd30gaXMgb21pdHRlZCBvciBAY29kZXtuaWx9LCBpdCBkZWZhdWx0cyB0bwordGhlIHNl bGVjdGVkIHdpbmRvdy4gIEFuIGVycm9yIGlzIHNpZ25hbGVkIGlmIEB2YXJ7d2luZG93fSBp cyBhIHNpZGUKK3dpbmRvdyAoQHB4cmVme1NpZGUgV2luZG93c30pLiAgVGhlIHJldHVybiB2 YWx1ZSBpcyBAY29kZXtuaWx9LgorCitUaGUgYmVoYXZpb3Igb2YgdGhpcyBmdW5jdGlvbiBt YXkgYmUgYWx0ZXJlZCBieSB0aGUgd2luZG93IHBhcmFtZXRlcnMgb2YKK0B2YXJ7d2luZG93 fSwgc28gbG9uZyBhcyB0aGUgdmFyaWFibGUgQGNvZGV7aWdub3JlLXdpbmRvdy1wYXJhbWV0 ZXJzfSBpcworQGNvZGV7bmlsfS4gIElmIHRoZSB2YWx1ZSBvZiB0aGUgQGNvZGV7ZGVsZXRl LW90aGVyLXdpbmRvd3N9IHdpbmRvdworcGFyYW1ldGVyIGlzIEBjb2Rle3R9LCB0aGlzIGZ1 bmN0aW9uIGlnbm9yZXMgYWxsIG90aGVyIHdpbmRvdworcGFyYW1ldGVycy4gIE90aGVyd2lz ZSwgaWYgdGhlIHZhbHVlIG9mIHRoZSBAY29kZXtkZWxldGUtb3RoZXItd2luZG93c30KK3dp bmRvdyBwYXJhbWV0ZXIgaXMgYSBmdW5jdGlvbiwgdGhhdCBmdW5jdGlvbiBpcyBjYWxsZWQg d2l0aCB0aGUKK2FyZ3VtZW50IEB2YXJ7d2luZG93fSwgaW4gbGlldSBvZiB0aGUgdXN1YWwg YWN0aW9uIG9mCitAY29kZXtkZWxldGUtb3RoZXItd2luZG93c30uICBAeHJlZntXaW5kb3cg UGFyYW1ldGVyc30uCisKK0Fsc28sIGlmIEBjb2Rle2lnbm9yZS13aW5kb3ctcGFyYW1ldGVy c30gaXMgQGNvZGV7bmlsfSwgdGhpcyBmdW5jdGlvbgorZG9lcyBub3QgZGVsZXRlIGFueSB3 aW5kb3cgd2hvc2UgQGNvZGV7bm8tZGVsZXRlLW90aGVyLXdpbmRvd30gcGFyYW1ldGVyCitp cyBub24tQGNvZGV7bmlsfS4KIEBlbmQgZGVmZm4KCiBAZGVmZm4gQ29tbWFuZCBkZWxldGUt d2luZG93cy1vbiAmb3B0aW9uYWwgYnVmZmVyLW9yLW5hbWUgZnJhbWUKQEAgLTI1NzQsNyAr MjU3OSwxMiBAQCBEaXNwbGF5IEFjdGlvbiBGdW5jdGlvbnMKIGZyb20gQGNvZGV7ZGlzcGxh eS1idWZmZXJ9IGluIHRoaXMgY2FzZS4KIEBlbmQgZGVmdW4KCi1UbyBpbGx1c3RyYXRlIHRo ZSB1c2Ugb2YgYWN0aW9uIGZ1bmN0aW9ucywgY29uc2lkZXIgdGhlIGZvbGxvd2luZworSWYg dGhlIEB2YXJ7YWxpc3R9IGFyZ3VtZW50IG9mIGFueSBvZiB0aGVzZSBmdW5jdGlvbnMgY29u dGFpbnMgYQorQGNvZGV7d2luZG93LXBhcmFtZXRlcnN9IGVudHJ5LCBAY29kZXtkaXNwbGF5 LWJ1ZmZlcn0gYXNzaWducyB0aGUKK2VsZW1lbnRzIG9mIHRoZSBhc3NvY2lhdGVkIHZhbHVl IGFzIHdpbmRvdyBwYXJhbWV0ZXJzIG9mIHRoZSBjaG9zZW4KK3dpbmRvdy4KKworICAgVG8g aWxsdXN0cmF0ZSB0aGUgdXNlIG9mIGFjdGlvbiBmdW5jdGlvbnMsIGNvbnNpZGVyIHRoZSBm b2xsb3dpbmcKIGV4YW1wbGUuCgogQGV4YW1wbGUKQEAgLTMwNjgsNiArMzA3OCwyNzggQEAg UXVpdHRpbmcgV2luZG93cwogQGVuZCBkZWZvcHQKCgorQG5vZGUgU2lkZSBXaW5kb3dzCitA c2VjdGlvbiBTaWRlIFdpbmRvd3MKK0BjaW5kZXggc2lkZSB3aW5kb3dzCitAY2luZGV4IG1h aW4gd2luZG93CitAY2luZGV4IG1haW4gd2luZG93IG9mIGEgZnJhbWUKKworU2lkZSB3aW5k b3dzIGFyZSBzcGVjaWFsIHdpbmRvd3MgcG9zaXRpb25lZCBhdCBhbnkgb2YgdGhlIGZvdXIg c2lkZXMgb2YKK2EgZnJhbWUncyByb290IHdpbmRvdyAoQHB4cmVme1dpbmRvd3MgYW5kIEZy YW1lc30pLiAgSW4gcHJhY3RpY2UsIHRoaXMKK21lYW5zIHRoYXQgdGhlIGFyZWEgb2YgdGhl IGZyYW1lJ3Mgcm9vdCB3aW5kb3cgaXMgc3ViZGl2aWRlZCBpbnRvIGEgbWFpbgord2luZG93 IGFuZCBhIG51bWJlciBvZiBzaWRlIHdpbmRvd3Mgc3Vycm91bmRpbmcgdGhhdCBtYWluIHdp bmRvdy4gIFRoZQorbWFpbiB3aW5kb3cgaXMgZWl0aGVyIGEgYGBub3JtYWwnJyBsaXZlIHdp bmRvdyBvciBzcGVjaWZpZXMgdGhlIGFyZWEKK2NvbnRhaW5pbmcgYWxsIHRoZSBub3JtYWwg d2luZG93cy4KKworICAgSW4gdGhlaXIgbW9zdCBzaW1wbGUgZm9ybSBvZiB1c2UsIHNpZGUg d2luZG93cyBhbGxvdyB0byBkaXNwbGF5CitzcGVjaWZpYyBidWZmZXJzIGFsd2F5cyBpbiB0 aGUgc2FtZSBhcmVhIG9mIGEgZnJhbWUuICBIZW5jZSB0aGV5IGNhbiBiZQorcmVnYXJkZWQg YXMgYSBnZW5lcmFsaXphdGlvbiBvZiB0aGUgY29uY2VwdCBwcm92aWRlZCBieQorQGNvZGV7 ZGlzcGxheS1idWZmZXItYXQtYm90dG9tfSAoQHB4cmVme0Rpc3BsYXkgQWN0aW9uIEZ1bmN0 aW9uc30pIHRvCit0aGUgcmVtYWluaW5nIHNpZGVzIG9mIGEgZnJhbWUuICBXaXRoIHN1aXRh YmxlIGN1c3RvbWl6YXRpb25zLCBob3dldmVyLAorc2lkZSB3aW5kb3dzIGNhbiBiZSBhbHNv IHVzZWQgdG8gcHJvdmlkZSBmcmFtZSBsYXlvdXRzIHNpbWlsYXIgdG8gdGhvc2UKK2ZvdW5k IGluIHNvLWNhbGxlZCBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50cyAoSURF cykuCisKK0BtZW51CisqIERpc3BsYXlpbmcgQnVmZmVycyBpbiBTaWRlIFdpbmRvd3M6OiBB biBhY3Rpb24gZnVuY3Rpb24gZm9yIGRpc3BsYXlpbmcKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ1ZmZlcnMgaW4gc2lkZSB3aW5kb3dzLgorKiBTaWRlIFdpbmRvdyBPcHRp b25zIGFuZCBGdW5jdGlvbnM6OiBGdXJ0aGVyIHR1bmluZyBvZiBzaWRlIHdpbmRvd3MuCisq IEZyYW1lIExheW91dHMgd2l0aCBTaWRlIFdpbmRvd3M6OiBTZXR0aW5nIHVwIGZyYW1lIGxh eW91dHMgd2l0aCBzaWRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dz LgorQGVuZCBtZW51CisKKworQG5vZGUgRGlzcGxheWluZyBCdWZmZXJzIGluIFNpZGUgV2lu ZG93cworQHN1YnNlY3Rpb24gRGlzcGxheWluZyBCdWZmZXJzIGluIFNpZGUgV2luZG93cwor CitUaGUgZm9sbG93aW5nIGFjdGlvbiBmdW5jdGlvbiBmb3IgQGNvZGV7ZGlzcGxheS1idWZm ZXJ9IChAcHhyZWZ7RGlzcGxheQorQWN0aW9uIEZ1bmN0aW9uc30pIGNyZWF0ZXMgb3IgcmV1 c2VzIGEgc2lkZSB3aW5kb3cgZm9yIGRpc3BsYXlpbmcgdGhlCitzcGVjaWZpZWQgYnVmZmVy LgorCitAZGVmdW4gZGlzcGxheS1idWZmZXItaW4tc2lkZS13aW5kb3cgYnVmZmVyIGFsaXN0 CitUaGlzIGZ1bmN0aW9uIGRpc3BsYXlzIEB2YXJ7YnVmZmVyfSBpbiBhIHNpZGUgd2luZG93 IG9mIHRoZSBzZWxlY3RlZAorZnJhbWUuICBAdmFye2FsaXN0fSBpcyBhbiBhc3NvY2lhdGlv biBsaXN0IG9mIHN5bWJvbHMgYW5kIHZhbHVlcyBhcyBmb3IKK0Bjb2Rle2Rpc3BsYXktYnVm ZmVyfS4gIFRoZSBmb2xsb3dpbmcgc3ltYm9scyBpbiBAdmFye2FsaXN0fSBhcmUgc3BlY2lh bAorZm9yIHRoaXMgZnVuY3Rpb246CisKK0B0YWJsZSBAY29kZQorQGl0ZW0gc2lkZQorRGVu b3RlcyB0aGUgc2lkZSBvZiB0aGUgZnJhbWUgd2hlcmUgdGhlIHdpbmRvdyBzaGFsbCBiZSBs b2NhdGVkLiAgVmFsaWQKK3ZhbHVlcyBhcmUgQGNvZGV7bGVmdH0sIEBjb2Rle3RvcH0sIEBj b2Rle3JpZ2h0fSBhbmQgQGNvZGV7Ym90dG9tfS4gIElmCit1bnNwZWNpZmllZCwgdGhlIHdp bmRvdyBpcyBsb2NhdGVkIGF0IHRoZSBib3R0b20gb2YgdGhlIGZyYW1lLgorCitAaXRlbSBz bG90CitEZW5vdGVzIGEgc2xvdCBhdCB0aGUgc3BlY2lmaWVkIHNpZGUgd2hlcmUgdG8gbG9j YXRlIHRoZSB3aW5kb3cuICBBCit2YWx1ZSBvZiB6ZXJvIG1lYW5zIHRvIHByZWZlcmFibHkg cG9zaXRpb24gdGhlIHdpbmRvdyBpbiB0aGUgbWlkZGxlIG9mCit0aGUgc3BlY2lmaWVkIHNp ZGUuICBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zIHRvIHVzZSBhIHNsb3QgcHJlY2VkaW5nCiso dGhhdCBpcywgYWJvdmUgb3Igb24gdGhlIGxlZnQgb2YpIHRoZSBtaWRkbGUgc2xvdC4gIEEg cG9zaXRpdmUgdmFsdWUKK21lYW5zIHRvIHVzZSBhIHNsb3QgZm9sbG93aW5nICh0aGF0IGlz LCBiZWxvdyBvciBvbiB0aGUgcmlnaHQgb2YpIHRoZQorbWlkZGxlIHNsb3QuICBIZW5jZSwg YWxsIHdpbmRvd3Mgb24gYSBzcGVjaWZpYyBzaWRlIGFyZSBvcmRlcmVkIGJ5IHRoZWlyCitA Y29kZXtzbG90fSB2YWx1ZS4gIElmIHVuc3BlY2lmaWVkLCB0aGUgd2luZG93IGlzIGxvY2F0 ZWQgaW4gdGhlIG1pZGRsZQorb2YgdGhlIHNwZWNpZmllZCBzaWRlLgorQGVuZCB0YWJsZQor CitJZiB5b3Ugc3BlY2lmeSB0aGUgc2FtZSBzbG90IG9uIHRoZSBzYW1lIHNpZGUgZm9yIHR3 byBvciBtb3JlIGRpZmZlcmVudAorYnVmZmVycywgdGhlIGJ1ZmZlciBkaXNwbGF5ZWQgbGFz dCBpcyBzaG93biBpbiB0aGUgY29ycmVzcG9uZGluZyB3aW5kb3cuCitIZW5jZSwgc2xvdHMg Y2FuIGJlIHVzZWQgZm9yIHNoYXJpbmcgdGhlIHNhbWUgc2lkZSB3aW5kb3cgYmV0d2Vlbgor YnVmZmVycy4KKworVGhpcyBmdW5jdGlvbiBpbnN0YWxscyB0aGUgQGNvZGV7d2luZG93LXNp ZGV9IGFuZCBAY29kZXt3aW5kb3ctc2xvdH0KK3BhcmFtZXRlcnMgKEBweHJlZntXaW5kb3cg UGFyYW1ldGVyc30pIGFuZCBtYWtlcyB0aGVtIHBlcnNpc3RlbnQuICBJdAorZG9lcyBub3Qg aW5zdGFsbCBhbnkgb3RoZXIgd2luZG93IHBhcmFtZXRlcnMgdW5sZXNzIHRoZXkgaGF2ZSBi ZWVuCitleHBsaWNpdGx5IHByb3ZpZGVkIHZpYSBhIEBjb2Rle3dpbmRvdy1wYXJhbWV0ZXJz fSBlbnRyeSBpbiBAdmFye2FsaXN0fS4KK0BlbmQgZGVmdW4KKworQnkgZGVmYXVsdCwgc2lk ZSB3aW5kb3dzIGNhbm5vdCBiZSBzcGxpdCB2aWEgQGNvZGV7c3BsaXQtd2luZG93fQorKEBw eHJlZntTcGxpdHRpbmcgV2luZG93c30pLiAgQWxzbywgYSBzaWRlIHdpbmRvdyBpcyBub3Qg cmV1c2VkIG9yIHNwbGl0CitieSBhbnkgYnVmZmVyIGRpc3BsYXkgYWN0aW9uIChAcHhyZWZ7 RGlzcGxheSBBY3Rpb24gRnVuY3Rpb25zfSkgdW5sZXNzCitpdCBpcyBleHBsaWNpdGx5IHNw ZWNpZmllZCBhcyB0YXJnZXQgb2YgdGhhdCBhY3Rpb24uICBOb3RlIGFsc28gdGhhdAorQGNv ZGV7ZGVsZXRlLW90aGVyLXdpbmRvd3N9IGNhbm5vdCBtYWtlIGEgc2lkZSB3aW5kb3cgdGhl IG9ubHkgd2luZG93IG9uCitpdHMgZnJhbWUgKEBweHJlZntEZWxldGluZyBXaW5kb3dzfSku CisKKyAgIE9uY2Ugc2V0IHVwLCBzaWRlIHdpbmRvd3MgYWxzbyBjaGFuZ2UgdGhlIGJlaGF2 aW9yIG9mIHRoZSBjb21tYW5kcworQGNvZGV7c3dpdGNoLXRvLXByZXYtYnVmZmVyfSBhbmQg QGNvZGV7c3dpdGNoLXRvLW5leHQtYnVmZmVyfQorKEBweHJlZntXaW5kb3cgSGlzdG9yeX0p LiAgSW4gcGFydGljdWxhciwgdGhlc2UgY29tbWFuZHMgd2lsbCByZWZyYWluCitmcm9tIHNo b3dpbmcsIGluIGEgc2lkZSB3aW5kb3csIGJ1ZmZlcnMgdGhhdCBoYXZlIG5vdCBiZWVuIGRp c3BsYXllZCBpbgordGhhdCB3aW5kb3cgYmVmb3JlLiAgQW5kLCB0aGV5IHdpbGwgcmVmcmFp biBmcm9tIGhhdmluZyBhIG5vcm1hbCwKK25vbi1zaWRlIHdpbmRvdyBzaG93IGEgYnVmZmVy IHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gYSBzaWRlCit3aW5kb3cuICBB IG5vdGFibGUgZXhjZXB0aW9uIHRvIHRoZSBsYXR0ZXIgcnVsZSBvY2N1cnMgd2hlbiBhbgor YXBwbGljYXRpb24sIGFmdGVyIGRpc3BsYXlpbmcgYSBidWZmZXIsIHJlc2V0cyB0aGF0IGJ1 ZmZlcidzIGxvY2FsCit2YXJpYWJsZXMuCisKKworQG5vZGUgU2lkZSBXaW5kb3cgT3B0aW9u cyBhbmQgRnVuY3Rpb25zCitAc3Vic2VjdGlvbiBTaWRlIFdpbmRvdyBPcHRpb25zIGFuZCBG dW5jdGlvbnMKKworVGhlIGZvbGxvd2luZyB0d28gb3B0aW9ucyBwcm92aWRlIGFkZGl0aW9u YWwgY29udHJvbCBvdmVyIHRoZQorcGxhY2VtZW50IG9mIHNpZGUgd2luZG93cy4KKworQGRl Zm9wdCB3aW5kb3ctc2lkZXMtdmVydGljYWwKK0lmIG5vbi1AY29kZXtuaWx9LCB0aGlzIG1l YW5zIHRoYXQgdGhlIHNpZGUgd2luZG93cyBvbiB0aGUgbGVmdCBhbmQKK3JpZ2h0IG9mIGEg ZnJhbWUgb2NjdXB5IHRoZSBmcmFtZSdzIGZ1bGwgaGVpZ2h0LiAgT3RoZXJ3aXNlLCB0aGUg c2lkZQord2luZG93cyBvbiB0aGUgdG9wIGFuZCBib3R0b20gb2YgdGhlIGZyYW1lIG9jY3Vw eSB0aGUgZnJhbWUncyBmdWxsCit3aWR0aC4gIE5vdGUgdGhhdCBjaGFuZ2luZyB0aGUgdmFs dWUgb2YgdGhpcyB2YXJpYWJsZSBkb2VzIG5vdCBhZmZlY3QKK3RoZSBsYXlvdXQgb2YgZnJh bWVzIGFscmVhZHkgZGlzcGxheWluZyBzaWRlIHdpbmRvd3Mgb24gYXQgbGVhc3QgdHdvCitv cnRob2dvbmFsIHNpZGVzLgorQGVuZCBkZWZvcHQKKworQGRlZm9wdCB3aW5kb3ctc2lkZXMt c2xvdHMKK1RoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2lk ZSB3aW5kb3dzIG9uIGVhY2ggc2lkZSBvZgorYSBmcmFtZS4gIFRoZSB2YWx1ZSBpcyBhIGxp c3Qgb2YgZm91ciBlbGVtZW50cyBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YKK3NpZGUgd2lu ZG93IHNsb3RzIG9uIChpbiB0aGlzIG9yZGVyKSB0aGUgbGVmdCwgdG9wLCByaWdodCBhbmQg Ym90dG9tIG9mCitlYWNoIGZyYW1lLiAgSWYgYW4gZWxlbWVudCBpcyBhIG51bWJlciwgdGhp cyBtZWFucyB0byBkaXNwbGF5IGF0IG1vc3QKK3RoYXQgbWFueSB3aW5kb3dzIG9uIHRoZSBj b3JyZXNwb25kaW5nIHNpZGUuICBJZiBhbiBlbGVtZW50IGlzCitAY29kZXtuaWx9LCB0aGlz IG1lYW5zIHRoZXJlJ3Mgbm8gYm91bmQgb24gdGhlIG51bWJlciBvZiBzbG90cyBvbiB0aGF0 CitzaWRlLgorCitJZiBhbnkgb2YgdGhlIHNwZWNpZmllZCB2YWx1ZXMgaXMgemVybywgbm8g d2luZG93IGNhbiBiZSBjcmVhdGVkIG9uIHRoZQorY29ycmVzcG9uZGluZyBzaWRlLiAgQGNv ZGV7ZGlzcGxheS1idWZmZXItaW4tc2lkZS13aW5kb3d9IHdpbGwgbm90CitzaWduYWwgYW4g ZXJyb3IgaW4gdGhhdCBjYXNlIGJ1dCByZXR1cm4gQGNvZGV7bmlsfS4gIElmIGEgc3BlY2lm aWVkCit2YWx1ZSBqdXN0IGZvcmJpZHMgdGhlIGNyZWF0aW9uIG9mIGFuIGFkZGl0aW9uYWwg c2lkZSB3aW5kb3csIHRoZSBtb3N0CitzdWl0YWJsZSB3aW5kb3cgb24gdGhhdCBzaWRlIGlz IHJldXNlZCBhbmQgbWF5IGhhdmUgaXRzCitAY29kZXt3aW5kb3ctc2xvdH0gcGFyYW1ldGVy IGNoYW5nZWQgYWNjb3JkaW5nbHkuCitAZW5kIGRlZm9wdAorCitXaGVuIGEgZnJhbWUgaGFz IHNpZGUgd2luZG93cywgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtYWlu Cit3aW5kb3cgb2YgdGhhdCBmcmFtZS4KKworQGRlZnVuIHdpbmRvdy1tYWluLXdpbmRvdyAm b3B0aW9uYWwgZnJhbWUKK1RoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbWFpbiB3aW5kb3cg b2YgdGhlIHNwZWNpZmllZCBAdmFye2ZyYW1lfS4gIFRoZQorb3B0aW9uYWwgYXJndW1lbnQg QHZhcntmcmFtZX0gbXVzdCBiZSBhIGxpdmUgZnJhbWUgYW5kIGRlZmF1bHRzIHRvIHRoZQor c2VsZWN0ZWQgb25lLgorCitJZiBAdmFye2ZyYW1lfSBoYXMgbm8gc2lkZSB3aW5kb3dzLCBp dCByZXR1cm5zIEB2YXJ7ZnJhbWV9J3Mgcm9vdAord2luZG93LiAgT3RoZXJ3aXNlLCBpdCBy ZXR1cm5zIGVpdGhlciBhbiBpbnRlcm5hbCBub24tc2lkZSB3aW5kb3cgc3VjaAordGhhdCBh bGwgb3RoZXIgbm9uLXNpZGUgd2luZG93cyBvbiBAdmFye2ZyYW1lfSBkZXNjZW5kIGZyb20g aXQsIG9yIHRoZQorc2luZ2xlIGxpdmUgbm9uLXNpZGUgd2luZG93IG9mIEB2YXJ7ZnJhbWV9 LiAgTm90ZSB0aGF0IHRoZSBtYWluIHdpbmRvdworb2YgYSBmcmFtZSBjYW5ub3QgYmUgZGVs ZXRlZCB2aWEgQGNvZGV7ZGVsZXRlLXdpbmRvd30uCitAZW5kIGRlZnVuCisKK1RoZSBmb2xs b3dpbmcgY29tbWFuZCBpcyBoYW5keSB0byB0b2dnbGUgdGhlIGFwcGVhcmFuY2Ugb2YgYWxs IHNpZGUKK3dpbmRvd3Mgb24gYSBzcGVjaWZpZWQgZnJhbWUuCisKK0BkZWZmbiBDb21tYW5k IHdpbmRvdy10b2dnbGUtc2lkZS13aW5kb3dzICZvcHRpb25hbCBmcmFtZQorVGhpcyBjb21t YW5kIHRvZ2dsZXMgc2lkZSB3aW5kb3dzIG9uIHRoZSBzcGVjaWZpZWQgQHZhcntmcmFtZX0u ICBUaGUKK29wdGlvbmFsIGFyZ3VtZW50IEB2YXJ7ZnJhbWV9IG11c3QgYmUgYSBsaXZlIGZy YW1lIGFuZCBkZWZhdWx0cyB0byB0aGUKK3NlbGVjdGVkIG9uZS4KKworSWYgQHZhcntmcmFt ZX0gaGFzIGF0IGxlYXN0IG9uZSBzaWRlIHdpbmRvdywgdGhpcyBjb21tYW5kIHNhdmVzIHRo ZQorc3RhdGUgb2YgQHZhcntmcmFtZX0ncyByb290IHdpbmRvdyBpbiB0aGUgQHZhcntmcmFt ZX0ncworQGNvZGV7d2luZG93LXN0YXRlfSBmcmFtZSBwYXJhbWV0ZXIgYW5kIGRlbGV0ZXMg YWxsIHNpZGUgd2luZG93cyBvbgorQHZhcntmcmFtZX0gYWZ0ZXJ3YXJkcy4KKworSWYgQHZh cntmcmFtZX0gaGFzIG5vIHNpZGUgd2luZG93IGJ1dCBhIEBjb2Rle3dpbmRvdy1zdGF0ZX0g cGFyYW1ldGVyLAoraXQgdXNlcyB0aGF0IHBhcmFtZXRlcidzIHZhbHVlIHRvIHJlc3RvcmUg dGhlIHNpZGUgd2luZG93cyBvbgorQHZhcntmcmFtZX0gbGVhdmluZyBAdmFye2ZyYW1lfSdz IG1haW4gd2luZG93IGFsb25lLgorCitBbiBlcnJvciBpcyBzaWduYWxlZCBpZiBAdmFye2Zy YW1lfSBoYXMgbm8gc2lkZSB3aW5kb3cgYW5kIG5vIHNhdmVkCitzdGF0ZSBpcyBmb3VuZC4K K0BlbmQgZGVmZm4KKworCitAbm9kZSBGcmFtZSBMYXlvdXRzIHdpdGggU2lkZSBXaW5kb3dz CitAc3Vic2VjdGlvbiBGcmFtZSBMYXlvdXRzIHdpdGggU2lkZSBXaW5kb3dzCisKK1NpZGUg d2luZG93cyBjYW4gYmUgdXNlZCB0byBjcmVhdGUgbW9yZSBjb21wbGV4IGZyYW1lIGxheW91 dHMgbGlrZSB0aG9zZQorcHJvdmlkZWQgYnkgaW50ZWdyYXRlZCBkZXZlbG9wbWVudCBlbnZp cm9ubWVudHMgKElERXMpLiAgSW4gc3VjaAorbGF5b3V0cywgdGhlIGFyZWEgb2YgdGhlIG1h aW4gd2luZG93IGlzIHdoZXJlIHRoZSBub3JtYWwgZWRpdGluZworYWN0aXZpdGllcyB0YWtl IHBsYWNlLiAgU2lkZSB3aW5kb3dzIGFyZSBub3QgY29uY2VpdmVkIGZvciBlZGl0aW5nIGlu Cit0aGUgdXN1YWwgc2Vuc2UuICBSYXRoZXIsIHRoZXkgYXJlIHN1cHBvc2VkIHRvIGRpc3Bs YXkgaW5mb3JtYXRpb24KK2NvbXBsZW1lbnRhcnkgdG8gdGhlIGN1cnJlbnQgZWRpdGluZyBh Y3Rpdml0eSwgbGlrZSBsaXN0cyBvZiBmaWxlcywgdGFncworb3IgYnVmZmVycywgaGVscCBp bmZvcm1hdGlvbiwgc2VhcmNoIG9yIGdyZXAgcmVzdWx0cyBvciBzaGVsbCBvdXRwdXQuCisK KyAgIFRoZSBsYXlvdXQgb2Ygc3VjaCBhIGZyYW1lIG1pZ2h0IGFwcGVhciBhcyBmb2xsb3dz OgorCitAc21hbGxleGFtcGxlCitAZ3JvdXAKKyAgICAgX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KKyAgICB8ICAgICAgICAgICpCdWZmZXIgTGlzdCogICAgICAgICAg ICB8IAorICAgIHxfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3wKKyAgICB8 ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8CisgICAgfCAgKiAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgKiAgfAorICAgIHwgIGQgIHwgICAgICAgICAgICAgICAg ICAgICAgIHwgIFQgIHwKKyAgICB8ICBpICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICBh ICB8CisgICAgfCAgciAgfCAgIE1haW4gV2luZG93IEFyZWEgICAgfCAgZyAgfAorICAgIHwg IGUgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgIHMgIHwKKyAgICB8ICBkICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAqICB8CisgICAgfCAgKiAgfCAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgfAorICAgIHxfX19fX3xfX19fX19fX19fX19fX19fX19fX19fX3xfX19f X3wKKyAgICB8ICpoZWxwKi8qZ3JlcCovICB8ICAqc2hlbGwqLyAgICAgICB8CisgICAgfCAq Q29tcGxldGlvbnMqICAgfCAgKmNvbXBpbGF0aW9uKiAgfAorICAgIHxfX19fX19fX19fX19f X19fX3xfX19fX19fX19fX19fX19fX3wKKyAgICB8ICAgICAgICAgICAgIEVjaG8gQXJlYSAg ICAgICAgICAgICB8CisgICAgfF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f fAorCisKK0BlbmQgZ3JvdXAKK0BlbmQgc21hbGxleGFtcGxlCisKK1RoZSBmb2xsb3dpbmcg ZXhhbXBsZSBpbGx1c3RyYXRlcyBob3cgd2luZG93IHBhcmFtZXRlcnMgKEBweHJlZntXaW5k b3cKK1BhcmFtZXRlcnN9KSBjYW4gYmUgdXNlZCB3aXRoIEBjb2Rle2Rpc3BsYXktYnVmZmVy LWluLXNpZGUtd2luZG93fQorKEBweHJlZntEaXNwbGF5aW5nIEJ1ZmZlcnMgaW4gU2lkZSBX aW5kb3dzfSkgdG8gc2V0IHVwIGNvZGUgZm9yCitwcm9kdWNpbmcgdGhlIGZyYW1lIHNrZXRj aGVkIGFib3ZlLgorCitAZXhhbXBsZQorQGdyb3VwCisoZGVmdmFyIHBhcmFtZXRlcnMKKyAg Jyh3aW5kb3ctcGFyYW1ldGVycyAuICgobm8tb3RoZXItd2luZG93IC4gdCkgKG5vLWRlbGV0 ZS1vdGhlci13aW5kb3cgLiB0KSkpKQorCisoc2V0cSBmaXQtd2luZG93LXRvLWJ1ZmZlci1o b3Jpem9udGFsbHkgdCkKKyhzZXRxIHdpbmRvdy1yZXNpemUtcGl4ZWx3aXNlIHQpCisKKyhz ZXRxCisgZGlzcGxheS1idWZmZXItYWxpc3QKKyBgKCgiXFwqQnVmZmVyIExpc3RcXCoiIGRp c3BsYXktYnVmZmVyLWluLXNpZGUtd2luZG93CisgICAgKHNpZGUgLiB0b3ApIChzbG90IC4g MCkgKHdpbmRvdy1oZWlnaHQgLiBmaXQtd2luZG93LXRvLWJ1ZmZlcikKKyAgICAocHJlc2Vy dmUtc2l6ZSAuIChuaWwgLiB0KSkgLHBhcmFtZXRlcnMpCisgICAoIlxcKlRhZ3MgTGlzdFxc KiIgZGlzcGxheS1idWZmZXItaW4tc2lkZS13aW5kb3cKKyAgICAoc2lkZSAuIHJpZ2h0KSAo c2xvdCAuIDApICh3aW5kb3ctd2lkdGggLiBmaXQtd2luZG93LXRvLWJ1ZmZlcikKKyAgICAo cHJlc2VydmUtc2l6ZSAuICh0IC4gbmlsKSkgLHBhcmFtZXRlcnMpCisgICAoIlxcKlxcKD86 aGVscFxcfGdyZXBcXHxDb21wbGV0aW9uc1xcKVxcKiIgZGlzcGxheS1idWZmZXItaW4tc2lk ZS13aW5kb3cKKyAgICAoc2lkZSAuIGJvdHRvbSkgKHNsb3QgLiAtMSkgKHByZXNlcnZlLXNp emUgLiAobmlsIC4gdCkpICxwYXJhbWV0ZXJzKQorICAgKCJcXCpcXCg/OnNoZWxsXFx8Y29t cGlsYXRpb25cXClcXCoiIGRpc3BsYXktYnVmZmVyLWluLXNpZGUtd2luZG93CisgICAgKHNp ZGUgLiBib3R0b20pIChzbG90IC4gMSkgKHByZXNlcnZlLXNpemUgLiAobmlsIC4gdCkpICxw YXJhbWV0ZXJzKSkpCitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworVGhpcyBzcGVjaWZp ZXMgQGNvZGV7ZGlzcGxheS1idWZmZXItYWxpc3R9IGVudHJpZXMgKEBweHJlZntDaG9vc2lu ZworV2luZG93fSkgZm9yIGJ1ZmZlcnMgd2l0aCBmaXhlZCBuYW1lcy4gIEluIHBhcnRpY3Vs YXIsIGl0IGFza3MgZm9yCitzaG93aW5nIEBmaWxleypCdWZmZXIgTGlzdCp9IHdpdGggYWRq dXN0YWJsZSBoZWlnaHQgYXQgdGhlIHRvcCBvZiB0aGUKK2ZyYW1lIGFuZCBAZmlsZXsqVGFn cyBMaXN0Kn0gd2l0aCBhZGp1c3RhYmxlIHdpZHRoIG9uIHRoZSBmcmFtZSdzIHJpZ2h0Lgor SXQgYWxzbyBhc2tzIGZvciBoYXZpbmcgdGhlIEBmaWxleypoZWxwKn0sIEBmaWxleypncmVw Kn0gYW5kCitAZmlsZXsqQ29tcGxldGlvbnMqfSBidWZmZXJzIHNoYXJlIGEgd2luZG93IG9u IHRoZSBib3R0b20gbGVmdCBzaWRlIG9mCit0aGUgZnJhbWUgYW5kIHRoZSBAZmlsZXsqc2hl bGwqfSBhbmQgQGZpbGV7KmNvbXBpbGF0aW9uKn0gYnVmZmVycyBhcHBlYXIKK2luIGEgd2lu ZG93IG9uIHRoZSBib3R0b20gcmlnaHQgc2lkZSBvZiB0aGUgZnJhbWUuCisKKyAgIE5vdGUg dGhhdCB0aGUgb3B0aW9uIEBjb2Rle2ZpdC13aW5kb3ctdG8tYnVmZmVyLWhvcml6b250YWxs eX0gbXVzdAoraGF2ZSBhIG5vbi1AY29kZXtuaWx9IHZhbHVlIGluIG9yZGVyIHRvIGFsbG93 IGhvcml6b250YWwgYWRqdXN0bWVudCBvZgord2luZG93cy4gIFdlIGFsc28gYWRkZWQgZW50 cmllcyB0aGF0IGFzayBmb3IgcHJlc2VydmluZyB0aGUgaGVpZ2h0IG9mCitzaWRlIHdpbmRv d3MgYXQgdGhlIHRvcCBhbmQgYm90dG9tIG9mIHRoZSBmcmFtZSBhbmQgdGhlIHdpZHRoIG9m IHNpZGUKK3dpbmRvd3MgYXQgdGhlIGxlZnQgb3IgcmlnaHQgb2YgdGhlIGZyYW1lLiAgVG8g YXNzdXJlIHRoYXQgc2lkZSB3aW5kb3dzCityZXRhaW4gdGhlaXIgcmVzcGVjdGl2ZSBzaXpl cyB3aGVuIG1heGltaXppbmcgdGhlIGFzc29jaWF0ZWQgZnJhbWUsIHdlCitoYXZlIGFsc28g c2V0IHRoZSB2YXJpYWJsZSBAY29kZXt3aW5kb3ctcmVzaXplLXBpeGVsd2lzZX0uCitAeHJl ZntSZXNpemluZyBXaW5kb3dzfS4KKworICAgVGhlIGxhc3QgZm9ybSBhbHNvIG1ha2VzIHN1 cmUgdGhhdCBub25lIG9mIHRoZSBzaWRlIHdpbmRvd3MgaXQKK2NyZWF0ZXMgYXJlIGFjY2Vz c2libGUgdmlhIEBrYmR7Qy14IG99IGJ5IGluc3RhbGxpbmcgYQorQGNvZGV7bm8tb3RoZXIt d2luZG93fSBwYXJhbWV0ZXIgZm9yIGVhY2ggb2YgdGhlc2Ugd2luZG93cy4gIEluIGFkZGl0 aW9uCitpdCBhbHNvIG1ha2VzIHN1cmUgdGhhdCBzaWRlIHdpbmRvd3MgYXJlIG5vdCBkZWxl dGVkIHZpYSBAa2Jke0MteCAxfSBieQoraW5zdGFsbGluZyBhIEBjb2Rle25vLWRlbGV0ZS1v dGhlci13aW5kb3d9IHBhcmFtZXRlciBvbiBlYWNoIG9mIHRoZXNlCit3aW5kb3dzLgorCisg ICBTaW5jZSBAY29kZXtkaXJlZH0gYnVmZmVycyBoYXZlIG5vIGZpeGVkIG5hbWVzLCB3ZSB1 c2UgYSBzcGVjaWFsCitmdW5jdGlvbiBAY29kZXtkaXJlZC1kZWZhdWx0LWRpcmVjdG9yeS1v bi1sZWZ0fSBpbiBvcmRlciB0byBkaXNwbGF5IGEKK2xlYW4gZGlyZWN0b3J5IGJ1ZmZlciBv biB0aGUgbGVmdCBzaWRlIG9mIHRoZSBmcmFtZS4KKworQGV4YW1wbGUKK0Bncm91cAorKGRl ZnVuIGRpcmVkLWRlZmF1bHQtZGlyZWN0b3J5LW9uLWxlZnQgKCkKKyAgIkRpc3BsYXkgYGRl ZmF1bHQtZGlyZWN0b3J5JyBpbiBzaWRlIHdpbmRvdyBvbiBsZWZ0LCBoaWRpbmcgZGV0YWls cy4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKGJ1ZmZlciAoZGlyZWQtbm9zZWxlY3Qg ZGVmYXVsdC1kaXJlY3RvcnkpKSkKKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIg KGRpcmVkLWhpZGUtZGV0YWlscy1tb2RlIHQpKQorICAgIChkaXNwbGF5LWJ1ZmZlci1pbi1z aWRlLXdpbmRvdworICAgICBidWZmZXIgYCgoc2lkZSAuIGxlZnQpIChzbG90IC4gMCkKKyAg ICAgICAgICAgICAgKHdpbmRvdy13aWR0aCAuIGZpdC13aW5kb3ctdG8tYnVmZmVyKQorICAg ICAgICAgICAgICAocHJlc2VydmUtc2l6ZSAuICh0IC4gbmlsKSkgLHBhcmFtZXRlcnMpKSkp CitAZW5kIGdyb3VwCitAZW5kIGV4YW1wbGUKKworRXZhbHVhdGluZyB0aGUgcHJlY2VkaW5n IGZvcm1zIGFuZCB0eXBpbmcsIGluIGFueSBvcmRlciwgQGtiZHtNLXgKK2xpc3QtYnVmZmVy c30sIEBrYmR7Qy1oIGZ9LCBAa2Jke00teCBzaGVsbH0sIEBrYmR7TS14IGxpc3QtdGFnc30g YW5kCitAa2Jke00teCBkaXJlZC1kZWZhdWx0LWRpcmVjdG9yeS1vbi1sZWZ0fSBzaG91bGQg bm93IHJlcHJvZHVjZSB0aGUgZnJhbWUKK2xheW91dCBza2V0Y2hlZCBhYm92ZS4KKworCiBA bm9kZSBXaW5kb3cgUG9pbnQKIEBzZWN0aW9uIFdpbmRvd3MgYW5kIFBvaW50CiBAY2luZGV4 IHdpbmRvdyBwb3NpdGlvbgpAQCAtNDI3OSw2ICs0NTYxLDcgQEAgV2luZG93IFBhcmFtZXRl cnMKIHBhcmFtZXRlcnMgcmVzZXQgdG8gQGNvZGV7bmlsfS4gIFRoZSBmb2xsb3dpbmcgdmFy aWFibGUgYWxsb3dzIHlvdSB0bwogb3ZlcnJpZGUgdGhlIHN0YW5kYXJkIGJlaGF2aW9yOgoK K0BjaW5kZXggcGVyc2lzdGVudCB3aW5kb3cgcGFyYW1ldGVycwogQGRlZnZhciB3aW5kb3ct cGVyc2lzdGVudC1wYXJhbWV0ZXJzCiBUaGlzIHZhcmlhYmxlIGlzIGFuIGFsaXN0IHNwZWNp Znlpbmcgd2hpY2ggcGFyYW1ldGVycyBnZXQgc2F2ZWQgYnkKIEBjb2Rle2N1cnJlbnQtd2lu ZG93LWNvbmZpZ3VyYXRpb259IGFuZCBAY29kZXt3aW5kb3ctc3RhdGUtZ2V0fSwgYW5kCkBA IC00MzA4LDEwICs0NTkxLDEwIEBAIFdpbmRvdyBQYXJhbWV0ZXJzCiBAZW5kIGRlZnZhcgoK IFNvbWUgZnVuY3Rpb25zIChub3RhYmx5IEBjb2Rle2RlbGV0ZS13aW5kb3d9LAotQGNvZGV7 ZGVsZXRlLW90aGVyLXdpbmRvd3N9IGFuZCBAY29kZXtzcGxpdC13aW5kb3d9KSwgbWF5IGJl aGF2ZSBzcGVjaWFsbHkKLXdoZW4gdGhlaXIgQHZhcnt3aW5kb3d9IGFyZ3VtZW50IGhhcyBh IHBhcmFtZXRlciBzZXQuICBZb3UgY2FuIG92ZXJyaWRlCi1zdWNoIHNwZWNpYWwgYmVoYXZp b3IgYnkgYmluZGluZyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlIHRvIGEKLW5vbi1AY29kZXtu aWx9IHZhbHVlOgorQGNvZGV7ZGVsZXRlLW90aGVyLXdpbmRvd3N9IGFuZCBAY29kZXtzcGxp dC13aW5kb3d9KSwgbWF5IGJlaGF2ZQorc3BlY2lhbGx5IHdoZW4gdGhlIHdpbmRvdyBzcGVj aWZpZWQgYnkgdGhlaXIgQHZhcnt3aW5kb3d9IGFyZ3VtZW50IGhhcwordGhlIGhvbW9ueW1v dXMgcGFyYW1ldGVyIHNldC4gIFlvdSBjYW4gb3ZlcnJpZGUgc3VjaCBzcGVjaWFsIGJlaGF2 aW9yIGJ5CitiaW5kaW5nIHRoZSBmb2xsb3dpbmcgdmFyaWFibGUgdG8gYSBub24tQGNvZGV7 bmlsfSB2YWx1ZToKCiBAZGVmdmFyIGlnbm9yZS13aW5kb3ctcGFyYW1ldGVycwogSWYgdGhp cyB2YXJpYWJsZSBpcyBub24tQGNvZGV7bmlsfSwgc29tZSBzdGFuZGFyZCBmdW5jdGlvbnMg ZG8gbm90CkBAIC00MzM3LDYgKzQ2MjAsMTAgQEAgV2luZG93IFBhcmFtZXRlcnMKIFRoaXMg cGFyYW1ldGVyIGFmZmVjdHMgdGhlIGV4ZWN1dGlvbiBvZiBAY29kZXtkZWxldGUtb3RoZXIt d2luZG93c30KIChAcHhyZWZ7RGVsZXRpbmcgV2luZG93c30pLgoKK0BpdGVtIEBjb2Rle25v LWRlbGV0ZS1vdGhlci13aW5kb3d9CitUaGlzIHBhcmFtZXRlciBtYXJrcyB0aGUgd2luZG93 IGFzIG5vdCBkZWxldGFibGUgYnkKK0Bjb2Rle2RlbGV0ZS1vdGhlci13aW5kb3dzfSAoQHB4 cmVme0RlbGV0aW5nIFdpbmRvd3N9KS4KKwogQGl0ZW0gQGNvZGV7c3BsaXQtd2luZG93fQog VGhpcyBwYXJhbWV0ZXIgYWZmZWN0cyB0aGUgZXhlY3V0aW9uIG9mIEBjb2Rle3NwbGl0LXdp bmRvd30KIChAcHhyZWZ7U3BsaXR0aW5nIFdpbmRvd3N9KS4KQEAgLTQzODcsNiArNDY3NCwx MCBAQCBXaW5kb3cgUGFyYW1ldGVycwogdGhpcyBwYXJhbWV0ZXIuICBAY29kZXtxdWl0LXJl c3RvcmUtd2luZG93fSBkZWxldGVzIHRoZSBzcGVjaWZpZWQgd2luZG93CiBvbmx5IGlmIGl0 IHN0aWxsIHNob3dzIHRoYXQgYnVmZmVyLgoKK0BpdGVtIEBjb2Rle3dpbmRvdy1zaWRlfSBA Y29kZXt3aW5kb3ctc2xvdH0KK1RoZXNlIHBhcmFtZXRlcnMgYXJlIHVzZWQgZm9yIGltcGxl bWVudGluZyBzaWRlIHdpbmRvd3MgKEBweHJlZntTaWRlCitXaW5kb3dzfSkuCisKIEBpdGVt IEBjb2Rle21pbi1tYXJnaW5zfQogVGhlIHZhbHVlIG9mIHRoaXMgcGFyYW1ldGVyIGlzIGEg Y29ucyBjZWxsIHdob3NlIEBzY3tjYXJ9IGFuZCBAc2N7Y2RyfSwKIGlmIG5vbi1AY29kZXtu aWx9LCBzcGVjaWZ5IHRoZSBtaW5pbXVtIHZhbHVlcyAoaW4gY29sdW1ucykgZm9yIHRoZSBs ZWZ0CkBAIC00NDA5LDggKzQ3MDAsNyBAQCBXaW5kb3cgUGFyYW1ldGVycwogdmVyc2lvbnMg b2YgRW1hY3MuCiBAZW5kIHRhYmxlCgotVGhlcmUgYXJlIGFkZGl0aW9uYWwgcGFyYW1ldGVy cyBAY29kZXt3aW5kb3ctYXRvbX0gYW5kIEBjb2Rle3dpbmRvdy1zaWRlfTsKLXRoZXNlIGFy ZSByZXNlcnZlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucy4KK1Ro ZSBAY29kZXt3aW5kb3ctYXRvbX0gcGFyYW1ldGVyIGlzIHVzZWQgZm9yIGltcGxlbWV0aW5n IGF0b21pYyB3aW5kb3dzLgoKCiBAbm9kZSBXaW5kb3cgSG9va3MKZGlmZiAtLWdpdCBhL2xp c3Avd2luZG93LmVsIGIvbGlzcC93aW5kb3cuZWwKaW5kZXggNjcyOGVhMy4uNzNjNDhiZSAx MDA2NDQKLS0tIGEvbGlzcC93aW5kb3cuZWwKKysrIGIvbGlzcC93aW5kb3cuZWwKQEAgLTcx NCwxOSArNzE0LDIzIEBAIHdpbmRvdy1zaWRlcwoKIChkZWZjdXN0b20gd2luZG93LXNpZGVz LXZlcnRpY2FsIG5pbAogICAiSWYgbm9uLW5pbCwgbGVmdCBhbmQgcmlnaHQgc2lkZSB3aW5k b3dzIGFyZSBmdWxsIGhlaWdodC4KLU90aGVyd2lzZSwgdG9wIGFuZCBib3R0b20gc2lkZSB3 aW5kb3dzIGFyZSBmdWxsIHdpZHRoLiIKK090aGVyd2lzZSwgdG9wIGFuZCBib3R0b20gc2lk ZSB3aW5kb3dzIGFyZSBmdWxsIHdpZHRoLiAgCisKK1NldHRpbmcgdGhpcyB2YXJpYWJsZSBk b2VzIG5vdCBhZmZlY3QgdGhlIGxheW91dCBvZiBmcmFtZXMKK2FscmVhZHkgZGlzcGxheWlu ZyBzaWRlIHdpbmRvd3Mgb24gYXQgbGVhc3QgdHdvIG9ydGhvZ29uYWwKK3NpZGVzLiIKICAg OnR5cGUgJ2Jvb2xlYW4KICAgOmdyb3VwICd3aW5kb3dzCiAgIDp2ZXJzaW9uICIyNC4xIikK CiAoZGVmY3VzdG9tIHdpbmRvdy1zaWRlcy1zbG90cyAnKG5pbCBuaWwgbmlsIG5pbCkKICAg Ik1heGltdW0gbnVtYmVyIG9mIHNpZGUgd2luZG93IHNsb3RzLgotVGhlIHZhbHVlIGlzIGEg bGlzdCBvZiBmb3VyIGVsZW1lbnRzIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZgotc2lkZSB3 aW5kb3cgc2xvdHMgb24gKGluIHRoaXMgb3JkZXIpIHRoZSBsZWZ0LCB0b3AsIHJpZ2h0IGFu ZAotYm90dG9tIHNpZGUgb2YgZWFjaCBmcmFtZS4gIElmIGFuIGVsZW1lbnQgaXMgYSBudW1i ZXIsIHRoaXMgbWVhbnMKLXRvIGRpc3BsYXkgYXQgbW9zdCB0aGF0IG1hbnkgc2lkZSB3aW5k b3dzIG9uIHRoZSBjb3JyZXNwb25kaW5nCi1zaWRlLiAgSWYgYW4gZWxlbWVudCBpcyBuaWws IHRoaXMgbWVhbnMgdGhlcmUncyBubyBib3VuZCBvbiB0aGUKLW51bWJlciBvZiBzbG90cyBv biB0aGF0IHNpZGUuIgorVGhlIHZhbHVlIGlzIGEgbGlzdCBvZiBmb3VyIGVsZW1lbnRzIHNw ZWNpZnlpbmcgdGhlIG1heGltdW0KK251bWJlciBvZiBzaWRlIHdpbmRvd3Mgb24gdGhlIGxl ZnQsIHRvcCwgcmlnaHQgYW5kIGJvdHRvbSBzaWRlIG9mCithbnkgZnJhbWUuICBJZiBhbiBl bGVtZW50IGlzIGEgbnVtYmVyLCB0aGlzIG1lYW5zIHRvIGRpc3BsYXkgYXQKK21vc3QgdGhh dCBtYW55IHNpZGUgd2luZG93cyBvbiB0aGUgY29ycmVzcG9uZGluZyBzaWRlLiAgSWYgYW4K K2VsZW1lbnQgaXMgbmlsLCB0aGlzIG1lYW5zIHRoZXJlJ3Mgbm8gYm91bmQgb24gdGhlIG51 bWJlciBvZgorc2xvdHMgb24gdGhhdCBzaWRlLiIKICAgOnZlcnNpb24gIjI0LjEiCiAgIDpy aXNreSB0CiAgIDp0eXBlCkBAIC03MzQsMzQgKzczOCw0NCBAQCB3aW5kb3ctc2lkZXMtc2xv dHMKICAgICA6dmFsdWUgKG5pbCBuaWwgbmlsIG5pbCkKICAgICAoY2hvaWNlCiAgICAgIDp0 YWcgIkxlZnQiCi0gICAgIDpoZWxwLWVjaG8gIk1heGltdW0gc2xvdHMgb2YgbGVmdCBzaWRl IHdpbmRvdy4iCisgICAgIDpoZWxwLWVjaG8gIk1heGltdW0gbnVtYmVyIG9mIGxlZnQgc2lk ZSB3aW5kb3dzLiIKICAgICAgOnZhbHVlIG5pbAogICAgICA6Zm9ybWF0ICIlW0xlZnQlXSAl dlxuIgogICAgICAoY29uc3QgOnRhZyAiVW5saW1pdGVkIiA6Zm9ybWF0ICIldCIgbmlsKQog ICAgICAoaW50ZWdlciA6dGFnICJOdW1iZXIiIDp2YWx1ZSAyIDpzaXplIDUpKQogICAgIChj aG9pY2UKICAgICAgOnRhZyAiVG9wIgotICAgICA6aGVscC1lY2hvICJNYXhpbXVtIHNsb3Rz IG9mIHRvcCBzaWRlIHdpbmRvdy4iCisgICAgIDpoZWxwLWVjaG8gIk1heGltdW0gbnVtYmVy IG9mIHRvcCBzaWRlIHdpbmRvd3MuIgogICAgICA6dmFsdWUgbmlsCiAgICAgIDpmb3JtYXQg IiVbVG9wJV0gJXZcbiIKICAgICAgKGNvbnN0IDp0YWcgIlVubGltaXRlZCIgOmZvcm1hdCAi JXQiIG5pbCkKICAgICAgKGludGVnZXIgOnRhZyAiTnVtYmVyIiA6dmFsdWUgMyA6c2l6ZSA1 KSkKICAgICAoY2hvaWNlCiAgICAgIDp0YWcgIlJpZ2h0IgotICAgICA6aGVscC1lY2hvICJN YXhpbXVtIHNsb3RzIG9mIHJpZ2h0IHNpZGUgd2luZG93LiIKKyAgICAgOmhlbHAtZWNobyAi TWF4aW11bSBudW1iZXIgb2YgcmlnaHQgc2lkZSB3aW5kb3dzLiIKICAgICAgOnZhbHVlIG5p bAogICAgICA6Zm9ybWF0ICIlW1JpZ2h0JV0gJXZcbiIKICAgICAgKGNvbnN0IDp0YWcgIlVu bGltaXRlZCIgOmZvcm1hdCAiJXQiIG5pbCkKICAgICAgKGludGVnZXIgOnRhZyAiTnVtYmVy IiA6dmFsdWUgMiA6c2l6ZSA1KSkKICAgICAoY2hvaWNlCiAgICAgIDp0YWcgIkJvdHRvbSIK LSAgICAgOmhlbHAtZWNobyAiTWF4aW11bSBzbG90cyBvZiBib3R0b20gc2lkZSB3aW5kb3cu IgorICAgICA6aGVscC1lY2hvICJNYXhpbXVtIG51bWJlciBvZiBib3R0b20gc2lkZSB3aW5k b3dzLiIKICAgICAgOnZhbHVlIG5pbAogICAgICA6Zm9ybWF0ICIlW0JvdHRvbSVdICV2XG4i CiAgICAgIChjb25zdCA6dGFnICJVbmxpbWl0ZWQiIDpmb3JtYXQgIiV0IiBuaWwpCiAgICAg IChpbnRlZ2VyIDp0YWcgIk51bWJlciIgOnZhbHVlIDMgOnNpemUgNSkpKQogICA6Z3JvdXAg J3dpbmRvd3MpCgorKGRlZnZhci1sb2NhbCB3aW5kb3ctc2lkZXMtc2hvd24gbmlsCisgICJO b24tbmlsIGlmIHRoaXMgYnVmZmVyIHdhcyBzaG93biBpbiBhIHNpZGUgd2luZG93IG9uY2Uu CitJZiB0aGlzIHZhcmlhYmxlIGlzIG5vbi1uaWwgaW4gYSBidWZmZXIsIHRoZQorYHN3aXRj aC10by1wcmV2LWJ1ZmZlcicgYW5kIGBzd2l0Y2gtdG8tbmV4dC1idWZmZXInIGZ1bmN0aW9u cword2lsbCByZWZyYWluIHRvIHNob3cgdGhpcyBidWZmZXIgd2l0aGluIHRoZSBtYWluIHdp bmRvdyBhcmVhLgorYGRpc3BsYXktYnVmZmVyLWluLXNpZGUtd2luZG93JyBzZXRzIHRoaXMg dmFyaWFibGUgYXV0b21hdGljYWxseS4KKworS2lsbGluZyBidWZmZXIgbG9jYWwgdmFyaWFi bGVzIGFmdGVyIHNob3dpbmcgdGhlIGJ1ZmZlciBpbiBhIHNpZGUKK3dpbmRvdyBhbm5paGls YXRlcyB0aGUgZWZmZWN0IHByb3ZpZGVkIGJ5IHNldHRpbmcgdGhpcy4iKQorCiAoZGVmdW4g d2luZG93LS1zaWRlLXdpbmRvdy1wICh3aW5kb3cpCiAgICJSZXR1cm4gbm9uLW5pbCBpZiBX SU5ET1cgaXMgYSBzaWRlIHdpbmRvdyBvciB0aGUgcGFyZW50IG9mIG9uZS4iCiAgIChvciAo d2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zaWRlKQpAQCAtNzcxLDE5ICs3ODUs MTggQEAgd2luZG93LS1zaWRlLXdpbmRvdy1wCiAJICAgICAgICh3aW5kb3ctcGFyYW1ldGVy CiAJCSh3aW5kb3ctbGFzdC1jaGlsZCB3aW5kb3cpICd3aW5kb3ctc2lkZSkpKSkpCgotKGRl ZnVuIHdpbmRvdy0tbWFqb3Itbm9uLXNpZGUtd2luZG93ICgmb3B0aW9uYWwgZnJhbWUpCi0g ICJSZXR1cm4gdGhlIG1ham9yIG5vbi1zaWRlIHdpbmRvdyBvZiBmcmFtZSBGUkFNRS4KKyhk ZWZ1biB3aW5kb3ctbWFpbi13aW5kb3cgKCZvcHRpb25hbCBmcmFtZSkKKyAgIlJldHVybiB0 aGUgbWFpbiB3aW5kb3cgb2Ygc3BlY2lmaWVkIEZSQU1FLgogVGhlIG9wdGlvbmFsIGFyZ3Vt ZW50IEZSQU1FIG11c3QgYmUgYSBsaXZlIGZyYW1lIGFuZCBkZWZhdWx0cyB0bwogdGhlIHNl bGVjdGVkIG9uZS4KCi1JZiBGUkFNRSBoYXMgYXQgbGVhc3Qgb25lIHNpZGUgd2luZG93LCB0 aGUgbWFqb3Igbm9uLXNpZGUgd2luZG93Ci1pcyBlaXRoZXIgYW4gaW50ZXJuYWwgbm9uLXNp ZGUgd2luZG93IHN1Y2ggdGhhdCBhbGwgb3RoZXIKLW5vbi1zaWRlIHdpbmRvd3Mgb24gRlJB TUUgZGVzY2VuZCBmcm9tIGl0LCBvciB0aGUgc2luZ2xlIGxpdmUKLW5vbi1zaWRlIHdpbmRv dyBvZiBGUkFNRS4gIElmIEZSQU1FIGhhcyBubyBzaWRlIHdpbmRvd3MsIHJldHVybgotaXRz IHJvb3Qgd2luZG93LiIKK0lmIEZSQU1FIGhhcyBubyBzaWRlIHdpbmRvd3MsIHJldHVybiBG UkFNRSdzIHJvb3Qgd2luZG93LgorT3RoZXJ3aXNlLCByZXR1cm4gZWl0aGVyIGFuIGludGVy bmFsIG5vbi1zaWRlIHdpbmRvdyBzdWNoIHRoYXQKK2FsbCBvdGhlciBub24tc2lkZSB3aW5k b3dzIG9uIEZSQU1FIGRlc2NlbmQgZnJvbSBpdCwgb3IgdGhlCitzaW5nbGUgbGl2ZSBub24t c2lkZSB3aW5kb3cgb2YgRlJBTUUuIgogICAobGV0ICgoZnJhbWUgKHdpbmRvdy1ub3JtYWxp emUtZnJhbWUgZnJhbWUpKQotCW1ham9yIHNpYmxpbmcpCi0gICAgOzsgU2V0IG1ham9yIHRv IHRoZSBfbGFzdF8gd2luZG93IGZvdW5kIGJ5IGB3YWxrLXdpbmRvdy10cmVlJyB0aGF0CisJ bWFpbiBzaWJsaW5nKQorICAgIDs7IFNldCBtYWluIHRvIHRoZSBfbGFzdF8gd2luZG93IGZv dW5kIGJ5IGB3YWxrLXdpbmRvdy10cmVlJyB0aGF0CiAgICAgOzsgaXMgbm90IGEgc2lkZSB3 aW5kb3cgYnV0IGhhcyBhIHNpZGUgd2luZG93IGFzIGl0cyBzaWJsaW5nLgogICAgICh3YWxr LXdpbmRvdy10cmVlCiAgICAgIChsYW1iZGEgKHdpbmRvdykKQEAgLTc5MiwxNCArODA1LDE3 IEBAIHdpbmRvdy0tbWFqb3Itbm9uLXNpZGUtd2luZG93CiAJCSAgICAgKHdpbmRvdy1wYXJh bWV0ZXIgc2libGluZyAnd2luZG93LXNpZGUpKQogCQkoYW5kIChzZXRxIHNpYmxpbmcgKHdp bmRvdy1uZXh0LXNpYmxpbmcgd2luZG93KSkKIAkJICAgICAod2luZG93LXBhcmFtZXRlciBz aWJsaW5nICd3aW5kb3ctc2lkZSkpKQotCSAgICAoc2V0cSBtYWpvciB3aW5kb3cpKSkKKwkg ICAgKHNldHEgbWFpbiB3aW5kb3cpKSkKICAgICAgZnJhbWUgdCAnbm9taW5pKQotICAgIChv ciBtYWpvciAoZnJhbWUtcm9vdC13aW5kb3cgZnJhbWUpKSkpCisgICAgKG9yIG1haW4gKGZy YW1lLXJvb3Qtd2luZG93IGZyYW1lKSkpKQoKLShkZWZ1biB3aW5kb3ctLW1ham9yLXNpZGUt d2luZG93IChzaWRlKQotICAiUmV0dXJuIG1ham9yIHNpZGUgd2luZG93IG9uIFNJREUuCiso ZGVmdW4gd2luZG93LS1tYWtlLW1ham9yLXNpZGUtd2luZG93LW5leHQtdG8gKHNpZGUpCisg ICJSZXR1cm4gd2luZG93IHRvIHNwbGl0IGZvciBtYWtpbmcgYSBtYWpvciBzaWRlIHdpbmRv dy4KIFNJREUgbXVzdCBiZSBvbmUgb2YgdGhlIHN5bWJvbHMgYGxlZnQnLCBgdG9wJywgYHJp Z2h0JyBvcgotYGJvdHRvbScuICBSZXR1cm4gbmlsIGlmIG5vIHN1Y2ggd2luZG93IGV4aXN0 cy4iCitgYm90dG9tJy4KKworVGhpcyBpcyBhbiBhdXhpbGlhcnkgZnVuY3Rpb24gb2YgYHdp bmRvdy0tbWFrZS1tYWpvci1zaWRlLXdpbmRvdycKK2FuZCBtdXN0IG5vdCBiZSBjYWxsZWQg d2hlbiBhIHdpbmRvdyBvbiBTSURFIGV4aXN0cyBhbHJlYWR5LiIKICAgKGxldCAoKHJvb3Qg KGZyYW1lLXJvb3Qtd2luZG93KSkKIAl3aW5kb3cpCiAgICAgOzsgKDEpIElmIGEgd2luZG93 IG9uIHRoZSBvcHBvc2l0ZSBzaWRlIGV4aXN0cywgcmV0dXJuIHRoYXQgd2luZG93J3MKQEAg LTgzOSwzNSArODU1LDM2IEBAIHdpbmRvdy0tbWFqb3Itc2lkZS13aW5kb3cKIAkod2luZG93 LXByZXYtc2libGluZyB3aW5kb3cpKQogICAgICAgICh0IHJvb3QpKSkpKSkKCi0oZGVmdW4g ZGlzcGxheS1idWZmZXItaW4tbWFqb3Itc2lkZS13aW5kb3cgKGJ1ZmZlciBzaWRlIHNsb3Qg Jm9wdGlvbmFsIGFsaXN0KQotICAiRGlzcGxheSBCVUZGRVIgaW4gYSBuZXcgd2luZG93IG9u IFNJREUgb2YgdGhlIHNlbGVjdGVkIGZyYW1lLgorKGRlZnVuIHdpbmRvdy0tbWFrZS1tYWpv ci1zaWRlLXdpbmRvdyAoYnVmZmVyIHNpZGUgc2xvdCAmb3B0aW9uYWwgYWxpc3QpCisgICJE aXNwbGF5IEJVRkZFUiBpbiBhIG5ldyBtYWpvciBzaWRlIHdpbmRvdyBvbiB0aGUgc2VsZWN0 ZWQgZnJhbWUuCiBTSURFIG11c3QgYmUgb25lIG9mIGBsZWZ0JywgYHRvcCcsIGByaWdodCcg b3IgYGJvdHRvbScuICBTTE9UCiBzcGVjaWZpZXMgdGhlIHNsb3QgdG8gdXNlLiAgQUxJU1Qg aXMgYW4gYXNzb2NpYXRpb24gbGlzdCBvZgogc3ltYm9scyBhbmQgdmFsdWVzIGFzIHBhc3Nl ZCB0byBgZGlzcGxheS1idWZmZXItaW4tc2lkZS13aW5kb3cnLgotVGhpcyBmdW5jdGlvbiBt YXkgYmUgY2FsbGVkIG9ubHkgaWYgbm8gd2luZG93IG9uIFNJREUgZXhpc3RzIHlldC4KLVRo ZSBuZXcgd2luZG93IGF1dG9tYXRpY2FsbHkgYmVjb21lcyB0aGUgXCJtYWpvclwiIHNpZGUg d2luZG93IG9uCi1TSURFLiAgUmV0dXJuIHRoZSBuZXcgd2luZG93LCBuaWwgaWYgaXRzIGNy ZWF0aW9uIHdpbmRvdyBmYWlsZWQuIgorUmV0dXJuIHRoZSBuZXcgd2luZG93LCBuaWwgaWYg aXRzIGNyZWF0aW9uIGZhaWxlZC4KKworVGhpcyBpcyBhbiBhdXhpbGlhcnkgZnVuY3Rpb24g b2YgYGRpc3BsYXktYnVmZmVyLWluLXNpZGUtd2luZG93JworYW5kIG1heSBiZSBjYWxsZWQg b25seSBpZiBubyB3aW5kb3cgb24gU0lERSBleGlzdHMgeWV0LiIKICAgKGxldCogKChsZWZ0 LW9yLXJpZ2h0IChtZW1xIHNpZGUgJyhsZWZ0IHJpZ2h0KSkpCi0JIChtYWpvciAod2luZG93 LS1tYWpvci1zaWRlLXdpbmRvdyBzaWRlKSkKKwkgKG5leHQtdG8gKHdpbmRvdy0tbWFrZS1t YWpvci1zaWRlLXdpbmRvdy1uZXh0LXRvIHNpZGUpKQogCSAob24tc2lkZSAoY29uZAogCQkg ICAoKGVxIHNpZGUgJ3RvcCkgJ2Fib3ZlKQogCQkgICAoKGVxIHNpZGUgJ2JvdHRvbSkgJ2Jl bG93KQogCQkgICAodCBzaWRlKSkpCiAJIDs7IFRoZSBmb2xsb3dpbmcgdHdvIGJpbmRpbmdz IHdpbGwgdGVsbCBgc3BsaXQtd2luZG93JyB0byB0YWtlCi0JIDs7IHRoZSBzcGFjZSBmb3Ig dGhlIG5ldyB3aW5kb3cgZnJvbSBgbWFqb3InIGFuZCBub3QgbWFrZSBhIG5ldwotCSA7OyBw YXJlbnQgd2luZG93IHVubGVzcyBuZWVkZWQuCisJIDs7IHRoZSBzcGFjZSBmb3IgdGhlIG5l dyB3aW5kb3cgZnJvbSB0aGUgc2VsZWN0ZWQgZnJhbWUncyBtYWluCisJIDs7IHdpbmRvdyBh bmQgbm90IG1ha2UgYSBuZXcgcGFyZW50IHdpbmRvdyB1bmxlc3MgbmVlZGVkLgogCSAod2lu ZG93LWNvbWJpbmF0aW9uLXJlc2l6ZSAnc2lkZSkKIAkgKHdpbmRvdy1jb21iaW5hdGlvbi1s aW1pdCBuaWwpCi0JIChuZXcgKHNwbGl0LXdpbmRvdyBtYWpvciBuaWwgb24tc2lkZSkpKQot ICAgICh3aGVuIG5ldwotICAgICAgOzsgSW5pdGlhbGl6ZSBgd2luZG93LXNpZGUnIHBhcmFt ZXRlciBvZiBuZXcgd2luZG93IHRvIFNJREUuCi0gICAgICAoc2V0LXdpbmRvdy1wYXJhbWV0 ZXIgbmV3ICd3aW5kb3ctc2lkZSBzaWRlKQotICAgICAgOzsgSW5zdGFsbCBgd2luZG93LXNs b3QnIHBhcmFtZXRlciBvZiBuZXcgd2luZG93LgotICAgICAgKHNldC13aW5kb3ctcGFyYW1l dGVyIG5ldyAnd2luZG93LXNsb3Qgc2xvdCkKLSAgICAgIDs7IEluc3RhbGwgYGRlbGV0ZS13 aW5kb3cnIHBhcmFtZXRlciB0aHVzIG1ha2luZyBzdXJlIHRoYXQgd2hlbgotICAgICAgOzsg dGhlIG5ldyB3aW5kb3cgaXMgZGVsZXRlZCwgYSBzaWRlIHdpbmRvdyBvbiB0aGUgb3Bwb3Np dGUgc2lkZQotICAgICAgOzsgZG9lcyBub3QgZ2V0IHJlc2l6ZWQuCi0gICAgICAoc2V0LXdp bmRvdy1wYXJhbWV0ZXIgbmV3ICdkZWxldGUtd2luZG93ICdkZWxldGUtc2lkZS13aW5kb3cp CisJICh3aW5kb3cgKHNwbGl0LXdpbmRvdyBuZXh0LXRvIG5pbCBvbi1zaWRlKSkpCisgICAg KHdoZW4gd2luZG93CisgICAgICA7OyBJbml0aWFsaXplIGB3aW5kb3ctc2lkZScgcGFyYW1l dGVyIG9mIG5ldyB3aW5kb3cgdG8gU0lERSBhbmQKKyAgICAgIDs7IG1ha2UgdGhhdCBwYXJh bWV0ZXIgcGVyc2lzdGVudC4KKyAgICAgIChzZXQtd2luZG93LXBhcmFtZXRlciB3aW5kb3cg J3dpbmRvdy1zaWRlIHNpZGUpCisgICAgICAoYWRkLXRvLWxpc3QgJ3dpbmRvdy1wZXJzaXN0 ZW50LXBhcmFtZXRlcnMgJyh3aW5kb3ctc2lkZSAuIHdyaXRhYmxlKSkKKyAgICAgIDs7IElu c3RhbGwgYHdpbmRvdy1zbG90JyBwYXJhbWV0ZXIgb2YgbmV3IHdpbmRvdyBhbmQgbWFrZSB0 aGF0CisgICAgICA7OyBwYXJhbWV0ZXIgcGVyc2lzdGVudC4KKyAgICAgIChzZXQtd2luZG93 LXBhcmFtZXRlciB3aW5kb3cgJ3dpbmRvdy1zbG90IHNsb3QpCisgICAgICAoYWRkLXRvLWxp c3QgJ3dpbmRvdy1wZXJzaXN0ZW50LXBhcmFtZXRlcnMgJyh3aW5kb3ctc2xvdCAuIHdyaXRh YmxlKSkKICAgICAgIDs7IEF1dG8tYWRqdXN0IGhlaWdodC93aWR0aCBvZiBuZXcgd2luZG93 IHVubGVzcyBhIHNpemUgaGFzIGJlZW4KICAgICAgIDs7IGV4cGxpY2l0bHkgcmVxdWVzdGVk LgogICAgICAgKHVubGVzcyAoaWYgbGVmdC1vci1yaWdodApAQCAtODgyLDE1ICs4OTksMTAg QEAgZGlzcGxheS1idWZmZXItaW4tbWFqb3Itc2lkZS13aW5kb3cKIAkJICAgOzsgcm9vdCB3 aW5kb3cuCiAJCSAgIDQpKQogCSAgICAgICBhbGlzdCkpKQotICAgICAgOzsgSW5zdGFsbCBC VUZGRVIgaW4gbmV3IHdpbmRvdyBhbmQgcmV0dXJuIE5FVy4KLSAgICAgICh3aW5kb3ctLWRp c3BsYXktYnVmZmVyIGJ1ZmZlciBuZXcgJ3dpbmRvdyBhbGlzdCAnc2lkZSkpKSkKLQotKGRl ZnVuIGRlbGV0ZS1zaWRlLXdpbmRvdyAod2luZG93KQotICAiRGVsZXRlIHNpZGUgd2luZG93 IFdJTkRPVy4iCi0gIChsZXQgKCh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplCi0JICh3aW5k b3ctcGFyYW1ldGVyICh3aW5kb3ctcGFyZW50IHdpbmRvdykgJ3dpbmRvdy1zaWRlKSkKLQko aWdub3JlLXdpbmRvdy1wYXJhbWV0ZXJzIHQpKQotICAgIChkZWxldGUtd2luZG93IHdpbmRv dykpKQorICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCisgICAgICAgIChzZXRx IHdpbmRvdy1zaWRlcy1zaG93biB0KSkKKyAgICAgIDs7IEluc3RhbGwgQlVGRkVSIGluIG5l dyB3aW5kb3cgYW5kIHJldHVybiBXSU5ET1cuCisgICAgICAod2luZG93LS1kaXNwbGF5LWJ1 ZmZlciBidWZmZXIgd2luZG93ICd3aW5kb3cgYWxpc3QgJ3NpZGUpKSkpCgogKGRlZnVuIGRp c3BsYXktYnVmZmVyLWluLXNpZGUtd2luZG93IChidWZmZXIgYWxpc3QpCiAgICJEaXNwbGF5 IEJVRkZFUiBpbiBhIHNpZGUgd2luZG93IG9mIHRoZSBzZWxlY3RlZCBmcmFtZS4KQEAgLTkw Niw5ICs5MTgsMjcgQEAgZGlzcGxheS1idWZmZXItaW4tc2lkZS13aW5kb3cKICAgdGhlIHNw ZWNpZmllZCBzaWRlLiAgQSBuZWdhdGl2ZSB2YWx1ZSBtZWFucyB1c2UgYSBzbG90CiAgIHBy ZWNlZGluZyAodGhhdCBpcywgYWJvdmUgb3Igb24gdGhlIGxlZnQgb2YpIHRoZSBtaWRkbGUg c2xvdC4KICAgQSBwb3NpdGl2ZSB2YWx1ZSBtZWFucyB1c2UgYSBzbG90IGZvbGxvd2luZyAo dGhhdCBpcywgYmVsb3cgb3IKLSAgb24gdGhlIHJpZ2h0IG9mKSB0aGUgbWlkZGxlIHNsb3Qu ICBUaGUgZGVmYXVsdCBpcyB6ZXJvLiIKLSAgKGxldCAoKHNpZGUgKG9yIChjZHIgKGFzc3Eg J3NpZGUgYWxpc3QpKSAnYm90dG9tKSkKLQkoc2xvdCAob3IgKGNkciAoYXNzcSAnc2xvdCBh bGlzdCkpIDApKSkKKyAgb24gdGhlIHJpZ2h0IG9mKSB0aGUgbWlkZGxlIHNsb3QuICBUaGUg ZGVmYXVsdCBpcyB6ZXJvLgorCitJZiB0aGUgY3VycmVudCBmcmFtZSBzaXplIG9yIHRoZSBz ZXR0aW5ncyBvZiBgd2luZG93LXNpZGVzLXNsb3RzJworZG8gbm90IHBlcm1pdCBtYWtpbmcg YSBuZXcgd2luZG93LCBhIHN1aXRhYmxlIGV4aXN0aW5nIHdpbmRvdyBtYXkKK2JlIHJldXNl ZCBhbmQgaGF2ZSBpdHMgYHdpbmRvdy1zbG90JyBwYXJhbWV0ZXIgdmFsdWUgYWNjb3JkaW5n bHkKK21vZGlmaWVkLgorCitVbmxlc3MgYGRpc3BsYXktYnVmZmVyLW1hcmstZGVkaWNhdGVk JyBpcyBub24tbmlsLCBzb2Z0bHkKK2RlZGljYXRlIHRoZSBzaWRlIHdpbmRvdyB1c2VkIHRv IEJVRkZFUi4gIFJldHVybiBuaWwgaWYgbm8KK3N1aXRhYmxlIHdpbmRvdyBpcyBmb3VuZC4K KworVGhpcyBmdW5jdGlvbiBpbnN0YWxscyB0aGUgYHdpbmRvdy1zaWRlJyBhbmQgYHdpbmRv dy1zbG90JworcGFyYW1ldGVycyBhbmQgbWFrZXMgdGhlbSBwZXJzaXN0ZW50LiAgSXQgbmVp dGhlciBtb2RpZmllcyBBTElTVAorbm9yIGluc3RhbGxzIGFueSBvdGhlciB3aW5kb3cgcGFy YW1ldGVycyB1bmxlc3MgdGhleSBoYXZlIGJlZW4KK2V4cGxpY2l0bHkgcHJvdmlkZWQgdmlh IGEgYHdpbmRvdy1wYXJhbWV0ZXInIGVudHJ5IGluIEFMSVNULiIKKyAgKGxldCogKChzaWRl IChvciAoY2RyIChhc3NxICdzaWRlIGFsaXN0KSkgJ2JvdHRvbSkpCisgICAgICAgICAoc2xv dCAob3IgKGNkciAoYXNzcSAnc2xvdCBhbGlzdCkpIDApKQorICAgICAgICAgKGxlZnQtb3It cmlnaHQgKG1lbXEgc2lkZSAnKGxlZnQgcmlnaHQpKSkKKyAgICAgICAgIDs7IFNvZnRseSBk ZWRpY2F0ZSB3aW5kb3cgdG8gQlVGRkVSIHVubGVzcworICAgICAgICAgOzsgYGRpc3BsYXkt YnVmZmVyLW1hcmstZGVkaWNhdGVkJyBhbHJlYWR5IGFza3MgZm9yIGl0LgorICAgICAgICAg KGRlZGljYXRlZCAob3IgZGlzcGxheS1idWZmZXItbWFyay1kZWRpY2F0ZWQgJ3NpZGUpKSkK ICAgICAoY29uZAogICAgICAoKG5vdCAobWVtcSBzaWRlICcodG9wIGJvdHRvbSBsZWZ0IHJp Z2h0KSkpCiAgICAgICAoZXJyb3IgIkludmFsaWQgc2lkZSAlcyBzcGVjaWZpZWQiIHNpZGUp KQpAQCAtOTQwLDEyICs5NzAsMTIgQEAgZGlzcGxheS1idWZmZXItaW4tc2lkZS13aW5kb3cK CiAgICAgICAoY29uZAogICAgICAgICgoYW5kIChudW1iZXJwIG1heC1zbG90cykgKDw9IG1h eC1zbG90cyAwKSkKLQk7OyBObyBzaWRlLXNsb3RzIGF2YWlsYWJsZSBvbiB0aGlzIHNpZGUu ICBEb24ndCBjcmVhdGUgYW4gZXJyb3IsCisJOzsgTm8gc2lkZS1zbG90cyBhdmFpbGFibGUg b24gdGhpcyBzaWRlLiAgRG9uJ3QgcmFpc2UgYW4gZXJyb3IsCiAJOzsganVzdCByZXR1cm4g bmlsLgogCW5pbCkKICAgICAgICAoKG5vdCB3aW5kb3dzKQotCTs7IE5vIG1ham9yIHdpbmRv dyBleGlzdHMgb24gdGhpcyBzaWRlLCBtYWtlIG9uZS4KLQkoZGlzcGxheS1idWZmZXItaW4t bWFqb3Itc2lkZS13aW5kb3cgYnVmZmVyIHNpZGUgc2xvdCBhbGlzdCkpCisJOzsgTm8gbWFq b3Igc2lkZSB3aW5kb3cgZXhpc3RzIG9uIHRoaXMgc2lkZSwgbWFrZSBvbmUuCisJKHdpbmRv dy0tbWFrZS1tYWpvci1zaWRlLXdpbmRvdyBidWZmZXIgc2lkZSBzbG90IGFsaXN0KSkKICAg ICAgICAodAogCTs7IFNjYW4gd2luZG93cyBvbiBTSURFLgogCShjYXRjaCAnZm91bmQKQEAg LTk4Myw0NiArMTAxMyw2OSBAQCBkaXNwbGF5LWJ1ZmZlci1pbi1zaWRlLXdpbmRvdwogCTs7 IHdpbmRvdyB3aWxsIGJlIGNyZWF0ZWQgYmVmb3JlIGl0LgogCTs7IGBiZXN0LXdpbmRvdycg aXMgdGhlIHdpbmRvdyB3aXRoIHRoZSBzbWFsbGVzdCBhYnNvbHV0ZSBkaWZmZXJlbmNlCiAJ Ozsgb2YgaXRzIHNsb3QgYW5kIFNMT1QuCi0KLQk7OyBOb3RlOiBXZSBkZWRpY2F0ZSB0aGUg d2luZG93IHVzZWQgc29mdGx5IHRvIGl0cyBidWZmZXIgdG8KLQk7OyBhdm9pZCB0aGF0ICJv dGhlciIgKG5vbi1zaWRlKSBidWZmZXIgZGlzcGxheSBmdW5jdGlvbnMgc3RlYWwKLQk7OyBp dCBmcm9tIHVzLiAgVGhpcyBtdXN0IGV2ZW50dWFsbHkgYmVjb21lIGN1c3RvbWl6YWJsZSB2 aWEKLQk7OyBBTElTVCAob3IsIGJldHRlciwgYXZvaWRlZCBpbiB0aGUgIm90aGVyIiBmdW5j dGlvbnMpLgogCShvciAoYW5kIHRoaXMtd2luZG93CiAJCSA7OyBSZXVzZSBgdGhpcy13aW5k b3cnLgotCQkgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIgYnVmZmVyIHRoaXMtd2luZG93ICdy ZXVzZSBhbGlzdCAnc2lkZSkpCisgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVm ZmVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAgIChzZXRxIHdpbmRvdy1zaWRlcy1zaG93 biB0KSkKKwkJICh3aW5kb3ctLWRpc3BsYXktYnVmZmVyCisgICAgICAgICAgICAgICAgICBi dWZmZXIgdGhpcy13aW5kb3cgJ3JldXNlIGFsaXN0IGRlZGljYXRlZCkpCiAJICAgIChhbmQg KG9yIChub3QgbWF4LXNsb3RzKSAoPCBzbG90cyBtYXgtc2xvdHMpKQogCQkgKG9yIChhbmQg bmV4dC13aW5kb3cKIAkJCSAgOzsgTWFrZSBuZXcgd2luZG93IGJlZm9yZSBgbmV4dC13aW5k b3cnLgotCQkJICAobGV0ICgobmV4dC1zaWRlCi0JCQkJIChpZiAobWVtcSBzaWRlICcobGVm dCByaWdodCkpICdhYm92ZSAnbGVmdCkpCisJCQkgIChsZXQgKChuZXh0LXNpZGUgKGlmIGxl ZnQtb3ItcmlnaHQgJ2Fib3ZlICdsZWZ0KSkKIAkJCQkod2luZG93LWNvbWJpbmF0aW9uLXJl c2l6ZSAnc2lkZSkpCi0JCQkgICAgKHNldHEgd2luZG93IChzcGxpdC13aW5kb3cgbmV4dC13 aW5kb3cgbmlsIG5leHQtc2lkZSkpCi0JCQkgICAgOzsgV2hlbiB0aGUgbmV3IHdpbmRvdyBp cyBkZWxldGVkLCBpdHMgc3BhY2UKLQkJCSAgICA7OyBpcyByZXR1cm5lZCB0byBvdGhlciBz aWRlIHdpbmRvd3MuCi0JCQkgICAgKHNldC13aW5kb3ctcGFyYW1ldGVyCi0JCQkgICAgIHdp bmRvdyAnZGVsZXRlLXdpbmRvdyAnZGVsZXRlLXNpZGUtd2luZG93KQotCQkJICAgIHdpbmRv dykpCisJCQkgICAgKHNldHEgd2luZG93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNwbGl0LXdpbmRvdyBuZXh0LXdpbmRvdyBuaWwgbmV4dC1zaWRlKSkpKQogCQkg ICAgIChhbmQgcHJldi13aW5kb3cKIAkJCSAgOzsgTWFrZSBuZXcgd2luZG93IGFmdGVyIGBw cmV2LXdpbmRvdycuCi0JCQkgIChsZXQgKChwcmV2LXNpZGUKLQkJCQkgKGlmIChtZW1xIHNp ZGUgJyhsZWZ0IHJpZ2h0KSkgJ2JlbG93ICdyaWdodCkpCisJCQkgIChsZXQgKChwcmV2LXNp ZGUgKGlmIGxlZnQtb3ItcmlnaHQgJ2JlbG93ICdyaWdodCkpCiAJCQkJKHdpbmRvdy1jb21i aW5hdGlvbi1yZXNpemUgJ3NpZGUpKQotCQkJICAgIChzZXRxIHdpbmRvdyAoc3BsaXQtd2lu ZG93IHByZXYtd2luZG93IG5pbCBwcmV2LXNpZGUpKQotCQkJICAgIDs7IFdoZW4gdGhlIG5l dyB3aW5kb3cgaXMgZGVsZXRlZCwgaXRzIHNwYWNlCi0JCQkgICAgOzsgaXMgcmV0dXJuZWQg dG8gb3RoZXIgc2lkZSB3aW5kb3dzLgotCQkJICAgIChzZXQtd2luZG93LXBhcmFtZXRlcgot CQkJICAgICB3aW5kb3cgJ2RlbGV0ZS13aW5kb3cgJ2RlbGV0ZS1zaWRlLXdpbmRvdykKLQkJ CSAgICB3aW5kb3cpKSkKKwkJCSAgICAoc2V0cSB3aW5kb3cKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3BsaXQtd2luZG93IHByZXYtd2luZG93IG5pbCBwcmV2LXNp ZGUpKSkpKQogCQkgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICd3aW5kb3ctc2xv dCBzbG90KQotCQkgICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlciBidWZmZXIgd2luZG93ICd3 aW5kb3cgYWxpc3QgJ3NpZGUpKQorICAgICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQt YnVmZmVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgKHNldHEgd2luZG93LXNpZGVz LXNob3duIHQpKQorCQkgICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlcgorICAgICAgICAgICAg ICAgICAgICBidWZmZXIgd2luZG93ICd3aW5kb3cgYWxpc3QgZGVkaWNhdGVkKSkKIAkgICAg KGFuZCBiZXN0LXdpbmRvdwogCQkgOzsgUmV1c2UgYGJlc3Qtd2luZG93Jy4KIAkJIChwcm9n bgogCQkgICA7OyBHaXZlIGJlc3Qtd2luZG93IHRoZSBuZXcgc2xvdCB2YWx1ZS4KIAkJICAg KHNldC13aW5kb3ctcGFyYW1ldGVyIGJlc3Qtd2luZG93ICd3aW5kb3ctc2xvdCBzbG90KQot CQkgICAod2luZG93LS1kaXNwbGF5LWJ1ZmZlcgotCQkgICAgYnVmZmVyIGJlc3Qtd2luZG93 ICdyZXVzZSBhbGlzdCAnc2lkZSkpKSkpKSkpKQorICAgICAgICAgICAgICAgICAgICh3aXRo LWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgKHNldHEgd2lu ZG93LXNpZGVzLXNob3duIHQpKQorICAgICAgICAgICAgICAgICAgICh3aW5kb3ctLWRpc3Bs YXktYnVmZmVyCisJCSAgICBidWZmZXIgYmVzdC13aW5kb3cgJ3JldXNlIGFsaXN0IGRlZGlj YXRlZCkpKSkpKSkpKQorCisoZGVmdW4gd2luZG93LXRvZ2dsZS1zaWRlLXdpbmRvd3MgKCZv cHRpb25hbCBmcmFtZSkKKyAgIlRvZ2dsZSBzaWRlIHdpbmRvd3Mgb24gc3BlY2lmaWVkIEZS QU1FLgorRlJBTUUgbXVzdCBiZSBhIGxpdmUgZnJhbWUgYW5kIGRlZmF1bHRzIHRvIHRoZSBz ZWxlY3RlZCBvbmUuCisKK0lmIEZSQU1FIGhhcyBhdCBsZWFzdCBvbmUgc2lkZSB3aW5kb3cs IHNhdmUgRlJBTUUncyBzdGF0ZSBpbiB0aGUKK0ZSQU1FJ3MgYHdpbmRvdy1zdGF0ZScgZnJh bWUgcGFyYW1ldGVyIGFuZCBkZWxldGUgYWxsIHNpZGUKK3dpbmRvd3Mgb24gRlJBTUUgYWZ0 ZXJ3YXJkcy4gIE90aGVyd2lzZSwgaWYgRlJBTUUgaGFzIGEKK2B3aW5kb3ctc3RhdGUnIHBh cmFtZXRlciwgdXNlIHRoYXQgdG8gcmVzdG9yZSBhbnkgc2lkZSB3aW5kb3dzIG9uCitGUkFN RSBsZWF2aW5nIEZSQU1FJ3MgbWFpbiB3aW5kb3cgYWxvbmUuICBTaWduYWwgYW4gZXJyb3Ig aWYKK0ZSQU1FIGhhcyBubyBzaWRlIHdpbmRvdyBhbmQgbm8gc2F2ZWQgc3RhdGUgaXMgZm91 bmQuIgorICAoaW50ZXJhY3RpdmUpCisgIChsZXQqICgoZnJhbWUgKHdpbmRvdy1ub3JtYWxp emUtZnJhbWUgZnJhbWUpKQorICAgICAgICAgc3RhdGUpCisgICAgKGNvbmQKKyAgICAgKCh3 aW5kb3ctd2l0aC1wYXJhbWV0ZXIgJ3dpbmRvdy1zaWRlIG5pbCBmcmFtZSkKKyAgICAgIDs7 IEF0IGxlYXN0IG9uZSBzaWRlIHdpbmRvdyBleGlzdHMuICBSZW1vdmUgYWxsIHNpZGUgd2lu ZG93cyBhZnRlcgorICAgICAgOzsgc2F2aW5nIEZSQU1FJ3Mgc3RhdGUgaW4gaXRzIGB3aW5k b3ctc3RhdGUnIHBhcmFtZXRlci4KKyAgICAgIChzZXQtZnJhbWUtcGFyYW1ldGVyCisgICAg ICAgZnJhbWUgJ3dpbmRvdy1zdGF0ZSAod2luZG93LXN0YXRlLWdldCAoZnJhbWUtcm9vdC13 aW5kb3cgZnJhbWUpKSkKKyAgICAgIChsZXQgKChpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMg dCkpCisgICAgICAgIChkZWxldGUtb3RoZXItd2luZG93cyAod2luZG93LW1haW4td2luZG93 IGZyYW1lKSkpKQorICAgICAoKHNldHEgc3RhdGUgKGZyYW1lLXBhcmFtZXRlciBmcmFtZSAn d2luZG93LXN0YXRlKSkKKyAgICAgIDs7IEEgd2luZG93IHN0YXRlIHdhcyBzYXZlZCBmb3Ig RlJBTUUuICBSZXN0b3JlIGl0IGFuZCBwdXQgdGhlCisgICAgICA7OyBjdXJyZW50IHJvb3Qg d2luZG93IGludG8gaXRzIG1haW4gd2luZG93LgorICAgICAgKGxldCAoKG1haW4tc3RhdGUg KHdpbmRvdy1zdGF0ZS1nZXQgKGZyYW1lLXJvb3Qtd2luZG93IGZyYW1lKSkpKQorICAgICAg ICAod2luZG93LXN0YXRlLXB1dCBzdGF0ZSAoZnJhbWUtcm9vdC13aW5kb3cgZnJhbWUpIHQp CisgICAgICAgICh3aW5kb3ctc3RhdGUtcHV0IG1haW4tc3RhdGUgKHdpbmRvdy1tYWluLXdp bmRvdyBmcmFtZSkpKSkKKyAgICAgKHQKKyAgICAgIChlcnJvciAiTm8gc2lkZSB3aW5kb3dz IHN0YXRlIGZvdW5kIikpKSkpCgogKGRlZnVuIHdpbmRvdy0tc2lkZS1jaGVjayAoJm9wdGlv bmFsIGZyYW1lKQogICAiQ2hlY2sgdGhlIHNpZGUgd2luZG93IGNvbmZpZ3VyYXRpb24gb2Yg RlJBTUUuCkBAIC0zMjI0LDggKzMyNzcsMTAgQEAgYWRqdXN0LXdpbmRvdy10cmFpbGluZy1l ZGdlCiAJKHNldHEgbGVmdCBmaXJzdC1sZWZ0KQogCSh3aGlsZSAoYW5kIGxlZnQKIAkJICAg IChvciAod2luZG93LXNpemUtZml4ZWQtcCBsZWZ0IGhvcml6b250YWwgJ3ByZXNlcnZlZCkK LQkJCSg8PSAod2luZG93LXNpemUgbGVmdCBob3Jpem9udGFsIHQpCi0JCQkgICAgKHdpbmRv dy1taW4tc2l6ZSBsZWZ0IGhvcml6b250YWwgJ3ByZXNlcnZlZCB0KSkpKQorCQkJKGFuZCAo PCBkZWx0YSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPD0gKHdpbmRvdy1z aXplIGxlZnQgaG9yaXpvbnRhbCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHdpbmRvdy1taW4tc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlZnQgaG9yaXpvbnRhbCAncHJlc2VydmVkIHQpKSkpKQogCSAgKHNldHEgbGVmdAogCQko b3IgKHdpbmRvdy1sZWZ0IGxlZnQpCiAJCSAgICAocHJvZ24KQEAgLTMyNDUsNyArMzMwMCw4 IEBAIGFkanVzdC13aW5kb3ctdHJhaWxpbmctZWRnZQogCQkgIChvciAod2luZG93LXNpemUt Zml4ZWQtcCByaWdodCBob3Jpem9udGFsKQogCQkgICAgICAoYW5kICg+IGRlbHRhIDApCiAJ CQkgICAoPD0gKHdpbmRvdy1zaXplIHJpZ2h0IGhvcml6b250YWwgdCkKLQkJCSAgICAgICAo d2luZG93LW1pbi1zaXplIHJpZ2h0IGhvcml6b250YWwgJ3ByZXNlcnZlZCB0KSkpKSkKKwkJ CSAgICAgICAod2luZG93LW1pbi1zaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJpZ2h0IGhvcml6b250YWwgJ3ByZXNlcnZlZCB0KSkpKSkKIAkoc2V0cSByaWdodAog CSAgICAgIChvciAod2luZG93LXJpZ2h0IHJpZ2h0KQogCQkgIChwcm9nbgpAQCAtMzI1OSw4 ICszMzE1LDEwIEBAIGFkanVzdC13aW5kb3ctdHJhaWxpbmctZWRnZQogCShzZXRxIHJpZ2h0 IGZpcnN0LXJpZ2h0KQogCSh3aGlsZSAoYW5kIHJpZ2h0CiAJCSAgICAob3IgKHdpbmRvdy1z aXplLWZpeGVkLXAgcmlnaHQgaG9yaXpvbnRhbCAncHJlc2VydmVkKQotICAgICAgICAgICAg ICAgICAgICAgICAgKDw9ICh3aW5kb3ctc2l6ZSByaWdodCBob3Jpem9udGFsIHQpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1taW4tc2l6ZSByaWdodCBob3Jpem9u dGFsICdwcmVzZXJ2ZWQgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKD4g ZGVsdGEgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDw9ICh3aW5kb3ctc2l6 ZSByaWdodCBob3Jpem9udGFsIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAod2luZG93LW1pbi1zaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmlnaHQgaG9yaXpvbnRhbCAncHJlc2VydmVkIHQpKSkpKQogCSAgKHNldHEgcmlnaHQKIAkJ KG9yICh3aW5kb3ctcmlnaHQgcmlnaHQpCiAJCSAgICAocHJvZ24KQEAgLTMyODksOCArMzM0 Nyw5IEBAIGFkanVzdC13aW5kb3ctdHJhaWxpbmctZWRnZQogCSAgOzsgU3RhcnQgcmVzaXpp bmcuCiAJICAod2luZG93LS1yZXNpemUtcmVzZXQgZnJhbWUgaG9yaXpvbnRhbCkKIAkgIDs7 IFRyeSB0byBlbmxhcmdlIExFRlQgZmlyc3QuCi0JICAoc2V0cSB0aGlzLWRlbHRhICh3aW5k b3ctLXJlc2l6YWJsZQotCQkJICAgIGxlZnQgZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgJ2Fm dGVyIG5pbCBuaWwgcGl4ZWx3aXNlKSkKKwkgIChzZXRxIHRoaXMtZGVsdGEKKyAgICAgICAg ICAgICAgICAod2luZG93LS1yZXNpemFibGUKKyAgICAgICAgICAgICAgICAgbGVmdCBkZWx0 YSBob3Jpem9udGFsIGlnbm9yZSAnYWZ0ZXIgbmlsIG5pbCBwaXhlbHdpc2UpKQogCSAgKHVu bGVzcyAoemVyb3AgdGhpcy1kZWx0YSkKIAkgICAgKHdpbmRvdy0tcmVzaXplLXRoaXMtd2lu ZG93CiAJICAgICBsZWZ0IHRoaXMtZGVsdGEgaG9yaXpvbnRhbCBpZ25vcmUgdCAnYmVmb3Jl CkBAIC0zNzQwLDcgKzM3OTksOSBAQCBvbmUtd2luZG93LXAKIChkZWZ1biB3aW5kb3ctZGVs ZXRhYmxlLXAgKCZvcHRpb25hbCB3aW5kb3cpCiAgICJSZXR1cm4gdCBpZiBXSU5ET1cgY2Fu IGJlIHNhZmVseSBkZWxldGVkIGZyb20gaXRzIGZyYW1lLgogV0lORE9XIG11c3QgYmUgYSB2 YWxpZCB3aW5kb3cgYW5kIGRlZmF1bHRzIHRvIHRoZSBzZWxlY3RlZCBvbmUuCi1SZXR1cm4g YGZyYW1lJyBpZiBkZWxldGluZyBXSU5ET1cgc2hvdWxkIGFsc28gZGVsZXRlIGl0cyBmcmFt ZS4iCisKK1JldHVybiBgZnJhbWUnIGlmIFdJTkRPVyBpcyB0aGUgcm9vdCB3aW5kb3cgb2Yg aXRzIGZyYW1lIGFuZCB0aGF0CitmcmFtZSBjYW4gYmUgc2FmZWx5IGRlbGV0ZWQuIgogICAo c2V0cSB3aW5kb3cgKHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdykpCgogICAodW5s ZXNzIChvciBpZ25vcmUtd2luZG93LXBhcmFtZXRlcnMKQEAgLTM3NjcsMTAgKzM4MjgsMTQg QEAgd2luZG93LWRlbGV0YWJsZS1wCiAJCSAgKGxldCAoKG1pbmlidWYgKGFjdGl2ZS1taW5p YnVmZmVyLXdpbmRvdykpKQogCQkgICAgKGFuZCBtaW5pYnVmIChlcSBmcmFtZSAod2luZG93 LWZyYW1lIG1pbmlidWYpKSkpKQogCSdmcmFtZSkpCisgICAgICgod2luZG93LW1pbmlidWZm ZXItcCB3aW5kb3cpCisgICAgICA7OyBJZiBXSU5ET1cgaXMgdGhlIG1pbmlidWZmZXIgd2lu ZG93IG9mIGEgbm9uLW1pbmlidWZmZXItb25seQorICAgICAgOzsgZnJhbWUsIGl0IGNhbm5v dCBiZSBkZWxldGVkIHNlcGFyYXRlbHkuCisgICAgICBuaWwpCiAgICAgICgob3IgaWdub3Jl LXdpbmRvdy1wYXJhbWV0ZXJzCi0JICAobm90IChlcSB3aW5kb3cgKHdpbmRvdy0tbWFqb3It bm9uLXNpZGUtd2luZG93IGZyYW1lKSkpKQotICAgICAgOzsgV0lORE9XIGNhbiBiZSBkZWxl dGVkIHVubGVzcyBpdCBpcyB0aGUgbWFqb3Igbm9uLXNpZGUgd2luZG93IG9mCi0gICAgICA7 OyBpdHMgZnJhbWUuCisJICAobm90IChlcSB3aW5kb3cgKHdpbmRvdy1tYWluLXdpbmRvdyBm cmFtZSkpKSkKKyAgICAgIDs7IE90aGVyd2lzZSwgV0lORE9XIGNhbiBiZSBkZWxldGVkIHVu bGVzcyBpdCBpcyB0aGUgbWFpbiB3aW5kb3cKKyAgICAgIDs7IG9mIGl0cyBmcmFtZS4KICAg ICAgIHQpKSkpCgogKGRlZnVuIHdpbmRvdy0taW4tc3VidHJlZS1wICh3aW5kb3cgcm9vdCkK QEAgLTM4MjYsMTEgKzM4OTEsMTQgQEAgZGVsZXRlLXdpbmRvdwogCSAgKHRocm93ICdkb25l IChkZWxldGUtd2luZG93IGF0b20tcm9vdCkpKSkKICAgICAgICAoKG5vdCBwYXJlbnQpCiAJ KGVycm9yICJBdHRlbXB0IHRvIGRlbGV0ZSBtaW5pYnVmZmVyIG9yIHNvbGUgb3JkaW5hcnkg d2luZG93IikpCi0gICAgICAgKChlcSB3aW5kb3cgKHdpbmRvdy0tbWFqb3Itbm9uLXNpZGUt d2luZG93IGZyYW1lKSkKLQkoZXJyb3IgIkF0dGVtcHQgdG8gZGVsZXRlIGxhc3Qgbm9uLXNp ZGUgd2luZG93IikpKQorICAgICAgICgoZXEgd2luZG93ICh3aW5kb3ctbWFpbi13aW5kb3cg ZnJhbWUpKQorCShlcnJvciAiQXR0ZW1wdCB0byBkZWxldGUgbWFpbiB3aW5kb3cgb2YgZnJh bWUgJXMiIGZyYW1lKSkpCgogICAgICAgKGxldCogKChob3Jpem9udGFsICh3aW5kb3ctbGVm dC1jaGlsZCBwYXJlbnQpKQogCSAgICAgKHNpemUgKHdpbmRvdy1zaXplIHdpbmRvdyBob3Jp em9udGFsIHQpKQorICAgICAgICAgICAgICh3aW5kb3ctY29tYmluYXRpb24tcmVzaXplCisg ICAgICAgICAgICAgIChvciB3aW5kb3ctY29tYmluYXRpb24tcmVzaXplCisgICAgICAgICAg ICAgICAgICAod2luZG93LXBhcmFtZXRlciBwYXJlbnQgJ3dpbmRvdy1zaWRlKSkpCiAJICAg ICAoZnJhbWUtc2VsZWN0ZWQKIAkgICAgICAod2luZG93LS1pbi1zdWJ0cmVlLXAgKGZyYW1l LXNlbGVjdGVkLXdpbmRvdyBmcmFtZSkgd2luZG93KSkKIAkgICAgIDs7IEVtYWNzIDIzIHBy ZWZlcmFibHkgZ2l2ZXMgV0lORE9XJ3Mgc3BhY2UgdG8gaXRzIGxlZnQKQEAgLTM4ODYsOCAr Mzk1NCw3IEBAIGRlbGV0ZS1vdGhlci13aW5kb3dzCiAgIChzZXRxIHdpbmRvdyAod2luZG93 LW5vcm1hbGl6ZS13aW5kb3cgd2luZG93KSkKICAgKGxldCogKChmcmFtZSAod2luZG93LWZy YW1lIHdpbmRvdykpCiAJIChmdW5jdGlvbiAod2luZG93LXBhcmFtZXRlciB3aW5kb3cgJ2Rl bGV0ZS1vdGhlci13aW5kb3dzKSkKLQkgKHdpbmRvdy1zaWRlICh3aW5kb3ctcGFyYW1ldGVy IHdpbmRvdyAnd2luZG93LXNpZGUpKQotCSBhdG9tLXJvb3Qgc2lkZS1tYWluKQorCSBhdG9t LXJvb3QgbWFpbikKICAgICAod2luZG93LS1jaGVjayBmcmFtZSkKICAgICAoY2F0Y2ggJ2Rv bmUKICAgICAgIChjb25kCkBAIC0zOTA1LDE4ICszOTcyLDQ4IEBAIGRlbGV0ZS1vdGhlci13 aW5kb3dzCiAJKGlmIChlcSBhdG9tLXJvb3QgKGZyYW1lLXJvb3Qtd2luZG93IGZyYW1lKSkK IAkgICAgKGVycm9yICJSb290IG9mIGF0b21pYyB3aW5kb3cgaXMgcm9vdCB3aW5kb3cgb2Yg aXRzIGZyYW1lIikKIAkgICh0aHJvdyAnZG9uZSAoZGVsZXRlLW90aGVyLXdpbmRvd3MgYXRv bS1yb290KSkpKQotICAgICAgICgobWVtcSB3aW5kb3ctc2lkZSB3aW5kb3ctc2lkZXMpCisg ICAgICAgKCh3aW5kb3ctcGFyYW1ldGVyIHdpbmRvdyAnd2luZG93LXNpZGUpCiAJKGVycm9y ICJDYW5ub3QgbWFrZSBzaWRlIHdpbmRvdyB0aGUgb25seSB3aW5kb3ciKSkKICAgICAgICAo KGFuZCAod2luZG93LW1pbmlidWZmZXItcCB3aW5kb3cpCiAJICAgICAobm90IChlcSB3aW5k b3cgKGZyYW1lLXJvb3Qtd2luZG93IHdpbmRvdykpKSkKIAkoZXJyb3IgIkNhbid0IGV4cGFu ZCBtaW5pYnVmZmVyIHRvIGZ1bGwgZnJhbWUiKSkpCgotICAgICAgOzsgSWYgV0lORE9XIGlz IHRoZSBtYWpvciBub24tc2lkZSB3aW5kb3csIGRvIG5vdGhpbmcuCi0gICAgICAoaWYgKHdp bmRvdy13aXRoLXBhcmFtZXRlciAnd2luZG93LXNpZGUpCi0JICAoc2V0cSBzaWRlLW1haW4g KHdpbmRvdy0tbWFqb3Itbm9uLXNpZGUtd2luZG93IGZyYW1lKSkKLQkoc2V0cSBzaWRlLW1h aW4gKGZyYW1lLXJvb3Qtd2luZG93IGZyYW1lKSkpCi0gICAgICAodW5sZXNzIChlcSB3aW5k b3cgc2lkZS1tYWluKQotCShkZWxldGUtb3RoZXItd2luZG93cy1pbnRlcm5hbCB3aW5kb3cg c2lkZS1tYWluKQorICAgICAgKGNvbmQKKyAgICAgICAoKG9yIGlnbm9yZS13aW5kb3ctcGFy YW1ldGVycworICAgICAgICAgICAgKG5vdCAod2luZG93LXdpdGgtcGFyYW1ldGVyICduby1k ZWxldGUtb3RoZXItd2luZG93IG5pbCBmcmFtZSkpKQorICAgICAgICAoc2V0cSBtYWluIChm cmFtZS1yb290LXdpbmRvdyBmcmFtZSkpKQorICAgICAgICgoY2F0Y2ggJ3RhZworICAgICAg ICAgICh3YWxrLXdpbmRvdy10cmVlCisgICAgICAgICAgIChsYW1iZGEgKG90aGVyKQorICAg ICAgICAgICAgICh3aGVuIChvciAoYW5kICh3aW5kb3ctcGFyYW1ldGVyIG90aGVyICd3aW5k b3ctc2lkZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90ICh3aW5kb3ctcGFy YW1ldGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIgJ25vLWRl bGV0ZS1vdGhlci13aW5kb3cpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAobm90 ICh3aW5kb3ctcGFyYW1ldGVyIG90aGVyICd3aW5kb3ctc2lkZSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHdpbmRvdy1wYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3RoZXIgJ25vLWRlbGV0ZS1vdGhlci13aW5kb3cpKSkKKyAgICAgICAgICAg ICAgICh0aHJvdyAndGFnIG5pbCkpKSkKKyAgICAgICAgICB0KQorICAgICAgICAoc2V0cSBt YWluICh3aW5kb3ctbWFpbi13aW5kb3cgZnJhbWUpKSkKKyAgICAgICAodAorICAgICAgICA7 OyBEZWxldGUgb3RoZXIgd2luZG93cyB2aWEgYGRlbGV0ZS13aW5kb3cnIGJlY2F1c2UgZWl0 aGVyIGEKKyAgICAgICAgOzsgc2lkZSB3aW5kb3cgaXMgb3IgYSBub24tc2lkZS13aW5kb3cg aXMgbm90IGRlbGV0YWJsZS4KKyAgICAgICAgKGRvbGlzdCAob3RoZXIgKHdpbmRvdy1saXN0 IGZyYW1lKSkKKyAgICAgICAgICAod2hlbiAoYW5kICh3aW5kb3ctbGl2ZS1wIG90aGVyKQor ICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZXEgb3RoZXIgd2luZG93KSkKKyAgICAgICAg ICAgICAgICAgICAgIChub3QgKHdpbmRvdy1wYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIG90aGVyICduby1kZWxldGUtb3RoZXItd2luZG93KSkKKyAgICAgICAgICAg ICAgICAgICAgIDs7IFdoZW4gV0lORE9XIGFuZCB0aGUgb3RoZXIgd2luZG93IGFyZSBwYXJ0 IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgOzsgc2FtZSBhdG9taWMgd2luZG93LCBk b24ndCBkZWxldGUgdGhlIG90aGVyLgorICAgICAgICAgICAgICAgICAgICAgKG9yIChub3Qg YXRvbS1yb290KQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxICh3aW5kb3ct YXRvbS1yb290IG90aGVyKSBhdG9tLXJvb3QpKSkpCisgICAgICAgICAgICAoY29uZGl0aW9u LWNhc2UgbmlsCisgICAgICAgICAgICAgICAgKGRlbGV0ZS13aW5kb3cgb3RoZXIpCisgICAg ICAgICAgICAgIChlcnJvciBuaWwpKSkpCisgICAgICAgICh0aHJvdyAnZG9uZSBuaWwpKSkK KworICAgICAgOzsgSWYgV0lORE9XIGlzIHRoZSBtYWluIHdpbmRvdyBvZiBpdHMgZnJhbWUg ZG8gbm90aGluZy4KKyAgICAgICh1bmxlc3MgKGVxIHdpbmRvdyBtYWluKQorCShkZWxldGUt b3RoZXItd2luZG93cy1pbnRlcm5hbCB3aW5kb3cgbWFpbikKIAkocnVuLXdpbmRvdy1jb25m aWd1cmF0aW9uLWNoYW5nZS1ob29rIGZyYW1lKQogCSh3aW5kb3ctLWNoZWNrIGZyYW1lKSkK ICAgICAgIDs7IEFsd2F5cyByZXR1cm4gbmlsLgpAQCAtNDA2Niw2ICs0MTYzLDcgQEAgc3dp dGNoLXRvLXByZXYtYnVmZmVyCiAgIChpbnRlcmFjdGl2ZSkKICAgKGxldCogKCh3aW5kb3cg KHdpbmRvdy1ub3JtYWxpemUtd2luZG93IHdpbmRvdyB0KSkKIAkgKGZyYW1lICh3aW5kb3ct ZnJhbWUgd2luZG93KSkKKyAgICAgICAgICh3aW5kb3ctc2lkZSAod2luZG93LXBhcmFtZXRl ciB3aW5kb3cgJ3dpbmRvdy1zaWRlKSkKIAkgKG9sZC1idWZmZXIgKHdpbmRvdy1idWZmZXIg d2luZG93KSkKIAkgOzsgU2F2ZSB0aGlzIHNpbmNlIGl0J3MgZGVzdHJveWVkIGJ5IGBzZXQt d2luZG93LWJ1ZmZlcicuCiAJIChuZXh0LWJ1ZmZlcnMgKHdpbmRvdy1uZXh0LWJ1ZmZlcnMg d2luZG93KSkKQEAgLTQwNzYsNyArNDE3NCw3IEBAIHN3aXRjaC10by1wcmV2LWJ1ZmZlcgog ICAgICAgKHVubGVzcyAoc2V0cSB3aW5kb3cgKG1pbmlidWZmZXItc2VsZWN0ZWQtd2luZG93 KSkKIAkoZXJyb3IgIldpbmRvdyAlcyBpcyBhIG1pbmlidWZmZXIgd2luZG93IiB3aW5kb3cp KSkKCi0gICAgKHdoZW4gKHdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cpCisgICAgKHVubGVz cyAobWVtcSAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykgJyhuaWwgc2lkZSkpCiAgICAg ICA7OyBEb24ndCBzd2l0Y2ggaW4gZGVkaWNhdGVkIHdpbmRvdy4KICAgICAgIChlcnJvciAi V2luZG93ICVzIGlzIGRlZGljYXRlZCB0byBidWZmZXIgJXMiIHdpbmRvdyBvbGQtYnVmZmVy KSkKCkBAIC00MTA2LDIzICs0MjA0LDI3IEBAIHN3aXRjaC10by1wcmV2LWJ1ZmZlcgogICAg ICAgOzsgYnVmZmVyIHdlIGRvbid0IHJldmVyc2UgdGhlIGdsb2JhbCBidWZmZXIgbGlzdCB0 byBhdm9pZCBzaG93aW5nCiAgICAgICA7OyBhIGJ1cmllZCBidWZmZXIgaW5zdGVhZC4gIE90 aGVyd2lzZSwgd2UgbXVzdCByZXZlcnNlIHRoZSBnbG9iYWwKICAgICAgIDs7IGJ1ZmZlciBs aXN0IGluIG9yZGVyIHRvIG1ha2Ugc3VyZSB0aGF0IHN3aXRjaGluZyB0byB0aGUKLSAgICAg IDs7IHByZXZpb3VzL25leHQgYnVmZmVyIHRyYXZlcnNlIGl0IGluIG9wcG9zaXRlIGRpcmVj dGlvbnMuCi0gICAgICAoZG9saXN0IChidWZmZXIgKGlmIGJ1cnktb3Ita2lsbAotCQkJICAo YnVmZmVyLWxpc3QgZnJhbWUpCi0JCQkobnJldmVyc2UgKGJ1ZmZlci1saXN0IGZyYW1lKSkp KQotCSh3aGVuIChhbmQgKGJ1ZmZlci1saXZlLXAgYnVmZmVyKQotCQkgICAobm90IChlcSBi dWZmZXIgb2xkLWJ1ZmZlcikpCi0gICAgICAgICAgICAgICAgICAgKG9yIChudWxsIHByZWQp IChmdW5jYWxsIHByZWQgYnVmZmVyKSkKLQkJICAgKG5vdCAoZXEgKGFyZWYgKGJ1ZmZlci1u YW1lIGJ1ZmZlcikgMCkgP1xzKSkKLQkJICAgKG9yIGJ1cnktb3Ita2lsbCAobm90IChtZW1x IGJ1ZmZlciBuZXh0LWJ1ZmZlcnMpKSkpCi0JICAoaWYgKGFuZCAobm90IHN3aXRjaC10by12 aXNpYmxlLWJ1ZmZlcikKLQkJICAgKGdldC1idWZmZXItd2luZG93IGJ1ZmZlciBmcmFtZSkp Ci0JICAgICAgOzsgVHJ5IHRvIGF2b2lkIHNob3dpbmcgYSBidWZmZXIgdmlzaWJsZSBpbiBz b21lIG90aGVyIHdpbmRvdy4KLQkgICAgICAodW5sZXNzIHZpc2libGUKLQkJKHNldHEgdmlz aWJsZSBidWZmZXIpKQotCSAgICAoc2V0cSBuZXctYnVmZmVyIGJ1ZmZlcikKLQkgICAgKHNl dC13aW5kb3ctYnVmZmVyLXN0YXJ0LWFuZC1wb2ludCB3aW5kb3cgbmV3LWJ1ZmZlcikKLQkg ICAgKHRocm93ICdmb3VuZCB0KSkpKQorICAgICAgOzsgcHJldmlvdXMvbmV4dCBidWZmZXIg dHJhdmVyc2UgaXQgaW4gb3Bwb3NpdGUgZGlyZWN0aW9ucy4gIFNraXAKKyAgICAgIDs7IHRo aXMgc3RlcCBmb3Igc2lkZSB3aW5kb3dzLgorICAgICAgKHVubGVzcyB3aW5kb3ctc2lkZQor ICAgICAgICAoZG9saXN0IChidWZmZXIgKGlmIGJ1cnktb3Ita2lsbAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChidWZmZXItbGlzdCBmcmFtZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKG5yZXZlcnNlIChidWZmZXItbGlzdCBmcmFtZSkpKSkKKyAgICAgICAgICAo d2hlbiAoYW5kIChidWZmZXItbGl2ZS1wIGJ1ZmZlcikKKyAgICAgICAgICAgICAgICAgICAg IChub3QgKGVxIGJ1ZmZlciBvbGQtYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgIChv ciAobnVsbCBwcmVkKSAoZnVuY2FsbCBwcmVkIGJ1ZmZlcikpCisgICAgICAgICAgICAgICAg ICAgICAobm90IChlcSAoYXJlZiAoYnVmZmVyLW5hbWUgYnVmZmVyKSAwKSA/XHMpKQorICAg ICAgICAgICAgICAgICAgICAgOzsgRG9uJ3Qgc2hvdyBhIGJ1ZmZlciBzaG93biBpbiBhIHNp ZGUgd2luZG93IGJlZm9yZS4KKyAgICAgICAgICAgICAgICAgICAgIChub3QgKGJ1ZmZlci1s b2NhbC12YWx1ZSAnd2luZG93LXNpZGVzLXNob3duIGJ1ZmZlcikpCisgICAgICAgICAgICAg ICAgICAgICAob3IgYnVyeS1vci1raWxsIChub3QgKG1lbXEgYnVmZmVyIG5leHQtYnVmZmVy cykpKSkKKyAgICAgICAgICAgIChpZiAoYW5kIChub3Qgc3dpdGNoLXRvLXZpc2libGUtYnVm ZmVyKQorICAgICAgICAgICAgICAgICAgICAgKGdldC1idWZmZXItd2luZG93IGJ1ZmZlciBm cmFtZSkpCisgICAgICAgICAgICAgICAgOzsgVHJ5IHRvIGF2b2lkIHNob3dpbmcgYSBidWZm ZXIgdmlzaWJsZSBpbiBzb21lIG90aGVyIHdpbmRvdy4KKyAgICAgICAgICAgICAgICAodW5s ZXNzIHZpc2libGUKKyAgICAgICAgICAgICAgICAgIChzZXRxIHZpc2libGUgYnVmZmVyKSkK KyAgICAgICAgICAgICAgKHNldHEgbmV3LWJ1ZmZlciBidWZmZXIpCisgICAgICAgICAgICAg IChzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQgd2luZG93IG5ldy1idWZmZXIp CisgICAgICAgICAgICAgICh0aHJvdyAnZm91bmQgdCkpKSkpCiAgICAgICAodW5sZXNzIGJ1 cnktb3Ita2lsbAogCTs7IFNjYW4gcmV2ZXJ0ZWQgbmV4dCBidWZmZXJzIGxhc3QgKG11c3Qg bm90IHVzZSBucmV2ZXJzZQogCTs7IGhlcmUhKS4KQEAgLTQxODQsNiArNDI4Niw3IEBAIHN3 aXRjaC10by1uZXh0LWJ1ZmZlcgogICAoaW50ZXJhY3RpdmUpCiAgIChsZXQqICgod2luZG93 ICh3aW5kb3ctbm9ybWFsaXplLXdpbmRvdyB3aW5kb3cgdCkpCiAJIChmcmFtZSAod2luZG93 LWZyYW1lIHdpbmRvdykpCisgICAgICAgICAod2luZG93LXNpZGUgKHdpbmRvdy1wYXJhbWV0 ZXIgd2luZG93ICd3aW5kb3ctc2lkZSkpCiAJIChvbGQtYnVmZmVyICh3aW5kb3ctYnVmZmVy IHdpbmRvdykpCiAJIChuZXh0LWJ1ZmZlcnMgKHdpbmRvdy1uZXh0LWJ1ZmZlcnMgd2luZG93 KSkKICAgICAgICAgIChwcmVkIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ2J1ZmZlci1wcmVk aWNhdGUpKQpAQCAtNDE5Myw3ICs0Mjk2LDcgQEAgc3dpdGNoLXRvLW5leHQtYnVmZmVyCiAg ICAgICAodW5sZXNzIChzZXRxIHdpbmRvdyAobWluaWJ1ZmZlci1zZWxlY3RlZC13aW5kb3cp KQogCShlcnJvciAiV2luZG93ICVzIGlzIGEgbWluaWJ1ZmZlciB3aW5kb3ciIHdpbmRvdykp KQoKLSAgICAod2hlbiAod2luZG93LWRlZGljYXRlZC1wIHdpbmRvdykKKyAgICAodW5sZXNz IChtZW1xICh3aW5kb3ctZGVkaWNhdGVkLXAgd2luZG93KSAnKG5pbCBzaWRlKSkKICAgICAg IDs7IERvbid0IHN3aXRjaCBpbiBkZWRpY2F0ZWQgd2luZG93LgogICAgICAgKGVycm9yICJX aW5kb3cgJXMgaXMgZGVkaWNhdGVkIHRvIGJ1ZmZlciAlcyIgd2luZG93IG9sZC1idWZmZXIp KQoKQEAgLTQyMTEsMjAgKzQzMTQsMjMgQEAgc3dpdGNoLXRvLW5leHQtYnVmZmVyCiAJICAg d2luZG93IG5ldy1idWZmZXIgKG50aCAxIGVudHJ5KSAobnRoIDIgZW50cnkpKQogCSAgKHRo cm93ICdmb3VuZCB0KSkpCiAgICAgICA7OyBTY2FuIHRoZSBidWZmZXIgbGlzdCBvZiBXSU5E T1cncyBmcmFtZSBuZXh0LCBza2lwcGluZyBwcmV2aW91cwotICAgICAgOzsgYnVmZmVycyBl bnRyaWVzLgotICAgICAgKGRvbGlzdCAoYnVmZmVyIChidWZmZXItbGlzdCBmcmFtZSkpCi0J KHdoZW4gKGFuZCAoYnVmZmVyLWxpdmUtcCBidWZmZXIpCi0JCSAgIChub3QgKGVxIGJ1ZmZl ciBvbGQtYnVmZmVyKSkKLSAgICAgICAgICAgICAgICAgICAob3IgKG51bGwgcHJlZCkgKGZ1 bmNhbGwgcHJlZCBidWZmZXIpKQotCQkgICAobm90IChlcSAoYXJlZiAoYnVmZmVyLW5hbWUg YnVmZmVyKSAwKSA/XHMpKQotCQkgICAobm90IChhc3NxIGJ1ZmZlciAod2luZG93LXByZXYt YnVmZmVycyB3aW5kb3cpKSkpCi0JICAoaWYgKGFuZCAobm90IHN3aXRjaC10by12aXNpYmxl LWJ1ZmZlcikKLQkJICAgKGdldC1idWZmZXItd2luZG93IGJ1ZmZlciBmcmFtZSkpCi0JICAg ICAgOzsgVHJ5IHRvIGF2b2lkIHNob3dpbmcgYSBidWZmZXIgdmlzaWJsZSBpbiBzb21lIG90 aGVyIHdpbmRvdy4KLQkgICAgICAoc2V0cSB2aXNpYmxlIGJ1ZmZlcikKLQkgICAgKHNldHEg bmV3LWJ1ZmZlciBidWZmZXIpCi0JICAgIChzZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQt cG9pbnQgd2luZG93IG5ldy1idWZmZXIpCi0JICAgICh0aHJvdyAnZm91bmQgdCkpKSkKKyAg ICAgIDs7IGJ1ZmZlcnMgZW50cmllcy4gIFNraXAgdGhpcyBzdGVwIGZvciBzaWRlIHdpbmRv d3MuCisgICAgICAodW5sZXNzIHdpbmRvdy1zaWRlCisgICAgICAgIChkb2xpc3QgKGJ1ZmZl ciAoYnVmZmVyLWxpc3QgZnJhbWUpKQorICAgICAgICAgICh3aGVuIChhbmQgKGJ1ZmZlci1s aXZlLXAgYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgKG5vdCAoZXEgYnVmZmVyIG9s ZC1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAgKG9yIChudWxsIHByZWQpIChmdW5j YWxsIHByZWQgYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIChhcmVm IChidWZmZXItbmFtZSBidWZmZXIpIDApID9ccykpCisgICAgICAgICAgICAgICAgICAgICA7 OyBEb24ndCBzaG93IGEgYnVmZmVyIHNob3duIGluIGEgc2lkZSB3aW5kb3cgYmVmb3JlLgor ICAgICAgICAgICAgICAgICAgICAgKG5vdCAoYnVmZmVyLWxvY2FsLXZhbHVlICd3aW5kb3ct c2lkZXMtc2hvd24gYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgIChub3QgKGFzc3Eg YnVmZmVyICh3aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKSkKKyAgICAgICAgICAgIChp ZiAoYW5kIChub3Qgc3dpdGNoLXRvLXZpc2libGUtYnVmZmVyKQorICAgICAgICAgICAgICAg ICAgICAgKGdldC1idWZmZXItd2luZG93IGJ1ZmZlciBmcmFtZSkpCisgICAgICAgICAgICAg ICAgOzsgVHJ5IHRvIGF2b2lkIHNob3dpbmcgYSBidWZmZXIgdmlzaWJsZSBpbiBzb21lIG90 aGVyIHdpbmRvdy4KKyAgICAgICAgICAgICAgICAoc2V0cSB2aXNpYmxlIGJ1ZmZlcikKKyAg ICAgICAgICAgICAgKHNldHEgbmV3LWJ1ZmZlciBidWZmZXIpCisgICAgICAgICAgICAgIChz ZXQtd2luZG93LWJ1ZmZlci1zdGFydC1hbmQtcG9pbnQgd2luZG93IG5ldy1idWZmZXIpCisg ICAgICAgICAgICAgICh0aHJvdyAnZm91bmQgdCkpKSkpCiAgICAgICA7OyBTY2FuIFdJTkRP VydzIHJldmVydGVkIHByZXZpb3VzIGJ1ZmZlcnMgbGFzdCAobXVzdCBub3QgdXNlCiAgICAg ICA7OyBucmV2ZXJzZSBoZXJlISkKICAgICAgIChkb2xpc3QgKGVudHJ5IChyZXZlcnNlICh3 aW5kb3ctcHJldi1idWZmZXJzIHdpbmRvdykpKQpAQCAtNTI4NiwxMiArNTM5MiwxNyBAQCB3 aW5kb3ctLXN0YXRlLWdldC0xCiAJCSAgICAgKHNjcm9sbC1iYXJzIC4gLCh3aW5kb3ctc2Ny b2xsLWJhcnMgd2luZG93KSkKIAkJICAgICAodnNjcm9sbCAuICwod2luZG93LXZzY3JvbGwg d2luZG93KSkKIAkJICAgICAoZGVkaWNhdGVkIC4gLCh3aW5kb3ctZGVkaWNhdGVkLXAgd2lu ZG93KSkKLQkJICAgICAocG9pbnQgLiAsKGlmIHdyaXRhYmxlIHBvaW50Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29weS1tYXJrZXIgcG9pbnQKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLWxvY2FsLXZhbHVl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aW5k b3ctcG9pbnQtaW5zZXJ0aW9uLXR5cGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnVmZmVyKSkpKQotCQkgICAgIChzdGFydCAuICwoaWYgd3Jp dGFibGUgc3RhcnQgKGNvcHktbWFya2VyIHN0YXJ0KSkpKSkpKSkpCisJCSAgICAgKHBvaW50 IC4gLChpZiB3cml0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw b2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1i dWZmZXIgYnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb3B5 LW1hcmtlciBwb2ludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGJ1ZmZlci1sb2NhbC12YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICd3aW5kb3ctcG9pbnQtaW5zZXJ0aW9uLXR5cGUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZm ZXIpKSkpKQorCQkgICAgIChzdGFydCAuICwoaWYgd3JpdGFibGUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29weS1tYXJrZXIgc3RhcnQpKSkpKSkpKSkpCiAJICh0YWls CiAJICAod2hlbiAobWVtcSB0eXBlICcodmMgaGMpKQogCSAgICAobGV0IChsaXN0KQpAQCAt NTM2Myw3ICs1NDc0LDggQEAgd2luZG93LS1zdGF0ZS1wdXQtMQogICAgICAoKG1lbXEgdHlw ZSAnKHZjIGhjKSkKICAgICAgIChsZXQqICgoaG9yaXpvbnRhbCAoZXEgdHlwZSAnaGMpKQog CSAgICAgKHRvdGFsICh3aW5kb3ctc2l6ZSB3aW5kb3cgaG9yaXpvbnRhbCBwaXhlbHdpc2Up KQotCSAgICAgKGZpcnN0IHQpCisgICAgICAgICAgICAgKGZpcnN0IHQpCisgICAgICAgICAg ICAgKHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCAoY2RyIChhc3NxICdjb21iaW5hdGlvbi1s aW1pdCBzdGF0ZSkpKQogCSAgICAgc2l6ZSBuZXcpCiAJKGRvbGlzdCAoaXRlbSBzdGF0ZSkK IAkgIDs7IEZpbmQgdGhlIG5leHQgY2hpbGQgd2luZG93LiAgV0lORE9XIGFsd2F5cyBwb2lu dHMgdG8gdGhlCkBAIC01NDA2LDEyICs1NTE4LDkgQEAgd2luZG93LS1zdGF0ZS1wdXQtMQog CQkJCSAgICAgICAoZnJhbWUtY2hhci1oZWlnaHQgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKQog CQkJCSAgICAgMSkpKSkpCiAJICAgICAgKGlmICh3aW5kb3ctc2l6YWJsZS1wIHdpbmRvdyAo LSBzaXplKSBob3Jpem9udGFsICdzYWZlIHBpeGVsd2lzZSkKLQkJICAobGV0KiAoKHdpbmRv dy1jb21iaW5hdGlvbi1saW1pdAotCQkJICAoYXNzcSAnY29tYmluYXRpb24tbGltaXQgaXRl bSkpKQotCQkgICAgOzsgV2UgbXVzdCBpbmhlcml0IHRoZSBjb21iaW5hdGlvbiBsaW1pdCwg b3RoZXJ3aXNlCi0JCSAgICA7OyB3ZSBtaWdodCBtZXNzIHVwIGhhbmRsaW5nIG9mIGF0b21p YyBhbmQgc2lkZQotCQkgICAgOzsgd2luZG93LgotCQkgICAgKHNldHEgbmV3IChzcGxpdC13 aW5kb3cgd2luZG93IHNpemUgaG9yaXpvbnRhbCBwaXhlbHdpc2UpKSkKKyAgICAgICAgICAg ICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAgICAgICAoc2V0cSBuZXcgKHNwbGl0LXdp bmRvdyB3aW5kb3cgc2l6ZSBob3Jpem9udGFsIHBpeGVsd2lzZSkpCisgICAgICAgICAgICAg ICAgICAgIChzZXRxIHdpbmRvdy1jb21iaW5hdGlvbi1saW1pdCBuaWwpKQogCQk7OyBHaXZl IHVwIGlmIHdlIGNhbid0IHJlc2l6ZSB3aW5kb3cgZG93biB0byBzYWZlIHNpemVzLgogCQko ZXJyb3IgIkNhbm5vdCByZXNpemUgd2luZG93ICVzIiB3aW5kb3cpKQoKQEAgLTU0NjIsNyAr NTU3MSw4IEBAIHdpbmRvdy0tc3RhdGUtcHV0LTIKIAkJICAgKG50aCAzIHNjcm9sbC1iYXJz KSAobnRoIDUgc2Nyb2xsLWJhcnMpKSkKIAkJKHNldC13aW5kb3ctdnNjcm9sbCB3aW5kb3cg KGNkciAoYXNzcSAndnNjcm9sbCBzdGF0ZSkpKQogCQk7OyBBZGp1c3QgdmVydGljYWxseS4K LQkJKGlmIChtZW1xIHdpbmRvdy1zaXplLWZpeGVkICcodCBoZWlnaHQpKQorCQkoaWYgKG9y IChtZW1xIHdpbmRvdy1zaXplLWZpeGVkICcodCBoZWlnaHQpKQorICAgICAgICAgICAgICAg ICAgICAgICAgKHdpbmRvdy1wcmVzZXJ2ZWQtc2l6ZSB3aW5kb3cpKQogCQkgICAgOzsgQSBm aXhlZCBoZWlnaHQgd2luZG93LCB0cnkgdG8gcmVzdG9yZSB0aGUKIAkJICAgIDs7IG9yaWdp bmFsIHNpemUuCiAJCSAgICAobGV0ICgoZGVsdGEKQEAgLTU0ODQsNyArNTU5NCw4IEBAIHdp bmRvdy0tc3RhdGUtcHV0LTIKIAkJCQl3aW5kb3cgZGVsdGEgbmlsIGlnbm9yZSBuaWwgbmls IG5pbCBwaXhlbHdpc2UpKQogCQkgICAgICAod2luZG93LXJlc2l6ZSB3aW5kb3cgZGVsdGEg bmlsIGlnbm9yZSBwaXhlbHdpc2UpKSkpCiAJCTs7IEFkanVzdCBob3Jpem9udGFsbHkuCi0J CShpZiAobWVtcSB3aW5kb3ctc2l6ZS1maXhlZCAnKHQgd2lkdGgpKQorCQkoaWYgKG9yICht ZW1xIHdpbmRvdy1zaXplLWZpeGVkICcodCB3aWR0aCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAod2luZG93LXByZXNlcnZlZC1zaXplIHdpbmRvdyB0KSkKIAkJICAgIDs7IEEgZml4 ZWQgd2lkdGggd2luZG93LCB0cnkgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwKIAkJICAgIDs7 IHNpemUuCiAJCSAgICAobGV0ICgoZGVsdGEKQEAgLTU0OTQsOCArNTYwNSw4IEBAIHdpbmRv dy0tc3RhdGUtcHV0LTIKIAkJCSAgICAgICh3aW5kb3ctc2l6ZSB3aW5kb3cgdCBwaXhlbHdp c2UpKSkKIAkJCSAgd2luZG93LXNpemUtZml4ZWQpCiAJCSAgICAgICh3aGVuICh3aW5kb3ct LXJlc2l6YWJsZS1wCi0JCQkgICAgIHdpbmRvdyBkZWx0YSBuaWwgbmlsIG5pbCBuaWwgbmls IHBpeGVsd2lzZSkKLQkJCSh3aW5kb3ctcmVzaXplIHdpbmRvdyBkZWx0YSBuaWwgbmlsIHBp eGVsd2lzZSkpKQorCQkJICAgICB3aW5kb3cgZGVsdGEgdCBuaWwgbmlsIG5pbCBuaWwgcGl4 ZWx3aXNlKQorCQkJKHdpbmRvdy1yZXNpemUgd2luZG93IGRlbHRhIHQgbmlsIHBpeGVsd2lz ZSkpKQogCQkgIDs7IEVsc2UgY2hlY2sgd2hldGhlciB0aGUgd2luZG93IGlzIG5vdCB3aWRl IGVub3VnaC4KIAkJICAobGV0KiAoKG1pbi1zaXplICh3aW5kb3ctbWluLXNpemUgd2luZG93 IHQgaWdub3JlIHBpeGVsd2lzZSkpCiAJCQkgKGRlbHRhICgtIG1pbi1zaXplICh3aW5kb3ct c2l6ZSB3aW5kb3cgdCBwaXhlbHdpc2UpKSkpCkBAIC01NTQwLDE2ICs1NjUxLDE0IEBAIHdp bmRvdy1zdGF0ZS1wdXQKICAgOzsgV2hlbiBXSU5ET1cgaXMgaW50ZXJuYWwsIHJlZHVjZSBp dCB0byBhIGxpdmUgb25lIHRvIHB1dCBTVEFURSBpbnRvLAogICA7OyBzZWUgQnVnIzE2Nzkz LgogICAodW5sZXNzICh3aW5kb3ctbGl2ZS1wIHdpbmRvdykKLSAgICAobGV0ICgocm9vdCAo ZnJhbWUtcm9vdC13aW5kb3cgd2luZG93KSkpCi0gICAgICAoaWYgKGVxIHdpbmRvdyByb290 KQotCSAgKHNldHEgd2luZG93IChmcmFtZS1maXJzdC13aW5kb3cgcm9vdCkpCi0JKHNldHEg cm9vdCB3aW5kb3cpCi0JKHNldHEgd2luZG93IChjYXRjaCAnbGl2ZQotCQkgICAgICAgKHdh bGstd2luZG93LXN1YnRyZWUKLQkJCShsYW1iZGEgKHdpbmRvdykKLQkJCSAgKHdoZW4gKHdp bmRvdy1saXZlLXAgd2luZG93KQotCQkJICAgICh0aHJvdyAnbGl2ZSB3aW5kb3cpKSkKLQkJ CXJvb3QpKSkpCisgICAgKGxldCAoKHJvb3Qgd2luZG93KSkKKyAgICAgIChzZXRxIHdpbmRv dyAoY2F0Y2ggJ2xpdmUKKyAgICAgICAgICAgICAgICAgICAgICh3YWxrLXdpbmRvdy1zdWJ0 cmVlCisgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAod2luZG93KQorICAgICAgICAg ICAgICAgICAgICAgICAgKHdoZW4gKGFuZCAod2luZG93LWxpdmUtcCB3aW5kb3cpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHdpbmRvdy1wYXJhbWV0ZXIg d2luZG93ICd3aW5kb3ctc2lkZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAodGhy b3cgJ2xpdmUgd2luZG93KSkpCisgICAgICAgICAgICAgICAgICAgICAgcm9vdCkpKQogICAg ICAgKGRlbGV0ZS1vdGhlci13aW5kb3dzLWludGVybmFsIHdpbmRvdyByb290KSkpCgogICAo c2V0LXdpbmRvdy1kZWRpY2F0ZWQtcCB3aW5kb3cgbmlsKQpAQCAtNjMxNCwxNSArNjQyMywx NSBAQCB3aW5kb3ctLWRpc3BsYXktYnVmZmVyCiAJKHNldC13aW5kb3ctZGVkaWNhdGVkLXAg d2luZG93IGRlZGljYXRlZCkpCiAgICAgICAod2hlbiAobWVtcSB0eXBlICcod2luZG93IGZy YW1lKSkKIAkoc2V0LXdpbmRvdy1wcmV2LWJ1ZmZlcnMgd2luZG93IG5pbCkpKQotICAgIChs ZXQgKChwYXJhbWV0ZXIgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdxdWl0LXJlc3RvcmUp KQorICAgIChsZXQgKChxdWl0LXJlc3RvcmUgKHdpbmRvdy1wYXJhbWV0ZXIgd2luZG93ICdx dWl0LXJlc3RvcmUpKQogCSAgKGhlaWdodCAoY2RyIChhc3NxICd3aW5kb3ctaGVpZ2h0IGFs aXN0KSkpCiAJICAod2lkdGggKGNkciAoYXNzcSAnd2luZG93LXdpZHRoIGFsaXN0KSkpCiAJ ICAoc2l6ZSAoY2RyIChhc3NxICd3aW5kb3ctc2l6ZSBhbGlzdCkpKQogCSAgKHByZXNlcnZl LXNpemUgKGNkciAoYXNzcSAncHJlc2VydmUtc2l6ZSBhbGlzdCkpKSkKICAgICAgIChjb25k CiAgICAgICAgKChvciAoZXEgdHlwZSAnZnJhbWUpCi0JICAgIChhbmQgKGVxIChjYXIgcGFy YW1ldGVyKSAnc2FtZSkKLQkJIChlcSAobnRoIDEgcGFyYW1ldGVyKSAnZnJhbWUpKSkKKwkg ICAgKGFuZCAoZXEgKGNhciBxdWl0LXJlc3RvcmUpICdzYW1lKQorCQkgKGVxIChudGggMSBx dWl0LXJlc3RvcmUpICdmcmFtZSkpKQogCTs7IEFkanVzdCBzaXplIG9mIGZyYW1lIGlmIGFz a2VkIGZvci4KIAkoY29uZAogCSAoKG5vdCBzaXplKSkKQEAgLTYzNDAsOCArNjQ0OSw4IEBA IHdpbmRvdy0tZGlzcGxheS1idWZmZXIKIAkgKChmdW5jdGlvbnAgc2l6ZSkKIAkgIChpZ25v cmUtZXJyb3JzIChmdW5jYWxsIHNpemUgd2luZG93KSkpKSkKICAgICAgICAoKG9yIChlcSB0 eXBlICd3aW5kb3cpCi0JICAgIChhbmQgKGVxIChjYXIgcGFyYW1ldGVyKSAnc2FtZSkKLQkJ IChlcSAobnRoIDEgcGFyYW1ldGVyKSAnd2luZG93KSkpCisJICAgIChhbmQgKGVxIChjYXIg cXVpdC1yZXN0b3JlKSAnc2FtZSkKKwkJIChlcSAobnRoIDEgcXVpdC1yZXN0b3JlKSAnd2lu ZG93KSkpCiAJOzsgQWRqdXN0IGhlaWdodCBvZiB3aW5kb3cgaWYgYXNrZWQgZm9yLgogCShj b25kCiAJICgobm90IGhlaWdodCkpCkBAIC02Mzc3LDggKzY0ODYsMTIgQEAgd2luZG93LS1k aXNwbGF5LWJ1ZmZlcgogCTs7IFByZXNlcnZlIHdpbmRvdyBzaXplIGlmIGFza2VkIGZvci4K IAkod2hlbiAoY29uc3AgcHJlc2VydmUtc2l6ZSkKIAkgICh3aW5kb3ctcHJlc2VydmUtc2l6 ZSB3aW5kb3cgdCAoY2FyIHByZXNlcnZlLXNpemUpKQotCSAgKHdpbmRvdy1wcmVzZXJ2ZS1z aXplIHdpbmRvdyBuaWwgKGNkciBwcmVzZXJ2ZS1zaXplKSkpKSkpCi0KKwkgICh3aW5kb3ct cHJlc2VydmUtc2l6ZSB3aW5kb3cgbmlsIChjZHIgcHJlc2VydmUtc2l6ZSkpKSkpCisgICAg ICA7OyBBc3NpZ24gYW55IHdpbmRvdyBwYXJhbWV0ZXJzIHNwZWNpZmllZC4KKyAgICAgIChs ZXQgKChwYXJhbWV0ZXJzIChjZHIgKGFzc3EgJ3dpbmRvdy1wYXJhbWV0ZXJzIGFsaXN0KSkp KQorICAgICAgICAoZG9saXN0IChwYXJhbWV0ZXIgcGFyYW1ldGVycykKKyAgICAgICAgICAo c2V0LXdpbmRvdy1wYXJhbWV0ZXIKKyAgICAgICAgICAgd2luZG93IChjYXIgcGFyYW1ldGVy KSAoY2RyIHBhcmFtZXRlcikpKSkpCiAgICAgd2luZG93KSkKCiAoZGVmdW4gd2luZG93LS1t YXliZS1yYWlzZS1mcmFtZSAoZnJhbWUpCkBAIC02NjAyLDYgKzY3MTUsOSBAQCBkaXNwbGF5 LWJ1ZmZlcgogICAgIHByZXNlcnZlIHRoZSB3aWR0aCBvZiB0aGUgd2luZG93LCAobmlsIC4g dCkgdG8gcHJlc2VydmUgaXRzCiAgICAgaGVpZ2h0IG9yICh0IC4gdCkgdG8gcHJlc2VydmUg Ym90aC4KCisgYHdpbmRvdy1wYXJhbWV0ZXJzJyAtLSBWYWx1ZSBzcGVjaWZpZXMgYW4gYWxp c3Qgb2Ygd2luZG93CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIHRvIGdp dmUgdGhlIGNob3NlbiB3aW5kb3cuCisKIFRoZSBBQ1RJT04gYXJndW1lbnQgdG8gYGRpc3Bs YXktYnVmZmVyJyBjYW4gYWxzbyBoYXZlIGEgbm9uLW5pbAogYW5kIG5vbi1saXN0IHZhbHVl LiAgVGhpcyBtZWFucyB0byBkaXNwbGF5IHRoZSBidWZmZXIgaW4gYSB3aW5kb3cKIG90aGVy IHRoYW4gdGhlIHNlbGVjdGVkIG9uZSwgZXZlbiBpZiBpdCBpcyBhbHJlYWR5IGRpc3BsYXll ZCBpbgpAQCAtNjk1NCw3ICs3MDcwLDcgQEAgZGlzcGxheS1idWZmZXItYXQtYm90dG9tCiAJ KGFuZCAobm90IChmcmFtZS1wYXJhbWV0ZXIgbmlsICd1bnNwbGl0dGFibGUpKQogCSAgICAg KHNldHEgd2luZG93CiAJCSAgIChjb25kaXRpb24tY2FzZSBuaWwKLQkJICAgICAgIChzcGxp dC13aW5kb3cgKHdpbmRvdy0tbWFqb3Itbm9uLXNpZGUtd2luZG93KSkKKwkJICAgICAgIChz cGxpdC13aW5kb3cgKHdpbmRvdy1tYWluLXdpbmRvdykpCiAJCSAgICAgKGVycm9yIG5pbCkp KQogCSAgICAgKHdpbmRvdy0tZGlzcGxheS1idWZmZXIKIAkgICAgICBidWZmZXIgd2luZG93 ICd3aW5kb3cgYWxpc3QgZGlzcGxheS1idWZmZXItbWFyay1kZWRpY2F0ZWQpKQoK --------------060509000507030204070605--