From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#32463: 27.0.50; (logior -1) => 4611686018427387903 Date: Sat, 18 Aug 2018 15:27:40 -0700 Organization: UCLA Computer Science Department Message-ID: References: <86mutll4w2.fsf@gmail.com> <3a6f17af-018e-cb0b-5182-cf736b3a814c@cs.ucla.edu> <83a7pjfql6.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------11C2C37ECEACB3BEC69DB9CE" X-Trace: blaine.gmane.org 1534631170 7750 195.159.176.226 (18 Aug 2018 22:26:10 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 18 Aug 2018 22:26:10 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 Cc: andrewjmoreton@gmail.com, 32463@debbugs.gnu.org To: Pip Cet , eliz@gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Aug 19 00:26:06 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fr9fY-0001tE-Cj for geb-bug-gnu-emacs@m.gmane.org; Sun, 19 Aug 2018 00:26:05 +0200 Original-Received: from localhost ([::1]:40665 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fr9he-0007rx-Ny for geb-bug-gnu-emacs@m.gmane.org; Sat, 18 Aug 2018 18:28:14 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37610) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fr9hV-0007rp-HM for bug-gnu-emacs@gnu.org; Sat, 18 Aug 2018 18:28:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fr9hS-0001T8-D0 for bug-gnu-emacs@gnu.org; Sat, 18 Aug 2018 18:28:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:49277) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fr9hS-0001T0-9b for bug-gnu-emacs@gnu.org; Sat, 18 Aug 2018 18:28:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fr9hS-0007LN-0w for bug-gnu-emacs@gnu.org; Sat, 18 Aug 2018 18:28:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 18 Aug 2018 22:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32463 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 32463-submit@debbugs.gnu.org id=B32463.153463127428207 (code B ref 32463); Sat, 18 Aug 2018 22:28:01 +0000 Original-Received: (at 32463) by debbugs.gnu.org; 18 Aug 2018 22:27:54 +0000 Original-Received: from localhost ([127.0.0.1]:54295 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fr9hI-0007Kp-5m for submit@debbugs.gnu.org; Sat, 18 Aug 2018 18:27:54 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:42538) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fr9hF-0007Ka-Um for 32463@debbugs.gnu.org; Sat, 18 Aug 2018 18:27:50 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A178A160812; Sat, 18 Aug 2018 15:27:43 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id GHsnyPYS1ZEh; Sat, 18 Aug 2018 15:27:42 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 353AE16081D; Sat, 18 Aug 2018 15:27:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id kUGhWKUwcxkI; Sat, 18 Aug 2018 15:27:42 -0700 (PDT) Original-Received: from [192.168.1.9] (unknown [47.154.30.119]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A983B160812; Sat, 18 Aug 2018 15:27:41 -0700 (PDT) In-Reply-To: Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:149581 Archived-At: This is a multi-part message in MIME format. --------------11C2C37ECEACB3BEC69DB9CE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Pip Cet wrote: > Are you suggesting we revert to > the previous behavior, and try to come up with an interpretation for > bignums that somehow extends the previous behavior? I think Eli was suggesting reverting lsh to the traditional behavior for fixnums, for backwards-compatibility reasons. There doesn't seem to be a good way to extend this behavior for bignums, so I installed the attached patch that simply makes it an error to invoke (lsh A B) where A is a negative bignum and B is negative. This patch also adds some test cases inspired by one of your previous emails (thanks). --------------11C2C37ECEACB3BEC69DB9CE Content-Type: text/plain; charset=UTF-8; name="0001-Restore-traditional-lsh-behavior-on-fixnums.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Restore-traditional-lsh-behavior-on-fixnums.txt" RnJvbSA2NzNiMTc4NWRiNDYwNGVmZTgxYjgwNDVhOWQ4YWI2ODkzNmFmNzE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDE4IEF1ZyAyMDE4IDE1OjIwOjQ2IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gUmVzdG9yZSB0cmFkaXRpb25hbCBsc2ggYmVoYXZpb3Igb24gZml4bnVtcwpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKKiBkb2MvbGlzcHJlZi9udW1iZXJzLnRl eGkgKEJpdHdpc2UgT3BlcmF0aW9ucyk6IERvY3VtZW50IHRoYXQKdGhlIHRyYWRpdGlvbmFs IChsc2ggQSBCKSBiZWhhdmlvciBpcyBmb3IgZml4bnVtcywgYW5kIHRoYXQgaXQKaXMgYW4g ZXJyb3IgaWYgQSBhbmQgQiBhcmUgYm90aCBuZWdhdGl2ZSBhbmQgQSBpcyBhIGJpZ251bS4K U2VlIEJ1ZyMzMjQ2My4KKiBsaXNwL3N1YnIuZWwgKGxzaCk6IE5ldyBmdW5jdGlvbiwgbW92 ZWQgaGVyZSBmcm9tIHNyYy9kYXRhLmMuCiogc3JjL2RhdGEuYyAoYXNoX2xzaF9pbXBsKTog UmVtb3ZlLCBtb3ZpbmcgYm9keSBpbnRvIEZhc2gKc2luY2UgaXTigJlzIHRoZSBvbmx5IGNh bGxlciBub3cuCihGYXNoKTogQ2hlY2sgZm9yIG91dC1vZi1yYW5nZSBjb3VudHMuICBJZiBD T1VOVCBpcyB6ZXJvLApyZXR1cm4gZmlyc3QgYXJndW1lbnQgaW5zdGVhZCBvZiBnb2luZyB0 aHJvdWdoIGxpYmdtcC4gIE9taXQKbHNoIGNvZGUgc2luY2UgbHNoIGlzIG5vdyBkb25lIGlu IExpc3AuICBBZGQgY29kZSBmb3Igc2hpZnRpbmcKZml4bnVtcyByaWdodCwgdG8gYXZvaWQg YSByb3VuZCB0cmlwIHRocm91Z2ggbGliZ21wLgooRmxzaCk6IFJlbW92ZTsgbW92ZWQgdG8g bGlzcC9zdWJyLmVsLgoqIHRlc3QvbGlzcC9pbnRlcm5hdGlvbmFsL2NjbC10ZXN0cy5lbCAo c2hpZnQpOgpUZXN0IGZvciB0cmFkaXRpb25hbCBsc2ggYmVoYXZpb3IsIGluc3RlYWQgb2Yg YXNzdW1pbmcKbHNoIGlzIGxpa2UgYXNoIHdoZW4gYmlnbnVtcyBhcmUgcHJlc2VudC4KKiB0 ZXN0L3NyYy9kYXRhLXRlc3RzLmVsIChkYXRhLXRlc3RzLWxvZ2FuZCkKKGRhdGEtdGVzdHMt bG9naW9yLCBkYXRhLXRlc3RzLWxvZ3hvciwgZGF0YS10ZXN0cy1hc2gtbHNoKToKTmV3IHRl c3RzLgotLS0KIGRvYy9saXNwcmVmL251bWJlcnMudGV4aSAgICAgICAgICAgICB8ICA3ICsr Ky0KIGxpc3Avc3Vici5lbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysrKwog c3JjL2RhdGEuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjAgKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQogdGVzdC9saXNwL2ludGVybmF0aW9uYWwvY2NsLXRlc3RzLmVs IHwgMjEgKysrLS0tLS0tLQogdGVzdC9zcmMvZGF0YS10ZXN0cy5lbCAgICAgICAgICAgICAg IHwgMTYgKysrKysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgNTcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvbnVtYmVycy50ZXhpIGIv ZG9jL2xpc3ByZWYvbnVtYmVycy50ZXhpCmluZGV4IDM3ZDJjMzE2NDkuLmVlNjQ1NmIxYmUg MTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL251bWJlcnMudGV4aQorKysgYi9kb2MvbGlzcHJl Zi9udW1iZXJzLnRleGkKQEAgLTg0NCw3ICs4NDQsOSBAQCBCaXR3aXNlIE9wZXJhdGlvbnMK IGlmIEB2YXJ7Y291bnR9IGlzIG5lZ2F0aXZlLCBicmluZ2luZyB6ZXJvcyBpbnRvIHRoZSB2 YWNhdGVkIGJpdHMuICBJZgogQHZhcntjb3VudH0gaXMgbmVnYXRpdmUsIEBjb2Rle2xzaH0g c2hpZnRzIHplcm9zIGludG8gdGhlIGxlZnRtb3N0CiAobW9zdC1zaWduaWZpY2FudCkgYml0 LCBwcm9kdWNpbmcgYSBub25uZWdhdGl2ZSByZXN1bHQgZXZlbiBpZgotQHZhcntpbnRlZ2Vy MX0gaXMgbmVnYXRpdmUuICBDb250cmFzdCB0aGlzIHdpdGggQGNvZGV7YXNofSwgYmVsb3cu CitAdmFye2ludGVnZXIxfSBpcyBuZWdhdGl2ZSBmaXhudW0uICAoSWYgQHZhcntpbnRlZ2Vy MX0gaXMgYSBuZWdhdGl2ZQorYmlnbnVtLCBAdmFye2NvdW50fSBtdXN0IGJlIG5vbm5lZ2F0 aXZlLikgIENvbnRyYXN0IHRoaXMgd2l0aAorQGNvZGV7YXNofSwgYmVsb3cuCiAKIEhlcmUg YXJlIHR3byBleGFtcGxlcyBvZiBAY29kZXtsc2h9LCBzaGlmdGluZyBhIHBhdHRlcm4gb2Yg Yml0cyBvbmUKIHBsYWNlIHRvIHRoZSBsZWZ0LiAgV2Ugc2hvdyBvbmx5IHRoZSBsb3ctb3Jk ZXIgZWlnaHQgYml0cyBvZiB0aGUgYmluYXJ5CkBAIC05MTMsNyArOTE1LDggQEAgQml0d2lz ZSBPcGVyYXRpb25zCiBAY29kZXthc2h9IGdpdmVzIHRoZSBzYW1lIHJlc3VsdHMgYXMgQGNv ZGV7bHNofSBleGNlcHQgd2hlbgogQHZhcntpbnRlZ2VyMX0gYW5kIEB2YXJ7Y291bnR9IGFy ZSBib3RoIG5lZ2F0aXZlLiAgSW4gdGhhdCBjYXNlLAogQGNvZGV7YXNofSBwdXRzIG9uZXMg aW4gdGhlIGVtcHR5IGJpdCBwb3NpdGlvbnMgb24gdGhlIGxlZnQsIHdoaWxlCi1AY29kZXts c2h9IHB1dHMgemVyb3MgaW4gdGhvc2UgYml0IHBvc2l0aW9ucy4KK0Bjb2Rle2xzaH0gcHV0 cyB6ZXJvcyBpbiB0aG9zZSBiaXQgcG9zaXRpb25zIGFuZCByZXF1aXJlcworQHZhcntpbnRl Z2VyMX0gdG8gYmUgYSBmaXhudW0uCiAKIFRodXMsIHdpdGggQGNvZGV7YXNofSwgc2hpZnRp bmcgdGhlIHBhdHRlcm4gb2YgYml0cyBvbmUgcGxhY2UgdG8gdGhlIHJpZ2h0CiBsb29rcyBs aWtlIHRoaXM6CmRpZmYgLS1naXQgYS9saXNwL3N1YnIuZWwgYi9saXNwL3N1YnIuZWwKaW5k ZXggZmJiM2U0OWEzNS4uY2FmYTQ4MzVlYSAxMDA2NDQKLS0tIGEvbGlzcC9zdWJyLmVsCisr KyBiL2xpc3Avc3Vici5lbApAQCAtMzY2LDYgKzM2NiwxOCBAQCB6ZXJvcAogICAoZGVjbGFy ZSAoY29tcGlsZXItbWFjcm8gKGxhbWJkYSAoXykgYCg9IDAgLG51bWJlcikpKSkKICAgKD0g MCBudW1iZXIpKQogCisoZGVmdW4gbHNoICh2YWx1ZSBjb3VudCkKKyAgIlJldHVybiBWQUxV RSB3aXRoIGl0cyBiaXRzIHNoaWZ0ZWQgbGVmdCBieSBDT1VOVC4KK0lmIENPVU5UIGlzIG5l Z2F0aXZlLCBzaGlmdGluZyBpcyBhY3R1YWxseSB0byB0aGUgcmlnaHQuCitJbiB0aGlzIGNh c2UsIGlmIFZBTFVFIGlzIGEgbmVnYXRpdmUgZml4bnVtIHRyZWF0IGl0IGFzIHVuc2lnbmVk LAoraS5lLiwgc3VidHJhY3QgMiAqIG1vc3QtbmVnYXRpdmUtZml4bnVtIGZyb20gVkFMVUUg YmVmb3JlIHNoaWZ0aW5nIGl0LiIKKyAgKHdoZW4gKGFuZCAoPCB2YWx1ZSAwKSAoPCBjb3Vu dCAwKSkKKyAgICAod2hlbiAoPCB2YWx1ZSBtb3N0LW5lZ2F0aXZlLWZpeG51bSkKKyAgICAg IChzaWduYWwgJ2FyZ3Mtb3V0LW9mLXJhbmdlIChsaXN0IHZhbHVlIGNvdW50KSkpCisgICAg KHNldHEgdmFsdWUgKGxvZ2FuZCAoYXNoIHZhbHVlIC0xKSBtb3N0LXBvc2l0aXZlLWZpeG51 bSkpCisgICAgKHNldHEgY291bnQgKDErIGNvdW50KSkpCisgIChhc2ggdmFsdWUgY291bnQp KQorCiAMCiA7Ozs7IExpc3QgZnVuY3Rpb25zLgogCmRpZmYgLS1naXQgYS9zcmMvZGF0YS5j IGIvc3JjL2RhdGEuYwppbmRleCA1YTM1NWQ5Nzg3Li5hMzk5NzhhYjFkIDEwMDY0NAotLS0g YS9zcmMvZGF0YS5jCisrKyBiL3NyYy9kYXRhLmMKQEAgLTMzNjUsMzAgKzMzNjUsNDQgQEAg cmVwcmVzZW50YXRpb24uICAqLykKIAkJICAgICAgOiBjb3VudF9vbmVfYml0c19sbCAodikp OwogfQogCi1zdGF0aWMgTGlzcF9PYmplY3QKLWFzaF9sc2hfaW1wbCAoTGlzcF9PYmplY3Qg dmFsdWUsIExpc3BfT2JqZWN0IGNvdW50LCBib29sIGxzaCkKK0RFRlVOICgiYXNoIiwgRmFz aCwgU2FzaCwgMiwgMiwgMCwKKyAgICAgICBkb2M6IC8qIFJldHVybiBWQUxVRSB3aXRoIGl0 cyBiaXRzIHNoaWZ0ZWQgbGVmdCBieSBDT1VOVC4KK0lmIENPVU5UIGlzIG5lZ2F0aXZlLCBz aGlmdGluZyBpcyBhY3R1YWxseSB0byB0aGUgcmlnaHQuCitJbiB0aGlzIGNhc2UsIHRoZSBz aWduIGJpdCBpcyBkdXBsaWNhdGVkLiAgKi8pCisgIChMaXNwX09iamVjdCB2YWx1ZSwgTGlz cF9PYmplY3QgY291bnQpCiB7Ci0gIC8qIFRoaXMgY29kZSBhc3N1bWVzIHRoYXQgc2lnbmVk IHJpZ2h0IHNoaWZ0cyBhcmUgYXJpdGhtZXRpYy4gICovCi0gIHZlcmlmeSAoKEVNQUNTX0lO VCkgLTEgPj4gMSA9PSAtMSk7Ci0KICAgTGlzcF9PYmplY3QgdmFsOwogCisgIC8qIFRoZSBu ZWdhdGl2ZSBvZiB0aGUgbWluaW11bSB2YWx1ZSBvZiBDT1VOVCB0aGF0IGZpdHMgaW50byBh IGZpeG51bSwKKyAgICAgc3VjaCB0aGF0IG1wel9mZGl2X3FfZXhwIHN1cHBvcnRzIC1DT1VO VC4gICovCisgIEVNQUNTX0lOVCBtaW51c19jb3VudF9taW4gPSBtaW4gKC1NT1NUX05FR0FU SVZFX0ZJWE5VTSwKKwkJCQkgICBUWVBFX01BWElNVU0gKG1wX2JpdGNudF90KSk7CiAgIENI RUNLX0lOVEVHRVIgKHZhbHVlKTsKLSAgQ0hFQ0tfRklYTlVNIChjb3VudCk7CisgIENIRUNL X1JBTkdFRF9JTlRFR0VSIChjb3VudCwgLSBtaW51c19jb3VudF9taW4sIFRZUEVfTUFYSU1V TSAobXBfYml0Y250X3QpKTsKIAogICBpZiAoQklHTlVNUCAodmFsdWUpKQogICAgIHsKKyAg ICAgIGlmIChYRklYTlVNIChjb3VudCkgPT0gMCkKKwlyZXR1cm4gdmFsdWU7CiAgICAgICBt cHpfdCByZXN1bHQ7CiAgICAgICBtcHpfaW5pdCAocmVzdWx0KTsKLSAgICAgIGlmIChYRklY TlVNIChjb3VudCkgPj0gMCkKKyAgICAgIGlmIChYRklYTlVNIChjb3VudCkgPiAwKQogCW1w el9tdWxfMmV4cCAocmVzdWx0LCBYQklHTlVNICh2YWx1ZSktPnZhbHVlLCBYRklYTlVNIChj b3VudCkpOwotICAgICAgZWxzZSBpZiAobHNoKQotCW1wel90ZGl2X3FfMmV4cCAocmVzdWx0 LCBYQklHTlVNICh2YWx1ZSktPnZhbHVlLCAtIFhGSVhOVU0gKGNvdW50KSk7CiAgICAgICBl bHNlCiAJbXB6X2ZkaXZfcV8yZXhwIChyZXN1bHQsIFhCSUdOVU0gKHZhbHVlKS0+dmFsdWUs IC0gWEZJWE5VTSAoY291bnQpKTsKICAgICAgIHZhbCA9IG1ha2VfbnVtYmVyIChyZXN1bHQp OwogICAgICAgbXB6X2NsZWFyIChyZXN1bHQpOwogICAgIH0KKyAgZWxzZSBpZiAoWEZJWE5V TSAoY291bnQpIDw9IDApCisgICAgeworICAgICAgLyogVGhpcyBjb2RlIGFzc3VtZXMgdGhh dCBzaWduZWQgcmlnaHQgc2hpZnRzIGFyZSBhcml0aG1ldGljLiAgKi8KKyAgICAgIHZlcmlm eSAoKEVNQUNTX0lOVCkgLTEgPj4gMSA9PSAtMSk7CisKKyAgICAgIEVNQUNTX0lOVCBzaGlm dCA9IC1YRklYTlVNIChjb3VudCk7CisgICAgICBFTUFDU19JTlQgcmVzdWx0ID0gKHNoaWZ0 IDwgRU1BQ1NfSU5UX1dJRFRIID8gWEZJWE5VTSAodmFsdWUpID4+IHNoaWZ0CisJCQkgIDog WEZJWE5VTSAodmFsdWUpIDwgMCA/IC0xIDogMCk7CisgICAgICB2YWwgPSBtYWtlX2ZpeG51 bSAocmVzdWx0KTsKKyAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICAvKiBKdXN0IGRvIHRo ZSB3b3JrIGFzIGJpZ251bXMgdG8gbWFrZSB0aGUgY29kZSBzaW1wbGVyLiAgKi8KQEAgLTM0 MDAsMTQgKzM0MTQsNyBAQCBhc2hfbHNoX2ltcGwgKExpc3BfT2JqZWN0IHZhbHVlLCBMaXNw X09iamVjdCBjb3VudCwgYm9vbCBsc2gpCiAKICAgICAgIGlmIChYRklYTlVNIChjb3VudCkg Pj0gMCkKIAltcHpfbXVsXzJleHAgKHJlc3VsdCwgcmVzdWx0LCBYRklYTlVNIChjb3VudCkp OwotICAgICAgZWxzZSBpZiAobHNoKQotCXsKLQkgIGlmIChtcHpfc2duIChyZXN1bHQpID4g MCkKLQkgICAgbXB6X2ZkaXZfcV8yZXhwIChyZXN1bHQsIHJlc3VsdCwgLSBYRklYTlVNIChj b3VudCkpOwotCSAgZWxzZQotCSAgICBtcHpfZmRpdl9xXzJleHAgKHJlc3VsdCwgcmVzdWx0 LCAtIFhGSVhOVU0gKGNvdW50KSk7Ci0JfQotICAgICAgZWxzZSAvKiBhc2ggKi8KKyAgICAg IGVsc2UKIAltcHpfZmRpdl9xXzJleHAgKHJlc3VsdCwgcmVzdWx0LCAtIFhGSVhOVU0gKGNv dW50KSk7CiAKICAgICAgIHZhbCA9IG1ha2VfbnVtYmVyIChyZXN1bHQpOwpAQCAtMzQxNywy NCArMzQyNCw2IEBAIGFzaF9sc2hfaW1wbCAoTGlzcF9PYmplY3QgdmFsdWUsIExpc3BfT2Jq ZWN0IGNvdW50LCBib29sIGxzaCkKICAgcmV0dXJuIHZhbDsKIH0KIAotREVGVU4gKCJhc2gi LCBGYXNoLCBTYXNoLCAyLCAyLCAwLAotICAgICAgIGRvYzogLyogUmV0dXJuIFZBTFVFIHdp dGggaXRzIGJpdHMgc2hpZnRlZCBsZWZ0IGJ5IENPVU5ULgotSWYgQ09VTlQgaXMgbmVnYXRp dmUsIHNoaWZ0aW5nIGlzIGFjdHVhbGx5IHRvIHRoZSByaWdodC4KLUluIHRoaXMgY2FzZSwg dGhlIHNpZ24gYml0IGlzIGR1cGxpY2F0ZWQuICAqLykKLSAgKHJlZ2lzdGVyIExpc3BfT2Jq ZWN0IHZhbHVlLCBMaXNwX09iamVjdCBjb3VudCkKLXsKLSAgcmV0dXJuIGFzaF9sc2hfaW1w bCAodmFsdWUsIGNvdW50LCBmYWxzZSk7Ci19Ci0KLURFRlVOICgibHNoIiwgRmxzaCwgU2xz aCwgMiwgMiwgMCwKLSAgICAgICBkb2M6IC8qIFJldHVybiBWQUxVRSB3aXRoIGl0cyBiaXRz IHNoaWZ0ZWQgbGVmdCBieSBDT1VOVC4KLUlmIENPVU5UIGlzIG5lZ2F0aXZlLCBzaGlmdGlu ZyBpcyBhY3R1YWxseSB0byB0aGUgcmlnaHQuCi1JbiB0aGlzIGNhc2UsIHplcm9zIGFyZSBz aGlmdGVkIGluIG9uIHRoZSBsZWZ0LiAgKi8pCi0gIChyZWdpc3RlciBMaXNwX09iamVjdCB2 YWx1ZSwgTGlzcF9PYmplY3QgY291bnQpCi17Ci0gIHJldHVybiBhc2hfbHNoX2ltcGwgKHZh bHVlLCBjb3VudCwgdHJ1ZSk7Ci19Ci0KIERFRlVOICgiMSsiLCBGYWRkMSwgU2FkZDEsIDEs IDEsIDAsCiAgICAgICAgZG9jOiAvKiBSZXR1cm4gTlVNQkVSIHBsdXMgb25lLiAgTlVNQkVS IG1heSBiZSBhIG51bWJlciBvciBhIG1hcmtlci4KIE1hcmtlcnMgYXJlIGNvbnZlcnRlZCB0 byBpbnRlZ2Vycy4gICovKQpAQCAtNDIzNSw3ICs0MjI0LDYgQEAgc3ltc19vZl9kYXRhICh2 b2lkKQogICBkZWZzdWJyICgmU2xvZ2lvcik7CiAgIGRlZnN1YnIgKCZTbG9neG9yKTsKICAg ZGVmc3ViciAoJlNsb2djb3VudCk7Ci0gIGRlZnN1YnIgKCZTbHNoKTsKICAgZGVmc3ViciAo JlNhc2gpOwogICBkZWZzdWJyICgmU2FkZDEpOwogICBkZWZzdWJyICgmU3N1YjEpOwpkaWZm IC0tZ2l0IGEvdGVzdC9saXNwL2ludGVybmF0aW9uYWwvY2NsLXRlc3RzLmVsIGIvdGVzdC9s aXNwL2ludGVybmF0aW9uYWwvY2NsLXRlc3RzLmVsCmluZGV4IGI0MWI4YzFmZjYuLjdkZDcy MjQ3MjYgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9pbnRlcm5hdGlvbmFsL2NjbC10ZXN0cy5l bAorKysgYi90ZXN0L2xpc3AvaW50ZXJuYXRpb25hbC9jY2wtdGVzdHMuZWwKQEAgLTM3LDE4 ICszNyw5IEBACiAKICAgOzsgc2hpZnQgcmlnaHQgLXZlICAgICAgICAgICAgICAgICAgICAt NTYyOCAgICAgI3gzZmZmZmZmZmZmZmZlYTA0CiAgIChzaG91bGQgKD0gKGFzaCAtNTYyOCAt OCkgICAgICAgICAgICAgICAtMjIpKSA7ICN4M2ZmZmZmZmZmZmZmZmZlYQotCi0gIDs7IHNo aWZ0IHJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAtNTYyOCAgICAgICN4M2ZmZmZmZmZm ZmZmZWEwNAotICAoY29uZAotICAgKChmYm91bmRwICdiaWdudW1wKQotICAgIChzaG91bGQg KD0gKGxzaCAtNTYyOCAtOCkgICAgICAgICAgICAtMjIpKSkgOyAjeDNmZmZmZmZmZmZmZmZm ZWEgIGJpZ251bQotICAgKCg9IChsb2diIG1vc3QtbmVnYXRpdmUtZml4bnVtKSA2MSkKLSAg ICAoc2hvdWxkICg9IChsc2ggLTU2MjggLTgpCi0gICAgICAgICAgICAgICAoc3RyaW5nLXRv LW51bWJlcgotICAgICAgICAgICAgICAgICIxODAxNDM5ODUwOTQ4MTk2MiIpKSkpICAgICAg ICAgOyAjeDAwM2ZmZmZmZmZmZmZmZWEgIG1hc3RlciAoNjRiaXQpCi0gICAoKD0gKGxvZ2Ig bW9zdC1uZWdhdGl2ZS1maXhudW0pIDI5KQotICAgIChzaG91bGQgKD0gKGxzaCAtNTYyOCAt OCkgICAgICAgIDQxOTQyODIpKSkgOyAjeDAwM2ZmZmVhICAgICAgICAgIG1hc3RlciAoMzJi aXQpCi0gICApKQorICAoc2hvdWxkICg9IChsc2ggLTU2MjggLTgpCisgICAgICAgICAgICAg KGFzaCAoLSAtNTYyOCAoYXNoIG1vc3QtbmVnYXRpdmUtZml4bnVtIDEpKSAtOCkKKyAgICAg ICAgICAgICAoYXNoIChsb2dhbmQgKGFzaCAtNTYyOCAtMSkgbW9zdC1wb3NpdGl2ZS1maXhu dW0pIC03KSkpKQogCiA7OyBDQ2wgcHJvZ3JhbSBmcm9tIGBwZ2ctcGFyc2UtY3JjMjQnIGlu IGxpc3Avb2Jzb2xldGUvcGdnLXBhcnNlLmVsCiAoZGVmY29uc3QgcHJvZy1wZ2ctc291cmNl CkBAIC0xNzcsMTEgKzE2OCwxMSBAQCBwcm9nLW1pZGktY29kZQogICAgICA4MjE2OSAyNDAg MjU1NSAxOCAxMjggODE5NDMgMTUgMjc2IDUyOSAzMDUgODEgLTE3NjYwIC0xNzkxNiAyMl0p CiAKIChkZWZjb25zdCBwcm9nLW1pZGktZHVtcAotIk91dC1idWZmZXIgbXVzdCBiZSAyIHRp bWVzIGJpZ2dlciB0aGFuIGluLWJ1ZmZlci4KKyhjb25jYXQgIk91dC1idWZmZXIgbXVzdCBi ZSAyIHRpbWVzIGJpZ2dlciB0aGFuIGluLWJ1ZmZlci4KIE1haW4tYm9keToKICAgICAyOlty ZWFkLWp1bXAtY29uZC1leHByLWNvbnN0XSByZWFkIHIwLCBpZiAhKHIwIDwgMTI4KSwganVt cCB0byAyMigrMjApCiAgICAgNTpbYnJhbmNoXSBqdW1wIHRvIGFycmF5W3IzXSBvZiBsZW5n dGggNAotCTExIDEyIDE1IDE4IDIyIAorCTExIDEyIDE1IDE4IDIyICIiCiAgICAxMTpbanVt cF0ganVtcCB0byAyKC05KQogICAgMTI6W3NldC1yZWdpc3Rlcl0gcjEgPSByMAogICAgMTM6 W3NldC1yZWdpc3Rlcl0gcjAgPSByNApAQCAtMjI3LDcgKzIxOCw3IEBAIHByb2ctbWlkaS1k dW1wCiAgICA3MTpbanVtcF0ganVtcCB0byAyKC02OSkKIEF0IEVPRjoKICAgIDcyOltlbmRd IGVuZAotIikKKyIpKQogCiAoZXJ0LWRlZnRlc3QgY2NsLWNvbXBpbGUtbWlkaSAoKQogICAo c2hvdWxkIChlcXVhbCAoY2NsLWNvbXBpbGUgcHJvZy1taWRpLXNvdXJjZSkgcHJvZy1taWRp LWNvZGUpKSkKZGlmZiAtLWdpdCBhL3Rlc3Qvc3JjL2RhdGEtdGVzdHMuZWwgYi90ZXN0L3Ny Yy9kYXRhLXRlc3RzLmVsCmluZGV4IGE0YzZiMGU0OTEuLjg1Y2JhYjI2MTAgMTAwNjQ0Ci0t LSBhL3Rlc3Qvc3JjL2RhdGEtdGVzdHMuZWwKKysrIGIvdGVzdC9zcmMvZGF0YS10ZXN0cy5l bApAQCAtNTk4LDcgKzU5OCw5IEBAIGJpbmRpbmctdGVzdC1zb21lLWxvY2FsCiAgIChzaG91 bGQgKGZpeG51bXAgKDEtICgxKyBtb3N0LXBvc2l0aXZlLWZpeG51bSkpKSkpCiAKIChlcnQt ZGVmdGVzdCBkYXRhLXRlc3RzLWxvZ2FuZCAoKQotICAoc2hvdWxkICg9IC0xIChsb2dhbmQg LTEpKSkKKyAgKHNob3VsZCAoPSAtMSAobG9nYW5kKSAobG9nYW5kIC0xKSAobG9nYW5kIC0x IC0xKSkpCisgIChsZXQgKChuICgxKyBtb3N0LXBvc2l0aXZlLWZpeG51bSkpKQorICAgIChz aG91bGQgKD0gKGxvZ2FuZCAtMSBuKSBuKSkpCiAgIChsZXQgKChuICgqIDIgbW9zdC1uZWdh dGl2ZS1maXhudW0pKSkKICAgICAoc2hvdWxkICg9IChsb2dhbmQgLTEgbikgbikpKSkKIApA QCAtNjA2LDExICs2MDgsMTEgQEAgYmluZGluZy10ZXN0LXNvbWUtbG9jYWwKICAgKHNob3Vs ZCAoPSAobG9nY291bnQgKHJlYWQgIiN4ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmYiKSkgMTI4KSkpCiAKIChlcnQtZGVmdGVzdCBkYXRhLXRlc3RzLWxvZ2lvciAoKQotICAo c2hvdWxkICg9IC0xIChsb2dpb3IgLTEpKSkKKyAgKHNob3VsZCAoPSAtMSAobG9naW9yIC0x KSAobG9naW9yIC0xIC0xKSkpCiAgIChzaG91bGQgKD0gLTEgKGxvZ2lvciBtb3N0LXBvc2l0 aXZlLWZpeG51bSBtb3N0LW5lZ2F0aXZlLWZpeG51bSkpKSkKIAogKGVydC1kZWZ0ZXN0IGRh dGEtdGVzdHMtbG9neG9yICgpCi0gIChzaG91bGQgKD0gLTEgKGxvZ3hvciAtMSkpKQorICAo c2hvdWxkICg9IC0xIChsb2d4b3IgLTEpIChsb2d4b3IgLTEgLTEgLTEpKSkKICAgKGxldCAo KG4gKDErIG1vc3QtcG9zaXRpdmUtZml4bnVtKSkpCiAgICAgKHNob3VsZCAoPSAobG9neG9y IC0xIG4pIChsb2dub3QgbikpKSkpCiAKQEAgLTY0Miw2ICs2NDQsMTIgQEAgZGF0YS10ZXN0 cy1jaGVjay1zaWduCiAgIChzaG91bGQgKD0gKGFzaCBtb3N0LW5lZ2F0aXZlLWZpeG51bSAx KQogICAgICAgICAgICAgICgqIG1vc3QtbmVnYXRpdmUtZml4bnVtIDIpKSkKICAgKHNob3Vs ZCAoPSAobHNoIG1vc3QtbmVnYXRpdmUtZml4bnVtIDEpCi0gICAgICAgICAgICAgKCogbW9z dC1uZWdhdGl2ZS1maXhudW0gMikpKSkKKyAgICAgICAgICAgICAoKiBtb3N0LW5lZ2F0aXZl LWZpeG51bSAyKSkpCisgIChzaG91bGQgKD0gKGFzaCAoKiAyIG1vc3QtbmVnYXRpdmUtZml4 bnVtKSAtMSkKKwkgICAgIG1vc3QtbmVnYXRpdmUtZml4bnVtKSkKKyAgKHNob3VsZCAoPSAo bHNoIG1vc3QtcG9zaXRpdmUtZml4bnVtIC0xKSAoLyBtb3N0LXBvc2l0aXZlLWZpeG51bSAy KSkpCisgIChzaG91bGQgKD0gKGxzaCBtb3N0LW5lZ2F0aXZlLWZpeG51bSAtMSkgKGxzaCAo LSBtb3N0LW5lZ2F0aXZlLWZpeG51bSkgLTEpKSkKKyAgKHNob3VsZCAoPSAobHNoIC0xIC0x KSBtb3N0LXBvc2l0aXZlLWZpeG51bSkpCisgIChzaG91bGQtZXJyb3IgKGxzaCAoMS0gbW9z dC1uZWdhdGl2ZS1maXhudW0pIC0xKSkpCiAKIDs7OyBkYXRhLXRlc3RzLmVsIGVuZHMgaGVy ZQotLSAKMi4xNy4xCgo= --------------11C2C37ECEACB3BEC69DB9CE--