From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Pip Cet Newsgroups: gmane.emacs.bugs Subject: bug#36190: 27.0.50; `put-text-property' etc. with buffer argument calls current buffer's `after-change-functions' Date: Thu, 13 Jun 2019 18:48:23 +0000 Message-ID: References: <83h88tzbly.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000a3d7dc058b38fb88" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="27836"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 36190@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Jun 13 21:39:26 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hbVZG-00075X-9K for geb-bug-gnu-emacs@m.gmane.org; Thu, 13 Jun 2019 21:39:26 +0200 Original-Received: from localhost ([::1]:45062 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hbVZF-00024K-Bl for geb-bug-gnu-emacs@m.gmane.org; Thu, 13 Jun 2019 15:39:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37128) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hbUnU-0003n9-SK for bug-gnu-emacs@gnu.org; Thu, 13 Jun 2019 14:50:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hbUnR-000796-Ve for bug-gnu-emacs@gnu.org; Thu, 13 Jun 2019 14:50:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:50788) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hbUnR-00078u-PT for bug-gnu-emacs@gnu.org; Thu, 13 Jun 2019 14:50:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hbUnR-0004Dm-Kf for bug-gnu-emacs@gnu.org; Thu, 13 Jun 2019 14:50:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pip Cet Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jun 2019 18:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36190 X-GNU-PR-Package: emacs Original-Received: via spool by 36190-submit@debbugs.gnu.org id=B36190.156045174816143 (code B ref 36190); Thu, 13 Jun 2019 18:50:01 +0000 Original-Received: (at 36190) by debbugs.gnu.org; 13 Jun 2019 18:49:08 +0000 Original-Received: from localhost ([127.0.0.1]:36096 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbUmZ-0004CI-ST for submit@debbugs.gnu.org; Thu, 13 Jun 2019 14:49:08 -0400 Original-Received: from mail-oi1-f182.google.com ([209.85.167.182]:35576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hbUmX-0004Bl-Le for 36190@debbugs.gnu.org; Thu, 13 Jun 2019 14:49:06 -0400 Original-Received: by mail-oi1-f182.google.com with SMTP id y6so138831oix.2 for <36190@debbugs.gnu.org>; Thu, 13 Jun 2019 11:49:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Gw6ZrRo0MStEJBcJO/IzUDhUqIvjyINXj7o4OptRXoo=; b=t+9v98VHKt0AHMNAlzqoJlG0NpPmg+0/wYuS3XlUyMC3cZy9tdxCpZy7h0rtGK91mB J+vLYQk3deRxYFA9/LlgOjfrnXPszYpmcdI1sXf0kyIVJJUv0ZizBZ2sNG+6rl+dx3R4 7WTQjZp6220sgsRDk09o28bY2rvFZHwfC5hvzcSV5DcFZzT9vCI4rxnZDkxSTfbfFTz1 pNa92MP+WGgxkkJtevZSFBOMUTuILFP1BpmX/C81J9kKP4rUoOfBJ5aL/6bT/l+aDDeE gArpG9rnrgTspd2qPCf4MbZD6RUfAbMKLcVZHEwJM4bFZOajET5E+bRDTTfO4gcAGD1J vGZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Gw6ZrRo0MStEJBcJO/IzUDhUqIvjyINXj7o4OptRXoo=; b=nvI+3yJWGDdKKrFzv6mPmUDyQF6nXPlVtLJNIpfozxglpqtKH9djRY+YjcTng1VphX rFZ+hAoQ9NUWcI7z8ufnpBmMwOymS0u3p49rXDQiDshPSKZ+JtgXHHZYYptVefPoLpkH vDM3BMZ+TKumepFYhQA2lD48LEp2OgLmPXR9aAzLbnACX2q4dI7DXhQg5dX7/VPknHA3 54Bnr+SV9LxMdN5Ed7i/M8QujFQqSL5RfPGWIE1lFyNkjS2B20+inuf5A/5W9HjNGFza 9/obAXwz8BoB9rh/U3TI+CQTODlIsXYHVuxiy/UHaxNfSGojq7O+p/ZdtopRqNBuQXhT /MzQ== X-Gm-Message-State: APjAAAWIHgq0mjC+QYCEECGfZPX+F1+RXx298dwhuQX3eZerwRKlYqI2 U8loxc9zASasOcEYyigqi08JEtf4gPp+UMlMpRg= X-Google-Smtp-Source: APXvYqwJr8H+Fa2Dapql6V8hC303mlpq27v7WYrhyOIi2G2my4uOVC6Jm+EG+nAy+fODssiAs2Ki301z1kxUjWfKTnU= X-Received: by 2002:aca:4790:: with SMTP id u138mr4093601oia.44.1560451739790; Thu, 13 Jun 2019 11:48:59 -0700 (PDT) In-Reply-To: <83h88tzbly.fsf@gnu.org> 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: 209.51.188.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:160519 Archived-At: --000000000000a3d7dc058b38fb88 Content-Type: text/plain; charset="UTF-8" On Thu, Jun 13, 2019 at 4:36 PM Eli Zaretskii wrote: > > > From: Pip Cet > > Date: Thu, 13 Jun 2019 13:48:40 +0000 > > > > I've looked at the code, and it appears no particular provisions are > > being made to make sure we switch to the modified buffer before > > calling signal_after_change(). > > > > As far as I can tell, this makes `put-text-property' with a buffer > > argument pretty useless. > > Only if you have a buffer-local value of after-change-functions. I'm not sure what you're saying. I'm seeing weird behavior in these cases: - buffer-local value of after-change-functions - global value of after-change functions (current-buffer is wrong!) - overlay property modification-hooks (let ((buffer1 (generate-new-buffer "A")) (buffer2 (generate-new-buffer "B"))) (with-current-buffer buffer2 (insert "BBB")) (with-current-buffer buffer1 (insert "AAA") (overlay-put (make-overlay 1 4 buffer1) 'modification-hooks (list (lambda (&rest args) (message "%S" args)))) (goto-char 2) (insert "AAA") (put-text-property 1 4 'read-only t buffer2))) produces three calls to the lambda, but should produce only two. (The last_overlay_modification_hooks logic is a bit weird, thus the second insertion). That seems pretty wrong to me. In which cases do you think we're seeing the right behavior? Here's a first patch, which adds a "buffer" argument to signal_after_change, to be explicit about where the change happens. It should be pretty cheap in the case where we don't switch buffers. --000000000000a3d7dc058b38fb88 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Switch-to-modified-buffer-in-signal_after_change.patch" Content-Disposition: attachment; filename="0001-Switch-to-modified-buffer-in-signal_after_change.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jwv013vh0 RnJvbSBmZjQwYTkwY2MxZTRhZGU5ODQ4YjZjYjAxZWE5ZTQxNWQ0ZTgyZDhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaXAgQ2V0IDxwaXBjZXRAZ21haWwuY29tPgpEYXRlOiBUaHUs IDEzIEp1biAyMDE5IDE0OjA2OjQ2ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gU3dpdGNoIHRvIG1v ZGlmaWVkIGJ1ZmZlciBpbiBzaWduYWxfYWZ0ZXJfY2hhbmdlCgoqIHNyYy9pbnNkZWwuYyAoc2ln bmFsX2FmdGVyX2NoYW5nZSk6IEFkZCBidWZmZXIgYXJndW1lbnQuCiogc3JjL2Nhc2VmaWRkbGUu YyAoY2FzaWZ5X3JlZ2lvbiksCiAgc3JjL2RlY29tcHJlc3MuYyAodW53aW5kX2RlY29tcHJlc3Ms IEZ6bGliX2RlY29tcHJlc3NfcmVnaW9uKSwKICBzcmMvZWRpdGZucy5jIChGcmVwbGFjZV9idWZm ZXJfY29udGVudHMsIEZ0cmFuc2xhdGVfcmVnaW9uX2ludGVybmFsLAogIEZ0cmFuc3Bvc2VfcmVn aW9ucyksIHNyYy9maWxlaW8uYyAoRmluc2VydF9maWxlX2NvbnRlbnRzKSwKICBzcmMvZm5zLmMg KEZiYXNlNjRfZGVjb2RlX3JlZ2lvbiksIHNyYy9pbnNkZWwuYyAoaW5zZXJ0LAogIGluc2VydF9h bmRfaW5oZXJpdCwgaW5zZXJ0X2JlZm9yZV9tYXJrZXJzLAogIGluc2VydF9iZWZvcmVfbWFya2Vy c19hbmRfaW5oZXJpdCwgaW5zZXJ0X2Zyb21fc3RyaW5nLAogIGluc2VydF9mcm9tX3N0cmluZ19i ZWZvcmVfbWFya2VycywgaW5zZXJ0X2Zyb21fYnVmZmVyLAogIHJlcGxhY2VfcmFuZ2UsIGRlbF9y YW5nZV8xLCBkZWxfcmFuZ2VfYnl0ZSwgZGVsX3JhbmdlX2JvdGgsCiAgRmNvbWJpbmVfYWZ0ZXJf Y2hhbmdlX2V4ZWN1dGUpLCBzcmMvanNvbi5jIChGanNvbl9pbnNlcnQpLAogIHNyYy9wcmludC5j IChQUklOVEZJTklTSCk6IHVzZSBjdXJyZW50X2J1ZmZlci4KKiBzcmMvdGV4dHByb3AuYyAoYWRk X3RleHRfcHJvcGVydGllc18xLCBzZXRfdGV4dF9wcm9wZXJ0aWVzLAogIEZyZW1vdmVfdGV4dF9w cm9wZXJ0aWVzLCBGcmVtb3ZlX2xpc3Rfb2ZfdGV4dF9wcm9wZXJ0aWVzKTogdXNlCiAgY29ycmVj dCBidWZmZXIuCi0tLQogc3JjL2Nhc2VmaWRkbGUuYyB8ICAyICstCiBzcmMvZGVjb21wcmVzcy5j IHwgIDQgKystLQogc3JjL2VkaXRmbnMuYyAgICB8ICA4ICsrKystLS0tCiBzcmMvZmlsZWlvLmMg ICAgIHwgIDIgKy0KIHNyYy9mbnMuYyAgICAgICAgfCAgMiArLQogc3JjL2luc2RlbC5jICAgICB8 IDMwICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogc3JjL2pzb24uYyAgICAgICB8ICAy ICstCiBzcmMvbGlzcC5oICAgICAgIHwgIDIgKy0KIHNyYy9wcmludC5jICAgICAgfCAgMyArKy0K IHNyYy90ZXh0cHJvcC5jICAgfCAyMiArKysrKysrKysrKy0tLS0tLS0tLS0tCiAxMCBmaWxlcyBj aGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvY2FzZWZpZGRsZS5jIGIvc3JjL2Nhc2VmaWRkbGUuYwppbmRleCAzZjQwN2VhZGVkLi5kN2Uy OWQxMGFlIDEwMDY0NAotLS0gYS9zcmMvY2FzZWZpZGRsZS5jCisrKyBiL3NyYy9jYXNlZmlkZGxl LmMKQEAgLTUwOSw3ICs1MDksNyBAQCBjYXNpZnlfcmVnaW9uIChlbnVtIGNhc2VfYWN0aW9uIGZs YWcsIExpc3BfT2JqZWN0IGIsIExpc3BfT2JqZWN0IGUpCiAKICAgaWYgKHN0YXJ0ID49IDApCiAg ICAgewotICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoc3RhcnQsIGVuZCAtIHN0YXJ0IC0gYWRk ZWQsIGVuZCAtIHN0YXJ0KTsKKyAgICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKGN1cnJlbnRfYnVm ZmVyLCBzdGFydCwgZW5kIC0gc3RhcnQgLSBhZGRlZCwgZW5kIC0gc3RhcnQpOwogICAgICAgdXBk YXRlX2NvbXBvc2l0aW9ucyAoc3RhcnQsIGVuZCwgQ0hFQ0tfQUxMKTsKICAgICB9CiAKZGlmZiAt LWdpdCBhL3NyYy9kZWNvbXByZXNzLmMgYi9zcmMvZGVjb21wcmVzcy5jCmluZGV4IDRjYTZhNTBi MmEuLjgzMWNjNzhmZTUgMTAwNjQ0Ci0tLSBhL3NyYy9kZWNvbXByZXNzLmMKKysrIGIvc3JjL2Rl Y29tcHJlc3MuYwpAQCAtODgsNyArODgsNyBAQCB1bndpbmRfZGVjb21wcmVzcyAodm9pZCAqZGRh dGEpCiAgICAgICB1cGRhdGVfY29tcG9zaXRpb25zIChkYXRhLT5zdGFydCwgZGF0YS0+c3RhcnQs IENIRUNLX0hFQUQpOwogICAgICAgLyogIkJhbGFuY2UiIHRoZSBiZWZvcmUtY2hhbmdlLWZ1bmN0 aW9ucyBjYWxsLCB3aGljaCB3b3VsZAogICAgICAgICAgb3RoZXJ3aXNlIGJlIGxlZnQgImhhbmdp bmciLiAqLwotICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoZGF0YS0+b3JpZywgZGF0YS0+c3Rh cnQgLSBkYXRhLT5vcmlnLAorICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoY3VycmVudF9idWZm ZXIsIGRhdGEtPm9yaWcsIGRhdGEtPnN0YXJ0IC0gZGF0YS0+b3JpZywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGEtPnN0YXJ0IC0gZGF0YS0+b3JpZyk7CiAgICAgfQogICAvKiBQdXQg cG9pbnQgd2hlcmUgaXQgd2FzLCBvciBpZiB0aGUgYnVmZmVyIGhhcyBzaHJ1bmsgYmVjYXVzZSB0 aGUKQEAgLTIyNyw3ICsyMjcsNyBAQCBERUZVTiAoInpsaWItZGVjb21wcmVzcy1yZWdpb24iLCBG emxpYl9kZWNvbXByZXNzX3JlZ2lvbiwKICAgZGVsX3JhbmdlXzIgKGlzdGFydCwgaXN0YXJ0LCAv KiBieXRlIGFuZCBjaGFyIG9mZnNldHMgYXJlIHRoZSBzYW1lLiAqLwogICAgICAgICAgICAgICAg aWVuZCwgaWVuZCwgMCk7CiAKLSAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoaXN0YXJ0LCBpZW5kIC0g aXN0YXJ0LCB1bndpbmRfZGF0YS5uYnl0ZXMpOworICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJy ZW50X2J1ZmZlciwgaXN0YXJ0LCBpZW5kIC0gaXN0YXJ0LCB1bndpbmRfZGF0YS5uYnl0ZXMpOwog ICB1cGRhdGVfY29tcG9zaXRpb25zIChpc3RhcnQsIGlzdGFydCwgQ0hFQ0tfSEVBRCk7CiAKICAg cmV0dXJuIHVuYmluZF90byAoY291bnQsIHJldCk7CmRpZmYgLS1naXQgYS9zcmMvZWRpdGZucy5j IGIvc3JjL2VkaXRmbnMuYwppbmRleCBlZTUzOGU1MGUyLi45YWRhMjNmZjYxIDEwMDY0NAotLS0g YS9zcmMvZWRpdGZucy5jCisrKyBiL3NyYy9lZGl0Zm5zLmMKQEAgLTIxNDgsNyArMjE0OCw3IEBA IERFRlVOICgicmVwbGFjZS1idWZmZXItY29udGVudHMiLCBGcmVwbGFjZV9idWZmZXJfY29udGVu dHMsCiAKICAgaWYgKG1vZGlmaWNhdGlvbl9ob29rc19pbmhpYml0ZWQpCiAgICAgewotICAgICAg c2lnbmFsX2FmdGVyX2NoYW5nZSAoQkVHViwgc2l6ZV9hLCBaViAtIEJFR1YpOworICAgICAgc2ln bmFsX2FmdGVyX2NoYW5nZSAoY3VycmVudF9idWZmZXIsIEJFR1YsIHNpemVfYSwgWlYgLSBCRUdW KTsKICAgICAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKEJFR1YsIFpWLCBDSEVDS19JTlNJREUpOwog ICAgIH0KIApAQCAtMjQxMiw3ICsyNDEyLDcgQEAgI2RlZmluZSBDT01CSU5JTkdfQk9USCAoQ09N QklOSU5HX0JFRk9SRSB8IENPTUJJTklOR19BRlRFUikKIAogICBpZiAoY2hhbmdlZCA+IDApCiAg ICAgewotICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoY2hhbmdlZCwKKyAgICAgIHNpZ25hbF9h ZnRlcl9jaGFuZ2UgKGN1cnJlbnRfYnVmZmVyLCBjaGFuZ2VkLAogCQkJICAgbGFzdF9jaGFuZ2Vk IC0gY2hhbmdlZCwgbGFzdF9jaGFuZ2VkIC0gY2hhbmdlZCk7CiAgICAgICB1cGRhdGVfY29tcG9z aXRpb25zIChjaGFuZ2VkLCBsYXN0X2NoYW5nZWQsIENIRUNLX0FMTCk7CiAgICAgfQpAQCAtMjYw MCw3ICsyNjAwLDcgQEAgREVGVU4gKCJ0cmFuc2xhdGUtcmVnaW9uLWludGVybmFsIiwgRnRyYW5z bGF0ZV9yZWdpb25faW50ZXJuYWwsCiAJCSAgcmVjb3JkX2NoYW5nZSAocG9zLCAxKTsKIAkJICB3 aGlsZSAoc3RyX2xlbi0tID4gMCkKIAkJICAgICpwKysgPSAqc3RyKys7Ci0JCSAgc2lnbmFsX2Fm dGVyX2NoYW5nZSAocG9zLCAxLCAxKTsKKwkJICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJyZW50 X2J1ZmZlciwgcG9zLCAxLCAxKTsKIAkJICB1cGRhdGVfY29tcG9zaXRpb25zIChwb3MsIHBvcyAr IDEsIENIRUNLX0JPUkRFUik7CiAJCX0KIAkgICAgICBjaGFyYWN0ZXJzX2NoYW5nZWQrKzsKQEAg LTQ0NDUsNyArNDQ0NSw3IEBAIERFRlVOICgidHJhbnNwb3NlLXJlZ2lvbnMiLCBGdHJhbnNwb3Nl X3JlZ2lvbnMsIFN0cmFuc3Bvc2VfcmVnaW9ucywgNCwgNSwKICAgICAgIGFkanVzdF9tYXJrZXJz X2J5dGVwb3MgKHN0YXJ0MSwgc3RhcnQxX2J5dGUsIGVuZDIsIGVuZDJfYnl0ZSwgMCk7CiAgICAg fQogCi0gIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKHN0YXJ0MSwgZW5kMiAtIHN0YXJ0MSwgZW5kMiAt IHN0YXJ0MSk7CisgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKGN1cnJlbnRfYnVmZmVyLCBzdGFydDEs IGVuZDIgLSBzdGFydDEsIGVuZDIgLSBzdGFydDEpOwogICByZXR1cm4gUW5pbDsKIH0KIApkaWZm IC0tZ2l0IGEvc3JjL2ZpbGVpby5jIGIvc3JjL2ZpbGVpby5jCmluZGV4IGIxNDFmNTY4ZDcuLjA1 NmRhMmNiOWQgMTAwNjQ0Ci0tLSBhL3NyYy9maWxlaW8uYworKysgYi9zcmMvZmlsZWlvLmMKQEAg LTQ1NTUsNyArNDU1NSw3IEBAIGJlY2F1c2UgKDEpIGl0IHByZXNlcnZlcyBzb21lIG1hcmtlciBw b3NpdGlvbnMgYW5kICgyKSBpdCBwdXRzIGxlc3MgZGF0YQogICBpZiAoaW5zZXJ0ZWQgPiAwICYm IHRvdGFsID4gMAogICAgICAgJiYgKE5JTFAgKHZpc2l0KSB8fCAhTklMUCAocmVwbGFjZSkpKQog ICAgIHsKLSAgICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKFBULCAwLCBpbnNlcnRlZCk7CisgICAg ICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJyZW50X2J1ZmZlciwgUFQsIDAsIGluc2VydGVkKTsK ICAgICAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKFBULCBQVCwgQ0hFQ0tfQk9SREVSKTsKICAgICB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9mbnMuYyBiL3NyYy9mbnMuYwppbmRleCBlYWEyYzA3ZmJlLi40 YjBjMjcxYjQ2IDEwMDY0NAotLS0gYS9zcmMvZm5zLmMKKysrIGIvc3JjL2Zucy5jCkBAIC0zNTc3 LDcgKzM1NzcsNyBAQCBERUZVTiAoImJhc2U2NC1kZWNvZGUtcmVnaW9uIiwgRmJhc2U2NF9kZWNv ZGVfcmVnaW9uLCBTYmFzZTY0X2RlY29kZV9yZWdpb24sCiAgICAgIGFuZCBkZWxldGUgdGhlIG9s ZC4gIChJbnNlcnQgZmlyc3QgaW4gb3JkZXIgdG8gcHJlc2VydmUgbWFya2Vycy4pICAqLwogICBU RU1QX1NFVF9QVF9CT1RIIChYRklYTkFUIChiZWcpLCBpYmVnKTsKICAgaW5zZXJ0XzFfYm90aCAo ZGVjb2RlZCwgaW5zZXJ0ZWRfY2hhcnMsIGRlY29kZWRfbGVuZ3RoLCAwLCAxLCAwKTsKLSAgc2ln bmFsX2FmdGVyX2NoYW5nZSAoWEZJWE5BVCAoYmVnKSwgMCwgaW5zZXJ0ZWRfY2hhcnMpOworICBz aWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJyZW50X2J1ZmZlciwgWEZJWE5BVCAoYmVnKSwgMCwgaW5z ZXJ0ZWRfY2hhcnMpOwogICBTQUZFX0ZSRUUgKCk7CiAKICAgLyogRGVsZXRlIHRoZSBvcmlnaW5h bCB0ZXh0LiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnNkZWwuYyBiL3NyYy9pbnNkZWwuYwppbmRl eCA4NWZmZmQ4ZmQxLi5mOTQ5OWE2YWIzIDEwMDY0NAotLS0gYS9zcmMvaW5zZGVsLmMKKysrIGIv c3JjL2luc2RlbC5jCkBAIC02NjksNyArNjY5LDcgQEAgaW5zZXJ0IChjb25zdCBjaGFyICpzdHJp bmcsIHB0cmRpZmZfdCBuYnl0ZXMpCiAgICAgICBwdHJkaWZmX3QgbGVuID0gY2hhcnNfaW5fdGV4 dCAoKHVuc2lnbmVkIGNoYXIgKikgc3RyaW5nLCBuYnl0ZXMpLCBvcG9pbnQ7CiAgICAgICBpbnNl cnRfMV9ib3RoIChzdHJpbmcsIGxlbiwgbmJ5dGVzLCAwLCAxLCAwKTsKICAgICAgIG9wb2ludCA9 IFBUIC0gbGVuOwotICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAob3BvaW50LCAwLCBsZW4pOwor ICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoY3VycmVudF9idWZmZXIsIG9wb2ludCwgMCwgbGVu KTsKICAgICAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKG9wb2ludCwgUFQsIENIRUNLX0JPUkRFUik7 CiAgICAgfQogfQpAQCAtNjg0LDcgKzY4NCw3IEBAIGluc2VydF9hbmRfaW5oZXJpdCAoY29uc3Qg Y2hhciAqc3RyaW5nLCBwdHJkaWZmX3QgbmJ5dGVzKQogICAgICAgcHRyZGlmZl90IGxlbiA9IGNo YXJzX2luX3RleHQgKCh1bnNpZ25lZCBjaGFyICopIHN0cmluZywgbmJ5dGVzKSwgb3BvaW50Owog ICAgICAgaW5zZXJ0XzFfYm90aCAoc3RyaW5nLCBsZW4sIG5ieXRlcywgMSwgMSwgMCk7CiAgICAg ICBvcG9pbnQgPSBQVCAtIGxlbjsKLSAgICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKG9wb2ludCwg MCwgbGVuKTsKKyAgICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKGN1cnJlbnRfYnVmZmVyLCBvcG9p bnQsIDAsIGxlbik7CiAgICAgICB1cGRhdGVfY29tcG9zaXRpb25zIChvcG9pbnQsIFBULCBDSEVD S19CT1JERVIpOwogICAgIH0KIH0KQEAgLTcyOSw3ICs3MjksNyBAQCBpbnNlcnRfYmVmb3JlX21h cmtlcnMgKGNvbnN0IGNoYXIgKnN0cmluZywgcHRyZGlmZl90IG5ieXRlcykKICAgICAgIHB0cmRp ZmZfdCBsZW4gPSBjaGFyc19pbl90ZXh0ICgodW5zaWduZWQgY2hhciAqKSBzdHJpbmcsIG5ieXRl cyksIG9wb2ludDsKICAgICAgIGluc2VydF8xX2JvdGggKHN0cmluZywgbGVuLCBuYnl0ZXMsIDAs IDEsIDEpOwogICAgICAgb3BvaW50ID0gUFQgLSBsZW47Ci0gICAgICBzaWduYWxfYWZ0ZXJfY2hh bmdlIChvcG9pbnQsIDAsIGxlbik7CisgICAgICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJyZW50 X2J1ZmZlciwgb3BvaW50LCAwLCBsZW4pOwogICAgICAgdXBkYXRlX2NvbXBvc2l0aW9ucyAob3Bv aW50LCBQVCwgQ0hFQ0tfQk9SREVSKTsKICAgICB9CiB9CkBAIC03NDUsNyArNzQ1LDcgQEAgaW5z ZXJ0X2JlZm9yZV9tYXJrZXJzX2FuZF9pbmhlcml0IChjb25zdCBjaGFyICpzdHJpbmcsCiAgICAg ICBwdHJkaWZmX3QgbGVuID0gY2hhcnNfaW5fdGV4dCAoKHVuc2lnbmVkIGNoYXIgKikgc3RyaW5n LCBuYnl0ZXMpLCBvcG9pbnQ7CiAgICAgICBpbnNlcnRfMV9ib3RoIChzdHJpbmcsIGxlbiwgbmJ5 dGVzLCAxLCAxLCAxKTsKICAgICAgIG9wb2ludCA9IFBUIC0gbGVuOwotICAgICAgc2lnbmFsX2Fm dGVyX2NoYW5nZSAob3BvaW50LCAwLCBsZW4pOworICAgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAo Y3VycmVudF9idWZmZXIsIG9wb2ludCwgMCwgbGVuKTsKICAgICAgIHVwZGF0ZV9jb21wb3NpdGlv bnMgKG9wb2ludCwgUFQsIENIRUNLX0JPUkRFUik7CiAgICAgfQogfQpAQCAtOTU5LDcgKzk1OSw3 IEBAIGluc2VydF9mcm9tX3N0cmluZyAoTGlzcF9PYmplY3Qgc3RyaW5nLCBwdHJkaWZmX3QgcG9z LCBwdHJkaWZmX3QgcG9zX2J5dGUsCiAKICAgaW5zZXJ0X2Zyb21fc3RyaW5nXzEgKHN0cmluZywg cG9zLCBwb3NfYnl0ZSwgbGVuZ3RoLCBsZW5ndGhfYnl0ZSwKIAkJCWluaGVyaXQsIDApOwotICBz aWduYWxfYWZ0ZXJfY2hhbmdlIChvcG9pbnQsIDAsIFBUIC0gb3BvaW50KTsKKyAgc2lnbmFsX2Fm dGVyX2NoYW5nZSAoY3VycmVudF9idWZmZXIsIG9wb2ludCwgMCwgUFQgLSBvcG9pbnQpOwogICB1 cGRhdGVfY29tcG9zaXRpb25zIChvcG9pbnQsIFBULCBDSEVDS19CT1JERVIpOwogfQogCkBAIC05 NzksNyArOTc5LDcgQEAgaW5zZXJ0X2Zyb21fc3RyaW5nX2JlZm9yZV9tYXJrZXJzIChMaXNwX09i amVjdCBzdHJpbmcsCiAKICAgaW5zZXJ0X2Zyb21fc3RyaW5nXzEgKHN0cmluZywgcG9zLCBwb3Nf Ynl0ZSwgbGVuZ3RoLCBsZW5ndGhfYnl0ZSwKIAkJCWluaGVyaXQsIDEpOwotICBzaWduYWxfYWZ0 ZXJfY2hhbmdlIChvcG9pbnQsIDAsIFBUIC0gb3BvaW50KTsKKyAgc2lnbmFsX2FmdGVyX2NoYW5n ZSAoY3VycmVudF9idWZmZXIsIG9wb2ludCwgMCwgUFQgLSBvcG9pbnQpOwogICB1cGRhdGVfY29t cG9zaXRpb25zIChvcG9pbnQsIFBULCBDSEVDS19CT1JERVIpOwogfQogCkBAIC0xMTM1LDcgKzEx MzUsNyBAQCBpbnNlcnRfZnJvbV9idWZmZXIgKHN0cnVjdCBidWZmZXIgKmJ1ZiwKICAgcHRyZGlm Zl90IG9wb2ludCA9IFBUOwogCiAgIGluc2VydF9mcm9tX2J1ZmZlcl8xIChidWYsIGNoYXJwb3Ms IG5jaGFycywgaW5oZXJpdCk7Ci0gIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKG9wb2ludCwgMCwgUFQg LSBvcG9pbnQpOworICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJyZW50X2J1ZmZlciwgb3BvaW50 LCAwLCBQVCAtIG9wb2ludCk7CiAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKG9wb2ludCwgUFQsIENI RUNLX0JPUkRFUik7CiB9CiAKQEAgLTE1MzAsNyArMTUzMCw3IEBAIHJlcGxhY2VfcmFuZ2UgKHB0 cmRpZmZfdCBmcm9tLCBwdHJkaWZmX3QgdG8sIExpc3BfT2JqZWN0IG5ldywKICAgaWYgKGFkanVz dF9tYXRjaF9kYXRhKQogICAgIHVwZGF0ZV9zZWFyY2hfcmVncyAoZnJvbSwgdG8sIGZyb20gKyBT Q0hBUlMgKG5ldykpOwogCi0gIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKGZyb20sIG5jaGFyc19kZWws IEdQVCAtIGZyb20pOworICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChjdXJyZW50X2J1ZmZlciwgZnJv bSwgbmNoYXJzX2RlbCwgR1BUIC0gZnJvbSk7CiAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKGZyb20s IEdQVCwgQ0hFQ0tfQk9SREVSKTsKIH0KIAwKQEAgLTE2OTgsNyArMTY5OCw3IEBAIGRlbF9yYW5n ZV8xIChwdHJkaWZmX3QgZnJvbSwgcHRyZGlmZl90IHRvLCBib29sIHByZXBhcmUsIGJvb2wgcmV0 X3N0cmluZykKICAgdG9fYnl0ZSA9IENIQVJfVE9fQllURSAodG8pOwogCiAgIGRlbGV0aW9uID0g ZGVsX3JhbmdlXzIgKGZyb20sIGZyb21fYnl0ZSwgdG8sIHRvX2J5dGUsIHJldF9zdHJpbmcpOwot ICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChmcm9tLCB0byAtIGZyb20sIDApOworICBzaWduYWxfYWZ0 ZXJfY2hhbmdlIChjdXJyZW50X2J1ZmZlciwgZnJvbSwgdG8gLSBmcm9tLCAwKTsKICAgdXBkYXRl X2NvbXBvc2l0aW9ucyAoZnJvbSwgZnJvbSwgQ0hFQ0tfSEVBRCk7CiAgIHJldHVybiBkZWxldGlv bjsKIH0KQEAgLTE3NDAsNyArMTc0MCw3IEBAIGRlbF9yYW5nZV9ieXRlIChwdHJkaWZmX3QgZnJv bV9ieXRlLCBwdHJkaWZmX3QgdG9fYnl0ZSkKICAgfQogCiAgIGRlbF9yYW5nZV8yIChmcm9tLCBm cm9tX2J5dGUsIHRvLCB0b19ieXRlLCAwKTsKLSAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoZnJvbSwg dG8gLSBmcm9tLCAwKTsKKyAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoY3VycmVudF9idWZmZXIsIGZy b20sIHRvIC0gZnJvbSwgMCk7CiAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKGZyb20sIGZyb20sIENI RUNLX0hFQUQpOwogfQogCkBAIC0xNzg0LDcgKzE3ODQsNyBAQCBkZWxfcmFuZ2VfYm90aCAocHRy ZGlmZl90IGZyb20sIHB0cmRpZmZfdCBmcm9tX2J5dGUsCiAgICAgfQogCiAgIGRlbF9yYW5nZV8y IChmcm9tLCBmcm9tX2J5dGUsIHRvLCB0b19ieXRlLCAwKTsKLSAgc2lnbmFsX2FmdGVyX2NoYW5n ZSAoZnJvbSwgdG8gLSBmcm9tLCAwKTsKKyAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoY3VycmVudF9i dWZmZXIsIGZyb20sIHRvIC0gZnJvbSwgMCk7CiAgIHVwZGF0ZV9jb21wb3NpdGlvbnMgKGZyb20s IGZyb20sIENIRUNLX0hFQUQpOwogfQogCkBAIC0yMTc0LDcgKzIxNzQsOCBAQCBzaWduYWxfYmVm b3JlX2NoYW5nZSAocHRyZGlmZl90IHN0YXJ0X2ludCwgcHRyZGlmZl90IGVuZF9pbnQsCiAgICBh ZnRlciB0aGUgY2hhbmdlLiAgKi8KIAogdm9pZAotc2lnbmFsX2FmdGVyX2NoYW5nZSAocHRyZGlm Zl90IGNoYXJwb3MsIHB0cmRpZmZfdCBsZW5kZWwsIHB0cmRpZmZfdCBsZW5pbnMpCitzaWduYWxf YWZ0ZXJfY2hhbmdlIChzdHJ1Y3QgYnVmZmVyICpidWZmZXIsCisgICAgICAgICAgICAgICAgICAg ICBwdHJkaWZmX3QgY2hhcnBvcywgcHRyZGlmZl90IGxlbmRlbCwgcHRyZGlmZl90IGxlbmlucykK IHsKICAgcHRyZGlmZl90IGNvdW50ID0gU1BFQ1BETF9JTkRFWCAoKTsKICAgc3RydWN0IHJ2b2Vf YXJnIHJ2b2VfYXJnOwpAQCAtMjE4Myw2ICsyMTg0LDkgQEAgc2lnbmFsX2FmdGVyX2NoYW5nZSAo cHRyZGlmZl90IGNoYXJwb3MsIHB0cmRpZmZfdCBsZW5kZWwsIHB0cmRpZmZfdCBsZW5pbnMpCiAg IGlmIChpbmhpYml0X21vZGlmaWNhdGlvbl9ob29rcykKICAgICByZXR1cm47CiAKKyAgcmVjb3Jk X3Vud2luZF9jdXJyZW50X2J1ZmZlciAoKTsKKyAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoYnVmZmVy KTsKKwogICAvKiBJZiB3ZSBhcmUgZGVmZXJyaW5nIGNhbGxzIHRvIHRoZSBhZnRlci1jaGFuZ2Ug ZnVuY3Rpb25zCiAgICAgIGFuZCB0aGVyZSBhcmUgbm8gYmVmb3JlLWNoYW5nZSBmdW5jdGlvbnMs CiAgICAgIGp1c3QgcmVjb3JkIHRoZSBhcmdzIHRoYXQgd2Ugd2VyZSBnb2luZyB0byB1c2UuICAq LwpAQCAtMjMzOCw3ICsyMzQyLDcgQEAgREVGVU4gKCJjb21iaW5lLWFmdGVyLWNoYW5nZS1leGVj dXRlIiwgRmNvbWJpbmVfYWZ0ZXJfY2hhbmdlX2V4ZWN1dGUsCiAgICAgIFR1cm4gb2ZmIHRoZSBm bGFnIHRoYXQgZGVmZXJzIHRoZW0uICAqLwogICByZWNvcmRfdW53aW5kX3Byb3RlY3QgKEZjb21i aW5lX2FmdGVyX2NoYW5nZV9leGVjdXRlXzEsCiAJCQkgVmNvbWJpbmVfYWZ0ZXJfY2hhbmdlX2Nh bGxzKTsKLSAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoYmVncG9zLCBlbmRwb3MgLSBiZWdwb3MgLSBj aGFuZ2UsIGVuZHBvcyAtIGJlZ3Bvcyk7CisgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKGN1cnJlbnRf YnVmZmVyLCBiZWdwb3MsIGVuZHBvcyAtIGJlZ3BvcyAtIGNoYW5nZSwgZW5kcG9zIC0gYmVncG9z KTsKICAgdXBkYXRlX2NvbXBvc2l0aW9ucyAoYmVncG9zLCBlbmRwb3MsIENIRUNLX0FMTCk7CiAK ICAgcmV0dXJuIHVuYmluZF90byAoY291bnQsIFFuaWwpOwpkaWZmIC0tZ2l0IGEvc3JjL2pzb24u YyBiL3NyYy9qc29uLmMKaW5kZXggZTJhNDQyNDQ2My4uZWNiNDdmM2ZmNCAxMDA2NDQKLS0tIGEv c3JjL2pzb24uYworKysgYi9zcmMvanNvbi5jCkBAIC03ODksNyArNzg5LDcgQEAgREVGVU4gKCJq c29uLWluc2VydCIsIEZqc29uX2luc2VydCwgU2pzb25faW5zZXJ0LCAxLCBNQU5ZLAogICAgIH0K IAogICAvKiBDYWxsIGFmdGVyLWNoYW5nZSBob29rcy4gICovCi0gIHNpZ25hbF9hZnRlcl9jaGFu Z2UgKFBULCAwLCBpbnNlcnRlZCk7CisgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKGN1cnJlbnRfYnVm ZmVyLCBQVCwgMCwgaW5zZXJ0ZWQpOwogICBpZiAoaW5zZXJ0ZWQgPiAwKQogICAgIHsKICAgICAg IHVwZGF0ZV9jb21wb3NpdGlvbnMgKFBULCBQVCwgQ0hFQ0tfQk9SREVSKTsKZGlmZiAtLWdpdCBh L3NyYy9saXNwLmggYi9zcmMvbGlzcC5oCmluZGV4IDc3ZmMyMmQxMTguLmExZWQ0YTNjZTkgMTAw NjQ0Ci0tLSBhL3NyYy9saXNwLmgKKysrIGIvc3JjL2xpc3AuaApAQCAtMzY4NSw3ICszNjg1LDcg QEAgI2RlZmluZSBDT05TX1RPX0lOVEVHRVIoY29ucywgdHlwZSwgdmFyKQkJCQlcCiBleHRlcm4g dm9pZCBwcmVwYXJlX3RvX21vZGlmeV9idWZmZXIgKHB0cmRpZmZfdCwgcHRyZGlmZl90LCBwdHJk aWZmX3QgKik7CiBleHRlcm4gdm9pZCBwcmVwYXJlX3RvX21vZGlmeV9idWZmZXJfMSAocHRyZGlm Zl90LCBwdHJkaWZmX3QsIHB0cmRpZmZfdCAqKTsKIGV4dGVybiB2b2lkIGludmFsaWRhdGVfYnVm ZmVyX2NhY2hlcyAoc3RydWN0IGJ1ZmZlciAqLCBwdHJkaWZmX3QsIHB0cmRpZmZfdCk7Ci1leHRl cm4gdm9pZCBzaWduYWxfYWZ0ZXJfY2hhbmdlIChwdHJkaWZmX3QsIHB0cmRpZmZfdCwgcHRyZGlm Zl90KTsKK2V4dGVybiB2b2lkIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKHN0cnVjdCBidWZmZXIgKiwg cHRyZGlmZl90LCBwdHJkaWZmX3QsIHB0cmRpZmZfdCk7CiBleHRlcm4gdm9pZCBhZGp1c3RfYWZ0 ZXJfaW5zZXJ0IChwdHJkaWZmX3QsIHB0cmRpZmZfdCwgcHRyZGlmZl90LAogCQkJCSBwdHJkaWZm X3QsIHB0cmRpZmZfdCk7CiBleHRlcm4gdm9pZCBhZGp1c3RfbWFya2Vyc19mb3JfZGVsZXRlIChw dHJkaWZmX3QsIHB0cmRpZmZfdCwKZGlmZiAtLWdpdCBhL3NyYy9wcmludC5jIGIvc3JjL3ByaW50 LmMKaW5kZXggNDA2YWJiZjRhMy4uZTk0ZWFmMzZmOSAxMDA2NDQKLS0tIGEvc3JjL3ByaW50LmMK KysrIGIvc3JjL3ByaW50LmMKQEAgLTE3OCw3ICsxNzgsOCBAQCAjZGVmaW5lIFBSSU5URklOSVNI CQkJCQkJCVwKICAgICAgICBlbHNlCQkJCQkJCQlcCiAJIGluc2VydF8xX2JvdGggKHByaW50X2J1 ZmZlciwgcHJpbnRfYnVmZmVyX3BvcywJCQlcCiAJCQlwcmludF9idWZmZXJfcG9zX2J5dGUsIDAs IDEsIDApOwkJXAotICAgICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKFBUIC0gcHJpbnRfYnVmZmVy X3BvcywgMCwgcHJpbnRfYnVmZmVyX3Bvcyk7XAorICAgICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2Ug KGN1cnJlbnRfYnVmZmVyLCBQVCAtIHByaW50X2J1ZmZlcl9wb3MsICAgICAgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDAsIHByaW50X2J1ZmZlcl9wb3MpOyAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICB9CQkJCQkJCQkJXAogICAgaWYgKGZyZWVfcHJpbnRfYnVmZmVyKQkJCQkJ CVwKICAgICAgewkJCQkJCQkJCVwKZGlmZiAtLWdpdCBhL3NyYy90ZXh0cHJvcC5jIGIvc3JjL3Rl eHRwcm9wLmMKaW5kZXggYWU0MmM0NDE4NS4uMjkzYWMwMmQ5YyAxMDA2NDQKLS0tIGEvc3JjL3Rl eHRwcm9wLmMKKysrIGIvc3JjL3RleHRwcm9wLmMKQEAgLTEyMTUsNyArMTIxNSw3IEBAIGFkZF90 ZXh0X3Byb3BlcnRpZXNfMSAoTGlzcF9PYmplY3Qgc3RhcnQsIExpc3BfT2JqZWN0IGVuZCwKIAkg IGlmIChpbnRlcnZhbF9oYXNfYWxsX3Byb3BlcnRpZXMgKHByb3BlcnRpZXMsIGkpKQogCSAgICB7 CiAJICAgICAgaWYgKEJVRkZFUlAgKG9iamVjdCkpCi0JCXNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhG SVhOVU0gKHN0YXJ0KSwgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSwKKwkJc2lnbmFs X2FmdGVyX2NoYW5nZSAoWEJVRkZFUiAob2JqZWN0KSwgWEZJWE5VTSAoc3RhcnQpLCBYRklYTlVN IChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpLAogCQkJCSAgICAgWEZJWE5VTSAoZW5kKSAtIFhGSVhO VU0gKHN0YXJ0KSk7CiAKIAkgICAgICBlYXNzZXJ0IChtb2RpZmllZCk7CkBAIC0xMjI2LDcgKzEy MjYsNyBAQCBhZGRfdGV4dF9wcm9wZXJ0aWVzXzEgKExpc3BfT2JqZWN0IHN0YXJ0LCBMaXNwX09i amVjdCBlbmQsCiAJICAgIHsKIAkgICAgICBhZGRfcHJvcGVydGllcyAocHJvcGVydGllcywgaSwg b2JqZWN0LCBzZXRfdHlwZSk7CiAJICAgICAgaWYgKEJVRkZFUlAgKG9iamVjdCkpCi0JCXNpZ25h bF9hZnRlcl9jaGFuZ2UgKFhGSVhOVU0gKHN0YXJ0KSwgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0g KHN0YXJ0KSwKKwkJc2lnbmFsX2FmdGVyX2NoYW5nZSAoWEJVRkZFUiAob2JqZWN0KSwgWEZJWE5V TSAoc3RhcnQpLCBYRklYTlVNIChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpLAogCQkJCSAgICAgWEZJ WE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSk7CiAJICAgICAgcmV0dXJuIFF0OwogCSAgICB9 CkBAIC0xMjM3LDcgKzEyMzcsNyBAQCBhZGRfdGV4dF9wcm9wZXJ0aWVzXzEgKExpc3BfT2JqZWN0 IHN0YXJ0LCBMaXNwX09iamVjdCBlbmQsCiAJICBjb3B5X3Byb3BlcnRpZXMgKHVuY2hhbmdlZCwg aSk7CiAJICBhZGRfcHJvcGVydGllcyAocHJvcGVydGllcywgaSwgb2JqZWN0LCBzZXRfdHlwZSk7 CiAJICBpZiAoQlVGRkVSUCAob2JqZWN0KSkKLQkgICAgc2lnbmFsX2FmdGVyX2NoYW5nZSAoWEZJ WE5VTSAoc3RhcnQpLCBYRklYTlVNIChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpLAorCSAgICBzaWdu YWxfYWZ0ZXJfY2hhbmdlIChYQlVGRkVSIChvYmplY3QpLCBYRklYTlVNIChzdGFydCksIFhGSVhO VU0gKGVuZCkgLSBYRklYTlVNIChzdGFydCksCiAJCQkJIFhGSVhOVU0gKGVuZCkgLSBYRklYTlVN IChzdGFydCkpOwogCSAgcmV0dXJuIFF0OwogCX0KQEAgLTEzOTgsNyArMTM5OCw3IEBAIHNldF90 ZXh0X3Byb3BlcnRpZXMgKExpc3BfT2JqZWN0IHN0YXJ0LCBMaXNwX09iamVjdCBlbmQsIExpc3Bf T2JqZWN0IHByb3BlcnRpZXMsCiAgIHNldF90ZXh0X3Byb3BlcnRpZXNfMSAoc3RhcnQsIGVuZCwg cHJvcGVydGllcywgb2JqZWN0LCBpKTsKIAogICBpZiAoQlVGRkVSUCAob2JqZWN0KSAmJiAhTklM UCAoY29oZXJlbnRfY2hhbmdlX3ApKQotICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhGSVhOVU0g KHN0YXJ0KSwgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSwKKyAgICBzaWduYWxfYWZ0 ZXJfY2hhbmdlIChYQlVGRkVSIChvYmplY3QpLCBYRklYTlVNIChzdGFydCksIFhGSVhOVU0gKGVu ZCkgLSBYRklYTlVNIChzdGFydCksCiAJCQkgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0 KSk7CiAgIHJldHVybiBRdDsKIH0KQEAgLTE1NjUsNyArMTU2NSw3IEBAIERFRlVOICgicmVtb3Zl LXRleHQtcHJvcGVydGllcyIsIEZyZW1vdmVfdGV4dF9wcm9wZXJ0aWVzLAogCSAgICB7CiAJICAg ICAgZWFzc2VydCAobW9kaWZpZWQpOwogCSAgICAgIGlmIChCVUZGRVJQIChvYmplY3QpKQotCQlz aWduYWxfYWZ0ZXJfY2hhbmdlIChYRklYTlVNIChzdGFydCksIFhGSVhOVU0gKGVuZCkgLSBYRklY TlVNIChzdGFydCksCisJCXNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhCVUZGRVIgKG9iamVjdCksIFhG SVhOVU0gKHN0YXJ0KSwgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSwKIAkJCQkgICAg IFhGSVhOVU0gKGVuZCkgLSBYRklYTlVNIChzdGFydCkpOwogCSAgICAgIHJldHVybiBRdDsKIAkg ICAgfQpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgREVGVU4gKCJyZW1vdmUtdGV4dC1wcm9wZXJ0aWVz IiwgRnJlbW92ZV90ZXh0X3Byb3BlcnRpZXMsCiAJICAgIHsKIAkgICAgICByZW1vdmVfcHJvcGVy dGllcyAocHJvcGVydGllcywgUW5pbCwgaSwgb2JqZWN0KTsKIAkgICAgICBpZiAoQlVGRkVSUCAo b2JqZWN0KSkKLQkJc2lnbmFsX2FmdGVyX2NoYW5nZSAoWEZJWE5VTSAoc3RhcnQpLCBYRklYTlVN IChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpLAorCQlzaWduYWxfYWZ0ZXJfY2hhbmdlIChYQlVGRkVS IChvYmplY3QpLCBYRklYTlVNIChzdGFydCksIFhGSVhOVU0gKGVuZCkgLSBYRklYTlVNIChzdGFy dCksCiAJCQkJICAgICBYRklYTlVNIChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpKTsKIAkgICAgICBy ZXR1cm4gUXQ7CiAJICAgIH0KQEAgLTE1ODUsNyArMTU4NSw3IEBAIERFRlVOICgicmVtb3ZlLXRl eHQtcHJvcGVydGllcyIsIEZyZW1vdmVfdGV4dF9wcm9wZXJ0aWVzLAogCSAgY29weV9wcm9wZXJ0 aWVzICh1bmNoYW5nZWQsIGkpOwogCSAgcmVtb3ZlX3Byb3BlcnRpZXMgKHByb3BlcnRpZXMsIFFu aWwsIGksIG9iamVjdCk7CiAJICBpZiAoQlVGRkVSUCAob2JqZWN0KSkKLQkgICAgc2lnbmFsX2Fm dGVyX2NoYW5nZSAoWEZJWE5VTSAoc3RhcnQpLCBYRklYTlVNIChlbmQpIC0gWEZJWE5VTSAoc3Rh cnQpLAorCSAgICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChYQlVGRkVSIChvYmplY3QpLCBYRklYTlVN IChzdGFydCksIFhGSVhOVU0gKGVuZCkgLSBYRklYTlVNIChzdGFydCksCiAJCQkJIFhGSVhOVU0g KGVuZCkgLSBYRklYTlVNIChzdGFydCkpOwogCSAgcmV0dXJuIFF0OwogCX0KQEAgLTE2NjMsNyAr MTY2Myw3IEBAIERFRlVOICgicmVtb3ZlLWxpc3Qtb2YtdGV4dC1wcm9wZXJ0aWVzIiwgRnJlbW92 ZV9saXN0X29mX3RleHRfcHJvcGVydGllcywKIAkgICAgICBpZiAobW9kaWZpZWQpCiAJCXsKIAkJ ICBpZiAoQlVGRkVSUCAob2JqZWN0KSkKLQkJICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhGSVhO VU0gKHN0YXJ0KSwKKwkJICAgIHNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhCVUZGRVIgKG9iamVjdCks IFhGSVhOVU0gKHN0YXJ0KSwKIAkJCQkJIFhGSVhOVU0gKGVuZCkgLSBYRklYTlVNIChzdGFydCks CiAJCQkJCSBYRklYTlVNIChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpKTsKIAkJICByZXR1cm4gUXQ7 CkBAIC0xNjc3LDcgKzE2NzcsNyBAQCBERUZVTiAoInJlbW92ZS1saXN0LW9mLXRleHQtcHJvcGVy dGllcyIsIEZyZW1vdmVfbGlzdF9vZl90ZXh0X3Byb3BlcnRpZXMsCiAJCW1vZGlmeV90ZXh0X3By b3BlcnRpZXMgKG9iamVjdCwgc3RhcnQsIGVuZCk7CiAJICAgICAgcmVtb3ZlX3Byb3BlcnRpZXMg KFFuaWwsIHByb3BlcnRpZXMsIGksIG9iamVjdCk7CiAJICAgICAgaWYgKEJVRkZFUlAgKG9iamVj dCkpCi0JCXNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhGSVhOVU0gKHN0YXJ0KSwgWEZJWE5VTSAoZW5k KSAtIFhGSVhOVU0gKHN0YXJ0KSwKKwkJc2lnbmFsX2FmdGVyX2NoYW5nZSAoWEJVRkZFUiAob2Jq ZWN0KSwgWEZJWE5VTSAoc3RhcnQpLCBYRklYTlVNIChlbmQpIC0gWEZJWE5VTSAoc3RhcnQpLAog CQkJCSAgICAgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSk7CiAJICAgICAgcmV0dXJu IFF0OwogCSAgICB9CkBAIC0xNjkwLDcgKzE2OTAsNyBAQCBERUZVTiAoInJlbW92ZS1saXN0LW9m LXRleHQtcHJvcGVydGllcyIsIEZyZW1vdmVfbGlzdF9vZl90ZXh0X3Byb3BlcnRpZXMsCiAJCW1v ZGlmeV90ZXh0X3Byb3BlcnRpZXMgKG9iamVjdCwgc3RhcnQsIGVuZCk7CiAJICAgICAgcmVtb3Zl X3Byb3BlcnRpZXMgKFFuaWwsIHByb3BlcnRpZXMsIGksIG9iamVjdCk7CiAJICAgICAgaWYgKEJV RkZFUlAgKG9iamVjdCkpCi0JCXNpZ25hbF9hZnRlcl9jaGFuZ2UgKFhGSVhOVU0gKHN0YXJ0KSwg WEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSwKKwkJc2lnbmFsX2FmdGVyX2NoYW5nZSAo WEJVRkZFUiAob2JqZWN0KSwgWEZJWE5VTSAoc3RhcnQpLCBYRklYTlVNIChlbmQpIC0gWEZJWE5V TSAoc3RhcnQpLAogCQkJCSAgICAgWEZJWE5VTSAoZW5kKSAtIFhGSVhOVU0gKHN0YXJ0KSk7CiAJ ICAgICAgcmV0dXJuIFF0OwogCSAgICB9CkBAIC0xNzA5LDcgKzE3MDksNyBAQCBERUZVTiAoInJl bW92ZS1saXN0LW9mLXRleHQtcHJvcGVydGllcyIsIEZyZW1vdmVfbGlzdF9vZl90ZXh0X3Byb3Bl cnRpZXMsCiAgICAgICAgICAgaWYgKG1vZGlmaWVkKQogICAgICAgICAgICAgewogICAgICAgICAg ICAgICBpZiAoQlVGRkVSUCAob2JqZWN0KSkKLSAgICAgICAgICAgICAgICBzaWduYWxfYWZ0ZXJf Y2hhbmdlIChYRklYTlVNIChzdGFydCksCisgICAgICAgICAgICAgICAgc2lnbmFsX2FmdGVyX2No YW5nZSAoWEJVRkZFUiAob2JqZWN0KSwgWEZJWE5VTSAoc3RhcnQpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFhGSVhOVU0gKGVuZCkgLSBYRklYTlVNIChzdGFydCksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWEZJWE5VTSAoZW5kKSAtIFhGSVhO VU0gKHN0YXJ0KSk7CiAgICAgICAgICAgICAgIHJldHVybiBRdDsKLS0gCjIuMjAuMQoK --000000000000a3d7dc058b38fb88--