Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uJ45k-00G12E-Jn for pgsql-hackers@arkaria.postgresql.org; Sun, 25 May 2025 05:40:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uJ45i-00FfgQ-2A for pgsql-hackers@arkaria.postgresql.org; Sun, 25 May 2025 05:40:09 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uJ45h-00FfZz-Ci for pgsql-hackers@lists.postgresql.org; Sun, 25 May 2025 05:40:09 +0000 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uJ45e-000niy-2C for pgsql-hackers@lists.postgresql.org; Sun, 25 May 2025 05:40:08 +0000 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-af6a315b491so978855a12.1 for ; Sat, 24 May 2025 22:40:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748151606; x=1748756406; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kahVG35thujAyRTaNWeYQEBd+yUoWlo72TEFXl2FRaQ=; b=h6pd7ByIceQK7GBneuKhMEavrWz2qKPTDlq4ZxQUqTSWZq17owx6Ecg7wBB6Edocgt DPdlmB3hrfbSGNMzf/LHpy596yr/ZAzEok/1b8yZXWZc4H66ZSzxPrCbISmlovAMao/V KynrpPf7ieI43cC5WTkqUazQCJw4nPTxeh+PTuORydozjF/xT40ttbQoedVrYC5YzULM PEDVTXRAzQIdw060q0n4JbEZO6OyVRhv09HpxpWZbIb9llvhXNpt1DdUg2CZh+fFP8Gl QxhH1MbuEkDbLlkr6yBWktCeYpK9xg+HEYbhHBBYbVL5e59ysH09LDLjDTNCrs3J2r8B UVhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748151606; x=1748756406; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kahVG35thujAyRTaNWeYQEBd+yUoWlo72TEFXl2FRaQ=; b=XEIMjRxzZJfNJfbRtRIgdSDs6EhmU+lIcZST9iAGwCVaDkXy8Z38cif2E8ufQsX5n1 y4R97fl3ilk59jE870CxtSnb+fmDG8e2cMMI5lJPWjEl+qTlRFpSD/GCHqugL+KXPI1U 74rLHN6frJNPj4iiym8JZOF0lEaSCJO54NOFGWrK6/dQ1Sxlpi4NgNKlZxmZ2rxifFZe 0L+NlOt8qVaMW3IRui5NY8O+q4G4FFOBo4Be/c65XnZqmEWn3xrMS21GvTz0LP6BJitU fA7FeuHmhgYjvN2mSd7mIC4BNZdyqtZcsoXs29KhZ51nTc3/XNMMRHAXWmbA4RMUWEZi ghIA== X-Forwarded-Encrypted: i=1; AJvYcCWoADo4+EqPFCpA3kzqKRP8oMSaxwzyhlBs4aEkQ5HWGRfprp9la92+7A2zz2MH05V0AHbK+j+4NERsY5nW@lists.postgresql.org X-Gm-Message-State: AOJu0YyJxbS/7RperNRsXgbGSOv1c34BV3vSWykFqIGjTTB3MerOPEkk Z1wInJw7uxZicmYM7CHighrtJu3I1Sgupz3IXxVmF/pEgqwGm9eaV6TQsQRc7n67L9dXZX37hXc eLFoCoIOMjfyS9ojzkb+BrO/iBv9axE4= X-Gm-Gg: ASbGnctQ0I6CGfUNFzfAT2PiPOkAJGyml3tT86/bniK/ca3ihPKAr1eOOaFIi4O0kBV G73X0Uz0lRYp7vJHnRNz7d0mPL325iM7R+dzP96+tKquR5HBpPJTu0xYobDiwRg90DDDq4TlPq+ X5cU5lErATjzZPo22ioO+0UMIo7UI4cDBEfLibwpD+gXQYpNVhnJKSjI5+iQ6ig7fc X-Google-Smtp-Source: AGHT+IHvzcc6hzBRuOFfiSfYoWhATQ8+TImHvo8/Chd1kCmfxO3JljVkA/z/Qd/8w6EH0XTbBmDv79Qyc3rOoihGsLs= X-Received: by 2002:a17:90b:4b83:b0:2fe:baa3:b8bc with SMTP id 98e67ed59e1d1-311104b6bdfmr6719622a91.23.1748151605865; Sat, 24 May 2025 22:40:05 -0700 (PDT) MIME-Version: 1.0 References: <3660951.1741016970@sss.pgh.pa.us> In-Reply-To: From: Etsuro Fujita Date: Sun, 25 May 2025 14:39:50 +0900 X-Gm-Features: AX0GCFtJqO0A1XqPISsUEwlT4h1yz3tBxPDym5HIkQhKExh7-06nLQB4lIOzkl0 Message-ID: Subject: =?UTF-8?Q?Re=3A_Options_to_control_remote_transactions=E2=80=99_access?= =?UTF-8?Q?=2Fdeferrable_modes_in_postgres=5Ffdw?= To: Ashutosh Bapat Cc: Tom Lane , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000007b44180635ef4328" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007b44180635ef4328 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, May 8, 2025 at 5:50=E2=80=AFPM Etsuro Fujita wrote: > Attached is an updated version of the patch. Here is a new version of the patch where I added a comment for a new function, fixed indentation, and added the commit message. If there are no objections, I will push this as a master-only fix, as noted in the commit message. Best regards, Etsuro Fujita --0000000000007b44180635ef4328 Content-Type: application/octet-stream; name="v5-0001-postgres_fdw-Inherit-the-local-transaction-s-access-.patch" Content-Disposition: attachment; filename="v5-0001-postgres_fdw-Inherit-the-local-transaction-s-access-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mb38ay1l0 RnJvbSAzMDg5N2E0YmZmNmM2ZDMyMjk5YmRkMmQyYjE0MTNmMmQyYjJkMjU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFdHN1cm8gRnVqaXRhIDxlZnVqaXRhQHBvc3RncmVzcWwub3Jn PgpEYXRlOiBTdW4sIDI1IE1heSAyMDI1IDE0OjE5OjE1ICswOTAwClN1YmplY3Q6IFtQQVRDSF0g cG9zdGdyZXNfZmR3OiBJbmhlcml0IHRoZSBsb2NhbCB0cmFuc2FjdGlvbidzCiBhY2Nlc3MvZGVm ZXJyYWJsZSBtb2Rlcy4KClByZXZpb3VzbHksIHBvc3RncmVzX2ZkdyBhbHdheXMgMSkgb3BlbmVk IGEgcmVtb3RlIHRyYW5zYWN0aW9uIGluIFJFQUQKV1JJVEUgbW9kZSBldmVuIHdoZW4gdGhlIGxv Y2FsIHRyYW5zYWN0aW9uIHdhcyBSRUFEIE9OTFksIGNhdXNpbmcgYSBSRUFECk9OTFkgdHJhbnNh Y3Rpb24gdXNpbmcgaXQgdGhhdCByZWZlcmVuY2VzIGEgZm9yZWlnbiB0YWJsZSBtYXBwZWQgdG8g YQpyZW1vdGUgdmlldyBleGVjdXRpbmcgYSB2b2xhdGlsZSBmdW5jdGlvbiB0byB3cml0ZSBpbiB0 aGUgcmVtb3RlIHNpZGUsCmFuZCAyKSBvcGVuZWQgdGhlIHJlbW90ZSB0cmFuc2FjdGlvbiBpbiBO T1QgREVGRVJSQUJMRSBtb2RlIGV2ZW4gd2hlbgp0aGUgbG9jYWwgdHJhbnNhY3Rpb24gd2FzIERF RkVSUkFCTEUsIGNhdXNpbmcgYSBTRVJJQUxJWkFCTEUgUkVBRCBPTkxZCkRFRkVSUkFCTEUgdHJh bnNhY3Rpb24gdXNpbmcgaXQgdG8gYWJvcnQgZHVlIHRvIGEgc2VyaWFsaXphdGlvbiBmYWlsdXJl CmluIHRoZSByZW1vdGUgc2lkZS4KClRvIGF2b2lkIHRoZXNlLCBtb2RpZnkgcG9zdGdyZXNfZmR3 IHRvIG9wZW4gYSByZW1vdGUgdHJhbnNhY3Rpb24gaW4gdGhlCnNhbWUgYWNjZXNzL2RlZmVycmFi bGUgbW9kZXMgYXMgdGhlIGxvY2FsIHRyYW5zYWN0aW9uLiAgVGhpcyBjb21taXQgYWxzbwptb2Rp ZmllcyBpdCB0byBvcGVuIGEgcmVtb3RlIHN1YnRyYW5zYWN0aW9uIGluIHRoZSBzYW1lIGFjY2Vz cyBtb2RlIGFzCnRoZSBsb2NhbCBzdWJ0cmFuc2FjdGlvbi4KCkFsdGhvdWdoIHRoZXNlIGlzc3Vl cyBleGlzdCBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIHBvc3RncmVzX2ZkdywKdGhlcmUgaGF2 ZSBiZWVuIG5vIHJlcG9ydHMgZnJvbSB0aGUgZmllbGQuICBTbyBpdCBzZWVtcyBmaW5lIHRvIGp1 c3QgZml4CnRoZW0gaW4gbWFzdGVyIG9ubHkuCgpBdXRob3I6IEV0c3VybyBGdWppdGEgPGV0c3Vy by5mdWppdGFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQXNodXRvc2ggQmFwYXQgPGFzaHV0b3No LmJhcGF0Lm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBUb20gTGFuZSA8dGdsQHNzcy5wZ2gu cGEudXM+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FQbUdLMTZuX2hjVVVXdU9k bWVVUyUyQnc0UTZkWnZURURIYiUzRE9QJTNENUpCem8tTTNRbXBRJTQwbWFpbC5nbWFpbC5jb20K LS0tCiBjb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9uLmMgICAgICAgICAgICAgfCAgOTkg KysrKysrKysrKystLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0 ICAgIHwgMTM0ICsrKysrKysrKysrKysrKysrKwogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bv c3RncmVzX2Zkdy5zcWwgICAgIHwgIDc4ICsrKysrKysrKysKIGRvYy9zcmMvc2dtbC9wb3N0Z3Jl cy1mZHcuc2dtbCAgICAgICAgICAgICAgICB8ICAxNSArKwogc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGFjdC5jICAgICAgICAgICAgIHwgIDI4ICsrKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy94 YWN0LmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDM0NyBp bnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L2Nvbm5lY3Rpb24uYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYwpp bmRleCAzMDRmM2MyMGY4My4uY2FmMTQ0NjI2OTYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L2Nvbm5lY3Rpb24uYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9jb25uZWN0aW9u LmMKQEAgLTU4LDYgKzU4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29ubkNhY2hlRW50cnkKIAkvKiBS ZW1haW5pbmcgZmllbGRzIGFyZSBpbnZhbGlkIHdoZW4gY29ubiBpcyBOVUxMOiAqLwogCWludAkJ CXhhY3RfZGVwdGg7CQkvKiAwID0gbm8geGFjdCBvcGVuLCAxID0gbWFpbiB4YWN0IG9wZW4sIDIg PQogCQkJCQkJCQkgKiBvbmUgbGV2ZWwgb2Ygc3VieGFjdCBvcGVuLCBldGMgKi8KKwlib29sCQl4 YWN0X3JlYWRfb25seTsgLyogeGFjdCByL28gc3RhdGUgKi8KIAlib29sCQloYXZlX3ByZXBfc3Rt dDsgLyogaGF2ZSB3ZSBwcmVwYXJlZCBhbnkgc3RtdHMgaW4gdGhpcyB4YWN0PyAqLwogCWJvb2wJ CWhhdmVfZXJyb3I7CQkvKiBoYXZlIGFueSBzdWJ4YWN0cyBhYm9ydGVkIGluIHRoaXMgeGFjdD8g Ki8KIAlib29sCQljaGFuZ2luZ194YWN0X3N0YXRlOwkvKiB4YWN0IHN0YXRlIGNoYW5nZSBpbiBw cm9jZXNzICovCkBAIC04NCw2ICs4NSwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHByZXBfc3Rt dF9udW1iZXIgPSAwOwogLyogdHJhY2tzIHdoZXRoZXIgYW55IHdvcmsgaXMgbmVlZGVkIGluIGNh bGxiYWNrIGZ1bmN0aW9ucyAqLwogc3RhdGljIGJvb2wgeGFjdF9nb3RfY29ubmVjdGlvbiA9IGZh bHNlOwogCisvKgorICogdHJhY2tzIHRoZSBuZXN0aW5nIGxldmVsIG9mIHRoZSB0b3Btb3N0IHJl YWQtb25seSB0cmFuc2FjdGlvbiBkZXRlcm1pbmVkCisgKiBieSBHZXRUb3BSZWFkT25seVRyYW5z YWN0aW9uTmVzdExldmVsKCkKKyAqLworc3RhdGljIGludAl0b3BfcmVhZF9vbmx5X2xldmVsID0g MDsKKwogLyogY3VzdG9tIHdhaXQgZXZlbnQgdmFsdWVzLCByZXRyaWV2ZWQgZnJvbSBzaGFyZWQg bWVtb3J5ICovCiBzdGF0aWMgdWludDMyIHBnZmR3X3dlX2NsZWFudXBfcmVzdWx0ID0gMDsKIHN0 YXRpYyB1aW50MzIgcGdmZHdfd2VfY29ubmVjdCA9IDA7CkBAIC0zNzIsNiArMzc5LDcgQEAgbWFr ZV9uZXdfY29ubmVjdGlvbihDb25uQ2FjaGVFbnRyeSAqZW50cnksIFVzZXJNYXBwaW5nICp1c2Vy KQogCiAJLyogUmVzZXQgYWxsIHRyYW5zaWVudCBzdGF0ZSBmaWVsZHMsIHRvIGJlIHN1cmUgYWxs IGFyZSBjbGVhbiAqLwogCWVudHJ5LT54YWN0X2RlcHRoID0gMDsKKwllbnRyeS0+eGFjdF9yZWFk X29ubHkgPSBmYWxzZTsKIAllbnRyeS0+aGF2ZV9wcmVwX3N0bXQgPSBmYWxzZTsKIAllbnRyeS0+ aGF2ZV9lcnJvciA9IGZhbHNlOwogCWVudHJ5LT5jaGFuZ2luZ194YWN0X3N0YXRlID0gZmFsc2U7 CkBAIC04NDMsMjkgKzg1MSw4MSBAQCBkb19zcWxfY29tbWFuZF9lbmQoUEdjb25uICpjb25uLCBj b25zdCBjaGFyICpzcWwsIGJvb2wgY29uc3VtZV9pbnB1dCkKICAqIHRob3NlIHNjYW5zLiAgQSBk aXNhZHZhbnRhZ2UgaXMgdGhhdCB3ZSBjYW4ndCBwcm92aWRlIHNhbmUgZW11bGF0aW9uIG9mCiAg KiBSRUFEIENPTU1JVFRFRCBiZWhhdmlvciAtLS0gaXQgd291bGQgYmUgbmljZSBpZiB3ZSBoYWQg c29tZSBvdGhlciB3YXkgdG8KICAqIGNvbnRyb2wgd2hpY2ggcmVtb3RlIHF1ZXJpZXMgc2hhcmUg YSBzbmFwc2hvdC4KKyAqCisgKiBOb3RlIGFsc28gdGhhdCB3ZSBhbHdheXMgc3RhcnQgdGhlIHJl bW90ZSB0cmFuc2FjdGlvbiB3aXRoIHRoZSBzYW1lCisgKiByZWFkL3dyaXRlIGFuZCBkZWZlcnJh YmxlIHByb3BlcnRpZXMgYXMgdGhlIGxvY2FsIHRyYW5zYWN0aW9uLCBhbmQgc3RhcnQKKyAqIHRo ZSByZW1vdGUgc3VidHJhbnNhY3Rpb24gd2l0aCB0aGUgc2FtZSByZWFkL3dyaXRlIHByb3BlcnR5 IGFzIHRoZSBsb2NhbAorICogc3VidHJhbnNhY3Rpb24uCiAgKi8KIHN0YXRpYyB2b2lkCiBiZWdp bl9yZW1vdGVfeGFjdChDb25uQ2FjaGVFbnRyeSAqZW50cnkpCiB7CiAJaW50CQkJY3VybGV2ZWwg PSBHZXRDdXJyZW50VHJhbnNhY3Rpb25OZXN0TGV2ZWwoKTsKIAotCS8qIFN0YXJ0IG1haW4gdHJh bnNhY3Rpb24gaWYgd2UgaGF2ZW4ndCB5ZXQgKi8KKwkvKgorCSAqIFNldCB0aGUgbmVzdGluZyBs ZXZlbCBvZiB0aGUgdG9wbW9zdCByZWFkLW9ubHkgdHJhbnNhY3Rpb24gaWYgdGhlCisJICogY3Vy cmVudCB0cmFuc2FjdGlvbiBpcyByZWFkLW9ubHkgYW5kIHdlIGhhdmVuJ3QgeWV0LiAgT25jZSBp dCdzIHNldCwKKwkgKiBpdCdzIHJldGFpbmVkIHVudGlsIHRoYXQgdHJhbnNhY3Rpb24gaXMgY29t bWl0dGVkL2Fib3J0ZWQsIGFuZCB0aGVuCisJICogcmVzZXQgKHNlZSBwZ2Zkd194YWN0X2NhbGxi YWNrIGFuZCBwZ2Zkd19zdWJ4YWN0X2NhbGxiYWNrKS4KKwkgKi8KKwlpZiAoWGFjdFJlYWRPbmx5 KQorCXsKKwkJaWYgKHRvcF9yZWFkX29ubHlfbGV2ZWwgPT0gMCkKKwkJCXRvcF9yZWFkX29ubHlf bGV2ZWwgPSBHZXRUb3BSZWFkT25seVRyYW5zYWN0aW9uTmVzdExldmVsKCk7CisJCUFzc2VydCh0 b3BfcmVhZF9vbmx5X2xldmVsID4gMCk7CisJfQorCWVsc2UKKwkJQXNzZXJ0KHRvcF9yZWFkX29u bHlfbGV2ZWwgPT0gMCk7CisKKwkvKgorCSAqIFN0YXJ0IG1haW4gdHJhbnNhY3Rpb24gaWYgd2Ug aGF2ZW4ndCB5ZXQ7IG90aGVyd2lzZSwgY2hhbmdlIHRoZQorCSAqIGFscmVhZHktc3RhcnRlZCBy ZW1vdGUgdHJhbnNhY3Rpb24vc3VidHJhbnNhY3Rpb24gdG8gcmVhZC1vbmx5IGlmIHRoZQorCSAq IGxvY2FsIHRyYW5zYWN0aW9uL3N1YnRyYW5zYWN0aW9uIGhhdmUgYmVlbiBkb25lIHNvIGFmdGVy IHN0YXJ0aW5nIHRoZW0KKwkgKiBhbmQgd2UgaGF2ZW4ndCB5ZXQuCisJICovCiAJaWYgKGVudHJ5 LT54YWN0X2RlcHRoIDw9IDApCiAJewotCQljb25zdCBjaGFyICpzcWw7CisJCVN0cmluZ0luZm9E YXRhIHNxbDsKKwkJYm9vbAkJcm8gPSAodG9wX3JlYWRfb25seV9sZXZlbCA9PSAxKTsKIAogCQll bG9nKERFQlVHMywgInN0YXJ0aW5nIHJlbW90ZSB0cmFuc2FjdGlvbiBvbiBjb25uZWN0aW9uICVw IiwKIAkJCSBlbnRyeS0+Y29ubik7CiAKKwkJaW5pdFN0cmluZ0luZm8oJnNxbCk7CisJCWFwcGVu ZFN0cmluZ0luZm9TdHJpbmcoJnNxbCwgIlNUQVJUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZF TCAiKTsKIAkJaWYgKElzb2xhdGlvbklzU2VyaWFsaXphYmxlKCkpCi0JCQlzcWwgPSAiU1RBUlQg VFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSI7CisJCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKCZzcWwsICJTRVJJQUxJWkFCTEUiKTsKIAkJZWxzZQotCQkJc3FsID0gIlNU QVJUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQiOworCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAiUkVQRUFUQUJMRSBSRUFEIik7CisJCWlmIChybykK KwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJnNxbCwgIiBSRUFEIE9OTFkiKTsKKwkJaWYgKFhh Y3REZWZlcnJhYmxlKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAiIERFRkVSUkFC TEUiKTsKIAkJZW50cnktPmNoYW5naW5nX3hhY3Rfc3RhdGUgPSB0cnVlOwotCQlkb19zcWxfY29t bWFuZChlbnRyeS0+Y29ubiwgc3FsKTsKKwkJZG9fc3FsX2NvbW1hbmQoZW50cnktPmNvbm4sIHNx bC5kYXRhKTsKIAkJZW50cnktPnhhY3RfZGVwdGggPSAxOworCQlpZiAocm8pCisJCXsKKwkJCUFz c2VydCghZW50cnktPnhhY3RfcmVhZF9vbmx5KTsKKwkJCWVudHJ5LT54YWN0X3JlYWRfb25seSA9 IHRydWU7CisJCX0KIAkJZW50cnktPmNoYW5naW5nX3hhY3Rfc3RhdGUgPSBmYWxzZTsKIAl9CisJ ZWxzZSBpZiAoIWVudHJ5LT54YWN0X3JlYWRfb25seSkKKwl7CisJCUFzc2VydCh0b3BfcmVhZF9v bmx5X2xldmVsID09IDAgfHwKKwkJCSAgIGVudHJ5LT54YWN0X2RlcHRoIDw9IHRvcF9yZWFkX29u bHlfbGV2ZWwpOworCQlpZiAoZW50cnktPnhhY3RfZGVwdGggPT0gdG9wX3JlYWRfb25seV9sZXZl bCkKKwkJeworCQkJZW50cnktPmNoYW5naW5nX3hhY3Rfc3RhdGUgPSB0cnVlOworCQkJZG9fc3Fs X2NvbW1hbmQoZW50cnktPmNvbm4sICJTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb24iKTsK KwkJCWVudHJ5LT54YWN0X3JlYWRfb25seSA9IHRydWU7CisJCQllbnRyeS0+Y2hhbmdpbmdfeGFj dF9zdGF0ZSA9IGZhbHNlOworCQl9CisJfQorCWVsc2UKKwkJQXNzZXJ0KHRvcF9yZWFkX29ubHlf bGV2ZWwgPiAwICYmCisJCQkgICBlbnRyeS0+eGFjdF9kZXB0aCA+PSB0b3BfcmVhZF9vbmx5X2xl dmVsKTsKIAogCS8qCiAJICogSWYgd2UncmUgaW4gYSBzdWJ0cmFuc2FjdGlvbiwgc3RhY2sgdXAg c2F2ZXBvaW50cyB0byBtYXRjaCBvdXIgbGV2ZWwuCkBAIC04NzQsMTIgKzkzNCwyMSBAQCBiZWdp bl9yZW1vdGVfeGFjdChDb25uQ2FjaGVFbnRyeSAqZW50cnkpCiAJICovCiAJd2hpbGUgKGVudHJ5 LT54YWN0X2RlcHRoIDwgY3VybGV2ZWwpCiAJewotCQljaGFyCQlzcWxbNjRdOworCQlTdHJpbmdJ bmZvRGF0YSBzcWw7CisJCWJvb2wJCXJvID0gKGVudHJ5LT54YWN0X2RlcHRoICsgMSA9PSB0b3Bf cmVhZF9vbmx5X2xldmVsKTsKIAotCQlzbnByaW50ZihzcWwsIHNpemVvZihzcWwpLCAiU0FWRVBP SU5UIHMlZCIsIGVudHJ5LT54YWN0X2RlcHRoICsgMSk7CisJCWluaXRTdHJpbmdJbmZvKCZzcWwp OworCQlhcHBlbmRTdHJpbmdJbmZvKCZzcWwsICJTQVZFUE9JTlQgcyVkIiwgZW50cnktPnhhY3Rf ZGVwdGggKyAxKTsKKwkJaWYgKHJvKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmc3FsLCAi OyBTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb24iKTsKIAkJZW50cnktPmNoYW5naW5nX3hh Y3Rfc3RhdGUgPSB0cnVlOwotCQlkb19zcWxfY29tbWFuZChlbnRyeS0+Y29ubiwgc3FsKTsKKwkJ ZG9fc3FsX2NvbW1hbmQoZW50cnktPmNvbm4sIHNxbC5kYXRhKTsKIAkJZW50cnktPnhhY3RfZGVw dGgrKzsKKwkJaWYgKHJvKQorCQl7CisJCQlBc3NlcnQoIWVudHJ5LT54YWN0X3JlYWRfb25seSk7 CisJCQllbnRyeS0+eGFjdF9yZWFkX29ubHkgPSB0cnVlOworCQl9CiAJCWVudHJ5LT5jaGFuZ2lu Z194YWN0X3N0YXRlID0gZmFsc2U7CiAJfQogfQpAQCAtMTE3NCw2ICsxMjQzLDkgQEAgcGdmZHdf eGFjdF9jYWxsYmFjayhYYWN0RXZlbnQgZXZlbnQsIHZvaWQgKmFyZykKIAogCS8qIEFsc28gcmVz ZXQgY3Vyc29yIG51bWJlcmluZyBmb3IgbmV4dCB0cmFuc2FjdGlvbiAqLwogCWN1cnNvcl9udW1i ZXIgPSAwOworCisJLyogTGlrZXdpc2UgZm9yIHRvcF9yZWFkX29ubHlfbGV2ZWwgKi8KKwl0b3Bf cmVhZF9vbmx5X2xldmVsID0gMDsKIH0KIAogLyoKQEAgLTEyNzIsNiArMTM0NCwxMCBAQCBwZ2Zk d19zdWJ4YWN0X2NhbGxiYWNrKFN1YlhhY3RFdmVudCBldmVudCwgU3ViVHJhbnNhY3Rpb25JZCBt eVN1YmlkLAogCQkJCQkJCQkJICAgZmFsc2UpOwogCQl9CiAJfQorCisJLyogSWYgaW4gdGhlIHRv cG1vc3QgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLCByZXNldCB0b3BfcmVhZF9vbmx5X2xldmVsICov CisJaWYgKGN1cmxldmVsID09IHRvcF9yZWFkX29ubHlfbGV2ZWwpCisJCXRvcF9yZWFkX29ubHlf bGV2ZWwgPSAwOwogfQogCiAvKgpAQCAtMTM3NCw2ICsxNDUwLDkgQEAgcGdmZHdfcmVzZXRfeGFj dF9zdGF0ZShDb25uQ2FjaGVFbnRyeSAqZW50cnksIGJvb2wgdG9wbGV2ZWwpCiAJCS8qIFJlc2V0 IHN0YXRlIHRvIHNob3cgd2UncmUgb3V0IG9mIGEgdHJhbnNhY3Rpb24gKi8KIAkJZW50cnktPnhh Y3RfZGVwdGggPSAwOwogCisJCS8qIFJlc2V0IHhhY3Qgci9vIHN0YXRlICovCisJCWVudHJ5LT54 YWN0X3JlYWRfb25seSA9IGZhbHNlOworCiAJCS8qCiAJCSAqIElmIHRoZSBjb25uZWN0aW9uIGlz bid0IGluIGEgZ29vZCBpZGxlIHN0YXRlLCBpdCBpcyBtYXJrZWQgYXMKIAkJICogaW52YWxpZCBv ciBrZWVwX2Nvbm5lY3Rpb25zIG9wdGlvbiBvZiBpdHMgc2VydmVyIGlzIGRpc2FibGVkLCB0aGVu CkBAIC0xMzk0LDYgKzE0NzMsMTAgQEAgcGdmZHdfcmVzZXRfeGFjdF9zdGF0ZShDb25uQ2FjaGVF bnRyeSAqZW50cnksIGJvb2wgdG9wbGV2ZWwpCiAJewogCQkvKiBSZXNldCBzdGF0ZSB0byBzaG93 IHdlJ3JlIG91dCBvZiBhIHN1YnRyYW5zYWN0aW9uICovCiAJCWVudHJ5LT54YWN0X2RlcHRoLS07 CisKKwkJLyogSWYgaW4gdGhlIHRvcG1vc3QgcmVhZC1vbmx5IHRyYW5zYWN0aW9uLCByZXNldCB4 YWN0IHIvbyBzdGF0ZSAqLworCQlpZiAoZW50cnktPnhhY3RfZGVwdGggKyAxID09IHRvcF9yZWFk X29ubHlfbGV2ZWwpCisJCQllbnRyeS0+eGFjdF9yZWFkX29ubHkgPSBmYWxzZTsKIAl9CiB9CiAK ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5v dXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4 IDIxODViNDJiYjRmLi5lYjQ3MTZiZWQ4MSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9l eHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC0xMjM4NCw2ICsxMjM4NCwxNDAgQEAgU0VMRUNU IGNvdW50KCopIEZST00gcmVtb3RlX2FwcGxpY2F0aW9uX25hbWUKIERST1AgRk9SRUlHTiBUQUJM RSByZW1vdGVfYXBwbGljYXRpb25fbmFtZTsKIERST1AgVklFVyBteV9hcHBsaWNhdGlvbl9uYW1l OwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gdGVzdCByZWFkLW9ubHkgYW5kL29yIGRlZmVycmFibGUgdHJh bnNhY3Rpb25zCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CitDUkVBVEUgVEFCTEUgbG9jdCAoZjEgaW50LCBmMiB0 ZXh0KTsKK0NSRUFURSBGVU5DVElPTiBsb2NmKCkgUkVUVVJOUyBTRVRPRiBsb2N0IExBTkdVQUdF IFNRTCBBUworICAnVVBEQVRFIHB1YmxpYy5sb2N0IFNFVCBmMiA9IGYyIHx8IGYyIFJFVFVSTklO RyAqJzsKK0NSRUFURSBWSUVXIGxvY3YgQVMgU0VMRUNUIHQuKiBGUk9NIGxvY2YoKSB0OworQ1JF QVRFIEZPUkVJR04gVEFCTEUgcmVtdCAoZjEgaW50LCBmMiB0ZXh0KQorICBTRVJWRVIgbG9vcGJh Y2sgT1BUSU9OUyAodGFibGVfbmFtZSAnbG9jdicpOworQ1JFQVRFIEZPUkVJR04gVEFCTEUgcmVt dDIgKGYxIGludCwgZjIgdGV4dCkKKyAgU0VSVkVSIGxvb3BiYWNrMiBPUFRJT05TICh0YWJsZV9u YW1lICdsb2N2Jyk7CitJTlNFUlQgSU5UTyBsb2N0IFZBTFVFUyAoMSwgJ2ZvbycpLCAoMiwgJ2Jh cicpOworU1RBUlQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworU0FWRVBPSU5UIHM7CitTRUxFQ1Qg KiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAorRVJST1I6ICBjYW5ub3QgZXhlY3V0ZSBVUERB VEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gImxv Y2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNvbW1hbmQ6IFNFTEVDVCBmMSwgZjIgRlJPTSBw dWJsaWMubG9jdgorUk9MTEJBQ0sgVE8gczsKK1JFTEVBU0UgU0FWRVBPSU5UIHM7CitTRUxFQ1Qg KiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAorRVJST1I6ICBjYW5ub3QgZXhlY3V0ZSBVUERB VEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gImxv Y2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNvbW1hbmQ6IFNFTEVDVCBmMSwgZjIgRlJPTSBw dWJsaWMubG9jdgorUk9MTEJBQ0s7CitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQT0lOVCBzOwor U0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAgLS0g c2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1vbmx5 IHRyYW5zYWN0aW9uCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQgMQor cmVtb3RlIFNRTCBjb21tYW5kOiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxvY3YKK1JPTExC QUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBzOworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25s eSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fu bm90IGV4ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05URVhUOiAg U1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5kOiBTRUxF Q1QgZjEsIGYyIEZST00gcHVibGljLmxvY3YKK1JPTExCQUNLOworU1RBUlQgVFJBTlNBQ1RJT047 CitTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCB3b3JrCisgZjEg fCAgIGYyICAgCistLS0tKy0tLS0tLS0tCisgIDEgfCBmb29mb28KKyAgMiB8IGJhcmJhcgorKDIg cm93cykKKworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSBy ZW10OyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEg cmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0 ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5kOiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxv Y3YKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSBy ZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBmMSB8ICAgZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAgMSB8 IGZvb2ZvbworICAyIHwgYmFyYmFyCisoMiByb3dzKQorCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9v bmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFpbAorRVJST1I6ICBj YW5ub3QgZXhlY3V0ZSBVUERBVEUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24KK0NPTlRFWFQ6 ICBTUUwgZnVuY3Rpb24gImxvY2YiIHN0YXRlbWVudCAxCityZW1vdGUgU1FMIGNvbW1hbmQ6IFNF TEVDVCBmMSwgZjIgRlJPTSBwdWJsaWMubG9jdgorUk9MTEJBQ0s7CitTVEFSVCBUUkFOU0FDVElP TjsKK1NBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBm MSB8ICAgZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAgMSB8IGZvb2ZvbworICAyIHwgYmFyYmFyCiso MiByb3dzKQorCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9N IHJlbXQyOyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9SOiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGlu IGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBz dGF0ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5kOiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGlj LmxvY3YKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBzOworU0VMRUNUICogRlJP TSByZW10OyAgLS0gc2hvdWxkIHdvcmsKKyBmMSB8ICAgZjIgICAKKy0tLS0rLS0tLS0tLS0KKyAg MSB8IGZvb2ZvbworICAyIHwgYmFyYmFyCisoMiByb3dzKQorCitTRVQgdHJhbnNhY3Rpb25fcmVh ZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQyOyAgLS0gc2hvdWxkIGZhaWwKK0VSUk9S OiAgY2Fubm90IGV4ZWN1dGUgVVBEQVRFIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uCitDT05U RVhUOiAgU1FMIGZ1bmN0aW9uICJsb2NmIiBzdGF0ZW1lbnQgMQorcmVtb3RlIFNRTCBjb21tYW5k OiBTRUxFQ1QgZjEsIGYyIEZST00gcHVibGljLmxvY3YKK1JPTExCQUNLOworRFJPUCBGT1JFSUdO IFRBQkxFIHJlbXQ7CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByZW10IChmMSBpbnQsIGYyIHRleHQp CisgIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0YWJsZV9uYW1lICdsb2N0Jyk7CitTVEFSVCBU UkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFIFJFQUQgT05MWTsKK1NFTEVD VCAqIEZST00gcmVtdDsKKyBmMSB8IGYyICAKKy0tLS0rLS0tLS0KKyAgMSB8IGZvbworICAyIHwg YmFyCisoMiByb3dzKQorCitDT01NSVQ7CitTVEFSVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVW RUwgU0VSSUFMSVpBQkxFIERFRkVSUkFCTEU7CitTRUxFQ1QgKiBGUk9NIHJlbXQ7CisgZjEgfCBm MiAgCistLS0tKy0tLS0tCisgIDEgfCBmb28KKyAgMiB8IGJhcgorKDIgcm93cykKKworQ09NTUlU OworU1RBUlQgVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9O TFkgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZST00gcmVtdDsKKyBmMSB8IGYyICAKKy0tLS0rLS0t LS0KKyAgMSB8IGZvbworICAyIHwgYmFyCisoMiByb3dzKQorCitDT01NSVQ7CistLSBDbGVhbiB1 cAorRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQ7CitEUk9QIEZPUkVJR04gVEFCTEUgcmVtdDI7CitE Uk9QIFZJRVcgbG9jdjsKK0RST1AgRlVOQ1RJT04gbG9jZigpOworRFJPUCBUQUJMRSBsb2N0Owor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0gdGVzdCBwYXJhbGxlbCBjb21taXQgYW5kIHBhcmFsbGVsIGFib3J0 CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIHBhcmFs bGVsX2NvbW1pdCAndHJ1ZScpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3Fs L3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3 LnNxbAppbmRleCBlNTM0YjQwZGUzYy4uMjBhNTM1Yjk5ZDggMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv cG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC00MjAwLDYgKzQyMDAsODQgQEAgU0VMRUNUIGNv dW50KCopIEZST00gcmVtb3RlX2FwcGxpY2F0aW9uX25hbWUKIERST1AgRk9SRUlHTiBUQUJMRSBy ZW1vdGVfYXBwbGljYXRpb25fbmFtZTsKIERST1AgVklFVyBteV9hcHBsaWNhdGlvbl9uYW1lOwog CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLSB0ZXN0IHJlYWQtb25seSBhbmQvb3IgZGVmZXJyYWJsZSB0cmFu c2FjdGlvbnMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFURSBUQUJMRSBsb2N0IChmMSBpbnQsIGYyIHRl eHQpOworQ1JFQVRFIEZVTkNUSU9OIGxvY2YoKSBSRVRVUk5TIFNFVE9GIGxvY3QgTEFOR1VBR0Ug U1FMIEFTCisgICdVUERBVEUgcHVibGljLmxvY3QgU0VUIGYyID0gZjIgfHwgZjIgUkVUVVJOSU5H IConOworQ1JFQVRFIFZJRVcgbG9jdiBBUyBTRUxFQ1QgdC4qIEZST00gbG9jZigpIHQ7CitDUkVB VEUgRk9SRUlHTiBUQUJMRSByZW10IChmMSBpbnQsIGYyIHRleHQpCisgIFNFUlZFUiBsb29wYmFj ayBPUFRJT05TICh0YWJsZV9uYW1lICdsb2N2Jyk7CitDUkVBVEUgRk9SRUlHTiBUQUJMRSByZW10 MiAoZjEgaW50LCBmMiB0ZXh0KQorICBTRVJWRVIgbG9vcGJhY2syIE9QVElPTlMgKHRhYmxlX25h bWUgJ2xvY3YnKTsKK0lOU0VSVCBJTlRPIGxvY3QgVkFMVUVTICgxLCAnZm9vJyksICgyLCAnYmFy Jyk7CisKK1NUQVJUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK1NBVkVQT0lOVCBzOworU0VMRUNU ICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLIFRPIHM7CitSRUxFQVNFIFNB VkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNL OworCitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQT0lOVCBzOworU0VUIHRyYW5zYWN0aW9uX3Jl YWRfb25seSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExC QUNLIFRPIHM7CitSRUxFQVNFIFNBVkVQT0lOVCBzOworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25s eSA9IG9uOworU0VMRUNUICogRlJPTSByZW10OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLOwor CitTVEFSVCBUUkFOU0FDVElPTjsKK1NBVkVQT0lOVCBzOworU0VMRUNUICogRlJPTSByZW10OyAg LS0gc2hvdWxkIHdvcmsKK1NFVCB0cmFuc2FjdGlvbl9yZWFkX29ubHkgPSBvbjsKK1NFTEVDVCAq IEZST00gcmVtdDsgIC0tIHNob3VsZCBmYWlsCitST0xMQkFDSyBUTyBzOworUkVMRUFTRSBTQVZF UE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCB3b3JrCitTRVQgdHJhbnNh Y3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgZmFp bAorUk9MTEJBQ0s7CisKK1NUQVJUIFRSQU5TQUNUSU9OOworU0FWRVBPSU5UIHM7CitTRUxFQ1Qg KiBGUk9NIHJlbXQ7ICAtLSBzaG91bGQgd29yaworU0VUIHRyYW5zYWN0aW9uX3JlYWRfb25seSA9 IG9uOworU0VMRUNUICogRlJPTSByZW10MjsgIC0tIHNob3VsZCBmYWlsCitST0xMQkFDSyBUTyBz OworUkVMRUFTRSBTQVZFUE9JTlQgczsKK1NFTEVDVCAqIEZST00gcmVtdDsgIC0tIHNob3VsZCB3 b3JrCitTRVQgdHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb247CitTRUxFQ1QgKiBGUk9NIHJlbXQy OyAgLS0gc2hvdWxkIGZhaWwKK1JPTExCQUNLOworCitEUk9QIEZPUkVJR04gVEFCTEUgcmVtdDsK K0NSRUFURSBGT1JFSUdOIFRBQkxFIHJlbXQgKGYxIGludCwgZjIgdGV4dCkKKyAgU0VSVkVSIGxv b3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ2xvY3QnKTsKKworU1RBUlQgVFJBTlNBQ1RJT04g SVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9OTFk7CitTRUxFQ1QgKiBGUk9NIHJl bXQ7CitDT01NSVQ7CisKK1NUQVJUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJ WkFCTEUgREVGRVJSQUJMRTsKK1NFTEVDVCAqIEZST00gcmVtdDsKK0NPTU1JVDsKKworU1RBUlQg VFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRSBSRUFEIE9OTFkgREVGRVJS QUJMRTsKK1NFTEVDVCAqIEZST00gcmVtdDsKK0NPTU1JVDsKKworLS0gQ2xlYW4gdXAKK0RST1Ag Rk9SRUlHTiBUQUJMRSByZW10OworRFJPUCBGT1JFSUdOIFRBQkxFIHJlbXQyOworRFJPUCBWSUVX IGxvY3Y7CitEUk9QIEZVTkNUSU9OIGxvY2YoKTsKK0RST1AgVEFCTEUgbG9jdDsKKwogLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0gdGVzdCBwYXJhbGxlbCBjb21taXQgYW5kIHBhcmFsbGVsIGFib3J0CiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwgYi9k b2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwKaW5kZXggNzgxYTAxMDY3ZjcuLmM0NjQ3MTZl M2NlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcG9zdGdyZXMtZmR3LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sCkBAIC0xMDc3LDYgKzEwNzcsMjEgQEAgcG9zdGdy ZXM9IyBTRUxFQ1QgcG9zdGdyZXNfZmR3X2Rpc2Nvbm5lY3RfYWxsKCk7CiAgICA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHJlbGVhc2UgbWlnaHQgbW9kaWZ5IHRoZXNlIHJ1 bGVzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgcmVtb3RlIHRyYW5zYWN0aW9uIGlz IG9wZW5lZCBpbiB0aGUgc2FtZSByZWFkL3dyaXRlIG1vZGUgYXMgdGhlIGxvY2FsCisgICB0cmFu c2FjdGlvbjogaWYgdGhlIGxvY2FsIHRyYW5zYWN0aW9uIGlzIDxsaXRlcmFsPlJFQUQgT05MWTwv bGl0ZXJhbD4sCisgICB0aGUgcmVtb3RlIHRyYW5zYWN0aW9uIGlzIG9wZW5lZCBpbiA8bGl0ZXJh bD5SRUFEIE9OTFk8L2xpdGVyYWw+IG1vZGUsCisgICBvdGhlcndpc2UgaXQgaXMgb3BlbmVkIGlu IDxsaXRlcmFsPlJFQUQgV1JJVEU8L2xpdGVyYWw+IG1vZGUuCisgICAoVGhpcyBydWxlIGlzIGFs c28gYXBwbGllZCB0byByZW1vdGUgYW5kIGxvY2FsIHN1YnRyYW5zYWN0aW9ucy4pCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSByZW1vdGUgdHJhbnNhY3Rpb24gaXMgYWxzbyBvcGVuZWQg aW4gdGhlIHNhbWUgZGVmZXJyYWJsZSBtb2RlIGFzIHRoZQorICAgbG9jYWwgdHJhbnNhY3Rpb246 IGlmIHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBpcyA8bGl0ZXJhbD5ERUZFUlJBQkxFPC9saXRlcmFs PiwKKyAgIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24gaXMgb3BlbmVkIGluIDxsaXRlcmFsPkRFRkVS UkFCTEU8L2xpdGVyYWw+IG1vZGUsCisgICBvdGhlcndpc2UgaXQgaXMgb3BlbmVkIGluIDxsaXRl cmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiBtb2RlLgorICA8L3BhcmE+CisKICAgPHBhcmE+ CiAgICBOb3RlIHRoYXQgaXQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkKICAgIDxmaWxl bmFtZT5wb3N0Z3Jlc19mZHc8L2ZpbGVuYW1lPiB0byBwcmVwYXJlIHRoZSByZW1vdGUgdHJhbnNh Y3Rpb24gZm9yCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggYjg4NTUxM2Y3NjUuLmRm MTBjNTM4YmJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0xMDQ0LDYgKzEwNDQs MzQgQEAgVHJhbnNhY3Rpb25TdGFydGVkRHVyaW5nUmVjb3Zlcnkodm9pZCkKIAlyZXR1cm4gQ3Vy cmVudFRyYW5zYWN0aW9uU3RhdGUtPnN0YXJ0ZWRJblJlY292ZXJ5OwogfQogCisvKgorICoJR2V0 VG9wUmVhZE9ubHlUcmFuc2FjdGlvbk5lc3RMZXZlbAorICoKKyAqIE5vdGU6IHRoaXMgd2lsbCBy ZXR1cm4gemVybyB3aGVuIG5vdCBpbnNpZGUgYW55IHRyYW5zYWN0aW9uIG9yIHdoZW4gbmVpdGhl cgorICogYSB0b3AtbGV2ZWwgdHJhbnNhY3Rpb24gbm9yIHN1YnRyYW5zYWN0aW9ucyBhcmUgcmVh ZC1vbmx5LCBvbmUgd2hlbiB0aGUKKyAqIHRvcC1sZXZlbCB0cmFuc2FjdGlvbiBpcyByZWFkLW9u bHksIHR3byB3aGVuIG9uZSBsZXZlbCBvZiBzdWJ0cmFuc2FjdGlvbiBpcworICogcmVhZC1vbmx5 LCBldGMuCisgKgorICogTm90ZTogc3VidHJhbnNhY3Rpb25zIG9mIHRoZSB0b3Btb3N0IHJlYWQt b25seSB0cmFuc2FjdGlvbiBhcmUgcmVhZC1vbmx5LAorICogYmVjYXVzZSB0aGV5IGluaGVyaXQg cmVhZC1vbmx5IG1vZGUgZnJvbSB0aGUgcGFyZW50IHRyYW5zYWN0aW9uIGFuZCBjYW4ndAorICog Z28gdG8gcmVhZC13cml0ZSBtb2RlLgorICovCitpbnQKK0dldFRvcFJlYWRPbmx5VHJhbnNhY3Rp b25OZXN0TGV2ZWwodm9pZCkKK3sKKwlUcmFuc2FjdGlvblN0YXRlIHMgPSBDdXJyZW50VHJhbnNh Y3Rpb25TdGF0ZTsKKworCWlmICghWGFjdFJlYWRPbmx5KQorCQlyZXR1cm4gMDsKKwl3aGlsZSAo cy0+bmVzdGluZ0xldmVsID4gMSkKKwl7CisJCWlmICghcy0+cHJldlhhY3RSZWFkT25seSkKKwkJ CXJldHVybiBzLT5uZXN0aW5nTGV2ZWw7CisJCXMgPSBzLT5wYXJlbnQ7CisJfQorCXJldHVybiBz LT5uZXN0aW5nTGV2ZWw7Cit9CisKIC8qCiAgKglFbnRlclBhcmFsbGVsTW9kZQogICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGFjdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hh Y3QuaAppbmRleCBiMmJjMTBlZTA0MS4uN2YxMWI5MTk3OTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy94YWN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hhY3QuaApAQCAtNDU4 LDYgKzQ1OCw3IEBAIGV4dGVybiBUaW1lc3RhbXBUeiBHZXRDdXJyZW50VHJhbnNhY3Rpb25TdG9w VGltZXN0YW1wKHZvaWQpOwogZXh0ZXJuIHZvaWQgU2V0Q3VycmVudFN0YXRlbWVudFN0YXJ0VGlt ZXN0YW1wKHZvaWQpOwogZXh0ZXJuIGludAlHZXRDdXJyZW50VHJhbnNhY3Rpb25OZXN0TGV2ZWwo dm9pZCk7CiBleHRlcm4gYm9vbCBUcmFuc2FjdGlvbklkSXNDdXJyZW50VHJhbnNhY3Rpb25JZChU cmFuc2FjdGlvbklkIHhpZCk7CitleHRlcm4gaW50CUdldFRvcFJlYWRPbmx5VHJhbnNhY3Rpb25O ZXN0TGV2ZWwodm9pZCk7CiBleHRlcm4gdm9pZCBDb21tYW5kQ291bnRlckluY3JlbWVudCh2b2lk KTsKIGV4dGVybiB2b2lkIEZvcmNlU3luY0NvbW1pdCh2b2lkKTsKIGV4dGVybiB2b2lkIFN0YXJ0 VHJhbnNhY3Rpb25Db21tYW5kKHZvaWQpOwotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --0000000000007b44180635ef4328--