Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uwNso-0018oh-9T for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Sep 2025 16:41:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uwNsl-002LDY-6V for pgsql-hackers@arkaria.postgresql.org; Wed, 10 Sep 2025 16:41:19 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uwNsk-002LDP-LZ for pgsql-hackers@lists.postgresql.org; Wed, 10 Sep 2025 16:41:19 +0000 Received: from mail-pf1-x441.google.com ([2607:f8b0:4864:20::441]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uwNsd-0002Ny-2c for pgsql-hackers@postgresql.org; Wed, 10 Sep 2025 16:41:18 +0000 Received: by mail-pf1-x441.google.com with SMTP id d2e1a72fcca58-772627dd50aso981708b3a.1 for ; Wed, 10 Sep 2025 09:41:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757522471; x=1758127271; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=mOLkkUj1JtqdWh78EHaWG6jaf8Bb4r/nY0gSpLpysXo=; b=l3PtskQTwgHZUBmaXiCYHILOVQIHxIdjgYCGbPujU+Q/ppSKRhcwtGjT/wdKzuFQrM rUrQSPPv9B+8hRA2Br8i3bhdq6Lx66qY8Yy4ttMA0xtVhjMhfoTYJpFPvgzwpgIHh13z Ld93luxlBe0L1himWiLEbrwE91P4PoyJLshz3nQRdDH/sMC+XyuO2fBB0t55MHLxqje6 BeC3j+SbAHvmGmboXknGVEBse7mUh9I7bt+fIIoj/8ZDwgfJNn0AI/nOWeOn/j8YACnX hHGgntvyBAwPcN8CT3nwsBOumXapkz1ZCAliX3ZqnrweaI4Gxn4JJyKZK3NMGLAEOzB6 NQIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757522471; x=1758127271; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mOLkkUj1JtqdWh78EHaWG6jaf8Bb4r/nY0gSpLpysXo=; b=DctIeXVmuaaDngsmqcC46pybv6Xc0J9NU4W4U9pzWPYTrEodSnSvGcIfvmMehdKURo wyHF73DCp5ZHZ2cHif2bb0tBuOHwTwwsUZei/vCJn+/jMqCVBJ87rJh/p+K29B6IstT+ ma0wN4tAsEW+PKFfRvZL+n2X1UR3xWEPfN5+1C8efXbnnb1SkaW4yTZQhv3d2kPUNEDn mvtBFQfM6jw5KUvQkDiOrJZaftA7qSE7/iyw+tTBjmE1D7h19TcqURl0WAJTsVbgte5B XgSYm2jYy53ePKzj1a41mk/gikH7w4CFI2ZtDLafm652XMs2ODU3tkUERu8KTpMa8n7+ 66yA== X-Forwarded-Encrypted: i=1; AJvYcCVwYA5jS+s4dwwEgBHUTF5UmPVIzzQ55RdCojMGUZeVhVxFsWjCalwqApBFhhIKGzR8HYfaA1KUCvWmBRiD@postgresql.org X-Gm-Message-State: AOJu0YzO8Vu4GvWSDc+A4VpLPjmqT6jI9coAzZjadjXHpSOxRHkzoyUV tahCt7ooAFLp/qjQjGJ+DjGS4sxF90Ls5dnUGW8eTWOhZh+wK4lW3RTfQ/AMfUtBtb92SVeATY9 dSmA5kiT1PBZU0APexawDFs+Wf+WNLBQ= X-Gm-Gg: ASbGncuEpdNPj/nAr0+B9IHJZqnWAznMs5HN+ZQ7nUgEGKIT1gN22qI4VxB1U7sIKEv kaTxaFjKyIENAHeIF3upA9YUHEJlFQWQ5Rj28Q2XBLxAO/X6qsFFPX602pAz4eZy78BOkMLp1nD r9JXz54rYZkIsLvqs7tR25rOX2O5hRMvOjPFvYIJqFsKp8GmAHLtRUPHNMnR2ex+LQeWR+tu0EO iCz/5bW+MFKm/FDxHk= X-Google-Smtp-Source: AGHT+IFPpDzeQ+1RcrI5Y0OABRi03xe+X5gf1XRTXyh79Gr6WuEPXc2aCDcK0uS0SmHWtnWohMnD4ziStSuK65U3KVs= X-Received: by 2002:a05:6a20:7d86:b0:243:eaa4:b21a with SMTP id adf61e73a8af0-25d0a7d107fmr281360637.27.1757522470734; Wed, 10 Sep 2025 09:41:10 -0700 (PDT) MIME-Version: 1.0 References: <21fa36b4-6d56-4556-b524-9e3955b922c8@eisentraut.org> <290418A2-3A9B-4304-AAAD-4A40CFF1CB93@gmail.com> <98C6F445-773B-4C82-8198-7F5CD56D5252@gmail.com> <0D687585-0C6D-4B6E-B0B7-BDE084699CF3@gmail.com> In-Reply-To: From: Alexandra Wang Date: Wed, 10 Sep 2025 09:40:33 -0700 X-Gm-Features: Ac12FXw6jyN92dTBIOGjydc3pK4kYkVFlPtqqKSft_eEovEhwPrb6mF_1eOxnvw Message-ID: Subject: Re: SQL:2023 JSON simplified accessor support To: Chao Li Cc: jian he , Nikita Malakhov , Vik Fearing , Mark Dilger , Matheus Alcantara , Peter Eisentraut , Andrew Dunstan , Nikita Glukhov , PostgreSQL Hackers , "David E. Wheeler" Content-Type: multipart/mixed; boundary="0000000000008ea202063e751633" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008ea202063e751633 Content-Type: multipart/alternative; boundary="0000000000008ea201063e751631" --0000000000008ea201063e751631 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Chao, On Tue, Sep 9, 2025 at 8:52=E2=80=AFPM Chao Li wro= te: > > > > > > > > > > > A few more comment for v16. > > 1 - 0002 > ``` > --- a/contrib/hstore/hstore_subs.c > +++ b/contrib/hstore/hstore_subs.c > > - if (isSlice || list_length(*indirection) !=3D 1) > + if (ai->is_slice || list_length(*indirection) !=3D 1) > ``` > > We should put list_length() check before ai->is_slace. Because when > indirection length is greater than 1, it take a single check; other it ma= y > need to check the both conditions. > > 2 - 0002 - also in hstore_subs.c > ``` > *indirection =3D NIL; > ``` > > We should do =E2=80=9Clist_delete_first_n(indirection, 1)=E2=80=9D. > > 3 - 0003 > ``` > +Datum > +jsonPathFromParseResult(JsonPathParseResult *jsonpath, int estimated_len= , > + struct Node *escontext) > +{ > ``` > > `jsonpath` is not changed in this function, so it should be defined as a > const: =E2=80=9Cconst JsonPathParseResult *jsonpath=E2=80=9D. > > 4 - 0004 > ``` > + Oid targets[2] =3D {INT4OID, TEXTOID}; > + > + /* > + * Jsonb can handle multiple subscript types, but cases when a > + * subscript could be coerced to multiple target types must be > + * avoided, similar to overloaded functions. It could be possibly > + * extend with jsonpath in the future. > + */ > + for (int i =3D 0; i < 2; i++) > ``` > > This is a nit optimization. We can do: > > Oid targets[] =3D {INT4OID, TEXTOID}; > For (int I =3D 0; I < sizeof(targets) / sizeof(targets[0]); I ++) > > This way lets the compiler to decide length of =E2=80=9Ctargets=E2=80=9D.= So that avoids > hard code =E2=80=9C2=E2=80=9D in =E2=80=9Cfor=E2=80=9D. If we need to add= more elements to =E2=80=9Ctargets=E2=80=9D, we > can just add it without updating =E2=80=9Cfor=E2=80=9D. > Thanks for the feedback! Here=E2=80=99s v17. I=E2=80=99ve addressed 1 - 3 e= xactly as you suggested. For 4, I made the targets array const and used the lengthof macro to determine the array length. Best, Alex --0000000000008ea201063e751631 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Chao,

On Tue, Sep= 9, 2025 at 8:52=E2=80=AFPM Chao Li <li.evan.chao@gmail.com> wrote:

<v16-0007-Implement-j= sonb-wildcard-member-accessor.patch><v16-0001-Allow-transformation-of-only-a-sublist-o= f-subscr.patch><v16-0004-Extract-coerce_jsonpath_subscript.patch><v16-0006-Implement-Jsonb-subscr= ipting-with-slicing.patch><v16-0005-Implement-read-only-dot-notation-for-jsonb.patch&g= t;<v16-0003-Ex= port-jsonPathFromParseResult.patch><v16-0002-Allow-Generic-Type-Subscripting-to-Accept= -Dot-No.patch>

A few more c= omment for v16.

1 - 0002
```
<= div>--- a/contrib/hstore/hstore_subs.c
+++ b/contrib/hstore/hstor= e_subs.c

- if (isSlice || list_length(*indirection) !=3D 1)
= + if (ai->is_slice || list_l= ength(*indirection) !=3D 1)
```

We= should put list_length() check before ai->is_slace. Because when indire= ction length is greater than 1, it take a single check; other it may need t= o check the both conditions.

2 - 0002 - also in hs= tore_subs.c=C2=A0
```
=C2=A0 =C2=A0*indirection =3D NIL;
`= ``

We should do =E2=80=9Clist_delete_first_n(indir= ection, 1)=E2=80=9D.

3 - 0003
```
<= div>
+Datum
+jsonPathFromParseResult(JsonPathParseResult *jso= npath, int estimated_len,
+ = struct Node *escontext)
+{
```
<= div>
`jsonpath` is not changed in this function, so it should= be defined as a const: =E2=80=9Cconst JsonPathParseResult *jsonpath=E2=80= =9D.=C2=A0

4 - 0004
```
+= Oid targets[2] =3D {INT4OID, TEXTOID};
+
+ /*
+ * Jsonb can handle multiple subscript t= ypes, but cases when a
+ * subscript could be coerced to multiple target types must be
+ * avoided, similar to ov= erloaded functions. It could be possibly
+ * extend with jsonpath in the future.
+ */
+ for (int i =3D 0; i < 2; i++)
<= div>```

This is a nit optimization. We can do:

Oid targets[] =3D {INT4OID, TEXTOID};
For (= int I =3D 0; I < sizeof(targets) / sizeof(targets[0]); I ++)=C2=A0
=

This way lets the compiler to decide length of =E2=80= =9Ctargets=E2=80=9D. So that avoids hard code =E2=80=9C2=E2=80=9D in =E2=80= =9Cfor=E2=80=9D. If we need to add more elements to =E2=80=9Ctargets=E2=80= =9D, we can just add it without updating =E2=80=9Cfor=E2=80=9D.
=

Thanks for the feedback! Here=E2=80=99s v1= 7. I=E2=80=99ve addressed 1 - 3 exactly as
you suggested. For 4, I made = the targets array const and used the
lengthof macro to determine the arr= ay length.

Best,
Alex
--0000000000008ea201063e751631-- --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Disposition: attachment; filename="v17-0007-Implement-jsonb-wildcard-member-accessor.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge7a1 RnJvbSBlZjAyOTJjODQ1MTE0YmYzMDEzOWY4YzEzOGYzZjgzZWJlMmQ3NjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE3IDcvN10gSW1wbGVtZW50IGpzb25iIHdpbGRjYXJkIG1lbWJlciBhY2Nlc3NvcgoKVGhpcyBj b21taXQgYWRkcyBzdXBwb3J0IGZvciB3aWxkY2FyZCBtZW1iZXIgYWNjZXNzIGluIGpzb25iLCBh cwpzcGVjaWZpZWQgYnkgdGhlIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggaW4gU1FM OjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdtYWls LmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5vc3NA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFuZS5u ZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2VkYi5j b20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmlld2Vk LWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogUGV0 ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBKZWx0ZSBG ZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgpUZXN0ZWQtYnk6IEplbHRlIEZlbm5lbWEt TmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+Ci0tLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgICAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCAgMzkgKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0 LmMgICAgICAgICAgICAgfCAgNjcgKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJz dWJzLmMgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYyAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg ICAgICAgICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgg ICAgICAgICAgICAgICB8ICAgMyArCiAuLi4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LmMgICAgICAgICAgfCAgMTggKy0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyICAgICB8ICAyMyArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQgICAgIHwgICAyICsKIHNyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5w Z2MgICAgICB8ICAgNSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgICAg ICAgICAgIHwgMjIyICsrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNv bmIuc3FsICAgICAgICAgICAgICAgIHwgIDQyICsrKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDQwNiBp bnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGQx YmQ1NzVkOWJkLi41ZjMwMzhhMWMyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTI5MSw2ICsy OTEsOSBAQCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQkJICovCiAJCQl0eXBlID0gVEVY VE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU3RhcjoKKwkJCXR5cGUgPSBVTktOT1dOT0lEOwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLCAoaW50KSBub2RlVGFnKGV4cHIpKTsKIAkJCXR5cGUgPSBJbnZhbGlkT2lkOwkv KiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC0xMTU2LDYgKzExNTksOSBAQCBleHByU2V0Q29s bGF0aW9uKE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9GaWVsZEFjY2Vzc29y RXhwcjoKIAkJCSgoRmllbGRBY2Nlc3NvckV4cHIgKikgZXhwciktPmZhZWNvbGxpZCA9IGNvbGxh dGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfU3RhcjoKKwkJCUFzc2VydCghT2lkSXNWYWxpZChj b2xsYXRpb24pKTsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJKChT dWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFr OwpAQCAtMjE0MCw2ICsyMTQ2LDcgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUg Km5vZGUsCiAJCWNhc2UgVF9DVEVTZWFyY2hDbGF1c2U6CiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRG dW5jOgogCQljYXNlIFRfRmllbGRBY2Nlc3NvckV4cHI6CisJCWNhc2UgVF9TdGFyOgogCQkJLyog cHJpbWl0aXZlIG5vZGUgdHlwZXMgd2l0aCBubyBleHByZXNzaW9uIHN1Ym5vZGVzICovCiAJCQli cmVhazsKIAkJY2FzZSBUX1dpdGhDaGVja09wdGlvbjoKQEAgLTMwMjAsNiArMzAyNyw3IEBAIGV4 cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJY2FzZSBUX0NURVNlYXJj aENsYXVzZToKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJCWNhc2UgVF9GaWVsZEFjY2Vz c29yRXhwcjoKKwkJY2FzZSBUX1N0YXI6CiAJCQlyZXR1cm4gY29weU9iamVjdChub2RlKTsKIAkJ Y2FzZSBUX1dpdGhDaGVja09wdGlvbjoKIAkJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDlmZDQ4YWNiMWY4 Li5jODZhYjZmZDUxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xODk4MCw2ICsxODk4MCw3IEBAIGNoZWNr X2Z1bmNfbmFtZShMaXN0ICpuYW1lcywgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiBzdGF0aWMg TGlzdCAqCiBjaGVja19pbmRpcmVjdGlvbihMaXN0ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5f dCB5eXNjYW5uZXIpCiB7CisjaWYgMAogCUxpc3RDZWxsICAgKmw7CiAKIAlmb3JlYWNoKGwsIGlu ZGlyZWN0aW9uKQpAQCAtMTg5OTAsNiArMTg5OTEsNyBAQCBjaGVja19pbmRpcmVjdGlvbihMaXN0 ICppbmRpcmVjdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJcGFyc2VyX3l5ZXJy b3IoImltcHJvcGVyIHVzZSBvZiBcIipcIiIpOwogCQl9CiAJfQorI2VuZGlmCiAJcmV0dXJuIGlu ZGlyZWN0aW9uOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhw ci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBmOGEwNjE3ZjgyMy4u MzhhYzY1MDNhMjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNzMsNyArNzMsNiBAQCBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1u UmVmICpjcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJCQkJCSAgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCQkJCQkJ CSAgaW50IHN1YmxldmVsc191cCwgaW50IGxvY2F0aW9uKTsKLXN0YXRpYyBOb2RlICp0cmFuc2Zv cm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBz dGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2Fz dCAqdGMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2Jq ZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTU3LDcgKzE1Niw3IEBAIHRy YW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJy ZWFrOwogCiAJCWNhc2UgVF9BX0luZGlyZWN0aW9uOgotCQkJcmVzdWx0ID0gdHJhbnNmb3JtSW5k aXJlY3Rpb24ocHN0YXRlLCAoQV9JbmRpcmVjdGlvbiAqKSBleHByKTsKKwkJCXJlc3VsdCA9IHRy YW5zZm9ybUluZGlyZWN0aW9uKHBzdGF0ZSwgKEFfSW5kaXJlY3Rpb24gKikgZXhwciwgTlVMTCk7 CiAJCQlicmVhazsKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6CkBAIC00MzEsOCArNDMwLDkgQEAg dW5rbm93bl9hdHRyaWJ1dGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpyZWxyZWYsIGNvbnN0 IGNoYXIgKmF0dG5hbWUsCiAJfQogfQogCi1zdGF0aWMgTm9kZSAqCi10cmFuc2Zvcm1JbmRpcmVj dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKK05vZGUgKgordHJh bnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQs CisJCQkJCSBib29sICp0cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKIHsKIAlOb2RlCSAgICpsYXN0 X3NyZiA9IHBzdGF0ZS0+cF9sYXN0X3NyZjsKIAlOb2RlCSAgICpyZXN1bHQgPSB0cmFuc2Zvcm1F eHByUmVjdXJzZShwc3RhdGUsIGluZC0+YXJnKTsKQEAgLTQ1MCwxNiArNDUwLDggQEAgdHJhbnNm b3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJ ewogCQlOb2RlCSAgICpuID0gbGZpcnN0KGkpOwogCi0JCWlmIChJc0EobiwgQV9JbmRpY2VzKSB8 fCBJc0EobiwgU3RyaW5nKSkKLQkJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4p OwotCQllbHNlCi0JCXsKLQkJCUFzc2VydChJc0EobiwgQV9TdGFyKSk7Ci0JCQllcmVwb3J0KEVS Uk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJ CSBlcnJtc2coInJvdyBleHBhbnNpb24gdmlhIFwiKlwiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIp LAotCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7Ci0JCX0KKwkJ QXNzZXJ0IChJc0EobiwgQV9JbmRpY2VzKSB8fCBJc0EobiwgU3RyaW5nKSB8fCBJc0EobiwgQV9T dGFyKSk7CisJCXN1YnNjcmlwdHMgPSBsYXBwZW5kKHN1YnNjcmlwdHMsIG4pOwogCX0KIAogCXdo aWxlIChzdWJzY3JpcHRzKQpAQCAtNDg2LDcgKzQ3OCwyMSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAogCQkJbiA9IGxpbml0 aWFsKHN1YnNjcmlwdHMpOwogCi0JCQlpZiAoIUlzQShuLCBTdHJpbmcpKQorCQkJaWYgKElzQShu LCBBX1N0YXIpKQorCQkJeworCQkJCS8qIFN1Y2Nlc3MsIGlmIHRyYWlsaW5nIHN0YXIgZXhwYW5z aW9uIGlzIGFsbG93ZWQgKi8KKwkJCQlpZiAodHJhaWxpbmdfc3Rhcl9leHBhbnNpb24gJiYgbGlz dF9sZW5ndGgoc3Vic2NyaXB0cykgPT0gMSkKKwkJCQl7CisJCQkJCSp0cmFpbGluZ19zdGFyX2V4 cGFuc2lvbiA9IHRydWU7CisJCQkJCXJldHVybiByZXN1bHQ7CisJCQkJfQorCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCQkJCSBlcnJtc2coInJvdyBleHBhbnNpb24gdmlhIFwiKlwiIGlzIG5vdCBzdXBwb3J0ZWQg aGVyZSIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwor CQkJfQorCQkJZWxzZSBpZiAoIUlzQShuLCBTdHJpbmcpKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKIAkJCQkJCSBlcnJtc2co ImNhbm5vdCBzdWJzY3JpcHQgdHlwZSAlcyBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQgc3Vi c2NyaXB0aW5nIiwKQEAgLTUxMiw2ICs1MTgsOSBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJcmVzdWx0ID0gbmV3cmVzdWx0 OwogCX0KIAorCWlmICh0cmFpbGluZ19zdGFyX2V4cGFuc2lvbikKKwkJKnRyYWlsaW5nX3N0YXJf ZXhwYW5zaW9uID0gZmFsc2U7CisKIAlyZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdGFyZ2V0LmMKaW5kZXggYjg5NzM2ZmYxZWEuLjg1YzA1Yzc0MzRjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1B c3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTGlzdCAqRXhw YW5kQ29sdW1uUmVmU3RhcihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZiwKIAkJ CQkJCQkJIGJvb2wgbWFrZV90YXJnZXRfZW50cnkpOwogc3RhdGljIExpc3QgKkV4cGFuZEFsbFRh YmxlcyhQYXJzZVN0YXRlICpwc3RhdGUsIGludCBsb2NhdGlvbik7Ci1zdGF0aWMgTGlzdCAqRXhw YW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5k LAorc3RhdGljIE5vZGUgKkV4cGFuZEluZGlyZWN0aW9uU3RhcihQYXJzZVN0YXRlICpwc3RhdGUs IEFfSW5kaXJlY3Rpb24gKmluZCwKIAkJCQkJCQkJICAgYm9vbCBtYWtlX3RhcmdldF9lbnRyeSwg UGFyc2VFeHByS2luZCBleHByS2luZCk7CiBzdGF0aWMgTGlzdCAqRXhwYW5kU2luZ2xlVGFibGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIAkJCQkJCQkg ICBpbnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24sCkBAIC0xMzMsNiArMTMzLDcgQEAgdHJh bnNmb3JtVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAJ Zm9yZWFjaChvX3RhcmdldCwgdGFyZ2V0bGlzdCkKIAl7CiAJCVJlc1RhcmdldCAgKnJlcyA9IChS ZXNUYXJnZXQgKikgbGZpcnN0KG9fdGFyZ2V0KTsKKwkJTm9kZQkgICAqdHJhbnNmb3JtZWQgPSBO VUxMOwogCiAJCS8qCiAJCSAqIENoZWNrIGZvciAic29tZXRoaW5nLioiLiAgRGVwZW5kaW5nIG9u IHRoZSBjb21wbGV4aXR5IG9mIHRoZQpAQCAtMTYxLDEzICsxNjIsMTkgQEAgdHJhbnNmb3JtVGFy Z2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRhcmdldGxpc3QsCiAKIAkJCQlpZiAo SXNBKGxsYXN0KGluZC0+aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJCXsKLQkJCQkJLyogSXQg aXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1zICovCi0JCQkJCXBfdGFy Z2V0ID0gbGlzdF9jb25jYXQocF90YXJnZXQsCi0JCQkJCQkJCQkJICAgRXhwYW5kSW5kaXJlY3Rp b25TdGFyKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJCQkgaW5kLAotCQkJCQkJCQkJCQkJCQkJCSB0 cnVlLAotCQkJCQkJCQkJCQkJCQkJCSBleHByS2luZCkpOwotCQkJCQljb250aW51ZTsKKwkJCQkJ Tm9kZQkgICAqY29sdW1ucyA9IEV4cGFuZEluZGlyZWN0aW9uU3Rhcihwc3RhdGUsCisJCQkJCQkJ CQkJCQkJCQkJaW5kLAorCQkJCQkJCQkJCQkJCQkJCXRydWUsCisJCQkJCQkJCQkJCQkJCQkJZXhw cktpbmQpOworCisJCQkJCWlmIChJc0EoY29sdW1ucywgTGlzdCkpCisJCQkJCXsKKwkJCQkJCS8q IEl0IGlzIHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLworCQkJCQkJ cF90YXJnZXQgPSBsaXN0X2NvbmNhdChwX3RhcmdldCwgKExpc3QgKikgY29sdW1ucyk7CisJCQkJ CQljb250aW51ZTsKKwkJCQkJfQorCisJCQkJCXRyYW5zZm9ybWVkID0gKE5vZGUgKikgY29sdW1u czsKIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTE3OSw3ICsxODYsNyBAQCB0cmFuc2Zvcm1UYXJnZXRM aXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqdGFyZ2V0bGlzdCwKIAkJcF90YXJnZXQgPSBs YXBwZW5kKHBfdGFyZ2V0LAogCQkJCQkJICAgdHJhbnNmb3JtVGFyZ2V0RW50cnkocHN0YXRlLAog CQkJCQkJCQkJCQkJcmVzLT52YWwsCi0JCQkJCQkJCQkJCQlOVUxMLAorCQkJCQkJCQkJCQkJdHJh bnNmb3JtZWQsCiAJCQkJCQkJCQkJCQlleHByS2luZCwKIAkJCQkJCQkJCQkJCXJlcy0+bmFtZSwK IAkJCQkJCQkJCQkJCWZhbHNlKSk7CkBAIC0yNTAsMTAgKzI1NywxNSBAQCB0cmFuc2Zvcm1FeHBy ZXNzaW9uTGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCiAJCQlpZiAo SXNBKGxsYXN0KGluZC0+aW5kaXJlY3Rpb24pLCBBX1N0YXIpKQogCQkJewotCQkJCS8qIEl0IGlz IHNvbWV0aGluZy4qLCBleHBhbmQgaW50byBtdWx0aXBsZSBpdGVtcyAqLwotCQkJCXJlc3VsdCA9 IGxpc3RfY29uY2F0KHJlc3VsdCwKLQkJCQkJCQkJCSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0 YXRlLCBpbmQsCi0JCQkJCQkJCQkJCQkJCSAgIGZhbHNlLCBleHByS2luZCkpOworCQkJCU5vZGUJ ICAgKmNvbHMgPSBFeHBhbmRJbmRpcmVjdGlvblN0YXIocHN0YXRlLCBpbmQsCisJCQkJCQkJCQkJ CQkJCSBmYWxzZSwgZXhwcktpbmQpOworCisJCQkJaWYgKCFjb2xzIHx8IElzQShjb2xzLCBMaXN0 KSkKKwkJCQkJLyogSXQgaXMgc29tZXRoaW5nLiosIGV4cGFuZCBpbnRvIG11bHRpcGxlIGl0ZW1z ICovCisJCQkJCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgKExpc3QgKikgY29scyk7CisJ CQkJZWxzZQorCQkJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgY29scyk7CisKIAkJCQljb250 aW51ZTsKIAkJCX0KIAkJfQpAQCAtMTM0NCwyMiArMTM1NiwzMCBAQCBFeHBhbmRBbGxUYWJsZXMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBpbnQgbG9jYXRpb24pCiAgKiBGb3Igcm9idXN0bmVzcywgd2Ug dXNlIGEgc2VwYXJhdGUgIm1ha2VfdGFyZ2V0X2VudHJ5IiBmbGFnIHRvIGNvbnRyb2wKICAqIHRo aXMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBleHByS2luZC4KICAqLwotc3RhdGljIExpc3QgKgor c3RhdGljIE5vZGUgKgogRXhwYW5kSW5kaXJlY3Rpb25TdGFyKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kLAogCQkJCQkgIGJvb2wgbWFrZV90YXJnZXRfZW50cnksIFBhcnNl RXhwcktpbmQgZXhwcktpbmQpCiB7CiAJTm9kZQkgICAqZXhwcjsKKwlQYXJzZUV4cHJLaW5kIHN2 X2V4cHJfa2luZDsKKwlib29sCQl0cmFpbGluZ19zdGFyX2V4cGFuc2lvbiA9IGZhbHNlOworCisJ LyogU2F2ZSBhbmQgcmVzdG9yZSBpZGVudGl0eSBvZiBleHByZXNzaW9uIHR5cGUgd2UncmUgcGFy c2luZyAqLworCUFzc2VydChleHByS2luZCAhPSBFWFBSX0tJTkRfTk9ORSk7CisJc3ZfZXhwcl9r aW5kID0gcHN0YXRlLT5wX2V4cHJfa2luZDsKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gZXhwcktp bmQ7CiAKIAkvKiBTdHJpcCBvZmYgdGhlICcqJyB0byBjcmVhdGUgYSByZWZlcmVuY2UgdG8gdGhl IHJvd3R5cGUgb2JqZWN0ICovCi0JaW5kID0gY29weU9iamVjdChpbmQpOwotCWluZC0+aW5kaXJl Y3Rpb24gPSBsaXN0X3RydW5jYXRlKGluZC0+aW5kaXJlY3Rpb24sCi0JCQkJCQkJCQkgbGlzdF9s ZW5ndGgoaW5kLT5pbmRpcmVjdGlvbikgLSAxKTsKKwlleHByID0gdHJhbnNmb3JtSW5kaXJlY3Rp b24ocHN0YXRlLCBpbmQsICZ0cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKKwlwc3RhdGUtPnBf ZXhwcl9raW5kID0gc3ZfZXhwcl9raW5kOwogCi0JLyogQW5kIHRyYW5zZm9ybSB0aGF0ICovCi0J ZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBpbmQsIGV4cHJLaW5kKTsKKwkv KiAnKicgd2FzIGNvbnN1bWVkIGJ5IGdlbmVyaWMgdHlwZSBzdWJzY3JpcHRpbmcgKi8KKwlpZiAo IXRyYWlsaW5nX3N0YXJfZXhwYW5zaW9uKQorCQlyZXR1cm4gZXhwcjsKIAogCS8qIEV4cGFuZCB0 aGUgcm93dHlwZSBleHByZXNzaW9uIGludG8gaW5kaXZpZHVhbCBmaWVsZHMgKi8KLQlyZXR1cm4g RXhwYW5kUm93UmVmZXJlbmNlKHBzdGF0ZSwgZXhwciwgbWFrZV90YXJnZXRfZW50cnkpOworCXJl dHVybiAoTm9kZSAqKSBFeHBhbmRSb3dSZWZlcmVuY2UocHN0YXRlLCBleHByLCBtYWtlX3Rhcmdl dF9lbnRyeSk7CiB9CiAKIC8qCkBAIC0xNzg0LDEzICsxODA0LDE4IEBAIEZpZ3VyZUNvbG5hbWVJ bnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFtZSkKIAkJCQljaGFyCSAgICpmbmFtZSA9IE5V TEw7CiAJCQkJTGlzdENlbGwgICAqbDsKIAotCQkJCS8qIGZpbmQgbGFzdCBmaWVsZCBuYW1lLCBp ZiBhbnksIGlnbm9yaW5nICIqIiBhbmQgc3Vic2NyaXB0cyAqLworCQkJCS8qCisJCQkJICogZmlu ZCBsYXN0IGZpZWxkIG5hbWUsIGlmIGFueSwgaWdub3Jpbmcgc3Vic2NyaXB0cywgYW5kIHVzZQor CQkJCSAqICc/Y29sdW1uPycgd2hlbiB0aGVyZSdzIGEgdHJhaWxpbmcgJyonLgorCQkJCSAqLwog CQkJCWZvcmVhY2gobCwgaW5kLT5pbmRpcmVjdGlvbikKIAkJCQl7CiAJCQkJCU5vZGUJICAgKmkg PSBsZmlyc3QobCk7CiAKIAkJCQkJaWYgKElzQShpLCBTdHJpbmcpKQogCQkJCQkJZm5hbWUgPSBz dHJWYWwoaSk7CisJCQkJCWVsc2UgaWYgKElzQShpLCBBX1N0YXIpKQorCQkJCQkJZm5hbWUgPSAi P2NvbHVtbj8iOwogCQkJCX0KIAkJCQlpZiAoZm5hbWUpCiAJCQkJewpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pz b25ic3Vicy5jCmluZGV4IDQ3NjJmNmJkMTFjLi4xZGNkZTY1ODczOSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYwpAQCAtMTI0LDcgKzEyNCw3IEBAIGpzb25iX2NoZWNrX2pzb25wYXRoX25l ZWRlZChMaXN0ICppbmRpcmVjdGlvbikKIAl7CiAJCU5vZGUJICAgKmFjY2Vzc29yID0gbGZpcnN0 KGxjKTsKIAotCQlpZiAoSXNBKGFjY2Vzc29yLCBTdHJpbmcpKQorCQlpZiAoSXNBKGFjY2Vzc29y LCBTdHJpbmcpIHx8IElzQShhY2Nlc3NvciwgQV9TdGFyKSkKIAkJCXJldHVybiB0cnVlOwogCQll bHNlCiAJCXsKQEAgLTMzOSw2ICszMzksMTYgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBh dGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJ CQl9CiAJCQl9CiAJCX0KKwkJZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX1N0YXIpKQorCQl7CisJ CQlTdGFyICpzdGFyX25vZGU7CisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpQW55S2V5 KTsKKworCQkJc3Rhcl9ub2RlID0gbWFrZU5vZGUoU3Rhcik7CisJCQlzdGFyX25vZGUtPnR5cGUg PSBUX1N0YXI7CisKKwkJCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYt PnJlZnVwcGVyaW5kZXhwciwgc3Rhcl9ub2RlKTsKKwkJfQogCQllbHNlCiAJCXsKIAkJCS8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggYmFhM2FlOTdkNTcuLmFjZTBlZmY1MmUyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMzAxMCw3ICsxMzAxMCwxMSBAQCBwcmlu dFN1YnNjcmlwdHMoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsIGRlcGFyc2VfY29udGV4dCAqY29u dGV4dCkKIAl7CiAJCU5vZGUgKnVwcGVyID0gKE5vZGUgKikgbGZpcnN0KHVwbGlzdF9pdGVtKTsK IAotCQlpZiAodXBwZXIgJiYgSXNBKHVwcGVyLCBGaWVsZEFjY2Vzc29yRXhwcikpCisJCWlmICh1 cHBlciAmJiBJc0EodXBwZXIsIFN0YXIpKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KGJ1ZiwgIi4qIik7CisJCX0KKwkJZWxzZSBpZiAodXBwZXIgJiYgSXNBKHVwcGVyLCBGaWVsZEFj Y2Vzc29yRXhwcikpCiAJCXsKIAkJCUZpZWxkQWNjZXNzb3JFeHByICpmYWUgPSAoRmllbGRBY2Nl c3NvckV4cHIgKikgdXBwZXI7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggN2U4OTYyMWJkNjUu LjdlNDE4ODMwZjIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMjQxOSw0ICsyNDE5LDE2IEBA IHR5cGVkZWYgc3RydWN0IEZpZWxkQWNjZXNzb3JFeHByCiAJT2lkCQkJZmFlY29sbGlkIHBnX25v ZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIH0JCQlGaWVsZEFjY2Vzc29yRXhwcjsKIAor LyoKKyAqIFN0YXIgLSByZXByZXNlbnRzIGEgd2lsZGNhcmQgbWVtYmVyIGFjY2Vzc29yIChlLmcu LCAiLioiKSB1c2VkIGluIEpTT05CIHNpbXBsaWZpZWQgYWNjZXNzb3IuCisgKgorICogVGhpcyBu b2RlIHNlcnZlcyBhcyBhIHN5bnRhY3RpYyBwbGFjZWhvbGRlciBpbiB0aGUgZXhwcmVzc2lvbiB0 cmVlIGFuZCBkb2VzIG5vdCBnZXQgZXZhbHVhdGVkLCBoZW5jZSBpdAorICogaGFzIG5vIGFzc29j aWF0ZWQgdHlwZSBvciBjb2xsYXRpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFN0YXIKK3sKKwlO b2RlVGFnCQl0eXBlOworfQkJCVN0YXI7CisKKwogI2VuZGlmCQkJCQkJCS8qIFBSSU1OT0RFU19I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCBlZmJhZmY4ZTcxMC4uYzlmNmE3NzI0YzAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMjIsNCArMjIsNyBAQCBleHRlcm4gTm9kZSAq dHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktp bmQgZXhwcktpbgogCiBleHRlcm4gY29uc3QgY2hhciAqUGFyc2VFeHByS2luZE5hbWUoUGFyc2VF eHByS2luZCBleHByS2luZCk7CiAKK2V4dGVybiBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCwKKwkJCQkJCQkJICBib29sICp0 cmFpbGluZ19zdGFyX2V4cGFuc2lvbik7CisKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9FWFBSX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3Fs anNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMK aW5kZXggOTM1YjQ3YTNiOWEuLjU4NWQ5YjE0NDQ1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYworKysgYi9zcmMvaW50ZXJmYWNlcy9l Y3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAtNTE1LDkgKzUxNSw5IEBAIGlmIChz cWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQogI2xpbmUgMTQ1ICJzcWxqc29uLnBnYyIKIAotCS8vIGVycm9yCisJcHJpbnRm KCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAotCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBO VUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjog MSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1d fV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIDogXSApIiwgRUNQR3RfRU9JVCwgCisJeyBFQ1BH ZG8oX19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAo ICggJ3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wi eFwiOiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiAqIC4geCApIiwgRUNQR3RfRU9J VCwgCiAJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2Yo Y2hhciksIAogCUVDUEd0X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VP UlQpOwogI2xpbmUgMTQ4ICJzcWxqc29uLnBnYyIKQEAgLTUyNyw3ICs1MjcsNyBAQCBpZiAoc3Fs Y2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogCiAJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4i LCBqc29uKTsKIAotCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9y bWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJc IjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4g YiBbIDogXSApIiwgRUNQR3RfRU9JVCwgCisJeyBFQ1BHZG8oX19MSU5FX18sIDAsIDEsIE5VTEws IDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjoge1wiYlwiOiAxLCBc ImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtcInlcIjoxfV19XX0n IDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAKIAlFQ1BHdF9jaGFy LChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCiAJRUNQR3Rf Tk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CiAjbGluZSAxNTEg InNxbGpzb24ucGdjIgpAQCAtNTM3LDEyICs1MzcsMjIgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAw KSBzcWxwcmludCgpO30KIAogCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CiAKLSAg eyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQiKTsKKwl7IEVDUEdkbyhfX0xJTkVf XywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwi OiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwg e1wieVwiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVD UEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAK KwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKICNs aW5lIDE1NCAic3FsanNvbi5wZ2MiCiAKIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQo KTt9CiAjbGluZSAxNTQgInNxbGpzb24ucGdjIgogCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4i LCBqc29uKTsKKworICB7IEVDUEdkaXNjb25uZWN0KF9fTElORV9fLCAiQ1VSUkVOVCIpOworI2xp bmUgMTU3ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgp O30KKyNsaW5lIDE1NyAic3FsanNvbi5wZ2MiCisKIAogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIg Yi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCmlu ZGV4IGYzZjg5OWM2ZDg3Li40YjkwODg1NDVkNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv ZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgorKysgYi9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyCkBAIC0zNDcsMjIgKzM0Nywx OSBAQCBTUUwgZXJyb3I6IHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0IG9uIGxpbmUgMTIx CiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdf ZXhlY3V0ZSBvbiBsaW5lIDE0NTogdXNpbmcgUFFleGVjCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAx NDU6IGJhZCByZXNwb25zZSAtIEVSUk9SOiAgcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBz dXBwb3J0ZWQgaGVyZQotTElORSAxOiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJj IjogMn0sICJiIjogW3sieCI6IDF9LCB7InguLi4KLSAgICAgICAgICAgICAgICAgICAgICAgIF4K K1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTQ1OiBjb3JyZWN0bHkgZ290 IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCi1bTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSAwQTAwMCAoc3FsY29kZSAtNDAwKTog cm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBvbiBsaW5lIDE0NQot W05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogMEEwMDAKLVNRTCBlcnJvcjogcm93 IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBvbiBsaW5lIDE0NQotW05P X1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0ODogcXVlcnk6IHNlbGVjdCBqc29uICggKCAn eyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5Ijox fV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICk7IHdpdGggMCBwYXJhbWV0ZXIocykg b24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBv biBsaW5lIDE0NTogUkVTVUxUOiBbeyJiIjogMSwgImMiOiAyfSwgW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6IDF9XX1dXSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ4 OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7 IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuICogLiB4ICk7IHdp dGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCiBbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAogW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBv biBsaW5lIDE0ODogdXNpbmcgUFFleGVjCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAogW05PX1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxNDg6IGNvcnJl Y3RseSBnb3QgMSB0dXBsZXMgd2l0aCAxIGZpZWxkcwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ4OiBSRVNV TFQ6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19XSBvZmZzZXQ6IC0xOyBhcnJheTog bm8KK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTQ4OiBSRVNVTFQ6IFsxLCBbMTIs IHsieSI6IDF9XV0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6 IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE1MTogcXVl cnk6IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4Ijog MX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICk7IHdpdGgg MCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7 ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScg OjoganNvbmIgKSBbICdiJyBdIFsgMCA6IF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25u ZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6 IDAwMDAwCiBbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTUxOiB1c2luZyBQUWV4ZWMK IFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCkBAIC0zNzAsNSArMzY3LDEz IEBAIFNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtO T19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTUxOiBSRVNVTFQ6IFt7IngiOiAxfSwgeyJ4 IjogWzEyLCB7InkiOiAxfV19XSBvZmZzZXQ6IC0xOyBhcnJheTogbm8KIFtOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUg MTU0OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6 IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyA6IF0g KTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tO T19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVj dXRlIG9uIGxpbmUgMTU0OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwg c3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE1NDog Y29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNTQ6 IFJFU1VMVDogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFy cmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURd OiBlY3BnX2ZpbmlzaDogY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uIGNsb3NlZAogW05PX1BJ RF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQgYi9zcmMvaW50ZXJmYWNl cy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CmluZGV4IGQwMWE4NDU3ZjAx Li4xNDVkYzk1ZDQzMCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZG91dAorKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0CkBAIC0zNiw1ICszNiw3IEBAIEZvdW5kIGpzb249eyJ4 IjogMX0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQogRm91bmQganNvbj17IngiOiAx fQogRm91bmQganNvbj1bMTIsIHsieSI6IDF9XQorRm91bmQganNvbj1beyJiIjogMSwgImMiOiAy fSwgW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6IDF9XX1dXQorRm91bmQganNvbj1bMSwgWzEy LCB7InkiOiAxfV1dCiBGb3VuZCBqc29uPVt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOiAxfV19 XQogRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCmluZGV4IDk0MjNkMjVmZDBiLi4yYWY1MGI1 ZGE0YiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBn YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xNDMs NyArMTQzLDEwIEBAIEVYRUMgU1FMIEVORCBERUNMQVJFIFNFQ1RJT047CiAJcHJpbnRmKCJGb3Vu ZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJi IjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpq c29uYikuKikgSU5UTyA6anNvbjsKLQkvLyBlcnJvcgorCXByaW50ZigiRm91bmQganNvbj0lc1xu IiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjog Mn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLioueCkg SU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKIAlw cmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9qc29uYi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25i Lm91dAppbmRleCAyNzAyZWRjOTcwNS4uODZiN2Y3Njc3ZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvanNvbmIub3V0CkBAIC02MDY0LDggKzYwNjQsMTc1IEBAIFNFTEVDVCAoKGpiKS5iKVs6XS54 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKICB7InkiOiAiWVlZIiwgInoiOiAiWlpa In0KICgxIHJvdykKIAotU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247IC0tIGZhaWxzCi1FUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorLyogd2ls ZCBjYXJkIG1lbWJlciBhY2Nlc3MgKi8KK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYyIsICJk IiwgImYiLCB7InkiOiAieXl5IiwgInoiOiAienp6In1dCisoMSByb3cpCisKK1NFTEVDVCAoamIp LiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6 ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVki LCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7 ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6 enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1d XQorKDEgcm93KQorCitTRUxFQ1QgKHQuamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv biB0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbWzEsIDIsIHsiYiI6ICJjIn0sIHsi YiI6ICJkIiwgImUiOiAiZiIsICJ4IjogeyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0sIFszLCA0 LCB7ImIiOiAiZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV1dCisoMSByb3cpCisK K1NFTEVDVCAoamIpLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgP2NvbHVtbj8g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgW1sxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYi LCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCBbMywgNCwgeyJiIjogImciLCAieCI6 IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dXQorKDEgcm93KQorCitTRUxFQ1QgKHQuamIpLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVz ZSBlbnRyeSBmb3IgdGFibGUgInQiCitMSU5FIDE6IFNFTEVDVCAodC5qYikuKiBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgIF4KK1NFTEVDVCAodC5qYikuKiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFtbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAi eXl5IiwgInoiOiAienp6In19XSwgWzMsIDQsIHsiYiI6ICJnIiwgIngiOiB7InkiOiAiWVlZIiwg InoiOiAiWlpaIn19XV0KKygxIHJvdykKKworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgID9jb2x1bW4/ICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJjIiwg ImQiLCAiZiIsIHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifV0KKygxIHJvdykKKworU0VMRUNUIChq YikuYS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyBiIAorLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCAoamIpLmEuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Cisg eCAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5hLioueSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgeSAgIAorLS0tLS0tLQorICJ5eXkiCisoMSByb3cpCisKK1NFTEVD VCAoamIpLmEuKi4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2NvbHVtbj8g ICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKworU0VMRUNU IChqYikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAg ICAgICAgICAgIHggICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoi OiAienp6In0sIHsieSI6ICJZWVkiLCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUIChq YikuKi54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgeCAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgW3sieSI6ICJ5eXkiLCAieiI6 ICJ6enoifSwgeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9XQorKDEgcm93KQorCitTRUxFQ1QgKChq YikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgeCAKKy0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7 CisgeCAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoiOiAienp6In0sIHsieSI6ICJZ WVkiLCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi54IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgICAgIHggICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFt7InkiOiAieXl5IiwgInoiOiAienp6In0sIHsieSI6ICJZWVki LCAieiI6ICJaWloifV0KKygxIHJvdykKKworU0VMRUNUIChqYikuKi54LiogRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6IiwgIllZWSIsICJaWloiXQor KDEgcm93KQorCitTRUxFQ1QgKGpiKS4qLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworICAgICAgIHkgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgIllZWSJdCiso MSByb3cpCisKK1NFTEVDVCAoamIpLioueC56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgeiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ6enoiLCAiWlpaIl0KKygx IHJvdykKKworU0VMRUNUIChqYikuKi4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK KyAgICAgICB5ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJZWVkiXQorKDEg cm93KQorCitTRUxFQ1QgKGpiKS4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor ICAgICAgICAgICA/Y29sdW1uPyAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbInl5eSIsICJ6enoiLCAiWVlZIiwgIlpaWiJdCisoMSByb3cpCisKK1NFTEVDVCAo amIpLiouKi4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyA/Y29sdW1uPyAKKy0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYikuYS5iLmMuKiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitT RUxFQ1QgKGpiKS5hLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgID9jb2x1 bW4/ICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIFsieXl5IiwgInp6eiJdCisoMSByb3cpCisKK1NF TEVDVCAoamIpLmEuKls6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgP2Nv bHVtbj8gICAgCistLS0tLS0tLS0tLS0tLS0tCisgWyJ5eXkiLCAienp6Il0KKygxIHJvdykKKwor U0VMRUNUIChqYikuYS4qWypdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gbm90 IHN1cHBvcnRlZAorRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKiIKK0xJTkUgMTog U0VMRUNUIChqYikuYS4qWypdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAg ICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCAoamIpLmEuKioueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICIqKiIKK0xJTkUgMTogU0VMRUNUIChqYikuYS4qKi54IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZXhwbGFpbnMgc2hvdWxk IHdvcmsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0LmpiKS5hIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAKQEAgLTYwOTMsNiArNjI2MCw0NSBAQCBTRUxFQ1QgKGpiKS5hWzFd IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiAgMgogKDEgcm93KQogCitFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24g cHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYS4qCisoMiBy b3dzKQorCitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAg ICAgICAgICAgICAgICAgP2NvbHVtbj8gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbImMiLCAiZCIsICJmIiwgeyJ5IjogInl5 eSIsICJ6IjogInp6eiJ9XQorKDEgcm93KQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYp IFNFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYS4qWzpdLioKKygyIHJvd3MpCisK K1NFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVi bGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYikuYS4qWzoyXS4qLmIK KygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uOworIGIgCistLS0KKyAKKygxIHJvdykKKwogLS0gdmlld3Mgc2hvdWxkIHdvcmsK IENSRUFURSBWSUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFb M10ueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CiBcc3YgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjEKQEAgLTYxMjEsNiArNjMyNywxNyBAQCBTRUxFQ1QgKiBmcm9tIHYzOwogICJ5 eXkiCiAoMSByb3cpCiAKK0NSRUFURSBWSUVXIHY0IEFTIFNFTEVDVCAoamIpLmEuKls6XS4qIEZS T00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjQKK0NSRUFURSBPUiBSRVBMQUNFIFZJ RVcgcHVibGljLnY0IEFTCisgU0VMRUNUIChqYikuYS4qWzpdLiogQVMgIj9jb2x1bW4/IgorICAg RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB2NDsKKyAgICA/Y29s dW1uPyAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBbInl5eSIsICJ6enoiXQorKDEgcm93KQorCiAt LSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKIEVY UExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2EnXS5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CkBAIC02MzU2LDQgKzY1NzMsNSBAQCBOT1RJQ0U6ICBbMl0KIC0t IGNsZWFuIHVwCiBEUk9QIFZJRVcgdjI7CiBEUk9QIFZJRVcgdjM7CitEUk9QIFZJRVcgdjQ7CiBE Uk9QIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvanNvbmIuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCmlu ZGV4IGRlMmM5Y2RhMDk0Li4wN2ZhY2MyODBkNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvanNvbmIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbApAQCAt MTYzMSwxMyArMTYzMSw0OSBAQCBTRUxFQ1QgKGpiKS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CiBTRUxFQ1QgKGpiKS5hWzoyXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiBTRUxFQ1QgKGpiKS5hWzpdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK IFNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKLVNF TEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscworCisv KiB3aWxkIGNhcmQgbWVtYmVyIGFjY2VzcyAqLworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CitTRUxFQ1QgKGpiKS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NF TEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpi KS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKHQuamIpLiogRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAodC5qYikuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CitTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1NFTEVDVCAoamIpLmEuKi5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitT RUxFQ1QgKGpiKS5hLioueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChq YikuYS4qLnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKi4q IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLioueCBGUk9NIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uIHQ7CitTRUxFQ1QgKChqYikuKikueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7 CitTRUxFQ1QgKChqYikuKilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CitT RUxFQ1QgKGpiKS4qLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIp LioueC4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLngueSBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuKi54LnogRlJPTSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiouKi55IEZST00gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworU0VMRUNUIChqYikuKi4qLiouKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwor U0VMRUNUIChqYikuYS5iLmMuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNU IChqYikuYS4qLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEu Kls6XS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hLipbKl0u KiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBub3Qgc3VwcG9ydGVkCitTRUxFQ1Qg KGpiKS5hLioqLnggRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gbm90IHN1cHBvcnRl ZAogCiAtLSBleHBsYWlucyBzaG91bGQgd29yawogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OwogU0VMRUNU ICh0LmpiKS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIEVYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOwogU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVhQ TEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hLipbMTpdLiog RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEuKlsxOl0uKiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBT RUxFQ1QgKGpiKS5hLipbMToyXS4qLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NF TEVDVCAoamIpLmEuKlsxOjJdLiouYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwogCiAt LSB2aWV3cyBzaG91bGQgd29yawogQ1JFQVRFIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25f djEgQVMgU0VMRUNUIChqYikuYVszXS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsK QEAgLTE2NDgsNiArMTY4NCw5IEBAIFNFTEVDVCAqIGZyb20gdjI7CiBDUkVBVEUgVklFVyB2MyBB UyBTRUxFQ1QgKGpiKS5hWzozXS54LnlbLTE6XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OwogXHN2IHYzCiBTRUxFQ1QgKiBmcm9tIHYzOworQ1JFQVRFIFZJRVcgdjQgQVMgU0VMRUNUIChq YikuYS4qWzpdLiogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2NAorU0VMRUNU ICogZnJvbSB2NDsKIAogLS0gbWl4ZWQgc3ludGF4CiBEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CkBAIC0xNzQ5LDQgKzE3ODgsNSBAQCAkJCBMQU5HVUFHRSBwbHBnc3FsOwog LS0gY2xlYW4gdXAKIERST1AgVklFVyB2MjsKIERST1AgVklFVyB2MzsKK0RST1AgVklFVyB2NDsK IERST1AgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdp dC0xNTQpCgo= --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Disposition: attachment; filename="v17-0001-Allow-transformation-of-only-a-sublist-of-subscr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge740 RnJvbSAxNWY2OWNlNjRjYzU4YjFiOTY4MzZhYWE1ZTM3NTE1ZTQ3MGJmOWRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE3IDEvN10gQWxsb3cgdHJhbnNmb3JtYXRpb24gb2Ygb25seSBhIHN1Ymxpc3Qgb2Ygc3Vic2Ny aXB0cwoKVGhpcyBpcyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGFsbG93aW5nIHN1YnNjcmlwdGlu ZyBjb250YWluZXJzIHRvCnRyYW5zZm9ybSBvbmx5IGEgcHJlZml4IG9mIGFuIGluZGlyZWN0aW9u IGxpc3QgYW5kIG1vZGlmeSB0aGUgbGlzdAppbi1wbGFjZSBieSByZW1vdmluZyB0aGUgcHJvY2Vz c2VkIGVsZW1lbnRzLiBDdXJyZW50bHksIGFsbCBlbGVtZW50cwphcmUgY29uc3VtZWQsIGFuZCB0 aGUgbGlzdCBpcyBzZXQgdG8gTklMIGFmdGVyIHRyYW5zZm9ybWF0aW9uLgoKSW4gdGhlIGZvbGxv d2luZyBjb21taXQsIHN1YnNjcmlwdGluZyBjb250YWluZXJzIHdpbGwgZ2FpbiB0aGUKZmxleGli aWxpdHkgdG8gc3RvcCB0cmFuc2Zvcm1hdGlvbiB3aGVuIGVuY291bnRlcmluZyBhbiB1bnN1cHBv cnRlZAppbmRpcmVjdGlvbiBhbmQgcmV0dXJuIHRoZSByZW1haW5pbmcgaW5kaXJlY3Rpb25zIHRv IHRoZSBjYWxsZXIuCgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53YW5n Lm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1bnNs YW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5N0Bn bWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgotLS0KIGNv bnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMgICAgICB8IDEwICsrKysrKy0tLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICB8ICA5ICsrKystLS0tLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX25vZGUuYyAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheXN1YnMuYyB8ICA2ICsr KystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIHwgIDYgKysrKy0tCiBzcmMv aW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCAgfCAgNyArKysrKystCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgfCAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRp b25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3Rv cmVfc3Vicy5jIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwppbmRleCAzZDAzZjY2ZmEw ZC4uMWIyOTU0M2FiNjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMK KysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYwpAQCAtNDAsNyArNDAsNyBAQAogICov CiBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVm ICpzYnNyZWYsCi0JCQkJCQkgICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgIExpc3QgKipp bmRpcmVjdGlvbiwKIAkJCQkJCSAgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgIGJvb2wg aXNTbGljZSwKIAkJCQkJCSAgIGJvb2wgaXNBc3NpZ25tZW50KQpAQCAtNDksMTUgKzQ5LDE1IEBA IGhzdG9yZV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCU5v ZGUJICAgKnN1YmV4cHI7CiAKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2luZ2xlLXN1YnNjcmlwdCwg bm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoaW5kaXJlY3Rp b24pICE9IDEpCisJaWYgKGlzU2xpY2UgfHwgbGlzdF9sZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAx KQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dzIG9ubHkgb25lIHN1YnNjcmlwdCIp LAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAotCQkJCQkJCQkJZXhwckxvY2F0aW9u KChOb2RlICopIGluZGlyZWN0aW9uKSkpKTsKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAq KSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3JpcHQgZXhwcmVz c2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRpY2VzLCBpbmRp cmVjdGlvbik7CisJYWkgPSBsaW5pdGlhbF9ub2RlKEFfSW5kaWNlcywgKmluZGlyZWN0aW9uKTsK IAlBc3NlcnQoYWktPnVpZHggIT0gTlVMTCAmJiBhaS0+bGlkeCA9PSBOVUxMICYmICFhaS0+aXNf c2xpY2UpOwogCiAJc3ViZXhwciA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0 YXRlLT5wX2V4cHJfa2luZCk7CkBAIC04MSw2ICs4MSw4IEBAIGhzdG9yZV9zdWJzY3JpcHRfdHJh bnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUgcmVzdWx0 IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyB0ZXh0ICovCiAJc2Jz cmVmLT5yZWZyZXN0eXBlID0gVEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJ KmluZGlyZWN0aW9uID0gTklMOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXgg ZTE5NzlhODBjMTkuLjZlOGZkNDJjNjEyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ2 NSwxNCArNDY1LDEzIEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQogCQkJQXNzZXJ0KElzQShuLCBTdHJpbmcpKTsKIAogCQkJLyog cHJvY2VzcyBzdWJzY3JpcHRzIGJlZm9yZSB0aGlzIGZpZWxkIHNlbGVjdGlvbiAqLwotCQkJaWYg KHN1YnNjcmlwdHMpCisJCQl3aGlsZSAoc3Vic2NyaXB0cykKIAkJCQlyZXN1bHQgPSAoTm9kZSAq KSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCSAg IHJlc3VsdCwKIAkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJCQkJ CQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICBzdWJzY3JpcHRz LAorCQkJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJCQkgICBmYWxz ZSk7Ci0JCQlzdWJzY3JpcHRzID0gTklMOwogCiAJCQluZXdyZXN1bHQgPSBQYXJzZUZ1bmNPckNv bHVtbihwc3RhdGUsCiAJCQkJCQkJCQkJICBsaXN0X21ha2UxKG4pLApAQCAtNDg3LDEyICs0ODYs MTIgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0 aW9uICppbmQpCiAJCX0KIAl9CiAJLyogcHJvY2VzcyB0cmFpbGluZyBzdWJzY3JpcHRzLCBpZiBh bnkgKi8KLQlpZiAoc3Vic2NyaXB0cykKKwl3aGlsZSAoc3Vic2NyaXB0cykKIAkJcmVzdWx0ID0g KE5vZGUgKikgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3RhdGUsCiAJCQkJCQkJCQkJ CQkJICAgcmVzdWx0LAogCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCiAJCQkJCQkJ CQkJCQkJICAgZXhwclR5cG1vZChyZXN1bHQpLAotCQkJCQkJCQkJCQkJCSAgIHN1YnNjcmlwdHMs CisJCQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJCQkJICAgZmFsc2UpOwog CiAJcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IDIwM2I3YTMyMTc4 Li5mMDViYWE1MGExNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yNDQsNyArMjQ0LDcg QEAgdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJIE5vZGUgKmNvbnRhaW5lckJhc2UsCiAJCQkJCQkJIE9pZCBjb250YWluZXJUeXBlLAogCQkJ CQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJIExpc3QgKmluZGlyZWN0aW9uLAor CQkJCQkJCSBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkJIGJvb2wgaXNBc3NpZ25tZW50KQog ewogCVN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHRyYW5zZm9y bUNvbnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGVsZW1lbnQuICBJ ZiBhbnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRo ZW4KIAkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ug b3BlcmF0aW9uLgogCSAqLwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlk eCwgKmluZGlyZWN0aW9uKQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0lu ZGljZXMsIGlkeCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5MDVjOTc1ZDgz Yi4uYTA5NzczNjIyOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNSw3ICs5 MzUsNyBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBiYXNlbm9kZSwKIAkJCQkJCQkJCQkgIGNvbnRhaW5lclR5cGUsCiAJCQkJ CQkJCQkJICBjb250YWluZXJUeXBNb2QsCi0JCQkJCQkJCQkJICBzdWJzY3JpcHRzLAorCQkJCQkJ CQkJCSAgJnN1YnNjcmlwdHMsCiAJCQkJCQkJCQkJICB0cnVlKTsKIAogCXR5cGVOZWVkZWQgPSBz YnNyZWYtPnJlZnJlc3R5cGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlzdWJzLmMKaW5kZXggMjk0MGZi OGU4ZDcuLjIzNGMyYzI3OGMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJy YXlzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCkBAIC01NCw3 ICs1NCw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5U3ViV29ya3NwYWNlCiAgKi8KIHN0YXRpYyB2 b2lkCiBhcnJheV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAot CQkJCQkJICBMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCSAgTGlzdCAqKmluZGlyZWN0aW9uLAog CQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgIGJvb2wgaXNTbGljZSwKIAkJCQkJ CSAgYm9vbCBpc0Fzc2lnbm1lbnQpCkBAIC03MSw3ICs3MSw3IEBAIGFycmF5X3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJICogaW5kaXJlY3Rpb24gaXRlbXMg dG8gc2xpY2VzIGJ5IHRyZWF0aW5nIHRoZSBzaW5nbGUgc3Vic2NyaXB0IGFzIHRoZQogCSAqIHVw cGVyIGJvdW5kIGFuZCBzdXBwbHlpbmcgYW4gYXNzdW1lZCBsb3dlciBib3VuZCBvZiAxLgogCSAq LwotCWZvcmVhY2goaWR4LCBpbmRpcmVjdGlvbikKKwlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9u KQogCXsKIAkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CiAJ CU5vZGUJICAgKnN1YmV4cHI7CkBAIC0xNTIsNiArMTUyLDggQEAgYXJyYXlfc3Vic2NyaXB0X3Ry YW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVy SW5kZXhwciksIE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIg c2VwYXJhdGVseSAqLwogCisJKmluZGlyZWN0aW9uID0gTklMOworCiAJLyoKIAkgKiBEZXRlcm1p bmUgdGhlIHJlc3VsdCB0eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uLiAgSXQncyB0 aGUgc2FtZQogCSAqIGFzIHRoZSBhcnJheSB0eXBlIGlmIHdlJ3JlIHNsaWNpbmcsIGVsc2UgaXQn cyB0aGUgZWxlbWVudCB0eXBlLiAgSW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCBl ODYyNmQzYjRmYy4uNWVhZDY5M2EzYjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYnN1YnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAg LTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3BhY2UKICAqLwogc3Rh dGljIHZvaWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNy ZWYsCi0JCQkJCQkgIExpc3QgKmluZGlyZWN0aW9uLAorCQkJCQkJICBMaXN0ICoqaW5kaXJlY3Rp b24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSAgYm9vbCBpc1NsaWNlLAog CQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKQEAgLTUzLDcgKzUzLDcgQEAganNvbmJfc3Vic2Ny aXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkgKiBUcmFuc2Zvcm0gYW5k IGNvbnZlcnQgdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucy4gSnNvbmIgc3Vic2NyaXB0aW5nCiAJ ICogZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMsIGxvb2sgb25seSBhdCB0aGUgdXBwZXIgaW5kZXgu CiAJICovCi0JZm9yZWFjaChpZHgsIGluZGlyZWN0aW9uKQorCWZvcmVhY2goaWR4LCAqaW5kaXJl Y3Rpb24pCiAJewogCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFfSW5kaWNlcywgaWR4 KTsKIAkJTm9kZQkgICAqc3ViRXhwcjsKQEAgLTE1OSw2ICsxNTksOCBAQCBqc29uYl9zdWJzY3Jp cHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCS8qIERldGVybWluZSB0aGUg cmVzdWx0IHR5cGUgb2YgdGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb247IGFsd2F5cyBqc29uYiAq LwogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05CT0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0g LTE7CisKKwkqaW5kaXJlY3Rpb24gPSBOSUw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3N1YnNjcmlwdGlu Zy5oCmluZGV4IDIzNGU4YWQ4MDEyLi5kZjk4OGE4NWZhZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0 aW5nLmgKQEAgLTcxLDYgKzcxLDExIEBAIHN0cnVjdCBTdWJzY3JpcHRFeGVjU3RlcHM7CiAgKiBk b2VzIG5vdCBjYXJlIHRvIHN1cHBvcnQgc2xpY2luZywgaXQgY2FuIGp1c3QgdGhyb3cgYW4gZXJy b3IgaWYgaXNTbGljZS4pCiAgKiBTZWUgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgpIGZvciBz YW1wbGUgY29kZS4KICAqCisgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCByZWNlaXZlcyBhIHBvaW50 ZXIgdG8gYSBsaXN0IG9mIHJhdyBpbmRpcmVjdGlvbnMuCisgKiBJdCBtYXkgcGFyc2UgYSBzdWJs aXN0ICh0eXBpY2FsbHkgdGhlIHByZWZpeCkgb2YgdGhlc2UgaW5kaXJlY3Rpb25zIGFuZAorICog bW9kaWZ5IHRoZSBvcmlnaW5hbCBsaXN0IGluIHBsYWNlLCBhbGxvd2luZyB0aGUgY2FsbGVyIHRv IGhhbmRsZSBhbnkKKyAqIHJlbWFpbmluZyBpbmRpcmVjdGlvbnMgZGlmZmVyZW50bHkgb3IgdG8g cmFpc2UgYW4gZXJyb3IgYXMgbmVlZGVkLgorICoKICAqIFRoZSB0cmFuc2Zvcm0gbWV0aG9kIGlz IGFsc28gcmVzcG9uc2libGUgZm9yIGlkZW50aWZ5aW5nIHRoZSByZXN1bHQgdHlwZQogICogb2Yg dGhlIHN1YnNjcmlwdGluZyBvcGVyYXRpb24uICBBdCBjYWxsLCByZWZjb250YWluZXJ0eXBlIGFu ZCByZWZ0eXBtb2QKICAqIGRlc2NyaWJlIHRoZSBjb250YWluZXIgdHlwZSAodGhpcyB3aWxsIGJl IGEgYmFzZSB0eXBlIG5vdCBhIGRvbWFpbiksIGFuZApAQCAtOTMsNyArOTgsNyBAQCBzdHJ1Y3Qg U3Vic2NyaXB0RXhlY1N0ZXBzOwogICogYXNzaWdubWVudCBtdXN0IHJldHVybi4KICAqLwogdHlw ZWRlZiB2b2lkICgqU3Vic2NyaXB0VHJhbnNmb3JtKSAoU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYs Ci0JCQkJCQkJCQlMaXN0ICppbmRpcmVjdGlvbiwKKwkJCQkJCQkJCUxpc3QgKippbmRpcmVjdGlv biwKIAkJCQkJCQkJCXN0cnVjdCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQlib29sIGlz U2xpY2UsCiAJCQkJCQkJCQlib29sIGlzQXNzaWdubWVudCk7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aAppbmRleCBmN2QwN2M4NDU0Mi4uNThhNGI5ZGYxNTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUu aApAQCAtMzYxLDcgKzM2MSw3IEBAIGV4dGVybiBTdWJzY3JpcHRpbmdSZWYgKnRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQkJCSBOb2Rl ICpjb250YWluZXJCYXNlLAogCQkJCQkJCQkJCQkJCSBPaWQgY29udGFpbmVyVHlwZSwKIAkJCQkJ CQkJCQkJCQkgaW50MzIgY29udGFpbmVyVHlwTW9kLAotCQkJCQkJCQkJCQkJCSBMaXN0ICppbmRp cmVjdGlvbiwKKwkJCQkJCQkJCQkJCQkgTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJCQkJCQkJ CSBib29sIGlzQXNzaWdubWVudCk7CiBleHRlcm4gQ29uc3QgKm1ha2VfY29uc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0NvbnN0ICphY29uc3QpOwogCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQp Cgo= --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Disposition: attachment; filename="v17-0006-Implement-Jsonb-subscripting-with-slicing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge7c2 RnJvbSAyZDMyZWMzMDcyMDNiZGMwNzAxM2M1N2Q5ZjBjZDg5YWRjYmQ0YjM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTcgNi83XSBJbXBsZW1lbnQgSnNvbmIgc3Vic2NyaXB0aW5nIHdpdGggc2xpY2luZwoK UHJldmlvdXNseSwgc2xpY2luZyB3YXMgbm90IHN1cHBvcnRlZCBmb3IganNvbmIgc3Vic2NyaXB0 aW5nLiBUaGlzIGNvbW1pdAppbXBsZW1lbnRzIHN1YnNjcmlwdGluZyB3aXRoIHNsaWNpbmcgYXMg cGFydCBvZiB0aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCnN5bnRheCBzcGVjaWZpZWQgaW4g U1FMOjIwMjMuCgpDby1hdXRob3JlZC1ieTogTmlraXRhIEdsdWtob3YgPGdsdWtob3Yubi5hQGdt YWlsLmNvbT4KQ28tYXV0aG9yZWQtYnk6IEFsZXhhbmRyYSBXYW5nIDxhbGV4YW5kcmEud2FuZy5v c3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IER1bnN0YW4gPGFuZHJld0BkdW5zbGFu ZS5uZXQ+ClJldmlld2VkLWJ5OiBNYXRoZXVzIEFsY2FudGFyYSA8bWF0aGV1c3NzaWx2OTdAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogTWFyayBEaWxnZXIgPG1hcmsuZGlsZ2VyQGVudGVycHJpc2Vk Yi5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBWaWsgRmVhcmluZyA8dmlrQHBvc3RncmVzZnJpZW5kcy5vcmc+ClJldmll d2VkLWJ5OiBOaWtpdGEgTWFsYWtob3YgPGh1a3V0b2NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog UGV0ZXIgRWlzZW50cmF1dCA8cGV0ZXJAZWlzZW50cmF1dC5vcmc+ClJldmlld2VkLWJ5OiBDaGFv IExpIDxsaS5ldmFuLmNoYW9AZ21haWwuY29tPgpUZXN0ZWQtYnk6IE1hcmsgRGlsZ2VyIDxtYXJr LmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpUZXN0ZWQtYnk6IEppYW4gSGUgPGppYW4udW5pdmVy c2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMg ICAgICAgICAgICAgfCAxMTkgKysrKysrKystLS0tLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uYyAgICAgICAgICB8ICAxNiArLQogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRlcnIgICAgIHwgIDI2ICsrLS0KIC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQv c3FsLXNxbGpzb24uc3Rkb3V0ICAgICB8ICAgMyArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qv c3FsL3NxbGpzb24ucGdjICAgICAgfCAgIDcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv anNvbmIub3V0ICAgICAgICAgICB8IDE0NSArKysrKysrKysrKysrKysrLS0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbCAgICAgICAgICAgICAgICB8ICA1MyArKysrKystCiA3IGZpbGVz IGNoYW5nZWQsIDI4NiBpbnNlcnRpb25zKCspLCA4MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmJzdWJzLmMKaW5kZXggY2NjNWYzYzZlOTQuLjQ3NjJmNmJkMTFjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xMTEsNyArMTExLDcgQEAgY29lcmNlX2pzb25wYXRoX3N1 YnNjcmlwdF90b19pbnQ0X29yX3RleHQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHBy KQogICoKICAqIEpzb25QYXRoIGlzIG5lZWRlZCBpZiB0aGUgaW5kaXJlY3Rpb24gbGlzdCBpbmNs dWRlczoKICAqIC0gU3RyaW5nLWJhc2VkIGFjY2VzcyAoZG90IG5vdGF0aW9uKQotICogLSBTbGlj ZS1iYXNlZCBzdWJzY3JpcHRpbmcgKHdoZW4gaXNTbGljZSBpcyB0cnVlKQorICogLSBTbGljZS1i YXNlZCBzdWJzY3JpcHRpbmcKICAqCiAgKiBPdGhlcndpc2UsIHNpbXBsZSBqc29uYiBzdWJzY3Jp cHRpbmcgaXMgZW5vdWdoLgogICovCkBAIC0xMjcsNyArMTI3LDExIEBAIGpzb25iX2NoZWNrX2pz b25wYXRoX25lZWRlZChMaXN0ICppbmRpcmVjdGlvbikKIAkJaWYgKElzQShhY2Nlc3NvciwgU3Ry aW5nKSkKIAkJCXJldHVybiB0cnVlOwogCQllbHNlCisJCXsKIAkJCUFzc2VydChJc0EoYWNjZXNz b3IsIEFfSW5kaWNlcykpOworCQkJaWYgKGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpLT5p c19zbGljZSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQogCX0KIAogCXJldHVybiBmYWxzZTsKQEAg LTE1MiwyMCArMTU2LDQ1IEBAIG1ha2VfanNvbnBhdGhfaXRlbShKc29uUGF0aEl0ZW1UeXBlIHR5 cGUpCiAJcmV0dXJuIHY7CiB9CiAKKy8qCisgKiBCdWlsZCBhIEpzb25QYXRoUGFyc2VJdGVtIGZv ciBhIGNvbnN0YW50IGludGVnZXIgdmFsdWUuCisgKgorICogVGhpcyBmdW5jdGlvbiBjb25zdHJ1 Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZvciB1c2UgaW4gSnNvblBhdGgsCisgKiBhbmQgYXBwZW5k cyBhIG1hdGNoaW5nIENvbnN0KElOVDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlz dAorICogZm9yIHVzZSBpbiBFWFBMQUlOLCB2aWV3cywgZXRjLgorICoKKyAqIFBhcmFtZXRlcnM6 CisgKiAtIHZhbDogaW50ZWdlciBjb25zdGFudCB2YWx1ZQorICogLSBleHByczogbGlzdCBvZiBl eHByZXNzaW9uIG5vZGVzICh1cGRhdGVkIGluIHBsYWNlKQorICovCitzdGF0aWMgSnNvblBhdGhQ YXJzZUl0ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtX2ludChpbnQzMiB2YWwsIExpc3QgKipleHBy cykKK3sKKwlKc29uUGF0aFBhcnNlSXRlbSAqanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51 bWVyaWMpOworCisJanBpLT52YWx1ZS5udW1lcmljID0KKwkJRGF0dW1HZXROdW1lcmljKERpcmVj dEZ1bmN0aW9uQ2FsbDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKHZhbCkpKTsKKworCSpl eHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRPaWQs IDQsCisJCQkJCQkJCQkgICBJbnQzMkdldERhdHVtKHZhbCksIGZhbHNlLCB0cnVlKSk7CisKKwly ZXR1cm4ganBpOworfQorCiAvKgogICogQ29udmVydCBhIGNvbnN0YW50IGludGVnZXIgZXhwcmVz c2lvbiBpbnRvIGEgSnNvblBhdGhQYXJzZUl0ZW0uCiAgKgogICogVGhlIGlucHV0IGV4cHJlc3Np b24gbXVzdCBiZSBhIG5vbi1udWxsIGNvbnN0YW50IG9mIHR5cGUgSU5UNC4gUmV0dXJucyBOVUxM IG90aGVyd2lzZS4KLSAqIFRoaXMgZnVuY3Rpb24gY29uc3RydWN0cyBhIGpwaU51bWVyaWMgaXRl bSBmb3IgdXNlIGluIEpzb25QYXRoIGFuZCBhcHBlbmRzIGEgbWF0Y2hpbmcKLSAqIENvbnN0KElO VDQpIG5vZGUgdG8gdGhlIGdpdmVuIGV4cHJlc3Npb24gbGlzdCBmb3IgdXNlIGluIEVYUExBSU4s IHZpZXdzLCBldGMuCisgKiBUaGUgZnVuY3Rpb24gZXh0cmFjdHMgdGhlIHZhbHVlIGFuZCBkZWxl Z2F0ZXMgaXQgdG8gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgpLgogICoKICAqIFBhcmFtZXRlcnM6 CiAgKiAtIHBzdGF0ZTogcGFyc2Ugc3RhdGUgY29udGV4dAogICogLSBleHByOiBpbnB1dCBleHBy ZXNzaW9uIG5vZGUKICAqIC0gZXhwcnM6IGxpc3Qgb2YgZXhwcmVzc2lvbiBub2RlcyAodXBkYXRl ZCBpbiBwbGFjZSkKKyAqIC0gbm9fZXJyb3I6IHJldHVybnMgTlVMTCB3aGVuIHRoZSBkYXRhIHR5 cGUgZG9lc24ndCBtYXRjaC4gT3RoZXJ3aXNlLCBlbWl0cyBhbiBFUlJPUi4KICAqLwogc3RhdGlj IEpzb25QYXRoUGFyc2VJdGVtICoKLW1ha2VfanNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAqKmV4cHJzKQorbWFrZV9qc29ucGF0aF9pdGVtX2V4 cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBMaXN0ICoqZXhwcnMsIGJvb2wgbm9f ZXJyb3IpCiB7CiAJQ29uc3QJICAgKmNuc3Q7CiAKQEAgLTE3NSwyMCArMjA0LDE3IEBAIG1ha2Vf anNvbnBhdGhfaXRlbV9leHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgTGlzdCAq KmV4cHJzKQogCXsKIAkJY25zdCA9IChDb25zdCAqKSBleHByOwogCQlpZiAoY25zdC0+Y29uc3R0 eXBlID09IElOVDRPSUQgJiYgIShjbnN0LT5jb25zdGlzbnVsbCkpCi0JCXsKLQkJCUpzb25QYXRo UGFyc2VJdGVtICpqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpTnVtZXJpYyk7Ci0KLQkJCWpw aS0+dmFsdWUubnVtZXJpYyA9Ci0JCQkJRGF0dW1HZXROdW1lcmljKERpcmVjdEZ1bmN0aW9uQ2Fs bDEoaW50NF9udW1lcmljLCBJbnQzMkdldERhdHVtKGNuc3QtPmNvbnN0dmFsdWUpKSk7Ci0KLQkJ CSpleHBycyA9IGxhcHBlbmQoKmV4cHJzLCBtYWtlQ29uc3QoSU5UNE9JRCwgLTEsIEludmFsaWRP aWQsIDQsCi0JCQkJCQkJCQkJCSAgIEludDMyR2V0RGF0dW0oY25zdC0+Y29uc3R2YWx1ZSksIGZh bHNlLCB0cnVlKSk7Ci0KLQkJCXJldHVybiBqcGk7Ci0JCX0KKwkJCXJldHVybiBtYWtlX2pzb25w YXRoX2l0ZW1faW50KERhdHVtR2V0SW50MzIoY25zdC0+Y29uc3R2YWx1ZSksIGV4cHJzKTsKIAl9 CiAKLQlyZXR1cm4gTlVMTDsKKwlpZiAobm9fZXJyb3IpCisJCXJldHVybiBOVUxMOworCWVsc2UK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gp LAorCQkJCWVycm1zZygib25seSBub24tbnVsbCBpbnRlZ2VyIGNvbnN0YW50cyBhcmUgc3VwcG9y dGVkIGZvciBqc29uYiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN1YnNjcmlwdGluZyIpLAorCQkJCWVy cmhpbnQoInVzZSBpbnQgZGF0YSB0eXBlIGZvciBzdWJzY3JpcHRpbmcgd2l0aCBzbGljaW5nLiIp LAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihleHByKSkpOwog fQogCiAvKgpAQCAtMjUxLDEzICsyNzcsMTIgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBh dGgoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJ ZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQogCQl7CiAJCQlBX0luZGljZXMgICph aSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCQkJSnNvblBhdGhQYXJzZUl0ZW0g KmpwaV9mcm9tID0gTlVMTDsKIAogCQkJaWYgKCFhaS0+aXNfc2xpY2UpCiAJCQl7Ci0JCQkJSnNv blBhdGhQYXJzZUl0ZW0gKmpwaV9mcm9tID0gTlVMTDsKLQogCQkJCUFzc2VydChhaS0+dWlkeCAm JiAhYWktPmxpZHgpOwotCQkJCWpwaV9mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2V4cHIocHN0 YXRlLCBhaS0+dWlkeCwgJnNic3JlZi0+cmVmdXBwZXJpbmRleHByKTsKKwkJCQlqcGlfZnJvbSA9 IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVw cGVyaW5kZXhwciwgdHJ1ZSk7CiAJCQkJaWYgKGpwaV9mcm9tID09IE5VTEwpCiAJCQkJewogCQkJ CQkvKgpAQCAtMjg0LDIyICszMDksMzQgQEAganNvbmJfc3Vic2NyaXB0X21ha2VfanNvbnBhdGgo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICoqaW5kaXJlY3Rpb24sIFN1YnNjcmlwdGkKIAkJCQkJ ICovCiAJCQkJCWJyZWFrOwogCQkJCX0KKwkJCX0KIAotCQkJCWpwaSA9IG1ha2VfanNvbnBhdGhf aXRlbShqcGlJbmRleEFycmF5KTsKLQkJCQlqcGktPnZhbHVlLmFycmF5Lm5lbGVtcyA9IDE7Ci0J CQkJanBpLT52YWx1ZS5hcnJheS5lbGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJh eS5lbGVtc1swXSkpOworCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4QXJyYXkp OworCQkJanBpLT52YWx1ZS5hcnJheS5uZWxlbXMgPSAxOworCQkJanBpLT52YWx1ZS5hcnJheS5l bGVtcyA9IHBhbGxvYyhzaXplb2YoanBpLT52YWx1ZS5hcnJheS5lbGVtc1swXSkpOwogCisJCQlp ZiAoIWFpLT5pc19zbGljZSkKKwkJCXsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZy b20gPSBqcGlfZnJvbTsKIAkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsK IAkJCX0KIAkJCWVsc2UKIAkJCXsKLQkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+ dWlkeCA6IGFpLT5saWR4OworCQkJCXdoaWxlIChsaXN0X2xlbmd0aChzYnNyZWYtPnJlZmxvd2Vy aW5kZXhwcikgPCBsaXN0X2xlbmd0aChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwcikpCisJCQkJCXNi c3JlZi0+cmVmbG93ZXJpbmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwciwg TlVMTCk7CisKKwkJCQlpZiAoYWktPmxpZHgpCisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNb MF0uZnJvbSA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0ZSwgYWktPmxpZHgsICZzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UKKwkJCQkJanBpLT52YWx1ZS5h cnJheS5lbGVtc1swXS5mcm9tID0gbWFrZV9qc29ucGF0aF9pdGVtX2ludCgwLCAmc2JzcmVmLT5y ZWZsb3dlcmluZGV4cHIpOwogCi0JCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVS UkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAotCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0 IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIiksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOworCQkJCWlmIChhaS0+dWlkeCkKKwkJCQkJanBp LT52YWx1ZS5hcnJheS5lbGVtc1swXS50byA9IG1ha2VfanNvbnBhdGhfaXRlbV9leHByKHBzdGF0 ZSwgYWktPnVpZHgsICZzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgZmFsc2UpOworCQkJCWVsc2UK KwkJCQl7CisJCQkJCWpwaS0+dmFsdWUuYXJyYXkuZWxlbXNbMF0udG8gPSBtYWtlX2pzb25wYXRo X2l0ZW0oanBpTGFzdCk7CisJCQkJCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gbGFwcGVuZChz YnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgTlVMTCk7CisJCQkJfQogCQkJfQogCQl9CiAJCWVsc2UK QEAgLTM4MSwzMiArNDE4LDEyIEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0 aW5nUmVmICpzYnNyZWYsCiAJCWFpID0gbGZpcnN0X25vZGUoQV9JbmRpY2VzLCBpZHgpOwogCiAJ CWlmIChhaS0+aXNfc2xpY2UpCi0JCXsKLQkJCU5vZGUJICAgKmV4cHIgPSBhaS0+dWlkeCA/IGFp LT51aWR4IDogYWktPmxpZHg7CisJCQlicmVhazsKIAotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJtc2coImpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4cHIpKSkpOwotCQl9CisJCUFzc2VydCghYWkt PmxpZHggJiYgYWktPnVpZHgpOwogCi0JCWlmIChhaS0+dWlkeCkKLQkJewotCQkJc3ViRXhwciA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBhaS0+dWlkeCwgcHN0YXRlLT5wX2V4cHJfa2luZCk7Ci0J CQlzdWJFeHByID0gY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQocHN0 YXRlLCBzdWJFeHByKTsKLQkJfQotCQllbHNlCi0JCXsKLQkJCS8qCi0JCQkgKiBTbGljZSB3aXRo IG9taXR0ZWQgdXBwZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKLQkJ CSAqIGVycm9yZWQgb3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGlu IGNhc2UuCi0JCQkgKi8KLQkJCUFzc2VydChhaS0+aXNfc2xpY2UpOwotCQkJZXJlcG9ydChFUlJP UiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCi0JCQkJCSBlcnJt c2coImpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyIpLAotCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGFpLT51aWR4KSkpKTsKLQkJfQor CQlzdWJFeHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhw cl9raW5kKTsKKwkJc3ViRXhwciA9IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHRfdG9faW50NF9v cl90ZXh0KHBzdGF0ZSwgc3ViRXhwcik7CiAKIAkJdXBwZXJJbmRleHByID0gbGFwcGVuZCh1cHBl ckluZGV4cHIsIHN1YkV4cHIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcv dGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4 cGVjdGVkL3NxbC1zcWxqc29uLmMKaW5kZXggZTZhN2VjZTZkYWIuLjkzNWI0N2EzYjlhIDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwor KysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uYwpAQCAt NTA1LDcgKzUwNSw3IEBAIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiBpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogI2xpbmUgMTQyICJzcWxqc29uLnBnYyIK IAotCS8vIGVycm9yCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCXsgRUNQ R2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24g KCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtc InhcIjogWzEyLCB7XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwg CiAJRUNQR3RfY2hhciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hh ciksIApAQCAtNTI1LDE0ICs1MjUsMjQgQEAgaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmlu dCgpO30KIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CiAjbGluZSAxNDggInNx bGpzb24ucGdjIgogCi0JLy8gZXJyb3IKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24p OwogCi0gIHsgRUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgOiBdICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CiAjbGluZSAxNTEgInNxbGpzb24ucGdjIgogCiBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQogI2xpbmUgMTUxICJzcWxqc29uLnBnYyIKIAorCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKyAgeyBFQ1BHZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQi KTsKKyNsaW5lIDE1NCAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CisjbGluZSAxNTQgInNxbGpzb24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24u c3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0 ZGVycgppbmRleCAxOWY4YzU4YWYwNi4uZjNmODk5YzZkODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMzM5LDEz ICszMzksMTAgQEAgU1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBs aW5lIDEyMQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDI6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06IHNxbGNh OiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9u IGxpbmUgMTQyOiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi4sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nIDo6 IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElEXTogZWNw Z19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0MjogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3aXRo IDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJ RF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDI6IFJFU1VMVDogWzEyLCB7InkiOiAxfV0gb2Zm c2V0OiAtMTsgYXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAotW05PX1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25i IHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0MgotW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2Ny aXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCiBbTk9fUElEXTogZWNwZ19l eGVjdXRlIG9uIGxpbmUgMTQ1OiBxdWVyeTogc2VsZWN0IGpzb24gKCAoICd7ImEiOiB7ImIiOiAx LCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNv bmIgKSAuICogKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jl c3Npb24KIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElEXTog ZWNwZ19leGVjdXRlIG9uIGxpbmUgMTQ1OiB1c2luZyBQUWV4ZWMKQEAgLTM2MSwxMiArMzU4LDE3 IEBAIFNRTCBlcnJvcjogcm93IGV4cGFuc2lvbiB2aWEgIioiIGlzIG5vdCBzdXBwb3J0ZWQgaGVy ZSBvbiBsaW5lIDE0NQogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKIFtO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYwogW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKLVtOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVz dWx0IG9uIGxpbmUgMTQ4OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBk b2VzIG5vdCBzdXBwb3J0IHNsaWNlcwotTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9fUElE XTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDE0ODogY29ycmVjdGx5IGdvdCAxIHR1cGxl cyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxNDg6IFJFU1VMVDogW3sieCI6IDF9LCB7 IngiOiBbMTIsIHsieSI6IDF9XX1dIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNx bGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGlu ZSAxNTE6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJi IjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIC4gYiBbIDog XSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgor W05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4 ZWN1dGUgb24gbGluZSAxNTE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAw LCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTUx OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDE1 MTogUkVTVUxUOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjogMX1dfV0gb2Zmc2V0OiAtMTsg YXJyYXk6IG5vCiBbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAotW05PX1BJ RF06IHJhaXNpbmcgc3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1YnNjcmlw dCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAotW05PX1BJRF06IHNxbGNhOiBj b2RlOiAtNDAwLCBzdGF0ZTogNDI4MDQKLVNRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElEXTogZWNwZ19maW5pc2g6IGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19QSURdOiBzcWxjYTogY29kZTog MCwgc3RhdGU6IDAwMDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhw ZWN0ZWQvc3FsLXNxbGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVj dGVkL3NxbC1zcWxqc29uLnN0ZG91dAppbmRleCA0NDJkMzY5MzFmMS4uZDAxYTg0NTdmMDEgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5z dGRvdXQKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29u LnN0ZG91dApAQCAtMzUsMyArMzUsNiBAQCBGb3VuZCBqc29uPW51bGwKIEZvdW5kIGpzb249eyJ4 IjogMX0KIEZvdW5kIGpzb249WzEsIFsxMiwgeyJ5IjogMX1dXQogRm91bmQganNvbj17IngiOiAx fQorRm91bmQganNvbj1bMTIsIHsieSI6IDF9XQorRm91bmQganNvbj1beyJ4IjogMX0sIHsieCI6 IFsxMiwgeyJ5IjogMX1dfV0KK0ZvdW5kIGpzb249W3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6 IDF9XX1dCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24u cGdjIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBnYwppbmRleCA1N2E5 YmZmNDI0ZC4uOTQyM2QyNWZkMGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVz dC9zcWwvc3FsanNvbi5wZ2MKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxq c29uLnBnYwpAQCAtMTQwLDEzICsxNDAsMTYgQEAgRVhFQyBTUUwgRU5EIERFQ0xBUkUgU0VDVElP TjsKIAlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOwogCiAJRVhFQyBTUUwgU0VMRUNU IEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEy LCB7InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhbMDpdKSBJTlRPIDpqc29uOwotCS8vIGVycm9y CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogCUVYRUMgU1FMIFNFTEVDVCBK U09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwg eyJ5IjoxfV19XX0nOjpqc29uYikuKikgSU5UTyA6anNvbjsKIAkvLyBlcnJvcgogCiAJRVhFQyBT UUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwg eyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKVsnYiddWzA6XSkgSU5UTyA6anNvbjsKLQkv LyBlcnJvcgorCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBT RUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7Ingi OiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLmJbOl0pIElOVE8gOmpzb247CisJcHJpbnRmKCJG b3VuZCBqc29uPSVzXG4iLCBqc29uKTsKIAogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CmluZGV4IDM3ZDcxYjIzZDVkLi4yNzAyZWRjOTcwNSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQKQEAgLTUyNDcsMjMgKzUyNDcsMzQgQEAg c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKS5hWzFdLmIKICgxIHJvdykKIAogc2VsZWN0ICgneyJhIjogMX0nOjpq c29uYilbJ2EnOidiJ107IC0tIGZhaWxzCi1FUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5v dCBzdXBwb3J0IHNsaWNlcworRVJST1I6ICBvbmx5IG5vbi1udWxsIGludGVnZXIgY29uc3RhbnRz IGFyZSBzdXBwb3J0ZWQgZm9yIGpzb25iIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3Vic2NyaXB0aW5n CiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWydhJzonYiddOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgdXNlIGludCBkYXRhIHR5cGUgZm9yIHN1YnNjcmlwdGluZyB3 aXRoIHNsaWNpbmcuCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwotRVJS T1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJTkUgMTogc2Vs ZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMToyXTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCisgICAganNvbmIgICAgCistLS0tLS0tLS0tLS0tCisg WyIyIiwgbnVsbF0KKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb OjJdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMKLUxJ TkUgMTogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICBqc29uYiAgICAgIAorLS0tLS0t LS0tLS0tLS0tLQorIFsxLCAiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIs IG51bGxdJzo6anNvbmIpWzE6XTsKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1 cHBvcnQgc2xpY2VzCi1MSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzE6 XTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgIGpzb25i ICAgIAorLS0tLS0tLS0tLS0tLQorIFsiMiIsIG51bGxdCisoMSByb3cpCisKIHNlbGVjdCAoJ1sx LCAiMiIsIG51bGxdJzo6anNvbmIpWzpdOwotRVJST1I6ICBqc29uYiBzdWJzY3JpcHQgZG9lcyBu b3Qgc3VwcG9ydCBzbGljZXMKKyAgICAganNvbmIgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyBb MSwgIjIiLCBudWxsXQorKDEgcm93KQorCiBjcmVhdGUgVEVNUCBUQUJMRSB0ZXN0X2pzb25iX3N1 YnNjcmlwdCAoCiAgICAgICAgaWQgaW50LAogICAgICAgIHRlc3RfanNvbiBqc29uYgpAQCAtNjAx Nyw4ICs2MDI4LDQyIEBAIFNFTEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiAgCiAoMSByb3cpCiAKLVNFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29u Yl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKLUVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMg bm90IHN1cHBvcnQgc2xpY2VzCitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICB4ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7InkiOiAiWVlZIiwgInoiOiAiWlpaIn0KKygxIHJvdykKKworU0VM RUNUIChqYikuYVsyOjNdLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgICAgYiAg ICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5h WzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0t LS0tLS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVs6Ml0uYiBGUk9N IHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICBiICAKKy0tLS0tCisgImMiCisoMSByb3cpCisK K1NFTEVDVCAoamIpLmFbOl0uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICBi ICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCisoMSByb3cpCisKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgIHgg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsieSI6ICJZWVkiLCAi eiI6ICJaWloifQorKDEgcm93KQorCiBTRUxFQ1QgKGpiKS5hLiogRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsgLS0gZmFpbHMKIEVSUk9SOiAgdHlwZSBqc29uYiBpcyBub3QgY29tcG9zaXRl CiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtNjA1NCw2ICs2MDk5LDI4IEBAIENSRUFURSBW SUVXIHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZS T00gdGVzdF9qc29uYl9kCiBDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUwogIFNFTEVDVCAoamIpLmFbM10ueC55IEFTIHkKICAgIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK0NSRUFURSBWSUVXIHYyIEFTIFNFTEVDVCAoamIpLmFb MzpdLngueVs6LTFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdjIKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYyIEFTCisgU0VMRUNUIChqYikuYVszOl0ueC55WzA6 Jy0xJzo6aW50ZWdlcl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VM RUNUICogZnJvbSB2MjsKKyB5IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVXIHYzIEFT IFNFTEVDVCAoamIpLmFbOjNdLngueVstMTpdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 Citcc3YgdjMKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnYzIEFTCisgU0VMRUNUIChq YikuYVswOjNdLngueVsnLTEnOjppbnRlZ2VyOl0gQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB2MzsKKyAgIHkgICAKKy0tLS0tLS0KKyAieXl5Igor KDEgcm93KQorCiAtLSBtaXhlZCBzeW50YXgKIERST1AgVklFVyB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MTsKIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYilbJ2EnXS5i IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CkBAIC02MjM4LDUgKzYzMDUsNTUgQEAgU0VM RUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKICgxIHJvdykKIAogRFJPUCBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKy0tIGpzb25iIGFycmF5IGFj Y2VzcyBpbiBwbHBnc3FsCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29uYiA6PSAn WzEsMiwzLDQsNSw2LDddJzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAgICAgV0hJTEUgYSBJUyBO T1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAgIFJBSVNFIE5PVElDRSAn JScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBhWzI6XTsKKyAgICAgICAgICAgIEVORCBMT09Q OworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK05PVElDRTogIFsxLCAyLCAzLCA0LCA1 LCA2LCA3XQorTk9USUNFOiAgWzMsIDQsIDUsIDYsIDddCitOT1RJQ0U6ICBbNSwgNiwgN10KK05P VElDRTogIDcKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBERUNM QVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBbNl0s IFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAgICAg ICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAgICAg IFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBM QU5HVUFHRSBwbHBnc3FsOworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2 XSwgWzJdLCAiYkNpIl0sICJhYWYiOiBbLTYsIC04XX0KK0VSUk9SOiAgbWlzc2luZyBGUk9NLWNs YXVzZSBlbnRyeSBmb3IgdGFibGUgImEiCitMSU5FIDE6IGEgOj0gQ09BTEVTQ0UoYS4iTlUiLCBh WzJdKQorICAgICAgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAgYSA6PSBDT0FMRVNDRShhLiJO VSIsIGFbMl0pCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSA4IGF0IGFzc2lnbm1lbnQKK0RPICQkCisgICAgREVDTEFSRQorICAgICAgICBhIGpzb25i IDo9ICd7IiI6IDYsICJOVSI6IFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2kiXSwgImFhZiI6 IFstNiwgLThdfSc6Ompzb25iOworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5V TEwKKyAgICAgICAgICAgIExPT1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBh OworICAgICAgICAgICAgICAgIGEgOj0gQ09BTEVTQ0UoKGEpLiJOVSIsIGFbMl0pOyAtLSBzdWNj ZWVkcworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECiskJCBMQU5HVUFHRSBwbHBnc3Fs OworTk9USUNFOiAgeyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0s ICJhYWYiOiBbLTYsIC04XX0KK05PVElDRTogIFt7IiI6IFtbM11dfSwgWzZdLCBbMl0sICJiQ2ki XQorTk9USUNFOiAgWzJdCiAtLSBjbGVhbiB1cAorRFJPUCBWSUVXIHYyOworRFJPUCBWSUVXIHYz OwogRFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2pzb25iLnNx bAppbmRleCA1ZmM1M2UxYzlhYS4uZGUyYzljZGEwOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL2pzb25iLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwK QEAgLTE2MjUsNyArMTYyNSwxMiBAQCBTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90 YXRpb247CiBTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOwog U0VMRUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKLVNFTEVDVCAo KGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK1NF TEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK1NFTEVD VCAoamIpLmFbMjozXS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpi KS5hWzI6XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzoy XS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzpdLmIgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoKGpiKS5iKVs6XS54IEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb24gdDsKIFNFTEVDVCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSBmYWlscwogCiAtLSBleHBsYWlucyBzaG91bGQgd29yawpAQCAtMTYz Nyw2ICsxNjQyLDEyIEBAIFNFTEVDVCAoamIpLmFbMV0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKIC0tIHZpZXdzIHNob3VsZCB3b3JrCiBDUkVBVEUgVklFVyB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUyBTRUxFQ1QgKGpiKS5hWzNdLngueSBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uOwogXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgVklFVyB2MiBB UyBTRUxFQ1QgKGpiKS5hWzM6XS54LnlbOi0xXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9u OworXHN2IHYyCitTRUxFQ1QgKiBmcm9tIHYyOworQ1JFQVRFIFZJRVcgdjMgQVMgU0VMRUNUIChq YikuYVs6M10ueC55Wy0xOl0gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB2Mwor U0VMRUNUICogZnJvbSB2MzsKIAogLS0gbWl4ZWQgc3ludGF4CiBEUk9QIFZJRVcgdGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjE7CkBAIC0xNjk3LDUgKzE3MDgsNDUgQEAgU0VMRUNUIChqYilbJ2In XVsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKIFNFTEVDVCAqIGZyb20gdGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CiBEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOwogCistLSBqc29uYiBhcnJheSBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQK KyAgICBERUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ1sxLDIsMyw0LDUsNiw3XSc6Ompzb25i OworICAgIEJFR0lOCisgICAgICAgIFdISUxFIGEgSVMgTk9UIE5VTEwKKyAgICAgICAgICAgIExP T1AKKyAgICAgICAgICAgICAgICBSQUlTRSBOT1RJQ0UgJyUnLCBhOworICAgICAgICAgICAgICAg IGEgOj0gYVsyOl07CisgICAgICAgICAgICBFTkQgTE9PUDsKKyAgICBFTkQKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKKy0tIGpzb25iIGRvdCBhY2Nlc3MgaW4gcGxwZ3NxbAorRE8gJCQKKyAgICBE RUNMQVJFCisgICAgICAgIGEganNvbmIgOj0gJ3siIjogNiwgIk5VIjogW3siIjogW1szXV19LCBb Nl0sIFsyXSwgImJDaSJdLCAiYWFmIjogWy02LCAtOF19Jzo6anNvbmI7CisgICAgQkVHSU4KKyAg ICAgICAgV0hJTEUgYSBJUyBOT1QgTlVMTAorICAgICAgICAgICAgTE9PUAorICAgICAgICAgICAg ICAgIFJBSVNFIE5PVElDRSAnJScsIGE7CisgICAgICAgICAgICAgICAgYSA6PSBDT0FMRVNDRShh LiJOVSIsIGFbMl0pOyAtLSBmYWlscworICAgICAgICAgICAgRU5EIExPT1A7CisgICAgRU5ECisk JCBMQU5HVUFHRSBwbHBnc3FsOworCitETyAkJAorICAgIERFQ0xBUkUKKyAgICAgICAgYSBqc29u YiA6PSAneyIiOiA2LCAiTlUiOiBbeyIiOiBbWzNdXX0sIFs2XSwgWzJdLCAiYkNpIl0sICJhYWYi OiBbLTYsIC04XX0nOjpqc29uYjsKKyAgICBCRUdJTgorICAgICAgICBXSElMRSBhIElTIE5PVCBO VUxMCisgICAgICAgICAgICBMT09QCisgICAgICAgICAgICAgICAgUkFJU0UgTk9USUNFICclJywg YTsKKyAgICAgICAgICAgICAgICBhIDo9IENPQUxFU0NFKChhKS4iTlUiLCBhWzJdKTsgLS0gc3Vj Y2VlZHMKKyAgICAgICAgICAgIEVORCBMT09QOworICAgIEVORAorJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKwogLS0gY2xlYW4gdXAKK0RST1AgVklFVyB2MjsKK0RST1AgVklFVyB2MzsKIERST1AgVEFC TEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0004-Extract-coerce_jsonpath_subscript.patch" Content-Disposition: attachment; filename="v17-0004-Extract-coerce_jsonpath_subscript.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge7f4 RnJvbSAxNjU4NWI4ZjkwZjY1N2FlY2M3YmUwZDVjODg1NmQ0NWM5MzE4YzdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTcgNC83XSBFeHRyYWN0IGNvZXJjZV9qc29ucGF0aF9zdWJzY3JpcHQoKQoKVGhpcyBp cyBhIHByZXBhcmF0aW9uIHN0ZXAgZm9yIGEgZnV0dXJlIGNvbW1pdCB0aGF0IHdpbGwgcmV1c2Ug dGhlCmFmb3JlbWVudGlvbmVkIGZ1bmN0aW9uLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBHbHVr aG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEgV2Fu ZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5z dGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRhcmEg PG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGppYW4udW5p dmVyc2FsaXR5QGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJz LmMgfCAxMjggKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NjQgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vi cy5jCmluZGV4IDJhYTQxMGY2MDViLi44ODUyYzI3YTE5OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29u YnN1YnMuYwpAQCAtMzIsNiArMzIsNjkgQEAgdHlwZWRlZiBzdHJ1Y3QgSnNvbmJTdWJXb3Jrc3Bh Y2UKIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBpbiBEYXR1bSBmb3Jt YXQgKi8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7CiAKK3N0YXRpYyBOb2RlICoKK2NvZXJjZV9qc29u cGF0aF9zdWJzY3JpcHRfdG9faW50NF9vcl90ZXh0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq c3ViRXhwcikKK3sKKwlPaWQJCQlzdWJFeHByVHlwZSA9IGV4cHJUeXBlKHN1YkV4cHIpOworCU9p ZAkJCXRhcmdldFR5cGUgPSBJbnZhbGlkT2lkOworCisJaWYgKHN1YkV4cHJUeXBlICE9IFVOS05P V05PSUQpCisJeworCQljb25zdCBPaWQJdGFyZ2V0c1tdID0ge0lOVDRPSUQsIFRFWFRPSUR9Owor CisJCS8qCisJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vic2NyaXB0IHR5cGVzLCBi dXQgY2FzZXMgd2hlbiBhCisJCSAqIHN1YnNjcmlwdCBjb3VsZCBiZSBjb2VyY2VkIHRvIG11bHRp cGxlIHRhcmdldCB0eXBlcyBtdXN0IGJlCisJCSAqIGF2b2lkZWQsIHNpbWlsYXIgdG8gb3Zlcmxv YWRlZCBmdW5jdGlvbnMuIEl0IGNvdWxkIGJlIHBvc3NpYmx5CisJCSAqIGV4dGVuZCB3aXRoIGpz b25wYXRoIGluIHRoZSBmdXR1cmUuCisJCSAqLworCQlmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0 aG9mKHRhcmdldHMpOyBpKyspCisJCXsKKwkJCWlmIChjYW5fY29lcmNlX3R5cGUoMSwgJnN1YkV4 cHJUeXBlLCAmdGFyZ2V0c1tpXSwgQ09FUkNJT05fSU1QTElDSVQpKQorCQkJeworCQkJCS8qCisJ CQkJICogT25lIHR5cGUgaGFzIGFscmVhZHkgc3VjY2VlZGVkLCBpdCBtZWFucyB0aGVyZSBhcmUg dHdvCisJCQkJICogY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFpbHVyZS4KKwkJCQkgKi8K KwkJCQlpZiAoT2lkSXNWYWxpZCh0YXJnZXRUeXBlKSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJCQkgZXJybXNn KCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3VwcG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3Vi RXhwclR5cGUpKSwKKwkJCQkJCQkgZXJyaGludCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29l cmNpYmxlIHRvIG9ubHkgb25lIHR5cGUsIGludGVnZXIgb3IgdGV4dC4iKSwKKwkJCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHN1YkV4cHIpKSkpOworCisJCQkJ dGFyZ2V0VHlwZSA9IHRhcmdldHNbaV07CisJCQl9CisJCX0KKworCQkvKgorCQkgKiBObyBzdWl0 YWJsZSB0eXBlcyB3ZXJlIGZvdW5kLCBmYWlsdXJlLgorCQkgKi8KKwkJaWYgKCFPaWRJc1ZhbGlk KHRhcmdldFR5cGUpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9E QVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInN1YnNjcmlwdCB0eXBlICVzIGlzIG5v dCBzdXBwb3J0ZWQiLCBmb3JtYXRfdHlwZV9iZShzdWJFeHByVHlwZSkpLAorCQkJCQkgZXJyaGlu dCgianNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2VyIG9y IHRleHQuIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o c3ViRXhwcikpKSk7CisJfQorCWVsc2UKKwkJdGFyZ2V0VHlwZSA9IFRFWFRPSUQ7CisKKwkvKgor CSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29lcmNpb24gd2lsbCBzdWNj ZWVkLCBzbworCSAqIGNvZXJjZV90eXBlIGNvdWxkIGJlIHVzZWQuIE5vdGUgdGhlIGltcGxpY2l0 IGNvZXJjaW9uIGNvbnRleHQsIHdoaWNoIGlzCisJICogcmVxdWlyZWQgdG8gaGFuZGxlIHN1YnNj cmlwdHMgb2YgZGlmZmVyZW50IHR5cGVzLCBzaW1pbGFyIHRvIG92ZXJsb2FkZWQKKwkgKiBmdW5j dGlvbnMuCisJICovCisJc3ViRXhwciA9IGNvZXJjZV90eXBlKHBzdGF0ZSwKKwkJCQkJCSAgc3Vi RXhwciwgc3ViRXhwclR5cGUsCisJCQkJCQkgIHRhcmdldFR5cGUsIC0xLAorCQkJCQkJICBDT0VS Q0lPTl9JTVBMSUNJVCwKKwkJCQkJCSAgQ09FUkNFX0lNUExJQ0lUX0NBU1QsCisJCQkJCQkgIC0x KTsKKworCXJldHVybiBzdWJFeHByOworfQogCiAvKgogICogRmluaXNoIHBhcnNlIGFuYWx5c2lz IG9mIGEgU3Vic2NyaXB0aW5nUmVmIGV4cHJlc3Npb24gZm9yIGEganNvbmIuCkBAIC03NCw3MSAr MTM3LDggQEAganNvbmJfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3Jl ZiwKIAogCQlpZiAoYWktPnVpZHgpCiAJCXsKLQkJCU9pZAkJCXN1YkV4cHJUeXBlID0gSW52YWxp ZE9pZCwKLQkJCQkJCXRhcmdldFR5cGUgPSBVTktOT1dOT0lEOwotCiAJCQlzdWJFeHByID0gdHJh bnNmb3JtRXhwcihwc3RhdGUsIGFpLT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKLQkJCXN1 YkV4cHJUeXBlID0gZXhwclR5cGUoc3ViRXhwcik7Ci0KLQkJCWlmIChzdWJFeHByVHlwZSAhPSBV TktOT1dOT0lEKQotCQkJewotCQkJCU9pZAkJCXRhcmdldHNbMl0gPSB7SU5UNE9JRCwgVEVYVE9J RH07Ci0KLQkJCQkvKgotCQkJCSAqIEpzb25iIGNhbiBoYW5kbGUgbXVsdGlwbGUgc3Vic2NyaXB0 IHR5cGVzLCBidXQgY2FzZXMgd2hlbiBhCi0JCQkJICogc3Vic2NyaXB0IGNvdWxkIGJlIGNvZXJj ZWQgdG8gbXVsdGlwbGUgdGFyZ2V0IHR5cGVzIG11c3QgYmUKLQkJCQkgKiBhdm9pZGVkLCBzaW1p bGFyIHRvIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiBJdCBjb3VsZCBiZQotCQkJCSAqIHBvc3NpYmx5 IGV4dGVuZCB3aXRoIGpzb25wYXRoIGluIHRoZSBmdXR1cmUuCi0JCQkJICovCi0JCQkJZm9yIChp bnQgaSA9IDA7IGkgPCAyOyBpKyspCi0JCQkJewotCQkJCQlpZiAoY2FuX2NvZXJjZV90eXBlKDEs ICZzdWJFeHByVHlwZSwgJnRhcmdldHNbaV0sIENPRVJDSU9OX0lNUExJQ0lUKSkKLQkJCQkJewot CQkJCQkJLyoKLQkJCQkJCSAqIE9uZSB0eXBlIGhhcyBhbHJlYWR5IHN1Y2NlZWRlZCwgaXQgbWVh bnMgdGhlcmUgYXJlCi0JCQkJCQkgKiB0d28gY29lcmNpb24gdGFyZ2V0cyBwb3NzaWJsZSwgZmFp bHVyZS4KLQkJCQkJCSAqLwotCQkJCQkJaWYgKHRhcmdldFR5cGUgIT0gVU5LTk9XTk9JRCkKLQkJ CQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9N SVNNQVRDSCksCi0JCQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3Vw cG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkJCSBlcnJoaW50 KCJqc29uYiBzdWJzY3JpcHQgbXVzdCBiZSBjb2VyY2libGUgdG8gb25seSBvbmUgdHlwZSwgaW50 ZWdlciBvciB0ZXh0LiIpLAotCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4 cHJMb2NhdGlvbihzdWJFeHByKSkpKTsKLQotCQkJCQkJdGFyZ2V0VHlwZSA9IHRhcmdldHNbaV07 Ci0JCQkJCX0KLQkJCQl9Ci0KLQkJCQkvKgotCQkJCSAqIE5vIHN1aXRhYmxlIHR5cGVzIHdlcmUg Zm91bmQsIGZhaWx1cmUuCi0JCQkJICovCi0JCQkJaWYgKHRhcmdldFR5cGUgPT0gVU5LTk9XTk9J RCkKLQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBF X01JU01BVENIKSwKLQkJCQkJCQkgZXJybXNnKCJzdWJzY3JpcHQgdHlwZSAlcyBpcyBub3Qgc3Vw cG9ydGVkIiwgZm9ybWF0X3R5cGVfYmUoc3ViRXhwclR5cGUpKSwKLQkJCQkJCQkgZXJyaGludCgi anNvbmIgc3Vic2NyaXB0IG11c3QgYmUgY29lcmNpYmxlIHRvIGVpdGhlciBpbnRlZ2VyIG9yIHRl eHQuIiksCi0JCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihz dWJFeHByKSkpKTsKLQkJCX0KLQkJCWVsc2UKLQkJCQl0YXJnZXRUeXBlID0gVEVYVE9JRDsKLQot CQkJLyoKLQkJCSAqIFdlIGtub3duIGZyb20gY2FuX2NvZXJjZV90eXBlIHRoYXQgY29lcmNpb24g d2lsbCBzdWNjZWVkLCBzbwotCQkJICogY29lcmNlX3R5cGUgY291bGQgYmUgdXNlZC4gTm90ZSB0 aGUgaW1wbGljaXQgY29lcmNpb24gY29udGV4dCwKLQkJCSAqIHdoaWNoIGlzIHJlcXVpcmVkIHRv IGhhbmRsZSBzdWJzY3JpcHRzIG9mIGRpZmZlcmVudCB0eXBlcywKLQkJCSAqIHNpbWlsYXIgdG8g b3ZlcmxvYWRlZCBmdW5jdGlvbnMuCi0JCQkgKi8KLQkJCXN1YkV4cHIgPSBjb2VyY2VfdHlwZShw c3RhdGUsCi0JCQkJCQkJCSAgc3ViRXhwciwgc3ViRXhwclR5cGUsCi0JCQkJCQkJCSAgdGFyZ2V0 VHlwZSwgLTEsCi0JCQkJCQkJCSAgQ09FUkNJT05fSU1QTElDSVQsCi0JCQkJCQkJCSAgQ09FUkNF X0lNUExJQ0lUX0NBU1QsCi0JCQkJCQkJCSAgLTEpOwotCQkJaWYgKHN1YkV4cHIgPT0gTlVMTCkK LQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNN QVRDSCksCi0JCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgbXVzdCBoYXZlIHRleHQgdHlw ZSIpLAotCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzdWJF eHByKSkpKTsKKwkJCXN1YkV4cHIgPSBjb2VyY2VfanNvbnBhdGhfc3Vic2NyaXB0X3RvX2ludDRf b3JfdGV4dChwc3RhdGUsIHN1YkV4cHIpOwogCQl9CiAJCWVsc2UKIAkJewotLSAKMi4zOS41IChB cHBsZSBHaXQtMTU0KQoK --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Disposition: attachment; filename="v17-0005-Implement-read-only-dot-notation-for-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge7d3 RnJvbSBjMjVhODFjNmU4YTQ1ZDdlNGM2ZjgwMzU2MWU2NmJhOWFmN2U5NjRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCA4IEp1bCAyMDI1IDIyOjE4OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTcgNS83XSBJbXBsZW1lbnQgcmVhZC1vbmx5IGRvdCBub3RhdGlvbiBmb3IganNvbmIK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBKU09OQiBtZW1iZXIgYWNjZXNzIHVzaW5nIGRvdCBub3Rh dGlvbiB0aGF0CmFsaWducyB3aXRoIHRoZSBKU09OIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3BlY2lm aWVkIGluIFNRTDoyMDIzLgoKRXhhbXBsZXM6CgotLSBTZXR1cApjcmVhdGUgdGFibGUgdCh4IGlu dCwgeSBqc29uYik7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAxLCAiYiI6IDQyfSc6 Ompzb25iOwppbnNlcnQgaW50byB0IHNlbGVjdCAxLCAneyJhIjogMiwgImIiOiB7ImMiOiA0Mn19 Jzo6anNvbmI7Cmluc2VydCBpbnRvIHQgc2VsZWN0IDEsICd7ImEiOiAzLCAiYiI6IHsiYyI6ICI0 MiJ9LCAiZCI6WzExLCAxMl19Jzo6anNvbmI7CgotLSBFeGlzdGluZyBzeW50YXggaW4gUG9zdGdy ZVNRTCB0aGF0IHByZWRhdGVzIHRoZSBTUUwgc3RhbmRhcmQ6CnNlbGVjdCAodC55KS0+J2InIGZy b20gdDsKc2VsZWN0ICh0LnkpLT4nYictPidjJyBmcm9tIHQ7CnNlbGVjdCAodC55KS0+J2QnLT4w IGZyb20gdDsKCi0tIEpTT04gc2ltcGxpZmllZCBhY2Nlc3NvciBzcGVjaWZpZWQgYnkgdGhlIFNR TCBzdGFuZGFyZDoKc2VsZWN0ICh0LnkpLmIgZnJvbSB0OwpzZWxlY3QgKHQueSkuYi5jIGZyb20g dDsKc2VsZWN0ICh0LnkpLmRbMF0gZnJvbSB0OwoKVGhlIFNRTCBzdGFuZGFyZCBzdGF0ZXMgdGhh dCBzaW1wbGlmaWVkIGFjY2VzcyBpcyBlcXVpdmFsZW50IHRvOgpKU09OX1FVRVJZIChWRVAsICds YXggJC5KQycgV0lUSCBDT05ESVRJT05BTCBBUlJBWSBXUkFQUEVSIE5VTEwgT04gRU1QVFkgTlVM TCBPTiBFUlJPUikKCndoZXJlOgogIFZFUCA9IDx2YWx1ZSBleHByZXNzaW9uIHByaW1hcnk+CiAg SkMgPSA8SlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIG9wIGNoYWluPgoKRm9yIGV4YW1wbGUsIHRo ZSBKU09OX1FVRVJZIGVxdWl2YWxlbnRzIG9mIHRoZSBhYm92ZSBxdWVyaWVzIGFyZToKCnNlbGVj dCBqc29uX3F1ZXJ5KHksICdsYXggJC5iJyBXSVRIIENPTkRJVElPTkFMIEFSUkFZIFdSQVBQRVIg TlVMTCBPTiBFTVBUWSBOVUxMIE9OIEVSUk9SKSBmcm9tIHQ7CnNlbGVjdCBqc29uX3F1ZXJ5KHks ICdsYXggJC5iLmMnIFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZ IE5VTEwgT04gRVJST1IpIGZyb20gdDsKc2VsZWN0IGpzb25fcXVlcnkoeSwgJ2xheCAkLmRbMF0n IFdJVEggQ09ORElUSU9OQUwgQVJSQVkgV1JBUFBFUiBOVUxMIE9OIEVNUFRZIE5VTEwgT04gRVJS T1IpIGZyb20gdDsKCkltcGxlbWVudGF0aW9uIGRldGFpbHM6CgpUaGlzIHBhdGNoIGV4dGVuZHMg dGhlIGV4aXN0aW5nIGNvbnRhaW5lciBzdWJzY3JpcHRpbmcgaW50ZXJmYWNlIHRvCnN1cHBvcnQg Y29udGFpbmVyLXNwZWNpZmljIGluZm9ybWF0aW9uLCBuYW1lbHkgYSBKU09OUGF0aCBleHByZXNz aW9uCmZvciBqc29uYi4KCkR1cmluZyBxdWVyeSB0cmFuc2Zvcm1hdGlvbiwgaWYgZG90LW5vdGF0 aW9uIGlzIHByZXNlbnQsIGEgSlNPTlBhdGgKZXhwcmVzc2lvbiBpcyBjb25zdHJ1Y3RlZCB0byBy ZXByZXNlbnQgdGhlIGFjY2VzcyBjaGFpbi4KClRoZW4gZHVyaW5nIGV4ZWN1dGlvbiwgaWYgYSBK U09OUGF0aCBleHByZXNzaW9uIGlzIHByZXNlbnQgaW4KSnNvbmJTdWJXb3Jrc3BhY2UsIGV4ZWN1 dGVzIGl0IHZpYSBKc29uUGF0aFF1ZXJ5KCkuCgpOb3RlIHRoYXQgd2UgY2Fubm90IHNpbXBseSBy ZXdyaXRlIHRoZSBhY2Nlc3NvcnMgaW50byBKU09OX1FVRVJZKCkKZHVyaW5nIHRyYW5zZm9ybWF0 aW9uLCBiZWNhdXNlIHRoZSBvcmlnaW5hbCBxdWVyeSBzdHJ1Y3R1cmUgbXVzdCBiZQpwcmVzZXJ2 ZWQgZm9yIEVYUExBSU4gYW5kIENSRUFURSBWSUVXLgoKQ28tYXV0aG9yZWQtYnk6IE5pa2l0YSBH bHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBBbGV4YW5kcmEg V2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBE dW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmsgRGlsZ2VyIDxt YXJrLmRpbGdlckBlbnRlcnByaXNlZGIuY29tPgpSZXZpZXdlZC1ieTogSmlhbiBIZSA8amlhbi51 bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVmlrIEZlYXJpbmcgPHZpa0Bwb3N0 Z3Jlc2ZyaWVuZHMub3JnPgpSZXZpZXdlZC1ieTogTmlraXRhIE1hbGFraG92IDxodWt1dG9jQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFBldGVyIEVpc2VudHJhdXQgPHBldGVyQGVpc2VudHJhdXQu b3JnPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KVGVzdGVk LWJ5OiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5sPgotLS0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDgxICsrLS0KIHNyYy9iYWNr ZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJzdWJzLmMgICAgICAgICAgICAgfCAzMDEgKysrKysrKysrKysrLQog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDQzICstCiBz cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgNTQgKystCiAu Li4vZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMgICAgICAgICAgfCAxMTIgKysrKy0K IC4uLi9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyICAgICB8IDEwMCArKysr KwogLi4uL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQgICAgIHwgICA3ICsK IHNyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgICAgICB8ICAzMyArKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgICAgICAgICAgIHwgNDEzICsrKysr KysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsICAgICAgICAgICAg ICAgIHwgMTEzICsrKystCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgICAgfCAgIDEgKwogMTMgZmlsZXMgY2hhbmdlZCwgMTIwMSBpbnNlcnRpb25zKCspLCA3MyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJl cy50eHQgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKaW5kZXggZWJlODUz MzdjMjguLjQ1N2U5OTMzMDVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3NxbF9m ZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CkBA IC01NjgsOCArNTY4LDggQEAgVDgzOAlKU09OX1RBQkxFOiBQTEFOIERFRkFVTFQgY2xhdXNlCQkJ Tk8KIFQ4MzkJRm9ybWF0dGVkIGNhc3Qgb2YgZGF0ZXRpbWVzIHRvL2Zyb20gY2hhcmFjdGVyIHN0 cmluZ3MJCQlOTwkKIFQ4NDAJSGV4IGludGVnZXIgbGl0ZXJhbHMgaW4gU1FML0pTT04gcGF0aCBs YW5ndWFnZQkJCVlFUwkKIFQ4NTEJU1FML0pTT046IG9wdGlvbmFsIGtleXdvcmRzIGZvciBkZWZh dWx0IHN5bnRheAkJCVlFUwkKLVQ4NjAJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcjogY29s dW1uIHJlZmVyZW5jZSBvbmx5CQkJTk8JCi1UODYxCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNz b3I6IGNhc2Utc2Vuc2l0aXZlIEpTT04gbWVtYmVyIGFjY2Vzc29yCQkJTk8JCitUODYwCVNRTC9K U09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IGNvbHVtbiByZWZlcmVuY2Ugb25seQkJCVlFUwkKK1Q4 NjEJU1FML0pTT04gc2ltcGxpZmllZCBhY2Nlc3NvcjogY2FzZS1zZW5zaXRpdmUgSlNPTiBtZW1i ZXIgYWNjZXNzb3IJCQlZRVMJCiBUODYyCVNRTC9KU09OIHNpbXBsaWZpZWQgYWNjZXNzb3I6IHdp bGRjYXJkIG1lbWJlciBhY2Nlc3NvcgkJCU5PCQogVDg2MwlTUUwvSlNPTiBzaW1wbGlmaWVkIGFj Y2Vzc29yOiBzaW5nbGUtcXVvdGVkIHN0cmluZyBsaXRlcmFsIGFzIG1lbWJlciBhY2Nlc3NvcgkJ CU5PCQogVDg2NAlTUUwvSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yCQkJTk8JCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwppbmRleCBmMTU2OTg3OWI1Mi4uMzg1YzhkMGNlZmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwpAQCAtMzMyMCw1MCArMzMyMCw1OSBAQCBFeGVjSW5pdFN1YnNjcmlwdGluZ1Jl ZihFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJ CQkgICBzdGF0ZS0+c3RlcHNfbGVuIC0gMSk7CiAJfQogCi0JLyogRXZhbHVhdGUgdXBwZXIgc3Vi c2NyaXB0cyAqLwotCWkgPSAwOwotCWZvcmVhY2gobGMsIHNic3JlZi0+cmVmdXBwZXJpbmRleHBy KQorCS8qIEV2YWx1YXRlIHVwcGVyIHN1YnNjcmlwdHMsIHVubGVzcyByZWZqc29uYnBhdGggaXMg dXNlZCBmb3IgZXhlY3V0aW9uICovCisJaWYgKCFzYnNyZWYtPnJlZmpzb25icGF0aCkKIAl7Ci0J CUV4cHIJICAgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOwotCi0JCS8qIFdoZW4gc2xpY2luZywg aW5kaXZpZHVhbCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCi0JCWlmICghZSkK LQkJewotCQkJc2JzcmVmc3RhdGUtPnVwcGVycHJvdmlkZWRbaV0gPSBmYWxzZTsKLQkJCXNic3Jl ZnN0YXRlLT51cHBlcmluZGV4bnVsbFtpXSA9IHRydWU7Ci0JCX0KLQkJZWxzZQorCQlpID0gMDsK KwkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZ1cHBlcmluZGV4cHIpCiAJCXsKLQkJCXNic3JlZnN0 YXRlLT51cHBlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKLQkJCS8qIEVhY2ggc3Vic2NyaXB0IGlzIGV2 YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCi0JCQlFeGVjSW5pdEV4cHJS ZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4W2ldLAotCQkJCQkJ CSZzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleG51bGxbaV0pOworCQkJRXhwciAqZSA9IChFeHByICop IGxmaXJzdChsYyk7CisKKwkJCS8qIFdoZW4gc2xpY2luZywgaW5kaXZpZHVhbCBzdWJzY3JpcHQg Ym91bmRzIGNhbiBiZSBvbWl0dGVkICovCisJCQlpZiAoIWUpCisJCQl7CisJCQkJc2JzcmVmc3Rh dGUtPnVwcGVycHJvdmlkZWRbaV0gPSBmYWxzZTsKKwkJCQlzYnNyZWZzdGF0ZS0+dXBwZXJpbmRl eG51bGxbaV0gPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXNic3JlZnN0YXRlLT51 cHBlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKKwkJCQkvKiBFYWNoIHN1YnNjcmlwdCBpcyBldmFsdWF0 ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLworCQkJCUV4ZWNJbml0RXhwclJlYyhl LCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT51cHBlcmluZGV4W2ldLAorCQkJCQkJCQkm c2JzcmVmc3RhdGUtPnVwcGVyaW5kZXhudWxsW2ldKTsKKwkJCX0KKwkJCWkrKzsKIAkJfQotCQlp Kys7CiAJfQogCi0JLyogRXZhbHVhdGUgbG93ZXIgc3Vic2NyaXB0cyBzaW1pbGFybHkgKi8KLQlp ID0gMDsKLQlmb3JlYWNoKGxjLCBzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcikKKwkvKgorCSAqIEV2 YWx1YXRlIGxvd2VyIHN1YnNjcmlwdHMgc2ltaWxhcmx5LCB1bmxlc3MgcmVmanNvbmJwYXRoIGlz IHVzZWQgZm9yCisJICogZXhlY3V0aW9uCisJICovCisJaWYgKCFzYnNyZWYtPnJlZmpzb25icGF0 aCkKIAl7Ci0JCUV4cHIJICAgKmUgPSAoRXhwciAqKSBsZmlyc3QobGMpOwotCi0JCS8qIFdoZW4g c2xpY2luZywgaW5kaXZpZHVhbCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCi0J CWlmICghZSkKLQkJewotCQkJc2JzcmVmc3RhdGUtPmxvd2VycHJvdmlkZWRbaV0gPSBmYWxzZTsK LQkJCXNic3JlZnN0YXRlLT5sb3dlcmluZGV4bnVsbFtpXSA9IHRydWU7Ci0JCX0KLQkJZWxzZQor CQlpID0gMDsKKwkJZm9yZWFjaChsYywgc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIpCiAJCXsKLQkJ CXNic3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKLQkJCS8qIEVhY2ggc3Vic2Ny aXB0IGlzIGV2YWx1YXRlZCBpbnRvIGFwcHJvcHJpYXRlIGFycmF5IGVudHJ5ICovCi0JCQlFeGVj SW5pdEV4cHJSZWMoZSwgc3RhdGUsCi0JCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ld LAotCQkJCQkJCSZzYnNyZWZzdGF0ZS0+bG93ZXJpbmRleG51bGxbaV0pOworCQkJRXhwcgkgICAq ZSA9IChFeHByICopIGxmaXJzdChsYyk7CisKKwkJCS8qIFdoZW4gc2xpY2luZywgaW5kaXZpZHVh bCBzdWJzY3JpcHQgYm91bmRzIGNhbiBiZSBvbWl0dGVkICovCisJCQlpZiAoIWUpCisJCQl7CisJ CQkJc2JzcmVmc3RhdGUtPmxvd2VycHJvdmlkZWRbaV0gPSBmYWxzZTsKKwkJCQlzYnNyZWZzdGF0 ZS0+bG93ZXJpbmRleG51bGxbaV0gPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXNi c3JlZnN0YXRlLT5sb3dlcnByb3ZpZGVkW2ldID0gdHJ1ZTsKKwkJCQkvKiBFYWNoIHN1YnNjcmlw dCBpcyBldmFsdWF0ZWQgaW50byBhcHByb3ByaWF0ZSBhcnJheSBlbnRyeSAqLworCQkJCUV4ZWNJ bml0RXhwclJlYyhlLCBzdGF0ZSwKKwkJCQkJCQkJJnNic3JlZnN0YXRlLT5sb3dlcmluZGV4W2ld LAorCQkJCQkJCQkmc2JzcmVmc3RhdGUtPmxvd2VyaW5kZXhudWxsW2ldKTsKKwkJCX0KKwkJCWkr KzsKIAkJfQotCQlpKys7CiAJfQogCiAJLyogU0JTUkVGX1NVQlNDUklQVFMgY2hlY2tzIGFuZCBj b252ZXJ0cyBhbGwgdGhlIHN1YnNjcmlwdHMgYXQgb25jZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpp bmRleCA3YmM4MjM1MDdmMS4uZDFiZDU3NWQ5YmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0y ODQsNiArMjg0LDEzIEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9QbGFj ZUhvbGRlclZhcjoKIAkJCXR5cGUgPSBleHByVHlwZSgoTm9kZSAqKSAoKGNvbnN0IFBsYWNlSG9s ZGVyVmFyICopIGV4cHIpLT5waGV4cHIpOwogCQkJYnJlYWs7CisJCWNhc2UgVF9GaWVsZEFjY2Vz c29yRXhwcjoKKwkJCS8qCisJCQkgKiBGaWVsZEFjY2Vzc29yRXhwciBpcyBub3QgZXZhbHVhYmxl LiBUcmVhdCBpdCBhcyBURVhUIGZvciBjb2xsYXRpb24sCisJCQkgKiBkZXBhcnNpbmcsIGFuZCBz aW1pbGFyIHB1cnBvc2VzLCBzaW5jZSBpdCByZXByZXNlbnRzIGEgSlNPTiBmaWVsZCBuYW1lLgor CQkJICovCisJCQl0eXBlID0gVEVYVE9JRDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9kZVRhZyhleHBy KSk7CiAJCQl0eXBlID0gSW52YWxpZE9pZDsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAt MTE0Niw2ICsxMTUzLDkgQEAgZXhwclNldENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgY29sbGF0 aW9uKQogCQljYXNlIFRfTWVyZ2VTdXBwb3J0RnVuYzoKIAkJCSgoTWVyZ2VTdXBwb3J0RnVuYyAq KSBleHByKS0+bXNmY29sbGlkID0gY29sbGF0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgVF9GaWVs ZEFjY2Vzc29yRXhwcjoKKwkJCSgoRmllbGRBY2Nlc3NvckV4cHIgKikgZXhwciktPmZhZWNvbGxp ZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJ KChTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJy ZWFrOwpAQCAtMjEyOSw2ICsyMTM5LDcgQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5v ZGUgKm5vZGUsCiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9DVEVTZWFyY2hD bGF1c2U6CiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgorCQljYXNlIFRfRmllbGRBY2Nlc3Nv ckV4cHI6CiAJCQkvKiBwcmltaXRpdmUgbm9kZSB0eXBlcyB3aXRoIG5vIGV4cHJlc3Npb24gc3Vi bm9kZXMgKi8KIAkJCWJyZWFrOwogCQljYXNlIFRfV2l0aENoZWNrT3B0aW9uOgpAQCAtMzAwOCw2 ICszMDE5LDcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChOb2RlICpub2RlLAogCQlj YXNlIFRfU29ydEdyb3VwQ2xhdXNlOgogCQljYXNlIFRfQ1RFU2VhcmNoQ2xhdXNlOgogCQljYXNl IFRfTWVyZ2VTdXBwb3J0RnVuYzoKKwkJY2FzZSBUX0ZpZWxkQWNjZXNzb3JFeHByOgogCQkJcmV0 dXJuIGNvcHlPYmplY3Qobm9kZSk7CiAJCWNhc2UgVF9XaXRoQ2hlY2tPcHRpb246CiAJCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvanNvbmJzdWJzLmMKaW5kZXggODg1MmMyN2ExOTguLmNjYzVmM2M2ZTk0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25ic3Vicy5jCkBAIC0xNSwyMSArMTUsMzAgQEAKICNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKKyNpbmNsdWRl ICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNs dWRlICJub2Rlcy9zdWJzY3JpcHRpbmcuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNl LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2pzb25iLmgiCisjaW5jbHVkZSAidXRpbHMvanNvbnBh dGguaCIKIAogCi0vKiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jrc3BhY2UgZm9yIGpzb25iIHN1 YnNjcmlwdGluZyBleGVjdXRpb24gKi8KKy8qCisgKiBTdWJzY3JpcHRpbmdSZWZTdGF0ZS53b3Jr c3BhY2UgZm9yIGdlbmVyaWMganNvbmIgc3Vic2NyaXB0aW5nIGV4ZWN1dGlvbi4KKyAqCisgKiBT dG9yZXMgc3RhdGUgZm9yIGJvdGgganNvbmIgc2ltcGxlIHN1YnNjcmlwdGluZyBhbmQgZG90IG5v dGF0aW9uIGFjY2Vzcy4KKyAqIERvdCBub3RhdGlvbiBhZGRpdGlvbmFsbHkgdXNlcyBganNvbnBh dGhgIGZvciBKc29uUGF0aCBldmFsdWF0aW9uLgorICovCiB0eXBlZGVmIHN0cnVjdCBKc29uYlN1 YldvcmtzcGFjZQogewogCWJvb2wJCWV4cGVjdEFycmF5OwkvKiBqc29uYiByb290IGlzIGV4cGVj dGVkIHRvIGJlIGFuIGFycmF5ICovCiAJT2lkCQkgICAqaW5kZXhPaWQ7CQkvKiBPSUQgb2YgY29l cmNlZCBzdWJzY3JpcHQgZXhwcmVzc2lvbiwgY291bGQKIAkJCQkJCQkJICogYmUgb25seSBpbnRl Z2VyIG9yIHRleHQgKi8KIAlEYXR1bQkgICAqaW5kZXg7CQkJLyogU3Vic2NyaXB0IHZhbHVlcyBp biBEYXR1bSBmb3JtYXQgKi8KKwlKc29uUGF0aCAgICpqc29ucGF0aDsJCS8qIEpzb25QYXRoIGZv ciBkb3Qgbm90YXRpb24gZXhlY3V0aW9uIHZpYQorCQkJCQkJCQkgKiBKc29uUGF0aFF1ZXJ5KCkg Ki8KIH0gSnNvbmJTdWJXb3Jrc3BhY2U7CiAKIHN0YXRpYyBOb2RlICoKQEAgLTk2LDYgKzEwNSwy MzQgQEAgY29lcmNlX2pzb25wYXRoX3N1YnNjcmlwdF90b19pbnQ0X29yX3RleHQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpzdWJFeHByKQogCXJldHVybiBzdWJFeHByOwogfQogCisvKgorICog RHVyaW5nIHRyYW5zZm9ybWF0aW9uLCBkZXRlcm1pbmUgd2hldGhlciB0byBidWlsZCBhIEpzb25Q YXRoCisgKiBmb3IgSnNvblBhdGhRdWVyeSgpIGV4ZWN1dGlvbi4KKyAqCisgKiBKc29uUGF0aCBp cyBuZWVkZWQgaWYgdGhlIGluZGlyZWN0aW9uIGxpc3QgaW5jbHVkZXM6CisgKiAtIFN0cmluZy1i YXNlZCBhY2Nlc3MgKGRvdCBub3RhdGlvbikKKyAqIC0gU2xpY2UtYmFzZWQgc3Vic2NyaXB0aW5n ICh3aGVuIGlzU2xpY2UgaXMgdHJ1ZSkKKyAqCisgKiBPdGhlcndpc2UsIHNpbXBsZSBqc29uYiBz dWJzY3JpcHRpbmcgaXMgZW5vdWdoLgorICovCitzdGF0aWMgYm9vbAoranNvbmJfY2hlY2tfanNv bnBhdGhfbmVlZGVkKExpc3QgKmluZGlyZWN0aW9uKQoreworCUxpc3RDZWxsICAgKmxjOworCisJ Zm9yZWFjaChsYywgaW5kaXJlY3Rpb24pCisJeworCQlOb2RlCSAgICphY2Nlc3NvciA9IGxmaXJz dChsYyk7CisKKwkJaWYgKElzQShhY2Nlc3NvciwgU3RyaW5nKSkKKwkJCXJldHVybiB0cnVlOwor CQllbHNlCisJCQlBc3NlcnQoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKTsKKwl9CisKKwlyZXR1 cm4gZmFsc2U7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBjb25zdHJ1Y3Rpbmcg SnNvblBhdGggZXhwcmVzc2lvbnMuCisgKgorICogVGhlIG1ha2VfanNvbnBhdGhfaXRlbV8qIGZ1 bmN0aW9ucyBjcmVhdGUgdmFyaW91cyB0eXBlcyBvZiBKc29uUGF0aFBhcnNlSXRlbQorICogbm9k ZXMsIHdoaWNoIGFyZSB1c2VkIHRvIGJ1aWxkIEpzb25QYXRoIGV4cHJlc3Npb25zIGZvciBqc29u YiBzaW1wbGlmaWVkCisgKiBhY2Nlc3Nvci4KKyAqLworCitzdGF0aWMgSnNvblBhdGhQYXJzZUl0 ZW0gKgorbWFrZV9qc29ucGF0aF9pdGVtKEpzb25QYXRoSXRlbVR5cGUgdHlwZSkKK3sKKwlKc29u UGF0aFBhcnNlSXRlbSAqdiA9IHBhbGxvYyhzaXplb2YoKnYpKTsKKworCXYtPnR5cGUgPSB0eXBl OworCXYtPm5leHQgPSBOVUxMOworCisJcmV0dXJuIHY7Cit9CisKKy8qCisgKiBDb252ZXJ0IGEg Y29uc3RhbnQgaW50ZWdlciBleHByZXNzaW9uIGludG8gYSBKc29uUGF0aFBhcnNlSXRlbS4KKyAq CisgKiBUaGUgaW5wdXQgZXhwcmVzc2lvbiBtdXN0IGJlIGEgbm9uLW51bGwgY29uc3RhbnQgb2Yg dHlwZSBJTlQ0LiBSZXR1cm5zIE5VTEwgb3RoZXJ3aXNlLgorICogVGhpcyBmdW5jdGlvbiBjb25z dHJ1Y3RzIGEganBpTnVtZXJpYyBpdGVtIGZvciB1c2UgaW4gSnNvblBhdGggYW5kIGFwcGVuZHMg YSBtYXRjaGluZworICogQ29uc3QoSU5UNCkgbm9kZSB0byB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBs aXN0IGZvciB1c2UgaW4gRVhQTEFJTiwgdmlld3MsIGV0Yy4KKyAqCisgKiBQYXJhbWV0ZXJzOgor ICogLSBwc3RhdGU6IHBhcnNlIHN0YXRlIGNvbnRleHQKKyAqIC0gZXhwcjogaW5wdXQgZXhwcmVz c2lvbiBub2RlCisgKiAtIGV4cHJzOiBsaXN0IG9mIGV4cHJlc3Npb24gbm9kZXMgKHVwZGF0ZWQg aW4gcGxhY2UpCisgKi8KK3N0YXRpYyBKc29uUGF0aFBhcnNlSXRlbSAqCittYWtlX2pzb25wYXRo X2l0ZW1fZXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIExpc3QgKipleHBycykK K3sKKwlDb25zdAkgICAqY25zdDsKKworCWV4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgZXhw ciwgcHN0YXRlLT5wX2V4cHJfa2luZCk7CisKKwlpZiAoSXNBKGV4cHIsIENvbnN0KSkKKwl7CisJ CWNuc3QgPSAoQ29uc3QgKikgZXhwcjsKKwkJaWYgKGNuc3QtPmNvbnN0dHlwZSA9PSBJTlQ0T0lE ICYmICEoY25zdC0+Y29uc3Rpc251bGwpKQorCQl7CisJCQlKc29uUGF0aFBhcnNlSXRlbSAqanBp ID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaU51bWVyaWMpOworCisJCQlqcGktPnZhbHVlLm51bWVy aWMgPQorCQkJCURhdHVtR2V0TnVtZXJpYyhEaXJlY3RGdW5jdGlvbkNhbGwxKGludDRfbnVtZXJp YywgSW50MzJHZXREYXR1bShjbnN0LT5jb25zdHZhbHVlKSkpOworCisJCQkqZXhwcnMgPSBsYXBw ZW5kKCpleHBycywgbWFrZUNvbnN0KElOVDRPSUQsIC0xLCBJbnZhbGlkT2lkLCA0LAorCQkJCQkJ CQkJCQkgICBJbnQzMkdldERhdHVtKGNuc3QtPmNvbnN0dmFsdWUpLCBmYWxzZSwgdHJ1ZSkpOwor CisJCQlyZXR1cm4ganBpOworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qCisgKiBD b25zdHJ1Y3RzIGEgSnNvblBhdGggZXhwcmVzc2lvbiBmcm9tIGEgbGlzdCBvZiBpbmRpcmVjdGlv bnMuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBqc29uYiBzdWJzY3JpcHRpbmcgaW52 b2x2ZXMgZG90IG5vdGF0aW9uLAorICogcmVxdWlyaW5nIEpzb25QYXRoLWJhc2VkIGV2YWx1YXRp b24uCisgKgorICogVGhlIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBpbmRpcmVjdGlvbiBsaXN0IGlu IHBsYWNlLCByZW1vdmluZyBwcm9jZXNzZWQKKyAqIGVsZW1lbnRzIGFzIGl0IGNvbnZlcnRzIHRo ZW0gaW50byBKc29uUGF0aCBjb21wb25lbnRzLCBhcyBmb2xsb3dzOgorICogLSBTdHJpbmcga2V5 cyAoZG90IG5vdGF0aW9uKSAtPiBqcGlLZXkgaXRlbXMuCisgKiAtIEFycmF5IGluZGljZXMgLT4g anBpSW5kZXhBcnJheSBpdGVtcy4KKyAqCisgKiBJbiBhZGRpdGlvbiB0byBidWlsZGluZyB0aGUg SnNvblBhdGggZXhwcmVzc2lvbiwgdGhpcyBmdW5jdGlvbiBwb3B1bGF0ZXMKKyAqIHRoZSBmb2xs b3dpbmcgZmllbGRzIG9mIHRoZSBnaXZlbiBTdWJzY3JpcHRpbmdSZWY6CisgKiAtIHJlZmpzb25i cGF0aDogdGhlIGdlbmVyYXRlZCBKc29uUGF0aAorICogLSByZWZ1cHBlcmluZGV4cHI6IHVwcGVy IGluZGV4IGV4cHJlc3Npb25zIChvYmplY3Qga2V5cyBvciBhcnJheSBpbmRleGVzKQorICogLSBy ZWZsb3dlcmluZGV4cHI6IGxvd2VyIGluZGV4IGV4cHJlc3Npb25zLCByZW1haW5zIE5JTCBhcyBz bGljZXMgYXJlIG5vdCBzdXBwb3J0ZWQuCisgKgorICogUGFyYW1ldGVyczoKKyAqIC0gcHN0YXRl OiBQYXJzZSBzdGF0ZSBjb250ZXh0LgorICogLSBpbmRpcmVjdGlvbjogTGlzdCBvZiBzdWJzY3Jp cHRpbmcgZXhwcmVzc2lvbnMgKG1vZGlmaWVkIGluLXBsYWNlKS4KKyAqIC0gc2JzcmVmOiBTdWJz Y3JpcHRpbmdSZWYgbm9kZSB0byB1cGRhdGUKKyAqLworc3RhdGljIHZvaWQKK2pzb25iX3N1YnNj cmlwdF9tYWtlX2pzb25wYXRoKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqKmluZGlyZWN0aW9u LCBTdWJzY3JpcHRpbmdSZWYgKnNic3JlZikKK3sKKwlKc29uUGF0aFBhcnNlUmVzdWx0IGpwcmVz OworCUpzb25QYXRoUGFyc2VJdGVtICpwYXRoID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaVJvb3Qp OworCUxpc3RDZWxsICAgKmxjOworCURhdHVtCQlqc3A7CisJaW50CQkJcGF0aGxlbiA9IDA7CisK KwlzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciA9IE5JTDsKKwlzYnNyZWYtPnJlZmxvd2VyaW5kZXhw ciA9IE5JTDsKKwlzYnNyZWYtPnJlZmpzb25icGF0aCA9IE5VTEw7CisKKwlqcHJlcy5leHByID0g cGF0aDsKKwlqcHJlcy5sYXggPSB0cnVlOworCisJZm9yZWFjaChsYywgKmluZGlyZWN0aW9uKQor CXsKKwkJTm9kZQkgICAqYWNjZXNzb3IgPSBsZmlyc3QobGMpOworCQlKc29uUGF0aFBhcnNlSXRl bSAqanBpOworCisJCWlmIChJc0EoYWNjZXNzb3IsIFN0cmluZykpCisJCXsKKwkJCWNoYXIJICAg KmZpZWxkID0gc3RyVmFsKGFjY2Vzc29yKTsKKwkJCUZpZWxkQWNjZXNzb3JFeHByICphY2Nlc3Nv cl9leHByOworCisJCQlqcGkgPSBtYWtlX2pzb25wYXRoX2l0ZW0oanBpS2V5KTsKKwkJCWpwaS0+ dmFsdWUuc3RyaW5nLnZhbCA9IGZpZWxkOworCQkJanBpLT52YWx1ZS5zdHJpbmcubGVuID0gc3Ry bGVuKGZpZWxkKTsKKworCQkJYWNjZXNzb3JfZXhwciA9IG1ha2VOb2RlKEZpZWxkQWNjZXNzb3JF eHByKTsKKwkJCWFjY2Vzc29yX2V4cHItPnR5cGUgPSBUX0ZpZWxkQWNjZXNzb3JFeHByOworCQkJ YWNjZXNzb3JfZXhwci0+ZmllbGRuYW1lID0gZmllbGQ7CisKKwkJCXNic3JlZi0+cmVmdXBwZXJp bmRleHByID0gbGFwcGVuZChzYnNyZWYtPnJlZnVwcGVyaW5kZXhwciwgYWNjZXNzb3JfZXhwcik7 CisJCX0KKwkJZWxzZSBpZiAoSXNBKGFjY2Vzc29yLCBBX0luZGljZXMpKQorCQl7CisJCQlBX0lu ZGljZXMgICphaSA9IGNhc3ROb2RlKEFfSW5kaWNlcywgYWNjZXNzb3IpOworCisJCQlpZiAoIWFp LT5pc19zbGljZSkKKwkJCXsKKwkJCQlKc29uUGF0aFBhcnNlSXRlbSAqanBpX2Zyb20gPSBOVUxM OworCisJCQkJQXNzZXJ0KGFpLT51aWR4ICYmICFhaS0+bGlkeCk7CisJCQkJanBpX2Zyb20gPSBt YWtlX2pzb25wYXRoX2l0ZW1fZXhwcihwc3RhdGUsIGFpLT51aWR4LCAmc2JzcmVmLT5yZWZ1cHBl cmluZGV4cHIpOworCQkJCWlmIChqcGlfZnJvbSA9PSBOVUxMKQorCQkJCXsKKwkJCQkJLyoKKwkJ CQkJICogQnJlYWsgb3V0IG9mIHRoZSBsb29wIGlmIHRoZSBzdWJzY3JpcHQgaXMgbm90IGEKKwkJ CQkJICogbm9uLW51bGwgaW50ZWdlciBjb25zdGFudCwgc28gdGhhdCB3ZSBjYW4gZmFsbCBiYWNr IHRvCisJCQkJCSAqIGpzb25iIHN1YnNjcmlwdGluZyBsb2dpYy4KKwkJCQkJICoKKwkJCQkJICog VGhpcyBpcyBuZWVkZWQgdG8gaGFuZGxlIGNhc2VzIHdpdGggbWl4ZWQgdXNhZ2Ugb2YgU1FMCisJ CQkJCSAqIHN0YW5kYXJkIGpzb24gc2ltcGxpZmllZCBhY2Nlc3NvciBzeW50YXggYW5kIFBvc3Rn cmVTUUwKKwkJCQkJICoganNvbmIgc3Vic2NyaXB0aW5nIHN5bnRheCwgZS5nOgorCQkJCQkgKgor CQkJCQkgKiBzZWxlY3QgKGpiKS5hWydiJ10uYyBmcm9tIGpzb25iX3RhYmxlOworCQkJCQkgKgor CQkJCQkgKiB3aGVyZSBkb3Qtbm90YXRpb24gKC5hIGFuZCAuYykgaXMgdGhlIFNRTCBzdGFuZGFy ZCBqc29uCisJCQkJCSAqIHNpbXBsaWZpZWQgYWNjZXNzb3Igc3ludGF4LCBhbmQgdGhlIFsnYidd IHN1YnNjcmlwdCBpcworCQkJCQkgKiB0aGUgUG9zdGdyZVNRTCBqc29uYiBzdWJzY3JpcHRpbmcg c3ludGF4LCBiZWNhdXNlICdiJworCQkJCQkgKiBpcyBub3QgYSBub24tbnVsbCBjb25zdGFudCBp bnRlZ2VyIGFuZCBjYW5ub3QgYmUgdXNlZAorCQkJCQkgKiBmb3IganNvbiBhcnJheSBhY2Nlc3Mu CisJCQkJCSAqCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgd2UgY2Fubm90IGNyZWF0ZSBhIEpzb25Q YXRoIGl0ZW0sIHNvIHdlCisJCQkJCSAqIGJyZWFrIG91dCBvZiB0aGUgbG9vcCBhbmQgbGV0CisJ CQkJCSAqIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oKSBoYW5kbGUgdGhpcyBpbmRpcmVjdGlv biBhcworCQkJCQkgKiBhIFBvc3RncmVTUUwganNvbmIgc3Vic2NyaXB0LgorCQkJCQkgKi8KKwkJ CQkJYnJlYWs7CisJCQkJfQorCisJCQkJanBpID0gbWFrZV9qc29ucGF0aF9pdGVtKGpwaUluZGV4 QXJyYXkpOworCQkJCWpwaS0+dmFsdWUuYXJyYXkubmVsZW1zID0gMTsKKwkJCQlqcGktPnZhbHVl LmFycmF5LmVsZW1zID0gcGFsbG9jKHNpemVvZihqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdKSk7 CisKKwkJCQlqcGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLmZyb20gPSBqcGlfZnJvbTsKKwkJCQlq cGktPnZhbHVlLmFycmF5LmVsZW1zWzBdLnRvID0gTlVMTDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsK KwkJCQlOb2RlCSAgICpleHByID0gYWktPnVpZHggPyBhaS0+dWlkeCA6IGFpLT5saWR4OworCisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFU Q0gpLAorCQkJCQkJIGVycm1zZygianNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xp Y2VzIiksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGV4 cHIpKSkpOworCQkJfQorCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFVuZXhwZWN0ZWQg bm9kZSB0eXBlIGluIGluZGlyZWN0aW9uIGxpc3QuIFRoaXMgc2hvdWxkIG5vdAorCQkJICogaGFw cGVuIHdpdGggY3VycmVudCBncmFtbWFyLCBidXQgd2UgaGFuZGxlIGl0IGRlZmVuc2l2ZWx5IGJ5 CisJCQkgKiBicmVha2luZyBvdXQgb2YgdGhlIGxvb3AgcmF0aGVyIHRoYW4gY3Jhc2hpbmcuIElu IGNhc2Ugb2YKKwkJCSAqIGZ1dHVyZSBncmFtbWFyIGNoYW5nZXMgdGhhdCBtaWdodCBpbnRyb2R1 Y2UgbmV3IG5vZGUgdHlwZXMsCisJCQkgKiB0aGlzIGFsbG93cyB1cyB0byBjcmVhdGUgYSBqc29u cGF0aCBmcm9tIGFzIG1hbnkgaW5kaXJlY3Rpb24KKwkJCSAqIGVsZW1lbnRzIGFzIHdlIGNhbiBh bmQgbGV0IHRyYW5zZm9ybUluZGlyZWN0aW9uKCkgZmFsbGJhY2sgdG8KKwkJCSAqIGFsdGVybmF0 aXZlIGxvZ2ljIHRvIGhhbmRsZSB0aGUgcmVtYWluaW5nIGluZGlyZWN0aW9uIGVsZW1lbnRzLgor CQkJICovCisJCQlBc3NlcnQoZmFsc2UpOwkJLyogbm90IHJlYWNoYWJsZSAqLworCQkJYnJlYWs7 CisJCX0KKworCQkvKiBhcHBlbmQgcGF0aCBpdGVtICovCisJCXBhdGgtPm5leHQgPSBqcGk7CisJ CXBhdGggPSBqcGk7CisJCXBhdGhsZW4rKzsKKwl9CisKKwlpZiAocGF0aGxlbiA9PSAwKQorCQly ZXR1cm47CisKKwkqaW5kaXJlY3Rpb24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVjdGlv biwgcGF0aGxlbik7CisKKwlqc3AgPSBqc29uUGF0aEZyb21QYXJzZVJlc3VsdCgmanByZXMsIDAs IE5VTEwpOworCisJc2JzcmVmLT5yZWZqc29uYnBhdGggPSAoTm9kZSAqKSBtYWtlQ29uc3QoSlNP TlBBVEhPSUQsIC0xLCBJbnZhbGlkT2lkLCAtMSwganNwLCBmYWxzZSwgZmFsc2UpOworfQorCiAv KgogICogRmluaXNoIHBhcnNlIGFuYWx5c2lzIG9mIGEgU3Vic2NyaXB0aW5nUmVmIGV4cHJlc3Np b24gZm9yIGEganNvbmIuCiAgKgpAQCAtMTExLDkgKzM0OCwyNyBAQCBqc29uYl9zdWJzY3JpcHRf dHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCUxpc3QJICAgKnVwcGVySW5kZXhw ciA9IE5JTDsKIAlMaXN0Q2VsbCAgICppZHg7CiAKKwkvKiBEZXRlcm1pbmUgdGhlIHJlc3VsdCB0 eXBlIG9mIHRoZSBzdWJzY3JpcHRpbmcgb3BlcmF0aW9uOyBhbHdheXMganNvbmIgKi8KKwlzYnNy ZWYtPnJlZnJlc3R5cGUgPSBKU09OQk9JRDsKKwlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOworCisJ aWYgKGpzb25iX2NoZWNrX2pzb25wYXRoX25lZWRlZCgqaW5kaXJlY3Rpb24pKQorCXsKKwkJanNv bmJfc3Vic2NyaXB0X21ha2VfanNvbnBhdGgocHN0YXRlLCBpbmRpcmVjdGlvbiwgc2JzcmVmKTsK KwkJaWYgKHNic3JlZi0+cmVmanNvbmJwYXRoKQorCQkJcmV0dXJuOworCX0KKwogCS8qCi0JICog VHJhbnNmb3JtIGFuZCBjb252ZXJ0IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbnMuIEpzb25iIHN1 YnNjcmlwdGluZwotCSAqIGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzLCBsb29rIG9ubHkgYXQgdGhl IHVwcGVyIGluZGV4LgorCSAqIFdlIHJlYWNoIGhlcmUgb25seSBpbiB0d28gY2FzZXM6IChhKSB0 aGUgSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIGlzCisJICogbm90IG5lZWRlZCBhdCBhbGwgKGZv ciBleGFtcGxlLCBhIHBsYWluIGFycmF5IHN1YnNjcmlwdCBsaWtlIFsxXSBvcgorCSAqIG9iamVj dCBrZXkgYWNjZXNzIGxpa2UgWydhJ10pLCBvciAoYikganNvbmJfc3Vic2NyaXB0X21ha2VfanNv bnBhdGgoKQorCSAqIHdhcyBjYWxsZWQgYnV0IGNvdWxkIG5vdCBjb21wbGV0ZSB0aGUgSnNvblBh dGggY29uc3RydWN0aW9uIChmb3IKKwkgKiBleGFtcGxlLCB3aGVuIG1peGluZyBkb3Qgbm90YXRp b24gd2l0aCBub24taW50ZWdlciBzdWJzY3JpcHRzIGxpa2UKKwkgKiAoamIpWydhJ10uYiB3aGVy ZSAnYScgaXMgbm90IGEgY29uc3RhbnQgaW50ZWdlcikuCisJICoKKwkgKiBJbiBib3RoIGNhc2Vz IHdlIGZhbGwgYmFjayB0byBwcmUtc3RhbmRhcmQganNvbmIgc3Vic2NyaXB0aW5nLCBjb2VyY2lu ZworCSAqIGVhY2ggc3Vic2NyaXB0IHRvIGFycmF5IGluZGV4IG9yIG9iamVjdCBrZXkgYXMgbmVl ZGVkLgogCSAqLwogCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCiAJewpAQCAtMTYwLDEwICs0 MTUsNiBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVm LAogCXNic3JlZi0+cmVmdXBwZXJpbmRleHByID0gdXBwZXJJbmRleHByOwogCXNic3JlZi0+cmVm bG93ZXJpbmRleHByID0gTklMOwogCi0JLyogRGV0ZXJtaW5lIHRoZSByZXN1bHQgdHlwZSBvZiB0 aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbjsgYWx3YXlzIGpzb25iICovCi0Jc2JzcmVmLT5yZWZy ZXN0eXBlID0gSlNPTkJPSUQ7Ci0Jc2JzcmVmLT5yZWZ0eXBtb2QgPSAtMTsKLQogCS8qIFJlbW92 ZSBwcm9jZXNzZWQgZWxlbWVudHMgKi8KIAlpZiAodXBwZXJJbmRleHByKQogCQkqaW5kaXJlY3Rp b24gPSBsaXN0X2RlbGV0ZV9maXJzdF9uKCppbmRpcmVjdGlvbiwgbGlzdF9sZW5ndGgodXBwZXJJ bmRleHByKSk7CkBAIC0yMTgsNyArNDY5LDcgQEAganNvbmJfc3Vic2NyaXB0X2NoZWNrX3N1YnNj cmlwdHMoRXhwclN0YXRlICpzdGF0ZSwKIAkJCSAqIEZvciBqc29uYiBmZXRjaCBhbmQgYXNzaWdu IGZ1bmN0aW9ucyB3ZSBuZWVkIHRvIHByb3ZpZGUgcGF0aCBpbgogCQkJICogdGV4dCBmb3JtYXQu IENvbnZlcnQgaWYgaXQncyBub3QgYWxyZWFkeSB0ZXh0LgogCQkJICovCi0JCQlpZiAod29ya3Nw YWNlLT5pbmRleE9pZFtpXSA9PSBJTlQ0T0lEKQorCQkJaWYgKCF3b3Jrc3BhY2UtPmpzb25wYXRo ICYmIHdvcmtzcGFjZS0+aW5kZXhPaWRbaV0gPT0gSU5UNE9JRCkKIAkJCXsKIAkJCQlEYXR1bQkJ ZGF0dW0gPSBzYnNyZWZzdGF0ZS0+dXBwZXJpbmRleFtpXTsKIAkJCQljaGFyCSAgICpjcyA9IERh dHVtR2V0Q1N0cmluZyhEaXJlY3RGdW5jdGlvbkNhbGwxKGludDRvdXQsIGRhdHVtKSk7CkBAIC0y NDYsMTcgKzQ5NywzMiBAQCBqc29uYl9zdWJzY3JpcHRfZmV0Y2goRXhwclN0YXRlICpzdGF0ZSwK IHsKIAlTdWJzY3JpcHRpbmdSZWZTdGF0ZSAqc2JzcmVmc3RhdGUgPSBvcC0+ZC5zYnNyZWYuc3Rh dGU7CiAJSnNvbmJTdWJXb3Jrc3BhY2UgKndvcmtzcGFjZSA9IChKc29uYlN1YldvcmtzcGFjZSAq KSBzYnNyZWZzdGF0ZS0+d29ya3NwYWNlOwotCUpzb25iCSAgICpqc29uYlNvdXJjZTsKIAogCS8q IFNob3VsZCBub3QgZ2V0IGhlcmUgaWYgc291cmNlIGpzb25iIChvciBhbnkgc3Vic2NyaXB0KSBp cyBudWxsICovCiAJQXNzZXJ0KCEoKm9wLT5yZXNudWxsKSk7CiAKLQlqc29uYlNvdXJjZSA9IERh dHVtR2V0SnNvbmJQKCpvcC0+cmVzdmFsdWUpOwotCSpvcC0+cmVzdmFsdWUgPSBqc29uYl9nZXRf ZWxlbWVudChqc29uYlNvdXJjZSwKLQkJCQkJCQkJCSAgd29ya3NwYWNlLT5pbmRleCwKLQkJCQkJ CQkJCSAgc2JzcmVmc3RhdGUtPm51bXVwcGVyLAotCQkJCQkJCQkJICBvcC0+cmVzbnVsbCwKLQkJ CQkJCQkJCSAgZmFsc2UpOworCWlmICh3b3Jrc3BhY2UtPmpzb25wYXRoKQorCXsKKwkJYm9vbAkJ ZW1wdHkgPSBmYWxzZTsKKwkJYm9vbAkJZXJyb3IgPSBmYWxzZTsKKworCQkqb3AtPnJlc3ZhbHVl ID0gSnNvblBhdGhRdWVyeSgqb3AtPnJlc3ZhbHVlLCB3b3Jrc3BhY2UtPmpzb25wYXRoLAorCQkJ CQkJCQkJICBKU1dfQ09ORElUSU9OQUwsCisJCQkJCQkJCQkgICZlbXB0eSwgJmVycm9yLCBOVUxM LAorCQkJCQkJCQkJICBOVUxMKTsKKworCQkqb3AtPnJlc251bGwgPSBlbXB0eSB8fCBlcnJvcjsK Kwl9CisJZWxzZQorCXsKKwkJSnNvbmIJICAgKmpzb25iU291cmNlID0gRGF0dW1HZXRKc29uYlAo Km9wLT5yZXN2YWx1ZSk7CisKKwkJKm9wLT5yZXN2YWx1ZSA9IGpzb25iX2dldF9lbGVtZW50KGpz b25iU291cmNlLAorCQkJCQkJCQkJCSAgd29ya3NwYWNlLT5pbmRleCwKKwkJCQkJCQkJCQkgIHNi c3JlZnN0YXRlLT5udW11cHBlciwKKwkJCQkJCQkJCQkgIG9wLT5yZXNudWxsLAorCQkJCQkJCQkJ CSAgZmFsc2UpOworCX0KIH0KIAogLyoKQEAgLTM2NCw3ICs2MzAsNyBAQCBqc29uYl9leGVjX3Nl dHVwKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogewogCUpzb25iU3ViV29ya3NwYWNl ICp3b3Jrc3BhY2U7CiAJTGlzdENlbGwgICAqbGM7Ci0JaW50CQkJbnVwcGVyID0gc2JzcmVmLT5y ZWZ1cHBlcmluZGV4cHItPmxlbmd0aDsKKwlpbnQJCQludXBwZXIgPSBsaXN0X2xlbmd0aChzYnNy ZWYtPnJlZnVwcGVyaW5kZXhwcik7CiAJY2hhcgkgICAqcHRyOwogCiAJLyogQWxsb2NhdGUgdHlw ZS1zcGVjaWZpYyB3b3Jrc3BhY2Ugd2l0aCBzcGFjZSBmb3IgcGVyLXN1YnNjcmlwdCBkYXRhICov CkBAIC0zNzMsNiArNjM5LDkgQEAganNvbmJfZXhlY19zZXR1cChjb25zdCBTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZiwKIAl3b3Jrc3BhY2UtPmV4cGVjdEFycmF5ID0gZmFsc2U7CiAJcHRyID0gKChj aGFyICopIHdvcmtzcGFjZSkgKyBNQVhBTElHTihzaXplb2YoSnNvbmJTdWJXb3Jrc3BhY2UpKTsK IAorCWlmIChzYnNyZWYtPnJlZmpzb25icGF0aCkKKwkJd29ya3NwYWNlLT5qc29ucGF0aCA9IERh dHVtR2V0SnNvblBhdGhQKGNhc3ROb2RlKENvbnN0LCBzYnNyZWYtPnJlZmpzb25icGF0aCktPmNv bnN0dmFsdWUpOworCiAJLyoKIAkgKiBUaGlzIGNvZGluZyBhc3N1bWVzIHNpemVvZihEYXR1bSkg Pj0gc2l6ZW9mKE9pZCksIGVsc2Ugd2UgbWlnaHQKIAkgKiBtaXNhbGlnbiB0aGUgaW5kZXhPaWQg cG9pbnRlcgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDNkNmU2YmRiZmQyLi5iYWEz YWU5N2Q1NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtOTMyOSwxMCArOTMyOSwx MyBAQCBnZXRfcnVsZV9leHByKE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwK IAkJCQkgKiBQYXJlbnRoZXNpemUgdGhlIGFyZ3VtZW50IHVubGVzcyBpdCdzIGEgc2ltcGxlIFZh ciBvciBhCiAJCQkJICogRmllbGRTZWxlY3QuICAoSW4gcGFydGljdWxhciwgaWYgaXQncyBhbm90 aGVyCiAJCQkJICogU3Vic2NyaXB0aW5nUmVmLCB3ZSAqbXVzdCogcGFyZW50aGVzaXplIHRvIGF2 b2lkCi0JCQkJICogY29uZnVzaW9uLikKKwkJCQkgKiBjb25mdXNpb24uKSBBbHdheXMgYWRkIHBh cmVudGhlc2lzIGlmIEpTT04gc2ltcGxpZmllZAorCQkJCSAqIGFjY2Vzc29yIGlzIHVzZWQsIGZv ciBub3cuCiAJCQkJICovCi0JCQkJbmVlZF9wYXJlbnMgPSAhSXNBKHNic3JlZi0+cmVmZXhwciwg VmFyKSAmJgotCQkJCQkhSXNBKHNic3JlZi0+cmVmZXhwciwgRmllbGRTZWxlY3QpOworCQkJCW5l ZWRfcGFyZW5zID0gKCFJc0Eoc2JzcmVmLT5yZWZleHByLCBWYXIpICYmCisJCQkJCSFJc0Eoc2Jz cmVmLT5yZWZleHByLCBGaWVsZFNlbGVjdCkpIHx8CisJCQkJCQlzYnNyZWYtPnJlZmpzb25icGF0 aDsKKwogCQkJCWlmIChuZWVkX3BhcmVucykKIAkJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVm LCAnKCcpOwogCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgc2JzcmVmLT5yZWZleHByLCBjb250 ZXh0LCBzaG93aW1wbGljaXQpOwpAQCAtMTMwMDUsMTcgKzEzMDA4LDM1IEBAIHByaW50U3Vic2Ny aXB0cyhTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQog CWxvd2xpc3RfaXRlbSA9IGxpc3RfaGVhZChzYnNyZWYtPnJlZmxvd2VyaW5kZXhwcik7CS8qIGNv dWxkIGJlIE5VTEwgKi8KIAlmb3JlYWNoKHVwbGlzdF9pdGVtLCBzYnNyZWYtPnJlZnVwcGVyaW5k ZXhwcikKIAl7Ci0JCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1snKTsKLQkJaWYgKGxvd2xp c3RfaXRlbSkKKwkJTm9kZSAqdXBwZXIgPSAoTm9kZSAqKSBsZmlyc3QodXBsaXN0X2l0ZW0pOwor CisJCWlmICh1cHBlciAmJiBJc0EodXBwZXIsIEZpZWxkQWNjZXNzb3JFeHByKSkKIAkJeworCQkJ RmllbGRBY2Nlc3NvckV4cHIgKmZhZSA9IChGaWVsZEFjY2Vzc29yRXhwciAqKSB1cHBlcjsKKwor CQkJLyogVXNlIGRvdC1ub3RhdGlvbiBmb3IgZmllbGQgYWNjZXNzICovCisJCQlhcHBlbmRTdHJp bmdJbmZvQ2hhcihidWYsICcuJyk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgcXVv dGVfaWRlbnRpZmllcihmYWUtPmZpZWxkbmFtZSkpOworCisJCQkvKiBTa2lwIG1hdGNoaW5nIGxv dyBpbmRleCDigJQgZmllbGQgYWNjZXNzIGRvZXNuJ3QgdXNlIHNsaWNlcyAqLworCQkJaWYgKGxv d2xpc3RfaXRlbSkKKwkJCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNyZWYtPnJlZmxvd2VyaW5k ZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIFVzZSBKU09OQiBh cnJheSBzdWJzY3JpcHRpbmcgKi8KKwkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJ1snKTsK KwkJCWlmIChsb3dsaXN0X2l0ZW0pCisJCQl7CisJCQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBO VUxMLCBnZXRfcnVsZV9leHByIHByaW50cyBub3RoaW5nICovCisJCQkJZ2V0X3J1bGVfZXhwcigo Tm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOworCQkJCWFwcGVu ZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJzonKTsKKwkJCQlsb3dsaXN0X2l0ZW0gPSBsbmV4dChzYnNy ZWYtPnJlZmxvd2VyaW5kZXhwciwgbG93bGlzdF9pdGVtKTsKKwkJCX0KIAkJCS8qIElmIHN1YmV4 cHJlc3Npb24gaXMgTlVMTCwgZ2V0X3J1bGVfZXhwciBwcmludHMgbm90aGluZyAqLwotCQkJZ2V0 X3J1bGVfZXhwcigoTm9kZSAqKSBsZmlyc3QobG93bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2Up OwotCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnOicpOwotCQkJbG93bGlzdF9pdGVtID0g bG5leHQoc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIsIGxvd2xpc3RfaXRlbSk7CisJCQlnZXRfcnVs ZV9leHByKHVwcGVyLCBjb250ZXh0LCBmYWxzZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihi dWYsICddJyk7CiAJCX0KLQkJLyogSWYgc3ViZXhwcmVzc2lvbiBpcyBOVUxMLCBnZXRfcnVsZV9l eHByIHByaW50cyBub3RoaW5nICovCi0JCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbGZpcnN0KHVw bGlzdF9pdGVtKSwgY29udGV4dCwgZmFsc2UpOwotCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYs ICddJyk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDZkZmNhM2NiMzViLi43ZTg5 NjIxYmQ2NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTcwOCwxOCArNzA4LDMwIEBAIHR5cGVk ZWYgc3RydWN0IFN1YnNjcmlwdGluZ1JlZgogCWludDMyCQlyZWZ0eXBtb2QgcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGNvbGxhdGlvbiBvZiByZXN1bHQsIG9yIEludmFs aWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXJlZmNvbGxpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7Ci0JLyogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byB1cHBlciBjb250 YWluZXIgaW5kZXhlcyAqLworCisJLyoKKwkgKiBleHByZXNzaW9ucyB0aGF0IGV2YWx1YXRlIHRv IHVwcGVyIGNvbnRhaW5lciBpbmRleGVzIG9yIGV4cHJlc3Npb25zCisJICogdGhhdCBhcmUgY29s bGVjdGVkIGJ1dCBub3QgZXZhbHVhdGVkIHdoZW4gcmVmanNvbmJwYXRoIGlzIHNldC4KKwkgKi8K IAlMaXN0CSAgICpyZWZ1cHBlcmluZGV4cHI7CiAKIAkvKgotCSAqIGV4cHJlc3Npb25zIHRoYXQg ZXZhbHVhdGUgdG8gbG93ZXIgY29udGFpbmVyIGluZGV4ZXMsIG9yIE5JTCBmb3Igc2luZ2xlCi0J ICogY29udGFpbmVyIGVsZW1lbnQuCisJICogZXhwcmVzc2lvbnMgdGhhdCBldmFsdWF0ZSB0byBs b3dlciBjb250YWluZXIgaW5kZXhlcywgb3IgTklMIGZvciBhCisJICogc2luZ2xlIGNvbnRhaW5l ciBlbGVtZW50LCBvciBleHByZXNzaW9ucyB0aGF0IGFyZSBjb2xsZWN0ZWQgYnV0IG5vdAorCSAq IGV2YWx1YXRlZCB3aGVuIHJlZmpzb25icGF0aCBpcyBzZXQuCiAJICovCiAJTGlzdAkgICAqcmVm bG93ZXJpbmRleHByOwogCS8qIHRoZSBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgY29u dGFpbmVyIHZhbHVlICovCiAJRXhwcgkgICAqcmVmZXhwcjsKIAkvKiBleHByZXNzaW9uIGZvciB0 aGUgc291cmNlIHZhbHVlLCBvciBOVUxMIGlmIGZldGNoICovCiAJRXhwcgkgICAqcmVmYXNzZ25l eHByOworCisJLyoKKwkgKiBjb250YWluZXItc3BlY2lmaWMgZXh0cmEgaW5mb3JtYXRpb24sIGN1 cnJlbnRseSB1c2VkIG9ubHkgYnkganNvbmIuCisJICogc3RvcmVzIGEgSnNvblBhdGggZXhwcmVz c2lvbiB3aGVuIGpzb25iIGRvdCBub3RhdGlvbiBpcyB1c2VkLiBOVUxMIGZvcgorCSAqIHNpbXBs ZSBzdWJzY3JpcHRpbmcuCisJICovCisJTm9kZQkgICAqcmVmanNvbmJwYXRoOwogfSBTdWJzY3Jp cHRpbmdSZWY7CiAKIC8qCkBAIC0yMzcxLDQgKzIzODMsNDAgQEAgdHlwZWRlZiBzdHJ1Y3QgT25D b25mbGljdEV4cHIKIAlMaXN0CSAgICpleGNsUmVsVGxpc3Q7CS8qIHRsaXN0IG9mIHRoZSBFWENM VURFRCBwc2V1ZG8gcmVsYXRpb24gKi8KIH0gT25Db25mbGljdEV4cHI7CiAKKy8qCisgKiBGaWVs ZEFjY2Vzc29yRXhwciAtIHJlcHJlc2VudHMgYSBzaW5nbGUgb2JqZWN0IG1lbWJlciBhY2Nlc3Mg dXNpbmcgZG90LW5vdGF0aW9uCisgKgkJaW4gSlNPTiBzaW1wbGlmaWVkIGFjY2Vzc29yIHN5bnRh eCAoZS5nLiwganNvbmJfY29sLmEpLgorICoKKyAqIFRoZXNlIG5vZGVzIGFwcGVhciBhcyBsaXN0 IGVsZW1lbnRzIGluIFN1YnNjcmlwdGluZ1JlZi5yZWZ1cHBlcmluZGV4cHIgdG8KKyAqIGluZGlj YXRlIEpTT04gb2JqZWN0IGtleSBhY2Nlc3MuIFRoZXkgYXJlIG5vdCBldmFsdWFibGUgZXhwcmVz c2lvbnMgYnkKKyAqIHRoZW1zZWx2ZXMgYnV0IHNlcnZlIGFzIHBsYWNlaG9sZGVycyB0byBwcmVz ZXJ2ZSBzb3VyY2UtbGV2ZWwgc3ludGF4IGZvcgorICogcnVsZSByZXdyaXRpbmcgYW5kIGRlcGFy c2luZyAoZS5nLiwgaW4gRVhQTEFJTiBhbmQgdmlldyBkZWZpbml0aW9ucykuCisgKiBFeGVjdXRp b24gaXMgaGFuZGxlZCBieSB0aGUgZW5jbG9zaW5nIFN1YnNjcmlwdGluZ1JlZi4KKyAqCisgKiBJ ZiBkb3Qtbm90YXRpb24gaXMgdXNlZCBpbiBhIFN1YnNjcmlwdGluZ1JlZiwgdGhlIEpTT04gcGF0 aCBpcyByZXByZXNlbnRlZAorICogYXMgYSBmbGF0IGxpc3Qgb2YgRmllbGRBY2Nlc3NvckV4cHIg bm9kZXMgKGZvciBvYmplY3QgZmllbGQgYWNjZXNzKSwgQ29uc3QKKyAqIG5vZGVzIChmb3IgYXJy YXkgaW5kZXhlcyksIGFuZCBOVUxMcyAoZm9yIG9taXR0ZWQgc2xpY2UgYm91bmRzKSwgcmF0aGVy IHRoYW4KKyAqIHRocm91Z2ggbmVzdGVkIGV4cHJlc3Npb24gdHJlZXMuCisgKgorICogTm90ZTog VGhlIGZsYXQgcmVwcmVzZW50YXRpb24gYXZvaWRzIG5lc3RlZCBGaWVsZEFjY2Vzc29yRXhwciBj aGFpbnMsCisgKiBzaW1wbGlmeWluZyBldmFsdWF0aW9uIGFuZCBlbmFibGluZyBzdGFuZGFyZC1j b21wbGlhbnQgYmVoYXZpb3Igc3VjaCBhcworICogY29uZGl0aW9uYWwgYXJyYXkgd3JhcHBpbmcu IFRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBwb3NpdGlvbi1hd2FyZQorICogd3JhcHBpbmcvdW53 cmFwcGluZyBsb2dpYyBkdXJpbmcgZXhlY3V0aW9uLgorICoKKyAqIEZvciBleGFtcGxlLCBpbiB0 aGUgZXhwcmVzc2lvbjoKKyAqCQkoJ3siYSI6IFt7ImIiOiAxfV19Jzo6anNvbmIpLmFbMF0uYgor ICogdGhlIFN1YnNjcmlwdGluZ1JlZiB3aWxsIGNvbnRhaW46CisgKgkJLSByZWZleHByOiB0aGUg YmFzZSBleHByZXNzaW9uICh0aGUganNvbmIgdmFsdWUpCisgKgkJLSByZWZ1cHBlcmluZGV4cHI6 IFtGaWVsZEFjY2Vzc29yRXhwcigiYSIpLCBDb25zdCgwKSwKKyAqCQkJRmllbGRBY2Nlc3NvckV4 cHIoImIiKV0KKyAqCQktIHJlZmxvd2VyaW5kZXhwcjogW05VTEwsIE5VTEwsIE5VTExdIChzbGlj ZSBsb3dlciBib3VuZHMgbm90IHVzZWQgaGVyZSkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgRmllbGRB Y2Nlc3NvckV4cHIKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKmZpZWxkbmFtZTsJCS8q IG5hbWUgb2YgdGhlIEpTT05CIG9iamVjdCBmaWVsZCBhY2Nlc3NlZCB2aWEKKwkJCQkJCQkJICog ZG90IG5vdGF0aW9uICovCisJT2lkCQkJZmFlY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1i bGVfaWdub3JlKTsKK30JCQlGaWVsZEFjY2Vzc29yRXhwcjsKKwogI2VuZGlmCQkJCQkJCS8qIFBS SU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0 ZWQvc3FsLXNxbGpzb24uYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwt c3FsanNvbi5jCmluZGV4IDM5MjIxZjllYTVkLi5lNmE3ZWNlNmRhYiAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLmMKQEAgLTQxNywxMiArNDE3 LDEyMiBAQCBpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQogCSAgZm9yIChpbnQg aSA9IDA7IGkgPCBzaXplb2YoaXNfanNvbik7IGkrKykKIAkJICBwcmludGYoIkZvdW5kIGlzX2pz b25bJWRdOiAlc1xuIiwgaSwgaXNfanNvbltpXSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCi0gIHsg RUNQR2Rpc2Nvbm5lY3QoX19MSU5FX18sICJDVVJSRU5UIik7CisJeyBFQ1BHZG8oX19MSU5FX18s IDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjog e1wiYlwiOiAxLCBcImNcIjogMn19JyA6OiBqc29uYiApIC4gXCJhXCIgKSIsIEVDUEd0X0VPSVQs IAorCUVDUEd0X2NoYXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNo YXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JU KTsKICNsaW5lIDExOCAic3FsanNvbi5wZ2MiCiAKIGlmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3Fs cHJpbnQoKTt9CiAjbGluZSAxMTggInNxbGpzb24ucGdjIgogCisJcHJpbnRmKCJGb3VuZCBqc29u PSVzXG4iLCBqc29uKTsKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BH c3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0n IDo6IGpzb25iIC4gXCJhXCIgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIsKGpzb24pLChs b25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9OT19JTkRJQ0FU T1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEyMSAic3FsanNvbi5w Z2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxMjEgInNx bGpzb24ucGdjIgorCisJLy8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxM LCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwg XCJjXCI6IDJ9fScgOjoganNvbmIgKSAuIGEgKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2NoYXIs KGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BHdF9O T19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDEyNCAi c3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGlu ZSAxMjQgInNxbGpzb24ucGdjIgorCisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsK KworCXsgRUNQR2RvKF9fTElORV9fLCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2Vs ZWN0IGpzb24gKCAoICd7XCJhXCI6IHtcImJcIjogMSwgXCJjXCI6IDJ9fScgOjoganNvbmIgKSAu IGEgLiBiICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChs b25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwg MEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMjcgInNxbGpzb24ucGdjIgorCitpZiAo c3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTI3ICJzcWxqc29uLnBnYyIK KworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVf XywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggY29hbGVzY2Ug KCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfX0nIDo6IGpzb25iICkgLiBj ICkgLCAnbnVsbCcgKSApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hhciwoanNvbiksKGxvbmcp MTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0X05PX0lORElDQVRPUiwg TlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTMwICJzcWxqc29uLnBnYyIK KworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNsaW5lIDEzMCAic3FsanNv bi5wZ2MiCisKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJeyBFQ1BHZG8o X19MSU5FX18sIDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICgg J3tcImFcIjoge1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwi OiBbMTIsIHtcInlcIjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMCBdICkiLCBFQ1BHdF9FT0lU LCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihj aGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9S VCk7CisjbGluZSAxMzMgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNx bHByaW50KCk7fQorI2xpbmUgMTMzICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQganNv bj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQ R3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAy fSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNv bmIgKSAuIGIgLiB4ICkiLCBFQ1BHdF9FT0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykx MDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBO VUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7CisjbGluZSAxMzYgInNxbGpzb24ucGdjIgor CitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHByaW50KCk7fQorI2xpbmUgMTM2ICJzcWxqc29u LnBnYyIKKworCXByaW50ZigiRm91bmQganNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhf X0xJTkVfXywgMCwgMSwgTlVMTCwgMCwgRUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAn e1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wiOiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6 IFsxMiwge1wieVwiOjF9XX1dfScgOjoganNvbmIgKSBbICdiJyBdIFsgMCBdICkiLCBFQ1BHdF9F T0lULCAKKwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVv ZihjaGFyKSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3Rf RU9SVCk7CisjbGluZSAxMzkgInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDAp IHNxbHByaW50KCk7fQorI2xpbmUgMTM5ICJzcWxqc29uLnBnYyIKKworCXByaW50ZigiRm91bmQg anNvbj0lc1xuIiwganNvbik7CisKKwl7IEVDUEdkbyhfX0xJTkVfXywgMCwgMSwgTlVMTCwgMCwg RUNQR3N0X25vcm1hbCwgInNlbGVjdCBqc29uICggKCAne1wiYVwiOiB7XCJiXCI6IDEsIFwiY1wi OiAyfSwgXCJiXCI6IFt7XCJ4XCI6IDF9LCB7XCJ4XCI6IFsxMiwge1wieVwiOjF9XX1dfScgOjog anNvbmIgKSAuIGIgWyAxIF0gLiB4IFsgMCA6IF0gKSIsIEVDUEd0X0VPSVQsIAorCUVDUEd0X2No YXIsKGpzb24pLChsb25nKTEwMjQsKGxvbmcpMSwoMTAyNCkqc2l6ZW9mKGNoYXIpLCAKKwlFQ1BH dF9OT19JTkRJQ0FUT1IsIE5VTEwgLCAwTCwgMEwsIDBMLCBFQ1BHdF9FT1JUKTsKKyNsaW5lIDE0 MiAic3FsanNvbi5wZ2MiCisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9Cisj bGluZSAxNDIgInNxbGpzb24ucGdjIgorCisJLy8gZXJyb3IKKworCXsgRUNQR2RvKF9fTElORV9f LCAwLCAxLCBOVUxMLCAwLCBFQ1BHc3Rfbm9ybWFsLCAic2VsZWN0IGpzb24gKCAoICd7XCJhXCI6 IHtcImJcIjogMSwgXCJjXCI6IDJ9LCBcImJcIjogW3tcInhcIjogMX0sIHtcInhcIjogWzEyLCB7 XCJ5XCI6MX1dfV19JyA6OiBqc29uYiApIC4gKiApIiwgRUNQR3RfRU9JVCwgCisJRUNQR3RfY2hh ciwoanNvbiksKGxvbmcpMTAyNCwobG9uZykxLCgxMDI0KSpzaXplb2YoY2hhciksIAorCUVDUEd0 X05PX0lORElDQVRPUiwgTlVMTCAsIDBMLCAwTCwgMEwsIEVDUEd0X0VPUlQpOworI2xpbmUgMTQ1 ICJzcWxqc29uLnBnYyIKKworaWYgKHNxbGNhLnNxbGNvZGUgPCAwKSBzcWxwcmludCgpO30KKyNs aW5lIDE0NSAic3FsanNvbi5wZ2MiCisKKwkvLyBlcnJvcgorCisJeyBFQ1BHZG8oX19MSU5FX18s IDAsIDEsIE5VTEwsIDAsIEVDUEdzdF9ub3JtYWwsICJzZWxlY3QganNvbiAoICggJ3tcImFcIjog e1wiYlwiOiAxLCBcImNcIjogMn0sIFwiYlwiOiBbe1wieFwiOiAxfSwge1wieFwiOiBbMTIsIHtc InlcIjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkiLCBFQ1BHdF9FT0lULCAK KwlFQ1BHdF9jaGFyLChqc29uKSwobG9uZykxMDI0LChsb25nKTEsKDEwMjQpKnNpemVvZihjaGFy KSwgCisJRUNQR3RfTk9fSU5ESUNBVE9SLCBOVUxMICwgMEwsIDBMLCAwTCwgRUNQR3RfRU9SVCk7 CisjbGluZSAxNDggInNxbGpzb24ucGdjIgorCitpZiAoc3FsY2Euc3FsY29kZSA8IDApIHNxbHBy aW50KCk7fQorI2xpbmUgMTQ4ICJzcWxqc29uLnBnYyIKKworCS8vIGVycm9yCisKKyAgeyBFQ1BH ZGlzY29ubmVjdChfX0xJTkVfXywgIkNVUlJFTlQiKTsKKyNsaW5lIDE1MSAic3FsanNvbi5wZ2Mi CisKK2lmIChzcWxjYS5zcWxjb2RlIDwgMCkgc3FscHJpbnQoKTt9CisjbGluZSAxNTEgInNxbGpz b24ucGdjIgorCiAKICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9l Y3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNxbGpzb24uc3RkZXJyIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZGVycgppbmRleCBlNTVhOTVkZDcxMS4uMTlm OGM1OGFmMDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9z cWwtc3FsanNvbi5zdGRlcnIKKysrIGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVk L3NxbC1zcWxqc29uLnN0ZGVycgpAQCAtMjY4LDUgKzI2OCwxMDUgQEAgU1FMIGVycm9yOiBjYW5u b3QgdXNlIHR5cGUganNvbmIgaW4gUkVUVVJOSU5HIGNsYXVzZSBvZiBKU09OX1NFUklBTElaRSgp IG9uIGxpbmUKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCiBbTk9fUElE XTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEwMjogUkVTVUxUOiBmIG9mZnNldDogLTE7IGFycmF5 OiBubwogW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBl Y3BnX2V4ZWN1dGUgb24gbGluZSAxMTg6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsi YiI6IDEsICJjIjogMn19JyA6OiBqc29uYiApIC4gImEiICk7IHdpdGggMCBwYXJhbWV0ZXIocykg b24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDExODogdXNpbmcg UFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06 IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMTg6IGNvcnJlY3RseSBnb3QgMSB0dXBsZXMg d2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTE4OiBSRVNVTFQ6IHsiYiI6IDEsICJjIjog Mn0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyMTogcXVlcnk6IHNlbGVj dCBqc29uICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApOyB3aXRo IDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24g bGluZSAxMjE6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVzdWx0IG9uIGxpbmUgMTIxOiBiYWQgcmVz cG9uc2UgLSBFUlJPUjogIHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHNl bGVjdCBqc29uICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn19JyA6OiBqc29uYiAuICJhIiApCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitbTk9f UElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcgc3Fs c3RhdGUgM0YwMDAgKHNxbGNvZGUgLTQwMCk6IHNjaGVtYSAianNvbmIiIGRvZXMgbm90IGV4aXN0 IG9uIGxpbmUgMTIxCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiAzRjAwMAor U1FMIGVycm9yOiBzY2hlbWEgImpzb25iIiBkb2VzIG5vdCBleGlzdCBvbiBsaW5lIDEyMQorW05P X1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNDogcXVlcnk6IHNlbGVjdCBqc29uICggKCAn eyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBhICk7IHdpdGggMCBwYXJhbWV0 ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElEXTogc3FsY2E6IGNv ZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNDog dXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IGVjcGdfcHJvY2Vzc19vdXRwdXQgb24gbGluZSAxMjQ6IGNvcnJlY3RseSBnb3QgMSB0 dXBsZXMgd2l0aCAxIGZpZWxkcworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2dldF9kYXRhIG9uIGxpbmUgMTI0OiBSRVNVTFQ6IHsiYiI6IDEs ICJjIjogMn0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAs IHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEyNzogcXVlcnk6 IHNlbGVjdCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfX0nIDo6IGpzb25iICkgLiBh IC4gYiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNwZzFfcmVncmVzc2lv bgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X2V4ZWN1dGUgb24gbGluZSAxMjc6IHVzaW5nIFBRZXhlYworW05PX1BJRF06IHNxbGNhOiBjb2Rl OiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUg MTI3OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGggMSBmaWVsZHMKK1tOT19QSURdOiBzcWxj YTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19nZXRfZGF0YSBvbiBsaW5l IDEyNzogUkVTVUxUOiAxIG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBj b2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzA6 IHF1ZXJ5OiBzZWxlY3QganNvbiAoIGNvYWxlc2NlICgganNvbiAoICggJ3siYSI6IHsiYiI6IDEs ICJjIjogMn19JyA6OiBqc29uYiApIC4gYyApICwgJ251bGwnICkgKTsgd2l0aCAwIHBhcmFtZXRl cihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29k ZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMwOiB1 c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9f UElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEzMDogY29ycmVjdGx5IGdvdCAxIHR1 cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAw MAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMzA6IFJFU1VMVDogbnVsbCBvZmZz ZXQ6IC0xOyBhcnJheTogbm8KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAw CitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMzOiBxdWVyeTogc2VsZWN0IGpzb24g KCAoICd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7 InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAwIF0gKTsgd2l0aCAwIHBhcmFtZXRlcihzKSBv biBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwg c3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTMzOiB1c2luZyBQ UWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTog ZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEzMzogY29ycmVjdGx5IGdvdCAxIHR1cGxlcyB3 aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMzM6IFJFU1VMVDogeyJ4IjogMX0gb2Zmc2V0 OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAor W05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDEzNjogcXVlcnk6IHNlbGVjdCBqc29uICgg KCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIC4geCApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNv bm5lY3Rpb24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0 ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzY6IHVzaW5nIFBRZXhl YworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3Bn X3Byb2Nlc3Nfb3V0cHV0IG9uIGxpbmUgMTM2OiBjb3JyZWN0bHkgZ290IDEgdHVwbGVzIHdpdGgg MSBmaWVsZHMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElE XTogZWNwZ19nZXRfZGF0YSBvbiBsaW5lIDEzNjogUkVTVUxUOiBbMSwgWzEyLCB7InkiOiAxfV1d IG9mZnNldDogLTE7IGFycmF5OiBubworW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTog MDAwMDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxMzk6IHF1ZXJ5OiBzZWxlY3Qg anNvbiAoICggJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBb MTIsIHsieSI6MX1dfV19JyA6OiBqc29uYiApIFsgJ2InIF0gWyAwIF0gKTsgd2l0aCAwIHBhcmFt ZXRlcihzKSBvbiBjb25uZWN0aW9uIGVjcGcxX3JlZ3Jlc3Npb24KK1tOT19QSURdOiBzcWxjYTog Y29kZTogMCwgc3RhdGU6IDAwMDAwCitbTk9fUElEXTogZWNwZ19leGVjdXRlIG9uIGxpbmUgMTM5 OiB1c2luZyBQUWV4ZWMKK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAwMDAwCitb Tk9fUElEXTogZWNwZ19wcm9jZXNzX291dHB1dCBvbiBsaW5lIDEzOTogY29ycmVjdGx5IGdvdCAx IHR1cGxlcyB3aXRoIDEgZmllbGRzCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAw MDAwMAorW05PX1BJRF06IGVjcGdfZ2V0X2RhdGEgb24gbGluZSAxMzk6IFJFU1VMVDogeyJ4Ijog MX0gb2Zmc2V0OiAtMTsgYXJyYXk6IG5vCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBvbiBsaW5lIDE0MjogcXVlcnk6IHNlbGVj dCBqc29uICggKCAneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6 IFsxMiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgLiBiIFsgMSBdIC4geCBbIDAgOiBdICk7IHdp dGggMCBwYXJhbWV0ZXIocykgb24gY29ubmVjdGlvbiBlY3BnMV9yZWdyZXNzaW9uCitbTk9fUElE XTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IGVjcGdfZXhlY3V0ZSBv biBsaW5lIDE0MjogdXNpbmcgUFFleGVjCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRl OiAwMDAwMAorW05PX1BJRF06IGVjcGdfY2hlY2tfUFFyZXN1bHQgb24gbGluZSAxNDI6IGJhZCBy ZXNwb25zZSAtIEVSUk9SOiAganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2Vz CitMSU5FIDE6IC4uLiwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfScgOjoganNvbmIgKSAuIGIgWyAx IF0gLiB4IFsgMCA6IF0gKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1tOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3Rh dGU6IDAwMDAwCitbTk9fUElEXTogcmFpc2luZyBzcWxzdGF0ZSA0MjgwNCAoc3FsY29kZSAtNDAw KToganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzIG9uIGxpbmUgMTQyCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IC00MDAsIHN0YXRlOiA0MjgwNAorU1FMIGVycm9yOiBqc29u YiBzdWJzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCBzbGljZXMgb24gbGluZSAxNDIKK1tOT19QSURd OiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6 IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19 JyA6OiBqc29uYiApIC4gKiApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rpb24gZWNw ZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tO T19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDU6IHVzaW5nIFBRZXhlYworW05PX1BJRF06 IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNrX1BRcmVz dWx0IG9uIGxpbmUgMTQ1OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIHJvdyBleHBhbnNpb24gdmlh ICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogc2VsZWN0IGpzb24gKCAoICd7ImEi OiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4Li4uCisgICAgICAgICAgICAg ICAgICAgICAgICBeCitbTk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05P X1BJRF06IHJhaXNpbmcgc3Fsc3RhdGUgMEEwMDAgKHNxbGNvZGUgLTQwMCk6IHJvdyBleHBhbnNp b24gdmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBz cWxjYTogY29kZTogLTQwMCwgc3RhdGU6IDBBMDAwCitTUUwgZXJyb3I6IHJvdyBleHBhbnNpb24g dmlhICIqIiBpcyBub3Qgc3VwcG9ydGVkIGhlcmUgb24gbGluZSAxNDUKK1tOT19QSURdOiBlY3Bn X2V4ZWN1dGUgb24gbGluZSAxNDg6IHF1ZXJ5OiBzZWxlY3QganNvbiAoICggJ3siYSI6IHsiYiI6 IDEsICJjIjogMn0sICJiIjogW3sieCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19JyA6OiBq c29uYiApIFsgJ2InIF0gWyAwIDogXSApOyB3aXRoIDAgcGFyYW1ldGVyKHMpIG9uIGNvbm5lY3Rp b24gZWNwZzFfcmVncmVzc2lvbgorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAw MDAKK1tOT19QSURdOiBlY3BnX2V4ZWN1dGUgb24gbGluZSAxNDg6IHVzaW5nIFBRZXhlYworW05P X1BJRF06IHNxbGNhOiBjb2RlOiAwLCBzdGF0ZTogMDAwMDAKK1tOT19QSURdOiBlY3BnX2NoZWNr X1BRcmVzdWx0IG9uIGxpbmUgMTQ4OiBiYWQgcmVzcG9uc2UgLSBFUlJPUjogIGpzb25iIHN1YnNj cmlwdCBkb2VzIG5vdCBzdXBwb3J0IHNsaWNlcworTElORSAxOiAuLi54IjogMX0sIHsieCI6IFsx MiwgeyJ5IjoxfV19XX0nIDo6IGpzb25iICkgWyAnYicgXSBbIDAgOiBdICkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitb Tk9fUElEXTogc3FsY2E6IGNvZGU6IDAsIHN0YXRlOiAwMDAwMAorW05PX1BJRF06IHJhaXNpbmcg c3Fsc3RhdGUgNDI4MDQgKHNxbGNvZGUgLTQwMCk6IGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBz dXBwb3J0IHNsaWNlcyBvbiBsaW5lIDE0OAorW05PX1BJRF06IHNxbGNhOiBjb2RlOiAtNDAwLCBz dGF0ZTogNDI4MDQKK1NRTCBlcnJvcjoganNvbmIgc3Vic2NyaXB0IGRvZXMgbm90IHN1cHBvcnQg c2xpY2VzIG9uIGxpbmUgMTQ4CiBbTk9fUElEXTogZWNwZ19maW5pc2g6IGNvbm5lY3Rpb24gZWNw ZzFfcmVncmVzc2lvbiBjbG9zZWQKIFtOT19QSURdOiBzcWxjYTogY29kZTogMCwgc3RhdGU6IDAw MDAwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3QvZXhwZWN0ZWQvc3FsLXNx bGpzb24uc3Rkb3V0IGIvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxq c29uLnN0ZG91dAppbmRleCA4M2Y4ZGYxM2U1YS4uNDQyZDM2OTMxZjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9leHBlY3RlZC9zcWwtc3FsanNvbi5zdGRvdXQKKysrIGIv c3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L2V4cGVjdGVkL3NxbC1zcWxqc29uLnN0ZG91dApAQCAt MjgsMyArMjgsMTAgQEAgRm91bmQgaXNfanNvbls0XTogZmFsc2UKIEZvdW5kIGlzX2pzb25bNV06 IGZhbHNlCiBGb3VuZCBpc19qc29uWzZdOiB0cnVlCiBGb3VuZCBpc19qc29uWzddOiBmYWxzZQor Rm91bmQganNvbj17ImIiOiAxLCAiYyI6IDJ9CitGb3VuZCBqc29uPXsiYiI6IDEsICJjIjogMn0K K0ZvdW5kIGpzb249MQorRm91bmQganNvbj1udWxsCitGb3VuZCBqc29uPXsieCI6IDF9CitGb3Vu ZCBqc29uPVsxLCBbMTIsIHsieSI6IDF9XV0KK0ZvdW5kIGpzb249eyJ4IjogMX0KZGlmZiAtLWdp dCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvdGVzdC9zcWwvc3FsanNvbi5wZ2MgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCmluZGV4IGRkY2JjYzNiM2NiLi41N2E5YmZm NDI0ZCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy90ZXN0L3NxbC9zcWxqc29uLnBn YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3Rlc3Qvc3FsL3NxbGpzb24ucGdjCkBAIC0xMTUs NiArMTE1LDM5IEBAIEVYRUMgU1FMIEVORCBERUNMQVJFIFNFQ1RJT047CiAJICBmb3IgKGludCBp ID0gMDsgaSA8IHNpemVvZihpc19qc29uKTsgaSsrKQogCQkgIHByaW50ZigiRm91bmQgaXNfanNv blslZF06ICVzXG4iLCBpLCBpc19qc29uW2ldID8gInRydWUiIDogImZhbHNlIik7CiAKKwlFWEVD IFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIpLiJhIikg SU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBT UUwgU0VMRUNUIEpTT04oJ3siYSI6IHsiYiI6IDEsICJjIjogMn19Jzo6anNvbmIuImEiKSBJTlRP IDpqc29uOworCS8vIGVycm9yCisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6 IDEsICJjIjogMn19Jzo6anNvbmIpLmEpIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29u PSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwg ImMiOiAyfX0nOjpqc29uYikuYS5iKSBJTlRPIDpqc29uOworCXByaW50ZigiRm91bmQganNvbj0l c1xuIiwganNvbik7CisKKwlFWEVDIFNRTCBTRUxFQ1QgSlNPTihDT0FMRVNDRShKU09OKCgneyJh IjogeyJiIjogMSwgImMiOiAyfX0nOjpqc29uYikuYyksICdudWxsJykpIElOVE8gOmpzb247CisJ cHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVYRUMgU1FMIFNFTEVDVCBKU09O KCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5 IjoxfV19XX0nOjpqc29uYikuYlswXSkgSU5UTyA6anNvbjsKKwlwcmludGYoIkZvdW5kIGpzb249 JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpTT04oKCd7ImEiOiB7ImIiOiAxLCAi YyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7InkiOjF9XX1dfSc6Ompzb25iKS5i LngpIElOVE8gOmpzb247CisJcHJpbnRmKCJGb3VuZCBqc29uPSVzXG4iLCBqc29uKTsKKworCUVY RUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAyfSwgImIiOiBbeyJ4Ijog MX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYilbJ2InXVswXSkgSU5UTyA6anNvbjsK KwlwcmludGYoIkZvdW5kIGpzb249JXNcbiIsIGpzb24pOworCisJRVhFQyBTUUwgU0VMRUNUIEpT T04oKCd7ImEiOiB7ImIiOiAxLCAiYyI6IDJ9LCAiYiI6IFt7IngiOiAxfSwgeyJ4IjogWzEyLCB7 InkiOjF9XX1dfSc6Ompzb25iKS5iWzFdLnhbMDpdKSBJTlRPIDpqc29uOworCS8vIGVycm9yCisK KwlFWEVDIFNRTCBTRUxFQ1QgSlNPTigoJ3siYSI6IHsiYiI6IDEsICJjIjogMn0sICJiIjogW3si eCI6IDF9LCB7IngiOiBbMTIsIHsieSI6MX1dfV19Jzo6anNvbmIpLiopIElOVE8gOmpzb247CisJ Ly8gZXJyb3IKKworCUVYRUMgU1FMIFNFTEVDVCBKU09OKCgneyJhIjogeyJiIjogMSwgImMiOiAy fSwgImIiOiBbeyJ4IjogMX0sIHsieCI6IFsxMiwgeyJ5IjoxfV19XX0nOjpqc29uYilbJ2InXVsw Ol0pIElOVE8gOmpzb247CisJLy8gZXJyb3IKKwogICBFWEVDIFNRTCBESVNDT05ORUNUOwogCiAg IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pzb25iLm91dAppbmRleCA1YTFlYjE4YWJh Mi4uMzdkNzFiMjNkNWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNv bmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CkBAIC00OTg5 LDYgKzQ5ODksMTIgQEAgc2VsZWN0ICgnMTIzJzo6anNvbmIpWydhJ107CiAgCiAoMSByb3cpCiAK K3NlbGVjdCAoJzEyMyc6Ompzb25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0 ICgnMTIzJzo6anNvbmIpWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTAwMSwxMiArNTAwNywy NCBAQCBzZWxlY3QgKCcxMjMnOjpqc29uYilbTlVMTF07CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAo JzEyMyc6Ompzb25iKS5OVUxMOworIG51bGwgCistLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0 ICgneyJhIjogMX0nOjpqc29uYilbJ2EnXTsKICBqc29uYiAKIC0tLS0tLS0KICAxCiAoMSByb3cp CiAKK3NlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpLmE7CisgYSAKKy0tLQorIDEKKygxIHJvdykK Kwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0tCkBAIC01 MDE5LDYgKzUwMzcsMTIgQEAgc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ25vdF9leGlzdCdd OwogIAogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKS4ibm90X2V4aXN0IjsK KyBub3RfZXhpc3QgCistLS0tLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAx fSc6Ompzb25iKVtOVUxMXTsKICBqc29uYiAKIC0tLS0tLS0KQEAgLTUwMzEsNiArNTA1NSwxMiBA QCBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsnYSddOwogIAogKDEgcm93KQogCitz ZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOworIGEgCistLS0KKyAKKygxIHJvdykK Kwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiAganNvbmIgCiAtLS0tLS0t CkBAIC01MDQzLDYgKzUwNzMsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb JzEnXTsKICAiMiIKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYiku IjEiOworIDEgCistLS0KKyAKKygxIHJvdykKKwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYilbMS4wXTsKIEVSUk9SOiAgc3Vic2NyaXB0IHR5cGUgbnVtZXJpYyBpcyBub3Qgc3VwcG9y dGVkCiBMSU5FIDE6IHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzEuMF07CkBAIC01 MDcyLDYgKzUxMDgsMTIgQEAgc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV1bJ2En XTsKICAKICgxIHJvdykKIAorc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMV0uYTsK KyBhIAorLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIp WzFdWzBdOwogIGpzb25iIAogLS0tLS0tLQpAQCAtNTA4NCw1NiArNTEyNiwxMjcgQEAgc2VsZWN0 ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwogICJj IgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmI7CisgIGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKwogc2VsZWN0ICgneyJh IjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddOwogICAganNvbmIg ICAKIC0tLS0tLS0tLS0tCiAgWzEsIDIsIDNdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEs ICJiIjogImMiLCAiZCI6IFsxLCAyLCAzXX0nOjpqc29uYikuZDsKKyAgICAgZCAgICAgCistLS0t LS0tLS0tLQorIFsxLCAyLCAzXQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJj IiwgImQiOiBbMSwgMiwgM119Jzo6anNvbmIpWydkJ11bMV07CiAganNvbmIgCiAtLS0tLS0tCiAg MgogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwgMiwgM119 Jzo6anNvbmIpLmRbMV07CisgZCAKKy0tLQorIDIKKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjog MSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCddWydhJ107CiAganNvbmIg CiAtLS0tLS0tCiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6 IFsxLCAyLCAzXX0nOjpqc29uYikuZFsnYSddOworIGQgCistLS0KKyAKKygxIHJvdykKKworc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5kLmE7Cisg YSAKKy0tLQorIAorKDEgcm93KQorCitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiB7 ImEiOiBbMSwgMiwgM119fSc6Ompzb25iKS5kWydhJ11bMF07CisgZCAKKy0tLQorIDEKKygxIHJv dykKKworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogeyJhIjogWzEsIDIsIDNdfX0n Ojpqc29uYikuZC5hWzBdOworIGEgCistLS0KKyAxCisoMSByb3cpCisKIHNlbGVjdCAoJ3siYSI6 IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYilb J2EnXVsnYTEnXTsKICAgICAganNvbmIgICAgIAogLS0tLS0tLS0tLS0tLS0tCiAgeyJhMiI6ICJh YWEifQogKDEgcm93KQogCitzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJi IjogImJiYiIsICJjIjogImNjYyJ9Jzo6anNvbmIpLmEuYTE7CisgICAgICBhMSAgICAgICAKKy0t LS0tLS0tLS0tLS0tLQorIHsiYTIiOiAiYWFhIn0KKygxIHJvdykKKwogc2VsZWN0ICgneyJhIjog eyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKVsn YSddWydhMSddWydhMiddOwogIGpzb25iIAogLS0tLS0tLQogICJhYWEiCiAoMSByb3cpCiAKK3Nl bGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIiOiAiYmJiIiwgImMiOiAiY2Nj In0nOjpqc29uYikuYS5hMS5hMjsKKyAgYTIgICAKKy0tLS0tLS0KKyAiYWFhIgorKDEgcm93KQor CiBzZWxlY3QgKCd7ImEiOiB7ImExIjogeyJhMiI6ICJhYWEifX0sICJiIjogImJiYiIsICJjIjog ImNjYyJ9Jzo6anNvbmIpWydhJ11bJ2ExJ11bJ2EyJ11bJ2EzJ107CiAganNvbmIgCiAtLS0tLS0t CiAgCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IHsiYTEiOiB7ImEyIjogImFhYSJ9fSwgImIi OiAiYmJiIiwgImMiOiAiY2NjIn0nOjpqc29uYikuYS5hMS5hMi5hMzsKKyBhMyAKKy0tLS0KKyAK KygxIHJvdykKKwogc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAi Y2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddOwogICAgICAgICAganNv bmIgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgWyJhYWEiLCAiYmJiIiwgImNj YyJdCiAoMSByb3cpCiAKK3NlbGVjdCAoJ3siYSI6IFsiYTEiLCB7ImIxIjogWyJhYWEiLCAiYmJi IiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYikuYVsxXS5iMTsKKyAgICAgICAgICBiMSAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsiYWFhIiwgImJiYiIsICJjY2Mi XQorKDEgcm93KQorCiBzZWxlY3QgKCd7ImEiOiBbImExIiwgeyJiMSI6IFsiYWFhIiwgImJiYiIs ICJjY2MiXX1dLCAiYiI6ICJiYiJ9Jzo6anNvbmIpWydhJ11bMV1bJ2IxJ11bMl07CiAganNvbmIg CiAtLS0tLS0tCiAgImNjYyIKICgxIHJvdykKIAotLS0gc2xpY2VzIGFyZSBub3Qgc3VwcG9ydGVk Ci1zZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsKK3NlbGVjdCAoJ3siYSI6IFsi YTEiLCB7ImIxIjogWyJhYWEiLCAiYmJiIiwgImNjYyJdfV0sICJiIjogImJiIn0nOjpqc29uYiku YVsxXS5iMVsyXTsKKyAgYjEgICAKKy0tLS0tLS0KKyAiY2NjIgorKDEgcm93KQorCitzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSc6J2InXTsgLS0gZmFpbHMKIEVSUk9SOiAganNvbmIgc3Vi c2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc2xpY2VzCiBMSU5FIDE6IHNlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJzonYiddOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgpAQCAtNTgzMSwzICs1OTQ0LDI5OSBAQCBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50ODsKICAxMjM0NQog KDEgcm93KQogCistLSBkb3Qgbm90YXRpb24KK0NSRUFURSBUQUJMRSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbiBBUworU0VMRUNUICd7ImEiOiBbMSwgMiwgeyJiIjogImMifSwgeyJiIjogImQiLCAi ZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6In19XSwgImIiOiBbMywgNCwgeyJi IjogImciLCAieCI6IHsieSI6ICJZWVkiLCAieiI6ICJaWloifX1dfSc6Ompzb25iIGpiOworU0VM RUNUIChqYikuYSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjog ImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dCisoMSByb3cpCisKK1NFTEVDVCAo amIpLiJhIiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBkb3VibGUgcXVvdGUgc2hv dWxkIHdvcmsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMSwgMiwgeyJi IjogImMifSwgeyJiIjogImQiLCAiZSI6ICJmIiwgIngiOiB7InkiOiAieXl5IiwgInoiOiAienp6 In19XQorKDEgcm93KQorCitTRUxFQ1QgKGpiKS4nYScgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsgLS0gc2luZ2xlIHF1b3RlIHNob3VsZCBub3Qgd29yaworRVJST1I6ICBzeW50YXggZXJy b3IgYXQgb3IgbmVhciAiJ2EnIgorTElORSAxOiBTRUxFQ1QgKGpiKS4nYScgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgXgorc2VsZWN0IChqYilbMF0u YSBmcm9tIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIHNhbWUgcmVzdWx0IGFz IChqYikuYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLCAyLCB7ImIi OiAiYyJ9LCB7ImIiOiAiZCIsICJlIjogImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoi fX1dCisoMSByb3cpCisKK3NlbGVjdCAoamIpWzFdLmEgZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsgLS0gcmV0dXJucyBOVUxMCisgYSAKKy0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgKGpi KS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgICAgICAgICAgICAgICAgICAg ICAgYiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFszLCA0LCB7ImIiOiAiZyIsICJ4IjogeyJ5Ijog IllZWSIsICJ6IjogIlpaWiJ9fV0KKygxIHJvdykKKworU0VMRUNUIChqYikuYyBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworIGMgCistLS0KKyAKKygxIHJvdykKKworU0VMRUNUIChqYiku YS5iIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAgIGIgICAgICAKKy0tLS0tLS0t LS0tLQorIFsiYyIsICJkIl0KKygxIHJvdykKKworU0VMRUNUIChqYikuYVsyXS5iIEZST00gdGVz dF9qc29uYl9kb3Rfbm90YXRpb247CisgIGIgIAorLS0tLS0KKyAiYyIKKygxIHJvdykKKworU0VM RUNUIChqYikuYS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAgIHkgICAKKy0t LS0tLS0KKyAieXl5IgorKDEgcm93KQorCitTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworICAgeiAgIAorLS0tLS0tLQorICJaWloiCisoMSByb3cpCisKK1NF TEVDVCAoamIpLmEuYi5jIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYyAKKy0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgKChqYikuYilbOl0ueCBGUk9NIHRlc3RfanNvbmJfZG90X25v dGF0aW9uIHQ7IC0tIGZhaWxzCitFUlJPUjogIGpzb25iIHN1YnNjcmlwdCBkb2VzIG5vdCBzdXBw b3J0IHNsaWNlcworU0VMRUNUIChqYikuYS4qIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 IC0tIGZhaWxzCitFUlJPUjogIHR5cGUganNvbmIgaXMgbm90IGNvbXBvc2l0ZQorLS0gZXhwbGFp bnMgc2hvdWxkIHdvcmsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUICh0Lmpi KS5hIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKKyAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb24gdAorICAgT3V0cHV0OiAoamIpLmEKKygyIHJvd3MpCisKK1NFTEVDVCAodC5qYikuYSBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uIHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgWzEsIDIsIHsiYiI6ICJjIn0sIHsiYiI6ICJkIiwgImUiOiAiZiIsICJ4Ijog eyJ5IjogInl5eSIsICJ6IjogInp6eiJ9fV0KKygxIHJvdykKKworRVhQTEFJTiAoVkVSQk9TRSwg Q09TVFMgT0ZGKSBTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMu dGVzdF9qc29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKGpiKS5hWzFdCisoMiByb3dzKQor CitTRUxFQ1QgKGpiKS5hWzFdIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgYSAKKy0t LQorIDIKKygxIHJvdykKKworLS0gdmlld3Mgc2hvdWxkIHdvcmsKK0NSRUFURSBWSUVXIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uX3YxIEFTIFNFTEVDVCAoamIpLmFbM10ueC55IEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCisg U0VMRUNUIChqYikuYVszXS54LnkgQVMgeQorICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlv bgorLS0gbWl4ZWQgc3ludGF4CitEUk9QIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7 CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpWydhJ10uYiBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6 IChqYlsnYSc6OnRleHRdKS5iCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBhbiBhcnJheSBkdWUgdG8gbGF4IG1v ZGUKKyAgICAgYiAgICAgIAorLS0tLS0tLS0tLS0tCisgWyJjIiwgImQiXQorKDEgcm93KQorCitD UkVBVEUgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAo amIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamJbJ2EnOjp0ZXh0XSkuYiBBUyBiCisgICBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOworICAgICBiICAgICAgCistLS0tLS0tLS0tLS0KKyBbImMiLCAiZCJdCiso MSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitF WFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRlc3Rf anNvbmJfZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U2VxIFNjYW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgo amIpLmEpWydiJzo6dGV4dF0KKygyIHJvd3MpCisKK1NFTEVDVCAoamIpLmFbJ2InXSBGUk9NIHRl c3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwgYmVjYXVzZSBbJ2InXSBsb29r cyBmb3Igc3RyaWN0IG1hdGNoIGluIGFuIG9iamVjdAorIGEgCistLS0KKyAKKygxIHJvdykKKwor Q1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1Qg KGpiKS5hWydiJ10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29u Yl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYSlbJ2InOjp0ZXh0XSBBUyBhCisg ICBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxOworIGEgCistLS0KKyAKKygxIHJvdykKKworRFJPUCBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikgU0VMRUNUIChqYikuYi54Wyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKKyAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBTY2FuIG9uIHB1YmxpYy50ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbgorICAgT3V0cHV0OiAoKGpiKS5iLngpWyd6Jzo6dGV4dF0KKygy IHJvd3MpCisKK1NFTEVDVCAoamIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247IC0tIHdhcm5pbmdzCisgICB4ICAgCistLS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworQ1JF QVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpi KS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoKGpiKS5iLngpWyd6Jzo6dGV4dF0gQVMgeAor ICAgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25i X2RvdF9ub3RhdGlvbl92MTsKKyAgIHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitE Uk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoamJbJ2In Ojp0ZXh0XSkueClbJ3onOjp0ZXh0XQorKDIgcm93cykKKworU0VMRUNUIChqYilbJ2InXS54Wyd6 J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgIC0tIHdhcm5pbmdzCisgICB4ICAgCist LS0tLS0tCisgIlpaWiIKKygxIHJvdykKKworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJf ZG90X25vdGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddLnhbJ3onXSBGUk9NIHRlc3RfanNv bmJfZG90X25vdGF0aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUg T1IgUkVQTEFDRSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNF TEVDVCAoKGpiWydiJzo6dGV4dF0pLngpWyd6Jzo6dGV4dF0gQVMgeAorICAgRlJPTSB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKKyAgIHggICAKKy0tLS0tLS0KKyAiWlpaIgorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGlj LnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KSBTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gcHVibGljLnRlc3Rf anNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6ICgoKGpiKS5iKVsneCc6OnRleHRdKS56Ciso MiByb3dzKQorCitTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOyAtLSByZXR1cm5zIE5VTEwKKyB6IAorLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBWSUVX IHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsneCdd LnogRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEgQVMKKyBTRUxFQ1QgKCgoamIpLmIpWyd4Jzo6dGV4dF0pLnogQVMgegorICAgRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbgorU0VMRUNUICogZnJvbSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MTsKKyB6IAorLS0tCisgCisoMSByb3cpCisKK0RST1AgVklFVyBwdWJsaWMudGVz dF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNF TEVDVCAoamIpLmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CisgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEgU2NhbiBvbiBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb24KKyAgIE91dHB1dDogKChqYikuYilbJ3gnOjp0ZXh0XVsneic6OnRl eHRdCisoMiByb3dzKQorCitTRUxFQ1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIE5VTEwKKyBiIAorLS0tCisgCisoMSByb3cpCisKK0NS RUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChq YikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0X2pz b25iX2RvdF9ub3RhdGlvbl92MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMudGVzdF9q c29uYl9kb3Rfbm90YXRpb25fdjEgQVMKKyBTRUxFQ1QgKChqYikuYilbJ3gnOjp0ZXh0XVsneic6 OnRleHRdIEFTIGIKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24KK1NFTEVDVCAqIGZy b20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgYiAKKy0tLQorIAorKDEgcm93KQorCitE Uk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworRVhQTEFJTiAoVkVS Qk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJf ZG90X25vdGF0aW9uOworICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNj YW4gb24gcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uCisgICBPdXRwdXQ6IChqYlsnYic6 OnRleHRdWyd4Jzo6dGV4dF0pLnoKKygyIHJvd3MpCisKK1NFTEVDVCAoamIpWydiJ11bJ3gnXS56 IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorIHogCistLS0K KyAKKygxIHJvdykKKworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9u X3YxIEFTCitTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOworXHN2IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitDUkVBVEUgT1IgUkVQTEFDRSBW SUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworIFNFTEVDVCAoamJbJ2In Ojp0ZXh0XVsneCc6OnRleHRdKS56IEFTIHoKKyAgIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b24KK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CisgeiAKKy0tLQor IAorKDEgcm93KQorCitEUk9QIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3Yx OworLS0gY2xlYW4gdXAKK0RST1AgVEFCTEUgdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9qc29uYi5zcWwKaW5kZXggNTdjMTFhY2RkZmUuLjVmYzUzZTFjOWFhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvanNvbmIuc3FsCkBAIC0xMzA0LDMzICsxMzA0LDUxIEBAIHNlbGVjdCBqc29uYl9pbnNlcnQo J3siYSI6IHsiYiI6ICJ2YWx1ZSJ9fScsICd7YSwgYn0nLCAnIm5ld192YWx1ZSInLCB0cnVlKTsK IAogLS0ganNvbmIgc3Vic2NyaXB0CiBzZWxlY3QgKCcxMjMnOjpqc29uYilbJ2EnXTsKK3NlbGVj dCAoJzEyMyc6Ompzb25iKS5hOwogc2VsZWN0ICgnMTIzJzo6anNvbmIpWzBdOwogc2VsZWN0ICgn MTIzJzo6anNvbmIpW05VTExdOworc2VsZWN0ICgnMTIzJzo6anNvbmIpLk5VTEw7CiBzZWxlY3Qg KCd7ImEiOiAxfSc6Ompzb25iKVsnYSddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuYTsK IHNlbGVjdCAoJ3siYSI6IDF9Jzo6anNvbmIpWzBdOwogc2VsZWN0ICgneyJhIjogMX0nOjpqc29u YilbJ25vdF9leGlzdCddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYikuIm5vdF9leGlzdCI7 CiBzZWxlY3QgKCd7ImEiOiAxfSc6Ompzb25iKVtOVUxMXTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51 bGxdJzo6anNvbmIpWydhJ107CitzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKS5hOwog c2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMF07CiBzZWxlY3QgKCdbMSwgIjIiLCBu dWxsXSc6Ompzb25iKVsnMSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYikuIjEi Owogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbMS4wXTsKIHNlbGVjdCAoJ1sxLCAi MiIsIG51bGxdJzo6anNvbmIpWzJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilb M107CiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVstMl07CiBzZWxlY3QgKCdbMSwg IjIiLCBudWxsXSc6Ompzb25iKVsxXVsnYSddOworc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0nOjpq c29uYilbMV0uYTsKIHNlbGVjdCAoJ1sxLCAiMiIsIG51bGxdJzo6anNvbmIpWzFdWzBdOwogc2Vs ZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnYiddOwor c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5iOwog c2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsnZCdd Oworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKS5k Owogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompzb25iKVsn ZCddWzFdOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6Ompz b25iKS5kWzFdOwogc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJkIjogWzEsIDIsIDNdfSc6 Ompzb25iKVsnZCddWydhJ107CitzZWxlY3QgKCd7ImEiOiAxLCAiYiI6ICJjIiwgImQiOiBbMSwg MiwgM119Jzo6anNvbmIpLmRbJ2EnXTsKK3NlbGVjdCAoJ3siYSI6IDEsICJiIjogImMiLCAiZCI6 IFsxLCAyLCAzXX0nOjpqc29uYikuZC5hOworc2VsZWN0ICgneyJhIjogMSwgImIiOiAiYyIsICJk IjogeyJhIjogWzEsIDIsIDNdfX0nOjpqc29uYikuZFsnYSddWzBdOworc2VsZWN0ICgneyJhIjog MSwgImIiOiAiYyIsICJkIjogeyJhIjogWzEsIDIsIDNdfX0nOjpqc29uYikuZC5hWzBdOwogc2Vs ZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2Mi fSc6Ompzb25iKVsnYSddWydhMSddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFh In19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExOwogc2VsZWN0ICgneyJh IjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25i KVsnYSddWydhMSddWydhMiddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAiYWFhIn19 LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyOwogc2VsZWN0ICgneyJh IjogeyJhMSI6IHsiYTIiOiAiYWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25i KVsnYSddWydhMSddWydhMiddWydhMyddOworc2VsZWN0ICgneyJhIjogeyJhMSI6IHsiYTIiOiAi YWFhIn19LCAiYiI6ICJiYmIiLCAiYyI6ICJjY2MifSc6Ompzb25iKS5hLmExLmEyLmEzOwogc2Vs ZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAi YmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddOworc2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEi OiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFdLmIxOwog c2VsZWN0ICgneyJhIjogWyJhMSIsIHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIi OiAiYmIifSc6Ompzb25iKVsnYSddWzFdWydiMSddWzJdOworc2VsZWN0ICgneyJhIjogWyJhMSIs IHsiYjEiOiBbImFhYSIsICJiYmIiLCAiY2NjIl19XSwgImIiOiAiYmIifSc6Ompzb25iKS5hWzFd LmIxWzJdOwogCi0tLSBzbGljZXMgYXJlIG5vdCBzdXBwb3J0ZWQKLXNlbGVjdCAoJ3siYSI6IDF9 Jzo6anNvbmIpWydhJzonYiddOworc2VsZWN0ICgneyJhIjogMX0nOjpqc29uYilbJ2EnOidiJ107 IC0tIGZhaWxzCiBzZWxlY3QgKCdbMSwgIjIiLCBudWxsXSc6Ompzb25iKVsxOjJdOwogc2VsZWN0 ICgnWzEsICIyIiwgbnVsbF0nOjpqc29uYilbOjJdOwogc2VsZWN0ICgnWzEsICIyIiwgbnVsbF0n Ojpqc29uYilbMTpdOwpAQCAtMTU5MCwzICsxNjA4LDk0IEBAIHNlbGVjdCAnMTIzNDUuMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDg7 CiBzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDUnOjpqc29uYjo6aW50MjsKIHNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQ0Owogc2VsZWN0ICcxMjM0NS4w MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6Omlu dDg7CisKKy0tIGRvdCBub3RhdGlvbgorQ1JFQVRFIFRBQkxFIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uIEFTCitTRUxFQ1QgJ3siYSI6IFsxLCAyLCB7ImIiOiAiYyJ9LCB7ImIiOiAiZCIsICJlIjog ImYiLCAieCI6IHsieSI6ICJ5eXkiLCAieiI6ICJ6enoifX1dLCAiYiI6IFszLCA0LCB7ImIiOiAi ZyIsICJ4IjogeyJ5IjogIllZWSIsICJ6IjogIlpaWiJ9fV19Jzo6anNvbmIgamI7CisKK1NFTEVD VCAoamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLiJhIiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBkb3VibGUgcXVvdGUgc2hvdWxkIHdvcmsK K1NFTEVDVCAoamIpLidhJyBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBzaW5nbGUg cXVvdGUgc2hvdWxkIG5vdCB3b3JrCitzZWxlY3QgKGpiKVswXS5hIGZyb20gdGVzdF9qc29uYl9k b3Rfbm90YXRpb247IC0tIHJldHVybnMgc2FtZSByZXN1bHQgYXMgKGpiKS5hCitzZWxlY3QgKGpi KVsxXS5hIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVMTAorU0VM RUNUIChqYikuYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYyBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYikuYS5iIEZST00gdGVzdF9q c29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWzJdLmIgRlJPTSB0ZXN0X2pzb25iX2Rv dF9ub3RhdGlvbjsKK1NFTEVDVCAoamIpLmEueC55IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRp b247CitTRUxFQ1QgKGpiKS5iLngueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VM RUNUIChqYikuYS5iLmMgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoKGpi KS5iKVs6XS54IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsgLS0gZmFpbHMKK1NFTEVD VCAoamIpLmEuKiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSBmYWlscworCistLSBl eHBsYWlucyBzaG91bGQgd29yaworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1Qg KHQuamIpLmEgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbiB0OworU0VMRUNUICh0LmpiKS5h IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb24gdDsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikgU0VMRUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VM RUNUIChqYikuYVsxXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworCistLSB2aWV3cyBz aG91bGQgd29yaworQ1JFQVRFIFZJRVcgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMgU0VM RUNUIChqYikuYVszXS54LnkgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1xzdiB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MQorCistLSBtaXhlZCBzeW50YXgKK0RST1AgVklFVyB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBT RUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAo amIpWydhJ10uYiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSByZXR1cm5zIGFuIGFy cmF5IGR1ZSB0byBsYXggbW9kZQorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxIEFTCitTRUxFQ1QgKGpiKVsnYSddLmIgRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3Rh dGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0ZXN0 X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9kb3Rf bm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChqYiku YVsnYiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247CitTRUxFQ1QgKGpiKS5hWydiJ10g RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMIGJlY2F1c2UgWydi J10gbG9va3MgZm9yIHN0cmljdCBtYXRjaCBpbiBhbiBvYmplY3QKK0NSRUFURSBWSUVXIHB1Ymxp Yy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYVsnYiddIEZST00g dGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEK K1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9QIFZJRVcgcHVi bGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAoamIpLmIueFsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247 CitTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOyAtLSB3 YXJuaW5ncworQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFT CitTRUxFQ1QgKGpiKS5iLnhbJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2 IHRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90 X25vdGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92 MTsKKworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddLnhbJ3on XSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYilbJ2InXS54Wyd6J10g RlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgIC0tIHdhcm5pbmdzCitDUkVBVEUgVklFVyBw dWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydiJ10ueFsn eiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9Q IFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAoamIpLmJbJ3gnXS56IEZST00gdGVzdF9qc29uYl9kb3Rf bm90YXRpb247CitTRUxFQ1QgKGpiKS5iWyd4J10ueiBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0 aW9uOyAtLSByZXR1cm5zIE5VTEwKK0NSRUFURSBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9u b3RhdGlvbl92MSBBUworU0VMRUNUIChqYikuYlsneCddLnogRlJPTSB0ZXN0X2pzb25iX2RvdF9u b3RhdGlvbjsKK1xzdiB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MQorU0VMRUNUICogZnJvbSB0 ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsKK0RST1AgVklFVyBwdWJsaWMudGVzdF9qc29uYl9k b3Rfbm90YXRpb25fdjE7CisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikgU0VMRUNUIChq YikuYlsneCddWyd6J10gRlJPTSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKK1NFTEVDVCAoamIp LmJbJ3gnXVsneiddIEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247IC0tIHJldHVybnMgTlVM TAorQ1JFQVRFIFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxIEFTCitTRUxF Q1QgKGpiKS5iWyd4J11bJ3onXSBGUk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworXHN2IHRl c3RfanNvbmJfZG90X25vdGF0aW9uX3YxCitTRUxFQ1QgKiBmcm9tIHRlc3RfanNvbmJfZG90X25v dGF0aW9uX3YxOworRFJPUCBWSUVXIHB1YmxpYy50ZXN0X2pzb25iX2RvdF9ub3RhdGlvbl92MTsK KworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKSBTRUxFQ1QgKGpiKVsnYiddWyd4J10ueiBG Uk9NIHRlc3RfanNvbmJfZG90X25vdGF0aW9uOworU0VMRUNUIChqYilbJ2InXVsneCddLnogRlJP TSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsgLS0gcmV0dXJucyBOVUxMCitDUkVBVEUgVklFVyBw dWJsaWMudGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjEgQVMKK1NFTEVDVCAoamIpWydiJ11bJ3gn XS56IEZST00gdGVzdF9qc29uYl9kb3Rfbm90YXRpb247Citcc3YgdGVzdF9qc29uYl9kb3Rfbm90 YXRpb25fdjEKK1NFTEVDVCAqIGZyb20gdGVzdF9qc29uYl9kb3Rfbm90YXRpb25fdjE7CitEUk9Q IFZJRVcgcHVibGljLnRlc3RfanNvbmJfZG90X25vdGF0aW9uX3YxOworCistLSBjbGVhbiB1cAor RFJPUCBUQUJMRSB0ZXN0X2pzb25iX2RvdF9ub3RhdGlvbjsKZGlmZiAtLWdpdCBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKaW5kZXggYTEzZTgxNjI4OTAuLmNjNjQ2NDJmMzk5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdApAQCAtODA1LDYgKzgwNSw3IEBAIEZkd1JvdXRpbmUKIEZldGNoRGlyZWN0aW9uCiBGZXRj aERpcmVjdGlvbktleXdvcmRzCiBGZXRjaFN0bXQKK0ZpZWxkQWNjZXNzb3JFeHByCiBGaWVsZFNl bGVjdAogRmllbGRTdG9yZQogRmlsZQotLSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoK --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0003-Export-jsonPathFromParseResult.patch" Content-Disposition: attachment; filename="v17-0003-Export-jsonPathFromParseResult.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge7g5 RnJvbSA4NjkyZmNjYjY5NjdmNzk3MzZkNDU3MTQyZjg4OWE3M2RjMmQwNWJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWtpdGEgR2x1a2hvdiA8bi5nbHVob3ZAcG9zdGdyZXNwcm8u cnU+CkRhdGU6IFR1ZSwgOCBKdWwgMjAyNSAyMjoxODowNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg djE3IDMvN10gRXhwb3J0IGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkKClRoaXMgaXMgYSBwcmVw YXJhdGlvbiBzdGVwIGZvciBhIGZ1dHVyZSBjb21taXQgdGhhdCB3aWxsIHJldXNlIHRoZQphZm9y ZW1lbnRpb25lZCBmdW5jdGlvbi4KCkF1dGhvcmVkLWJ5OiBOaWtpdGEgR2x1a2hvdiA8Z2x1a2hv di5uLmFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53 YW5nLm9zc0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgRHVuc3RhbiA8YW5kcmV3QGR1 bnNsYW5lLm5ldD4KUmV2aWV3ZWQtYnk6IE1hdGhldXMgQWxjYW50YXJhIDxtYXRoZXVzc3NpbHY5 N0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBKaWFuIEhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFp bC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMgfCAxOSArKysrKysr KysrKysrKystLS0tCiBzcmMvaW5jbHVkZS91dGlscy9qc29ucGF0aC5oICAgICB8ICA0ICsrKysK IDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbnBhdGguYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9qc29ucGF0aC5jCmluZGV4IDc2MmY3ZThhMDlkLi5jODM3NzRiMmExNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25wYXRoLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25wYXRoLmMKQEAgLTE2NiwxNSArMTY2LDEzIEBAIGpzb25wYXRoX3NlbmQo UEdfRlVOQ1RJT05fQVJHUykKICAqIENvbnZlcnRzIEMtc3RyaW5nIHRvIGEganNvbnBhdGggdmFs dWUuCiAgKgogICogVXNlcyBqc29ucGF0aCBwYXJzZXIgdG8gdHVybiBzdHJpbmcgaW50byBhbiBB U1QsIHRoZW4KLSAqIGZsYXR0ZW5Kc29uUGF0aFBhcnNlSXRlbSgpIGRvZXMgc2Vjb25kIHBhc3Mg dHVybmluZyBBU1QgaW50byBiaW5hcnkKKyAqIGpzb25QYXRoRnJvbVBhcnNlUmVzdWx0KCkgZG9l cyBzZWNvbmQgcGFzcyB0dXJuaW5nIEFTVCBpbnRvIGJpbmFyeQogICogcmVwcmVzZW50YXRpb24g b2YganNvbnBhdGguCiAgKi8KIHN0YXRpYyBEYXR1bQoganNvblBhdGhGcm9tQ3N0cmluZyhjaGFy ICppbiwgaW50IGxlbiwgc3RydWN0IE5vZGUgKmVzY29udGV4dCkKIHsKIAlKc29uUGF0aFBhcnNl UmVzdWx0ICpqc29ucGF0aCA9IHBhcnNlanNvbnBhdGgoaW4sIGxlbiwgZXNjb250ZXh0KTsKLQlK c29uUGF0aCAgICpyZXM7Ci0JU3RyaW5nSW5mb0RhdGEgYnVmOwogCiAJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKIAkJcmV0dXJuIChEYXR1bSkgMDsKQEAgLTE4NSw4ICsxODMs MjEgQEAganNvblBhdGhGcm9tQ3N0cmluZyhjaGFyICppbiwgaW50IGxlbiwgc3RydWN0IE5vZGUg KmVzY29udGV4dCkKIAkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAl czogXCIlc1wiIiwgImpzb25wYXRoIiwKIAkJCQkJCWluKSkpOwogCisJcmV0dXJuIGpzb25QYXRo RnJvbVBhcnNlUmVzdWx0KGpzb25wYXRoLCA0ICogbGVuLCBlc2NvbnRleHQpOworfQorCisvKgor ICogQ29udmVydHMganNvbnBhdGggQWJzdHJhY3QgU3ludGF4IFRyZWUgKEFTVCkgaW50byBqc29u cGF0aCB2YWx1ZSBpbiBiaW5hcnkuCisgKi8KK0RhdHVtCitqc29uUGF0aEZyb21QYXJzZVJlc3Vs dChjb25zdCBKc29uUGF0aFBhcnNlUmVzdWx0ICpqc29ucGF0aCwgaW50IGVzdGltYXRlZF9sZW4s CisJCQkJCQlzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCUpzb25QYXRoICAgKnJlczsKKwlT dHJpbmdJbmZvRGF0YSBidWY7CisKIAlpbml0U3RyaW5nSW5mbygmYnVmKTsKLQllbmxhcmdlU3Ry aW5nSW5mbygmYnVmLCA0ICogbGVuIC8qIGVzdGltYXRpb24gKi8gKTsKKwllbmxhcmdlU3RyaW5n SW5mbygmYnVmLCBlc3RpbWF0ZWRfbGVuKTsKIAogCWFwcGVuZFN0cmluZ0luZm9TcGFjZXMoJmJ1 ZiwgSlNPTlBBVEhfSERSU1opOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9qc29u cGF0aC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaAppbmRleCAyM2E3NmQyMzNlOS4u MDk1OGJjMjJiYjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2pzb25wYXRoLmgKKysr IGIvc3JjL2luY2x1ZGUvdXRpbHMvanNvbnBhdGguaApAQCAtMjgxLDYgKzI4MSwxMCBAQCBleHRl cm4gSnNvblBhdGhQYXJzZVJlc3VsdCAqcGFyc2Vqc29ucGF0aChjb25zdCBjaGFyICpzdHIsIGlu dCBsZW4sCiBleHRlcm4gYm9vbCBqc3BDb252ZXJ0UmVnZXhGbGFncyh1aW50MzIgeGZsYWdzLCBp bnQgKnJlc3VsdCwKIAkJCQkJCQkJIHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogCitleHRlcm4g RGF0dW0ganNvblBhdGhGcm9tUGFyc2VSZXN1bHQoY29uc3QgSnNvblBhdGhQYXJzZVJlc3VsdCAq anNvbnBhdGgsCisJCQkJCQkJCQkgaW50IGVzdGltYXRlZF9sZW4sCisJCQkJCQkJCQkgc3RydWN0 IE5vZGUgKmVzY29udGV4dCk7CisKIC8qCiAgKiBTdHJ1Y3QgZm9yIGRldGFpbHMgYWJvdXQgZXh0 ZXJuYWwgdmFyaWFibGVzIHBhc3NlZCBpbnRvIGpzb25wYXRoIGV4ZWN1dG9yCiAgKi8KLS0gCjIu MzkuNSAoQXBwbGUgR2l0LTE1NCkKCg== --0000000000008ea202063e751633 Content-Type: application/octet-stream; name="v17-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Disposition: attachment; filename="v17-0002-Allow-Generic-Type-Subscripting-to-Accept-Dot-No.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfe7ge7h6 RnJvbSAzMTM4NmMyM2VhMTRlMmI4NmQxYzIyODI5ZjM2NTBhODVlYzQyZDMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kcmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdt YWlsLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE0OjE3OjM3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCB2MTcgMi83XSBBbGxvdyBHZW5lcmljIFR5cGUgU3Vic2NyaXB0aW5nIHRvIEFjY2VwdCBE b3QKIE5vdGF0aW9uICguKSBhcyBJbnB1dApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJp dAoKVGhpcyBjaGFuZ2UgZXh0ZW5kcyBnZW5lcmljIHR5cGUgc3Vic2NyaXB0aW5nIHRvIHJlY29n bml6ZSBkb3QKbm90YXRpb24gKC4pIGluIGFkZGl0aW9uIHRvIGJyYWNrZXQgbm90YXRpb24gKFtd KS4gV2hpbGUgdGhpcyBkb2VzIG5vdAp5ZXQgcHJvdmlkZSBmdWxsIHN1cHBvcnQgZm9yIGRvdCBu b3RhdGlvbiwgaXQgZW5hYmxlcyBzdWJzY3JpcHRpbmcKY29udGFpbmVycyB0byBwcm9jZXNzIGl0 IGluIHRoZSBmdXR1cmUuCgpGb3Igbm93LCBjb250YWluZXItc3BlY2lmaWMgdHJhbnNmb3JtIGZ1 bmN0aW9ucyBvbmx5IGhhbmRsZQpzdWJzY3JpcHRpbmcgaW5kaWNlcyBhbmQgc3RvcCBwcm9jZXNz aW5nIHdoZW4gZW5jb3VudGVyaW5nIGRvdApub3RhdGlvbi4gSXQgaXMgdXAgdG8gaW5kaXZpZHVh bCBjb250YWluZXJzIHRvIGRlY2lkZSBob3cgdG8gdHJhbnNmb3JtCmRvdCBub3RhdGlvbiBpbiBz dWJzZXF1ZW50IHVwZGF0ZXMuCgpUaGlzIGNoYW5nZSBhbHNvIHVwZGF0ZXMgdGhlIFN1YnNjcmlw dFRyYW5zZm9ybSgpIEFQSSB0byByZW1vdmUgdGhlCiJib29sIGlzU2xpY2UiIGFyZ3VtZW50LiBF YWNoIGNvbnRhaW5lcuKAmXMgdHJhbnNmb3JtIGZ1bmN0aW9uIG5vdwpkZXRlcm1pbmVzIHNsaWNl LW5lc3MgaXRzZWxmLCBzaW5jZSBpdCBtYXkgb25seSBwcm9jZXNzIGEgcHJlZml4IG9mCnRoZSBp bmRpcmVjdGlvbiBsaXN0LiBGb3IgZXhhbXBsZSwgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgp IHN0b3BzCmF0IGRvdCBub3RhdGlvbiwgc28gImlzU2xpY2UiIHNob3VsZCBub3QgZGVwZW5kIG9u IHNsaWNlIHNwZWNpZmllcnMKdGhhdCBhcHBlYXIgYWZ0ZXJ3YXJkLgoKQXV0aG9yZWQtYnk6IE5p a2l0YSBHbHVraG92IDxnbHVraG92Lm4uYUBnbWFpbC5jb20+CkF1dGhvcmVkLWJ5OiBBbGV4YW5k cmEgV2FuZyA8YWxleGFuZHJhLndhbmcub3NzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJl dyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNh bnRhcmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEppYW4gSGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4u Y2hhb0BnbWFpbC5jb20+Ci0tLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyAgICAgICAg IHwgMTEgKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICB8IDY4ICsr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ub2Rl LmMgICAgICB8IDU3ICsrKysrKysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfdGFyZ2V0LmMgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vi cy5jICAgIHwgNDAgKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25i c3Vicy5jICAgIHwgMTYgKysrKystLQogc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgg ICAgIHwgIDMgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICB8ICAzICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQgfCAyNiArKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvYXJyYXlzLnNxbCAgICAgIHwgIDcgKystCiAxMCBmaWxlcyBj aGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9oc3RvcmUvaHN0b3JlX3N1YnMuYyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJz LmMKaW5kZXggMWIyOTU0M2FiNjcuLmYwMDhlNWZhZjAzIDEwMDY0NAotLS0gYS9jb250cmliL2hz dG9yZS9oc3RvcmVfc3Vicy5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9zdWJzLmMKQEAg LTQyLDE0ICs0MiwxNiBAQCBzdGF0aWMgdm9pZAogaHN0b3JlX3N1YnNjcmlwdF90cmFuc2Zvcm0o U3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkJCQkgICBMaXN0ICoqaW5kaXJlY3Rpb24sCiAJ CQkJCQkgICBQYXJzZVN0YXRlICpwc3RhdGUsCi0JCQkJCQkgICBib29sIGlzU2xpY2UsCiAJCQkJ CQkgICBib29sIGlzQXNzaWdubWVudCkKIHsKIAlBX0luZGljZXMgICphaTsKIAlOb2RlCSAgICpz dWJleHByOwogCisJQXNzZXJ0KCppbmRpcmVjdGlvbiAhPSBOSUwpOworCWFpID0gbGluaXRpYWxf bm9kZShBX0luZGljZXMsICppbmRpcmVjdGlvbik7CisKIAkvKiBXZSBzdXBwb3J0IG9ubHkgc2lu Z2xlLXN1YnNjcmlwdCwgbm9uLXNsaWNlIGNhc2VzICovCi0JaWYgKGlzU2xpY2UgfHwgbGlzdF9s ZW5ndGgoKmluZGlyZWN0aW9uKSAhPSAxKQorCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24p ICE9IDEgfHwgYWktPmlzX3NsaWNlKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJoc3RvcmUgYWxsb3dz IG9ubHkgb25lIHN1YnNjcmlwdCIpLApAQCAtNTcsOCArNTksNyBAQCBoc3RvcmVfc3Vic2NyaXB0 X3RyYW5zZm9ybShTdWJzY3JpcHRpbmdSZWYgKnNic3JlZiwKIAkJCQkJCQkJCWV4cHJMb2NhdGlv bigoTm9kZSAqKSAqaW5kaXJlY3Rpb24pKSkpOwogCiAJLyogVHJhbnNmb3JtIHRoZSBzdWJzY3Jp cHQgZXhwcmVzc2lvbiB0byB0eXBlIHRleHQgKi8KLQlhaSA9IGxpbml0aWFsX25vZGUoQV9JbmRp Y2VzLCAqaW5kaXJlY3Rpb24pOwotCUFzc2VydChhaS0+dWlkeCAhPSBOVUxMICYmIGFpLT5saWR4 ID09IE5VTEwgJiYgIWFpLT5pc19zbGljZSk7CisJQXNzZXJ0KGFpLT51aWR4ICE9IE5VTEwgJiYg YWktPmxpZHggPT0gTlVMTCk7CiAKIAlzdWJleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIGFp LT51aWR4LCBwc3RhdGUtPnBfZXhwcl9raW5kKTsKIAkvKiBJZiBpdCdzIG5vdCB0ZXh0IGFscmVh ZHksIHRyeSB0byBjb2VyY2UgKi8KQEAgLTgyLDcgKzgzLDcgQEAgaHN0b3JlX3N1YnNjcmlwdF90 cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJc2JzcmVmLT5yZWZyZXN0eXBlID0g VEVYVE9JRDsKIAlzYnNyZWYtPnJlZnR5cG1vZCA9IC0xOwogCi0JKmluZGlyZWN0aW9uID0gTklM OworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCAxKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDZlOGZkNDJjNjEyLi5mOGEwNjE3 ZjgyMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00NDEsMzggKzQ0MSw1OSBAQCB0cmFu c2Zvcm1JbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkK IAlMaXN0Q2VsbCAgICppOwogCiAJLyoKLQkgKiBXZSBoYXZlIHRvIHNwbGl0IGFueSBmaWVsZC1z ZWxlY3Rpb24gb3BlcmF0aW9ucyBhcGFydCBmcm9tCi0JICogc3Vic2NyaXB0aW5nLiAgQWRqYWNl bnQgQV9JbmRpY2VzIG5vZGVzIGhhdmUgdG8gYmUgdHJlYXRlZCBhcyBhIHNpbmdsZQorCSAqIENv bWJpbmUgZmllbGQgbmFtZXMgYW5kIHN1YnNjcmlwdHMgaW50byBhIHNpbmdsZSBpbmRpcmVjdGlv biBsaXN0LCBhcworCSAqIHNvbWUgc3Vic2NyaXB0aW5nIGNvbnRhaW5lcnMsIHN1Y2ggYXMganNv bmIsIHN1cHBvcnQgZmllbGQgYWNjZXNzIHVzaW5nCisJICogZG90IG5vdGF0aW9uLiBBZGphY2Vu dCBBX0luZGljZXMgbm9kZXMgaGF2ZSB0byBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlCiAJICogbXVs dGlkaW1lbnNpb25hbCBzdWJzY3JpcHQgb3BlcmF0aW9uLgogCSAqLwogCWZvcmVhY2goaSwgaW5k LT5pbmRpcmVjdGlvbikKIAl7CiAJCU5vZGUJICAgKm4gPSBsZmlyc3QoaSk7CiAKLQkJaWYgKElz QShuLCBBX0luZGljZXMpKQorCQlpZiAoSXNBKG4sIEFfSW5kaWNlcykgfHwgSXNBKG4sIFN0cmlu ZykpCiAJCQlzdWJzY3JpcHRzID0gbGFwcGVuZChzdWJzY3JpcHRzLCBuKTsKLQkJZWxzZSBpZiAo SXNBKG4sIEFfU3RhcikpCisJCWVsc2UKIAkJeworCQkJQXNzZXJ0KElzQShuLCBBX1N0YXIpKTsK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKIAkJCQkJIGVycm1zZygicm93IGV4cGFuc2lvbiB2aWEgXCIqXCIgaXMgbm90IHN1 cHBvcnRlZCBoZXJlIiksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlv bikpKTsKIAkJfQotCQllbHNlCisJfQorCisJd2hpbGUgKHN1YnNjcmlwdHMpCisJeworCQkvKiB0 cnkgcHJvY2Vzc2luZyBjb250YWluZXIgc3Vic2NyaXB0cyBmaXJzdCAqLworCQlOb2RlCSAgICpu ZXdyZXN1bHQgPSAoTm9kZSAqKQorCQkJdHJhbnNmb3JtQ29udGFpbmVyU3Vic2NyaXB0cyhwc3Rh dGUsCisJCQkJCQkJCQkJIHJlc3VsdCwKKwkJCQkJCQkJCQkgZXhwclR5cGUocmVzdWx0KSwKKwkJ CQkJCQkJCQkgZXhwclR5cG1vZChyZXN1bHQpLAorCQkJCQkJCQkJCSAmc3Vic2NyaXB0cywKKwkJ CQkJCQkJCQkgZmFsc2UsCisJCQkJCQkJCQkJIHRydWUpOworCisJCWlmICghbmV3cmVzdWx0KQog CQl7Ci0JCQlOb2RlCSAgICpuZXdyZXN1bHQ7CisJCQkvKgorCQkJICogZ2VuZXJpYyBzdWJzY3Jp cHRpbmcgZmFpbGVkOyBmYWxsaW5nIGJhY2sgdG8gZmllbGQgc2VsZWN0aW9uCisJCQkgKiBmb3Ig YSBjb21wb3NpdGUgdHlwZS4KKwkJCSAqLworCQkJTm9kZQkgICAqbjsKKworCQkJQXNzZXJ0KHN1 YnNjcmlwdHMpOwogCi0JCQlBc3NlcnQoSXNBKG4sIFN0cmluZykpOworCQkJbiA9IGxpbml0aWFs KHN1YnNjcmlwdHMpOwogCi0JCQkvKiBwcm9jZXNzIHN1YnNjcmlwdHMgYmVmb3JlIHRoaXMgZmll bGQgc2VsZWN0aW9uICovCi0JCQl3aGlsZSAoc3Vic2NyaXB0cykKLQkJCQlyZXN1bHQgPSAoTm9k ZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJzY3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkJ CSAgIHJlc3VsdCwKLQkJCQkJCQkJCQkJCQkJCSAgIGV4cHJUeXBlKHJlc3VsdCksCi0JCQkJCQkJ CQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0JCQkJCQkJCQkJCQkJCQkgICAmc3Vic2Ny aXB0cywKLQkJCQkJCQkJCQkJCQkJCSAgIGZhbHNlKTsKKwkJCWlmICghSXNBKG4sIFN0cmluZykp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2Ug aXQgZG9lcyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAorCQkJCQkJCQlmb3JtYXRfdHlwZV9i ZShleHByVHlwZShyZXN1bHQpKSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKHJlc3VsdCkpKSk7CiAKKwkJCS8qIHRyeSB0byBmaW5kIGZ1bmN0aW9uIGZv ciBmaWVsZCBzZWxlY3Rpb24gKi8KIAkJCW5ld3Jlc3VsdCA9IFBhcnNlRnVuY09yQ29sdW1uKHBz dGF0ZSwKIAkJCQkJCQkJCQkgIGxpc3RfbWFrZTEobiksCiAJCQkJCQkJCQkJICBsaXN0X21ha2Ux KHJlc3VsdCksCkBAIC00ODAsMTkgKzUwMSwxNiBAQCB0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKIAkJCQkJCQkJCQkgIE5VTEwsCiAJ CQkJCQkJCQkJICBmYWxzZSwKIAkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKLQkJCWlmIChuZXdyZXN1 bHQgPT0gTlVMTCkKKworCQkJaWYgKCFuZXdyZXN1bHQpCiAJCQkJdW5rbm93bl9hdHRyaWJ1dGUo cHN0YXRlLCByZXN1bHQsIHN0clZhbChuKSwgbG9jYXRpb24pOwotCQkJcmVzdWx0ID0gbmV3cmVz dWx0OworCisJCQkvKiBjb25zdW1lIGZpZWxkIHNlbGVjdCAqLworCQkJc3Vic2NyaXB0cyA9IGxp c3RfZGVsZXRlX2ZpcnN0KHN1YnNjcmlwdHMpOwogCQl9CisKKwkJcmVzdWx0ID0gbmV3cmVzdWx0 OwogCX0KLQkvKiBwcm9jZXNzIHRyYWlsaW5nIHN1YnNjcmlwdHMsIGlmIGFueSAqLwotCXdoaWxl IChzdWJzY3JpcHRzKQotCQlyZXN1bHQgPSAoTm9kZSAqKSB0cmFuc2Zvcm1Db250YWluZXJTdWJz Y3JpcHRzKHBzdGF0ZSwKLQkJCQkJCQkJCQkJCQkgICByZXN1bHQsCi0JCQkJCQkJCQkJCQkJICAg ZXhwclR5cGUocmVzdWx0KSwKLQkJCQkJCQkJCQkJCQkgICBleHByVHlwbW9kKHJlc3VsdCksCi0J CQkJCQkJCQkJCQkJICAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJCQkJICAgZmFsc2UpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9u b2RlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCmluZGV4IGYwNWJhYTUwYTE1 Li5kN2IyMzY4OGI5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX25vZGUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vfbm9kZS5jCkBAIC0yMzgsNiArMjM4LDgg QEAgdHJhbnNmb3JtQ29udGFpbmVyVHlwZShPaWQgKmNvbnRhaW5lclR5cGUsIGludDMyICpjb250 YWluZXJUeXBtb2QpCiAgKiBjb250YWluZXJUeXBNb2QJdHlwbW9kIGZvciB0aGUgY29udGFpbmVy CiAgKiBpbmRpcmVjdGlvbgkJVW50cmFuc2Zvcm1lZCBsaXN0IG9mIHN1YnNjcmlwdHMgKG11c3Qg bm90IGJlIE5JTCkKICAqIGlzQXNzaWdubWVudAkJVHJ1ZSBpZiB0aGlzIHdpbGwgYmVjb21lIGEg Y29udGFpbmVyIGFzc2lnbm1lbnQuCisgKiBub0Vycm9yCQkJVHJ1ZSBmb3IgcmV0dXJuIE5VTEwg d2l0aCBubyBlcnJvciwgaWYgdGhlIGNvbnRhaW5lciB0eXBlCisgKiAJCQkJCWlzIG5vdCBzdWJz Y3JpcHRhYmxlLgogICovCiBTdWJzY3JpcHRpbmdSZWYgKgogdHJhbnNmb3JtQ29udGFpbmVyU3Vi c2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0yNDUsMTMgKzI0NywxMyBAQCB0cmFuc2Zv cm1Db250YWluZXJTdWJzY3JpcHRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkgT2lkIGNv bnRhaW5lclR5cGUsCiAJCQkJCQkJIGludDMyIGNvbnRhaW5lclR5cE1vZCwKIAkJCQkJCQkgTGlz dCAqKmluZGlyZWN0aW9uLAotCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCkKKwkJCQkJCQkgYm9v bCBpc0Fzc2lnbm1lbnQsCisJCQkJCQkJIGJvb2wgbm9FcnJvcikKIHsKIAlTdWJzY3JpcHRpbmdS ZWYgKnNic3JlZjsKIAljb25zdCBTdWJzY3JpcHRSb3V0aW5lcyAqc2Jzcm91dGluZXM7CiAJT2lk CQkJZWxlbWVudFR5cGU7Ci0JYm9vbAkJaXNTbGljZSA9IGZhbHNlOwotCUxpc3RDZWxsICAgKmlk eDsKKwlpbnQJCQlpbmRpcmVjdGlvbl9sZW5ndGggPSBsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24p OwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgdGhlIGFjdHVhbCBjb250YWluZXIgdHlwZSwgc21hc2hp bmcgYW55IGRvbWFpbi4gIEluIHRoZQpAQCAtMjY3LDI4ICsyNjksMTUgQEAgdHJhbnNmb3JtQ29u dGFpbmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJICovCiAJc2Jzcm91dGluZXMg PSBnZXRTdWJzY3JpcHRpbmdSb3V0aW5lcyhjb250YWluZXJUeXBlLCAmZWxlbWVudFR5cGUpOwog CWlmICghc2Jzcm91dGluZXMpCisJeworCQlpZiAobm9FcnJvcikKKwkJCXJldHVybiBOVUxMOwor CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiY2Fubm90IHN1YnNjcmlwdCB0eXBlICVzIGJlY2F1c2UgaXQgZG9l cyBub3Qgc3VwcG9ydCBzdWJzY3JpcHRpbmciLAogCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29udGFp bmVyVHlwZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o Y29udGFpbmVyQmFzZSkpKSk7Ci0KLQkvKgotCSAqIERldGVjdCB3aGV0aGVyIGFueSBvZiB0aGUg aW5kaXJlY3Rpb24gaXRlbXMgYXJlIHNsaWNlIHNwZWNpZmllcnMuCi0JICoKLQkgKiBBIGxpc3Qg Y29udGFpbmluZyBvbmx5IHNpbXBsZSBzdWJzY3JpcHRzIHJlZmVycyB0byBhIHNpbmdsZSBjb250 YWluZXIKLQkgKiBlbGVtZW50LiAgSWYgYW55IG9mIHRoZSBpdGVtcyBhcmUgc2xpY2Ugc3BlY2lm aWVycyAobG93ZXI6dXBwZXIpLCB0aGVuCi0JICogdGhlIHN1YnNjcmlwdCBleHByZXNzaW9uIG1l YW5zIGEgY29udGFpbmVyIHNsaWNlIG9wZXJhdGlvbi4KLQkgKi8KLQlmb3JlYWNoKGlkeCwgKmlu ZGlyZWN0aW9uKQotCXsKLQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7Ci0KLQkJaWYgKGFpLT5pc19zbGljZSkKLQkJewotCQkJaXNTbGljZSA9IHRydWU7Ci0J CQlicmVhazsKLQkJfQogCX0KIAogCS8qCkBAIC0zMTAsNyArMjk5LDMzIEBAIHRyYW5zZm9ybUNv bnRhaW5lclN1YnNjcmlwdHMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCSAqIGRldGVybWluZSB0aGUg c3Vic2NyaXB0aW5nIHJlc3VsdCB0eXBlLgogCSAqLwogCXNic3JvdXRpbmVzLT50cmFuc2Zvcm0o c2JzcmVmLCBpbmRpcmVjdGlvbiwgcHN0YXRlLAotCQkJCQkJICAgaXNTbGljZSwgaXNBc3NpZ25t ZW50KTsKKwkJCQkJCSAgIGlzQXNzaWdubWVudCk7CisKKwkvKgorCSAqIEVycm9yIG91dCwgaWYg ZGF0YXR5cGUgZmFpbGVkIHRvIGNvbnN1bWUgYW55IGluZGlyZWN0aW9uIGVsZW1lbnRzLgorCSAq LworCWlmIChsaXN0X2xlbmd0aCgqaW5kaXJlY3Rpb24pID09IGluZGlyZWN0aW9uX2xlbmd0aCkK Kwl7CisJCU5vZGUJICAgKmluZCA9IGxpbml0aWFsKCppbmRpcmVjdGlvbik7CisKKwkJaWYgKG5v RXJyb3IpCisJCQlyZXR1cm4gTlVMTDsKKworCQlpZiAoSXNBKGluZCwgU3RyaW5nKSkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAor CQkJCQkgZXJybXNnKCJ0eXBlICVzIGRvZXMgbm90IHN1cHBvcnQgZG90IG5vdGF0aW9uIiwKKwkJ CQkJCQlmb3JtYXRfdHlwZV9iZShjb250YWluZXJUeXBlKSksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oY29udGFpbmVyQmFzZSkpKSk7CisJCWVsc2UgaWYg KElzQShpbmQsIEFfSW5kaWNlcykpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidHlwZSAlcyBkb2VzIG5v dCBzdXBwb3J0IGFycmF5IHN1YnNjcmlwdGluZyIsCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29u dGFpbmVyVHlwZSkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0 aW9uKGNvbnRhaW5lckJhc2UpKSkpOworCQllbHNlCisJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBp bmRpcmVjdGlvbiBvcGVyYXRpb246ICVkIiwgbm9kZVRhZyhpbmQpKTsKKwl9CiAKIAkvKgogCSAq IFZlcmlmeSB3ZSBnb3QgYSB2YWxpZCB0eXBlICh0aGlzIGRlZmVuZHMsIGZvciBleGFtcGxlLCBh Z2FpbnN0IHNvbWVvbmUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCBhMDk3NzM2MjI5 YS4uYjg5NzM2ZmYxZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTkzNiw3ICs5 MzYsOCBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50U3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJICBjb250YWluZXJUeXBlLAogCQkJCQkJCQkJCSAgY29udGFpbmVyVHlwTW9k LAogCQkJCQkJCQkJCSAgJnN1YnNjcmlwdHMsCi0JCQkJCQkJCQkJICB0cnVlKTsKKwkJCQkJCQkJ CQkgIHRydWUsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAKIAl0eXBlTmVlZGVkID0gc2JzcmVmLT5y ZWZyZXN0eXBlOwogCXR5cG1vZE5lZWRlZCA9IHNic3JlZi0+cmVmdHlwbW9kOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2FycmF5c3Vicy5jCmluZGV4IDIzNGMyYzI3OGMxLi4zNzhiNmJmMTZjYiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5c3Vicy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheXN1YnMuYwpAQCAtNTYsMTIgKzU2LDM4IEBAIHN0YXRpYyB2b2lkCiBhcnJh eV9zdWJzY3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJICBM aXN0ICoqaW5kaXJlY3Rpb24sCiAJCQkJCQkgIFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCSAg Ym9vbCBpc1NsaWNlLAogCQkJCQkJICBib29sIGlzQXNzaWdubWVudCkKIHsKIAlMaXN0CSAgICp1 cHBlckluZGV4cHIgPSBOSUw7CiAJTGlzdAkgICAqbG93ZXJJbmRleHByID0gTklMOwogCUxpc3RD ZWxsICAgKmlkeDsKKwlpbnQJCQluZGltOworCWJvb2wJCWlzU2xpY2UgPSBmYWxzZTsKKworCS8q CisJICogRGV0ZWN0IHdoZXRoZXIgYW55IG9mIHRoZSBpbmRpcmVjdGlvbiBpdGVtcyBhcmUgc2xp Y2Ugc3BlY2lmaWVycy4KKwkgKgorCSAqIEEgbGlzdCBjb250YWluaW5nIG9ubHkgc2ltcGxlIHN1 YnNjcmlwdHMgcmVmZXJzIHRvIGEgc2luZ2xlIGNvbnRhaW5lcgorCSAqIGVsZW1lbnQuICBJZiBh bnkgb2YgdGhlIGl0ZW1zIGFyZSBzbGljZSBzcGVjaWZpZXJzIChsb3dlcjp1cHBlciksIHRoZW4K KwkgKiB0aGUgc3Vic2NyaXB0IGV4cHJlc3Npb24gbWVhbnMgYSBjb250YWluZXIgc2xpY2Ugb3Bl cmF0aW9uLgorCSAqLworCWZvcmVhY2goaWR4LCAqaW5kaXJlY3Rpb24pCisJeworCQlOb2RlCSAg ICphaSA9IGxmaXJzdChpZHgpOworCisJCS8qCisJCSAqIFdlIHNob3VsZCBub3QgaW5zcGVjdCBz bGljZSBzcGVjaWZpZXJzIGJleW9uZCBhbiBpbmRpcmVjdGlvbiBub2RlCisJCSAqIHR5cGUgdGhh dCB3ZSBkb24ndCBzdXBwb3J0LgorCQkgKi8KKwkJaWYgKCFJc0EoYWksIEFfSW5kaWNlcykpCisJ CQlicmVhazsKKworCQlpZiAoY2FzdE5vZGUoQV9JbmRpY2VzLCBhaSktPmlzX3NsaWNlKQorCQl7 CisJCQlpc1NsaWNlID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQogCiAJLyoKIAkgKiBUcmFu c2Zvcm0gdGhlIHN1YnNjcmlwdCBleHByZXNzaW9ucywgYW5kIHNlcGFyYXRlIHVwcGVyIGFuZCBs b3dlcgpAQCAtNzMsOSArOTksMTQgQEAgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybShTdWJzY3Jp cHRpbmdSZWYgKnNic3JlZiwKIAkgKi8KIAlmb3JlYWNoKGlkeCwgKmluZGlyZWN0aW9uKQogCXsK LQkJQV9JbmRpY2VzICAqYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisJCUFfSW5k aWNlcyAgKmFpOwogCQlOb2RlCSAgICpzdWJleHByOwogCisJCWlmICghSXNBKGxmaXJzdChpZHgp LCBBX0luZGljZXMpKQorCQkJYnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMs IGlkeCk7CisKIAkJaWYgKGlzU2xpY2UpCiAJCXsKIAkJCWlmIChhaS0+bGlkeCkKQEAgLTE0NSwx NCArMTc2LDE1IEBAIGFycmF5X3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpz YnNyZWYsCiAJc2JzcmVmLT5yZWZsb3dlcmluZGV4cHIgPSBsb3dlckluZGV4cHI7CiAKIAkvKiBW ZXJpZnkgc3Vic2NyaXB0IGxpc3QgbGVuZ3RocyBhcmUgd2l0aGluIGltcGxlbWVudGF0aW9uIGxp bWl0ICovCi0JaWYgKGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcikgPiBNQVhESU0pCisJbmRpbSA9 IGxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwcik7CisJaWYgKG5kaW0gPiBNQVhESU0pCiAJCWVyZXBv cnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9HUkFNX0xJTUlUX0VYQ0VFREVEKSwK IAkJCQkgZXJybXNnKCJudW1iZXIgb2YgYXJyYXkgZGltZW5zaW9ucyAoJWQpIGV4Y2VlZHMgdGhl IG1heGltdW0gYWxsb3dlZCAoJWQpIiwKIAkJCQkJCWxpc3RfbGVuZ3RoKHVwcGVySW5kZXhwciks IE1BWERJTSkpKTsKIAkvKiBXZSBuZWVkIG5vdCBjaGVjayBsb3dlckluZGV4cHIgc2VwYXJhdGVs eSAqLwogCi0JKmluZGlyZWN0aW9uID0gTklMOworCSppbmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRl X2ZpcnN0X24oKmluZGlyZWN0aW9uLCBuZGltKTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIHRoZSBy ZXN1bHQgdHlwZSBvZiB0aGUgc3Vic2NyaXB0aW5nIG9wZXJhdGlvbi4gIEl0J3MgdGhlIHNhbWUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYwppbmRleCA1ZWFkNjkzYTNiMi4uMmFhNDEwZjYwNWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYnN1YnMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvanNvbmJzdWJzLmMKQEAgLTQzLDcgKzQzLDYgQEAgc3RhdGljIHZv aWQKIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zvcm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJ CQkJCQkgIExpc3QgKippbmRpcmVjdGlvbiwKIAkJCQkJCSAgUGFyc2VTdGF0ZSAqcHN0YXRlLAot CQkJCQkJICBib29sIGlzU2xpY2UsCiAJCQkJCQkgIGJvb2wgaXNBc3NpZ25tZW50KQogewogCUxp c3QJICAgKnVwcGVySW5kZXhwciA9IE5JTDsKQEAgLTU1LDEwICs1NCwxNSBAQCBqc29uYl9zdWJz Y3JpcHRfdHJhbnNmb3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCSAqLwogCWZvcmVhY2go aWR4LCAqaW5kaXJlY3Rpb24pCiAJewotCQlBX0luZGljZXMgICphaSA9IGxmaXJzdF9ub2RlKEFf SW5kaWNlcywgaWR4KTsKKwkJQV9JbmRpY2VzICAqYWk7CiAJCU5vZGUJICAgKnN1YkV4cHI7CiAK LQkJaWYgKGlzU2xpY2UpCisJCWlmICghSXNBKGxmaXJzdChpZHgpLCBBX0luZGljZXMpKQorCQkJ YnJlYWs7CisKKwkJYWkgPSBsZmlyc3Rfbm9kZShBX0luZGljZXMsIGlkeCk7CisKKwkJaWYgKGFp LT5pc19zbGljZSkKIAkJewogCQkJTm9kZQkgICAqZXhwciA9IGFpLT51aWR4ID8gYWktPnVpZHgg OiBhaS0+bGlkeDsKIApAQCAtMTQyLDcgKzE0Niw3IEBAIGpzb25iX3N1YnNjcmlwdF90cmFuc2Zv cm0oU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYsCiAJCQkgKiBTbGljZSB3aXRoIG9taXR0ZWQgdXBw ZXIgYm91bmQuIFNob3VsZCBub3QgaGFwcGVuIGFzIHdlIGFscmVhZHkKIAkJCSAqIGVycm9yZWQg b3V0IG9uIHNsaWNlIGVhcmxpZXIsIGJ1dCBoYW5kbGUgdGhpcyBqdXN0IGluIGNhc2UuCiAJCQkg Ki8KLQkJCUFzc2VydChpc1NsaWNlICYmIGFpLT5pc19zbGljZSk7CisJCQlBc3NlcnQoYWktPmlz X3NsaWNlKTsKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAogCQkJCQkgZXJybXNnKCJqc29uYiBzdWJzY3JpcHQgZG9lcyBub3Qgc3Vw cG9ydCBzbGljZXMiKSwKQEAgLTE2MCw3ICsxNjQsOSBAQCBqc29uYl9zdWJzY3JpcHRfdHJhbnNm b3JtKFN1YnNjcmlwdGluZ1JlZiAqc2JzcmVmLAogCXNic3JlZi0+cmVmcmVzdHlwZSA9IEpTT05C T0lEOwogCXNic3JlZi0+cmVmdHlwbW9kID0gLTE7CiAKLQkqaW5kaXJlY3Rpb24gPSBOSUw7CisJ LyogUmVtb3ZlIHByb2Nlc3NlZCBlbGVtZW50cyAqLworCWlmICh1cHBlckluZGV4cHIpCisJCSpp bmRpcmVjdGlvbiA9IGxpc3RfZGVsZXRlX2ZpcnN0X24oKmluZGlyZWN0aW9uLCBsaXN0X2xlbmd0 aCh1cHBlckluZGV4cHIpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3N1YnNjcmlwdGluZy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvc3Vic2NyaXB0aW5nLmgKaW5kZXgg ZGY5ODhhODVmYWQuLjE0ZWY0MTRhMTgwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9z dWJzY3JpcHRpbmcuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9zdWJzY3JpcHRpbmcuaApAQCAt NjgsNyArNjgsNyBAQCBzdHJ1Y3QgU3Vic2NyaXB0RXhlY1N0ZXBzOwogICogc2FtZSBsZW5ndGgg YXMgcmVmdXBwZXJpbmRleHByIGZvciBhIHNsaWNlIG9wZXJhdGlvbi4gIEluc2VydCBOVUxMcwog ICogKHRoYXQgaXMsIGFuIGVtcHR5IHBhcnNlIHRyZWUsIG5vdCBhIG51bGwgQ29uc3Qgbm9kZSkg Zm9yIGFueSBvbWl0dGVkCiAgKiBzdWJzY3JpcHRzIGluIGEgc2xpY2Ugb3BlcmF0aW9uLiAgKE9m IGNvdXJzZSwgaWYgdGhlIHRyYW5zZm9ybSBtZXRob2QKLSAqIGRvZXMgbm90IGNhcmUgdG8gc3Vw cG9ydCBzbGljaW5nLCBpdCBjYW4ganVzdCB0aHJvdyBhbiBlcnJvciBpZiBpc1NsaWNlLikKKyAq IGRvZXMgbm90IGNhcmUgdG8gc3VwcG9ydCBzbGljaW5nLCBpdCBjYW4ganVzdCB0aHJvdyBhbiBl cnJvci4pCiAgKiBTZWUgYXJyYXlfc3Vic2NyaXB0X3RyYW5zZm9ybSgpIGZvciBzYW1wbGUgY29k ZS4KICAqCiAgKiBUaGUgdHJhbnNmb3JtIG1ldGhvZCByZWNlaXZlcyBhIHBvaW50ZXIgdG8gYSBs aXN0IG9mIHJhdyBpbmRpcmVjdGlvbnMuCkBAIC0xMDAsNyArMTAwLDYgQEAgc3RydWN0IFN1YnNj cmlwdEV4ZWNTdGVwczsKIHR5cGVkZWYgdm9pZCAoKlN1YnNjcmlwdFRyYW5zZm9ybSkgKFN1YnNj cmlwdGluZ1JlZiAqc2JzcmVmLAogCQkJCQkJCQkJTGlzdCAqKmluZGlyZWN0aW9uLAogCQkJCQkJ CQkJc3RydWN0IFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCWJvb2wgaXNTbGljZSwKIAkJ CQkJCQkJCWJvb2wgaXNBc3NpZ25tZW50KTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmlu ZGV4IDU4YTRiOWRmMTU3Li41Y2MzY2U1OGMzMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBA IC0zNjIsNyArMzYyLDggQEAgZXh0ZXJuIFN1YnNjcmlwdGluZ1JlZiAqdHJhbnNmb3JtQ29udGFp bmVyU3Vic2NyaXB0cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJIE9pZCBjb250 YWluZXJUeXBlLAogCQkJCQkJCQkJCQkJCSBpbnQzMiBjb250YWluZXJUeXBNb2QsCiAJCQkJCQkJ CQkJCQkJIExpc3QgKippbmRpcmVjdGlvbiwKLQkJCQkJCQkJCQkJCQkgYm9vbCBpc0Fzc2lnbm1l bnQpOworCQkJCQkJCQkJCQkJCSBib29sIGlzQXNzaWdubWVudCwKKwkJCQkJCQkJCQkJCQkgYm9v bCBub0Vycm9yKTsKIGV4dGVybiBDb25zdCAqbWFrZV9jb25zdChQYXJzZVN0YXRlICpwc3RhdGUs IEFfQ29uc3QgKmFjb25zdCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9OT0RFX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dAppbmRleCBiODE1NDczZjQxNC4uNzhkZDllNzFi ZjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYXJyYXlzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FycmF5cy5vdXQKQEAgLTE3ODIsMTcgKzE3ODIs MTcgQEAgU0VMRUNUIG1heChmMSksIG1pbihmMSksIG1heChmMiksIG1pbihmMiksIG1heChmMyks IG1pbihmMykgRlJPTSBhcnJhZ2d0ZXN0OwogKDEgcm93KQogCiAtLSBBIGZldyBzaW1wbGUgdGVz dHMgZm9yIGFycmF5cyBvZiBjb21wb3NpdGUgdHlwZXMKLWNyZWF0ZSB0eXBlIGNvbXB0eXBlIGFz IChmMSBpbnQsIGYyIHRleHQpOworY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKGYxIGludCwgZjIg dGV4dCwgZjMgaW50W10pOwogY3JlYXRlIHRhYmxlIGNvbXB0YWJsZSAoYzEgY29tcHR5cGUsIGMy IGNvbXB0eXBlW10pOwogLS0gWFhYIHdvdWxkIGxpa2UgdG8gbm90IGhhdmUgdG8gc3BlY2lmeSBy b3coKSBjb25zdHJ1Y3QgdHlwZXMgaGVyZSAuLi4KIGluc2VydCBpbnRvIGNvbXB0YWJsZQotICB2 YWx1ZXMgKHJvdygxLCdmb28nKSwgYXJyYXlbcm93KDIsJ2JhcicpOjpjb21wdHlwZSwgcm93KDMs J2JheicpOjpjb21wdHlwZV0pOworICB2YWx1ZXMgKHJvdygxLCdmb28nLGFycmF5WzEwLDIwXSks IGFycmF5W3JvdygyLCdiYXInLGFycmF5WzMwLDQwXSk6OmNvbXB0eXBlLCByb3coMywnYmF6Jyxh cnJheVs1MCw2MF0pOjpjb21wdHlwZV0pOwogLS0gY2hlY2sgdGhhdCBpbXBsaWNpdGx5IG5hbWVk IGFycmF5IHR5cGUgX2NvbXB0eXBlIGlzbid0IGEgcHJvYmxlbQogY3JlYXRlIHR5cGUgX2NvbXB0 eXBlIGFzIGVudW0oJ2Zvb2V5Jyk7CiBzZWxlY3QgKiBmcm9tIGNvbXB0YWJsZTsKLSAgIGMxICAg IHwgICAgICAgICAgYzIgICAgICAgICAgIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0gKDEsZm9vKSB8IHsiKDIsYmFyKSIsIigzLGJheikifQorICAgICAgICBjMSAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgYzIgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICgxLGZvbywiezEwLDIwfSIpIHwgeyIoMixiYXIsXCJ7MzAsNDB9XCIpIiwiKDMsYmF6 LFwiezUwLDYwfVwiKSJ9CiAoMSByb3cpCiAKIHNlbGVjdCBjMlsyXS5mMiBmcm9tIGNvbXB0YWJs ZTsKQEAgLTE4MDEsNiArMTgwMSwyMiBAQCBzZWxlY3QgYzJbMl0uZjIgZnJvbSBjb21wdGFibGU7 CiAgYmF6CiAoMSByb3cpCiAKK3NlbGVjdCBjMlsyXS5mMyBmcm9tIGNvbXB0YWJsZTsKKyAgIGYz ICAgIAorLS0tLS0tLS0tCisgezUwLDYwfQorKDEgcm93KQorCitzZWxlY3QgYzJbMl0uZjNbMToy XSBmcm9tIGNvbXB0YWJsZTsKKyAgIGYzICAgIAorLS0tLS0tLS0tCisgezUwLDYwfQorKDEgcm93 KQorCitzZWxlY3QgYzJbMToyXS5mM1sxOjJdIGZyb20gY29tcHRhYmxlOworRVJST1I6ICBjb2x1 bW4gbm90YXRpb24gLmYzIGFwcGxpZWQgdG8gdHlwZSBjb21wdHlwZVtdLCB3aGljaCBpcyBub3Qg YSBjb21wb3NpdGUgdHlwZQorTElORSAxOiBzZWxlY3QgYzJbMToyXS5mM1sxOjJdIGZyb20gY29t cHRhYmxlOworICAgICAgICAgICAgICAgXgogZHJvcCB0eXBlIF9jb21wdHlwZTsKIGRyb3AgdGFi bGUgY29tcHRhYmxlOwogZHJvcCB0eXBlIGNvbXB0eXBlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvYXJyYXlzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5cy5zcWwK aW5kZXggNDdkNjJjMWQzOGQuLjQ1MDM4OTgzMWEwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9hcnJheXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2FycmF5cy5zcWwK QEAgLTU1NSwxOSArNTU1LDIyIEBAIFNFTEVDVCBtYXgoZjEpLCBtaW4oZjEpLCBtYXgoZjIpLCBt aW4oZjIpLCBtYXgoZjMpLCBtaW4oZjMpIEZST00gYXJyYWdndGVzdDsKIAogLS0gQSBmZXcgc2lt cGxlIHRlc3RzIGZvciBhcnJheXMgb2YgY29tcG9zaXRlIHR5cGVzCiAKLWNyZWF0ZSB0eXBlIGNv bXB0eXBlIGFzIChmMSBpbnQsIGYyIHRleHQpOworY3JlYXRlIHR5cGUgY29tcHR5cGUgYXMgKGYx IGludCwgZjIgdGV4dCwgZjMgaW50W10pOwogCiBjcmVhdGUgdGFibGUgY29tcHRhYmxlIChjMSBj b21wdHlwZSwgYzIgY29tcHR5cGVbXSk7CiAKIC0tIFhYWCB3b3VsZCBsaWtlIHRvIG5vdCBoYXZl IHRvIHNwZWNpZnkgcm93KCkgY29uc3RydWN0IHR5cGVzIGhlcmUgLi4uCiBpbnNlcnQgaW50byBj b21wdGFibGUKLSAgdmFsdWVzIChyb3coMSwnZm9vJyksIGFycmF5W3JvdygyLCdiYXInKTo6Y29t cHR5cGUsIHJvdygzLCdiYXonKTo6Y29tcHR5cGVdKTsKKyAgdmFsdWVzIChyb3coMSwnZm9vJyxh cnJheVsxMCwyMF0pLCBhcnJheVtyb3coMiwnYmFyJyxhcnJheVszMCw0MF0pOjpjb21wdHlwZSwg cm93KDMsJ2JheicsYXJyYXlbNTAsNjBdKTo6Y29tcHR5cGVdKTsKIAogLS0gY2hlY2sgdGhhdCBp bXBsaWNpdGx5IG5hbWVkIGFycmF5IHR5cGUgX2NvbXB0eXBlIGlzbid0IGEgcHJvYmxlbQogY3Jl YXRlIHR5cGUgX2NvbXB0eXBlIGFzIGVudW0oJ2Zvb2V5Jyk7CiAKIHNlbGVjdCAqIGZyb20gY29t cHRhYmxlOwogc2VsZWN0IGMyWzJdLmYyIGZyb20gY29tcHRhYmxlOworc2VsZWN0IGMyWzJdLmYz IGZyb20gY29tcHRhYmxlOworc2VsZWN0IGMyWzJdLmYzWzE6Ml0gZnJvbSBjb21wdGFibGU7Citz ZWxlY3QgYzJbMToyXS5mM1sxOjJdIGZyb20gY29tcHRhYmxlOwogCiBkcm9wIHR5cGUgX2NvbXB0 eXBlOwogZHJvcCB0YWJsZSBjb21wdGFibGU7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000008ea202063e751633--