From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jashank Jeremy Newsgroups: gmane.emacs.bugs Subject: bug#41200: Displaying a tooltip with x-show-tip gets very slow as more faces are defined Date: Tue, 06 Apr 2021 16:35:28 +1000 Message-ID: <87tuojhqdr.wl-jashank@rulingia.com.au> References: <8fd8896a-cd5c-66f4-4792-f65cac4dc4f5@gmail.com> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/signed; boundary="pgp-sign-Multipart_Tue_Apr__6_16:35:26_2021-1"; micalg=pgp-sha256; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32301"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?Q?Goj=C5=8D?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/28.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Cc: =?UTF-8?Q?Cl=C3=A9ment?= Pit-Claudel To: Emacs bug41200 <41200@debbugs.gnu.org> Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Apr 06 12:25:53 2021 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 1lTiu8-0008Eb-11 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 06 Apr 2021 12:25:52 +0200 Original-Received: from localhost ([::1]:50708 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lTiu6-0005C6-IR for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 06 Apr 2021 06:25:50 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60338) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lTitM-0005Bt-Th for bug-gnu-emacs@gnu.org; Tue, 06 Apr 2021 06:25:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55988) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lTitK-0004oy-Vx for bug-gnu-emacs@gnu.org; Tue, 06 Apr 2021 06:25:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lTitK-0004Wj-IT for bug-gnu-emacs@gnu.org; Tue, 06 Apr 2021 06:25:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <8fd8896a-cd5c-66f4-4792-f65cac4dc4f5@gmail.com> Resent-From: Jashank Jeremy Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 06 Apr 2021 10:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41200 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 41200-submit@debbugs.gnu.org id=B41200.161770469717332 (code B ref 41200); Tue, 06 Apr 2021 10:25:02 +0000 Original-Received: (at 41200) by debbugs.gnu.org; 6 Apr 2021 10:24:57 +0000 Original-Received: from localhost ([127.0.0.1]:39276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTitC-0004VR-QP for submit@debbugs.gnu.org; Tue, 06 Apr 2021 06:24:57 -0400 Original-Received: from emeralfel.rulingia.com.au ([52.64.96.81]:51935 helo=fort.rulingia.com.au) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lTfJE-0004jb-7v for 41200@debbugs.gnu.org; Tue, 06 Apr 2021 02:35:36 -0400 Original-Received: from alyzon.rulingia.com.au (ppp59-167-172-93.static.internode.on.net [59.167.172.93]) by fort.rulingia.com.au (Postfix) with ESMTPSA id 20E61211138; Tue, 6 Apr 2021 16:35:29 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rulingia.com.au; s=mail; t=1617690929; bh=2hz8bbh6kY7i8/OE9B2lRtb9HjYf53TgC5ry31Lhj1o=; h=Date:From:To:Cc:Subject; b=kqIR/CVx9yOFZdnvtZvxwubzLgiUEZ/i77gA+/QvpPBEo8M5QrIvF8yQhjvY/K0rd Rr08JGwHzR3oAwh3spExb9fwA3euCY/j2nTW9W3P5+NUOYaW4S1tBv2Zcl9Q3rHEnw kMcCaaxDZ1vU5Er0S5OJJfyr/wAarq/oH7iIKCyY= Original-Received: from lisbon.rulingia.com.au. (lisbon.rulingia.com.au [192.168.5.76]) by alyzon.rulingia.com.au (Postfix) with ESMTPA id 0276789688; Tue, 6 Apr 2021 16:35:29 +1000 (AEST) X-Mailman-Approved-At: Tue, 06 Apr 2021 06:24:53 -0400 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:203623 Archived-At: --pgp-sign-Multipart_Tue_Apr__6_16:35:26_2021-1 Content-Type: multipart/mixed; boundary="Multipart_Tue_Apr__6_16:35:26_2021-1" --Multipart_Tue_Apr__6_16:35:26_2021-1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello, I have updated this patch to make it compile and behave on Emacs master at 1d93540371aadec8f877bd781267d38d411c40a0 (current a few hours ago). The updated patch is attached. I queried Cl=E9ment, who has ok'd my shepherding this patch along. CPU profile data I've gathered suggests this change has almost entirely stamped out the face-related hot-spots I'd seen previously. Hooray! Cheers, ~jashank --=20 Jashank Jeremy WWW jashankj.space pgp FE4D6AA8 3736591C FAD30D97 DCE96CF5 8D931E04 --Multipart_Tue_Apr__6_16:35:26_2021-1 Content-Type: text/x-patch; type=patch; name="0001-Store-frame-faces-in-hash-tables-instead-of-alists-V9.patch"; charset=UTF-8 Content-Disposition: attachment; filename="0001-Store-frame-faces-in-hash-tables-instead-of-alists-V9.patch" Content-Transfer-Encoding: base64 RnJvbSA3OTU4NmIzZWExMTAwYTBmOGNhNTBiZThiNGRkNjI2ODQ1NTg0MDhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Q2w9QzM9QTltZW50PTIwUGl0LUNsYXVkZWw/ PSA8Y2xlbWVudC5waXRjbGF1ZGVsQGxpdmUuY29tPgpEYXRlOiBUdWUsIDEyIE1heSAyMDIwIDIx OjQ4OjMyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gU3RvcmUgZnJhbWUgZmFjZXMgaW4gaGFzaCB0 YWJsZXMgaW5zdGVhZCBvZiBhbGlzdHMKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQK Ciogc3JjL2ZyYW1lLmggKHN0cnVjdCBmcmFtZSk6IEFkZCBmYWNlX2hhc2hfdGFibGUsIHJlbW92 ZSBmYWNlX2FsaXN0LgooZnNldF9mYWNlX2hhc2hfdGFibGUpOiBOZXcgZnVuY3Rpb24uCihmc2V0 X2ZhY2VfYWxpc3QpOiBSZW1vdmUuCiogc3JjL2ZyYW1lLmMgKG1ha2VfZnJhbWUpOiBJbml0aWFs aXplIGYtPmZhY2VfaGFzaF90YWJsZS4KKEZtYWtlX3Rlcm1pbmFsX2ZyYW1lKTogVXBkYXRlIHRv IHdvcmsgd2l0aCBoYXNoIHRhYmxlcyBpbnN0ZWFkIG9mCmFsaXN0cy4KKiBzcmMveGZhY2VzLmMg KGxmYWNlX2Zyb21fZmFjZV9uYW1lX25vX3Jlc29sdmUpOgooRmludGVybmFsX21ha2VfbGlzcF9m YWNlKToKKHVwZGF0ZV9mYWNlX2Zyb21fZnJhbWVfcGFyYW1ldGVyKTogVXBkYXRlIHRvIHdvcmsg d2l0aCBoYXNoIHRhYmxlcwppbnN0ZWFkIG9mIGFsaXN0cy4KKEZmcmFtZV9mYWNlX2hhc2hfdGFi bGUpOiBOZXcgZnVuY3Rpb24uCihGZnJhbWVfZmFjZV9hbGlzdCk6IE1vdmUgdG8gZmFjZXMuZWwg YXMgZnJhbWUtZmFjZS1hbGlzdC4KKHN5bXNfb2ZfeGZhY2VzKTogQWRkIGZyYW1lX2ZhY2VfaGFz aF90YWJsZS4KCiogbGlzcC9wcm9nbW9kZXMvZWxpc3AtbW9kZS5lbCAoZWxpc3AtLWV2YWwtZGVm dW4tMSk6CiogbGlzcC9mcmFtZS5lbCAoZnJhbWUtc2V0LWJhY2tncm91bmQtbW9kZSk6IFVwZGF0 ZSB0byB3b3JrIHdpdGggaGFzaAp0YWJsZXMgaW5zdGVhZCBvZiBhbGlzdHMuCiogbGlzcC9mYWNl cy5lbCAoZmFjZS1uZXctZnJhbWUtZGVmYXVsdHMpOiBNYXJrIG9ic29sZXRlLgooZmFjZS1saXN0 KTogVXBkYXRlIHRvIHVzZSBmYWNlLS1uZXctZnJhbWUtZGVmYXVsdHMuCihmcmFtZS1mYWNlLWFs aXN0KTogTW92ZWQgaGVyZSBmcm9tIHNyYy94ZmFjZXMuYy4KKHgtY3JlYXRlLWZyYW1lLXdpdGgt ZmFjZXMpOiBVcGRhdGUgdG8gaGFuZGxlIHN1YnRsZSBzZW1hbnRpYyBjaGFuZ2UKdG8gaG93IGZy YW1lIGZhY2VzIHByb3BhZ2F0ZSwgd2hpY2ggb3RoZXJ3aXNlIGJyZWFrcyBmcmFtZSBjcmVhdGlv bgp3aXRoIHJldmVyc2UgdmlkZW8gZW5hYmxlZC4KCjs7IFBhdGNoIGhpc3Rvcnk6Cjs7Cjs7IFYx ICgyMDIwLTA1LTEyIDIyOjQxOjI0IC0wNDAwKSwgKEJ1ZyM0MTIwMCkgbWVzc2FnZSAyOS4KOzsg ICBBdXRob3JlZC1ieTogQ2zDqW1lbnQgUGl0LUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbCA8 YXQ+IGxpdmUuY29tPgo7Owo7OyBWMiAoMjAyMC0wNS0xMyAxMToxMzoyNyAtMDQwMCksIChCdWcj NDEyMDApIG1lc3NhZ2UgMzguCjs7ICAgRml4ZXMgY29tcGlsYXRpb24gZXJyb3IuCjs7ICAgUmVw b3J0ZWQtYnk6IG1hcnRpbiBydWRhbGljcyA8cnVkYWxpY3MgPGF0PiBnbXguYXQ+Cjs7ICAgQXV0 aG9yZWQtYnk6IENsw6ltZW50IFBpdC1DbGF1ZGVsIDxjbGVtZW50LnBpdGNsYXVkZWwgPGF0PiBs aXZlLmNvbT4KOzsKOzsgVjMgKDIwMjAtMDUtMTUgMTA6NTk6MzYgLTA0MDApLCAoQnVnIzQxMjAw KSBtZXNzYWdlIDU1Lgo7OyAgIEFtZW5kbWVudHMgdG8gcmVzb2x2ZSBpc3N1ZXMgcmFpc2VkIG9y IHJlc29sdmVkIGJ5IEVsaVouCjs7ICAgKiBDb2RlLXN0eWxlIGNsZWFudXAuCjs7ICAgKiBSZW5h bWUgYGZhY2VfaGFzaCcgdG8gYGZhY2VfbWFwJy4KOzsgICBTdWdnZXN0ZWQtYnk6IEVsaSBaYXJl dHNraWkgPGVsaXogPGF0PiBnbnUub3JnPgo7OyAgIEF1dGhvcmVkLWJ5OiBDbMOpbWVudCBQaXQt Q2xhdWRlbCA8Y2xlbWVudC5waXRjbGF1ZGVsIDxhdD4gbGl2ZS5jb20+Cjs7Cjs7IFY0ICgyMDIw LTA1LTE1IDE0OjUwOjE3IC0wNDAwKSwgKEJ1ZyM0MTIwMCkgbWVzc2FnZSA3MC4KOzsgICAqIFNl dHRsZSBvbiBuYW1lIGBmYWNlX2hhc2hfdGFibGUnLgo7OyAgICogUmVuYW1lIGBmYWNlLW5ldy1m cmFtZS1kZWZhdWx0cycgdG8gYGZhY2UtLW5ldy1mcmFtZS1kZWZhdWx0cycuCjs7ICAgKiBBbGxv dyBtdWx0aXBsZSB2YXJpYW50cyBvZiBhIGZhY2UgdG8gZXhpc3QuCjs7ICAgU3VnZ2VzdGVkLWJ5 OiBFbGkgWmFyZXRza2lpIDxlbGl6IDxhdD4gZ251Lm9yZz4KOzsgICBBdXRob3JlZC1ieTogQ2zD qW1lbnQgUGl0LUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbCA8YXQ+IGxpdmUuY29tPgo7Owo7 OyBWNSAoMjAyMC0wNS0xNSAxNDo1MDoxNyAtMDQwMCksIChCdWcjNDEyMDApIG1lc3NhZ2UgODUu Cjs7ICAgTG93ZXIgdGhlIHNpemUgb2YgYGZhY2UtLW5ldy1mcmFtZS1kZWZhdWx0cycuCjs7ICAg U3VnZ2VzdGVkLWJ5OiBFbGkgWmFyZXRza2lpIDxlbGl6IDxhdD4gZ251Lm9yZz4KOzsgICBBdXRo b3JlZC1ieTogQ2zDqW1lbnQgUGl0LUNsYXVkZWwgPGNsZW1lbnQucGl0Y2xhdWRlbCA8YXQ+IGxp dmUuY29tPgo7Owo7OyBWNiAoMjAyMS0wNC0wNSAxNzoxMDo1NSArMTAwMCkuCjs7ICAgUmViYXNl IG9udG8gbWFzdGVyOyBtb3ZlIGh1bmtzIGFyb3VuZC4KOzsgICAqIENoYW5nZXMgdG8gYGVkZWJ1 Zy5lbCcgZHJvcHBlZC4KOzsgICBBdXRob3JlZC1ieTogSmFzaGFuayBKZXJlbXkgPGphc2hhbmsg PGF0PiBydWxpbmdpYS5jb20uYXU+Cjs7Cjs7IFY3ICgyMDIxLTA0LTA2IDEyOjMxOjU1ICsxMDAw KS4KOzsgICBGaXggYGZyYW1lLWZhY2UtYWxpc3QnIHRvIGNvcGUgd2l0aCBjaGFuZ2VzIGZyb20g VjQuCjs7ICAgQXV0aG9yZWQtYnk6IEphc2hhbmsgSmVyZW15IDxqYXNoYW5rIDxhdD4gcnVsaW5n aWEuY29tLmF1Pgo7Owo7OyBWOCAoMjAyMS0wNC0wNiAxMzoxMzozMyArMTAwMCkuCjs7ICAgVGhl cmUgaXMgYSBzdWJ0bGUgY2hhbmdlIHRvIGZhY2UgcHJvcGFnYXRpb24gc2VtYW50aWNzIGF0IGZh Y2UKOzsgICBjcmVhdGlvbiB0aW1lLCB3aGljaCBzdG9wcyBmYWNlIGZyYW1lIGNyZWF0aW9uIHdv cmtpbmcgYXQgYWxsCjs7ICAgb25seSBpZiByZXZlcnNlIHZpZGVvIGlzIGVuYWJsZWQuCjs7ICAg QXV0aG9yZWQtYnk6IEphc2hhbmsgSmVyZW15IDxqYXNoYW5rIDxhdD4gcnVsaW5naWEuY29tLmF1 Pgo7Owo7OyBWOSAoMjAyMS0wNC0wNiAxNjoxNzo1MyArMTAwMCkuCjs7ICAgQ29ycmVjdCBhcmd1 bWVudCBvcmRlciBvZiBgcmVtaGFzaCcgaW4gYGVsaXNwLW1vZGUuZWwnLgo7OyAgIFJlcG9ydGVk LWJ5OiBCZW5zb24gQ2h1IDxiZW5zb25jaHU0NTcgPGF0PiBnbWFpbC5jb20+Cjs7ICAgQXV0aG9y ZWQtYnk6IEphc2hhbmsgSmVyZW15IDxqYXNoYW5rIDxhdD4gcnVsaW5naWEuY29tLmF1PgotLS0K IGxpc3AvY3VzdG9tLmVsICAgICAgICAgICAgICAgfCAgMiArLQogbGlzcC9mYWNlcy5lbCAgICAg ICAgICAgICAgICB8IDI3ICsrKysrKysrKystLQogbGlzcC9mcmFtZS5lbCAgICAgICAgICAgICAg ICB8ICAyICstCiBsaXNwL3Byb2dtb2Rlcy9lbGlzcC1tb2RlLmVsIHwgIDMgKy0KIHNyYy9mcmFt ZS5jICAgICAgICAgICAgICAgICAgfCAyMCArKysrKystLS0KIHNyYy9mcmFtZS5oICAgICAgICAg ICAgICAgICAgfCAgOCArKy0tCiBzcmMveGZhY2VzLmMgICAgICAgICAgICAgICAgIHwgODMgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDg2IGlu c2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvY3VzdG9tLmVs IGIvbGlzcC9jdXN0b20uZWwKaW5kZXggODVlNWQ2NWZmYi4uNWIwNzFlZjMxMSAxMDA2NDQKLS0t IGEvbGlzcC9jdXN0b20uZWwKKysrIGIvbGlzcC9jdXN0b20uZWwKQEAgLTkwNiw3ICs5MDYsNyBA QCBjdXN0b20tcHVzaC10aGVtZQogCSAgOzsgdGhlIHZhbHVlIHRvIGEgZmFrZSB0aGVtZSwgYGNo YW5nZWQnLiAgSWYgdGhlIHRoZW1lIGlzCiAJICA7OyBsYXRlciBkaXNhYmxlZCwgd2UgdXNlIHRo aXMgdG8gYnJpbmcgYmFjayB0aGUgb2xkIHZhbHVlLgogCSAgOzsKLQkgIDs7IEZvciBmYWNlcywg d2UganVzdCB1c2UgYGZhY2UtbmV3LWZyYW1lLWRlZmF1bHRzJyB0bworCSAgOzsgRm9yIGZhY2Vz LCB3ZSBqdXN0IHVzZSBgZmFjZS0tbmV3LWZyYW1lLWRlZmF1bHRzJyB0bwogCSAgOzsgcmVjb21w dXRlIHdoZW4gdGhlIHRoZW1lIGlzIGRpc2FibGVkLgogCSAgKHdoZW4gKGFuZCAoZXEgcHJvcCAn dGhlbWUtdmFsdWUpCiAJCSAgICAgKGJvdW5kcCBzeW1ib2wpKQpkaWZmIC0tZ2l0IGEvbGlzcC9m YWNlcy5lbCBiL2xpc3AvZmFjZXMuZWwKaW5kZXggNDJmNGNkZGZiMS4uMjEyN2I5MGM4NiAxMDA2 NDQKLS0tIGEvbGlzcC9mYWNlcy5lbAorKysgYi9saXNwL2ZhY2VzLmVsCkBAIC0xNzYsMTAgKzE3 NiwyOSBAQCBmYWNlLWZvbnQtcmVnaXN0cnktYWx0ZXJuYXRpdmVzCiA7OzsgQ3JlYXRpb24sIGNv cHlpbmcuCiA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKIAorKG1ha2Utb2Jzb2xldGUtdmFyaWFibGUKKyAnZmFj ZS1uZXctZnJhbWUtZGVmYXVsdHMKKyAidXNlIGBmYWNlLS1uZXctZnJhbWUtZGVmYXVsdHMnIG9y IGBmYWNlLWFsaXN0JyBpbnN0ZWFkLiIKKyAiMjguMSIpCisKKyhkZWZ1biBmcmFtZS1mYWNlLWFs aXN0ICgmb3B0aW9uYWwgZnJhbWUpCisgICJSZXR1cm4gYW4gYWxpc3Qgb2YgZnJhbWUtbG9jYWwg ZmFjZXMgZGVmaW5lZCBvbiBGUkFNRS4KK1RoaXMgYWxpc3QgaXMgYSBjb3B5IG9mIHRoZSBjb250 ZW50cyBvZiBgZnJhbWUtLWZhY2UtaGFzaC10YWJsZScuCitGb3IgaW50ZXJuYWwgdXNlIG9ubHku IgorICAoZGVjbGFyZSAob2Jzb2xldGUgZnJhbWUtLWZhY2UtaGFzaC10YWJsZSAiMjguMSIpKQor ICAobGV0ICgoZmFjZXMpKQorICAgIChtYXBoYXNoIChsYW1iZGEgKGZhY2Ugc3BlYykKKyAgICAg ICAgICAgICAgIChsZXQgKChmYWNlLWlkICAoY2FyIChnZXRoYXNoIGZhY2UgZmFjZS0tbmV3LWZy YW1lLWRlZmF1bHRzKSkpKQorICAgICAgICAgICAgICAgICAocHVzaCBgKCxmYWNlLWlkICxmYWNl IC4gLHNwZWMpIGZhY2VzKSkpCisgICAgICAgICAgICAgKGZyYW1lLS1mYWNlLWhhc2gtdGFibGUg ZnJhbWUpKQorICAgIChtYXBjYXIgIydjZHIgKHNvcnQgZmFjZXMgKGxhbWJkYSAoZjEgZjIpICg8 IChjYXIgZjEpIChjYXIgZjIpKSkpKSkpCiAKIChkZWZ1biBmYWNlLWxpc3QgKCkKICAgIlJldHVy biBhIGxpc3Qgb2YgYWxsIGRlZmluZWQgZmFjZXMuIgotICAobWFwY2FyICMnY2FyIGZhY2UtbmV3 LWZyYW1lLWRlZmF1bHRzKSkKKyAgKGxldCAoKGZhY2VzKSkKKyAgICAobWFwaGFzaCAobGFtYmRh IChmYWNlIHNwZWMpIChwdXNoIGAoLChjYXIgc3BlYykgLiAsZmFjZSkgZmFjZXMpKQorICAgICAg ICAgICAgIGZhY2UtLW5ldy1mcmFtZS1kZWZhdWx0cykKKyAgICAobWFwY2FyICMnY2RyIChzb3J0 IGZhY2VzIChsYW1iZGEgKGYxIGYyKSAoPCAoY2FyIGYxKSAoY2FyIGYyKSkpKSkpKQogCiAoZGVm dW4gbWFrZS1mYWNlIChmYWNlKQogICAiRGVmaW5lIGEgbmV3IGZhY2Ugd2l0aCBuYW1lIEZBQ0Us IGEgc3ltYm9sLgpAQCAtMjExNSw5ICsyMTM0LDkgQEAgeC1jcmVhdGUtZnJhbWUtd2l0aC1mYWNl cwogICAgICh1bndpbmQtcHJvdGVjdAogCShwcm9nbgogCSAgKHgtc2V0dXAtZnVuY3Rpb24ta2V5 cyBmcmFtZSkKKwkgIChmYWNlLXNldC1hZnRlci1mcmFtZS1kZWZhdWx0IGZyYW1lIHBhcmFtZXRl cnMpCiAJICAoeC1oYW5kbGUtcmV2ZXJzZS12aWRlbyBmcmFtZSBwYXJhbWV0ZXJzKQogCSAgKGZy YW1lLXNldC1iYWNrZ3JvdW5kLW1vZGUgZnJhbWUgdCkKLQkgIChmYWNlLXNldC1hZnRlci1mcmFt ZS1kZWZhdWx0IGZyYW1lIHBhcmFtZXRlcnMpCiAJICAoaWYgKG51bGwgdmlzaWJpbGl0eS1zcGVj KQogCSAgICAgIChtYWtlLWZyYW1lLXZpc2libGUgZnJhbWUpCiAJICAgIChtb2RpZnktZnJhbWUt cGFyYW1ldGVycyBmcmFtZSAobGlzdCB2aXNpYmlsaXR5LXNwZWMpKSkKQEAgLTIxMjksNyArMjE0 OCw3IEBAIHgtY3JlYXRlLWZyYW1lLXdpdGgtZmFjZXMKIChkZWZ1biBmYWNlLXNldC1hZnRlci1m cmFtZS1kZWZhdWx0IChmcmFtZSAmb3B0aW9uYWwgcGFyYW1ldGVycykKICAgIkluaXRpYWxpemUg dGhlIGZyYW1lLWxvY2FsIGZhY2VzIG9mIEZSQU1FLgogQ2FsY3VsYXRlIHRoZSBmYWNlIGRlZmlu aXRpb25zIHVzaW5nIHRoZSBmYWNlIHNwZWNzLCBjdXN0b20gdGhlbWUKLXNldHRpbmdzLCBYIHJl c291cmNlcywgYW5kIGBmYWNlLW5ldy1mcmFtZS1kZWZhdWx0cycuCitzZXR0aW5ncywgWCByZXNv dXJjZXMsIGFuZCBgZmFjZS0tbmV3LWZyYW1lLWRlZmF1bHRzJy4KIEZpbmFsbHksIGFwcGx5IGFu eSByZWxldmFudCBmYWNlIGF0dHJpYnV0ZXMgZm91bmQgYW1vbmdzdCB0aGUKIGZyYW1lIHBhcmFt ZXRlcnMgaW4gUEFSQU1FVEVSUy4iCiAgIDs7IFRoZSBgcmV2ZXJzZScgaXMgc28gdGhhdCBgZGVm YXVsdCcgZ29lcyBmaXJzdC4KQEAgLTIxMzgsNyArMjE1Nyw3IEBAIGZhY2Utc2V0LWFmdGVyLWZy YW1lLWRlZmF1bHQKIAkocHJvZ24KIAkgIDs7IEluaXRpYWxpemUgZmFjZXMgZnJvbSBmYWNlIHNw ZWMgYW5kIGN1c3RvbSB0aGVtZS4KIAkgIChmYWNlLXNwZWMtcmVjYWxjIGZhY2UgZnJhbWUpCi0J ICA7OyBBcHBseSBhdHRyaWJ1dGVzIHNwZWNpZmllZCBieSBmYWNlLW5ldy1mcmFtZS1kZWZhdWx0 cworCSAgOzsgQXBwbHkgYXR0cmlidXRlcyBzcGVjaWZpZWQgYnkgZmFjZS0tbmV3LWZyYW1lLWRl ZmF1bHRzCiAJICAoaW50ZXJuYWwtbWVyZ2UtaW4tZ2xvYmFsLWZhY2UgZmFjZSBmcmFtZSkpCiAg ICAgICA7OyBEb24ndCBsZXQgaW52YWxpZCBzcGVjcyBwcmV2ZW50IGZyYW1lIGNyZWF0aW9uLgog ICAgICAgKGVycm9yIG5pbCkpKQpkaWZmIC0tZ2l0IGEvbGlzcC9mcmFtZS5lbCBiL2xpc3AvZnJh bWUuZWwKaW5kZXggMmI2ZTRhNjBiOC4uMGQ3OGUyZmIzOSAxMDA2NDQKLS0tIGEvbGlzcC9mcmFt ZS5lbAorKysgYi9saXNwL2ZyYW1lLmVsCkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBmcmFtZS1zZXQt YmFja2dyb3VuZC1tb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgZHVyaW5nIHN0YXJ0 dXAgd2l0aCAtcnYgb24gdGhlIGNvbW1hbmQKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBs aW5lIGZvciB0aGUgaW5pdGlhbCBmcmFtZSwgYmVjYXVzZSBmcmFtZXMKICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyBhcmUgbm90IHJlY29yZGVkIGluIHRoZSBwZHVtcCBmaWxlLgotICAgICAg ICAgICAgICAgICAgICAgICAgIChhc3NxIGZhY2UgKGZyYW1lLWZhY2UtYWxpc3QgZnJhbWUpKQor ICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRoYXNoIGZhY2UgKGZyYW1lLS1mYWNlLWhhc2gt dGFibGUpKQogICAgICAgICAgICAgICAgICAgICAgICAgIChmYWNlLXNwZWMtbWF0Y2gtcCBmYWNl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmYWNlLXVzZXIt ZGVmYXVsdC1zcGVjIGZhY2UpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZyYW1lKSkpCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9lbGlzcC1tb2RlLmVs IGIvbGlzcC9wcm9nbW9kZXMvZWxpc3AtbW9kZS5lbAppbmRleCA4YWRlNzE4NjQwLi5hYTU4MDFh N2NhIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9lbGlzcC1tb2RlLmVsCisrKyBiL2xpc3Av cHJvZ21vZGVzL2VsaXNwLW1vZGUuZWwKQEAgLTEzMDksOCArMTMwOSw3IEBAIGVsaXNwLS1ldmFs LWRlZnVuLTEKIAkoKGVxIChjYXIgZm9ybSkgJ2N1c3RvbS1kZWNsYXJlLWZhY2UpCiAJIDs7IFJl c2V0IHRoZSBmYWNlLgogCSAobGV0ICgoZmFjZS1zeW1ib2wgKGV2YWwgKG50aCAxIGZvcm0pIGxl eGljYWwtYmluZGluZykpKQotCSAgIChzZXRxIGZhY2UtbmV3LWZyYW1lLWRlZmF1bHRzCi0JCSAo YXNzcS1kZWxldGUtYWxsIGZhY2Utc3ltYm9sIGZhY2UtbmV3LWZyYW1lLWRlZmF1bHRzKSkKKwkg ICAocmVtaGFzaCBmYWNlLXN5bWJvbCBmYWNlLS1uZXctZnJhbWUtZGVmYXVsdHMpCiAJICAgKHB1 dCBmYWNlLXN5bWJvbCAnZmFjZS1kZWZmYWNlLXNwZWMgbmlsKQogCSAgIChwdXQgZmFjZS1zeW1i b2wgJ2ZhY2Utb3ZlcnJpZGUtc3BlYyBuaWwpKQogCSBmb3JtKQpkaWZmIC0tZ2l0IGEvc3JjL2Zy YW1lLmMgYi9zcmMvZnJhbWUuYwppbmRleCBiYmRjM2I1NTk5Li5jOGYzNDFiODI5IDEwMDY0NAot LS0gYS9zcmMvZnJhbWUuYworKysgYi9zcmMvZnJhbWUuYwpAQCAtOTQ2LDYgKzk0NiwxMCBAQCBt YWtlX2ZyYW1lIChib29sIG1pbmlfcCkKICAgcnctPnRvdGFsX2xpbmVzID0gRlJBTUVfTElORVMg KGYpIC0gKG1pbmlfcCA/IDEgOiAwKTsKICAgcnctPnBpeGVsX2hlaWdodCA9IHJ3LT50b3RhbF9s aW5lcyAqIEZSQU1FX0xJTkVfSEVJR0hUIChmKTsKIAorICBmc2V0X2ZhY2VfaGFzaF90YWJsZQor ICAgIChmLCBtYWtlX2hhc2hfdGFibGUgKGhhc2h0ZXN0X2VxLCBERUZBVUxUX0hBU0hfU0laRSwg REVGQVVMVF9SRUhBU0hfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUX1JF SEFTSF9USFJFU0hPTEQsIFFuaWwsIGZhbHNlKSk7CisKICAgaWYgKG1pbmlfcCkKICAgICB7CiAg ICAgICBtdy0+dG9wX2xpbmUgPSBydy0+dG90YWxfbGluZXM7CkBAIC0xMjU0LDcgKzEyNTgsNyBA QCBERUZVTiAoIm1ha2UtdGVybWluYWwtZnJhbWUiLCBGbWFrZV90ZXJtaW5hbF9mcmFtZSwgU21h a2VfdGVybWluYWxfZnJhbWUsCiB7CiAgIHN0cnVjdCBmcmFtZSAqZjsKICAgc3RydWN0IHRlcm1p bmFsICp0ID0gTlVMTDsKLSAgTGlzcF9PYmplY3QgZnJhbWUsIHRlbTsKKyAgTGlzcF9PYmplY3Qg ZnJhbWU7CiAgIHN0cnVjdCBmcmFtZSAqc2YgPSBTRUxFQ1RFRF9GUkFNRSAoKTsKIAogI2lmZGVm IE1TRE9TCkBAIC0xMzM2LDE0ICsxMzQwLDE2IEBAIERFRlVOICgibWFrZS10ZXJtaW5hbC1mcmFt ZSIsIEZtYWtlX3Rlcm1pbmFsX2ZyYW1lLCBTbWFrZV90ZXJtaW5hbF9mcmFtZSwKICAgc3RvcmVf aW5fYWxpc3QgKCZwYXJtcywgUW1pbmlidWZmZXIsIFF0KTsKICAgRm1vZGlmeV9mcmFtZV9wYXJh bWV0ZXJzIChmcmFtZSwgcGFybXMpOwogCi0gIC8qIE1ha2UgdGhlIGZyYW1lIGZhY2UgYWxpc3Qg YmUgZnJhbWUtc3BlY2lmaWMsIHNvIHRoYXQgZWFjaAorICAvKiBNYWtlIHRoZSBmcmFtZSBmYWNl IGhhc2ggYmUgZnJhbWUtc3BlY2lmaWMsIHNvIHRoYXQgZWFjaAogICAgICBmcmFtZSBjb3VsZCBj aGFuZ2UgaXRzIGZhY2UgZGVmaW5pdGlvbnMgaW5kZXBlbmRlbnRseS4gICovCi0gIGZzZXRfZmFj ZV9hbGlzdCAoZiwgRmNvcHlfYWxpc3QgKHNmLT5mYWNlX2FsaXN0KSk7Ci0gIC8qIFNpbXBsZSBG Y29weV9hbGlzdCBpc24ndCBlbm91Z2gsIGJlY2F1c2Ugd2UgbmVlZCB0aGUgY29udGVudHMgb2YK LSAgICAgdGhlIHZlY3RvcnMgd2hpY2ggYXJlIHRoZSBDRFJzIG9mIGFzc29jaWF0aW9ucyBpbiBm YWNlX2FsaXN0IHRvCisgIGZzZXRfZmFjZV9oYXNoX3RhYmxlIChmLCBGY29weV9oYXNoX3RhYmxl IChzZi0+ZmFjZV9oYXNoX3RhYmxlKSk7CisgIC8qIFNpbXBsZSBjb3B5X2hhc2hfdGFibGUgaXNu J3QgZW5vdWdoLCBiZWNhdXNlIHdlIG5lZWQgdGhlIGNvbnRlbnRzIG9mCisgICAgIHRoZSB2ZWN0 b3JzIHdoaWNoIGFyZSB0aGUgdmFsdWVzIGluIGZhY2VfaGFzaF90YWJsZSB0bwogICAgICBiZSBj b3BpZWQgYXMgd2VsbC4gICovCi0gIGZvciAodGVtID0gZi0+ZmFjZV9hbGlzdDsgQ09OU1AgKHRl bSk7IHRlbSA9IFhDRFIgKHRlbSkpCi0gICAgWFNFVENEUiAoWENBUiAodGVtKSwgRmNvcHlfc2Vx dWVuY2UgKFhDRFIgKFhDQVIgKHRlbSkpKSk7CisgIHB0cmRpZmZfdCBpZHggPSAwOworICBzdHJ1 Y3QgTGlzcF9IYXNoX1RhYmxlICp0YWJsZSA9IFhIQVNIX1RBQkxFIChmLT5mYWNlX2hhc2hfdGFi bGUpOworICBmb3IgKGlkeCA9IDA7IGlkeCA8IHRhYmxlLT5jb3VudDsgKytpZHgpCisgICAgc2V0 X2hhc2hfdmFsdWVfc2xvdCAodGFibGUsIGlkeCwgRmNvcHlfc2VxdWVuY2UgKEhBU0hfVkFMVUUg KHRhYmxlLCBpZHgpKSk7CiAKICAgZi0+Y2FuX3NldF93aW5kb3dfc2l6ZSA9IHRydWU7CiAgIGYt PmFmdGVyX21ha2VfZnJhbWUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmggYi9zcmMv ZnJhbWUuaAppbmRleCAwZmQ5NWU0ZGQzLi4xYzI5NzkyMWY3IDEwMDY0NAotLS0gYS9zcmMvZnJh bWUuaAorKysgYi9zcmMvZnJhbWUuaApAQCAtMTU4LDggKzE1OCw4IEBAICNkZWZpbmUgRU1BQ1Nf RlJBTUVfSAogICAgICBUaGVyZSBhcmUgZm91ciBhZGRpdGlvbmFsIGVsZW1lbnRzIG9mIG5pbCBh dCB0aGUgZW5kLCB0byB0ZXJtaW5hdGUuICAqLwogICBMaXNwX09iamVjdCBtZW51X2Jhcl9pdGVt czsKIAotICAvKiBBbGlzdCBvZiBlbGVtZW50cyAoRkFDRS1OQU1FIC4gRkFDRS1WRUNUT1ItREFU QSkuICAqLwotICBMaXNwX09iamVjdCBmYWNlX2FsaXN0OworICAvKiBIYXNoIHRhYmxlIG9mIEZB Q0UtTkFNRSBrZXlzIGFuZCBGQUNFLVZFQ1RPUi1EQVRBIHZhbHVlcy4gICovCisgIExpc3BfT2Jq ZWN0IGZhY2VfaGFzaF90YWJsZTsKIAogICAvKiBBIHZlY3RvciB0aGF0IHJlY29yZHMgdGhlIGVu dGlyZSBzdHJ1Y3R1cmUgb2YgdGhpcyBmcmFtZSdzIG1lbnUgYmFyLgogICAgICBGb3IgdGhlIGZv cm1hdCBvZiB0aGUgZGF0YSwgc2VlIGV4dGVuc2l2ZSBjb21tZW50cyBpbiB4bWVudS5jLgpAQCAt NjY1LDkgKzY2NSw5IEBAIGZzZXRfY29uZGVtbmVkX3Njcm9sbF9iYXJzIChzdHJ1Y3QgZnJhbWUg KmYsIExpc3BfT2JqZWN0IHZhbCkKICAgZi0+Y29uZGVtbmVkX3Njcm9sbF9iYXJzID0gdmFsOwog fQogSU5MSU5FIHZvaWQKLWZzZXRfZmFjZV9hbGlzdCAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09i amVjdCB2YWwpCitmc2V0X2ZhY2VfaGFzaF90YWJsZSAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09i amVjdCB2YWwpCiB7Ci0gIGYtPmZhY2VfYWxpc3QgPSB2YWw7CisgIGYtPmZhY2VfaGFzaF90YWJs ZSA9IHZhbDsKIH0KICNpZiBkZWZpbmVkIChIQVZFX1dJTkRPV19TWVNURU0pCiBJTkxJTkUgdm9p ZApkaWZmIC0tZ2l0IGEvc3JjL3hmYWNlcy5jIGIvc3JjL3hmYWNlcy5jCmluZGV4IGFiNDQ0MGY0 NmEuLmQ4NmFkZWY2MmMgMTAwNjQ0Ci0tLSBhL3NyYy94ZmFjZXMuYworKysgYi9zcmMveGZhY2Vz LmMKQEAgLTk1LDkgKzk1LDEwIEBAIENvcHlyaWdodCAoQykgMTk5My0xOTk0LCAxOTk4LTIwMjEg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICB3aXRoIHRoZSBzeW1ib2wgYGZhY2Un IGluIHNsb3QgMCwgYW5kIGEgc2xvdCBmb3IgZWFjaCBvZiB0aGUgZmFjZQogICAgYXR0cmlidXRl cyBtZW50aW9uZWQgYWJvdmUuCiAKLSAgIFRoZXJlIGlzIGFsc28gYSBnbG9iYWwgZmFjZSBhbGlz dCBgVmZhY2VfbmV3X2ZyYW1lX2RlZmF1bHRzJy4gIEZhY2UKLSAgIGRlZmluaXRpb25zIGZyb20g dGhpcyBsaXN0IGFyZSB1c2VkIHRvIGluaXRpYWxpemUgZmFjZXMgb2YgbmV3bHkKLSAgIGNyZWF0 ZWQgZnJhbWVzLgorICAgVGhlcmUgaXMgYWxzbyBhIGdsb2JhbCBmYWNlIG1hcCBgVmZhY2VfbmV3 X2ZyYW1lX2RlZmF1bHRzJywKKyAgIGNvbnRhaW5pbmcgY29uc2VzIG9mIChGQUNFX0lEIC4gRkFD RV9ERUZJTklUSU9OKS4gIEZhY2UgZGVmaW5pdGlvbnMKKyAgIGZyb20gdGhpcyB0YWJsZSBhcmUg dXNlZCB0byBpbml0aWFsaXplIGZhY2VzIG9mIG5ld2x5IGNyZWF0ZWQKKyAgIGZyYW1lcy4KIAog ICAgQSBmYWNlIGRvZXNuJ3QgaGF2ZSB0byBzcGVjaWZ5IGFsbCBhdHRyaWJ1dGVzLiAgVGhvc2Ug bm90IHNwZWNpZmllZAogICAgaGF2ZSBhIHZhbHVlIG9mIGB1bnNwZWNpZmllZCcuICBGYWNlcyBz cGVjaWZ5aW5nIGFsbCBhdHRyaWJ1dGVzIGJ1dApAQCAtMTk2MiwxMyArMTk2MywxMSBAQCBsZmFj ZV9mcm9tX2ZhY2VfbmFtZV9ub19yZXNvbHZlIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0 IGZhY2VfbmFtZSwKICAgTGlzcF9PYmplY3QgbGZhY2U7CiAKICAgaWYgKGYpCi0gICAgbGZhY2Ug PSBhc3NxX25vX3F1aXQgKGZhY2VfbmFtZSwgZi0+ZmFjZV9hbGlzdCk7CisgICAgbGZhY2UgPSBG Z2V0aGFzaCAoZmFjZV9uYW1lLCBmLT5mYWNlX2hhc2hfdGFibGUsIFFuaWwpOwogICBlbHNlCi0g ICAgbGZhY2UgPSBhc3NxX25vX3F1aXQgKGZhY2VfbmFtZSwgVmZhY2VfbmV3X2ZyYW1lX2RlZmF1 bHRzKTsKKyAgICBsZmFjZSA9IENEUiAoRmdldGhhc2ggKGZhY2VfbmFtZSwgVmZhY2VfbmV3X2Zy YW1lX2RlZmF1bHRzLCBRbmlsKSk7CiAKLSAgaWYgKENPTlNQIChsZmFjZSkpCi0gICAgbGZhY2Ug PSBYQ0RSIChsZmFjZSk7Ci0gIGVsc2UgaWYgKHNpZ25hbF9wKQorICBpZiAoc2lnbmFsX3AgJiYg TklMUCAobGZhY2UpKQogICAgIHNpZ25hbF9lcnJvciAoIkludmFsaWQgZmFjZSIsIGZhY2VfbmFt ZSk7CiAKICAgY2hlY2tfbGZhY2UgKGxmYWNlKTsKQEAgLTI4NjcsMTEgKzI4NjYsNiBAQCBERUZV TiAoImludGVybmFsLW1ha2UtbGlzcC1mYWNlIiwgRmludGVybmFsX21ha2VfbGlzcF9mYWNlLAog ICAvKiBBZGQgYSBnbG9iYWwgZGVmaW5pdGlvbiBpZiB0aGVyZSBpcyBub25lLiAgKi8KICAgaWYg KE5JTFAgKGdsb2JhbF9sZmFjZSkpCiAgICAgewotICAgICAgZ2xvYmFsX2xmYWNlID0gbWFrZV92 ZWN0b3IgKExGQUNFX1ZFQ1RPUl9TSVpFLCBRdW5zcGVjaWZpZWQpOwotICAgICAgQVNFVCAoZ2xv YmFsX2xmYWNlLCAwLCBRZmFjZSk7Ci0gICAgICBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMgPSBG Y29ucyAoRmNvbnMgKGZhY2UsIGdsb2JhbF9sZmFjZSksCi0JCQkJCVZmYWNlX25ld19mcmFtZV9k ZWZhdWx0cyk7Ci0KICAgICAgIC8qIEFzc2lnbiB0aGUgbmV3IExpc3AgZmFjZSBhIHVuaXF1ZSBJ RC4gIFRoZSBtYXBwaW5nIGZyb20gTGlzcAogCSBmYWNlIGlkIHRvIExpc3AgZmFjZSBpcyBnaXZl biBieSB0aGUgdmVjdG9yIGxmYWNlX2lkX3RvX25hbWUuCiAJIFRoZSBtYXBwaW5nIGZyb20gTGlz cCBmYWNlIHRvIExpc3AgZmFjZSBpZCBpcyBnaXZlbiBieSB0aGUKQEAgLTI4ODEsOSArMjg3NSwx NCBAQCBERUZVTiAoImludGVybmFsLW1ha2UtbGlzcC1mYWNlIiwgRmludGVybmFsX21ha2VfbGlz cF9mYWNlLAogCSAgeHBhbGxvYyAobGZhY2VfaWRfdG9fbmFtZSwgJmxmYWNlX2lkX3RvX25hbWVf c2l6ZSwgMSwgTUFYX0ZBQ0VfSUQsCiAJCSAgIHNpemVvZiAqbGZhY2VfaWRfdG9fbmFtZSk7CiAK KyAgICAgIExpc3BfT2JqZWN0IGZhY2VfaWQgPSBtYWtlX2ZpeG51bSAobmV4dF9sZmFjZV9pZCk7 CiAgICAgICBsZmFjZV9pZF90b19uYW1lW25leHRfbGZhY2VfaWRdID0gZmFjZTsKLSAgICAgIEZw dXQgKGZhY2UsIFFmYWNlLCBtYWtlX2ZpeG51bSAobmV4dF9sZmFjZV9pZCkpOworICAgICAgRnB1 dCAoZmFjZSwgUWZhY2UsIGZhY2VfaWQpOwogICAgICAgKytuZXh0X2xmYWNlX2lkOworCisgICAg ICBnbG9iYWxfbGZhY2UgPSBtYWtlX3ZlY3RvciAoTEZBQ0VfVkVDVE9SX1NJWkUsIFF1bnNwZWNp ZmllZCk7CisgICAgICBBU0VUIChnbG9iYWxfbGZhY2UsIDAsIFFmYWNlKTsKKyAgICAgIEZwdXRo YXNoIChmYWNlLCBGY29ucyAoZmFjZV9pZCwgZ2xvYmFsX2xmYWNlKSwgVmZhY2VfbmV3X2ZyYW1l X2RlZmF1bHRzKTsKICAgICB9CiAgIGVsc2UgaWYgKGYgPT0gTlVMTCkKICAgICBmb3IgKGkgPSAx OyBpIDwgTEZBQ0VfVkVDVE9SX1NJWkU7ICsraSkKQEAgLTI4OTYsNyArMjg5NSw3IEBAIERFRlVO ICgiaW50ZXJuYWwtbWFrZS1saXNwLWZhY2UiLCBGaW50ZXJuYWxfbWFrZV9saXNwX2ZhY2UsCiAJ ewogCSAgbGZhY2UgPSBtYWtlX3ZlY3RvciAoTEZBQ0VfVkVDVE9SX1NJWkUsIFF1bnNwZWNpZmll ZCk7CiAJICBBU0VUIChsZmFjZSwgMCwgUWZhY2UpOwotCSAgZnNldF9mYWNlX2FsaXN0IChmLCBG Y29ucyAoRmNvbnMgKGZhY2UsIGxmYWNlKSwgZi0+ZmFjZV9hbGlzdCkpOworICAgICAgICAgIEZw dXRoYXNoIChmYWNlLCBsZmFjZSwgZi0+ZmFjZV9oYXNoX3RhYmxlKTsKIAl9CiAgICAgICBlbHNl CiAJZm9yIChpID0gMTsgaSA8IExGQUNFX1ZFQ1RPUl9TSVpFOyArK2kpCkBAIC0zMDU3LDcgKzMw NTYsNyBAQCBERUZVTiAoImludGVybmFsLXNldC1saXNwLWZhY2UtYXR0cmlidXRlIiwgRmludGVy bmFsX3NldF9saXNwX2ZhY2VfYXR0cmlidXRlLAogICAgICAgZiA9IE5VTEw7CiAgICAgICBsZmFj ZSA9IGxmYWNlX2Zyb21fZmFjZV9uYW1lIChOVUxMLCBmYWNlLCB0cnVlKTsKIAotICAgICAgLyog V2hlbiB1cGRhdGluZyBmYWNlLW5ldy1mcmFtZS1kZWZhdWx0cywgd2UgcHV0IDppZ25vcmUtZGVm ZmFjZQorICAgICAgLyogV2hlbiB1cGRhdGluZyBmYWNlLS1uZXctZnJhbWUtZGVmYXVsdHMsIHdl IHB1dCA6aWdub3JlLWRlZmZhY2UKIAkgd2hlcmUgdGhlIGNhbGxlciB3YW50cyBgdW5zcGVjaWZp ZWQnLiAgVGhpcyBmb3JjZXMgdGhlIGZyYW1lCiAJIGRlZmF1bHRzIHRvIGlnbm9yZSB0aGUgZGVm ZmFjZSB2YWx1ZS4gIE90aGVyd2lzZSwgdGhlIGRlZmZhY2UKIAkgd2lsbCB0YWtlIGVmZmVjdCwg d2hpY2ggaXMgZ2VuZXJhbGx5IG5vdCB3aGF0IGlzIGludGVuZGVkLgpAQCAtMzY0Miw3ICszNjQx LDcgQEAgdXBkYXRlX2ZhY2VfZnJvbV9mcmFtZV9wYXJhbWV0ZXIgKHN0cnVjdCBmcmFtZSAqZiwg TGlzcF9PYmplY3QgcGFyYW0sCiAgIC8qIElmIHRoZXJlIGFyZSBubyBmYWNlcyB5ZXQsIGdpdmUg dXAuICBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gY2FsbGVkCiAgICAgIGZyb20gRnhfY3JlYXRlX2Zy YW1lLCBhbmQgd2UgZG8gdGhlIG5lY2Vzc2FyeSB0aGluZ3MgbGF0ZXIgaW4KICAgICAgZmFjZS1z ZXQtYWZ0ZXItZnJhbWUtZGVmYXVsdHMuICAqLwotICBpZiAoTklMUCAoZi0+ZmFjZV9hbGlzdCkp CisgIGlmIChYRklYTkFUIChGaGFzaF90YWJsZV9jb3VudCAoZi0+ZmFjZV9oYXNoX3RhYmxlKSkg PT0gMCkKICAgICByZXR1cm47CiAKICAgaWYgKEVRIChwYXJhbSwgUWZvcmVncm91bmRfY29sb3Ip KQpAQCAtNDMwOCwxNCArNDMwNywxMyBAQCBERUZVTiAoImludGVybmFsLWxpc3AtZmFjZS1lbXB0 eS1wIiwgRmludGVybmFsX2xpc3BfZmFjZV9lbXB0eV9wLAogICByZXR1cm4gaSA9PSBMRkFDRV9W RUNUT1JfU0laRSA/IFF0IDogUW5pbDsKIH0KIAotCi1ERUZVTiAoImZyYW1lLWZhY2UtYWxpc3Qi LCBGZnJhbWVfZmFjZV9hbGlzdCwgU2ZyYW1lX2ZhY2VfYWxpc3QsCitERUZVTiAoImZyYW1lLS1m YWNlLWhhc2gtdGFibGUiLCBGZnJhbWVfZmFjZV9oYXNoX3RhYmxlLCBTZnJhbWVfZmFjZV9oYXNo X3RhYmxlLAogICAgICAgIDAsIDEsIDAsCi0gICAgICAgZG9jOiAvKiBSZXR1cm4gYW4gYWxpc3Qg b2YgZnJhbWUtbG9jYWwgZmFjZXMgZGVmaW5lZCBvbiBGUkFNRS4KKyAgICAgICBkb2M6IC8qIFJl dHVybiBhIGhhc2ggdGFibGUgb2YgZnJhbWUtbG9jYWwgZmFjZXMgZGVmaW5lZCBvbiBGUkFNRS4K IEZvciBpbnRlcm5hbCB1c2Ugb25seS4gICovKQogICAoTGlzcF9PYmplY3QgZnJhbWUpCiB7Ci0g IHJldHVybiBkZWNvZGVfbGl2ZV9mcmFtZSAoZnJhbWUpLT5mYWNlX2FsaXN0OworICByZXR1cm4g ZGVjb2RlX2xpdmVfZnJhbWUgKGZyYW1lKS0+ZmFjZV9oYXNoX3RhYmxlOwogfQogCiAKQEAgLTY4 MzIsMzAgKzY4MzAsMzIgQEAgREVGVU4gKCJzaG93LWZhY2UtcmVzb3VyY2VzIiwgRnNob3dfZmFj ZV9yZXNvdXJjZXMsIFNzaG93X2ZhY2VfcmVzb3VyY2VzLAogCiAjaWZkZWYgSEFWRV9QRFVNUEVS CiAvKiBBbGwgdGhlIGZhY2VzIGRlZmluZWQgZHVyaW5nIGxvYWR1cCBhcmUgcmVjb3JkZWQgaW4K LSAgIGZhY2UtbmV3LWZyYW1lLWRlZmF1bHRzLCB3aXRoIHRoZSBsYXN0IGZhY2UgZmlyc3QgaW4g dGhlIGxpc3QuICBXZQotICAgbmVlZCB0byBzZXQgbmV4dF9sZmFjZV9pZCB0byB0aGUgbmV4dCBm YWNlIElEIG51bWJlciwgc28gdGhhdCBhbnkKLSAgIG5ldyBmYWNlcyBkZWZpbmVkIGluIHRoaXMg c2Vzc2lvbiB3aWxsIGhhdmUgZmFjZSBJRHMgZGlmZmVyZW50IGZyb20KLSAgIHRob3NlIGRlZmlu ZWQgZHVyaW5nIGxvYWR1cC4gIFdlIGFsc28gbmVlZCB0byBzZXQgdXAgdGhlCi0gICBsZmFjZV9p ZF90b19uYW1lW10gYXJyYXkgZm9yIHRoZSBmYWNlcyB0aGF0IHdlcmUgZGVmaW5lZCBkdXJpbmcK LSAgIGxvYWR1cC4gICovCisgICBmYWNlLW5ldy1mcmFtZS1kZWZhdWx0cy4gIFdlIG5lZWQgdG8g c2V0IG5leHRfbGZhY2VfaWQgdG8gdGhlIG5leHQKKyAgIGZhY2UgSUQgbnVtYmVyLCBzbyB0aGF0 IGFueSBuZXcgZmFjZXMgZGVmaW5lZCBpbiB0aGlzIHNlc3Npb24gd2lsbAorICAgaGF2ZSBmYWNl IElEcyBkaWZmZXJlbnQgZnJvbSB0aG9zZSBkZWZpbmVkIGR1cmluZyBsb2FkdXAuICBXZSBhbHNv CisgICBuZWVkIHRvIHNldCB1cCB0aGUgbGZhY2VfaWRfdG9fbmFtZVtdIGFycmF5IGZvciB0aGUg ZmFjZXMgdGhhdCB3ZXJlCisgICBkZWZpbmVkIGR1cmluZyBsb2FkdXAuICAqLwogdm9pZAogaW5p dF94ZmFjZXMgKHZvaWQpCiB7Ci0gIGlmIChDT05TUCAoVmZhY2VfbmV3X2ZyYW1lX2RlZmF1bHRz KSkKKyAgaW50IG5mYWNlcyA9IFhGSVhOQVQgKEZoYXNoX3RhYmxlX2NvdW50IChWZmFjZV9uZXdf ZnJhbWVfZGVmYXVsdHMpKTsKKyAgaWYgKG5mYWNlcyA+IDApCiAgICAgewogICAgICAgLyogQWxs b2NhdGUgdGhlIGxmYWNlX2lkX3RvX25hbWVbXSBhcnJheS4gICovCi0gICAgICBsZmFjZV9pZF90 b19uYW1lX3NpemUgPSBuZXh0X2xmYWNlX2lkID0KLQlYRklYTkFUIChGbGVuZ3RoIChWZmFjZV9u ZXdfZnJhbWVfZGVmYXVsdHMpKTsKKyAgICAgIGxmYWNlX2lkX3RvX25hbWVfc2l6ZSA9IG5leHRf bGZhY2VfaWQgPSBuZmFjZXM7CiAgICAgICBsZmFjZV9pZF90b19uYW1lID0geG5tYWxsb2MgKG5l eHRfbGZhY2VfaWQsIHNpemVvZiAqbGZhY2VfaWRfdG9fbmFtZSk7CiAKICAgICAgIC8qIFN0b3Jl IHRoZSBmYWNlcy4gICovCi0gICAgICBMaXNwX09iamVjdCB0YWlsOwotICAgICAgaW50IGkgPSBu ZXh0X2xmYWNlX2lkIC0gMTsKLSAgICAgIGZvciAodGFpbCA9IFZmYWNlX25ld19mcmFtZV9kZWZh dWx0czsgQ09OU1AgKHRhaWwpOyB0YWlsID0gWENEUiAodGFpbCkpCisgICAgICBzdHJ1Y3QgTGlz cF9IYXNoX1RhYmxlKiB0YWJsZSA9IFhIQVNIX1RBQkxFIChWZmFjZV9uZXdfZnJhbWVfZGVmYXVs dHMpOworICAgICAgZm9yIChwdHJkaWZmX3QgaWR4ID0gMDsgaWR4IDwgbmZhY2VzOyArK2lkeCkK IAl7Ci0JICBMaXNwX09iamVjdCBsZmFjZSA9IFhDQVIgKHRhaWwpOwotCSAgZWFzc2VydCAoaSA+ PSAwKTsKLQkgIGxmYWNlX2lkX3RvX25hbWVbaS0tXSA9IFhDQVIgKGxmYWNlKTsKKwkgIExpc3Bf T2JqZWN0IGxmYWNlID0gSEFTSF9LRVkgKHRhYmxlLCBpZHgpOworCSAgTGlzcF9PYmplY3QgZmFj ZV9pZCA9IENBUiAoSEFTSF9WQUxVRSAodGFibGUsIGlkeCkpOworICAgICAgICAgIGlmIChGSVhO QVRQIChmYWNlX2lkKSkgeworICAgICAgICAgICAgICBpbnQgaWQgPSBYRklYTkFUIChmYWNlX2lk KTsKKyAgICAgICAgICAgICAgZWFzc2VydCAoaWQgPj0gMCk7CisgICAgICAgICAgICAgIGxmYWNl X2lkX3RvX25hbWVbaWRdID0gbGZhY2U7CisgICAgICAgICAgICB9CiAJfQogICAgIH0KICAgZmFj ZV9hdHRyX3N5bVswXSA9IFFmYWNlOwpAQCAtNzAxMSw3ICs3MDExLDcgQEAgc3ltc19vZl94ZmFj ZXMgKHZvaWQpCiAgIGRlZnN1YnIgKCZTaW50ZXJuYWxfY29weV9saXNwX2ZhY2UpOwogICBkZWZz dWJyICgmU2ludGVybmFsX21lcmdlX2luX2dsb2JhbF9mYWNlKTsKICAgZGVmc3ViciAoJlNmYWNl X2ZvbnQpOwotICBkZWZzdWJyICgmU2ZyYW1lX2ZhY2VfYWxpc3QpOworICBkZWZzdWJyICgmU2Zy YW1lX2ZhY2VfaGFzaF90YWJsZSk7CiAgIGRlZnN1YnIgKCZTZGlzcGxheV9zdXBwb3J0c19mYWNl X2F0dHJpYnV0ZXNfcCk7CiAgIGRlZnN1YnIgKCZTY29sb3JfZGlzdGFuY2UpOwogICBkZWZzdWJy ICgmU2ludGVybmFsX3NldF9mb250X3NlbGVjdGlvbl9vcmRlcik7CkBAIC03MDM1LDkgKzcwMzUs MTIgQEAgc3ltc19vZl94ZmFjZXMgKHZvaWQpCiB0aGUgInNwZWNpZml0eSIgb2YgYSBmYWNlIHNw ZWNpZmljYXRpb24gYW5kIHNob3VsZCBiZSBsZXQtYm91bmQKIG9ubHkgZm9yIHRoaXMgcHVycG9z ZS4gICovKTsKIAotICBERUZWQVJfTElTUCAoImZhY2UtbmV3LWZyYW1lLWRlZmF1bHRzIiwgVmZh Y2VfbmV3X2ZyYW1lX2RlZmF1bHRzLAotICAgIGRvYzogLyogTGlzdCBvZiBnbG9iYWwgZmFjZSBk ZWZpbml0aW9ucyAoZm9yIGludGVybmFsIHVzZSBvbmx5LikgICovKTsKLSAgVmZhY2VfbmV3X2Zy YW1lX2RlZmF1bHRzID0gUW5pbDsKKyAgREVGVkFSX0xJU1AgKCJmYWNlLS1uZXctZnJhbWUtZGVm YXVsdHMiLCBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMsCisgICAgZG9jOiAvKiBIYXNoIHRhYmxl IG9mIGdsb2JhbCBmYWNlIGRlZmluaXRpb25zIChmb3IgaW50ZXJuYWwgdXNlIG9ubHkuKSAgKi8p OworICBWZmFjZV9uZXdfZnJhbWVfZGVmYXVsdHMgPQorICAgIC8qIDMzIGVudHJpZXMgaXMgZW5v dWdoIHRvIGZpdCBhbGwgYmFzaWMgZmFjZXMgKi8KKyAgICBtYWtlX2hhc2hfdGFibGUgKGhhc2h0 ZXN0X2VxLCAzMywgREVGQVVMVF9SRUhBU0hfU0laRSwKKyAgICAgICAgICAgICAgICAgICAgIERF RkFVTFRfUkVIQVNIX1RIUkVTSE9MRCwgUW5pbCwgZmFsc2UpOwogCiAgIERFRlZBUl9MSVNQICgi ZmFjZS1kZWZhdWx0LXN0aXBwbGUiLCBWZmFjZV9kZWZhdWx0X3N0aXBwbGUsCiAgICAgZG9jOiAv KiBEZWZhdWx0IHN0aXBwbGUgcGF0dGVybiB1c2VkIG9uIG1vbm9jaHJvbWUgZGlzcGxheXMuCi0t IAoyLjMxLjEKCg== --Multipart_Tue_Apr__6_16:35:26_2021-1-- --pgp-sign-Multipart_Tue_Apr__6_16:35:26_2021-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit Content-Description: OpenPGP Digital Signature -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEMs5zGc3ddpJcaCdJrDCBpVWB0sAFAmBsAS4ACgkQrDCBpVWB 0sB8/xAAlq4w3J0SBgzf1jxynqOgxKG+SUz8hMdN+9Iqv+esnCHyGrUmzPSDf0// f8Z9yWWDd/IAejxa7mwbPwmdxKMQBmG2Wuv4AiFiuPOhUECJzzbhHW1nCZlGrcns JfK0bR/79EjqUDDbV55ug2yQWRbUog2buHssC8ntAiOu8jjMs0lb6Dzi5fs/uKS1 t8BuW8MJUC+iVpwSuOdICNWZC98vvCBY8aF7sF+ZjvxNxdRy0CeWFZ9gmK+ivl6t lUs+7ELpB0YF6fBHo86iEzBkyvOgKKKchBkaZ7bAPZUMDdK7tlfNWu5p7lM2uHjM brZQbrfR8UlkLMHQqreK9vsKzPS9QWlMP5Fk6PH1PcICws9JFFiB+7/3ItecHocl 15u82xgAmcI/VN9STt4kkHXEG2FA7j010S/W0NHK1EEOZOeFMEETVfBDEN/VhlG7 AmG18aOvsFdXSsKMWqeTxmtqXf5iZgDqh5L73YBh+xzxZ9y49esdSz+gtsqgPdMm YxkxdfhMXnJWEZDltyuU+IdKdfwwFv1MgX+o9qPXpiAC1F/b0YOWPyzMJ7o/LocN 10VGgqmskyDgkHZ2uunj4lkypUj2ddwGdz5T/cAtgx/+dHNTi8qPMwVDpdEmvN5t 2XbAL2eJJmC6sFUWrmsUX72CqtFrdwfJx7It2OTDcDc4o+x/mIY= =w8zP -----END PGP SIGNATURE----- --pgp-sign-Multipart_Tue_Apr__6_16:35:26_2021-1--