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.96) (envelope-from ) id 1wSpVK-0008G8-21 for pgsql-hackers@arkaria.postgresql.org; Fri, 29 May 2026 05:11:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wSpVJ-001Z5M-0W for pgsql-hackers@arkaria.postgresql.org; Fri, 29 May 2026 05:11:29 +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.96) (envelope-from ) id 1wSpVI-001Z5D-1l for pgsql-hackers@lists.postgresql.org; Fri, 29 May 2026 05:11:29 +0000 Received: from mail-vs1-xe32.google.com ([2607:f8b0:4864:20::e32]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wSpVG-000000004SY-1mEJ for pgsql-hackers@lists.postgresql.org; Fri, 29 May 2026 05:11:27 +0000 Received: by mail-vs1-xe32.google.com with SMTP id ada2fe7eead31-6312b8f8e47so4561948137.3 for ; Thu, 28 May 2026 22:11:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1780031486; cv=none; d=google.com; s=arc-20240605; b=PDflENktM2pSSoRnANaz2bpl6zNrQmKNXuzuqCHgbA0FeupyAFiPKSlmKoDbO1u9ke sHnraGuzH7Ydp72vSTJ6Maz7oJSKKmPob06f2/KQjWbU/7B26JnMY27G7FbVuYFdW7wR 6PdxXXduIvT0CQtpDUDrgT4STS9gA8+e8yrsGi/1t21NwT8nKvuzfdkWxsPKnKD82l7y MadmIjRiK/Ia8FgAXFxb0BhB27NOLp0Qbv8UA7eZ/Xl7zBw+fui21Dgi+j+SK2ZdIANn xy6LweovaCXQYd4ZyS5C9V584f8uuqCNu7AvR4ado8S6rwPSoJgClv/ALVr/rbliM8wk nB2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=FMNFVhRPjO3Czi15EPYB2RVJ7PajFOuEpCR/d1O5cNU=; fh=P3ewnKmJ8q5v0gmYEUBk3gYvcP9EvHTQw+QLeJD9Ovs=; b=KGIHaz0lq/K4CKC5Nlfi5tORdK5wB+NIgtijy5YIUA5ReK7BpqJvmRDTnDd/SBjdnq ll4f3dmljHYPN1mMYavxc6TFSXDYuQL9+Jx/ONlziQUS2DyvdzeKO+r3MvrHTQe5XjwL 6wpCPLP0julhqNppDP19Yh4PjvFL3XFeZQqBN/+Ff/wwSYEG9iubybZcn022RmlKOmHM W/bIT7D2yryqbEd/gEi1mAXNwmJUvHPRyoX3K1+VB+daGC/TpPqJQ+o+9mFpM2JjesC3 LJSXCFAMKvfQfspuvEhPa4d/9eqns4WL69lz/GtSZSOpuQStbe8RrKNG3reA2wWuCSFE QbiQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780031486; x=1780636286; 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=FMNFVhRPjO3Czi15EPYB2RVJ7PajFOuEpCR/d1O5cNU=; b=DxUSbSWDclryvgRdUuNgsd3JEXjekHj5RNvWt+ebvyxlOwqt7sq3zCszGOosHaIwff V2f81vZicLtPLZbywspuEYl1QkPnjpfQhxYJVbtEQcB7VILZVPdTJ1fhGnk8s1Igq9N4 5VzxPpyAbM14niwW7A9yjnzgm5GuoRUCRmoGEMrGqNozOW37akoINypF+8QpqWFehbE5 g03Jyy0VKC/q+ia74Qg/doRYTKRqG645VWLOYwHklwiLWB9YTZtTg3IHy8xx1TjjLZHv o2pN57ZTtAHn7pPivlnJskXiVxsWT3xv97soF1rBZGZb0nvslWUh6WV3csTxwSMwfuf8 imog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780031486; x=1780636286; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FMNFVhRPjO3Czi15EPYB2RVJ7PajFOuEpCR/d1O5cNU=; b=FHwNvL3gef2vVoZj+pII46uzakq4A/5iwySQQj3ZJ6aKnpAfRDDfi20ylAJP78aRQs VYFwsyS5wYQIWf6zPuove28vQJ6brjJVyhzDoOmULuhLgkA+sHf0PQXjpL/BnsWXdLJJ bixtYU615MvbyQ2lTv8gxF6Xph98t2gOKFWv5sQYF2UTWW2TwG0MRdFQb2m0c2Evxiki ql6LMk4IhiVvV7Q0/IYVvoPHrT3F4BoaBE0a51ZYPynnYHE8ju8hwAPqrCIaAggLNe3f t55n7VFpZiCugeTJLNr5B3tGdHOs/B3rHlIhNe79go6prs/qE0WOjaas8ItxCL8yi3fz vpOA== X-Forwarded-Encrypted: i=1; AFNElJ98AoAthyPkYHmDi4iU9sOW7qLMGvjD83KQKupP1Bd+V7m/B6R3nAb47IUc1TRsWmFo6taSvEodDzqpStIr@lists.postgresql.org X-Gm-Message-State: AOJu0YxP8QCBadk14S5UlNdV5vlT+oeG5Fnvt+59Ao/yBNUiqJv/uxh1 T2ztDIiTJEooHthmoSYJeCBQfa50ZazD/nzpn1jqflCBDHXpdet4rrpsfWlTJX+TRJQAZh3wism vBlEqARhUcuJLzrtLcixBFShj8QiYdxc= X-Gm-Gg: Acq92OHE5iEUWRVjPpy5SwjRvdKZ0/D3D1pvlj6dPPAHFwUCVPhVpL7AcxqRm2q9DzO RxhFblrtWISw9oWc8W/CRB2eUgTbgeCFGzswLXkHdVoJ+2OyUn9isNcJ1A0LWFKZgdrz1Chipb/ kyd/ga2OW5iHSgypNaOs+4YaYnnPJ/0kECLHBRqKNn68x7oddHZcYe4oV7zMxDs6y1I9DsxJlYk 8Oqgg0jiF2uidJM7wwyMVtTI2zRNl+mxhW1FhxIwdKfSOZjfyYDIhdBiqdriCaigUWoGd/9zJbY 5pSxmbBaHVQw7zmhTkMTPwkmRjK/ X-Received: by 2002:a05:6102:3595:b0:631:4cda:3e86 with SMTP id ada2fe7eead31-6bf3e9fb18dmr390712137.24.1780031485866; Thu, 28 May 2026 22:11:25 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: SATYANARAYANA NARLAPURAM Date: Thu, 28 May 2026 22:11:14 -0700 X-Gm-Features: AVHnY4JrKLMFT-3-OL89NYLfPPkLA6RXul2dsVOgbGt0rnNbfprtlxR8bJpWLpQ Message-ID: Subject: Re: [PATCH] Release replication slot on error in SQL-callable slot functions To: Fujii Masao Cc: shveta malik , vignesh C , PostgreSQL Hackers , shveta malik Content-Type: multipart/mixed; boundary="00000000000067988c0652ede01f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000067988c0652ede01f Content-Type: multipart/alternative; boundary="00000000000067988b0652ede01d" --00000000000067988b0652ede01d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi On Thu, May 28, 2026 at 9:17=E2=80=AFPM Fujii Masao = wrote: > On Thu, May 28, 2026 at 10:11=E2=80=AFAM SATYANARAYANA NARLAPURAM > wrote: > > Thanks for the patches, I combined these changes in my latest patch. > Please find the v5. > > Thanks for updating the patch! But, v5 patch caused a compilation failure= . > > slotfuncs.c:119:32: error: too few arguments to function call, single > argument 'try_disable' was not specified > 119 | ReplicationSlotDropAcquired(); > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ > ../../../src/include/replication/slot.h:338:13: note: > 'ReplicationSlotDropAcquired' declared here > 338 | extern void ReplicationSlotDropAcquired(bool try_disable); > | ^ ~~~~~~~~~~~~~~~~ > slotfuncs.c:207:32: error: too few arguments to function call, single > argument 'try_disable' was not specified > 207 | ReplicationSlotDropAcquired(); > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ > ../../../src/include/replication/slot.h:338:13: note: > 'ReplicationSlotDropAcquired' declared here > 338 | extern void ReplicationSlotDropAcquired(bool try_disable); > | ^ ~~~~~~~~~~~~~~~~ > slotfuncs.c:922:32: error: too few arguments to function call, single > argument 'try_disable' was not specified > 922 | ReplicationSlotDropAcquired(); > | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ > ../../../src/include/replication/slot.h:338:13: note: > 'ReplicationSlotDropAcquired' declared here > 338 | extern void ReplicationSlotDropAcquired(bool try_disable); > | ^ ~~~~~~~~~~~~~~~~ > 3 errors generated. > Please see the v6 patch. Upstream commit 2af1dc89282 changed the ReplicationSlotDropAcquired signature since the patch generated. Thanks, Satya --00000000000067988b0652ede01d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Thu, May 28, 2026= at 9:17=E2=80=AFPM Fujii Masao <masao.fujii@gmail.com> wrote:
On Thu, May 28, 2026 at 10:11=E2= =80=AFAM SATYANARAYANA NARLAPURAM
<satyanar= lapuram@gmail.com> wrote:
> Thanks for the patches, I combined these changes in my latest patch. P= lease find the v5.

Thanks for updating the patch! But, v5 patch caused a compilation failure.<= br>
slotfuncs.c:119:32: error: too few arguments to function call, single
argument 'try_disable' was not specified
=C2=A0 119 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0ReplicationSlotDropAcquired();
=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
../../../src/include/replication/slot.h:338:13: note:
'ReplicationSlotDropAcquired' declared here
=C2=A0 338 | extern void ReplicationSlotDropAcquired(bool try_disable);
=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0~~~~~~~~~~~~~~~~
slotfuncs.c:207:32: error: too few arguments to function call, single
argument 'try_disable' was not specified
=C2=A0 207 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0ReplicationSlotDropAcquired();
=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
../../../src/include/replication/slot.h:338:13: note:
'ReplicationSlotDropAcquired' declared here
=C2=A0 338 | extern void ReplicationSlotDropAcquired(bool try_disable);
=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0~~~~~~~~~~~~~~~~
slotfuncs.c:922:32: error: too few arguments to function call, single
argument 'try_disable' was not specified
=C2=A0 922 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0ReplicationSlotDropAcquired();
=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
../../../src/include/replication/slot.h:338:13: note:
'ReplicationSlotDropAcquired' declared here
=C2=A0 338 | extern void ReplicationSlotDropAcquired(bool try_disable);
=C2=A0 =C2=A0 =C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0~~~~~~~~~~~~~~~~
3 errors generated.

Please see the v6 p= atch. Upstream commit=C2=A02af1dc89282 changed the ReplicationSlotDropAcqu= ired signature since the patch generated.

Thanks,<= /div>
Satya
--00000000000067988b0652ede01d-- --00000000000067988c0652ede01f Content-Type: application/octet-stream; name="v5-0001-Release-replication-slot-on-error-in-slot-SQL-functions.patch" Content-Disposition: attachment; filename="v5-0001-Release-replication-slot-on-error-in-slot-SQL-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpqgqeo20 RnJvbSBjZWUyMDJkM2QwMzZlZDcwM2NiZDUwOGVjNWU3MDVhMzUzZWM4NjQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYXR5YSBOYXJsYXB1cmFtIDxzYXR5YW5hcmxhcHVyYW1AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDI4IE1heSAyMDI2IDA5OjE4OjUwICswNTMwClN1YmplY3Q6IFtQ QVRDSCB2NV0gUmVsZWFzZSByZXBsaWNhdGlvbiBzbG90IG9uIGVycm9yIGluIHNsb3QgU1FMIGZ1 bmN0aW9ucwoKRW5zdXJlIHJlcGxpY2F0aW9uIHNsb3RzIGFyZSBwcm9wZXJseSByZWxlYXNlZCBv ciBkcm9wcGVkIHdoZW4gYW4gZXJyb3IKb2NjdXJzIGluIFNRTC1jYWxsYWJsZSByZXBsaWNhdGlv biBzbG90IGZ1bmN0aW9ucywgcGFydGljdWxhcmx5IHdoZW4gdGhlCmVycm9yIGlzIGNhdWdodCBi eSBhIFBML3BnU1FMIEVYQ0VQVElPTiBoYW5kbGVyIHRoYXQgZG9lcyBub3QgdGVybWluYXRlCnRo ZSBzZXNzaW9uLgoKUHJldmlvdXNseSwgZnVuY3Rpb25zIGxpa2UgcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgpLApwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgp LCBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoKSwKcGdfY29weV9sb2dpY2FsX3JlcGxpY2F0 aW9uX3Nsb3QoKSwgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCksIGFuZApwZ19sb2dpY2FsX3Ns b3RfZ2V0X2NoYW5nZXMoKSBjb3VsZCBsZWF2ZSBzbG90cyBhY3F1aXJlZCBvciBwYXJ0aWFsbHkK Y3JlYXRlZCB3aGVuIGFuIGVycm9yIG9jY3VycmVkIG1pZC1vcGVyYXRpb24uICBJZiB0aGUgZXJy b3Igd2FzIGNhdWdodCBieQphIFBML3BnU1FMIEVYQ0VQVElPTiBoYW5kbGVyICh3aGljaCB1c2Vz IHN1YnRyYW5zYWN0aW9ucyksIHRoZSBzbG90IHdvdWxkCnJlbWFpbiBsb2NrZWQgZm9yIHRoZSBy ZXN0IG9mIHRoZSBzZXNzaW9uLCBjYXVzaW5nIHN1YnNlcXVlbnQgb3BlcmF0aW9ucwp0byBmYWls LgoKRml4IGJ5IHdyYXBwaW5nIHRoZSBjcml0aWNhbCBzZWN0aW9ucyBpbiBQR19UUlkvUEdfQ0FU Q0ggYmxvY2tzIHRoYXQKcmVsZWFzZSBvciBkcm9wIHRoZSBzbG90IGFzIGFwcHJvcHJpYXRlOgoK LSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90OiBkcm9wIHRoZSBwYXJ0aWFsbHkt Y3JlYXRlZCBzbG90Ci0gcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q6IGRyb3Ag dGhlIHBhcnRpYWxseS1jcmVhdGVkIHNsb3QKLSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2U6 IHJlbGVhc2UgdGhlIGFjcXVpcmVkIHNsb3QKLSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXM6 IHJlbGVhc2UgdGhlIGFjcXVpcmVkIHNsb3QKLSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdDogZHJvcCB0aGUgZGVzdGluYXRpb24gc2xvdAotIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dDogcmVsZWFzZSB0aGUgYWNxdWlyZWQgc2xvdCAodGhlIGVycm9yIGluCiAgUmVwbGljYXRpb25T bG90RHJvcCBvY2N1cnMgYWZ0ZXIgYWNxdWlzaXRpb24gd2hlbiBkcm9wcGluZyBzeW5jZWQKICBz bG90cyBvbiBzdGFuZGJ5cyBpcyBkaXNhbGxvd2VkKQotLS0KIGNvbnRyaWIvdGVzdF9kZWNvZGlu Zy9leHBlY3RlZC9zbG90Lm91dCAgICAgICAgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwgICAgICAgICAgICAg fCAgNzIgKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbG9naWNhbGZ1bmNzLmMgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Rm dW5jcy5jICAgICAgICAgICAgfCAyMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzQyIGlu c2VydGlvbnMoKyksIDg2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3Rl ZC9zbG90Lm91dAppbmRleCA3ZGUwM2M3OWY2Zi4uM2EwNGQyZmJlNjcgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91dAorKysgYi9jb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQKQEAgLTQ2NiwzICs0NjYsMTE3IEBAIFNFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKICAKICgxIHJvdykKIAor LS0KKy0tIFRlc3QgdGhhdCByZXBsaWNhdGlvbiBzbG90cyBhcmUgcHJvcGVybHkgcmVsZWFzZWQg b3IgZHJvcHBlZCBvbiBlcnJvciwKKy0tIGV2ZW4gd2hlbiB0aGUgZXJyb3IgaXMgY2F1Z2h0IGJ5 IGEgUEwvcGdTUUwgRVhDRVBUSU9OIGhhbmRsZXIgKHdoaWNoCistLSBkb2Vzbid0IHRlcm1pbmF0 ZSB0aGUgc2Vzc2lvbikuCistLQorLS0gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dDogZXJyb3IgZHVyaW5nIHNsb3QgY3JlYXRpb24gc2hvdWxkCistLSBkcm9wIHRoZSBzbG90Lgor RE8gJCQKK0JFR0lOCisgICAgUEVSRk9STSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9z bG90KCdyZWdyZXNzaW9uX3Nsb3RfZXJyb3InLCAnbm9uZXhpc3RlbnRfcGx1Z2luX3h5eicsIHRy dWUpOworRVhDRVBUSU9OIFdIRU4gT1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdo dDogJScsIFNRTEVSUk07CitFTkQ7CiskJDsKK05PVElDRTogIGNhdWdodDogY291bGQgbm90IGFj Y2VzcyBmaWxlICJub25leGlzdGVudF9wbHVnaW5feHl6IjogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQorLS0gdGhlIGNvbmNlcm5lZCBzbG90IG11c3Qgbm90IGV4aXN0IChpdCB3YXMgZHJvcHBl ZCBvbiBlcnJvcikKK1NFTEVDVCBjb3VudCgqKSA9IDAgQVMgc2xvdF93YXNfZHJvcHBlZCBGUk9N IHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisgICAgV0hFUkUgc2xvdF9uYW1lID0gJ3JlZ3Jlc3Npb25f c2xvdF9lcnJvcic7Cisgc2xvdF93YXNfZHJvcHBlZCAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworLS0gdGhlIHNlc3Npb24gaXMgc3RpbGwgdXNhYmxlCitTRUxFQ1QgJ2luaXQn IEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90 X3QzJywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSk7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisg aW5pdAorKDEgcm93KQorCistLSBwZ19yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2U6IGVycm9yIGFm dGVyIGFjcXVpcmluZyB0aGUgc2xvdCBzaG91bGQKKy0tIHJlbGVhc2UgaXQgc28gdGhlIHNlc3Np b24gc3RheXMgdXNhYmxlLgorU0VMRUNUIHNsb3RfbmFtZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Ns b3RfYWR2YW5jZSgncmVncmVzc2lvbl9zbG90X3QzJywgcGdfY3VycmVudF93YWxfbHNuKCkpOwor ICAgICBzbG90X25hbWUgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc2lvbl9z bG90X3QzCisoMSByb3cpCisKK0RPICQkCitCRUdJTgorICAgIFBFUkZPUk0gcGdfcmVwbGljYXRp b25fc2xvdF9hZHZhbmNlKCdyZWdyZXNzaW9uX3Nsb3RfdDMnLCAnMC8xJyk7CitFWENFUFRJT04g V0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2F1Z2h0IGV4cGVjdGVkIGVycm9y JzsKK0VORDsKKyQkOworTk9USUNFOiAgY2F1Z2h0IGV4cGVjdGVkIGVycm9yCistLSB0aGUgc2Vz c2lvbiBpcyBzdGlsbCB1c2FibGUKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90X2FkdmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2FsX2xzbigp KTsKKyAgICAgc2xvdF9uYW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Np b25fc2xvdF90MworKDEgcm93KQorCistLSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xv dDogZXJyb3IgYWZ0ZXIgY3JlYXRpbmcgdGhlIGRlc3RpbmF0aW9uCistLSBzbG90IHNob3VsZCBk cm9wIGl0LgorRE8gJCQKK0JFR0lOCisgICAgUEVSRk9STSBwZ19jb3B5X2xvZ2ljYWxfcmVwbGlj YXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3JlZ3Jlc3Npb25fc2xvdF9kc3QnLCBm YWxzZSwgJ25vbmV4aXN0ZW50X3BsdWdpbl94eXonKTsKK0VYQ0VQVElPTiBXSEVOIE9USEVSUyBU SEVOCisgICAgUkFJU0UgTk9USUNFICdjYXVnaHQ6ICUnLCBTUUxFUlJNOworRU5EOworJCQ7CitO T1RJQ0U6ICBjYXVnaHQ6IGNvdWxkIG5vdCBhY2Nlc3MgZmlsZSAibm9uZXhpc3RlbnRfcGx1Z2lu X3h5eiI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKKy0tIHRoZSBkZXN0aW5hdGlvbiBzbG90 IG11c3Qgbm90IGV4aXN0IChpdCB3YXMgZHJvcHBlZCBvbiBlcnJvcikKK1NFTEVDVCBjb3VudCgq KSA9IDAgQVMgZHN0X3Nsb3RfZHJvcHBlZCBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzCisgICAg V0hFUkUgc2xvdF9uYW1lID0gJ3JlZ3Jlc3Npb25fc2xvdF9kc3QnOworIGRzdF9zbG90X2Ryb3Bw ZWQgCistLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKKy0tIHRoZSBzZXNzaW9uIGlz IHN0aWxsIHVzYWJsZQorU0VMRUNUIGNvdW50KCopID49IDAgQVMgY2hhbmdlc19vayBGUk9NIHBn X2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90X3QzJywgTlVMTCwgTlVM TCk7CisgY2hhbmdlc19vayAKKy0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0gcGdfbG9n aWNhbF9zbG90X2dldF9jaGFuZ2VzOiBlcnJvciBhZnRlciBhY3F1aXJpbmcgdGhlIHNsb3Qgc2hv dWxkCistLSByZWxlYXNlIGl0LgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlzaWNh bF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfcGh5JywgdHJ1ZSk7CisgP2NvbHVt bj8gCistLS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitETyAkJAorQkVHSU4KKyAgICBQRVJG T1JNIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90X3BoeScsIE5V TEwsIE5VTEwpOworRVhDRVBUSU9OIFdIRU4gT1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0Ug J2NhdWdodDogJScsIFNRTEVSUk07CitFTkQ7CiskJDsKK05PVElDRTogIGNhdWdodDogY2Fubm90 IHVzZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IGZvciBsb2dpY2FsIGRlY29kaW5nCistLSB0 aGUgc2Vzc2lvbiBpcyBzdGlsbCB1c2FibGUKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBs aWNhdGlvbl9zbG90X2FkdmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2Fs X2xzbigpKTsKKyAgICAgc2xvdF9uYW1lICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJl Z3Jlc3Npb25fc2xvdF90MworKDEgcm93KQorCistLSBjbGVhbnVwCitTRUxFQ1QgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfcGh5Jyk7CisgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJyk7CisgcGdf ZHJvcF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygx IHJvdykKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbCBi L2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKaW5kZXggNTgwZTNhZTNiZWYuLmQ4 ZTBhZGNjYmZiIDEwMDY0NAotLS0gYS9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3Fs CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5zcWwKQEAgLTE5MCwzICsxOTAs NzUgQEAgU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfdHJ1ZV9zbG90 Jyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90 Jyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Ns b3QnKTsKIFNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsK KworLS0KKy0tIFRlc3QgdGhhdCByZXBsaWNhdGlvbiBzbG90cyBhcmUgcHJvcGVybHkgcmVsZWFz ZWQgb3IgZHJvcHBlZCBvbiBlcnJvciwKKy0tIGV2ZW4gd2hlbiB0aGUgZXJyb3IgaXMgY2F1Z2h0 IGJ5IGEgUEwvcGdTUUwgRVhDRVBUSU9OIGhhbmRsZXIgKHdoaWNoCistLSBkb2Vzbid0IHRlcm1p bmF0ZSB0aGUgc2Vzc2lvbikuCistLQorCistLSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlv bl9zbG90OiBlcnJvciBkdXJpbmcgc2xvdCBjcmVhdGlvbiBzaG91bGQKKy0tIGRyb3AgdGhlIHNs b3QuCitETyAkJAorQkVHSU4KKyAgICBQRVJGT1JNIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0 aW9uX3Nsb3QoJ3JlZ3Jlc3Npb25fc2xvdF9lcnJvcicsICdub25leGlzdGVudF9wbHVnaW5feHl6 JywgdHJ1ZSk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNFIE5PVElDRSAn Y2F1Z2h0OiAlJywgU1FMRVJSTTsKK0VORDsKKyQkOworCistLSB0aGUgY29uY2VybmVkIHNsb3Qg bXVzdCBub3QgZXhpc3QgKGl0IHdhcyBkcm9wcGVkIG9uIGVycm9yKQorU0VMRUNUIGNvdW50KCop ID0gMCBBUyBzbG90X3dhc19kcm9wcGVkIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMKKyAgICBX SEVSRSBzbG90X25hbWUgPSAncmVncmVzc2lvbl9zbG90X2Vycm9yJzsKKworLS0gdGhlIHNlc3Np b24gaXMgc3RpbGwgdXNhYmxlCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgncmVncmVzc2lvbl9zbG90X3QzJywgJ3Rlc3RfZGVjb2RpbmcnLCBm YWxzZSk7CisKKy0tIHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZTogZXJyb3IgYWZ0ZXIgYWNx dWlyaW5nIHRoZSBzbG90IHNob3VsZAorLS0gcmVsZWFzZSBpdCBzbyB0aGUgc2Vzc2lvbiBzdGF5 cyB1c2FibGUuCitTRUxFQ1Qgc2xvdF9uYW1lIEZST00gcGdfcmVwbGljYXRpb25fc2xvdF9hZHZh bmNlKCdyZWdyZXNzaW9uX3Nsb3RfdDMnLCBwZ19jdXJyZW50X3dhbF9sc24oKSk7CisKK0RPICQk CitCRUdJTgorICAgIFBFUkZPUk0gcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKCdyZWdyZXNz aW9uX3Nsb3RfdDMnLCAnMC8xJyk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJB SVNFIE5PVElDRSAnY2F1Z2h0IGV4cGVjdGVkIGVycm9yJzsKK0VORDsKKyQkOworCistLSB0aGUg c2Vzc2lvbiBpcyBzdGlsbCB1c2FibGUKK1NFTEVDVCBzbG90X25hbWUgRlJPTSBwZ19yZXBsaWNh dGlvbl9zbG90X2FkdmFuY2UoJ3JlZ3Jlc3Npb25fc2xvdF90MycsIHBnX2N1cnJlbnRfd2FsX2xz bigpKTsKKworLS0gcGdfY29weV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q6IGVycm9yIGFmdGVy IGNyZWF0aW5nIHRoZSBkZXN0aW5hdGlvbgorLS0gc2xvdCBzaG91bGQgZHJvcCBpdC4KK0RPICQk CitCRUdJTgorICAgIFBFUkZPUk0gcGdfY29weV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3Jl Z3Jlc3Npb25fc2xvdF90MycsICdyZWdyZXNzaW9uX3Nsb3RfZHN0JywgZmFsc2UsICdub25leGlz dGVudF9wbHVnaW5feHl6Jyk7CitFWENFUFRJT04gV0hFTiBPVEhFUlMgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnY2F1Z2h0OiAlJywgU1FMRVJSTTsKK0VORDsKKyQkOworCistLSB0aGUgZGVzdGlu YXRpb24gc2xvdCBtdXN0IG5vdCBleGlzdCAoaXQgd2FzIGRyb3BwZWQgb24gZXJyb3IpCitTRUxF Q1QgY291bnQoKikgPSAwIEFTIGRzdF9zbG90X2Ryb3BwZWQgRlJPTSBwZ19yZXBsaWNhdGlvbl9z bG90cworICAgIFdIRVJFIHNsb3RfbmFtZSA9ICdyZWdyZXNzaW9uX3Nsb3RfZHN0JzsKKworLS0g dGhlIHNlc3Npb24gaXMgc3RpbGwgdXNhYmxlCitTRUxFQ1QgY291bnQoKikgPj0gMCBBUyBjaGFu Z2VzX29rIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3Rf dDMnLCBOVUxMLCBOVUxMKTsKKworLS0gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzOiBlcnJv ciBhZnRlciBhY3F1aXJpbmcgdGhlIHNsb3Qgc2hvdWxkCistLSByZWxlYXNlIGl0LgorU0VMRUNU ICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNz aW9uX3Nsb3RfcGh5JywgdHJ1ZSk7CitETyAkJAorQkVHSU4KKyAgICBQRVJGT1JNIHBnX2xvZ2lj YWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90X3BoeScsIE5VTEwsIE5VTEwpOwor RVhDRVBUSU9OIFdIRU4gT1RIRVJTIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ2NhdWdodDogJScs IFNRTEVSUk07CitFTkQ7CiskJDsKKy0tIHRoZSBzZXNzaW9uIGlzIHN0aWxsIHVzYWJsZQorU0VM RUNUIHNsb3RfbmFtZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5jZSgncmVncmVzc2lv bl9zbG90X3QzJywgcGdfY3VycmVudF93YWxfbHNuKCkpOworCistLSBjbGVhbnVwCitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfcGh5Jyk7CitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdyZWdyZXNzaW9uX3Nsb3RfdDMnKTsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCmluZGV4IDcxZmJhZjcy MjY5Li5hYTU2ZTkwYmZhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2xvZ2ljYWxmdW5jcy5jCkBAIC0xOTcsMTAgKzE5NywxMCBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0 X2NoYW5nZXNfZ3V0cyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29s IGJpbgogCWVsc2UKIAkJZW5kX29mX3dhbCA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CiAK LQlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKE5hbWVTdHIoKm5hbWUpLCB0cnVlLCB0cnVlKTsKLQog CVBHX1RSWSgpOwogCXsKKwkJUmVwbGljYXRpb25TbG90QWNxdWlyZShOYW1lU3RyKCpuYW1lKSwg dHJ1ZSwgdHJ1ZSk7CisKIAkJLyogcmVzdGFydCBhdCBzbG90J3MgY29uZmlybWVkX2ZsdXNoICov CiAJCWN0eCA9IENyZWF0ZURlY29kaW5nQ29udGV4dChJbnZhbGlkWExvZ1JlY1B0ciwKIAkJCQkJ CQkJCW9wdGlvbnMsCkBAIC0zMjAsNiArMzIwLDkgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFu Z2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBiaW4K IAkJLyogY2xlYXIgYWxsIHRpbWV0cmF2ZWwgZW50cmllcyAqLwogCQlJbnZhbGlkYXRlU3lzdGVt Q2FjaGVzKCk7CiAKKwkJaWYgKE15UmVwbGljYXRpb25TbG90ICE9IE5VTEwpCisJCQlSZXBsaWNh dGlvblNsb3RSZWxlYXNlKCk7CisKIAkJUEdfUkVfVEhST1coKTsKIAl9CiAJUEdfRU5EX1RSWSgp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYwppbmRleCAxNmZiZDM4MzczNS4uODM2NzAz MDliOGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCkBAIC05MiwyNCArOTIsMzUg QEAgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykK IAogCUNoZWNrU2xvdFJlcXVpcmVtZW50cyhmYWxzZSk7CiAKLQljcmVhdGVfcGh5c2ljYWxfcmVw bGljYXRpb25fc2xvdChOYW1lU3RyKCpuYW1lKSwKLQkJCQkJCQkJCSBpbW1lZGlhdGVseV9yZXNl cnZlLAotCQkJCQkJCQkJIHRlbXBvcmFyeSwKLQkJCQkJCQkJCSBJbnZhbGlkWExvZ1JlY1B0cik7 CisJUEdfVFJZKCk7CisJeworCQljcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdChOYW1l U3RyKCpuYW1lKSwKKwkJCQkJCQkJCQkgaW1tZWRpYXRlbHlfcmVzZXJ2ZSwKKwkJCQkJCQkJCQkg dGVtcG9yYXJ5LAorCQkJCQkJCQkJCSBJbnZhbGlkWExvZ1JlY1B0cik7CiAKLQl2YWx1ZXNbMF0g PSBOYW1lR2V0RGF0dW0oJk15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUpOwotCW51bGxzWzBd ID0gZmFsc2U7CisJCXZhbHVlc1swXSA9IE5hbWVHZXREYXR1bSgmTXlSZXBsaWNhdGlvblNsb3Qt PmRhdGEubmFtZSk7CisJCW51bGxzWzBdID0gZmFsc2U7CiAKLQlpZiAoaW1tZWRpYXRlbHlfcmVz ZXJ2ZSkKLQl7Ci0JCXZhbHVlc1sxXSA9IExTTkdldERhdHVtKE15UmVwbGljYXRpb25TbG90LT5k YXRhLnJlc3RhcnRfbHNuKTsKLQkJbnVsbHNbMV0gPSBmYWxzZTsKKwkJaWYgKGltbWVkaWF0ZWx5 X3Jlc2VydmUpCisJCXsKKwkJCXZhbHVlc1sxXSA9IExTTkdldERhdHVtKE15UmVwbGljYXRpb25T bG90LT5kYXRhLnJlc3RhcnRfbHNuKTsKKwkJCW51bGxzWzFdID0gZmFsc2U7CisJCX0KKwkJZWxz ZQorCQkJbnVsbHNbMV0gPSB0cnVlOworCisJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRl c2MsIHZhbHVlcywgbnVsbHMpOworCQlyZXN1bHQgPSBIZWFwVHVwbGVHZXREYXR1bSh0dXBsZSk7 CiAJfQotCWVsc2UKLQkJbnVsbHNbMV0gPSB0cnVlOworCVBHX0NBVENIKCk7CisJeworCQlpZiAo TXlSZXBsaWNhdGlvblNsb3QgIT0gTlVMTCkKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJl ZChmYWxzZSk7CiAKLQl0dXBsZSA9IGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1ZXMsIG51 bGxzKTsKLQlyZXN1bHQgPSBIZWFwVHVwbGVHZXREYXR1bSh0dXBsZSk7CisJCVBHX1JFX1RIUk9X KCk7CisJfQorCVBHX0VORF9UUlkoKTsKIAogCVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKIApA QCAtMTQ4LDM4ICsxNTksNTYgQEAgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChjaGFy ICpuYW1lLCBjaGFyICpwbHVnaW4sCiAJCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6 IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlLAogCQkJCQkJICBmYWxzZSwgZmFpbG92ZXIsIGZhbHNl KTsKIAotCS8qCi0JICogRW5zdXJlIHRoZSBsb2dpY2FsIGRlY29kaW5nIGlzIGVuYWJsZWQgYmVm b3JlIGluaXRpYWxpemluZyB0aGUgbG9naWNhbAotCSAqIGRlY29kaW5nIGNvbnRleHQuCi0JICov Ci0JRW5zdXJlTG9naWNhbERlY29kaW5nRW5hYmxlZCgpOwotCUFzc2VydChJc0xvZ2ljYWxEZWNv ZGluZ0VuYWJsZWQoKSk7CisJUEdfVFJZKCk7CisJeworCQkvKgorCQkgKiBFbnN1cmUgdGhlIGxv Z2ljYWwgZGVjb2RpbmcgaXMgZW5hYmxlZCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZSBsb2dpY2Fs CisJCSAqIGRlY29kaW5nIGNvbnRleHQuCisJCSAqLworCQlFbnN1cmVMb2dpY2FsRGVjb2RpbmdF bmFibGVkKCk7CisJCUFzc2VydChJc0xvZ2ljYWxEZWNvZGluZ0VuYWJsZWQoKSk7CiAKLQkvKgot CSAqIENyZWF0ZSBsb2dpY2FsIGRlY29kaW5nIGNvbnRleHQgdG8gZmluZCBzdGFydCBwb2ludCBv ciwgaWYgd2UgZG9uJ3QKLQkgKiBuZWVkIGl0LCB0byAxKSBidW1wIHNsb3QncyByZXN0YXJ0X2xz biBhbmQgeG1pbiAyKSBjaGVjayBwbHVnaW4gc2FuaXR5LgotCSAqCi0JICogTm90ZTogd2hlbiAh ZmluZF9zdGFydHBvaW50IHRoaXMgaXMgc3RpbGwgaW1wb3J0YW50LCBiZWNhdXNlIGl0J3MgYXQK LQkgKiB0aGlzIHBvaW50IHRoYXQgdGhlIG91dHB1dCBwbHVnaW4gaXMgdmFsaWRhdGVkLgotCSAq LwotCWN0eCA9IENyZWF0ZUluaXREZWNvZGluZ0NvbnRleHQocGx1Z2luLCBOSUwsCi0JCQkJCQkJ CQlmYWxzZSwJLyoganVzdCBjYXRhbG9ncyBpcyBPSyAqLwotCQkJCQkJCQkJZmFsc2UsCS8qIG5v dCByZXBhY2sgKi8KLQkJCQkJCQkJCXJlc3RhcnRfbHNuLAotCQkJCQkJCQkJWExfUk9VVElORSgu cGFnZV9yZWFkID0gcmVhZF9sb2NhbF94bG9nX3BhZ2UsCi0JCQkJCQkJCQkJCSAgIC5zZWdtZW50 X29wZW4gPSB3YWxfc2VnbWVudF9vcGVuLAotCQkJCQkJCQkJCQkgICAuc2VnbWVudF9jbG9zZSA9 IHdhbF9zZWdtZW50X2Nsb3NlKSwKLQkJCQkJCQkJCU5VTEwsIE5VTEwsIE5VTEwpOworCQkvKgor CQkgKiBDcmVhdGUgbG9naWNhbCBkZWNvZGluZyBjb250ZXh0IHRvIGZpbmQgc3RhcnQgcG9pbnQg b3IsIGlmIHdlIGRvbid0CisJCSAqIG5lZWQgaXQsIHRvIDEpIGJ1bXAgc2xvdCdzIHJlc3RhcnRf bHNuIGFuZCB4bWluIDIpIGNoZWNrIHBsdWdpbiBzYW5pdHkuCisJCSAqCisJCSAqIE5vdGU6IHdo ZW4gIWZpbmRfc3RhcnRwb2ludCB0aGlzIGlzIHN0aWxsIGltcG9ydGFudCwgYmVjYXVzZSBpdCdz IGF0CisJCSAqIHRoaXMgcG9pbnQgdGhhdCB0aGUgb3V0cHV0IHBsdWdpbiBpcyB2YWxpZGF0ZWQu CisJCSAqLworCQljdHggPSBDcmVhdGVJbml0RGVjb2RpbmdDb250ZXh0KHBsdWdpbiwgTklMLAor CQkJCQkJCQkJCWZhbHNlLAkvKiBqdXN0IGNhdGFsb2dzIGlzIE9LICovCisJCQkJCQkJCQkJZmFs c2UsCS8qIG5vdCByZXBhY2sgKi8KKwkJCQkJCQkJCQlyZXN0YXJ0X2xzbiwKKwkJCQkJCQkJCQlY TF9ST1VUSU5FKC5wYWdlX3JlYWQgPSByZWFkX2xvY2FsX3hsb2dfcGFnZSwKKwkJCQkJCQkJCQkJ CSAgIC5zZWdtZW50X29wZW4gPSB3YWxfc2VnbWVudF9vcGVuLAorCQkJCQkJCQkJCQkJICAgLnNl Z21lbnRfY2xvc2UgPSB3YWxfc2VnbWVudF9jbG9zZSksCisJCQkJCQkJCQkJTlVMTCwgTlVMTCwg TlVMTCk7CiAKLQkvKgotCSAqIElmIGNhbGxlciBuZWVkcyB1cyB0byBkZXRlcm1pbmUgdGhlIGRl Y29kaW5nIHN0YXJ0IHBvaW50LCBkbyBzbyBub3cuCi0JICogVGhpcyBtaWdodCB0YWtlIGEgd2hp bGUuCi0JICovCi0JaWYgKGZpbmRfc3RhcnRwb2ludCkKLQkJRGVjb2RpbmdDb250ZXh0RmluZFN0 YXJ0cG9pbnQoY3R4KTsKKwkJLyoKKwkJICogSWYgY2FsbGVyIG5lZWRzIHVzIHRvIGRldGVybWlu ZSB0aGUgZGVjb2Rpbmcgc3RhcnQgcG9pbnQsIGRvIHNvIG5vdy4KKwkJICogVGhpcyBtaWdodCB0 YWtlIGEgd2hpbGUuCisJCSAqLworCQlpZiAoZmluZF9zdGFydHBvaW50KQorCQkJRGVjb2RpbmdD b250ZXh0RmluZFN0YXJ0cG9pbnQoY3R4KTsKIAotCS8qIGRvbid0IG5lZWQgdGhlIGRlY29kaW5n IGNvbnRleHQgYW55bW9yZSAqLwotCUZyZWVEZWNvZGluZ0NvbnRleHQoY3R4KTsKKwkJLyogZG9u J3QgbmVlZCB0aGUgZGVjb2RpbmcgY29udGV4dCBhbnltb3JlICovCisJCUZyZWVEZWNvZGluZ0Nv bnRleHQoY3R4KTsKKwl9CisJUEdfQ0FUQ0goKTsKKwl7CisJCS8qCisJCSAqIERyb3AgdGhlIHNs b3Qgb24gZXJyb3IuICBSZXBsaWNhdGlvblNsb3RSZWxlYXNlKCkgb25seSBkcm9wcworCQkgKiBS U19FUEhFTUVSQUwgc2xvdHMsIHNvIGZvciBSU19URU1QT1JBUlkgc2xvdHMgd2UgbXVzdCBleHBs aWNpdGx5CisJCSAqIGNhbGwgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCkgdG8gYXZvaWQg bGVhdmluZyB0aGUgc2xvdAorCQkgKiBiZWhpbmQgKGUuZy4gd2hlbiB0aGUgZXJyb3IgaXMgY2F1 Z2h0IGJ5IGEgUEwvcGdTUUwgRVhDRVBUSU9OCisJCSAqIGhhbmRsZXIgdGhhdCBkb2Vzbid0IHRl cm1pbmF0ZSB0aGUgc2Vzc2lvbikuCisJCSAqLworCQlpZiAoTXlSZXBsaWNhdGlvblNsb3QgIT0g TlVMTCkKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh0cnVlKTsKKworCQlQR19SRV9U SFJPVygpOworCX0KKwlQR19FTkRfVFJZKCk7CiB9CiAKIC8qCkBAIC0yNDMsNyArMjcyLDE4IEBA IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogCiAJQ2hlY2tTbG90 UmVxdWlyZW1lbnRzKGZhbHNlKTsKIAotCVJlcGxpY2F0aW9uU2xvdERyb3AoTmFtZVN0cigqbmFt ZSksIHRydWUpOworCVBHX1RSWSgpOworCXsKKwkJUmVwbGljYXRpb25TbG90RHJvcChOYW1lU3Ry KCpuYW1lKSwgdHJ1ZSk7CisJfQorCVBHX0NBVENIKCk7CisJeworCQlpZiAoTXlSZXBsaWNhdGlv blNsb3QgIT0gTlVMTCkKKwkJCVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKworCQlQR19SRV9U SFJPVygpOworCX0KKwlQR19FTkRfVFJZKCk7CiAKIAlQR19SRVRVUk5fVk9JRCgpOwogfQpAQCAt NTY2LDQ5ICs2MDYsNjAgQEAgcGdfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKFBHX0ZVTkNUSU9O X0FSR1MpCiAJZWxzZQogCQltb3ZldG8gPSBNaW4obW92ZXRvLCBHZXRYTG9nUmVwbGF5UmVjUHRy KE5VTEwpKTsKIAotCS8qIEFjcXVpcmUgdGhlIHNsb3Qgc28gd2UgIm93biIgaXQgKi8KLQlSZXBs aWNhdGlvblNsb3RBY3F1aXJlKE5hbWVTdHIoKnNsb3RuYW1lKSwgdHJ1ZSwgdHJ1ZSk7CisJUEdf VFJZKCk7CisJeworCQkvKiBBY3F1aXJlIHRoZSBzbG90IHNvIHdlICJvd24iIGl0ICovCisJCVJl cGxpY2F0aW9uU2xvdEFjcXVpcmUoTmFtZVN0cigqc2xvdG5hbWUpLCB0cnVlLCB0cnVlKTsKIAot CS8qIEEgc2xvdCB3aG9zZSByZXN0YXJ0X2xzbiBoYXMgbmV2ZXIgYmVlbiByZXNlcnZlZCBjYW5u b3QgYmUgYWR2YW5jZWQgKi8KLQlpZiAoIVhMb2dSZWNQdHJJc1ZhbGlkKE15UmVwbGljYXRpb25T bG90LT5kYXRhLnJlc3RhcnRfbHNuKSkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShF UlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkgZXJybXNnKCJy ZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBjYW5ub3QgYmUgYWR2YW5jZWQiLAotCQkJCQkJTmFtZVN0 cigqc2xvdG5hbWUpKSwKLQkJCQkgZXJyZGV0YWlsKCJUaGlzIHNsb3QgaGFzIG5ldmVyIHByZXZp b3VzbHkgcmVzZXJ2ZWQgV0FMLCBvciBpdCBoYXMgYmVlbiBpbnZhbGlkYXRlZC4iKSkpOworCQkv KiBBIHNsb3Qgd2hvc2UgcmVzdGFydF9sc24gaGFzIG5ldmVyIGJlZW4gcmVzZXJ2ZWQgY2Fubm90 IGJlIGFkdmFuY2VkICovCisJCWlmICghWExvZ1JlY1B0cklzVmFsaWQoTXlSZXBsaWNhdGlvblNs b3QtPmRhdGEucmVzdGFydF9sc24pKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJCSBlcnJtc2co InJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNhbm5vdCBiZSBhZHZhbmNlZCIsCisJCQkJCQkJTmFt ZVN0cigqc2xvdG5hbWUpKSwKKwkJCQkJIGVycmRldGFpbCgiVGhpcyBzbG90IGhhcyBuZXZlciBw cmV2aW91c2x5IHJlc2VydmVkIFdBTCwgb3IgaXQgaGFzIGJlZW4gaW52YWxpZGF0ZWQuIikpKTsK IAotCS8qCi0JICogQ2hlY2sgaWYgdGhlIHNsb3QgaXMgbm90IG1vdmluZyBiYWNrd2FyZHMuICBQ aHlzaWNhbCBzbG90cyByZWx5IHNpbXBseQotCSAqIG9uIHJlc3RhcnRfbHNuIGFzIGEgbWluaW11 bSBwb2ludCwgd2hpbGUgbG9naWNhbCBzbG90cyBoYXZlIGNvbmZpcm1lZAotCSAqIGNvbnN1bXB0 aW9uIHVwIHRvIGNvbmZpcm1lZF9mbHVzaCwgbWVhbmluZyB0aGF0IGluIGJvdGggY2FzZXMgZGF0 YQotCSAqIG9sZGVyIHRoYW4gdGhhdCBpcyBub3QgYXZhaWxhYmxlIGFueW1vcmUuCi0JICovCi0J aWYgKE9pZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZGF0YWJhc2UpKQotCQltaW5s c24gPSBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5jb25maXJtZWRfZmx1c2g7Ci0JZWxzZQotCQlt aW5sc24gPSBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbjsKKwkJLyoKKwkJICog Q2hlY2sgaWYgdGhlIHNsb3QgaXMgbm90IG1vdmluZyBiYWNrd2FyZHMuICBQaHlzaWNhbCBzbG90 cyByZWx5IHNpbXBseQorCQkgKiBvbiByZXN0YXJ0X2xzbiBhcyBhIG1pbmltdW0gcG9pbnQsIHdo aWxlIGxvZ2ljYWwgc2xvdHMgaGF2ZSBjb25maXJtZWQKKwkJICogY29uc3VtcHRpb24gdXAgdG8g Y29uZmlybWVkX2ZsdXNoLCBtZWFuaW5nIHRoYXQgaW4gYm90aCBjYXNlcyBkYXRhCisJCSAqIG9s ZGVyIHRoYW4gdGhhdCBpcyBub3QgYXZhaWxhYmxlIGFueW1vcmUuCisJCSAqLworCQlpZiAoT2lk SXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5kYXRhYmFzZSkpCisJCQltaW5sc24gPSBN eVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5jb25maXJtZWRfZmx1c2g7CisJCWVsc2UKKwkJCW1pbmxz biA9IE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuOwogCi0JaWYgKG1vdmV0byA8 IG1pbmxzbikKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9O T1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgYWR2YW5jZSBy ZXBsaWNhdGlvbiBzbG90IHRvICVYLyUwOFgsIG1pbmltdW0gaXMgJVgvJTA4WCIsCi0JCQkJCQlM U05fRk9STUFUX0FSR1MobW92ZXRvKSwgTFNOX0ZPUk1BVF9BUkdTKG1pbmxzbikpKSk7CisJCWlm IChtb3ZldG8gPCBtaW5sc24pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygiY2Fu bm90IGFkdmFuY2UgcmVwbGljYXRpb24gc2xvdCB0byAlWC8lMDhYLCBtaW5pbXVtIGlzICVYLyUw OFgiLAorCQkJCQkJCUxTTl9GT1JNQVRfQVJHUyhtb3ZldG8pLCBMU05fRk9STUFUX0FSR1MobWlu bHNuKSkpKTsKIAotCS8qIERvIHRoZSBhY3R1YWwgc2xvdCB1cGRhdGUsIGRlcGVuZGluZyBvbiB0 aGUgc2xvdCB0eXBlICovCi0JaWYgKE9pZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEu ZGF0YWJhc2UpKQotCQllbmRsc24gPSBwZ19sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3RfYWR2YW5j ZShtb3ZldG8pOwotCWVsc2UKLQkJZW5kbHNuID0gcGdfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xv dF9hZHZhbmNlKG1vdmV0byk7CisJCS8qIERvIHRoZSBhY3R1YWwgc2xvdCB1cGRhdGUsIGRlcGVu ZGluZyBvbiB0aGUgc2xvdCB0eXBlICovCisJCWlmIChPaWRJc1ZhbGlkKE15UmVwbGljYXRpb25T bG90LT5kYXRhLmRhdGFiYXNlKSkKKwkJCWVuZGxzbiA9IHBnX2xvZ2ljYWxfcmVwbGljYXRpb25f c2xvdF9hZHZhbmNlKG1vdmV0byk7CisJCWVsc2UKKwkJCWVuZGxzbiA9IHBnX3BoeXNpY2FsX3Jl cGxpY2F0aW9uX3Nsb3RfYWR2YW5jZShtb3ZldG8pOwogCi0JdmFsdWVzWzBdID0gTmFtZUdldERh dHVtKCZNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5uYW1lKTsKLQludWxsc1swXSA9IGZhbHNlOwor CQl2YWx1ZXNbMF0gPSBOYW1lR2V0RGF0dW0oJk15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUp OworCQludWxsc1swXSA9IGZhbHNlOwogCi0JLyoKLQkgKiBSZWNvbXB1dGUgdGhlIG1pbmltdW0g TFNOIGFuZCB4bWluIGFjcm9zcyBhbGwgc2xvdHMgdG8gYWRqdXN0IHdpdGggdGhlCi0JICogYWR2 YW5jaW5nIHBvdGVudGlhbGx5IGRvbmUuCi0JICovCi0JUmVwbGljYXRpb25TbG90c0NvbXB1dGVS ZXF1aXJlZFhtaW4oZmFsc2UpOwotCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04o KTsKKwkJLyoKKwkJICogUmVjb21wdXRlIHRoZSBtaW5pbXVtIExTTiBhbmQgeG1pbiBhY3Jvc3Mg YWxsIHNsb3RzIHRvIGFkanVzdCB3aXRoIHRoZQorCQkgKiBhZHZhbmNpbmcgcG90ZW50aWFsbHkg ZG9uZS4KKwkJICovCisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWluKGZhbHNl KTsKKwkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOworCX0KKwlQR19DQVRD SCgpOworCXsKKwkJaWYgKE15UmVwbGljYXRpb25TbG90ICE9IE5VTEwpCisJCQlSZXBsaWNhdGlv blNsb3RSZWxlYXNlKCk7CisKKwkJUEdfUkVfVEhST1coKTsKKwl9CisJUEdfRU5EX1RSWSgpOwog CiAJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOwogCkBAIC03NjMsNyArODE0LDEzIEBAIGNvcHlf cmVwbGljYXRpb25fc2xvdChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBsb2dpY2FsX3Ns b3QpCiAJLyoKIAkgKiBVcGRhdGUgdGhlIGRlc3RpbmF0aW9uIHNsb3QgdG8gY3VycmVudCB2YWx1 ZXMgb2YgdGhlIHNvdXJjZSBzbG90OwogCSAqIHJlY2hlY2sgdGhhdCB0aGUgc291cmNlIHNsb3Qg aXMgc3RpbGwgdGhlIG9uZSB3ZSBzYXcgcHJldmlvdXNseS4KKwkgKgorCSAqIFVzZSBQR19UUlkg dG8gZW5zdXJlIHdlIGRyb3AgdGhlIGRlc3RpbmF0aW9uIHNsb3QgaWYgYW55IHZhbGlkYXRpb24K KwkgKiBlcnJvciBvY2N1cnMuICBXaXRob3V0IHRoaXMsIGFuIGVycm9yIGNhdWdodCBieSBhIFBM L3BnU1FMIEVYQ0VQVElPTgorCSAqIGhhbmRsZXIgd291bGQgbGVhdmUgTXlSZXBsaWNhdGlvblNs b3Qgc2V0LCBjcmFzaGluZyBvbiB0aGUgbmV4dCBzbG90CisJICogb3BlcmF0aW9uLgogCSAqLwor CVBHX1RSWSgpOwogCXsKIAkJVHJhbnNhY3Rpb25JZCBjb3B5X2VmZmVjdGl2ZV94bWluOwogCQlU cmFuc2FjdGlvbklkIGNvcHlfZWZmZWN0aXZlX2NhdGFsb2dfeG1pbjsKQEAgLTc5Nyw5ICs4NTQs NiBAQCBjb3B5X3JlcGxpY2F0aW9uX3Nsb3QoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wg bG9naWNhbF9zbG90KQogCQkgKiBvciB0aGUgcmVzdGFydF9sc24gZWl0aGVyIGlzIGludmFsaWQg b3IgaGFzIGdvbmUgYmFja3dhcmQuIChUaGUKIAkJICogcmVzdGFydF9sc24gY291bGQgZ28gYmFj a3dhcmRzIGlmIHRoZSBzb3VyY2Ugc2xvdCBpcyBkcm9wcGVkIGFuZAogCQkgKiBjb3BpZWQgZnJv bSBhbiBvbGRlciBzbG90IGR1cmluZyBpbnN0YWxsYXRpb24uKQotCQkgKgotCQkgKiBTaW5jZSBl cnJvcmluZyBvdXQgd2lsbCByZWxlYXNlIGFuZCBkcm9wIHRoZSBkZXN0aW5hdGlvbiBzbG90IHdl Ci0JCSAqIGRvbid0IG5lZWQgdG8gcmVsZWFzZSBpdCBoZXJlLgogCQkgKi8KIAkJaWYgKGNvcHlf cmVzdGFydF9sc24gPCBzcmNfcmVzdGFydF9sc24gfHwKIAkJCXNyY19pc2xvZ2ljYWwgIT0gY29w eV9pc2xvZ2ljYWwgfHwKQEAgLTg1Nyw2ICs5MTEsMTkgQEAgY29weV9yZXBsaWNhdGlvbl9zbG90 KEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxvZ2ljYWxfc2xvdCkKIAkJfQogI2VuZGlm CiAJfQorCVBHX0NBVENIKCk7CisJeworCQkvKgorCQkgKiBEcm9wIHRoZSBuZXdseS1jcmVhdGVk IGRlc3RpbmF0aW9uIHNsb3Qgb24gZXJyb3IuIFNhbWUgYXMgaW4KKwkJICogY3JlYXRlX2xvZ2lj YWxfcmVwbGljYXRpb25fc2xvdCgpOiB1c2UgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCkK KwkJICogdG8gaGFuZGxlIGJvdGggUlNfRVBIRU1FUkFMIGFuZCBSU19URU1QT1JBUlkgc2xvdHMu CisJCSAqLworCQlpZiAoTXlSZXBsaWNhdGlvblNsb3QgIT0gTlVMTCkKKwkJCVJlcGxpY2F0aW9u U2xvdERyb3BBY3F1aXJlZCh0cnVlKTsKKworCQlQR19SRV9USFJPVygpOworCX0KKwlQR19FTkRf VFJZKCk7CiAKIAkvKiB0YXJnZXQgc2xvdCBmdWxseSBjcmVhdGVkLCBtYXJrIGFzIHBlcnNpc3Rl bnQgaWYgbmVlZGVkICovCiAJaWYgKGxvZ2ljYWxfc2xvdCAmJiAhdGVtcG9yYXJ5KQotLSAKMi40 My4wCgo= --00000000000067988c0652ede01f--