From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Maxime Devos Newsgroups: gmane.lisp.guile.devel Subject: [PATCH] Add scm_remember_upto_here to functions using a port's fd. Date: Sat, 06 Mar 2021 22:22:08 +0100 Message-ID: <8dcecb8e98cc7ae1456da6a330083cd70323be8e.camel@telenet.be> Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-W5jemlYbTEVqM/w87ePp" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26569"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.34.2 Cc: guile-devel@gnu.org To: maximedevos@telenet.be Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sat Mar 06 22:22:55 2021 Return-path: Envelope-to: guile-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 1lIeNz-0006mL-0T for guile-devel@m.gmane-mx.org; Sat, 06 Mar 2021 22:22:55 +0100 Original-Received: from localhost ([::1]:43024 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIeNy-0004g8-22 for guile-devel@m.gmane-mx.org; Sat, 06 Mar 2021 16:22:54 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54996) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIeNQ-0004aS-PC for guile-devel@gnu.org; Sat, 06 Mar 2021 16:22:20 -0500 Original-Received: from michel.telenet-ops.be ([2a02:1800:110:4::f00:18]:38330) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIeNN-0001QX-TY for guile-devel@gnu.org; Sat, 06 Mar 2021 16:22:20 -0500 Original-Received: from ptr-bvsjgyjmffd7q9timvx.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:aaf1:9810:a0b8:a55d]) by michel.telenet-ops.be with bizsmtp id d9NE240090mfAB4069NFhS; Sat, 06 Mar 2021 22:22:15 +0100 In-Reply-To: 5a54b1b8bc3d4cfb2bde6bf1a990d83aa3083031.camel@telenet.be DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r21; t=1615065735; bh=jOyUp0r9P7e/5v8m6Ceby17crSr9g/n790hzYr5k4+Y=; h=Subject:From:To:Cc:Date:In-Reply-To; b=o2jmaWhHF/Hc7kKVJQl6fBpIhsqVa1yi7pmf3e1NrVdr2JMxH5aWg9jht+NZAXh7u +gQnOg0+kMs0Co6+cpJaw2SEs6CkI7efItbRnuBI6TItUwgcVxnzc6RMztxiBdh03x vxJ35gFG287H5psybwR9LeBQwAtfnJJkjM1G0J5mYMe8HC0z4UTEjIMYmRvs2E+/zR 0lw/oCSy98aMWc0u0OzI6sRYJ0Q/7FE7eK6DVAmEoeWcOsBHZarrF9mEj8o88fzHiF rMKQ4K6gCzZGuThoh25ejwQwkfXNqUPu3Qe6b1GJ6ulssdsYdc+lKudtBiI4n8sAHR XObEHi+R4y6LA== Received-SPF: pass client-ip=2a02:1800:110:4::f00:18; envelope-from=maximedevos@telenet.be; helo=michel.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20696 Archived-At: --=-W5jemlYbTEVqM/w87ePp Content-Type: multipart/mixed; boundary="=-+r3xNJaQjfIM5NBSn5C0" --=-+r3xNJaQjfIM5NBSn5C0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Oops, I forgot to add myself to THANKS. Seems rather presumptive of me, but it's recommended by HACKING ... --=-+r3xNJaQjfIM5NBSn5C0 Content-Disposition: attachment; filename*0=0001-Add-scm_remember_upto_here-to-functions-using-a-port.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Add-scm_remember_upto_here-to-functions-using-a-port.patch"; charset="UTF-8" RnJvbSBiM2ZlMTllMzkzYjg4YTUyMjdmOWYxYjllMWY1ZGUwOTk4NWM0ZTNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgRGV2b3MgPG1heGltZWRldm9zQHRlbGVuZXQuYmU+ CkRhdGU6IFNhdCwgNiBNYXIgMjAyMSAyMTozOTo1MiArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIEFk ZCBzY21fcmVtZW1iZXJfdXB0b19oZXJlIHRvIGZ1bmN0aW9ucyB1c2luZyBhIHBvcnQncyBmZC4K ClRoaXMgcHJldmVudHMgYSBnYXJiYWdlIGNvbGxlY3Rpb24gY3ljbGUgYXQgYW4gaW5vcHBvcnR1 bmUKdGltZSBmcm9tIGNsb3NpbmcgYSBwb3J0IHdoaWxlIGl0cyBmaWxlIGRlc2NyaXB0b3IgaXMg c3RpbGwKcmVxdWlyZWQuCgoqIGxpYmd1aWxlL2ZpbGVzeXMuYwogIChzY21fY2hvd24sIHNjbV9z dGF0LCBzY21fZmNudGwsIHNjbV9mc3luYywgc2NtX3NlbmRmaWxlKQogIChzY21fY2htb2QpOiBB ZGQgYSBzY21fcmVtZW1iZXJfdXB0b19oZXJlIGFmdGVyIHRoZSBzeXN0ZW0gY2FsbAogIGlzIGRv bmUgd2l0aCBmaGUgZmlsZSBkZXNjcmlwdG9yLgoqIGxpYmd1aWxlL2Zwb3J0cy5jCiAgKGZwb3J0 X2lucHV0X3dhaXRpbmcsIGZwb3J0X3JlYWQsIGZwb3J0X3dyaXRlLCBmcG9ydF9zZWVrKQogIChm cG9ydF90cnVuY2F0ZSwgZnBvcnRfY2xvc2UsIHBvcnRfcmFuZG9tX2FjY2Vzc19wKQogIChmcG9y dF9nZXRfbmF0dXJhbF9idWZmZXJfc2l6ZXMpOiBMaWtld2lzZS4KKiBsaWJndWlsZS9pb2V4dC5j CiAgKHNjbV9kdXBfdG9fZmRlcywgc2NtX2R1cDIsIHNjbV9pc2F0dHlfcCkKICAoc2NtX3ByaW1p dGl2ZV9tb3ZlX3RvX2ZkZXMpOiBMaWtld2lzZS4KKiBsaWJndWlsZS9wb3NpeC5jCiAgKHNjbV90 dHluYW1lLCBzY21fdGNnZXRwZ3JwLCBzY21fdGNzZXRwZ3JwLCBzY21fZmxvY2spOiBMaWtld2lz ZS4KICAoc2NtX3BpcGVkX3Byb2Nlc3MpOiBMaWtld2lzZSwgYW5kIGludHJvZHVjZSB0aGUgJ2Vy cm9yX3BvcnQnLAogICdvdXRwdXRfcG9ydCcgYW5kICdpbnB1dF9wb3J0JyB2YXJpYWJsZXMgaW4g b3JkZXIgdG8gYmUgYWJsZQogIHRvIHJlbWVtYmVyIHRoZXNlIGxhdGVyLgoqIGxpYmd1aWxlL3J3 LmMKICAoc2NtX3JlYWRfc3RyaW5nX3hfcGFydGlhbCwgc2NtX3dyaXRlX3N0cmluZ19wYXJ0aWFs KTogTGlrZXdpc2UsCiAgYW5kIGludHJvZHVjZSBhICdwb3J0JyB2YXJpYWJsZSBpbiBvcmRlciB0 byBiZSBhYmxlIHRvIHJlbWVtYmVyCiAgaXQgbGF0ZXIuCiogVEhBTktTOiBBZGQgcGF0Y2ggYXV0 aG9yLgotLS0KIFRIQU5LUyAgICAgICAgICAgICB8ICAxICsKIGxpYmd1aWxlL2ZpbGVzeXMuYyB8 ICA2ICsrKysrKwogbGliZ3VpbGUvZnBvcnRzLmMgIHwgMTEgKysrKysrKysrKysKIGxpYmd1aWxl L2lvZXh0LmMgICB8ICA3ICsrKysrKy0KIGxpYmd1aWxlL3Bvc2l4LmMgICB8IDI4ICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0KIGxpYmd1aWxlL3J3LmMgICAgICB8IDI2ICsrKysrKysrKysr KysrKysrKysrLS0tLS0tCiBsaWJndWlsZS9zb2NrZXQuYyAgfCAxNyArKysrKysrKysrKysrKy0t LQogNyBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9USEFOS1MgYi9USEFOS1MKaW5kZXggYWE0ODc3ZTk1Li5jZGZhOWUxMGQgMTAw NjQ0Ci0tLSBhL1RIQU5LUworKysgYi9USEFOS1MKQEAgLTc4LDYgKzc4LDcgQEAgRm9yIGZpeGVz IG9yIHByb3ZpZGluZyBpbmZvcm1hdGlvbiB3aGljaCBsZWQgdG8gYSBmaXg6CiAgICAgICAgICAg QnJpYW4gQ3Jvd2RlcgogICAgIENocmlzdG9waGVyIENyYW1lcgogICAgICAgICAgICBKb3NoIERh dGtvCisgICAgICAgICBNYXhpbWUgRGV2b3MKICAgICAgICAgICBEYXZpZCBEaWZmZW5iYXVnaAog ICAgICAgICAgIEh5cGVyIERpdmlzaW9uCiAgICAgICAgICAgIEVyaWsgRG9taW5pa3VzCmRpZmYg LS1naXQgYS9saWJndWlsZS9maWxlc3lzLmMgYi9saWJndWlsZS9maWxlc3lzLmMKaW5kZXggMDIw YzljZjdiLi42MDMxMTUwMWUgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL2ZpbGVzeXMuYworKysgYi9s aWJndWlsZS9maWxlc3lzLmMKQEAgLTE3Nyw2ICsxNzcsNyBAQCBTQ01fREVGSU5FIChzY21fY2hv d24sICJjaG93biIsIDMsIDAsIDAsCiAJCSAgU0NNX0ZQT1JUX0ZERVMgKG9iamVjdCkgOiBzY21f dG9faW50IChvYmplY3QpKTsKIAogICAgICAgU0NNX1NZU0NBTEwgKHJ2ID0gZmNob3duIChmZGVz LCBzY21fdG9faW50IChvd25lciksIHNjbV90b19pbnQgKGdyb3VwKSkpOworICAgICAgc2NtX3Jl bWVtYmVyX3VwdG9faGVyZV8xIChvYmplY3QpOwogICAgIH0KICAgZWxzZQogI2VuZGlmCkBAIC01 NDYsNiArNTQ3LDcgQEAgU0NNX0RFRklORSAoc2NtX3N0YXQsICJzdGF0IiwgMSwgMSwgMCwKICAg ICAgIFNDTV9WQUxJREFURV9PUEZQT1JUICgxLCBvYmplY3QpOwogICAgICAgZmRlcyA9IFNDTV9G UE9SVF9GREVTIChvYmplY3QpOwogICAgICAgU0NNX1NZU0NBTEwgKHJ2ID0gZnN0YXRfb3JfZnN0 YXQ2NCAoZmRlcywgJnN0YXRfdGVtcCkpOworICAgICAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8x IChvYmplY3QpOwogICAgIH0KIAogICBpZiAocnYgPT0gLTEpCkBAIC05NzcsNiArOTc5LDcgQEAg U0NNX0RFRklORSAoc2NtX2ZjbnRsLCAiZmNudGwiLCAyLCAxLCAwLAogICBTQ01fU1lTQ0FMTCAo cnYgPSBmY250bCAoZmRlcywgc2NtX3RvX2ludCAoY21kKSwgaXZhbHVlKSk7CiAgIGlmIChydiA9 PSAtMSkKICAgICBTQ01fU1lTRVJST1I7CisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAob2Jq ZWN0KTsKICAgcmV0dXJuIHNjbV9mcm9tX2ludCAocnYpOwogfQogI3VuZGVmIEZVTkNfTkFNRQpA QCAtMTAwNCw2ICsxMDA3LDcgQEAgU0NNX0RFRklORSAoc2NtX2ZzeW5jLCAiZnN5bmMiLCAxLCAw LCAwLAogCiAgIGlmIChmc3luYyAoZmRlcykgPT0gLTEpCiAgICAgU0NNX1NZU0VSUk9SOworICBz Y21fcmVtZW1iZXJfdXB0b19oZXJlXzEgKG9iamVjdCk7CiAgIHJldHVybiBTQ01fVU5TUEVDSUZJ RUQ7CiB9CiAjdW5kZWYgRlVOQ19OQU1FCkBAIC0xMjI1LDYgKzEyMjksNyBAQCBTQ01fREVGSU5F IChzY21fc2VuZGZpbGUsICJzZW5kZmlsZSIsIDMsIDEsIDAsCiAKICAgfQogCisgIHNjbV9yZW1l bWJlcl91cHRvX2hlcmVfMiAoaW4sIG91dCk7CiAgIHJldHVybiBzY21fZnJvbV9zaXplX3QgKHRv dGFsKTsKIAogI3VuZGVmIFZBTElEQVRFX0ZEX09SX1BPUlQKQEAgLTE0MTgsNiArMTQyMyw3IEBA IFNDTV9ERUZJTkUgKHNjbV9jaG1vZCwgImNobW9kIiwgMiwgMCwgMCwKICAgICAgIGVsc2UKIAlm ZGVzID0gU0NNX0ZQT1JUX0ZERVMgKG9iamVjdCk7CiAgICAgICBTQ01fU1lTQ0FMTCAocnYgPSBm Y2htb2QgKGZkZXMsIHNjbV90b19pbnQgKG1vZGUpKSk7CisgICAgICBzY21fcmVtZW1iZXJfdXB0 b19oZXJlXzEgKG9iamVjdCk7CiAgICAgfQogICBlbHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xp Ymd1aWxlL2Zwb3J0cy5jIGIvbGliZ3VpbGUvZnBvcnRzLmMKaW5kZXggNGEzYzMwYjg4Li41YzU5 ZjA5NTggMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL2Zwb3J0cy5jCisrKyBiL2xpYmd1aWxlL2Zwb3J0 cy5jCkBAIC00ODAsNiArNDgwLDcgQEAgZnBvcnRfaW5wdXRfd2FpdGluZyAoU0NNIHBvcnQpCiAg IGlmIChwb2xsICgmcG9sbGZkLCAxLCAwKSA8IDApCiAgICAgc2NtX3N5c2Vycm9yICgiZnBvcnRf aW5wdXRfd2FpdGluZyIpOwogCisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAocG9ydCk7CiAg IHJldHVybiBwb2xsZmQucmV2ZW50cyAmIFBPTExJTiA/IDEgOiAwOwogfQogCkBAIC02MDYsNiAr NjA3LDcgQEAgZnBvcnRfcmVhZCAoU0NNIHBvcnQsIFNDTSBkc3QsIHNpemVfdCBzdGFydCwgc2l6 ZV90IGNvdW50KQogICAgICAgICByZXR1cm4gLTE7CiAgICAgICBzY21fc3lzZXJyb3IgKCJmcG9y dF9yZWFkIik7CiAgICAgfQorICBzY21fcmVtZW1iZXJfdXB0b19oZXJlXzEgKHBvcnQpOwogICBy ZXR1cm4gcmV0OwogfQogCkBAIC02MzAsNiArNjMyLDcgQEAgZnBvcnRfd3JpdGUgKFNDTSBwb3J0 LCBTQ00gc3JjLCBzaXplX3Qgc3RhcnQsIHNpemVfdCBjb3VudCkKICAgICAgIHNjbV9zeXNlcnJv ciAoImZwb3J0X3dyaXRlIik7CiAgICAgfQogCisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAo cG9ydCk7CiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTY0MCw2ICs2NDMsNyBAQCBmcG9ydF9zZWVr IChTQ00gcG9ydCwgc2NtX3Rfb2ZmIG9mZnNldCwgaW50IHdoZW5jZSkKICAgc2NtX3Rfb2ZmIHJl c3VsdDsKIAogICByZXN1bHQgPSBsc2VlayAoZnAtPmZkZXMsIG9mZnNldCwgd2hlbmNlKTsKKyAg c2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChwb3J0KTsKIAogICBpZiAocmVzdWx0ID09IC0xKQog ICAgIHNjbV9zeXNlcnJvciAoImZwb3J0X3NlZWsiKTsKQEAgLTY1NCw2ICs2NTgsOCBAQCBmcG9y dF90cnVuY2F0ZSAoU0NNIHBvcnQsIHNjbV90X29mZiBsZW5ndGgpCiAKICAgaWYgKGZ0cnVuY2F0 ZSAoZnAtPmZkZXMsIGxlbmd0aCkgPT0gLTEpCiAgICAgc2NtX3N5c2Vycm9yICgiZnRydW5jYXRl Iik7CisKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChwb3J0KTsKIH0KIAogc3RhdGljIHZv aWQKQEAgLTY3Myw2ICs2NzksOCBAQCBmcG9ydF9jbG9zZSAoU0NNIHBvcnQpCiAgICAgICAgSW5z dGVhZCBqdXN0IHRocm93IGFuIGVycm9yIGlmIGNsb3NlIGZhaWxzLCB0cnVzdGluZyB0aGF0IHRo ZSBmZAogICAgICAgIHdhcyBjbGVhbmVkIHVwLiAgKi8KICAgICBzY21fc3lzZXJyb3IgKCJmcG9y dF9jbG9zZSIpOworCisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAocG9ydCk7CiB9CiAKIHN0 YXRpYyBpbnQKQEAgLTY4Niw2ICs2OTQsNyBAQCBmcG9ydF9yYW5kb21fYWNjZXNzX3AgKFNDTSBw b3J0KQogICBpZiAobHNlZWsgKGZwLT5mZGVzLCAwLCBTRUVLX0NVUikgPT0gLTEpCiAgICAgcmV0 dXJuIDA7CiAKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChwb3J0KTsKICAgcmV0dXJuIDE7 CiB9CiAKQEAgLTcwNSw2ICs3MTQsOCBAQCBmcG9ydF9nZXRfbmF0dXJhbF9idWZmZXJfc2l6ZXMg KFNDTSBwb3J0LCBzaXplX3QgKnJlYWRfc2l6ZSwgc2l6ZV90ICp3cml0ZV9zaXplKQogCiAgIGlm IChmc3RhdCAoZnAtPmZkZXMsICZzdCkgPT0gMCkKICAgICAqcmVhZF9zaXplID0gKndyaXRlX3Np emUgPSBzdC5zdF9ibGtzaXplOworCisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAocG9ydCk7 CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvbGliZ3VpbGUvaW9leHQuYyBiL2xpYmd1aWxlL2lv ZXh0LmMKaW5kZXggZDA4YjY4ZGYzLi45ZGMxOTgwZGQgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL2lv ZXh0LmMKKysrIGIvbGliZ3VpbGUvaW9leHQuYwpAQCAtMTQwLDYgKzE0MCw3IEBAIFNDTV9ERUZJ TkUgKHNjbV9kdXBfdG9fZmRlcywgImR1cC0+ZmRlcyIsIDEsIDEsIDAsCiAgIGlmIChTQ01fVU5C TkRQIChmZCkpCiAgICAgewogICAgICAgbmV3ZmQgPSBkdXAgKG9sZGZkKTsKKyAgICAgIHNjbV9y ZW1lbWJlcl91cHRvX2hlcmVfMSAoZmRfb3JfcG9ydCk7CiAgICAgICBpZiAobmV3ZmQgPT0gLTEp CiAJU0NNX1NZU0VSUk9SOwogICAgICAgZmQgPSBzY21fZnJvbV9pbnQgKG5ld2ZkKTsKQEAgLTE1 MSw2ICsxNTIsNyBAQCBTQ01fREVGSU5FIChzY21fZHVwX3RvX2ZkZXMsICJkdXAtPmZkZXMiLCAx LCAxLCAwLAogCXsKIAkgIHNjbV9ldmljdF9wb3J0cyAobmV3ZmQpOwkvKiBzZWUgc2NzaCBtYW51 YWwuICAqLwogCSAgcnYgPSBkdXAyIChvbGRmZCwgbmV3ZmQpOworCSAgc2NtX3JlbWVtYmVyX3Vw dG9faGVyZV8xIChmZF9vcl9wb3J0KTsKIAkgIGlmIChydiA9PSAtMSkKIAkgICAgU0NNX1NZU0VS Uk9SOwogCX0KQEAgLTE3OSw2ICsxODEsNyBAQCBTQ01fREVGSU5FIChzY21fZHVwMiwgImR1cDIi LCAyLCAwLCAwLAogICBjX29sZGZkID0gc2NtX3RvX2ludCAob2xkZmQpOwogICBjX25ld2ZkID0g c2NtX3RvX2ludCAobmV3ZmQpOwogICBydiA9IGR1cDIgKGNfb2xkZmQsIGNfbmV3ZmQpOworICBz Y21fcmVtZW1iZXJfdXB0b19oZXJlXzIgKG9sZGZkLCBuZXdmZCk7CiAgIGlmIChydiA9PSAtMSkK ICAgICBTQ01fU1lTRVJST1I7CiAgIHJldHVybiBTQ01fVU5TUEVDSUZJRUQ7CkBAIC0yMTksNyAr MjIyLDggQEAgU0NNX0RFRklORSAoc2NtX2lzYXR0eV9wLCAiaXNhdHR5PyIsIDEsIDAsIDAsCiAg ICAgcmV0dXJuIFNDTV9CT09MX0Y7CiAgIAogICBydiA9IGlzYXR0eSAoU0NNX0ZQT1JUX0ZERVMg KHBvcnQpKTsKLSAgcmV0dXJuICBzY21fZnJvbV9ib29sKHJ2KTsKKyAgc2NtX3JlbWVtYmVyX3Vw dG9faGVyZV8xIChwb3J0KTsKKyAgcmV0dXJuIHNjbV9mcm9tX2Jvb2wocnYpOwogfQogI3VuZGVm IEZVTkNfTkFNRQogCkBAIC0yNzgsNiArMjgyLDcgQEAgU0NNX0RFRklORSAoc2NtX3ByaW1pdGl2 ZV9tb3ZlX3RvX2ZkZXMsICJwcmltaXRpdmUtbW92ZS0+ZmRlcyIsIDIsIDAsIDAsCiAgIHN0cmVh bS0+ZmRlcyA9IG5ld19mZDsKICAgc2NtX3J1bl9mZGVzX2ZpbmFsaXplcnMgKG9sZF9mZCk7CiAg IFNDTV9TWVNDQUxMIChjbG9zZSAob2xkX2ZkKSk7ICAKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVy ZV8xIChwb3J0KTsKICAgcmV0dXJuIFNDTV9CT09MX1Q7CiB9CiAjdW5kZWYgRlVOQ19OQU1FCmRp ZmYgLS1naXQgYS9saWJndWlsZS9wb3NpeC5jIGIvbGliZ3VpbGUvcG9zaXguYwppbmRleCA0Nzc2 OTAwM2EuLmY3NjcyMmE0MyAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvcG9zaXguYworKysgYi9saWJn dWlsZS9wb3NpeC5jCkBAIC0xMDI5LDYgKzEwMjksNyBAQCBTQ01fREVGSU5FIChzY21fdHR5bmFt ZSwgInR0eW5hbWUiLCAxLCAwLCAwLAogCiAgIFNDTV9TWVNDQUxMIChyZXN1bHQgPSB0dHluYW1l IChmZCkpOwogICBlcnIgPSBlcnJubzsKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChwb3J0 KTsKICAgaWYgKHJlc3VsdCAhPSBOVUxMKQogICAgIHJlc3VsdCA9IHN0cmR1cCAocmVzdWx0KTsK IApAQCAtMTA5Myw2ICsxMDk0LDcgQEAgU0NNX0RFRklORSAoc2NtX3RjZ2V0cGdycCwgInRjZ2V0 cGdycCIsIDEsIDAsIDAsCiAgIGZkID0gU0NNX0ZQT1JUX0ZERVMgKHBvcnQpOwogICBpZiAoKHBn aWQgPSB0Y2dldHBncnAgKGZkKSkgPT0gLTEpCiAgICAgU0NNX1NZU0VSUk9SOworICBzY21fcmVt ZW1iZXJfdXB0b19oZXJlXzEgKHBvcnQpOwogICByZXR1cm4gc2NtX2Zyb21faW50IChwZ2lkKTsK IH0KICN1bmRlZiBGVU5DX05BTUUgICAgCkBAIC0xMTE2LDYgKzExMTgsNyBAQCBTQ01fREVGSU5F IChzY21fdGNzZXRwZ3JwLCAidGNzZXRwZ3JwIiwgMiwgMCwgMCwKICAgZmQgPSBTQ01fRlBPUlRf RkRFUyAocG9ydCk7CiAgIGlmICh0Y3NldHBncnAgKGZkLCBzY21fdG9faW50IChwZ2lkKSkgPT0g LTEpCiAgICAgU0NNX1NZU0VSUk9SOworICBzY21fcmVtZW1iZXJfdXB0b19oZXJlXzEgKHBvcnQp OwogICByZXR1cm4gU0NNX1VOU1BFQ0lGSUVEOwogfQogI3VuZGVmIEZVTkNfTkFNRQpAQCAtMTQw NCwxOSArMTQwNywyMSBAQCBzY21fcGlwZWRfcHJvY2VzcyAoU0NNIHByb2csIFNDTSBhcmdzLCBT Q00gZnJvbSwgU0NNIHRvKQogICAgIH0KIAogICB7Ci0gICAgU0NNIHBvcnQ7Ci0KLSAgICBpZiAo U0NNX09QT1VURlBPUlRQICgocG9ydCA9IHNjbV9jdXJyZW50X2Vycm9yX3BvcnQgKCkpKSkKLSAg ICAgIGVyciA9IFNDTV9GUE9SVF9GREVTIChwb3J0KTsKLSAgICBpZiAob3V0ID09IC0xICYmIFND TV9PUE9VVEZQT1JUUCAoKHBvcnQgPSBzY21fY3VycmVudF9vdXRwdXRfcG9ydCAoKSkpKQotICAg ICAgb3V0ID0gU0NNX0ZQT1JUX0ZERVMgKHBvcnQpOwotICAgIGlmIChpbiA9PSAtMSAmJiBTQ01f T1BJTkZQT1JUUCAoKHBvcnQgPSBzY21fY3VycmVudF9pbnB1dF9wb3J0ICgpKSkpCi0gICAgICBp biA9IFNDTV9GUE9SVF9GREVTIChwb3J0KTsKKyAgICBTQ00gZXJyb3JfcG9ydCwgb3V0cHV0X3Bv cnQgPSBTQ01fVU5ERUZJTkVELCBpbnB1dF9wb3J0ID0gU0NNX1VOREVGSU5FRDsKKworICAgIGlm IChTQ01fT1BPVVRGUE9SVFAgKChlcnJvcl9wb3J0ID0gc2NtX2N1cnJlbnRfZXJyb3JfcG9ydCAo KSkpKQorICAgICAgZXJyID0gU0NNX0ZQT1JUX0ZERVMgKGVycm9yX3BvcnQpOworICAgIGlmIChv dXQgPT0gLTEgJiYgU0NNX09QT1VURlBPUlRQICgob3V0cHV0X3BvcnQgPSBzY21fY3VycmVudF9v dXRwdXRfcG9ydCAoKSkpKQorICAgICAgb3V0ID0gU0NNX0ZQT1JUX0ZERVMgKG91dHB1dF9wb3J0 KTsKKyAgICBpZiAoaW4gPT0gLTEgJiYgU0NNX09QSU5GUE9SVFAgKChpbnB1dF9wb3J0ID0gc2Nt X2N1cnJlbnRfaW5wdXRfcG9ydCAoKSkpKQorICAgICAgaW4gPSBTQ01fRlBPUlRfRkRFUyAoaW5w dXRfcG9ydCk7CisKKyAgICBwaWQgPSBzdGFydF9jaGlsZCAoZXhlY19maWxlLCBleGVjX2FyZ3Ys IHJlYWRpbmcsIGMycCwgd3JpdGluZywgcDJjLAorICAgICAgICAgICAgICAgICAgICAgICBpbiwg b3V0LCBlcnIpOworICAgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMiAoaW5wdXRfcG9ydCwgb3V0 cHV0X3BvcnQpOworICAgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmUgKGVycm9yX3BvcnQpOwogICB9 CiAKLSAgcGlkID0gc3RhcnRfY2hpbGQgKGV4ZWNfZmlsZSwgZXhlY19hcmd2LCByZWFkaW5nLCBj MnAsIHdyaXRpbmcsIHAyYywKLSAgICAgICAgICAgICAgICAgICAgIGluLCBvdXQsIGVycik7Ci0K ICAgaWYgKHBpZCA9PSAtMSkKICAgICB7CiAgICAgICBpbnQgZXJybm9fc2F2ZSA9IGVycm5vOwpA QCAtMjI0MSw2ICsyMjQ2LDcgQEAgU0NNX0RFRklORSAoc2NtX2Zsb2NrLCAiZmxvY2siLCAyLCAw LCAwLAogICAgIH0KICAgaWYgKGZsb2NrIChmZGVzLCBzY21fdG9faW50IChvcGVyYXRpb24pKSA9 PSAtMSkKICAgICBTQ01fU1lTRVJST1I7CisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAoZmls ZSk7CiAgIHJldHVybiBTQ01fVU5TUEVDSUZJRUQ7CiB9CiAjdW5kZWYgRlVOQ19OQU1FCmRpZmYg LS1naXQgYS9saWJndWlsZS9ydy5jIGIvbGliZ3VpbGUvcncuYwppbmRleCA3YWZhZTFjNjMuLmZm MWIyZjdkMSAxMDA2NDQKLS0tIGEvbGliZ3VpbGUvcncuYworKysgYi9saWJndWlsZS9ydy5jCkBA IC0xMDksNiArMTA5LDcgQEAgU0NNX0RFRklORSAoc2NtX3JlYWRfc3RyaW5nX3hfcGFydGlhbCwg InJlYWQtc3RyaW5nIS9wYXJ0aWFsIiwgMSwgMywgMCwKICAgc2l6ZV90IG9mZnNldDsKICAgbG9u ZyByZWFkX2xlbjsKICAgbG9uZyBjaGFyc19yZWFkID0gMDsKKyAgU0NNIHBvcnQgPSBTQ01fVU5E RUZJTkVEOwogICBpbnQgZmRlczsKIAogICB7CkBAIC0xMjQsOCArMTI1LDggQEAgU0NNX0RFRklO RSAoc2NtX3JlYWRfc3RyaW5nX3hfcGFydGlhbCwgInJlYWQtc3RyaW5nIS9wYXJ0aWFsIiwgMSwg MywgMCwKICAgICBmZGVzID0gc2NtX3RvX2ludCAocG9ydF9vcl9mZGVzKTsKICAgZWxzZQogICAg IHsKLSAgICAgIFNDTSBwb3J0ID0gKFNDTV9VTkJORFAgKHBvcnRfb3JfZmRlcyk/Ci0JCSAgc2Nt X2N1cnJlbnRfaW5wdXRfcG9ydCAoKSA6IHBvcnRfb3JfZmRlcyk7CisgICAgICBwb3J0ID0gKFND TV9VTkJORFAgKHBvcnRfb3JfZmRlcyk/CisgICAgICAgICAgICAgIHNjbV9jdXJyZW50X2lucHV0 X3BvcnQgKCkgOiBwb3J0X29yX2ZkZXMpOwogCiAgICAgICBTQ01fVkFMSURBVEVfT1BGUE9SVCAo MiwgcG9ydCk7CiAgICAgICBTQ01fVkFMSURBVEVfSU5QVVRfUE9SVCAoMiwgcG9ydCk7CkBAIC0x NjIsNyArMTYzLDEzIEBAIFNDTV9ERUZJTkUgKHNjbV9yZWFkX3N0cmluZ194X3BhcnRpYWwsICJy ZWFkLXN0cmluZyEvcGFydGlhbCIsIDEsIDMsIDAsCiAJfQogICAgIH0KIAotICBzY21fcmVtZW1i ZXJfdXB0b19oZXJlXzEgKHN0cik7CisgIC8qIFdlIG5lZWQgdG8gcmVtZW1iZXIgJ3BvcnQnIGhl cmU7ICdwb3J0X29yX2ZkZXMnIHdvbid0IHN1ZmZpY2UKKyAgICAgYXMgJyhjdXJyZW50LWlucHV0 LXBvcnQpJyBjYW4gYmUgYXNzaWduZWQgdG8gJ3BvcnQnCisgICAgIGFuZCB0aGUgJyhjdXJyZW50 LWlucHV0LXBvcnQpJyBjYW4gYmUgY2hhbmdlZCBieSBhbiBhc3luY2hyb251b3VzCisgICAgIGlu dGVycnVwdCwgcG90ZW50aWFsbHkgYWxsb3dpbmcgdGhlIG9sZCBpbnB1dCBwb3J0IHRvIGJlIGdh cmJhZ2UKKyAgICAgY29sbGVjdGVkIGFuZCBjbG9zZWQsIGV2ZW4gdGhvdWdoIHRoZSBzeXN0ZW0g Y2FsbCBzdGlsbCByZXF1aXJlcworICAgICBpdHMgZmlsZSBkZXNjcmlwdG9yLiAqLworICBzY21f cmVtZW1iZXJfdXB0b19oZXJlXzIgKHBvcnQsIHN0cik7CiAgIHJldHVybiBzY21fZnJvbV9sb25n IChjaGFyc19yZWFkKTsKIH0KICN1bmRlZiBGVU5DX05BTUUKQEAgLTIxNCw2ICsyMjEsNyBAQCBT Q01fREVGSU5FIChzY21fd3JpdGVfc3RyaW5nX3BhcnRpYWwsICJ3cml0ZS1zdHJpbmcvcGFydGlh bCIsIDEsIDMsIDAsCiAgIGNvbnN0IGNoYXIgKnNyYzsKICAgc2NtX3Rfb2ZmIHdyaXRlX2xlbjsK ICAgaW50IGZkZXM7CisgIFNDTSBwb3J0ID0gU0NNX1VOREVGSU5FRDsKIAogICB7CiAgICAgc2l6 ZV90IG9mZnNldDsKQEAgLTIzNCw4ICsyNDIsOCBAQCBTQ01fREVGSU5FIChzY21fd3JpdGVfc3Ry aW5nX3BhcnRpYWwsICJ3cml0ZS1zdHJpbmcvcGFydGlhbCIsIDEsIDMsIDAsCiAgICAgZmRlcyA9 IHNjbV90b19pbnQgKHBvcnRfb3JfZmRlcyk7CiAgIGVsc2UKICAgICB7Ci0gICAgICBTQ00gcG9y dCA9IChTQ01fVU5CTkRQIChwb3J0X29yX2ZkZXMpPwotCQkgIHNjbV9jdXJyZW50X291dHB1dF9w b3J0ICgpIDogcG9ydF9vcl9mZGVzKTsKKyAgICAgIHBvcnQgPSAoU0NNX1VOQk5EUCAocG9ydF9v cl9mZGVzKT8KKyAgICAgICAgICAgICAgc2NtX2N1cnJlbnRfb3V0cHV0X3BvcnQgKCkgOiBwb3J0 X29yX2ZkZXMpOwogICAgICAgU0NNIHdyaXRlX2J1ZjsKICAgICAgIHNpemVfdCBlbmQ7CiAKQEAg LTI2Niw3ICsyNzQsMTMgQEAgU0NNX0RFRklORSAoc2NtX3dyaXRlX3N0cmluZ19wYXJ0aWFsLCAi d3JpdGUtc3RyaW5nL3BhcnRpYWwiLCAxLCAzLCAwLAogCSAgU0NNX1NZU0VSUk9SOwogICAgICAg fQogCi0gICAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChzdHIpOworICAgIC8qIFdlIG5lZWQg dG8gcmVtZW1lbWJlciAncG9ydCc7IHJlbWVtYmVyaW5nICdwb3J0X29yX2ZkZXMnIHdvbid0Cisg ICAgICAgc3VmZmljZSBhcyAnKGN1cnJlbnQtb3V0cHV0LXBvcnQpJyBjYW4gYmUgYXNzaWduZWQg dG8gJ3BvcnQnCisgICAgICAgYW5kIHRoZSAnKGN1cnJlbnQtb3V0cHV0LXBvcnQpJyBjYW4gYmUg Y2hhbmdlZCBieSBhbiBhc3luY2hyb251b3VzCisgICAgICAgaW50ZXJydXB0LCBwb3RlbnRpYWxs eSBhbGxvd2luZyB0aGUgb2xkIG91dHB1dCBwb3J0IHRvIGJlIGdhcmJhZ2UKKyAgICAgICBjb2xs ZWN0ZWQgYW5kIGNsb3NlZCBldmVuIHRob3VnaCB0aGUgJ3dyaXRlJyBzeXN0ZW0gY2FsbCBzdGls bAorICAgICAgIHJlcXVpcmVzIHRoZSBmaWxlIGRlc2NyaXB0b3IuICovCisgICAgc2NtX3JlbWVt YmVyX3VwdG9faGVyZV8yIChzdHIsIHBvcnQpOwogICAgIHJldHVybiBzY21fZnJvbV9sb25nIChy dik7CiAgIH0KIH0KZGlmZiAtLWdpdCBhL2xpYmd1aWxlL3NvY2tldC5jIGIvbGliZ3VpbGUvc29j a2V0LmMKaW5kZXggOGFmNmY1N2JmLi44YjllNjRhOGIgMTAwNjQ0Ci0tLSBhL2xpYmd1aWxlL3Nv Y2tldC5jCisrKyBiL2xpYmd1aWxlL3NvY2tldC5jCkBAIC01MDMsNiArNTAzLDcgQEAgU0NNX0RF RklORSAoc2NtX2dldHNvY2tvcHQsICJnZXRzb2Nrb3B0IiwgMywgMCwgMCwKICAgaWYgKGdldHNv Y2tvcHQgKGZkLCBpbGV2ZWwsIGlvcHRuYW1lLCAodm9pZCAqKSAmb3B0dmFsLCAmb3B0bGVuKSA9 PSAtMSkKICAgICBTQ01fU1lTRVJST1I7CiAKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChz b2NrKTsKICAgaWYgKGlsZXZlbCA9PSBTT0xfU09DS0VUKQogICAgIHsKICNpZmRlZiBTT19MSU5H RVIKQEAgLTY3Myw2ICs2NzQsOCBAQCBTQ01fREVGSU5FIChzY21fc2V0c29ja29wdCwgInNldHNv Y2tvcHQiLCA0LCAwLCAwLAogCiAgIGlmIChzZXRzb2Nrb3B0IChmZCwgaWxldmVsLCBpb3B0bmFt ZSwgb3B0dmFsLCBvcHRsZW4pID09IC0xKQogICAgIFNDTV9TWVNFUlJPUjsKKworICBzY21fcmVt ZW1iZXJfdXB0b19oZXJlXzEgKHNvY2spOwogICByZXR1cm4gU0NNX1VOU1BFQ0lGSUVEOwogfQog I3VuZGVmIEZVTkNfTkFNRQpAQCAtNzA3LDYgKzcxMCw3IEBAIFNDTV9ERUZJTkUgKHNjbV9zaHV0 ZG93biwgInNodXRkb3duIiwgMiwgMCwgMCwKICAgZmQgPSBTQ01fRlBPUlRfRkRFUyAoc29jayk7 CiAgIGlmIChzaHV0ZG93biAoZmQsIHNjbV90b19zaWduZWRfaW50ZWdlciAoaG93LCAwLCAyKSkg PT0gLTEpCiAgICAgU0NNX1NZU0VSUk9SOworICBzY21fcmVtZW1iZXJfdXB0b19oZXJlXzEgKHNv Y2spOwogICByZXR1cm4gU0NNX1VOU1BFQ0lGSUVEOwogfQogI3VuZGVmIEZVTkNfTkFNRQpAQCAt ODc2LDYgKzg4MCw3IEBAIFNDTV9ERUZJTkUgKHNjbV9jb25uZWN0LCAiY29ubmVjdCIsIDIsIDEs IDEsCiAgICAgICBTQ01fU1lTRVJST1I7CiAgICAgfQogICBmcmVlIChzb2thKTsKKyAgc2NtX3Jl bWVtYmVyX3VwdG9faGVyZV8xIChzb2NrKTsKICAgcmV0dXJuIFNDTV9CT09MX1Q7CiB9CiAjdW5k ZWYgRlVOQ19OQU1FCkBAIC05NDYsNiArOTUxLDcgQEAgU0NNX0RFRklORSAoc2NtX2JpbmQsICJi aW5kIiwgMiwgMSwgMSwKICAgICBTQ01fU1lTRVJST1I7CiAgIH0KICAgZnJlZSAoc29rYSk7Cisg IHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAoc29jayk7CiAgIHJldHVybiBTQ01fVU5TUEVDSUZJ RUQ7CiB9CiAjdW5kZWYgRlVOQ19OQU1FCkBAIC05NjcsNiArOTczLDcgQEAgU0NNX0RFRklORSAo c2NtX2xpc3RlbiwgImxpc3RlbiIsIDIsIDAsIDAsCiAgIGZkID0gU0NNX0ZQT1JUX0ZERVMgKHNv Y2spOwogICBpZiAobGlzdGVuIChmZCwgc2NtX3RvX2ludCAoYmFja2xvZykpID09IC0xKQogICAg IFNDTV9TWVNFUlJPUjsKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8xIChzb2NrKTsKICAgcmV0 dXJuIFNDTV9VTlNQRUNJRklFRDsKIH0KICN1bmRlZiBGVU5DX05BTUUKQEAgLTEyODQsNiArMTI5 MSw3IEBAIFNDTV9ERUZJTkUgKHNjbV9hY2NlcHQ0LCAiYWNjZXB0IiwgMSwgMSwgMCwKICAgICAg ICAgcmV0dXJuIFNDTV9CT09MX0Y7CiAgICAgICBTQ01fU1lTRVJST1I7CiAgICAgfQorICBzY21f cmVtZW1iZXJfdXB0b19oZXJlXzEgKHNvY2spOwogICBuZXdzb2NrID0gc2NtX3NvY2tldF9mZF90 b19wb3J0IChuZXdmZCk7CiAgIGFkZHJlc3MgPSBfc2NtX2Zyb21fc29ja2FkZHIgKCZhZGRyLCBh ZGRyX3NpemUsIEZVTkNfTkFNRSk7CiAKQEAgLTEzMTQsNiArMTMyMiw3IEBAIFNDTV9ERUZJTkUg KHNjbV9nZXRzb2NrbmFtZSwgImdldHNvY2tuYW1lIiwgMSwgMCwgMCwKICAgaWYgKGdldHNvY2tu YW1lIChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmYWRkciwgJmFkZHJfc2l6ZSkgPT0gLTEpCiAg ICAgU0NNX1NZU0VSUk9SOwogCisgIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAoc29jayk7CiAg IHJldHVybiBfc2NtX2Zyb21fc29ja2FkZHIgKCZhZGRyLCBhZGRyX3NpemUsIEZVTkNfTkFNRSk7 CiB9CiAjdW5kZWYgRlVOQ19OQU1FCkBAIC0xMzM2LDYgKzEzNDUsNyBAQCBTQ01fREVGSU5FIChz Y21fZ2V0cGVlcm5hbWUsICJnZXRwZWVybmFtZSIsIDEsIDAsIDAsCiAgIGlmIChnZXRwZWVybmFt ZSAoZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHIsICZhZGRyX3NpemUpID09IC0xKQogICAg IFNDTV9TWVNFUlJPUjsKIAorICBzY21fcmVtZW1iZXJfdXB0b19oZXJlXzEgKHNvY2spOwogICBy ZXR1cm4gX3NjbV9mcm9tX3NvY2thZGRyICgmYWRkciwgYWRkcl9zaXplLCBGVU5DX05BTUUpOwog fQogI3VuZGVmIEZVTkNfTkFNRQpAQCAtMTM4MSw3ICsxMzkxLDcgQEAgU0NNX0RFRklORSAoc2Nt X3JlY3YsICJyZWN2ISIsIDIsIDEsIDAsCiAgIGlmIChTQ01fVU5MSUtFTFkgKHJ2ID09IC0xKSkK ICAgICBTQ01fU1lTRVJST1I7CiAKLSAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZSAoYnVmKTsKKyAg c2NtX3JlbWVtYmVyX3VwdG9faGVyZV8yIChzb2NrLCBidWYpOwogICByZXR1cm4gc2NtX2Zyb21f aW50IChydik7CiB9CiAjdW5kZWYgRlVOQ19OQU1FCkBAIC0xNDI2LDcgKzE0MzYsNyBAQCBTQ01f REVGSU5FIChzY21fc2VuZCwgInNlbmQiLCAyLCAxLCAwLAogICBpZiAocnYgPT0gLTEpCiAgICAg U0NNX1NZU0VSUk9SOwogCi0gIHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMSAobWVzc2FnZSk7Cisg IHNjbV9yZW1lbWJlcl91cHRvX2hlcmVfMiAoc29jaywgbWVzc2FnZSk7CiAgIHJldHVybiBzY21f ZnJvbV9pbnQgKHJ2KTsKIH0KICN1bmRlZiBGVU5DX05BTUUKQEAgLTE1MDQsNiArMTUxNCw3IEBA IFNDTV9ERUZJTkUgKHNjbV9yZWN2ZnJvbSwgInJlY3Zmcm9tISIsIDIsIDMsIDAsCiAgIGlmIChy diA9PSAtMSkKICAgICBTQ01fU1lTRVJST1I7CiAKKyAgc2NtX3JlbWVtYmVyX3VwdG9faGVyZV8x IChzb2NrKTsKICAgLyogYHJlY3Zmcm9tJyBkb2VzIG5vdCBuZWNlc3NhcmlseSByZXR1cm4gYW4g YWRkcmVzcy4gIFVzdWFsbHkgbm90aGluZwogICAgICBpcyByZXR1cm5lZCBmb3Igc3RyZWFtIHNv Y2tldHMuICAqLwogICBpZiAoKChzdHJ1Y3Qgc29ja2FkZHIgKikgJmFkZHIpLT5zYV9mYW1pbHkg IT0gQUZfVU5TUEVDKQpAQCAtMTU4Niw3ICsxNTk3LDcgQEAgU0NNX0RFRklORSAoc2NtX3NlbmR0 bywgInNlbmR0byIsIDMsIDEsIDEsCiAgICAgfQogICBmcmVlIChzb2thKTsKIAotICBzY21fcmVt ZW1iZXJfdXB0b19oZXJlXzEgKG1lc3NhZ2UpOworICBzY21fcmVtZW1iZXJfdXB0b19oZXJlXzIg KHNvY2ssIG1lc3NhZ2UpOwogICByZXR1cm4gc2NtX2Zyb21faW50IChydik7CiB9CiAjdW5kZWYg RlVOQ19OQU1FCi0tIAoyLjMwLjEKCg== --=-+r3xNJaQjfIM5NBSn5C0-- --=-W5jemlYbTEVqM/w87ePp Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYIADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYEPygBccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7vyqAQDdtFiB6drFuR6JYAdATE06b9CE ynxIMoIQ6wzf9X6UVQD8CtICCdokY2SHI3vE5NUhG8oTgDMtcZeCMoaTARBtOAk= =shJf -----END PGP SIGNATURE----- --=-W5jemlYbTEVqM/w87ePp--