[pgAdmin][RM4842] trigger/compound trigger on a partitioned table

Aditya Toshniwal <[email protected]> Wed, 25 Dec 2019 16:59:11 +0530
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CAM9w-_=yMF3y9bbYmZMOxcJUqjkmh_pRD8iUibAjZLNnqKMJ3Q@mail.gmail.com>
--000000000000fdce34059a859347
Content-Type: multipart/alternative; boundary="000000000000fdce30059a859345"

--000000000000fdce30059a859345
Content-Type: text/plain; charset="UTF-8"

Hi Hackers,

Attached is the patch to fix the issue where it was not possible to add
constraints, index, rules, triggers and compound triggers on child tables
of a partitioned table.
The problem was with URLs formed which also included parent table OID,
which was not needed. The code is changed to add "url_jump_after_node"
param to skip after a certain node, which will will skip all the value
between jump_after_node to the last node, excluding jump_after_node and the
last node. Partitioned table itself is a "table" and can be multilevel.

Kindly review.

-- 
Thanks and Regards,
Aditya Toshniwal
pgAdmin Hacker | Sr. Software Engineer | EnterpriseDB India | Pune
"Don't Complain about Heat, Plant a TREE"

--000000000000fdce30059a859345
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:verdana,=
sans-serif">Hi Hackers,</div><div class=3D"gmail_default" style=3D"font-fam=
ily:verdana,sans-serif"><br></div><div class=3D"gmail_default" style=3D"fon=
t-family:verdana,sans-serif">Attached is the patch to fix the issue where i=
t was not possible to add constraints, index, rules, triggers and compound =
triggers on child tables of a partitioned table.</div><div class=3D"gmail_d=
efault" style=3D""><font face=3D"verdana, sans-serif">The problem was with =
URLs formed which also included parent table OID, which was not needed. The=
 code is changed to add &quot;url_jump_after_node&quot; param to skip after=
 a certain node, which=C2=A0will will skip all the value between jump_after=
_node to the last node, excluding jump_after_node and the last node. Partit=
ioned table itself is a &quot;table&quot; and can be multilevel.</font></di=
v><div class=3D"gmail_default" style=3D""><font face=3D"verdana, sans-serif=
"><br></font></div><div class=3D"gmail_default" style=3D""><font face=3D"ve=
rdana, sans-serif">Kindly review.</font></div><div><br></div>-- <br><div di=
r=3D"ltr" class=3D"gmail_signature" data-smartmail=3D"gmail_signature"><div=
 dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"l=
tr"><div><div dir=3D"ltr"><font size=3D"2" color=3D"#000000" face=3D"verdan=
a, sans-serif">Thanks and Regards,</font><div><span style=3D"background-col=
or:rgb(255,255,255)"><font size=3D"2" color=3D"#000000" face=3D"verdana, sa=
ns-serif">Aditya Toshniwal</font></span></div><div><font face=3D"verdana, s=
ans-serif"><span style=3D"background-color:rgb(255,255,255)"><font size=3D"=
2" color=3D"#000000">pgAdmin Hacker | Sr. Software Engineer |=C2=A0Enterpri=
seDB India |=C2=A0</font></span><span style=3D"color:rgb(0,0,0)">Pune</span=
></font></div><div><font color=3D"#38761d" face=3D"verdana, sans-serif" siz=
e=3D"1">&quot;Don&#39;t Complain about Heat, Plant a TREE&quot;</font></div=
></div></div></div></div></div></div></div></div></div></div></div>

--000000000000fdce30059a859345--
--000000000000fdce34059a859347
Content-Type: application/octet-stream; name="RM4842.patch"
Content-Disposition: attachment; filename="RM4842.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_k4l7tr5c0>
X-Attachment-Id: f_k4l7tr5c0

ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh
dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb21wb3VuZF90cmlnZ2Vycy9fX2luaXRfXy5weSBiL3dl
Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz
L3RhYmxlcy9jb21wb3VuZF90cmlnZ2Vycy9fX2luaXRfXy5weQppbmRleCA2MTE5ZmYxMzguLjU2
NWQwMGZlZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl
cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBvdW5kX3RyaWdnZXJzL19faW5pdF9f
LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi
YXNlcy9zY2hlbWFzL3RhYmxlcy9jb21wb3VuZF90cmlnZ2Vycy9fX2luaXRfXy5weQpAQCAtNzI2
LDcgKzcyNiw3IEBAIGNsYXNzIENvbXBvdW5kVHJpZ2dlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToK
ICAgICAgICAgICAgICAgICBzZWxmLmNvbm4sIHNlbGYuc2NoZW1hLCBzZWxmLnRhYmxlLCB0aWQs
IHRyaWQsCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkKQogICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy
cm9yKGVycm9ybXNnPVNRTCkKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy
b3IoZXJyb3Jtc2c9c3RyKGUpKQogCiAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3Bv
bnNlPVNRTCkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz
L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBvdW5kX3RyaWdnZXJzL3N0YXRp
Yy9qcy9jb21wb3VuZF90cmlnZ2VyLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBvdW5kX3RyaWdnZXJzL3N0
YXRpYy9qcy9jb21wb3VuZF90cmlnZ2VyLmpzCmluZGV4IDBmNzQ4OTVjZi4uMWQ3ZWZlYjQ1IDEw
MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh
YmFzZXMvc2NoZW1hcy90YWJsZXMvY29tcG91bmRfdHJpZ2dlcnMvc3RhdGljL2pzL2NvbXBvdW5k
X3RyaWdnZXIuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl
cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbXBvdW5kX3RyaWdnZXJzL3N0YXRpYy9qcy9j
b21wb3VuZF90cmlnZ2VyLmpzCkBAIC00Miw2ICs0Miw3IEBAIGRlZmluZSgncGdhZG1pbi5ub2Rl
LmNvbXBvdW5kX3RyaWdnZXInLCBbCiAgICAgICBzcWxBbHRlckhlbHA6ICdzcWwtYWx0ZXJ0Y29t
cG91bmR0cmlnZ2VyLmh0bWwnLAogICAgICAgc3FsQ3JlYXRlSGVscDogJ3NxbC1jcmVhdGVjb21w
b3VuZHRyaWdnZXIuaHRtbCcsCiAgICAgICBkaWFsb2dIZWxwOiB1cmxfZm9yKCdoZWxwLnN0YXRp
YycsIHsnZmlsZW5hbWUnOiAnY29tcG91bmRfdHJpZ2dlcl9kaWFsb2cuaHRtbCd9KSwKKyAgICAg
IHVybF9qdW1wX2FmdGVyX25vZGU6ICdzY2hlbWEnLAogICAgICAgSW5pdDogZnVuY3Rpb24oKSB7
CiAgICAgICAgIC8qIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLwogICAg
ICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz
ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh
aW50cy9jaGVja19jb25zdHJhaW50L3N0YXRpYy9qcy9jaGVja19jb25zdHJhaW50LmpzIGIvd2Vi
L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv
dGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvc3RhdGljL2pzL2NoZWNrX2NvbnN0
cmFpbnQuanMKaW5kZXggNjVhMDAyZTFmLi5mZWQ3MTdhYzIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl
cy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3N0YXRpYy9qcy9jaGVja19jb25zdHJhaW50
LmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi
YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3N0YXRpYy9q
cy9jaGVja19jb25zdHJhaW50LmpzCkBAIC0yNiw2ICsyNiw3IEBAIGRlZmluZSgncGdhZG1pbi5u
b2RlLmNoZWNrX2NvbnN0cmFpbnQnLCBbCiAgICAgICBoYXNTUUw6IHRydWUsCiAgICAgICBoYXNE
ZXBlbmRzOiB0cnVlLAogICAgICAgcGFyZW50X3R5cGU6IFsndGFibGUnLCdwYXJ0aXRpb24nXSwK
KyAgICAgIHVybF9qdW1wX2FmdGVyX25vZGU6ICdzY2hlbWEnLAogICAgICAgSW5pdDogZnVuY3Rp
b24oKSB7CiAgICAgICAgIC8vIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cwog
ICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy
b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z
dHJhaW50cy9leGNsdXNpb25fY29uc3RyYWludC9zdGF0aWMvanMvZXhjbHVzaW9uX2NvbnN0cmFp
bnQuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz
ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3RhdGlj
L2pzL2V4Y2x1c2lvbl9jb25zdHJhaW50LmpzCmluZGV4IDY0N2I2MzUyNS4uZGIxMjg2Zjg4IDEw
MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh
YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3Rh
dGljL2pzL2V4Y2x1c2lvbl9jb25zdHJhaW50LmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv
c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50
cy9leGNsdXNpb25fY29uc3RyYWludC9zdGF0aWMvanMvZXhjbHVzaW9uX2NvbnN0cmFpbnQuanMK
QEAgLTYyOSw2ICs2MjksNyBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5leGNsdXNpb25fY29uc3Ry
YWludCcsIFsKICAgICAgIGhhc0RlcGVuZHM6IHRydWUsCiAgICAgICBoYXNTdGF0aXN0aWNzOiB0
cnVlLAogICAgICAgc3RhdHNQcmV0dGlmeUZpZWxkczogW2dldHRleHQoJ0luZGV4IHNpemUnKV0s
CisgICAgICB1cmxfanVtcF9hZnRlcl9ub2RlOiAnc2NoZW1hJywKICAgICAgIEluaXQ6IGZ1bmN0
aW9uKCkgewogICAgICAgICAvKiBBdm9pZCBtdWx0aXBsZSByZWdpc3RyYXRpb24gb2YgbWVudXMg
Ki8KICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p
bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv
Y29uc3RyYWludHMvZm9yZWlnbl9rZXkvc3RhdGljL2pzL2ZvcmVpZ25fa2V5LmpzIGIvd2ViL3Bn
YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi
bGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3N0YXRpYy9qcy9mb3JlaWduX2tleS5qcwppbmRl
eCA5NjcxM2ZmMDguLjEyYTk0MGUzNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z
ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz
L2ZvcmVpZ25fa2V5L3N0YXRpYy9qcy9mb3JlaWduX2tleS5qcworKysgYi93ZWIvcGdhZG1pbi9i
cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u
c3RyYWludHMvZm9yZWlnbl9rZXkvc3RhdGljL2pzL2ZvcmVpZ25fa2V5LmpzCkBAIC01NDUsNyAr
NTQ1LDggQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuZm9yZWlnbl9rZXknLCBbCiAgICAgICAgICAg
dXJsID0gJ2dldF9jb3ZlcmluZ2luZGV4JywKICAgICAgICAgICBtID0gc2VsZi5tb2RlbCwKICAg
ICAgICAgICBjb2xzID0gW10sCi0gICAgICAgICAgY292ZXJpbmdpbmRleCA9IG51bGw7CisgICAg
ICAgICAgY292ZXJpbmdpbmRleCA9IG51bGwsCisgICAgICAgICAgdXJsX2p1bXBfYWZ0ZXJfbm9k
ZSA9ICdzY2hlbWEnOwogCiAgICAgICAgIHNlbGYuY29sbGVjdGlvbi5lYWNoKGZ1bmN0aW9uKG0p
ewogICAgICAgICAgIGNvbHMucHVzaChtLmdldCgnbG9jYWxfY29sdW1uJykpOwpAQCAtNTU3LDcg
KzU1OCw3IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLmZvcmVpZ25fa2V5JywgWwogICAgICAgICAg
ICAgZnVsbF91cmwgPSBub2RlLmdlbmVyYXRlX3VybC5hcHBseSgKICAgICAgICAgICAgICAgbm9k
ZSwgWwogICAgICAgICAgICAgICAgIG51bGwsIHVybCwgdGhpcy5maWVsZC5nZXQoJ25vZGVfZGF0
YScpLAotICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuZ2V0KCd1cmxfd2l0aF9pZCcpIHx8IGZh
bHNlLCBub2RlX2luZm8sCisgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ3VybF93aXRo
X2lkJykgfHwgZmFsc2UsIG5vZGVfaW5mbywgdXJsX2p1bXBfYWZ0ZXJfbm9kZSwKICAgICAgICAg
ICAgICAgXSk7CiAKICAgICAgICAgICBpZiAodGhpcy5maWVsZC5nZXQoJ3ZlcnNpb25fY29tcGF0
aWJsZScpKSB7CkBAIC02MjIsNiArNjIzLDcgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuZm9yZWln
bl9rZXknLCBbCiAgICAgICBjYW5Ecm9wOiB0cnVlLAogICAgICAgY2FuRHJvcENhc2NhZGU6IHRy
dWUsCiAgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAgdXJsX2p1bXBfYWZ0ZXJfbm9kZTog
J3NjaGVtYScsCiAgICAgICBJbml0OiBmdW5jdGlvbigpIHsKICAgICAgICAgLyogQXZvaWQgbXVs
dGlwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCiAgICAgICAgIGlmICh0aGlzLmluaXRpYWxp
emVkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl
cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQv
c3RhdGljL2pzL3ByaW1hcnlfa2V5LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv
dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2Nv
bnN0cmFpbnQvc3RhdGljL2pzL3ByaW1hcnlfa2V5LmpzCmluZGV4IDhlY2QxZGFlMC4uZWUwMjA2
ZDk5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy
cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC9z
dGF0aWMvanMvcHJpbWFyeV9rZXkuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf
Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4
X2NvbnN0cmFpbnQvc3RhdGljL2pzL3ByaW1hcnlfa2V5LmpzCkBAIC0yOSw2ICsyOSw3IEBAIGRl
ZmluZSgncGdhZG1pbi5ub2RlLnByaW1hcnlfa2V5JywgWwogICAgICAgcGFyZW50X3R5cGU6IFsn
dGFibGUnLCdwYXJ0aXRpb24nXSwKICAgICAgIGNhbkRyb3A6IHRydWUsCiAgICAgICBjYW5Ecm9w
Q2FzY2FkZTogdHJ1ZSwKKyAgICAgIHVybF9qdW1wX2FmdGVyX25vZGU6ICdzY2hlbWEnLAogICAg
ICAgSW5pdDogZnVuY3Rpb24oKSB7CiAgICAgICAgIC8qIEF2b2lkIG11bHRpcGxlIHJlZ2lzdHJh
dGlvbiBvZiBtZW51cyAqLwogICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKZGlmZiAtLWdp
dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z
Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3N0YXRpYy9qcy91bmlx
dWVfY29uc3RyYWludC5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2
ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50
L3N0YXRpYy9qcy91bmlxdWVfY29uc3RyYWludC5qcwppbmRleCA5ZGFjMjIwMjguLmZiZWM3Yjhm
YyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv
ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvc3Rh
dGljL2pzL3VuaXF1ZV9jb25zdHJhaW50LmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy
dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9p
bmRleF9jb25zdHJhaW50L3N0YXRpYy9qcy91bmlxdWVfY29uc3RyYWludC5qcwpAQCAtMjksNiAr
MjksNyBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS51bmlxdWVfY29uc3RyYWludCcsIFsKICAgICAg
IHBhcmVudF90eXBlOiBbJ3RhYmxlJywncGFydGl0aW9uJ10sCiAgICAgICBjYW5Ecm9wOiB0cnVl
LAogICAgICAgY2FuRHJvcENhc2NhZGU6IHRydWUsCisgICAgICB1cmxfanVtcF9hZnRlcl9ub2Rl
OiAnc2NoZW1hJywKICAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAvKiBBdm9pZCBt
dWx0aXBsZSByZWdpc3RyYXRpb24gb2YgbWVudXMgKi8KICAgICAgICAgaWYgKHRoaXMuaW5pdGlh
bGl6ZWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy
dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvc3RhdGljL2pzL2NvbnN0
cmFpbnRzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0
YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL3N0YXRpYy9qcy9jb25zdHJhaW50cy5q
cwppbmRleCA2MGMyYjNlOTguLjc2MzRmN2E5MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv
d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0
cmFpbnRzL3N0YXRpYy9qcy9jb25zdHJhaW50cy5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy
L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu
dHMvc3RhdGljL2pzL2NvbnN0cmFpbnRzLmpzCkBAIC0zMyw2ICszMyw3IEBAIGRlZmluZSgncGdh
ZG1pbi5ub2RlLmNvbnN0cmFpbnRzJywgWwogICAgICAgbGFiZWw6IGdldHRleHQoJ0NvbnN0cmFp
bnRzJyksCiAgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLWNvbnN0cmFpbnRzJywKICAgICAg
IHBhcmVudF90eXBlOiBbJ3RhYmxlJywncGFydGl0aW9uJ10sCisgICAgICB1cmxfanVtcF9hZnRl
cl9ub2RlOiAnc2NoZW1hJywKICAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAvKiBB
dm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2YgbWVudXMgKi8KICAgICAgICAgaWYgKHRoaXMu
aW5pdGlhbGl6ZWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91
cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy9zdGF0aWMvanMvaW5k
ZXguanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz
ZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy9zdGF0aWMvanMvaW5kZXguanMKaW5kZXggMWYyMTFi
NTI3Li5kZjJhNzE4NGEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy
b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3N0YXRpYy9qcy9p
bmRleC5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k
YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy9zdGF0aWMvanMvaW5kZXguanMKQEAgLTky
LDYgKzkyLDcgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuaW5kZXgnLCBbCiAgICAgICAgICAgcmV0
dXJuICEobS5pblNjaGVtYVdpdGhNb2RlbENoZWNrLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwog
ICAgICAgICB9LAogICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ICdn
ZXRfY29sbGF0aW9ucycsIG5vZGU6ICdpbmRleCcsCisgICAgICAgIHVybF9qdW1wX2FmdGVyX25v
ZGU6ICdzY2hlbWEnLAogICAgICAgfSx7CiAgICAgICAgIGlkOiAnb3BfY2xhc3MnLCBsYWJlbDog
Z2V0dGV4dCgnT3BlcmF0b3IgY2xhc3MnKSwKICAgICAgICAgY2VsbDogTm9kZUFqYXhPcHRpb25z
RGVwc0NlbGwsIHRhZ3M6IHRydWUsCkBAIC0xMDYsNiArMTA3LDcgQEAgZGVmaW5lKCdwZ2FkbWlu
Lm5vZGUuaW5kZXgnLCBbCiAgICAgICAgICAgcmV0dXJuICEobS5jaGVja0FjY2Vzc01ldGhvZC5h
cHBseSh0aGlzLCBhcmd1bWVudHMpKTsKICAgICAgICAgfSwKICAgICAgICAgY29udHJvbDogJ25v
ZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X29wX2NsYXNzJywgbm9kZTogJ2luZGV4JywKKyAg
ICAgICAgdXJsX2p1bXBfYWZ0ZXJfbm9kZTogJ3NjaGVtYScsCiAgICAgICAgIGRlcHM6IFsnYW1u
YW1lJ10sIHRyYW5zZm9ybTogZnVuY3Rpb24oZGF0YSwgY29udHJvbCkgewogICAgICAgICAgIC8q
IFdlIG5lZWQgdG8gZXh0cmFjdCBkYXRhIGZyb20gY29sbGVjdGlvbiBhY2NvcmRpbmcKICAgICAg
ICAgICAgKiB0byBhY2Nlc3MgbWV0aG9kIHNlbGVjdGVkIGJ5IHVzZXIgaWYgbm90IHNlbGVjdGVk
CkBAIC0yMzIsNiArMjM0LDcgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuaW5kZXgnLCBbCiAgICAg
ICBoYXNTdGF0aXN0aWNzOiB0cnVlLAogICAgICAgd2lkdGg6IHBnQnJvd3Nlci5zdGRXLm1kICsg
J3B4JywKICAgICAgIHN0YXRzUHJldHRpZnlGaWVsZHM6IFtnZXR0ZXh0KCdTaXplJyksIGdldHRl
eHQoJ0luZGV4IHNpemUnKV0sCisgICAgICB1cmxfanVtcF9hZnRlcl9ub2RlOiAnc2NoZW1hJywK
ICAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSByZWdp
c3RyYXRpb24gb2YgbWVudXMgKi8KICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCkBAIC0z
MDgsNiArMzExLDcgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuaW5kZXgnLCBbCiAgICAgICAgICAg
aWQ6ICdhbW5hbWUnLCBsYWJlbDogZ2V0dGV4dCgnQWNjZXNzIE1ldGhvZCcpLCBjZWxsOiAnc3Ry
aW5nJywKICAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVh
dGUnLCAnZWRpdCddLAogICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWFXaXRoTW9kZWxDaGVj
aycsIHVybDogJ2dldF9hY2Nlc3NfbWV0aG9kcycsCisgICAgICAgICAgdXJsX2p1bXBfYWZ0ZXJf
bm9kZTogJ3NjaGVtYScsCiAgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwg
c2VsZWN0MjogeydhbGxvd0NsZWFyJzogdHJ1ZX0sCiAgICAgICAgICAgY29udHJvbDogQmFja2Zv
cm0uTm9kZUFqYXhPcHRpb25zQ29udHJvbC5leHRlbmQoewogICAgICAgICAgICAgLy8gV2hlbiBh
Y2Nlc3MgbWV0aG9kIGNoYW5nZXMgd2UgbmVlZCB0byBjbGVhciBjb2x1bW5zIGNvbGxlY3Rpb24K
ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh
dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy9zdGF0aWMvanMvcnVsZS5qcyBiL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl
cy9ydWxlcy9zdGF0aWMvanMvcnVsZS5qcwppbmRleCA3ZDY2ZDkxMTYuLjYyNGI5ODgwNiAxMDA2
NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh
c2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3N0YXRpYy9qcy9ydWxlLmpzCisrKyBiL3dlYi9wZ2Fk
bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl
cy9ydWxlcy9zdGF0aWMvanMvcnVsZS5qcwpAQCAtNzEsNiArNzEsNyBAQCBkZWZpbmUoJ3BnYWRt
aW4ubm9kZS5ydWxlJywgWwogICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
ICB9LAorICAgICAgdXJsX2p1bXBfYWZ0ZXJfbm9kZTogJ3NjaGVtYScsCiAgICAgICBJbml0OiBm
dW5jdGlvbigpIHsKIAogICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2Yg
bWVudXMgKi8KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z
ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9zdGF0aWMvanMvdHJpZ2dl
ci5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl
cy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9zdGF0aWMvanMvdHJpZ2dlci5qcwppbmRleCAzYWI2
MDcyYzMuLmMzOTBhODM1MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf
Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3N0YXRpYy9q
cy90cmlnZ2VyLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2
ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9zdGF0aWMvanMvdHJpZ2dlci5q
cwpAQCAtNDIsNiArNDIsNyBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS50cmlnZ2VyJywgWwogICAg
ICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVydHJpZ2dlci5odG1sJywKICAgICAgIHNxbENyZWF0
ZUhlbHA6ICdzcWwtY3JlYXRldHJpZ2dlci5odG1sJywKICAgICAgIGRpYWxvZ0hlbHA6IHVybF9m
b3IoJ2hlbHAuc3RhdGljJywgeydmaWxlbmFtZSc6ICd0cmlnZ2VyX2RpYWxvZy5odG1sJ30pLAor
ICAgICAgdXJsX2p1bXBfYWZ0ZXJfbm9kZTogJ3NjaGVtYScsCiAgICAgICBJbml0OiBmdW5jdGlv
bigpIHsKICAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICov
CiAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQpAQCAtMzE1LDcgKzMxNiw3IEBAIGRlZmlu
ZSgncGdhZG1pbi5ub2RlLnRyaWdnZXInLCBbCiAgICAgICAgICAgaWQ6ICd0ZnVuY3Rpb24nLCBs
YWJlbDogZ2V0dGV4dCgnVHJpZ2dlciBmdW5jdGlvbicpLAogICAgICAgICAgIHR5cGU6ICd0ZXh0
JywgZGlzYWJsZWQ6ICdpblNjaGVtYVdpdGhNb2RlbENoZWNrJywKICAgICAgICAgICBtb2RlOiBb
J2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlv
bicpLAotICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF90
cmlnZ2VyZnVuY3Rpb25zJywKKyAgICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMn
LCB1cmw6ICdnZXRfdHJpZ2dlcmZ1bmN0aW9ucycsIHVybF9qdW1wX2FmdGVyX25vZGU6ICdzY2hl
bWEnLAogICAgICAgICAgIGNhY2hlX25vZGU6ICd0cmlnZ2VyX2Z1bmN0aW9uJywKICAgICAgICAg
fSx7CiAgICAgICAgICAgaWQ6ICd0Z2FyZ3MnLCBsYWJlbDogZ2V0dGV4dCgnQXJndW1lbnRzJyks
IGNlbGw6ICdzdHJpbmcnLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMv
anMvbm9kZS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUuanMKaW5kZXgg
MTc5MjAzN2M2Li5iMjljOThhZDMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3Rh
dGljL2pzL25vZGUuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZS5q
cwpAQCAtMjgxLDcgKzI4MSw3IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyLm5vZGUnLCBbCiAg
ICAgICBpZiAodGhpcy5tb2RlbCkgewogICAgICAgICAvLyBUaGlzIHdpbGwgYmUgdGhlIFVSTCwg
dXNlZCBmb3Igb2JqZWN0IG1hbmlwdWxhdGlvbi4KICAgICAgICAgLy8gaS5lLiBDcmVhdGUsIFVw
ZGF0ZSBpbiB0aGVzZSBjYXNlcwotICAgICAgICB2YXIgdXJsQmFzZSA9IHRoaXMuZ2VuZXJhdGVf
dXJsKGl0ZW0sIHR5cGUsIG5vZGUsIGZhbHNlKTsKKyAgICAgICAgdmFyIHVybEJhc2UgPSB0aGlz
LmdlbmVyYXRlX3VybChpdGVtLCB0eXBlLCBub2RlLCBmYWxzZSwgbnVsbCwgdGhhdC51cmxfanVt
cF9hZnRlcl9ub2RlKTsKIAogICAgICAgICBpZiAoIXVybEJhc2UpCiAgICAgICAgICAgLy8gQXNo
YW1lZCBvZiBteXNlbGYsIEkgZG9uJ3Qga25vdyBob3cgdG8gbWFuaXB1bGF0ZSB0aGlzCkBAIC0x
Njk4LDExICsxNjk4LDE0IEBAIGRlZmluZSgncGdhZG1pbi5icm93c2VyLm5vZGUnLCBbCiAgICAg
ICogICB0eXBlOiAgQ3JlYXRlL2Ryb3AvZWRpdC9wcm9wZXJ0aWVzL3NxbC9kZXBlbmRzL3N0YXRp
c3RpY3MKICAgICAgKiAgIGQ6ICAgICBQcm92aWRlIHRoZSBJdGVtRGF0YSBmb3IgdGhlIGN1cnJl
bnQgaXRlbSBub2RlCiAgICAgICogICB3aXRoX2lkOiBSZXF1aXJlZCBpZCBpbmZvcm1hdGlvbiBh
dCB0aGUgZW5kPwotICAgICAqCisgICAgICogICBqdW1wX2FmdGVyX25vZGU6IFRoaXMgd2lsbCBz
a2lwIGFsbCB0aGUgdmFsdWUgYmV0d2VlbiBqdW1wX2FmdGVyX25vZGUKKyAgICAgKiAgIHRvIHRo
ZSBsYXN0IG5vZGUsIGV4Y2x1ZGluZyBqdW1wX2FmdGVyX25vZGUgYW5kIHRoZSBsYXN0IG5vZGUu
IFRoaXMgaXMgcGFydGljdWxhcmx5CisgICAgICogICBoZWxwZnVsIGluIHBhcnRpdGlvbiB0YWJs
ZSB3aGVyZSB3ZSBuZWVkIHRvIHNraXAgcGFyZW50IHRhYmxlIE9JRCBvZiBhIHBhcnRpdGlvbmVk
CisgICAgICogICB0YWJsZSBpbiBVUkwgZm9ybWF0aW9uLiBQYXJ0aXRpb25lZCB0YWJsZSBpdHNl
bGYgaXMgYSAidGFibGUiIGFuZCBjYW4gYmUgbXVsdGlsZXZlbAogICAgICAqIFN1cHBvcnRzIHVy
bCBnZW5lcmF0aW9uIGZvciBjcmVhdGUsIGRyb3AsIGVkaXQsIHByb3BlcnRpZXMsIHNxbCwKICAg
ICAgKiBkZXBlbmRzLCBzdGF0aXN0aWNzCiAgICAgICovCi0gICAgZ2VuZXJhdGVfdXJsOiBmdW5j
dGlvbihpdGVtLCB0eXBlLCBkLCB3aXRoX2lkLCBpbmZvKSB7CisgICAgZ2VuZXJhdGVfdXJsOiBm
dW5jdGlvbihpdGVtLCB0eXBlLCBkLCB3aXRoX2lkLCBpbmZvLCBqdW1wX2FmdGVyX25vZGUpIHsK
ICAgICAgIHZhciBvcFVSTCA9IHsKICAgICAgICAgICAnY3JlYXRlJzogJ29iaicsCiAgICAgICAg
ICAgJ2Ryb3AnOiAnb2JqJywKQEAgLTE3MzUsOSArMTczOCwxNiBAQCBkZWZpbmUoJ3BnYWRtaW4u
YnJvd3Nlci5ub2RlJywgWwogICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICB9CisKKyAg
ICAgIGxldCBqdW1wX2FmdGVyX3ByaW9yaXR5ID0gcHJpb3JpdHk7CisgICAgICBpZihqdW1wX2Fm
dGVyX25vZGUgJiYgdHJlZUluZm9banVtcF9hZnRlcl9ub2RlXSkgeworICAgICAgICBqdW1wX2Fm
dGVyX3ByaW9yaXR5ID0gdHJlZUluZm9banVtcF9hZnRlcl9ub2RlXS5wcmlvcml0eTsKKyAgICAg
IH0KKwogICAgICAgdmFyIG5vZGVQaWNrRnVuY3Rpb24gPSBmdW5jdGlvbih0cmVlSW5mb1ZhbHVl
KSB7Ci0gICAgICAgIHJldHVybiAodHJlZUluZm9WYWx1ZS5wcmlvcml0eSA8PSBwcmlvcml0eSk7
CisgICAgICAgIHJldHVybiAodHJlZUluZm9WYWx1ZS5wcmlvcml0eSA8PSBqdW1wX2FmdGVyX3By
aW9yaXR5IHx8IHRyZWVJbmZvVmFsdWUucHJpb3JpdHkgPT0gcHJpb3JpdHkpOwogICAgICAgfTsK
KwogICAgICAgcmV0dXJuIGdlbmVyYXRlVXJsLmdlbmVyYXRlX3VybChwZ0Jyb3dzZXIuVVJMLCB0
cmVlSW5mbywgYWN0aW9uVHlwZSwgc2VsZi50eXBlLCBub2RlUGlja0Z1bmN0aW9uLCBpdGVtSUQp
OwogICAgIH0sCiAgICAgLy8gQmFzZSBjbGFzcyBmb3IgTm9kZSBEYXRhIENvbGxlY3Rpb24KZGlm
ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUudWkuanMgYi93ZWIv
cGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLnVpLmpzCmluZGV4IGNkMTE5NDZmZC4uMjNj
MGQ5MTk1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLnVp
LmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUudWkuanMKQEAgLTEy
OCw3ICsxMjgsOCBAQCBkZWZpbmUoWwogICAgICAgICAgKi8KICAgICAgICAgdmFyIHNlbGYgPSB0
aGlzLAogICAgICAgICAgIHVybCA9IHNlbGYuZmllbGQuZ2V0KCd1cmwnKSB8fCBzZWxmLmRlZmF1
bHRzLnVybCwKLSAgICAgICAgICBtID0gc2VsZi5tb2RlbC50b3AgfHwgc2VsZi5tb2RlbDsKKyAg
ICAgICAgICBtID0gc2VsZi5tb2RlbC50b3AgfHwgc2VsZi5tb2RlbCwKKyAgICAgICAgICB1cmxf
anVtcF9hZnRlcl9ub2RlID0gc2VsZi5maWVsZC5nZXQoJ3VybF9qdW1wX2FmdGVyX25vZGUnKSB8
fCBudWxsOwogCiAgICAgICAgIC8vIEhtbSAtIHdlIGZvdW5kIHRoZSB1cmwgb3B0aW9uLgogICAg
ICAgICAvLyBUaGF0IG1lYW5zIC0gd2UgbmVlZHMgdG8gZmV0Y2ggdGhlIG9wdGlvbnMgZnJvbSB0
aGF0IG5vZGUuCkBAIC0xMzgsNyArMTM5LDcgQEAgZGVmaW5lKFsKICAgICAgICAgICAgIHdpdGhf
aWQgPSB0aGlzLmZpZWxkLmdldCgndXJsX3dpdGhfaWQnKSB8fCBmYWxzZSwKICAgICAgICAgICAg
IGZ1bGxfdXJsID0gbm9kZS5nZW5lcmF0ZV91cmwuYXBwbHkoCiAgICAgICAgICAgICAgIG5vZGUs
IFsKLSAgICAgICAgICAgICAgICBudWxsLCB1cmwsIHRoaXMuZmllbGQuZ2V0KCdub2RlX2RhdGEn
KSwgd2l0aF9pZCwgbm9kZV9pbmZvLAorICAgICAgICAgICAgICAgIG51bGwsIHVybCwgdGhpcy5m
aWVsZC5nZXQoJ25vZGVfZGF0YScpLCB3aXRoX2lkLCBub2RlX2luZm8sIHVybF9qdW1wX2FmdGVy
X25vZGUsCiAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgY2FjaGVfbGV2ZWwsCiAgICAg
ICAgICAgICBjYWNoZV9ub2RlID0gdGhpcy5maWVsZC5nZXQoJ2NhY2hlX25vZGUnKTsKQEAgLTM5
OSw5ICs0MDAsMTAgQEAgZGVmaW5lKFsKICAgICAgICAgICBub2RlID0gY29sdW1uLmdldCgnc2No
ZW1hX25vZGUnKSwKICAgICAgICAgICBub2RlX2luZm8gPSBjb2x1bW4uZ2V0KCdub2RlX2luZm8n
KSwKICAgICAgICAgICB3aXRoX2lkID0gY29sdW1uLmdldCgndXJsX3dpdGhfaWQnKSB8fCBmYWxz
ZSwKKyAgICAgICAgICB1cmxfanVtcF9hZnRlcl9ub2RlID0gdGhpcy5jb2x1bW4uZ2V0KCd1cmxf
anVtcF9hZnRlcl9ub2RlJykgfHwgbnVsbCwKICAgICAgICAgICBmdWxsX3VybCA9IG5vZGUuZ2Vu
ZXJhdGVfdXJsLmFwcGx5KAogICAgICAgICAgICAgbm9kZSwgWwotICAgICAgICAgICAgICBudWxs
LCB1cmwsIGNvbHVtbi5nZXQoJ25vZGVfZGF0YScpLCB3aXRoX2lkLCBub2RlX2luZm8sCisgICAg
ICAgICAgICAgIG51bGwsIHVybCwgY29sdW1uLmdldCgnbm9kZV9kYXRhJyksIHdpdGhfaWQsIG5v
ZGVfaW5mbywgdXJsX2p1bXBfYWZ0ZXJfbm9kZSwKICAgICAgICAgICAgIF0pLAogICAgICAgICAg
IGNhY2hlX2xldmVsLAogICAgICAgICAgIGNhY2hlX25vZGUgPSBjb2x1bW4uZ2V0KCdjYWNoZV9u
b2RlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2Zvcm0ucGdhZG1p
bi5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNrZm9ybS5wZ2FkbWluLmpzCmluZGV4IGVi
MDgyMTI4NC4uZWRhMmIxYTE3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFj
a2Zvcm0ucGdhZG1pbi5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2Zvcm0ucGdh
ZG1pbi5qcwpAQCAtMTgxMSw3ICsxODExLDcgQEAgZGVmaW5lKFsKICAgICAgICAgICAgICAgbXNx
bF91cmwgPSBub2RlLmdlbmVyYXRlX3VybC5hcHBseSgKICAgICAgICAgICAgICAgICBub2RlLCBb
CiAgICAgICAgICAgICAgICAgICBudWxsLCAnbXNxbCcsIHRoaXMuZmllbGQuZ2V0KCdub2RlX2Rh
dGEnKSwgIXNlbGYubW9kZWwuaXNOZXcoKSwKLSAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQu
Z2V0KCdub2RlX2luZm8nKSwKKyAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuZ2V0KCdub2Rl
X2luZm8nKSwgbm9kZS51cmxfanVtcF9hZnRlcl9ub2RlLAogICAgICAgICAgICAgICAgIF0pOwog
CiAgICAgICAgICAgICAvLyBGZXRjaGluZyB0aGUgbW9kaWZpZWQgU1FMCg==
--000000000000fdce34059a859347--