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 1lOMvR-0001gD-3O for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Mar 2021 15:57:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lOMvQ-0003av-0h for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Mar 2021 15:57:04 +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 1lOMvP-0003an-Hq for pgsql-hackers@lists.postgresql.org; Mon, 22 Mar 2021 15:57:03 +0000 Received: from smtp-fw-9103.amazon.com ([207.171.188.200]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lOMvK-0002bq-76 for pgsql-hackers@postgresql.org; Mon, 22 Mar 2021 15:57:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1616428618; x=1647964618; h=subject:from:to:cc:references:message-id:date: mime-version:in-reply-to; bh=h8QBHuObroIYP/qCusSy+fK0nm1hlicbETtxkNOjL08=; b=Bs9ekgiunS3x0pB1jYtab7xw669wuQFiPSkZNaBzVa3eadllYPqCYQu5 nkoWkJ4sTUx9WRkmG/INuOaJI8+YGCG+xEEH9aD9jPooSTpaL+SIAgtgP gcul6SNkRK+c2XhGAYkEixd4Vfb6dKqBBOhZi78H41owVSudeqcqP2Con I=; X-Amazon-filename: v11-0005-Doc-changes-describing-details-about-logical-dec.patch, v11-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v11-0003-Handle-logical-slot-conflicts-on-standby.patch, v11-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch, v11-0001-Allow-logical-decoding-on-standby.patch X-IronPort-AV: E=Sophos;i="5.81,269,1610409600"; d="scan'208,217,223";a="920653491" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1e-42f764a0.us-east-1.amazon.com) ([10.43.8.6]) by smtp-border-fw-out-9103.sea19.amazon.com with ESMTP; 22 Mar 2021 15:56:46 +0000 Received: from EX13D03EUC003.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-1e-42f764a0.us-east-1.amazon.com (Postfix) with ESMTPS id 4622BBD3DB; Mon, 22 Mar 2021 15:56:45 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.161.41) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 22 Mar 2021 15:56:41 +0000 Subject: Re: Minimal logical decoding on standbys From: "Drouvot, Bertrand" To: CC: Alvaro Herrera , Andres Freund , tushar , "[pgdg] Robert Haas" , Amit Khandekar , Rahila Syed , pgsql-hackers References: <20200318184249.GA29007@alvherre.pgsql> <20200318195038.GA7123@alvherre.pgsql> <1ab609c9-2c16-26ff-5fbe-c3195e541f9c@amazon.com> <6e1dda09-0c4f-b196-a589-fb741f11686f@amazon.com> Message-ID: Date: Mon, 22 Mar 2021 16:56:36 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------CBE4036E39902411D07DAAFC" Content-Language: en-US X-Originating-IP: [10.43.161.41] X-ClientProxiedBy: EX13D15UWB003.ant.amazon.com (10.43.161.138) 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 --------------CBE4036E39902411D07DAAFC Content-Type: multipart/alternative; boundary="------------3942786AD586300944758BB3" --------------3942786AD586300944758BB3 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit On 3/22/21 3:57 PM, Drouvot, Bertrand wrote: > > > On 3/22/21 3:10 PM, Fabrízio de Royes Mello wrote: >> >> On Thu, Mar 18, 2021 at 5:34 AM Drouvot, Bertrand >> > wrote: >> > >> > Thanks! >> > >> > Just made minor changes to make it compiling again on current >> master (mainly had to take care of >> ResolveRecoveryConflictWithSnapshotFullXid() that has been introduced >> in e5d8a99903). >> > >> > Please find enclosed the new patch version that currently passes >> "make check" and the 2 associated TAP tests. >> > >> >> Unfortunately it still not applying to the current master: >> >> $ git am ~/Downloads/v10-000*.patch >> Applying: Allow logical decoding on standby. >> Applying: Add info in WAL records in preparation for logical slot >> conflict handling. >> error: patch failed: src/backend/access/nbtree/nbtpage.c:32 >> error: src/backend/access/nbtree/nbtpage.c: patch does not apply >> Patch failed at 0002 Add info in WAL records in preparation for >> logical slot conflict handling. >> hint: Use 'git am --show-current-patch' to see the failed patch >> When you have resolved this problem, run "git am --continue". >> If you prefer to skip this patch, run "git am --skip" instead. >> To restore the original branch and stop patching, run "git am --abort". > > oh Indeed, it's moving so fast! > > Let me rebase it (It was already my plan to do so as I have observed > during the week end that the > v7-0003-Handle-logical-slot-conflicts-on-standby.patch > > introduced incorrect changes (that should not be there at all in > ReplicationSlotReserveWal()) that have been kept in v8, v9 and v10. > please find enclosed the rebase version, that also contains the fix for ReplicationSlotReserveWal() mentioned above. Going back to looking at the whole thread. Bertrand --------------3942786AD586300944758BB3 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit


On 3/22/21 3:57 PM, Drouvot, Bertrand wrote:


On 3/22/21 3:10 PM, Fabrízio de Royes Mello wrote:

On Thu, Mar 18, 2021 at 5:34 AM Drouvot, Bertrand <bdrouvot@amazon.com> wrote:
>
> Thanks!
>
> Just made minor changes to make it compiling again on current master (mainly had to take care of ResolveRecoveryConflictWithSnapshotFullXid() that has been introduced in e5d8a99903).
>
> Please find enclosed the new patch version that currently passes "make check" and the 2 associated TAP tests.
>

Unfortunately it still not applying to the current master:

$ git am ~/Downloads/v10-000*.patch                                                    
Applying: Allow logical decoding on standby.
Applying: Add info in WAL records in preparation for logical slot conflict handling.
error: patch failed: src/backend/access/nbtree/nbtpage.c:32
error: src/backend/access/nbtree/nbtpage.c: patch does not apply
Patch failed at 0002 Add info in WAL records in preparation for logical slot conflict handling.
hint: Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

oh Indeed, it's moving so fast!

Let me rebase it (It was already my plan to do so as I have observed during the week end that the v7-0003-Handle-logical-slot-conflicts-on-standby.patch introduced incorrect changes (that should not be there at all in ReplicationSlotReserveWal()) that have been kept in v8, v9 and v10.

please find enclosed the rebase version, that also contains the fix for ReplicationSlotReserveWal() mentioned above.

Going back to looking at the whole thread.

Bertrand

--------------3942786AD586300944758BB3-- --------------CBE4036E39902411D07DAAFC Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v11-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v11-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" RnJvbSA5MjZiMzJlMjRhMDI2N2QxMDY4MDRlYTc1N2VlODliMDZlNzkwM2QxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyMiBNYXIgMjAyMSAxNTozNTo1NyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjExIDUvNV0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKLS0tCiBkb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwg fCAxOCArKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25z KCspCiAxMDAuMCUgZG9jL3NyYy9zZ21sLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9s b2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dt bAppbmRleCA4MGViOTZkNjA5Li5hMmE3NmQyZjY1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNv ZGluZy5zZ21sCkBAIC0yOTcsNiArMjk3LDI0IEBAIHBvc3RncmVzPSMgc2VsZWN0ICogZnJv bSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEws IE5VCiAgICAgIG1heSBjb25zdW1lIGNoYW5nZXMgZnJvbSBhIHNsb3QgYXQgYW55IGdpdmVu IHRpbWUuCiAgICAgPC9wYXJhPgogCisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBs aWNhdGlvbiBzbG90IGNhbiBhbHNvIGJlIGNyZWF0ZWQgb24gYSBob3Qgc3RhbmRieS4gVG8g cHJldmVudAorICAgICA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+IGZyb20gcmVtb3Zpbmcg cmVxdWlyZWQgcm93cyBmcm9tIHRoZSBzeXN0ZW0KKyAgICAgY2F0YWxvZ3MsIDx2YXJuYW1l PmhvdF9zdGFuZGJ5X2ZlZWRiYWNrPC92YXJuYW1lPiBzaG91bGQgYmUgc2V0IG9uIHRoZQor ICAgICBzdGFuZGJ5LiBJbiBzcGl0ZSBvZiB0aGF0LCBpZiBhbnkgcmVxdWlyZWQgcm93cyBn ZXQgcmVtb3ZlZCwgdGhlIHNsb3QgZ2V0cworICAgICBkcm9wcGVkLiAgRXhpc3RpbmcgbG9n aWNhbCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGRyb3BwZWQgaWYgd2FsX2xldmVsCisg ICAgIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0byBsZXNzIHRoYW4gJ2xvZ2ljYWwnLgorICAg IDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3IgYSBsb2dpY2FsIHNsb3QgdG8gYmUg Y3JlYXRlZCwgaXQgYnVpbGRzIGEgaGlzdG9yaWMgc25hcHNob3QsIGZvciB3aGljaAorICAg ICBpbmZvcm1hdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRyYW5zYWN0aW9u cyBpcyBlc3NlbnRpYWwuIE9uCisgICAgIHByaW1hcnksIHRoaXMgaW5mb3JtYXRpb24gaXMg YXZhaWxhYmxlLCBidXQgb24gc3RhbmRieSwgdGhpcyBpbmZvcm1hdGlvbgorICAgICBoYXMg dG8gYmUgb2J0YWluZWQgZnJvbSBwcmltYXJ5LiBTbywgc2xvdCBjcmVhdGlvbiBtYXkgd2Fp dCBmb3Igc29tZQorICAgICBhY3Rpdml0eSB0byBoYXBwZW4gb24gdGhlIHByaW1hcnkuIElm IHRoZSBwcmltYXJ5IGlzIGlkbGUsIGNyZWF0aW5nIGEKKyAgICAgbG9naWNhbCBzbG90IG9u IHN0YW5kYnkgbWF5IHRha2UgYSBub3RpY2VhYmxlIHRpbWUuCisgICAgPC9wYXJhPgorCiAg ICAgPGNhdXRpb24+CiAgICAgIDxwYXJhPgogICAgICAgUmVwbGljYXRpb24gc2xvdHMgcGVy c2lzdCBhY3Jvc3MgY3Jhc2hlcyBhbmQga25vdyBub3RoaW5nIGFib3V0IHRoZSBzdGF0ZQot LSAKMi4xOC40Cgo= --------------CBE4036E39902411D07DAAFC Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v11-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v11-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSA3ZDE1MTZlNmUxMDI0NDkyMmQ2Y2RhY2Y0ZDVhNjM0OTk3NGQ4MzU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyMiBNYXIgMjAyMSAxNTozNDo1MiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjExIDQvNV0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpUaGlzIHRlc3Qgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBDcmFpZyBSaW5nZXIs IHRoZW4KZXh0ZW5kZWQvbW9kaWZpZWQgYnkgbWUsIHRvIHRlc3QgdmFyaW91cyBzbG90IGNv bmZsaWN0IHNjZW5hcmlvcy4KCkF1dGhvcnM6IENyYWlnIFJpbmdlciwgQW1pdCBLaGFuZGVr YXIuCi0tLQogc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0gICAgICAgICAgICAgICAg IHwgIDM3ICsrKwogLi4uL3QvMDIyX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5w bCAgIHwgMjcyICsrKysrKysrKysrKysrKysrKwogLi4uLzAyM19zdGFuZGJ5X2xvZ2ljYWxf ZGVjb2RpbmdfY29uZmxpY3RzLnBsIHwgMjE1ICsrKysrKysrKysrKysrCiAzIGZpbGVzIGNo YW5nZWQsIDUyNCBpbnNlcnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC8KICA5My45 JSBzcmMvdGVzdC9yZWNvdmVyeS90LwoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9z dGdyZXNOb2RlLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KaW5kZXggOTdl MDU5OTNiZS4uOGExMDhlOWUxNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl c05vZGUucG0KKysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0KQEAgLTIyNDUs NiArMjI0NSw0MyBAQCBzdWIgcGdfcmVjdmxvZ2ljYWxfdXB0bwogCiA9cG9kCiAKKz1pdGVt ICRub2RlLT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoc2VsZiwgbWFzdGVyLCBz bG90X25hbWUsIGRibmFtZSkKKworQ3JlYXRlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBv biBnaXZlbiBzdGFuZGJ5CisKKz1jdXQKKworc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25f c3RhbmRieQoreworCW15ICgkc2VsZiwgJG1hc3RlciwgJHNsb3RfbmFtZSwgJGRibmFtZSkg PSBAXzsKKwlteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKwlteSAkaGFuZGxlOworCisJJGhh bmRsZSA9IElQQzo6UnVuOjpzdGFydChbJ3BnX3JlY3Zsb2dpY2FsJywgJy1kJywgJHNlbGYt PmNvbm5zdHIoJGRibmFtZSksICctUCcsICd0ZXN0X2RlY29kaW5nJywgJy1TJywgJHNsb3Rf bmFtZSwgJy0tY3JlYXRlLXNsb3QnXSwgJz4nLCBcJHN0ZG91dCwgJzI+JywgXCRzdGRlcnIp OworCisJIyBPbmNlIHNsb3QgcmVzdGFydF9sc24gaXMgY3JlYXRlZCwgdGhlIHN0YW5kYnkg bG9va3MgZm9yIHhsX3J1bm5pbmdfeGFjdHMKKwkjIFdBTCByZWNvcmQgZnJvbSB0aGUgcmVz dGFydF9sc24gb253YXJkcy4gU28gZmlyc3RseSwgd2FpdCB1bnRpbCB0aGUgc2xvdAorCSMg cmVzdGFydF9sc24gaXMgZXZhbHVhdGVkLgorCisJJHNlbGYtPnBvbGxfcXVlcnlfdW50aWwo CisJCSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgcmVzdGFydF9sc24gSVMgTk9UIE5VTEwK KwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFt ZSA9ICckc2xvdF9uYW1lJworCV0pIG9yIGRpZSAidGltZWQgb3V0IHdhaXRpbmcgZm9yIGxv Z2ljYWwgc2xvdCB0byBjYWxjdWxhdGUgaXRzIHJlc3RhcnRfbHNuIjsKKworCSMgTm93IGFy cmFuZ2UgZm9yIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCBmb3Igd2hpY2ggcGdfcmVj dmxvZ2ljYWwKKwkjIGlzIHdhaXRpbmcuCisJJG1hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICdDSEVDS1BPSU5UJyk7CisKKwkkaGFuZGxlLT5maW5pc2goKTsKKworCWlzKCRzZWxm LT5zbG90KCRzbG90X25hbWUpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsICRzbG90X25h bWUgLiAnIG9uIHN0YW5kYnkgY3JlYXRlZCcpCisJCW9yIGRpZSAiY291bGQgbm90IGNyZWF0 ZSBzbG90IiAuICRzbG90X25hbWU7Cit9CisKKz1wb2QKKwogPWJhY2sKIAogPWN1dApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjJfc3RhbmRieV9sb2dpY2FsX2RlY29k aW5nX3htaW5zLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjJfc3RhbmRieV9sb2dpY2Fs X2RlY29kaW5nX3htaW5zLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmQ2NTRkNzk1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90 LzAyMl9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfeG1pbnMucGwKQEAgLTAsMCArMSwyNzIg QEAKKyMgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnkgOiBlbnN1cmUgeG1pbnMgYXJl IGFwcHJvcHJpYXRlbHkgdXBkYXRlZAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwor Cit1c2UgUG9zdGdyZXNOb2RlOwordXNlIFRlc3RMaWI7Cit1c2UgVGVzdDo6TW9yZSB0ZXN0 cyA9PiAyMzsKK3VzZSBSZWN1cnNpdmVDb3B5OwordXNlIEZpbGU6OkNvcHk7Cit1c2UgVGlt ZTo6SGlSZXMgcXcodXNsZWVwKTsKKworbXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwg JHJldCwgJGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9tYXN0ZXIgPSBnZXRfbmV3X25v ZGUoJ21hc3RlcicpOworbXkgJG5vZGVfc3RhbmRieSA9IGdldF9uZXdfbm9kZSgnc3RhbmRi eScpOworCisjIE5hbWUgZm9yIHRoZSBwaHlzaWNhbCBzbG90IG9uIG1hc3RlcgorbXkgJG1h c3Rlcl9zbG90bmFtZSA9ICdtYXN0ZXJfcGh5c2ljYWwnOworIyBOYW1lIGZvciB0aGUgbG9n aWNhbCBzbG90IG9uIHN0YW5kYnkKK215ICRzdGFuZGJ5X3Nsb3RuYW1lID0gJ3N0YW5kYnlf bG9naWNhbCc7CisKKyMgRmV0Y2ggeG1pbiBjb2x1bW5zIGZyb20gc2xvdCdzIHBnX3JlcGxp Y2F0aW9uX3Nsb3RzIHJvdywgYWZ0ZXIgd2FpdGluZyBmb3IKKyMgZ2l2ZW4gYm9vbGVhbiBj b25kaXRpb24gdG8gYmUgdHJ1ZSB0byBlbnN1cmUgd2UndmUgcmVhY2hlZCBhIHF1aWVzY2Vu dCBzdGF0ZQorc3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkgKCRub2RlLCAkc2xvdG5hbWUs ICRjaGVja19leHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdw b3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIKKwkJRlJPTSBwZ19jYXRhbG9n LnBnX3JlcGxpY2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdG5hbWUn OworCV0pIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbnMgdG8gYWR2 YW5jZSI7Cit9CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUg bWFzdGVyIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9tYXN0ZXIt PmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5v ZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9sZXZl bCA9ICdsb2dpY2FsJworbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9zZW5k ZXJzID0gNAorbG9nX21pbl9tZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVyYm9z aXR5ID0gdmVyYm9zZQorIyB2ZXJ5IHByb21wdGx5IHRlcm1pbmF0ZSBjb25mbGljdGluZyBi YWNrZW5kcworbWF4X3N0YW5kYnlfc3RyZWFtaW5nX2RlbGF5ID0gJzJzJworfSk7Ciskbm9k ZV9tYXN0ZXItPmR1bXBfaW5mbzsKKyRub2RlX21hc3Rlci0+c3RhcnQ7CisKKyRub2RlX21h c3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxW1NFTEVDVCAqIEZST00gcGdfY3JlYXRl X3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRtYXN0ZXJfc2xvdG5hbWUnKTtdKTsKK215 ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9tYXN0ZXItPmJhY2t1cCgkYmFja3VwX25h bWUpOworCisjIEFmdGVyIHNsb3QgY3JlYXRpb24sIHhtaW5zIG11c3QgYmUgbnVsbAorJHNs b3QgPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90bmFtZSk7Citpcygkc2xvdC0+ eyd4bWluJ30sICcnLCAieG1pbiBudWxsIik7Citpcygkc2xvdC0+eydjYXRhbG9nX3htaW4n fSwgJycsICJjYXRhbG9nX3htaW4gbnVsbCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIyBJbml0aWFsaXplIHNsYXZlIG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK KyRub2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJJG5vZGVfbWFzdGVyLCAkYmFj a3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7 Ciskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKKwlxcVtw cmltYXJ5X3Nsb3RfbmFtZSA9ICckbWFzdGVyX3Nsb3RuYW1lJ10pOworJG5vZGVfc3RhbmRi eS0+c3RhcnQ7Ciskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyB4bWluL2NhdGFsb2dfeG1pbiB2ZXJpZmlj YXRpb24gYmVmb3JlIGFuZCBhZnRlciBzdGFuZGJ5LWxvZ2ljYWwtc2xvdCBjcmVhdGlvbi4K KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgV2l0aCBob3Rfc3RhbmRi eV9mZWVkYmFjayBvZmYsIHhtaW4gYW5kIGNhdGFsb2dfeG1pbiBtdXN0IHN0aWxsIGJlIG51 bGwKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xvdG5hbWUpOworaXMo JHNsb3QtPnsneG1pbid9LCAnJywgInhtaW4gbnVsbCBhZnRlciBzdGFuZGJ5IGpvaW4iKTsK K2lzKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAnJywgImNhdGFsb2dfeG1pbiBudWxsIGFm dGVyIHN0YW5kYnkgam9pbiIpOworCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9z dGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorIyBzZW5kIHN0 YXR1cyByYXBpZGx5IHNvIHdlIHByb21wdGx5IGFkdmFuY2UgeG1pbiBvbiBtYXN0ZXIKK3dh bF9yZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPSAxCitdKTsKKyRub2RlX3N0YW5kYnktPnJl c3RhcnQ7CisKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIHNlbnQgYnkgd2FpdGlu ZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIG1hc3Rlci4gV2l0 aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1pbiBzaG91bGQgYWR2YW5jZSwKKyMgYnV0 IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVtYWluIE5VTEwgc2luY2UgdGhlcmUgaXMg bm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVy X3Nsb3RuYW1lLCAieG1pbiBJUyBOT1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwi KTsKKworIyBDcmVhdGUgbmV3IHNsb3RzIG9uIHRoZSBzdGFuZGJ5LCBpZ25vcmluZyB0aGUg b25lcyBvbiB0aGUgbWFzdGVyIGNvbXBsZXRlbHkuCisjCisjIFRoaXMgbXVzdCBzdWNjZWVk IHNpbmNlIHdlIGtub3cgd2UgaGF2ZSBhIGNhdGFsb2dfeG1pbiByZXNlcnZhdGlvbi4gV2UK KyMgbWlnaHQndmUgYWxyZWFkeSBzZW50IGhvdCBzdGFuZGJ5IGZlZWRiYWNrIHRvIGFkdmFu Y2Ugb3VyIHBoeXNpY2FsIHNsb3QncworIyBjYXRhbG9nX3htaW4gYnV0IG5vdCByZWNlaXZl ZCB0aGUgY29ycmVzcG9uZGluZyB4bG9nIGZvciB0aGUgY2F0YWxvZyB4bWluCisjIGFkdmFu Y2UsIGluIHdoaWNoIGNhc2Ugd2UnbGwgY3JlYXRlIGEgc2xvdCB0aGF0IGlzbid0IHVzYWJs ZS4gVGhlIGNhbGxpbmcKKyMgYXBwbGljYXRpb24gY2FuIHByZXZlbnQgdGhpcyBieSBjcmVh dGluZyBhIHRlbXBvcmFyeSBzbG90IG9uIHRoZSBtYXN0ZXIgdG8KKyMgbG9jayBpbiBpdHMg Y2F0YWxvZ194bWluLiBGb3IgYSB0cnVseSByYWNlLWZyZWUgc29sdXRpb24gd2UnZCBuZWVk CisjIG1hc3Rlci10by1zdGFuZGJ5IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHJlcGxpZXMuCisj CisjIEluIHRoaXMgY2FzZSBpdCB3b24ndCByYWNlIGJlY2F1c2UgdGhlcmUncyBubyBjb25j dXJyZW50IGFjdGl2aXR5IG9uIHRoZQorIyBtYXN0ZXIuCisjCiskbm9kZV9zdGFuZGJ5LT5j cmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFzdGVyLCAkc3RhbmRieV9z bG90bmFtZSwgJ3Bvc3RncmVzJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1 cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykp OworCisjIE5vdyB0aGF0IHNsb3QgaXMgY3JlYXRlZCBvbiBzdGFuZGJ5LCB4bWluIGFuZCBj YXRhbG9nX3htaW4gc2hvdWxkIGJlIG5vbiBOVUxMCisjIG9uIGJvdGggbWFzdGVyIGFuZCBz dGFuZGJ5LiBCdXQgb24gbWFzdGVyLCB0aGUgeG1pbnMgd2lsbCBiZSB1cGRhdGVkIG9ubHkK KyMgYWZ0ZXIgaG90IHN0YW5kYnkgZmVlZGJhY2sgaXMgcmVjZWl2ZWQuCit3YWl0X2Zvcl94 bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsICJ4bWluIElTIE5PVCBOVUxM IEFORCBjYXRhbG9nX3htaW4gSVMgTk9UIE5VTEwiKTsKKworJHNsb3QgPSAkbm9kZV9zdGFu ZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3RuYW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycs ICJsb2dpY2FsIHhtaW4gbnVsbCIpOworaXNudCgkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwg JycsICJsb2dpY2FsIGNhdGFsb2dfeG1pbiBub3QgbnVsbCIpOworCisKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFN0YW5kYnkgbG9naWNhbCBzbG90IHNob3VsZCBi ZSBhYmxlIHRvIGZldGNoIHRoZSB0YWJsZSBjaGFuZ2VzIGV2ZW4gd2hlbiB0aGUKKyMgdGFi bGUgaXMgZHJvcHBlZC4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRu b2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDUkVBVEUgVEFCTEUgdGVzdF90 YWJsZShpZCBzZXJpYWwgcHJpbWFyeSBrZXksIGJsYWggdGV4dCknKTsKKyRub2RlX21hc3Rl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbSU5TRVJUIElOVE8gdGVzdF90YWJsZShibGFo KSB2YWx1ZXMgKCdpdHdvcmtzJyldKTsKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdEUk9QIFRBQkxFIHRlc3RfdGFibGUnKTsKKyRub2RlX21hc3Rlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICdWQUNVVU0nKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1 c2gnKSk7CisKKyMgU2hvdWxkIHNob3cgdGhlIGluc2VydHMgZXZlbiB3aGVuIHRoZSB0YWJs ZSBpcyBkcm9wcGVkIG9uIG1hc3RlcgorKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5v ZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxcVtTRUxFQ1QgZGF0YSBGUk9NIHBnX2xv Z2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnJHN0YW5kYnlfc2xvdG5hbWUnLCBOVUxMLCBOVUxM LCAnaW5jbHVkZS14aWRzJywgJzAnLCAnc2tpcC1lbXB0eS14YWN0cycsICcxJywgJ2luY2x1 ZGUtdGltZXN0YW1wJywgJzAnKV0pOworaXMoJHN0ZGVyciwgJycsICdzdGRlcnIgaXMgZW1w dHknKTsKK2lzKCRyZXQsIDAsICdyZXBsYXkgZnJvbSBzbG90IHN1Y2NlZWRlZCcpCisJb3Ig ZGllICdjYW5ub3QgY29udGludWUgaWYgc2xvdCByZXBsYXkgZmFpbHMnOworaXMoJHN0ZG91 dCwgcXtCRUdJTgordGFibGUgcHVibGljLnRlc3RfdGFibGU6IElOU0VSVDogaWRbaW50ZWdl cl06MSBibGFoW3RleHRdOidpdHdvcmtzJworQ09NTUlUfSwgJ3JlcGxheSByZXN1bHRzIG1h dGNoJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCiskc2xvdCA9ICRu b2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKTsKK2lzbnQoJHNsb3QtPnsneG1p bid9LCAnJywgInBoeXNpY2FsIHhtaW4gbm90IG51bGwiKTsKK215ICRzYXZlZF9waHlzaWNh bF9jYXRhbG9nX3htaW4gPSAkc2xvdC0+eydjYXRhbG9nX3htaW4nfTsKK2lzbnQoJHNhdmVk X3BoeXNpY2FsX2NhdGFsb2dfeG1pbiwgJycsICJwaHlzaWNhbCBjYXRhbG9nX3htaW4gbm90 IG51bGwiKTsKKworJHNsb3QgPSAkbm9kZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3Ru YW1lKTsKK2lzKCRzbG90LT57J3htaW4nfSwgJycsICJsb2dpY2FsIHhtaW4gbnVsbCIpOwor bXkgJHNhdmVkX2xvZ2ljYWxfY2F0YWxvZ194bWluID0gJHNsb3QtPnsnY2F0YWxvZ194bWlu J307Citpc250KCRzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1pbiwgJycsICJsb2dpY2FsIGNh dGFsb2dfeG1pbiBub3QgbnVsbCIpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjIENhdGFsb2cgeG1pbnMgc2hvdWxkIGFkdmFuY2UgYWZ0ZXIgc3RhbmRieSBs b2dpY2FsIHNsb3QgZmV0Y2hlcyB0aGUgY2hhbmdlcy4KKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKKyMgSWRlYWxseSB3ZSdkIGp1c3QgaG9sZCBjYXRhbG9nX3htaW4s IGJ1dCBzaW5jZSBoc19mZWVkYmFjayBjdXJyZW50bHkgdXNlcyB0aGUgc2xvdCwKKyMgd2Ug aG9sZCBkb3duIHhtaW4uCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx cVtDUkVBVEUgVEFCTEUgY2F0YWxvZ19pbmNyZWFzZV8xKCk7XSk7Ciskbm9kZV9tYXN0ZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIFRBQkxFIHRlc3RfdGFibGUoaWQgc2Vy aWFsIHByaW1hcnkga2V5LCBibGFoIHRleHQpJyk7Citmb3IgbXkgJGkgKDAgLi4gMjAwMCkK K3sKKyAgICAkbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtJTlNFUlQg SU5UTyB0ZXN0X3RhYmxlKGJsYWgpIFZBTFVFUyAoJ2VudHJ5ICRpJyldKTsKK30KKyRub2Rl X21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxW0NSRUFURSBUQUJMRSBjYXRhbG9n X2luY3JlYXNlXzIoKTtdKTsKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdWQUNVVU0nKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2NtcF9v aygkbm9kZV9zdGFuZGJ5LT5zbG90KCRzdGFuZGJ5X3Nsb3RuYW1lKS0+eydjYXRhbG9nX3ht aW4nfSwgIj09IiwKKwkgICAkc2F2ZWRfbG9naWNhbF9jYXRhbG9nX3htaW4sCisJICAgImxv Z2ljYWwgc2xvdCBjYXRhbG9nX3htaW4gaGFzbid0IGFkdmFuY2VkIGJlZm9yZSBnZXRfY2hh bmdlcyIpOworCisoJHJldCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9zdGFuZGJ5LT5w c3FsKCdwb3N0Z3JlcycsCisJcXFbU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3Rf Z2V0X2NoYW5nZXMoJyRzdGFuZGJ5X3Nsb3RuYW1lJywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUt eGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNsdWRlLXRpbWVzdGFt cCcsICcwJyldKTsKK2lzKCRyZXQsIDAsICdyZXBsYXkgb2YgYmlnIHNlcmllcyBzdWNjZWVk ZWQnKTsKK2lzbnQoJHN0ZG91dCwgJycsICdyZXBsYXllZCBzb21lIHJvd3MnKTsKKworJG5v ZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKKyMgbG9naWNhbCBzbG90IGNhdGFsb2df eG1pbiBvbiBzbGF2ZSBzaG91bGQgYWR2YW5jZSBhZnRlciBwZ19sb2dpY2FsX3Nsb3RfZ2V0 X2NoYW5nZXMKK3dhaXRfZm9yX3htaW5zKCRub2RlX3N0YW5kYnksICRzdGFuZGJ5X3Nsb3Ru YW1lLAorCQkJICAgImNhdGFsb2dfeG1pbjo6dmFyY2hhcjo6aW50ID4gJHtzYXZlZF9sb2dp Y2FsX2NhdGFsb2dfeG1pbn0iKTsKKyRzbG90ID0gJG5vZGVfc3RhbmRieS0+c2xvdCgkc3Rh bmRieV9zbG90bmFtZSk7CitteSAkbmV3X2xvZ2ljYWxfY2F0YWxvZ194bWluID0gJHNsb3Qt PnsnY2F0YWxvZ194bWluJ307Citpcygkc2xvdC0+eyd4bWluJ30sICcnLCAibG9naWNhbCB4 bWluIG51bGwiKTsKKworIyBob3Qgc3RhbmRieSBmZWVkYmFjayBzaG91bGQgYWR2YW5jZSBt YXN0ZXIncyBwaHlzIGNhdGFsb2dfeG1pbiBub3cgdGhhdCB0aGUKKyMgc3RhbmRieSdzIHNs b3QgZG9lc24ndCBob2xkIGl0IGRvd24gYXMgZmFyLgorIyBCdXQgbWFzdGVyJ3MgcGh5cyBj YXRhbG9nX3htaW4gc2hvdWxkIG5vdCBnbyBwYXN0IHRoZSBzbGF2ZSdzIGxvZ2ljYWwgc2xv dCdzCisjIGNhdGFsb2dfeG1pbiwgZXZlbiB3aGlsZSBtYXN0ZXIncyBwaHlzIHhtaW4gYWR2 YW5jZXMuCisjCisjIEZpcnN0LCBtYWtlIHN1cmUgbWFzdGVyJ3MgeG1pbiBpcyBhZHZhbmNl ZC4gVGhpcyBoYXBwZW5zIG9uIGhvdCBzdGFuZGJ5CisjIGZlZWRiYWNrLiBTbyB0aGlzIGNo ZWNrIGZvciBtYXN0ZXIncyB4bWluIGFkdmFuY2UgYWxzbyBtYWtlcyBzdXJlIGhvdCBzdGFu ZGJ5CisjIGZlZWRiYWNrIGhhcyByZWFjaGVkIHRoZSBtYXN0ZXIsIHdoaWNoIGlzIHJlcXVp cmVkIGZvciB0aGUgc3Vic2VxdWVudAorIyBjYXRhbG9nX3htaW4gdGVzdC4KK215ICR0ZW1w X3BoeXNfeG1pbiA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKS0+eyd4 bWluJ307Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNUIHR4 aWRfY3VycmVudCgpJyk7Cit3YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJf c2xvdG5hbWUsCisJCQkgICAieG1pbjo6dmFyY2hhcjo6aW50ID4gJHt0ZW1wX3BoeXNfeG1p bn0iKTsKKyRzbG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xvdG5hbWUpOwor IyBOb3cgY2hlY2sgdGhhdCB0aGUgbWFzdGVyJ3MgcGh5cyBjYXRhbG9nX3htaW4gaGFzIGFk dmFuY2VkIGJ1dCBub3QgYmV5b25kCisjIHN0YW5kYnkncyBsb2dpY2FsIGNhdGFsb2dfeG1p bgorY21wX29rKCRzbG90LT57J2NhdGFsb2dfeG1pbid9LCAiPiIsICRzYXZlZF9waHlzaWNh bF9jYXRhbG9nX3htaW4sCisJJ3Vwc3RyZWFtIHBoeXNpY2FsIHNsb3QgY2F0YWxvZ194bWlu IGhhcyBhZHZhbmNlZCB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7CitjbXBfb2soJHNsb3QtPnsn Y2F0YWxvZ194bWluJ30sICI9PSIsICRuZXdfbG9naWNhbF9jYXRhbG9nX3htaW4sCisJJ3Vw c3RyZWFtIHBoeXNpY2FsIHNsb3QgY2F0YWxvZ194bWluIG5vdCBwYXN0IGRvd25zdHJlYW0g Y2F0YWxvZ194bWluIHdpdGggaHNfZmVlZGJhY2sgb24nKTsKKworCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjIFVwc3RyZWFtIG9sZGVzdFhpZCBzaG91bGQgbm90IGdvIHBhc3QgZG93 bnN0cmVhbSBjYXRhbG9nX3htaW4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBGaXJz dCBidXJuIHNvbWUgeGlkcyBvbiB0aGUgbWFzdGVyIGluIGFub3RoZXIgREIsIHNvIHdlIHB1 c2ggdGhlIG1hc3RlcidzCisjIG5leHRYaWQgYWhlYWQuCitmb3JlYWNoIG15ICRpICgxIC4u IDEwMCkKK3sKKwkkbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnU0VMRUNU IHR4aWRfY3VycmVudCgpJyk7Cit9CisKKyMgRm9yY2UgdmFjdXVtIGZyZWV6ZSBvbiB0aGUg bWFzdGVyIGFuZCBlbnN1cmUgaXRzIG9sZGVzdFhtaW4gZG9lc24ndCBhZHZhbmNlCisjIHBh c3Qgb3VyIG5lZWRlZCB4bWluLiBUaGUgb25seSB3YXkgd2UgaGF2ZSB2aXNpYmlsaXR5IGlu dG8gdGhhdCBpcyB0byBmb3JjZQorIyBhIGNoZWNrcG9pbnQuCiskbm9kZV9tYXN0ZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiVVBEQVRFIHBnX2RhdGFiYXNlIFNFVCBkYXRhbGxvd2Nv bm4gPSB0cnVlIFdIRVJFIGRhdG5hbWUgPSAndGVtcGxhdGUwJyIpOworZm9yZWFjaCBteSAk ZGJuYW1lICgndGVtcGxhdGUxJywgJ3Bvc3RncmVzJywgJ3Bvc3RncmVzJywgJ3RlbXBsYXRl MCcpCit7CisJJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJGRibmFtZSwgJ1ZBQ1VVTSBGUkVF WkUnKTsKK30KKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdDSEVDS1BP SU5UJyk7CitJUEM6OlJ1bjo6cnVuKFsncGdfY29udHJvbGRhdGEnLCAkbm9kZV9tYXN0ZXIt PmRhdGFfZGlyKCldLCAnPicsIFwkc3Rkb3V0KQorCW9yIGRpZSAicGdfY29udHJvbGRhdGEg ZmFpbGVkIHdpdGggJD8iOworbXkgQGNoZWNrcG9pbnQgPSBzcGxpdCgnXG4nLCAkc3Rkb3V0 KTsKK215ICRvbGRlc3RYaWQgPSAnJzsKK2ZvcmVhY2ggbXkgJGxpbmUgKEBjaGVja3BvaW50 KQoreworCWlmICgkbGluZSA9fiBxci9eTGF0ZXN0IGNoZWNrcG9pbnQncyBvbGRlc3RYSUQ6 XHMrKFxkKykvKQorCXsKKwkJJG9sZGVzdFhpZCA9ICQxOworCX0KK30KK2RpZSAnbm8gb2xk ZXN0WElEIGZvdW5kIGluIGNoZWNrcG9pbnQnIHVubGVzcyAkb2xkZXN0WGlkOworCitjbXBf b2soJG9sZGVzdFhpZCwgIjw9IiwgJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90 bmFtZSktPnsnY2F0YWxvZ194bWluJ30sCisJICAgJ3Vwc3RyZWFtIG9sZGVzdFhpZCBub3Qg cGFzdCBkb3duc3RyZWFtIGNhdGFsb2dfeG1pbiB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7CisK KyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSBwZ19kYXRh YmFzZSBTRVQgZGF0YWxsb3djb25uID0gZmFsc2UgV0hFUkUgZGF0bmFtZSA9ICd0ZW1wbGF0 ZTAnIik7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgRHJvcCBzbG90CisjIE1ha2Ugc3VyZSBzdGFuZGJ5IHNsb3RzIGFyZSBk cm9wcGFibGUsIGFuZCBwcm9wZXJseSBjbGVhciB0aGUgdXBzdHJlYW0ncyB4bWluCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpcygk bm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NIT1cgaG90X3N0YW5kYnlf ZmVlZGJhY2snKSwgJ29uJywgJ2hzX2ZlZWRiYWNrIGlzIG9uJyk7CisKKyRub2RlX3N0YW5k YnktPnBzcWwoJ3Bvc3RncmVzJywgcXFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnJHN0YW5kYnlfc2xvdG5hbWUnKV0pOworCitpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCRz dGFuZGJ5X3Nsb3RuYW1lKS0+eydzbG90X3R5cGUnfSwgJycsICdzbG90IG9uIHN0YW5kYnkg ZHJvcHBlZCBtYW51YWxseScpOworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBz ZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBv biBtYXN0ZXIuIGNhdGFsb2dfeG1pbiBzaG91bGQgYmVjb21lIE5VTEwgYmVjYXVzZSB3ZSBk cm9wcGVkCisjIHRoZSBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0 ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOT1QgTlVMTCBBTkQgY2F0 YWxvZ194bWluIElTIE5VTEwiKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3Qv MDIzX3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ19jb25mbGljdHMucGwgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfY29uZmxpY3RzLnBsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkwMTBhOGM5MmUKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAyM19zdGFuZGJ5X2xvZ2ljYWxf ZGVjb2RpbmdfY29uZmxpY3RzLnBsCkBAIC0wLDAgKzEsMjE1IEBACisjIGxvZ2ljYWwgZGVj b2Rpbmcgb24gYSBzdGFuZGJ5IDogdGVzdCBjb25mbGljdCByZWNvdmVyeTsgYW5kIG90aGVy IHRlc3RzIHRoYXQKKyMgdmVyaWZ5IHNsb3RzIGdldCBkcm9wcGVkIGFzIGV4cGVjdGVkLgor Cit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgUG9zdGdyZXNOb2RlOwordXNl IFRlc3RMaWI7Cit1c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiAyNDsKK3VzZSBSZWN1cnNpdmVD b3B5OwordXNlIEZpbGU6OkNvcHk7Cit1c2UgVGltZTo6SGlSZXMgcXcodXNsZWVwKTsKKwor bXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwgJHJldCwgJGhhbmRsZSwgJHNsb3QpOwor CitteSAkbm9kZV9tYXN0ZXIgPSBnZXRfbmV3X25vZGUoJ21hc3RlcicpOworbXkgJG5vZGVf c3RhbmRieSA9IGdldF9uZXdfbm9kZSgnc3RhbmRieScpOworCisjIE5hbWUgZm9yIHRoZSBw aHlzaWNhbCBzbG90IG9uIG1hc3RlcgorbXkgJG1hc3Rlcl9zbG90bmFtZSA9ICdtYXN0ZXJf cGh5c2ljYWwnOworCisjIEZldGNoIHhtaW4gY29sdW1ucyBmcm9tIHNsb3QncyBwZ19yZXBs aWNhdGlvbl9zbG90cyByb3csIGFmdGVyIHdhaXRpbmcgZm9yCisjIGdpdmVuIGJvb2xlYW4g Y29uZGl0aW9uIHRvIGJlIHRydWUgdG8gZW5zdXJlIHdlJ3ZlIHJlYWNoZWQgYSBxdWllc2Nl bnQgc3RhdGUKK3N1YiB3YWl0X2Zvcl94bWlucworeworCW15ICgkbm9kZSwgJHNsb3RuYW1l LCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5wb2xsX3F1ZXJ5X3VudGlsKAorCQkn cG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19leHByCisJCUZST00gcGdfY2F0YWxv Zy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBzbG90X25hbWUgPSAnJHNsb3RuYW1l JzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBzbG90IHhtaW5zIHRvIGFk dmFuY2UiOworfQorCisjIENyZWF0ZSB0aGUgcmVxdWlyZWQgbG9naWNhbCBzbG90cyBvbiBz dGFuZGJ5Lgorc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3RzCit7CisJJG5vZGVfc3RhbmRieS0+ Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2RlX21hc3RlciwgJ2Ryb3BzbG90 JywgJ3Rlc3RkYicpOworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25f c3RhbmRieSgkbm9kZV9tYXN0ZXIsICdhY3RpdmVzbG90JywgJ3Rlc3RkYicpOworfQorCisj IEFjcXVpcmUgb25lIG9mIHRoZSBzdGFuZGJ5IGxvZ2ljYWwgc2xvdHMgY3JlYXRlZCBieSBj cmVhdGVfbG9naWNhbF9zbG90cygpCitzdWIgbWFrZV9zbG90X2FjdGl2ZQoreworCW15ICRz bG90X3VzZXJfaGFuZGxlOworCisJIyBtYWtlIHN1cmUgYWN0aXZlc2xvdCBpcyBpbiB1c2UK KwlwcmludCAic3RhcnRpbmcgcGdfcmVjdmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNlcl9oYW5k bGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRub2RlX3N0 YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicpLCAnLVMnLCAnYWN0aXZlc2xvdCcsICctZicsICct JywgJy0tbm8tbG9vcCcsICctLXN0YXJ0J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3Rk ZXJyKTsKKworCXdoaWxlICghJG5vZGVfc3RhbmRieS0+c2xvdCgnYWN0aXZlc2xvdCcpLT57 J2FjdGl2ZV9waWQnfSkKKwl7CisJCXVzbGVlcCgxMDBfMDAwKTsKKwkJcHJpbnQgIndhaXRp bmcgZm9yIHNsb3QgdG8gYmVjb21lIGFjdGl2ZVxuIjsKKwl9CisJcmV0dXJuICRzbG90X3Vz ZXJfaGFuZGxlOworfQorCisjIENoZWNrIGlmIGFsbCB0aGUgc2xvdHMgb24gc3RhbmRieSBh cmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUgJ2FjdGl2ZXNsb3QnCisjIHRoYXQgd2Fz IGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUoKSwgYW5kIHRoZSBub24tYWN0aXZlICdk cm9wc2xvdCcuCitzdWIgY2hlY2tfc2xvdHNfZHJvcHBlZAoreworCW15ICgkc2xvdF91c2Vy X2hhbmRsZSkgPSBAXzsKKwlteSAkcmV0dXJuOworCisJaXMoJG5vZGVfc3RhbmRieS0+c2xv dCgnZHJvcHNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdkcm9wc2xvdCBvbiBzdGFuZGJ5 IGRyb3BwZWQnKTsKKwlpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdhY3RpdmVzbG90JyktPnsn c2xvdF90eXBlJ30sICcnLCAnYWN0aXZlc2xvdCBvbiBzdGFuZGJ5IGRyb3BwZWQnKTsKKwor CSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVybWluYXRlZCBpbiByZXNwb25zZSB0byB0aGUg d2Fsc2VuZGVyIGVycm9yCisJZXZhbCB7CisJCSRzbG90X3VzZXJfaGFuZGxlLT5maW5pc2g7 CisJfTsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1cm4sICIhPSIsIDAsICJwZ19y ZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm9cbiIpOworCWlmICgkcmV0dXJuKSB7CisJCWxp a2UoJHN0ZGVyciwgcXIvY29uZmxpY3Qgd2l0aCByZWNvdmVyeS8sICdyZWN2bG9naWNhbCBy ZWNvdmVyeSBjb25mbGljdCcpOworCQlsaWtlKCRzdGRlcnIsIHFyL211c3QgYmUgZHJvcHBl ZC8sICdyZWN2bG9naWNhbCBlcnJvciBkZXRhaWwnKTsKKwl9CisKKwlyZXR1cm4gMDsKK30K KworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBtYXN0ZXIgbm9k ZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX21hc3Rlci0+aW5pdChhbGxv d3Nfc3RyZWFtaW5nID0+IDEsIGhhc19hcmNoaXZpbmcgPT4gMSk7Ciskbm9kZV9tYXN0ZXIt PmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCBxeword2FsX2xldmVsID0gJ2xvZ2lj YWwnCittYXhfcmVwbGljYXRpb25fc2xvdHMgPSA0CittYXhfd2FsX3NlbmRlcnMgPSA0Cits b2dfbWluX21lc3NhZ2VzID0gJ2RlYnVnMicKK2xvZ19lcnJvcl92ZXJib3NpdHkgPSB2ZXJi b3NlCisjIHNlbmQgc3RhdHVzIHJhcGlkbHkgc28gd2UgcHJvbXB0bHkgYWR2YW5jZSB4bWlu IG9uIG1hc3Rlcgord2FsX3JlY2VpdmVyX3N0YXR1c19pbnRlcnZhbCA9IDEKKyMgdmVyeSBw cm9tcHRseSB0ZXJtaW5hdGUgY29uZmxpY3RpbmcgYmFja2VuZHMKK21heF9zdGFuZGJ5X3N0 cmVhbWluZ19kZWxheSA9ICcycycKK30pOworJG5vZGVfbWFzdGVyLT5kdW1wX2luZm87Cisk bm9kZV9tYXN0ZXItPnN0YXJ0OworCiskbm9kZV9tYXN0ZXItPnBzcWwoJ3Bvc3RncmVzJywg cVtDUkVBVEUgREFUQUJBU0UgdGVzdGRiXSk7CisKKyRub2RlX21hc3Rlci0+c2FmZV9wc3Fs KCd0ZXN0ZGInLCBxcVtTRUxFQ1QgKiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNh dGlvbl9zbG90KCckbWFzdGVyX3Nsb3RuYW1lJyk7XSk7CitteSAkYmFja3VwX25hbWUgPSAn YjEnOworJG5vZGVfbWFzdGVyLT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMgSW5pdGlhbGl6ZSBzbGF2ZSBub2RlCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAorCSRub2Rl X21hc3RlciwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVz dG9yaW5nID0+IDEpOworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwu Y29uZicsCisJcXFbcHJpbWFyeV9zbG90X25hbWUgPSAnJG1hc3Rlcl9zbG90bmFtZSddKTsK KyRub2RlX3N0YW5kYnktPnN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVw KCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7 CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgUmVjb3ZlcnkgY29uZmxpY3Q6IERyb3AgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1 ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMSA6IGhvdF9zdGFuZGJ5X2ZlZWRiYWNr IG9mZgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBPbmUgd2F5IHRvIHJlcHJvZHVj ZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVNIEZVTEwgd2l0aAorIyBob3Rf c3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHNsYXZlLgorJG5vZGVfc3RhbmRieS0+ YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNr ID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJlc3RhcnQ7CisjIGVuc3VyZSB3YWxyZWNl aXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMg Y2F0YWxvZ194bWluIG9uIG1hc3Rlci4gQm90aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19m ZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3htaW5zKCRub2RlX21hc3RlciwgJG1hc3Rlcl9z bG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5VTEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxM Iik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMgVGhpcyBzaG91bGQg dHJpZ2dlciB0aGUgY29uZmxpY3QKKyRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCd0ZXN0ZGIn LCAnVkFDVVVNIEZVTEwnKTsKKworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRu b2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisK K2NoZWNrX3Nsb3RzX2Ryb3BwZWQoJGhhbmRsZSk7CisKKyMgVHVybiBob3Rfc3RhbmRieV9m ZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNx bC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9zdGFu ZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50IGJ5 IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBtYXN0 ZXIuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hvdWxkIGFkdmFuY2Us CisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBOVUxMIHNpbmNlIHRo ZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRub2RlX21hc3Rlciwg JG1hc3Rlcl9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBjYXRhbG9n X3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogRHJvcCBjb25mbGljdGlu ZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJpbyAyIDogaW5jb3Jy ZWN0IHdhbF9sZXZlbCBhdCBtYXN0ZXIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKCk7CisKKyMgTWFrZSBtYXN0ZXIgd2FsX2xldmVs IHJlcGxpY2EuIFRoaXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29uZmxpY3QuCiskbm9kZV9tYXN0 ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAncmVw bGljYScKK10pOworJG5vZGVfbWFzdGVyLT5yZXN0YXJ0OworCiskbm9kZV9tYXN0ZXItPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+ bHNuKCdmbHVzaCcpKTsKKworY2hlY2tfc2xvdHNfZHJvcHBlZCgkaGFuZGxlKTsKKworIyBS ZXN0b3JlIG1hc3RlciB3YWxfbGV2ZWwKKyRub2RlX21hc3Rlci0+YXBwZW5kX2NvbmYoJ3Bv c3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworXSk7Ciskbm9kZV9t YXN0ZXItPnJlc3RhcnQ7Ciskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVf c3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBE Uk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBpbmNsdWRpbmcgYWN0aXZl IHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKCk7CisjIENyZWF0ZSBhIHNsb3Qgb24gYSBkYXRhYmFzZSB0aGF0IHdvdWxkIG5v dCBiZSBkcm9wcGVkLiBUaGlzIHNsb3Qgc2hvdWxkIG5vdAorIyBnZXQgZHJvcHBlZC4KKyRu b2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRieSgkbm9kZV9tYXN0 ZXIsICdvdGhlcnNsb3QnLCAncG9zdGdyZXMnKTsKKworIyBkcm9wZGIgb24gdGhlIG1hc3Rl ciB0byB2ZXJpZnkgc2xvdHMgYXJlIGRyb3BwZWQgb24gc3RhbmRieQorJG5vZGVfbWFzdGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFCQVNFIHRlc3RkYl0pOworCisk bm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScs ICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJcVtTRUxFQ1QgRVhJU1RTKFNFTEVDVCAxIEZST00gcGdf ZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICd0ZXN0ZGInKV0pLCAnZicsCisJJ2RhdGFiYXNl IGRyb3BwZWQgb24gc3RhbmRieScpOworCitjaGVja19zbG90c19kcm9wcGVkKCRoYW5kbGUp OworCitpcygkbm9kZV9zdGFuZGJ5LT5zbG90KCdvdGhlcnNsb3QnKS0+eydzbG90X3R5cGUn fSwgJ2xvZ2ljYWwnLAorCSdvdGhlcnNsb3Qgb24gc3RhbmRieSBub3QgZHJvcHBlZCcpOwor CisjIENsZWFudXAgOiBtYW51YWxseSBkcm9wIHRoZSBzbG90IHRoYXQgd2FzIG5vdCBkcm9w cGVkLgorJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9w X3JlcGxpY2F0aW9uX3Nsb3QoJ290aGVyc2xvdCcpXSk7Ci0tIAoyLjE4LjQKCg== --------------CBE4036E39902411D07DAAFC Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v11-0003-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v11-0003-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSAzY2RkNzU2YjcyZjdiNzZhYTM1NzUwMDg4ZTM2NDk4NDk5ZjY4NTUyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyMiBNYXIgMjAyMSAxNTozMzo1NSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjExIDMvNV0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLApkcm9wIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhpbmcgaWYg d2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwgYW5kIHRo ZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJvZHVjZSBh IG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJlY292ZXJ5 LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2dldF9hY3Rpdml0eSBmaWVsZDoKY29uZmxf bG9naWNhbHNsb3QuCgpBbWl0IEtoYW5kZWthciwgcmV2aWV3ZWQgYnkgQW5kcmVzIEZyZXVu ZC4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAgICAgfCAgMTAgKysK IHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgICB8ICAgNCArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMgIHwgICAzICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgfCAgMTMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0eGxvZy5jICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd4bG9nLmMgIHwgICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAg ICB8ICAxNCArKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCB8ICAg MSArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jICAgICAgfCAgIDQgKwogc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgIHwgMTc1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgIHwg ICA0ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyB8ICAgMyArCiBz cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgICAgfCAgMTEgKy0KIHNyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICB8ICAyMiArKysrCiBzcmMvYmFja2VuZC91 dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgfCAgMTYgKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0ICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmggICAgICAgIHwgICA0ICstCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgfCAgIDEgKwogMjEgZmlsZXMgY2hh bmdlZCwgMjg3IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQogICAzLjAlIGRvYy9z cmMvc2dtbC8KICAgNi44JSBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC8KICAgNi40JSBzcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICAgNi4yJSBzcmMvYmFja2VuZC9hY2Nlc3MvCiAg NDkuNCUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDYuOCUgc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvCiAgIDguNSUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy4zJSBzcmMvYmFja2Vu ZC91dGlscy9hZHQvCiAgIDYuMyUgc3JjL2luY2x1ZGUvCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwK aW5kZXggZGI0YjRlNDYwYy4uNzFhODNjOTI2YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCkBA IC0zOTgwLDYgKzM5ODAsMTYgQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBlLCB3YWl0 X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50IGkKICAgICAg ICBkZWFkbG9ja3MKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAg ICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y29uZmxf bG9naWNhbHNsb3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgcXVlcmllcyBpbiB0aGlz IGRhdGFiYXNlIHRoYXQgaGF2ZSBiZWVuIGNhbmNlbGVkIGR1ZSB0bworICAgICAgIGxvZ2lj YWwgc2xvdHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Ri b2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dHhsb2cuYwppbmRleCA5N2Q4MTRiOTI3Li5iNmMwZDhiMjkwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5NSw3ICsxOTUsOCBAQCBnaXN0UmVkb0RlbGV0ZVJl Y29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVjR2V0QmxvY2tUYWco cmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwpOwogCi0JCVJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0UmVtb3ZlZFhpZCwgcm5vZGUpOwor CQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPmxhdGVzdFJl bW92ZWRYaWQsCisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nVGFibGUsIHJub2RlKTsK IAl9CiAKIAlpZiAoWExvZ1JlYWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMCwgJmJ1ZmZlcikg PT0gQkxLX05FRURTX1JFRE8pCkBAIC0zOTUsNiArMzk2LDcgQEAgZ2lzdFJlZG9QYWdlUmV1 c2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkK IAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVjLT5s YXRlc3RSZW1vdmVkRnVsbFhpZCwKKwkJCQkJCQkJCQkJCSAgIHhscmVjLT5vbkNhdGFsb2dU YWJsZSwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5ub2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoX3hsb2cuYwppbmRleCAwMmQ5ZTZjZGZkLi5iMWZmNTk2ZWI3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYwpAQCAtMTAwMiw3ICsxMDAyLDggQEAg aGFzaF94bG9nX3ZhY3V1bV9vbmVfcGFnZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ UmVsRmlsZU5vZGUgcm5vZGU7CiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwg JnJub2RlLCBOVUxMLCBOVUxMKTsKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3QoeGxkYXRhLT5sYXRlc3RSZW1vdmVkWGlkLCBybm9kZSk7CisJCVJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJ CQkJCQkJCQkJeGxkYXRhLT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCX0KIAogCWFjdGlv biA9IFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMCwgUkJNX05PUk1B TCwgdHJ1ZSwgJmJ1ZmZlcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmluZGV4IGFj MDA0ZjEyNTguLjkwM2IzN2E2NDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBA IC04NTEyLDcgKzg1MTIsOCBAQCBoZWFwX3hsb2dfY2xlYW51cF9pbmZvKFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKQogCXhsX2hlYXBfY2xlYW51cF9pbmZvICp4bHJlYyA9ICh4bF9oZWFw X2NsZWFudXBfaW5mbyAqKSBYTG9nUmVjR2V0RGF0YShyZWNvcmQpOwogCiAJaWYgKEluSG90 U3RhbmRieSkKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMt PmxhdGVzdFJlbW92ZWRYaWQsIHhscmVjLT5ub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJ CXhscmVjLT5vbkNhdGFsb2dUYWJsZSwgeGxyZWMtPm5vZGUpOwogCiAJLyoKIAkgKiBBY3R1 YWwgb3BlcmF0aW9uIGlzIGEgbm8tb3AuIFJlY29yZCB0eXBlIGV4aXN0cyB0byBwcm92aWRl IGEgbWVhbnMgZm9yCkBAIC04NTQ4LDcgKzg1NDksOCBAQCBoZWFwX3hsb2dfY2xlYW4oWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICogbGF0ZXN0UmVtb3ZlZFhpZCBpcyBpbnZhbGlk LCBza2lwIGNvbmZsaWN0IHByb2Nlc3NpbmcuCiAJICovCiAJaWYgKEluSG90U3RhbmRieSAm JiBUcmFuc2FjdGlvbklkSXNWYWxpZCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCkpCi0JCVJl c29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVk WGlkLCBybm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs cmVjLT5sYXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFi bGUsIHJub2RlKTsKIAogCS8qCiAJICogSWYgd2UgaGF2ZSBhIGZ1bGwtcGFnZSBpbWFnZSwg cmVzdG9yZSBpdCAodXNpbmcgYSBjbGVhbnVwIGxvY2spIGFuZApAQCAtODY0NCw3ICs4NjQ2 LDkgQEAgaGVhcF94bG9nX3Zpc2libGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICog cmF0aGVyIHRoYW4ga2lsbGluZyB0aGUgdHJhbnNhY3Rpb24gb3V0cmlnaHQuCiAJICovCiAJ aWYgKEluSG90U3RhbmRieSkKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3QoeGxyZWMtPmN1dG9mZl94aWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoeGxyZWMtPmN1dG9mZl94aWQsCisJCQkJCQkJCQkJCXhscmVjLT5v bkNhdGFsb2dUYWJsZSwKKwkJCQkJCQkJCQkJcm5vZGUpOwogCiAJLyoKIAkgKiBSZWFkIHRo ZSBoZWFwIHBhZ2UsIGlmIGl0IHN0aWxsIGV4aXN0cy4gSWYgdGhlIGhlYXAgZmlsZSBoYXMg ZHJvcHBlZCBvcgpAQCAtODc4MSw3ICs4Nzg1LDggQEAgaGVhcF94bG9nX2ZyZWV6ZV9wYWdl KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlUcmFuc2FjdGlvbklkUmV0cmVhdChsYXRl c3RSZW1vdmVkWGlkKTsKIAogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcm5v ZGUsIE5VTEwsIE5VTEwpOwotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dChsYXRlc3RSZW1vdmVkWGlkLCBybm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhscmVjLT5vbkNh dGFsb2dUYWJsZSwgcm5vZGUpOwogCX0KIAogCWlmIChYTG9nUmVhZEJ1ZmZlckZvclJlZG8o cmVjb3JkLCAwLCAmYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnR4bG9nLmMKaW5kZXggMTc3OWI2YmE0Ny4uMzZlZTMxMzQyOCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMKQEAgLTY2OSw3ICs2NjksOCBAQCBidHJl ZV94bG9nX2RlbGV0ZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlYTG9nUmVjR2V0 QmxvY2tUYWcocmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwpOwogCi0JCVJlc29sdmVS ZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5sYXRlc3RSZW1vdmVkWGlkLCBy bm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5s YXRlc3RSZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nVGFibGUsIHJu b2RlKTsKIAl9CiAKIAkvKgpAQCAtMTAwNyw2ICsxMDA4LDcgQEAgYnRyZWVfeGxvZ19yZXVz ZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJaWYgKEluSG90U3RhbmRieSkK IAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RGdWxsWGlkKHhscmVjLT5s YXRlc3RSZW1vdmVkRnVsbFhpZCwKKwkJCQkJCQkJCQkJCSAgIHhscmVjLT5vbkNhdGFsb2dU YWJsZSwKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5ub2RlKTsKIH0KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3hsb2cuYwppbmRleCBkNDBjN2I1ODc3Li4xYTVjODk1OWExIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYworKysgYi9zcmMv YmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwpAQCAtODgxLDYgKzg4MSw3IEBAIHNw Z1JlZG9WYWN1dW1SZWRpcmVjdChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQkJWExv Z1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJm5vZGUsIE5VTEwsIE5VTEwpOwogCQkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5uZXdlc3RSZWRpcmVj dFhpZCwKKwkJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nVGFibGUsCiAJCQkJCQkJCQkJ CQlub2RlKTsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCA2 YTIxY2JhMzYyLi5jNWI1ZDZiNjEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j CkBAIC0xMDM3Myw2ICsxMDM3MywyMCBAQCB4bG9nX3JlZG8oWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAJCS8qIFVwZGF0ZSBvdXIgY29weSBvZiB0aGUgcGFyYW1ldGVycyBpbiBwZ19j b250cm9sICovCiAJCW1lbWNweSgmeGxyZWMsIFhMb2dSZWNHZXREYXRhKHJlY29yZCksIHNp emVvZih4bF9wYXJhbWV0ZXJfY2hhbmdlKSk7CiAKKwkJLyoKKwkJICogRHJvcCBsb2dpY2Fs IHNsb3RzIGlmIHdlIGFyZSBpbiBob3Qgc3RhbmRieSBhbmQgdGhlIHByaW1hcnkgZG9lcyBu b3QKKwkJICogaGF2ZSBhIFdBTCBsZXZlbCBzdWZmaWNpZW50IGZvciBsb2dpY2FsIGRlY29k aW5nLiBObyBuZWVkIHRvIHNlYXJjaAorCQkgKiBmb3IgcG90ZW50aWFsbHkgY29uZmxpY3Rp bmcgbG9naWNhbGx5IHNsb3RzIGlmIHN0YW5kYnkgaXMgcnVubmluZworCQkgKiB3aXRoIHdh bF9sZXZlbCBsb3dlciB0aGFuIGxvZ2ljYWwsIGJlY2F1c2UgaW4gdGhhdCBjYXNlLCB3ZSB3 b3VsZAorCQkgKiBoYXZlIGVpdGhlciBkaXNhbGxvd2VkIGNyZWF0aW9uIG9mIGxvZ2ljYWwg c2xvdHMgb3IgZHJvcHBlZCBleGlzdGluZworCQkgKiBvbmVzLgorCQkgKi8KKwkJaWYgKElu UmVjb3ZlcnkgJiYgSW5Ib3RTdGFuZGJ5ICYmCisJCQl4bHJlYy53YWxfbGV2ZWwgPCBXQUxf TEVWRUxfTE9HSUNBTCAmJgorCQkJd2FsX2xldmVsID49IFdBTF9MRVZFTF9MT0dJQ0FMKQor CQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoTG9naWNhbFNsb3RzKEludmFsaWRPaWQs IEludmFsaWRUcmFuc2FjdGlvbklkLAorCQkJCWdldHRleHRfbm9vcCgiTG9naWNhbCBkZWNv ZGluZyBvbiBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCA+PSBsb2dpY2FsIG9uIG1hc3Rl ci4iKSk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmlsZUxvY2ssIExXX0VYQ0xVU0lW RSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9IHhscmVjLk1heENvbm5lY3Rp b25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9jZXNzZXMgPSB4bHJlYy5tYXhf d29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApp bmRleCAwZGNhNjVkYzdiLi45ODI4NTZmZDBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCkBAIC05NDUsNiArOTQ1LDcgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9k YXRhYmFzZV9jb25mbGljdHMgQVMKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZs aWN0X3RhYmxlc3BhY2UoRC5vaWQpIEFTIGNvbmZsX3RhYmxlc3BhY2UsCiAgICAgICAgICAg ICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9sb2NrKEQub2lkKSBBUyBjb25mbF9sb2NrLAog ICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoRC5vaWQpIEFT IGNvbmZsX3NuYXBzaG90LAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf bG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxzbG90LAogICAgICAgICAgICAg cGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKEQub2lkKSBBUyBjb25mbF9idWZm ZXJwaW4sCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2Rl YWRsb2NrKEQub2lkKSBBUyBjb25mbF9kZWFkbG9jawogICAgIEZST00gcGdfZGF0YWJhc2Ug RDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMgYi9zcmMv YmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCmluZGV4IDIwOGEzMzY5MmYuLmU5YmM1MmE5 MjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKKysrIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwpAQCAtNTExMyw2ICs1MTEzLDcgQEAg cmVzZXRfZGJlbnRyeV9jb3VudGVycyhQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnkpCiAJ ZGJlbnRyeS0+bl9jb25mbGljdF90YWJsZXNwYWNlID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZs aWN0X2xvY2sgPSAwOwogCWRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3QgPSAwOworCWRi ZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QgPSAwOwogCWRiZW50cnktPm5fY29uZmxp Y3RfYnVmZmVycGluID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxv Y2sgPSAwOwogCWRiZW50cnktPm5fdGVtcF9maWxlcyA9IDA7CkBAIC02OTk2LDYgKzY5OTcs OSBAQCBwZ3N0YXRfcmVjdl9yZWNvdmVyeWNvbmZsaWN0KFBnU3RhdF9Nc2dSZWNvdmVyeUNv bmZsaWN0ICptc2csIGludCBsZW4pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9TTkFQU0hPVDoKIAkJCWRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3QrKzsKIAkJCWJy ZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJ CQlkYmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90Kys7CisJCQlicmVhazsKIAkJY2Fz ZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJTjoKIAkJCWRiZW50cnktPm5f Y29uZmxpY3RfYnVmZmVycGluKys7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Qu YwppbmRleCA5ZGIyMDI3OGY2Li5iMTU5MGE5ZWVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAi cmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKKyNpbmNsdWRl ICJzdG9yYWdlL2xvY2suaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKICNpbmNsdWRl ICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBA IC0xMDMsNiArMTA0LDcgQEAgc3RhdGljIGludCBSZXBsaWNhdGlvblNsb3RBY3F1aXJlSW50 ZXJuYWwoUmVwbGljYXRpb25TbG90ICpzbG90LAogCQkJCQkJCQkJCSAgY29uc3QgY2hhciAq bmFtZSwgU2xvdEFjcXVpcmVCZWhhdmlvciBiZWhhdmlvcik7CiBzdGF0aWMgdm9pZCBSZXBs aWNhdGlvblNsb3REcm9wQWNxdWlyZWQodm9pZCk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlv blNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7CitzdGF0aWMgdm9pZCBSZXBs aWNhdGlvblNsb3REcm9wQ29uZmxpY3RpbmcoUmVwbGljYXRpb25TbG90ICpzbG90KTsKIAog LyogaW50ZXJuYWwgcGVyc2lzdGVuY3kgZnVuY3Rpb25zICovCiBzdGF0aWMgdm9pZCBSZXN0 b3JlU2xvdEZyb21EaXNrKGNvbnN0IGNoYXIgKm5hbWUpOwpAQCAtNzE5LDYgKzcyMSw2NCBA QCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCkKIAlMV0xv Y2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdEFsbG9jYXRpb25Mb2NrKTsKIH0KIAorLyoKKyAq IFBlcm1hbmVudGx5IGRyb3AgYSBjb25mbGljdGluZyByZXBsaWNhdGlvbiBzbG90LiBJZiBp dCdzIGFscmVhZHkgYWN0aXZlIGJ5CisgKiBhbm90aGVyIGJhY2tlbmQsIHNlbmQgaXQgYSBy ZWNvdmVyeSBjb25mbGljdCBzaWduYWwsIGFuZCB0aGVuIHRyeSBhZ2Fpbi4KKyAqLworc3Rh dGljIHZvaWQKK1JlcGxpY2F0aW9uU2xvdERyb3BDb25mbGljdGluZyhSZXBsaWNhdGlvblNs b3QgKnNsb3QpCit7CisJcGlkX3QJCWFjdGl2ZV9waWQ7CisJUEdQUk9DCSAgICpwcm9jOwor CVZpcnR1YWxUcmFuc2FjdGlvbklkCXZ4aWQ7CisKKwlDb25kaXRpb25WYXJpYWJsZVByZXBh cmVUb1NsZWVwKCZzbG90LT5hY3RpdmVfY3YpOworCXdoaWxlICgxKQorCXsKKwkJU3Bpbkxv Y2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCWFjdGl2ZV9waWQgPSBzbG90LT5hY3RpdmVf cGlkOworCQlpZiAoYWN0aXZlX3BpZCA9PSAwKQorCQkJYWN0aXZlX3BpZCA9IHNsb3QtPmFj dGl2ZV9waWQgPSBNeVByb2NQaWQ7CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgp OworCisJCS8qIERyb3AgdGhlIGFjcXVpcmVkIHNsb3QsIHVubGVzcyBpdCBpcyBhY3F1aXJl ZCBieSBhbm90aGVyIGJhY2tlbmQgKi8KKwkJaWYgKGFjdGl2ZV9waWQgPT0gTXlQcm9jUGlk KQorCQl7CisJCQllbG9nKERFQlVHMSwgImFjcXVpcmVkIGNvbmZsaWN0aW5nIHNsb3QsIG5v dyBkcm9wcGluZyBpdCIpOworCQkJUmVwbGljYXRpb25TbG90RHJvcFB0cihzbG90KTsKKwkJ CWJyZWFrOworCQl9CisKKwkJLyogU2VuZCB0aGUgb3RoZXIgYmFja2VuZCwgYSBjb25mbGlj dCByZWNvdmVyeSBzaWduYWwgKi8KKworCQlTZXRJbnZhbGlkVmlydHVhbFRyYW5zYWN0aW9u SWQodnhpZCk7CisJCUxXTG9ja0FjcXVpcmUoUHJvY0FycmF5TG9jaywgTFdfU0hBUkVEKTsK KwkJcHJvYyA9IEJhY2tlbmRQaWRHZXRQcm9jV2l0aExvY2soYWN0aXZlX3BpZCk7CisJCWlm IChwcm9jKQorCQkJR0VUX1ZYSURfRlJPTV9QR1BST0ModnhpZCwgKnByb2MpOworCQlMV0xv Y2tSZWxlYXNlKFByb2NBcnJheUxvY2spOworCisJCS8qCisJCSAqIElmIGNvaW5jaWRlbnRs eSB0aGF0IHByb2Nlc3MgZmluaXNoZWQsIHNvbWUgb3RoZXIgYmFja2VuZCBtYXkKKwkJICog YWNxdWlyZSB0aGUgc2xvdCBhZ2Fpbi4gU28gc3RhcnQgb3ZlciBhZ2Fpbi4KKwkJICogTm90 ZTogRXZlbiBpZiB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCBpcyBpbnZhbGlkLCB3ZSBuZWVk IHRvIGNhbmNlbAorCQkgKiB0aGF0IGJhY2tlbmQsIGJlY2F1c2UgdGhlcmUgaXMgbm8gb3Ro ZXIgd2F5IHRvIG1ha2UgaXQgcmVsZWFzZSB0aGUKKwkJICogc2xvdC4gU28gZG9uJ3QgYm90 aGVyIHRvIHZhbGlkYXRlIHZ4aWQubG9jYWxUcmFuc2FjdGlvbklkLgorCQkgKi8KKwkJaWYg KHZ4aWQuYmFja2VuZElkID09IEludmFsaWRCYWNrZW5kSWQpCisJCQljb250aW51ZTsKKwor CQllbG9nKERFQlVHMSwgImNhbmNlbGxpbmcgcGlkICVkIChiYWNrZW5kSWQ6ICVkKSBmb3Ig cmVsZWFzaW5nIHNsb3QiLAorCQkJCQkgYWN0aXZlX3BpZCwgdnhpZC5iYWNrZW5kSWQpOwor CisJCUNhbmNlbFZpcnR1YWxUcmFuc2FjdGlvbih2eGlkLCBQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX0xPR0lDQUxTTE9UKTsKKwkJQ29uZGl0aW9uVmFyaWFibGVTbGVlcCgmc2xvdC0+ YWN0aXZlX2N2LAorCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVQTElDQVRJT05fU0xPVF9EUk9Q KTsKKwl9CisKKwlDb25kaXRpb25WYXJpYWJsZUNhbmNlbFNsZWVwKCk7Cit9CisKIC8qCiAg KiBTZXJpYWxpemUgdGhlIGN1cnJlbnRseSBhY3F1aXJlZCBzbG90J3Mgc3RhdGUgZnJvbSBt ZW1vcnkgdG8gZGlzaywgdGhlcmVieQogICogZ3VhcmFudGVlaW5nIHRoZSBjdXJyZW50IHN0 YXRlIHdpbGwgc3Vydml2ZSBhIGNyYXNoLgpAQCAtMTE3Miw2ICsxMjMyLDEyMSBAQCBSZXBs aWNhdGlvblNsb3RSZXNlcnZlV2FsKHZvaWQpCiAJfQogfQogCisvKgorICogUmVzb2x2ZSBy ZWNvdmVyeSBjb25mbGljdHMgd2l0aCBsb2dpY2FsIHNsb3RzLgorICoKKyAqIFdoZW4geGlk IGlzIHZhbGlkLCBpdCBtZWFucyB0aGF0IHJvd3Mgb2xkZXIgdGhhbiB4aWQgbWlnaHQgaGF2 ZSBiZWVuCisgKiByZW1vdmVkLiBUaGVyZWZvcmUgd2UgbmVlZCB0byBkcm9wIHNsb3RzIHRo YXQgZGVwZW5kIG9uIHNlZWluZyB0aG9zZSByb3dzLgorICogV2hlbiB4aWQgaXMgaW52YWxp ZCwgZHJvcCBhbGwgbG9naWNhbCBzbG90cy4gVGhpcyBpcyByZXF1aXJlZCB3aGVuIHRoZQor ICogbWFzdGVyIHdhbF9sZXZlbCBpcyBzZXQgYmFjayB0byByZXBsaWNhLCBzbyBleGlzdGlu ZyBsb2dpY2FsIHNsb3RzIG5lZWQgdG8KKyAqIGJlIGRyb3BwZWQuIEFsc28sIHdoZW4geGlk IGlzIGludmFsaWQsIGEgY29tbW9uICdjb25mbGljdF9yZWFzb24nIGlzCisgKiBwcm92aWRl ZCBmb3IgdGhlIGVycm9yIGRldGFpbDsgb3RoZXJ3aXNlIGl0IGlzIE5VTEwsIGluIHdoaWNo IGNhc2UgaXQgaXMKKyAqIGNvbnN0cnVjdGVkIG91dCBvZiB0aGUgeGlkIHZhbHVlLgorICov Cit2b2lkCitSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhMb2dpY2FsU2xvdHMoT2lkIGRi b2lkLCBUcmFuc2FjdGlvbklkIHhpZCwKKwkJCQkJCQkJCQljaGFyICpjb25mbGljdF9yZWFz b24pCit7CisJaW50CQkJaTsKKwlib29sCQlmb3VuZF9jb25mbGljdCA9IGZhbHNlOworCisJ aWYgKG1heF9yZXBsaWNhdGlvbl9zbG90cyA8PSAwKQorCQlyZXR1cm47CisKK3Jlc3RhcnQ6 CisJaWYgKGZvdW5kX2NvbmZsaWN0KQorCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsK KwkJZm91bmRfY29uZmxpY3QgPSBmYWxzZTsKKwl9CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxp Y2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpOworCWZvciAoaSA9IDA7IGkgPCBt YXhfcmVwbGljYXRpb25fc2xvdHM7IGkrKykKKwl7CisJCVJlcGxpY2F0aW9uU2xvdCAqczsK KworCQlzID0gJlJlcGxpY2F0aW9uU2xvdEN0bC0+cmVwbGljYXRpb25fc2xvdHNbaV07CisK KwkJLyogY2Fubm90IGNoYW5nZSB3aGlsZSBSZXBsaWNhdGlvblNsb3RDdGxMb2NrIGlzIGhl bGQgKi8KKwkJaWYgKCFzLT5pbl91c2UpCisJCQljb250aW51ZTsKKworCQkvKiBXZSBhcmUg b25seSBkZWFsaW5nIHdpdGggKmxvZ2ljYWwqIHNsb3QgY29uZmxpY3RzLiAqLworCQlpZiAo IVNsb3RJc0xvZ2ljYWwocykpCisJCQljb250aW51ZTsKKworCQkvKiBJbnZhbGlkIHhpZCBt ZWFucyBjYWxsZXIgaXMgYXNraW5nIHRvIGRyb3AgYWxsIGxvZ2ljYWwgc2xvdHMgKi8KKwkJ aWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKQorCQkJZm91bmRfY29uZmxpY3QgPSB0 cnVlOworCQllbHNlCisJCXsKKwkJCVRyYW5zYWN0aW9uSWQgc2xvdF94bWluOworCQkJVHJh bnNhY3Rpb25JZCBzbG90X2NhdGFsb2dfeG1pbjsKKwkJCVN0cmluZ0luZm9EYXRhCWNvbmZs aWN0X3N0ciwgY29uZmxpY3RfeG1pbnM7CisJCQljaGFyCSAgICpjb25mbGljdF9zZW50ZW5j ZSA9CisJCQkJZ2V0dGV4dF9ub29wKCJTbG90IGNvbmZsaWN0ZWQgd2l0aCB4aWQgaG9yaXpv biB3aGljaCB3YXMgYmVpbmcgaW5jcmVhc2VkIHRvIik7CisKKwkJCS8qIG5vdCBvdXIgZGF0 YWJhc2UsIHNraXAgKi8KKwkJCWlmIChzLT5kYXRhLmRhdGFiYXNlICE9IEludmFsaWRPaWQg JiYgcy0+ZGF0YS5kYXRhYmFzZSAhPSBkYm9pZCkKKwkJCQljb250aW51ZTsKKworCQkJU3Bp bkxvY2tBY3F1aXJlKCZzLT5tdXRleCk7CisJCQlzbG90X3htaW4gPSBzLT5kYXRhLnhtaW47 CisJCQlzbG90X2NhdGFsb2dfeG1pbiA9IHMtPmRhdGEuY2F0YWxvZ194bWluOworCQkJU3Bp bkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJCS8qCisJCQkgKiBCdWlsZCB0aGUgY29u ZmxpY3Rfc3RyIHdoaWNoIHdpbGwgbG9vayBsaWtlIDoKKwkJCSAqICJTbG90IGNvbmZsaWN0 ZWQgd2l0aCB4aWQgaG9yaXpvbiB3aGljaCB3YXMgYmVpbmcgaW5jcmVhc2VkCisJCQkgKiB0 byA5MDEyIChzbG90IHhtaW46IDEyMzQsIHNsb3QgY2F0YWxvZ194bWluOiA1Njc4KS4iCisJ CQkgKi8KKwkJCWluaXRTdHJpbmdJbmZvKCZjb25mbGljdF94bWlucyk7CisJCQlpZiAoVHJh bnNhY3Rpb25JZElzVmFsaWQoc2xvdF94bWluKSAmJgorCQkJCVRyYW5zYWN0aW9uSWRQcmVj ZWRlc09yRXF1YWxzKHNsb3RfeG1pbiwgeGlkKSkKKwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZjb25mbGljdF94bWlucywgInNsb3QgeG1pbjogJWQiLCBzbG90X3htaW4pOworCQkJ fQorCQkJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWluKSAmJgor CQkJCVRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfY2F0YWxvZ194bWluLCB4 aWQpKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJmNvbmZsaWN0X3htaW5zLCAiJXNzbG90IGNh dGFsb2dfeG1pbjogJWQiLAorCQkJCQkJCQkgY29uZmxpY3RfeG1pbnMubGVuID4gMCA/ICIs ICIgOiAiIiwKKwkJCQkJCQkJIHNsb3RfY2F0YWxvZ194bWluKTsKKworCQkJaWYgKGNvbmZs aWN0X3htaW5zLmxlbiA+IDApCisJCQl7CisJCQkJaW5pdFN0cmluZ0luZm8oJmNvbmZsaWN0 X3N0cik7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmY29uZmxpY3Rfc3RyLCAiJXMgJWQgKCVz KS4iLAorCQkJCQkJCQkgY29uZmxpY3Rfc2VudGVuY2UsIHhpZCwgY29uZmxpY3RfeG1pbnMu ZGF0YSk7CisJCQkJZm91bmRfY29uZmxpY3QgPSB0cnVlOworCQkJCWNvbmZsaWN0X3JlYXNv biA9IGNvbmZsaWN0X3N0ci5kYXRhOworCQkJfQorCQl9CisKKwkJaWYgKGZvdW5kX2NvbmZs aWN0KQorCQl7CisJCQlOYW1lRGF0YQlzbG90bmFtZTsKKworCQkJU3BpbkxvY2tBY3F1aXJl KCZzLT5tdXRleCk7CisJCQlzbG90bmFtZSA9IHMtPmRhdGEubmFtZTsKKwkJCVNwaW5Mb2Nr UmVsZWFzZSgmcy0+bXV0ZXgpOworCisJCQkvKiBSZXBsaWNhdGlvblNsb3REcm9wQ29uZmxp Y3RpbmcoKSB3aWxsIGFjcXVpcmUgdGhlIGxvY2sgYmVsb3cgKi8KKwkJCUxXTG9ja1JlbGVh c2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCisJCQlSZXBsaWNhdGlvblNsb3RE cm9wQ29uZmxpY3Rpbmcocyk7CisKKwkJCWVyZXBvcnQoTE9HLAorCQkJCQkoZXJybXNnKCJk cm9wcGVkIGNvbmZsaWN0aW5nIHNsb3QgJXMiLCBOYW1lU3RyKHNsb3RuYW1lKSksCisJCQkJ CSBlcnJkZXRhaWwoIiVzIiwgY29uZmxpY3RfcmVhc29uKSkpOworCisJCQkvKiBXZSByZWxl YXNlZCB0aGUgbG9jayBhYm92ZTsgc28gcmUtc2NhbiB0aGUgc2xvdHMuICovCisJCQlnb3Rv IHJlc3RhcnQ7CisJCX0KKwl9CisKKwlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENv bnRyb2xMb2NrKTsKK30KKwogLyoKICAqIE1hcmsgYW55IHNsb3QgdGhhdCBwb2ludHMgdG8g YW4gTFNOIG9sZGVyIHRoYW4gdGhlIGdpdmVuIHNlZ21lbnQKICAqIGFzIGludmFsaWQ7IGl0 IHJlcXVpcmVzIFdBTCB0aGF0J3MgYWJvdXQgdG8gYmUgcmVtb3ZlZC4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jIGIvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggNGZjNmZmYjkxNy4uY2QwNDZkZjYxOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKKysrIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKQEAgLTMzNzIsNiArMzM3MiwxMCBA QCBTaWduYWxWaXJ0dWFsVHJhbnNhY3Rpb24oVmlydHVhbFRyYW5zYWN0aW9uSWQgdnhpZCwg UHJvY1NpZ25hbFJlYXNvbiBzaWdtb2RlLAogCiAJCUdFVF9WWElEX0ZST01fUEdQUk9DKHBy b2N2eGlkLCAqcHJvYyk7CiAKKwkJLyoKKwkJICogTm90ZTogdnhpZC5sb2NhbFRyYW5zYWN0 aW9uSWQgY2FuIGJlIGludmFsaWQsIHdoaWNoIG1lYW5zIHRoZQorCQkgKiByZXF1ZXN0IGlz IHRvIHNpZ25hbCB0aGUgcGlkIHRoYXQgaXMgbm90IHJ1bm5pbmcgYSB0cmFuc2FjdGlvbi4K KwkJICovCiAJCWlmIChwcm9jdnhpZC5iYWNrZW5kSWQgPT0gdnhpZC5iYWNrZW5kSWQgJiYK IAkJCXByb2N2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCA9PSB2eGlkLmxvY2FsVHJhbnNhY3Rp b25JZCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3Np Z25hbC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jCmluZGV4IGM2 YThkNDYxMWUuLjYzNjQyNzYxYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3Byb2NzaWduYWwuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2ln bmFsLmMKQEAgLTY2OSw2ICs2NjksOSBAQCBwcm9jc2lnbmFsX3NpZ3VzcjFfaGFuZGxlcihT SUdOQUxfQVJHUykKIAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfU05BUFNIT1QpKQogCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdf UkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QpOwogCisJaWYgKENoZWNrUHJvY1NpZ25hbChQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UKSkKKwkJUmVjb3ZlcnlDb25m bGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UKTsK KwogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFS VFVQX0RFQURMT0NLKSkKIAkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0spOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9zdGFuZGJ5LmMKaW5kZXggMTdkZTVhNmQwZS4uODI2MDVjZTk0OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3N0YW5kYnkuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImFjY2Vz cy94bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdz dGF0LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9wcm9jLmgiCkBAIC00MjUsNyArNDI2LDggQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoVmlydHVhbFhJRHMoVmlydHVhbFRyYW5zYWN0aW9uSWQgKndhaXRsaXN0LAogfQog CiB2b2lkCi1SZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlv bklkIGxhdGVzdFJlbW92ZWRYaWQsIFJlbEZpbGVOb2RlIG5vZGUpCitSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQs CisJCQkJCQkJCQlib29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKQogewog CVZpcnR1YWxUcmFuc2FjdGlvbklkICpiYWNrZW5kczsKIApAQCAtNDUwLDYgKzQ1Miw5IEBA IFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0 ZXN0UmVtb3ZlZFhpZCwgUmVsRmlsZU5vZGUKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX1NOQVBTSE9ULAogCQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZF UllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJCQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAob25D YXRhbG9nVGFibGUpCisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aExvZ2ljYWxTbG90 cyhub2RlLmRiTm9kZSwgbGF0ZXN0UmVtb3ZlZFhpZCwgTlVMTCk7CiB9CiAKIC8qCkBAIC00 NTgsNyArNDYzLDcgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJh bnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLCBSZWxGaWxlTm9kZQogICovCiB2b2lkCiBS ZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0 aW9uSWQgbGF0ZXN0UmVtb3ZlZEZ1bGxYaWQsCi0JCQkJCQkJCQkJICAgUmVsRmlsZU5vZGUg bm9kZSkKKwkJCQkJCQkJCQkgICBib29sIG9uQ2F0YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBu b2RlKQogewogCS8qCiAJICogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qg b3BlcmF0ZXMgb24gMzItYml0IFRyYW5zYWN0aW9uSWRzLApAQCAtNDc2LDcgKzQ4MSw3IEBA IFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZChGdWxsVHJhbnNh Y3Rpb25JZCBsYXRlc3RSZW1vdmVkRnVsbFhpCiAJCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVt b3ZlZFhpZDsKIAogCQlsYXRlc3RSZW1vdmVkWGlkID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlv bklkKGxhdGVzdFJlbW92ZWRGdWxsWGlkKTsKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhpZCwgbm9kZSk7CisJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQsIG9uQ2F0YWxvZ1RhYmxl LCBub2RlKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAyYjFiNjgxMDlmLi40 ODA0NzAwZTIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKKysr IGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0yNDM4LDYgKzI0MzgsOSBAQCBl cnJkZXRhaWxfcmVjb3ZlcnlfY29uZmxpY3Qodm9pZCkKIAkJY2FzZSBQUk9DU0lHX1JFQ09W RVJZX0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJZXJyZGV0YWlsKCJVc2VyIHF1ZXJ5IG1pZ2h0 IGhhdmUgbmVlZGVkIHRvIHNlZSByb3cgdmVyc2lvbnMgdGhhdCBtdXN0IGJlIHJlbW92ZWQu Iik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lD QUxTTE9UOgorCQkJZXJyZGV0YWlsKCJVc2VyIHdhcyB1c2luZyB0aGUgbG9naWNhbCBzbG90 IHRoYXQgbXVzdCBiZSBkcm9wcGVkLiIpOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJZXJyZGV0YWlsKCJVc2Vy IHRyYW5zYWN0aW9uIGNhdXNlZCBidWZmZXIgZGVhZGxvY2sgd2l0aCByZWNvdmVyeS4iKTsK IAkJCWJyZWFrOwpAQCAtMzAwMCw2ICszMDAzLDI1IEBAIFJlY292ZXJ5Q29uZmxpY3RJbnRl cnJ1cHQoUHJvY1NpZ25hbFJlYXNvbiByZWFzb24pCiAJCQljYXNlIFBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfTE9DSzoKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9U QUJMRVNQQUNFOgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9U OgorCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJ CS8qCisJCQkJICogRm9yIGNvbmZsaWN0cyB0aGF0IHJlcXVpcmUgYSBsb2dpY2FsIHNsb3Qg dG8gYmUgZHJvcHBlZCwgdGhlCisJCQkJICogcmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWdu YWwgcmVjZWl2ZXIgdG8gcmVsZWFzZSB0aGUgc2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNv dWxkIGJlIGRyb3BwZWQgYnkgdGhlIHNpZ25hbCBzZW5kZXIuIFNvIGZvcgorCQkJCSAqIG5v cm1hbCBiYWNrZW5kcywgdGhlIHRyYW5zYWN0aW9uIHNob3VsZCBiZSBhYm9ydGVkLCBqdXN0 CisJCQkJICogbGlrZSBmb3Igb3RoZXIgcmVjb3ZlcnkgY29uZmxpY3RzLiBCdXQgaWYgaXQn cyB3YWxzZW5kZXIgb24KKwkJCQkgKiBzdGFuZGJ5LCB0aGVuIGl0IGhhcyB0byBiZSBraWxs ZWQgc28gYXMgdG8gcmVsZWFzZSBhbgorCQkJCSAqIGFjcXVpcmVkIGxvZ2ljYWwgc2xvdC4K KwkJCQkgKi8KKwkJCQlpZiAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciAmJgorCQkJCQlyZWFz b24gPT0gUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCAmJgorCQkJCQlN eVJlcGxpY2F0aW9uU2xvdCAmJiBTbG90SXNMb2dpY2FsKE15UmVwbGljYXRpb25TbG90KSkK KwkJCQl7CisJCQkJCVJlY292ZXJ5Q29uZmxpY3RQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJUXVl cnlDYW5jZWxQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7 CisJCQkJCWJyZWFrOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogSWYgd2UgYXJlbid0IGlu IGEgdHJhbnNhY3Rpb24gYW55IGxvbmdlciB0aGVuIGlnbm9yZS4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggNTEwMjIyN2E2MC4uMTJlMWUxN2JmYSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTE0OTQsNiArMTQ5NCwyMSBAQCBw Z19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdChQR19GVU5DVElPTl9BUkdTKQogCVBH X1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCitEYXR1bQorcGdfc3RhdF9nZXRfZGJfY29u ZmxpY3RfbG9naWNhbHNsb3QoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlkYmlkID0g UEdfR0VUQVJHX09JRCgwKTsKKwlpbnQ2NAkJcmVzdWx0OworCVBnU3RhdF9TdGF0REJFbnRy eSAqZGJlbnRyeTsKKworCWlmICgoZGJlbnRyeSA9IHBnc3RhdF9mZXRjaF9zdGF0X2RiZW50 cnkoZGJpZCkpID09IE5VTEwpCisJCXJlc3VsdCA9IDA7CisJZWxzZQorCQlyZXN1bHQgPSAo aW50NjQpIChkYmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90KTsKKworCVBHX1JFVFVS Tl9JTlQ2NChyZXN1bHQpOworfQorCiBEYXR1bQogcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf YnVmZmVycGluKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CkBAIC0xNTM3LDYgKzE1NTIsNyBAQCBw Z19zdGF0X2dldF9kYl9jb25mbGljdF9hbGwoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0 ID0gKGludDY0KSAoZGJlbnRyeS0+bl9jb25mbGljdF90YWJsZXNwYWNlICsKIAkJCQkJCSAg ZGJlbnRyeS0+bl9jb25mbGljdF9sb2NrICsKIAkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGlj dF9zbmFwc2hvdCArCisJCQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3Qg KwogCQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRi ZW50cnktPm5fY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CmluZGV4IGUyNTk1MzFmNjAuLmQwYWQ0ODI1MjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtNTQwMyw2ICs1NDAzLDExIEBACiAgIHByb25hbWUgPT4gJ3Bn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAog ICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBl cyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFw c2hvdCcgfSwKK3sgb2lkID0+ICc0NTQzJywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJl Y292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgbG9naWNhbCByZXBsaWNh dGlvbiBzbG90JywKKyAgcHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9n aWNhbHNsb3QnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywg cHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMg PT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JyB9LAogeyBvaWQgPT4g JzMwNjgnLAogICBkZXNjciA9PiAnc3RhdGlzdGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGlu IGRhdGFiYXNlIGNhdXNlZCBieSBzaGFyZWQgYnVmZmVyIHBpbicsCiAgIHByb25hbWUgPT4g J3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbicsIHByb3ZvbGF0aWxlID0+ICdz JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdz dGF0LmgKaW5kZXggYmU0M2MwNDgwMi4uZjJkNDI0ZTFiMyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTcyMCw2ICs3 MjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfU3RhdERCRW50cnkKIAlQZ1N0YXRfQ291 bnRlciBuX2NvbmZsaWN0X3RhYmxlc3BhY2U7CiAJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGlj dF9sb2NrOwogCVBnU3RhdF9Db3VudGVyIG5fY29uZmxpY3Rfc25hcHNob3Q7CisJUGdTdGF0 X0NvdW50ZXIgbl9jb25mbGljdF9sb2dpY2Fsc2xvdDsKIAlQZ1N0YXRfQ291bnRlciBuX2Nv bmZsaWN0X2J1ZmZlcnBpbjsKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X3N0YXJ0dXBf ZGVhZGxvY2s7CiAJUGdTdGF0X0NvdW50ZXIgbl90ZW1wX2ZpbGVzOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRp b24vc2xvdC5oCmluZGV4IDFhZDVlNmM1MGQuLmI2ZTVmZmZmNzkgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9zbG90LmgKQEAgLTIzMiw0ICsyMzIsNiBAQCBleHRlcm4gdm9pZCBDaGVja1BvaW50 UmVwbGljYXRpb25TbG90cyh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UmVxdWly ZW1lbnRzKHZvaWQpOwogCitleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdp dGhMb2dpY2FsU2xvdHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAqcmVh c29uKTsKKwogI2VuZGlmCQkJCQkJCS8qIFNMT1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2Nz aWduYWwuaAppbmRleCA0YWU3ZGMzM2I4Li4yNzAzNWIwNzViIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdl L3Byb2NzaWduYWwuaApAQCAtNDAsNiArNDAsNyBAQCB0eXBlZGVmIGVudW0KIAlQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0UsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9MT0NLLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCisJUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCwKIAlQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX0JVRkZFUlBJTiwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJU VVBfREVBRExPQ0ssCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRi eS5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKaW5kZXggMzhmZDg1YTQzMS4u M2JhMTg4MjIxNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgK KysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKQEAgLTMwLDkgKzMwLDkgQEAg ZXh0ZXJuIHZvaWQgSW5pdFJlY292ZXJ5VHJhbnNhY3Rpb25FbnZpcm9ubWVudCh2b2lkKTsK IGV4dGVybiB2b2lkIFNodXRkb3duUmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZv aWQpOwogCiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hv dChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsCi0JCQkJCQkJCQkJCQlSZWxGaWxl Tm9kZSBub2RlKTsKKwkJCQkJCQkJCQkJCWJvb2wgb25DYXRhbG9nVGFibGUsIFJlbEZpbGVO b2RlIG5vZGUpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRGdWxsWGlkLAot CQkJCQkJCQkJCQkJCSAgIFJlbEZpbGVOb2RlIG5vZGUpOworCQkJCQkJCQkJCQkJCSAgIGJv b2wgb25DYXRhbG9nVGFibGUsIFJlbEZpbGVOb2RlIG5vZGUpOwogZXh0ZXJuIHZvaWQgUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVGFibGVzcGFjZShPaWQgdHNpZCk7CiBleHRlcm4g dm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhEYXRhYmFzZShPaWQgZGJpZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggOWIxMmNjMTIyYS4uYjBl MTdkNGUxZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE4Njks NiArMTg2OSw3IEBAIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzfCBTRUxFQ1QgZC5vaWQg QVMgZGF0aWQsCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfdGFibGVzcGFjZShkLm9p ZCkgQVMgY29uZmxfdGFibGVzcGFjZSwKICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9s b2NrKGQub2lkKSBBUyBjb25mbF9sb2NrLAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0 X3NuYXBzaG90KGQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKKyAgICBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9sb2dpY2Fsc2xvdChkLm9pZCkgQVMgY29uZmxfbG9naWNhbHNsb3QsCiAg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQub2lkKSBBUyBjb25mbF9i dWZmZXJwaW4sCiAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9j ayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKICAgIEZST00gcGdfZGF0YWJhc2UgZDsKLS0g CjIuMTguNAoK --------------CBE4036E39902411D07DAAFC Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v11-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v11-0002-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" RnJvbSA0ZWY5NjBmNGRhZWMzMzhmNGIyZjYzMTg2Y2E5ZTk3MjYxYTBmODVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyMiBNYXIgMjAyMSAxNTozMzowOCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjExIDIvNV0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCgpXaGVuIGEgV0FMIHJlcGxheSBv biBzdGFuZGJ5IGluZGljYXRlcyB0aGF0IGEgY2F0YWxvZyB0YWJsZSB0dXBsZSBpcwp0byBi ZSBkZWxldGVkIGJ5IGFuIHhpZCB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBhIGxvZ2ljYWwgc2xv dCdzCmNhdGFsb2dfeG1pbiwgdGhlbiB0aGF0IG1lYW5zIHRoZSBzbG90J3MgY2F0YWxvZ194 bWluIGNvbmZsaWN0cyB3aXRoCnRoZSB4aWQsIGFuZCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGUg Y29uZmxpY3QuICBXaGlsZSBzdWJzZXF1ZW50IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFs IGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNvbW1pdCBhZGRzIGEgbmV3IGZpZWxkCm9uQ2F0 YWxvZ1RhYmxlIGluIHN1Y2ggV0FMIHJlY29yZHMsIHRoYXQgaXMgdHJ1ZSBmb3IgY2F0YWxv ZyB0YWJsZXMsCnNvIGFzIHRvIGFycmFuZ2UgZm9yIGNvbmZsaWN0IGhhbmRsaW5nLgoKQW5k cmVzIEZyZXVuZC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgICAgICAg ICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMgICAgIHwg IDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMgICAgICB8ICA0ICsr LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgICAgICB8ICA0ICsrKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYyAgICB8ICAyICsrCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgICAgfCAxMCArKysrKysrLS0tCiBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jICAgICB8IDEyICsrKysrKysrKy0tLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyAgIHwgIDggKysrKysrKysKIHNyYy9i YWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICB8IDE2ICsrKysrKysrKysrKysr KysKIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZhdGUuaCAgICAgICB8ICA2ICsrKy0t LQogc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggICAgICAgICAgIHwgIDMgKystCiBz cmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggICAgICAgICAgfCAgMSArCiBzcmMvaW5j bHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCAgICAgICAgfCAgOCArKysrKystLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL25idHhsb2cuaCAgICAgICAgICAgIHwgIDIgKysKIHNyYy9pbmNsdWRl L2FjY2Vzcy9zcGd4bG9nLmggICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxz L2xzeXNjYWNoZS5oICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5o ICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKysrKwogMTkgZmlsZXMgY2hhbmdlZCwgNzYg aW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCiAgMTUuMyUgc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvCiAgMjAuOSUgc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvCiAgMTIuNCUgc3Jj L2JhY2tlbmQvYWNjZXNzL25idHJlZS8KICAgNy42JSBzcmMvYmFja2VuZC9hY2Nlc3Mvc3Bn aXN0LwogICA2LjklIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlLwogIDIwLjAlIHNyYy9pbmNs dWRlL2FjY2Vzcy8KICAxNC4yJSBzcmMvaW5jbHVkZS91dGlscy8KCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0LmMKaW5kZXggMDY4M2Y0MmMyNS4uYjZlNjM0MGMzYyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3QuYwpAQCAtMzQ4LDcgKzM0OCw3IEBAIGdpc3RwbGFjZXRvcGFnZShSZWxhdGlv biByZWwsIFNpemUgZnJlZXNwYWNlLCBHSVNUU1RBVEUgKmdpc3RzdGF0ZSwKIAkJZm9yICg7 IHB0cjsgcHRyID0gcHRyLT5uZXh0KQogCQl7CiAJCQkvKiBBbGxvY2F0ZSBuZXcgcGFnZSAq LwotCQkJcHRyLT5idWZmZXIgPSBnaXN0TmV3QnVmZmVyKHJlbCk7CisJCQlwdHItPmJ1ZmZl ciA9IGdpc3ROZXdCdWZmZXIoaGVhcFJlbCwgcmVsKTsKIAkJCUdJU1RJbml0QnVmZmVyKHB0 ci0+YnVmZmVyLCAoaXNfbGVhZikgPyBGX0xFQUYgOiAwKTsKIAkJCXB0ci0+cGFnZSA9IEJ1 ZmZlckdldFBhZ2UocHRyLT5idWZmZXIpOwogCQkJcHRyLT5ibG9jay5ibGtubyA9IEJ1ZmZl ckdldEJsb2NrTnVtYmVyKHB0ci0+YnVmZmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9naXN0L2dpc3RidWlsZC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lz dGJ1aWxkLmMKaW5kZXggMTA1NGY2ZjFmMi4uOGIwNjRmMzJhYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdGJ1aWxkLmMKQEAgLTI5MCw3ICsyOTAsNyBAQCBnaXN0YnVpbGQoUmVs YXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsIEluZGV4SW5mbyAqaW5kZXhJbmZvKQogCQlQ YWdlCQlwYWdlOwogCiAJCS8qIGluaXRpYWxpemUgdGhlIHJvb3QgcGFnZSAqLwotCQlidWZm ZXIgPSBnaXN0TmV3QnVmZmVyKGluZGV4KTsKKwkJYnVmZmVyID0gZ2lzdE5ld0J1ZmZlciho ZWFwLCBpbmRleCk7CiAJCUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpID09 IEdJU1RfUk9PVF9CTEtOTyk7CiAJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1ZmZlcik7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmluZGV4IGEzZWM5ZjJjZmUuLjA0MjU2 YWRkZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwpAQCAtODIzLDcgKzgy Myw3IEBAIGdpc3RjaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmKQogICogQ2Fs bGVyIGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgdGhlIHBhZ2UgYnkgY2FsbGlu ZyBHSVNUSW5pdEJ1ZmZlcgogICovCiBCdWZmZXIKLWdpc3ROZXdCdWZmZXIoUmVsYXRpb24g cikKK2dpc3ROZXdCdWZmZXIoUmVsYXRpb24gaGVhcFJlbCwgUmVsYXRpb24gcikKIHsKIAlC dWZmZXIJCWJ1ZmZlcjsKIAlib29sCQluZWVkTG9jazsKQEAgLTg2Nyw3ICs4NjcsNyBAQCBn aXN0TmV3QnVmZmVyKFJlbGF0aW9uIHIpCiAJCQkJICogcGFnZSdzIGRlbGV0ZVhpZC4KIAkJ CQkgKi8KIAkJCQlpZiAoWExvZ1N0YW5kYnlJbmZvQWN0aXZlKCkgJiYgUmVsYXRpb25OZWVk c1dBTChyKSkKLQkJCQkJZ2lzdFhMb2dQYWdlUmV1c2UociwgYmxrbm8sIEdpc3RQYWdlR2V0 RGVsZXRlWGlkKHBhZ2UpKTsKKwkJCQkJZ2lzdFhMb2dQYWdlUmV1c2UoaGVhcFJlbCwgciwg Ymxrbm8sIEdpc3RQYWdlR2V0RGVsZXRlWGlkKHBhZ2UpKTsKIAogCQkJCXJldHVybiBidWZm ZXI7CiAJCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxv Zy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCAxYzgwZWFl MDQ0Li45N2Q4MTRiOTI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAg LTU5Niw3ICs1OTYsOCBAQCBnaXN0WExvZ0Fzc2lnbkxTTih2b2lkKQogICogV3JpdGUgWExP RyByZWNvcmQgYWJvdXQgcmV1c2Ugb2YgYSBkZWxldGVkIHBhZ2UuCiAgKi8KIHZvaWQKLWdp c3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxU cmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQpCitnaXN0WExvZ1BhZ2VSZXVzZShSZWxh dGlvbiBoZWFwUmVsLCBSZWxhdGlvbiByZWwsCisJCQkJICBCbG9ja051bWJlciBibGtubywg RnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKIHsKIAlnaXN0eGxvZ1BhZ2VS ZXVzZSB4bHJlY19yZXVzZTsKIApAQCAtNjA3LDYgKzYwOCw3IEBAIGdpc3RYTG9nUGFnZVJl dXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92CiAJICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2Uu b25DYXRhbG9nVGFibGUgPSBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5n KGhlYXBSZWwpOwogCXhscmVjX3JldXNlLm5vZGUgPSByZWwtPnJkX25vZGU7CiAJeGxyZWNf cmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJlY19yZXVzZS5sYXRlc3RSZW1vdmVkRnVsbFhp ZCA9IGxhdGVzdFJlbW92ZWRYaWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGFzaC9oYXNoaW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0 LmMKaW5kZXggZDI1NGEwMGI2YS4uNTcxMTk1MmZjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hpbnNlcnQuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNz L2hhc2guaCIKICNpbmNsdWRlICJhY2Nlc3MvaGFzaF94bG9nLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9jYXRhbG9nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9idWZfaW50ZXJuYWxzLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sd2xvY2suaCIKQEAg LTM5OCw2ICszOTksNyBAQCBfaGFzaF92YWN1dW1fb25lX3BhZ2UoUmVsYXRpb24gcmVsLCBS ZWxhdGlvbiBocmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVmZmVyIGJ1ZikKIAkJCXhsX2hhc2hf dmFjdXVtX29uZV9wYWdlIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhs cmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyhocmVsKTsKIAkJCXhscmVjLmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVk WGlkOwogCQkJeGxyZWMubnR1cGxlcyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKaW5kZXggN2NiODdmNGEzYi4uYWMwMDRmMTI1OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTc5NTQsMTIgKzc5NTQsMTMgQEAgYm90dG9tdXBfc29y dF9hbmRfc2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogICogc2VlIGNvbW1l bnRzIGZvciB2YWN1dW1fbG9nX2NsZWFudXBfaW5mbygpLgogICovCiBYTG9nUmVjUHRyCi1s b2dfaGVhcF9jbGVhbnVwX2luZm8oUmVsRmlsZU5vZGUgcm5vZGUsIFRyYW5zYWN0aW9uSWQg bGF0ZXN0UmVtb3ZlZFhpZCkKK2xvZ19oZWFwX2NsZWFudXBfaW5mbyhSZWxhdGlvbiByZWws IFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCkKIHsKIAl4bF9oZWFwX2NsZWFudXBf aW5mbyB4bHJlYzsKIAlYTG9nUmVjUHRyCXJlY3B0cjsKIAotCXhscmVjLm5vZGUgPSBybm9k ZTsKKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dp Y2FsRGVjb2RpbmcocmVsKTsKKwl4bHJlYy5ub2RlID0gcmVsLT5yZF9ub2RlOwogCXhscmVj LmxhdGVzdFJlbW92ZWRYaWQgPSBsYXRlc3RSZW1vdmVkWGlkOwogCiAJWExvZ0JlZ2luSW5z ZXJ0KCk7CkBAIC03OTk1LDYgKzc5OTYsNyBAQCBsb2dfaGVhcF9jbGVhbihSZWxhdGlvbiBy ZWxuLCBCdWZmZXIgYnVmZmVyLAogCS8qIENhbGxlciBzaG91bGQgbm90IGNhbGwgbWUgb24g YSBub24tV0FMLWxvZ2dlZCByZWxhdGlvbiAqLwogCUFzc2VydChSZWxhdGlvbk5lZWRzV0FM KHJlbG4pKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2li bGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5sYXRlc3RSZW1vdmVkWGlkID0g bGF0ZXN0UmVtb3ZlZFhpZDsKIAl4bHJlYy5ucmVkaXJlY3RlZCA9IG5yZWRpcmVjdGVkOwog CXhscmVjLm5kZWFkID0gbmRlYWQ7CkBAIC04MDQ1LDYgKzgwNDcsNyBAQCBsb2dfaGVhcF9m cmVlemUoUmVsYXRpb24gcmVsbiwgQnVmZmVyIGJ1ZmZlciwgVHJhbnNhY3Rpb25JZCBjdXRv ZmZfeGlkLAogCS8qIG5vciB3aGVuIHRoZXJlIGFyZSBubyB0dXBsZXMgdG8gZnJlZXplICov CiAJQXNzZXJ0KG50dXBsZXMgPiAwKTsKIAorCXhscmVjLm9uQ2F0YWxvZ1RhYmxlID0gUmVs YXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxuKTsKIAl4bHJlYy5jdXRv ZmZfeGlkID0gY3V0b2ZmX3hpZDsKIAl4bHJlYy5udHVwbGVzID0gbnR1cGxlczsKIApAQCAt ODA3NSw3ICs4MDc4LDcgQEAgbG9nX2hlYXBfZnJlZXplKFJlbGF0aW9uIHJlbG4sIEJ1ZmZl ciBidWZmZXIsIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwKICAqIGhlYXBfYnVmZmVyLCBp ZiBuZWNlc3NhcnkuCiAgKi8KIFhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsRmls ZU5vZGUgcm5vZGUsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1ZmZlciwKK2xv Z19oZWFwX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZl ciB2bV9idWZmZXIsCiAJCQkJIFRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZCwgdWludDggdm1m bGFncykKIHsKIAl4bF9oZWFwX3Zpc2libGUgeGxyZWM7CkBAIC04MDg1LDYgKzgwODgsNyBA QCBsb2dfaGVhcF92aXNpYmxlKFJlbEZpbGVOb2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZm ZXIsIEJ1ZmZlciB2bV9idWZmZXIsCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQoaGVhcF9idWZm ZXIpKTsKIAlBc3NlcnQoQnVmZmVySXNWYWxpZCh2bV9idWZmZXIpKTsKIAorCXhscmVjLm9u Q2F0YWxvZ1RhYmxlID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhy ZWwpOwogCXhscmVjLmN1dG9mZl94aWQgPSBjdXRvZmZfeGlkOwogCXhscmVjLmZsYWdzID0g dm1mbGFnczsKIAlYTG9nQmVnaW5JbnNlcnQoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYwppbmRleCA4MzQxODc5ZDg5Li5lODEyOWJlNjM0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC03MzcsNyArNzM3LDcgQEAgdmFjdXVtX2xv Z19jbGVhbnVwX2luZm8oUmVsYXRpb24gcmVsLCBMVlJlbFN0YXRzICp2YWNyZWxzdGF0cykK IAkgKiBObyBuZWVkIHRvIHdyaXRlIHRoZSByZWNvcmQgYXQgYWxsIHVubGVzcyBpdCBjb250 YWlucyBhIHZhbGlkIHZhbHVlCiAJICovCiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZh Y3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJKHZvaWQpIGxvZ19oZWFwX2NsZWFu dXBfaW5mbyhyZWwtPnJkX25vZGUsIHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKTsK KwkJKHZvaWQpIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhyZWwsIHZhY3JlbHN0YXRzLT5sYXRl c3RSZW1vdmVkWGlkKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYwppbmRleCBlMTk4ZGY2NWQ4Li42ZTg5YTA4YzUyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0yODIsNyArMjgyLDcgQEAgdmlz aWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHJlY3B0cikpCiAJCQl7 CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNp YmxlKHJlbC0+cmRfbm9kZSwgaGVhcEJ1Ziwgdm1CdWYsCisJCQkJcmVjcHRyID0gbG9nX2hl YXBfdmlzaWJsZShyZWwsIGhlYXBCdWYsIHZtQnVmLAogCQkJCQkJCQkJCSAgY3V0b2ZmX3hp ZCwgZmxhZ3MpOwogCiAJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMK aW5kZXggNTMwZDkyNGJmZi4uZTVkNzI1ZTRlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJl ZS9uYnRwYWdlLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJ1dGlscy9tZW1kZWJ1 Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvc25h cG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogCiBzdGF0aWMgQlRNZXRh UGFnZURhdGEgKl9idF9nZXRtZXRhKFJlbGF0aW9uIHJlbCwgQnVmZmVyIG1ldGFidWYpOwog c3RhdGljIHZvaWQgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1i ZXIgYmxrbm8sCkBAIC00Myw3ICs0NCw4IEBAIHN0YXRpYyB2b2lkIF9idF9sb2dfcmV1c2Vf cGFnZShSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVyIGJsa25vLAogc3RhdGljIHZvaWQgX2J0 X2RlbGl0ZW1zX2RlbGV0ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJCVRy YW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwKIAkJCQkJCQkJT2Zmc2V0TnVtYmVyICpk ZWxldGFibGUsIGludCBuZGVsZXRhYmxlLAotCQkJCQkJCQlCVFZhY3V1bVBvc3RpbmcgKnVw ZGF0YWJsZSwgaW50IG51cGRhdGFibGUpOworCQkJCQkJCQlCVFZhY3V1bVBvc3RpbmcgKnVw ZGF0YWJsZSwgaW50IG51cGRhdGFibGUsCisJCQkJCQkJCVJlbGF0aW9uIGhlYXBSZWwpOwog c3RhdGljIGNoYXIgKl9idF9kZWxpdGVtc191cGRhdGUoQlRWYWN1dW1Qb3N0aW5nICp1cGRh dGFibGUsIGludCBudXBkYXRhYmxlLAogCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICp1cGRhdGVk b2Zmc2V0cywKIAkJCQkJCQkJIFNpemUgKnVwZGF0ZWRidWZsZW4sIGJvb2wgbmVlZHN3YWwp OwpAQCAtODM2LDYgKzgzOCw3IEBAIF9idF9sb2dfcmV1c2VfcGFnZShSZWxhdGlvbiByZWws IEJsb2NrTnVtYmVyIGJsa25vLCBGdWxsVHJhbnNhY3Rpb25JZCBzYWZleGlkKQogCSAqLwog CiAJLyogWExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLm9uQ2F0YWxvZ1RhYmxlID0gZ2V0 X3JlbF9sb2dpY2FsX2NhdGFsb2cocmVsLT5yZF9pbmRleC0+aW5kcmVsaWQpOwogCXhscmVj X3JldXNlLm5vZGUgPSByZWwtPnJkX25vZGU7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtu bzsKIAl4bHJlY19yZXVzZS5sYXRlc3RSZW1vdmVkRnVsbFhpZCA9IHNhZmV4aWQ7CkBAIC0x Mjk2LDcgKzEyOTksOCBAQCBfYnRfZGVsaXRlbXNfdmFjdXVtKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKIHN0YXRpYyB2b2lkCiBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwgVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLAogCQkJCQlP ZmZzZXROdW1iZXIgKmRlbGV0YWJsZSwgaW50IG5kZWxldGFibGUsCi0JCQkJCUJUVmFjdXVt UG9zdGluZyAqdXBkYXRhYmxlLCBpbnQgbnVwZGF0YWJsZSkKKwkJCQkJQlRWYWN1dW1Qb3N0 aW5nICp1cGRhdGFibGUsIGludCBudXBkYXRhYmxlLAorCQkJCQlSZWxhdGlvbiBoZWFwUmVs KQogewogCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQYWdlKGJ1Zik7CiAJQlRQYWdlT3BhcXVl IG9wYXF1ZTsKQEAgLTEzNTgsNiArMTM2Miw4IEBAIF9idF9kZWxpdGVtc19kZWxldGUoUmVs YXRpb24gcmVsLCBCdWZmZXIgYnVmLCBUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQs CiAJCVhMb2dSZWNQdHIJcmVjcHRyOwogCQl4bF9idHJlZV9kZWxldGUgeGxyZWNfZGVsZXRl OwogCisJCXhscmVjX2RlbGV0ZS5vbkNhdGFsb2dUYWJsZSA9CisJCQlSZWxhdGlvbklzQWNj ZXNzaWJsZUluTG9naWNhbERlY29kaW5nKGhlYXBSZWwpOwogCQl4bHJlY19kZWxldGUubGF0 ZXN0UmVtb3ZlZFhpZCA9IGxhdGVzdFJlbW92ZWRYaWQ7CiAJCXhscmVjX2RlbGV0ZS5uZGVs ZXRlZCA9IG5kZWxldGFibGU7CiAJCXhscmVjX2RlbGV0ZS5udXBkYXRlZCA9IG51cGRhdGFi bGU7CkBAIC0xNjg1LDcgKzE2OTEsNyBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlX2NoZWNrKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwgUmVsYXRpb24gaGVhcFJlbCwKIAogCS8qIFBoeXNp Y2FsbHkgZGVsZXRlIHR1cGxlcyAob3IgVElEcykgdXNpbmcgZGVsZXRhYmxlIChvciB1cGRh dGFibGUpICovCiAJX2J0X2RlbGl0ZW1zX2RlbGV0ZShyZWwsIGJ1ZiwgbGF0ZXN0UmVtb3Zl ZFhpZCwgZGVsZXRhYmxlLCBuZGVsZXRhYmxlLAotCQkJCQkJdXBkYXRhYmxlLCBudXBkYXRh YmxlKTsKKwkJCQkJCXVwZGF0YWJsZSwgbnVwZGF0YWJsZSwgaGVhcFJlbCk7CiAKIAkvKiBi ZSB0aWR5ICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBudXBkYXRhYmxlOyBpKyspCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRleCBhOWZmY2E1MTgzLi5jZDY1 Njk5NTVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1 bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFjdXVtLmMKQEAgLTI3 LDYgKzI3LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2luZGV4ZnNtLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgogCiAKIC8qIEVudHJ5IGluIHBlbmRpbmctbGlzdCBvZiBU SURzIHdlIG5lZWQgdG8gcmV2aXNpdCAqLwpAQCAtNTAzLDYgKzUwNCwxMyBAQCB2YWN1dW1S ZWRpcmVjdEFuZFBsYWNlaG9sZGVyKFJlbGF0aW9uIGluZGV4LCBCdWZmZXIgYnVmZmVyKQog CXNwZ3hsb2dWYWN1dW1SZWRpcmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVz dDsKIAorCS8qCisJICogVGhlcmUgaXMgbm8gY2hhbmNlIG9mIGVuZGxlc3MgcmVjdXJzaW9u IGV2ZW4gd2hlbiB3ZSBhcmUgZG9pbmcgY2F0YWxvZworCSAqIGFjY2VzZXMgaGVyZTsgYmVj YXVzZSwgc3BnaXN0IGlzIG5ldmVyIHVzZWQgZm9yIGNhdGFsb2dzLiBDaGVjaworCSAqIGNv bW1lbnRzIGluIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoKS4KKwkg Ki8KKwl4bHJlYy5vbkNhdGFsb2dUYWJsZSA9IGdldF9yZWxfbG9naWNhbF9jYXRhbG9nKGlu ZGV4LT5yZF9pbmRleC0+aW5kcmVsaWQpOworCiAJeGxyZWMublRvUGxhY2Vob2xkZXIgPSAw OwogCXhscmVjLm5ld2VzdFJlZGlyZWN0WGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggNmJiYTVmOGVjNC4uOTBm YTVkZmM3YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTE4LDcg KzE4LDkgQEAKICNpbmNsdWRlICJhY2Nlc3MvaGFzaC5oIgogI2luY2x1ZGUgImFjY2Vzcy9o dHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nlc3MvbmJ0cmVlLmgiCisjaW5jbHVkZSAi YWNjZXNzL3RhYmxlLmgiCiAjaW5jbHVkZSAiYm9vdHN0cmFwL2Jvb3RzdHJhcC5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf YW1vcC5oIgpAQCAtMjA2Miw2ICsyMDY0LDIwIEBAIGdldF9yZWxfcGVyc2lzdGVuY2UoT2lk IHJlbGlkKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wKK2dldF9yZWxfbG9naWNhbF9j YXRhbG9nKE9pZCByZWxpZCkKK3sKKwlib29sCXJlczsKKwlSZWxhdGlvbiByZWw7CisKKwkv KiBhc3N1bWUgcHJldmlvdXNseSBsb2NrZWQgKi8KKwlyZWwgPSB0YWJsZV9vcGVuKHJlbGlk LCBOb0xvY2spOworCXJlcyA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rp bmcocmVsKTsKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlyZXR1cm4gcmVzOwor fQorCiAKIC8qCQkJCS0tLS0tLS0tLS0gVFJBTlNGT1JNIENBQ0hFIC0tLS0tLS0tLS0JCQkJ CQkgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5o IGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCmluZGV4IDU1M2QzNjRlMmQu LmEwZjQwMTU1NTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3ByaXZh dGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmgKQEAgLTQ0MCw4 ICs0NDAsOCBAQCBleHRlcm4gWExvZ1JlY1B0ciBnaXN0WExvZ1BhZ2VEZWxldGUoQnVmZmVy IGJ1ZmZlciwKIAkJCQkJCQkJCSBGdWxsVHJhbnNhY3Rpb25JZCB4aWQsIEJ1ZmZlciBwYXJl bnRCdWZmZXIsCiAJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyIGRvd25saW5rT2Zmc2V0KTsKIAot ZXh0ZXJuIHZvaWQgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gcmVsLCBCbG9ja051bWJl ciBibGtubywKLQkJCQkJCQkgIEZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQp OworZXh0ZXJuIHZvaWQgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gaGVhcFJlbCwgUmVs YXRpb24gcmVsLAorCQkJCSAgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklk IGxhdGVzdFJlbW92ZWRYaWQpOwogCiBleHRlcm4gWExvZ1JlY1B0ciBnaXN0WExvZ1VwZGF0 ZShCdWZmZXIgYnVmZmVyLAogCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICp0b2RlbGV0ZSwgaW50 IG50b2RlbGV0ZSwKQEAgLTQ4NSw3ICs0ODUsNyBAQCBleHRlcm4gYm9vbCBnaXN0cHJvcGVy dHkoT2lkIGluZGV4X29pZCwgaW50IGF0dG5vLAogZXh0ZXJuIGJvb2wgZ2lzdGZpdHBhZ2Uo SW5kZXhUdXBsZSAqaXR2ZWMsIGludCBsZW4pOwogZXh0ZXJuIGJvb2wgZ2lzdG5vc3BhY2Uo UGFnZSBwYWdlLCBJbmRleFR1cGxlICppdHZlYywgaW50IGxlbiwgT2Zmc2V0TnVtYmVyIHRv ZGVsZXRlLCBTaXplIGZyZWVzcGFjZSk7CiBleHRlcm4gdm9pZCBnaXN0Y2hlY2twYWdlKFJl bGF0aW9uIHJlbCwgQnVmZmVyIGJ1Zik7Ci1leHRlcm4gQnVmZmVyIGdpc3ROZXdCdWZmZXIo UmVsYXRpb24gcik7CitleHRlcm4gQnVmZmVyIGdpc3ROZXdCdWZmZXIoUmVsYXRpb24gaGVh cFJlbCwgUmVsYXRpb24gcik7CiBleHRlcm4gYm9vbCBnaXN0UGFnZVJlY3ljbGFibGUoUGFn ZSBwYWdlKTsKIGV4dGVybiB2b2lkIGdpc3RmaWxsYnVmZmVyKFBhZ2UgcGFnZSwgSW5kZXhU dXBsZSAqaXR1cCwgaW50IGxlbiwKIAkJCQkJCSAgIE9mZnNldE51bWJlciBvZmYpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdHhsb2cuaAppbmRleCBmZDUxNDRmMjU4Li43Mzk5OWRkYzcwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2lzdHhsb2cuaApAQCAtNDksOSArNDksOSBAQCB0eXBlZGVmIHN0cnVjdCBnaXN0 eGxvZ1BhZ2VVcGRhdGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dEZWxldGUKIHsK Kwlib29sCQlvbkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRY aWQ7CiAJdWludDE2CQludG9kZWxldGU7CQkvKiBudW1iZXIgb2YgZGVsZXRlZCBvZmZzZXRz ICovCi0KIAkvKgogCSAqIEluIHBheWxvYWQgb2YgYmxrIDAgOiB0b2RlbGV0ZSBPZmZzZXRO dW1iZXJzCiAJICovCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9n UGFnZURlbGV0ZQogICovCiB0eXBlZGVmIHN0cnVjdCBnaXN0eGxvZ1BhZ2VSZXVzZQogewor CWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVJlbEZpbGVOb2RlIG5vZGU7CiAJQmxvY2tOdW1i ZXIgYmxvY2s7CiAJRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZEZ1bGxYaWQ7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGFzaF94bG9nLmgKaW5kZXggNDM1M2EzMmRiYi4uOTRjMzI5MmMxZSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oYXNoX3hsb2cuaApAQCAtMjUwLDYgKzI1MCw3IEBAIHR5cGVkZWYgc3Ry dWN0IHhsX2hhc2hfaW5pdF9iaXRtYXBfcGFnZQogICovCiB0eXBlZGVmIHN0cnVjdCB4bF9o YXNoX3ZhY3V1bV9vbmVfcGFnZQogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5z YWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAlpbnQJCQludHVwbGVzOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9oZWFwYW1feGxvZy5oCmluZGV4IDE3OGQ0OTcxMGEuLjZjNGMyNmMyZmUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCkBAIC0yMzksNiArMjM5LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgeGxfaGVhcF91cGRhdGUKICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9jbGVh bgogeworCWJvb2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVt b3ZlZFhpZDsKIAl1aW50MTYJCW5yZWRpcmVjdGVkOwogCXVpbnQxNgkJbmRlYWQ7CkBAIC0y NTQsNiArMjU1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9jbGVhbgogICovCiB0eXBl ZGVmIHN0cnVjdCB4bF9oZWFwX2NsZWFudXBfaW5mbwogeworCWJvb2wJCW9uQ2F0YWxvZ1Rh YmxlOwogCVJlbEZpbGVOb2RlIG5vZGU7CiAJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVk WGlkOwogfSB4bF9oZWFwX2NsZWFudXBfaW5mbzsKQEAgLTMzNCw2ICszMzYsNyBAQCB0eXBl ZGVmIHN0cnVjdCB4bF9oZWFwX2ZyZWV6ZV90dXBsZQogICovCiB0eXBlZGVmIHN0cnVjdCB4 bF9oZWFwX2ZyZWV6ZV9wYWdlCiB7CisJYm9vbAkJb25DYXRhbG9nVGFibGU7CiAJVHJhbnNh Y3Rpb25JZCBjdXRvZmZfeGlkOwogCXVpbnQxNgkJbnR1cGxlczsKIH0geGxfaGVhcF9mcmVl emVfcGFnZTsKQEAgLTM0OCw2ICszNTEsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX2Zy ZWV6ZV9wYWdlCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfdmlzaWJsZQogeworCWJv b2wJCW9uQ2F0YWxvZ1RhYmxlOwogCVRyYW5zYWN0aW9uSWQgY3V0b2ZmX3hpZDsKIAl1aW50 OAkJZmxhZ3M7CiB9IHhsX2hlYXBfdmlzaWJsZTsKQEAgLTM5Nyw3ICs0MDEsNyBAQCBleHRl cm4gdm9pZCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJl Y29yZCk7CiBleHRlcm4gY29uc3QgY2hhciAqaGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7 CiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfbG9naWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0 ZSAqcik7CiAKLWV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhSZWxG aWxlTm9kZSBybm9kZSwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX2NsZWFudXBfaW5m byhSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkJVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVk WGlkKTsKIGV4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX2NsZWFuKFJlbGF0aW9uIHJlbG4s IEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCSBPZmZzZXROdW1iZXIgKnJlZGlyZWN0ZWQsIGlu dCBucmVkaXJlY3RlZCwKQEAgLTQxNiw3ICs0MjAsNyBAQCBleHRlcm4gYm9vbCBoZWFwX3By ZXBhcmVfZnJlZXplX3R1cGxlKEhlYXBUdXBsZUhlYWRlciB0dXBsZSwKIAkJCQkJCQkJCSAg Ym9vbCAqdG90YWxseV9mcm96ZW4pOwogZXh0ZXJuIHZvaWQgaGVhcF9leGVjdXRlX2ZyZWV6 ZV90dXBsZShIZWFwVHVwbGVIZWFkZXIgdHVwbGUsCiAJCQkJCQkJCQkgIHhsX2hlYXBfZnJl ZXplX3R1cGxlICp4bHJlY190cCk7Ci1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNp YmxlKFJlbEZpbGVOb2RlIHJub2RlLCBCdWZmZXIgaGVhcF9idWZmZXIsCitleHRlcm4gWExv Z1JlY1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVm ZmVyLAogCQkJCQkJCQkgICBCdWZmZXIgdm1fYnVmZmVyLCBUcmFuc2FjdGlvbklkIGN1dG9m Zl94aWQsIHVpbnQ4IGZsYWdzKTsKIAogI2VuZGlmCQkJCQkJCS8qIEhFQVBBTV9YTE9HX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCmluZGV4IDBmNzczMTg1NmIuLmIxNWFhNDdmMWIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL25idHhsb2cuaApAQCAtMTg1LDYgKzE4NSw3IEBAIHR5cGVkZWYgc3RydWN0 IHhsX2J0cmVlX2RlZHVwCiAgKi8KIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVlX3JldXNlX3Bh Z2UKIHsKKwlib29sICAgICAgICBvbkNhdGFsb2dUYWJsZTsKIAlSZWxGaWxlTm9kZSBub2Rl OwogCUJsb2NrTnVtYmVyIGJsb2NrOwogCUZ1bGxUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92 ZWRGdWxsWGlkOwpAQCAtMjMyLDYgKzIzMyw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVl X3ZhY3V1bQogCiB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9kZWxldGUKIHsKKwlib29sCQlv bkNhdGFsb2dUYWJsZTsKIAlUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQ7CiAJdWlu dDE2CQluZGVsZXRlZDsKIAl1aW50MTYJCW51cGRhdGVkOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgK aW5kZXggNjk0MDViNTc1MC4uMDZiOTFmNGQwNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv YWNjZXNzL3NwZ3hsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCkBA IC0yMzcsNiArMjM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJvb3QKIAog dHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJlZGlyZWN0CiB7CisJYm9vbAkJb25DYXRh bG9nVGFibGU7CiAJdWludDE2CQluVG9QbGFjZWhvbGRlcjsgLyogbnVtYmVyIG9mIHJlZGly ZWN0cyB0byBtYWtlIHBsYWNlaG9sZGVycyAqLwogCU9mZnNldE51bWJlciBmaXJzdFBsYWNl aG9sZGVyOwkvKiBmaXJzdCBwbGFjZWhvbGRlciB0dXBsZSB0byByZW1vdmUgKi8KIAlUcmFu c2FjdGlvbklkIG5ld2VzdFJlZGlyZWN0WGlkOwkvKiBuZXdlc3QgWElEIG9mIHJlbW92ZWQg cmVkaXJlY3RzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDc3ODcxYWFlZmMuLmUy YTVlZmVkMzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xMzksNiArMTM5LDcgQEAg ZXh0ZXJuIGNoYXIgZ2V0X3JlbF9yZWxraW5kKE9pZCByZWxpZCk7CiBleHRlcm4gYm9vbCBn ZXRfcmVsX3JlbGlzcGFydGl0aW9uKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxf dGFibGVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIGNoYXIgZ2V0X3JlbF9wZXJzaXN0ZW5j ZShPaWQgcmVsaWQpOworZXh0ZXJuIGJvb2wgZ2V0X3JlbF9sb2dpY2FsX2NhdGFsb2coT2lk IHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9ybV9mcm9tc3FsKE9pZCB0eXBpZCwg T2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3Jt X3Rvc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJu IGJvb2wgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlwaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCA1Mzc1 YTM3ZGQxLi4xOTIyODQxYWQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMTYsNiArMTYsNyBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3R1cGRlc2MuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgor I2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xh c3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luZGV4LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtMzQ3LDYgKzM0OCw5IEBAIHR5cGVkZWYgc3RydWN0 IFN0ZFJkT3B0aW9ucwogICogUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZQogICoJCVJl dHVybnMgd2hldGhlciB0aGUgcmVsYXRpb24gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBjYXRh bG9nIHRhYmxlCiAgKgkJZnJvbSB0aGUgcG92IG9mIGxvZ2ljYWwgZGVjb2RpbmcuICBOb3Rl IG11bHRpcGxlIGV2YWwgb2YgYXJndW1lbnQhCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3Vs ZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vz czsgb3RoZXJ3aXNlIGl0IG1heSBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24uIENoZWNrIHRo ZSBjb21tZW50cworICoJCWluIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rp bmcoKSBmb3IgZGV0YWlscy4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzVXNlZEFzQ2F0YWxv Z1RhYmxlKHJlbGF0aW9uKQlcCiAJKChyZWxhdGlvbiktPnJkX29wdGlvbnMgJiYgXApAQCAt NjQxLDYgKzY0NSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBQYXJ0aXRpb25lZFRhYmxlUmRPcHRp b25zCiAgKiBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nCiAgKgkJVHJ1 ZSBpZiB3ZSBuZWVkIHRvIGxvZyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gaGF2ZSBhY2Nlc3Mg dmlhCiAgKgkJZGVjb2Rpbmcgc25hcHNob3QuCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3Vs ZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vz cy4gT3RoZXJ3aXNlLCBlLmcuIGxvZ2dpbmcgYSBXQUwgZW50cnkgZm9yIGNhdGFsb2cgcmVs YXRpb24gbWF5CisgKgkJaW52b2tlIHRoaXMgZnVuY3Rpb24sIHdoaWNoIHdpbGwgaW4gdHVy biBkbyBjYXRhbG9nIGFjY2Vzcywgd2hpY2ggbWF5CisgKgkJaW4gdHVybiBjYXVzZSBhbm90 aGVyIHNpbWlsYXIgV0FMIGVudHJ5IHRvIGJlIGxvZ2dlZCwgbGVhZGluZyB0bworICoJCWlu ZmluaXRlIHJlY3Vyc2lvbi4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nKHJlbGF0aW9uKSBcCiAJKFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgp ICYmIFwKLS0gCjIuMTguNAoK --------------CBE4036E39902411D07DAAFC Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v11-0001-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v11-0001-Allow-logical-decoding-on-standby.patch" RnJvbSAwMmU5YWRjN2ZjNGM5ZDZkNTRhMGRhZDQ2MjJkNzNjZjA2YmI4ZTE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogTW9uLCAyMiBNYXIgMjAyMSAxNTozMTozNyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjExIDEvNV0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkFuZHJlcyBGcmV1bmQgYW5kIEFtaXQg S2hhbmRla2FyLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAg ICAgIHwgMTEgKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMgIHwgMjIgKysrKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xv Z2ljYWwuYyB8IDM3ICsrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdC5jICAgICAgICAgICAgfCA1NyArKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgfCAxMCArKy0tCiBzcmMvaW5j bHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8ICAxICsKIDYgZmlsZXMgY2hh bmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCiAgIDUuNiUgc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDUuOCUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC8KICA0Ny43JSBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMKaW5kZXggNmY4ODEwZTE0OS4uNmEyMWNiYTM2MiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTA4MCw2ICs1MDgwLDE3IEBAIExvY2Fs UHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVhZENvbnRyb2xGaWxlKCk7CiB9 CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRoZSBjb250cm9sIGZpbGUuIEZv ciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisgKiBjb25zaWRlcmVkIGFzIGl0 cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBiZSBkaWZmZXJlbnQgZnJvbSB3 aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9uIHN0YW5kYnkuCisgKi8KK1dh bExldmVsCitHZXRBY3RpdmVXYWxMZXZlbCh2b2lkKQoreworCXJldHVybiBDb250cm9sRmls ZS0+d2FsX2xldmVsOworfQorCiAvKgogICogSW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1l bW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9k ZWNvZGUuYwppbmRleCA1ZjU5NjEzNWIxLi5mMjg0MzE4Y2Q1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTIxNCwxMSArMjE0LDMxIEBAIERl Y29kZVhMb2dPcChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZm ZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJy ZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVSX0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1l dGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dS ZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKworCQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBv biBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJ CSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGluZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcg dXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieSBnZXQgZHJv cHBlZCB3aGVuIHRoaXMgV0FMCisJCQkgKiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0 aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMg bm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkg KiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0 aGUgd2FsX2xldmVsCisJCQkgKiBpcyBiZWluZyByZWR1Y2VkLiAgSGVuY2UgdGhpcyBleHRy YSBjaGVjay4KKwkJCSAqLworCQkJaWYgKHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxf TE9HSUNBTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9P QkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dp Y2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVs ID49IGxvZ2ljYWwgb24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExP R19OT09QOgogCQljYXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJ Y2FzZSBYTE9HX0JBQ0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgog CQljYXNlIFhMT0dfUkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJ CWNhc2UgWExPR19GUElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvbG9naWNhbC5jCmluZGV4IDM3Yjc1ZGViNzIuLjUzNGUyNTY2Y2YgMTAwNjQ0Ci0t 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 CWlmIChHZXRBY3RpdmVXYWxMZXZlbCgpIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVR VUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBvbiBzdGFu ZGJ5IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsID49IGxvZ2ljYWwgb24gbWFzdGVy IikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzAsNiArMzI5LDEyIEBAIENyZWF0ZUluaXREZWNv ZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNvZGluZ0NvbnRl eHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoKKwkgKiBPbiBz dGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3JlYXRpbmcgdGhl IHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rpb24uCisJICov CisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8qIHNob3J0ZXIg bGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3QuYwppbmRleCA3NWEwODdjMmY5Li45ZGIyMDI3OGY2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vc2xvdC5jCkBAIC0xMTA1LDM3ICsxMTA1LDU2IEBAIFJlcGxpY2F0aW9uU2xvdFJl c2VydmVXYWwodm9pZCkKIAkJLyoKIAkJICogRm9yIGxvZ2ljYWwgc2xvdHMgbG9nIGEgc3Rh bmRieSBzbmFwc2hvdCBhbmQgc3RhcnQgbG9naWNhbCBkZWNvZGluZwogCQkgKiBhdCBleGFj dGx5IHRoYXQgcG9zaXRpb24uIFRoYXQgYWxsb3dzIHRoZSBzbG90IHRvIHN0YXJ0IHVwIG1v cmUKLQkJICogcXVpY2tseS4KKwkJICogcXVpY2tseS4gQnV0IG9uIGEgc3RhbmRieSB3ZSBj YW5ub3QgZG8gV0FMIHdyaXRlcywgc28ganVzdCB1c2UgdGhlCisJCSAqIHJlcGxheSBwb2lu dGVyOyBlZmZlY3RpdmVseSwgYW4gYXR0ZW1wdCB0byBjcmVhdGUgYSBsb2dpY2FsIHNsb3Qg b24KKwkJICogc3RhbmRieSB3aWxsIGNhdXNlIGl0IHRvIHdhaXQgZm9yIGFuIHhsX3J1bm5p bmdfeGFjdCByZWNvcmQgdG8gYmUKKwkJICogbG9nZ2VkIGluZGVwZW5kZW50bHkgb24gdGhl IHByaW1hcnksIHNvIHRoYXQgYSBzbmFwc2hvdCBjYW4gYmUgYnVpbHQKKwkJICogdXNpbmcg dGhlIHJlY29yZC4KIAkJICoKLQkJICogVGhhdCdzIG5vdCBuZWVkZWQgKG9yIGluZGVlZCBo ZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xvdHMgYXMgdGhleSdsbAotCQkgKiBzdGFydCByZXBs YXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNoZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkIHJldHVy bgotCQkgKiB0aGUgbG9jYXRpb24gb2YgdGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRoYXQg c2xpZ2h0bHkgaW5jcmVhc2VzCi0JCSAqIHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRvIHJl dHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBiYWNrdXAgaGFzIHRvCi0JCSAqIHN0YXJ0IHJlcGxh eSBhdC4KKwkJICogTm9uZSBvZiB0aGlzIGlzIG5lZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwp IGZvciBwaHlzaWNhbCBzbG90cyBhcworCQkgKiB0aGV5J2xsIHN0YXJ0IHJlcGxheSBhdCB0 aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQKKwkJICogcmV0dXJu IHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGlnaHRs eQorCQkgKiBpbmNyZWFzZXMgdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0 J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cAorCQkgKiBoYXMgdG8gc3RhcnQgcmVwbGF5IGF0Lgog CQkgKi8KKwkJaWYgKFNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQkJcmVzdGFydF9sc24gPSBH ZXRSZWRvUmVjUHRyKCk7CisJCWVsc2UgaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQl7 CisJCQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQkvKgor CQkJICogUmVwbGF5IHBvaW50ZXIgbWF5IHBvaW50IG9uZSBwYXN0IHRoZSBlbmQgb2YgdGhl IHJlY29yZC4gSWYgdGhhdAorCQkJICogaXMgYSBYTE9HIHBhZ2UgYm91bmRhcnksIGl0IHdp bGwgbm90IGJlIGEgdmFsaWQgTFNOIGZvciB0aGUKKwkJCSAqIHN0YXJ0IG9mIGEgcmVjb3Jk LCBzbyBidW1wIGl0IHVwIHBhc3QgdGhlIHBhZ2UgaGVhZGVyLgorCQkJICovCisJCQlpZiAo IVhSZWNPZmZJc1ZhbGlkKHJlc3RhcnRfbHNuKSkKKwkJCXsKKwkJCQlpZiAocmVzdGFydF9s c24gJSBYTE9HX0JMQ0tTWiAhPSAwKQorCQkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCByZXBs YXkgcG9pbnRlciIpOworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBvZiBhIHNlZ21lbnQg ZmlsZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dTZWdtZW50T2Zmc2V0 KHJlc3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJCQlyZXN0YXJ0X2xz biArPSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJlc3RhcnRfbHNuICs9 IFNpemVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KKwkJfQorCQllbHNlCisJCQlyZXN0YXJ0X2xz biA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3Qt Pm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQlT cGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKwogCQlpZiAoIVJlY292ZXJ5SW5Qcm9n cmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCiAJCXsKIAkJCVhMb2dSZWNQdHIJZmx1 c2hwdHI7CiAKLQkJCS8qIHN0YXJ0IGF0IGN1cnJlbnQgaW5zZXJ0IHBvc2l0aW9uICovCi0J CQlyZXN0YXJ0X2xzbiA9IEdldFhMb2dJbnNlcnRSZWNQdHIoKTsKLQkJCVNwaW5Mb2NrQWNx dWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3Rh cnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7Ci0KIAkJCS8qIG1h a2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFydCAqLwogCQkJZmx1 c2hwdHIgPSBMb2dTdGFuZGJ5U25hcHNob3QoKTsKIAogCQkJLyogYW5kIG1ha2Ugc3VyZSBp dCdzIGZzeW5jZWQgdG8gZGlzayAqLwogCQkJWExvZ0ZsdXNoKGZsdXNocHRyKTsKIAkJfQot CQllbHNlCi0JCXsKLQkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3Bp bkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNu ID0gcmVzdGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJ fQogCiAJCS8qIHByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFzdCBhcyBwb3NzaWJsZSAqLwog CQlSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDIzYmFhNDQ5OGEuLmM0YTQ5NzI2NjkgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0yODY1LDEwICsyODY1LDEyIEBA IFhMb2dTZW5kTG9naWNhbCh2b2lkKQogCSAqIElmIGZpcnN0IHRpbWUgdGhyb3VnaCBpbiB0 aGlzIHNlc3Npb24sIGluaXRpYWxpemUgZmx1c2hQdHIuICBPdGhlcndpc2UsCiAJICogd2Ug b25seSBuZWVkIHRvIHVwZGF0ZSBmbHVzaFB0ciBpZiBFbmRSZWNQdHIgaXMgcGFzdCBpdC4K IAkgKi8KLQlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dSZWNQdHIpCi0JCWZsdXNoUHRy ID0gR2V0Rmx1c2hSZWNQdHIoKTsKLQllbHNlIGlmIChsb2dpY2FsX2RlY29kaW5nX2N0eC0+ cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0JCWZsdXNoUHRyID0gR2V0Rmx1c2hS ZWNQdHIoKTsKKwlpZiAoZmx1c2hQdHIgPT0gSW52YWxpZFhMb2dSZWNQdHIgfHwKKwkJbG9n aWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQorCXsK KwkJZmx1c2hQdHIgPSAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciA/CisJCQkJCUdldFN0YW5k YnlGbHVzaFJlY1B0cigpIDogR2V0Rmx1c2hSZWNQdHIoKSk7CisJfQogCiAJLyogSWYgRW5k UmVjUHRyIGlzIHN0aWxsIHBhc3Qgb3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQg dXAuICovCiAJaWYgKGxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+ PSBmbHVzaFB0cikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCmluZGV4IDc3MTg3YzEyYmUuLjA2YmNkMmZjNTYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL3hsb2cuaApAQCAtMzMzLDYgKzMzMyw3IEBAIGV4dGVybiBTaXplIFhMT0dT aG1lbVNpemUodm9pZCk7CiBleHRlcm4gdm9pZCBYTE9HU2htZW1Jbml0KHZvaWQpOwogZXh0 ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lkKTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vz c0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOworZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdh bExldmVsKHZvaWQpOwogZXh0ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4g dm9pZCBTaHV0ZG93blhMT0coaW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBJ bml0WExPR0FjY2Vzcyh2b2lkKTsKLS0gCjIuMTguNAoK --------------CBE4036E39902411D07DAAFC--