From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#60999: 30.0.50; [PATCH] Add support for negative indices and index ranges in Eshell Date: Sat, 21 Jan 2023 19:47:47 -0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------3MSg5M4gmD80NNSLx6dCDcAB" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40043"; mail-complaints-to="usenet@ciao.gmane.io" To: 60999@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jan 22 04:48:18 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pJRL7-000AJ1-U8 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 22 Jan 2023 04:48:18 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pJRKu-0000wq-GI; Sat, 21 Jan 2023 22:48:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pJRKt-0000wd-7T for bug-gnu-emacs@gnu.org; Sat, 21 Jan 2023 22:48:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pJRKs-0002Ey-Vi for bug-gnu-emacs@gnu.org; Sat, 21 Jan 2023 22:48:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pJRKs-00050z-EP for bug-gnu-emacs@gnu.org; Sat, 21 Jan 2023 22:48:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 22 Jan 2023 03:48:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 60999 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.167435927619232 (code B ref -1); Sun, 22 Jan 2023 03:48:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 22 Jan 2023 03:47:56 +0000 Original-Received: from localhost ([127.0.0.1]:50229 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pJRKl-000503-Ia for submit@debbugs.gnu.org; Sat, 21 Jan 2023 22:47:56 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:60192) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pJRKj-0004zi-A7 for submit@debbugs.gnu.org; Sat, 21 Jan 2023 22:47:54 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pJRKj-0000wI-0M for bug-gnu-emacs@gnu.org; Sat, 21 Jan 2023 22:47:53 -0500 Original-Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pJRKg-0002Dx-2U for bug-gnu-emacs@gnu.org; Sat, 21 Jan 2023 22:47:52 -0500 Original-Received: by mail-pj1-x102f.google.com with SMTP id n20-20020a17090aab9400b00229ca6a4636so11698231pjq.0 for ; Sat, 21 Jan 2023 19:47:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:from:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=94JpmYF0CN1O3jH09T1lNvWFfZVG/9CMy52G2wY6wsI=; b=ghUYVXnRYulJjM7vP6qb80tW5ypvzY8eBYWIXulu9PReeRQxb74fmPDLMp8TTDhjbx rHwNYZ/XMJeMFdMiUAwpT+xmBU+vQ2lQGlnhmr8QfmFz1oHFcWOVf6IP6nk6jL5pe5IV 7mnPlYBIEh5SIB6K/plo1FFKV0V1v1gG1dE44NGmPev3VoM5PLbrlspQDvuNUidboeX8 TJurer069VzOfXbk5yzKwNVYfcB3RrLsox3sXFlWrqAhVo9nJO4YTO4XxffH8OF2qP3i DRryuGZIUFY0ZuVGa9a3Eydvhf5mJKb3Bkiokcnut0NbDQuk64TieRxzdVvHB5gwKtzl fD/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:to:from:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=94JpmYF0CN1O3jH09T1lNvWFfZVG/9CMy52G2wY6wsI=; b=eVjKCNTbheGhPrkHHL2XizcFwFbd6cNfAT06U4IwBaXVirNJ85uju2ermbOC1pIY3o uNWReqCxOerpb3WDbCk3XOJPpk3V9iJ0t0hPmTn1pJOSNnfPYLRno69O99F2chTP7xqw f0l5mi5++BrbUSSmqzW6xFA1VQBKFQZYoiC6ohOwvMsAtPiy/Vxsh2eZMvekcuLTrpsI 8+30tP8BKUvb+OpqXNq3RITkSznrxBPpz2110gCVLJjUzBwwlWJxQ4rhIP8sPlR5o3Rh LJXO75L4Sn5pktZPQSjettzru/EHnftPGhl8/MK7OHKLvWSNYnql6cROiGd1GJ3/CZOy cFJg== X-Gm-Message-State: AFqh2kriDx6q0Cn1/ZJkCEGfa96SZcNAwH5LifeNkUtY4O4ebf8aX/4H Cfsx8WWRVb8LQUEJJ1VRILb7iNzmhJPdMQ== X-Google-Smtp-Source: AMrXdXsTN1YT58TijD8kVZKmVU1GCYsaDcLRL/eFD/ZedvbPA7YQ0cxq3ujnOOrfh9ONMgmk1ClRLQ== X-Received: by 2002:a17:90a:2b08:b0:229:3554:89b2 with SMTP id x8-20020a17090a2b0800b00229355489b2mr21264113pjc.28.1674359267981; Sat, 21 Jan 2023 19:47:47 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id cp14-20020a17090afb8e00b0022bbad75af6sm8598763pjb.1.2023.01.21.19.47.46 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 21 Jan 2023 19:47:47 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:253900 Archived-At: This is a multi-part message in MIME format. --------------3MSg5M4gmD80NNSLx6dCDcAB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit There are two suggestions in the "Bugs and ideas" section of the Eshell manual: Allow "$_[-1]", which would indicate the last element of the array Make "$x[*]" equal to listing out the full contents of "x" I think these would be pretty useful, especially for the "$_" variable, which gets the last argument of the last command, but if you give it an index like "$_[N]", gets the Nth argument of the last command. However, it's not as easy to get the second-to-last argument of the last command, or to get *all* arguments of the last command. So the above two suggestions would be pretty helpful. Attached is a patch to do this. For the second suggestion, I took some liberties and added range syntax, so that "$x[2..5]" returns elements 2, 3, and 4 (zero-indexed) of x. I have just one question though: this implementation treats ranges as half-open, i.e. "M..N" is [M, N). I think that's the best way of doing things (and it matches how 'seq-subseq' works). However, "M..N" is the Bash syntax, which uses a closed range, [M, N]. Maybe this would be too confusing for users? I'm open to using other tokens aside from ".." if that would help. Maybe "M:N" would work? That's the Python syntax, which behaves the same way as this patch. Any thoughts? --------------3MSg5M4gmD80NNSLx6dCDcAB Content-Type: text/plain; charset=UTF-8; name="0001-Add-support-for-negative-indices-and-index-ranges-in.patch" Content-Disposition: attachment; filename*0="0001-Add-support-for-negative-indices-and-index-ranges-in.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzMzk2MDg4MWE1MGRhZWZkZjhhODY2YjdjZmU1NmVhOGQyYTc4YjFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IEZyaSwgMjAgSmFuIDIwMjMgMTM6NTQ6MjAgLTA4MDAKU3ViamVjdDogW1BB VENIXSBBZGQgc3VwcG9ydCBmb3IgbmVnYXRpdmUgaW5kaWNlcyBhbmQgaW5kZXggcmFuZ2Vz IGluIEVzaGVsbAoKKiBsaXNwL2VzaGVsbC9lc2gtdXRpbC5lbCAoZXNoZWxsLWludGVnZXIt cmVnZXhwKTogTmV3IGRlZmN1c3RvbS4KCiogbGlzcC9lc2hlbGwvZXNoLXZhci5lbCAoZXNo ZWxsLXBhcnNlLWluZGljZXMpOiBFeHBhbmQgZG9jc3RyaW5nLgooZXNoZWxsLXBhcnNlLWlu ZGV4KTogTmV3IGZ1bmN0aW9uLgooZXNoZWxsLWFwcGx5LWluZGljZXMpOiBVc2UgJ2VzaGVs bC1wYXJzZS1pbmRleCcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKdG8gdHJlYXQgdGhlIGZpcnN0 IGluZGV4IGFzIGEgcmVnZXhwLiAgU2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uIGEKYml0 LgooZXNoZWxsLWluZGV4LXJhbmdlKTogTmV3IHBjYXNlIG1hY3JvLi4uCihlc2hlbGwtaW5k ZXgtdmFsdWUpOiAuLi4gdXNlIGl0LCBhbmQgcmVzdHJ1Y3R1cmUgdGhlIGltcGxlbWVudGF0 aW9uLgoKKiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC12YXItdGVzdHMuZWwgKGVzaC12YXItdGVz dC9pbnRlcnAtdmFyLWluZGljZXMpOgpOZXcgZnVuY3Rpb24uLi4KKGVzaC12YXItdGVzdC9p bnRlcnAtdmFyLWluZGljZXMvbGlzdCkKKGVzaC12YXItdGVzdC9pbnRlcnAtdmFyLWluZGlj ZXMvdmVjdG9yKQooZXNoLXZhci10ZXN0L2ludGVycC12YXItaW5kaWNlcy9yaW5nKQooZXNo LXZhci10ZXN0L2ludGVycC12YXItaW5kaWNlcy9zcGxpdCk6IC4uLiB1c2UgaXQuCihlc2gt dmFyLXRlc3QvaW50ZXJwLXZhci1zdHJpbmctc3BsaXQtaW5kaWNlcykKKGVzaC12YXItdGVz dC9pbnRlcnAtdmFyLXJlZ2V4cC1zcGxpdC1pbmRpY2VzKQooZXNoLXZhci10ZXN0L2ludGVy cC12YXItYXNzb2MpOiBFeHBhbmQgdGVzdHMgdG8gY292ZXIgdGhpbmdzIHRoYXQKbG9vayBs aWtlIG51bWJlcnMgb3IgcmFuZ2VzLCBidXQgYXJlbid0LgoKKiBkb2MvbWlzYy9lc2hlbGwu dGV4aSAoVmFyaWFibGVzKTogRGVzY3JpYmUgaG93IHRvIGdldCBhbGwgYXJndW1lbnRzCm9m IHRoZSBsYXN0IGNvbW1hbmQuCihEb2xsYXJzIEV4cGFuc2lvbik6IEV4cGxhaW4gbmVnYXRp dmUgaW5kaWNlcyBhbmQgaW5kZXggcmFuZ2VzLgooQnVncyBhbmQgaWRlYXMpOiBSZW1vdmUg bm93LWltcGxlbWVudGVkIGlkZWFzLgoKKiBldGMvTkVXUzogQW5ub3VuY2UgdGhpcyBjaGFu Z2UuCi0tLQogZG9jL21pc2MvZXNoZWxsLnRleGkgICAgICAgICAgICAgIHwgIDI0ICsrKy0t LQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrCiBsaXNwL2Vz aGVsbC9lc2gtdXRpbC5lbCAgICAgICAgICAgfCAgIDQgKwogbGlzcC9lc2hlbGwvZXNoLXZh ci5lbCAgICAgICAgICAgIHwgMTM2ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQog dGVzdC9saXNwL2VzaGVsbC9lc2gtdmFyLXRlc3RzLmVsIHwgMTAyICsrKysrKysrKysrKysr KysrLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTkzIGluc2VydGlvbnMoKyksIDgwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2VzaGVsbC50ZXhpIGIvZG9jL21pc2Mv ZXNoZWxsLnRleGkKaW5kZXggNTdhMjAyMGZkY2EuLjk0NzdkMGY1ZTMxIDEwMDY0NAotLS0g YS9kb2MvbWlzYy9lc2hlbGwudGV4aQorKysgYi9kb2MvbWlzYy9lc2hlbGwudGV4aQpAQCAt MTA1OSw3ICsxMDU5LDkgQEAgVmFyaWFibGVzCiBUaGlzIHJlZmVycyB0byB0aGUgbGFzdCBh cmd1bWVudCBvZiB0aGUgbGFzdCBjb21tYW5kLiAgV2l0aCBhCiBzdWJzY3JpcHQsIHlvdSBj YW4gYWNjZXNzIGFueSBhcmd1bWVudCBvZiB0aGUgbGFzdCBjb21tYW5kLiAgRm9yCiBleGFt cGxlLCBAc2FtcHskX1sxXX0gcmVmZXJzIHRvIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgdGhl IGxhc3QKLWNvbW1hbmQgKGV4Y2x1ZGluZyB0aGUgY29tbWFuZCBuYW1lIGl0c2VsZikuCitj b21tYW5kIChleGNsdWRpbmcgdGhlIGNvbW1hbmQgbmFtZSBpdHNlbGYpLiAgVG8gZ2V0IGFs bCBhcmd1bWVudHMgb2YKK3RoZSBsYXN0IGNvbW1hbmQsIHlvdSBjYW4gdXNlIGFuIGluZGV4 IHJhbmdlIGxpa2UgQHNhbXB7JF9bLi5dfQorKEBweHJlZntEb2xsYXJzIEV4cGFuc2lvbn0p LgogCiBAdmluZGV4ICQkCiBAaXRlbSAkJApAQCAtMTM3MCwxMSArMTM3MiwyMCBAQCBEb2xs YXJzIEV4cGFuc2lvbgogQGl0ZW0gYSBzZXF1ZW5jZQogRXhwYW5kcyB0byB0aGUgZWxlbWVu dCBhdCB0aGUgKHplcm8tYmFzZWQpIGluZGV4IEB2YXJ7aX0gb2YgdGhlCiBzZXF1ZW5jZSAo QHB4cmVme1NlcXVlbmNlcyBBcnJheXMgVmVjdG9ycywgU2VxdWVuY2VzLCAsIGVsaXNwLCBU aGUKLUVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0pLgorRW1hY3MgTGlzcCBSZWZlcmVu Y2UgTWFudWFsfSkuICBJZiBAdmFye2l9IGlzIG5lZ2F0aXZlLCBAdmFye2l9IGNvdW50cwor ZnJvbSB0aGUgZW5kLCBzbyAtMSByZWZlcnMgdG8gdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUg c2VxdWVuY2UuCisKK0lmIEB2YXJ7aX0gaXMgYSByYW5nZSBsaWtlIEBjb2Rle0B2YXJ7c3Rh cnR9Li5AdmFye2VuZH19LCB0aGlzIGV4cGFuZHMKK3RvIGEgc3Vic2VxdWVuY2UgZnJvbSB0 aGUgaW5kaWNlcyBAdmFye3N0YXJ0fSB0byBAdmFye2VuZH0sIHdoZXJlCitAdmFye2VuZH0g aXMgZXhjbHVkZWQuICBAdmFye3N0YXJ0fSBhbmQvb3IgQHZhcntlbmR9IGNhbiBhbHNvIGJl CitvbWl0dGVkLCB3aGljaCBpcyBlcXVpdmFsZW50IHRvIHRoZSBzdGFydCBhbmQvb3IgZW5k IG9mIHRoZSBlbnRpcmUKK2xpc3QuICBGb3IgZXhhbXBsZSwgQHNhbXB7JEB2YXJ7ZXhwcn1b LTIuLl19IGV4cGFuZHMgdG8gdGhlIGxhc3QgdHdvCit2YWx1ZXMgb2YgQHZhcntleHByfS4K IAogQGl0ZW0gYSBzdHJpbmcKIFNwbGl0IHRoZSBzdHJpbmcgYXQgd2hpdGVzcGFjZSwgYW5k IHRoZW4gZXhwYW5kIHRvIHRoZSBAdmFye2l9dGgKLWVsZW1lbnQgb2YgdGhlIHJlc3VsdGlu ZyBzZXF1ZW5jZS4KK2VsZW1lbnQgb2YgdGhlIHJlc3VsdGluZyBzZXF1ZW5jZS4gIEFzIGFi b3ZlLCBAdmFye2l9IGNhbiBiZSBhIHJhbmdlCitsaWtlIEBjb2Rle0B2YXJ7c3RhcnR9Li5A dmFye2VuZH19LgogCiBAaXRlbSBhbiBhbGlzdAogSWYgQHZhcntpfSBpcyBhIG5vbi1udW1l cmljIHZhbHVlLCBleHBhbmQgdG8gdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aApAQCAtMjQ0 MiwxMyArMjQ1Myw2IEBAIEJ1Z3MgYW5kIGlkZWFzCiAKIFRoaXMgd2F5LCB0aGUgdXNlciBj b3VsZCBjaGFuZ2UgaXQgdG8gdXNlIHJjIHN5bnRheDogQHNhbXB7PlsyPTFdfS4KIAotQGl0 ZW0gQWxsb3cgQHNhbXB7JF9bLTFdfSwgd2hpY2ggd291bGQgaW5kaWNhdGUgdGhlIGxhc3Qg ZWxlbWVudCBvZiB0aGUgYXJyYXkKLQotQGl0ZW0gTWFrZSBAc2FtcHskeFsqXX0gZXF1YWwg dG8gbGlzdGluZyBvdXQgdGhlIGZ1bGwgY29udGVudHMgb2YgQHNhbXB7eH0KLQotUmV0dXJu IHRoZW0gYXMgYSBsaXN0LCBzbyB0aGF0IEBzYW1weyRfWypdfSBpcyBhbGwgdGhlIGFyZ3Vt ZW50cyBvZiB0aGUKLWxhc3QgY29tbWFuZC4KLQogQGl0ZW0gQ29weSBBTlNJIGNvZGUgaGFu ZGxpbmcgZnJvbSBAZmlsZXt0ZXJtLmVsfSBpbnRvIEBmaWxle2VtLXRlcm0uZWx9CiAKIE1h a2UgaXQgcG9zc2libGUgZm9yIHRoZSB1c2VyIHRvIHNlbmQgY2hhci1ieS1jaGFyIHRvIHRo ZSB1bmRlcmx5aW5nCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IDEw ZTkxZWM0YWI5Li42OTRmODBlYmM1YiAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRj L05FV1MKQEAgLTE0Myw2ICsxNDMsMTMgQEAgb2YgYXJndW1lbnRzIGludG8gYSBjb21tYW5k LCBzdWNoIGFzIHdoZW4gZGVmaW5pbmcgYWxpYXNlcy4gIEZvciBtb3JlCiBpbmZvcm1hdGlv biwgc2VlIHRoZSAiKGVzaGVsbCkgRG9sbGFycyBFeHBhbnNpb24iIG5vZGUgaW4gdGhlIEVz aGVsbAogbWFudWFsLgogCisrKysKKyoqKiBFc2hlbGwgbm93IHN1cHBvcnRzIG5lZ2F0aXZl IG51bWJlcnMgYW5kIHJhbmdlcyBmb3IgaW5kaWNlcy4KK05vdywgeW91IGNhbiByZXRyaWV2 ZSB0aGUgbGFzdCBlbGVtZW50IG9mIGEgbGlzdCB3aXRoICckbXktbGlzdFstMV0nCitvciBn ZXQgYSBzdWJsaXN0IG9mIGVsZW1lbnRzIDIgdGhyb3VnaCA0IHdpdGggJyRteS1saXN0WzIu LjVdJy4gIEZvcgorbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSAiKGVzaGVsbCkgRG9sbGFy cyBFeHBhbnNpb24iIG5vZGUgaW4gdGhlCitFc2hlbGwgbWFudWFsLgorCiAtLS0KICoqKiBF c2hlbGwgbm93IHVzZXMgJ2ZpZWxkJyBwcm9wZXJ0aWVzIGluIGl0cyBvdXRwdXQuCiBJbiBw YXJ0aWN1bGFyLCB0aGlzIG1lYW5zIHRoYXQgcHJlc3NpbmcgdGhlICc8aG9tZT4nIGtleSBt b3ZlcyB0aGUKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC11dGlsLmVsIGIvbGlzcC9l c2hlbGwvZXNoLXV0aWwuZWwKaW5kZXggNTQ0YThhNzQwMzkuLjhkZjFkYzk5ODJiIDEwMDY0 NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtdXRpbC5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gt dXRpbC5lbApAQCAtMTAxLDYgKzEwMSwxMCBAQCBlc2hlbGwtbnVtYmVyLXJlZ2V4cAogZnVu Y3Rpb24gYHN0cmluZy10by1udW1iZXInLiIKICAgOnR5cGUgJ3JlZ2V4cCkKIAorKGRlZmN1 c3RvbSBlc2hlbGwtaW50ZWdlci1yZWdleHAgKHJ4ICg/ICItIikgKCsgZGlnaXQpKQorICAi UmVndWxhciBleHByZXNzaW9uIHVzZWQgdG8gbWF0Y2ggaW50ZWdlciBhcmd1bWVudHMuIgor ICA6dHlwZSAncmVnZXhwKQorCiAoZGVmY3VzdG9tIGVzaGVsbC1hbmdlLWxzLXVpZHMgbmls CiAgICJMaXN0IG9mIHVzZXIvaG9zdC9pZCBzdHJpbmdzLCB1c2VkIHRvIGRldGVybWluZSBy ZW1vdGUgb3duZXJzaGlwLiIKICAgOnR5cGUgJyhyZXBlYXQgKGNvbnMgOnRhZyAiSG9zdCBm b3IgVXNlci9VSUQgbWFwIgpkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZXNoLXZhci5lbCBi L2xpc3AvZXNoZWxsL2VzaC12YXIuZWwKaW5kZXggODNkZDVjYjUwZjUuLjYwYWFiOTJiMzNl IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtdmFyLmVsCisrKyBiL2xpc3AvZXNoZWxs L2VzaC12YXIuZWwKQEAgLTU4Nyw2ICs1ODcsOSBAQCBlc2hlbGwtZ2xvYi1mdW5jdGlvbgog CiAoZGVmdW4gZXNoZWxsLXBhcnNlLWluZGljZXMgKCkKICAgIlBhcnNlIGFuZCByZXR1cm4g YSBsaXN0IG9mIGluZGV4LWxpc3RzLgorVGhpcyBwcm9kdWNlcyBhIHNlcmllcyBvZiBMaXNw IGZvcm1zIHRvIGJlIHByb2Nlc3NlZCBieQorYGVzaGVsbC1wcmVwYXJlLWluZGljZXMnIGFu ZCB1bHRpbWF0ZWx5IGV2YWx1YXRlZCBieQorYGVzaGVsbC1kby1ldmFsJy4KIAogRm9yIGV4 YW1wbGUsIFwiWzAgMV1bMl1cIiBiZWNvbWVzOgogICAoKFwiMFwiIFwiMVwiKSAoXCIyXCIp KS4iCkBAIC02MDUsNiArNjA4LDM2IEBAIGVzaGVsbC1wYXJzZS1pbmRpY2VzCiAJICAoZ290 by1jaGFyICgxKyBlbmQpKSkpKQogICAgIChucmV2ZXJzZSBpbmRpY2VzKSkpCiAKKyhkZWZ1 biBlc2hlbGwtcGFyc2UtaW5kZXggKGluZGV4KQorICAiUGFyc2UgYSBzaW5nbGUgSU5ERVgg aW4gc3RyaW5nIGZvcm0uCitJZiBJTkRFWCBsb29rcyBsaWtlIGEgbnVtYmVyLCByZXR1cm4g dGhhdCBudW1iZXIuCisKK0lmIElOREVYIGxvb2tzIGxpa2UgXCJbQkVHSU5dLi5bRU5EXVwi LCB3aGVyZSBCRUdJTiBhbmQgRU5EIGxvb2sKK2xpa2UgaW50ZWdlcnMsIHJldHVybiBhIGNv bnMgY2VsbCBvZiBCRUdJTiBhbmQgRU5EIGFzIG51bWJlcnM7CitCRUdJTiBhbmQvb3IgRU5E IGNhbiBiZSBvbWl0dGVkIGhlcmUsIGluIHdoaWNoIGNhc2UgdGhlaXIgdmFsdWUKK2luIHRo ZSBjb25zIGlzIG5pbC4KKworT3RoZXJ3aXNlIChpbmNsdWRpbmcgaWYgSU5ERVggaXMgbm90 IGEgc3RyaW5nKSwgcmV0dXJuCit0aGUgb3JpZ2luYWwgdmFsdWUgb2YgSU5ERVguIgorICAo c2F2ZS1tYXRjaC1kYXRhCisgICAgKGNvbmQKKyAgICAgKChhbmQgKHN0cmluZ3AgaW5kZXgp IChnZXQtdGV4dC1wcm9wZXJ0eSAwICdudW1iZXIgaW5kZXgpKQorICAgICAgKHN0cmluZy10 by1udW1iZXIgaW5kZXgpKQorICAgICAoKGFuZCAoc3RyaW5ncCBpbmRleCkKKyAgICAgICAg ICAgKG5vdCAodGV4dC1wcm9wZXJ0eS1hbnkgMCAobGVuZ3RoIGluZGV4KSAnZXNjYXBlZCB0 IGluZGV4KSkKKyAgICAgICAgICAgKHN0cmluZy1tYXRjaCAocnggc3RyaW5nLXN0YXJ0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncm91cC1uIDEgKD8gKHJlZ2V4cCBlc2hl bGwtaW50ZWdlci1yZWdleHApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4u IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JvdXAtbiAyICg/IChyZWdleHAg ZXNoZWxsLWludGVnZXItcmVnZXhwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cmluZy1lbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgpKQorICAgICAg KGxldCAoKGJlZ2luIChtYXRjaC1zdHJpbmcgMSBpbmRleCkpCisgICAgICAgICAgICAoZW5k IChtYXRjaC1zdHJpbmcgMiBpbmRleCkpKQorICAgICAgICAoY29ucyAodW5sZXNzIChzdHJp bmctZW1wdHktcCBiZWdpbikgKHN0cmluZy10by1udW1iZXIgYmVnaW4pKQorICAgICAgICAg ICAgICAodW5sZXNzIChzdHJpbmctZW1wdHktcCBlbmQpIChzdHJpbmctdG8tbnVtYmVyIGVu ZCkpKSkpCisgICAgICh0CisgICAgICBpbmRleCkpKSkKKwogKGRlZnVuIGVzaGVsbC1ldmFs LWluZGljZXMgKGluZGljZXMpCiAgICJFdmFsdWF0ZSBJTkRJQ0VTLCBhIGxpc3Qgb2YgaW5k ZXgtbGlzdHMgZ2VuZXJhdGVkIGJ5IGBlc2hlbGwtcGFyc2UtaW5kaWNlcycuIgogICAoZGVj bGFyZSAob2Jzb2xldGUgZXNoZWxsLXByZXBhcmUtaW5kaWNlcyAiMzAuMSIpKQpAQCAtNzE2 LDU2ICs3NDksNjUgQEAgZXNoZWxsLWFwcGx5LWluZGljZXMKICcvZXRjL3Bhc3N3ZCcsIHRo ZSB2YXJpYWJsZSByZWZlcmVuY2Ugd291bGQgbG9vayBsaWtlOgogCiAgICR7Z3JlcCBqb2hu dyAvZXRjL3Bhc3N3ZH1bOiAyXSIKLSAgKHdoaWxlIGluZGljZXMKLSAgICAobGV0ICgocmVm cyAoY2FyIGluZGljZXMpKSkKLSAgICAgICh3aGVuIChzdHJpbmdwIHZhbHVlKQotCShsZXQg KHNlcGFyYXRvciAoaW5kZXggKGNhYXIgaW5kaWNlcykpKQotICAgICAgICAgICh3aGVuIChh bmQgKHN0cmluZ3AgaW5kZXgpCi0gICAgICAgICAgICAgICAgICAgICAobm90IChnZXQtdGV4 dC1wcm9wZXJ0eSAwICdudW1iZXIgaW5kZXgpKSkKLSAgICAgICAgICAgIChzZXRxIHNlcGFy YXRvciBpbmRleAotICAgICAgICAgICAgICAgICAgcmVmcyAoY2RyIHJlZnMpKSkKLQkgIChz ZXRxIHZhbHVlIChzcGxpdC1zdHJpbmcgdmFsdWUgc2VwYXJhdG9yKSkKLSAgICAgICAgICAo dW5sZXNzIHF1b3RlZAotICAgICAgICAgICAgKHNldHEgdmFsdWUgKG1hcGNhciAjJ2VzaGVs bC1jb252ZXJ0LXRvLW51bWJlciB2YWx1ZSkpKSkpCi0gICAgICAoY29uZAotICAgICAgICgo PCAobGVuZ3RoIHJlZnMpIDApCi0JKGVycm9yICJJbnZhbGlkIGFycmF5IHZhcmlhYmxlIGlu ZGV4OiAlcyIKLQkgICAgICAgKGVzaGVsbC1zdHJpbmdpZnkgcmVmcykpKQotICAgICAgICgo PSAobGVuZ3RoIHJlZnMpIDEpCi0JKHNldHEgdmFsdWUgKGVzaGVsbC1pbmRleC12YWx1ZSB2 YWx1ZSAoY2FyIHJlZnMpKSkpCi0gICAgICAgKHQKLQkobGV0ICgobmV3LXZhbHVlIChsaXN0 IHQpKSkKLQkgICh3aGlsZSByZWZzCi0JICAgIChuY29uYyBuZXctdmFsdWUKLQkJICAgKGxp c3QgKGVzaGVsbC1pbmRleC12YWx1ZSB2YWx1ZQotCQkJCQkgICAgIChjYXIgcmVmcykpKSkK LQkgICAgKHNldHEgcmVmcyAoY2RyIHJlZnMpKSkKLQkgIChzZXRxIHZhbHVlIChjZHIgbmV3 LXZhbHVlKSkpKSkpCi0gICAgKHNldHEgaW5kaWNlcyAoY2RyIGluZGljZXMpKSkKLSAgdmFs dWUpCisgIChkb2xpc3QgKHJlZnMgaW5kaWNlcyB2YWx1ZSkKKyAgICA7OyBGb3Igc3RyaW5n IHZhbHVlcywgY2hlY2sgaWYgdGhlIGZpcnN0IGluZGV4IGxvb2tzIGxpa2UgYQorICAgIDs7 IHJlZ2V4cCwgYW5kIGlmIHNvLCB1c2UgdGhhdCB0byBzcGxpdCB0aGUgc3RyaW5nLgorICAg ICh3aGVuIChzdHJpbmdwIHZhbHVlKQorICAgICAgKGxldCAoc2VwYXJhdG9yIChmaXJzdCAo Y2FyIHJlZnMpKSkKKyAgICAgICAgKHdoZW4gKHN0cmluZ3AgKGVzaGVsbC1wYXJzZS1pbmRl eCBmaXJzdCkpCisgICAgICAgICAgKHNldHEgc2VwYXJhdG9yIGZpcnN0CisgICAgICAgICAg ICAgICAgcmVmcyAoY2RyIHJlZnMpKSkKKyAgICAgICAgKHNldHEgdmFsdWUgKHNwbGl0LXN0 cmluZyB2YWx1ZSBzZXBhcmF0b3IpKQorICAgICAgICAodW5sZXNzIHF1b3RlZAorICAgICAg ICAgIChzZXRxIHZhbHVlIChtYXBjYXIgIydlc2hlbGwtY29udmVydC10by1udW1iZXIgdmFs dWUpKSkpKQorICAgIChjb25kCisgICAgICgoPCAobGVuZ3RoIHJlZnMpIDApCisgICAgICAo ZXJyb3IgIkludmFsaWQgYXJyYXkgdmFyaWFibGUgaW5kZXg6ICVzIgorICAgICAgICAgICAg IChlc2hlbGwtc3RyaW5naWZ5IHJlZnMpKSkKKyAgICAgKCg9IChsZW5ndGggcmVmcykgMSkK KyAgICAgIChzZXRxIHZhbHVlIChlc2hlbGwtaW5kZXgtdmFsdWUgdmFsdWUgKGNhciByZWZz KSkpKQorICAgICAodAorICAgICAgKGxldCAobmV3LXZhbHVlKQorICAgICAgICAoZG9saXN0 IChyZWYgcmVmcykKKyAgICAgICAgICAocHVzaCAoZXNoZWxsLWluZGV4LXZhbHVlIHZhbHVl IHJlZikgbmV3LXZhbHVlKSkKKyAgICAgICAgKHNldHEgdmFsdWUgKG5yZXZlcnNlIG5ldy12 YWx1ZSkpKSkpKSkKKworKHBjYXNlLWRlZm1hY3JvIGVzaGVsbC1pbmRleC1yYW5nZSAoc3Rh cnQgZW5kKQorICAiQSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyBhbiBFc2hlbGwgaW5kZXggcmFu Z2UuCitFWFBWQUwgc2hvdWxkIGJlIGEgY29ucyBjZWxsLCB3aXRoIGVhY2ggc2xvdCBjb250 YWluaW5nIGVpdGhlciBhbgoraW50ZWdlciBvciBuaWwuICBJZiB0aGlzIG1hdGNoZXMsIGJp bmQgdGhlIHZhbHVlcyBvZiB0aGUgc2x0b3MgdG8KK1NUQVJUIGFuZCBFTkQuIgorICAobGlz dCAnXGAgKGNvbnMgKGxpc3QgJ1wsIGAoYW5kIChvciAocHJlZCBpbnRlZ2VycCkgKHByZWQg bnVsbCkpICxzdGFydCkpCisgICAgICAgICAgICAgICAgICAobGlzdCAnXCwgYChhbmQgKG9y IChwcmVkIGludGVnZXJwKSAocHJlZCBudWxsKSkgLGVuZCkpKSkpCiAKIChkZWZ1biBlc2hl bGwtaW5kZXgtdmFsdWUgKHZhbHVlIGluZGV4KQogICAiUmVmZXJlbmNlIFZBTFVFIHVzaW5n IHRoZSBnaXZlbiBJTkRFWC4iCi0gICh3aGVuIChhbmQgKHN0cmluZ3AgaW5kZXgpIChnZXQt dGV4dC1wcm9wZXJ0eSAwICdudW1iZXIgaW5kZXgpKQotICAgIChzZXRxIGluZGV4IChzdHJp bmctdG8tbnVtYmVyIGluZGV4KSkpCi0gIChpZiAoaW50ZWdlcnAgaW5kZXgpCi0gICAgICAo Y29uZAotICAgICAgICgocmluZy1wIHZhbHVlKQotICAgICAgICAoaWYgKD4gaW5kZXggKHJp bmctbGVuZ3RoIHZhbHVlKSkKLSAgICAgICAgICAgIChlcnJvciAiSW5kZXggZXhjZWVkcyBs ZW5ndGggb2YgcmluZyIpCi0gICAgICAgICAgKHJpbmctcmVmIHZhbHVlIGluZGV4KSkpCi0g ICAgICAgKChsaXN0cCB2YWx1ZSkKLSAgICAgICAgKGlmICg+IGluZGV4IChsZW5ndGggdmFs dWUpKQotICAgICAgICAgICAgKGVycm9yICJJbmRleCBleGNlZWRzIGxlbmd0aCBvZiBsaXN0 IikKLSAgICAgICAgICAobnRoIGluZGV4IHZhbHVlKSkpCi0gICAgICAgKCh2ZWN0b3JwIHZh bHVlKQotICAgICAgICAoaWYgKD4gaW5kZXggKGxlbmd0aCB2YWx1ZSkpCi0gICAgICAgICAg ICAoZXJyb3IgIkluZGV4IGV4Y2VlZHMgbGVuZ3RoIG9mIHZlY3RvciIpCi0gICAgICAgICAg KGFyZWYgdmFsdWUgaW5kZXgpKSkKLSAgICAgICAodAotICAgICAgICAoZXJyb3IgIkludmFs aWQgZGF0YSB0eXBlIGZvciBpbmRleGluZyIpKSkKLSAgICA7OyBJTkRFWCBpcyBzb21lIG5v bi1pbnRlZ2VyIHZhbHVlLCBzbyB0cmVhdCBWQUxVRSBhcyBhbiBhbGlzdC4KLSAgICAoY2Ry IChhc3NvYyBpbmRleCB2YWx1ZSkpKSkKKyAgKGxldCAoKHBhcnNlZC1pbmRleCAoZXNoZWxs LXBhcnNlLWluZGV4IGluZGV4KSkpCisgICAgKGlmIChyaW5nLXAgdmFsdWUpCisgICAgICAg IChwY2FzZSBwYXJzZWQtaW5kZXgKKyAgICAgICAgICAoKHByZWQgaW50ZWdlcnApCisgICAg ICAgICAgIChyaW5nLXJlZiB2YWx1ZSBwYXJzZWQtaW5kZXgpKQorICAgICAgICAgICgoZXNo ZWxsLWluZGV4LXJhbmdlIHN0YXJ0IGVuZCkKKyAgICAgICAgICAgKGxldCogKChsZW4gKHJp bmctbGVuZ3RoIHZhbHVlKSkKKyAgICAgICAgICAgICAgICAgIChyZWFsLXN0YXJ0IChtb2Qg KG9yIHN0YXJ0IDApIGxlbikpCisgICAgICAgICAgICAgICAgICAocmVhbC1lbmQgKG1vZCAo b3IgZW5kIGxlbikgbGVuKSkpCisgICAgICAgICAgICAgKHdoZW4gKGFuZCAoZXEgcmVhbC1l bmQgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIGVuZCAwKSkpCisgICAg ICAgICAgICAgICAoc2V0cSByZWFsLWVuZCBsZW4pKQorICAgICAgICAgICAgIChyaW5nLWNv bnZlcnQtc2VxdWVuY2UtdG8tcmluZworICAgICAgICAgICAgICAoc2VxLXN1YnNlcSAocmlu Zy1lbGVtZW50cyB2YWx1ZSkgcmVhbC1zdGFydCByZWFsLWVuZCkpKSkKKyAgICAgICAgICAo XworICAgICAgICAgICAoZXJyb3IgIkludmFsaWQgaW5kZXggZm9yIHJpbmc6ICVzIiBpbmRl eCkpKQorICAgICAgKHBjYXNlIHBhcnNlZC1pbmRleAorICAgICAgICAoKHByZWQgaW50ZWdl cnApCisgICAgICAgICAod2hlbiAoPCBwYXJzZWQtaW5kZXggMCkKKyAgICAgICAgICAgKHNl dHEgcGFyc2VkLWluZGV4ICgrIHBhcnNlZC1pbmRleCAobGVuZ3RoIHZhbHVlKSkpKQorICAg ICAgICAgKHNlcS1lbHQgdmFsdWUgcGFyc2VkLWluZGV4KSkKKyAgICAgICAgKChlc2hlbGwt aW5kZXgtcmFuZ2Ugc3RhcnQgZW5kKQorICAgICAgICAgKHNlcS1zdWJzZXEgdmFsdWUgKG9y IHN0YXJ0IDApIGVuZCkpCisgICAgICAgIChfCisgICAgICAgICA7OyBJTkRFWCBpcyBzb21l IG5vbi1pbnRlZ2VyIHZhbHVlLCBzbyB0cmVhdCBWQUxVRSBhcyBhbiBhbGlzdC4KKyAgICAg ICAgIChjZHIgKGFzc29jIHBhcnNlZC1pbmRleCB2YWx1ZSkpKSkpKSkKIAogOzs7XyogVmFy aWFibGUgbmFtZSBjb21wbGV0aW9uCiAKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwv ZXNoLXZhci10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLXZhci10ZXN0cy5lbApp bmRleCAxMjQxMmQxMzY0MC4uNjc2N2Q5Mjg5ZjkgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9l c2hlbGwvZXNoLXZhci10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC12YXIt dGVzdHMuZWwKQEAgLTcyLDUyICs3Miw4OSBAQCBlc2gtdmFyLXRlc3QvaW50ZXJwLWxpc3Qt dmFyLWNvbmNhdAogICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtZXF1YWwgImVjaG8gYSQn ZXNoZWxsLXRlc3QtdmFsdWUneiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcoImExIiAyICIzeiIpKSkpCiAKLShlcnQtZGVmdGVzdCBlc2gtdmFyLXRlc3QvaW50ZXJw LXZhci1pbmRpY2VzICgpCi0gICJJbnRlcnBvbGF0ZSBsaXN0IHZhcmlhYmxlIHdpdGggaW5k aWNlcyIKLSAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlICcoInplcm8iICJvbmUiICJ0d28i ICJ0aHJlZSIgImZvdXIiKSkpCisoZGVmdW4gZXNoLXZhci10ZXN0L2ludGVycC12YXItaW5k aWNlcyAoZnVuY3Rpb24gJm9wdGlvbmFsIHJhbmdlLWZ1bmN0aW9uKQorICAiVGVzdCBpbnRl cnBvbGF0aW9uIG9mIGFuIGluZGV4YWJsZSB2YWx1ZSB3aXRoIGluZGljZXMuCitGVU5DVElP TiBpcyBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSBsaXN0IG9mIGVsZW1lbnRzIGFuZCByZXR1 cm5zCit0aGUgb2JqZWN0IHRvIHRlc3QuCisKK1JBTkdFLUZVTkNUSU9OIGlzIGEgZnVuY3Rp b24gdGhhdCB0YWtlcyBhIGxpc3Qgb2YgZWxlbWVudHMgYW5kCityZXR1cm5zIHRoZSBleHBl Y3RlZCByZXN1bHQgb2YgYW4gaW5kZXggcmFuZ2UgZm9yIHRoZSBvYmplY3Q7IGlmCituaWws IHVzZSBGVU5DVElPTiBpbnN0ZWFkLiIKKyAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlCisg ICAgICAgICAoZnVuY2FsbCBmdW5jdGlvbiAnKCJ6ZXJvIiAib25lIiAidHdvIiAidGhyZWUi ICJmb3VyIikpKQorICAgICAgICAocmFuZ2UtZnVuY3Rpb24gKG9yIHJhbmdlLWZ1bmN0aW9u IGZ1bmN0aW9uKSkpCisgICAgOzsgUG9zaXRpdmUgaW5kaWNlcwogICAgIChlc2hlbGwtY29t bWFuZC1yZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlWzBdIgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInplcm8iKQogICAgIChlc2hlbGwtY29tbWFu ZC1yZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlWzAgMl0iCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJ6ZXJvIiAidHdvIikpCiAgICAgKGVzaGVs bC1jb21tYW5kLXJlc3VsdC1lcXVhbCAiZWNobyAkZXNoZWxsLXRlc3QtdmFsdWVbMCAyIDRd IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiemVybyIgInR3byIgImZv dXIiKSkpKQotCi0oZXJ0LWRlZnRlc3QgZXNoLXZhci10ZXN0L2ludGVycC12YXItaW5kaWNl cy1zdWJjb21tYW5kICgpCi0gICJJbnRlcnBvbGF0ZSBsaXN0IHZhcmlhYmxlIHdpdGggc3Vi Y29tbWFuZCBleHBhbnNpb24gZm9yIGluZGljZXMuIgotICAoc2tpcC11bmxlc3MgKGV4ZWN1 dGFibGUtZmluZCAiZWNobyIpKQotICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgJygiemVy byIgIm9uZSIgInR3byIgInRocmVlIiAiZm91ciIpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcoInplcm8iICJ0d28iICJmb3VyIikpCisgICAgOzsgTmVnYXRpdmUg aW5kaWNlcworICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVs bC10ZXN0LXZhbHVlWy0xXSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJm b3VyIikKKyAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwt dGVzdC12YWx1ZVstMSAtM10iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn KCJmb3VyIiAidHdvIikpCisgICAgOzsgSW5kZXggcmFuZ2VzCiAgICAgKGVzaGVsbC1jb21t YW5kLXJlc3VsdC1lcXVhbAotICAgICAiZWNobyAkZXNoZWxsLXRlc3QtdmFsdWVbJHsqZWNo byAwfV0iCi0gICAgICJ6ZXJvIikKKyAgICAgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlWzEu LjRdIgorICAgICAoZnVuY2FsbCByYW5nZS1mdW5jdGlvbiAnKCJvbmUiICJ0d28iICJ0aHJl ZSIpKSkKICAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsCi0gICAgICJlY2hvICRl c2hlbGwtdGVzdC12YWx1ZVskeyplY2hvIDB9ICR7KmVjaG8gMn1dIgotICAgICAnKCJ6ZXJv IiAidHdvIikpKSkKKyAgICAgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlWy4uMl0iCisgICAg IChmdW5jYWxsIHJhbmdlLWZ1bmN0aW9uICcoInplcm8iICJvbmUiKSkpCisgICAgKGVzaGVs bC1jb21tYW5kLXJlc3VsdC1lcXVhbAorICAgICAiZWNobyAkZXNoZWxsLXRlc3QtdmFsdWVb LTIuLl0iCisgICAgIChmdW5jYWxsIHJhbmdlLWZ1bmN0aW9uICcoInRocmVlIiAiZm91ciIp KSkKKyAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsCisgICAgICJlY2hvICRlc2hl bGwtdGVzdC12YWx1ZVsuLl0iCisgICAgIChmdW5jYWxsIHJhbmdlLWZ1bmN0aW9uICcoInpl cm8iICJvbmUiICJ0d28iICJ0aHJlZSIgImZvdXIiKSkpCisgICAgKGVzaGVsbC1jb21tYW5k LXJlc3VsdC1lcXVhbAorICAgICAiZWNobyAkZXNoZWxsLXRlc3QtdmFsdWVbMS4uNCAtMi4u XSIKKyAgICAgKGxpc3QgKGZ1bmNhbGwgcmFuZ2UtZnVuY3Rpb24gJygib25lIiAidHdvIiAi dGhyZWUiKSkKKyAgICAgICAgICAgKGZ1bmNhbGwgcmFuZ2UtZnVuY3Rpb24gJygidGhyZWUi ICJmb3VyIikpKSkpKQorCisoZXJ0LWRlZnRlc3QgZXNoLXZhci10ZXN0L2ludGVycC12YXIt aW5kaWNlcy9saXN0ICgpCisgICJJbnRlcnBvbGF0ZSBsaXN0IHZhcmlhYmxlIHdpdGggaW5k aWNlcy4iCisgIChlc2gtdmFyLXRlc3QvaW50ZXJwLXZhci1pbmRpY2VzICMnaWRlbnRpdHkp KQorCisoZXJ0LWRlZnRlc3QgZXNoLXZhci10ZXN0L2ludGVycC12YXItaW5kaWNlcy92ZWN0 b3IgKCkKKyAgIkludGVycG9sYXRlIHZlY3RvciB2YXJpYWJsZSB3aXRoIGluZGljZXMuIgor ICAoZXNoLXZhci10ZXN0L2ludGVycC12YXItaW5kaWNlcyAjJ3Zjb25jYXQpKQogCi0oZXJ0 LWRlZnRlc3QgZXNoLXZhci10ZXN0L2ludGVycC12YXItc3BsaXQtaW5kaWNlcyAoKQorKGVy dC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9pbnRlcnAtdmFyLWluZGljZXMvcmluZyAoKQorICAi SW50ZXJwb2xhdGUgcmluZyB2YXJpYWJsZSB3aXRoIGluZGljZXMuIgorICAoZXNoLXZhci10 ZXN0L2ludGVycC12YXItaW5kaWNlcyAjJ3JpbmctY29udmVydC1zZXF1ZW5jZS10by1yaW5n KSkKKworKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9pbnRlcnAtdmFyLWluZGljZXMvc3Bs aXQgKCkKICAgIkludGVycG9sYXRlIHN0cmluZyB2YXJpYWJsZSB3aXRoIGluZGljZXMuIgot ICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgInplcm8gb25lIHR3byB0aHJlZSBmb3VyIikp Ci0gICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1lcXVhbCAiZWNobyAkZXNoZWxsLXRlc3Qt dmFsdWVbMF0iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiemVybyIpCi0g ICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1lcXVhbCAiZWNobyAkZXNoZWxsLXRlc3QtdmFs dWVbMCAyXSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoInplcm8iICJ0 d28iKSkKLSAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwt dGVzdC12YWx1ZVswIDIgNF0iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn KCJ6ZXJvIiAidHdvIiAiZm91ciIpKSkpCisgIChlc2gtdmFyLXRlc3QvaW50ZXJwLXZhci1p bmRpY2VzCisgICAobGFtYmRhICh2YWx1ZXMpIChzdHJpbmctam9pbiB2YWx1ZXMgIiAiKSkK KyAgICMnaWRlbnRpdHkpKQogCiAoZXJ0LWRlZnRlc3QgZXNoLXZhci10ZXN0L2ludGVycC12 YXItc3RyaW5nLXNwbGl0LWluZGljZXMgKCkKICAgIkludGVycG9sYXRlIHN0cmluZyB2YXJp YWJsZSB3aXRoIHN0cmluZyBzcGxpdHRlciBhbmQgaW5kaWNlcy4iCisgIDs7IFRlc3QgdXNp bmcgcHVuY3R1YXRpb24gYXMgYSBkZWxpbWl0ZXIuCiAgIChsZXQgKChlc2hlbGwtdGVzdC12 YWx1ZSAiemVybzpvbmU6dHdvOnRocmVlOmZvdXIiKSkKICAgICAoZXNoZWxsLWNvbW1hbmQt cmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwtdGVzdC12YWx1ZVs6IDBdIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInplcm8iKQogICAgIChlc2hlbGwtY29tbWFuZC1y ZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlWzogMCAyXSIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcoInplcm8iICJ0d28iKSkpCisgIDs7IFRlc3Qg dXNpbmcgYSBsZXR0ZXIgYXMgYSBkZWxpbWl0ZXIuCiAgIChsZXQgKChlc2hlbGwtdGVzdC12 YWx1ZSAiemVyb1hvbmVYdHdvWHRocmVlWGZvdXIiKSkKICAgICAoZXNoZWxsLWNvbW1hbmQt cmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwtdGVzdC12YWx1ZVtYIDBdIgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInplcm8iKQogICAgIChlc2hlbGwtY29tbWFuZC1y ZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlW1ggMCAyXSIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcoInplcm8iICJ0d28iKSkpCisgIDs7IFRlc3Qg dXNpbmcgYSBudW1iZXIgYXMgYSBkZWxpbWl0ZXIuCisgIChsZXQgKChlc2hlbGwtdGVzdC12 YWx1ZSAiemVybzBvbmUwdHdvMHRocmVlMGZvdXIiKSkKKyAgICAoZXNoZWxsLWNvbW1hbmQt cmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwtdGVzdC12YWx1ZVtcIjBcIiAwXSIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6ZXJvIikKKyAgICAoZXNoZWxsLWNvbW1h bmQtcmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwtdGVzdC12YWx1ZVtcIjBcIiAwIDJdIgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiemVybyIgInR3byIpKSkpCiAK IChlcnQtZGVmdGVzdCBlc2gtdmFyLXRlc3QvaW50ZXJwLXZhci1yZWdleHAtc3BsaXQtaW5k aWNlcyAoKQogICAiSW50ZXJwb2xhdGUgc3RyaW5nIHZhcmlhYmxlIHdpdGggcmVnZXhwIHNw bGl0dGVyIGFuZCBpbmRpY2VzLiIKKyAgOzsgVGVzdCB1c2luZyBhIHJlZ2V4cCBhcyBhIGRl bGltaXRlci4KICAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlICJ6ZXJvOm9uZSF0d286dGhy ZWUhZm91ciIpKQogICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtZXF1YWwgImVjaG8gJGVz aGVsbC10ZXN0LXZhbHVlWydbOiFdJyAwXSIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJ6ZXJvIikKQEAgLTEyNiwxNSArMTYzLDM0IEBAIGVzaC12YXItdGVzdC9pbnRl cnAtdmFyLXJlZ2V4cC1zcGxpdC1pbmRpY2VzCiAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3Vs dC1lcXVhbCAiZWNobyAkZXNoZWxsLXRlc3QtdmFsdWVbXCJbOiFdXCIgMF0iCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiemVybyIpCiAgICAgKGVzaGVsbC1jb21tYW5k LXJlc3VsdC1lcXVhbCAiZWNobyAkZXNoZWxsLXRlc3QtdmFsdWVbXCJbOiFdXCIgMCAyXSIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoInplcm8iICJ0d28iKSkpCisg IDs7IFRlc3QgdXNpbmcgYSByZWdleHAgdGhhdCBsb29rcyBsaWtlIHJhbmdlIHN5bnRheCBh cyBhIGRlbGltaXRlci4KKyAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlICJ6ZXJvMC4uMG9u ZTAuLjB0d28wLi4wdGhyZWUwLi4wZm91ciIpKQorICAgIChlc2hlbGwtY29tbWFuZC1yZXN1 bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlW1wiMC4uMFwiIDBdIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInplcm8iKQorICAgIChlc2hlbGwtY29tbWFu ZC1yZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlW1wiMC4uMFwiIDAgMl0i CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJ6ZXJvIiAidHdvIikpKSkK IAogKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9pbnRlcnAtdmFyLWFzc29jICgpCiAgICJJ bnRlcnBvbGF0ZSBhbGlzdCB2YXJpYWJsZSB3aXRoIGluZGV4LiIKLSAgKGxldCAoKGVzaGVs bC10ZXN0LXZhbHVlICcoKCJmb28iIC4gMSkgKGJhciAuIDIpKSkpCisgIChsZXQgKChlc2hl bGwtdGVzdC12YWx1ZSAnKCgiZm9vIiAuIDEpIChiYXIgLiAyKSAoIjMiIC4gInRocmVlIikp KSkKICAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwtdGVz dC12YWx1ZVtmb29dIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkKICAg ICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICJlY2hvICRlc2hlbGwtdGVzdC12YWx1 ZVsjJ2Jhcl0iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKQorICAgIChlc2hlbGwtY29tbWFuZC1y ZXN1bHQtZXF1YWwgImVjaG8gJGVzaGVsbC10ZXN0LXZhbHVlW1wiM1wiXSIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ0aHJlZSIpKSkKKworKGVydC1kZWZ0ZXN0IGVz aC12YXItdGVzdC9pbnRlcnAtdmFyLWluZGljZXMtc3ViY29tbWFuZCAoKQorICAiSW50ZXJw b2xhdGUgbGlzdCB2YXJpYWJsZSB3aXRoIHN1YmNvbW1hbmQgZXhwYW5zaW9uIGZvciBpbmRp Y2VzLiIKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgImVjaG8iKSkKKyAgKGxl dCAoKGVzaGVsbC10ZXN0LXZhbHVlICcoInplcm8iICJvbmUiICJ0d28iICJ0aHJlZSIgImZv dXIiKSkpCisgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1lcXVhbAorICAgICAiZWNobyAk ZXNoZWxsLXRlc3QtdmFsdWVbJHsqZWNobyAwfV0iCisgICAgICJ6ZXJvIikKKyAgICAoZXNo ZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsCisgICAgICJlY2hvICRlc2hlbGwtdGVzdC12YWx1 ZVskeyplY2hvIDB9ICR7KmVjaG8gMn1dIgorICAgICAnKCJ6ZXJvIiAidHdvIikpKSkKIAog KGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9pbnRlcnAtdmFyLWxlbmd0aC1saXN0ICgpCiAg ICJJbnRlcnBvbGF0ZSBsZW5ndGggb2YgbGlzdCB2YXJpYWJsZS4iCi0tIAoyLjI1LjEKCg== --------------3MSg5M4gmD80NNSLx6dCDcAB--