Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mQTDJ-0001Ys-1o for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Sep 2021 11:36:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mQTDH-0002SI-RU for pgsql-hackers@arkaria.postgresql.org; Wed, 15 Sep 2021 11:36:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mQTDH-0002S7-9s for pgsql-hackers@lists.postgresql.org; Wed, 15 Sep 2021 11:36:27 +0000 Received: from smtp-fw-6001.amazon.com ([52.95.48.154]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mQTDC-0007xS-9T for pgsql-hackers@postgresql.org; Wed, 15 Sep 2021 11:36:26 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1631705783; x=1663241783; h=subject:from:to:cc:references:message-id:date: mime-version:in-reply-to; bh=w936rDQEhyreqjRkpwtTYTgT/qgTKvmngWnwVYB5Oow=; b=PLgy6rmbge1pFAW9bG15mSwRwTBtmmfoXKqF4D3EN0pTRLYEuqDOZ4+R UG+aYLKaLZ+98G+W2q2iSiSV49fDbf64NgMS3K4Of3OanOLGbv9DBU5gl eJsIlZdzHOXnYKXjoCFaeYL2pCLoJjWPgkJ+wKf5HhIY6oRFIFH7DuUka o=; X-Amazon-filename: v24-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch, v24-0006-Fixing-Walsender-corner-cases-with-logical-decod.patch, v24-0005-Doc-changes-describing-details-about-logical-dec.patch, v24-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v24-0003-Allow-logical-decoding-on-standby.patch, v24-0002-Handle-logical-slot-conflicts-on-standby.patch X-IronPort-AV: E=Sophos;i="5.85,295,1624320000"; d="scan'208,217,223";a="141917350" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-2b-5bdc5131.us-west-2.amazon.com) ([10.43.8.6]) by smtp-border-fw-6001.iad6.amazon.com with ESMTP; 15 Sep 2021 11:36:12 +0000 Received: from EX13D03EUC003.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-2b-5bdc5131.us-west-2.amazon.com (Postfix) with ESMTPS id 973ACA1E22; Wed, 15 Sep 2021 11:36:09 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.161.176) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Wed, 15 Sep 2021 11:36:04 +0000 Subject: Re: Minimal logical decoding on standbys From: "Drouvot, Bertrand" To: Alvaro Herrera , Andres Freund CC: Ibrar Ahmed , Amit Khandekar , , tushar , "[pgdg] Robert Haas" , Rahila Syed , pgsql-hackers References: <202107281526.o74ieuj6sj7z@alvherre.pgsql> Message-ID: <2b14d595-1e8b-e5b6-6098-6a11d19fa1c7@amazon.com> Date: Wed, 15 Sep 2021 13:36:00 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------36F8C269D440200CD429EBCF" Content-Language: en-US X-Originating-IP: [10.43.161.176] X-ClientProxiedBy: EX13D39UWA003.ant.amazon.com (10.43.160.235) To EX13D03EUC003.ant.amazon.com (10.43.164.192) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --------------36F8C269D440200CD429EBCF Content-Type: multipart/alternative; boundary="------------58601425C5D17F74398D94C4" --------------58601425C5D17F74398D94C4 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Hi, On 9/9/21 9:17 AM, Drouvot, Bertrand wrote: > > Hi Alvaro, > > On 8/2/21 4:56 PM, Drouvot, Bertrand wrote: >> Hi Alvaro, >> >> On 7/28/21 5:26 PM, Alvaro Herrera wrote: >>> On 2021-Jul-27, Drouvot, Bertrand wrote: >>> >>>> diff --git a/src/backend/utils/cache/lsyscache.c >>>> b/src/backend/utils/cache/lsyscache.c >>>> +bool >>>> +get_rel_logical_catalog(Oid relid) >>>> +{ >>>> +     bool    res; >>>> +     Relation rel; >>>> + >>>> +     /* assume previously locked */ >>>> +     rel = table_open(relid, NoLock); >>>> +     res = RelationIsAccessibleInLogicalDecoding(rel); >>>> +     table_close(rel, NoLock); >>>> + >>>> +     return res; >>>> +} >>> So RelationIsAccessibleInLogicalDecoding() does a cheap check for >>> wal_level which can be done without opening the table; I think this >>> function should be rearranged to avoid doing that when not needed. >> >> Thanks for looking at it. >> >> >>> Also, putting this function in lsyscache.c seems somewhat wrong since >>> it's not merely accessing the system caches ... >>> >>> I think it would be better to move this elsewhere (relcache.c, proto in >>> relcache.h, perhaps call it RelationIdIsAccessibleInLogicalDecoding) >>> and >>> short-circuit for the check that can be done before opening the table. > > So you have in mind to check for XLogLogicalInfoActive() first, and if > true, then open the relation and call > RelationIsAccessibleInLogicalDecoding()? > > If so, then what about also creating a new > RelationIsAccessibleWhileLogicalWalLevel() or something like this > doing the same as RelationIsAccessibleInLogicalDecoding() but without > the XLogLogicalInfoActive() check? > >>> At least the GiST code appears to be able to call this several times >>> per >>> vacuum run, so it makes sense to short-circuit it for the fast case. >>> >>> ... though looking at the GiST code again I wonder if it would be more >>> sensible to just stash the table's Relation pointer somewhere in the >>> context structs > > Do you have a "good place" in mind? > Another rebase attached. The patch proposal to address Andre's walsender corner cases is still a dedicated commit (as i think it may be easier to discuss). Thanks Bertrand --------------58601425C5D17F74398D94C4 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit

Hi,

On 9/9/21 9:17 AM, Drouvot, Bertrand wrote:

Hi Alvaro,

On 8/2/21 4:56 PM, Drouvot, Bertrand wrote:
Hi Alvaro,

On 7/28/21 5:26 PM, Alvaro Herrera wrote:
On 2021-Jul-27, Drouvot, Bertrand wrote:

diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c
+bool
+get_rel_logical_catalog(Oid relid)
+{
+     bool    res;
+     Relation rel;
+
+     /* assume previously locked */
+     rel = table_open(relid, NoLock);
+     res = RelationIsAccessibleInLogicalDecoding(rel);
+     table_close(rel, NoLock);
+
+     return res;
+}
So RelationIsAccessibleInLogicalDecoding() does a cheap check for
wal_level which can be done without opening the table; I think this
function should be rearranged to avoid doing that when not needed.

Thanks for looking at it.


Also, putting this function in lsyscache.c seems somewhat wrong since
it's not merely accessing the system caches ...

I think it would be better to move this elsewhere (relcache.c, proto in
relcache.h, perhaps call it RelationIdIsAccessibleInLogicalDecoding) and
short-circuit for the check that can be done before opening the table.

So you have in mind to check for XLogLogicalInfoActive() first, and if true, then open the relation and call
RelationIsAccessibleInLogicalDecoding()?

If so, then what about also creating a new RelationIsAccessibleWhileLogicalWalLevel() or something like this doing the same as RelationIsAccessibleInLogicalDecoding() but without the XLogLogicalInfoActive() check?

At least the GiST code appears to be able to call this several times per
vacuum run, so it makes sense to short-circuit it for the fast case.

... though looking at the GiST code again I wonder if it would be more
sensible to just stash the table's Relation pointer somewhere in the
context structs

Do you have a "good place" in mind?

Another rebase attached.

The patch proposal to address Andre's walsender corner cases is still a dedicated commit (as i think it may be easier to discuss).

Thanks

Bertrand


--------------58601425C5D17F74398D94C4-- --------------36F8C269D440200CD429EBCF Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v24-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v24-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" RnJvbSAyODBiOGIxNzBlYmFkYjUxNzY0YmJkZjE5MmVlYzYwMGVkMzM5YjFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNSBTZXAgMjAyMSAxMDozMjo0NSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjI0IDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCgpXaGVuIGEgV0FMIHJlcGxheSBv biBzdGFuZGJ5IGluZGljYXRlcyB0aGF0IGEgY2F0YWxvZyB0YWJsZSB0dXBsZSBpcwp0byBi ZSBkZWxldGVkIGJ5IGFuIHhpZCB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBhIGxvZ2ljYWwgc2xv dCdzCmNhdGFsb2dfeG1pbiwgdGhlbiB0aGF0IG1lYW5zIHRoZSBzbG90J3MgY2F0YWxvZ194 bWluIGNvbmZsaWN0cyB3aXRoCnRoZSB4aWQsIGFuZCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUg Y29uZmxpY3QuICBXaGlsZSBzdWJzZXF1ZW50IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFs IGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNvbW1pdCBhZGRzIGEgbmV3IGZpZWxkCm9uQ2F0 YWxvZ1RhYmxlIGluIHN1Y2ggV0FMIHJlY29yZHMsIHRoYXQgaXMgdHJ1ZSBmb3IgY2F0YWxv ZyB0YWJsZXMsCnNvIGFzIHRvIGFycmFuZ2UgZm9yIGNvbmZsaWN0IGhhbmRsaW5nLgoKQXV0 aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVr YXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFu ZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYyAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYyAgICAgfCAgMiArLQogc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYyAgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyAgICAgIHwgIDQgKysrLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaGluc2VydC5jICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMgICAgICAgIHwgIDQgKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMgICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJp bGl0eW1hcC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5j ICAgICB8IDEyICsrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2 YWN1dW0uYyAgIHwgIDggKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jICAgICB8IDE1ICsrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvYWNjZXNzL2dp c3RfcHJpdmF0ZS5oICAgICAgIHwgIDYgKysrLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2lz dHhsb2cuaCAgICAgICAgICAgfCAgMyArKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hs b2cuaCAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5o ICAgICAgICB8ICA1ICsrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oICAgICAg ICAgICAgfCAgMiArKwogc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCAgICAgICAgICAg IHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgIHwgIDEg Kwogc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggICAgICAgICAgICAgICAgIHwgIDkgKysrKysr KysrCiAxOSBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMo LSkKICAxNy45JSBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC8KICAxMy4xJSBzcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC8KICAxNC41JSBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlLwogICA4 LjklIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3QvCiAgIDcuMiUgc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvCiAgMTkuNiUgc3JjL2luY2x1ZGUvYWNjZXNzLwogIDE2LjYlIHNyYy9pbmNs dWRlL3V0aWxzLwoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Qu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3QuYwppbmRleCAwNjgzZjQyYzI1Li5i NmU2MzQwYzNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCkBAIC0zNDgsNyArMzQ4LDcg QEAgZ2lzdHBsYWNldG9wYWdlKFJlbGF0aW9uIHJlbCwgU2l6ZSBmcmVlc3BhY2UsIEdJU1RT VEFURSAqZ2lzdHN0YXRlLAogCQlmb3IgKDsgcHRyOyBwdHIgPSBwdHItPm5leHQpCiAJCXsK IAkJCS8qIEFsbG9jYXRlIG5ldyBwYWdlICovCi0JCQlwdHItPmJ1ZmZlciA9IGdpc3ROZXdC dWZmZXIocmVsKTsKKwkJCXB0ci0+YnVmZmVyID0gZ2lzdE5ld0J1ZmZlcihoZWFwUmVsLCBy ZWwpOwogCQkJR0lTVEluaXRCdWZmZXIocHRyLT5idWZmZXIsIChpc19sZWFmKSA/IEZfTEVB RiA6IDApOwogCQkJcHRyLT5wYWdlID0gQnVmZmVyR2V0UGFnZShwdHItPmJ1ZmZlcik7CiAJ CQlwdHItPmJsb2NrLmJsa25vID0gQnVmZmVyR2V0QmxvY2tOdW1iZXIocHRyLT5idWZmZXIp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYwppbmRleCBiYWFkMjhjMDlmLi42 ZDk0ODU0OGMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVp bGQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0YnVpbGQuYwpAQCAtMjkw LDcgKzI5MCw3IEBAIGdpc3RidWlsZChSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwg SW5kZXhJbmZvICppbmRleEluZm8pCiAJCVBhZ2UJCXBhZ2U7CiAKIAkJLyogaW5pdGlhbGl6 ZSB0aGUgcm9vdCBwYWdlICovCi0JCWJ1ZmZlciA9IGdpc3ROZXdCdWZmZXIoaW5kZXgpOwor CQlidWZmZXIgPSBnaXN0TmV3QnVmZmVyKGhlYXAsIGluZGV4KTsKIAkJQXNzZXJ0KEJ1ZmZl ckdldEJsb2NrTnVtYmVyKGJ1ZmZlcikgPT0gR0lTVF9ST09UX0JMS05PKTsKIAkJcGFnZSA9 IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHV0aWwuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGls LmMKaW5kZXggNDNiYTAzYjZlYi4uMWQxZTIxMTEyYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dXRpbC5jCkBAIC04MjAsNyArODIwLDcgQEAgZ2lzdGNoZWNrcGFnZShSZWxhdGlv biByZWwsIEJ1ZmZlciBidWYpCiAgKiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGluaXRp YWxpemluZyB0aGUgcGFnZSBieSBjYWxsaW5nIEdJU1RJbml0QnVmZmVyCiAgKi8KIEJ1ZmZl cgotZ2lzdE5ld0J1ZmZlcihSZWxhdGlvbiByKQorZ2lzdE5ld0J1ZmZlcihSZWxhdGlvbiBo ZWFwUmVsLCBSZWxhdGlvbiByKQogewogCUJ1ZmZlcgkJYnVmZmVyOwogCWJvb2wJCW5lZWRM b2NrOwpAQCAtODY0LDcgKzg2NCw3IEBAIGdpc3ROZXdCdWZmZXIoUmVsYXRpb24gcikKIAkJ CQkgKiBwYWdlJ3MgZGVsZXRlWGlkLgogCQkJCSAqLwogCQkJCWlmIChYTG9nU3RhbmRieUlu Zm9BY3RpdmUoKSAmJiBSZWxhdGlvbk5lZWRzV0FMKHIpKQotCQkJCQlnaXN0WExvZ1BhZ2VS ZXVzZShyLCBibGtubywgR2lzdFBhZ2VHZXREZWxldGVYaWQocGFnZSkpOworCQkJCQlnaXN0 WExvZ1BhZ2VSZXVzZShoZWFwUmVsLCByLCBibGtubywgR2lzdFBhZ2VHZXREZWxldGVYaWQo cGFnZSkpOwogCiAJCQkJcmV0dXJuIGJ1ZmZlcjsKIAkJCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0eGxvZy5jCmluZGV4IDY0NjRjYjkyODEuLjQ2YWVlNmYyYTkgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtNTk2LDcgKzU5Niw4IEBAIGdpc3RYTG9nQXNz aWduTFNOKHZvaWQpCiAgKiBXcml0ZSBYTE9HIHJlY29yZCBhYm91dCByZXVzZSBvZiBhIGRl bGV0ZWQgcGFnZS4KICAqLwogdm9pZAotZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gcmVs LCBCbG9ja051bWJlciBibGtubywgRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhp ZCkKK2dpc3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIGhlYXBSZWwsIFJlbGF0aW9uIHJlbCwK KwkJCQkgIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1v dmVkWGlkKQogewogCWdpc3R4bG9nUGFnZVJldXNlIHhscmVjX3JldXNlOwogCkBAIC02MDcs NiArNjA4LDcgQEAgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gcmVsLCBCbG9ja051bWJl ciBibGtubywgRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3YKIAkgKi8KIAogCS8qIFhM T0cgc3R1ZmYgKi8KKwl4bHJlY19yZXVzZS5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNB Y2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaGVhcFJlbCk7CiAJeGxyZWNfcmV1c2Uubm9k ZSA9IHJlbC0+cmRfbm9kZTsKIAl4bHJlY19yZXVzZS5ibG9jayA9IGJsa25vOwogCXhscmVj X3JldXNlLmxhdGVzdFJlbW92ZWRGdWxsWGlkID0gbGF0ZXN0UmVtb3ZlZFhpZDsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwppbmRleCBmZTlmMGRmMjBiLi5jMmI2N2Ey NWUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCkBAIC0zOTgsNiAr Mzk4LDcgQEAgX2hhc2hfdmFjdXVtX29uZV9wYWdlKFJlbGF0aW9uIHJlbCwgUmVsYXRpb24g aHJlbCwgQnVmZmVyIG1ldGFidWYsIEJ1ZmZlciBidWYpCiAJCQl4bF9oYXNoX3ZhY3V1bV9v bmVfcGFnZSB4bHJlYzsKIAkJCVhMb2dSZWNQdHIJcmVjcHRyOwogCisJCQl4bHJlYy5vbkNh dGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaHJl bCk7CiAJCQl4bHJlYy5sYXRlc3RSZW1vdmVkWGlkID0gbGF0ZXN0UmVtb3ZlZFhpZDsKIAkJ CXhscmVjLm50dXBsZXMgPSBuZGVsZXRhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCmluZGV4IDI0MzM5OThmMzkuLjQwMTlhMjEyMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jCkBAIC03OTQxLDYgKzc5NDEsNyBAQCBsb2dfaGVhcF9mcmVlemUoUmVsYXRp b24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwgVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkLAogCS8q IG5vciB3aGVuIHRoZXJlIGFyZSBubyB0dXBsZXMgdG8gZnJlZXplICovCiAJQXNzZXJ0KG50 dXBsZXMgPiAwKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vz c2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5jdXRvZmZfeGlkID0gY3V0 b2ZmX3hpZDsKIAl4bHJlYy5udHVwbGVzID0gbnR1cGxlczsKIApAQCAtNzk3MSw3ICs3OTcy LDcgQEAgbG9nX2hlYXBfZnJlZXplKFJlbGF0aW9uIHJlbG4sIEJ1ZmZlciBidWZmZXIsIFRy YW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKICAqIGhlYXBfYnVmZmVyLCBpZiBuZWNlc3Nhcnku CiAgKi8KIFhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZU5vZGUgcm5vZGUs IEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKK2xvZ19oZWFwX3Zpc2li bGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIs CiAJCQkJIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwgdWludDggdm1mbGFncykKIHsKIAl4 bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBAIC03OTgxLDYgKzc5ODIsNyBAQCBsb2dfaGVhcF92 aXNpYmxlKFJlbEZpbGVOb2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2 bV9idWZmZXIsCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoaGVhcF9idWZmZXIpKTsKIAlBc3Nl cnQoQnVmZmVySXNWYWxpZCh2bV9idWZmZXIpKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxl ID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVj LmN1dG9mZl94aWQgPSBjdXRvZmZfeGlkOwogCXhscmVjLmZsYWdzID0gdm1mbGFnczsKIAlY TG9nQmVnaW5JbnNlcnQoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5k ZXggMTVjYTFiMzA0YS4uMDU5MGI3MDUzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMKQEAgLTMyMyw2ICszMjMsNyBAQCBoZWFwX3BhZ2VfcHJ1bmUoUmVsYXRpb24g cmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAJCQl4bHJlYy5sYXRlc3RSZW1vdmVkWGlkID0g cHJzdGF0ZS5sYXRlc3RSZW1vdmVkWGlkOwogCQkJeGxyZWMubnJlZGlyZWN0ZWQgPSBwcnN0 YXRlLm5yZWRpcmVjdGVkOwogCQkJeGxyZWMubmRlYWQgPSBwcnN0YXRlLm5kZWFkOworCQkJ eGxyZWMub25DYXRhbG9nVGFibGUgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERl Y29kaW5nKHJlbGF0aW9uKTsKIAogCQkJWExvZ0JlZ2luSW5zZXJ0KCk7CiAJCQlYTG9nUmVn aXN0ZXJEYXRhKChjaGFyICopICZ4bHJlYywgU2l6ZU9mSGVhcFBydW5lKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwppbmRleCAxMTRmYmJkZDMwLi4yNTk3 NjM2YmYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5 bWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBA IC0yODIsNyArMjgyLDcgQEAgdmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9j a051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJ bnZhbGlkKHJlY3B0cikpCiAJCQl7CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQly ZWNwdHIgPSBsb2dfaGVhcF92aXNpYmxlKHJlbC0+cmRfbm9kZSwgaGVhcEJ1Ziwgdm1CdWYs CisJCQkJcmVjcHRyID0gbG9nX2hlYXBfdmlzaWJsZShyZWwsIGhlYXBCdWYsIHZtQnVmLAog CQkJCQkJCQkJCSAgY3V0b2ZmX3hpZCwgZmxhZ3MpOwogCiAJCQkJLyoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL25idHJlZS9uYnRwYWdlLmMKaW5kZXggZWJlYzhmYTViOC4uMmQyN2EzZjk3NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNp bmNsdWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgi CiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNo ZS5oIgogCiBzdGF0aWMgQlRNZXRhUGFnZURhdGEgKl9idF9nZXRtZXRhKFJlbGF0aW9uIHJl bCwgQnVmZmVyIG1ldGFidWYpOwogc3RhdGljIHZvaWQgX2J0X2xvZ19yZXVzZV9wYWdlKFJl bGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sCkBAIC00Myw3ICs0NCw4IEBAIHN0YXRp YyB2b2lkIF9idF9sb2dfcmV1c2VfcGFnZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJs a25vLAogc3RhdGljIHZvaWQgX2J0X2RlbGl0ZW1zX2RlbGV0ZShSZWxhdGlvbiByZWwsIEJ1 ZmZlciBidWYsCiAJCQkJCQkJCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKIAkJ CQkJCQkJT2Zmc2V0TnVtYmVyICpkZWxldGFibGUsIGludCBuZGVsZXRhYmxlLAotCQkJCQkJ CQlCVFZhY3V1bVBvc3RpbmcgKnVwZGF0YWJsZSwgaW50IG51cGRhdGFibGUpOworCQkJCQkJ CQlCVFZhY3V1bVBvc3RpbmcgKnVwZGF0YWJsZSwgaW50IG51cGRhdGFibGUsCisJCQkJCQkJ CVJlbGF0aW9uIGhlYXBSZWwpOwogc3RhdGljIGNoYXIgKl9idF9kZWxpdGVtc191cGRhdGUo QlRWYWN1dW1Qb3N0aW5nICp1cGRhdGFibGUsIGludCBudXBkYXRhYmxlLAogCQkJCQkJCQkg T2Zmc2V0TnVtYmVyICp1cGRhdGVkb2Zmc2V0cywKIAkJCQkJCQkJIFNpemUgKnVwZGF0ZWRi dWZsZW4sIGJvb2wgbmVlZHN3YWwpOwpAQCAtODM2LDYgKzgzOCw3IEBAIF9idF9sb2dfcmV1 c2VfcGFnZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rp b25JZCBzYWZleGlkKQogCSAqLwogCiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNl Lm9uQ2F0YWxvZ1RhYmxlID0gZ2V0X3JlbF9sb2dpY2FsX2NhdGFsb2cocmVsLT5yZF9pbmRl eC0+aW5kcmVsaWQpOwogCXhscmVjX3JldXNlLm5vZGUgPSByZWwtPnJkX25vZGU7CiAJeGxy ZWNfcmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJlY19yZXVzZS5sYXRlc3RSZW1vdmVkRnVs bFhpZCA9IHNhZmV4aWQ7CkBAIC0xMjk2LDcgKzEyOTksOCBAQCBfYnRfZGVsaXRlbXNfdmFj dXVtKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIHN0YXRpYyB2b2lkCiBfYnRfZGVsaXRl bXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwgVHJhbnNhY3Rpb25JZCBsYXRl c3RSZW1vdmVkWGlkLAogCQkJCQlPZmZzZXROdW1iZXIgKmRlbGV0YWJsZSwgaW50IG5kZWxl dGFibGUsCi0JCQkJCUJUVmFjdXVtUG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0YWJs ZSkKKwkJCQkJQlRWYWN1dW1Qb3N0aW5nICp1cGRhdGFibGUsIGludCBudXBkYXRhYmxlLAor CQkJCQlSZWxhdGlvbiBoZWFwUmVsKQogewogCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdl KGJ1Zik7CiAJQlRQYWdlT3BhcXVlIG9wYXF1ZTsKQEAgLTEzNTgsNiArMTM2Miw4IEBAIF9i dF9kZWxpdGVtc19kZWxldGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLCBUcmFuc2FjdGlv bklkIGxhdGVzdFJlbW92ZWRYaWQsCiAJCVhMb2dSZWNQdHIJcmVjcHRyOwogCQl4bF9idHJl ZV9kZWxldGUgeGxyZWNfZGVsZXRlOwogCisJCXhscmVjX2RlbGV0ZS5vbkNhdGFsb2dUYWJs ZSA9CisJCQlSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKGhlYXBSZWwp OwogCQl4bHJlY19kZWxldGUubGF0ZXN0UmVtb3ZlZFhpZCA9IGxhdGVzdFJlbW92ZWRYaWQ7 CiAJCXhscmVjX2RlbGV0ZS5uZGVsZXRlZCA9IG5kZWxldGFibGU7CiAJCXhscmVjX2RlbGV0 ZS5udXBkYXRlZCA9IG51cGRhdGFibGU7CkBAIC0xNjg1LDcgKzE2OTEsNyBAQCBfYnRfZGVs aXRlbXNfZGVsZXRlX2NoZWNrKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwgUmVsYXRpb24g aGVhcFJlbCwKIAogCS8qIFBoeXNpY2FsbHkgZGVsZXRlIHR1cGxlcyAob3IgVElEcykgdXNp bmcgZGVsZXRhYmxlIChvciB1cGRhdGFibGUpICovCiAJX2J0X2RlbGl0ZW1zX2RlbGV0ZShy ZWwsIGJ1ZiwgbGF0ZXN0UmVtb3ZlZFhpZCwgZGVsZXRhYmxlLCBuZGVsZXRhYmxlLAotCQkJ CQkJdXBkYXRhYmxlLCBudXBkYXRhYmxlKTsKKwkJCQkJCXVwZGF0YWJsZSwgbnVwZGF0YWJs ZSwgaGVhcFJlbCk7CiAKIAkvKiBiZSB0aWR5ICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBu dXBkYXRhYmxlOyBpKyspCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpp bmRleCA3NmZiMDM3NGM0Li4zMTg2ODg1ZDE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BndmFjdXVtLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2lu ZGV4ZnNtLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMv c25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogCiAKIC8qIEVudHJ5 IGluIHBlbmRpbmctbGlzdCBvZiBUSURzIHdlIG5lZWQgdG8gcmV2aXNpdCAqLwpAQCAtNTAz LDYgKzUwNCwxMyBAQCB2YWN1dW1SZWRpcmVjdEFuZFBsYWNlaG9sZGVyKFJlbGF0aW9uIGlu ZGV4LCBCdWZmZXIgYnVmZmVyKQogCXNwZ3hsb2dWYWN1dW1SZWRpcmVjdCB4bHJlYzsKIAlH bG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsKIAorCS8qCisJICogVGhlcmUgaXMgbm8gY2hhbmNl IG9mIGVuZGxlc3MgcmVjdXJzaW9uIGV2ZW4gd2hlbiB3ZSBhcmUgZG9pbmcgY2F0YWxvZwor CSAqIGFjY2VzZXMgaGVyZTsgYmVjYXVzZSwgc3BnaXN0IGlzIG5ldmVyIHVzZWQgZm9yIGNh dGFsb2dzLiBDaGVjaworCSAqIGNvbW1lbnRzIGluIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5M b2dpY2FsRGVjb2RpbmcoKS4KKwkgKi8KKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IGdldF9y ZWxfbG9naWNhbF9jYXRhbG9nKGluZGV4LT5yZF9pbmRleC0+aW5kcmVsaWQpOworCiAJeGxy ZWMublRvUGxhY2Vob2xkZXIgPSAwOwogCXhscmVjLm5ld2VzdFJlZGlyZWN0WGlkID0gSW52 YWxpZFRyYW5zYWN0aW9uSWQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMK aW5kZXggNGViYWE1NTJhMi4uMmZkYTIzODg3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaGFzaC5o IgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3Mv bmJ0cmVlLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYm9vdHN0 cmFwL2Jvb3RzdHJhcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19hbS5oIgpAQCAtMjA2Miw2ICsyMDYzLDIwIEBAIGdldF9yZWxf cGVyc2lzdGVuY2UoT2lkIHJlbGlkKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wKK2dl dF9yZWxfbG9naWNhbF9jYXRhbG9nKE9pZCByZWxpZCkKK3sKKwlib29sCXJlczsKKwlSZWxh dGlvbiByZWw7CisKKwkvKiBhc3N1bWUgcHJldmlvdXNseSBsb2NrZWQgKi8KKwlyZWwgPSB0 YWJsZV9vcGVuKHJlbGlkLCBOb0xvY2spOworCXJlcyA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxl SW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisK KwlyZXR1cm4gcmVzOworfQorCiAKIC8qCQkJCS0tLS0tLS0tLS0gVFJBTlNGT1JNIENBQ0hF IC0tLS0tLS0tLS0JCQkJCQkgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L2dpc3RfcHJpdmF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCmlu ZGV4IDU1M2QzNjRlMmQuLmEwZjQwMTU1NTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0X3ByaXZhdGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2 YXRlLmgKQEAgLTQ0MCw4ICs0NDAsOCBAQCBleHRlcm4gWExvZ1JlY1B0ciBnaXN0WExvZ1Bh Z2VEZWxldGUoQnVmZmVyIGJ1ZmZlciwKIAkJCQkJCQkJCSBGdWxsVHJhbnNhY3Rpb25JZCB4 aWQsIEJ1ZmZlciBwYXJlbnRCdWZmZXIsCiAJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyIGRvd25s aW5rT2Zmc2V0KTsKIAotZXh0ZXJuIHZvaWQgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24g cmVsLCBCbG9ja051bWJlciBibGtubywKLQkJCQkJCQkgIEZ1bGxUcmFuc2FjdGlvbklkIGxh dGVzdFJlbW92ZWRYaWQpOworZXh0ZXJuIHZvaWQgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRp b24gaGVhcFJlbCwgUmVsYXRpb24gcmVsLAorCQkJCSAgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1 bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpOwogCiBleHRlcm4gWExvZ1JlY1B0 ciBnaXN0WExvZ1VwZGF0ZShCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkgT2Zmc2V0TnVtYmVy ICp0b2RlbGV0ZSwgaW50IG50b2RlbGV0ZSwKQEAgLTQ4NSw3ICs0ODUsNyBAQCBleHRlcm4g Ym9vbCBnaXN0cHJvcGVydHkoT2lkIGluZGV4X29pZCwgaW50IGF0dG5vLAogZXh0ZXJuIGJv b2wgZ2lzdGZpdHBhZ2UoSW5kZXhUdXBsZSAqaXR2ZWMsIGludCBsZW4pOwogZXh0ZXJuIGJv b2wgZ2lzdG5vc3BhY2UoUGFnZSBwYWdlLCBJbmRleFR1cGxlICppdHZlYywgaW50IGxlbiwg T2Zmc2V0TnVtYmVyIHRvZGVsZXRlLCBTaXplIGZyZWVzcGFjZSk7CiBleHRlcm4gdm9pZCBn aXN0Y2hlY2twYWdlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1Zik7Ci1leHRlcm4gQnVmZmVy IGdpc3ROZXdCdWZmZXIoUmVsYXRpb24gcik7CitleHRlcm4gQnVmZmVyIGdpc3ROZXdCdWZm ZXIoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRpb24gcik7CiBleHRlcm4gYm9vbCBnaXN0UGFn ZVJlY3ljbGFibGUoUGFnZSBwYWdlKTsKIGV4dGVybiB2b2lkIGdpc3RmaWxsYnVmZmVyKFBh Z2UgcGFnZSwgSW5kZXhUdXBsZSAqaXR1cCwgaW50IGxlbiwKIAkJCQkJCSAgIE9mZnNldE51 bWJlciBvZmYpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAppbmRleCBmZDUxNDRmMjU4Li43Mzk5 OWRkYzcwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaApAQCAtNDksOSArNDksOSBAQCB0eXBl ZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VVcGRhdGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2lz dHhsb2dEZWxldGUKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWludDE2CQludG9kZWxldGU7CQkvKiBudW1iZXIgb2Yg ZGVsZXRlZCBvZmZzZXRzICovCi0KIAkvKgogCSAqIEluIHBheWxvYWQgb2YgYmxrIDAgOiB0 b2RlbGV0ZSBPZmZzZXROdW1iZXJzCiAJICovCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYg c3RydWN0IGdpc3R4bG9nUGFnZURlbGV0ZQogICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0eGxv Z1BhZ2VSZXVzZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVJlbEZpbGVOb2RlIG5v ZGU7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVt b3ZlZEZ1bGxYaWQ7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9n LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmgKaW5kZXggNDM1M2EzMmRiYi4u OTRjMzI5MmMxZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoX3hsb2cuaApAQCAtMjUwLDYgKzI1MCw3 IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hhc2hfaW5pdF9iaXRtYXBfcGFnZQogICovCiB0eXBl ZGVmIHN0cnVjdCB4bF9oYXNoX3ZhY3V1bV9vbmVfcGFnZQogeworCWJvb2wJCW9uQ2F0YWxv Z1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAlpbnQJCQludHVw bGVzOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IDI3ZGI0ODE4NGUuLmVi YTQ4YjBhZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCkBAIC0yNDIsNiArMjQy LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF91cGRhdGUKICAqLwogdHlwZWRlZiBzdHJ1 Y3QgeGxfaGVhcF9wcnVuZQogeworCWJvb2wgICAgICBvbkNhdGFsb2dUYWJsZTsKIAlUcmFu c2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWludDE2CQlucmVkaXJlY3RlZDsKIAl1 aW50MTYJCW5kZWFkOwpAQCAtMzM4LDYgKzMzOSw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hl YXBfZnJlZXplX3R1cGxlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3Bh Z2UKIHsKKwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGN1dG9mZl94 aWQ7CiAJdWludDE2CQludHVwbGVzOwogfSB4bF9oZWFwX2ZyZWV6ZV9wYWdlOwpAQCAtMzUy LDYgKzM1NCw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BhZ2UKICAqLwog dHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF92aXNpYmxlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFi bGU7CiAJVHJhbnNhY3Rpb25JZCBjdXRvZmZfeGlkOwogCXVpbnQ4CQlmbGFnczsKIH0geGxf aGVhcF92aXNpYmxlOwpAQCAtNDEzLDcgKzQxNiw3IEBAIGV4dGVybiBib29sIGhlYXBfcHJl cGFyZV9mcmVlemVfdHVwbGUoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLAogCQkJCQkJCQkJICBi b29sICp0b3RhbGx5X2Zyb3plbik7CiBleHRlcm4gdm9pZCBoZWFwX2V4ZWN1dGVfZnJlZXpl X3R1cGxlKEhlYXBUdXBsZUhlYWRlciB0dXBsZSwKIAkJCQkJCQkJCSAgeGxfaGVhcF9mcmVl emVfdHVwbGUgKnhscmVjX3RwKTsKLWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2li bGUoUmVsRmlsZU5vZGUgcm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKK2V4dGVybiBYTG9n UmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZm ZXIsCiAJCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIsIFRyYW5zYWN0aW9uSWQgY3V0b2Zm X3hpZCwgdWludDggZmxhZ3MpOwogCiAjZW5kaWYJCQkJCQkJLyogSEVBUEFNX1hMT0dfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaCBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9uYnR4bG9nLmgKaW5kZXggMGY3NzMxODU2Yi4uYjE1YWE0N2YxYiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL25idHhsb2cuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvbmJ0eGxvZy5oCkBAIC0xODUsNiArMTg1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg eGxfYnRyZWVfZGVkdXAKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfcmV1c2VfcGFn ZQogeworCWJvb2wgICAgICAgIG9uQ2F0YWxvZ1RhYmxlOwogCVJlbEZpbGVOb2RlIG5vZGU7 CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3Zl ZEZ1bGxYaWQ7CkBAIC0yMzIsNiArMjMzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVf dmFjdXVtCiAKIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX2RlbGV0ZQogeworCWJvb2wJCW9u Q2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAl1aW50 MTYJCW5kZWxldGVkOwogCXVpbnQxNgkJbnVwZGF0ZWQ7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9hY2Nlc3Mvc3BneGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaApp bmRleCA2OTQwNWI1NzUwLi4wNmI5MWY0ZDA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9h Y2Nlc3Mvc3BneGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKQEAg LTIzNyw2ICsyMzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcGd4bG9nVmFjdXVtUm9vdAogCiB0 eXBlZGVmIHN0cnVjdCBzcGd4bG9nVmFjdXVtUmVkaXJlY3QKIHsKKwlib29sCQlvbkNhdGFs b2dUYWJsZTsKIAl1aW50MTYJCW5Ub1BsYWNlaG9sZGVyOyAvKiBudW1iZXIgb2YgcmVkaXJl Y3RzIHRvIG1ha2UgcGxhY2Vob2xkZXJzICovCiAJT2Zmc2V0TnVtYmVyIGZpcnN0UGxhY2Vo b2xkZXI7CS8qIGZpcnN0IHBsYWNlaG9sZGVyIHR1cGxlIHRvIHJlbW92ZSAqLwogCVRyYW5z YWN0aW9uSWQgbmV3ZXN0UmVkaXJlY3RYaWQ7CS8qIG5ld2VzdCBYSUQgb2YgcmVtb3ZlZCBy ZWRpcmVjdHMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggNzc4NzFhYWVmYy4uZTJh NWVmZWQzMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysr IGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBl eHRlcm4gY2hhciBnZXRfcmVsX3JlbGtpbmQoT2lkIHJlbGlkKTsKIGV4dGVybiBib29sIGdl dF9yZWxfcmVsaXNwYXJ0aXRpb24oT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90 YWJsZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gY2hhciBnZXRfcmVsX3BlcnNpc3RlbmNl KE9pZCByZWxpZCk7CitleHRlcm4gYm9vbCBnZXRfcmVsX2xvZ2ljYWxfY2F0YWxvZyhPaWQg cmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX2Zyb21zcWwoT2lkIHR5cGlkLCBP aWQgbGFuZ2lkLCBMaXN0ICp0cmZ0eXBlcyk7CiBleHRlcm4gT2lkCWdldF90cmFuc2Zvcm1f dG9zcWwoT2lkIHR5cGlkLCBPaWQgbGFuZ2lkLCBMaXN0ICp0cmZ0eXBlcyk7CiBleHRlcm4g Ym9vbCBnZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS91dGlscy9yZWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCmluZGV4IGI0ZmFh MWMxMjMuLjY0OGFlYWNkNzggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5o CisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j bHVkZSAic3RvcmFnZS9zbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy9yZWx0cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9n LmgiCiAKIAogLyoKQEAgLTM2NSw2ICszNjYsOSBAQCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9w dGlvbnMKICAqIFJlbGF0aW9uSXNVc2VkQXNDYXRhbG9nVGFibGUKICAqCQlSZXR1cm5zIHdo ZXRoZXIgdGhlIHJlbGF0aW9uIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgY2F0YWxvZyB0YWJs ZQogICoJCWZyb20gdGhlIHBvdiBvZiBsb2dpY2FsIGRlY29kaW5nLiAgTm90ZSBtdWx0aXBs ZSBldmFsIG9mIGFyZ3VtZW50IQorICoJCVRoaXMgZGVmaW5pdGlvbiBzaG91bGQgbm90IGlu dm9rZSBhbnl0aGluZyB0aGF0IHBlcmZvcm1zIGNhdGFsb2cKKyAqCQlhY2Nlc3M7IG90aGVy d2lzZSBpdCBtYXkgY2F1c2UgaW5maW5pdGUgcmVjdXJzaW9uLiBDaGVjayB0aGUgY29tbWVu dHMKKyAqCQlpbiBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKCkgZm9y IGRldGFpbHMuCiAgKi8KICNkZWZpbmUgUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShy ZWxhdGlvbikJXAogCSgocmVsYXRpb24pLT5yZF9vcHRpb25zICYmIFwKQEAgLTY1Myw2ICs2 NTcsMTEgQEAgUmVsYXRpb25HZXRTbWdyKFJlbGF0aW9uIHJlbCkKICAqIFJlbGF0aW9uSXNB Y2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcKICAqCQlUcnVlIGlmIHdlIG5lZWQgdG8gbG9n IGVub3VnaCBpbmZvcm1hdGlvbiB0byBoYXZlIGFjY2VzcyB2aWEKICAqCQlkZWNvZGluZyBz bmFwc2hvdC4KKyAqCQlUaGlzIGRlZmluaXRpb24gc2hvdWxkIG5vdCBpbnZva2UgYW55dGhp bmcgdGhhdCBwZXJmb3JtcyBjYXRhbG9nCisgKgkJYWNjZXNzLiBPdGhlcndpc2UsIGUuZy4g bG9nZ2luZyBhIFdBTCBlbnRyeSBmb3IgY2F0YWxvZyByZWxhdGlvbiBtYXkKKyAqCQlpbnZv a2UgdGhpcyBmdW5jdGlvbiwgd2hpY2ggd2lsbCBpbiB0dXJuIGRvIGNhdGFsb2cgYWNjZXNz LCB3aGljaCBtYXkKKyAqCQlpbiB0dXJuIGNhdXNlIGFub3RoZXIgc2ltaWxhciBXQUwgZW50 cnkgdG8gYmUgbG9nZ2VkLCBsZWFkaW5nIHRvCisgKgkJaW5maW5pdGUgcmVjdXJzaW9uLgog ICovCiAjZGVmaW5lIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVs YXRpb24pIFwKIAkoWExvZ0xvZ2ljYWxJbmZvQWN0aXZlKCkgJiYgXAotLSAKMi4xOC40Cgo= --------------36F8C269D440200CD429EBCF Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v24-0006-Fixing-Walsender-corner-cases-with-logical-decod.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v24-0006-Fixing-Walsender-corner-cases-with-logical-decod.pa"; filename*1="tch" RnJvbSAyMjUxNzU1NmRhMzQwNzVjYTFhM2RhYWRlYmM5YTQ1YWU1OGM2ZmE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNSBTZXAgMjAyMSAxMTowNzowMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjI0IDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZXMgd2l0aCBsb2dpY2Fs IGRlY29kaW5nCiBvbiBzdGFuZGJ5LgoKVGhlIHByb2JsZW0gaXMgdGhhdCBXYWxTbmRXYWl0 Rm9yV2FsKCkgd2FpdHMgZm9yIHRoZSAqcmVwbGF5KiBMU04gdG8KaW5jcmVhc2UsIGJ1dCBn ZXRzIHdva2VuIHVwIGJ5IHdhbHJlY2VpdmVyIHdoZW4gbmV3IFdBTCBoYXMgYmVlbgpmbHVz aGVkLiBXaGljaCBtZWFucyB0aGF0IHR5cGljYWxseSB3YWxzZW5kZXJzIHdpbGwgZ2V0IHdv a2VuIHVwIGF0IHRoZQpzYW1lIHRpbWUgdGhhdCB0aGUgc3RhcnR1cCBwcm9jZXNzIHdpbGwg YmUgLSB3aGljaCBtZWFucyB0aGF0IGJ5IHRoZQp0aW1lIHRoZSBsb2dpY2FsIHdhbHNlbmRl ciBjaGVja3MgR2V0WExvZ1JlcGxheVJlY1B0cigpIGl0J3MgdW5saWtlbHkKdGhhdCB0aGUg c3RhcnR1cCBwcm9jZXNzIGFscmVhZHkgcmVwbGF5ZWQgdGhlIHJlY29yZCBhbmQgdXBkYXRl ZApYTG9nQ3RsLT5sYXN0UmVwbGF5ZWRFbmRSZWNQdHIuCgpGaXhlZCBieSBtYWtpbmcgdXNl ZCBvZiBhIGNvbmRpdGlvbiB2YXJpYWJsZSBvbiB0aGUgcmVwbGF5IHBvc2l0aW9uLgotLS0K IHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICB8IDIwICsrKysrKysr KysrKystLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgfCAy OSArKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS93YWl0X2V2ZW50LmMgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5oICAgICB8IDEyICsrKysrKysrKysKIHNyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZl bnQuaCAgICAgICAgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygr KSwgMTIgZGVsZXRpb25zKC0pCiAgMjkuNiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v CiAgNTIuNyUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDQuMSUgc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvCiAgMTEuNyUgc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGMyNWEyMmEwYzkuLjk4NDNkMmQ2YmYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTcyNyw2ICs3MjcsNyBAQCB0 eXBlZGVmIHN0cnVjdCBYTG9nQ3RsRGF0YQogfSBYTG9nQ3RsRGF0YTsKIAogc3RhdGljIFhM b2dDdGxEYXRhICpYTG9nQ3RsID0gTlVMTDsKK1hMb2dDdGxDdkRhdGEgKlhMb2dDdGxDdiA9 IE5VTEw7CiAKIC8qIGEgcHJpdmF0ZSBjb3B5IG9mIFhMb2dDdGwtPkluc2VydC5XQUxJbnNl cnRMb2NrcywgZm9yIGNvbnZlbmllbmNlICovCiBzdGF0aWMgV0FMSW5zZXJ0TG9ja1BhZGRl ZCAqV0FMSW5zZXJ0TG9ja3MgPSBOVUxMOwpAQCAtNTE0MSw3ICs1MTQyLDggQEAgdm9pZAog WExPR1NobWVtSW5pdCh2b2lkKQogewogCWJvb2wJCWZvdW5kQ0ZpbGUsCi0JCQkJZm91bmRY TG9nOworCQkJCWZvdW5kWExvZywKKwkJCQlmb3VuZFhMb2dDdjsKIAljaGFyCSAgICphbGxv Y3B0cjsKIAlpbnQJCQlpOwogCUNvbnRyb2xGaWxlRGF0YSAqbG9jYWxDb250cm9sRmlsZTsK QEAgLTUxNjYsMTQgKzUxNjgsMTcgQEAgWExPR1NobWVtSW5pdCh2b2lkKQogCVhMb2dDdGwg PSAoWExvZ0N0bERhdGEgKikKIAkJU2htZW1Jbml0U3RydWN0KCJYTE9HIEN0bCIsIFhMT0dT aG1lbVNpemUoKSwgJmZvdW5kWExvZyk7CiAKKwlYTG9nQ3RsQ3YgPSAoWExvZ0N0bEN2RGF0 YSAqKQorCQlTaG1lbUluaXRTdHJ1Y3QoIlhMT0cgQ3YgQ3RsIiwgc2l6ZW9mKFhMb2dDdGxD dkRhdGEpLCAmZm91bmRYTG9nQ3YpOworCiAJbG9jYWxDb250cm9sRmlsZSA9IENvbnRyb2xG aWxlOwogCUNvbnRyb2xGaWxlID0gKENvbnRyb2xGaWxlRGF0YSAqKQogCQlTaG1lbUluaXRT dHJ1Y3QoIkNvbnRyb2wgRmlsZSIsIHNpemVvZihDb250cm9sRmlsZURhdGEpLCAmZm91bmRD RmlsZSk7CiAKLQlpZiAoZm91bmRDRmlsZSB8fCBmb3VuZFhMb2cpCisJaWYgKGZvdW5kQ0Zp bGUgfHwgZm91bmRYTG9nIHx8IGZvdW5kWExvZ0N2KQogCXsKLQkJLyogYm90aCBzaG91bGQg YmUgcHJlc2VudCBvciBuZWl0aGVyICovCi0JCUFzc2VydChmb3VuZENGaWxlICYmIGZvdW5k WExvZyk7CisJCS8qIEFsbCBzaG91bGQgYmUgcHJlc2VudCBvciBuZWl0aGVyICovCisJCUFz c2VydChmb3VuZENGaWxlICYmIGZvdW5kWExvZyAmJiBmb3VuZFhMb2dDdik7CiAKIAkJLyog SW5pdGlhbGl6ZSBsb2NhbCBjb3B5IG9mIFdBTEluc2VydExvY2tzICovCiAJCVdBTEluc2Vy dExvY2tzID0gWExvZ0N0bC0+SW5zZXJ0LldBTEluc2VydExvY2tzOwpAQCAtNTE4Myw2ICs1 MTg4LDcgQEAgWExPR1NobWVtSW5pdCh2b2lkKQogCQlyZXR1cm47CiAJfQogCW1lbXNldChY TG9nQ3RsLCAwLCBzaXplb2YoWExvZ0N0bERhdGEpKTsKKwltZW1zZXQoWExvZ0N0bEN2LCAw LCBzaXplb2YoWExvZ0N0bEN2RGF0YSkpOwogCiAJLyoKIAkgKiBBbHJlYWR5IGhhdmUgcmVh ZCBjb250cm9sIGZpbGUgbG9jYWxseSwgdW5sZXNzIGluIGJvb3RzdHJhcCBtb2RlLiBNb3Zl CkBAIC01MjQ0LDYgKzUyNTAsNyBAQCBYTE9HU2htZW1Jbml0KHZvaWQpCiAJU3BpbkxvY2tJ bml0KCZYTG9nQ3RsLT51bHNuX2xjayk7CiAJSW5pdFNoYXJlZExhdGNoKCZYTG9nQ3RsLT5y ZWNvdmVyeVdha2V1cExhdGNoKTsKIAlDb25kaXRpb25WYXJpYWJsZUluaXQoJlhMb2dDdGwt PnJlY292ZXJ5Tm90UGF1c2VkQ1YpOworCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmWExvZ0N0 bEN2LT5yZXBsYXllZENWKTsKIH0KIAogLyoKQEAgLTc1NDIsNiArNzU0OSwxMSBAQCBTdGFy dHVwWExPRyh2b2lkKQogCQkJCVhMb2dDdGwtPmxhc3RSZXBsYXllZFRMSSA9IFRoaXNUaW1l TGluZUlEOwogCQkJCVNwaW5Mb2NrUmVsZWFzZSgmWExvZ0N0bC0+aW5mb19sY2spOwogCisJ CQkJLyoKKwkJCQkgKiB3YWtlIHVwIHdhbHNlbmRlcihzKSB1c2VkIGJ5IGxvZ2ljYWwgZGVj b2Rpbmcgb24gc3RhbmRieS4KKwkJCQkgKi8KKwkJCQlDb25kaXRpb25WYXJpYWJsZUJyb2Fk Y2FzdCgmWExvZ0N0bEN2LT5yZXBsYXllZENWKTsKKwogCQkJCS8qCiAJCQkJICogSWYgcm1f cmVkbyBjYWxsZWQgWExvZ1JlcXVlc3RXYWxSZWNlaXZlclJlcGx5LCB0aGVuIHdlIHdha2UK IAkJCQkgKiB1cCB0aGUgcmVjZWl2ZXIgc28gdGhhdCBpdCBub3RpY2VzIHRoZSB1cGRhdGVk CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGRhMjUzM2UxYzkuLjRk MDdkMjhhMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0xMzk0 LDYgKzEzOTQsNyBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIgbG9jKQogewogCWlu dAkJCXdha2VFdmVudHM7CiAJc3RhdGljIFhMb2dSZWNQdHIgUmVjZW50Rmx1c2hQdHIgPSBJ bnZhbGlkWExvZ1JlY1B0cjsKKwlYTG9nQ3RsQ3ZEYXRhICp4bG9nY3RsY3YgPSBYTG9nQ3Rs Q3Y7CiAKIAkvKgogCSAqIEZhc3QgcGF0aCB0byBhdm9pZCBhY3F1aXJpbmcgdGhlIHNwaW5s b2NrIGluIGNhc2Ugd2UgYWxyZWFkeSBrbm93IHdlCkBAIC0xNDEyLDcgKzE0MTMsNiBAQCBX YWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIgbG9jKQogCiAJZm9yICg7OykKIAl7Ci0JCWxv bmcJCXNsZWVwdGltZTsKIAogCQkvKiBDbGVhciBhbnkgYWxyZWFkeS1wZW5kaW5nIHdha2V1 cHMgKi8KIAkJUmVzZXRMYXRjaChNeUxhdGNoKTsKQEAgLTE0OTYsMjAgKzE0OTYsMzMgQEAg V2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJV2FsU25kS2VlcGFsaXZlSWZO ZWNlc3NhcnkoKTsKIAogCQkvKgotCQkgKiBTbGVlcCB1bnRpbCBzb21ldGhpbmcgaGFwcGVu cyBvciB3ZSB0aW1lIG91dC4gIEFsc28gd2FpdCBmb3IgdGhlCi0JCSAqIHNvY2tldCBiZWNv bWluZyB3cml0YWJsZSwgaWYgdGhlcmUncyBzdGlsbCBwZW5kaW5nIG91dHB1dC4KKwkJICog V2hlbiBub3QgaW4gcmVjb3ZlcnksIHNsZWVwIHVudGlsIHNvbWV0aGluZyBoYXBwZW5zIG9y IHdlIHRpbWUgb3V0LgorCQkgKiBBbHNvIHdhaXQgZm9yIHRoZSBzb2NrZXQgYmVjb21pbmcg d3JpdGFibGUsIGlmIHRoZXJlJ3Mgc3RpbGwgcGVuZGluZyBvdXRwdXQuCiAJCSAqIE90aGVy d2lzZSB3ZSBtaWdodCBzaXQgb24gc2VuZGFibGUgb3V0cHV0IGRhdGEgd2hpbGUgd2FpdGlu ZyBmb3IKIAkJICogbmV3IFdBTCB0byBiZSBnZW5lcmF0ZWQuICAoQnV0IGlmIHdlIGhhdmUg bm90aGluZyB0byBzZW5kLCB3ZSBkb24ndAogCQkgKiB3YW50IHRvIHdha2Ugb24gc29ja2V0 LXdyaXRhYmxlLikKIAkJICovCi0JCXNsZWVwdGltZSA9IFdhbFNuZENvbXB1dGVTbGVlcHRp bWUoR2V0Q3VycmVudFRpbWVzdGFtcCgpKTsKKwkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3Mo KSkKKwkJeworCQkJbG9uZwkJc2xlZXB0aW1lOworCQkJc2xlZXB0aW1lID0gV2FsU25kQ29t cHV0ZVNsZWVwdGltZShHZXRDdXJyZW50VGltZXN0YW1wKCkpOwogCi0JCXdha2VFdmVudHMg PSBXTF9TT0NLRVRfUkVBREFCTEU7CisJCQl3YWtlRXZlbnRzID0gV0xfU09DS0VUX1JFQURB QkxFOwogCi0JCWlmIChwcV9pc19zZW5kX3BlbmRpbmcoKSkKLQkJCXdha2VFdmVudHMgfD0g V0xfU09DS0VUX1dSSVRFQUJMRTsKKwkJCWlmIChwcV9pc19zZW5kX3BlbmRpbmcoKSkKKwkJ CQl3YWtlRXZlbnRzIHw9IFdMX1NPQ0tFVF9XUklURUFCTEU7CiAKLQkJV2FsU25kV2FpdCh3 YWtlRXZlbnRzLCBzbGVlcHRpbWUsIFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX1dBTCk7 CisJCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSAqIDEwLCBXQUlUX0VWRU5U X1dBTF9TRU5ERVJfV0FJVF9XQUwpOworCQl9CisJCWVsc2UKKwkJLyoKKwkJICogV2UgYXJl IGluIHRoZSBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgY2FzZS4KKwkJICogV2UgYXJl IHdhaXRpbmcgZm9yIHRoZSBzdGFydHVwIHByb2Nlc3MgdG8gcmVwbGF5IHdhbCByZWNvcmQo cykuCisJCSAqLworCQl7CisJCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZ4 bG9nY3RsY3YtPnJlcGxheWVkQ1YpOworCQkJQ29uZGl0aW9uVmFyaWFibGVTbGVlcCgmeGxv Z2N0bGN2LT5yZXBsYXllZENWLCBXQUlUX0VWRU5UX1dBTF9TRU5ERVJfV0FJVF9SRVBMQVkp OworCQl9CiAJfQogCiAJLyogcmVhY3RpdmF0ZSBsYXRjaCBzbyBXYWxTbmRMb29wIGtub3dz IHRvIGNvbnRpbnVlICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS93YWl0X2V2ZW50LmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50 LmMKaW5kZXggZWY3ZTZiZmI3Ny4uNmU3NGU2MDYzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3dhaXRfZXZlbnQuYwpAQCAtNDQ4LDYgKzQ0OCw5IEBAIHBnc3RhdF9nZXRf d2FpdF9pcGMoV2FpdEV2ZW50SVBDIHcpCiAJCWNhc2UgV0FJVF9FVkVOVF9XQUxfUkVDRUlW RVJfV0FJVF9TVEFSVDoKIAkJCWV2ZW50X25hbWUgPSAiV2FsUmVjZWl2ZXJXYWl0U3RhcnQi OwogCQkJYnJlYWs7CisJCWNhc2UgV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZ OgorCQkJZXZlbnRfbmFtZSA9ICJXYWxSZWNlaXZlcldhaXRSZXBsYXkiOworCQkJYnJlYWs7 CiAJCWNhc2UgV0FJVF9FVkVOVF9YQUNUX0dST1VQX1VQREFURToKIAkJCWV2ZW50X25hbWUg PSAiWGFjdEdyb3VwVXBkYXRlIjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuaAppbmRleCA4MjgxMDY5MzNjLi43YTJjMDRjOTM3IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaAorKysgYi9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuaApAQCAtMTMsNiArMTMsNyBAQAogI2RlZmluZSBfV0FM U0VOREVSX0gKIAogI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgInN0b3JhZ2UvY29u ZGl0aW9uX3ZhcmlhYmxlLmgiCiAKIC8qCiAgKiBXaGF0IHRvIGRvIHdpdGggYSBzbmFwc2hv dCBpbiBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBjb21tYW5kLgpAQCAtNDgsNiArNDksMTcg QEAgZXh0ZXJuIHZvaWQgV2FsU25kV2FpdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQg SGFuZGxlV2FsU25kSW5pdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQgV2FsU25kUnFz dEZpbGVSZWxvYWQodm9pZCk7CiAKKy8qCisgKiBzaGFyZWQtbWVtb3J5IHN0YXRlIGZvciBD b25kaXRpb24gVmFyaWFibGUocykKKyAqIGJldHdlZW4gdGhlIHN0YXJ0dXAgcHJvY2VzcyBh bmQgdGhlIHdhbHNlbmRlci4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgWExvZ0N0bEN2RGF0YQor eworCUNvbmRpdGlvblZhcmlhYmxlIHJlcGxheWVkQ1Y7Cit9IFhMb2dDdGxDdkRhdGE7CisK K2V4dGVybiBYTG9nQ3RsQ3ZEYXRhICpYTG9nQ3RsQ3Y7CisKIC8qCiAgKiBSZW1lbWJlciB0 aGF0IHdlIHdhbnQgdG8gd2FrZXVwIHdhbHNlbmRlcnMgbGF0ZXIKICAqCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmggYi9zcmMvaW5jbHVkZS91dGlscy93 YWl0X2V2ZW50LmgKaW5kZXggNjAwNzgyN2I0NC4uNTNkOGNlODVjNSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3dhaXRfZXZlbnQuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHR5cGVkZWYgZW51bQogCVdBSVRf RVZFTlRfU1lOQ19SRVAsCiAJV0FJVF9FVkVOVF9XQUxfUkVDRUlWRVJfRVhJVCwKIAlXQUlU X0VWRU5UX1dBTF9SRUNFSVZFUl9XQUlUX1NUQVJULAorCVdBSVRfRVZFTlRfV0FMX1NFTkRF Ul9XQUlUX1JFUExBWSwKIAlXQUlUX0VWRU5UX1hBQ1RfR1JPVVBfVVBEQVRFCiB9IFdhaXRF dmVudElQQzsKIAotLSAKMi4xOC40Cgo= --------------36F8C269D440200CD429EBCF Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v24-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v24-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" RnJvbSAxNzU1NDFhYjU5YzNiZTE2MmQ0NDBmNjJjMjVjNjQzMTBiMTAxNWVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNSBTZXAgMjAyMSAxMDo0MTo0NCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjI0IDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJz aW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJl cnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBk ZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8 IDIxICsrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKykKIDEwMC4wJSBkb2Mvc3JjL3NnbWwvCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sCmluZGV4IGI2MzUzYzdhMTIuLjk4ZmZmYzQzNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTMxNiw2ICszMTYsMjcgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBm cm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVM TCwgTlUKICAgICAgbWF5IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEgc2xvdCBhdCBhbnkgZ2l2 ZW4gdGltZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgY2FuIGFsc28gYmUgY3JlYXRlZCBvbiBhIGhvdCBzdGFuZGJ5LiBU byBwcmV2ZW50CisgICAgIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gZnJvbSByZW1vdmlu ZyByZXF1aXJlZCByb3dzIGZyb20gdGhlIHN5c3RlbQorICAgICBjYXRhbG9ncywgPHZhcm5h bWU+aG90X3N0YW5kYnlfZmVlZGJhY2s8L3Zhcm5hbWU+IHNob3VsZCBiZSBzZXQgb24gdGhl CisgICAgIHN0YW5kYnkuIEluIHNwaXRlIG9mIHRoYXQsIGlmIGFueSByZXF1aXJlZCByb3dz IGdldCByZW1vdmVkLCB0aGUgc2xvdCBnZXRzCisgICAgIGludmFsaWRhdGVkLiBJdCdzIGhp Z2hseSByZWNvbW1lbmRlZCB0byB1c2UgYSBwaHlzaWNhbCBzbG90IGJldHdlZW4gdGhlIHBy aW1hcnkKKyAgICAgYW5kIHRoZSBzdGFuZGJ5LiBPdGhlcndpc2UsIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHdpbGwgd29yaywgYnV0IG9ubHkgd2hpbGUgdGhlIAorICAgICBjb25uZWN0aW9u IGlzIGFsaXZlIChmb3IgZXhhbXBsZSBhIG5vZGUgcmVzdGFydCB3b3VsZCBicmVhayBpdCku IEV4aXN0aW5nIAorICAgICBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkgYWxzbyBnZXQgaW52 YWxpZGF0ZWQgaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0bworICAgICBs ZXNzIHRoYW4gJ2xvZ2ljYWwnLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBG b3IgYSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCwgaXQgYnVpbGRzIGEgaGlzdG9yaWMg c25hcHNob3QsIGZvciB3aGljaAorICAgICBpbmZvcm1hdGlvbiBvZiBhbGwgdGhlIGN1cnJl bnRseSBydW5uaW5nIHRyYW5zYWN0aW9ucyBpcyBlc3NlbnRpYWwuIE9uCisgICAgIHByaW1h cnksIHRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLCBidXQgb24gc3RhbmRieSwgdGhp cyBpbmZvcm1hdGlvbgorICAgICBoYXMgdG8gYmUgb2J0YWluZWQgZnJvbSBwcmltYXJ5LiBT bywgc2xvdCBjcmVhdGlvbiBtYXkgd2FpdCBmb3Igc29tZQorICAgICBhY3Rpdml0eSB0byBo YXBwZW4gb24gdGhlIHByaW1hcnkuIElmIHRoZSBwcmltYXJ5IGlzIGlkbGUsIGNyZWF0aW5n IGEKKyAgICAgbG9naWNhbCBzbG90IG9uIHN0YW5kYnkgbWF5IHRha2UgYSBub3RpY2VhYmxl IHRpbWUuCisgICAgPC9wYXJhPgorCiAgICAgPGNhdXRpb24+CiAgICAgIDxwYXJhPgogICAg ICAgUmVwbGljYXRpb24gc2xvdHMgcGVyc2lzdCBhY3Jvc3MgY3Jhc2hlcyBhbmQga25vdyBu b3RoaW5nIGFib3V0IHRoZSBzdGF0ZQotLSAKMi4xOC40Cgo= --------------36F8C269D440200CD429EBCF Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v24-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v24-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSBkM2QxMmNjODJlOGNlZGQ3NzczN2M0MTZkMTA4MzA4NDQ3NDYwMTNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNSBTZXAgMjAyMSAxMDo0MDoxNiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjI0IDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpBdXRob3I6IENyYWlnIFJpbmdlciAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQg S2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91 dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVs bG8KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbSAgICAgICAgICAgICAgICAg fCAgMzcgKysKIC4uLi90LzAyNl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwgICAgICAg ICB8IDQ5OCArKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNTM1IGluc2Vy dGlvbnMoKykKICAgNi4wJSBzcmMvdGVzdC9wZXJsLwogIDkzLjklIHNyYy90ZXN0L3JlY292 ZXJ5L3QvCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0gYi9z cmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbQppbmRleCBjNTlkYTc1OGM3Li5jYTBlNjNm YjJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbQorKysgYi9z cmMvdGVzdC9wZXJsL1Bvc3RncmVzTm9kZS5wbQpAQCAtMjY2OSw2ICsyNjY5LDQzIEBAIHN1 YiBwZ19yZWN2bG9naWNhbF91cHRvCiAKID1wb2QKIAorPWl0ZW0gJG5vZGUtPmNyZWF0ZV9s b2dpY2FsX3Nsb3Rfb25fc3RhbmRieShzZWxmLCBtYXN0ZXIsIHNsb3RfbmFtZSwgZGJuYW1l KQorCitDcmVhdGUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IG9uIGdpdmVuIHN0YW5kYnkK KworPWN1dAorCitzdWIgY3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5Cit7CisJbXkg KCRzZWxmLCAkbWFzdGVyLCAkc2xvdF9uYW1lLCAkZGJuYW1lKSA9IEBfOworCW15ICgkc3Rk b3V0LCAkc3RkZXJyKTsKKworCW15ICRoYW5kbGU7CisKKwkkaGFuZGxlID0gSVBDOjpSdW46 OnN0YXJ0KFsncGdfcmVjdmxvZ2ljYWwnLCAnLWQnLCAkc2VsZi0+Y29ubnN0cigkZGJuYW1l KSwgJy1QJywgJ3Rlc3RfZGVjb2RpbmcnLCAnLVMnLCAkc2xvdF9uYW1lLCAnLS1jcmVhdGUt c2xvdCddLCAnPicsIFwkc3Rkb3V0LCAnMj4nLCBcJHN0ZGVycik7CisKKwkjIE9uY2Ugc2xv dCByZXN0YXJ0X2xzbiBpcyBjcmVhdGVkLCB0aGUgc3RhbmRieSBsb29rcyBmb3IgeGxfcnVu bmluZ194YWN0cworCSMgV0FMIHJlY29yZCBmcm9tIHRoZSByZXN0YXJ0X2xzbiBvbndhcmRz LiBTbyBmaXJzdGx5LCB3YWl0IHVudGlsIHRoZSBzbG90CisJIyByZXN0YXJ0X2xzbiBpcyBl dmFsdWF0ZWQuCisKKwkkc2VsZi0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywg cXFbCisJCVNFTEVDVCByZXN0YXJ0X2xzbiBJUyBOT1QgTlVMTAorCQlGUk9NIHBnX2NhdGFs b2cucGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJyRzbG90X25hbWUn CisJXSkgb3IgZGllICJ0aW1lZCBvdXQgd2FpdGluZyBmb3IgbG9naWNhbCBzbG90IHRvIGNh bGN1bGF0ZSBpdHMgcmVzdGFydF9sc24iOworCisJIyBOb3cgYXJyYW5nZSBmb3IgdGhlIHhs X3J1bm5pbmdfeGFjdHMgcmVjb3JkIGZvciB3aGljaCBwZ19yZWN2bG9naWNhbAorCSMgaXMg d2FpdGluZy4KKwkkbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NIRUNLUE9JTlQn KTsKKworCSRoYW5kbGUtPmZpbmlzaCgpOworCisJaXMoJHNlbGYtPnNsb3QoJHNsb3RfbmFt ZSktPnsnc2xvdF90eXBlJ30sICdsb2dpY2FsJywgJHNsb3RfbmFtZSAuICcgb24gc3RhbmRi eSBjcmVhdGVkJykKKwkJb3IgZGllICJjb3VsZCBub3QgY3JlYXRlIHNsb3QiIC4gJHNsb3Rf bmFtZTsKK30KKworPXBvZAorCiA9YmFjawogCiA9Y3V0CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWNvdmVyeS90LzAyNl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVz dC9yZWNvdmVyeS90LzAyNl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMDUxM2NjYzM1MwotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDI2X3N0YW5kYnlfbG9naWNhbF9kZWNvZGlu Zy5wbApAQCAtMCwwICsxLDQ5OCBAQAorIyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg OiB0ZXN0IGxvZ2ljYWwgZGVjb2RpbmcsCisjIHJlY292ZXJ5IGNvbmZsaWN0IGFuZCBzdGFu ZGJ5IHByb21vdGlvbi4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBv c3RncmVzTm9kZTsKK3VzZSBUZXN0OjpNb3JlIHRlc3RzID0+IDM4OwordXNlIFRpbWU6Okhp UmVzIHF3KHVzbGVlcCk7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRyZXQs ICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVzTm9kZS0+ bmV3KCdwcmltYXJ5Jyk7CitteSAkbm9kZV9zdGFuZGJ5ID0gUG9zdGdyZXNOb2RlLT5uZXco J3N0YW5kYnknKTsKKworIyBOYW1lIGZvciB0aGUgcGh5c2ljYWwgc2xvdCBvbiBwcmltYXJ5 CitteSAkcHJpbWFyeV9zbG90bmFtZSA9ICdwcmltYXJ5X3BoeXNpY2FsJzsKKworIyByZXR1 cm4gdGhlIHNpemUgb2YgbG9nZmlsZSBvZiAkbm9kZSBpbiBieXRlcworc3ViIGdldF9sb2df c2l6ZQoreworCW15ICgkbm9kZSkgPSBAXzsKKworCXJldHVybiAoc3RhdCAkbm9kZS0+bG9n ZmlsZSlbN107Cit9CisKKyMgZmluZCAkcGF0IGluIGxvZ2ZpbGUgb2YgJG5vZGUgYWZ0ZXIg JG9mZi10aCBieXRlCitzdWIgZmluZF9pbl9sb2cKK3sKKwlteSAoJG5vZGUsICRwYXQsICRv ZmYpID0gQF87CisKKwkkb2ZmID0gMCB1bmxlc3MgZGVmaW5lZCAkb2ZmOworCW15ICRsb2cg PSBUZXN0TGliOjpzbHVycF9maWxlKCRub2RlLT5sb2dmaWxlKTsKKwlyZXR1cm4gMCBpZiAo bGVuZ3RoKCRsb2cpIDw9ICRvZmYpOworCisJJGxvZyA9IHN1YnN0cigkbG9nLCAkb2ZmKTsK KworCXJldHVybiAkbG9nID1+IG0vJHBhdC87Cit9CisKKyMgRmV0Y2ggeG1pbiBjb2x1bW5z IGZyb20gc2xvdCdzIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHJvdywgYWZ0ZXIgd2FpdGluZyBm b3IKKyMgZ2l2ZW4gYm9vbGVhbiBjb25kaXRpb24gdG8gYmUgdHJ1ZSB0byBlbnN1cmUgd2Un dmUgcmVhY2hlZCBhIHF1aWVzY2VudCBzdGF0ZS4KK3N1YiB3YWl0X2Zvcl94bWlucworewor CW15ICgkbm9kZSwgJHNsb3RuYW1lLCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5w b2xsX3F1ZXJ5X3VudGlsKAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19l eHByCisJCUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBz bG90X25hbWUgPSAnJHNsb3RuYW1lJzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5n IGZvciBzbG90IHhtaW5zIHRvIGFkdmFuY2UiOworfQorCisjIENyZWF0ZSB0aGUgcmVxdWly ZWQgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5Lgorc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3Rz Cit7CisJJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRu b2RlX3ByaW1hcnksICdpbmFjdGl2ZXNsb3QnLCAndGVzdGRiJyk7CisJJG5vZGVfc3RhbmRi eS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2RlX3ByaW1hcnksICdhY3Rp dmVzbG90JywgJ3Rlc3RkYicpOworfQorCisjIEFjcXVpcmUgb25lIG9mIHRoZSBzdGFuZGJ5 IGxvZ2ljYWwgc2xvdHMgY3JlYXRlZCBieSBjcmVhdGVfbG9naWNhbF9zbG90cygpLgorIyBJ biBjYXNlIHdhaXQgaXMgdHJ1ZSB3ZSBhcmUgd2FpdGluZyBmb3IgYW4gYWN0aXZlIHBpZCBv biB0aGUgJ2FjdGl2ZXNsb3QnIHNsb3QuCisjIElmIHdhaXQgaXMgbm90IHRydWUgaXQgbWVh bnMgd2UgYXJlIHRlc3RpbmcgYSBrbm93biBmYWlsdXJlIHNjZW5hcmlvLgorc3ViIG1ha2Vf c2xvdF9hY3RpdmUKK3sKKwlteSAkd2FpdCA9IHNoaWZ0OworCW15ICRzbG90X3VzZXJfaGFu ZGxlOworCisJcHJpbnQgInN0YXJ0aW5nIHBnX3JlY3Zsb2dpY2FsXG4iOworCSRzbG90X3Vz ZXJfaGFuZGxlID0gSVBDOjpSdW46OnN0YXJ0KFsncGdfcmVjdmxvZ2ljYWwnLCAnLWQnLCAk bm9kZV9zdGFuZGJ5LT5jb25uc3RyKCd0ZXN0ZGInKSwgJy1TJywgJ2FjdGl2ZXNsb3QnLCAn LWYnLCAnLScsICctLW5vLWxvb3AnLCAnLS1zdGFydCddLCAnPicsIFwkc3Rkb3V0LCAnMj4n LCBcJHN0ZGVycik7CisKKwlpZiAoJHdhaXQpCisJIyBtYWtlIHN1cmUgYWN0aXZlc2xvdCBp cyBpbiB1c2UKKwl7CisJCSRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoJ3Rlc3Rk YicsCisJCQkiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBwZ19yZXBsaWNhdGlvbl9z bG90cyBXSEVSRSBzbG90X25hbWUgPSAnYWN0aXZlc2xvdCcgQU5EIGFjdGl2ZV9waWQgSVMg Tk9UIE5VTEwpIgorCQkpIG9yIGRpZSAic2xvdCBuZXZlciBiZWNhbWUgYWN0aXZlIjsKKwl9 CisKKwlyZXR1cm4gJHNsb3RfdXNlcl9oYW5kbGU7Cit9CisKKyMgQ2hlY2sgaWYgYWxsIHRo ZSBzbG90cyBvbiBzdGFuZGJ5IGFyZSBkcm9wcGVkLiBUaGVzZSBpbmNsdWRlIHRoZSAnYWN0 aXZlc2xvdCcKKyMgdGhhdCB3YXMgYWNxdWlyZWQgYnkgbWFrZV9zbG90X2FjdGl2ZSgpLCBh bmQgdGhlIG5vbi1hY3RpdmUgJ2luYWN0aXZlc2xvdCcuCitzdWIgY2hlY2tfc2xvdHNfZHJv cHBlZAoreworCW15ICgkc2xvdF91c2VyX2hhbmRsZSkgPSBAXzsKKwlteSAkcmV0dXJuOwor CisJaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgnaW5hY3RpdmVzbG90JyktPnsnc2xvdF90eXBl J30sICcnLCAnaW5hY3RpdmVzbG90IG9uIHN0YW5kYnkgZHJvcHBlZCcpOworCWlzKCRub2Rl X3N0YW5kYnktPnNsb3QoJ2FjdGl2ZXNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdhY3Rp dmVzbG90IG9uIHN0YW5kYnkgZHJvcHBlZCcpOworCisJIyBvdXIgY2xpZW50IHNob3VsZCd2 ZSB0ZXJtaW5hdGVkIGluIHJlc3BvbnNlIHRvIHRoZSB3YWxzZW5kZXIgZXJyb3IKKwkkc2xv dF91c2VyX2hhbmRsZS0+ZmluaXNoOworCSRyZXR1cm4gPSAkPzsKKwljbXBfb2soJHJldHVy biwgIiE9IiwgMCwgInBnX3JlY3Zsb2dpY2FsIGV4aXRlZCBub24temVybyIpOworCWlmICgk cmV0dXJuKSB7CisJCWxpa2UoJHN0ZGVyciwgcXIvY29uZmxpY3Qgd2l0aCByZWNvdmVyeS8s ICdzbG90IGhhdmUgYmVlbiBkcm9wcGVkJyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUgcHJpbWFyeSBub2RlCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+aW5pdChhbGxvd3Nf c3RyZWFtaW5nID0+IDEsIGhhc19hcmNoaXZpbmcgPT4gMSk7Ciskbm9kZV9wcmltYXJ5LT5h cHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9sZXZlbCA9ICdsb2dpY2Fs JworbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9zZW5kZXJzID0gNAorbG9n X21pbl9tZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVyYm9zaXR5ID0gdmVyYm9z ZQorfSk7Ciskbm9kZV9wcmltYXJ5LT5kdW1wX2luZm87Ciskbm9kZV9wcmltYXJ5LT5zdGFy dDsKKworJG5vZGVfcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFT RSB0ZXN0ZGJdKTsKKworJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtT RUxFQ1QgKiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckcHJp bWFyeV9zbG90bmFtZScpO10pOworbXkgJGJhY2t1cF9uYW1lID0gJ2IxJzsKKyRub2RlX3By aW1hcnktPmJhY2t1cCgkYmFja3VwX25hbWUpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBJbml0aWFsaXplIHN0YW5kYnkgbm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworJG5vZGVfc3RhbmRieS0+aW5pdF9mcm9tX2JhY2t1cCgKKwkkbm9kZV9wcmltYXJ5LCAk YmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4g MSk7Ciskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKKwlx cVtwcmltYXJ5X3Nsb3RfbmFtZSA9ICckcHJpbWFyeV9zbG90bmFtZSddKTsKKyRub2RlX3N0 YW5kYnktPnN0YXJ0OworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9z dGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IHRoYXQgbG9naWNhbCBkZWNvZGluZyBvbiB0aGUgc3RhbmRieQorIyBiZWhhdmVzIGNv cnJlY3RseS4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyRub2RlX3ByaW1hcnktPnNh ZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3QoeCBpbnRl Z2VyLCB5IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBx cVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMsIHM6OnRleHQgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcztdKTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9m b3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNu KCdmbHVzaCcpKTsKKworbXkgJHJlc3VsdCA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgn dGVzdGRiJywKKwlxcVtTRUxFQ1QgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdhY3Rp dmVzbG90JywgTlVMTCwgTlVMTCk7XSk7CisKKyMgdGVzdCBpZiBiYXNpYyBkZWNvZGluZyB3 b3JrcworaXMoc2NhbGFyKG15IEBmb29iYXIgPSBzcGxpdCAvXi9tLCAkcmVzdWx0KSwKKwkx NCwgJ0RlY29kaW5nIHByb2R1Y2VkIDE0IHJvd3MnKTsKKworIyBJbnNlcnQgc29tZSByb3dz IGFuZCB2ZXJpZnkgdGhhdCB3ZSBnZXQgdGhlIHNhbWUgcmVzdWx0cyBmcm9tIHBnX3JlY3Zs b2dpY2FsCisjIGFuZCB0aGUgU1FMIGludGVyZmFjZS4KKyRub2RlX3ByaW1hcnktPnNhZmVf cHNxbCgndGVzdGRiJywKKwlxcVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VM RUNUIHMsIHM6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw0KSBzO10KKyk7CisKK215 ICRleHBlY3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNF UlQ6IHhbaW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5nX3Rl c3Q6IElOU0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMuZGVj b2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxlIHB1 YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0Jwor Q09NTUlUfTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFu ZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKworbXkgJHN0 ZG91dF9zcWwgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbU0VM RUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90 JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMn LCAnMScpO10KKyk7CisKK2lzKCRzdGRvdXRfc3FsLCAkZXhwZWN0ZWQsICdnb3QgZXhwZWN0 ZWQgb3V0cHV0IGZyb20gU1FMIGRlY29kaW5nIHNlc3Npb24nKTsKKworbXkgJGVuZHBvcyA9 ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRiJywKKwkiU0VMRUNUIGxzbiBGUk9N IHBnX2xvZ2ljYWxfc2xvdF9wZWVrX2NoYW5nZXMoJ2FjdGl2ZXNsb3QnLCBOVUxMLCBOVUxM KSBPUkRFUiBCWSBsc24gREVTQyBMSU1JVCAxOyIKKyk7CitwcmludCAid2FpdGluZyB0byBy ZXBsYXkgJGVuZHBvc1xuIjsKKworIyBJbnNlcnQgc29tZSByb3dzIGFmdGVyICRlbmRwb3Ms IHdoaWNoIHdlIHdvbid0IHJlYWQuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3Rk YicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0 ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDUsNTApIHM7XQorKTsKKworJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJp bWFyeS0+bHNuKCdmbHVzaCcpKTsKKworbXkgJHN0ZG91dF9yZWN2ID0gJG5vZGVfc3RhbmRi eS0+cGdfcmVjdmxvZ2ljYWxfdXB0bygKKyAgICAndGVzdGRiJywgJ2FjdGl2ZXNsb3QnLCAk ZW5kcG9zLCAxODAsCisgICAgJ2luY2x1ZGUteGlkcycgICAgID0+ICcwJywKKyAgICAnc2tp cC1lbXB0eS14YWN0cycgPT4gJzEnKTsKK2Nob21wKCRzdGRvdXRfcmVjdik7Citpcygkc3Rk b3V0X3JlY3YsICRleHBlY3RlZCwKKyAgICAnZ290IHNhbWUgZXhwZWN0ZWQgb3V0cHV0IGZy b20gcGdfcmVjdmxvZ2ljYWwgZGVjb2Rpbmcgc2Vzc2lvbicpOworCiskbm9kZV9zdGFuZGJ5 LT5wb2xsX3F1ZXJ5X3VudGlsKCd0ZXN0ZGInLAorCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1Qg MSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVz bG90JyBBTkQgYWN0aXZlX3BpZCBJUyBOVUxMKSIKKykgb3IgZGllICJzbG90IG5ldmVyIGJl Y2FtZSBpbmFjdGl2ZSI7CisKKyRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBnX3Jl Y3Zsb2dpY2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBvcywg MTgwLAorICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1wdHkt eGFjdHMnID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9yZWN2 LCAnJywgJ3BnX3JlY3Zsb2dpY2FsIGFja25vd2xlZGdlZCBjaGFuZ2VzJyk7CisKKyRub2Rl X3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIERBVEFCQVNFIG90aGVy ZGInKTsKKworaXMoICRub2RlX3ByaW1hcnktPnBzcWwoCisgICAgICAgICdvdGhlcmRiJywK KyAgICAgICAgIlNFTEVDVCBsc24gRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFuZ2Vz KCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCkgT1JERVIgQlkgbHNuIERFU0MgTElNSVQgMTsi CisgICAgKSwKKyAgICAzLAorICAgICdyZXBsYXlpbmcgbG9naWNhbCBzbG90IGZyb20gYW5v dGhlciBkYXRhYmFzZSBmYWlscycpOworCisjIGRyb3AgdGhlIGxvZ2ljYWwgc2xvdHMKKyRu b2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9z dGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2FjdGl2ZXNsb3Qn KV0pOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90 cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJpbyAxOiBob3Rfc3RhbmRieV9m ZWVkYmFjayBvZmYgYW5kIHZhY3V1bSBGVUxMCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOwor CisjIE9uZSB3YXkgdG8gcmVwcm9kdWNlIHJlY292ZXJ5IGNvbmZsaWN0IGlzIHRvIHJ1biBW QUNVVU0gRlVMTCB3aXRoCisjIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24g dGhlIHN0YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5j b25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRi eS0+cmVzdGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0 aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4g Qm90aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9y X3htaW5zKCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4g SVMgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vf c2xvdF9hY3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QK KyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTSBGVUxMJyk7CisK KyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxh eScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91bGQg YmUgaXNzdWVkCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52 YWxpZGF0aW5nIHNsb3QgXCJpbmFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3 aXRoIHJlY292ZXJ5IiksCisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMg bG9nZ2VkIHdpdGggdmFjdXVtIEZVTEwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5v ZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiKSwKKyAgJ2FjdGl2ZXNsb3Qgc2xvdCBp bnZhbGlkYXRpb24gaXMgbG9nZ2VkIHdpdGggdmFjdXVtIEZVTEwnKTsKKworIyBWZXJpZnkg dGhhdCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cy5jb25mbF9sb2dpY2Fsc2xvdCBoYXMg YmVlbiB1cGRhdGVkCitvayggJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgKKwkn cG9zdGdyZXMnLAorCSJzZWxlY3QgKGNvbmZsX2xvZ2ljYWxzbG90ID0gMikgZnJvbSBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3RkYiciLCAndCcp LAorCSdjb25mbF9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQgd2Fp dGluZyBjb25mbF9sb2dpY2Fsc2xvdCB0byBiZSB1cGRhdGVkIjsKKworJGhhbmRsZSA9IG1h a2Vfc2xvdF9hY3RpdmUoMCk7Cit1c2xlZXAoMTAwXzAwMCk7CisKKyMgV2UgYXJlIG5vdCBh YmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBhcyBpdCBoYXMgYmVlbiBpbnZhbGlkYXRlZAor b2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImNhbm5vdCByZWFkIGZy b20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIiksCisgICdjYW5u b3QgcmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCcpOworCisjIFR1cm4gaG90 X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYo J3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KK10pOwor JG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJh Y2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3ht aW4gb24gcHJpbWFyeS4gV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1pbiBzaG91 bGQgYWR2YW5jZSwKKyMgYnV0IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVtYWluIE5V TEwgc2luY2UgdGhlcmUgaXMgbm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1pbnMoJG5v ZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOT1QgTlVM TCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxpY3Q6IElu dmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMg U2NlbmFyaW8gMjogY29uZmxpY3QgZHVlIHRvIHJvdyByZW1vdmFsIHdpdGggaG90X3N0YW5k YnlfZmVlZGJhY2sgb2ZmLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIyBnZXQgdGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBmcm9tIGlu IHRoZSBzdGFuZGJ5IGxvZ2ZpbGUKK215ICRsb2dzdGFydCA9IGdldF9sb2dfc2l6ZSgkbm9k ZV9zdGFuZGJ5KTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9zdGFuZGJ5 LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgn aW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtT RUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsKKworY3Jl YXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBPbmUgd2F5IHRvIHByb2R1Y2UgcmVjb3Zlcnkg Y29uZmxpY3QgaXMgdG8gY3JlYXRlL2Ryb3AgYSByZWxhdGlvbiBhbmQgbGF1bmNoIGEgdmFj dXVtCisjIHdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgdHVybmVkIG9mZiBvbiB0aGUgc3Rh bmRieS4KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFb Citob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0 YXJ0OworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2ZmIGJ5IHdhaXRpbmcgZm9y IGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBwcmltYXJ5LiBCb3RoIHNo b3VsZCBiZSBOVUxMIHNpbmNlIGhzX2ZlZWRiYWNrIGlzIG9mZgord2FpdF9mb3JfeG1pbnMo JG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOVUxM IEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2Fj dGl2ZSgxKTsKKworIyBUaGlzIHNob3VsZCB0cmlnZ2VyIHRoZSBjb25mbGljdAorJG5vZGVf cHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtDUkVBVEUgVEFCTEUgY29uZmxpY3Rf dGVzdCh4IGludGVnZXIsIHkgdGV4dCk7XSk7Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwo J3Rlc3RkYicsIHFxW0RST1AgVEFCTEUgY29uZmxpY3RfdGVzdDtdKTsKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTScpOworCiskbm9kZV9wcmltYXJ5LT53 YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5 LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2soIGZp bmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwi aW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRs b2dzdGFydCksCisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2Vk IGR1ZSB0byByb3cgcmVtb3ZhbCcpOworCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9z dGFuZGJ5LAorICAiaW52YWxpZGF0aW5nIHNsb3QgXCJhY3RpdmVzbG90XCIgYmVjYXVzZSBp dCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCksCisgICdhY3RpdmVzbG90 IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsKKwor IyBWZXJpZnkgdGhhdCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cy5jb25mbF9sb2dpY2Fs c2xvdCBoYXMgYmVlbiB1cGRhdGVkCitvayggJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91 bnRpbCgKKwkncG9zdGdyZXMnLAorCSJzZWxlY3QgKGNvbmZsX2xvZ2ljYWxzbG90ID0gMikg ZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3Rk YiciLCAndCcpLAorCSdjb25mbF9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1l ZCBvdXQgd2FpdGluZyBjb25mbF9sb2dpY2Fsc2xvdCB0byBiZSB1cGRhdGVkIjsKKworJGhh bmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7Cit1c2xlZXAoMTAwXzAwMCk7CisKKyMgV2Ug YXJlIG5vdCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBhcyBpdCBoYXMgYmVlbiBpbnZh bGlkYXRlZAorb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImNhbm5v dCByZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIiwg JGxvZ3N0YXJ0KSwKKyAgJ2Nhbm5vdCByZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBz bG90Jyk7CisKKyMgVHVybiBob3Rfc3RhbmRieV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9z dGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlf ZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3Vy ZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHht aW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBwcmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIG9uLCB4bWluIHNob3VsZCBhZHZhbmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNo b3VsZCBzdGlsbCByZW1haW4gTlVMTCBzaW5jZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3Qu Cit3YWl0X2Zvcl94bWlucygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJ CSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBS ZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVk aW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJpbyAzOiBpbmNvcnJlY3Qgd2FsX2xldmVsIG9u IHByaW1hcnkuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRpb24gdG8gc2VhcmNoIGZyb20gaW4gdGhlIHN0 YW5kYnkgbG9nZmlsZQorJGxvZ3N0YXJ0ID0gZ2V0X2xvZ19zaXplKCRub2RlX3N0YW5kYnkp OworCisjIGRyb3AgdGhlIGxvZ2ljYWwgc2xvdHMKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bv c3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdpbmFjdGl2ZXNs b3QnKV0pOworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19k cm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2FjdGl2ZXNsb3QnKV0pOworCitjcmVhdGVfbG9naWNh bF9zbG90cygpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgxKTsKKworIyBNYWtl IHByaW1hcnkgd2FsX2xldmVsIHJlcGxpY2EuIFRoaXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29u ZmxpY3QuCiskbm9kZV9wcmltYXJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxx Wword2FsX2xldmVsID0gJ3JlcGxpY2EnCitdKTsKKyRub2RlX3ByaW1hcnktPnJlc3RhcnQ7 CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3Jl cGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91 bGQgYmUgaXNzdWVkCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAi aW52YWxpZGF0aW5nIHNsb3QgXCJpbmFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0 cyB3aXRoIHJlY292ZXJ5IiwgJGxvZ3N0YXJ0KSwKKyAgJ2luYWN0aXZlc2xvdCBzbG90IGlu dmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdhbF9sZXZlbCcpOworCitvayggZmluZF9p bl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0aW5nIHNsb3QgXCJhY3Rp dmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFy dCksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dlZCBkdWUgdG8g d2FsX2xldmVsJyk7CisKKyMgVmVyaWZ5IHRoYXQgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGlj dHMuY29uZmxfbG9naWNhbHNsb3QgaGFzIGJlZW4gdXBkYXRlZAorb2soICRub2RlX3N0YW5k YnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywKKwkic2VsZWN0IChjb25mbF9s b2dpY2Fsc2xvdCA9IDIpIGZyb20gcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMgd2hlcmUg ZGF0bmFtZSA9ICd0ZXN0ZGInIiwgJ3QnKSwKKwknY29uZmxfbG9naWNhbHNsb3QgdXBkYXRl ZCcpIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfbG9naWNhbHNsb3QgdG8gYmUg dXBkYXRlZCI7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOwordXNsZWVwKDEw MF8wMDApOworCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAibG9n aWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCA+PSBsb2dpY2Fs IG9uIG1hc3RlciIsICRsb2dzdGFydCksCisgICdjYW5ub3Qgc3RhcnQgcmVwbGljYXRpb24g YmVjYXVzZSB3YWxfbGV2ZWwgPCBsb2dpY2FsIG9uIG1hc3RlcicpOworCisjIFJlc3RvcmUg cHJpbWFyeSB3YWxfbGV2ZWwKKyRub2RlX3ByaW1hcnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jl c3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK10pOworJG5vZGVfcHJpbWFy eS0+cmVzdGFydDsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3Rh bmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKyRoYW5k bGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOwordXNsZWVwKDEwMF8wMDApOworCisjIGFzIHRo ZSBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIHdlIHNob3VsZCBub3QgYmUgYWJsZSB0byBy ZWFkCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAiY2Fubm90IHJl YWQgZnJvbSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCJhY3RpdmVzbG90XCIiLCAkbG9n c3RhcnQpLAorICAnY2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qn KTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgRFJPUCBEQVRBQkFTRSBzaG91bGQgZHJvcHMgaXQncyBzbG90cywgaW5jbHVkaW5n IGFjdGl2ZSBzbG90cy4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxF Q1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5vZGVf c3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9u X3Nsb3QoJ2FjdGl2ZXNsb3QnKV0pOworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKyRoYW5k bGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDEpOworIyBDcmVhdGUgYSBzbG90IG9uIGEgZGF0YWJh c2UgdGhhdCB3b3VsZCBub3QgYmUgZHJvcHBlZC4gVGhpcyBzbG90IHNob3VsZCBub3QKKyMg Z2V0IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0 YW5kYnkoJG5vZGVfcHJpbWFyeSwgJ290aGVyc2xvdCcsICdwb3N0Z3JlcycpOworCisjIGRy b3BkYiBvbiB0aGUgcHJpbWFyeSB0byB2ZXJpZnkgc2xvdHMgYXJlIGRyb3BwZWQgb24gc3Rh bmRieQorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbRFJPUCBEQVRB QkFTRSB0ZXN0ZGJdKTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9k ZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKwor aXMoJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcVtTRUxFQ1QgRVhJ U1RTKFNFTEVDVCAxIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICd0ZXN0ZGIn KV0pLCAnZicsCisJJ2RhdGFiYXNlIGRyb3BwZWQgb24gc3RhbmRieScpOworCitjaGVja19z bG90c19kcm9wcGVkKCRoYW5kbGUpOworCitpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdvdGhl cnNsb3QnKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLAorCSdvdGhlcnNsb3Qgb24gc3Rh bmRieSBub3QgZHJvcHBlZCcpOworCisjIENsZWFudXAgOiBtYW51YWxseSBkcm9wIHRoZSBz bG90IHRoYXQgd2FzIG5vdCBkcm9wcGVkLgorJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdy ZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ290aGVyc2xvdCcpXSk7 CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIFRlc3Qgc3RhbmRieSBwcm9tb3Rpb24gYW5kIGxvZ2ljYWwgZGVjb2RpbmcgYmVoYXZp b3IKKyMgYWZ0ZXIgdGhlIHN0YW5kYnkgZ2V0cyBwcm9tb3RlZC4KKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX3ByaW1hcnkt PnBzcWwoJ3Bvc3RncmVzJywgcVtDUkVBVEUgREFUQUJBU0UgdGVzdGRiXSk7Ciskbm9kZV9w cmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsIHFxW0NSRUFURSBUQUJMRSBkZWNvZGluZ190 ZXN0KHggaW50ZWdlciwgeSB0ZXh0KTtdKTsKKworIyBjcmVhdGUgdGhlIGxvZ2ljYWwgc2xv dHMKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBiZWZv cmUgdGhlIHByb21vdGlvbgorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAor CXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDQpIHM7XQorKTsKKworJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+ bHNuKCdmbHVzaCcpKTsKKworIyBwcm9tb3RlCiskbm9kZV9zdGFuZGJ5LT5wcm9tb3RlOwor CisjIGluc2VydCBzb21lIHJvd3Mgb24gcHJvbW90ZWQgc3RhbmRieQorJG5vZGVfc3RhbmRi eS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAorCXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3Qo eCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBGUk9NIGdlbmVyYXRlX3Nlcmllcyg1LDcpIHM7XQor KTsKKworCiskZXhwZWN0ZWQgPSBxe0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVz dDogSU5TRVJUOiB4W2ludGVnZXJdOjEgeVt0ZXh0XTonMScKK3RhYmxlIHB1YmxpYy5kZWNv ZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06MiB5W3RleHRdOicyJwordGFibGUgcHVi bGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTozIHlbdGV4dF06JzMnCit0 YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjQgeVt0ZXh0 XTonNCcKK0NPTU1JVAorQkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNF UlQ6IHhbaW50ZWdlcl06NSB5W3RleHRdOic1JwordGFibGUgcHVibGljLmRlY29kaW5nX3Rl c3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo2IHlbdGV4dF06JzYnCit0YWJsZSBwdWJsaWMuZGVj b2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjcgeVt0ZXh0XTonNycKK0NPTU1JVH07 CisKKyMgY2hlY2sgdGhhdCB3ZSBhcmUgZGVjb2RpbmcgcHJlIGFuZCBwb3N0IHByb21vdGlv biBpbnNlcnRlZCByb3dzCiskc3Rkb3V0X3NxbCA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNx bCgndGVzdGRiJywKKwlxcVtTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9wZWVr X2NoYW5nZXMoJ2FjdGl2ZXNsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAn LCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7XQorKTsKKworaXMoJHN0ZG91dF9zcWwsICRl eHBlY3RlZCwgJ2dvdCBleHBlY3RlZCBvdXRwdXQgZnJvbSBTUUwgZGVjb2Rpbmcgc2Vzc2lv biBvbiBwcm9tb3RlZCBzdGFuZGJ5Jyk7Ci0tIAoyLjE4LjQKCg== --------------36F8C269D440200CD429EBCF Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v24-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v24-0003-Allow-logical-decoding-on-standby.patch" RnJvbSBmM2Q2YzhiNTVlN2NiMWQ0Y2RjMmM4ZWZlYTAxMTA1N2VkOWY2MTRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNSBTZXAgMjAyMSAxMDozODoxMSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjI0IDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAo aW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90 ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQg SGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVsbG8KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgICAgICAgICAgfCAzMyArKysrKysrKysrLQogc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2d1dGlscy5jICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9wb3N0bWFzdGVyL2NoZWNrcG9pbnRlci5jICAgICAgICAgfCAgNCArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyAgICAgIHwgMjIgKysrKysrKy0K IHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jICAgICB8IDM3ICsr KysrKy0tLS0tLQogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgICAg ICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAg ICAgICB8IDU2ICsrKysrKysrKystLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi93YWxyZWNlaXZlci5jICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vd2FscmVjZWl2ZXJmdW5jcy5jICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5jICAgICAgICAgICB8IDI2ICsrKysrKy0tLQogc3JjL2luY2x1ZGUv YWNjZXNzL3hsb2cuaCAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIDEzIGZpbGVzIGNo YW5nZWQsIDEzMiBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKICAxNi43JSBzcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICAzMi43JSBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsLwogIDQ1LjIlIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uLwogICA1LjMlIHNy Yy8KCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggZTgwODJiNGJjMi4uYzI1 YTIyYTBjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTA4Miw2ICs1 MDgyLDE3IEBAIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVhZENv bnRyb2xGaWxlKCk7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRoZSBj b250cm9sIGZpbGUuIEZvciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisgKiBj b25zaWRlcmVkIGFzIGl0cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBiZSBk aWZmZXJlbnQgZnJvbSB3aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9uIHN0 YW5kYnkuCisgKi8KK1dhbExldmVsCitHZXRBY3RpdmVXYWxMZXZlbE9uU3RhbmRieSh2b2lk KQoreworCXJldHVybiBDb250cm9sRmlsZS0+d2FsX2xldmVsOworfQorCiAvKgogICogSW5p dGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1lbW9yeSBmb3IgWExPRwogICovCkBAIC05NjE3LDcg Kzk2MjgsNyBAQCBDcmVhdGVSZXN0YXJ0UG9pbnQoaW50IGZsYWdzKQogCSAqIHdoaWNoZXZl ciBpcyBsYXRlci4KIAkgKi8KIAlyZWNlaXZlUHRyID0gR2V0V2FsUmN2Rmx1c2hSZWNQdHIo TlVMTCwgTlVMTCk7Ci0JcmVwbGF5UHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cigmcmVwbGF5 VExJKTsKKwlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlUTEksIGZh bHNlKTsKIAllbmRwdHIgPSAocmVjZWl2ZVB0ciA8IHJlcGxheVB0cikgPyByZXBsYXlQdHIg OiByZWNlaXZlUHRyOwogCUtlZXBMb2dTZWcoZW5kcHRyLCAmX2xvZ1NlZ05vKTsKIAlpZiAo SW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyhfbG9nU2VnTm8pKQpAQCAtMTE3 NTUsNyArMTE3NjYsNyBAQCByZWdpc3Rlcl9wZXJzaXN0ZW50X2Fib3J0X2JhY2t1cF9oYW5k bGVyKHZvaWQpCiAgKiBFeHBvcnRlZCB0byBhbGxvdyBXQUxSZWNlaXZlciB0byByZWFkIHRo ZSBwb2ludGVyIGRpcmVjdGx5LgogICovCiBYTG9nUmVjUHRyCi1HZXRYTG9nUmVwbGF5UmVj UHRyKFRpbWVMaW5lSUQgKnJlcGxheVRMSSkKK0dldFhMb2dSZXBsYXlSZWNQdHIoVGltZUxp bmVJRCAqcmVwbGF5VExJLCBib29sIGF2b2lkX2hlYWRlcikKIHsKIAlYTG9nUmVjUHRyCXJl Y3B0cjsKIAlUaW1lTGluZUlECXRsaTsKQEAgLTExNzY3LDYgKzExNzc4LDI0IEBAIEdldFhM b2dSZXBsYXlSZWNQdHIoVGltZUxpbmVJRCAqcmVwbGF5VExJKQogCiAJaWYgKHJlcGxheVRM SSkKIAkJKnJlcGxheVRMSSA9IHRsaTsKKworCS8qCisJICogUmVwbGF5IHBvaW50ZXIgbWF5 IHBvaW50IG9uZSBwYXN0IHRoZSBlbmQgb2YgdGhlIHJlY29yZC4gSWYgdGhhdAorCSAqIGlz IGEgWExPRyBwYWdlIGJvdW5kYXJ5LCBpdCB3aWxsIG5vdCBiZSBhIHZhbGlkIExTTiBmb3Ig dGhlCisJICogc3RhcnQgb2YgYSByZWNvcmQsIHNvIGJ1bXAgaXQgdXAgcGFzdCB0aGUgcGFn ZSBoZWFkZXIuCisJICovCisJaWYgKGF2b2lkX2hlYWRlciAmJiAhWFJlY09mZklzVmFsaWQo cmVjcHRyKSkKKwl7CisJCWlmIChyZWNwdHIgJSBYTE9HX0JMQ0tTWiAhPSAwKQorCQkJZWxv ZyhFUlJPUiwgImludmFsaWQgcmVwbGF5IHBvaW50ZXIiKTsKKworCQkvKiBGb3IgdGhlIGZp cnN0IHBhZ2Ugb2YgYSBzZWdtZW50IGZpbGUsIGl0J3MgYSBsb25nIGhlYWRlciAqLworCQlp ZiAoWExvZ1NlZ21lbnRPZmZzZXQocmVjcHRyLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQor CQkJcmVjcHRyICs9IFNpemVPZlhMb2dMb25nUEhEOworCQllbHNlCisJCQlyZWNwdHIgKz0g U2l6ZU9mWExvZ1Nob3J0UEhEOworCX0KKwogCXJldHVybiByZWNwdHI7CiB9CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dmdW5jcy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMKaW5kZXggYjk4ZGViNzJlYy4uYTE3 M2Y4ZDZmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1 bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ2Z1bmNzLmMKQEAg LTQxNyw3ICs0MTcsNyBAQCBwZ19sYXN0X3dhbF9yZXBsYXlfbHNuKFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJWExvZ1JlY1B0cglyZWNwdHI7CiAKLQlyZWNwdHIgPSBHZXRYTG9nUmVwbGF5 UmVjUHRyKE5VTEwpOworCXJlY3B0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCwgZmFs c2UpOwogCiAJaWYgKHJlY3B0ciA9PSAwKQogCQlQR19SRVRVUk5fTlVMTCgpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3V0aWxzLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ndXRpbHMuYwppbmRleCA4OGExYmZkOTM5Li5hYWFk ZTkzODJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ndXRp bHMuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ndXRpbHMuYwpAQCAt ODcwLDcgKzg3MCw3IEBAIHJlYWRfbG9jYWxfeGxvZ19wYWdlKFhMb2dSZWFkZXJTdGF0ZSAq c3RhdGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwKIAkJaWYgKCFSZWNvdmVyeUluUHJv Z3Jlc3MoKSkKIAkJCXJlYWRfdXB0byA9IEdldEZsdXNoUmVjUHRyKCk7CiAJCWVsc2UKLQkJ CXJlYWRfdXB0byA9IEdldFhMb2dSZXBsYXlSZWNQdHIoJlRoaXNUaW1lTGluZUlEKTsKKwkJ CXJlYWRfdXB0byA9IEdldFhMb2dSZXBsYXlSZWNQdHIoJlRoaXNUaW1lTGluZUlELCBmYWxz ZSk7CiAJCXRsaSA9IFRoaXNUaW1lTGluZUlEOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL2NoZWNrcG9pbnRlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9jaGVja3BvaW50ZXIuYwppbmRleCBiZTczNjYzNzlkLi5lYTFiZjdkMjQ3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2NoZWNrcG9pbnRlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3Bvc3RtYXN0ZXIvY2hlY2twb2ludGVyLmMKQEAgLTQzNCw3ICs0MzQsNyBA QCBDaGVja3BvaW50ZXJNYWluKHZvaWQpCiAJCQkgKi8KIAkJCWNrcHRfYWN0aXZlID0gdHJ1 ZTsKIAkJCWlmIChkb19yZXN0YXJ0cG9pbnQpCi0JCQkJY2twdF9zdGFydF9yZWNwdHIgPSBH ZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJCWNrcHRfc3RhcnRfcmVjcHRyID0gR2V0 WExvZ1JlcGxheVJlY1B0cihOVUxMLCBmYWxzZSk7CiAJCQllbHNlCiAJCQkJY2twdF9zdGFy dF9yZWNwdHIgPSBHZXRJbnNlcnRSZWNQdHIoKTsKIAkJCWNrcHRfc3RhcnRfdGltZSA9IG5v dzsKQEAgLTc5NCw3ICs3OTQsNyBAQCBJc0NoZWNrcG9pbnRPblNjaGVkdWxlKGRvdWJsZSBw cm9ncmVzcykKIAkgKiB2YWx1ZSB0aGF0IHdhcyBpbiBlZmZlY3Qgd2hlbiB0aGUgV0FMIHdh cyBnZW5lcmF0ZWQpLgogCSAqLwogCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKLQkJcmVj cHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMKTsKKwkJcmVjcHRyID0gR2V0WExvZ1Jl cGxheVJlY1B0cihOVUxMLCBmYWxzZSk7CiAJZWxzZQogCQlyZWNwdHIgPSBHZXRJbnNlcnRS ZWNQdHIoKTsKIAllbGFwc2VkX3hsb2dzID0gKCgoZG91YmxlKSAocmVjcHRyIC0gY2twdF9z dGFydF9yZWNwdHIpKSAvCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNv ZGUuYwppbmRleCAyODc0ZGMwNjEyLi5iOGJlMGM4M2VkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTIxNSwxMSArMjE1LDMxIEBAIERlY29k ZVhMb2dPcChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIg KmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJyZWFr OworCQljYXNlIFhMT0dfUEFSQU1FVEVSX0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1ldGVy X2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dSZWNH ZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKworCQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBvbiBw cmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJCSAq IHdhbnQgdG8gcHJldmVudCBleGlzdGluZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcgdXNl ZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieSBnZXQgaW52YWxp ZGF0ZWQgd2hlbiB0aGlzIFdBTAorCQkJICogcmVjb3JkIGlzIHJlcGxheWVkOyBhbmQgZnVy dGhlciwgc2xvdCBjcmVhdGlvbiBmYWlscyB3aGVuIHRoZQorCQkJICogd2FsIGxldmVsIGlz IG5vdCBzdWZmaWNpZW50OyBidXQgYWxsIHRoZXNlIG9wZXJhdGlvbnMgYXJlIG5vdAorCQkJ ICogc3luY2hyb25pemVkLCBzbyBhIGxvZ2ljYWwgc2xvdCBtYXkgY3JlZXAgaW4gd2hpbGUg dGhlIHdhbF9sZXZlbAorCQkJICogaXMgYmVpbmcgcmVkdWNlZC4gSGVuY2UgdGhpcyBleHRy YSBjaGVjay4KKwkJCSAqLworCQkJaWYgKHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxf TE9HSUNBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9P QkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dp Y2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVs ID49IGxvZ2ljYWwgb24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExP R19OT09QOgogCQljYXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJ Y2FzZSBYTE9HX0JBQ0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgog CQljYXNlIFhMT0dfUkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJ CWNhc2UgWExPR19GUElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbC5jCmluZGV4IGFhZTBhZTViOGEuLjFlOGIyODA4ZDUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC0xMTksMjMgKzEx OSwyMiBAQCBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2b2lkKQogCQkJCShl cnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJ CSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRhYmFzZSBjb25uZWN0 aW9uIikpKTsKIAotCS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8gY2hhbmdlIHRoYXQg c29tZWRheSBzb29uLi4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxseSB0aHJlZSB0aGlu Z3MgbWlzc2luZyB0byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQgdG8gYmUgYWJsZSB0 byBjb3JyZWN0bHkgYW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVsaW5lIGEKLQkgKgkg IExTTiBiZWxvbmdzIHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBob3Rfc3RhbmRieV9m ZWVkYmFjayB0byBiZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAqCSAgdGhlIHByaW1h cnkgY2Fubm90IHJlbW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3VwcG9ydCBkcm9wcGlu ZyByZXBsaWNhdGlvbiBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFzZSwgaW4KLQkgKgkg IGRiYXNlX3JlZG8uIFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25lcyBkdWUgdG8gSFMg cmVjb3ZlcnkKLQkgKgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQgYmUgcmVsYXRpdmVs eSBlYXN5LgotCSAqIC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCi0J CWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAotCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fubm90IGJlIHVzZWQg d2hpbGUgaW4gcmVjb3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBtYXkg aGF2ZSByYWNlIGNvbmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBYTE9HX1BBUkFNRVRF Ul9DSEFOR0UgaW5kaWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFuZ2VkLCB3ZQorCQkg KiB2ZXJpZnkgdGhhdCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlv biBzbG90cy4gQW5kIHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBjcmVhdGluZyBhIG5l dyBzbG90LAorCQkgKiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpIGlzIGNh bGxlZCBvbmNlIGJlZm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwgYW5kIG9uY2Ugd2hl biBsb2dpY2FsIGRlY29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1cC4KKwkJICovCisJ CWlmIChHZXRBY3RpdmVXYWxMZXZlbE9uU3RhbmRieSgpIDwgV0FMX0xFVkVMX0xPR0lDQUwp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1Rf SU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGlu ZyBvbiBzdGFuZGJ5IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsID49IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzAsNiArMzI5LDEyIEBAIENyZWF0 ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoK KwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3Jl YXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rp b24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8q IHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNz LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCmlu ZGV4IDgwNWQ0YzVhNWIuLjdkODg5MGEyMmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYwpAQCAtMjE0LDcgKzIxNCw3IEBAIHBn X2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRzKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZv LCBib29sIGNvbmZpcm0sIGJvb2wgYmluCiAJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkK IAkJZW5kX29mX3dhbCA9IEdldEZsdXNoUmVjUHRyKCk7CiAJZWxzZQotCQllbmRfb2Zfd2Fs ID0gR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQpOworCQllbmRfb2Zfd2Fs ID0gR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQsIGZhbHNlKTsKIAogCVJl cGxpY2F0aW9uU2xvdEFjcXVpcmUoTmFtZVN0cigqbmFtZSksIHRydWUpOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9zbG90LmMKaW5kZXggMTg4NzE2OTU3Zi4uODFhM2U3MjczMiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3QuYwpAQCAtMTEwMCwzNyArMTEwMCwyOCBAQCBSZXBsaWNhdGlvblNs b3RSZXNlcnZlV2FsKHZvaWQpCiAJCS8qCiAJCSAqIEZvciBsb2dpY2FsIHNsb3RzIGxvZyBh IHN0YW5kYnkgc25hcHNob3QgYW5kIHN0YXJ0IGxvZ2ljYWwgZGVjb2RpbmcKIAkJICogYXQg ZXhhY3RseSB0aGF0IHBvc2l0aW9uLiBUaGF0IGFsbG93cyB0aGUgc2xvdCB0byBzdGFydCB1 cCBtb3JlCi0JCSAqIHF1aWNrbHkuCisJCSAqIHF1aWNrbHkuIEJ1dCBvbiBhIHN0YW5kYnkg d2UgY2Fubm90IGRvIFdBTCB3cml0ZXMsIHNvIGp1c3QgdXNlIHRoZQorCQkgKiByZXBsYXkg cG9pbnRlcjsgZWZmZWN0aXZlbHksIGFuIGF0dGVtcHQgdG8gY3JlYXRlIGEgbG9naWNhbCBz bG90IG9uCisJCSAqIHN0YW5kYnkgd2lsbCBjYXVzZSBpdCB0byB3YWl0IGZvciBhbiB4bF9y dW5uaW5nX3hhY3QgcmVjb3JkIHRvIGJlCisJCSAqIGxvZ2dlZCBpbmRlcGVuZGVudGx5IG9u IHRoZSBwcmltYXJ5LCBzbyB0aGF0IGEgc25hcHNob3QgY2FuIGJlIGJ1aWx0CisJCSAqIHVz aW5nIHRoZSByZWNvcmQuCiAJCSAqCi0JCSAqIFRoYXQncyBub3QgbmVlZGVkIChvciBpbmRl ZWQgaGVscGZ1bCkgZm9yIHBoeXNpY2FsIHNsb3RzIGFzIHRoZXknbGwKLQkJICogc3RhcnQg cmVwbGF5IGF0IHRoZSBsYXN0IGxvZ2dlZCBjaGVja3BvaW50IGFueXdheS4gSW5zdGVhZCBy ZXR1cm4KLQkJICogdGhlIGxvY2F0aW9uIG9mIHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0 aGF0IHNsaWdodGx5IGluY3JlYXNlcwotCQkgKiB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0 byByZXRyeSwgaXQncyB3aGVyZSBhIGJhc2UgYmFja3VwIGhhcyB0bwotCQkgKiBzdGFydCBy ZXBsYXkgYXQuCisJCSAqIE5vbmUgb2YgdGhpcyBpcyBuZWVkZWQgKG9yIGluZGVlZCBoZWxw ZnVsKSBmb3IgcGh5c2ljYWwgc2xvdHMgYXMKKwkJICogdGhleSdsbCBzdGFydCByZXBsYXkg YXQgdGhlIGxhc3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkCisJCSAqIHJl dHVybiB0aGUgbG9jYXRpb24gb2YgdGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRoYXQgc2xp Z2h0bHkKKwkJICogaW5jcmVhc2VzIHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRvIHJldHJ5 LCBpdCdzIHdoZXJlIGEgYmFzZSBiYWNrdXAKKwkJICogaGFzIHRvIHN0YXJ0IHJlcGxheSBh dC4KIAkJICovCi0JCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNh bChzbG90KSkKLQkJewotCQkJWExvZ1JlY1B0cglmbHVzaHB0cjsKLQotCQkJLyogc3RhcnQg YXQgY3VycmVudCBpbnNlcnQgcG9zaXRpb24gKi8KKwkJaWYgKFNsb3RJc1BoeXNpY2FsKHNs b3QpKQorCQkJcmVzdGFydF9sc24gPSBHZXRSZWRvUmVjUHRyKCk7CisJCWVsc2UgaWYgKFJl Y292ZXJ5SW5Qcm9ncmVzcygpKQorCQkJcmVzdGFydF9sc24gPSBHZXRYTG9nUmVwbGF5UmVj UHRyKE5VTEwsIHRydWUpOworCQllbHNlCiAJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNl cnRSZWNQdHIoKTsKLQkJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xv dC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNl KCZzbG90LT5tdXRleCk7Ci0KLQkJCS8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZv cm1hdGlvbiB0byBzdGFydCAqLwotCQkJZmx1c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3Qo KTsKIAotCQkJLyogYW5kIG1ha2Ugc3VyZSBpdCdzIGZzeW5jZWQgdG8gZGlzayAqLwotCQkJ WExvZ0ZsdXNoKGZsdXNocHRyKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRfbHNu ID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7 Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9j a1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJfQorCQlTcGluTG9ja0FjcXVpcmUoJnNsb3Qt Pm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQlT cGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKIAogCQkvKiBwcmV2ZW50IFdBTCByZW1v dmFsIGFzIGZhc3QgYXMgcG9zc2libGUgKi8KIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVS ZXF1aXJlZExTTigpOwpAQCAtMTE0Niw2ICsxMTM3LDE3IEBAIFJlcGxpY2F0aW9uU2xvdFJl c2VydmVXYWwodm9pZCkKIAkJaWYgKFhMb2dHZXRMYXN0UmVtb3ZlZFNlZ25vKCkgPCBzZWdu bykKIAkJCWJyZWFrOwogCX0KKworCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xv dElzTG9naWNhbChzbG90KSkKKwl7CisJCVhMb2dSZWNQdHIJZmx1c2hwdHI7CisKKwkJLyog bWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCisJCWZs dXNocHRyID0gTG9nU3RhbmRieVNuYXBzaG90KCk7CisKKwkJLyogYW5kIG1ha2Ugc3VyZSBp dCdzIGZzeW5jZWQgdG8gZGlzayAqLworCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCX0KIH0K IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5j IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKaW5kZXggMTdkZjk5YzJh Yy4uOTQ4YWNiMWNjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKQEAg LTYyNyw3ICs2MjcsNyBAQCBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoUEdfRlVOQ1RJ T05fQVJHUykKIAlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQogCQltb3ZldG8gPSBNaW4o bW92ZXRvLCBHZXRGbHVzaFJlY1B0cigpKTsKIAllbHNlCi0JCW1vdmV0byA9IE1pbihtb3Zl dG8sIEdldFhMb2dSZXBsYXlSZWNQdHIoJlRoaXNUaW1lTGluZUlEKSk7CisJCW1vdmV0byA9 IE1pbihtb3ZldG8sIEdldFhMb2dSZXBsYXlSZWNQdHIoJlRoaXNUaW1lTGluZUlELCBmYWxz ZSkpOwogCiAJLyogQWNxdWlyZSB0aGUgc2xvdCBzbyB3ZSAib3duIiBpdCAqLwogCVJlcGxp Y2F0aW9uU2xvdEFjcXVpcmUoTmFtZVN0cigqc2xvdG5hbWUpLCB0cnVlKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCmluZGV4IGI5MGU1Y2E5OGUuLjI4Y2MxMjNj MDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwpAQCAtNDA4LDcg KzQwOCw3IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lkKQogCQkJZmlyc3Rfc3RyZWFtID0gZmFs c2U7CiAKIAkJCS8qIEluaXRpYWxpemUgTG9nc3RyZWFtUmVzdWx0IGFuZCBidWZmZXJzIGZv ciBwcm9jZXNzaW5nIG1lc3NhZ2VzICovCi0JCQlMb2dzdHJlYW1SZXN1bHQuV3JpdGUgPSBM b2dzdHJlYW1SZXN1bHQuRmx1c2ggPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJ TG9nc3RyZWFtUmVzdWx0LldyaXRlID0gTG9nc3RyZWFtUmVzdWx0LkZsdXNoID0gR2V0WExv Z1JlcGxheVJlY1B0cihOVUxMLCBmYWxzZSk7CiAJCQlpbml0U3RyaW5nSW5mbygmcmVwbHlf bWVzc2FnZSk7CiAJCQlpbml0U3RyaW5nSW5mbygmaW5jb21pbmdfbWVzc2FnZSk7CiAKQEAg LTEwOTgsNyArMTA5OCw3IEBAIFhMb2dXYWxSY3ZTZW5kUmVwbHkoYm9vbCBmb3JjZSwgYm9v bCByZXF1ZXN0UmVwbHkpCiAJLyogQ29uc3RydWN0IGEgbmV3IG1lc3NhZ2UgKi8KIAl3cml0 ZVB0ciA9IExvZ3N0cmVhbVJlc3VsdC5Xcml0ZTsKIAlmbHVzaFB0ciA9IExvZ3N0cmVhbVJl c3VsdC5GbHVzaDsKLQlhcHBseVB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJ YXBwbHlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwsIGZhbHNlKTsKIAogCXJlc2V0 U3RyaW5nSW5mbygmcmVwbHlfbWVzc2FnZSk7CiAJcHFfc2VuZGJ5dGUoJnJlcGx5X21lc3Nh Z2UsICdyJyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNl aXZlcmZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNz LmMKaW5kZXggNmYwYWNiZmRlZi4uZjI2NGI3MWY3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVuY3MuYwpAQCAtMzcyLDcgKzM3Miw3IEBAIEdldFJl cGxpY2F0aW9uQXBwbHlEZWxheSh2b2lkKQogCXJlY2VpdmVQdHIgPSB3YWxyY3YtPmZsdXNo ZWRVcHRvOwogCVNwaW5Mb2NrUmVsZWFzZSgmd2FscmN2LT5tdXRleCk7CiAKLQlyZXBsYXlQ dHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCXJlcGxheVB0ciA9IEdldFhMb2dS ZXBsYXlSZWNQdHIoTlVMTCwgZmFsc2UpOwogCiAJaWYgKHJlY2VpdmVQdHIgPT0gcmVwbGF5 UHRyKQogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5k ZXggZDBlMjQ3YjEwNC4uZGEyNTMzZTFjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fs c2VuZGVyLmMKQEAgLTExNzQsNiArMTE3NCwxNiBAQCBTdGFydExvZ2ljYWxSZXBsaWNhdGlv bihTdGFydFJlcGxpY2F0aW9uQ21kICpjbWQpCiAJCWdvdF9TVE9QUElORyA9IHRydWU7CiAJ fQogCisJLyoKKwkgKiBJbiBjYXNlIG9mIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSBp dCBtYXkgYmUgdGhhdCBUaGlzVGltZUxpbmVJRAorCSAqIGlzIG5vdCBzZXQgeWV0LgorCSAq IEluZGVlZCB3ZSBhcmUgbm90IGdvaW5nIHRocm91Z2ggSW5pdFhMT0dBY2Nlc3Mgb24gYSBT dGFuZGJ5IGFuZAorCSAqIGl0IG1heSBhbHNvIGJlIHRoYXQgSWRlbnRpZnlTeXN0ZW0gaGFz IG5vdCBiZWVuIGNhbGxlZCB5ZXQuCisJICogU28gbGV0J3MgZ2V0IGl0IHRocm91Z2ggR2V0 WExvZ1JlcGxheVJlY1B0cigpLgorCSAqLworCWlmIChUaGlzVGltZUxpbmVJRCA9PSAwKQor CQkodm9pZCkgR2V0WExvZ1JlcGxheVJlY1B0cigmVGhpc1RpbWVMaW5lSUQsIGZhbHNlKTsK KwogCS8qCiAJICogQ3JlYXRlIG91ciBkZWNvZGluZyBjb250ZXh0LCBtYWtpbmcgaXQgc3Rh cnQgYXQgdGhlIHByZXZpb3VzbHkgYWNrJ2VkCiAJICogcG9zaXRpb24uCkBAIC0xMzk4LDcg KzE0MDgsNyBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIgbG9jKQogCWlmICghUmVj b3ZlcnlJblByb2dyZXNzKCkpCiAJCVJlY2VudEZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIo KTsKIAllbHNlCi0JCVJlY2VudEZsdXNoUHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxM KTsKKwkJUmVjZW50Rmx1c2hQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwsIGZhbHNl KTsKIAogCWZvciAoOzspCiAJewpAQCAtMTQzMiw3ICsxNDQyLDcgQEAgV2FsU25kV2FpdEZv cldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJ CVJlY2VudEZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoKTsKIAkJZWxzZQotCQkJUmVjZW50 Rmx1c2hQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJUmVjZW50Rmx1c2hQ dHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwsIGZhbHNlKTsKIAogCQkvKgogCQkgKiBJ ZiBwb3N0bWFzdGVyIGFza2VkIHVzIHRvIHN0b3AsIGRvbid0IHdhaXQgYW55bW9yZS4KQEAg LTI4OTgsMTAgKzI5MDgsMTIgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmly c3QgdGltZSB0aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4g IE90aGVyd2lzZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVu ZFJlY1B0ciBpcyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExv Z1JlY1B0cikKLQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cigpOwotCWVsc2UgaWYgKGxv Z2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKLQkJ Zmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cigpOworCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlk WExvZ1JlY1B0ciB8fAorCQlsb2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQ dHIgPj0gZmx1c2hQdHIpCisJeworCQlmbHVzaFB0ciA9IChhbV9jYXNjYWRpbmdfd2Fsc2Vu ZGVyID8KKwkJCQkJR2V0U3RhbmRieUZsdXNoUmVjUHRyKCkgOiBHZXRGbHVzaFJlY1B0cigp KTsKKwl9CiAKIAkvKiBJZiBFbmRSZWNQdHIgaXMgc3RpbGwgcGFzdCBvdXIgZmx1c2hQdHIs IGl0IG1lYW5zIHdlIGNhdWdodCB1cC4gKi8KIAlpZiAobG9naWNhbF9kZWNvZGluZ19jdHgt PnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQpAQCAtMjk5MCw3ICszMDAyLDcgQEAg R2V0U3RhbmRieUZsdXNoUmVjUHRyKHZvaWQpCiAJICovCiAKIAlyZWNlaXZlUHRyID0gR2V0 V2FsUmN2Rmx1c2hSZWNQdHIoTlVMTCwgJnJlY2VpdmVUTEkpOwotCXJlcGxheVB0ciA9IEdl dFhMb2dSZXBsYXlSZWNQdHIoJnJlcGxheVRMSSk7CisJcmVwbGF5UHRyID0gR2V0WExvZ1Jl cGxheVJlY1B0cigmcmVwbGF5VExJLCBmYWxzZSk7CiAKIAlUaGlzVGltZUxpbmVJRCA9IHJl cGxheVRMSTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMGE4ZWRlNzAwZC4uMWQ0NDYzN2JlZiAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MveGxvZy5oCkBAIC0yODIsNyArMjgyLDcgQEAgZXh0ZXJuIGJvb2wgSG90U3Rh bmRieUFjdGl2ZSh2b2lkKTsKIGV4dGVybiBib29sIEhvdFN0YW5kYnlBY3RpdmVJblJlcGxh eSh2b2lkKTsKIGV4dGVybiBib29sIFhMb2dJbnNlcnRBbGxvd2VkKHZvaWQpOwogZXh0ZXJu IHZvaWQgR2V0WExvZ1JlY2VpcHRUaW1lKFRpbWVzdGFtcFR6ICpydGltZSwgYm9vbCAqZnJv bVN0cmVhbSk7Ci1leHRlcm4gWExvZ1JlY1B0ciBHZXRYTG9nUmVwbGF5UmVjUHRyKFRpbWVM aW5lSUQgKnJlcGxheVRMSSk7CitleHRlcm4gWExvZ1JlY1B0ciBHZXRYTG9nUmVwbGF5UmVj UHRyKFRpbWVMaW5lSUQgKnJlcGxheVRMSSwgYm9vbCBhdm9pZF9oZWFkZXIpOwogZXh0ZXJu IFhMb2dSZWNQdHIgR2V0WExvZ0luc2VydFJlY1B0cih2b2lkKTsKIGV4dGVybiBYTG9nUmVj UHRyIEdldFhMb2dXcml0ZVJlY1B0cih2b2lkKTsKIGV4dGVybiBSZWNvdmVyeVBhdXNlU3Rh dGUgR2V0UmVjb3ZlcnlQYXVzZVN0YXRlKHZvaWQpOwpAQCAtMjk5LDYgKzI5OSw3IEBAIGV4 dGVybiBTaXplIFhMT0dTaG1lbVNpemUodm9pZCk7CiBleHRlcm4gdm9pZCBYTE9HU2htZW1J bml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lkKTsKIGV4dGVybiB2 b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOworZXh0ZXJuIFdhbExl dmVsIEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KHZvaWQpOwogZXh0ZXJuIHZvaWQgU3Rh cnR1cFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0coaW50IGNvZGUsIERh dHVtIGFyZyk7CiBleHRlcm4gdm9pZCBJbml0WExPR0FjY2Vzcyh2b2lkKTsKLS0gCjIuMTgu NAoK --------------36F8C269D440200CD429EBCF Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v24-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v24-0002-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSA0N2JmZGU1MmU1Y2E1MmI4MzMxZjY1OGVmM2Q4ZWE3YTY5MjU5NDYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAxNSBTZXAgMjAyMSAxMDozNjoxNyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjI0IDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLAppbnZhbGlkYXRlIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhp bmcgaWYgd2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwg YW5kIHRoZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJv ZHVjZSBhIG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJl Y292ZXJ5LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2dldF9hY3Rpdml0eSBmaWVsZDoK Y29uZmxfbG9naWNhbHNsb3QuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9sZGVy IHZlcnNpb24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQgRHJvdXZvdApSZXZpZXdlZC1C eTogQmVydHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZhYnJp emlvIGRlIFJveWVzIE1lbGxvCi0tLQogZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCAg ICAgICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4 bG9nLmMgICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFz aF94bG9nLmMgICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW0uYyAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRy ZWUvbmJ0eGxvZy5jICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGd4bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAxMyArKwogc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3Bnc3RhdC5jICAgICAgICAgICAgICAgfCAgMjAgKysKIC4uLi9yZXBsaWNhdGlv bi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jICAgICAgICB8ICAgNyArLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgMjA5ICsrKysrKysrKysrKysr KysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwg ICA4ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgICAgICAgICAg fCAgIDMgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jICAgICAgICAgICAg IHwgIDExICstCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAgICAgICAg ICAgfCAgMjIgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jICAgICAg ICAgICB8ICAxNiArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAg ICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggICAgICAg ICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oICAgICAg ICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQgICAgICAgICAgIHwgICAzICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAzNTAgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pCiAgIDQuMSUgc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv CiAgIDQuNyUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDUuMSUgc3JjL2JhY2tl bmQvYWNjZXNzLwogICA0LjMlIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvCiAgIDMuNSUgc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA1Mi4yJSBzcmMvYmFja2VuZC9yZXBs aWNhdGlvbi8KICAgNS42JSBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy8KICAgNy4xJSBzcmMv YmFja2VuZC90Y29wLwogICAzLjYlIHNyYy9iYWNrZW5kLwogICA2LjMlIHNyYy9pbmNsdWRl LwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDIyODFiYTEyMGYuLjUxODI4YjkyNmYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL21vbml0b3Jpbmcuc2dtbApAQCAtNDAzNCw2ICs0MDM0LDE2IEBAIFNFTEVDVCBwaWQs IHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkgV0hF UkUgd2FpdF9ldmVudCBpCiAgICAgICAgZGVhZGxvY2tzCiAgICAgICA8L3BhcmE+PC9lbnRy eT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPmNvbmZsX2xvZ2ljYWxzbG90PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTnVt YmVyIG9mIHF1ZXJpZXMgaW4gdGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbiBjYW5jZWxl ZCBkdWUgdG8KKyAgICAgICBsb2dpY2FsIHNsb3RzCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKaW5kZXggNDZhZWU2ZjJhOS4uNTk2M2U2 MzlkOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCkBAIC0xOTUsNyArMTk1 LDggQEAgZ2lzdFJlZG9EZWxldGVSZWNvcmQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAK IAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJub2RlLCBOVUxMLCBOVUxMKTsK IAotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPmxhdGVz dFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3QoeGxkYXRhLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bGRhdGEtPm9u Q2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJaWYgKFhMb2dSZWFkQnVmZmVyRm9yUmVk byhyZWNvcmQsIDAsICZidWZmZXIpID09IEJMS19ORUVEU19SRURPKQpAQCAtMzk1LDYgKzM5 Niw3IEBAIGdpc3RSZWRvUGFnZVJldXNlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAq LwogCWlmIChJbkhvdFN0YW5kYnkpCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNu YXBzaG90RnVsbFhpZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZEZ1bGxYaWQsCisJCQkJCQkJCQkJ CQkgICB4bHJlYy0+b25DYXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJCQkgICB4bHJlYy0+bm9k ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxv Zy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKaW5kZXggMjc0NzVm Y2JkNi4uZTVjNjEyNDQwMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gv aGFzaF94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMK QEAgLTEwMDIsNyArMTAwMiw4IEBAIGhhc2hfeGxvZ192YWN1dW1fb25lX3BhZ2UoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJCVJlbEZpbGVOb2RlIHJub2RlOwogCiAJCVhMb2dSZWNH ZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7Ci0JCVJlc29sdmVS ZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0UmVtb3ZlZFhpZCwg cm5vZGUpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEt PmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nVGFibGUs IHJub2RlKTsKIAl9CiAKIAlhY3Rpb24gPSBYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRl ZChyZWNvcmQsIDAsIFJCTV9OT1JNQUwsIHRydWUsICZidWZmZXIpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW0uYwppbmRleCA0MDE5YTIxMjJlLi43NWNhNWY3OWY0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtODQxOSw3ICs4NDE5LDggQEAgaGVhcF94bG9nX3By dW5lKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqIG5vIHF1ZXJpZXMgcnVubmluZyBm b3Igd2hpY2ggdGhlIHJlbW92ZWQgdHVwbGVzIGFyZSBzdGlsbCB2aXNpYmxlLgogCSAqLwog CWlmIChJbkhvdFN0YW5kYnkpCi0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBz aG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLCBybm9kZSk7CisJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJ CQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsIHJub2RlKTsKIAogCS8qCiAJICogSWYgd2Ug aGF2ZSBhIGZ1bGwtcGFnZSBpbWFnZSwgcmVzdG9yZSBpdCAodXNpbmcgYSBjbGVhbnVwIGxv Y2spIGFuZApAQCAtODU4Nyw3ICs4NTg4LDkgQEAgaGVhcF94bG9nX3Zpc2libGUoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJICogcmF0aGVyIHRoYW4ga2lsbGluZyB0aGUgdHJhbnNh Y3Rpb24gb3V0cmlnaHQuCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKLQkJUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmN1dG9mZl94aWQsIHJub2RlKTsK KwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmN1dG9mZl94 aWQsCisJCQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwKKwkJCQkJCQkJCQkJcm5v ZGUpOwogCiAJLyoKIAkgKiBSZWFkIHRoZSBoZWFwIHBhZ2UsIGlmIGl0IHN0aWxsIGV4aXN0 cy4gSWYgdGhlIGhlYXAgZmlsZSBoYXMgZHJvcHBlZCBvcgpAQCAtODcyNCw3ICs4NzI3LDgg QEAgaGVhcF94bG9nX2ZyZWV6ZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlU cmFuc2FjdGlvbklkUmV0cmVhdChsYXRlc3RSZW1vdmVkWGlkKTsKIAogCQlYTG9nUmVjR2V0 QmxvY2tUYWcocmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwpOwotCQlSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChsYXRlc3RSZW1vdmVkWGlkLCBybm9kZSk7CisJ CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQs CisJCQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCX0KIAogCWlm IChYTG9nUmVhZEJ1ZmZlckZvclJlZG8ocmVjb3JkLCAwLCAmYnVmZmVyKSA9PSBCTEtfTkVF RFNfUkVETykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxv Zy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMKaW5kZXggNzg2YzA4 YzBjZS4uNDFiN2VjOGUyZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnR4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMK QEAgLTY2OCw3ICs2NjgsOCBAQCBidHJlZV94bG9nX2RlbGV0ZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcm5vZGUsIE5V TEwsIE5VTEwpOwogCi0JCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs cmVjLT5sYXRlc3RSZW1vdmVkWGlkLCBybm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4 bHJlYy0+b25DYXRhbG9nVGFibGUsIHJub2RlKTsKIAl9CiAKIAkvKgpAQCAtMTAwNiw2ICsx MDA3LDcgQEAgYnRyZWVfeGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3Jk KQogCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRo U25hcHNob3RGdWxsWGlkKHhscmVjLT5sYXRlc3RSZW1vdmVkRnVsbFhpZCwKKwkJCQkJCQkJ CQkJCSAgIHhscmVjLT5vbkNhdGFsb2dUYWJsZSwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5u b2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4 bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwppbmRleCAzZGZk MmFhMzE3Li5hZGQ0ZGE0ZTc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0L3NwZ3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cu YwpAQCAtODgxLDYgKzg4MSw3IEBAIHNwZ1JlZG9WYWN1dW1SZWRpcmVjdChYTG9nUmVhZGVy U3RhdGUgKnJlY29yZCkKIAogCQkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJm5v ZGUsIE5VTEwsIE5VTEwpOwogCQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3QoeGxkYXRhLT5uZXdlc3RSZWRpcmVjdFhpZCwKKwkJCQkJCQkJCQkJCXhsZGF0YS0+b25D YXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJCQlub2RlKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2cuYwppbmRleCBlNTFhN2E3NDlkLi5lODA4MmI0YmMyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC0xMDQwMCw2ICsxMDQwMCwxOSBAQCB4bG9n X3JlZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCS8qIFVwZGF0ZSBvdXIgY29weSBv ZiB0aGUgcGFyYW1ldGVycyBpbiBwZ19jb250cm9sICovCiAJCW1lbWNweSgmeGxyZWMsIFhM b2dSZWNHZXREYXRhKHJlY29yZCksIHNpemVvZih4bF9wYXJhbWV0ZXJfY2hhbmdlKSk7CiAK KwkJLyoKKwkJICogSW52YWxpZGF0ZSBsb2dpY2FsIHNsb3RzIGlmIHdlIGFyZSBpbiBob3Qg c3RhbmRieSBhbmQgdGhlIHByaW1hcnkgZG9lcyBub3QKKwkJICogaGF2ZSBhIFdBTCBsZXZl bCBzdWZmaWNpZW50IGZvciBsb2dpY2FsIGRlY29kaW5nLiBObyBuZWVkIHRvIHNlYXJjaAor CQkgKiBmb3IgcG90ZW50aWFsbHkgY29uZmxpY3RpbmcgbG9naWNhbGx5IHNsb3RzIGlmIHN0 YW5kYnkgaXMgcnVubmluZworCQkgKiB3aXRoIHdhbF9sZXZlbCBsb3dlciB0aGFuIGxvZ2lj YWwsIGJlY2F1c2UgaW4gdGhhdCBjYXNlLCB3ZSB3b3VsZAorCQkgKiBoYXZlIGVpdGhlciBk aXNhbGxvd2VkIGNyZWF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgb3IgaW52YWxpZGF0ZWQgZXhp c3RpbmcKKwkJICogb25lcy4KKwkJICovCisJCWlmIChJblJlY292ZXJ5ICYmIEluSG90U3Rh bmRieSAmJgorCQkJeGxyZWMud2FsX2xldmVsIDwgV0FMX0xFVkVMX0xPR0lDQUwgJiYKKwkJ CXdhbF9sZXZlbCA+PSBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCUludmFsaWRhdGVDb25mbGlj dGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKEludmFsaWRPaWQsSW52YWxpZFRyYW5zYWN0 aW9uSWQpOworCiAJCUxXTG9ja0FjcXVpcmUoQ29udHJvbEZpbGVMb2NrLCBMV19FWENMVVNJ VkUpOwogCQlDb250cm9sRmlsZS0+TWF4Q29ubmVjdGlvbnMgPSB4bHJlYy5NYXhDb25uZWN0 aW9uczsKIAkJQ29udHJvbEZpbGUtPm1heF93b3JrZXJfcHJvY2Vzc2VzID0geGxyZWMubWF4 X3dvcmtlcl9wcm9jZXNzZXM7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwK aW5kZXggNTVmNmUzNzExZC4uY2QxZmM4OGQxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbApAQCAtMTAyMCw3ICsxMDIwLDggQEAgQ1JFQVRFIFZJRVcgcGdfc3Rh dF9kYXRhYmFzZV9jb25mbGljdHMgQVMKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X2xvY2soRC5vaWQpIEFTIGNvbmZsX2xvY2ssCiAgICAgICAgICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdChELm9pZCkgQVMgY29uZmxfc25hcHNob3QsCiAg ICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4oRC5vaWQpIEFT IGNvbmZsX2J1ZmZlcnBpbiwKLSAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0 X3N0YXJ0dXBfZGVhZGxvY2soRC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrCisgICAgICAgICAg ICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBj b25mbF9kZWFkbG9jaywKKyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xv Z2ljYWxzbG90KEQub2lkKSBBUyBjb25mbF9sb2dpY2Fsc2xvdAogICAgIEZST00gcGdfZGF0 YWJhc2UgRDsKIAogQ1JFQVRFIFZJRVcgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucyBBUwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcGdzdGF0LmMKaW5kZXggMzQ1MGExMDEyOS4uNDEzMWExNTAyOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYworKysgYi9zcmMvYmFj a2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCkBAIC0xODI0LDYgKzE4MjQsMjIgQEAgcGdzdGF0 X3JlcG9ydF9yZXBsc2xvdF9kcm9wKGNvbnN0IGNoYXIgKnNsb3RuYW1lKQogCXBnc3RhdF9z ZW5kKCZtc2csIHNpemVvZihQZ1N0YXRfTXNnUmVwbFNsb3QpKTsKIH0KIAorLyogLS0tLS0t LS0tLQorICogcGdzdGF0X3JlcG9ydF9yZXBsc2xvdF9jb25mbGljdCgpCisgKiBUZWxsIHRo ZSBjb2xsZWN0b3IgYWJvdXQgYSBsb2dpY2FsIHNsb3QgYmVpbmcgY29uZmxpY3RpbmcKKyAq IHdpdGggcmVjb3ZlcnkuCisgKiAtLS0tLS0tLS0tCisgKi8KK3ZvaWQKK3Bnc3RhdF9yZXBv cnRfcmVwbHNsb3RfY29uZmxpY3QoT2lkIGRib2lkKQoreworCVBnU3RhdF9Nc2dSZWNvdmVy eUNvbmZsaWN0IG1zZzsKKwlwZ3N0YXRfc2V0aGVhZGVyKCZtc2cubV9oZHIsIFBHU1RBVF9N VFlQRV9SRUNPVkVSWUNPTkZMSUNUKTsKKwltc2cubV9kYXRhYmFzZWlkID0gZGJvaWQ7CisJ bXNnLm1fcmVhc29uID0gUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVDsK KwlwZ3N0YXRfc2VuZCgmbXNnLCBzaXplb2YobXNnKSk7Cit9CisKIC8qIC0tLS0tLS0tLS0K ICAqIHBnc3RhdF9waW5nKCkgLQogICoKQEAgLTM1MzQsNiArMzU1MCw3IEBAIHJlc2V0X2Ri ZW50cnlfY291bnRlcnMoUGdTdGF0X1N0YXREQkVudHJ5ICpkYmVudHJ5KQogCWRiZW50cnkt Pm5fY29uZmxpY3RfdGFibGVzcGFjZSA9IDA7CiAJZGJlbnRyeS0+bl9jb25mbGljdF9sb2Nr ID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X3NuYXBzaG90ID0gMDsKKwlkYmVudHJ5LT5u X2NvbmZsaWN0X2xvZ2ljYWxzbG90ID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X2J1ZmZl cnBpbiA9IDA7CiAJZGJlbnRyeS0+bl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrID0gMDsK IAlkYmVudHJ5LT5uX3RlbXBfZmlsZXMgPSAwOwpAQCAtNTQ3NCw2ICs1NDkxLDkgQEAgcGdz dGF0X3JlY3ZfcmVjb3Zlcnljb25mbGljdChQZ1N0YXRfTXNnUmVjb3ZlcnlDb25mbGljdCAq bXNnLCBpbnQgbGVuKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNI T1Q6CiAJCQlkYmVudHJ5LT5uX2NvbmZsaWN0X3NuYXBzaG90Kys7CiAJCQlicmVhazsKKwkJ Y2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZGJlbnRy eS0+bl9jb25mbGljdF9sb2dpY2Fsc2xvdCsrOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQSU46CiAJCQlkYmVudHJ5LT5uX2NvbmZsaWN0 X2J1ZmZlcnBpbisrOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYwppbmRleCBlNTk5MzlhYWQxLi44MDVkNGM1YTVi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxm dW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1 bmNzLmMKQEAgLTIzMiwxMSArMjMyLDE0IEBAIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdl c19ndXRzKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGNvbmZpcm0sIGJvb2wgYmlu CiAKIAkJLyoKIAkJICogQWZ0ZXIgdGhlIHNhbml0eSBjaGVja3MgaW4gQ3JlYXRlRGVjb2Rp bmdDb250ZXh0LCBtYWtlIHN1cmUgdGhlCi0JCSAqIHJlc3RhcnRfbHNuIGlzIHZhbGlkLiAg QXZvaWQgImNhbm5vdCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCisJCSAqIHJlc3Rh cnRfbHNuIGlzIHZhbGlkIG9yIGJvdGggeG1pbiBhbmQgY2F0YWxvZ194bWluIGFyZSB2YWxp ZC4KKwkJICogQXZvaWQgImNhbm5vdCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCiAJ CSAqIGVycm1zZyBiZWNhdXNlIHRoYXQnZCBiZSBjb25mdXNpbmdseSBhbWJpZ3VvdXMgYWJv dXQgbm8gY2hhbmdlcwogCQkgKiBiZWluZyBhdmFpbGFibGUuCiAJCSAqLwotCQlpZiAoWExv Z1JlY1B0cklzSW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikp CisJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJl c3RhcnRfbHNuKQorCQkJfHwgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9u U2xvdC0+ZGF0YS54bWluKQorCQkJCSYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxp Y2F0aW9uU2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4pKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUp LAogCQkJCQkgZXJybXNnKCJjYW4gbm8gbG9uZ2VyIGdldCBjaGFuZ2VzIGZyb20gcmVwbGlj YXRpb24gc2xvdCBcIiVzXCIiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDFjNmMw YzdjZTIuLjE4ODcxNjk1N2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTEzNTAs NiArMTM1MCwyMTUgQEAgcmVzdGFydDoKIAlyZXR1cm4gaW52YWxpZGF0ZWQ7CiB9CiAKKy8q CisgKiBIZWxwZXIgZm9yIEludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlv blNsb3QgLS0gYWNxdWlyZXMgdGhlIGdpdmVuIHNsb3QKKyAqIGFuZCBtYXJrIGl0IGludmFs aWQsIGlmIG5lY2Vzc2FyeSBhbmQgcG9zc2libGUuCisgKgorICogUmV0dXJucyB3aGV0aGVy IFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrIHdhcyByZWxlYXNlZCBpbiB0aGUgaW50ZXJp bSAoYW5kCisgKiBpbiB0aGF0IGNhc2Ugd2UncmUgbm90IGhvbGRpbmcgdGhlIGxvY2sgYXQg cmV0dXJuLCBvdGhlcndpc2Ugd2UgYXJlKS4KKyAqCisgKiBUaGlzIGlzIGluaGVyZW50bHkg cmFjeSwgYmVjYXVzZSB3ZSByZWxlYXNlIHRoZSBMV0xvY2sKKyAqIGZvciBzeXNjYWxscywg c28gY2FsbGVyIG11c3QgcmVzdGFydCBpZiB3ZSByZXR1cm4gdHJ1ZS4KKyAqLworc3RhdGlj IGJvb2wKK0ludmFsaWRhdGVQb3NzaWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9u U2xvdChSZXBsaWNhdGlvblNsb3QgKnMsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCWludAkJ bGFzdF9zaWduYWxlZF9waWQgPSAwOworCWJvb2wJcmVsZWFzZWRfbG9jayA9IGZhbHNlOwor CisJZm9yICg7OykKKwl7CisJCVRyYW5zYWN0aW9uSWQgc2xvdF94bWluOworCQlUcmFuc2Fj dGlvbklkIHNsb3RfY2F0YWxvZ194bWluOworCQlOYW1lRGF0YQlzbG90bmFtZTsKKwkJaW50 CQkJYWN0aXZlX3BpZCA9IDA7CisKKwkJQXNzZXJ0KExXTG9ja0hlbGRCeU1lSW5Nb2RlKFJl cGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpKTsKKworCQlpZiAoIXMtPmlu X3VzZSkKKwkJeworCQkJaWYgKHJlbGVhc2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShS ZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7CisJCQlicmVhazsKKwkJfQorCisJCS8qCisJ CSAqIENoZWNrIGlmIHRoZSBzbG90IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkLiBJZiBpdCBu ZWVkcyB0byBiZQorCQkgKiBpbnZhbGlkYXRlZCwgYW5kIGlzIG5vdCBjdXJyZW50bHkgYWNx dWlyZWQsIGFjcXVpcmUgaXQgYW5kIG1hcmsgaXQKKwkJICogYXMgaGF2aW5nIGJlZW4gaW52 YWxpZGF0ZWQuIFdlIGRvIHRoaXMgd2l0aCB0aGUgc3BpbmxvY2sgaGVsZCB0bworCQkgKiBh dm9pZCByYWNlIGNvbmRpdGlvbnMgLS0gZm9yIGV4YW1wbGUgdGhlIHhtaW4ocykgY291bGQg bW92ZSBmb3J3YXJkCisJCSAqICwgb3IgdGhlIHNsb3QgY291bGQgYmUgZHJvcHBlZC4KKwkJ ICovCisJCVNwaW5Mb2NrQWNxdWlyZSgmcy0+bXV0ZXgpOworCisJCXNsb3RfeG1pbiA9IHMt PmRhdGEueG1pbjsKKwkJc2xvdF9jYXRhbG9nX3htaW4gPSBzLT5kYXRhLmNhdGFsb2dfeG1p bjsKKworCQkvKgorCQkgKiBJZiB0aGUgc2xvdCBpcyBhbHJlYWR5IGludmFsaWQgb3IgaXMg bm90IGNvbmZsaWN0aW5nLCB3ZSBkb24ndCBuZWVkIHRvCisJCSAqIGRvIGFueXRoaW5nLgor CQkgKi8KKworCQkvKiBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkICovCisJCWlmICgoIVRy YW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfeG1pbikgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KHNsb3RfY2F0YWxvZ194bWluKSkKKwkJCXx8CisJCS8qCisJCSAqIHdlIGFyZSBub3QgZm9y Y2luZyBmb3IgaW52YWxpZGF0aW9uIGJlY2F1c2UgdGhlIHhpZCBpcyB2YWxpZAorCQkgKiBh bmQgdGhpcyBpcyBhIG5vbiBjb25mbGljdGluZyBzbG90CisJCSAqLworCQkJKFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKHhpZCkgJiYgISgKKwkJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xv dF94bWluKSAmJiBUcmFuc2FjdGlvbklkUHJlY2VkZXNPckVxdWFscyhzbG90X3htaW4sIHhp ZCkpCisJCQkJfHwKKwkJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF9jYXRhbG9nX3ht aW4pICYmIFRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfY2F0YWxvZ194bWlu LCB4aWQpKQorCQkJCSkpCisJCQkpCisJCXsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0 ZXgpOworCQkJaWYgKHJlbGVhc2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNh dGlvblNsb3RDb250cm9sTG9jayk7CisJCQlicmVhazsKKwkJfQorCisJCXNsb3RuYW1lID0g cy0+ZGF0YS5uYW1lOworCQlhY3RpdmVfcGlkID0gcy0+YWN0aXZlX3BpZDsKKworCQkvKgor CQkgKiBJZiB0aGUgc2xvdCBjYW4gYmUgYWNxdWlyZWQsIGRvIHNvIGFuZCBtYXJrIGl0IGlu dmFsaWRhdGVkCisJCSAqIGltbWVkaWF0ZWx5LiAgT3RoZXJ3aXNlIHdlJ2xsIHNpZ25hbCB0 aGUgb3duaW5nIHByb2Nlc3MsIGJlbG93LCBhbmQKKwkJICogcmV0cnkuCisJCSAqLworCQlp ZiAoYWN0aXZlX3BpZCA9PSAwKQorCQl7CisJCQlNeVJlcGxpY2F0aW9uU2xvdCA9IHM7CisJ CQlzLT5hY3RpdmVfcGlkID0gTXlQcm9jUGlkOworCQkJcy0+ZGF0YS54bWluID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CisJCQlzLT5kYXRhLmNhdGFsb2dfeG1pbiA9IEludmFsaWRUcmFu c2FjdGlvbklkOworCQl9CisKKwkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJ aWYgKGFjdGl2ZV9waWQgIT0gMCkKKwkJeworCQkJLyoKKwkJCSAqIFByZXBhcmUgdGhlIHNs ZWVwIG9uIHRoZSBzbG90J3MgY29uZGl0aW9uIHZhcmlhYmxlIGJlZm9yZQorCQkJICogcmVs ZWFzaW5nIHRoZSBsb2NrLCB0byBjbG9zZSBhIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uIGlm IHRoZQorCQkJICogc2xvdCBpcyByZWxlYXNlZCBiZWZvcmUgdGhlIHNsZWVwIGJlbG93Lgor CQkJICovCisKKwkJCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJnMtPmFjdGl2 ZV9jdik7CisKKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sp OworCQkJcmVsZWFzZWRfbG9jayA9IHRydWU7CisKKwkJCS8qCisJCQkgKiBTaWduYWwgdG8g dGVybWluYXRlIHRoZSBwcm9jZXNzIHRoYXQgb3ducyB0aGUgc2xvdCwgaWYgd2UKKwkJCSAq IGhhdmVuJ3QgYWxyZWFkeSBzaWduYWxsZWQgaXQuICAoQXZvaWRhbmNlIG9mIHJlcGVhdGVk CisJCQkgKiBzaWduYWxsaW5nIGlzIHRoZSBvbmx5IHJlYXNvbiBmb3IgdGhlcmUgdG8gYmUg YSBsb29wIGluIHRoaXMKKwkJCSAqIHJvdXRpbmU7IG90aGVyd2lzZSB3ZSBjb3VsZCByZWx5 IG9uIGNhbGxlcidzIHJlc3RhcnQgbG9vcC4pCisJCQkgKgorCQkJICogVGhlcmUgaXMgdGhl IHJhY2UgY29uZGl0aW9uIHRoYXQgb3RoZXIgcHJvY2VzcyBtYXkgb3duIHRoZSBzbG90CisJ CQkgKiBhZnRlciBpdHMgY3VycmVudCBvd25lciBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQgYW5k IGJlZm9yZSB0aGlzCisJCQkgKiBwcm9jZXNzIG93bnMgaXQuIFRvIGhhbmRsZSB0aGF0LCB3 ZSBzaWduYWwgb25seSBpZiB0aGUgUElEIG9mCisJCQkgKiB0aGUgb3duaW5nIHByb2Nlc3Mg aGFzIGNoYW5nZWQgZnJvbSB0aGUgcHJldmlvdXMgdGltZS4gKFRoaXMKKwkJCSAqIGxvZ2lj IGFzc3VtZXMgdGhhdCB0aGUgc2FtZSBQSUQgaXMgbm90IHJldXNlZCB2ZXJ5IHF1aWNrbHku KQorCQkJICovCisJCQlpZiAobGFzdF9zaWduYWxlZF9waWQgIT0gYWN0aXZlX3BpZCkKKwkJ CXsKKwkJCQllcmVwb3J0KExPRywKKwkJCQkJCShlcnJtc2coInRlcm1pbmF0aW5nIHByb2Nl c3MgJWQgYmVjYXVzZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBjb25mbGljdHMgd2l0aCBy ZWNvdmVyeSIsCisJCQkJCQkJCWFjdGl2ZV9waWQsIE5hbWVTdHIoc2xvdG5hbWUpKSkpOwor CisJCQkJKHZvaWQpIGtpbGwoYWN0aXZlX3BpZCwgU0lHVEVSTSk7CisJCQkJbGFzdF9zaWdu YWxlZF9waWQgPSBhY3RpdmVfcGlkOworCQkJfQorCisJCQkvKiBXYWl0IHVudGlsIHRoZSBz bG90IGlzIHJlbGVhc2VkLiAqLworCQkJQ29uZGl0aW9uVmFyaWFibGVTbGVlcCgmcy0+YWN0 aXZlX2N2LAorCQkJCQkJCQkJV0FJVF9FVkVOVF9SRVBMSUNBVElPTl9TTE9UX0RST1ApOwor CisJCQkvKgorCQkJICogUmUtYWNxdWlyZSBsb2NrIGFuZCBzdGFydCBvdmVyOyB3ZSBleHBl Y3QgdG8gaW52YWxpZGF0ZSB0aGUKKwkJCSAqIHNsb3QgbmV4dCB0aW1lICh1bmxlc3MgYW5v dGhlciBwcm9jZXNzIGFjcXVpcmVzIHRoZSBzbG90IGluIHRoZQorCQkJICogbWVhbnRpbWUp LgorCQkJICovCisJCQlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2Nr LCBMV19TSEFSRUQpOworCQkJY29udGludWU7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKgor CQkJICogV2UgaG9sZCB0aGUgc2xvdCBub3cgYW5kIGhhdmUgYWxyZWFkeSBpbnZhbGlkYXRl ZCBpdDsgZmx1c2ggaXQKKwkJCSAqIHRvIGVuc3VyZSB0aGF0IHN0YXRlIHBlcnNpc3RzLgor CQkJICoKKwkJCSAqIERvbid0IHdhbnQgdG8gaG9sZCBSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jayBhY3Jvc3MgZmlsZQorCQkJICogc3lzdGVtIG9wZXJhdGlvbnMsIHNvIHJlbGVhc2Ug aXQgbm93IGJ1dCBiZSBzdXJlIHRvIHRlbGwgY2FsbGVyCisJCQkgKiB0byByZXN0YXJ0IGZy b20gc2NyYXRjaC4KKwkJCSAqLworCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RD b250cm9sTG9jayk7CisJCQlyZWxlYXNlZF9sb2NrID0gdHJ1ZTsKKworCQkJLyogTWFrZSBz dXJlIHRoZSBpbnZhbGlkYXRlZCBzdGF0ZSBwZXJzaXN0cyBhY3Jvc3Mgc2VydmVyIHJlc3Rh cnQgKi8KKwkJCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCQkJUmVwbGljYXRpb25T bG90U2F2ZSgpOworCQkJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCQkJcGdzdGF0X3Jl cG9ydF9yZXBsc2xvdF9jb25mbGljdChzLT5kYXRhLmRhdGFiYXNlKTsKKworCQkJZXJlcG9y dChMT0csCisJCQkJCShlcnJtc2coImludmFsaWRhdGluZyBzbG90IFwiJXNcIiBiZWNhdXNl IGl0IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwgTmFtZVN0cihzbG90bmFtZSkpKSk7CisK KwkJCS8qIGRvbmUgd2l0aCB0aGlzIHNsb3QgZm9yIG5vdyAqLworCQkJYnJlYWs7CisJCX0K Kwl9CisKKwlBc3NlcnQoIXJlbGVhc2VkX2xvY2sgPT0gTFdMb2NrSGVsZEJ5TWVJbk1vZGUo UmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCkpOworCisJcmV0dXJuIHJl bGVhc2VkX2xvY2s7Cit9CisKKy8qCisgKiBSZXNvbHZlIHJlY292ZXJ5IGNvbmZsaWN0cyB3 aXRoIGxvZ2ljYWwgc2xvdHMuCisgKgorICogV2hlbiB4aWQgaXMgdmFsaWQsIGl0IG1lYW5z IHRoYXQgd2UgYXJlIGFib3V0IHRvIHJlbW92ZSByb3dzIG9sZGVyIHRoYW4geGlkLgorICog VGhlcmVmb3JlIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBzbG90cyB0aGF0IGRlcGVuZCBvbiBz ZWVpbmcgdGhvc2Ugcm93cy4KKyAqIFdoZW4geGlkIGlzIGludmFsaWQsIGludmFsaWRhdGUg YWxsIGxvZ2ljYWwgc2xvdHMuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB0aGUKKyAqIG1hc3Rl ciB3YWxfbGV2ZWwgaXMgc2V0IGJhY2sgdG8gcmVwbGljYSwgc28gZXhpc3RpbmcgbG9naWNh bCBzbG90cyBuZWVkIHRvCisgKiBiZSBpbnZhbGlkYXRlZC4KKyAqLwordm9pZAorSW52YWxp ZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoT2lkIGRib2lkLCBUcmFu c2FjdGlvbklkIHhpZCkKK3sKKworCUFzc2VydChtYXhfcmVwbGljYXRpb25fc2xvdHMgPj0g MCk7CisKKwlpZiAobWF4X3JlcGxpY2F0aW9uX3Nsb3RzID09IDApCisJCXJldHVybjsKK3Jl c3RhcnQ6CisJTFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdf U0hBUkVEKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IG1heF9yZXBsaWNhdGlvbl9zbG90czsg aSsrKQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzID0gJlJlcGxpY2F0aW9uU2xvdEN0bC0+ cmVwbGljYXRpb25fc2xvdHNbaV07CisKKwkJaWYgKCFzLT5pbl91c2UpCisJCQljb250aW51 ZTsKKworCQkvKiBXZSBhcmUgb25seSBkZWFsaW5nIHdpdGggKmxvZ2ljYWwqIHNsb3QgY29u ZmxpY3RzLiAqLworCQlpZiAoIVNsb3RJc0xvZ2ljYWwocykpCisJCQljb250aW51ZTsKKwor CQkvKiBub3Qgb3VyIGRhdGFiYXNlIGFuZCB3ZSBkb24ndCB3YW50IGFsbCB0aGUgZGF0YWJh c2UsIHNraXAgKi8KKwkJaWYgKHMtPmRhdGEuZGF0YWJhc2UgIT0gZGJvaWQgJiYgVHJhbnNh Y3Rpb25JZElzVmFsaWQoeGlkKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChJbnZhbGlkYXRl UG9zc2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3QocywgeGlkKSkKKwkJ eworCQkJLyogaWYgdGhlIGxvY2sgd2FzIHJlbGVhc2VkLCB3ZSBuZWVkIHRvIHJlc3RhcnQg ZnJvbSBzY3JhdGNoICovCisJCQlnb3RvIHJlc3RhcnQ7CisJCX0KKwl9CisJTFdMb2NrUmVs ZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7Cit9CisKIC8qCiAgKiBGbHVzaCBh bGwgcmVwbGljYXRpb24gc2xvdHMgdG8gZGlzay4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHNlbmRlci5jCmluZGV4IDNjYTJhMTEzODkuLmQwZTI0N2IxMDQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0xMTQ3LDYgKzExNDcsMTQgQEAgU3RhcnRM b2dpY2FsUmVwbGljYXRpb24oU3RhcnRSZXBsaWNhdGlvbkNtZCAqY21kKQogCiAJUmVwbGlj YXRpb25TbG90QWNxdWlyZShjbWQtPnNsb3RuYW1lLCB0cnVlKTsKIAorCWlmICghVHJhbnNh Y3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1pbikKKwkJICYmICFU cmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5jYXRhbG9nX3ht aW4pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05P VF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBlcnJtc2coImNhbm5vdCByZWFkIGZy b20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCisJCQkJCQljbWQtPnNsb3Ru YW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlzIHNsb3QgaGFzIGJlZW4gaW52YWxpZGF0ZWQg YmVjYXVzZSBpdCB3YXMgY29uZmxpY3Rpbmcgd2l0aCByZWNvdmVyeS4iKSkpOworCiAJaWYg KFhMb2dSZWNQdHJJc0ludmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9s c24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05P VF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY2FycmF5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJy YXkuYwppbmRleCBjNzgxNmZjZmIzLi4wYzU1NWEzOTBjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9wcm9jYXJyYXkuYwpAQCAtMzQ0Myw2ICszNDQzLDEwIEBAIFNpZ25hbFZpcnR1YWxU cmFuc2FjdGlvbihWaXJ0dWFsVHJhbnNhY3Rpb25JZCB2eGlkLCBQcm9jU2lnbmFsUmVhc29u IHNpZ21vZGUsCiAKIAkJR0VUX1ZYSURfRlJPTV9QR1BST0MocHJvY3Z4aWQsICpwcm9jKTsK IAorCQkvKgorCQkgKiBOb3RlOiB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCBjYW4gYmUgaW52 YWxpZCwgd2hpY2ggbWVhbnMgdGhlCisJCSAqIHJlcXVlc3QgaXMgdG8gc2lnbmFsIHRoZSBw aWQgdGhhdCBpcyBub3QgcnVubmluZyBhIHRyYW5zYWN0aW9uLgorCQkgKi8KIAkJaWYgKHBy b2N2eGlkLmJhY2tlbmRJZCA9PSB2eGlkLmJhY2tlbmRJZCAmJgogCQkJcHJvY3Z4aWQubG9j YWxUcmFuc2FjdGlvbklkID09IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklkKQogCQl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggZGVmYjc1YWEyNi4uMzE1ZDVh MWUzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5j CisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwpAQCAtNjczLDYg KzY3Myw5IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05BTF9BUkdTKQogCWlm IChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCkp CiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9TTkFQU0hPVCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfTE9HSUNBTFNMT1QpKQorCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBS T0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpOworCiAJaWYgKENoZWNrUHJv Y1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0spKQog CQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf U1RBUlRVUF9ERUFETE9DSyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwppbmRl eCAwNzcyNTFjMWE2Li4yODEyMWYwNjU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAidXRpbHMvcHNfc3RhdHVzLmgiCiAj aW5jbHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5o IgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKIAogLyogVXNlci1zZXR0YWJsZSBH VUMgcGFyYW1ldGVycyAqLwogaW50CQkJdmFjdXVtX2RlZmVyX2NsZWFudXBfYWdlOwpAQCAt NDQwLDcgKzQ0MSw4IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFZpcnR1YWxYSURz KFZpcnR1YWxUcmFuc2FjdGlvbklkICp3YWl0bGlzdCwKIH0KIAogdm9pZAotUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVk WGlkLCBSZWxGaWxlTm9kZSBub2RlKQorUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJYm9vbCBv bkNhdGFsb2dUYWJsZSwgUmVsRmlsZU5vZGUgbm9kZSkKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rp b25JZCAqYmFja2VuZHM7CiAKQEAgLTQ2NSw2ICs0NjcsOSBAQCBSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsIFJl bEZpbGVOb2RlCiAJCQkJCQkJCQkJICAgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQ U0hPVCwKIAkJCQkJCQkJCQkgICBXQUlUX0VWRU5UX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBT SE9ULAogCQkJCQkJCQkJCSAgIHRydWUpOworCisJaWYgKG9uQ2F0YWxvZ1RhYmxlKQorCQlJ bnZhbGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhub2RlLmRiTm9k ZSwgbGF0ZXN0UmVtb3ZlZFhpZCk7CiB9CiAKIC8qCkBAIC00NzMsNyArNDc4LDcgQEAgUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RS ZW1vdmVkWGlkLCBSZWxGaWxlTm9kZQogICovCiB2b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25m bGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3Zl ZEZ1bGxYaWQsCi0JCQkJCQkJCQkJICAgUmVsRmlsZU5vZGUgbm9kZSkKKwkJCQkJCQkJCQkg ICBib29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKQogewogCS8qCiAJICog UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qgb3BlcmF0ZXMgb24gMzItYml0 IFRyYW5zYWN0aW9uSWRzLApAQCAtNDkxLDcgKzQ5Niw3IEBAIFJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1v dmVkRnVsbFhpCiAJCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAogCQlsYXRl c3RSZW1vdmVkWGlkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGxhdGVzdFJlbW92ZWRG dWxsWGlkKTsKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0 UmVtb3ZlZFhpZCwgbm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBz aG90KGxhdGVzdFJlbW92ZWRYaWQsIG9uQ2F0YWxvZ1RhYmxlLCBub2RlKTsKIAl9CiB9CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5k L3Rjb3AvcG9zdGdyZXMuYwppbmRleCAzZjllZDU0OWY5Li5iNmJkM2ZlMzZlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC9wb3N0Z3Jlcy5jCkBAIC0yNDY3LDYgKzI0NjcsOSBAQCBlcnJkZXRhaWxfcmVjb3Zlcnlf Y29uZmxpY3Qodm9pZCkKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBT SE9UOgogCQkJZXJyZGV0YWlsKCJVc2VyIHF1ZXJ5IG1pZ2h0IGhhdmUgbmVlZGVkIHRvIHNl ZSByb3cgdmVyc2lvbnMgdGhhdCBtdXN0IGJlIHJlbW92ZWQuIik7CiAJCQlicmVhazsKKwkJ Y2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZXJyZGV0 YWlsKCJVc2VyIHdhcyB1c2luZyB0aGUgbG9naWNhbCBzbG90IHRoYXQgbXVzdCBiZSBkcm9w cGVkLiIpOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9T VEFSVFVQX0RFQURMT0NLOgogCQkJZXJyZGV0YWlsKCJVc2VyIHRyYW5zYWN0aW9uIGNhdXNl ZCBidWZmZXIgZGVhZGxvY2sgd2l0aCByZWNvdmVyeS4iKTsKIAkJCWJyZWFrOwpAQCAtMzAz Nyw2ICszMDQwLDI1IEBAIFJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUHJvY1NpZ25hbFJl YXNvbiByZWFzb24pCiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9DSzoK IAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFOgogCQkJY2Fz ZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgorCQkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJCS8qCisJCQkJICogRm9yIGNv bmZsaWN0cyB0aGF0IHJlcXVpcmUgYSBsb2dpY2FsIHNsb3QgdG8gYmUgaW52YWxpZGF0ZWQs IHRoZQorCQkJCSAqIHJlcXVpcmVtZW50IGlzIGZvciB0aGUgc2lnbmFsIHJlY2VpdmVyIHRv IHJlbGVhc2UgdGhlIHNsb3QsCisJCQkJICogc28gdGhhdCBpdCBjb3VsZCBiZSBpbnZhbGlk YXRlZCBieSB0aGUgc2lnbmFsIHNlbmRlci4gU28gZm9yCisJCQkJICogbm9ybWFsIGJhY2tl bmRzLCB0aGUgdHJhbnNhY3Rpb24gc2hvdWxkIGJlIGFib3J0ZWQsIGp1c3QKKwkJCQkgKiBs aWtlIGZvciBvdGhlciByZWNvdmVyeSBjb25mbGljdHMuIEJ1dCBpZiBpdCdzIHdhbHNlbmRl ciBvbgorCQkJCSAqIHN0YW5kYnksIHRoZW4gaXQgaGFzIHRvIGJlIGtpbGxlZCBzbyBhcyB0 byByZWxlYXNlIGFuCisJCQkJICogYWNxdWlyZWQgbG9naWNhbCBzbG90LgorCQkJCSAqLwor CQkJCWlmIChhbV9jYXNjYWRpbmdfd2Fsc2VuZGVyICYmCisJCQkJCXJlYXNvbiA9PSBQUk9D U0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UICYmCisJCQkJCU15UmVwbGljYXRp b25TbG90ICYmIFNsb3RJc0xvZ2ljYWwoTXlSZXBsaWNhdGlvblNsb3QpKQorCQkJCXsKKwkJ CQkJUmVjb3ZlcnlDb25mbGljdFBlbmRpbmcgPSB0cnVlOworCQkJCQlRdWVyeUNhbmNlbFBl bmRpbmcgPSB0cnVlOworCQkJCQlJbnRlcnJ1cHRQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJYnJl YWs7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBJZiB3ZSBhcmVuJ3QgaW4gYSB0cmFuc2Fj dGlvbiBhbnkgbG9uZ2VyIHRoZW4gaWdub3JlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYwppbmRleCBmZjVhZWRjOTljLi4wNzNiNDAyYmFjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMTQ5Nyw2ICsxNDk3LDIxIEBAIHBnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X3NuYXBzaG90KFBHX0ZVTkNUSU9OX0FSR1MpCiAJUEdfUkVUVVJOX0lO VDY0KHJlc3VsdCk7CiB9CiAKK0RhdHVtCitwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dp Y2Fsc2xvdChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCWRiaWQgPSBQR19HRVRBUkdf T0lEKDApOworCWludDY0CQlyZXN1bHQ7CisJUGdTdGF0X1N0YXREQkVudHJ5ICpkYmVudHJ5 OworCisJaWYgKChkYmVudHJ5ID0gcGdzdGF0X2ZldGNoX3N0YXRfZGJlbnRyeShkYmlkKSkg PT0gTlVMTCkKKwkJcmVzdWx0ID0gMDsKKwllbHNlCisJCXJlc3VsdCA9IChpbnQ2NCkgKGRi ZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QpOworCisJUEdfUkVUVVJOX0lOVDY0KHJl c3VsdCk7Cit9CisKIERhdHVtCiBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4o UEdfRlVOQ1RJT05fQVJHUykKIHsKQEAgLTE1NDAsNiArMTU1NSw3IEBAIHBnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X2FsbChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAoaW50NjQp IChkYmVudHJ5LT5uX2NvbmZsaWN0X3RhYmxlc3BhY2UgKwogCQkJCQkJICBkYmVudHJ5LT5u X2NvbmZsaWN0X2xvY2sgKwogCQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X3NuYXBzaG90 ICsKKwkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9sb2dpY2Fsc2xvdCArCiAJCQkJCQkg IGRiZW50cnktPm5fY29uZmxpY3RfYnVmZmVycGluICsKIAkJCQkJCSAgZGJlbnRyeS0+bl9j b25mbGljdF9zdGFydHVwX2RlYWRsb2NrKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK aW5kZXggZDA2OGQ2NTMyZS4uZTQwZjU3YTU0OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0CkBAIC01NTAyLDYgKzU1MDIsMTEgQEAKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRf ZGJfY29uZmxpY3Rfc25hcHNob3QnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3BhcmFs bGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQn LAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90JyB9LAor eyBvaWQgPT4gJzQ1NDQnLAorICBkZXNjciA9PiAnc3RhdGlzdGljczogcmVjb3ZlcnkgY29u ZmxpY3RzIGluIGRhdGFiYXNlIGNhdXNlZCBieSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qn LAorICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCcs IHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBl ID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsCisgIHByb3NyYyA9PiAncGdfc3Rh dF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QnIH0sCiB7IG9pZCA9PiAnMzA2OCcsCiAg IGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBjb25mbGljdHMgaW4gZGF0YWJhc2Ug Y2F1c2VkIGJ5IHNoYXJlZCBidWZmZXIgcGluJywKICAgcHJvbmFtZSA9PiAncGdfc3RhdF9n ZXRfZGJfY29uZmxpY3RfYnVmZmVycGluJywgcHJvdm9sYXRpbGUgPT4gJ3MnLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaAppbmRl eCA1MDk4NDljN2ZmLi4xNTUzOWRjYzcyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wZ3N0 YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtNzM0LDYgKzczNCw3IEBAIHR5 cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0REJFbnRyeQogCVBnU3RhdF9Db3VudGVyIG5fY29u ZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X2xvY2s7CiAJ UGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9zbmFwc2hvdDsKKwlQZ1N0YXRfQ291bnRlciBu X2NvbmZsaWN0X2xvZ2ljYWxzbG90OwogCVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3RfYnVm ZmVycGluOwogCVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jazsK IAlQZ1N0YXRfQ291bnRlciBuX3RlbXBfZmlsZXM7CkBAIC0xMDI0LDYgKzEwMjUsNyBAQCBl eHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X2NoZWNrc3VtX2ZhaWx1cmUodm9pZCk7CiBleHRl cm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3JlcGxzbG90KGNvbnN0IFBnU3RhdF9TdGF0UmVwbFNs b3RFbnRyeSAqcmVwU2xvdFN0YXQpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9yZXBs c2xvdF9jcmVhdGUoY29uc3QgY2hhciAqc2xvdG5hbWUpOwogZXh0ZXJuIHZvaWQgcGdzdGF0 X3JlcG9ydF9yZXBsc2xvdF9kcm9wKGNvbnN0IGNoYXIgKnNsb3RuYW1lKTsKK2V4dGVybiB2 b2lkIHBnc3RhdF9yZXBvcnRfcmVwbHNsb3RfY29uZmxpY3QoT2lkIGRiT2lkKTsKIAogZXh0 ZXJuIHZvaWQgcGdzdGF0X2luaXRpYWxpemUodm9pZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Ns b3QuaAppbmRleCA1M2Q3NzNjY2ZmLi5jY2E0YmIwNThjIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oCkBAIC0yMTQsNiArMjE0LDcgQEAgZXh0ZXJuIFhMb2dSZWNQdHIgUmVwbGljYXRp b25TbG90c0NvbXB1dGVMb2dpY2FsUmVzdGFydExTTih2b2lkKTsKIGV4dGVybiBib29sIFJl cGxpY2F0aW9uU2xvdHNDb3VudERCU2xvdHMoT2lkIGRib2lkLCBpbnQgKm5zbG90cywgaW50 ICpuYWN0aXZlKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdHNEcm9wREJTbG90cyhP aWQgZGJvaWQpOwogZXh0ZXJuIGJvb2wgSW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25T bG90cyhYTG9nU2VnTm8gb2xkZXN0U2Vnbm8pOworZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZUNv bmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoT2lkIGRib2lkLCBUcmFuc2FjdGlv bklkIHhpZCk7CiBleHRlcm4gUmVwbGljYXRpb25TbG90ICpTZWFyY2hOYW1lZFJlcGxpY2F0 aW9uU2xvdChjb25zdCBjaGFyICpuYW1lLCBib29sIG5lZWRfbG9jayk7CiBleHRlcm4gdm9p ZCBSZXBsaWNhdGlvblNsb3ROYW1lRm9yVGFibGVzeW5jKE9pZCBzdWJvaWQsIE9pZCByZWxp ZCwgY2hhciAqc3luY3Nsb3RuYW1lLCBpbnQgc3pzbG90KTsKIGV4dGVybiB2b2lkIFJlcGxp Y2F0aW9uU2xvdERyb3BBdFB1Yk5vZGUoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGNoYXIg KnNsb3RuYW1lLCBib29sIG1pc3Npbmdfb2spOwpAQCAtMjIzLDUgKzIyNCw2IEBAIGV4dGVy biB2b2lkIENoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpOwogCiBleHRlcm4gdm9p ZCBDaGVja1Nsb3RSZXF1aXJlbWVudHModm9pZCk7CiBleHRlcm4gdm9pZCBDaGVja1Nsb3RQ ZXJtaXNzaW9ucyh2b2lkKTsKK2V4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aExvZ2ljYWxTbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkLCBjaGFyICpy ZWFzb24pOwogCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9IICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJv Y3NpZ25hbC5oCmluZGV4IGVlYzE4NmJlMmUuLmY4NmIwNzBkYmMgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3Jh Z2UvcHJvY3NpZ25hbC5oCkBAIC00MSw2ICs0MSw3IEBAIHR5cGVkZWYgZW51bQogCVBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfVEFCTEVTUEFDRSwKIAlQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX0xPQ0ssCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVCwKKwlQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9ULAogCVBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfQlVGRkVSUElOLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RB UlRVUF9ERUFETE9DSywKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFu ZGJ5LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaAppbmRleCAzOGZkODVhNDMx Li4zYmExODgyMjE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnkuaApAQCAtMzAsOSArMzAsOSBA QCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZvaWQp OwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQo dm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBz aG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKLQkJCQkJCQkJCQkJCVJlbEZp bGVOb2RlIG5vZGUpOworCQkJCQkJCQkJCQkJYm9vbCBvbkNhdGFsb2dUYWJsZSwgUmVsRmls ZU5vZGUgbm9kZSk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhT bmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZEZ1bGxYaWQs Ci0JCQkJCQkJCQkJCQkJICAgUmVsRmlsZU5vZGUgbm9kZSk7CisJCQkJCQkJCQkJCQkJICAg Ym9vbCBvbkNhdGFsb2dUYWJsZSwgUmVsRmlsZU5vZGUgbm9kZSk7CiBleHRlcm4gdm9pZCBS ZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhUYWJsZXNwYWNlKE9pZCB0c2lkKTsKIGV4dGVy biB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aERhdGFiYXNlKE9pZCBkYmlkKTsK IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dAppbmRleCAyZmEwMGEzYzI5Li43 Y2Y5MTg2MzRjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAtMTg3 MSw3ICsxODcxLDggQEAgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHN8IFNFTEVDVCBkLm9p ZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2NrKGQub2lkKSBB UyBjb25mbF9sb2NrLAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KGQu b2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9i dWZmZXJwaW4oZC5vaWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwKLSAgICBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFkbG9jawor ICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soZC5vaWQpIEFT IGNvbmZsX2RlYWRsb2NrLAorICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxz bG90KGQub2lkKSBBUyBjb25mbF9sb2dpY2Fsc2xvdAogICAgRlJPTSBwZ19kYXRhYmFzZSBk OwogcGdfc3RhdF9nc3NhcGl8IFNFTEVDVCBzLnBpZCwKICAgICBzLmdzc19hdXRoIEFTIGdz c19hdXRoZW50aWNhdGVkLAotLSAKMi4xOC40Cgo= --------------36F8C269D440200CD429EBCF--