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 1lOxS9-0005Ob-DG for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Mar 2021 06:57:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lOxS8-0001IF-Aq for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Mar 2021 06:57:16 +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 1lOxS7-0001I8-Ou for pgsql-hackers@lists.postgresql.org; Wed, 24 Mar 2021 06:57:16 +0000 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lOxS3-00062U-Rt for pgsql-hackers@postgresql.org; Wed, 24 Mar 2021 06:57:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1616569032; x=1648105032; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=9p5GO7L136KP5OyYyqxpFUrdLyBV6v9mgOGKWGZjVzI=; b=rK09EDCTDFVrNufv67GDAlvwnktGFJ9VanMgsDfs6rY7Ln3GJ6lnmpe0 UZy7wrnNbnAG3W7pxKqbDECZW5TOEoRdKLvrI/gJPRv32vbG4aNq409wP /ZFhidXG58C9rk2u88zKU3e0StRUBeDcVxugykjQl4cPNW0B34tWEXGns 8=; X-Amazon-filename: v14-0005-Doc-changes-describing-details-about-logical-dec.patch, v14-0004-New-TAP-test-for-logical-decoding-on-standby.patch, v14-0003-Handle-logical-slot-conflicts-on-standby.patch, v14-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch, v14-0001-Allow-logical-decoding-on-standby.patch X-IronPort-AV: E=Sophos;i="5.81,274,1610409600"; d="scan'208,223";a="97329358" Received: from iad12-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1d-37fd6b3d.us-east-1.amazon.com) ([10.43.8.6]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 24 Mar 2021 06:57:02 +0000 Received: from EX13D03EUC003.ant.amazon.com (iad12-ws-svc-p26-lb9-vlan2.iad.amazon.com [10.40.163.34]) by email-inbound-relay-1d-37fd6b3d.us-east-1.amazon.com (Postfix) with ESMTPS id BF9572820A4; Wed, 24 Mar 2021 06:56:59 +0000 (UTC) Received: from 38f9d36c4abb.ant.amazon.com (10.43.160.224) by EX13D03EUC003.ant.amazon.com (10.43.164.192) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 24 Mar 2021 06:56:55 +0000 Subject: Re: Minimal logical decoding on standbys 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> <96644a03-0b4d-e0a6-2124-0bc37e5b54fb@amazon.com> From: "Drouvot, Bertrand" Message-ID: <842d60ce-99e6-f35e-8c92-0cd49381326e@amazon.com> Date: Wed, 24 Mar 2021 07:56:51 +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="------------37FFA56EFBA01891C9DCFE79" Content-Language: en-US X-Originating-IP: [10.43.160.224] X-ClientProxiedBy: EX13D14UWC004.ant.amazon.com (10.43.162.99) 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 --------------37FFA56EFBA01891C9DCFE79 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit On 3/23/21 11:05 PM, Fabrízio de Royes Mello wrote: > > > > > done in v13 attached. > > > > All tests passed and everything looks good to me... just a final > minor fix on regression tests: > > diff --git a/src/test/regress/expected/rules.out > b/src/test/regress/expected/rules.out > index b0e17d4e1d..961ec869a6 100644 > --- a/src/test/regress/expected/rules.out > +++ b/src/test/regress/expected/rules.out > @@ -1869,9 +1869,9 @@ pg_stat_database_conflicts| SELECT d.oid AS datid, >      pg_stat_get_db_conflict_tablespace(d.oid) AS confl_tablespace, >      pg_stat_get_db_conflict_lock(d.oid) AS confl_lock, >      pg_stat_get_db_conflict_snapshot(d.oid) AS confl_snapshot, > -    pg_stat_get_db_conflict_logicalslot(d.oid) AS confl_logicalslot, >      pg_stat_get_db_conflict_bufferpin(d.oid) AS confl_bufferpin, > -    pg_stat_get_db_conflict_startup_deadlock(d.oid) AS confl_deadlock > +    pg_stat_get_db_conflict_startup_deadlock(d.oid) AS confl_deadlock, > +    pg_stat_get_db_conflict_logicalslot(d.oid) AS confl_logicalslot >     FROM pg_database d; >  pg_stat_gssapi| SELECT s.pid, >      s.gss_auth AS gss_authenticated, > > We moved "pg_stat_database_conflicts.confl_logicalslot" to the end of > the column list but forgot to change the regression test expected result. Thanks for pointing out, fixed in v14 attached. Bertrand --------------37FFA56EFBA01891C9DCFE79 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v14-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v14-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" RnJvbSA2ZjE1NDhkNzdkZTJiOTE0NWE4Njc4MTZmYjgwYzExNWM2NTliMzk0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyNCBNYXIgMjAyMSAwNjoyNjoxNiArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjE0IDUvNV0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKLS0tCiBkb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwg fCAxOCArKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25z KCspCiAxMDAuMCUgZG9jL3NyYy9zZ21sLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9s b2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dt bAppbmRleCA4MGViOTZkNjA5Li4wNTBiZWZhNTVlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNv ZGluZy5zZ21sCkBAIC0yOTcsNiArMjk3LDI0IEBAIHBvc3RncmVzPSMgc2VsZWN0ICogZnJv bSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEws IE5VCiAgICAgIG1heSBjb25zdW1lIGNoYW5nZXMgZnJvbSBhIHNsb3QgYXQgYW55IGdpdmVu IHRpbWUuCiAgICAgPC9wYXJhPgogCisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBs aWNhdGlvbiBzbG90IGNhbiBhbHNvIGJlIGNyZWF0ZWQgb24gYSBob3Qgc3RhbmRieS4gVG8g cHJldmVudAorICAgICA8Y29tbWFuZD5WQUNVVU08L2NvbW1hbmQ+IGZyb20gcmVtb3Zpbmcg cmVxdWlyZWQgcm93cyBmcm9tIHRoZSBzeXN0ZW0KKyAgICAgY2F0YWxvZ3MsIDx2YXJuYW1l PmhvdF9zdGFuZGJ5X2ZlZWRiYWNrPC92YXJuYW1lPiBzaG91bGQgYmUgc2V0IG9uIHRoZQor ICAgICBzdGFuZGJ5LiBJbiBzcGl0ZSBvZiB0aGF0LCBpZiBhbnkgcmVxdWlyZWQgcm93cyBn ZXQgcmVtb3ZlZCwgdGhlIHNsb3QgZ2V0cworICAgICBkcm9wcGVkLiBFeGlzdGluZyBsb2dp Y2FsIHNsb3RzIG9uIHN0YW5kYnkgYWxzbyBnZXQgZHJvcHBlZCBpZiB3YWxfbGV2ZWwKKyAg ICAgb24gcHJpbWFyeSBpcyByZWR1Y2VkIHRvIGxlc3MgdGhhbiAnbG9naWNhbCcuCisgICAg PC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIEZvciBhIGxvZ2ljYWwgc2xvdCB0byBiZSBj cmVhdGVkLCBpdCBidWlsZHMgYSBoaXN0b3JpYyBzbmFwc2hvdCwgZm9yIHdoaWNoCisgICAg IGluZm9ybWF0aW9uIG9mIGFsbCB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdHJhbnNhY3Rpb25z IGlzIGVzc2VudGlhbC4gT24KKyAgICAgcHJpbWFyeSwgdGhpcyBpbmZvcm1hdGlvbiBpcyBh dmFpbGFibGUsIGJ1dCBvbiBzdGFuZGJ5LCB0aGlzIGluZm9ybWF0aW9uCisgICAgIGhhcyB0 byBiZSBvYnRhaW5lZCBmcm9tIHByaW1hcnkuIFNvLCBzbG90IGNyZWF0aW9uIG1heSB3YWl0 IGZvciBzb21lCisgICAgIGFjdGl2aXR5IHRvIGhhcHBlbiBvbiB0aGUgcHJpbWFyeS4gSWYg dGhlIHByaW1hcnkgaXMgaWRsZSwgY3JlYXRpbmcgYQorICAgICBsb2dpY2FsIHNsb3Qgb24g c3RhbmRieSBtYXkgdGFrZSBhIG5vdGljZWFibGUgdGltZS4KKyAgICA8L3BhcmE+CisKICAg ICA8Y2F1dGlvbj4KICAgICAgPHBhcmE+CiAgICAgICBSZXBsaWNhdGlvbiBzbG90cyBwZXJz aXN0IGFjcm9zcyBjcmFzaGVzIGFuZCBrbm93IG5vdGhpbmcgYWJvdXQgdGhlIHN0YXRlCi0t IAoyLjE4LjQKCg== --------------37FFA56EFBA01891C9DCFE79 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v14-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v14-0004-New-TAP-test-for-logical-decoding-on-standby.patch" RnJvbSBmMjNkNWRiMzk0YjAxMjU1NTA5NzAwMGJkNWJiZjY0ZTVkNDY1NTNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyNCBNYXIgMjAyMSAwNjoyNTozNCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjE0IDQvNV0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpUaGlzIHRlc3Qgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBDcmFpZyBSaW5nZXIs IHRoZW4KZXh0ZW5kZWQvbW9kaWZpZWQgYnkgbWUsIHRvIHRlc3QgdmFyaW91cyBzbG90IGNv bmZsaWN0IHNjZW5hcmlvcy4KCkF1dGhvcnM6IENyYWlnIFJpbmdlciwgQW1pdCBLaGFuZGVr YXIuCi0tLQogc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jlc05vZGUucG0gICAgICAgICAgICAgICAg IHwgIDM3ICsrKwogLi4uL3QvMDI0X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZ194bWlucy5w bCAgIHwgMjcyICsrKysrKysrKysrKysrKysrKwogLi4uLzAyNV9zdGFuZGJ5X2xvZ2ljYWxf ZGVjb2RpbmdfY29uZmxpY3RzLnBsIHwgMjI4ICsrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCA1MzcgaW5zZXJ0aW9ucygrKQogICA1LjglIHNyYy90ZXN0L3BlcmwvCiAgOTQu MSUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bv c3RncmVzTm9kZS5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCmluZGV4IDk3 ZTA1OTkzYmUuLjhhMTA4ZTllMTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZXNOb2RlLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZXNOb2RlLnBtCkBAIC0yMjQ1 LDYgKzIyNDUsNDMgQEAgc3ViIHBnX3JlY3Zsb2dpY2FsX3VwdG8KIAogPXBvZAogCis9aXRl bSAkbm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNlbGYsIG1hc3Rlciwg c2xvdF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qg b24gZ2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90X29u X3N0YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRzbG90X25hbWUsICRkYm5hbWUp ID0gQF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJbXkgJGhhbmRsZTsKKworCSRo YW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRzZWxm LT5jb25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNvZGluZycsICctUycsICRzbG90 X25hbWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJy KTsKKworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQsIHRoZSBzdGFuZGJ5 IGxvb2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwgcmVjb3JkIGZyb20gdGhlIHJl c3RhcnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQgdW50aWwgdGhlIHNsb3QKKwkj IHJlc3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxmLT5wb2xsX3F1ZXJ5X3VudGls KAorCQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNuIElTIE5PVCBOVUxM CisJCUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25h bWUgPSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVkIG91dCB3YWl0aW5nIGZvciBs b2dpY2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7CisKKwkjIE5vdyBh cnJhbmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgZm9yIHdoaWNoIHBnX3Jl Y3Zsb2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+ZmluaXNoKCk7CisKKwlpcygkc2Vs Zi0+c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLCAkc2xvdF9u YW1lIC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBkaWUgImNvdWxkIG5vdCBjcmVh dGUgc2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisKID1iYWNrCiAKID1jdXQKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDI0X3N0YW5kYnlfbG9naWNhbF9kZWNv ZGluZ194bWlucy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDI0X3N0YW5kYnlfbG9naWNh bF9kZWNvZGluZ194bWlucy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi5kNjU0ZDc5NTI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wMjRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX3htaW5zLnBsCkBAIC0wLDAgKzEsMjcy IEBACisjIGxvZ2ljYWwgZGVjb2Rpbmcgb24gYSBzdGFuZGJ5IDogZW5zdXJlIHhtaW5zIGFy ZSBhcHByb3ByaWF0ZWx5IHVwZGF0ZWQKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsK KwordXNlIFBvc3RncmVzTm9kZTsKK3VzZSBUZXN0TGliOwordXNlIFRlc3Q6Ok1vcmUgdGVz dHMgPT4gMjM7Cit1c2UgUmVjdXJzaXZlQ29weTsKK3VzZSBGaWxlOjpDb3B5OwordXNlIFRp bWU6OkhpUmVzIHF3KHVzbGVlcCk7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIs ICRyZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfbWFzdGVyID0gZ2V0X25ld19u b2RlKCdtYXN0ZXInKTsKK215ICRub2RlX3N0YW5kYnkgPSBnZXRfbmV3X25vZGUoJ3N0YW5k YnknKTsKKworIyBOYW1lIGZvciB0aGUgcGh5c2ljYWwgc2xvdCBvbiBtYXN0ZXIKK215ICRt YXN0ZXJfc2xvdG5hbWUgPSAnbWFzdGVyX3BoeXNpY2FsJzsKKyMgTmFtZSBmb3IgdGhlIGxv Z2ljYWwgc2xvdCBvbiBzdGFuZGJ5CitteSAkc3RhbmRieV9zbG90bmFtZSA9ICdzdGFuZGJ5 X2xvZ2ljYWwnOworCisjIEZldGNoIHhtaW4gY29sdW1ucyBmcm9tIHNsb3QncyBwZ19yZXBs aWNhdGlvbl9zbG90cyByb3csIGFmdGVyIHdhaXRpbmcgZm9yCisjIGdpdmVuIGJvb2xlYW4g Y29uZGl0aW9uIHRvIGJlIHRydWUgdG8gZW5zdXJlIHdlJ3ZlIHJlYWNoZWQgYSBxdWllc2Nl bnQgc3RhdGUKK3N1YiB3YWl0X2Zvcl94bWlucworeworCW15ICgkbm9kZSwgJHNsb3RuYW1l LCAkY2hlY2tfZXhwcikgPSBAXzsKKworCSRub2RlLT5wb2xsX3F1ZXJ5X3VudGlsKAorCQkn cG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUICRjaGVja19leHByCisJCUZST00gcGdfY2F0YWxv Zy5wZ19yZXBsaWNhdGlvbl9zbG90cworCQlXSEVSRSBzbG90X25hbWUgPSAnJHNsb3RuYW1l JzsKKwldKSBvciBkaWUgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBzbG90IHhtaW5zIHRvIGFk dmFuY2UiOworfQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXpl IG1hc3RlciBub2RlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfbWFzdGVy LT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gMSwgaGFzX2FyY2hpdmluZyA9PiAxKTsKKyRu b2RlX21hc3Rlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHF7Cit3YWxfbGV2 ZWwgPSAnbG9naWNhbCcKK21heF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKK21heF93YWxfc2Vu ZGVycyA9IDQKK2xvZ19taW5fbWVzc2FnZXMgPSAnZGVidWcyJworbG9nX2Vycm9yX3ZlcmJv c2l0eSA9IHZlcmJvc2UKKyMgdmVyeSBwcm9tcHRseSB0ZXJtaW5hdGUgY29uZmxpY3Rpbmcg YmFja2VuZHMKK21heF9zdGFuZGJ5X3N0cmVhbWluZ19kZWxheSA9ICcycycKK30pOworJG5v ZGVfbWFzdGVyLT5kdW1wX2luZm87Ciskbm9kZV9tYXN0ZXItPnN0YXJ0OworCiskbm9kZV9t YXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtTRUxFQ1QgKiBGUk9NIHBnX2NyZWF0 ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckbWFzdGVyX3Nsb3RuYW1lJyk7XSk7Citt eSAkYmFja3VwX25hbWUgPSAnYjEnOworJG5vZGVfbWFzdGVyLT5iYWNrdXAoJGJhY2t1cF9u YW1lKTsKKworIyBBZnRlciBzbG90IGNyZWF0aW9uLCB4bWlucyBtdXN0IGJlIG51bGwKKyRz bG90ID0gJG5vZGVfbWFzdGVyLT5zbG90KCRtYXN0ZXJfc2xvdG5hbWUpOworaXMoJHNsb3Qt PnsneG1pbid9LCAnJywgInhtaW4gbnVsbCIpOworaXMoJHNsb3QtPnsnY2F0YWxvZ194bWlu J30sICcnLCAiY2F0YWxvZ194bWluIG51bGwiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgSW5pdGlhbGl6ZSBzbGF2ZSBub2RlCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor Ciskbm9kZV9zdGFuZGJ5LT5pbml0X2Zyb21fYmFja3VwKAorCSRub2RlX21hc3RlciwgJGJh Y2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEp OworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXFb cHJpbWFyeV9zbG90X25hbWUgPSAnJG1hc3Rlcl9zbG90bmFtZSddKTsKKyRub2RlX3N0YW5k YnktPnN0YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5k YnksICdyZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgeG1pbi9jYXRhbG9nX3htaW4gdmVyaWZp Y2F0aW9uIGJlZm9yZSBhbmQgYWZ0ZXIgc3RhbmRieS1sb2dpY2FsLXNsb3QgY3JlYXRpb24u CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIFdpdGggaG90X3N0YW5k YnlfZmVlZGJhY2sgb2ZmLCB4bWluIGFuZCBjYXRhbG9nX3htaW4gbXVzdCBzdGlsbCBiZSBu dWxsCiskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKTsKK2lz KCRzbG90LT57J3htaW4nfSwgJycsICJ4bWluIG51bGwgYWZ0ZXIgc3RhbmRieSBqb2luIik7 Citpcygkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwgJycsICJjYXRhbG9nX3htaW4gbnVsbCBh ZnRlciBzdGFuZGJ5IGpvaW4iKTsKKworJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bv c3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KKyMgc2VuZCBz dGF0dXMgcmFwaWRseSBzbyB3ZSBwcm9tcHRseSBhZHZhbmNlIHhtaW4gb24gbWFzdGVyCit3 YWxfcmVjZWl2ZXJfc3RhdHVzX2ludGVydmFsID0gMQorXSk7Ciskbm9kZV9zdGFuZGJ5LT5y ZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50IGJ5IHdhaXRp bmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBtYXN0ZXIuIFdp dGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hvdWxkIGFkdmFuY2UsCisjIGJ1 dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBOVUxMIHNpbmNlIHRoZXJlIGlz IG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRub2RlX21hc3RlciwgJG1hc3Rl cl9zbG90bmFtZSwgInhtaW4gSVMgTk9UIE5VTEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxM Iik7CisKKyMgQ3JlYXRlIG5ldyBzbG90cyBvbiB0aGUgc3RhbmRieSwgaWdub3JpbmcgdGhl IG9uZXMgb24gdGhlIG1hc3RlciBjb21wbGV0ZWx5LgorIworIyBUaGlzIG11c3Qgc3VjY2Vl ZCBzaW5jZSB3ZSBrbm93IHdlIGhhdmUgYSBjYXRhbG9nX3htaW4gcmVzZXJ2YXRpb24uIFdl CisjIG1pZ2h0J3ZlIGFscmVhZHkgc2VudCBob3Qgc3RhbmRieSBmZWVkYmFjayB0byBhZHZh bmNlIG91ciBwaHlzaWNhbCBzbG90J3MKKyMgY2F0YWxvZ194bWluIGJ1dCBub3QgcmVjZWl2 ZWQgdGhlIGNvcnJlc3BvbmRpbmcgeGxvZyBmb3IgdGhlIGNhdGFsb2cgeG1pbgorIyBhZHZh bmNlLCBpbiB3aGljaCBjYXNlIHdlJ2xsIGNyZWF0ZSBhIHNsb3QgdGhhdCBpc24ndCB1c2Fi bGUuIFRoZSBjYWxsaW5nCisjIGFwcGxpY2F0aW9uIGNhbiBwcmV2ZW50IHRoaXMgYnkgY3Jl YXRpbmcgYSB0ZW1wb3Jhcnkgc2xvdCBvbiB0aGUgbWFzdGVyIHRvCisjIGxvY2sgaW4gaXRz IGNhdGFsb2dfeG1pbi4gRm9yIGEgdHJ1bHkgcmFjZS1mcmVlIHNvbHV0aW9uIHdlJ2QgbmVl ZAorIyBtYXN0ZXItdG8tc3RhbmRieSBob3Rfc3RhbmRieV9mZWVkYmFjayByZXBsaWVzLgor IworIyBJbiB0aGlzIGNhc2UgaXQgd29uJ3QgcmFjZSBiZWNhdXNlIHRoZXJlJ3Mgbm8gY29u Y3VycmVudCBhY3Rpdml0eSBvbiB0aGUKKyMgbWFzdGVyLgorIworJG5vZGVfc3RhbmRieS0+ Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KCRub2RlX21hc3RlciwgJHN0YW5kYnlf c2xvdG5hbWUsICdwb3N0Z3JlcycpOworCiskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNo dXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcp KTsKKworIyBOb3cgdGhhdCBzbG90IGlzIGNyZWF0ZWQgb24gc3RhbmRieSwgeG1pbiBhbmQg Y2F0YWxvZ194bWluIHNob3VsZCBiZSBub24gTlVMTAorIyBvbiBib3RoIG1hc3RlciBhbmQg c3RhbmRieS4gQnV0IG9uIG1hc3RlciwgdGhlIHhtaW5zIHdpbGwgYmUgdXBkYXRlZCBvbmx5 CisjIGFmdGVyIGhvdCBzdGFuZGJ5IGZlZWRiYWNrIGlzIHJlY2VpdmVkLgord2FpdF9mb3Jf eG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVyX3Nsb3RuYW1lLCAieG1pbiBJUyBOT1QgTlVM TCBBTkQgY2F0YWxvZ194bWluIElTIE5PVCBOVUxMIik7CisKKyRzbG90ID0gJG5vZGVfc3Rh bmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSk7Citpcygkc2xvdC0+eyd4bWluJ30sICcn LCAibG9naWNhbCB4bWluIG51bGwiKTsKK2lzbnQoJHNsb3QtPnsnY2F0YWxvZ194bWluJ30s ICcnLCAibG9naWNhbCBjYXRhbG9nX3htaW4gbm90IG51bGwiKTsKKworCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBTdGFuZGJ5IGxvZ2ljYWwgc2xvdCBzaG91bGQg YmUgYWJsZSB0byBmZXRjaCB0aGUgdGFibGUgY2hhbmdlcyBldmVuIHdoZW4gdGhlCisjIHRh YmxlIGlzIGRyb3BwZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisk bm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIFRBQkxFIHRlc3Rf dGFibGUoaWQgc2VyaWFsIHByaW1hcnkga2V5LCBibGFoIHRleHQpJyk7Ciskbm9kZV9tYXN0 ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxW0lOU0VSVCBJTlRPIHRlc3RfdGFibGUoYmxh aCkgdmFsdWVzICgnaXR3b3JrcycpXSk7Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAnRFJPUCBUQUJMRSB0ZXN0X3RhYmxlJyk7Ciskbm9kZV9tYXN0ZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAnVkFDVVVNJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3Jf Y2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2Zs dXNoJykpOworCisjIFNob3VsZCBzaG93IHRoZSBpbnNlcnRzIGV2ZW4gd2hlbiB0aGUgdGFi bGUgaXMgZHJvcHBlZCBvbiBtYXN0ZXIKKygkcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRu b2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcXFbU0VMRUNUIGRhdGEgRlJPTSBwZ19s b2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJyRzdGFuZGJ5X3Nsb3RuYW1lJywgTlVMTCwgTlVM TCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScsICdpbmNs dWRlLXRpbWVzdGFtcCcsICcwJyldKTsKK2lzKCRzdGRlcnIsICcnLCAnc3RkZXJyIGlzIGVt cHR5Jyk7CitpcygkcmV0LCAwLCAncmVwbGF5IGZyb20gc2xvdCBzdWNjZWVkZWQnKQorCW9y IGRpZSAnY2Fubm90IGNvbnRpbnVlIGlmIHNsb3QgcmVwbGF5IGZhaWxzJzsKK2lzKCRzdGRv dXQsIHF7QkVHSU4KK3RhYmxlIHB1YmxpYy50ZXN0X3RhYmxlOiBJTlNFUlQ6IGlkW2ludGVn ZXJdOjEgYmxhaFt0ZXh0XTonaXR3b3JrcycKK0NPTU1JVH0sICdyZXBsYXkgcmVzdWx0cyBt YXRjaCcpOworCiskbm9kZV9tYXN0ZXItPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX21hc3Rlci0+bHNuKCdmbHVzaCcpKTsKKworJHNsb3QgPSAk bm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90bmFtZSk7Citpc250KCRzbG90LT57J3ht aW4nfSwgJycsICJwaHlzaWNhbCB4bWluIG5vdCBudWxsIik7CitteSAkc2F2ZWRfcGh5c2lj YWxfY2F0YWxvZ194bWluID0gJHNsb3QtPnsnY2F0YWxvZ194bWluJ307Citpc250KCRzYXZl ZF9waHlzaWNhbF9jYXRhbG9nX3htaW4sICcnLCAicGh5c2ljYWwgY2F0YWxvZ194bWluIG5v dCBudWxsIik7CisKKyRzbG90ID0gJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90 bmFtZSk7Citpcygkc2xvdC0+eyd4bWluJ30sICcnLCAibG9naWNhbCB4bWluIG51bGwiKTsK K215ICRzYXZlZF9sb2dpY2FsX2NhdGFsb2dfeG1pbiA9ICRzbG90LT57J2NhdGFsb2dfeG1p bid9OworaXNudCgkc2F2ZWRfbG9naWNhbF9jYXRhbG9nX3htaW4sICcnLCAibG9naWNhbCBj YXRhbG9nX3htaW4gbm90IG51bGwiKTsKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIyBDYXRhbG9nIHhtaW5zIHNob3VsZCBhZHZhbmNlIGFmdGVyIHN0YW5kYnkg bG9naWNhbCBzbG90IGZldGNoZXMgdGhlIGNoYW5nZXMuCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCisjIElkZWFsbHkgd2UnZCBqdXN0IGhvbGQgY2F0YWxvZ194bWlu LCBidXQgc2luY2UgaHNfZmVlZGJhY2sgY3VycmVudGx5IHVzZXMgdGhlIHNsb3QsCisjIHdl IGhvbGQgZG93biB4bWluLgorJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXFbQ1JFQVRFIFRBQkxFIGNhdGFsb2dfaW5jcmVhc2VfMSgpO10pOworJG5vZGVfbWFzdGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBUQUJMRSB0ZXN0X3RhYmxlKGlkIHNl cmlhbCBwcmltYXJ5IGtleSwgYmxhaCB0ZXh0KScpOworZm9yIG15ICRpICgwIC4uIDIwMDAp Cit7CisgICAgJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXFbSU5TRVJU IElOVE8gdGVzdF90YWJsZShibGFoKSBWQUxVRVMgKCdlbnRyeSAkaScpXSk7Cit9Ciskbm9k ZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcVtDUkVBVEUgVEFCTEUgY2F0YWxv Z19pbmNyZWFzZV8yKCk7XSk7Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnVkFDVVVNJyk7CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9z dGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCitjbXBf b2soJG5vZGVfc3RhbmRieS0+c2xvdCgkc3RhbmRieV9zbG90bmFtZSktPnsnY2F0YWxvZ194 bWluJ30sICI9PSIsCisJICAgJHNhdmVkX2xvZ2ljYWxfY2F0YWxvZ194bWluLAorCSAgICJs b2dpY2FsIHNsb3QgY2F0YWxvZ194bWluIGhhc24ndCBhZHZhbmNlZCBiZWZvcmUgZ2V0X2No YW5nZXMiKTsKKworKCRyZXQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfc3RhbmRieS0+ cHNxbCgncG9zdGdyZXMnLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90 X2dldF9jaGFuZ2VzKCckc3RhbmRieV9zbG90bmFtZScsIE5VTEwsIE5VTEwsICdpbmNsdWRl LXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEnLCAnaW5jbHVkZS10aW1lc3Rh bXAnLCAnMCcpXSk7CitpcygkcmV0LCAwLCAncmVwbGF5IG9mIGJpZyBzZXJpZXMgc3VjY2Vl ZGVkJyk7Citpc250KCRzdGRvdXQsICcnLCAncmVwbGF5ZWQgc29tZSByb3dzJyk7CisKKyRu b2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5Jywg JG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCisjIGxvZ2ljYWwgc2xvdCBjYXRhbG9n X3htaW4gb24gc2xhdmUgc2hvdWxkIGFkdmFuY2UgYWZ0ZXIgcGdfbG9naWNhbF9zbG90X2dl dF9jaGFuZ2VzCit3YWl0X2Zvcl94bWlucygkbm9kZV9zdGFuZGJ5LCAkc3RhbmRieV9zbG90 bmFtZSwKKwkJCSAgICJjYXRhbG9nX3htaW46OnZhcmNoYXI6OmludCA+ICR7c2F2ZWRfbG9n aWNhbF9jYXRhbG9nX3htaW59Iik7Ciskc2xvdCA9ICRub2RlX3N0YW5kYnktPnNsb3QoJHN0 YW5kYnlfc2xvdG5hbWUpOworbXkgJG5ld19sb2dpY2FsX2NhdGFsb2dfeG1pbiA9ICRzbG90 LT57J2NhdGFsb2dfeG1pbid9OworaXMoJHNsb3QtPnsneG1pbid9LCAnJywgImxvZ2ljYWwg eG1pbiBudWxsIik7CisKKyMgaG90IHN0YW5kYnkgZmVlZGJhY2sgc2hvdWxkIGFkdmFuY2Ug bWFzdGVyJ3MgcGh5cyBjYXRhbG9nX3htaW4gbm93IHRoYXQgdGhlCisjIHN0YW5kYnkncyBz bG90IGRvZXNuJ3QgaG9sZCBpdCBkb3duIGFzIGZhci4KKyMgQnV0IG1hc3RlcidzIHBoeXMg Y2F0YWxvZ194bWluIHNob3VsZCBub3QgZ28gcGFzdCB0aGUgc2xhdmUncyBsb2dpY2FsIHNs b3QncworIyBjYXRhbG9nX3htaW4sIGV2ZW4gd2hpbGUgbWFzdGVyJ3MgcGh5cyB4bWluIGFk dmFuY2VzLgorIworIyBGaXJzdCwgbWFrZSBzdXJlIG1hc3RlcidzIHhtaW4gaXMgYWR2YW5j ZWQuIFRoaXMgaGFwcGVucyBvbiBob3Qgc3RhbmRieQorIyBmZWVkYmFjay4gU28gdGhpcyBj aGVjayBmb3IgbWFzdGVyJ3MgeG1pbiBhZHZhbmNlIGFsc28gbWFrZXMgc3VyZSBob3Qgc3Rh bmRieQorIyBmZWVkYmFjayBoYXMgcmVhY2hlZCB0aGUgbWFzdGVyLCB3aGljaCBpcyByZXF1 aXJlZCBmb3IgdGhlIHN1YnNlcXVlbnQKKyMgY2F0YWxvZ194bWluIHRlc3QuCitteSAkdGVt cF9waHlzX3htaW4gPSAkbm9kZV9tYXN0ZXItPnNsb3QoJG1hc3Rlcl9zbG90bmFtZSktPnsn eG1pbid9OworJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NFTEVDVCB0 eGlkX2N1cnJlbnQoKScpOword2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFzdGVyLCAkbWFzdGVy X3Nsb3RuYW1lLAorCQkJICAgInhtaW46OnZhcmNoYXI6OmludCA+ICR7dGVtcF9waHlzX3ht aW59Iik7Ciskc2xvdCA9ICRub2RlX21hc3Rlci0+c2xvdCgkbWFzdGVyX3Nsb3RuYW1lKTsK KyMgTm93IGNoZWNrIHRoYXQgdGhlIG1hc3RlcidzIHBoeXMgY2F0YWxvZ194bWluIGhhcyBh ZHZhbmNlZCBidXQgbm90IGJleW9uZAorIyBzdGFuZGJ5J3MgbG9naWNhbCBjYXRhbG9nX3ht aW4KK2NtcF9vaygkc2xvdC0+eydjYXRhbG9nX3htaW4nfSwgIj4iLCAkc2F2ZWRfcGh5c2lj YWxfY2F0YWxvZ194bWluLAorCSd1cHN0cmVhbSBwaHlzaWNhbCBzbG90IGNhdGFsb2dfeG1p biBoYXMgYWR2YW5jZWQgd2l0aCBoc19mZWVkYmFjayBvbicpOworY21wX29rKCRzbG90LT57 J2NhdGFsb2dfeG1pbid9LCAiPT0iLCAkbmV3X2xvZ2ljYWxfY2F0YWxvZ194bWluLAorCSd1 cHN0cmVhbSBwaHlzaWNhbCBzbG90IGNhdGFsb2dfeG1pbiBub3QgcGFzdCBkb3duc3RyZWFt IGNhdGFsb2dfeG1pbiB3aXRoIGhzX2ZlZWRiYWNrIG9uJyk7CisKKworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIyBVcHN0cmVhbSBvbGRlc3RYaWQgc2hvdWxkIG5vdCBnbyBwYXN0IGRv d25zdHJlYW0gY2F0YWxvZ194bWluCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgRmly c3QgYnVybiBzb21lIHhpZHMgb24gdGhlIG1hc3RlciBpbiBhbm90aGVyIERCLCBzbyB3ZSBw dXNoIHRoZSBtYXN0ZXIncworIyBuZXh0WGlkIGFoZWFkLgorZm9yZWFjaCBteSAkaSAoMSAu LiAxMDApCit7CisJJG5vZGVfbWFzdGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NFTEVD VCB0eGlkX2N1cnJlbnQoKScpOworfQorCisjIEZvcmNlIHZhY3V1bSBmcmVlemUgb24gdGhl IG1hc3RlciBhbmQgZW5zdXJlIGl0cyBvbGRlc3RYbWluIGRvZXNuJ3QgYWR2YW5jZQorIyBw YXN0IG91ciBuZWVkZWQgeG1pbi4gVGhlIG9ubHkgd2F5IHdlIGhhdmUgdmlzaWJpbGl0eSBp bnRvIHRoYXQgaXMgdG8gZm9yY2UKKyMgYSBjaGVja3BvaW50LgorJG5vZGVfbWFzdGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlVQREFURSBwZ19kYXRhYmFzZSBTRVQgZGF0YWxsb3dj b25uID0gdHJ1ZSBXSEVSRSBkYXRuYW1lID0gJ3RlbXBsYXRlMCciKTsKK2ZvcmVhY2ggbXkg JGRibmFtZSAoJ3RlbXBsYXRlMScsICdwb3N0Z3JlcycsICdwb3N0Z3JlcycsICd0ZW1wbGF0 ZTAnKQoreworCSRub2RlX21hc3Rlci0+c2FmZV9wc3FsKCRkYm5hbWUsICdWQUNVVU0gRlJF RVpFJyk7Cit9Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ0hFQ0tQ T0lOVCcpOworSVBDOjpSdW46OnJ1bihbJ3BnX2NvbnRyb2xkYXRhJywgJG5vZGVfbWFzdGVy LT5kYXRhX2RpcigpXSwgJz4nLCBcJHN0ZG91dCkKKwlvciBkaWUgInBnX2NvbnRyb2xkYXRh IGZhaWxlZCB3aXRoICQ/IjsKK215IEBjaGVja3BvaW50ID0gc3BsaXQoJ1xuJywgJHN0ZG91 dCk7CitteSAkb2xkZXN0WGlkID0gJyc7Citmb3JlYWNoIG15ICRsaW5lIChAY2hlY2twb2lu dCkKK3sKKwlpZiAoJGxpbmUgPX4gcXIvXkxhdGVzdCBjaGVja3BvaW50J3Mgb2xkZXN0WElE OlxzKyhcZCspLykKKwl7CisJCSRvbGRlc3RYaWQgPSAkMTsKKwl9Cit9CitkaWUgJ25vIG9s ZGVzdFhJRCBmb3VuZCBpbiBjaGVja3BvaW50JyB1bmxlc3MgJG9sZGVzdFhpZDsKKworY21w X29rKCRvbGRlc3RYaWQsICI8PSIsICRub2RlX3N0YW5kYnktPnNsb3QoJHN0YW5kYnlfc2xv dG5hbWUpLT57J2NhdGFsb2dfeG1pbid9LAorCSAgICd1cHN0cmVhbSBvbGRlc3RYaWQgbm90 IHBhc3QgZG93bnN0cmVhbSBjYXRhbG9nX3htaW4gd2l0aCBoc19mZWVkYmFjayBvbicpOwor Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgcGdfZGF0 YWJhc2UgU0VUIGRhdGFsbG93Y29ubiA9IGZhbHNlIFdIRVJFIGRhdG5hbWUgPSAndGVtcGxh dGUwJyIpOworCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjIERyb3Agc2xvdAorIyBNYWtlIHN1cmUgc3RhbmRieSBzbG90cyBhcmUg ZHJvcHBhYmxlLCBhbmQgcHJvcGVybHkgY2xlYXIgdGhlIHVwc3RyZWFtJ3MgeG1pbgorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaXMo JG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdTSE9XIGhvdF9zdGFuZGJ5 X2ZlZWRiYWNrJyksICdvbicsICdoc19mZWVkYmFjayBpcyBvbicpOworCiskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJyRzdGFuZGJ5X3Nsb3RuYW1lJyldKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgk c3RhbmRieV9zbG90bmFtZSktPnsnc2xvdF90eXBlJ30sICcnLCAnc2xvdCBvbiBzdGFuZGJ5 IGRyb3BwZWQgbWFudWFsbHknKTsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sg c2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4g b24gbWFzdGVyLiBjYXRhbG9nX3htaW4gc2hvdWxkIGJlY29tZSBOVUxMIGJlY2F1c2Ugd2Ug ZHJvcHBlZAorIyB0aGUgbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1pbnMoJG5vZGVfbWFz dGVyLCAkbWFzdGVyX3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTk9UIE5VTEwgQU5EIGNh dGFsb2dfeG1pbiBJUyBOVUxMIik7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90 LzAyNV9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmdfY29uZmxpY3RzLnBsIGIvc3JjL3Rlc3Qv cmVjb3ZlcnkvdC8wMjVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nX2NvbmZsaWN0cy5wbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi40MjZhNDEyYjFmCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMjVfc3RhbmRieV9sb2dpY2Fs X2RlY29kaW5nX2NvbmZsaWN0cy5wbApAQCAtMCwwICsxLDIyOCBAQAorIyBsb2dpY2FsIGRl Y29kaW5nIG9uIGEgc3RhbmRieSA6IHRlc3QgY29uZmxpY3QgcmVjb3Zlcnk7IGFuZCBvdGhl ciB0ZXN0cyB0aGF0CisjIHZlcmlmeSBzbG90cyBnZXQgZHJvcHBlZCBhcyBleHBlY3RlZC4K KwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFBvc3RncmVzTm9kZTsKK3Vz ZSBUZXN0TGliOwordXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gMjY7Cit1c2UgUmVjdXJzaXZl Q29weTsKK3VzZSBGaWxlOjpDb3B5OwordXNlIFRpbWU6OkhpUmVzIHF3KHVzbGVlcCk7CisK K215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRyZXQsICRoYW5kbGUsICRzbG90KTsK KworbXkgJG5vZGVfbWFzdGVyID0gZ2V0X25ld19ub2RlKCdtYXN0ZXInKTsKK215ICRub2Rl X3N0YW5kYnkgPSBnZXRfbmV3X25vZGUoJ3N0YW5kYnknKTsKKworIyBOYW1lIGZvciB0aGUg cGh5c2ljYWwgc2xvdCBvbiBtYXN0ZXIKK215ICRtYXN0ZXJfc2xvdG5hbWUgPSAnbWFzdGVy X3BoeXNpY2FsJzsKKworIyBGZXRjaCB4bWluIGNvbHVtbnMgZnJvbSBzbG90J3MgcGdfcmVw bGljYXRpb25fc2xvdHMgcm93LCBhZnRlciB3YWl0aW5nIGZvcgorIyBnaXZlbiBib29sZWFu IGNvbmRpdGlvbiB0byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2ZSByZWFjaGVkIGEgcXVpZXNj ZW50IHN0YXRlCitzdWIgd2FpdF9mb3JfeG1pbnMKK3sKKwlteSAoJG5vZGUsICRzbG90bmFt ZSwgJGNoZWNrX2V4cHIpID0gQF87CisKKwkkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKKwkJ J3Bvc3RncmVzJywgcXFbCisJCVNFTEVDVCAkY2hlY2tfZXhwcgorCQlGUk9NIHBnX2NhdGFs b2cucGdfcmVwbGljYXRpb25fc2xvdHMKKwkJV0hFUkUgc2xvdF9uYW1lID0gJyRzbG90bmFt ZSc7CisJXSkgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyBmb3Igc2xvdCB4bWlucyB0byBh ZHZhbmNlIjsKK30KKworIyBWZXJpZnkgdGhhdCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 cy5jb25mbF9sb2dpY2Fsc2xvdCBoYXMgYmVlbiB1cGRhdGVkCitzdWIgY2hlY2tfY29uZmxf bG9naWNhbHNsb3QKK3sKKwlvayggJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgK KwkJJ3Bvc3RncmVzJywKKwkJInNlbGVjdCAoY29uZmxfbG9naWNhbHNsb3QgPSAyKSBmcm9t IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIs ICd0JyksCisJCSdjb25mbF9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBv dXQgd2FpdGluZyBjb25mbF9sb2dpY2Fsc2xvdCB0byBiZSB1cGRhdGVkIjsKK30KKworIyBD cmVhdGUgdGhlIHJlcXVpcmVkIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieS4KK3N1YiBjcmVh dGVfbG9naWNhbF9zbG90cworeworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Ns b3Rfb25fc3RhbmRieSgkbm9kZV9tYXN0ZXIsICdkcm9wc2xvdCcsICd0ZXN0ZGInKTsKKwkk bm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFz dGVyLCAnYWN0aXZlc2xvdCcsICd0ZXN0ZGInKTsKK30KKworIyBBY3F1aXJlIG9uZSBvZiB0 aGUgc3RhbmRieSBsb2dpY2FsIHNsb3RzIGNyZWF0ZWQgYnkgY3JlYXRlX2xvZ2ljYWxfc2xv dHMoKQorc3ViIG1ha2Vfc2xvdF9hY3RpdmUKK3sKKwlteSAkc2xvdF91c2VyX2hhbmRsZTsK KworCSMgbWFrZSBzdXJlIGFjdGl2ZXNsb3QgaXMgaW4gdXNlCisJcHJpbnQgInN0YXJ0aW5n IHBnX3JlY3Zsb2dpY2FsXG4iOworCSRzbG90X3VzZXJfaGFuZGxlID0gSVBDOjpSdW46OnN0 YXJ0KFsncGdfcmVjdmxvZ2ljYWwnLCAnLWQnLCAkbm9kZV9zdGFuZGJ5LT5jb25uc3RyKCd0 ZXN0ZGInKSwgJy1TJywgJ2FjdGl2ZXNsb3QnLCAnLWYnLCAnLScsICctLW5vLWxvb3AnLCAn LS1zdGFydCddLCAnPicsIFwkc3Rkb3V0LCAnMj4nLCBcJHN0ZGVycik7CisKKwl3aGlsZSAo ISRub2RlX3N0YW5kYnktPnNsb3QoJ2FjdGl2ZXNsb3QnKS0+eydhY3RpdmVfcGlkJ30pCisJ eworCQl1c2xlZXAoMTAwXzAwMCk7CisJCXByaW50ICJ3YWl0aW5nIGZvciBzbG90IHRvIGJl Y29tZSBhY3RpdmVcbiI7CisJfQorCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsKK30KKwor IyBDaGVjayBpZiBhbGwgdGhlIHNsb3RzIG9uIHN0YW5kYnkgYXJlIGRyb3BwZWQuIFRoZXNl IGluY2x1ZGUgdGhlICdhY3RpdmVzbG90JworIyB0aGF0IHdhcyBhY3F1aXJlZCBieSBtYWtl X3Nsb3RfYWN0aXZlKCksIGFuZCB0aGUgbm9uLWFjdGl2ZSAnZHJvcHNsb3QnLgorc3ViIGNo ZWNrX3Nsb3RzX2Ryb3BwZWQKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisJ bXkgJHJldHVybjsKKworCWlzKCRub2RlX3N0YW5kYnktPnNsb3QoJ2Ryb3BzbG90JyktPnsn c2xvdF90eXBlJ30sICcnLCAnZHJvcHNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMo JG5vZGVfc3RhbmRieS0+c2xvdCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywg J2FjdGl2ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisKKwkjIG91ciBjbGllbnQgc2hv dWxkJ3ZlIHRlcm1pbmF0ZWQgaW4gcmVzcG9uc2UgdG8gdGhlIHdhbHNlbmRlciBlcnJvcgor CWV2YWwgeworCQkkc2xvdF91c2VyX2hhbmRsZS0+ZmluaXNoOworCX07CisJJHJldHVybiA9 ICQ/OworCWNtcF9vaygkcmV0dXJuLCAiIT0iLCAwLCAicGdfcmVjdmxvZ2ljYWwgZXhpdGVk IG5vbi16ZXJvXG4iKTsKKwlpZiAoJHJldHVybikgeworCQlsaWtlKCRzdGRlcnIsIHFyL2Nv bmZsaWN0IHdpdGggcmVjb3ZlcnkvLCAncmVjdmxvZ2ljYWwgcmVjb3ZlcnkgY29uZmxpY3Qn KTsKKwkJbGlrZSgkc3RkZXJyLCBxci9tdXN0IGJlIGRyb3BwZWQvLCAncmVjdmxvZ2ljYWwg ZXJyb3IgZGV0YWlsJyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUgbWFzdGVyIG5vZGUKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCiskbm9kZV9tYXN0ZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAx LCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9z dGdyZXNxbC5jb25mJywgcXsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworbWF4X3JlcGxpY2F0 aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9zZW5kZXJzID0gNAorbG9nX21pbl9tZXNzYWdlcyA9 ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVyYm9zaXR5ID0gdmVyYm9zZQorIyBzZW5kIHN0YXR1 cyByYXBpZGx5IHNvIHdlIHByb21wdGx5IGFkdmFuY2UgeG1pbiBvbiBtYXN0ZXIKK3dhbF9y ZWNlaXZlcl9zdGF0dXNfaW50ZXJ2YWwgPSAxCisjIHZlcnkgcHJvbXB0bHkgdGVybWluYXRl IGNvbmZsaWN0aW5nIGJhY2tlbmRzCittYXhfc3RhbmRieV9zdHJlYW1pbmdfZGVsYXkgPSAn MnMnCit9KTsKKyRub2RlX21hc3Rlci0+ZHVtcF9pbmZvOworJG5vZGVfbWFzdGVyLT5zdGFy dDsKKworJG5vZGVfbWFzdGVyLT5wc3FsKCdwb3N0Z3JlcycsIHFbQ1JFQVRFIERBVEFCQVNF IHRlc3RkYl0pOworCiskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VM RUNUICogRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJG1hc3Rl cl9zbG90bmFtZScpO10pOworbXkgJGJhY2t1cF9uYW1lID0gJ2IxJzsKKyRub2RlX21hc3Rl ci0+YmFja3VwKCRiYWNrdXBfbmFtZSk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IEluaXRpYWxpemUgc2xhdmUgbm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5v ZGVfc3RhbmRieS0+aW5pdF9mcm9tX2JhY2t1cCgKKwkkbm9kZV9tYXN0ZXIsICRiYWNrdXBf bmFtZSwKKwloYXNfc3RyZWFtaW5nID0+IDEsCisJaGFzX3Jlc3RvcmluZyA9PiAxKTsKKyRu b2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAorCXFxW3ByaW1h cnlfc2xvdF9uYW1lID0gJyRtYXN0ZXJfc2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5LT5z dGFydDsKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAn cmVwbGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCisKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFJlY292ZXJ5IGNv bmZsaWN0OiBEcm9wIGNvbmZsaWN0aW5nIHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3Rz CisjIFNjZW5hcmlvIDEgOiBob3Rfc3RhbmRieV9mZWVkYmFjayBvZmYKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2NyZWF0ZV9sb2dp Y2FsX3Nsb3RzKCk7CisKKyMgT25lIHdheSB0byByZXByb2R1Y2UgcmVjb3ZlcnkgY29uZmxp Y3QgaXMgdG8gcnVuIFZBQ1VVTSBGVUxMIHdpdGgKKyMgaG90X3N0YW5kYnlfZmVlZGJhY2sg dHVybmVkIG9mZiBvbiBzbGF2ZS4KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0 Z3Jlc3FsLmNvbmYnLHFbCitob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9k ZV9zdGFuZGJ5LT5yZXN0YXJ0OworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2Zm IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBt YXN0ZXIuIEJvdGggc2hvdWxkIGJlIE5VTEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3 YWl0X2Zvcl94bWlucygkbm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAi eG1pbiBJUyBOVUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0g bWFrZV9zbG90X2FjdGl2ZSgpOworCisjIFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZs aWN0Ciskbm9kZV9tYXN0ZXItPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTSBGVUxMJyk7 CisKKyRub2RlX21hc3Rlci0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVw bGF5JywgJG5vZGVfbWFzdGVyLT5sc24oJ2ZsdXNoJykpOworCitjaGVja19zbG90c19kcm9w cGVkKCRoYW5kbGUpOworCitjaGVja19jb25mbF9sb2dpY2Fsc2xvdCgpOworCisjIFR1cm4g aG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2Nv bmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KK10p OworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVl ZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9n X3htaW4gb24gbWFzdGVyLiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWluIHNo b3VsZCBhZHZhbmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1haW4g TlVMTCBzaW5jZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygk bm9kZV9tYXN0ZXIsICRtYXN0ZXJfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBOT1QgTlVM TCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxpY3Q6IERy b3AgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFy aW8gMiA6IGluY29ycmVjdCB3YWxfbGV2ZWwgYXQgbWFzdGVyCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitjcmVhdGVfbG9naWNhbF9z bG90cygpOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgpOworCisjIE1ha2UgbWFz dGVyIHdhbF9sZXZlbCByZXBsaWNhLiBUaGlzIHdpbGwgdHJpZ2dlciBzbG90IGNvbmZsaWN0 LgorJG5vZGVfbWFzdGVyLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxxWword2Fs X2xldmVsID0gJ3JlcGxpY2EnCitdKTsKKyRub2RlX21hc3Rlci0+cmVzdGFydDsKKworJG5v ZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKK2NoZWNrX3Nsb3RzX2Ryb3BwZWQoJGhh bmRsZSk7CisKK2NoZWNrX2NvbmZsX2xvZ2ljYWxzbG90KCk7CisKKyMgUmVzdG9yZSBtYXN0 ZXIgd2FsX2xldmVsCiskbm9kZV9tYXN0ZXItPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNv bmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK10pOworJG5vZGVfbWFzdGVyLT5yZXN0 YXJ0OworJG5vZGVfbWFzdGVyLT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdy ZXBsYXknLCAkbm9kZV9tYXN0ZXItPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgRFJPUCBEQVRBQkFT RSBzaG91bGQgZHJvcHMgaXQncyBzbG90cywgaW5jbHVkaW5nIGFjdGl2ZSBzbG90cy4KKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Ny ZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgpOwor IyBDcmVhdGUgYSBzbG90IG9uIGEgZGF0YWJhc2UgdGhhdCB3b3VsZCBub3QgYmUgZHJvcHBl ZC4gVGhpcyBzbG90IHNob3VsZCBub3QKKyMgZ2V0IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5 LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfbWFzdGVyLCAnb3RoZXJz bG90JywgJ3Bvc3RncmVzJyk7CisKKyMgZHJvcGRiIG9uIHRoZSBtYXN0ZXIgdG8gdmVyaWZ5 IHNsb3RzIGFyZSBkcm9wcGVkIG9uIHN0YW5kYnkKKyRub2RlX21hc3Rlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHFbRFJPUCBEQVRBQkFTRSB0ZXN0ZGJdKTsKKworJG5vZGVfbWFzdGVy LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9tYXN0 ZXItPmxzbignZmx1c2gnKSk7CisKK2lzKCRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCXFbU0VMRUNUIEVYSVNUUyhTRUxFQ1QgMSBGUk9NIHBnX2RhdGFiYXNlIFdI RVJFIGRhdG5hbWUgPSAndGVzdGRiJyldKSwgJ2YnLAorCSdkYXRhYmFzZSBkcm9wcGVkIG9u IHN0YW5kYnknKTsKKworY2hlY2tfc2xvdHNfZHJvcHBlZCgkaGFuZGxlKTsKKworaXMoJG5v ZGVfc3RhbmRieS0+c2xvdCgnb3RoZXJzbG90JyktPnsnc2xvdF90eXBlJ30sICdsb2dpY2Fs JywKKwknb3RoZXJzbG90IG9uIHN0YW5kYnkgbm90IGRyb3BwZWQnKTsKKworIyBDbGVhbnVw IDogbWFudWFsbHkgZHJvcCB0aGUgc2xvdCB0aGF0IHdhcyBub3QgZHJvcHBlZC4KKyRub2Rl X3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlv bl9zbG90KCdvdGhlcnNsb3QnKV0pOwotLSAKMi4xOC40Cgo= --------------37FFA56EFBA01891C9DCFE79 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v14-0003-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v14-0003-Handle-logical-slot-conflicts-on-standby.patch" RnJvbSBjMDYxZjQ1MmFhNmEyMjEzMDUyZjZhYWY4NTk0ZjQ0OGYwMzc2MjYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyNCBNYXIgMjAyMSAwNjoyNDozMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjE0IDMvNV0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLApkcm9wIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhpbmcgaWYg d2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwgYW5kIHRo ZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJvZHVjZSBh IG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJlY292ZXJ5 LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2dldF9hY3Rpdml0eSBmaWVsZDoKY29uZmxf bG9naWNhbHNsb3QuCgpBbWl0IEtoYW5kZWthciwgcmV2aWV3ZWQgYnkgQW5kcmVzIEZyZXVu ZC4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAgICAgfCAgMTAgKysK IHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgICB8ICAgNCArLQogc3JjL2Jh Y2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMgIHwgICAzICstCiBzcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAgfCAgMTMgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0eGxvZy5jICB8ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9z cGd4bG9nLmMgIHwgICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAg ICB8ICAxNCArKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIHwgICAz ICstCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jICAgICAgfCAgMjIgKysrKwog c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgIHwgMTgzICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMg IHwgICA0ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYyB8ICAgMyAr CiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMgICAgfCAgMTEgKy0KIHNyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICB8ICAyMiArKysrCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYyAgfCAgMTYgKysrCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0ICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvcGdzdGF0LmggICAg ICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCAg ICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmggICAgICAgIHwgICA0ICstCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCAgfCAgIDMgKy0KIDIxIGZpbGVz IGNoYW5nZWQsIDMxNiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKICAgNi4zJSBz cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC8KICAgNi4wJSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS8KICAgNS44JSBzcmMvYmFja2VuZC9hY2Nlc3MvCiAgIDQuOCUgc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci8KICA0OC4zJSBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KICAgNi40JSBz cmMvYmFja2VuZC9zdG9yYWdlL2lwYy8KICAgOC4wJSBzcmMvYmFja2VuZC90Y29wLwogICAz LjElIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC8KICAgNi4zJSBzcmMvaW5jbHVkZS8KCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21v bml0b3Jpbmcuc2dtbAppbmRleCA0M2MwN2RhMjBlLi45YWQ2NjczNjZkIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwKQEAgLTM5ODAsNiArMzk4MCwxNiBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2 ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19zdGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRf ZXZlbnQgaQogICAgICAgIGRlYWRsb2NrcwogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5jb25mbF9sb2dpY2Fsc2xvdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE51bWJlciBvZiBx dWVyaWVzIGluIHRoaXMgZGF0YWJhc2UgdGhhdCBoYXZlIGJlZW4gY2FuY2VsZWQgZHVlIHRv CisgICAgICAgbG9naWNhbCBzbG90cworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwv cm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0eGxvZy5jCmluZGV4IDk3ZDgxNGI5MjcuLmI2YzBkOGIyOTAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtMTk1LDcgKzE5NSw4IEBAIGdp c3RSZWRvRGVsZXRlUmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhMb2dS ZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7CiAKLQkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5sYXRlc3RSZW1vdmVk WGlkLCBybm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs ZGF0YS0+bGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJCQkJeGxkYXRhLT5vbkNhdGFsb2dU YWJsZSwgcm5vZGUpOwogCX0KIAogCWlmIChYTG9nUmVhZEJ1ZmZlckZvclJlZG8ocmVjb3Jk LCAwLCAmYnVmZmVyKSA9PSBCTEtfTkVFRFNfUkVETykKQEAgLTM5NSw2ICszOTYsNyBAQCBn aXN0UmVkb1BhZ2VSZXVzZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKi8KIAlpZiAo SW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1 bGxYaWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkLAorCQkJCQkJCQkJCQkJICAgeGxy ZWMtPm9uQ2F0YWxvZ1RhYmxlLAogCQkJCQkJCQkJCQkJICAgeGxyZWMtPm5vZGUpOwogfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCmluZGV4IDAyZDllNmNkZmQuLmIx ZmY1OTZlYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCkBAIC0xMDAy LDcgKzEwMDIsOCBAQCBoYXNoX3hsb2dfdmFjdXVtX29uZV9wYWdlKFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQlSZWxGaWxlTm9kZSBybm9kZTsKIAogCQlYTG9nUmVjR2V0QmxvY2tU YWcocmVjb3JkLCAwLCAmcm5vZGUsIE5VTEwsIE5VTEwpOwotCQlSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsK KwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5sYXRlc3RS ZW1vdmVkWGlkLAorCQkJCQkJCQkJCQl4bGRhdGEtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7 CiAJfQogCiAJYWN0aW9uID0gWExvZ1JlYWRCdWZmZXJGb3JSZWRvRXh0ZW5kZWQocmVjb3Jk LCAwLCBSQk1fTk9STUFMLCB0cnVlLCAmYnVmZmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtLmMKaW5kZXggYWMwMDRmMTI1OC4uOTAzYjM3YTY0NCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKQEAgLTg1MTIsNyArODUxMiw4IEBAIGhlYXBfeGxvZ19jbGVhbnVwX2lu Zm8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJeGxfaGVhcF9jbGVhbnVwX2luZm8gKnhs cmVjID0gKHhsX2hlYXBfY2xlYW51cF9pbmZvICopIFhMb2dSZWNHZXREYXRhKHJlY29yZCk7 CiAKIAlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhT bmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhpZCwgeGxyZWMtPm5vZGUpOworCQlSZXNv bHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+bGF0ZXN0UmVtb3ZlZFhp ZCwKKwkJCQkJCQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCB4bHJlYy0+bm9kZSk7CiAK IAkvKgogCSAqIEFjdHVhbCBvcGVyYXRpb24gaXMgYSBuby1vcC4gUmVjb3JkIHR5cGUgZXhp c3RzIHRvIHByb3ZpZGUgYSBtZWFucyBmb3IKQEAgLTg1NDgsNyArODU0OSw4IEBAIGhlYXBf eGxvZ19jbGVhbihYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKiBsYXRlc3RSZW1vdmVk WGlkIGlzIGludmFsaWQsIHNraXAgY29uZmxpY3QgcHJvY2Vzc2luZy4KIAkgKi8KIAlpZiAo SW5Ib3RTdGFuZGJ5ICYmIFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHhscmVjLT5sYXRlc3RSZW1v dmVkWGlkKSkKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMt PmxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhscmVj LT5vbkNhdGFsb2dUYWJsZSwgcm5vZGUpOwogCiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGEgZnVs bC1wYWdlIGltYWdlLCByZXN0b3JlIGl0ICh1c2luZyBhIGNsZWFudXAgbG9jaykgYW5kCkBA IC04NjQ0LDcgKzg2NDYsOSBAQCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAkgKiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSB0cmFuc2FjdGlvbiBvdXRy aWdodC4KIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVjb3ZlcnlDb25m bGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+Y3V0b2ZmX3hpZCwgcm5vZGUpOworCQlSZXNvbHZl UmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+Y3V0b2ZmX3hpZCwKKwkJCQkJ CQkJCQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLAorCQkJCQkJCQkJCQlybm9kZSk7CiAKIAkv KgogCSAqIFJlYWQgdGhlIGhlYXAgcGFnZSwgaWYgaXQgc3RpbGwgZXhpc3RzLiBJZiB0aGUg aGVhcCBmaWxlIGhhcyBkcm9wcGVkIG9yCkBAIC04NzgxLDcgKzg3ODUsOCBAQCBoZWFwX3hs b2dfZnJlZXplX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVRyYW5zYWN0aW9u SWRSZXRyZWF0KGxhdGVzdFJlbW92ZWRYaWQpOwogCiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhy ZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7Ci0JCVJlc29sdmVSZWNvdmVyeUNvbmZs aWN0V2l0aFNuYXBzaG90KGxhdGVzdFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJl Y292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhpZCwKKwkJCQkJCQkJ CQkJeGxyZWMtPm9uQ2F0YWxvZ1RhYmxlLCBybm9kZSk7CiAJfQogCiAJaWYgKFhMb2dSZWFk QnVmZmVyRm9yUmVkbyhyZWNvcmQsIDAsICZidWZmZXIpID09IEJMS19ORUVEU19SRURPKQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9nLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwppbmRleCAxNzc5YjZiYTQ3Li4zNmVl MzEzNDI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwpAQCAtNjY5LDcg KzY2OSw4IEBAIGJ0cmVlX3hsb2dfZGVsZXRlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQog CiAJCVhMb2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybm9kZSwgTlVMTCwgTlVMTCk7 CiAKLQkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPmxhdGVz dFJlbW92ZWRYaWQsIHJub2RlKTsKKwkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3QoeGxyZWMtPmxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQkJCXhscmVjLT5vbkNh dGFsb2dUYWJsZSwgcm5vZGUpOwogCX0KIAogCS8qCkBAIC0xMDA3LDYgKzEwMDgsNyBAQCBi dHJlZV94bG9nX3JldXNlX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAlpZiAo SW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1 bGxYaWQoeGxyZWMtPmxhdGVzdFJlbW92ZWRGdWxsWGlkLAorCQkJCQkJCQkJCQkJICAgeGxy ZWMtPm9uQ2F0YWxvZ1RhYmxlLAogCQkJCQkJCQkJCQkJICAgeGxyZWMtPm5vZGUpOwogfQog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jCmluZGV4IGQ0MGM3YjU4NzcuLjFh NWM4OTU5YTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BneGxvZy5jCkBAIC04ODEs NiArODgxLDcgQEAgc3BnUmVkb1ZhY3V1bVJlZGlyZWN0KFhMb2dSZWFkZXJTdGF0ZSAqcmVj b3JkKQogCiAJCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmbm9kZSwgTlVMTCwg TlVMTCk7CiAJCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEt Pm5ld2VzdFJlZGlyZWN0WGlkLAorCQkJCQkJCQkJCQkJeGxkYXRhLT5vbkNhdGFsb2dUYWJs ZSwKIAkJCQkJCQkJCQkJCW5vZGUpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGxvZy5jCmluZGV4IDZhMjFjYmEzNjIuLmM1YjVkNmI2MTAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMKQEAgLTEwMzczLDYgKzEwMzczLDIwIEBAIHhsb2dfcmVkbyhYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVXBkYXRlIG91ciBjb3B5IG9mIHRoZSBwYXJh bWV0ZXJzIGluIHBnX2NvbnRyb2wgKi8KIAkJbWVtY3B5KCZ4bHJlYywgWExvZ1JlY0dldERh dGEocmVjb3JkKSwgc2l6ZW9mKHhsX3BhcmFtZXRlcl9jaGFuZ2UpKTsKIAorCQkvKgorCQkg KiBEcm9wIGxvZ2ljYWwgc2xvdHMgaWYgd2UgYXJlIGluIGhvdCBzdGFuZGJ5IGFuZCB0aGUg cHJpbWFyeSBkb2VzIG5vdAorCQkgKiBoYXZlIGEgV0FMIGxldmVsIHN1ZmZpY2llbnQgZm9y IGxvZ2ljYWwgZGVjb2RpbmcuIE5vIG5lZWQgdG8gc2VhcmNoCisJCSAqIGZvciBwb3RlbnRp YWxseSBjb25mbGljdGluZyBsb2dpY2FsbHkgc2xvdHMgaWYgc3RhbmRieSBpcyBydW5uaW5n CisJCSAqIHdpdGggd2FsX2xldmVsIGxvd2VyIHRoYW4gbG9naWNhbCwgYmVjYXVzZSBpbiB0 aGF0IGNhc2UsIHdlIHdvdWxkCisJCSAqIGhhdmUgZWl0aGVyIGRpc2FsbG93ZWQgY3JlYXRp b24gb2YgbG9naWNhbCBzbG90cyBvciBkcm9wcGVkIGV4aXN0aW5nCisJCSAqIG9uZXMuCisJ CSAqLworCQlpZiAoSW5SZWNvdmVyeSAmJiBJbkhvdFN0YW5kYnkgJiYKKwkJCXhscmVjLndh bF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMICYmCisJCQl3YWxfbGV2ZWwgPj0gV0FMX0xF VkVMX0xPR0lDQUwpCisJCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhMb2dpY2FsU2xv dHMoSW52YWxpZE9pZCwgSW52YWxpZFRyYW5zYWN0aW9uSWQsCisJCQkJZ2V0dGV4dF9ub29w KCJMb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkgcmVxdWlyZXMgd2FsX2xldmVsID49IGxv Z2ljYWwgb24gbWFzdGVyLiIpKTsKKwogCQlMV0xvY2tBY3F1aXJlKENvbnRyb2xGaWxlTG9j aywgTFdfRVhDTFVTSVZFKTsKIAkJQ29udHJvbEZpbGUtPk1heENvbm5lY3Rpb25zID0geGxy ZWMuTWF4Q29ubmVjdGlvbnM7CiAJCUNvbnRyb2xGaWxlLT5tYXhfd29ya2VyX3Byb2Nlc3Nl cyA9IHhscmVjLm1heF93b3JrZXJfcHJvY2Vzc2VzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0 ZW1fdmlld3Muc3FsCmluZGV4IDBkY2E2NWRjN2IuLjBkNmM5ZTY5MjYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTk0Niw3ICs5NDYsOCBAQCBDUkVBVEUg VklFVyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAgICAgICAgICAgcGdfc3Rh dF9nZXRfZGJfY29uZmxpY3RfbG9jayhELm9pZCkgQVMgY29uZmxfbG9jaywKICAgICAgICAg ICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQub2lkKSBBUyBjb25mbF9z bmFwc2hvdCwKICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBp bihELm9pZCkgQVMgY29uZmxfYnVmZmVycGluLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRf ZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxfZGVhZGxvY2sK KyAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2so RC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3RfbG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2xvZ2ljYWxzbG90CiAgICAg RlJPTSBwZ19kYXRhYmFzZSBEOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3VzZXJfZnVuY3Rp b25zIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jIGIv c3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwppbmRleCA2MGY0NWNjYzRlLi4xYzJk NDBmZWZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCisr KyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKQEAgLTQ2MzksNiArNDYzOSwy NCBAQCBwZ3N0YXRfc2VuZF9hcmNoaXZlcihjb25zdCBjaGFyICp4bG9nLCBib29sIGZhaWxl ZCkKIAlwZ3N0YXRfc2VuZCgmbXNnLCBzaXplb2YobXNnKSk7CiB9CiAKKy8qIC0tLS0tLS0t LS0KKyAqIHBnc3RhdF9zZW5kX2Ryb3Bsb2dpY2Fsc2xvdCgpIC0KKyAqCisgKglUZWxsIHRo ZSBjb2xsZWN0b3IgYWJvdXQgYSBsb2dpY2FsIHNsb3QgYmVpbmcgZHJvcHBlZAorICoJZHVl IHRvIGNvbmZsaWN0LgorICogLS0tLS0tLS0tLQorICovCit2b2lkCitwZ3N0YXRfc2VuZF9k cm9wbG9naWNhbHNsb3QoT2lkIGRiT2lkKQoreworCVBnU3RhdF9Nc2dSZWNvdmVyeUNvbmZs aWN0IG1zZzsKKworCXBnc3RhdF9zZXRoZWFkZXIoJm1zZy5tX2hkciwgUEdTVEFUX01UWVBF X1JFQ09WRVJZQ09ORkxJQ1QpOworCW1zZy5tX2RhdGFiYXNlaWQgPSBkYk9pZDsKKwltc2cu bV9yZWFzb24gPSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOworCXBn c3RhdF9zZW5kKCZtc2csIHNpemVvZihtc2cpKTsKK30KKwogLyogLS0tLS0tLS0tLQogICog cGdzdGF0X3NlbmRfYmd3cml0ZXIoKSAtCiAgKgpAQCAtNTExMyw2ICs1MTMxLDcgQEAgcmVz ZXRfZGJlbnRyeV9jb3VudGVycyhQZ1N0YXRfU3RhdERCRW50cnkgKmRiZW50cnkpCiAJZGJl bnRyeS0+bl9jb25mbGljdF90YWJsZXNwYWNlID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0 X2xvY2sgPSAwOwogCWRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3QgPSAwOworCWRiZW50 cnktPm5fY29uZmxpY3RfbG9naWNhbHNsb3QgPSAwOwogCWRiZW50cnktPm5fY29uZmxpY3Rf YnVmZmVycGluID0gMDsKIAlkYmVudHJ5LT5uX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2sg PSAwOwogCWRiZW50cnktPm5fdGVtcF9maWxlcyA9IDA7CkBAIC02OTk2LDYgKzcwMTUsOSBA QCBwZ3N0YXRfcmVjdl9yZWNvdmVyeWNvbmZsaWN0KFBnU3RhdF9Nc2dSZWNvdmVyeUNvbmZs aWN0ICptc2csIGludCBsZW4pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9T TkFQU0hPVDoKIAkJCWRiZW50cnktPm5fY29uZmxpY3Rfc25hcHNob3QrKzsKIAkJCWJyZWFr OworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQlk YmVudHJ5LT5uX2NvbmZsaWN0X2xvZ2ljYWxzbG90Kys7CisJCQlicmVhazsKIAkJY2FzZSBQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0JVRkZFUlBJTjoKIAkJCWRiZW50cnktPm5fY29u ZmxpY3RfYnVmZmVycGluKys7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpp bmRleCAyZWM3MTI3OTQ3Li40OTQ1ZGQxYTRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5j CkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicmVw bGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2xvY2suaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKICNpbmNsdWRlICJz dG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC0x MDMsNiArMTA0LDcgQEAgc3RhdGljIGludCBSZXBsaWNhdGlvblNsb3RBY3F1aXJlSW50ZXJu YWwoUmVwbGljYXRpb25TbG90ICpzbG90LAogCQkJCQkJCQkJCSAgY29uc3QgY2hhciAqbmFt ZSwgU2xvdEFjcXVpcmVCZWhhdmlvciBiZWhhdmlvcik7CiBzdGF0aWMgdm9pZCBSZXBsaWNh dGlvblNsb3REcm9wQWNxdWlyZWQodm9pZCk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNs b3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCk7CitzdGF0aWMgdm9pZCBSZXBsaWNh dGlvblNsb3REcm9wQ29uZmxpY3RpbmcoUmVwbGljYXRpb25TbG90ICpzbG90KTsKIAogLyog aW50ZXJuYWwgcGVyc2lzdGVuY3kgZnVuY3Rpb25zICovCiBzdGF0aWMgdm9pZCBSZXN0b3Jl U2xvdEZyb21EaXNrKGNvbnN0IGNoYXIgKm5hbWUpOwpAQCAtNzE5LDYgKzcyMSw3MCBAQCBS ZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAqc2xvdCkKIAlMV0xvY2tS ZWxlYXNlKFJlcGxpY2F0aW9uU2xvdEFsbG9jYXRpb25Mb2NrKTsKIH0KIAorLyoKKyAqIFBl cm1hbmVudGx5IGRyb3AgYSBjb25mbGljdGluZyByZXBsaWNhdGlvbiBzbG90LiBJZiBpdCdz IGFscmVhZHkgYWN0aXZlIGJ5CisgKiBhbm90aGVyIGJhY2tlbmQsIHNlbmQgaXQgYSByZWNv dmVyeSBjb25mbGljdCBzaWduYWwsIGFuZCB0aGVuIHRyeSBhZ2Fpbi4KKyAqLworc3RhdGlj IHZvaWQKK1JlcGxpY2F0aW9uU2xvdERyb3BDb25mbGljdGluZyhSZXBsaWNhdGlvblNsb3Qg KnNsb3QpCit7CisJcGlkX3QJCWFjdGl2ZV9waWQ7CisJUEdQUk9DCSAgICpwcm9jOworCVZp cnR1YWxUcmFuc2FjdGlvbklkCXZ4aWQ7CisJYm9vbCBpbml0aWFsbHlfbm90X2FjdGl2ZTsK KworCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJnNsb3QtPmFjdGl2ZV9jdik7 CisJaW5pdGlhbGx5X25vdF9hY3RpdmUgPSB0cnVlOworCXdoaWxlICgxKQorCXsKKwkJU3Bp bkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCWFjdGl2ZV9waWQgPSBzbG90LT5hY3Rp dmVfcGlkOworCQlpZiAoYWN0aXZlX3BpZCA9PSAwKQorCQkJYWN0aXZlX3BpZCA9IHNsb3Qt PmFjdGl2ZV9waWQgPSBNeVByb2NQaWQ7CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0 ZXgpOworCisJCS8qIERyb3AgdGhlIGFjcXVpcmVkIHNsb3QsIHVubGVzcyBpdCBpcyBhY3F1 aXJlZCBieSBhbm90aGVyIGJhY2tlbmQgKi8KKwkJaWYgKGFjdGl2ZV9waWQgPT0gTXlQcm9j UGlkKQorCQl7CisJCQllbG9nKERFQlVHMSwgImFjcXVpcmVkIGNvbmZsaWN0aW5nIHNsb3Qs IG5vdyBkcm9wcGluZyBpdCIpOworCQkJaWYgKGluaXRpYWxseV9ub3RfYWN0aXZlKQorCQkJ CXBnc3RhdF9zZW5kX2Ryb3Bsb2dpY2Fsc2xvdChzbG90LT5kYXRhLmRhdGFiYXNlKTsKKwkJ CVJlcGxpY2F0aW9uU2xvdERyb3BQdHIoc2xvdCk7CisJCQlicmVhazsKKwkJfQorCisJCS8q IHNsb3Qgd2FzIGFjdGl2ZSAqLworCQlpbml0aWFsbHlfbm90X2FjdGl2ZSA9IGZhbHNlOwor CisJCS8qIFNlbmQgdGhlIG90aGVyIGJhY2tlbmQsIGEgY29uZmxpY3QgcmVjb3Zlcnkgc2ln bmFsICovCisJCVNldEludmFsaWRWaXJ0dWFsVHJhbnNhY3Rpb25JZCh2eGlkKTsKKwkJTFdM b2NrQWNxdWlyZShQcm9jQXJyYXlMb2NrLCBMV19TSEFSRUQpOworCQlwcm9jID0gQmFja2Vu ZFBpZEdldFByb2NXaXRoTG9jayhhY3RpdmVfcGlkKTsKKwkJaWYgKHByb2MpCisJCQlHRVRf VlhJRF9GUk9NX1BHUFJPQyh2eGlkLCAqcHJvYyk7CisJCUxXTG9ja1JlbGVhc2UoUHJvY0Fy cmF5TG9jayk7CisKKwkJLyoKKwkJICogSWYgY29pbmNpZGVudGx5IHRoYXQgcHJvY2VzcyBm aW5pc2hlZCwgc29tZSBvdGhlciBiYWNrZW5kIG1heQorCQkgKiBhY3F1aXJlIHRoZSBzbG90 IGFnYWluLiBTbyBzdGFydCBvdmVyIGFnYWluLgorCQkgKiBOb3RlOiBFdmVuIGlmIHZ4aWQu bG9jYWxUcmFuc2FjdGlvbklkIGlzIGludmFsaWQsIHdlIG5lZWQgdG8gY2FuY2VsCisJCSAq IHRoYXQgYmFja2VuZCwgYmVjYXVzZSB0aGVyZSBpcyBubyBvdGhlciB3YXkgdG8gbWFrZSBp dCByZWxlYXNlIHRoZQorCQkgKiBzbG90LiBTbyBkb24ndCBib3RoZXIgdG8gdmFsaWRhdGUg dnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQuCisJCSAqLworCQlpZiAodnhpZC5iYWNrZW5kSWQg PT0gSW52YWxpZEJhY2tlbmRJZCkKKwkJCWNvbnRpbnVlOworCisJCWVsb2coREVCVUcxLCAi Y2FuY2VsbGluZyBwaWQgJWQgKGJhY2tlbmRJZDogJWQpIGZvciByZWxlYXNpbmcgc2xvdCIs CisJCQkJCSBhY3RpdmVfcGlkLCB2eGlkLmJhY2tlbmRJZCk7CisKKwkJQ2FuY2VsVmlydHVh bFRyYW5zYWN0aW9uKHZ4aWQsIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNM T1QpOworCQlDb25kaXRpb25WYXJpYWJsZVNsZWVwKCZzbG90LT5hY3RpdmVfY3YsCisJCQkJ CQkJICAgV0FJVF9FVkVOVF9SRVBMSUNBVElPTl9TTE9UX0RST1ApOworCX0KKworCUNvbmRp dGlvblZhcmlhYmxlQ2FuY2VsU2xlZXAoKTsKK30KKwogLyoKICAqIFNlcmlhbGl6ZSB0aGUg Y3VycmVudGx5IGFjcXVpcmVkIHNsb3QncyBzdGF0ZSBmcm9tIG1lbW9yeSB0byBkaXNrLCB0 aGVyZWJ5CiAgKiBndWFyYW50ZWVpbmcgdGhlIGN1cnJlbnQgc3RhdGUgd2lsbCBzdXJ2aXZl IGEgY3Jhc2guCkBAIC0xMTczLDYgKzEyMzksMTIzIEBAIFJlcGxpY2F0aW9uU2xvdFJlc2Vy dmVXYWwodm9pZCkKIAl9CiB9CiAKKy8qCisgKiBSZXNvbHZlIHJlY292ZXJ5IGNvbmZsaWN0 cyB3aXRoIGxvZ2ljYWwgc2xvdHMuCisgKgorICogV2hlbiB4aWQgaXMgdmFsaWQsIGl0IG1l YW5zIHRoYXQgcm93cyBvbGRlciB0aGFuIHhpZCBtaWdodCBoYXZlIGJlZW4KKyAqIHJlbW92 ZWQuIFRoZXJlZm9yZSB3ZSBuZWVkIHRvIGRyb3Agc2xvdHMgdGhhdCBkZXBlbmQgb24gc2Vl aW5nIHRob3NlIHJvd3MuCisgKiBXaGVuIHhpZCBpcyBpbnZhbGlkLCBkcm9wIGFsbCBsb2dp Y2FsIHNsb3RzLiBUaGlzIGlzIHJlcXVpcmVkIHdoZW4gdGhlCisgKiBtYXN0ZXIgd2FsX2xl dmVsIGlzIHNldCBiYWNrIHRvIHJlcGxpY2EsIHNvIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMg bmVlZCB0bworICogYmUgZHJvcHBlZC4gQWxzbywgd2hlbiB4aWQgaXMgaW52YWxpZCwgYSBj b21tb24gJ2NvbmZsaWN0X3JlYXNvbicgaXMKKyAqIHByb3ZpZGVkIGZvciB0aGUgZXJyb3Ig ZGV0YWlsOyBvdGhlcndpc2UgaXQgaXMgTlVMTCwgaW4gd2hpY2ggY2FzZSBpdCBpcworICog Y29uc3RydWN0ZWQgb3V0IG9mIHRoZSB4aWQgdmFsdWUuCisgKi8KK3ZvaWQKK1Jlc29sdmVS ZWNvdmVyeUNvbmZsaWN0V2l0aExvZ2ljYWxTbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0aW9u SWQgeGlkLAorCQkJCQkJCQkJCWNoYXIgKmNvbmZsaWN0X3JlYXNvbikKK3sKKwlpbnQJCQlp OworCWJvb2wJCWZvdW5kX2NvbmZsaWN0ID0gZmFsc2U7CisKKwlBc3NlcnQobWF4X3JlcGxp Y2F0aW9uX3Nsb3RzID49IDApOworCisJaWYgKG1heF9yZXBsaWNhdGlvbl9zbG90cyA9PSAw KQorCQlyZXR1cm47CisKK3Jlc3RhcnQ6CisJaWYgKGZvdW5kX2NvbmZsaWN0KQorCXsKKwkJ Q0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwkJZm91bmRfY29uZmxpY3QgPSBmYWxzZTsKKwl9 CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFS RUQpOworCWZvciAoaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkrKykKKwl7 CisJCVJlcGxpY2F0aW9uU2xvdCAqczsKKworCQlzID0gJlJlcGxpY2F0aW9uU2xvdEN0bC0+ cmVwbGljYXRpb25fc2xvdHNbaV07CisKKwkJLyogY2Fubm90IGNoYW5nZSB3aGlsZSBSZXBs aWNhdGlvblNsb3RDdGxMb2NrIGlzIGhlbGQgKi8KKwkJaWYgKCFzLT5pbl91c2UpCisJCQlj b250aW51ZTsKKworCQkvKiBXZSBhcmUgb25seSBkZWFsaW5nIHdpdGggKmxvZ2ljYWwqIHNs b3QgY29uZmxpY3RzLiAqLworCQlpZiAoIVNsb3RJc0xvZ2ljYWwocykpCisJCQljb250aW51 ZTsKKworCQkvKiBJbnZhbGlkIHhpZCBtZWFucyBjYWxsZXIgaXMgYXNraW5nIHRvIGRyb3Ag YWxsIGxvZ2ljYWwgc2xvdHMgKi8KKwkJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQp KQorCQkJZm91bmRfY29uZmxpY3QgPSB0cnVlOworCQllbHNlCisJCXsKKwkJCVRyYW5zYWN0 aW9uSWQgc2xvdF94bWluOworCQkJVHJhbnNhY3Rpb25JZCBzbG90X2NhdGFsb2dfeG1pbjsK KwkJCVN0cmluZ0luZm9EYXRhCWNvbmZsaWN0X3N0ciwgY29uZmxpY3RfeG1pbnM7CisJCQlj aGFyCSAgICpjb25mbGljdF9zZW50ZW5jZSA9CisJCQkJZ2V0dGV4dF9ub29wKCJTbG90IGNv bmZsaWN0ZWQgd2l0aCB4aWQgaG9yaXpvbiB3aGljaCB3YXMgYmVpbmcgaW5jcmVhc2VkIHRv Iik7CisKKwkJCS8qIG5vdCBvdXIgZGF0YWJhc2UsIHNraXAgKi8KKwkJCWlmIChzLT5kYXRh LmRhdGFiYXNlICE9IEludmFsaWRPaWQgJiYgcy0+ZGF0YS5kYXRhYmFzZSAhPSBkYm9pZCkK KwkJCQljb250aW51ZTsKKworCQkJU3BpbkxvY2tBY3F1aXJlKCZzLT5tdXRleCk7CisJCQlz bG90X3htaW4gPSBzLT5kYXRhLnhtaW47CisJCQlzbG90X2NhdGFsb2dfeG1pbiA9IHMtPmRh dGEuY2F0YWxvZ194bWluOworCQkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJ CS8qCisJCQkgKiBCdWlsZCB0aGUgY29uZmxpY3Rfc3RyIHdoaWNoIHdpbGwgbG9vayBsaWtl IDoKKwkJCSAqICJTbG90IGNvbmZsaWN0ZWQgd2l0aCB4aWQgaG9yaXpvbiB3aGljaCB3YXMg YmVpbmcgaW5jcmVhc2VkCisJCQkgKiB0byA5MDEyIChzbG90IHhtaW46IDEyMzQsIHNsb3Qg Y2F0YWxvZ194bWluOiA1Njc4KS4iCisJCQkgKi8KKwkJCWluaXRTdHJpbmdJbmZvKCZjb25m bGljdF94bWlucyk7CisJCQlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF94bWluKSAm JgorCQkJCVRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfeG1pbiwgeGlkKSkK KwkJCXsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZjb25mbGljdF94bWlucywgInNsb3QgeG1p bjogJWQiLCBzbG90X3htaW4pOworCQkJfQorCQkJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlk KHNsb3RfY2F0YWxvZ194bWluKSAmJgorCQkJCVRyYW5zYWN0aW9uSWRQcmVjZWRlc09yRXF1 YWxzKHNsb3RfY2F0YWxvZ194bWluLCB4aWQpKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJmNv bmZsaWN0X3htaW5zLCAiJXNzbG90IGNhdGFsb2dfeG1pbjogJWQiLAorCQkJCQkJCQkgY29u ZmxpY3RfeG1pbnMubGVuID4gMCA/ICIsICIgOiAiIiwKKwkJCQkJCQkJIHNsb3RfY2F0YWxv Z194bWluKTsKKworCQkJaWYgKGNvbmZsaWN0X3htaW5zLmxlbiA+IDApCisJCQl7CisJCQkJ aW5pdFN0cmluZ0luZm8oJmNvbmZsaWN0X3N0cik7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygm Y29uZmxpY3Rfc3RyLCAiJXMgJWQgKCVzKS4iLAorCQkJCQkJCQkgY29uZmxpY3Rfc2VudGVu Y2UsIHhpZCwgY29uZmxpY3RfeG1pbnMuZGF0YSk7CisJCQkJZm91bmRfY29uZmxpY3QgPSB0 cnVlOworCQkJCWNvbmZsaWN0X3JlYXNvbiA9IGNvbmZsaWN0X3N0ci5kYXRhOworCQkJfQor CQl9CisKKwkJaWYgKGZvdW5kX2NvbmZsaWN0KQorCQl7CisJCQlOYW1lRGF0YQlzbG90bmFt ZTsKKworCQkJU3BpbkxvY2tBY3F1aXJlKCZzLT5tdXRleCk7CisJCQlzbG90bmFtZSA9IHMt PmRhdGEubmFtZTsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOworCisJCQkvKiBS ZXBsaWNhdGlvblNsb3REcm9wQ29uZmxpY3RpbmcoKSB3aWxsIGFjcXVpcmUgdGhlIGxvY2sg YmVsb3cgKi8KKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sp OworCisJCQlSZXBsaWNhdGlvblNsb3REcm9wQ29uZmxpY3Rpbmcocyk7CisKKwkJCWVyZXBv cnQoTE9HLAorCQkJCQkoZXJybXNnKCJkcm9wcGVkIGNvbmZsaWN0aW5nIHNsb3QgJXMiLCBO YW1lU3RyKHNsb3RuYW1lKSksCisJCQkJCSBlcnJkZXRhaWwoIiVzIiwgY29uZmxpY3RfcmVh c29uKSkpOworCisJCQkvKiBXZSByZWxlYXNlZCB0aGUgbG9jayBhYm92ZTsgc28gcmUtc2Nh biB0aGUgc2xvdHMuICovCisJCQlnb3RvIHJlc3RhcnQ7CisJCX0KKwl9CisKKwlMV0xvY2tS ZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKK30KKwogLyoKICAqIE1hcmsg YW55IHNsb3QgdGhhdCBwb2ludHMgdG8gYW4gTFNOIG9sZGVyIHRoYW4gdGhlIGdpdmVuIHNl Z21lbnQKICAqIGFzIGludmFsaWQ7IGl0IHJlcXVpcmVzIFdBTCB0aGF0J3MgYWJvdXQgdG8g YmUgcmVtb3ZlZC4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2Nh cnJheS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMKaW5kZXggNGZj NmZmYjkxNy4uY2QwNDZkZjYxOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvcHJvY2FycmF5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5 LmMKQEAgLTMzNzIsNiArMzM3MiwxMCBAQCBTaWduYWxWaXJ0dWFsVHJhbnNhY3Rpb24oVmly dHVhbFRyYW5zYWN0aW9uSWQgdnhpZCwgUHJvY1NpZ25hbFJlYXNvbiBzaWdtb2RlLAogCiAJ CUdFVF9WWElEX0ZST01fUEdQUk9DKHByb2N2eGlkLCAqcHJvYyk7CiAKKwkJLyoKKwkJICog Tm90ZTogdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQgY2FuIGJlIGludmFsaWQsIHdoaWNoIG1l YW5zIHRoZQorCQkgKiByZXF1ZXN0IGlzIHRvIHNpZ25hbCB0aGUgcGlkIHRoYXQgaXMgbm90 IHJ1bm5pbmcgYSB0cmFuc2FjdGlvbi4KKwkJICovCiAJCWlmIChwcm9jdnhpZC5iYWNrZW5k SWQgPT0gdnhpZC5iYWNrZW5kSWQgJiYKIAkJCXByb2N2eGlkLmxvY2FsVHJhbnNhY3Rpb25J ZCA9PSB2eGlkLmxvY2FsVHJhbnNhY3Rpb25JZCkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvcHJvY3NpZ25hbC5jCmluZGV4IGM2YThkNDYxMWUuLjYzNjQyNzYxYzYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYworKysgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKQEAgLTY2OSw2ICs2NjksOSBAQCBwcm9j c2lnbmFsX3NpZ3VzcjFfaGFuZGxlcihTSUdOQUxfQVJHUykKIAlpZiAoQ2hlY2tQcm9jU2ln bmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QpKQogCQlSZWNvdmVyeUNv bmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QpOwog CisJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lD QUxTTE9UKSkKKwkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX0xPR0lDQUxTTE9UKTsKKwogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLKSkKIAkJUmVjb3ZlcnlDb25m bGljdEludGVycnVwdChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBfREVBRExP Q0spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKaW5kZXggMTdkZTVhNmQwZS4u ODI2MDVjZTk0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRi eS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYwpAQCAtMjMsNiAr MjMsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAibWlz Y2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24v c2xvdC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFn ZS9sbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCkBAIC00MjUsNyArNDI2LDgg QEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoVmlydHVhbFhJRHMoVmlydHVhbFRyYW5z YWN0aW9uSWQgKndhaXRsaXN0LAogfQogCiB2b2lkCi1SZXNvbHZlUmVjb3ZlcnlDb25mbGlj dFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsIFJlbEZpbGVO b2RlIG5vZGUpCitSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2Fj dGlvbklkIGxhdGVzdFJlbW92ZWRYaWQsCisJCQkJCQkJCQlib29sIG9uQ2F0YWxvZ1RhYmxl LCBSZWxGaWxlTm9kZSBub2RlKQogewogCVZpcnR1YWxUcmFuc2FjdGlvbklkICpiYWNrZW5k czsKIApAQCAtNDUwLDYgKzQ1Miw5IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNu YXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwgUmVsRmlsZU5vZGUKIAkJ CQkJCQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAogCQkJCQkJ CQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJCQkJCQkJ CQkJICAgdHJ1ZSk7CisKKwlpZiAob25DYXRhbG9nVGFibGUpCisJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aExvZ2ljYWxTbG90cyhub2RlLmRiTm9kZSwgbGF0ZXN0UmVtb3ZlZFhp ZCwgTlVMTCk7CiB9CiAKIC8qCkBAIC00NTgsNyArNDYzLDcgQEAgUmVzb2x2ZVJlY292ZXJ5 Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkWGlkLCBS ZWxGaWxlTm9kZQogICovCiB2b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZEZ1bGxYaWQsCi0J CQkJCQkJCQkJICAgUmVsRmlsZU5vZGUgbm9kZSkKKwkJCQkJCQkJCQkgICBib29sIG9uQ2F0 YWxvZ1RhYmxlLCBSZWxGaWxlTm9kZSBub2RlKQogewogCS8qCiAJICogUmVzb2x2ZVJlY292 ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qgb3BlcmF0ZXMgb24gMzItYml0IFRyYW5zYWN0aW9u SWRzLApAQCAtNDc2LDcgKzQ4MSw3IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNu YXBzaG90RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBsYXRlc3RSZW1vdmVkRnVsbFhpCiAJ CVRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZDsKIAogCQlsYXRlc3RSZW1vdmVkWGlk ID0gWGlkRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGxhdGVzdFJlbW92ZWRGdWxsWGlkKTsKLQkJ UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QobGF0ZXN0UmVtb3ZlZFhpZCwg bm9kZSk7CisJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KGxhdGVzdFJl bW92ZWRYaWQsIG9uQ2F0YWxvZ1RhYmxlLCBub2RlKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYwppbmRleCAyYjFiNjgxMDlmLi40ODA0NzAwZTIxIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5j CkBAIC0yNDM4LDYgKzI0MzgsOSBAQCBlcnJkZXRhaWxfcmVjb3ZlcnlfY29uZmxpY3Qodm9p ZCkKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJZXJy ZGV0YWlsKCJVc2VyIHF1ZXJ5IG1pZ2h0IGhhdmUgbmVlZGVkIHRvIHNlZSByb3cgdmVyc2lv bnMgdGhhdCBtdXN0IGJlIHJlbW92ZWQuIik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJZXJyZGV0YWlsKCJVc2VyIHdh cyB1c2luZyB0aGUgbG9naWNhbCBzbG90IHRoYXQgbXVzdCBiZSBkcm9wcGVkLiIpOworCQkJ YnJlYWs7CiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURM T0NLOgogCQkJZXJyZGV0YWlsKCJVc2VyIHRyYW5zYWN0aW9uIGNhdXNlZCBidWZmZXIgZGVh ZGxvY2sgd2l0aCByZWNvdmVyeS4iKTsKIAkJCWJyZWFrOwpAQCAtMzAwMCw2ICszMDAzLDI1 IEBAIFJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUHJvY1NpZ25hbFJlYXNvbiByZWFzb24p CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9DSzoKIAkJCWNhc2UgUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFOgogCQkJY2FzZSBQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgorCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJCS8qCisJCQkJICogRm9yIGNvbmZsaWN0cyB0aGF0 IHJlcXVpcmUgYSBsb2dpY2FsIHNsb3QgdG8gYmUgZHJvcHBlZCwgdGhlCisJCQkJICogcmVx dWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwgcmVjZWl2ZXIgdG8gcmVsZWFzZSB0aGUgc2xv dCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxkIGJlIGRyb3BwZWQgYnkgdGhlIHNpZ25hbCBz ZW5kZXIuIFNvIGZvcgorCQkJCSAqIG5vcm1hbCBiYWNrZW5kcywgdGhlIHRyYW5zYWN0aW9u IHNob3VsZCBiZSBhYm9ydGVkLCBqdXN0CisJCQkJICogbGlrZSBmb3Igb3RoZXIgcmVjb3Zl cnkgY29uZmxpY3RzLiBCdXQgaWYgaXQncyB3YWxzZW5kZXIgb24KKwkJCQkgKiBzdGFuZGJ5 LCB0aGVuIGl0IGhhcyB0byBiZSBraWxsZWQgc28gYXMgdG8gcmVsZWFzZSBhbgorCQkJCSAq IGFjcXVpcmVkIGxvZ2ljYWwgc2xvdC4KKwkJCQkgKi8KKwkJCQlpZiAoYW1fY2FzY2FkaW5n X3dhbHNlbmRlciAmJgorCQkJCQlyZWFzb24gPT0gUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9MT0dJQ0FMU0xPVCAmJgorCQkJCQlNeVJlcGxpY2F0aW9uU2xvdCAmJiBTbG90SXNMb2dp Y2FsKE15UmVwbGljYXRpb25TbG90KSkKKwkJCQl7CisJCQkJCVJlY292ZXJ5Q29uZmxpY3RQ ZW5kaW5nID0gdHJ1ZTsKKwkJCQkJUXVlcnlDYW5jZWxQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJ SW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJCQkJCWJyZWFrOworCQkJCX0KIAogCQkJCS8q CiAJCQkJICogSWYgd2UgYXJlbid0IGluIGEgdHJhbnNhY3Rpb24gYW55IGxvbmdlciB0aGVu IGlnbm9yZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5j cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggNTEwMjIy N2E2MC4uMTJlMWUxN2JmYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMK QEAgLTE0OTQsNiArMTQ5NCwyMSBAQCBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hv dChQR19GVU5DVElPTl9BUkdTKQogCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCitE YXR1bQorcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlPaWQJCQlkYmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlpbnQ2NAkJcmVz dWx0OworCVBnU3RhdF9TdGF0REJFbnRyeSAqZGJlbnRyeTsKKworCWlmICgoZGJlbnRyeSA9 IHBnc3RhdF9mZXRjaF9zdGF0X2RiZW50cnkoZGJpZCkpID09IE5VTEwpCisJCXJlc3VsdCA9 IDA7CisJZWxzZQorCQlyZXN1bHQgPSAoaW50NjQpIChkYmVudHJ5LT5uX2NvbmZsaWN0X2xv Z2ljYWxzbG90KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOworfQorCiBEYXR1bQog cGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKFBHX0ZVTkNUSU9OX0FSR1MpCiB7 CkBAIC0xNTM3LDYgKzE1NTIsNyBAQCBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9hbGwoUEdf RlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gKGludDY0KSAoZGJlbnRyeS0+bl9jb25mbGlj dF90YWJsZXNwYWNlICsKIAkJCQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9sb2NrICsKIAkJ CQkJCSAgZGJlbnRyeS0+bl9jb25mbGljdF9zbmFwc2hvdCArCisJCQkJCQkgIGRiZW50cnkt Pm5fY29uZmxpY3RfbG9naWNhbHNsb3QgKwogCQkJCQkJICBkYmVudHJ5LT5uX2NvbmZsaWN0 X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRiZW50cnktPm5fY29uZmxpY3Rfc3RhcnR1cF9kZWFk bG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDQ2NGZhOGQ2MTQuLmI1 ZTkzNmJiZjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTQwOSw2ICs1NDA5 LDExIEBACiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5 cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19z dGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcgfSwKK3sgb2lkID0+ICc0NTQzJywKKyAg ZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFzZSBj YXVzZWQgYnkgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywKKyAgcHJvbmFtZSA9PiAncGdf c3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QnLCBwcm92b2xhdGlsZSA9PiAncycs CisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAnaW50OCcsIHByb2FyZ3R5 cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xv Z2ljYWxzbG90JyB9LAogeyBvaWQgPT4gJzMwNjgnLAogICBkZXNjciA9PiAnc3RhdGlzdGlj czogcmVjb3ZlcnkgY29uZmxpY3RzIGluIGRhdGFiYXNlIGNhdXNlZCBieSBzaGFyZWQgYnVm ZmVyIHBpbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZl cnBpbicsIHByb3ZvbGF0aWxlID0+ICdzJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bn c3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggODc2NzJlNmYzMC4uZDZiOGIz NjA1OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgKKysrIGIvc3JjL2luY2x1 ZGUvcGdzdGF0LmgKQEAgLTcyMCw2ICs3MjAsNyBAQCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRf U3RhdERCRW50cnkKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X3RhYmxlc3BhY2U7CiAJ UGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9sb2NrOwogCVBnU3RhdF9Db3VudGVyIG5fY29u ZmxpY3Rfc25hcHNob3Q7CisJUGdTdGF0X0NvdW50ZXIgbl9jb25mbGljdF9sb2dpY2Fsc2xv dDsKIAlQZ1N0YXRfQ291bnRlciBuX2NvbmZsaWN0X2J1ZmZlcnBpbjsKIAlQZ1N0YXRfQ291 bnRlciBuX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2s7CiAJUGdTdGF0X0NvdW50ZXIgbl90 ZW1wX2ZpbGVzOwpAQCAtMTYwMCw2ICsxNjAxLDcgQEAgZXh0ZXJuIHZvaWQgcGdzdGF0X3R3 b3BoYXNlX3Bvc3RhYm9ydChUcmFuc2FjdGlvbklkIHhpZCwgdWludDE2IGluZm8sCiAJCQkJ CQkJCQkgIHZvaWQgKnJlY2RhdGEsIHVpbnQzMiBsZW4pOwogCiBleHRlcm4gdm9pZCBwZ3N0 YXRfc2VuZF9hcmNoaXZlcihjb25zdCBjaGFyICp4bG9nLCBib29sIGZhaWxlZCk7CitleHRl cm4gdm9pZCBwZ3N0YXRfc2VuZF9kcm9wbG9naWNhbHNsb3QoT2lkIGRiT2lkKTsKIGV4dGVy biB2b2lkIHBnc3RhdF9zZW5kX2Jnd3JpdGVyKHZvaWQpOwogZXh0ZXJuIHZvaWQgcGdzdGF0 X3JlcG9ydF93YWwodm9pZCk7CiBleHRlcm4gYm9vbCBwZ3N0YXRfc2VuZF93YWwoYm9vbCBm b3JjZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggYi9z cmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggMWFkNWU2YzUwZC4uYjZlNWZm ZmY3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCisrKyBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjMyLDQgKzIzMiw2IEBAIGV4 dGVybiB2b2lkIENoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKHZvaWQpOwogCiBleHRlcm4g dm9pZCBDaGVja1Nsb3RSZXF1aXJlbWVudHModm9pZCk7CiAKK2V4dGVybiB2b2lkIFJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aExvZ2ljYWxTbG90cyhPaWQgZGJvaWQsIFRyYW5zYWN0 aW9uSWQgeGlkLCBjaGFyICpyZWFzb24pOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9IICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaCBiL3NyYy9p bmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCmluZGV4IDRhZTdkYzMzYjguLjI3MDM1YjA3 NWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCisrKyBi L3NyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oCkBAIC00MCw2ICs0MCw3IEBAIHR5 cGVkZWYgZW51bQogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfVEFCTEVTUEFDRSwKIAlQ Uk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPQ0ssCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9TTkFQU0hPVCwKKwlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9U LAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfQlVGRkVSUElOLAogCVBST0NTSUdfUkVD T1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSywKIApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aAppbmRleCAzOGZkODVhNDMxLi4zYmExODgyMjE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9zdG9yYWdlL3N0YW5kYnkuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aApAQCAtMzAsOSArMzAsOSBAQCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlv bkVudmlyb25tZW50KHZvaWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5z YWN0aW9uRW52aXJvbm1lbnQodm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KFRyYW5zYWN0aW9uSWQgbGF0ZXN0UmVtb3ZlZFhpZCwK LQkJCQkJCQkJCQkJCVJlbEZpbGVOb2RlIG5vZGUpOworCQkJCQkJCQkJCQkJYm9vbCBvbkNh dGFsb2dUYWJsZSwgUmVsRmlsZU5vZGUgbm9kZSk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgbGF0 ZXN0UmVtb3ZlZEZ1bGxYaWQsCi0JCQkJCQkJCQkJCQkJICAgUmVsRmlsZU5vZGUgbm9kZSk7 CisJCQkJCQkJCQkJCQkJICAgYm9vbCBvbkNhdGFsb2dUYWJsZSwgUmVsRmlsZU5vZGUgbm9k ZSk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhUYWJsZXNwYWNl KE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aERh dGFiYXNlKE9pZCBkYmlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApp bmRleCA5YjEyY2MxMjJhLi45NjFlYzg2OWE2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dApAQCAtMTg3MCw3ICsxODcwLDggQEAgcGdfc3RhdF9kYXRhYmFzZV9jb25m bGljdHN8IFNFTEVDVCBkLm9pZCBBUyBkYXRpZCwKICAgICBwZ19zdGF0X2dldF9kYl9jb25m bGljdF9sb2NrKGQub2lkKSBBUyBjb25mbF9sb2NrLAogICAgIHBnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X3NuYXBzaG90KGQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwKICAgICBwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4oZC5vaWQpIEFTIGNvbmZsX2J1ZmZlcnBpbiwK LSAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFydHVwX2RlYWRsb2NrKGQub2lkKSBB UyBjb25mbF9kZWFkbG9jaworICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBf ZGVhZGxvY2soZC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrLAorICAgIHBnX3N0YXRfZ2V0X2Ri X2NvbmZsaWN0X2xvZ2ljYWxzbG90KGQub2lkKSBBUyBjb25mbF9sb2dpY2Fsc2xvdAogICAg RlJPTSBwZ19kYXRhYmFzZSBkOwogcGdfc3RhdF9nc3NhcGl8IFNFTEVDVCBzLnBpZCwKICAg ICBzLmdzc19hdXRoIEFTIGdzc19hdXRoZW50aWNhdGVkLAotLSAKMi4xOC40Cgo= --------------37FFA56EFBA01891C9DCFE79 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v14-0002-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v14-0002-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" RnJvbSA5MGViZjg2Y2EzODY5ZDA5ZDA0MDhlOGQzMTY1ZDQ5OTc5ODQxYmUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyNCBNYXIgMjAyMSAwNjoyMjozMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjE0IDIvNV0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y 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 YmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jCmluZGV4IDFmZjFiZjgxNmYuLjFjODkw MjhhN2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGlsLmMK 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 Y3V1bWxhenkuYwppbmRleCBlZmU4NzYxNzAyLi41ZjU0ZTMzODNiIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC03NzcsNyArNzc3LDcgQEAgdmFjdXVtX2xv Z19jbGVhbnVwX2luZm8oUmVsYXRpb24gcmVsLCBMVlJlbFN0YXRzICp2YWNyZWxzdGF0cykK IAkgKiBObyBuZWVkIHRvIHdyaXRlIHRoZSByZWNvcmQgYXQgYWxsIHVubGVzcyBpdCBjb250 YWlucyBhIHZhbGlkIHZhbHVlCiAJICovCiAJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHZh Y3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKSkKLQkJKHZvaWQpIGxvZ19oZWFwX2NsZWFu dXBfaW5mbyhyZWwtPnJkX25vZGUsIHZhY3JlbHN0YXRzLT5sYXRlc3RSZW1vdmVkWGlkKTsK KwkJKHZvaWQpIGxvZ19oZWFwX2NsZWFudXBfaW5mbyhyZWwsIHZhY3JlbHN0YXRzLT5sYXRl c3RSZW1vdmVkWGlkKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL3Zpc2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2li aWxpdHltYXAuYwppbmRleCBlMTk4ZGY2NWQ4Li42ZTg5YTA4YzUyIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCkBAIC0yODIsNyArMjgyLDcgQEAgdmlz aWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgaGVhcEJ1ZiwKIAkJCWlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHJlY3B0cikpCiAJCQl7 CiAJCQkJQXNzZXJ0KCFJblJlY292ZXJ5KTsKLQkJCQlyZWNwdHIgPSBsb2dfaGVhcF92aXNp YmxlKHJlbC0+cmRfbm9kZSwgaGVhcEJ1Ziwgdm1CdWYsCisJCQkJcmVjcHRyID0gbG9nX2hl YXBfdmlzaWJsZShyZWwsIGhlYXBCdWYsIHZtQnVmLAogCQkJCQkJCQkJCSAgY3V0b2ZmX3hp ZCwgZmxhZ3MpOwogCiAJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvbmJ0cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMK aW5kZXggZWY0ODY3OWNjMi4uZWJkMzU1MjFiNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv 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 Y2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaAppbmRleCA4ZWVl MWMxYTgzLi4xZGY4OWI1NTlkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yZWwu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMTYsNiArMTYsNyBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3R1cGRlc2MuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgor I2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xh c3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luZGV4LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtMzQ3LDYgKzM0OCw5IEBAIHR5cGVkZWYgc3RydWN0 IFN0ZFJkT3B0aW9ucwogICogUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZQogICoJCVJl dHVybnMgd2hldGhlciB0aGUgcmVsYXRpb24gc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSBjYXRh bG9nIHRhYmxlCiAgKgkJZnJvbSB0aGUgcG92IG9mIGxvZ2ljYWwgZGVjb2RpbmcuICBOb3Rl IG11bHRpcGxlIGV2YWwgb2YgYXJndW1lbnQhCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3Vs ZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vz czsgb3RoZXJ3aXNlIGl0IG1heSBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24uIENoZWNrIHRo ZSBjb21tZW50cworICoJCWluIFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rp bmcoKSBmb3IgZGV0YWlscy4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzVXNlZEFzQ2F0YWxv Z1RhYmxlKHJlbGF0aW9uKQlcCiAJKChyZWxhdGlvbiktPnJkX29wdGlvbnMgJiYgXApAQCAt NjQ3LDYgKzY1MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBQYXJ0aXRpb25lZFRhYmxlUmRPcHRp b25zCiAgKiBSZWxhdGlvbklzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nCiAgKgkJVHJ1 ZSBpZiB3ZSBuZWVkIHRvIGxvZyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gaGF2ZSBhY2Nlc3Mg dmlhCiAgKgkJZGVjb2Rpbmcgc25hcHNob3QuCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3Vs ZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vz cy4gT3RoZXJ3aXNlLCBlLmcuIGxvZ2dpbmcgYSBXQUwgZW50cnkgZm9yIGNhdGFsb2cgcmVs YXRpb24gbWF5CisgKgkJaW52b2tlIHRoaXMgZnVuY3Rpb24sIHdoaWNoIHdpbGwgaW4gdHVy biBkbyBjYXRhbG9nIGFjY2Vzcywgd2hpY2ggbWF5CisgKgkJaW4gdHVybiBjYXVzZSBhbm90 aGVyIHNpbWlsYXIgV0FMIGVudHJ5IHRvIGJlIGxvZ2dlZCwgbGVhZGluZyB0bworICoJCWlu ZmluaXRlIHJlY3Vyc2lvbi4KICAqLwogI2RlZmluZSBSZWxhdGlvbklzQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nKHJlbGF0aW9uKSBcCiAJKFhMb2dMb2dpY2FsSW5mb0FjdGl2ZSgp ICYmIFwKLS0gCjIuMTguNAoK --------------37FFA56EFBA01891C9DCFE79 Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="v14-0001-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v14-0001-Allow-logical-decoding-on-standby.patch" RnJvbSAxYTIxMTYxNTI3NzkwODFkMWUxODUwOGUyMDhkMjFhZGY4NTI0OGFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyNCBNYXIgMjAyMSAwNjoyMTo0NSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjE0IDEvNV0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkFuZHJlcyBGcmV1bmQgYW5kIEFtaXQg S2hhbmRla2FyLgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAg ICAgIHwgMTEgKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMgIHwgMjIgKysrKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xv Z2ljYWwuYyB8IDM3ICsrKysrKysrLS0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v c2xvdC5jICAgICAgICAgICAgfCA1OCArKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgfCAxMCArKy0tCiBzcmMvaW5j bHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8ICAxICsKIDYgZmlsZXMgY2hh bmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCiAgIDUuNiUgc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDUuNyUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC8KICA0Ny43JSBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9nLmMKaW5kZXggNmY4ODEwZTE0OS4uNmEyMWNiYTM2MiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNTA4MCw2ICs1MDgwLDE3IEBAIExvY2Fs UHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVhZENvbnRyb2xGaWxlKCk7CiB9 CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRoZSBjb250cm9sIGZpbGUuIEZv ciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisgKiBjb25zaWRlcmVkIGFzIGl0 cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBiZSBkaWZmZXJlbnQgZnJvbSB3 aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9uIHN0YW5kYnkuCisgKi8KK1dh bExldmVsCitHZXRBY3RpdmVXYWxMZXZlbCh2b2lkKQoreworCXJldHVybiBDb250cm9sRmls ZS0+d2FsX2xldmVsOworfQorCiAvKgogICogSW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1l bW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9k ZWNvZGUuYwppbmRleCA1ZjU5NjEzNWIxLi4yNDY0YzFlZjE3IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTIxNCwxMSArMjE0LDMxIEBAIERl Y29kZVhMb2dPcChMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZm ZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJy ZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVSX0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1l dGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dS ZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKworCQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBv biBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVzcyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJ CSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGluZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcg dXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieSBnZXQgZHJv cHBlZCB3aGVuIHRoaXMgV0FMCisJCQkgKiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0 aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxzIHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMg bm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwgdGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkg KiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9naWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0 aGUgd2FsX2xldmVsCisJCQkgKiBpcyBiZWluZyByZWR1Y2VkLiBIZW5jZSB0aGlzIGV4dHJh IGNoZWNrLgorCQkJICovCisJCQlpZiAoeGxyZWMtPndhbF9sZXZlbCA8IFdBTF9MRVZFTF9M T0dJQ0FMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09C SkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCSBlcnJtc2coImxvZ2lj YWwgZGVjb2Rpbmcgb24gc3RhbmRieSByZXF1aXJlcyAiCisJCQkJCQkJCSJ3YWxfbGV2ZWwg Pj0gbG9naWNhbCBvbiBtYXN0ZXIiKSkpOworCQkJYnJlYWs7CisJCX0KIAkJY2FzZSBYTE9H X05PT1A6CiAJCWNhc2UgWExPR19ORVhUT0lEOgogCQljYXNlIFhMT0dfU1dJVENIOgogCQlj YXNlIFhMT0dfQkFDS1VQX0VORDoKLQkJY2FzZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0U6CiAJ CWNhc2UgWExPR19SRVNUT1JFX1BPSU5UOgogCQljYXNlIFhMT0dfRlBXX0NIQU5HRToKIAkJ Y2FzZSBYTE9HX0ZQSV9GT1JfSElOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9sb2dpY2FsLmMKaW5kZXggMzdiNzVkZWI3Mi4uNTM0ZTI1NjZjZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTExOSwyMyArMTE5 LDIyIEBAIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKHZvaWQpCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJ IGVycm1zZygibG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyBhIGRhdGFiYXNlIGNvbm5lY3Rp b24iKSkpOwogCi0JLyogLS0tLQotCSAqIFRPRE86IFdlIGdvdCB0byBjaGFuZ2UgdGhhdCBz b21lZGF5IHNvb24uLi4KLQkgKgotCSAqIFRoZXJlJ3MgYmFzaWNhbGx5IHRocmVlIHRoaW5n cyBtaXNzaW5nIHRvIGFsbG93IHRoaXM6Ci0JICogMSkgV2UgbmVlZCB0byBiZSBhYmxlIHRv IGNvcnJlY3RseSBhbmQgcXVpY2tseSBpZGVudGlmeSB0aGUgdGltZWxpbmUgYQotCSAqCSAg TFNOIGJlbG9uZ3MgdG8KLQkgKiAyKSBXZSBuZWVkIHRvIGZvcmNlIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHRvIGJlIGVuYWJsZWQgYXQgYWxsIHRpbWVzIHNvCi0JICoJICB0aGUgcHJpbWFy eSBjYW5ub3QgcmVtb3ZlIHJvd3Mgd2UgbmVlZC4KLQkgKiAzKSBzdXBwb3J0IGRyb3BwaW5n IHJlcGxpY2F0aW9uIHNsb3RzIHJlZmVycmluZyB0byBhIGRhdGFiYXNlLCBpbgotCSAqCSAg ZGJhc2VfcmVkby4gVGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2ZSBvbmVzIGR1ZSB0byBIUyBy ZWNvdmVyeQotCSAqCSAgY29uZmxpY3RzLCBzbyB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5 IGVhc3kuCi0JICogLS0tLQotCSAqLwogCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKLQkJ ZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCi0JCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBjYW5ub3QgYmUgdXNlZCB3 aGlsZSBpbiByZWNvdmVyeSIpKSk7CisJeworCQkvKgorCQkgKiBUaGlzIGNoZWNrIG1heSBo YXZlIHJhY2UgY29uZGl0aW9ucywgYnV0IHdoZW5ldmVyCisJCSAqIFhMT0dfUEFSQU1FVEVS X0NIQU5HRSBpbmRpY2F0ZXMgdGhhdCB3YWxfbGV2ZWwgaGFzIGNoYW5nZWQsIHdlCisJCSAq IHZlcmlmeSB0aGF0IHRoZXJlIGFyZSBubyBleGlzdGluZyBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3RzLiBBbmQgdG8KKwkJICogYXZvaWQgcmFjZXMgYXJvdW5kIGNyZWF0aW5nIGEgbmV3 IHNsb3QsCisJCSAqIENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKCkgaXMgY2Fs bGVkIG9uY2UgYmVmb3JlIGNyZWF0aW5nCisJCSAqIHRoZSBzbG90LCBhbmQgb25jZSB3aGVu IGxvZ2ljYWwgZGVjb2RpbmcgaXMgaW5pdGlhbGx5IHN0YXJ0aW5nIHVwLgorCQkgKi8KKwkJ aWYgKEdldEFjdGl2ZVdhbExldmVsKCkgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFV SVNJVEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkgcmVxdWlyZXMgIgorCQkJCQkJCSJ3YWxfbGV2ZWwgPj0gbG9naWNhbCBvbiBtYXN0ZXIi KSkpOworCX0KIH0KIAogLyoKQEAgLTMzMCw2ICszMjksMTIgQEAgQ3JlYXRlSW5pdERlY29k aW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVnaW4sCiAJTG9naWNhbERlY29kaW5nQ29udGV4 dCAqY3R4OwogCU1lbW9yeUNvbnRleHQgb2xkX2NvbnRleHQ7CiAKKwkvKgorCSAqIE9uIHN0 YW5kYnksIHRoaXMgY2hlY2sgaXMgYWxzbyByZXF1aXJlZCB3aGlsZSBjcmVhdGluZyB0aGUg c2xvdC4gQ2hlY2sKKwkgKiB0aGUgY29tbWVudHMgaW4gdGhpcyBmdW5jdGlvbi4KKwkgKi8K KwlDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpOworCiAJLyogc2hvcnRlciBs aW5lcy4uLiAqLwogCXNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vc2xvdC5jCmluZGV4IDc1YTA4N2MyZjkuLjJlYzcxMjc5NDcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90LmMKQEAgLTExMDUsMzcgKzExMDUsNTcgQEAgUmVwbGljYXRpb25TbG90UmVz ZXJ2ZVdhbCh2b2lkKQogCQkvKgogCQkgKiBGb3IgbG9naWNhbCBzbG90cyBsb2cgYSBzdGFu ZGJ5IHNuYXBzaG90IGFuZCBzdGFydCBsb2dpY2FsIGRlY29kaW5nCiAJCSAqIGF0IGV4YWN0 bHkgdGhhdCBwb3NpdGlvbi4gVGhhdCBhbGxvd3MgdGhlIHNsb3QgdG8gc3RhcnQgdXAgbW9y ZQotCQkgKiBxdWlja2x5LgorCQkgKiBxdWlja2x5LiBCdXQgb24gYSBzdGFuZGJ5IHdlIGNh bm5vdCBkbyBXQUwgd3JpdGVzLCBzbyBqdXN0IHVzZSB0aGUKKwkJICogcmVwbGF5IHBvaW50 ZXI7IGVmZmVjdGl2ZWx5LCBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCBv bgorCQkgKiBzdGFuZGJ5IHdpbGwgY2F1c2UgaXQgdG8gd2FpdCBmb3IgYW4geGxfcnVubmlu Z194YWN0IHJlY29yZCB0byBiZQorCQkgKiBsb2dnZWQgaW5kZXBlbmRlbnRseSBvbiB0aGUg cHJpbWFyeSwgc28gdGhhdCBhIHNuYXBzaG90IGNhbiBiZSBidWlsdAorCQkgKiB1c2luZyB0 aGUgcmVjb3JkLgogCQkgKgotCQkgKiBUaGF0J3Mgbm90IG5lZWRlZCAob3IgaW5kZWVkIGhl bHBmdWwpIGZvciBwaHlzaWNhbCBzbG90cyBhcyB0aGV5J2xsCi0JCSAqIHN0YXJ0IHJlcGxh eSBhdCB0aGUgbGFzdCBsb2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQgcmV0dXJu Ci0JCSAqIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBz bGlnaHRseSBpbmNyZWFzZXMKLQkJICogdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0 cnksIGl0J3Mgd2hlcmUgYSBiYXNlIGJhY2t1cCBoYXMgdG8KLQkJICogc3RhcnQgcmVwbGF5 IGF0LgorCQkgKiBOb25lIG9mIHRoaXMgaXMgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkg Zm9yIHBoeXNpY2FsIHNsb3RzIGFzCisJCSAqIHRoZXknbGwgc3RhcnQgcmVwbGF5IGF0IHRo ZSBsYXN0IGxvZ2dlZCBjaGVja3BvaW50IGFueXdheS4gSW5zdGVhZAorCQkgKiByZXR1cm4g dGhlIGxvY2F0aW9uIG9mIHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5 CisJCSAqIGluY3JlYXNlcyB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQn cyB3aGVyZSBhIGJhc2UgYmFja3VwCisJCSAqIGhhcyB0byBzdGFydCByZXBsYXkgYXQuCiAJ CSAqLworCQlpZiAoU2xvdElzUGh5c2ljYWwoc2xvdCkpCisJCQlyZXN0YXJ0X2xzbiA9IEdl dFJlZG9SZWNQdHIoKTsKKwkJZWxzZSBpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCXsK KwkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMKTsKKwkJCS8qCisJ CQkgKiBSZXBsYXkgcG9pbnRlciBtYXkgcG9pbnQgb25lIHBhc3QgdGhlIGVuZCBvZiB0aGUg cmVjb3JkLiBJZiB0aGF0CisJCQkgKiBpcyBhIFhMT0cgcGFnZSBib3VuZGFyeSwgaXQgd2ls bCBub3QgYmUgYSB2YWxpZCBMU04gZm9yIHRoZQorCQkJICogc3RhcnQgb2YgYSByZWNvcmQs IHNvIGJ1bXAgaXQgdXAgcGFzdCB0aGUgcGFnZSBoZWFkZXIuCisJCQkgKi8KKwkJCWlmICgh WFJlY09mZklzVmFsaWQocmVzdGFydF9sc24pKQorCQkJeworCQkJCWlmIChyZXN0YXJ0X2xz biAlIFhMT0dfQkxDS1NaICE9IDApCisJCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHJlcGxh eSBwb2ludGVyIik7CisKKwkJCQkvKiBGb3IgdGhlIGZpcnN0IHBhZ2Ugb2YgYSBzZWdtZW50 IGZpbGUsIGl0J3MgYSBsb25nIGhlYWRlciAqLworCQkJCWlmIChYTG9nU2VnbWVudE9mZnNl dChyZXN0YXJ0X2xzbiwgd2FsX3NlZ21lbnRfc2l6ZSkgPT0gMCkKKwkJCQkJcmVzdGFydF9s c24gKz0gU2l6ZU9mWExvZ0xvbmdQSEQ7CisJCQkJZWxzZQorCQkJCQlyZXN0YXJ0X2xzbiAr PSBTaXplT2ZYTG9nU2hvcnRQSEQ7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJcmVzdGFydF9s c24gPSBHZXRYTG9nSW5zZXJ0UmVjUHRyKCk7CisKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90 LT5tdXRleCk7CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJ U3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKIAkJaWYgKCFSZWNvdmVyeUluUHJv Z3Jlc3MoKSAmJiBTbG90SXNMb2dpY2FsKHNsb3QpKQogCQl7CiAJCQlYTG9nUmVjUHRyCWZs dXNocHRyOwogCi0JCQkvKiBzdGFydCBhdCBjdXJyZW50IGluc2VydCBwb3NpdGlvbiAqLwot CQkJcmVzdGFydF9sc24gPSBHZXRYTG9nSW5zZXJ0UmVjUHRyKCk7Ci0JCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKLQkJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0 YXJ0X2xzbjsKLQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwotCiAJCQkvKiBt YWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gc3RhcnQgKi8KIAkJCWZs dXNocHRyID0gTG9nU3RhbmRieVNuYXBzaG90KCk7CiAKIAkJCS8qIGFuZCBtYWtlIHN1cmUg aXQncyBmc3luY2VkIHRvIGRpc2sgKi8KIAkJCVhMb2dGbHVzaChmbHVzaHB0cik7CiAJCX0K LQkJZWxzZQotCQl7Ci0JCQlyZXN0YXJ0X2xzbiA9IEdldFJlZG9SZWNQdHIoKTsKLQkJCVNw aW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOwotCQkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xz biA9IHJlc3RhcnRfbHNuOwotCQkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7Ci0J CX0KIAogCQkvKiBwcmV2ZW50IFdBTCByZW1vdmFsIGFzIGZhc3QgYXMgcG9zc2libGUgKi8K IAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCAyM2JhYTQ0OThhLi5jNGE0OTcyNjY5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYworKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtMjg2NSwxMCArMjg2NSwxMiBA QCBYTG9nU2VuZExvZ2ljYWwodm9pZCkKIAkgKiBJZiBmaXJzdCB0aW1lIHRocm91Z2ggaW4g dGhpcyBzZXNzaW9uLCBpbml0aWFsaXplIGZsdXNoUHRyLiAgT3RoZXJ3aXNlLAogCSAqIHdl IG9ubHkgbmVlZCB0byB1cGRhdGUgZmx1c2hQdHIgaWYgRW5kUmVjUHRyIGlzIHBhc3QgaXQu CiAJICovCi0JaWYgKGZsdXNoUHRyID09IEludmFsaWRYTG9nUmVjUHRyKQotCQlmbHVzaFB0 ciA9IEdldEZsdXNoUmVjUHRyKCk7Ci0JZWxzZSBpZiAobG9naWNhbF9kZWNvZGluZ19jdHgt PnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQotCQlmbHVzaFB0ciA9IEdldEZsdXNo UmVjUHRyKCk7CisJaWYgKGZsdXNoUHRyID09IEludmFsaWRYTG9nUmVjUHRyIHx8CisJCWxv Z2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKKwl7 CisJCWZsdXNoUHRyID0gKGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgPworCQkJCQlHZXRTdGFu ZGJ5Rmx1c2hSZWNQdHIoKSA6IEdldEZsdXNoUmVjUHRyKCkpOworCX0KIAogCS8qIElmIEVu ZFJlY1B0ciBpcyBzdGlsbCBwYXN0IG91ciBmbHVzaFB0ciwgaXQgbWVhbnMgd2UgY2F1Z2h0 IHVwLiAqLwogCWlmIChsb2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIg Pj0gZmx1c2hQdHIpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oIGIv c3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAppbmRleCA3NzE4N2MxMmJlLi4wNmJjZDJmYzU2 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3NyYy9pbmNs dWRlL2FjY2Vzcy94bG9nLmgKQEAgLTMzMyw2ICszMzMsNyBAQCBleHRlcm4gU2l6ZSBYTE9H U2htZW1TaXplKHZvaWQpOwogZXh0ZXJuIHZvaWQgWExPR1NobWVtSW5pdCh2b2lkKTsKIGV4 dGVybiB2b2lkIEJvb3RTdHJhcFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBMb2NhbFByb2Nl c3NDb250cm9sRmlsZShib29sIHJlc2V0KTsKK2V4dGVybiBXYWxMZXZlbCBHZXRBY3RpdmVX YWxMZXZlbCh2b2lkKTsKIGV4dGVybiB2b2lkIFN0YXJ0dXBYTE9HKHZvaWQpOwogZXh0ZXJu IHZvaWQgU2h1dGRvd25YTE9HKGludCBjb2RlLCBEYXR1bSBhcmcpOwogZXh0ZXJuIHZvaWQg SW5pdFhMT0dBY2Nlc3Modm9pZCk7Ci0tIAoyLjE4LjQKCg== --------------37FFA56EFBA01891C9DCFE79--