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 1whpMR-000RQM-0G for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 14:04:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1whpMN-00DImo-36 for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jul 2026 14:04:16 +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 1whpMN-00DImf-01 for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 14:04:16 +0000 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1whpMK-00000000KLR-1zFo for pgsql-hackers@lists.postgresql.org; Thu, 09 Jul 2026 14:04:14 +0000 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-3812af5b025so198647a91.0 for ; Thu, 09 Jul 2026 07:04:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1783605852; cv=none; d=google.com; s=arc-20260327; b=KBggvApcC0Fg3AZMRvPPLO5D15G3pCXcOwpLuXfPQnQ4XuwD/J4OmdErwMJ6cWEkXZ qa2V+YScpQxadC+mi0fnwh2pgEHH1uarQ7t6b42e4Ubs4FrnsMSQc9dndJQrecw65BCl pjULo69Fy5C2Gxr5944CL2vqv8dt0mMLjf/gn3Hhidk0ZaLtoY/JIsJMAz9g+Y0kyPuW utbM7g1rmQ7sGHmR11DuWAlLwqgHcL4enzibfMHnrrHizBbrCE1yQr6tiNDZsrHuwI9d qwrqz9slCQvs/AF+vDFdSC+CZ714vsPZUS+WwOIcd3refuDmOCxRAzOEpmUyvK0MaAtW wggg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=unZ8Qu0CVYu8Jps1/EdhySh7lX+1I4Vc/MNXIyOqDoY=; fh=uwqUegRtdPpLMWsFRPPAkeIs98WP9ZfrNreIw9KA1Jw=; b=LFDSif2WkuFgcl1FSNvCHgSHjs1Sw8N2HnCIzpzU4JrWqbzmAXXODt0XZtJ9O626oJ IA9vjhiEpO4rFqt/aa+Oda7v/rmxbxJNadYsj3ioHcB0rmWasZl2Ty7tnB5b26/ADfrc HcRZuI+Y8ayDJKoEf9MdtvyTPgv5KOBWFHiwqME/aVJHzULxJ4H+Mom2LoUYkl/Xr8Pz HcX9Z8cqqtQRRwZANTzCqW/nFK4KWHh/jKdPvdiV7Asy2h6s88HhAU3t7Ert4hR1RzTA GlhfPim2izkVpn64Wfq7SLmEn6CUhxFSGJt9QSIHp+KO5IbSE3imIukhow3DFoEC+alY 4LKQ==; 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=1783605852; x=1784210652; darn=lists.postgresql.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=unZ8Qu0CVYu8Jps1/EdhySh7lX+1I4Vc/MNXIyOqDoY=; b=kmp35Mifu5OzdQG8inbV09Mr7CTGAm5oJ9RfEKNClvhGsthUgzxqyz/lwuZyuywLM4 ZOUG6gnqs+FGS0EwLSVGQAX+lqBaQGRE8p9iDYqJzD3KTm2/PpUxkqsrbdqb25Z9NY/A mn5VCZzSRfbtjKu3Mr09jdDJ71eh+RY2KXxmRJtSJijYtTnrCR7+oYqeTAmGJ0oKnHVH EQX9eEwvK7nM0Ac6hrtpYmOyx2l6U3BwJoiL3hgrf7mnMusl0Iw6oXqPEoTuIKQw4hi8 52GYE8NZK5GpAmnLNC+umDuRmf8nmzJDG2KZWNHP2BCU8IZjiJOPksvZ5GaLe5tmgN5Q qHrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783605852; x=1784210652; h=content-type: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:content-type; bh=unZ8Qu0CVYu8Jps1/EdhySh7lX+1I4Vc/MNXIyOqDoY=; b=p45x5IehwOhSNEGO57glYvrjlEt2fMeVdlGsZUkulfzy1spVU4wQn1aSzKHeE5VFri Gl8oYHKM9Z0UrfFrHafmuzJtA90YHx9fcxegjCLA8GhiLYprqkSomXNEf/igYL3kGuNm fO6ZoJPTNBY4n8HS9Ca88TaANdH3dZDiE0qAXlDdh34d8wTECBsrfv7tpJMFYbwsV8Rs oblepd3IP0lpupTE1+BfGwT3GPPUTMH9TDKgbDDOOfdTm2nIV+T69zu5a+sMwf0USKsV SDLpMncTflPnykZZuP6K3TVpMNFWbDaIiGviAxitdr3sIsVLuiSIm2FlNLPkikGLZQbR UZfg== X-Forwarded-Encrypted: i=1; AHgh+RrI+RuOZoO67o3bfrJeXYExFEcGQNlAonmJM5FQmf5camz5qn3fteVftXIpoqgEIh6hRDLlKJd6/lgtBWYu@lists.postgresql.org X-Gm-Message-State: AOJu0YxYPFU0U7axmmlXMut3eael7zXxb2zg/sXGckLPdM4VKrjZPhZJ U+GAEJe4E3ZGxqi1gYSoSQxsy6Z23/3HZU2wkUwdeJHeR7fvsqGvOEoCSXBmVLLbj3mvESUsGPf JlbVKG+jWlU8XpiS8fmGHjm3uC3SjF04= X-Gm-Gg: AfdE7clJk3H+az4paw9Xa2OkB1HAMf2QfZNVcFXdcZ8WvvGAEQHzn75pw5WjmHgy2gx pYo3sOrDMBKCneSuspVtczJIn8b3Lyj11/qRahyKb7S/ArfxMJ23laLEPqHSOw3uz+ZrmaXBW9q wt4bvsom9ABSNp7ggyOpguyGYQuw2ckhWrCnha2Fu/xzJSr3RpxWJV/u9YlX56is9lT6nLeMO03 Rdbrz06sPx+GsKs4pO8REGi9//51ONVve9XmJ6AAr+AZVkgoQaUb2wbX6qXR/JTlu6F/0LW X-Received: by 2002:a17:90b:2d08:b0:381:28e0:6248 with SMTP id 98e67ed59e1d1-38a1f1dd5c1mr3621907a91.1.1783605851488; Thu, 09 Jul 2026 07:04:11 -0700 (PDT) MIME-Version: 1.0 References: <20250718175314.4513c00a@karst> <20250729174852.14f23557@karst> In-Reply-To: From: Nikita Malakhov Date: Thu, 9 Jul 2026 17:03:58 +0300 X-Gm-Features: AUfX_mwTt6A2g-EWSdnaCKp-gEJpxwW-D2AL73PuKxh6QaRdOt2U7Eyl3FpXA0M Message-ID: Subject: Re: [(known) BUG] DELETE/UPDATE more than one row in partitioned foreign table To: Etsuro Fujita Cc: Michael Paquier , Jehan-Guillaume de Rorthais , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000032a1be06562e198b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000032a1be06562e198b Content-Type: multipart/alternative; boundary="00000000000032a1be06562e1989" --00000000000032a1be06562e1989 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi hackers! I've fixed the issue mentioned in two previous messages, so for anyone already have taken my patch set above I'd compiled a fixed patch set. It does not object an approach proposed by Etsuro-san. The first patch file v4-0001-copy-and-remote-tableoid-param.patch is a core patch introducing extended copy slot and tuple facilities and core machinery for remote table OIDs; The second file v4-0002-teach-fdw-use-remote-tableoid.patch is a fdw facilities changes (fixed) to use remote table OID. On Mon, Jun 15, 2026 at 5:55=E2=80=AFPM Etsuro Fujita wrote: > On Sun, Jun 14, 2026 at 4:43=E2=80=AFAM Nikita Malakhov wrote: > > While testing the proposed solution we've stumbled upon another vanilla > bug related to FDW - > > a query with DELETE ... USING selects invalid records from partitioned > FDW tables: > > > CREATE TABLE acc_entry > > ( > > id bigint, > > doc_date date, > > impact int, > > amount numeric > > ) PARTITION BY RANGE (doc_date); > > > > CREATE TABLE acc_entry_p1 > > PARTITION OF acc_entry > > FOR VALUES FROM ('2025-01-01') TO ('2025-07-01'); > > > > CREATE TABLE acc_entry_p2 > > PARTITION OF acc_entry > > FOR VALUES FROM ('2025-07-01') TO ('2026-01-01'); > > > > CREATE FOREIGN TABLE measurement_fdw > > ( > > id bigint, > > doc_date date, > > impact int, > > amount numeric > > ) > > SERVER loopback > > OPTIONS (table_name 'acc_entry'); > > > > INSERT INTO acc_entry > > SELECT > > CASE > > WHEN g IN (4,15,26,35,46,55,66,75,86,95) > > THEN 2501020100000124 > > ELSE g > > END AS id, > > CASE WHEN g % 2 =3D 0 THEN timestamp '2025-02-02' ELSE timestamp > '2025-08-08' END, > > 1, > > g > > FROM generate_series(1,100) g; > > > > DELETE FROM measurement_fdw > > USING ( > > SELECT id > > FROM measurement_fdw > > WHERE id =3D 2501020100000124 > > LIMIT 1 > > ) s > > WHERE measurement_fdw.id =3D s.id; > > > > The latter query selects and deletes records with invalid ID which > should not be selected at all. > > I think that that would be another example that the bug discussed here > causes unexpected results, as I have this after inserting the data > into the partitioned table: > > select tableoid::regclass, ctid, * from acc_entry where ctid in > (select ctid from acc_entry where id =3D 2501020100000124); > tableoid | ctid | id | doc_date | impact | amount > --------------+--------+------------------+------------+--------+-------- > acc_entry_p1 | (0,2) | 2501020100000124 | 2025-02-02 | 1 | 4 > acc_entry_p1 | (0,8) | 16 | 2025-02-02 | 1 | 16 > acc_entry_p1 | (0,13) | 2501020100000124 | 2025-02-02 | 1 | 26 > acc_entry_p1 | (0,18) | 36 | 2025-02-02 | 1 | 36 > acc_entry_p1 | (0,23) | 2501020100000124 | 2025-02-02 | 1 | 46 > acc_entry_p1 | (0,28) | 56 | 2025-02-02 | 1 | 56 > acc_entry_p1 | (0,33) | 2501020100000124 | 2025-02-02 | 1 | 66 > acc_entry_p1 | (0,38) | 76 | 2025-02-02 | 1 | 76 > acc_entry_p1 | (0,43) | 2501020100000124 | 2025-02-02 | 1 | 86 > acc_entry_p1 | (0,48) | 96 | 2025-02-02 | 1 | 96 > acc_entry_p2 | (0,2) | 3 | 2025-08-08 | 1 | 3 > acc_entry_p2 | (0,8) | 2501020100000124 | 2025-08-08 | 1 | 15 > acc_entry_p2 | (0,13) | 25 | 2025-08-08 | 1 | 25 > acc_entry_p2 | (0,18) | 2501020100000124 | 2025-08-08 | 1 | 35 > acc_entry_p2 | (0,23) | 45 | 2025-08-08 | 1 | 45 > acc_entry_p2 | (0,28) | 2501020100000124 | 2025-08-08 | 1 | 55 > acc_entry_p2 | (0,33) | 65 | 2025-08-08 | 1 | 65 > acc_entry_p2 | (0,38) | 2501020100000124 | 2025-08-08 | 1 | 75 > acc_entry_p2 | (0,43) | 85 | 2025-08-08 | 1 | 85 > acc_entry_p2 | (0,48) | 2501020100000124 | 2025-08-08 | 1 | 95 > (20 rows) > > Note that the rows with normal ids have the same ctid as the rows with > id=3D2501020100000124 (for example, ctid of the row with id=3D3 is (0,2), > which is the same as that of the first row, which has > id=3D2501020100000124), so the bug would delete such normal-id rows as > well when performing the delete query. > > Best regards, > Etsuro Fujita > --=20 Regards, Nikita Malakhov Postgres Professional The Russian Postgres Company https://postgrespro.ru/ --00000000000032a1be06562e1989 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi hackers!

I've f= ixed the issue mentioned in two previous messages, so for anyone already ha= ve=C2=A0taken
my patch set above I'd=C2=A0compiled a fixed pa= tch set. It does not object an approach
proposed by Etsuro-san.

The first patch file
v4-0001-copy-and-rem= ote-tableoid-param.patch
is a core patch introducing extended cop= y slot and tuple facilities
and core machinery for remote table O= IDs;

The second file
v4-0002-teach-fdw-u= se-remote-tableoid.patch
is a fdw facilities changes (fixed) to u= se remote table OID.

On Mon, Jun 15, = 2026 at 5:55=E2=80=AFPM Etsuro Fujita <etsuro.fujita@gmail.com> wrote:
On Sun, Jun 14, 2026 at 4:43=E2=80=AFAM Ni= kita Malakhov <hu= kutoc@gmail.com> wrote:
> While testing the proposed solution we've stumbled upon another va= nilla bug related to FDW -
> a query with DELETE ... USING selects invalid records from partitioned= FDW tables:

> CREATE TABLE acc_entry
> (
>=C2=A0 =C2=A0 =C2=A0id bigint,
>=C2=A0 =C2=A0 =C2=A0doc_date date,
>=C2=A0 =C2=A0 =C2=A0impact int,
>=C2=A0 =C2=A0 =C2=A0amount numeric
> ) PARTITION BY RANGE (doc_date);
>
> CREATE TABLE acc_entry_p1
> PARTITION OF acc_entry
> FOR VALUES FROM ('2025-01-01') TO ('2025-07-01');
>
> CREATE TABLE acc_entry_p2
> PARTITION OF acc_entry
> FOR VALUES FROM ('2025-07-01') TO ('2026-01-01');
>
> CREATE FOREIGN TABLE measurement_fdw
> (
>=C2=A0 =C2=A0 =C2=A0id bigint,
>=C2=A0 =C2=A0 =C2=A0doc_date date,
>=C2=A0 =C2=A0 =C2=A0impact int,
>=C2=A0 =C2=A0 =C2=A0amount numeric
> )
> SERVER loopback
> OPTIONS (table_name 'acc_entry');
>
> INSERT INTO acc_entry
> SELECT
>=C2=A0 =C2=A0 =C2=A0CASE
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0WHEN g IN (4,15,26,35,46,55,66,75,86,= 95)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0THEN 2501020100000124 >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ELSE g
>=C2=A0 =C2=A0 =C2=A0END AS id,
>=C2=A0 =C2=A0 =C2=A0CASE WHEN g % 2 =3D 0 THEN timestamp '2025-02-0= 2' ELSE timestamp '2025-08-08' END,
>=C2=A0 =C2=A0 =C2=A01,
>=C2=A0 =C2=A0 =C2=A0g
> FROM generate_series(1,100) g;
>
> DELETE FROM measurement_fdw
> USING (
>=C2=A0 =C2=A0 =C2=A0SELECT id
>=C2=A0 =C2=A0 =C2=A0FROM measurement_fdw
>=C2=A0 =C2=A0 =C2=A0WHERE id =3D 2501020100000124
>=C2=A0 =C2=A0 =C2=A0LIMIT 1
> ) s
> WHERE measurement_fdw.id =3D s.id;
>
> The latter query selects and deletes records with invalid ID which sho= uld not be selected at all.

I think that that would be another example that the bug discussed here
causes unexpected results, as I have this after inserting the data
into the partitioned table:

select tableoid::regclass, ctid, * from acc_entry where ctid in
(select ctid from acc_entry where id =3D 2501020100000124);
=C2=A0 =C2=A0tableoid=C2=A0 =C2=A0|=C2=A0 ctid=C2=A0 |=C2=A0 =C2=A0 =C2=A0 = =C2=A0 id=C2=A0 =C2=A0 =C2=A0 =C2=A0 |=C2=A0 doc_date=C2=A0 | impact | amou= nt
--------------+--------+------------------+------------+--------+-------- =C2=A0acc_entry_p1 | (0,2)=C2=A0 | 2501020100000124 | 2025-02-02 |=C2=A0 = =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A0 4
=C2=A0acc_entry_p1 | (0,8)=C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A016 | 2025-02-02 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A0= 16
=C2=A0acc_entry_p1 | (0,13) | 2501020100000124 | 2025-02-02 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A026
=C2=A0acc_entry_p1 | (0,18) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A036 | 2025-02-02 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A036 =C2=A0acc_entry_p1 | (0,23) | 2501020100000124 | 2025-02-02 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A046
=C2=A0acc_entry_p1 | (0,28) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A056 | 2025-02-02 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A056 =C2=A0acc_entry_p1 | (0,33) | 2501020100000124 | 2025-02-02 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A066
=C2=A0acc_entry_p1 | (0,38) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A076 | 2025-02-02 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A076 =C2=A0acc_entry_p1 | (0,43) | 2501020100000124 | 2025-02-02 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A086
=C2=A0acc_entry_p1 | (0,48) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A096 | 2025-02-02 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A096 =C2=A0acc_entry_p2 | (0,2)=C2=A0 |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 3 | 2025-08-08 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A0= 3
=C2=A0acc_entry_p2 | (0,8)=C2=A0 | 2501020100000124 | 2025-08-08 |=C2=A0 = =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A015
=C2=A0acc_entry_p2 | (0,13) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A025 | 2025-08-08 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A025 =C2=A0acc_entry_p2 | (0,18) | 2501020100000124 | 2025-08-08 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A035
=C2=A0acc_entry_p2 | (0,23) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A045 | 2025-08-08 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A045 =C2=A0acc_entry_p2 | (0,28) | 2501020100000124 | 2025-08-08 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A055
=C2=A0acc_entry_p2 | (0,33) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A065 | 2025-08-08 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A065 =C2=A0acc_entry_p2 | (0,38) | 2501020100000124 | 2025-08-08 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A075
=C2=A0acc_entry_p2 | (0,43) |=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A085 | 2025-08-08 |=C2=A0 =C2=A0 =C2=A0 1 |=C2=A0 =C2=A0 =C2=A085 =C2=A0acc_entry_p2 | (0,48) | 2501020100000124 | 2025-08-08 |=C2=A0 =C2=A0 = =C2=A0 1 |=C2=A0 =C2=A0 =C2=A095
(20 rows)

Note that the rows with normal ids have the same ctid as the rows with
id=3D2501020100000124 (for example, ctid of the row with id=3D3 is (0,2), which is the same as that of the first row, which has
id=3D2501020100000124), so the bug would delete such normal-id rows as
well when performing the delete query.

Best regards,
Etsuro Fujita


--
Regards,
Nikita Malakhov
Postgr= es Professional
The Russian Postgre= s Company
<= /div> --00000000000032a1be06562e1989-- --00000000000032a1be06562e198b Content-Type: application/octet-stream; name="v4-0001-copy-and-remote-tableoid-param.patch" Content-Disposition: attachment; filename="v4-0001-copy-and-remote-tableoid-param.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrdkqj130 RnJvbSA3YzAzY2QxMTU2YjVlMWVjYmI1YzA2M2EyMmZiYTNhMDQ3YTAyYzI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgTWFsYWtob3YgPG4ubWFsYWtob3ZAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IFRodSwgOSBKdWwgMjAyNiAxNjoyMTozMiArMDMwMApTdWJqZWN0OiBbUEFU Q0hdIERFTEVURS9VUERBVEUgbW9yZSB0aGFuIG9uZSByb3cgaW4gcGFydGl0aW9uZWQgZm9yZWln biB0YWJsZQogKDEvMikKClRoZXJlIGlzIGtub3duIGJ1ZyBpbiBkZWxldGUgYW5kIHVwZGF0ZSBy b3dzIGluIHBhcnRpdGlvbmVkIGZvcmVpZ24KdGFibGVzIHZpYSBGRFcgWzFdCgpDdXJyZW50IGNv cHlUdXBsZSBhbmQgY29weVNsb3QgbWFjaGluZXJ5IHN1cHBvc2VzIHRoYXQKc291cmNlIGFuZCBk ZXN0aW5hdGlvbiBzbG90cyBhbmQgdHVwbGVzIGFsd2F5cyBtYXRjaC4gVGhpcyBwYXRjaCBtb2Rp Zmllcwpjb3B5IGludGVybmFscyB0byBjb25zaWRlciBtb3JlIGNvbXBsZXggY2FzZSBhbmQgY29w eSBvbmx5IGFjdHVhbCBhdHRyaWJ1dGVzLAphbmQgaWYgZGVzdGluYXRpb24gc2xvdC90dXBsZSBo YXMgbW9yZSB0aGV5IGFyZSBzZXQgdG8gbnVsbC4gVGhpcyBpcyBhIHByb29mCm9mIGNvbmNlcHQg cGF0Y2ggd2hpY2ggc2hvd3Mgc3VjaCBtZWNoYW5pY3MgZG9lcyBub3QgYnJlYWsgYW55dGhpbmcg YW5kCmFsbG93cyB0byB1c2UgaXQgaW4gY2FzZXMgd2hlbiB3ZSBoYXZlIHRvIHBhc3Mgb3IgcmVj ZWl2ZSBub3QgbWF0Y2hpbmcgbnVtYmVyCm9mIGF0dHJpYnV0ZXMuCgpDb3JlIHBhdGNoIC0gaW50 cm9kdWN0aW9uIG9mIHJlbW90ZSB0YWJsZSBPSUQgcmV0dXJuZWQgZnJvbSByZW1vdGUKcXVlcnkg YW5kIHBhc3NpbmcgaXQgdGhyb3VnaCBwbGFubmVyIGFuZCBleGVjdXRvciB0byB1c2UgaW4gZm9y ZWlnbgpxdWVyaWVzCgpbMV0gRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcv bWVzc2FnZS1pZC9mbGF0LzIwMjUwNzE4MTc1MzE0LjQ1MTNjMDBhJTQwa2Fyc3QKLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvY29tbW9uL2hlYXB0dXBsZS5jICAgfCAxMjcgKysrKysrKysrKysrKysr KysrKysrKy0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYyAgICAgfCAgIDMg Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICB8ICAgNCArCiBzcmMv YmFja2VuZC9leGVjdXRvci9leGVjVHVwbGVzLmMgICAgICAgfCAxMDcgKysrKysrKysrKysrKyst LS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVGb3JlaWduc2Nhbi5jICB8ICAgMiArCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jICAgfCAgMjAgKysrKwogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIHwgIDE5ICsrKysKIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jICB8ICA0NSArKysrKysrKysKIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICB8ICAxNCArKy0KIHNyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3NldHJlZnMuYyAgICB8ICA1NiArKysrKysrKysrKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMgIHwgICA3ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9hcHBlbmRpbmZvLmMgfCAgMjcgKysrKysKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGls L2luaGVyaXQuYyAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2Rl LmMgICAgfCAgMjEgKysrKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvdGxpc3QuYyAgICAg IHwgIDM5ICsrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAg fCAgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9odHVwX2RldGFpbHMuaCAgICAgICB8ICAyMiAr KysrCiBzcmMvaW5jbHVkZS9leGVjdXRvci90dXB0YWJsZS5oICAgICAgICAgfCAgNDIgKysrKysr LS0KIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICB8ICAgNyArKwogc3Jj L2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgIHwgICAxICsKIDIwIGZpbGVzIGNo YW5nZWQsIDUwMCBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2hlYXB0dXBsZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi9oZWFwdHVwbGUuYwppbmRleCBmMzAzNDY0NjllZC4uZDRmYmQ5NjJlYzEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vaGVhcHR1cGxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2NvbW1vbi9oZWFwdHVwbGUuYwpAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1 ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3R1cGRlc2NfZGV0YWlscy5o IgogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm4uaCIKKyNpbmNsdWRlICJleGVjdXRvci90dXB0YWJs ZS5oIgogI2luY2x1ZGUgInV0aWxzL2RhdHVtLmgiCiAjaW5jbHVkZSAidXRpbHMvZXhwYW5kZWRk YXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2hzZWFyY2guaCIKQEAgLTIxOSwxMSArMjIwLDMwIEBA IFNpemUKIGhlYXBfY29tcHV0ZV9kYXRhX3NpemUoVHVwbGVEZXNjIHR1cGxlRGVzYywKIAkJCQkJ ICAgY29uc3QgRGF0dW0gKnZhbHVlcywKIAkJCQkJICAgY29uc3QgYm9vbCAqaXNudWxsKQorewor CXJldHVybiBoZWFwX2NvbXB1dGVfZGF0YV9zaXplX2V4dCh0dXBsZURlc2MsIHZhbHVlcywgaXNu dWxsLAorCQkJCQkJCQkJICAtIDEgLyogdGFrZSBuYXR0cyBmcm9tIHR1cGxlRGVzYyAqLyk7Cit9 CisKKy8qCisgKiBoZWFwX2NvbXB1dGVfZGF0YV9zaXplX2V4dAorICoJCVNhbWUgYXMgYWJvdmUs IGJ1dCBhbGxvd3MgdG8gc3BlY2lmeSBudW1iZXIgb2YgYXR0cmlidXRlcyBleHBsaWNpdGx5Lgor ICoKKyAqIElmICJuYXR0cyIgPD0gMCwgdGhlbiBudW1iZXIgb2YgYXR0cmlidXRlcyBpcyB0YWtl biBmcm9tIHRoZSBUdXBsZURlc2MuCisgKi8KK1NpemUKK2hlYXBfY29tcHV0ZV9kYXRhX3NpemVf ZXh0KFR1cGxlRGVzYyB0dXBsZURlc2MsCisgCQkJCQkgICBjb25zdCBEYXR1bSAqdmFsdWVzLAor CQkJCQkgICBjb25zdCBib29sICppc251bGwsCisJCQkJCSAgIGludCBuYXR0cykKIHsKIAlTaXpl CQlkYXRhX2xlbmd0aCA9IDA7CiAJaW50CQkJaTsKIAlpbnQJCQludW1iZXJPZkF0dHJpYnV0ZXMg PSB0dXBsZURlc2MtPm5hdHRzOwogCisJaWYgKG5hdHRzID4gMCkKKwkJbnVtYmVyT2ZBdHRyaWJ1 dGVzID0gbmF0dHM7CisKIAlmb3IgKGkgPSAwOyBpIDwgbnVtYmVyT2ZBdHRyaWJ1dGVzOyBpKysp CiAJewogCQlEYXR1bQkJdmFsOwpAQCAtNDAyLDYgKzQyMiwyMiBAQCBoZWFwX2ZpbGxfdHVwbGUo VHVwbGVEZXNjIHR1cGxlRGVzYywKIAkJCQljb25zdCBEYXR1bSAqdmFsdWVzLCBjb25zdCBib29s ICppc251bGwsCiAJCQkJY2hhciAqZGF0YSwgU2l6ZSBkYXRhX3NpemUsCiAJCQkJdWludDE2ICpp bmZvbWFzaywgdWludDggKmJpdCkKK3sKKwloZWFwX2ZpbGxfdHVwbGVfZXh0KHR1cGxlRGVzYywg dmFsdWVzLCBpc251bGwsICBkYXRhLCBkYXRhX3NpemUsIGluZm9tYXNrLAorCQkJCQkJYml0LCAt MSAvKiB0YWtlIG5hdHRzIGZyb20gdHVwbGVEZXNjICovKTsKK30KKworLyoKKyAqIGhlYXBfZmls bF90dXBsZV9leHQKKyAqICAgICAgICAgICAgIFNhbWUgYXMgYWJvdmUsIGJ1dCBhbGxvd3MgdG8g c3BlY2lmeSBudW1iZXIgb2YgYXR0cmlidXRlcyBleHBsaWNpdGx5LgorICoKKyAqIElmICJuYXR0 cyIgPD0gMCwgdGhlbiBudW1iZXIgb2YgYXR0cmlidXRlcyBpcyB0YWtlbiBmcm9tIHRoZSBUdXBs ZURlc2MuCisgKi8KK3ZvaWQKK2hlYXBfZmlsbF90dXBsZV9leHQoVHVwbGVEZXNjIHR1cGxlRGVz YywKKwkJCQkJY29uc3QgRGF0dW0gKnZhbHVlcywgY29uc3QgYm9vbCAqaXNudWxsLAorCQkJCQlj aGFyICpkYXRhLCBTaXplIGRhdGFfc2l6ZSwKKwkJCQkJdWludDE2ICppbmZvbWFzaywgdWludDgg KmJpdCwgaW50IG5hdHRzKQogewogCXVpbnQ4CSAgICpiaXRQOwogCWludAkJCWJpdG1hc2s7CkBA IC00MTIsNiArNDQ4LDkgQEAgaGVhcF9maWxsX3R1cGxlKFR1cGxlRGVzYyB0dXBsZURlc2MsCiAJ Y2hhcgkgICAqc3RhcnQgPSBkYXRhOwogI2VuZGlmCiAKKwlpZiAobmF0dHMgPiAwKQorCQludW1i ZXJPZkF0dHJpYnV0ZXMgPSBuYXR0czsKKwogCWlmIChiaXQgIT0gTlVMTCkKIAl7CiAJCWJpdFAg PSAmYml0Wy0xXTsKQEAgLTY4NCwxOCArNzIzLDQ4IEBAIGhlYXBfZ2V0c3lzYXR0cihIZWFwVHVw bGUgdHVwLCBpbnQgYXR0bnVtLCBUdXBsZURlc2MgdHVwbGVEZXNjLCBib29sICppc251bGwpCiAg Ki8KIEhlYXBUdXBsZQogaGVhcF9jb3B5dHVwbGUoSGVhcFR1cGxlIHR1cGxlKQoreworCXJldHVy biBoZWFwX2NvcHl0dXBsZV9leHQodHVwbGUsIE5VTEwsIC0xKTsKK30KKworLyogLS0tLS0tLS0t LS0tLS0tLQorICoJCWhlYXBfY29weXR1cGxlX2V4dAorICoKKyAqCQlyZXR1cm5zIGEgY29weSBv ZiBhIHR1cGxlIGNvbnNpc3RzIG9mIGF0dG51bSBhdHRzIG9mIG9yaWdpbmFsCisgKgorICogVGhl IEhlYXBUdXBsZSBzdHJ1Y3QsIHR1cGxlIGhlYWRlciwgYW5kIHR1cGxlIGRhdGEgYXJlIGFsbCBh bGxvY2F0ZWQKKyAqIGFzIGEgc2luZ2xlIHBhbGxvYygpIGJsb2NrLgorICogLS0tLS0tLS0tLS0t LS0tLQorICovCitIZWFwVHVwbGUKK2hlYXBfY29weXR1cGxlX2V4dChIZWFwVHVwbGUgdHVwbGUs IFR1cGxlVGFibGVTbG90ICpzbG90LCBpbnQgZHN0bmF0dHMpCiB7CiAJSGVhcFR1cGxlCW5ld1R1 cGxlOworCVNpemUJCXR1cGxlbjsKIAogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkgfHwg dHVwbGUtPnRfZGF0YSA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAotCW5ld1R1cGxlID0gKEhl YXBUdXBsZSkgcGFsbG9jKEhFQVBUVVBMRVNJWkUgKyB0dXBsZS0+dF9sZW4pOwotCW5ld1R1cGxl LT50X2xlbiA9IHR1cGxlLT50X2xlbjsKKwl0dXBsZW4gPSB0dXBsZS0+dF9sZW47CisKKwlpZiAo c2xvdCAhPSBOVUxMKQorCXsKKwkJaWYgKGRzdG5hdHRzIDwgMCkKKwkJCWRzdG5hdHRzID0gc2xv dC0+dHRzX3R1cGxlRGVzY3JpcHRvci0+bmF0dHM7CisKKwkJaWYgKGRzdG5hdHRzIDwgc2xvdC0+ dHRzX3R1cGxlRGVzY3JpcHRvci0+bmF0dHMpCisJCQl0dXBsZW4gPSBoZWFwX2NvbXB1dGVfZGF0 YV9zaXplX2V4dChzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yLAorCQkJCQkJCQkJCQkJc2xvdC0+ dHRzX3ZhbHVlcywKKwkJCQkJCQkJCQkJCXNsb3QtPnR0c19pc251bGwsCisJCQkJCQkJCQkJCQlk c3RuYXR0cyk7CisJfQorCisJbmV3VHVwbGUgPSAoSGVhcFR1cGxlKSBwYWxsb2MoSEVBUFRVUExF U0laRSArIHR1cGxlbik7CisJbmV3VHVwbGUtPnRfbGVuID0gdHVwbGVuOwogCW5ld1R1cGxlLT50 X3NlbGYgPSB0dXBsZS0+dF9zZWxmOwogCW5ld1R1cGxlLT50X3RhYmxlT2lkID0gdHVwbGUtPnRf dGFibGVPaWQ7CiAJbmV3VHVwbGUtPnRfZGF0YSA9IChIZWFwVHVwbGVIZWFkZXIpICgoY2hhciAq KSBuZXdUdXBsZSArIEhFQVBUVVBMRVNJWkUpOwotCW1lbWNweShuZXdUdXBsZS0+dF9kYXRhLCB0 dXBsZS0+dF9kYXRhLCB0dXBsZS0+dF9sZW4pOworCW1lbWNweShuZXdUdXBsZS0+dF9kYXRhLCB0 dXBsZS0+dF9kYXRhLCB0dXBsZW4pOwogCXJldHVybiBuZXdUdXBsZTsKIH0KIApAQCAtMTAyNSw2 ICsxMDk0LDIxIEBAIEhlYXBUdXBsZQogaGVhcF9mb3JtX3R1cGxlKFR1cGxlRGVzYyB0dXBsZURl c2NyaXB0b3IsCiAJCQkJY29uc3QgRGF0dW0gKnZhbHVlcywKIAkJCQljb25zdCBib29sICppc251 bGwpCit7CisJcmV0dXJuIGhlYXBfZm9ybV90dXBsZV9leHQodHVwbGVEZXNjcmlwdG9yLCB2YWx1 ZXMsIGlzbnVsbCwgLTEpOworfQorCisvKgorICogaGVhcF9mb3JtX3R1cGxlX2V4dAorICoJCVNh bWUgYXMgYWJvdmUsIGJ1dCBhbGxvd3MgdG8gc3BlY2lmeSBudW1iZXIgb2YgYXR0cmlidXRlcyBl eHBsaWNpdGx5LgorICoKKyAqIElmICJuYXR0cyIgPD0gMCwgdGhlbiBudW1iZXIgb2YgYXR0cmli dXRlcyBpcyB0YWtlbiBmcm9tIHRoZSBUdXBsZURlc2MuCisgKi8KK0hlYXBUdXBsZQoraGVhcF9m b3JtX3R1cGxlX2V4dChUdXBsZURlc2MgdHVwbGVEZXNjcmlwdG9yLAorCQkJCQljb25zdCBEYXR1 bSAqdmFsdWVzLAorCQkJCQljb25zdCBib29sICppc251bGwsCisJCQkJCWludCBuYXR0cykKIHsK IAlIZWFwVHVwbGUJdHVwbGU7CQkJLyogcmV0dXJuIHR1cGxlICovCiAJSGVhcFR1cGxlSGVhZGVy IHRkOwkJCS8qIHR1cGxlIGRhdGEgKi8KQEAgLTEwMzUsNiArMTExOSw5IEBAIGhlYXBfZm9ybV90 dXBsZShUdXBsZURlc2MgdHVwbGVEZXNjcmlwdG9yLAogCWludAkJCW51bWJlck9mQXR0cmlidXRl cyA9IHR1cGxlRGVzY3JpcHRvci0+bmF0dHM7CiAJaW50CQkJaTsKIAorCWlmKG5hdHRzID4gMCkK KwkJbnVtYmVyT2ZBdHRyaWJ1dGVzID0gbmF0dHM7CisKIAlpZiAobnVtYmVyT2ZBdHRyaWJ1dGVz ID4gTWF4VHVwbGVBdHRyaWJ1dGVOdW1iZXIpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9UT09fTUFOWV9DT0xVTU5TKSwKQEAgLTEwNjMsNyArMTE1MCw3IEBAIGhlYXBf Zm9ybV90dXBsZShUdXBsZURlc2MgdHVwbGVEZXNjcmlwdG9yLAogCiAJaG9mZiA9IGxlbiA9IE1B WEFMSUdOKGxlbik7IC8qIGFsaWduIHVzZXIgZGF0YSBzYWZlbHkgKi8KIAotCWRhdGFfbGVuID0g aGVhcF9jb21wdXRlX2RhdGFfc2l6ZSh0dXBsZURlc2NyaXB0b3IsIHZhbHVlcywgaXNudWxsKTsK KwlkYXRhX2xlbiA9IGhlYXBfY29tcHV0ZV9kYXRhX3NpemVfZXh0KHR1cGxlRGVzY3JpcHRvciwg dmFsdWVzLCBpc251bGwsIG5hdHRzKTsKIAogCWxlbiArPSBkYXRhX2xlbjsKIApAQCAtMTA5Miwx MyArMTE3OSwxNCBAQCBoZWFwX2Zvcm1fdHVwbGUoVHVwbGVEZXNjIHR1cGxlRGVzY3JpcHRvciwK IAlIZWFwVHVwbGVIZWFkZXJTZXROYXR0cyh0ZCwgbnVtYmVyT2ZBdHRyaWJ1dGVzKTsKIAl0ZC0+ dF9ob2ZmID0gaG9mZjsKIAotCWhlYXBfZmlsbF90dXBsZSh0dXBsZURlc2NyaXB0b3IsCisJaGVh cF9maWxsX3R1cGxlX2V4dCh0dXBsZURlc2NyaXB0b3IsCiAJCQkJCXZhbHVlcywKIAkJCQkJaXNu dWxsLAogCQkJCQkoY2hhciAqKSB0ZCArIGhvZmYsCiAJCQkJCWRhdGFfbGVuLAogCQkJCQkmdGQt PnRfaW5mb21hc2ssCi0JCQkJCShoYXNudWxsID8gdGQtPnRfYml0cyA6IE5VTEwpKTsKKwkJCQkJ KGhhc251bGwgPyB0ZC0+dF9iaXRzIDogTlVMTCksCisJCQkJCW5hdHRzKTsKIAogCXJldHVybiB0 dXBsZTsKIH0KQEAgLTEzOTEsNiArMTQ3OSwyMyBAQCBoZWFwX2Zvcm1fbWluaW1hbF90dXBsZShU dXBsZURlc2MgdHVwbGVEZXNjcmlwdG9yLAogCQkJCQkJY29uc3QgRGF0dW0gKnZhbHVlcywKIAkJ CQkJCWNvbnN0IGJvb2wgKmlzbnVsbCwKIAkJCQkJCVNpemUgZXh0cmEpCit7CisJcmV0dXJuIGhl YXBfZm9ybV9taW5pbWFsX3R1cGxlX2V4dCh0dXBsZURlc2NyaXB0b3IsIHZhbHVlcywgaXNudWxs LCBleHRyYSwKKwkJCQkJCQkJCSAgIC0xIC8qIHRha2UgbmF0dHMgZnJvbSB0dXBsZURlc2MgKi8p OworfQorCisvKgorICogaGVhcF9mb3JtX21pbmltYWxfdHVwbGVfZXh0CisgKgkJU2FtZSBhcyBh Ym92ZSwgYnV0IGFsbG93cyB0byBzcGVjaWZ5IG51bWJlciBvZiBhdHRyaWJ1dGVzIGV4cGxpY2l0 bHkuCisgKgorICogSWYgIm5hdHRzIiA8PSAwLCB0aGVuIG51bWJlciBvZiBhdHRyaWJ1dGVzIGlz IHRha2VuIGZyb20gdGhlIFR1cGxlRGVzYy4KKyAqLworTWluaW1hbFR1cGxlCitoZWFwX2Zvcm1f bWluaW1hbF90dXBsZV9leHQoVHVwbGVEZXNjIHR1cGxlRGVzY3JpcHRvciwKKyAJCQkJCQkJY29u c3QgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQljb25zdCBib29sICppc251bGwsCisJCQkJCQkJU2l6 ZSBleHRyYSwKKwkJCQkJCQlpbnQgbmF0dHMpCiB7CiAJTWluaW1hbFR1cGxlIHR1cGxlOwkJCS8q IHJldHVybiB0dXBsZSAqLwogCWNoYXIJICAgKm1lbTsKQEAgLTE0MDEsNiArMTUwNiw5IEBAIGhl YXBfZm9ybV9taW5pbWFsX3R1cGxlKFR1cGxlRGVzYyB0dXBsZURlc2NyaXB0b3IsCiAJaW50CQkJ bnVtYmVyT2ZBdHRyaWJ1dGVzID0gdHVwbGVEZXNjcmlwdG9yLT5uYXR0czsKIAlpbnQJCQlpOwog CisJaWYgKG5hdHRzID4gMCkKKwkJbnVtYmVyT2ZBdHRyaWJ1dGVzID0gbmF0dHM7CisKIAlBc3Nl cnQoZXh0cmEgPT0gTUFYQUxJR04oZXh0cmEpKTsKIAogCWlmIChudW1iZXJPZkF0dHJpYnV0ZXMg PiBNYXhUdXBsZUF0dHJpYnV0ZU51bWJlcikKQEAgLTE0MzEsNyArMTUzOSw3IEBAIGhlYXBfZm9y bV9taW5pbWFsX3R1cGxlKFR1cGxlRGVzYyB0dXBsZURlc2NyaXB0b3IsCiAKIAlob2ZmID0gbGVu ID0gTUFYQUxJR04obGVuKTsgLyogYWxpZ24gdXNlciBkYXRhIHNhZmVseSAqLwogCi0JZGF0YV9s ZW4gPSBoZWFwX2NvbXB1dGVfZGF0YV9zaXplKHR1cGxlRGVzY3JpcHRvciwgdmFsdWVzLCBpc251 bGwpOworCWRhdGFfbGVuID0gaGVhcF9jb21wdXRlX2RhdGFfc2l6ZV9leHQodHVwbGVEZXNjcmlw dG9yLCB2YWx1ZXMsIGlzbnVsbCwgbmF0dHMpOwogCiAJbGVuICs9IGRhdGFfbGVuOwogCkBAIC0x NDQ4LDEzICsxNTU2LDE0IEBAIGhlYXBfZm9ybV9taW5pbWFsX3R1cGxlKFR1cGxlRGVzYyB0dXBs ZURlc2NyaXB0b3IsCiAJSGVhcFR1cGxlSGVhZGVyU2V0TmF0dHModHVwbGUsIG51bWJlck9mQXR0 cmlidXRlcyk7CiAJdHVwbGUtPnRfaG9mZiA9IGhvZmYgKyBNSU5JTUFMX1RVUExFX09GRlNFVDsK IAotCWhlYXBfZmlsbF90dXBsZSh0dXBsZURlc2NyaXB0b3IsCisJaGVhcF9maWxsX3R1cGxlX2V4 dCh0dXBsZURlc2NyaXB0b3IsCiAJCQkJCXZhbHVlcywKIAkJCQkJaXNudWxsLAogCQkJCQkoY2hh ciAqKSB0dXBsZSArIGhvZmYsCiAJCQkJCWRhdGFfbGVuLAogCQkJCQkmdHVwbGUtPnRfaW5mb21h c2ssCi0JCQkJCShoYXNudWxsID8gdHVwbGUtPnRfYml0cyA6IE5VTEwpKTsKKwkJCQkJKGhhc251 bGwgPyB0dXBsZS0+dF9iaXRzIDogTlVMTCksCisJCQkJCW5hdHRzKTsKIAogCXJldHVybiB0dXBs ZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNHcm91cGluZy5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0dyb3VwaW5nLmMKaW5kZXggYzEwNzUxNGE4NWQuLjdl ZjdjOGM2ZDlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjR3JvdXBpbmcuYwpAQCAtNTgzLDcgKzU4 Myw4IEBAIExvb2t1cFR1cGxlSGFzaEVudHJ5X2ludGVybmFsKFR1cGxlSGFzaFRhYmxlIGhhc2h0 YWJsZSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkgKiBUdXBsZUhhc2hFbnRyeURhdGEgb3Ig YWxsb2NhdGUgYW4gYWRkaXRpb25hbCBjaHVuay4KIAkJCSAqLwogCQkJZW50cnktPmZpcnN0VHVw bGUgPSBFeGVjQ29weVNsb3RNaW5pbWFsVHVwbGVFeHRyYShzbG90LAotCQkJCQkJCQkJCQkJCQkJ ICBoYXNodGFibGUtPmFkZGl0aW9uYWxzaXplKTsKKwkJCQkJCQkJCQkJCQkJCSAgaGFzaHRhYmxl LT5hZGRpdGlvbmFsc2l6ZSwKKwkJCQkJCQkJCQkJCQkJCSAgLTEgLyogbmF0dHMgKi8pOwogCQl9 CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGZkZTUwMmVmZDM4Li41YmQ3 NjZhM2E4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yNjU4LDYgKzI2NTgsMTAgQEAg RXhlY0J1aWxkQXV4Um93TWFyayhFeGVjUm93TWFyayAqZXJtLCBMaXN0ICp0YXJnZXRsaXN0KQog CQkJCQkJCQkJCQkJCSAgIHJlc25hbWUpOwogCQlpZiAoIUF0dHJpYnV0ZU51bWJlcklzVmFsaWQo YWVybS0+Y3RpZEF0dE5vKSkKIAkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZmluZCBqdW5rICVz IGNvbHVtbiIsIHJlc25hbWUpOworLy9mZHdwcm9ibGVtCisJCQlzbnByaW50ZihyZXNuYW1lLCBz aXplb2YocmVzbmFtZSksICJ0YWJsZW9pZCV1IiwgZXJtLT5yb3dtYXJrSWQpOworCQlhZXJtLT50 b2lkQXR0Tm8gPSBFeGVjRmluZEp1bmtBdHRyaWJ1dGVJblRsaXN0KHRhcmdldGxpc3QsCisJCQkJ CQkJCQkJCQkJICAgcmVzbmFtZSk7CiAJfQogCWVsc2UKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVHVwbGVzLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVHVw bGVzLmMKaW5kZXggN2Y0ZWJmOTU0MzIuLjU0NjJkMjY1MzJhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjVHVwbGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1R1cGxlcy5jCkBAIC03OSw2ICs3OSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dHNfYnVmZmVy X2hlYXBfc3RvcmVfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJCQkJCSAgIEJ1 ZmZlciBidWZmZXIsCiAJCQkJCQkJCQkJCSAgIGJvb2wgdHJhbnNmZXJfcGluKTsKIHN0YXRpYyB2 b2lkIHR0c19oZWFwX3N0b3JlX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90LCBIZWFwVHVwbGUg dHVwbGUsIGJvb2wgc2hvdWxkRnJlZSk7CitzdGF0aWMgdm9pZCB0dHNfaGVhcF9tYXRlcmlhbGl6 ZV9leHQoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBuYXR0cyk7CitzdGF0aWMgdm9pZCB0dHNf bWluaW1hbF9tYXRlcmlhbGl6ZV9leHQoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBuYXR0cyk7 CitzdGF0aWMgdm9pZCB0dHNfYnVmZmVyX2hlYXBfbWF0ZXJpYWxpemVfZXh0KFR1cGxlVGFibGVT bG90ICpzbG90LCBpbnQgbmF0dHMpOwogCiAKIGNvbnN0IFR1cGxlVGFibGVTbG90T3BzIFRUU09w c1ZpcnR1YWw7CkBAIC0yNjksMTggKzI3MiwyOSBAQCBzdGF0aWMgdm9pZAogdHRzX3ZpcnR1YWxf Y29weXNsb3QoVHVwbGVUYWJsZVNsb3QgKmRzdHNsb3QsIFR1cGxlVGFibGVTbG90ICpzcmNzbG90 KQogewogCVR1cGxlRGVzYwlzcmNkZXNjID0gc3Jjc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvcjsK KwlUdXBsZURlc2MJZHN0ZGVzYyA9IGRzdHNsb3QtPnR0c190dXBsZURlc2NyaXB0b3I7CisJaW50 CQkJbWluX25hdHRzID0gTWluKGRzdGRlc2MtPm5hdHRzLCBzcmNkZXNjLT5uYXR0cyk7CiAKIAl0 dHNfdmlydHVhbF9jbGVhcihkc3RzbG90KTsKIAogCXNsb3RfZ2V0YWxsYXR0cnMoc3Jjc2xvdCk7 CiAKLQlmb3IgKGludCBuYXR0ID0gMDsgbmF0dCA8IHNyY2Rlc2MtPm5hdHRzOyBuYXR0KyspCisJ Zm9yIChpbnQgbmF0dCA9IDA7IG5hdHQgPCBtaW5fbmF0dHM7IG5hdHQrKykKIAl7CiAJCWRzdHNs b3QtPnR0c192YWx1ZXNbbmF0dF0gPSBzcmNzbG90LT50dHNfdmFsdWVzW25hdHRdOwogCQlkc3Rz bG90LT50dHNfaXNudWxsW25hdHRdID0gc3Jjc2xvdC0+dHRzX2lzbnVsbFtuYXR0XTsKIAl9CiAK LQlkc3RzbG90LT50dHNfbnZhbGlkID0gc3JjZGVzYy0+bmF0dHM7CisJaWYgKGRzdGRlc2MtPm5h dHRzID4gc3JjZGVzYy0+bmF0dHMpCisJeworCQlmb3IgKGludCBuYXR0ID0gbWluX25hdHRzOyBu YXR0IDwgZHN0ZGVzYy0+bmF0dHM7IG5hdHQrKykKKwkJeworCQkJZHN0c2xvdC0+dHRzX3ZhbHVl c1tuYXR0XSA9IChEYXR1bSkgMDsKKwkJCWRzdHNsb3QtPnR0c19pc251bGxbbmF0dF0gPSB0cnVl OworCQl9CisJfQorCisJZHN0c2xvdC0+dHRzX252YWxpZCA9IGRzdGRlc2MtPm5hdHRzOwogCWRz dHNsb3QtPnR0c19mbGFncyAmPSB+VFRTX0ZMQUdfRU1QVFk7CiAKIAkvKiBtYWtlIHN1cmUgc3Rv cmFnZSBkb2Vzbid0IGRlcGVuZCBvbiBleHRlcm5hbCBtZW1vcnkgKi8KQEAgLTI4OCwyNCArMzAy LDI2IEBAIHR0c192aXJ0dWFsX2NvcHlzbG90KFR1cGxlVGFibGVTbG90ICpkc3RzbG90LCBUdXBs ZVRhYmxlU2xvdCAqc3Jjc2xvdCkKIH0KIAogc3RhdGljIEhlYXBUdXBsZQotdHRzX3ZpcnR1YWxf Y29weV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQordHRzX3ZpcnR1YWxfY29weV9o ZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90LCBpbnQgbmF0dHMpCiB7CiAJQXNzZXJ0KCFU VFNfRU1QVFkoc2xvdCkpOwogCi0JcmV0dXJuIGhlYXBfZm9ybV90dXBsZShzbG90LT50dHNfdHVw bGVEZXNjcmlwdG9yLAorCXJldHVybiBoZWFwX2Zvcm1fdHVwbGVfZXh0KHNsb3QtPnR0c190dXBs ZURlc2NyaXB0b3IsCiAJCQkJCQkgICBzbG90LT50dHNfdmFsdWVzLAotCQkJCQkJICAgc2xvdC0+ dHRzX2lzbnVsbCk7CisJCQkJCQkgICBzbG90LT50dHNfaXNudWxsLAorCQkJCQkJICAgbmF0dHMp OwogfQogCiBzdGF0aWMgTWluaW1hbFR1cGxlCi10dHNfdmlydHVhbF9jb3B5X21pbmltYWxfdHVw bGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0cmEpCit0dHNfdmlydHVhbF9jb3B5X21p bmltYWxfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0cmEsIGludCBuYXR0cykK IHsKIAlBc3NlcnQoIVRUU19FTVBUWShzbG90KSk7CiAKLQlyZXR1cm4gaGVhcF9mb3JtX21pbmlt YWxfdHVwbGUoc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvciwKKwlyZXR1cm4gaGVhcF9mb3JtX21p bmltYWxfdHVwbGVfZXh0KHNsb3QtPnR0c190dXBsZURlc2NyaXB0b3IsCiAJCQkJCQkJCSAgIHNs b3QtPnR0c192YWx1ZXMsCiAJCQkJCQkJCSAgIHNsb3QtPnR0c19pc251bGwsCi0JCQkJCQkJCSAg IGV4dHJhKTsKKwkJCQkJCQkJICAgZXh0cmEsCisJCQkJCQkJCSAgIG5hdHRzKTsKIH0KIAogCkBA IC0zOTcsNiArNDEzLDEyIEBAIHR0c19oZWFwX2lzX2N1cnJlbnRfeGFjdF90dXBsZShUdXBsZVRh YmxlU2xvdCAqc2xvdCkKIAogc3RhdGljIHZvaWQKIHR0c19oZWFwX21hdGVyaWFsaXplKFR1cGxl VGFibGVTbG90ICpzbG90KQoreworCXR0c19oZWFwX21hdGVyaWFsaXplX2V4dChzbG90LCAtMSk7 Cit9CisKK3N0YXRpYyB2b2lkCit0dHNfaGVhcF9tYXRlcmlhbGl6ZV9leHQoVHVwbGVUYWJsZVNs b3QgKnNsb3QsIGludCBuYXR0cykKIHsKIAlIZWFwVHVwbGVUYWJsZVNsb3QgKmhzbG90ID0gKEhl YXBUdXBsZVRhYmxlU2xvdCAqKSBzbG90OwogCU1lbW9yeUNvbnRleHQgb2xkQ29udGV4dDsKQEAg LTQxNyw5ICs0MzksMTAgQEAgdHRzX2hlYXBfbWF0ZXJpYWxpemUoVHVwbGVUYWJsZVNsb3QgKnNs b3QpCiAJaHNsb3QtPm9mZiA9IDA7CiAKIAlpZiAoIWhzbG90LT50dXBsZSkKLQkJaHNsb3QtPnR1 cGxlID0gaGVhcF9mb3JtX3R1cGxlKHNsb3QtPnR0c190dXBsZURlc2NyaXB0b3IsCisJCWhzbG90 LT50dXBsZSA9IGhlYXBfZm9ybV90dXBsZV9leHQoc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvciwK IAkJCQkJCQkJCSAgIHNsb3QtPnR0c192YWx1ZXMsCi0JCQkJCQkJCQkgICBzbG90LT50dHNfaXNu dWxsKTsKKwkJCQkJCQkJCSAgIHNsb3QtPnR0c19pc251bGwsCisJCQkJCQkJCQkgICBuYXR0cyk7 CiAJZWxzZQogCXsKIAkJLyoKQEAgLTQyNyw3ICs0NTAsNyBAQCB0dHNfaGVhcF9tYXRlcmlhbGl6 ZShUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAkJICogY29udGV4dCBvZiB0aGUgZ2l2ZW4gc2xvdCAo ZWxzZSBpdCB3b3VsZCBoYXZlIFRUU19GTEFHX1NIT1VMREZSRUUKIAkJICogc2V0KS4gIENvcHkg dGhlIHR1cGxlIGludG8gdGhlIGdpdmVuIHNsb3QncyBtZW1vcnkgY29udGV4dC4KIAkJICovCi0J CWhzbG90LT50dXBsZSA9IGhlYXBfY29weXR1cGxlKGhzbG90LT50dXBsZSk7CisJCWhzbG90LT50 dXBsZSA9IGhlYXBfY29weXR1cGxlX2V4dChoc2xvdC0+dHVwbGUsIHNsb3QsIG5hdHRzKTsKIAl9 CiAKIAlzbG90LT50dHNfZmxhZ3MgfD0gVFRTX0ZMQUdfU0hPVUxERlJFRTsKQEAgLTQ2MSwyNCAr NDg0LDI0IEBAIHR0c19oZWFwX2dldF9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQog fQogCiBzdGF0aWMgSGVhcFR1cGxlCi10dHNfaGVhcF9jb3B5X2hlYXBfdHVwbGUoVHVwbGVUYWJs ZVNsb3QgKnNsb3QpCit0dHNfaGVhcF9jb3B5X2hlYXBfdHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNs b3QsIGludCBuYXR0cykKIHsKIAlIZWFwVHVwbGVUYWJsZVNsb3QgKmhzbG90ID0gKEhlYXBUdXBs ZVRhYmxlU2xvdCAqKSBzbG90OwogCiAJQXNzZXJ0KCFUVFNfRU1QVFkoc2xvdCkpOwogCWlmICgh aHNsb3QtPnR1cGxlKQotCQl0dHNfaGVhcF9tYXRlcmlhbGl6ZShzbG90KTsKKwkJdHRzX2hlYXBf bWF0ZXJpYWxpemVfZXh0KHNsb3QsIG5hdHRzKTsKIAotCXJldHVybiBoZWFwX2NvcHl0dXBsZSho c2xvdC0+dHVwbGUpOworCXJldHVybiBoZWFwX2NvcHl0dXBsZV9leHQoaHNsb3QtPnR1cGxlLCBz bG90LCBuYXR0cyk7CiB9CiAKIHN0YXRpYyBNaW5pbWFsVHVwbGUKLXR0c19oZWFwX2NvcHlfbWlu aW1hbF90dXBsZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgU2l6ZSBleHRyYSkKK3R0c19oZWFwX2Nv cHlfbWluaW1hbF90dXBsZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgU2l6ZSBleHRyYSwgaW50IG5h dHRzKQogewogCUhlYXBUdXBsZVRhYmxlU2xvdCAqaHNsb3QgPSAoSGVhcFR1cGxlVGFibGVTbG90 ICopIHNsb3Q7CiAKIAlpZiAoIWhzbG90LT50dXBsZSkKLQkJdHRzX2hlYXBfbWF0ZXJpYWxpemUo c2xvdCk7CisJCXR0c19oZWFwX21hdGVyaWFsaXplX2V4dChzbG90LCBuYXR0cyk7CiAKIAlyZXR1 cm4gbWluaW1hbF90dXBsZV9mcm9tX2hlYXBfdHVwbGUoaHNsb3QtPnR1cGxlLCBleHRyYSk7CiB9 CkBAIC01ODUsNiArNjA4LDEyIEBAIHR0c19taW5pbWFsX2lzX2N1cnJlbnRfeGFjdF90dXBsZShU dXBsZVRhYmxlU2xvdCAqc2xvdCkKIAogc3RhdGljIHZvaWQKIHR0c19taW5pbWFsX21hdGVyaWFs aXplKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCXR0c19taW5pbWFsX21hdGVyaWFsaXplX2V4 dChzbG90LCAtMSk7Cit9CisKK3N0YXRpYyB2b2lkCit0dHNfbWluaW1hbF9tYXRlcmlhbGl6ZV9l eHQoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBuYXR0cykKIHsKIAlNaW5pbWFsVHVwbGVUYWJs ZVNsb3QgKm1zbG90ID0gKE1pbmltYWxUdXBsZVRhYmxlU2xvdCAqKSBzbG90OwogCU1lbW9yeUNv bnRleHQgb2xkQ29udGV4dDsKQEAgLTYwNiwxMCArNjM1LDExIEBAIHR0c19taW5pbWFsX21hdGVy aWFsaXplKFR1cGxlVGFibGVTbG90ICpzbG90KQogCiAJaWYgKCFtc2xvdC0+bWludHVwbGUpCiAJ ewotCQltc2xvdC0+bWludHVwbGUgPSBoZWFwX2Zvcm1fbWluaW1hbF90dXBsZShzbG90LT50dHNf dHVwbGVEZXNjcmlwdG9yLAorCQltc2xvdC0+bWludHVwbGUgPSBoZWFwX2Zvcm1fbWluaW1hbF90 dXBsZV9leHQoc2xvdC0+dHRzX3R1cGxlRGVzY3JpcHRvciwKIAkJCQkJCQkJCQkJCSAgc2xvdC0+ dHRzX3ZhbHVlcywKIAkJCQkJCQkJCQkJCSAgc2xvdC0+dHRzX2lzbnVsbCwKLQkJCQkJCQkJCQkJ CSAgMCk7CisJCQkJCQkJCQkJCQkgIDAgLyogbm8gZXh0cmEgKi8sCisJCQkJCQkJCQkJCQkgIG5h dHRzKTsKIAl9CiAJZWxzZQogCXsKQEAgLTYzNyw5ICs2NjcsMTMgQEAgdHRzX21pbmltYWxfY29w eXNsb3QoVHVwbGVUYWJsZVNsb3QgKmRzdHNsb3QsIFR1cGxlVGFibGVTbG90ICpzcmNzbG90KQog ewogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAlNaW5pbWFsVHVwbGUgbWludHVwbGU7CisJ aW50CQkJbWluX25hdHRzOworCisJbWluX25hdHRzID0gTWluKGRzdHNsb3QtPnR0c190dXBsZURl c2NyaXB0b3ItPm5hdHRzLAorCQkJCQlzcmNzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yLT5uYXR0 cyk7CiAKIAlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGRzdHNsb3QtPnR0c19t Y3h0KTsKLQltaW50dXBsZSA9IEV4ZWNDb3B5U2xvdE1pbmltYWxUdXBsZShzcmNzbG90KTsKKwlt aW50dXBsZSA9IEV4ZWNDb3B5U2xvdE1pbmltYWxUdXBsZUV4dGVkZWQoc3Jjc2xvdCwgbWluX25h dHRzKTsKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKIAlFeGVjU3RvcmVN aW5pbWFsVHVwbGUobWludHVwbGUsIGRzdHNsb3QsIHRydWUpOwpAQCAtNjU3LDcgKzY5MSw3IEBA IHR0c19taW5pbWFsX2dldF9taW5pbWFsX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogfQog CiBzdGF0aWMgSGVhcFR1cGxlCi10dHNfbWluaW1hbF9jb3B5X2hlYXBfdHVwbGUoVHVwbGVUYWJs ZVNsb3QgKnNsb3QpCit0dHNfbWluaW1hbF9jb3B5X2hlYXBfdHVwbGUoVHVwbGVUYWJsZVNsb3Qg KnNsb3QsIGludCBuYXR0cykKIHsKIAlNaW5pbWFsVHVwbGVUYWJsZVNsb3QgKm1zbG90ID0gKE1p bmltYWxUdXBsZVRhYmxlU2xvdCAqKSBzbG90OwogCkBAIC02NjgsNyArNzAyLDcgQEAgdHRzX21p bmltYWxfY29weV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogfQogCiBzdGF0aWMg TWluaW1hbFR1cGxlCi10dHNfbWluaW1hbF9jb3B5X21pbmltYWxfdHVwbGUoVHVwbGVUYWJsZVNs b3QgKnNsb3QsIFNpemUgZXh0cmEpCit0dHNfbWluaW1hbF9jb3B5X21pbmltYWxfdHVwbGUoVHVw bGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0cmEsIGludCBuYXR0cykKIHsKIAlNaW5pbWFsVHVw bGVUYWJsZVNsb3QgKm1zbG90ID0gKE1pbmltYWxUdXBsZVRhYmxlU2xvdCAqKSBzbG90OwogCkBA IC04MDIsNiArODM2LDEyIEBAIHR0c19idWZmZXJfaXNfY3VycmVudF94YWN0X3R1cGxlKFR1cGxl VGFibGVTbG90ICpzbG90KQogCiBzdGF0aWMgdm9pZAogdHRzX2J1ZmZlcl9oZWFwX21hdGVyaWFs aXplKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCXR0c19idWZmZXJfaGVhcF9tYXRlcmlhbGl6 ZV9leHQoc2xvdCwgLTEgLyogbmF0dHMgKi8pOworfQorCitzdGF0aWMgdm9pZAordHRzX2J1ZmZl cl9oZWFwX21hdGVyaWFsaXplX2V4dChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgaW50IG5hdHRzKQog ewogCUJ1ZmZlckhlYXBUdXBsZVRhYmxlU2xvdCAqYnNsb3QgPSAoQnVmZmVySGVhcFR1cGxlVGFi bGVTbG90ICopIHNsb3Q7CiAJTWVtb3J5Q29udGV4dCBvbGRDb250ZXh0OwpAQCAtODc0LDEyICs5 MTQsMTYgQEAgdHRzX2J1ZmZlcl9oZWFwX2NvcHlzbG90KFR1cGxlVGFibGVTbG90ICpkc3RzbG90 LCBUdXBsZVRhYmxlU2xvdCAqc3Jjc2xvdCkKIAkJVFRTX1NIT1VMREZSRUUoc3Jjc2xvdCkgfHwK IAkJIWJzcmNzbG90LT5iYXNlLnR1cGxlKQogCXsKKwkJaW50CQltaW5fbmF0dHM7CiAJCU1lbW9y eUNvbnRleHQgb2xkQ29udGV4dDsKIAorCQltaW5fbmF0dHMgPSBNaW4oZHN0c2xvdC0+dHRzX3R1 cGxlRGVzY3JpcHRvci0+bmF0dHMsCisJCQkJCQlzcmNzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9y LT5uYXR0cyk7CisKIAkJRXhlY0NsZWFyVHVwbGUoZHN0c2xvdCk7CiAJCWRzdHNsb3QtPnR0c19m bGFncyAmPSB+VFRTX0ZMQUdfRU1QVFk7CiAJCW9sZENvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oZHN0c2xvdC0+dHRzX21jeHQpOwotCQliZHN0c2xvdC0+YmFzZS50dXBsZSA9IEV4ZWND b3B5U2xvdEhlYXBUdXBsZShzcmNzbG90KTsKKwkJYmRzdHNsb3QtPmJhc2UudHVwbGUgPSBFeGVj Q29weVNsb3RIZWFwVHVwbGVFeHRlZGVkKHNyY3Nsb3QsIG1pbl9uYXR0cyk7CiAJCWRzdHNsb3Qt PnR0c19mbGFncyB8PSBUVFNfRkxBR19TSE9VTERGUkVFOwogCQlNZW1vcnlDb250ZXh0U3dpdGNo VG8ob2xkQ29udGV4dCk7CiAJfQpAQCAtOTE1LDI3ICs5NTksMjcgQEAgdHRzX2J1ZmZlcl9oZWFw X2dldF9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogfQogCiBzdGF0aWMgSGVhcFR1 cGxlCi10dHNfYnVmZmVyX2hlYXBfY29weV9oZWFwX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90 KQordHRzX2J1ZmZlcl9oZWFwX2NvcHlfaGVhcF90dXBsZShUdXBsZVRhYmxlU2xvdCAqc2xvdCwg aW50IG5hdHRzKQogewogCUJ1ZmZlckhlYXBUdXBsZVRhYmxlU2xvdCAqYnNsb3QgPSAoQnVmZmVy SGVhcFR1cGxlVGFibGVTbG90ICopIHNsb3Q7CiAKIAlBc3NlcnQoIVRUU19FTVBUWShzbG90KSk7 CiAKIAlpZiAoIWJzbG90LT5iYXNlLnR1cGxlKQotCQl0dHNfYnVmZmVyX2hlYXBfbWF0ZXJpYWxp emUoc2xvdCk7CisJCXR0c19idWZmZXJfaGVhcF9tYXRlcmlhbGl6ZV9leHQoc2xvdCwgbmF0dHMp OwogCi0JcmV0dXJuIGhlYXBfY29weXR1cGxlKGJzbG90LT5iYXNlLnR1cGxlKTsKKwlyZXR1cm4g aGVhcF9jb3B5dHVwbGVfZXh0KGJzbG90LT5iYXNlLnR1cGxlLCBzbG90LCBuYXR0cyk7CiB9CiAK IHN0YXRpYyBNaW5pbWFsVHVwbGUKLXR0c19idWZmZXJfaGVhcF9jb3B5X21pbmltYWxfdHVwbGUo VHVwbGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0cmEpCit0dHNfYnVmZmVyX2hlYXBfY29weV9t aW5pbWFsX3R1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90LCBTaXplIGV4dHJhLCBpbnQgbmF0dHMp CiB7CiAJQnVmZmVySGVhcFR1cGxlVGFibGVTbG90ICpic2xvdCA9IChCdWZmZXJIZWFwVHVwbGVU YWJsZVNsb3QgKikgc2xvdDsKIAogCUFzc2VydCghVFRTX0VNUFRZKHNsb3QpKTsKIAogCWlmICgh YnNsb3QtPmJhc2UudHVwbGUpCi0JCXR0c19idWZmZXJfaGVhcF9tYXRlcmlhbGl6ZShzbG90KTsK KwkJdHRzX2J1ZmZlcl9oZWFwX21hdGVyaWFsaXplX2V4dChzbG90LCBuYXR0cyk7CiAKIAlyZXR1 cm4gbWluaW1hbF90dXBsZV9mcm9tX2hlYXBfdHVwbGUoYnNsb3QtPmJhc2UudHVwbGUsIGV4dHJh KTsKIH0KQEAgLTE4NzQsOCArMTkxOCw3IEBAIEV4ZWNTdG9yZUFsbE51bGxUdXBsZShUdXBsZVRh YmxlU2xvdCAqc2xvdCkKICAqIFVudGlsIHRoZSBzbG90IGlzIG1hdGVyaWFsaXplZCwgdGhlIGNv bnRlbnRzIG9mIHRoZSBzbG90IGRlcGVuZCBvbiB0aGUKICAqIGRhdHVtLgogICovCi12b2lkCi1F eGVjU3RvcmVIZWFwVHVwbGVEYXR1bShEYXR1bSBkYXRhLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkK K3ZvaWQgRXhlY1N0b3JlSGVhcFR1cGxlRGF0dW0oRGF0dW0gZGF0YSwgVHVwbGVUYWJsZVNsb3Qg KnNsb3QpCiB7CiAJSGVhcFR1cGxlRGF0YSB0dXBsZSA9IHswfTsKIAlIZWFwVHVwbGVIZWFkZXIg dGQ7CkBAIC0xODg1LDYgKzE5MjgsNyBAQCBFeGVjU3RvcmVIZWFwVHVwbGVEYXR1bShEYXR1bSBk YXRhLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKIAl0dXBsZS50X2xlbiA9IEhlYXBUdXBsZUhlYWRl ckdldERhdHVtTGVuZ3RoKHRkKTsKIAl0dXBsZS50X3NlbGYgPSB0ZC0+dF9jdGlkOwogCXR1cGxl LnRfZGF0YSA9IHRkOworCXR1cGxlLnRfdGFibGVPaWQgPSBJbnZhbGlkT2lkOwogCiAJRXhlY0Ns ZWFyVHVwbGUoc2xvdCk7CiAKQEAgLTE5MjksNyArMTk3Myw3IEBAIEV4ZWNGZXRjaFNsb3RIZWFw VHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGJvb2wgbWF0ZXJpYWxpemUsIGJvb2wgKnNob3Vs ZEZyZWUpCiAJewogCQlpZiAoc2hvdWxkRnJlZSkKIAkJCSpzaG91bGRGcmVlID0gdHJ1ZTsKLQkJ cmV0dXJuIHNsb3QtPnR0c19vcHMtPmNvcHlfaGVhcF90dXBsZShzbG90KTsKKwkJcmV0dXJuIHNs b3QtPnR0c19vcHMtPmNvcHlfaGVhcF90dXBsZShzbG90LCAtMSAvKiBuYXR0cyAqLyk7CiAJfQog CWVsc2UKIAl7CkBAIC0xOTgwLDcgKzIwMjQsOCBAQCBFeGVjRmV0Y2hTbG90TWluaW1hbFR1cGxl KFR1cGxlVGFibGVTbG90ICpzbG90LAogCXsKIAkJaWYgKHNob3VsZEZyZWUpCiAJCQkqc2hvdWxk RnJlZSA9IHRydWU7Ci0JCXJldHVybiBzbG90LT50dHNfb3BzLT5jb3B5X21pbmltYWxfdHVwbGUo c2xvdCwgMCk7CisJCXJldHVybiBzbG90LT50dHNfb3BzLT5jb3B5X21pbmltYWxfdHVwbGUoc2xv dCwgMCAvKiBubyBleHRyYSAqLywKKwkJCQkJCQkJCQkJCSAtMSAvKiBuYXR0cyAqLyk7CiAJfQog fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlRm9yZWlnbnNjYW4uYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVGb3JlaWduc2Nhbi5jCmluZGV4IDZmMGRhZGRjZTA3 Li4yMWIzZTlhOTYxYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUZvcmVp Z25zY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUZvcmVpZ25zY2FuLmMKQEAg LTY1LDYgKzY1LDggQEAgRm9yZWlnbk5leHQoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAkgKiBJ bnNlcnQgdmFsaWQgdmFsdWUgaW50byB0YWJsZW9pZCwgdGhlIG9ubHkgYWN0dWFsbHktdXNlZnVs IHN5c3RlbQogCSAqIGNvbHVtbi4KIAkgKi8KKworCXNsb3QtPnR0c19yZW1vdGVPaWQgPSBzbG90 LT50dHNfdGFibGVPaWQ7CiAJaWYgKHBsYW4tPmZzU3lzdGVtQ29sICYmICFUdXBJc051bGwoc2xv dCkpCiAJCXNsb3QtPnR0c190YWJsZU9pZCA9IFJlbGF0aW9uR2V0UmVsaWQobm9kZS0+c3Muc3Nf Y3VycmVudFJlbGF0aW9uKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bh dGgvYWxscGF0aHMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKaW5k ZXggOWMwNDBlY2VmYzguLmViNzFkMmJiNTRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2Fs bHBhdGhzLmMKQEAgLTExNjUsNiArMTE2NSwyNiBAQCBzZXRfYXBwZW5kX3JlbF9zaXplKFBsYW5u ZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJCQkJCQkJCSAgIChOb2RlICopIHJlbC0+ cmVsdGFyZ2V0LT5leHBycywKIAkJCQkJCQkJICAgMSwgJmFwcGluZm8pOwogCisJCS8qIERvIGl0 IGlmIGZkdyBpcyBwYXJ0aXRpb24gKi8KKwkJaWYgKHBsYW5uZXJfcnRfZmV0Y2goY2hpbGRSVGlu ZGV4LCByb290KS0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUgJiYKKwkJCSFibXNf aXNfZW1wdHkocm9vdC0+Z2xvYi0+Zm9yZWlnblBhcmFtSURzKSkKKwkJeworCQkJZm9yZWFjaChs Yywgcm9vdC0+cHJvY2Vzc2VkX3RsaXN0KQorCQkJeworCQkJCVRhcmdldEVudHJ5ICp0bGUgPSAo VGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKKwkJCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0g KikgdGxlLT5leHByOworCisJCQkJaWYgKHRsZS0+cmVzanVuayAmJiBJc0EocGFyYW0sIFBhcmFt KSAmJgorCQkJCQlJU19GT1JFSUdOX1BBUkFNKHJvb3QsIHBhcmFtKSAmJgorCQkJCQlwYXJhbS0+ dGFyZ2V0X3J0ZSA9PSBjaGlsZFJUaW5kZXgpIC8vIFRPRE8gc2FtZSBmb3IgYW5vdGhlciBjYXNl CisJCQkJeworCQkJCQkvKiBYWFggaXMgY29weU9iamVjdCBuZWNlc3NhcnkgaGVyZT8gKi8KKwkJ CQkJY2hpbGRyZWwtPnJlbHRhcmdldC0+ZXhwcnMgPQorCQkJCQkJbGFwcGVuZChjaGlsZHJlbC0+ cmVsdGFyZ2V0LT5leHBycywgY29weU9iamVjdChwYXJhbSkpOworCQkJCX0KKwkJCX0KKwkJfQor CiAJCS8qCiAJCSAqIFdlIGhhdmUgdG8gbWFrZSBjaGlsZCBlbnRyaWVzIGluIHRoZSBFcXVpdmFs ZW5jZUNsYXNzIGRhdGEKIAkJICogc3RydWN0dXJlcyBhcyB3ZWxsLiAgVGhpcyBpcyBuZWVkZWQg ZWl0aGVyIGlmIHRoZSBwYXJlbnQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4u YwppbmRleCAyYzY5NmVhMDI2OC4uY2E5MjI2MzkxYTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9jcmVhdGVwbGFuLmMKQEAgLTk4Niw2ICs5ODYsMjUgQEAgdXNlX3BoeXNpY2FsX3RsaXN0 KFBsYW5uZXJJbmZvICpyb290LCBQYXRoICpwYXRoLCBpbnQgZmxhZ3MpCiAJCX0KIAl9CiAKKwkv KgorCSAqIEFsc28sIGNhbid0IGRvIGl0IHRvIGEgRm9yZWlnblBhdGggaWYgdGhlIHBhdGggaXMg cmVxdWVzdGVkIHRvIGVtaXQKKwkgKiBQYXJhbXMgZ2VuZXJhdGVkIGJ5IHRoZSBGRFcuCisJICov CisJaWYgKElzQShwYXRoLCBGb3JlaWduUGF0aCkgJiYKKwkJcGF0aC0+cGFyZW50LT5yZWxpZCA9 PSByb290LT5wYXJzZS0+cmVzdWx0UmVsYXRpb24gJiYKKwkJIWJtc19pc19lbXB0eShyb290LT5n bG9iLT5mb3JlaWduUGFyYW1JRHMpKQorCXsKKwkJZm9yZWFjaChsYywgcGF0aC0+cGF0aHRhcmdl dC0+ZXhwcnMpCisJCXsKKwkJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBsZmlyc3QobGMp OworCQkJaWYgKHBhcmFtICYmIElzQShwYXJhbSwgUGFyYW0pKQorCQkJeworCQkJCUFzc2VydChJ U19GT1JFSUdOX1BBUkFNKHJvb3QsIHBhcmFtKSk7CisJCQkJcmV0dXJuIGZhbHNlOworCQkJfQor CQl9CisJfQorCiAJcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL2luaXRzcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5p dHNwbGFuLmMKaW5kZXggYjM4NDIyYzQ3YTQuLmNjMDkwNjVlNTYxIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9pbml0c3BsYW4uYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIm9wdGlt aXplci9wbGFubmVyLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jlc3RyaWN0aW5mby5oIgogI2lu Y2x1ZGUgInBhcnNlci9hbmFseXplLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgog I2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCkBAIC0yNDMsNiArMjQ0LDQwIEBAIGFkZF9v dGhlcl9yZWxzX3RvX3F1ZXJ5KFBsYW5uZXJJbmZvICpyb290KQogICoKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAorLyoKKyAqIGFkZF9wYXJhbXNfdG9fcmVzdWx0X3JlbAorICoJICBJZiB0aGUg cXVlcnkncyBmaW5hbCB0bGlzdCBjb250YWlucyBQYXJhbXMgdGhlIEZEVyBnZW5lcmF0ZWQsIGFk ZAorICoJICB0YXJnZXRsaXN0IGVudHJpZXMgZm9yIGVhY2ggc3VjaCBQYXJhbSB0byB0aGUgcmVz dWx0IHJlbGF0aW9uLgorICovCitzdGF0aWMgdm9pZAorYWRkX3BhcmFtc190b19yZXN1bHRfcmVs KFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpmaW5hbF90bGlzdCkKK3sKKwlSZWxPcHRJbmZvICp0 YXJnZXRfcmVsID0gZmluZF9iYXNlX3JlbChyb290LCByb290LT5wYXJzZS0+cmVzdWx0UmVsYXRp b24pOworCUxpc3RDZWxsICAgKmxjOworCisJLyoKKwkgKiBJZiBubyBwYXJhbWV0ZXJzIGhhdmUg YmVlbiBnZW5lcmF0ZWQgYnkgYW55IEZEV3MsIHdlIGNlcnRhaW5seSBkb24ndAorCSAqIG5lZWQg dG8gZG8gYW55dGhpbmcgaGVyZS4KKwkgKi8KKwlpZiAoYm1zX2lzX2VtcHR5KHJvb3QtPmdsb2It PmZvcmVpZ25QYXJhbUlEcykpCisJCXJldHVybjsKKworCWZvcmVhY2gobGMsIGZpbmFsX3RsaXN0 KQorCXsKKwkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOwor CQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgdGxlLT5leHByOworCisJCWlmICh0bGUtPnJl c2p1bmsgJiYgSXNBKHBhcmFtLCBQYXJhbSkgJiYKKwkJCUlTX0ZPUkVJR05fUEFSQU0ocm9vdCwg cGFyYW0pICYmCisJCQlwYXJhbS0+dGFyZ2V0X3J0ZSA9PSB0YXJnZXRfcmVsLT5yZWxpZCkKKwkJ eworCQkJLyogWFhYIGlzIGNvcHlPYmplY3QgbmVjZXNzYXJ5IGhlcmU/ICovCisJCQl0YXJnZXRf cmVsLT5yZWx0YXJnZXQtPmV4cHJzID0gbGFwcGVuZCh0YXJnZXRfcmVsLT5yZWx0YXJnZXQtPmV4 cHJzLAorCQkJCQkJCQkJCQkJICAgY29weU9iamVjdChwYXJhbSkpOworCQl9CisJfQorfQorCiAv KgogICogYnVpbGRfYmFzZV9yZWxfdGxpc3RzCiAgKgkgIEFkZCB0YXJnZXRsaXN0IGVudHJpZXMg Zm9yIGVhY2ggdmFyIG5lZWRlZCBpbiB0aGUgcXVlcnkncyBmaW5hbCB0bGlzdApAQCAtMjgyLDYg KzMxNywxNiBAQCBidWlsZF9iYXNlX3JlbF90bGlzdHMoUGxhbm5lckluZm8gKnJvb3QsIExpc3Qg KmZpbmFsX3RsaXN0KQogCQkJbGlzdF9mcmVlKGhhdmluZ192YXJzKTsKIAkJfQogCX0KKworCWlm IChyb290LT5wYXJzZS0+Y29tbWFuZFR5cGUgPT0gQ01EX1VQREFURSB8fAorCQlyb290LT5wYXJz ZS0+Y29tbWFuZFR5cGUgPT0gQ01EX0RFTEVURSkKKwl7CisJCWludAkJCXJlc3VsdF9yZWxhdGlv biA9IHJvb3QtPnBhcnNlLT5yZXN1bHRSZWxhdGlvbjsKKworCQlpZiAocGxhbm5lcl9ydF9mZXRj aChyZXN1bHRfcmVsYXRpb24sIHJvb3QpLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJM RSkKKwkJCWFkZF9wYXJhbXNfdG9fcmVzdWx0X3JlbChyb290LCBmaW5hbF90bGlzdCk7CisKKwl9 CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVy LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggMzIyNTE4NWQx NmYuLjAzNDM5MDUzMzU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9w bGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0z ODgsNiArMzg4LDcgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIg KnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9 IGZhbHNlOwogCWdsb2ItPnBhcnRpdGlvbl9kaXJlY3RvcnkgPSBOVUxMOwogCWdsb2ItPnJlbF9u b3RudWxsYXR0c19oYXNoID0gTlVMTDsKKwlnbG9iLT5mb3JlaWduUGFyYW1JRHMgPSBOVUxMOwog CiAJLyoKIAkgKiBBc3Nlc3Mgd2hldGhlciBpdCdzIGZlYXNpYmxlIHRvIHVzZSBwYXJhbGxlbCBt b2RlIGZvciB0aGlzIHF1ZXJ5LiBXZQpAQCAtNjE2LDEyICs2MTcsMTUgQEAgc3RhbmRhcmRfcGxh bm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNvck9w dGlvbnMsCiAJfQogCiAJLyoKLQkgKiBJZiBhbnkgUGFyYW1zIHdlcmUgZ2VuZXJhdGVkLCBydW4g dGhyb3VnaCB0aGUgcGxhbiB0cmVlIGFuZCBjb21wdXRlCi0JICogZWFjaCBwbGFuIG5vZGUncyBl eHRQYXJhbS9hbGxQYXJhbSBzZXRzLiAgSWRlYWxseSB3ZSdkIG1lcmdlIHRoaXMgaW50bwotCSAq IHNldF9wbGFuX3JlZmVyZW5jZXMnIHRyZWUgdHJhdmVyc2FsLCBidXQgZm9yIG5vdyBpdCBoYXMg dG8gYmUgc2VwYXJhdGUKLQkgKiBiZWNhdXNlIHdlIG5lZWQgdG8gdmlzaXQgc3VicGxhbnMgYmVm b3JlIG5vdCBhZnRlciBtYWluIHBsYW4uCisJICogSWYgYW55IFBhcmFtcyB3ZXJlIGdlbmVyYXRl ZCBieSB0aGUgcGxhbm5lciBub3QgYnkgRkRXcywgcnVuIHRocm91Z2gKKwkgKiB0aGUgcGxhbiB0 cmVlIGFuZCBjb21wdXRlIGVhY2ggcGxhbiBub2RlJ3MgZXh0UGFyYW0vYWxsUGFyYW0gc2V0cy4K KwkgKiAoUGFyYW1zIGFkZGVkIGJ5IEZEV3MgYXJlIGlycmVsZXZhbnQgZm9yIHBhcmFtZXRlciBj aGFuZ2Ugc2lnbmFsaW5nLikKKwkgKiBJZGVhbGx5IHdlJ2QgbWVyZ2UgdGhpcyBpbnRvIHNldF9w bGFuX3JlZmVyZW5jZXMnIHRyZWUgdHJhdmVyc2FsLCBidXQKKwkgKiBmb3Igbm93IGl0IGhhcyB0 byBiZSBzZXBhcmF0ZSBiZWNhdXNlIHdlIG5lZWQgdG8gdmlzaXQgc3VicGxhbnMgYmVmb3JlCisJ ICogbm90IGFmdGVyIG1haW4gcGxhbi4KIAkgKi8KLQlpZiAoZ2xvYi0+cGFyYW1FeGVjVHlwZXMg IT0gTklMKQorCWlmIChnbG9iLT5wYXJhbUV4ZWNUeXBlcyAhPSBOSUwgJiYKKwkJYm1zX251bV9t ZW1iZXJzKGdsb2ItPmZvcmVpZ25QYXJhbUlEcykgPCBsaXN0X2xlbmd0aChnbG9iLT5wYXJhbUV4 ZWNUeXBlcykpCiAJewogCQlBc3NlcnQobGlzdF9sZW5ndGgoZ2xvYi0+c3VicGxhbnMpID09IGxp c3RfbGVuZ3RoKGdsb2ItPnN1YnJvb3RzKSk7CiAJCWZvcmJvdGgobHAsIGdsb2ItPnN1YnBsYW5z LCBsciwgZ2xvYi0+c3Vicm9vdHMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5k ZXggZTExODIyNTUwNTUuLmJmOGY4ZmRhYjRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0 cmVmcy5jCkBAIC0zMjc3LDcgKzMyNzcsNDIgQEAgZml4X2pvaW5fZXhwcl9tdXRhdG9yKE5vZGUg Km5vZGUsIGZpeF9qb2luX2V4cHJfY29udGV4dCAqY29udGV4dCkKIAl9CiAJLyogU3BlY2lhbCBj YXNlcyAoYXBwbHkgb25seSBBRlRFUiBmYWlsaW5nIHRvIG1hdGNoIHRvIGxvd2VyIHRsaXN0KSAq LwogCWlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnBhcmFtID0gKFBhcmFt ICopIG5vZGU7CisKKwkJLyoKKwkJICogSWYgdGhlIFBhcmFtIGlzIGEgUEFSQU1fRVhFQyBQYXJh bSBnZW5lcmF0ZWQgYnkgYW4gRkRXLCBpdCBzaG91bGQKKwkJICogaGF2ZSBidWJibGVkIHVwIGZy b20gYSBsb3dlciBwbGFuIG5vZGU7IGNvbnZlcnQgaXQgaW50byBhIHNpbXBsZQorCQkgKiBWYXIg cmVmZXJlbmNpbmcgdGhlIG91dHB1dCBvZiB0aGUgc3VicGxhbi4KKwkJICoKKwkJICogTm90ZTog c2V0X2pvaW5fcmVmZXJlbmNlcygpIHdvdWxkIGhhdmUga2VwdCBoYXNfbm9uX3ZhcnM9dHJ1ZSBm b3IKKwkJICogdGhlIHN1YnBsYW4gZW1pdHRpbmcgdGhlIFBhcmFtIHNpbmNlIGl0IGVmZmVjdGl2 ZWx5IGJlbG9uZyB0byB0aGUKKwkJICogcmVzdWx0IHJlbGF0aW9uIGFuZCB0aGF0IHJlbGF0aW9u IGNhbiBuZXZlciBiZSB0aGUgbnVsbGFibGUgc2lkZSBvZgorCQkgKiBhbiBvdXRlciBqb2luLgor CQkgKi8KKwkJaWYgKElTX0ZPUkVJR05fUEFSQU0oY29udGV4dC0+cm9vdCwgcGFyYW0pKQorCQl7 CisJCQlpZiAoY29udGV4dC0+b3V0ZXJfaXRsaXN0ICYmIGNvbnRleHQtPm91dGVyX2l0bGlzdC0+ aGFzX25vbl92YXJzKQorCQkJeworCQkJCW5ld3ZhciA9IHNlYXJjaF9pbmRleGVkX3RsaXN0X2Zv cl9ub25fdmFyKChFeHByICopIG5vZGUsCisJCQkJCQkJCQkJCQkJCSAgY29udGV4dC0+b3V0ZXJf aXRsaXN0LAorCQkJCQkJCQkJCQkJCQkgIE9VVEVSX1ZBUik7CisJCQkJaWYgKG5ld3ZhcikKKwkJ CQkJcmV0dXJuIChOb2RlICopIG5ld3ZhcjsKKwkJCX0KKwkJCWlmIChjb250ZXh0LT5pbm5lcl9p dGxpc3QgJiYgY29udGV4dC0+aW5uZXJfaXRsaXN0LT5oYXNfbm9uX3ZhcnMpCisJCQl7CisJCQkJ bmV3dmFyID0gc2VhcmNoX2luZGV4ZWRfdGxpc3RfZm9yX25vbl92YXIoKEV4cHIgKikgbm9kZSwK KwkJCQkJCQkJCQkJCQkJICBjb250ZXh0LT5pbm5lcl9pdGxpc3QsCisJCQkJCQkJCQkJCQkJCSAg SU5ORVJfVkFSKTsKKwkJCQlpZiAobmV3dmFyKQorCQkJCQlyZXR1cm4gKE5vZGUgKikgbmV3dmFy OworCQkJfQorCQkJLy8gWFhYIElzIGl0IGFuIGVycm9yIHRvIGJlIGhlcmU/CisJCX0KKwkJLyog SWYgbm90LCBkbyBmaXhfcGFyYW1fbm9kZSgpICovCiAJCXJldHVybiBmaXhfcGFyYW1fbm9kZShj b250ZXh0LT5yb290LCAoUGFyYW0gKikgbm9kZSk7CisJfQogCWlmIChJc0Eobm9kZSwgQWx0ZXJu YXRpdmVTdWJQbGFuKSkKIAkJcmV0dXJuIGZpeF9qb2luX2V4cHJfbXV0YXRvcihmaXhfYWx0ZXJu YXRpdmVfc3VicGxhbihjb250ZXh0LT5yb290LAogCQkJCQkJCQkJCQkJCQkJIChBbHRlcm5hdGl2 ZVN1YlBsYW4gKikgbm9kZSwKQEAgLTMzODgsNyArMzQyMywyOCBAQCBmaXhfdXBwZXJfZXhwcl9t dXRhdG9yKE5vZGUgKm5vZGUsIGZpeF91cHBlcl9leHByX2NvbnRleHQgKmNvbnRleHQpCiAJfQog CS8qIFNwZWNpYWwgY2FzZXMgKGFwcGx5IG9ubHkgQUZURVIgZmFpbGluZyB0byBtYXRjaCB0byBs b3dlciB0bGlzdCkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpw YXJhbSA9IChQYXJhbSAqKSBub2RlOworCQkvKgorCQkgKiBJZiB0aGUgUGFyYW0gaXMgYSBQQVJB TV9FWEVDIFBhcmFtIGdlbmVyYXRlZCBieSBhbiBGRFcsIGl0IHNob3VsZAorCQkgKiBoYXZlIGJ1 YmJsZWQgdXAgZnJvbSBhIGxvd2VyIHBsYW4gbm9kZTsgY29udmVydCBpdCBpbnRvIGEgc2ltcGxl CisJCSAqIFZhciByZWZlcmVuY2luZyB0aGUgb3V0cHV0IG9mIHRoZSBzdWJwbGFuLgorCQkgKi8K KwkJaWYgKElTX0ZPUkVJR05fUEFSQU0oY29udGV4dC0+cm9vdCwgcGFyYW0pKQorCQl7CisJCQlp ZiAoY29udGV4dC0+c3VicGxhbl9pdGxpc3QtPmhhc19ub25fdmFycykKKwkJCXsKKwkJCQluZXd2 YXIgPSBzZWFyY2hfaW5kZXhlZF90bGlzdF9mb3Jfbm9uX3ZhcigoRXhwciAqKSBub2RlLAorCQkJ CQkJCQkJCQkJCQkgIGNvbnRleHQtPnN1YnBsYW5faXRsaXN0LAorCQkJCQkJCQkJCQkJCQkgIGNv bnRleHQtPm5ld3Zhcm5vKTsKKwkJCQlpZiAobmV3dmFyKQorCQkJCQlyZXR1cm4gKE5vZGUgKikg bmV3dmFyOworCQkJfQorCQkJLy8gWFhYIElzIGl0IGFuIGVycm9yIHRvIGJlIGhlcmU/CisJCX0K KwkJLyogSWYgbm90LCBkbyBmaXhfcGFyYW1fbm9kZSgpICovCiAJCXJldHVybiBmaXhfcGFyYW1f bm9kZShjb250ZXh0LT5yb290LCAoUGFyYW0gKikgbm9kZSk7CisJfQogCWlmIChJc0Eobm9kZSwg QWdncmVmKSkKIAl7CiAJCUFnZ3JlZgkgICAqYWdncmVmID0gKEFnZ3JlZiAqKSBub2RlOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc3Vic2VsZWN0LmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zdWJzZWxlY3QuYwppbmRleCA2YWE4OTcxYzk1ZC4uNjc0MjI5 MTRhYTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3N1YnNlbGVjdC5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3N1YnNlbGVjdC5jCkBAIC0zMTk0LDcg KzMxOTQsMTIgQEAgZmluYWxpemVfcHJpbW5vZGUoTm9kZSAqbm9kZSwgZmluYWxpemVfcHJpbW5v ZGVfY29udGV4dCAqY29udGV4dCkKIAkJewogCQkJaW50CQkJcGFyYW1pZCA9ICgoUGFyYW0gKikg bm9kZSktPnBhcmFtaWQ7CiAKLQkJCWNvbnRleHQtPnBhcmFtaWRzID0gYm1zX2FkZF9tZW1iZXIo Y29udGV4dC0+cGFyYW1pZHMsIHBhcmFtaWQpOworCQkJLyoKKwkJCSAqIFBhcmFtcyBhZGRlZCBi eSBGRFdzIGFyZSBpcnJlbGV2YW50IGZvciBwYXJhbWV0ZXIgY2hhbmdlCisJCQkgKiBzaWduYWxp bmcuCisJCQkgKi8KKwkJCWlmICghYm1zX2lzX21lbWJlcihwYXJhbWlkLCBjb250ZXh0LT5yb290 LT5nbG9iLT5mb3JlaWduUGFyYW1JRHMpKQorCQkJCWNvbnRleHQtPnBhcmFtaWRzID0gYm1zX2Fk ZF9tZW1iZXIoY29udGV4dC0+cGFyYW1pZHMsIHBhcmFtaWQpOwogCQl9CiAJCXJldHVybiBmYWxz ZTsJCQkvKiBubyBtb3JlIHRvIGRvIGhlcmUgKi8KIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9hcHBlbmRpbmZvLmMKaW5kZXggNzc4ZTQ2NjJmNmUuLjcwODlhMjY3MTI1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9hcHBlbmRpbmZvLmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvYXBwZW5kaW5mby5jCkBAIC05NDgsNiArOTQ4LDI5IEBAIGFkZF9y b3dfaWRlbnRpdHlfdmFyKFBsYW5uZXJJbmZvICpyb290LCBWYXIgKm9yaWdfdmFyLAogCXJvb3Qt PnByb2Nlc3NlZF90bGlzdCA9IGxhcHBlbmQocm9vdC0+cHJvY2Vzc2VkX3RsaXN0LCB0bGUpOwog fQogCitzdGF0aWMgdm9pZAorZml4X2ZvcmVpZ25fcGFyYW1zKFBsYW5uZXJJbmZvICpyb290LCBM aXN0ICp0bGlzdCkKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIHRsaXN0KQor CXsKKwkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCQlQ YXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgdGxlLT5leHByOworCisJCWlmICh0bGUtPnJlc2p1 bmsgJiYgSXNBKHBhcmFtLCBQYXJhbSkgJiYKKwkJCXBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1f RVhFQyAmJgorCQkJcGFyYW0tPnBhcmFtaWQgPT0gLTEpCisJCXsKKwkJCXBhcmFtLT5wYXJhbWlk ID0gbGlzdF9sZW5ndGgocm9vdC0+Z2xvYi0+cGFyYW1FeGVjVHlwZXMpOworCQkJcm9vdC0+Z2xv Yi0+cGFyYW1FeGVjVHlwZXMgPQorCQkJCWxhcHBlbmRfb2lkKHJvb3QtPmdsb2ItPnBhcmFtRXhl Y1R5cGVzLCBwYXJhbS0+cGFyYW10eXBlKTsKKwkJCXJvb3QtPmdsb2ItPmZvcmVpZ25QYXJhbUlE cyA9CisJCQkJYm1zX2FkZF9tZW1iZXIocm9vdC0+Z2xvYi0+Zm9yZWlnblBhcmFtSURzLCBwYXJh bS0+cGFyYW1pZCk7CisJCX0KKwl9Cit9CisKIC8qCiAgKiBhZGRfcm93X2lkZW50aXR5X2NvbHVt bnMKICAqCkBAIC05OTIsOCArMTAxNSwxMiBAQCBhZGRfcm93X2lkZW50aXR5X2NvbHVtbnMoUGxh bm5lckluZm8gKnJvb3QsIEluZGV4IHJ0aW5kZXgsCiAJCWZkd3JvdXRpbmUgPSBHZXRGZHdSb3V0 aW5lRm9yUmVsYXRpb24odGFyZ2V0X3JlbGF0aW9uLCBmYWxzZSk7CiAKIAkJaWYgKGZkd3JvdXRp bmUtPkFkZEZvcmVpZ25VcGRhdGVUYXJnZXRzICE9IE5VTEwpCisJCXsKKwogCQkJZmR3cm91dGlu ZS0+QWRkRm9yZWlnblVwZGF0ZVRhcmdldHMocm9vdCwgcnRpbmRleCwKIAkJCQkJCQkJCQkJCXRh cmdldF9ydGUsIHRhcmdldF9yZWxhdGlvbik7CisJCQlmaXhfZm9yZWlnbl9wYXJhbXMocm9vdCwg cm9vdC0+cHJvY2Vzc2VkX3RsaXN0KTsKKwkJfQogCiAJCS8qCiAJCSAqIEZvciBVUERBVEUsIHdl IG5lZWQgdG8gbWFrZSB0aGUgRkRXIGZldGNoIHVuY2hhbmdlZCBjb2x1bW5zIGJ5CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMKaW5kZXggNmE3YjllZGZmM2YuLmQ4ZjA4NDg1ZTM5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvaW5oZXJpdC5jCkBAIC0yOTQsNiArMjk0LDcgQEAgZXhw YW5kX2luaGVyaXRlZF9ydGVudHJ5KFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWws CiAJCQkJCQkgIEludmFsaWRPaWQsCiAJCQkJCQkgIDApOwogCQkJc25wcmludGYocmVzbmFtZSwg c2l6ZW9mKHJlc25hbWUpLCAidGFibGVvaWQldSIsIG9sZHJjLT5yb3dtYXJrSWQpOworCiAJCQl0 bGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgdmFyLAogCQkJCQkJCQkgIGxpc3RfbGVuZ3Ro KHJvb3QtPnByb2Nlc3NlZF90bGlzdCkgKyAxLAogCQkJCQkJCQkgIHBzdHJkdXAocmVzbmFtZSks CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMKaW5kZXggNjg3ZTkyM2M0NmMuLjUxMjk0 NDIwOTg3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVsbm9kZS5jCkBAIC0xMzIwLDYgKzEz MjAsMjcgQEAgYnVpbGRfam9pbnJlbF90bGlzdChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5m byAqam9pbnJlbCwKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CisJCS8qCisJCSAqIFdlIGFsbG93 IEZEV3MgdG8gaGF2ZSBQQVJBTV9FWEVDIFBhcmFtcyBoZXJlLgorCQkgKi8KKwkJZWxzZSBpZiAo SXNBKHZhciwgUGFyYW0pKQorCQl7CisJCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgdmFy OworCisJCQlBc3NlcnQoSVNfRk9SRUlHTl9QQVJBTShyb290LCBwYXJhbSkpOworCisJCQlqb2lu cmVsLT5yZWx0YXJnZXQtPmV4cHJzID0KKwkJCQlsYXBwZW5kKGpvaW5yZWwtPnJlbHRhcmdldC0+ ZXhwcnMsIHBhcmFtKTsKKworCQkJLyoKKwkJCSAqIEVzdGltYXRlIHVzaW5nIHRoZSB0eXBlIGlu Zm8gIChOb3RlOiBrZWVwIHRoaXMgaW4gc3luYyB3aXRoCisJCQkgKiBzZXRfcmVsX3dpZHRoKCkp CisJCQkgKi8KKwkJCWpvaW5yZWwtPnJlbHRhcmdldC0+d2lkdGggKz0KKwkJCQlnZXRfdHlwYXZn d2lkdGgocGFyYW0tPnBhcmFtdHlwZSwgcGFyYW0tPnBhcmFtdHlwbW9kKTsKKworCQkJY29udGlu dWU7CisJCX0KIAogCQkvKgogCQkgKiBPdGhlcndpc2UsIGFueXRoaW5nIGluIGEgYmFzZXJlbCBv ciBqb2lucmVsIHRhcmdldGxpc3Qgb3VnaHQgdG8gYmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL3RsaXN0LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC90bGlz dC5jCmluZGV4IDc1MmVhOTIyMmY2Li5lMzgyODEwYjE5ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvdGxpc3QuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC90bGlzdC5jCkBAIC0zMjksMTggKzMyOSwzNyBAQCBhcHBseV90bGlzdF9sYWJlbGluZyhMaXN0 ICpkZXN0X3RsaXN0LCBMaXN0ICpzcmNfdGxpc3QpCiAJTGlzdENlbGwgICAqbGQsCiAJCQkgICAq bHM7CiAKLQlBc3NlcnQobGlzdF9sZW5ndGgoZGVzdF90bGlzdCkgPT0gbGlzdF9sZW5ndGgoc3Jj X3RsaXN0KSk7Ci0JZm9yYm90aChsZCwgZGVzdF90bGlzdCwgbHMsIHNyY190bGlzdCkKKwlmb3Jl YWNoKGxkLCBkZXN0X3RsaXN0KQogCXsKKwkJYm9vbCBoYXNfc3JjID0gZmFsc2U7CiAJCVRhcmdl dEVudHJ5ICpkZXN0X3RsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGQpOwotCQlUYXJnZXRF bnRyeSAqc3JjX3RsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobHMpOwotCi0JCUFzc2VydChk ZXN0X3RsZS0+cmVzbm8gPT0gc3JjX3RsZS0+cmVzbm8pOwotCQlkZXN0X3RsZS0+cmVzbmFtZSA9 IHNyY190bGUtPnJlc25hbWU7Ci0JCWRlc3RfdGxlLT5yZXNzb3J0Z3JvdXByZWYgPSBzcmNfdGxl LT5yZXNzb3J0Z3JvdXByZWY7Ci0JCWRlc3RfdGxlLT5yZXNvcmlndGJsID0gc3JjX3RsZS0+cmVz b3JpZ3RibDsKLQkJZGVzdF90bGUtPnJlc29yaWdjb2wgPSBzcmNfdGxlLT5yZXNvcmlnY29sOwot CQlkZXN0X3RsZS0+cmVzanVuayA9IHNyY190bGUtPnJlc2p1bms7CisKKwkJZm9yZWFjaChscywg c3JjX3RsaXN0KQorCQl7CisJCQlUYXJnZXRFbnRyeSAqc3JjX3RsZSA9IChUYXJnZXRFbnRyeSAq KSBsZmlyc3QobHMpOworCisJCQlpZiAoZGVzdF90bGUtPnJlc25vID09IHNyY190bGUtPnJlc25v KQorCQkJeworCQkJCWhhc19zcmMgPSB0cnVlOworCQkJCWRlc3RfdGxlLT5yZXNuYW1lID0gc3Jj X3RsZS0+cmVzbmFtZTsKKwkJCQlkZXN0X3RsZS0+cmVzc29ydGdyb3VwcmVmID0gc3JjX3RsZS0+ cmVzc29ydGdyb3VwcmVmOworCQkJCWRlc3RfdGxlLT5yZXNvcmlndGJsID0gc3JjX3RsZS0+cmVz b3JpZ3RibDsKKwkJCQlkZXN0X3RsZS0+cmVzb3JpZ2NvbCA9IHNyY190bGUtPnJlc29yaWdjb2w7 CisJCQkJZGVzdF90bGUtPnJlc2p1bmsgPSBzcmNfdGxlLT5yZXNqdW5rOworCQkJCWJyZWFrOwor CQkJfQorCQl9CisKKwkJaWYgKCFoYXNfc3JjKQorCQl7CisJCQlUYXJnZXRFbnRyeSAqbmV3X2Vu dHJ5ID0gcGFsbG9jMChzaXplb2YoVGFyZ2V0RW50cnkpKTsKKwkJCW5ld19lbnRyeS0+cmVzbmFt ZSA9IGRlc3RfdGxlLT5yZXNuYW1lOworCQkJbmV3X2VudHJ5LT5yZXNzb3J0Z3JvdXByZWYgPSBk ZXN0X3RsZS0+cmVzc29ydGdyb3VwcmVmOworCQkJbmV3X2VudHJ5LT5yZXNvcmlndGJsID0gZGVz dF90bGUtPnJlc29yaWd0Ymw7CisJCQluZXdfZW50cnktPnJlc29yaWdjb2wgPSBkZXN0X3RsZS0+ cmVzb3JpZ2NvbDsKKwkJCW5ld19lbnRyeS0+cmVzanVuayA9IGRlc3RfdGxlLT5yZXNqdW5rOwor CQkJc3JjX3RsaXN0ID0gbGFwcGVuZChzcmNfdGxpc3QsIG5ld19lbnRyeSk7CisJCX0KIAl9CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBiM2FlZjc5N2U3ZC4uMzAyYmY3ZDJm ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTkzNzYsNyArOTM3Niw3IEBAIGdl dF9wYXJhbWV0ZXIoUGFyYW0gKnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJICog SXQncyBhIGJ1ZyBpZiB3ZSBnZXQgaGVyZSBmb3IgYW55dGhpbmcgZXhjZXB0IFBBUkFNX0VYVEVS TiBQYXJhbXMsIGJ1dAogCSAqIGluIHByb2R1Y3Rpb24gYnVpbGRzIHByaW50aW5nICROIHNlZW1z IG1vcmUgdXNlZnVsIHRoYW4gZmFpbGluZy4KIAkgKi8KLQlBc3NlcnQocGFyYW0tPnBhcmFta2lu ZCA9PSBQQVJBTV9FWFRFUk4pOworCUFzc2VydChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTiB8fCBwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYRUMpOwogCiAJYXBwZW5kU3RyaW5n SW5mbyhjb250ZXh0LT5idWYsICIkJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiB9CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv aHR1cF9kZXRhaWxzLmgKaW5kZXggNzdhNmM0OGZkNzEuLjFmNTlmMzYzYTY4IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9hY2Nlc3MvaHR1cF9kZXRhaWxzLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNj ZXNzL2h0dXBfZGV0YWlscy5oCkBAIC03OTQsMTAgKzc5NCwxNyBAQCBIZWFwVHVwbGVDbGVhckhl YXBPbmx5KGNvbnN0IEhlYXBUdXBsZURhdGEgKnR1cGxlKQogLyogcHJvdG90eXBlcyBmb3IgZnVu Y3Rpb25zIGluIGNvbW1vbi9oZWFwdHVwbGUuYyAqLwogZXh0ZXJuIFNpemUgaGVhcF9jb21wdXRl X2RhdGFfc2l6ZShUdXBsZURlc2MgdHVwbGVEZXNjLAogCQkJCQkJCQkgICBjb25zdCBEYXR1bSAq dmFsdWVzLCBjb25zdCBib29sICppc251bGwpOworZXh0ZXJuIFNpemUgaGVhcF9jb21wdXRlX2Rh dGFfc2l6ZV9leHQoVHVwbGVEZXNjIHR1cGxlRGVzYywKKwkJCQkJCQkJCSAgIGNvbnN0IERhdHVt ICp2YWx1ZXMsIGNvbnN0IGJvb2wgKmlzbnVsbCwKKwkJCQkJCQkJCSAgIGludCBuYXR0cyk7CiBl eHRlcm4gdm9pZCBoZWFwX2ZpbGxfdHVwbGUoVHVwbGVEZXNjIHR1cGxlRGVzYywKIAkJCQkJCQlj b25zdCBEYXR1bSAqdmFsdWVzLCBjb25zdCBib29sICppc251bGwsCiAJCQkJCQkJY2hhciAqZGF0 YSwgU2l6ZSBkYXRhX3NpemUsCiAJCQkJCQkJdWludDE2ICppbmZvbWFzaywgdWludDggKmJpdCk7 CitleHRlcm4gdm9pZCBoZWFwX2ZpbGxfdHVwbGVfZXh0KFR1cGxlRGVzYyB0dXBsZURlc2MsCisJ CQkJCQkJCWNvbnN0IERhdHVtICp2YWx1ZXMsIGNvbnN0IGJvb2wgKmlzbnVsbCwKKwkJCQkJCQkJ Y2hhciAqZGF0YSwgU2l6ZSBkYXRhX3NpemUsCisJCQkJCQkJCXVpbnQxNiAqaW5mb21hc2ssIHVp bnQ4ICpiaXQsIGludCBuYXR0cyk7CiBleHRlcm4gYm9vbCBoZWFwX2F0dGlzbnVsbChIZWFwVHVw bGUgdHVwLCBpbnQgYXR0bnVtLCBUdXBsZURlc2MgdHVwbGVEZXNjKTsKIGV4dGVybiBEYXR1bSBu b2NhY2hlZ2V0YXR0cihIZWFwVHVwbGUgdHVwLCBpbnQgYXR0bnVtLAogCQkJCQkJCVR1cGxlRGVz YyB0dXBsZURlc2MpOwpAQCAtODA2LDEwICs4MTMsMjAgQEAgZXh0ZXJuIERhdHVtIGhlYXBfZ2V0 c3lzYXR0cihIZWFwVHVwbGUgdHVwLCBpbnQgYXR0bnVtLCBUdXBsZURlc2MgdHVwbGVEZXNjLAog ZXh0ZXJuIERhdHVtIGdldG1pc3NpbmdhdHRyKFR1cGxlRGVzYyB0dXBsZURlc2MsCiAJCQkJCQkJ aW50IGF0dG51bSwgYm9vbCAqaXNudWxsKTsKIGV4dGVybiBIZWFwVHVwbGUgaGVhcF9jb3B5dHVw bGUoSGVhcFR1cGxlIHR1cGxlKTsKKworc3RydWN0IFR1cGxlVGFibGVTbG90OworZXh0ZXJuIEhl YXBUdXBsZSBoZWFwX2NvcHl0dXBsZV9leHQoSGVhcFR1cGxlIHR1cGxlLAorCQkJCQkJCQkJc3Ry dWN0IFR1cGxlVGFibGVTbG90ICpzbG90LAorCQkJCQkJCQkJaW50IGRzdG5hdHRzKTsKKwogZXh0 ZXJuIHZvaWQgaGVhcF9jb3B5dHVwbGVfd2l0aF90dXBsZShIZWFwVHVwbGUgc3JjLCBIZWFwVHVw bGUgZGVzdCk7CiBleHRlcm4gRGF0dW0gaGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKEhlYXBUdXBs ZSB0dXBsZSwgVHVwbGVEZXNjIHR1cGxlRGVzYyk7CiBleHRlcm4gSGVhcFR1cGxlIGhlYXBfZm9y bV90dXBsZShUdXBsZURlc2MgdHVwbGVEZXNjcmlwdG9yLAogCQkJCQkJCQkgY29uc3QgRGF0dW0g KnZhbHVlcywgY29uc3QgYm9vbCAqaXNudWxsKTsKK2V4dGVybiBIZWFwVHVwbGUgaGVhcF9mb3Jt X3R1cGxlX2V4dChUdXBsZURlc2MgdHVwbGVEZXNjcmlwdG9yLAorCQkJCQkJCQkJIGNvbnN0IERh dHVtICp2YWx1ZXMsCisJCQkJCQkJCQkgY29uc3QgYm9vbCAqaXNudWxsLAorCQkJCQkJCQkJIGlu dCBuYXR0cyk7CiBleHRlcm4gSGVhcFR1cGxlIGhlYXBfbW9kaWZ5X3R1cGxlKEhlYXBUdXBsZSB0 dXBsZSwKIAkJCQkJCQkJICAgVHVwbGVEZXNjIHR1cGxlRGVzYywKIAkJCQkJCQkJICAgY29uc3Qg RGF0dW0gKnJlcGxWYWx1ZXMsCkBAIC04MjcsNiArODQ0LDExIEBAIGV4dGVybiB2b2lkIGhlYXBf ZnJlZXR1cGxlKEhlYXBUdXBsZSBodHVwKTsKIGV4dGVybiBNaW5pbWFsVHVwbGUgaGVhcF9mb3Jt X21pbmltYWxfdHVwbGUoVHVwbGVEZXNjIHR1cGxlRGVzY3JpcHRvciwKIAkJCQkJCQkJCQkJY29u c3QgRGF0dW0gKnZhbHVlcywgY29uc3QgYm9vbCAqaXNudWxsLAogCQkJCQkJCQkJCQlTaXplIGV4 dHJhKTsKK2V4dGVybiBNaW5pbWFsVHVwbGUgaGVhcF9mb3JtX21pbmltYWxfdHVwbGVfZXh0KFR1 cGxlRGVzYyB0dXBsZURlc2NyaXB0b3IsCisJCQkJCQkJCQkJCQljb25zdCBEYXR1bSAqdmFsdWVz LAorCQkJCQkJCQkJCQkJY29uc3QgYm9vbCAqaXNudWxsLAorCQkJCQkJCQkJCQkJU2l6ZSBleHRy YSwKKwkJCQkJCQkJCQkJCWludCBuYXR0cyk7CiBleHRlcm4gdm9pZCBoZWFwX2ZyZWVfbWluaW1h bF90dXBsZShNaW5pbWFsVHVwbGUgbXR1cCk7CiBleHRlcm4gTWluaW1hbFR1cGxlIGhlYXBfY29w eV9taW5pbWFsX3R1cGxlKE1pbmltYWxUdXBsZSBtdHVwLCBTaXplIGV4dHJhKTsKIGV4dGVybiBI ZWFwVHVwbGUgaGVhcF90dXBsZV9mcm9tX21pbmltYWxfdHVwbGUoTWluaW1hbFR1cGxlIG10dXAp OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvdHVwdGFibGUuaCBiL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL3R1cHRhYmxlLmgKaW5kZXggM2RiNmM5YzliZDAuLjAyZGRjNGZiNzlkIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci90dXB0YWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL3R1cHRhYmxlLmgKQEAgLTE0MSw2ICsxNDEsNyBAQCB0eXBlZGVmIHN0cnVj dCBUdXBsZVRhYmxlU2xvdAogCU1lbW9yeUNvbnRleHQgdHRzX21jeHQ7CQkvKiBzbG90IGl0c2Vs ZiBpcyBpbiB0aGlzIGNvbnRleHQgKi8KIAlJdGVtUG9pbnRlckRhdGEgdHRzX3RpZDsJLyogc3Rv cmVkIHR1cGxlJ3MgdGlkICovCiAJT2lkCQkJdHRzX3RhYmxlT2lkOwkvKiB0YWJsZSBvaWQgb2Yg dHVwbGUgKi8KKwlPaWQJCQl0dHNfcmVtb3RlT2lkOwogfSBUdXBsZVRhYmxlU2xvdDsKIAogLyog cm91dGluZXMgZm9yIGEgVHVwbGVUYWJsZVNsb3QgaW1wbGVtZW50YXRpb24gKi8KQEAgLTIyMyw4 ICsyMjQsMTAgQEAgc3RydWN0IFR1cGxlVGFibGVTbG90T3BzCiAJICogbWVhbmluZ2Z1bCAic3lz dGVtIGNvbHVtbnMiIGluIHRoZSBjb3B5LiBUaGUgY29weSBpcyBub3QgYmUgIm93bmVkIiBieQog CSAqIHRoZSBzbG90IGkuZS4gdGhlIGNhbGxlciBoYXMgdG8gdGFrZSByZXNwb25zaWJpbGl0eSB0 byBmcmVlIG1lbW9yeQogCSAqIGNvbnN1bWVkIGJ5IHRoZSBzbG90LgorCSAqCisJICogVE9ETyBj b21tZW50IGZvciAibmF0dHMiCiAJICovCi0JSGVhcFR1cGxlCSgqY29weV9oZWFwX3R1cGxlKSAo VHVwbGVUYWJsZVNsb3QgKnNsb3QpOworCUhlYXBUdXBsZQkoKmNvcHlfaGVhcF90dXBsZSkgKFR1 cGxlVGFibGVTbG90ICpzbG90LCBpbnQgbmF0dHMpOwogCiAJLyoKIAkgKiBSZXR1cm4gYSBjb3B5 IG9mIG1pbmltYWwgdHVwbGUgcmVwcmVzZW50aW5nIHRoZSBjb250ZW50cyBvZiB0aGUgc2xvdC4K QEAgLTIzNyw4ICsyNDAsMTAgQEAgc3RydWN0IFR1cGxlVGFibGVTbG90T3BzCiAJICogVGhlIGNv cHkgaGFzICJleHRyYSIgYnl0ZXMgKG1heGFsaWduZWQgYW5kIHplcm9lZCkgYXZhaWxhYmxlIGJl Zm9yZSB0aGUKIAkgKiB0dXBsZSwgd2hpY2ggaXMgdXNlZnVsIHNvIHRoYXQgc29tZSBjYWxsZXJz IG1heSBzdG9yZSBleHRyYSBkYXRhIGFsb25nCiAJICogd2l0aCB0aGUgbWluaW1hbCB0dXBsZSB3 aXRob3V0IHRoZSBuZWVkIGZvciBhbiBhZGRpdGlvbmFsIGFsbG9jYXRpb24uCisJICoKKwkgKiBU T0RPIGNvbW1lbnQgZm9yICJuYXR0cyIKIAkgKi8KLQlNaW5pbWFsVHVwbGUgKCpjb3B5X21pbmlt YWxfdHVwbGUpIChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgU2l6ZSBleHRyYSk7CisJTWluaW1hbFR1 cGxlICgqY29weV9taW5pbWFsX3R1cGxlKSAoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIFNpemUgZXh0 cmEsIGludCBuYXR0cyk7CiB9OwogCiAvKgpAQCAtMzY4LDYgKzM3MywxMiBAQCBleHRlcm4gdm9p ZCBzbG90X2dldHNvbWVhdHRyc19pbnQoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBhdHRudW0p OwogCiAjaWZuZGVmIEZST05URU5ECiAKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zICovCitzdGF0 aWMgaW5saW5lIEhlYXBUdXBsZSBFeGVjQ29weVNsb3RIZWFwVHVwbGVFeHRlZGVkKFR1cGxlVGFi bGVTbG90ICpzbG90LAorCQkJCQkJCQkJCQkJCSBpbnQgbmF0dHMpOworc3RhdGljIGlubGluZSBN aW5pbWFsVHVwbGUgRXhlY0NvcHlTbG90TWluaW1hbFR1cGxlRXh0ZWRlZChUdXBsZVRhYmxlU2xv dCAqc2xvdCwKKwkJCQkJCQkJCQkJCQkJICAgaW50IG5hdHRzKTsKKwogLyoKICAqIFRoaXMgZnVu Y3Rpb24gZm9yY2VzIHRoZSBlbnRyaWVzIG9mIHRoZSBzbG90J3MgRGF0dW0vaXNudWxsIGFycmF5 cyB0byBiZQogICogdmFsaWQgYXQgbGVhc3QgdXAgdGhyb3VnaCB0aGUgYXR0bnVtJ3RoIGVudHJ5 LgpAQCAtNTAyLDEwICs1MTMsMTYgQEAgRXhlY01hdGVyaWFsaXplU2xvdChUdXBsZVRhYmxlU2xv dCAqc2xvdCkKICAqLwogc3RhdGljIGlubGluZSBIZWFwVHVwbGUKIEV4ZWNDb3B5U2xvdEhlYXBU dXBsZShUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlyZXR1cm4gRXhlY0NvcHlTbG90SGVhcFR1 cGxlRXh0ZWRlZChzbG90LCAtMSAvKiBuYXR0cyAqLyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgSGVh cFR1cGxlCitFeGVjQ29weVNsb3RIZWFwVHVwbGVFeHRlZGVkKFR1cGxlVGFibGVTbG90ICpzbG90 LCBpbnQgbmF0dHMpCiB7CiAJQXNzZXJ0KCFUVFNfRU1QVFkoc2xvdCkpOwogCi0JcmV0dXJuIHNs b3QtPnR0c19vcHMtPmNvcHlfaGVhcF90dXBsZShzbG90KTsKKwlyZXR1cm4gc2xvdC0+dHRzX29w cy0+Y29weV9oZWFwX3R1cGxlKHNsb3QsIG5hdHRzKTsKIH0KIAogLyoKQEAgLTUxNCw3ICs1MzEs MTMgQEAgRXhlY0NvcHlTbG90SGVhcFR1cGxlKFR1cGxlVGFibGVTbG90ICpzbG90KQogc3RhdGlj IGlubGluZSBNaW5pbWFsVHVwbGUKIEV4ZWNDb3B5U2xvdE1pbmltYWxUdXBsZShUdXBsZVRhYmxl U2xvdCAqc2xvdCkKIHsKLQlyZXR1cm4gc2xvdC0+dHRzX29wcy0+Y29weV9taW5pbWFsX3R1cGxl KHNsb3QsIDApOworCXJldHVybiBFeGVjQ29weVNsb3RNaW5pbWFsVHVwbGVFeHRlZGVkKHNsb3Qs IC0xIC8qIG5hdHRzICovKTsKK30KKworc3RhdGljIGlubGluZSBNaW5pbWFsVHVwbGUKK0V4ZWND b3B5U2xvdE1pbmltYWxUdXBsZUV4dGVkZWQoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIGludCBuYXR0 cykKK3sKKwlyZXR1cm4gc2xvdC0+dHRzX29wcy0+Y29weV9taW5pbWFsX3R1cGxlKHNsb3QsIDAg Lyogbm8gZXh0cmEgKi8sIG5hdHRzKTsKIH0KIAogLyoKQEAgLTUyNCw5ICs1NDcsOSBAQCBFeGVj Q29weVNsb3RNaW5pbWFsVHVwbGUoVHVwbGVUYWJsZVNsb3QgKnNsb3QpCiAgKiBjYWxsZXIgdG8g bWFrZSBhbiBhZGRpdGlvbmFsIGFsbG9jYXRpb24pLgogICovCiBzdGF0aWMgaW5saW5lIE1pbmlt YWxUdXBsZQotRXhlY0NvcHlTbG90TWluaW1hbFR1cGxlRXh0cmEoVHVwbGVUYWJsZVNsb3QgKnNs b3QsIFNpemUgZXh0cmEpCitFeGVjQ29weVNsb3RNaW5pbWFsVHVwbGVFeHRyYShUdXBsZVRhYmxl U2xvdCAqc2xvdCwgU2l6ZSBleHRyYSwgaW50IG5hdHRzKQogewotCXJldHVybiBzbG90LT50dHNf b3BzLT5jb3B5X21pbmltYWxfdHVwbGUoc2xvdCwgZXh0cmEpOworCXJldHVybiBzbG90LT50dHNf b3BzLT5jb3B5X21pbmltYWxfdHVwbGUoc2xvdCwgZXh0cmEsIG5hdHRzKTsKIH0KIAogLyoKQEAg LTU0NSw5ICs1NjgsMTIgQEAgRXhlY0NvcHlTbG90KFR1cGxlVGFibGVTbG90ICpkc3RzbG90LCBU dXBsZVRhYmxlU2xvdCAqc3Jjc2xvdCkKIHsKIAlBc3NlcnQoIVRUU19FTVBUWShzcmNzbG90KSk7 CiAJQXNzZXJ0KHNyY3Nsb3QgIT0gZHN0c2xvdCk7Ci0JQXNzZXJ0KGRzdHNsb3QtPnR0c190dXBs ZURlc2NyaXB0b3ItPm5hdHRzID09Ci0JCSAgIHNyY3Nsb3QtPnR0c190dXBsZURlc2NyaXB0b3It Pm5hdHRzKTsKIAorCS8qCisJICogSWYgc291cmNlIHNsb3QgaGFzIGxlc3MgYXR0cmlidXRlcyB0 aGVuIHRhcmdldCAtIGNvcHkgc291cmNlIGFuZAorCSAqIHNldCB0YXJnZXQgdG8gbnVsbHMuIE90 aGVyd2lzZSBjb3B5IG9ubHkgbGVhZGluZyBhdHRyaWJ1dGVzIGFuZCBzZXQKKwkgKiB0YXJnZXQg bmF0dHMgdG8gc291cmNlIGNvdW50ZXIuCisJICovCiAJZHN0c2xvdC0+dHRzX29wcy0+Y29weXNs b3QoZHN0c2xvdCwgc3Jjc2xvdCk7CiAKIAlyZXR1cm4gZHN0c2xvdDsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVz LmgKaW5kZXggMjdhMmM2ODE1YjcuLmFiZTQ5MDRjYzI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApA QCAtMjcxLDEyICsyNzEsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCS8qIGV4 dGVuc2lvbiBzdGF0ZSAqLwogCXZvaWQJICAqKmV4dGVuc2lvbl9zdGF0ZSBwZ19ub2RlX2F0dHIo cmVhZF93cml0ZV9pZ25vcmUpOwogCWludAkJCWV4dGVuc2lvbl9zdGF0ZV9hbGxvY2F0ZWQ7CisK KwkvKiBQQVJBTV9FWEVDIFBhcmFtcyBnZW5lcmF0ZWQgYnkgRkRXcyAqLworCUJpdG1hcHNldCAg KmZvcmVpZ25QYXJhbUlEczsKIH0gUGxhbm5lckdsb2JhbDsKIAogLyogbWFjcm8gZm9yIGZldGNo aW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1YlBsYW4gbm9kZSAqLwogI2RlZmluZSBw bGFubmVyX3N1YnBsYW5fZ2V0X3BsYW4ocm9vdCwgc3VicGxhbikgXAogCSgoUGxhbiAqKSBsaXN0 X250aCgocm9vdCktPmdsb2ItPnN1YnBsYW5zLCAoc3VicGxhbiktPnBsYW5faWQgLSAxKSkKIAor LyogbWFjcm8gZm9yIGNoZWNraW5nIGlmIGEgUGFyYW0gaXMgYSBQQVJBTV9FWEVDIFBhcmFtIGdl bmVyYXRlZCBieSBhbiBGRFcgKi8KKyNkZWZpbmUgSVNfRk9SRUlHTl9QQVJBTShyb290LCBwYXJh bSkgXAorICAgICAgICgocGFyYW0pLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhFQyAmJiBcCisgICAg ICAgIGJtc19pc19tZW1iZXIoKHBhcmFtKS0+cGFyYW1pZCwgKHJvb3QpLT5nbG9iLT5mb3JlaWdu UGFyYW1JRHMpKQogCiAvKi0tLS0tLS0tLS0KICAqIFBsYW5uZXJJbmZvCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oCmluZGV4IGNhY2VmN2Q0MTUxLi5lMDQzM2NkMWY1ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK QEAgLTQwMiw2ICs0MDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbQogCU9pZAkJCXBhcmFtY29s bGlkOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJ bG9jYXRpb247CisJSW5kZXgJCXRhcmdldF9ydGU7CiB9IFBhcmFtOwogCiAvKgotLSAKMi40My4w Cgo= --00000000000032a1be06562e198b Content-Type: application/octet-stream; name="v4-0002-teach-fdw-use-remote-tableoid.patch" Content-Disposition: attachment; filename="v4-0002-teach-fdw-use-remote-tableoid.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mrdkqj1f1 RnJvbSBkZjIzMTI3NjVkOWM5OWU2NzViYTY5YzE3NjQwZmYxYWRhZWUzMTg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgTWFsYWtob3YgPG4ubWFsYWtob3ZAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IFRodSwgOSBKdWwgMjAyNiAxNjo1MToyNyArMDMwMApTdWJqZWN0OiBbUEFU Q0hdIERFTEVURS9VUERBVEUgbW9yZSB0aGFuIG9uZSByb3cgaW4gcGFydGl0aW9uZWQgZm9yZWln biB0YWJsZQogKDIvMikKClRoaXMgcGF0Y2ggbW9kaWZpZXMgRkRXIGVuZ2luZSB0byB1c2UgcmVt b3RlIHRhYmxlIE9JRCBpbnRyb2R1Y2VkCmluIHByZXZpb3VzIHBhdGNoIGZvciBERUxFVEUgYW5k IFVQREFURSBvZiBwYXJ0aXRpb25lZCB0YWJsZXMuCgpbMV0gRGlzY3Vzc2lvbjogaHR0cHM6Ly93 d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzIwMjUwNzE4MTc1MzE0LjQ1MTNjMDBh JTQwa2Fyc3QKLS0tCiBjb250cmliL3Bvc3RncmVzX2Zkdy9kZXBhcnNlLmMgICAgICAgICAgICAg ICAgfCAgODUgKystCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQg ICAgfCA1MTggKysrKysrKysrKy0tLS0tLS0tCiBjb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jl c19mZHcuYyAgICAgICAgICAgfCAzMjAgKysrKysrKysrKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3 L3Bvc3RncmVzX2Zkdy5oICAgICAgICAgICB8ICAgMyArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9z cWwvcG9zdGdyZXNfZmR3LnNxbCAgICAgfCAgNDQgKysKIDUgZmlsZXMgY2hhbmdlZCwgNzE3IGlu c2VydGlvbnMoKyksIDI1MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3Rn cmVzX2Zkdy9kZXBhcnNlLmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9kZXBhcnNlLmMKaW5kZXgg MmRjYzZjOGFmMWIuLjhkNTY2YmNlNGJmIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zk dy9kZXBhcnNlLmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5jCkBAIC00OCw2 ICs0OCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAi bm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVk ZSAibm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgpA QCAtMTMyLDYgKzEzMyw3IEBAIHN0YXRpYyB2b2lkIGRlcGFyc2VUYXJnZXRMaXN0KFN0cmluZ0lu Zm8gYnVmLAogCQkJCQkJCSAgUmVsYXRpb24gcmVsLAogCQkJCQkJCSAgYm9vbCBpc19yZXR1cm5p bmcsCiAJCQkJCQkJICBCaXRtYXBzZXQgKmF0dHJzX3VzZWQsCisJCQkJCQkJICBib29sIHRhYmxl b2lkX25lZWRlZCwKIAkJCQkJCQkgIGJvb2wgcXVhbGlmeV9jb2wsCiAJCQkJCQkJICBMaXN0ICoq cmV0cmlldmVkX2F0dHJzKTsKIHN0YXRpYyB2b2lkIGRlcGFyc2VFeHBsaWNpdFRhcmdldExpc3Qo TGlzdCAqdGxpc3QsCkBAIC0zNTAsMTAgKzM1MiwxMSBAQCBmb3JlaWduX2V4cHJfd2Fsa2VyKE5v ZGUgKm5vZGUsCiAJCQkJCS8qIFZhciBiZWxvbmdzIHRvIGZvcmVpZ24gdGFibGUgKi8KIAogCQkJ CQkvKgotCQkJCQkgKiBTeXN0ZW0gY29sdW1ucyBvdGhlciB0aGFuIGN0aWQgc2hvdWxkIG5vdCBi ZSBzZW50IHRvCi0JCQkJCSAqIHRoZSByZW1vdGUsIHNpbmNlIHdlIGRvbid0IG1ha2UgYW55IGVm Zm9ydCB0byBlbnN1cmUKLQkJCQkJICogdGhhdCBsb2NhbCBhbmQgcmVtb3RlIHZhbHVlcyBtYXRj aCAodGFibGVvaWQsIGluCi0JCQkJCSAqIHBhcnRpY3VsYXIsIGFsbW9zdCBjZXJ0YWlubHkgZG9l c24ndCBtYXRjaCkuCisJCQkJCSAqIFN5c3RlbSBjb2x1bW5zIG90aGVyIHRoYW4gY3RpZCBhbmQg cmVtb3RlIHRhYmxlIG9pZAorCQkJCQkgKiBzaG91bGQgbm90IGJlIHNlbnQgdG8gdGhlIHJlbW90 ZSwgc2luY2Ugd2UgZG9uJ3QgbWFrZQorCQkJCQkgKiBhbnkgZWZmb3J0IHRvIGVuc3VyZSB0aGF0 IGxvY2FsIGFuZCByZW1vdGUgdmFsdWVzCisJCQkJCSAqIG1hdGNoICh0YWJsZW9pZCwgaW4gcGFy dGljdWxhciwgYWxtb3N0IGNlcnRhaW5seQorCQkJCQkgKiBkb2Vzbid0IG1hdGNoKS4KIAkJCQkJ ICovCiAJCQkJCWlmICh2YXItPnZhcmF0dG5vIDwgMCAmJgogCQkJCQkJdmFyLT52YXJhdHRubyAh PSBTZWxmSXRlbVBvaW50ZXJBdHRyaWJ1dGVOdW1iZXIpCkBAIC0xMjM1LDYgKzEyMzgsMjMgQEAg YnVpbGRfdGxpc3RfdG9fZGVwYXJzZShSZWxPcHRJbmZvICpmb3JlaWducmVsKQogCQkJCQkJCQkJ CQkJICBQVkNfUkVDVVJTRV9QTEFDRUhPTERFUlMpKTsKIAl9CiAKKwkvKiBBbHNvLCBhZGQgdGhl IFBhcmFtIHJlcHJlc2VudGluZyB0aGUgcmVtb3RlIHRhYmxlIE9JRCwgaWYgaXQgZXhpc3RzLiAq LworCWlmIChmcGluZm8tPnRhYmxlb2lkX3BhcmFtKQorCXsKKwkJVGFyZ2V0RW50cnkgKnRsZTsK KwkJLyoKKwkJICogQ29yZSBjb2RlIHNob3VsZCBoYXZlIGNvbnRhaW5lZCB0aGUgUGFyYW0gaW4g dGhlIGdpdmVuIHJlbGF0aW9uJ3MKKwkJICogcmVsdGFyZ2V0LgorCQkgKi8KKwkJQXNzZXJ0KGxp c3RfbWVtYmVyKGZvcmVpZ25yZWwtPnJlbHRhcmdldC0+ZXhwcnMsCisJCQkJCQkgICBmcGluZm8t PnRhYmxlb2lkX3BhcmFtKSk7CisJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSBjb3B5 T2JqZWN0KGZwaW5mby0+dGFibGVvaWRfcGFyYW0pLAorCQkJCQkJCSAgbGlzdF9sZW5ndGgodGxp c3QpICsgMSwKKwkJCQkJCQkgIE5VTEwsCisJCQkJCQkJICBmYWxzZSk7CisJCXRsaXN0ID0gbGFw cGVuZCh0bGlzdCwgdGxlKTsKKwl9CisKIAlyZXR1cm4gdGxpc3Q7CiB9CiAKQEAgLTEzOTAsNyAr MTQxMCw5IEBAIGRlcGFyc2VTZWxlY3RTcWwoTGlzdCAqdGxpc3QsIGJvb2wgaXNfc3VicXVlcnks IExpc3QgKipyZXRyaWV2ZWRfYXR0cnMsCiAJCVJlbGF0aW9uCXJlbCA9IHRhYmxlX29wZW4ocnRl LT5yZWxpZCwgTm9Mb2NrKTsKIAogCQlkZXBhcnNlVGFyZ2V0TGlzdChidWYsIHJ0ZSwgZm9yZWln bnJlbC0+cmVsaWQsIHJlbCwgZmFsc2UsCi0JCQkJCQkgIGZwaW5mby0+YXR0cnNfdXNlZCwgZmFs c2UsIHJldHJpZXZlZF9hdHRycyk7CisJCQkJCQkgIGZwaW5mby0+YXR0cnNfdXNlZCwKKwkJCQkJ CSAgZnBpbmZvLT50YWJsZW9pZF9wYXJhbSAhPSBOVUxMLAorCQkJCQkJICBmYWxzZSwgcmV0cmll dmVkX2F0dHJzKTsKIAkJdGFibGVfY2xvc2UocmVsLCBOb0xvY2spOwogCX0KIH0KQEAgLTE0NDEs NiArMTQ2Myw3IEBAIGRlcGFyc2VUYXJnZXRMaXN0KFN0cmluZ0luZm8gYnVmLAogCQkJCSAgUmVs YXRpb24gcmVsLAogCQkJCSAgYm9vbCBpc19yZXR1cm5pbmcsCiAJCQkJICBCaXRtYXBzZXQgKmF0 dHJzX3VzZWQsCisJCQkJICBib29sIHRhYmxlb2lkX25lZWRlZCwKIAkJCQkgIGJvb2wgcXVhbGlm eV9jb2wsCiAJCQkJICBMaXN0ICoqcmV0cmlldmVkX2F0dHJzKQogewpAQCAtMTQ5OSw2ICsxNTIy LDIyIEBAIGRlcGFyc2VUYXJnZXRMaXN0KFN0cmluZ0luZm8gYnVmLAogCQkJCQkJCQkJICAgU2Vs Zkl0ZW1Qb2ludGVyQXR0cmlidXRlTnVtYmVyKTsKIAl9CiAKKwlpZiAodGFibGVvaWRfbmVlZGVk ICYmCisJKGJtc19pc19tZW1iZXIoVGFibGVPaWRBdHRyaWJ1dGVOdW1iZXIgLSBGaXJzdExvd0lu dmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyLAorCQkJCQkgIGF0dHJzX3VzZWQpKSkKKwl7CisJCQlB c3NlcnQoIWZpcnN0KTsKKwkJCUFzc2VydCghaXNfcmV0dXJuaW5nKTsKKworCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICIsICIpOworCQkJaWYgKHF1YWxpZnlfY29sKQorCQkJCUFERF9S RUxfUVVBTElGSUVSKGJ1ZiwgcnRpbmRleCk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1 ZiwgInRhYmxlb2lkIik7CisKKwkJCSpyZXRyaWV2ZWRfYXR0cnMgPSBsYXBwZW5kX2ludCgqcmV0 cmlldmVkX2F0dHJzLAorCQkJCQkJCQkJCQlUYWJsZU9pZEF0dHJpYnV0ZU51bWJlcik7CisJfQor CiAJLyogRG9uJ3QgZ2VuZXJhdGUgYmFkIHN5bnRheCBpZiBubyB1bmRyb3BwZWQgY29sdW1ucyAq LwogCWlmIChmaXJzdCAmJiAhaXNfcmV0dXJuaW5nKQogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KGJ1ZiwgIk5VTEwiKTsKQEAgLTIyNTksNyArMjI5OCw3IEBAIGRlcGFyc2VVcGRhdGVTcWwoU3Ry aW5nSW5mbyBidWYsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAlkZXBhcnNlUmVsYXRpb24oYnVmLCBy ZWwpOwogCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIFNFVCAiKTsKIAotCXBpbmRleCA9 IDI7CQkJCQkvKiBjdGlkIGlzIGFsd2F5cyB0aGUgZmlyc3QgcGFyYW0gKi8KKwlwaW5kZXggPSAz OwkJCQkJLyogY3RpZCBpcyBhbHdheXMgdGhlIGZpcnN0IHBhcmFtICovCiAJZmlyc3QgPSB0cnVl OwogCWZvcmVhY2gobGMsIHRhcmdldEF0dHJzKQogCXsKQEAgLTIyNzksNyArMjMxOCw3IEBAIGRl cGFyc2VVcGRhdGVTcWwoU3RyaW5nSW5mbyBidWYsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkJCXBp bmRleCsrOwogCQl9CiAJfQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIFdIRVJFIGN0 aWQgPSAkMSIpOworCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIFdIRVJFIGN0aWQgPSAk MSBBTkQgdGFibGVvaWQgPSAkMiIpOwogCiAJZGVwYXJzZVJldHVybmluZ0xpc3QoYnVmLCBydGUs IHJ0aW5kZXgsIHJlbCwKIAkJCQkJCSByZWwtPnRyaWdkZXNjICYmIHJlbC0+dHJpZ2Rlc2MtPnRy aWdfdXBkYXRlX2FmdGVyX3JvdywKQEAgLTIzOTcsNyArMjQzNiw3IEBAIGRlcGFyc2VEZWxldGVT cWwoU3RyaW5nSW5mbyBidWYsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIHsKIAlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIkRFTEVURSBGUk9NICIpOwogCWRlcGFyc2VSZWxhdGlvbihidWYsIHJl bCk7Ci0JYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgV0hFUkUgY3RpZCA9ICQxIik7CisJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICIgV0hFUkUgY3RpZCA9ICQxIEFORCB0YWJsZW9p ZCA9ICQyIik7CiAKIAlkZXBhcnNlUmV0dXJuaW5nTGlzdChidWYsIHJ0ZSwgcnRpbmRleCwgcmVs LAogCQkJCQkJIHJlbC0+dHJpZ2Rlc2MgJiYgcmVsLT50cmlnZGVzYy0+dHJpZ19kZWxldGVfYWZ0 ZXJfcm93LApAQCAtMjUxMiw3ICsyNTUxLDcgQEAgZGVwYXJzZVJldHVybmluZ0xpc3QoU3RyaW5n SW5mbyBidWYsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAl9CiAKIAlpZiAoYXR0cnNfdXNlZCAhPSBO VUxMKQotCQlkZXBhcnNlVGFyZ2V0TGlzdChidWYsIHJ0ZSwgcnRpbmRleCwgcmVsLCB0cnVlLCBh dHRyc191c2VkLCBmYWxzZSwKKwkJZGVwYXJzZVRhcmdldExpc3QoYnVmLCBydGUsIHJ0aW5kZXgs IHJlbCwgdHJ1ZSwgYXR0cnNfdXNlZCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJICByZXRyaWV2ZWRf YXR0cnMpOwogCWVsc2UKIAkJKnJldHJpZXZlZF9hdHRycyA9IE5JTDsKQEAgLTI3MTksNiArMjc1 OCwxMiBAQCBkZXBhcnNlQ29sdW1uUmVmKFN0cmluZ0luZm8gYnVmLCBpbnQgdmFybm8sIGludCB2 YXJhdHRubywgUmFuZ2VUYmxFbnRyeSAqcnRlLAogCQkJQUREX1JFTF9RVUFMSUZJRVIoYnVmLCB2 YXJubyk7CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiY3RpZCIpOwogCX0KKwllbHNl IGlmICh2YXJhdHRubyA9PSBUYWJsZU9pZEF0dHJpYnV0ZU51bWJlcikKKwl7CisJCWlmIChxdWFs aWZ5X2NvbCkKKwkJCUFERF9SRUxfUVVBTElGSUVSKGJ1ZiwgdmFybm8pOworCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKGJ1ZiwgInRhYmxlb2lkIik7CisJfQogCWVsc2UgaWYgKHZhcmF0dG5vIDwg MCkKIAl7CiAJCS8qCkBAIC0yNzMwLDggKzI3NzUsOSBAQCBkZXBhcnNlQ29sdW1uUmVmKFN0cmlu Z0luZm8gYnVmLCBpbnQgdmFybm8sIGludCB2YXJhdHRubywgUmFuZ2VUYmxFbnRyeSAqcnRlLAog CQlPaWQJCQlmZXRjaHZhbCA9IDA7CiAKIAkJaWYgKHZhcmF0dG5vID09IFRhYmxlT2lkQXR0cmli dXRlTnVtYmVyKQorCQl7CiAJCQlmZXRjaHZhbCA9IHJ0ZS0+cmVsaWQ7Ci0KKwkJfQogCQlpZiAo cXVhbGlmeV9jb2wpCiAJCXsKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiQ0FTRSBX SEVOICgiKTsKQEAgLTI3ODIsNyArMjgyOCw3IEBAIGRlcGFyc2VDb2x1bW5SZWYoU3RyaW5nSW5m byBidWYsIGludCB2YXJubywgaW50IHZhcmF0dG5vLCBSYW5nZVRibEVudHJ5ICpydGUsCiAKIAkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJST1coIik7CiAJCWRlcGFyc2VUYXJnZXRMaXN0 KGJ1ZiwgcnRlLCB2YXJubywgcmVsLCBmYWxzZSwgYXR0cnNfdXNlZCwgcXVhbGlmeV9jb2wsCi0J CQkJCQkgICZyZXRyaWV2ZWRfYXR0cnMpOworCQkJCQkJICBxdWFsaWZ5X2NvbCwgJnJldHJpZXZl ZF9hdHRycyk7CiAJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAogCQkvKiBDb21w bGV0ZSB0aGUgQ0FTRSBXSEVOIHN0YXRlbWVudCBzdGFydGVkIGFib3ZlLiAqLwpAQCAtMzE2Nyw2 ICszMjEzLDIzIEBAIGRlcGFyc2VDb25zdChDb25zdCAqbm9kZSwgZGVwYXJzZV9leHByX2N4dCAq Y29udGV4dCwgaW50IHNob3d0eXBlKQogc3RhdGljIHZvaWQKIGRlcGFyc2VQYXJhbShQYXJhbSAq bm9kZSwgZGVwYXJzZV9leHByX2N4dCAqY29udGV4dCkKIHsKKwlQZ0Zkd1JlbGF0aW9uSW5mbyAq ZnBpbmZvID0gKFBnRmR3UmVsYXRpb25JbmZvICopIGNvbnRleHQtPmZvcmVpZ25yZWwtPmZkd19w cml2YXRlOworCisJLyoKKwkgKiBJZiB0aGUgUGFyYW0gaXMgdGhlIG9uZSByZXByZXNlbnRpbmcg dGhlIHJlbW90ZSB0YWJsZSBPSUQsIHRoZSB2YWx1ZQorCSAqIG5lZWRzIHRvIGJlIHByb2R1Y2Vk OyBmZXRjaCB0aGUgcmVtb3RlIHRhYmxlIE9JRCwgaW5zdGVhZC4KKwkgKi8KKwlpZiAoZXF1YWwo bm9kZSwgKE5vZGUgKikgZnBpbmZvLT50YWJsZW9pZF9wYXJhbSkpCisJeworCQlBc3NlcnQoYm1z X2lzX21lbWJlcihjb250ZXh0LT5yb290LT5wYXJzZS0+cmVzdWx0UmVsYXRpb24sCisJCQkJCQkJ IGNvbnRleHQtPmZvcmVpZ25yZWwtPnJlbGlkcykpOworCQlBc3NlcnQoYm1zX21lbWJlcnNoaXAo Y29udGV4dC0+Zm9yZWlnbnJlbC0+cmVsaWRzKSA9PSBCTVNfTVVMVElQTEUpOworCQlBRERfUkVM X1FVQUxJRklFUihjb250ZXh0LT5idWYsIGNvbnRleHQtPnJvb3QtPnBhcnNlLT5yZXN1bHRSZWxh dGlvbik7CisKKwkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhjb250ZXh0LT5idWYsICJ0YWJsZW9p ZCIpOworCQlyZXR1cm47CisJfQorCiAJaWYgKGNvbnRleHQtPnBhcmFtc19saXN0KQogCXsKIAkJ aW50CQkJcGluZGV4ID0gMDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVj dGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0CmluZGV4IDVlYmFlMWNlZGMyLi5mZDNiYWY4Zjc0MiAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC01Mjc1LDE0ICs1 Mjc1LDE0IEBAIEJFR0lOOwogICBFWFBMQUlOICh2ZXJib3NlLCBjb3N0cyBvZmYpCiAgIFVQREFU RSBmdDIgU0VUIGMyID0gYzIgKyA0MDAsIGMzID0gYzMgfHwgJ191cGRhdGU3YicgV0hFUkUgYzEg JSAxMCA9IDcgQU5EIGMxIDwgNDAKICAgICBSRVRVUk5JTkcgb2xkLiosIG5ldy4qOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNhbid0 IGJlIHB1c2hlZCBkb3duCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVi bGljLmZ0MgogICAgT3V0cHV0OiBvbGQuYzEsIG9sZC5jMiwgb2xkLmMzLCBvbGQuYzQsIG9sZC5j NSwgb2xkLmM2LCBvbGQuYzcsIG9sZC5jOCwgbmV3LmMxLCBuZXcuYzIsIG5ldy5jMywgbmV3LmM0 LCBuZXcuYzUsIG5ldy5jNiwgbmV3LmM3LCBuZXcuYzgKLSAgIFJlbW90ZSBTUUw6IFVQREFURSAi UyAxIi4iVCAxIiBTRVQgYzIgPSAkMiwgYzMgPSAkMyBXSEVSRSBjdGlkID0gJDEgUkVUVVJOSU5H ICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOAorICAgUmVtb3RlIFNRTDogVVBEQVRF ICJTIDEiLiJUIDEiIFNFVCBjMiA9ICQzLCBjMyA9ICQ0IFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFi bGVvaWQgPSAkMiBSRVRVUk5JTkcgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4CiAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDIKLSAgICAgICAgIE91dHB1dDogKGMyICsg NDAwKSwgKGMzIHx8ICdfdXBkYXRlN2InOjp0ZXh0KSwgY3RpZCwgZnQyLioKLSAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzgsIGN0aWQg RlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiIDwgNDApKSBBTkQgKCgoIkMgMSIgJSAxMCkg PSA3KSkgRk9SIFVQREFURQorICAgICAgICAgT3V0cHV0OiAoYzIgKyA0MDApLCAoYzMgfHwgJ191 cGRhdGU3Yic6OnRleHQpLCBjdGlkLCB0YWJsZW9pZCwgJDAsIGZ0Mi4qCisgICAgICAgICBSZW1v dGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4LCBjdGlkLCB0 YWJsZW9pZCBGUk9NICJTIDEiLiJUIDEiIFdIRVJFICgoIkMgMSIgPCA0MCkpIEFORCAoKCgiQyAx IiAlIDEwKSA9IDcpKSBGT1IgVVBEQVRFCiAoNiByb3dzKQogCiAgIFVQREFURSBmdDIgU0VUIGMy ID0gYzIgKyA0MDAsIGMzID0gYzMgfHwgJ191cGRhdGU3YicgV0hFUkUgYzEgJSAxMCA9IDcgQU5E IGMxIDwgNDAKQEAgLTU0MjksMTQgKzU0MjksMTQgQEAgREVMRVRFIEZST00gZnQyIFdIRVJFIGMx ICUgMTAgPSA1IFJFVFVSTklORyBjMSwgYzQ7CiBCRUdJTjsKICAgRVhQTEFJTiAodmVyYm9zZSwg Y29zdHMgb2ZmKQogICBERUxFVEUgRlJPTSBmdDIgV0hFUkUgYzEgJSAxMCA9IDYgQU5EIGMxIDwg NDAgUkVUVVJOSU5HIG9sZC5jMSwgYzQ7ICAgICAgICAgICAgICAgLS0gY2FuJ3QgYmUgcHVzaGVk IGRvd24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBEZWxldGUgb24gcHVibGljLmZ0MgogICAgT3V0cHV0OiBvbGQuYzEsIGM0Ci0gICBS ZW1vdGUgU1FMOiBERUxFVEUgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSBjdGlkID0gJDEgUkVUVVJO SU5HICJDIDEiLCBjNAorICAgUmVtb3RlIFNRTDogREVMRVRFIEZST00gIlMgMSIuIlQgMSIgV0hF UkUgY3RpZCA9ICQxIEFORCB0YWJsZW9pZCA9ICQyIFJFVFVSTklORyAiQyAxIiwgYzQKICAgIC0+ ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MgotICAgICAgICAgT3V0cHV0OiBjdGlkCi0gICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgY3RpZCBGUk9NICJTIDEiLiJUIDEiIFdIRVJFICgoIkMg MSIgPCA0MCkpIEFORCAoKCgiQyAxIiAlIDEwKSA9IDYpKSBGT1IgVVBEQVRFCisgICAgICAgICBP dXRwdXQ6IGN0aWQsIHRhYmxlb2lkLCAkMAorICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGN0 aWQsIHRhYmxlb2lkIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKCgiQyAxIiA8IDQwKSkgQU5EICgo KCJDIDEiICUgMTApID0gNikpIEZPUiBVUERBVEUKICg2IHJvd3MpCiAKICAgREVMRVRFIEZST00g ZnQyIFdIRVJFIGMxICUgMTAgPSA2IEFORCBjMSA8IDQwIFJFVFVSTklORyBvbGQuYzEsIGM0OwpA QCAtNjQzNiwyNyArNjQzNiwyNyBAQCBCRUdJTjsKICAgICBGUk9NIGZ0NCBJTk5FUiBKT0lOIGZ0 NSBPTiAoZnQ0LmMxID0gZnQ1LmMxKQogICAgIFdIRVJFIGZ0Mi5jMSA+IDEyMDAgQU5EIGZ0Mi5j MiA9IGZ0NC5jMQogICAgIFJFVFVSTklORyBvbGQsIG5ldywgZnQyLCBmdDIuKiwgZnQ0LCBmdDQu KjsgIC0tIGNhbid0IGJlIHB1c2hlZCBkb3duCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5mdDIKICAgIE91dHB1dDog b2xkLiosIG5ldy4qLCBmdDIuKiwgZnQyLmMxLCBmdDIuYzIsIGZ0Mi5jMywgZnQyLmM0LCBmdDIu YzUsIGZ0Mi5jNiwgZnQyLmM3LCBmdDIuYzgsIGZ0NC4qLCBmdDQuYzEsIGZ0NC5jMiwgZnQ0LmMz Ci0gICBSZW1vdGUgU1FMOiBVUERBVEUgIlMgMSIuIlQgMSIgU0VUIGMzID0gJDIgV0hFUkUgY3Rp ZCA9ICQxIFJFVFVSTklORyAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzgKKyAgIFJl bW90ZSBTUUw6IFVQREFURSAiUyAxIi4iVCAxIiBTRVQgYzMgPSAkMyBXSEVSRSBjdGlkID0gJDEg QU5EIHRhYmxlb2lkID0gJDIgUkVUVVJOSU5HICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3 LCBjOAogICAgLT4gIEZvcmVpZ24gU2NhbgotICAgICAgICAgT3V0cHV0OiAnYmFyJzo6dGV4dCwg ZnQyLmN0aWQsIGZ0Mi4qLCBmdDQuKiwgZnQ1LiosIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMKKyAg ICAgICAgIE91dHB1dDogJ2Jhcic6OnRleHQsIGZ0Mi5jdGlkLCBmdDIudGFibGVvaWQsICgkMCks IGZ0Mi4qLCBmdDQuKiwgZnQ1LiosIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMKICAgICAgICAgIFJl bGF0aW9uczogKChwdWJsaWMuZnQyKSBJTk5FUiBKT0lOIChwdWJsaWMuZnQ0KSkgSU5ORVIgSk9J TiAocHVibGljLmZ0NSkKLSAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCByMS5jdGlkLCBDQVNF IFdIRU4gKHIxLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIxLiJDIDEiLCByMS5jMiwg cjEuYzMsIHIxLmM0LCByMS5jNSwgcjEuYzYsIHIxLmM3LCByMS5jOCkgRU5ELCBDQVNFIFdIRU4g KHIyLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIyLmMxLCByMi5jMiwgcjIuYzMpIEVO RCwgQ0FTRSBXSEVOIChyMy4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhyMy5jMSwgcjMu YzIsIHIzLmMzKSBFTkQsIHIyLmMxLCByMi5jMiwgcjIuYzMgRlJPTSAoKCJTIDEiLiJUIDEiIHIx IElOTkVSIEpPSU4gIlMgMSIuIlQgMyIgcjIgT04gKCgocjEuYzIgPSByMi5jMSkpIEFORCAoKHIx LiJDIDEiID4gMTIwMCkpKSkgSU5ORVIgSk9JTiAiUyAxIi4iVCA0IiByMyBPTiAoKChyMi5jMSA9 IHIzLmMxKSkpKSBGT1IgVVBEQVRFIE9GIHIxCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg cjEuY3RpZCwgcjEudGFibGVvaWQsIENBU0UgV0hFTiAocjEuKik6OnRleHQgSVMgTk9UIE5VTEwg VEhFTiBST1cocjEuIkMgMSIsIHIxLmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEu YzcsIHIxLmM4KSBFTkQsIENBU0UgV0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBS T1cocjIuYzEsIHIyLmMyLCByMi5jMykgRU5ELCBDQVNFIFdIRU4gKHIzLiopOjp0ZXh0IElTIE5P VCBOVUxMIFRIRU4gUk9XKHIzLmMxLCByMy5jMiwgcjMuYzMpIEVORCwgcjIuYzEsIHIyLmMyLCBy Mi5jMywgcjEudGFibGVvaWQgRlJPTSAoKCJTIDEiLiJUIDEiIHIxIElOTkVSIEpPSU4gIlMgMSIu IlQgMyIgcjIgT04gKCgocjEuYzIgPSByMi5jMSkpIEFORCAoKHIxLiJDIDEiID4gMTIwMCkpKSkg SU5ORVIgSk9JTiAiUyAxIi4iVCA0IiByMyBPTiAoKChyMi5jMSA9IHIzLmMxKSkpKSBGT1IgVVBE QVRFIE9GIHIxCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKLSAgICAgICAgICAgICAgIE91dHB1 dDogZnQyLmN0aWQsIGZ0Mi4qLCBmdDQuKiwgZnQ1LiosIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMK KyAgICAgICAgICAgICAgIE91dHB1dDogZnQyLmN0aWQsIGZ0Mi50YWJsZW9pZCwgZnQyLiosIGZ0 NC4qLCBmdDUuKiwgZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMywgKCQwKQogICAgICAgICAgICAgICAg Sm9pbiBGaWx0ZXI6IChmdDQuYzEgPSBmdDUuYzEpCiAgICAgICAgICAgICAgICAtPiAgU29ydAot ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDIuY3RpZCwgZnQyLiosIGZ0Mi5jMiwgZnQ0 LiosIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDog ZnQyLmN0aWQsIGZ0Mi50YWJsZW9pZCwgZnQyLiosICgkMCksIGZ0Mi5jMiwgZnQ0LiosIGZ0NC5j MSwgZnQ0LmMyLCBmdDQuYzMKICAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBmdDIuYzIK ICAgICAgICAgICAgICAgICAgICAgIC0+ICBIYXNoIEpvaW4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogZnQyLmN0aWQsIGZ0Mi4qLCBmdDIuYzIsIGZ0NC4qLCBmdDQuYzEsIGZ0 NC5jMiwgZnQ0LmMzCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZ0Mi5jdGlk LCBmdDIudGFibGVvaWQsIGZ0Mi4qLCAoJDApLCBmdDIuYzIsIGZ0NC4qLCBmdDQuYzEsIGZ0NC5j MiwgZnQ0LmMzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoIENvbmQ6IChmdDIuYzIg PSBmdDQuYzEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5mdDIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZnQy LmN0aWQsIGZ0Mi4qLCBmdDIuYzIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzgsIGN0aWQg RlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiID4gMTIwMCkpIEZPUiBVUERBVEUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZnQyLmN0aWQsIGZ0Mi50YWJsZW9p ZCwgZnQyLiosICQwLCBmdDIuYzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzgsIGN0aWQs IHRhYmxlb2lkIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKCgiQyAxIiA+IDEyMDApKSBGT1IgVVBE QVRFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgSGFzaAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDQuKiwgZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJs aWMuZnQ0CkBAIC02NTM0LDEzICs2NTM0LDEzIEBAIFVQREFURSBmdDIgQVMgdGFyZ2V0IFNFVCAo YzIsIGM3KSA9ICgKICAgICAgICAgRlJPTSBmdDIgQVMgc3JjCiAgICAgICAgIFdIRVJFIHRhcmdl dC5jMSA9IHNyYy5jMQogKSBXSEVSRSBjMSA+IDExMDA7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuZnQyIHRhcmdldAotICAgUmVtb3RlIFNR TDogVVBEQVRFICJTIDEiLiJUIDEiIFNFVCBjMiA9ICQyLCBjNyA9ICQzIFdIRVJFIGN0aWQgPSAk MQorICAgUmVtb3RlIFNRTDogVVBEQVRFICJTIDEiLiJUIDEiIFNFVCBjMiA9ICQzLCBjNyA9ICQ0 IFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMgogICAgLT4gIEZvcmVpZ24gU2NhbiBv biBwdWJsaWMuZnQyIHRhcmdldAotICAgICAgICAgT3V0cHV0OiAoU3ViUGxhbiBtdWx0aWV4cHJf MSkuY29sMSwgKFN1YlBsYW4gbXVsdGlleHByXzEpLmNvbDIsIChyZXNjYW4gU3ViUGxhbiBtdWx0 aWV4cHJfMSksIHRhcmdldC5jdGlkLCB0YXJnZXQuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VM RUNUICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCwgY3RpZCBGUk9NICJTIDEiLiJU IDEiIFdIRVJFICgoIkMgMSIgPiAxMTAwKSkgRk9SIFVQREFURQorICAgICAgICAgT3V0cHV0OiAo U3ViUGxhbiBtdWx0aWV4cHJfMSkuY29sMSwgKFN1YlBsYW4gbXVsdGlleHByXzEpLmNvbDIsIChy ZXNjYW4gU3ViUGxhbiBtdWx0aWV4cHJfMSksIHRhcmdldC5jdGlkLCB0YXJnZXQudGFibGVvaWQs ICQzLCB0YXJnZXQuKgorICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUICJDIDEiLCBjMiwgYzMs IGM0LCBjNSwgYzYsIGM3LCBjOCwgY3RpZCwgdGFibGVvaWQgRlJPTSAiUyAxIi4iVCAxIiBXSEVS RSAoKCJDIDEiID4gMTEwMCkpIEZPUiBVUERBVEUKICAgICAgICAgIFN1YlBsYW4gbXVsdGlleHBy XzEKICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnQyIHNyYwogICAgICAg ICAgICAgICAgICBPdXRwdXQ6IChzcmMuYzIgKiAxMCksIHNyYy5jNwpAQCAtNjU2MiwyMCArNjU2 MiwyMCBAQCBVUERBVEUgZnQyIEFTIHRhcmdldCBTRVQgKGMyKSA9ICgKIEVYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikKIFVQREFURSBmdDIgZCBTRVQgYzIgPSBDQVNFIFdIRU4gcmFuZG9tKCkg Pj0gMCBUSEVOIGQuYzIgRUxTRSAwIEVORAogICBGUk9NIGZ0MiBBUyB0IFdIRVJFIGQuYzEgPSB0 LmMxIEFORCBkLmMxID4gMTAwMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0 ZSBvbiBwdWJsaWMuZnQyIGQKLSAgIFJlbW90ZSBTUUw6IFVQREFURSAiUyAxIi4iVCAxIiBTRVQg YzIgPSAkMiBXSEVSRSBjdGlkID0gJDEKKyAgIFJlbW90ZSBTUUw6IFVQREFURSAiUyAxIi4iVCAx IiBTRVQgYzIgPSAkMyBXSEVSRSBjdGlkID0gJDEgQU5EIHRhYmxlb2lkID0gJDIKICAgIC0+ICBG b3JlaWduIFNjYW4KLSAgICAgICAgIE91dHB1dDogQ0FTRSBXSEVOIChyYW5kb20oKSA+PSAnMCc6 OmRvdWJsZSBwcmVjaXNpb24pIFRIRU4gZC5jMiBFTFNFIDAgRU5ELCBkLmN0aWQsIGQuKiwgdC4q CisgICAgICAgICBPdXRwdXQ6IENBU0UgV0hFTiAocmFuZG9tKCkgPj0gJzAnOjpkb3VibGUgcHJl Y2lzaW9uKSBUSEVOIGQuYzIgRUxTRSAwIEVORCwgZC5jdGlkLCBkLnRhYmxlb2lkLCAoJDApLCBk LiosIHQuKgogICAgICAgICAgUmVsYXRpb25zOiAocHVibGljLmZ0MiBkKSBJTk5FUiBKT0lOIChw dWJsaWMuZnQyIHQpCi0gICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgcjEuYzIsIHIxLmN0aWQs IENBU0UgV0hFTiAocjEuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjEuIkMgMSIsIHIx LmMyLCByMS5jMywgcjEuYzQsIHIxLmM1LCByMS5jNiwgcjEuYzcsIHIxLmM4KSBFTkQsIENBU0Ug V0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjIuIkMgMSIsIHIyLmMyLCBy Mi5jMywgcjIuYzQsIHIyLmM1LCByMi5jNiwgcjIuYzcsIHIyLmM4KSBFTkQgRlJPTSAoIlMgMSIu IlQgMSIgcjEgSU5ORVIgSk9JTiAiUyAxIi4iVCAxIiByMiBPTiAoKChyMS4iQyAxIiA9IHIyLiJD IDEiKSkgQU5EICgocjEuIkMgMSIgPiAxMDAwKSkpKSBGT1IgVVBEQVRFIE9GIHIxCisgICAgICAg ICBSZW1vdGUgU1FMOiBTRUxFQ1QgcjEuYzIsIHIxLmN0aWQsIHIxLnRhYmxlb2lkLCBDQVNFIFdI RU4gKHIxLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIxLiJDIDEiLCByMS5jMiwgcjEu YzMsIHIxLmM0LCByMS5jNSwgcjEuYzYsIHIxLmM3LCByMS5jOCkgRU5ELCBDQVNFIFdIRU4gKHIy LiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIyLiJDIDEiLCByMi5jMiwgcjIuYzMsIHIy LmM0LCByMi5jNSwgcjIuYzYsIHIyLmM3LCByMi5jOCkgRU5ELCByMS50YWJsZW9pZCBGUk9NICgi UyAxIi4iVCAxIiByMSBJTk5FUiBKT0lOICJTIDEiLiJUIDEiIHIyIE9OICgoKHIxLiJDIDEiID0g cjIuIkMgMSIpKSBBTkQgKChyMS4iQyAxIiA+IDEwMDApKSkpIEZPUiBVUERBVEUgT0YgcjEKICAg ICAgICAgIC0+ICBIYXNoIEpvaW4KLSAgICAgICAgICAgICAgIE91dHB1dDogZC5jMiwgZC5jdGlk LCBkLiosIHQuKgorICAgICAgICAgICAgICAgT3V0cHV0OiBkLmMyLCBkLmN0aWQsIGQudGFibGVv aWQsIGQuKiwgdC4qLCAoJDApCiAgICAgICAgICAgICAgICBIYXNoIENvbmQ6IChkLmMxID0gdC5j MSkKICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MiBkCi0gICAg ICAgICAgICAgICAgICAgICBPdXRwdXQ6IGQuYzIsIGQuY3RpZCwgZC4qLCBkLmMxCi0gICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBj NiwgYzcsIGM4LCBjdGlkIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKCgiQyAxIiA+IDEwMDApKSBP UkRFUiBCWSAiQyAxIiBBU0MgTlVMTFMgTEFTVCBGT1IgVVBEQVRFCisgICAgICAgICAgICAgICAg ICAgICBPdXRwdXQ6IGQuYzIsIGQuY3RpZCwgZC50YWJsZW9pZCwgZC4qLCAkMCwgZC5jMQorICAg ICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUICJDIDEiLCBjMiwgYzMsIGM0LCBj NSwgYzYsIGM3LCBjOCwgY3RpZCwgdGFibGVvaWQgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJD IDEiID4gMTAwMCkpIE9SREVSIEJZICJDIDEiIEFTQyBOVUxMUyBMQVNUIEZPUiBVUERBVEUKICAg ICAgICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQuKiwg dC5jMQogICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnQy IHQKQEAgLTY1OTUsMTkgKzY1OTUsMTkgQEAgRVhQTEFJTiAodmVyYm9zZSwgY29zdHMgb2ZmKQog V0lUSCBjdGUgQVMgKAogICBVUERBVEUgZnQyIFNFVCBjMyA9ICdiYXInIFdIRVJFIHBvc3RncmVz X2Zkd19hYnMoYzEpID4gMjAwMCBSRVRVUk5JTkcgKgogKSBTRUxFQ1QgKiBGUk9NIGN0ZSBPUkRF UiBCWSBjMTsgICAgICAgICAgLS0gY2FuJ3QgYmUgcHVzaGVkIGRvd24KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFNvcnQKICAgIE91dHB1dDogY3RlLmMxLCBj dGUuYzIsIGN0ZS5jMywgY3RlLmM0LCBjdGUuYzUsIGN0ZS5jNiwgY3RlLmM3LCBjdGUuYzgKICAg IFNvcnQgS2V5OiBjdGUuYzEKICAgIENURSBjdGUKICAgICAgLT4gIFVwZGF0ZSBvbiBwdWJsaWMu ZnQyCiAgICAgICAgICAgIE91dHB1dDogZnQyLmMxLCBmdDIuYzIsIGZ0Mi5jMywgZnQyLmM0LCBm dDIuYzUsIGZ0Mi5jNiwgZnQyLmM3LCBmdDIuYzgKLSAgICAgICAgICAgUmVtb3RlIFNRTDogVVBE QVRFICJTIDEiLiJUIDEiIFNFVCBjMyA9ICQyIFdIRVJFIGN0aWQgPSAkMSBSRVRVUk5JTkcgIkMg MSIsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4CisgICAgICAgICAgIFJlbW90ZSBTUUw6IFVQ REFURSAiUyAxIi4iVCAxIiBTRVQgYzMgPSAkMyBXSEVSRSBjdGlkID0gJDEgQU5EIHRhYmxlb2lk ID0gJDIgUkVUVVJOSU5HICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOAogICAgICAg ICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDIKLSAgICAgICAgICAgICAgICAgT3V0 cHV0OiAnYmFyJzo6dGV4dCwgZnQyLmN0aWQsIGZ0Mi4qCisgICAgICAgICAgICAgICAgIE91dHB1 dDogJ2Jhcic6OnRleHQsIGZ0Mi5jdGlkLCBmdDIudGFibGVvaWQsICQwLCBmdDIuKgogICAgICAg ICAgICAgICAgICBGaWx0ZXI6IChwb3N0Z3Jlc19mZHdfYWJzKGZ0Mi5jMSkgPiAyMDAwKQotICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBj NiwgYzcsIGM4LCBjdGlkIEZST00gIlMgMSIuIlQgMSIgRk9SIFVQREFURQorICAgICAgICAgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4 LCBjdGlkLCB0YWJsZW9pZCBGUk9NICJTIDEiLiJUIDEiIEZPUiBVUERBVEUKICAgIC0+ICBDVEUg U2NhbiBvbiBjdGUKICAgICAgICAgIE91dHB1dDogY3RlLmMxLCBjdGUuYzIsIGN0ZS5jMywgY3Rl LmM0LCBjdGUuYzUsIGN0ZS5jNiwgY3RlLmM3LCBjdGUuYzgKICgxMyByb3dzKQpAQCAtNjYzOCwx MyArNjYzOCwxMyBAQCBVUERBVEUgZnQyIFNFVCBjMyA9ICdiYXonCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1 YmxpYy5mdDIKICAgIE91dHB1dDogZnQyLmMxLCBmdDIuYzIsIGZ0Mi5jMywgZnQyLmM0LCBmdDIu YzUsIGZ0Mi5jNiwgZnQyLmM3LCBmdDIuYzgsIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NS5j MSwgZnQ1LmMyLCBmdDUuYzMKLSAgIFJlbW90ZSBTUUw6IFVQREFURSAiUyAxIi4iVCAxIiBTRVQg YzMgPSAkMiBXSEVSRSBjdGlkID0gJDEgUkVUVVJOSU5HICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwg YzYsIGM3LCBjOAorICAgUmVtb3RlIFNRTDogVVBEQVRFICJTIDEiLiJUIDEiIFNFVCBjMyA9ICQz IFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMiBSRVRVUk5JTkcgIkMgMSIsIGMyLCBj MywgYzQsIGM1LCBjNiwgYzcsIGM4CiAgICAtPiAgTmVzdGVkIExvb3AKLSAgICAgICAgIE91dHB1 dDogJ2Jheic6OnRleHQsIGZ0Mi5jdGlkLCBmdDIuKiwgZnQ0LiosIGZ0NS4qLCBmdDQuYzEsIGZ0 NC5jMiwgZnQ0LmMzLCBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzCisgICAgICAgICBPdXRwdXQ6ICdi YXonOjp0ZXh0LCBmdDIuY3RpZCwgZnQyLnRhYmxlb2lkLCAoJDApLCBmdDIuKiwgZnQ0LiosIGZ0 NS4qLCBmdDQuYzEsIGZ0NC5jMiwgZnQ0LmMzLCBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzCiAgICAg ICAgICBKb2luIEZpbHRlcjogKGZ0Mi5jMiA9PT0gZnQ0LmMxKQogICAgICAgICAgLT4gIEZvcmVp Z24gU2NhbiBvbiBwdWJsaWMuZnQyCi0gICAgICAgICAgICAgICBPdXRwdXQ6IGZ0Mi5jdGlkLCBm dDIuKiwgZnQyLmMyCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGMy LCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4LCBjdGlkIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKCgi QyAxIiA+IDIwMDApKSBGT1IgVVBEQVRFCisgICAgICAgICAgICAgICBPdXRwdXQ6IGZ0Mi5jdGlk LCBmdDIudGFibGVvaWQsIGZ0Mi4qLCAkMCwgZnQyLmMyCisgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjMywgYzQsIGM1LCBjNiwgYzcsIGM4LCBjdGlkLCB0YWJs ZW9pZCBGUk9NICJTIDEiLiJUIDEiIFdIRVJFICgoIkMgMSIgPiAyMDAwKSkgRk9SIFVQREFURQog ICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgogICAgICAgICAgICAgICAgT3V0cHV0OiBmdDQuKiwg ZnQ0LmMxLCBmdDQuYzIsIGZ0NC5jMywgZnQ1LiosIGZ0NS5jMSwgZnQ1LmMyLCBmdDUuYzMKICAg ICAgICAgICAgICAgIFJlbGF0aW9uczogKHB1YmxpYy5mdDQpIElOTkVSIEpPSU4gKHB1YmxpYy5m dDUpCkBAIC02Njc2LDI0ICs2Njc2LDI0IEBAIERFTEVURSBGUk9NIGZ0MgogICBVU0lORyBmdDQg SU5ORVIgSk9JTiBmdDUgT04gKGZ0NC5jMSA9PT0gZnQ1LmMxKQogICBXSEVSRSBmdDIuYzEgPiAy MDAwIEFORCBmdDIuYzIgPSBmdDQuYzEKICAgUkVUVVJOSU5HIGZ0Mi5jMSwgZnQyLmMyLCBmdDIu YzM7ICAgICAgIC0tIGNhbid0IGJlIHB1c2hlZCBkb3duCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIERlbGV0ZSBvbiBwdWJsaWMuZnQyCiAgICBP dXRwdXQ6IGZ0Mi5jMSwgZnQyLmMyLCBmdDIuYzMKLSAgIFJlbW90ZSBTUUw6IERFTEVURSBGUk9N ICJTIDEiLiJUIDEiIFdIRVJFIGN0aWQgPSAkMSBSRVRVUk5JTkcgIkMgMSIsIGMyLCBjMworICAg UmVtb3RlIFNRTDogREVMRVRFIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgY3RpZCA9ICQxIEFORCB0 YWJsZW9pZCA9ICQyIFJFVFVSTklORyAiQyAxIiwgYzIsIGMzCiAgICAtPiAgRm9yZWlnbiBTY2Fu Ci0gICAgICAgICBPdXRwdXQ6IGZ0Mi5jdGlkLCBmdDQuKiwgZnQ1LioKKyAgICAgICAgIE91dHB1 dDogZnQyLmN0aWQsIGZ0Mi50YWJsZW9pZCwgKCQwKSwgZnQ0LiosIGZ0NS4qCiAgICAgICAgICBG aWx0ZXI6IChmdDQuYzEgPT09IGZ0NS5jMSkKICAgICAgICAgIFJlbGF0aW9uczogKChwdWJsaWMu ZnQyKSBJTk5FUiBKT0lOIChwdWJsaWMuZnQ0KSkgSU5ORVIgSk9JTiAocHVibGljLmZ0NSkKLSAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCByMS5jdGlkLCBDQVNFIFdIRU4gKHIyLiopOjp0ZXh0 IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIyLmMxLCByMi5jMiwgcjIuYzMpIEVORCwgQ0FTRSBXSEVO IChyMy4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhyMy5jMSwgcjMuYzIsIHIzLmMzKSBF TkQsIHIyLmMxLCByMy5jMSBGUk9NICgoIlMgMSIuIlQgMSIgcjEgSU5ORVIgSk9JTiAiUyAxIi4i VCAzIiByMiBPTiAoKChyMS5jMiA9IHIyLmMxKSkgQU5EICgocjEuIkMgMSIgPiAyMDAwKSkpKSBJ Tk5FUiBKT0lOICJTIDEiLiJUIDQiIHIzIE9OIChUUlVFKSkgRk9SIFVQREFURSBPRiByMQorICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIHIxLmN0aWQsIHIxLnRhYmxlb2lkLCBDQVNFIFdIRU4g KHIyLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIyLmMxLCByMi5jMiwgcjIuYzMpIEVO RCwgQ0FTRSBXSEVOIChyMy4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhyMy5jMSwgcjMu YzIsIHIzLmMzKSBFTkQsIHIyLmMxLCByMy5jMSwgcjEudGFibGVvaWQgRlJPTSAoKCJTIDEiLiJU IDEiIHIxIElOTkVSIEpPSU4gIlMgMSIuIlQgMyIgcjIgT04gKCgocjEuYzIgPSByMi5jMSkpIEFO RCAoKHIxLiJDIDEiID4gMjAwMCkpKSkgSU5ORVIgSk9JTiAiUyAxIi4iVCA0IiByMyBPTiAoVFJV RSkpIEZPUiBVUERBVEUgT0YgcjEKICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAotICAgICAgICAg ICAgICAgT3V0cHV0OiBmdDIuY3RpZCwgZnQ0LiosIGZ0NS4qLCBmdDQuYzEsIGZ0NS5jMQorICAg ICAgICAgICAgICAgT3V0cHV0OiBmdDIuY3RpZCwgZnQyLnRhYmxlb2lkLCBmdDQuKiwgZnQ1Lios IGZ0NC5jMSwgZnQ1LmMxLCAoJDApCiAgICAgICAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKLSAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogZnQyLmN0aWQsIGZ0NC4qLCBmdDQuYzEKKyAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogZnQyLmN0aWQsIGZ0Mi50YWJsZW9pZCwgKCQwKSwgZnQ0 LiosIGZ0NC5jMQogICAgICAgICAgICAgICAgICAgICAgSm9pbiBGaWx0ZXI6IChmdDIuYzIgPSBm dDQuYzEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5m dDIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZnQyLmN0aWQsIGZ0Mi5jMgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGMyLCBjdGlkIEZS T00gIlMgMSIuIlQgMSIgV0hFUkUgKCgiQyAxIiA+IDIwMDApKSBGT1IgVVBEQVRFCisgICAgICAg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZ0Mi5jdGlkLCBmdDIudGFibGVvaWQsICQwLCBm dDIuYzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBjMiwg Y3RpZCwgdGFibGVvaWQgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiID4gMjAwMCkpIEZP UiBVUERBVEUKICAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGlj LmZ0NAogICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDQuKiwgZnQ0LmMxCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYzEsIGMyLCBjMyBG Uk9NICJTIDEiLiJUIDMiCkBAIC03MjA1LDE5ICs3MjA1LDE5IEBAIFNFVCBlbmFibGVfaGFzaGpv aW4gVE8gZmFsc2U7CiBTRVQgZW5hYmxlX21hdGVyaWFsIFRPIGZhbHNlOwogRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKQogVVBEQVRFIHJlbXQyIFNFVCBjMiA9IHJlbXQyLmMyIHx8IHJlbXQy LmMyIEZST00gbG9jdDEgV0hFUkUgbG9jdDEuYzEgPSByZW10Mi5jMSBSRVRVUk5JTkcgcmVtdDIu KjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5yZW10MgogICAgT3V0 cHV0OiByZW10Mi5jMSwgcmVtdDIuYzIKLSAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9j dDIgU0VUIGMyID0gJDIgV0hFUkUgY3RpZCA9ICQxIFJFVFVSTklORyBjMSwgYzIKKyAgIFJlbW90 ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jdDIgU0VUIGMyID0gJDMgV0hFUkUgY3RpZCA9ICQxIEFO RCB0YWJsZW9pZCA9ICQyIFJFVFVSTklORyBjMSwgYzIKICAgIC0+ICBOZXN0ZWQgTG9vcAotICAg ICAgICAgT3V0cHV0OiAocmVtdDIuYzIgfHwgcmVtdDIuYzIpLCByZW10Mi5jdGlkLCByZW10Mi4q LCBsb2N0MS5jdGlkCisgICAgICAgICBPdXRwdXQ6IChyZW10Mi5jMiB8fCByZW10Mi5jMiksIHJl bXQyLmN0aWQsIHJlbXQyLnRhYmxlb2lkLCAoJDApLCByZW10Mi4qLCBsb2N0MS5jdGlkCiAgICAg ICAgICBKb2luIEZpbHRlcjogKHJlbXQyLmMxID0gbG9jdDEuYzEpCiAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcHVibGljLmxvY3QxCiAgICAgICAgICAgICAgICBPdXRwdXQ6IGxvY3QxLmN0aWQs IGxvY3QxLmMxCiAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5yZW10MgotICAg ICAgICAgICAgICAgT3V0cHV0OiByZW10Mi5jMiwgcmVtdDIuY3RpZCwgcmVtdDIuKiwgcmVtdDIu YzEKLSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBjMSwgYzIsIGN0aWQgRlJPTSBw dWJsaWMubG9jdDIgRk9SIFVQREFURQorICAgICAgICAgICAgICAgT3V0cHV0OiByZW10Mi5jMiwg cmVtdDIuY3RpZCwgcmVtdDIudGFibGVvaWQsIHJlbXQyLiosICQwLCByZW10Mi5jMQorICAgICAg ICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGMxLCBjMiwgY3RpZCwgdGFibGVvaWQgRlJPTSBw dWJsaWMubG9jdDIgRk9SIFVQREFURQogKDExIHJvd3MpCiAKIFVQREFURSByZW10MiBTRVQgYzIg PSByZW10Mi5jMiB8fCByZW10Mi5jMiBGUk9NIGxvY3QxIFdIRVJFIGxvY3QxLmMxID0gcmVtdDIu YzEgUkVUVVJOSU5HIHJlbXQyLio7CkBAIC03Mjc0LDE3ICs3Mjc0LDE3IEBAIHByZXBhcmUgZmR3 X3BhcnRfdXBkMihpbnQpIGFzCiAgICAgcmV0dXJuaW5nIHRhYmxlb2lkOjpyZWdjbGFzcywgYSwg YjsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKICAgICBleGVjdXRlIGZkd19wYXJ0X3Vw ZDIoMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBVcGRhdGUgb24gcHVibGljLmZkd19wYXJ0X3VwZGF0ZQogICAgT3V0cHV0OiAoZmR3X3Bh cnRfdXBkYXRlXzEudGFibGVvaWQpOjpyZWdjbGFzcywgZmR3X3BhcnRfdXBkYXRlXzEuYSwgZmR3 X3BhcnRfdXBkYXRlXzEuYgogICAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLmZkd19wYXJ0X3Vw ZGF0ZV9wMiBmZHdfcGFydF91cGRhdGVfMgotICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGlj LmZkd19wYXJ0X3VwZGF0ZV9yZW1vdGUgU0VUIGIgPSAkMiBXSEVSRSBjdGlkID0gJDEgUkVUVVJO SU5HIGEsIGIKKyAgICAgUmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5mZHdfcGFydF91cGRhdGVf cmVtb3RlIFNFVCBiID0gJDMgV0hFUkUgY3RpZCA9ICQxIEFORCB0YWJsZW9pZCA9ICQyIFJFVFVS TklORyBhLCBiCiAgICAtPiAgQXBwZW5kCiAgICAgICAgICBTdWJwbGFucyBSZW1vdmVkOiAxCiAg ICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mZHdfcGFydF91cGRhdGVfcDIgZmR3 X3BhcnRfdXBkYXRlXzIKLSAgICAgICAgICAgICAgIE91dHB1dDogKChmZHdfcGFydF91cGRhdGVf Mi5iICsgKChyYW5kb20oKSk6OmludGVnZXIgKiAwKSkgKyAxKSwgZmR3X3BhcnRfdXBkYXRlXzIu dGFibGVvaWQsIGZkd19wYXJ0X3VwZGF0ZV8yLmN0aWQsIGZkd19wYXJ0X3VwZGF0ZV8yLioKLSAg ICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjdGlkIEZST00gcHVibGljLmZk d19wYXJ0X3VwZGF0ZV9yZW1vdGUgV0hFUkUgKChhID0gJDE6OmludGVnZXIpKSBGT1IgVVBEQVRF CisgICAgICAgICAgICAgICBPdXRwdXQ6ICgoZmR3X3BhcnRfdXBkYXRlXzIuYiArICgocmFuZG9t KCkpOjppbnRlZ2VyICogMCkpICsgMSksIGZkd19wYXJ0X3VwZGF0ZV8yLnRhYmxlb2lkLCBmZHdf cGFydF91cGRhdGVfMi5jdGlkLCBmZHdfcGFydF91cGRhdGVfMi50YWJsZW9pZCwgJDAsIGZkd19w YXJ0X3VwZGF0ZV8yLioKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBj dGlkLCB0YWJsZW9pZCBGUk9NIHB1YmxpYy5mZHdfcGFydF91cGRhdGVfcmVtb3RlIFdIRVJFICgo YSA9ICQxOjppbnRlZ2VyKSkgRk9SIFVQREFURQogKDkgcm93cykKIAogZXhlY3V0ZSBmZHdfcGFy dF91cGQyKDIpOwpAQCAtNzQ0MiwxMyArNzQ0MiwxMyBAQCBTRUxFQ1QgKiBGUk9NIGZvcmVpZ25f dGJsOwogCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBVUERBVEUgcndfdmlldyBTRVQg YiA9IGIgKyA1OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBv biBwdWJsaWMuZm9yZWlnbl90YmwKLSAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMuYmFzZV90 YmwgU0VUIGIgPSAkMiBXSEVSRSBjdGlkID0gJDEgUkVUVVJOSU5HIGEsIGIKKyAgIFJlbW90ZSBT UUw6IFVQREFURSBwdWJsaWMuYmFzZV90YmwgU0VUIGIgPSAkMyBXSEVSRSBjdGlkID0gJDEgQU5E IHRhYmxlb2lkID0gJDIgUkVUVVJOSU5HIGEsIGIKICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVi bGljLmZvcmVpZ25fdGJsCi0gICAgICAgICBPdXRwdXQ6IChmb3JlaWduX3RibC5iICsgNSksIGZv cmVpZ25fdGJsLmN0aWQsIGZvcmVpZ25fdGJsLioKLSAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBhLCBiLCBjdGlkIEZST00gcHVibGljLmJhc2VfdGJsIFdIRVJFICgoYSA8IGIpKSBGT1IgVVBE QVRFCisgICAgICAgICBPdXRwdXQ6IChmb3JlaWduX3RibC5iICsgNSksIGZvcmVpZ25fdGJsLmN0 aWQsIGZvcmVpZ25fdGJsLnRhYmxlb2lkLCAkMCwgZm9yZWlnbl90YmwuKgorICAgICAgICAgUmVt b3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmJhc2VfdGJs IFdIRVJFICgoYSA8IGIpKSBGT1IgVVBEQVRFCiAoNSByb3dzKQogCiBVUERBVEUgcndfdmlldyBT RVQgYiA9IGIgKyA1OyAtLSBzaG91bGQgZmFpbApAQCAtNzQ1NiwxMyArNzQ1NiwxMyBAQCBFUlJP UjogIG5ldyByb3cgdmlvbGF0ZXMgY2hlY2sgb3B0aW9uIGZvciB2aWV3ICJyd192aWV3IgogREVU QUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDIwLCAyMCkuCiBFWFBMQUlOIChWRVJCT1NFLCBD T1NUUyBPRkYpCiBVUERBVEUgcndfdmlldyBTRVQgYiA9IGIgKyAxNTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLmZvcmVpZ25fdGJsCi0gICBS ZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmJhc2VfdGJsIFNFVCBiID0gJDIgV0hFUkUgY3RpZCA9 ICQxIFJFVFVSTklORyBhLCBiCisgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmJhc2VfdGJs IFNFVCBiID0gJDMgV0hFUkUgY3RpZCA9ICQxIEFORCB0YWJsZW9pZCA9ICQyIFJFVFVSTklORyBh LCBiCiAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mb3JlaWduX3RibAotICAgICAgICAg T3V0cHV0OiAoZm9yZWlnbl90YmwuYiArIDE1KSwgZm9yZWlnbl90YmwuY3RpZCwgZm9yZWlnbl90 YmwuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQgRlJPTSBwdWJsaWMu YmFzZV90YmwgV0hFUkUgKChhIDwgYikpIEZPUiBVUERBVEUKKyAgICAgICAgIE91dHB1dDogKGZv cmVpZ25fdGJsLmIgKyAxNSksIGZvcmVpZ25fdGJsLmN0aWQsIGZvcmVpZ25fdGJsLnRhYmxlb2lk LCAkMCwgZm9yZWlnbl90YmwuKgorICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0 aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmJhc2VfdGJsIFdIRVJFICgoYSA8IGIpKSBGT1IgVVBE QVRFCiAoNSByb3dzKQogCiBVUERBVEUgcndfdmlldyBTRVQgYiA9IGIgKyAxNTsgLS0gb2sKQEAg LTc1NTUsMTQgKzc1NTUsMTQgQEAgU0VMRUNUICogRlJPTSBmb3JlaWduX3RibDsKIAogRVhQTEFJ TiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogVVBEQVRFIHJ3X3ZpZXcgU0VUIGIgPSBiICsgNTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBw dWJsaWMucGFyZW50X3RibAogICAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLmZvcmVpZ25fdGJs IHBhcmVudF90YmxfMQotICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmNoaWxkX3RibCBT RVQgYiA9ICQyIFdIRVJFIGN0aWQgPSAkMSBSRVRVUk5JTkcgYSwgYgorICAgICBSZW1vdGUgU1FM OiBVUERBVEUgcHVibGljLmNoaWxkX3RibCBTRVQgYiA9ICQzIFdIRVJFIGN0aWQgPSAkMSBBTkQg dGFibGVvaWQgPSAkMiBSRVRVUk5JTkcgYSwgYgogICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJs aWMuZm9yZWlnbl90YmwgcGFyZW50X3RibF8xCi0gICAgICAgICBPdXRwdXQ6IChwYXJlbnRfdGJs XzEuYiArIDUpLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90YmxfMS5jdGlkLCBwYXJl bnRfdGJsXzEuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQgRlJPTSBw dWJsaWMuY2hpbGRfdGJsIFdIRVJFICgoYSA8IGIpKSBGT1IgVVBEQVRFCisgICAgICAgICBPdXRw dXQ6IChwYXJlbnRfdGJsXzEuYiArIDUpLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90 YmxfMS5jdGlkLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsICQwLCBwYXJlbnRfdGJsXzEuKgorICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGlj LmNoaWxkX3RibCBXSEVSRSAoKGEgPCBiKSkgRk9SIFVQREFURQogKDYgcm93cykKIAogVVBEQVRF IHJ3X3ZpZXcgU0VUIGIgPSBiICsgNTsgLS0gc2hvdWxkIGZhaWwKQEAgLTc1NzAsMTQgKzc1NzAs MTQgQEAgRVJST1I6ICBuZXcgcm93IHZpb2xhdGVzIGNoZWNrIG9wdGlvbiBmb3IgdmlldyAicndf dmlldyIKIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgyMCwgMjApLgogRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKQogVVBEQVRFIHJ3X3ZpZXcgU0VUIGIgPSBiICsgMTU7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9u IHB1YmxpYy5wYXJlbnRfdGJsCiAgICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMuZm9yZWlnbl90 YmwgcGFyZW50X3RibF8xCi0gICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMuY2hpbGRfdGJs IFNFVCBiID0gJDIgV0hFUkUgY3RpZCA9ICQxIFJFVFVSTklORyBhLCBiCisgICAgIFJlbW90ZSBT UUw6IFVQREFURSBwdWJsaWMuY2hpbGRfdGJsIFNFVCBiID0gJDMgV0hFUkUgY3RpZCA9ICQxIEFO RCB0YWJsZW9pZCA9ICQyIFJFVFVSTklORyBhLCBiCiAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1 YmxpYy5mb3JlaWduX3RibCBwYXJlbnRfdGJsXzEKLSAgICAgICAgIE91dHB1dDogKHBhcmVudF90 YmxfMS5iICsgMTUpLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90YmxfMS5jdGlkLCBw YXJlbnRfdGJsXzEuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQgRlJP TSBwdWJsaWMuY2hpbGRfdGJsIFdIRVJFICgoYSA8IGIpKSBGT1IgVVBEQVRFCisgICAgICAgICBP dXRwdXQ6IChwYXJlbnRfdGJsXzEuYiArIDE1KSwgcGFyZW50X3RibF8xLnRhYmxlb2lkLCBwYXJl bnRfdGJsXzEuY3RpZCwgcGFyZW50X3RibF8xLnRhYmxlb2lkLCAkMCwgcGFyZW50X3RibF8xLioK KyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjdGlkLCB0YWJsZW9pZCBGUk9NIHB1 YmxpYy5jaGlsZF90YmwgV0hFUkUgKChhIDwgYikpIEZPUiBVUERBVEUKICg2IHJvd3MpCiAKIFVQ REFURSByd192aWV3IFNFVCBiID0gYiArIDE1OyAtLSBvawpAQCAtNzYyNiwxNCArNzYyNiwxNCBA QCBDUkVBVEUgVklFVyByd192aWV3IEFTIFNFTEVDVCAqIEZST00gcGFyZW50X3RibCBXSEVSRSBh IDwgNSBXSVRIIENIRUNLIE9QVElPTjsKIElOU0VSVCBJTlRPIHBhcmVudF90YmwgKGEpIFZBTFVF UygxKSwoNSk7CiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBVUERBVEUgcndfdmlldyBT RVQgYiA9ICd0ZXh0JywgYyA9IDEyMy40NTY7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5wYXJlbnRfdGJsCiAgICBG b3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMuY2hpbGRfZm9yZWlnbiBwYXJlbnRfdGJsXzEKLSAgICAg UmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5jaGlsZF9sb2NhbCBTRVQgYiA9ICQyLCBjID0gJDMg V0hFUkUgY3RpZCA9ICQxIFJFVFVSTklORyBhCisgICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJs aWMuY2hpbGRfbG9jYWwgU0VUIGIgPSAkMywgYyA9ICQ0IFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFi bGVvaWQgPSAkMiBSRVRVUk5JTkcgYQogICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuY2hp bGRfZm9yZWlnbiBwYXJlbnRfdGJsXzEKLSAgICAgICAgIE91dHB1dDogJ3RleHQnOjp0ZXh0LCAx MjMuNDU2LCBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90YmxfMS5jdGlkLCBwYXJlbnRf dGJsXzEuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGMsIGEsIGN0aWQgRlJPTSBw dWJsaWMuY2hpbGRfbG9jYWwgV0hFUkUgKChhIDwgNSkpIEZPUiBVUERBVEUKKyAgICAgICAgIE91 dHB1dDogJ3RleHQnOjp0ZXh0LCAxMjMuNDU2LCBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVu dF90YmxfMS5jdGlkLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsICQwLCBwYXJlbnRfdGJsXzEuKgor ICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGMsIGEsIGN0aWQsIHRhYmxlb2lkIEZST00g cHVibGljLmNoaWxkX2xvY2FsIFdIRVJFICgoYSA8IDUpKSBGT1IgVVBEQVRFCiAoNiByb3dzKQog CiBVUERBVEUgcndfdmlldyBTRVQgYiA9ICd0ZXh0JywgYyA9IDEyMy40NTY7CkBAIC03NzEyLDEz ICs3NzEyLDEzIEBAIGluc2VydCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBpbnNl cnQgaW50byBncmVtMSAoYSkgdmFsdWVzICgxKSwgKDIpOwogZXhwbGFpbiAodmVyYm9zZSwgY29z dHMgb2ZmKQogdXBkYXRlIGdyZW0xIHNldCBhID0gMjIgd2hlcmUgYSA9IDI7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1 YmxpYy5ncmVtMQotICAgUmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5nbG9jMSBTRVQgYSA9ICQy LCBiID0gREVGQVVMVCwgYyA9IERFRkFVTFQgV0hFUkUgY3RpZCA9ICQxCisgICBSZW1vdGUgU1FM OiBVUERBVEUgcHVibGljLmdsb2MxIFNFVCBhID0gJDMsIGIgPSBERUZBVUxULCBjID0gREVGQVVM VCBXSEVSRSBjdGlkID0gJDEgQU5EIHRhYmxlb2lkID0gJDIKICAgIC0+ICBGb3JlaWduIFNjYW4g b24gcHVibGljLmdyZW0xCi0gICAgICAgICBPdXRwdXQ6IDIyLCBjdGlkLCBncmVtMS4qCi0gICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYywgY3RpZCBGUk9NIHB1YmxpYy5nbG9jMSBX SEVSRSAoKGEgPSAyKSkgRk9SIFVQREFURQorICAgICAgICAgT3V0cHV0OiAyMiwgY3RpZCwgdGFi bGVvaWQsICQwLCBncmVtMS4qCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYywg Y3RpZCwgdGFibGVvaWQgRlJPTSBwdWJsaWMuZ2xvYzEgV0hFUkUgKChhID0gMikpIEZPUiBVUERB VEUKICg1IHJvd3MpCiAKIHVwZGF0ZSBncmVtMSBzZXQgYSA9IDIyIHdoZXJlIGEgPSAyOwpAQCAt ODA0NSwxMyArODA0NSwxMyBAQCBTRUxFQ1QgKiBmcm9tIGxvYzE7CiAKIEVYUExBSU4gKHZlcmJv c2UsIGNvc3RzIG9mZikKIFVQREFURSByZW0xIHNldCBmMSA9IDEwOyAgICAgICAgICAtLSBhbGwg Y29sdW1ucyBzaG91bGQgYmUgdHJhbnNtaXR0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5yZW0xCi0gICBSZW1vdGUgU1FMOiBV UERBVEUgcHVibGljLmxvYzEgU0VUIGYxID0gJDIsIGYyID0gJDMgV0hFUkUgY3RpZCA9ICQxCisg ICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvYzEgU0VUIGYxID0gJDMsIGYyID0gJDQgV0hF UkUgY3RpZCA9ICQxIEFORCB0YWJsZW9pZCA9ICQyCiAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1 YmxpYy5yZW0xCi0gICAgICAgICBPdXRwdXQ6IDEwLCBjdGlkLCByZW0xLioKLSAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGN0aWQgRlJPTSBwdWJsaWMubG9jMSBGT1IgVVBEQVRF CisgICAgICAgICBPdXRwdXQ6IDEwLCBjdGlkLCB0YWJsZW9pZCwgJDAsIHJlbTEuKgorICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgY3RpZCwgdGFibGVvaWQgRlJPTSBwdWJsaWMu bG9jMSBGT1IgVVBEQVRFCiAoNSByb3dzKQogCiBVUERBVEUgcmVtMSBzZXQgZjEgPSAxMDsKQEAg LTgxOTMsMTIgKzgxOTMsMTIgQEAgREVMRVRFIEZST00gcmVtMTsgICAgICAgICAgICAgICAgIC0t IGNhbiBiZSBwdXNoZWQgZG93bgogCiBFWFBMQUlOICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBERUxF VEUgRlJPTSByZW0xIFdIRVJFIGZhbHNlOyAgICAgLS0gY3VycmVudGx5IGNhbid0IGJlIHB1c2hl ZCBkb3duCi0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgRGVsZXRlIG9uIHB1 YmxpYy5yZW0xCi0gICBSZW1vdGUgU1FMOiBERUxFVEUgRlJPTSBwdWJsaWMubG9jMSBXSEVSRSBj dGlkID0gJDEKKyAgIFJlbW90ZSBTUUw6IERFTEVURSBGUk9NIHB1YmxpYy5sb2MxIFdIRVJFIGN0 aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMgogICAgLT4gIFJlc3VsdAotICAgICAgICAgT3V0cHV0 OiBjdGlkCisgICAgICAgICBPdXRwdXQ6IGN0aWQsIHRhYmxlb2lkLCAkMAogICAgICAgICAgUmVw bGFjZXM6IFNjYW4gb24gcmVtMQogICAgICAgICAgT25lLVRpbWUgRmlsdGVyOiBmYWxzZQogKDYg cm93cykKQEAgLTgyOTksMTMgKzgyOTksMTMgQEAgQkVGT1JFIFVQREFURSBPTiByZW0xCiBGT1Ig RUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgdHJpZ2dlcl9kYXRhKDIzLCdza2lkb28nKTsKIEVY UExBSU4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIFVQREFURSByZW0xIHNldCBmMiA9ICcnOyAgICAg ICAgICAtLSBjYW4ndCBiZSBwdXNoZWQgZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLnJlbTEKLSAgIFJlbW90ZSBTUUw6IFVQ REFURSBwdWJsaWMubG9jMSBTRVQgZjEgPSAkMiwgZjIgPSAkMyBXSEVSRSBjdGlkID0gJDEKKyAg IFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jMSBTRVQgZjEgPSAkMywgZjIgPSAkNCBXSEVS RSBjdGlkID0gJDEgQU5EIHRhYmxlb2lkID0gJDIKICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVi bGljLnJlbTEKLSAgICAgICAgIE91dHB1dDogJyc6OnRleHQsIGN0aWQsIHJlbTEuKgotICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgY3RpZCBGUk9NIHB1YmxpYy5sb2MxIEZPUiBV UERBVEUKKyAgICAgICAgIE91dHB1dDogJyc6OnRleHQsIGN0aWQsIHRhYmxlb2lkLCAkMCwgcmVt MS4qCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBjdGlkLCB0YWJsZW9pZCBG Uk9NIHB1YmxpYy5sb2MxIEZPUiBVUERBVEUKICg1IHJvd3MpCiAKIEVYUExBSU4gKHZlcmJvc2Us IGNvc3RzIG9mZikKQEAgLTgzMjMsMTMgKzgzMjMsMTMgQEAgQUZURVIgVVBEQVRFIE9OIHJlbTEK IEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSB0cmlnZ2VyX2RhdGEoMjMsJ3NraWRvbycp OwogRVhQTEFJTiAodmVyYm9zZSwgY29zdHMgb2ZmKQogVVBEQVRFIHJlbTEgc2V0IGYyID0gJyc7 ICAgICAgICAgIC0tIGNhbid0IGJlIHB1c2hlZCBkb3duCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBk YXRlIG9uIHB1YmxpYy5yZW0xCi0gICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvYzEgU0VU IGYyID0gJDIgV0hFUkUgY3RpZCA9ICQxIFJFVFVSTklORyBmMSwgZjIKKyAgIFJlbW90ZSBTUUw6 IFVQREFURSBwdWJsaWMubG9jMSBTRVQgZjIgPSAkMyBXSEVSRSBjdGlkID0gJDEgQU5EIHRhYmxl b2lkID0gJDIgUkVUVVJOSU5HIGYxLCBmMgogICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu cmVtMQotICAgICAgICAgT3V0cHV0OiAnJzo6dGV4dCwgY3RpZCwgcmVtMS4qCi0gICAgICAgICBS ZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBjdGlkIEZST00gcHVibGljLmxvYzEgRk9SIFVQREFU RQorICAgICAgICAgT3V0cHV0OiAnJzo6dGV4dCwgY3RpZCwgdGFibGVvaWQsICQwLCByZW0xLioK KyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGN0aWQsIHRhYmxlb2lkIEZST00g cHVibGljLmxvYzEgRk9SIFVQREFURQogKDUgcm93cykKIAogRVhQTEFJTiAodmVyYm9zZSwgY29z dHMgb2ZmKQpAQCAtODM1NywxMyArODM1NywxMyBAQCBVUERBVEUgcmVtMSBzZXQgZjIgPSAnJzsg ICAgICAgICAgLS0gY2FuIGJlIHB1c2hlZCBkb3duCiAKIEVYUExBSU4gKHZlcmJvc2UsIGNvc3Rz IG9mZikKIERFTEVURSBGUk9NIHJlbTE7ICAgICAgICAgICAgICAgICAtLSBjYW4ndCBiZSBwdXNo ZWQgZG93bgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBEZWxldGUgb24gcHVibGljLnJlbTEKLSAgIFJl bW90ZSBTUUw6IERFTEVURSBGUk9NIHB1YmxpYy5sb2MxIFdIRVJFIGN0aWQgPSAkMQorICAgUmVt b3RlIFNRTDogREVMRVRFIEZST00gcHVibGljLmxvYzEgV0hFUkUgY3RpZCA9ICQxIEFORCB0YWJs ZW9pZCA9ICQyCiAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5yZW0xCi0gICAgICAgICBP dXRwdXQ6IGN0aWQsIHJlbTEuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwg Y3RpZCBGUk9NIHB1YmxpYy5sb2MxIEZPUiBVUERBVEUKKyAgICAgICAgIE91dHB1dDogY3RpZCwg dGFibGVvaWQsICQwLCByZW0xLioKKyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIs IGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmxvYzEgRk9SIFVQREFURQogKDUgcm93cykKIAog RFJPUCBUUklHR0VSIHRyaWdfcm93X2JlZm9yZV9kZWxldGUgT04gcmVtMTsKQEAgLTgzODEsMTMg KzgzODEsMTMgQEAgVVBEQVRFIHJlbTEgc2V0IGYyID0gJyc7ICAgICAgICAgIC0tIGNhbiBiZSBw dXNoZWQgZG93bgogCiBFWFBMQUlOICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBERUxFVEUgRlJPTSBy ZW0xOyAgICAgICAgICAgICAgICAgLS0gY2FuJ3QgYmUgcHVzaGVkIGRvd24KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIERlbGV0ZSBvbiBwdWJsaWMucmVt MQotICAgUmVtb3RlIFNRTDogREVMRVRFIEZST00gcHVibGljLmxvYzEgV0hFUkUgY3RpZCA9ICQx IFJFVFVSTklORyBmMSwgZjIKKyAgIFJlbW90ZSBTUUw6IERFTEVURSBGUk9NIHB1YmxpYy5sb2Mx IFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMiBSRVRVUk5JTkcgZjEsIGYyCiAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5yZW0xCi0gICAgICAgICBPdXRwdXQ6IGN0aWQsIHJl bTEuKgotICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgY3RpZCBGUk9NIHB1Ymxp Yy5sb2MxIEZPUiBVUERBVEUKKyAgICAgICAgIE91dHB1dDogY3RpZCwgdGFibGVvaWQsICQwLCBy ZW0xLioKKyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGN0aWQsIHRhYmxlb2lk IEZST00gcHVibGljLmxvYzEgRk9SIFVQREFURQogKDUgcm93cykKIAogRFJPUCBUUklHR0VSIHRy aWdfcm93X2FmdGVyX2RlbGV0ZSBPTiByZW0xOwpAQCAtODQyNCwyOCArODQyNCwyOCBAQCBDT05U RVhUOiAgQ09QWSBwYXJlbnRfdGJsLCBsaW5lIDE6ICJBQUEJNDIiCiBBTFRFUiBTRVJWRVIgbG9v cGJhY2sgT1BUSU9OUyAoRFJPUCBiYXRjaF9zaXplKTsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikKIFVQREFURSBwYXJlbnRfdGJsIFNFVCBiID0gYiArIDE7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLnBhcmVudF90 YmwKICAgIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5mb3JlaWduX3RibCBwYXJlbnRfdGJsXzEK LSAgICAgUmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5sb2NhbF90YmwgU0VUIGIgPSAkMiBXSEVS RSBjdGlkID0gJDEKKyAgICAgUmVtb3RlIFNRTDogVVBEQVRFIHB1YmxpYy5sb2NhbF90YmwgU0VU IGIgPSAkMyBXSEVSRSBjdGlkID0gJDEgQU5EIHRhYmxlb2lkID0gJDIKICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gcHVibGljLmZvcmVpZ25fdGJsIHBhcmVudF90YmxfMQotICAgICAgICAgT3V0cHV0 OiAocGFyZW50X3RibF8xLmIgKyAxKSwgcGFyZW50X3RibF8xLnRhYmxlb2lkLCBwYXJlbnRfdGJs XzEuY3RpZCwgcGFyZW50X3RibF8xLioKLSAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBi LCBjdGlkIEZST00gcHVibGljLmxvY2FsX3RibCBGT1IgVVBEQVRFCisgICAgICAgICBPdXRwdXQ6 IChwYXJlbnRfdGJsXzEuYiArIDEpLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90Ymxf MS5jdGlkLCBwYXJlbnRfdGJsXzEudGFibGVvaWQsICQwLCBwYXJlbnRfdGJsXzEuKgorICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmxv Y2FsX3RibCBGT1IgVVBEQVRFCiAoNiByb3dzKQogCiBVUERBVEUgcGFyZW50X3RibCBTRVQgYiA9 IGIgKyAxOwogRVJST1I6ICBjYW5ub3QgY29sbGVjdCB0cmFuc2l0aW9uIHR1cGxlcyBmcm9tIGNo aWxkIGZvcmVpZ24gdGFibGVzCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBERUxFVEUg RlJPTSBwYXJlbnRfdGJsOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBEZWxldGUgb24gcHVi bGljLnBhcmVudF90YmwKICAgIEZvcmVpZ24gRGVsZXRlIG9uIHB1YmxpYy5mb3JlaWduX3RibCBw YXJlbnRfdGJsXzEKLSAgICAgUmVtb3RlIFNRTDogREVMRVRFIEZST00gcHVibGljLmxvY2FsX3Ri bCBXSEVSRSBjdGlkID0gJDEKKyAgICAgUmVtb3RlIFNRTDogREVMRVRFIEZST00gcHVibGljLmxv Y2FsX3RibCBXSEVSRSBjdGlkID0gJDEgQU5EIHRhYmxlb2lkID0gJDIKICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gcHVibGljLmZvcmVpZ25fdGJsIHBhcmVudF90YmxfMQotICAgICAgICAgT3V0cHV0 OiBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90YmxfMS5jdGlkCi0gICAgICAgICBSZW1v dGUgU1FMOiBTRUxFQ1QgY3RpZCBGUk9NIHB1YmxpYy5sb2NhbF90YmwgRk9SIFVQREFURQorICAg ICAgICAgT3V0cHV0OiBwYXJlbnRfdGJsXzEudGFibGVvaWQsIHBhcmVudF90YmxfMS5jdGlkLCBw YXJlbnRfdGJsXzEudGFibGVvaWQsICQwCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgY3Rp ZCwgdGFibGVvaWQgRlJPTSBwdWJsaWMubG9jYWxfdGJsIEZPUiBVUERBVEUKICg2IHJvd3MpCiAK IERFTEVURSBGUk9NIHBhcmVudF90Ymw7CkBAIC04NDYzLDM5ICs4NDYzLDQxIEBAIENSRUFURSBU UklHR0VSIHBhcmVudF90YmxfZGVsZXRlX3RyaWcKICAgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNV VEUgUFJPQ0VEVVJFIHRyaWdnZXJfZnVuYygpOwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KQogVVBEQVRFIHBhcmVudF90YmwgU0VUIGIgPSBiICsgMTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0 ZSBvbiBwdWJsaWMucGFyZW50X3RibAogICAgVXBkYXRlIG9uIHB1YmxpYy5wYXJlbnRfdGJsIHBh cmVudF90YmxfMQogICAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLmZvcmVpZ25fdGJsIHBhcmVu dF90YmxfMgotICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY2FsX3RibCBTRVQgYiA9 ICQyIFdIRVJFIGN0aWQgPSAkMQorICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY2Fs X3RibCBTRVQgYiA9ICQzIFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMgogICAgLT4g IFJlc3VsdAotICAgICAgICAgT3V0cHV0OiAocGFyZW50X3RibC5iICsgMSksIHBhcmVudF90Ymwu dGFibGVvaWQsIHBhcmVudF90YmwuY3RpZCwgKE5VTEw6OnJlY29yZCkKKyAgICAgICAgIE91dHB1 dDogKHBhcmVudF90YmwuYiArIDEpLCBwYXJlbnRfdGJsLnRhYmxlb2lkLCBwYXJlbnRfdGJsLmN0 aWQsIChOVUxMOjpvaWQpLCAkMCwgKE5VTEw6OnJlY29yZCkKICAgICAgICAgIC0+ICBBcHBlbmQK ICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMucGFyZW50X3RibCBwYXJlbnRf dGJsXzEKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFyZW50X3RibF8xLmIsIHBhcmVu dF90YmxfMS50YWJsZW9pZCwgcGFyZW50X3RibF8xLmN0aWQsIE5VTEw6OnJlY29yZAorICAgICAg ICAgICAgICAgICAgICAgT3V0cHV0OiBwYXJlbnRfdGJsXzEuYiwgcGFyZW50X3RibF8xLnRhYmxl b2lkLCBwYXJlbnRfdGJsXzEuY3RpZCwgTlVMTDo6b2lkLCBOVUxMOjpyZWNvcmQKICAgICAgICAg ICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZvcmVpZ25fdGJsIHBhcmVudF90Ymxf MgotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYXJlbnRfdGJsXzIuYiwgcGFyZW50X3Ri bF8yLnRhYmxlb2lkLCBwYXJlbnRfdGJsXzIuY3RpZCwgcGFyZW50X3RibF8yLioKLSAgICAgICAg ICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjdGlkIEZST00gcHVibGljLmxv Y2FsX3RibCBGT1IgVVBEQVRFCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF90 YmxfMi5iLCBwYXJlbnRfdGJsXzIudGFibGVvaWQsIHBhcmVudF90YmxfMi5jdGlkLCBwYXJlbnRf dGJsXzIudGFibGVvaWQsIHBhcmVudF90YmxfMi4qLCAkMAorICAgICAgICAgICAgICAgICAgICAg UmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmxvY2Fs X3RibCBGT1IgVVBEQVRFCiAoMTIgcm93cykKIAogVVBEQVRFIHBhcmVudF90YmwgU0VUIGIgPSBi ICsgMTsKIEVSUk9SOiAgY2Fubm90IGNvbGxlY3QgdHJhbnNpdGlvbiB0dXBsZXMgZnJvbSBjaGls ZCBmb3JlaWduIHRhYmxlcwogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogREVMRVRFIEZS T00gcGFyZW50X3RibDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgRGVsZXRlIG9uIHB1YmxpYy5wYXJlbnRfdGJsCiAgICBEZWxl dGUgb24gcHVibGljLnBhcmVudF90YmwgcGFyZW50X3RibF8xCiAgICBGb3JlaWduIERlbGV0ZSBv biBwdWJsaWMuZm9yZWlnbl90YmwgcGFyZW50X3RibF8yCi0gICAgIFJlbW90ZSBTUUw6IERFTEVU RSBGUk9NIHB1YmxpYy5sb2NhbF90YmwgV0hFUkUgY3RpZCA9ICQxCi0gICAtPiAgQXBwZW5kCi0g ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnBhcmVudF90YmwgcGFyZW50X3RibF8xCi0g ICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF90YmxfMS50YWJsZW9pZCwgcGFyZW50X3RibF8x LmN0aWQKLSAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZvcmVpZ25fdGJsIHBh cmVudF90YmxfMgotICAgICAgICAgICAgICAgT3V0cHV0OiBwYXJlbnRfdGJsXzIudGFibGVvaWQs IHBhcmVudF90YmxfMi5jdGlkCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgY3Rp ZCBGUk9NIHB1YmxpYy5sb2NhbF90YmwgRk9SIFVQREFURQotKDEwIHJvd3MpCisgICAgIFJlbW90 ZSBTUUw6IERFTEVURSBGUk9NIHB1YmxpYy5sb2NhbF90YmwgV0hFUkUgY3RpZCA9ICQxIEFORCB0 YWJsZW9pZCA9ICQyCisgICAtPiAgUmVzdWx0CisgICAgICAgICBPdXRwdXQ6IHBhcmVudF90Ymwu dGFibGVvaWQsIHBhcmVudF90YmwuY3RpZCwgKE5VTEw6Om9pZCksICQwCisgICAgICAgICAtPiAg QXBwZW5kCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnBhcmVudF90Ymwg cGFyZW50X3RibF8xCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF90YmxfMS50 YWJsZW9pZCwgcGFyZW50X3RibF8xLmN0aWQsIE5VTEw6Om9pZAorICAgICAgICAgICAgICAgLT4g IEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZm9yZWlnbl90YmwgcGFyZW50X3RibF8yCisgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF90YmxfMi50YWJsZW9pZCwgcGFyZW50X3RibF8y LmN0aWQsIHBhcmVudF90YmxfMi50YWJsZW9pZCwgJDAKKyAgICAgICAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBjdGlkLCB0YWJsZW9pZCBGUk9NIHB1YmxpYy5sb2NhbF90YmwgRk9S IFVQREFURQorKDEyIHJvd3MpCiAKIERFTEVURSBGUk9NIHBhcmVudF90Ymw7CiBFUlJPUjogIGNh bm5vdCBjb2xsZWN0IHRyYW5zaXRpb24gdHVwbGVzIGZyb20gY2hpbGQgZm9yZWlnbiB0YWJsZXMK QEAgLTg4MzcsMjIgKzg4MzksMjIgQEAgZHJvcCB0YWJsZSBmb28yY2hpbGQ7CiAtLSBDaGVjayBV UERBVEUgd2l0aCBpbmhlcml0ZWQgdGFyZ2V0IGFuZCBhbiBpbmhlcml0ZWQgc291cmNlIHRhYmxl CiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUgYmFyIHNldCBmMiA9IGYyICsg MTAwIHdoZXJlIGYxIGluIChzZWxlY3QgZjEgZnJvbSBmb28pOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLmJh cgogICAgVXBkYXRlIG9uIHB1YmxpYy5iYXIgYmFyXzEKICAgIEZvcmVpZ24gVXBkYXRlIG9uIHB1 YmxpYy5iYXIyIGJhcl8yCi0gICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jdDIgU0VU IGYyID0gJDIgV0hFUkUgY3RpZCA9ICQxCisgICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMu bG9jdDIgU0VUIGYyID0gJDMgV0hFUkUgY3RpZCA9ICQxIEFORCB0YWJsZW9pZCA9ICQyCiAgICAt PiAgSGFzaCBKb2luCi0gICAgICAgICBPdXRwdXQ6IChiYXIuZjIgKyAxMDApLCBmb28uY3RpZCwg YmFyLnRhYmxlb2lkLCBiYXIuY3RpZCwgKE5VTEw6OnJlY29yZCksIGZvby4qLCBmb28udGFibGVv aWQKKyAgICAgICAgIE91dHB1dDogKGJhci5mMiArIDEwMCksIGZvby5jdGlkLCBiYXIudGFibGVv aWQsIGJhci5jdGlkLCAoTlVMTDo6b2lkKSwgJDAsIChOVUxMOjpyZWNvcmQpLCBmb28uKiwgZm9v LnRhYmxlb2lkCiAgICAgICAgICBJbm5lciBVbmlxdWU6IHRydWUKICAgICAgICAgIEhhc2ggQ29u ZDogKGJhci5mMSA9IGZvby5mMSkKICAgICAgICAgIC0+ICBBcHBlbmQKICAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMuYmFyIGJhcl8xCi0gICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IGJhcl8xLmYyLCBiYXJfMS5mMSwgYmFyXzEudGFibGVvaWQsIGJhcl8xLmN0aWQsIE5V TEw6OnJlY29yZAorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBiYXJfMS5mMiwgYmFyXzEu ZjEsIGJhcl8xLnRhYmxlb2lkLCBiYXJfMS5jdGlkLCBOVUxMOjpvaWQsIE5VTEw6OnJlY29yZAog ICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuYmFyMiBiYXJfMgotICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiBiYXJfMi5mMiwgYmFyXzIuZjEsIGJhcl8yLnRhYmxl b2lkLCBiYXJfMi5jdGlkLCBiYXJfMi4qCi0gICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FM OiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MiBGT1IgVVBEQVRFCisg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGJhcl8yLmYyLCBiYXJfMi5mMSwgYmFyXzIudGFi bGVvaWQsIGJhcl8yLmN0aWQsIGJhcl8yLnRhYmxlb2lkLCBiYXJfMi4qLCAkMAorICAgICAgICAg ICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgZjMsIGN0aWQsIHRhYmxlb2lk IEZST00gcHVibGljLmxvY3QyIEZPUiBVUERBVEUKICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAg ICAgICAgICBPdXRwdXQ6IGZvby5jdGlkLCBmb28uZjEsIGZvby4qLCBmb28udGFibGVvaWQKICAg ICAgICAgICAgICAgIC0+ICBIYXNoQWdncmVnYXRlCkBAIC04ODg0LDI0ICs4ODg2LDI0IEBAIHVw ZGF0ZSBiYXIgc2V0IGYyID0gZjIgKyAxMDAKIGZyb20KICAgKCBzZWxlY3QgZjEgZnJvbSBmb28g dW5pb24gYWxsIHNlbGVjdCBmMSszIGZyb20gZm9vICkgc3MKIHdoZXJlIGJhci5mMSA9IHNzLmYx OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5iYXIKICAgIFVwZGF0 ZSBvbiBwdWJsaWMuYmFyIGJhcl8xCiAgICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJsaWMuYmFyMiBi YXJfMgotICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY3QyIFNFVCBmMiA9ICQyIFdI RVJFIGN0aWQgPSAkMQorICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY3QyIFNFVCBm MiA9ICQzIFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMgogICAgLT4gIE1lcmdlIEpv aW4KLSAgICAgICAgIE91dHB1dDogKGJhci5mMiArIDEwMCksIChST1coZm9vLmYxKSksIGJhci50 YWJsZW9pZCwgYmFyLmN0aWQsIChOVUxMOjpyZWNvcmQpCisgICAgICAgICBPdXRwdXQ6IChiYXIu ZjIgKyAxMDApLCAoUk9XKGZvby5mMSkpLCBiYXIudGFibGVvaWQsIGJhci5jdGlkLCAoTlVMTDo6 b2lkKSwgJDAsIChOVUxMOjpyZWNvcmQpCiAgICAgICAgICBNZXJnZSBDb25kOiAoYmFyLmYxID0g Zm9vLmYxKQogICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAgIE91dHB1dDogYmFyLmYy LCBiYXIuZjEsIGJhci50YWJsZW9pZCwgYmFyLmN0aWQsIChOVUxMOjpyZWNvcmQpCisgICAgICAg ICAgICAgICBPdXRwdXQ6IGJhci5mMiwgYmFyLmYxLCBiYXIudGFibGVvaWQsIGJhci5jdGlkLCAo TlVMTDo6b2lkKSwgKE5VTEw6OnJlY29yZCkKICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBiYXIu ZjEKICAgICAgICAgICAgICAgIC0+ICBBcHBlbmQKICAgICAgICAgICAgICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBwdWJsaWMuYmFyIGJhcl8xCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IGJhcl8xLmYyLCBiYXJfMS5mMSwgYmFyXzEudGFibGVvaWQsIGJhcl8xLmN0aWQsIE5V TEw6OnJlY29yZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBiYXJfMS5mMiwg YmFyXzEuZjEsIGJhcl8xLnRhYmxlb2lkLCBiYXJfMS5jdGlkLCBOVUxMOjpvaWQsIE5VTEw6OnJl Y29yZAogICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuYmFy MiBiYXJfMgotICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBiYXJfMi5mMiwgYmFy XzIuZjEsIGJhcl8yLnRhYmxlb2lkLCBiYXJfMi5jdGlkLCBiYXJfMi4qCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1 YmxpYy5sb2N0MiBGT1IgVVBEQVRFCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IGJhcl8yLmYyLCBiYXJfMi5mMSwgYmFyXzIudGFibGVvaWQsIGJhcl8yLmN0aWQsIGJhcl8yLnRh Ymxlb2lkLCBiYXJfMi4qLCAkMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGYxLCBmMiwgZjMsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmxvY3QyIEZP UiBVUERBVEUKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBPdXRwdXQ6IChST1co Zm9vLmYxKSksIGZvby5mMQogICAgICAgICAgICAgICAgU29ydCBLZXk6IGZvby5mMQpAQCAtOTA0 MiwxOSArOTA0NCwyMSBAQCBFUlJPUjogIFdIRVJFIENVUlJFTlQgT0YgaXMgbm90IHN1cHBvcnRl ZCBmb3IgdGhpcyB0YWJsZSB0eXBlCiByb2xsYmFjazsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3Rz IG9mZikKIGRlbGV0ZSBmcm9tIGZvbyB3aGVyZSBmMSA8IDUgcmV0dXJuaW5nICo7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogIERlbGV0ZSBvbiBwdWJsaWMuZm9vCiAgICBPdXRwdXQ6IGZvb18xLmYx LCBmb29fMS5mMgogICAgRGVsZXRlIG9uIHB1YmxpYy5mb28gZm9vXzEKICAgIEZvcmVpZ24gRGVs ZXRlIG9uIHB1YmxpYy5mb28yIGZvb18yCi0gICAtPiAgQXBwZW5kCi0gICAgICAgICAtPiAgSW5k ZXggU2NhbiB1c2luZyBpX2Zvb19mMSBvbiBwdWJsaWMuZm9vIGZvb18xCi0gICAgICAgICAgICAg ICBPdXRwdXQ6IGZvb18xLnRhYmxlb2lkLCBmb29fMS5jdGlkCi0gICAgICAgICAgICAgICBJbmRl eCBDb25kOiAoZm9vXzEuZjEgPCA1KQotICAgICAgICAgLT4gIEZvcmVpZ24gRGVsZXRlIG9uIHB1 YmxpYy5mb28yIGZvb18yCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBERUxFVEUgRlJPTSBw dWJsaWMubG9jdDEgV0hFUkUgKChmMSA8IDUpKSBSRVRVUk5JTkcgZjEsIGYyCi0oMTAgcm93cykK KyAgIC0+ICBSZXN1bHQKKyAgICAgICAgIE91dHB1dDogZm9vLnRhYmxlb2lkLCBmb28uY3RpZCwg KE5VTEw6Om9pZCksICQwCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAgICAgICAtPiAg SW5kZXggU2NhbiB1c2luZyBpX2Zvb19mMSBvbiBwdWJsaWMuZm9vIGZvb18xCisgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6IGZvb18xLnRhYmxlb2lkLCBmb29fMS5jdGlkLCBOVUxMOjpvaWQK KyAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6IChmb29fMS5mMSA8IDUpCisgICAgICAg ICAgICAgICAtPiAgRm9yZWlnbiBEZWxldGUgb24gcHVibGljLmZvbzIgZm9vXzIKKyAgICAgICAg ICAgICAgICAgICAgIFJlbW90ZSBTUUw6IERFTEVURSBGUk9NIHB1YmxpYy5sb2N0MSBXSEVSRSAo KGYxIDwgNSkpIFJFVFVSTklORyBmMSwgZjIKKygxMiByb3dzKQogCiBkZWxldGUgZnJvbSBmb28g d2hlcmUgZjEgPCA1IHJldHVybmluZyAqOwogIGYxIHwgZjIgCkBAIC05MDY4LDE3ICs5MDcyLDE3 IEBAIGRlbGV0ZSBmcm9tIGZvbyB3aGVyZSBmMSA8IDUgcmV0dXJuaW5nICo7CiAKIGV4cGxhaW4g KHZlcmJvc2UsIGNvc3RzIG9mZikKIHVwZGF0ZSBiYXIgc2V0IGYyID0gZjIgKyAxMDAgcmV0dXJu aW5nICo7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuYmFy CiAgICBPdXRwdXQ6IGJhcl8xLmYxLCBiYXJfMS5mMgogICAgVXBkYXRlIG9uIHB1YmxpYy5iYXIg YmFyXzEKICAgIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5iYXIyIGJhcl8yCiAgICAtPiAgUmVz dWx0Ci0gICAgICAgICBPdXRwdXQ6IChiYXIuZjIgKyAxMDApLCBiYXIudGFibGVvaWQsIGJhci5j dGlkLCAoTlVMTDo6cmVjb3JkKQorICAgICAgICAgT3V0cHV0OiAoYmFyLmYyICsgMTAwKSwgYmFy LnRhYmxlb2lkLCBiYXIuY3RpZCwgKE5VTEw6Om9pZCksICQwLCAoTlVMTDo6cmVjb3JkKQogICAg ICAgICAgLT4gIEFwcGVuZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5i YXIgYmFyXzEKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYmFyXzEuZjIsIGJhcl8xLnRh Ymxlb2lkLCBiYXJfMS5jdGlkLCBOVUxMOjpyZWNvcmQKKyAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogYmFyXzEuZjIsIGJhcl8xLnRhYmxlb2lkLCBiYXJfMS5jdGlkLCBOVUxMOjpvaWQsIE5V TEw6OnJlY29yZAogICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5i YXIyIGJhcl8yCiAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGlj LmxvY3QyIFNFVCBmMiA9IChmMiArIDEwMCkgUkVUVVJOSU5HIGYxLCBmMgogKDExIHJvd3MpCkBA IC05MTAzLDIwICs5MTA3LDIwIEBAIEFGVEVSIFVQREFURSBPUiBERUxFVEUgT04gYmFyMgogRk9S IEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIHRyaWdnZXJfZGF0YSgyMywnc2tpZG9vJyk7CiBl eHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUgYmFyIHNldCBmMiA9IGYyICsgMTAw OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICBVcGRhdGUgb24gcHVibGljLmJhcgogICAgVXBkYXRlIG9uIHB1YmxpYy5iYXIgYmFy XzEKICAgIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5iYXIyIGJhcl8yCi0gICAgIFJlbW90ZSBT UUw6IFVQREFURSBwdWJsaWMubG9jdDIgU0VUIGYxID0gJDIsIGYyID0gJDMsIGYzID0gJDQgV0hF UkUgY3RpZCA9ICQxIFJFVFVSTklORyBmMSwgZjIsIGYzCisgICAgIFJlbW90ZSBTUUw6IFVQREFU RSBwdWJsaWMubG9jdDIgU0VUIGYxID0gJDMsIGYyID0gJDQsIGYzID0gJDUgV0hFUkUgY3RpZCA9 ICQxIEFORCB0YWJsZW9pZCA9ICQyIFJFVFVSTklORyBmMSwgZjIsIGYzCiAgICAtPiAgUmVzdWx0 Ci0gICAgICAgICBPdXRwdXQ6IChiYXIuZjIgKyAxMDApLCBiYXIudGFibGVvaWQsIGJhci5jdGlk LCAoTlVMTDo6cmVjb3JkKQorICAgICAgICAgT3V0cHV0OiAoYmFyLmYyICsgMTAwKSwgYmFyLnRh Ymxlb2lkLCBiYXIuY3RpZCwgKE5VTEw6Om9pZCksICQwLCAoTlVMTDo6cmVjb3JkKQogICAgICAg ICAgLT4gIEFwcGVuZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5iYXIg YmFyXzEKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYmFyXzEuZjIsIGJhcl8xLnRhYmxl b2lkLCBiYXJfMS5jdGlkLCBOVUxMOjpyZWNvcmQKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1 dDogYmFyXzEuZjIsIGJhcl8xLnRhYmxlb2lkLCBiYXJfMS5jdGlkLCBOVUxMOjpvaWQsIE5VTEw6 OnJlY29yZAogICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuYmFyMiBi YXJfMgotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBiYXJfMi5mMiwgYmFyXzIudGFibGVv aWQsIGJhcl8yLmN0aWQsIGJhcl8yLioKLSAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6 IFNFTEVDVCBmMSwgZjIsIGYzLCBjdGlkIEZST00gcHVibGljLmxvY3QyIEZPUiBVUERBVEUKKyAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogYmFyXzIuZjIsIGJhcl8yLnRhYmxlb2lkLCBiYXJf Mi5jdGlkLCBiYXJfMi50YWJsZW9pZCwgYmFyXzIuKiwgJDAKKyAgICAgICAgICAgICAgICAgICAg IFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGYzLCBjdGlkLCB0YWJsZW9pZCBGUk9NIHB1Ymxp Yy5sb2N0MiBGT1IgVVBEQVRFCiAoMTIgcm93cykKIAogdXBkYXRlIGJhciBzZXQgZjIgPSBmMiAr IDEwMDsKQEAgLTkxMzQsMjAgKzkxMzgsMjIgQEAgTk9USUNFOiAgdHJpZ19yb3dfYWZ0ZXIoMjMs IHNraWRvbykgQUZURVIgUk9XIFVQREFURSBPTiBiYXIyCiBOT1RJQ0U6ICBPTEQ6ICg3LDI3Nyw3 NyksTkVXOiAoNywzNzcsNzcpCiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBkZWxldGUg ZnJvbSBiYXIgd2hlcmUgZjIgPCA0MDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIERlbGV0ZSBvbiBwdWJsaWMuYmFyCiAgICBEZWxldGUgb24gcHVibGljLmJhciBiYXJf MQogICAgRm9yZWlnbiBEZWxldGUgb24gcHVibGljLmJhcjIgYmFyXzIKLSAgICAgUmVtb3RlIFNR TDogREVMRVRFIEZST00gcHVibGljLmxvY3QyIFdIRVJFIGN0aWQgPSAkMSBSRVRVUk5JTkcgZjEs IGYyLCBmMwotICAgLT4gIEFwcGVuZAotICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5i YXIgYmFyXzEKLSAgICAgICAgICAgICAgIE91dHB1dDogYmFyXzEudGFibGVvaWQsIGJhcl8xLmN0 aWQsIE5VTEw6OnJlY29yZAotICAgICAgICAgICAgICAgRmlsdGVyOiAoYmFyXzEuZjIgPCA0MDAp Ci0gICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5iYXIyIGJhcl8yCi0gICAgICAg ICAgICAgICBPdXRwdXQ6IGJhcl8yLnRhYmxlb2lkLCBiYXJfMi5jdGlkLCBiYXJfMi4qCi0gICAg ICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1Ymxp Yy5sb2N0MiBXSEVSRSAoKGYyIDwgNDAwKSkgRk9SIFVQREFURQotKDExIHJvd3MpCisgICAgIFJl bW90ZSBTUUw6IERFTEVURSBGUk9NIHB1YmxpYy5sb2N0MiBXSEVSRSBjdGlkID0gJDEgQU5EIHRh Ymxlb2lkID0gJDIgUkVUVVJOSU5HIGYxLCBmMiwgZjMKKyAgIC0+ICBSZXN1bHQKKyAgICAgICAg IE91dHB1dDogYmFyLnRhYmxlb2lkLCBiYXIuY3RpZCwgKE5VTEw6Om9pZCksICQwLCAoTlVMTDo6 cmVjb3JkKQorICAgICAgICAgLT4gIEFwcGVuZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHB1YmxpYy5iYXIgYmFyXzEKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYmFyXzEu dGFibGVvaWQsIGJhcl8xLmN0aWQsIE5VTEw6Om9pZCwgTlVMTDo6cmVjb3JkCisgICAgICAgICAg ICAgICAgICAgICBGaWx0ZXI6IChiYXJfMS5mMiA8IDQwMCkKKyAgICAgICAgICAgICAgIC0+ICBG b3JlaWduIFNjYW4gb24gcHVibGljLmJhcjIgYmFyXzIKKyAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogYmFyXzIudGFibGVvaWQsIGJhcl8yLmN0aWQsIGJhcl8yLnRhYmxlb2lkLCBiYXJfMi4q LCAkMAorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgZjMs IGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmxvY3QyIFdIRVJFICgoZjIgPCA0MDApKSBGT1Ig VVBEQVRFCisoMTMgcm93cykKIAogZGVsZXRlIGZyb20gYmFyIHdoZXJlIGYyIDwgNDAwOwogTk9U SUNFOiAgdHJpZ19yb3dfYmVmb3JlKDIzLCBza2lkb28pIEJFRk9SRSBST1cgREVMRVRFIE9OIGJh cjIKQEAgLTkxNzgsMjIgKzkxODQsMjIgQEAgYW5hbHl6ZSByZW10MTsKIGFuYWx5emUgcmVtdDI7 CiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiB1cGRhdGUgcGFyZW50IHNldCBiID0gcGFy ZW50LmIgfHwgcmVtdDIuYiBmcm9tIHJlbXQyIHdoZXJlIHBhcmVudC5hID0gcmVtdDIuYSByZXR1 cm5pbmcgKjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1 YmxpYy5wYXJlbnQKICAgIE91dHB1dDogcGFyZW50XzEuYSwgcGFyZW50XzEuYiwgcmVtdDIuYSwg cmVtdDIuYgogICAgVXBkYXRlIG9uIHB1YmxpYy5wYXJlbnQgcGFyZW50XzEKICAgIEZvcmVpZ24g VXBkYXRlIG9uIHB1YmxpYy5yZW10MSBwYXJlbnRfMgotICAgICBSZW1vdGUgU1FMOiBVUERBVEUg cHVibGljLmxvY3QxIFNFVCBiID0gJDIgV0hFUkUgY3RpZCA9ICQxIFJFVFVSTklORyBhLCBiCisg ICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jdDEgU0VUIGIgPSAkMyBXSEVSRSBjdGlk ID0gJDEgQU5EIHRhYmxlb2lkID0gJDIgUkVUVVJOSU5HIGEsIGIKICAgIC0+ICBOZXN0ZWQgTG9v cAotICAgICAgICAgT3V0cHV0OiAocGFyZW50LmIgfHwgcmVtdDIuYiksIHJlbXQyLiosIHJlbXQy LmEsIHJlbXQyLmIsIHBhcmVudC50YWJsZW9pZCwgcGFyZW50LmN0aWQsIChOVUxMOjpyZWNvcmQp CisgICAgICAgICBPdXRwdXQ6IChwYXJlbnQuYiB8fCByZW10Mi5iKSwgcmVtdDIuKiwgcmVtdDIu YSwgcmVtdDIuYiwgcGFyZW50LnRhYmxlb2lkLCBwYXJlbnQuY3RpZCwgKE5VTEw6Om9pZCksICQw LCAoTlVMTDo6cmVjb3JkKQogICAgICAgICAgSm9pbiBGaWx0ZXI6IChwYXJlbnQuYSA9IHJlbXQy LmEpCiAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cHVibGljLnBhcmVudCBwYXJlbnRfMQotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYXJl bnRfMS5iLCBwYXJlbnRfMS5hLCBwYXJlbnRfMS50YWJsZW9pZCwgcGFyZW50XzEuY3RpZCwgTlVM TDo6cmVjb3JkCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF8xLmIsIHBhcmVu dF8xLmEsIHBhcmVudF8xLnRhYmxlb2lkLCBwYXJlbnRfMS5jdGlkLCBOVUxMOjpvaWQsIE5VTEw6 OnJlY29yZAogICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMucmVtdDEg cGFyZW50XzIKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFyZW50XzIuYiwgcGFyZW50 XzIuYSwgcGFyZW50XzIudGFibGVvaWQsIHBhcmVudF8yLmN0aWQsIHBhcmVudF8yLioKLSAgICAg ICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjdGlkIEZST00gcHVibGlj LmxvY3QxIEZPUiBVUERBVEUKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFyZW50XzIu YiwgcGFyZW50XzIuYSwgcGFyZW50XzIudGFibGVvaWQsIHBhcmVudF8yLmN0aWQsIHBhcmVudF8y LnRhYmxlb2lkLCBwYXJlbnRfMi4qLCAkMAorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGEsIGIsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGljLmxvY3QxIEZPUiBVUERB VEUKICAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZQogICAgICAgICAgICAgICAgT3V0cHV0OiByZW10 Mi5iLCByZW10Mi4qLCByZW10Mi5hCiAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5yZW10MgpAQCAtOTIxMCwyMiArOTIxNiwyMiBAQCB1cGRhdGUgcGFyZW50IHNldCBi ID0gcGFyZW50LmIgfHwgcmVtdDIuYiBmcm9tIHJlbXQyIHdoZXJlIHBhcmVudC5hID0gcmVtdDIu YSByZQogCiBleHBsYWluICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBkZWxldGUgZnJvbSBwYXJlbnQg dXNpbmcgcmVtdDIgd2hlcmUgcGFyZW50LmEgPSByZW10Mi5hIHJldHVybmluZyBwYXJlbnQ7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBEZWxldGUgb24gcHVibGljLnBhcmVudAogICAgT3V0cHV0OiBwYXJlbnRf MS4qCiAgICBEZWxldGUgb24gcHVibGljLnBhcmVudCBwYXJlbnRfMQogICAgRm9yZWlnbiBEZWxl dGUgb24gcHVibGljLnJlbXQxIHBhcmVudF8yCi0gICAgIFJlbW90ZSBTUUw6IERFTEVURSBGUk9N IHB1YmxpYy5sb2N0MSBXSEVSRSBjdGlkID0gJDEgUkVUVVJOSU5HIGEsIGIKKyAgICAgUmVtb3Rl IFNRTDogREVMRVRFIEZST00gcHVibGljLmxvY3QxIFdIRVJFIGN0aWQgPSAkMSBBTkQgdGFibGVv aWQgPSAkMiBSRVRVUk5JTkcgYSwgYgogICAgLT4gIE5lc3RlZCBMb29wCi0gICAgICAgICBPdXRw dXQ6IHJlbXQyLiosIHBhcmVudC50YWJsZW9pZCwgcGFyZW50LmN0aWQKKyAgICAgICAgIE91dHB1 dDogcmVtdDIuKiwgcGFyZW50LnRhYmxlb2lkLCBwYXJlbnQuY3RpZCwgKE5VTEw6Om9pZCksICQw CiAgICAgICAgICBKb2luIEZpbHRlcjogKHBhcmVudC5hID0gcmVtdDIuYSkKICAgICAgICAgIC0+ ICBBcHBlbmQKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMucGFyZW50IHBh cmVudF8xCi0gICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF8xLmEsIHBhcmVudF8x LnRhYmxlb2lkLCBwYXJlbnRfMS5jdGlkCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBh cmVudF8xLmEsIHBhcmVudF8xLnRhYmxlb2lkLCBwYXJlbnRfMS5jdGlkLCBOVUxMOjpvaWQKICAg ICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLnJlbXQxIHBhcmVudF8yCi0g ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhcmVudF8yLmEsIHBhcmVudF8yLnRhYmxlb2lk LCBwYXJlbnRfMi5jdGlkCi0gICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg YSwgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MSBGT1IgVVBEQVRFCisgICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IHBhcmVudF8yLmEsIHBhcmVudF8yLnRhYmxlb2lkLCBwYXJlbnRfMi5jdGlkLCBw YXJlbnRfMi50YWJsZW9pZCwgJDAKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNF TEVDVCBhLCBjdGlkLCB0YWJsZW9pZCBGUk9NIHB1YmxpYy5sb2N0MSBGT1IgVVBEQVRFCiAgICAg ICAgICAtPiAgTWF0ZXJpYWxpemUKICAgICAgICAgICAgICAgIE91dHB1dDogcmVtdDIuKiwgcmVt dDIuYQogICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMucmVtdDIKQEAg LTk0NTUsNyArOTQ2MSw3IEBAIHVwZGF0ZSB1dHJ0ZXN0IHNldCBhID0gMSB3aGVyZSBhID0gMSBv ciBhID0gMiByZXR1cm5pbmcgKjsKICAgICAgICAgIC0+ICBGb3JlaWduIFVwZGF0ZSBvbiBwdWJs aWMucmVtcCB1dHJ0ZXN0XzEKICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJs aWMubG9jdCBTRVQgYSA9IDEgV0hFUkUgKCgoYSA9IDEpIE9SIChhID0gMikpKSBSRVRVUk5JTkcg YSwgYgogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5sb2NwIHV0cnRlc3RfMgotICAg ICAgICAgICAgICAgT3V0cHV0OiAxLCB1dHJ0ZXN0XzIudGFibGVvaWQsIHV0cnRlc3RfMi5jdGlk LCBOVUxMOjpyZWNvcmQKKyAgICAgICAgICAgICAgIE91dHB1dDogMSwgdXRydGVzdF8yLnRhYmxl b2lkLCB1dHJ0ZXN0XzIuY3RpZCwgTlVMTDo6b2lkLCAkMCwgTlVMTDo6cmVjb3JkCiAgICAgICAg ICAgICAgICBGaWx0ZXI6ICgodXRydGVzdF8yLmEgPSAxKSBPUiAodXRydGVzdF8yLmEgPSAyKSkK ICgxMCByb3dzKQogCkBAIC05NDk0LDggKzk1MDAsOCBAQCBpbnNlcnQgaW50byB1dHJ0ZXN0IHZh bHVlcyAoMiwgJ3F1eCcpOwogLS0gd2l0aCBhIGRpcmVjdCBtb2RpZmljYXRpb24gcGxhbgogZXhw bGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogdXBkYXRlIHV0cnRlc3Qgc2V0IGEgPSAxIHJldHVy bmluZyAqOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgVXBkYXRlIG9uIHB1YmxpYy51dHJ0ZXN0CiAgICBPdXRwdXQ6IHV0cnRlc3RfMS5hLCB1 dHJ0ZXN0XzEuYgogICAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLnJlbXAgdXRydGVzdF8xCkBA IC05NTA0LDcgKzk1MTAsNyBAQCB1cGRhdGUgdXRydGVzdCBzZXQgYSA9IDEgcmV0dXJuaW5nICo7 CiAgICAgICAgICAtPiAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLnJlbXAgdXRydGVzdF8xCiAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY3QgU0VUIGEgPSAxIFJF VFVSTklORyBhLCBiCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmxvY3AgdXRydGVz dF8yCi0gICAgICAgICAgICAgICBPdXRwdXQ6IDEsIHV0cnRlc3RfMi50YWJsZW9pZCwgdXRydGVz dF8yLmN0aWQsIE5VTEw6OnJlY29yZAorICAgICAgICAgICAgICAgT3V0cHV0OiAxLCB1dHJ0ZXN0 XzIudGFibGVvaWQsIHV0cnRlc3RfMi5jdGlkLCBOVUxMOjpvaWQsICQwLCBOVUxMOjpyZWNvcmQK ICg5IHJvd3MpCiAKIHVwZGF0ZSB1dHJ0ZXN0IHNldCBhID0gMSByZXR1cm5pbmcgKjsKQEAgLTk1 MTUsMjIgKzk1MjEsMjIgQEAgaW5zZXJ0IGludG8gdXRydGVzdCB2YWx1ZXMgKDIsICdxdXgnKTsK IC0tIHdpdGggYSBub24tZGlyZWN0IG1vZGlmaWNhdGlvbiBwbGFuCiBleHBsYWluICh2ZXJib3Nl LCBjb3N0cyBvZmYpCiB1cGRhdGUgdXRydGVzdCBzZXQgYSA9IDEgZnJvbSAodmFsdWVzICgxKSwg KDIpKSBzKHgpIHdoZXJlIGEgPSBzLnggcmV0dXJuaW5nICo7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMudXRydGVzdAogICAgT3V0cHV0OiB1 dHJ0ZXN0XzEuYSwgdXRydGVzdF8xLmIsICIqVkFMVUVTKiIuY29sdW1uMQogICAgRm9yZWlnbiBV cGRhdGUgb24gcHVibGljLnJlbXAgdXRydGVzdF8xCi0gICAgIFJlbW90ZSBTUUw6IFVQREFURSBw dWJsaWMubG9jdCBTRVQgYSA9ICQyIFdIRVJFIGN0aWQgPSAkMSBSRVRVUk5JTkcgYSwgYgorICAg ICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY3QgU0VUIGEgPSAkMyBXSEVSRSBjdGlkID0g JDEgQU5EIHRhYmxlb2lkID0gJDIgUkVUVVJOSU5HIGEsIGIKICAgIFVwZGF0ZSBvbiBwdWJsaWMu bG9jcCB1dHJ0ZXN0XzIKICAgIC0+ICBIYXNoIEpvaW4KLSAgICAgICAgIE91dHB1dDogMSwgIipW QUxVRVMqIi4qLCAiKlZBTFVFUyoiLmNvbHVtbjEsIHV0cnRlc3QudGFibGVvaWQsIHV0cnRlc3Qu Y3RpZCwgdXRydGVzdC4qCisgICAgICAgICBPdXRwdXQ6IDEsICIqVkFMVUVTKiIuKiwgIipWQUxV RVMqIi5jb2x1bW4xLCB1dHJ0ZXN0LnRhYmxlb2lkLCB1dHJ0ZXN0LmN0aWQsIHV0cnRlc3QudGFi bGVvaWQsICQwLCB1dHJ0ZXN0LioKICAgICAgICAgIEhhc2ggQ29uZDogKHV0cnRlc3QuYSA9ICIq VkFMVUVTKiIuY29sdW1uMSkKICAgICAgICAgIC0+ICBBcHBlbmQKICAgICAgICAgICAgICAgIC0+ ICBGb3JlaWduIFNjYW4gb24gcHVibGljLnJlbXAgdXRydGVzdF8xCi0gICAgICAgICAgICAgICAg ICAgICBPdXRwdXQ6IHV0cnRlc3RfMS5hLCB1dHJ0ZXN0XzEudGFibGVvaWQsIHV0cnRlc3RfMS5j dGlkLCB1dHJ0ZXN0XzEuKgotICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNU IGEsIGIsIGN0aWQgRlJPTSBwdWJsaWMubG9jdCBGT1IgVVBEQVRFCisgICAgICAgICAgICAgICAg ICAgICBPdXRwdXQ6IHV0cnRlc3RfMS5hLCB1dHJ0ZXN0XzEudGFibGVvaWQsIHV0cnRlc3RfMS5j dGlkLCB1dHJ0ZXN0XzEudGFibGVvaWQsIHV0cnRlc3RfMS4qLCAkMAorICAgICAgICAgICAgICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGN0aWQsIHRhYmxlb2lkIEZST00gcHVibGlj LmxvY3QgRk9SIFVQREFURQogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5s b2NwIHV0cnRlc3RfMgotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB1dHJ0ZXN0XzIuYSwg dXRydGVzdF8yLnRhYmxlb2lkLCB1dHJ0ZXN0XzIuY3RpZCwgTlVMTDo6cmVjb3JkCisgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IHV0cnRlc3RfMi5hLCB1dHJ0ZXN0XzIudGFibGVvaWQsIHV0 cnRlc3RfMi5jdGlkLCBOVUxMOjpvaWQsIE5VTEw6OnJlY29yZAogICAgICAgICAgLT4gIEhhc2gK ICAgICAgICAgICAgICAgIE91dHB1dDogIipWQUxVRVMqIi4qLCAiKlZBTFVFUyoiLmNvbHVtbjEK ICAgICAgICAgICAgICAgIC0+ICBWYWx1ZXMgU2NhbiBvbiAiKlZBTFVFUyoiCkBAIC05NTU0LDE1 ICs5NTYwLDE1IEBAIGluc2VydCBpbnRvIHV0cnRlc3QgdmFsdWVzICgzLCAneHl6enknKTsKIC0t IHdpdGggYSBkaXJlY3QgbW9kaWZpY2F0aW9uIHBsYW4KIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3Rz IG9mZikKIHVwZGF0ZSB1dHJ0ZXN0IHNldCBhID0gMyByZXR1cm5pbmcgKjsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJs aWMudXRydGVzdAogICAgT3V0cHV0OiB1dHJ0ZXN0XzEuYSwgdXRydGVzdF8xLmIKICAgIFVwZGF0 ZSBvbiBwdWJsaWMubG9jcCB1dHJ0ZXN0XzEKICAgIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5y ZW1wIHV0cnRlc3RfMgogICAgLT4gIEFwcGVuZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1 YmxpYy5sb2NwIHV0cnRlc3RfMQotICAgICAgICAgICAgICAgT3V0cHV0OiAzLCB1dHJ0ZXN0XzEu dGFibGVvaWQsIHV0cnRlc3RfMS5jdGlkLCBOVUxMOjpyZWNvcmQKKyAgICAgICAgICAgICAgIE91 dHB1dDogMywgdXRydGVzdF8xLnRhYmxlb2lkLCB1dHJ0ZXN0XzEuY3RpZCwgTlVMTDo6b2lkLCAk MCwgTlVMTDo6cmVjb3JkCiAgICAgICAgICAtPiAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLnJl bXAgdXRydGVzdF8yCiAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxv Y3QgU0VUIGEgPSAzIFJFVFVSTklORyBhLCBiCiAoOSByb3dzKQpAQCAtOTU3MiwyMiArOTU3OCwy MiBAQCBFUlJPUjogIGNhbm5vdCByb3V0ZSB0dXBsZXMgaW50byBmb3JlaWduIHRhYmxlIHRvIGJl IHVwZGF0ZWQgInJlbXAiCiAtLSB3aXRoIGEgbm9uLWRpcmVjdCBtb2RpZmljYXRpb24gcGxhbgog ZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogdXBkYXRlIHV0cnRlc3Qgc2V0IGEgPSAzIGZy b20gKHZhbHVlcyAoMiksICgzKSkgcyh4KSB3aGVyZSBhID0gcy54IHJldHVybmluZyAqOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1 YmxpYy51dHJ0ZXN0CiAgICBPdXRwdXQ6IHV0cnRlc3RfMS5hLCB1dHJ0ZXN0XzEuYiwgIipWQUxV RVMqIi5jb2x1bW4xCiAgICBVcGRhdGUgb24gcHVibGljLmxvY3AgdXRydGVzdF8xCiAgICBGb3Jl aWduIFVwZGF0ZSBvbiBwdWJsaWMucmVtcCB1dHJ0ZXN0XzIKLSAgICAgUmVtb3RlIFNRTDogVVBE QVRFIHB1YmxpYy5sb2N0IFNFVCBhID0gJDIgV0hFUkUgY3RpZCA9ICQxIFJFVFVSTklORyBhLCBi CisgICAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMubG9jdCBTRVQgYSA9ICQzIFdIRVJFIGN0 aWQgPSAkMSBBTkQgdGFibGVvaWQgPSAkMiBSRVRVUk5JTkcgYSwgYgogICAgLT4gIEhhc2ggSm9p bgotICAgICAgICAgT3V0cHV0OiAzLCAiKlZBTFVFUyoiLiosICIqVkFMVUVTKiIuY29sdW1uMSwg dXRydGVzdC50YWJsZW9pZCwgdXRydGVzdC5jdGlkLCAoTlVMTDo6cmVjb3JkKQorICAgICAgICAg T3V0cHV0OiAzLCAiKlZBTFVFUyoiLiosICIqVkFMVUVTKiIuY29sdW1uMSwgdXRydGVzdC50YWJs ZW9pZCwgdXRydGVzdC5jdGlkLCAoTlVMTDo6b2lkKSwgJDAsIChOVUxMOjpyZWNvcmQpCiAgICAg ICAgICBIYXNoIENvbmQ6ICh1dHJ0ZXN0LmEgPSAiKlZBTFVFUyoiLmNvbHVtbjEpCiAgICAgICAg ICAtPiAgQXBwZW5kCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmxvY3Ag dXRydGVzdF8xCi0gICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHV0cnRlc3RfMS5hLCB1dHJ0 ZXN0XzEudGFibGVvaWQsIHV0cnRlc3RfMS5jdGlkLCBOVUxMOjpyZWNvcmQKKyAgICAgICAgICAg ICAgICAgICAgIE91dHB1dDogdXRydGVzdF8xLmEsIHV0cnRlc3RfMS50YWJsZW9pZCwgdXRydGVz dF8xLmN0aWQsIE5VTEw6Om9pZCwgTlVMTDo6cmVjb3JkCiAgICAgICAgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIHB1YmxpYy5yZW1wIHV0cnRlc3RfMgotICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiB1dHJ0ZXN0XzIuYSwgdXRydGVzdF8yLnRhYmxlb2lkLCB1dHJ0ZXN0XzIuY3RpZCwg dXRydGVzdF8yLioKLSAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBi LCBjdGlkIEZST00gcHVibGljLmxvY3QgRk9SIFVQREFURQorICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiB1dHJ0ZXN0XzIuYSwgdXRydGVzdF8yLnRhYmxlb2lkLCB1dHJ0ZXN0XzIuY3RpZCwg dXRydGVzdF8yLnRhYmxlb2lkLCB1dHJ0ZXN0XzIuKiwgJDAKKyAgICAgICAgICAgICAgICAgICAg IFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjdGlkLCB0YWJsZW9pZCBGUk9NIHB1YmxpYy5sb2N0 IEZPUiBVUERBVEUKICAgICAgICAgIC0+ICBIYXNoCiAgICAgICAgICAgICAgICBPdXRwdXQ6ICIq VkFMVUVTKiIuKiwgIipWQUxVRVMqIi5jb2x1bW4xCiAgICAgICAgICAgICAgICAtPiAgVmFsdWVz IFNjYW4gb24gIipWQUxVRVMqIgpAQCAtMTI0NzQsOCArMTI0ODAsOCBAQCBSRVNFVCBlbmFibGVf aGFzaGpvaW47CiAtLSBUZXN0IHRoYXQgVVBEQVRFL0RFTEVURSB3aXRoIGluaGVyaXRlZCB0YXJn ZXQgd29ya3Mgd2l0aCBhc3luY19jYXBhYmxlIGVuYWJsZWQKIEVYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKIFVQREFURSBhc3luY19wdCBTRVQgYyA9IGMgfHwgYyBXSEVSRSBiID0gMCBSRVRV Uk5JTkcgKjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuYXN5bmNfcHQKICAgIE91 dHB1dDogYXN5bmNfcHRfMS5hLCBhc3luY19wdF8xLmIsIGFzeW5jX3B0XzEuYwogICAgRm9yZWln biBVcGRhdGUgb24gcHVibGljLmFzeW5jX3AxIGFzeW5jX3B0XzEKQEAgLTEyNDg3LDcgKzEyNDkz LDcgQEAgVVBEQVRFIGFzeW5jX3B0IFNFVCBjID0gYyB8fCBjIFdIRVJFIGIgPSAwIFJFVFVSTklO RyAqOwogICAgICAgICAgLT4gIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5hc3luY19wMiBhc3lu Y19wdF8yCiAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmJhc2VfdGJs MiBTRVQgYyA9IChjIHx8IGMpIFdIRVJFICgoYiA9IDApKSBSRVRVUk5JTkcgYSwgYiwgYwogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5hc3luY19wMyBhc3luY19wdF8zCi0gICAgICAg ICAgICAgICBPdXRwdXQ6IChhc3luY19wdF8zLmMgfHwgYXN5bmNfcHRfMy5jKSwgYXN5bmNfcHRf My50YWJsZW9pZCwgYXN5bmNfcHRfMy5jdGlkLCBOVUxMOjpyZWNvcmQKKyAgICAgICAgICAgICAg IE91dHB1dDogKGFzeW5jX3B0XzMuYyB8fCBhc3luY19wdF8zLmMpLCBhc3luY19wdF8zLnRhYmxl b2lkLCBhc3luY19wdF8zLmN0aWQsIE5VTEw6Om9pZCwgJDAsIE5VTEw6OnJlY29yZCwgJDEKICAg ICAgICAgICAgICAgIEZpbHRlcjogKGFzeW5jX3B0XzMuYiA9IDApCiAoMTMgcm93cykKIApAQCAt MTI1MTQsNyArMTI1MjAsNyBAQCBERUxFVEUgRlJPTSBhc3luY19wdCBXSEVSRSBiID0gMCBSRVRV Uk5JTkcgKjsKICAgICAgICAgIC0+ICBGb3JlaWduIERlbGV0ZSBvbiBwdWJsaWMuYXN5bmNfcDIg YXN5bmNfcHRfMgogICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogREVMRVRFIEZST00gcHVibGlj LmJhc2VfdGJsMiBXSEVSRSAoKGIgPSAwKSkgUkVUVVJOSU5HIGEsIGIsIGMKICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBwdWJsaWMuYXN5bmNfcDMgYXN5bmNfcHRfMwotICAgICAgICAgICAgICAg T3V0cHV0OiBhc3luY19wdF8zLnRhYmxlb2lkLCBhc3luY19wdF8zLmN0aWQKKyAgICAgICAgICAg ICAgIE91dHB1dDogYXN5bmNfcHRfMy50YWJsZW9pZCwgYXN5bmNfcHRfMy5jdGlkLCBOVUxMOjpv aWQsICQwLCAkMQogICAgICAgICAgICAgICAgRmlsdGVyOiAoYXN5bmNfcHRfMy5iID0gMCkKICgx MyByb3dzKQogCkBAIC0xMzEyOSw2ICsxMzEzNSw1MiBAQCBTRUxFQ1Qgc2VydmVyX25hbWUsCiAt LSBDbGVhbiB1cAogXHNldCBWRVJCT1NJVFkgZGVmYXVsdAogUkVTRVQgZGVidWdfZGlzY2FyZF9j YWNoZXM7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBjaGVjayB3aGV0aGVyIGZkdyBjcmVhdGVkIGZvciBw YXJ0aXRpb25lZCB0YWJsZSB3aWxsIGRlbGV0ZSB0dXBsZXMgb25seSBmcm9tCistLSBkZXNpcmVk IHBhcnRpdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIFRBQkxFIG1lYXN1cmVtZW50ICgKKyAg ICAgICBjaXR5X2lkICAgICAgICAgaW50IG5vdCBudWxsLAorICAgICAgIGxvZ2RhdGUgICAgICAg ICBkYXRlIG5vdCBudWxsLAorICAgICAgIHBlYWt0ZW1wICAgICAgICBpbnQsCisgICAgICAgdW5p dHNhbGVzICAgICAgIGludAorKSBQQVJUSVRJT04gQlkgUkFOR0UgKGxvZ2RhdGUpOworQ1JFQVRF IFRBQkxFIG1lYXN1cmVtZW50X3kyMDA2bTAyIFBBUlRJVElPTiBPRiBtZWFzdXJlbWVudAorICAg ICAgIEZPUiBWQUxVRVMgRlJPTSAoJzIwMDYtMDItMDEnKSBUTyAoJzIwMDYtMDMtMDEnKTsKK0NS RUFURSBUQUJMRSBtZWFzdXJlbWVudF95MjAwNm0wMyBQQVJUSVRJT04gT0YgbWVhc3VyZW1lbnQK KyAgICAgICBGT1IgVkFMVUVTIEZST00gKCcyMDA2LTAzLTAxJykgVE8gKCcyMDA2LTA0LTAxJyk7 CitDUkVBVEUgVEFCTEUgbWVhc3VyZW1lbnRfeTIwMDZtMDQgUEFSVElUSU9OIE9GIG1lYXN1cmVt ZW50CisgICAgICAgRk9SIFZBTFVFUyBGUk9NICgnMjAwNi0wNC0wMScpIFRPICgnMjAwNi0wNS0w MScpOworSU5TRVJUIElOVE8gbWVhc3VyZW1lbnQgVkFMVUVTICgxLCcyMDA2LTAyLTAxJywxLDEp OworSU5TRVJUIElOVE8gbWVhc3VyZW1lbnQgVkFMVUVTICgyLCcyMDA2LTAzLTAxJywxLDEpOwor SU5TRVJUIElOVE8gbWVhc3VyZW1lbnQgVkFMVUVTICgzLCcyMDA2LTA0LTAxJywxLDEpOworY3Jl YXRlIGZvcmVpZ24gdGFibGUgbWVhc3VyZW1lbnRfZmR3ICgKKyAgICAgICBjaXR5X2lkIGludCBv cHRpb25zIChjb2x1bW5fbmFtZSAnY2l0eV9pZCcpIG5vdCBudWxsLAorICAgICAgIGxvZ2RhdGUg ZGF0ZSBvcHRpb25zIChjb2x1bW5fbmFtZSAnbG9nZGF0ZScpIG5vdCBudWxsLAorICAgICAgIHBl YWt0ZW1wIHRleHQgb3B0aW9ucyAoY29sdW1uX25hbWUgJ3BlYWt0ZW1wJyksCisgICAgICAgdW5p dHNhbGVzIGludGVnZXIgb3B0aW9ucyAoY29sdW1uX25hbWUgJ3VuaXRzYWxlcycpCispIFNFUlZF UiBsb29wYmFjayBPUFRJT05TICh0YWJsZV9uYW1lICdtZWFzdXJlbWVudCcpOworREVMRVRFIEZS T00gbWVhc3VyZW1lbnRfZmR3CitVU0lORyAoCisgICAgICAgU0VMRUNUIHQxLmNpdHlfaWQgc3Vi X2NpdHlfaWQKKyAgICAgICBGUk9NIG1lYXN1cmVtZW50X2ZkdyB0MQorICAgICAgIFdIRVJFIHQx LmNpdHlfaWQ9MQorICAgICAgIExJTUlUIDEwMDAKKykgc3ViCitXSEVSRSBtZWFzdXJlbWVudF9m ZHcuY2l0eV9pZCA9IHN1Yi5zdWJfY2l0eV9pZAorUkVUVVJOSU5HIGNpdHlfaWQsIGxvZ2RhdGUs IHBlYWt0ZW1wLCB1bml0c2FsZXM7CisgY2l0eV9pZCB8ICBsb2dkYXRlICAgfCBwZWFrdGVtcCB8 IHVuaXRzYWxlcyAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorICAgICAgIDEgfCAwMi0wMS0yMDA2IHwgMSAgICAgICAgfCAgICAgICAgIDEKKygxIHJvdykK KworU0VMRUNUICogRlJPTSBtZWFzdXJlbWVudF9mZHc7CisgY2l0eV9pZCB8ICBsb2dkYXRlICAg fCBwZWFrdGVtcCB8IHVuaXRzYWxlcyAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorICAgICAgIDIgfCAwMy0wMS0yMDA2IHwgMSAgICAgICAgfCAgICAgICAg IDEKKyAgICAgICAzIHwgMDQtMDEtMjAwNiB8IDEgICAgICAgIHwgICAgICAgICAxCisoMiByb3dz KQorCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSB0ZXN0IGNsZWFudXAgb2YgZmFpbGVkIGNvbm5lY3Rpb25z IG9uIGFib3J0CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zk dy9wb3N0Z3Jlc19mZHcuYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jCmlu ZGV4IDBlYTcyYTY0Y2U1Li5lNTkxOWViMzYxYyAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvcG9zdGdyZXNfZmR3LmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNf ZmR3LmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9leHBsYWluX2Zvcm1h dC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V4cGxhaW5fc3RhdGUuaCIKICNpbmNsdWRlICJjb21t YW5kcy92YWN1dW0uaCIKKyNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvZXhlY0FzeW5jLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVudC5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL3NwaS5oIgpAQCAtODIsNiArODMsOCBAQCBlbnVtIEZkd1NjYW5Qcml2 YXRlSW5kZXgKIAlGZHdTY2FuUHJpdmF0ZVNlbGVjdFNxbCwKIAkvKiBJbnRlZ2VyIGxpc3Qgb2Yg YXR0cmlidXRlIG51bWJlcnMgcmV0cmlldmVkIGJ5IHRoZSBTRUxFQ1QgKi8KIAlGZHdTY2FuUHJp dmF0ZVJldHJpZXZlZEF0dHJzLAorCS8qIFBhcmFtIElEIGZvciByZW1vdGUgdGFibGUgT0lEIGZv ciB0YXJnZXQgcmVsICgtMSBpZiBub25lKSAqLworCUZkd1NjYW5Qcml2YXRlVGFibGVPaWRQYXJh bUlkLAogCS8qIEludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBkZXNpcmVkIGZldGNoX3NpemUgKi8K IAlGZHdTY2FuUHJpdmF0ZUZldGNoU2l6ZSwKIApAQCAtMTgwLDYgKzE4MywxMCBAQCB0eXBlZGVm IHN0cnVjdCBQZ0Zkd1NjYW5TdGF0ZQogCU1lbW9yeUNvbnRleHQgdGVtcF9jeHQ7CQkvKiBjb250 ZXh0IGZvciBwZXItdHVwbGUgdGVtcG9yYXJ5IGRhdGEgKi8KIAogCWludAkJCWZldGNoX3NpemU7 CQkvKiBudW1iZXIgb2YgdHVwbGVzIHBlciBmZXRjaCAqLworCisJaW50CQkJdGFibGVvaWRfcGFy YW1faWQ7CS8qIFBhcmFtIElEIGZvciByZW1vdGUgdGFibGUgT0lEICovCisJYm9vbAkJc2V0X3Rh Ymxlb2lkX3BhcmFtOyAvKiBEbyB3ZSBuZWVkIHRvIHNldCB0aGUgUGFyYW0/ICovCisJT2lkCQkJ cmVtb3RlX3RhYmxlb2lkOwogfSBQZ0Zkd1NjYW5TdGF0ZTsKIAogLyoKQEAgLTIwNiw2ICsyMTMs NyBAQCB0eXBlZGVmIHN0cnVjdCBQZ0Zkd01vZGlmeVN0YXRlCiAKIAkvKiBpbmZvIGFib3V0IHBh cmFtZXRlcnMgZm9yIHByZXBhcmVkIHN0YXRlbWVudCAqLwogCUF0dHJOdW1iZXIJY3RpZEF0dG5v OwkJLyogYXR0bnVtIG9mIGlucHV0IHJlc2p1bmsgY3RpZCBjb2x1bW4gKi8KKwlBdHRyTnVtYmVy CXRhYmxlb2lkQXR0bm87CS8qIGF0dG51bSBvZiBpbnB1dCByZXNqdW5rIHRhYmxlb2lkIGNvbHVt biAqLwogCWludAkJCXBfbnVtczsJCQkvKiBudW1iZXIgb2YgcGFyYW1ldGVycyB0byB0cmFuc21p dCAqLwogCUZtZ3JJbmZvICAgKnBfZmxpbmZvOwkJLyogb3V0cHV0IGNvbnZlcnNpb24gZnVuY3Rp b25zIGZvciB0aGVtICovCiAKQEAgLTMwNiw2ICszMTQsMzUgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlp bnQ2NAkJb2Zmc2V0X2VzdDsKIH0gUGdGZHdQYXRoRXh0cmFEYXRhOwogCit0eXBlZGVmIHN0cnVj dCBPaWRNYXBwaW5nRW50cnkKK3sKKwlPaWQJCWxvY2FsX29pZDsJLyoga2V5ICovCisJT2lkCQly ZW1vdGVfb2lkOyAvKiB2YWx1ZSAqLworCWNoYXIJc3RhdHVzOwkJLyogaGFzaCBlbnRyeSBzdGF0 dXMgKi8KK30gT2lkTWFwcGluZ0VudHJ5OworCisjZGVmaW5lIFNIX1BSRUZJWCBvaWRtYXBwaW5n CisjZGVmaW5lIFNIX0VMRU1FTlRfVFlQRSBPaWRNYXBwaW5nRW50cnkKKyNkZWZpbmUgU0hfS0VZ X1RZUEUgT2lkCisjZGVmaW5lIFNIX0tFWSBsb2NhbF9vaWQKKyNkZWZpbmUgU0hfSEFTSF9LRVko dGIsIGtleSkgbXVybXVyaGFzaDMyKGtleSkKKyNkZWZpbmUgU0hfRVFVQUwodGIsIGEsIGIpIGEg PT0gYgorI2RlZmluZSBTSF9TQ09QRSBzdGF0aWMgaW5saW5lCisjZGVmaW5lIFNIX0RFRklORQor I2RlZmluZSBTSF9ERUNMQVJFCisjaW5jbHVkZSAibGliL3NpbXBsZWhhc2guaCIKKwordHlwZWRl ZiBzdHJ1Y3QgUGdGZHdSZW1vdGVNYXAKK3sKKwlvaWRtYXBwaW5nX2hhc2gJKm9pZF9tYXBwaW5n OworCU1lbW9yeUNvbnRleHQJIGhhc2hfY3h0OworCXVpbnQzMgkJCSByZWZjb3VudDsKK30gUGdG ZHdSZW1vdGVNYXA7CisKK3N0YXRpYyBQZ0Zkd1JlbW90ZU1hcCAqcmVtb3RlTWFwOworCisjZGVm aW5lCQlOX0lOSVRJQUxfT0lETUFQUElOR19FTEVNUwk1MAorCiAvKgogICogSWRlbnRpZnkgdGhl IGF0dHJpYnV0ZSB3aGVyZSBkYXRhIGNvbnZlcnNpb24gZmFpbHMuCiAgKi8KQEAgLTUwNiw2ICs1 NDMsODYgQEAgc3RhdGljIGNvbnN0IE9pZCBhdHRjbGVhcl9hcmd0eXBlc1tBVFRDTEVBUl9TUUxf TlVNX0ZJRUxEU10gPQogICovCiBQR19GVU5DVElPTl9JTkZPX1YxKHBvc3RncmVzX2Zkd19oYW5k bGVyKTsKIAorLyogUHJpdmF0ZSBjYWNoZSAqLworc3RhdGljIHZvaWQKK2luaXRfcmVtb3RlX21h cCh2b2lkKQoreworCU1lbW9yeUNvbnRleHQJcmVtb3RlTWFwQ3h0OworCisJQXNzZXJ0KHJlbW90 ZU1hcCA9PSBOVUxMKTsKKworCXJlbW90ZU1hcEN4dCA9IEFsbG9jU2V0Q29udGV4dENyZWF0ZShD YWNoZU1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJICJQZ0Zkd1JlbW90ZU1hcCIsCisJCQkJCQkJ CQkJIEFMTE9DU0VUX1NNQUxMX1NJWkVTKTsKKworCXJlbW90ZU1hcCA9IChQZ0Zkd1JlbW90ZU1h cCAqKQorCQlNZW1vcnlDb250ZXh0QWxsb2NaZXJvKHJlbW90ZU1hcEN4dCwgc2l6ZW9mKFBnRmR3 UmVtb3RlTWFwKSk7CisKKwlyZW1vdGVNYXAtPmhhc2hfY3h0ID0gcmVtb3RlTWFwQ3h0OworCXJl bW90ZU1hcC0+b2lkX21hcHBpbmcgPSBvaWRtYXBwaW5nX2NyZWF0ZShyZW1vdGVNYXAtPmhhc2hf Y3h0LAorCQkJCQkJCQkJCQkgICBOX0lOSVRJQUxfT0lETUFQUElOR19FTEVNUywKKwkJCQkJCQkJ CQkJICAgTlVMTCk7Cit9CisKK3N0YXRpYyB2b2lkCitpbnNlcnRfb2lkX3BhaXIoT2lkIGxvY2Fs X29pZCwgT2lkIHJlbW90ZV9vaWQpCit7CisJYm9vbAkJCSBmb3VuZDsKKwlPaWRNYXBwaW5nRW50 cnkJKmVudHJ5OworCU1lbW9yeUNvbnRleHQJIHRtcDsKKworCUFzc2VydChPaWRJc1ZhbGlkKGxv Y2FsX29pZCkgJiYgT2lkSXNWYWxpZChyZW1vdGVfb2lkKSk7CisKKwlpZiAocmVtb3RlTWFwID09 IE5VTEwpCisJCWluaXRfcmVtb3RlX21hcCgpOworCisJdG1wID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKHJlbW90ZU1hcC0+aGFzaF9jeHQpOworCisJLyogVGhpcyBtYXBwaW5nIG1heSBhbHJlYWR5 IHByZXNlbnQgaW4gdGhlIGhhc2h0YWJsZS4gKi8KKwllbnRyeSA9IG9pZG1hcHBpbmdfbG9va3Vw KHJlbW90ZU1hcC0+b2lkX21hcHBpbmcsIGxvY2FsX29pZCk7CisJaWYgKGVudHJ5KQorCQlvaWRt YXBwaW5nX2RlbGV0ZShyZW1vdGVNYXAtPm9pZF9tYXBwaW5nLCBsb2NhbF9vaWQpOworCWVsc2UK KwkJcmVtb3RlTWFwLT5yZWZjb3VudCsrOworCisJZW50cnkgPSBvaWRtYXBwaW5nX2luc2VydChy ZW1vdGVNYXAtPm9pZF9tYXBwaW5nLCBsb2NhbF9vaWQsICZmb3VuZCk7CisJZW50cnktPnJlbW90 ZV9vaWQgPSByZW1vdGVfb2lkOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKHRtcCk7Cit9CisK K3N0YXRpYyBPaWQKK2ZpbmRfcmVtb3RlX29pZChPaWQgbG9jYWxfb2lkKQoreworCU9pZE1hcHBp bmdFbnRyeSAqZW50cnk7CisKKwlBc3NlcnQoT2lkSXNWYWxpZChsb2NhbF9vaWQpKTsKKworCWlm IChyZW1vdGVNYXAgPT0gTlVMTCkKKwkJcmV0dXJuIEludmFsaWRPaWQ7CisKKwllbnRyeSA9IG9p ZG1hcHBpbmdfbG9va3VwKHJlbW90ZU1hcC0+b2lkX21hcHBpbmcsIGxvY2FsX29pZCk7CisKKwly ZXR1cm4gKChlbnRyeSAhPSBOVUxMKSA/IGVudHJ5LT5yZW1vdGVfb2lkIDogSW52YWxpZE9pZCk7 Cit9CisKK3N0YXRpYyB2b2lkCitkZXN0cm95X3JlbW90ZV9tYXAodm9pZCkKK3sKKwlpZiAocmVt b3RlTWFwID09IE5VTEwpCisJCXJldHVybjsKKworCUFzc2VydChyZW1vdGVNYXAtPnJlZmNvdW50 ID4gMCk7CisJcmVtb3RlTWFwLT5yZWZjb3VudC0tOworCisJaWYgKHJlbW90ZU1hcC0+cmVmY291 bnQgPT0gMCkKKwl7CisJCW9pZG1hcHBpbmdfZGVzdHJveShyZW1vdGVNYXAtPm9pZF9tYXBwaW5n KTsKKwkJTWVtb3J5Q29udGV4dERlbGV0ZShyZW1vdGVNYXAtPmhhc2hfY3h0KTsKKwkJcmVtb3Rl TWFwID0gTlVMTDsKKwl9Cit9CisKIC8qCiAgKiBGRFcgY2FsbGJhY2sgcm91dGluZXMKICAqLwpA QCAtNjYwLDYgKzc3Nyw3IEBAIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqKmV4ZWN1dGVfZm9yZWln bl9tb2RpZnkoRVN0YXRlICplc3RhdGUsCiBzdGF0aWMgdm9pZCBwcmVwYXJlX2ZvcmVpZ25fbW9k aWZ5KFBnRmR3TW9kaWZ5U3RhdGUgKmZtc3RhdGUpOwogc3RhdGljIGNvbnN0IGNoYXIgKipjb252 ZXJ0X3ByZXBfc3RtdF9wYXJhbXMoUGdGZHdNb2RpZnlTdGF0ZSAqZm1zdGF0ZSwKIAkJCQkJCQkJ CQkJIEl0ZW1Qb2ludGVyIHR1cGxlaWQsCisJCQkJCQkJCQkJCSBPaWQgdGFibGVvaWQsCiAJCQkJ CQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLAogCQkJCQkJCQkJCQkgaW50IG51bVNsb3Rz KTsKIHN0YXRpYyB2b2lkIHN0b3JlX3JldHVybmluZ19yZXN1bHQoUGdGZHdNb2RpZnlTdGF0ZSAq Zm1zdGF0ZSwKQEAgLTEwMDcsNiArMTEyNSwyMyBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxTaXpl KFBsYW5uZXJJbmZvICpyb290LAogCWZwaW5mby0+aGlkZGVuX3N1YnF1ZXJ5X3JlbHMgPSBOVUxM OwogCS8qIFNldCB0aGUgcmVsYXRpb24gaW5kZXguICovCiAJZnBpbmZvLT5yZWxhdGlvbl9pbmRl eCA9IGJhc2VyZWwtPnJlbGlkOworCWZwaW5mby0+dGFibGVvaWRfcGFyYW0gPSBOVUxMOworCisJ LyoKKwkgKiBJZiB0aGUgdGFibGUgaXMgYW4gVVBEQVRFL0RFTEVURSB0YXJnZXQsIHRoZSB0YWJs ZSdzIHJlbHRhcmdldCB3b3VsZAorCSAqIGhhdmUgY29udGFpbmVkIGEgUGFyYW0gcmVwcmVzZW50 aW5nIHRoZSByZW1vdGUgdGFibGUgT0lEIG9mIHRoZSB0YXJnZXQ7CisJICogZ2V0IHRoZSBQYXJh bSBhbmQgc2F2ZSBhIGNvcHkgb2YgaXQgaW4gZnBpbmZvIGZvciB1c2UgbGF0ZXIuCisJICovCisJ Zm9yZWFjaChsYywgYmFzZXJlbC0+cmVsdGFyZ2V0LT5leHBycykKKwl7CisJCVBhcmFtCSAgICpw YXJhbSA9IChQYXJhbSAqKSBsZmlyc3QobGMpOworCQlpZiAoSXNBKHBhcmFtLCBQYXJhbSkpCisJ CXsKKwkJCUFzc2VydChJU19GT1JFSUdOX1BBUkFNKHJvb3QsIHBhcmFtKSk7CisJCQlmcGluZm8t PnRhYmxlb2lkX3BhcmFtID0gKFBhcmFtICopIGNvcHlPYmplY3QocGFyYW0pOworCQkJYnJlYWs7 CisJCX0KKwl9CiB9CiAKIC8qCkBAIC0xNDY4LDYgKzE2MDMsNyBAQCBwb3N0Z3Jlc0dldEZvcmVp Z25QbGFuKFBsYW5uZXJJbmZvICpyb290LAogCWJvb2wJCWhhc19maW5hbF9zb3J0ID0gZmFsc2U7 CiAJYm9vbAkJaGFzX2xpbWl0ID0gZmFsc2U7CiAJTGlzdENlbGwgICAqbGM7CisJaW50CQkJdGFi bGVvaWRfcGFyYW1faWQgPSAtMTsKIAogCS8qCiAJICogR2V0IEZEVyBwcml2YXRlIGRhdGEgY3Jl YXRlZCBieSBwb3N0Z3Jlc0dldEZvcmVpZ25VcHBlclBhdGhzKCksIGlmIGFueS4KQEAgLTE2MzIs MTIgKzE3NjgsMTYgQEAgcG9zdGdyZXNHZXRGb3JlaWduUGxhbihQbGFubmVySW5mbyAqcm9vdCwK IAkvKiBSZW1lbWJlciByZW1vdGVfZXhwcnMgZm9yIHBvc3NpYmxlIHVzZSBieSBwb3N0Z3Jlc1Bs YW5EaXJlY3RNb2RpZnkgKi8KIAlmcGluZm8tPmZpbmFsX3JlbW90ZV9leHBycyA9IHJlbW90ZV9l eHByczsKIAorCWlmIChmcGluZm8tPnRhYmxlb2lkX3BhcmFtKQorCQl0YWJsZW9pZF9wYXJhbV9p ZCA9IGZwaW5mby0+dGFibGVvaWRfcGFyYW0tPnBhcmFtaWQ7CisKIAkvKgogCSAqIEJ1aWxkIHRo ZSBmZHdfcHJpdmF0ZSBsaXN0IHRoYXQgd2lsbCBiZSBhdmFpbGFibGUgdG8gdGhlIGV4ZWN1dG9y LgogCSAqIEl0ZW1zIGluIHRoZSBsaXN0IG11c3QgbWF0Y2ggb3JkZXIgaW4gZW51bSBGZHdTY2Fu UHJpdmF0ZUluZGV4LgogCSAqLwotCWZkd19wcml2YXRlID0gbGlzdF9tYWtlMyhtYWtlU3RyaW5n KHNxbC5kYXRhKSwKKwlmZHdfcHJpdmF0ZSA9IGxpc3RfbWFrZTQobWFrZVN0cmluZyhzcWwuZGF0 YSksCiAJCQkJCQkJIHJldHJpZXZlZF9hdHRycywKKwkJCQkJCQkgbWFrZUludGVnZXIodGFibGVv aWRfcGFyYW1faWQpLAogCQkJCQkJCSBtYWtlSW50ZWdlcihmcGluZm8tPmZldGNoX3NpemUpKTsK IAlpZiAoSVNfSk9JTl9SRUwoZm9yZWlnbnJlbCkgfHwgSVNfVVBQRVJfUkVMKGZvcmVpZ25yZWwp KQogCQlmZHdfcHJpdmF0ZSA9IGxhcHBlbmQoZmR3X3ByaXZhdGUsCkBAIC0xNzcwLDYgKzE5MTAs OCBAQCBwb3N0Z3Jlc0JlZ2luRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSwgaW50 IGVmbGFncykKIAkJCQkJCQkJCSBGZHdTY2FuUHJpdmF0ZVNlbGVjdFNxbCkpOwogCWZzc3RhdGUt PnJldHJpZXZlZF9hdHRycyA9IChMaXN0ICopIGxpc3RfbnRoKGZzcGxhbi0+ZmR3X3ByaXZhdGUs CiAJCQkJCQkJCQkJCQkgRmR3U2NhblByaXZhdGVSZXRyaWV2ZWRBdHRycyk7CisJZnNzdGF0ZS0+ dGFibGVvaWRfcGFyYW1faWQgPSBpbnRWYWwobGlzdF9udGgoZnNwbGFuLT5mZHdfcHJpdmF0ZSwK KwkJCQkJCQkJCQlGZHdTY2FuUHJpdmF0ZVRhYmxlT2lkUGFyYW1JZCkpOwogCWZzc3RhdGUtPmZl dGNoX3NpemUgPSBpbnRWYWwobGlzdF9udGgoZnNwbGFuLT5mZHdfcHJpdmF0ZSwKIAkJCQkJCQkJ CQkgIEZkd1NjYW5Qcml2YXRlRmV0Y2hTaXplKSk7CiAKQEAgLTE3ODksMTEgKzE5MzEsMTMgQEAg cG9zdGdyZXNCZWdpbkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUsIGludCBlZmxh Z3MpCiAJewogCQlmc3N0YXRlLT5yZWwgPSBub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb247CiAJ CWZzc3RhdGUtPnR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKGZzc3RhdGUtPnJlbCk7CisJCWZz c3RhdGUtPnNldF90YWJsZW9pZF9wYXJhbSA9IChmc3N0YXRlLT50YWJsZW9pZF9wYXJhbV9pZCA+ PSAwKTsKIAl9CiAJZWxzZQogCXsKIAkJZnNzdGF0ZS0+cmVsID0gTlVMTDsKIAkJZnNzdGF0ZS0+ dHVwZGVzYyA9IGdldF90dXBkZXNjX2Zvcl9qb2luX3NjYW5fdHVwbGVzKG5vZGUpOworCQlmc3N0 YXRlLT5zZXRfdGFibGVvaWRfcGFyYW0gPSBmYWxzZTsKIAl9CiAKIAlmc3N0YXRlLT5hdHRpbm1l dGEgPSBUdXBsZURlc2NHZXRBdHRJbk1ldGFkYXRhKGZzc3RhdGUtPnR1cGRlc2MpOwpAQCAtMTgy NSw2ICsxOTY5LDcgQEAgcG9zdGdyZXNJdGVyYXRlRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0 ZSAqbm9kZSkKIHsKIAlQZ0Zkd1NjYW5TdGF0ZSAqZnNzdGF0ZSA9IChQZ0Zkd1NjYW5TdGF0ZSAq KSBub2RlLT5mZHdfc3RhdGU7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3QgPSBub2RlLT5zcy5zc19T Y2FuVHVwbGVTbG90OworCUhlYXBUdXBsZQkJdHVwbGU7CiAKIAkvKgogCSAqIEluIHN5bmMgbW9k ZSwgaWYgdGhpcyBpcyB0aGUgZmlyc3QgY2FsbCBhZnRlciBCZWdpbiBvciBSZVNjYW4sIHdlIG5l ZWQKQEAgLTE4NTEsMTIgKzE5OTYsMjMgQEAgcG9zdGdyZXNJdGVyYXRlRm9yZWlnblNjYW4oRm9y ZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAkJCXJldHVybiBFeGVjQ2xlYXJUdXBsZShzbG90KTsKIAl9 CiAKKwl0dXBsZSA9IGZzc3RhdGUtPnR1cGxlc1tmc3N0YXRlLT5uZXh0X3R1cGxlKytdOworCisJ aWYgKGZzc3RhdGUtPnNldF90YWJsZW9pZF9wYXJhbSkKKwl7CisJCUV4cHJDb250ZXh0ICplY29u dGV4dCA9IG5vZGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OworCQlQYXJhbUV4ZWNEYXRhICpwcm0g PSAmKGVjb250ZXh0LT5lY3h0X3BhcmFtX2V4ZWNfdmFsc1tmc3N0YXRlLT50YWJsZW9pZF9wYXJh bV9pZF0pOworCisJCXBybS0+ZXhlY1BsYW4gPSBOVUxMOworCQlwcm0tPnZhbHVlID0gT2JqZWN0 SWRHZXREYXR1bSh0dXBsZS0+dF90YWJsZU9pZCk7CisJCXBybS0+aXNudWxsID0gZmFsc2U7CisK KwkJaW5zZXJ0X29pZF9wYWlyKFJlbGF0aW9uR2V0UmVsaWQoZnNzdGF0ZS0+cmVsKSwgdHVwbGUt PnRfdGFibGVPaWQpOworCX0KIAkvKgogCSAqIFJldHVybiB0aGUgbmV4dCB0dXBsZS4KIAkgKi8K LQlFeGVjU3RvcmVIZWFwVHVwbGUoZnNzdGF0ZS0+dHVwbGVzW2Zzc3RhdGUtPm5leHRfdHVwbGUr K10sCi0JCQkJCSAgIHNsb3QsCi0JCQkJCSAgIGZhbHNlKTsKKwlFeGVjU3RvcmVIZWFwVHVwbGUo dHVwbGUsIHNsb3QsIGZhbHNlKTsKIAogCXJldHVybiBzbG90OwogfQpAQCAtMTk3MSw2ICsyMTI3 LDkgQEAgcG9zdGdyZXNBZGRGb3JlaWduVXBkYXRlVGFyZ2V0cyhQbGFubmVySW5mbyAqcm9vdCwK IAkJCQkJCQkJUmVsYXRpb24gdGFyZ2V0X3JlbGF0aW9uKQogewogCVZhcgkJICAgKnZhcjsKKwlQ YXJhbQkgICAqcGFyYW07CisJY29uc3QgY2hhciAqYXR0cm5hbWU7CisJVGFyZ2V0RW50cnkgKnRs ZTsKIAogCS8qCiAJICogSW4gcG9zdGdyZXNfZmR3LCB3aGF0IHdlIG5lZWQgaXMgdGhlIGN0aWQs IHNhbWUgYXMgZm9yIGEgcmVndWxhciB0YWJsZS4KQEAgLTE5ODYsNiArMjE0NSwzOCBAQCBwb3N0 Z3Jlc0FkZEZvcmVpZ25VcGRhdGVUYXJnZXRzKFBsYW5uZXJJbmZvICpyb290LAogCiAJLyogUmVn aXN0ZXIgaXQgYXMgYSByb3ctaWRlbnRpdHkgY29sdW1uIG5lZWRlZCBieSB0aGlzIHRhcmdldCBy ZWwgKi8KIAlhZGRfcm93X2lkZW50aXR5X3Zhcihyb290LCB2YXIsIHJ0aW5kZXgsICJjdGlkIik7 CisKKwkvKiBNYWtlIGEgVmFyIHJlcHJlc2VudGluZyB0aGUgZGVzaXJlZCB2YWx1ZSAqLworCXZh ciA9IG1ha2VWYXIocnRpbmRleCwKKwkJVGFibGVPaWRBdHRyaWJ1dGVOdW1iZXIsCisJCU9JRE9J RCwKKwkJLTEsCisJCUludmFsaWRPaWQsCisJCTApOworCS8qIFJlZ2lzdGVyIGl0IGFzIGEgcm93 LWlkZW50aXR5IGNvbHVtbiBuZWVkZWQgYnkgdGhpcyB0YXJnZXQgcmVsICovCisJYWRkX3Jvd19p ZGVudGl0eV92YXIocm9vdCwgdmFyLCBydGluZGV4LCAicmVtb3RlX3RhYmxlb2lkIik7CisKKwkv KiBNYWtlIGEgUGFyYW0gcmVwcmVzZW50aW5nIHRoZSB0YWJsZW9pZCB2YWx1ZSAqLworCXBhcmFt ID0gbWFrZU5vZGUoUGFyYW0pOworCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9FWEVDOworCXBh cmFtLT5wYXJhbXR5cGUgPSBPSURPSUQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gLTE7CisJcGFy YW0tPnBhcmFtY29sbGlkID0gSW52YWxpZE9pZDsKKwlwYXJhbS0+bG9jYXRpb24gPSAtMTsKKwkv KiBwYXJhbWlkIHdpbGwgYmUgZmlsbGVkIGluIGJ5IGZpeF9mb3JlaWduX3BhcmFtcyAqLworCXBh cmFtLT5wYXJhbWlkID0gLTE7CisJcGFyYW0tPnRhcmdldF9ydGUgPSBydGluZGV4OworCisJLyog V3JhcCBpdCBpbiBhIHJlc2p1bmsgVExFIHdpdGggdGhlIHJpZ2h0IG5hbWUgLi4uICovCisJYXR0 cm5hbWUgPSAicmVtb3RlX3RhYmxlb2lkIjsKKworCXRsZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhw ciAqKSBwYXJhbSwKKwkJCQkJCSAgbGlzdF9sZW5ndGgocm9vdC0+cHJvY2Vzc2VkX3RsaXN0KSAr IDEsCisJCQkJCQkgIHBzdHJkdXAoYXR0cm5hbWUpLAorCQkJCQkJICB0cnVlKTsKKworCS8qIC4u LiBhbmQgYWRkIGl0IHRvIHRoZSBxdWVyeSdzIHRhcmdldGxpc3QgKi8KKwlyb290LT5wcm9jZXNz ZWRfdGxpc3QgPSBsYXBwZW5kKHJvb3QtPnByb2Nlc3NlZF90bGlzdCwgdGxlKTsKIH0KIAogLyoK QEAgLTIzNDgsNiArMjUzOSw3IEBAIHBvc3RncmVzRXhlY0ZvcmVpZ25EZWxldGUoRVN0YXRlICpl c3RhdGUsCiAJcnNsb3QgPSBleGVjdXRlX2ZvcmVpZ25fbW9kaWZ5KGVzdGF0ZSwgcmVzdWx0UmVs SW5mbywgQ01EX0RFTEVURSwKIAkJCQkJCQkJICAgJnNsb3QsICZwbGFuU2xvdCwgJm51bVNsb3Rz KTsKIAorCWRlc3Ryb3lfcmVtb3RlX21hcCgpOwogCXJldHVybiByc2xvdCA/IHJzbG90WzBdIDog TlVMTDsKIH0KIApAQCAtNDIzMyw3ICs0NDI1LDcgQEAgY3JlYXRlX2ZvcmVpZ25fbW9kaWZ5KEVT dGF0ZSAqZXN0YXRlLAogCQlmbXN0YXRlLT5hdHRpbm1ldGEgPSBUdXBsZURlc2NHZXRBdHRJbk1l dGFkYXRhKHR1cGRlc2MpOwogCiAJLyogUHJlcGFyZSBmb3Igb3V0cHV0IGNvbnZlcnNpb24gb2Yg cGFyYW1ldGVycyB1c2VkIGluIHByZXBhcmVkIHN0bXQuICovCi0Jbl9wYXJhbXMgPSBsaXN0X2xl bmd0aChmbXN0YXRlLT50YXJnZXRfYXR0cnMpICsgMTsKKwluX3BhcmFtcyA9IGxpc3RfbGVuZ3Ro KGZtc3RhdGUtPnRhcmdldF9hdHRycykgKyAyOwogCWZtc3RhdGUtPnBfZmxpbmZvID0gcGFsbG9j MF9hcnJheShGbWdySW5mbywgbl9wYXJhbXMpOwogCWZtc3RhdGUtPnBfbnVtcyA9IDA7CiAKQEAg LTQyNTEsNiArNDQ0MywyMCBAQCBjcmVhdGVfZm9yZWlnbl9tb2RpZnkoRVN0YXRlICplc3RhdGUs CiAJCWdldFR5cGVPdXRwdXRJbmZvKFRJRE9JRCwgJnR5cGVmbm9pZCwgJmlzdmFybGVuYSk7CiAJ CWZtZ3JfaW5mbyh0eXBlZm5vaWQsICZmbXN0YXRlLT5wX2ZsaW5mb1tmbXN0YXRlLT5wX251bXNd KTsKIAkJZm1zdGF0ZS0+cF9udW1zKys7CisKKwkJLyogRmluZCB0aGUgdGFibGVvaWQgcmVzanVu ayBjb2x1bW4gaW4gdGhlIHN1YnBsYW4ncyByZXN1bHQgKi8KKwkJZm1zdGF0ZS0+dGFibGVvaWRB dHRubyA9IEV4ZWNGaW5kSnVua0F0dHJpYnV0ZUluVGxpc3Qoc3VicGxhbi0+dGFyZ2V0bGlzdCwK KwkJCQkJCQkJCQkJCQkJCSAgInJlbW90ZV90YWJsZW9pZCIpOworCisJCWlmICghQXR0cmlidXRl TnVtYmVySXNWYWxpZChmbXN0YXRlLT50YWJsZW9pZEF0dG5vKSkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5URVJOQUxfRVJST1IpLAorCQkJCQkgZXJybXNnKCJj b3VsZCBub3QgZmluZCBqdW5rIHRhYmxlb2lkIGNvbHVtbiIpKSk7CisKKwkJLyogU2Vjb25kIHRy YW5zbWl0dGFibGUgcGFyYW1ldGVyIHdpbGwgYmUgdGFibGVvaWQgKi8KKwkJZ2V0VHlwZU91dHB1 dEluZm8oT0lET0lELCAmdHlwZWZub2lkLCAmaXN2YXJsZW5hKTsKKwkJZm1ncl9pbmZvKHR5cGVm bm9pZCwgJmZtc3RhdGUtPnBfZmxpbmZvW2Ztc3RhdGUtPnBfbnVtc10pOworCQlmbXN0YXRlLT5w X251bXMrKzsKIAl9CiAKIAlpZiAob3BlcmF0aW9uID09IENNRF9JTlNFUlQgfHwgb3BlcmF0aW9u ID09IENNRF9VUERBVEUpCkBAIC00MzAzLDYgKzQ1MDksNyBAQCBleGVjdXRlX2ZvcmVpZ25fbW9k aWZ5KEVTdGF0ZSAqZXN0YXRlLAogewogCVBnRmR3TW9kaWZ5U3RhdGUgKmZtc3RhdGUgPSAoUGdG ZHdNb2RpZnlTdGF0ZSAqKSByZXN1bHRSZWxJbmZvLT5yaV9GZHdTdGF0ZTsKIAlJdGVtUG9pbnRl ciBjdGlkID0gTlVMTDsKKwlPaWQJCQl0YWJsZW9pZCA9IEludmFsaWRPaWQ7CiAJY29uc3QgY2hh ciAqKnBfdmFsdWVzOwogCVBHcmVzdWx0ICAgKnJlczsKIAlpbnQJCQluX3Jvd3M7CkBAIC00MzQ4 LDcgKzQ1NTUsOSBAQCBleGVjdXRlX2ZvcmVpZ25fbW9kaWZ5KEVTdGF0ZSAqZXN0YXRlLAogCWlm IChvcGVyYXRpb24gPT0gQ01EX1VQREFURSB8fCBvcGVyYXRpb24gPT0gQ01EX0RFTEVURSkKIAl7 CiAJCURhdHVtCQlkYXR1bTsKKwkJRGF0dW0JCWRhdHVtMjsKIAkJYm9vbAkJaXNOdWxsOworCQlP aWQgcmVtb3RlX3RhYmxlb2lkID0gSW52YWxpZE9pZDsKIAogCQlkYXR1bSA9IEV4ZWNHZXRKdW5r QXR0cmlidXRlKHBsYW5TbG90c1swXSwKIAkJCQkJCQkJCSBmbXN0YXRlLT5jdGlkQXR0bm8sCkBA IC00MzU3LDEwICs0NTY2LDI4IEBAIGV4ZWN1dGVfZm9yZWlnbl9tb2RpZnkoRVN0YXRlICplc3Rh dGUsCiAJCWlmIChpc051bGwpCiAJCQllbG9nKEVSUk9SLCAiY3RpZCBpcyBOVUxMIik7CiAJCWN0 aWQgPSAoSXRlbVBvaW50ZXIpIERhdHVtR2V0UG9pbnRlcihkYXR1bSk7CisKKwkJLyogR2V0IHRo ZSB0YWJsZW9pZCB0aGF0IHdhcyBwYXNzZWQgdXAgYXMgYSByZXNqdW5rIGNvbHVtbiAqLworCQlk YXR1bTIgPSBFeGVjR2V0SnVua0F0dHJpYnV0ZShwbGFuU2xvdHNbMF0sCisJCQkJCQkJCQkgIGZt c3RhdGUtPnRhYmxlb2lkQXR0bm8sCisJCQkJCQkJCQkgICZpc051bGwpOworCQkvKiBzaG91bGRu J3QgZXZlciBnZXQgYSBudWxsIHJlc3VsdC4uLiAqLworCQlpZiAoaXNOdWxsKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlRFUk5BTF9FUlJPUiksCisJCQkJCSBl cnJtc2coInRhYmxlb2lkIGlzIE5VTEwiKSkpOworCisJCXRhYmxlb2lkID0gRGF0dW1HZXRPYmpl Y3RJZChkYXR1bTIpOworCisJCS8qIFJlbW90ZSBPSUQgKi8KKwkJcmVtb3RlX3RhYmxlb2lkID0g ZmluZF9yZW1vdGVfb2lkKHRhYmxlb2lkKTsKKworCQlpZihPaWRJc1ZhbGlkKHJlbW90ZV90YWJs ZW9pZCkpCisJCQl0YWJsZW9pZCA9IHJlbW90ZV90YWJsZW9pZDsKIAl9CiAKIAkvKiBDb252ZXJ0 IHBhcmFtZXRlcnMgbmVlZGVkIGJ5IHByZXBhcmVkIHN0YXRlbWVudCB0byB0ZXh0IGZvcm0gKi8K LQlwX3ZhbHVlcyA9IGNvbnZlcnRfcHJlcF9zdG10X3BhcmFtcyhmbXN0YXRlLCBjdGlkLCBzbG90 cywgKm51bVNsb3RzKTsKKwlwX3ZhbHVlcyA9IGNvbnZlcnRfcHJlcF9zdG10X3BhcmFtcyhmbXN0 YXRlLCBjdGlkLCB0YWJsZW9pZCwgc2xvdHMsICpudW1TbG90cyk7CiAKIAkvKgogCSAqIEV4ZWN1 dGUgdGhlIHByZXBhcmVkIHN0YXRlbWVudC4KQEAgLTQ0NjUsNiArNDY5Miw3IEBAIHByZXBhcmVf Zm9yZWlnbl9tb2RpZnkoUGdGZHdNb2RpZnlTdGF0ZSAqZm1zdGF0ZSkKIHN0YXRpYyBjb25zdCBj aGFyICoqCiBjb252ZXJ0X3ByZXBfc3RtdF9wYXJhbXMoUGdGZHdNb2RpZnlTdGF0ZSAqZm1zdGF0 ZSwKIAkJCQkJCSBJdGVtUG9pbnRlciB0dXBsZWlkLAorCQkJCQkJIE9pZCB0YWJsZW9pZCwKIAkJ CQkJCSBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLAogCQkJCQkJIGludCBudW1TbG90cykKIHsKQEAg LTQ0OTEsNiArNDcxOSwxNiBAQCBjb252ZXJ0X3ByZXBfc3RtdF9wYXJhbXMoUGdGZHdNb2RpZnlT dGF0ZSAqZm1zdGF0ZSwKIAkJcGluZGV4Kys7CiAJfQogCisJLyogMm5kIHBhcmFtZXRlciBzaG91 bGQgYmUgdGFibGVvaWQsIGlmIGl0J3MgaW4gdXNlICovCisJaWYgKE9pZElzVmFsaWQodGFibGVv aWQpKQorCXsKKwkJQXNzZXJ0KHR1cGxlaWQgIT0gTlVMTCk7CisJCS8qIGRvbid0IG5lZWQgc2V0 X3RyYW5zbWlzc2lvbl9tb2RlcyBmb3IgT0lEIG91dHB1dCAqLworCQlwX3ZhbHVlc1twaW5kZXhd ID0gT3V0cHV0RnVuY3Rpb25DYWxsKCZmbXN0YXRlLT5wX2ZsaW5mb1twaW5kZXhdLAorCQkJCQkJ CQkJCQkgIE9iamVjdElkR2V0RGF0dW0odGFibGVvaWQpKTsKKwkJcGluZGV4Kys7CisJfQorCiAJ LyogZ2V0IGZvbGxvd2luZyBwYXJhbWV0ZXJzIGZyb20gc2xvdHMgKi8KIAlpZiAoc2xvdHMgIT0g TlVMTCAmJiBmbXN0YXRlLT50YXJnZXRfYXR0cnMgIT0gTklMKQogCXsKQEAgLTQ1MDIsNyArNDc0 MCw3IEBAIGNvbnZlcnRfcHJlcF9zdG10X3BhcmFtcyhQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRl LAogCiAJCWZvciAoaSA9IDA7IGkgPCBudW1TbG90czsgaSsrKQogCQl7Ci0JCQlqID0gKHR1cGxl aWQgIT0gTlVMTCkgPyAxIDogMDsKKwkJCWogPSAodHVwbGVpZCAhPSBOVUxMKSA/IDIgOiAwOwog CQkJZm9yZWFjaChsYywgZm1zdGF0ZS0+dGFyZ2V0X2F0dHJzKQogCQkJewogCQkJCWludAkJCWF0 dG51bSA9IGxmaXJzdF9pbnQobGMpOwpAQCAtNDU2Nyw5ICs0ODA1LDEwIEBAIGZpbmlzaF9mb3Jl aWduX21vZGlmeShQZ0Zkd01vZGlmeVN0YXRlICpmbXN0YXRlKQogewogCUFzc2VydChmbXN0YXRl ICE9IE5VTEwpOwogCisJZGVzdHJveV9yZW1vdGVfbWFwKCk7CisKIAkvKiBJZiB3ZSBjcmVhdGVk IGEgcHJlcGFyZWQgc3RhdGVtZW50LCBkZXN0cm95IGl0ICovCiAJZGVhbGxvY2F0ZV9xdWVyeShm bXN0YXRlKTsKLQogCS8qIFJlbGVhc2UgcmVtb3RlIGNvbm5lY3Rpb24gKi8KIAlSZWxlYXNlQ29u bmVjdGlvbihmbXN0YXRlLT5jb25uKTsKIAlmbXN0YXRlLT5jb25uID0gTlVMTDsKQEAgLTQ2NzUs NyArNDkxNCw4IEBAIGJ1aWxkX3JlbW90ZV9yZXR1cm5pbmcoSW5kZXggcnRpbmRleCwgUmVsYXRp b24gcmVsLCBMaXN0ICpyZXR1cm5pbmdMaXN0KQogCQlpZiAoSXNBKHZhciwgVmFyKSAmJgogCQkJ dmFyLT52YXJubyA9PSBydGluZGV4ICYmCiAJCQl2YXItPnZhcmF0dG5vIDw9IEludmFsaWRBdHRy TnVtYmVyICYmCi0JCQl2YXItPnZhcmF0dG5vICE9IFNlbGZJdGVtUG9pbnRlckF0dHJpYnV0ZU51 bWJlcikKKwkJCXZhci0+dmFyYXR0bm8gIT0gU2VsZkl0ZW1Qb2ludGVyQXR0cmlidXRlTnVtYmVy ICYmCisJCQl2YXItPnZhcmF0dG5vICE9IFRhYmxlT2lkQXR0cmlidXRlTnVtYmVyKQogCQkJY29u dGludWU7CQkJLyogZG9uJ3QgbmVlZCBpdCAqLwogCiAJCWlmICh0bGlzdF9tZW1iZXIoKEV4cHIg KikgdmFyLCB0bGlzdCkpCkBAIC00ODgxLDYgKzUxMjEsMTcgQEAgaW5pdF9yZXR1cm5pbmdfZmls dGVyKFBnRmR3RGlyZWN0TW9kaWZ5U3RhdGUgKmRtc3RhdGUsCiAJCVRhcmdldEVudHJ5ICp0bGUg PSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAkJVmFyCQkgICAqdmFyID0gKFZhciAqKSB0 bGUtPmV4cHI7CiAKKwkJLyoKKwkJICogTm8gbmVlZCB0byBzZXQgdGhlIFBhcmFtIGZvciB0aGUg cmVtb3RlIHRhYmxlIE9JRDsgaWdub3JlIGl0LgorCQkgKi8KKwkJaWYgKElzQSh2YXIsIFBhcmFt KSkKKwkJeworCQkJLyogV2Ugd291bGQgbm90IHJldHJpZXZlIHRoZSByZW1vdGUgdGFibGUgT0lE IGFueW1vcmUuICovCisJCQlBc3NlcnQoIWxpc3RfbWVtYmVyX2ludChkbXN0YXRlLT5yZXRyaWV2 ZWRfYXR0cnMsIGkpKTsKKwkJCWkrKzsKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJQXNzZXJ0KElz QSh2YXIsIFZhcikpOwogCiAJCS8qCkBAIC00ODk5LDYgKzUxNTAsOCBAQCBpbml0X3JldHVybmlu Z19maWx0ZXIoUGdGZHdEaXJlY3RNb2RpZnlTdGF0ZSAqZG1zdGF0ZSwKIAkJCQkgKi8KIAkJCQlp ZiAoYXR0cm5vID09IFNlbGZJdGVtUG9pbnRlckF0dHJpYnV0ZU51bWJlcikKIAkJCQkJZG1zdGF0 ZS0+Y3RpZEF0dG5vID0gaTsKKwkJCQllbHNlIGlmIChhdHRybm8gPT0gVGFibGVPaWRBdHRyaWJ1 dGVOdW1iZXIpCisJCQkJCWRtc3RhdGUtPm9pZEF0dG5vID0gaTsKIAkJCQllbHNlCiAJCQkJCUFz c2VydChmYWxzZSk7CiAJCQkJZG1zdGF0ZS0+aGFzU3lzdGVtQ29scyA9IHRydWU7CkBAIC00OTkw LDEwICs1MjQzLDEzIEBAIGFwcGx5X3JldHVybmluZ19maWx0ZXIoUGdGZHdEaXJlY3RNb2RpZnlT dGF0ZSAqZG1zdGF0ZSwKIAkJLyogY3RpZCAqLwogCQlpZiAoZG1zdGF0ZS0+Y3RpZEF0dG5vKQog CQl7CisJCQlPaWQgdGFibGVvaWQgPSBJbnZhbGlkT2lkOwogCQkJSXRlbVBvaW50ZXIgY3RpZCA9 IE5VTEw7CiAKIAkJCWN0aWQgPSAoSXRlbVBvaW50ZXIpIERhdHVtR2V0UG9pbnRlcihvbGRfdmFs dWVzW2Rtc3RhdGUtPmN0aWRBdHRubyAtIDFdKTsKKwkJCXRhYmxlb2lkID0gRGF0dW1HZXRPYmpl Y3RJZChvbGRfdmFsdWVzW2Rtc3RhdGUtPm9pZEF0dG5vIC0gMV0pOwogCQkJcmVzdWx0VHVwLT50 X3NlbGYgPSAqY3RpZDsKKwkJCXJlc3VsdFR1cC0+dF90YWJsZU9pZCA9IHRhYmxlb2lkOwogCQl9 CiAKIAkJLyoKQEAgLTY5MzcsNiArNzE5MywzOCBAQCBmb3JlaWduX2pvaW5fb2soUGxhbm5lcklu Zm8gKnJvb3QsIFJlbE9wdEluZm8gKmpvaW5yZWwsIEpvaW5UeXBlIGpvaW50eXBlLAogCS8qIE1h cmsgdGhhdCB0aGlzIGpvaW4gY2FuIGJlIHB1c2hlZCBkb3duIHNhZmVseSAqLwogCWZwaW5mby0+ cHVzaGRvd25fc2FmZSA9IHRydWU7CiAKKwkvKgorCSAqIElmIHRoZSBqb2luIHJlbGF0aW9uIGNv bnRhaW5zIGFuIFVQREFURS9ERUxFVEUgdGFyZ2V0LCBlaXRoZXIgb2YgdGhlCisJICogaW5wdXQg cmVsYXRpb25zIHdvdWxkIGhhdmUgc2F2ZWQgdGhlIFBhcmFtIHJlcHJlc2VudGluZyB0aGUgcmVt b3RlCisJICogdGFibGUgT0lEIG9mIHRoZSB0YXJnZXQ7IGdldCB0aGUgUGFyYW0gYW5kIHJlbWVt YmVyIGl0IGluIGZwaW5mbyBmb3IKKwkgKiB1c2UgbGF0ZXIuCisJICovCisJaWYgKChyb290LT5w YXJzZS0+Y29tbWFuZFR5cGUgPT0gQ01EX1VQREFURSB8fAorCQkgcm9vdC0+cGFyc2UtPmNvbW1h bmRUeXBlID09IENNRF9ERUxFVEUpICYmCisJCWJtc19pc19tZW1iZXIocm9vdC0+cGFyc2UtPnJl c3VsdFJlbGF0aW9uLCBqb2lucmVsLT5yZWxpZHMpKQorCXsKKwkJaWYgKGJtc19pc19tZW1iZXIo cm9vdC0+cGFyc2UtPnJlc3VsdFJlbGF0aW9uLAorCQkJCQkJICBvdXRlcnJlbC0+cmVsaWRzKSkK KwkJeworCQkJQXNzZXJ0KGZwaW5mb19vLT50YWJsZW9pZF9wYXJhbSk7CisJCQlmcGluZm8tPnRh Ymxlb2lkX3BhcmFtID0gZnBpbmZvX28tPnRhYmxlb2lkX3BhcmFtOworCQl9CisJCWVsc2UKKwkJ eworCQkJQXNzZXJ0KGJtc19pc19tZW1iZXIocm9vdC0+cGFyc2UtPnJlc3VsdFJlbGF0aW9uLAor CQkJCQkJCQkgaW5uZXJyZWwtPnJlbGlkcykpOworCQkJQXNzZXJ0KGZwaW5mb19pLT50YWJsZW9p ZF9wYXJhbSk7CisJCQlmcGluZm8tPnRhYmxlb2lkX3BhcmFtID0gZnBpbmZvX2ktPnRhYmxlb2lk X3BhcmFtOworCQl9CisJCS8qCisJCSAqIENvcmUgY29kZSBzaG91bGQgaGF2ZSBjb250YWluZWQg dGhlIFBhcmFtIGluIHRoZSBqb2luIHJlbGF0aW9uJ3MKKwkJICogcmVsdGFyZ2V0LgorCQkgKi8K KwkJQXNzZXJ0KGxpc3RfbWVtYmVyKGpvaW5yZWwtPnJlbHRhcmdldC0+ZXhwcnMsIGZwaW5mby0+ dGFibGVvaWRfcGFyYW0pKTsKKwl9CisJZWxzZQorCQlmcGluZm8tPnRhYmxlb2lkX3BhcmFtID0g TlVMTDsKKwogCS8qIEdldCB1c2VyIG1hcHBpbmcgKi8KIAlpZiAoZnBpbmZvLT51c2VfcmVtb3Rl X2VzdGltYXRlKQogCXsKQEAgLTg0NzAsNiArODc1OCw3IEBAIG1ha2VfdHVwbGVfZnJvbV9yZXN1 bHRfcm93KFBHcmVzdWx0ICpyZXMsCiAJRXJyb3JDb250ZXh0Q2FsbGJhY2sgZXJyY2FsbGJhY2s7 CiAJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwogCUxpc3RDZWxsICAgKmxjOworCU9pZCB0YWJs ZW9pZCA9IEludmFsaWRPaWQ7CiAJaW50CQkJajsKIAogCUFzc2VydChyb3cgPCBQUW50dXBsZXMo cmVzKSk7CkBAIC04NTUyLDYgKzg4NDEsMTcgQEAgbWFrZV90dXBsZV9mcm9tX3Jlc3VsdF9yb3co UEdyZXN1bHQgKnJlcywKIAkJCQljdGlkID0gKEl0ZW1Qb2ludGVyKSBEYXR1bUdldFBvaW50ZXIo ZGF0dW0pOwogCQkJfQogCQl9CisJCWVsc2UgaWYgKGkgPT0gVGFibGVPaWRBdHRyaWJ1dGVOdW1i ZXIpCisJCXsKKwkJCS8qIHRhYmxlb2lkICovCisJCQlpZiAodmFsc3RyICE9IE5VTEwpCisJCQl7 CisJCQkJRGF0dW0JCWRhdHVtOworCisJCQkJZGF0dW0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG9p ZGluLCBDU3RyaW5nR2V0RGF0dW0odmFsc3RyKSk7CisJCQkJdGFibGVvaWQgPSBEYXR1bUdldE9i amVjdElkKGRhdHVtKTsKKwkJCX0KKwkJfQogCQllcnJwb3MuY3VyX2F0dG5vID0gMDsKIAogCQlq Kys7CkBAIC04NTgzLDYgKzg4ODMsOCBAQCBtYWtlX3R1cGxlX2Zyb21fcmVzdWx0X3JvdyhQR3Jl c3VsdCAqcmVzLAogCWlmIChjdGlkKQogCQl0dXBsZS0+dF9zZWxmID0gdHVwbGUtPnRfZGF0YS0+ dF9jdGlkID0gKmN0aWQ7CiAKKwl0dXBsZS0+dF90YWJsZU9pZCA9IHRhYmxlb2lkOworCiAJLyoK IAkgKiBTdG9tcCBvbiB0aGUgeG1pbiwgeG1heCwgYW5kIGNtaW4gZmllbGRzIGZyb20gdGhlIHR1 cGxlIGNyZWF0ZWQgYnkKIAkgKiBoZWFwX2Zvcm1fdHVwbGUuICBoZWFwX2Zvcm1fdHVwbGUgYWN0 dWFsbHkgY3JlYXRlcyB0aGUgdHVwbGUgd2l0aApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvcG9zdGdyZXNfZmR3LmggYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcu aAppbmRleCBhMmJiMWZmMzUyYy4uMzc2YzU1ZDRkZDAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9z dGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5oCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3Rn cmVzX2Zkdy5oCkBAIC0xMjksNiArMTI5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdGZHdSZWxhdGlv bkluZm8KIAkgKiByZXByZXNlbnRpbmcgdGhlIHJlbGF0aW9uLgogCSAqLwogCWludAkJCXJlbGF0 aW9uX2luZGV4OworCisJLyogUEFSQU1fRVhFQyBQYXJhbSByZXByZXNlbnRpbmcgdGhlIHJlbW90 ZSB0YWJsZSBPSUQgb2YgYSB0YXJnZXQgcmVsICovCisJUGFyYW0JICAgKnRhYmxlb2lkX3BhcmFt OwogfSBQZ0Zkd1JlbGF0aW9uSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bv c3RncmVzX2Zkdy5zcWwKaW5kZXggZTg2OGRhMDBhY2UuLjdjYjhlZDdjMzM3IDEwMDY0NAotLS0g YS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmli L3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbApAQCAtNDcwMiw2ICs0NzAyLDUwIEBA IFNFTEVDVCBzZXJ2ZXJfbmFtZSwKIFxzZXQgVkVSQk9TSVRZIGRlZmF1bHQKIFJFU0VUIGRlYnVn X2Rpc2NhcmRfY2FjaGVzOwogCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBjaGVjayB3aGV0aGVyIGZkdyBj cmVhdGVkIGZvciBwYXJ0aXRpb25lZCB0YWJsZSB3aWxsIGRlbGV0ZSB0dXBsZXMgb25seSBmcm9t CistLSBkZXNpcmVkIHBhcnRpdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitDUkVBVEUgVEFCTEUgbWVh c3VyZW1lbnQgKAorICAgICAgIGNpdHlfaWQgICAgICAgICBpbnQgbm90IG51bGwsCisgICAgICAg bG9nZGF0ZSAgICAgICAgIGRhdGUgbm90IG51bGwsCisgICAgICAgcGVha3RlbXAgICAgICAgIGlu dCwKKyAgICAgICB1bml0c2FsZXMgICAgICAgaW50CispIFBBUlRJVElPTiBCWSBSQU5HRSAobG9n ZGF0ZSk7CisKK0NSRUFURSBUQUJMRSBtZWFzdXJlbWVudF95MjAwNm0wMiBQQVJUSVRJT04gT0Yg bWVhc3VyZW1lbnQKKyAgICAgICBGT1IgVkFMVUVTIEZST00gKCcyMDA2LTAyLTAxJykgVE8gKCcy MDA2LTAzLTAxJyk7CisKK0NSRUFURSBUQUJMRSBtZWFzdXJlbWVudF95MjAwNm0wMyBQQVJUSVRJ T04gT0YgbWVhc3VyZW1lbnQKKyAgICAgICBGT1IgVkFMVUVTIEZST00gKCcyMDA2LTAzLTAxJykg VE8gKCcyMDA2LTA0LTAxJyk7CisKK0NSRUFURSBUQUJMRSBtZWFzdXJlbWVudF95MjAwNm0wNCBQ QVJUSVRJT04gT0YgbWVhc3VyZW1lbnQKKyAgICAgICBGT1IgVkFMVUVTIEZST00gKCcyMDA2LTA0 LTAxJykgVE8gKCcyMDA2LTA1LTAxJyk7CisKK0lOU0VSVCBJTlRPIG1lYXN1cmVtZW50IFZBTFVF UyAoMSwnMjAwNi0wMi0wMScsMSwxKTsKK0lOU0VSVCBJTlRPIG1lYXN1cmVtZW50IFZBTFVFUyAo MiwnMjAwNi0wMy0wMScsMSwxKTsKK0lOU0VSVCBJTlRPIG1lYXN1cmVtZW50IFZBTFVFUyAoMywn MjAwNi0wNC0wMScsMSwxKTsKKworY3JlYXRlIGZvcmVpZ24gdGFibGUgbWVhc3VyZW1lbnRfZmR3 ICgKKyAgICAgICBjaXR5X2lkIGludCBvcHRpb25zIChjb2x1bW5fbmFtZSAnY2l0eV9pZCcpIG5v dCBudWxsLAorICAgICAgIGxvZ2RhdGUgZGF0ZSBvcHRpb25zIChjb2x1bW5fbmFtZSAnbG9nZGF0 ZScpIG5vdCBudWxsLAorICAgICAgIHBlYWt0ZW1wIHRleHQgb3B0aW9ucyAoY29sdW1uX25hbWUg J3BlYWt0ZW1wJyksCisgICAgICAgdW5pdHNhbGVzIGludGVnZXIgb3B0aW9ucyAoY29sdW1uX25h bWUgJ3VuaXRzYWxlcycpCispIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0YWJsZV9uYW1lICdt ZWFzdXJlbWVudCcpOworCitERUxFVEUgRlJPTSBtZWFzdXJlbWVudF9mZHcKK1VTSU5HICgKKyAg ICAgICBTRUxFQ1QgdDEuY2l0eV9pZCBzdWJfY2l0eV9pZAorICAgICAgIEZST00gbWVhc3VyZW1l bnRfZmR3IHQxCisgICAgICAgV0hFUkUgdDEuY2l0eV9pZD0xCisgICAgICAgTElNSVQgMTAwMAor KSBzdWIKK1dIRVJFIG1lYXN1cmVtZW50X2Zkdy5jaXR5X2lkID0gc3ViLnN1Yl9jaXR5X2lkCitS RVRVUk5JTkcgY2l0eV9pZCwgbG9nZGF0ZSwgcGVha3RlbXAsIHVuaXRzYWxlczsKKworU0VMRUNU ICogRlJPTSBtZWFzdXJlbWVudF9mZHc7CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgY2xlYW51 cCBvZiBmYWlsZWQgY29ubmVjdGlvbnMgb24gYWJvcnQKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0gCjIuNDMu MAoK --00000000000032a1be06562e198b--