From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Florian Rommel Newsgroups: gmane.emacs.bugs Subject: bug#56369: 29.0.50; abort-redisplay: Crash after 'recenter' Date: Sun, 03 Jul 2022 17:55:50 +0200 Message-ID: <0114d3daab13a4de33711ba8fd5e0c21091bbb6b.camel@florommel.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-ihS6pPhxqUCRJGdHoWVH" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25149"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.44.2 To: 56369@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 03 17:56:16 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 1o81xI-0006Kb-1j for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Jul 2022 17:56:16 +0200 Original-Received: from localhost ([::1]:47590 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o81xG-00025v-HG for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 03 Jul 2022 11:56:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40904) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o81x5-00025m-A7 for bug-gnu-emacs@gnu.org; Sun, 03 Jul 2022 11:56:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:51513) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o81x4-0000xU-Do for bug-gnu-emacs@gnu.org; Sun, 03 Jul 2022 11:56:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o81x4-0005he-7u for bug-gnu-emacs@gnu.org; Sun, 03 Jul 2022 11:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Florian Rommel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 03 Jul 2022 15:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 56369 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.165686376121917 (code B ref -1); Sun, 03 Jul 2022 15:56:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 3 Jul 2022 15:56:01 +0000 Original-Received: from localhost ([127.0.0.1]:45410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o81x3-0005hN-2b for submit@debbugs.gnu.org; Sun, 03 Jul 2022 11:56:01 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:45352) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o81wz-0005hE-J5 for submit@debbugs.gnu.org; Sun, 03 Jul 2022 11:56:00 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:40888) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o81wz-00025c-8S for bug-gnu-emacs@gnu.org; Sun, 03 Jul 2022 11:55:57 -0400 Original-Received: from read.uberspace.de ([185.26.156.133]:53598) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o81ww-0000wj-Km for bug-gnu-emacs@gnu.org; Sun, 03 Jul 2022 11:55:56 -0400 Original-Received: (qmail 21082 invoked by uid 990); 3 Jul 2022 15:55:51 -0000 Authentication-Results: read.uberspace.de; auth=pass (plain) X-Rspamd-Bar: - X-Rspamd-Report: BAYES_HAM(-2.999217) MIME_GOOD(-0.1) MIME_BASE64_TEXT_BOGUS(1) MIME_BASE64_TEXT(0.1) X-Rspamd-Score: -1.999217 Original-Received: from unknown (HELO unkown) (::1) by read.uberspace.de (Haraka/2.8.28) with ESMTPSA; Sun, 03 Jul 2022 17:55:51 +0200 Received-SPF: pass client-ip=185.26.156.133; envelope-from=mail@florommel.de; helo=read.uberspace.de X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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: 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:236007 Archived-At: --=-ihS6pPhxqUCRJGdHoWVH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Tags: patch I get a crash caused by a failed free() [see attached backtrace] when running vterm [1] which calls 'recenter' from a loaded module. With gdb, in 'safe_free' I see that the address of the to-be-freed arguments array (allocated in 'module_funcall') is off by one word. I don't know the details of the specpdl stack but I assume that there is a missing 'ubind_to' in 'recenter' before an early return. When I add it (see the attached patch) the problem is gone. [1] https://github.com/akermu/emacs-libvterm --=-ihS6pPhxqUCRJGdHoWVH Content-Disposition: attachment; filename="backtrace.txt" Content-Type: text/plain; name="backtrace.txt"; charset="UTF-8" Content-Transfer-Encoding: base64 ZnJlZSgpOiBpbnZhbGlkIHBvaW50ZXIKClRocmVhZCAxICJlbWFjcyIgcmVjZWl2ZWQgc2lnbmFs IFNJR0FCUlQsIEFib3J0ZWQuCjB4MDAwMDdmZmZmNTkxOTM2YyBpbiA/PyAoKSBmcm9tIC91c3Iv bGliL2xpYmMuc28uNgo+Pj4gYnQKIzAgIDB4MDAwMDdmZmZmNTkxOTM2YyBpbiAgKCkgYXQgL3Vz ci9saWIvbGliYy5zby42CiMxICAweDAwMDA3ZmZmZjU4Yzk4MzggaW4gcmFpc2UgKCkgYXQgL3Vz ci9saWIvbGliYy5zby42CiMyICAweDAwMDA3ZmZmZjU4YjM1MzUgaW4gYWJvcnQgKCkgYXQgL3Vz ci9saWIvbGliYy5zby42CiMzICAweDAwMDA3ZmZmZjU5MGQ0NWUgaW4gICgpIGF0IC91c3IvbGli L2xpYmMuc28uNgojNCAgMHgwMDAwN2ZmZmY1OTIzMGNjIGluICAoKSBhdCAvdXNyL2xpYi9saWJj LnNvLjYKIzUgIDB4MDAwMDdmZmZmNTkyNGY2YyBpbiAgKCkgYXQgL3Vzci9saWIvbGliYy5zby42 CiM2ICAweDAwMDA3ZmZmZjU5Mjc4ZjMgaW4gZnJlZSAoKSBhdCAvdXNyL2xpYi9saWJjLnNvLjYK IzcgIDB4MDAwMDU1NTU1NTZlZTZmNSBpbiB4ZnJlZSAoYmxvY2s9PG9wdGltaXplZCBvdXQ+KSBh dCBhbGxvYy5jOjgxMAojOCAgMHgwMDAwNTU1NTU1NzUxNzljIGluIHNhZmVfZnJlZSAoc2FfY291 bnQ9Li4uKSBhdCAvaG9tZS9mbG8vZ2l0L2VtYWNzL3NyYy9saXNwLmg6NTMzOQojOSAgbW9kdWxl X2Z1bmNhbGwgKGVudj0weDdmZmZmZmZmOTdkMCwgZnVuYz0weDU1NTU1ODM4MWJmMCwgbmFyZ3M9 MSwgYXJncz0weDdmZmZmZmZmOTY3MCkgYXQgZW1hY3MtbW9kdWxlLmM6NjczCiMxMCAweDAwMDA3 ZmZmZWFlNTZmOWIgaW4gcmVjZW50ZXIgKGVudj0weDdmZmZmZmZmOTdkMCwgcG9zPTB4N2ZmZmZm ZmY5YTk4KSBhdCAvaG9tZS9mbG8vLmVtYWNzLmQvZWxwYS92dGVybS0yMDIyMDYxMy4xNjE0L2Vs aXNwLmM6MTQ3CiMxMSAweDAwMDA3ZmZmZWFlNTFjNzggaW4gYWRqdXN0X3RvcGxpbmUgKHRlcm09 MHg1NTU1NTg1ZDJkZjAsIGVudj0weDdmZmZmZmZmOTdkMCkgYXQgL2hvbWUvZmxvLy5lbWFjcy5k L2VscGEvdnRlcm0tMjAyMjA2MTMuMTYxNC92dGVybS1tb2R1bGUuYzo1MDMKIzEyIDB4MDAwMDdm ZmZlYWU1MWZmZSBpbiB0ZXJtX3JlZHJhdyAodGVybT0weDU1NTU1ODVkMmRmMCwgZW52PTB4N2Zm ZmZmZmY5N2QwKSBhdCAvaG9tZS9mbG8vLmVtYWNzLmQvZWxwYS92dGVybS0yMDIyMDYxMy4xNjE0 L3Z0ZXJtLW1vZHVsZS5jOjU4NAojMTMgMHgwMDAwN2ZmZmVhZTU0ZTA1IGluIEZ2dGVybV9yZWRy YXcgKGVudj0weDdmZmZmZmZmOTdkMCwgbmFyZ3M9MSwgYXJncz0weDdmZmZmZmZmOTdhMCwgZGF0 YT0weDApIGF0IC9ob21lL2Zsby8uZW1hY3MuZC9lbHBhL3Z0ZXJtLTIwMjIwNjEzLjE2MTQvdnRl cm0tbW9kdWxlLmM6MTMxMAojMTQgMHgwMDAwNTU1NTU1NzUzNTNhIGluIGZ1bmNhbGxfbW9kdWxl IChmdW5jdGlvbj0weDU1NTU1ODUxNjk2ZCwgbmFyZ3M9MSwgYXJnbGlzdD0weDdmZmZmMTIzYTE0 OCkgYXQgZW1hY3MtbW9kdWxlLmM6MTE4NAojMTUgMHgwMDAwNTU1NTU1NzYyYzBlIGluIGV4ZWNf Ynl0ZV9jb2RlIChmdW49PG9wdGltaXplZCBvdXQ+LCBhcmdzX3RlbXBsYXRlPTxvcHRpbWl6ZWQg b3V0PiwgbmFyZ3M9PG9wdGltaXplZCBvdXQ+LCBhcmdzPTxvcHRpbWl6ZWQgb3V0PikgYXQgYnl0 ZWNvZGUuYzo4MTEKIzE2IDB4MDAwMDU1NTU1NTcxNzY5NiBpbiBGZnVuY2FsbCAobmFyZ3M9bmFy Z3NAZW50cnk9MSwgYXJncz1hcmdzQGVudHJ5PTB4N2ZmZmZmZmZhYTUwKSBhdCBldmFsLmM6Mjk1 OAojMTcgMHgwMDAwNTU1NTU1NzUxNzcyIGluIG1vZHVsZV9mdW5jYWxsIChlbnY9MHg3ZmZmZmZm ZmFiYjAsIGZ1bmM9MHg1NTU1NTgzNmI3OTgsIG5hcmdzPTAsIGFyZ3M9MHgwKSBhdCBlbWFjcy1t b2R1bGUuYzo2NzIKIzE4IDB4MDAwMDdmZmZlYWU1NzRkMiBpbiB2dGVybV9pbnZhbGlkYXRlIChl bnY9MHg3ZmZmZmZmZmFiYjApIGF0IC9ob21lL2Zsby8uZW1hY3MuZC9lbHBhL3Z0ZXJtLTIwMjIw NjEzLjE2MTQvZWxpc3AuYzoxOTkKIzE5IDB4MDAwMDdmZmZlYWU1NGQ3YyBpbiBGdnRlcm1fdXBk YXRlIChlbnY9MHg3ZmZmZmZmZmFiYjAsIG5hcmdzPTEsIGFyZ3M9MHg3ZmZmZmZmZmFiODAsIGRh dGE9MHgwKSBhdCAvaG9tZS9mbG8vLmVtYWNzLmQvZWxwYS92dGVybS0yMDIyMDYxMy4xNjE0L3Z0 ZXJtLW1vZHVsZS5jOjEzMDEKIzIwIDB4MDAwMDU1NTU1NTc1MzUzYSBpbiBmdW5jYWxsX21vZHVs ZSAoZnVuY3Rpb249MHg1NTU1NTg1MGYxZTUsIG5hcmdzPTEsIGFyZ2xpc3Q9MHg3ZmZmZjEyM2Ew ODgpIGF0IGVtYWNzLW1vZHVsZS5jOjExODQKIzIxIDB4MDAwMDU1NTU1NTc2MmMwZSBpbiBleGVj X2J5dGVfY29kZSAoZnVuPTxvcHRpbWl6ZWQgb3V0PiwgYXJnc190ZW1wbGF0ZT08b3B0aW1pemVk IG91dD4sIG5hcmdzPTxvcHRpbWl6ZWQgb3V0PiwgYXJncz08b3B0aW1pemVkIG91dD4pIGF0IGJ5 dGVjb2RlLmM6ODExCiMyMiAweDAwMDA1NTU1NTU3MTc2OTYgaW4gRmZ1bmNhbGwgKG5hcmdzPTMs IGFyZ3M9MHg3ZmZmZmZmZmJlMzApIGF0IGV2YWwuYzoyOTU4CiMyMyAweDAwMDA1NTU1NTU3MTkw MTAgaW4gRmFwcGx5IChuYXJncz1uYXJnc0BlbnRyeT0yLCBhcmdzPWFyZ3NAZW50cnk9MHg3ZmZm ZmZmZmJlZDApIGF0IGV2YWwuYzoyNjI5CiMyNCAweDAwMDA1NTU1NTU3MTkzODEgaW4gYXBwbHkx IChmbj08b3B0aW1pemVkIG91dD4sIGFyZz08b3B0aW1pemVkIG91dD4pIGF0IGV2YWwuYzoyODQ1 CiMyNSAweDAwMDA1NTU1NTU3MTVmZDQgaW4gaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2VfMSAoYmZ1 bj1iZnVuQGVudHJ5PTB4NTU1NTU1NzY1NmMwIDxyZWFkX3Byb2Nlc3Nfb3V0cHV0X2NhbGw+LCBh cmc9MHg1NTU1NTYxYmZiMTMsIGhhbmRsZXJzPWhhbmRsZXJzQGVudHJ5PTB4OTAsIGhmdW49aGZ1 bkBlbnRyeT0weDU1NTU1NTc2NTYwMCA8cmVhZF9wcm9jZXNzX291dHB1dF9lcnJvcl9oYW5kbGVy PikgYXQgZXZhbC5jOjE1MDkKIzI2IDB4MDAwMDU1NTU1NTc2ODJhNyBpbiByZWFkX2FuZF9kaXNw b3NlX29mX3Byb2Nlc3Nfb3V0cHV0IChjb2Rpbmc9PG9wdGltaXplZCBvdXQ+LCBuYnl0ZXM9MTUw LCBjaGFycz0weDdmZmZmZmZmYmYzMCAiXDAzM1sxbVwwMzNbN20lXDAzM1syN21cMDMzWzFtXDAz M1swbSIsICcgJyA8cmVwZWF0cyAxMjUgdGltZXM+LCAiXHIgXHIiLCBwPTxvcHRpbWl6ZWQgb3V0 PikgYXQgcHJvY2Vzcy5jOjYyMzcKIzI3IHJlYWRfcHJvY2Vzc19vdXRwdXQgKHByb2M9cHJvY0Bl bnRyeT0weDU1NTU1NWZkZDM0ZCwgY2hhbm5lbD1jaGFubmVsQGVudHJ5PTE0KSBhdCBwcm9jZXNz LmM6NjE0NwojMjggMHgwMDAwNTU1NTU1NzZmOWMxIGluIHdhaXRfcmVhZGluZ19wcm9jZXNzX291 dHB1dCAodGltZV9saW1pdD10aW1lX2xpbWl0QGVudHJ5PTMwLCBuc2Vjcz1uc2Vjc0BlbnRyeT0w LCByZWFkX2tiZD1yZWFkX2tiZEBlbnRyeT0tMSwgZG9fZGlzcGxheT1kb19kaXNwbGF5QGVudHJ5 PXRydWUsIHdhaXRfZm9yX2NlbGw9d2FpdF9mb3JfY2VsbEBlbnRyeT0weDAsIHdhaXRfcHJvYz13 YWl0X3Byb2NAZW50cnk9MHgwLCBqdXN0X3dhaXRfcHJvYz0wKSBhdCBwcm9jZXNzLmM6NTgzMQoj MjkgMHgwMDAwNTU1NTU1NWFjNWIwIGluIHNpdF9mb3IgKHRpbWVvdXQ9dGltZW91dEBlbnRyeT0w eDdhLCByZWFkaW5nPXJlYWRpbmdAZW50cnk9dHJ1ZSwgZGlzcGxheV9vcHRpb249ZGlzcGxheV9v cHRpb25AZW50cnk9MSkgYXQgZGlzcG5ldy5jOjYyMzgKIzMwIDB4MDAwMDU1NTU1NTY5OGUwNyBp biByZWFkX2NoYXIgKGNvbW1hbmRmbGFnPTEsIG1hcD0weDU1NTU1NjE1ZTY4MywgcHJldl9ldmVu dD0weDAsIHVzZWRfbW91c2VfbWVudT0weDdmZmZmZmZmZGExYiwgZW5kX3RpbWU9MHgwKSBhdCAv aG9tZS9mbG8vZ2l0L2VtYWNzL3NyYy9saXNwLmg6NzYwCiMzMSAweDAwMDA1NTU1NTU2OTljYTMg aW4gcmVhZF9rZXlfc2VxdWVuY2UgKGtleWJ1Zj08b3B0aW1pemVkIG91dD4sIHByb21wdD0weDAs IGRvbnRfZG93bmNhc2VfbGFzdD08b3B0aW1pemVkIG91dD4sIGNhbl9yZXR1cm5fc3dpdGNoX2Zy YW1lPXRydWUsIGZpeF9jdXJyZW50X2J1ZmZlcj10cnVlLCBwcmV2ZW50X3JlZGlzcGxheT1mYWxz ZSkgYXQga2V5Ym9hcmQuYzo5OTQ3CiMzMiAweDAwMDA1NTU1NTU2OWJiN2QgaW4gY29tbWFuZF9s b29wXzEgKCkgYXQga2V5Ym9hcmQuYzoxMzkxCiMzMyAweDAwMDA1NTU1NTU3MTVmNDcgaW4gaW50 ZXJuYWxfY29uZGl0aW9uX2Nhc2UgKGJmdW49YmZ1bkBlbnRyeT0weDU1NTU1NTY5Yjk5MCA8Y29t bWFuZF9sb29wXzE+LCBoYW5kbGVycz1oYW5kbGVyc0BlbnRyeT0weDkwLCBoZnVuPWhmdW5AZW50 cnk9MHg1NTU1NTU2OGViNDAgPGNtZF9lcnJvcj4pIGF0IGV2YWwuYzoxNDg1CiMzNCAweDAwMDA1 NTU1NTU2ODc2YzYgaW4gY29tbWFuZF9sb29wXzIgKGhhbmRsZXJzPWhhbmRsZXJzQGVudHJ5PTB4 OTApIGF0IGtleWJvYXJkLmM6MTEzMgojMzUgMHgwMDAwNTU1NTU1NzE1ZWExIGluIGludGVybmFs X2NhdGNoICh0YWc9dGFnQGVudHJ5PTB4ZjYzMCwgZnVuYz1mdW5jQGVudHJ5PTB4NTU1NTU1Njg3 NmEwIDxjb21tYW5kX2xvb3BfMj4sIGFyZz1hcmdAZW50cnk9MHg5MCkgYXQgZXZhbC5jOjEyMDgK IzM2IDB4MDAwMDU1NTU1NTY4NzY2MSBpbiBjb21tYW5kX2xvb3AgKCkgYXQga2V5Ym9hcmQuYzox MTEwCiMzNyAweDAwMDA1NTU1NTU2OGU2YzIgaW4gcmVjdXJzaXZlX2VkaXRfMSAoKSBhdCBrZXli b2FyZC5jOjcxOQojMzggMHgwMDAwNTU1NTU1NjhlYTUwIGluIEZyZWN1cnNpdmVfZWRpdCAoKSBh dCBrZXlib2FyZC5jOjgwMgojMzkgMHgwMDAwNTU1NTU1NWExODc1IGluIG1haW4gKGFyZ2M9PG9w dGltaXplZCBvdXQ+LCBhcmd2PTB4N2ZmZmZmZmZlMDE4KSBhdCBlbWFjcy5jOjI1MTcK --=-ihS6pPhxqUCRJGdHoWVH Content-Disposition: attachment; filename="0001-abort-redisplay-Add-missing-unbind_to-in-recenter.patch" Content-Type: text/x-patch; name="0001-abort-redisplay-Add-missing-unbind_to-in-recenter.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiMDliNmY5NmFjY2YyMjEyNDgyZWFiNjc5NWJhNmY3NDU4M2EzOWUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaWFuIFJvbW1lbCA8bWFpbEBmbG9yb21tZWwuZGU+CkRh dGU6IFN1biwgMyBKdWwgMjAyMiAxNzowNDozMiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGFib3J0 LXJlZGlzcGxheTogQWRkIG1pc3NpbmcgdW5iaW5kX3RvIGluICdyZWNlbnRlcicKCiogc3JjL3dp bmRvdy5jIChyZWNlbnRlcik6IEFkZCB1YmluZF90byBiZWZvcmUgZWFybHkgcmV0dXJuLgotLS0K IHNyYy93aW5kb3cuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvc3JjL3dpbmRvdy5jIGIvc3JjL3dpbmRvdy5jCmluZGV4IGFkMDNhMDI3NTguLmFm NDYzYjkwY2UgMTAwNjQ0Ci0tLSBhL3NyYy93aW5kb3cuYworKysgYi9zcmMvd2luZG93LmMKQEAg LTY2NjcsNiArNjY2Nyw3IEBAIERFRlVOICgicmVjZW50ZXIiLCBGcmVjZW50ZXIsIFNyZWNlbnRl ciwgMCwgMiwgIlBcbnAiLAogCSAgaWYgKGggPD0gMCkKIAkgICAgewogCSAgICAgIGJpZGlfdW5z aGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFsc2UpOworCSAgICAgIHVuYmluZF90byAoY291bnQsIFFu aWwpOwogCSAgICAgIHJldHVybiBRbmlsOwogCSAgICB9CiAKLS0gCjIuMzcuMAoK --=-ihS6pPhxqUCRJGdHoWVH--