From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#58472: [PATCH] Make `message-unique-id' less prone to collisions Date: Mon, 17 Oct 2022 08:14:03 +0000 Message-ID: References: <871qr794o2.fsf@rfc20.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000001182b205eb368f1f" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="37418"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 58472@debbugs.gnu.org To: Paul Eggert , Matt Armstrong Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Oct 17 10:16:07 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1okLI7-0009XE-0k for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 17 Oct 2022 10:16:07 +0200 Original-Received: from localhost ([::1]:56440 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1okLI5-0005rK-CZ for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 17 Oct 2022 04:16:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45622) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1okLH5-0005pZ-1e for bug-gnu-emacs@gnu.org; Mon, 17 Oct 2022 04:15:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:48085) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1okLH4-0008Q4-Ou for bug-gnu-emacs@gnu.org; Mon, 17 Oct 2022 04:15:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1okLH3-0003ki-QX for bug-gnu-emacs@gnu.org; Mon, 17 Oct 2022 04:15:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Oct 2022 08:15:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58472 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 58472-submit@debbugs.gnu.org id=B58472.166599445614351 (code B ref 58472); Mon, 17 Oct 2022 08:15:01 +0000 Original-Received: (at 58472) by debbugs.gnu.org; 17 Oct 2022 08:14:16 +0000 Original-Received: from localhost ([127.0.0.1]:47163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1okLGJ-0003jO-93 for submit@debbugs.gnu.org; Mon, 17 Oct 2022 04:14:15 -0400 Original-Received: from mail-ot1-f53.google.com ([209.85.210.53]:37814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1okLGE-0003j3-F6 for 58472@debbugs.gnu.org; Mon, 17 Oct 2022 04:14:14 -0400 Original-Received: by mail-ot1-f53.google.com with SMTP id r8-20020a056830120800b00661a0a236efso5361327otp.4 for <58472@debbugs.gnu.org>; Mon, 17 Oct 2022 01:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=7E3RZxR7SoH7LR5zl3/jcG/tdubV4pVrqqx2D8TeANg=; b=Ayz7tyW0lZoBJ1NR8D706OOSXeW6cSiq4YZ893yoQzqkzOdIONTOAsnrz8jk/PVtsp mS60MDkR5xS30yUKLiZA7zoINCRGvmxCU4SL+Pbz9PNU37aqUEu1IKC143lXlu31d7+u UDnr0m1Efz6CsP3PXmDPOhv31nOIv8otaAfzjww5NeXrcG8/mU7RFIHIVQdAp6DuvX3x h3cihv4H9p7osH0psX0QsKanLD0SHXD+sOjePpKlJR3XzDv5gmdJX5gvsvqlmx+a+cbN f6yMfYN7p+By511V8IAYo1RKSDkGQA3whV3K7ipwQfb/VFKnE8YSc+aY6CRZnSki2eQx ONSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7E3RZxR7SoH7LR5zl3/jcG/tdubV4pVrqqx2D8TeANg=; b=O8ELeUTaK8biTad7VcdoIjRnQ+3eeRnwEcOHmHQohvo00JWOPVt61E5HsyrMhdXQlM 8338szhxthiJTSzV7ealAIVtZ5MnU+dGb45sb9+eXOKfAL2Yy4i1FwyicWSysBjJQlCo 4pbG86p3Id7TAg8mR9BzMY3nBeaHC/1/TOrGNQ1vrmD1FrmCpuz2nz6d3YjbUmI8N6l8 bxV2U7c4pZHh+y0pjQ+YK5+HVd9W8pul/aOI/H9RGWTrIqm8QyPhTjQlc0eCxgPRiHpf 0oN3hrsXhtf1uhVB30rY1CkVwHWp/n+NGnKmFuoPnNmYJYPtRKqMh0zYl1BsKR9Z9JU/ 5rhg== X-Gm-Message-State: ACrzQf1Eu+RKjV6bJIlh/OmwxOSBDAZzOGylM+9ZZ8VjgbjsuwzS7xaH rUPNqkhGOV04lA8k8YxolLf5Cb6A5j9yfKXcEx937smf X-Google-Smtp-Source: AMsMyM4dX2kUdIJBJdMS37zDdGgosOzRouMSk3fLGQi549SwRnJQXCBjPF7bRkpdtMfAyJgmvEwtHzIO2rzvenDYwVM= X-Received: by 2002:a05:6830:3c1:b0:637:28be:7920 with SMTP id p1-20020a05683003c100b0063728be7920mr4367626otc.105.1665994444595; Mon, 17 Oct 2022 01:14:04 -0700 (PDT) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 17 Oct 2022 08:14:03 +0000 In-Reply-To: X-Hashcash: 1:20:221017:eggert@cs.ucla.edu::J293CsZtHLUPtqAN:3LTT X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:245694 Archived-At: --0000000000001182b205eb368f1f Content-Type: text/plain; charset="UTF-8" Paul Eggert writes: > I've been looking into this and have several patches along these lines. > None of them address message-unique-id directly yet (I plan to tackle > this soon) but they do address the general problem area. The basic idea > is to use a new make-nonce primitive. Thanks! I have read your patchset, which looks good to me. I have also attached my latest patch for `message-unique-id', but I'm not married to it if you have something better in mind. It could easily be updated to use `make-nonce' though. > (defun math-init-random-base () [...snip...] > + (declare (obsolete nil "29.1"))) This is a nit, but perhaps this could be simplified to: (declare-obsolete-function-alias 'math-init-random-base #'ignore "29.1) > diff --git a/src/sysdep.c b/src/sysdep.c > index 4786c8fa4f..5117460fc0 100644 > --- a/src/sysdep.c > +++ b/src/sysdep.c > @@ -2159,6 +2159,22 @@ seed_random (void *seed, ptrdiff_t seed_size) > set_random_seed (arg); > } > > +/* Set BUF, of size BUFSIZE, to random data derived from system entropy. */ > + > +void > +get_entropy (void *buf, ptrdiff_t bufsize) > +{ > + char *p = buf, *lim = p + bufsize; > + while (p < lim) > + { > + ssize_t gotten = getrandom (p, lim - p, 0); > + if (0 <= gotten) > + p += gotten; > + else if (errno != EINTR) > + report_file_error ("Getting random data", Qnil); > + } > +} If we claim that the random data is suitable for cryptographic purposes, should we be using the GRND_RANDOM flag here? On Linux, flags 0 and GRND_RANDOM are equivalent (I read the most recent kernel code to verify this). But I have no idea about other platforms. --0000000000001182b205eb368f1f Content-Type: text/x-diff; charset="US-ASCII"; name="0001-Make-message-unique-id-less-prone-to-collisions.patch" Content-Disposition: attachment; filename="0001-Make-message-unique-id-less-prone-to-collisions.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 676eef6e9abc0709_0.1 RnJvbSA4MTFjN2U3MGI1NWU3YWVhY2U3OTJmZmJmMTkyMDNlZjM2ZjMwYmQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5rYW5nYXNAZ21haWwuY29t PgpEYXRlOiBXZWQsIDEyIE9jdCAyMDIyIDE3OjI5OjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g TWFrZSBgbWVzc2FnZS11bmlxdWUtaWQnIGxlc3MgcHJvbmUgdG8gY29sbGlzaW9ucwoKKiBsaXNw L2dudXMvbWVzc2FnZS5lbCAobWVzc2FnZS11bmlxdWUtaWQpOiBNYWtlIGxlc3MgcHJvbmUgdG8K Y29sbGlzaW9ucy4gIChCdWcjNTg0NzIpCihtZXNzYWdlLW51bWJlci1iYXNlMzYpOiBNYWtlIG9i c29sZXRlIGluIGZhdm9yIG9mLi4uCihtZXNzYWdlLS1udW1iZXItYmFzZTYyKTogLi4udGhpcyBu ZXcgZnVuY3Rpb24uCihtZXNzYWdlLXVuaXF1ZS1pZC1jaGFyKTogTWFrZSB1bnVzZWQgdmFyaWFi bGUgb2Jzb2xldGUuCiogdGVzdC9saXNwL2dudXMvbWVzc2FnZS10ZXN0cy5lbCAobWVzc2FnZS11 bmlxdWUtaWQtdGVzdCkKKG1lc3NhZ2UtbnVtYmVyLWJhc2U2Mi10ZXN0KTogTmV3IHRlc3RzLgot LS0KIGxpc3AvZ251cy9tZXNzYWdlLmVsICAgICAgICAgICAgfCA3OSArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0KIHRlc3QvbGlzcC9nbnVzL21lc3NhZ2UtdGVzdHMuZWwgfCAxMCAr KysrKwogMiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saXNwL2dudXMvbWVzc2FnZS5lbCBiL2xpc3AvZ251cy9tZXNzYWdlLmVs CmluZGV4IGE3MTRlMzE4NzYuLjE1OTBhOGIyODkgMTAwNjQ0Ci0tLSBhL2xpc3AvZ251cy9tZXNz YWdlLmVsCisrKyBiL2xpc3AvZ251cy9tZXNzYWdlLmVsCkBAIC01ODg2LDUwICs1ODg2LDM2IEBA IG1lc3NhZ2UtbWFrZS1tZXNzYWdlLWlkCiAJCSJfLV8iICIiKSkKIAkgICJAIiAobWVzc2FnZS1t YWtlLWZxZG4pICI+IikpCiAKLShkZWZ2YXIgbWVzc2FnZS11bmlxdWUtaWQtY2hhciBuaWwpCi0K LTs7IElmIHlvdSBldmVyIGNoYW5nZSB0aGlzIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlIG5ldyB2 ZXJzaW9uCi07OyBjYW5ub3QgZ2VuZXJhdGUgSURzIHRoYXQgdGhlIG9sZCB2ZXJzaW9uIGNvdWxk LgotOzsgWW91IG1pZ2h0IGZvciBleGFtcGxlIGluc2VydCBhICIuIiBzb21ld2hlcmUgKG5vdCBu ZXh0IHRvIGFub3RoZXIgZG90Ci07OyBvciBzdHJpbmcgYm91bmRhcnkpLCBvciBtb2RpZnkgdGhl ICJmc2YiIHN0cmluZy4KIChkZWZ1biBtZXNzYWdlLXVuaXF1ZS1pZCAoKQotICA7OyBEb24ndCB1 c2UgZnJhY3Rpb25hbCBzZWNvbmRzIGZyb20gdGltZXN0YW1wOyB0aGV5IG1heSBiZSB1bnN1cHBv cnRlZC4KLSAgOzsgSW5zdGVhZCB3ZSB1c2UgdGhpcyByYW5kb21seSBpbml0ZWQgY291bnRlci4K LSAgKHNldHEgbWVzc2FnZS11bmlxdWUtaWQtY2hhcgotCTs7IDJeMTYgKiAyNSBqdXN0IGZpdHMg aW50byA0IGRpZ2l0cyBpIGJhc2UgMzYuCi0JKGxldCAoKGJhc2UgKCogMjUgMjUpKSkKLQkgIChp ZiBtZXNzYWdlLXVuaXF1ZS1pZC1jaGFyCi0JICAgICAgKCUgKDErIG1lc3NhZ2UtdW5pcXVlLWlk LWNoYXIpIGJhc2UpCi0JICAgIChyYW5kb20gYmFzZSkpKSkKLSAgKGxldCAoKHRtICh0aW1lLWNv bnZlcnQgbmlsICdpbnRlZ2VyKSkpCisgICJSZXR1cm4gYSBnZW5lcmF0ZWQgc3RyaW5nIHN1aXRh YmxlIGZvciB1c2luZyBhcyBhIHVuaXF1ZSBNZXNzYWdlLUlELiIKKyAgKGxldCAoKHJhbmRvbS1u dW0KKyAgICAgICAgIChzZXEtcmVkdWNlIChsYW1iZGEgKGEgaSkgKCsgKGFzaCBhIDgpIGkpKQor ICAgICAgICAgICAgICAgICAgICAgKHNlY3VyZS1oYXNoICdtZDUgJ2l2LWF1dG8gMTI4IG5pbCB0 KSAwKSkpCisgICAgOzsgVXNlIHRoZSBQUk5HIHRvIHNldCBhbiBleHRyYSBjb3VwbGUgb2YgYml0 cywgdG8gYXZvaWQgaGF2aW5nCisgICAgOzsgZXZlcnkgTWVzc2FnZS1JZCBzdGFydCB3aXRoICJB LUYiLgorICAgIChzZXRxIHJhbmRvbS1udW0gKGxvZ2lvciByYW5kb20tbnVtIChhc2ggKHJhbmRv bSAxNikgMTI4KSkpCiAgICAgKGNvbmNhdAotICAgICAoaWYgKG9yIChlcSBzeXN0ZW0tdHlwZSAn bXMtZG9zKQotCSAgICAgOzsgbWVzc2FnZS1udW1iZXItYmFzZTM2IGRvZXNuJ3QgaGFuZGxlIGJp Z2ludHMuCi0JICAgICAoZmxvYXRwICh1c2VyLXVpZCkpKQotCSAobGV0ICgodXNlciAoZG93bmNh c2UgKHVzZXItbG9naW4tbmFtZSkpKSkKLQkgICAod2hpbGUgKHN0cmluZy1tYXRjaCAiW15hLXow LTlfXSIgdXNlcikKLQkgICAgIChhc2V0IHVzZXIgKG1hdGNoLWJlZ2lubmluZyAwKSA/XykpCi0J ICAgdXNlcikKLSAgICAgICAobWVzc2FnZS1udW1iZXItYmFzZTM2ICh1c2VyLXVpZCkgLTEpKQot ICAgICAobWVzc2FnZS1udW1iZXItYmFzZTM2ICgrIChhc2ggdG0gLTE2KQotCQkJICAgICAgIChh c2ggKCUgbWVzc2FnZS11bmlxdWUtaWQtY2hhciAyNSkgMTYpKQotCQkJICAgIDQpCi0gICAgICht ZXNzYWdlLW51bWJlci1iYXNlMzYgKCsgKGxvZ2FuZCB0bSAjeGZmZmYpCi0JCQkgICAgICAgKGFz aCAoLyBtZXNzYWdlLXVuaXF1ZS1pZC1jaGFyIDI1KSAxNikpCi0JCQkgICAgNCkKLSAgICAgOzsg QXBwZW5kIGEgZ2l2ZW4gbmFtZSwgYmVjYXVzZSB3aGlsZSB0aGUgZ2VuZXJhdGVkIElEIGlzIHVu aXF1ZQotICAgICA7OyB0byB0aGlzIG5ld3NyZWFkZXIsIG90aGVyIG5ld3NyZWFkZXJzIG1pZ2h0 IG90aGVyd2lzZSBnZW5lcmF0ZQotICAgICA7OyB0aGUgc2FtZSBJRCB2aWEgYW5vdGhlciBhbGdv cml0aG0uCi0gICAgICIuZnNmIikpKQotCi0oZGVmdW4gbWVzc2FnZS1udW1iZXItYmFzZTM2IChu dW0gbGVuKQorICAgICA7OyBXZSB1c2VkIHRvIGJhc2UgdGhpcyBvbiB0aW1lLCBldWlkLCBldGMu LCBidXQgbm93IGp1c3QgdXNlIDEyOAorICAgICA7OyBiaXRzIG9mIHJhbmRvbSBkYXRhLiAgVGhl IG1haW4gcmVxdWlyZW1lbnRzIGFyZSB0aGF0IGNvbGxpc2lvbnMKKyAgICAgOzsgYXJlIHVubGlr ZWx5LCBhbmQgdGhhdCB0aGUgYWxwaGFiZXQgaXMgbGltaXRlZC4gIE5vdGUgdGhhdCB0aGUKKyAg ICAgOzsgcmFuZG9tIGRhdGEgd2lsbCBiZSBzZWN1cmVseSBnZW5lcmF0ZWQgYnkgZ2V0cmFuZG9t KCkgaW4gR251bGliLgorICAgICAobWVzc2FnZS0tbnVtYmVyLWJhc2U2MiByYW5kb20tbnVtIDIy KQorICAgICA7OyBBcHBlbmQgIi5nbnUiIHRvIGFkdmVydGlzZSB0aGF0IHdlJ3JlIEdOVSBFbWFj cy4KKyAgICAgIi5nbnUiKSkpCisKKyhkZWZ1biBtZXNzYWdlLS1udW1iZXItYmFzZTYyIChudW0g bGVuKQorICAiUmV0dXJuIGEgc3RyaW5nIHNpbWlsYXIgdG8gQmFzZTY0LCBidXQgaW5jbHVkZSBv bmx5IGFscGhhLW51bWVyaWNzLgorTlVNIGlzIHRoZSBudW1iZXIgdG8gY29udmVydC4KK0xFTiBp cyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgKG9yIC0xIGZvciBubyBsaW1pdCkuIgogICAoaWYg KGlmICg8IGxlbiAwKQotCSAgKDw9IG51bSAwKQotCSg9IGxlbiAwKSkKKyAgICAgICAgICAoPD0g bnVtIDApCisgICAgICAgICg9IGxlbiAwKSkKICAgICAgICIiCi0gICAgKGNvbmNhdCAobWVzc2Fn ZS1udW1iZXItYmFzZTM2ICgvIG51bSAzNikgKDEtIGxlbikpCi0JICAgIChjaGFyLXRvLXN0cmlu ZyAoYXJlZiAienl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmE5ODc2NTQzMjEwIgotCQkJCSAgKCUg bnVtIDM2KSkpKSkpCisgICAgKGNvbmNhdCAobWVzc2FnZS0tbnVtYmVyLWJhc2U2MiAoLyBudW0g NjIpICgxLSBsZW4pKQorICAgICAgICAgICAgKGNoYXItdG8tc3RyaW5nIChhcmVmIChjb25jYXQg IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjAxMjM0NTY3ODkiKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICglIG51bSA2MikpKSkpKQogCiAoZGVmdW4gbWVzc2FnZS1t YWtlLW9yZ2FuaXphdGlvbiAoKQogICAiTWFrZSBhbiBPcmdhbml6YXRpb24gaGVhZGVyLiIKQEAg LTg5OTgsNiArODk4NCwxOSBAQCBtZXNzYWdlLW1haWx0by0xCiAJKG1lc3NhZ2UtZ290by1ib2R5 KQogICAgICAgKG1lc3NhZ2UtZ290by1zdWJqZWN0KSkpKQogCisobWFrZS1vYnNvbGV0ZS12YXJp YWJsZSAnbWVzc2FnZS11bmlxdWUtaWQtY2hhciBuaWwgIjI5LjEiKQorKGRlZnZhciBtZXNzYWdl LXVuaXF1ZS1pZC1jaGFyIG5pbCkKKworKGRlZnVuIG1lc3NhZ2UtbnVtYmVyLWJhc2UzNiAobnVt IGxlbikKKyAgKGRlY2xhcmUgKG9ic29sZXRlIG1lc3NhZ2UtLW51bWJlci1iYXNlNjIgIjI5LjEi KSkKKyAgKGlmIChpZiAoPCBsZW4gMCkKKyAgICAgICAgICAoPD0gbnVtIDApCisgICAgICAgICg9 IGxlbiAwKSkKKyAgICAgICIiCisgICAgKGNvbmNhdCAobWVzc2FnZS1udW1iZXItYmFzZTM2ICgv IG51bSAzNikgKDEtIGxlbikpCisgICAgICAgICAgICAoY2hhci10by1zdHJpbmcgKGFyZWYgIjAx MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoJSBudW0gMzYpKSkpKSkKKwogKHByb3ZpZGUgJ21lc3NhZ2UpCiAKICht YWtlLW9ic29sZXRlLXZhcmlhYmxlICdtZXNzYWdlLWxvYWQtaG9vawpkaWZmIC0tZ2l0IGEvdGVz dC9saXNwL2dudXMvbWVzc2FnZS10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9nbnVzL21lc3NhZ2UtdGVz dHMuZWwKaW5kZXggYTcyNDQyOGVjYi4uODUxZTA3YjdhZSAxMDA2NDQKLS0tIGEvdGVzdC9saXNw L2dudXMvbWVzc2FnZS10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZ251cy9tZXNzYWdlLXRlc3Rz LmVsCkBAIC0zMSw2ICszMSwxNiBAQAogCiAocmVxdWlyZSAnY2wtbGliKQogCisoZXJ0LWRlZnRl c3QgbWVzc2FnZS11bmlxdWUtaWQtdGVzdCAoKQorICAoc2hvdWxkIChzdHJpbmdwIChtZXNzYWdl LXVuaXF1ZS1pZCkpKQorICAoc2hvdWxkICg9IChsZW5ndGggKG1lc3NhZ2UtdW5pcXVlLWlkKSkg MjYpKQorICAoc2hvdWxkIChzdHJpbmctbWF0Y2ggKHJ4ICIuZ251IiBlb3MpIChtZXNzYWdlLXVu aXF1ZS1pZCkpKSkKKworKGVydC1kZWZ0ZXN0IG1lc3NhZ2UtLW51bWJlci1iYXNlNjItdGVzdCAo KQorICAoc2hvdWxkIChlcXVhbCAobWVzc2FnZS0tbnVtYmVyLWJhc2U2MiAxMCAtMSkgIksiKSkK KyAgKHNob3VsZCAoZXF1YWwgKG1lc3NhZ2UtLW51bWJlci1iYXNlNjIgMSAyKSAiQUIiKSkKKyAg KHNob3VsZCAoZXF1YWwgKG1lc3NhZ2UtLW51bWJlci1iYXNlNjIgKGV4cHQgNjIgNSkgLTEpICJC QUFBQUEiKSkpCisKIChlcnQtZGVmdGVzdCBtZXNzYWdlLW1vZGUtcHJvcGVydGl6ZSAoKQogICAo d2l0aC10ZW1wLWJ1ZmZlcgogICAgICh1bndpbmQtcHJvdGVjdAotLSAKMi4zNS4xCgo= --0000000000001182b205eb368f1f--