From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.devel Subject: Re: Mistakes in commit log messages Date: Fri, 14 Apr 2023 20:41:49 -0700 Message-ID: <5adfbf6f-fbcb-f4e8-3662-48bd5eb6a269@gmail.com> References: <835ya5m4p0.fsf@gnu.org> <83v8i4arzt.fsf@gnu.org> <838rezardu.fsf@gnu.org> <319d616d-9230-0a82-331f-0f57488e4c80@gmail.com> <834jpm9s1g.fsf@gnu.org> <83v8i28b3j.fsf@gnu.org> <693285d2-e50b-289d-4f3e-ddd817ddc75b@gmail.com> <48d4dffa-cfa8-7949-3043-a1efa937902d@gmail.com> <838rew5lak.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------KzJtvYLMBtkS3ZoFEQt7n2Qm" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35201"; mail-complaints-to="usenet@ciao.gmane.io" Cc: acm@muc.de, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Apr 15 05:42:20 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pnWns-0008xP-AO for ged-emacs-devel@m.gmane-mx.org; Sat, 15 Apr 2023 05:42:20 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pnWnV-0006Na-Ar; Fri, 14 Apr 2023 23:41:57 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pnWnT-0006NP-9P for emacs-devel@gnu.org; Fri, 14 Apr 2023 23:41:55 -0400 Original-Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pnWnQ-0002x2-QF; Fri, 14 Apr 2023 23:41:55 -0400 Original-Received: by mail-pj1-x102e.google.com with SMTP id z11-20020a17090abd8b00b0024721c47ceaso6799406pjr.3; Fri, 14 Apr 2023 20:41:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681530111; x=1684122111; h=in-reply-to:from:content-language:references:cc:to:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=tiAO39FxEg3JUdQAkS662j1wxQ0dz5E+cGzTGwCyo5Y=; b=CeX7r3iNh3G/NTzPdQgXdV8xC/zmbF3YR1A+AEML/kDkqEGhyOqpO4o19y7NGp+Zoh 0pIL6w/YyxY8khERTKzAD7tD9dR9HWtww5jhWmdzxvvLd60uU09zvIOaQ9vrXHNmT6wX utJSlCrK8SFsTsT5LmWMHHdrW6eKRaUEmslA130inheQqyNglgY8E7qAAIUeu4GTS1pu pc+VvTJb1B5bGMqjEXu5WYD9WovNuGaVXNcrqh+AYIXby+fivqSRHG0GUpNpkdX6ciCL cwO0ynYEGuc9DXXFw/p7UmXiBM0Tl/27GpjLJ1ApUVuZ7fMhNku2dCJNf951/u+qKYE/ oOtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681530111; x=1684122111; h=in-reply-to:from:content-language:references:cc:to:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=tiAO39FxEg3JUdQAkS662j1wxQ0dz5E+cGzTGwCyo5Y=; b=TCaWQ7Fdj9CJ20IRDDjU/ivXz/eUc/UtJXEtYcOdMasguYmF3cJtGSHmSVF1qsHePe 6TN5HAcEHpVI7P5+3I01sEF5zFnacC3J6JsHhjPXt+m7aMewgWByrxHzJBn8XOmuV9c2 0inSSrrizPsAuqJR7kCYHinY1HRG5Ri9jQgU1lGJFv/IfXGoTM+//JfKWst8MiKzH18U C+PJimWcKCeIi3nrpVN1mWUtJl4WryVaMKTKiYAdfIHEb+sSpig5F5ven5rxx9Cu0pA+ mVNn84nsJfcZ4eIyxt6R86g8mNBtowdpdnfc6czmqeh/PuSoIePNaMo1UFuuJ9IMTKKI 45Bw== X-Gm-Message-State: AAQBX9cwnFVuB5+UPtvzF/JMgXg66JOuf49QIgtXTLkH4Q0ItpO6JMVV VQLnQuzl/Xk9QyrOvtw7iCqbENpR0ZMSyw== X-Google-Smtp-Source: AKy350agsEgQ+g0eBqXi3kDagPHgQXNutRE0AhBNGlJIRwaKDTogb2cUWSaB2UzjVMN/EgywHjkT4Q== X-Received: by 2002:a17:90b:3c8:b0:23d:1143:c664 with SMTP id go8-20020a17090b03c800b0023d1143c664mr7703690pjb.31.1681530110452; Fri, 14 Apr 2023 20:41:50 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id r14-20020a17090a4dce00b00247601ce2aesm135424pjl.20.2023.04.14.20.41.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 14 Apr 2023 20:41:49 -0700 (PDT) Content-Language: en-US In-Reply-To: <838rew5lak.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x102e.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:305318 Archived-At: This is a multi-part message in MIME format. --------------KzJtvYLMBtkS3ZoFEQt7n2Qm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Ok, I think this patch should work, though I'll continue testing it locally before I merge it. We could also merge this patch sooner if we temporarily made the pre-push hook advisory (i.e. doesn't block a push). That way, others can try these hooks out without it blocking anyone's work. Then when we're happy with it, we can make the pre-push hook error out on bad commit messages. On 4/12/2023 11:49 PM, Eli Zaretskii wrote: > Please be sure to test the part that finds the file names on all the > log messages in the repository. The things people do in logs will > sometimes surprise you. In particular, a '*' after leading whitespace > doesn't necessarily flag a file name, see, for example, the following > commits: > > 92d75e5c53241ac76e8fdcb6fc66ade68354687c This works without errors with my latest patch. (Though it's not smart enough to recognize the "src/comp.c" as a file to check, since there's no leading "* ".) I think that's probably ok; it'd be hard to detect cases like that reliably. > 0bd96806ef1a0f0d2d3f48cdb1204b7e393ab036 This fails, correctly I think. The first line of the commit message is "* Rename `comp--typeof-builtin-types'", which I don't think we should allow (going forward, at least). Since it's in the first line, we *could* treat that specially, but I'm not sure it's worth the complexity. Committers can just avoid starting lines with "*" (for example, by using " *" instead). > eff42dc0af741cc56c52d7d9577d29fc16f9f665 This also works without errors. An indented "*" is ok, and not checked by these hooks. > b5f70c239e87e5f38fd70181ef75cd28a43a8b41 This fails for two reasons: first, there's a line like this: "* buffer-match-p and match-buffers", which is recognized as a list of file names. That looks like auto-fill-mode (or something similar) adding a "* " where it shouldn't. That's happened to me before, so I'd be glad for the hook to catch this. It also fails because of this line: "* lisp/window.el (display-buffer-assq-regexp): Mention what happens". That's correct too, since "lisp/window.el" wasn't changed in this commit. If you apply my patch, you can also test out other commits via "echo COMMIT-SHA | awk -f build-aux/git-hooks/commit-msg-files.awk". (I'll do this locally as well.) > Also, it looks like your script doesn't recognize file names in a line > that starts with a semi-colon, as in this commit: I fixed this case, though as far as I can tell, authors.el doesn't look at lines like this. (I could be wrong, since I just read over that code briefly.) > What about the opposite: a file is mentioned in the diff, but not in > the commit message? Or maybe that is allowed, and we shouldn't block > it? I think that's ok. Robert Pluim mentions a couple of cases, and we probably also want to allow commit messages like: "; Fix last change". --------------KzJtvYLMBtkS3ZoFEQt7n2Qm Content-Type: text/plain; charset=UTF-8; name="0001-Add-Git-hooks-to-check-filenames-listed-in-the-commi.patch" Content-Disposition: attachment; filename*0="0001-Add-Git-hooks-to-check-filenames-listed-in-the-commi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmODQ5ZmEwODJmMGQ3YzhjM2Q0NzIxMjBlOTFlMTU1Yjg3MDBjNjVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTIgQXByIDIwMjMgMjM6MDM6MzEgLTA3MDAKU3ViamVjdDogW1BB VENIXSBBZGQgR2l0IGhvb2tzIHRvIGNoZWNrIGZpbGVuYW1lcyBsaXN0ZWQgaW4gdGhlIGNv bW1pdCBtZXNzYWdlCgoqIGJ1aWxkLWF1eC9naXQtaG9va3MvY29tbWl0LW1zZy1maWxlcy5h d2s6CiogYnVpbGQtYXV4L2dpdC1ob29rcy9wb3N0LWNvbW1pdDoKKiBidWlsZC1hdXgvZ2l0 LWhvb2tzL3ByZS1wdXNoOiBOZXcgZmlsZXMuLi4KKiBhdXRvZ2VuLnNoOiAuLi4gYWRkIHRo ZW0uCi0tLQogYXV0b2dlbi5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBidWlsZC1hdXgvZ2l0LWhvb2tzL2NvbW1pdC1tc2ctZmlsZXMuYXdrIHwgOTEgKysr KysrKysrKysrKysrKysrKysrKysrCiBidWlsZC1hdXgvZ2l0LWhvb2tzL3Bvc3QtY29tbWl0 ICAgICAgICAgIHwgMjkgKysrKysrKysKIGJ1aWxkLWF1eC9naXQtaG9va3MvcHJlLXB1c2gg ICAgICAgICAgICAgfCA2NiArKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAx ODcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGJ1 aWxkLWF1eC9naXQtaG9va3MvY29tbWl0LW1zZy1maWxlcy5hd2sKIGNyZWF0ZSBtb2RlIDEw MDc1NSBidWlsZC1hdXgvZ2l0LWhvb2tzL3Bvc3QtY29tbWl0CiBjcmVhdGUgbW9kZSAxMDA3 NTUgYnVpbGQtYXV4L2dpdC1ob29rcy9wcmUtcHVzaAoKZGlmZiAtLWdpdCBhL2F1dG9nZW4u c2ggYi9hdXRvZ2VuLnNoCmluZGV4IGFmNGMyYWQxNGRmLi43MWQ3YWM4OWFiZiAxMDA3NTUK LS0tIGEvYXV0b2dlbi5zaAorKysgYi9hdXRvZ2VuLnNoCkBAIC0zNDAsNyArMzQwLDcgQEAg aG9va3M9CiB0YWlsb3JlZF9ob29rcz0KIHNhbXBsZV9ob29rcz0KIAotZm9yIGhvb2sgaW4g Y29tbWl0LW1zZyBwcmUtY29tbWl0IHByZXBhcmUtY29tbWl0LW1zZzsgZG8KK2ZvciBob29r IGluIGNvbW1pdC1tc2cgcHJlLWNvbW1pdCBwcmVwYXJlLWNvbW1pdC1tc2cgcG9zdC1jb21t aXQgcHJlLXB1c2ggY29tbWl0LW1zZy1maWxlcy5hd2s7IGRvCiAgICAgY21wIC0tIGJ1aWxk LWF1eC9naXQtaG9va3MvJGhvb2sgIiRob29rcy8kaG9vayIgPi9kZXYvbnVsbCAyPiYxIHx8 CiAJdGFpbG9yZWRfaG9va3M9IiR0YWlsb3JlZF9ob29rcyAkaG9vayIKIGRvbmUKZGlmZiAt LWdpdCBhL2J1aWxkLWF1eC9naXQtaG9va3MvY29tbWl0LW1zZy1maWxlcy5hd2sgYi9idWls ZC1hdXgvZ2l0LWhvb2tzL2NvbW1pdC1tc2ctZmlsZXMuYXdrCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMWVkY2NkZjNlNQotLS0gL2Rldi9udWxsCisrKyBi L2J1aWxkLWF1eC9naXQtaG9va3MvY29tbWl0LW1zZy1maWxlcy5hd2sKQEAgLTAsMCArMSw5 MSBAQAorIyBDaGVjayB0aGUgZmlsZSBsaXN0IG9mIEdOVSBFbWFjcyBjaGFuZ2UgbG9nIGVu dHJpZXMgZm9yIGVhY2ggY29tbWl0IFNIQS4KKworIyBDb3B5cmlnaHQgMjAyMyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUg RW1hY3MuCisKKyMgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIyBHTlUgRW1h Y3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggR05VIEVt YWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwor ZnVuY3Rpb24gZ2V0X2NvbW1pdF9jaGFuZ2VzKGNvbW1pdF9zaGEsIGNoYW5nZXMsICAgIGks IGosIGxlbiwgYml0cywgZmlsZW5hbWUpIHsKKyAgIyBDb2xsZWN0IGFsbCB0aGUgZmlsZXMg dG91Y2hlZCBpbiB0aGUgc3BlY2lmaWVkIGNvbW1pdC4KKyAgd2hpbGUgKCgoImdpdCBsb2cg LTEgLS1uYW1lLXN0YXR1cyAtLWZvcm1hdD0gIiBjb21taXRfc2hhKSB8IGdldGxpbmUpID4g MCkgeworICAgIGZvciAoaSA9IDI7IGkgPD0gTkY7IGkrKykgeworICAgICAgbGVuID0gc3Bs aXQoJGksIGJpdHMsICIvIikKKyAgICAgIGZvciAoaiA9IDE7IGogPD0gbGVuOyBqKyspIHsK KyAgICAgICAgaWYgKGogPT0gMSkKKyAgICAgICAgICBmaWxlbmFtZSA9IGJpdHNbal0KKyAg ICAgICAgZWxzZQorICAgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUgIi8iIGJpdHNbal0K KyAgICAgICAgY2hhbmdlc1tmaWxlbmFtZV0gPSAxCisgICAgICB9CisgICAgfQorICB9Cit9 CisKK2Z1bmN0aW9uIGNoZWNrX2NvbW1pdF9tc2dfZmlsZXMoY29tbWl0X3NoYSwgdmVyYm9z ZSwgICAgY2hhbmdlcywgZ29vZCwgbXNnLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZpbGVuYW1lc19zdHIsIGZpbGVuYW1lcywgaSkgeworICBnZXRfY29tbWl0X2No YW5nZXMoY29tbWl0X3NoYSwgY2hhbmdlcykKKyAgZ29vZCA9IDEKKworICB3aGlsZSAoKCgi Z2l0IGxvZyAtMSAtLWZvcm1hdD0lQiAiIGNvbW1pdF9zaGEpIHwgZ2V0bGluZSkgPiAwKSB7 CisgICAgaWYgKHZlcmJvc2UgJiYgISBtc2cpCisgICAgICBtc2cgPSAkMAorCisgICAgIyBG aW5kIGxpbmVzIHRoYXQgcmVmZXJlbmNlIGZpbGVzLiAgV2UgbG9vayBhdCBhbnkgbGluZSBz dGFydGluZworICAgICMgd2l0aCAiKiIgKHBvc3NpYmx5IHByZWZpeGVkIGJ5ICI7ICIpIHdo ZXJlIHRoZSBmaWxlIHBhcnQgc3RhcnRzCisgICAgIyB3aXRoIGFuIGFscGhhbnVtZXJpYyBj aGFyYWN0ZXIuICBUaGUgZmlsZSBwYXJ0IGVuZHMgaWYgd2UKKyAgICAjIGVuY291bnRlciBh bnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiBbICggPCB7IDoKKyAgICBpZiAoL14o OyApP1wqWyBcdF0rW1s6YWxudW06XV0vICYmIG1hdGNoKCQwLCAiW1s6YWxudW06XV1bXlso PHs6XSoiKSkgeworICAgICAgIyBUaGVyZSBtaWdodCBiZSBtdWx0aXBsZSBmaWxlcyBsaXN0 ZWQgb24gdGhpcyBsaW5lLCBzZXBhcmF0ZWQKKyAgICAgICMgYnkgYSBjb21tYSBhbmQvb3Ig c3BhY2UuICBJdGVyYXRlIG92ZXIgZWFjaCBvZiB0aGVtLgorICAgICAgc3BsaXQoc3Vic3Ry KCQwLCBSU1RBUlQsIFJMRU5HVEgpLCBmaWxlbmFtZXMsICJbWzpibGFuazpdLF1bWzpibGFu azpdXSoiKQorICAgICAgZm9yIChpIGluIGZpbGVuYW1lcykgeworICAgICAgICBpZiAobGVu Z3RoKGZpbGVuYW1lc1tpXSkgJiYgISAoZmlsZW5hbWVzW2ldIGluIGNoYW5nZXMpKSB7Cisg ICAgICAgICAgaWYgKGdvb2QpIHsKKyAgICAgICAgICAgICMgUHJpbnQgYSBoZWFkZXIgZGVz Y3JpYmluZyB0aGUgZXJyb3IuCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg ICAgICAgcHJpbnRmKCJJbiBjb21taXQgJXMgXCIlc1wiLi4uXG4iLCBzdWJzdHIoY29tbWl0 X3NoYSwgMSwgMTApLCBtc2cpCisgICAgICAgICAgICBwcmludGYoIkZpbGVzIGxpc3RlZCBp biBjb21taXQgbWVzc2FnZSwgYnV0IG5vdCBpbiBkaWZmOlxuIikKKyAgICAgICAgICB9Cisg ICAgICAgICAgcHJpbnRmKCIgICVzXG4iLCBmaWxlbmFtZXNbaV0pCisgICAgICAgICAgZ29v ZCA9IDAKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorCisgIHJldHVybiBnb29k Cit9CisKK0JFR0lOIHsKKyAgaWYgKHJlYXNvbiA9PSAicHJlLXB1c2giKQorICAgIHZlcmJv c2UgPSAxCit9CisKKy9eW2EtejAtOV17NDB9JC8geworICBpZiAoISBjaGVja19jb21taXRf bXNnX2ZpbGVzKCQwLCB2ZXJib3NlKSkgeworICAgIHN0YXR1cyA9IDEKKyAgfQorfQorCitF TkQgeworICBpZiAoc3RhdHVzICE9IDApIHsKKyAgICBpZiAocmVhc29uID09ICJwcmUtcHVz aCIpCisgICAgICBlcnJvcl9tc2cgPSAiUHVzaCBhYm9ydGVkIgorICAgIGVsc2UKKyAgICAg IGVycm9yX21zZyA9ICJCYWQgY29tbWl0IG1lc3NhZ2UiCisgICAgcHJpbnRmKCIlczsgcGxl YXNlIHNlZSB0aGUgZmlsZSAnQ09OVFJJQlVURSdcbiIsIGVycm9yX21zZykKKyAgfQorICBl eGl0IHN0YXR1cworfQpkaWZmIC0tZ2l0IGEvYnVpbGQtYXV4L2dpdC1ob29rcy9wb3N0LWNv bW1pdCBiL2J1aWxkLWF1eC9naXQtaG9va3MvcG9zdC1jb21taXQKbmV3IGZpbGUgbW9kZSAx MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLjRjMzBlYzc2ZTAyCi0tLSAvZGV2L251bGwKKysr IGIvYnVpbGQtYXV4L2dpdC1ob29rcy9wb3N0LWNvbW1pdApAQCAtMCwwICsxLDI5IEBACisj IS9iaW4vc2gKKyMgQ2hlY2sgdGhlIGZpbGUgbGlzdCBvZiBHTlUgRW1hY3MgY2hhbmdlIGxv ZyBlbnRyaWVzIGFmdGVyIGNvbW1pdHRpbmcuCisKKyMgQ29weXJpZ2h0IDIwMjMgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05V IEVtYWNzLgorCisjIEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgR05VIEVt YWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIEdOVSBF bWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisK KyMgUHJlZmVyIGdhd2sgaWYgYXZhaWxhYmxlLCBhcyBpdCBoYW5kbGVzIE5VTCBieXRlcyBw cm9wZXJseS4KK2lmIHR5cGUgZ2F3ayA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXdrPSJn YXdrIgorZWxzZQorICBhd2s9ImF3ayIKK2ZpCisKK2dpdCByZXYtcGFyc2UgSEVBRCB8ICRh d2sgLXYgcmVhc29uPXBvc3QtY29tbWl0IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg LWYgLmdpdC9ob29rcy9jb21taXQtbXNnLWZpbGVzLmF3awpkaWZmIC0tZ2l0IGEvYnVpbGQt YXV4L2dpdC1ob29rcy9wcmUtcHVzaCBiL2J1aWxkLWF1eC9naXQtaG9va3MvcHJlLXB1c2gK bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLjEzNmY4NGU2NjkxCi0t LSAvZGV2L251bGwKKysrIGIvYnVpbGQtYXV4L2dpdC1ob29rcy9wcmUtcHVzaApAQCAtMCww ICsxLDY2IEBACisjIS9iaW4vc2gKKyMgQ2hlY2sgdGhlIGZpbGUgbGlzdCBvZiBHTlUgRW1h Y3MgY2hhbmdlIGxvZyBlbnRyaWVzIGJlZm9yZSBwdXNoaW5nLgorCisjIENvcHlyaWdodCAy MDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdOVSBFbWFjcy4KKworIyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor CisjIEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcg d2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCisjIFByZWZlciBnYXdrIGlmIGF2YWlsYWJsZSwgYXMgaXQgaGFuZGxlcyBO VUwgYnl0ZXMgcHJvcGVybHkuCitpZiB0eXBlIGdhd2sgPi9kZXYvbnVsbCAyPiYxOyB0aGVu CisgIGF3az0iZ2F3ayIKK2Vsc2UKKyAgYXdrPSJhd2siCitmaQorCisjIFN0YW5kYXJkIGlu cHV0IHJlY2VpdmVzIGxpbmVzIG9mIHRoZSBmb3JtOgorIyAgIDxsb2NhbCByZWY+IFNQIDxs b2NhbCBuYW1lPiBTUCA8cmVtb3RlIHJlZj4gU1AgPHJlbW90ZSBuYW1lPiBMRgorJGF3ayAt diBvcmlnaW5fbmFtZT0iJDEiICcKKyAgIyBJZiB0aGUgbG9jYWwgU0hBIGlzIGFsbCB6ZXJv ZXMsIGlnbm9yZSBpdC4KKyAgJDIgfiAvXjB7NDB9JC8geworICAgIG5leHQKKyAgfQorCisg ICQyIH4gL15bYS16MC05XXs0MH0kLyB7CisgICAgbmV3cmVmID0gJDIKKyAgICAjIElmIHRo ZSByZW1vdGUgU0hBIGlzIGFsbCB6ZXJvZXMsIHRoaXMgaXMgYSBuZXcgb2JqZWN0IHRvIGJl CisgICAgIyBwdXNoZWQgKGxpa2VseSBhIGJyYW5jaCkuICBHbyBiYWNrd2FyZHMgdW50aWwg d2UgZmluZCBhIFNIQSBvbgorICAgICMgYW4gb3JpZ2luIGJyYW5jaC4KKyAgICBpZiAoJDQg fiAvXjB7NDB9JC8pIHsKKyAgICAgIGJhY2sgPSAwCisgICAgICB3aGlsZSAoKCgiZ2l0IGJy YW5jaCAtciAtbCAnXCcnIiBvcmlnaW5fbmFtZSAiLyonXCcnIC0tY29udGFpbnMgIiBcCisg ICAgICAgICAgICAgICBuZXdyZWYgIn4iIGJhY2spIHwgZ2V0bGluZSkgPT0gMCkgeworCisg ICAgICAgICMgT25seSBsb29rIGJhY2sgYXQgbW9zdCAxMDAwIGNvbW1pdHMsIGp1c3QgaW4g Y2FzZS4uLgorICAgICAgICBpZiAoYmFjaysrID4gMTAwMCkKKyAgICAgICAgICBicmVhazsK KyAgICAgIH0KKworICAgICAgKCJnaXQgcmV2LXBhcnNlICIgbmV3cmVmICJ+IiBiYWNrKSB8 IGdldGxpbmUgb2xkcmVmCisgICAgICBpZiAoIShvbGRyZWYgfiAvXlthLXowLTldezQwfSQv KSkgeworICAgICAgICAjIFRoZSBTSEEgaXMgbWlzZm9ybWF0dGVkISAgU2tpcCB0aGlzIGxp bmUuCisgICAgICAgIG5leHQKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKCQ0IH4gL15bYS16 MC05XXs0MH0kLykgIHsKKyAgICAgIG9sZHJlZiA9ICQ0CisgICAgfSBlbHNlIHsKKyAgICAg ICMgVGhlIFNIQSBpcyBtaXNmb3JtYXR0ZWQhICBTa2lwIHRoaXMgbGluZS4KKyAgICAgIG5l eHQKKyAgICB9CisKKyAgICAjIFByaW50IGV2ZXJ5IFNIQSBhZnRlciBvbGRyZWYsIHVwIHRv IChhbmQgaW5jbHVkaW5nKSBuZXdyZWYuCisgICAgc3lzdGVtKCJnaXQgcmV2LWxpc3QgLS1y ZXZlcnNlICIgb2xkcmVmICIuLiIgbmV3cmVmKQorICB9CisnIHwgJGF3ayAtdiByZWFzb249 cHJlLXB1c2ggLWYgLmdpdC9ob29rcy9jb21taXQtbXNnLWZpbGVzLmF3awotLSAKMi4yNS4x Cgo= --------------KzJtvYLMBtkS3ZoFEQt7n2Qm--