From unknown Thu Jun 19 14:03:45 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#51622 <51622@debbugs.gnu.org> To: bug#51622 <51622@debbugs.gnu.org> Subject: Status: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' Reply-To: bug#51622 <51622@debbugs.gnu.org> Date: Thu, 19 Jun 2025 21:03:45 +0000 retitle 51622 29.0.50; [PATCH] Abbreviate remote home directories in `abbre= viate-file-name' reassign 51622 emacs submitter 51622 Jim Porter severity 51622 wishlist tag 51622 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 05 23:44:56 2021 Received: (at submit) by debbugs.gnu.org; 6 Nov 2021 03:44:56 +0000 Received: from localhost ([127.0.0.1]:47996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjCdS-000892-79 for submit@debbugs.gnu.org; Fri, 05 Nov 2021 23:44:55 -0400 Received: from lists.gnu.org ([209.51.188.17]:55412) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjCdP-00088s-Ad for submit@debbugs.gnu.org; Fri, 05 Nov 2021 23:44:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57142) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjCdO-000616-Vm for bug-gnu-emacs@gnu.org; Fri, 05 Nov 2021 23:44:51 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]:41788) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mjCdL-0002Ij-0D for bug-gnu-emacs@gnu.org; Fri, 05 Nov 2021 23:44:50 -0400 Received: by mail-pg1-x52d.google.com with SMTP id n23so9909481pgh.8 for ; Fri, 05 Nov 2021 20:44:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:subject:to:message-id:date:mime-version:content-language; bh=FLer+T3qJ6Qp0kbpSwki+OPI0Jcp9zfFqlnmKhORX+g=; b=d0UBCmk7OMNbi8jtFK5CocmweTDUQATAgFmykZrJ9PfwiW8L/cY2g/V0dozfuAgkbj dDy3gsJtZH7MFPk71oTKpsiWBuglabK3Mb6wrS9WpdDJcalVpWEZWK8+4473Yv79cwmJ 791mzRouV+N4hCfUm/EUAClDn3QEI2WLWgttYgvPxhJx48OSru7LWW92XU8L/MWoPOhg GZddVy1RxFUK2SM0xJwsvhpff8hhh/453hboIFkwkhTkRBZXpSx7x/416/tyIAP1THgY QUHqhH1TWW6X7iSmCwVg6G6NKUVt/bF02J142HfAcq289ypnZ9RxkN9b8PXg9kNngXq+ +ltg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:subject:to:message-id:date:mime-version :content-language; bh=FLer+T3qJ6Qp0kbpSwki+OPI0Jcp9zfFqlnmKhORX+g=; b=EAB9/6eaQoDRdkU/O2ilhoJxxMCrbeHdMf8wx9be8/u/lX6jorjqaB96BiY9uN/GWw AvB1VaFsIoA6SHzGoiXKUPhrsXCKzbtUpLo+RvDhFZMYnpUzZA9XYU92GjGJz3RC0IeL SGTGpk2D0XIbODc39hYJVhkzGpv5sqePIz8d529psFE0hPbH8cET2mOG7QHcvuYYdBFX 1COoXQoEthUioll6YpbFRBQjDkZEACKEiVcinftbcvzNsReTO6VEA9OLU43oCZMOlFgz hG6ft6XVbiAx3lgM1k20trGoRe+hLDx7+DePm/I72vTI3FGLv/WrkT+TsWGNyAz9MijA xktA== X-Gm-Message-State: AOAM533bo1EA+qSj3ww+lWyMtfoxrsMKxv4QPAcCz+abS0Yte2HpDKT9 UCRZ6QEXRBVS1bX4QqKEF5zIYPkP6fw= X-Google-Smtp-Source: ABdhPJzPpGNaZeLUw1EDW2exo2Joai0NSedWb2/9GR3VswrcOIoyo9qOLd+vX2c3qgrPNROUbU9xGg== X-Received: by 2002:a63:688:: with SMTP id 130mr29734409pgg.395.1636170285547; Fri, 05 Nov 2021 20:44:45 -0700 (PDT) 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 l4sm9129364pfc.121.2021.11.05.20.44.44 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 05 Nov 2021 20:44:44 -0700 (PDT) From: Jim Porter Subject: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' X-Mozilla-News-Host: news://news://news.gmane.org:119 To: bug-gnu-emacs@gnu.org Message-ID: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> Date: Fri, 5 Nov 2021 20:44:44 -0700 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------E1ED1E8F4A40B39A34597491" Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::52d; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x52d.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-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------E1ED1E8F4A40B39A34597491 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Currently, `abbreviate-file-name' abbreviates home directories, but only for the local system. For example: $ emacs -Q M-: (abbreviate-file-name "/home/jim/src") RET ;; => "~/src" M-: (abbreviate-file-name "/sshx:localhost:/home/jim/src") RET ;; => "/sshx:localhost:/home/jim/src" It'd be nice to abbreviate TRAMP home dirs, especially for the buffer list, where the long length of TRAMP paths means that I often just see the same leading bits of the paths repeated in the File column. As a result, it can be hard to tell the exact file it refers to. (Of course, as a workaround, I could just widen the window.) Attached is a patch series to do this, but the patches probably warrant some explanation. First, I removed `automount-dir-prefix'; it's been obsolete since 24.3, and it would have made implementation of the second part more complex. Second, I removed the caching of the abbreviated home dir. Since adding TRAMP support means there are multiple home dirs (one per host), keeping the caching would have been fairly complex, and it's already the source of potential bugs (e.g. when temporarily setting HOME to something else). I did some benchmarking on this (see attached), and while it is indeed slower without the caching, I don't think it's worth keeping the caching around. The real performance cost comes from calling `abbreviate-file-name' with a TRAMP file (even before my patch), but abbreviating a local file is quite fast, even with a pathologically large `directory-abbrev-alist'. I also wrote a couple of unit tests to make sure this function works correctly. Finally, I added the actual TRAMP support. This has a pretty significant performance hit to TRAMP files. Looking at profiles, this appears to be because my patch calls both `file-name-case-insensitive-p' and `file-remote-p' on the TRAMP path, and these duplicate quite a bit of work. Is there a way to make this more efficient (e.g. by getting the file handler just once instead of twice)? It might also be useful to add some unit tests here, but I wasn't 100% sure how to do that with TRAMP paths (the tests in my benchmark actually open an SSH connection, so that probably won't work on all systems). In addition to the patches, I've also attached a simple benchmark script that I used to measure the performance of these patches as well as the results from my system. The performance for local paths is still quite good I think, and even the worst-case scenario for TRAMP paths (abbreviating with a 500-item `directory-abbrev-alist') clocks in at 4.6ms per call. It'd be nice to make that faster, but maybe that's the best we can do if we want this feature. --------------E1ED1E8F4A40B39A34597491 Content-Type: text/plain; charset=UTF-8; name="0001-Remove-automount-dir-prefix.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Remove-automount-dir-prefix.patch" RnJvbSAxYjZkNzZkNjA5MjlhMTBlMTNmYmZlMWQ5YjQyODZiYmQwYWViYjU4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFRodSwgNCBOb3YgMjAyMSAyMDoxNDowMCAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBSZW1vdmUgJ2F1dG9tb3VudC1kaXItcHJlZml4JwoKKiBsaXNwL2ZpbGUuZWwg KGF1dG9tb3VudC1kaXItcHJlZml4KTogUmVtb3ZlIGl0LgoqIGV0Yy9ORVdTOiBNZW50aW9u IHRoZSByZW1vdmFsLgotLS0KIGV0Yy9ORVdTICAgICAgfCAgNSArKysrKwogbGlzcC9maWxl cy5lbCB8IDE1ICstLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05F V1MKaW5kZXggMjExZDk0M2ExNC4uZWU5Njg3NmZmOSAxMDA2NDQKLS0tIGEvZXRjL05FV1MK KysrIGIvZXRjL05FV1MKQEAgLTM2Myw2ICszNjMsMTEgQEAgd2l0aCByZWNlbnQgdmVyc2lv bnMgb2YgRmlyZWZveC4KICoqIFRoZSBmdW5jdGlvbiAnaW1hZ2UtZGlyZWQtZ2V0LWV4aWYt ZGF0YScgaXMgbm93IG9ic29sZXRlLgogVXNlICdleGlmLXBhcnNlLWZpbGUnIGFuZCAnZXhp Zi1maWVsZCcgaW5zdGVhZC4KIAorLS0tCisqKiBUaGUgb2Jzb2xldGUgdmFyaWFibGUgJ2F1 dG9tb3VudC1kaXItcHJlZml4JyBoYXMgYmVlbiByZW1vdmVkLgorSW4gRW1hY3MgMjQuMywg dGhlIHZhcmlhYmxlICdhdXRvbW91bnQtZGlyLXByZWZpeCcgd2FzIG1hZGUgb2Jzb2xldGUu CitGb3Igc2ltaWxhciBmdW5jdGlvbmFsaXR5LCB1c2UgJ2RpcmVjdG9yeS1hYmJyZXYtYWxp c3QnIGluc3RlYWQuCisKIAwKICogTGlzcCBDaGFuZ2VzIGluIEVtYWNzIDI5LjEKIApkaWZm IC0tZ2l0IGEvbGlzcC9maWxlcy5lbCBiL2xpc3AvZmlsZXMuZWwKaW5kZXggMTczMTk4YTQy NC4uOTk1ZjBjZjk3YSAxMDA2NDQKLS0tIGEvbGlzcC9maWxlcy5lbAorKysgYi9saXNwL2Zp bGVzLmVsCkBAIC0xOTkwLDEyICsxOTkwLDYgQEAgY3JlYXRlLWZpbGUtYnVmZmVyCiAJCQkg ICAgIChjb25jYXQgInwiIGxhc3RuYW1lKQogCQkJICAgbGFzdG5hbWUpKSkpCiAKLShkZWZj dXN0b20gYXV0b21vdW50LWRpci1wcmVmaXggKHB1cmVjb3B5ICJeL3RtcF9tbnQvIikKLSAg IlJlZ2V4cCB0byBtYXRjaCB0aGUgYXV0b21vdW50ZXIgcHJlZml4IGluIGEgZGlyZWN0b3J5 IG5hbWUuIgotICA6Z3JvdXAgJ2ZpbGVzCi0gIDp0eXBlICdyZWdleHApCi0obWFrZS1vYnNv bGV0ZS12YXJpYWJsZSAnYXV0b21vdW50LWRpci1wcmVmaXggJ2RpcmVjdG9yeS1hYmJyZXYt YWxpc3QgIjI0LjMiKQotCiAoZGVmdmFyIGFiYnJldmlhdGVkLWhvbWUtZGlyIG5pbAogICAi UmVnZXhwIG1hdGNoaW5nIHRoZSB1c2VyJ3MgaG9tZWRpciBhdCB0aGUgYmVnaW5uaW5nIG9m IGZpbGUgbmFtZS4KIFRoZSB2YWx1ZSBpbmNsdWRlcyBhYmJyZXZpYXRpb24gYWNjb3JkaW5n IHRvIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0Jy4iKQpAQCAtMjAwMywyMSArMTk5NywxNCBA QCBhYmJyZXZpYXRlZC1ob21lLWRpcgogKGRlZnVuIGFiYnJldmlhdGUtZmlsZS1uYW1lIChm aWxlbmFtZSkKICAgIlJldHVybiBhIHZlcnNpb24gb2YgRklMRU5BTUUgc2hvcnRlbmVkIHVz aW5nIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0Jy4KIFRoaXMgYWxzbyBzdWJzdGl0dXRlcyBc In5cIiBmb3IgdGhlIHVzZXIncyBob21lIGRpcmVjdG9yeSAodW5sZXNzIHRoZQotaG9tZSBk aXJlY3RvcnkgaXMgYSByb290IGRpcmVjdG9yeSkgYW5kIHJlbW92ZXMgYXV0b21vdW50ZXIg cHJlZml4ZXMKLVwoc2VlIHRoZSB2YXJpYWJsZSBgYXV0b21vdW50LWRpci1wcmVmaXgnKS4K K2hvbWUgZGlyZWN0b3J5IGlzIGEgcm9vdCBkaXJlY3RvcnkpLgogCiBXaGVuIHRoaXMgZnVu Y3Rpb24gaXMgZmlyc3QgY2FsbGVkLCBpdCBjYWNoZXMgdGhlIHVzZXIncyBob21lCiBkaXJl Y3RvcnkgYXMgYSByZWdleHAgaW4gYGFiYnJldmlhdGVkLWhvbWUtZGlyJywgYW5kIHJldXNl cyBpdAogYWZ0ZXJ3YXJkcyAoc28gbG9uZyBhcyB0aGUgaG9tZSBkaXJlY3RvcnkgZG9lcyBu b3QgY2hhbmdlOwogaWYgeW91IHdhbnQgdG8gcGVybWFuZW50bHkgY2hhbmdlIHlvdXIgaG9t ZSBkaXJlY3RvcnkgYWZ0ZXIgaGF2aW5nCiBzdGFydGVkIEVtYWNzLCBzZXQgYGFiYnJldmlh dGVkLWhvbWUtZGlyJyB0byBuaWwgc28gaXQgd2lsbCBiZSByZWNhbGN1bGF0ZWQpLiIKLSAg OzsgR2V0IHJpZCBvZiB0aGUgcHJlZml4ZXMgYWRkZWQgYnkgdGhlIGF1dG9tb3VudGVyLgog ICAoc2F2ZS1tYXRjaC1kYXRhICAgICAgICAgICAgICAgICAgICAgIDtGSVhNRTogV2h5Pwot ICAgIChpZiAoYW5kIGF1dG9tb3VudC1kaXItcHJlZml4Ci0JICAgICAoc3RyaW5nLW1hdGNo IGF1dG9tb3VudC1kaXItcHJlZml4IGZpbGVuYW1lKQotCSAgICAgKGZpbGUtZXhpc3RzLXAg KGZpbGUtbmFtZS1kaXJlY3RvcnkKLQkJCSAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSAoMS0g KG1hdGNoLWVuZCAwKSkpKSkpCi0JKHNldHEgZmlsZW5hbWUgKHN1YnN0cmluZyBmaWxlbmFt ZSAoMS0gKG1hdGNoLWVuZCAwKSkpKSkKICAgICA7OyBBdm9pZCB0cmVhdGluZyAvaG9tZS9m b28gYXMgL2hvbWUvRm9vIGR1cmluZyBgficgc3Vic3RpdHV0aW9uLgogICAgIChsZXQgKChj YXNlLWZvbGQtc2VhcmNoIChmaWxlLW5hbWUtY2FzZS1pbnNlbnNpdGl2ZS1wIGZpbGVuYW1l KSkpCiAgICAgICA7OyBJZiBhbnkgZWx0IG9mIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgbWF0 Y2hlcyB0aGlzIG5hbWUsCi0tIAoyLjI1LjEKCg== --------------E1ED1E8F4A40B39A34597491 Content-Type: text/plain; charset=UTF-8; name="0002-Don-t-cache-abbreviated-homedir-for-abbreviate-file-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Don-t-cache-abbreviated-homedir-for-abbreviate-file-.pa"; filename*1="tch" RnJvbSBjZGNhNjUwMmNjMDhkZmVhOWI3YzcyODYwNmFiMjliODQxMjlmMjNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IEZyaSwgNSBOb3YgMjAyMSAxOToyNToyNiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMi8zXSBEb24ndCBjYWNoZSBhYmJyZXZpYXRlZCBob21lZGlyIGZvcgogJ2FiYnJldmlh dGUtZmlsZS1uYW1lJwoKVGhpcyBpcyBlcnJvci1wcm9uZSBhbmQgdGhlIHBlcmZvcm1hbmNl IGRpZmZlcmVuY2UgaXMgbWlub3IsCmVzcGVjaWFsbHkgd2hlbiBjb21wYXJlZCB0byB0aGUg Y29zdCBvZiBhYmJyZXZpYXRpbmcgYSBUUkFNUCBmaWxlbmFtZS4KCiogbGlzcC9maWxlcy5l bCAoYWJicmV2aWF0ZWQtaG9tZS1kaXIpOiBNYXJrIGFzIG9ic29sZXRlLgooYWJicmV2aWF0 ZS1maWxlLW5hbWUpOiBEb24ndCBjYWNoZSB0aGUgYWJicmV2aWF0ZWQgaG9tZSBkaXJlY3Rv cnkuCiogdGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVsIChmaWxlcy10ZXN0cy1hYmJyZXZpYXRl LWZpbGUtbmFtZS1ob21lZGlyKToKKGZpbGVzLXRlc3RzLWFiYnJldmlhdGUtZmlsZS1uYW1l LWRpcmVjdG9yeS1hYmJyZXYtYWxpc3QpOgpOZXcgZnVuY3Rpb25zLgooZmlsZXMtdGVzdHMt YWJicmV2aWF0ZWQtaG9tZS1kaXIpOiBSZW1vdmVkLgoqIGxpc3Avc3RhcnR1cC5lbCAoY29t bWFuZC1saW5lKToKKiB0ZXN0L2xpc3AvY2FsZW5kYXIvdG9kby1tb2RlLXRlc3RzLmVsICh3 aXRoLXRvZG8tdGVzdCk6CiogdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS10ZXN0cy5l bCAod2l0aC1wYWNrYWdlLXRlc3QpOgoqIHRlc3QvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS10 ZXN0cy5lbCAocnVieS1iYWNrZW5kKToKRG9uJ3QgY2xlYXIgJ2FiYnJldmlhdGVkLWhvbWUt ZGlyJy4KKiBldGMvTkVXUzogQW5ub3VuY2UgdGhlIG9ic29sZXRpb24gb2YgJ2FiYnJldmlh dGVkLWhvbWUtZGlyJy4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA1ICsrCiBsaXNwL2ZpbGVzLmVsICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTA4ICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBsaXNwL3N0YXJ0dXAuZWwgICAgICAg ICAgICAgICAgICAgICAgIHwgICAzIC0KIHRlc3QvbGlzcC9jYWxlbmRhci90b2RvLW1vZGUt dGVzdHMuZWwgfCAgIDMgLQogdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS10ZXN0cy5l bCB8ICAgMSAtCiB0ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwgICAgICAgICAgICAgIHwgIDM2 ICsrKysrKy0tLQogdGVzdC9saXNwL3Byb2dtb2Rlcy9mbHltYWtlLXRlc3RzLmVsICB8ICAg NSArLQogNyBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCA4NSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IGVlOTY4NzZmZjku LmUwZGRhMWMyYWEgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0z NjMsNiArMzYzLDExIEBAIHdpdGggcmVjZW50IHZlcnNpb25zIG9mIEZpcmVmb3guCiAqKiBU aGUgZnVuY3Rpb24gJ2ltYWdlLWRpcmVkLWdldC1leGlmLWRhdGEnIGlzIG5vdyBvYnNvbGV0 ZS4KIFVzZSAnZXhpZi1wYXJzZS1maWxlJyBhbmQgJ2V4aWYtZmllbGQnIGluc3RlYWQuCiAK Ky0tLQorKiogVGhlIHZhcmlhYmxlICdhYmJyZXZpYXRlZC1ob21lLWRpcicgaXMgbm93IG9i c29sZXRlLgorJ2FiYnJldmlhdGUtZmlsZS1uYW1lJyBubyBsb25nZXIgY2FjaGVzIHRoZSBh YmJyZXZpYXRlZCBob21lCitkaXJlY3RvcnksIHNvIHRoaXMgdmFyaWFibGUgaXNuJ3QgbmVl ZGVkIGFueW1vcmUuCisKIC0tLQogKiogVGhlIG9ic29sZXRlIHZhcmlhYmxlICdhdXRvbW91 bnQtZGlyLXByZWZpeCcgaGFzIGJlZW4gcmVtb3ZlZC4KIEluIEVtYWNzIDI0LjMsIHRoZSB2 YXJpYWJsZSAnYXV0b21vdW50LWRpci1wcmVmaXgnIHdhcyBtYWRlIG9ic29sZXRlLgpkaWZm IC0tZ2l0IGEvbGlzcC9maWxlcy5lbCBiL2xpc3AvZmlsZXMuZWwKaW5kZXggOTk1ZjBjZjk3 YS4uOTRiNzhkZjQwYyAxMDA2NDQKLS0tIGEvbGlzcC9maWxlcy5lbAorKysgYi9saXNwL2Zp bGVzLmVsCkBAIC0xOTkzLDc5ICsxOTkzLDU5IEBAIGNyZWF0ZS1maWxlLWJ1ZmZlcgogKGRl ZnZhciBhYmJyZXZpYXRlZC1ob21lLWRpciBuaWwKICAgIlJlZ2V4cCBtYXRjaGluZyB0aGUg dXNlcidzIGhvbWVkaXIgYXQgdGhlIGJlZ2lubmluZyBvZiBmaWxlIG5hbWUuCiBUaGUgdmFs dWUgaW5jbHVkZXMgYWJicmV2aWF0aW9uIGFjY29yZGluZyB0byBgZGlyZWN0b3J5LWFiYnJl di1hbGlzdCcuIikKKyhtYWtlLW9ic29sZXRlLXZhcmlhYmxlICdhYmJyZXZpYXRlZC1ob21l LWRpciAnbmlsICIyOS4xIikKIAogKGRlZnVuIGFiYnJldmlhdGUtZmlsZS1uYW1lIChmaWxl bmFtZSkKICAgIlJldHVybiBhIHZlcnNpb24gb2YgRklMRU5BTUUgc2hvcnRlbmVkIHVzaW5n IGBkaXJlY3RvcnktYWJicmV2LWFsaXN0Jy4KIFRoaXMgYWxzbyBzdWJzdGl0dXRlcyBcIn5c IiBmb3IgdGhlIHVzZXIncyBob21lIGRpcmVjdG9yeSAodW5sZXNzIHRoZQotaG9tZSBkaXJl Y3RvcnkgaXMgYSByb290IGRpcmVjdG9yeSkuCi0KLVdoZW4gdGhpcyBmdW5jdGlvbiBpcyBm aXJzdCBjYWxsZWQsIGl0IGNhY2hlcyB0aGUgdXNlcidzIGhvbWUKLWRpcmVjdG9yeSBhcyBh IHJlZ2V4cCBpbiBgYWJicmV2aWF0ZWQtaG9tZS1kaXInLCBhbmQgcmV1c2VzIGl0Ci1hZnRl cndhcmRzIChzbyBsb25nIGFzIHRoZSBob21lIGRpcmVjdG9yeSBkb2VzIG5vdCBjaGFuZ2U7 Ci1pZiB5b3Ugd2FudCB0byBwZXJtYW5lbnRseSBjaGFuZ2UgeW91ciBob21lIGRpcmVjdG9y eSBhZnRlciBoYXZpbmcKLXN0YXJ0ZWQgRW1hY3MsIHNldCBgYWJicmV2aWF0ZWQtaG9tZS1k aXInIHRvIG5pbCBzbyBpdCB3aWxsIGJlIHJlY2FsY3VsYXRlZCkuIgoraG9tZSBkaXJlY3Rv cnkgaXMgYSByb290IGRpcmVjdG9yeSkuIgogICAoc2F2ZS1tYXRjaC1kYXRhICAgICAgICAg ICAgICAgICAgICAgIDtGSVhNRTogV2h5PwogICAgIDs7IEF2b2lkIHRyZWF0aW5nIC9ob21l L2ZvbyBhcyAvaG9tZS9Gb28gZHVyaW5nIGB+JyBzdWJzdGl0dXRpb24uCi0gICAgKGxldCAo KGNhc2UtZm9sZC1zZWFyY2ggKGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgZmlsZW5h bWUpKSkKKyAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2UtaW5z ZW5zaXRpdmUtcCBmaWxlbmFtZSkpCisgICAgICAgICAgKGhvbWUtZGlyIChleHBhbmQtZmls ZS1uYW1lICJ+IikpKQogICAgICAgOzsgSWYgYW55IGVsdCBvZiBkaXJlY3RvcnktYWJicmV2 LWFsaXN0IG1hdGNoZXMgdGhpcyBuYW1lLAogICAgICAgOzsgYWJicmV2aWF0ZSBhY2NvcmRp bmdseS4KICAgICAgIChkb2xpc3QgKGRpci1hYmJyZXYgZGlyZWN0b3J5LWFiYnJldi1hbGlz dCkKLQkoaWYgKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYpIGZpbGVuYW1lKQotCSAg ICAoc2V0cSBmaWxlbmFtZQotCQkgIChjb25jYXQgKGNkciBkaXItYWJicmV2KQotCQkJICAo c3Vic3RyaW5nIGZpbGVuYW1lIChtYXRjaC1lbmQgMCkpKSkpKQotICAgICAgOzsgQ29tcHV0 ZSBhbmQgc2F2ZSB0aGUgYWJicmV2aWF0ZWQgaG9tZWRpciBuYW1lLgotICAgICAgOzsgV2Ug ZGVmZXIgY29tcHV0aW5nIHRoaXMgdW50aWwgdGhlIGZpcnN0IHRpbWUgaXQncyBuZWVkZWQs IHRvCi0gICAgICA7OyBnaXZlIHRpbWUgZm9yIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgdG8g YmUgc2V0IHByb3Blcmx5LgotICAgICAgOzsgV2UgaW5jbHVkZSBhIHNsYXNoIGF0IHRoZSBl bmQsIHRvIGF2b2lkIHNwdXJpb3VzIG1hdGNoZXMKLSAgICAgIDs7IHN1Y2ggYXMgYC91c3Iv Zm9vYmFyJyB3aGVuIHRoZSBob21lIGRpciBpcyBgL3Vzci9mb28nLgotICAgICAgKHVubGVz cyBhYmJyZXZpYXRlZC1ob21lLWRpcgotICAgICAgICAocHV0ICdhYmJyZXZpYXRlZC1ob21l LWRpciAnaG9tZSAoZXhwYW5kLWZpbGUtbmFtZSAifiIpKQotICAgICAgICAoc2V0cSBhYmJy ZXZpYXRlZC1ob21lLWRpcgotICAgICAgICAgICAgICAobGV0KiAoKGFiYnJldmlhdGVkLWhv bWUtZGlyICJcXGBcXCcuIikgO0ltcG9zc2libGUgcmVnZXhwLgotICAgICAgICAgICAgICAg ICAgICAgKHJlZ2V4cAotICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIlxcYCIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoYWJicmV2aWF0ZS1maWxlLW5hbWUKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGdldCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUp KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXCgvXFx8XFwnXFwpIikpKQot ICAgICAgICAgICAgICAgIDs7IERlcGVuZGluZyBvbiB3aGV0aGVyIGRlZmF1bHQtZGlyZWN0 b3J5IGRvZXMgb3IKLSAgICAgICAgICAgICAgICA7OyBkb2Vzbid0IGluY2x1ZGUgbm9uLUFT Q0lJIGNoYXJhY3RlcnMsIHRoZSB2YWx1ZQotICAgICAgICAgICAgICAgIDs7IG9mIGFiYnJl dmlhdGVkLWhvbWUtZGlyIGNvdWxkIGJlIG11bHRpYnl0ZSBvcgotICAgICAgICAgICAgICAg IDs7IHVuaWJ5dGUuICBJbiB0aGUgbGF0dGVyIGNhc2UsIHdlIG5lZWQgdG8gZGVjb2RlCi0g ICAgICAgICAgICAgICAgOzsgaXQuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBjYWxs ZWQgZm9yIHRoZQotICAgICAgICAgICAgICAgIDs7IGZpcnN0IHRpbWUgKGZyb20gc3RhcnR1 cC5lbCkgd2hlbgotICAgICAgICAgICAgICAgIDs7IGxvY2FsZS1jb2Rpbmctc3lzdGVtIGlz IGFscmVhZHkgc2V0IHVwLgotICAgICAgICAgICAgICAgIChpZiAobXVsdGlieXRlLXN0cmlu Zy1wIHJlZ2V4cCkKLSAgICAgICAgICAgICAgICAgICAgcmVnZXhwCi0gICAgICAgICAgICAg ICAgICAoZGVjb2RlLWNvZGluZy1zdHJpbmcgcmVnZXhwCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3V0Zi04Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUtY29kaW5n LXN5c3RlbSkpKSkpKQotCi0gICAgICA7OyBJZiBGSUxFTkFNRSBzdGFydHMgd2l0aCB0aGUg YWJicmV2aWF0ZWQgaG9tZWRpciwKLSAgICAgIDs7IGFuZCB+IGhhc24ndCBjaGFuZ2VkIHNp bmNlIGFiYnJldmlhdGVkLWhvbWUtZGlyIHdhcyBzZXQsCi0gICAgICA7OyBtYWtlIGl0IHN0 YXJ0IHdpdGggYH4nIGluc3RlYWQuCi0gICAgICA7OyBJZiB+IGhhcyBjaGFuZ2VkLCB3ZSBp Z25vcmUgYWJicmV2aWF0ZWQtaG9tZS1kaXIgcmF0aGVyIHRoYW4KLSAgICAgIDs7IGludmFs aWRhdGluZyBpdCwgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIGNoYW5nZSBpbiBIT01FCi0g ICAgICA7OyBpcyBsaWtlbHkgdGVtcG9yYXJ5IChlZyBmb3IgdGVzdGluZykuCi0gICAgICA7 OyBGSVhNRSBJcyBpdCBldmVuIHdvcnRoIGNhY2hpbmcgYWJicmV2aWF0ZWQtaG9tZS1kaXI/ Ci0gICAgICA7OyBSZWY6IGh0dHBzOi8vZGViYnVncy5nbnUub3JnLzE5NjU3IzIwCi0gICAg ICAobGV0IChtYjEpCi0gICAgICAgIChpZiAoYW5kIChzdHJpbmctbWF0Y2ggYWJicmV2aWF0 ZWQtaG9tZS1kaXIgZmlsZW5hbWUpCi0gICAgICAgICAgICAgICAgIChzZXRxIG1iMSAobWF0 Y2gtYmVnaW5uaW5nIDEpKQotCSAgICAgICAgIDs7IElmIHRoZSBob21lIGRpciBpcyBqdXN0 IC8sIGRvbid0IGNoYW5nZSBpdC4KLQkgICAgICAgICAobm90IChhbmQgKD0gKG1hdGNoLWVu ZCAwKSAxKQotCQkJICAgKD0gKGFyZWYgZmlsZW5hbWUgMCkgPy8pKSkKLQkgICAgICAgICA7 OyBNUy1ET1Mgcm9vdCBkaXJlY3RvcmllcyBjYW4gY29tZSB3aXRoIGEgZHJpdmUgbGV0dGVy OwotCSAgICAgICAgIDs7IE5vdmVsbCBOZXR3YXJlIGFsbG93cyBkcml2ZSBsZXR0ZXJzIGJl eW9uZCBgWjonLgotCSAgICAgICAgIChub3QgKGFuZCAobWVtcSBzeXN0ZW0tdHlwZSAnKG1z LWRvcyB3aW5kb3dzLW50IGN5Z3dpbikpCi0JCQkgICAoc3RyaW5nLW1hdGNoICJcXGBbYS16 QS1gXTovXFwnIiBmaWxlbmFtZSkpKQotICAgICAgICAgICAgICAgICAoZXF1YWwgKGdldCAn YWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAo ZXhwYW5kLWZpbGUtbmFtZSAifiIpKSkKLQkgICAgKHNldHEgZmlsZW5hbWUKLQkJICAoY29u Y2F0ICJ+IgotCQkJICAoc3Vic3RyaW5nIGZpbGVuYW1lIG1iMSkpKSkKKyAgICAgICAgKHdo ZW4gKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYpIGZpbGVuYW1lKQorICAgICAgICAg IChzZXRxIGZpbGVuYW1lIChjb25jYXQgKGNkciBkaXItYWJicmV2KQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSAobWF0Y2gtZW5kIDAp KSkpKQorICAgICAgICA7OyBBYmJyZXZpYXRlIHRoZSBob21lIGRpcmVjdG9yeSB0b28gc28g dGhhdCBpdCBjYW4gbWF0Y2ggdGhlCisgICAgICAgIDs7IGZpbGVuYW1lLgorICAgICAgICAo d2hlbiAoc3RyaW5nLW1hdGNoIChjYXIgZGlyLWFiYnJldikgaG9tZS1kaXIpCisgICAgICAg ICAgKHNldHEgaG9tZS1kaXIgKGNvbmNhdCAoY2RyIGRpci1hYmJyZXYpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGhvbWUtZGlyIChtYXRjaC1lbmQg MCkpKSkpKQorICAgICAgOzsgSWYgRklMRU5BTUUgc3RhcnRzIHdpdGggdGhlIGFiYnJldmlh dGVkIGhvbWVkaXIgbWFrZSBpdCBzdGFydAorICAgICAgOzsgd2l0aCBgficgaW5zdGVhZC4K KyAgICAgIChpZi1sZXQqICgoaG9tZS1kaXItcmVnZXhwCisgICAgICAgICAgICAgICAgIDs7 IFdlIGluY2x1ZGUgYSBzbGFzaCBhdCB0aGUgZW5kLCB0byBhdm9pZCBzcHVyaW91cworICAg ICAgICAgICAgICAgICA7OyBtYXRjaGVzIHN1Y2ggYXMgYC91c3IvZm9vYmFyJyB3aGVuIHRo ZSBob21lIGRpciBpcworICAgICAgICAgICAgICAgICA7OyBgL3Vzci9mb28nLgorICAgICAg ICAgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgaG9tZS1kaXIpICJcXCgv XFx8XFwnXFwpIikpCisgICAgICAgICAgICAgICAgKGhvbWUtZGlyLXJlZ2V4cAorICAgICAg ICAgICAgICAgICA7OyBEZXBlbmRpbmcgb24gd2hldGhlciBkZWZhdWx0LWRpcmVjdG9yeSBk b2VzIG9yCisgICAgICAgICAgICAgICAgIDs7IGRvZXNuJ3QgaW5jbHVkZSBub24tQVNDSUkg Y2hhcmFjdGVycywgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgIDs7IGhvbWUtZGly LXJlZ2V4cCBjb3VsZCBiZSBtdWx0aWJ5dGUgb3IgdW5pYnl0ZS4gIEluCisgICAgICAgICAg ICAgICAgIDs7IHRoZSBsYXR0ZXIgY2FzZSwgd2UgbmVlZCB0byBkZWNvZGUgaXQuICBOb3Rl IHRoYXQKKyAgICAgICAgICAgICAgICAgOzsgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9y IHRoZSBmaXJzdCB0aW1lIChmcm9tCisgICAgICAgICAgICAgICAgIDs7IHN0YXJ0dXAuZWwp IHdoZW4gbG9jYWxlLWNvZGluZy1zeXN0ZW0gaXMgYWxyZWFkeQorICAgICAgICAgICAgICAg ICA7OyBzZXQgdXAuCisgICAgICAgICAgICAgICAgIChpZiAobXVsdGlieXRlLXN0cmluZy1w IGhvbWUtZGlyLXJlZ2V4cCkKKyAgICAgICAgICAgICAgICAgICAgIGhvbWUtZGlyLXJlZ2V4 cAorICAgICAgICAgICAgICAgICAgIChkZWNvZGUtY29kaW5nLXN0cmluZyBob21lLWRpci1y ZWdleHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChl cSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICd1dGYtOAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxvY2FsZS1jb2Rpbmctc3lzdGVtKSkpKQorICAgICAgICAgICAg ICAgICgoc3RyaW5nLW1hdGNoIGhvbWUtZGlyLXJlZ2V4cCBmaWxlbmFtZSkpCisgICAgICAg ICAgICAgICAgKG1iMSAobWF0Y2gtYmVnaW5uaW5nIDEpKQorICAgICAgICAgICAgICAgICgo YW5kCisgICAgICAgICAgICAgICAgICA7OyBJZiB0aGUgaG9tZSBkaXIgaXMganVzdCAvLCBk b24ndCBjaGFuZ2UgaXQuCisgICAgICAgICAgICAgICAgICAobm90IChhbmQgKD0gKG1hdGNo LWVuZCAwKSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICg9IChhcmVmIGZpbGVu YW1lIDApID8vKSkpCisgICAgICAgICAgICAgICAgICA7OyBNUy1ET1Mgcm9vdCBkaXJlY3Rv cmllcyBjYW4gY29tZSB3aXRoIGEgZHJpdmUgbGV0dGVyOworICAgICAgICAgICAgICAgICAg OzsgTm92ZWxsIE5ldHdhcmUgYWxsb3dzIGRyaXZlIGxldHRlcnMgYmV5b25kIGBaOicuCisg ICAgICAgICAgICAgICAgICAobm90IChhbmQgKG1lbXEgc3lzdGVtLXR5cGUgJyhtcy1kb3Mg d2luZG93cy1udCBjeWd3aW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctbWF0Y2ggIlxcYFthLXpBLWBdOi9cXCciIGZpbGVuYW1lKSkpKSkpCisgICAgICAgICAg KGNvbmNhdCAifiIgKHN1YnN0cmluZyBmaWxlbmFtZSBtYjEpKQogICAgICAgICBmaWxlbmFt ZSkpKSkKIAogKGRlZnVuIGZpbmQtYnVmZmVyLXZpc2l0aW5nIChmaWxlbmFtZSAmb3B0aW9u YWwgcHJlZGljYXRlKQpkaWZmIC0tZ2l0IGEvbGlzcC9zdGFydHVwLmVsIGIvbGlzcC9zdGFy dHVwLmVsCmluZGV4IDUwNWQ3YjgzZjQuLjY0MDAwODhjMzUgMTAwNjQ0Ci0tLSBhL2xpc3Av c3RhcnR1cC5lbAorKysgYi9saXNwL3N0YXJ0dXAuZWwKQEAgLTEwNTAsOSArMTA1MCw2IEBA IGNvbW1hbmQtbGluZQogCWFmdGVyLWluaXQtdGltZSBuaWwKICAgICAgICAgY29tbWFuZC1s aW5lLWRlZmF1bHQtZGlyZWN0b3J5IGRlZmF1bHQtZGlyZWN0b3J5KQogCi0gIDs7IEZvcmNl IHJlY29tcHV0YXRpb24sIGluIGNhc2UgaXQgd2FzIGNvbXB1dGVkIGR1cmluZyB0aGUgZHVt cC4KLSAgKHNldHEgYWJicmV2aWF0ZWQtaG9tZS1kaXIgbmlsKQotCiAgIDs7IFNlZSBpZiB3 ZSBzaG91bGQgaW1wb3J0IHZlcnNpb24tY29udHJvbCBmcm9tIHRoZSBlbnZpcm9ubWVudCB2 YXJpYWJsZS4KICAgKGxldCAoKHZjIChnZXRlbnYgIlZFUlNJT05fQ09OVFJPTCIpKSkKICAg ICAoY29uZCAoKGVxIHZjIG5pbCkpCQkJO2Rvbid0IGRvIGFueXRoaW5nIGlmIG5vdCBzZXQK ZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9jYWxlbmRhci90b2RvLW1vZGUtdGVzdHMuZWwgYi90 ZXN0L2xpc3AvY2FsZW5kYXIvdG9kby1tb2RlLXRlc3RzLmVsCmluZGV4IDliNWQ5OTBiOWIu LmRkOGM1ZWMzNTMgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9jYWxlbmRhci90b2RvLW1vZGUt dGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2NhbGVuZGFyL3RvZG8tbW9kZS10ZXN0cy5lbApA QCAtMzgsOSArMzgsNiBAQCB3aXRoLXRvZG8tdGVzdAogICAiU2V0IHVwIGFuIGlzb2xhdGVk IGB0b2RvLW1vZGUnIHRlc3QgZW52aXJvbm1lbnQuIgogICAoZGVjbGFyZSAoZGVidWcgKGJv ZHkpKSkKICAgYChsZXQqICgodG9kby10ZXN0LWhvbWUgKG1ha2UtdGVtcC1maWxlICJ0b2Rv LXRlc3QtaG9tZS0iIHQpKQotICAgICAgICAgIDs7IFNpbmNlIHdlIGNoYW5nZSBIT01FLCBj bGVhciB0aGlzIHRvIGF2b2lkIGEgY29uZmxpY3QKLSAgICAgICAgICA7OyBlLmcuIGlmIEVt YWNzIHJ1bnMgd2l0aGluIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkuCi0gICAgICAgICAg KGFiYnJldmlhdGVkLWhvbWUtZGlyIG5pbCkKICAgICAgICAgICAocHJvY2Vzcy1lbnZpcm9u bWVudCAoY29ucyAoZm9ybWF0ICJIT01FPSVzIiB0b2RvLXRlc3QtaG9tZSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLWVudmlyb25tZW50KSkKICAg ICAgICAgICAodG9kby1kaXJlY3RvcnkgKGVydC1yZXNvdXJjZS1kaXJlY3RvcnkpKQpkaWZm IC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS10ZXN0cy5lbCBiL3Rlc3Qv bGlzcC9lbWFjcy1saXNwL3BhY2thZ2UtdGVzdHMuZWwKaW5kZXggMWZkOTNiYzFiZS4uZTg2 NTFhMTE4MiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS10ZXN0 cy5lbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXRlc3RzLmVsCkBAIC0x MjIsNyArMTIyLDYgQEAgd2l0aC1wYWNrYWdlLXRlc3QKICAgICAgICAgICAocGFja2FnZS1n bnVwZ2hvbWUtZGlyIChleHBhbmQtZmlsZS1uYW1lICJnbnVwZyIgcGFja2FnZS11c2VyLWRp cikpCiAgICAgICAgICAgKHBhY2thZ2UtYXJjaGl2ZXMgYCgoImdudSIgLiAsKG9yICxsb2Nh dGlvbiBwYWNrYWdlLXRlc3QtZGF0YS1kaXIpKSkpCiAgICAgICAgICAgKGRlZmF1bHQtZGly ZWN0b3J5IHBhY2thZ2UtdGVzdC1maWxlLWRpcikKLSAgICAgICAgICBhYmJyZXZpYXRlZC1o b21lLWRpcgogICAgICAgICAgIHBhY2thZ2UtLWluaXRpYWxpemVkCiAgICAgICAgICAgcGFj a2FnZS1hbGlzdAogICAgICAgICAgICxAKGlmIHVwZGF0ZS1uZXdzCmRpZmYgLS1naXQgYS90 ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwKaW5k ZXggNGI5ZDRlNDUxNi4uNjAxNTEyMGNmNiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2ZpbGVz LXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9maWxlcy10ZXN0cy5lbApAQCAtMTM0MiwxOSAr MTM0MiwzNSBAQCBmaWxlcy10ZXN0cy1jb3B5LWRpcmVjdG9yeQogICAgIChzaG91bGQgKGZp bGUtZGlyZWN0b3J5LXAgKGNvbmNhdCAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSBkZXN0Mikg ImEiKSkpCiAgICAgKGRlbGV0ZS1kaXJlY3RvcnkgZGlyICdyZWN1cnNpdmUpKSkKIAotKGVy dC1kZWZ0ZXN0IGZpbGVzLXRlc3RzLWFiYnJldmlhdGVkLWhvbWUtZGlyICgpCi0gICJUZXN0 IHRoYXQgY2hhbmdpbmcgSE9NRSBkb2VzIG5vdCBjb25mdXNlIGBhYmJyZXZpYXRlLWZpbGUt bmFtZScuCi1TZWUgPGh0dHBzOi8vZGViYnVncy5nbnUub3JnLzE5NjU3IzIwPi4iCisoZXJ0 LWRlZnRlc3QgZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1maWxlLW5hbWUtaG9tZWRpciAoKQor ICA7OyBDaGVjayBob21lZGlyIGFiYnJldmlhdGlvbi4KICAgKGxldCogKChob21lZGlyIHRl bXBvcmFyeS1maWxlLWRpcmVjdG9yeSkKICAgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50 IChjb25zIChmb3JtYXQgIkhPTUU9JXMiIGhvbWVkaXIpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcm9jZXNzLWVudmlyb25tZW50KSkKLSAgICAgICAgIChhYmJy ZXZpYXRlZC1ob21lLWRpciBuaWwpCi0gICAgICAgICAodGVzdGZpbGUgKGV4cGFuZC1maWxl LW5hbWUgImZvbyIgaG9tZWRpcikpCi0gICAgICAgICAob2xkIChmaWxlLXRydWVuYW1lIChh YmJyZXZpYXRlLWZpbGUtbmFtZSB0ZXN0ZmlsZSkpKQotICAgICAgICAgKHByb2Nlc3MtZW52 aXJvbm1lbnQgKGNvbnMgKGZvcm1hdCAiSE9NRT0lcyIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgImJhciIgaG9tZWRp cikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLWVudmly b25tZW50KSkpCi0gICAgKHNob3VsZCAoZXF1YWwgb2xkIChmaWxlLXRydWVuYW1lIChhYmJy ZXZpYXRlLWZpbGUtbmFtZSB0ZXN0ZmlsZSkpKSkpKQorICAgIChzaG91bGQgKGVxdWFsICJ+ L2Zvby9iYXIiCisgICAgICAgICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChj b25jYXQgaG9tZWRpciAiZm9vL2JhciIpKSkpKQorICA7OyBDaGVjayB0aGF0IGhvbWVkaXIg YWJicmV2aWF0aW9uIGRvZXNuJ3Qgb2NjdXIgd2hlbiBob21lZGlyIGlzIGp1c3QgLy4KKyAg KGxldCogKChob21lZGlyICIvIikKKyAgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IChj b25zIChmb3JtYXQgIkhPTUU9JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcm9jZXNzLWVudmlyb25tZW50KSkpCisgICAgKHNob3VsZCAoZXF1 YWwgIi9mb28vYmFyIgorICAgICAgICAgICAgICAgICAgIChhYmJyZXZpYXRlLWZpbGUtbmFt ZSAoY29uY2F0IGhvbWVkaXIgImZvby9iYXIiKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBmaWxl cy10ZXN0cy1hYmJyZXZpYXRlLWZpbGUtbmFtZS1kaXJlY3RvcnktYWJicmV2LWFsaXN0ICgp CisgICAgOzsgQ2hlY2sgYGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIGFiYnJldmlhdGlvbi4K KyAgICAobGV0ICgoZGlyZWN0b3J5LWFiYnJldi1hbGlzdCAnKCgiXFxgL25vd2hlcmUvc3Bl Y2lhbCIgLiAiL253L3NwIikpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsICIvbncvc3AvaGVy ZSIKKyAgICAgICAgICAgICAgICAgICAgIChhYmJyZXZpYXRlLWZpbGUtbmFtZSAiL25vd2hl cmUvc3BlY2lhbC9oZXJlIikpKSkKKyAgICA7OyBDaGVjayBob21lZGlyIGFuZCBgZGlyZWN0 b3J5LWFiYnJldi1hbGlzdCcgYWJicmV2aWF0aW9uLgorICAgIChsZXQqICgoaG9tZWRpciB0 ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnkpCisgICAgICAgICAgIChwcm9jZXNzLWVudmlyb25t ZW50IChjb25zIChmb3JtYXQgIkhPTUU9JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MtZW52aXJvbm1lbnQpKQorICAgICAgICAg ICAoZGlyZWN0b3J5LWFiYnJldi1hbGlzdAorICAgICAgICAgICAgYCgoLChjb25jYXQgIlxc YCIgKHJlZ2V4cC1xdW90ZSBob21lZGlyKSAibm93aGVyZS9zcGVjaWFsIikKKyAgICAgICAg ICAgICAgLiAsKGNvbmNhdCBob21lZGlyICJudy9zcCIpKSkpKQorICAgICAgKHNob3VsZCAo ZXF1YWwgIn4vbncvc3AvaGVyZSIKKyAgICAgICAgICAgICAgICAgICAgIChhYmJyZXZpYXRl LWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgaG9tZWRpciAibm93 aGVyZS9zcGVjaWFsL2hlcmUiKSkpKSkpCiAKIChlcnQtZGVmdGVzdCBmaWxlcy10ZXN0cy1l eGVjdXRhYmxlLWZpbmQgKCkKICAgIlRlc3QgdGhhdCBgZXhlY3V0YWJsZS1maW5kJyB3b3Jr cyBhbHNvIHdpdGggYSByZWxhdGl2ZSBvciByZW1vdGUgUEFUSC4KZGlmZiAtLWdpdCBhL3Rl c3QvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9wcm9nbW9k ZXMvZmx5bWFrZS10ZXN0cy5lbAppbmRleCA0YzBkMTVkMWUxLi45ZDM3OGY1NGJhIDEwMDY0 NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UtdGVzdHMuZWwKKysrIGIvdGVz dC9saXNwL3Byb2dtb2Rlcy9mbHltYWtlLXRlc3RzLmVsCkBAIC0xMjUsMTAgKzEyNSw3IEBA IHJ1YnktYmFja2VuZAogICA7OyBTb21lIHZlcnNpb25zIG9mIHJ1YnkgZmFpbCBpZiBIT01F IGRvZXNuJ3QgZXhpc3QgKGJ1ZyMyOTE4NykuCiAgIChsZXQqICgodGVtcGRpciAobWFrZS10 ZW1wLWZpbGUgImZseW1ha2UtdGVzdHMtcnVieSIgdCkpCiAgICAgICAgICAocHJvY2Vzcy1l bnZpcm9ubWVudCAoY29ucyAoZm9ybWF0ICJIT01FPSVzIiB0ZW1wZGlyKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy1lbnZpcm9ubWVudCkpCi0gICAg ICAgICA7OyBBbmQgc2VlIGh0dHBzOi8vZGViYnVncy5nbnUub3JnL2NnaS9idWdyZXBvcnQu Y2dpP2J1Zz0xOTY1NyMyMAotICAgICAgICAgOzsgZm9yIHRoaXMgcGFydGljdWxhciB5dWNr aW5lc3MKLSAgICAgICAgIChhYmJyZXZpYXRlZC1ob21lLWRpciBuaWwpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy1lbnZpcm9ubWVudCkpKQogICAg ICh1bndpbmQtcHJvdGVjdAogICAgICAgICAobGV0ICgocnVieS1tb2RlLWhvb2sKICAgICAg ICAgICAgICAgIChsYW1iZGEgKCkKLS0gCjIuMjUuMQoK --------------E1ED1E8F4A40B39A34597491 Content-Type: text/plain; charset=UTF-8; name="0003-Abbreviate-home-directory-for-remote-files.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Abbreviate-home-directory-for-remote-files.patch" RnJvbSAwYTRmYjM4NTU1NjQ2MjI2ZGM0NWVkNmM4NmUzYmFlMmQxMDhiZjZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IEZyaSwgNSBOb3YgMjAyMSAyMDoxMTowNCAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBBYmJyZXZpYXRlIGhvbWUgZGlyZWN0b3J5IGZvciByZW1vdGUgZmlsZXMKCiog bGlzcC9maWxlcy5lbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUpOiBTdXBwb3J0IGhvbWVkaXIg YWJicmV2aWF0aW9uCm9mIHJlbW90ZSBmaWxlcy4KLS0tCiBsaXNwL2ZpbGVzLmVsIHwgMTEg KysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9maWxlcy5lbCBiL2xpc3AvZmlsZXMuZWwKaW5k ZXggOTRiNzhkZjQwYy4uYWEyMzBkYzBjNiAxMDA2NDQKLS0tIGEvbGlzcC9maWxlcy5lbAor KysgYi9saXNwL2ZpbGVzLmVsCkBAIC0yMDAxLDggKzIwMDEsOSBAQCBhYmJyZXZpYXRlLWZp bGUtbmFtZQogaG9tZSBkaXJlY3RvcnkgaXMgYSByb290IGRpcmVjdG9yeSkuIgogICAoc2F2 ZS1tYXRjaC1kYXRhICAgICAgICAgICAgICAgICAgICAgIDtGSVhNRTogV2h5PwogICAgIDs7 IEF2b2lkIHRyZWF0aW5nIC9ob21lL2ZvbyBhcyAvaG9tZS9Gb28gZHVyaW5nIGB+JyBzdWJz dGl0dXRpb24uCi0gICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggKGZpbGUtbmFtZS1jYXNl LWluc2Vuc2l0aXZlLXAgZmlsZW5hbWUpKQotICAgICAgICAgIChob21lLWRpciAoZXhwYW5k LWZpbGUtbmFtZSAifiIpKSkKKyAgICAobGV0KiAoKGNhc2UtZm9sZC1zZWFyY2ggKGZpbGUt bmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgZmlsZW5hbWUpKQorICAgICAgICAgICAocmVtb3Rl LWhvc3QgKGZpbGUtcmVtb3RlLXAgZmlsZW5hbWUpKQorICAgICAgICAgICAoaG9tZS1kaXIg KGV4cGFuZC1maWxlLW5hbWUgKGNvbmNhdCByZW1vdGUtaG9zdCAifiIpKSkpCiAgICAgICA7 OyBJZiBhbnkgZWx0IG9mIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgbWF0Y2hlcyB0aGlzIG5h bWUsCiAgICAgICA7OyBhYmJyZXZpYXRlIGFjY29yZGluZ2x5LgogICAgICAgKGRvbGlzdCAo ZGlyLWFiYnJldiBkaXJlY3RvcnktYWJicmV2LWFsaXN0KQpAQCAtMjAzOSwxMyArMjA0MCwx MyBAQCBhYmJyZXZpYXRlLWZpbGUtbmFtZQogICAgICAgICAgICAgICAgIChtYjEgKG1hdGNo LWJlZ2lubmluZyAxKSkKICAgICAgICAgICAgICAgICAoKGFuZAogICAgICAgICAgICAgICAg ICAgOzsgSWYgdGhlIGhvbWUgZGlyIGlzIGp1c3QgLywgZG9uJ3QgY2hhbmdlIGl0LgotICAg ICAgICAgICAgICAgICAgKG5vdCAoYW5kICg9IChtYXRjaC1lbmQgMCkgMSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoPSAoYXJlZiBmaWxlbmFtZSAwKSA/LykpKQorICAgICAg ICAgICAgICAgICAgKG5vdCAoYW5kICg9IChtYXRjaC1lbmQgMCkgKDErIChsZW5ndGggcmVt b3RlLWhvc3QpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPSAoYXJlZiBmaWxl bmFtZSAobGVuZ3RoIHJlbW90ZS1ob3N0KSkgPy8pKSkKICAgICAgICAgICAgICAgICAgIDs7 IE1TLURPUyByb290IGRpcmVjdG9yaWVzIGNhbiBjb21lIHdpdGggYSBkcml2ZSBsZXR0ZXI7 CiAgICAgICAgICAgICAgICAgICA7OyBOb3ZlbGwgTmV0d2FyZSBhbGxvd3MgZHJpdmUgbGV0 dGVycyBiZXlvbmQgYFo6Jy4KICAgICAgICAgICAgICAgICAgIChub3QgKGFuZCAobWVtcSBz eXN0ZW0tdHlwZSAnKG1zLWRvcyB3aW5kb3dzLW50IGN5Z3dpbikpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCAiXFxgW2EtekEtYF06L1xcJyIgZmlsZW5h bWUpKSkpKSkKLSAgICAgICAgICAoY29uY2F0ICJ+IiAoc3Vic3RyaW5nIGZpbGVuYW1lIG1i MSkpCisgICAgICAgICAgKGNvbmNhdCByZW1vdGUtaG9zdCAifiIgKHN1YnN0cmluZyBmaWxl bmFtZSBtYjEpKQogICAgICAgICBmaWxlbmFtZSkpKSkKIAogKGRlZnVuIGZpbmQtYnVmZmVy LXZpc2l0aW5nIChmaWxlbmFtZSAmb3B0aW9uYWwgcHJlZGljYXRlKQotLSAKMi4yNS4xCgo= --------------E1ED1E8F4A40B39A34597491 Content-Type: text/plain; charset=UTF-8; name="benchmark.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark.el" KHNldHEgcmVtb3RlLWhvc3QgIi9zc2h4OmppbUBsb2NhbGhvc3Q6IikKCihkZWZ1biBmaWxs LWRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgKGNvdW50KQogIChzZXRxIGRpcmVjdG9yeS1hYmJy ZXYtYWxpc3QKICAgICAgICAobGV0IChyZXN1bHQpCiAgICAgICAgICAoZG90aW1lcyAoaSBj b3VudCByZXN1bHQpCiAgICAgICAgICAgIChzZXRxIHJlc3VsdCAoY29ucyAoY29ucyAoZm9y bWF0ICJcXGAvaG9tZS9hYmJyJWQiICgxKyBpKSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChmb3JtYXQgIi9ob21lL2FiYnIlZCIgaSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXN1bHQpKSkpKSkKCihkZWZ1biBydW4tdGVzdCAoY291bnQg Jm9wdGlvbmFsIHBhdGgpCiAgKGxldCogKChhYmJyZXZpYXRlLWhvbWUtZGlyIG5pbCkKICAg ICAgICAgKHBhdGggKG9yIHBhdGggIi9ob21lL3VzZXIvc3JjL3Byb2plY3QiKSkKICAgICAg ICAgKHJlbW90ZS1wYXRoIChjb25jYXQgcmVtb3RlLWhvc3QgcGF0aCkpKQogICAgKGJlbmNo bWFyayAxMDAwIGAoYWJicmV2aWF0ZS1maWxlLW5hbWUgLHBhdGgpKQogICAgKGJlbmNobWFy ayAxMDAwIGAoYWJicmV2aWF0ZS1maWxlLW5hbWUgLHJlbW90ZS1wYXRoKSkpKQoKKGZpbmQt ZmlsZSAoY29uY2F0IHJlbW90ZS1ob3N0ICJ+IikpCgoobWVzc2FnZSAiRW1wdHkgYGRpcmVj dG9yeS1hYmJyZXYtYWxpc3QnIikKKHJ1bi10ZXN0IDEwMDApCihtZXNzYWdlICIiKQoKKGZp bGwtZGlyZWN0b3J5LWFiYnJldi1hbGlzdCAxMDApCihtZXNzYWdlICIxMDAgaXRlbXMgaW4g YGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIChubyBtYXRjaGVzKSIpCihydW4tdGVzdCAxMDAw KQoobWVzc2FnZSAiIikKCihtZXNzYWdlICIxMDAgaXRlbXMgaW4gYGRpcmVjdG9yeS1hYmJy ZXYtYWxpc3QnIChhbGwgbWF0Y2hlcykiKQoocnVuLXRlc3QgMTAwMCAiL2hvbWUvYWJicjEw MC9zcmMvcHJvamVjdCIpCihtZXNzYWdlICIiKQoKKGZpbGwtZGlyZWN0b3J5LWFiYnJldi1h bGlzdCA1MDApCihtZXNzYWdlICI1MDAgaXRlbXMgaW4gYGRpcmVjdG9yeS1hYmJyZXYtYWxp c3QnIChubyBtYXRjaGVzKSIpCihydW4tdGVzdCAxMDAwKQoobWVzc2FnZSAiIikKCihtZXNz YWdlICI1MDAgaXRlbXMgaW4gYGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIChhbGwgbWF0Y2hl cykiKQoocnVuLXRlc3QgMTAwMCAiL2hvbWUvYWJicjEwMC9zcmMvcHJvamVjdCIpCg== --------------E1ED1E8F4A40B39A34597491 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" KE5vdGU6IGVhY2ggdGVzdCB1c2VzIDEwMDAgaXRlcmF0aW9ucyBvZiBhYmJyZXZpYXRlLWZp bGUtbmFtZS4pCgpWYW5pbGxhIEVtYWNzIDI5LjAuNTA6Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCkVtcHR5IOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkKTG9jYWwgfCBFbGFwc2Vk IHRpbWU6IDAuMDUxMzM2cyAoMC4wMTYxMjVzIGluIDEgR0NzKQpUUkFNUCB8IEVsYXBzZWQg dGltZTogMi4xNzM2MjFzICgwLjUwMTY1M3MgaW4gMzggR0NzKQoKMTAwIGl0ZW1zIGluIOKA mGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5vIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNl ZCB0aW1lOiAwLjMxNjAyMXMgKDAuMTMzNTMxcyBpbiAxMCBHQ3MpClRSQU1QIHwgRWxhcHNl ZCB0aW1lOiAyLjQ1OTIxMnMgKDAuNjMzMzczcyBpbiA0OCBHQ3MpCgoxMDAgaXRlbXMgaW4g 4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAoYWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxh cHNlZCB0aW1lOiAwLjUzOTYzNnMgKDAuMzI3NjM3cyBpbiAyNSBHQ3MpClRSQU1QIHwgRWxh cHNlZCB0aW1lOiAyLjQ4NDYyOXMgKDAuNjQyNTk3cyBpbiA0OSBHQ3MpCgo1MDAgaXRlbXMg aW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAobm8gbWF0Y2hlcykKTG9jYWwgfCBF bGFwc2VkIHRpbWU6IDEuMDc1NjUwcyAoMC41MDAwNDNzIGluIDM4IEdDcykKVFJBTVAgfCBF bGFwc2VkIHRpbWU6IDMuMjQxNDE0cyAoMS4wMDYxNDNzIGluIDc2IEdDcykKCjUwMCBpdGVt cyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChhbGwgbWF0Y2hlcykKTG9jYWwg fCBFbGFwc2VkIHRpbWU6IDEuMzAyMjAxcyAoMC42OTYyNDlzIGluIDUzIEdDcykKVFJBTVAg fCBFbGFwc2VkIHRpbWU6IDMuMjYxOTg0cyAoMS4wMTgwOThzIGluIDc3IEdDcykKCgpSZW1v dmUgY2FjaGluZyAocGF0Y2hlcyAxIGFuZCAyKToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgpFbXB0eSDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZCkxvY2FsIHwg RWxhcHNlZCB0aW1lOiAwLjA3NTY4NHMgKDAuMDEyOTk3cyBpbiAxIEdDcykKVFJBTVAgfCBF bGFwc2VkIHRpbWU6IDIuMTk2NjU0cyAoMC41MTQwNzVzIGluIDM5IEdDcykKCjEwMCBpdGVt cyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChubyBtYXRjaGVzKQpMb2NhbCB8 IEVsYXBzZWQgdGltZTogMC4zNjE0ODhzICgwLjEzMDA2NHMgaW4gMTAgR0NzKQpUUkFNUCB8 IEVsYXBzZWQgdGltZTogMi41MTc4MjVzICgwLjY0MTI4NnMgaW4gNDkgR0NzKQoKMTAwIGl0 ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKGFsbCBtYXRjaGVzKQpMb2Nh bCB8IEVsYXBzZWQgdGltZTogMC42MTY0NzZzICgwLjM0MDE1NXMgaW4gMjYgR0NzKQpUUkFN UCB8IEVsYXBzZWQgdGltZTogMi41MzQ5MjZzICgwLjY0MTQ4NXMgaW4gNDkgR0NzKQoKNTAw IGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5vIG1hdGNoZXMpCkxv Y2FsIHwgRWxhcHNlZCB0aW1lOiAxLjIzOTM5OXMgKDAuNTAyMjM3cyBpbiAzOCBHQ3MpClRS QU1QIHwgRWxhcHNlZCB0aW1lOiAzLjM5NDEwOXMgKDEuMDEyMjM3cyBpbiA3NyBHQ3MpCgo1 MDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAoYWxsIG1hdGNoZXMp CkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjQ3Mjk2N3MgKDAuNzA3NTY5cyBpbiA1NCBHQ3Mp ClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAzLjQwMTUxN3MgKDEuMDA4ODY1cyBpbiA3NyBHQ3Mp CgoKClRSQU1QIHN1cHBvcnQgKHBhdGNoZXMgMS0zKToKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMDc2NjIwcyAoMC4wMTM0MzRzIGlu IDEgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMy41NDMyNjZzICgwLjg2NDcyOXMgaW4g NjQgR0NzKQoKMTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5v IG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAwLjM2NTQwMnMgKDAuMTMxMjkwcyBp biAxMCBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAzLjczNjY5NnMgKDAuOTU1NDc0cyBp biA3MyBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAo YWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAwLjYwODEyMnMgKDAuMzQwNjc3 cyBpbiAyNiBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAzLjgxODg2N3MgKDAuOTU2MzYx cyBpbiA3MyBHQ3MpCgo1MDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKA mSAobm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDEuMjMyMjIxcyAoMC40OTkw OTlzIGluIDM4IEdDcykKVFJBTVAgfCBFbGFwc2VkIHRpbWU6IDQuNTk5Nzk5cyAoMS4zMTM2 MjlzIGluIDEwMCBHQ3MpCgo1MDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlz dOKAmSAoYWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjQ3OTYwOXMgKDAu NzA4OTAzcyBpbiA1NCBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiA0LjY1Njk2M3MgKDEu MzQ1MTI1cyBpbiAxMDEgR0NzKQo= --------------E1ED1E8F4A40B39A34597491-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 06 04:06:47 2021 Received: (at 51622) by debbugs.gnu.org; 6 Nov 2021 08:06:47 +0000 Received: from localhost ([127.0.0.1]:48269 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjGit-0006RD-Bk for submit@debbugs.gnu.org; Sat, 06 Nov 2021 04:06:47 -0400 Received: from eggs.gnu.org ([209.51.188.92]:32974) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjGis-0006R1-AH for 51622@debbugs.gnu.org; Sat, 06 Nov 2021 04:06:46 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37436) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjGil-0002FZ-Jn; Sat, 06 Nov 2021 04:06:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=CJNzIAtl2FNiBY1VqKdPa9VbKR/fyvPT+OnqXcbloIo=; b=i+3hun6+24sN sKTnLEjP09PH1bN9WTTbQX9dOBva2OQHtPa8UZU1dO1q29gh53DUqITA663G/QVp0erE6408CXwWk 9+D4krgqezqL5T4Bx3/L4ZwO3woQlmKIJx9tNiwFSmzlCUbktxh0zujL72Ok3oBlVs61+gUgtLgpS E7NWFVbb8yc9Z5axA687rH51w9rwn4JuibKq9Cm2nMO9jblxw62T0QSPePXfKegigVgOhcOtejCnm 4eYdgw0DWqKRjsWxhB+p1mn0Mg9MDKrVN/VZN5BwDexyjLrFqUp1rOUSLQoOUk9l1AvQ2crvGlBSc 53yU4eesaTZgQhI1eH1KiQ==; Received: from [87.69.77.57] (port=2693 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjGik-0005Ev-50; Sat, 06 Nov 2021 04:06:39 -0400 Date: Sat, 06 Nov 2021 10:06:23 +0200 Message-Id: <83v915btds.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> (message from Jim Porter on Fri, 5 Nov 2021 20:44:44 -0700) Subject: Re: bug#51622: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Jim Porter > Date: Fri, 5 Nov 2021 20:44:44 -0700 > > Second, I removed the caching of the abbreviated home dir. Since adding > TRAMP support means there are multiple home dirs (one per host), keeping > the caching would have been fairly complex, and it's already the source > of potential bugs (e.g. when temporarily setting HOME to something > else). I did some benchmarking on this (see attached), and while it is > indeed slower without the caching, I don't think it's worth keeping the > caching around. If some user never uses Tramp, this removal will be a net loss for that user. So I think we should have this customizable. Or maybe even better: as long as Tramp is not used, keep the cache, and only stop updating it when Tramp is being used. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 06 11:34:59 2021 Received: (at 51622) by debbugs.gnu.org; 6 Nov 2021 15:34:59 +0000 Received: from localhost ([127.0.0.1]:50175 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjNid-00081D-1D for submit@debbugs.gnu.org; Sat, 06 Nov 2021 11:34:59 -0400 Received: from mout.gmx.net ([212.227.17.21]:52129) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjNia-00080w-Ik for 51622@debbugs.gnu.org; Sat, 06 Nov 2021 11:34:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636212889; bh=ag41Zgp4asPKaeBg8UEV2+lBEgHKD5SZjOHibzR7+wY=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=bi70st0FdxYfaELMaMZ/sM+2RAFZUUzGRqth5w0Lm6Vku9xsQBGGQhqPO4CFndsbN 13RWz0dUsdd3dl/X7dLpebLV9sjxF3YBcrLeptDXbJjqhB+v3/SQz+KIqKSLxLcGlW Ic22POHEOQH5TOfsjr5eLS75RbtpJGf8sAu/7iyM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([79.140.112.248]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mr9Bu-1mLaIA41Ju-00oG38; Sat, 06 Nov 2021 16:34:49 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> Date: Sat, 06 Nov 2021 16:34:47 +0100 In-Reply-To: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> (Jim Porter's message of "Fri, 5 Nov 2021 20:44:44 -0700") Message-ID: <87mtmhmh60.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:7zZVbTQcqz7Kh3hRR1RWK2uOz1TyJ/SvnakzTcIY7SXEPAae/PQ ZYssg+2CNzUCKRecSx7xLd3KvkxAb8LV0Em+juVoJgfivYgbLftcjNQF3KzUglIrS9Y/WUF UvJcCYMDOW2tIFGPaeRLQaQjKqtOZtQE+efb0h6GSR00v9/4yvbkidHEg3+IuXIaIAvpqSA nc5ozBpnOJ75GHuZCHfPQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:eIKLQr0XeYA=:6gjnaHf0i7TLq1a6XeJsPQ h/1/yVW9hubTKFMf6hSbXezoQc2ideleroD0tmimgRDRaO7U8bpMXXIdb1aktiu2L6i0mTSXA +cwpCftaPf1IccMLEltTtotqXKk19UsjSlm7QjMhU8N0FZ/x+wL3KjUhnV607ib6pOUP1/N7F DDYnPQ+R7RwoWnDwbXpSXn9r5uxicbHpQ/f0HeNLd6xovDoecxcsphz/kDF1X2ho1ro9vI5Oa cp40BPF49ZyTdojp25rVOA8YF321g7ignRd9a+ixxWrf85hPlDK4pEktQnmV8v3MdtgHHlcRg TZsq+z9iwKxLzjEgi+dal9SB8Npo03M+gJKkyGiwGaTEqgohCmT6uNXPnw8ASOobhZdNudw3k vIL1dH5VyU8tSKbqhhdmzbFrhcT57C/yxnmY9JAlE5tUYL3AvzTmOiSv4jpH4iGE8HHOoCXdY Zsfyxu7xxypX58OPTPR9ZOS8Ggq8gpKAy36i0vlb399Cg/FybRqdZk0E/BLCuWFD5CMKBxfVM C+aOna8l1aFNEoqQ7qGja0sEBoORbMHznbtkN4EpfGYN+JHO5v+uW534LaUYmyQYszHeDKj0N Z6DDc/P0NDnkT/sztD3me2gF9y+D0qHpkw6w1QtV7s4Vn+yRUh7ttEbrzGGJABIm0KAMiDQBb 928RDurk4jC4jnHFArANFWQvaa6gaftOrndqLYmjF73QstZRoTw5ZA4bvpuh3sDJYPPPNTzlE offPEOiG9ZA7VryRoW4DR6+atUdmfVxd/R/evm9rGCVHlfTeYHOtiv6ybKEJG77plV/n5E6ME x2zNFwdTppwXeYwQ1Dv/8gsT0dgKYUWHhMbV23JXu3FyysOoy82E1bugHpJWYw0k8xG/XSMIE D9v8Fr7mqUgVxB1c5U6723AguqBUWj9wL+NdVO0+4iz5XCEF6e+QxRoSIbPfVf1XbfwS7l6UI vVjeCZSZb8DpSNuQU93XyBn/2nYn+I1WNpwEbMA7GJuQQcjhPLtIgEcOW2Jo8xuWyO3jX/hhK XUWBeiP5//u0T/jIhTcf3bM4SvlF0ud/TDz8ROEm2JVWEwvRS3oyaIAfzVe1XwvwPPzun6v28 Vu8feahLFMnPzk= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Jim Porter writes: Hi Jim, > Currently, `abbreviate-file-name' abbreviates home directories, but > only for the local system. For example: > > $ emacs -Q > M-: (abbreviate-file-name "/home/jim/src") RET > ;; => "~/src" > M-: (abbreviate-file-name "/sshx:localhost:/home/jim/src") RET > ;; => "/sshx:localhost:/home/jim/src" > > It'd be nice to abbreviate TRAMP home dirs, especially for the buffer > list, where the long length of TRAMP paths means that I often just see > the same leading bits of the paths repeated in the File column. As a > result, it can be hard to tell the exact file it refers to. (Of > course, as a workaround, I could just widen the window.) Nice idea :-) > Attached is a patch series to do this, but the patches probably > warrant some explanation. First, I removed `automount-dir-prefix'; > it's been obsolete since 24.3, and it would have made implementation > of the second part more complex. This is not related to the problem, and it isn't needed because I propose to skip your second patch (see below). Personally I have no opinion about, you might apply this patch if you believe it makes sense, but independently from the feature request. > Second, I removed the caching of the abbreviated home dir. Since > adding TRAMP support means there are multiple home dirs (one per > host), keeping the caching would have been fairly complex, and it's > already the source of potential bugs (e.g. when temporarily setting > HOME to something else). I did some benchmarking on this (see > attached), and while it is indeed slower without the caching, I don't > think it's worth keeping the caching around. The real performance cost > comes from calling `abbreviate-file-name' with a TRAMP file (even > before my patch), but abbreviating a local file is quite fast, even > with a pathologically large `directory-abbrev-alist'. I also wrote a > couple of unit tests to make sure this function works correctly. I disagree. We shall keep the cached abbreviated-home-dir as *local* home directory. Remote home directories shall be handled in Tramp, and nowhere else. This is a general design goal which I try to follow. Mixing Tramp needs with other packages is good for trouble, and shall be avoided if possible. > Finally, I added the actual TRAMP support. This has a pretty > significant performance hit to TRAMP files. Looking at profiles, > this appears to be because my patch calls both > `file-name-case-insensitive-p' and `file-remote-p' on the TRAMP path, > and these duplicate quite a bit of work. Is there a way to make this > more efficient (e.g. by getting the file handler just once instead of > twice)? It might also be useful to add some unit tests here, but I > wasn't 100% sure how to do that with TRAMP paths (the tests in my > benchmark actually open an SSH connection, so that probably won't work > on all systems). I believe there is a much simpler solution: Add the following entry (derived from your example) to directory-abbrev-alist: ("\\`/sshx:localhost:/home/jim" . "/sshx:localhost:~") The appended patch is a proof of concept w/o any systematic testing, it is not ready for commit. You might use it in order to get the idea, and to provide an applicable patch. It handles only tramp-sh.el; other Tramp backends might need something similar. Tramp tests could be added to tramp-tests.el. You'll see there a Tramp mockup method which gives you the possibility to add a test w/o a working ssh connection or alike. > In addition to the patches, I've also attached a simple benchmark > script that I used to measure the performance of these patches as well > as the results from my system. The performance for local paths is > still quite good I think, and even the worst-case scenario for TRAMP > paths (abbreviating with a 500-item `directory-abbrev-alist') clocks > in at 4.6ms per call. It'd be nice to make that faster, but maybe > that's the best we can do if we want this feature. I'm eager to see new figures with an adapted patch. Best regards, Michael. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment diff --git a/lisp/tramp-sh.el b/lisp/tramp-sh.el index 6f3b3245..974e3f3a 100644 --- a/lisp/tramp-sh.el +++ b/lisp/tramp-sh.el @@ -2723,6 +2723,14 @@ the result will be a local, non-Tramp, file name." (format "cd %s && pwd" (tramp-shell-quote-argument uname))) (with-current-buffer (tramp-get-buffer v) (goto-char (point-min)) + (add-to-list + 'directory-abbrev-alist + (cons + (concat + "\\`" (tramp-make-tramp-file-name v 'noloc 'nohop) + (buffer-substring (point) (point-at-eol))) + (concat + (tramp-make-tramp-file-name v 'noloc 'nohop) uname))) (buffer-substring (point) (point-at-eol))))) (setq localname (concat uname fname)))) ;; There might be a double slash, for example when "~/" --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 06 12:39:07 2021 Received: (at 51622) by debbugs.gnu.org; 6 Nov 2021 16:39:07 +0000 Received: from localhost ([127.0.0.1]:50293 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjOig-0001Dm-PH for submit@debbugs.gnu.org; Sat, 06 Nov 2021 12:39:07 -0400 Received: from mail-pg1-f173.google.com ([209.85.215.173]:35669) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjOif-0001DH-8G for 51622@debbugs.gnu.org; Sat, 06 Nov 2021 12:39:05 -0400 Received: by mail-pg1-f173.google.com with SMTP id p17so11071181pgj.2 for <51622@debbugs.gnu.org>; Sat, 06 Nov 2021 09:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=obFwab9kvHrFQhvG8kXsNaUVEwpLx1T0nHXOH96esIY=; b=ZPVQrUo2Bq62Zm3rcOz1iOqIw/bOnF936WrzL8Rqvc87EpaSlA2RskJFuqC5eiaeyT CaCXTdeuBIY3wV0RPf2OAl12OYDjWIZYOp1wnTf/IJBM/s9FisuFDgXhIwKboXQbWSUp 4n51B96/KkaDDEcDHid9vjYthhw1piSfAuCZ5GikDEJ7tcu+nhmS+ayfLHjeH7yK9Y// 5qIFNjpYJYJTWUSS322H1pcwu2ZE2l96o2hcS3PNvmV6sqeTeLcsHb359I7VMU8b6w/X gGCq0pLxAn+Qd5NXlHxnBJ4lu9Xf+j4MO9LjH8UKjvnlF8A6Mdg+nW5M8k0IoDjP0HrZ 8sxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=obFwab9kvHrFQhvG8kXsNaUVEwpLx1T0nHXOH96esIY=; b=WC9stuP8991m9lcgSKJCGlou0iE+0GG0NqF+5OVUuifJ99MaNHUZhw5ps/Ttib4MdF T6wDXarj1/wKsDX6h365WIUe1yQKg6l2xp/hUzClrutS1CEk0s30Z4NRVjaApEstdZyg /O8YmjY2VsfivFx5SY8svF6K0cQnMLhpBumZ97LIpcG8AHbyyLWligR51Pv42uex6nCH 8hQwZ79PzRLn0Yz8Xmo/Ht+TmlcAD14vx4kpHMQRO/J0lJxZetPC+VUFmPDFhuJhfB6j qANB4oTJ21IBjGkudC6eywd6elont1nrQP4W4xExaLdejJJP14GyIOZKvIJloODUVNn3 wu1g== X-Gm-Message-State: AOAM532v7SsHPfMX5iT44jWhN3a/tMWdJTM/S8WZfqt7tD7ZLymkQ4er 0P35dIRrOaw0zsjF5DD2Tjt71mr/5Ks= X-Google-Smtp-Source: ABdhPJxx6nnEAGM/15mltOG2xQPgGjOVocdVKO/tK5Be06oRpDZBeDCe1ie42NKIst5KMusDiouZBw== X-Received: by 2002:a05:6a00:17a5:b0:49f:add2:3c85 with SMTP id s37-20020a056a0017a500b0049fadd23c85mr4557159pfg.48.1636216739337; Sat, 06 Nov 2021 09:38:59 -0700 (PDT) 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 h3sm11516618pfi.207.2021.11.06.09.38.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 06 Nov 2021 09:38:58 -0700 (PDT) Subject: Re: bug#51622: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> From: Jim Porter Message-ID: Date: Sat, 6 Nov 2021 09:38:59 -0700 MIME-Version: 1.0 In-Reply-To: <87mtmhmh60.fsf@gmx.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/6/2021 8:34 AM, Michael Albinus wrote: > I disagree. We shall keep the cached abbreviated-home-dir as *local* > home directory. Remote home directories shall be handled in Tramp, and > nowhere else. > > This is a general design goal which I try to follow. Mixing Tramp needs > with other packages is good for trouble, and shall be avoided if possible. Ok, I can do that. I could even add caching for remote hosts if people think it would help (it would probably improve performance, at least a little bit). However, while I was looking at the implementation of `abbreviate-file-name', I saw the following comment: ;; FIXME Is it even worth caching abbreviated-home-dir? ;; Ref: https://debbugs.gnu.org/19657#20 After looking over the explanation in that link, I decided to see what the performance impact would be if I removed the caching. In my opinion, the benchmarks suggest that the caching a small enough impact that the brittleness with using the cache outweighed the benefits. However, I don't feel strongly about that and if the cache should stay, that's ok with me. > I believe there is a much simpler solution: Add the following entry > (derived from your example) to directory-abbrev-alist: > > ("\\`/sshx:localhost:/home/jim" . "/sshx:localhost:~") I had thought about doing that originally, but when I looked into the implementation to understand why home-dir abbreviation didn't work on remote files, I figured the better long-term solution is to fix `abbreviate-file-name' somehow. Then everyone benefits from the improvement. > The appended patch is a proof of concept w/o any systematic testing, it > is not ready for commit. You might use it in order to get the idea, and > to provide an applicable patch. It handles only tramp-sh.el; other Tramp > backends might need something similar. Is it a general rule that all Tramp-specific stuff goes into the Tramp files, or would it be ok to write a patch that only touches files.el, so long as the performance for local files isn't hurt? It wouldn't be terribly difficult to replace `abbreviated-home-dir' with something that handles multiple hosts, similar to `grep-host-defaults-alist'. If I understand things correctly, `file-remote-p' can be non-nil for a non-Tramp file if it has a file name handler that says so (e.g. if I wrote my own package that handles some remote files in a different way from Tramp). Maybe that's an argument in favor of changing this in `abbreviate-file-name'. Then it works with any remote file. On the other hand, maybe we need more protocol-specific information to do this correctly, and I should do this inside Tramp... Either way, I'll look at your patch and see how it compares; if doing it that way ends up being better, then I'll try to implement something like that. I see in your patch that you add to `directory-abbrev-alist'. Is it ok to change a defcustom automatically like this? It seems to work in my limited tests, but I thought defcustoms were for users to set themselves. Should I come up with a different way to do this if I want to merge it into Emacs? > Tramp tests could be added to tramp-tests.el. You'll see there a Tramp > mockup method which gives you the possibility to add a test w/o a > working ssh connection or alike. Thanks, I'll take a look. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 06 13:41:46 2021 Received: (at 51622) by debbugs.gnu.org; 6 Nov 2021 17:41:46 +0000 Received: from localhost ([127.0.0.1]:50426 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjPhK-0002w7-Bc for submit@debbugs.gnu.org; Sat, 06 Nov 2021 13:41:46 -0400 Received: from mout.gmx.net ([212.227.15.18]:50683) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjPhE-0002vo-V1 for 51622@debbugs.gnu.org; Sat, 06 Nov 2021 13:41:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636220494; bh=f3YNlktQx/h35IiKVExBEJ/ho9akHcRcjQJZyDC8XCo=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=OQAxAxGEPSaEwvkY9MhYm+JELUTiXITblK5WrXzcQTXmGZB8sIFaQErZpJ1Dg8YnB /ZWKeqJRGEjtUQHE7R+C8bDbC8TGhQPRPuvQvyKWFA5BQSTW4BS/sIZoGswNJzH96D 62dJq6qc2R5ffPC545P+OfU7Y+OxfOUBjyUmxWHc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([79.140.112.248]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MS3mz-1nBlFm316B-00TQj5; Sat, 06 Nov 2021 18:41:33 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> Date: Sat, 06 Nov 2021 18:41:31 +0100 In-Reply-To: (Jim Porter's message of "Sat, 6 Nov 2021 09:38:59 -0700") Message-ID: <87a6ihchbo.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:Y18+XczY5W4ZcT818WeJUGcLTdpDHRWb1n9k3I+yHSi9Xkkz2uP hSHNqREQtwJ2PCb5xJOeyE6Dkb5oczMZ1rUYwaDVrDgLY3W+XaFTWPhthoTBQQx0+MPizly AWAdXuQANzepN11ZTTNAP5KaQ75OcKc271SOXpRJXKqOKoCIjURfF8UBze+MNX1p+vkvClU ZQBqAGQKSKdzOYQIRZNgw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:tk2jpxV/NGY=:VzSHL1TXmzBJsU6mpqPGVk i/riJHdBM505Km0SKGl8hpIm7NKT4azapGS48zrFdh57CNmJCfLXtpP13vs4sbUJIZ71CPdeA UQfIXTtNZLpC54uQ5cFN+jLx11I60qr2SP7gDvg0/rTjjcYXmefvt2Kwbx42c2mGb+9LrDakC Zg1XOl2U+qWDMi0lMGhneooQlBnm5uPMmZKtS5dqPb/3NWGl+knt28Howp85bh43yN9IRVcM6 vEvp3QdArGeGrp/bpqJmLf3REua+rxhcPVSzcyCB3Gsw2tF352iO68bD/vVjmvSIsoAx9l0z5 Az9Qbcil7x+1QCBKBvsxHyNi0lviiGVjcYcCySVzYwYZUB1iATBaNNXp4Z6HYyAhFemjyKrYp iy86mEdz9A1bT0wF7tTsexqaECutBXVM4zcA45Q+arq5QrckJRueo9cicDxTqGEgFYO12szqj OIiYe6WsQC5+ZaJdZfffRSvvC4yq6xCsXZcnTwig98ROJJuptCOQXAFF5ROqhmBbKOcLankDq yNuwzRPj6wxlrnwDDSry1VgXNr2qfhVGZ6p1NAh7THl5bCLRY9dLvfCtzJg8nDV8kATkdp+/b CAeNZh4P3vTrFnSDietMNCVE+9T7iqpaz0/B2lFL0/BDqfV54SP0WjOs+bni0NNiUF1lSuF7F 6hkd7P1pWJRHx9WmzYHWDvVS+hSeu0z1Clrzjig+GdgQ9gZOIuOMbOEa4ipoM9kVpPOy8c2VU RIh5sOf6ONcXgcxDla+srlm02nAWk5DGgjhv7bdp8bECGIS90dFd/FTOiiY+tHteumGWIcr5y RFUVdHBEN4bbJ+KJsxo1pX4QfmPhXVaQGcZA4xIOY4MDEcR0hSMBScsFbOJd8lQNeT9vLmW/A s6fxq62lmbGjRpvieI42JbAExLZdiSqabi3ENubu426HOv14bVjiF5Kx9iiKDjZ8WnNcPrRjP jb2I09BVMi4gVF8nAVY+UCd+Ro9bUvNRoUMQ5KIoFx7piLv4TsW2nK46yiYyGjWAZUmL7u2V4 j+nl8ssWmYN1IznaFoy7ptN4r8DTYZqDEcH+X5i7ZrF92bsq8P0eBeV0ZOi5ZHlQqgYDJhfwl t9s6UJXuyHAow8= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jim Porter writes: Hi Jim, >> I disagree. We shall keep the cached abbreviated-home-dir as *local* >> home directory. Remote home directories shall be handled in Tramp, and >> nowhere else. >> This is a general design goal which I try to follow. Mixing Tramp >> needs >> with other packages is good for trouble, and shall be avoided if possible. > > Ok, I can do that. I could even add caching for remote hosts if people > think it would help (it would probably improve performance, at least a > little bit). However, while I was looking at the implementation of > `abbreviate-file-name', I saw the following comment: > > ;; FIXME Is it even worth caching abbreviated-home-dir? > ;; Ref: https://debbugs.gnu.org/19657#20 > > After looking over the explanation in that link, I decided to see what > the performance impact would be if I removed the caching. In my > opinion, the benchmarks suggest that the caching a small enough impact > that the brittleness with using the cache outweighed the > benefits. However, I don't feel strongly about that and if the cache > should stay, that's ok with me. As said, I have no opinion about this. However, we shall care Eli's opinion, who dislikes such a change. >> The appended patch is a proof of concept w/o any systematic testing, it >> is not ready for commit. You might use it in order to get the idea, and >> to provide an applicable patch. It handles only tramp-sh.el; other Tramp >> backends might need something similar. > > Is it a general rule that all Tramp-specific stuff goes into the Tramp > files, or would it be ok to write a patch that only touches files.el, > so long as the performance for local files isn't hurt? It wouldn't be > terribly difficult to replace `abbreviated-home-dir' with something > that handles multiple hosts, similar to `grep-host-defaults-alist'. > > If I understand things correctly, `file-remote-p' can be non-nil for a > non-Tramp file if it has a file name handler that says so (e.g. if I > wrote my own package that handles some remote files in a different way > from Tramp). Maybe that's an argument in favor of changing this in > `abbreviate-file-name'. Then it works with any remote file. On the > other hand, maybe we need more protocol-specific information to do > this correctly, and I should do this inside Tramp... The general rule is, to keep all this specific handling away from files.el and companions. Emacs has the concept of file name handlers, and if there is something to be done special, a file name handler shall offer an alternative implementation. This is true for remote file names (packages tramp*.el, ange-ftp.el, url-handler.el) as well as for other special handling like automatic compression/decompression of files (jka-compr.el), GPG encryption/decryption (epa*.el), handling image files (mage-file.el), handling of tar files (tar-mode.el) etc. Not every file name handler must implement all "magic" functions, if there's no specific implementation, the original function is used. See (info "(elisp) Magic File Names") for the list of basic functions a file name handler could offer its own implementation, currently these are 75 functions. > Either way, I'll look at your patch and see how it compares; if doing > it that way ends up being better, then I'll try to implement something > like that. I see in your patch that you add to > `directory-abbrev-alist'. Is it ok to change a defcustom automatically > like this? It seems to work in my limited tests, but I thought > defcustoms were for users to set themselves. Should I come up with a > different way to do this if I want to merge it into Emacs? If we want to implement a general purpose solution, not only for remote file names in Tramp, we shall add `abbreviate-file-name' to that list. Different file name handlers could start to offer their own implementation, for the other file name handlers the current default behavior will be kept. Perhaps we shall go this way. And the first candidate would be tramp-sh.el. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 06 23:30:52 2021 Received: (at 51622) by debbugs.gnu.org; 7 Nov 2021 03:30:52 +0000 Received: from localhost ([127.0.0.1]:51419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjYtP-0004Pw-GT for submit@debbugs.gnu.org; Sat, 06 Nov 2021 23:30:52 -0400 Received: from mail-pf1-f171.google.com ([209.85.210.171]:38863) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjYtK-0004Pf-UY for 51622@debbugs.gnu.org; Sat, 06 Nov 2021 23:30:49 -0400 Received: by mail-pf1-f171.google.com with SMTP id g18so7928503pfk.5 for <51622@debbugs.gnu.org>; Sat, 06 Nov 2021 20:30:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=3qNf1th59QgRB2AGHD4/cQzMNxMn8wGtjoKP5VgVLmM=; b=Jnm/VKcGrue15I1D4eOOoqCagbBpiaslP8EOYV8jQEmbgbUoemiISdjEqxlTiP1Eye 3raMT+Dxjj8tPwzyDfgGMj3Aq+jUJLDDsWWnb8S1LM1g1m7pqgWq4t2ClxyUY75iRune qa+zqy6q8ANf3oi5DoKgZYsxa4DjFwy2I2bmgT6LqiX2CDWjOD7l58sqFVtle0QjQrLu Z4L8wVyAK9PIgU+mnb4WPqEvlpeGg8QJ0MaPwoNixtdjSCtAk64waIIbcdEbO8YAUsGe QD383VawOgMwoKj2nbmNrK0AbcYiF0W/EKK8r/YH/kKuV2/9RnCqI0vMScV4kNKCZrWd yPtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=3qNf1th59QgRB2AGHD4/cQzMNxMn8wGtjoKP5VgVLmM=; b=jrJuqcqV0EssrxrrUGmPVwFmkwV2/j+/2nx26zrYC4acOrauFibfW36oX7IQeIDwU2 aTzO8F3uIa502S1YATMC20F32IioVozf/55Q7J8fc42ET7M6y/7krXT7FOdn/ZgJ4O5I beprrNYBq3CgWWHGjODpO3hCK3deMJywQozKNxttCdHWxNaOjqCg/8Hh8XVWKWh6Om0q u/NPd/wxCxhRJVlNcC6zf5x5WMLuF/KXiBIsCh9zM/uFePER93Rrr/mmF9y+WnSIDVa/ WHtbi174LlMWEFYvhoaf0xb/FhDaMXJF2yaIh1iSJYGL4hJlT4m6JMkSIAAxOEfghpo4 9K1Q== X-Gm-Message-State: AOAM5338/PIUn5DtZBEBOAlU97+X5qRQlOyGMuYjRquAOLFB4i0lxqhl SuUKH4mbwtGTRe7dV0tI2zg00NNviY8= X-Google-Smtp-Source: ABdhPJyqogBFEyfyvqOR++CIORJBQu08OcKq7E3JcZA/OE/ArU3LBKgPjGNsOjM2pm4716ixKJtixQ== X-Received: by 2002:a63:7303:: with SMTP id o3mr52364379pgc.108.1636255840902; Sat, 06 Nov 2021 20:30:40 -0700 (PDT) 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 i15sm1757781pfu.151.2021.11.06.20.30.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 06 Nov 2021 20:30:40 -0700 (PDT) Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> From: Jim Porter Message-ID: Date: Sat, 6 Nov 2021 20:30:39 -0700 MIME-Version: 1.0 In-Reply-To: <87a6ihchbo.fsf@gmx.de> Content-Type: multipart/mixed; boundary="------------0D91A40490F7015C7093F245" Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/6/2021 10:41 AM, Michael Albinus wrote: > The general rule is, to keep all this specific handling away from > files.el and companions. Emacs has the concept of file name handlers, > and if there is something to be done special, a file name handler shall > offer an alternative implementation. Thanks for the pointers. I've attached a new version of the patch, along with updated benchmark results. When abbreviating Tramp files, not only is this version faster than my previous patch, it's also 2-4x faster(!) than Emacs trunk. I included a couple of related patches in this series, although I can split them out if it would be easier. The first patch just reorders a couple of Tramp tests that got added in the wrong order previously (I only did this because I wanted to add my new test to the end, and figured it would be simpler to fix the order first). The second patch is the main patch and uses a file name handler as you suggested. Hopefully I got everything right here; I'm not very familiar with these parts of Tramp. The test I added passes for me, though a bunch of the other Tramp tests fail for me (with or without my patches). Finally, since I already had them lying around, I added a few tests for `abbreviate-file-name' for local files. They're pretty simple, but should help catch any regressions in the future. --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="0001-test-lisp-net-tramp-tests.el-Rearrange-tests-to-be-i.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-test-lisp-net-tramp-tests.el-Rearrange-tests-to-be-i.pa"; filename*1="tch" RnJvbSAzMDM4ZjE4MDJlNTNhZmZlOTZjMjQzYTBkYTExYTlkYzQ3ZThjMzRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAxODowMToxMSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSA7ICogdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbDogUmVhcnJhbmdlIHRl c3RzIHRvIGJlCiBpbiBvcmRlci4KCi0tLQogdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5l bCB8IDc0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgYi90ZXN0L2xpc3AvbmV0L3RyYW1wLXRl c3RzLmVsCmluZGV4IDczN2UyMjA5Y2MuLjNkNmNlOTYzZWUgMTAwNjQ0Ci0tLSBhL3Rlc3Qv bGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0 cy5lbApAQCAtNjk5OSw4ICs2OTk5LDQwIEBAIHRyYW1wLXRlc3Q0NC1hc3luY2hyb25vdXMt cmVxdWVzdHMKIDs7ICh0cmFtcC0tdGVzdC0tZGVmdGVzdC1kaXJlY3QtYXN5bmMtcHJvY2Vz cyB0cmFtcC10ZXN0NDQtYXN5bmNocm9ub3VzLXJlcXVlc3RzCiA7OyAgICJDaGVjayBwYXJh bGxlbCBkaXJlY3QgYXN5bmNocm9ub3VzIHJlcXVlc3RzLiIgJ3Vuc3RhYmxlKQogCisoZXJ0 LWRlZnRlc3QgdHJhbXAtdGVzdDQ1LWRpcmVkLWNvbXByZXNzLWZpbGUgKCkKKyAgIkNoZWNr IHRoYXQgVHJhbXAgKHVuKWNvbXByZXNzZXMgbm9ybWFsIGZpbGVzLiIKKyAgKHNraXAtdW5s ZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKKyAgKHNraXAtdW5sZXNzICh0cmFtcC0tdGVz dC1zaC1wKSkKKyAgKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IHRyYW1wLXRlc3QtdGVtcG9y YXJ5LWZpbGUtZGlyZWN0b3J5KQorICAgICAgICAodG1wLW5hbWUgKHRyYW1wLS10ZXN0LW1h a2UtdGVtcC1uYW1lKSkpCisgICAgKHdyaXRlLXJlZ2lvbiAiZm9vIiBuaWwgdG1wLW5hbWUp CisgICAgKGRpcmVkIGRlZmF1bHQtZGlyZWN0b3J5KQorICAgIChkaXJlZC1yZXZlcnQpCisg ICAgKGRpcmVkLWdvdG8tZmlsZSB0bXAtbmFtZSkKKyAgICAoc2hvdWxkLW5vdCAoZGlyZWQt Y29tcHJlc3MpKQorICAgIChzaG91bGQgKHN0cmluZz0gKGNvbmNhdCB0bXAtbmFtZSAiLmd6 IikgKGRpcmVkLWdldC1maWxlbmFtZSkpKQorICAgIChzaG91bGQtbm90IChkaXJlZC1jb21w cmVzcykpCisgICAgKHNob3VsZCAoc3RyaW5nPSB0bXAtbmFtZSAoZGlyZWQtZ2V0LWZpbGVu YW1lKSkpCisgICAgKGRlbGV0ZS1maWxlIHRtcC1uYW1lKSkpCisKKyhlcnQtZGVmdGVzdCB0 cmFtcC10ZXN0NDUtZGlyZWQtY29tcHJlc3MtZGlyICgpCisgICJDaGVjayB0aGF0IFRyYW1w ICh1biljb21wcmVzc2VzIGRpcmVjdG9yaWVzLiIKKyAgKHNraXAtdW5sZXNzICh0cmFtcC0t dGVzdC1lbmFibGVkKSkKKyAgKHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1zaC1wKSkKKyAg KGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IHRyYW1wLXRlc3QtdGVtcG9yYXJ5LWZpbGUtZGly ZWN0b3J5KQorICAgICAgICAodG1wLW5hbWUgKHRyYW1wLS10ZXN0LW1ha2UtdGVtcC1uYW1l KSkpCisgICAgKG1ha2UtZGlyZWN0b3J5IHRtcC1uYW1lKQorICAgIChkaXJlZCBkZWZhdWx0 LWRpcmVjdG9yeSkKKyAgICAoZGlyZWQtcmV2ZXJ0KQorICAgIChkaXJlZC1nb3RvLWZpbGUg dG1wLW5hbWUpCisgICAgKHNob3VsZC1ub3QgKGRpcmVkLWNvbXByZXNzKSkKKyAgICAoc2hv dWxkIChzdHJpbmc9IChjb25jYXQgdG1wLW5hbWUgIi50YXIuZ3oiKSAoZGlyZWQtZ2V0LWZp bGVuYW1lKSkpCisgICAgKHNob3VsZC1ub3QgKGRpcmVkLWNvbXByZXNzKSkKKyAgICAoc2hv dWxkIChzdHJpbmc9IHRtcC1uYW1lIChkaXJlZC1nZXQtZmlsZW5hbWUpKSkKKyAgICAoZGVs ZXRlLWRpcmVjdG9yeSB0bXAtbmFtZSkpKQorCiA7OyBUaGlzIHRlc3QgaXMgaW5zcGlyZWQg YnkgQnVnIzI5MTYzLgotKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0NS1hdXRvLWxvYWQgKCkK KyhlcnQtZGVmdGVzdCB0cmFtcC10ZXN0NDYtYXV0by1sb2FkICgpCiAgICJDaGVjayB0aGF0 IFRyYW1wIGF1dG9sb2FkcyBwcm9wZXJseS4iCiAgIDs7IElmIHdlIHVzZSBhbm90aGVyIHN5 bnRheCBidXQgYGRlZmF1bHQnLCBUcmFtcCBpcyBhbHJlYWR5IGxvYWRlZAogICA7OyBkdWUg dG8gdGhlIGB0cmFtcC1jaGFuZ2Utc3ludGF4JyBjYWxsLgpAQCAtNzAyNSw3ICs3MDU3LDcg QEAgdHJhbXAtdGVzdDQ1LWF1dG8tbG9hZAogCShtYXBjb25jYXQgIydzaGVsbC1xdW90ZS1h cmd1bWVudCBsb2FkLXBhdGggIiAtTCAiKQogCShzaGVsbC1xdW90ZS1hcmd1bWVudCBjb2Rl KSkpKSkpKQogCi0oZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ1LWRlbGF5LWxvYWQgKCkKKyhl cnQtZGVmdGVzdCB0cmFtcC10ZXN0NDYtZGVsYXktbG9hZCAoKQogICAiQ2hlY2sgdGhhdCBU cmFtcCBpcyBsb2FkZWQgbGF6aWx5LCBvbmx5IHdoZW4gbmVlZGVkLiIKICAgOzsgVGhlIGF1 dG9sb2FkZWQgVHJhbXAgb2JqZWN0cyBhcmUgZGlmZmVyZW50IHNpbmNlIEVtYWNzIDI2LjEu ICBXZQogICA7OyBjYW5ub3QgdGVzdCBvbGRlciBFbWFjc2VuLCB0aGVyZWZvcmUuCkBAIC03 MDU4LDcgKzcwOTAsNyBAQCB0cmFtcC10ZXN0NDUtZGVsYXktbG9hZAogCSAgKG1hcGNvbmNh dCAjJ3NoZWxsLXF1b3RlLWFyZ3VtZW50IGxvYWQtcGF0aCAiIC1MICIpCiAJICAoc2hlbGwt cXVvdGUtYXJndW1lbnQgKGZvcm1hdCBjb2RlIHRtKSkpKSkpKSkpCiAKLShlcnQtZGVmdGVz dCB0cmFtcC10ZXN0NDUtcmVjdXJzaXZlLWxvYWQgKCkKKyhlcnQtZGVmdGVzdCB0cmFtcC10 ZXN0NDYtcmVjdXJzaXZlLWxvYWQgKCkKICAgIkNoZWNrIHRoYXQgVHJhbXAgZG9lcyBub3Qg ZmFpbCBkdWUgdG8gcmVjdXJzaXZlIGxvYWQuIgogICAoc2tpcC11bmxlc3MgKHRyYW1wLS10 ZXN0LWVuYWJsZWQpKQogCkBAIC03MDgyLDcgKzcxMTQsNyBAQCB0cmFtcC10ZXN0NDUtcmVj dXJzaXZlLWxvYWQKIAkgIChtYXBjb25jYXQgIydzaGVsbC1xdW90ZS1hcmd1bWVudCBsb2Fk LXBhdGggIiAtTCAiKQogCSAgKHNoZWxsLXF1b3RlLWFyZ3VtZW50IGNvZGUpKSkpKSkpKQog Ci0oZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ1LXJlbW90ZS1sb2FkLXBhdGggKCkKKyhlcnQt ZGVmdGVzdCB0cmFtcC10ZXN0NDYtcmVtb3RlLWxvYWQtcGF0aCAoKQogICAiQ2hlY2sgdGhh dCBUcmFtcCBhdXRvbG9hZHMgaXRzIHBhY2thZ2VzIHdpdGggcmVtb3RlIGBsb2FkLXBhdGgn LiIKICAgOzsgVGhlIGF1dG9sb2FkZWQgVHJhbXAgb2JqZWN0cyBhcmUgZGlmZmVyZW50IHNp bmNlIEVtYWNzIDI2LjEuICBXZQogICA7OyBjYW5ub3QgdGVzdCBvbGRlciBFbWFjc2VuLCB0 aGVyZWZvcmUuCkBAIC03MTExLDcgKzcxNDMsNyBAQCB0cmFtcC10ZXN0NDUtcmVtb3RlLWxv YWQtcGF0aAogCShtYXBjb25jYXQgIydzaGVsbC1xdW90ZS1hcmd1bWVudCBsb2FkLXBhdGgg IiAtTCAiKQogCShzaGVsbC1xdW90ZS1hcmd1bWVudCBjb2RlKSkpKSkpKQogCi0oZXJ0LWRl ZnRlc3QgdHJhbXAtdGVzdDQ2LXVubG9hZCAoKQorKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0 Ny11bmxvYWQgKCkKICAgIkNoZWNrIHRoYXQgVHJhbXAgYW5kIGl0cyBzdWJwYWNrYWdlcyB1 bmxvYWQgY29tcGxldGVseS4KIFNpbmNlIGl0IHVubG9hZHMgVHJhbXAsIGl0IHNoYWxsIGJl IHRoZSBsYXN0IHRlc3QgdG8gcnVuLiIKICAgOnRhZ3MgJyg6ZXhwZW5zaXZlLXRlc3QpCkBA IC03MTY5LDM4ICs3MjAxLDYgQEAgdHJhbXAtdGVzdDQ2LXVubG9hZAogCSAgKGlnbm9yZS1l cnJvcnMgKGFsbC1jb21wbGV0aW9ucyAidHJhbXAiIChzeW1ib2wtdmFsdWUgeCkpKQogCSAg KGVydC1mYWlsIChmb3JtYXQgIkhvb2sgYCVzJyBzdGlsbCBjb250YWlucyBUcmFtcCBmdW5j dGlvbiIgeCkpKSkpKQogCi0oZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ0LWRpcmVkLWNvbXBy ZXNzLWZpbGUgKCkKLSAgIkNoZWNrIHRoYXQgVHJhbXAgKHVuKWNvbXByZXNzZXMgbm9ybWFs IGZpbGVzLiIKLSAgKHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKLSAgKHNr aXAtdW5sZXNzICh0cmFtcC0tdGVzdC1zaC1wKSkKLSAgKGxldCAoKGRlZmF1bHQtZGlyZWN0 b3J5IHRyYW1wLXRlc3QtdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KQotICAgICAgICAodG1w LW5hbWUgKHRyYW1wLS10ZXN0LW1ha2UtdGVtcC1uYW1lKSkpCi0gICAgKHdyaXRlLXJlZ2lv biAiZm9vIiBuaWwgdG1wLW5hbWUpCi0gICAgKGRpcmVkIGRlZmF1bHQtZGlyZWN0b3J5KQot ICAgIChkaXJlZC1yZXZlcnQpCi0gICAgKGRpcmVkLWdvdG8tZmlsZSB0bXAtbmFtZSkKLSAg ICAoc2hvdWxkLW5vdCAoZGlyZWQtY29tcHJlc3MpKQotICAgIChzaG91bGQgKHN0cmluZz0g KGNvbmNhdCB0bXAtbmFtZSAiLmd6IikgKGRpcmVkLWdldC1maWxlbmFtZSkpKQotICAgIChz aG91bGQtbm90IChkaXJlZC1jb21wcmVzcykpCi0gICAgKHNob3VsZCAoc3RyaW5nPSB0bXAt bmFtZSAoZGlyZWQtZ2V0LWZpbGVuYW1lKSkpCi0gICAgKGRlbGV0ZS1maWxlIHRtcC1uYW1l KSkpCi0KLShlcnQtZGVmdGVzdCB0cmFtcC10ZXN0NDQtZGlyZWQtY29tcHJlc3MtZGlyICgp Ci0gICJDaGVjayB0aGF0IFRyYW1wICh1biljb21wcmVzc2VzIGRpcmVjdG9yaWVzLiIKLSAg KHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKLSAgKHNraXAtdW5sZXNzICh0 cmFtcC0tdGVzdC1zaC1wKSkKLSAgKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IHRyYW1wLXRl c3QtdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KQotICAgICAgICAodG1wLW5hbWUgKHRyYW1w LS10ZXN0LW1ha2UtdGVtcC1uYW1lKSkpCi0gICAgKG1ha2UtZGlyZWN0b3J5IHRtcC1uYW1l KQotICAgIChkaXJlZCBkZWZhdWx0LWRpcmVjdG9yeSkKLSAgICAoZGlyZWQtcmV2ZXJ0KQot ICAgIChkaXJlZC1nb3RvLWZpbGUgdG1wLW5hbWUpCi0gICAgKHNob3VsZC1ub3QgKGRpcmVk LWNvbXByZXNzKSkKLSAgICAoc2hvdWxkIChzdHJpbmc9IChjb25jYXQgdG1wLW5hbWUgIi50 YXIuZ3oiKSAoZGlyZWQtZ2V0LWZpbGVuYW1lKSkpCi0gICAgKHNob3VsZC1ub3QgKGRpcmVk LWNvbXByZXNzKSkKLSAgICAoc2hvdWxkIChzdHJpbmc9IHRtcC1uYW1lIChkaXJlZC1nZXQt ZmlsZW5hbWUpKSkKLSAgICAoZGVsZXRlLWRpcmVjdG9yeSB0bXAtbmFtZSkpKQotCiAoZGVm dW4gdHJhbXAtdGVzdC1hbGwgKCZvcHRpb25hbCBpbnRlcmFjdGl2ZSkKICAgIlJ1biBhbGwg dGVzdHMgZm9yIFxcW3RyYW1wXS4KIElmIElOVEVSQUNUSVZFIGlzIG5vbi1uaWwsIHRoZSB0 ZXN0cyBhcmUgcnVuIGludGVyYWN0aXZlbHkuIgotLSAKMi4yNS4xCgo= --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="0002-Support-abbreviating-home-directory-of-Tramp-filenam.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Support-abbreviating-home-directory-of-Tramp-filenam.pa"; filename*1="tch" RnJvbSAxNzIyNDMyZjUwMmM2Mjg2NmVlYjJmMWI2OWY5NWJjM2ZlMDE2Yzc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAxNzoxOToyOSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMi8zXSBTdXBwb3J0IGFiYnJldmlhdGluZyBob21lIGRpcmVjdG9yeSBvZiBUcmFtcCBm aWxlbmFtZXMKCiogbGlzcC9maWxlcy5lbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUpOiBDaGVj ayBmb3IgZmlsZSBuYW1lIGhhbmRsZXIuCihmaWxlLW5hbWUtbm9uLXNwZWNpYWwpOgoqIGxp c3AvbmV0L3RyYW1wLmVsICh0cmFtcC1maWxlLW5hbWUtZm9yLW9wZXJhdGlvbik6CiogbGlz cC9uZXQvdHJhbXAtc2guZWwgKHRyYW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0KToK QWRkICdhYmJyZXZpYXRlLWZpbGUtbmFtZScuCih0cmFtcC1zaC1oYW5kbGUtYWJicmV2aWF0 ZS1maWxlLW5hbWUpOiBOZXcgZnVuY3Rpb24uCiogdGVzdC9saXNwL25ldC90cmFtcC10ZXN0 cy5lbCAodHJhbXAtdGVzdDQ2LWFiYnJldmlhdGUtZmlsZS1uYW1lKToKTmV3IHRlc3QuCiog ZG9jL2xpc3ByZWYvZmlsZXMudGV4aSAoTWFnaWMgRmlsZSBOYW1lcyk6IE1lbnRpb24KJ2Fi YnJldmlhdGUtZmlsZS1uYW1lJyBpbiB0aGUgbGlzdCBvZiBtYWdpYyBmaWxlIG5hbWUgaGFu ZGxlcnMuCiogZXRjL05FV1M6IEFubm91bmNlIHRoZSBjaGFuZ2UuCi0tLQogZG9jL2xpc3By ZWYvZmlsZXMudGV4aSAgICAgICB8ICAgNyArLQogZXRjL05FV1MgICAgICAgICAgICAgICAg ICAgICB8ICAgNyArKwogbGlzcC9maWxlcy5lbCAgICAgICAgICAgICAgICB8IDEzOSArKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbGlzcC9uZXQvdHJhbXAtc2guZWwg ICAgICAgICB8ICA0MCArKysrKysrKystCiBsaXNwL25ldC90cmFtcC5lbCAgICAgICAgICAg IHwgICAyICsKIHRlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgfCAgMzcgKysrKysrKyst LQogNiBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZmlsZXMudGV4aSBiL2RvYy9saXNwcmVmL2Zp bGVzLnRleGkKaW5kZXggZGRjMWQwNWMxYy4uOWM1MDM0MWI0OSAxMDA2NDQKLS0tIGEvZG9j L2xpc3ByZWYvZmlsZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9maWxlcy50ZXhpCkBAIC0z Mjk1LDggKzMyOTUsOCBAQCBNYWdpYyBGaWxlIE5hbWVzCiAKIEBpZm5vdHRleAogQG5vaW5k ZW50Ci1AY29kZXthY2Nlc3MtZmlsZX0sIEBjb2Rle2FkZC1uYW1lLXRvLWZpbGV9LAotQGNv ZGV7Ynl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZX0sQCoKK0Bjb2Rle2FiYnJldmlhdGUt ZmlsZS1uYW1lfSwgQGNvZGV7YWNjZXNzLWZpbGV9LAorQGNvZGV7YWRkLW5hbWUtdG8tZmls ZX0sIEBjb2Rle2J5dGUtY29tcGlsZXItYmFzZS1maWxlLW5hbWV9LEAqCiBAY29kZXtjb3B5 LWRpcmVjdG9yeX0sIEBjb2Rle2NvcHktZmlsZX0sCiBAY29kZXtkZWxldGUtZGlyZWN0b3J5 fSwgQGNvZGV7ZGVsZXRlLWZpbGV9LAogQGNvZGV7ZGlmZi1sYXRlc3QtYmFja3VwLWZpbGV9 LApAQCAtMzM1NSw3ICszMzU1LDggQEAgTWFnaWMgRmlsZSBOYW1lcwogQGlmdGV4CiBAbm9p bmRlbnQKIEBmbHVzaGxlZnQKLUBjb2Rle2FjY2Vzcy1maWxlfSwgQGNvZGV7YWRkLW5hbWUt dG8tZmlsZX0sCitAY29kZXthYmJyZXZpYXRlLWZpbGUtbmFtZX0sIEBjb2Rle2FjY2Vzcy1m aWxlfSwKK0Bjb2Rle2FkZC1uYW1lLXRvLWZpbGV9LAogQGNvZGV7Ynl0ZS1jb21AZGlzY3Jl dGlvbmFyeXt9e317fXBpbGVyLWJhc2UtZmlsZS1uYW1lfSwKIEBjb2Rle2NvcHktZGlyZWN0 b3J5fSwgQGNvZGV7Y29weS1maWxlfSwKIEBjb2Rle2RlbGV0ZS1kaXJlY3Rvcnl9LCBAY29k ZXtkZWxldGUtZmlsZX0sCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4 IDc4Yzg0ODEyNmEuLjA3ODYxY2VlZTUgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0 Yy9ORVdTCkBAIC0zNjEsNiArMzYxLDEzIEBAIHRoZSBidWZmZXIgd2lsbCB0YWtlIHlvdSB0 byB0aGF0IGRpcmVjdG9yeS4KIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBl eHRyYWN0IHRoZSBmaWVsZCBkYXRhIGZyb20KICdleGlmLXBhcnNlLWZpbGUnIGFuZCAnZXhp Zi1wYXJzZS1idWZmZXInLgogCisqKiBUcmFtcAorCisrKysKKyoqKiBUcmFtcCBzdXBwb3J0 cyBhYmJyZXZpYXRpbmcgcmVtb3RlIGhvbWUgZGlyZWN0b3JpZXMgbm93LgorV2hlbiBjYWxs aW5nICdhYmJyZXZpYXRlLWZpbGUtbmFtZScgb24gYSBUcmFtcCBmaWxlbmFtZSwgdGhlIHJl c3VsdAord2lsbCBhYmJyZXZpYXRlIHRoZSBob21lIGRpcmVjdG9yeSB0byAifiIuCisKIAwK ICogTmV3IE1vZGVzIGFuZCBQYWNrYWdlcyBpbiBFbWFjcyAyOS4xCiAKZGlmZiAtLWdpdCBh L2xpc3AvZmlsZXMuZWwgYi9saXNwL2ZpbGVzLmVsCmluZGV4IDNhZjk3MzAzMjYuLmJiODhi M2M1MjQgMTAwNjQ0Ci0tLSBhL2xpc3AvZmlsZXMuZWwKKysrIGIvbGlzcC9maWxlcy5lbApA QCAtMjAxMyw3MyArMjAxMyw3NSBAQCBhYmJyZXZpYXRlLWZpbGUtbmFtZQogc3RhcnRlZCBF bWFjcywgc2V0IGBhYmJyZXZpYXRlZC1ob21lLWRpcicgdG8gbmlsIHNvIGl0IHdpbGwgYmUg cmVjYWxjdWxhdGVkKS4iCiAgIDs7IEdldCByaWQgb2YgdGhlIHByZWZpeGVzIGFkZGVkIGJ5 IHRoZSBhdXRvbW91bnRlci4KICAgKHNhdmUtbWF0Y2gtZGF0YSAgICAgICAgICAgICAgICAg ICAgICA7RklYTUU6IFdoeT8KLSAgICAoaWYgKGFuZCBhdXRvbW91bnQtZGlyLXByZWZpeAot CSAgICAgKHN0cmluZy1tYXRjaCBhdXRvbW91bnQtZGlyLXByZWZpeCBmaWxlbmFtZSkKLQkg ICAgIChmaWxlLWV4aXN0cy1wIChmaWxlLW5hbWUtZGlyZWN0b3J5Ci0JCQkgICAgIChzdWJz dHJpbmcgZmlsZW5hbWUgKDEtIChtYXRjaC1lbmQgMCkpKSkpKQotCShzZXRxIGZpbGVuYW1l IChzdWJzdHJpbmcgZmlsZW5hbWUgKDEtIChtYXRjaC1lbmQgMCkpKSkpCi0gICAgOzsgQXZv aWQgdHJlYXRpbmcgL2hvbWUvZm9vIGFzIC9ob21lL0ZvbyBkdXJpbmcgYH4nIHN1YnN0aXR1 dGlvbi4KLSAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2UtaW5z ZW5zaXRpdmUtcCBmaWxlbmFtZSkpKQotICAgICAgOzsgSWYgYW55IGVsdCBvZiBkaXJlY3Rv cnktYWJicmV2LWFsaXN0IG1hdGNoZXMgdGhpcyBuYW1lLAotICAgICAgOzsgYWJicmV2aWF0 ZSBhY2NvcmRpbmdseS4KLSAgICAgIChkb2xpc3QgKGRpci1hYmJyZXYgZGlyZWN0b3J5LWFi YnJldi1hbGlzdCkKLQkoaWYgKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYpIGZpbGVu YW1lKQotCSAgICAoc2V0cSBmaWxlbmFtZQotCQkgIChjb25jYXQgKGNkciBkaXItYWJicmV2 KQotCQkJICAoc3Vic3RyaW5nIGZpbGVuYW1lIChtYXRjaC1lbmQgMCkpKSkpKQotICAgICAg OzsgQ29tcHV0ZSBhbmQgc2F2ZSB0aGUgYWJicmV2aWF0ZWQgaG9tZWRpciBuYW1lLgotICAg ICAgOzsgV2UgZGVmZXIgY29tcHV0aW5nIHRoaXMgdW50aWwgdGhlIGZpcnN0IHRpbWUgaXQn cyBuZWVkZWQsIHRvCi0gICAgICA7OyBnaXZlIHRpbWUgZm9yIGRpcmVjdG9yeS1hYmJyZXYt YWxpc3QgdG8gYmUgc2V0IHByb3Blcmx5LgotICAgICAgOzsgV2UgaW5jbHVkZSBhIHNsYXNo IGF0IHRoZSBlbmQsIHRvIGF2b2lkIHNwdXJpb3VzIG1hdGNoZXMKLSAgICAgIDs7IHN1Y2gg YXMgYC91c3IvZm9vYmFyJyB3aGVuIHRoZSBob21lIGRpciBpcyBgL3Vzci9mb28nLgotICAg ICAgKHVubGVzcyBhYmJyZXZpYXRlZC1ob21lLWRpcgotICAgICAgICAocHV0ICdhYmJyZXZp YXRlZC1ob21lLWRpciAnaG9tZSAoZXhwYW5kLWZpbGUtbmFtZSAifiIpKQotICAgICAgICAo c2V0cSBhYmJyZXZpYXRlZC1ob21lLWRpcgotICAgICAgICAgICAgICAobGV0KiAoKGFiYnJl dmlhdGVkLWhvbWUtZGlyICJcXGBcXCcuIikgO0ltcG9zc2libGUgcmVnZXhwLgotICAgICAg ICAgICAgICAgICAgICAgKHJlZ2V4cAotICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQg IlxcYCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWJicmV2aWF0ZS1maWxlLW5hbWUKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldCAnYWJicmV2aWF0ZWQtaG9tZS1k aXIgJ2hvbWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXCgvXFx8XFwn XFwpIikpKQotICAgICAgICAgICAgICAgIDs7IERlcGVuZGluZyBvbiB3aGV0aGVyIGRlZmF1 bHQtZGlyZWN0b3J5IGRvZXMgb3IKLSAgICAgICAgICAgICAgICA7OyBkb2Vzbid0IGluY2x1 ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIHRoZSB2YWx1ZQotICAgICAgICAgICAgICAgIDs7 IG9mIGFiYnJldmlhdGVkLWhvbWUtZGlyIGNvdWxkIGJlIG11bHRpYnl0ZSBvcgotICAgICAg ICAgICAgICAgIDs7IHVuaWJ5dGUuICBJbiB0aGUgbGF0dGVyIGNhc2UsIHdlIG5lZWQgdG8g ZGVjb2RlCi0gICAgICAgICAgICAgICAgOzsgaXQuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgZm9yIHRoZQotICAgICAgICAgICAgICAgIDs7IGZpcnN0IHRpbWUgKGZy b20gc3RhcnR1cC5lbCkgd2hlbgotICAgICAgICAgICAgICAgIDs7IGxvY2FsZS1jb2Rpbmct c3lzdGVtIGlzIGFscmVhZHkgc2V0IHVwLgotICAgICAgICAgICAgICAgIChpZiAobXVsdGli eXRlLXN0cmluZy1wIHJlZ2V4cCkKLSAgICAgICAgICAgICAgICAgICAgcmVnZXhwCi0gICAg ICAgICAgICAgICAgICAoZGVjb2RlLWNvZGluZy1zdHJpbmcgcmVnZXhwCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2lu ZG93cy1udCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3V0Zi04Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh bGUtY29kaW5nLXN5c3RlbSkpKSkpKQotCi0gICAgICA7OyBJZiBGSUxFTkFNRSBzdGFydHMg d2l0aCB0aGUgYWJicmV2aWF0ZWQgaG9tZWRpciwKLSAgICAgIDs7IGFuZCB+IGhhc24ndCBj aGFuZ2VkIHNpbmNlIGFiYnJldmlhdGVkLWhvbWUtZGlyIHdhcyBzZXQsCi0gICAgICA7OyBt YWtlIGl0IHN0YXJ0IHdpdGggYH4nIGluc3RlYWQuCi0gICAgICA7OyBJZiB+IGhhcyBjaGFu Z2VkLCB3ZSBpZ25vcmUgYWJicmV2aWF0ZWQtaG9tZS1kaXIgcmF0aGVyIHRoYW4KLSAgICAg IDs7IGludmFsaWRhdGluZyBpdCwgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIGNoYW5nZSBp biBIT01FCi0gICAgICA7OyBpcyBsaWtlbHkgdGVtcG9yYXJ5IChlZyBmb3IgdGVzdGluZyku Ci0gICAgICA7OyBGSVhNRSBJcyBpdCBldmVuIHdvcnRoIGNhY2hpbmcgYWJicmV2aWF0ZWQt aG9tZS1kaXI/Ci0gICAgICA7OyBSZWY6IGh0dHBzOi8vZGViYnVncy5nbnUub3JnLzE5NjU3 IzIwCi0gICAgICAobGV0IChtYjEpCi0gICAgICAgIChpZiAoYW5kIChzdHJpbmctbWF0Y2gg YWJicmV2aWF0ZWQtaG9tZS1kaXIgZmlsZW5hbWUpCi0gICAgICAgICAgICAgICAgIChzZXRx IG1iMSAobWF0Y2gtYmVnaW5uaW5nIDEpKQotCSAgICAgICAgIDs7IElmIHRoZSBob21lIGRp ciBpcyBqdXN0IC8sIGRvbid0IGNoYW5nZSBpdC4KLQkgICAgICAgICAobm90IChhbmQgKD0g KG1hdGNoLWVuZCAwKSAxKQotCQkJICAgKD0gKGFyZWYgZmlsZW5hbWUgMCkgPy8pKSkKLQkg ICAgICAgICA7OyBNUy1ET1Mgcm9vdCBkaXJlY3RvcmllcyBjYW4gY29tZSB3aXRoIGEgZHJp dmUgbGV0dGVyOwotCSAgICAgICAgIDs7IE5vdmVsbCBOZXR3YXJlIGFsbG93cyBkcml2ZSBs ZXR0ZXJzIGJleW9uZCBgWjonLgotCSAgICAgICAgIChub3QgKGFuZCAobWVtcSBzeXN0ZW0t dHlwZSAnKG1zLWRvcyB3aW5kb3dzLW50IGN5Z3dpbikpCi0JCQkgICAoc3RyaW5nLW1hdGNo ICJcXGBbYS16QS1gXTovXFwnIiBmaWxlbmFtZSkpKQotICAgICAgICAgICAgICAgICAoZXF1 YWwgKGdldCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpCi0gICAgICAgICAgICAgICAg ICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZSAifiIpKSkKLQkgICAgKHNldHEgZmlsZW5hbWUK LQkJICAoY29uY2F0ICJ+IgotCQkJICAoc3Vic3RyaW5nIGZpbGVuYW1lIG1iMSkpKSkKLSAg ICAgICAgZmlsZW5hbWUpKSkpCisgICAgKGlmLWxldCogKChoYW5kbGVyIChmaW5kLWZpbGUt bmFtZS1oYW5kbGVyIGZpbGVuYW1lICdhYmJyZXZpYXRlLWZpbGUtbmFtZSkpKQorICAgICAg ICAoZnVuY2FsbCBoYW5kbGVyICdhYmJyZXZpYXRlLWZpbGUtbmFtZSBmaWxlbmFtZSkKKyAg ICAgIChpZiAoYW5kIGF1dG9tb3VudC1kaXItcHJlZml4CisgICAgICAgICAgICAgICAoc3Ry aW5nLW1hdGNoIGF1dG9tb3VudC1kaXItcHJlZml4IGZpbGVuYW1lKQorICAgICAgICAgICAg ICAgKGZpbGUtZXhpc3RzLXAgKGZpbGUtbmFtZS1kaXJlY3RvcnkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGVuYW1lICgxLSAobWF0Y2gtZW5kIDAp KSkpKSkKKyAgICAgICAgICAoc2V0cSBmaWxlbmFtZSAoc3Vic3RyaW5nIGZpbGVuYW1lICgx LSAobWF0Y2gtZW5kIDApKSkpKQorICAgICAgOzsgQXZvaWQgdHJlYXRpbmcgL2hvbWUvZm9v IGFzIC9ob21lL0ZvbyBkdXJpbmcgYH4nIHN1YnN0aXR1dGlvbi4KKyAgICAgIChsZXQgKChj YXNlLWZvbGQtc2VhcmNoIChmaWxlLW5hbWUtY2FzZS1pbnNlbnNpdGl2ZS1wIGZpbGVuYW1l KSkpCisgICAgICAgIDs7IElmIGFueSBlbHQgb2YgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCBt YXRjaGVzIHRoaXMgbmFtZSwKKyAgICAgICAgOzsgYWJicmV2aWF0ZSBhY2NvcmRpbmdseS4K KyAgICAgICAgKGRvbGlzdCAoZGlyLWFiYnJldiBkaXJlY3RvcnktYWJicmV2LWFsaXN0KQor ICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoIChjYXIgZGlyLWFiYnJldikgZmlsZW5hbWUp CisgICAgICAgICAgICAgIChzZXRxIGZpbGVuYW1lCisgICAgICAgICAgICAgICAgICAgIChj b25jYXQgKGNkciBkaXItYWJicmV2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dWJzdHJpbmcgZmlsZW5hbWUgKG1hdGNoLWVuZCAwKSkpKSkpCisgICAgICAgIDs7IENvbXB1 dGUgYW5kIHNhdmUgdGhlIGFiYnJldmlhdGVkIGhvbWVkaXIgbmFtZS4KKyAgICAgICAgOzsg V2UgZGVmZXIgY29tcHV0aW5nIHRoaXMgdW50aWwgdGhlIGZpcnN0IHRpbWUgaXQncyBuZWVk ZWQsIHRvCisgICAgICAgIDs7IGdpdmUgdGltZSBmb3IgZGlyZWN0b3J5LWFiYnJldi1hbGlz dCB0byBiZSBzZXQgcHJvcGVybHkuCisgICAgICAgIDs7IFdlIGluY2x1ZGUgYSBzbGFzaCBh dCB0aGUgZW5kLCB0byBhdm9pZCBzcHVyaW91cyBtYXRjaGVzCisgICAgICAgIDs7IHN1Y2gg YXMgYC91c3IvZm9vYmFyJyB3aGVuIHRoZSBob21lIGRpciBpcyBgL3Vzci9mb28nLgorICAg ICAgICAodW5sZXNzIGFiYnJldmlhdGVkLWhvbWUtZGlyCisgICAgICAgICAgKHB1dCAnYWJi cmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUgKGV4cGFuZC1maWxlLW5hbWUgIn4iKSkKKyAgICAg ICAgICAoc2V0cSBhYmJyZXZpYXRlZC1ob21lLWRpcgorICAgICAgICAgICAgICAgIChsZXQq ICgoYWJicmV2aWF0ZWQtaG9tZS1kaXIgIlxcYFxcJy4iKSA7SW1wb3NzaWJsZSByZWdleHAu CisgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAKKyAgICAgICAgICAgICAgICAgICAg ICAgIChjb25jYXQgIlxcYCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJl Z2V4cC1xdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFiYnJldmlh dGUtZmlsZS1uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldCAn YWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlxcKC9cXHxcXCdcXCkiKSkpCisgICAgICAgICAgICAgICAgICA7OyBEZXBl bmRpbmcgb24gd2hldGhlciBkZWZhdWx0LWRpcmVjdG9yeSBkb2VzIG9yCisgICAgICAgICAg ICAgICAgICA7OyBkb2Vzbid0IGluY2x1ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIHRoZSB2 YWx1ZQorICAgICAgICAgICAgICAgICAgOzsgb2YgYWJicmV2aWF0ZWQtaG9tZS1kaXIgY291 bGQgYmUgbXVsdGlieXRlIG9yCisgICAgICAgICAgICAgICAgICA7OyB1bmlieXRlLiAgSW4g dGhlIGxhdHRlciBjYXNlLCB3ZSBuZWVkIHRvIGRlY29kZQorICAgICAgICAgICAgICAgICAg OzsgaXQuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIHRoZQorICAg ICAgICAgICAgICAgICAgOzsgZmlyc3QgdGltZSAoZnJvbSBzdGFydHVwLmVsKSB3aGVuCisg ICAgICAgICAgICAgICAgICA7OyBsb2NhbGUtY29kaW5nLXN5c3RlbSBpcyBhbHJlYWR5IHNl dCB1cC4KKyAgICAgICAgICAgICAgICAgIChpZiAobXVsdGlieXRlLXN0cmluZy1wIHJlZ2V4 cCkKKyAgICAgICAgICAgICAgICAgICAgICByZWdleHAKKyAgICAgICAgICAgICAgICAgICAg KGRlY29kZS1jb2Rpbmctc3RyaW5nIHJlZ2V4cAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXRmLTgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLWNvZGlu Zy1zeXN0ZW0pKSkpKSkKKworICAgICAgICA7OyBJZiBGSUxFTkFNRSBzdGFydHMgd2l0aCB0 aGUgYWJicmV2aWF0ZWQgaG9tZWRpciwKKyAgICAgICAgOzsgYW5kIH4gaGFzbid0IGNoYW5n ZWQgc2luY2UgYWJicmV2aWF0ZWQtaG9tZS1kaXIgd2FzIHNldCwKKyAgICAgICAgOzsgbWFr ZSBpdCBzdGFydCB3aXRoIGB+JyBpbnN0ZWFkLgorICAgICAgICA7OyBJZiB+IGhhcyBjaGFu Z2VkLCB3ZSBpZ25vcmUgYWJicmV2aWF0ZWQtaG9tZS1kaXIgcmF0aGVyIHRoYW4KKyAgICAg ICAgOzsgaW52YWxpZGF0aW5nIGl0LCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGEgY2hhbmdl IGluIEhPTUUKKyAgICAgICAgOzsgaXMgbGlrZWx5IHRlbXBvcmFyeSAoZWcgZm9yIHRlc3Rp bmcpLgorICAgICAgICA7OyBGSVhNRSBJcyBpdCBldmVuIHdvcnRoIGNhY2hpbmcgYWJicmV2 aWF0ZWQtaG9tZS1kaXI/CisgICAgICAgIDs7IFJlZjogaHR0cHM6Ly9kZWJidWdzLmdudS5v cmcvMTk2NTcjMjAKKyAgICAgICAgKGxldCAobWIxKQorICAgICAgICAgIChpZiAoYW5kIChz dHJpbmctbWF0Y2ggYWJicmV2aWF0ZWQtaG9tZS1kaXIgZmlsZW5hbWUpCisgICAgICAgICAg ICAgICAgICAgKHNldHEgbWIxIChtYXRjaC1iZWdpbm5pbmcgMSkpCisgICAgICAgICAgICAg ICAgICAgOzsgSWYgdGhlIGhvbWUgZGlyIGlzIGp1c3QgLywgZG9uJ3QgY2hhbmdlIGl0Lgor ICAgICAgICAgICAgICAgICAgIChub3QgKGFuZCAoPSAobWF0Y2gtZW5kIDApIDEpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICg9IChhcmVmIGZpbGVuYW1lIDApID8vKSkpCisg ICAgICAgICAgICAgICAgICAgOzsgTVMtRE9TIHJvb3QgZGlyZWN0b3JpZXMgY2FuIGNvbWUg d2l0aCBhIGRyaXZlIGxldHRlcjsKKyAgICAgICAgICAgICAgICAgICA7OyBOb3ZlbGwgTmV0 d2FyZSBhbGxvd3MgZHJpdmUgbGV0dGVycyBiZXlvbmQgYFo6Jy4KKyAgICAgICAgICAgICAg ICAgICAobm90IChhbmQgKG1lbXEgc3lzdGVtLXR5cGUgJyhtcy1kb3Mgd2luZG93cy1udCBj eWd3aW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoICJc XGBbYS16QS1gXTovXFwnIiBmaWxlbmFtZSkpKQorICAgICAgICAgICAgICAgICAgIChlcXVh bCAoZ2V0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAnaG9tZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgIn4iKSkpCisgICAgICAgICAgICAgIChzZXRx IGZpbGVuYW1lCisgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIn4iCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSBtYjEpKSkpCisgICAgICAg ICAgZmlsZW5hbWUpKSkpKQogCiAoZGVmdW4gZmluZC1idWZmZXItdmlzaXRpbmcgKGZpbGVu YW1lICZvcHRpb25hbCBwcmVkaWNhdGUpCiAgICJSZXR1cm4gdGhlIGJ1ZmZlciB2aXNpdGlu ZyBmaWxlIEZJTEVOQU1FIChhIHN0cmluZykuCkBAIC03ODExLDEwICs3ODEzLDExIEBAIGZp bGUtbmFtZS1ub24tc3BlY2lhbAogCTs7IEdldCBhIGxpc3Qgb2YgdGhlIGluZGljZXMgb2Yg dGhlIGFyZ3MgdGhhdCBhcmUgZmlsZSBuYW1lcy4KIAkoZmlsZS1hcmctaW5kaWNlcwogCSAo Y2RyIChvciAoYXNzcSBvcGVyYXRpb24KLQkJCScoOzsgVGhlIGZpcnN0IHNldmVuIGFyZSBz cGVjaWFsIGJlY2F1c2UgdGhleQorCQkJJyg7OyBUaGUgZmlyc3QgZWlnaHQgYXJlIHNwZWNp YWwgYmVjYXVzZSB0aGV5CiAJCQkgIDs7IHJldHVybiBhIGZpbGUgbmFtZS4gIFdlIHdhbnQg dG8gaW5jbHVkZQogCQkJICA7OyB0aGUgLzogaW4gdGhlIHJldHVybiB2YWx1ZS4gIFNvIGp1 c3QKIAkJCSAgOzsgYXZvaWQgc3RyaXBwaW5nIGl0IGluIHRoZSBmaXJzdCBwbGFjZS4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAoZGlyZWN0b3J5LWZpbGUtbmFtZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQv dHJhbXAtc2guZWwgYi9saXNwL25ldC90cmFtcC1zaC5lbAppbmRleCA2MjkyMTkwOTQwLi4x MTUxY2QyYWU4IDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1zaC5lbAorKysgYi9saXNw L25ldC90cmFtcC1zaC5lbApAQCAtOTQwLDcgKzk0MCw4IEBAIHRyYW1wLXZjLXJlZ2lzdGVy ZWQtcmVhZC1maWxlLW5hbWVzCiA7OyBOZXcgaGFuZGxlcnMgc2hvdWxkIGJlIGFkZGVkIGhl cmUuCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZmNvbnN0IHRyYW1wLXNoLWZpbGUtbmFt ZS1oYW5kbGVyLWFsaXN0Ci0gICcoKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vz cy1maWxlKQorICAnKChhYmJyZXZpYXRlLWZpbGUtbmFtZSAuIHRyYW1wLXNoLWhhbmRsZS1h YmJyZXZpYXRlLWZpbGUtbmFtZSkKKyAgICAoYWNjZXNzLWZpbGUgLiB0cmFtcC1oYW5kbGUt YWNjZXNzLWZpbGUpCiAgICAgKGFkZC1uYW1lLXRvLWZpbGUgLiB0cmFtcC1zaC1oYW5kbGUt YWRkLW5hbWUtdG8tZmlsZSkKICAgICA7OyBgYnl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFt ZScgcGVyZm9ybWVkIGJ5IGRlZmF1bHQgaGFuZGxlci4KICAgICAoY29weS1kaXJlY3Rvcnkg LiB0cmFtcC1zaC1oYW5kbGUtY29weS1kaXJlY3RvcnkpCkBAIC0xNzk4LDYgKzE3OTksNDMg QEAgdHJhbXAtc2gtaGFuZGxlLWZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMKIAkgICAgICAg KHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50KSAocG9pbnQtYXQtZW9sKSkgcmVzdWx0 KSkpCiAJICAgcmVzdWx0KSkpKSkpCiAKKyhkZWZ1biB0cmFtcC1zaC1oYW5kbGUtYWJicmV2 aWF0ZS1maWxlLW5hbWUgKGZpbGVuYW1lKQorICAiTGlrZSBgYWJicmV2aWF0ZS1maWxlLW5h bWUnIGZvciBUcmFtcCBmaWxlcy4iCisgIChsZXQgKGhvbWUtZGlyKQorICAgICh3aXRoLXBh cnNlZC10cmFtcC1maWxlLW5hbWUgZmlsZW5hbWUgbmlsCisgICAgICAoc2V0cSBob21lLWRp ciAodHJhbXAtc2gtaGFuZGxlLWV4cGFuZC1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAg ICAgICAodHJhbXAtbWFrZS10cmFtcC1maWxlLW5hbWUgdiAifiIpKSkpCisgICAgOzsgSWYg YW55IGVsdCBvZiBkaXJlY3RvcnktYWJicmV2LWFsaXN0IG1hdGNoZXMgdGhpcyBuYW1lIG9y IHRoZQorICAgIDs7IGhvbWUgZGlyLCBhYmJyZXZpYXRlIGFjY29yZGluZ2x5LgorICAgIChk b2xpc3QgKGRpci1hYmJyZXYgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCkKKyAgICAgICh3aGVu IChzdHJpbmctbWF0Y2ggKGNhciBkaXItYWJicmV2KSBmaWxlbmFtZSkKKyAgICAgICAgKHNl dHEgZmlsZW5hbWUKKyAgICAgICAgICAgICAgKGNvbmNhdCAoY2RyIGRpci1hYmJyZXYpCisg ICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSAobWF0Y2gtZW5kIDAp KSkpKQorICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYpIGhvbWUt ZGlyKQorICAgICAgICAoc2V0cSBob21lLWRpcgorICAgICAgICAgICAgICAoY29uY2F0IChj ZHIgZGlyLWFiYnJldikKKyAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGhvbWUt ZGlyIChtYXRjaC1lbmQgMCkpKSkpKQorICAgIChsZXQqICgoaG9tZS1kaXItcmVnZXhwCisg ICAgICAgICAgICA7OyBXZSBpbmNsdWRlIGEgc2xhc2ggYXQgdGhlIGVuZCwgdG8gYXZvaWQg c3B1cmlvdXMKKyAgICAgICAgICAgIDs7IG1hdGNoZXMgc3VjaCBhcyBgL3Vzci9mb29iYXIn IHdoZW4gdGhlIGhvbWUgZGlyIGlzCisgICAgICAgICAgICA7OyBgL3Vzci9mb28nLgorICAg ICAgICAgICAgKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIGhvbWUtZGlyKSAiXFwoL1xc fFxcJ1xcKSIpKQorICAgICAgICAgICAoaG9tZS1kaXItcmVnZXhwCisgICAgICAgICAgICA7 OyBUaGUgdmFsdWUgb2YgaG9tZS1kaXItcmVnZXhwIGNvdWxkIGJlIG11bHRpYnl0ZSBvcgor ICAgICAgICAgICAgOzsgdW5pYnl0ZS4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgd2UgbmVlZCB0 byBkZWNvZGUgaXQuCisgICAgICAgICAgICAoaWYgKG11bHRpYnl0ZS1zdHJpbmctcCBob21l LWRpci1yZWdleHApCisgICAgICAgICAgICAgICAgaG9tZS1kaXItcmVnZXhwCisgICAgICAg ICAgICAgIChkZWNvZGUtY29kaW5nLXN0cmluZyBob21lLWRpci1yZWdleHAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRv d3MtbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3V0Zi04 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZS1jb2Rpbmct c3lzdGVtKSkpKSkKKyAgICAgIChpZiAoc3RyaW5nLW1hdGNoIGhvbWUtZGlyLXJlZ2V4cCBm aWxlbmFtZSkKKyAgICAgICAgICAod2l0aC1wYXJzZWQtdHJhbXAtZmlsZS1uYW1lIGZpbGVu YW1lIG5pbAorICAgICAgICAgICAgKHRyYW1wLW1ha2UtdHJhbXAtZmlsZS1uYW1lCisgICAg ICAgICAgICAgdiAoY29uY2F0ICJ+IiAoc3Vic3RyaW5nIGZpbGVuYW1lIChtYXRjaC1iZWdp bm5pbmcgMSkpKSkpCisgICAgICAgIGZpbGVuYW1lKSkpKQorCiA7OyBjcCwgbXYgYW5kIGxu CiAKIChkZWZ1biB0cmFtcC1zaC1oYW5kbGUtYWRkLW5hbWUtdG8tZmlsZQpkaWZmIC0tZ2l0 IGEvbGlzcC9uZXQvdHJhbXAuZWwgYi9saXNwL25ldC90cmFtcC5lbAppbmRleCBiMTUyNTg0 YzFmLi43NDBjYjIzZWJlIDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC5lbAorKysgYi9s aXNwL25ldC90cmFtcC5lbApAQCAtMjQ5Myw2ICsyNDkzLDggQEAgdHJhbXAtZmlsZS1uYW1l LWZvci1vcGVyYXRpb24KIAkgICAgICBmaWxlLXN5c3RlbS1pbmZvCiAJICAgICAgOzsgRW1h Y3MgMjgrIG9ubHkuCiAJICAgICAgZmlsZS1sb2NrZWQtcCBsb2NrLWZpbGUgbWFrZS1sb2Nr LWZpbGUtbmFtZSB1bmxvY2stZmlsZQorCSAgICAgIDs7IEVtYWNzIDI5KyBvbmx5LgorCSAg ICAgIGFiYnJldmlhdGUtZmlsZS1uYW1lCiAJICAgICAgOzsgVHJhbXAgaW50ZXJuYWwgbWFn aWMgZmlsZSBuYW1lIGZ1bmN0aW9uLgogCSAgICAgIHRyYW1wLXNldC1maWxlLXVpZC1naWQp KQogICAgIChpZiAoZmlsZS1uYW1lLWFic29sdXRlLXAgKG50aCAwIGFyZ3MpKQpkaWZmIC0t Z2l0IGEvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9uZXQvdHJh bXAtdGVzdHMuZWwKaW5kZXggM2Q2Y2U5NjNlZS4uNWVlYTAwYzQxZSAxMDA2NDQKLS0tIGEv dGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvbmV0L3RyYW1w LXRlc3RzLmVsCkBAIC02MTIyLDYgKzYxMjIsMTIgQEAgdHJhbXAtLXRlc3QtZW1hY3MyOC1w CiB2YXJpYWJsZXMsIHNvIHdlIGNoZWNrIHRoZSBFbWFjcyB2ZXJzaW9uIGRpcmVjdGx5LiIK ICAgKD49IGVtYWNzLW1ham9yLXZlcnNpb24gMjgpKQogCisoZGVmdW4gdHJhbXAtLXRlc3Qt ZW1hY3MyOS1wICgpCisgICJDaGVjayBmb3IgRW1hY3MgdmVyc2lvbiA+PSAyOS4xLgorU29t ZSBzZW1hbnRpY3MgaGFzIGJlZW4gY2hhbmdlZCBmb3IgdGhlcmUsIHcvbyBuZXcgZnVuY3Rp b25zIG9yCit2YXJpYWJsZXMsIHNvIHdlIGNoZWNrIHRoZSBFbWFjcyB2ZXJzaW9uIGRpcmVj dGx5LiIKKyAgKD49IGVtYWNzLW1ham9yLXZlcnNpb24gMjkpKQorCiAoZGVmdW4gdHJhbXAt LXRlc3QtYWRiLXAgKCkKICAgIkNoZWNrLCB3aGV0aGVyIHRoZSByZW1vdGUgaG9zdCBydW5z IEFuZHJvaWQuCiBUaGlzIHJlcXVpcmVzIHJlc3RyaWN0aW9ucyBvZiBmaWxlIG5hbWUgc3lu dGF4LiIKQEAgLTcwMzEsOCArNzAzNywyOSBAQCB0cmFtcC10ZXN0NDUtZGlyZWQtY29tcHJl c3MtZGlyCiAgICAgKHNob3VsZCAoc3RyaW5nPSB0bXAtbmFtZSAoZGlyZWQtZ2V0LWZpbGVu YW1lKSkpCiAgICAgKGRlbGV0ZS1kaXJlY3RvcnkgdG1wLW5hbWUpKSkKIAorKGVydC1kZWZ0 ZXN0IHRyYW1wLXRlc3Q0Ni1hYmJyZXZpYXRlLWZpbGUtbmFtZSAoKQorICAiQ2hlY2sgdGhh dCBUcmFtcCBhYmJyZXZpYXRlcyBmaWxlIG5hbWVzIGNvcnJlY3RseS4iCisgIChza2lwLXVu bGVzcyAodHJhbXAtLXRlc3QtZW5hYmxlZCkpCisgIChza2lwLXVubGVzcyAodHJhbXAtLXRl c3QtZW1hY3MyOS1wKSkKKworICAobGV0ICgoaG9tZS1kaXIgKGV4cGFuZC1maWxlLW5hbWUg Ii9tb2NrOmxvY2FsaG9zdDp+IikpKQorICAgIDs7IENoZWNrIGhvbWUtZGlyIGFiYnJldmlh dGlvbi4KKyAgICAoc2hvdWxkIChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNh dCBob21lLWRpciAiL2Zvby9iYXIiKSkKKyAgICAgICAgICAgICAgICAgICAiL21vY2s6bG9j YWxob3N0On4vZm9vL2JhciIpKQorICAgIChzaG91bGQgKGVxdWFsIChhYmJyZXZpYXRlLWZp bGUtbmFtZSAiL21vY2s6bG9jYWxob3N0Oi9ub3doZXJlL3NwZWNpYWwiKQorICAgICAgICAg ICAgICAgICAgICIvbW9jazpsb2NhbGhvc3Q6L25vd2hlcmUvc3BlY2lhbCIpKQorICAgIDs7 IENoZWNrIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0JyBhYmJyZXZpYXRpb24uCisgICAgKGxl dCAoKGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QKKyAgICAgICAgICAgYCgoLChjb25jYXQgIlxc YCIgKHJlZ2V4cC1xdW90ZSBob21lLWRpcikgIi9mb28iKQorICAgICAgICAgICAgICAuICwo Y29uY2F0IGhvbWUtZGlyICIvZiIpKQorICAgICAgICAgICAgICgiXFxgL21vY2s6bG9jYWxo b3N0Oi9ub3doZXJlIiAuICIvbW9jazpsb2NhbGhvc3Q6L253IikpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsIChhYmJyZXZpYXRlLWZpbGUtbmFtZSAoY29uY2F0IGhvbWUtZGlyICIvZm9v L2JhciIpKQorICAgICAgICAgICAgICAgICAgICAgIi9tb2NrOmxvY2FsaG9zdDp+L2YvYmFy IikpCisgICAgICAoc2hvdWxkIChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgIi9tb2Nr OmxvY2FsaG9zdDovbm93aGVyZS9zcGVjaWFsIikKKyAgICAgICAgICAgICAgICAgICAgICIv bW9jazpsb2NhbGhvc3Q6L253L3NwZWNpYWwiKSkpKSkKKwogOzsgVGhpcyB0ZXN0IGlzIGlu c3BpcmVkIGJ5IEJ1ZyMyOTE2My4KLShlcnQtZGVmdGVzdCB0cmFtcC10ZXN0NDYtYXV0by1s b2FkICgpCisoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ3LWF1dG8tbG9hZCAoKQogICAiQ2hl Y2sgdGhhdCBUcmFtcCBhdXRvbG9hZHMgcHJvcGVybHkuIgogICA7OyBJZiB3ZSB1c2UgYW5v dGhlciBzeW50YXggYnV0IGBkZWZhdWx0JywgVHJhbXAgaXMgYWxyZWFkeSBsb2FkZWQKICAg OzsgZHVlIHRvIHRoZSBgdHJhbXAtY2hhbmdlLXN5bnRheCcgY2FsbC4KQEAgLTcwNTcsNyAr NzA4NCw3IEBAIHRyYW1wLXRlc3Q0Ni1hdXRvLWxvYWQKIAkobWFwY29uY2F0ICMnc2hlbGwt cXVvdGUtYXJndW1lbnQgbG9hZC1wYXRoICIgLUwgIikKIAkoc2hlbGwtcXVvdGUtYXJndW1l bnQgY29kZSkpKSkpKSkKIAotKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0Ni1kZWxheS1sb2Fk ICgpCisoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ3LWRlbGF5LWxvYWQgKCkKICAgIkNoZWNr IHRoYXQgVHJhbXAgaXMgbG9hZGVkIGxhemlseSwgb25seSB3aGVuIG5lZWRlZC4iCiAgIDs7 IFRoZSBhdXRvbG9hZGVkIFRyYW1wIG9iamVjdHMgYXJlIGRpZmZlcmVudCBzaW5jZSBFbWFj cyAyNi4xLiAgV2UKICAgOzsgY2Fubm90IHRlc3Qgb2xkZXIgRW1hY3NlbiwgdGhlcmVmb3Jl LgpAQCAtNzA5MCw3ICs3MTE3LDcgQEAgdHJhbXAtdGVzdDQ2LWRlbGF5LWxvYWQKIAkgICht YXBjb25jYXQgIydzaGVsbC1xdW90ZS1hcmd1bWVudCBsb2FkLXBhdGggIiAtTCAiKQogCSAg KHNoZWxsLXF1b3RlLWFyZ3VtZW50IChmb3JtYXQgY29kZSB0bSkpKSkpKSkpKQogCi0oZXJ0 LWRlZnRlc3QgdHJhbXAtdGVzdDQ2LXJlY3Vyc2l2ZS1sb2FkICgpCisoZXJ0LWRlZnRlc3Qg dHJhbXAtdGVzdDQ3LXJlY3Vyc2l2ZS1sb2FkICgpCiAgICJDaGVjayB0aGF0IFRyYW1wIGRv ZXMgbm90IGZhaWwgZHVlIHRvIHJlY3Vyc2l2ZSBsb2FkLiIKICAgKHNraXAtdW5sZXNzICh0 cmFtcC0tdGVzdC1lbmFibGVkKSkKIApAQCAtNzExNCw3ICs3MTQxLDcgQEAgdHJhbXAtdGVz dDQ2LXJlY3Vyc2l2ZS1sb2FkCiAJICAobWFwY29uY2F0ICMnc2hlbGwtcXVvdGUtYXJndW1l bnQgbG9hZC1wYXRoICIgLUwgIikKIAkgIChzaGVsbC1xdW90ZS1hcmd1bWVudCBjb2RlKSkp KSkpKSkKIAotKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0Ni1yZW1vdGUtbG9hZC1wYXRoICgp CisoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ3LXJlbW90ZS1sb2FkLXBhdGggKCkKICAgIkNo ZWNrIHRoYXQgVHJhbXAgYXV0b2xvYWRzIGl0cyBwYWNrYWdlcyB3aXRoIHJlbW90ZSBgbG9h ZC1wYXRoJy4iCiAgIDs7IFRoZSBhdXRvbG9hZGVkIFRyYW1wIG9iamVjdHMgYXJlIGRpZmZl cmVudCBzaW5jZSBFbWFjcyAyNi4xLiAgV2UKICAgOzsgY2Fubm90IHRlc3Qgb2xkZXIgRW1h Y3NlbiwgdGhlcmVmb3JlLgpAQCAtNzE0Myw3ICs3MTcwLDcgQEAgdHJhbXAtdGVzdDQ2LXJl bW90ZS1sb2FkLXBhdGgKIAkobWFwY29uY2F0ICMnc2hlbGwtcXVvdGUtYXJndW1lbnQgbG9h ZC1wYXRoICIgLUwgIikKIAkoc2hlbGwtcXVvdGUtYXJndW1lbnQgY29kZSkpKSkpKSkKIAot KGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0Ny11bmxvYWQgKCkKKyhlcnQtZGVmdGVzdCB0cmFt cC10ZXN0NDgtdW5sb2FkICgpCiAgICJDaGVjayB0aGF0IFRyYW1wIGFuZCBpdHMgc3VicGFj a2FnZXMgdW5sb2FkIGNvbXBsZXRlbHkuCiBTaW5jZSBpdCB1bmxvYWRzIFRyYW1wLCBpdCBz aGFsbCBiZSB0aGUgbGFzdCB0ZXN0IHRvIHJ1bi4iCiAgIDp0YWdzICcoOmV4cGVuc2l2ZS10 ZXN0KQotLSAKMi4yNS4xCgo= --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="0003-Add-some-unit-tests-for-abbreviate-file-name.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-some-unit-tests-for-abbreviate-file-name.patch" RnJvbSBmOWRhNjhiZDJhZDc3N2E3ZWYzNDVhODY2OGIxZmNlMjg0ZTU5N2RhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAyMDoxNTo1NiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBBZGQgc29tZSB1bml0IHRlc3RzIGZvciAnYWJicmV2aWF0ZS1maWxlLW5hbWUn CgoqIHRlc3QvbGlzcC9maWxlcy10ZXN0cy5lbCAoZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1m aWxlLW5hbWUtaG9tZWRpcik6CihmaWxlcy10ZXN0cy1hYmJyZXZpYXRlLWZpbGUtbmFtZS1k aXJlY3RvcnktYWJicmV2LWFsaXN0KToKTmV3IHRlc3RzLgotLS0KIHRlc3QvbGlzcC9maWxl cy10ZXN0cy5lbCB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90ZXN0L2xpc3Av ZmlsZXMtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwKaW5kZXggNGI5ZDRl NDUxNi4uMWFlYThhZjU0ZiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVs CisrKyBiL3Rlc3QvbGlzcC9maWxlcy10ZXN0cy5lbApAQCAtMTM0Miw2ICsxMzQyLDM5IEBA IGZpbGVzLXRlc3RzLWNvcHktZGlyZWN0b3J5CiAgICAgKHNob3VsZCAoZmlsZS1kaXJlY3Rv cnktcCAoY29uY2F0IChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IGRlc3QyKSAiYSIpKSkKICAg ICAoZGVsZXRlLWRpcmVjdG9yeSBkaXIgJ3JlY3Vyc2l2ZSkpKQogCisoZXJ0LWRlZnRlc3Qg ZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1maWxlLW5hbWUtaG9tZWRpciAoKQorICA7OyBDaGVj ayBob21lZGlyIGFiYnJldmlhdGlvbi4KKyAgKGxldCogKChob21lZGlyIHRlbXBvcmFyeS1m aWxlLWRpcmVjdG9yeSkKKyAgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IChjb25zIChm b3JtYXQgIkhPTUU9JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9jZXNzLWVudmlyb25tZW50KSkKKyAgICAgICAgIChhYmJyZXZpYXRlZC1o b21lLWRpciBuaWwpKQorICAgIChzaG91bGQgKGVxdWFsICJ+L2Zvby9iYXIiCisgICAgICAg ICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChjb25jYXQgaG9tZWRpciAiZm9v L2JhciIpKSkpKQorICA7OyBDaGVjayB0aGF0IGhvbWVkaXIgYWJicmV2aWF0aW9uIGRvZXNu J3Qgb2NjdXIgd2hlbiBob21lZGlyIGlzIGp1c3QgLy4KKyAgKGxldCogKChob21lZGlyICIv IikKKyAgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IChjb25zIChmb3JtYXQgIkhPTUU9 JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9j ZXNzLWVudmlyb25tZW50KSkKKyAgICAgICAgIChhYmJyZXZpYXRlZC1ob21lLWRpciBuaWwp KQorICAgIChzaG91bGQgKGVxdWFsICIvZm9vL2JhciIKKyAgICAgICAgICAgICAgICAgICAo YWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCBob21lZGlyICJmb28vYmFyIikpKSkpKQor CisoZXJ0LWRlZnRlc3QgZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1maWxlLW5hbWUtZGlyZWN0 b3J5LWFiYnJldi1hbGlzdCAoKQorICAgIDs7IENoZWNrIGBkaXJlY3RvcnktYWJicmV2LWFs aXN0JyBhYmJyZXZpYXRpb24uCisgICAgKGxldCAoKGRpcmVjdG9yeS1hYmJyZXYtYWxpc3Qg JygoIlxcYC9ub3doZXJlL3NwZWNpYWwiIC4gIi9udy9zcCIpKSkpCisgICAgICAoc2hvdWxk IChlcXVhbCAiL253L3NwL2hlcmUiCisgICAgICAgICAgICAgICAgICAgICAoYWJicmV2aWF0 ZS1maWxlLW5hbWUgIi9ub3doZXJlL3NwZWNpYWwvaGVyZSIpKSkpCisgICAgOzsgQ2hlY2sg aG9tZWRpciBhbmQgYGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIGFiYnJldmlhdGlvbi4KKyAg ICAobGV0KiAoKGhvbWVkaXIgdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KQorICAgICAgICAg ICAocHJvY2Vzcy1lbnZpcm9ubWVudCAoY29ucyAoZm9ybWF0ICJIT01FPSVzIiBob21lZGly KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLWVudmly b25tZW50KSkKKyAgICAgICAgICAgKGFiYnJldmlhdGVkLWhvbWUtZGlyIG5pbCkKKyAgICAg ICAgICAgKGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QKKyAgICAgICAgICAgIGAoKCwoY29uY2F0 ICJcXGAiIChyZWdleHAtcXVvdGUgaG9tZWRpcikgIm5vd2hlcmUvc3BlY2lhbCIpCisgICAg ICAgICAgICAgIC4gLChjb25jYXQgaG9tZWRpciAibncvc3AiKSkpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsICJ+L253L3NwL2hlcmUiCisgICAgICAgICAgICAgICAgICAgICAoYWJicmV2 aWF0ZS1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGhvbWVkaXIg Im5vd2hlcmUvc3BlY2lhbC9oZXJlIikpKSkpKQorCiAoZXJ0LWRlZnRlc3QgZmlsZXMtdGVz dHMtYWJicmV2aWF0ZWQtaG9tZS1kaXIgKCkKICAgIlRlc3QgdGhhdCBjaGFuZ2luZyBIT01F IGRvZXMgbm90IGNvbmZ1c2UgYGFiYnJldmlhdGUtZmlsZS1uYW1lJy4KIFNlZSA8aHR0cHM6 Ly9kZWJidWdzLmdudS5vcmcvMTk2NTcjMjA+LiIKLS0gCjIuMjUuMQoK --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" KE5vdGU6IGVhY2ggdGVzdCB1c2VzIDEwMDAgaXRlcmF0aW9ucyBvZiBhYmJyZXZpYXRlLWZp bGUtbmFtZS4pCgpWYW5pbGxhIEVtYWNzIDI5LjAuNTA6Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCkVtcHR5IOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkKTG9jYWwgfCBFbGFwc2Vk IHRpbWU6IDAuMDUxMzM2cyAoMC4wMTYxMjVzIGluIDEgR0NzKQpUUkFNUCB8IEVsYXBzZWQg dGltZTogMi4xNzM2MjFzICgwLjUwMTY1M3MgaW4gMzggR0NzKQoKMTAwIGl0ZW1zIGluIOKA mGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5vIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNl ZCB0aW1lOiAwLjMxNjAyMXMgKDAuMTMzNTMxcyBpbiAxMCBHQ3MpClRSQU1QIHwgRWxhcHNl ZCB0aW1lOiAyLjQ1OTIxMnMgKDAuNjMzMzczcyBpbiA0OCBHQ3MpCgoxMDAgaXRlbXMgaW4g 4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAoYWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxh cHNlZCB0aW1lOiAwLjUzOTYzNnMgKDAuMzI3NjM3cyBpbiAyNSBHQ3MpClRSQU1QIHwgRWxh cHNlZCB0aW1lOiAyLjQ4NDYyOXMgKDAuNjQyNTk3cyBpbiA0OSBHQ3MpCgo1MDAgaXRlbXMg aW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAobm8gbWF0Y2hlcykKTG9jYWwgfCBF bGFwc2VkIHRpbWU6IDEuMDc1NjUwcyAoMC41MDAwNDNzIGluIDM4IEdDcykKVFJBTVAgfCBF bGFwc2VkIHRpbWU6IDMuMjQxNDE0cyAoMS4wMDYxNDNzIGluIDc2IEdDcykKCjUwMCBpdGVt cyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChhbGwgbWF0Y2hlcykKTG9jYWwg fCBFbGFwc2VkIHRpbWU6IDEuMzAyMjAxcyAoMC42OTYyNDlzIGluIDUzIEdDcykKVFJBTVAg fCBFbGFwc2VkIHRpbWU6IDMuMjYxOTg0cyAoMS4wMTgwOThzIGluIDc3IEdDcykKCgpVcGRh dGVkIFBhdGNoZXM6Ci0tLS0tLS0tLS0tLS0tLS0KCkVtcHR5IOKAmGRpcmVjdG9yeS1hYmJy ZXYtYWxpc3TigJkKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMDUwODYxcyAoMC4wMTMxOThz IGluIDEgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMC41MDU5NDNzICgwLjEyODgxNHMg aW4gOSBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAo bm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzAzMzMycyAoMC4xMjEyMzVz IGluIDkgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMC44MjcwOTZzICgwLjI2MDA3OHMg aW4gMTkgR0NzKQoKMTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkg KGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC41NDMwNzRzICgwLjMzMTcx MnMgaW4gMjUgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMC44MjM0MTFzICgwLjI1Mzc1 N3MgaW4gMTkgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3Ti gJkgKG5vIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjA4ODIzNHMgKDAuNTEx NTA1cyBpbiAzOCBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAxLjcyMjk0OHMgKDAuNjI5 MzU5cyBpbiA0NyBHQ3MpCgo1MDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlz dOKAmSAoYWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjMwNjQyN3MgKDAu NzAxOTY1cyBpbiA1MyBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAxLjc1OTQ1MXMgKDAu NjUzNzAzcyBpbiA0NyBHQ3MpCgoKT3JpZ2luYWwgUGF0Y2hlczoKLS0tLS0tLS0tLS0tLS0t LS0KCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAwLjA3NjYyMHMgKDAuMDEzNDM0cyBpbiAxIEdD cykKVFJBTVAgfCBFbGFwc2VkIHRpbWU6IDMuNTQzMjY2cyAoMC44NjQ3MjlzIGluIDY0IEdD cykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChubyBtYXRj aGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4zNjU0MDJzICgwLjEzMTI5MHMgaW4gMTAg R0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMy43MzY2OTZzICgwLjk1NTQ3NHMgaW4gNzMg R0NzKQoKMTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKGFsbCBt YXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC42MDgxMjJzICgwLjM0MDY3N3MgaW4g MjYgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMy44MTg4NjdzICgwLjk1NjM2MXMgaW4g NzMgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5v IG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjIzMjIyMXMgKDAuNDk5MDk5cyBp biAzOCBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiA0LjU5OTc5OXMgKDEuMzEzNjI5cyBp biAxMDAgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkg KGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS40Nzk2MDlzICgwLjcwODkw M3MgaW4gNTQgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogNC42NTY5NjNzICgxLjM0NTEy NXMgaW4gMTAxIEdDcykK --------------0D91A40490F7015C7093F245-- From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 07 13:38:09 2021 Received: (at 51622) by debbugs.gnu.org; 7 Nov 2021 18:38:09 +0000 Received: from localhost ([127.0.0.1]:54708 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjn3Q-0007xn-JU for submit@debbugs.gnu.org; Sun, 07 Nov 2021 13:38:09 -0500 Received: from mout.gmx.net ([212.227.17.22]:41377) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjn3L-0007xE-Nv for 51622@debbugs.gnu.org; Sun, 07 Nov 2021 13:38:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636310277; bh=0BdenhQfk9tvpiGFxPzjRojCGv/WsO2R1x2G4LRANHA=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=eZd6JTiNZ23aolgIpOeXQyUpXzZj0IHdkBjP3DopNbRJc3a4hoNiO08jLwb955iGs 1IBqeutvyDIK8qdOfnGOtvVdPiGsOgqbHDq/m+cz9M1mrokFYTiA2B4mXO0DNC319i OGJ9ZLLrci6jSBAn/J7lHWmzPxD/L9Lmpvl9e12U= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([213.220.148.37]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MnakX-1mKvxp38ZZ-00jczy; Sun, 07 Nov 2021 19:37:56 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> Date: Sun, 07 Nov 2021 19:37:55 +0100 In-Reply-To: (Jim Porter's message of "Sat, 6 Nov 2021 20:30:39 -0700") Message-ID: <87sfw7u7zw.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:NrMd8vJYhwkGvw2p4TCDuqAIG7jp+oJ3ts+N9Tky/gKBf4UEhH9 7n3m/x4N3zDVZCZgPU8Tos25tJOd+Fz0FiZVeZM7cHDCd05VRQ+cCVwqDh8LLDxUKxAb4kJ 41bPt/p3KIbMTc6vGYrRI68BNw6kckAWoDwyBFpNX+3GjpsSCebwT1i3j4e0R7Y2VlH9jZw TNasKztyqEDGvnGhPfsdQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:iuN9SXVM4lY=:aTjjf+xYaqaqR2XLPbq28w bo/sfBNSCuerADc/STBvGnRIL+L2mKbk0Ck8MOal4d8bokTRL43Kwfh7zxBN59QDWVr3aLILK EHStvwMHHOG+5gJuaZYBkTRK29ThMX4eQiW7PcOs2u0bfEIQ1NPy6CRHb2HnW+ZYnljMIi1Z3 CuC5HIR99D6fZszGh7bRsuEhvtpBdmbKx5+ax67QgFkdBr2ewH+feB4awxBNBdhUKkTRBS85N rNWeLx0yRM7WehHdccUCnPP+xc39/spdVbXnoxlc40FNZ/DAeU6//hAqxqZ1S+58stSkNfafE vLUrMuxPXI2wf0l4oB+waHJNSnfLI7UrihOdDKLFwy7QwXPyOgimhsqiHn85wy2uiYFoXIrW/ 516I+Ue09INOH0E1AtkejqLFxl23BZgdk4u2tOlcqqTvu3jEFsNSjVxKerPBpYm2Y5Bvd4+ZP p01tmDj10egTaBPqqB6SOJQXaQPnCJqNbabEsD9bbioJva9NXMx7DnVxE6oAuSOnXs5JPYQBb n3lHwwDGQGFXMwsXKHLUE6R5HIdzyeYbM5iQGAq2jrCZJUx9ICvgZ6ozSwwkRoTosLTUfmpn+ TUH50q/gEgA3VwkRYZ6DlSqJBpa+WqFZZ1igZ5l7A87pJyOnj3MjW5iRHzFurXv8Z51ZQzOS2 fSF5pTFi+TGnhiMI2Hn9HMVK/Rc4TWijqaG9elQAtY+aJePkvnAy58qR52nzidx+E7Rjyyozn 4AS7HeGfaWhZw8hWnz7pmasRbqfcFOpcbyP2vGeGR3OPSSwzng2flwWmdYoeM/RCUk4FNdKw3 k2Rd+FbmMpULa6PBdEy/YH0qpz4XDf5u/s3cd3GvD+lLdq2o1kHbNot+QK1LbfSKt6GrcjcEZ W6xHgTQlMK2B5M6gmSlpD0wDGZ8GbyT+FGLv8K8Nm5wqbxt9gIPru8sl3YyeBORlTwC3Za2gA B+zhlZFwm3xWKBd229YbwdaSddEXySLjipx6GHzS9IZvXDEeOnuRHNLmcndhjpqGIVzVe9Zer q3w1/aDuJo2MBtMdlFO5F41S/QF+Sf1xdgf3Qmv6iHZkS7Cbr2F4XUIniFm9FolXe5lmLYwlC MgOJscSo6Bo3mw= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jim Porter writes: Hi Jim, > Thanks for the pointers. I've attached a new version of the patch, > along with updated benchmark results. When abbreviating Tramp files, > not only is this version faster than my previous patch, it's also 2-4x > faster(!) than Emacs trunk. Thanks, it looks very promising. According to the benchmarks I'm not surprised, because you use Tramp caches. > I included a couple of related patches in this series, although I can > split them out if it would be easier. The first patch just reorders a > couple of Tramp tests that got added in the wrong order previously (I > only did this because I wanted to add my new test to the end, and > figured it would be simpler to fix the order first). Thanks. I've kept that patch on hold for a while. During my illness, it got applied, and so you did the dirty task to rearrange everything. I've pushed it in your name to the master branch. Thanks. > The second patch is the main patch and uses a file name handler as you > suggested. Hopefully I got everything right here; I'm not very > familiar with these parts of Tramp. The test I added passes for me, > though a bunch of the other Tramp tests fail for me (with or without > my patches). Thanks, as said it looks promising. More detailed comments below. For the other failing Tramp tests please report them. If you like as another Emacs bug, or directly to me :-) > Finally, since I already had them lying around, I added a few tests > for `abbreviate-file-name' for local files. They're pretty simple, but > should help catch any regressions in the future. Nice. I've pushed them to the emacs-28 branch in your name, merged also to the master branch. Maybe you could also add a test for quoted file names, i.e. a file name "/:/home/albinus/" should *not* be abbreviated. See files-tests-file-name-non-special-* tests in files-tests.el. > diff --git a/etc/NEWS b/etc/NEWS > index 78c848126a..07861ceee5 100644 > --- a/etc/NEWS > +++ b/etc/NEWS > @@ -361,6 +361,13 @@ the buffer will take you to that directory. > This is a convenience function to extract the field data from > 'exif-parse-file' and 'exif-parse-buffer'. > > +** Tramp > + > ++++ > +*** Tramp supports abbreviating remote home directories now. > +When calling 'abbreviate-file-name' on a Tramp filename, the result > +will abbreviate the home directory to "~". You made it under the Tramp heading. I believe there shall be a more general entry, that 'abbreviate-file-name' respects file name handlers now. The entry in the Tramp section can be kept, but in a more general sense. We don't abbreviate only to "~", but also to "~user", see below. > diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el > index 6292190940..1151cd2ae8 100644 > --- a/lisp/net/tramp-sh.el > +++ b/lisp/net/tramp-sh.el > > +(defun tramp-sh-handle-abbreviate-file-name (filename) > + "Like `abbreviate-file-name' for Tramp files." > + (let (home-dir) > + (with-parsed-tramp-file-name filename nil > + (setq home-dir (tramp-sh-handle-expand-file-name > + (tramp-make-tramp-file-name v "~")))) Tramp can more. If there are two remote users "jim" and "micha", then you have (expand-file-name "/ssh:jim@host:~/") => "/ssh:jim@host:/home/jim/" (expand-file-name "/ssh:jim@host:~micha/") => "/ssh:jim@host:/home/micha/" abbreviate-file-name is somehow the reverse function of expand-file-name. So it would be great, if we could have (abbreviate-file-name "/ssh:jim@host:/home/micha/") => "/ssh:jim@host:~micha/" Of course, we cannot check for any remote user's home directory. But we have the Tramp cache. expand-file-name adds connection properties for home directories, like ("~" . "/home/jim") and ("~micha" . "/home/micha") in the above examples. If somebody has already used "/ssh:jim@host:~micha/", and this is cached as ("~micha" . "/home/micha"), then abbreviate-file-name shall do such an abbreviation. WDYT? > + ;; If any elt of directory-abbrev-alist matches this name or the > + ;; home dir, abbreviate accordingly. > + (dolist (dir-abbrev directory-abbrev-alist) > + (when (string-match (car dir-abbrev) filename) > + (setq filename > + (concat (cdr dir-abbrev) > + (substring filename (match-end 0))))) > + (when (string-match (car dir-abbrev) home-dir) > + (setq home-dir > + (concat (cdr dir-abbrev) > + (substring home-dir (match-end 0)))))) Well, this is copied code from abbreviate-file-name. Usually I try to avoid such code duplication, it's hard to maintain when it changes in the first place . Instead, I call the original function via tramp-run-real-handler, and use the result for further changes. But abbreviate-file-name does much more than handling directory-abbrev-alist. Hmm. > diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el > index 3d6ce963ee..5eea00c41e 100644 > --- a/test/lisp/net/tramp-tests.el > +++ b/test/lisp/net/tramp-tests.el > +(ert-deftest tramp-test46-abbreviate-file-name () I prefer to keep things together. So I would like to see tramp-testNN-abbreviate-file-name closed to tramp-test05-expand-file-name. Could we call the new function tramp-test07-abbreviate-file-name? I know it will be a lot of work to rename all the other test functions, and I herewith volunteer to do this dirty task. > + (let ((home-dir (expand-file-name "/mock:localhost:~"))) You hard-code the mock method. But this is available only if $REMOTE_TEMPORARY_FILE_DIRECTORY is not set; I'd prefer to run tramp-tests.el in many different environments. So please use something like (let ((home-dir (expand-file-name (concat (file-remote-p tramp-test-temporary-file-directory) "~"))))) Beside of these comments, I repeat myself: pretty good job! Thanks! Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 07 23:54:34 2021 Received: (at 51622) by debbugs.gnu.org; 8 Nov 2021 04:54:34 +0000 Received: from localhost ([127.0.0.1]:55629 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjwfy-0000rq-2h for submit@debbugs.gnu.org; Sun, 07 Nov 2021 23:54:34 -0500 Received: from mail-pf1-f172.google.com ([209.85.210.172]:45728) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjwfv-0000rc-Pj for 51622@debbugs.gnu.org; Sun, 07 Nov 2021 23:54:32 -0500 Received: by mail-pf1-f172.google.com with SMTP id x131so9645118pfc.12 for <51622@debbugs.gnu.org>; Sun, 07 Nov 2021 20:54:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=MII4t2qNHRNftjdwNYJ9BYwFQdqc3g3BAzvXrS6C25c=; b=J22hadfiSOXaqB2MIK70FnguZAFEiJoti4nytSstnNHYq4nxpUFyGAEH7X8KTIlvTY 1znUIeqgJrgvxg7Vw5obCe3paCVlvAhFyLkokPG9FCYIXTlMIZDC3dVnOEECGZhChL52 lfHsm+FEyWvxyYqEklkj40TDZFziq6btuQeDID1pzwecLf//a83TtovhN5qTu8QOEBM4 v0uoUbR1r+IIRuEbMJhF4J7EGdGdifpRF/HoRqe6Iwy4G94/po+BkxgQvO3e2c8qjfCb UIhZWnUhpQcG8ShyHZqC+muBkkZhW8RInaDUkPkbWh9pW+VFVvwMAHLmEBrKnL2giL9G CqRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=MII4t2qNHRNftjdwNYJ9BYwFQdqc3g3BAzvXrS6C25c=; b=kYri1y3LFRveyZmzLVrnDyt7cvaD4r2oEHM6BYH7vHWT0WhsvGuk1kCr2Sirg0GYaK 4pJtcfgcuN1oknOO6B8suz6UVtV4P6K0UQdx4k9BpNcAcWyFvyoHLvVHeOiiq4scI9rU onTX1NxkmOzdJy5pAoXb/pWU8VLckP7prwjS32cY03FDqKUTpdJxUeh9JX2oJZPAzPCw 1AYhjc7WnXmx56WqMt1yuC/xWSrnrZI+TzKq6TKErhN+BCk3Vc1tcS1dcdi7ffPwA06B JUWOZq6iwywPdmLMl5VguYpM2DlaipBgpRtUkqHUA2/iTQHsKCWv9CX2Ygp5s5Vio/Gi 2AXQ== X-Gm-Message-State: AOAM53115yy1nhlcmc3S05IA8EUGR/m11qjRBjyk4sNUiOQSTfgpPwvZ e/mVo8xscsQwSc8cgs1o0M/+iTTHmi4= X-Google-Smtp-Source: ABdhPJwNF8/03pCqViBDrnIKixbTA3ZuP2qGL+EK4nHlENYuc+lEvLhkC9nA/Zlj4TIdvISDCc2/kQ== X-Received: by 2002:a63:9348:: with SMTP id w8mr58959833pgm.325.1636347265760; Sun, 07 Nov 2021 20:54:25 -0800 (PST) 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 na15sm16171025pjb.31.2021.11.07.20.54.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 07 Nov 2021 20:54:25 -0800 (PST) Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> From: Jim Porter Message-ID: Date: Sun, 7 Nov 2021 20:54:25 -0800 MIME-Version: 1.0 In-Reply-To: <87sfw7u7zw.fsf@gmx.de> Content-Type: multipart/mixed; boundary="------------B36EBEDB0154B043363706E1" Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------B36EBEDB0154B043363706E1 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/7/2021 10:37 AM, Michael Albinus wrote: > Jim Porter writes: > >> Thanks for the pointers. I've attached a new version of the patch, >> along with updated benchmark results. When abbreviating Tramp files, >> not only is this version faster than my previous patch, it's also 2-4x >> faster(!) than Emacs trunk. > > Thanks, it looks very promising. According to the benchmarks I'm not > surprised, because you use Tramp caches. Hmm, actually it turns out that my patch was only this fast because I forgot to check whether the host has case-sensitive file names or not. Adding that check back in slows things down again. How I update my previous patch will depend on whether we can make `file-name-case-insensitive-p' fast for Tramp files, so I'll just focus on this part for now and then follow up on the other parts of your message after we've decided on what to do here. Currently on case-sensitive hosts, `tramp-handle-file-name-case-insensitive-p' performs its checks on the connection every time this function is called. The beginning of tramp.el says the following: * `tramp-case-insensitive' Whether the remote file system handles file names case insensitive. Only a non-nil value counts, the default value nil means to perform further checks on the remote host. See `tramp-connection-properties' for a way to overwrite this. I interpret this to mean that Tramp *intentionally* performs checks on the host every time if the result is nil. Is there a reason this is necessary? Are there any systems out there where the check would return nil, but it's still case-insensitive in some cases? Even if there are, I imagine that *most* of the time, this check is reliable, and it would be nice if we could cache the result for case-sensitive hosts. I've attached the beginnings of a patch to do this. What do you think? If the general idea makes sense, I'll finish it up and file a separate bug to track it. If Tramp needs to perform the checks every time for some remote hosts, maybe the user could set `tramp-case-insensitive' to `never-cache' for those connections? > Thanks. I've kept that patch on hold for a while. During my illness, it > got applied, and so you did the dirty task to rearrange everything. I've > pushed it in your name to the master branch. Thanks. I hope your health is doing better now. Thanks again for taking a look at this patch (and merging the two smaller ones). --------------B36EBEDB0154B043363706E1 Content-Type: text/plain; charset=UTF-8; name="tramp-cache-case-sensitive.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tramp-cache-case-sensitive.patch" ZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLmVsIGIvbGlzcC9uZXQvdHJhbXAuZWwKaW5k ZXggNzQwY2IyM2ViZS4uOTM5M2NmZTU4OSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAu ZWwKKysrIGIvbGlzcC9uZXQvdHJhbXAuZWwKQEAgLTE0NjksMjEgKzE0NjksMjIgQEAgdHJh bXAtZmlsZS1uYW1lLWVxdWFsLXAKICAgICAgICAoZXF1YWwgKHRyYW1wLWZpbGUtbmFtZS11 bmlmeSB2ZWMxKQogCSAgICAgICh0cmFtcC1maWxlLW5hbWUtdW5pZnkgdmVjMikpKSkKIAot KGRlZnVuIHRyYW1wLWdldC1tZXRob2QtcGFyYW1ldGVyICh2ZWMgcGFyYW0pCisoZGVmdW4g dHJhbXAtZ2V0LW1ldGhvZC1wYXJhbWV0ZXIgKHZlYyBwYXJhbSAmb3B0aW9uYWwgZGVmYXVs dCkKICAgIlJldHVybiB0aGUgbWV0aG9kIHBhcmFtZXRlciBQQVJBTS4KIElmIFZFQyBpcyBh IHZlY3RvciwgY2hlY2sgZmlyc3QgaW4gY29ubmVjdGlvbiBwcm9wZXJ0aWVzLgogQWZ0ZXJ3 YXJkcywgY2hlY2sgaW4gYHRyYW1wLW1ldGhvZHMnLiAgSWYgdGhlIGB0cmFtcC1tZXRob2Rz JwotZW50cnkgZG9lcyBub3QgZXhpc3QsIHJldHVybiBuaWwuIgorZW50cnkgZG9lcyBub3Qg ZXhpc3QsIHJldHVybiBERUZBVUxULiIKICAgKGxldCAoKGhhc2gtZW50cnkKIAkgKHJlcGxh Y2UtcmVnZXhwLWluLXN0cmluZyAiXnRyYW1wLSIgIiIgKHN5bWJvbC1uYW1lIHBhcmFtKSkp KQogICAgIChpZiAodHJhbXAtY29ubmVjdGlvbi1wcm9wZXJ0eS1wIHZlYyBoYXNoLWVudHJ5 KQogCTs7IFdlIHVzZSB0aGUgY2FjaGVkIHByb3BlcnR5LgotCSh0cmFtcC1nZXQtY29ubmVj dGlvbi1wcm9wZXJ0eSB2ZWMgaGFzaC1lbnRyeSBuaWwpCisJKHRyYW1wLWdldC1jb25uZWN0 aW9uLXByb3BlcnR5IHZlYyBoYXNoLWVudHJ5IGRlZmF1bHQpCiAgICAgICA7OyBVc2UgdGhl IHN0YXRpYyB2YWx1ZSBmcm9tIGB0cmFtcC1tZXRob2RzJy4KLSAgICAgICh3aGVuLWxldCAo KG1ldGhvZHMtZW50cnkKLQkJICAoYXNzb2MKLQkJICAgcGFyYW0gKGFzc29jICh0cmFtcC1m aWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtbWV0aG9kcykpKSkKLQkoY2FkciBtZXRob2Rz LWVudHJ5KSkpKSkKKyAgICAgIChpZi1sZXQgKChtZXRob2RzLWVudHJ5CisJCShhc3NvYwor CQkgcGFyYW0gKGFzc29jICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtbWV0 aG9kcykpKSkKKwkgIChjYWRyIG1ldGhvZHMtZW50cnkpCisgICAgICAgIGRlZmF1bHQpKSkp CiAKIDs7IFRoZSBsb2NhbG5hbWUgY2FuIGJlIHF1b3RlZCB3aXRoICIvOiIuICBFeHRyYWN0 IHRoaXMuCiAoZGVmdW4gdHJhbXAtZmlsZS1uYW1lLXVucXVvdGUtbG9jYWxuYW1lICh2ZWMp CkBAIC0zNDgyLDUxICszNDgzLDU3IEBAIHRyYW1wLWhhbmRsZS1maWxlLW5hbWUtY2FzZS1p bnNlbnNpdGl2ZS1wCiAgIDs7IHRlc3RzIHdpbGwgYmUgYWRkZWQgaW4gY2FzZSB0aGV5IGFy ZSBuZWVkZWQuCiAgIChzZXRxIGZpbGVuYW1lIChleHBhbmQtZmlsZS1uYW1lIGZpbGVuYW1l KSkKICAgKHdpdGgtcGFyc2VkLXRyYW1wLWZpbGUtbmFtZSBmaWxlbmFtZSBuaWwKLSAgICAo b3IgOzsgTWF5YmUgdGhlcmUgaXMgYSBkZWZhdWx0IHZhbHVlLgotICAgICAodHJhbXAtZ2V0 LW1ldGhvZC1wYXJhbWV0ZXIgdiAndHJhbXAtY2FzZS1pbnNlbnNpdGl2ZSkKLQotICAgICA7 OyBUaGVyZSBpc24ndC4gIFNvIHdlIG11c3QgY2hlY2ssIGluIGNhc2UgdGhlcmUncyBhIGNv bm5lY3Rpb24gYWxyZWFkeS4KLSAgICAgKGFuZCAoZmlsZS1yZW1vdGUtcCBmaWxlbmFtZSBu aWwgJ2Nvbm5lY3RlZCkKLSAgICAgICAgICAod2l0aC10cmFtcC1jb25uZWN0aW9uLXByb3Bl cnR5IHYgImNhc2UtaW5zZW5zaXRpdmUiCi0JICAgIChpZ25vcmUtZXJyb3JzCi0JICAgICAg KHdpdGgtdHJhbXAtcHJvZ3Jlc3MtcmVwb3J0ZXIgdiA1ICJDaGVja2luZyBjYXNlLWluc2Vu c2l0aXZlIgotCQk7OyBUaGUgaWRlYSBpcyB0byBjb21wYXJlIGEgZmlsZSB3aXRoIGxvd2Vy IGNhc2UKLQkJOzsgbGV0dGVycyB3aXRoIHRoZSBzYW1lIGZpbGUgd2l0aCB1cHBlciBjYXNl IGxldHRlcnMuCi0JCShsZXQgKChjYW5kaWRhdGUKLQkJICAgICAgICh0cmFtcC1jb21wYXQt ZmlsZS1uYW1lLXVucXVvdGUKLQkJCShkaXJlY3RvcnktZmlsZS1uYW1lIGZpbGVuYW1lKSkp Ci0JCSAgICAgIGNhc2UtZm9sZC1zZWFyY2gKLQkJICAgICAgdG1wZmlsZSkKLQkJICA7OyBD aGVjaywgd2hldGhlciB3ZSBmaW5kIGFuIGV4aXN0aW5nIGZpbGUgd2l0aAotCQkgIDs7IGxv d2VyIGNhc2UgbGV0dGVycy4gIFRoaXMgYXZvaWRzIHVzIHRvIGNyZWF0ZSBhCi0JCSAgOzsg dGVtcG9yYXJ5IGZpbGUuCi0JCSAgKHdoaWxlIChhbmQgKHN0cmluZy1tYXRjaC1wCi0JCQkg ICAgICAgIltbOmxvd2VyOl1dIiAodHJhbXAtZmlsZS1sb2NhbC1uYW1lIGNhbmRpZGF0ZSkp Ci0JCQkgICAgICAobm90IChmaWxlLWV4aXN0cy1wIGNhbmRpZGF0ZSkpKQotCQkgICAgKHNl dHEgY2FuZGlkYXRlCi0JCQkgIChkaXJlY3RvcnktZmlsZS1uYW1lCi0JCQkgICAoZmlsZS1u YW1lLWRpcmVjdG9yeSBjYW5kaWRhdGUpKSkpCi0JCSAgOzsgTm90aGluZyBmb3VuZCwgc28g d2UgbXVzdCB1c2UgYSB0ZW1wb3JhcnkgZmlsZQotCQkgIDs7IGZvciBjb21wYXJpc29uLiAg YG1ha2UtbmVhcmJ5LXRlbXAtZmlsZScgaXMgYWRkZWQKLQkJICA7OyB0byBFbWFjcyAyNisg bGlrZSBgZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcCcsCi0JCSAgOzsgc28gdGhlcmUg aXMgbm8gY29tcGF0aWJpbGl0eSBwcm9ibGVtIGNhbGxpbmcgaXQuCi0JCSAgKHVubGVzcyAo c3RyaW5nLW1hdGNoLXAKLQkJCSAgICJbWzpsb3dlcjpdXSIgKHRyYW1wLWZpbGUtbG9jYWwt bmFtZSBjYW5kaWRhdGUpKQotCQkgICAgKHNldHEgdG1wZmlsZQotCQkJICAobGV0ICgoZGVm YXVsdC1kaXJlY3RvcnkKLQkJCQkgIChmaWxlLW5hbWUtZGlyZWN0b3J5IGZpbGVuYW1lKSkp Ci0JCQkgICAgKHRyYW1wLWNvbXBhdC1mdW5jYWxsCi0JCQkgICAgICdtYWtlLW5lYXJieS10 ZW1wLWZpbGUgInRyYW1wLiIpKQotCQkJICBjYW5kaWRhdGUgdG1wZmlsZSkpCi0JCSAgOzsg Q2hlY2sgZm9yIHRoZSBleGlzdGVuY2Ugb2YgdGhlIHNhbWUgZmlsZSB3aXRoCi0JCSAgOzsg dXBwZXIgY2FzZSBsZXR0ZXJzLgotCQkgICh1bndpbmQtcHJvdGVjdAotCQkgICAgICAoZmls ZS1leGlzdHMtcAotCQkgICAgICAgKGNvbmNhdAotCQkJKGZpbGUtcmVtb3RlLXAgY2FuZGlk YXRlKQotCQkJKHVwY2FzZSAodHJhbXAtZmlsZS1sb2NhbC1uYW1lIGNhbmRpZGF0ZSkpKSkK LQkJICAgIDs7IENsZWFudXAuCi0JCSAgICAod2hlbiB0bXBmaWxlIChkZWxldGUtZmlsZSB0 bXBmaWxlKSkpKSkpKSkpKSkKKyAgICAobGV0ICgoY2FzZS1pbnNlbnNpdGl2ZQorCSAgICh0 cmFtcC1nZXQtbWV0aG9kLXBhcmFtZXRlciB2ICd0cmFtcC1jYXNlLWluc2Vuc2l0aXZlICd1 bnNldCkpKQorICAgICAgKGlmIChub3QgKGVxIGNhc2UtaW5zZW5zaXRpdmUgJ3Vuc2V0KSkK KwkgIDs7IE1heWJlIHRoZXJlIGlzIGEgZGVmYXVsdCB2YWx1ZS4KKwkgIGNhc2UtaW5zZW5z aXRpdmUKKwk7OyBUaGVyZSBpc24ndC4gIFNvIHdlIG11c3QgY2hlY2ssIGluIGNhc2UgdGhl cmUncyBhCisJOzsgY29ubmVjdGlvbiBhbHJlYWR5LgorCShhbmQgKGZpbGUtcmVtb3RlLXAg ZmlsZW5hbWUgbmlsICdjb25uZWN0ZWQpCisJICAgICAod2l0aC10cmFtcC1jb25uZWN0aW9u LXByb3BlcnR5IHYgImNhc2UtaW5zZW5zaXRpdmUiCisJICAgICAgIChpZ25vcmUtZXJyb3Jz CisJCSAod2l0aC10cmFtcC1wcm9ncmVzcy1yZXBvcnRlciB2IDUgIkNoZWNraW5nIGNhc2Ut aW5zZW5zaXRpdmUiCisJCSAgIDs7IFRoZSBpZGVhIGlzIHRvIGNvbXBhcmUgYSBmaWxlIHdp dGggbG93ZXIgY2FzZQorCQkgICA7OyBsZXR0ZXJzIHdpdGggdGhlIHNhbWUgZmlsZSB3aXRo IHVwcGVyIGNhc2UKKwkJICAgOzsgbGV0dGVycy4KKwkJICAgKGxldCAoKGNhbmRpZGF0ZQor CQkJICAodHJhbXAtY29tcGF0LWZpbGUtbmFtZS11bnF1b3RlCisJCQkgICAoZGlyZWN0b3J5 LWZpbGUtbmFtZSBmaWxlbmFtZSkpKQorCQkJIGNhc2UtZm9sZC1zZWFyY2gKKwkJCSB0bXBm aWxlKQorCQkgICAgIDs7IENoZWNrLCB3aGV0aGVyIHdlIGZpbmQgYW4gZXhpc3RpbmcgZmls ZSB3aXRoCisJCSAgICAgOzsgbG93ZXIgY2FzZSBsZXR0ZXJzLiAgVGhpcyBhdm9pZHMgdXMg dG8gY3JlYXRlCisJCSAgICAgOzsgYSB0ZW1wb3JhcnkgZmlsZS4KKwkJICAgICAod2hpbGUg KGFuZCAoc3RyaW5nLW1hdGNoLXAKKwkJCQkgICJbWzpsb3dlcjpdXSIKKwkJCQkgICh0cmFt cC1maWxlLWxvY2FsLW5hbWUgY2FuZGlkYXRlKSkKKwkJCQkgKG5vdCAoZmlsZS1leGlzdHMt cCBjYW5kaWRhdGUpKSkKKwkJICAgICAgIChzZXRxIGNhbmRpZGF0ZQorCQkJICAgICAoZGly ZWN0b3J5LWZpbGUtbmFtZQorCQkJICAgICAgKGZpbGUtbmFtZS1kaXJlY3RvcnkgY2FuZGlk YXRlKSkpKQorCQkgICAgIDs7IE5vdGhpbmcgZm91bmQsIHNvIHdlIG11c3QgdXNlIGEgdGVt cG9yYXJ5IGZpbGUKKwkJICAgICA7OyBmb3IgY29tcGFyaXNvbi4gIGBtYWtlLW5lYXJieS10 ZW1wLWZpbGUnIGlzCisJCSAgICAgOzsgYWRkZWQgdG8gRW1hY3MgMjYrIGxpa2UKKwkJICAg ICA7OyBgZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcCcsIHNvIHRoZXJlIGlzIG5vCisJ CSAgICAgOzsgY29tcGF0aWJpbGl0eSBwcm9ibGVtIGNhbGxpbmcgaXQuCisJCSAgICAgKHVu bGVzcyAoc3RyaW5nLW1hdGNoLXAKKwkJCSAgICAgICJbWzpsb3dlcjpdXSIgKHRyYW1wLWZp bGUtbG9jYWwtbmFtZSBjYW5kaWRhdGUpKQorCQkgICAgICAgKHNldHEgdG1wZmlsZQorCQkJ ICAgICAobGV0ICgoZGVmYXVsdC1kaXJlY3RvcnkKKwkJCQkgICAgIChmaWxlLW5hbWUtZGly ZWN0b3J5IGZpbGVuYW1lKSkpCisJCQkgICAgICAgKHRyYW1wLWNvbXBhdC1mdW5jYWxsCisJ CQkJJ21ha2UtbmVhcmJ5LXRlbXAtZmlsZSAidHJhbXAuIikpCisJCQkgICAgIGNhbmRpZGF0 ZSB0bXBmaWxlKSkKKwkJICAgICA7OyBDaGVjayBmb3IgdGhlIGV4aXN0ZW5jZSBvZiB0aGUg c2FtZSBmaWxlIHdpdGgKKwkJICAgICA7OyB1cHBlciBjYXNlIGxldHRlcnMuCisJCSAgICAg KHVud2luZC1wcm90ZWN0CisJCQkgKGZpbGUtZXhpc3RzLXAKKwkJCSAgKGNvbmNhdAorCQkJ ICAgKGZpbGUtcmVtb3RlLXAgY2FuZGlkYXRlKQorCQkJICAgKHVwY2FzZSAodHJhbXAtZmls ZS1sb2NhbC1uYW1lIGNhbmRpZGF0ZSkpKSkKKwkJICAgICAgIDs7IENsZWFudXAuCisJCSAg ICAgICAod2hlbiB0bXBmaWxlIChkZWxldGUtZmlsZSB0bXBmaWxlKSkpKSkpKSkpKSkpCiAK IChkZWZ1biB0cmFtcC1oYW5kbGUtZmlsZS1uYW1lLWNvbXBsZXRpb24KICAgKGZpbGVuYW1l IGRpcmVjdG9yeSAmb3B0aW9uYWwgcHJlZGljYXRlKQo= --------------B36EBEDB0154B043363706E1-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 10:58:22 2021 Received: (at 51622) by debbugs.gnu.org; 8 Nov 2021 15:58:22 +0000 Received: from localhost ([127.0.0.1]:59173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mk72M-0007xX-8n for submit@debbugs.gnu.org; Mon, 08 Nov 2021 10:58:22 -0500 Received: from mout.gmx.net ([212.227.15.19]:33793) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mk72J-0007xG-NK for 51622@debbugs.gnu.org; Mon, 08 Nov 2021 10:58:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636387093; bh=fQTn1xrTb2nDRZwpofhV7w4Ls037KQ5TVIwuM/EDyJY=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=Ava/+piE2OK+303UzraU1nMIAcW4XSLE1yQo6DxZw6n7wS4Zi23PK/QoYD5oAixpG A17E3N6Hvr6gfKZZxZJdTyAbk399AqApgg9IFtektEpPyKcY6wEgO+MwLYFzH3MOk7 euoEL10ccgauaZn4Y593rTAPPOGhkBQrq8DZtfRY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([213.220.158.222]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mk0Ne-1mHg7A3d8q-00kStb; Mon, 08 Nov 2021 16:58:13 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> Date: Mon, 08 Nov 2021 16:58:11 +0100 In-Reply-To: (Jim Porter's message of "Sun, 7 Nov 2021 20:54:25 -0800") Message-ID: <87v912od0s.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:dSPJaSmJESkI8tHFJFGuH7+ISBDZ7FoM0+jc/u85jQ2sTolPB7a eThVwAbxEikodDx4TszCWemVMpe7fyKDjzxJVzAfw+WvKv1/Rccnsovv4uIz9ZzXo2A7jJQ rVLgLE8R9F1K/y1l6g33ubA0GrWW4hkIeFvN8vWQDsNBac1Yo6B1uYdGzXtAespCI2WvFYW bEIpX8BWttpOW9EGN3fWg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:fd0nnhP48ms=:aauTVG5fN65PKd90fhyWFX fPBsMeDlGSGGy5JKXSz/AONrv7CELHU2rJNLum2FZj3/AqwUTf63Ou4FYpTmy7Lo65KM2k/PK hvyMTAxmbnUhRjd8L+gLAB8sIDa2Zm/yx03W2wB+/KEwJURuTWJ31IZb1BbAquo+SocHWW9ob hJ0QGSN392ZWuFXU2TZIH/AwysP7AanZb97Jt20EvpxsAuEpcZ7yHIH+UL++pMWBtqAUn96s+ jpxGdqL4DuI6PrFtpBUjSbkKwa3aTxZLbow8VSCevkRKmCMyaeB+7FHa8gQWrigOWFrlPOGLY jXH0iSSgRE40Ch1G+XdrtcasLKTvqsPoTSDFnhirkgFVqEeaQFaqORPZCobf06v9QTdfL1qZm 489i5roSRsBw2md4gNwsVQcQF3IbAqnxfnEtBU/QK7GIp4OeXEOO1HgvNNaj0UnC8NibHYLUq obHIZOHb1K/4XnRneAkwFUuxXJsPXuf4PFIHK1G4FeAJKvwUId0wOgMqYNAfHnAwxD/05DLgY 9NtsqdnHCxxe6tO6TSDB4TyqmYdHoIW32ak9nGQqon5seoEN6K87bia0h+cjfsb/8qIomf0Ll 4jBScVhJGUKKSe4rAU9/EY5I/YbACnYzsxiYPpM0jI+4q29rg3Mh95lLPEeAfniJolgJ9EvZh m7e/OCktEOEeq3c9C0MZy4u0BXBQ/0t6BtXqD9ynHN+PsyG4a/T4ms3BF6nBa7n2TS5EX6kNp 8DGPZnteTdC3PnbiUUFLQ3Fy8boUzoh57+HPpg2ewawLiiQfaFEe1MjZt1nXLYRGehJdjemuV sOq+nLXbWh+Xkhs3fMYp66A8MUczxxTtGE16pOfjwLXZ4NQP9qVXDUMGmaFx3PTPCs6uMDiAw LzNPw4syrR/7NGgiQAifkeYqZS/KGxFTMCp19k5SrgRE7YEVR9eawxnGf6RgiFIeaSsPNZIvx 9/+AOMNpHIaVpyFJzYLFbYZ15mbof1rYzKd+zqljHEzE2kr4he8PZUd5jbAwgXhGnQtPdtUvp G1IkzwPgpHZfB3fKSodc0S6Onxn713yTR58Kn/JS7aVwYX0t9egmM7hfJl6ksOyp5t+6kL7db BpGkXh3/3bzMMk= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jim Porter writes: Hi Jim, > Hmm, actually it turns out that my patch was only this fast because I > forgot to check whether the host has case-sensitive file names or > not. Adding that check back in slows things down again. How I update > my previous patch will depend on whether we can make > `file-name-case-insensitive-p' fast for Tramp files, so I'll just > focus on this part for now and then follow up on the other parts of > your message after we've decided on what to do here. > > Currently on case-sensitive hosts, > `tramp-handle-file-name-case-insensitive-p' performs its checks on the > connection every time this function is called. The beginning of > tramp.el says the following: > > * `tramp-case-insensitive' > Whether the remote file system handles file names case insensitive. > Only a non-nil value counts, the default value nil means to > perform further checks on the remote host. See > `tramp-connection-properties' for a way to overwrite this. > > I interpret this to mean that Tramp *intentionally* performs checks on > the host every time if the result is nil. No. It just means, that the value of `tramp-case-insensitive' in `tramp-methods' is used only if it is non-nil. BUT there is also a check for a connection property "case-insensitive", and that value is used if it exists, be it nil or non-nil. Therefore, the whole check in `tramp-handle-file-name-case-insensitive-p' is applied only once, and afterwards the cached connection property is used. See the saved connection properties in file ~/.emacs.d/tramp. > Is there a reason this is necessary? The data in `tramp-methods' are static. By default, only non-nil values are relevant, and we shouldn't change this w/o any need, since we have connection properties for dynamic data. > Are there any systems out there where the check would return nil, but > it's still case-insensitive in some cases? Even if there are, I > imagine that *most* of the time, this check is reliable, and it would > be nice if we could cache the result for case-sensitive hosts. See the comment in `tramp-handle-file-name-case-insensitive-p': --8<---------------cut here---------------start------------->8--- ;; We make it a connection property, assuming that all file systems ;; on the remote host behave similar. This might be wrong for ;; mounted NFS directories or SMB/AFP shares; such more granular ;; tests will be added in case they are needed. --8<---------------cut here---------------end--------------->8--- So we cache the result, even if it might be problematic. But honestly, I haven't seen reports yet about such a problem. > I've attached the beginnings of a patch to do this. What do you think? > If the general idea makes sense, I'll finish it up and file a separate > bug to track it. If Tramp needs to perform the checks every time for > some remote hosts, maybe the user could set `tramp-case-insensitive' > to `never-cache' for those connections? Before we start such changes, we should understand your case. Why is it computed every time? Why isn't the cached value used? Can you debug? The cache for "case-insensitive" is read by --8<---------------cut here---------------start------------->8--- (with-tramp-connection-property v "case-insensitive" ... --8<---------------cut here---------------end--------------->8--- If there isn't a cached value, this macro evaluates its body, and sets the cache. You might set tramp-verbose to 7, and follow entries in the debug buffer like --8<---------------cut here---------------start------------->8--- 16:26:43.718831 tramp-get-connection-property (7) # case-insensitive undef; cache used: nil 16:26:43.729457 tramp-set-connection-property (7) # case-insensitive nil 16:26:43.734749 tramp-get-connection-property (7) # case-insensitive nil; cache used: t --8<---------------cut here---------------end--------------->8--- > I hope your health is doing better now. It will be up and down, as it happens for years. You will see me to disappear for some days in the future, from time to time. That's (my) life. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 13:33:02 2021 Received: (at 51622) by debbugs.gnu.org; 8 Nov 2021 18:33:02 +0000 Received: from localhost ([127.0.0.1]:59454 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mk9S2-000202-CV for submit@debbugs.gnu.org; Mon, 08 Nov 2021 13:33:02 -0500 Received: from mail-pg1-f173.google.com ([209.85.215.173]:38783) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mk9S0-0001zX-M2 for 51622@debbugs.gnu.org; Mon, 08 Nov 2021 13:33:01 -0500 Received: by mail-pg1-f173.google.com with SMTP id e65so15919834pgc.5 for <51622@debbugs.gnu.org>; Mon, 08 Nov 2021 10:33:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=gUVDU2G6yM9JabGroVlc9eix1bJviJVn6fbXF4jHrPE=; b=oL62e9Gnifds76x6Sg+3rGhdJCrhWlXkVlTF3VDJn3eCzIL7UHyQyB4ye7wWFYxNF0 bFnuzS5zx59HmdEYuhNwffh63TeSND5y52NztZeghgz1psIoUFb9zCgfd5WbhHLzd8vm uii0bakBnuqoX5lvE3cbXjFPULMQtJzEK1zrLMzsLS6KhBmjE4vpY8nbeIMhO/GSLTK2 Pkar2bCNqdkIeQGqW92Ql2a1BUcEp/LMk8Q4z1l9mVXfllnq27UxX+qpP4uiOrYhDyfN FgyPoKuhcnAej/4ZmwPHaAAJe/w2kpsrlNtIgvG1lMt4HvEvCOWobcnpKqm11rc9NVtv WK9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=gUVDU2G6yM9JabGroVlc9eix1bJviJVn6fbXF4jHrPE=; b=4uDBVMNEkZIlS+BIcX+K7xnniHLoDNMPMz2j96yNVdBnBaF97TQF5gx1t83P+xbjBD J3FkwauFpRtOggUkjMIyYM1bYXtjonRGq14WTjR7w0xa/6xpOT59WfpC+oHjcgp+Wadz b4/n/aiP6w1VC3/VFLHeUYHExWP6+L6gYg6KhednSIGGjDQpuEMI1zJw90DMPeaY+QIZ yqw7ZD4ICDYBZU6za9ncL9dabt3jdCKoQuliRC7eWfstCC42EoknwvXLjkBRl/G07VCQ Py3Gtm9I477Zbhvr24E/KugONBYDXmHxrcEIDOkVOyhoZ16FEAIc4Tcq6EO8P9kWGzi3 nfeA== X-Gm-Message-State: AOAM533dlnYTgzTzVtnGJC5j3ZbCrxLFnPbGD1lAWcTwTiLR8/m+4SfJ dRTtYPRQpcQhYaySko7lSiapYPqW1NQ= X-Google-Smtp-Source: ABdhPJxg5BBR8rt4b2Tz6IwIEneEOYBjPyY9jgvwd4+km89NPoO5spEUC9Ig3ijQPs298LhXmGPwHQ== X-Received: by 2002:a05:6a00:23c4:b0:49f:e054:84cb with SMTP id g4-20020a056a0023c400b0049fe05484cbmr1348615pfc.63.1636396374691; Mon, 08 Nov 2021 10:32:54 -0800 (PST) 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 32sm7793697pgn.31.2021.11.08.10.32.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Nov 2021 10:32:54 -0800 (PST) Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <87v912od0s.fsf@gmx.de> From: Jim Porter Message-ID: <493647c2-74af-52fc-d55e-42280e893694@gmail.com> Date: Mon, 8 Nov 2021 10:32:53 -0800 MIME-Version: 1.0 In-Reply-To: <87v912od0s.fsf@gmx.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/8/2021 7:58 AM, Michael Albinus wrote: > Jim Porter writes: > >> I've attached the beginnings of a patch to do this. What do you think? >> If the general idea makes sense, I'll finish it up and file a separate >> bug to track it. If Tramp needs to perform the checks every time for >> some remote hosts, maybe the user could set `tramp-case-insensitive' >> to `never-cache' for those connections? > > Before we start such changes, we should understand your case. Why is it > computed every time? Why isn't the cached value used? Thanks for the explanation above. It turns out I was just mistaken about what's happening. The check on the remote host *is* performed only once. Sorry for the confusion. If I profile `tramp-handle-file-name-case-insensitive-p' on Emacs 29 master, I see that 52% of the time is spent in `file-remote-p' (and a further 30% in `expand-file-name'). This is where the difference in performance comes from; I don't think my patch helps with that, but when testing, I eliminated the `file-remote-p' call (and the remote check) and saw performance improve. I just got mixed up about what the issue was. If the calls to `file-remote-p' and `expand-file-name' could be optimized or replaced, that would make this function a lot faster. I'll take a look at this and see what I can do to improve things. If you have any suggestions though, I'm happy to hear about them. (The main reason I'm digging into this right now is that you mentioned it would be nice if we didn't have to copy-and-paste so much code from `abbreviate-file-name'. I'm looking into making a new function called something like `directory-abbrev-apply', which *only* does the `directory-abbrev-alist' replacements so that Tramp can call this. However, to make it easier to use correctly, I wanted to make sure `case-fold-search' was set based on `file-name-case-insensitive-p'. I only want to do that though if I can make that function fast enough that it doesn't show up near the top of a performance profile. Otherwise, I'll just try to keep the number of calls to `file-name-case-insensitive-p' to the bare minimum.) From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 14:18:57 2021 Received: (at 51622) by debbugs.gnu.org; 8 Nov 2021 19:18:57 +0000 Received: from localhost ([127.0.0.1]:59516 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkAAS-0003Cg-Te for submit@debbugs.gnu.org; Mon, 08 Nov 2021 14:18:57 -0500 Received: from mout.gmx.net ([212.227.17.22]:44591) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkAAP-0003CN-LZ for 51622@debbugs.gnu.org; Mon, 08 Nov 2021 14:18:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636399126; bh=W4eh2l96Zz54CaKH1ituymRu4F+SDIRnW1e9Vsxazdc=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=YzDceEUUkD9/Rb27fdvmBdiqgPxOhZu3GGQ06XbgfZl44+2n45GCaWGGosR2qGbhZ 7yL/4NE5Su9Jlrw24UXgf4/WDxFRwAkMa0TIFs8fP0EACPajdVVPrmnJSnaO5IgwVL WoLdSm1BttT/1udcTWtnN5BR9vI6fUKon+DznDL8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([213.220.158.222]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MeCpb-1mCUAj2KcJ-00bLQn; Mon, 08 Nov 2021 20:18:46 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <87v912od0s.fsf@gmx.de> <493647c2-74af-52fc-d55e-42280e893694@gmail.com> Date: Mon, 08 Nov 2021 20:18:45 +0100 In-Reply-To: <493647c2-74af-52fc-d55e-42280e893694@gmail.com> (Jim Porter's message of "Mon, 8 Nov 2021 10:32:53 -0800") Message-ID: <87r1bqo3qi.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:xz9KTL+VWU7K/QO/qJUvpL5QmV4B8nkLUGc73e3+vGX3xsOhwWz xwciLjrPt7oMu4TuPXHCrcUmR26lDB8A5wezYpbyBcnaE0gecZDHabl0WDcMlFO0Nwr1YC+ TRS69hpPm5K/GTLMi18bMiTFv0dMQZ8t87o4gamZLo4fBkZIAPelKbiKaqEuGDaghayFV1q Kfi7gf0RUNzzwpWB/zNYw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:8MWHlvP95D4=:id8gST3/ftfxd23DSt1mhW eZ5174aDiBNZc+4f5bh60g6toq0hK6H/Llq02rKpTWThaSUDZQL/oMhtRvfMI2qnOunX5cBII d5zwpgr9mPMhBH0k+dchCFrPBrn4oXt2zg56JnCHAYW+mkwUyQiPUs7E95ltpX0s0o9KS0dxn G2fi0zHrCKgMuqqjcxZRypk4WvU65tsOuOaUmV7BrfLvp/rz4C/YJ8HOMxupt+Wc4eywEM0Mm aCzLqJ6KGYs/NQk0e0jaXFu9yWmEG+Edbx54CYQPlzf8nFalhK/MhwHLiVZI+hcxnWOCCEB2O ZgJea1upOGluKnhJIud82mIAG4VtcdP1sqHPcU+kXcW14qnpVAw6JPgFSVLKxPZ2ytyI12kHx MZTdBD7Pn7Vt8ayqZFYQ4BXAfCRQZANx+AKhOoiRulxCIO38rUGKKDQ7ireM2EoGlY/X93A3s hsm7H03hMbchNjGvMCMf96ba0dWVSBm3Pqp0eMEEdKHSaQqr8CxWCbkriqS9dpEBfPOdk3hMs O4J0wTVk6W8diBEKYNg+yJIyeYri3dmJ8ppoQBmx1InrgCuV3IaETokIGM7gdTvYDW1IV5Ty4 bjStU6PHiCc7qrfKoCqKydLLC7pyN/tx9ROraDokGFZfSzRnx68jPRvWGD41R1XIL0+N5kfpY ATwFrEJMv8mTcxk5//fsZfAsoryxUGYBCUQ5n1KY6kbvQyCENdzWJ6wJM4bJgIYb6W02R0gOM 7Dv+AkFaXSKVYdQGGwPI/pJPai7fQM0Fgk4XMq6DgXsKKZVioGL+C1KWq2AKNSWHJKqg1FOV9 IpfszSSCQY/Weq/4s28gFavToV5CiKm8gAQk8FAZvP1S8F4Py3LRV2/YLAv9MckwHgDjcxWuu SV2IjeyqMJ7LvJAR85I+8PVrrKvX+lnbTr8iuDLqGp/WCecrtak01iJ6pOWVbx+0m4BR3TTWE /xL6ZTMH2FDOtFS27lE6cAs/sos2YrYNRxulKUh7UNTTJB31zsbZUpDUblSXUfa16zn8/a0Xq WjZ4wJpWmjQX+x6CL4SA/QySz1WH6+fbweQ2o7Tli0RY7BH4MaEyJEayhEznB5FzV1GmrQQii QjcxEuVfzA8L6Q= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jim Porter writes: Hi Jim, > If I profile `tramp-handle-file-name-case-insensitive-p' on Emacs 29 > master, I see that 52% of the time is spent in `file-remote-p' (and a > further 30% in `expand-file-name'). This is where the difference in > performance comes from; I don't think my patch helps with that, but > when testing, I eliminated the `file-remote-p' call (and the remote > check) and saw performance improve. I just got mixed up about what the > issue was. > > If the calls to `file-remote-p' and `expand-file-name' could be > optimized or replaced, that would make this function a lot > faster. I'll take a look at this and see what I can do to improve > things. If you have any suggestions though, I'm happy to hear about > them. The check (file-remote-p filename nil 'connected) is applied to prevent unintended work. It returns non-nil when there is already a connection to the remote host. The intention is to avoid, that `tramp-handle-file-name-case-insensitive-p' opens a new connection just in order to see, whether the remote file system is case insensitive. This is not needed when there's no connection yet. Hmm, we could replace this check by something cheaper: is there already a connection process? --8<---------------cut here---------------start------------->8--- (and (let ((non-essential t)) (tramp-connectable-p filename)) ... --8<---------------cut here---------------end--------------->8--- The `non-essential' variable must be bound to non-nil; otherwise `tramp-connectable-p' would always return non-nil. Does this help? In case of, you might offer a patch, with a comment why we don't use (file-remote-p filename nil 'connected) . For the `expand-file-name' case I have no offer yet. But let's see how the timing changes with that change above. Btw, when you run benchmark checks, you shall set (or let-bind) `tramp-verbose' to 0. Writing debug data has a cost. > (The main reason I'm digging into this right now is that you mentioned > it would be nice if we didn't have to copy-and-paste so much code from > `abbreviate-file-name'. I'm looking into making a new function called > something like `directory-abbrev-apply', which *only* does the > `directory-abbrev-alist' replacements so that Tramp can call > this. Good idea, I was also thinking about. For backward compatibility we will keep a mirror of that function in tramp-compat.el, until we support only Emacs 29+. Isn't this a glory future? :-) Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 09 21:10:23 2021 Received: (at control) by debbugs.gnu.org; 10 Nov 2021 02:10:23 +0000 Received: from localhost ([127.0.0.1]:36431 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkd4B-0001mP-1h for submit@debbugs.gnu.org; Tue, 09 Nov 2021 21:10:23 -0500 Received: from mail-pj1-f48.google.com ([209.85.216.48]:45857) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkd47-0001lc-MC for control@debbugs.gnu.org; Tue, 09 Nov 2021 21:10:20 -0500 Received: by mail-pj1-f48.google.com with SMTP id gb13-20020a17090b060d00b001a674e2c4a8so289388pjb.4 for ; Tue, 09 Nov 2021 18:10:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=3JYwCn/6QBOkOqPvJaPg4nKcNy8CxUIhw+DdLctlSdw=; b=xo6Ne8Z/LBikELwlbh0KsW1oqzbkm3upMYpNTPDT+no14nRyfuu6OpWx7Y+n/zxeSE 3uYmXhdVZNcn8LSceYS9sn96A65VucEOOmKgXU2FZ0wYUQKJuxXxvE/XhCnEB88R7XMN tD0MJ+/lSG5FxZ9z7gef0h8TYCInSa6hkXKTScJI6+PsD1FNYRiiHjDjFJn8OhmSajVR h+oukP3QdEciOUuP/lCkBs/nJJaNRjTN0Gp6Yu4s3ncEy97gp0l7nahUsQsvMIrZG742 XaYRDuYy1w+EzyuhYIjx4Al3Mp3lCtpYPrmphONoWvlYA4ae3/RXyRnZ7LSAJlTQPsl5 2wYg== X-Gm-Message-State: AOAM5304GwicmSPb7Hx04ZR7dIkcGr/wxasFBXpABlaY+T84dY0LBUq3 H43wHFUeM65XrWquhv4yiqEwd3Pe4Q8vqpK1tsjf9BgI X-Google-Smtp-Source: ABdhPJw8rjcA0sF6Hzas3YDugiROrXPl2Oxv10b1UxZeJv/25FjlYtEOJ9O5JruD4yJ1mOt778+zuZD6MkiUatHlGHQ= X-Received: by 2002:a17:90a:4414:: with SMTP id s20mr12743212pjg.132.1636510214202; Tue, 09 Nov 2021 18:10:14 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Tue, 9 Nov 2021 18:10:13 -0800 From: Stefan Kangas MIME-Version: 1.0 Date: Tue, 9 Nov 2021 18:10:13 -0800 Message-ID: Subject: control message for bug #51622 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) severity 51622 wishlist quit From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 13 21:11:03 2021 Received: (at 51622) by debbugs.gnu.org; 14 Nov 2021 02:11:03 +0000 Received: from localhost ([127.0.0.1]:48648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mm4z0-0005CG-91 for submit@debbugs.gnu.org; Sat, 13 Nov 2021 21:11:03 -0500 Received: from mail-pj1-f49.google.com ([209.85.216.49]:51064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mm4yw-0005Bq-6p for 51622@debbugs.gnu.org; Sat, 13 Nov 2021 21:11:00 -0500 Received: by mail-pj1-f49.google.com with SMTP id x7so9804764pjn.0 for <51622@debbugs.gnu.org>; Sat, 13 Nov 2021 18:10:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=1TYUrrSAfHxfWRWFqH8pZkm295Sve84c5tAxVD7l5RM=; b=P0z7L1tZp8oMOO5wCBQ3/jEqIOOQhbJGdNuRgr0nuNh7oWxyLy9PuzQXxCVddax5Pd iZzGdKYPmOnHA34BetNeVDPBAErAfs0xwS8J1ytUKja1wevN9HpLRIY9hb4zoaJPvG17 QVrDwdHd75Uu9rJ+r1Uf7kjCYkTGiljzZjsqa1/mwMIdOFnmLf/AuqCKmDA6MbyLKwuP 48qlfAc0cl321Qw36GgUnkYcNay/AktbJVPq9GtgdpaeB22/5YY3d7OnzRtwsT5H0Cf4 OiN8WuKNIteyA76HKmgF47iEHpVVL1W0+NftRZXmS9/ESF+3nIhoff/VRLrLdELNKzYP 3LFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=1TYUrrSAfHxfWRWFqH8pZkm295Sve84c5tAxVD7l5RM=; b=nXe4YpHvQfdzYO/yNp+Ru+tSlFM/r7TiuSE8J7VDAKjXLMcoToKkXHHVlPjgjxMbax oeDd21h2Rb/HGhMPIJb4qcAyKjWEM67EaRdwwSJqp2dyOdmFPGooHP/la4slqoOc2+1e sxHTghhxk9UKg+yMIR5r4Aq+vBISDjgNabPhrOFqEFrrqbvVDGap5aZUkfyaOX48SiZd XvaUc91LguEfIc69Xay55DR8pGaxPMaq87nX57aT6wJ4zRusYFKyu/hC0IxEesCnQRrq Nsx97dmjr0jaOSYssN4Db+6HsPG1y2t4we/vNtDhQ2BeQLKqFNQD1h14SuwBU3WrcIlY eVQw== X-Gm-Message-State: AOAM531jmcunJAHYpM/UtzgbVWGHvJuzePkFIWy2hjZen6rWdjZA/0kh cT68uW5pyQBbdB1GBawxT6Dv1JEIvyI= X-Google-Smtp-Source: ABdhPJyRGLXuE5x19ixTGh7TJf+Q4ZMU+4YbVZ5n7Pqs9CzDD3gE2hm12XJC5Z0Tol0ECA4IFYk/GA== X-Received: by 2002:a17:903:32c2:b0:141:eed4:ec0a with SMTP id i2-20020a17090332c200b00141eed4ec0amr22338059plr.74.1636855852179; Sat, 13 Nov 2021 18:10:52 -0800 (PST) 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 f3sm10706133pfg.167.2021.11.13.18.10.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Nov 2021 18:10:51 -0800 (PST) Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> From: Jim Porter Message-ID: <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> Date: Sat, 13 Nov 2021 18:10:50 -0800 MIME-Version: 1.0 In-Reply-To: <87sfw7u7zw.fsf@gmx.de> Content-Type: multipart/mixed; boundary="------------815EB32426E180BBE894AFA8" Content-Language: en-US X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------815EB32426E180BBE894AFA8 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/7/2021 10:37 AM, Michael Albinus wrote: > Nice. I've pushed them to the emacs-28 branch in your name, merged also > to the master branch. Maybe you could also add a test for quoted file > names, i.e. a file name "/:/home/albinus/" should *not* be > abbreviated. See files-tests-file-name-non-special-* tests in > files-tests.el. Ok, I added a test for this in the first patch. >> +** Tramp >> + >> ++++ >> +*** Tramp supports abbreviating remote home directories now. >> +When calling 'abbreviate-file-name' on a Tramp filename, the result >> +will abbreviate the home directory to "~". > > You made it under the Tramp heading. I believe there shall be a more > general entry, that 'abbreviate-file-name' respects file name handlers > now. The entry in the Tramp section can be kept, but in a more general > sense. We don't abbreviate only to "~", but also to "~user", see below. I added a NEWS entry to mention that `abbreviate-file-name' respects file name handlers now. I didn't update the Tramp entry though since I haven't added "~user" support (at least, not yet...). See below for some explanation. > Tramp can more. If there are two remote users "jim" and "micha", then > you have > > (expand-file-name "/ssh:jim@host:~/") => "/ssh:jim@host:/home/jim/" > (expand-file-name "/ssh:jim@host:~micha/") => "/ssh:jim@host:/home/micha/" > > abbreviate-file-name is somehow the reverse function of > expand-file-name. So it would be great, if we could have > > (abbreviate-file-name "/ssh:jim@host:/home/micha/") => "/ssh:jim@host:~micha/" > > Of course, we cannot check for any remote user's home directory. But we > have the Tramp cache. expand-file-name adds connection properties for > home directories, like ("~" . "/home/jim") and ("~micha" . "/home/micha") > in the above examples. If somebody has already used > "/ssh:jim@host:~micha/", and this is cached as ("~micha" . "/home/micha"), > then abbreviate-file-name shall do such an abbreviation. WDYT? I looked at doing this, but it was a bit more complex than I thought it would be initially, so I've held off for now. This does seem like a useful feature though, and would probably be nice to have for local paths too. It should be possible to enhance `expand-file-name' to cache the "~user" -> "/home/user" mapping similarly to how `tramp-sh-handle-expand-file-name' does. I could keep working on this patch to add "~user" support, or maybe that could be a followup for later. Incidentally, another interesting feature would be abbreviating default methods/users. That's probably easy when Tramp has filled in those values since the file name has `tramp-default' properties set. I'm not sure how tricky it would be to do without those properties though. >> + ;; If any elt of directory-abbrev-alist matches this name or the >> + ;; home dir, abbreviate accordingly. >> + (dolist (dir-abbrev directory-abbrev-alist) >> + (when (string-match (car dir-abbrev) filename) >> + (setq filename >> + (concat (cdr dir-abbrev) >> + (substring filename (match-end 0))))) >> + (when (string-match (car dir-abbrev) home-dir) >> + (setq home-dir >> + (concat (cdr dir-abbrev) >> + (substring home-dir (match-end 0)))))) > > Well, this is copied code from abbreviate-file-name. Usually I try to > avoid such code duplication, it's hard to maintain when it changes in > the first place . Instead, I call the original function via > tramp-run-real-handler, and use the result for further changes. > > But abbreviate-file-name does much more than handling > directory-abbrev-alist. Hmm. I've tried to reduce as much duplication as possible here by creating two new functions: `directory-abbrev-make-regexp' and `directory-abbrev-apply'. The former just takes a directory and returns a regexp that would match it, and the latter loops over `directory-abbrev-alist' and applies the transformations. I tried to do this via `(tramp-run-real-handler #'abbreviate-file-name ...)', but it ended up being simpler (and faster to execute) this way. > I prefer to keep things together. So I would like to see > tramp-testNN-abbreviate-file-name closed to > tramp-test05-expand-file-name. Could we call the new function > tramp-test07-abbreviate-file-name? I know it will be a lot of work to > rename all the other test functions, and I herewith volunteer to do this > dirty task. Ok, fixed. >> + (let ((home-dir (expand-file-name "/mock:localhost:~"))) > > You hard-code the mock method. But this is available only if > $REMOTE_TEMPORARY_FILE_DIRECTORY is not set; I'd prefer to run > tramp-tests.el in many different environments. So please use something > like > > (let ((home-dir (expand-file-name (concat (file-remote-p tramp-test-temporary-file-directory) "~"))))) Fixed this too. I also attached a slightly-updated benchmark script as well as new results. Performance on local file names is the same as before the patch, and just slightly faster than before with Tramp file names. (Most of the performance improvements here happened in bug#51699, so I mainly wanted to maintain the current performance in this patch.) --------------815EB32426E180BBE894AFA8 Content-Type: text/plain; charset=UTF-8; name="0001-Add-another-abbreviate-file-name-test.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-another-abbreviate-file-name-test.patch" RnJvbSAwMDNkMDEyYWRjNzY3MWY5ZjBhZDQyY2Y5YWNhNWYxNDdhOGQwYzBjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTMgTm92IDIwMjEgMTc6Mzg6MzYgLTA4MDAKU3ViamVjdDogW1BB VENIIDEvMl0gOyBBZGQgYW5vdGhlciAnYWJicmV2aWF0ZS1maWxlLW5hbWUnIHRlc3QKCiog dGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVsCihmaWxlcy10ZXN0cy1hYmJyZXZpYXRlLWZpbGUt bmFtZS1ub24tc3BlY2lhbCk6IE5ldyB0ZXN0LgotLS0KIHRlc3QvbGlzcC9maWxlcy10ZXN0 cy5lbCB8IDkgKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvdGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVsIGIvdGVzdC9saXNwL2ZpbGVz LXRlc3RzLmVsCmluZGV4IGQwMGYxY2UzMjYuLmRmNTdkNzhmY2EgMTAwNjQ0Ci0tLSBhL3Rl c3QvbGlzcC9maWxlcy10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwK QEAgLTEzNjQsNiArMTM2NCwxNSBAQCBmaWxlcy10ZXN0cy1hYmJyZXZpYXRlLWZpbGUtbmFt ZS1kaXJlY3RvcnktYWJicmV2LWFsaXN0CiAgICAgICAgICAgICAgICAgICAgICAoYWJicmV2 aWF0ZS1maWxlLW5hbWUKICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGhvbWVkaXIg Im5vd2hlcmUvc3BlY2lhbC9oZXJlIikpKSkpKQogCisoZXJ0LWRlZnRlc3QgZmlsZXMtdGVz dHMtYWJicmV2aWF0ZS1maWxlLW5hbWUtbm9uLXNwZWNpYWwgKCkKKyAgKGxldCogKChob21l ZGlyIHRlbXBvcmFyeS1maWxlLWRpcmVjdG9yeSkKKyAgICAgICAgIChwcm9jZXNzLWVudmly b25tZW50IChjb25zIChmb3JtYXQgIkhPTUU9JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLWVudmlyb25tZW50KSkKKyAgICAgICAg IChhYmJyZXZpYXRlZC1ob21lLWRpciBuaWwpKQorICAgIDs7IENoZWNrIHRoYXQgYWJicmV2 aWF0aW9uIGRvZXNuJ3Qgb2NjdXIgZm9yIHF1b3RlZCBmaWxlIG5hbWVzLgorICAgIChzaG91 bGQgKGVxdWFsIChjb25jYXQgIi86IiBob21lZGlyICJmb28vYmFyIikKKyAgICAgICAgICAg ICAgICAgICAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCAiLzoiIGhvbWVkaXIgImZv by9iYXIiKSkpKSkpCisKIChlcnQtZGVmdGVzdCBmaWxlcy10ZXN0cy1hYmJyZXZpYXRlZC1o b21lLWRpciAoKQogICAiVGVzdCB0aGF0IGNoYW5naW5nIEhPTUUgZG9lcyBub3QgY29uZnVz ZSBgYWJicmV2aWF0ZS1maWxlLW5hbWUnLgogU2VlIDxodHRwczovL2RlYmJ1Z3MuZ251Lm9y Zy8xOTY1NyMyMD4uIgotLSAKMi4yNS4xCgo= --------------815EB32426E180BBE894AFA8 Content-Type: text/plain; charset=UTF-8; name="0002-Support-abbreviating-home-directory-of-Tramp-filenam.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Support-abbreviating-home-directory-of-Tramp-filenam.pa"; filename*1="tch" RnJvbSA1ZDA0OWQ5ZmI5MDI4MTk3MjZiNDcyNzgyZGQyZDAyOGUzZDYxNjVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTMgTm92IDIwMjEgMTc6MjM6NDIgLTA4MDAKU3ViamVjdDogW1BB VENIIDIvMl0gU3VwcG9ydCBhYmJyZXZpYXRpbmcgaG9tZSBkaXJlY3Rvcnkgb2YgVHJhbXAg ZmlsZW5hbWVzCgoqIGxpc3AvZmlsZXMuZWwgKGRpcmVjdG9yeS1hYmJyZXYtbWFrZS1yZWdl eHApOgooZGlyZWN0b3J5LWFiYnJldi1hcHBseSk6IE5ldyBmdW5jdGlvbnMuCihhYmJyZXZp YXRlLWZpbGUtbmFtZSk6IENoZWNrIGZvciBmaWxlIG5hbWUgaGFuZGxlci4KKGZpbGUtbmFt ZS1ub24tc3BlY2lhbCk6CiogbGlzcC9uZXQvdHJhbXAuZWwgKHRyYW1wLWZpbGUtbmFtZS1m b3Itb3BlcmF0aW9uKToKKiBsaXNwL25ldC90cmFtcC1zaC5lbCAodHJhbXAtc2gtZmlsZS1u YW1lLWhhbmRsZXItYWxpc3QpOgpBZGQgJ2FiYnJldmlhdGUtZmlsZS1uYW1lJy4KKHRyYW1w LXNoLWhhbmRsZS1hYmJyZXZpYXRlLWZpbGUtbmFtZSk6IE5ldyBmdW5jdGlvbi4KKiB0ZXN0 L2xpc3AvbmV0L3RyYW1wLXRlc3RzLmVsICh0cmFtcC10ZXN0NDYtYWJicmV2aWF0ZS1maWxl LW5hbWUpOgpOZXcgdGVzdC4KKiBkb2MvbGlzcHJlZi9maWxlcy50ZXhpIChNYWdpYyBGaWxl IE5hbWVzKTogTWVudGlvbgonYWJicmV2aWF0ZS1maWxlLW5hbWUnIGluIHRoZSBsaXN0IG9m IG1hZ2ljIGZpbGUgbmFtZSBoYW5kbGVycy4KKiBldGMvTkVXUzogQW5ub3VuY2UgdGhlIGNo YW5nZS4KLS0tCiBkb2MvbGlzcHJlZi9maWxlcy50ZXhpICAgICAgIHwgICA3ICstCiBldGMv TkVXUyAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsrKwogbGlzcC9maWxlcy5lbCAgICAg ICAgICAgICAgICB8IDE0MyArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQog bGlzcC9uZXQvdHJhbXAtc2guZWwgICAgICAgICB8ICAyMCArKysrLQogbGlzcC9uZXQvdHJh bXAuZWwgICAgICAgICAgICB8ICAgMiArCiB0ZXN0L2xpc3AvbmV0L3RyYW1wLXRlc3RzLmVs IHwgIDI1ICsrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgNzIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZmlsZXMudGV4aSBiL2Rv Yy9saXNwcmVmL2ZpbGVzLnRleGkKaW5kZXggZDkzNzcwYTBkMi4uNGIxMTRiYTExMSAxMDA2 NDQKLS0tIGEvZG9jL2xpc3ByZWYvZmlsZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9maWxl cy50ZXhpCkBAIC0zMzA4LDggKzMzMDgsOCBAQCBNYWdpYyBGaWxlIE5hbWVzCiAKIEBpZm5v dHRleAogQG5vaW5kZW50Ci1AY29kZXthY2Nlc3MtZmlsZX0sIEBjb2Rle2FkZC1uYW1lLXRv LWZpbGV9LAotQGNvZGV7Ynl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZX0sQCoKK0Bjb2Rl e2FiYnJldmlhdGUtZmlsZS1uYW1lfSwgQGNvZGV7YWNjZXNzLWZpbGV9LAorQGNvZGV7YWRk LW5hbWUtdG8tZmlsZX0sIEBjb2Rle2J5dGUtY29tcGlsZXItYmFzZS1maWxlLW5hbWV9LEAq CiBAY29kZXtjb3B5LWRpcmVjdG9yeX0sIEBjb2Rle2NvcHktZmlsZX0sCiBAY29kZXtkZWxl dGUtZGlyZWN0b3J5fSwgQGNvZGV7ZGVsZXRlLWZpbGV9LAogQGNvZGV7ZGlmZi1sYXRlc3Qt YmFja3VwLWZpbGV9LApAQCAtMzM2OCw3ICszMzY4LDggQEAgTWFnaWMgRmlsZSBOYW1lcwog QGlmdGV4CiBAbm9pbmRlbnQKIEBmbHVzaGxlZnQKLUBjb2Rle2FjY2Vzcy1maWxlfSwgQGNv ZGV7YWRkLW5hbWUtdG8tZmlsZX0sCitAY29kZXthYmJyZXZpYXRlLWZpbGUtbmFtZX0sIEBj b2Rle2FjY2Vzcy1maWxlfSwKK0Bjb2Rle2FkZC1uYW1lLXRvLWZpbGV9LAogQGNvZGV7Ynl0 ZS1jb21AZGlzY3JldGlvbmFyeXt9e317fXBpbGVyLWJhc2UtZmlsZS1uYW1lfSwKIEBjb2Rl e2NvcHktZGlyZWN0b3J5fSwgQGNvZGV7Y29weS1maWxlfSwKIEBjb2Rle2RlbGV0ZS1kaXJl Y3Rvcnl9LCBAY29kZXtkZWxldGUtZmlsZX0sCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0 Yy9ORVdTCmluZGV4IGMzNjJlNTZjZWUuLjQ4ZmYwNmVmMjggMTAwNjQ0Ci0tLSBhL2V0Yy9O RVdTCisrKyBiL2V0Yy9ORVdTCkBAIC00OTcsNiArNDk3LDEzIEBAIFRoZSBuZXdseSBjcmVh dGVkIGJ1ZmZlciB3aWxsIGJlIGRpc3BsYXllZCB2aWEgJ2Rpc3BsYXktYnVmZmVyJywgd2hp Y2gKIGNhbiBiZSBjdXN0b21pemVkIHRocm91Z2ggdGhlIHVzdWFsIG1lY2hhbmlzbSBvZiAn ZGlzcGxheS1idWZmZXItYWxpc3QnCiBhbmQgZnJpZW5kcy4KIAorKiogVHJhbXAKKworKysr CisqKiogVHJhbXAgc3VwcG9ydHMgYWJicmV2aWF0aW5nIHJlbW90ZSBob21lIGRpcmVjdG9y aWVzIG5vdy4KK1doZW4gY2FsbGluZyAnYWJicmV2aWF0ZS1maWxlLW5hbWUnIG9uIGEgVHJh bXAgZmlsZW5hbWUsIHRoZSByZXN1bHQKK3dpbGwgYWJicmV2aWF0ZSB0aGUgaG9tZSBkaXJl Y3RvcnkgdG8gIn4iLgorCiAMCiAqIE5ldyBNb2RlcyBhbmQgUGFja2FnZXMgaW4gRW1hY3Mg MjkuMQogCkBAIC02MzIsNiArNjM5LDkgQEAgVGhpcyBjb252ZW5pZW5jZSBmdW5jdGlvbiBp cyB1c2VmdWwgd2hlbiB3cml0aW5nIGNvZGUgdGhhdCBwYXJzZXMKIGZpbGVzIGF0IHJ1bi10 aW1lLCBhbmQgYWxsb3dzIExpc3AgcHJvZ3JhbXMgdG8gcmUtcGFyc2UgZmlsZXMgb25seQog d2hlbiB0aGV5IGhhdmUgY2hhbmdlZC4KIAorKysrCisqKiAnYWJicmV2aWF0ZS1maWxlLW5h bWUnIG5vdyByZXNwZWN0cyBtYWdpYyBmaWxlIG5hbWUgaGFuZGxlcnMuCisKIC0tLQogKiog TmV3IGZ1bmN0aW9uICdmb250LWhhcy1jaGFyLXAnLgogVGhpcyBjYW4gYmUgdXNlZCB0byBj aGVjayB3aGV0aGVyIGEgc3BlY2lmaWMgZm9udCBoYXMgYSBnbHlwaCBmb3IgYQpkaWZmIC0t Z2l0IGEvbGlzcC9maWxlcy5lbCBiL2xpc3AvZmlsZXMuZWwKaW5kZXggMzQ5MGQwNDI4YS4u NDliZjA2YmZjMSAxMDA2NDQKLS0tIGEvbGlzcC9maWxlcy5lbAorKysgYi9saXNwL2ZpbGVz LmVsCkBAIC02OCw2ICs2OCwzMSBAQCBkaXJlY3RvcnktYWJicmV2LWFsaXN0CiAgIDpncm91 cCAnYWJicmV2CiAgIDpncm91cCAnZmluZC1maWxlKQogCisoZGVmdW4gZGlyZWN0b3J5LWFi YnJldi1tYWtlLXJlZ2V4cCAoZGlyZWN0b3J5KQorICAiQ3JlYXRlIGEgcmVnZXhwIHRvIG1h dGNoIERJUkVDVE9SWSBmb3IgYGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnLiIKKyAgKGxldCAo KHJlZ2V4cAorICAgICAgICAgOzsgV2UgaW5jbHVkZSBhIHNsYXNoIGF0IHRoZSBlbmQsIHRv IGF2b2lkIHNwdXJpb3VzCisgICAgICAgICA7OyBtYXRjaGVzIHN1Y2ggYXMgYC91c3IvZm9v YmFyJyB3aGVuIHRoZSBob21lIGRpciBpcworICAgICAgICAgOzsgYC91c3IvZm9vJy4KKyAg ICAgICAgIChjb25jYXQgIlxcYCIgKHJlZ2V4cC1xdW90ZSBkaXJlY3RvcnkpICJcXCgvXFx8 XFwnXFwpIikpKQorICAgIDs7IFRoZSB2YWx1ZSBvZiByZWdleHAgY291bGQgYmUgbXVsdGli eXRlIG9yIHVuaWJ5dGUuICBJbiB0aGUKKyAgICA7OyBsYXR0ZXIgY2FzZSwgd2UgbmVlZCB0 byBkZWNvZGUgaXQuCisgICAgKGlmIChtdWx0aWJ5dGUtc3RyaW5nLXAgcmVnZXhwKQorICAg ICAgICByZWdleHAKKyAgICAgIChkZWNvZGUtY29kaW5nLXN0cmluZyByZWdleHAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXRmLTgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvY2FsZS1jb2Rpbmctc3lzdGVtKSkpKSkKKworKGRlZnVu IGRpcmVjdG9yeS1hYmJyZXYtYXBwbHkgKGZpbGVuYW1lKQorICAiQXBwbHkgdGhlIGFiYnJl dmlhdGlvbnMgaW4gYGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIHRvIEZJTEVOQU1FLgorTm90 ZSB0aGF0IHdoZW4gY2FsbGluZyB0aGlzLCB5b3Ugc2hvdWxkIHNldCBgY2FzZS1mb2xkLXNl YXJjaCcgYXMKK2FwcHJvcHJpYXRlIGZvciB0aGUgZmlsZXN5c3RlbSB1c2VkIGZvciBGSUxF TkFNRS4iCisgIChkb2xpc3QgKGRpci1hYmJyZXYgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCBm aWxlbmFtZSkKKyAgICAod2hlbiAoc3RyaW5nLW1hdGNoIChjYXIgZGlyLWFiYnJldikgZmls ZW5hbWUpCisgICAgICAgICAoc2V0cSBmaWxlbmFtZSAoY29uY2F0IChjZHIgZGlyLWFiYnJl dikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlbmFt ZSAobWF0Y2gtZW5kIDApKSkpKSkpCisKIChkZWZjdXN0b20gbWFrZS1iYWNrdXAtZmlsZXMg dAogICAiTm9uLW5pbCBtZWFucyBtYWtlIGEgYmFja3VwIG9mIGEgZmlsZSB0aGUgZmlyc3Qg dGltZSBpdCBpcyBzYXZlZC4KIFRoaXMgY2FuIGJlIGRvbmUgYnkgcmVuYW1pbmcgdGhlIGZp bGUgb3IgYnkgY29weWluZy4KQEAgLTIwMTUsNzMgKzIwNDAsNTQgQEAgYWJicmV2aWF0ZS1m aWxlLW5hbWUKIHN0YXJ0ZWQgRW1hY3MsIHNldCBgYWJicmV2aWF0ZWQtaG9tZS1kaXInIHRv IG5pbCBzbyBpdCB3aWxsIGJlIHJlY2FsY3VsYXRlZCkuIgogICA7OyBHZXQgcmlkIG9mIHRo ZSBwcmVmaXhlcyBhZGRlZCBieSB0aGUgYXV0b21vdW50ZXIuCiAgIChzYXZlLW1hdGNoLWRh dGEgICAgICAgICAgICAgICAgICAgICAgO0ZJWE1FOiBXaHk/Ci0gICAgKGlmIChhbmQgYXV0 b21vdW50LWRpci1wcmVmaXgKLQkgICAgIChzdHJpbmctbWF0Y2ggYXV0b21vdW50LWRpci1w cmVmaXggZmlsZW5hbWUpCi0JICAgICAoZmlsZS1leGlzdHMtcCAoZmlsZS1uYW1lLWRpcmVj dG9yeQotCQkJICAgICAoc3Vic3RyaW5nIGZpbGVuYW1lICgxLSAobWF0Y2gtZW5kIDApKSkp KSkKLQkoc2V0cSBmaWxlbmFtZSAoc3Vic3RyaW5nIGZpbGVuYW1lICgxLSAobWF0Y2gtZW5k IDApKSkpKQotICAgIDs7IEF2b2lkIHRyZWF0aW5nIC9ob21lL2ZvbyBhcyAvaG9tZS9Gb28g ZHVyaW5nIGB+JyBzdWJzdGl0dXRpb24uCi0gICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2gg KGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgZmlsZW5hbWUpKSkKLSAgICAgIDs7IElm IGFueSBlbHQgb2YgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCBtYXRjaGVzIHRoaXMgbmFtZSwK LSAgICAgIDs7IGFiYnJldmlhdGUgYWNjb3JkaW5nbHkuCi0gICAgICAoZG9saXN0IChkaXIt YWJicmV2IGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QpCi0JKGlmIChzdHJpbmctbWF0Y2ggKGNh ciBkaXItYWJicmV2KSBmaWxlbmFtZSkKLQkgICAgKHNldHEgZmlsZW5hbWUKLQkJICAoY29u Y2F0IChjZHIgZGlyLWFiYnJldikKLQkJCSAgKHN1YnN0cmluZyBmaWxlbmFtZSAobWF0Y2gt ZW5kIDApKSkpKSkKLSAgICAgIDs7IENvbXB1dGUgYW5kIHNhdmUgdGhlIGFiYnJldmlhdGVk IGhvbWVkaXIgbmFtZS4KLSAgICAgIDs7IFdlIGRlZmVyIGNvbXB1dGluZyB0aGlzIHVudGls IHRoZSBmaXJzdCB0aW1lIGl0J3MgbmVlZGVkLCB0bwotICAgICAgOzsgZ2l2ZSB0aW1lIGZv ciBkaXJlY3RvcnktYWJicmV2LWFsaXN0IHRvIGJlIHNldCBwcm9wZXJseS4KLSAgICAgIDs7 IFdlIGluY2x1ZGUgYSBzbGFzaCBhdCB0aGUgZW5kLCB0byBhdm9pZCBzcHVyaW91cyBtYXRj aGVzCi0gICAgICA7OyBzdWNoIGFzIGAvdXNyL2Zvb2Jhcicgd2hlbiB0aGUgaG9tZSBkaXIg aXMgYC91c3IvZm9vJy4KLSAgICAgICh1bmxlc3MgYWJicmV2aWF0ZWQtaG9tZS1kaXIKLSAg ICAgICAgKHB1dCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUgKGV4cGFuZC1maWxlLW5h bWUgIn4iKSkKLSAgICAgICAgKHNldHEgYWJicmV2aWF0ZWQtaG9tZS1kaXIKLSAgICAgICAg ICAgICAgKGxldCogKChhYmJyZXZpYXRlZC1ob21lLWRpciAiXFxgXFwnLiIpIDtJbXBvc3Np YmxlIHJlZ2V4cC4KLSAgICAgICAgICAgICAgICAgICAgIChyZWdleHAKLSAgICAgICAgICAg ICAgICAgICAgICAoY29uY2F0ICJcXGAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAocmVnZXhwLXF1b3RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFiYnJl dmlhdGUtZmlsZS1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXQg J2FiYnJldmlhdGVkLWhvbWUtZGlyICdob21lKSkpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiXFwoL1xcfFxcJ1xcKSIpKSkKLSAgICAgICAgICAgICAgICA7OyBEZXBlbmRp bmcgb24gd2hldGhlciBkZWZhdWx0LWRpcmVjdG9yeSBkb2VzIG9yCi0gICAgICAgICAgICAg ICAgOzsgZG9lc24ndCBpbmNsdWRlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLCB0aGUgdmFsdWUK LSAgICAgICAgICAgICAgICA7OyBvZiBhYmJyZXZpYXRlZC1ob21lLWRpciBjb3VsZCBiZSBt dWx0aWJ5dGUgb3IKLSAgICAgICAgICAgICAgICA7OyB1bmlieXRlLiAgSW4gdGhlIGxhdHRl ciBjYXNlLCB3ZSBuZWVkIHRvIGRlY29kZQotICAgICAgICAgICAgICAgIDs7IGl0LiAgTm90 ZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZvciB0aGUKLSAgICAgICAgICAgICAg ICA7OyBmaXJzdCB0aW1lIChmcm9tIHN0YXJ0dXAuZWwpIHdoZW4KLSAgICAgICAgICAgICAg ICA7OyBsb2NhbGUtY29kaW5nLXN5c3RlbSBpcyBhbHJlYWR5IHNldCB1cC4KLSAgICAgICAg ICAgICAgICAoaWYgKG11bHRpYnl0ZS1zdHJpbmctcCByZWdleHApCi0gICAgICAgICAgICAg ICAgICAgIHJlZ2V4cAotICAgICAgICAgICAgICAgICAgKGRlY29kZS1jb2Rpbmctc3RyaW5n IHJlZ2V4cAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo ZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICd1dGYtOAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbG9jYWxlLWNvZGluZy1zeXN0ZW0pKSkpKSkKLQotICAgICAgOzsg SWYgRklMRU5BTUUgc3RhcnRzIHdpdGggdGhlIGFiYnJldmlhdGVkIGhvbWVkaXIsCi0gICAg ICA7OyBhbmQgfiBoYXNuJ3QgY2hhbmdlZCBzaW5jZSBhYmJyZXZpYXRlZC1ob21lLWRpciB3 YXMgc2V0LAotICAgICAgOzsgbWFrZSBpdCBzdGFydCB3aXRoIGB+JyBpbnN0ZWFkLgotICAg ICAgOzsgSWYgfiBoYXMgY2hhbmdlZCwgd2UgaWdub3JlIGFiYnJldmlhdGVkLWhvbWUtZGly IHJhdGhlciB0aGFuCi0gICAgICA7OyBpbnZhbGlkYXRpbmcgaXQsIG9uIHRoZSBhc3N1bXB0 aW9uIHRoYXQgYSBjaGFuZ2UgaW4gSE9NRQotICAgICAgOzsgaXMgbGlrZWx5IHRlbXBvcmFy eSAoZWcgZm9yIHRlc3RpbmcpLgotICAgICAgOzsgRklYTUUgSXMgaXQgZXZlbiB3b3J0aCBj YWNoaW5nIGFiYnJldmlhdGVkLWhvbWUtZGlyPwotICAgICAgOzsgUmVmOiBodHRwczovL2Rl YmJ1Z3MuZ251Lm9yZy8xOTY1NyMyMAotICAgICAgKGxldCAobWIxKQotICAgICAgICAoaWYg KGFuZCAoc3RyaW5nLW1hdGNoIGFiYnJldmlhdGVkLWhvbWUtZGlyIGZpbGVuYW1lKQotICAg ICAgICAgICAgICAgICAoc2V0cSBtYjEgKG1hdGNoLWJlZ2lubmluZyAxKSkKLQkgICAgICAg ICA7OyBJZiB0aGUgaG9tZSBkaXIgaXMganVzdCAvLCBkb24ndCBjaGFuZ2UgaXQuCi0JICAg ICAgICAgKG5vdCAoYW5kICg9IChtYXRjaC1lbmQgMCkgMSkKLQkJCSAgICg9IChhcmVmIGZp bGVuYW1lIDApID8vKSkpCi0JICAgICAgICAgOzsgTVMtRE9TIHJvb3QgZGlyZWN0b3JpZXMg Y2FuIGNvbWUgd2l0aCBhIGRyaXZlIGxldHRlcjsKLQkgICAgICAgICA7OyBOb3ZlbGwgTmV0 d2FyZSBhbGxvd3MgZHJpdmUgbGV0dGVycyBiZXlvbmQgYFo6Jy4KLQkgICAgICAgICAobm90 IChhbmQgKG1lbXEgc3lzdGVtLXR5cGUgJyhtcy1kb3Mgd2luZG93cy1udCBjeWd3aW4pKQot CQkJICAgKHN0cmluZy1tYXRjaCAiXFxgW2EtekEtYF06L1xcJyIgZmlsZW5hbWUpKSkKLSAg ICAgICAgICAgICAgICAgKGVxdWFsIChnZXQgJ2FiYnJldmlhdGVkLWhvbWUtZGlyICdob21l KQotICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgIn4iKSkpCi0J ICAgIChzZXRxIGZpbGVuYW1lCi0JCSAgKGNvbmNhdCAifiIKLQkJCSAgKHN1YnN0cmluZyBm aWxlbmFtZSBtYjEpKSkpCi0gICAgICAgIGZpbGVuYW1lKSkpKQorICAgIChpZi1sZXQgKCho YW5kbGVyIChmaW5kLWZpbGUtbmFtZS1oYW5kbGVyIGZpbGVuYW1lICdhYmJyZXZpYXRlLWZp bGUtbmFtZSkpKQorICAgICAgICAoZnVuY2FsbCBoYW5kbGVyICdhYmJyZXZpYXRlLWZpbGUt bmFtZSBmaWxlbmFtZSkKKyAgICAgIChpZiAoYW5kIGF1dG9tb3VudC1kaXItcHJlZml4Cisg ICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoIGF1dG9tb3VudC1kaXItcHJlZml4IGZpbGVu YW1lKQorICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgKGZpbGUtbmFtZS1kaXJlY3Rv cnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGVuYW1l ICgxLSAobWF0Y2gtZW5kIDApKSkpKSkKKyAgICAgICAgICAoc2V0cSBmaWxlbmFtZSAoc3Vi c3RyaW5nIGZpbGVuYW1lICgxLSAobWF0Y2gtZW5kIDApKSkpKQorICAgICAgOzsgQXZvaWQg dHJlYXRpbmcgL2hvbWUvZm9vIGFzIC9ob21lL0ZvbyBkdXJpbmcgYH4nIHN1YnN0aXR1dGlv bi4KKyAgICAgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIChmaWxlLW5hbWUtY2FzZS1pbnNl bnNpdGl2ZS1wIGZpbGVuYW1lKSkpCisgICAgICAgIDs7IElmIGFueSBlbHQgb2YgZGlyZWN0 b3J5LWFiYnJldi1hbGlzdCBtYXRjaGVzIHRoaXMgbmFtZSwKKyAgICAgICAgOzsgYWJicmV2 aWF0ZSBhY2NvcmRpbmdseS4KKyAgICAgICAgKHNldHEgZmlsZW5hbWUgKGRpcmVjdG9yeS1h YmJyZXYtYXBwbHkgZmlsZW5hbWUpKQorCisgICAgICAgIDs7IENvbXB1dGUgYW5kIHNhdmUg dGhlIGFiYnJldmlhdGVkIGhvbWVkaXIgbmFtZS4KKyAgICAgICAgOzsgV2UgZGVmZXIgY29t cHV0aW5nIHRoaXMgdW50aWwgdGhlIGZpcnN0IHRpbWUgaXQncyBuZWVkZWQsIHRvCisgICAg ICAgIDs7IGdpdmUgdGltZSBmb3IgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCB0byBiZSBzZXQg cHJvcGVybHkuCisgICAgICAgICh1bmxlc3MgYWJicmV2aWF0ZWQtaG9tZS1kaXIKKyAgICAg ICAgICAocHV0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAnaG9tZSAoZXhwYW5kLWZpbGUtbmFt ZSAifiIpKQorICAgICAgICAgIChzZXRxIGFiYnJldmlhdGVkLWhvbWUtZGlyCisgICAgICAg ICAgICAgICAgKGRpcmVjdG9yeS1hYmJyZXYtbWFrZS1yZWdleHAKKyAgICAgICAgICAgICAg ICAgKGxldCAoKGFiYnJldmlhdGVkLWhvbWUtZGlyICJcXGBcXCcuIikpIDtJbXBvc3NpYmxl IHJlZ2V4cC4KKyAgICAgICAgICAgICAgICAgICAoYWJicmV2aWF0ZS1maWxlLW5hbWUKKyAg ICAgICAgICAgICAgICAgICAgKGdldCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpKSkp KSkKKworICAgICAgICA7OyBJZiBGSUxFTkFNRSBzdGFydHMgd2l0aCB0aGUgYWJicmV2aWF0 ZWQgaG9tZWRpciwKKyAgICAgICAgOzsgYW5kIH4gaGFzbid0IGNoYW5nZWQgc2luY2UgYWJi cmV2aWF0ZWQtaG9tZS1kaXIgd2FzIHNldCwKKyAgICAgICAgOzsgbWFrZSBpdCBzdGFydCB3 aXRoIGB+JyBpbnN0ZWFkLgorICAgICAgICA7OyBJZiB+IGhhcyBjaGFuZ2VkLCB3ZSBpZ25v cmUgYWJicmV2aWF0ZWQtaG9tZS1kaXIgcmF0aGVyIHRoYW4KKyAgICAgICAgOzsgaW52YWxp ZGF0aW5nIGl0LCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGEgY2hhbmdlIGluIEhPTUUKKyAg ICAgICAgOzsgaXMgbGlrZWx5IHRlbXBvcmFyeSAoZWcgZm9yIHRlc3RpbmcpLgorICAgICAg ICA7OyBGSVhNRSBJcyBpdCBldmVuIHdvcnRoIGNhY2hpbmcgYWJicmV2aWF0ZWQtaG9tZS1k aXI/CisgICAgICAgIDs7IFJlZjogaHR0cHM6Ly9kZWJidWdzLmdudS5vcmcvMTk2NTcjMjAK KyAgICAgICAgKGxldCAobWIxKQorICAgICAgICAgIChpZiAoYW5kIChzdHJpbmctbWF0Y2gg YWJicmV2aWF0ZWQtaG9tZS1kaXIgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgICAgKHNl dHEgbWIxIChtYXRjaC1iZWdpbm5pbmcgMSkpCisgICAgICAgICAgICAgICAgICAgOzsgSWYg dGhlIGhvbWUgZGlyIGlzIGp1c3QgLywgZG9uJ3QgY2hhbmdlIGl0LgorICAgICAgICAgICAg ICAgICAgIChub3QgKGFuZCAoPSAobWF0Y2gtZW5kIDApIDEpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg9IChhcmVmIGZpbGVuYW1lIDApID8vKSkpCisgICAgICAgICAgICAg ICAgICAgOzsgTVMtRE9TIHJvb3QgZGlyZWN0b3JpZXMgY2FuIGNvbWUgd2l0aCBhIGRyaXZl IGxldHRlcjsKKyAgICAgICAgICAgICAgICAgICA7OyBOb3ZlbGwgTmV0d2FyZSBhbGxvd3Mg ZHJpdmUgbGV0dGVycyBiZXlvbmQgYFo6Jy4KKyAgICAgICAgICAgICAgICAgICAobm90IChh bmQgKG1lbXEgc3lzdGVtLXR5cGUgJyhtcy1kb3Mgd2luZG93cy1udCBjeWd3aW4pKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoICJcXGBbYS16QS1gXTov XFwnIiBmaWxlbmFtZSkpKQorICAgICAgICAgICAgICAgICAgIChlcXVhbCAoZ2V0ICdhYmJy ZXZpYXRlZC1ob21lLWRpciAnaG9tZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4 cGFuZC1maWxlLW5hbWUgIn4iKSkpCisgICAgICAgICAgICAgIChzZXRxIGZpbGVuYW1lCisg ICAgICAgICAgICAgICAgICAgIChjb25jYXQgIn4iCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSBtYjEpKSkpCisgICAgICAgICAgZmlsZW5hbWUp KSkpKQogCiAoZGVmdW4gZmluZC1idWZmZXItdmlzaXRpbmcgKGZpbGVuYW1lICZvcHRpb25h bCBwcmVkaWNhdGUpCiAgICJSZXR1cm4gdGhlIGJ1ZmZlciB2aXNpdGluZyBmaWxlIEZJTEVO QU1FIChhIHN0cmluZykuCkBAIC03ODM2LDEwICs3ODQyLDExIEBAIGZpbGUtbmFtZS1ub24t c3BlY2lhbAogCTs7IEdldCBhIGxpc3Qgb2YgdGhlIGluZGljZXMgb2YgdGhlIGFyZ3MgdGhh dCBhcmUgZmlsZSBuYW1lcy4KIAkoZmlsZS1hcmctaW5kaWNlcwogCSAoY2RyIChvciAoYXNz cSBvcGVyYXRpb24KLQkJCScoOzsgVGhlIGZpcnN0IHNldmVuIGFyZSBzcGVjaWFsIGJlY2F1 c2UgdGhleQorCQkJJyg7OyBUaGUgZmlyc3QgZWlnaHQgYXJlIHNwZWNpYWwgYmVjYXVzZSB0 aGV5CiAJCQkgIDs7IHJldHVybiBhIGZpbGUgbmFtZS4gIFdlIHdhbnQgdG8gaW5jbHVkZQog CQkJICA7OyB0aGUgLzogaW4gdGhlIHJldHVybiB2YWx1ZS4gIFNvIGp1c3QKIAkJCSAgOzsg YXZvaWQgc3RyaXBwaW5nIGl0IGluIHRoZSBmaXJzdCBwbGFjZS4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAoZGlyZWN0b3J5LWZpbGUtbmFtZSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGV4cGFuZC1maWxlLW5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxl LW5hbWUtYXMtZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtc2guZWwg Yi9saXNwL25ldC90cmFtcC1zaC5lbAppbmRleCBjNjEwMjVhODZiLi5hNzdmZmU0MzJiIDEw MDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1zaC5lbAorKysgYi9saXNwL25ldC90cmFtcC1z aC5lbApAQCAtOTQyLDcgKzk0Miw4IEBAIHRyYW1wLXZjLXJlZ2lzdGVyZWQtcmVhZC1maWxl LW5hbWVzCiA7OyBOZXcgaGFuZGxlcnMgc2hvdWxkIGJlIGFkZGVkIGhlcmUuCiA7OzsjIyN0 cmFtcC1hdXRvbG9hZAogKGRlZmNvbnN0IHRyYW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyLWFs aXN0Ci0gICcoKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxlKQorICAn KChhYmJyZXZpYXRlLWZpbGUtbmFtZSAuIHRyYW1wLXNoLWhhbmRsZS1hYmJyZXZpYXRlLWZp bGUtbmFtZSkKKyAgICAoYWNjZXNzLWZpbGUgLiB0cmFtcC1oYW5kbGUtYWNjZXNzLWZpbGUp CiAgICAgKGFkZC1uYW1lLXRvLWZpbGUgLiB0cmFtcC1zaC1oYW5kbGUtYWRkLW5hbWUtdG8t ZmlsZSkKICAgICA7OyBgYnl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZScgcGVyZm9ybWVk IGJ5IGRlZmF1bHQgaGFuZGxlci4KICAgICAoY29weS1kaXJlY3RvcnkgLiB0cmFtcC1zaC1o YW5kbGUtY29weS1kaXJlY3RvcnkpCkBAIC0xODAxLDYgKzE4MDIsMjMgQEAgdHJhbXAtc2gt aGFuZGxlLWZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMKIAkgICAgICAgKHB1c2ggKGJ1ZmZl ci1zdWJzdHJpbmcgKHBvaW50KSAocG9pbnQtYXQtZW9sKSkgcmVzdWx0KSkpCiAJICAgcmVz dWx0KSkpKSkpCiAKKyhkZWZ1biB0cmFtcC1zaC1oYW5kbGUtYWJicmV2aWF0ZS1maWxlLW5h bWUgKGZpbGVuYW1lKQorICAiTGlrZSBgYWJicmV2aWF0ZS1maWxlLW5hbWUnIGZvciBUcmFt cCBmaWxlcy4iCisgIChsZXQqICgoY2FzZS1mb2xkLXNlYXJjaCAodHJhbXAtaGFuZGxlLWZp bGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgZmlsZW5hbWUpKQorICAgICAgICAgKGhvbWUt ZGlyCisgICAgICAgICAgKHdpdGgtcGFyc2VkLXRyYW1wLWZpbGUtbmFtZSBmaWxlbmFtZSBu aWwKKyAgICAgICAgICAgICh3aXRoLXRyYW1wLWNvbm5lY3Rpb24tcHJvcGVydHkgdiAiaG9t ZS1kaXJlY3RvcnkiCisgICAgICAgICAgICAgIChkaXJlY3RvcnktYWJicmV2LWFwcGx5ICh0 cmFtcC1zaC1oYW5kbGUtZXhwYW5kLWZpbGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHRyYW1wLW1ha2UtdHJhbXAtZmlsZS1uYW1lIHYgIn4iKSkp KSkpKQorICAgIDs7IElmIGFueSBlbHQgb2YgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCBtYXRj aGVzIHRoaXMgbmFtZSwKKyAgICA7OyBhYmJyZXZpYXRlIGFjY29yZGluZ2x5LgorICAgIChz ZXRxIGZpbGVuYW1lIChkaXJlY3RvcnktYWJicmV2LWFwcGx5IGZpbGVuYW1lKSkKKyAgICAo aWYgKHN0cmluZy1tYXRjaCAoZGlyZWN0b3J5LWFiYnJldi1tYWtlLXJlZ2V4cCBob21lLWRp cikgZmlsZW5hbWUpCisgICAgICAgICh3aXRoLXBhcnNlZC10cmFtcC1maWxlLW5hbWUgZmls ZW5hbWUgbmlsCisgICAgICAgICAgKHRyYW1wLW1ha2UtdHJhbXAtZmlsZS1uYW1lCisgICAg ICAgICAgIHYgKGNvbmNhdCAifiIgKHN1YnN0cmluZyBmaWxlbmFtZSAobWF0Y2gtYmVnaW5u aW5nIDEpKSkpKQorICAgICAgZmlsZW5hbWUpKSkKKwogOzsgY3AsIG12IGFuZCBsbgogCiAo ZGVmdW4gdHJhbXAtc2gtaGFuZGxlLWFkZC1uYW1lLXRvLWZpbGUKZGlmZiAtLWdpdCBhL2xp c3AvbmV0L3RyYW1wLmVsIGIvbGlzcC9uZXQvdHJhbXAuZWwKaW5kZXggODc2YmJiMmM1NC4u NTJmMzliZjM1NSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAuZWwKKysrIGIvbGlzcC9u ZXQvdHJhbXAuZWwKQEAgLTI0OTUsNiArMjQ5NSw4IEBAIHRyYW1wLWZpbGUtbmFtZS1mb3It b3BlcmF0aW9uCiAJICAgICAgZmlsZS1zeXN0ZW0taW5mbwogCSAgICAgIDs7IEVtYWNzIDI4 KyBvbmx5LgogCSAgICAgIGZpbGUtbG9ja2VkLXAgbG9jay1maWxlIG1ha2UtbG9jay1maWxl LW5hbWUgdW5sb2NrLWZpbGUKKwkgICAgICA7OyBFbWFjcyAyOSsgb25seS4KKwkgICAgICBh YmJyZXZpYXRlLWZpbGUtbmFtZQogCSAgICAgIDs7IFRyYW1wIGludGVybmFsIG1hZ2ljIGZp bGUgbmFtZSBmdW5jdGlvbi4KIAkgICAgICB0cmFtcC1zZXQtZmlsZS11aWQtZ2lkKSkKICAg ICAoaWYgKGZpbGUtbmFtZS1hYnNvbHV0ZS1wIChudGggMCBhcmdzKSkKZGlmZiAtLWdpdCBh L3Rlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgYi90ZXN0L2xpc3AvbmV0L3RyYW1wLXRl c3RzLmVsCmluZGV4IDUyYzYxNTlkYzEuLjY5OGQxOGI1MjggMTAwNjQ0Ci0tLSBhL3Rlc3Qv bGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0 cy5lbApAQCAtMjI4OSw2ICsyMjg5LDMxIEBAIHRyYW1wLXRlc3QwNi1kaXJlY3RvcnktZmls ZS1uYW1lCiAJICAoc2hvdWxkIChzdHJpbmctZXF1YWwgKGZpbGUtbmFtZS1kaXJlY3Rvcnkg ZmlsZSkgZmlsZSkpCiAJICAoc2hvdWxkIChzdHJpbmctZXF1YWwgKGZpbGUtbmFtZS1ub25k aXJlY3RvcnkgZmlsZSkgIiIpKSkpKSkpCiAKKyhlcnQtZGVmdGVzdCB0cmFtcC10ZXN0MDct YWJicmV2aWF0ZS1maWxlLW5hbWUgKCkKKyAgIkNoZWNrIHRoYXQgVHJhbXAgYWJicmV2aWF0 ZXMgZmlsZSBuYW1lcyBjb3JyZWN0bHkuIgorICAoc2tpcC11bmxlc3MgKHRyYW1wLS10ZXN0 LWVuYWJsZWQpKQorICAoc2tpcC11bmxlc3MgKHRyYW1wLS10ZXN0LWVtYWNzMjktcCkpCisK KyAgKGxldCogKChyZW1vdGUtaG9zdCAoZmlsZS1yZW1vdGUtcCB0cmFtcC10ZXN0LXRlbXBv cmFyeS1maWxlLWRpcmVjdG9yeSkpCisgICAgICAgICAoaG9tZS1kaXIgKGV4cGFuZC1maWxl LW5hbWUgKGNvbmNhdCByZW1vdGUtaG9zdCAifiIpKSkpCisgICAgOzsgQ2hlY2sgaG9tZS1k aXIgYWJicmV2aWF0aW9uLgorICAgIChzaG91bGQgKGVxdWFsIChhYmJyZXZpYXRlLWZpbGUt bmFtZSAoY29uY2F0IGhvbWUtZGlyICIvZm9vL2JhciIpKQorICAgICAgICAgICAgICAgICAg IChjb25jYXQgcmVtb3RlLWhvc3QgIn4vZm9vL2JhciIpKSkKKyAgICAoc2hvdWxkIChlcXVh bCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCByZW1vdGUtaG9zdAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvbm93aGVyZS9zcGVj aWFsIikpCisgICAgICAgICAgICAgICAgICAgKGNvbmNhdCByZW1vdGUtaG9zdCAiL25vd2hl cmUvc3BlY2lhbCIpKSkKKyAgICA7OyBDaGVjayBgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCcg YWJicmV2aWF0aW9uLgorICAgIChsZXQgKChkaXJlY3RvcnktYWJicmV2LWFsaXN0CisgICAg ICAgICAgIGAoKCwoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgaG9tZS1kaXIpICIvZm9v IikKKyAgICAgICAgICAgICAgLiAsKGNvbmNhdCBob21lLWRpciAiL2YiKSkKKyAgICAgICAg ICAgICAoLChjb25jYXQgIlxcYCIgKHJlZ2V4cC1xdW90ZSByZW1vdGUtaG9zdCkgIi9ub3do ZXJlIikKKyAgICAgICAgICAgICAgLiAsKGNvbmNhdCByZW1vdGUtaG9zdCAiL253IikpKSkp CisgICAgICAoc2hvdWxkIChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCBo b21lLWRpciAiL2Zvby9iYXIiKSkKKyAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgcmVt b3RlLWhvc3QgIn4vZi9iYXIiKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoYWJicmV2aWF0 ZS1maWxlLW5hbWUgKGNvbmNhdCByZW1vdGUtaG9zdAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9ub3doZXJlL3NwZWNpYWwiKSkKKyAg ICAgICAgICAgICAgICAgICAgIChjb25jYXQgcmVtb3RlLWhvc3QgIi9udy9zcGVjaWFsIikp KSkpKQorCiAoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDA3LWZpbGUtZXhpc3RzLXAgKCkKICAg IkNoZWNrIGBmaWxlLWV4aXN0LXAnLCBgd3JpdGUtcmVnaW9uJyBhbmQgYGRlbGV0ZS1maWxl Jy4iCiAgIChza2lwLXVubGVzcyAodHJhbXAtLXRlc3QtZW5hYmxlZCkpCi0tIAoyLjI1LjEK Cg== --------------815EB32426E180BBE894AFA8 Content-Type: text/plain; charset=UTF-8; name="benchmark.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark.el" KHNldHEgdHJhbXAtdmVyYm9zZSAwCiAgICAgIHVzZXItbmFtZSAiamltIgogICAgICByZW1v dGUtaG9zdCAoY29uY2F0ICIvc3NoeDoiIHVzZXItbmFtZSAiQGxvY2FsaG9zdDoiKSkKCihk ZWZ1biBmaWxsLWRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgKGNvdW50KQogIChzZXRxIGRpcmVj dG9yeS1hYmJyZXYtYWxpc3QKICAgICAgICAobGV0IChyZXN1bHQpCiAgICAgICAgICAoZG90 aW1lcyAoaSBjb3VudCByZXN1bHQpCiAgICAgICAgICAgIChzZXRxIHJlc3VsdCAoY29ucyAo Y29ucyAoZm9ybWF0ICJcXGAvaG9tZS9hYmJyJWQiICgxKyBpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIi9ob21lL2FiYnIlZCIgaSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpKSkpKSkKCihkZWZ1biBydW4tdGVz dCAoY291bnQgJm9wdGlvbmFsIHBhdGgpCiAgKGxldCogKChhYmJyZXZpYXRlLWhvbWUtZGly IG5pbCkKICAgICAgICAgKHBhdGggKG9yIHBhdGggKGNvbmNhdCAiL2hvbWUvIiB1c2VyLW5h bWUgIi9zcmMvcHJvamVjdCIpKSkKICAgICAgICAgKHJlbW90ZS1wYXRoIChjb25jYXQgcmVt b3RlLWhvc3QgcGF0aCkpKQogICAgKGdhcmJhZ2UtY29sbGVjdCkKICAgIChiZW5jaG1hcmsg MTAwMCBgKGFiYnJldmlhdGUtZmlsZS1uYW1lICxwYXRoKSkKICAgIChnYXJiYWdlLWNvbGxl Y3QpCiAgICAoYmVuY2htYXJrIDEwMDAgYChhYmJyZXZpYXRlLWZpbGUtbmFtZSAscmVtb3Rl LXBhdGgpKSkpCgooZmluZC1maWxlIChjb25jYXQgcmVtb3RlLWhvc3QgIn4iKSkKCihtZXNz YWdlICJFbXB0eSBgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCciKQoocnVuLXRlc3QgMTAwMCkK KG1lc3NhZ2UgIiIpCgooZmlsbC1kaXJlY3RvcnktYWJicmV2LWFsaXN0IDEwMCkKKG1lc3Nh Z2UgIjEwMCBpdGVtcyBpbiBgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCcgKG5vIG1hdGNoZXMp IikKKHJ1bi10ZXN0IDEwMDApCihtZXNzYWdlICIiKQoKKG1lc3NhZ2UgIjEwMCBpdGVtcyBp biBgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCcgKGFsbCBtYXRjaGVzKSIpCihydW4tdGVzdCAx MDAwICIvaG9tZS9hYmJyMTAwL3NyYy9wcm9qZWN0IikKKG1lc3NhZ2UgIiIpCgooZmlsbC1k aXJlY3RvcnktYWJicmV2LWFsaXN0IDUwMCkKKG1lc3NhZ2UgIjUwMCBpdGVtcyBpbiBgZGly ZWN0b3J5LWFiYnJldi1hbGlzdCcgKG5vIG1hdGNoZXMpIikKKHJ1bi10ZXN0IDEwMDApCiht ZXNzYWdlICIiKQoKKG1lc3NhZ2UgIjUwMCBpdGVtcyBpbiBgZGlyZWN0b3J5LWFiYnJldi1h bGlzdCcgKGFsbCBtYXRjaGVzKSIpCihydW4tdGVzdCAxMDAwICIvaG9tZS9hYmJyMTAwL3Ny Yy9wcm9qZWN0IikK --------------815EB32426E180BBE894AFA8 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" RW1hY3MgMjkgbWFzdGVyCi0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFi YnJldi1hbGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wODIwOTRzICgwLjAxMjk4 MXMgaW4gMSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjU3MDQ0MXMgKDAuMTc1MDEz cyBpbiAxMyBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKA mSAobm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzM0MzIwcyAoMC4xMjkz NTFzIGluIDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuODM4MzY2cyAoMC4yOTQz MzBzIGluIDIyIEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN0 4oCZIChhbGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTMwMTg3cyAoMC4z MjAxNjVzIGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuODM2MTkwcyAoMC4y ODUzNzFzIGluIDIyIEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFs aXN04oCZIChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4wODkyMjlzICgw LjQ5MjIyNXMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41ODczNTFzICgw LjY0OTAxNHMgaW4gNTAgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYt YWxpc3TigJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4yOTIxMDNz ICgwLjY4NzYzMXMgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41OTIyMTBz ICgwLjY1MTA5MHMgaW4gNTAgR0NzKQoKCldpdGggcGF0Y2gKLS0tLS0tLS0tLQoKRW1wdHkg 4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4w NzYxMzZzICgwLjAxMjk0OXMgaW4gMSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjUx MDQ0NXMgKDAuMTYwMDUycyBpbiAxMiBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5 LWFiYnJldi1hbGlzdOKAmSAobm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAu MzQyNTA5cyAoMC4xMzA5MTZzIGluIDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAu NzgwMjAxcyAoMC4yODExMThzIGluIDIxIEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3Rv cnktYWJicmV2LWFsaXN04oCZIChhbGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6 IDAuNTM4MzUzcyAoMC4zMjM4OThzIGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6 IDAuNjk5MjYycyAoMC4yNDU5NDJzIGluIDE5IEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJl Y3RvcnktYWJicmV2LWFsaXN04oCZIChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGlt ZTogMS4xMDQ3ODZzICgwLjUwMDg4MHMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGlt ZTogMS41MjQ2NjJzICgwLjY0MjIzNnMgaW4gNDkgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRp cmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQg dGltZTogMS4yOTkxNjBzICgwLjY4Nzg2N3MgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQg dGltZTogMS41MTk4MjlzICgwLjY1MTY5MXMgaW4gNDcgR0NzKQoK --------------815EB32426E180BBE894AFA8-- From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 14 09:43:31 2021 Received: (at 51622) by debbugs.gnu.org; 14 Nov 2021 14:43:31 +0000 Received: from localhost ([127.0.0.1]:49599 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmGjC-0007g3-LO for submit@debbugs.gnu.org; Sun, 14 Nov 2021 09:43:31 -0500 Received: from mout.gmx.net ([212.227.15.19]:58211) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmGjA-0007fp-Qs for 51622@debbugs.gnu.org; Sun, 14 Nov 2021 09:43:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636901002; bh=/OaLY/nbwC+QwkFzy3WYO9j66jeDyR19CAht2OyKgTs=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=Cd1eliRiiYyv0UrAGg/5jwbDYPa9YQry9ctI2Lqn4i1Z93HxDusx3+AtU/WHBjuG4 7Owgeuhrq2kEdYPMZrTBS3xZ3qTtNM/9vLyPFZsvNhEBX8yiKnaioohJ8NX6Sqm+ge 8j1RQGobn7GCf1QgTzsFBZoseDg9T30vYRs2IXj0= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([79.140.112.102]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M6Db0-1mk5w13r5c-006gPs; Sun, 14 Nov 2021 15:43:22 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> Date: Sun, 14 Nov 2021 15:43:20 +0100 In-Reply-To: <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> (Jim Porter's message of "Sat, 13 Nov 2021 18:10:50 -0800") Message-ID: <874k8eg5mf.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:J9OAS9KpytrCASG4X0U+fD8vtNfv94x926BcOA+le8/zlyaLWyi p1qNnz1pbq2p1u7cNC1rxmRlMvaj9hVN77U15u7p2c5XJXqTt2q5av030K/tdVlv5pMNZSn 2uIYy0KZlM8dt5y96CLDNCacYLL/rsG5VA/kBwJrvB9l3AEnVaZ/lp59EQ4ZdCPz6v2ft16 st5stRk9o0SYuXFjHEITQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:jSj4JqOVG1w=:2kO2cZkTBRw2pvD+GKPv0e ZVWEvbZE5+TY59VKLlkKNQ8eLn2HT54IO9CX8PHGn+Ua4t0mJNI8UKGogCho+CRBdlfJ3AbNN Sfb3LdL5rwBEyV1zAy+XvpqLLbAzyZtGTus8enx7IEoMlSPUM8yEV+rrfKxxigEy7ACwFl8Ks cHHL3vjAuMMJFVrgT+ygYLq3bxhrahjgNOO4WC5M+6xH3a0KkCMXEuZGnp0OJLi6sMKlzvMtP 09Y9kx+BdW8tWErIB7Q+9sKohlerNFpoUVjz5KsSaAhPwNZ+a4bu4XRR4lxYMAtpCTCqPkZgw NsdJxyfaBIHpCp+m1YXbz1YQzpbFw2QTRfDWQdzRfupNw2Eakh2LAjvasmiJBJ6ervNk2os5H MG9v2TI8rQVJBCSP9lkdF4H9wHBzoDiYMc3wv8aYfeynShRTKKjhDQPJOmZc9I+HKaoacz8Yf hF10RkbxWP6xRSpujuACbOsdWjQa67OJCyJORN8z0gqdMUrxDtCqKplf4p7s1ZLOLZERNJAxA V/bTHBWEPafQdJZXuPG4eIyC5L1r0c+SvAkRFIykuRxCv9izfAdYmallcOzzszzM3nwPstRCV e49ymDHt0JIs7Y/8+AEXOn95lUxjdxCyqFnEcqHYR4cat8+5Jul+a+ry/h/wBunhm1y7S9Ujf MOa+vMFq05c1v3izlxjtgwPGZ5ofDzR7fuM64ckQ/t8zx/2EE1d7OmkSkKCZAZl9oHkVpXEbo 8a0tcElBUBWcqbvVCDJ7fy8xzsTb5PFZmqkwizvd+FneB+zQbL0+JC5tuyM6nvYKTvG9WYbGA qFZJVp/RcnncLDg/02pj3K+vCyZgCnPkxyhLyjEVY1/0CR2392coZkJ6UlQ1KWCu0GGrI9Xeb vOB4S8c4e0FoyRSozcN+e3kUqEvJHjNqSHdlmcXImLFo3ltouUo5nRGbGhf9KqMLN3+3EBd8m wDLket8bH8HpSFJx9y2D1RDyUZhSheUW1bDE/9SlHb5tV1FytTs5VpU+Ay6+KLjnheaD4ovL6 6cJLWyLyWD9u4RtBQuu327/dER7m7KGJiVoNuRSFV6oRoaMrlohS3kQrdw4WqjNqZAv/pPcuJ ByDeSLNmkMW47I= Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jim Porter writes: Hi Jim, >> Nice. I've pushed them to the emacs-28 branch in your name, merged also >> to the master branch. Maybe you could also add a test for quoted file >> names, i.e. a file name "/:/home/albinus/" should *not* be >> abbreviated. See files-tests-file-name-non-special-* tests in >> files-tests.el. > > Ok, I added a test for this in the first patch. Thanks. However, I believe this test shall be called `files-tests-file-name-non-special-file-abbreviate-file-name', like the other non-special tests. And perhaps it shall be located prior `files-tests-file-name-non-special-access-file'. > I added a NEWS entry to mention that `abbreviate-file-name' respects > file name handlers now. I didn't update the Tramp entry though since I > haven't added "~user" support (at least, not yet...). See below for > some explanation. Agreed. > I looked at doing this, but it was a bit more complex than I thought > it would be initially, so I've held off for now. This does seem like a > useful feature though, and would probably be nice to have for local > paths too. It should be possible to enhance `expand-file-name' to > cache the "~user" -> "/home/user" mapping similarly to how > `tramp-sh-handle-expand-file-name' does. > > I could keep working on this patch to add "~user" support, or maybe > that could be a followup for later. ATM, it might be sufficient to push what we have. Adding "~user" support might come later. > Incidentally, another interesting > feature would be abbreviating default methods/users. That's probably > easy when Tramp has filled in those values since the file name has > `tramp-default' properties set. I'm not sure how tricky it would be to > do without those properties though. You cannot trust the `tramp-default' property. It is set when a method or user or host name is expanded as in "/ssh::". But when the host name is used explicitly by the user, as in "/ssh:host:", the property is not set, even if "host" is the default. Same for user. But it shouldn't be too hard to determine the defaults. We have tramp-default-method{-alist}, tramp-default-user{-alist}, and tramp-default-host{-alist}. All needed information is there. > I've tried to reduce as much duplication as possible here by creating > two new functions: `directory-abbrev-make-regexp' and > `directory-abbrev-apply'. The former just takes a directory and > returns a regexp that would match it, and the latter loops over > `directory-abbrev-alist' and applies the transformations. > > I tried to do this via `(tramp-run-real-handler #'abbreviate-file-name > ...)', but it ended up being simpler (and faster to execute) this way. Fine, let's go this way. After your patch, we'll need some backward compatibility voodoo in Tramp, but this can wait until the dust has settle= d. > I also attached a slightly-updated benchmark script as well as new > results. Performance on local file names is the same as before the > patch, and just slightly faster than before with Tramp file > names. (Most of the performance improvements here happened in > bug#51699, so I mainly wanted to maintain the current performance in > this patch.) Good, no regression :-) Some few comments on the code: > --- a/etc/NEWS > +++ b/etc/NEWS > +** Tramp > + > ++++ This shall be rather "---". We don't add documentation (yet) for this new Tramp feature. > +*** Tramp supports abbreviating remote home directories now. > +When calling 'abbreviate-file-name' on a Tramp filename, the result > +will abbreviate the home directory to "~". This might be misleading. ... the result will abbreviate the remote home directory to "/ssh:user@host:~" (for example). > --- a/lisp/net/tramp-sh.el > +++ b/lisp/net/tramp-sh.el > @@ -942,7 +942,8 @@ tramp-vc-registered-read-file-names > ;; New handlers should be added here. > ;;;###tramp-autoload > (defconst tramp-sh-file-name-handler-alist > - '((access-file . tramp-handle-access-file) > + '((abbreviate-file-name . tramp-sh-handle-abbreviate-file-name) > + (access-file . tramp-handle-access-file) Well, I believe we can implement abbreviation also for other Tramp backends, like in tramp-sudoedit.el. So it might be better to call this handler `tramp-handle-abbreviate-file-name'. > +(defun tramp-sh-handle-abbreviate-file-name (filename) This shall be in tramp.el then, as `tramp-handle-abbreviate-file-name'. > + "Like `abbreviate-file-name' for Tramp files." > + (let* ((case-fold-search (tramp-handle-file-name-case-insensitive-p f= ilename)) Please use `case-insensitive-p'. We don't know whether there will be other implementation for this magic function in the future. And we shall not bypass the checks in `tramp-file-name-handler', which are important for parallel invocations of Tramp handlers. > + (home-dir > + (with-parsed-tramp-file-name filename nil > + (with-tramp-connection-property v "home-directory" > + (directory-abbrev-apply (tramp-sh-handle-expand-file-name Same here. Please use `expand-file-name'. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 15 01:58:41 2021 Received: (at 51622) by debbugs.gnu.org; 15 Nov 2021 06:58:41 +0000 Received: from localhost ([127.0.0.1]:52423 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmVwu-0007Sh-MF for submit@debbugs.gnu.org; Mon, 15 Nov 2021 01:58:41 -0500 Received: from mail-pl1-f172.google.com ([209.85.214.172]:41880) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmVws-0007SR-2y for 51622@debbugs.gnu.org; Mon, 15 Nov 2021 01:58:40 -0500 Received: by mail-pl1-f172.google.com with SMTP id k4so13601965plx.8 for <51622@debbugs.gnu.org>; Sun, 14 Nov 2021 22:58:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=65toNNatvFEHLb9XxtGykdiUZ7yP1WMWseRJu8uW3Sk=; b=ZKyK5Z8QKiypeaojR8CkM5Ebhinbh4DkhQ2VwL97oCnPt681lfKNp4GPUiPSa/wqSW j4Ij6aK8L8Px8MY/Uks94drbu+KlY0y8CKOOP/yrtadriUcbIP/eIpzQmq0Lfxh8pSB2 APHRpoo3uC41XhyD47Mxii9bTztz4YL04NTFJ1DWBngr+qBArUiZz7fFSOD/H76QFiuz pfM7HVvQsXgFR7r0WuGysi6w/r9vKx5PVWlR2qs62t3phZ6FVVH97NyZyJIB4JMw7w8s +FRGWlNya95TkuADTTWV2lmQJmrm1yMqI5Xxrfng3GL1xYSABeZ11sGqrEwy/hckmCtK 3Uug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=65toNNatvFEHLb9XxtGykdiUZ7yP1WMWseRJu8uW3Sk=; b=CXSW+e/baBAdPJDCpSSRoXlBGRjczpETuY4sD1s403EarbL5o1mjFGhPq+C70PdXuP dCo4kKbqxMimzif4Aa+hThnGyY2EZtEe0ZWKcrLfJORRID2LjD/KX8d63K89sADyMqt4 IpzehlNJsWYSnl7P3AeYvFFAYlI4sS8gf6PiQlkJNP0TLhm6n0JT96rL2CwiTHmOzLvU PbebhSmZ/2aLl7eW2JgwniySbiOtc0L8BBMutLmcWeDN5b7Rg0CRexzLVOsuT2lGtJ3K 4qRSV1nX2no/qWoM9bU74xE9pyCkWXHtAqcuaM3did0+DtdTE+hGNywZ5iwjtFoHQJhe wS4g== X-Gm-Message-State: AOAM532+ojqZStFYaFS2KXdve26eOF39SY9tIAb3QU29dr9W1k4K6nBK IVjfxbm0NkBooxO8S2RnGmOaZUfrN0k= X-Google-Smtp-Source: ABdhPJx5LYLk5wdkTZpDZ/v87mBkP+8CpXTAKYva6QyYkOhAYkAVaSCZjny8xFbsHRE5ZXiJPwK/PQ== X-Received: by 2002:a17:90b:3ecd:: with SMTP id rm13mr43439617pjb.157.1636959512108; Sun, 14 Nov 2021 22:58:32 -0800 (PST) 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 lw1sm18424196pjb.38.2021.11.14.22.58.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 14 Nov 2021 22:58:31 -0800 (PST) Subject: Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> <874k8eg5mf.fsf@gmx.de> From: Jim Porter Message-ID: <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> Date: Sun, 14 Nov 2021 22:58:31 -0800 MIME-Version: 1.0 In-Reply-To: <874k8eg5mf.fsf@gmx.de> Content-Type: multipart/mixed; boundary="------------5367A389331408C0FC513C60" Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/14/2021 6:43 AM, Michael Albinus wrote: > Thanks. However, I believe this test shall be called > `files-tests-file-name-non-special-file-abbreviate-file-name', like the > other non-special tests. And perhaps it shall be located prior > `files-tests-file-name-non-special-access-file'. Ok, done. >> Incidentally, another interesting >> feature would be abbreviating default methods/users. That's probably >> easy when Tramp has filled in those values since the file name has >> `tramp-default' properties set. I'm not sure how tricky it would be to >> do without those properties though. > > You cannot trust the `tramp-default' property. It is set when a method > or user or host name is expanded as in "/ssh::". But when the host name > is used explicitly by the user, as in "/ssh:host:", the property is not > set, even if "host" is the default. Same for user. > > But it shouldn't be too hard to determine the defaults. We have > tramp-default-method{-alist}, tramp-default-user{-alist}, and > tramp-default-host{-alist}. All needed information is there. Right, that confirms what I suspected. I'll try to look into this in more detail later when I get the chance. >> I also attached a slightly-updated benchmark script as well as new >> results. Performance on local file names is the same as before the >> patch, and just slightly faster than before with Tramp file >> names. (Most of the performance improvements here happened in >> bug#51699, so I mainly wanted to maintain the current performance in >> this patch.) > > Good, no regression :-) Fixing your comments below *did* regress performance for abbreviating Tramp file names compared to current master (it takes 1.47x as long now in the worst case), but it's still considerably faster than Emacs 28. I've attached updated benchmark results to show the difference. > This shall be rather "---". We don't add documentation (yet) for this > new Tramp feature. Fixed. >> +*** Tramp supports abbreviating remote home directories now. >> +When calling 'abbreviate-file-name' on a Tramp filename, the result >> +will abbreviate the home directory to "~". > > This might be misleading. ... the result will abbreviate the remote home > directory to "/ssh:user@host:~" (for example). Ok, I tried to make this section clearer. > Well, I believe we can implement abbreviation also for other Tramp > backends, like in tramp-sudoedit.el. So it might be better to call this > handler `tramp-handle-abbreviate-file-name'. Done. I added this for the sudoedit and smb methods, since both support "~" expansion in `expand-file-name'. That *should* be sufficient, but I've never used either of those methods, so I could be wrong... > Please use `case-insensitive-p'. We don't know whether there will be > other implementation for this magic function in the future. And we shall > not bypass the checks in `tramp-file-name-handler', which are important > for parallel invocations of Tramp handlers. Fixed (same with `expand-file-name'). These changes slow things down a fair bit, but that's mostly due to checking for the right file name handler more often. Like I said above though, it's still a lot faster than Emacs 28 (thanks to bug#51699). --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=UTF-8; name="0001-Add-another-abbreviate-file-name-test.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-another-abbreviate-file-name-test.patch" RnJvbSA0ZjIzNTIxNWM5NjFmN2EyZjFjMzViMTMyN2FmNzc5NGFiMjUwZTRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTMgTm92IDIwMjEgMTc6Mzg6MzYgLTA4MDAKU3ViamVjdDogW1BB VENIIDEvMl0gQWRkIGFub3RoZXIgJ2FiYnJldmlhdGUtZmlsZS1uYW1lJyB0ZXN0CgoqIHRl c3QvbGlzcC9maWxlcy10ZXN0cy5lbAooZmlsZXMtdGVzdHMtZmlsZS1uYW1lLW5vbi1zcGVj aWFsLWFiYnJldmlhdGUtZmlsZS1uYW1lKTogTmV3IHRlc3QuCi0tLQogdGVzdC9saXNwL2Zp bGVzLXRlc3RzLmVsIHwgOSArKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwgYi90ZXN0L2xp c3AvZmlsZXMtdGVzdHMuZWwKaW5kZXggZDAwZjFjZTMyNi4uMmM0NTU3ZWFkNiAxMDA2NDQK LS0tIGEvdGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9maWxlcy10 ZXN0cy5lbApAQCAtNDY1LDYgKzQ2NSwxNSBAQCBmaWxlcy10ZXN0cy0tbmV3LW5hbWUKICAg KGxldCAoZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QpCiAgICAgKGNvbmNhdCAoZmlsZS1uYW1l LXNhbnMtZXh0ZW5zaW9uIG5hbWUpIHBhcnQgKGZpbGUtbmFtZS1leHRlbnNpb24gbmFtZSB0 KSkpKQogCisoZXJ0LWRlZnRlc3QgZmlsZXMtdGVzdHMtZmlsZS1uYW1lLW5vbi1zcGVjaWFs LWFiYnJldmlhdGUtZmlsZS1uYW1lICgpCisgIChsZXQqICgoaG9tZWRpciB0ZW1wb3Jhcnkt ZmlsZS1kaXJlY3RvcnkpCisgICAgICAgICAocHJvY2Vzcy1lbnZpcm9ubWVudCAoY29ucyAo Zm9ybWF0ICJIT01FPSVzIiBob21lZGlyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvY2Vzcy1lbnZpcm9ubWVudCkpCisgICAgICAgICAoYWJicmV2aWF0ZWQt aG9tZS1kaXIgbmlsKSkKKyAgICA7OyBDaGVjayB0aGF0IGFiYnJldmlhdGlvbiBkb2Vzbid0 IG9jY3VyIGZvciBxdW90ZWQgZmlsZSBuYW1lcy4KKyAgICAoc2hvdWxkIChlcXVhbCAoY29u Y2F0ICIvOiIgaG9tZWRpciAiZm9vL2JhciIpCisgICAgICAgICAgICAgICAgICAgKGFiYnJl dmlhdGUtZmlsZS1uYW1lIChjb25jYXQgIi86IiBob21lZGlyICJmb28vYmFyIikpKSkpKQor CiAoZXJ0LWRlZnRlc3QgZmlsZXMtdGVzdHMtZmlsZS1uYW1lLW5vbi1zcGVjaWFsLWFjY2Vz cy1maWxlICgpCiAgIChmaWxlcy10ZXN0cy0td2l0aC10ZW1wLW5vbi1zcGVjaWFsICh0bXBm aWxlIG5vc3BlY2lhbCkKICAgICA7OyBCb3RoIHZlcnNpb25zIG9mIHRoZSBmaWxlIG5hbWUg d29yay4KLS0gCjIuMjUuMQoK --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=UTF-8; name="0002-Support-abbreviating-home-directory-of-Tramp-filenam.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Support-abbreviating-home-directory-of-Tramp-filenam.pa"; filename*1="tch" RnJvbSA4NjYzYTg3MmE1M2YxMzk0ODA5NmE5NWFkYTkyZTNhYzA5OWVlZTVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMTQgTm92IDIwMjEgMjI6NDE6MzAgLTA4MDAKU3ViamVjdDogW1BB VENIIDIvMl0gU3VwcG9ydCBhYmJyZXZpYXRpbmcgaG9tZSBkaXJlY3Rvcnkgb2YgVHJhbXAg ZmlsZW5hbWVzCgoqIGxpc3AvZmlsZXMuZWwgKGRpcmVjdG9yeS1hYmJyZXYtbWFrZS1yZWdl eHApOgooZGlyZWN0b3J5LWFiYnJldi1hcHBseSk6IE5ldyBmdW5jdGlvbnMuCihhYmJyZXZp YXRlLWZpbGUtbmFtZSk6IENoZWNrIGZvciBmaWxlIG5hbWUgaGFuZGxlci4KCiogbGlzcC90 cmFtcC5lbCAodHJhbXAtc2gtaGFuZGxlLWFiYnJldmlhdGUtZmlsZS1uYW1lKTogTmV3IGZ1 bmN0aW9uLgoKKiBsaXNwL2ZpbGVzLmVsIChmaWxlLW5hbWUtbm9uLXNwZWNpYWwpOgoqIGxp c3AvbmV0L3RyYW1wLmVsICh0cmFtcC1maWxlLW5hbWUtZm9yLW9wZXJhdGlvbik6CiogbGlz cC9uZXQvdHJhbXAtc2guZWwgKHRyYW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0KToK KiBsaXNwL25ldC90cmFtcC1zbWIuZWwgKHRyYW1wLXNtYi1maWxlLW5hbWUtaGFuZGxlci1h bGlzdCk6CiogbGlzcC9uZXQvdHJhbXAtc3Vkb2VkaXQuZWwgKHRyYW1wLXN1ZG9lZGl0LWZp bGUtbmFtZS1oYW5kbGVyLWFsaXN0KToKQWRkICdhYmJyZXZpYXRlLWZpbGUtbmFtZScuCgoq IHRlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgKHRyYW1wLXRlc3QwNy1hYmJyZXZpYXRl LWZpbGUtbmFtZSk6Ck5ldyB0ZXN0LgoKKiBkb2MvbGlzcHJlZi9maWxlcy50ZXhpIChNYWdp YyBGaWxlIE5hbWVzKTogTWVudGlvbgonYWJicmV2aWF0ZS1maWxlLW5hbWUnIGluIHRoZSBs aXN0IG9mIG1hZ2ljIGZpbGUgbmFtZSBoYW5kbGVycy4KCiogZXRjL05FV1M6IEFubm91bmNl IHRoZSBjaGFuZ2UuCi0tLQogZG9jL2xpc3ByZWYvZmlsZXMudGV4aSAgICAgICB8ICAgNyAr LQogZXRjL05FV1MgICAgICAgICAgICAgICAgICAgICB8ICAxMSArKysKIGxpc3AvZmlsZXMu ZWwgICAgICAgICAgICAgICAgfCAxNDMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0KIGxpc3AvbmV0L3RyYW1wLXNoLmVsICAgICAgICAgfCAgIDMgKy0KIGxpc3AvbmV0 L3RyYW1wLXNtYi5lbCAgICAgICAgfCAgIDMgKy0KIGxpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0 LmVsICAgfCAgIDMgKy0KIGxpc3AvbmV0L3RyYW1wLmVsICAgICAgICAgICAgfCAgMTkgKysr KysKIHRlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgfCAgMjUgKysrKysrCiA4IGZpbGVz IGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCA3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2MvbGlzcHJlZi9maWxlcy50ZXhpIGIvZG9jL2xpc3ByZWYvZmlsZXMudGV4aQpp bmRleCBkOTM3NzBhMGQyLi40YjExNGJhMTExIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9m aWxlcy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL2ZpbGVzLnRleGkKQEAgLTMzMDgsOCArMzMw OCw4IEBAIE1hZ2ljIEZpbGUgTmFtZXMKIAogQGlmbm90dGV4CiBAbm9pbmRlbnQKLUBjb2Rl e2FjY2Vzcy1maWxlfSwgQGNvZGV7YWRkLW5hbWUtdG8tZmlsZX0sCi1AY29kZXtieXRlLWNv bXBpbGVyLWJhc2UtZmlsZS1uYW1lfSxAKgorQGNvZGV7YWJicmV2aWF0ZS1maWxlLW5hbWV9 LCBAY29kZXthY2Nlc3MtZmlsZX0sCitAY29kZXthZGQtbmFtZS10by1maWxlfSwgQGNvZGV7 Ynl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZX0sQCoKIEBjb2Rle2NvcHktZGlyZWN0b3J5 fSwgQGNvZGV7Y29weS1maWxlfSwKIEBjb2Rle2RlbGV0ZS1kaXJlY3Rvcnl9LCBAY29kZXtk ZWxldGUtZmlsZX0sCiBAY29kZXtkaWZmLWxhdGVzdC1iYWNrdXAtZmlsZX0sCkBAIC0zMzY4 LDcgKzMzNjgsOCBAQCBNYWdpYyBGaWxlIE5hbWVzCiBAaWZ0ZXgKIEBub2luZGVudAogQGZs dXNobGVmdAotQGNvZGV7YWNjZXNzLWZpbGV9LCBAY29kZXthZGQtbmFtZS10by1maWxlfSwK K0Bjb2Rle2FiYnJldmlhdGUtZmlsZS1uYW1lfSwgQGNvZGV7YWNjZXNzLWZpbGV9LAorQGNv ZGV7YWRkLW5hbWUtdG8tZmlsZX0sCiBAY29kZXtieXRlLWNvbUBkaXNjcmV0aW9uYXJ5e317 fXt9cGlsZXItYmFzZS1maWxlLW5hbWV9LAogQGNvZGV7Y29weS1kaXJlY3Rvcnl9LCBAY29k ZXtjb3B5LWZpbGV9LAogQGNvZGV7ZGVsZXRlLWRpcmVjdG9yeX0sIEBjb2Rle2RlbGV0ZS1m aWxlfSwKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggYzM2MmU1NmNl ZS4uMTczODkxMGNiYyAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIvZXRjL05FV1MKQEAg LTQ5Nyw2ICs0OTcsMTQgQEAgVGhlIG5ld2x5IGNyZWF0ZWQgYnVmZmVyIHdpbGwgYmUgZGlz cGxheWVkIHZpYSAnZGlzcGxheS1idWZmZXInLCB3aGljaAogY2FuIGJlIGN1c3RvbWl6ZWQg dGhyb3VnaCB0aGUgdXN1YWwgbWVjaGFuaXNtIG9mICdkaXNwbGF5LWJ1ZmZlci1hbGlzdCcK IGFuZCBmcmllbmRzLgogCisqKiBUcmFtcAorCistLS0KKyoqKiBUcmFtcCBzdXBwb3J0cyBh YmJyZXZpYXRpbmcgcmVtb3RlIGhvbWUgZGlyZWN0b3JpZXMgbm93LgorV2hlbiBjYWxsaW5n ICdhYmJyZXZpYXRlLWZpbGUtbmFtZScgb24gYSBUcmFtcCBmaWxlbmFtZSwgdGhlIHJlc3Vs dAord2lsbCBhYmJyZXZpYXRlIHRoZSB1c2VyJ3MgaG9tZSBkaXJlY3RvcnksIGZvciBleGFt cGxlIGJ5IGFiYnJldmlhdGluZworIi9zc2g6dXNlckBob3N0Oi9ob21lL3VzZXIiIHRvICIv c3NoOnVzZXJAaG9zdDp+Ii4KKwogDAogKiBOZXcgTW9kZXMgYW5kIFBhY2thZ2VzIGluIEVt YWNzIDI5LjEKIApAQCAtNjMyLDYgKzY0MCw5IEBAIFRoaXMgY29udmVuaWVuY2UgZnVuY3Rp b24gaXMgdXNlZnVsIHdoZW4gd3JpdGluZyBjb2RlIHRoYXQgcGFyc2VzCiBmaWxlcyBhdCBy dW4tdGltZSwgYW5kIGFsbG93cyBMaXNwIHByb2dyYW1zIHRvIHJlLXBhcnNlIGZpbGVzIG9u bHkKIHdoZW4gdGhleSBoYXZlIGNoYW5nZWQuCiAKKysrKworKiogJ2FiYnJldmlhdGUtZmls ZS1uYW1lJyBub3cgcmVzcGVjdHMgbWFnaWMgZmlsZSBuYW1lIGhhbmRsZXJzLgorCiAtLS0K ICoqIE5ldyBmdW5jdGlvbiAnZm9udC1oYXMtY2hhci1wJy4KIFRoaXMgY2FuIGJlIHVzZWQg dG8gY2hlY2sgd2hldGhlciBhIHNwZWNpZmljIGZvbnQgaGFzIGEgZ2x5cGggZm9yIGEKZGlm ZiAtLWdpdCBhL2xpc3AvZmlsZXMuZWwgYi9saXNwL2ZpbGVzLmVsCmluZGV4IDM0OTBkMDQy OGEuLjQ5YmYwNmJmYzEgMTAwNjQ0Ci0tLSBhL2xpc3AvZmlsZXMuZWwKKysrIGIvbGlzcC9m aWxlcy5lbApAQCAtNjgsNiArNjgsMzEgQEAgZGlyZWN0b3J5LWFiYnJldi1hbGlzdAogICA6 Z3JvdXAgJ2FiYnJldgogICA6Z3JvdXAgJ2ZpbmQtZmlsZSkKIAorKGRlZnVuIGRpcmVjdG9y eS1hYmJyZXYtbWFrZS1yZWdleHAgKGRpcmVjdG9yeSkKKyAgIkNyZWF0ZSBhIHJlZ2V4cCB0 byBtYXRjaCBESVJFQ1RPUlkgZm9yIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0Jy4iCisgIChs ZXQgKChyZWdleHAKKyAgICAgICAgIDs7IFdlIGluY2x1ZGUgYSBzbGFzaCBhdCB0aGUgZW5k LCB0byBhdm9pZCBzcHVyaW91cworICAgICAgICAgOzsgbWF0Y2hlcyBzdWNoIGFzIGAvdXNy L2Zvb2Jhcicgd2hlbiB0aGUgaG9tZSBkaXIgaXMKKyAgICAgICAgIDs7IGAvdXNyL2Zvbycu CisgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgZGlyZWN0b3J5KSAiXFwo L1xcfFxcJ1xcKSIpKSkKKyAgICA7OyBUaGUgdmFsdWUgb2YgcmVnZXhwIGNvdWxkIGJlIG11 bHRpYnl0ZSBvciB1bmlieXRlLiAgSW4gdGhlCisgICAgOzsgbGF0dGVyIGNhc2UsIHdlIG5l ZWQgdG8gZGVjb2RlIGl0LgorICAgIChpZiAobXVsdGlieXRlLXN0cmluZy1wIHJlZ2V4cCkK KyAgICAgICAgcmVnZXhwCisgICAgICAoZGVjb2RlLWNvZGluZy1zdHJpbmcgcmVnZXhwCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93 cy1udCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3V0Zi04CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGUtY29kaW5nLXN5c3RlbSkpKSkpCisKKyhk ZWZ1biBkaXJlY3RvcnktYWJicmV2LWFwcGx5IChmaWxlbmFtZSkKKyAgIkFwcGx5IHRoZSBh YmJyZXZpYXRpb25zIGluIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0JyB0byBGSUxFTkFNRS4K K05vdGUgdGhhdCB3aGVuIGNhbGxpbmcgdGhpcywgeW91IHNob3VsZCBzZXQgYGNhc2UtZm9s ZC1zZWFyY2gnIGFzCithcHByb3ByaWF0ZSBmb3IgdGhlIGZpbGVzeXN0ZW0gdXNlZCBmb3Ig RklMRU5BTUUuIgorICAoZG9saXN0IChkaXItYWJicmV2IGRpcmVjdG9yeS1hYmJyZXYtYWxp c3QgZmlsZW5hbWUpCisgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYp IGZpbGVuYW1lKQorICAgICAgICAgKHNldHEgZmlsZW5hbWUgKGNvbmNhdCAoY2RyIGRpci1h YmJyZXYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgZmls ZW5hbWUgKG1hdGNoLWVuZCAwKSkpKSkpKQorCiAoZGVmY3VzdG9tIG1ha2UtYmFja3VwLWZp bGVzIHQKICAgIk5vbi1uaWwgbWVhbnMgbWFrZSBhIGJhY2t1cCBvZiBhIGZpbGUgdGhlIGZp cnN0IHRpbWUgaXQgaXMgc2F2ZWQuCiBUaGlzIGNhbiBiZSBkb25lIGJ5IHJlbmFtaW5nIHRo ZSBmaWxlIG9yIGJ5IGNvcHlpbmcuCkBAIC0yMDE1LDczICsyMDQwLDU0IEBAIGFiYnJldmlh dGUtZmlsZS1uYW1lCiBzdGFydGVkIEVtYWNzLCBzZXQgYGFiYnJldmlhdGVkLWhvbWUtZGly JyB0byBuaWwgc28gaXQgd2lsbCBiZSByZWNhbGN1bGF0ZWQpLiIKICAgOzsgR2V0IHJpZCBv ZiB0aGUgcHJlZml4ZXMgYWRkZWQgYnkgdGhlIGF1dG9tb3VudGVyLgogICAoc2F2ZS1tYXRj aC1kYXRhICAgICAgICAgICAgICAgICAgICAgIDtGSVhNRTogV2h5PwotICAgIChpZiAoYW5k IGF1dG9tb3VudC1kaXItcHJlZml4Ci0JICAgICAoc3RyaW5nLW1hdGNoIGF1dG9tb3VudC1k aXItcHJlZml4IGZpbGVuYW1lKQotCSAgICAgKGZpbGUtZXhpc3RzLXAgKGZpbGUtbmFtZS1k aXJlY3RvcnkKLQkJCSAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSAoMS0gKG1hdGNoLWVuZCAw KSkpKSkpCi0JKHNldHEgZmlsZW5hbWUgKHN1YnN0cmluZyBmaWxlbmFtZSAoMS0gKG1hdGNo LWVuZCAwKSkpKSkKLSAgICA7OyBBdm9pZCB0cmVhdGluZyAvaG9tZS9mb28gYXMgL2hvbWUv Rm9vIGR1cmluZyBgficgc3Vic3RpdHV0aW9uLgotICAgIChsZXQgKChjYXNlLWZvbGQtc2Vh cmNoIChmaWxlLW5hbWUtY2FzZS1pbnNlbnNpdGl2ZS1wIGZpbGVuYW1lKSkpCi0gICAgICA7 OyBJZiBhbnkgZWx0IG9mIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgbWF0Y2hlcyB0aGlzIG5h bWUsCi0gICAgICA7OyBhYmJyZXZpYXRlIGFjY29yZGluZ2x5LgotICAgICAgKGRvbGlzdCAo ZGlyLWFiYnJldiBkaXJlY3RvcnktYWJicmV2LWFsaXN0KQotCShpZiAoc3RyaW5nLW1hdGNo IChjYXIgZGlyLWFiYnJldikgZmlsZW5hbWUpCi0JICAgIChzZXRxIGZpbGVuYW1lCi0JCSAg KGNvbmNhdCAoY2RyIGRpci1hYmJyZXYpCi0JCQkgIChzdWJzdHJpbmcgZmlsZW5hbWUgKG1h dGNoLWVuZCAwKSkpKSkpCi0gICAgICA7OyBDb21wdXRlIGFuZCBzYXZlIHRoZSBhYmJyZXZp YXRlZCBob21lZGlyIG5hbWUuCi0gICAgICA7OyBXZSBkZWZlciBjb21wdXRpbmcgdGhpcyB1 bnRpbCB0aGUgZmlyc3QgdGltZSBpdCdzIG5lZWRlZCwgdG8KLSAgICAgIDs7IGdpdmUgdGlt ZSBmb3IgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCB0byBiZSBzZXQgcHJvcGVybHkuCi0gICAg ICA7OyBXZSBpbmNsdWRlIGEgc2xhc2ggYXQgdGhlIGVuZCwgdG8gYXZvaWQgc3B1cmlvdXMg bWF0Y2hlcwotICAgICAgOzsgc3VjaCBhcyBgL3Vzci9mb29iYXInIHdoZW4gdGhlIGhvbWUg ZGlyIGlzIGAvdXNyL2ZvbycuCi0gICAgICAodW5sZXNzIGFiYnJldmlhdGVkLWhvbWUtZGly Ci0gICAgICAgIChwdXQgJ2FiYnJldmlhdGVkLWhvbWUtZGlyICdob21lIChleHBhbmQtZmls ZS1uYW1lICJ+IikpCi0gICAgICAgIChzZXRxIGFiYnJldmlhdGVkLWhvbWUtZGlyCi0gICAg ICAgICAgICAgIChsZXQqICgoYWJicmV2aWF0ZWQtaG9tZS1kaXIgIlxcYFxcJy4iKSA7SW1w b3NzaWJsZSByZWdleHAuCi0gICAgICAgICAgICAgICAgICAgICAocmVnZXhwCi0gICAgICAg ICAgICAgICAgICAgICAgKGNvbmNhdCAiXFxgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHJlZ2V4cC1xdW90ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChh YmJyZXZpYXRlLWZpbGUtbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Z2V0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAnaG9tZSkpKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlxcKC9cXHxcXCdcXCkiKSkpCi0gICAgICAgICAgICAgICAgOzsgRGVw ZW5kaW5nIG9uIHdoZXRoZXIgZGVmYXVsdC1kaXJlY3RvcnkgZG9lcyBvcgotICAgICAgICAg ICAgICAgIDs7IGRvZXNuJ3QgaW5jbHVkZSBub24tQVNDSUkgY2hhcmFjdGVycywgdGhlIHZh bHVlCi0gICAgICAgICAgICAgICAgOzsgb2YgYWJicmV2aWF0ZWQtaG9tZS1kaXIgY291bGQg YmUgbXVsdGlieXRlIG9yCi0gICAgICAgICAgICAgICAgOzsgdW5pYnl0ZS4gIEluIHRoZSBs YXR0ZXIgY2FzZSwgd2UgbmVlZCB0byBkZWNvZGUKLSAgICAgICAgICAgICAgICA7OyBpdC4g IE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgdGhlCi0gICAgICAgICAg ICAgICAgOzsgZmlyc3QgdGltZSAoZnJvbSBzdGFydHVwLmVsKSB3aGVuCi0gICAgICAgICAg ICAgICAgOzsgbG9jYWxlLWNvZGluZy1zeXN0ZW0gaXMgYWxyZWFkeSBzZXQgdXAuCi0gICAg ICAgICAgICAgICAgKGlmIChtdWx0aWJ5dGUtc3RyaW5nLXAgcmVnZXhwKQotICAgICAgICAg ICAgICAgICAgICByZWdleHAKLSAgICAgICAgICAgICAgICAgIChkZWNvZGUtY29kaW5nLXN0 cmluZyByZWdleHAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aWYgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAndXRmLTgKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvY2FsZS1jb2Rpbmctc3lzdGVtKSkpKSkpCi0KLSAgICAg IDs7IElmIEZJTEVOQU1FIHN0YXJ0cyB3aXRoIHRoZSBhYmJyZXZpYXRlZCBob21lZGlyLAot ICAgICAgOzsgYW5kIH4gaGFzbid0IGNoYW5nZWQgc2luY2UgYWJicmV2aWF0ZWQtaG9tZS1k aXIgd2FzIHNldCwKLSAgICAgIDs7IG1ha2UgaXQgc3RhcnQgd2l0aCBgficgaW5zdGVhZC4K LSAgICAgIDs7IElmIH4gaGFzIGNoYW5nZWQsIHdlIGlnbm9yZSBhYmJyZXZpYXRlZC1ob21l LWRpciByYXRoZXIgdGhhbgotICAgICAgOzsgaW52YWxpZGF0aW5nIGl0LCBvbiB0aGUgYXNz dW1wdGlvbiB0aGF0IGEgY2hhbmdlIGluIEhPTUUKLSAgICAgIDs7IGlzIGxpa2VseSB0ZW1w b3JhcnkgKGVnIGZvciB0ZXN0aW5nKS4KLSAgICAgIDs7IEZJWE1FIElzIGl0IGV2ZW4gd29y dGggY2FjaGluZyBhYmJyZXZpYXRlZC1ob21lLWRpcj8KLSAgICAgIDs7IFJlZjogaHR0cHM6 Ly9kZWJidWdzLmdudS5vcmcvMTk2NTcjMjAKLSAgICAgIChsZXQgKG1iMSkKLSAgICAgICAg KGlmIChhbmQgKHN0cmluZy1tYXRjaCBhYmJyZXZpYXRlZC1ob21lLWRpciBmaWxlbmFtZSkK LSAgICAgICAgICAgICAgICAgKHNldHEgbWIxIChtYXRjaC1iZWdpbm5pbmcgMSkpCi0JICAg ICAgICAgOzsgSWYgdGhlIGhvbWUgZGlyIGlzIGp1c3QgLywgZG9uJ3QgY2hhbmdlIGl0Lgot CSAgICAgICAgIChub3QgKGFuZCAoPSAobWF0Y2gtZW5kIDApIDEpCi0JCQkgICAoPSAoYXJl ZiBmaWxlbmFtZSAwKSA/LykpKQotCSAgICAgICAgIDs7IE1TLURPUyByb290IGRpcmVjdG9y aWVzIGNhbiBjb21lIHdpdGggYSBkcml2ZSBsZXR0ZXI7Ci0JICAgICAgICAgOzsgTm92ZWxs IE5ldHdhcmUgYWxsb3dzIGRyaXZlIGxldHRlcnMgYmV5b25kIGBaOicuCi0JICAgICAgICAg KG5vdCAoYW5kIChtZW1xIHN5c3RlbS10eXBlICcobXMtZG9zIHdpbmRvd3MtbnQgY3lnd2lu KSkKLQkJCSAgIChzdHJpbmctbWF0Y2ggIlxcYFthLXpBLWBdOi9cXCciIGZpbGVuYW1lKSkp Ci0gICAgICAgICAgICAgICAgIChlcXVhbCAoZ2V0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAn aG9tZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lICJ+Iikp KQotCSAgICAoc2V0cSBmaWxlbmFtZQotCQkgIChjb25jYXQgIn4iCi0JCQkgIChzdWJzdHJp bmcgZmlsZW5hbWUgbWIxKSkpKQotICAgICAgICBmaWxlbmFtZSkpKSkKKyAgICAoaWYtbGV0 ICgoaGFuZGxlciAoZmluZC1maWxlLW5hbWUtaGFuZGxlciBmaWxlbmFtZSAnYWJicmV2aWF0 ZS1maWxlLW5hbWUpKSkKKyAgICAgICAgKGZ1bmNhbGwgaGFuZGxlciAnYWJicmV2aWF0ZS1m aWxlLW5hbWUgZmlsZW5hbWUpCisgICAgICAoaWYgKGFuZCBhdXRvbW91bnQtZGlyLXByZWZp eAorICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCBhdXRvbW91bnQtZGlyLXByZWZpeCBm aWxlbmFtZSkKKyAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wIChmaWxlLW5hbWUtZGly ZWN0b3J5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxl bmFtZSAoMS0gKG1hdGNoLWVuZCAwKSkpKSkpCisgICAgICAgICAgKHNldHEgZmlsZW5hbWUg KHN1YnN0cmluZyBmaWxlbmFtZSAoMS0gKG1hdGNoLWVuZCAwKSkpKSkKKyAgICAgIDs7IEF2 b2lkIHRyZWF0aW5nIC9ob21lL2ZvbyBhcyAvaG9tZS9Gb28gZHVyaW5nIGB+JyBzdWJzdGl0 dXRpb24uCisgICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2Ut aW5zZW5zaXRpdmUtcCBmaWxlbmFtZSkpKQorICAgICAgICA7OyBJZiBhbnkgZWx0IG9mIGRp cmVjdG9yeS1hYmJyZXYtYWxpc3QgbWF0Y2hlcyB0aGlzIG5hbWUsCisgICAgICAgIDs7IGFi YnJldmlhdGUgYWNjb3JkaW5nbHkuCisgICAgICAgIChzZXRxIGZpbGVuYW1lIChkaXJlY3Rv cnktYWJicmV2LWFwcGx5IGZpbGVuYW1lKSkKKworICAgICAgICA7OyBDb21wdXRlIGFuZCBz YXZlIHRoZSBhYmJyZXZpYXRlZCBob21lZGlyIG5hbWUuCisgICAgICAgIDs7IFdlIGRlZmVy IGNvbXB1dGluZyB0aGlzIHVudGlsIHRoZSBmaXJzdCB0aW1lIGl0J3MgbmVlZGVkLCB0bwor ICAgICAgICA7OyBnaXZlIHRpbWUgZm9yIGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QgdG8gYmUg c2V0IHByb3Blcmx5LgorICAgICAgICAodW5sZXNzIGFiYnJldmlhdGVkLWhvbWUtZGlyCisg ICAgICAgICAgKHB1dCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUgKGV4cGFuZC1maWxl LW5hbWUgIn4iKSkKKyAgICAgICAgICAoc2V0cSBhYmJyZXZpYXRlZC1ob21lLWRpcgorICAg ICAgICAgICAgICAgIChkaXJlY3RvcnktYWJicmV2LW1ha2UtcmVnZXhwCisgICAgICAgICAg ICAgICAgIChsZXQgKChhYmJyZXZpYXRlZC1ob21lLWRpciAiXFxgXFwnLiIpKSA7SW1wb3Nz aWJsZSByZWdleHAuCisgICAgICAgICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1l CisgICAgICAgICAgICAgICAgICAgIChnZXQgJ2FiYnJldmlhdGVkLWhvbWUtZGlyICdob21l KSkpKSkpCisKKyAgICAgICAgOzsgSWYgRklMRU5BTUUgc3RhcnRzIHdpdGggdGhlIGFiYnJl dmlhdGVkIGhvbWVkaXIsCisgICAgICAgIDs7IGFuZCB+IGhhc24ndCBjaGFuZ2VkIHNpbmNl IGFiYnJldmlhdGVkLWhvbWUtZGlyIHdhcyBzZXQsCisgICAgICAgIDs7IG1ha2UgaXQgc3Rh cnQgd2l0aCBgficgaW5zdGVhZC4KKyAgICAgICAgOzsgSWYgfiBoYXMgY2hhbmdlZCwgd2Ug aWdub3JlIGFiYnJldmlhdGVkLWhvbWUtZGlyIHJhdGhlciB0aGFuCisgICAgICAgIDs7IGlu dmFsaWRhdGluZyBpdCwgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIGNoYW5nZSBpbiBIT01F CisgICAgICAgIDs7IGlzIGxpa2VseSB0ZW1wb3JhcnkgKGVnIGZvciB0ZXN0aW5nKS4KKyAg ICAgICAgOzsgRklYTUUgSXMgaXQgZXZlbiB3b3J0aCBjYWNoaW5nIGFiYnJldmlhdGVkLWhv bWUtZGlyPworICAgICAgICA7OyBSZWY6IGh0dHBzOi8vZGViYnVncy5nbnUub3JnLzE5NjU3 IzIwCisgICAgICAgIChsZXQgKG1iMSkKKyAgICAgICAgICAoaWYgKGFuZCAoc3RyaW5nLW1h dGNoIGFiYnJldmlhdGVkLWhvbWUtZGlyIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAg IChzZXRxIG1iMSAobWF0Y2gtYmVnaW5uaW5nIDEpKQorICAgICAgICAgICAgICAgICAgIDs7 IElmIHRoZSBob21lIGRpciBpcyBqdXN0IC8sIGRvbid0IGNoYW5nZSBpdC4KKyAgICAgICAg ICAgICAgICAgICAobm90IChhbmQgKD0gKG1hdGNoLWVuZCAwKSAxKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoPSAoYXJlZiBmaWxlbmFtZSAwKSA/LykpKQorICAgICAgICAg ICAgICAgICAgIDs7IE1TLURPUyByb290IGRpcmVjdG9yaWVzIGNhbiBjb21lIHdpdGggYSBk cml2ZSBsZXR0ZXI7CisgICAgICAgICAgICAgICAgICAgOzsgTm92ZWxsIE5ldHdhcmUgYWxs b3dzIGRyaXZlIGxldHRlcnMgYmV5b25kIGBaOicuCisgICAgICAgICAgICAgICAgICAgKG5v dCAoYW5kIChtZW1xIHN5c3RlbS10eXBlICcobXMtZG9zIHdpbmRvd3MtbnQgY3lnd2luKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCAiXFxgW2EtekEt YF06L1xcJyIgZmlsZW5hbWUpKSkKKyAgICAgICAgICAgICAgICAgICAoZXF1YWwgKGdldCAn YWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg IChleHBhbmQtZmlsZS1uYW1lICJ+IikpKQorICAgICAgICAgICAgICAoc2V0cSBmaWxlbmFt ZQorICAgICAgICAgICAgICAgICAgICAoY29uY2F0ICJ+IgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzdWJzdHJpbmcgZmlsZW5hbWUgbWIxKSkpKQorICAgICAgICAgIGZpbGVu YW1lKSkpKSkKIAogKGRlZnVuIGZpbmQtYnVmZmVyLXZpc2l0aW5nIChmaWxlbmFtZSAmb3B0 aW9uYWwgcHJlZGljYXRlKQogICAiUmV0dXJuIHRoZSBidWZmZXIgdmlzaXRpbmcgZmlsZSBG SUxFTkFNRSAoYSBzdHJpbmcpLgpAQCAtNzgzNiwxMCArNzg0MiwxMSBAQCBmaWxlLW5hbWUt bm9uLXNwZWNpYWwKIAk7OyBHZXQgYSBsaXN0IG9mIHRoZSBpbmRpY2VzIG9mIHRoZSBhcmdz IHRoYXQgYXJlIGZpbGUgbmFtZXMuCiAJKGZpbGUtYXJnLWluZGljZXMKIAkgKGNkciAob3Ig KGFzc3Egb3BlcmF0aW9uCi0JCQknKDs7IFRoZSBmaXJzdCBzZXZlbiBhcmUgc3BlY2lhbCBi ZWNhdXNlIHRoZXkKKwkJCScoOzsgVGhlIGZpcnN0IGVpZ2h0IGFyZSBzcGVjaWFsIGJlY2F1 c2UgdGhleQogCQkJICA7OyByZXR1cm4gYSBmaWxlIG5hbWUuICBXZSB3YW50IHRvIGluY2x1 ZGUKIAkJCSAgOzsgdGhlIC86IGluIHRoZSByZXR1cm4gdmFsdWUuICBTbyBqdXN0CiAJCQkg IDs7IGF2b2lkIHN0cmlwcGluZyBpdCBpbiB0aGUgZmlyc3QgcGxhY2UuCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChhYmJyZXZpYXRlLWZpbGUtbmFtZSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGRpcmVjdG9yeS1maWxlLW5hbWUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIChleHBhbmQtZmlsZS1uYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAo ZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLXNo LmVsIGIvbGlzcC9uZXQvdHJhbXAtc2guZWwKaW5kZXggYzYxMDI1YTg2Yi4uYjgzNTY5ZjNk ZSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtc2guZWwKKysrIGIvbGlzcC9uZXQvdHJh bXAtc2guZWwKQEAgLTk0Miw3ICs5NDIsOCBAQCB0cmFtcC12Yy1yZWdpc3RlcmVkLXJlYWQt ZmlsZS1uYW1lcwogOzsgTmV3IGhhbmRsZXJzIHNob3VsZCBiZSBhZGRlZCBoZXJlLgogOzs7 IyMjdHJhbXAtYXV0b2xvYWQKIChkZWZjb25zdCB0cmFtcC1zaC1maWxlLW5hbWUtaGFuZGxl ci1hbGlzdAotICAnKChhY2Nlc3MtZmlsZSAuIHRyYW1wLWhhbmRsZS1hY2Nlc3MtZmlsZSkK KyAgJygoYWJicmV2aWF0ZS1maWxlLW5hbWUgLiB0cmFtcC1oYW5kbGUtYWJicmV2aWF0ZS1m aWxlLW5hbWUpCisgICAgKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxl KQogICAgIChhZGQtbmFtZS10by1maWxlIC4gdHJhbXAtc2gtaGFuZGxlLWFkZC1uYW1lLXRv LWZpbGUpCiAgICAgOzsgYGJ5dGUtY29tcGlsZXItYmFzZS1maWxlLW5hbWUnIHBlcmZvcm1l ZCBieSBkZWZhdWx0IGhhbmRsZXIuCiAgICAgKGNvcHktZGlyZWN0b3J5IC4gdHJhbXAtc2gt aGFuZGxlLWNvcHktZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtc21i LmVsIGIvbGlzcC9uZXQvdHJhbXAtc21iLmVsCmluZGV4IDBiMjUxNjQ5MDIuLjI0MTE5NTM5 ZGIgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLXNtYi5lbAorKysgYi9saXNwL25ldC90 cmFtcC1zbWIuZWwKQEAgLTIyMiw3ICsyMjIsOCBAQCB0cmFtcC1zbWItYWN0aW9ucy1zZXQt YWNsCiA7OyBOZXcgaGFuZGxlcnMgc2hvdWxkIGJlIGFkZGVkIGhlcmUuCiA7OzsjIyN0cmFt cC1hdXRvbG9hZAogKGRlZmNvbnN0IHRyYW1wLXNtYi1maWxlLW5hbWUtaGFuZGxlci1hbGlz dAotICAnKChhY2Nlc3MtZmlsZSAuIHRyYW1wLWhhbmRsZS1hY2Nlc3MtZmlsZSkKKyAgJygo YWJicmV2aWF0ZS1maWxlLW5hbWUgLiB0cmFtcC1oYW5kbGUtYWJicmV2aWF0ZS1maWxlLW5h bWUpCisgICAgKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxlKQogICAg IChhZGQtbmFtZS10by1maWxlIC4gdHJhbXAtc21iLWhhbmRsZS1hZGQtbmFtZS10by1maWxl KQogICAgIDs7IGBieXRlLWNvbXBpbGVyLWJhc2UtZmlsZS1uYW1lJyBwZXJmb3JtZWQgYnkg ZGVmYXVsdCBoYW5kbGVyLgogICAgIChjb3B5LWRpcmVjdG9yeSAuIHRyYW1wLXNtYi1oYW5k bGUtY29weS1kaXJlY3RvcnkpCmRpZmYgLS1naXQgYS9saXNwL25ldC90cmFtcC1zdWRvZWRp dC5lbCBiL2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCmluZGV4IDdjZjBlYTQ1MWQuLmM5 MWJjZWQ2NTYgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCisrKyBi L2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCkBAIC02Myw3ICs2Myw4IEBAIHRyYW1wLXN1 ZG9lZGl0LXN1ZG8tYWN0aW9ucwogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZmNvbnN0 IHRyYW1wLXN1ZG9lZGl0LWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0Ci0gICcoKGFjY2Vzcy1m aWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vzcy1maWxlKQorICAnKChhYmJyZXZpYXRlLWZpbGUt bmFtZSAuIHRyYW1wLWhhbmRsZS1hYmJyZXZpYXRlLWZpbGUtbmFtZSkKKyAgICAoYWNjZXNz LWZpbGUgLiB0cmFtcC1oYW5kbGUtYWNjZXNzLWZpbGUpCiAgICAgKGFkZC1uYW1lLXRvLWZp bGUgLiB0cmFtcC1zdWRvZWRpdC1oYW5kbGUtYWRkLW5hbWUtdG8tZmlsZSkKICAgICAoYnl0 ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZSAuIGlnbm9yZSkKICAgICAoY29weS1kaXJlY3Rv cnkgLiB0cmFtcC1oYW5kbGUtY29weS1kaXJlY3RvcnkpCmRpZmYgLS1naXQgYS9saXNwL25l dC90cmFtcC5lbCBiL2xpc3AvbmV0L3RyYW1wLmVsCmluZGV4IDg3NmJiYjJjNTQuLjlkNGZh NDg1YjUgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLmVsCisrKyBiL2xpc3AvbmV0L3Ry YW1wLmVsCkBAIC0yNDk1LDYgKzI0OTUsOCBAQCB0cmFtcC1maWxlLW5hbWUtZm9yLW9wZXJh dGlvbgogCSAgICAgIGZpbGUtc3lzdGVtLWluZm8KIAkgICAgICA7OyBFbWFjcyAyOCsgb25s eS4KIAkgICAgICBmaWxlLWxvY2tlZC1wIGxvY2stZmlsZSBtYWtlLWxvY2stZmlsZS1uYW1l IHVubG9jay1maWxlCisJICAgICAgOzsgRW1hY3MgMjkrIG9ubHkuCisJICAgICAgYWJicmV2 aWF0ZS1maWxlLW5hbWUKIAkgICAgICA7OyBUcmFtcCBpbnRlcm5hbCBtYWdpYyBmaWxlIG5h bWUgZnVuY3Rpb24uCiAJICAgICAgdHJhbXAtc2V0LWZpbGUtdWlkLWdpZCkpCiAgICAgKGlm IChmaWxlLW5hbWUtYWJzb2x1dGUtcCAobnRoIDAgYXJncykpCkBAIC0zMjc1LDYgKzMyNzcs MjMgQEAgdHJhbXAtaGFuZGxlLWZpbGUtbG9jYWwtY29weS1ob29rCiAoZGVmdmFyIHRyYW1w LWhhbmRsZS13cml0ZS1yZWdpb24taG9vayBuaWwKICAgIk5vcm1hbCBob29rIHRvIGJlIHJ1 biBhdCB0aGUgZW5kIG9mIGB0cmFtcC0qLWhhbmRsZS13cml0ZS1yZWdpb24nLiIpCiAKKyhk ZWZ1biB0cmFtcC1oYW5kbGUtYWJicmV2aWF0ZS1maWxlLW5hbWUgKGZpbGVuYW1lKQorICAi TGlrZSBgYWJicmV2aWF0ZS1maWxlLW5hbWUnIGZvciBUcmFtcCBmaWxlcy4iCisgIChsZXQq ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcCBmaWxl bmFtZSkpCisgICAgICAgICAoaG9tZS1kaXIKKyAgICAgICAgICAod2l0aC1wYXJzZWQtdHJh bXAtZmlsZS1uYW1lIGZpbGVuYW1lIG5pbAorICAgICAgICAgICAgKHdpdGgtdHJhbXAtY29u bmVjdGlvbi1wcm9wZXJ0eSB2ICJob21lLWRpcmVjdG9yeSIKKyAgICAgICAgICAgICAgKGRp cmVjdG9yeS1hYmJyZXYtYXBwbHkgKGV4cGFuZC1maWxlLW5hbWUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFtcC1tYWtlLXRyYW1wLWZpbGUtbmFtZSB2 ICJ+IikpKSkpKSkKKyAgICA7OyBJZiBhbnkgZWx0IG9mIGRpcmVjdG9yeS1hYmJyZXYtYWxp c3QgbWF0Y2hlcyB0aGlzIG5hbWUsCisgICAgOzsgYWJicmV2aWF0ZSBhY2NvcmRpbmdseS4K KyAgICAoc2V0cSBmaWxlbmFtZSAoZGlyZWN0b3J5LWFiYnJldi1hcHBseSBmaWxlbmFtZSkp CisgICAgKGlmIChzdHJpbmctbWF0Y2ggKGRpcmVjdG9yeS1hYmJyZXYtbWFrZS1yZWdleHAg aG9tZS1kaXIpIGZpbGVuYW1lKQorICAgICAgICAod2l0aC1wYXJzZWQtdHJhbXAtZmlsZS1u YW1lIGZpbGVuYW1lIG5pbAorICAgICAgICAgICh0cmFtcC1tYWtlLXRyYW1wLWZpbGUtbmFt ZQorICAgICAgICAgICB2IChjb25jYXQgIn4iIChzdWJzdHJpbmcgZmlsZW5hbWUgKG1hdGNo LWJlZ2lubmluZyAxKSkpKSkKKyAgICAgIGZpbGVuYW1lKSkpCisKIChkZWZ1biB0cmFtcC1o YW5kbGUtYWNjZXNzLWZpbGUgKGZpbGVuYW1lIHN0cmluZykKICAgIkxpa2UgYGFjY2Vzcy1m aWxlJyBmb3IgVHJhbXAgZmlsZXMuIgogICAoc2V0cSBmaWxlbmFtZSAoZmlsZS10cnVlbmFt ZSBmaWxlbmFtZSkpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvbmV0L3RyYW1wLXRlc3RzLmVs IGIvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbAppbmRleCA1MmM2MTU5ZGMxLi42OThk MThiNTI4IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvbmV0L3RyYW1wLXRlc3RzLmVsCisrKyBi L3Rlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwKQEAgLTIyODksNiArMjI4OSwzMSBAQCB0 cmFtcC10ZXN0MDYtZGlyZWN0b3J5LWZpbGUtbmFtZQogCSAgKHNob3VsZCAoc3RyaW5nLWVx dWFsIChmaWxlLW5hbWUtZGlyZWN0b3J5IGZpbGUpIGZpbGUpKQogCSAgKHNob3VsZCAoc3Ry aW5nLWVxdWFsIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGZpbGUpICIiKSkpKSkpKQogCiso ZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDA3LWFiYnJldmlhdGUtZmlsZS1uYW1lICgpCisgICJD aGVjayB0aGF0IFRyYW1wIGFiYnJldmlhdGVzIGZpbGUgbmFtZXMgY29ycmVjdGx5LiIKKyAg KHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKKyAgKHNraXAtdW5sZXNzICh0 cmFtcC0tdGVzdC1lbWFjczI5LXApKQorCisgIChsZXQqICgocmVtb3RlLWhvc3QgKGZpbGUt cmVtb3RlLXAgdHJhbXAtdGVzdC10ZW1wb3JhcnktZmlsZS1kaXJlY3RvcnkpKQorICAgICAg ICAgKGhvbWUtZGlyIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgcmVtb3RlLWhvc3QgIn4i KSkpKQorICAgIDs7IENoZWNrIGhvbWUtZGlyIGFiYnJldmlhdGlvbi4KKyAgICAoc2hvdWxk IChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCBob21lLWRpciAiL2Zvby9i YXIiKSkKKyAgICAgICAgICAgICAgICAgICAoY29uY2F0IHJlbW90ZS1ob3N0ICJ+L2Zvby9i YXIiKSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChjb25j YXQgcmVtb3RlLWhvc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiL25vd2hlcmUvc3BlY2lhbCIpKQorICAgICAgICAgICAgICAgICAgIChj b25jYXQgcmVtb3RlLWhvc3QgIi9ub3doZXJlL3NwZWNpYWwiKSkpCisgICAgOzsgQ2hlY2sg YGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIGFiYnJldmlhdGlvbi4KKyAgICAobGV0ICgoZGly ZWN0b3J5LWFiYnJldi1hbGlzdAorICAgICAgICAgICBgKCgsKGNvbmNhdCAiXFxgIiAocmVn ZXhwLXF1b3RlIGhvbWUtZGlyKSAiL2ZvbyIpCisgICAgICAgICAgICAgIC4gLChjb25jYXQg aG9tZS1kaXIgIi9mIikpCisgICAgICAgICAgICAgKCwoY29uY2F0ICJcXGAiIChyZWdleHAt cXVvdGUgcmVtb3RlLWhvc3QpICIvbm93aGVyZSIpCisgICAgICAgICAgICAgIC4gLChjb25j YXQgcmVtb3RlLWhvc3QgIi9udyIpKSkpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGFiYnJl dmlhdGUtZmlsZS1uYW1lIChjb25jYXQgaG9tZS1kaXIgIi9mb28vYmFyIikpCisgICAgICAg ICAgICAgICAgICAgICAoY29uY2F0IHJlbW90ZS1ob3N0ICJ+L2YvYmFyIikpKQorICAgICAg KHNob3VsZCAoZXF1YWwgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChjb25jYXQgcmVtb3RlLWhv c3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIvbm93aGVyZS9zcGVjaWFsIikpCisgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IHJl bW90ZS1ob3N0ICIvbncvc3BlY2lhbCIpKSkpKSkKKwogKGVydC1kZWZ0ZXN0IHRyYW1wLXRl c3QwNy1maWxlLWV4aXN0cy1wICgpCiAgICJDaGVjayBgZmlsZS1leGlzdC1wJywgYHdyaXRl LXJlZ2lvbicgYW5kIGBkZWxldGUtZmlsZScuIgogICAoc2tpcC11bmxlc3MgKHRyYW1wLS10 ZXN0LWVuYWJsZWQpKQotLSAKMi4yNS4xCgo= --------------5367A389331408C0FC513C60 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" RW1hY3MgMjkgbWFzdGVyCi0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFi YnJldi1hbGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wODIwOTRzICgwLjAxMjk4 MXMgaW4gMSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjU3MDQ0MXMgKDAuMTc1MDEz cyBpbiAxMyBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKA mSAobm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzM0MzIwcyAoMC4xMjkz NTFzIGluIDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuODM4MzY2cyAoMC4yOTQz MzBzIGluIDIyIEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN0 4oCZIChhbGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTMwMTg3cyAoMC4z MjAxNjVzIGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuODM2MTkwcyAoMC4y ODUzNzFzIGluIDIyIEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFs aXN04oCZIChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4wODkyMjlzICgw LjQ5MjIyNXMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41ODczNTFzICgw LjY0OTAxNHMgaW4gNTAgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYt YWxpc3TigJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4yOTIxMDNz ICgwLjY4NzYzMXMgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41OTIyMTBz ICgwLjY1MTA5MHMgaW4gNTAgR0NzKQoKCldpdGggb2xkIHBhdGNoIChmcm9tIE5vdiAxMykK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFiYnJl di1hbGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wNzYxMzZzICgwLjAxMjk0OXMg aW4gMSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjUxMDQ0NXMgKDAuMTYwMDUycyBp biAxMiBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAo bm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzQyNTA5cyAoMC4xMzA5MTZz IGluIDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuNzgwMjAxcyAoMC4yODExMThz IGluIDIxIEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZ IChhbGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTM4MzUzcyAoMC4zMjM4 OThzIGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDAuNjk5MjYycyAoMC4yNDU5 NDJzIGluIDE5IEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN0 4oCZIChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4xMDQ3ODZzICgwLjUw MDg4MHMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41MjQ2NjJzICgwLjY0 MjIzNnMgaW4gNDkgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxp c3TigJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4yOTkxNjBzICgw LjY4Nzg2N3MgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS41MTk4MjlzICgw LjY1MTY5MXMgaW4gNDcgR0NzKQoKCldpdGggbmV3IHBhdGNoIChmcm9tIE5vdiAxNCkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKRW1wdHkg4oCYZGlyZWN0b3J5LWFiYnJldi1h bGlzdOKAmQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4wNzczODRzICgwLjAxMzA5OHMgaW4g MSBHQ3MpClRyYW1wIHwgRWxhcHNlZCB0aW1lOiAwLjgzOTM3MHMgKDAuMjY3MzEwcyBpbiAy MCBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAobm8g bWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzM4MjU1cyAoMC4xMzE0ODNzIGlu IDEwIEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDEuMDg0NDEzcyAoMC4zNzAyODdzIGlu IDI4IEdDcykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChh bGwgbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuNTQ2Mjg1cyAoMC4zMzM1Mjdz IGluIDI1IEdDcykKVHJhbXAgfCBFbGFwc2VkIHRpbWU6IDEuMDM4MzQwcyAoMC4zNTk4NzFz IGluIDI3IEdDcykKCjUwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZ IChubyBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4wOTk0NzNzICgwLjUwMDgz OHMgaW4gMzggR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS44NDg3MDdzICgwLjc0NzYy M3MgaW4gNTYgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3Ti gJkgKGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS4zMTM5NjhzICgwLjcw NDIzOHMgaW4gNTMgR0NzKQpUcmFtcCB8IEVsYXBzZWQgdGltZTogMS44MDI1OTNzICgwLjcy NzEwMnMgaW4gNTUgR0NzKQo= --------------5367A389331408C0FC513C60-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 15 11:59:36 2021 Received: (at 51622) by debbugs.gnu.org; 15 Nov 2021 16:59:36 +0000 Received: from localhost ([127.0.0.1]:55982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmfKS-0000LM-BE for submit@debbugs.gnu.org; Mon, 15 Nov 2021 11:59:36 -0500 Received: from mout.gmx.net ([212.227.15.15]:58091) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmfKP-0000L6-Qj for 51622@debbugs.gnu.org; Mon, 15 Nov 2021 11:59:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636995567; bh=XsqZ5cgYeGtUZNUDmdbgev892SmiLrppecqqi8hy4qs=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=Fbn56+ZaXenPbSBjIjM4eStnwVFXPn5S+GS8/fsJPF2MSQWMLaEkSHE3Pfhv4pXZq UU56mK3P6jRdlG4EKfhDkHVVgjczWL26Y+K39MoI9JMWoduRrsJ+pxZVhZl0OPx3T1 0joZ19EdTraOH+aGpCIutWmBVWqBwB74oeDaSUco= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([79.140.112.102]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MrQIv-1mIZpZ3esR-00oYLm; Mon, 15 Nov 2021 17:59:26 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> <874k8eg5mf.fsf@gmx.de> <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> Date: Mon, 15 Nov 2021 17:59:25 +0100 In-Reply-To: <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> (Jim Porter's message of "Sun, 14 Nov 2021 22:58:31 -0800") Message-ID: <87o86l9wya.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:qv9hIeEjQgL6C4z7i6e4jMYk7P/AKW92cNX6tUzlYKkktKSKF5C 7TtkA1YhYSlhS8VOv1Zp6EakPx5EFLsMulkpxQ1e0ded39Y9GCy7kIw+2rktSsljIIPP2Gd FbzzhHmoWC/EvCAGVAN1i+tOTWin6qYPH2O5fWQtbvEeFYIG4RSKpoMspArlfujxr/rf1NA xKb0GQOtdxZj78oCcSn+Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:cnKCmTGAXs8=:rUzX7gEhjonF4MPzrId1Jk nedL5G9ay6s0csa/jk2un5bUFl/JxHATIkNZDBytsS94FL3LF/4SE8ybJ/374GjHhmKA1GlWe JDDYqpYvNtaHNfhBVskFD7wZKJIMpk30KAqDPKFtFGjMelvZzIIwnsfju1RQZfuMzzaTmkwPT h1/GTSiLCGPbUx/U/Re2G32/XJZW+XHroIj73ffRko5e2qwGJYT42TurRLcQjzMgyKCdAFRTH Kp4v4Svmx5CdPcRiCSrkUUTJ9nhvf6CpTuJvCo+RudCGIYmh5kjyQKS4dwTl4nW2Y7sRnYgTC 6/sqgzjisoehvjpCV/k0dr0pgVIsX3Fpy/MNHT/ktiwlrDgmDVSTA0iFoJU5sURofCgr6rpoe vHk6Axm5J/s9kGm6OQR4K5loVqz01KRVIh+IQexPXkN7rQedEv23hoCAkpvml9Ejgm9/gcy80 tWiFnQfDRL7szN4ar2tobHdmbCO1GvPulrnfxAuv3It2tpZ4McPJr7LbmyAmGbHJkvx/bTtRe ZMmSDQ4Il/smC8qiVkzad6teiwNthxjkNysxYEamzsvjwFJulf3vHXupWijSNpiohk8bXYhxN zLwNsmyiWr3AWcemgmD16H6vgYXw+3jVS4UHCj0a9Eg/1fcd8lLopf9TIc2tGl15NuDw7aTa3 azbnzvLWFoI7iJ0Iph/oFiuO49cMQed19U8T6LXByrZ1jWmhp8nYcvP1t2hTtyvFW2WKK3FqC utRmb4FvErIWBGtpCws87uhEXpRsm7gAcm65TJJbwbFQC9rgBDFD33x/QeL8Sr+r5W0Jd+KES VP1xo3GzAuVXYkR9Q4ZPm5sq2GxKvWyzKMg3mFmalrDOTMymfXoLqgi18MRLIAA1Qwr3zQyas vZJHv+DkMzod0URM8fqwI4z+rZ4+bBSxe+Q+1aoBI61LBEUU5sShdPjeoiJ/TVEYk2ewgf2dp Ww0u22spAFdgaZX+C/g1T8YwVA7c+e1kI6pxwODp3a2n3INyY4JMgm3+gqNrTIJ/+IMUsa2Ik N4nEdDw16V2NQcIwXfiFUiutAAp++3qVD3R+X8caUGtfkTZw7aKPohaaH5NA7w50gUoUTFn4h yZCHfPgVG/YAxo= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Jim Porter writes: Hi Jim, >> Thanks. However, I believe this test shall be called >> `files-tests-file-name-non-special-file-abbreviate-file-name', like the >> other non-special tests. And perhaps it shall be located prior >> `files-tests-file-name-non-special-access-file'. > > Ok, done. Thanks, I've pushed this to the master branch. >> But it shouldn't be too hard to determine the defaults. We have >> tramp-default-method{-alist}, tramp-default-user{-alist}, and >> tramp-default-host{-alist}. All needed information is there. > > Right, that confirms what I suspected. I'll try to look into this in > more detail later when I get the chance. Would be interesting to see the result :-) >>> I also attached a slightly-updated benchmark script as well as new >>> results. Performance on local file names is the same as before the >>> patch, and just slightly faster than before with Tramp file >>> names. (Most of the performance improvements here happened in >>> bug#51699, so I mainly wanted to maintain the current performance in >>> this patch.) >> Good, no regression :-) > > Fixing your comments below *did* regress performance for abbreviating > Tramp file names compared to current master (it takes 1.47x as long > now in the worst case), but it's still considerably faster than Emacs > 28. I've attached updated benchmark results to show the difference. Yes, that's the price we have to pay for clean code. I've explained why it is needed. However, the `tramp-file-name-handler' machinery has been grown over 20+ years. I'm not aware of useless stuff, but maybe it's worth to have an *external* look at this wrt performance. Are you interested? >> Well, I believe we can implement abbreviation also for other Tramp >> backends, like in tramp-sudoedit.el. So it might be better to call this >> handler `tramp-handle-abbreviate-file-name'. > > Done. I added this for the sudoedit and smb methods, since both support > "~" expansion in `expand-file-name'. That *should* be sufficient, but > I've never used either of those methods, so I could be wrong... Thanks. I didn't find the time to check it for these methods, but it's on my TODO for next days. >> Please use `case-insensitive-p'. We don't know whether there will be >> other implementation for this magic function in the future. And we shall >> not bypass the checks in `tramp-file-name-handler', which are important >> for parallel invocations of Tramp handlers. > > Fixed (same with `expand-file-name'). These changes slow things down a > fair bit, but that's mostly due to checking for the right file name > handler more often. Like I said above though, it's still a lot faster > than Emacs 28 (thanks to bug#51699). I've committed everything to master. Then I ran the regression tests, and there were indeed some few surprises. All of them shall be fixed now with my commit after yours. I tend to close this bug report now, since everything reported has been implemented. The open points don't need this bug anymore for progress. WDYT? Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 15 20:14:42 2021 Received: (at 51622) by debbugs.gnu.org; 16 Nov 2021 01:14:42 +0000 Received: from localhost ([127.0.0.1]:56602 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmn3Z-0008TS-V5 for submit@debbugs.gnu.org; Mon, 15 Nov 2021 20:14:42 -0500 Received: from mail-pj1-f44.google.com ([209.85.216.44]:51173) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmn3Y-0008TE-3i for 51622@debbugs.gnu.org; Mon, 15 Nov 2021 20:14:40 -0500 Received: by mail-pj1-f44.google.com with SMTP id x7so14297877pjn.0 for <51622@debbugs.gnu.org>; Mon, 15 Nov 2021 17:14:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=9EyqBB11khZ0yV7MM7u8OXzoHR5fdyRFRmvFyRmJDcc=; b=cLG6+e4VuUfJJ9+V3SnTSj4BDJErwPNA+GEVk/7ovIMuM8wtG6Ar9UieEA6WVUOOeT SSU4TvyKUpuoq1Jp9q8ZkPApfY45zWSpljhVESR36y5ApJY21gfsjvzf6Pt7O+qyPQq2 oH+s6j8aurEFma8FoOuq4n5WhyZnI90Ec9PhqFqTfxFks1bjTqPEz+mxCdTaEnyOXJqN txpoqXPy7vDDuDX30nPts9cv3O49rTOi6wt/Pe3O2YZRLj0uILqedx5dXdn7T3Mr8oBB miJ871VXXfkSDlTiuvt+pLtUtbeuF2aAL2Oj9ampmVyg9U07/AbKsuX+RCdAzToZIJv8 BEIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=9EyqBB11khZ0yV7MM7u8OXzoHR5fdyRFRmvFyRmJDcc=; b=diKcQ6HZyQ/kRIOPHHrnjdREHBuckClZYldHDhT70vDdt0lW7VMCk/Im+017wY6/bn WoQn0Fp3pYmOEo1yqr5rRynWLJFlmY/dZHPyDH8TGgzr6/oeR9QH/pMjsX546eEXaB84 Rp07dygfbjlQ7Abd6Ur70vu0JsGEaSeGcvfEvGMczp0ywW0T4HkRJql5TAjkmZZcj3lb l//eli861RzE1RQ4Psl0B7pKxivW+W7a+CiNDSM63R6O6xjjdUiqy15YDkEqxyjFlyG4 02Lvz6igWxowSCO/9CBypaVfofb6BIItUBlO/nFbXZjoSsAdXhudLDRfr6X1QGTBR4fn yEPA== X-Gm-Message-State: AOAM533U/Y9cFbxUz0zrhfsZrq/3rzlcoKCyfCX9su2BVqIrIZfFYMYm jeqxsa/r6w8zeaAcQy0M212leKWbYNA= X-Google-Smtp-Source: ABdhPJx2CKey+vnJJbLm91YchsuGHY+5+bP+G+JSRdkJs2MyYIKg3NAmc/IH1YIrsDWrrMhsoC0qCA== X-Received: by 2002:a17:902:9b95:b0:143:b899:5b12 with SMTP id y21-20020a1709029b9500b00143b8995b12mr25369445plp.13.1637025273995; Mon, 15 Nov 2021 17:14:33 -0800 (PST) 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 p1sm18162271pfo.143.2021.11.15.17.14.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Nov 2021 17:14:33 -0800 (PST) Subject: Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' To: Michael Albinus References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> <874k8eg5mf.fsf@gmx.de> <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> <87o86l9wya.fsf@gmx.de> From: Jim Porter Message-ID: Date: Mon, 15 Nov 2021 17:14:33 -0800 MIME-Version: 1.0 In-Reply-To: <87o86l9wya.fsf@gmx.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/15/2021 8:59 AM, Michael Albinus wrote: >> Fixing your comments below *did* regress performance for abbreviating >> Tramp file names compared to current master (it takes 1.47x as long >> now in the worst case), but it's still considerably faster than Emacs >> 28. I've attached updated benchmark results to show the difference. > > Yes, that's the price we have to pay for clean code. I've explained why > it is needed. Agreed. It's better to be "slow and right" than "fast and wrong". :) > I've committed everything to master. Then I ran the regression tests, > and there were indeed some few surprises. All of them shall be fixed now > with my commit after yours. Thanks for merging everything. I'll be sure to keep the changes in your followup commit in mind (especially the `tramp-compat-funcall' parts) if I make any future Tramp patches. > I tend to close this bug report now, since everything reported has been > implemented. The open points don't need this bug anymore for progress. > > WDYT? Sounds good to me, we can close this. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 16 06:43:57 2021 Received: (at 51622-done) by debbugs.gnu.org; 16 Nov 2021 11:43:57 +0000 Received: from localhost ([127.0.0.1]:57409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmwsX-000793-8R for submit@debbugs.gnu.org; Tue, 16 Nov 2021 06:43:57 -0500 Received: from mout.gmx.net ([212.227.17.20]:47625) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmwsV-00078c-2k for 51622-done@debbugs.gnu.org; Tue, 16 Nov 2021 06:43:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1637063028; bh=+/nST/c4Zvh+oxN5HeBIQ8LNMkB1iCb0OaEZ5JXa5pI=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=gxwjwPu3ZBMg5eLLLeHBWBMvZp77ZWcSY7W+wlG4lM5s6F/BvrVRZUsC0gL6SX3PS UM+7E+5kT0zZAs4UcyecZ8fcZfS2hVO1ZOGEh18ti55l9Ats28w0B3VuKEFXKzLSAL AdhAJLJjSzJuz0V/4h3lpvoJQHiWKCn//4lfeXzM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([212.91.243.183]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MI5QF-1mre5r0Gvf-00FFFR; Tue, 16 Nov 2021 12:43:48 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> <874k8eg5mf.fsf@gmx.de> <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> <87o86l9wya.fsf@gmx.de> Date: Tue, 16 Nov 2021 12:43:46 +0100 In-Reply-To: (Jim Porter's message of "Mon, 15 Nov 2021 17:14:33 -0800") Message-ID: <87fsrw2uml.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:p+4NfEdwJAJ7dghJyRjh+2Te5SaX1OrJgddh+l4LFhG/XON02Ds SBjikZYvbeASSz8iDSdLwXQCVfD+S931l62Pg7IEb6EKdjdq9J6qopMguIBhUWrYmQzBrWZ mfmBE8qHAv04o5OIzqBV2amElkRkxMINxLEzI9vAnS60N+c0U9zYpLWJxWNC50qF6CY828x 5XizQPdr4GngJ/GLno7tA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:/+Rof3608F4=:g8hpdLzmu/SAGVHhf+V0TB 0teezNaVj6gmgJr28gjSAOvsN5mhVx4yjHh9X+y5Ewfm3fp1HxpdCjk9ym4p02mwqI+wh6rrP NUMizxI8a+juxYY2A7txOlVamUQIYEc3f+WRl18QK1EUUIFa737VJ4CO6MZgZKKMG0y8ZjAvW sKqwlVxK903bzm8dc3U0pXqyu61QKxmCg9CmEGZHOiSHj8l8aHp1LcC7LWEjKVYwmcat8GuTA pVpZmxWxN/Ge0bRDyjunExeg/gglViGqHqGs92mroNeQIHIIewUJ/HT9k8uuMJUv/4zkkBUzo OM7uNqn0U4C7ZrdGTvUkFL/5CkNcCeym84mqpS9UC87vg3qwVlN6Grb+QOZjhBQ/I4wGVFxtj +y07YwYh0AOb1RuTaYWQqhoJrm5yUqMwjS6obwYGR5V9pjoc2HiD5TeWJhKD5h3eDkeqm980W lHmpv0DTv5peVJutkDf34FO8tcz8z3ZcjnT9TQRO07aTLbmLFsc5pgZ3hSxYJoDVv3o+/3Irx w7ZAWTLPS85qUT/jC3yu6z+mqKQ3Pde+upsydkq5txXP4YQy2pUSNCMqATlLEsthQdG5N+OE3 RZerWG6o58YpAH9DZs9xVbzYfakj6Ws5od9DGLq5gMJzhkcZnQmzYCk4nAKNnvshD+cTFX24J gwKvbbf4GfTcLfu5vBL6+1E8xau2pvz8/YUJtM2biYP6vlnOhyg016GDND7Zh/KiEKxoIyHIu MT0WeFGLHznYakt95D4Dmg33BlIM86gr7xbaFASDd4/5kHF4TKSnFOV4qqPTScRZAhFr3sp6U Qxu4tMoV9BEwrBams/4/+ZqMDOtzjU3DJFBYK+PN3zhLO/ma21KXpdF+uor1QG6Ou3LWglYTd T6l/NgLpNh1PsLDb9RfLG+P/6bELPV3SBhb4s9VrfuclVJz/vNNld9NixeEYTONMSWCt2RbMA p5tD5yFHso/tiGSGt0C5c02AHR9ccspOyHr5b2D3Cu6ie9qEhAO60E7Bgu9Rwoo8MNDtskmjJ 3/o1lbD8rRFAVrXRtyW0HzRMBi70D1uXJe96BjYl3oyXP7TrKBq010WrQKYNMxQnGq/u9Fq0I rv/gqWYdbuem9U= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622-done Cc: 51622-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Version: 29.1 Jim Porter writes: Hi Jim, >> I tend to close this bug report now, since everything reported has been >> implemented. The open points don't need this bug anymore for progress. >> WDYT? > > Sounds good to me, we can close this. Thanks for the feedback, closing the bug. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 16 07:57:26 2021 Received: (at 51622) by debbugs.gnu.org; 16 Nov 2021 12:57:27 +0000 Received: from localhost ([127.0.0.1]:57443 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmy1e-0004Ph-Lr for submit@debbugs.gnu.org; Tue, 16 Nov 2021 07:57:26 -0500 Received: from mout.gmx.net ([212.227.17.21]:42465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmy1d-0004PH-5u for 51622@debbugs.gnu.org; Tue, 16 Nov 2021 07:57:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1637067438; bh=BSx8VuHE7qHKTWJcvSr/0qPr0LC9PgvqgRCxgsYczOU=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=ew5K5L1AR047/a+RlgzOaEWF5cJq7CSpav56MQqqV0EITX7RR57ZpcU33nrFj2YdC NhRk5q9Uq4AHzYI4Nq8Mg5fkAVAcnkOOtSx26JTgfqjJf92emIjM/Fx06JLqfoOJJ/ ESrwFhbVbPcCh9O1ms2jC0hCujK3P/fJS9bGANx4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([212.91.243.183]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MJVHU-1n6pHy1Cjw-00JoGT; Tue, 16 Nov 2021 13:57:18 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51622: 29.0.50; [PATCH v3] Abbreviate remote home directories in `abbreviate-file-name' References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> <87sfw7u7zw.fsf@gmx.de> <9c2f6b1b-9091-3996-e414-0de4b1618f7f@gmail.com> <874k8eg5mf.fsf@gmx.de> <6deae031-0bbd-9dec-d9d1-3e74e45acaeb@gmail.com> <87o86l9wya.fsf@gmx.de> Date: Tue, 16 Nov 2021 13:57:17 +0100 In-Reply-To: <87o86l9wya.fsf@gmx.de> (Michael Albinus's message of "Mon, 15 Nov 2021 17:59:25 +0100") Message-ID: <878rxo2r82.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:n3rdbAi0N9+TmEldL4NSLYIxE76vjhEiHAYGmaxvEYsud9ncv8D kmeTBTQ4WmIe4Bb3TbZByjpWzhX/qrVQXui5tPaTc263TvrBmdzcpl91JAMc72A8e+JamiX 2H53GVSq6W0uBWrdebNC91vMDJcQlnVZku7gU1RsipcRdOe/+6YHqZ1DBo1yEvjVoAYAjNj yC4SuA7ejH8EHZknt7n1A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:C5IJamRMB2Q=:WaKJbr0sEUsIXWwx+tv8FE VQSifUTPTmrlQrzADtW9hI+0MnuLgUCz6mwT4cOLFa0wH9GpFsJZtyKpvh3YAVZj366wasqA3 Vmsr/PpoLxD6C/mD0onOMzhy3AXXSBm8rZWdI1ed1nPmJuiDAk1O4KbD2fRPIdoVCkXLbOkys bITy7hXoU+kyGrcAghWnB2dXzWHhe+h8sgk20+6yMxA8Fw/CSNtw16PbiximX7J3Pg5mlm1XH K7/Bd9WrGqQjlDwtFiz7T2NPrKcdoQlR/TYJsJMF/ghdvDgvaWI0E4ygH8e8DGmgKFkXdk9RO n4CeaS+WnyyvoVlf7H9i4B583MFQcBMhCLQGcHVIqrJSpscBiTxP2QYvzG0nONYDjg6ySNzjk fbprNgneTitNnI1E8obc9puD+27qkomee5wp/uwaIv6Rybq5INE+cCS1yNAExuvjQQ6NoOX1Z SrtndbrfGdxiaahpIINrgv+KwW/1IVERGh+1vi3+FjCfs08sHw5doC+C2OP8nsiJcl2326r6M dCUjn3SdgGeLAeXWsreu2vH25RaFKVvAucjvkXZDzmYtr8QqnCLJ78tFAXu4I+b47uOJrQrhE fJRkkN6YcK+sTiQvdS7e9FnvAOBiSNp4pyNbdNVJif9kxcsgRJZDFQOtkF7Y4jbNNqPNTfbbL UvISuVnWkPRlP24nZXHNM1LMz5/NRcWyMN5nQeg3n51dk7N7NCsaMc54ye8t5GHJl9L9XEGJo dV8atxI7UOWOzhT9HyhTeMFeLOIOr7UZjYHSmcOd7zLP6CxjkGBmfaleBQLSj1Itex9zq5IAA oBIgsi7iph2S6gAyWYXDlyhYJ35ypB9tWbSV39gsRwqGT5C6EOq7LMzKKzvs5hPB1+IZGGpnl 6JEpnujdh0fC7qZdvtZSLHl294fpVSdbobJ+5cXT6YnRSYHwXNO3G1L2Zqyxgxk48QPBdqxfP U5LqNfHWt/TU4j/RlNbrlgH+O/DA34on302aC2jD4tUpFWA200W0lW7XYVw5iDlTWDJcfHMla Y3360hHcIlGDdgnB5Oz1Yf87TDyloy+BF8Cw6ozP3D/LuSFps1/n66TZBrTPFwytJ1O9ejk8+ ovmOSEKubHk+zg= X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 51622 Cc: 51622@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Michael Albinus writes: Hi Jim, >> Done. I added this for the sudoedit and smb methods, since both support >> "~" expansion in `expand-file-name'. That *should* be sufficient, but >> I've never used either of those methods, so I could be wrong... > > Thanks. I didn't find the time to check it for these methods, but it's > on my TODO for next days. FTR, I've just tested both methods, and they work out-of-the-box, as expected. Best regards, Michael. From unknown Thu Jun 19 14:03:45 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 15 Dec 2021 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator