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#59960: 30.0.50; Eshell's $* variable (used to define aliases) doesn't work as expected Date: Sat, 10 Dec 2022 22:13:39 -0800 Message-ID: <9d1df9de-5ecc-0499-de5f-28d34f6a821d@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------XkRGopJFTxJDijZg2sySHWPt" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24649"; mail-complaints-to="usenet@ciao.gmane.io" To: 59960@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 11 07:14:22 2022 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 1p4FbR-0006Bw-Rm for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 11 Dec 2022 07:14:22 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p4FbA-0001vS-Lt; Sun, 11 Dec 2022 01:14: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 1p4Fb9-0001v8-4v for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:14: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 1p4Fb8-000195-Nf for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:14:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p4Fb8-0005G1-7q for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:14: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, 11 Dec 2022 06:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59960 X-GNU-PR-Package: emacs X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.167073923220194 (code B ref -1); Sun, 11 Dec 2022 06:14:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 11 Dec 2022 06:13:52 +0000 Original-Received: from localhost ([127.0.0.1]:46100 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4Fax-0005Fe-7T for submit@debbugs.gnu.org; Sun, 11 Dec 2022 01:13:52 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:42640) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p4Far-0005FY-Q4 for submit@debbugs.gnu.org; Sun, 11 Dec 2022 01:13:49 -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 1p4Far-0001sj-Iz for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:13:45 -0500 Original-Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p4Fao-00016Y-CH for bug-gnu-emacs@gnu.org; Sun, 11 Dec 2022 01:13:45 -0500 Original-Received: by mail-pj1-x102a.google.com with SMTP id t11-20020a17090a024b00b0021932afece4so12342519pje.5 for ; Sat, 10 Dec 2022 22:13:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:from:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=N+VF9WK+rfFBniTQbQcH2aHwYRjojjOnVmq6qtc4igc=; b=jdRJNIuLJOTbq9b6qlimGDOr912I1Q8OLwJCKMTtT0QeDmhCDFPyvOK44+SSfzKjgV TfBe7/clEWjGrrogw823R5IaH/+KlULFim2Q83pWpe9QG/X/pXNCCiA26otySuMhOLQP wSXuE9DsYBpEjmWwACVnsUKoLLqubh7hJGR3uaHFC3K+N8miEhjZjzTgpdcCKPwWylXn WtsdJsCN3Zc6Nqq3uLHOVi//biUmBLsdkQffaLwF34kt/fqpGb+T8pdckj49nyWY62K7 D7jWsH/UBNzc1A26Cy7hla0mW83PUaVZ7BxCocdLmf4ycsyaP6viGY2aIlkktg3AnPIU UdPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:from:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=N+VF9WK+rfFBniTQbQcH2aHwYRjojjOnVmq6qtc4igc=; b=HzUXTC5xEUqvBV5sM3Fgg9S3XJ2lZx9av+mVKdGMnn2kem+oiN2IBhjL6nGU+31kRV 65TfBtesbOE1Cl8xVm7gkYGZK1aRbK1NTt1Ny/5yVEnfYxgLbak3c14lnF0AmXY6dRci fZEbiln9b7XMeuBmqMg1J8zgLDFW5ZAEa5nXNkYvRbf5xe2LAoKSUahlSVKHB4dpDAi9 yR/2BPC8zB7tD6D+Esc43hZ8orVa50WEuqVtSnIh4fAWUfbnbja9WJfG76POL9umvTls 1i8yrK3jM+8wOJ3hnz4ORZSXoQ5HNGCrtA2dI6GkhQrjkmOICGS9/ZqUJ92fV1V/4d4+ 3OpQ== X-Gm-Message-State: ANoB5pmDw/nxIIuVcfsQV2gkiMNNjrVStMiK0lSMsCyGuyehzatC0nyK p0hqJwGZtaMPiXTsO0uuSeHBpZ8MiN0= X-Google-Smtp-Source: AA0mqf4bdVMbHUrIAShrvm4ksu78KjnLN5y6svywZVa/n4vp20vyn7Jgg4Yaul2kRGxZSO9OzxUCDw== X-Received: by 2002:a05:6a20:c501:b0:a4:b13c:1181 with SMTP id gm1-20020a056a20c50100b000a4b13c1181mr15135337pzb.41.1670739220498; Sat, 10 Dec 2022 22:13:40 -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 d26-20020a630e1a000000b0047702d44861sm3057945pgl.18.2022.12.10.22.13.38 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 10 Dec 2022 22:13:39 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::102a; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x102a.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:250573 Archived-At: This is a multi-part message in MIME format. --------------XkRGopJFTxJDijZg2sySHWPt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This bug report originally comes from a Reddit post[1] where a user found that aliasing the Eshell built-in "mv" and "cp" commands didn't work properly. I'll show a slightly simpler example though. Starting from "emacs -Q -f eshell": ~ $ alias my-echo "echo A $* Z" ~ $ my-echo b c d ("A" ("b" "c" "d") "Z") ~ $ echo A b c d Z ("A" "b" "c" "d" "Z") As you can see above, the "$*" special variable inserts the list of arguments passed to the alias *as a sublist*. That might be what you want sometimes, but more likely, you'd want to insert the arguments in-place, like with ",@" in Emacs Lisp backquote forms. (Note: for external processes, this isn't an issue because Eshell flattens all the arguments to external commands.) Attached is a draft patch to fix this. It adds a new "$@expr" variable expansion to Eshell which lets you splice a list in-place: ~ $ alias my-echo 'echo A $@* Z' ~ $ my-echo b c d ("A" "b" "c" "d" "Z") Currently, this only works in simple situations like the above. It should work for any variable, but likely won't work with Eshell for loops, inside double quotes, etc. It would be nice to get this working in a wider variety of places in Eshell command forms before merging. Still, even what's here is already pretty useful, I think. I'm posting this now mainly to get feedback on whether this is the right direction to go in the first place. [1] https://old.reddit.com/r/emacs/comments/xs2ofo/eshell_aliases_for_mv_and_cp_using_their_elisp/ --------------XkRGopJFTxJDijZg2sySHWPt Content-Type: text/plain; charset=UTF-8; name="0001-Support-completion-of-variables-with-the-length-oper.patch" Content-Disposition: attachment; filename*0="0001-Support-completion-of-variables-with-the-length-oper.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzMjZmMGQxMWE0OGRhZWY4ZjlkOTM1ZGU5ZGEyMmUxYjE2NWJmZGRmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTAgRGVjIDIwMjIgMjA6NTI6MjggLTA4MDAKU3ViamVjdDogW1BB VENIIDEvMl0gU3VwcG9ydCBjb21wbGV0aW9uIG9mIHZhcmlhYmxlcyB3aXRoIHRoZSBsZW5n dGggb3BlcmF0b3IKIGluIEVzaGVsbAoKVGhlc2UgYXJlIGZvcm1zIGxpa2UgJyQjVkFSSUFC TEUnLgoKKiBsaXNwL2VzaGVsbC9lc2gtdmFyLmVsIChlc2hlbGwtY29tcGxldGUtdmFyaWFi bGUtcmVmZXJlbmNlKTogU3VwcG9ydAp0aGUgbGVuZ3RoIG9wZXJhdG9yLgotLS0KIGxpc3Av ZXNoZWxsL2VzaC12YXIuZWwgfCAxMyArKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZXNo ZWxsL2VzaC12YXIuZWwgYi9saXNwL2VzaGVsbC9lc2gtdmFyLmVsCmluZGV4IDU3ZWE0MmY0 OTMzLi41ODI0ZGE2ZGMwZSAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZXNoLXZhci5lbAor KysgYi9saXNwL2VzaGVsbC9lc2gtdmFyLmVsCkBAIC03NTEsMTIgKzc1MSwxMyBAQCBlc2hl bGwtaW5kZXgtdmFsdWUKIAogKGRlZnVuIGVzaGVsbC1jb21wbGV0ZS12YXJpYWJsZS1yZWZl cmVuY2UgKCkKICAgIklmIHRoZXJlIGlzIGEgdmFyaWFibGUgcmVmZXJlbmNlLCBjb21wbGV0 ZSBpdC4iCi0gIChsZXQgKChhcmcgKHBjb21wbGV0ZS1hY3R1YWwtYXJnKSkgaW5kZXgpCi0g ICAgKHdoZW4gKHNldHEgaW5kZXgKLQkJKHN0cmluZy1tYXRjaAotCQkgKGNvbmNhdCAiXFwk XFwoIiBlc2hlbGwtdmFyaWFibGUtbmFtZS1yZWdleHAKLQkJCSAiXFwpP1xcJyIpIGFyZykp Ci0gICAgICAoc2V0cSBwY29tcGxldGUtc3R1YiAoc3Vic3RyaW5nIGFyZyAoMSsgaW5kZXgp KSkKKyAgKGxldCAoKGFyZyAocGNvbXBsZXRlLWFjdHVhbC1hcmcpKSkKKyAgICAod2hlbiAo c3RyaW5nLW1hdGNoCisgICAgICAgICAgIChyeCAiJCIgKD8gIiMiKQorICAgICAgICAgICAg ICAgKD8gKGdyb3VwIChyZWdleHAgZXNoZWxsLXZhcmlhYmxlLW5hbWUtcmVnZXhwKSkpCisg ICAgICAgICAgICAgICBzdHJpbmctZW5kKQorICAgICAgICAgICBhcmcpCisgICAgICAoc2V0 cSBwY29tcGxldGUtc3R1YiAoc3Vic3RyaW5nIGFyZyAobWF0Y2gtYmVnaW5uaW5nIDEpKSkK ICAgICAgICh0aHJvdyAncGNvbXBsZXRlLWNvbXBsZXRpb25zIChlc2hlbGwtdmFyaWFibGVz LWxpc3QpKSkpKQogCiAoZGVmdW4gZXNoZWxsLXZhcmlhYmxlcy1saXN0ICgpCi0tIAoyLjI1 LjEKCg== --------------XkRGopJFTxJDijZg2sySHWPt Content-Type: text/plain; charset=UTF-8; name="0002-Add-support-for-the-splice-operator-in-Eshell.patch" Content-Disposition: attachment; filename="0002-Add-support-for-the-splice-operator-in-Eshell.patch" Content-Transfer-Encoding: base64 RnJvbSA1OTdiNDE1NzY5MDdkNWI2MjMzZTAyY2ZmMTY2YTgzNjQ0YjlmOWE1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBOb3YgMjAyMiAyMjo0OToyMyAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMi8yXSBBZGQgc3VwcG9ydCBmb3IgdGhlICJzcGxpY2Ugb3BlcmF0b3IiIGluIEVzaGVs bAoKVGhpcyBhbGxvd3Mgc3BsaWNpbmcgbGlzdHMgaW4tcGxhY2UgaW4gYXJndW1lbnQgbGlz dHMsIHdoaWNoIGlzCnBhcnRpY3VsYXJseSBpbXBvcnRhbnQgd2hlbiBkZWZpbmluZyBhbGlh c2VzIHVzaW5nIHRoZSAnJConIHNwZWNpYWwKdmFyaWFibGUuCgoqIGxpc3AvZXNoZWxsL2Vz aC12YXIuZWwgKGVzaGVsbC1wYXJzZS12YXJpYWJsZSk6IEFkZCBzdXBwb3J0IGZvciB0aGUK c3BsaWNlIG9wZXJhdG9yLgooZXNoZWxsLWludGVycG9sYXRlLXZhcmlhYmxlKTogTGV0ICdl c2hlbGwtcGFyc2UtdmFyaWFibGUnIGhhbmRsZQphZGRpbmcgJ2VzaGVsbC1lc2NhcGUtYXJn Jy4KKGVzaGVsbC1jb21wbGV0ZS12YXJpYWJsZS1yZWZlcmVuY2UpOiBIYW5kbGUgdGhlIHNw bGljZSBvcGVyYXRvci4KCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxsLXJld3Jp dGUtbmFtZWQtY29tbWFuZCk6IEhhbmRsZQonZXNoZWxsLXNwbGljZS1hcmdzJy4KCiogbGlz cC9lc2hlbGwvZXNoLWFyZy5lbCAoZXNoZWxsLXNwbGljZS1hcmdzKTogTmV3IGZ1bmN0aW9u LgoKKiBsaXNwL2VzaGVsbC9lbS1jbXBsLmVsIChlc2hlbGwtY29tcGxldGUtcGFyc2UtYXJn dW1lbnRzKTogUmVtb3ZlCidlc2hlbGwtc3BsaWNlLWFyZ3MnIHNpZ2lscyBpbiBFc2hlbGwg Y29tbWFuZCBmb3JtcyBzbyB0aGF0IHdlIGNhbgpwZXJmb3JtIGNvbXBsZXRpb24gb24gc3Bs aWNlLWV4cGFuc2lvbnMuCgoqIGxpc3AvZXNoZWxsL2VtLXVuaXguZWwgKGVzaGVsbC1jb21w bGV0ZS1ob3N0LXJlZmVyZW5jZSk6IERvbid0IHRyeQp0byBjb21wbGV0ZSBhcmd1bWVudHMg Y29udGFpbmluZyAiJEAiLgoKKiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC12YXItdGV0cy5lbCAo ZXNoLXZhci10ZXN0L2ludGVycC12YXItc3BsaWNlKQooZXNoLXZhci10ZXN0L2ludGVycC12 YXItc3BsaWNlLWNvbmNhdCk6IE5ldyB0ZXN0cy4KCiogZG9jL21pc2MvZXNoZWxsLnRleGkg KEFsaWFzZXMpOiBFeHBhbmQgZG9jdW1lbnRhdGlvbiBhbmQgdXNlICckQConLgooRG9sbGFy cyBFeHBhbnNpb24pOiBFeHBsYWluIHRoZSBzcGxpY2Ugb3BlcmF0b3IuCgoqIGV0Yy9ORVdT OiBBbm5vdW5jZSB0aGlzIGNoYW5nZS4KLS0tCiBkb2MvbWlzYy9lc2hlbGwudGV4aSAgICAg ICAgICAgICAgfCA2MiArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiBldGMvTkVX UyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKwogbGlzcC9lc2hlbGwvZW0t Y21wbC5lbCAgICAgICAgICAgIHwgMjYgKysrKysrKystLS0tLQogbGlzcC9lc2hlbGwvZW0t dW5peC5lbCAgICAgICAgICAgIHwgMTIgKysrKy0tCiBsaXNwL2VzaGVsbC9lc2gtYXJnLmVs ICAgICAgICAgICAgfCAgNSArKysKIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAg ICB8IDMxICsrKysrKysrKysrKy0tLS0KIGxpc3AvZXNoZWxsL2VzaC12YXIuZWwgICAgICAg ICAgICB8IDEyICsrKystLQogdGVzdC9saXNwL2VzaGVsbC9lc2gtdmFyLXRlc3RzLmVsIHwg MzAgKysrKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCsp LCA0NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbWlzYy9lc2hlbGwudGV4aSBi L2RvYy9taXNjL2VzaGVsbC50ZXhpCmluZGV4IDEzODNiNDEyY2U3Li5mYTFkMTZmNzkxMyAx MDA2NDQKLS0tIGEvZG9jL21pc2MvZXNoZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxs LnRleGkKQEAgLTEwMjgsMjMgKzEwMjgsMjUgQEAgQWxpYXNlcwogQHNlY3Rpb24gQWxpYXNl cwogCiBAdmluZGV4ICQqCi1AZmluZGV4IGVzaGVsbC1leHBhbmQtaGlzdG9yeS1yZWZlcmVu Y2VzCitAZmluZGV4IGVzaGVsbC1yZWFkLWFsaWFzZXMtbGlzdAogQWxpYXNlcyBhcmUgY29t bWFuZHMgdGhhdCBleHBhbmQgdG8gYSBsb25nZXIgaW5wdXQgbGluZS4gIEZvciBleGFtcGxl LAotQGNvbW1hbmR7bGx9IGlzIGEgY29tbW9uIGFsaWFzIGZvciBAY29kZXtscyAtbH0sIGFu ZCB3b3VsZCBiZSBkZWZpbmVkCi13aXRoIHRoZSBjb21tYW5kIGludm9jYXRpb24gQGtiZHth bGlhcyBsbCAnbHMgLWwgJConfTsgd2l0aCB0aGlzIGRlZmluZWQsCi1ydW5uaW5nIEBzYW1w e2xsIGZvb30gaW4gRXNoZWxsIHdpbGwgYWN0dWFsbHkgcnVuIEBzYW1we2xzIC1sIGZvb30u Ci1BbGlhc2VzIGRlZmluZWQgKG9yIGRlbGV0ZWQpIGJ5IHRoZSBAY29tbWFuZHthbGlhc30g Y29tbWFuZCBhcmUKLWF1dG9tYXRpY2FsbHkgd3JpdHRlbiB0byB0aGUgZmlsZSBuYW1lZCBi eSBAY29kZXtlc2hlbGwtYWxpYXNlcy1maWxlfSwKLXdoaWNoIHlvdSBjYW4gYWxzbyBlZGl0 IGRpcmVjdGx5LiAgQWZ0ZXIgZG9pbmcgc28sIHVzZSBAd3tAa2Jke00teAotZXNoZWxsLXJl YWQtYWxpYXNlcy1saXN0fX0gdG8gbG9hZCB0aGUgZWRpdGVkIGFsaWFzZXMuCitAY29tbWFu ZHtsbH0gaXMgYSBjb21tb24gYWxpYXMgZm9yIEBjb2Rle2xzIC1sfS4gIFRvIGRlZmluZSB0 aGlzIGFsaWFzCitpbiBFc2hlbGwsIHlvdSBjYW4gdXNlIHRoZSBjb21tYW5kIGludm9jYXRp b24gQGtiZHthbGlhcyBsbCAnbHMgLWwKKyRAQConfTsgd2l0aCB0aGlzIGRlZmluZWQsIHJ1 bm5pbmcgQHNhbXB7bGwgZm9vfSBpbiBFc2hlbGwgd2lsbAorYWN0dWFsbHkgcnVuIEBzYW1w e2xzIC1sIGZvb30uICBBbGlhc2VzIGRlZmluZWQgKG9yIGRlbGV0ZWQpIGJ5IHRoZQorQGNv bW1hbmR7YWxpYXN9IGNvbW1hbmQgYXJlIGF1dG9tYXRpY2FsbHkgd3JpdHRlbiB0byB0aGUg ZmlsZSBuYW1lZCBieQorQGNvZGV7ZXNoZWxsLWFsaWFzZXMtZmlsZX0sIHdoaWNoIHlvdSBj YW4gYWxzbyBlZGl0IGRpcmVjdGx5LiAgQWZ0ZXIKK2RvaW5nIHNvLCB1c2UgQHd7QGtiZHtN LXggZXNoZWxsLXJlYWQtYWxpYXNlcy1saXN0fX0gdG8gbG9hZCB0aGUKK2VkaXRlZCBhbGlh c2VzLgogCiBAdmluZGV4ICQxLCAkMiwgQGRvdHN7fQogTm90ZSB0aGF0IHVubGlrZSBhbGlh c2VzIGluIEJhc2gsIGFyZ3VtZW50cyBtdXN0IGJlIGhhbmRsZWQKLWV4cGxpY2l0bHkuICBU eXBpY2FsbHkgdGhlIGFsaWFzIGRlZmluaXRpb24gd291bGQgZW5kIGluIEBzYW1weyQqfSB0 bwotcGFzcyBhbGwgYXJndW1lbnRzIGFsb25nLiAgTW9yZSBzZWxlY3RpdmUgdXNlIG9mIGFy Z3VtZW50cyB2aWEKLUBzYW1weyQxfSwgQHNhbXB7JDJ9LCBldGMuLCBpcyBhbHNvIHBvc3Np YmxlLiAgRm9yIGV4YW1wbGUsCi1Aa2Jke2FsaWFzIG1jZCAnbWtkaXIgJDEgJiYgY2QgJDEn fSB3b3VsZCBjYXVzZSBAa2Jke21jZCBmb299IHRvCi1jcmVhdGUgYW5kIHN3aXRjaCB0byBh IGRpcmVjdG9yeSBjYWxsZWQgQHNhbXB7Zm9vfS4KK2V4cGxpY2l0bHkuICBJbiBtb3N0IGNh c2VzLCB5b3Ugc2hvdWxkIGVuZCB0aGUgYWxpYXMgZGVmaW5pdGlvbiB3aXRoCitAc2FtcHsk QEAqfSB0byBwYXNzIGFsbCBhcmd1bWVudHMgYWxvbmcsIHNwbGljaW5nIHRoZW0gaW50byB5 b3VyCithcmd1bWVudCBsaXN0IChAcHhyZWZ7RG9sbGFycyBFeHBhbnNpb259KS4gIE1vcmUg c2VsZWN0aXZlIHVzZSBvZgorYXJndW1lbnRzIHZpYSBAc2FtcHskMX0sIEBzYW1weyQyfSwg ZXRjLiwgaXMgYWxzbyBwb3NzaWJsZS4gIEZvcgorZXhhbXBsZSwgQGtiZHthbGlhcyBtY2Qg J21rZGlyICQxICYmIGNkICQxJ30gd291bGQgY2F1c2UgQGtiZHttY2QgZm9vfQordG8gY3Jl YXRlIGFuZCBzd2l0Y2ggdG8gYSBkaXJlY3RvcnkgY2FsbGVkIEBzYW1we2Zvb30uCiAKIEBu b2RlIEhpc3RvcnkKIEBzZWN0aW9uIEhpc3RvcnkKQEAgLTEzMDcsMTIgKzEzMDksMzYgQEAg RG9sbGFycyBFeHBhbnNpb24KIG51bWJlci4gIEZvciBleGFtcGxlLCBAc2FtcHskQHZhcnt2 YXJ9WzogMF19IHdpbGwgcmV0dXJuIHRoZSBmaXJzdAogZWxlbWVudCBvZiBhIGNvbG9uLWRl bGltaXRlZCBzdHJpbmcuCiAKK0BjaW5kZXggbGVuZ3RoIG9wZXJhdG9yLCBpbiB2YXJpYWJs ZSBleHBhbnNpb24KIEBpdGVtICQjQHZhcntleHByfQotRXhwYW5kcyB0byB0aGUgbGVuZ3Ro IG9mIHRoZSByZXN1bHQgb2YgQHZhcntleHByfSwgYW4gZXhwcmVzc2lvbiBpbgotb25lIG9m IHRoZSBhYm92ZSBmb3Jtcy4gIEZvciBleGFtcGxlLCBAc2FtcHskI0B2YXJ7dmFyfX0gcmV0 dXJucyB0aGUKLWxlbmd0aCBvZiB0aGUgdmFyaWFibGUgQHZhcnt2YXJ9IGFuZCBAc2FtcHsk I0B2YXJ7dmFyfVswXX0gcmV0dXJucyB0aGUKLWxlbmd0aCBvZiB0aGUgZmlyc3QgZWxlbWVu dCBvZiBAdmFye3Zhcn0uICBBZ2Fpbiwgc2lnbmFscyBhbiBlcnJvciBpZgotdGhlIHJlc3Vs dCBvZiBAdmFye2V4cHJ9IGlzIG5vdCBhIHN0cmluZyBvciBhIHNlcXVlbmNlLgorVGhpcyBp cyB0aGUgQGRmbntsZW5ndGggb3BlcmF0b3J9LiAgSXQgZXhwYW5kcyB0byB0aGUgbGVuZ3Ro IG9mIHRoZQorcmVzdWx0IG9mIEB2YXJ7ZXhwcn0sIGFuIGV4cHJlc3Npb24gaW4gb25lIG9m IHRoZSBhYm92ZSBmb3Jtcy4gIEZvcgorZXhhbXBsZSwgQHNhbXB7JCNAdmFye3Zhcn19IHJl dHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgdmFyaWFibGUKK0B2YXJ7dmFyfSBhbmQgQHNhbXB7 JCNAdmFye3Zhcn1bMF19IHJldHVybnMgdGhlIGxlbmd0aCBvZiB0aGUgZmlyc3QKK2VsZW1l bnQgb2YgQHZhcnt2YXJ9LiAgQWdhaW4sIHNpZ25hbHMgYW4gZXJyb3IgaWYgdGhlIHJlc3Vs dCBvZgorQHZhcntleHByfSBpcyBub3QgYSBzdHJpbmcgb3IgYSBzZXF1ZW5jZS4KKworQGNp bmRleCBzcGxpY2Ugb3BlcmF0b3IsIGluIHZhcmlhYmxlIGV4cGFuc2lvbgorQGl0ZW0gJEBA QHZhcntleHByfQorVGhpcyBpcyB0aGUgQGRmbntzcGxpY2Ugb3BlcmF0b3J9LiAgSXQgYGBz cGxpY2VzJycgdGhlIGVsZW1lbnRzIG9mCitAdmFye2V4cHJ9IChhbiBleHByZXNzaW9uIG9m IG9uZSBvZiB0aGUgYWJvdmUgZm9ybXMpIGludG8gdGhlCityZXN1bHRpbmcgbGlzdCBvZiBh cmd1bWVudHMsIG11Y2ggbGlrZSB0aGUgQHNhbXB7LEBAfSBtYXJrZXIgaW4gRW1hY3MKK0xp c3AgKEBweHJlZntCYWNrcXVvdGUsICwgLCBlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJl bmNlIE1hbnVhbH0pLgorVGhlIGVsZW1lbnRzIG9mIEB2YXJ7ZXhwcn0gYmVjb21lIGFyZ3Vt ZW50cyBhdCB0aGUgc2FtZSBsZXZlbCBhcyB0aGUKK290aGVyIGFyZ3VtZW50cyBhcm91bmQg aXQuICBGb3IgZXhhbXBsZSwgaWYgQHZhcntudW1iZXJzfSBpcyB0aGUgbGlzdAorQGNvZGV7 KDEgMiAzKX0sIHRoZW46CisKK0BleGFtcGxlCitAZ3JvdXAKK34gJCBlY2hvIDAgJG51bWJl cnMKKygwCisgKDEgMiAzKSkKK0BlbmQgZ3JvdXAKK0Bncm91cAorfiAkIGVjaG8gMCAkQEBu dW1iZXJzCisoMCAxIDIgMykKK0BlbmQgZ3JvdXAKK0BlbmQgZXhhbXBsZQogCiBAZW5kIHRh YmxlCiAKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggMzMzOGMwNmYw MzcuLmFiMWRjYzU5OTIyIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpA QCAtNzEsNiArNzEsMTYgQEAgc3dpdGNoZXMgZm9yIHNob3J0bG9ncywgc3VjaCBhcyB0aGUg b25lIHByb2R1Y2VkIGJ5ICdDLXggdiBMJy4KIFlvdSBjYW4gbm93IGNvbmZpZ3VyZSBob3cg dG8gZGlzcGxheSB0aGUgIipidWZmZXItc2VsZWN0aW9uKiIgYnVmZmVyCiB1c2luZyB0aGlz IG5ldyBvcHRpb24uICAoT3Igc2V0ICdkaXNwbGF5LWJ1ZmZlci1hbGlzdCcgZGlyZWN0bHku KQogCisqKiBFc2hlbGwKKworKysrCisqKiogTmV3IHNwbGljZSBvcGVyYXRvciBmb3IgRXNo ZWxsIGRvbGxhciBleHBhbnNpb25zLgorRG9sbGFyIGV4cGFuc2lvbnMgaW4gRXNoZWxsIG5v dyBsZXQgeW91IHNwbGljZSB0aGUgZWxlbWVudHMgb2YgdGhlCitleHBhbnNpb24gaW4tcGxh Y2UgdXNpbmcgJyRAZXhwcicuICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBmaWxsIGxpc3Rz CitvZiBhcmd1bWVudHMgaW50byBhIGNvbW1hbmQsIHN1Y2ggYXMgd2hlbiBkZWZpbmluZyBh bGlzZXMuICBGb3IgbW9yZQoraW5mb3JtYXRpb24sIHNlZSB0aGUgIihlc2hlbGwpIERvbGxh cnMgRXhwYW5zaW9uIiBub2RlIGluIHRoZSBFc2hlbGwKK21hbnVhbC4KKwogKysrCiAqKiog J2VzaGVsbC1yZWFkLWFsaWFzZXMtbGlzdCcgaXMgbm93IGFuIGludGVyYWN0aXZlIGNvbW1h bmQuCiBBZnRlciBtYW51YWxseSBlZGl0aW5nICdlc2hlbGwtYWxpYXNlcy1maWxlJywgeW91 IGNhbiB1c2UKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VtLWNtcGwuZWwgYi9saXNwL2Vz aGVsbC9lbS1jbXBsLmVsCmluZGV4IGFjODJlM2YyMjVjLi4yYzcyMWViOWUzMSAxMDA2NDQK LS0tIGEvbGlzcC9lc2hlbGwvZW0tY21wbC5lbAorKysgYi9saXNwL2VzaGVsbC9lbS1jbXBs LmVsCkBAIC0zNDIsMTcgKzM0MiwyMyBAQCBlc2hlbGwtY29tcGxldGUtcGFyc2UtYXJndW1l bnRzCiAJKHNldHEgcG9zICgxKyBwb3MpKSkpCiAgICAgKHNldHEgcG9zbnMgKGNkciBwb3Nu cykpCiAgICAgKGNsLWFzc2VydCAoPSAobGVuZ3RoIGFyZ3MpIChsZW5ndGggcG9zbnMpKSkK LSAgICAobGV0ICgoYSBhcmdzKQotCSAgKGkgMCkKLQkgIGwpCisgICAgKGxldCAoKGEgYXJn cykgKGkgMCkgbmV3LXN0YXJ0KQogICAgICAgKHdoaWxlIGEKLQkoaWYgKGFuZCAoY29uc3Ag KGNhciBhKSkKLQkJIChlcSAoY2FhciBhKSAnZXNoZWxsLW9wZXJhdG9yKSkKLQkgICAgKHNl dHEgbCBpKSkKLQkoc2V0cSBhIChjZHIgYSkgaSAoMSsgaSkpKQotICAgICAgKGFuZCBsCi0J ICAgKHNldHEgYXJncyAobnRoY2RyICgxKyBsKSBhcmdzKQotCQkgcG9zbnMgKG50aGNkciAo MSsgbCkgcG9zbnMpKSkpCisgICAgICAgIDs7IFJlbW92ZSBhbnkgdG9wLWxldmVsIGBlc2hl bGwtc3BsaWNlLWFyZ3MnIHNpZ2lscy4gIFRoZXNlCisgICAgICAgIDs7IGFyZSBtZWFudCB0 byBiZSByZXdyaXR0ZW4gYW5kIGNhbid0IGFjdHVhbGx5IGJlIGNhbGxlZC4KKyAgICAgICAg KHdoZW4gKGFuZCAoY29uc3AgKGNhciBhKSkKKyAgICAgICAgICAgICAgICAgICAoZXEgKGNh YXIgYSkgJ2VzaGVsbC1zcGxpY2UtYXJncykpCisgICAgICAgICAgKHNldGNhciBhIChjYWRh ciBhKSkpCisgICAgICAgIDs7IElmIHRoZXJlJ3MgYW4gdW5yZXBsYWNlZCBgZXNoZWxsLW9w ZXJhdG9yJyBzaWdpbCwgY29uc2lkZXIKKyAgICAgICAgOzsgdGhlIHRva2VuIGFmdGVyIGl0 IHRoZSBuZXcgc3RhcnQgb2Ygb3VyIGFyZ3VtZW50cy4KKyAgICAgICAgKHdoZW4gKGFuZCAo Y29uc3AgKGNhciBhKSkKKyAgICAgICAgICAgICAgICAgICAoZXEgKGNhYXIgYSkgJ2VzaGVs bC1vcGVyYXRvcikpCisgICAgICAgICAgKHNldHEgbmV3LXN0YXJ0IGkpKQorICAgICAgICAo c2V0cSBhIChjZHIgYSkKKyAgICAgICAgICAgICAgaSAoMSsgaSkpKQorICAgICAgKHdoZW4g bmV3LXN0YXJ0CisJKHNldHEgYXJncyAobnRoY2RyICgxKyBuZXctc3RhcnQpIGFyZ3MpCisJ ICAgICAgcG9zbnMgKG50aGNkciAoMSsgbmV3LXN0YXJ0KSBwb3NucykpKSkKICAgICAoY2wt YXNzZXJ0ICg9IChsZW5ndGggYXJncykgKGxlbmd0aCBwb3NucykpKQogICAgICh3aGVuIChh bmQgYXJncyAoZXEgKGNoYXItc3ludGF4IChjaGFyLWJlZm9yZSBlbmQpKSA/ICkKIAkgICAg ICAgKG5vdCAoZXEgKGNoYXItYmVmb3JlICgxLSBlbmQpKSA/XFwpKSkKZGlmZiAtLWdpdCBh L2xpc3AvZXNoZWxsL2VtLXVuaXguZWwgYi9saXNwL2VzaGVsbC9lbS11bml4LmVsCmluZGV4 IDRiNWU0ZGQ1M2VkLi4zZjdlYzYxOGEzMyAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZW0t dW5peC5lbAorKysgYi9saXNwL2VzaGVsbC9lbS11bml4LmVsCkBAIC03ODYsMTAgKzc4Niwx NCBAQCAnZXNoZWxsLWNvbXBsZXRlLWhvc3RuYW1lCiAKIChkZWZ1biBlc2hlbGwtY29tcGxl dGUtaG9zdC1yZWZlcmVuY2UgKCkKICAgIklmIHRoZXJlIGlzIGEgaG9zdCByZWZlcmVuY2Us IGNvbXBsZXRlIGl0LiIKLSAgKGxldCAoKGFyZyAocGNvbXBsZXRlLWFjdHVhbC1hcmcpKQot CWluZGV4KQotICAgICh3aGVuIChzZXRxIGluZGV4IChzdHJpbmctbWF0Y2ggIkBbYS16Ll0q XFwnIiBhcmcpKQotICAgICAgKHNldHEgcGNvbXBsZXRlLXN0dWIgKHN1YnN0cmluZyBhcmcg KDErIGluZGV4KSkKKyAgKGxldCAoKGFyZyAocGNvbXBsZXRlLWFjdHVhbC1hcmcpKSkKKyAg ICAod2hlbiAoc3RyaW5nLW1hdGNoCisgICAgICAgICAgIChyeCA7OyBNYXRjaCBhbiAiQCIs IGJ1dCBub3QgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGEgIiQiLgorICAgICAgICAgICAgICAg KG9yIHN0cmluZy1zdGFydCAobm90ICIkIikpICJAIgorICAgICAgICAgICAgICAgKGdyb3Vw ICgqIChhbnkgImEtei4iKSkpCisgICAgICAgICAgICAgICBzdHJpbmctZW5kKQorICAgICAg ICAgICBhcmcpCisgICAgICAoc2V0cSBwY29tcGxldGUtc3R1YiAoc3Vic3RyaW5nIGFyZyAo bWF0Y2gtYmVnaW5uaW5nIDEpKQogCSAgICBwY29tcGxldGUtbGFzdC1jb21wbGV0aW9uLXJh dyB0KQogICAgICAgKHRocm93ICdwY29tcGxldGUtY29tcGxldGlvbnMgKHBjb21wbGV0ZS1y ZWFkLWhvc3QtbmFtZXMpKSkpKQogCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtYXJn LmVsIGIvbGlzcC9lc2hlbGwvZXNoLWFyZy5lbAppbmRleCBjZmVjMDRlMTgzZC4uMThkYmFm NGIxNGYgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC1hcmcuZWwKKysrIGIvbGlzcC9l c2hlbGwvZXNoLWFyZy5lbApAQCAtMjQyLDYgKzI0Miw3IEBAIGVzaGVsbC1yZXNvbHZlLWN1 cnJlbnQtYXJndW1lbnQKICAgIklmIHRoZXJlIGFyZSBwZW5kaW5nIG1vZGlmaWNhdGlvbnMg dG8gYmUgbWFkZSwgbWFrZSB0aGVtIG5vdy4iCiAgICh3aGVuIGVzaGVsbC1jdXJyZW50LWFy Z3VtZW50CiAgICAgKHdoZW4gZXNoZWxsLWFyZy1saXN0aWZpZWQKKyAgICAgIChtZXNzYWdl ICJhcmcgaXMgJVMiIGVzaGVsbC1jdXJyZW50LWFyZ3VtZW50KQogICAgICAgKHNldHEgZXNo ZWxsLWN1cnJlbnQtYXJndW1lbnQKICAgICAgICAgICAgIChhcHBlbmQgKGxpc3QgJ2VzaGVs bC1jb25jYXQgZXNoZWxsLWN1cnJlbnQtcXVvdGVkKQogICAgICAgICAgICAgICAgICAgICBl c2hlbGwtY3VycmVudC1hcmd1bWVudCkpCkBAIC0zNDgsNiArMzQ5LDEwIEBAIGVzaGVsbC1v cGVyYXRvcgogICAiQSBzdHViIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIGFuIGVycm9yIGlm IGEgZmxvYXRpbmcgb3BlcmF0b3IgaXMgZm91bmQuIgogICAoZXJyb3IgIlVuaGFuZGxlZCBv cGVyYXRvciBpbiBpbnB1dCB0ZXh0IikpCiAKKyhkZWZzdWJzdCBlc2hlbGwtc3BsaWNlLWFy Z3MgKCZyZXN0IF9hcmdzKQorICAiQSBzdHViIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIGFu IGVycm9yIGlmIGEgZmxvYXRpbmcgc3BsaWNlIGlzIGZvdW5kLiIKKyAgKGVycm9yICJTcGxp Y2Ugb3BlcmF0b3IgaXMgbm90IHBlcm1pdHRlZCBpbiB0aGlzIGNvbnRleHQiKSkKKwogKGRl ZnN1YnN0IGVzaGVsbC1sb29raW5nLWF0LWJhY2tzbGFzaC1yZXR1cm4gKHBvcykKICAgIlRl c3Qgd2hldGhlciBhIGJhY2tzbGFzaC1yZXR1cm4gc2VxdWVuY2Ugb2NjdXJzIGF0IFBPUy4i CiAgIChhbmQgKGVxIChjaGFyLWFmdGVyIHBvcykgP1xcKQpkaWZmIC0tZ2l0IGEvbGlzcC9l c2hlbGwvZXNoLWNtZC5lbCBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5kZXggNGE0MWJi ZThmYTEuLmEwNmQwNzdhZTVkIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtY21kLmVs CisrKyBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKQEAgLTQ3NywxNCArNDc3LDI5IEBAIGVz aGVsbC1yZXdyaXRlLWluaXRpYWwtc3ViY29tbWFuZAogCiAoZGVmdW4gZXNoZWxsLXJld3Jp dGUtbmFtZWQtY29tbWFuZCAodGVybXMpCiAgICJJZiBubyBvdGhlciByZXdyaXRpbmcgcnVs ZSB0cmFuc2Zvcm1zIFRFUk1TLCBhc3N1bWUgYSBuYW1lZCBjb21tYW5kLiIKLSAgKGxldCAo KHN5bSAoaWYgZXNoZWxsLWluLXBpcGVsaW5lLXAKLQkJICdlc2hlbGwtbmFtZWQtY29tbWFu ZCoKLQkgICAgICAgJ2VzaGVsbC1uYW1lZC1jb21tYW5kKSkKLQkoY21kIChjYXIgdGVybXMp KQotCShhcmdzIChjZHIgdGVybXMpKSkKLSAgICAoaWYgYXJncwotCShsaXN0IHN5bSBjbWQg YChsaXN0ICxAKGNkciB0ZXJtcykpKQotICAgICAgKGxpc3Qgc3ltIGNtZCkpKSkKKyAgKGxl dCogKChzeW0gKGlmIGVzaGVsbC1pbi1waXBlbGluZS1wCisJCSAgJ2VzaGVsbC1uYW1lZC1j b21tYW5kKgorCSAgICAgICAgJ2VzaGVsbC1uYW1lZC1jb21tYW5kKSkKKyAgICAgICAgIChz cGxpY2UtcCBuaWwpCisgICAgICAgICA7OyBHcm91cCBlYWNoIHRlcm0gbGlrZSAoKGxpc3Qg dGVybS0xKSAobGlzdCB0ZXJtLTIpIC4uLiksCisgICAgICAgICA7OyBzcGxpY2luZyBpbiBg ZXNoZWxsLXNwbGljZS1hcmdzJyB0ZXJtcy4gIFRoaXMgbGV0cyB1cworICAgICAgICAgOzsg YXBwbHkgc3BsaWNlZCB0ZXJtcyBjb3JyZWN0bHkgYmVsb3cuCisgICAgICAgICAoZ3JvdXBl ZC10ZXJtcyAobWFwY2FyIChsYW1iZGEgKGkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGlmIChlcSAoY2FyLXNhZmUgaSkgJ2VzaGVsbC1zcGxpY2UtYXJncykKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb2duCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgc3BsaWNlLXAgdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FkciBpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAobGlzdCAsaSkpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0ZXJtcykpKQorICAgIChjb25kCisgICAgIChzcGxpY2Ut cAorICAgICAgYChsZXQgKCh0ZXJtcyAobmNvbmMgLEBncm91cGVkLXRlcm1zKSkpCisgICAg ICAgICAoLHN5bSAoY2FyIHRlcm1zKSAoY2RyIHRlcm1zKSkpKQorICAgICA7OyBJZiBubyB0 ZXJtcyBhcmUgc3BsaWNlZCwgdXNlIGEgc2ltcGxlciBjb21tYW5kIGZvcm0uCisgICAgICgo Y2RyIHRlcm1zKQorICAgICAgKGxpc3Qgc3ltIChjYXIgdGVybXMpIGAobGlzdCAsQChjZHIg dGVybXMpKSkpCisgICAgICh0CisgICAgICAobGlzdCBzeW0gKGNhciB0ZXJtcykpKSkpKQog CiAoZGVmdmFyIGVzaGVsbC1jb21tYW5kLWJvZHkpCiAoZGVmdmFyIGVzaGVsbC10ZXN0LWJv ZHkpCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtdmFyLmVsIGIvbGlzcC9lc2hlbGwv ZXNoLXZhci5lbAppbmRleCA1ODI0ZGE2ZGMwZS4uZmZjNmE1YzkxNDUgMTAwNjQ0Ci0tLSBh L2xpc3AvZXNoZWxsL2VzaC12YXIuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLXZhci5lbApA QCAtMzIwLDEwICszMjAsOSBAQCBlc2hlbGwtaW50ZXJwb2xhdGUtdmFyaWFibGUKICAgIlBh cnNlIGEgdmFyaWFibGUgaW50ZXJwb2xhdGlvbi4KIFRoaXMgZnVuY3Rpb24gaXMgZXhwbGlj aXQgZm9yIGFkZGluZyB0byBgZXNoZWxsLXBhcnNlLWFyZ3VtZW50LWhvb2snLiIKICAgKHdo ZW4gKGFuZCAoZXEgKGNoYXItYWZ0ZXIpID8kKQotCSAgICAgKC89ICgxKyAocG9pbnQpKSAo cG9pbnQtbWF4KSkpCisgICAgICAgICAgICAgKC89ICgxKyAocG9pbnQpKSAocG9pbnQtbWF4 KSkpCiAgICAgKGZvcndhcmQtY2hhcikKLSAgICAobGlzdCAnZXNoZWxsLWVzY2FwZS1hcmcK LQkgIChlc2hlbGwtcGFyc2UtdmFyaWFibGUpKSkpCisgICAgKGVzaGVsbC1wYXJzZS12YXJp YWJsZSkpKQogCiAoZGVmdW4gZXNoZWxsL2RlZmluZSAodmFyLWFsaWFzIGRlZmluaXRpb24p CiAgICJEZWZpbmUgYSBWQVItQUxJQVMgdXNpbmcgREVGSU5JVElPTi4iCkBAIC00NTMsNiAr NDUyLDggQEAgZXNoZWxsLXBhcnNlLXZhcmlhYmxlCiBwcm9jZXNzIGFueSBpbmRpY2VzIHRo YXQgY29tZSBhZnRlciB0aGUgdmFyaWFibGUgcmVmZXJlbmNlLiIKICAgKGxldCogKChnZXQt bGVuICh3aGVuIChlcSAoY2hhci1hZnRlcikgPyMpCiAJCSAgICAoZm9yd2FyZC1jaGFyKSB0 KSkKKyAgICAgICAgIChzcGxpY2UgKHdoZW4gKGVxIChjaGFyLWFmdGVyKSA/QCkKKyAgICAg ICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFyKSB0KSkKIAkgdmFsdWUgaW5kaWNlcykKICAg ICAoc2V0cSB2YWx1ZSAoZXNoZWxsLXBhcnNlLXZhcmlhYmxlLXJlZiBnZXQtbGVuKQogCSAg aW5kaWNlcyAoYW5kIChub3QgKGVvYnApKQpAQCAtNDY1LDYgKzQ2Niw5IEBAIGVzaGVsbC1w YXJzZS12YXJpYWJsZQogICAgICAgKHNldHEgdmFsdWUgYChsZW5ndGggLHZhbHVlKSkpCiAg ICAgKHdoZW4gZXNoZWxsLWN1cnJlbnQtcXVvdGVkCiAgICAgICAoc2V0cSB2YWx1ZSBgKGVz aGVsbC1zdHJpbmdpZnkgLHZhbHVlKSkpCisgICAgKHNldHEgdmFsdWUgYChlc2hlbGwtZXNj YXBlLWFyZyAsdmFsdWUpKQorICAgICh3aGVuIHNwbGljZQorICAgICAgKHNldHEgdmFsdWUg YChlc2hlbGwtc3BsaWNlLWFyZ3MgLHZhbHVlKSkpCiAgICAgdmFsdWUpKQogCiAoZGVmdW4g ZXNoZWxsLXBhcnNlLXZhcmlhYmxlLXJlZiAoJm9wdGlvbmFsIG1vZGlmaWVyLXApCkBAIC03 NTMsNyArNzU3LDcgQEAgZXNoZWxsLWNvbXBsZXRlLXZhcmlhYmxlLXJlZmVyZW5jZQogICAi SWYgdGhlcmUgaXMgYSB2YXJpYWJsZSByZWZlcmVuY2UsIGNvbXBsZXRlIGl0LiIKICAgKGxl dCAoKGFyZyAocGNvbXBsZXRlLWFjdHVhbC1hcmcpKSkKICAgICAod2hlbiAoc3RyaW5nLW1h dGNoCi0gICAgICAgICAgIChyeCAiJCIgKD8gIiMiKQorICAgICAgICAgICAocnggIiQiICg/ IChvciAiIyIgIkAiKSkKICAgICAgICAgICAgICAgICg/IChncm91cCAocmVnZXhwIGVzaGVs bC12YXJpYWJsZS1uYW1lLXJlZ2V4cCkpKQogICAgICAgICAgICAgICAgc3RyaW5nLWVuZCkK ICAgICAgICAgICAgYXJnKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VzaGVsbC9lc2gtdmFy LXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lc2gtdmFyLXRlc3RzLmVsCmluZGV4IDk2 ZmRlMDI2YTU0Li5mZWFkOTBiZWY0ZCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VzaGVsbC9l c2gtdmFyLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLXZhci10ZXN0cy5l bApAQCAtMTMxLDYgKzEzMSwxOCBAQCBlc2gtdmFyLXRlc3QvaW50ZXJwLXZhci1sZW5ndGgt YWxpc3QKICAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICJlY2hvICQjZXNoZWxs LXRlc3QtdmFsdWUiIDEpCiAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1lcXVhbCAiZWNo byAkI2VzaGVsbC10ZXN0LXZhbHVlW2Zvb10iIDMpKSkKIAorKGVydC1kZWZ0ZXN0IGVzaC12 YXItdGVzdC9pbnRlcnAtdmFyLXNwbGljZSAoKQorICAiU3BsaWNlLWludGVycG9sYXRlIGxp c3QgdmFyaWFibGUiCisgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSAnKDEgMiAzKSkpCisg ICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1lcXVhbCAiZWNobyBhICRAZXNoZWxsLXRlc3Qt dmFsdWUgeiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoImEiIDEgMiAz ICJ6IikpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9pbnRlcnAtdmFyLXNwbGlj ZS1jb25jYXQgKCkKKyAgIlNwbGljZS1pbnRlcnBvbGF0ZSBsaXN0IHZhcmlhYmxlIgorICAo bGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgJygxIDIgMykpKQorICAgIChlc2hlbGwtY29tbWFu ZC1yZXN1bHQtZXF1YWwgImVjaG8gYSQnZXNoZWxsLXRlc3QtdmFsdWUneiIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcoImExIiAyICIzeiIpKSkpCisKIChlcnQtZGVm dGVzdCBlc2gtdmFyLXRlc3QvaW50ZXJwLWxpc3AgKCkKICAgIkludGVycG9sYXRlIExpc3Ag Zm9ybSBldmFsdWF0aW9uIgogICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICIrICQo KyAxIDIpIDMiIDYpKQpAQCAtMTk3LDYgKzIwOSw5IEBAIGVzaC12YXItdGVzdC9pbnRlcnAt Y29uY2F0LWNtZC1leHRlcm5hbAogICAgKGVzaGVsbC1tYXRjaC1jb21tYW5kLW91dHB1dCAi ZWNobyAke2VjaG8gaGl9LSR7KmVjaG8gdGhlcmV9IgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaGktdGhlcmVcbiIpKSkKIAorDAorOzsgUXVvdGVkIHZhcmlhYmxlIGlu dGVycG9sYXRpb24KKwogKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9xdW90ZWQtaW50ZXJw LXZhciAoKQogICAiSW50ZXJwb2xhdGUgdmFyaWFibGUgaW5zaWRlIGRvdWJsZS1xdW90ZXMi CiAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtZXF1YWwgImVjaG8gXCIkdXNlci1sb2dpbi1u YW1lXCIiCkBAIC0zMjQsNiArMzM5LDIxIEBAIGVzaC12YXItdGVzdC9xdW90ZWQtaW50ZXJw LWNvbmNhdC1jbWQKICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1lcXVhbCAiZWNobyBcIiR7 ZWNobyBcXFwiZm9vXG5iYXJcXFwifSBiYXpcIiIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZm9vXG5iYXIgYmF6IikpCiAKKwwKKzs7IEludGVycG9sYXRpbmcgY29tbWFu ZHMKKworKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9jb21tYW5kLWludGVycCAoKQorICAi SW50ZXJwb2xhdGUgYSB2YXJpYWJsZSBhcyBhIGNvbW1hbmQgbmFtZSIKKyAgKGxldCAoKGVz aGVsbC10ZXN0LXZhbHVlICJwcmludG5sIikpCisgICAgKGVzaGVsbC1jb21tYW5kLXJlc3Vs dC1lcXVhbCAiJGVzaGVsbC10ZXN0LXZhbHVlIGhlbGxvIHRoZXJlIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImhlbGxvXG50aGVyZVxuIikpKQorCisoZXJ0LWRlZnRl c3QgZXNoLXZhci10ZXN0L2NvbW1hbmQtaW50ZXJwLXNwbGljZSAoKQorICAiSW50ZXJwb2xh dGUgYSBzcGxpY2UgdmFyaWFibGUgYXMgYSBjb21tYW5kIG5hbWUgd2l0aCBhcmd1bWVudHMi CisgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSAnKCJwcmludG5sIiAiaGVsbG8iICJ0aGVy ZSIpKSkKKyAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LWVxdWFsICIkQGVzaGVsbC10ZXN0 LXZhbHVlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhlbGxvXG50aGVy ZVxuIikpKQorCiAMCiA7OyBJbnRlcnBvbGF0ZWQgdmFyaWFibGUgY29udmVyc2lvbgogCi0t IAoyLjI1LjEKCg== --------------XkRGopJFTxJDijZg2sySHWPt--