<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>175053</bug_id>
          
          <creation_ts>2017-08-01 15:39:43 -0700</creation_ts>
          <short_desc>Import WPT service worker tests</short_desc>
          <delta_ts>2017-08-03 14:19:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174541</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jond</cc>
    
    <cc>mike</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1333996</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-01 15:39:43 -0700</bug_when>
    <thetext>Import WPT service worker tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334012</commentid>
    <comment_count>1</comment_count>
      <attachid>316907</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-01 16:01:39 -0700</bug_when>
    <thetext>Created attachment 316907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334869</commentid>
    <comment_count>2</comment_count>
      <attachid>316907</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-03 12:08:08 -0700</bug_when>
    <thetext>Comment on attachment 316907
Patch

I&apos;m assuming that very little here is manual work and most of it is part of the automated import.

Manual work being TestExpectations, import-expectations.json, and resource-files.json.

If that&apos;s accurate, rubberstamp=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334887</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-03 12:37:27 -0700</bug_when>
    <thetext>(In reply to Brady Eidson from comment #2)
&gt; Comment on attachment 316907 [details]
&gt; Patch
&gt; 
&gt; I&apos;m assuming that very little here is manual work and most of it is part of
&gt; the automated import.
&gt; 
&gt; Manual work being TestExpectations, import-expectations.json, and
&gt; resource-files.json.
&gt; 
&gt; If that&apos;s accurate, rubberstamp=me

Right, except import-expectations.json which is also automatically updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334911</commentid>
    <comment_count>4</comment_count>
      <attachid>316907</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-03 13:21:43 -0700</bug_when>
    <thetext>Comment on attachment 316907
Patch

Clearing flags on attachment: 316907

Committed r220223: &lt;http://trac.webkit.org/changeset/220223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334912</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-03 13:21:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334913</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-03 13:22:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/33707230&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316907</attachid>
            <date>2017-08-01 16:01:39 -0700</date>
            <delta_ts>2017-08-03 13:21:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175053-20170801160138.patch</filename>
            <type>text/plain</type>
            <size>1097331</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDU5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjZlNDI3YWRjY2ZhZTIzMmY5Nzk4
Y2RjNjE5YTdmMGM1ZGUzNjBmMS4uMzQwMmFiOWU2MTVkMjc0ZDkwZjUyN2Q3NDI2ODQ2NGIyMDQ0
ODhjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTA4LTAxICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQgV1BUIHNlcnZpY2Ugd29ya2VyIHRl
c3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUw
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6IHNraXBwaW5nIHNlcnZpY2Ugd29ya2VyIHRlc3RzLgorCiAyMDE3LTA3
LTMxICBNczJnZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBMYXlvdXQg
dGVzdCBmYXN0L2Nzcy9pbWFnZS1zZXQtdW5wcmVmaXhlZC5odG1sIGlzIGZhaWxpbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDI5ZWNlYjkyMzk1NmY2MGFmZDVkNGM5NmYzYTkx
MTU1NmRmOGEwMjcuLjA3OTUyNDI4MTkwY2U4YTIyOWQwNGQwY2Y5YmE2Zjc5OTM4YjBiMTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA4LTAx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQgV1BU
IHNlcnZpY2Ugd29ya2VyIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzUwNTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBvcnRpbmcgc2VydmljZS13b3JrZXIgdGVzdHMgdXAgdG8gY2ZkZmI0
ODMyOWIyMGUxOWI2NDkyYTMxN2FjNTE4MWE5OTUwNmZkMi4KKworICAgICAgICAqIHJlc291cmNl
cy9yZXNvdXJjZS1maWxlcy5qc29uOgorICAgICAgICAqIHJlc291cmNlcy9pbXBvcnQtZXhwZWN0
YXRpb25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy86CisKIDIwMTctMDctMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBbV2ViSURMXSBSZW1vdmUgSlMgYnVpbHRpbiBiaW5kaW5ncyBmb3IgRmV0Y2hSZXF1ZXN0LCBE
T01XaW5kb3dGZXRjaCBhbmQgV29ya2VyR2xvYmFsU2NvcGVGZXRjaApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMzk3ODFlODczYjIxNzZmYTgzZjJjZGNlMWMxNTRlNjA3ZDQwZmNiYi4uMWY3OGZkY2U2
NTBkYWJmZTkzYzMyMjBhM2EwYzE4YjUwNmRjY2I5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
MTUsNiArMTE1LDkgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZWN1cmUtY29u
dGV4dHMvYmFzaWMtc2hhcmVkLXdvcmtlci5odHRwcy5odG1sIFsKIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VjdXJlLWNvbnRleHRzL3NoYXJlZC13b3JrZXItaW5zZWN1cmUtZmly
c3QuaHR0cHMuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZWN1cmUtY29udGV4dHMvc2hhcmVkLXdvcmtlci1zZWN1cmUtZmlyc3QuaHR0cHMuaHRtbCBbIFNr
aXAgXQogCisjIFNlcnZpY2UgV29ya2VycyBhcmUgdW5zdXBwb3J0ZWQgICAgICAgIAoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMgWyBTa2lwIF0KKwogIy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgcGxhdGZvcm0tc3BlY2lmaWMg
dGVzdHMuCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNv
biBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9u
cy5qc29uCmluZGV4IGU2MGE4OTU5NWE0Yjg0NWQ0OWZkOTRhYjVjNDJmM2Y3NTRmMDU5NzEuLmVj
NzQwOWMwZDM1YWUwMjUzMzU5NTk4ZmQ2NDQ2YWRiOGNjOTg1ZWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9u
cy5qc29uCkBAIC0yNjcsNyArMjY3LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlbGVj
dG9ycyI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zZWxlY3RvcnMtYXBpIjog
InNraXAiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZlci10aW1pbmciOiAic2tpcCIs
IAotICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzIjogInNraXAiLCAKKyAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3NoYWRvdy1kb20iOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9zaGFkb3ctZG9tL3VudHJpYWdlZCI6ICJza2lwIiwgCiAgICAgIndlYi1wbGF0
Zm9ybS10ZXN0cy9zdGF0aWNyYW5nZSI6ICJza2lwIiwgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL3Jlc291cmNlLWZpbGVzLmpzb24KaW5kZXggOTMxYzk4
NWE5MWI2ZmM4MWFhMTEwNTZkYmFlMjJiOGExZmJmYzUwOS4uZWJmYTYxMTU3N2I1ZmYyZjlkZGY5
N2QwNmFhZjllY2E1MDMzNTE2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3Jlc291cmNlcy9yZXNvdXJjZS1maWxlcy5qc29uCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9yZXNvdXJjZXMvcmVzb3VyY2UtZmlsZXMuanNvbgpAQCAtOSw3ICs5LDYgQEAKICAgICAg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9u
LWludGVyZmFjZS9ub24tYXV0b21hdGVkIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3Rvb2xzIiwKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9pbWFnZXMiLAotICAgICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2VycyIsCiAgICAgICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMiCiAgICAgXSwKICAgICAiZmlsZXMiOiBbCkBAIC0zMDEsNCArMzAw
LDQgQEAKICAgICAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90ZXN0X2tleXNfd2RzcGVjLmh0bWwi
LAogICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMv
c3VwcG9ydC9wb3N0LW9yaWdpbi10by1wYXJlbnQuaHRtbCIKICAgICBdCi19ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvT1dORVJTIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvT1dORVJTCmlu
ZGV4IGUyMTBiOGYyZDRjYjc5YzViOGNiYzE0NGU3ZDZjZGVhOTg0YTA5ZTEuLmY0MjkzNjQyYzRi
YjFhN2IxNTE4NGYwNzhjZDNhZWI2ZDkzNmIwMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL09XTkVSUworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9PV05FUlMKQEAgLTEgKzEsMyBAQAogQGVoc2FuCitAbWtydWlzc2VsYnJpbmsKK0BtYXR0
dG8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvY29tbW9uLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9j
YWNoZS1zdG9yYWdlL2NvbW1vbi5odHRwcy5odG1sCmluZGV4IGQ1ZjdkMjQ5MTE2OTNiYTU5OWU0
NTk0OWQ3OGZhMmExOTMwOTBlMWUuLmMwNmUxZjEzYTY3ZjE0NWM1ZDBiZmIzYjA1NTUyMzZkYjUx
NWQzZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvY29tbW9uLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS9jb21tb24uaHR0cHMuaHRtbApAQCAtMSwxMCArMSw5IEBACiA8
IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZSBTdG9yYWdlOiBWZXJpZnkgdGhhdCBXaW5kb3cg
YW5kIFdvcmtlcnMgc2VlIHNhbWUgc3RvcmFnZTwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2
aWNlX3dvcmtlci8jY2FjaGUtc3RvcmFnZSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1zdG9yYWdlIj4KIDxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIHdhaXRfZm9y
X21lc3NhZ2Uod29ya2VyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3Jlc291cmNl
cy90ZXN0LWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3Jlc291cmNlcy90ZXN0LWhlbHBl
cnMuanMKaW5kZXggZjQxNDVlNjIxN2Y1ZmU0ZDdjZTdjMWM4MTI0YzIzNDgzOGIwYzk4NS4uMDUw
YWMwYjU0MjQ1NWNlYjUzZWQzNjAzOGFmNWI5YjA4MTA5NzdjZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLmpzCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2UvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5qcwpAQCAtMzIsNyArMzIsNyBAQAogZnVuY3Rpb24g
Y2FjaGVfdGVzdCh0ZXN0X2Z1bmN0aW9uLCBkZXNjcmlwdGlvbikgewogICBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odGVzdCkgewogICAgICAgcmV0dXJuIGNyZWF0ZV90ZW1wb3JhcnlfY2FjaGUodGVz
dCkKLSAgICAgICAgLnRoZW4odGVzdF9mdW5jdGlvbik7CisgICAgICAgIC50aGVuKGZ1bmN0aW9u
KGNhY2hlKSB7IHJldHVybiB0ZXN0X2Z1bmN0aW9uKGNhY2hlLCB0ZXN0KTsgfSk7CiAgICAgfSwg
ZGVzY3JpcHRpb24pOwogfQogCkBAIC0xNDEsMjMgKzE0MSwyNiBAQCB2YXIgdmFyeV9lbnRyaWVz
ID0gWwogLy8gUnVuIHx0ZXN0X2Z1bmN0aW9ufCB3aXRoIGEgQ2FjaGUgb2JqZWN0IGFuZCBhIG1h
cCBvZiBlbnRyaWVzLiBQcmlvciB0byB0aGUKIC8vIGNhbGwsIHRoZSBDYWNoZSBpcyBwb3B1bGF0
ZWQgYnkgY2FjaGUgZW50cmllcyBmcm9tIHxlbnRyaWVzfC4gVGhlIGxhdHRlciBpcwogLy8gZXhw
ZWN0ZWQgdG8gYmUgYW4gT2JqZWN0IG1hcHBpbmcgYXJiaXRyYXJ5IGtleXMgdG8gb2JqZWN0cyBv
ZiB0aGUgZm9ybQotLy8ge3JlcXVlc3Q6IDxSZXF1ZXN0IG9iamVjdD4sIHJlc3BvbnNlOiA8UmVz
cG9uc2Ugb2JqZWN0Pn0uIFRoZXJlJ3Mgbm8KLS8vIGd1YXJhbnRlZSBvbiB0aGUgb3JkZXIgaW4g
d2hpY2ggZW50cmllcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBjYWNoZS4KKy8vIHtyZXF1ZXN0OiA8
UmVxdWVzdCBvYmplY3Q+LCByZXNwb25zZTogPFJlc3BvbnNlIG9iamVjdD59LiBFbnRyaWVzIGFy
ZQorLy8gc2VyaWFsbHkgYWRkZWQgdG8gdGhlIGNhY2hlIGluIHRoZSBvcmRlciBzcGVjaWZpZWQu
CiAvLwogLy8gfHRlc3RfZnVuY3Rpb258IHNob3VsZCByZXR1cm4gYSBQcm9taXNlIHRoYXQgY2Fu
IGJlIHVzZWQgd2l0aCBwcm9taXNlX3Rlc3QuCiBmdW5jdGlvbiBwcmVwb3B1bGF0ZWRfY2FjaGVf
dGVzdChlbnRyaWVzLCB0ZXN0X2Z1bmN0aW9uLCBkZXNjcmlwdGlvbikgewogICBjYWNoZV90ZXN0
KGZ1bmN0aW9uKGNhY2hlKSB7CiAgICAgICB2YXIgcCA9IFByb21pc2UucmVzb2x2ZSgpOwogICAg
ICAgdmFyIGhhc2ggPSB7fTsKLSAgICAgIHJldHVybiBQcm9taXNlLmFsbChlbnRyaWVzLm1hcChm
dW5jdGlvbihlbnRyeSkgeworICAgICAgZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKGVudHJ5KSB7
CiAgICAgICAgICAgaGFzaFtlbnRyeS5uYW1lXSA9IGVudHJ5OwotICAgICAgICAgIHJldHVybiBj
YWNoZS5wdXQoZW50cnkucmVxdWVzdC5jbG9uZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW50cnkucmVzcG9uc2UuY2xvbmUoKSkKLSAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihl
KSB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKLSAgICAgICAgICAgICAgICAg
ICdUZXN0IHNldHVwIGZhaWxlZCBmb3IgZW50cnkgJyArIGVudHJ5Lm5hbWUgKyAnOiAnICsgZSk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSkpCisgICAgICAgICAgcCA9IHAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dChlbnRyeS5yZXF1ZXN0LmNs
b25lKCksIGVudHJ5LnJlc3BvbnNlLmNsb25lKCkpCisgICAgICAgICAgICAgICAgICAuY2F0Y2go
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICdUZXN0IHNldHVwIGZhaWxlZCBmb3IgZW50cnkgJyAr
IGVudHJ5Lm5hbWUgKyAnOiAnICsgZQorICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICB9KTsKKyAgICAgIH0pOworICAgICAgcmV0dXJuIHAK
ICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKE9i
amVjdC5rZXlzKGhhc2gpLmxlbmd0aCwgZW50cmllcy5sZW5ndGgpOwogICAgICAgICB9KQpAQCAt
MjM1LDMgKzIzOCwzNSBAQCBmdW5jdGlvbiBhc3NlcnRfcmVzcG9uc2VfaW5fYXJyYXkoYWN0dWFs
LCBleHBlY3RlZF9hcnJheSwgZGVzY3JpcHRpb24pIHsKICAgICAgICAgfQogICAgIH0pLCBkZXNj
cmlwdGlvbik7CiB9CisKKy8vIEhlbHBlciBmb3IgdGVzdGluZyB3aXRoIFJlcXVlc3Qgb2JqZWN0
cy4gQ29tcGFyZXMgc2ltcGxlCisvLyBhdHRyaWJ1dGVzIGRlZmluZWQgb24gdGhlIGludGVyZmFj
ZXMsIGFzIHdlbGwgYXMgdGhlIGhlYWRlcnMuCitmdW5jdGlvbiBhc3NlcnRfcmVxdWVzdF9lcXVh
bHMoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pIHsKKyAgICBhc3NlcnRfY2xhc3Nfc3Ry
aW5nKGFjdHVhbCwgIlJlcXVlc3QiLCBkZXNjcmlwdGlvbik7CisgICAgWyJ1cmwiXS5mb3JFYWNo
KGZ1bmN0aW9uKGF0dHJpYnV0ZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbFthdHRy
aWJ1dGVdLCBleHBlY3RlZFthdHRyaWJ1dGVdLAorICAgICAgICAgICAgICAgICAgICAgIGRlc2Ny
aXB0aW9uICsgIiBBdHRyaWJ1dGVzIGRpZmZlcjogIiArIGF0dHJpYnV0ZSArICIuIik7CisgICAg
fSk7CisgICAgYXNzZXJ0X2hlYWRlcl9lcXVhbHMoYWN0dWFsLmhlYWRlcnMsIGV4cGVjdGVkLmhl
YWRlcnMsIGRlc2NyaXB0aW9uKTsKK30KKworLy8gQXNzZXJ0cyB0aGF0IHR3byBhcnJheXMgfGFj
dHVhbHwgYW5kIHxleHBlY3RlZHwgY29udGFpbiB0aGUgc2FtZQorLy8gc2V0IG9mIFJlcXVlc3Rz
IGFzIGRldGVybWluZWQgYnkgYXNzZXJ0X3JlcXVlc3RfZXF1YWxzKCkuIFRoZQorLy8gY29ycmVz
cG9uZGluZyBlbGVtZW50cyBtdXN0IG9jY3VweSBjb3JyZXNwb25kaW5nIGluZGljZXMgaW4gdGhl
aXIKKy8vIHJlc3BlY3RpdmUgYXJyYXlzLgorZnVuY3Rpb24gYXNzZXJ0X3JlcXVlc3RfYXJyYXlf
ZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9uKSB7CisgICAgYXNzZXJ0X3RydWUo
QXJyYXkuaXNBcnJheShhY3R1YWwpLCBkZXNjcmlwdGlvbik7CisgICAgYXNzZXJ0X2VxdWFscyhh
Y3R1YWwubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsIGRlc2NyaXB0aW9uKTsKKyAgICBhY3R1YWwu
Zm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKKyAgICAgICAgYXNzZXJ0X3JlcXVlc3Rf
ZXF1YWxzKHZhbHVlLCBleHBlY3RlZFtpbmRleF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXNjcmlwdGlvbiArICIgOiBvYmplY3RbIiArIGluZGV4ICsgIl0iKTsKKyAgICB9KTsK
K30KKworLy8gRGVsZXRlcyBhbGwgY2FjaGVzLCByZXR1cm5pbmcgYSBwcm9taXNlIGluZGljYXRp
bmcgc3VjY2Vzcy4KK2Z1bmN0aW9uIGRlbGV0ZV9hbGxfY2FjaGVzKCkgeworICByZXR1cm4gc2Vs
Zi5jYWNoZXMua2V5cygpCisgICAgLnRoZW4oZnVuY3Rpb24oa2V5cykgeworICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKGtleXMubWFwKHNlbGYuY2FjaGVzLmRlbGV0ZS5iaW5kKHNlbGYuY2FjaGVz
KSkpOworICAgIH0pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLWhlbHBlcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0ODg1NzI3
YjMyMWM3MDRkY2I0MzRlZTlhZDcxNTgzMTI3MzUyOTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MtaGVscGVycy5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qCi0gKiB0
ZXN0aGFybmVzcy1oZWxwZXJzIGNvbnRhaW5zIHZhcmlvdXMgdXNlZnVsIGV4dGVuc2lvbnMgdG8g
dGVzdGhhcm5lc3MuanMgdG8KLSAqIGFsbG93IHRoZW0gdG8gYmUgdXNlZCBhY3Jvc3MgbXVsdGlw
bGUgdGVzdHMgYmVmb3JlIHRoZXkgaGF2ZSBiZWVuCi0gKiB1cHN0cmVhbWVkLiBUaGlzIGZpbGUg
aXMgaW50ZW5kZWQgdG8gYmUgdXNhYmxlIGZyb20gYm90aCBkb2N1bWVudCBhbmQgd29ya2VyCi0g
KiBlbnZpcm9ubWVudHMsIHNvIGNvZGUgc2hvdWxkIGZvciBleGFtcGxlIG5vdCByZWx5IG9uIHRo
ZSBET00uCi0gKi8KLQotLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBhZnRlciB0
aGUgcHJvdmlkZWQgfHByb21pc2V8IGlzIGZ1bGZpbGxlZC4KLS8vIFRoZSB8dGVzdHwgc3VjY2Vl
ZHMgb25seSBpZiB8cHJvbWlzZXwgcmVqZWN0cyB3aXRoIGFuIGV4Y2VwdGlvbiBtYXRjaGluZwot
Ly8gfGNvZGV8LiBBY2NlcHRlZCB2YWx1ZXMgZm9yIHxjb2RlfCBmb2xsb3cgdGhvc2UgYWNjZXB0
ZWQgZm9yIGFzc2VydF90aHJvd3MoKS4KLS8vIFRoZSBvcHRpb25hbCB8ZGVzY3JpcHRpb258IGRl
c2NyaWJlcyB0aGUgdGVzdCBiZWluZyBwZXJmb3JtZWQuCi0vLwotLy8gRS5nLjoKLS8vICAgYXNz
ZXJ0X3Byb21pc2VfcmVqZWN0cygKLS8vICAgICAgIG5ldyBQcm9taXNlKC4uLiksIC8vIHNvbWV0
aGluZyB0aGF0IHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uCi0vLyAgICAgICAnTm90Rm91bmRF
cnJvcicsCi0vLyAgICAgICAnU2hvdWxkIHRocm93IE5vdEZvdW5kRXJyb3IuJyk7Ci0vLwotLy8g
ICBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotLy8gICAgICAgbmV3IFByb21pc2UoLi4uKSwKLS8v
ICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKLS8vICAgICAgICdTaG91bGQgdGhyb3cgVHlwZUVycm9y
Jyk7Ci1mdW5jdGlvbiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKHByb21pc2UsIGNvZGUsIGRlc2Ny
aXB0aW9uKSB7Ci0gIHJldHVybiBwcm9taXNlLnRoZW4oCi0gICAgZnVuY3Rpb24oKSB7Ci0gICAg
ICB0aHJvdyAnYXNzZXJ0X3Byb21pc2VfcmVqZWN0czogJyArIGRlc2NyaXB0aW9uICsgJyBQcm9t
aXNlIGRpZCBub3QgcmVqZWN0Lic7Ci0gICAgfSwKLSAgICBmdW5jdGlvbihlKSB7Ci0gICAgICBp
ZiAoY29kZSAhPT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgIGFzc2VydF90aHJvd3MoY29kZSwgZnVu
Y3Rpb24oKSB7IHRocm93IGU7IH0sIGRlc2NyaXB0aW9uKTsKLSAgICAgIH0KLSAgICB9KTsKLX0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKaW5kZXggM2Y1YjJiOTJh
ZjViZGM4YmJmNTBhYzE0N2M1MDQ5MmVjMmYxZDVmYi4uZDQ2YmRmNTU0ZGFkZjdjODVjZWMwYzE5
YTM2ZjYyMmNlODIzZTU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9yZXNvdXJjZXMv
dzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9yZXNvdXJjZXMvdzNjLWltcG9y
dC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3
Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKIAogVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
QEAgLTIzLDQgKzIyLDMgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3Jlc291
cmNlcy9pZnJhbWUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2UvcmVzb3VyY2VzL3NpbXBsZS50eHQK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9jYWNoZS1zdG9yYWdlL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuanMKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1z
dG9yYWdlL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9j
YWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1hZGQuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3NjcmlwdC10ZXN0cy9jYWNoZS1hZGQuanMKaW5kZXggMDFmZDYwNWFkMzYzN2U4OThiM2RhODNh
NTc2ODU5MjFjNDQ0MTI1NC4uYzAzZmFlYjBlODM3MjNlYWI2NGU2NDhlNjAwYmEwNjEyODczZDQw
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtYWRkLmpz
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NhY2hlLWFkZC5qcwpAQCAtMSwx
MyArMSwxMyBAQAogaWYgKHNlbGYuaW1wb3J0U2NyaXB0cykgewogICAgIGltcG9ydFNjcmlwdHMo
Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKLSAgICBpbXBvcnRTY3JpcHRzKCcuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcycpOwogICAgIGltcG9ydFNjcmlwdHMoJy4uL3Jl
c291cmNlcy90ZXN0LWhlbHBlcnMuanMnKTsKIH0KIAotY2FjaGVfdGVzdChmdW5jdGlvbihjYWNo
ZSkgewotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAgY2FjaGUuYWRk
KCksCitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlLCB0ZXN0KSB7CisgICAgcmV0dXJuIHByb21p
c2VfcmVqZWN0cygKKyAgICAgIHRlc3QsCiAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBj
YWNoZS5hZGQoKSwKICAgICAgICdDYWNoZS5hZGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIHdo
ZW4gbm8gYXJndW1lbnRzIGFyZSBnaXZlbi4nKTsKICAgfSwgJ0NhY2hlLmFkZCBjYWxsZWQgd2l0
aCBubyBhcmd1bWVudHMnKTsKIApAQCAtMjksMTAgKzI5LDExIEBAIGNhY2hlX3Rlc3QoZnVuY3Rp
b24oY2FjaGUpIHsKICAgICAgICAgfSk7CiAgIH0sICdDYWNoZS5hZGQgY2FsbGVkIHdpdGggcmVs
YXRpdmUgVVJMIHNwZWNpZmllZCBhcyBhIHN0cmluZycpOwogCi1jYWNoZV90ZXN0KGZ1bmN0aW9u
KGNhY2hlKSB7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICBjYWNo
ZS5hZGQoJ2phdmFzY3JpcHQ6Ly90aGlzLWlzLW5vdC1odHRwLW1ta2F5JyksCitjYWNoZV90ZXN0
KGZ1bmN0aW9uKGNhY2hlLCB0ZXN0KSB7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cygKKyAg
ICAgIHRlc3QsCiAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBjYWNoZS5hZGQoJ2phdmFz
Y3JpcHQ6Ly90aGlzLWlzLW5vdC1odHRwLW1ta2F5JyksCiAgICAgICAnQ2FjaGUuYWRkIHNob3Vs
ZCB0aHJvdyBhIFR5cGVFcnJvciBmb3Igbm9uLUhUVFAvSFRUUFMgVVJMcy4nKTsKICAgfSwgJ0Nh
Y2hlLmFkZCBjYWxsZWQgd2l0aCBub24tSFRUUC9IVFRQUyBVUkwnKTsKIApAQCAtNDUsMTIgKzQ2
LDEzIEBAIGNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKICAgICAgICAgfSk7CiAgIH0sICdD
YWNoZS5hZGQgY2FsbGVkIHdpdGggUmVxdWVzdCBvYmplY3QnKTsKIAotY2FjaGVfdGVzdChmdW5j
dGlvbihjYWNoZSkgeworY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSwgdGVzdCkgewogICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJy4uL3Jlc291cmNlcy9zaW1wbGUudHh0JywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywgYm9keTogJ1RoaXMgaXMg
YSBib2R5Lid9KTsKLSAgICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgIGNh
Y2hlLmFkZChyZXF1ZXN0KSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdGVz
dCwKICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGNhY2hlLmFkZChyZXF1ZXN0KSwKICAg
ICAgICdDYWNoZS5hZGQgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIGZvciBub24tR0VUIHJlcXVl
c3RzLicpOwogICB9LCAnQ2FjaGUuYWRkIGNhbGxlZCB3aXRoIFBPU1QgcmVxdWVzdCcpOwogCkBA
IC04MSwzMyArODMsNTkgQEAgY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgewogICAgICAgICB9
KTsKICAgfSwgJ0NhY2hlLmFkZCB3aXRoIHJlcXVlc3Qgd2l0aCBudWxsIGJvZHkgKG5vdCBjb25z
dW1lZCknKTsKIAotY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgewotICAgIHJldHVybiBhc3Nl
cnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAgY2FjaGUuYWRkKCd0aGlzLWRvZXMtbm90LWV4aXN0
LXBsZWFzZS1kb250LWNyZWF0ZS1pdCcpLAorY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSwgdGVz
dCkgeworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMoCisgICAgICB0ZXN0LAorICAgICAgbmV3
IFR5cGVFcnJvcigpLAorICAgICAgY2FjaGUuYWRkKCcuLi9yZXNvdXJjZXMvZmV0Y2gtc3RhdHVz
LnB5P3N0YXR1cz0yMDYnKSwKKyAgICAgICdDYWNoZS5hZGQgc2hvdWxkIHJlamVjdCBvbiBwYXJ0
aWFsIHJlc3BvbnNlJyk7CisgIH0sICdDYWNoZS5hZGQgd2l0aCAyMDYgcmVzcG9uc2UnKTsKKwor
Y2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSwgdGVzdCkgeworICAgIHZhciB1cmxzID0gWycuLi9y
ZXNvdXJjZXMvZmV0Y2gtc3RhdHVzLnB5P3N0YXR1cz0yMDYnLAorICAgICAgICAgICAgICAgICcu
Li9yZXNvdXJjZXMvZmV0Y2gtc3RhdHVzLnB5P3N0YXR1cz0yMDAnXTsKKyAgICB2YXIgcmVxdWVz
dHMgPSB1cmxzLm1hcChmdW5jdGlvbih1cmwpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBSZXF1ZXN0
KHVybCk7CisgICAgICB9KTsKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdGVz
dCwKKyAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGNhY2hlLmFkZEFsbChyZXF1ZXN0cyks
CisgICAgICAnQ2FjaGUuYWRkQWxsIHNob3VsZCByZWplY3Qgd2l0aCBUeXBlRXJyb3IgaWYgYW55
IHJlcXVlc3QgZmFpbHMnKTsKKyAgfSwgJ0NhY2hlLmFkZEFsbCB3aXRoIDIwNiByZXNwb25zZScp
OworCitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlLCB0ZXN0KSB7CisgICAgcmV0dXJuIHByb21p
c2VfcmVqZWN0cygKKyAgICAgIHRlc3QsCiAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBj
YWNoZS5hZGQoJ3RoaXMtZG9lcy1ub3QtZXhpc3QtcGxlYXNlLWRvbnQtY3JlYXRlLWl0JyksCiAg
ICAgICAnQ2FjaGUuYWRkIHNob3VsZCByZWplY3QgaWYgcmVzcG9uc2UgaXMgIW9rJyk7CiAgIH0s
ICdDYWNoZS5hZGQgd2l0aCByZXF1ZXN0IHRoYXQgcmVzdWx0cyBpbiBhIHN0YXR1cyBvZiA0MDQn
KTsKIAotY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgewotICAgIHJldHVybiBhc3NlcnRfcHJv
bWlzZV9yZWplY3RzKAotICAgICAgY2FjaGUuYWRkKCcuLi9yZXNvdXJjZXMvZmV0Y2gtc3RhdHVz
LnBocD9zdGF0dXM9NTAwJyksCisKK2NhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUsIHRlc3QpIHsK
KyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdGVzdCwKICAgICAgIG5ldyBUeXBl
RXJyb3IoKSwKKyAgICAgIGNhY2hlLmFkZCgnLi4vcmVzb3VyY2VzL2ZldGNoLXN0YXR1cy5weT9z
dGF0dXM9NTAwJyksCiAgICAgICAnQ2FjaGUuYWRkIHNob3VsZCByZWplY3QgaWYgcmVzcG9uc2Ug
aXMgIW9rJyk7CiAgIH0sICdDYWNoZS5hZGQgd2l0aCByZXF1ZXN0IHRoYXQgcmVzdWx0cyBpbiBh
IHN0YXR1cyBvZiA1MDAnKTsKIAotY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgewotICAgIHJl
dHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAgY2FjaGUuYWRkQWxsKCksCitjYWNo
ZV90ZXN0KGZ1bmN0aW9uKGNhY2hlLCB0ZXN0KSB7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0
cygKKyAgICAgIHRlc3QsCiAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICBjYWNoZS5hZGRB
bGwoKSwKICAgICAgICdDYWNoZS5hZGRBbGwgd2l0aCBubyBhcmd1bWVudHMgc2hvdWxkIHRocm93
IFR5cGVFcnJvci4nKTsKICAgfSwgJ0NhY2hlLmFkZEFsbCB3aXRoIG5vIGFyZ3VtZW50cycpOwog
Ci1jYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hl
LCB0ZXN0KSB7CiAgICAgLy8gQXNzdW1lcyB0aGUgZXhpc3RlbmNlIG9mIC4uL3Jlc291cmNlcy9z
aW1wbGUudHh0IGFuZCAuLi9yZXNvdXJjZXMvYmxhbmsuaHRtbAogICAgIHZhciB1cmxzID0gWycu
Li9yZXNvdXJjZXMvc2ltcGxlLnR4dCcsIHVuZGVmaW5lZCwgJy4uL3Jlc291cmNlcy9ibGFuay5o
dG1sJ107Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICBjYWNoZS5h
ZGRBbGwoKSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdGVzdCwKICAgICAg
IG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGNhY2hlLmFkZEFsbCgpLAogICAgICAgJ0NhY2hlLmFk
ZEFsbCBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGZvciBhbiB1bmRlZmluZWQgYXJndW1lbnQuJyk7
CiAgIH0sICdDYWNoZS5hZGRBbGwgd2l0aCBhIG1peCBvZiB2YWxpZCBhbmQgdW5kZWZpbmVkIGFy
Z3VtZW50cycpOwogCkBAIC0yMDIsNyArMjMwLDcgQEAgY2FjaGVfdGVzdChmdW5jdGlvbihjYWNo
ZSkgewogICAgICAgICB9KTsKICAgfSwgJ0NhY2hlLmFkZEFsbCB3aXRoIFJlcXVlc3QgYXJndW1l
bnRzJyk7CiAKLWNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKK2NhY2hlX3Rlc3QoZnVuY3Rp
b24oY2FjaGUsIHRlc3QpIHsKICAgICAvLyBBc3N1bWVzIHRoYXQgLi4vcmVzb3VyY2VzL3NpbXBs
ZS50eHQgYW5kIC4uL3Jlc291cmNlcy9ibGFuay5odG1sIGV4aXN0LgogICAgIC8vIFRoZSBzZWNv
bmQgcmVzb3VyY2UgZG9lcyBub3QuCiAgICAgdmFyIHVybHMgPSBbJy4uL3Jlc291cmNlcy9zaW1w
bGUudHh0JywKQEAgLTIxMSwxMiArMjM5LDE1IEBAIGNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUp
IHsKICAgICB2YXIgcmVxdWVzdHMgPSB1cmxzLm1hcChmdW5jdGlvbih1cmwpIHsKICAgICAgICAg
cmV0dXJuIG5ldyBSZXF1ZXN0KHVybCk7CiAgICAgICB9KTsKLSAgICByZXR1cm4gYXNzZXJ0X3By
b21pc2VfcmVqZWN0cygKLSAgICAgIGNhY2hlLmFkZEFsbChyZXF1ZXN0cyksCisgICAgcmV0dXJu
IHByb21pc2VfcmVqZWN0cygKKyAgICAgIHRlc3QsCiAgICAgICBuZXcgVHlwZUVycm9yKCksCisg
ICAgICBjYWNoZS5hZGRBbGwocmVxdWVzdHMpLAogICAgICAgJ0NhY2hlLmFkZEFsbCBzaG91bGQg
cmVqZWN0IHdpdGggVHlwZUVycm9yIGlmIGFueSByZXF1ZXN0IGZhaWxzJykKICAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbCh1cmxzLm1hcChmdW5j
dGlvbih1cmwpIHsgcmV0dXJuIGNhY2hlLm1hdGNoKHVybCk7IH0pKTsKKyAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5hbGwodXJscy5tYXAoZnVuY3Rpb24odXJsKSB7CisgICAgICAgICAgICAgIHJl
dHVybiBjYWNoZS5tYXRjaCh1cmwpOworICAgICAgICAgICAgfSkpOwogICAgICAgfSkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKG1hdGNoZXMpIHsKICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxz
KApAQCAtMjI2LDExICsyNTcsMTIgQEAgY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgewogICAg
ICAgfSk7CiAgIH0sICdDYWNoZS5hZGRBbGwgd2l0aCBhIG1peCBvZiBzdWNjZWVkaW5nIGFuZCBm
YWlsaW5nIHJlcXVlc3RzJyk7CiAKLWNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKK2NhY2hl
X3Rlc3QoZnVuY3Rpb24oY2FjaGUsIHRlc3QpIHsKICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KCcuLi9yZXNvdXJjZXMvc2ltcGxlLnR4dCcpOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlz
ZV9yZWplY3RzKAotICAgICAgY2FjaGUuYWRkQWxsKFtyZXF1ZXN0LCByZXF1ZXN0XSksCisgICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0cygKKyAgICAgIHRlc3QsCiAgICAgICAnSW52YWxpZFN0YXRl
RXJyb3InLAorICAgICAgY2FjaGUuYWRkQWxsKFtyZXF1ZXN0LCByZXF1ZXN0XSksCiAgICAgICAn
Q2FjaGUuYWRkQWxsIHNob3VsZCB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBpZiB0aGUgc2FtZSBy
ZXF1ZXN0IGlzIGFkZGVkICcgKwogICAgICAgJ3R3aWNlLicpOwogICB9LCAnQ2FjaGUuYWRkQWxs
IGNhbGxlZCB3aXRoIHRoZSBzYW1lIFJlcXVlc3Qgb2JqZWN0IHNwZWNpZmllZCB0d2ljZScpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtZGVsZXRlLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtZGVsZXRlLmpzCmluZGV4IDc1
YTQ3NGMyYjJjOTEwMWYxNWVhMzJjNmExZTkyYTVkNGRhN2JlZmMuLjNjZjlhZWI0YzIzYTlmN2Fk
MWQ1NDMzZjJkNWY0ZTQ2ZTRlOGZkZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2Ny
aXB0LXRlc3RzL2NhY2hlLWRlbGV0ZS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10
ZXN0cy9jYWNoZS1kZWxldGUuanMKQEAgLTEsNiArMSw1IEBACiBpZiAoc2VsZi5pbXBvcnRTY3Jp
cHRzKSB7CiAgICAgaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOwot
ICAgIGltcG9ydFNjcmlwdHMoJy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzJyk7
CiAgICAgaW1wb3J0U2NyaXB0cygnLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5qcycpOwogfQog
CkBAIC0xNywxMCArMTYsMTEgQEAgZnVuY3Rpb24gbmV3X3Rlc3RfcmVzcG9uc2UoKSB7CiAgIHJl
dHVybiBuZXcgUmVzcG9uc2UoJ0hlbGxvIHdvcmxkIScsIHsgc3RhdHVzOiAyMDAgfSk7CiB9CiAK
LWNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKLSAgICByZXR1cm4gYXNzZXJ0X3Byb21pc2Vf
cmVqZWN0cygKLSAgICAgIGNhY2hlLmRlbGV0ZSgpLAorY2FjaGVfdGVzdChmdW5jdGlvbihjYWNo
ZSwgdGVzdCkgeworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMoCisgICAgICB0ZXN0LAogICAg
ICAgbmV3IFR5cGVFcnJvcigpLAorICAgICAgY2FjaGUuZGVsZXRlKCksCiAgICAgICAnQ2FjaGUu
ZGVsZXRlIHNob3VsZCByZWplY3Qgd2l0aCBhIFR5cGVFcnJvciB3aGVuIGNhbGxlZCB3aXRoIG5v
ICcgKwogICAgICAgJ2FyZ3VtZW50cy4nKTsKICAgfSwgJ0NhY2hlLmRlbGV0ZSB3aXRoIG5vIGFy
Z3VtZW50cycpOwpAQCAtNTYsNiArNTYsNTUgQEAgY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkg
ewogICB9LCAnQ2FjaGUuZGVsZXRlIGNhbGxlZCB3aXRoIGEgUmVxdWVzdCBvYmplY3QnKTsKIAog
Y2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QodGVzdF91cmwpOworICAgIHZhciByZXNwb25zZSA9IG5ld190ZXN0X3Jlc3BvbnNlKCk7Cisg
ICAgcmV0dXJuIGNhY2hlLnB1dChyZXF1ZXN0LCByZXNwb25zZSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiBjYWNoZS5kZWxldGUobmV3IFJlcXVlc3QodGVzdF91
cmwsIHttZXRob2Q6ICdIRUFEJ30pKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9mYWxzZShyZXN1bHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICdDYWNoZS5kZWxldGUgc2hvdWxkIG5vdCBtYXRjaCBhIG5vbi1HRVQgcmVxdWVz
dCAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgJ3VubGVzcyBpZ25vcmVNZXRob2Qgb3B0aW9u
IGlzIHNldC4nKTsKKyAgICAgICAgICByZXR1cm4gY2FjaGUubWF0Y2godGVzdF91cmwpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0
X3Jlc3BvbnNlX2VxdWFscyhyZXN1bHQsIHJlc3BvbnNlLAorICAgICAgICAgICAgJ0NhY2hlLmRl
bGV0ZSBzaG91bGQgbGVhdmUgbm9uLW1hdGNoaW5nIHJlc3BvbnNlIGluIHRoZSBjYWNoZS4nKTsK
KyAgICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRlKG5ldyBSZXF1ZXN0KHRlc3RfdXJsLCB7bWV0
aG9kOiAnSEVBRCd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZ25vcmVNZXRo
b2Q6IHRydWV9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgIGFzc2VydF90cnVlKHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAnQ2Fj
aGUuZGVsZXRlIHNob3VsZCBtYXRjaCBhIG5vbi1HRVQgcmVxdWVzdCAnICsKKyAgICAgICAgICAg
ICAgICAgICAgICAnIGlmIGlnbm9yZU1ldGhvZCBpcyB0cnVlLicpOworICAgICAgICB9KTsKKyAg
fSwgJ0NhY2hlLmRlbGV0ZSBjYWxsZWQgd2l0aCBhIEhFQUQgcmVxdWVzdCcpOworCitjYWNoZV90
ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CisgICAgdmFyIHZhcnlfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KCdodHRwOi8vZXhhbXBsZS5jb20vYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHtoZWFkZXJzOiB7J0Nvb2tpZXMnOiAnaXMtZm9yLWNvb2tpZSd9fSk7CisgICAgdmFyIHZh
cnlfcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoJycsIHtoZWFkZXJzOiB7J1ZhcnknOiAnQ29va2ll
cyd9fSk7CisgICAgdmFyIG1pc21hdGNoZWRfdmFyeV9yZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0
dHA6Ly9leGFtcGxlLmNvbS9jJyk7CisKKyAgICByZXR1cm4gY2FjaGUucHV0KHZhcnlfcmVxdWVz
dC5jbG9uZSgpLCB2YXJ5X3Jlc3BvbnNlLmNsb25lKCkpCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICByZXR1cm4gY2FjaGUuZGVsZXRlKG1pc21hdGNoZWRfdmFyeV9yZXF1ZXN0
LmNsb25lKCkpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ0Nh
Y2hlLmRlbGV0ZSBzaG91bGQgbm90IGRlbGV0ZSBpZiB2YXJ5IGRvZXMgbm90ICcgKworICAgICAg
ICAgICAgICAgICAgICAgICAnbWF0Y2ggdW5sZXNzIGlnbm9yZVZhcnkgaXMgdHJ1ZScpOworICAg
ICAgICAgIHJldHVybiBjYWNoZS5kZWxldGUobWlzbWF0Y2hlZF92YXJ5X3JlcXVlc3QuY2xvbmUo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZ25vcmVWYXJ5OiB0cnVlfSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBhc3Nl
cnRfdHJ1ZShyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgJ0NhY2hlLmRlbGV0ZSBzaG91
bGQgaWdub3JlIHZhcnkgaWYgaWdub3JlVmFyeSBpcyB0cnVlJyk7CisgICAgICAgIH0pOworICB9
LCAnQ2FjaGUuZGVsZXRlIHN1cHBvcnRzIGlnbm9yZVZhcnknKTsKKworY2FjaGVfdGVzdChmdW5j
dGlvbihjYWNoZSkgewogICAgIHJldHVybiBjYWNoZS5kZWxldGUodGVzdF91cmwpCiAgICAgICAu
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICBhc3NlcnRfZmFsc2UocmVzdWx0LApA
QCAtNjQsMzMgKzExMyw1MiBAQCBjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CiAgICAgICAg
IH0pOwogICB9LCAnQ2FjaGUuZGVsZXRlIHdpdGggYSBub24tZXhpc3RlbnQgZW50cnknKTsKIAot
dmFyIGNhY2hlX2VudHJpZXMgPSB7Ci0gIGE6IHsKLSAgICByZXF1ZXN0OiBuZXcgUmVxdWVzdCgn
aHR0cDovL2V4YW1wbGUuY29tL2FiYycpLAotICAgIHJlc3BvbnNlOiBuZXcgUmVzcG9uc2UoJycp
CitwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rpb24oY2FjaGUs
IGVudHJpZXMpIHsKKyAgICByZXR1cm4gY2FjaGUubWF0Y2hBbGwoZW50cmllcy5hX3dpdGhfcXVl
cnkucmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeyBpZ25vcmVTZWFyY2g6IHRy
dWUgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9y
ZXNwb25zZV9hcnJheV9lcXVhbHMoCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBb
CisgICAgICAgICAgICAgIGVudHJpZXMuYS5yZXNwb25zZSwKKyAgICAgICAgICAgICAgZW50cmll
cy5hX3dpdGhfcXVlcnkucmVzcG9uc2UKKyAgICAgICAgICAgIF0pOworICAgICAgICAgIHJldHVy
biBjYWNoZS5kZWxldGUoZW50cmllcy5hX3dpdGhfcXVlcnkucmVxdWVzdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgaWdub3JlU2VhcmNoOiB0cnVlIH0pOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgcmV0dXJuIGNhY2hlLm1h
dGNoQWxsKGVudHJpZXMuYV93aXRoX3F1ZXJ5LnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgaWdub3JlU2VhcmNoOiB0cnVlIH0pOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0X3Jlc3BvbnNlX2FycmF5
X2VxdWFscyhyZXN1bHQsIFtdKTsKKyAgICAgICAgfSk7CiAgIH0sCisgICdDYWNoZS5kZWxldGUg
d2l0aCBpZ25vcmVTZWFyY2ggb3B0aW9uIChyZXF1ZXN0IHdpdGggc2VhcmNoIHBhcmFtZXRlcnMp
Jyk7CiAKLSAgYjogewotICAgIHJlcXVlc3Q6IG5ldyBSZXF1ZXN0KCdodHRwOi8vZXhhbXBsZS5j
b20vYicpLAotICAgIHJlc3BvbnNlOiBuZXcgUmVzcG9uc2UoJycpCitwcmVwb3B1bGF0ZWRfY2Fj
aGVfdGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKKyAgICBy
ZXR1cm4gY2FjaGUubWF0Y2hBbGwoZW50cmllcy5hX3dpdGhfcXVlcnkucmVxdWVzdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyBpZ25vcmVTZWFyY2g6IHRydWUgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVh
bHMoCisgICAgICAgICAgICByZXN1bHQsCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgIGVu
dHJpZXMuYS5yZXNwb25zZSwKKyAgICAgICAgICAgICAgZW50cmllcy5hX3dpdGhfcXVlcnkucmVz
cG9uc2UKKyAgICAgICAgICAgIF0pOworICAgICAgICAgIC8vIGNhY2hlLmRlbGV0ZSgpJ3MgYmVo
YXZpb3Igc2hvdWxkIGJlIHRoZSBzYW1lIGlmIGlnbm9yZVNlYXJjaCBpcworICAgICAgICAgIC8v
IG5vdCBwcm92aWRlZCBvciBpZiBpZ25vcmVTZWFyY2ggaXMgZmFsc2UuCisgICAgICAgICAgcmV0
dXJuIGNhY2hlLmRlbGV0ZShlbnRyaWVzLmFfd2l0aF9xdWVyeS5yZXF1ZXN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyBpZ25vcmVTZWFyY2g6IGZhbHNlIH0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgcmV0dXJuIGNhY2hl
Lm1hdGNoQWxsKGVudHJpZXMuYV93aXRoX3F1ZXJ5LnJlcXVlc3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgaWdub3JlU2VhcmNoOiB0cnVlIH0pOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0X3Jlc3BvbnNlX2Fy
cmF5X2VxdWFscyhyZXN1bHQsIFsgZW50cmllcy5hLnJlc3BvbnNlIF0pOworICAgICAgICB9KTsK
ICAgfSwKLQotICBhX3dpdGhfcXVlcnk6IHsKLSAgICByZXF1ZXN0OiBuZXcgUmVxdWVzdCgnaHR0
cDovL2V4YW1wbGUuY29tL2FiYz9xPXInKSwKLSAgICByZXNwb25zZTogbmV3IFJlc3BvbnNlKCcn
KQotICB9Ci19OwotCi1mdW5jdGlvbiBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdCh0ZXN0X2Z1bmN0
aW9uLCBkZXNjcmlwdGlvbikgewotICBjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7Ci0gICAg
ICByZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoY2FjaGVfZW50cmllcykubWFwKGZ1bmN0
aW9uKGspIHsKLSAgICAgICAgICByZXR1cm4gY2FjaGUucHV0KGNhY2hlX2VudHJpZXNba10ucmVx
dWVzdC5jbG9uZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfZW50cmllc1tr
XS5yZXNwb25zZS5jbG9uZSgpKTsKLSAgICAgICAgfSkpCi0gICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgewotICAgICAgICAgICAgcmV0dXJuIHRlc3RfZnVuY3Rpb24oY2FjaGUpOwotICAgICAgICAg
IH0pOwotICAgIH0sIGRlc2NyaXB0aW9uKTsKLX0KKyAgJ0NhY2hlLmRlbGV0ZSB3aXRoIGlnbm9y
ZVNlYXJjaCBvcHRpb24gKHdoZW4gaXQgaXMgc3BlY2lmaWVkIGFzIGZhbHNlKScpOwogCiBkb25l
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1rZXlz
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUta2V5cy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NmJkNDNiNjczYTRmNzhhZjQ3YWNhMzA3ZGEzY2VkODM3M2Q2MTY4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUta2V5cy5qcwpAQCAt
MCwwICsxLDE5MiBAQAoraWYgKHNlbGYuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlw
dHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi9y
ZXNvdXJjZXMvdGVzdC1oZWxwZXJzLmpzJyk7Cit9CisKK2NhY2hlX3Rlc3QoY2FjaGUgPT4gewor
ICAgIHJldHVybiBjYWNoZS5rZXlzKCkKKyAgICAgIC50aGVuKHJlcXVlc3RzID0+IHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgcmVxdWVzdHMubGVuZ3RoLCAwLAorICAg
ICAgICAgICAgJ0NhY2hlLmtleXMgc2hvdWxkIHJlc29sdmUgdG8gYW4gZW1wdHkgYXJyYXkgZm9y
IGFuIGVtcHR5IGNhY2hlJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUua2V5cygpIGNhbGxl
ZCBvbiBhbiBlbXB0eSBjYWNoZScpOworCitwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVf
ZW50cmllcywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKKyAgICByZXR1cm4gY2FjaGUua2V5
cygnbm90LXByZXNlbnQtaW4tdGhlLWNhY2hlJykKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgIGFzc2VydF9yZXF1ZXN0X2FycmF5X2VxdWFscygKKyAgICAgICAgICAg
IHJlc3VsdCwgW10sCisgICAgICAgICAgICAnQ2FjaGUua2V5cyBzaG91bGQgcmVzb2x2ZSB3aXRo
IGFuIGVtcHR5IGFycmF5IG9uIGZhaWx1cmUuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUu
a2V5cyB3aXRoIG5vIG1hdGNoaW5nIGVudHJpZXMnKTsKKworcHJlcG9wdWxhdGVkX2NhY2hlX3Rl
c3Qoc2ltcGxlX2VudHJpZXMsIGZ1bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7CisgICAgcmV0dXJu
IGNhY2hlLmtleXMoZW50cmllcy5hLnJlcXVlc3QudXJsKQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0X3JlcXVlc3RfYXJyYXlfZXF1YWxzKHJlc3VsdCwg
W2VudHJpZXMuYS5yZXF1ZXN0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ0NhY2hlLmtleXMgc2hvdWxkIG1hdGNoIGJ5IFVSTC4nKTsKKyAgICAgICAgfSk7CisgIH0s
ICdDYWNoZS5rZXlzIHdpdGggVVJMJyk7CisKK3ByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBs
ZV9lbnRyaWVzLCBmdW5jdGlvbihjYWNoZSwgZW50cmllcykgeworICAgIHJldHVybiBjYWNoZS5r
ZXlzKGVudHJpZXMuYS5yZXF1ZXN0KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgYXNzZXJ0X3JlcXVlc3RfYXJyYXlfZXF1YWxzKAorICAgICAgICAgICAgcmVzdWx0
LCBbZW50cmllcy5hLnJlcXVlc3RdLAorICAgICAgICAgICAgJ0NhY2hlLmtleXMgc2hvdWxkIG1h
dGNoIGJ5IFJlcXVlc3QuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUua2V5cyB3aXRoIFJl
cXVlc3QnKTsKKworcHJlcG9wdWxhdGVkX2NhY2hlX3Rlc3Qoc2ltcGxlX2VudHJpZXMsIGZ1bmN0
aW9uKGNhY2hlLCBlbnRyaWVzKSB7CisgICAgcmV0dXJuIGNhY2hlLmtleXMobmV3IFJlcXVlc3Qo
ZW50cmllcy5hLnJlcXVlc3QudXJsKSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewor
ICAgICAgICAgIGFzc2VydF9yZXF1ZXN0X2FycmF5X2VxdWFscygKKyAgICAgICAgICAgIHJlc3Vs
dCwgW2VudHJpZXMuYS5yZXF1ZXN0XSwKKyAgICAgICAgICAgICdDYWNoZS5rZXlzIHNob3VsZCBt
YXRjaCBieSBSZXF1ZXN0LicpOworICAgICAgICB9KTsKKyAgfSwgJ0NhY2hlLmtleXMgd2l0aCBu
ZXcgUmVxdWVzdCcpOworCitwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywg
ZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKKyAgICByZXR1cm4gY2FjaGUua2V5cyhlbnRyaWVz
LmEucmVxdWVzdCwge2lnbm9yZVNlYXJjaDogdHJ1ZX0pCisgICAgICAudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfcmVxdWVzdF9hcnJheV9lcXVhbHMoCisgICAgICAg
ICAgICByZXN1bHQsCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgIGVudHJpZXMuYS5yZXF1
ZXN0LAorICAgICAgICAgICAgICBlbnRyaWVzLmFfd2l0aF9xdWVyeS5yZXF1ZXN0CisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgJ0NhY2hlLmtleXMgd2l0aCBpZ25vcmVTZWFyY2ggc2hvdWxk
IGlnbm9yZSB0aGUgJyArCisgICAgICAgICAgICAnc2VhcmNoIHBhcmFtZXRlcnMgb2YgY2FjaGVk
IHJlcXVlc3QuJyk7CisgICAgICAgIH0pOworICB9LAorICAnQ2FjaGUua2V5cyB3aXRoIGlnbm9y
ZVNlYXJjaCBvcHRpb24gKHJlcXVlc3Qgd2l0aCBubyBzZWFyY2ggJyArCisgICdwYXJhbWV0ZXJz
KScpOworCitwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rpb24o
Y2FjaGUsIGVudHJpZXMpIHsKKyAgICByZXR1cm4gY2FjaGUua2V5cyhlbnRyaWVzLmFfd2l0aF9x
dWVyeS5yZXF1ZXN0LCB7aWdub3JlU2VhcmNoOiB0cnVlfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXF1ZXN0X2FycmF5X2VxdWFscygKKyAgICAg
ICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgZW50cmllcy5hLnJl
cXVlc3QsCisgICAgICAgICAgICAgIGVudHJpZXMuYV93aXRoX3F1ZXJ5LnJlcXVlc3QKKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAnQ2FjaGUua2V5cyB3aXRoIGlnbm9yZVNlYXJjaCBzaG91
bGQgaWdub3JlIHRoZSAnICsKKyAgICAgICAgICAgICdzZWFyY2ggcGFyYW1ldGVycyBvZiByZXF1
ZXN0LicpOworICAgICAgICB9KTsKKyAgfSwKKyAgJ0NhY2hlLmtleXMgd2l0aCBpZ25vcmVTZWFy
Y2ggb3B0aW9uIChyZXF1ZXN0IHdpdGggc2VhcmNoIHBhcmFtZXRlcnMpJyk7CisKK2NhY2hlX3Rl
c3QoZnVuY3Rpb24oY2FjaGUpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCdodHRw
Oi8vZXhhbXBsZS5jb20vJyk7CisgICAgdmFyIGhlYWRfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCdo
dHRwOi8vZXhhbXBsZS5jb20vJywge21ldGhvZDogJ0hFQUQnfSk7CisgICAgdmFyIHJlc3BvbnNl
ID0gbmV3IFJlc3BvbnNlKCdmb28nKTsKKyAgICByZXR1cm4gY2FjaGUucHV0KHJlcXVlc3QuY2xv
bmUoKSwgcmVzcG9uc2UuY2xvbmUoKSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIHJldHVybiBjYWNoZS5rZXlzKGhlYWRfcmVxdWVzdC5jbG9uZSgpKTsKKyAgICAgICAgfSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXF1ZXN0
X2FycmF5X2VxdWFscygKKyAgICAgICAgICAgIHJlc3VsdCwgW10sCisgICAgICAgICAgICAnQ2Fj
aGUua2V5cyBzaG91bGQgcmVzb2x2ZSB3aXRoIGFuIGVtcHR5IGFycmF5IHdpdGggYSAnICsKKyAg
ICAgICAgICAgICdtaXNtYXRjaGVkIG1ldGhvZC4nKTsKKyAgICAgICAgICByZXR1cm4gY2FjaGUu
a2V5cyhoZWFkX3JlcXVlc3QuY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
aWdub3JlTWV0aG9kOiB0cnVlfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfcmVxdWVzdF9hcnJheV9lcXVhbHMoCisgICAgICAg
ICAgICByZXN1bHQsCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgIHJlcXVlc3QsCisgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgJ0NhY2hlLmtleXMgd2l0aCBpZ25vcmVNZXRob2Qgc2hv
dWxkIGlnbm9yZSB0aGUgJyArCisgICAgICAgICAgICAnbWV0aG9kIG9mIHJlcXVlc3QuJyk7Cisg
ICAgICAgIH0pOworICB9LCAnQ2FjaGUua2V5cyBzdXBwb3J0cyBpZ25vcmVNZXRob2QnKTsKKwor
Y2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgeworICAgIHZhciB2YXJ5X3JlcXVlc3QgPSBuZXcg
UmVxdWVzdCgnaHR0cDovL2V4YW1wbGUuY29tL2MnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7aGVhZGVyczogeydDb29raWVzJzogJ2lzLWZvci1jb29raWUnfX0pOworICAg
IHZhciB2YXJ5X3Jlc3BvbnNlID0gbmV3IFJlc3BvbnNlKCcnLCB7aGVhZGVyczogeydWYXJ5Jzog
J0Nvb2tpZXMnfX0pOworICAgIHZhciBtaXNtYXRjaGVkX3ZhcnlfcmVxdWVzdCA9IG5ldyBSZXF1
ZXN0KCdodHRwOi8vZXhhbXBsZS5jb20vYycpOworCisgICAgcmV0dXJuIGNhY2hlLnB1dCh2YXJ5
X3JlcXVlc3QuY2xvbmUoKSwgdmFyeV9yZXNwb25zZS5jbG9uZSgpKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNhY2hlLmtleXMobWlzbWF0Y2hlZF92YXJ5X3Jl
cXVlc3QuY2xvbmUoKSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICBhc3NlcnRfcmVxdWVzdF9hcnJheV9lcXVhbHMoCisgICAgICAgICAgICBy
ZXN1bHQsIFtdLAorICAgICAgICAgICAgJ0NhY2hlLmtleXMgc2hvdWxkIHJlc29sdmUgd2l0aCBh
biBlbXB0eSBhcnJheSB3aXRoIGEgJyArCisgICAgICAgICAgICAnbWlzbWF0Y2hlZCB2YXJ5Licp
OworICAgICAgICAgIHJldHVybiBjYWNoZS5rZXlzKG1pc21hdGNoZWRfdmFyeV9yZXF1ZXN0LmNs
b25lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWdub3JlVmFyeTogdHJ1ZX0p
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAg
YXNzZXJ0X3JlcXVlc3RfYXJyYXlfZXF1YWxzKAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAg
ICAgICAgWworICAgICAgICAgICAgICB2YXJ5X3JlcXVlc3QsCisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgJ0NhY2hlLmtleXMgd2l0aCBpZ25vcmVWYXJ5IHNob3VsZCBpZ25vcmUgdGhlICcg
KworICAgICAgICAgICAgJ3Zhcnkgb2YgcmVxdWVzdC4nKTsKKyAgICAgICAgfSk7CisgIH0sICdD
YWNoZS5rZXlzIHN1cHBvcnRzIGlnbm9yZVZhcnknKTsKKworcHJlcG9wdWxhdGVkX2NhY2hlX3Rl
c3Qoc2ltcGxlX2VudHJpZXMsIGZ1bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7CisgICAgcmV0dXJu
IGNhY2hlLmtleXMoZW50cmllcy5jYXQucmVxdWVzdC51cmwgKyAnI21vdXNlJykKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXF1ZXN0X2FycmF5X2Vx
dWFscygKKyAgICAgICAgICAgIHJlc3VsdCwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAg
ZW50cmllcy5jYXQucmVxdWVzdCwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnQ2FjaGUu
a2V5cyBzaG91bGQgaWdub3JlIFVSTCBmcmFnbWVudC4nKTsKKyAgICAgICAgfSk7CisgIH0sICdD
YWNoZS5rZXlzIHdpdGggVVJMIGNvbnRhaW5pbmcgZnJhZ21lbnQnKTsKKworcHJlcG9wdWxhdGVk
X2NhY2hlX3Rlc3Qoc2ltcGxlX2VudHJpZXMsIGZ1bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7Cisg
ICAgcmV0dXJuIGNhY2hlLmtleXMoJ2h0dHAnKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7CisgICAgICAgICAgYXNzZXJ0X3JlcXVlc3RfYXJyYXlfZXF1YWxzKAorICAgICAgICAgICAg
cmVzdWx0LCBbXSwKKyAgICAgICAgICAgICdDYWNoZS5rZXlzIHNob3VsZCB0cmVhdCBxdWVyeSBh
cyBhIFVSTCBhbmQgbm90ICcgKworICAgICAgICAgICAgJ2p1c3QgYSBzdHJpbmcgZnJhZ21lbnQu
Jyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUua2V5cyB3aXRoIHN0cmluZyBmcmFnbWVudCAi
aHR0cCIgYXMgcXVlcnknKTsKKworcHJlcG9wdWxhdGVkX2NhY2hlX3Rlc3Qoc2ltcGxlX2VudHJp
ZXMsIGZ1bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7CisgICAgcmV0dXJuIGNhY2hlLmtleXMoKQor
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0X3JlcXVlc3Rf
YXJyYXlfZXF1YWxzKAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgWworICAgICAg
ICAgICAgICBlbnRyaWVzLmEucmVxdWVzdCwKKyAgICAgICAgICAgICAgZW50cmllcy5iLnJlcXVl
c3QsCisgICAgICAgICAgICAgIGVudHJpZXMuYV93aXRoX3F1ZXJ5LnJlcXVlc3QsCisgICAgICAg
ICAgICAgIGVudHJpZXMuQS5yZXF1ZXN0LAorICAgICAgICAgICAgICBlbnRyaWVzLmFfaHR0cHMu
cmVxdWVzdCwKKyAgICAgICAgICAgICAgZW50cmllcy5hX29yZy5yZXF1ZXN0LAorICAgICAgICAg
ICAgICBlbnRyaWVzLmNhdC5yZXF1ZXN0LAorICAgICAgICAgICAgICBlbnRyaWVzLmNhdG1hbmR1
LnJlcXVlc3QsCisgICAgICAgICAgICAgIGVudHJpZXMuY2F0X251bV9saXZlcy5yZXF1ZXN0LAor
ICAgICAgICAgICAgICBlbnRyaWVzLmNhdF9pbl90aGVfaGF0LnJlcXVlc3QsCisgICAgICAgICAg
ICAgIGVudHJpZXMubm9uXzJ4eF9yZXNwb25zZS5yZXF1ZXN0LAorICAgICAgICAgICAgICBlbnRy
aWVzLmVycm9yX3Jlc3BvbnNlLnJlcXVlc3QKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAn
Q2FjaGUua2V5cyB3aXRob3V0IHBhcmFtZXRlcnMgc2hvdWxkIG1hdGNoIGFsbCBlbnRyaWVzLicp
OworICAgICAgICB9KTsKKyAgfSwgJ0NhY2hlLmtleXMgd2l0aG91dCBwYXJhbWV0ZXJzJyk7CisK
K3ByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBmdW5jdGlvbihjYWNoZSwg
ZW50cmllcykgeworICAgIHJldHVybiBjYWNoZS5rZXlzKG5ldyBSZXF1ZXN0KGVudHJpZXMuY2F0
LnJlcXVlc3QudXJsLCB7bWV0aG9kOiAnSEVBRCd9KSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXF1ZXN0X2FycmF5X2VxdWFscygKKyAgICAgICAg
ICAgIHJlc3VsdCwgW10sCisgICAgICAgICAgICAnQ2FjaGUua2V5cyBzaG91bGQgbm90IG1hdGNo
IEhFQUQgcmVxdWVzdCB1bmxlc3MgaWdub3JlTWV0aG9kICcgKworICAgICAgICAgICAgJ29wdGlv
biBpcyBzZXQuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUua2V5cyB3aXRoIGEgSEVBRCBS
ZXF1ZXN0Jyk7CisKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0
LXRlc3RzL2NhY2hlLW1hdGNoLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2Fj
aGUtbWF0Y2guanMKaW5kZXggNzE2YmZlNWE2OTgwNDExNDY5M2I2YzkzNjY1ZGI3OGJkZmVjYTlj
OS4uM2QwMGYwZjA0YWYzYTE2Y2NiN2NjNzMyZTRkZjhjY2ZhMGVmNDAxYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtbWF0Y2guanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtbWF0Y2guanMKQEAgLTEsNiArMSw1IEBACiBp
ZiAoc2VsZi5pbXBvcnRTY3JpcHRzKSB7CiAgICAgaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcycpOwotICAgIGltcG9ydFNjcmlwdHMoJy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy1oZWxwZXJzLmpzJyk7CiAgICAgaW1wb3J0U2NyaXB0cygnLi4vcmVzb3VyY2VzL3Rlc3Qt
aGVscGVycy5qcycpOwogfQogCkBAIC0yOSw2ICsyOCwyMyBAQCBwcmVwb3B1bGF0ZWRfY2FjaGVf
dGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKICAgfSwgJ0Nh
Y2hlLm1hdGNoIHdpdGggUmVxdWVzdCcpOwogCiBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1w
bGVfZW50cmllcywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKKyAgICB2YXIgYWx0X3Jlc3Bv
bnNlID0gbmV3IFJlc3BvbnNlKCcnLCB7c3RhdHVzOiAyMDF9KTsKKworICAgIHJldHVybiBzZWxm
LmNhY2hlcy5vcGVuKCdzZWNvbmRfbWF0Y2hpbmdfY2FjaGUnKQorICAgICAgLnRoZW4oZnVuY3Rp
b24oY2FjaGUpIHsKKyAgICAgICAgICByZXR1cm4gY2FjaGUucHV0KGVudHJpZXMuYS5yZXF1ZXN0
LCBhbHRfcmVzcG9uc2UuY2xvbmUoKSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlv
bigpIHsKKyAgICAgICAgICByZXR1cm4gY2FjaGUubWF0Y2goZW50cmllcy5hLnJlcXVlc3QpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNz
ZXJ0X3Jlc3BvbnNlX2VxdWFscygKKyAgICAgICAgICAgIHJlc3VsdCwgZW50cmllcy5hLnJlc3Bv
bnNlLAorICAgICAgICAgICAgJ0NhY2hlLm1hdGNoIHNob3VsZCBtYXRjaCB0aGUgZmlyc3QgY2Fj
aGUuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUubWF0Y2ggd2l0aCBtdWx0aXBsZSBjYWNo
ZSBoaXRzJyk7CisKK3ByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBmdW5j
dGlvbihjYWNoZSwgZW50cmllcykgewogICAgIHJldHVybiBjYWNoZS5tYXRjaChuZXcgUmVxdWVz
dChlbnRyaWVzLmEucmVxdWVzdC51cmwpKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CiAgICAgICAgICAgYXNzZXJ0X3Jlc3BvbnNlX2VxdWFscyhyZXN1bHQsIGVudHJpZXMuYS5yZXNw
b25zZSwKQEAgLTM3LDYgKzUzLDE0IEBAIHByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9l
bnRyaWVzLCBmdW5jdGlvbihjYWNoZSwgZW50cmllcykgewogICB9LCAnQ2FjaGUubWF0Y2ggd2l0
aCBuZXcgUmVxdWVzdCcpOwogCiBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmll
cywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKKyAgICByZXR1cm4gY2FjaGUubWF0Y2gobmV3
IFJlcXVlc3QoZW50cmllcy5hLnJlcXVlc3QudXJsLCB7bWV0aG9kOiAnSEVBRCd9KSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0
LCB1bmRlZmluZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnQ2FjaGUubWF0Y2ggc2hvdWxk
IG5vdCBtYXRjaCBIRUFEIFJlcXVlc3QuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUubWF0
Y2ggd2l0aCBIRUFEJyk7CisKK3ByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVz
LCBmdW5jdGlvbihjYWNoZSwgZW50cmllcykgewogICAgIHJldHVybiBjYWNoZS5tYXRjaChlbnRy
aWVzLmEucmVxdWVzdCwKICAgICAgICAgICAgICAgICAgICAgICAge2lnbm9yZVNlYXJjaDogdHJ1
ZX0pCiAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKQEAgLTY5LDYgKzkzLDU2IEBAIHBy
ZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBmdW5jdGlvbihjYWNoZSwgZW50
cmllcykgewogICB9LAogICAnQ2FjaGUubWF0Y2ggd2l0aCBpZ25vcmVTZWFyY2ggb3B0aW9uIChy
ZXF1ZXN0IHdpdGggc2VhcmNoIHBhcmFtZXRlciknKTsKIAorY2FjaGVfdGVzdChmdW5jdGlvbihj
YWNoZSkgeworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9leGFtcGxlLmNv
bS8nKTsKKyAgICB2YXIgaGVhZF9yZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9leGFtcGxl
LmNvbS8nLCB7bWV0aG9kOiAnSEVBRCd9KTsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9u
c2UoJ2ZvbycpOworICAgIHJldHVybiBjYWNoZS5wdXQocmVxdWVzdC5jbG9uZSgpLCByZXNwb25z
ZS5jbG9uZSgpKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNh
Y2hlLm1hdGNoKGhlYWRfcmVxdWVzdC5jbG9uZSgpKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAg
ICByZXN1bHQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICdDYWNoZS5tYXRjaCBzaG91bGQgcmVz
b2x2ZSBhcyB1bmRlZmluZWQgd2l0aCBhICcgKworICAgICAgICAgICAgJ21pc21hdGNoZWQgbWV0
aG9kLicpOworICAgICAgICAgIHJldHVybiBjYWNoZS5tYXRjaChoZWFkX3JlcXVlc3QuY2xvbmUo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lnbm9yZU1ldGhvZDogdHJ1ZX0pOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNz
ZXJ0X3Jlc3BvbnNlX2VxdWFscygKKyAgICAgICAgICAgIHJlc3VsdCwgcmVzcG9uc2UsCisgICAg
ICAgICAgICAnQ2FjaGUubWF0Y2ggd2l0aCBpZ25vcmVNZXRob2Qgc2hvdWxkIGlnbm9yZSB0aGUg
JyArCisgICAgICAgICAgICAnbWV0aG9kIG9mIHJlcXVlc3QuJyk7CisgICAgICAgIH0pOworICB9
LCAnQ2FjaGUubWF0Y2ggc3VwcG9ydHMgaWdub3JlTWV0aG9kJyk7CisKK2NhY2hlX3Rlc3QoZnVu
Y3Rpb24oY2FjaGUpIHsKKyAgICB2YXIgdmFyeV9yZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6
Ly9leGFtcGxlLmNvbS9jJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hl
YWRlcnM6IHsnQ29va2llcyc6ICdpcy1mb3ItY29va2llJ319KTsKKyAgICB2YXIgdmFyeV9yZXNw
b25zZSA9IG5ldyBSZXNwb25zZSgnJywge2hlYWRlcnM6IHsnVmFyeSc6ICdDb29raWVzJ319KTsK
KyAgICB2YXIgbWlzbWF0Y2hlZF92YXJ5X3JlcXVlc3QgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2V4
YW1wbGUuY29tL2MnKTsKKworICAgIHJldHVybiBjYWNoZS5wdXQodmFyeV9yZXF1ZXN0LmNsb25l
KCksIHZhcnlfcmVzcG9uc2UuY2xvbmUoKSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIHJldHVybiBjYWNoZS5tYXRjaChtaXNtYXRjaGVkX3ZhcnlfcmVxdWVzdC5jbG9uZSgp
KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXN1bHQsIHVuZGVmaW5lZCwKKyAgICAgICAg
ICAgICdDYWNoZS5tYXRjaCBzaG91bGQgcmVzb2x2ZSBhcyB1bmRlZmluZWQgd2l0aCBhICcgKwor
ICAgICAgICAgICAgJ21pc21hdGNoZWQgdmFyeS4nKTsKKyAgICAgICAgICByZXR1cm4gY2FjaGUu
bWF0Y2gobWlzbWF0Y2hlZF92YXJ5X3JlcXVlc3QuY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHtpZ25vcmVWYXJ5OiB0cnVlfSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfZXF1YWxzKAor
ICAgICAgICAgICAgcmVzdWx0LCB2YXJ5X3Jlc3BvbnNlLAorICAgICAgICAgICAgJ0NhY2hlLm1h
dGNoIHdpdGggaWdub3JlVmFyeSBzaG91bGQgaWdub3JlIHRoZSAnICsKKyAgICAgICAgICAgICd2
YXJ5IG9mIHJlcXVlc3QuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUubWF0Y2ggc3VwcG9y
dHMgaWdub3JlVmFyeScpOworCiBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmll
cywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKICAgICByZXR1cm4gY2FjaGUubWF0Y2goZW50
cmllcy5jYXQucmVxdWVzdC51cmwgKyAnI21vdXNlJykKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewpAQCAtMTU5LDYgKzIzMywzNiBAQCBjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7
CiAgICAgICAgIH0pOwogICB9LCAnQ2FjaGUubWF0Y2ggaW52b2tlZCBtdWx0aXBsZSB0aW1lcyBm
b3IgdGhlIHNhbWUgUmVxdWVzdC9SZXNwb25zZScpOwogCitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNh
Y2hlKSB7CisgICAgdmFyIHJlcXVlc3RfdXJsID0gbmV3IFVSTCgnLi4vcmVzb3VyY2VzL3NpbXBs
ZS50eHQnLCBsb2NhdGlvbi5ocmVmKS5ocmVmOworICAgIHJldHVybiBmZXRjaChyZXF1ZXN0X3Vy
bCkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZldGNoX3Jlc3VsdCkgeworICAgICAgICAgIHJldHVy
biBjYWNoZS5wdXQobmV3IFJlcXVlc3QocmVxdWVzdF91cmwpLCBmZXRjaF9yZXN1bHQpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNhY2hl
Lm1hdGNoKHJlcXVlc3RfdXJsKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICAgIHJldHVybiByZXN1bHQuYmxvYigpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgIHZhciBzbGljZWQgPSBibG9iLnNs
aWNlKDIsOCk7CisKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIo
KTsKKyAgICAgICAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgICAgICAgICAgcmVzb2x2ZShldmVudC50YXJnZXQucmVzdWx0KTsKKyAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoc2xpY2VkKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24odGV4dCkgeworICAgICAg
ICAgIGFzc2VydF9lcXVhbHModGV4dCwgJ3NpbXBsZScsCisgICAgICAgICAgICAgICAgICAgICAg
ICAnQSBSZXNwb25zZSBibG9iIHJldHVybmVkIGJ5IENhY2hlLm1hdGNoIHNob3VsZCBiZSAnICsK
KyAgICAgICAgICAgICAgICAgICAgICAgICdzbGljZWFibGUuJyApOworICAgICAgICB9KTsKKyAg
fSwgJ0NhY2hlLm1hdGNoIGJsb2Igc2hvdWxkIGJlIHNsaWNlYWJsZScpOworCiBwcmVwb3B1bGF0
ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsK
ICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGVudHJpZXMuYS5yZXF1ZXN0LmNsb25lKCks
IHttZXRob2Q6ICdQT1NUJ30pOwogICAgIHJldHVybiBjYWNoZS5tYXRjaChyZXF1ZXN0KQpAQCAt
MTkwLDQgKzI5NCwyOCBAQCBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywg
ZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMpIHsKICAgICAgICAgfSk7CiAgIH0sICdDYWNoZS5tYXRj
aCB3aXRoIGEgbmV0d29yayBlcnJvciBSZXNwb25zZScpOwogCitjYWNoZV90ZXN0KGZ1bmN0aW9u
KGNhY2hlKSB7CisgICAgLy8gVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGF0IHdlIGNhbiBnZXQgYSBS
ZXNwb25zZSBmcm9tIHRoZSBDYWNoZSBBUEksCisgICAgLy8gY2xvbmUgaXQsIGFuZCByZWFkIGp1
c3Qgb25lIHNpZGUgb2YgdGhlIGNsb25lLiAgVGhpcyB3YXMgcHJldmlvdXNseQorICAgIC8vIGJ1
Z2dlZCBpbiBGRiBmb3IgUmVzcG9uc2VzIHdpdGggbGFyZ2UgYm9kaWVzLgorICAgIHZhciBkYXRh
ID0gW107CisgICAgZGF0YS5sZW5ndGggPSA4MCAqIDEwMjQ7CisgICAgZGF0YS5maWxsKCdGJyk7
CisgICAgdmFyIHJlc3BvbnNlOworICAgIHJldHVybiBjYWNoZS5wdXQoJy8nLCBuZXcgUmVzcG9u
c2UoZGF0YS50b1N0cmluZygpKSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
ICAgICAgIHJldHVybiBjYWNoZS5tYXRjaCgnLycpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24ocikgeworICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgb3JpZ2luYWwgcmVzcG9u
c2UgaXMgbm90IEdDJ2QuCisgICAgICAgICAgcmVzcG9uc2UgPSByOworICAgICAgICAgIC8vIFJl
dHVybiBvbmx5IHRoZSBjbG9uZS4gIFdlIHB1cnBvc2VmdWxseSB0ZXN0IHRoYXQgdGhlIG90aGVy
CisgICAgICAgICAgLy8gaGFsZiBvZiB0aGUgY2xvbmUgZG9lcyBub3QgbmVlZCB0byBiZSByZWFk
IGhlcmUuCisgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmNsb25lKCkudGV4dCgpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24odGV4dCkgeworICAgICAgICAgIGFzc2VydF9lcXVh
bHModGV4dCwgZGF0YS50b1N0cmluZygpLCAnY2xvbmVkIGJvZHkgdGV4dCBjYW4gYmUgcmVhZCBj
b3JyZWN0bHknKTsKKyAgICAgICAgfSk7CisgIH0sICdDYWNoZSBwcm9kdWNlcyBsYXJnZSBSZXNw
b25zZXMgdGhhdCBjYW4gYmUgY2xvbmVkIGFuZCByZWFkIGNvcnJlY3RseS4nKTsKKwogZG9uZSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtbWF0Y2hB
bGwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1tYXRjaEFsbC5qcwpp
bmRleCAyYmM2NjFhNWM5MDVkZmJmMTBkM2ViNzI3YmEyYTYzYjBhNzQxODAwLi5iN2M3YmQ2Mzc4
NWMzYjc1N2MzMjVmZmFiMjBkYWE1Yzg0OGY0YTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9y
YWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1tYXRjaEFsbC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3NjcmlwdC10ZXN0cy9jYWNoZS1tYXRjaEFsbC5qcwpAQCAtMSwxMyArMSwxMiBAQAogaWYgKHNl
bGYuaW1wb3J0U2NyaXB0cykgewogICAgIGltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMnKTsKLSAgICBpbXBvcnRTY3JpcHRzKCcuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mt
aGVscGVycy5qcycpOwogICAgIGltcG9ydFNjcmlwdHMoJy4uL3Jlc291cmNlcy90ZXN0LWhlbHBl
cnMuanMnKTsKIH0KIAogcHJlcG9wdWxhdGVkX2NhY2hlX3Rlc3Qoc2ltcGxlX2VudHJpZXMsIGZ1
bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7CiAgICAgcmV0dXJuIGNhY2hlLm1hdGNoQWxsKCdub3Qt
cHJlc2VudC1pbi10aGUtY2FjaGUnKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgICAgICAgYXNzZXJ0X3Jlc3BvbnNlX2FycmF5X2VxdWl2YWxlbnQoCisgICAgICAgICAgYXNz
ZXJ0X3Jlc3BvbnNlX2FycmF5X2VxdWFscygKICAgICAgICAgICAgIHJlc3VsdCwgW10sCiAgICAg
ICAgICAgICAnQ2FjaGUubWF0Y2hBbGwgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJh
eSBvbiBmYWlsdXJlLicpOwogICAgICAgICB9KTsKQEAgLTQwLDEwICszOSwyMCBAQCBwcmVwb3B1
bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rpb24oY2FjaGUsIGVudHJpZXMp
IHsKICAgfSwgJ0NhY2hlLm1hdGNoQWxsIHdpdGggbmV3IFJlcXVlc3QnKTsKIAogcHJlcG9wdWxh
dGVkX2NhY2hlX3Rlc3Qoc2ltcGxlX2VudHJpZXMsIGZ1bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7
CisgICAgcmV0dXJuIGNhY2hlLm1hdGNoQWxsKG5ldyBSZXF1ZXN0KGVudHJpZXMuYS5yZXF1ZXN0
LnVybCwge21ldGhvZDogJ0hFQUQnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZ25v
cmVTZWFyY2g6IHRydWV9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAg
ICAgYXNzZXJ0X3Jlc3BvbnNlX2FycmF5X2VxdWFscygKKyAgICAgICAgICAgIHJlc3VsdCwgW10s
CisgICAgICAgICAgICAnQ2FjaGUubWF0Y2hBbGwgc2hvdWxkIG5vdCBtYXRjaCBIRUFEIFJlcXVl
c3QuJyk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGUubWF0Y2hBbGwgd2l0aCBIRUFEJyk7CisK
K3ByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBmdW5jdGlvbihjYWNoZSwg
ZW50cmllcykgewogICAgIHJldHVybiBjYWNoZS5tYXRjaEFsbChlbnRyaWVzLmEucmVxdWVzdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAge2lnbm9yZVNlYXJjaDogdHJ1ZX0pCiAgICAgICAu
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlf
ZXF1aXZhbGVudCgKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxzKAogICAg
ICAgICAgICAgcmVzdWx0LAogICAgICAgICAgICAgWwogICAgICAgICAgICAgICBlbnRyaWVzLmEu
cmVzcG9uc2UsCkBAIC02MCw3ICs2OSw3IEBAIHByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBs
ZV9lbnRyaWVzLCBmdW5jdGlvbihjYWNoZSwgZW50cmllcykgewogICAgIHJldHVybiBjYWNoZS5t
YXRjaEFsbChlbnRyaWVzLmFfd2l0aF9xdWVyeS5yZXF1ZXN0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICB7aWdub3JlU2VhcmNoOiB0cnVlfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgICAgICAgIGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVpdmFsZW50KAorICAgICAg
ICAgIGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVhbHMoCiAgICAgICAgICAgICByZXN1bHQsCiAg
ICAgICAgICAgICBbCiAgICAgICAgICAgICAgIGVudHJpZXMuYS5yZXNwb25zZSwKQEAgLTcwLDEy
ICs3OSw2MiBAQCBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdChzaW1wbGVfZW50cmllcywgZnVuY3Rp
b24oY2FjaGUsIGVudHJpZXMpIHsKICAgICAgICAgICAgICdzZWFyY2ggcGFyYW1ldGVycyBvZiBy
ZXF1ZXN0LicpOwogICAgICAgICB9KTsKICAgfSwKLSAgJ0NhY2hlLm1hdGNoQWxsIHdpdGggaWdu
b3JlU2VhcmNoIG9wdGlvbiAocmVxdWVzdCB3aXRoIHNlYXJjaCBwYXJhbWV0ZXIpJyk7CisgICdD
YWNoZS5tYXRjaEFsbCB3aXRoIGlnbm9yZVNlYXJjaCBvcHRpb24gKHJlcXVlc3Qgd2l0aCBzZWFy
Y2ggcGFyYW1ldGVycyknKTsKKworY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgeworICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9leGFtcGxlLmNvbS8nKTsKKyAgICB2YXIg
aGVhZF9yZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9leGFtcGxlLmNvbS8nLCB7bWV0aG9k
OiAnSEVBRCd9KTsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoJ2ZvbycpOworICAg
IHJldHVybiBjYWNoZS5wdXQocmVxdWVzdC5jbG9uZSgpLCByZXNwb25zZS5jbG9uZSgpKQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNhY2hlLm1hdGNoQWxsKGhl
YWRfcmVxdWVzdC5jbG9uZSgpKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVhbHMoCisgICAgICAg
ICAgICByZXN1bHQsIFtdLAorICAgICAgICAgICAgJ0NhY2hlLm1hdGNoQWxsIHNob3VsZCByZXNv
bHZlIHdpdGggZW1wdHkgYXJyYXkgZm9yIGEgJyArCisgICAgICAgICAgICAnbWlzbWF0Y2hlZCBt
ZXRob2QuJyk7CisgICAgICAgICAgcmV0dXJuIGNhY2hlLm1hdGNoQWxsKGhlYWRfcmVxdWVzdC5j
bG9uZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aWdub3JlTWV0aG9kOiB0
cnVlfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAg
ICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxzKAorICAgICAgICAgICAgcmVzdWx0LCBb
cmVzcG9uc2VdLAorICAgICAgICAgICAgJ0NhY2hlLm1hdGNoQWxsIHdpdGggaWdub3JlTWV0aG9k
IHNob3VsZCBpZ25vcmUgdGhlICcgKworICAgICAgICAgICAgJ21ldGhvZCBvZiByZXF1ZXN0Licp
OworICAgICAgICB9KTsKKyAgfSwgJ0NhY2hlLm1hdGNoQWxsIHN1cHBvcnRzIGlnbm9yZU1ldGhv
ZCcpOworCitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CisgICAgdmFyIHZhcnlfcmVxdWVz
dCA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vZXhhbXBsZS5jb20vYycsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHtoZWFkZXJzOiB7J0Nvb2tpZXMnOiAnaXMtZm9yLWNvb2tpZSd9
fSk7CisgICAgdmFyIHZhcnlfcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoJycsIHtoZWFkZXJzOiB7
J1ZhcnknOiAnQ29va2llcyd9fSk7CisgICAgdmFyIG1pc21hdGNoZWRfdmFyeV9yZXF1ZXN0ID0g
bmV3IFJlcXVlc3QoJ2h0dHA6Ly9leGFtcGxlLmNvbS9jJyk7CisKKyAgICByZXR1cm4gY2FjaGUu
cHV0KHZhcnlfcmVxdWVzdC5jbG9uZSgpLCB2YXJ5X3Jlc3BvbnNlLmNsb25lKCkpCisgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gY2FjaGUubWF0Y2hBbGwobWlzbWF0
Y2hlZF92YXJ5X3JlcXVlc3QuY2xvbmUoKSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxzKAor
ICAgICAgICAgICAgcmVzdWx0LCBbXSwKKyAgICAgICAgICAgICdDYWNoZS5tYXRjaEFsbCBzaG91
bGQgcmVzb2x2ZSBhcyB1bmRlZmluZWQgd2l0aCBhICcgKworICAgICAgICAgICAgJ21pc21hdGNo
ZWQgdmFyeS4nKTsKKyAgICAgICAgICByZXR1cm4gY2FjaGUubWF0Y2hBbGwobWlzbWF0Y2hlZF92
YXJ5X3JlcXVlc3QuY2xvbmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpZ25v
cmVWYXJ5OiB0cnVlfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxzKAorICAgICAgICAgICAg
cmVzdWx0LCBbdmFyeV9yZXNwb25zZV0sCisgICAgICAgICAgICAnQ2FjaGUubWF0Y2hBbGwgd2l0
aCBpZ25vcmVWYXJ5IHNob3VsZCBpZ25vcmUgdGhlICcgKworICAgICAgICAgICAgJ3Zhcnkgb2Yg
cmVxdWVzdC4nKTsKKyAgICAgICAgfSk7CisgIH0sICdDYWNoZS5tYXRjaEFsbCBzdXBwb3J0cyBp
Z25vcmVWYXJ5Jyk7CiAKIHByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBm
dW5jdGlvbihjYWNoZSwgZW50cmllcykgewogICAgIHJldHVybiBjYWNoZS5tYXRjaEFsbChlbnRy
aWVzLmNhdC5yZXF1ZXN0LnVybCArICcjbW91c2UnKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgICAgICAgYXNzZXJ0X3Jlc3BvbnNlX2FycmF5X2VxdWl2YWxlbnQoCisgICAg
ICAgICAgYXNzZXJ0X3Jlc3BvbnNlX2FycmF5X2VxdWFscygKICAgICAgICAgICAgIHJlc3VsdCwK
ICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgZW50cmllcy5jYXQucmVzcG9uc2UsCkBAIC04
NywxNyArMTQ2LDQwIEBAIHByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBm
dW5jdGlvbihjYWNoZSwgZW50cmllcykgewogcHJlcG9wdWxhdGVkX2NhY2hlX3Rlc3Qoc2ltcGxl
X2VudHJpZXMsIGZ1bmN0aW9uKGNhY2hlLCBlbnRyaWVzKSB7CiAgICAgcmV0dXJuIGNhY2hlLm1h
dGNoQWxsKCdodHRwJykKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAg
IGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVpdmFsZW50KAorICAgICAgICAgIGFzc2VydF9yZXNw
b25zZV9hcnJheV9lcXVhbHMoCiAgICAgICAgICAgICByZXN1bHQsIFtdLAogICAgICAgICAgICAg
J0NhY2hlLm1hdGNoQWxsIHNob3VsZCB0cmVhdCBxdWVyeSBhcyBhIFVSTCBhbmQgbm90ICcgKwog
ICAgICAgICAgICAgJ2p1c3QgYSBzdHJpbmcgZnJhZ21lbnQuJyk7CiAgICAgICAgIH0pOwogICB9
LCAnQ2FjaGUubWF0Y2hBbGwgd2l0aCBzdHJpbmcgZnJhZ21lbnQgImh0dHAiIGFzIHF1ZXJ5Jyk7
CiAKK3ByZXBvcHVsYXRlZF9jYWNoZV90ZXN0KHNpbXBsZV9lbnRyaWVzLCBmdW5jdGlvbihjYWNo
ZSwgZW50cmllcykgeworICAgIHJldHVybiBjYWNoZS5tYXRjaEFsbCgpCisgICAgICAudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxz
KAorICAgICAgICAgICAgcmVzdWx0LAorICAgICAgICAgICAgWworICAgICAgICAgICAgICBlbnRy
aWVzLmEucmVzcG9uc2UsCisgICAgICAgICAgICAgIGVudHJpZXMuYi5yZXNwb25zZSwKKyAgICAg
ICAgICAgICAgZW50cmllcy5hX3dpdGhfcXVlcnkucmVzcG9uc2UsCisgICAgICAgICAgICAgIGVu
dHJpZXMuQS5yZXNwb25zZSwKKyAgICAgICAgICAgICAgZW50cmllcy5hX2h0dHBzLnJlc3BvbnNl
LAorICAgICAgICAgICAgICBlbnRyaWVzLmFfb3JnLnJlc3BvbnNlLAorICAgICAgICAgICAgICBl
bnRyaWVzLmNhdC5yZXNwb25zZSwKKyAgICAgICAgICAgICAgZW50cmllcy5jYXRtYW5kdS5yZXNw
b25zZSwKKyAgICAgICAgICAgICAgZW50cmllcy5jYXRfbnVtX2xpdmVzLnJlc3BvbnNlLAorICAg
ICAgICAgICAgICBlbnRyaWVzLmNhdF9pbl90aGVfaGF0LnJlc3BvbnNlLAorICAgICAgICAgICAg
ICBlbnRyaWVzLm5vbl8yeHhfcmVzcG9uc2UucmVzcG9uc2UsCisgICAgICAgICAgICAgIGVudHJp
ZXMuZXJyb3JfcmVzcG9uc2UucmVzcG9uc2UKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAn
Q2FjaGUubWF0Y2hBbGwgd2l0aG91dCBwYXJhbWV0ZXJzIHNob3VsZCBtYXRjaCBhbGwgZW50cmll
cy4nKTsKKyAgICAgICAgfSk7CisgIH0sICdDYWNoZS5tYXRjaEFsbCB3aXRob3V0IHBhcmFtZXRl
cnMnKTsKKwogcHJlcG9wdWxhdGVkX2NhY2hlX3Rlc3QodmFyeV9lbnRyaWVzLCBmdW5jdGlvbihj
YWNoZSwgZW50cmllcykgewogICAgIHJldHVybiBjYWNoZS5tYXRjaEFsbCgnaHR0cDovL2V4YW1w
bGUuY29tL2MnKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAgYXNz
ZXJ0X3Jlc3BvbnNlX2FycmF5X2VxdWl2YWxlbnQoCisgICAgICAgICAgYXNzZXJ0X3Jlc3BvbnNl
X2FycmF5X2VxdWFscygKICAgICAgICAgICAgIHJlc3VsdCwKICAgICAgICAgICAgIFsKICAgICAg
ICAgICAgICAgZW50cmllcy52YXJ5X2Nvb2tpZV9hYnNlbnQucmVzcG9uc2UKQEAgLTExMyw3ICsx
OTUsNyBAQCBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdCh2YXJ5X2VudHJpZXMsIGZ1bmN0aW9uKGNh
Y2hlLCBlbnRyaWVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydDb29r
aWVzJzogJ25vbmUtb2YtdGhlLWFib3ZlJ319KSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1aXZh
bGVudCgKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxzKAogICAgICAgICAg
ICAgcmVzdWx0LAogICAgICAgICAgICAgWwogICAgICAgICAgICAgXSwKQEAgLTEyOCw3ICsyMTAs
NyBAQCBwcmVwb3B1bGF0ZWRfY2FjaGVfdGVzdCh2YXJ5X2VudHJpZXMsIGZ1bmN0aW9uKGNhY2hl
LCBlbnRyaWVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydDb29raWVz
JzogJ2lzLWZvci1jb29raWUnfX0pKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgICAgICAgIGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVpdmFsZW50KAor
ICAgICAgICAgIGFzc2VydF9yZXNwb25zZV9hcnJheV9lcXVhbHMoCiAgICAgICAgICAgICByZXN1
bHQsCiAgICAgICAgICAgICBbZW50cmllcy52YXJ5X2Nvb2tpZV9pc19jb29raWUucmVzcG9uc2Vd
LAogICAgICAgICAgICAgJ0NhY2hlLm1hdGNoQWxsIHNob3VsZCBtYXRjaCB0aGUgZW50aXJlIGhl
YWRlciBpZiBhIHZhcnkgaGVhZGVyICcgKwpAQCAtMTQwLDE1ICsyMjIsMTYgQEAgcHJlcG9wdWxh
dGVkX2NhY2hlX3Rlc3QodmFyeV9lbnRyaWVzLCBmdW5jdGlvbihjYWNoZSwgZW50cmllcykgewog
ICAgIHJldHVybiBjYWNoZS5tYXRjaEFsbCgnaHR0cDovL2V4YW1wbGUuY29tL2MnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICB7aWdub3JlVmFyeTogdHJ1ZX0pCiAgICAgICAudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1aXZhbGVu
dCgKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfYXJyYXlfZXF1YWxzKAogICAgICAgICAgICAg
cmVzdWx0LAogICAgICAgICAgICAgWwogICAgICAgICAgICAgICBlbnRyaWVzLnZhcnlfY29va2ll
X2lzX2Nvb2tpZS5yZXNwb25zZSwKICAgICAgICAgICAgICAgZW50cmllcy52YXJ5X2Nvb2tpZV9p
c19nb29kLnJlc3BvbnNlLAogICAgICAgICAgICAgICBlbnRyaWVzLnZhcnlfY29va2llX2Fic2Vu
dC5yZXNwb25zZQogICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICdDYWNoZS5tYXRjaEFsbCBz
aG91bGQgaG9ub3IgImlnbm9yZVZhcnkiIHBhcmFtZXRlci4nKTsKKyAgICAgICAgICAgICdDYWNo
ZS5tYXRjaEFsbCBzaG91bGQgc3VwcG9ydCBtdWx0aXBsZSB2YXJ5IHJlcXVlc3QvcmVzcG9uc2Ug
JyArCisgICAgICAgICAgICAncGFpcnMuJyk7CiAgICAgICAgIH0pOwotICB9LCAnQ2FjaGUubWF0
Y2hBbGwgd2l0aCAiaWdub3JlVmFyeSIgcGFyYW1ldGVyJyk7CisgIH0sICdDYWNoZS5tYXRjaEFs
bCB3aXRoIG11bHRpcGxlIHZhcnkgcGFpcnMnKTsKIAogZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
Y2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtcHV0LmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFn
ZS9zY3JpcHQtdGVzdHMvY2FjaGUtcHV0LmpzCmluZGV4IDhkYmFmOTc4OWQ1YThiODgxYzkzOTVk
N2Q2ZTM2ODVmMzgxMTQ1YzUuLjQ2N2UwYjM4ZTljMzc5YzU1MTM3YjFkNzc0OWIyZTZlZmIxMGU5
ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NhY2hlLXB1dC5q
cworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1wdXQuanMKQEAgLTEs
NiArMSw1IEBACiBpZiAoc2VsZi5pbXBvcnRTY3JpcHRzKSB7CiAgICAgaW1wb3J0U2NyaXB0cygn
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOwotICAgIGltcG9ydFNjcmlwdHMoJy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzJyk7CiAgICAgaW1wb3J0U2NyaXB0cygnLi4vcmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5qcycpOwogfQogCkBAIC0xMDMsNiArMTAyLDMzIEBAIGNhY2hl
X3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKICAgICAgICAgfSk7CiAgIH0sICdDYWNoZS5wdXQgd2l0
aCBhbiBlbXB0eSByZXNwb25zZSBib2R5Jyk7CiAKK2NhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUs
IHRlc3QpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHRlc3RfdXJsKTsKKyAgICB2
YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoJycsIHsKKyAgICAgICAgc3RhdHVzOiAyMDYsCisg
ICAgICAgIGhlYWRlcnM6IFtbJ0NvbnRlbnQtVHlwZScsICd0ZXh0L3BsYWluJ11dCisgICAgICB9
KTsKKworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMoCisgICAgICB0ZXN0LAorICAgICAgbmV3
IFR5cGVFcnJvcigpLAorICAgICAgY2FjaGUucHV0KHJlcXVlc3QsIHJlc3BvbnNlKSwKKyAgICAg
ICdDYWNoZS5wdXQgc2hvdWxkIHJlamVjdCAyMDYgUmVzcG9uc2VzIHdpdGggYSBUeXBlRXJyb3Iu
Jyk7CisgIH0sICdDYWNoZS5wdXQgd2l0aCBzeW50aGV0aWMgMjA2IHJlc3BvbnNlJyk7CisKK2Nh
Y2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUsIHRlc3QpIHsKKyAgICB2YXIgdGVzdF91cmwgPSBuZXcg
VVJMKCcuLi9yZXNvdXJjZXMvZmV0Y2gtc3RhdHVzLnB5P3N0YXR1cz0yMDYnLCBsb2NhdGlvbi5o
cmVmKS5ocmVmOworICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QodGVzdF91cmwpOworICAg
IHZhciByZXNwb25zZTsKKyAgICByZXR1cm4gZmV0Y2godGVzdF91cmwpCisgICAgICAudGhlbihm
dW5jdGlvbihmZXRjaF9yZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZldGNoX3Jl
c3VsdC5zdGF0dXMsIDIwNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICdUZXN0IGZyYW1ld29y
ayBlcnJvcjogVGhlIHN0YXR1cyBjb2RlIHNob3VsZCBiZSAyMDYuJyk7CisgICAgICAgICAgcmVz
cG9uc2UgPSBmZXRjaF9yZXN1bHQuY2xvbmUoKTsKKyAgICAgICAgICByZXR1cm4gcHJvbWlzZV9y
ZWplY3RzKHRlc3QsIG5ldyBUeXBlRXJyb3IsIGNhY2hlLnB1dChyZXF1ZXN0LCBmZXRjaF9yZXN1
bHQpKTsKKyAgICAgICAgfSk7CisgIH0sICdDYWNoZS5wdXQgd2l0aCBIVFRQIDIwNiByZXNwb25z
ZScpOworCiBjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CiAgICAgdmFyIHRlc3RfdXJsID0g
bmV3IFVSTCgnLi4vcmVzb3VyY2VzL2ZldGNoLXN0YXR1cy5weT9zdGF0dXM9NTAwJywgbG9jYXRp
b24uaHJlZikuaHJlZjsKICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHRlc3RfdXJsKTsK
QEAgLTE5MCwxOCArMjE2LDIwIEBAIGNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKICAgICAg
ICAgfSk7CiAgIH0sICdDYWNoZS5wdXQgd2l0aCBhIHN0cmluZyByZXF1ZXN0Jyk7CiAKLWNhY2hl
X3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKLSAgICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0
cygKLSAgICAgIGNhY2hlLnB1dChuZXcgUmVxdWVzdCh0ZXN0X3VybCksICdIZWxsbyB3b3JsZCEn
KSwKK2NhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUsIHRlc3QpIHsKKyAgICByZXR1cm4gcHJvbWlz
ZV9yZWplY3RzKAorICAgICAgdGVzdCwKICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGNh
Y2hlLnB1dChuZXcgUmVxdWVzdCh0ZXN0X3VybCksICdIZWxsbyB3b3JsZCEnKSwKICAgICAgICdD
YWNoZS5wdXQgc2hvdWxkIG9ubHkgYWNjZXB0IGEgUmVzcG9uc2Ugb2JqZWN0IGFzIHRoZSByZXNw
b25zZS4nKTsKICAgfSwgJ0NhY2hlLnB1dCB3aXRoIGFuIGludmFsaWQgcmVzcG9uc2UnKTsKIAot
Y2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgewotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9y
ZWplY3RzKAorY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSwgdGVzdCkgeworICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHMoCisgICAgICB0ZXN0LAorICAgICAgbmV3IFR5cGVFcnJvcigpLAogICAg
ICAgY2FjaGUucHV0KG5ldyBSZXF1ZXN0KCdmaWxlOi8vL2V0Yy9wYXNzd2QnKSwKICAgICAgICAg
ICAgICAgICBuZXcgUmVzcG9uc2UodGVzdF9ib2R5KSksCi0gICAgICBuZXcgVHlwZUVycm9yKCks
CiAgICAgICAnQ2FjaGUucHV0IHNob3VsZCByZWplY3Qgbm9uLUhUVFAvSFRUUFMgcmVxdWVzdHMg
d2l0aCBhIFR5cGVFcnJvci4nKTsKICAgfSwgJ0NhY2hlLnB1dCB3aXRoIGEgbm9uLUhUVFAvSFRU
UFMgcmVxdWVzdCcpOwogCkBAIC0yMTgsMjYgKzI0NiwyOSBAQCBjYWNoZV90ZXN0KGZ1bmN0aW9u
KGNhY2hlKSB7CiAgICAgICAgIH0pOwogICB9LCAnQ2FjaGUucHV0IHdpdGggYSByZWxhdGl2ZSBV
UkwnKTsKIAotY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkgeworY2FjaGVfdGVzdChmdW5jdGlv
bihjYWNoZSwgdGVzdCkgewogICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9l
eGFtcGxlLmNvbS9mb28nLCB7IG1ldGhvZDogJ0hFQUQnIH0pOwotICAgIHJldHVybiBhc3NlcnRf
cHJvbWlzZV9yZWplY3RzKAotICAgICAgY2FjaGUucHV0KHJlcXVlc3QsIG5ldyBSZXNwb25zZSh0
ZXN0X2JvZHkpKSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdGVzdCwKICAg
ICAgIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgIGNhY2hlLnB1dChyZXF1ZXN0LCBuZXcgUmVzcG9u
c2UodGVzdF9ib2R5KSksCiAgICAgICAnQ2FjaGUucHV0IHNob3VsZCB0aHJvdyBhIFR5cGVFcnJv
ciBmb3Igbm9uLUdFVCByZXF1ZXN0cy4nKTsKICAgfSwgJ0NhY2hlLnB1dCB3aXRoIGEgbm9uLUdF
VCByZXF1ZXN0Jyk7CiAKLWNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKLSAgICByZXR1cm4g
YXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgIGNhY2hlLnB1dChuZXcgUmVxdWVzdCh0ZXN0
X3VybCksIG51bGwpLAorY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSwgdGVzdCkgeworICAgIHJl
dHVybiBwcm9taXNlX3JlamVjdHMoCisgICAgICB0ZXN0LAogICAgICAgbmV3IFR5cGVFcnJvcigp
LAorICAgICAgY2FjaGUucHV0KG5ldyBSZXF1ZXN0KHRlc3RfdXJsKSwgbnVsbCksCiAgICAgICAn
Q2FjaGUucHV0IHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciBmb3IgYSBudWxsIHJlc3BvbnNlLicp
OwogICB9LCAnQ2FjaGUucHV0IHdpdGggYSBudWxsIHJlc3BvbnNlJyk7CiAKLWNhY2hlX3Rlc3Qo
ZnVuY3Rpb24oY2FjaGUpIHsKK2NhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUsIHRlc3QpIHsKICAg
ICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KHRlc3RfdXJsLCB7bWV0aG9kOiAnUE9TVCcsIGJv
ZHk6IHRlc3RfYm9keX0pOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAg
ICAgY2FjaGUucHV0KHJlcXVlc3QsIG5ldyBSZXNwb25zZSh0ZXN0X2JvZHkpKSwKKyAgICByZXR1
cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdGVzdCwKICAgICAgIG5ldyBUeXBlRXJyb3IoKSwK
KyAgICAgIGNhY2hlLnB1dChyZXF1ZXN0LCBuZXcgUmVzcG9uc2UodGVzdF9ib2R5KSksCiAgICAg
ICAnQ2FjaGUucHV0IHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciBmb3IgYSBQT1NUIHJlcXVlc3Qu
Jyk7CiAgIH0sICdDYWNoZS5wdXQgd2l0aCBhIFBPU1QgcmVxdWVzdCcpOwogCkBAIC0yNjYsMjIg
KzI5Nyw0MiBAQCBjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CiAgICAgICB9KTsKICAgfSwg
J2dldFJlYWRlcigpIGFmdGVyIENhY2hlLnB1dCcpOwogCi1jYWNoZV90ZXN0KGZ1bmN0aW9uKGNh
Y2hlKSB7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCitjYWNoZV90ZXN0KGZ1
bmN0aW9uKGNhY2hlLCB0ZXN0KSB7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cygKKyAgICAg
IHRlc3QsCisgICAgICBuZXcgVHlwZUVycm9yKCksCiAgICAgICBjYWNoZS5wdXQobmV3IFJlcXVl
c3QodGVzdF91cmwpLAogICAgICAgICAgICAgICAgIG5ldyBSZXNwb25zZSh0ZXN0X2JvZHksIHsg
aGVhZGVyczogeyBWQVJZOiAnKicgfX0pKSwKLSAgICAgIG5ldyBUeXBlRXJyb3IoKSwKICAgICAg
ICdDYWNoZS5wdXQgc2hvdWxkIHJlamVjdCBWQVJZOiogUmVzcG9uc2VzIHdpdGggYSBUeXBlRXJy
b3IuJyk7CiAgIH0sICdDYWNoZS5wdXQgd2l0aCBhIFZBUlk6KiBSZXNwb25zZScpOwogCi1jYWNo
ZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVj
dHMoCitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlLCB0ZXN0KSB7CisgICAgcmV0dXJuIHByb21p
c2VfcmVqZWN0cygKKyAgICAgIHRlc3QsCisgICAgICBuZXcgVHlwZUVycm9yKCksCiAgICAgICBj
YWNoZS5wdXQobmV3IFJlcXVlc3QodGVzdF91cmwpLAogICAgICAgICAgICAgICAgIG5ldyBSZXNw
b25zZSh0ZXN0X2JvZHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgaGVhZGVyczog
eyBWQVJZOiAnQWNjZXB0LUxhbmd1YWdlLConIH19KSksCi0gICAgICBuZXcgVHlwZUVycm9yKCks
CiAgICAgICAnQ2FjaGUucHV0IHNob3VsZCByZWplY3QgUmVzcG9uc2VzIHdpdGggYW4gZW1iZWRk
ZWQgVkFSWToqIHdpdGggYSAnICsKICAgICAgICdUeXBlRXJyb3IuJyk7CiAgIH0sICdDYWNoZS5w
dXQgd2l0aCBhbiBlbWJlZGRlZCBWQVJZOiogUmVzcG9uc2UnKTsKIAorY2FjaGVfdGVzdChmdW5j
dGlvbihjYWNoZSkgeworICAgIHZhciB1cmwgPSAnZm9vLmh0bWwnOworICAgIHZhciByZWRpcmVj
dFVSTCA9ICdodHRwOi8vZXhhbXBsZS5jb20vZm9vLWJhci5odG1sJzsKKyAgICB2YXIgcmVkaXJl
Y3RSZXNwb25zZSA9IFJlc3BvbnNlLnJlZGlyZWN0KHJlZGlyZWN0VVJMKTsKKyAgICBhc3NlcnRf
ZXF1YWxzKHJlZGlyZWN0UmVzcG9uc2UuaGVhZGVycy5nZXQoJ0xvY2F0aW9uJyksIHJlZGlyZWN0
VVJMLAorICAgICAgICAgICAgICAgICAgJ1Jlc3BvbnNlLnJlZGlyZWN0KCkgc2hvdWxkIHNldCBM
b2NhdGlvbiBoZWFkZXIuJyk7CisgICAgcmV0dXJuIGNhY2hlLnB1dCh1cmwsIHJlZGlyZWN0UmVz
cG9uc2UuY2xvbmUoKSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVy
biBjYWNoZS5tYXRjaCh1cmwpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVz
cG9uc2UpIHsKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfZXF1YWxzKHJlc3BvbnNlLCByZWRp
cmVjdFJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZGlyZWN0
IHJlc3BvbnNlIGlzIHJlcHJvZHVjZWQgYnkgdGhlIENhY2hlIEFQSScpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVzcG9uc2UuaGVhZGVycy5nZXQoJ0xvY2F0aW9uJyksIHJlZGlyZWN0VVJM
LAorICAgICAgICAgICAgICAgICAgICAgICAgJ0xvY2F0aW9uIGhlYWRlciBpcyBwcmVzZXJ2ZWQg
YnkgQ2FjaGUgQVBJLicpOworICAgICAgICB9KTsKKyAgfSwgJ0NhY2hlLnB1dCBzaG91bGQgc3Rv
cmUgUmVzcG9uc2UucmVkaXJlY3QoKSBjb3JyZWN0bHknKTsKKwogZG9uZSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtc3RvcmFnZS1rZXlzLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtc3RvcmFnZS1rZXlzLmpzCmluZGV4
IDRkN2JjNjIzZjAwZGJhMGM0NmNiM2Y0M2Q4MzA1ZmI3NjM2ZTk5MzAuLmVmMDZjY2RmZjVjOGRm
MjljMmFlZmI1ZDExYzRkM2RmY2Y0OTNiZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uv
c2NyaXB0LXRlc3RzL2NhY2hlLXN0b3JhZ2Uta2V5cy5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3NjcmlwdC10ZXN0cy9jYWNoZS1zdG9yYWdlLWtleXMuanMKQEAgLTEsNiArMSw1IEBACiBpZiAo
c2VsZi5pbXBvcnRTY3JpcHRzKSB7CiAgICAgaW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcycpOwotICAgIGltcG9ydFNjcmlwdHMoJy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy1oZWxwZXJzLmpzJyk7CiAgICAgaW1wb3J0U2NyaXB0cygnLi4vcmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5qcycpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0
cy9jYWNoZS1zdG9yYWdlLW1hdGNoLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMv
Y2FjaGUtc3RvcmFnZS1tYXRjaC5qcwppbmRleCAwMDUyZTQzY2EzMGIzMDg0NGNkYThjNmYyZGI5
NmM1YjUwZTg4NmQ3Li4zNTQ2NTIwNDg2NDI1ZThkZTI3ZGE3YjdmYzI3MGNlNzVhZDYxYTdiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1zdG9yYWdlLW1h
dGNoLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NhY2hlLXN0b3JhZ2Ut
bWF0Y2guanMKQEAgLTEsNiArMSw1IEBACiBpZiAoc2VsZi5pbXBvcnRTY3JpcHRzKSB7CiAgICAg
aW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOwotICAgIGltcG9ydFNj
cmlwdHMoJy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzJyk7CiAgICAgaW1wb3J0
U2NyaXB0cygnLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5qcycpOwogfQogCkBAIC02MSw3ICs2
MCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CiAgICAgcmV0dXJuIFByb21pc2Uu
YWxsKHRlc3RfY2FjaGVfbGlzdC5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgIHJldHVybiBz
ZWxmLmNhY2hlcy5vcGVuKGtleSk7CiAgICAgICB9KSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
eyByZXR1cm4gY2FjaGVzLm9wZW4oJ3gnKTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gc2VsZi5jYWNoZXMub3BlbigneCcpOyB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oY2Fj
aGUpIHsKICAgICAgICAgICByZXR1cm4gY2FjaGUucHV0KHRyYW5zYWN0aW9uLnJlcXVlc3QuY2xv
bmUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJlc3BvbnNlLmNs
b25lKCkpOwpAQCAtOTQsMTMgKzkzLDI2IEBAIGNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsK
ICAgICAgICAgfSk7CiB9LCAnQ2FjaGVTdG9yYWdlTWF0Y2ggYSBzdHJpbmcgcmVxdWVzdCcpOwog
CitjYWNoZV90ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CisgICAgdmFyIHRyYW5zYWN0aW9uID0gY3Jl
YXRlX3VuaXF1ZV90cmFuc2FjdGlvbigpOworICAgIHJldHVybiBjYWNoZS5wdXQodHJhbnNhY3Rp
b24ucmVxdWVzdC5jbG9uZSgpLCB0cmFuc2FjdGlvbi5yZXNwb25zZS5jbG9uZSgpKQorICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLm1hdGNoKG5l
dyBSZXF1ZXN0KHRyYW5zYWN0aW9uLnJlcXVlc3QudXJsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdIRUFEJ30pKTsKKyAgICAgICAgfSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXNwb25zZSwgdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ0EgSEVBRCBy
ZXF1ZXN0IHNob3VsZCBub3QgYmUgbWF0Y2hlZCcpOworICAgICAgICB9KTsKK30sICdDYWNoZVN0
b3JhZ2VNYXRjaCBhIEhFQUQgcmVxdWVzdCcpOworCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgewogICAgIHZhciB0cmFuc2FjdGlvbiA9IGNyZWF0ZV91bmlxdWVfdHJhbnNhY3Rpb24oKTsK
ICAgICByZXR1cm4gc2VsZi5jYWNoZXMubWF0Y2godHJhbnNhY3Rpb24ucmVxdWVzdCkKICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CiAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNw
b25zZSwgdW5kZWZpbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSByZXNwb25zZSBz
aG91bGQgbm90IGJlIGZvdW5kLicpOwotICAgICAgICB9KQorICAgICAgICB9KTsKIH0sICdDYWNo
ZVN0b3JhZ2VNYXRjaCB3aXRoIG5vIGNhY2hlZCBlbnRyeScpOwogCiBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odGVzdCkgewpAQCAtMTE4LDcgKzEzMCwxMTMgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHRlc3QpIHsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGhhc19mb28pIHsKICAg
ICAgICAgICBhc3NlcnRfZmFsc2UoaGFzX2ZvbywgIlRoZSBjYWNoZSBzaG91bGQgc3RpbGwgbm90
IGV4aXN0LiIpOwotICAgICAgICB9KQorICAgICAgICB9KTsKIH0sICdDYWNoZVN0b3JhZ2VNYXRj
aCB3aXRoIG5vIGNhY2hlcyBhdmFpbGFibGUgYnV0IG5hbWUgcHJvdmlkZWQnKTsKIAorY2FjaGVf
dGVzdChmdW5jdGlvbihjYWNoZSkgeworICAgIHZhciB0cmFuc2FjdGlvbiA9IGNyZWF0ZV91bmlx
dWVfdHJhbnNhY3Rpb24oKTsKKworICAgIHJldHVybiBzZWxmLmNhY2hlcy5kZWxldGUoJycpCisg
ICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gc2VsZi5jYWNoZXMuaGFz
KCcnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGhhc19jYWNoZSkgeworICAg
ICAgICAgIGFzc2VydF9mYWxzZShoYXNfY2FjaGUsICJUaGUgY2FjaGUgc2hvdWxkIG5vdCBleGlz
dC4iKTsKKyAgICAgICAgICByZXR1cm4gY2FjaGUucHV0KHRyYW5zYWN0aW9uLnJlcXVlc3QsIHRy
YW5zYWN0aW9uLnJlc3BvbnNlLmNsb25lKCkpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLm1hdGNoKHRyYW5zYWN0aW9u
LnJlcXVlc3QsIHtjYWNoZU5hbWU6ICcnfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UsIHVuZGVm
aW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgcmVzcG9uc2Ugc2hvdWxkIG5vdCBi
ZSBmb3VuZC4nKTsKKyAgICAgICAgICByZXR1cm4gc2VsZi5jYWNoZXMub3BlbignJyk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihjYWNoZSkgeworICAgICAgICAgIHJldHVybiBj
YWNoZS5wdXQodHJhbnNhY3Rpb24ucmVxdWVzdCwgdHJhbnNhY3Rpb24ucmVzcG9uc2UpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHNlbGYu
Y2FjaGVzLm1hdGNoKHRyYW5zYWN0aW9uLnJlcXVlc3QsIHtjYWNoZU5hbWU6ICcnfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgIGFzc2Vy
dF9yZXNwb25zZV9lcXVhbHMocmVzcG9uc2UsIHRyYW5zYWN0aW9uLnJlc3BvbnNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSByZXNwb25zZSBzaG91bGQgYmUgbWF0Y2hl
ZC4nKTsKKyAgICAgICAgICByZXR1cm4gc2VsZi5jYWNoZXMuZGVsZXRlKCcnKTsKKyAgICAgICAg
fSk7Cit9LCAnQ2FjaGVTdG9yYWdlTWF0Y2ggd2l0aCBlbXB0eSBjYWNoZSBuYW1lIHByb3ZpZGVk
Jyk7CisKK2NhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG5l
dyBSZXF1ZXN0KCdodHRwOi8vZXhhbXBsZS5jb20vP2ZvbycpOworICAgIHZhciBub19xdWVyeV9y
ZXF1ZXN0ID0gbmV3IFJlcXVlc3QoJ2h0dHA6Ly9leGFtcGxlLmNvbS8nKTsKKyAgICB2YXIgcmVz
cG9uc2UgPSBuZXcgUmVzcG9uc2UoJ2ZvbycpOworICAgIHJldHVybiBjYWNoZS5wdXQocmVxdWVz
dC5jbG9uZSgpLCByZXNwb25zZS5jbG9uZSgpKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLm1hdGNoKG5vX3F1ZXJ5X3JlcXVlc3QuY2xvbmUo
KSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgcmVzdWx0LCB1bmRlZmluZWQsCisgICAgICAg
ICAgICAnQ2FjaGVTdG9yYWdlTWF0Y2ggc2hvdWxkIHJlc29sdmUgYXMgdW5kZWZpbmVkIHdpdGgg
YSAnICsKKyAgICAgICAgICAgICdtaXNtYXRjaGVkIHF1ZXJ5LicpOworICAgICAgICAgIHJldHVy
biBzZWxmLmNhY2hlcy5tYXRjaChub19xdWVyeV9yZXF1ZXN0LmNsb25lKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHtpZ25vcmVTZWFyY2g6IHRydWV9KTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXNw
b25zZV9lcXVhbHMoCisgICAgICAgICAgICByZXN1bHQsIHJlc3BvbnNlLAorICAgICAgICAgICAg
J0NhY2hlU3RvcmFnZU1hdGNoIHdpdGggaWdub3JlU2VhcmNoIHNob3VsZCBpZ25vcmUgdGhlICcg
KworICAgICAgICAgICAgJ3F1ZXJ5IG9mIHRoZSByZXF1ZXN0LicpOworICAgICAgICB9KTsKKyAg
fSwgJ0NhY2hlU3RvcmFnZU1hdGNoIHN1cHBvcnRzIGlnbm9yZVNlYXJjaCcpOworCitjYWNoZV90
ZXN0KGZ1bmN0aW9uKGNhY2hlKSB7CisgICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVxdWVzdCgnaHR0
cDovL2V4YW1wbGUuY29tLycpOworICAgIHZhciBoZWFkX3JlcXVlc3QgPSBuZXcgUmVxdWVzdCgn
aHR0cDovL2V4YW1wbGUuY29tLycsIHttZXRob2Q6ICdIRUFEJ30pOworICAgIHZhciByZXNwb25z
ZSA9IG5ldyBSZXNwb25zZSgnZm9vJyk7CisgICAgcmV0dXJuIGNhY2hlLnB1dChyZXF1ZXN0LmNs
b25lKCksIHJlc3BvbnNlLmNsb25lKCkpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICByZXR1cm4gc2VsZi5jYWNoZXMubWF0Y2goaGVhZF9yZXF1ZXN0LmNsb25lKCkpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscygKKyAgICAgICAgICAgIHJlc3VsdCwgdW5kZWZpbmVkLAorICAgICAgICAgICAgJ0Nh
Y2hlU3RvcmFnZU1hdGNoIHNob3VsZCByZXNvbHZlIGFzIHVuZGVmaW5lZCB3aXRoIGEgJyArCisg
ICAgICAgICAgICAnbWlzbWF0Y2hlZCBtZXRob2QuJyk7CisgICAgICAgICAgcmV0dXJuIHNlbGYu
Y2FjaGVzLm1hdGNoKGhlYWRfcmVxdWVzdC5jbG9uZSgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7aWdub3JlTWV0aG9kOiB0cnVlfSk7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBhc3NlcnRfcmVzcG9uc2VfZXF1YWxz
KAorICAgICAgICAgICAgcmVzdWx0LCByZXNwb25zZSwKKyAgICAgICAgICAgICdDYWNoZVN0b3Jh
Z2VNYXRjaCB3aXRoIGlnbm9yZU1ldGhvZCBzaG91bGQgaWdub3JlIHRoZSAnICsKKyAgICAgICAg
ICAgICdtZXRob2Qgb2YgcmVxdWVzdC4nKTsKKyAgICAgICAgfSk7CisgIH0sICdDYWNoZS5tYXRj
aCBzdXBwb3J0cyBpZ25vcmVNZXRob2QnKTsKKworY2FjaGVfdGVzdChmdW5jdGlvbihjYWNoZSkg
eworICAgIHZhciB2YXJ5X3JlcXVlc3QgPSBuZXcgUmVxdWVzdCgnaHR0cDovL2V4YW1wbGUuY29t
L2MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGVhZGVyczogeydDb29r
aWVzJzogJ2lzLWZvci1jb29raWUnfX0pOworICAgIHZhciB2YXJ5X3Jlc3BvbnNlID0gbmV3IFJl
c3BvbnNlKCcnLCB7aGVhZGVyczogeydWYXJ5JzogJ0Nvb2tpZXMnfX0pOworICAgIHZhciBtaXNt
YXRjaGVkX3ZhcnlfcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCdodHRwOi8vZXhhbXBsZS5jb20vYycp
OworCisgICAgcmV0dXJuIGNhY2hlLnB1dCh2YXJ5X3JlcXVlc3QuY2xvbmUoKSwgdmFyeV9yZXNw
b25zZS5jbG9uZSgpKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJu
IHNlbGYuY2FjaGVzLm1hdGNoKG1pc21hdGNoZWRfdmFyeV9yZXF1ZXN0LmNsb25lKCkpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscygKKyAgICAgICAgICAgIHJlc3VsdCwgdW5kZWZpbmVkLAorICAgICAgICAgICAgJ0Nh
Y2hlU3RvcmFnZU1hdGNoIHNob3VsZCByZXNvbHZlIGFzIHVuZGVmaW5lZCB3aXRoIGEgJyArCisg
ICAgICAgICAgICAnIG1pc21hdGNoZWQgdmFyeS4nKTsKKyAgICAgICAgICByZXR1cm4gc2VsZi5j
YWNoZXMubWF0Y2gobWlzbWF0Y2hlZF92YXJ5X3JlcXVlc3QuY2xvbmUoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAge2lnbm9yZVZhcnk6IHRydWV9KTsKKyAgICAgICAgfSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIGFzc2VydF9yZXNwb25z
ZV9lcXVhbHMoCisgICAgICAgICAgICByZXN1bHQsIHZhcnlfcmVzcG9uc2UsCisgICAgICAgICAg
ICAnQ2FjaGVTdG9yYWdlTWF0Y2ggd2l0aCBpZ25vcmVWYXJ5IHNob3VsZCBpZ25vcmUgdGhlICcg
KworICAgICAgICAgICAgJ3Zhcnkgb2YgcmVxdWVzdC4nKTsKKyAgICAgICAgfSk7CisgIH0sICdD
YWNoZVN0b3JhZ2VNYXRjaCBzdXBwb3J0cyBpZ25vcmVWYXJ5Jyk7CisKIGRvbmUoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0LXRlc3RzL2NhY2hlLXN0b3JhZ2UuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1zdG9yYWdlLmpzCmluZGV4IDU5NGIw
MWI1ODEwY2Q4MDQ4NTUwYWMwNTY3ZjkyNGQ2OTU0NjViNDAuLjIwMTFhZmQ2OTU4MTVhZGRiMmE3
MjA3YzA3MzAxMmFkYzQwYzI4MTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0
LXRlc3RzL2NhY2hlLXN0b3JhZ2UuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVz
dHMvY2FjaGUtc3RvcmFnZS5qcwpAQCAtMSw2ICsxLDUgQEAKIGlmIChzZWxmLmltcG9ydFNjcmlw
dHMpIHsKICAgICBpbXBvcnRTY3JpcHRzKCcvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJyk7Ci0g
ICAgaW1wb3J0U2NyaXB0cygnLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMnKTsK
ICAgICBpbXBvcnRTY3JpcHRzKCcuLi9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLmpzJyk7CiB9CiAK
QEAgLTE3LDYgKzE2LDQwIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIH0sICdDYWNo
ZVN0b3JhZ2Uub3BlbicpOwogCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBj
YWNoZV9uYW1lID0gJ2NhY2hlLXN0b3JhZ2UvYmFyJzsKKyAgICB2YXIgZmlyc3RfY2FjaGUgPSBu
dWxsOworICAgIHZhciBzZWNvbmRfY2FjaGUgPSBudWxsOworICAgIHJldHVybiBzZWxmLmNhY2hl
cy5vcGVuKGNhY2hlX25hbWUpCisgICAgICAudGhlbihmdW5jdGlvbihjYWNoZSkgeworICAgICAg
ICAgIGZpcnN0X2NhY2hlID0gY2FjaGU7CisgICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLmRl
bGV0ZShjYWNoZV9uYW1lKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIHJldHVybiBmaXJzdF9jYWNoZS5hZGQoJy4uL3Jlc291cmNlcy9zaW1wbGUudHh0
Jyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1
cm4gc2VsZi5jYWNoZXMua2V5cygpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
Y2FjaGVfbmFtZXMpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNhY2hlX25hbWVzLmluZGV4
T2YoY2FjaGVfbmFtZSksIC0xKTsKKyAgICAgICAgICByZXR1cm4gc2VsZi5jYWNoZXMub3Blbihj
YWNoZV9uYW1lKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGNhY2hlKSB7Cisg
ICAgICAgICAgc2Vjb25kX2NhY2hlID0gY2FjaGU7CisgICAgICAgICAgcmV0dXJuIHNlY29uZF9j
YWNoZS5rZXlzKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihrZXlzKSB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlzLmxlbmd0aCwgMCk7CisgICAgICAgICAgcmV0dXJu
IGZpcnN0X2NhY2hlLmtleXMoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGtl
eXMpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGtleXMubGVuZ3RoLCAxKTsKKyAgICAgICAg
ICAvLyBDbGVhbiB1cAorICAgICAgICAgIHJldHVybiBzZWxmLmNhY2hlcy5kZWxldGUoY2FjaGVf
bmFtZSk7CisgICAgICAgIH0pOworICB9LCAnQ2FjaGVTdG9yYWdlLmRlbGV0ZSBkb29tcywgYnV0
IGRvZXMgbm90IGRlbGV0ZSBpbW1lZGlhdGVseScpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgIC8vIE5vdGUgdGhhdCB0aGlzIHRlc3QgbWF5IGNvbGxpZGUgd2l0aCBvdGhlciB0
ZXN0cyBydW5uaW5nIGluIHRoZSBzYW1lCiAgICAgLy8gb3JpZ2luIHRoYXQgYWxzbyB1c2VzIGFu
IGVtcHR5IGNhY2hlIG5hbWUuCiAgICAgdmFyIGNhY2hlX25hbWUgPSAnJzsKQEAgLTMxLDkgKzY0
LDEwIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIH0sICdDYWNoZVN0b3JhZ2Uub3Bl
biB3aXRoIGFuIGVtcHR5IG5hbWUnKTsKIAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgIHNlbGYuY2FjaGVzLm9wZW4o
KSwKKyAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgdCwKICAgICAgIG5ldyBUeXBl
RXJyb3IoKSwKKyAgICAgIHNlbGYuY2FjaGVzLm9wZW4oKSwKICAgICAgICdDYWNoZVN0b3JhZ2Uu
b3BlbiBzaG91bGQgdGhyb3cgVHlwZUVycm9yIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cy4n
KTsKICAgfSwgJ0NhY2hlU3RvcmFnZS5vcGVuIHdpdGggbm8gYXJndW1lbnRzJyk7CiAKQEAgLTE2
OSwyMCArMjAzLDI4IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgIH0sICdDYWNoZVN0
b3JhZ2UuZGVsZXRlIHdpdGggbm9uZXhpc3RlbnQgY2FjaGUnKTsKIAogcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKLSAgICB2YXIgYmFkX25hbWUgPSAndW5wYWlyZWRcdUQ4MDAnOwotICAgIHZh
ciBjb252ZXJ0ZWRfbmFtZSA9ICd1bnBhaXJlZFx1RkZGRCc7IC8vIERvbid0IGNyZWF0ZSBjYWNo
ZSB3aXRoIHRoaXMgbmFtZS4KLSAgICByZXR1cm4gc2VsZi5jYWNoZXMuaGFzKGNvbnZlcnRlZF9u
YW1lKQorICAgIHZhciB1bnBhaXJlZF9uYW1lID0gJ3VucGFpcmVkXHVEODAwJzsKKyAgICB2YXIg
Y29udmVydGVkX25hbWUgPSAndW5wYWlyZWRcdUZGRkQnOworCisgICAgLy8gVGhlIHRlc3QgYXNz
dW1lcyB0aGF0IGEgY2FjaGUgd2l0aCBjb252ZXJ0ZWRfbmFtZSBkb2VzIG5vdAorICAgIC8vIGV4
aXN0LCBidXQgaWYgdGhlIGltcGxlbWVudGF0aW9uIGZhaWxzIHRoZSB0ZXN0IHRoZW4gc3VjaAor
ICAgIC8vIGEgY2FjaGUgd2lsbCBiZSBjcmVhdGVkLiBTdGFydCBvZmYgaW4gYSBmcmVzaCBzdGF0
ZSBieQorICAgIC8vIGRlbGV0aW5nIGFsbCBjYWNoZXMuCisgICAgcmV0dXJuIGRlbGV0ZV9hbGxf
Y2FjaGVzKCkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZWxm
LmNhY2hlcy5oYXMoY29udmVydGVkX25hbWUpOworICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0
aW9uKGNhY2hlX2V4aXN0cykgewogICAgICAgICAgIGFzc2VydF9mYWxzZShjYWNoZV9leGlzdHMs
CiAgICAgICAgICAgICAgICAgICAgICAgICdUZXN0IHNldHVwIGZhaWx1cmU6IGNhY2hlIHNob3Vs
ZCBub3QgZXhpc3QnKTsKICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJu
IHNlbGYuY2FjaGVzLm9wZW4oYmFkX25hbWUpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
IHJldHVybiBzZWxmLmNhY2hlcy5vcGVuKHVucGFpcmVkX25hbWUpOyB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7IHJldHVybiBzZWxmLmNhY2hlcy5rZXlzKCk7IH0pCiAgICAgICAudGhlbihm
dW5jdGlvbihrZXlzKSB7Ci0gICAgICAgICAgYXNzZXJ0X3RydWUoa2V5cy5pbmRleE9mKGJhZF9u
YW1lKSAhPT0gLTEsCisgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5cy5pbmRleE9mKHVucGFpcmVk
X25hbWUpICE9PSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAna2V5cyBzaG91bGQgaW5jbHVk
ZSBjYWNoZSB3aXRoIGJhZCBuYW1lJyk7CiAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7IHJldHVybiBzZWxmLmNhY2hlcy5oYXMoYmFkX25hbWUpOyB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7IHJldHVybiBzZWxmLmNhY2hlcy5oYXModW5wYWlyZWRfbmFtZSk7IH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihjYWNoZV9leGlzdHMpIHsKICAgICAgICAgICBhc3NlcnRfdHJ1ZShj
YWNoZV9leGlzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgJ0NhY2hlU3RvcmFnZSBuYW1lcyBz
aG91bGQgYmUgbm90IGJlIGNvbnZlcnRlZC4nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2Uvc2NyaXB0LXRlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQt
dGVzdHMvdzNjLWltcG9ydC5sb2cKaW5kZXggOGZjMzViMWNkZTlkZDhmODk3MTUyM2NmMmViMGM4
NjY4MmY0ODUyNy4uNmQ1NzgxYTI1OWU0NTBhZDdmYmZhNzE5Y2JjZDJlN2EzYzVlYTgzZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvdzNjLWltcG9ydC5sb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyAr
MSw2IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9y
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKQEAgLTE3LDYgKzE2LDcg
QEAgTm9uZQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9j
YWNoZS1hZGQuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1kZWxldGUu
anMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3NjcmlwdC10ZXN0cy9jYWNoZS1rZXlzLmpzCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS9zY3JpcHQtdGVzdHMvY2FjaGUtbWF0Y2guanMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3NjcmlwdC10ZXN0cy9jYWNoZS1tYXRjaEFsbC5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2NyaXB0
LXRlc3RzL2NhY2hlLXB1dC5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNl
d29ya2VyL2NhY2hlLWFkZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29y
a2VyL2NhY2hlLWFkZC5odHRwcy5odG1sCmluZGV4IGIzNTNhZTAyMjY5ODFmYjhhZDdkNzBlZjIw
NDY1NGRhNDA5MjU1MzguLjIzMmRlNjY4ZTQxY2NmNjBlNjBmZjc3NmM0MjNkMzFiMDkxYjA5NWIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1hZGQuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtYWRkLmh0
dHBzLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZS5h
ZGQgYW5kIENhY2hlLmFkZEFsbDwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtl
ci8jY2FjaGUtYWRkIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2NhY2hlLWFkZCI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1k
ZWxldGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1k
ZWxldGUuaHR0cHMuaHRtbAppbmRleCA4MWRhMzAwMDIwYzY4OGI3ZmRhNGU0Y2NmYmFjMDFjZjM1
MTY4ZmY0Li42ZmYyN2JlMzAwZDg5ZjVlYWY4NGZjMjgwNWI0YjhjNTE2Y2NhOGNlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtZGVsZXRlLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLWRlbGV0ZS5odHRw
cy5odG1sCkBAIC0xLDYgKzEsNiBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+Q2FjaGUuZGVs
ZXRlPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5n
aXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1kZWxldGUi
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdv
cmtlci8jY2FjaGUtZGVsZXRlIj4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxvbmci
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLWtleXMuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1rZXlzLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzM2Zjc0ZDk4OTYwYWE4MWUxNTY5NDMyNjgzNzA1Y2NjN2MzY2VlZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1r
ZXlzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
Q2FjaGUua2V5czwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdp
dGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1rZXlzIj4KKzxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitzZXJ2aWNlX3dvcmtlcl90
ZXN0KCcuLi9zY3JpcHQtdGVzdHMvY2FjaGUta2V5cy5qcycpOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtbWF0Y2guaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1tYXRjaC5odHRwcy5odG1s
CmluZGV4IDU5ZWYzNGJiN2I5ZjhhMDgzMWY3OWE2OWE1MmI3NjI2ODk2MzRlMzUuLjgxZGI3MDk0
M2YwYTk4NzE3MTliNzA0ZDA5NGJmZDA0MjE1MmY4MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0
b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1tYXRjaC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hl
LXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1tYXRjaC5odHRwcy5odG1sCkBAIC0xLDYgKzEs
NiBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+Q2FjaGUubWF0Y2g8L3RpdGxlPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2NhY2hlLW1hdGNoIj4KKzxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NhY2hlLW1hdGNoIj4K
IDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3Rv
cmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLW1hdGNoQWxsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1z
dG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtbWF0Y2hBbGwuaHR0cHMuaHRtbAppbmRleCBhMmFh
MWYyNDJlN2ZhYzc1ZTEyYWJhNjE4ZTgxN2U5ZGQ3NDBkNmQwLi5mMWEzOGZmMDc5YmJlOTJjZmVj
ZGRhOWI5ZTc3MGFlN2YzNTViOGIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZp
Y2V3b3JrZXIvY2FjaGUtbWF0Y2hBbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3NlcnZpY2V3b3JrZXIvY2FjaGUtbWF0Y2hBbGwuaHR0cHMuaHRtbApAQCAtMSw2ICsxLDYgQEAK
IDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNhY2hlLm1hdGNoQWxsPC90aXRsZT4KLTxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtl
ci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1tYXRjaGFsbCI+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1tYXRjaGFs
bCI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hl
LXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1wdXQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0
b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1wdXQuaHR0cHMuaHRtbAppbmRleCA5NjAyZTNiZmNi
NDNjMjY2ZWIyNjcxMDQ3OWEyMWJiZWQwOTVlZjk2Li45NjE2MDIzODY2ODY2NjVlMzMyMDJkMTc3
YTVkOGQxYzE0YmVmOWJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3Jr
ZXIvY2FjaGUtcHV0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29y
a2VyL2NhY2hlLXB1dC5odHRwcy5odG1sCkBAIC0xLDYgKzEsNiBAQAogPCFET0NUWVBFIGh0bWw+
CiA8dGl0bGU+Q2FjaGUucHV0PC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2Vy
LyNjYWNoZS1wdXQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci8jY2FjaGUtcHV0Ij4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRl
bnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLXN0
b3JhZ2Uta2V5cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2Nh
Y2hlLXN0b3JhZ2Uta2V5cy5odHRwcy5odG1sCmluZGV4IDFkMTAwNWRjY2M3NTI4MDBmYTlkNDg1
M2FmYzI4OGYzMDMzMWZkYTYuLmFkZGU5NWViODViMGE4M2U3ODcwODllZjkxYzU3MzQ3OGRiMWZl
ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1zdG9y
YWdlLWtleXMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIv
Y2FjaGUtc3RvcmFnZS1rZXlzLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8IURPQ1RZUEUg
aHRtbD4KIDx0aXRsZT5DYWNoZVN0b3JhZ2Uua2V5czwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9z
ZXJ2aWNlX3dvcmtlci8jY2FjaGUtc3RvcmFnZSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1zdG9yYWdlIj4KIDxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9z
ZXJ2aWNld29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0
b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1zdG9yYWdlLW1hdGNoLmh0dHBzLmh0bWwKaW5kZXgg
NmM0YjcyODg1ZmRmNzE5NDViODBiNzdjZmU2NGExNTRjYWZmMjU5Mi4uZmVmMTQwNzRkNDYyNWMy
ZjVhMmQ1ZGE2N2NlMmI5OTA1MzVjOTZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9z
ZXJ2aWNld29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNo
ZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtc3RvcmFnZS1tYXRjaC5odHRwcy5odG1sCkBA
IC0xLDYgKzEsNiBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+Q2FjaGVTdG9yYWdlLm1hdGNo
PC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRo
dWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1zdG9yYWdlLW1h
dGNoIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZp
Y2VXb3JrZXIvI2NhY2hlLXN0b3JhZ2UtbWF0Y2giPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUt
c3RvcmFnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hl
LXN0b3JhZ2UuaHR0cHMuaHRtbAppbmRleCA1ZTI0MGEzYjY5OTA4MGFhZjI2YjhmMjZkNTQwZWJm
YjIxM2MyMThiLi4zOTM0MjU4ZjI4ZjdkYWY5MTgwOTk4YWViYmM2NDAxZjllZjdkZWRmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtc3RvcmFnZS5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1zdG9yYWdl
Lmh0dHBzLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNo
ZVN0b3JhZ2U8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5
b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2NhY2hlLXN0
b3JhZ2UiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2Vy
dmljZVdvcmtlci8jY2FjaGUtc3RvcmFnZSI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jcmVkZW50aWFs
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NyZWRlbnRpYWxzLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExNmZkOWNhOTA0NjRkZTYyMjI3NThiNTY4
ZjFhOGFhMGQ1NjMyYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NyZWRlbnRpYWxzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Ci08dGl0bGU+Q2FjaGUgU3RvcmFnZTogVmVyaWZ5IGNyZWRlbnRpYWxzIGFyZSBy
ZXNwZWN0ZWQgYnkgQ2FjaGUgb3BlcmF0aW9uczwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2
aWNlX3dvcmtlci8jY2FjaGUtc3RvcmFnZSI+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPHN0eWxlPmlmcmFtZSB7
IGRpc3BsYXk6IG5vbmU7IH08L3N0eWxlPgotPHNjcmlwdD4KLQotdmFyIHdvcmtlciA9ICIuLi9y
ZXNvdXJjZXMvY3JlZGVudGlhbHMtd29ya2VyLmpzIjsKLXZhciBzY29wZSA9ICIuLi9yZXNvdXJj
ZXMvY3JlZGVudGlhbHMtaWZyYW1lLmh0bWwiOwotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
LSAgcmV0dXJuIHNlbGYuY2FjaGVzLmRlbGV0ZSgnY3JlZGVudGlhbHMnKQotICAgIC50aGVuKGZ1
bmN0aW9uKCkgewotICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCi0gICAgfSkKLSAgICAudGhlbihmdW5jdGlvbihyZWcp
IHsKLSAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2
YXRlZCcpOwotICAgIH0pCi0gICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICByZXR1cm4gd2l0
aF9pZnJhbWUoc2NvcGUpOwotICAgIH0pCi0gICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKLSAg
ICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoWwotICAgICAgICB7bmFtZTogJ2Zp
bGUudHh0JywgdXNlcm5hbWU6ICdhYScsIHBhc3N3b3JkOiAnYmInfSwKLSAgICAgICAge25hbWU6
ICdmaWxlLnR4dCcsIHVzZXJuYW1lOiAnY2MnLCBwYXNzd29yZDogJ2RkJ30sCi0gICAgICAgIHtu
YW1lOiAnZmlsZS50eHQnfQotICAgICAgXSwgJyonKTsKLSAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7Ci0g
ICAgICAgIH0pOwotICAgICAgfSk7Ci0gICAgfSkKLSAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKGRhdGEubGVuZ3RoLCAzLCAndGhyZWUgZW50cmllcyBzaG91
bGQgYmUgcHJlc2VudCcpOwotICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLmZpbHRlcihmdW5jdGlv
bih1cmwpIHsgcmV0dXJuIC9ALy50ZXN0KHVybCk7IH0pLmxlbmd0aCwgMiwKLSAgICAgICAgJ3R3
byBlbnRyaWVzIHNob3VsZCBjb250YWluIGNyZWRlbnRpYWxzJyk7Ci0gICAgICBhc3NlcnRfdHJ1
ZShkYXRhLnNvbWUoZnVuY3Rpb24odXJsKSB7IHJldHVybiAvYWE6YmJALy50ZXN0KHVybCk7IH0p
LAotICAgICAgICAnZW50cnkgd2l0aCBjcmVkZW50aWFscyBhYTpiYiBzaG91bGQgYmUgcHJlc2Vu
dCcpOwotICAgICAgYXNzZXJ0X3RydWUoZGF0YS5zb21lKGZ1bmN0aW9uKHVybCkgeyByZXR1cm4g
L2NjOmRkQC8udGVzdCh1cmwpOyB9KSwKLSAgICAgICAgJ2VudHJ5IHdpdGggY3JlZGVudGlhbHMg
Y2M6ZGQgc2hvdWxkIGJlIHByZXNlbnQnKTsKLSAgICB9KTsKLX0sICJDYWNoZSBBUEkgbWF0Y2hp
bmcgaW5jbHVkZXMgY3JlZGVudGlhbHMiKTsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NyZWRlbnRpYWxzLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNo
ZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY3JlZGVudGlhbHMuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43YmM0OTRlYjE0MGE2NDRkZmI2MDcyYjM5MDZiYmNmMzkwYzQ0MWNjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NyZWRlbnRpYWxzLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPkNhY2hlIFN0b3JhZ2U6IFZlcmlmeSBjcmVkZW50aWFscyBhcmUgcmVzcGVjdGVk
IGJ5IENhY2hlIG9wZXJhdGlvbnM8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtc3RvcmFnZSI+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPmlmcmFtZSB7IGRpc3BsYXk6IG5vbmU7IH08L3N0eWxlPgorPHNjcmlwdD4K
KwordmFyIHdvcmtlciA9ICIuLi9yZXNvdXJjZXMvY3JlZGVudGlhbHMtd29ya2VyLmpzIjsKK3Zh
ciBzY29wZSA9ICIuLi9yZXNvdXJjZXMvY3JlZGVudGlhbHMtaWZyYW1lLmh0bWwiOworcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHNlbGYuY2FjaGVzLmRlbGV0ZSgnY3JlZGVu
dGlhbHMnKQorICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCisgICAgfSkKKyAg
ICAudGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
ZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgIH0pCisgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgIH0pCisgICAgLnRoZW4o
ZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uo
WworICAgICAgICB7bmFtZTogJ2ZpbGUudHh0JywgdXNlcm5hbWU6ICdhYScsIHBhc3N3b3JkOiAn
YmInfSwKKyAgICAgICAge25hbWU6ICdmaWxlLnR4dCcsIHVzZXJuYW1lOiAnY2MnLCBwYXNzd29y
ZDogJ2RkJ30sCisgICAgICAgIHtuYW1lOiAnZmlsZS50eHQnfQorICAgICAgXSwgJyonKTsKKyAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgd2luZG93Lm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICByZXNvbHZlKGUuZGF0YSk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgfSkKKyAgICAu
dGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEubGVuZ3RoLCAz
LCAndGhyZWUgZW50cmllcyBzaG91bGQgYmUgcHJlc2VudCcpOworICAgICAgYXNzZXJ0X2VxdWFs
cyhkYXRhLmZpbHRlcihmdW5jdGlvbih1cmwpIHsgcmV0dXJuIC9ALy50ZXN0KHVybCk7IH0pLmxl
bmd0aCwgMiwKKyAgICAgICAgJ3R3byBlbnRyaWVzIHNob3VsZCBjb250YWluIGNyZWRlbnRpYWxz
Jyk7CisgICAgICBhc3NlcnRfdHJ1ZShkYXRhLnNvbWUoZnVuY3Rpb24odXJsKSB7IHJldHVybiAv
YWE6YmJALy50ZXN0KHVybCk7IH0pLAorICAgICAgICAnZW50cnkgd2l0aCBjcmVkZW50aWFscyBh
YTpiYiBzaG91bGQgYmUgcHJlc2VudCcpOworICAgICAgYXNzZXJ0X3RydWUoZGF0YS5zb21lKGZ1
bmN0aW9uKHVybCkgeyByZXR1cm4gL2NjOmRkQC8udGVzdCh1cmwpOyB9KSwKKyAgICAgICAgJ2Vu
dHJ5IHdpdGggY3JlZGVudGlhbHMgY2M6ZGQgc2hvdWxkIGJlIHByZXNlbnQnKTsKKyAgICB9KTsK
K30sICJDYWNoZSBBUEkgbWF0Y2hpbmcgaW5jbHVkZXMgY3JlZGVudGlhbHMiKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL3czYy1pbXBvcnQubG9nCmluZGV4
IDM3YzdjZTdkMjUyMGJmM2M1NjhiZTMxYjYwODgxMWZlMzE4MzkyNTcuLjE3NDcwM2VkMjQ2ZjNk
Njc1Nzk1Nzc1N2I5Mjk0MmMxMDhhY2MxNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uv
c2VydmljZXdvcmtlci93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZp
Y2V3b3JrZXIvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKQEAgLTE3LDEwICsxNiwxMSBAQCBOb25lCiBMaXN0IG9mIGZpbGVz
OgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1hZGQuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1kZWxldGUuaHR0cHMuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1rZXlzLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY2FjaGUtbWF0Y2guaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1tYXRjaEFsbC5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLXB1dC5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
Y2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLXN0b3JhZ2Uta2V5cy5odHRwcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS9zZXJ2aWNld29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNoZS1zdG9yYWdlLmh0
dHBzLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIvY3JlZGVudGlhbHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jcmVkZW50aWFscy5odHRwcy5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS93M2MtaW1wb3J0LmxvZwppbmRleCBiMTJlYjQ0NTg3NDY2MzFjMTdmNjNkODBlNDdh
YjVjNGY3M2E3ZGI1Li4wODI0MDYxZTNhYTE5NWM2NWMzOWQ5YjkxZTEwZDJlN2QxMDZlMTcyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hl
LXN0b3JhZ2UvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2Nh
Y2hlLWFkZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtYWRkLmh0
dHBzLmh0bWwKaW5kZXggNDJlNGI1MDc2YWNhMmNlNjhhNjJkYjA1M2ZiOTJlZDc2MTk5MWNmYy4u
OGRmYjc4NmNmMzU2Nzc3Y2Q5ZGUyODZjY2QzNTM0Yzk1ZWEwMTE2YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
Y2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtYWRkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS93aW5kb3cvY2FjaGUtYWRkLmh0dHBzLmh0bWwKQEAgLTEsOSArMSw4IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZSBTdG9yYWdlOiBDYWNoZS5hZGQgYW5kIENhY2hlLmFk
ZEFsbDwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYu
Z2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jY2FjaGUtYWRkIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI2NhY2hlLWFkZCI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vc2NyaXB0LXRlc3RzL2NhY2hlLWFkZC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1kZWxldGUuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2Nh
Y2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLWRlbGV0ZS5odHRwcy5odG1sCmluZGV4IDc1NGY3ODVj
N2I1YWE2M2NkMWYzN2EwYjczZWQyOWY5NDJhYTU0ZTAuLjA3N2U2YTNmZGMxYjJhMDJkYWUzMzMw
MDdhZTk2MDNlNjIyMTdkNDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2Nh
Y2hlLWRlbGV0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hl
LWRlbGV0ZS5odHRwcy5odG1sCkBAIC0xLDkgKzEsOCBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0
bGU+Q2FjaGUgU3RvcmFnZTogQ2FjaGUuZGVsZXRlPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3Nl
cnZpY2Vfd29ya2VyLyNjYWNoZS1kZWxldGUiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtZGVsZXRlIj4KIDxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9zY3JpcHQtdGVzdHMvY2Fj
aGUtZGVsZXRlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2lu
ZG93L2NhY2hlLWtleXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hl
LWtleXMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Mzk4YzMzZTE0NmM1OTgzYzEwOTIyNDU3Yjdm
ODU5MWI0OWY1ZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cv
Y2FjaGUta2V5cy5odHRwcy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+Q2FjaGUgU3RvcmFnZTogQ2FjaGUua2V5czwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1rZXlzIj4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0
cy9jYWNoZS1rZXlzLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uv
d2luZG93L2NhY2hlLW1hdGNoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9j
YWNoZS1tYXRjaC5odHRwcy5odG1sCmluZGV4IGE5OWQ3MDBhY2NkMTFmNzMwYzc3ZGNlNmQwNTNh
ZWUxY2NhMGY5MmYuLmZmYzY0OTg0ZWExYjA5ZTRjMWJlZjQ1OWM4ODQ4MWNiNDljZjcyY2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLW1hdGNoLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtbWF0Y2guaHR0cHMuaHRtbApAQCAt
MSw5ICsxLDggQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNhY2hlIFN0b3JhZ2U6IENhY2hl
Lm1hdGNoPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9m
Zi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1tYXRj
aCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNjYWNoZS1tYXRjaCI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ij4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iLi4vc2NyaXB0LXRlc3RzL2NhY2hlLW1hdGNoLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLW1hdGNoQWxsLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1tYXRjaEFsbC5odHRwcy5odG1sCmlu
ZGV4IDNiZDkyODg3YTQ5YWYwYjNlMWMzZjBjOGNjNjE0NGVjMmZmZDI4NTYuLjEyODhiMmMwMzQz
MzU3NTkzNjRhZDZkZGM4ZjQ0ZDIyYWIyZWVlYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3Jh
Z2Uvd2luZG93L2NhY2hlLW1hdGNoQWxsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFn
ZS93aW5kb3cvY2FjaGUtbWF0Y2hBbGwuaHR0cHMuaHRtbApAQCAtMSw5ICsxLDggQEAKIDwhRE9D
VFlQRSBodG1sPgogPHRpdGxlPkNhY2hlLm1hdGNoQWxsPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVj
L3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1tYXRjaGFsbCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1tYXRjaGFsbCI+CiA8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vc2NyaXB0LXRl
c3RzL2NhY2hlLW1hdGNoQWxsLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0
b3JhZ2Uvd2luZG93L2NhY2hlLXB1dC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5k
b3cvY2FjaGUtcHV0Lmh0dHBzLmh0bWwKaW5kZXggYjMyY2ZhMmMwYmI4ZTI0ZTdlOWU3ZWQ1YjJl
MDI0MjU3OWI4NWIxYy4uZGVkNmU4NGNiNTMyYThjMDNmMjhkMjQ1Y2Q2MzMxNmZmMDczNTZiNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtcHV0Lmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtcHV0Lmh0dHBzLmh0bWwKQEAgLTEs
OSArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZSBTdG9yYWdlOiBDYWNoZS5w
dXQ8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdp
dGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2NhY2hlLXB1dCI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyNjYWNoZS1wdXQiPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uL3NjcmlwdC10ZXN0cy9jYWNoZS1wdXQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtc3RvcmFnZS1rZXlzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRtbAppbmRl
eCBhY2RlNzczZGQ0YjE2NWRmNjFiMjk5NDk2N2E1NTY0OWJlNWVhOGQ5Li42NjlhYjkxMDVlMjQy
MTljZTE2ZjUwYjU5NTU1ZTg1YzljZTM2YTE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdl
L3dpbmRvdy9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9y
YWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRtbApAQCAtMSw5ICsxLDggQEAK
IDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNhY2hlIFN0b3JhZ2U6IENhY2hlU3RvcmFnZS5rZXlz
PC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRo
dWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1zdG9yYWdlIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI2NhY2hlLXN0b3JhZ2UiPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uL3NjcmlwdC10ZXN0cy9jYWNoZS1zdG9yYWdlLWtleXMuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtc3RvcmFnZS1tYXRj
aC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtc3RvcmFnZS1tYXRj
aC5odHRwcy5odG1sCmluZGV4IDNjNjlkMGY1N2MxMzZkMzMyZTg4NzVjN2UwNTBiNGYzNzQ5YTBh
ZDguLmYxNmM0NWQwMDFlN2YyZWFjMGVmNmNmMmExN2M4NTMzOGI0N2IxNzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdlLW1hdGNoLmh0dHBzLmh0
bWwKQEAgLTEsOSArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZSBTdG9yYWdl
OiBDYWNoZVN0b3JhZ2UubWF0Y2g8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3Jr
ZXIvI2NhY2hlLXN0b3JhZ2UtbWF0Y2giPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtc3RvcmFnZS1tYXRjaCI+CiA8bWV0
YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vc2NyaXB0LXRlc3Rz
L2NhY2hlLXN0b3JhZ2UtbWF0Y2guanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS93aW5kb3cvY2FjaGUtc3RvcmFnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFn
ZS93aW5kb3cvY2FjaGUtc3RvcmFnZS5odHRwcy5odG1sCmluZGV4IDdkMDE1ZTM0NjU1ZTQzODg2
NzUzMjI2YzZlMzcxZDVjN2IzMWFjZTEuLmIyZjVjMzg1OTgzYTdiNGEwZmU1NmYyYTI3NTZlM2E1
ZmIzNDVlMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLXN0b3Jh
Z2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1zdG9yYWdl
Lmh0dHBzLmh0bWwKQEAgLTEsOSArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNo
ZSBTdG9yYWdlOiBDYWNoZVN0b3JhZ2U8L3RpdGxlPgotPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93
b3JrZXIvI2NhY2hlLXN0b3JhZ2UiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtc3RvcmFnZSI+CiA8bWV0YSBuYW1lPSJ0
aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mt
aGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vc2NyaXB0LXRlc3RzL2NhY2hlLXN0
b3JhZ2UuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cv
c2FuZGJveGVkLWlmcmFtZXMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L3Nh
bmRib3hlZC1pZnJhbWVzLmh0dHBzLmh0bWwKaW5kZXggNjQ4YmQ1OTdjNTczYjQyYThkYzdlODI5
NmRjODUwMzRlNTg0ZDlmMy4uNGE5OWQyYWYxYjAyYTYwYTkzOTc4MGFhMWEyMzQ3YzQ1ZjVkYWQ5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvc2FuZGJveGVkLWlmcmFtZXMu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9zYW5kYm94ZWQtaWZyYW1l
cy5odHRwcy5odG1sCkBAIC0xLDEwICsxLDkgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNh
Y2hlIFN0b3JhZ2U6IFZlcmlmeSBhY2Nlc3MgaW4gc2FuZGJveGVkIGlmcmFtZXM8L3RpdGxlPgot
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2
aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2NhY2hlLXN0b3JhZ2UiPgorPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUt
c3RvcmFnZSI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgog
CiBmdW5jdGlvbiBsb2FkX2lmcmFtZShzcmMsIHNhbmRib3gpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2Nh
Y2hlLXN0b3JhZ2Uvd2luZG93L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5k
b3cvdzNjLWltcG9ydC5sb2cKaW5kZXggZTE3ZTlhMWY0YjRkYWIwNDYyNTBiNTlmYzU2ZjI1N2E1
MjgzMzBiMC4uYTkxZWM2YmE4YjE1ODc5ZDVjNzcyMjA1MTE2YjJmMjUyMzExMDRhYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS93aW5kb3cvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKQEAgLTE3LDYgKzE2LDcgQEAgTm9uZQogTGlzdCBv
ZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1hZGQuaHR0cHMuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLWRlbGV0ZS5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2Fj
aGUtc3RvcmFnZS93aW5kb3cvY2FjaGUta2V5cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFn
ZS93aW5kb3cvY2FjaGUtbWF0Y2guaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93
L2NhY2hlLW1hdGNoQWxsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNo
ZS1wdXQuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2Fj
aGUtYWRkLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1hZGQuaHR0
cHMuaHRtbAppbmRleCA4ZTZkZWViNjhlMDljZDYzYzNkMmNiNmQ5NDMwZDVkMGM2MzI5ZWE1Li4y
NjU4ZTFlNTBmOWViZmU4YWM1OTcxYTE2YWY5ZTI2YjAyZDE0MGE4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9j
YWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1hZGQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1z
dG9yYWdlL3dvcmtlci9jYWNoZS1hZGQuaHR0cHMuaHRtbApAQCAtMSw2ICsxLDYgQEAKIDwhRE9D
VFlQRSBodG1sPgogPHRpdGxlPkNhY2hlLmFkZCBhbmQgQ2FjaGUuYWRkQWxsPC90aXRsZT4KLTxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2Vydmlj
ZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1hZGQiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtYWRkIj4K
IDxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3Rv
cmFnZS93b3JrZXIvY2FjaGUtZGVsZXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dv
cmtlci9jYWNoZS1kZWxldGUuaHR0cHMuaHRtbAppbmRleCAyZGQwNmYzNDczMjIxMWRkMmQ4MjE5
ODYxODI2Mjc1Nzc4YTY2YmE4Li4zZDYzYTJmN2Y3ZDMxMjBhNWFmNGI0M2RjNTI4MjIzYjFkOWY4
NWI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1kZWxldGUuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1kZWxldGUuaHR0cHMu
aHRtbApAQCAtMSw2ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNhY2hlLmRlbGV0
ZTwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0
aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jY2FjaGUtZGVsZXRlIj4K
KzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI2NhY2hlLWRlbGV0ZSI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4K
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWtleXMuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWtleXMuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YmFmZTIxZDMwYmI1NWQ0ZTBkZmRjOGYzNjMzYmNmMzU5ZmM3ZDZjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUta2V5cy5odHRwcy5odG1sCkBAIC0wLDAg
KzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+Q2FjaGUua2V5czwvdGl0bGU+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNj
YWNoZS1rZXlzIj4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Zl
dGNoX3Rlc3RzX2Zyb21fd29ya2VyKG5ldyBXb3JrZXIoJy4uL3NjcmlwdC10ZXN0cy9jYWNoZS1r
ZXlzLmpzJykpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtl
ci9jYWNoZS1tYXRjaC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUt
bWF0Y2guaHR0cHMuaHRtbAppbmRleCA1MzA0NTI5Yjc3NTk2NWVkZGE2ODkyODRjZDIyNmFjMmMz
ZDQyNDQ1Li40NzlhMjlkMWVlYzVmNDk0MTZhMDc1YWFlOTMwNmJjZDViNWNjM2U2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1tYXRjaC5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLW1hdGNoLmh0dHBzLmh0bWwKQEAgLTEsNiAr
MSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZS5tYXRjaDwvdGl0bGU+Ci08bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VX
b3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jY2FjaGUtbWF0Y2giPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtbWF0Y2gi
PgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1z
dG9yYWdlL3dvcmtlci9jYWNoZS1tYXRjaEFsbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFn
ZS93b3JrZXIvY2FjaGUtbWF0Y2hBbGwuaHR0cHMuaHRtbAppbmRleCAyNDJjY2I2ODc5OWExOGQx
ZjY1YmZjYTFiMWNlZmYzMzFkZTEwYTFjLi5jN2U4OTNhMjNjZDYzYzMwZDljMDEwOGQ5MmVmZmM1
NWUyYzBiZmU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1tYXRj
aEFsbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLW1hdGNo
QWxsLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5D
YWNoZS5tYXRjaEFsbDwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xp
Z2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jY2Fj
aGUtbWF0Y2hhbGwiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci8jY2FjaGUtbWF0Y2hhbGwiPgogPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1wdXQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLXB1dC5odHRwcy5odG1s
CmluZGV4IDg4NzY5MzA2MWQ1MzUwYmFiMDBiYzhhMTAxNmNiNzJhNDAwYjhmYzIuLjIwYWViMjM1
MWVmYjcwY2VlZGJkN2M1YzQ2ZGM3ZDUwMGRlZjcxZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0
b3JhZ2Uvd29ya2VyL2NhY2hlLXB1dC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uv
d29ya2VyL2NhY2hlLXB1dC5odHRwcy5odG1sCkBAIC0xLDYgKzEsNiBAQAogPCFET0NUWVBFIGh0
bWw+CiA8dGl0bGU+Q2FjaGUucHV0PC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29y
a2VyLyNjYWNoZS1wdXQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRo
dWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtcHV0Ij4KIDxtZXRhIG5hbWU9InRpbWVvdXQiIGNv
bnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3RvcmFn
ZS1rZXlzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1zdG9yYWdl
LWtleXMuaHR0cHMuaHRtbAppbmRleCA1Yzc1ZWY4OGIzNDI0Zjc3ZmQ0NjBmZDhmYmM1NzdjYmVk
NWNjOTJmLi43MWQ5OTViYzk0MDBiMTczYmVmNDg2YjE3OGY0M2QyOWI4MDM4MDc2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1zdG9yYWdlLWtleXMuaHR0cHMu
aHRtbApAQCAtMSw2ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNhY2hlU3RvcmFn
ZS5rZXlzPC90aXRsZT4KLTxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9m
Zi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNjYWNoZS1zdG9y
YWdlIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZp
Y2VXb3JrZXIvI2NhY2hlLXN0b3JhZ2UiPgogPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0i
bG9uZyI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1zdG9yYWdlLW1hdGNo
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1zdG9yYWdlLW1hdGNo
Lmh0dHBzLmh0bWwKaW5kZXggNGQ0ODY4MzM0NzMzY2JiNTI4ZmM1ZjBiYmJmYjEyMGIyN2ZjMWZj
MS4uY2Q5MzQxMGQyMzQ4ODZjZTYzZDk3ZTZjMTM0NjFiOTBhOWQ0ZDM2OSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3RvcmFnZS1tYXRjaC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLXN0b3JhZ2UtbWF0Y2guaHR0cHMuaHRt
bApAQCAtMSw2ICsxLDYgQEAKIDwhRE9DVFlQRSBodG1sPgogPHRpdGxlPkNhY2hlU3RvcmFnZS5t
YXRjaDwvdGl0bGU+Ci08bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYu
Z2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jY2FjaGUtc3RvcmFn
ZS1tYXRjaCI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9T
ZXJ2aWNlV29ya2VyLyNjYWNoZS1zdG9yYWdlLW1hdGNoIj4KIDxtZXRhIG5hbWU9InRpbWVvdXQi
IGNvbnRlbnQ9ImxvbmciPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3Rv
cmFnZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtc3RvcmFnZS5o
dHRwcy5odG1sCmluZGV4IGUxMGY1YzVhM2RiOGYxNGUzNTFlNWI2NGYzYjA4ZjliZTkyZGQyMzEu
LjA4OTk2MDllNGFlYjQ2NDYzYmFmNzE5Y2JlYWVhNTBhMzUyMzk0MGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLXN0b3JhZ2UuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9j
YWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1zdG9yYWdlLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw2
IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5DYWNoZVN0b3JhZ2U8L3RpdGxlPgotPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2NhY2hlLXN0b3JhZ2UiPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtc3RvcmFn
ZSI+CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hl
LXN0b3JhZ2Uvd29ya2VyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIv
dzNjLWltcG9ydC5sb2cKaW5kZXggMTc0Y2UxYTMyZjYwNTkxODRkZjFhOTFkMzhlYWEyN2JkNmZl
NWEyMy4uY2I1NWZmZDZiNWJiZDA5MDU3MjNmZDZhNjQ1ZDBkZTg3MDdlN2I5NCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS93b3JrZXIvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
IERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKQEAgLTE3LDYgKzE2LDcgQEAgTm9uZQogTGlzdCBvZiBm
aWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1hZGQuaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWRlbGV0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUt
c3RvcmFnZS93b3JrZXIvY2FjaGUta2V5cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93
b3JrZXIvY2FjaGUtbWF0Y2guaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2Nh
Y2hlLW1hdGNoQWxsLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1w
dXQuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL2V4dGVuZGFi
bGUtbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyNTI0
NWZlOWVjZTczZmRlNmUyNDA4ZTc2OTI3YmJmY2QxYjA0Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJsZS1tZXNz
YWdlLWV2ZW50LWNvbnN0cnVjdG9yLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOiBFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50IENvbnN0cnVjdG9yPC90aXRsZT4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdC1o
ZWxwZXJzLnN1Yi5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2VydmljZV93b3JrZXJfdGVzdCgK
KyAgICAncmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC1jb25zdHJ1Y3Rvci13b3Jr
ZXIuanMnLCBkb2N1bWVudC50aXRsZQorICApOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdl
LWV2ZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODll
ZmQ3YTRhNjE1YzFhM2VmMzViMDQ1NjkwZmE0MGI2N2ZiNTM5MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9leHRlbmRhYmxlLW1l
c3NhZ2UtZXZlbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIyNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50
PC90aXRsZT4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyc+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0nLi9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LXV0
aWxzLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewor
ICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC13b3Jr
ZXIuanMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZXh0ZW5kYWJsZS1tZXNz
YWdlLWV2ZW50LWZyb20tdG9wbGV2ZWwnOworICAgIHZhciByZWdpc3RyYXRpb247CisKKyAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24g
PSByOworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeyByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpOyB9KTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIub25tZXNzYWdlID0KKyAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50
KSB7IHJlc29sdmUoZXZlbnQuZGF0YSk7IH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgIHZh
ciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsOworICAgICAgICAgIHJlZ2lzdHJhdGlvbi5h
Y3RpdmUucG9zdE1lc3NhZ2UoJycsIFtjaGFubmVsLnBvcnQxXSk7CisgICAgICAgICAgcmV0dXJu
IHNhd19tZXNzYWdlOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0cykg
eworICAgICAgICAgIHZhciBleHBlY3RlZCA9IHsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7
IG5hbWU6ICdFeHRlbmRhYmxlTWVzc2FnZUV2ZW50JyB9LAorICAgICAgICAgICAgb3JpZ2luOiBs
b2NhdGlvbi5vcmlnaW4sCisgICAgICAgICAgICBsYXN0RXZlbnRJZDogJycsCisgICAgICAgICAg
ICBzb3VyY2U6IHsKKyAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcjogeyBuYW1lOiAnV2luZG93
Q2xpZW50JyB9LAorICAgICAgICAgICAgICAgIGZyYW1lVHlwZTogJ3RvcC1sZXZlbCcsCisgICAg
ICAgICAgICAgICAgdXJsOiBsb2NhdGlvbi5ocmVmLAorICAgICAgICAgICAgICAgIHZpc2liaWxp
dHlTdGF0ZTogJ3Zpc2libGUnLAorICAgICAgICAgICAgICAgIGZvY3VzZWQ6IHRydWUKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBwb3J0czogWyB7IGNvbnN0cnVjdG9yOiB7IG5hbWU6ICdN
ZXNzYWdlUG9ydCcgfSB9IF0KKyAgICAgICAgICB9OworICAgICAgICAgIEV4dGVuZGFibGVNZXNz
YWdlRXZlbnRVdGlscy5hc3NlcnRfZXF1YWxzKHJlc3VsdHMsIGV4cGVjdGVkKTsKKyAgICAgICAg
fSk7CisgIH0sICdQb3N0IGFuIGV4dGVuZGFibGUgbWVzc2FnZSBmcm9tIGEgdG9wLWxldmVsIGNs
aWVudCcpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY3JpcHQgPSAn
cmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC13b3JrZXIuanMnOworICAgIHZhciBz
Y29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LWZyb20tbmVz
dGVkJzsKKyAgICB2YXIgZnJhbWU7CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0
aW9uKCkgeyByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOyB9KTsKKyAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUo
c2NvcGUpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1lID0g
ZjsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsgZnJhbWUu
cmVtb3ZlKCk7IH0pOworICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPQorICAgICAgICAgICAgICAgICAgZnVuY3Rp
b24oZXZlbnQpIHsgcmVzb2x2ZShldmVudC5kYXRhKTsgfQorICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgZi5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIu
cG9zdE1lc3NhZ2UoJycpOworICAgICAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdHMpIHsKKyAgICAgICAgICB2YXIgZXhwZWN0
ZWQgPSB7CisgICAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7IG5hbWU6ICdFeHRlbmRhYmxlTWVz
c2FnZUV2ZW50JyB9LAorICAgICAgICAgICAgICBvcmlnaW46IGxvY2F0aW9uLm9yaWdpbiwKKyAg
ICAgICAgICAgICAgbGFzdEV2ZW50SWQ6ICcnLAorICAgICAgICAgICAgICBzb3VyY2U6IHsKKyAg
ICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7IG5hbWU6ICdXaW5kb3dDbGllbnQnIH0sCisg
ICAgICAgICAgICAgICAgICB1cmw6IGZyYW1lLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZiwK
KyAgICAgICAgICAgICAgICAgIGZyYW1lVHlwZTogJ25lc3RlZCcsCisgICAgICAgICAgICAgICAg
ICB2aXNpYmlsaXR5U3RhdGU6ICd2aXNpYmxlJywKKyAgICAgICAgICAgICAgICAgIGZvY3VzZWQ6
IGZhbHNlCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHBvcnRzOiBbXQorICAgICAg
ICAgICAgfTsKKyAgICAgICAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50VXRpbHMuYXNzZXJ0X2Vx
dWFscyhyZXN1bHRzLCBleHBlY3RlZCk7CisgICAgICAgIH0pOworICB9LCAnUG9zdCBhbiBleHRl
bmRhYmxlIG1lc3NhZ2UgZnJvbSBhIG5lc3RlZCBjbGllbnQnKTsKKworcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3Nh
Z2UtZXZlbnQtbG9vcGJhY2std29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2Vz
L3Njb3BlL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC1sb29wYmFjayc7CisgICAgdmFyIHJlZ2lz
dHJhdGlvbjsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAg
ICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2so
ZnVuY3Rpb24oKSB7IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0pOworICAgICAgICAgIHJl
dHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFy
IHJlc3VsdHMgPSBbXTsKKyAgICAgICAgICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChl
dmVudC5kYXRhLnR5cGUpIHsKKyAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlY29yZCc6CisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChldmVudC5kYXRhLnJlc3VsdHMpOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbmlzaCc6Cisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0cyk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2Uoe3R5cGU6ICdz
dGFydCd9KTsKKyAgICAgICAgICByZXR1cm4gc2F3X21lc3NhZ2U7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbihyZXN1bHRzKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1
bHRzLmxlbmd0aCwgMik7CisKKyAgICAgICAgICB2YXIgZXhwZWN0ZWRfdHJpYWxfMSA9IHsKKyAg
ICAgICAgICAgICAgY29uc3RydWN0b3I6IHsgbmFtZTogJ0V4dGVuZGFibGVNZXNzYWdlRXZlbnQn
IH0sCisgICAgICAgICAgICAgIG9yaWdpbjogbG9jYXRpb24ub3JpZ2luLAorICAgICAgICAgICAg
ICBsYXN0RXZlbnRJZDogJycsCisgICAgICAgICAgICAgIHNvdXJjZTogeworICAgICAgICAgICAg
ICAgICAgY29uc3RydWN0b3I6IHsgbmFtZTogJ1NlcnZpY2VXb3JrZXInIH0sCisgICAgICAgICAg
ICAgICAgICBzY3JpcHRVUkw6IG5vcm1hbGl6ZVVSTChzY3JpcHQpLAorICAgICAgICAgICAgICAg
ICAgc3RhdGU6ICdhY3RpdmF0ZWQnCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHBv
cnRzOiBbXQorICAgICAgICAgIH07CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzWzBd
LnRyaWFsLCAxKTsKKyAgICAgICAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50VXRpbHMuYXNzZXJ0
X2VxdWFscygKKyAgICAgICAgICAgICAgcmVzdWx0c1swXS5ldmVudCwgZXhwZWN0ZWRfdHJpYWxf
MQorICAgICAgICAgICk7CisKKyAgICAgICAgICB2YXIgZXhwZWN0ZWRfdHJpYWxfMiA9IHsKKyAg
ICAgICAgICAgICAgY29uc3RydWN0b3I6IHsgbmFtZTogJ0V4dGVuZGFibGVNZXNzYWdlRXZlbnQn
IH0sCisgICAgICAgICAgICAgIG9yaWdpbjogbG9jYXRpb24ub3JpZ2luLAorICAgICAgICAgICAg
ICBsYXN0RXZlbnRJZDogJycsCisgICAgICAgICAgICAgIHNvdXJjZTogeworICAgICAgICAgICAg
ICAgICAgY29uc3RydWN0b3I6IHsgbmFtZTogJ1NlcnZpY2VXb3JrZXInIH0sCisgICAgICAgICAg
ICAgICAgICBzY3JpcHRVUkw6IG5vcm1hbGl6ZVVSTChzY3JpcHQpLAorICAgICAgICAgICAgICAg
ICAgc3RhdGU6ICdhY3RpdmF0ZWQnCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHBv
cnRzOiBbXSwKKyAgICAgICAgICB9OworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0c1sx
XS50cmlhbCwgMik7CisgICAgICAgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFV0aWxzLmFzc2Vy
dF9lcXVhbHMoCisgICAgICAgICAgICAgIHJlc3VsdHNbMV0uZXZlbnQsIGV4cGVjdGVkX3RyaWFs
XzIKKyAgICAgICAgICApOworICAgICAgICB9KTsKKyAgfSwgJ1Bvc3QgbG9vcGJhY2sgZXh0ZW5k
YWJsZSBtZXNzYWdlcycpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBz
Y3JpcHQxID0gJ3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQtcGluZy13b3JrZXIu
anMnOworICAgIHZhciBzY3JpcHQyID0gJ3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZl
bnQtcG9uZy13b3JrZXIuanMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZXh0
ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LXBpbmdwb25nJzsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOwor
CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNj
cmlwdDEsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lz
dHJhdGlvbiA9IHI7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24o
KSB7IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0pOworICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgLy8gQSBjb250cm9s
bGVkIGZyYW1lIGlzIG5lY2Vzc2FyeSBmb3Iga2VlcGluZyBhIHdhaXRpbmcgd29ya2VyLgorICAg
ICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1
bmN0aW9uKCkgeyBmcmFtZS5yZW1vdmUoKTsgfSk7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdDIsIHtzY29wZTogc2NvcGV9KTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnaW5zdGFsbGVkJyk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcmVzdWx0cyA9IFtdOworICAgICAg
ICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAg
ICAgICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50LmRhdGEudHlwZSkgeworICAg
ICAgICAgICAgICAgICAgY2FzZSAncmVjb3JkJzoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
cy5wdXNoKGV2ZW50LmRhdGEucmVzdWx0cyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgY2FzZSAnZmluaXNoJzoKKyAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZShyZXN1bHRzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSk7CisgICAgICAgICAgcmVnaXN0
cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZSh7dHlwZTogJ3N0YXJ0J30pOworICAgICAgICAgIHJl
dHVybiBzYXdfbWVzc2FnZTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Vs
dHMpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdHMubGVuZ3RoLCAyKTsKKworICAg
ICAgICAgIHZhciBleHBlY3RlZF9waW5nID0geworICAgICAgICAgICAgICBjb25zdHJ1Y3Rvcjog
eyBuYW1lOiAnRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCcgfSwKKyAgICAgICAgICAgICAgb3JpZ2lu
OiBsb2NhdGlvbi5vcmlnaW4sCisgICAgICAgICAgICAgIGxhc3RFdmVudElkOiAnJywKKyAgICAg
ICAgICAgICAgc291cmNlOiB7CisgICAgICAgICAgICAgICAgICBjb25zdHJ1Y3RvcjogeyBuYW1l
OiAnU2VydmljZVdvcmtlcicgfSwKKyAgICAgICAgICAgICAgICAgIHNjcmlwdFVSTDogbm9ybWFs
aXplVVJMKHNjcmlwdDEpLAorICAgICAgICAgICAgICAgICAgc3RhdGU6ICdhY3RpdmF0ZWQnCisg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHBvcnRzOiBbXQorICAgICAgICAgIH07Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRzWzBdLnBpbmdPclBvbmcsICdwaW5nJyk7Cisg
ICAgICAgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFV0aWxzLmFzc2VydF9lcXVhbHMoCisgICAg
ICAgICAgICAgIHJlc3VsdHNbMF0uZXZlbnQsIGV4cGVjdGVkX3BpbmcKKyAgICAgICAgICApOwor
CisgICAgICAgICAgdmFyIGV4cGVjdGVkX3BvbmcgPSB7CisgICAgICAgICAgICAgIGNvbnN0cnVj
dG9yOiB7IG5hbWU6ICdFeHRlbmRhYmxlTWVzc2FnZUV2ZW50JyB9LAorICAgICAgICAgICAgICBv
cmlnaW46IGxvY2F0aW9uLm9yaWdpbiwKKyAgICAgICAgICAgICAgbGFzdEV2ZW50SWQ6ICcnLAor
ICAgICAgICAgICAgICBzb3VyY2U6IHsKKyAgICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yOiB7
IG5hbWU6ICdTZXJ2aWNlV29ya2VyJyB9LAorICAgICAgICAgICAgICAgICAgc2NyaXB0VVJMOiBu
b3JtYWxpemVVUkwoc2NyaXB0MiksCisgICAgICAgICAgICAgICAgICBzdGF0ZTogJ2luc3RhbGxl
ZCcKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgcG9ydHM6IFtdCisgICAgICAgICAg
fTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdHNbMV0ucGluZ09yUG9uZywgJ3Bvbmcn
KTsKKyAgICAgICAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50VXRpbHMuYXNzZXJ0X2VxdWFscygK
KyAgICAgICAgICAgICAgcmVzdWx0c1sxXS5ldmVudCwgZXhwZWN0ZWRfcG9uZworICAgICAgICAg
ICk7CisgICAgICAgIH0pOworICB9LCAnUG9zdCBleHRlbmRhYmxlIG1lc3NhZ2VzIGFtb25nIHNl
cnZpY2Ugd29ya2VycycpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0bWVzc2FnZS5odHRwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE3MDQ2ZWVkYzZiZDI1MjliNDUyZmUwM2EwZTllMmQ1MmMwYjJkNzAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDc2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6IHBvc3RNZXNzYWdlPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPScuLi9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyc+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY3JpcHQgPSAn
cmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWxvb3BiYWNrLXdvcmtlci5qcyc7CisgICAgdmFyIHNjb3Bl
ID0gJ3Jlc291cmNlcy9zY29wZS9wb3N0bWVzc2FnZS1sb29wYmFjayc7CisgICAgdmFyIHJlZ2lz
dHJhdGlvbjsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAg
ICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdl
Q2hhbm5lbCgpOworICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7Cisg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICByZWdpc3RyYXRpb24u
YWN0aXZlLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAg
cmV0dXJuIHNhd19tZXNzYWdlOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdPSycpOworICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAg
ICAgICAgfSk7CisgIH0sICdQb3N0IGxvb3BiYWNrIG1lc3NhZ2VzJyk7CisKK3Byb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjcmlwdDEgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdl
LXBpbmctd29ya2VyLmpzJzsKKyAgICB2YXIgc2NyaXB0MiA9ICdyZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtcG9uZy13b3JrZXIuanMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvcG9z
dG1lc3NhZ2UtcGluZ3BvbmcnOworICAgIHZhciByZWdpc3RyYXRpb247CisgICAgdmFyIGZyYW1l
OworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHNjcmlwdDEsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJl
Z2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICAvLyBBIGNvbnRyb2xsZWQgZnJhbWUgaXMgbmVjZXNz
YXJ5IGZvciBrZWVwaW5nIGEgd2FpdGluZyB3b3JrZXIuCisgICAgICAgICAgcmV0dXJuIHdpdGhf
aWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAg
ICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKHNjcmlwdDIsIHtzY29wZTogc2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwg
ci5pbnN0YWxsaW5nLCAnaW5zdGFsbGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwor
ICAgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUp
IHsKKyAgICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICByZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RN
ZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAgcmV0dXJuIHNhd19t
ZXNzYWdlOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsICdPSycpOworICAgICAgICAgIGZyYW1lLnJlbW92
ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25l
KHQsIHNjb3BlKTsKKyAgICAgICAgfSk7CisgIH0sICdQb3N0IG1lc3NhZ2VzIGFtb25nIHNlcnZp
Y2Ugd29ya2VycycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvY2xvc2Utd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9jbG9zZS13
b3JrZXIuanMKaW5kZXggYTEzNDJiMTg3YjM3MzE5OWUyNmEzZTE4MGJhZmYyMDA2NzY2NGRiZi4u
MzJhZDIwM2RmMDFlMmIwN2NmZmM0ODhjNzBiYTk0NDMxODc5ODZmNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9jbG9zZS13
b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
L3Jlc291cmNlcy9jbG9zZS13b3JrZXIuanMKQEAgLTIsNyArMiw1IEBAIGltcG9ydFNjcmlwdHMo
Jy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2VzLmpzJyk7CiBpbXBvcnRTY3JpcHRzKCcuLi8uLi9y
ZXNvdXJjZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzJyk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0g
IGFzc2VydF90aHJvd3Moe25hbWU6ICdJbnZhbGlkQWNjZXNzRXJyb3InfSwgZnVuY3Rpb24oKSB7
Ci0gICAgc2VsZi5jbG9zZSgpOwotICB9KTsKKyAgYXNzZXJ0X2ZhbHNlKCdjbG9zZScgaW4gc2Vs
Zik7CiB9LCAnU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGNsb3NlIG9wZXJhdGlvbicpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291
cmNlcy9lcnJvci13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUvcmVzb3VyY2VzL2Vycm9yLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjgzOGZmYjM5
NDdiNTRkZDk2ZGE5Y2Q1N2FhNzk4N2IwNTJhMzFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9lcnJvci13b3Jr
ZXIuanMKQEAgLTAsMCArMSwxMiBAQAordmFyIHNvdXJjZTsKKworc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICBzb3VyY2UgPSBlLnNvdXJjZTsKKyAgdGhy
b3cgJ3Rlc3RFcnJvcic7Cit9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1
bmN0aW9uKGUpIHsKKyAgc291cmNlLnBvc3RNZXNzYWdlKHsKKyAgICBlcnJvcjogZS5lcnJvciwg
ZmlsZW5hbWU6IGUuZmlsZW5hbWUsIG1lc3NhZ2U6IGUubWVzc2FnZSwgbGluZW5vOiBlLmxpbmVu
bywKKyAgICBjb2xubzogZS5jb2xub30pOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2Fn
ZS1ldmVudC1jb25zdHJ1Y3Rvci13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC1jb25z
dHJ1Y3Rvci13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVkZTcwZGNmODE1ODQwOGU0OTkzZjI3MzZi
YzUwNjJjMGUzY2I2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LWNv
bnN0cnVjdG9yLXdvcmtlci5qcwpAQCAtMCwwICsxLDE5MyBAQAoraW1wb3J0U2NyaXB0cygnL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcycpOworCitjb25zdCBURVNUX09CSkVDVCA9IHsgd2Fud2Fu
OiAxMjMgfTsKK2NvbnN0IENIQU5ORUwxID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Citjb25zdCBD
SEFOTkVMMiA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworY29uc3QgUE9SVFMgPSBbQ0hBTk5FTDEu
cG9ydDEsIENIQU5ORUwxLnBvcnQyLCBDSEFOTkVMMi5wb3J0MV07CitmdW5jdGlvbiBjcmVhdGVF
dmVudChpbml0aWFsaXplcikgeworICBpZiAoaW5pdGlhbGl6ZXIgPT09IHVuZGVmaW5lZCkKKyAg
ICByZXR1cm4gbmV3IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQoJ3R5cGUnKTsKKyAgcmV0dXJuIG5l
dyBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KCd0eXBlJywgaW5pdGlhbGl6ZXIpOworfQorCisvLyBU
aGVzZSB0ZXN0IGNhc2VzIGFyZSBtb3N0bHkgY29waWVkIGZyb20gdGhlIGZvbGxvd2luZyBmaWxl
IGluIHRoZSBDaHJvbWl1bQorLy8gcHJvamVjdCAoYXMgb2YgY29tbWl0IDg0OGFkNzA4MjM5OTFl
MGYxMmI0MzdkNzg5OTQzYTRhYjI0ZDY1YmIpOgorLy8gdGhpcmRfcGFydHkvV2ViS2l0L0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9tZXNzYWdlLWV2ZW50LWNvbnN0cnVjdG9y
Lmh0bWwKKwordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X2ZhbHNlKGNyZWF0ZUV2ZW50KCku
YnViYmxlcyk7CisgIGFzc2VydF9mYWxzZShjcmVhdGVFdmVudCgpLmNhbmNlbGFibGUpOworICBh
c3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KCkuZGF0YSwgbnVsbCk7CisgIGFzc2VydF9lcXVhbHMo
Y3JlYXRlRXZlbnQoKS5vcmlnaW4sICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVFdmVudCgp
Lmxhc3RFdmVudElkLCAnJyk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoKS5zb3VyY2Us
IG51bGwpOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNyZWF0ZUV2ZW50KCkucG9ydHMsIFtdKTsK
K30sICdubyBpbml0aWFsaXplciBzcGVjaWZpZWQnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAg
YXNzZXJ0X2ZhbHNlKGNyZWF0ZUV2ZW50KHsgYnViYmxlczogZmFsc2UgfSkuYnViYmxlcyk7Cisg
IGFzc2VydF90cnVlKGNyZWF0ZUV2ZW50KHsgYnViYmxlczogdHJ1ZSB9KS5idWJibGVzKTsKK30s
ICdgYnViYmxlc2AgaXMgc3BlY2lmaWVkJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2Vy
dF9mYWxzZShjcmVhdGVFdmVudCh7IGNhbmNlbGFibGU6IGZhbHNlIH0pLmNhbmNlbGFibGUpOwor
ICBhc3NlcnRfdHJ1ZShjcmVhdGVFdmVudCh7IGNhbmNlbGFibGU6IHRydWUgfSkuY2FuY2VsYWJs
ZSk7Cit9LCAnYGNhbmNlbGFibGVgIGlzIHNwZWNpZmllZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgZGF0YTogVEVTVF9PQkpFQ1QgfSkuZGF0
YSwgVEVTVF9PQkpFQ1QpOworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgZGF0YTogdW5k
ZWZpbmVkIH0pLmRhdGEsIG51bGwpOworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgZGF0
YTogbnVsbCB9KS5kYXRhLCBudWxsKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVFdmVudCh7IGRh
dGE6IGZhbHNlIH0pLmRhdGEsIGZhbHNlKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVFdmVudCh7
IGRhdGE6IHRydWUgfSkuZGF0YSwgdHJ1ZSk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQo
eyBkYXRhOiAnJyB9KS5kYXRhLCAnJyk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoeyBk
YXRhOiAnY2hvY29sYXRlJyB9KS5kYXRhLCAnY2hvY29sYXRlJyk7CisgIGFzc2VydF9lcXVhbHMo
Y3JlYXRlRXZlbnQoeyBkYXRhOiAxMjM0NSB9KS5kYXRhLCAxMjM0NSk7CisgIGFzc2VydF9lcXVh
bHMoY3JlYXRlRXZlbnQoeyBkYXRhOiAxODQ0Njc0NDA3MzcwOTU1MTYxNSB9KS5kYXRhLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDE4NDQ2NzQ0MDczNzA5NTUyMDAwKTsKKyAgYXNzZXJ0
X2VxdWFscyhjcmVhdGVFdmVudCh7IGRhdGE6IE5hTiB9KS5kYXRhLCBOYU4pOworICAvLyBOb3Rl
IHRoYXQgdmFsdWVPZigpIGlzIG5vdCBjYWxsZWQsIHdoZW4gdGhlIGxlZnQgaGFuZCBzaWRlIGlz
CisgIC8vIGV2YWx1YXRlZC4KKyAgYXNzZXJ0X2ZhbHNlKAorICAgICAgY3JlYXRlRXZlbnQoeyBk
YXRhOiB7CisgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVybiBURVNUX09CSkVD
VDsgfSB9IH0pLmRhdGEgPT0KKyAgICAgIFRFU1RfT0JKRUNUKTsKKyAgYXNzZXJ0X2VxdWFscyhj
cmVhdGVFdmVudCh7IGdldCBkYXRhKCl7IHJldHVybiAxMjM7IH0gfSkuZGF0YSwgMTIzKTsKKyAg
YXNzZXJ0X3Rocm93cyh7IG5hbWU6ICdFcnJvcicgfSwgZnVuY3Rpb24oKSB7CisgICAgICBjcmVh
dGVFdmVudCh7IGdldCBkYXRhKCkgeyB0aHJvdyB7IG5hbWU6ICdFcnJvcicgfTsgfSB9KTsgfSk7
Cit9LCAnYGRhdGFgIGlzIHNwZWNpZmllZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3Nl
cnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgb3JpZ2luOiAnbWVsYW5jaG9seScgfSkub3JpZ2luLCAn
bWVsYW5jaG9seScpOworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgb3JpZ2luOiAnJyB9
KS5vcmlnaW4sICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVFdmVudCh7IG9yaWdpbjogbnVs
bCB9KS5vcmlnaW4sICdudWxsJyk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoeyBvcmln
aW46IGZhbHNlIH0pLm9yaWdpbiwgJ2ZhbHNlJyk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZl
bnQoeyBvcmlnaW46IHRydWUgfSkub3JpZ2luLCAndHJ1ZScpOworICBhc3NlcnRfZXF1YWxzKGNy
ZWF0ZUV2ZW50KHsgb3JpZ2luOiAxMjM0NSB9KS5vcmlnaW4sICcxMjM0NScpOworICBhc3NlcnRf
ZXF1YWxzKAorICAgICAgY3JlYXRlRXZlbnQoeyBvcmlnaW46IDE4NDQ2NzQ0MDczNzA5NTUxNjE1
IH0pLm9yaWdpbiwKKyAgICAgICcxODQ0Njc0NDA3MzcwOTU1MjAwMCcpOworICBhc3NlcnRfZXF1
YWxzKGNyZWF0ZUV2ZW50KHsgb3JpZ2luOiBOYU4gfSkub3JpZ2luLCAnTmFOJyk7CisgIGFzc2Vy
dF9lcXVhbHMoY3JlYXRlRXZlbnQoeyBvcmlnaW46IFtdIH0pLm9yaWdpbiwgJycpOworICBhc3Nl
cnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgb3JpZ2luOiBbMSwgMiwgM10gfSkub3JpZ2luLCAnMSwy
LDMnKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICAgIGNyZWF0ZUV2ZW50KHsgb3JpZ2luOiB7IG1l
bGFuY2hvbHk6IDEyMzQ1IH0gfSkub3JpZ2luLAorICAgICAgJ1tvYmplY3QgT2JqZWN0XScpOwor
ICAvLyBOb3RlIHRoYXQgdmFsdWVPZigpIGlzIG5vdCBjYWxsZWQsIHdoZW4gdGhlIGxlZnQgaGFu
ZCBzaWRlIGlzCisgIC8vIGV2YWx1YXRlZC4KKyAgYXNzZXJ0X2VxdWFscygKKyAgICAgIGNyZWF0
ZUV2ZW50KHsgb3JpZ2luOiB7CisgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24oKSB7IHJldHVy
biAnbWVsYW5jaG9seSc7IH0gfSB9KS5vcmlnaW4sCisgICAgICAnW29iamVjdCBPYmplY3RdJyk7
CisgIGFzc2VydF9lcXVhbHMoCisgICAgICBjcmVhdGVFdmVudCh7IGdldCBvcmlnaW4oKSB7IHJl
dHVybiAxMjM7IH0gfSkub3JpZ2luLCAnMTIzJyk7CisgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAn
RXJyb3InIH0sIGZ1bmN0aW9uKCkgeworICAgICAgY3JlYXRlRXZlbnQoeyBnZXQgb3JpZ2luKCkg
eyB0aHJvdyB7IG5hbWU6ICdFcnJvcicgfTsgfSB9KTsgfSk7Cit9LCAnYG9yaWdpbmAgaXMgc3Bl
Y2lmaWVkJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIGFzc2VydF9lcXVhbHMoCisgICAgICBj
cmVhdGVFdmVudCh7IGxhc3RFdmVudElkOiAnbWVsYW5jaG9seScgfSkubGFzdEV2ZW50SWQsICdt
ZWxhbmNob2x5Jyk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoeyBsYXN0RXZlbnRJZDog
JycgfSkubGFzdEV2ZW50SWQsICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVFdmVudCh7IGxh
c3RFdmVudElkOiBudWxsIH0pLmxhc3RFdmVudElkLCAnbnVsbCcpOworICBhc3NlcnRfZXF1YWxz
KGNyZWF0ZUV2ZW50KHsgbGFzdEV2ZW50SWQ6IGZhbHNlIH0pLmxhc3RFdmVudElkLCAnZmFsc2Un
KTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVFdmVudCh7IGxhc3RFdmVudElkOiB0cnVlIH0pLmxh
c3RFdmVudElkLCAndHJ1ZScpOworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgbGFzdEV2
ZW50SWQ6IDEyMzQ1IH0pLmxhc3RFdmVudElkLCAnMTIzNDUnKTsKKyAgYXNzZXJ0X2VxdWFscygK
KyAgICAgIGNyZWF0ZUV2ZW50KHsgbGFzdEV2ZW50SWQ6IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IH0p
Lmxhc3RFdmVudElkLAorICAgICAgJzE4NDQ2NzQ0MDczNzA5NTUyMDAwJyk7CisgIGFzc2VydF9l
cXVhbHMoY3JlYXRlRXZlbnQoeyBsYXN0RXZlbnRJZDogTmFOIH0pLmxhc3RFdmVudElkLCAnTmFO
Jyk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoeyBsYXN0RXZlbnRJZDogW10gfSkubGFz
dEV2ZW50SWQsICcnKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICAgIGNyZWF0ZUV2ZW50KHsgbGFz
dEV2ZW50SWQ6IFsxLCAyLCAzXSB9KS5sYXN0RXZlbnRJZCwgJzEsMiwzJyk7CisgIGFzc2VydF9l
cXVhbHMoCisgICAgICBjcmVhdGVFdmVudCh7IGxhc3RFdmVudElkOiB7IG1lbGFuY2hvbHk6IDEy
MzQ1IH0gfSkubGFzdEV2ZW50SWQsCisgICAgICAnW29iamVjdCBPYmplY3RdJyk7CisgIC8vIE5v
dGUgdGhhdCB2YWx1ZU9mKCkgaXMgbm90IGNhbGxlZCwgd2hlbiB0aGUgbGVmdCBoYW5kIHNpZGUg
aXMKKyAgLy8gZXZhbHVhdGVkLgorICBhc3NlcnRfZXF1YWxzKAorICAgICAgY3JlYXRlRXZlbnQo
eyBsYXN0RXZlbnRJZDogeworICAgICAgICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXR1cm4g
J21lbGFuY2hvbHknOyB9IH0gfSkubGFzdEV2ZW50SWQsCisgICAgICAnW29iamVjdCBPYmplY3Rd
Jyk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgICBjcmVhdGVFdmVudCh7IGdldCBsYXN0RXZlbnRJ
ZCgpIHsgcmV0dXJuIDEyMzsgfSB9KS5sYXN0RXZlbnRJZCwKKyAgICAgICcxMjMnKTsKKyAgYXNz
ZXJ0X3Rocm93cyh7IG5hbWU6ICdFcnJvcicgfSwgZnVuY3Rpb24oKSB7CisgICAgICBjcmVhdGVF
dmVudCh7IGdldCBsYXN0RXZlbnRJZCgpIHsgdGhyb3cgeyBuYW1lOiAnRXJyb3InIH07IH0gfSk7
IH0pOworfSwgJ2BsYXN0RXZlbnRJZGAgaXMgc3BlY2lmaWVkJyk7CisKK3Rlc3QoZnVuY3Rpb24o
KSB7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoeyBzb3VyY2U6IENIQU5ORUwxLnBvcnQx
IH0pLnNvdXJjZSwgQ0hBTk5FTDEucG9ydDEpOworICBhc3NlcnRfZXF1YWxzKAorICAgICAgY3Jl
YXRlRXZlbnQoeyBzb3VyY2U6IHNlbGYucmVnaXN0cmF0aW9uLmFjdGl2ZSB9KS5zb3VyY2UsCisg
ICAgICBzZWxmLnJlZ2lzdHJhdGlvbi5hY3RpdmUpOworICBhc3NlcnRfZXF1YWxzKAorICAgICAg
Y3JlYXRlRXZlbnQoeyBzb3VyY2U6IENIQU5ORUwxLnBvcnQxIH0pLnNvdXJjZSwgQ0hBTk5FTDEu
cG9ydDEpOworICBhc3NlcnRfdGhyb3dzKAorICAgICAgeyBuYW1lOiAnVHlwZUVycm9yJyB9LCBm
dW5jdGlvbigpIHsgY3JlYXRlRXZlbnQoeyBzb3VyY2U6IHRoaXMgfSk7IH0sCisgICAgICAnc291
cmNlIHNob3VsZCBiZSBDbGllbnQgb3IgU2VydmljZVdvcmtlciBvciBNZXNzYWdlUG9ydCcpOwor
fSwgJ2Bzb3VyY2VgIGlzIHNwZWNpZmllZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAvLyBW
YWxpZCBtZXNzYWdlIHBvcnRzLgorICB2YXIgcGFzc2VkX3BvcnRzID0gY3JlYXRlRXZlbnQoeyBw
b3J0czogUE9SVFN9KS5wb3J0czsKKyAgYXNzZXJ0X2VxdWFscyhwYXNzZWRfcG9ydHNbMF0sIENI
QU5ORUwxLnBvcnQxKTsKKyAgYXNzZXJ0X2VxdWFscyhwYXNzZWRfcG9ydHNbMV0sIENIQU5ORUwx
LnBvcnQyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYXNzZWRfcG9ydHNbMl0sIENIQU5ORUwyLnBvcnQx
KTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhjcmVhdGVFdmVudCh7IHBvcnRzOiBbXSB9KS5wb3J0
cywgW10pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNyZWF0ZUV2ZW50KHsgcG9ydHM6IHVuZGVm
aW5lZCB9KS5wb3J0cywgW10pOworCisgIC8vIEludmFsaWQgbWVzc2FnZSBwb3J0cy4KKyAgYXNz
ZXJ0X3Rocm93cyh7IG5hbWU6ICdUeXBlRXJyb3InIH0sCisgICAgICBmdW5jdGlvbigpIHsgY3Jl
YXRlRXZlbnQoeyBwb3J0czogWzEsIDIsIDNdIH0pOyB9KTsKKyAgYXNzZXJ0X3Rocm93cyh7IG5h
bWU6ICdUeXBlRXJyb3InIH0sCisgICAgICBmdW5jdGlvbigpIHsgY3JlYXRlRXZlbnQoeyBwb3J0
czogVEVTVF9PQkpFQ1QgfSk7IH0pOworICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogJ1R5cGVFcnJv
cicgfSwKKyAgICAgIGZ1bmN0aW9uKCkgeyBjcmVhdGVFdmVudCh7IHBvcnRzOiBudWxsIH0pOyB9
KTsKKyAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICdUeXBlRXJyb3InIH0sCisgICAgICBmdW5jdGlv
bigpIHsgY3JlYXRlRXZlbnQoeyBwb3J0czogdGhpcyB9KTsgfSk7CisgIGFzc2VydF90aHJvd3Mo
eyBuYW1lOiAnVHlwZUVycm9yJyB9LAorICAgICAgZnVuY3Rpb24oKSB7IGNyZWF0ZUV2ZW50KHsg
cG9ydHM6IGZhbHNlIH0pOyB9KTsKKyAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICdUeXBlRXJyb3In
IH0sCisgICAgICBmdW5jdGlvbigpIHsgY3JlYXRlRXZlbnQoeyBwb3J0czogdHJ1ZSB9KTsgfSk7
CisgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAnVHlwZUVycm9yJyB9LAorICAgICAgZnVuY3Rpb24o
KSB7IGNyZWF0ZUV2ZW50KHsgcG9ydHM6ICcnIH0pOyB9KTsKKyAgYXNzZXJ0X3Rocm93cyh7IG5h
bWU6ICdUeXBlRXJyb3InIH0sCisgICAgICBmdW5jdGlvbigpIHsgY3JlYXRlRXZlbnQoeyBwb3J0
czogJ2Nob2NvbGF0ZScgfSk7IH0pOworICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogJ1R5cGVFcnJv
cicgfSwKKyAgICAgIGZ1bmN0aW9uKCkgeyBjcmVhdGVFdmVudCh7IHBvcnRzOiAxMjM0NSB9KTsg
fSk7CisgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAnVHlwZUVycm9yJyB9LAorICAgICAgZnVuY3Rp
b24oKSB7IGNyZWF0ZUV2ZW50KHsgcG9ydHM6IDE4NDQ2NzQ0MDczNzA5NTUxNjE1IH0pOyB9KTsK
KyAgYXNzZXJ0X3Rocm93cyh7IG5hbWU6ICdUeXBlRXJyb3InIH0sCisgICAgICBmdW5jdGlvbigp
IHsgY3JlYXRlRXZlbnQoeyBwb3J0czogTmFOIH0pOyB9KTsKKyAgYXNzZXJ0X3Rocm93cyh7IG5h
bWU6ICdUeXBlRXJyb3InIH0sCisgICAgICBmdW5jdGlvbigpIHsgY3JlYXRlRXZlbnQoeyBnZXQg
cG9ydHMoKSB7IHJldHVybiAxMjM7IH0gfSk7IH0pOworICBhc3NlcnRfdGhyb3dzKHsgbmFtZTog
J0Vycm9yJyB9LCBmdW5jdGlvbigpIHsKKyAgICAgIGNyZWF0ZUV2ZW50KHsgZ2V0IHBvcnRzKCkg
eyB0aHJvdyB7IG5hbWU6ICdFcnJvcicgfTsgfSB9KTsgfSk7CisgIC8vIE5vdGUgdGhhdCB2YWx1
ZU9mKCkgaXMgbm90IGNhbGxlZCwgd2hlbiB0aGUgbGVmdCBoYW5kIHNpZGUgaXMKKyAgLy8gZXZh
bHVhdGVkLgorICB2YXIgdmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gUE9SVFM7IH07Cisg
IGFzc2VydF90aHJvd3MoeyBuYW1lOiAnVHlwZUVycm9yJyB9LCBmdW5jdGlvbigpIHsKKyAgICAg
IGNyZWF0ZUV2ZW50KHsgcG9ydHM6IHsgdmFsdWVPZjogdmFsdWVPZiB9IH0pOyB9KTsKK30sICdg
cG9ydHNgIGlzIHNwZWNpZmllZCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICB2YXIgaW5pdGlh
bGl6ZXJzID0geworICAgICAgYnViYmxlczogdHJ1ZSwKKyAgICAgIGNhbmNlbGFibGU6IHRydWUs
CisgICAgICBkYXRhOiBURVNUX09CSkVDVCwKKyAgICAgIG9yaWdpbjogJ3dvbmRlcmZ1bCcsCisg
ICAgICBsYXN0RXZlbnRJZDogJ2V4Y2VsbGVudCcsCisgICAgICBzb3VyY2U6IENIQU5ORUwxLnBv
cnQxLAorICAgICAgcG9ydHM6IFBPUlRTCisgIH07CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZl
bnQoaW5pdGlhbGl6ZXJzKS5idWJibGVzLCB0cnVlKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVF
dmVudChpbml0aWFsaXplcnMpLmNhbmNlbGFibGUsIHRydWUpOworICBhc3NlcnRfZXF1YWxzKGNy
ZWF0ZUV2ZW50KGluaXRpYWxpemVycykuZGF0YSwgVEVTVF9PQkpFQ1QpOworICBhc3NlcnRfZXF1
YWxzKGNyZWF0ZUV2ZW50KGluaXRpYWxpemVycykub3JpZ2luLCAnd29uZGVyZnVsJyk7CisgIGFz
c2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoaW5pdGlhbGl6ZXJzKS5sYXN0RXZlbnRJZCwgJ2V4Y2Vs
bGVudCcpOworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KGluaXRpYWxpemVycykuc291cmNl
LCBDSEFOTkVMMS5wb3J0MSk7CisgIGFzc2VydF9lcXVhbHMoY3JlYXRlRXZlbnQoaW5pdGlhbGl6
ZXJzKS5wb3J0c1swXSwgUE9SVFNbMF0pOworICBhc3NlcnRfZXF1YWxzKGNyZWF0ZUV2ZW50KGlu
aXRpYWxpemVycykucG9ydHNbMV0sIFBPUlRTWzFdKTsKKyAgYXNzZXJ0X2VxdWFscyhjcmVhdGVF
dmVudChpbml0aWFsaXplcnMpLnBvcnRzWzJdLCBQT1JUU1syXSk7Cit9LCAnYWxsIGluaXRpYWwg
dmFsdWVzIGFyZSBzcGVjaWZpZWQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50
LWxvb3BiYWNrLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LWxvb3BiYWNrLXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xM2NhZTg4ZDgwMGQ4NjJlNzNhMWU4OWRhNTc0YjRkYjZlOTI1ZDNj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlL3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQtbG9vcGJhY2std29ya2Vy
LmpzCkBAIC0wLDAgKzEsMzYgQEAKK2ltcG9ydFNjcmlwdHMoJy4vZXh0ZW5kYWJsZS1tZXNzYWdl
LWV2ZW50LXV0aWxzLmpzJyk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgc3dpdGNoIChldmVudC5kYXRhLnR5cGUpIHsKKyAgICAgIGNh
c2UgJ3N0YXJ0JzoKKyAgICAgICAgc2VsZi5yZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNzYWdl
KAorICAgICAgICAgICAge3R5cGU6ICcxc3QnLCBjbGllbnRfaWQ6IGV2ZW50LnNvdXJjZS5pZH0p
OworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJzFzdCc6CisgICAgICAgIC8vIDFzdCBsb29w
YmFjayBtZXNzYWdlIHZpYSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmFjdGl2ZS4KKyAgICAg
ICAgdmFyIHJlc3VsdHMgPSB7CisgICAgICAgICAgICB0cmlhbDogMSwKKyAgICAgICAgICAgIGV2
ZW50OiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50VXRpbHMuc2VyaWFsaXplKGV2ZW50KQorICAgICAg
ICB9OworICAgICAgICB2YXIgY2xpZW50X2lkID0gZXZlbnQuZGF0YS5jbGllbnRfaWQ7CisgICAg
ICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSh7dHlwZTogJzJuZCcsIGNsaWVudF9pZDogY2xp
ZW50X2lkfSk7CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChjbGllbnRzLmdldChjbGllbnRfaWQp
CisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihjbGllbnQpIHsKKyAgICAgICAgICAgICAgICBj
bGllbnQucG9zdE1lc3NhZ2Uoe3R5cGU6ICdyZWNvcmQnLCByZXN1bHRzOiByZXN1bHRzfSk7Cisg
ICAgICAgICAgICAgIH0pKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICcybmQnOgorICAg
ICAgICAvLyAybmQgbG9vcGJhY2sgbWVzc2FnZSB2aWEgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5z
b3VyY2UuCisgICAgICAgIHZhciByZXN1bHRzID0geworICAgICAgICAgICAgdHJpYWw6IDIsCisg
ICAgICAgICAgICBldmVudDogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFV0aWxzLnNlcmlhbGl6ZShl
dmVudCkKKyAgICAgICAgfTsKKyAgICAgICAgdmFyIGNsaWVudF9pZCA9IGV2ZW50LmRhdGEuY2xp
ZW50X2lkOworICAgICAgICBldmVudC53YWl0VW50aWwoY2xpZW50cy5nZXQoY2xpZW50X2lkKQor
ICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50KSB7CisgICAgICAgICAgICAgICAgY2xp
ZW50LnBvc3RNZXNzYWdlKHt0eXBlOiAncmVjb3JkJywgcmVzdWx0czogcmVzdWx0c30pOworICAg
ICAgICAgICAgICAgIGNsaWVudC5wb3N0TWVzc2FnZSh7dHlwZTogJ2ZpbmlzaCd9KTsKKyAgICAg
ICAgICAgICAgfSkpOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL2V4
dGVuZGFibGUtbWVzc2FnZS1ldmVudC1waW5nLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2
ZW50LXBpbmctd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwN2IyMjk1OWNjMDAxOGNjMzEwOTY5Mjlm
ZDZlYTM4MDg4M2NhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC1w
aW5nLXdvcmtlci5qcwpAQCAtMCwwICsxLDIzIEBACitpbXBvcnRTY3JpcHRzKCcuL2V4dGVuZGFi
bGUtbWVzc2FnZS1ldmVudC11dGlscy5qcycpOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIHN3aXRjaCAoZXZlbnQuZGF0YS50eXBlKSB7
CisgICAgICBjYXNlICdzdGFydCc6CisgICAgICAgIC8vIFNlbmQgYSBwaW5nIG1lc3NhZ2UgdG8g
YW5vdGhlciBzZXJ2aWNlIHdvcmtlci4KKyAgICAgICAgc2VsZi5yZWdpc3RyYXRpb24ud2FpdGlu
Zy5wb3N0TWVzc2FnZSgKKyAgICAgICAgICAgIHt0eXBlOiAncGluZycsIGNsaWVudF9pZDogZXZl
bnQuc291cmNlLmlkfSk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAncG9uZyc6CisgICAg
ICAgIHZhciByZXN1bHRzID0geworICAgICAgICAgICAgcGluZ09yUG9uZzogJ3BvbmcnLAorICAg
ICAgICAgICAgZXZlbnQ6IEV4dGVuZGFibGVNZXNzYWdlRXZlbnRVdGlscy5zZXJpYWxpemUoZXZl
bnQpCisgICAgICAgIH07CisgICAgICAgIHZhciBjbGllbnRfaWQgPSBldmVudC5kYXRhLmNsaWVu
dF9pZDsKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKGNsaWVudHMuZ2V0KGNsaWVudF9pZCkKKyAg
ICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudCkgeworICAgICAgICAgICAgICAgIGNsaWVu
dC5wb3N0TWVzc2FnZSh7dHlwZTogJ3JlY29yZCcsIHJlc3VsdHM6IHJlc3VsdHN9KTsKKyAgICAg
ICAgICAgICAgICBjbGllbnQucG9zdE1lc3NhZ2Uoe3R5cGU6ICdmaW5pc2gnfSk7CisgICAgICAg
ICAgICAgIH0pKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5k
YWJsZS1tZXNzYWdlLWV2ZW50LXBvbmctd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQt
cG9uZy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU5NjY5ZTgzYzRiODBhMDU3NjVlZTc1ODk1N2Q4
MmE0ZmUzODlkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LXBvbmct
d29ya2VyLmpzCkBAIC0wLDAgKzEsMTggQEAKK2ltcG9ydFNjcmlwdHMoJy4vZXh0ZW5kYWJsZS1t
ZXNzYWdlLWV2ZW50LXV0aWxzLmpzJyk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2Fn
ZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgc3dpdGNoIChldmVudC5kYXRhLnR5cGUpIHsKKyAg
ICAgIGNhc2UgJ3BpbmcnOgorICAgICAgICB2YXIgcmVzdWx0cyA9IHsKKyAgICAgICAgICAgIHBp
bmdPclBvbmc6ICdwaW5nJywKKyAgICAgICAgICAgIGV2ZW50OiBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50VXRpbHMuc2VyaWFsaXplKGV2ZW50KQorICAgICAgICB9OworICAgICAgICB2YXIgY2xpZW50
X2lkID0gZXZlbnQuZGF0YS5jbGllbnRfaWQ7CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChjbGll
bnRzLmdldChjbGllbnRfaWQpCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihjbGllbnQpIHsK
KyAgICAgICAgICAgICAgICBjbGllbnQucG9zdE1lc3NhZ2Uoe3R5cGU6ICdyZWNvcmQnLCByZXN1
bHRzOiByZXN1bHRzfSk7CisgICAgICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdl
KHt0eXBlOiAncG9uZycsIGNsaWVudF9pZDogY2xpZW50X2lkfSk7CisgICAgICAgICAgICAgIH0p
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1tZXNz
YWdlLWV2ZW50LXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlL3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQtdXRpbHMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDZhM2I0ODNmNTM5NGMyMDM0Y2ZjOTJhNzNmZmRjZGJiZGNhY2M1MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNv
dXJjZXMvZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LXV0aWxzLmpzCkBAIC0wLDAgKzEsNzggQEAK
K3ZhciBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50VXRpbHMgPSB7fTsKKworLy8gQ3JlYXRlIGEgcmVw
cmVzZW50YXRpb24gb2YgYSBnaXZlbiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50IHRoYXQgaXMgc3Vp
dGFibGUKKy8vIGZvciB0cmFuc21pc3Npb24gdmlhIHRoZSBgcG9zdE1lc3NhZ2VgIEFQSS4KK0V4
dGVuZGFibGVNZXNzYWdlRXZlbnRVdGlscy5zZXJpYWxpemUgPSBmdW5jdGlvbihldmVudCkgewor
ICB2YXIgcG9ydHMgPSBldmVudC5wb3J0cy5tYXAoZnVuY3Rpb24ocG9ydCkgeworICAgICAgICBy
ZXR1cm4geyBjb25zdHJ1Y3RvcjogeyBuYW1lOiBwb3J0LmNvbnN0cnVjdG9yLm5hbWUgfSB9Owor
ICAgIH0pOworICByZXR1cm4geworICAgIGNvbnN0cnVjdG9yOiB7CisgICAgICBuYW1lOiBldmVu
dC5jb25zdHJ1Y3Rvci5uYW1lCisgICAgfSwKKyAgICBvcmlnaW46IGV2ZW50Lm9yaWdpbiwKKyAg
ICBsYXN0RXZlbnRJZDogZXZlbnQubGFzdEV2ZW50SWQsCisgICAgc291cmNlOiB7CisgICAgICBj
b25zdHJ1Y3RvcjogeworICAgICAgICBuYW1lOiBldmVudC5zb3VyY2UuY29uc3RydWN0b3IubmFt
ZQorICAgICAgfSwKKyAgICAgIHVybDogZXZlbnQuc291cmNlLnVybCwKKyAgICAgIGZyYW1lVHlw
ZTogZXZlbnQuc291cmNlLmZyYW1lVHlwZSwKKyAgICAgIHZpc2liaWxpdHlTdGF0ZTogZXZlbnQu
c291cmNlLnZpc2liaWxpdHlTdGF0ZSwKKyAgICAgIGZvY3VzZWQ6IGV2ZW50LnNvdXJjZS5mb2N1
c2VkCisgICAgfSwKKyAgICBwb3J0czogcG9ydHMKKyAgfTsKK307CisKKy8vIENvbXBhcmUgdGhl
IGFjdHVhbCBhbmQgZXhwZWN0ZWQgdmFsdWVzIG9mIGFuIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQg
dGhhdCBoYXMKKy8vIGJlZW4gdHJhbnNmb3JtZWQgdXNpbmcgdGhlIGBzZXJpYWxpemVgIGZ1bmN0
aW9uIGRlZmluZWQgaW4gdGhpcyBmaWxlLgorRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFV0aWxzLmFz
c2VydF9lcXVhbHMgPSBmdW5jdGlvbihhY3R1YWwsIGV4cGVjdGVkKSB7CisgIGFzc2VydF9lcXVh
bHMoCisgICAgYWN0dWFsLmNvbnN0cnVjdG9yLm5hbWUsIGV4cGVjdGVkLmNvbnN0cnVjdG9yLm5h
bWUsICdldmVudCBjb25zdHJ1Y3RvcicKKyAgKTsKKyAgYXNzZXJ0X2VxdWFscyhhY3R1YWwub3Jp
Z2luLCBleHBlY3RlZC5vcmlnaW4sICdldmVudCBgb3JpZ2luYCBwcm9wZXJ0eScpOworICBhc3Nl
cnRfZXF1YWxzKAorICAgIGFjdHVhbC5sYXN0RXZlbnRJZCwKKyAgICBleHBlY3RlZC5sYXN0RXZl
bnRJZCwKKyAgICAnZXZlbnQgYGxhc3RFdmVudElkYCBwcm9wZXJ0eScKKyAgKTsKKworICBhc3Nl
cnRfZXF1YWxzKAorICAgIGFjdHVhbC5zb3VyY2UuY29uc3RydWN0b3IubmFtZSwKKyAgICBleHBl
Y3RlZC5zb3VyY2UuY29uc3RydWN0b3IubmFtZSwKKyAgICAnZXZlbnQgYHNvdXJjZWAgcHJvcGVy
dHkgY29uc3RydWN0b3InCisgICk7CisgIGFzc2VydF9lcXVhbHMoCisgICAgYWN0dWFsLnNvdXJj
ZS51cmwsIGV4cGVjdGVkLnNvdXJjZS51cmwsICdldmVudCBgc291cmNlYCBwcm9wZXJ0eSBgdXJs
YCcKKyAgKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICBhY3R1YWwuc291cmNlLmZyYW1lVHlwZSwK
KyAgICBleHBlY3RlZC5zb3VyY2UuZnJhbWVUeXBlLAorICAgICdldmVudCBgc291cmNlYCBwcm9w
ZXJ0eSBgZnJhbWVUeXBlYCcKKyAgKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICBhY3R1YWwuc291
cmNlLnZpc2liaWxpdHlTdGF0ZSwKKyAgICBleHBlY3RlZC5zb3VyY2UudmlzaWJpbGl0eVN0YXRl
LAorICAgICdldmVudCBgc291cmNlYCBwcm9wZXJ0eSBgdmlzaWJpbGl0eVN0YXRlYCcKKyAgKTsK
KyAgYXNzZXJ0X2VxdWFscygKKyAgICBhY3R1YWwuc291cmNlLmZvY3VzZWQsCisgICAgZXhwZWN0
ZWQuc291cmNlLmZvY3VzZWQsCisgICAgJ2V2ZW50IGBzb3VyY2VgIHByb3BlcnR5IGBmb2N1c2Vk
YCcKKyAgKTsKKworICBhc3NlcnRfZXF1YWxzKAorICAgIGFjdHVhbC5wb3J0cy5sZW5ndGgsCisg
ICAgZXhwZWN0ZWQucG9ydHMubGVuZ3RoLAorICAgICdldmVudCBgcG9ydHNgIHByb3BlcnR5IGxl
bmd0aCcKKyAgKTsKKworICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBleHBlY3RlZC5wb3J0cy5s
ZW5ndGg7ICsraWR4KSB7CisgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgIGFjdHVhbC5wb3J0c1tp
ZHhdLmNvbnN0cnVjdG9yLm5hbWUsCisgICAgICBleHBlY3RlZC5wb3J0c1tpZHhdLmNvbnN0cnVj
dG9yLm5hbWUsCisgICAgICAnTWVzc2FnZVBvcnQgIycgKyBpZHggKyAnIGNvbnN0cnVjdG9yJwor
ICAgICk7CisgIH0KK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC13b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2Vz
L2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVlNzY0N2Uz
ZTc2NjU4MjM4MDRmMzNmM2IwNDgyMzBkYTFkZTk3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJs
ZS1tZXNzYWdlLWV2ZW50LXdvcmtlci5qcwpAQCAtMCwwICsxLDUgQEAKK2ltcG9ydFNjcmlwdHMo
Jy4vZXh0ZW5kYWJsZS1tZXNzYWdlLWV2ZW50LXV0aWxzLmpzJyk7CisKK3NlbGYuYWRkRXZlbnRM
aXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZXZlbnQuc291cmNlLnBv
c3RNZXNzYWdlKEV4dGVuZGFibGVNZXNzYWdlRXZlbnRVdGlscy5zZXJpYWxpemUoZXZlbnQpKTsK
KyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWxvb3BiYWNrLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Ut
bG9vcGJhY2std29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4M2U5YWEyYTg1ZDQ1MmJkODljNjRhMDg4
ZGVmOGI1OGYxZDYxYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWxvb3BiYWNrLXdvcmtl
ci5qcwpAQCAtMCwwICsxLDE1IEBACitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBm
dW5jdGlvbihldmVudCkgeworICAgIGlmICgncG9ydCcgaW4gZXZlbnQuZGF0YSkgeworICAgICAg
dmFyIHBvcnQgPSBldmVudC5kYXRhLnBvcnQ7CisKKyAgICAgIHZhciBjaGFubmVsID0gbmV3IE1l
c3NhZ2VDaGFubmVsKCk7CisgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgICAgIGlmICgncG9uZycgaW4gZXZlbnQuZGF0YSkKKyAgICAgICAgICBw
b3J0LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEucG9uZyk7CisgICAgICB9OworICAgICAgc2VsZi5y
ZWdpc3RyYXRpb24uYWN0aXZlLnBvc3RNZXNzYWdlKHtwaW5nOiBjaGFubmVsLnBvcnQyfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0p
OworICAgIH0gZWxzZSBpZiAoJ3BpbmcnIGluIGV2ZW50LmRhdGEpIHsKKyAgICAgIGV2ZW50LmRh
dGEucGluZy5wb3N0TWVzc2FnZSh7cG9uZzogJ09LJ30pOworICAgIH0KKyAgfSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2Vz
L3Bvc3RtZXNzYWdlLXBpbmctd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1waW5nLXdvcmtlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYmIxZWNjY2UyZGE2MTQ4NGU3YjIzZDVjZGRhN2Q2ODk4YWNmM2JkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jl
c291cmNlcy9wb3N0bWVzc2FnZS1waW5nLXdvcmtlci5qcwpAQCAtMCwwICsxLDE1IEBACitzZWxm
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIGlmICgn
cG9ydCcgaW4gZXZlbnQuZGF0YSkgeworICAgICAgdmFyIHBvcnQgPSBldmVudC5kYXRhLnBvcnQ7
CisKKyAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgICBjaGFu
bmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGlmICgncG9u
ZycgaW4gZXZlbnQuZGF0YSkKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEu
cG9uZyk7CisgICAgICB9OworCisgICAgICAvLyBTZW5kIGEgcGluZyBtZXNzYWdlIHRvIGFub3Ro
ZXIgc2VydmljZSB3b3JrZXIuCisgICAgICBzZWxmLnJlZ2lzdHJhdGlvbi53YWl0aW5nLnBvc3RN
ZXNzYWdlKHtwaW5nOiBjaGFubmVsLnBvcnQyfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKKyAgICB9CisgIH0pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNl
cy9wb3N0bWVzc2FnZS1wb25nLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtcG9uZy13b3JrZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGEwZDkwYjYxODJmMDJiMTJmMDQ0YmM1NzdiNDYxYzkyZTlkMjEwMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9y
ZXNvdXJjZXMvcG9zdG1lc3NhZ2UtcG9uZy13b3JrZXIuanMKQEAgLTAsMCArMSw0IEBACitzZWxm
LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIGlmICgn
cGluZycgaW4gZXZlbnQuZGF0YSkKKyAgICAgIGV2ZW50LmRhdGEucGluZy5wb3N0TWVzc2FnZSh7
cG9uZzogJ09LJ30pOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvdW5yZWdpc3Rlci1jb250cm9sbGluZy13b3Jr
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNv
dXJjZXMvdW5yZWdpc3Rlci1jb250cm9sbGluZy13b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlk
ZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNl
cy93M2MtaW1wb3J0LmxvZwppbmRleCA5MDRlMDNkZTY1Yzc3ZjNmZmFiMDBkZDI0YjM2ZWYwZTNk
ZmQ0NWE1Li5jMTczNzA1YWMxM2I3MGU5NWYwMzg1ZWM4M2MwNDZjOGJkZmJkMWNhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2Vz
L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKQEAgLTE2LDYgKzE1LDE2IEBAIE5vbmUKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL2Nsb3NlLXdvcmtlci5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXJyb3Itd29ya2VyLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9leHRl
bmRhYmxlLW1lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3Itd29ya2VyLmpzCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3Nh
Z2UtZXZlbnQtbG9vcGJhY2std29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQtcGluZy13
b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVz
b3VyY2VzL2V4dGVuZGFibGUtbWVzc2FnZS1ldmVudC1wb25nLXdvcmtlci5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1t
ZXNzYWdlLWV2ZW50LXV0aWxzLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlL3Jlc291cmNlcy9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQtd29ya2VyLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9wb3N0
bWVzc2FnZS1sb29wYmFjay13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXBpbmctd29ya2VyLmpzCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3Jlc291cmNlcy9wb3N0bWVz
c2FnZS1wb25nLXdvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLWF0dHJpYnV0ZS13b3JrZXIuanMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL3VucmVnaXN0
ZXItY29udHJvbGxpbmctd29ya2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUvcmVzb3VyY2VzL3VucmVnaXN0ZXItd29ya2VyLmpzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvc2VydmljZS13b3Jr
ZXItZXJyb3ItZXZlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS9zZXJ2aWNlLXdvcmtlci1lcnJvci1ldmVudC5odHRwcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk4OGY1NDY2YjllMTZmZmU3MTYyOTdiOWJhNTY5ZTY2OGZmOGY4YTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvc2Vy
dmljZS13b3JrZXItZXJyb3ItZXZlbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6IEVycm9yIGV2ZW50
IGVycm9yIG1lc3NhZ2U8L3RpdGxlPgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMnPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+Citwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgdmFy
IHNjcmlwdCA9ICdyZXNvdXJjZXMvZXJyb3Itd29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL3Njb3BlL3NlcnZpY2Utd29ya2VyLWVycm9yLWV2ZW50JzsKKyAgICB2YXIgZXJy
b3JfbmFtZSA9ICd0ZXN0RXJyb3InCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCisgICAgICAudGhlbihyZWdpc3RyYXRp
b24gPT4geworICAgICAgICAgIHZhciB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
KyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiB7IHJlZ2lzdHJhdGlvbi51
bnJlZ2lzdGVyKCk7IH0pOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlKSB7CisgICAgICAgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2Fn
ZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgnJyk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGUgPT4geworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLmVycm9yLCBlcnJvcl9uYW1lLCAnZXJyb3IgdHlwZScpOworICAg
ICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oCisgICAgICAgICAgICBlLmRhdGEubWVzc2FnZS5p
bmRleE9mKGVycm9yX25hbWUpLCAtMSwgJ2Vycm9yIG1lc3NhZ2UnKTsKKyAgICAgICAgICBhc3Nl
cnRfZ3JlYXRlcl90aGFuKAorICAgICAgICAgICAgZS5kYXRhLmZpbGVuYW1lLmluZGV4T2Yoc2Ny
aXB0KSwgLTEsICdmaWxlbmFtZScpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxp
bmVubywgNSwgJ2Vycm9yIGxpbmUgbnVtYmVyJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LmRhdGEuY29sbm8sIDMsICdlcnJvciBjb2x1bW4gbnVtYmVyJyk7CisgICAgICAgIH0pOworICB9
LCAnRXJyb3IgaGFuZGxlcnMgaW5zaWRlIHNlcnZpY2V3b3JrZXIgc2hvdWxkIHNlZSB0aGUgYXR0
cmlidXRlcyBvZiAnICsKKyAgICAgJ0Vycm9yRXZlbnQnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3czYy1pbXBv
cnQubG9nCmluZGV4IGI5OTE4OGZjNjExYmEyYTBkYTAzODViMDQyZmFkNzdjMzliMjc2ZjguLjM5
Y2RjNDMxZWVlYzM3NmE2YzhkMjM5YjE2ZWI5ZGI3Y2YxNjQyNjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS93M2MtaW1wb3J0LmxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvdzNjLWltcG9ydC5s
b2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10
ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CiAJ
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKIAogVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKQEAg
LTE2LDYgKzE1LDEwIEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUvY2xvc2UuaHR0cHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9leHRlbmRhYmxl
LW1lc3NhZ2UtZXZlbnQtY29uc3RydWN0b3IuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9leHRlbmRhYmxlLW1lc3NhZ2UtZXZlbnQuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9wb3N0bWVz
c2FnZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlL3JlZ2lzdHJhdGlvbi1hdHRyaWJ1dGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS9zZXJ2aWNlLXdvcmtlci1lcnJvci1ldmVudC5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlL3VucmVn
aXN0ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS91cGRhdGUuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0
aXZhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1ZmRmZjgxM2VkMjZlZDZjZTdmYmZkN2ZhODYxODZhNTQwNDg0ZjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSwxNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPnNlcnZpY2Ugd29ya2VyOiBhY3RpdmF0aW9uPC90aXRsZT4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLy8gUmVn
aXN0ZXJzLCB3YWl0cyBmb3IgYWN0aXZhdGlvbiwgdGhlbiB1bnJlZ2lzdGVycyBvbiBhIGR1bW15
IHNjb3BlLgorLy8KKy8vIFRoaXMgaGVscGVyIGNhbiBiZSB1c2VkIGluIHRlc3RzIHRoYXQgYXNz
ZXJ0IHRoYXQgYWN0aXZhdGlvbiBkb2Vzbid0IGhhcHBlbi4KKy8vIEl0IHdvdWxkIG5vdCBiZSBz
dWZmaWNpZW50IHRvIGNoZWNrIHRoZSAud2FpdGluZy8uYWN0aXZlIHByb3BlcnRpZXMgb25jZSwK
Ky8vIHNpbmNlIGFjdGl2YXRpb24gY291bGQgYmUgc2NoZWR1bGVkIGFuZCBqdXN0IGhhc24ndCBo
YXBwZW5lZCB5ZXQuIFNpbmNlIHRoaXMKKy8vIGhlbHBlciBzaG93cyB0aGF0IGFjdGl2YXRpb24g
b2YgYW5vdGhlciByZWdpc3RyYXRpb24gY29tcGxldGVkLCB3ZSBjYW4gYmUKKy8vIHN1cmUgdGhh
dCBhY3RpdmF0aW9uIHJlYWxseSB3aWxsIG5vdCBoYXBwZW4uCitmdW5jdGlvbiB3YWl0X2Zvcl9h
Y3RpdmF0aW9uX29uX2R1bW15X3Njb3BlKHQpIHsKKyAgdmFyIGR1bW15X3Njb3BlID0gJ3Jlc291
cmNlcy90aGVyZS9pcy9uby90aGVyZS90aGVyZSc7CisgIHZhciByZWdpc3RyYXRpb247CisgIHJl
dHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigncmVzb3VyY2VzL2VtcHR5LXdv
cmtlci5qcycsCisgICAgICB7IHNjb3BlOiBkdW1teV9zY29wZSB9KQorICAgIC50aGVuKHIgPT4g
eworICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3Rh
dGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgIH0pCisg
ICAgLnRoZW4oKCkgPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7Cit9CisvLyBSZXR1cm5z
IHtyZWdpc3RyYXRpb24sIGlmcmFtZX0sIHdoZXJlIHxyZWdpc3RyYXRpb258IGhhcyBhbiBhY3Rp
dmUgYW5kCisvLyB3YWl0aW5nIHdvcmtlci4gVGhlIGFjdGl2ZSB3b3JrZXIgY29udHJvbHMgfGlm
cmFtZXwgYW5kIGhhcyBhbiBpbmZsaWdodAorLy8gbWVzc2FnZSBldmVudCB0aGF0IGNhbiBiZSBm
aW5pc2hlZCBieSBjYWxsaW5nCisvLyB8cmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZSgn
Z28nKXwuCitmdW5jdGlvbiBzZXR1cF9hY3RpdmF0aW9uX3Rlc3QodCwgc2NvcGUsIHdvcmtlcl91
cmwpIHsKKyAgdmFyIHJlZ2lzdHJhdGlvbjsKKyAgdmFyIGlmcmFtZTsKKyAgcmV0dXJuIG5hdmln
YXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbihzY29wZSkKKyAgICAudGhlbihyID0+
IHsKKyAgICAgICAgaWYgKHIpCisgICAgICAgICAgcmV0dXJuIHIudW5yZWdpc3RlcigpOworICAg
ICAgfSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICAgIC8vIENyZWF0ZSBhbiBpbi1zY29wZSBp
ZnJhbWUuIERvIHRoaXMgcHJpb3IgdG8gcmVnaXN0cmF0aW9uIHRvIGF2b2lkCisgICAgICAgIC8v
IHJhY2luZyBiZXR3ZWVuIGFuIHVwZGF0ZSB0cmlnZ2VyZWQgYnkgbmF2aWdhdGlvbiBhbmQgdGhl
IHVwZGF0ZSgpCisgICAgICAgIC8vIGNhbGwgYmVsb3cuCisgICAgICAgIHJldHVybiB3aXRoX2lm
cmFtZShzY29wZSk7CisgICAgICB9KQorICAgIC50aGVuKGYgPT4geworICAgICAgICBpZnJhbWUg
PSBmOworICAgICAgICAvLyBDcmVhdGUgYW4gYWN0aXZlIHdvcmtlci4KKyAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHsgc2NvcGU6IHNj
b3BlIH0pOworICAgICAgfSkKKyAgICAudGhlbihyID0+IHsKKyAgICAgICAgcmVnaXN0cmF0aW9u
ID0gcjsKKyAgICAgICAgYWRkX3Jlc3VsdF9jYWxsYmFjaygoKSA9PiByZWdpc3RyYXRpb24udW5y
ZWdpc3RlcigpKTsKKyAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGlu
ZywgJ2FjdGl2YXRlZCcpOworICAgICAgfSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICAgIC8v
IENoZWNrIHRoYXQgdGhlIGZyYW1lIHdhcyBjbGFpbWVkLgorICAgICAgICBhc3NlcnRfbm90X2Vx
dWFscygKKyAgICAgICAgICAgIGlmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmNvbnRyb2xsZXIsIG51bGwpOworICAgICAgICAvLyBDcmVhdGUgYW4gaW4tZmxpZ2h0
IHJlcXVlc3QuCisgICAgICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUucG9zdE1lc3NhZ2UoJ3dhaXQn
KTsKKyAgICAgICAgLy8gTm93IHRoZXJlIGlzIGJvdGggYSBjb250cm9sbGVlIGFuZCBhbiBpbi1m
bGlnaHQgcmVxdWVzdC4KKyAgICAgICAgLy8gSW5pdGlhdGUgYW4gdXBkYXRlLgorICAgICAgICBy
ZXR1cm4gcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOworICAgICAgfSkKKyAgICAudGhlbigoKSA9PiB7
CisgICAgICAgIC8vIFdhaXQgZm9yIGEgd2FpdGluZyB3b3JrZXIuCisgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOwor
ICAgICAgfSkKKyAgICAudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiB3YWl0X2Zvcl9hY3Rp
dmF0aW9uX29uX2R1bW15X3Njb3BlKHQpOworICAgICAgfSkKKyAgICAudGhlbigoKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsKTsKKyAg
ICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCk7CisgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe3JlZ2lzdHJhdGlvbjogcmVnaXN0cmF0aW9uLCBp
ZnJhbWU6IGlmcmFtZX0pOworICAgICAgfSk7Cit9Citwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
dmFyIHNjb3BlID0gJ3Jlc291cmNlcy9uby1jb250cm9sbGVlJzsKKyAgICB2YXIgd29ya2VyX3Vy
bCA9ICdyZXNvdXJjZXMvbWludC1uZXctd29ya2VyLnB5JzsKKyAgICB2YXIgcmVnaXN0cmF0aW9u
OworICAgIHZhciBpZnJhbWU7CisgICAgdmFyIG5ld193b3JrZXI7CisgICAgcmV0dXJuIHNldHVw
X2FjdGl2YXRpb25fdGVzdCh0LCBzY29wZSwgd29ya2VyX3VybCkKKyAgICAgIC50aGVuKHJlc3Vs
dCA9PiB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcmVzdWx0LnJlZ2lzdHJhdGlvbjsKKyAg
ICAgICAgICBpZnJhbWUgPSByZXN1bHQuaWZyYW1lOworICAgICAgICAgIC8vIEZpbmlzaCB0aGUg
aW4tZmxpZ2h0IHJlcXVlc3QuCisgICAgICAgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVz
c2FnZSgnZ28nKTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3JfYWN0aXZhdGlvbl9vbl9kdW1t
eV9zY29wZSh0KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAv
LyBUaGUgbmV3IHdvcmtlciBpcyBzdGlsbCB3YWl0aW5nLiBSZW1vdmUgdGhlIGZyYW1lIGFuZCBp
dCBzaG91bGQKKyAgICAgICAgICAvLyBhY3RpdmF0ZS4KKyAgICAgICAgICBuZXdfd29ya2VyID0g
cmVnaXN0cmF0aW9uLndhaXRpbmc7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfd29ya2Vy
LnN0YXRlLCAnaW5zdGFsbGVkJyk7CisgICAgICAgICAgdmFyIHJlYWNoZWRfYWN0aXZlID0gd2Fp
dF9mb3Jfc3RhdGUodCwgbmV3X3dvcmtlciwgJ2FjdGl2YXRpbmcnKTsKKyAgICAgICAgICBpZnJh
bWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHJlYWNoZWRfYWN0aXZlOworICAgICAgICB9
KQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3dvcmtl
ciwgcmVnaXN0cmF0aW9uLmFjdGl2ZSk7CisgICAgICAgIH0pOworICB9LCAnbG9zcyBvZiBjb250
cm9sbGVlcyB0cmlnZ2VycyBhY3RpdmF0aW9uJyk7Citwcm9taXNlX3Rlc3QodCA9PiB7CisgICAg
dmFyIHNjb3BlID0gJ3Jlc291cmNlcy9uby1yZXF1ZXN0JzsKKyAgICB2YXIgd29ya2VyX3VybCA9
ICdyZXNvdXJjZXMvbWludC1uZXctd29ya2VyLnB5JzsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOwor
ICAgIHZhciBpZnJhbWU7CisgICAgdmFyIG5ld193b3JrZXI7CisgICAgcmV0dXJuIHNldHVwX2Fj
dGl2YXRpb25fdGVzdCh0LCBzY29wZSwgd29ya2VyX3VybCkKKyAgICAgIC50aGVuKHJlc3VsdCA9
PiB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcmVzdWx0LnJlZ2lzdHJhdGlvbjsKKyAgICAg
ICAgICBpZnJhbWUgPSByZXN1bHQuaWZyYW1lOworICAgICAgICAgIC8vIFJlbW92ZSB0aGUgaWZy
YW1lLgorICAgICAgICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDApKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAvLyBGaW5pc2ggdGhlIHJlcXVlc3QuCisgICAg
ICAgICAgbmV3X3dvcmtlciA9IHJlZ2lzdHJhdGlvbi53YWl0aW5nOworICAgICAgICAgIHZhciBy
ZWFjaGVkX2FjdGl2ZSA9IHdhaXRfZm9yX3N0YXRlKHQsIG5ld193b3JrZXIsICdhY3RpdmF0aW5n
Jyk7CisgICAgICAgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZSgnZ28nKTsKKyAg
ICAgICAgICByZXR1cm4gcmVhY2hlZF9hY3RpdmU7CisgICAgICAgIH0pCisgICAgICAudGhlbigo
KSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLCBuZXdf
d29ya2VyKTsKKyAgICAgICAgfSk7CisgIH0sICdmaW5pc2hpbmcgYSByZXF1ZXN0IHRyaWdnZXJz
IGFjdGl2YXRpb24nKTsKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL3NraXAtd2FpdGluZyc7CisgICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL21p
bnQtbmV3LXdvcmtlci5weT9za2lwLXdhaXRpbmcnOworICAgIHZhciByZWdpc3RyYXRpb247Cisg
ICAgdmFyIG5ld193b3JrZXI7CisgICAgcmV0dXJuIHNldHVwX2FjdGl2YXRpb25fdGVzdCh0LCBz
Y29wZSwgd29ya2VyX3VybCkKKyAgICAgIC50aGVuKHJlc3VsdCA9PiB7CisgICAgICAgICAgcmVn
aXN0cmF0aW9uID0gcmVzdWx0LnJlZ2lzdHJhdGlvbjsKKyAgICAgICAgICAvLyBGaW5pc2ggdGhl
IHJlcXVlc3QuIFRoZSBpZnJhbWUgZG9lcyBub3QgbmVlZCB0byBiZSByZW1vdmVkIGJlY2F1c2UK
KyAgICAgICAgICAvLyBza2lwV2FpdGluZygpIHdhcyBjYWxsZWQuCisgICAgICAgICAgbmV3X3dv
cmtlciA9IHJlZ2lzdHJhdGlvbi53YWl0aW5nOworICAgICAgICAgIHZhciByZWFjaGVkX2FjdGl2
ZSA9IHdhaXRfZm9yX3N0YXRlKHQsIG5ld193b3JrZXIsICdhY3RpdmF0aW5nJyk7CisgICAgICAg
ICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVzc2FnZSgnZ28nKTsKKyAgICAgICAgICByZXR1
cm4gcmVhY2hlZF9hY3RpdmU7CisgICAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLCBuZXdfd29ya2VyKTsKKyAg
ICAgICAgfSk7CisgIH0sICdza2lwV2FpdGluZyBieXBhc3NlcyBubyBjb250cm9sbGVlIHJlcXVp
cmVtZW50Jyk7CisKKy8vIFRoaXMgdGVzdCBpcyBub3QgcmVhbGx5IGFib3V0IGFjdGl2YXRpb24s
IGJ1dCBvdGhlcndpc2UgaXMgdmVyeQorLy8gc2ltaWxhciB0byB0aGUgb3RoZXIgdGVzdHMgaGVy
ZS4KK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3VucmVn
aXN0ZXInOworICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9taW50LW5ldy13b3JrZXIu
cHknOworICAgIHZhciByZWdpc3RyYXRpb247CisgICAgdmFyIGlmcmFtZTsKKyAgICB2YXIgbmV3
X3dvcmtlcjsKKyAgICByZXR1cm4gc2V0dXBfYWN0aXZhdGlvbl90ZXN0KHQsIHNjb3BlLCB3b3Jr
ZXJfdXJsKQorICAgICAgLnRoZW4ocmVzdWx0ID0+IHsKKyAgICAgICAgICByZWdpc3RyYXRpb24g
PSByZXN1bHQucmVnaXN0cmF0aW9uOworICAgICAgICAgIGlmcmFtZSA9IHJlc3VsdC5pZnJhbWU7
CisgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBpZnJhbWUuCisgICAgICAgICAgaWZyYW1lLnJlbW92
ZSgpOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgIC8vIFRoZSB1bnJlZ2lzdGVyIG9w
ZXJhdGlvbiBzaG91bGQgd2FpdCBmb3IgdGhlIGFjdGl2ZSB3b3JrZXIgdG8KKyAgICAgICAgICAv
LyBmaW5pc2ggcHJvY2Vzc2luZyBpdHMgZXZlbnRzIGJlZm9yZSBjbGVhcmluZyB0aGUgcmVnaXN0
cmF0aW9uLgorICAgICAgICAgIG5ld193b3JrZXIgPSByZWdpc3RyYXRpb24ud2FpdGluZzsKKyAg
ICAgICAgICB2YXIgcmVhY2hlZF9yZWR1bmRhbnQgPSB3YWl0X2Zvcl9zdGF0ZSh0LCBuZXdfd29y
a2VyLCAncmVkdW5kYW50Jyk7CisgICAgICAgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZS5wb3N0TWVz
c2FnZSgnZ28nKTsKKyAgICAgICAgICByZXR1cm4gcmVhY2hlZF9yZWR1bmRhbnQ7CisgICAgICAg
IH0pCisgICAgICAudGhlbigoKSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgbnVsbCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24ud2FpdGluZywgbnVsbCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRp
b24uYWN0aXZlLCBudWxsKTsKKyAgICAgICAgfSk7CisgIH0sICdmaW5pc2hpbmcgYSByZXF1ZXN0
IHRyaWdnZXJzIHVucmVnaXN0ZXInKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xhaW0tYWZmZWN0LW90aGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvY2xhaW0tYWZmZWN0LW90aGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUyNTU1YWMyNzFiNWJhZDI3OWFiMzczNTJjOWQ5OTM3Yzc4MDkwOWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFpbS1hZmZlY3Qtb3RoZXItcmVn
aXN0cmF0aW9uLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMzYgQEAKKzwhZG9jdHlwZSBodG1sPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogY2xhaW0oKSBzaG91
bGQgYWZmZWN0IG90aGVyIHJlZ2lzdHJhdGlvbjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgdmFyIGZyYW1lOworCisgIHZhciBpbml0X3Njb3BlID0gJ3Jlc291cmNl
cy9ibGFuay5odG1sP2FmZmVjdC1vdGhlcic7CisgIHZhciBpbml0X3dvcmtlcl91cmwgPSAncmVz
b3VyY2VzL2VtcHR5LmpzJzsKKyAgdmFyIGluaXRfcmVnaXN0cmF0aW9uOworICB2YXIgaW5pdF93
b3JrZXJzID0gW3VuZGVmaW5lZCwgdW5kZWZpbmVkXTsKKworICB2YXIgY2xhaW1fc2NvcGUgPSAn
cmVzb3VyY2VzL2JsYW5rLmh0bWw/YWZmZWN0LW90aGVyLXJlZ2lzdHJhdGlvbic7CisgIHZhciBj
bGFpbV93b3JrZXJfdXJsID0gJ3Jlc291cmNlcy9jbGFpbS13b3JrZXIuanMnOworICB2YXIgY2xh
aW1fcmVnaXN0cmF0aW9uOworICB2YXIgY2xhaW1fd29ya2VyOworCisgIHJldHVybiBQcm9taXNl
LnJlc29sdmUoKQorICAgIC8vIFJlZ2lzdGVyIHRoZSBmaXJzdCBzZXJ2aWNlIHdvcmtlciB0byBp
bml0X3Njb3BlLgorICAgIC50aGVuKCgpID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKGluaXRfd29ya2VyX3VybCArICc/djEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHtzY29wZTogaW5pdF9zY29wZX0pKQorICAgIC50aGVuKHIg
PT4geworICAgICAgaW5pdF9yZWdpc3RyYXRpb24gPSByOworICAgICAgaW5pdF93b3JrZXJzWzBd
ID0gci5pbnN0YWxsaW5nOworICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCisgICAgICAg
IC50aGVuKCgpID0+IHdhaXRfZm9yX3N0YXRlKHQsIGluaXRfd29ya2Vyc1swXSwgJ2FjdGl2YXRl
ZCcpKQorICAgICAgICAudGhlbigoKSA9PiBhc3NlcnRfYXJyYXlfZXF1YWxzKFtpbml0X3JlZ2lz
dHJhdGlvbi5hY3RpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluaXRfcmVnaXN0cmF0aW9uLndhaXRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluaXRfcmVnaXN0cmF0aW9uLmluc3RhbGxpbmddLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbml0X3dvcmtlcnNbMF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG51bGxdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdXcm9uZyB3b3JrZXJzLicpKTsKKyAgICB9KQorCisgICAgLy8gQ3JlYXRl
IGFuIGlmcmFtZSBhcyB0aGUgY2xpZW50IG9mIHRoZSBmaXJzdCBzZXJ2aWNlIHdvcmtlciBvZiBp
bml0X3Njb3BlLgorICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKGNsYWltX3Njb3BlKSkKKyAg
ICAudGhlbihmID0+IGZyYW1lID0gZikKKworICAgIC8vIENoZWNrIHRoZSBjb250cm9sbGVyLgor
ICAgIC50aGVuKCgpID0+IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9uKAorICAgICAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKGluaXRf
c2NvcGUpKSkKKyAgICAudGhlbihyID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRv
dy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByLmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5jb250
cm9sbGVyIHNob3VsZCBiZWxvbmcgdG8gaW5pdF9zY29wZS4nKSkKKworICAgIC8vIFJlZ2lzdGVy
IHRoZSBzZWNvbmQgc2VydmljZSB3b3JrZXIgdG8gaW5pdF9zY29wZS4KKyAgICAudGhlbigoKSA9
PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcihpbml0X3dvcmtlcl91cmwgKyAnP3Yy
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2Nv
cGU6IGluaXRfc2NvcGV9KSkKKyAgICAudGhlbihyID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMo
ciwgaW5pdF9yZWdpc3RyYXRpb24sICdTaG91bGQgYmUgdGhlIHNhbWUgcmVnaXN0cmF0aW9uJyk7
CisgICAgICBpbml0X3dvcmtlcnNbMV0gPSByLmluc3RhbGxpbmc7CisgICAgICByZXR1cm4gUHJv
bWlzZS5yZXNvbHZlKCkKKyAgICAgICAgLnRoZW4oKCkgPT4gd2FpdF9mb3Jfc3RhdGUodCwgaW5p
dF93b3JrZXJzWzFdLCAnaW5zdGFsbGVkJykpCisgICAgICAgIC50aGVuKCgpID0+IGFzc2VydF9h
cnJheV9lcXVhbHMoW2luaXRfcmVnaXN0cmF0aW9uLmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5pdF9yZWdpc3RyYXRpb24ud2FpdGluZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdF9yZWdpc3RyYXRpb24uaW5z
dGFsbGluZ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luaXRf
d29ya2Vyc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5p
dF93b3JrZXJzWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
dWxsXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV3Jvbmcgd29y
a2Vycy4nKSk7CisgICAgfSkKKworICAgIC8vIFJlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIgdG8g
Y2xhaW1fc2NvcGUuCisgICAgLnRoZW4oKCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoY2xhaW1fd29ya2VyX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7c2NvcGU6IGNsYWltX3Njb3BlfSkpCisgICAgLnRoZW4ociA9PiB7
CisgICAgICBjbGFpbV9yZWdpc3RyYXRpb24gPSByOworICAgICAgY2xhaW1fd29ya2VyID0gci5p
bnN0YWxsaW5nOworICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIGNsYWltX3dvcmtlciwg
J2FjdGl2YXRlZCcpCisgICAgfSkKKworICAgIC8vIExldCBjbGFpbV93b3JrZXIgY2xhaW0gdGhl
IGNyZWF0ZWQgaWZyYW1lLgorICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGNoYW5u
ZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3Nh
Z2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LmRhdGEsICdQQVNTJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgY2FsbCB0byBj
bGFpbSgpIHNob3VsZCBmdWxmaWxsLicpOworICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fSk7CisgICAgICB9KTsKKworICAgICAgY2xhaW1fd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBj
aGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgIHJldHVybiBzYXdfbWVzc2Fn
ZTsKKyAgICB9KQorCisgICAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIuCisgICAgLnRoZW4oKCkg
PT4gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3Ry
YXRpb24oCisgICAgICAgICAgICAgICAgICBub3JtYWxpemVVUkwoY2xhaW1fc2NvcGUpKSkKKyAg
ICAudGhlbihyID0+IGFzc2VydF9lcXVhbHMoZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5jb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
LmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5jb250cm9sbGVyIHNob3Vs
ZCBiZWxvbmcgdG8gY2xhaW1fc2NvcGUuJykpCisKKyAgICAvLyBDaGVjayB0aGUgc3RhdHVzIG9m
IGNyZWF0ZWQgcmVnaXN0cmF0aW9ucyBhbmQgc2VydmljZSB3b3JrZXJzLgorICAgIC50aGVuKCgp
ID0+IHdhaXRfZm9yX3N0YXRlKHQsIGluaXRfd29ya2Vyc1sxXSwgJ2FjdGl2YXRlZCcpKQorICAg
IC50aGVuKCgpID0+IHsKKyAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoW2NsYWltX3JlZ2lzdHJh
dGlvbi5hY3RpdmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFpbV9yZWdpc3RyYXRp
b24ud2FpdGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYWltX3JlZ2lzdHJhdGlv
bi5pbnN0YWxsaW5nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYWltX3dvcmtlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBudWxsXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYWltX3dvcmtlciBzaG91
bGQgYmUgdGhlIG9ubHkgd29ya2VyLicpCisKKyAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoW2lu
aXRfcmVnaXN0cmF0aW9uLmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRf
cmVnaXN0cmF0aW9uLndhaXRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0X3Jl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2luaXRf
d29ya2Vyc1sxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudWxsXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSB3
YWl0aW5nIHN3IHNob3VsZCBiZWNvbWUgdGhlIGFjdGl2ZSB3b3JrZXIuJykKKworICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhbaW5pdF93b3JrZXJzWzBdLnN0YXRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5pdF93b3JrZXJzWzFdLnN0YXRlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xhaW1fd29ya2VyLnN0YXRlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWydy
ZWR1bmRhbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2YXRlZCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZhdGVkJ10sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICdXcm9uZyB3b3JrZXIgc3RhdGVzLicpOworICAgIH0pCisKKyAgICAvLyBDbGVhbnVw
IGFuZCBmaW5pc2ggdGVzdGluZy4KKyAgICAudGhlbigoKSA9PiBmcmFtZS5yZW1vdmUoKSkKKyAg
ICAudGhlbigoKSA9PiBQcm9taXNlLmFsbChbCisgICAgICBpbml0X3JlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCksCisgICAgICBjbGFpbV9yZWdpc3RyYXRpb24udW5yZWdpc3RlcigpCisgICAgXSkp
CisgICAgLnRoZW4oKCkgPT4gdC5kb25lKCkpOworfSwgJ2NsYWltKCkgc2hvdWxkIGFmZmVjdCB0
aGUgb3JpZ2luYWxseSBjb250cm9sbGluZyByZWdpc3RyYXRpb24uJyk7CisKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0tZmV0Y2guaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDUwYzFl
YTkyZWY2MGI4MjE1ZmFkOWNhYjUwNDY0NzI1NmFkNzI4YQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsYWltLWZldGNoLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2OSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8
c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICB2YXIgZnJhbWU7CisgIHZh
ciByZXNvdXJjZSA9ICdzaW1wbGUudHh0JzsKKworICB2YXIgd29ya2VyOworICB2YXIgc2NvcGUg
PSAncmVzb3VyY2VzLyc7CisgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2NsYWltLXdvcmtlci5q
cyc7CisKKyAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCisgICAgLy8gQ3JlYXRlIHRoZSB0ZXN0
IGlmcmFtZS4KKyAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL2JsYW5rLmh0
bWwnKSkKKyAgICAudGhlbihmID0+IGZyYW1lID0gZikKKworICAgIC8vIENoZWNrIHRoZSBjb250
cm9sbGVyIGFuZCB0ZXN0IHdpdGggZmV0Y2guCisgICAgLnRoZW4oKCkgPT4gYXNzZXJ0X2VxdWFs
cyhmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5jb250cm9sbGVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ1Nob3VsZCBoYXZlIG5vIGNvbnRyb2xsZXIuJykpCisgICAgLnRoZW4oKCkgPT4gZnJhbWUu
Y29udGVudFdpbmRvdy5mZXRjaChyZXNvdXJjZSkpCisgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVz
cG9uc2UudGV4dCgpKQorICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4gYXNzZXJ0X2VxdWFscyhy
ZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
YSBzaW1wbGUgdGV4dCBmaWxlXG4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZmV0Y2goKSBzaG91bGQgbm90IGJlIGludGVyY2VwdGVkLicpKQorCisgICAgLy8g
UmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KKyAgICAudGhlbigoKSA9PiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKSkKKyAgICAudGhlbihy
ID0+IHdvcmtlciA9IHIuaW5zdGFsbGluZykKKyAgICAudGhlbigoKSA9PiB3YWl0X2Zvcl9zdGF0
ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKSkKKworICAgIC8vIExldCB0aGUgc2VydmljZSB3b3Jr
ZXIgY2xhaW0gdGhlIGlmcmFtZS4KKyAgICAudGhlbigoKSA9PiB7CisgICAgICB2YXIgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgdmFyIHNhd19tZXNzYWdlID0gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2Fn
ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
ZGF0YSwgJ1BBU1MnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1dvcmtlciBjYWxsIHRvIGNs
YWltKCkgc2hvdWxkIGZ1bGZpbGwuJyk7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
KTsKKyAgICAgIH0pOworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBv
cnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsKKyAgICB9
KQorCisgICAgLy8gQ2hlY2sgdGhlIGNvbnRyb2xsZXIgYW5kIHRlc3Qgd2l0aCBmZXRjaC4KKyAg
ICAudGhlbigoKSA9PiBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmdldFJlZ2lzdHJhdGlvbihzY29wZSkpCisgICAgLnRoZW4ociA9PiBhc3NlcnRfZXF1YWxzKGZy
YW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgci5hY3RpdmUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdUZXN0IGlmcmFtZSBzaG91bGQgYmUgY2xhaW1lZC4nKSkKKyAgICAudGhlbigo
KSA9PiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKHJlc291cmNlKSkKKyAgICAudGhlbihyZXNw
b25zZSA9PiByZXNwb25zZS50ZXh0KCkpCisgICAgLnRoZW4ocmVzcG9uc2VfdGV4dCA9PiBhc3Nl
cnRfZXF1YWxzKHJlc3BvbnNlX3RleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdJbnRlcmNlcHRlZCEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZmV0Y2goKSBzaG91bGQgYmUgaW50ZXJjZXB0ZWQuJykpCisKKyAgICAvLyBD
bGVhbnVwIHRoaXMgdGVzdGNhc2UuCisgICAgLnRoZW4oKCkgPT4gZnJhbWUucmVtb3ZlKCkpCisg
ICAgLnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSkpOworfSwgJ2ZldGNoKCkgc2hvdWxkIGJlIGludGVyY2VwdGVkIGFmdGVyIHRoZSBjbGllbnQg
aXMgY2xhaW1lZC4nKQorCis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLW5vdC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsYWltLW5vdC11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAppbmRl
eCBlMThlMDYxY2QzY2FhN2Y3MzY1YTAxZWIwYmVmOGFkNDllODAwNGJlLi4xMTM4Yjc0MTljZmFh
NzhkOTlmMTE0MTk2ZmI2ODcwYWZkZjhiZDY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9jbGFpbS1ub3QtdXNpbmctcmVnaXN0cmF0aW9uLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xhaW0tbm90LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xLDcg
KzEsNiBAQAogPCFET0NUWVBFIGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IGNsYWltIGNs
aWVudCBub3QgdXNpbmcgcmVnaXN0cmF0aW9uPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVz
dGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGFpbS11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2NsYWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCmluZGV4IDY0MGIw
YmUzZTUwZTVkNjVjMzQwYTE0ZTNhYTZlMGFiMzUxOGZhZmUuLjdkNzdkMzg0ODM3ZDNjNDEyNzhi
ZWE2ZjQxNGE2NzE5ZTgwZGM1MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWlt
LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
YWltLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xLDcgKzEsNiBAQAogPCFET0NU
WVBFIGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IGNsYWltIGNsaWVudCB1c2luZyByZWdp
c3RyYXRpb248L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
d2l0aC1yZWRpcmVjdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td2l0aC1y
ZWRpcmVjdC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkODljYjliMDBhMWYwYTM5YzBmN2E5MTAz
ZmFiMmExMGZmMjI1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGFp
bS13aXRoLXJlZGlyZWN0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IENsYWltKCkgd2hlbiB1cGRhdGUgaGFwcGVucyBh
ZnRlciByZWRpcmVjdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMi
Pjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgordmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2lu
Zm8oKTsKK3ZhciBCQVNFX1VSTCA9IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyBiYXNlX3Bh
dGgoKTsKK3ZhciBPVEhFUl9CQVNFX1VSTCA9IGhvc3RfaW5mb1snSFRUUFNfUkVNT1RFX09SSUdJ
TiddICsgYmFzZV9wYXRoKCk7CisKK3ZhciBXT1JLRVJfVVJMID0gT1RIRVJfQkFTRV9VUkwgKyAn
cmVzb3VyY2VzL3VwZGF0ZS1jbGFpbS13b3JrZXIucHknCit2YXIgU0NPUEVfVVJMID0gT1RIRVJf
QkFTRV9VUkwgKyAncmVzb3VyY2VzL3JlZGlyZWN0LnB5JwordmFyIE9USEVSX0lGUkFNRV9VUkwg
PSBPVEhFUl9CQVNFX1VSTCArCisgICAgICAgICAgICAgICAgICAgICAgICdyZXNvdXJjZXMvY2xh
aW0td2l0aC1yZWRpcmVjdC1pZnJhbWUuaHRtbCc7CisKKy8vIERpZmZlcmVudCBvcmlnaW4gZnJv
bSB0aGUgcmVnaXN0cmF0aW9uCit2YXIgUkVESVJFQ1RfVE9fVVJMID0gQkFTRV9VUkwgKworICAg
ICAgICAgICAgICAgICAgICAgICdyZXNvdXJjZXMvY2xhaW0td2l0aC1yZWRpcmVjdC1pZnJhbWUu
aHRtbD9yZWRpcmVjdGVkJzsKKwordmFyIFJFR0lTVEVSX0lGUkFNRV9VUkwgPSBPVEhFUl9JRlJB
TUVfVVJMICsgJz9yZWdpc3Rlcj0nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rl
VVJJQ29tcG9uZW50KFdPUktFUl9VUkwpICsgJyYnICsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3Njb3BlPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEVfVVJMKTsKK3ZhciBSRURJUkVD
VF9JRlJBTUVfVVJMID0gU0NPUEVfVVJMICsgJz9SZWRpcmVjdD0nICsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KFJFRElSRUNUX1RPX1VSTCk7Cit2YXIgVVBE
QVRFX0lGUkFNRV9VUkwgPSBPVEhFUl9JRlJBTUVfVVJMICsgJz91cGRhdGU9JyArCisgICAgICAg
ICAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoU0NPUEVfVVJMKTsKK3ZhciBVTlJF
R0lTVEVSX0lGUkFNRV9VUkwgPSBPVEhFUl9JRlJBTUVfVVJMICsgJz91bnJlZ2lzdGVyPScgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRV9VUkwp
OworCit2YXIgd2FpdGluZ19yZXNvbHZlciA9IHVuZGVmaW5lZDsKKworYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGUgPT4geworICAgIGlmICh3YWl0aW5nX3Jlc29sdmVyICE9PSB1bmRlZmlu
ZWQpIHsKKyAgICAgIHdhaXRpbmdfcmVzb2x2ZXIoZS5kYXRhKTsKKyAgICB9CisgIH0pOworCitm
dW5jdGlvbiBhc3NlcnRfd2l0aF9pZnJhbWUodXJsLCBleHBlY3RlZF9tZXNzYWdlKSB7CisgIHJl
dHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgd2FpdGluZ19yZXNvbHZlciA9
IHJlc29sdmU7CisgICAgICAgIHdpdGhfaWZyYW1lKHVybCk7CisgICAgICB9KQorICAgIC50aGVu
KGRhdGEgPT4gYXNzZXJ0X2VxdWFscyhkYXRhLm1lc3NhZ2UsIGV4cGVjdGVkX21lc3NhZ2UpKTsK
K30KKworLy8gVGhpcyB0ZXN0IGNoZWNrcyBiZWhhdmlvciB3aGVuIGJyb3dzZXIgZ290IGEgcmVk
aXJlY3QgaGVhZGVyIGZyb20gaW4tc2NvcGUKKy8vIHBhZ2UgYW5kIG5hdmlnYXRlZCB0byBvdXQt
b2Ytc2NvcGUgcGFnZSB3aGljaCBoYXMgYSBkaWZmZXJlbnQgb3JpZ2luIGZyb20gYW55CisvLyBy
ZWdpc3RyYXRpb25zLgorcHJvbWlzZV90ZXN0KHQgPT4geworICByZXR1cm4gYXNzZXJ0X3dpdGhf
aWZyYW1lKFJFR0lTVEVSX0lGUkFNRV9VUkwsICdyZWdpc3RlcmVkJykKKyAgICAudGhlbigoKSA9
PiBhc3NlcnRfd2l0aF9pZnJhbWUoUkVESVJFQ1RfSUZSQU1FX1VSTCwgJ3JlZGlyZWN0ZWQnKSkK
KyAgICAudGhlbigoKSA9PiBhc3NlcnRfd2l0aF9pZnJhbWUoVVBEQVRFX0lGUkFNRV9VUkwsICd1
cGRhdGVkJykpCisgICAgLnRoZW4oKCkgPT4gYXNzZXJ0X3dpdGhfaWZyYW1lKFVOUkVHSVNURVJf
SUZSQU1FX1VSTCwgJ3VucmVnaXN0ZXJlZCcpKTsKKyAgfSwgJ0NsYWltIHdvcmtzIGFmdGVyIHJl
ZGlyZWN0aW9uIHRvIGFub3RoZXIgb3JpZ2luJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGllbnQtaWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTNjMTBjOTY5MTkx
OTA0YjQyMTQ3YmI1ODcxZWU3OTdiMDhiMzYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xpZW50LWlkLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IENsaWVudC5pZDwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciB0
ZXN0OwordmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVudC1pZCc7Cit2YXIg
ZnJhbWUxLCBmcmFtZTI7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHRlc3QgPSB0
OworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKAorICAgICAgICB0
LCAncmVzb3VyY2VzL2NsaWVudC1pZC13b3JrZXIuanMnLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSArICcjMScpOyB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1lMSA9IGY7CisgICAg
ICAgICAgLy8gVG8gYmUgc3VyZSBDbGllbnRzLm1hdGNoQWxsKCkgaXRlcmF0ZXMgaW4gdGhlIHNh
bWUgb3JkZXIuCisgICAgICAgICAgZi5mb2N1cygpOworICAgICAgICAgIHJldHVybiB3aXRoX2lm
cmFtZShzY29wZSArICcjMicpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikg
eworICAgICAgICAgIGZyYW1lMiA9IGY7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVz
c2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3Rl
cF9mdW5jKG9uX21lc3NhZ2UpOworICAgICAgICAgIGYuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgICB7cG9y
dDpjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ0NsaWVudC5pZCByZXR1cm5zIHRo
ZSBjbGllbnRcJ3MgSUQuJyk7CisKK2Z1bmN0aW9uIG9uX21lc3NhZ2UoZSkgeworICAvLyBUaGUg
cmVzdWx0IG9mIHR3byBzZXF1ZW50aWFsIGNsaWVudHMubWF0Y2hBbGwoKSBjYWxscyBpbiB0aGUg
U1cuCisgIC8vIDFzdCBtYXRjaEFsbCgpIHJlc3VsdHMgaW4gZS5kYXRhWzBdLCBlLmRhdGFbMV0u
CisgIC8vIDJuZCBtYXRjaEFsbCgpIHJlc3VsdHMgaW4gZS5kYXRhWzJdLCBlLmRhdGFbM10uCisg
IGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgNCk7CisgIC8vIEFsbCBzaG91bGQgYmUgc3Ry
aW5nIHZhbHVlcy4KKyAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgZS5kYXRhWzBdLCAnc3RyaW5nJyk7
CisgIGFzc2VydF9lcXVhbHModHlwZW9mIGUuZGF0YVsxXSwgJ3N0cmluZycpOworICBhc3NlcnRf
ZXF1YWxzKHR5cGVvZiBlLmRhdGFbMl0sICdzdHJpbmcnKTsKKyAgYXNzZXJ0X2VxdWFscyh0eXBl
b2YgZS5kYXRhWzNdLCAnc3RyaW5nJyk7CisgIC8vIERpZmZlcmVudCBjbGllbnRzIHNob3VsZCBo
YXZlIGRpZmZlcmVudCBpZHMuCisgIGFzc2VydF9ub3RfZXF1YWxzKGUuZGF0YVswXSwgZS5kYXRh
WzFdKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoZS5kYXRhWzJdLCBlLmRhdGFbM10pOworICAvLyBT
YW1lIGNsaWVudHMgc2hvdWxkIGhhdmUgYW4gaWRlbnRpY2FsIGlkLgorICBhc3NlcnRfZXF1YWxz
KGUuZGF0YVswXSwgZS5kYXRhWzJdKTsKKyAgYXNzZXJ0X2VxdWFscyhlLmRhdGFbMV0sIGUuZGF0
YVszXSk7CisgIGZyYW1lMS5yZW1vdmUoKTsKKyAgZnJhbWUyLnJlbW92ZSgpOworICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHRlc3QsIHNjb3BlKTsKK30KKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NDkyMzM1YmIyOWY3NTNmOWUzMDlmZmE4YjNkMzA5Nzk0ZTE1MmZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LW5hdmlnYXRlLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSwxNzcgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5TZXJ2aWNlIFdvcmtlcjogV2luZG93Q2xpZW50Lm5hdmlnYXRlPC90aXRsZT4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgIGZ1bmN0aW9uIHdh
aXRfZm9yX21lc3NhZ2UobXNnKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIGdldF9tZXNzYWdlX2RhdGEgPSBmdW5jdGlvbiBn
ZXRfbWVzc2FnZV9kYXRhKGUpIHsKKyAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCBnZXRfbWVzc2FnZV9kYXRhKTsKKyAgICAgICAgcmVzb2x2ZShlLmRhdGEpOwor
ICAgICAgfQorICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBnZXRfbWVz
c2FnZV9kYXRhLCBmYWxzZSk7CisgICAgfSk7CisgIH0KKworICBmdW5jdGlvbiBydW5fdGVzdChj
b250cm9sbGVyLCBjbGllbnRJZCwgdGVzdCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VD
aGFubmVsKCk7CisgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgcmVzb2x2ZShlLmRhdGEpOworICAgICAgfTsKKyAgICAgIHZhciBtZXNzYWdlID0g
eworICAgICAgICBwb3J0OiBjaGFubmVsLnBvcnQyLAorICAgICAgICB0ZXN0OiB0ZXN0LAorICAg
ICAgICBjbGllbnRJZDogY2xpZW50SWQsCisgICAgICB9OworICAgICAgY29udHJvbGxlci5wb3N0
TWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICB9KTsKKyAg
fQorCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlciA9ICJyZXNv
dXJjZXMvY2xpZW50LW5hdmlnYXRlLXdvcmtlci5qcyI7CisgICAgdmFyIHNjb3BlID0gInJlc291
cmNlcy9jbGllbnQtbmF2aWdhdGUtZnJhbWUuaHRtbCI7CisgICAgdmFyIGNvbnRyb2xsZXIsIGZy
YW1lLCBjbGllbnRJZDsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgICAgLnRoZW4ocmVnID0+IHdhaXRfZm9y
X3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAiYWN0aXZhdGVkIikpCisgICAgICAudGhlbihfX18g
PT4gd2l0aF9pZnJhbWUoc2NvcGUpKQorICAgICAgLnRoZW4oZiA9PiB7CisgICAgICAgIGZyYW1l
ID0gZjsKKyAgICAgICAgY29udHJvbGxlciA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcjsKKyAgICAgICAgZmV0Y2hfdGVzdHNfZnJvbV93b3Jr
ZXIoY29udHJvbGxlcik7CisgICAgICAgIHJldHVybiB3YWl0X2Zvcl9tZXNzYWdlKCkKKyAgICAg
IH0pCisgICAgICAudGhlbigoe2lkfSkgPT4gY2xpZW50SWQgPSBpZCkKKyAgICAgIC50aGVuKF9f
XyA9PiBydW5fdGVzdChjb250cm9sbGVyLCBjbGllbnRJZCwgInRlc3RfY2xpZW50X25hdmlnYXRl
X3N1Y2Nlc3MiKSkKKyAgICAgIC50aGVuKCh7cmVzdWx0LCB1cmx9KSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMocmVzdWx0LCAidGVzdF9jbGllbnRfbmF2aWdhdGVfc3VjY2VzcyIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgIHVybCwgbmV3IFVSTCgicmVzb3VyY2VzL2Ns
aWVudC1uYXZpZ2F0ZWQtZnJhbWUuaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0
aW9uKS50b1N0cmluZygpKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICBmcmFt
ZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWYsCisgICAgICAgICAgbmV3IFVSTCgicmVzb3Vy
Y2VzL2NsaWVudC1uYXZpZ2F0ZWQtZnJhbWUuaHRtbCIsCisgICAgICAgICAgICAgICAgICBsb2Nh
dGlvbikudG9TdHJpbmcoKSk7CisgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgfSkKKyAg
ICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKQorICAgICAgLnRoZW4oX19fID0+IHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpKTsKKyAgfSwgIkZyYW1lIGxvY2F0aW9u
IHNob3VsZCB1cGRhdGUgb24gc3VjY2Vzc2Z1bCBuYXZpZ2F0aW9uIik7CisKKyAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgd29ya2VyID0gInJlc291cmNlcy9jbGllbnQtbmF2
aWdhdGUtd29ya2VyLmpzIjsKKyAgICB2YXIgc2NvcGUgPSAicmVzb3VyY2VzL2NsaWVudC1uYXZp
Z2F0ZS1mcmFtZS5odG1sIjsKKyAgICB2YXIgY29udHJvbGxlciwgZnJhbWUsIGNsaWVudElkOwor
CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdv
cmtlciwgc2NvcGUpCisgICAgICAudGhlbihyZWcgPT4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmlu
c3RhbGxpbmcsICJhY3RpdmF0ZWQiKSkKKyAgICAgIC50aGVuKF9fXyA9PiB3aXRoX2lmcmFtZShz
Y29wZSkpCisgICAgICAudGhlbihmID0+IHsKKyAgICAgICAgZnJhbWUgPSBmOworICAgICAgICBj
b250cm9sbGVyID0gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5j
b250cm9sbGVyOworICAgICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihjb250cm9sbGVyKTsK
KyAgICAgICAgcmV0dXJuIHdhaXRfZm9yX21lc3NhZ2UoKQorICAgICAgfSkKKyAgICAgIC50aGVu
KCh7aWR9KSA9PiBjbGllbnRJZCA9IGlkKQorICAgICAgLnRoZW4oX19fID0+IHJ1bl90ZXN0KGNv
bnRyb2xsZXIsIGNsaWVudElkLCAidGVzdF9jbGllbnRfbmF2aWdhdGVfcmVkaXJlY3QiKSkKKyAg
ICAgIC50aGVuKCh7cmVzdWx0LCB1cmx9KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVz
dWx0LCAidGVzdF9jbGllbnRfbmF2aWdhdGVfcmVkaXJlY3QiKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh1cmwsICIiKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiU2VjdXJpdHlFcnJvciIsIGZ1
bmN0aW9uKCkgeyByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5sb2NhdGlvbi5ocmVmIH0pOwor
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVk
X3JlamVjdGlvbih0KSkKKyAgICAgIC50aGVuKF9fXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyKHQsIHNjb3BlKSk7CisgIH0sICJGcmFtZSBsb2NhdGlvbiBzaG91bGQgbm90IGJlIGFjY2Vz
c2libGUgYWZ0ZXIgcmVkaXJlY3QiKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewor
ICAgIHZhciB3b3JrZXIgPSAicmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS13b3JrZXIuanMiOwor
ICAgIHZhciBzY29wZSA9ICJyZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlLWZyYW1lLmh0bWwiOwor
ICAgIHZhciBjb250cm9sbGVyLCBmcmFtZSwgY2xpZW50SWQ7CisKKyAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkKKyAgICAg
IC50aGVuKHJlZyA9PiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgImFjdGl2YXRl
ZCIpKQorICAgICAgLnRoZW4oX19fID0+IHdpdGhfaWZyYW1lKHNjb3BlKSkKKyAgICAgIC50aGVu
KGYgPT4geworICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgIGNvbnRyb2xsZXIgPSBmcmFtZS5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXI7CisgICAgICAg
IGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKGNvbnRyb2xsZXIpOworICAgICAgICByZXR1cm4gd2Fp
dF9mb3JfbWVzc2FnZSgpCisgICAgICB9KQorICAgICAgLnRoZW4oKHtpZH0pID0+IGNsaWVudElk
ID0gaWQpCisgICAgICAudGhlbihfX18gPT4gcnVuX3Rlc3QoY29udHJvbGxlciwgY2xpZW50SWQs
ICJ0ZXN0X2NsaWVudF9uYXZpZ2F0ZV9jcm9zc19vcmlnaW4iKSkKKyAgICAgIC50aGVuKCh7cmVz
dWx0LCB1cmx9KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAidGVzdF9jbGll
bnRfbmF2aWdhdGVfY3Jvc3Nfb3JpZ2luIik7CisgICAgICAgIGFzc2VydF9lcXVhbHModXJsLCAi
Iik7CisgICAgICAgIGFzc2VydF90aHJvd3MoIlNlY3VyaXR5RXJyb3IiLCBmdW5jdGlvbigpIHsg
cmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZiB9KTsKKyAgICAgICAgZnJh
bWUucmVtb3ZlKCk7CisgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24o
dCkpCisgICAgICAudGhlbihfX18gPT4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29w
ZSkpOworICB9LCAiRnJhbWUgbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIGFmdGVy
IGNyb3NzLW9yaWdpbiBuYXZpZ2F0aW9uIik7CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICB2YXIgd29ya2VyID0gInJlc291cmNlcy9jbGllbnQtbmF2aWdhdGUtd29ya2VyLmpz
IjsKKyAgICB2YXIgc2NvcGUgPSAicmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS1mcmFtZS5odG1s
IjsKKyAgICB2YXIgY29udHJvbGxlciwgZnJhbWUsIGNsaWVudElkOworCisgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwgc2NvcGUpCisg
ICAgICAudGhlbihyZWcgPT4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICJhY3Rp
dmF0ZWQiKSkKKyAgICAgIC50aGVuKF9fXyA9PiB3aXRoX2lmcmFtZShzY29wZSkpCisgICAgICAu
dGhlbihmID0+IHsKKyAgICAgICAgZnJhbWUgPSBmOworICAgICAgICBjb250cm9sbGVyID0gZnJh
bWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOworICAg
ICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihjb250cm9sbGVyKTsKKyAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX21lc3NhZ2UoKQorICAgICAgfSkKKyAgICAgIC50aGVuKCh7aWR9KSA9PiBjbGll
bnRJZCA9IGlkKQorICAgICAgLnRoZW4oX19fID0+IHJ1bl90ZXN0KGNvbnRyb2xsZXIsIGNsaWVu
dElkLCAidGVzdF9jbGllbnRfbmF2aWdhdGVfYWJvdXRfYmxhbmsiKSkKKyAgICAgIC50aGVuKCh7
cmVzdWx0LCB1cmx9KSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LCAidGVzdF9j
bGllbnRfbmF2aWdhdGVfYWJvdXRfYmxhbmsiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAg
ICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWYsCisgICAgICAgICAgbmV3
IFVSTCgicmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS1mcmFtZS5odG1sIiwKKyAgICAgICAgICAg
ICAgICAgIGxvY2F0aW9uKS50b1N0cmluZygpKTsKKyAgICAgICAgZnJhbWUuY29udGVudFdpbmRv
dy5kb2N1bWVudC5ib2R5LnN0eWxlID0gImJhY2tncm91bmQtY29sb3I6IGdyZWVuIgorICAgICAg
ICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVj
dGlvbih0KSkKKyAgICAgIC50aGVuKF9fXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQs
IHNjb3BlKSk7CisgIH0sICJGcmFtZSBsb2NhdGlvbiBzaG91bGQgbm90IHVwZGF0ZSBvbiBmYWls
ZWQgYWJvdXQ6YmxhbmsgbmF2aWdhdGlvbiIpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CisgICAgdmFyIHdvcmtlciA9ICJyZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlLXdvcmtlci5q
cyI7CisgICAgdmFyIHNjb3BlID0gInJlc291cmNlcy9jbGllbnQtbmF2aWdhdGUtZnJhbWUuaHRt
bCI7CisgICAgdmFyIGNvbnRyb2xsZXIsIGZyYW1lLCBjbGllbnRJZDsKKworICAgIHJldHVybiBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQor
ICAgICAgLnRoZW4ocmVnID0+IHsKKyAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJl
Zy5pbnN0YWxsaW5nLCAiYWN0aXZhdGVkIik7CisgICAgICB9KQorICAgICAgLnRoZW4oX19fID0+
IHdpdGhfaWZyYW1lKHNjb3BlKSkKKyAgICAgIC50aGVuKGYgPT4geworICAgICAgICBmcmFtZSA9
IGY7CisgICAgICAgIGNvbnRyb2xsZXIgPSBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXI7CisgICAgICAgIGZldGNoX3Rlc3RzX2Zyb21fd29ya2Vy
KGNvbnRyb2xsZXIpOworICAgICAgICByZXR1cm4gd2FpdF9mb3JfbWVzc2FnZSgpCisgICAgICB9
KQorICAgICAgLnRoZW4oKHtpZH0pID0+IGNsaWVudElkID0gaWQpCisgICAgICAudGhlbihfX18g
PT4gcnVuX3Rlc3QoY29udHJvbGxlciwgY2xpZW50SWQsICJ0ZXN0X2NsaWVudF9uYXZpZ2F0ZV9t
aXhlZF9jb250ZW50IikpCisgICAgICAudGhlbigoe3Jlc3VsdCwgdXJsfSkgPT4geworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgInRlc3RfY2xpZW50X25hdmlnYXRlX21peGVkX2NvbnRl
bnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICBmcmFtZS5jb250ZW50V2lu
ZG93LmxvY2F0aW9uLmhyZWYsCisgICAgICAgICAgbmV3IFVSTCgicmVzb3VyY2VzL2NsaWVudC1u
YXZpZ2F0ZS1mcmFtZS5odG1sIiwKKyAgICAgICAgICAgICAgICAgIGxvY2F0aW9uKS50b1N0cmlu
ZygpKTsKKyAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LnN0eWxlID0g
ImJhY2tncm91bmQtY29sb3I6IGdyZWVuIgorICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAg
IH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSkKKyAgICAgIC50aGVuKF9f
XyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIHNjb3BlKSk7CisgIH0sICJGcmFtZSBs
b2NhdGlvbiBzaG91bGQgbm90IHVwZGF0ZSBvbiBmYWlsZWQgbWl4ZWQtY29udGVudCBuYXZpZ2F0
aW9uIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMt
Z2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1n
ZXQtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk3ZTM2ODllZDM0ZjFmMmFi
YWZmZmI2ZTRhNmU0NzQwOGJkMWYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ2xpZW50cy5nZXQgd2l0
aCB3aW5kb3cgYW5kIHdvcmtlciBjbGllbnRzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHNjb3BlID0gJ3Jlc291
cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMnOwordmFyIGZyYW1lX3VybCA9IHNjb3BlICsg
Jy1mcmFtZS5odG1sJzsKK3ZhciBzaGFyZWRfd29ya2VyX3VybCA9IHNjb3BlICsgJy1zaGFyZWQt
d29ya2VyLmpzJzsKK3ZhciB3b3JrZXJfdXJsID0gc2NvcGUgKyAnLXdvcmtlci5qcyc7Cit2YXIg
Y2xpZW50X2lkcyA9IFtdOwordmFyIGZyYW1lOworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAg
ICAgIHQsICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtd29ya2VyLmpzJywgc2NvcGUpCisgICAgICAu
dGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhmdW5jdGlvbigpIHsgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsgfSk7CisgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICByZXR1cm4gd2l0aF9pZnJhbWUoZnJhbWVfdXJsKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgICAgYWRkX2Nv
bXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IGZyYW1lLnJlbW92ZSgpOyB9KTsKKyAgICAg
ICAgICBmcmFtZS5mb2N1cygpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9jbGllbnRJZCgp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2lkKSB7CisgICAgICAg
ICAgY2xpZW50X2lkcy5wdXNoKGNsaWVudF9pZCk7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgdmFyIHcgPSBuZXcgU2hhcmVk
V29ya2VyKHNoYXJlZF93b3JrZXJfdXJsKTsKKyAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YS5jbGllbnRJ
ZCk7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKGNsaWVudF9pZCkgeworICAgICAgICAgIGNsaWVudF9pZHMucHVzaChj
bGllbnRfaWQpOworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CisgICAgICAgICAgdmFyIHcgPSBuZXcgV29ya2VyKHdvcmtlcl91cmwpOworICAgICAgICAgIHcu
cG9zdE1lc3NhZ2Uoe2NtZDonR2V0Q2xpZW50SWQnLCBwb3J0OmNoYW5uZWwucG9ydDJ9LAorICAg
ICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNz
YWdlID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhLmNsaWVu
dElkKTsKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2lkKSB7CisgICAgICAgICAgY2xpZW50X2lkcy5wdXNo
KGNsaWVudF9pZCk7CisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwo
KTsKKyAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCdTdGFydFdvcmtl
cicsICcqJywgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YS5jbGllbnRJ
ZCk7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKGNsaWVudF9pZCkgeworICAgICAgICAgIGNsaWVudF9pZHMucHVzaChj
bGllbnRfaWQpOworICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CisgICAgICAgICAgdmFyIHNhd19tZXNzYWdlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSkgeworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgIHtwb3J0
OiBjaGFubmVsLnBvcnQyLCBjbGllbnRJZHM6IGNsaWVudF9pZHN9LCBbY2hhbm5lbC5wb3J0Ml0p
OworICAgICAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5sZW5ndGgsIGV4
cGVjdGVkLmxlbmd0aCk7CisgICAgICAgICAgLy8gV2UgdXNlIHRoZXNlIGFzc2VydF9ub3RfZXF1
YWxzIGJlY2F1c2UgYXNzZXJ0X2FycmF5X2VxdWFscyBkb2Vzbid0CisgICAgICAgICAgLy8gcHJp
bnQgdGhlIGVycm9yIGRlc2NyaXB0aW9uIHdoZW4gcGFzc2VkIGFuIHVuZGVmaW5lZCB2YWx1ZS4K
KyAgICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhlLmRhdGFbMF0sIHVuZGVmaW5lZCwKKyAgICAg
ICAgICAgICAgJ1dpbmRvdyBjbGllbnQgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQnKTsKKyAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YVswXSwgZXhwZWN0ZWRbMF0sICdXaW5kb3cg
Y2xpZW50Jyk7CisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZS5kYXRhWzFdLCB1bmRlZmlu
ZWQsCisgICAgICAgICAgICAgICdTaGFyZWQgd29ya2VyIGNsaWVudCBzaG91bGQgbm90IGJlIHVu
ZGVmaW5lZCcpOworICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZS5kYXRhWzFdLCBleHBl
Y3RlZFsxXSwgJ1NoYXJlZCB3b3JrZXIgY2xpZW50Jyk7CisgICAgICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMoZS5kYXRhWzJdLCB1bmRlZmluZWQsCisgICAgICAgICAgICAgICdXb3JrZXIoU3RhcnRl
ZCBieSBtYWluIGZyYW1lKSBjbGllbnQgc2hvdWxkIG5vdCBiZSB1bmRlZmluZWQnKTsKKyAgICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YVsyXSwgZXhwZWN0ZWRbMl0sCisgICAgICAg
ICAgICAgICdXb3JrZXIoU3RhcnRlZCBieSBtYWluIGZyYW1lKSBjbGllbnQnKTsKKyAgICAgICAg
ICBhc3NlcnRfbm90X2VxdWFscyhlLmRhdGFbM10sIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAg
J1dvcmtlcihTdGFydGVkIGJ5IHN1YiBmcmFtZSkgY2xpZW50IHNob3VsZCBub3QgYmUgdW5kZWZp
bmVkJyk7CisgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLmRhdGFbM10sIGV4cGVjdGVk
WzNdLAorICAgICAgICAgICAgICAnV29ya2VyKFN0YXJ0ZWQgYnkgc3ViIGZyYW1lKSBjbGllbnQn
KTsKKyAgICAgICAgfSk7CisgIH0sICdUZXN0IENsaWVudHMuZ2V0KCkgd2l0aCB3aW5kb3cgYW5k
IHdvcmtlciBjbGllbnRzJyk7CisKK2Z1bmN0aW9uIHdhaXRfZm9yX2NsaWVudElkKCkgeworICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgZnVuY3Rpb24gZ2V0
X2NsaWVudF9pZChlKSB7CisgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNz
YWdlJywgZ2V0X2NsaWVudF9pZCk7CisgICAgICAgIHJlc29sdmUoZS5kYXRhLmNsaWVudElkKTsK
KyAgICAgIH0KKyAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZ2V0X2Ns
aWVudF9pZCwgZmFsc2UpOworICAgIH0pOworfQorCit2YXIgZXhwZWN0ZWQgPSBbCisgICAgLy8g
dmlzaWJpbGl0eVN0YXRlLCBmb2N1c2VkLCB1cmwsIHR5cGUsIGZyYW1lVHlwZQorICAgIFsndmlz
aWJsZScsIHRydWUsIG5vcm1hbGl6ZVVSTChzY29wZSkgKyAnLWZyYW1lLmh0bWwnLCAnd2luZG93
JywgJ25lc3RlZCddLAorICAgIFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgbm9ybWFsaXplVVJMKHNj
b3BlKSArICctc2hhcmVkLXdvcmtlci5qcycsICdzaGFyZWR3b3JrZXInLCAnbm9uZSddLAorICAg
IFt1bmRlZmluZWQsIHVuZGVmaW5lZCwgbm9ybWFsaXplVVJMKHNjb3BlKSArICctd29ya2VyLmpz
JywgJ3dvcmtlcicsICdub25lJ10sCisgICAgW3VuZGVmaW5lZCwgdW5kZWZpbmVkLCBub3JtYWxp
emVVUkwoc2NvcGUpICsgJy1mcmFtZS13b3JrZXIuanMnLCAnd29ya2VyJywgJ25vbmUnXQorXTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQtY3Jv
c3Mtb3JpZ2luLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1jcm9z
cy1vcmlnaW4uaHR0cHMuaHRtbAppbmRleCAzNDEzYWNiZjlkNWE0OWJlNWZlMWZkMzMwMDI2MGY3
NDBmNGJhZTEyLi4xZTRhY2ZiMjg2YzZiY2YyMzc1ZmM3NjJmOWQ2MGVhMmQ5ZjFjZGM0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4uaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4uaHR0
cHMuaHRtbApAQCAtMiw0MSArMiw2OCBAQAogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBDbGllbnRz
LmdldCBhY3Jvc3Mgb3JpZ2luczwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldC1ob3N0LWlu
Zm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8o
KTsKIAotdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVudHMtZ2V0JzsKLXZh
ciB0ID0gYXN5bmNfdGVzdCgnVGVzdCBDbGllbnRzLmdldCgpIGNyb3NzIG9yaWdpbicpOwordmFy
IHNjb3BlID0gJ3Jlc291cmNlcy9jbGllbnRzLWdldC1mcmFtZS5odG1sJzsKIHZhciBvdGhlcl9v
cmlnaW5faWZyYW1lID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBiYXNlX3Bh
dGgoKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNvdXJjZXMvY2xpZW50cy1nZXQt
b3RoZXItb3JpZ2luLmh0bWwnOwotdmFyIG15T3JpZ2luQ2xpZW50SWQ7Ci10LnN0ZXAoZnVuY3Rp
b24oKSB7Ci0gICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2lu
LWZyYW1lLmh0bWwnOworLy8gVGhlIElEIG9mIGEgY2xpZW50IGZyb20gdGhlIHNhbWUgb3JpZ2lu
IGFzIHVzLgordmFyIG15X29yaWdpbl9jbGllbnRfaWQ7CisvLyBUaGlzIHRlc3QgYXNzZXJ0cyB0
aGUgYmVoYXZpb3Igb2YgdGhlIENsaWVudCBBUEkgaW4gY2FzZXMgd2hlcmUgdGhlIGNsaWVudAor
Ly8gYmVsb25ncyB0byBhIGZvcmVpZ24gb3JpZ2luLiBJdCBkb2VzIHRoaXMgYnkgY3JlYXRpbmcg
YW4gaWZyYW1lIHdpdGggYQorLy8gZm9yZWlnbiBvcmlnaW4gd2hpY2ggY29ubmVjdHMgdG8gYSBz
ZXJ2ZXIgd29ya2VyIGluIHRoZSBjdXJyZW50IG9yaWdpbi4KK3Byb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVy
KAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcycsIHNjb3BlKQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgYWRkX2NvbXBs
ZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0p
OwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKICAgICAgICAgfSkKKyAgICAg
IC8vIENyZWF0ZSBhIHNhbWUtb3JpZ2luIGNsaWVudCBhbmQgdXNlIGl0IHRvIHBvcHVsYXRlIHxt
eV9vcmlnaW5fY2xpZW50X2lkfC4KICAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lMSkgewotICAg
ICAgICAgIG15T3JpZ2luQ2xpZW50SWQgPSBmcmFtZTEuY29udGVudERvY3VtZW50LmJvZHkudGV4
dENvbnRlbnQ7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7
IGZyYW1lMS5yZW1vdmUoKTsgfSk7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0X2NsaWVudF9p
ZChlKSB7CisgICAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdl
JywgZ2V0X2NsaWVudF9pZCk7CisgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhLmNsaWVudElk
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdt
ZXNzYWdlJywgZ2V0X2NsaWVudF9pZCwgZmFsc2UpOworICAgICAgICAgIH0pOworICAgICAgICB9
KQorICAgICAgLy8gQ3JlYXRlIGEgY3Jvc3Mtb3JpZ2luIGNsaWVudC4gV2UnbGwgY29tbXVuaWNh
dGUgd2l0aCB0aGlzIGNsaWVudCB0bworICAgICAgLy8gdGVzdCB0aGUgY3Jvc3Mtb3JpZ2luIHNl
cnZpY2Ugd29ya2VyJ3MgYmVoYXZpb3IuCisgICAgICAudGhlbihmdW5jdGlvbihjbGllbnRfaWQp
IHsKKyAgICAgICAgICBteV9vcmlnaW5fY2xpZW50X2lkID0gY2xpZW50X2lkOwogICAgICAgICAg
IHJldHVybiB3aXRoX2lmcmFtZShvdGhlcl9vcmlnaW5faWZyYW1lKTsKICAgICAgICAgfSkKKyAg
ICAgIC8vIFBvc3QgdGhlICdnZXRDbGllbnRJZCcgbWVzc2FnZSB0byB0aGUgY3Jvc3Mtb3JpZ2lu
IGNsaWVudC4gVGhlIGNsaWVudAorICAgICAgLy8gd2lsbCB0aGVuIGFzayBpdHMgc2VydmljZSB3
b3JrZXIgdG8gbG9vayB1cCB8bXlfb3JpZ2luX2NsaWVudF9pZHwgdmlhCisgICAgICAvLyBDbGll
bnRzI2dldC4gU2luY2UgdGhpcyBjbGllbnQgSUQgaXMgZm9yIGEgZGlmZmVyZW50IG9yaWdpbiwg
d2UgZXhwZWN0CisgICAgICAvLyB0aGUgY2xpZW50IHRvIG5vdCBiZSBmb3VuZC4KICAgICAgIC50
aGVuKGZ1bmN0aW9uKGZyYW1lMikgewotICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgb25fbWVzc2FnZV9vdGhlcl9vcmlnaW4sIGZhbHNlKTsKKyAgICAgICAgICBh
ZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsgZnJhbWUyLnJlbW92ZSgpOyB9KTsK
KwogICAgICAgICAgIGZyYW1lMi5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKAotICAgICAgICAg
ICAgICB7Y2xpZW50SWQ6IG15T3JpZ2luQ2xpZW50SWQsCi0gICAgICAgICAgICAgICBtZXNzYWdl
OiAnZ2V0X2NsaWVudF9pZCd9LAotICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBTX1JFTU9U
RV9PUklHSU4nXSk7Ci0gICAgICAgIH0pCi0gICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlv
bih0KSk7Ci0gIH0pOworICAgICAgICAgICAge2NsaWVudElkOiBteV9vcmlnaW5fY2xpZW50X2lk
LCB0eXBlOiAnZ2V0Q2xpZW50SWQnfSwKKyAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfUkVN
T1RFX09SSUdJTiddCisgICAgICAgICAgKTsKIAotZnVuY3Rpb24gb25fbWVzc2FnZV9vdGhlcl9v
cmlnaW4oZSkgewotICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHQsIHVuZGVmaW5lZCk7Ci0g
IHQuZG9uZSgpOwotfQorICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlKSB7CisgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywg
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgICAgaWYgKGUuZGF0YSAmJiBlLmRhdGEudHlw
ZSA9PT0gJ2NsaWVudElkJykgeworICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YS52
YWx1ZSk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudF9pZCkgewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY2xpZW50X2lkLCB1bmRlZmluZWQsICdpZnJhbWUgY2xp
ZW50IElEJyk7CisgICAgICAgIH0pOworICB9LCAnVGVzdCBDbGllbnRzLmdldCgpIGNyb3NzIG9y
aWdpbicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LWdldC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1nZXQuaHR0cHMuaHRt
bAppbmRleCBhZjM4NTAyZGQ5ZmM3YzUxOWU4NDY2MjljNmNjMmI1OWNkODIwZDRiLi42OGM2ZDdm
N2FjMDJhMzE2ODU2YTQwNWY2NTc5ZWIxOTFlNzM4OTI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Ns
aWVudHMtZ2V0Lmh0dHBzLmh0bWwKQEAgLTIsNjkgKzIsNjcgQEAKIDx0aXRsZT5TZXJ2aWNlIFdv
cmtlcjogQ2xpZW50cy5nZXQ8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZv
KCk7Ci0KIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvY2xpZW50cy1nZXQtZnJhbWUuaHRtbCc7Ci12
YXIgdCA9IGFzeW5jX3Rlc3QoJ1Rlc3QgQ2xpZW50cy5nZXQoKScpOwotdmFyIGNsaWVudElkcyA9
IFtdOwordmFyIGNsaWVudF9pZHMgPSBbXTsKIHZhciBmcmFtZTsKLXQuc3RlcChmdW5jdGlvbigp
IHsKLSAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKAogICAgICAgICB0LCAncmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5q
cycsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAg
ICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCk7IH0pOwogICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsgJyMxJyk7
CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmcmFtZTEpIHsKKyAgICAgICAgICBh
ZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsgZnJhbWUxLnJlbW92ZSgpOyB9KTsK
ICAgICAgICAgICBmcmFtZTEuZm9jdXMoKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3JfY2xp
ZW50SWQoKTsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudElkKSB7Ci0g
ICAgICAgICAgY2xpZW50SWRzLnB1c2goY2xpZW50SWQpOworICAgICAgLnRoZW4oZnVuY3Rpb24o
Y2xpZW50X2lkKSB7CisgICAgICAgICAgY2xpZW50X2lkcy5wdXNoKGNsaWVudF9pZCk7CiAgICAg
ICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsgJyMyJyk7CiAgICAgICAgIH0pCiAgICAg
ICAudGhlbihmdW5jdGlvbihmcmFtZTIpIHsKICAgICAgICAgICBmcmFtZSA9IGZyYW1lMjsKKyAg
ICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsgZnJhbWUyLnJlbW92
ZSgpOyB9KTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3JfY2xpZW50SWQoKTsKICAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudElkKSB7Ci0gICAgICAgICAgY2xpZW50SWRz
LnB1c2goY2xpZW50SWQpOworICAgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2lkKSB7CisgICAg
ICAgICAgY2xpZW50X2lkcy5wdXNoKGNsaWVudF9pZCwgJ2ludmFsaWQtaWQnKTsKICAgICAgICAg
ICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgIGNoYW5uZWwu
cG9ydDEub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMob25fbWVzc2FnZSk7CisgICAgICAgICAgdmFy
IHNhd19tZXNzYWdlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAg
ICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICB9KTsK
ICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNv
bnRyb2xsZXIucG9zdE1lc3NhZ2UoCi0gICAgICAgICAgICAgIHtwb3J0OmNoYW5uZWwucG9ydDIs
IGNsaWVudElkczpjbGllbnRJZHMsCi0gICAgICAgICAgICAgICBtZXNzYWdlOiAnZ2V0X2NsaWVu
dF9pZHMnfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgICAge3BvcnQ6IGNoYW5uZWwu
cG9ydDIsIGNsaWVudElkczogY2xpZW50X2lkc30sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAg
ICAgcmV0dXJuIHNhd19tZXNzYWdlOwogICAgICAgICB9KQotICAgICAgLmNhdGNoKHVucmVhY2hl
ZF9yZWplY3Rpb24odCkpOwotICB9KTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5sZW5ndGgsIDMpOworICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoZS5kYXRhWzBdLCBleHBlY3RlZFswXSk7CisgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlLmRhdGFbMV0sIGV4cGVjdGVkWzFdKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUuZGF0YVsyXSwgZXhwZWN0ZWRbMl0pOworICAgICAgICB9KTsKKyAgfSwgJ1Rlc3QgQ2xp
ZW50cy5nZXQoKScpOwogCiBmdW5jdGlvbiB3YWl0X2Zvcl9jbGllbnRJZCgpIHsKICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgZnVuY3Rpb24g
Z2V0X2NsaWVudF9pZChlKSB7Ci0gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgZ2V0X2NsaWVudF9pZCk7CisgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgZ2V0X2NsaWVudF9pZCk7CiAgICAgICAgIHJlc29sdmUoZS5kYXRhLmNs
aWVudElkKTsKICAgICAgIH0KLSAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgZ2V0X2NsaWVudF9pZCwgZmFsc2UpOworICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBnZXRfY2xpZW50X2lkLCBmYWxzZSk7CiAgICAgfSk7CiB9CiAKIHZhciBleHBl
Y3RlZCA9IFsKLSAgICAvKiB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgZnJhbWVUeXBl
ICovCi0gICAgWyd2aXNpYmxlJywgdHJ1ZSwgbmV3IFVSTChzY29wZSArICcjMScsIGxvY2F0aW9u
KS50b1N0cmluZygpLCAnbmVzdGVkJ10sCi0gICAgWyd2aXNpYmxlJywgZmFsc2UsIG5ldyBVUkwo
c2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ25lc3RlZCddLAorICAgIC8vIHZp
c2liaWxpdHlTdGF0ZSwgZm9jdXNlZCwgdXJsLCB0eXBlLCBmcmFtZVR5cGUKKyAgICBbJ3Zpc2li
bGUnLCB0cnVlLCBub3JtYWxpemVVUkwoc2NvcGUpICsgJyMxJywgJ3dpbmRvdycsICduZXN0ZWQn
XSwKKyAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbm9ybWFsaXplVVJMKHNjb3BlKSArICcjMicsICd3
aW5kb3cnLCAnbmVzdGVkJ10sCiAgICAgdW5kZWZpbmVkCiBdOwotCi1mdW5jdGlvbiBvbl9tZXNz
YWdlKGUpIHsKLSAgYXNzZXJ0X2VxdWFscyhlLmRhdGEubGVuZ3RoLCAzKTsKLSAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhlLmRhdGFbMF0sIGV4cGVjdGVkWzBdKTsKLSAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhlLmRhdGFbMV0sIGV4cGVjdGVkWzFdKTsKLSAgYXNzZXJ0X2VxdWFscyhlLmRhdGFbMl0sIGV4
cGVjdGVkWzJdKTsKLSAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29w
ZSk7Ci19CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMt
bWF0Y2hhbGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGll
bnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy5odHRwcy5odG1sCmluZGV4IDM2NDVlODYzNTRkYTg4
Mjc2MTk0YTVjMGRiYjk3N2E4ZWE0MWJiN2QuLjViYjUwZWMzZGI3ZjZmNzg1NzA4NzhlMjUwNjRh
MzhhMWMzZTMzMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hh
bGwtY2xpZW50LXR5cGVzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50
cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbApAQCAtNywzNyArNyw0MiBAQAogdmFy
IHNjb3BlID0gJ3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcyc7CiB2YXIg
aWZyYW1lX3VybCA9IHNjb3BlICsgJy1pZnJhbWUuaHRtbCc7CiB2YXIgc2hhcmVkX3dvcmtlcl91
cmwgPSBzY29wZSArICctc2hhcmVkLXdvcmtlci5qcyc7Cit2YXIgZGVkaWNhdGVkX3dvcmtlcl91
cmwgPSBzY29wZSArICctZGVkaWNhdGVkLXdvcmtlci5qcyc7CiAKLS8qIHZpc2liaWxpdHlTdGF0
ZSwgZm9jdXNlZCwgdXJsLCBmcmFtZVR5cGUgKi8KLXZhciBleHBlY3RlZF93aXRob3V0X3R5cGUg
PSBbCi0gICAgWyd2aXNpYmxlJywgdHJ1ZSwgbmV3IFVSTChpZnJhbWVfdXJsLCBsb2NhdGlvbiku
aHJlZiwgJ25lc3RlZCddCisvKiB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwg
ZnJhbWVUeXBlICovCit2YXIgZXhwZWN0ZWRfb25seV93aW5kb3cgPSBbCisgICAgWyd2aXNpYmxl
JywgdHJ1ZSwgbmV3IFVSTChpZnJhbWVfdXJsLCBsb2NhdGlvbikuaHJlZiwgJ3dpbmRvdycsICdu
ZXN0ZWQnXQogXTsKLXZhciBleHBlY3RlZF93aXRoX3dpbmRvdyA9IFsKLSAgICBbJ3Zpc2libGUn
LCB0cnVlLCBuZXcgVVJMKGlmcmFtZV91cmwsIGxvY2F0aW9uKS5ocmVmLCAnbmVzdGVkJ10KK3Zh
ciBleHBlY3RlZF9vbmx5X3NoYXJlZF93b3JrZXIgPSBbCisgICAgW3VuZGVmaW5lZCwgdW5kZWZp
bmVkLCBuZXcgVVJMKHNoYXJlZF93b3JrZXJfdXJsLCBsb2NhdGlvbikuaHJlZiwgJ3NoYXJlZHdv
cmtlcicsICdub25lJ10KIF07Ci12YXIgZXhwZWN0ZWRfd2l0aF9zaGFyZWRfd29ya2VyID0gWwot
ICAgIFssLG5ldyBVUkwoc2hhcmVkX3dvcmtlcl91cmwsIGxvY2F0aW9uKS5ocmVmLCAnbm9uZSdd
Cit2YXIgZXhwZWN0ZWRfb25seV9kZWRpY2F0ZWRfd29ya2VyID0gWworICAgIFt1bmRlZmluZWQs
IHVuZGVmaW5lZCwgbmV3IFVSTChkZWRpY2F0ZWRfd29ya2VyX3VybCwgbG9jYXRpb24pLmhyZWYs
ICd3b3JrZXInLCAnbm9uZSddCiBdOwotdmFyIGV4cGVjdGVkX3dpdGhfYWxsID0gWwotICAgIFsn
dmlzaWJsZScsIHRydWUsIG5ldyBVUkwoaWZyYW1lX3VybCwgbG9jYXRpb24pLmhyZWYsICduZXN0
ZWQnXSwKLSAgICBbLCxuZXcgVVJMKHNoYXJlZF93b3JrZXJfdXJsLCBsb2NhdGlvbikuaHJlZiwg
J25vbmUnXQordmFyIGV4cGVjdGVkX2FsbF9jbGllbnRzID0gWworICAgIGV4cGVjdGVkX29ubHlf
d2luZG93WzBdLCBleHBlY3RlZF9vbmx5X3NoYXJlZF93b3JrZXJbMF0sCisgICAgZXhwZWN0ZWRf
b25seV9kZWRpY2F0ZWRfd29ya2VyWzBdCiBdOwogCiBmdW5jdGlvbiB0ZXN0X21hdGNoYWxsKGZy
YW1lLCBleHBlY3RlZCwgcXVlcnlfb3B0aW9ucykgewogICAvLyBNYWtlIHN1cmUgdGhlIGZyYW1l
IGdldHMgZm9jdXMuCiAgIGZyYW1lLmZvY3VzKCk7Ci0gIGV4cGVjdGVkLnNvcnQoZnVuY3Rpb24o
YSwgYikgeyByZXR1cm4gYVsyXSA+IGJbMl0gPyAxIDogLTE7IH0pOwogICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgdmFyIGNoYW5uZWwgPSBuZXcg
TWVzc2FnZUNoYW5uZWwoKTsKLSAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGUpIHsKLSAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3Ro
KTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZS5kYXRhLmxlbmd0aDsgaSsrKQotICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGUuZGF0YVtpXSwgZXhwZWN0ZWRbaV0pOwotICAgICAgcmVz
b2x2ZSgpOwotICAgIH07CisgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
KSB7IHJlc29sdmUoZS5kYXRhKTsgfTsKICAgICBmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIucG9zdE1lc3NhZ2UoCiAgICAgICAgIHtwb3J0OmNo
YW5uZWwucG9ydDIsIG9wdGlvbnM6cXVlcnlfb3B0aW9uc30sCiAgICAgICAgIFtjaGFubmVsLnBv
cnQyXSk7CisgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgIGlmICh0eXBlb2YgZGF0YSA9
PT0gJ3N0cmluZycpIHsKKyAgICAgIHRocm93IG5ldyBFcnJvcihkYXRhKTsKKyAgICB9CisKKyAg
ICBhc3NlcnRfZXF1YWxzKGRhdGEubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICdyZXN1bHQgY291
bnQnKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhkYXRhW2ldLCBleHBlY3RlZFtpXSk7CisgICAgfQogICB9
KTsKIH0KIApAQCAtNTEsMjggKzU2LDYxIEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKGlmcmFtZV91cmwpOyB9
KQogICAgICAgLnRoZW4oZnVuY3Rpb24oZikgewogICAgICAgICAgIGZyYW1lID0gZjsKKyAgICAg
ICAgICByZXR1cm4gdGVzdF9tYXRjaGFsbChmcmFtZSwgZXhwZWN0ZWRfb25seV93aW5kb3csIHt9
KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVy
biB0ZXN0X21hdGNoYWxsKGZyYW1lLCBleHBlY3RlZF9vbmx5X3dpbmRvdywge3R5cGU6J3dpbmRv
dyd9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGZy
YW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRf
cmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGggd2luZG93IGNsaWVu
dCB0eXBlJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIGZyYW1lOwor
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKKyAgICAg
ICAgdCwgJ3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcycsIHNjb3BlKQorICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKGlmcmFt
ZV91cmwpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1lID0g
ZjsKICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CiAgICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNoYXJlZFdvcmtlcihzaGFyZWRfd29ya2Vy
X3VybCk7CiAgICAgICAgICAgICAgIHcucG9ydC5vbm1lc3NhZ2UgPSByZXNvbHZlOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAg
ICByZXR1cm4gdGVzdF9tYXRjaGFsbChmcmFtZSwgZXhwZWN0ZWRfd2l0aG91dF90eXBlLCB7fSk7
CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBXb3JrZXIoZGVkaWNhdGVkX3dvcmtlcl91cmwp
OworICAgICAgICAgICAgICB3Lm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHcu
cG9zdE1lc3NhZ2UoJ1N0YXJ0Jyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB0ZXN0X21hdGNoYWxsKGZyYW1l
LCBleHBlY3RlZF9vbmx5X3dpbmRvdywge30pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVjdGVk
X29ubHlfd2luZG93LCB7dHlwZTond2luZG93J30pOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVj
dGVkX29ubHlfc2hhcmVkX3dvcmtlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
dHlwZTonc2hhcmVkd29ya2VyJ30pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7CisgICAgICAgICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVjdGVkX29ubHlf
ZGVkaWNhdGVkX3dvcmtlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTon
d29ya2VyJ30pOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgcmV0dXJuIHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVjdGVkX3dpdGhfd2luZG93LCB7dHlw
ZTond2luZG93J30pOworICAgICAgICAgIHJldHVybiB0ZXN0X21hdGNoYWxsKGZyYW1lLCBleHBl
Y3RlZF9hbGxfY2xpZW50cywge3R5cGU6J2FsbCd9KTsKICAgICAgICAgfSkKLSAgICAgIC8vLnRo
ZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAvLyAgICByZXR1cm4gdGVzdF9tYXRjaGFsbChmcmFtZSwg
ZXhwZWN0ZWRfd2l0aF9zaGFyZWRfd29ya2VyLAotICAgICAgLy8gICAgICAgICAgICAgICAgICAg
ICAgICAge3R5cGU6J3NoYXJlZHdvcmtlcid9KTsKLSAgICAgIC8vICB9KQotICAgICAgLy8udGhl
bihmdW5jdGlvbigpIHsKLSAgICAgIC8vICAgIHJldHVybiB0ZXN0X21hdGNoYWxsKGZyYW1lLCBl
eHBlY3RlZF93aXRoX2FsbCwge3R5cGU6J2FsbCd9KTsKLSAgICAgIC8vICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwogICAgICAg
ICB9KTsKLSAgfSwgJ1ZlcmlmeSBtYXRjaEFsbCgpIHdpdGggdmFyaW91cyBjbGllbnQgdHlwZXMn
KTsKK30sICdWZXJpZnkgbWF0Y2hBbGwoKSB3aXRoIHt3aW5kb3csIHNoYXJlZHdvcmtlciwgd29y
a2VyfSBjbGllbnQgdHlwZXMnKTsKIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWV4YWN0LWNvbnRyb2xsZXIuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVlNjBjNGE2MDc3ZDc5OWMyNTU3ZTA5NjMyMjI4MWE3MjZkZjlkOGIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWV4
YWN0LWNvbnRyb2xsZXIuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ2xpZW50cy5tYXRjaEFsbCB3aXRoIGV4YWN0IGNv
bnRyb2xsZXI8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9j
bGllbnRzLW1hdGNoQWxsJzsKK2NvbnN0IHQgPSBhc3luY190ZXN0KCdUZXN0IENsaWVudHMubWF0
Y2hBbGwoKSB3aXRoIGV4YWN0IGNvbnRyb2xsZXInKTsKK2xldCBmcmFtZXMgPSBbXTsKKworZnVu
Y3Rpb24gY2hlY2tXb3JrZXJDbGllbnRzKHdvcmtlciwgZXhwZWN0ZWQpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICBsZXQgY2hhbm5lbCA9IG5ldyBN
ZXNzYWdlQ2hhbm5lbCgpOworICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZXZ0ID0+IHsK
KyAgICAgIHRyeSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZXZ0LmRhdGEubGVuZ3RoLCBleHBl
Y3RlZC5sZW5ndGgpOworICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV4cGVjdGVkLmxlbmd0
aDsgKytpKSB7CisgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldnQuZGF0YVtpXSwgZXhw
ZWN0ZWRbaV0pOworICAgICAgICB9CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgcmVqZWN0KGUpOworICAgICAgfQorICAgIH07CisKKyAgICB3b3JrZXIu
cG9zdE1lc3NhZ2Uoe3BvcnQ6Y2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CisgIH0p
OworfQorCitsZXQgZXhwZWN0ZWQgPSBbCisgICAgLy8gdmlzaWJpbGl0eVN0YXRlLCBmb2N1c2Vk
LCB1cmwsIHR5cGUsIGZyYW1lVHlwZQorICAgIFsndmlzaWJsZScsIHRydWUsIG5ldyBVUkwoc2Nv
cGUgKyAnIzEnLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRvdycsICduZXN0ZWQnXSwKKyAg
ICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcjMicsIGxvY2F0aW9uKS50b1N0
cmluZygpLCAnd2luZG93JywgJ25lc3RlZCddCitdOworCit0LnN0ZXAoXyA9PiB7CisgICAgbGV0
IHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMnOworICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCisg
ICAgICAudGhlbihyZWdpc3RyYXRpb24gPT4geworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShzY29wZSArICcjMScpICkKKyAgICAgIC50
aGVuKGZyYW1lMSA9PiB7CisgICAgICAgICAgZnJhbWVzLnB1c2goZnJhbWUxKTsKKyAgICAgICAg
ICBmcmFtZTEuZm9jdXMoKTsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUgKyAn
IzInKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZyYW1lMiA9PiB7CisgICAgICAgICAgZnJh
bWVzLnB1c2goZnJhbWUyKTsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoc2NyaXB0ICsgJz91cGRhdGVkJywgeyBzY29wZTogc2NvcGUgfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihyZWdpc3RyYXRpb24gPT4geworICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpCisg
ICAgICAgICAgICAudGhlbihfID0+IHJlZ2lzdHJhdGlvbik7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihyZWdpc3RyYXRpb24gPT4geworICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICBjaGVja1dvcmtlckNsaWVudHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIFtdKSwK
KyAgICAgICAgICAgIGNoZWNrV29ya2VyQ2xpZW50cyhyZWdpc3RyYXRpb24uYWN0aXZlLCBleHBl
Y3RlZCksCisgICAgICAgICAgXSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihfID0+IHsKKyAg
ICAgICAgICBmcmFtZXMuZm9yRWFjaChmID0+IGYucmVtb3ZlKCkgKTsKKyAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAg
ICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtaW5jbHVkZS11bmNv
bnRyb2xsZWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwt
aW5jbHVkZS11bmNvbnRyb2xsZWQuaHR0cHMuaHRtbAppbmRleCA5Mjg1YWVmOTcwZmMyMzk5YTUy
Y2NiNjQ1ZjFkYWIzY2U4ZDJhN2M2Li41MGJkODE3ZjU2ODg3ZWQyODdhYzE0YzEwOGY4ZjNkN2Ni
NGVlNjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLWlu
Y2x1ZGUtdW5jb250cm9sbGVkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRwcy5odG1sCkBAIC0yNywxNyAr
MjcsMTcgQEAgZnVuY3Rpb24gY3JlYXRlX2lmcmFtZXMoc2NvcGUpIHsKIH0KIAogdmFyIGV4cGVj
dGVkX3dpdGhvdXRfaW5jbHVkZV91bmNvbnRyb2xsZWQgPSBbCi0gICAgLyogdmlzaWJpbGl0eVN0
YXRlLCBmb2N1c2VkLCB1cmwsIGZyYW1lVHlwZSAqLwotICAgIFsndmlzaWJsZScsIGZhbHNlLCBu
ZXcgVVJMKHNjb3BlICsgJyMxJywgbG9jYXRpb24pLnRvU3RyaW5nKCksICduZXN0ZWQnXSwKLSAg
ICBbJ3Zpc2libGUnLCB0cnVlLCBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9jYXRpb24pLnRvU3Ry
aW5nKCksICduZXN0ZWQnXQorICAgIC8vIHZpc2liaWxpdHlTdGF0ZSwgZm9jdXNlZCwgdXJsLCB0
eXBlLCBmcmFtZVR5cGUKKyAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcj
MScsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93JywgJ25lc3RlZCddLAorICAgIFsndmlz
aWJsZScsIHRydWUsIG5ldyBVUkwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwg
J3dpbmRvdycsICduZXN0ZWQnXQogXTsKIAogdmFyIGV4cGVjdGVkX3dpdGhfaW5jbHVkZV91bmNv
bnRyb2xsZWQgPSBbCi0gICAgLyogdmlzaWJpbGl0eVN0YXRlLCBmb2N1c2VkLCB1cmwsIGZyYW1l
VHlwZSAqLwotICAgIFsndmlzaWJsZScsIHRydWUsIGxvY2F0aW9uLmhyZWYsICd0b3AtbGV2ZWwn
XSwKLSAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcjMScsIGxvY2F0aW9u
KS50b1N0cmluZygpLCAnbmVzdGVkJ10sCi0gICAgWyd2aXNpYmxlJywgdHJ1ZSwgbmV3IFVSTChz
Y29wZSArICcjMicsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnbmVzdGVkJ10sCi0gICAgWyd2aXNp
YmxlJywgZmFsc2UsIG5ldyBVUkwoYmFzZV91cmwsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnbmVz
dGVkJ10KKyAgICAvLyB2aXNpYmlsaXR5U3RhdGUsIGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVU
eXBlCisgICAgWyd2aXNpYmxlJywgdHJ1ZSwgbG9jYXRpb24uaHJlZiwgJ3dpbmRvdycsICd0b3At
bGV2ZWwnXSwKKyAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcjMScsIGxv
Y2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93JywgJ25lc3RlZCddLAorICAgIFsndmlzaWJsZScs
IHRydWUsIG5ldyBVUkwoc2NvcGUgKyAnIzInLCBsb2NhdGlvbikudG9TdHJpbmcoKSwgJ3dpbmRv
dycsICduZXN0ZWQnXSwKKyAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChiYXNlX3VybCwg
bG9jYXRpb24pLnRvU3RyaW5nKCksICd3aW5kb3cnLCAnbmVzdGVkJ10KIF07CiAKIGZ1bmN0aW9u
IHRlc3RfbWF0Y2hhbGwoZnJhbWUsIGV4cGVjdGVkLCBxdWVyeV9vcHRpb25zKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9uLWV2YWx1YXRpb24uaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwtb24tZXZhbHVhdGlv
bi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MDVmODViNTY4NDA5NzZlNWJlZGYzZWE3ODBlZmI4
ODMwNzQ3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1h
dGNoYWxsLW9uLWV2YWx1YXRpb24uaHR0cHMuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ2xpZW50cy5tYXRjaEFsbCBvbiBzY3Jp
cHQgZXZhbHVhdGlvbjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
dmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC1vbi1ldmFsdWF0aW9uLXdv
cmtlci5qcyc7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP2NsaWVudHMt
bWF0Y2hBbGwtb24tZXZhbHVhdGlvbic7CisKKyAgICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5k
YXRhLCAnbWF0Y2hlZCcpOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgIH07Cisg
ICAgICB9KTsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdp
c3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9u
KSB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7IHJlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCk7IH0pOworICAgICAgICAgIHJldHVybiBzYXdfbWVzc2FnZTsK
KyAgICAgICAgfSk7CisgIH0sICdUZXN0IENsaWVudHMubWF0Y2hBbGwoKSBvbiBzY3JpcHQgZXZh
bHVhdGlvbicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGll
bnRzLW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRz
LW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxZTk1NmQxZDg0YmY4MmUz
Nzk4Mjc4MTkxNGJiYWE3MmE0MjA2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsaWVudHMtbWF0Y2hhbGwtb3JkZXIuaHR0cHMuaHRtbApAQCAtMCwwICsxLDQyNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IENsaWVudHMubWF0Y2hBbGwg
b3JkZXJpbmc8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKKy8vIFV0aWxpdHkgZnVuY3Rpb24gZm9yIFVSTHMgdGhpcyB0
ZXN0IHdpbGwgb3Blbi4KK2Z1bmN0aW9uIG1ha2VVUkwobmFtZSwgbnVtLCB0eXBlKSB7CisgIGxl
dCB1ID0gbmV3IFVSTCgncmVzb3VyY2VzL2VtcHR5Lmh0bWwnLCBsb2NhdGlvbik7CisgIHUuc2Vh
cmNoUGFyYW1zLnNldCgnbmFtZScsIG5hbWUpOworICBpZiAobnVtICE9PSB1bmRlZmluZWQpIHsK
KyAgICB1LnNlYXJjaFBhcmFtcy5zZXQoJ3EnLCBudW0pOworICB9CisgIGlmICh0eXBlID09PSAn
bmVzdGVkJykgeworICAgIHUuc2VhcmNoUGFyYW1zLnNldCgnbmVzdGVkJywgdHJ1ZSk7CisgIH0K
KyAgcmV0dXJuIHUuaHJlZjsKK30KKworLy8gTm9uLXRlc3QgVVJMcyB0aGF0IHdpbGwgYmUgb3Bl
biBkdXJpbmcgZWFjaCB0ZXN0LiAgVGhlIGhhcm5lc3MgVVJMcworLy8gYXJlIGZyb20gdGhlIFdQ
VCBoYXJuZXNzLiAgVGhlICJleHRyYSIgVVJMIGlzIGEgZmluYWwgd2luZG93IG9wZW5lZAorLy8g
YnkgdGhlIHRlc3QuCitjb25zdCBFWFRSQV9VUkwgPSBtYWtlVVJMKCdleHRyYScpOworY29uc3Qg
VEVTVF9IQVJORVNTX1VSTCA9IGxvY2F0aW9uLmhyZWY7Citjb25zdCBUT1BfSEFSTkVTU19VUkwg
PSBuZXcgVVJMKCcvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwnLCBsb2NhdGlvbikuaHJlZjsKKwor
Ly8gVXRpbGl0eSBmdW5jdGlvbiB0byBvcGVuIGFuIGlmcmFtZSBpbiB0aGUgdGFyZ2V0IHBhcmVu
dCB3aW5kb3cuICBXZQorLy8gY2FuJ3QganVzdCB1c2Ugd2l0aF9pZnJhbWUoKSBiZWNhdXNlIGl0
IGRvZXMgbm90IHN1cHBvcnQgYSBjb25maWd1cmFibGUKKy8vIHBhcmVudCB3aW5kb3cuCitmdW5j
dGlvbiBvcGVuRnJhbWUocGFyZW50V2luZG93LCB1cmwpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNl
KHJlc29sdmUgPT4geworICAgIGxldCBmcmFtZSA9IHBhcmVudFdpbmRvdy5kb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBmcmFtZS5zcmMgPSB1cmw7CisgICAgcGFyZW50V2lu
ZG93LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworCisgICAgZnJhbWUuY29udGVu
dFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZXZ0ID0+IHsKKyAgICAgIHJlc29sdmUo
ZnJhbWUpOworICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKyAgfSk7Cit9CisKKy8vIFV0aWxpdHkg
ZnVuY3Rpb24gdG8gb3BlbiBhIHdpbmRvdyBhbmQgd2FpdCBmb3IgaXQgdG8gbG9hZC4gIFRoZQor
Ly8gd2luZG93IG1heSBvcHRpb25hbGx5IGhhdmUgYSBuZXN0ZWQgaWZyYW1lIGFzIHdlbGwuICBS
ZXR1cm5zCisvLyBhIHJlc3VsdCBsaWtlIGB7IHRvcDogPGZyYW1lIHJlZj4gbmVzdGVkOiA8bmVz
dGVkIGZyYW1lIHJlZiBpZiBwcmVzZW50PiB9YC4KK2Z1bmN0aW9uIG9wZW5GcmFtZUNvbmZpZyhv
cHRzKSB7CisgIGxldCB1cmwgPSBuZXcgVVJMKG9wdHMudXJsLCBsb2NhdGlvbi5ocmVmKTsKKyAg
cmV0dXJuIG9wZW5GcmFtZSh3aW5kb3csIHVybC5ocmVmKS50aGVuKHRvcCA9PiB7CisgICAgaWYg
KCFvcHRzLndpdGhOZXN0ZWQpIHsKKyAgICAgIHJldHVybiB7IHRvcDogdG9wIH07CisgICAgfQor
CisgICAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ25lc3RlZCcsIHRydWUpOworICAgIHJldHVybiBv
cGVuRnJhbWUodG9wLmNvbnRlbnRXaW5kb3csIHVybC5ocmVmKS50aGVuKG5lc3RlZCA9PiB7Cisg
ICAgICByZXR1cm4geyB0b3A6IHRvcCwgbmVzdGVkOiBuZXN0ZWQgfTsKKyAgICB9KTsKKyAgfSk7
Cit9CisKKy8vIFV0aWxpdHkgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGxpc3Qgb2YgY29uZmlndXJh
dGlvbnMgYW5kIG9wZW5zIHRoZQorLy8gY29ycmVzcG9uZGluZyB3aW5kb3dzIGluIHNlcXVlbmNl
LiAgQW4gYXJyYXkgb2YgcmVzdWx0cyBpcyByZXR1cm5lZC4KK2Z1bmN0aW9uIG9wZW5GcmFtZUNv
bmZpZ0xpc3Qob3B0TGlzdCkgeworICBsZXQgcmVzdWx0TGlzdCA9IFtdOworICBmdW5jdGlvbiBv
cGVuTmV4dFdpbmRvdyhvcHRMaXN0LCBuZXh0V2luZG93KSB7CisgICAgaWYgKG5leHRXaW5kb3cg
Pj0gb3B0TGlzdC5sZW5ndGgpIHsKKyAgICAgIHJldHVybiByZXN1bHRMaXN0OworICAgIH0KKyAg
ICByZXR1cm4gb3BlbkZyYW1lQ29uZmlnKG9wdExpc3RbbmV4dFdpbmRvd10pLnRoZW4ocmVzdWx0
ID0+IHsKKyAgICAgIHJlc3VsdExpc3QucHVzaChyZXN1bHQpOworICAgICAgcmV0dXJuIG9wZW5O
ZXh0V2luZG93KG9wdExpc3QsIG5leHRXaW5kb3cgKyAxKTsKKyAgICB9KTsKKyAgfQorICByZXR1
cm4gb3Blbk5leHRXaW5kb3cob3B0TGlzdCwgMCk7Cit9CisKKy8vIFV0aWxpdHkgZnVuY3Rpb24g
dGhhdCBmb2N1c2VzIHRoZSBnaXZlbiBlbnRyeSBpbiB3aW5kb3cgcmVzdWx0IGxpc3QuCitmdW5j
dGlvbiBleGVjdXRlRm9jdXMoZnJhbWVSZXN1bHRMaXN0LCBvcHRzKSB7CisgIHJldHVybiBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBsZXQgdyA9IGZyYW1lUmVzdWx0TGlzdFtvcHRzLmlu
ZGV4XVtvcHRzLnR5cGVdOworICAgIGxldCB0YXJnZXQgPSB3LmNvbnRlbnRXaW5kb3cgPyB3LmNv
bnRlbnRXaW5kb3cgOiB3OworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGV2
dCA9PiB7CisgICAgICByZXNvbHZlKCk7CisgICAgfSwgeyBvbmNlOiB0cnVlIH0pOworICAgIHRh
cmdldC5mb2N1cygpOworICB9KTsKK30KKworLy8gVXRpbGl0eSBmdW5jdGlvbiB0aGF0IHBlcmZv
cm1zIGEgbGlzdCBvZiBmb2N1cyBjb21tYW5kcyBpbiBzZXF1ZW5jZQorLy8gYmFzZWQgb24gdGhl
IHdpbmRvdyByZXN1bHQgbGlzdC4KK2Z1bmN0aW9uIGV4ZWN1dGVGb2N1c0xpc3QoZnJhbWVSZXN1
bHRMaXN0LCBvcHRMaXN0KSB7CisgIGZ1bmN0aW9uIGV4ZWN1dGVOZXh0Q29tbWFuZChmcmFtZVJl
c3VsdExpc3QsIG9wdExpc3QsIG5leHRDb21tYW5kKSB7CisgICAgaWYgKG5leHRDb21tYW5kID49
IG9wdExpc3QubGVuZ3RoKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIHJldHVybiBleGVj
dXRlRm9jdXMoZnJhbWVSZXN1bHRMaXN0LCBvcHRMaXN0W25leHRDb21tYW5kXSkudGhlbihfID0+
IHsKKyAgICAgIHJldHVybiBleGVjdXRlTmV4dENvbW1hbmQoZnJhbWVSZXN1bHRMaXN0LCBvcHRM
aXN0LCBuZXh0Q29tbWFuZCArIDEpOworICAgIH0pOworICB9CisgIHJldHVybiBleGVjdXRlTmV4
dENvbW1hbmQoZnJhbWVSZXN1bHRMaXN0LCBvcHRMaXN0LCAwKTsKK30KKworLy8gUGVyZm9ybSBh
IGBjbGllbnRzLm1hdGNoQWxsKClgIGluIHRoZSBzZXJ2aWNlIHdvcmtlciB3aXRoIHRoZSBnaXZl
bgorLy8gb3B0aW9ucyBkaWN0aW9uYXJ5LgorZnVuY3Rpb24gZG9NYXRjaEFsbCh3b3JrZXIsIG9w
dGlvbnMpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIGxldCBjaGFu
bmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSBldnQgPT4geworICAgICAgcmVzb2x2ZShldnQuZGF0YSk7CisgICAgfTsKKyAgICB3b3JrZXIu
cG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVsLnBvcnQyLCBvcHRpb25zOiBvcHRpb25zLCBkaXNh
YmxlU29ydDogdHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0p
OworICB9KTsKK30KKworLy8gRnVuY3Rpb24gdGhhdCBwZXJmb3JtcyBhIHNpbmdsZSB0ZXN0IGNh
c2UuICBJdCB0YWtlcyBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0CisvLyBkZXNjcmliaW5nIHRoZSB3
aW5kb3dzIHRvIG9wZW4sIGhvdyB0byBmb2N1cyB0aGVtLCB0aGUgbWF0Y2hBbGwgb3B0aW9ucywK
Ky8vIGFuZCB0aGUgcmVzdWx0aW5nIGV4cGVjdGF0aW9ucy4gIFNlZSB0aGUgdGVzdCBjYXNlcyBm
b3IgZXhhbXBsZXMgb2YgaG93IHRvCisvLyB1c2UgdGhpcy4KK2Z1bmN0aW9uIG1hdGNoQWxsT3Jk
ZXJUZXN0KHQsIG9wdHMpIHsKKyAgbGV0IHNjcmlwdCA9ICdyZXNvdXJjZXMvY2xpZW50cy1tYXRj
aGFsbC13b3JrZXIuanMnOworICBsZXQgd29ya2VyOworICBsZXQgZnJhbWVSZXN1bHRMaXN0Owor
ICBsZXQgZXh0cmFXaW5kb3dSZXN1bHQ7CisgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIG9wdHMuc2NvcGUpLnRoZW4oc3dyID0+IHsKKyAg
ICB3b3JrZXIgPSBzd3IuaW5zdGFsbGluZzsKKyAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwg
d29ya2VyLCAnYWN0aXZhdGVkJyk7CisgIH0pLnRoZW4oXyA9PiB7CisgICAgcmV0dXJuIG9wZW5G
cmFtZUNvbmZpZ0xpc3Qob3B0cy5mcmFtZUNvbmZpZ0xpc3QpOworICB9KS50aGVuKHJlc3VsdHMg
PT4geworICAgIGZyYW1lUmVzdWx0TGlzdCA9IHJlc3VsdHM7CisgICAgcmV0dXJuIG9wZW5GcmFt
ZUNvbmZpZyh7IHVybDogRVhUUkFfVVJMIH0pOworICB9KS50aGVuKHJlc3VsdCA9PiB7CisgICAg
ZXh0cmFXaW5kb3dSZXN1bHQgPSByZXN1bHQ7CisgICAgcmV0dXJuIGV4ZWN1dGVGb2N1c0xpc3Qo
ZnJhbWVSZXN1bHRMaXN0LCBvcHRzLmZvY3VzQ29uZmlnTGlzdCk7CisgIH0pLnRoZW4oXyA9PiB7
CisgICAgcmV0dXJuIGRvTWF0Y2hBbGwod29ya2VyLCBvcHRzLm1hdGNoQWxsT3B0aW9ucyk7Cisg
IH0pLnRoZW4oZGF0YSA9PiB7CisgICAgYXNzZXJ0X2VxdWFscyhkYXRhLmxlbmd0aCwgb3B0cy5l
eHBlY3RlZC5sZW5ndGgpOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsr
aSkgeworICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhW2ldWzJdLCBvcHRzLmV4cGVjdGVkW2ldLCAn
ZXhwZWN0ZWQgVVJMIGluZGV4ICcgKyBpKTsKKyAgICB9CisgIH0pLnRoZW4oXyA9PiB7CisgICAg
ZnJhbWVSZXN1bHRMaXN0LmZvckVhY2gocmVzdWx0ID0+IHJlc3VsdC50b3AucmVtb3ZlKCkpOwor
ICAgIGV4dHJhV2luZG93UmVzdWx0LnRvcC5yZW1vdmUoKTsKKyAgfSkudGhlbihfID0+IHsKKyAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBvcHRzLnNjb3Bl
KTsKKyAgfSkuY2F0Y2goZSA9PiB7CisgICAgaWYgKGZyYW1lUmVzdWx0TGlzdCkgeworICAgICAg
ZnJhbWVSZXN1bHRMaXN0LmZvckVhY2gocmVzdWx0ID0+IHJlc3VsdC50b3AucmVtb3ZlKCkpOwor
ICAgIH0KKyAgICBpZiAoZXh0cmFXaW5kb3dSZXN1bHQpIHsKKyAgICAgIGV4dHJhV2luZG93UmVz
dWx0LnRvcC5yZW1vdmUoKTsKKyAgICB9CisgICAgdGhyb3coZSk7CisgIH0pOworfQorCisvLyAt
LS0tLS0tLS0tCisvLyBUZXN0IGNhc2VzCisvLyAtLS0tLS0tLS0tCisKK3Byb21pc2VfdGVzdCh0
ID0+IHsKKyAgbGV0IG5hbWUgPSAnbm8tZm9jdXMtY29udHJvbGxlZC13aW5kb3dzJzsKKyAgbGV0
IG9wdHMgPSB7CisgICAgc2NvcGU6IG1ha2VVUkwobmFtZSksCisKKyAgICBmcmFtZUNvbmZpZ0xp
c3Q6IFsKKyAgICAgIHsgdXJsOiBtYWtlVVJMKG5hbWUsIDApLCB3aXRoTmVzdGVkOiBmYWxzZSB9
LAorICAgICAgeyB1cmw6IG1ha2VVUkwobmFtZSwgMSksIHdpdGhOZXN0ZWQ6IGZhbHNlIH0sCisg
ICAgICB7IHVybDogbWFrZVVSTChuYW1lLCAyKSwgd2l0aE5lc3RlZDogZmFsc2UgfSwKKyAgICBd
LAorCisgICAgZm9jdXNDb25maWdMaXN0OiBbCisgICAgICAvLyBubyBmb2N1cyBjb21tYW5kcwor
ICAgIF0sCisKKyAgICBtYXRjaEFsbE9wdGlvbnM6IHsKKyAgICAgIGluY2x1ZGVVbmNvbnRyb2xs
ZWQ6IGZhbHNlCisgICAgfSwKKworICAgIGV4cGVjdGVkOiBbCisgICAgICBtYWtlVVJMKG5hbWUs
IDApLAorICAgICAgbWFrZVVSTChuYW1lLCAxKSwKKyAgICAgIG1ha2VVUkwobmFtZSwgMiksCisg
ICAgXSwKKyAgfTsKKworICByZXR1cm4gbWF0Y2hBbGxPcmRlclRlc3QodCwgb3B0cyk7Cit9LCAn
Q2xpZW50cy5tYXRjaEFsbCgpIHJldHVybnMgbm9uLWZvY3VzZWQgY29udHJvbGxlZCB3aW5kb3dz
IGluIGNyZWF0aW9uIG9yZGVyLicpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgIGxldCBuYW1l
ID0gJ2ZvY3VzLWNvbnRyb2xsZWQtd2luZG93cy0xJzsKKyAgbGV0IG9wdHMgPSB7CisgICAgc2Nv
cGU6IG1ha2VVUkwobmFtZSksCisKKyAgICBmcmFtZUNvbmZpZ0xpc3Q6IFsKKyAgICAgIHsgdXJs
OiBtYWtlVVJMKG5hbWUsIDApLCB3aXRoTmVzdGVkOiBmYWxzZSB9LAorICAgICAgeyB1cmw6IG1h
a2VVUkwobmFtZSwgMSksIHdpdGhOZXN0ZWQ6IGZhbHNlIH0sCisgICAgICB7IHVybDogbWFrZVVS
TChuYW1lLCAyKSwgd2l0aE5lc3RlZDogZmFsc2UgfSwKKyAgICBdLAorCisgICAgZm9jdXNDb25m
aWdMaXN0OiBbCisgICAgICB7IGluZGV4OiAwLCB0eXBlOiAndG9wJyB9LAorICAgICAgeyBpbmRl
eDogMSwgdHlwZTogJ3RvcCcgfSwKKyAgICAgIHsgaW5kZXg6IDIsIHR5cGU6ICd0b3AnIH0sCisg
ICAgXSwKKworICAgIG1hdGNoQWxsT3B0aW9uczogeworICAgICAgaW5jbHVkZVVuY29udHJvbGxl
ZDogZmFsc2UKKyAgICB9LAorCisgICAgZXhwZWN0ZWQ6IFsKKyAgICAgIG1ha2VVUkwobmFtZSwg
MiksCisgICAgICBtYWtlVVJMKG5hbWUsIDEpLAorICAgICAgbWFrZVVSTChuYW1lLCAwKSwKKyAg
ICBdLAorICB9OworCisgIHJldHVybiBtYXRjaEFsbE9yZGVyVGVzdCh0LCBvcHRzKTsKK30sICdD
bGllbnRzLm1hdGNoQWxsKCkgcmV0dXJucyBjb250cm9sbGVkIHdpbmRvd3MgaW4gZm9jdXMgb3Jk
ZXIuICBDYXNlIDEuJyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgbGV0IG5hbWUgPSAnZm9j
dXMtY29udHJvbGxlZC13aW5kb3dzLTInOworICBsZXQgb3B0cyA9IHsKKyAgICBzY29wZTogbWFr
ZVVSTChuYW1lKSwKKworICAgIGZyYW1lQ29uZmlnTGlzdDogWworICAgICAgeyB1cmw6IG1ha2VV
UkwobmFtZSwgMCksIHdpdGhOZXN0ZWQ6IGZhbHNlIH0sCisgICAgICB7IHVybDogbWFrZVVSTChu
YW1lLCAxKSwgd2l0aE5lc3RlZDogZmFsc2UgfSwKKyAgICAgIHsgdXJsOiBtYWtlVVJMKG5hbWUs
IDIpLCB3aXRoTmVzdGVkOiBmYWxzZSB9LAorICAgIF0sCisKKyAgICBmb2N1c0NvbmZpZ0xpc3Q6
IFsKKyAgICAgIHsgaW5kZXg6IDIsIHR5cGU6ICd0b3AnIH0sCisgICAgICB7IGluZGV4OiAxLCB0
eXBlOiAndG9wJyB9LAorICAgICAgeyBpbmRleDogMCwgdHlwZTogJ3RvcCcgfSwKKyAgICBdLAor
CisgICAgbWF0Y2hBbGxPcHRpb25zOiB7CisgICAgICBpbmNsdWRlVW5jb250cm9sbGVkOiBmYWxz
ZQorICAgIH0sCisKKyAgICBleHBlY3RlZDogWworICAgICAgbWFrZVVSTChuYW1lLCAwKSwKKyAg
ICAgIG1ha2VVUkwobmFtZSwgMSksCisgICAgICBtYWtlVVJMKG5hbWUsIDIpLAorICAgIF0sCisg
IH07CisKKyAgcmV0dXJuIG1hdGNoQWxsT3JkZXJUZXN0KHQsIG9wdHMpOworfSwgJ0NsaWVudHMu
bWF0Y2hBbGwoKSByZXR1cm5zIGNvbnRyb2xsZWQgd2luZG93cyBpbiBmb2N1cyBvcmRlci4gIENh
c2UgMi4nKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICBsZXQgbmFtZSA9ICduby1mb2N1cy11
bmNvbnRyb2xsZWQtd2luZG93cyc7CisgIGxldCBvcHRzID0geworICAgIHNjb3BlOiBtYWtlVVJM
KG5hbWUgKyAnLW91dG9mc2NvcGUnKSwKKworICAgIGZyYW1lQ29uZmlnTGlzdDogWworICAgICAg
eyB1cmw6IG1ha2VVUkwobmFtZSwgMCksIHdpdGhOZXN0ZWQ6IGZhbHNlIH0sCisgICAgICB7IHVy
bDogbWFrZVVSTChuYW1lLCAxKSwgd2l0aE5lc3RlZDogZmFsc2UgfSwKKyAgICAgIHsgdXJsOiBt
YWtlVVJMKG5hbWUsIDIpLCB3aXRoTmVzdGVkOiBmYWxzZSB9LAorICAgIF0sCisKKyAgICBmb2N1
c0NvbmZpZ0xpc3Q6IFsKKyAgICAgIC8vIG5vIGZvY3VzIGNvbW1hbmRzCisgICAgXSwKKworICAg
IG1hdGNoQWxsT3B0aW9uczogeworICAgICAgaW5jbHVkZVVuY29udHJvbGxlZDogdHJ1ZQorICAg
IH0sCisKKyAgICBleHBlY3RlZDogWworICAgICAgLy8gVGhlIGhhcm5lc3Mgd2luZG93cyBoYXZl
IGJlZW4gZm9jdXNlZCwgc28gYXBwZWFyIGZpcnN0CisgICAgICBURVNUX0hBUk5FU1NfVVJMLAor
ICAgICAgVE9QX0hBUk5FU1NfVVJMLAorCisgICAgICAvLyBUZXN0IGZyYW1lcyBoYXZlIG5vdCBi
ZWVuIGZvY3VzZWQsIHNvIGFwcGVhciBpbiBjcmVhdGlvbiBvcmRlcgorICAgICAgbWFrZVVSTChu
YW1lLCAwKSwKKyAgICAgIG1ha2VVUkwobmFtZSwgMSksCisgICAgICBtYWtlVVJMKG5hbWUsIDIp
LAorICAgICAgRVhUUkFfVVJMLAorICAgIF0sCisgIH07CisKKyAgcmV0dXJuIG1hdGNoQWxsT3Jk
ZXJUZXN0KHQsIG9wdHMpOworfSwgJ0NsaWVudHMubWF0Y2hBbGwoKSByZXR1cm5zIG5vbi1mb2N1
c2VkIHVuY29udHJvbGxlZCB3aW5kb3dzIGluIGNyZWF0aW9uIG9yZGVyLicpOworCitwcm9taXNl
X3Rlc3QodCA9PiB7CisgIGxldCBuYW1lID0gJ2ZvY3VzLXVuY29udHJvbGxlZC13aW5kb3dzLTEn
OworICBsZXQgb3B0cyA9IHsKKyAgICBzY29wZTogbWFrZVVSTChuYW1lICsgJy1vdXRvZnNjb3Bl
JyksCisKKyAgICBmcmFtZUNvbmZpZ0xpc3Q6IFsKKyAgICAgIHsgdXJsOiBtYWtlVVJMKG5hbWUs
IDApLCB3aXRoTmVzdGVkOiBmYWxzZSB9LAorICAgICAgeyB1cmw6IG1ha2VVUkwobmFtZSwgMSks
IHdpdGhOZXN0ZWQ6IGZhbHNlIH0sCisgICAgICB7IHVybDogbWFrZVVSTChuYW1lLCAyKSwgd2l0
aE5lc3RlZDogZmFsc2UgfSwKKyAgICBdLAorCisgICAgZm9jdXNDb25maWdMaXN0OiBbCisgICAg
ICB7IGluZGV4OiAwLCB0eXBlOiAndG9wJyB9LAorICAgICAgeyBpbmRleDogMSwgdHlwZTogJ3Rv
cCcgfSwKKyAgICAgIHsgaW5kZXg6IDIsIHR5cGU6ICd0b3AnIH0sCisgICAgXSwKKworICAgIG1h
dGNoQWxsT3B0aW9uczogeworICAgICAgaW5jbHVkZVVuY29udHJvbGxlZDogdHJ1ZQorICAgIH0s
CisKKyAgICBleHBlY3RlZDogWworICAgICAgLy8gVGhlIHRlc3QgaGFybmVzcyB3aW5kb3cgaXMg
YSBwYXJlbnQgb2YgYWxsIHRlc3QgZnJhbWVzLiAgSXQgd2lsbAorICAgICAgLy8gYWx3YXlzIGhh
dmUgdGhlIHNhbWUgZm9jdXMgdGltZSBvciBsYXRlciBhcyBpdHMgZnJhbWVzLiAgU28gaXQKKyAg
ICAgIC8vIGFwcGVhcnMgZmlyc3QuCisgICAgICBURVNUX0hBUk5FU1NfVVJMLAorCisgICAgICBt
YWtlVVJMKG5hbWUsIDIpLAorICAgICAgbWFrZVVSTChuYW1lLCAxKSwKKyAgICAgIG1ha2VVUkwo
bmFtZSwgMCksCisKKyAgICAgIC8vIFRoZSBvdmVyYWxsIGhhcm5lc3MgaGFzIGJlZW4gZm9jdXNl
ZAorICAgICAgVE9QX0hBUk5FU1NfVVJMLAorCisgICAgICAvLyBUaGUgZXh0cmEgZnJhbWUgd2Fz
IG5ldmVyIGZvY3VzZWQKKyAgICAgIEVYVFJBX1VSTCwKKyAgICBdLAorICB9OworCisgIHJldHVy
biBtYXRjaEFsbE9yZGVyVGVzdCh0LCBvcHRzKTsKK30sICdDbGllbnRzLm1hdGNoQWxsKCkgcmV0
dXJucyB1bmNvbnRyb2xsZWQgd2luZG93cyBpbiBmb2N1cyBvcmRlci4gIENhc2UgMS4nKTsKKwor
cHJvbWlzZV90ZXN0KHQgPT4geworICBsZXQgbmFtZSA9ICdmb2N1cy11bmNvbnRyb2xsZWQtd2lu
ZG93cy0yJzsKKyAgbGV0IG9wdHMgPSB7CisgICAgc2NvcGU6IG1ha2VVUkwobmFtZSArICctb3V0
b2ZzY29wZScpLAorCisgICAgZnJhbWVDb25maWdMaXN0OiBbCisgICAgICB7IHVybDogbWFrZVVS
TChuYW1lLCAwKSwgd2l0aE5lc3RlZDogZmFsc2UgfSwKKyAgICAgIHsgdXJsOiBtYWtlVVJMKG5h
bWUsIDEpLCB3aXRoTmVzdGVkOiBmYWxzZSB9LAorICAgICAgeyB1cmw6IG1ha2VVUkwobmFtZSwg
MiksIHdpdGhOZXN0ZWQ6IGZhbHNlIH0sCisgICAgXSwKKworICAgIGZvY3VzQ29uZmlnTGlzdDog
WworICAgICAgeyBpbmRleDogMiwgdHlwZTogJ3RvcCcgfSwKKyAgICAgIHsgaW5kZXg6IDEsIHR5
cGU6ICd0b3AnIH0sCisgICAgICB7IGluZGV4OiAwLCB0eXBlOiAndG9wJyB9LAorICAgIF0sCisK
KyAgICBtYXRjaEFsbE9wdGlvbnM6IHsKKyAgICAgIGluY2x1ZGVVbmNvbnRyb2xsZWQ6IHRydWUK
KyAgICB9LAorCisgICAgZXhwZWN0ZWQ6IFsKKyAgICAgIC8vIFRoZSB0ZXN0IGhhcm5lc3Mgd2lu
ZG93IGlzIGEgcGFyZW50IG9mIGFsbCB0ZXN0IGZyYW1lcy4gIEl0IHdpbGwKKyAgICAgIC8vIGFs
d2F5cyBoYXZlIHRoZSBzYW1lIGZvY3VzIHRpbWUgb3IgbGF0ZXIgYXMgaXRzIGZyYW1lcy4gIFNv
IGl0CisgICAgICAvLyBhcHBlYXJzIGZpcnN0LgorICAgICAgVEVTVF9IQVJORVNTX1VSTCwKKwor
ICAgICAgbWFrZVVSTChuYW1lLCAwKSwKKyAgICAgIG1ha2VVUkwobmFtZSwgMSksCisgICAgICBt
YWtlVVJMKG5hbWUsIDIpLAorCisgICAgICAvLyBUaGUgb3ZlcmFsbCBoYXJuZXNzIGhhcyBiZWVu
IGZvY3VzZWQKKyAgICAgIFRPUF9IQVJORVNTX1VSTCwKKworICAgICAgLy8gVGhlIGV4dHJhIGZy
YW1lIHdhcyBuZXZlciBmb2N1c2VkCisgICAgICBFWFRSQV9VUkwsCisgICAgXSwKKyAgfTsKKwor
ICByZXR1cm4gbWF0Y2hBbGxPcmRlclRlc3QodCwgb3B0cyk7Cit9LCAnQ2xpZW50cy5tYXRjaEFs
bCgpIHJldHVybnMgdW5jb250cm9sbGVkIHdpbmRvd3MgaW4gZm9jdXMgb3JkZXIuICBDYXNlIDIu
Jyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgbGV0IG5hbWUgPSAnZm9jdXMtY29udHJvbGxl
ZC1uZXN0ZWQtd2luZG93cyc7CisgIGxldCBvcHRzID0geworICAgIHNjb3BlOiBtYWtlVVJMKG5h
bWUpLAorCisgICAgZnJhbWVDb25maWdMaXN0OiBbCisgICAgICB7IHVybDogbWFrZVVSTChuYW1l
LCAwKSwgd2l0aE5lc3RlZDogdHJ1ZSB9LAorICAgICAgeyB1cmw6IG1ha2VVUkwobmFtZSwgMSks
IHdpdGhOZXN0ZWQ6IHRydWUgfSwKKyAgICAgIHsgdXJsOiBtYWtlVVJMKG5hbWUsIDIpLCB3aXRo
TmVzdGVkOiB0cnVlIH0sCisgICAgXSwKKworICAgIGZvY3VzQ29uZmlnTGlzdDogWworICAgICAg
eyBpbmRleDogMCwgdHlwZTogJ3RvcCcgfSwKKworICAgICAgLy8gTm90ZSwgc29tZSBicm93c2Vy
cyBkb24ndCBsZXQgcHJvZ3JhbW1hdGljIGZvY3VzIG9mIGEgZnJhbWUgdW5sZXNzCisgICAgICAv
LyBhbiBhbmNlc3RvciB3aW5kb3cgaXMgYWxyZWFkeSBmb2N1c2VkLiAgU28gZm9jdXMgdGhlIHdp
bmRvdyBhbmQKKyAgICAgIC8vIHRoZW4gdGhlIGZyYW1lLgorICAgICAgeyBpbmRleDogMSwgdHlw
ZTogJ3RvcCcgfSwKKyAgICAgIHsgaW5kZXg6IDEsIHR5cGU6ICduZXN0ZWQnIH0sCisKKyAgICAg
IHsgaW5kZXg6IDIsIHR5cGU6ICd0b3AnIH0sCisgICAgXSwKKworICAgIG1hdGNoQWxsT3B0aW9u
czogeworICAgICAgaW5jbHVkZVVuY29udHJvbGxlZDogZmFsc2UKKyAgICB9LAorCisgICAgZXhw
ZWN0ZWQ6IFsKKyAgICAgIC8vIEZvY3VzIG9yZGVyIGZvciB3aW5kb3cgMiwgYnV0IG5vdCBpdHMg
ZnJhbWUuICBXZSBvbmx5IGZvY3VzZWQKKyAgICAgIC8vIHRoZSB3aW5kb3cuCisgICAgICBtYWtl
VVJMKG5hbWUsIDIpLAorCisgICAgICAvLyBXaW5kb3cgMSBpcyBuZXh0IHZpYSBmb2N1cyBvcmRl
ciwgYnV0IHRoZSB3aW5kb3cgaXMgYWx3YXlzCisgICAgICAvLyBzaG93biBmaXJzdCBoZXJlLiAg
VGhlIHdpbmRvdyBnZXRzIGl0cyBsYXN0IGZvY3VzIHRpbWUgdXBkYXRlZAorICAgICAgLy8gd2hl
biB0aGUgZnJhbWUgaXMgZm9jdXNlZC4gIFNpbmNlIHRoZSB0aW1lcyBtYXRjaCBiZXR3ZWVuIHRo
ZQorICAgICAgLy8gdHdvIGl0IGZhbGxzIGJhY2sgdG8gY3JlYXRpb24gb3JkZXIuICBUaGUgd2lu
ZG93IHdhcyBjcmVhdGVkCisgICAgICAvLyBiZWZvcmUgdGhlIGZyYW1lLiAgVGhpcyBiZWhhdmlv
ciBpcyBiZWluZyBkaXNjdXNzZWQgaW46CisgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNj
L1NlcnZpY2VXb3JrZXIvaXNzdWVzLzEwODAKKyAgICAgIG1ha2VVUkwobmFtZSwgMSksCisgICAg
ICBtYWtlVVJMKG5hbWUsIDEsICduZXN0ZWQnKSwKKworICAgICAgLy8gRm9jdXMgb3JkZXIgZm9y
IHdpbmRvdyAwLCBidXQgbm90IGl0cyBmcmFtZS4gIFdlIG9ubHkgZm9jdXNlZAorICAgICAgLy8g
dGhlIHdpbmRvdy4KKyAgICAgIG1ha2VVUkwobmFtZSwgMCksCisKKyAgICAgIC8vIENyZWF0aW9u
IG9yZGVyIG9mIHRoZSBmcmFtZXMgc2luY2UgdGhleSBhcmUgbm90IGZvY3VzZWQgYnkKKyAgICAg
IC8vIGRlZmF1bHQgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLgorICAgICAgbWFrZVVSTChuYW1lLCAw
LCAnbmVzdGVkJyksCisgICAgICBtYWtlVVJMKG5hbWUsIDIsICduZXN0ZWQnKSwKKyAgICBdLAor
ICB9OworCisgIHJldHVybiBtYXRjaEFsbE9yZGVyVGVzdCh0LCBvcHRzKTsKK30sICdDbGllbnRz
Lm1hdGNoQWxsKCkgcmV0dXJucyBjb250cm9sbGVkIHdpbmRvd3MgYW5kIGZyYW1lcyBpbiBmb2N1
cyBvcmRlci4nKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1tYXRjaGFsbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRj
aGFsbC5odHRwcy5odG1sCmluZGV4IDEyZTNkYTRlNjFmNTI3YjQ4OGM4MjQxYjdhZWYyMzYyNzNj
MWZkZDkuLjM2MjY5YjRkOThlMmI3MmY1NTUxODI2OGMxYmNmZDE0YWJiMjEyOTkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsaWVudHMtbWF0Y2hhbGwuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLmh0dHBzLmh0bWwKQEAgLTMwLDkgKzMw
LDkgQEAgdC5zdGVwKGZ1bmN0aW9uKCkgewogICB9KTsKIAogdmFyIGV4cGVjdGVkID0gWwotICAg
IC8qIHZpc2liaWxpdHlTdGF0ZSwgZm9jdXNlZCwgdXJsLCBmcmFtZVR5cGUgKi8KLSAgICBbJ3Zp
c2libGUnLCB0cnVlLCBuZXcgVVJMKHNjb3BlICsgJyMxJywgbG9jYXRpb24pLnRvU3RyaW5nKCks
ICduZXN0ZWQnXSwKLSAgICBbJ3Zpc2libGUnLCBmYWxzZSwgbmV3IFVSTChzY29wZSArICcjMics
IGxvY2F0aW9uKS50b1N0cmluZygpLCAnbmVzdGVkJ10KKyAgICAvLyB2aXNpYmlsaXR5U3RhdGUs
IGZvY3VzZWQsIHVybCwgdHlwZSwgZnJhbWVUeXBlCisgICAgWyd2aXNpYmxlJywgdHJ1ZSwgbmV3
IFVSTChzY29wZSArICcjMScsIGxvY2F0aW9uKS50b1N0cmluZygpLCAnd2luZG93JywgJ25lc3Rl
ZCddLAorICAgIFsndmlzaWJsZScsIGZhbHNlLCBuZXcgVVJMKHNjb3BlICsgJyMyJywgbG9jYXRp
b24pLnRvU3RyaW5nKCksICd3aW5kb3cnLCAnbmVzdGVkJ10KIF07CiAKIGZ1bmN0aW9uIG9uTWVz
c2FnZShlKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWRp
c2Nvbm5lY3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tZGlz
Y29ubmVjdC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMGQxOTBlM2IyMDE0N2NmMTgzZjg5NjY0
ZmY3ZWQ4NGE0ZWMzZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250
cm9sbGVyLW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ29udHJvbGxlciBvbiBsb2FkPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+Cit2YXIgdCA9IGFzeW5jX3Rlc3QoJ2NvbnRyb2xsZXIgaXMgY2xlYXJlZCBv
biBkaXNjb25uZWN0ZWQgd2luZG93Jyk7Cit0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgdmFyIHVy
bCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3Vy
Y2VzL2JsYW5rLmh0bWwnOworICAgIHZhciByZWdpc3RyYXRpb247CisgICAgdmFyIGNvbnRyb2xs
ZXI7CisgICAgdmFyIGZyYW1lOworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHVybCwgc2NvcGUpCisgICAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbihz
d3IpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSBzd3I7CisgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cisg
ICAgICAgIH0pKQorICAgICAgLnRoZW4odC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKQorICAgICAgICB9KSkKKyAgICAgIC50aGVuKHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgICAg
dmFyIHcgPSBmcmFtZS5jb250ZW50V2luZG93OworICAgICAgICAgIHZhciBzd2MgPSB3Lm5hdmln
YXRvci5zZXJ2aWNlV29ya2VyOworICAgICAgICAgIGFzc2VydF90cnVlKHN3Yy5jb250cm9sbGVy
IGluc3RhbmNlb2Ygdy5TZXJ2aWNlV29ya2VyLAorICAgICAgICAgICAgICAgICAgICAgICdjb250
cm9sbGVyIHNob3VsZCBiZSBhIFNlcnZpY2VXb3JrZXIgb2JqZWN0Jyk7CisKKyAgICAgICAgICBm
cmFtZS5yZW1vdmUoKTsKKworICAgICAgICAgIGFzc2VydF9lcXVhbHMoc3djLmNvbnRyb2xsZXIs
IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlzY29ubmVjdGVkIGZyYW1lIHNob3Vs
ZCBub3QgYmUgY29udHJvbGxlZCcpOworCisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pKQorICAgICAgLmNhdGNoKHVucmVh
Y2hlZF9yZWplY3Rpb24odCkpOworICB9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY29udHJvbGxlci1vbi1sb2FkLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWxvYWQuaHR0cHMuaHRtbAppbmRleCBmZjNiN2Nl
MDRmNDA2NjI1MjllZDJjZjkwZmI5MjE2ZTRiYjE5OTVhLi40OWY5ODc5NjI2YjBjNTk1N2M3NWU2
NGMzNDIxNWM4ZTVjY2NiNTM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9s
bGVyLW9uLWxvYWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVy
LW9uLWxvYWQuaHR0cHMuaHRtbApAQCAtMTgsNyArMTgsNyBAQCB0LnN0ZXAoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pKQogICAgICAgLnRoZW4odC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKQorICAgICAg
ICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CiAgICAgICAgIH0pKQogICAgICAgLnRoZW4o
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZikgewogICAgICAgICAgIGZyYW1lID0gZjsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLXJlbG9hZC5odHRwcy5odG1sCmluZGV4IDQ0
OTBjNzA3OTYzYmQ5MzcxYjk5N2JkYmZkMDgxOWM2ZmNjYzliNzguLmUwYmViNzI2MGJlMTE2MDg0
MzlhYTE2YmNlMGMxNmEwMjVmMjQ4NTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Nv
bnRyb2xsZXItb24tcmVsb2FkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY29u
dHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbApAQCAtNiw3ICs2LDggQEAKIDxib2R5PgogPHNj
cmlwdD4KIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291
cmNlcy9ibGFuay5odG1sJzsKKyAgICBjb25zdCBpZnJhbWVfc2NvcGUgPSAnYmxhbmsuaHRtbCc7
CisgICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzLycgKyBpZnJhbWVfc2NvcGU7CiAgICAgdmFy
IGZyYW1lOwogICAgIHZhciByZWdpc3RyYXRpb247CiAgICAgdmFyIGNvbnRyb2xsZXI7CkBAIC0x
Nyw3ICsxOCw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5j
dGlvbihmKSB7CiAgICAgICAgICAgZnJhbWUgPSBmOwogICAgICAgICAgIHJldHVybiBmcmFtZS5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAotICAgICAgICAg
ICAgICAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycsIHtzY29wZTogc2NvcGV9KTsKKyAgICAg
ICAgICAgICAgJ2VtcHR5LXdvcmtlci5qcycsIHtzY29wZTogaWZyYW1lX3Njb3BlfSk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihzd3IpIHsKICAgICAgICAgICByZWdpc3RyYXRp
b24gPSBzd3I7CkBAIC00Miw3ICs0Myw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAgICAgICAgLy8gb2JqZWN0cyBmcm9tIHNlcGFyYXRlIHdpbmRvd3Mgc2hvdWxkIG5vdCBiZSBl
cXVhbAogICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGNvbnRyb2xsZXIsIHJlZ2lzdHJhdGlv
bi5hY3RpdmUpOwogCi0gICAgICAgICAgcmV0dXJuIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
Z2V0UmVnaXN0cmF0aW9uKCk7CisgICAgICAgICAgcmV0dXJuIHcubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuZ2V0UmVnaXN0cmF0aW9uKGlmcmFtZV9zY29wZSk7CiAgICAgICAgIH0pCiAgICAgICAu
dGhlbihmdW5jdGlvbihmcmFtZVJlZ2lzdHJhdGlvbikgewogICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZnJhbWVSZWdpc3RyYXRpb24uYWN0aXZlLCBjb250cm9sbGVyKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LWFzeW5jLXdhaXR1bnRpbC5o
dHRwcy5odG1sCmluZGV4IGMwNmJmODRhYjJkYmRkMDM0ZGVlYTg2MTBlZjQ3MzVkNGU5YTkzNDUu
LmJlNGVmYmJjMzQyMjJmNzA4Nzc1M2M3NTkyMGFlZTFlY2VkOTk4YjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50
aWwuaHR0cHMuaHRtbApAQCAtNCwyNyArNCw5OCBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewotICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQt
YXN5bmMtd2FpdHVudGlsLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2FzeW5jLXdh
aXR1bnRpbCc7Ci0gICAgdmFyIHdvcmtlcjsKLQotICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQotICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmc7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2Fj
dGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKLSAgICAgICAgICB2YXIgc2F3
X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICAg
IGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeyByZXNvbHZlKGUuZGF0YSk7
IH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDog
Y2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgcmV0dXJuIHNhd19t
ZXNzYWdlOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24obWVzc2FnZSkgewotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1BBU1MnKTsKLSAgICAgICAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7Ci0gICAgICAgIH0p
Ci0gIH0sICdDYWxsaW5nIHdhaXRVbnRpbCBhc3luY2hyb25vdXNseSB0aHJvd3MgYW4gZXhjZXB0
aW9uJyk7CisKK2Z1bmN0aW9uIHN5bmNfbWVzc2FnZSh3b3JrZXIsIG1lc3NhZ2UsIHRyYW5zZmVy
KSB7CisgIGxldCB3YWl0ID0gbmV3IFByb21pc2UoKHJlcywgcmVqKSA9PiB7CisgICAgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgaWYgKGUuZGF0YSA9PT0gJ0FDSycpIHsKKyAgICAgICAgICByZXMoKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZWooKTsKKyAgICAgICAgfQorICAgICAgfSk7Cisg
ICAgfSk7CisgIHdvcmtlci5wb3N0TWVzc2FnZShtZXNzYWdlLCB0cmFuc2Zlcik7CisgIHJldHVy
biB3YWl0OworfQorCitmdW5jdGlvbiBydW5UZXN0KHRlc3QsIHN0ZXAsIHRlc3RCb2R5KSB7Cisg
IHZhciBzY29wZSA9ICcuL3Jlc291cmNlcy8nICsgc3RlcDsKKyAgdmFyIHNjcmlwdCA9ICdyZXNv
dXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanM/JyArIHNjb3BlOworICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0ZXN0LCBzY3JpcHQsIHNjb3Bl
KQorICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICBsZXQgd29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1l
c3NhZ2VDaGFubmVsKCk7CisgICAgICAgIHZhciBzYXdfbWVzc2FnZSA9IG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGUpIHsgcmVzb2x2ZShlLmRhdGEpOyB9CisgICAgICAgIH0pOworCisgICAgICAgIHdh
aXRfZm9yX3N0YXRlKHRlc3QsIHdvcmtlciwgJ2FjdGl2YXRlZCcpCisgICAgICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiBzeW5jX21lc3NhZ2Uod29ya2VyLCB7
IHN0ZXA6ICdpbml0JywgcG9ydDogY2hhbm5lbC5wb3J0MiB9LAorICAgICAgICAgICAgICAgIFtj
aGFubmVsLnBvcnQyXSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeyByZXR1cm4gdGVzdEJvZHkod29ya2VyKTsgfSkKKyAgICAgICAgICAudGhlbihmdW5jdGlv
bigpIHsgcmV0dXJuIHNhd19tZXNzYWdlOyB9KQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKG91
dHB1dCkgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG91dHB1dC5yZXN1bHQsIG91dHB1
dC5leHBlY3RlZCk7CisgICAgICAgICAgICB9KQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
eyByZXR1cm4gc3luY19tZXNzYWdlKHdvcmtlciwgeyBzdGVwOiAnZG9uZScgfSk7IH0pCisgICAg
ICAgICAgLnRoZW4oKCkgPT4geyBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHRl
c3QsIHNjb3BlKTsgfSkKKyAgICAgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0ZXN0
KSk7CisgICAgICB9KTsKK30KKworZnVuY3Rpb24gbXNnX2V2ZW50X3Rlc3Qoc2NvcGUsIHRlc3Qp
IHsKKyAgdmFyIHRlc3RCb2R5ID0gZnVuY3Rpb24od29ya2VyKSB7CisgICAgcmV0dXJuIHN5bmNf
bWVzc2FnZSh3b3JrZXIsIHsgc3RlcDogc2NvcGUgfSk7CisgIH07CisgIHJ1blRlc3QodGVzdCwg
c2NvcGUsIHRlc3RCb2R5KTsKK30KKworYXN5bmNfdGVzdChtc2dfZXZlbnRfdGVzdC5iaW5kKHRo
aXMsICduby1jdXJyZW50LWV4dGVuc2lvbi1kaWZmZXJlbnQtdGFzaycpLAorICAnVGVzdCBjYWxs
aW5nIHdhaXRVbnRpbCBpbiBhIGRpZmZlcmVudCB0YXNrIHdpdGhvdXQgYW4gZXhpc3RpbmcgZXh0
ZW5zaW9uIHRocm93cycpOworCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywg
J25vLWN1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC1taWNyb3Rhc2snKSwKKyAgJ1Rlc3QgY2Fs
bGluZyB3YWl0VW50aWwgaW4gYSBkaWZmZXJlbnQgbWljcm90YXNrIHdpdGhvdXQgYW4gZXhpc3Rp
bmcgZXh0ZW5zaW9uIHRocm93cycpOworCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQo
dGhpcywgJ2N1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVudC10YXNrJyksCisgICdUZXN0IGNhbGxp
bmcgd2FpdFVudGlsIGluIGEgZGlmZmVyZW50IHRhc2sgd2l0aCBhbiBleGlzdGluZyBleHRlbnNp
b24gc3VjY2VlZHMnKTsKKworYXN5bmNfdGVzdChtc2dfZXZlbnRfdGVzdC5iaW5kKHRoaXMsICdj
dXJyZW50LWV4dGVuc2lvbi1leHBpcmVkLXNhbWUtbWljcm90YXNrLXR1cm4nKSwKKyAgJ1Rlc3Qg
Y2FsbGluZyB3YWl0VW50aWwgd2l0aCBhbiBleGlzdGluZyBleHRlbnNpb24gcHJvbWlzZSBoYW5k
bGVyIHN1Y2NlZWRzJyk7CisKKy8vIFRoZSBwcm9taXNlIGhhbmRsZXIgd2lsbCBxdWV1ZSBhIG5l
dyBtaWNyb3Rhc2sgYWZ0ZXIgdGhlIGNoZWNrIGZvciBuZXcKKy8vIGV4dGVuc2lvbnMgd2FzIHBl
cmZvcm1lZC4KK2FzeW5jX3Rlc3QobXNnX2V2ZW50X3Rlc3QuYmluZCh0aGlzLCAnY3VycmVudC1l
eHRlbnNpb24tZXhwaXJlZC1zYW1lLW1pY3JvdGFzay10dXJuLWV4dHJhJyksCisgICdUZXN0IGNh
bGxpbmcgd2FpdFVudGlsIGF0IHRoZSBlbmQgb2YgdGhlIG1pY3JvdGFzayB0dXJuIHRocm93cycp
OworCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ2N1cnJlbnQtZXh0ZW5z
aW9uLWV4cGlyZWQtZGlmZmVyZW50LXRhc2snKSwKKyAgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwg
YWZ0ZXIgdGhlIGN1cnJlbnQgZXh0ZW5zaW9uIGV4cGlyZWQgaW4gYSBkaWZmZXJlbnQgdGFzayBm
YWlscycpOworCithc3luY190ZXN0KG1zZ19ldmVudF90ZXN0LmJpbmQodGhpcywgJ3NjcmlwdC1l
eHRlbmRhYmxlLWV2ZW50JyksCisgICdUZXN0IGNhbGxpbmcgd2FpdFVudGlsIG9uIGEgc2NyaXB0
IGNvbnN0cnVjdGVkIEV4dGVuZGFibGVFdmVudCB0aHJvd3MgZXhjZXB0aW9uJyk7CisKK2FzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9uKHdvcmtlcikg
eworICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9wZW5kaW5nLXJlc3BvbmR3
aXRoLWFzeW5jLXdhaXR1bnRpbC9kdW1teS5odG1sJyk7CisgICAgfQorICAgIHJ1blRlc3QodCwg
J3BlbmRpbmctcmVzcG9uZHdpdGgtYXN5bmMtd2FpdHVudGlsJywgdGVzdEJvZHkpOworICB9LCAn
VGVzdCBjYWxsaW5nIHdhaXRVbnRpbCBhc3luY2hyb25vdXNseSB3aXRoIHBlbmRpbmcgcmVzcG9u
ZFdpdGggcHJvbWlzZS4nKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHRl
c3RCb2R5ID0gZnVuY3Rpb24od29ya2VyKSB7CisgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoJy4v
cmVzb3VyY2VzL3Jlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5jLXdhaXR1bnRpbC9kdW1teS5odG1s
Jyk7CisgICAgfQorICAgIHJ1blRlc3QodCwgJ3Jlc3BvbmR3aXRoLW1pY3JvdGFzay1zeW5jLXdh
aXR1bnRpbCcsIHRlc3RCb2R5KTsKKyAgfSwgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgc3luY2hy
b25vdXNseSBpbnNpZGUgbWljcm90YXNrIG9mIHJlc3BvbmRXaXRoIHByb21pc2UuJyk7CisKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB0ZXN0Qm9keSA9IGZ1bmN0aW9uKHdvcmtl
cikgeworICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKCcuL3Jlc291cmNlcy9yZXNwb25kd2l0aC1t
aWNyb3Rhc2stYXN5bmMtd2FpdHVudGlsL2R1bW15Lmh0bWwnKTsKKyAgICB9CisgICAgcnVuVGVz
dCh0LCAncmVzcG9uZHdpdGgtbWljcm90YXNrLWFzeW5jLXdhaXR1bnRpbCcsIHRlc3RCb2R5KTsK
KyAgfSwgJ1Rlc3QgY2FsbGluZyB3YWl0VW50aWwgYXN5bmNocm9ub3VzbHkgaW5zaWRlIG1pY3Jv
dGFzayBvZiByZXNwb25kV2l0aCBwcm9taXNlLicpOworCisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC13YWl0dW50aWwuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2V4dGVuZGFibGUtZXZlbnQtd2FpdHVudGlsLmh0dHBzLmh0
bWwKaW5kZXggMDAzZTcwM2IxZjM0ZGZjMjE3OGY2ZDI2NDhhYzk4MjkxNzdlZTNmYy4uOGU3OTBk
MGVmNWFkNmQ4NTE1MzQzNjJkZTU2NDdkOTY2OTlhNjVmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZXh0ZW5kYWJsZS1ldmVudC13YWl0dW50aWwuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5odHRwcy5odG1sCkBAIC0x
NiwxNCArMTYsMTcgQEAgZnVuY3Rpb24gcnVuVGVzdCh0ZXN0LCBzY29wZSwgb25SZWdpc3Rlcikg
ewogLy8gfG9iai5zeW5jZWR8IHRvIHRydWUgb25jZSBhY2snZC4KIGZ1bmN0aW9uIHN5bmNXb3Jr
ZXIodGVzdCwgd29ya2VyLCBvYmopIHsKICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5u
ZWwoKTsKLSAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0ZXN0LnN0ZXBfZnVuYyhmdW5jdGlv
bihlKSB7Ci0gICAgICB2YXIgbWVzc2FnZSA9IGUuZGF0YTsKLSAgICAgIGFzc2VydF9lcXVhbHMo
bWVzc2FnZSwgJ1NZTkMnLAotICAgICAgICAgICAgICAgICAgICAnU2hvdWxkIHJlY2VpdmUgc3lu
YyBtZXNzYWdlIGZyb20gd29ya2VyLicpOwotICAgICAgb2JqLnN5bmNlZCA9IHRydWU7Ci0gICAg
ICBjaGFubmVsLnBvcnQxLnBvc3RNZXNzYWdlKCdBQ0snKTsKLSAgICB9KTsKICAgd29ya2VyLnBv
c3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIGNoYW5uZWwucG9ydDEu
b25tZXNzYWdlID0gdGVzdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgIHZhciBt
ZXNzYWdlID0gZS5kYXRhOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZSwgJ1NZTkMn
LAorICAgICAgICAgICAgICAgICAgICAgICAgJ1Nob3VsZCByZWNlaXZlIHN5bmMgbWVzc2FnZSBm
cm9tIHdvcmtlci4nKTsKKyAgICAgICAgICBvYmouc3luY2VkID0gdHJ1ZTsKKyAgICAgICAgICBj
aGFubmVsLnBvcnQxLnBvc3RNZXNzYWdlKCdBQ0snKTsKKyAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgIH0pOworICAgIH0pOwogfQogCiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKQEAgLTY4
LDExICs3MSwyOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKIGFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvaW5zdGFsbC1yZWplY3QtcHJlY2Vk
ZW5jZSc7CiAgICAgdmFyIG9uUmVnaXN0ZXIgPSBmdW5jdGlvbih3b3JrZXIpIHsKKyAgICAgICAg
dmFyIG9iajEgPSB7fTsKKyAgICAgICAgdmFyIG9iajIgPSB7fTsKICAgICAgICAgd2FpdF9mb3Jf
c3RhdGUodCwgd29ya2VyLCAncmVkdW5kYW50JykKICAgICAgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgICAgICAgICAgb2JqMS5zeW5j
ZWQsCisgICAgICAgICAgICAgICAgJ1RoZSAicmVkdW5kYW50IiBzdGF0ZSB3YXMgZW50ZXJlZCBh
ZnRlciB0aGUgZmlyc3QgImV4dGVuZCAnICsKKyAgICAgICAgICAgICAgICAgICdsaWZldGltZSBw
cm9taXNlIiByZXNvbHZlZC4nCisgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgIGFzc2Vy
dF90cnVlKAorICAgICAgICAgICAgICAgIG9iajIuc3luY2VkLAorICAgICAgICAgICAgICAgICdU
aGUgInJlZHVuZGFudCIgc3RhdGUgd2FzIGVudGVyZWQgYWZ0ZXIgdGhlIHRoaXJkICJleHRlbmQg
JyArCisgICAgICAgICAgICAgICAgICAnbGlmZXRpbWUgcHJvbWlzZSIgcmVzb2x2ZWQuJworICAg
ICAgICAgICAgICApOwogICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIHNjb3BlKTsKICAgICAgICAgICAgIH0pCiAgICAgICAgICAgLmNhdGNoKHVucmVh
Y2hlZF9yZWplY3Rpb24odCkpOworCisgICAgICAgIHN5bmNXb3JrZXIodCwgd29ya2VyLCBvYmox
KQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBzeW5jV29ya2Vy
KHQsIHdvcmtlciwgb2JqMik7CisgICAgICAgICAgICB9KTsKICAgICAgIH07CiAgICAgcnVuVGVz
dCh0LCBzY29wZSwgb25SZWdpc3Rlcik7CiAgIH0sICdUZXN0IEV4dGVuZGFibGVFdmVudCB3YWl0
VW50aWwgcmVqZWN0IHByZWNlZGVuY2UuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1jYW52YXMtdGFpbnRpbmctY2FjaGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWNhbnZhcy10YWludGluZy1jYWNoZS5odHRwcy5odG1sCmluZGV4IGZkYjY0ZTE1
ZDY2YjI5ZWY3MDdlZjg5Y2Y3NmRjMGU1MGU2ZTAxY2IuLjc0NzU0OTM1MjQwMjRkNmZkMjVmMTFm
MDQwN2YxZTIxZWY3ZTUzYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNh
bnZhcy10YWludGluZy1jYWNoZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWNhbnZhcy10YWludGluZy1jYWNoZS5odHRwcy5odG1sCkBAIC0yLDcgKzIsNyBAQAogPHRp
dGxlPlNlcnZpY2UgV29ya2VyOiBjYW52YXMgdGFpbnRpbmcgb2YgdGhlIGZldGNoZWQgaW1hZ2Ug
dXNpbmcgY2FjaGVkIHJlc3BvbnNlczwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWlu
Zm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJz
LnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+CiA8Ym9keT4KIDxzY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmcuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWNhbnZhcy10YWludGluZy5odHRwcy5odG1sCmluZGV4IGJi
NzU0NzM5MjZmYjM1Yzg3MGIwNzliODk0MDgxYTQyMTE5ZjBiMjkuLjU1ZmFhOWRmN2E5ODQxNDVj
ZDc1Njg2ODQ5YTI2NzFlMzYyMjFjMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWNhbnZhcy10YWludGluZy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLWNhbnZhcy10YWludGluZy5odHRwcy5odG1sCkBAIC0yLDcgKzIsNyBAQAogPHRpdGxlPlNl
cnZpY2UgV29ya2VyOiBjYW52YXMgdGFpbnRpbmcgb2YgdGhlIGZldGNoZWQgaW1hZ2U8L3RpdGxl
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0Pgog
PGJvZHk+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY29y
cy14aHIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBz
Lmh0bWwKaW5kZXggM2IxZjFkNmJjMzIxZTRhNDUzY2I2MWViZjZmMTZkODFkNzcwOGVmMS4uNTIx
YzAxYzU5NGYyNDg5Yjk0NWQ2NzQ5ZWI2ZmI4MDAwZWEyYjkxYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtY29ycy14aHIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1jb3JzLXhoci5odHRwcy5odG1sCkBAIC0yLDcgKzIsNyBAQAogPHRpdGxlPlNl
cnZpY2UgV29ya2VyOiBDT1JTIFhIUiBvZiBmZXRjaCgpPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWNzcC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBzLmh0bWwKaW5kZXggYmRiNTZjMjEzYWY2YTE2
YjdkMDUzYmIyYzExMjczNzA1MjYzOGExNi4uOTFhNzc0YTEzM2ZkNmExZTk0MmUwMDAzNGM3YzA1
MTE1ZWUwZGVhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtY3NwLmh0dHBzLmh0bWwKQEAgLTIs
MzEgKzIsMTEwIEBACiA8dGl0bGU+U2VydmljZSBXb3JrZXI6IENTUCBjb250cm9sIG9mIGZldGNo
KCk8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworCitmdW5jdGlvbiBh
c3NlcnRfcmVzb2x2ZXMocHJvbWlzZSwgZGVzY3JpcHRpb24pIHsKKyAgcmV0dXJuIHByb21pc2Uu
Y2F0Y2goZnVuY3Rpb24ocmVhc29uKSB7CisgICAgICB0aHJvdyBuZXcgRXJyb3IoZGVzY3JpcHRp
b24gKyAnIC0gJyArIHJlYXNvbi5tZXNzYWdlKTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dF9yZWplY3RzKHByb21pc2UsIGRlc2NyaXB0aW9uKSB7CisgIHJldHVybiBwcm9taXNlLnRoZW4o
CisgICAgICBmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKGRlc2NyaXB0aW9uKTsgfSwKKyAg
ICAgIGZ1bmN0aW9uKCkge30pOworfQorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAg
IHZhciBTQ09QRSA9ICdyZXNvdXJjZXMvZmV0Y2gtY3NwLWlmcmFtZS5odG1sJzsKICAgICB2YXIg
U0NSSVBUID0gJ3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtlci5qcyc7CiAgICAgdmFyIGhv
c3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgIHZhciBJTUFHRV9QQVRIID0KKyAg
ICAgICAgYmFzZV9wYXRoKCkgKyAncmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P1BO
R0lNQUdFJzsKKyAgICB2YXIgSU1BR0VfVVJMID0gaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSAr
IElNQUdFX1BBVEg7CisgICAgdmFyIFJFTU9URV9JTUFHRV9VUkwgPSBob3N0X2luZm9bJ0hUVFBT
X1JFTU9URV9PUklHSU4nXSArIElNQUdFX1BBVEg7CisgICAgdmFyIFJFRElSRUNUX1VSTCA9Cisg
ICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArICdyZXNvdXJj
ZXMvcmVkaXJlY3QucHknOworICAgIHZhciBmcmFtZTsKKworICAgIHJldHVybiBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQogICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
Ci0gICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7Ci0gICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgICB2YXIgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOwotICAgICAgICAgICAgICBjaGFubmVsLnBvcnQxLm9u
bWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKLSAgICAgICAgICAgICAgICAg
IGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfZG9uZSh0LCBTQ09QRSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5w
b3J0Ml0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pCi0gICAgICAuY2F0Y2godW5yZWFj
aGVkX3JlamVjdGlvbih0KSk7CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBy
ZXR1cm4gd2l0aF9pZnJhbWUoCisgICAgICAgICAgICAgIFNDT1BFICsgJz8nICsKKyAgICAgICAg
ICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KCdpbWctc3JjICcgKyBob3N0X2luZm9bJ0hUVFBTX09S
SUdJTiddICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc7IHNjcmlwdC1zcmMg
XCd1bnNhZmUtaW5saW5lXCcnKSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihm
KSB7CisgICAgICAgICAgZnJhbWUgPSBmOworICAgICAgICAgIHJldHVybiBhc3NlcnRfcmVzb2x2
ZXMoCisgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubG9hZF9pbWFnZShJTUFHRV9V
UkwpLAorICAgICAgICAgICAgICAnQWxsb3dlZCBzY29wZSBpbWFnZSByZXNvdXJjZSBzaG91bGQg
YmUgbG9hZGVkLicpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgcmV0dXJuIGFzc2VydF9yZWplY3RzKAorICAgICAgICAgICAgICBmcmFtZS5jb250ZW50
V2luZG93LmxvYWRfaW1hZ2UoUkVNT1RFX0lNQUdFX1VSTCksCisgICAgICAgICAgICAgICdEaXNh
bGxvd2VkIHNjb3BlIGltYWdlIHJlc291cmNlIHNob3VsZCBub3QgYmUgbG9hZGVkLicpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGFzc2Vy
dF9yZXNvbHZlcygKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5sb2FkX2ltYWdl
KAorICAgICAgICAgICAgICAgICAgLy8gVGhlIHJlcXVlc3QgZm9yIElNQUdFX1VSTCB3aWxsIGJl
IGZldGNoZWQgaW4gU1cuCisgICAgICAgICAgICAgICAgICAnLi9kdW1teT91cmw9JyArIGVuY29k
ZVVSSUNvbXBvbmVudChJTUFHRV9VUkwpKSwKKyAgICAgICAgICAgICAgJ0FsbG93ZWQgc2NvcGUg
aW1hZ2UgcmVzb3VyY2Ugd2hpY2ggd2FzIGZldGNoZWQgdmlhIFNXIHNob3VsZCAnICsKKyAgICAg
ICAgICAgICAgJ2JlIGxvYWRlZC4nKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeworICAgICAgICAgIHJldHVybiBhc3NlcnRfcmVqZWN0cygKKyAgICAgICAgICAgICAgZnJh
bWUuY29udGVudFdpbmRvdy5sb2FkX2ltYWdlKAorICAgICAgICAgICAgICAgICAgLy8gVGhlIHJl
cXVlc3QgZm9yIFJFTU9URV9JTUFHRV9VUkwgd2lsbCBiZSBmZXRjaGVkIGluIFNXLgorICAgICAg
ICAgICAgICAgICAgJy4vZHVtbXk/bW9kZT1uby1jb3JzJnVybD0nICsKKyAgICAgICAgICAgICAg
ICAgIGVuY29kZVVSSUNvbXBvbmVudChSRU1PVEVfSU1BR0VfVVJMKSksCisgICAgICAgICAgICAg
ICdEaXNhbGxvd2VkIHNjb3BlIGltYWdlIHJlc291cmNlIHdoaWNoIHdhcyBmZXRjaGVkIHZpYSBT
VyAnICsKKyAgICAgICAgICAgICAgJ3Nob3VsZCBub3QgYmUgbG9hZGVkLicpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7Cisg
ICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKAorICAgICAgICAgICAgICBTQ09QRSArICc/JyAr
CisgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCgKKyAgICAgICAgICAgICAgICAgICdp
bWctc3JjICcgKyBSRURJUkVDVF9VUkwgKworICAgICAgICAgICAgICAgICAgJzsgc2NyaXB0LXNy
YyBcJ3Vuc2FmZS1pbmxpbmVcJycpKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KGYpIHsKKyAgICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgICAgcmV0dXJuIGFzc2VydF9yZXNv
bHZlcygKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5sb2FkX2ltYWdlKAorICAg
ICAgICAgICAgICAgICAgLy8gU2V0ICdpZ25vcmUnIG5vdCB0byBjYWxsIHJlc3BvbmRXaXRoKCkg
aW4gdGhlIFNXLgorICAgICAgICAgICAgICAgICAgUkVESVJFQ1RfVVJMICsgJz9pZ25vcmUmUmVk
aXJlY3Q9JyArCisgICAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoSU1BR0VfVVJM
KSksCisgICAgICAgICAgICAgICdXaGVuIHRoZSByZXF1ZXN0IHdhcyByZWRpcmVjdGVkLCBDU1Ag
bWF0Y2ggYWxnb3JpdGhtIHNob3VsZCAnICsKKyAgICAgICAgICAgICAgJ2lnbm9yZSB0aGUgcGF0
aCBjb21wb25lbnQgb2YgdGhlIFVSTC4nKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiBhc3NlcnRfcmVzb2x2ZXMoCisgICAgICAgICAgICAg
IGZyYW1lLmNvbnRlbnRXaW5kb3cubG9hZF9pbWFnZSgKKyAgICAgICAgICAgICAgICAgIC8vIFRo
aXMgcmVxdWVzdCB3aWxsIGJlIGZldGNoZWQgdmlhIFNXIGFuZCByZWRpcmVjdGVkIGJ5CisgICAg
ICAgICAgICAgICAgICAvLyByZWRpcmVjdC5waHAuCisgICAgICAgICAgICAgICAgICBSRURJUkVD
VF9VUkwgKyAnP1JlZGlyZWN0PScgKyBlbmNvZGVVUklDb21wb25lbnQoSU1BR0VfVVJMKSksCisg
ICAgICAgICAgICAgICdXaGVuIHRoZSByZXF1ZXN0IHdhcyByZWRpcmVjdGVkIHZpYSBTVywgQ1NQ
IG1hdGNoIGFsZ29yaXRobSAnICsKKyAgICAgICAgICAgICAgJ3Nob3VsZCBpZ25vcmUgdGhlIHBh
dGggY29tcG9uZW50IG9mIHRoZSBVUkwuJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gYXNzZXJ0X3Jlc29sdmVzKAorICAgICAgICAgICAg
ICBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfaW1hZ2UoCisgICAgICAgICAgICAgICAgICAvLyBU
aGUgcmVxdWVzdCBmb3IgSU1BR0VfVVJMIHdpbGwgYmUgZmV0Y2hlZCBpbiBTVy4KKyAgICAgICAg
ICAgICAgICAgIFJFRElSRUNUX1VSTCArICc/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoSU1B
R0VfVVJMKSksCisgICAgICAgICAgICAgICdXaGVuIHRoZSByZXF1ZXN0IHdhcyBmZXRjaGVkIHZp
YSBTVywgQ1NQIG1hdGNoIGFsZ29yaXRobSAnICsKKyAgICAgICAgICAgICAgJ3Nob3VsZCBpZ25v
cmUgdGhlIHBhdGggY29tcG9uZW50IG9mIHRoZSBVUkwuJyk7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKKyAgICAgICAgfSk7
CiAgIH0sICdWZXJpZnkgQ1NQIGNvbnRyb2wgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2Vy
Jyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50
LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKaW5kZXggOTEyZTcwOWNhMzhmMmVi
NmZiYTdhM2EzNmJmNDY2NDk5ZjRkMTMwYi4uYTJiOTNhY2ZjNWIyNDBhMTQ4ZjA3YTMzYmQxYTBk
MmE2Y2E3NTcxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtYXN5
bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
ZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw1IEBACiA8IURP
Q1RZUEUgaHRtbD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdD4KQEAgLTE2LDYgKzE1LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxs
YmFjayhmdW5jdGlvbigpIHsgZnJhbWUucmVtb3ZlKCk7IH0pOwogICAgICAgICAgIHZhciBjaGFu
bmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CiAgICAgICAgICAgdmFyIHNhd19tZXNzYWdlID0g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgewogICAgICAgICAgICAgICBjaGFubmVsLnBv
cnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsgcmVzb2x2ZShlLmRhdGEpOyB9CkBAIC0yMyw3
ICsyMyw2IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgdmFyIHdvcmtl
ciA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxl
cjsKIAogICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0s
IFtjaGFubmVsLnBvcnQyXSk7Ci0gICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CiAgICAgICAgICAg
cmV0dXJuIHNhd19tZXNzYWdlOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24obWVz
c2FnZSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29y
ay1lcnJvci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtbmV0d29y
ay1lcnJvci5odHRwcy5odG1sCmluZGV4IGY2YTNkMDc3NmU1OWZiYmVkOGM3OTBiNTMzNTI3ODE5
MjhhYzk1MWYuLjI1NDkxOWU5MjMyN2FlZmQxNmViNTc4NTVmODMyMjFjYmU4ZDdlYTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LW5ldHdvcmstZXJyb3IuaHR0cHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9yLmh0
dHBzLmh0bWwKQEAgLTEsNyArMSw2IEBACiA8IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNl
IFdvcmtlcjogRmV0Y2ggZXZlbnQgbmV0d29yayBlcnJvcjwvdGl0bGU+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWRpcmVjdC5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVkaXJlY3QuaHR0cHMuaHRtbAppbmRleCAxN2Y0
Y2IxNWU4MGVkOTE1MDI0ZWNmNGE0NTI4ZTU0YzE2MzNmMzMzLi4yMjI3ZDM5MDFmOTc1MWY4MjU3
NDRlNzY2ZjczNDBiMzYyODg5ZWY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC1yZWRpcmVjdC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlZGlyZWN0Lmh0dHBzLmh0bWwKQEAgLTQsNyArNCw3IEBACiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgpAQCAtMjMs
NyArMjMsNyBAQCB2YXIgc3VjY2VzcyA9IGJhc2VfcGF0aCgpICsgJ3Jlc291cmNlcy9zdWNjZXNz
LnB5JzsKIAogZnVuY3Rpb24gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB0ZXN0KSB7CiAgIHZhciBz
Y29wZSA9IGJhc2VTY29wZSArIHRlc3QubmFtZTsKLSAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkudGhlbihmdW5jdGlvbihyZWcpIHsKKyAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlciwg
c2NvcGUpLnRoZW4oZnVuY3Rpb24ocmVnKSB7CiAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAg
ICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlICsgJz91cmw9JyArIGVuY29kZVVSSUNvbXBvbmVu
dChmcmFtZVVSTCkpOwpAQCAtMTAyLDggKzEwMiw4IEBAIGZ1bmN0aW9uIHJlZGlyZWN0X2ZldGNo
X3Rlc3QodCwgdGVzdCkgewogLy8gVE9ETzogdmVyaWZ5IENPUlMgcmVkaXJlY3QgcmVzdWx0cyBp
biBhbGwgZnVydGhlciByZWRpcmVjdHMgYmVpbmcKIC8vICAgICAgIGNvbnNpZGVyZWQgY3Jvc3Mg
b3JpZ2luCiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0
KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRj
aF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtbWFudWFsLWNvcnMtcmVkaXJlY3RzLXRvLXNh
bWVvcmlnaW4tbm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ3NhbWUtb3JpZ2luJywKICAg
ICB1cmxfY3JlZGVudGlhbHM6IGZhbHNlLApAQCAtMTIxLDggKzEyMSw4IEBAIGFzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgJ3NhbWUtb3JpZ2luIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxk
IGZhaWwgb3BhcXVlcmVkaXJlY3QgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBz
aG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0g
IHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
cmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1tYW51YWwt
Y29ycy1yZWRpcmVjdHMtdG8tbm9jb3JzLW5vY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6ICdu
by1jb3JzJywKICAgICB1cmxfY3JlZGVudGlhbHM6IGZhbHNlLApAQCAtMTQwLDggKzE0MCw4IEBA
IGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ25vLWNvcnMgd2l0aG91dCBjcmVkZW50aWFs
cyBzaG91bGQgZmFpbCBvcGFxdWVyZWRpcmVjdCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5kIHJl
c3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2
LW1hbnVhbC1jb3JzLXJlZGlyZWN0cy10by1jb3JzLW5vY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rl
c3Q6ICdjb3JzJywKICAgICB1cmxfY3JlZGVudGlhbHM6IGZhbHNlLApAQCAtMTU5LDggKzE1OSw4
IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ2NvcnMgd2l0aG91dCBjcmVkZW50aWFs
cyBzaG91bGQgZmFpbCBvcGFxdWVyZWRpcmVjdCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5kIHJl
c3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2
LW1hbnVhbC1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1zYW1lb3JpZ2luLW5vY3JlZHMnLAogICAg
IHJlZGlyZWN0X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiBmYWxz
ZSwKQEAgLTE3OCw4ICsxNzgsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICdzYW1l
LW9yaWdpbiB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIG9wYXF1ZXJlZGlyZWN0IGlu
dGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVk
Jyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQs
IHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90
ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtbWFudWFsLXNhbWVvcmlnaW4tcmVkaXJlY3RzLXRv
LW5vY29ycy1ub2NyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnbm8tY29ycycsCiAgICAgdXJs
X2NyZWRlbnRpYWxzOiBmYWxzZSwKQEAgLTE5Nyw4ICsxOTcsOCBAQCBhc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKICAgICduby1jb3JzIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgb3Bh
cXVlcmVkaXJlY3QgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90
IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0
X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJl
ZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1tYW51YWwtc2FtZW9yaWdp
bi1yZWRpcmVjdHMtdG8tY29ycy1ub2NyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnY29ycycs
CiAgICAgdXJsX2NyZWRlbnRpYWxzOiBmYWxzZSwKQEAgLTIxNiw4ICsyMTYsOCBAQCBhc3luY190
ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICdjb3JzIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxkIGZh
aWwgb3BhcXVlcmVkaXJlY3QgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91
bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJl
ZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0
dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1tYW51YWwtbm9j
b3JzLXJlZGlyZWN0cy10by1zYW1lb3JpZ2luLW5vY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6
ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiBmYWxzZSwKQEAgLTIzNSw4ICsy
MzUsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICdzYW1lLW9yaWdpbiB3aXRob3V0
IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIG9wYXF1ZXJlZGlyZWN0IGludGVyY2VwdGlvbiAnICsK
ICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAgICBu
YW1lOiAnbm9uYXYtbWFudWFsLW5vY29ycy1yZWRpcmVjdHMtdG8tbm9jb3JzLW5vY3JlZHMnLAog
ICAgIHJlZGlyZWN0X2Rlc3Q6ICduby1jb3JzJywKICAgICB1cmxfY3JlZGVudGlhbHM6IGZhbHNl
LApAQCAtMjUyLDggKzI1Miw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ25vLWNv
cnMgd2l0aG91dCBjcmVkZW50aWFscyBzaG91bGQgc3VjY2VlZCBpbnRlcmNlcHRpb24gJyArCiAg
ICAnYW5kIHJlc3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFt
ZTogJ25vbmF2LW1hbnVhbC1ub2NvcnMtcmVkaXJlY3RzLXRvLWNvcnMtbm9jcmVkcycsCiAgICAg
cmVkaXJlY3RfZGVzdDogJ2NvcnMnLAogICAgIHVybF9jcmVkZW50aWFsczogZmFsc2UsCkBAIC0y
NjksOCArMjY5LDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAnY29ycyB3aXRob3V0
IGNyZWRlbnRpYWxzIHNob3VsZCBzdWNjZWVkIGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVz
cG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYt
bWFudWFsLWNvcnMtcmVkaXJlY3RzLXRvLXNhbWVvcmlnaW4tY3JlZHMnLAogICAgIHJlZGlyZWN0
X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApAQCAtMjg4
LDggKzI4OCw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ3NhbWUtb3JpZ2luIHdp
dGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgb3BhcXVlcmVkaXJlY3QgaW50ZXJjZXB0aW9uICcg
KwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNf
dGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAg
IG5hbWU6ICdub25hdi1tYW51YWwtY29ycy1yZWRpcmVjdHMtdG8tbm9jb3JzLWNyZWRzJywKICAg
ICByZWRpcmVjdF9kZXN0OiAnbm8tY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApA
QCAtMzA3LDggKzMwNyw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ25vLWNvcnMg
d2l0aCBjcmVkZW50aWFscyBzaG91bGQgZmFpbCBvcGFxdWVyZWRpcmVjdCBpbnRlcmNlcHRpb24g
JyArCiAgICAnYW5kIHJlc3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAg
ICAgbmFtZTogJ25vbmF2LW1hbnVhbC1jb3JzLXJlZGlyZWN0cy10by1jb3JzLWNyZWRzJywKICAg
ICByZWRpcmVjdF9kZXN0OiAnY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApAQCAt
MzI2LDggKzMyNiw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ2NvcnMgd2l0aCBj
cmVkZW50aWFscyBzaG91bGQgZmFpbCBvcGFxdWVyZWRpcmVjdCBpbnRlcmNlcHRpb24gJyArCiAg
ICAnYW5kIHJlc3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFt
ZTogJ25vbmF2LW1hbnVhbC1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1zYW1lb3JpZ2luLWNyZWRz
JywKICAgICByZWRpcmVjdF9kZXN0OiAnc2FtZS1vcmlnaW4nLAogICAgIHVybF9jcmVkZW50aWFs
czogdHJ1ZSwKQEAgLTM0NSw4ICszNDUsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICdzYW1lLW9yaWdpbiB3aXRoIGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIG9wYXF1ZXJlZGlyZWN0
IGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVj
dGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0
KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRj
aF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtbWFudWFsLXNhbWVvcmlnaW4tcmVkaXJlY3Rz
LXRvLW5vY29ycy1jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ25vLWNvcnMnLAogICAgIHVy
bF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTM2NCw4ICszNjQsOCBAQCBhc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKICAgICduby1jb3JzIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgb3BhcXVl
cmVkaXJlY3QgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJl
IHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2Zl
dGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGly
ZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1tYW51YWwtc2FtZW9yaWdpbi1y
ZWRpcmVjdHMtdG8tY29ycy1jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ2NvcnMnLAogICAg
IHVybF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTM4Myw4ICszODMsOCBAQCBhc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICdjb3JzIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgb3BhcXVl
cmVkaXJlY3QgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJl
IHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2Zl
dGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGly
ZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1tYW51YWwtbm9jb3JzLXJlZGly
ZWN0cy10by1zYW1lb3JpZ2luLWNyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnc2FtZS1vcmln
aW4nLAogICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTQwMiw4ICs0MDIsOCBAQCBhc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICdzYW1lLW9yaWdpbiB3aXRoIGNyZWRlbnRpYWxzIHNo
b3VsZCBmYWlsIG9wYXF1ZXJlZGlyZWN0IGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9u
c2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtbWFu
dWFsLW5vY29ycy1yZWRpcmVjdHMtdG8tbm9jb3JzLWNyZWRzJywKICAgICByZWRpcmVjdF9kZXN0
OiAnbm8tY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApAQCAtNDE5LDggKzQxOSw4
IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ25vLWNvcnMgd2l0aCBjcmVkZW50aWFs
cyBzaG91bGQgc3VjY2VlZCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5kIHJlc3BvbnNlIHNob3Vs
ZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVk
aXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1
cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2LW1hbnVhbC1ub2Nv
cnMtcmVkaXJlY3RzLXRvLWNvcnMtY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6ICdjb3JzJywK
ICAgICB1cmxfY3JlZGVudGlhbHM6IHRydWUsCkBAIC00MzYsOCArNDM2LDggQEAgYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAnY29ycyB3aXRoIGNyZWRlbnRpYWxzIHNob3VsZCBzdWNjZWVk
IGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVj
dGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0
KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRj
aF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtZm9sbG93LWNvcnMtcmVkaXJlY3RzLXRvLXNh
bWVvcmlnaW4tbm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ3NhbWUtb3JpZ2luJywKICAg
ICB1cmxfY3JlZGVudGlhbHM6IGZhbHNlLApAQCAtNDUzLDggKzQ1Myw4IEBAIGFzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgJ3NhbWUtb3JpZ2luIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxk
IHN1Y2NlZWQgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgYmUgcmVk
aXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hf
dGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3Rf
ZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2LWZvbGxvdy1jb3JzLXJlZGlyZWN0cy10
by1ub2NvcnMtbm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ25vLWNvcnMnLAogICAgIHVy
bF9jcmVkZW50aWFsczogZmFsc2UsCkBAIC00NzIsOCArNDcyLDggQEAgYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CiAgICAnbm8tY29ycyB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIGlu
dGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVk
Jyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQs
IHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90
ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtZm9sbG93LWNvcnMtcmVkaXJlY3RzLXRvLWNvcnMt
bm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ2NvcnMnLAogICAgIHVybF9jcmVkZW50aWFs
czogZmFsc2UsCkBAIC00ODksOCArNDg5LDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAnY29ycyB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBzdWNjZWVkIGludGVyY2VwdGlvbiAn
ICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5h
bWU6ICdub25hdi1mb2xsb3ctc2FtZW9yaWdpbi1yZWRpcmVjdHMtdG8tc2FtZW9yaWdpbi1ub2Ny
ZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnc2FtZS1vcmlnaW4nLAogICAgIHVybF9jcmVkZW50
aWFsczogZmFsc2UsCkBAIC01MDYsOCArNTA2LDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAnc2FtZS1vcmlnaW4gd2l0aG91dCBjcmVkZW50aWFscyBzaG91bGQgc3VjY2VlZCBpbnRl
cmNlcHRpb24gJyArCiAgICAnYW5kIHJlc3BvbnNlIHNob3VsZCBiZSByZWRpcmVjdGVkJyk7CiAK
LWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3By
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQs
IHsKICAgICBuYW1lOiAnbm9uYXYtZm9sbG93LXNhbWVvcmlnaW4tcmVkaXJlY3RzLXRvLW5vY29y
cy1ub2NyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnbm8tY29ycycsCiAgICAgdXJsX2NyZWRl
bnRpYWxzOiBmYWxzZSwKQEAgLTUyNSw4ICs1MjUsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICduby1jb3JzIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0
aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAot
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwg
ewogICAgIG5hbWU6ICdub25hdi1mb2xsb3ctc2FtZW9yaWdpbi1yZWRpcmVjdHMtdG8tY29ycy1u
b2NyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxz
OiBmYWxzZSwKQEAgLTU0NCw4ICs1NDQsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICdjb3JzIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0aW9uICcgKwog
ICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5h
bWU6ICdub25hdi1mb2xsb3ctbm9jb3JzLXJlZGlyZWN0cy10by1zYW1lb3JpZ2luLW5vY3JlZHMn
LAogICAgIHJlZGlyZWN0X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRpYWxz
OiBmYWxzZSwKQEAgLTU2MSw4ICs1NjEsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICdzYW1lLW9yaWdpbiB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBzdWNjZWVkIGludGVyY2Vw
dGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewog
ICAgIG5hbWU6ICdub25hdi1mb2xsb3ctbm9jb3JzLXJlZGlyZWN0cy10by1ub2NvcnMtbm9jcmVk
cycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ25vLWNvcnMnLAogICAgIHVybF9jcmVkZW50aWFsczog
ZmFsc2UsCkBAIC01NzgsOCArNTc4LDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAn
bm8tY29ycyB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBzdWNjZWVkIGludGVyY2VwdGlvbiAn
ICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAg
ICBuYW1lOiAnbm9uYXYtZm9sbG93LW5vY29ycy1yZWRpcmVjdHMtdG8tY29ycy1ub2NyZWRzJywK
ICAgICByZWRpcmVjdF9kZXN0OiAnY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiBmYWxzZSwK
QEAgLTU5NSw4ICs1OTUsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICdjb3JzIHdp
dGhvdXQgY3JlZGVudGlhbHMgc2hvdWxkIHN1Y2NlZWQgaW50ZXJjZXB0aW9uICcgKwogICAgJ2Fu
ZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdu
b25hdi1mb2xsb3ctY29ycy1yZWRpcmVjdHMtdG8tc2FtZW9yaWdpbi1jcmVkcycsCiAgICAgcmVk
aXJlY3RfZGVzdDogJ3NhbWUtb3JpZ2luJywKICAgICB1cmxfY3JlZGVudGlhbHM6IHRydWUsCkBA
IC02MTIsOCArNjEyLDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAnc2FtZS1vcmln
aW4gd2l0aCBjcmVkZW50aWFscyBzaG91bGQgc3VjY2VlZCBpbnRlcmNlcHRpb24gJyArCiAgICAn
YW5kIHJlc3BvbnNlIHNob3VsZCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9u
YXYtZm9sbG93LWNvcnMtcmVkaXJlY3RzLXRvLW5vY29ycy1jcmVkcycsCiAgICAgcmVkaXJlY3Rf
ZGVzdDogJ25vLWNvcnMnLAogICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTYzMSw4ICs2
MzEsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICduby1jb3JzIHdpdGggY3JlZGVu
dGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91
bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJl
ZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0
dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1mb2xsb3ctY29y
cy1yZWRpcmVjdHMtdG8tY29ycy1jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ2NvcnMnLAog
ICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTY1MSw4ICs2NTEsOCBAQCBhc3luY190ZXN0
KGZ1bmN0aW9uKHQpIHsKICAgICdjb3JzIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50
ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgYmUgcmVkaXJlY3RlZCcpOwog
Ci1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0
LCB7CiAgICAgbmFtZTogJ25vbmF2LWZvbGxvdy1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1zYW1l
b3JpZ2luLWNyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnc2FtZS1vcmlnaW4nLAogICAgIHVy
bF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTY2OCw4ICs2NjgsOCBAQCBhc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKICAgICdzYW1lLW9yaWdpbiB3aXRoIGNyZWRlbnRpYWxzIHNob3VsZCBzdWNjZWVk
IGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIGJlIHJlZGlyZWN0ZWQn
KTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwg
eworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rl
c3QodCwgewogICAgIG5hbWU6ICdub25hdi1mb2xsb3ctc2FtZW9yaWdpbi1yZWRpcmVjdHMtdG8t
bm9jb3JzLWNyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnbm8tY29ycycsCiAgICAgdXJsX2Ny
ZWRlbnRpYWxzOiB0cnVlLApAQCAtNjg3LDggKzY4Nyw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgewogICAgJ25vLWNvcnMgd2l0aCBjcmVkZW50aWFscyBzaG91bGQgZmFpbCBpbnRlcmNlcHRp
b24gJyArCiAgICAnYW5kIHJlc3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1h
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7
CiAgICAgbmFtZTogJ25vbmF2LWZvbGxvdy1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1jb3JzLWNy
ZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0
cnVlLApAQCAtNzA2LDggKzcwNiw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ2Nv
cnMgd2l0aCBjcmVkZW50aWFscyBzaG91bGQgZmFpbCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5k
IHJlc3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25v
bmF2LWZvbGxvdy1ub2NvcnMtcmVkaXJlY3RzLXRvLXNhbWVvcmlnaW4tY3JlZHMnLAogICAgIHJl
ZGlyZWN0X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApA
QCAtNzIzLDggKzcyMyw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ3NhbWUtb3Jp
Z2luIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIHN1Y2NlZWQgaW50ZXJjZXB0aW9uICcgKwogICAg
J2FuZCByZXNwb25zZSBzaG91bGQgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25v
bmF2LWZvbGxvdy1ub2NvcnMtcmVkaXJlY3RzLXRvLW5vY29ycy1jcmVkcycsCiAgICAgcmVkaXJl
Y3RfZGVzdDogJ25vLWNvcnMnLAogICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTc0MCw4
ICs3NDAsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICduby1jb3JzIHdpdGggY3Jl
ZGVudGlhbHMgc2hvdWxkIHN1Y2NlZWQgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25z
ZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1mb2xs
b3ctbm9jb3JzLXJlZGlyZWN0cy10by1jb3JzLWNyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAn
Y29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApAQCAtNzU3LDggKzc1Nyw4IEBAIGFz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ2NvcnMgd2l0aCBjcmVkZW50aWFscyBzaG91bGQg
c3VjY2VlZCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5kIHJlc3BvbnNlIHNob3VsZCBub3QgYmUg
cmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0
Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJl
Y3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2LWVycm9yLWNvcnMtcmVkaXJlY3Rz
LXRvLXNhbWVvcmlnaW4tbm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ3NhbWUtb3JpZ2lu
JywKICAgICB1cmxfY3JlZGVudGlhbHM6IGZhbHNlLApAQCAtNzc2LDggKzc3Niw4IEBAIGFzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ3NhbWUtb3JpZ2luIHdpdGhvdXQgY3JlZGVudGlhbHMg
c2hvdWxkIGZhaWwgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90
IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0
X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJl
ZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1lcnJvci1jb3JzLXJlZGly
ZWN0cy10by1ub2NvcnMtbm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ25vLWNvcnMnLAog
ICAgIHVybF9jcmVkZW50aWFsczogZmFsc2UsCkBAIC03OTUsOCArNzk1LDggQEAgYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAnbm8tY29ycyB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBm
YWlsIGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRp
cmVjdGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90
ZXN0KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9m
ZXRjaF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtZXJyb3ItY29ycy1yZWRpcmVjdHMtdG8t
Y29ycy1ub2NyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnY29ycycsCiAgICAgdXJsX2NyZWRl
bnRpYWxzOiBmYWxzZSwKQEAgLTgxNCw4ICs4MTQsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICdjb3JzIHdpdGhvdXQgY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0aW9u
ICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewog
ICAgIG5hbWU6ICdub25hdi1lcnJvci1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1zYW1lb3JpZ2lu
LW5vY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2Ny
ZWRlbnRpYWxzOiBmYWxzZSwKQEAgLTgzMyw4ICs4MzMsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICdzYW1lLW9yaWdpbiB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIGlu
dGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVk
Jyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQs
IHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90
ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtZXJyb3Itc2FtZW9yaWdpbi1yZWRpcmVjdHMtdG8t
bm9jb3JzLW5vY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6ICduby1jb3JzJywKICAgICB1cmxf
Y3JlZGVudGlhbHM6IGZhbHNlLApAQCAtODUyLDggKzg1Miw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgJ25vLWNvcnMgd2l0aG91dCBjcmVkZW50aWFscyBzaG91bGQgZmFpbCBpbnRl
cmNlcHRpb24gJyArCiAgICAnYW5kIHJlc3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcp
OwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7
Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVz
dCh0LCB7CiAgICAgbmFtZTogJ25vbmF2LWVycm9yLXNhbWVvcmlnaW4tcmVkaXJlY3RzLXRvLWNv
cnMtbm9jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ2NvcnMnLAogICAgIHVybF9jcmVkZW50
aWFsczogZmFsc2UsCkBAIC04NzEsOCArODcxLDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
CiAgICAnY29ycyB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIGludGVyY2VwdGlvbiAn
ICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAg
ICBuYW1lOiAnbm9uYXYtZXJyb3Itbm9jb3JzLXJlZGlyZWN0cy10by1zYW1lb3JpZ2luLW5vY3Jl
ZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRp
YWxzOiBmYWxzZSwKQEAgLTg5MCw4ICs4OTAsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICdzYW1lLW9yaWdpbiB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIGludGVyY2Vw
dGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAK
LWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3By
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQs
IHsKICAgICBuYW1lOiAnbm9uYXYtZXJyb3Itbm9jb3JzLXJlZGlyZWN0cy10by1ub2NvcnMtbm9j
cmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ25vLWNvcnMnLAogICAgIHVybF9jcmVkZW50aWFs
czogZmFsc2UsCkBAIC05MDksOCArOTA5LDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAg
ICAnbm8tY29ycyB3aXRob3V0IGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIGludGVyY2VwdGlvbiAn
ICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAg
ICBuYW1lOiAnbm9uYXYtZXJyb3Itbm9jb3JzLXJlZGlyZWN0cy10by1jb3JzLW5vY3JlZHMnLAog
ICAgIHJlZGlyZWN0X2Rlc3Q6ICdjb3JzJywKICAgICB1cmxfY3JlZGVudGlhbHM6IGZhbHNlLApA
QCAtOTI4LDggKzkyOCw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ2NvcnMgd2l0
aG91dCBjcmVkZW50aWFscyBzaG91bGQgZmFpbCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5kIHJl
c3BvbnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgeworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2
LWVycm9yLWNvcnMtcmVkaXJlY3RzLXRvLXNhbWVvcmlnaW4tY3JlZHMnLAogICAgIHJlZGlyZWN0
X2Rlc3Q6ICdzYW1lLW9yaWdpbicsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0cnVlLApAQCAtOTQ3
LDggKzk0Nyw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ3NhbWUtb3JpZ2luIHdp
dGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNw
b25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6ICdub25hdi1l
cnJvci1jb3JzLXJlZGlyZWN0cy10by1ub2NvcnMtY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6
ICduby1jb3JzJywKICAgICB1cmxfY3JlZGVudGlhbHM6IHRydWUsCkBAIC05NjYsOCArOTY2LDgg
QEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAnbm8tY29ycyB3aXRoIGNyZWRlbnRpYWxz
IHNob3VsZCBmYWlsIGludGVyY2VwdGlvbiAnICsKICAgICdhbmQgcmVzcG9uc2Ugc2hvdWxkIG5v
dCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICByZWRpcmVj
dF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHJldHVybiBy
ZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAgICBuYW1lOiAnbm9uYXYtZXJyb3ItY29ycy1yZWRp
cmVjdHMtdG8tY29ycy1jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDogJ2NvcnMnLAogICAgIHVy
bF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTk4NSw4ICs5ODUsOCBAQCBhc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKICAgICdjb3JzIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0
aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAot
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwg
ewogICAgIG5hbWU6ICdub25hdi1lcnJvci1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1zYW1lb3Jp
Z2luLWNyZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnc2FtZS1vcmlnaW4nLAogICAgIHVybF9j
cmVkZW50aWFsczogdHJ1ZSwKQEAgLTEwMDQsOCArMTAwNCw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgJ3NhbWUtb3JpZ2luIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50
ZXJjZXB0aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQn
KTsKIAotYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwg
eworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rl
c3QodCwgewogICAgIG5hbWU6ICdub25hdi1lcnJvci1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1u
b2NvcnMtY3JlZHMnLAogICAgIHJlZGlyZWN0X2Rlc3Q6ICduby1jb3JzJywKICAgICB1cmxfY3Jl
ZGVudGlhbHM6IHRydWUsCkBAIC0xMDIzLDggKzEwMjMsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKICAgICduby1jb3JzIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0
aW9uICcgKwogICAgJ2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAot
YXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwg
ewogICAgIG5hbWU6ICdub25hdi1lcnJvci1zYW1lb3JpZ2luLXJlZGlyZWN0cy10by1jb3JzLWNy
ZWRzJywKICAgICByZWRpcmVjdF9kZXN0OiAnY29ycycsCiAgICAgdXJsX2NyZWRlbnRpYWxzOiB0
cnVlLApAQCAtMTA0Miw4ICsxMDQyLDggQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAn
Y29ycyB3aXRoIGNyZWRlbnRpYWxzIHNob3VsZCBmYWlsIGludGVyY2VwdGlvbiAnICsKICAgICdh
bmQgcmVzcG9uc2Ugc2hvdWxkIG5vdCBiZSByZWRpcmVjdGVkJyk7CiAKLWFzeW5jX3Rlc3QoZnVu
Y3Rpb24odCkgewotICByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKK3Byb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7CisgIHJldHVybiByZWRpcmVjdF9mZXRjaF90ZXN0KHQsIHsKICAgICBuYW1lOiAn
bm9uYXYtZXJyb3Itbm9jb3JzLXJlZGlyZWN0cy10by1zYW1lb3JpZ2luLWNyZWRzJywKICAgICBy
ZWRpcmVjdF9kZXN0OiAnc2FtZS1vcmlnaW4nLAogICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwK
QEAgLTEwNjEsOCArMTA2MSw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ3NhbWUt
b3JpZ2luIHdpdGggY3JlZGVudGlhbHMgc2hvdWxkIGZhaWwgaW50ZXJjZXB0aW9uICcgKwogICAg
J2FuZCByZXNwb25zZSBzaG91bGQgbm90IGJlIHJlZGlyZWN0ZWQnKTsKIAotYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7Ci0gIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgeworcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgcmV0dXJuIHJlZGlyZWN0X2ZldGNoX3Rlc3QodCwgewogICAgIG5hbWU6
ICdub25hdi1lcnJvci1ub2NvcnMtcmVkaXJlY3RzLXRvLW5vY29ycy1jcmVkcycsCiAgICAgcmVk
aXJlY3RfZGVzdDogJ25vLWNvcnMnLAogICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwKQEAgLTEw
ODAsOCArMTA4MCw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgJ25vLWNvcnMgd2l0
aCBjcmVkZW50aWFscyBzaG91bGQgZmFpbCBpbnRlcmNlcHRpb24gJyArCiAgICAnYW5kIHJlc3Bv
bnNlIHNob3VsZCBub3QgYmUgcmVkaXJlY3RlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKLSAgcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
eworICByZXR1cm4gcmVkaXJlY3RfZmV0Y2hfdGVzdCh0LCB7CiAgICAgbmFtZTogJ25vbmF2LWVy
cm9yLW5vY29ycy1yZWRpcmVjdHMtdG8tY29ycy1jcmVkcycsCiAgICAgcmVkaXJlY3RfZGVzdDog
J2NvcnMnLAogICAgIHVybF9jcmVkZW50aWFsczogdHJ1ZSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWI2N2ZhY2NhYzhiYWZmODFiYmZmZDk1ZTNjMzM1ZDAyY2NkZjIxNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGljeS5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsMjY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIg
d29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC1ldmVudC10ZXN0LXdvcmtlci5qcyc7CisKK2Z1bmN0
aW9uIHJ1bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHJlZmVycmVyLCBocmVmLCBvcmln
aW4pIHsKKyAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgncmVzb3VyY2VzL3Np
bXBsZS5odG1sP3JlZmVycmVyRnVsbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAge21ldGhvZDogIkdFVCIsIHJlZmVycmVyOiByZWZlcnJlcn0pCisgICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQorICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisg
ICAgICAgICAgICByZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJl
ZiArICdcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZScsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQg
dG8gZmV0Y2ggd2l0aCB0aGUgcmVmZXJyZXIgVVJMIHdoZW4gYSBtZW1iZXIgb2YgUmVxdWVzdElu
aXQgaXMgcHJlc2VudCcpOworICAgICAgICAgIHZhciBodHRwX3VybCA9IGdldF9ob3N0X2luZm8o
KVsnSFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnOworICAgICAgICAgIHJldHVy
biBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJsLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICJHRVQiLCByZWZlcnJlcjogcmVmZXJy
ZXJ9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVy
biByZXNwb25zZS50ZXh0KCk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0
KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIHJlc3BvbnNlX3RleHQs
CisgICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCisgICAgICAgICAgICAnUmVmZXJyZXJQb2xp
Y3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKKyAgICAgICAgICAgICdTZXJ2aWNlIFdv
cmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIG5vIHJlZmVycmVyIHdoZW4gYSBtZW1i
ZXIgb2YgUmVxdWVzdEluaXQgaXMgcHJlc2VudCB3aXRoIGFuIEhUVFAgcmVxdWVzdCcpOworICAg
ICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKCdyZXNvdXJjZXMvc2ltcGxl
Lmh0bWw/cmVmZXJyZXJGdWxsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7cmVmZXJyZXJQb2xpY3k6ICIiLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50
ZXh0KCk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCisgICAgICAgICAg
ICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCisgICAgICAgICAgICAnUmVmZXJyZXJQb2xp
Y3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKKyAgICAgICAgICAgICdTZXJ2aWNlIFdv
cmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRoZSByZWZlcnJlciB3aXRoICIiJyk7
CisgICAgICAgICAgdmFyIGh0dHBfdXJsID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQX09SSUdJTidd
ICsgYmFzZV9wYXRoKCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICcvcmVzb3VyY2VzL3Np
bXBsZS5odG1sP3JlZmVycmVyRnVsbCc7CisgICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRX
aW5kb3cuZmV0Y2goaHR0cF91cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAge3JlZmVycmVyUG9saWN5OiAiIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7CisgICAg
ICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2Uu
dGV4dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgeworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAorICAgICAgICAg
ICAgJ1JlZmVycmVyOiBcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZScsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxk
IHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCBubyByZWZlcnJlciB3aXRoICIiJyk7CisgICAgICAgICAg
cmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9y
ZWZlcnJlckZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHtyZWZlcnJlclBvbGljeTogIm9yaWdpbiIsIHJlZmVycmVyOiByZWZlcnJlcn0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRl
eHQoKTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwKKyAgICAgICAgICAg
ICdSZWZlcnJlcjogJyArIG9yaWdpbiArICcvJyArICdcbicgKworICAgICAgICAgICAgJ1JlZmVy
cmVyUG9saWN5OiBvcmlnaW4nLAorICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCBy
ZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIHJlZmVycmVyIG9yaWdpbiB3aXRoICJvcmlnaW4iIGFu
ZCBhIHNhbWUgb3JpZ2luIHJlcXVlc3QnKTsKKyAgICAgICAgICB2YXIgaHR0cF91cmwgPSBnZXRf
aG9zdF9pbmZvKClbJ0hUVFBfT1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJy9yZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJzsKKyAgICAg
ICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChodHRwX3VybCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVmZXJyZXJQb2xpY3k6ICJvcmln
aW4iLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCisgICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZV90ZXh0KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAg
ICAgICAgIHJlc3BvbnNlX3RleHQsCisgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBvcmlnaW4g
KyAnLycgKyAnXG4nICsKKyAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogb3JpZ2luJywKKyAg
ICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRo
ZSByZWZlcnJlciBvcmlnaW4gd2l0aCAib3JpZ2luIiBhbmQgYSBjcm9zcyBvcmlnaW4gcmVxdWVz
dCcpOworICAgICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKCdyZXNvdXJj
ZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7cmVmZXJyZXJQb2xpY3k6ICJvcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4iLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCisgICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZV90ZXh0KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAg
ICAgICAgIHJlc3BvbnNlX3RleHQsCisgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBocmVmICsg
J1xuJyArCisgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbicsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0
Y2ggd2l0aCB0aGUgcmVmZXJyZXIgVVJMIHdpdGggIm9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIg
YW5kIGEgc2FtZSBvcmlnaW4gcmVxdWVzdCcpOworICAgICAgICAgIHZhciBodHRwX3VybCA9IGdl
dF9ob3N0X2luZm8oKVsnSFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnOworICAg
ICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJsLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJlclBvbGljeTogIm9y
aWdpbi13aGVuLWNyb3NzLW9yaWdpbiIsIHJlZmVycmVyOiByZWZlcnJlcn0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQo
KTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCwKKyAgICAgICAgICAgICdS
ZWZlcnJlcjogJyArIG9yaWdpbiArICcvJyArICdcbicgKworICAgICAgICAgICAgJ1JlZmVycmVy
UG9saWN5OiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLAorICAgICAgICAgICAgJ1NlcnZpY2Ug
V29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIHJlZmVycmVyIG9yaWdpbiB3
aXRoICJvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iIGFuZCBhIGNyb3NzIG9yaWdpbiByZXF1ZXN0
Jyk7CisgICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNl
cy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtyZWZlcnJlclBvbGljeTogIm5vLXJlZmVycmVyLXdoZW4tZG93bmdy
YWRlIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAg
ICAgICAgICByZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiAr
ICdcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZScsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8g
ZmV0Y2ggd2l0aCBubyByZWZlcnJlciB3aXRoICJuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIg
YW5kIGEgc2FtZSBvcmlnaW4gcmVxdWVzdCcpOworICAgICAgICAgIHZhciBodHRwX3VybCA9IGdl
dF9ob3N0X2luZm8oKVsnSFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnOworICAg
ICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJsLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJlclBvbGljeTogIm5v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4
dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgeworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAorICAgICAgICAgICAg
J1JlZmVycmVyOiBcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZScsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJl
c3BvbmQgdG8gZmV0Y2ggd2l0aCBubyByZWZlcnJlciB3aXRoICJuby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZSIgYW5kIGFuIEhUVFAgcmVxdWVzdCcpOworICAgICAgICAgIHZhciBodHRwX3VybCA9
IGdldF9ob3N0X2luZm8oKVsnSFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnOwor
ICAgICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJsLCB7cmVm
ZXJyZXJQb2xpY3k6ICJ1bnNhZmUtdXJsIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4
dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgeworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAorICAgICAgICAgICAg
J1JlZmVycmVyOiAnICsgaHJlZiArICdcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5
OiB1bnNhZmUtdXJsJywKKyAgICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9u
ZCB0byBmZXRjaCB3aXRoIG5vIHJlZmVycmVyIHdpdGggInVuc2FmZS11cmwiJyk7CisgICAgICAg
ICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNlcy9zaW1wbGUuaHRt
bD9yZWZlcnJlckZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHtyZWZlcnJlclBvbGljeTogIm5vLXJlZmVycmVyIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7
CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVz
cG9uc2UudGV4dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAorICAg
ICAgICAgICAgJ1JlZmVycmVyOiBcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBu
by1yZWZlcnJlcicsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQg
dG8gZmV0Y2ggd2l0aCBubyByZWZlcnJlciBVUkwgd2l0aCAibm8tcmVmZXJyZXIiJyk7CisgICAg
ICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNlcy9zaW1wbGUu
aHRtbD9yZWZlcnJlckZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHtyZWZlcnJlclBvbGljeTogInNhbWUtb3JpZ2luIiwgcmVmZXJyZXI6IHJlZmVycmVy
fSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4g
cmVzcG9uc2UudGV4dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkg
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAor
ICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgaHJlZiArICdcbicgKworICAgICAgICAgICAgJ1Jl
ZmVycmVyUG9saWN5OiBzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIg
c2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCByZWZlcnJlciBVUkwgd2l0aCAic2FtZS1vcmln
aW4iIGFuZCBhIHNhbWUgb3JpZ2luIHJlcXVlc3QnKTsKKyAgICAgICAgICB2YXIgaHR0cF91cmwg
PSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJl
ckZ1bGwnOworICAgICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBf
dXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJl
clBvbGljeTogInNhbWUtb3JpZ2luIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgp
OyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgeworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgJ1Jl
ZmVycmVyOiBcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBzYW1lLW9yaWdpbics
CisgICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0
aCBubyByZWZlcnJlciB3aXRoICJzYW1lLW9yaWdpbiIgYW5kIGNyb3NzIG9yaWdpbiByZXF1ZXN0
Jyk7CisgICAgICAgICAgdmFyIGh0dHBfdXJsID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1P
VEVfT1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgJy9y
ZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJzsKKyAgICAgICAgICByZXR1cm4gZnJh
bWUuY29udGVudFdpbmRvdy5mZXRjaChodHRwX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7cmVmZXJyZXJQb2xpY3k6ICJzdHJpY3Qtb3JpZ2luIiwgcmVm
ZXJyZXI6IHJlZmVycmVyfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNw
b25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVzcG9uc2VfdGV4dCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICBy
ZXNwb25zZV90ZXh0LAorICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8nICsg
J1xuJyArCisgICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4nLAorICAg
ICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhl
IHJlZmVycmVyIG9yaWdpbiAgd2l0aCAic3RyaWN0LW9yaWdpbiIgYW5kIGEgSFRUUFMgY3Jvc3Mg
b3JpZ2luIHJlcXVlc3QnKTsKKyAgICAgICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5m
ZXRjaCgncmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlZmVycmVyUG9saWN5OiAic3RyaWN0LW9y
aWdpbiIsIHJlZmVycmVyOiByZWZlcnJlcn0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAg
ICAgICAgICAgcmVzcG9uc2VfdGV4dCwKKyAgICAgICAgICAgICdSZWZlcnJlcjogJyArIG9yaWdp
biArICcvJyArICdcbicgKworICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBzdHJpY3Qtb3Jp
Z2luJywKKyAgICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRj
aCB3aXRoIHRoZSByZWZlcnJlciBvcmlnaW4gd2l0aCAic3RyaWN0LW9yaWdpbiIgYW5kIGEgc2Ft
ZSBvcmlnaW4gcmVxdWVzdCcpOworICAgICAgICAgIHZhciBodHRwX3VybCA9IGdldF9ob3N0X2lu
Zm8oKVsnSFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnOworICAgICAgICAgIHJl
dHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJlclBvbGljeTogInN0cmljdC1vcmln
aW4iLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCisgICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZV90ZXh0KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAg
ICAgICAgIHJlc3BvbnNlX3RleHQsCisgICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCisgICAg
ICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4nLAorICAgICAgICAgICAgJ1Nl
cnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggbm8gcmVmZXJyZXIgd2l0
aCAic3RyaWN0LW9yaWdpbiIgYW5kIGEgSFRUUCByZXF1ZXN0Jyk7CisgICAgICAgICAgcmV0dXJu
IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJl
ckZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZl
cnJlclBvbGljeTogInN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCByZWZlcnJlcjog
cmVmZXJyZXJ9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7
IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25z
ZV90ZXh0KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIHJlc3BvbnNl
X3RleHQsCisgICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCisgICAgICAg
ICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLAor
ICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGgg
dGhlIHJlZmVycmVyIFVSTCB3aXRoICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBh
bmQgYSBzYW1lIG9yaWdpbiByZXF1ZXN0Jyk7CisgICAgICAgICAgdmFyIGh0dHBfdXJsID0gZ2V0
X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJy9yZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxs
JzsKKyAgICAgICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChodHRwX3VybCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVmZXJyZXJQb2xp
Y3k6ICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiwgcmVmZXJyZXI6IHJlZmVycmVy
fSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4g
cmVzcG9uc2UudGV4dCgpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkg
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICByZXNwb25zZV90ZXh0LAor
ICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsgb3JpZ2luICsgJy8nICsgJ1xuJyArCisgICAgICAg
ICAgICAnUmVmZXJyZXJQb2xpY3k6IHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLAor
ICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGgg
dGhlIHJlZmVycmVyIG9yaWdpbiB3aXRoICJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IiBhbmQgYSBIVFRQUyBjcm9zcyBvcmlnaW4gcmVxdWVzdCcpOworICAgICAgICAgIHZhciBodHRw
X3VybCA9IGdldF9ob3N0X2luZm8oKVsnSFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAnL3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1
bGwnOworICAgICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJlclBv
bGljeTogInN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iLCByZWZlcnJlcjogcmVmZXJy
ZXJ9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVy
biByZXNwb25zZS50ZXh0KCk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0
KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIHJlc3BvbnNlX3RleHQs
CisgICAgICAgICAgICAnUmVmZXJyZXI6IFxuJyArCisgICAgICAgICAgICAnUmVmZXJyZXJQb2xp
Y3k6IHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4nLAorICAgICAgICAgICAgJ1NlcnZp
Y2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggbm8gcmVmZXJyZXIgd2l0aCAi
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIgYW5kIGEgSFRUUCByZXF1ZXN0Jyk7Cisg
ICAgICAgIH0pOworfQorCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUg
PSAncmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyUG9saWN5JzsKKyAgICB2YXIgZnJhbWU7
CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBz
Y29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgeworICAgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7IH0pCisg
ICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgICAgZnJhbWUgPSBmOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICBmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS50
ZXh0Q29udGVudCwKKyAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUnLAorICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25k
IHRvIGZldGNoIHdpdGggdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5Jyk7CisgICAgICAgICAg
Ly8gRmlyc3QsIHJ1biB0aGUgcmVmZXJyZXIgcG9saWN5IHRlc3RzIHdpdGhvdXQgcGFzc2luZyBh
IHJlZmVycmVyIGluIFJlcXVlc3RJbml0LgorICAgICAgICAgIHJldHVybiBydW5fcmVmZXJyZXJf
cG9saWN5X3Rlc3RzKGZyYW1lLCB1bmRlZmluZWQsIGZyYW1lLmNvbnRlbnREb2N1bWVudC5sb2Nh
dGlvbi5ocmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
YW1lLmNvbnRlbnREb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgLy8gTm93LCBydW4gdGhlIHJlZmVycmVyIHBv
bGljeSB0ZXN0cyB3aGlsZSBwYXNzaW5nIGEgcmVmZXJyZXIgaW4gUmVxdWVzdEluaXQuCisgICAg
ICAgICAgdmFyIHJlZmVycmVyID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19PUklHSU4nXSArIGJh
c2VfcGF0aCgpICsgJ2Zha2UtcmVmZXJyZXInOworICAgICAgICAgIHJldHVybiBydW5fcmVmZXJy
ZXJfcG9saWN5X3Rlc3RzKGZyYW1lLCAnZmFrZS1yZWZlcnJlcicsIHJlZmVycmVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVu
dC5sb2NhdGlvbi5vcmlnaW4pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNh
dGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnU2VydmljZSBXb3JrZXIgcmVzcG9u
ZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCB0aGUgcmVmZXJyZXIgcG9saWN5Jyk7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVz
cG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1l
dmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzhmYjc4
NGEyZjdlNDEzNWMyYjQ0MjkwODJkYzE1N2Q5MzAwZmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3Jr
ZXI6IEZldGNoRXZlbnQucmVzcG9uZFdpdGgoKSBhcmd1bWVudCB0eXBlIHRlc3QuPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordmFyIHJlc29sdmVfdGVzdF9kb25lOworCit2YXIgdGVzdF9kb25lX3Byb21pc2UgPSBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgcmVzb2x2ZV90ZXN0X2RvbmUgPSByZXNv
bHZlOworICB9KTsKKworLy8gQ2FsbGVkIGJ5IHRoZSBjaGlsZCBmcmFtZS4KK2Z1bmN0aW9uIG5v
dGlmeV90ZXN0X2RvbmUocmVzdWx0KSB7CisgIHJlc29sdmVfdGVzdF9kb25lKHJlc3VsdCk7Cit9
CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNl
cy9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQtaWZyYW1lLmh0bWwnOworICAgIHZh
ciBzY3JpcHQgPSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC13
b3JrZXIuanMnOworICAgIHZhciBmcmFtZTsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1l
ID0gZjsKKyAgICAgICAgICByZXR1cm4gdGVzdF9kb25lX3Byb21pc2U7CisgICAgICAgIH0pCisg
ICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ1BBU1MnKTsKKyAgICAgICAgICByZXR1
cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
IH0pOworICB9LCAncmVzcG9uZFdpdGgoKSB0YWtlcyBlaXRoZXIgYSBSZXNwb25zZSBvciBhIHBy
b21pc2UgdGhhdCByZXNvbHZlcyAnICsKKyAgICAgJ3dpdGggYSBSZXNwb25zZS4gT3RoZXIgdmFs
dWVzIHNob3VsZCByYWlzZSBhIG5ldHdvcmsgZXJyb3IuJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1yZWFkYWJsZS1z
dHJlYW0uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQt
d2l0aC1yZWFkYWJsZS1zdHJlYW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNWFmYjZiYzBmZTEx
ZTllYmNmNmM0NjRjMTdlYTEwODlmMGRjODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXJlYWRhYmxlLXN0cmVhbS5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPnJlc3BvbmRXaXRoIHdpdGggYSByZXNwb25zZSBidWlsdCBmcm9tIGEgUmVh
ZGFibGVTdHJlYW08L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2NvbnN0IFdPUktFUiA9Cisg
ICdyZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXJlYWRhYmxlLXN0cmVhbS13b3Jr
ZXIuanMnOworY29uc3QgU0NPUEUgPQorICAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQt
d2l0aC1yZWFkYWJsZS1zdHJlYW0taWZyYW1lLmh0bWwnOworLy8gQ2FsbGVkIGJ5IHRoZSBpZnJh
bWUgd2hlbiBkb25lLgordmFyIGRvbmU7Cit2YXIgZG9uZV93YXNfY2FsbGVkID0gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiBkb25lID0gcmVzb2x2ZSk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAg
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgV09SS0VS
LCBTQ09QRSkKKyAgICAgIC50aGVuKHJlZyA9PiB7CisgICAgICAgICAgIGFkZF9jb21wbGV0aW9u
X2NhbGxiYWNrKCgpID0+IHJlZy51bnJlZ2lzdGVyKCkpOworICAgICAgICAgICByZXR1cm4gd2Fp
dF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgIH0p
CisgICAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZShTQ09QRSkpCisgICAgICAudGhlbihpZnJh
bWUgPT4geworICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJlbW92ZSgpKQor
ICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gZG9uZV93YXNfY2FsbGVkKQorICAgICAgLnRo
ZW4ocmVzdWx0ID0+IGFzc2VydF9lcXVhbHMocmVzdWx0LCAnUEFTUycpKTsKKyAgfSwgJ1Jlc3Bv
bmQgd2l0aCBhIFJlc3BvbnNlIGJ1aWx0IGZyb20gYSBSZWFkYWJsZVN0cmVhbScpOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdp
dGgtcmVzcG9uc2UtYm9keS13aXRoLWludmFsaWQtY2h1bmsuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1yZXNwb25zZS1ib2R5LXdpdGgtaW52
YWxpZC1jaHVuay5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNzk5Y2RkZWJkMzBkNDUzYmVlNmE0
NDZlMWIzYmE1MzA3NjE4OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVzcG9uc2UtYm9keS13aXRoLWludmFsaWQtY2h1bmsu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5yZXNwb25kV2l0aCB3aXRoIHJlc3BvbnNlIGJvZHkgaGF2aW5n
IGludmFsaWQgY2h1bmtzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitjb25zdCBXT1JLRVIg
PQorICAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1yZXNwb25zZS1ib2R5LXdp
dGgtaW52YWxpZC1jaHVuay13b3JrZXIuanMnOworY29uc3QgU0NPUEUgPQorICAncmVzb3VyY2Vz
L2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1yZXNwb25zZS1ib2R5LXdpdGgtaW52YWxpZC1jaHVu
ay1pZnJhbWUuaHRtbCc7CisvLyBDYWxsZWQgYnkgdGhlIGlmcmFtZSB3aGVuIGRvbmUuCit2YXIg
ZG9uZTsKK3ZhciBkb25lX3dhc19jYWxsZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGRvbmUg
PSByZXNvbHZlKTsKKworLy8gVGhpcyB0ZXN0IGNyZWF0ZXMgYW4gY29udHJvbGxlZCBpZnJhbWUg
dGhhdCBtYWtlcyBhIGZldGNoIHJlcXVlc3QuIFRoZQorLy8gc2VydmljZSB3b3JrZXIgcmV0dXJu
cyBhIHJlc3BvbnNlIHdpdGggYSBib2R5IHN0cmVhbSBjb250YWluaW5nIGFuIGludmFsaWQKKy8v
IGNodW5rLgorcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBXT1JLRVIsIFNDT1BFKQorICAgICAgLnRoZW4ocmVn
ID0+IHsKKyAgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4gcmVnLnVucmVn
aXN0ZXIoKSk7CisgICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFs
bGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHdpdGhf
aWZyYW1lKFNDT1BFKSkKKyAgICAgIC50aGVuKGZyYW1lID0+IHsKKyAgICAgICAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKQorICAgICAgICB9KQorICAgICAgLnRoZW4oKCkg
PT4gZG9uZV93YXNfY2FsbGVkKQorICAgICAgLnRoZW4ocmVzdWx0ID0+IGFzc2VydF9lcXVhbHMo
cmVzdWx0LCAnUEFTUycpKTsKKyAgfSwgJ1Jlc3BvbnNlIHdpdGggYSBSZWFkYWJsZVN0cmVhbSBo
YXZpbmcgbm9uLVVpbnQ4QXJyYXkgY2h1bmtzIHNob3VsZCBiZSB0cmFuc2ZlcnJlZCBhcyBlcnJv
cmVkJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBz
Lmh0bWwKaW5kZXggNWQzMzQ2ZTdiMjgxYThmMWZjZmVkMjAwNWNmYjYwYmIxYTE1ZThjYS4uY2Q2
ODYxYTlkNDUzNjFhOWNiYWFiM2VhNjM5MjU3YTE0YWNjYjM0OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRo
LXN0b3BzLXByb3BhZ2F0aW9uLmh0dHBzLmh0bWwKQEAgLTEsNiArMSw1IEBACiA8IURPQ1RZUEUg
aHRtbD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KQEAgLTE3LDYgKzE2LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOwogICAgICAgICB9KQogICAgICAgLnRo
ZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
eyBmcmFtZS5yZW1vdmUoKTsgfSk7CiAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2Fn
ZUNoYW5uZWwoKTsKICAgICAgICAgICB2YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlKSB7CiAgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0g
ZnVuY3Rpb24oZSkgeyByZXNvbHZlKGUuZGF0YSk7IH0KQEAgLTI0LDcgKzI0LDYgQEAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICB2YXIgd29ya2VyID0gZnJhbWUuY29udGVu
dFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOwogCiAgICAgICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwgW2NoYW5uZWwucG9ydDJd
KTsKLSAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAgICAgICByZXR1cm4gc2F3X21lc3Nh
Z2U7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihtZXNzYWdlKSB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13
aXRoLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC10aHJvd3MtYWZ0
ZXItcmVzcG9uZC13aXRoLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTY5YTNjOWQwOGZiNjZiZjAx
YzFmYTJiNTE0YjQ2NDZlMjYxM2IzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWV2ZW50LXRocm93cy1hZnRlci1yZXNwb25kLXdpdGguaHR0cHMuaHRtbApAQCAt
MCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0
bGU+PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0g
J3Jlc291cmNlcy9mZXRjaC1ldmVudC10aHJvd3MtYWZ0ZXItcmVzcG9uZC13aXRoLWlmcmFtZS5o
dG1sJzsKKyAgICB2YXIgd29ya2Vyc2NyaXB0ID0gJ3Jlc291cmNlcy9yZXNwb25kLXRoZW4tdGhy
b3ctd29ya2VyLmpzJzsKKyAgICB2YXIgaWZyYW1lOworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtl
cl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJzY3JpcHQsIHNjb3BlKQorICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVnKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQs
IHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJykKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHJl
Zy5hY3RpdmUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24od29ya2VyKSB7Cisg
ICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICBj
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLmRhdGEsICdTWU5DJywgJyBTaG91bGQgcmVjZWl2ZSBzeW5jIG1lc3NhZ2Uu
Jyk7CisgICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEucG9zdE1lc3NhZ2UoJ0FDSycpOworICAg
ICAgICAgICAgfQorICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5w
b3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAgLy8gVGhlIGlmcmFtZSB3aWxsIG9u
bHkgYmUgbG9hZGVkIGFmdGVyIHRoZSBzeW5jIGlzIGNvbXBsZXRlZC4KKyAgICAgICAgICByZXR1
cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
ZnJhbWUpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoZnJhbWUuY29udGVudERvY3VtZW50LmJvZHku
aW5uZXJIVE1MLmluY2x1ZGVzKCJpbnRlcmNlcHRlZCIpKTsKKyAgICAgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICB9KQorICB9LCAnRmV0Y2gg
ZXZlbnQgaGFuZGxlciB0aHJvd3MgYWZ0ZXIgYSBzdWNjZXNzZnVsIHJlc3BvbmRXaXRoKCknKTsK
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13
aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVhMmU5NWJkMzlkNDEx
YTI1NzlkZDRlMDY2MTc5MWNkZTZkMTc1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDEyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1
Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorY29uc3Qgd29ya2VyID0gJ3Jlc291cmNl
cy9mZXRjaC1ldmVudC13aXRoaW4tc3ctd29ya2VyLmpzJzsKKworZnVuY3Rpb24gd2FpdChtcykg
eworICByZXR1cm4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7Cit9CisKK2Z1
bmN0aW9uIHJlc2V0KCkgeworICBmb3IgKGNvbnN0IGlmcmFtZSBvZiBbLi4uZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnLnRlc3QtaWZyYW1lJyldKSB7CisgICAgaWZyYW1lLnJlbW92ZSgpOwor
ICB9CisgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCku
dGhlbihyZWdpc3RyYXRpb25zID0+IHsKKyAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVnaXN0cmF0
aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIoKSkpOworICB9KS50aGVuKCgpID0+IGNhY2hlcy5r
ZXlzKCkpLnRoZW4oY2FjaGVLZXlzID0+IHsKKyAgICByZXR1cm4gUHJvbWlzZS5hbGwoY2FjaGVL
ZXlzLm1hcChjID0+IGNhY2hlcy5kZWxldGUoYykpKTsKKyAgfSk7Cit9CisKK2FkZF9jb21wbGV0
aW9uX2NhbGxiYWNrKHJlc2V0KTsKKworZnVuY3Rpb24gcmVnUmVhZHkocmVnKSB7CisgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgaWYgKHJlZy5hY3RpdmUp
IHsKKyAgICAgIHJlc29sdmUoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29uc3QgbmV4
dFdvcmtlciA9IHJlZy53YWl0aW5nIHx8IHJlZy5pbnN0YWxsaW5nOworCisgICAgbmV4dFdvcmtl
ci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgIGlmIChuZXh0
V29ya2VyLnN0YXRlID09ICdyZWR1bmRhbnQnKSB7CisgICAgICAgIHJlamVjdChFcnJvcihgU2Vy
dmljZSB3b3JrZXIgZmFpbGVkIHRvIGluc3RhbGxgKSk7CisgICAgICAgIHJldHVybjsKKyAgICAg
IH0KKyAgICAgIGlmIChuZXh0V29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKSB7CisgICAgICAg
IHJlc29sdmUoKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGdldENv
b2tpZXMoKSB7CisgIHJldHVybiBuZXcgTWFwKAorICAgIGRvY3VtZW50LmNvb2tpZQorICAgICAg
LnNwbGl0KC87L2cpCisgICAgICAubWFwKGMgPT4gYy50cmltKCkuc3BsaXQoJz0nKS5tYXAocyA9
PiBzLnRyaW0oKSkpCisgICk7Cit9CisKK2Z1bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUo
KSB7CisgIHJldHVybiByZXNldCgpLnRoZW4oKCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
cmVnaXN0ZXIod29ya2VyLCB7c2NvcGU6ICdyZXNvdXJjZXMvJ30pKQorICAgIC50aGVuKHJlZyA9
PiByZWdSZWFkeShyZWcpKQorICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKCdyZXNvdXJjZXMv
c2ltcGxlLmh0bWwnKSk7Cit9CisKK2Z1bmN0aW9uIHJhY2VCcm9hZGNhc3RBbmRDb29raWUoY2hh
bm5lbCwgY29va2llKSB7CisgIGNvbnN0IGluaXRpYWxDb29raWUgPSBnZXRDb29raWVzKCkuZ2V0
KGNvb2tpZSk7CisgIGxldCBkb25lID0gZmFsc2U7CisKKyAgcmV0dXJuIFByb21pc2UucmFjZShb
CisgICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBjb25zdCBiYyA9IG5ldyBCcm9h
ZGNhc3RDaGFubmVsKGNoYW5uZWwpOworICAgICAgYmMub25tZXNzYWdlID0gKCkgPT4geworICAg
ICAgICBiYy5jbG9zZSgpOworICAgICAgICByZXNvbHZlKCdicm9hZGNhc3QnKTsKKyAgICAgIH07
CisgICAgfSksCisgICAgKGZ1bmN0aW9uIGNoZWNrQ29va2llKCkgeworICAgICAgLy8gU3RvcCBw
b2xsaW5nIGlmIHRoZSBicm9hZGNhc3QgY2hhbm5lbCB3b24KKyAgICAgIGlmIChkb25lID09IHRy
dWUpIHJldHVybjsKKyAgICAgIGlmIChnZXRDb29raWVzKCkuZ2V0KGNvb2tpZSkgIT0gaW5pdGlh
bENvb2tpZSkgcmV0dXJuICdjb29raWUnOworCisgICAgICByZXR1cm4gd2FpdCgyMDApLnRoZW4o
Y2hlY2tDb29raWUpOworICAgIH0oKSkKKyAgXSkudGhlbih2YWwgPT4geworICAgIGRvbmUgPSB0
cnVlOworICAgIHJldHVybiB2YWw7CisgIH0pOworfQorCitwcm9taXNlX3Rlc3QoKCkgPT4gewor
ICByZXR1cm4gTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihwZXJtaXNzaW9u
ID0+IHsKKyAgICBpZiAocGVybWlzc2lvbiAhPSAiZ3JhbnRlZCIpIHsKKyAgICAgIHRocm93IEVy
cm9yKCdZb3UgbXVzdCBhbGxvdyBub3RpZmljYXRpb25zIGZvciB0aGlzIG9yaWdpbiBiZWZvcmUg
cnVubmluZyB0aGlzIHRlc3QuJyk7CisgICAgfQorICAgIHJldHVybiByZWdpc3RlclN3QW5kT3Bl
bkZyYW1lKCk7CisgIH0pLnRoZW4oaWZyYW1lID0+IHsKKyAgICByZXR1cm4gUHJvbWlzZS5yZXNv
bHZlKCkudGhlbigoKSA9PiB7CisgICAgICAvLyBJbiB0aGlzIHRlc3QsIHRoZSBzZXJ2aWNlIHdv
cmtlciB3aWxsIHBpbmcgdGhlICdpY29uLXJlcXVlc3QnIGNoYW5uZWwKKyAgICAgIC8vIGlmIGl0
IGludGVyY2VwdHMgYSByZXF1ZXN0IGZvciAnbm90aWZpY2F0aW9uX2ljb24ucHknLiBJZiB0aGUg
cmVxdWVzdAorICAgICAgLy8gcmVhY2hlcyB0aGUgc2VydmVyIGl0IHNldHMgdGhlICdub3RpZmlj
YXRpb24nIGNvb2tpZSB0byB0aGUgdmFsdWUgZ2l2ZW4KKyAgICAgIC8vIGluIHRoZSBVUkwuICJy
YWNlQnJvYWRjYXN0QW5kQ29va2llIiBtb25pdG9ycyBib3RoIGFuZCByZXR1cm5zIHdoaWNoCisg
ICAgICAvLyBoYXBwZW5zIGZpcnN0LgorICAgICAgY29uc3QgcmFjZSA9IHJhY2VCcm9hZGNhc3RB
bmRDb29raWUoJ2ljb24tcmVxdWVzdCcsICdub3RpZmljYXRpb24nKTsKKyAgICAgIGNvbnN0IG5v
dGlmaWNhdGlvbiA9IG5ldyBpZnJhbWUuY29udGVudFdpbmRvdy5Ob3RpZmljYXRpb24oJ3Rlc3Qn
LCB7CisgICAgICAgIGljb246IGBub3RpZmljYXRpb25faWNvbi5weT9zZXQtY29va2llLW5vdGlm
aWNhdGlvbj0ke01hdGgucmFuZG9tKCl9YAorICAgICAgfSk7CisgICAgICBub3RpZmljYXRpb24u
Y2xvc2UoKTsKKworICAgICAgcmV0dXJuIHJhY2UudGhlbih3aW5uZXIgPT4geworICAgICAgICBh
c3NlcnRfZXF1YWxzKHdpbm5lciwgJ2Jyb2FkY2FzdCcsICdUaGUgc2VydmljZSB3b3JrZXIgaW50
ZXJjZXB0ZWQgdGhlIGZyb20td2luZG93IG5vdGlmaWNhdGlvbiBpY29uIHJlcXVlc3QnKTsKKyAg
ICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgLy8gU2ltaWxhciByYWNlIHRvIGFi
b3ZlLCBidXQgdGhpcyB0aW1lIHRoZSBzZXJ2aWNlIHdvcmtlciByZXF1ZXN0cyB0aGUKKyAgICAg
IC8vIG5vdGlmaWNhdGlvbi4KKyAgICAgIGNvbnN0IHJhY2UgPSByYWNlQnJvYWRjYXN0QW5kQ29v
a2llKCdpY29uLXJlcXVlc3QnLCAnbm90aWZpY2F0aW9uJyk7CisgICAgICBpZnJhbWUuY29udGVu
dFdpbmRvdy5mZXRjaChgc2hvdy1ub3RpZmljYXRpb24/c2V0LWNvb2tpZS1ub3RpZmljYXRpb249
JHtNYXRoLnJhbmRvbSgpfWApOworCisgICAgICByZXR1cm4gcmFjZS50aGVuKHdpbm5lciA9PiB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMod2lubmVyLCAnYnJvYWRjYXN0JywgJ1RoZSBzZXJ2aWNl
IHdvcmtlciBpbnRlcmNlcHRlZCB0aGUgZnJvbS1zZXJ2aWNlLXdvcmtlciBub3RpZmljYXRpb24g
aWNvbiByZXF1ZXN0Jyk7CisgICAgICB9KTsKKyAgICB9KQorICB9KTsKK30sIGBOb3RpZmljYXRp
b24gcmVxdWVzdHMgaW50ZXJjZXB0ZWQgYm90aCBmcm9tIHdpbmRvdyBhbmQgU1dgKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC13aXRoaW4tc3cuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdp
dGhpbi1zdy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3M2FiYzRjOThjMDg3MWUzMDIxZTY2MDUz
MTFiYTRiMWQ3YTg4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC13aXRoaW4tc3cuaHR0cHMuaHRtbApAQCAtMCwwICsxLDc5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+Citjb25zdCB3b3JrZXIgPSAncmVzb3VyY2VzL2ZldGNoLWV2ZW50LXdpdGhp
bi1zdy13b3JrZXIuanMnOworCitmdW5jdGlvbiByZXNldCgpIHsKKyAgZm9yIChjb25zdCBpZnJh
bWUgb2YgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50ZXN0LWlmcmFtZScpXSkgewor
ICAgIGlmcmFtZS5yZW1vdmUoKTsKKyAgfQorICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4ocmVnaXN0cmF0aW9ucyA9PiB7CisgICAgcmV0dXJu
IFByb21pc2UuYWxsKHJlZ2lzdHJhdGlvbnMubWFwKHIgPT4gci51bnJlZ2lzdGVyKCkpKTsKKyAg
fSkudGhlbigoKSA9PiBjYWNoZXMua2V5cygpKS50aGVuKGNhY2hlS2V5cyA9PiB7CisgICAgcmV0
dXJuIFByb21pc2UuYWxsKGNhY2hlS2V5cy5tYXAoYyA9PiBjYWNoZXMuZGVsZXRlKGMpKSk7Cisg
IH0pOworfQorCithZGRfY29tcGxldGlvbl9jYWxsYmFjayhyZXNldCk7CisKK2Z1bmN0aW9uIHJl
Z1JlYWR5KHJlZykgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgIGlmIChyZWcuYWN0aXZlKSB7CisgICAgICByZXNvbHZlKCk7CisgICAgICByZXR1cm47
CisgICAgfQorICAgIGNvbnN0IG5leHRXb3JrZXIgPSByZWcud2FpdGluZyB8fCByZWcuaW5zdGFs
bGluZzsKKworICAgIG5leHRXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAo
KSA9PiB7CisgICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAncmVkdW5kYW50JykgeworICAg
ICAgICByZWplY3QoRXJyb3IoYFNlcnZpY2Ugd29ya2VyIGZhaWxlZCB0byBpbnN0YWxsYCkpOwor
ICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAn
YWN0aXZhdGVkJykgeworICAgICAgICByZXNvbHZlKCk7CisgICAgICB9CisgICAgfSk7CisgIH0p
OworfQorCitmdW5jdGlvbiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCkgeworICByZXR1cm4gcmVz
ZXQoKS50aGVuKCgpID0+IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlciwg
eyBzY29wZTogJ3Jlc291cmNlcy8nIH0pKQorICAgIC50aGVuKHJlZyA9PiByZWdSZWFkeShyZWcp
KQorICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnKSk7
Cit9CisKK3Byb21pc2VfdGVzdCgoKSA9PiB7CisgIHJldHVybiByZWdpc3RlclN3QW5kT3BlbkZy
YW1lKCkudGhlbihpZnJhbWUgPT4geworICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICBp
ZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgnZHVtbXkudHh0JykudGhlbihyID0+IHIudGV4dCgp
KSwKKyAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmNhY2hlcy5vcGVuKCd0ZXN0JykKKyAgICAg
ICAgLnRoZW4oY2FjaGUgPT4KKyAgICAgICAgICBjYWNoZS5hZGQoJ2R1bW15LnR4dCcpLnRoZW4o
KCkgPT4gY2FjaGUubWF0Y2goJ2R1bW15LnR4dCcpKQorICAgICAgICApLnRoZW4ocmVzcG9uc2Ug
PT4geworICAgICAgICAgIGlmICghcmVzcG9uc2UpIHJldHVybiAnY2FjaGUgbWF0Y2ggZmFpbGVk
JzsKKyAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgICAgICB9KQorICAgIF0p
CisgIH0pLnRoZW4oKFtmZXRjaFRleHQsIGNhY2hlVGV4dF0pID0+IHsKKyAgICBhc3NlcnRfZXF1
YWxzKGZldGNoVGV4dCwgJ2ludGVyY2VwdGVkJywgJ2ZldGNoIGludGVyY2VwdGVkJyk7CisgICAg
YXNzZXJ0X2VxdWFscyhjYWNoZVRleHQsICdpbnRlcmNlcHRlZCcsICdjYWNoZS5hZGQgaW50ZXJj
ZXB0ZWQnKTsKKyAgfSk7Cit9LCAnU2VydmljZSB3b3JrZXIgaW50ZXJjZXB0cyByZXF1ZXN0cyBm
cm9tIHdpbmRvdycpOworCitwcm9taXNlX3Rlc3QoKCkgPT4geworICByZXR1cm4gcmVnaXN0ZXJT
d0FuZE9wZW5GcmFtZSgpLnRoZW4oaWZyYW1lID0+IHsKKyAgICByZXR1cm4gUHJvbWlzZS5hbGwo
WworICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ2R1bW15LnR4dC1pbm5lci1mZXRj
aCcpLnRoZW4ociA9PiByLnRleHQoKSksCisgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRj
aCgnZHVtbXkudHh0LWlubmVyLWNhY2hlJykudGhlbihyID0+IHIudGV4dCgpKQorICAgIF0pCisg
IH0pLnRoZW4oKFtmZXRjaFRleHQsIGNhY2hlVGV4dF0pID0+IHsKKyAgICBhc3NlcnRfZXF1YWxz
KGZldGNoVGV4dCwgJ0hlbGxvIHdvcmxkXG4nLCAnZmV0Y2ggd2l0aGluIFNXIG5vdCBpbnRlcmNl
cHRlZCcpOworICAgIGFzc2VydF9lcXVhbHMoY2FjaGVUZXh0LCAnSGVsbG8gd29ybGRcbicsICdj
YWNoZS5hZGQgd2l0aGluIFNXIG5vdCBpbnRlcmNlcHRlZCcpOworICB9KTsKK30sIGBTZXJ2aWNl
IHdvcmtlciBkb2VzIG5vdCBpbnRlcmNlcHQgZmV0Y2gvY2FjaGUgcmVxdWVzdHMgd2l0aGluIHNl
cnZpY2Ugd29ya2VyYCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC5odHRwcy5odG1sCmluZGV4IGI3ZWRhMTY0OTRhMWQ5ZWM2MzFiNjhmYTUxMTRhZjdk
MjhjZmY5YzIuLjUxNDQ2Y2FlYmM2MmQxZDhiNTI3MzA3OGE1ZDA2OTVhMTNjNDA2YmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbApAQCAtMSwxMyArMSw0MiBAQAog
PCFET0NUWVBFIGh0bWw+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldC1ob3N0LWluZm8uc3ViLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3Jp
cHQ+CiA8Ym9keT4KIDxzY3JpcHQ+CiB2YXIgd29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC1ldmVu
dC10ZXN0LXdvcmtlci5qcyc7CiAKIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGNvbnN0
IHNjb3BlID0gJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9oZWFkZXJzJzsKKyAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgICAgLnRo
ZW4oZnVuY3Rpb24ocmVnKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJl
Zy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKGZyYW1lKSB7CisgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsgZnJhbWUu
cmVtb3ZlKCk7IH0pOworICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSBKU09OLnBhcnNlKGZyYW1l
LmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50KTsKKyAgICAgICAgICBjb25zdCBoZWFk
ZXJfbmFtZXMgPSB7fTsKKyAgICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgaGVh
ZGVycykgeworICAgICAgICAgICAgaGVhZGVyX25hbWVzW25hbWVdID0gdHJ1ZTsKKyAgICAgICAg
ICB9CisKKyAgICAgICAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgICAgICAgIGhlYWRlcl9uYW1lcy5o
YXNPd25Qcm9wZXJ0eSgnYWNjZXB0JyksCisgICAgICAgICAgICAncmVxdWVzdCBpbmNsdWRlcyAi
QWNjZXB0IiBoZWFkZXIgYXMgaW5zZXJ0ZWQgYnkgRmV0Y2gnCisgICAgICAgICAgKTsKKyAgICAg
ICAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgICAgICAgIGhlYWRlcl9uYW1lcy5oYXNPd25Qcm9wZXJ0
eSgndXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cycpLAorICAgICAgICAgICAgJ3JlcXVlc3Qgc3Bl
Y2lmaWVzICJVcGdyYWRlLUluc2VjdXJlIFJlcXVlc3RzIGhlYWRlciBhcyBpbnNlcnRlZCBieSBG
ZXRjaCcKKyAgICAgICAgICApOworCisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnU2VydmljZSBXb3JrZXIgaGVhZGVycyBpbiB0
aGUgcmVxdWVzdCBvZiBhIGZldGNoIGV2ZW50Jyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLmh0bWw/c3RyaW5nJzsKICAgICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQog
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7CkBAIC02OSwxNzEgKzk4LDYgQEAgYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CiAgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CiAg
IH0sICdTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSByZWZl
cnJlciBVUkwnKTsKIAotZnVuY3Rpb24gcnVuX3JlZmVycmVyX3BvbGljeV90ZXN0cyhmcmFtZSwg
cmVmZXJyZXIsIGhyZWYsIG9yaWdpbikgewotICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93
LmZldGNoKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7bWV0aG9kOiAiR0VUIiwgcmVmZXJyZXI6IHJlZmVy
cmVyfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50
ZXh0KCk7IH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAg
ICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCi0gICAgICAgICAg
ICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCi0gICAgICAgICAgICAnUmVmZXJyZXJQb2xp
Y3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKLSAgICAgICAgICAgICdTZXJ2aWNlIFdv
cmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRoZSByZWZlcnJlciBVUkwgd2hlbiBh
IG1lbWJlciBvZiBSZXF1ZXN0SW5pdCBpcyBwcmVzZW50Jyk7Ci0gICAgICAgICAgdmFyIGh0dHBf
dXJsID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQX09SSUdJTiddICsgYmFzZV9wYXRoKCkgKwotICAg
ICAgICAgICAgICAgICAgICAgICAgICcvcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVs
bCc7Ci0gICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goaHR0cF91cmws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogIkdF
VCIsIHJlZmVycmVyOiByZWZlcnJlcn0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAg
ICAgICAgcmVzcG9uc2VfdGV4dCwKLSAgICAgICAgICAgICdSZWZlcnJlcjogYWJvdXQ6Y2xpZW50
XG4nICsKLSAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUnLAotICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZl
dGNoIHdpdGggbm8gcmVmZXJyZXIgd2hlbiBhIG1lbWJlciBvZiBSZXF1ZXN0SW5pdCBpcyBwcmVz
ZW50IHdpdGggYW4gSFRUUCByZXF1ZXN0Jyk7Ci0gICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRl
bnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJlclBvbGljeTog
IiIsIHJlZmVycmVyOiByZWZlcnJlcn0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpIHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlX3RleHQpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAg
ICAgICAgcmVzcG9uc2VfdGV4dCwKLSAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYgKyAn
XG4nICsKLSAgICAgICAgICAgICdSZWZlcnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUnLAotICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZl
dGNoIHdpdGggdGhlIHJlZmVycmVyIHdpdGggIiInKTsKLSAgICAgICAgICB2YXIgaHR0cF91cmwg
PSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBfT1JJR0lOJ10gKyBiYXNlX3BhdGgoKSArCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgJy9yZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJGdWxsJzsK
LSAgICAgICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChodHRwX3VybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVmZXJyZXJQb2xpY3k6
ICIiLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCi0gICAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAg
ICAgICAgIHJlc3BvbnNlX3RleHQsCi0gICAgICAgICAgICAnUmVmZXJyZXI6IGFib3V0OmNsaWVu
dFxuJyArCi0gICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlJywKLSAgICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBm
ZXRjaCB3aXRoIG5vIHJlZmVycmVyIHdpdGggIiInKTsKLSAgICAgICAgICByZXR1cm4gZnJhbWUu
Y29udGVudFdpbmRvdy5mZXRjaCgncmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlZmVycmVyUG9s
aWN5OiAib3JpZ2luIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7Ci0gICAgICAgIH0pCi0gICAgICAu
dGhlbihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQotICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGFzc2VydF9lcXVh
bHMoCi0gICAgICAgICAgICByZXNwb25zZV90ZXh0LAotICAgICAgICAgICAgJ1JlZmVycmVyOiAn
ICsgb3JpZ2luICsgJy8nICsgJ1xuJyArCi0gICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9y
aWdpbicsCi0gICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0
Y2ggd2l0aCB0aGUgcmVmZXJyZXIgb3JpZ2luIHdpdGggIm9yaWdpbiIgYW5kIGEgc2FtZSBvcmln
aW4gcmVxdWVzdCcpOwotICAgICAgICAgIHZhciBodHRwX3VybCA9IGdldF9ob3N0X2luZm8oKVsn
SFRUUF9PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAn
L3Jlc291cmNlcy9zaW1wbGUuaHRtbD9yZWZlcnJlckZ1bGwnOwotICAgICAgICAgIHJldHVybiBm
cmFtZS5jb250ZW50V2luZG93LmZldGNoKGh0dHBfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHtyZWZlcnJlclBvbGljeTogIm9yaWdpbiIsIHJlZmVycmVy
OiByZWZlcnJlcn0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Up
IHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlX3RleHQpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgcmVzcG9u
c2VfdGV4dCwKLSAgICAgICAgICAgICdSZWZlcnJlcjogJyArIG9yaWdpbiArICcvJyArICdcbicg
KwotICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBvcmlnaW4nLAotICAgICAgICAgICAgJ1Nl
cnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIHdpdGggdGhlIHJlZmVycmVyIG9y
aWdpbiB3aXRoICJvcmlnaW4iIGFuZCBhIGNyb3NzIG9yaWdpbiByZXF1ZXN0Jyk7Ci0gICAgICAg
ICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goJ3Jlc291cmNlcy9zaW1wbGUuaHRt
bD9yZWZlcnJlckZ1bGwnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHtyZWZlcnJlclBvbGljeTogIm9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIsIHJlZmVycmVy
OiByZWZlcnJlcn0pOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2Up
IHsgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlX3RleHQpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgcmVzcG9u
c2VfdGV4dCwKLSAgICAgICAgICAgICdSZWZlcnJlcjogJyArIGhyZWYgKyAnXG4nICsKLSAgICAg
ICAgICAgICdSZWZlcnJlclBvbGljeTogb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luJywKLSAgICAg
ICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIHRoZSBy
ZWZlcnJlciBVUkwgd2l0aCAib3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbmQgYSBzYW1lIG9y
aWdpbiByZXF1ZXN0Jyk7Ci0gICAgICAgICAgdmFyIGh0dHBfdXJsID0gZ2V0X2hvc3RfaW5mbygp
WydIVFRQX09SSUdJTiddICsgYmFzZV9wYXRoKCkgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICcvcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCc7Ci0gICAgICAgICAgcmV0dXJu
IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goaHR0cF91cmwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAge3JlZmVycmVyUG9saWN5OiAib3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luIiwgcmVmZXJyZXI6IHJlZmVycmVyfSk7Ci0gICAgICAgIH0pCi0gICAgICAudGhl
bihmdW5jdGlvbihyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2UudGV4dCgpOyB9KQotICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVzcG9uc2VfdGV4dCkgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Ci0gICAgICAgICAgICByZXNwb25zZV90ZXh0LAotICAgICAgICAgICAgJ1JlZmVycmVyOiAnICsg
b3JpZ2luICsgJy8nICsgJ1xuJyArCi0gICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbicsCi0gICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxk
IHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgcmVmZXJyZXIgb3JpZ2luIHdpdGggIm9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiIgYW5kIGEgY3Jvc3Mgb3JpZ2luIHJlcXVlc3QnKTsKLSAgICAgICAg
ICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgncmVzb3VyY2VzL3NpbXBsZS5odG1s
P3JlZmVycmVyRnVsbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAge3JlZmVycmVyUG9saWN5OiAibm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiLCByZWZlcnJl
cjogcmVmZXJyZXJ9KTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNl
KSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyZXNw
b25zZV90ZXh0KSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlc3Bv
bnNlX3RleHQsCi0gICAgICAgICAgICAnUmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCi0gICAg
ICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlJywKLSAg
ICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIG5v
IHJlZmVycmVyIHdpdGggIm5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiBhbmQgYSBzYW1lIG9y
aWdpbiByZXF1ZXN0Jyk7Ci0gICAgICAgICAgdmFyIGh0dHBfdXJsID0gZ2V0X2hvc3RfaW5mbygp
WydIVFRQX09SSUdJTiddICsgYmFzZV9wYXRoKCkgKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICcvcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCc7Ci0gICAgICAgICAgcmV0dXJu
IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goaHR0cF91cmwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAge3JlZmVycmVyUG9saWN5OiAibm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUiLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKLSAgICAgICAgfSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0KCk7IH0pCi0gICAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFs
cygKLSAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCi0gICAgICAgICAgICAnUmVmZXJyZXI6IGFi
b3V0OmNsaWVudFxuJyArCi0gICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6IG5vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlJywKLSAgICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVz
cG9uZCB0byBmZXRjaCB3aXRoIG5vIHJlZmVycmVyIHdpdGggIm5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIiBhbmQgYW4gSFRUUCByZXF1ZXN0Jyk7Ci0gICAgICAgICAgdmFyIGh0dHBfdXJsID0g
Z2V0X2hvc3RfaW5mbygpWydIVFRQX09SSUdJTiddICsgYmFzZV9wYXRoKCkgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgICcvcmVzb3VyY2VzL3NpbXBsZS5odG1sP3JlZmVycmVyRnVsbCc7Ci0g
ICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goaHR0cF91cmwsIHtyZWZl
cnJlclBvbGljeTogInVuc2FmZS11cmwiLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsKLSAgICAgICAg
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZS50ZXh0
KCk7IH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCi0gICAgICAgICAgICAn
UmVmZXJyZXI6ICcgKyBocmVmICsgJ1xuJyArCi0gICAgICAgICAgICAnUmVmZXJyZXJQb2xpY3k6
IHVuc2FmZS11cmwnLAotICAgICAgICAgICAgJ1NlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25k
IHRvIGZldGNoIHdpdGggbm8gcmVmZXJyZXIgd2l0aCAidW5zYWZlLXVybCInKTsKLSAgICAgICAg
ICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgncmVzb3VyY2VzL3NpbXBsZS5odG1s
P3JlZmVycmVyRnVsbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAge3JlZmVycmVyUG9saWN5OiAibm8tcmVmZXJyZXIiLCByZWZlcnJlcjogcmVmZXJyZXJ9KTsK
LSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7IHJldHVybiByZXNw
b25zZS50ZXh0KCk7IH0pCi0gICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZV90ZXh0KSB7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlc3BvbnNlX3RleHQsCi0gICAg
ICAgICAgICAnUmVmZXJyZXI6IGFib3V0OmNsaWVudFxuJyArCi0gICAgICAgICAgICAnUmVmZXJy
ZXJQb2xpY3k6IG5vLXJlZmVycmVyJywKLSAgICAgICAgICAgICdTZXJ2aWNlIFdvcmtlciBzaG91
bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIG5vIHJlZmVycmVyIFVSTCB3aXRoICJuby1yZWZlcnJl
ciInKTsKLSAgICAgICAgfSk7Ci19Ci0KLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZh
ciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxlLmh0bWw/cmVmZXJyZXJQb2xpY3knOwotICAgIHZh
ciBmcmFtZTsKLSAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3
b3JrZXIsIHNjb3BlKQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7Ci0gICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Ci0gICAg
ICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3Bl
KTsgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICBmcmFtZSA9IGY7Ci0g
ICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVu
dC5ib2R5LnRleHRDb250ZW50LAotICAgICAgICAgICAgJ1JlZmVycmVyUG9saWN5OiBuby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZScsCi0gICAgICAgICAgICAnU2VydmljZSBXb3JrZXIgc2hvdWxk
IHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgZGVmYXVsdCByZWZlcnJlciBwb2xpY3knKTsKLSAg
ICAgICAgICAvLyBGaXJzdCwgcnVuIHRoZSByZWZlcnJlciBwb2xpY3kgdGVzdHMgd2l0aG91dCBw
YXNzaW5nIGEgcmVmZXJyZXIgaW4gUmVxdWVzdEluaXQuCi0gICAgICAgICAgcmV0dXJuIHJ1bl9y
ZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsIHVuZGVmaW5lZCwgZnJhbWUuY29udGVudERvY3Vt
ZW50LmxvY2F0aW9uLmhyZWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnJhbWUuY29udGVudERvY3VtZW50LmxvY2F0aW9uLm9yaWdpbik7Ci0gICAgICAgIH0p
Ci0gICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICAvLyBOb3csIHJ1biB0aGUgcmVm
ZXJyZXIgcG9saWN5IHRlc3RzIHdoaWxlIHBhc3NpbmcgYSByZWZlcnJlciBpbiBSZXF1ZXN0SW5p
dC4KLSAgICAgICAgICB2YXIgcmVmZXJyZXIgPSBnZXRfaG9zdF9pbmZvKClbJ0hUVFBTX09SSUdJ
TiddICsgYmFzZV9wYXRoKCkgKyAnZmFrZS1yZWZlcnJlcic7Ci0gICAgICAgICAgcmV0dXJuIHJ1
bl9yZWZlcnJlcl9wb2xpY3lfdGVzdHMoZnJhbWUsICdmYWtlLXJlZmVycmVyJywgcmVmZXJyZXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUuY29udGVu
dERvY3VtZW50LmxvY2F0aW9uLm9yaWdpbik7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5j
dGlvbigpIHsKLSAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7Ci0gICAgICAgIH0pCi0g
ICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Ci0gIH0sICdTZXJ2aWNlIFdvcmtl
ciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIHRoZSByZWZlcnJlciBVUkwnKTsKLQogYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zaW1wbGUu
aHRtbD9jbGllbnRJZCc7CiAgICAgdmFyIGZyYW1lOwpAQCAtNDE5LDEzICsyODMsMTMgQEAgYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgewogICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoCiAgICAgICAgICAgICBmcmFtZS5jb250ZW50RG9jdW1lbnQu
Ym9keS50ZXh0Q29udGVudCwKLSAgICAgICAgICAgICdGcmFnbWVudCBOb3QgRm91bmQnLAotICAg
ICAgICAgICAgJ1NlcnZpY2Ugd29ya2VyIHNob3VsZCBub3QgZXhwb3NlIFVSTCBmcmFnbWVudHMu
Jyk7CisgICAgICAgICAgICAnRnJhZ21lbnQgRm91bmQgOicgKyBmcmFnbWVudCwKKyAgICAgICAg
ICAgICdTZXJ2aWNlIHdvcmtlciBzaG91bGQgZXhwb3NlIFVSTCBmcmFnbWVudHMgaW4gcmVxdWVz
dC4nKTsKICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKICAgICAgICAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CiAgICAgICAgIH0pCiAgICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Ci0gIH0sICdTZXJ2aWNlIFdvcmtlciBt
dXN0IG5vdCBleHBvc2UgRmV0Y2hFdmVudCBVUkwgZnJhZ21lbnRzLicpOworICB9LCAnU2Vydmlj
ZSBXb3JrZXIgc2hvdWxkIGV4cG9zZSBGZXRjaEV2ZW50IFVSTCBmcmFnbWVudHMuJyk7CiAKIGFz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2ltcGxl
Lmh0bWw/Y2FjaGUnOwpAQCAtNDYwLDYgKzMyNCw3IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgICAgICAgICAgICAgICAgLmNhdGNoKHJlamVjdCk7CiAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbCh0ZXN0cyk7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CkBAIC01MzMsNSArMzk4LDM1IEBAIGFz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24o
dCkpOwogICB9LCAnU2VydmljZSBXb3JrZXIgc2hvdWxkIGludGVyY2VwdCBFdmVudFNvdXJjZScp
OwogCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2Vz
L3NpbXBsZS5odG1sP2ludGVncml0eSc7CisgICAgdmFyIGZyYW1lOworICAgIHZhciBpbnRlZ3Jp
dHlfbWV0YWRhdGEgPSAnZ3MwbnFydThLYnNySXQ1WVRvUXFTOWZZYW80R1FKWHRjSWQ2MTBnN2ND
VT0nOworCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZykgeworICAgICAgICAgIHJldHVy
biB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7
IH0pCisgICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgICAgZnJhbWUgPSBmOworICAg
ICAgICAgIC8vIEEgcmVxdWVzdCBoYXMgYXNzb2NpYXRlZCBpbnRlZ3JpdHkgbWV0YWRhdGEgKGEg
c3RyaW5nKS4KKyAgICAgICAgICAvLyBVbmxlc3Mgc3RhdGVkIG90aGVyd2lzZSwgaXQgaXMgdGhl
IGVtcHR5IHN0cmluZy4KKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgZnJh
bWUuY29udGVudERvY3VtZW50LmJvZHkudGV4dENvbnRlbnQsICcnKTsKKworICAgICAgICAgIHJl
dHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKHNjb3BlLCB7J2ludGVncml0eSc6IGludGVn
cml0eV9tZXRhZGF0YX0pOworICAgICAgICB9KQorICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gewor
ICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihyZXNwb25zZV90ZXh0ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlX3Rl
eHQsIGludGVncml0eV9tZXRhZGF0YSwgJ2ludGVncml0eScpOworICAgICAgICAgIGZyYW1lLnJl
bW92ZSgpOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9k
b25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0
aW9uKHQpKTsKKyAgfSwgJ1NlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdp
dGggdGhlIGNvcnJlY3QgaW50ZWdyaXR5X21ldGFkYXRhJyk7CisKIDwvc2NyaXB0PgogPC9ib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWZyYW1lLXJlc291cmNlLmh0dHBzLmh0
bWwKaW5kZXggY2MxZGFjNDcyYmNhNjJkYjBmZmYyNWRjZmRhOWJjZTk4OTBhNDY1OC4uNGQzMGZm
NGNhZjcxMzk1YmQ0Yzc3MzM3YWVlZjllMTU4NzMxZjRkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1mcmFtZS1yZXNvdXJjZS5odHRwcy5odG1sCkBAIC0zLDcgKzMsNyBAQAog
PG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0LWhv
c3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBl
cnMuc3ViLmpzIj48L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4KQEAgLTExMCw3ICsxMTAsOCBA
QCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICBmcmFtZS5zcmMgPQogICAgICAg
ICAgICAgc2NvcGUgKyAnP21vZGU9Y29ycyZ1cmw9JyArCiAgICAgICAgICAgICBlbmNvZGVVUklD
b21wb25lbnQoaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBwYXRoICsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnP0FDQU9yaWdpbj0nICsgaG9zdF9pbmZvWydIVFRQ
U19PUklHSU4nXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz9BQ0FPcmlnaW49
JyArIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcmQUNBQ3JlZGVudGlhbHM9dHJ1ZScpOwogICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZnJhbWUpOwogICAgICAgICAgIHJldHVybiBnZXRMb2FkZWRGcmFtZUFzT2Jq
ZWN0KGZyYW1lKTsKICAgICAgICAgfSkKQEAgLTE4Myw3ICsxODQsOCBAQCBhc3luY190ZXN0KGZ1
bmN0aW9uKHQpIHsKICAgICAgICAgICB2YXIgd2luID0gd2luZG93Lm9wZW4oCiAgICAgICAgICAg
ICBzY29wZSArICc/bW9kZT1jb3JzJnVybD0nICsKICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBv
bmVudChob3N0X2luZm9bJ0hUVFBTX1JFTU9URV9PUklHSU4nXSArIHBhdGggKwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICc/QUNBT3JpZ2luPScgKyBob3N0X2luZm9bJ0hUVFBTX09S
SUdJTiddKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJz9BQ0FPcmlnaW49JyAr
IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICcmQUNBQ3JlZGVudGlhbHM9dHJ1ZScpKTsKICAgICAgICAgICByZXR1cm4gZ2V0TG9hZGVk
V2luZG93QXNPYmplY3Qod2luKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2li
aWxpdHkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12aXNpYmls
aXR5Lmh0dHBzLmh0bWwKaW5kZXggMzZiZjE2ZjMyNzk4MjllZDBkNzU0MDIxNTk4M2I1NTQxNDBk
NmM1Zi4uMWNlYjE2NDY1M2I5NjM1OTk5Njc1Y2M4N2VhMTE0Nzk2ZWZlYWQ5ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVyLXZpc2liaWxpdHkuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy5odG1s
CkBAIC0yLDcgKzIsNyBAQAogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBWaXNpYmlsaXR5IG9mIGhl
YWRlcnMgZHVyaW5nIGZldGNoLjwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldC1ob3N0LWlu
Zm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+CiA8Ym9keT4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwuaHR0cHMuaHRtbAppbmRleCAwNDA1
ZWQ3MDkwNWU2OGYyZjhhNjk2NzliMWY3ZGRjMDM0OTczOTRmLi43YzY2NTIwMzA0NTc4NmZkZjI1
NjY4MTAzYzdlMDllNGNlZjJlZDI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1yZXF1ZXN0LWNzcy1iYXNlLXVybC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLmh0dHBzLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8
dGl0bGU+U2VydmljZSBXb3JrZXI6IENTUydzIGJhc2UgVVJMIG11c3QgYmUgdGhlIHJlcXVlc3Qg
VVJMIGV2ZW4gd2hlbiBmZXRjaGVkIGZyb20gb3RoZXIgVVJMPC90aXRsZT4KIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBhc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LXJlcXVlc3QtY3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc4MzVmNjBhMmNhMTdlMjAzYjBjNWUzZTc2ZjE2N2VkM2Y0YWVj
YzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNz
cy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBNaW1lIHR5cGUgY2hlY2tpbmcg
b2YgQ1NTIGZpbGVzIGZldGNoZWQgdmlhIFNXLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQt
aG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3Qt
aGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gZ2V0RWxlbWVu
dENvbG9ySW5GcmFtZShmcmFtZSwgaWQpIHsKKyAgdmFyIGVsZW1lbnQgPSBmcmFtZS5jb250ZW50
RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICB2YXIgc3R5bGUgPSBmcmFtZS5jb250ZW50
V2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpOworICByZXR1cm4gc3R5bGVbJ2Nv
bG9yJ107Cit9CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIFNDT1BFID0K
KyAgICAgICAgJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1j
aGVjay1pZnJhbWUuaHRtbCc7CisgICAgdmFyIFNDUklQVCA9CisgICAgICAgICdyZXNvdXJjZXMv
ZmV0Y2gtcmVxdWVzdC1jc3MtY3Jvc3Mtb3JpZ2luLW1pbWUtY2hlY2std29ya2VyLmpzJzsKKyAg
ICB2YXIgRVhQRUNURURfQ09MT1IgPSAncmdiKDAsIDAsIDI1NSknOworCisgICAgcmV0dXJuIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFNDUklQVCwgU0NPUEUpCisg
ICAgICAudGhlbihyID0+IHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpKQorICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShTQ09QRSkgKQorICAgICAgLnRoZW4o
ZiA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZ2V0RWxlbWVu
dENvbG9ySW5GcmFtZShmLCAnY3Jvc3NPcmlnaW5Dc3MnKSwKKyAgICAgICAgICAgICAgRVhQRUNU
RURfQ09MT1IsCisgICAgICAgICAgICAgICdUaGUgY29sb3IgbXVzdCBiZSBvdmVycmlkZGVuIGJ5
IGNyb3NzIG9yaWdpbiBDU1MuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAg
ICAgICAgZ2V0RWxlbWVudENvbG9ySW5GcmFtZShmLCAnY3Jvc3NPcmlnaW5IdG1sJyksCisgICAg
ICAgICAgICAgIEVYUEVDVEVEX0NPTE9SLAorICAgICAgICAgICAgICAnVGhlIGNvbG9yIG11c3Qg
bm90IGJlIG92ZXJyaWRkZW4gYnkgY3Jvc3Mgb3JpZ2luIG5vbiBDU1MgZmlsZS4nKTsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICBnZXRFbGVtZW50Q29sb3JJbkZyYW1l
KGYsICdzYW1lT3JpZ2luQ3NzJyksCisgICAgICAgICAgICAgIEVYUEVDVEVEX0NPTE9SLAorICAg
ICAgICAgICAgICAnVGhlIGNvbG9yIG11c3QgYmUgb3ZlcnJpZGRlbiBieSBzYW1lIG9yaWdpbiBD
U1MuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZ2V0RWxlbWVu
dENvbG9ySW5GcmFtZShmLCAnc2FtZU9yaWdpbkh0bWwnKSwKKyAgICAgICAgICAgICAgRVhQRUNU
RURfQ09MT1IsCisgICAgICAgICAgICAgICdUaGUgY29sb3IgbXVzdCBiZSBvdmVycmlkZGVuIGJ5
IHNhbWUgb3JpZ2luIG5vbiBDU1MgZmlsZS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAor
ICAgICAgICAgICAgICBnZXRFbGVtZW50Q29sb3JJbkZyYW1lKGYsICdzeW50aGV0aWMnKSwKKyAg
ICAgICAgICAgICAgRVhQRUNURURfQ09MT1IsCisgICAgICAgICAgICAgICdUaGUgY29sb3IgbXVz
dCBiZSBvdmVycmlkZGVuIGJ5IHN5bnRoZXRpYyBDU1MuJyk7CisgICAgICAgICAgZi5yZW1vdmUo
KTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0
LCBTQ09QRSk7CisgICAgICAgIH0pOworICB9LCAnTWltZSB0eXBlIGNoZWNraW5nIG9mIENTUyBm
aWxlcyBmZXRjaGVkIHZpYSBTVy4nKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1pbWFnZXMuaHR0cHMuaHRtbAppbmRleCA3NzczMDgy
NDFlNGYzNzNiODcwOWI1NGNhZDNiOWJiOGEzMjQ2YjBhLi42ZjMyM2NhYzhkMTFkMzM4MTI4NDhi
ZWIxZWNlNjUxY2Y0OTRiYmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1y
ZXF1ZXN0LWNzcy1pbWFnZXMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1yZXF1ZXN0LWNzcy1pbWFnZXMuaHR0cHMuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDx0aXRsZT5T
ZXJ2aWNlIFdvcmtlcjogRmV0Y2hFdmVudCBmb3IgY3NzIGltYWdlPC90aXRsZT4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiB2
YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtcmVzb3VyY2VzLWlmcmFtZS5odHRw
cy5odG1sJzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtZmFs
bGJhY2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtZmFsbGJh
Y2suaHR0cHMuaHRtbAppbmRleCA4MjkwZTIxZGQzZTczMTNhNGRiMmE1ZjU5ZDAxMTkyNmZjZjIw
YzQ2Li42MzRiOGQ2ZDgxNTlmMjkyZDJkNzU1YTZmMjYyMWE4OWU0MTQzMjI2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1mYWxsYmFjay5odHRwcy5odG1sCkBA
IC0yLDExMiArMiwyODEgQEAKIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogdGhlIGZhbGxiYWNrIGJl
aGF2aW9yIG9mIEZldGNoRXZlbnQ8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1p
bmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVy
cy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhv
c3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhl
bHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci12YXIgZXhwZWN0ZWRfdXJscyA9IFtd
OwotCi1mdW5jdGlvbiB4aHJfZmFpbF90ZXN0KGZyYW1lLCB1cmwpIHsKLSAgZXhwZWN0ZWRfdXJs
cy5wdXNoKHVybCk7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWpl
Y3QpIHsKLSAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cueGhyKHVybCkKLSAgICAgICAgLnRoZW4o
ZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIHJlamVjdCh1cmwgKyAnIHNob3VsZCBmYWlsLicpOwot
ICAgICAgICAgIH0pCi0gICAgICAgIC5jYXRjaChmdW5jdGlvbigpewotICAgICAgICAgICAgcmVz
b2x2ZSgpOwotICAgICAgICAgIH0pOworZnVuY3Rpb24gZ2V0X2ZldGNoZWRfdXJscyh3b3JrZXIp
IHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIHZhciBj
aGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgICBjaGFubmVsLnBvcnQxLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKG1zZykgeyByZXNvbHZlKG1zZyk7IH07CisgICAgICB3b3JrZXIucG9z
dE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hhbm5lbC5wb3J0Ml0pOwogICAgIH0p
OwogfQogCi1mdW5jdGlvbiB4aHJfc3VjY2VlZF90ZXN0KGZyYW1lLCB1cmwpIHsKLSAgZXhwZWN0
ZWRfdXJscy5wdXNoKHVybCk7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKLSAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cueGhyKHVybCkKLSAgICAgICAg
LnRoZW4oZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICB9KQot
ICAgICAgICAuY2F0Y2goZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIHJlamVjdCh1cmwgKyAnIHNo
b3VsZCBzdWNjZWVkLicpOwotICAgICAgICAgIH0pOworZnVuY3Rpb24gY2hlY2tfdXJscyh3b3Jr
ZXIsIGV4cGVjdGVkX3JlcXVlc3RzKSB7CisgIHJldHVybiBnZXRfZmV0Y2hlZF91cmxzKHdvcmtl
cikKKyAgICAudGhlbihmdW5jdGlvbihtc2cpIHsKKyAgICAgICAgdmFyIHJlcXVlc3RzID0gbXNn
LmRhdGEucmVxdWVzdHM7CisgICAgICAgIGFzc2VydF9vYmplY3RfZXF1YWxzKHJlcXVlc3RzLCBl
eHBlY3RlZF9yZXF1ZXN0cyk7CiAgICAgfSk7CiB9CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewotICAgIHZhciBwYXRoID0gbmV3IFVSTCgiLiIsIHdpbmRvdy5sb2NhdGlvbikucGF0aG5hbWU7
Ci0gICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLWlmcmFt
ZS5odG1sJzsKLSAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWZhbGxi
YWNrLXdvcmtlci5qcyc7Ci0gICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAg
ICB2YXIgQkFTRV9VUkwgPSBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsKLSAgICAgICAgICAg
ICAgICAgICBwYXRoICsgJ3Jlc291cmNlcy9mZXRjaC1hY2Nlc3MtY29udHJvbC5weT8nOwotICAg
IHZhciBPVEhFUl9CQVNFX1VSTCA9IGhvc3RfaW5mb1snSFRUUFNfUkVNT1RFX09SSUdJTiddICsK
LSAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoICsgJ3Jlc291cmNlcy9mZXRjaC1hY2Nlc3Mt
Y29udHJvbC5weT8nOwotICAgIHZhciBSRURJUkVDVF9VUkwgPSBob3N0X2luZm9bJ0hUVFBTX09S
SUdJTiddICsKLSAgICAgICAgICAgICAgICAgICAgICAgcGF0aCArICdyZXNvdXJjZXMvcmVkaXJl
Y3QucHk/UmVkaXJlY3Q9JzsKLSAgICB2YXIgZnJhbWU7Ci0gICAgdmFyIHdvcmtlcjsKLSAgICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQot
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgd29ya2VyID0g
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Ci0gICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHdvcmtlciwgJ2FjdGl2YXRlZCcpOwotICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCi0gICAgICAudGhlbihmdW5jdGlv
bihmKSB7Ci0gICAgICAgICAgZnJhbWUgPSBmOwotICAgICAgICAgIHJldHVybiB4aHJfc3VjY2Vl
ZF90ZXN0KGZyYW1lLCBCQVNFX1VSTCk7Ci0gICAgICAgIH0pCi0gICAgICAudGhlbihmdW5jdGlv
bihmKSB7Ci0gICAgICAgICAgcmV0dXJuIHhocl9mYWlsX3Rlc3QoZnJhbWUsIE9USEVSX0JBU0Vf
VVJMKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICBy
ZXR1cm4geGhyX3N1Y2NlZWRfdGVzdChmcmFtZSwgT1RIRVJfQkFTRV9VUkwgKyAnQUNBT3JpZ2lu
PSonKTsKLSAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKLSAgICAgICAgICBy
ZXR1cm4geGhyX3N1Y2NlZWRfdGVzdChmcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSRURJUkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25lbnQoQkFTRV9VUkwpKTsKK3Zh
ciBwYXRoID0gbmV3IFVSTCgiLiIsIHdpbmRvdy5sb2NhdGlvbikucGF0aG5hbWU7Cit2YXIgU0NP
UEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtZmFsbGJhY2staWZyYW1lLmh0bWwnOwordmFy
IFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1mYWxsYmFjay13b3JrZXIuanMnOwor
dmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKK3ZhciBCQVNFX1VSTCA9IGhvc3RfaW5m
b1snSFRUUFNfT1JJR0lOJ10gKworICAgICAgICAgICAgICAgcGF0aCArICdyZXNvdXJjZXMvZmV0
Y2gtYWNjZXNzLWNvbnRyb2wucHk/JzsKK3ZhciBCQVNFX1BOR19VUkwgPSBCQVNFX1VSTCArICdQ
TkdJTUFHRSYnOwordmFyIE9USEVSX0JBU0VfVVJMID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVf
T1JJR0lOJ10gKworICAgICAgICAgICAgICAgICAgICAgcGF0aCArICdyZXNvdXJjZXMvZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/JzsKK3ZhciBPVEhFUl9CQVNFX1BOR19VUkwgPSBPVEhFUl9CQVNF
X1VSTCArICdQTkdJTUFHRSYnOwordmFyIFJFRElSRUNUX1VSTCA9IGhvc3RfaW5mb1snSFRUUFNf
T1JJR0lOJ10gKworICAgICAgICAgICAgICAgICAgIHBhdGggKyAncmVzb3VyY2VzL3JlZGlyZWN0
LnB5P1JlZGlyZWN0PSc7Cit2YXIgcmVnaXN0ZXI7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CisgIHZhciByZWdpc3RyYXRpb247CisgIHZhciB3b3JrZXI7CisKKyAgcmVnaXN0ZXIgPSBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQor
ICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAg
ICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIHJldHVybiB3YWl0
X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdhY3RpdmF0ZWQnKTsKKyAgICAgIH0pCisgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCisgICAgLnRoZW4oZnVu
Y3Rpb24oZnJhbWUpIHsKKyAgICAgICAgLy8gVGhpcyB0ZXN0IHNob3VsZCBub3QgYmUgY29uc2lk
ZXJlZCBjb21wbGV0ZSB1bnRpbCBhZnRlciB0aGUgc2VydmljZQorICAgICAgICAvLyB3b3JrZXIg
aGFzIGJlZW4gdW5yZWdpc3RlcmVkLiBDdXJyZW50bHksIGB0ZXN0aGFybmVzcy5qc2AgZG9lcyBu
b3QKKyAgICAgICAgLy8gc3VwcG9ydCBhc3luY2hyb25vdXMgZ2xvYmFsICJ0ZWFyIGRvd24iIGxv
Z2ljLCBzbyB0aGlzIG11c3QgYmUKKyAgICAgICAgLy8gZXhwcmVzc2VkIHVzaW5nIGEgZGVkaWNh
dGVkIGBwcm9taXNlX3Rlc3RgLiBCZWNhdXNlIHRoZSBvdGhlcgorICAgICAgICAvLyBzdWItdGVz
dHMgaW4gdGhpcyBmaWxlIGFyZSBkZWNsYXJlZCBzeW5jaHJvbm91c2x5LCB0aGlzIHRlc3Qgd2ls
bCBiZQorICAgICAgICAvLyB0aGUgZmluYWwgdGVzdCBleGVjdXRlZC4KKyAgICAgICAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAg
fSwgJ3Jlc3RvcmUgZ2xvYmFsIHN0YXRlJyk7CisKKyAgICAgICAgcmV0dXJuIHtmcmFtZTogZnJh
bWUsIHdvcmtlcjogd29ya2VyfTsKKyAgICAgIH0pOworCisgICAgcmV0dXJuIHJlZ2lzdGVyOwor
ICB9LCAnaW5pdGlhbGl6ZSBnbG9iYWwgc3RhdGUnKTsKKworZnVuY3Rpb24gcHJvbWlzZV9mcmFt
ZV90ZXN0KGJvZHksIGRlc2MpIHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAg
ICAgIHJldHVybiByZWdpc3Rlci50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgIHJl
dHVybiBib2R5KHRlc3QsIHJlc3VsdC5mcmFtZSwgcmVzdWx0Lndvcmtlcik7CisgICAgICAgIH0p
OworICAgIH0sIGRlc2MpOworfQorCitwcm9taXNlX2ZyYW1lX3Rlc3QoZnVuY3Rpb24odCwgZnJh
bWUsIHdvcmtlcikgeworICAgICAgcmV0dXJuIGNoZWNrX3VybHMoCisgICAgICAgICAgd29ya2Vy
LAorICAgICAgICAgIFt7CisgICAgICAgICAgICB1cmw6IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lO
J10gKyBwYXRoICsgU0NPUEUsCisgICAgICAgICAgICBtb2RlOiAnbmF2aWdhdGUnCisgICAgICAg
ICAgfV0pOworICB9LCAnVGhlIFNXIG11c3QgaW50ZXJjZXB0IHRoZSByZXF1ZXN0IGZvciBhIG1h
aW4gcmVzb3VyY2UuJyk7CisKK3Byb21pc2VfZnJhbWVfdGVzdChmdW5jdGlvbih0LCBmcmFtZSwg
d29ya2VyKSB7CisgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cueGhyKEJBU0VfVVJMKQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNoZWNrX3VybHMoCisg
ICAgICAgICAgICAgIHdvcmtlciwKKyAgICAgICAgICAgICAgW3sgdXJsOiBCQVNFX1VSTCwgbW9k
ZTogJ2NvcnMnIH1dKTsKKyAgICAgICAgfSk7CisgIH0sICdUaGUgU1cgbXVzdCBpbnRlcmNlcHQg
dGhlIHJlcXVlc3Qgb2Ygc2FtZSBvcmlnaW4gWEhSLicpOworCitwcm9taXNlX2ZyYW1lX3Rlc3Qo
ZnVuY3Rpb24odCwgZnJhbWUsIHdvcmtlcikgeworICAgIHJldHVybiBwcm9taXNlX3JlamVjdHMo
CisgICAgICAgIHQsCisgICAgICAgIG5ldyBFcnJvcigpLAorICAgICAgICBmcmFtZS5jb250ZW50
V2luZG93LnhocihPVEhFUl9CQVNFX1VSTCksCisgICAgICAgICdTVyBmYWxsYmFja2VkIENPUlMt
dW5zdXBwb3J0ZWQgb3RoZXIgb3JpZ2luIFhIUiBzaG91bGQgZmFpbC4nKQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNoZWNrX3VybHMoCisgICAgICAgICAgICAg
IHdvcmtlciwKKyAgICAgICAgICAgICAgW3sgdXJsOiBPVEhFUl9CQVNFX1VSTCwgbW9kZTogJ2Nv
cnMnIH1dKTsKKyAgICAgICAgfSk7CisgIH0sICdUaGUgU1cgbXVzdCBpbnRlcmNlcHQgdGhlIHJl
cXVlc3Qgb2YgQ09SUy11bnN1cHBvcnRlZCBvdGhlciBvcmlnaW4gWEhSLicpOworCitwcm9taXNl
X2ZyYW1lX3Rlc3QoZnVuY3Rpb24odCwgZnJhbWUsIHdvcmtlcikgeworICAgIHJldHVybiBmcmFt
ZS5jb250ZW50V2luZG93LnhocihPVEhFUl9CQVNFX1VSTCArICdBQ0FPcmlnaW49KicpCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gY2hlY2tfdXJscygKKyAgICAg
ICAgICAgICAgd29ya2VyLAorICAgICAgICAgICAgICBbeyB1cmw6IE9USEVSX0JBU0VfVVJMICsg
J0FDQU9yaWdpbj0qJywgbW9kZTogJ2NvcnMnIH1dKTsKICAgICAgICAgfSkKKyAgfSwgJ1RoZSBT
VyBtdXN0IGludGVyY2VwdCB0aGUgcmVxdWVzdCBvZiBDT1JTLXN1cHBvcnRlZCBvdGhlciBvcmln
aW4gWEhSLicpOworCitwcm9taXNlX2ZyYW1lX3Rlc3QoZnVuY3Rpb24odCwgZnJhbWUsIHdvcmtl
cikgeworICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LnhocigKKyAgICAgICAgICAgICAg
ICAgIFJFRElSRUNUX1VSTCArIGVuY29kZVVSSUNvbXBvbmVudChCQVNFX1VSTCkpCiAgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICByZXR1cm4geGhyX2ZhaWxfdGVzdCgKLSAgICAg
ICAgICAgICAgZnJhbWUsCi0gICAgICAgICAgICAgIFJFRElSRUNUX1VSTCArIGVuY29kZVVSSUNv
bXBvbmVudChPVEhFUl9CQVNFX1VSTCkpOworICAgICAgICAgIHJldHVybiBjaGVja191cmxzKAor
ICAgICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAgIFt7CisgICAgICAgICAgICAgICAg
dXJsOiBSRURJUkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25lbnQoQkFTRV9VUkwpLAorICAgICAg
ICAgICAgICAgIG1vZGU6ICdjb3JzJworICAgICAgICAgICAgICB9XSk7CisgICAgICAgIH0pOwor
ICB9LCAnVGhlIFNXIG11c3QgaW50ZXJjZXB0IG9ubHkgdGhlIGZpcnN0IHJlcXVlc3Qgb2YgcmVk
aXJlY3RlZCBYSFIuJyk7CisKK3Byb21pc2VfZnJhbWVfdGVzdChmdW5jdGlvbih0LCBmcmFtZSwg
d29ya2VyKSB7CisgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cygKKyAgICAgICAgdCwKKyAgICAg
ICAgbmV3IEVycm9yKCksCisgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cueGhyKAorICAgICAg
ICAgIFJFRElSRUNUX1VSTCArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9CQVNFX1VSTCkpLAor
ICAgICAgICAnU1cgZmFsbGJhY2tlZCBYSFIgd2hpY2ggaXMgcmVkaXJlY3RlZCB0byBDT1JTLXVu
c3VwcG9ydGVkICcgKworICAgICAgICAgICdvdGhlciBvcmlnaW4gc2hvdWxkIGZhaWwuJykKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBjaGVja191cmxzKAorICAg
ICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAgIFt7CisgICAgICAgICAgICAgICAgdXJs
OiBSRURJUkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfQkFTRV9VUkwpLAorICAg
ICAgICAgICAgICAgIG1vZGU6ICdjb3JzJworICAgICAgICAgICAgICB9XSk7CisgICAgICAgIH0p
OworICB9LCAnVGhlIFNXIG11c3QgaW50ZXJjZXB0IG9ubHkgdGhlIGZpcnN0IHJlcXVlc3QgZm9y
IFhIUiB3aGljaCBpcycgKworICAgICAnIHJlZGlyZWN0ZWQgdG8gQ09SUy11bnN1cHBvcnRlZCBv
dGhlciBvcmlnaW4uJyk7CisKK3Byb21pc2VfZnJhbWVfdGVzdChmdW5jdGlvbih0LCBmcmFtZSwg
d29ya2VyKSB7CisgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LnhocigKKyAgICAgICAgICAg
ICAgICAgIFJFRElSRUNUX1VSTCArCisgICAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25l
bnQoT1RIRVJfQkFTRV9VUkwgKyAnQUNBT3JpZ2luPSonKSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeworICAgICAgICAgIHJldHVybiBjaGVja191cmxzKAorICAgICAgICAgICAgICB3b3JrZXIs
CisgICAgICAgICAgICAgIFt7CisgICAgICAgICAgICAgICAgdXJsOiBSRURJUkVDVF9VUkwgKwor
ICAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX0JBU0VfVVJMICsg
J0FDQU9yaWdpbj0qJyksCisgICAgICAgICAgICAgICAgbW9kZTogJ2NvcnMnCisgICAgICAgICAg
ICAgIH1dKTsKKyAgICAgICAgfSk7CisgIH0sICdUaGUgU1cgbXVzdCBpbnRlcmNlcHQgb25seSB0
aGUgZmlyc3QgcmVxdWVzdCBmb3IgWEhSIHdoaWNoIGlzICcgKworICAgICAncmVkaXJlY3RlZCB0
byBDT1JTLXN1cHBvcnRlZCBvdGhlciBvcmlnaW4uJyk7CisKK3Byb21pc2VfZnJhbWVfdGVzdChm
dW5jdGlvbih0LCBmcmFtZSwgd29ya2VyKSB7CisgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93
LmxvYWRfaW1hZ2UoQkFTRV9QTkdfVVJMLCAnJykKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIHJldHVybiBjaGVja191cmxzKAorICAgICAgICAgICAgICB3b3JrZXIsCisgICAg
ICAgICAgICAgIFt7IHVybDogQkFTRV9QTkdfVVJMLCBtb2RlOiAnbm8tY29ycycgfV0pOworICAg
ICAgICB9KTsKKyAgfSwgJ1RoZSBTVyBtdXN0IGludGVyY2VwdCB0aGUgcmVxdWVzdCBmb3IgaW1h
Z2UuJyk7CisKK3Byb21pc2VfZnJhbWVfdGVzdChmdW5jdGlvbih0LCBmcmFtZSwgd29ya2VyKSB7
CisgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfaW1hZ2UoT1RIRVJfQkFTRV9QTkdf
VVJMLCAnJykKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBjaGVj
a191cmxzKAorICAgICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAgIFt7IHVybDogT1RI
RVJfQkFTRV9QTkdfVVJMLCBtb2RlOiAnbm8tY29ycycgfV0pOworICAgICAgICB9KTsKKyAgfSwg
J1RoZSBTVyBtdXN0IGludGVyY2VwdCB0aGUgcmVxdWVzdCBmb3Igb3RoZXIgb3JpZ2luIGltYWdl
LicpOworCitwcm9taXNlX2ZyYW1lX3Rlc3QoZnVuY3Rpb24odCwgZnJhbWUsIHdvcmtlcikgewor
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKAorICAgICAgICB0LAorICAgICAgICBuZXcgRXJyb3Io
KSwKKyAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5sb2FkX2ltYWdlKE9USEVSX0JBU0VfUE5H
X1VSTCwgJ2Fub255bW91cycpLAorICAgICAgICAnU1cgZmFsbGJhY2tlZCBDT1JTLXVuc3VwcG9y
dGVkIG90aGVyIG9yaWdpbiBpbWFnZSByZXF1ZXN0ICcgKworICAgICAgICAgICdzaG91bGQgZmFp
bC4nKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIGNoZWNrX3Vy
bHMoCisgICAgICAgICAgICAgIHdvcmtlciwKKyAgICAgICAgICAgICAgW3sgdXJsOiBPVEhFUl9C
QVNFX1BOR19VUkwsIG1vZGU6ICdjb3JzJyB9XSk7CiAgICAgICAgIH0pCisgIH0sICdUaGUgU1cg
bXVzdCBpbnRlcmNlcHQgdGhlIHJlcXVlc3QgZm9yIENPUlMtdW5zdXBwb3J0ZWQgb3RoZXIgJyAr
CisgICAgICdvcmlnaW4gaW1hZ2UuJyk7CisKK3Byb21pc2VfZnJhbWVfdGVzdChmdW5jdGlvbih0
LCBmcmFtZSwgd29ya2VyKSB7CisgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfaW1h
Z2UoCisgICAgICAgICAgICAgICAgICBPVEhFUl9CQVNFX1BOR19VUkwgKyAnQUNBT3JpZ2luPSon
LCAnYW5vbnltb3VzJykKICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVy
biB4aHJfc3VjY2VlZF90ZXN0KAotICAgICAgICAgICAgICBmcmFtZSwKLSAgICAgICAgICAgICAg
UkVESVJFQ1RfVVJMICsKLSAgICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX0JB
U0VfVVJMICsgJ0FDQU9yaWdpbj0qJykpOworICAgICAgICAgIHJldHVybiBjaGVja191cmxzKAor
ICAgICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAgIFt7IHVybDogT1RIRVJfQkFTRV9Q
TkdfVVJMICsgJ0FDQU9yaWdpbj0qJywgbW9kZTogJ2NvcnMnIH1dKTsKKyAgICAgICAgfSk7Cisg
IH0sICdUaGUgU1cgbXVzdCBpbnRlcmNlcHQgdGhlIHJlcXVlc3QgZm9yIENPUlMtc3VwcG9ydGVk
IG90aGVyICcgKworICAgICAnb3JpZ2luIGltYWdlLicpOworCitwcm9taXNlX2ZyYW1lX3Rlc3Qo
ZnVuY3Rpb24odCwgZnJhbWUsIHdvcmtlcikgeworICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRv
dy5sb2FkX2ltYWdlKAorICAgICAgICAgICAgICAgICAgUkVESVJFQ1RfVVJMICsgZW5jb2RlVVJJ
Q29tcG9uZW50KEJBU0VfUE5HX1VSTCksICcnKQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoCisgICAgICAgICAgICAgICdTVyBmYWxsYmFja2Vk
IHJlZGlyZWN0ZWQgaW1hZ2UgcmVxdWVzdCBzaG91bGQgc3VjY2VlZC4nKTsKICAgICAgICAgfSkK
ICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewotICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlKSB7Ci0gICAgICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3Nh
Z2VDaGFubmVsKCk7Ci0gICAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24obXNnKSB7Ci0gICAgICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUo
KTsKLSAgICAgICAgICAgICAgICAgIHJlc29sdmUobXNnKTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHtwb3J0OiBjaGFubmVsLnBvcnQyfSwg
W2NoYW5uZWwucG9ydDJdKTsKLSAgICAgICAgICAgIH0pOworICAgICAgICAgIHJldHVybiBjaGVj
a191cmxzKAorICAgICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAgIFt7CisgICAgICAg
ICAgICAgICAgdXJsOiBSRURJUkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25lbnQoQkFTRV9QTkdf
VVJMKSwKKyAgICAgICAgICAgICAgICBtb2RlOiAnbm8tY29ycycKKyAgICAgICAgICAgICAgfV0p
OworICAgICAgICB9KTsKKyAgfSwgJ1RoZSBTVyBtdXN0IGludGVyY2VwdCBvbmx5IHRoZSBmaXJz
dCByZXF1ZXN0IGZvciByZWRpcmVjdGVkICcgKworICAgICAnaW1hZ2UgcmVzb3VyY2UuJyk7CisK
K3Byb21pc2VfZnJhbWVfdGVzdChmdW5jdGlvbih0LCBmcmFtZSwgd29ya2VyKSB7CisgIHJldHVy
biBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfaW1hZ2UoCisgICAgICAgICAgICAgICAgICBSRURJ
UkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfQkFTRV9QTkdfVVJMKSwgJycpCisg
ICAgICAuY2F0Y2goZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAg
ICAgICAgICAgICAgJ1NXIGZhbGxiYWNrZWQgaW1hZ2UgcmVxdWVzdCB3aGljaCBpcyByZWRpcmVj
dGVkIHRvICcgKworICAgICAgICAgICAgICAnb3RoZXIgb3JpZ2luIHNob3VsZCBzdWNjZWVkLicp
OwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24obXNnKSB7Ci0gICAgICAgICAgdmFy
IHJlcXVlc3RzID0gbXNnLmRhdGEucmVxdWVzdHM7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZXF1ZXN0cy5sZW5ndGgsIGV4cGVjdGVkX3VybHMubGVuZ3RoICsgMSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdUaGUgY291bnQgb2YgdGhlIHJlcXVlc3RzIHdoaWNoIGFyZSBwYXNzZWQgdG8g
dGhlICcgKwotICAgICAgICAgICAgICAgICAgICAgICAgJ1NlcnZpY2VXb3JrZXIgbXVzdCBiZSBj
b3JyZWN0LicpOwotICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVxdWVzdHNbMF0udXJsLCBuZXcg
VVJMKFNDT1BFLCBsb2NhdGlvbikudG9TdHJpbmcoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICdUaGUgZmlyc3QgcmVxdWVzdCB0byB0aGUgU1cgbXVzdCBiZSB0aGUgcmVxdWVzdCBmb3IgJyAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICAndGhlIHBhZ2UuJyk7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXF1ZXN0c1swXS5tb2RlLCAnbmF2aWdhdGUnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ1RoZSBtb2RlIG9mIHRoZSBmaXJzdCByZXF1ZXN0IHRvIHRoZSBTVyBtdXN0IGJlICcg
KwotICAgICAgICAgICAgICAgICAgICAgICAgJ25hdmlnYXRlJyk7Ci0gICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBleHBlY3RlZF91cmxzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHJlcXVlc3RzW2kgKyAxXS51cmwsIGV4cGVjdGVkX3VybHNbaV0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICdUaGUgVVJMIG9mIHRoZSByZXF1ZXN0IHdoaWNoIHdhcyBw
YXNzZWQgZnJvbSBYSFIgJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICd0byB0aGUgU2Vy
dmljZVdvcmtlciBtdXN0IGJlIGNvcnJlY3QuJyk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlcXVlc3RzW2kgKyAxXS5tb2RlLCAnY29ycycsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICdUaGUgbW9kZSBvZiB0aGUgcmVxdWVzdCB3aGljaCB3YXMgcGFzc2VkIGZyb20gWEhSICcgKwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAndG8gdGhlIFNlcnZpY2VXb3JrZXIgbXVzdCBiZSBj
b3JzLicpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9kb25lKHQsIFNDT1BFKTsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAg
IHJldHVybiBjaGVja191cmxzKAorICAgICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAg
IFt7CisgICAgICAgICAgICAgICAgdXJsOiBSRURJUkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25l
bnQoT1RIRVJfQkFTRV9QTkdfVVJMKSwKKyAgICAgICAgICAgICAgICBtb2RlOiAnbm8tY29ycycK
KyAgICAgICAgICAgICAgfV0pOwogICAgICAgICB9KQotICAgICAgLmNhdGNoKHVucmVhY2hlZF9y
ZWplY3Rpb24odCkpOwotICB9LCAnVmVyaWZ5IHRoZSBmYWxsYmFjayBiZWhhdmlvciBvZiBGZXRj
aEV2ZW50Jyk7CisgIH0sICdUaGUgU1cgbXVzdCBpbnRlcmNlcHQgb25seSB0aGUgZmlyc3QgcmVx
dWVzdCBmb3IgaW1hZ2UgJyArCisgICAgICdyZXNvdXJjZSB3aGljaCBpcyByZWRpcmVjdGVkIHRv
IG90aGVyIG9yaWdpbi4nKTsKKworcHJvbWlzZV9mcmFtZV90ZXN0KGZ1bmN0aW9uKHQsIGZyYW1l
LCB3b3JrZXIpIHsKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0cygKKyAgICAgICAgdCwKKyAgICAg
ICAgbmV3IEVycm9yKCksCisgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubG9hZF9pbWFnZSgK
KyAgICAgICAgICAgIFJFRElSRUNUX1VSTCArIGVuY29kZVVSSUNvbXBvbmVudChPVEhFUl9CQVNF
X1BOR19VUkwpLAorICAgICAgICAgICAgJ2Fub255bW91cycpLAorICAgICAgICAnU1cgZmFsbGJh
Y2tlZCBpbWFnZSByZXF1ZXN0IHdoaWNoIGlzIHJlZGlyZWN0ZWQgdG8gJyArCisgICAgICAgICAg
J0NPUlMtdW5zdXBwb3J0ZWQgb3RoZXIgb3JpZ2luIHNob3VsZCBmYWlsLicpCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gY2hlY2tfdXJscygKKyAgICAgICAgICAg
ICAgd29ya2VyLAorICAgICAgICAgICAgICBbeworICAgICAgICAgICAgICAgIHVybDogUkVESVJF
Q1RfVVJMICsgZW5jb2RlVVJJQ29tcG9uZW50KE9USEVSX0JBU0VfUE5HX1VSTCksCisgICAgICAg
ICAgICAgICAgbW9kZTogJ2NvcnMnCisgICAgICAgICAgICAgIH1dKTsKKyAgICAgICAgfSk7Cisg
IH0sICdUaGUgU1cgbXVzdCBpbnRlcmNlcHQgb25seSB0aGUgZmlyc3QgcmVxdWVzdCBmb3IgaW1h
Z2UgJyArCisgICAgICdyZXNvdXJjZSB3aGljaCBpcyByZWRpcmVjdGVkIHRvIENPUlMtdW5zdXBw
b3J0ZWQgb3RoZXIgb3JpZ2luLicpOworCitwcm9taXNlX2ZyYW1lX3Rlc3QoZnVuY3Rpb24odCwg
ZnJhbWUsIHdvcmtlcikgeworICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfaW1h
Z2UoCisgICAgICAgIFJFRElSRUNUX1VSTCArCisgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50
KE9USEVSX0JBU0VfUE5HX1VSTCArICdBQ0FPcmlnaW49KicpLAorICAgICAgICAnYW5vbnltb3Vz
JykKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBjaGVja191cmxz
KAorICAgICAgICAgICAgICB3b3JrZXIsCisgICAgICAgICAgICAgIFt7CisgICAgICAgICAgICAg
ICAgdXJsOiBSRURJUkVDVF9VUkwgKworICAgICAgICAgICAgICAgICAgICAgZW5jb2RlVVJJQ29t
cG9uZW50KE9USEVSX0JBU0VfUE5HX1VSTCArICdBQ0FPcmlnaW49KicpLAorICAgICAgICAgICAg
ICAgIG1vZGU6ICdjb3JzJworICAgICAgICAgICAgICB9XSk7CisgICAgICAgIH0pOworICB9LCAn
VGhlIFNXIG11c3QgaW50ZXJjZXB0IG9ubHkgdGhlIGZpcnN0IHJlcXVlc3QgZm9yIGltYWdlICcg
KworICAgICAncmVzb3VyY2Ugd2hpY2ggaXMgcmVkaXJlY3RlZCB0byBDT1JTLXN1cHBvcnRlZCBv
dGhlciBvcmlnaW4uJyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLXJlcXVlc3QtaHRtbC1pbXBvcnRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyZjU2
ZGE5ZjAxNzI0YWEwYmEwNDQ1MzhjYzc3MzE2MjBhYjdmOTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRwcy5odG1sCkBA
IC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBG
ZXRjaEV2ZW50IGZvciBIVE1MSW1wb3J0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIHZhciBTQ09QRSA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMt
aWZyYW1lLmh0bWwnOworICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qt
aHRtbC1pbXBvcnRzLXdvcmtlci5qcyc7CisgICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2lu
Zm8oKTsKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJ
UFQsIFNDT1BFKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAg
ICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0
aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdp
dGhfaWZyYW1lKFNDT1BFKTsgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAg
ICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgZnJhbWUucmVt
b3ZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICB2YXIgc2FtZSA9IGZyYW1lLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhbWUiKS5pbXBvcnQ7CisgICAgICAg
ICAgdmFyIHNhbWVfc2FtZSA9IHNhbWUuZ2V0RWxlbWVudEJ5SWQoInNhbWUtc2FtZSIpLmltcG9y
dDsKKyAgICAgICAgICB2YXIgc2FtZV9vdGhlciA9IHNhbWUuZ2V0RWxlbWVudEJ5SWQoInNhbWUt
b3RoZXIiKS5pbXBvcnQ7CisgICAgICAgICAgdmFyIG90aGVyID0KKyAgICAgICAgICAgICAgZnJh
bWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3RoZXIiKS5pbXBvcnQ7
CisgICAgICAgICAgdmFyIG90aGVyX3NhbWUgPSBvdGhlci5nZXRFbGVtZW50QnlJZCgib3RoZXIt
c2FtZSIpLmltcG9ydDsKKyAgICAgICAgICB2YXIgb3RoZXJfb3RoZXIgPSBvdGhlci5nZXRFbGVt
ZW50QnlJZCgib3RoZXItb3RoZXIiKS5pbXBvcnQ7CisKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KAorICAgICAgICAgICAgICBzYW1lLmJvZHkuaW5uZXJUZXh0LAorICAgICAgICAgICAgICAnbW9k
ZT1jb3JzIGNyZWRlbnRpYWxzPXNhbWUtb3JpZ2luJywKKyAgICAgICAgICAgICAgJ1RoZSByZXF1
ZXN0IG1vZGUgYW5kIGNyZWRlbnRpYWxzIGZvciBzYW1lIG9yaWdpbiBIVE1MSW1wb3J0ICcgKwor
ICAgICAgICAgICAgICAnbXVzdCBiZSBzZXQgY29ycmVjdGx5LicpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoCisgICAgICAgICAgICAgIHNhbWVfc2FtZS5ib2R5LmlubmVyVGV4dCwKKyAgICAg
ICAgICAgICAgJ21vZGU9Y29ycyBjcmVkZW50aWFscz1zYW1lLW9yaWdpbicsCisgICAgICAgICAg
ICAgICdUaGUgcmVxdWVzdCBtb2RlIGFuZCBjcmVkZW50aWFscyBmb3Igc2FtZSBvcmlnaW4gSFRN
TEltcG9ydCAnICsKKyAgICAgICAgICAgICAgJ2Zyb20gc2FtZSBvcmlnaW4gSFRNTEltcG9ydHMg
bXVzdCBiZSBzZXQgY29ycmVjdGx5LicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAg
ICAgICAgICAgIHNhbWVfb3RoZXIuYm9keS5pbm5lclRleHQsCisgICAgICAgICAgICAgICdtb2Rl
PWNvcnMgY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4nLAorICAgICAgICAgICAgICAnVGhlIHJlcXVl
c3QgbW9kZSBhbmQgY3JlZGVudGlhbHMgZm9yIG90aGVyIG9yaWdpbiBIVE1MSW1wb3J0ICcgKwor
ICAgICAgICAgICAgICAnZnJvbSBzYW1lIG9yaWdpbiBIVE1MSW1wb3J0cyBtdXN0IGJlIHNldCBj
b3JyZWN0bHkuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgb3Ro
ZXIuYm9keS5pbm5lclRleHQsCisgICAgICAgICAgICAgICdtb2RlPWNvcnMgY3JlZGVudGlhbHM9
c2FtZS1vcmlnaW4nLAorICAgICAgICAgICAgICAnVGhlIHJlcXVlc3QgbW9kZSBhbmQgY3JlZGVu
dGlhbHMgZm9yIG90aGVyIG9yaWdpbiBIVE1MSW1wb3J0ICcgKworICAgICAgICAgICAgICAnbXVz
dCBiZSBzZXQgY29ycmVjdGx5LicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAg
ICAgICAgIG90aGVyX3NhbWUuYm9keS5pbm5lclRleHQsCisgICAgICAgICAgICAgICdtb2RlPWNv
cnMgY3JlZGVudGlhbHM9c2FtZS1vcmlnaW4nLAorICAgICAgICAgICAgICAnVGhlIHJlcXVlc3Qg
bW9kZSBhbmQgY3JlZGVudGlhbHMgZm9yIHNhbWUgb3JpZ2luIEhUTUxJbXBvcnQgJyArCisgICAg
ICAgICAgICAgICdmcm9tIG90aGVyIG9yaWdpbiBIVE1MSW1wb3J0cyBtdXN0IGJlIHNldCBjb3Jy
ZWN0bHkuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgb3RoZXJf
b3RoZXIuYm9keS5pbm5lclRleHQsCisgICAgICAgICAgICAgICdtb2RlPWNvcnMgY3JlZGVudGlh
bHM9c2FtZS1vcmlnaW4nLAorICAgICAgICAgICAgICAnVGhlIHJlcXVlc3QgbW9kZSBhbmQgY3Jl
ZGVudGlhbHMgZm9yIG90aGVyIG9yaWdpbiBIVE1MSW1wb3J0ICcgKworICAgICAgICAgICAgICAn
ZnJvbSBvdGhlciBvcmlnaW4gSFRNTEltcG9ydCBtdXN0IGJlIHNldCBjb3JyZWN0bHkuJyk7CisK
KyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsK
KyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwg
J1ZlcmlmeSB0aGUgRmV0Y2hFdmVudCBmb3IgSFRNTEltcG9ydHMnKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC5odHRwcy5odG1s
CmluZGV4IDI1ZDRhNmVmMzJiNWYzZmEyODIwYzExNzUzOWU0ZDJlMTExNjg5NGQuLjE4YmZhNjFl
ODlmOTI0MzU1ZWNmM2E4MjFhNGRhNDljMTIyNmViMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1yZXF1ZXN0LXJlZGlyZWN0Lmh0dHBzLmh0bWwKQEAgLTMsNyArMyw3IEBA
CiA8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0
LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0
LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKQEAgLTM0LDEwICszNCwxNyBA
QCBmdW5jdGlvbiBpZnJhbWVfdGVzdCh1cmwsIHRpbWVvdXRfZW5hYmxlZCkgewogICAgICAgZnJh
bWUub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGlmICh0aW1lb3V0X2VuYWJsZWQpCiAg
ICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsKLSAgICAgICAgaWYgKGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5ib2R5LnRleHRDb250ZW50ID09ICdIZWxsbyB3b3JsZFxuJykKLSAgICAgICAgICBy
ZXNvbHZlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdjb250
ZW50IG1pc21hdGNoJykpOworICAgICAgICB0cnkgeworICAgICAgICAgIGlmIChmcmFtZS5jb250
ZW50RG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCA9PSAnSGVsbG8gd29ybGRcbicpCisgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVqZWN0KG5ldyBF
cnJvcignY29udGVudCBtaXNtYXRjaCcpKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgIC8vIENocm9tZSB0cmVhdHMgaWZyYW1lcyB0aGF0IGZhaWxlZCB0byBsb2FkIGR1ZSB0byBh
IG5ldHdvcmsgZXJyb3IgYXMKKyAgICAgICAgICAvLyBoYXZpbmcgYSBkaWZmZXJlbnQgb3JpZ2lu
LCBzbyBhY2Nlc3NpbmcgY29udGVudERvY3VtZW50IHRocm93cyBhbgorICAgICAgICAgIC8vIGVy
cm9yLiBPdGhlciBicm93c2VycyBtaWdodCBoYXZlIGRpZmZlcmVudCBiZWhhdmlvci4KKyAgICAg
ICAgICByZWplY3QobmV3IEVycm9yKGUpKTsKKyAgICAgICAgfQogICAgICAgICBmcmFtZS5yZW1v
dmUoKTsKICAgICAgIH07CiAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1lKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVzb3VyY2VzLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXJlc291cmNlcy5odHRw
cy5odG1sCmluZGV4IDA1ODRjYWZiMDc1ZGYyZjMxMjQ0OTg3NWQ2MjgwYjE0ZTEwNWFkNjIuLjky
ZWY0Njg0NjY4ZTkxOTEyNGJmYTNiNjE0NjliZjQ4OWNiYzNiMTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtcmVzb3VyY2VzLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZXNvdXJjZXMuaHR0cHMuaHRtbApAQCAtMiw2
MiArMiwxMjUgQEAKIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogRmV0Y2hFdmVudCBmb3IgcmVzb3Vy
Y2VzPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3Vi
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgogdmFyIHVybF9jb3VudCA9IDA7CiB2YXIgZXhwZWN0ZWRfcmVzdWx0
cyA9IHt9OwogCi1mdW5jdGlvbiBpbWFnZV90ZXN0KGZyYW1lLCB1cmwsIGNyb3NzX29yaWdpbiwg
ZXhwZXh0ZWRfbW9kZSwKK2Z1bmN0aW9uIGltYWdlX3Rlc3QoZnJhbWUsIHVybCwgY3Jvc3Nfb3Jp
Z2luLCBleHBlY3RlZF9tb2RlLAogICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9jcmVkZW50
aWFscykgewogICB2YXIgYWN0dWFsX3VybCA9IHVybCArICgrK3VybF9jb3VudCk7CiAgIGV4cGVj
dGVkX3Jlc3VsdHNbYWN0dWFsX3VybF0gPSB7CiAgICAgICBjcm9zc19vcmlnaW46IGNyb3NzX29y
aWdpbiwKLSAgICAgIG1vZGU6IGV4cGV4dGVkX21vZGUsCisgICAgICBtb2RlOiBleHBlY3RlZF9t
b2RlLAogICAgICAgY3JlZGVudGlhbHM6IGV4cGVjdGVkX2NyZWRlbnRpYWxzLAorICAgICAgcmVk
aXJlY3Q6ICdmb2xsb3cnLAorICAgICAgaW50ZWdyaXR5OiAnJywKICAgICAgIG1lc3NhZ2U6ICdJ
bWFnZSBsb2FkICh1cmw6JyArCiAgICAgICAgICAgICAgICBhY3R1YWxfdXJsICsgJyBjcm9zc19v
cmlnaW46JyArIGNyb3NzX29yaWdpbiArICcpJwogICAgIH07CiAgIHJldHVybiBmcmFtZS5jb250
ZW50V2luZG93LmxvYWRfaW1hZ2UoYWN0dWFsX3VybCwgY3Jvc3Nfb3JpZ2luKTsKIH0KIAotZnVu
Y3Rpb24gc2NyaXB0X3Rlc3QoZnJhbWUsIHVybCwgY3Jvc3Nfb3JpZ2luLCBleHBleHRlZF9tb2Rl
LAorZnVuY3Rpb24gc2NyaXB0X3Rlc3QoZnJhbWUsIHVybCwgY3Jvc3Nfb3JpZ2luLCBleHBlY3Rl
ZF9tb2RlLAogICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfY3JlZGVudGlhbHMpIHsKICAg
dmFyIGFjdHVhbF91cmwgPSB1cmwgKyAoKyt1cmxfY291bnQpOwogICBleHBlY3RlZF9yZXN1bHRz
W2FjdHVhbF91cmxdID0gewogICAgICAgY3Jvc3Nfb3JpZ2luOiBjcm9zc19vcmlnaW4sCi0gICAg
ICBtb2RlOiBleHBleHRlZF9tb2RlLAorICAgICAgbW9kZTogZXhwZWN0ZWRfbW9kZSwKICAgICAg
IGNyZWRlbnRpYWxzOiBleHBlY3RlZF9jcmVkZW50aWFscywKKyAgICAgIHJlZGlyZWN0OiAnZm9s
bG93JywKKyAgICAgIGludGVncml0eTogJycsCiAgICAgICBtZXNzYWdlOiAnU2NyaXB0IGxvYWQg
KHVybDonICsKICAgICAgICAgICAgICAgIGFjdHVhbF91cmwgKyAnIGNyb3NzX29yaWdpbjonICsg
Y3Jvc3Nfb3JpZ2luICsgJyknCiAgICAgfTsKICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cu
bG9hZF9zY3JpcHQoYWN0dWFsX3VybCwgY3Jvc3Nfb3JpZ2luKTsKIH0KIAotZnVuY3Rpb24gY3Nz
X3Rlc3QoZnJhbWUsIHVybCwgY3Jvc3Nfb3JpZ2luLCBleHBleHRlZF9tb2RlLAorZnVuY3Rpb24g
Y3NzX3Rlc3QoZnJhbWUsIHVybCwgY3Jvc3Nfb3JpZ2luLCBleHBlY3RlZF9tb2RlLAogICAgICAg
ICAgICAgICAgICAgZXhwZWN0ZWRfY3JlZGVudGlhbHMpIHsKICAgdmFyIGFjdHVhbF91cmwgPSB1
cmwgKyAoKyt1cmxfY291bnQpOwogICBleHBlY3RlZF9yZXN1bHRzW2FjdHVhbF91cmxdID0gewog
ICAgICAgY3Jvc3Nfb3JpZ2luOiBjcm9zc19vcmlnaW4sCi0gICAgICBtb2RlOiBleHBleHRlZF9t
b2RlLAorICAgICAgbW9kZTogZXhwZWN0ZWRfbW9kZSwKICAgICAgIGNyZWRlbnRpYWxzOiBleHBl
Y3RlZF9jcmVkZW50aWFscywKKyAgICAgIHJlZGlyZWN0OiAnZm9sbG93JywKKyAgICAgIGludGVn
cml0eTogJycsCiAgICAgICBtZXNzYWdlOiAnQ1NTIGxvYWQgKHVybDonICsKICAgICAgICAgICAg
ICAgIGFjdHVhbF91cmwgKyAnIGNyb3NzX29yaWdpbjonICsgY3Jvc3Nfb3JpZ2luICsgJyknCiAg
ICAgfTsKICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cubG9hZF9jc3MoYWN0dWFsX3VybCwg
Y3Jvc3Nfb3JpZ2luKTsKIH0KIAotZnVuY3Rpb24gZm9udF9mYWNlX3Rlc3QoZnJhbWUsIHVybCwg
ZXhwZXh0ZWRfbW9kZSwgZXhwZWN0ZWRfY3JlZGVudGlhbHMpIHsKK2Z1bmN0aW9uIGZvbnRfZmFj
ZV90ZXN0KGZyYW1lLCB1cmwsIGV4cGVjdGVkX21vZGUsIGV4cGVjdGVkX2NyZWRlbnRpYWxzKSB7
CiAgIHZhciBhY3R1YWxfdXJsID0gdXJsICsgKCsrdXJsX2NvdW50KTsKICAgZXhwZWN0ZWRfcmVz
dWx0c1thY3R1YWxfdXJsXSA9IHsKICAgICAgIHVybDogYWN0dWFsX3VybCwKLSAgICAgIG1vZGU6
IGV4cGV4dGVkX21vZGUsCisgICAgICBtb2RlOiBleHBlY3RlZF9tb2RlLAogICAgICAgY3JlZGVu
dGlhbHM6IGV4cGVjdGVkX2NyZWRlbnRpYWxzLAorICAgICAgcmVkaXJlY3Q6ICdmb2xsb3cnLAor
ICAgICAgaW50ZWdyaXR5OiAnJywKICAgICAgIG1lc3NhZ2U6ICdGb250RmFjZSBsb2FkICh1cmw6
JyArIGFjdHVhbF91cmwgKyAnKScKICAgICB9OwogICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRv
dy5sb2FkX2ZvbnQoYWN0dWFsX3VybCk7CiB9CiAKK2Z1bmN0aW9uIHNjcmlwdF9pbnRlZ3JpdHlf
dGVzdChmcmFtZSwgdXJsLCBpbnRlZ3JpdHksIGV4cGVjdGVkX2ludGVncml0eSkgeworICB2YXIg
YWN0dWFsX3VybCA9IHVybCArICgrK3VybF9jb3VudCk7CisgIGV4cGVjdGVkX3Jlc3VsdHNbYWN0
dWFsX3VybF0gPSB7CisgICAgICB1cmw6IGFjdHVhbF91cmwsCisgICAgICBtb2RlOiAnbm8tY29y
cycsCisgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLAorICAgICAgcmVkaXJlY3Q6ICdmb2xs
b3cnLAorICAgICAgaW50ZWdyaXR5OiBleHBlY3RlZF9pbnRlZ3JpdHksCisgICAgICBtZXNzYWdl
OiAnU2NyaXB0IGxvYWQgKHVybDonICsgYWN0dWFsX3VybCArICcpJworICAgIH07CisgIHJldHVy
biBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfc2NyaXB0X3dpdGhfaW50ZWdyaXR5KGFjdHVhbF91
cmwsIGludGVncml0eSk7Cit9CisKK2Z1bmN0aW9uIGNzc19pbnRlZ3JpdHlfdGVzdChmcmFtZSwg
dXJsLCBpbnRlZ3JpdHksIGV4cGVjdGVkX2ludGVncml0eSkgeworICB2YXIgYWN0dWFsX3VybCA9
IHVybCArICgrK3VybF9jb3VudCk7CisgIGV4cGVjdGVkX3Jlc3VsdHNbYWN0dWFsX3VybF0gPSB7
CisgICAgICB1cmw6IGFjdHVhbF91cmwsCisgICAgICBtb2RlOiAnbm8tY29ycycsCisgICAgICBj
cmVkZW50aWFsczogJ2luY2x1ZGUnLAorICAgICAgcmVkaXJlY3Q6ICdmb2xsb3cnLAorICAgICAg
aW50ZWdyaXR5OiBleHBlY3RlZF9pbnRlZ3JpdHksCisgICAgICBtZXNzYWdlOiAnQ1NTIGxvYWQg
KHVybDonICsgYWN0dWFsX3VybCArICcpJworICAgIH07CisgIHJldHVybiBmcmFtZS5jb250ZW50
V2luZG93LmxvYWRfY3NzX3dpdGhfaW50ZWdyaXR5KGFjdHVhbF91cmwsIGludGVncml0eSk7Cit9
CisKK2Z1bmN0aW9uIGZldGNoX3Rlc3QoZnJhbWUsIHVybCwgbW9kZSwgY3JlZGVudGlhbHMsCisg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX21vZGUsIGV4cGVjdGVkX2NyZWRlbnRpYWxzKSB7
CisgIHZhciBhY3R1YWxfdXJsID0gdXJsICsgKCsrdXJsX2NvdW50KTsKKyAgZXhwZWN0ZWRfcmVz
dWx0c1thY3R1YWxfdXJsXSA9IHsKKyAgICAgIG1vZGU6IGV4cGVjdGVkX21vZGUsCisgICAgICBj
cmVkZW50aWFsczogZXhwZWN0ZWRfY3JlZGVudGlhbHMsCisgICAgICByZWRpcmVjdDogJ2ZvbGxv
dycsCisgICAgICBpbnRlZ3JpdHk6ICcnLAorICAgICAgbWVzc2FnZTogJ2ZldGNoICh1cmw6JyAr
IGFjdHVhbF91cmwgKyAnIG1vZGU6JyArIG1vZGUgKyAnIGNyZWRlbnRpYWxzOicgKworICAgICAg
ICAgICAgICAgY3JlZGVudGlhbHMgKyAnKScKKyAgICB9OworICByZXR1cm4gZnJhbWUuY29udGVu
dFdpbmRvdy5mZXRjaCgKKyAgICAgIG5ldyBSZXF1ZXN0KGFjdHVhbF91cmwsIHttb2RlOiBtb2Rl
LCBjcmVkZW50aWFsczogY3JlZGVudGlhbHN9KSk7Cit9CisKK2Z1bmN0aW9uIGF1ZGlvX3Rlc3Qo
ZnJhbWUsIHVybCwgY3Jvc3Nfb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9t
b2RlLCBleHBlY3RlZF9jcmVkZW50aWFscykgeworICB2YXIgYWN0dWFsX3VybCA9IHVybCArICgr
K3VybF9jb3VudCk7CisgIGV4cGVjdGVkX3Jlc3VsdHNbYWN0dWFsX3VybF0gPSB7CisgICAgICBt
b2RlOiBleHBlY3RlZF9tb2RlLAorICAgICAgY3JlZGVudGlhbHM6IGV4cGVjdGVkX2NyZWRlbnRp
YWxzLAorICAgICAgcmVkaXJlY3Q6ICdmb2xsb3cnLAorICAgICAgaW50ZWdyaXR5OiAnJywKKyAg
ICAgIG1lc3NhZ2U6ICdBdWRpbyBsb2FkICh1cmw6JyArIGFjdHVhbF91cmwgKyAnIGNyb3NzX29y
aWdpbjonICsKKyAgICAgICAgICAgICAgIGNyb3NzX29yaWdpbiArICcpJworICAgIH07CisgIHJl
dHVybiBmcmFtZS5jb250ZW50V2luZG93LmxvYWRfYXVkaW8oYWN0dWFsX3VybCwgY3Jvc3Nfb3Jp
Z2luKTsKK30KKwogYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BFID0gJ3Jl
c291cmNlcy9mZXRjaC1yZXF1ZXN0LXJlc291cmNlcy1pZnJhbWUuaHR0cHMuaHRtbCc7CiAgICAg
dmFyIFNDUklQVCA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1yZXNvdXJjZXMtd29ya2VyLmpz
JzsKQEAgLTk0LDYgKzE1NywxNCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LmNyZWRlbnRpYWxzLCBleHBlY3RlZC5jcmVkZW50aWFscywKICAg
ICAgICAgICAgICAgICAgICAgJ2NyZWRlbnRpYWxzIG9mICcgKyBleHBlY3RlZC5tZXNzYWdlICsg
ICcgbXVzdCBiZSAnICsKICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQuY3JlZGVudGlhbHMg
KyAnLicpOworICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICAg
ICAgICByZXN1bHQucmVkaXJlY3QsIGV4cGVjdGVkLnJlZGlyZWN0LAorICAgICAgICAgICAgICAg
ICAgICAncmVkaXJlY3QgbW9kZSBvZiAnICsgZXhwZWN0ZWQubWVzc2FnZSArICAnIG11c3QgYmUg
JyArCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLnJlZGlyZWN0ICsgJy4nKTsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICAgICAgICByZXN1bHQuaW50
ZWdyaXR5LCBleHBlY3RlZC5pbnRlZ3JpdHksCisgICAgICAgICAgICAgICAgICAgICdpbnRlZ3Jp
dHkgb2YgJyArIGV4cGVjdGVkLm1lc3NhZ2UgKyAgJyBtdXN0IGJlICcgKworICAgICAgICAgICAg
ICAgICAgICBleHBlY3RlZC5pbnRlZ3JpdHkgKyAnLicpOwogICAgICAgICAgICAgICAgIC0tdXJs
X2NvdW50OwogICAgICAgICAgICAgICAgIGRlbGV0ZSBleHBlY3RlZF9yZXN1bHRzW3Jlc3VsdC51
cmxdOwogICAgICAgICAgICAgICAgIGlmICh1cmxfY291bnQgPT0gMCkgewpAQCAtMTE2LDYgKzE4
Nyw3IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogCiAgICAgICAgIGltYWdlX3Rlc3QoZiwg
TE9DQUxfVVJMLCAnYW5vbnltb3VzJywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKICAgICAgICAg
aW1hZ2VfdGVzdChmLCBMT0NBTF9VUkwsICd1c2UtY3JlZGVudGlhbHMnLCAnY29ycycsICdpbmNs
dWRlJyk7CisgICAgICAgIGltYWdlX3Rlc3QoZiwgUkVNT1RFX1VSTCwgJycsICduby1jb3JzJywg
J2luY2x1ZGUnKTsKICAgICAgICAgaW1hZ2VfdGVzdChmLCBSRU1PVEVfVVJMLCAnYW5vbnltb3Vz
JywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKICAgICAgICAgaW1hZ2VfdGVzdChmLCBSRU1PVEVf
VVJMLCAndXNlLWNyZWRlbnRpYWxzJywgJ2NvcnMnLCAnaW5jbHVkZScpOwogCkBAIC0xMjYsMTQg
KzE5OCw2MCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgc2NyaXB0X3Rlc3Qo
ZiwgUkVNT1RFX1VSTCwgJ2Fub255bW91cycsICdjb3JzJywgJ3NhbWUtb3JpZ2luJyk7CiAgICAg
ICAgIHNjcmlwdF90ZXN0KGYsIFJFTU9URV9VUkwsICd1c2UtY3JlZGVudGlhbHMnLCAnY29ycycs
ICdpbmNsdWRlJyk7CiAKKyAgICAgICAgY3NzX3Rlc3QoZiwgTE9DQUxfVVJMLCAnJywgJ25vLWNv
cnMnLCAnaW5jbHVkZScpOwogICAgICAgICBjc3NfdGVzdChmLCBMT0NBTF9VUkwsICdhbm9ueW1v
dXMnLCAnY29ycycsICdzYW1lLW9yaWdpbicpOwogICAgICAgICBjc3NfdGVzdChmLCBMT0NBTF9V
UkwsICd1c2UtY3JlZGVudGlhbHMnLCAnY29ycycsICdpbmNsdWRlJyk7CisgICAgICAgIGNzc190
ZXN0KGYsIFJFTU9URV9VUkwsICcnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7CiAgICAgICAgIGNz
c190ZXN0KGYsIFJFTU9URV9VUkwsICdhbm9ueW1vdXMnLCAnY29ycycsICdzYW1lLW9yaWdpbicp
OwogICAgICAgICBjc3NfdGVzdChmLCBSRU1PVEVfVVJMLCAndXNlLWNyZWRlbnRpYWxzJywgJ2Nv
cnMnLCAnaW5jbHVkZScpOwogCiAgICAgICAgIGZvbnRfZmFjZV90ZXN0KGYsIExPQ0FMX1VSTCwg
J2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKICAgICAgICAgZm9udF9mYWNlX3Rlc3QoZiwgUkVNT1RF
X1VSTCwgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKIAorICAgICAgICBzY3JpcHRfaW50ZWdyaXR5
X3Rlc3QoZiwgTE9DQUxfVVJMLCAnICAgICAnLCAnICAgICAnKTsKKyAgICAgICAgc2NyaXB0X2lu
dGVncml0eV90ZXN0KGYsIExPQ0FMX1VSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdUaGlzIGlzIG5vdCBhIHZhbGlkIGludGVncml0eSBiZWNhdXNlIGl0IGhhcyBubyBkYXNoZXMn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoaXMgaXMgbm90IGEgdmFsaWQgaW50
ZWdyaXR5IGJlY2F1c2UgaXQgaGFzIG5vIGRhc2hlcycpOworICAgICAgICBzY3JpcHRfaW50ZWdy
aXR5X3Rlc3QoZiwgTE9DQUxfVVJMLCAnc2hhMjU2LScsICdzaGEyNTYtJyk7CisgICAgICAgIHNj
cmlwdF9pbnRlZ3JpdHlfdGVzdChmLCBMT0NBTF9VUkwsICdzaGEyNTYtZm9vPzEyMycsICdzaGEy
NTYtZm9vPzEyMycpOworICAgICAgICBzY3JpcHRfaW50ZWdyaXR5X3Rlc3QoZiwgTE9DQUxfVVJM
LCAnc2hhMjU2LWZvbyBzaGEzODQtYWJjICcsICdzaGEyNTYtZm9vIHNoYTM4NC1hYmMgJyk7Cisg
ICAgICAgIHNjcmlwdF9pbnRlZ3JpdHlfdGVzdChmLCBMT0NBTF9VUkwsICdzaGEyNTYtZm9vIHNo
YTI1Ni1hYmMnLCAnc2hhMjU2LWZvbyBzaGEyNTYtYWJjJyk7CisKKyAgICAgICAgY3NzX2ludGVn
cml0eV90ZXN0KGYsIExPQ0FMX1VSTCwgJyAgICAgJywgJyAgICAgJyk7CisgICAgICAgIGNzc19p
bnRlZ3JpdHlfdGVzdChmLCBMT0NBTF9VUkwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAn
VGhpcyBpcyBub3QgYSB2YWxpZCBpbnRlZ3JpdHkgYmVjYXVzZSBpdCBoYXMgbm8gZGFzaGVzJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGlzIGlzIG5vdCBhIHZhbGlkIGludGVncml0
eSBiZWNhdXNlIGl0IGhhcyBubyBkYXNoZXMnKTsKKyAgICAgICAgY3NzX2ludGVncml0eV90ZXN0
KGYsIExPQ0FMX1VSTCwgJ3NoYTI1Ni0nLCAnc2hhMjU2LScpOworICAgICAgICBjc3NfaW50ZWdy
aXR5X3Rlc3QoZiwgTE9DQUxfVVJMLCAnc2hhMjU2LWZvbz8xMjMnLCAnc2hhMjU2LWZvbz8xMjMn
KTsKKyAgICAgICAgY3NzX2ludGVncml0eV90ZXN0KGYsIExPQ0FMX1VSTCwgJ3NoYTI1Ni1mb28g
c2hhMzg0LWFiYyAnLCAnc2hhMjU2LWZvbyBzaGEzODQtYWJjICcpOworICAgICAgICBjc3NfaW50
ZWdyaXR5X3Rlc3QoZiwgTE9DQUxfVVJMLCAnc2hhMjU2LWZvbyBzaGEyNTYtYWJjJywgJ3NoYTI1
Ni1mb28gc2hhMjU2LWFiYycpOworCisgICAgICAgIGZldGNoX3Rlc3QoZiwgTE9DQUxfVVJMLCAn
c2FtZS1vcmlnaW4nLCAnb21pdCcsICdzYW1lLW9yaWdpbicsICdvbWl0Jyk7CisgICAgICAgIGZl
dGNoX3Rlc3QoZiwgTE9DQUxfVVJMLCAnc2FtZS1vcmlnaW4nLCAnc2FtZS1vcmlnaW4nLAorICAg
ICAgICAgICAgICAgICAgICdzYW1lLW9yaWdpbicsICdzYW1lLW9yaWdpbicpOworICAgICAgICBm
ZXRjaF90ZXN0KGYsIExPQ0FMX1VSTCwgJ3NhbWUtb3JpZ2luJywgJ2luY2x1ZGUnLAorICAgICAg
ICAgICAgICAgICAgICdzYW1lLW9yaWdpbicsICdpbmNsdWRlJyk7CisgICAgICAgIGZldGNoX3Rl
c3QoZiwgTE9DQUxfVVJMLCAnbm8tY29ycycsICdvbWl0JywgJ25vLWNvcnMnLCAnb21pdCcpOwor
ICAgICAgICBmZXRjaF90ZXN0KGYsIExPQ0FMX1VSTCwgJ25vLWNvcnMnLCAnc2FtZS1vcmlnaW4n
LAorICAgICAgICAgICAgICAgICAgICduby1jb3JzJywgJ3NhbWUtb3JpZ2luJyk7CisgICAgICAg
IGZldGNoX3Rlc3QoZiwgTE9DQUxfVVJMLCAnbm8tY29ycycsICdpbmNsdWRlJywgJ25vLWNvcnMn
LCAnaW5jbHVkZScpOworICAgICAgICBmZXRjaF90ZXN0KGYsIExPQ0FMX1VSTCwgJ2NvcnMnLCAn
b21pdCcsICdjb3JzJywgJ29taXQnKTsKKyAgICAgICAgZmV0Y2hfdGVzdChmLCBMT0NBTF9VUkws
ICdjb3JzJywgJ3NhbWUtb3JpZ2luJywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKKyAgICAgICAg
ZmV0Y2hfdGVzdChmLCBMT0NBTF9VUkwsICdjb3JzJywgJ2luY2x1ZGUnLCAnY29ycycsICdpbmNs
dWRlJyk7CisgICAgICAgIGZldGNoX3Rlc3QoZiwgUkVNT1RFX1VSTCwgJ25vLWNvcnMnLCAnb21p
dCcsICduby1jb3JzJywgJ29taXQnKTsKKyAgICAgICAgZmV0Y2hfdGVzdChmLCBSRU1PVEVfVVJM
LCAnbm8tY29ycycsICdzYW1lLW9yaWdpbicsCisgICAgICAgICAgICAgICAgICAgJ25vLWNvcnMn
LCAnc2FtZS1vcmlnaW4nKTsKKyAgICAgICAgZmV0Y2hfdGVzdChmLCBSRU1PVEVfVVJMLCAnbm8t
Y29ycycsICdpbmNsdWRlJywgJ25vLWNvcnMnLCAnaW5jbHVkZScpOworICAgICAgICBmZXRjaF90
ZXN0KGYsIFJFTU9URV9VUkwsICdjb3JzJywgJ29taXQnLCAnY29ycycsICdvbWl0Jyk7CisgICAg
ICAgIGZldGNoX3Rlc3QoZiwgUkVNT1RFX1VSTCwgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nLCAnY29y
cycsICdzYW1lLW9yaWdpbicpOworICAgICAgICBmZXRjaF90ZXN0KGYsIFJFTU9URV9VUkwsICdj
b3JzJywgJ2luY2x1ZGUnLCAnY29ycycsICdpbmNsdWRlJyk7CisKKyAgICAgICAgYXVkaW9fdGVz
dChmLCBMT0NBTF9VUkwsICcnLCAnbm8tY29ycycsICdpbmNsdWRlJyk7CisgICAgICAgIGF1ZGlv
X3Rlc3QoZiwgTE9DQUxfVVJMLCAnYW5vbnltb3VzJywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsK
KyAgICAgICAgYXVkaW9fdGVzdChmLCBMT0NBTF9VUkwsICd1c2UtY3JlZGVudGlhbHMnLCAnY29y
cycsICdpbmNsdWRlJyk7CisgICAgICAgIGF1ZGlvX3Rlc3QoZiwgUkVNT1RFX1VSTCwgJycsICdu
by1jb3JzJywgJ2luY2x1ZGUnKTsKKyAgICAgICAgYXVkaW9fdGVzdChmLCBSRU1PVEVfVVJMLCAn
YW5vbnltb3VzJywgJ2NvcnMnLCAnc2FtZS1vcmlnaW4nKTsKKyAgICAgICAgYXVkaW9fdGVzdChm
LCBSRU1PVEVfVVJMLCAndXNlLWNyZWRlbnRpYWxzJywgJ2NvcnMnLCAnaW5jbHVkZScpOwogICAg
ICAgfSkKICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKICAgfSwgJ1Zlcmlm
eSBGZXRjaEV2ZW50IGZvciByZXNvdXJjZXMuJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1yZXF1ZXN0LXhoci1zeW5jLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1yZXF1ZXN0LXhoci1zeW5jLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFlNGZlY2Mx
YjM1YmExOGI4OWM1NzEwZGU1ZWZkOWY2YzExODNjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogU3luY2hyb25v
dXMgWEhSIGlzIGludGVyY2VwdGVkPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL2ZldGNoLXJlcXVl
c3QteGhyLXN5bmMtd29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2ZldGNo
LXJlcXVlc3QteGhyLXN5bmMtaWZyYW1lLmh0bWwnOworICAgIHZhciBub25fZXhpc3RlbnRfZmls
ZSA9ICdub24tZXhpc3RlbnQtZmlsZS50eHQnOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5j
dGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgICAg
fSk7CisKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
ZnJhbWUpIHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICB0
LnN0ZXBfdGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgIHZhciB4aHI7Cisg
ICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB4aHIgPSBmcmFtZS5j
b250ZW50V2luZG93LnBlcmZvcm1TeW5jWEhSKG5vbl9leGlzdGVudF9maWxlKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSh4aHIpOworICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJy
KSB7CisgICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpOworICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0sIDApOworICAgICAgICAgICAgfSkKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKHhocikgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAg
ICAgICAgICAgIHhoci5zdGF0dXMsCisgICAgICAgICAgICAgIDIwMCwKKyAgICAgICAgICAgICAg
J0hUVFAgcmVzcG9uc2Ugc3RhdHVzIGNvZGUgZm9yIGludGVyY2VwdGVkIHJlcXVlc3QnCisgICAg
ICAgICAgICApOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgIHhoci5y
ZXNwb25zZVRleHQsCisgICAgICAgICAgICAgICdSZXNwb25zZSBmcm9tIHNlcnZpY2Ugd29ya2Vy
JywKKyAgICAgICAgICAgICAgJ0hUVFAgcmVzcG9uc2UgdGV4dCBmb3IgaW50ZXJjZXB0ZWQgcmVx
dWVzdCcKKyAgICAgICAgICAgICk7CisgICAgICAgIH0pOworICB9LCAnVmVyaWZ5IFN5bmNYSFIg
aXMgaW50ZXJjZXB0ZWQnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtcmVxdWVzdC14aHIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LXJlcXVlc3QteGhyLmh0dHBzLmh0bWwKaW5kZXggMWI4MDk4NWEzNTZjNDVhMmUyNGQ1NGI3ZGY5
NzZiNmJkMjA4MTdiOS4uM2YyNDk0NmM4Y2NkNzY2MThiZjBkMWE3NmI1OTEyNmE1MDZhNWE5YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC14aHIuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LXhoci5odHRwcy5odG1sCkBA
IC0yLDggKzIsOCBAQAogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiB0aGUgYm9keSBvZiBGZXRjaEV2
ZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0PC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0LWhv
c3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhl
bHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dl
dC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXhoci1pZnJh
bWUuaHR0cHMuaHRtbCc7CkBAIC0xNSwxMyArMTUsMTcgQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZy
YW1lKFNDT1BFKTsgfSkKICAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAg
dC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsgZnJhbWUucmVtb3ZlKCk7IH0pOwogICAgICAgICAg
IHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CiAgICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAg
IGlmIChlLmRhdGEucmVzdWx0cyA9PT0gJ2ZpbmlzaCcpIHsKLSAgICAgICAgICAgICAgICBmcmFt
ZS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLmRhdGEucmVzdWx0
cyA9PSAnZXF1YWxzJykgewogICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmdv
dCwgZS5kYXRhLmV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLmRhdGEucmVz
dWx0cyA9PSAnYXJyYXlfZXF1YWxzJykgeworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZS5kYXRhLmdvdCwgZS5kYXRhLmV4cGVjdGVkLCBlLmRhdGEubXNnKTsKKyAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChlLmRhdGEucmVzdWx0cyA9PSAnZmFpbHVyZScpIHsKKyAgICAgICAg
ICAgICAgICB0aHJvdyBlLmRhdGEuZXJyb3I7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0pOwogICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXNwb25zZS10YWludC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UtdGFpbnQuaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTM2NTU0YTdjZmI4MDAzOThhZWY2MmI4NGQ4ODdmZTlhNjQ2MTZjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UtdGFpbnQuaHR0cHMu
aHRtbApAQCAtMCwwICsxLDIxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBX
b3JrZXI6IFRhaW50aW5nIG9mIHJlc3BvbnNlcyBmZXRjaGVkIHZpYSBTVy48L3RpdGxlPgorPCEt
LSAgVGhpcyB0ZXN0IG1ha2VzIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcXVlc3RzIHNlcXVlbnRpYWxs
eS4gIC0tPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2Nv
bW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgordmFy
IGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKK3ZhciBCQVNFX09SSUdJTiA9IGhvc3RfaW5m
by5IVFRQU19PUklHSU47Cit2YXIgT1RIRVJfT1JJR0lOID0gaG9zdF9pbmZvLkhUVFBTX1JFTU9U
RV9PUklHSU47Cit2YXIgQkFTRV9VUkwgPSBCQVNFX09SSUdJTiArIGJhc2VfcGF0aCgpICsKKyAg
ICAgICAgICAgICAgICdyZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/JzsKK3ZhciBP
VEhFUl9CQVNFX1VSTCA9IE9USEVSX09SSUdJTiArIGJhc2VfcGF0aCgpICsKKyAgICAgICAgICAg
ICAgICAgICAgICdyZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/JzsKKworZnVuY3Rp
b24gZnJhbWVfZmV0Y2goZnJhbWUsIHVybCwgbW9kZSwgY3JlZGVudGlhbHMpIHsKKyAgdmFyIGZv
cmVpZ25Qcm9taXNlID0gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgKKyAgICAgIG5ldyBSZXF1
ZXN0KHVybCwge21vZGU6IG1vZGUsIGNyZWRlbnRpYWxzOiBjcmVkZW50aWFsc30pKQorCisgIC8v
IEV2ZW50IGxvb3BzIHNob3VsZCBiZSBzaGFyZWQgYmV0d2VlbiBjb250ZXh0cyBvZiBzaW1pbGFy
IG9yaWdpbiwgbm90IGFsbAorICAvLyBicm93c2VycyBhZGhlcmUgdG8gdGhpcyBleHBlY3RhdGlv
biBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuIEluY29ycmVjdAorICAvLyBiZWhhdmlvciBp
biB0aGlzIHJlZ2FyZCBjYW4gaW50ZXJmZXJlIHdpdGggdGVzdCBleGVjdXRpb24gd2hlbiB0aGUK
KyAgLy8gcHJvdmlkZWQgaWZyYW1lIGlzIHJlbW92ZWQgZnJvbSB0aGUgZG9jdW1lbnQuCisgIC8v
CisgIC8vIFdQVCBtYWludGFpbnMgYSB0ZXN0IGRlZGljYXRlZCB0aGUgZXhwZWN0ZWQgdHJlYXRt
ZW50IG9mIGV2ZW50IGxvb3BzLCBzbworICAvLyB0aGUgZm9sbG93aW5nIHdvcmthcm91bmQgaXMg
YWNjZXB0YWJsZSBpbiB0aGlzIGNvbnRleHQuCisgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZm9y
ZWlnblByb21pc2UpOworfQorCit2YXIgbG9naW5fYW5kX3JlZ2lzdGVyOworcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ZldGNoLXJlc3BvbnNl
LXRhaW50LWlmcmFtZS5odG1sJzsKKyAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9mZXRjaC1y
ZXdyaXRlLXdvcmtlci5qcyc7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKworICAgIGxvZ2luX2Fu
ZF9yZWdpc3RlciA9IGxvZ2luX2h0dHBzKHQsIGhvc3RfaW5mby5IVFRQU19PUklHSU4sIGhvc3Rf
aW5mby5IVFRQU19SRU1PVEVfT1JJR0lOKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIFND
UklQVCwgU0NPUEUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAg
ICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisg
ICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHdpdGhfaWZyYW1lKFNDT1BFKTsgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICAvLyBUaGlzIHRlc3Qgc2hvdWxkIG5v
dCBiZSBjb25zaWRlcmVkIGNvbXBsZXRlIHVudGlsIGFmdGVyIHRoZQorICAgICAgICAgIC8vIHNl
cnZpY2Ugd29ya2VyIGhhcyBiZWVuIHVucmVnaXN0ZXJlZC4gQ3VycmVudGx5LCBgdGVzdGhhcm5l
c3MuanNgCisgICAgICAgICAgLy8gZG9lcyBub3Qgc3VwcG9ydCBhc3luY2hyb25vdXMgZ2xvYmFs
ICJ0ZWFyIGRvd24iIGxvZ2ljLCBzbyB0aGlzCisgICAgICAgICAgLy8gbXVzdCBiZSBleHByZXNz
ZWQgdXNpbmcgYSBkZWRpY2F0ZWQgYHByb21pc2VfdGVzdGAuIEJlY2F1c2UgdGhlCisgICAgICAg
ICAgLy8gb3RoZXIgc3ViLXRlc3RzIGluIHRoaXMgZmlsZSBhcmUgZGVjbGFyZWQgc3luY2hyb25v
dXNseSwgdGhpcworICAgICAgICAgIC8vIHRlc3Qgd2lsbCBiZSB0aGUgZmluYWwgdGVzdCBleGVj
dXRlZC4KKyAgICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICAgICAg
ICBmLnJlbW92ZSgpOworICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKTsKKyAgICAgICAgICAgIH0sICdyZXN0b3JlIGdsb2JhbCBzdGF0ZScpOworCisgICAgICAg
ICAgcmV0dXJuIGY7CisgICAgICAgIH0pOworICAgIHJldHVybiBsb2dpbl9hbmRfcmVnaXN0ZXI7
CisgIH0sICdpbml0aWFsaXplIGdsb2JhbCBzdGF0ZScpOworCitmdW5jdGlvbiBuZ190ZXN0KHVy
bCwgbW9kZSwgY3JlZGVudGlhbHMpIHsKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICAgIHJldHVybiBsb2dpbl9hbmRfcmVnaXN0ZXIKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24oZnJh
bWUpIHsKKyAgICAgICAgICAgIHZhciBmZXRjaFJlcXVlc3QgPSBmcmFtZV9mZXRjaChmcmFtZSwg
dXJsLCBtb2RlLCBjcmVkZW50aWFscyk7CisgICAgICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWpl
Y3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwgZmV0Y2hSZXF1ZXN0KTsKKyAgICAgICAgICB9KTsKKyAg
ICB9LCAndXJsOlwiJyArIHVybCArICdcIiBtb2RlOlwiJyArIG1vZGUgKworICAgICAgICdcIiBj
cmVkZW50aWFsczpcIicgKyBjcmVkZW50aWFscyArICdcIiBzaG91bGQgZmFpbC4nKTsKK30KKwor
ZnVuY3Rpb24gb2tfdGVzdCh1cmwsIG1vZGUsIGNyZWRlbnRpYWxzLCBleHBlY3RlZF90eXBlLCBl
eHBlY3RlZF91c2VybmFtZSkgeworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgICBy
ZXR1cm4gbG9naW5fYW5kX3JlZ2lzdGVyLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAg
ICAgIHJldHVybiBmcmFtZV9mZXRjaChmcmFtZSwgdXJsLCBtb2RlLCBjcmVkZW50aWFscykKKyAg
ICAgICAgICB9KQorICAgICAgICAudGhlbihmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMocmVzLnR5cGUsIGV4cGVjdGVkX3R5cGUsICdyZXNwb25zZSB0eXBlJyk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVzLnRleHQoKTsKKyAgICAgICAgICB9KQorICAgICAgICAudGhl
bihmdW5jdGlvbih0ZXh0KSB7CisgICAgICAgICAgICBpZiAoZXhwZWN0ZWRfdHlwZSA9PSAnb3Bh
cXVlJykgeworICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRleHQsICcnKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciByZXBvcnQgPSByZXNvbHZlOworICAg
ICAgICAgICAgICAgICAgICAvLyB0ZXh0IG11c3QgY29udGFpbiByZXBvcnQoKSBjYWxsLgorICAg
ICAgICAgICAgICAgICAgICBldmFsKHRleHQpOworICAgICAgICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZXN1bHQudXNlcm5hbWUsIGV4cGVjdGVkX3VzZXJuYW1lKTsKKyAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgIH0sICdm
ZXRjaGluZyB1cmw6XCInICsgdXJsICsgJ1wiIG1vZGU6XCInICsgbW9kZSArCisgICAgICAgICAg
ICAgICAgICAgICAgICAnXCIgY3JlZGVudGlhbHM6XCInICsgY3JlZGVudGlhbHMgKyAnXCIgc2hv
dWxkICcgKworICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2NlZWQuJyk7Cit9CisKK2Z1bmN0
aW9uIGJ1aWxkX3Jld3JpdGVfdXJsKG9yaWdpbiwgdXJsLCBtb2RlLCBjcmVkZW50aWFscykgewor
ICByZXR1cm4gb3JpZ2luICsgJy8/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQodXJsKSArICcm
bW9kZT0nICsgbW9kZSArCisgICAgICAnJmNyZWRlbnRpYWxzPScgKyBjcmVkZW50aWFscyArICcm
JzsKK30KKworZnVuY3Rpb24gZm9yX2VhY2hfb3JpZ2luX21vZGVfY3JlZGVudGlhbHMoY2FsbGJh
Y2spIHsKKyAgW0JBU0VfT1JJR0lOLCBPVEhFUl9PUklHSU5dLmZvckVhY2goZnVuY3Rpb24ob3Jp
Z2luKSB7CisgICAgICBbJ3NhbWUtb3JpZ2luJywgJ25vLWNvcnMnLCAnY29ycyddLmZvckVhY2go
ZnVuY3Rpb24obW9kZSkgeworICAgICAgICAgIFsnb21pdCcsICdzYW1lLW9yaWdpbicsICdpbmNs
dWRlJ10uZm9yRWFjaChmdW5jdGlvbihjcmVkZW50aWFscykgeworICAgICAgICAgICAgICBjYWxs
YmFjayhvcmlnaW4sIG1vZGUsIGNyZWRlbnRpYWxzKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30KKworb2tfdGVzdChCQVNFX1VSTCwgJ3NhbWUtb3JpZ2luJywgJ29t
aXQnLCAnYmFzaWMnLCAndW5kZWZpbmVkJyk7Citva190ZXN0KEJBU0VfVVJMLCAnc2FtZS1vcmln
aW4nLCAnc2FtZS1vcmlnaW4nLCAnYmFzaWMnLCAndXNlcm5hbWUycycpOworb2tfdGVzdChCQVNF
X1VSTCwgJ3NhbWUtb3JpZ2luJywgJ2luY2x1ZGUnLCAnYmFzaWMnLCAndXNlcm5hbWUycycpOwor
b2tfdGVzdChCQVNFX1VSTCwgJ25vLWNvcnMnLCAnb21pdCcsICdiYXNpYycsICd1bmRlZmluZWQn
KTsKK29rX3Rlc3QoQkFTRV9VUkwsICduby1jb3JzJywgJ3NhbWUtb3JpZ2luJywgJ2Jhc2ljJywg
J3VzZXJuYW1lMnMnKTsKK29rX3Rlc3QoQkFTRV9VUkwsICduby1jb3JzJywgJ2luY2x1ZGUnLCAn
YmFzaWMnLCAndXNlcm5hbWUycycpOworb2tfdGVzdChCQVNFX1VSTCwgJ2NvcnMnLCAnb21pdCcs
ICdiYXNpYycsICd1bmRlZmluZWQnKTsKK29rX3Rlc3QoQkFTRV9VUkwsICdjb3JzJywgJ3NhbWUt
b3JpZ2luJywgJ2Jhc2ljJywgJ3VzZXJuYW1lMnMnKTsKK29rX3Rlc3QoQkFTRV9VUkwsICdjb3Jz
JywgJ2luY2x1ZGUnLCAnYmFzaWMnLCAndXNlcm5hbWUycycpOworbmdfdGVzdChPVEhFUl9CQVNF
X1VSTCwgJ3NhbWUtb3JpZ2luJywgJ29taXQnKTsKK25nX3Rlc3QoT1RIRVJfQkFTRV9VUkwsICdz
YW1lLW9yaWdpbicsICdzYW1lLW9yaWdpbicpOworbmdfdGVzdChPVEhFUl9CQVNFX1VSTCwgJ3Nh
bWUtb3JpZ2luJywgJ2luY2x1ZGUnKTsKK29rX3Rlc3QoT1RIRVJfQkFTRV9VUkwsICduby1jb3Jz
JywgJ29taXQnLCAnb3BhcXVlJyk7Citva190ZXN0KE9USEVSX0JBU0VfVVJMLCAnbm8tY29ycycs
ICdzYW1lLW9yaWdpbicsICdvcGFxdWUnKTsKK29rX3Rlc3QoT1RIRVJfQkFTRV9VUkwsICduby1j
b3JzJywgJ2luY2x1ZGUnLCAnb3BhcXVlJyk7CituZ190ZXN0KE9USEVSX0JBU0VfVVJMLCAnY29y
cycsICdvbWl0Jyk7CituZ190ZXN0KE9USEVSX0JBU0VfVVJMLCAnY29ycycsICdzYW1lLW9yaWdp
bicpOworbmdfdGVzdChPVEhFUl9CQVNFX1VSTCwgJ2NvcnMnLCAnaW5jbHVkZScpOworb2tfdGVz
dChPVEhFUl9CQVNFX1VSTCArICdBQ0FPcmlnaW49KicsICdjb3JzJywgJ29taXQnLCAnY29ycycs
ICd1bmRlZmluZWQnKTsKK29rX3Rlc3QoT1RIRVJfQkFTRV9VUkwgKyAnQUNBT3JpZ2luPSonLCAn
Y29ycycsICdzYW1lLW9yaWdpbicsICdjb3JzJywKKyAgICAgICAgJ3VuZGVmaW5lZCcpOworbmdf
dGVzdChPVEhFUl9CQVNFX1VSTCArICdBQ0FPcmlnaW49KicsICdjb3JzJywgJ2luY2x1ZGUnKTsK
K29rX3Rlc3QoT1RIRVJfQkFTRV9VUkwgKyAnQUNBT3JpZ2luPScgKyBCQVNFX09SSUdJTiArICcm
QUNBQ3JlZGVudGlhbHM9dHJ1ZScsCisgICAgICAgICdjb3JzJywgJ2luY2x1ZGUnLCAnY29ycycs
ICd1c2VybmFtZTFzJykKKworZm9yX2VhY2hfb3JpZ2luX21vZGVfY3JlZGVudGlhbHMoZnVuY3Rp
b24ob3JpZ2luLCBtb2RlLCBjcmVkZW50aWFscykgeworICB2YXIgdXJsID0gYnVpbGRfcmV3cml0
ZV91cmwoCisgICAgICBvcmlnaW4sIEJBU0VfVVJMLCAnc2FtZS1vcmlnaW4nLCAnb21pdCcpOwor
ICAvLyBGZXRjaCB0byB0aGUgb3RoZXIgb3JpZ2luIHdpdGggc2FtZS1vcmlnaW4gbW9kZSBzaG91
bGQgZmFpbC4KKyAgaWYgKG9yaWdpbiA9PSBPVEhFUl9PUklHSU4gJiYgbW9kZSA9PSAnc2FtZS1v
cmlnaW4nKSB7CisgICAgbmdfdGVzdCh1cmwsIG1vZGUsIGNyZWRlbnRpYWxzKTsKKyAgfSBlbHNl
IHsKKyAgICAvLyBUaGUgcmVzcG9uc2UgdHlwZSBmcm9tIHRoZSBTVyBzaG91bGQgYmUgYmFzaWMK
KyAgICBva190ZXN0KHVybCwgbW9kZSwgY3JlZGVudGlhbHMsICdiYXNpYycsICd1bmRlZmluZWQn
KTsKKyAgfQorfSk7CisKK2Zvcl9lYWNoX29yaWdpbl9tb2RlX2NyZWRlbnRpYWxzKGZ1bmN0aW9u
KG9yaWdpbiwgbW9kZSwgY3JlZGVudGlhbHMpIHsKKyAgdmFyIHVybCA9IGJ1aWxkX3Jld3JpdGVf
dXJsKAorICAgICAgb3JpZ2luLCBCQVNFX1VSTCwgJ3NhbWUtb3JpZ2luJywgJ3NhbWUtb3JpZ2lu
Jyk7CisKKyAgLy8gRmV0Y2ggdG8gdGhlIG90aGVyIG9yaWdpbiB3aXRoIHNhbWUtb3JpZ2luIG1v
ZGUgc2hvdWxkIGZhaWwuCisgIGlmIChvcmlnaW4gPT0gT1RIRVJfT1JJR0lOICYmIG1vZGUgPT0g
J3NhbWUtb3JpZ2luJykgeworICAgIG5nX3Rlc3QodXJsLCBtb2RlLCBjcmVkZW50aWFscyk7Cisg
IH0gZWxzZSB7CisgICAgLy8gVGhlIHJlc3BvbnNlIHR5cGUgZnJvbSB0aGUgU1cgc2hvdWxkIGJl
IGJhc2ljLgorICAgIG9rX3Rlc3QodXJsLCBtb2RlLCBjcmVkZW50aWFscywgJ2Jhc2ljJywgJ3Vz
ZXJuYW1lMnMnKTsKKyAgfQorfSk7CisKK2Zvcl9lYWNoX29yaWdpbl9tb2RlX2NyZWRlbnRpYWxz
KGZ1bmN0aW9uKG9yaWdpbiwgbW9kZSwgY3JlZGVudGlhbHMpIHsKKyAgdmFyIHVybCA9IGJ1aWxk
X3Jld3JpdGVfdXJsKAorICAgICAgb3JpZ2luLCBPVEhFUl9CQVNFX1VSTCwgJ3NhbWUtb3JpZ2lu
JywgJ29taXQnKTsKKyAgLy8gVGhlIHJlc3BvbnNlIGZyb20gdGhlIFNXIHNob3VsZCBiZSBhbiBl
cnJvci4KKyAgbmdfdGVzdCh1cmwsIG1vZGUsIGNyZWRlbnRpYWxzKTsKK30pOworCitmb3JfZWFj
aF9vcmlnaW5fbW9kZV9jcmVkZW50aWFscyhmdW5jdGlvbihvcmlnaW4sIG1vZGUsIGNyZWRlbnRp
YWxzKSB7CisgIHZhciB1cmwgPSBidWlsZF9yZXdyaXRlX3VybCgKKyAgICAgIG9yaWdpbiwgT1RI
RVJfQkFTRV9VUkwsICduby1jb3JzJywgJ29taXQnKTsKKworICAvLyBTVyBjYW4gcmVzcG9uZCBv
bmx5IHRvIG5vLWNvcnMgcmVxdWVzdHMuCisgIGlmIChtb2RlICE9ICduby1jb3JzJykgeworICAg
IG5nX3Rlc3QodXJsLCBtb2RlLCBjcmVkZW50aWFscyk7CisgIH0gZWxzZSB7CisgICAgLy8gVGhl
IHJlc3BvbnNlIHR5cGUgZnJvbSB0aGUgU1cgc2hvdWxkIGJlIG9wYXF1ZS4KKyAgICBva190ZXN0
KHVybCwgbW9kZSwgY3JlZGVudGlhbHMsICdvcGFxdWUnKTsKKyAgfQorfSk7CisKK2Zvcl9lYWNo
X29yaWdpbl9tb2RlX2NyZWRlbnRpYWxzKGZ1bmN0aW9uKG9yaWdpbiwgbW9kZSwgY3JlZGVudGlh
bHMpIHsKKyAgdmFyIHVybCA9IGJ1aWxkX3Jld3JpdGVfdXJsKAorICAgICAgb3JpZ2luLCBPVEhF
Ul9CQVNFX1VSTCArICdBQ0FPcmlnaW49KicsICdjb3JzJywgJ29taXQnKTsKKworICAvLyBGZXRj
aCB0byB0aGUgb3RoZXIgb3JpZ2luIHdpdGggc2FtZS1vcmlnaW4gbW9kZSBzaG91bGQgZmFpbC4K
KyAgaWYgKG9yaWdpbiA9PSBPVEhFUl9PUklHSU4gJiYgbW9kZSA9PSAnc2FtZS1vcmlnaW4nKSB7
CisgICAgbmdfdGVzdCh1cmwsIG1vZGUsIGNyZWRlbnRpYWxzKTsKKyAgfSBlbHNlIHsKKyAgICAv
LyBUaGUgcmVzcG9uc2UgZnJvbSB0aGUgU1cgc2hvdWxkIGJlIGNvcnMuCisgICAgb2tfdGVzdCh1
cmwsIG1vZGUsIGNyZWRlbnRpYWxzLCAnY29ycycsICd1bmRlZmluZWQnKTsKKyAgfQorfSk7CisK
K2Zvcl9lYWNoX29yaWdpbl9tb2RlX2NyZWRlbnRpYWxzKGZ1bmN0aW9uKG9yaWdpbiwgbW9kZSwg
Y3JlZGVudGlhbHMpIHsKKyAgdmFyIHVybCA9IGJ1aWxkX3Jld3JpdGVfdXJsKAorICAgICAgb3Jp
Z2luLAorICAgICAgT1RIRVJfQkFTRV9VUkwgKyAnQUNBT3JpZ2luPScgKyBCQVNFX09SSUdJTiAr
CisgICAgICAnJkFDQUNyZWRlbnRpYWxzPXRydWUnLAorICAgICAgJ2NvcnMnLCAnaW5jbHVkZScp
OworICAvLyBGZXRjaCB0byB0aGUgb3RoZXIgb3JpZ2luIHdpdGggc2FtZS1vcmlnaW4gbW9kZSBz
aG91bGQgZmFpbC4KKyAgaWYgKG9yaWdpbiA9PSBPVEhFUl9PUklHSU4gJiYgbW9kZSA9PSAnc2Ft
ZS1vcmlnaW4nKSB7CisgICAgbmdfdGVzdCh1cmwsIG1vZGUsIGNyZWRlbnRpYWxzKTsKKyAgfSBl
bHNlIHsKKyAgICAvLyBUaGUgcmVzcG9uc2UgZnJvbSB0aGUgU1cgc2hvdWxkIGJlIGNvcnMuCisg
ICAgb2tfdGVzdCh1cmwsIG1vZGUsIGNyZWRlbnRpYWxzLCAnY29ycycsICd1c2VybmFtZTFzJyk7
CisgIH0KK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1yZXNwb25zZS14aHIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Zl
dGNoLXJlc3BvbnNlLXhoci5odHRwcy5odG1sCmluZGV4IDhiNjZjNjA1MTc4MmQ3NGNmMmFiYzAw
MDBmYTAxOWE2MTI3ZGQ3MTcuLjc0MTczZThiOWJkY2M3N2M1Zjg1ODMyZjg1YTVjNDQ4NTZiNzg1
NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlc3BvbnNlLXhoci5odHRwcy5o
dG1sCkBAIC0yLDggKzIsOCBAQAogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiB0aGUgcmVzcG9uc2Ug
b2YgRmV0Y2hFdmVudCB1c2luZyBYTUxIdHRwUmVxdWVzdDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgIHZhciBTQ09QRSA9ICdyZXNvdXJjZXMvZmV0Y2gtcmVzcG9u
c2UteGhyLWlmcmFtZS5odHRwcy5odG1sJzsKQEAgLTEzLDcgKzEzLDcgQEAgYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0
ZXBfZnVuYyhvbl9tZXNzYWdlKSwgZmFsc2UpOwogICAgIGZ1bmN0aW9uIG9uX21lc3NhZ2UoZSkg
ewogICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZvbywgYmFyJyk7Ci0gICAg
ICB0LmRvbmUoKTsKKyAgICAgIGUuc291cmNlLnBvc3RNZXNzYWdlKCdBQ0snLCBob3N0X2luZm9b
J0hUVFBTX09SSUdJTiddKTsKICAgICB9CiAKICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQpAQCAtMjIsMTMgKzIyLDE5IEBAIGFzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0pCiAgICAgICAudGhlbihmdW5jdGlvbihmcmFt
ZSkgewotICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAg
ICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
Ci0gICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsK
KyAgICAgICAgICB2YXIgY2hhbm5lbDsKKworICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwogICAgICAgICAgICAgICBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BFKTsKICAgICAgICAgICAgIH0p
OwotICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCisKKyAgICAg
ICAgICBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgICAgICAgY2hhbm5lbC5w
b3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5kYXRhLnJlc3VsdHMsICdmaW5pc2gnKTsKKyAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93
LnBvc3RNZXNzYWdlKCdTVEFSVCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKICAgICAgICAgfSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0
bWwKaW5kZXggMzA0NjgwYzk3ZTYzZjU1YzgwYWJiMTgyN2UyZTY3YTBhYjhlMTc0OS4uMmM5ZDRh
NTlkYzE4ZGMxMjVhYmMyZjI3OWVmOGU2NTEwZGRiMzQ4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLmh0dHBzLmh0bWwKQEAgLTQsNyAr
NCw3IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJv
ZHk+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZm9yZWlnbi1mZXRj
aC1iYXNpY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZvcmVpZ24tZmV0Y2gtYmFz
aWNzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODUxOWY4ZjQ1NzU3NTFkMmZlNmJlN2I2MzY2YmYy
YTRhZGNjMGM0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZvcmVpZ24t
ZmV0Y2gtYmFzaWNzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyNDEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBiYXNpYyBGb3JlaWduIEZldGNoIGZ1bmN0aW9uYWxp
dHk8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZm9yZWlnbi1mZXRjaC1oZWxwZXJzLmpzIj48L3Njcmlw
dD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Cit2
YXIgcmVzb3VyY2VfcGF0aCA9IG5ldyBVUkwoJ3Jlc291cmNlcy8nLCBsb2NhdGlvbikucGF0aG5h
bWU7CisKK2Z1bmN0aW9uIHdvcmtlcl9mb3Jfb3JpZ2lucyhvcmlnaW5zKSB7CisgIHZhciB3b3Jr
ZXIgPSAnZm9yZWlnbi1mZXRjaC13b3JrZXIuanM/JzsKKyAgdmFyIHBhcmFtcyA9IHtvcmlnaW5z
OiBvcmlnaW5zLCByZWxzY29wZXM6IFsnL2ludGVyY2VwdCddfTsKKyAgcmV0dXJuIHdvcmtlciAr
IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShwYXJhbXMpKTsKK30KKworZnVuY3Rp
b24gd29ya2VyX2Zvcl9zY29wZXMocmVsYXRpdmVfc2NvcGVzKSB7CisgIHZhciB3b3JrZXIgPSAn
Zm9yZWlnbi1mZXRjaC13b3JrZXIuanM/JzsKKyAgdmFyIHBhcmFtcyA9IHtyZWxzY29wZXM6IHJl
bGF0aXZlX3Njb3Blc307CisgIHJldHVybiB3b3JrZXIgKyBlbmNvZGVVUklDb21wb25lbnQoSlNP
Ti5zdHJpbmdpZnkocGFyYW1zKSk7Cit9CisKK2Z1bmN0aW9uIGludGVyY2VwdGVkX3VybChzY29w
ZSkgeworICByZXR1cm4gaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyByZXNvdXJjZV9w
YXRoICsgc2NvcGUgKyAnL2ludGVyY2VwdC9mb28/YmFzaWMnOworfQorCitmdW5jdGlvbiBub25f
aW50ZXJjZXB0ZWRfdXJsKHNjb3BlKSB7CisgIHJldHVybiBob3N0X2luZm8uSFRUUFNfUkVNT1RF
X09SSUdJTiArIHJlc291cmNlX3BhdGggKyBzY29wZSArICcvZm9vP2Jhc2ljJzsKK30KKworcHJv
bWlzZV90ZXN0KHQgPT4geworICAgIHZhciBzY29wZSA9ICdmb3JlaWduLWZldGNoL3Njb3BlL3dp
bGRjYXJkJzsKKyAgICByZXR1cm4gaW5zdGFsbF9jcm9zc19vcmlnaW5fd29ya2VyKHQsIHdvcmtl
cl9mb3Jfb3JpZ2lucyhbJyonXSksIHNjb3BlKQorICAgICAgLnRoZW4oKCkgPT4gcHJvbWlzZV9y
ZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmZXRjaChub25faW50ZXJjZXB0ZWRfdXJsKHNjb3BlKSkpKQorICAgICAgLnRoZW4oKCkg
PT4gZmV0Y2goaW50ZXJjZXB0ZWRfdXJsKHNjb3BlKSkpCisgICAgICAudGhlbihyZXNwb25zZSA9
PiByZXNwb25zZS50ZXh0KCkpCisgICAgICAudGhlbihyZXNwb25zZV90ZXh0ID0+IHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlX3RleHQsICdGb3JlaWduIEZldGNoJyk7CisgICAg
ICAgIH0pOworICB9LCAnU2VydmljZSBXb3JrZXIgaW50ZXJjZXB0cyBmZXRjaGVzIGluIHNjb3Bl
IHdpdGggd2lsZGNhcmQgb3JpZ2luLicpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgdmFy
IHNjb3BlID0gJ2ZvcmVpZ24tZmV0Y2gvc2NvcGUvbWF0Y2gtb3JpZ2luJzsKKyAgICByZXR1cm4g
aW5zdGFsbF9jcm9zc19vcmlnaW5fd29ya2VyKAorICAgICAgICB0LCB3b3JrZXJfZm9yX29yaWdp
bnMoW2xvY2F0aW9uLm9yaWdpbl0pLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IGZldGNoKGlu
dGVyY2VwdGVkX3VybChzY29wZSkpKQorICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQorICAgICAgLnRoZW4ocmVzcG9uc2VfdGV4dCA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXNwb25zZV90ZXh0LCAnRm9yZWlnbiBGZXRjaCcpOworICAgICAgICB9KTsKKyAg
fSwgJ1NlcnZpY2UgV29ya2VyIGludGVyY2VwdHMgZmV0Y2hlcyBpbiBzY29wZSB3aXRoIGV4cGxp
Y2l0IG9yaWdpbi4nKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHZhciBzY29wZSA9ICdm
b3JlaWduLWZldGNoL3Njb3BlL25vbWF0Y2gtb3JpZ2luJzsKKyAgICByZXR1cm4gaW5zdGFsbF9j
cm9zc19vcmlnaW5fd29ya2VyKAorICAgICAgICB0LCB3b3JrZXJfZm9yX29yaWdpbnMoWydodHRw
czovL2V4YW1wbGUuY29tJ10pLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IHByb21pc2VfcmVq
ZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmV0Y2gobm9uX2ludGVyY2VwdGVkX3VybChzY29wZSkpKSk7CisgIH0sICdTZXJ2aWNlIFdv
cmtlciBkb2VzblwndCBpbnRlcmNlcHQgZmV0Y2hlcyB3aXRoIG5vbiBtYXRjaGluZyBvcmlnaW4u
Jyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgc2NvcGUgPSAnZm9yZWlnbi1mZXRj
aC9zY29wZS9vcmlnaW4tbGlzdCc7CisgICAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3JpZ2luX3dv
cmtlcigKKyAgICAgICAgdCwgd29ya2VyX2Zvcl9vcmlnaW5zKFtsb2NhdGlvbi5vcmlnaW4sICdo
dHRwczovL2V4YW1wbGUuY29tJ10pLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IGZldGNoKGlu
dGVyY2VwdGVkX3VybChzY29wZSkpKQorICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2Uu
dGV4dCgpKQorICAgICAgLnRoZW4ocmVzcG9uc2VfdGV4dCA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXNwb25zZV90ZXh0LCAnRm9yZWlnbiBGZXRjaCcpOworICAgICAgICB9KTsKKyAg
fSwgJ1NlcnZpY2UgV29ya2VyIGludGVyY2VwdHMgZmV0Y2hlcyBpbiBzY29wZSB3aXRoIGV4cGxp
Y2l0IG9yaWdpbiBsaXN0LicpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgdmFyIHNjb3Bl
ID0gJ3Jlc291cmNlcy9mb3JlaWduLWZldGNoL3NhbWUtb3JpZ2luJzsKKyAgICByZXR1cm4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICAgIHQsICdyZXNvdXJj
ZXMvJyArIHdvcmtlcl9mb3Jfb3JpZ2lucyhbJyonXSksIHNjb3BlKQorICAgICAgLnRoZW4ociA9
PiB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4gci51bnJlZ2lzdGVy
KCkpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IGZldGNoKHNjb3BlICsg
Jy9pbnRlcmNlcHQvZm9vP2Jhc2ljJykpCisgICAgICAudGhlbihyZXNwb25zZSA9PiB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5zdGF0dXMsIDQwNCk7CisgICAgICAgIH0pOwor
ICB9LCAnU2VydmljZSBXb3JrZXIgZG9lcyBub3QgaW50ZXJjZXB0IHNhbWUgb3JpZ2luIGZldGNo
ZXMuJyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgc2NvcGUgPSAncmVwbHktdG8t
bWVzc2FnZS5odG1sP29ubWVzc2FnZSc7CisgICAgdmFyIHJlbW90ZV91cmwgPQorICAgICAgICBo
b3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArIHJlc291cmNlX3BhdGggKyBzY29wZTsKKyAg
ICByZXR1cm4gaW5zdGFsbF9jcm9zc19vcmlnaW5fd29ya2VyKHQsIHdvcmtlcl9mb3Jfc2NvcGVz
KFsnJ10pLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKHJlbW90ZV91cmwp
KQorICAgICAgLnRoZW4oZnJhbWUgPT4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAg
ICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICBmcmFtZS5j
b250ZW50V2luZG93LnBvc3RNZXNzYWdlKCdwaW5nJywgJyonLCBbY2hhbm5lbC5wb3J0MV0pOwor
ICAgICAgICAgIGNoYW5uZWwucG9ydDIub25tZXNzYWdlID0gcmVwbHkgPT4gcmVzb2x2ZShyZXBs
eS5kYXRhKTsKKyAgICAgICAgfSkpCisgICAgICAudGhlbihyZXBseSA9PiB7CisgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZXBseSwgJ3BpbmcnKTsKKyAgICAgICAgfSk7CisgIH0sICdTZXJ2aWNl
IFdvcmtlciBkb2VzIG5vdCBpbnRlcmNlcHQgbmF2aWdhdGlvbnMuJyk7CisKK3Byb21pc2VfdGVz
dCh0ID0+IHsKKyAgICB2YXIgc2NvcGUgPSAnZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/ZmFsbGJh
Y2smQUNBT3JpZ2luPSonOworICAgIHZhciByZW1vdGVfdXJsID0KKyAgICAgICAgaG9zdF9pbmZv
LkhUVFBTX1JFTU9URV9PUklHSU4gKyByZXNvdXJjZV9wYXRoICsgc2NvcGU7CisgICAgcmV0dXJu
IGluc3RhbGxfY3Jvc3Nfb3JpZ2luX3dvcmtlcih0LCB3b3JrZXJfZm9yX3Njb3BlcyhbJyddKSwg
c2NvcGUpCisgICAgICAudGhlbigoKSA9PiBmZXRjaChyZW1vdGVfdXJsKSkKKyAgICAgIC50aGVu
KHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAgIC50aGVuKHJlc3BvbnNlX3RleHQg
PT4gYXNzZXJ0X3RydWUocmVzcG9uc2VfdGV4dC5zdGFydHNXaXRoKCdyZXBvcnQoJykpKTsKKyAg
fSwgJ1NlcnZpY2UgV29ya2VyIHRoYXQgZmFsbGJhY2sgdG8gbmV0d29yayBzaG91bGQgZmFsbGJh
Y2sgdG8gbmV0d29yay4nKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHZhciBzY29wZSA9
ICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9mZXRjaCZBQ0FPcmlnaW49Kic7CisgICAgdmFyIHJl
bW90ZV91cmwgPQorICAgICAgICBob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArIHJlc291
cmNlX3BhdGggKyBzY29wZTsKKyAgICByZXR1cm4gaW5zdGFsbF9jcm9zc19vcmlnaW5fd29ya2Vy
KHQsIHdvcmtlcl9mb3Jfc2NvcGVzKFsnJ10pLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IGZl
dGNoKHJlbW90ZV91cmwpKQorICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgp
KQorICAgICAgLnRoZW4ocmVzcG9uc2VfdGV4dCA9PiBhc3NlcnRfdHJ1ZShyZXNwb25zZV90ZXh0
LnN0YXJ0c1dpdGgoJ3JlcG9ydCgnKSkpOworICB9LCAnU2VydmljZSBXb3JrZXIgdGhhdCBmZXRj
aCBmcm9tIHRoZSBuZXR3b3JrIHNob3VsZCBmYWxsYmFjayB0byBuZXR3b3JrLicpOworCitwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgdmFyIHNjb3BlID0gJ3NpbXBsZS50eHQ/ZmFsbGJhY2snOwor
ICAgIHZhciByZW1vdGVfdXJsID0KKyAgICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklH
SU4gKyByZXNvdXJjZV9wYXRoICsgc2NvcGU7CisgICAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3Jp
Z2luX3dvcmtlcih0LCB3b3JrZXJfZm9yX3Njb3BlcyhbJyddKSwgc2NvcGUpCisgICAgICAudGhl
bigoKSA9PiBmZXRjaChyZW1vdGVfdXJsLCB7bW9kZTogJ25vLWNvcnMnfSkpCisgICAgICAudGhl
bihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLnR5cGUsICdvcGFxdWUnKSkKKyAg
ICAgIC50aGVuKCgpID0+IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIGZldGNo
KHJlbW90ZV91cmwpKSk7CisgIH0sICdGYWxsaW5nIGJhY2sgdG8gbmV0d29yayBzaG91bGQgc3Rp
bGwgcmVzcGVjdCBDT1JTLicpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgdmFyIGZmX3Nj
b3BlID0gJ2ZvcmVpZ24tZmV0Y2gvc2NvcGUvY29udHJvbGxlZD9iYXNpYyc7CisgICAgdmFyIHJl
bW90ZV91cmwgPQorICAgICAgICBob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArIHJlc291
cmNlX3BhdGggKyBmZl9zY29wZTsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3NpbXBsZS5o
dG1sP2ZldGNoJzsKKyAgICB2YXIgd29ya2VyID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMn
OworICAgIHJldHVybiBpbnN0YWxsX2Nyb3NzX29yaWdpbl93b3JrZXIodCwgd29ya2VyX2Zvcl9z
Y29wZXMoWycnXSksIGZmX3Njb3BlKQorICAgICAgLnRoZW4oKCkgPT4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkpCisgICAgICAudGhlbihy
ID0+IHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiByLnVucmVnaXN0
ZXIoKSk7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUo
c2NvcGUpKQorICAgICAgLnRoZW4oZnJhbWUgPT4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChy
ZW1vdGVfdXJsKSkKKyAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAg
ICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4geworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVz
cG9uc2VfdGV4dCwgJ0ZvcmVpZ24gRmV0Y2gnKTsKKyAgICAgICAgfSk7CisgIH0sICdGb3JlaWdu
IGZldGNoIGNhbiBpbnRlcmNlcHQgZmV0Y2ggcmVxdWVzdHMgZnJvbSBTVyBjb250cm9sbGVkIHBh
Z2VzLicpOworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgdmFyIGZmX3Njb3BlID0gJ2ZvcmVp
Z24tZmV0Y2gvc2NvcGUvY29udHJvbGxlZD9zY3JpcHQnOworICAgIHZhciByZW1vdGVfdXJsID0K
KyAgICAgICAgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyByZXNvdXJjZV9wYXRoICsg
ZmZfc2NvcGU7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zaW1wbGUuaHRtbD9zY3JpcHQn
OworICAgIHZhciB3b3JrZXIgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgICAgcmV0
dXJuIGluc3RhbGxfY3Jvc3Nfb3JpZ2luX3dvcmtlcih0LCB3b3JrZXJfZm9yX3Njb3BlcyhbJydd
KSwgZmZfc2NvcGUpCisgICAgICAudGhlbigoKSA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKSkKKyAgICAgIC50aGVuKHIgPT4geworICAg
ICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKCgpID0+IHIudW5yZWdpc3RlcigpKTsKKyAg
ICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVk
Jyk7CisgICAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB3aXRoX2lmcmFtZShzY29wZSkpCisg
ICAgICAudGhlbihmcmFtZSA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICBm
cmFtZS5jb250ZW50V2luZG93LkRpZExvYWQgPSByZXNvbHZlOworICAgICAgICAgIGxldCBzY3Jp
cHQgPSBmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcp
OworICAgICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3NyYycsIHJlbW90ZV91cmwpOworICAg
ICAgICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ2Nyb3Nzb3JpZ2luJywgJ3VzZS1jcmVkZW50aWFs
cycpOworICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuaGVhZC5hcHBlbmRD
aGlsZChzY3JpcHQpOworICAgICAgICB9KSkKKyAgICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4g
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VfdGV4dCwgJ0ZvcmVpZ24gRmV0Y2gn
KTsKKyAgICAgICAgfSk7CisgIH0sICdGb3JlaWduIGZldGNoIGNhbiBpbnRlcmNlcHQgcmVzb3Vy
Y2UgcmVxdWVzdHMgZnJvbSBTVyBjb250cm9sbGVkIHBhZ2VzLicpOworCitwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgdmFyIHNjb3BlID0gJ3NpbXBsZS50eHQ/bWV0YSc7CisgICAgdmFyIHJlbW90
ZV91cmwgPQorICAgICAgICBob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArIHJlc291cmNl
X3BhdGggKyBzY29wZTsKKyAgICByZXR1cm4gaW5zdGFsbF9jcm9zc19vcmlnaW5fd29ya2VyKHQs
IHdvcmtlcl9mb3Jfc2NvcGVzKFsnJ10pLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IGZldGNo
KHJlbW90ZV91cmwsIHttb2RlOiAnbm8tY29ycyd9KSkKKyAgICAgIC50aGVuKHJlc3BvbnNlID0+
IHJlc3BvbnNlLmpzb24oKSkKKyAgICAgIC50aGVuKHJlc3BvbnNlX2RhdGEgPT4geworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoc2VsZi5sb2NhdGlvbi5ocmVmLCByZXNwb25zZV9kYXRhLnJlZmVy
cmVyKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHNlbGYubG9jYXRpb24ub3JpZ2luLCByZXNw
b25zZV9kYXRhLm9yaWdpbik7CisgICAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB3aXRoX2lm
cmFtZSgncmVzb3VyY2VzL2JsYW5rLmh0bWwnKSkKKyAgICAgIC50aGVuKGZyYW1lID0+IHsKKyAg
ICAgICAgICB2YXIgbWV0YSA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCdt
ZXRhJyk7CisgICAgICAgICAgbWV0YS5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAncmVmZXJyZXInKTsK
KyAgICAgICAgICBtZXRhLnNldEF0dHJpYnV0ZSgnY29udGVudCcsICduby1yZWZlcnJlcicpOwor
ICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG1ldGEpOwor
ICAgICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKHJlbW90ZV91cmwsIHtt
b2RlOiAnbm8tY29ycyd9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJl
c3BvbnNlLmpzb24oKSkKKyAgICAgIC50aGVuKHJlc3BvbnNlX2RhdGEgPT4geworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoJycsIHJlc3BvbnNlX2RhdGEucmVmZXJyZXIpOworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoJ251bGwnLCByZXNwb25zZV9kYXRhLm9yaWdpbik7CisgICAgICAgIH0pOwor
ICB9LCAnUmVmZXJyZXIgYW5kIG9yaWdpbiBhcmUgc2V0IGNvcnJlY3RseSBpbiBGb3JlaWduRmV0
Y2hFdmVudC4nKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHZhciBzY29wZSA9ICdzaW1w
bGUudHh0P2Jhc2ljX2luc2VjdXJlJzsKKyAgICB2YXIgcmVtb3RlX3VybCA9CisgICAgICAgIGhv
c3RfaW5mby5BVVRIRU5USUNBVEVEX09SSUdJTiArIHJlc291cmNlX3BhdGggKyBzY29wZTsKKyAg
ICByZXR1cm4gaW5zdGFsbF9jcm9zc19vcmlnaW5fd29ya2VyKHQsIHdvcmtlcl9mb3Jfc2NvcGVz
KFsnJ10pLCBzY29wZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhv
c3RfaW5mby5BVVRIRU5USUNBVEVEX09SSUdJTikKKyAgICAgIC50aGVuKCgpID0+IGZldGNoX2Zy
b21fZGlmZmVyZW50X29yaWdpbihob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiwgcmVtb3Rl
X3VybCkpCisgICAgICAudGhlbihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAn
U3VjY2VzczogRm9yZWlnbiBGZXRjaCcpKQorICAgICAgLnRoZW4oKCkgPT4gZmV0Y2hfZnJvbV9k
aWZmZXJlbnRfb3JpZ2luKGhvc3RfaW5mby5VTkFVVEhFTlRJQ0FURURfT1JJR0lOLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlX3VybCkpCisgICAgICAudGhlbihy
ZXNwb25zZSA9PiBhc3NlcnRfdHJ1ZShyZXNwb25zZS5zdGFydHNXaXRoKCdFcnJvcjogVHlwZUVy
cm9yJykpKTsKKyAgfSwgJ1NlcnZpY2UgV29ya2VyIGRvZXMgbm90IGludGVyY2VwdCBmZXRjaGVz
IGZyb20gYW4gaW5zZWN1cmUgY29udGV4dC4nKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAg
IHZhciBzY29wZSA9ICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9iYXNpYyZBQ0FPcmlnaW49KiZB
Q0FNZXRob2RzPVNQRUNJQUwnOworICAgIHZhciByZW1vdGVfdXJsID0KKyAgICAgICAgaG9zdF9p
bmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyByZXNvdXJjZV9wYXRoICsgc2NvcGU7CisgICAgcmV0
dXJuIGluc3RhbGxfY3Jvc3Nfb3JpZ2luX3dvcmtlcih0LCB3b3JrZXJfZm9yX3Njb3BlcyhbJydd
KSwgc2NvcGUpCisgICAgICAudGhlbigoKSA9PiBmZXRjaChyZW1vdGVfdXJsLCB7bWV0aG9kOiAn
U1BFQ0lBTCd9KSkKKyAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAg
ICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4gYXNzZXJ0X3RydWUocmVzcG9uc2VfdGV4dC5zdGFy
dHNXaXRoKCdyZXBvcnQoJykpKQorICAgICAgLy8gRG8gdGhlIHdob2xlIHRoaW5nIHR3aWNlIHRv
IHRlc3QgQ09SUyBwcmVmbGlnaHQgY2FjaGUgYmVoYXZpb3IuCisgICAgICAudGhlbigoKSA9PiBm
ZXRjaChyZW1vdGVfdXJsLCB7bWV0aG9kOiAnU1BFQ0lBTCd9KSkKKyAgICAgIC50aGVuKHJlc3Bv
bnNlID0+IHJlc3BvbnNlLnRleHQoKSkKKyAgICAgIC50aGVuKHJlc3BvbnNlX3RleHQgPT4gYXNz
ZXJ0X3RydWUocmVzcG9uc2VfdGV4dC5zdGFydHNXaXRoKCdyZXBvcnQoJykpKTsKKyAgfSwgJ1Nl
cnZpY2UgV29ya2VyIGRvZXMgbm90IGludGVyY2VwdCBmZXRjaGVzIHdpdGggQ09SUyBwcmVmbGln
aHQnKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICB2YXIgc2NvcGUgPSAnc2ltcGxlLnR4dD9u
dWxsJzsKKyAgdmFyIHJlbW90ZV91cmwgPQorICBob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJ
TiArIHJlc291cmNlX3BhdGggKyBzY29wZTsKKyAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3JpZ2lu
X3dvcmtlcih0LCB3b3JrZXJfZm9yX3Njb3BlcyhbJyddKSwgc2NvcGUpCisgICAgLnRoZW4oKCkg
PT4gcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwgZmV0Y2gocmVtb3RlX3VybCkp
KTsKK30sICdGb3JlaWduIGZldGNoIHJlamVjdHMgaWYgcmVzb2x2ZWQgd2l0aCBhIG51bGwgcmVz
cG9uc2UuJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZvcmVpZ24tZmV0Y2gtY29ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZm9y
ZWlnbi1mZXRjaC1jb3JzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzExMWEzMTM1NzY5YjE2Zjk5
OTVlMmU1YTgxZDdlMGEzYzA5OTAxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZvcmVpZ24tZmV0Y2gtY29ycy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzA2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogRm9yZWlnbiBGZXRjaCBDT1JTIGZ1
bmN0aW9uYWxpdHk8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZm9yZWlnbi1mZXRjaC1oZWxwZXJzLmpz
Ij48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9p
bmZvKCk7Cit2YXIgb3JpZ2luID0gbmV3IFVSTChzZWxmLmxvY2F0aW9uKS5vcmlnaW47Cit2YXIg
d3Jvbmdfb3JpZ2luID0gJ2h0dHBzOi8vZXhhbXBsZS5jb20vJzsKK3ZhciB0ZXN0X2hlYWRlciA9
ICdYLVNlcnZpY2VXb3JrZXItU2VydmVySGVhZGVyJzsKKworZnVuY3Rpb24gdXJsX3RvX2ZldGNo
KHNjb3BlKSB7CisgIHJldHVybiBob3N0X2luZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArIG5ldyBV
UkwoJ3Jlc291cmNlcy8nLCBsb2NhdGlvbikucGF0aG5hbWUgKyBzY29wZTsKK30KKworZnVuY3Rp
b24gd29ya2VyX2Zvcl9yZXNwb25zZShyZXNwb25zZSkgeworICByZXR1cm4gJ2ZvcmVpZ24tZmV0
Y2gtY29ycy13b3JrZXIuanM/JyArCisgICAgICBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJp
bmdpZnkocmVzcG9uc2UpKTsKK30KKworZnVuY3Rpb24gc2NvcGVfZm9yX3BhcmFtcyhwYXJhbXMp
IHsKKyAgcmV0dXJuICdzaW1wbGUudHh0PycgKyBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJp
bmdpZnkocGFyYW1zKSk7Cit9CisKKy8vIE1ldGhvZCB1c2VkIGZvciB0ZXN0cyB0aGF0IGV4cGVj
dCB0byByZXN1bHQgaW4gYW4gb3BhcXVlIHJlc3BvbnNlLgorZnVuY3Rpb24gdmVyaWZ5X29wYXF1
ZV9mZXRjaCh1cmwsIHQpIHsKKyAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVy
cm9yKCksIGZldGNoKHVybCkpCisgICAgLnRoZW4oKCkgPT4gZmV0Y2godXJsLCB7bW9kZTogJ25v
LWNvcnMnfSkpCisgICAgLnRoZW4ocmVzcG9uc2UgPT4gYXNzZXJ0X2VxdWFscyhyZXNwb25zZS50
eXBlLCAnb3BhcXVlJykpCisgICAgLnRoZW4oKCkgPT4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7
CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHJl
cXVlc3Qub3BlbignR0VUJywgdXJsKTsKKyAgICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFu
Z2UgPSAoKSA9PiB7CisgICAgICAgICAgaWYgKHJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0KSByZXNv
bHZlKHJlcXVlc3QpOworICAgICAgICB9OworICAgICAgICByZXF1ZXN0LnNlbmQoKTsKKyAgICAg
IH0pKQorICAgIC50aGVuKHhociA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoeGhyLnN0YXR1
cywgMCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlVGV4dCwgJycpOworICAg
ICAgfSk7Cit9CisKKy8vIFZlcmlmeSB0aGF0IGZldGNoaW5nIGFuIHVybCByZXN1bHRzIGluIGEg
bmV0d29yayBlcnJvci4KK2Z1bmN0aW9uIHZlcmlmeV9uZXR3b3JrX2Vycm9yKHVybCwgdCkgewor
ICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsIG5ldyBUeXBlRXJyb3IoKSwgZmV0Y2godXJsKSkK
KyAgICAudGhlbigoKSA9PiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaCh1cmwsIHttb2RlOiAnbm8tY29ycyd9
KSkpCisgICAgLnRoZW4oKCkgPT4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIHZh
ciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHJlcXVlc3Qub3Blbign
R0VUJywgdXJsKTsKKyAgICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7
CisgICAgICAgICAgaWYgKHJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0KSByZXNvbHZlKHJlcXVlc3Qp
OworICAgICAgICB9OworICAgICAgICByZXF1ZXN0LnNlbmQoKTsKKyAgICAgIH0pKQorICAgIC50
aGVuKHhociA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoeGhyLnN0YXR1cywgMCk7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMoeGhyLnJlc3BvbnNlVGV4dCwgJycpOworICAgICAgfSk7Cit9CisK
Ky8vIFZlcmlmaWVzIHRoYXQgZmV0Y2hpbmcgdGhlIFVSTCByZXR1cm5zIGEgY29ycyByZXNwb25z
ZSwgd2l0aCBhIHNwZWNpZmljIHZhbHVlCisvLyBmb3IgYSB0ZXN0X2hlYWRlciBvbiB0aGUgcmVz
cG9uc2UuIEFsc28gdmVyaWZpZXMgdGhhdCByb3VuZC10cmlwcGluZyB0aGlzCisvLyByZXNwb25z
ZSB0aHJvdWdoIHRoZSBjYWNoZSBkb2Vzbid0IGNhdXNlIGlzc3Vlcy4KK2Z1bmN0aW9uIHZlcmlm
eV9jb3JzX2ZldGNoX3dpdGhfaGVhZGVyX3ZhbHVlKHVybCwgaGVhZGVyX3ZhbHVlKSB7CisgIHZh
ciByZXNwb25zZTsKKyAgdmFyIGNhY2hlOworICByZXR1cm4gZmV0Y2godXJsKQorICAgIC50aGVu
KHIgPT4geworICAgICAgICByZXNwb25zZSA9IHIuY2xvbmUoKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhyLnR5cGUsICdjb3JzJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoci5oZWFkZXJzLmdl
dCh0ZXN0X2hlYWRlciksIGhlYWRlcl92YWx1ZSwgJ0Zyb20gZmV0Y2gnKTsKKyAgICAgICAgcmV0
dXJuIHIudGV4dCgpOworICAgICAgfSkKKyAgICAudGhlbihyZXNwb25zZV90ZXh0ID0+IHsKKyAg
ICAgICAgYXNzZXJ0X3RydWUocmVzcG9uc2VfdGV4dC5zdGFydHNXaXRoKCdyZXBvcnQoJyksCisg
ICAgICAgICAgICAnQ29ycmVjdCBjb250ZW50IHZpYSBmZXRjaCcpOworICAgICAgICByZXR1cm4g
c2VsZi5jYWNoZXMub3Blbih1cmwpOworICAgICAgfSkKKyAgICAudGhlbihjID0+IHsKKyAgICAg
ICAgY2FjaGUgPSBjOworICAgICAgICByZXR1cm4gY2FjaGUucHV0KHVybCwgcmVzcG9uc2UpOwor
ICAgICAgfSkKKyAgICAudGhlbigoKSA9PiBjYWNoZS5tYXRjaCh1cmwpKQorICAgIC50aGVuKHIg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHIudHlwZSwgJ2NvcnMnKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyLmhlYWRlcnMuZ2V0KHRlc3RfaGVhZGVyKSwgaGVhZGVyX3ZhbHVlLCAnRnJv
bSBjYWNoZScpOworICAgICAgICByZXR1cm4gci50ZXh0KCk7CisgICAgICB9KQorICAgIC50aGVu
KHJlc3BvbnNlX3RleHQgPT4geworICAgICAgICBhc3NlcnRfdHJ1ZShyZXNwb25zZV90ZXh0LnN0
YXJ0c1dpdGgoJ3JlcG9ydCgnKSwKKyAgICAgICAgICAgICdDb3JyZWN0IGNvbnRlbnQgdmlhIGNh
Y2hlJyk7CisgICAgICAgIHJldHVybiBzZWxmLmNhY2hlcy5kZWxldGUodXJsKTsKKyAgICAgIH0p
CisgICAgLnRoZW4oKCkgPT4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIHZhciBy
ZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHJlcXVlc3Qub3BlbignR0VU
JywgdXJsKTsKKyAgICAgICAgcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7Cisg
ICAgICAgICAgaWYgKHJlcXVlc3QucmVhZHlTdGF0ZSA9PSA0KSByZXNvbHZlKHJlcXVlc3QpOwor
ICAgICAgICB9OworICAgICAgICByZXF1ZXN0LnNlbmQoKTsKKyAgICAgIH0pKQorICAgIC50aGVu
KHhociA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKHhoci5yZXNwb25zZVRleHQuc3RhcnRzV2l0
aCgncmVwb3J0KCcpLAorICAgICAgICAgICAgJ0NvcnJlY3QgY29udGVudCB2aWEgeGhyJyk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoeGhyLmdldFJlc3BvbnNlSGVhZGVyKHRlc3RfaGVhZGVyKSwg
aGVhZGVyX3ZhbHVlKTsKKyAgICAgICAgdmFyIGhlYWRlcnMgPSB4aHIuZ2V0QWxsUmVzcG9uc2VI
ZWFkZXJzKCkudG9Mb3dlckNhc2UoKTsKKyAgICAgICAgaWYgKGhlYWRlcl92YWx1ZSkgeworICAg
ICAgICAgIGFzc2VydF90cnVlKGhlYWRlcnMuaW5jbHVkZXModGVzdF9oZWFkZXIudG9Mb3dlckNh
c2UoKSArICc6ICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVh
ZGVyX3ZhbHVlLnRvTG93ZXJDYXNlKCkpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBh
c3NlcnRfZmFsc2UoaGVhZGVycy5pbmNsdWRlcyh0ZXN0X2hlYWRlci50b0xvd2VyQ2FzZSgpKSk7
CisgICAgICAgIH0KKyAgICAgIH0pOworfQorCit2ZXJpZnlfY29yc19mZXRjaF93aXRoX2hlYWRl
ciA9CisgICAgdXJsID0+IHZlcmlmeV9jb3JzX2ZldGNoX3dpdGhfaGVhZGVyX3ZhbHVlKHVybCwg
J1NldEluVGhlU2VydmVyJyk7Cit2ZXJpZnlfY29yc19mZXRjaF93aXRob3V0X2hlYWRlciA9Cisg
ICAgdXJsID0+IHZlcmlmeV9jb3JzX2ZldGNoX3dpdGhfaGVhZGVyX3ZhbHVlKHVybCwgbnVsbCk7
CisKK3ZhciB0ZXN0cyA9IFsKKyAgeworICAgIGRlc2NyaXB0aW9uOiAnU2FtZSBvcmlnaW4gZmV0
Y2ggd2l0aG91dCBDT1JTIGhlYWRlcnMsIG5vdCBleHBvc2VkJywKKyAgICBwYXJhbXM6IHsKKyAg
ICAgIGNyb3NzX29yaWdpbjogZmFsc2UsCisgICAgICB3aXRoX2FjZWhlYWRlcnM6IGZhbHNlLAor
ICAgICAgd2l0aF9hY2FvcmlnaW46IGZhbHNlCisgICAgfSwKKyAgICByZXNwb25zZToge30sCisg
ICAgZXhwZWN0YXRpb246IHZlcmlmeV9vcGFxdWVfZmV0Y2gKKyAgfSwKKyAgeworICAgIGRlc2Ny
aXB0aW9uOiAnU2FtZSBvcmlnaW4gZmV0Y2ggd2l0aG91dCBDT1JTIGhlYWRlcnMsIG9ubHkgb3Jp
Z2luIGV4cG9zZWQnLAorICAgIHBhcmFtczogeworICAgICAgY3Jvc3Nfb3JpZ2luOiBmYWxzZSwK
KyAgICAgIHdpdGhfYWNlaGVhZGVyczogZmFsc2UsCisgICAgICB3aXRoX2FjYW9yaWdpbjogZmFs
c2UKKyAgICB9LAorICAgIHJlc3BvbnNlOiB7b3JpZ2luOiBvcmlnaW59LAorICAgIGV4cGVjdGF0
aW9uOiB2ZXJpZnlfY29yc19mZXRjaF93aXRob3V0X2hlYWRlcgorICB9LAorICB7CisgICAgZGVz
Y3JpcHRpb246CisgICAgICAgICdTYW1lIG9yaWdpbiBmZXRjaCB3aXRob3V0IENPUlMgaGVhZGVy
cywgaGVhZGVycyBhbmQgb3JpZ2luIGV4cG9zZWQnLAorICAgIHBhcmFtczogeworICAgICAgY3Jv
c3Nfb3JpZ2luOiBmYWxzZSwKKyAgICAgIHdpdGhfYWNlaGVhZGVyczogZmFsc2UsCisgICAgICB3
aXRoX2FjYW9yaWdpbjogZmFsc2UKKyAgICB9LAorICAgIHJlc3BvbnNlOiB7b3JpZ2luOiBvcmln
aW4sIGhlYWRlcnM6IFt0ZXN0X2hlYWRlcl19LAorICAgIGV4cGVjdGF0aW9uOiB2ZXJpZnlfY29y
c19mZXRjaF93aXRoX2hlYWRlcgorICB9LAorICB7CisgICAgZGVzY3JpcHRpb246CisgICAgICAg
ICdTYW1lIG9yaWdpbiBmZXRjaCB3aXRob3V0IENPUlMgaGVhZGVycywgZXhwb3NlZCB0byB3cm9u
ZyBvcmlnaW4nLAorICAgIHBhcmFtczogeworICAgICAgY3Jvc3Nfb3JpZ2luOiBmYWxzZSwKKyAg
ICAgIHdpdGhfYWNlaGVhZGVyczogZmFsc2UsCisgICAgICB3aXRoX2FjYW9yaWdpbjogZmFsc2UK
KyAgICB9LAorICAgIHJlc3BvbnNlOiB7b3JpZ2luOiB3cm9uZ19vcmlnaW4sIGhlYWRlcnM6IFt0
ZXN0X2hlYWRlcl19LAorICAgIGV4cGVjdGF0aW9uOiB2ZXJpZnlfbmV0d29ya19lcnJvcgorICB9
LAorICB7CisgICAgZGVzY3JpcHRpb246ICdTYW1lIG9yaWdpbiBmZXRjaCB3aXRoIENPUlMgaGVh
ZGVycywgbm90IGV4cG9zZWQnLAorICAgIHBhcmFtczogeworICAgICAgY3Jvc3Nfb3JpZ2luOiBm
YWxzZSwKKyAgICAgIHdpdGhfYWNlaGVhZGVyczogdHJ1ZSwKKyAgICAgIHdpdGhfYWNhb3JpZ2lu
OiB0cnVlCisgICAgfSwKKyAgICByZXNwb25zZToge30sCisgICAgZXhwZWN0YXRpb246IHZlcmlm
eV9vcGFxdWVfZmV0Y2gKKyAgfSwKKyAgeworICAgIGRlc2NyaXB0aW9uOiAnU2FtZSBvcmlnaW4g
ZmV0Y2ggd2l0aCBDT1JTIGhlYWRlcnMsIG9ubHkgb3JpZ2luIGV4cG9zZWQnLAorICAgIHBhcmFt
czogeworICAgICAgY3Jvc3Nfb3JpZ2luOiBmYWxzZSwKKyAgICAgIHdpdGhfYWNlaGVhZGVyczog
dHJ1ZSwKKyAgICAgIHdpdGhfYWNhb3JpZ2luOiB0cnVlCisgICAgfSwKKyAgICByZXNwb25zZTog
e29yaWdpbjogb3JpZ2lufSwKKyAgICBleHBlY3RhdGlvbjogdmVyaWZ5X2NvcnNfZmV0Y2hfd2l0
aG91dF9oZWFkZXIKKyAgfSwKKyAgeworICAgIGRlc2NyaXB0aW9uOgorICAgICAgICAnU2FtZSBv
cmlnaW4gZmV0Y2ggd2l0aCBDT1JTIGhlYWRlcnMsIGhlYWRlcnMgYW5kIG9yaWdpbiBleHBvc2Vk
JywKKyAgICBwYXJhbXM6IHsKKyAgICAgIGNyb3NzX29yaWdpbjogZmFsc2UsCisgICAgICB3aXRo
X2FjZWhlYWRlcnM6IHRydWUsCisgICAgICB3aXRoX2FjYW9yaWdpbjogdHJ1ZQorICAgIH0sCisg
ICAgcmVzcG9uc2U6IHtvcmlnaW46IG9yaWdpbiwgaGVhZGVyczogW3Rlc3RfaGVhZGVyXX0sCisg
ICAgZXhwZWN0YXRpb246IHZlcmlmeV9jb3JzX2ZldGNoX3dpdGhfaGVhZGVyCisgIH0sCisgIHsK
KyAgICBkZXNjcmlwdGlvbjogJ1NhbWUgb3JpZ2luIGZldGNoIHdpdGggQ09SUyBoZWFkZXJzLCBl
eHBvc2VkIHRvIHdyb25nIG9yaWdpbicsCisgICAgcGFyYW1zOiB7CisgICAgICBjcm9zc19vcmln
aW46IGZhbHNlLAorICAgICAgd2l0aF9hY2VoZWFkZXJzOiB0cnVlLAorICAgICAgd2l0aF9hY2Fv
cmlnaW46IHRydWUKKyAgICB9LAorICAgIHJlc3BvbnNlOiB7b3JpZ2luOiB3cm9uZ19vcmlnaW4s
IGhlYWRlcnM6IFt0ZXN0X2hlYWRlcl19LAorICAgIGV4cGVjdGF0aW9uOiB2ZXJpZnlfbmV0d29y
a19lcnJvcgorICB9LAorICB7CisgICAgZGVzY3JpcHRpb246ICdDcm9zcyBvcmlnaW4gZmV0Y2gg
d2l0aG91dCBDT1JTIGhlYWRlcnMsIG5vdCBleHBvc2VkJywKKyAgICBwYXJhbXM6IHsKKyAgICAg
IGNyb3NzX29yaWdpbjogdHJ1ZSwKKyAgICAgIHdpdGhfYWNlaGVhZGVyczogZmFsc2UsCisgICAg
ICB3aXRoX2FjYW9yaWdpbjogZmFsc2UKKyAgICB9LAorICAgIHJlc3BvbnNlOiB7fSwKKyAgICBl
eHBlY3RhdGlvbjogdmVyaWZ5X29wYXF1ZV9mZXRjaAorICB9LAorICB7CisgICAgZGVzY3JpcHRp
b246ICdDcm9zcyBvcmlnaW4gZmV0Y2ggd2l0aCBBQ0VIZWFkZXJzIGhlYWRlciwgbm90IGV4cG9z
ZWQnLAorICAgIHBhcmFtczogeworICAgICAgY3Jvc3Nfb3JpZ2luOiB0cnVlLAorICAgICAgd2l0
aF9hY2VoZWFkZXJzOiB0cnVlLAorICAgICAgd2l0aF9hY2FvcmlnaW46IHRydWUKKyAgICB9LAor
ICAgIHJlc3BvbnNlOiB7fSwKKyAgICBleHBlY3RhdGlvbjogdmVyaWZ5X29wYXF1ZV9mZXRjaAor
ICB9LAorICB7CisgICAgZGVzY3JpcHRpb246CisgICAgICAgICdDcm9zcyBvcmlnaW4gZmV0Y2gg
d2l0aCBBQ0VIZWFkZXJzIGhlYWRlciwgb25seSBvcmlnaW4gZXhwb3NlZCcsCisgICAgcGFyYW1z
OiB7CisgICAgICBjcm9zc19vcmlnaW46IHRydWUsCisgICAgICB3aXRoX2FjZWhlYWRlcnM6IHRy
dWUsCisgICAgICB3aXRoX2FjYW9yaWdpbjogdHJ1ZQorICAgIH0sCisgICAgcmVzcG9uc2U6IHtv
cmlnaW46IG9yaWdpbn0sCisgICAgZXhwZWN0YXRpb246IHZlcmlmeV9jb3JzX2ZldGNoX3dpdGhv
dXRfaGVhZGVyCisgIH0sCisgIHsKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgICAgJ0Nyb3NzIG9y
aWdpbiBmZXRjaCB3aXRoIEFDRUhlYWRlcnMgaGVhZGVyLCBoZWFkZXJzIGFuZCBvcmlnaW4gZXhw
b3NlZCcsCisgICAgcGFyYW1zOiB7CisgICAgICBjcm9zc19vcmlnaW46IHRydWUsCisgICAgICB3
aXRoX2FjZWhlYWRlcnM6IHRydWUsCisgICAgICB3aXRoX2FjYW9yaWdpbjogdHJ1ZQorICAgIH0s
CisgICAgcmVzcG9uc2U6IHtvcmlnaW46IG9yaWdpbiwgaGVhZGVyczogW3Rlc3RfaGVhZGVyXX0s
CisgICAgZXhwZWN0YXRpb246IHZlcmlmeV9jb3JzX2ZldGNoX3dpdGhfaGVhZGVyCisgIH0sCisg
IHsKKyAgICBkZXNjcmlwdGlvbjoKKyAgICAgICAgJ0Nyb3NzIG9yaWdpbiBmZXRjaCB3aXRoIEFD
RUhlYWRlcnMgaGVhZGVyLCBleHBvc2VkIHRvIHdyb25nIG9yaWdpbicsCisgICAgcGFyYW1zOiB7
CisgICAgICBjcm9zc19vcmlnaW46IHRydWUsCisgICAgICB3aXRoX2FjZWhlYWRlcnM6IHRydWUs
CisgICAgICB3aXRoX2FjYW9yaWdpbjogdHJ1ZQorICAgIH0sCisgICAgcmVzcG9uc2U6IHtvcmln
aW46IHdyb25nX29yaWdpbiwgaGVhZGVyczogW3Rlc3RfaGVhZGVyXX0sCisgICAgZXhwZWN0YXRp
b246IHZlcmlmeV9uZXR3b3JrX2Vycm9yCisgIH0sCisgIHsKKyAgICBkZXNjcmlwdGlvbjogJ0Ny
b3NzIG9yaWdpbiBmZXRjaCB3aXRob3V0IEFDRUhlYWRlcnMgaGVhZGVyLCBub3QgZXhwb3NlZCcs
CisgICAgcGFyYW1zOiB7CisgICAgICBjcm9zc19vcmlnaW46IHRydWUsCisgICAgICB3aXRoX2Fj
ZWhlYWRlcnM6IGZhbHNlLAorICAgICAgd2l0aF9hY2FvcmlnaW46IHRydWUKKyAgICB9LAorICAg
IHJlc3BvbnNlOiB7fSwKKyAgICBleHBlY3RhdGlvbjogdmVyaWZ5X29wYXF1ZV9mZXRjaAorICB9
LAorICB7CisgICAgZGVzY3JpcHRpb246CisgICAgICAgICdDcm9zcyBvcmlnaW4gZmV0Y2ggd2l0
aG91dCBBQ0VIZWFkZXJzIGhlYWRlciwgb25seSBvcmlnaW4gZXhwb3NlZCcsCisgICAgcGFyYW1z
OiB7CisgICAgICBjcm9zc19vcmlnaW46IHRydWUsCisgICAgICB3aXRoX2FjZWhlYWRlcnM6IGZh
bHNlLAorICAgICAgd2l0aF9hY2FvcmlnaW46IHRydWUKKyAgICB9LAorICAgIHJlc3BvbnNlOiB7
b3JpZ2luOiBvcmlnaW59LAorICAgIGV4cGVjdGF0aW9uOiB2ZXJpZnlfY29yc19mZXRjaF93aXRo
b3V0X2hlYWRlcgorICB9LAorICB7CisgICAgZGVzY3JpcHRpb246ICdDcm9zcyBvcmlnaW4gZmV0
Y2ggd2l0aG91dCBBQ0VIZWFkZXJzIGhlYWRlciwgJyArCisgICAgICAgICAgICAgICAgICdoZWFk
ZXJzIGFuZCBvcmlnaW4gZXhwb3NlZCcsCisgICAgcGFyYW1zOiB7CisgICAgICBjcm9zc19vcmln
aW46IHRydWUsCisgICAgICB3aXRoX2FjZWhlYWRlcnM6IGZhbHNlLAorICAgICAgd2l0aF9hY2Fv
cmlnaW46IHRydWUKKyAgICB9LAorICAgIHJlc3BvbnNlOiB7b3JpZ2luOiBvcmlnaW4sIGhlYWRl
cnM6IFt0ZXN0X2hlYWRlcl19LAorICAgIGV4cGVjdGF0aW9uOiB2ZXJpZnlfY29yc19mZXRjaF93
aXRob3V0X2hlYWRlcgorICB9CitdOworCitmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0
aDsgKytpKSAoZGF0YSA9PiB7CisgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgIHZhciBzY29w
ZSA9IHNjb3BlX2Zvcl9wYXJhbXMoZGF0YS5wYXJhbXMpOworICAgICAgdmFyIHdvcmtlciA9IHdv
cmtlcl9mb3JfcmVzcG9uc2UoZGF0YS5yZXNwb25zZSk7CisgICAgICByZXR1cm4gaW5zdGFsbF9j
cm9zc19vcmlnaW5fd29ya2VyKHQsIHdvcmtlciwgc2NvcGUpCisgICAgICAgIC50aGVuKCgpID0+
IGRhdGEuZXhwZWN0YXRpb24odXJsX3RvX2ZldGNoKHNjb3BlKSwgdCkpOworICAgIH0sIGRhdGEu
ZGVzY3JpcHRpb24pOworfSkodGVzdHNbaV0pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mb3JlaWduLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mb3JlaWduLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTRlZWRhMzk2NjJiOTQxYzRlMzQ1OWUyYTcwMDBjMTI5NTI3OTc4ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZvcmVpZ24tZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBG
b3JlaWduRmV0Y2hFdmVudDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3NlcnZpY2Vfd29ya2VyX3Rlc3QoJ3Jlc291cmNl
cy9mb3JlaWduLWZldGNoLWV2ZW50LXdvcmtlci5qcycsCisgICAgICAgICAgICAgICAgICAgICdG
b3JlaWduRmV0Y2hFdmVudCBjb25zdHJ1Y3RvcicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9mb3JlaWduLWZldGNoLXdvcmtlcnMuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZvcmVpZ24tZmV0Y2gtd29ya2Vycy5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY1OTcyOTAwNjQ4ZmIzY2E0YmI0NzVhNTI3OWQxN2U3ZjNhZDk4ZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mb3JlaWduLWZldGNoLXdvcmtlcnMuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2ZvcmVpZ24tZmV0
Y2gtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgaG9zdF9pbmZv
ID0gZ2V0X2hvc3RfaW5mbygpOwordmFyIGZmX3dvcmtlciA9ICdmb3JlaWduLWZldGNoLXdvcmtl
ci5qcz97fSc7Cit2YXIgcmVzb3VyY2VfcGF0aCA9IG5ldyBVUkwoJ3Jlc291cmNlcy8nLCBsb2Nh
dGlvbikucGF0aG5hbWU7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgZmZfc2NvcGUg
PSAnc2ltcGxlLnR4dD9iYXNpY19zdyc7CisgICAgdmFyIHdvcmtlciA9ICdyZXNvdXJjZXMvZm9y
ZWlnbi1mZXRjaC1oZWxwZXItd29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2Vz
L3NpbXBsZS5odG1sP2ZvcmVpZ25mZXRjaCc7CisgICAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3Jp
Z2luX3dvcmtlcih0LCBmZl93b3JrZXIsIGZmX3Njb3BlKQorICAgICAgLnRoZW4oKCkgPT4gc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyLCBzY29wZSkpCisg
ICAgICAudGhlbihyID0+IHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9
PiByLnVucmVnaXN0ZXIoKSk7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIu
aW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4g
d2l0aF9pZnJhbWUoc2NvcGUpKQorICAgICAgLnRoZW4oZnJhbWUgPT4geworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuaW5uZXJUZXh0LCAnRm9yZWln
biBGZXRjaCcpOworICAgICAgICB9KTsKKyAgfSwgJ0ZvcmVpZ24gZmV0Y2ggY2FuIGludGVyY2Vw
dCBmZXRjaGVzIG1hZGUgZnJvbSBhIHNlcnZpY2Ugd29ya2VyJyk7CisKK3Byb21pc2VfdGVzdCh0
ID0+IHsKKyAgICBsZXQgc2NvcGUgPSAnc2ltcGxlLnR4dD9iYXNpY19kZWRpY2F0ZWQnOworICAg
IGxldCByZW1vdGVfdXJsID0gaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyByZXNvdXJj
ZV9wYXRoICsgc2NvcGU7CisgICAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3JpZ2luX3dvcmtlcih0
LCBmZl93b3JrZXIsIHNjb3BlKQorICAgICAgLnRoZW4oKCkgPT4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICAgICAgbGV0IHdvcmtlciA9IG5ldyBXb3JrZXIoJ3Jlc291cmNlcy9mb3Jl
aWduLWZldGNoLWhlbHBlci1zY3JpcHQuanMnKTsKKyAgICAgICAgICBsZXQgY2hhbm5lbCA9IG5l
dyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dXJsOiBy
ZW1vdGVfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydDogY2hhbm5lbC5w
b3J0MX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGFubmVsLnBvcnQxXSk7Cisg
ICAgICAgICAgY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSByZXBseSA9PiByZXNvbHZlKHJlcGx5
LmRhdGEpOworICAgICAgICB9KSkKKyAgICAgIC50aGVuKHJlc3BvbnNlID0+IGFzc2VydF9lcXVh
bHMocmVzcG9uc2UsICdTdWNjZXNzOiBGb3JlaWduIEZldGNoJykpOworICB9LCAnRm9yZWlnbiBm
ZXRjaCBjYW4gaW50ZXJjZXB0IGZldGNoZXMgbWFkZSBmcm9tIGEgZGVkaWNhdGVkIHdvcmtlcicp
OworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgbGV0IHNjb3BlID0gJ3NpbXBsZS50eHQ/YmFz
aWNfc2hhcmVkJzsKKyAgICBsZXQgcmVtb3RlX3VybCA9IGhvc3RfaW5mby5IVFRQU19SRU1PVEVf
T1JJR0lOICsgcmVzb3VyY2VfcGF0aCArIHNjb3BlOworICAgIHJldHVybiBpbnN0YWxsX2Nyb3Nz
X29yaWdpbl93b3JrZXIodCwgZmZfd29ya2VyLCBzY29wZSkKKyAgICAgIC50aGVuKCgpID0+IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgIGxldCB3b3JrZXIgPSBuZXcgU2hhcmVk
V29ya2VyKAorICAgICAgICAgICAgICAncmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtaGVscGVyLXNj
cmlwdC5qcycpOworICAgICAgICAgIGxldCBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7
CisgICAgICAgICAgd29ya2VyLnBvcnQucG9zdE1lc3NhZ2Uoe3VybDogcmVtb3RlX3VybCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ6IGNoYW5uZWwucG9ydDF9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0MV0pOworICAgICAgICAgIGNoYW5u
ZWwucG9ydDIub25tZXNzYWdlID0gcmVwbHkgPT4gcmVzb2x2ZShyZXBseS5kYXRhKTsKKyAgICAg
ICAgfSkpCisgICAgICAudGhlbihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAn
U3VjY2VzczogRm9yZWlnbiBGZXRjaCcpKTsKKyAgfSwgJ0ZvcmVpZ24gZmV0Y2ggY2FuIGludGVy
Y2VwdCBmZXRjaGVzIG1hZGUgZnJvbSBhIHNoYXJlZCB3b3JrZXInKTsKKworcHJvbWlzZV90ZXN0
KHQgPT4geworICAgIHZhciBzY29wZSA9ICdzaW1wbGUudHh0P2Jhc2ljX2RlZGljYXRlZF9pbnNl
Y3VyZSc7CisgICAgdmFyIHJlbW90ZV91cmwgPSBob3N0X2luZm8uQVVUSEVOVElDQVRFRF9PUklH
SU4gKyByZXNvdXJjZV9wYXRoICsgc2NvcGU7CisgICAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3Jp
Z2luX3dvcmtlcih0LCBmZl93b3JrZXIsIHNjb3BlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaG9zdF9pbmZvLkFVVEhFTlRJQ0FURURfT1JJR0lOKQorICAgICAgLnRo
ZW4oKCkgPT4gZmV0Y2hfZnJvbV9kaWZmZXJlbnRfb3JpZ2luKAorICAgICAgICAgIGhvc3RfaW5m
by5IVFRQU19SRU1PVEVfT1JJR0lOLCByZW1vdGVfdXJsLCAnZGVkaWNhdGVkJykpCisgICAgICAu
dGhlbihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnU3VjY2VzczogRm9yZWln
biBGZXRjaCcpKQorICAgICAgLnRoZW4oKCkgPT4gZmV0Y2hfZnJvbV9kaWZmZXJlbnRfb3JpZ2lu
KAorICAgICAgICAgIGhvc3RfaW5mby5VTkFVVEhFTlRJQ0FURURfT1JJR0lOLCByZW1vdGVfdXJs
LCAnZGVkaWNhdGVkJykpCisgICAgICAudGhlbihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJl
c3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRXJyb3I6IFR5
cGVFcnJvcjogRmFpbGVkIHRvIGZldGNoJykpOworICB9LCAnRmV0Y2hlcyBmcm9tIGFuIGluc2Vj
dXJlIGRlZGljYXRlZCB3b3JrZXIgYXJlblwndCBpbnRlcmNlcHRlZC4nKTsKKworcHJvbWlzZV90
ZXN0KHQgPT4geworICAgIHZhciBzY29wZSA9ICdzaW1wbGUudHh0P2Jhc2ljX3NoYXJlZF9pbnNl
Y3VyZSc7CisgICAgdmFyIHJlbW90ZV91cmwgPSBob3N0X2luZm8uQVVUSEVOVElDQVRFRF9PUklH
SU4gKyByZXNvdXJjZV9wYXRoICsgc2NvcGU7CisgICAgcmV0dXJuIGluc3RhbGxfY3Jvc3Nfb3Jp
Z2luX3dvcmtlcih0LCBmZl93b3JrZXIsIHNjb3BlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaG9zdF9pbmZvLkFVVEhFTlRJQ0FURURfT1JJR0lOKQorICAgICAgLnRo
ZW4oKCkgPT4gZmV0Y2hfZnJvbV9kaWZmZXJlbnRfb3JpZ2luKAorICAgICAgICAgIGhvc3RfaW5m
by5IVFRQU19SRU1PVEVfT1JJR0lOLCByZW1vdGVfdXJsLCAnc2hhcmVkJykpCisgICAgICAudGhl
bihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnU3VjY2VzczogRm9yZWlnbiBG
ZXRjaCcpKQorICAgICAgLnRoZW4oKCkgPT4gZmV0Y2hfZnJvbV9kaWZmZXJlbnRfb3JpZ2luKAor
ICAgICAgICAgIGhvc3RfaW5mby5VTkFVVEhFTlRJQ0FURURfT1JJR0lOLCByZW1vdGVfdXJsLCAn
c2hhcmVkJykpCisgICAgICAudGhlbihyZXNwb25zZSA9PiBhc3NlcnRfZXF1YWxzKHJlc3BvbnNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRXJyb3I6IFR5cGVFcnJv
cjogRmFpbGVkIHRvIGZldGNoJykpOworICB9LCAnRmV0Y2hlcyBmcm9tIGFuIGluc2VjdXJlIHNo
YXJlZCB3b3JrZXIgYXJlblwndCBpbnRlcmNlcHRlZC4nKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9ucy5odHRwcy5odG1sCmluZGV4IDg2
ZThlMWMyODNlY2Y3YzRlNGMzNmYyNjY1MWVkMjBmZTk5NGQ1MTEuLjExZGEyNzAzNmQwOTJjMmYy
YzZkNThkZjU3NmIyOWU5YmZiOTk1MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2dl
dHJlZ2lzdHJhdGlvbnMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdp
c3RyYXRpb25zLmh0dHBzLmh0bWwKQEAgLTMsMTMgKzMsMTIgQEAKIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dl
dC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9mZXRjaC9yZXNv
dXJjZXMvZmV0Y2gtdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogLy8gUHVy
Z2UgdGhlIGV4aXN0aW5nIHJlZ2lzdHJhdGlvbnMgZm9yIHRoZSBvcmlnaW4uCiAvLyBnZXRSZWdp
c3RyYXRpb25zKCkgaXMgdXNlZCBpbiBvcmRlciB0byBhdm9pZCBhZGRpbmcgYWRkaXRpb25hbCBj
b21wbGV4aXR5CiAvLyBlLmcuIGFkZGluZyBhbiBpbnRlcm5hbCBmdW5jdGlvbi4KLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7CiAgICAgcmV0dXJu
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKQogICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVnaXN0cmF0aW9ucykgewogICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb25z
LnJlZHVjZShmdW5jdGlvbihzZXF1ZW5jZSwgcmVnaXN0cmF0aW9uKSB7CkBAIC0xNywxOCArMTYs
MTcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICAgICAgICAgIHJldHVy
biByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpOwotICAgICAgICB9KTsKLSAgfSwgJ1B1cmdlIHRo
ZSBleGlzdGluZyByZWdpc3RyYXRpb25zLicpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
ewotICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCk7CisgICAgICAgIH0pCiAg
ICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoCiAgICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgJ2dl
dFJlZ2lzdHJhdGlvbnMgc2hvdWxkIHJlc29sdmUgd2l0aCBhbiBlbXB0eSBhcnJheS4nKTsKICAg
ICAgICAgfSk7Ci0gIH0sICdnZXRSZWdpc3RyYXRpb25zJyk7Cit9LCAncmVnaXN0cmF0aW9ucyBh
cmUgbm90IHJldHVybmVkIGZvbGxvd2luZyB1bnJlZ2lzdGVyJyk7CiAKIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9nZXRyZWdpc3Ry
YXRpb25zL25vcm1hbCc7CkBAIC05Myw2ICs5MSwzNiBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgewogICB9LCAnUmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHRoZW4gZ2V0UmVnaXN0cmF0aW9u
cycpOwogCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvc2NvcGUvZ2V0cmVnaXN0cmF0aW9ucy9yZWdpc3Rlci11bnJlZ2lzdGVyLWNvbnRyb2xs
ZWQnOworICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgICAg
dmFyIHJlZ2lzdHJhdGlvbnM7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7
CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jf
c3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFt
ZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAg
ICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsgZi5yZW1vdmUoKTsgfSk7CisgICAgICAgICAg
cmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
Z2V0UmVnaXN0cmF0aW9ucygpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24odmFs
dWUpIHsKKyAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKAorICAgICAgICAgICAgdmFsdWUs
CisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICdnZXRSZWdpc3RyYXRpb25zIHNob3VsZCBy
ZXNvbHZlIHdpdGggYW4gZW1wdHkgYXJyYXkuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdp
c3RyYXRpb24uYWN0aXZlLnN0YXRlLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pOworICB9LCAn
UmVnaXN0ZXIgdGhlbiBVbnJlZ2lzdGVyIHdpdGggY29udHJvbGxlZCBmcmFtZSB0aGVuIGdldFJl
Z2lzdHJhdGlvbnMnKTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICB2YXIgaG9z
dF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwogICAgIC8vIFJld3JpdGUgdGhlIHVybCB0byBwb2lu
dCB0byByZW1vdGUgb3JpZ2luLgogICAgIHZhciBmcmFtZV9zYW1lX29yaWdpbl91cmwgPSBuZXcg
VVJMKCJyZXNvdXJjZXMvZnJhbWUtZm9yLWdldHJlZ2lzdHJhdGlvbnMuaHRtbCIsIHdpbmRvdy5s
b2NhdGlvbik7CkBAIC0xMjUsNiArMTUzLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICAvLyBqdXN0IHVudGlsIHRoZSBmcmFtZSBsb2Fkcy4KICAgICByZXR1cm4gd2l0aF9pZnJh
bWVfcmVhZHkoZnJhbWVfdXJsKQogICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAg
IHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7IGYucmVtb3ZlKCk7IH0pOwogICAgICAgICAgIGZy
YW1lID0gZjsKICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSk7CiAgICAgICAgIH0pCkBAIC0xNTAsMTAgKzE3OSw3
IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgcmV0dXJuIHA7CiAgICAg
ICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICBmcmFtZS5yZW1vdmUo
KTsKICAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBzY29wZSk7
CiAgICAgICAgIH0pOwogICB9LCAnZ2V0UmVnaXN0cmF0aW9ucyBwcm9taXNlIHJlc29sdmVzIG9u
bHkgd2l0aCBzYW1lIG9yaWdpbiByZWdpc3RyYXRpb25zLicpOwotCi1kb25lKCk7CiA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2h0dHAtdG8taHR0cHMtcmVkaXJlY3Qt
YW5kLXJlZ2lzdGVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9odHRwLXRvLWh0dHBz
LXJlZGlyZWN0LWFuZC1yZWdpc3Rlci5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OGIyM2E0OWU5
ODAxZWI5Mjk2YTFkYTQwN2RhYzRmMzRmNDNmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9odHRwLXRvLWh0dHBzLXJlZGlyZWN0LWFuZC1yZWdpc3Rlci5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPnJlZ2lzdGVyIG9uIGEg
c2VjdXJlIHBhZ2UgYWZ0ZXIgcmVkaXJlY3QgZnJvbSBhbiBub24tc2VjdXJlIHVybDwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8
c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCisvLyBMb2FkcyBhIG5vbi1zZWN1cmUgdXJsIGluIGEg
bmV3IHdpbmRvdywgd2hpY2ggcmVkaXJlY3RzIHRvIHx0YXJnZXRfdXJsfC4KKy8vIFRoYXQgcGFn
ZSB0aGVuIHJlZ2lzdGVycyBhIHNlcnZpY2Ugd29ya2VyLCBhbmQgbWVzc2FnZXMgYmFjayB3aXRo
IHRoZSByZXN1bHQuCisvLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhl
IHJlc3VsdC4KK2Z1bmN0aW9uIHJlZGlyZWN0X2FuZF9yZWdpc3Rlcih0YXJnZXRfdXJsKSB7Cisg
IHZhciByZWRpcmVjdF91cmwgPSBnZXRfaG9zdF9pbmZvKClbJ1VOQVVUSEVOVElDQVRFRF9PUklH
SU4nXSArIGJhc2VfcGF0aCgpICsKKyAgICAncmVzb3VyY2VzL3JlZGlyZWN0LnB5P1JlZGlyZWN0
PSc7CisgIHZhciBjaGlsZCA9IHdpbmRvdy5vcGVuKHJlZGlyZWN0X3VybCArIGVuY29kZVVSSUNv
bXBvbmVudCh0YXJnZXRfdXJsKSk7CisgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBlID0+IHJlc29sdmUo
ZS5kYXRhKSk7CisgICAgICB9KQorICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAg
ICBjaGlsZC5jbG9zZSgpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgfSk7Cit9CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgIHZhciB0YXJnZXRfdXJsID0gd2luZG93Lmxv
Y2F0aW9uLm9yaWdpbiArIGJhc2VfcGF0aCgpICsKKyAgICAgICdyZXNvdXJjZXMvaHR0cC10by1o
dHRwcy1yZWRpcmVjdC1hbmQtcmVnaXN0ZXItaWZyYW1lLmh0bWwnOworCisgICAgcmV0dXJuIHJl
ZGlyZWN0X2FuZF9yZWdpc3Rlcih0YXJnZXRfdXJsKQorICAgICAgLnRoZW4ocmVzdWx0ID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ09LJyk7CisgICAgICAgIH0pOworICB9
LCAncmVnaXN0ZXIgb24gYSBzZWN1cmUgcGFnZSBhZnRlciByZWRpcmVjdCBmcm9tIGFuIG5vbi1z
ZWN1cmUgdXJsJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHRhcmdl
dF91cmwgPSBnZXRfaG9zdF9pbmZvKClbJ1VOQVVUSEVOVElDQVRFRF9PUklHSU4nXSArIGJhc2Vf
cGF0aCgpICsKKyAgICAgICdyZXNvdXJjZXMvaHR0cC10by1odHRwcy1yZWRpcmVjdC1hbmQtcmVn
aXN0ZXItaWZyYW1lLmh0bWwnOworCisgICAgcmV0dXJuIHJlZGlyZWN0X2FuZF9yZWdpc3Rlcih0
YXJnZXRfdXJsKQorICAgICAgLnRoZW4ocmVzdWx0ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlc3VsdCwgJ0ZBSUw6IFNlY3VyaXR5RXJyb3InKTsKKyAgICAgICAgfSk7CisgIH0sICdy
ZWdpc3RlciBvbiBhIG5vbi1zZWN1cmUgcGFnZSBhZnRlciByZWRpcmVjdCBmcm9tIGFuIG5vbi1z
ZWN1cmUgdXJsJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2lmcmFtZS1zYW5kYm94LXJlZ2lzdGVyLWxpbmstZWxlbWVudC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaWZyYW1lLXNhbmRib3gtcmVnaXN0ZXItbGluay1lbGVtZW50Lmh0
dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQxYzU0ZTNlZGM4YmUwZmVkZmE0NjFiOTEzNTFkYTZlNmZk
MmNhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lmcmFtZS1zYW5kYm94
LXJlZ2lzdGVyLWxpbmstZWxlbWVudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3Njcmlw
dD4KKzx0aXRsZT5TZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24gZnJvbSB3aXRoaW4gc2FuZGJv
eGVkIGlmcmFtZTwvdGl0bGU+Cis8Ym9keT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CitmdW5j
dGlvbiB3YWl0Rm9yTXNnKGlkKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUpIHsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5j
dGlvbiBvbk1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YSB8fCBl
dmVudC5kYXRhLmlkICE9PSBpZCkgeworICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9u
TWVzc2FnZSk7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEucmVzdWx0KTsKKyAgICAg
ICAgICB9KTsKKyAgICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAg
IHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICBpZnJh
bWUuc2V0QXR0cmlidXRlKCdzcmMnLCAncmVzb3VyY2VzL2lmcmFtZS1yZWdpc3Rlci1saW5rLWVs
ZW1lbnQuaHRtbD9zdWJ0ZXN0MScpOworICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUoJ3NhbmRib3gn
LCAnYWxsb3ctc2NyaXB0cycpOworCisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJh
bWUpOworICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmcmFtZS5yZW1v
dmUoKTsKKyAgICAgIH0pOworCisgICAgcmV0dXJuIHdhaXRGb3JNc2coJz9zdWJ0ZXN0MScpCisg
ICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRh
LCAnZXJyb3InKTsKKyAgICAgICAgfSk7CisgIH0sICdyZWdpc3RyYXRpb24gdmlhIDxsaW5rPiBl
bGVtZW50IGByZWxgIHJlamVjdGVkJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIGlm
cmFtZS5zZXRBdHRyaWJ1dGUoJ3NyYycsICdyZXNvdXJjZXMvaWZyYW1lLXJlZ2lzdGVyLWxpbmst
ZWxlbWVudC5odG1sP3N1YnRlc3QyJyk7CisgICAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnc2FuZGJv
eCcsICdhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luJyk7CisKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsK
KyAgICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAgICAgfSk7CisKKyAgICByZXR1cm4gd2FpdEZv
ck1zZygnP3N1YnRlc3QyJykKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGRhdGEsICdsb2FkZWQnKTsKKyAgICAgICAgfSk7CisgIH0sICdyZWdp
c3RyYXRpb24gdmlhIDxsaW5rPiBlbGVtZW50IGByZWxgIGFjY2VwdGVkIGluIHByZXNlbmNlIG9m
IGBhbGxvdy1zYW1lLW9yaWdpbmAgZGlyZWN0aXZlJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1hcC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFw
Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVlMjY3ODVmYWM0YWExMjY3NzYyZmY1OGM0ODk2OWRj
OGFjYjAxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3Jp
cHRzLXJlc291cmNlLW1hcC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3Jp
cHRzOiBzY3JpcHQgcmVzb3VyY2UgbWFwPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1o
ZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisvLyBUaGlzIHRlc3Qg
cmVnaXN0ZXJzIGEgd29ya2VyIHRoYXQgaW1wb3J0cyBhIHNjcmlwdCBtdWx0aXBsZSB0aW1lcy4g
VGhlCisvLyBzY3JpcHQgc2hvdWxkIGJlIHN0b3JlZCBvbiB0aGUgZmlyc3QgaW1wb3J0IGFuZCB0
aGVyZWFmdGVyIHRoYXQgc3RvcmVkCisvLyBzY3JpcHQgc2hvdWxkIGJlIGxvYWRlZC4gVGhlIHdv
cmtlciBhc3NlcnRzIHRoYXQgdGhlIHN0b3JlZCBzY3JpcHQgd2FzCisvLyBsb2FkZWQ7IGlmIHRo
ZSBhc3NlcnQgZmFpbHMgdGhlbiByZWdpc3RyYXRpb24gZmFpbHMuCitwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgY29uc3Qgc2NvcGUgPSAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNl
LW1hcCc7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgc2NvcGUpCisg
ICAgICAudGhlbigoKSA9PiB7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKAorICAgICAgICAgICAgICAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJl
c291cmNlLW1hcC13b3JrZXIuanMnLCB7c2NvcGU6IHNjb3BlfSk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihyID0+IHIudW5yZWdpc3RlcigpKTsKKyAgfSwgJ2ltcG9ydCB0aGUgc2FtZSBzY3Jp
cHQgVVJMIG11bHRpcGxlIHRpbWVzJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXVwZGF0ZWQtZmxhZy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvaW1wb3J0LXNjcmlwdHMtdXBkYXRlZC1mbGFnLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTA2ODI3Zjg5ZDVmZmQ1NWU4NDc5NTBkM2UzMWU5MjI0NTZlNmRkNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3JpcHRzLXVwZGF0
ZWQtZmxhZy5odHRwcy5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPlRlc3RzIGZvciBpbXBvcnRTY3JpcHRzOiBpbXBv
cnQgc2NyaXB0cyB1cGRhdGVkIGZsYWc8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhl
bHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KKy8vIFRoaXMgdGVzdCBy
ZWdpc3RlcnMgYSB3b3JrZXIgdGhhdCBjYWxscyBpbXBvcnRTY3JpcHRzIGF0IHZhcmlvdXMgc3Rh
Z2VzIG9mCisvLyBzZXJ2aWNlIHdvcmtlciBsaWZldGltZS4gVGhlIHN1Yi10ZXN0cyB0cmlnZ2Vy
IHN1YnNlcXVlbnQgYGltcG9ydFNjcmlwdGAKKy8vIGludm9jYXRpb25zIHZpYSB0aGUgYG1lc3Nh
Z2VgIGV2ZW50LgorCit2YXIgcmVnaXN0ZXI7CisKK2Z1bmN0aW9uIHBvc3RfYW5kX3dhaXRfZm9y
X3JlcGx5KHdvcmtlciwgbWVzc2FnZSkgeworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7CisgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSBlID0+IHsgcmVz
b2x2ZShlLmRhdGEpOyB9OworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKG1lc3NhZ2UpOworICAg
IH0pOworfQorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGNvbnN0IHNjb3BlID0g
J3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy11cGRhdGVkLWZsYWcnOworICAgIGxldCByZWdpc3Ry
YXRpb247CisKKyAgICByZWdpc3RlciA9IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKAorICAgICAgICB0LCAncmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXVwZGF0ZWQtZmxh
Zy13b3JrZXIuanMnLCBzY29wZSkKKyAgICAgIC50aGVuKHIgPT4geworICAgICAgICAgIHJlZ2lz
dHJhdGlvbiA9IHI7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4geyBy
ZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOyB9KTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jf
c3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAvLyBUaGlzIHRlc3Qgc2hvdWxkIG5v
dCBiZSBjb25zaWRlcmVkIGNvbXBsZXRlIHVudGlsIGFmdGVyIHRoZQorICAgICAgICAgIC8vIHNl
cnZpY2Ugd29ya2VyIGhhcyBiZWVuIHVucmVnaXN0ZXJlZC4gQ3VycmVudGx5LCBgdGVzdGhhcm5l
c3MuanNgCisgICAgICAgICAgLy8gZG9lcyBub3Qgc3VwcG9ydCBhc3luY2hyb25vdXMgZ2xvYmFs
ICJ0ZWFyIGRvd24iIGxvZ2ljLCBzbyB0aGlzCisgICAgICAgICAgLy8gbXVzdCBiZSBleHByZXNz
ZWQgdXNpbmcgYSBkZWRpY2F0ZWQgYHByb21pc2VfdGVzdGAuIEJlY2F1c2UgdGhlCisgICAgICAg
ICAgLy8gb3RoZXIgc3ViLXRlc3RzIGluIHRoaXMgZmlsZSBhcmUgZGVjbGFyZWQgc3luY2hyb25v
dXNseSwgdGhpcyB0ZXN0CisgICAgICAgICAgLy8gd2lsbCBiZSB0aGUgZmluYWwgdGVzdCBleGVj
dXRlZC4KKyAgICAgICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgICAgIH0pOworCisgICAg
cmV0dXJuIHJlZ2lzdGVyOworICB9LCAnaW5pdGlhbGl6ZSBnbG9iYWwgc3RhdGUnKTsKKworcHJv
bWlzZV90ZXN0KHQgPT4geworICAgIHJldHVybiByZWdpc3RlcgorICAgICAgLnRoZW4oZnVuY3Rp
b24od29ya2VyKSB7CisgICAgICAgICAgcmV0dXJuIHBvc3RfYW5kX3dhaXRfZm9yX3JlcGx5KHdv
cmtlciwgJ3Jvb3QtYW5kLW1lc3NhZ2UnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKHJlc3Vs
dCA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuZXJyb3IsIG51bGwpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LnZhbHVlLCAncm9vdC1hbmQtbWVzc2FnZScpOwor
ICAgICAgICB9KTsKKyAgfSwgJ2ltcG9ydCBzY3JpcHQgcHJldmlvdXNseSBpbXBvcnRlZCBhdCB3
b3JrZXIgZXZhbHVhdGlvbiB0aW1lJyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICByZXR1
cm4gcmVnaXN0ZXIKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHdvcmtlcikgeworICAgICAgICAgIHJl
dHVybiBwb3N0X2FuZF93YWl0X2Zvcl9yZXBseSh3b3JrZXIsICdpbnN0YWxsLWFuZC1tZXNzYWdl
Jyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihyZXN1bHQgPT4geworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVzdWx0LmVycm9yLCBudWxsKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
c3VsdC52YWx1ZSwgJ2luc3RhbGwtYW5kLW1lc3NhZ2UnKTsKKyAgICAgICAgfSk7CisgIH0sICdp
bXBvcnQgc2NyaXB0IHByZXZpb3VzbHkgaW1wb3J0ZWQgYXQgd29ya2VyIGluc3RhbGwgdGltZScp
OworCitwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgcmV0dXJuIHJlZ2lzdGVyCisgICAgICAudGhl
bihmdW5jdGlvbih3b3JrZXIpIHsKKyAgICAgICAgICByZXR1cm4gcG9zdF9hbmRfd2FpdF9mb3Jf
cmVwbHkod29ya2VyLCAnbWVzc2FnZScpOworICAgICAgICB9KQorICAgICAgLnRoZW4ocmVzdWx0
ID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5lcnJvciwgJ1R5cGVFcnJvcicp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LnZhbHVlLCBudWxsKTsKKyAgICAgICAg
fSk7CisgIH0sICdpbXBvcnQgc2NyaXB0IG5vdCBwcmV2aW91c2x5IGltcG9ydGVkJyk7Cis8L3Nj
cmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2luZGV4ZWRkYi5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW5kZXhlZGRiLmh0dHBzLmh0bWwKaW5kZXgg
NGRlMmJjNDNlMTc3YTViZDkwMDg4NGYzMzFhMDBmZDNhODUxOGYwNS4uYmU5YmU0OTY4ZjdiMmQw
Y2JjMWYxOGY4OGIwNmI3YWNiNmFkMDk2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
aW5kZXhlZGRiLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW5kZXhlZGRiLmh0
dHBzLmh0bWwKQEAgLTQsMzIgKzQsNzUgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1o
ZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotYXN5bmNfdGVzdChmdW5jdGlvbih0
KSB7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKLSAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgIHQsICdyZXNvdXJjZXMvaW5k
ZXhlZGRiLXdvcmtlci5qcycsIHNjb3BlKQotICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlv
bikgewotICAgICAgICB2YXIgc3cgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKLSAgICAgICAg
dmFyIG1lc3NhZ2VDaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgIG1lc3Nh
Z2VDaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKG9uTWVzc2FnZSk7Ci0gICAg
ICAgIHN3LnBvc3RNZXNzYWdlKHtwb3J0OiBtZXNzYWdlQ2hhbm5lbC5wb3J0Mn0sIFttZXNzYWdl
Q2hhbm5lbC5wb3J0Ml0pOwotICAgICAgfSkKLSAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlv
bih0KSk7Ci0KLSAgICBmdW5jdGlvbiBvbk1lc3NhZ2UoKSB7CitmdW5jdGlvbiByZWFkREIoKSB7
CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAg
IHZhciBvcGVuUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdkYicpOwotICAgICAgb3BlblJlcXVl
c3Qub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisKKyAgICAgIG9wZW5SZXF1
ZXN0Lm9uZXJyb3IgPSByZWplY3Q7CisgICAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbigpIHsKICAgICAgICAgICB2YXIgZGIgPSBvcGVuUmVxdWVzdC5yZXN1bHQ7CiAgICAgICAg
ICAgdmFyIHR4ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJyk7CiAgICAgICAgICAgdmFyIHN0b3Jl
ID0gdHgub2JqZWN0U3RvcmUoJ3N0b3JlJyk7CiAgICAgICAgICAgdmFyIGdldFJlcXVlc3QgPSBz
dG9yZS5nZXQoJ2tleScpOwotICAgICAgICAgIGdldFJlcXVlc3Qub25zdWNjZXNzID0gdC5zdGVw
X2Z1bmMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICAg
ICAgICAgICAgZ2V0UmVxdWVzdC5yZXN1bHQsICd2YWx1ZScsCi0gICAgICAgICAgICAgICAgJ1Ro
ZSBnZXQoKSByZXN1bHQgc2hvdWxkIG1hdGNoIHdoYXQgdGhlIHdvcmtlciBwdXQoKS4nKTsKLSAg
ICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
Ci0gICAgICAgICAgICB9KTsKKworICAgICAgICAgIGdldFJlcXVlc3Qub25lcnJvciA9IGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICBkYi5jbG9zZSgpOworICAgICAgICAgICAgICByZWplY3Qo
Z2V0UmVxdWVzdC5lcnJvcik7CisgICAgICAgICAgICB9OworICAgICAgICAgIGdldFJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIGRiLmNsb3NlKCk7CisgICAg
ICAgICAgICAgIHJlc29sdmUoZ2V0UmVxdWVzdC5yZXN1bHQpOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgfTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gc2VuZCh3b3JrZXIsIGFjdGlvbikgewor
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICB2
YXIgbWVzc2FnZUNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgIG1lc3NhZ2VD
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgaWYg
KGV2ZW50LmRhdGEudHlwZSA9PT0gJ2Vycm9yJykgeworICAgICAgICAgICAgcmVqZWN0KGV2ZW50
LmRhdGEucmVhc29uKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgIH07CisKKyAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgKKyAgICAgICAge2FjdGlvbjogYWN0
aW9uLCBwb3J0OiBtZXNzYWdlQ2hhbm5lbC5wb3J0Mn0sCisgICAgICAgIFttZXNzYWdlQ2hhbm5l
bC5wb3J0Ml0pOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAg
IHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7CisKKyAgICByZXR1cm4gc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCisgICAgICAgIHQsICdyZXNvdXJjZXMv
aW5kZXhlZGRiLXdvcmtlci5qcycsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0
cmF0aW9uKSB7CisgICAgICAgICAgdmFyIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
OworCisgICAgICAgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBy
ZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIH0sICdjbGVhbiB1
cDogcmVnaXN0cmF0aW9uJyk7CisKKyAgICAgICAgICByZXR1cm4gc2VuZCh3b3JrZXIsICdjcmVh
dGUnKQorICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
dmFyIGRlbGV0ZV9yZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYicpOworCisg
ICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVfcmVxdWVzdC5vbnN1Y2Nlc3MgPSByZXNvbHZl
OworICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlX3JlcXVlc3Qub25lcnJvciA9IHJlamVj
dDsKKyAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSwgJ2Ns
ZWFuIHVwOiBkYXRhYmFzZScpOworICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4o
cmVhZERCKQorICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICAgICAgdmFsdWUsICd2YWx1ZScsCisg
ICAgICAgICAgICAgICAgICAnVGhlIGdldCgpIHJlc3VsdCBzaG91bGQgbWF0Y2ggd2hhdCB0aGUg
d29ya2VyIHB1dCgpLicpOworICAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7Ci0gICAgfQog
ICB9LCAnVmVyaWZ5IEluZGV4ZWQgREIgb3BlcmF0aW9uIGluIGEgU2VydmljZSBXb3JrZXInKTsK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW50ZXJmYWNlcy5odHRwcy5odG1sCmluZGV4IDQw
M2EwMDUzNDRlY2E4NjljZGFhZmEwOGI2MzA0YWM3YTBkZGI1MjcuLjg4OTE0MmZlM2FmOTYyZWNi
ZjkzNzZhNmQ3OGM1ZmY1Y2MwMWNmNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2lu
dGVyZmFjZXMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnRlcmZhY2VzLmh0
dHBzLmh0bWwKQEAgLTEzLDcgKzEzLDkgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgIHsKICAg
ICAgICAgcmVnaXN0ZXI6ICdmdW5jdGlvbicsCiAgICAgICAgIGdldFJlZ2lzdHJhdGlvbjogJ2Z1
bmN0aW9uJywKLSAgICAgICAgb25jb250cm9sbGVyY2hhbmdlOiBFVkVOVF9IQU5ETEVSCisgICAg
ICAgIG9uY29udHJvbGxlcmNoYW5nZTogRVZFTlRfSEFORExFUiwKKyAgICAgICAgb25tZXNzYWdl
OiBFVkVOVF9IQU5ETEVSLAorICAgICAgICBvbm1lc3NhZ2VlcnJvcjogRVZFTlRfSEFORExFUgog
ICAgICAgfSk7CiAgIH0sICdJbnRlcmZhY2VzIGFuZCBhdHRyaWJ1dGVzIG9mIFNlcnZpY2VXb3Jr
ZXJDb250YWluZXInKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1i
bG9idHlwZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1ibG9idHlwZS5o
dHRwcy5odG1sCmluZGV4IGYxZjJkMWJkYzYxOGM3YzQ4Y2I0NmYwN2EwOGVjYjA4N2I0MzYzMWMu
LmI5OTQ4NTljMWM2ZTMyZjNmYzJhODQzMGVmM2JkZWM4MjM0MjkyMjIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ludmFsaWQtYmxvYnR5cGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9pbnZhbGlkLWJsb2J0eXBlLmh0dHBzLmh0bWwKQEAgLTIsOCArMiw4IEBACiA8
dGl0bGU+U2VydmljZSBXb3JrZXI6IHJlc3BvbmRXaXRoIHdpdGggaGVhZGVyIHZhbHVlIGNvbnRh
aW5pbmcgYSBudWxsIGJ5dGU8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBl
cnMuc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
ICAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2ludmFsaWQtYmxvYnR5cGUtaWZyYW1lLmh0dHBz
Lmh0bWwnOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW52YWxpZC1oZWFkZXIuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQtaGVhZGVyLmh0dHBzLmh0bWwKaW5k
ZXggNzk0Njk1MjY0OTM2MjkxNjcxZTQxZDc5MDk2YzBmMGM0YjE4MjBmOC4uMDI1NmEzYTRjMTU4
MmJkNTA1MjNkYjU3NTBiYjI2NTliODE1OGExYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvaW52YWxpZC1oZWFkZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnZh
bGlkLWhlYWRlci5odHRwcy5odG1sCkBAIC0yLDggKzIsOCBAQAogPHRpdGxlPlNlcnZpY2UgV29y
a2VyOiByZXNwb25kV2l0aCB3aXRoIGhlYWRlciB2YWx1ZSBjb250YWluaW5nIGEgbnVsbCBieXRl
PC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0PgogYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIFNDT1BFID0g
J3Jlc291cmNlcy9pbnZhbGlkLWhlYWRlci1pZnJhbWUuaHR0cHMuaHRtbCc7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDBh
YjU5Yzc3NTZlN2Q5ZDA4ZWZiMDM1MzYyODA0NTY1MWE1OTBjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvaXNvLWxhdGluMS1oZWFkZXIuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogcmVzcG9uZFdp
dGggd2l0aCBoZWFkZXIgdmFsdWUgY29udGFpbmluZyBhbiBJU08gTGF0aW4gMSAoSVNPLTg4NTkt
MSBDaGFyYWN0ZXIgU2V0KSBzdHJpbmc8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3Qt
aW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBl
cnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsK
KyAgICB2YXIgU0NPUEUgPSAncmVzb3VyY2VzL2lzby1sYXRpbjEtaGVhZGVyLWlmcmFtZS5odG1s
JzsKKyAgICB2YXIgU0NSSVBUID0gJ3Jlc291cmNlcy9pc28tbGF0aW4xLWhlYWRlci13b3JrZXIu
anMnOworICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisgICAgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgU0NSSVBULCBTQ09QRSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9z
dGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7IH0p
CisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIHZhciBjaGFubmVsID0g
bmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOwor
ICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIFNDT1BF
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1l
c3NhZ2Uoe30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0
X2luZm9bJ0hUVFBTX09SSUdJTiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJl
YWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1ZlcmlmeSB0aGUgcmVzcG9uc2Ugb2YgRmV0Y2hF
dmVudCB1c2luZyBYTUxIdHRwUmVxdWVzdCcpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL2N1cnJlbnQvY3VycmVudC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9jdXJyZW50L2N1cnJlbnQuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MmE0OGQ0MDk5MDFiNDdjZjNlMmRmYzIyNTMyYjQ2ZGUyZGQ2MGExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9jdXJyZW50
L2N1cnJlbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPkN1cnJlbnQgcGFnZSB1c2VkIGFzIGEgdGVzdCBoZWxwZXI8L3RpdGxlPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9jdXJyZW50L3Rlc3Qtc3cuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL2N1cnJlbnQvdGVzdC1zdy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lNjczMjkyZjJjMGM4YzIzMjg5OTMzZDEyMzkyYTgxZGM0NmQzYjNjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9jdXJyZW50L3Rlc3Qtc3cu
anMKQEAgLTAsMCArMSBAQAorLy8gU2VydmljZSB3b3JrZXIgZm9yIGN1cnJlbnQvClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGkt
Z2xvYmFscy9jdXJyZW50L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGkt
Z2xvYmFscy9jdXJyZW50L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZTI1OTQ4NGQ0MWNk
OWFkY2ViNTM1OWU4ZmI2M2VkOTJmMmFhMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9tdWx0aS1nbG9iYWxzL2N1cnJlbnQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
OCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9jdXJyZW50L2N1
cnJlbnQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2JhbHMvY3VycmVu
dC90ZXN0LXN3LmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxz
L2luY3VtYmVudC9pbmN1bWJlbnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRp
LWdsb2JhbHMvaW5jdW1iZW50L2luY3VtYmVudC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ODVm
MTViMGY0NWQwMTNlZTA2MTJhYWQ0NWJmOGIzYTMyNThiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL2luY3VtYmVudC9pbmN1bWJlbnQuaHR0cHMu
aHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JbmN1bWJlbnQg
cGFnZSB1c2VkIGFzIGEgdGVzdCBoZWxwZXI8L3RpdGxlPgorCis8aWZyYW1lIHNyYz0iLi4vY3Vy
cmVudC9jdXJyZW50Lmh0dHBzLmh0bWwiIGlkPSJjIj48L2lmcmFtZT4KKzxpZnJhbWUgc3JjPSIu
Li9yZWxldmFudC9yZWxldmFudC5odHRwcy5odG1sIiBpZD0iciI+PC9pZnJhbWU+CisKKzxzY3Jp
cHQ+CisndXNlIHN0cmljdCc7CisKK2NvbnN0IGN1cnJlbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCcjYycpLmNvbnRlbnRXaW5kb3c7Citjb25zdCByZWxldmFudCA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJyNyJykuY29udGVudFdpbmRvdzsKKword2luZG93LnRlc3RSZWdpc3RlciA9IG9w
dGlvbnMgPT4geworICAgIHJldHVybiBjdXJyZW50Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyLmNhbGwocmVsZXZhbnQubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIsICd0ZXN0LXN3Lmpz
Jywgb3B0aW9ucyk7Cit9OworCit3aW5kb3cudGVzdEdldFJlZ2lzdHJhdGlvbiA9ICgpID0+IHsK
KyAgICByZXR1cm4gY3VycmVudC5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRp
b24uY2FsbChyZWxldmFudC5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlciwgJ3Rlc3Qtc3cuanMnKTsK
K307Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2Jh
bHMvaW5jdW1iZW50L3Rlc3Qtc3cuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxz
L2luY3VtYmVudC90ZXN0LXN3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyYTBlOTNiNTgzOWE0Yjg2MzVhOTcy
ZTNiNTcyNDYzMzUxZmE5YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9t
dWx0aS1nbG9iYWxzL2luY3VtYmVudC90ZXN0LXN3LmpzCkBAIC0wLDAgKzEgQEAKKy8vIFNlcnZp
Y2Ugd29ya2VyIGZvciBpbmN1bWJlbnQvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9pbmN1bWJlbnQvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL2luY3VtYmVudC93M2Mt
aW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWExNTRkYjUwODFjMThlMDFmYTRhMWVhMzczMmJmNGVl
OTA2ZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFs
cy9pbmN1bWJlbnQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9pbmN1bWJlbnQvaW5jdW1iZW50Lmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL2luY3VtYmVudC90ZXN0LXN3Lmpz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3JlbGV2YW50L3Jl
bGV2YW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3JlbGV2
YW50L3JlbGV2YW50Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRmNDJlZGE0OTNjMjdmNWI0Yzgz
YTNiNTNkNDI3YTJjNTFmN2NlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L211bHRpLWdsb2JhbHMvcmVsZXZhbnQvcmVsZXZhbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlJlbGV2YW50IHBhZ2UgdXNlZCBhcyBhIHRlc3Qg
aGVscGVyPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2Jh
bHMvcmVsZXZhbnQvdGVzdC1zdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2JhbHMv
cmVsZXZhbnQvdGVzdC1zdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjQ0Y2RmMDg2N2I3MDgxYmNjYjgwMTRm
YzI4NDY2MDNhNjE4Njk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVs
dGktZ2xvYmFscy9yZWxldmFudC90ZXN0LXN3LmpzCkBAIC0wLDAgKzEgQEAKKy8vIFNlcnZpY2Ug
d29ya2VyIGZvciByZWxldmFudC8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3JlbGV2YW50L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9yZWxldmFudC93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMDdmY2VlM2RlMTExOTdlMmQzMDIzMzAzODMzZGI5MzE4NTY1NGQz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy9yZWxl
dmFudC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9tdWx0aS1nbG9iYWxzL3JlbGV2YW50L3JlbGV2YW50Lmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3JlbGV2YW50L3Rlc3Qtc3cuanMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2JhbHMvdGVzdC1zdy5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL211bHRpLWdsb2JhbHMvdGVzdC1zdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTNjOTQwZWNl
ZDhlMTE2YjhkN2NhMzM2MDJiYWFkMmViNDQwNTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy90ZXN0LXN3LmpzCkBAIC0wLDAgKzEgQEAKKy8vIFNl
cnZpY2Ugd29ya2VyIGZvciAvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy91cmwtcGFyc2luZy5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGktZ2xvYmFscy91cmwtcGFyc2luZy5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE1YTI1OGJhNTFiZjRhYjM1Y2Y2MWZiNGQ1YjAwMTY1ZmIxZjE0ZmIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3VybC1wYXJz
aW5nLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
cmVnaXN0ZXIoKS9nZXRSZWdpc3RyYXRpb24oKSBVUkwgcGFyc2luZywgd2l0aCBtdWx0aXBsZSBn
bG9iYWxzIGluIHBsYXk8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyL2luZGV4Lmh0bWwj
c2VydmljZS13b3JrZXItY29udGFpbmVyLXJlZ2lzdGVyLW1ldGhvZCI+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2Vydmlj
ZV93b3JrZXIvaW5kZXguaHRtbCNzZXJ2aWNlLXdvcmtlci1jb250YWluZXItZ2V0cmVnaXN0cmF0
aW9uLW1ldGhvZCI+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkRvbWVuaWMgRGVuaWNvbGEi
IGhyZWY9Im1haWx0bzpkQGRvbWVuaWMubWUiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVz
dC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CisKKzwhLS0gIFRoaXMgaXMgdGhlIGVudHJ5IGds
b2JhbCAgLS0+CisKKzxpZnJhbWUgc3JjPSJpbmN1bWJlbnQvaW5jdW1iZW50Lmh0dHBzLmh0bWwi
PjwvaWZyYW1lPgorCis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitjb25zdCBsb2FkUHJvbWlz
ZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgKCkgPT4gcmVzb2x2ZSgpKTsKK30pOworCitwcm9taXNlX3Rlc3QodCA9PiB7Cisg
ICAgbGV0IHJlZ2lzdHJhdGlvbjsKKworICAgIHJldHVybiBsb2FkUHJvbWlzZS50aGVuKCgpID0+
IHsKKyAgICAgICAgcmV0dXJuIGZyYW1lc1swXS50ZXN0UmVnaXN0ZXIoKTsKKyAgICB9KS50aGVu
KHIgPT4geworICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICB9
KS50aGVuKF8gPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUu
c2NyaXB0VVJMLCBub3JtYWxpemVVUkwoJ3JlbGV2YW50L3Rlc3Qtc3cuanMnKSwgJ3RoZSBzY3Jp
cHQgVVJMIHNob3VsZCBiZSBwYXJzZWQgYWdhaW5zdCB0aGUgcmVsZXZhbnQgZ2xvYmFsJyk7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLnNjb3BlLCBub3JtYWxpemVVUkwoJ3Jl
bGV2YW50LycpLCAndGhlIGRlZmF1bHQgc2NvcGUgVVJMIHNob3VsZCBiZSBwYXJzZWQgYWdhaW5z
dCB0aGUgcGFyc2VkIHNjcmlwdCBVUkwnKTsKKworICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9u
LnVucmVnaXN0ZXIoKTsKKyAgICB9KTsKK30sICdyZWdpc3RlciBzaG91bGQgdXNlIHRoZSByZWxl
dmFudCBnbG9iYWwgb2YgdGhlIG9iamVjdCBpdCB3YXMgY2FsbGVkIG9uIHRvIHJlc29sdmUgdGhl
IHNjcmlwdCBVUkwgYW5kIHRoZSBkZWZhdWx0IHNjb3BlIFVSTCcpOworCitwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgICAgbGV0IHJlZ2lzdHJhdGlvbjsKKworICAgIHJldHVybiBsb2FkUHJvbWlzZS50
aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIGZyYW1lc1swXS50ZXN0UmVnaXN0ZXIoeyBzY29w
ZTogJ3Njb3BlJyB9KTsKKyAgICB9KS50aGVuKHIgPT4geworICAgICAgICByZWdpc3RyYXRpb24g
PSByOworICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3Rh
bGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICB9KS50aGVuKF8gPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwoJ3JlbGV2
YW50L3Rlc3Qtc3cuanMnKSwgJ3RoZSBzY3JpcHQgVVJMIHNob3VsZCBiZSBwYXJzZWQgYWdhaW5z
dCB0aGUgcmVsZXZhbnQgZ2xvYmFsJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0
aW9uLnNjb3BlLCBub3JtYWxpemVVUkwoJ3JlbGV2YW50L3Njb3BlJyksICd0aGUgZ2l2ZW4gc2Nv
cGUgVVJMIHNob3VsZCBiZSBwYXJzZWQgYWdhaW5zdCB0aGUgcmVsZXZhbnQgZ2xvYmFsJyk7CisK
KyAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgfSk7Cit9LCAn
cmVnaXN0ZXIgc2hvdWxkIHVzZSB0aGUgcmVsZXZhbnQgZ2xvYmFsIG9mIHRoZSBvYmplY3QgaXQg
d2FzIGNhbGxlZCBvbiB0byByZXNvbHZlIHRoZSBzY3JpcHQgVVJMIGFuZCB0aGUgZ2l2ZW4gc2Nv
cGUgVVJMJyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICBsZXQgcmVnaXN0cmF0aW9uOwor
CisgICAgcmV0dXJuIGxvYWRQcm9taXNlLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIobm9ybWFsaXplVVJMKCdyZWxldmFudC90ZXN0
LXN3LmpzJykpOworICAgIH0pLnRoZW4ociA9PiB7CisgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7
CisgICAgICAgIHJldHVybiBmcmFtZXNbMF0udGVzdEdldFJlZ2lzdHJhdGlvbigpOworICAgIH0p
CisgICAgLnRoZW4oZ290dGVuUmVnaXN0cmF0aW9uID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9l
cXVhbHMocmVnaXN0cmF0aW9uLCBudWxsLCAndGhlIHJlZ2lzdHJhdGlvbiBzaG91bGQgbm90IGJl
IG51bGwnKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZ290dGVuUmVnaXN0cmF0aW9uLCBu
dWxsLCAndGhlIHJlZ2lzdHJhdGlvbiBmcm9tIHRoZSBvdGhlciBmcmFtZSBzaG91bGQgbm90IGJl
IG51bGwnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhnb3R0ZW5SZWdpc3RyYXRpb24uc2NvcGUs
IHJlZ2lzdHJhdGlvbi5zY29wZSwKKyAgICAgICAgICAgICd0aGUgcmV0cmlldmVkIHJlZ2lzdHJh
dGlvblwncyBzY29wZSBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIG9yaWdpbmFsXCdzIHNjb3BlJyk7
CisKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgfSk7Cit9
LCAnZ2V0UmVnaXN0cmF0aW9uIHNob3VsZCB1c2UgdGhlIHJlbGV2YW50IGdsb2JhbCBvZiB0aGUg
b2JqZWN0IGl0IHdhcyBjYWxsZWQgb24gdG8gcmVzb2x2ZSB0aGUgc2NyaXB0IFVSTCcpOworCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2JhbHMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNkMWIyZmIyMjAyZGMwNTM1NDdiZTQwMmQzMTczMzE4ZjMzZGMzMTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aS1nbG9iYWxzL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211
bHRpLWdsb2JhbHMvdGVzdC1zdy5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpLWdsb2JhbHMv
dXJsLXBhcnNpbmcuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVs
dGlwbGUtcmVnaXN0ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL211bHRpcGxlLXJl
Z2lzdGVyLmh0dHBzLmh0bWwKaW5kZXggMTA4OWNmZmRhOTE0MjYyODQwMzk2YWFjNjVhYjEyNzJi
ZDM5YTNjMS4uNzUyZTEzMmZjMTNhY2NiOTRmNThlM2U4MjRjNjRmZTcyYzdkNDIyMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGlwbGUtcmVnaXN0ZXIuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9tdWx0aXBsZS1yZWdpc3Rlci5odHRwcy5odG1sCkBAIC00NSw3
ICs0NSw4IEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIC50aGVuKGZ1bmN0aW9uKGYp
IHsKICAgICAgICAgZnJhbWUgPSBmOwogICAgICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRv
dy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKLSAgICAgICAgICAgIHdvcmtlcl91
cmwsIHsgc2NvcGU6IHNjb3BlIH0pOworICAgICAgICAgICAgJ2VtcHR5LXdvcmtlci5qcycsCisg
ICAgICAgICAgICB7IHNjb3BlOiAnc2NvcGUvc3Vic2VxdWVudC1yZWdpc3Rlci1mcm9tLWRpZmZl
cmVudC1pZnJhbWUnIH0pOwogICAgICAgfSkKICAgICAudGhlbihmdW5jdGlvbihuZXdfcmVnaXN0
cmF0aW9uKSB7CiAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKApAQCAtNzAsNyArNzEsNyBAQCBh
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKIAogICAgICAgICBhc3NlcnRfbm90X2VxdWFscygKICAg
ICAgICAgICByZWdpc3RyYXRpb24uYWN0aXZlLCBuZXdfcmVnaXN0cmF0aW9uLmFjdGl2ZSwKLSAg
ICAgICAgICAncmVnaXN0cmF0aW9uIHNob3VsZCBoYXZlIHRoZSBkaWZmZXJlbnQgYWN0aXZlIHdv
cmtlcicpOworICAgICAgICAgICdyZWdpc3RyYXRpb24gc2hvdWxkIGhhdmUgYSBkaWZmZXJlbnQg
YWN0aXZlIHdvcmtlcicpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKAogICAgICAgICAgIHJlZ2lz
dHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLAogICAgICAgICAgIG5ld19yZWdpc3RyYXRpb24uYWN0
aXZlLnNjcmlwdFVSTCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRlLXdp
bmRvdy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGUtd2luZG93Lmh0dHBz
Lmh0bWwKaW5kZXggZTNhYWY0YzVjZDQyYjEyODkwZDgxOTViZGQ3N2UxMjdkNjQwYjJhZC4uM2M4
NTMzYTgwMDA0NzAyZmVmMmRiNzgxZWVjNTYzN2IzZmZiYTg5OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGUtd2luZG93Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGUtd2luZG93Lmh0dHBzLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8dGl0bGU+
U2VydmljZSBXb3JrZXI6IE5hdmlnYXRlIGEgV2luZG93PC90aXRsZT4KIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KIDxib2R5PgogPHNjcmlwdD4KQEAgLTU4LDYg
KzU4LDEwIEBAIGZ1bmN0aW9uIGdldF9jbGllbnRzKHdpbiwgc3csIG9wdHMpIHsKICAgfSk7CiB9
CiAKK2Z1bmN0aW9uIGNvbXBhcmVfdXJscyhhLCBiKSB7CisgIHJldHVybiBhLnVybCA8IGIudXJs
ID8gLTEgOiBiLnVybCA8IGEudXJsID8gMSA6IDA7Cit9CisKIGZ1bmN0aW9uIHZhbGlkYXRlX3dp
bmRvdyh3aW4sIHVybCwgb3B0cykgewogICByZXR1cm4gd2luLm5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmdldFJlZ2lzdHJhdGlvbih1cmwpCiAgICAgLnRoZW4ocmVnID0+IHsKQEAgLTc4LDE2ICs4
MiwyMiBAQCBmdW5jdGlvbiB2YWxpZGF0ZV93aW5kb3cod2luLCB1cmwsIG9wdHMpIHsKICAgICAg
ICAgaWYgKG9wdHMuaW5jbHVkZVVuY29udHJvbGxlZCkgewogICAgICAgICAgIGV4cGVjdGVkLnB1
c2goeyB1cmw6IEJBU0VfVVJMICsgJ25hdmlnYXRlLXdpbmRvdy5odHRwcy5odG1sJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnJhbWVUeXBlOiAnYXV4aWxpYXJ5JyB9KTsKLSAgICAgICAg
ICBleHBlY3RlZC5wdXNoKHsgdXJsOiBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsgJy90ZXN0
aGFybmVzc19ydW5uZXIuaHRtbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lVHlw
ZTogJ3RvcC1sZXZlbCcgfSk7CisgICAgICAgICAgZXhwZWN0ZWQucHVzaCh7CisgICAgICAgICAg
ICB1cmw6IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyAnL3Rlc3RoYXJuZXNzX3J1bm5lci5o
dG1sJywKKyAgICAgICAgICAgIGZyYW1lVHlwZTogJ3RvcC1sZXZlbCcgfSk7CiAgICAgICAgIH0K
KwogICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdExpc3QubGVuZ3RoLCBleHBlY3RlZC5sZW5n
dGgsCiAgICAgICAgICAgICAgICAgICAgICAgJ2V4cGVjdGVkIG51bWJlciBvZiBjbGllbnRzJyk7
CisKKyAgICAgICAgZXhwZWN0ZWQuc29ydChjb21wYXJlX3VybHMpOworICAgICAgICByZXN1bHRM
aXN0LnNvcnQoY29tcGFyZV91cmxzKTsKKwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
c3VsdExpc3QubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdExp
c3RbaV0udXJsLCBleHBlY3RlZFtpXS51cmwsCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleHBl
Y3RlZFtpXS51cmwsIHJlc3VsdExpc3RbaV0udXJsLAogICAgICAgICAgICAgICAgICAgICAgICAg
J2NsaWVudCBzaG91bGQgaGF2ZSBleHBlY3RlZCB1cmwnKTsKLSAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHJlc3VsdExpc3RbaV0uZnJhbWVUeXBlLCBleHBlY3RlZFtpXS5mcmFtZVR5cGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnIGNsaWVudCBzaG91bGQgaGF2ZSBleHBlY3RlZCBmcmFtZSB0
eXBlJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhleHBlY3RlZFtpXS5mcmFtZVR5cGUsIHJl
c3VsdExpc3RbaV0uZnJhbWVUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWVudCBz
aG91bGQgaGF2ZSBleHBlY3RlZCBmcmFtZSB0eXBlJyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIHdpbjsKICAgICAgIH0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0
aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9icm9rZW4tY2h1bmtlZC1lbmNvZGluZy5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY4YjA4OGE3MGRhMmViMGQzYjM2ZTdiOWRhYTgwNDEzMWMwZjk4
MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5OYXZpZ2F0aW9u
IFByZWxvYWQgd2l0aCBjaHVua2VkIGVuY29kaW5nPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorcHJvbWlzZV90ZXN0
KHQgPT4geworICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2Jyb2tlbi1jaHVua2VkLWVuY29k
aW5nLXdvcmtlci5qcyc7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9icm9rZW4tY2h1bmtl
ZC1lbmNvZGluZy1zY29wZS5hc2lzJzsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVuKHJlZ2lzdHJh
dGlvbiA9PiB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soXyA9PiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpKTsKKyAgICAgICAgICB2YXIgd29ya2VyID0gcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmc7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShz
Y29wZSkpCisgICAgICAudGhlbihmcmFtZSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygK
KyAgICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50LAorICAg
ICAgICAgICAgJ0RvbmUnKTsKKyAgICAgICAgfSk7CisgIH0sICdOYXZpZ2F0aW9uIFByZWxvYWQg
d2l0aCBicm9rZW4gY2h1bmtlZCBlbmNvZGluZyBtdXN0IGZhaWwuJyk7CisKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2NodW5rZWQt
ZW5jb2RpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9h
ZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMwY2UzMmNlYTVhMDFk
NWRjOTgxNDM1MmI0MWYxMmM1Mjk1NjQxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+TmF2aWdhdGlvbiBQcmVsb2FkIHdpdGggY2h1bmtlZCBlbmNvZGluZzwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9jaHVu
a2VkLWVuY29kaW5nLXdvcmtlci5qcyc7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9jaHVu
a2VkLWVuY29kaW5nLXNjb3BlLnB5JzsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVuKHJlZ2lzdHJh
dGlvbiA9PiB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soXyA9PiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpKTsKKyAgICAgICAgICB2YXIgd29ya2VyID0gcmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmc7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwg
J2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShz
Y29wZSkpCisgICAgICAudGhlbihmcmFtZSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygK
KyAgICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50LAorICAg
ICAgICAgICAgJzAxMjM0NTY3ODknKTsKKyAgICAgICAgfSk7CisgIH0sICdOYXZpZ2F0aW9uIFBy
ZWxvYWQgbXVzdCB3b3JrIHdpdGggY2h1bmtlZCBlbmNvZGluZy4nKTsKKworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1wdHktcHJl
bG9hZC1yZXNwb25zZS1ib2R5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0
aW9uLXByZWxvYWQvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5Lmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2U4YWFjZGQzNmE1OGNkZDg4ZDJmMWU3MGZlYzY5YzU4MDUyNmYwMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9lbXB0eS1wcmVs
b2FkLXJlc3BvbnNlLWJvZHkuaHR0cHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5OYXZpZ2F0aW9uIFByZWxvYWQg
ZW1wdHkgcmVzcG9uc2UgYm9keTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAg
ICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS1wcmVsb2FkLXJlc3BvbnNlLWJvZHktd29y
a2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2VtcHR5LXByZWxvYWQtcmVzcG9u
c2UtYm9keS1zY29wZS5odG1sJzsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rl
cl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVuKHJlZ2lzdHJhdGlv
biA9PiB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soXyA9PiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKKyAgICAgICAgICB2YXIgd29ya2VyID0gcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmc7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHdvcmtlciwgJ2Fj
dGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oXyA9PiB3aXRoX2lmcmFtZShzY29w
ZSkpCisgICAgICAudGhlbihmcmFtZSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAg
ICAgICAgICAgIGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50LAorICAgICAg
ICAgICAgJ1tdJyk7CisgICAgICAgIH0pOworICB9LCAnTmF2aWdhdGlvbiBQcmVsb2FkIGVtcHR5
IHJlc3BvbnNlIGJvZHkuJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkxNDY0OGJjZmZiZmFjNWYyZDY5ZmIwODdjODdkYjU5MDFhOTNlMDMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0YXRlLmh0
dHBzLmh0bWwKQEAgLTAsMCArMSwyMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5nZXRTdGF0ZTwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9oZWxwZXJzLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHBvc3RfYW5kX3dhaXRfZm9yX3JlcGx5KHdvcmtlciwgbWVzc2FnZSkg
eworICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5vbm1lc3NhZ2UgPSBlID0+IHsgcmVzb2x2ZShlLmRhdGEpOyB9OworICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKG1lc3NhZ2UpOworICAgIH0pOworfQorCitwcm9taXNlX3Rlc3Qo
dCA9PiB7CisgIGNvbnN0IHNjb3BlID0gJy4uL3Jlc291cmNlcy9nZXQtc3RhdGUnOworICBjb25z
dCBzY3JpcHQgPSAnLi4vcmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgIHZhciBucDsKKwor
ICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0
LCBzY29wZSkKKyAgICAudGhlbihyID0+IHsKKyAgICAgICAgbnAgPSByLm5hdmlnYXRpb25QcmVs
b2FkOworICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiByLnVucmVnaXN0ZXIo
KSk7CisgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3Rp
dmF0ZWQnKTsKKyAgICAgIH0pCisgICAgLnRoZW4oKCkgPT4gbnAuZ2V0U3RhdGUoKSkKKyAgICAu
dGhlbihzdGF0ZSA9PiB7CisgICAgICAgIGV4cGVjdF9uYXZpZ2F0aW9uX3ByZWxvYWRfc3RhdGUo
c3RhdGUsIGZhbHNlLCAndHJ1ZScsICdkZWZhdWx0IHN0YXRlJyk7CisgICAgICAgIHJldHVybiBu
cC5lbmFibGUoKTsKKyAgICAgIH0pCisgICAgLnRoZW4ocmVzdWx0ID0+IHsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICAgICAgICAnZW5h
YmxlKCkgc2hvdWxkIHJlc29sdmUgdG8gdW5kZWZpbmVkJyk7CisgICAgICAgIHJldHVybiBucC5n
ZXRTdGF0ZSgpOworICAgICAgfSkKKyAgICAudGhlbihzdGF0ZSA9PiB7CisgICAgICAgIGV4cGVj
dF9uYXZpZ2F0aW9uX3ByZWxvYWRfc3RhdGUoc3RhdGUsIHRydWUsICd0cnVlJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGUgYWZ0ZXIgZW5hYmxlKCknKTsK
KyAgICAgICAgcmV0dXJuIG5wLmRpc2FibGUoKTsKKyAgICAgIH0pCisgICAgLnRoZW4ocmVzdWx0
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsIHVuZGVmaW5lZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAnZGlzYWJsZSgpIHNob3VsZCByZXNvbHZlIHRvIHVuZGVmaW5lZCcpOwor
ICAgICAgICByZXR1cm4gbnAuZ2V0U3RhdGUoKTsKKyAgICAgIH0pCisgICAgLnRoZW4oc3RhdGUg
PT4geworICAgICAgICBleHBlY3RfbmF2aWdhdGlvbl9wcmVsb2FkX3N0YXRlKHN0YXRlLCBmYWxz
ZSwgJ3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0
ZSBhZnRlciBkaXNhYmxlKCknKTsKKyAgICAgICAgcmV0dXJuIG5wLnNldEhlYWRlclZhbHVlKCdk
cmVhbXMgdGhhdCBjYW5ub3QgYmUnKTsKKyAgICAgIH0pCisgICAgLnRoZW4ocmVzdWx0ID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAnc2V0SGVhZGVyVmFsdWUoKSBzaG91bGQgcmVzb2x2ZSB0byB1bmRlZmluZWQnKTsK
KyAgICAgICAgcmV0dXJuIG5wLmdldFN0YXRlKCk7CisgICAgICB9KQorICAgIC50aGVuKHN0YXRl
ID0+IHsKKyAgICAgICAgZXhwZWN0X25hdmlnYXRpb25fcHJlbG9hZF9zdGF0ZShzdGF0ZSwgZmFs
c2UsICdkcmVhbXMgdGhhdCBjYW5ub3QgYmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdzdGF0ZSBhZnRlciBzZXRIZWFkZXJWYWx1ZSgpJyk7CisgICAgICAgIHJl
dHVybiBucC5zZXRIZWFkZXJWYWx1ZSgnJykudGhlbigoKSA9PiBucC5nZXRTdGF0ZSgpKTsKKyAg
ICAgIH0pCisgICAgLnRoZW4oc3RhdGUgPT4geworICAgICAgICBleHBlY3RfbmF2aWdhdGlvbl9w
cmVsb2FkX3N0YXRlKHN0YXRlLCBmYWxzZSwgJycsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2FmdGVyIHNldEhlYWRlclZhbHVlIHRvIGVtcHR5IHN0cmluZycpOwor
ICAgICAgICByZXR1cm4gbnAuc2V0SGVhZGVyVmFsdWUobnVsbCkudGhlbigoKSA9PiBucC5nZXRT
dGF0ZSgpKTsKKyAgICAgIH0pCisgICAgLnRoZW4oc3RhdGUgPT4geworICAgICAgICBleHBlY3Rf
bmF2aWdhdGlvbl9wcmVsb2FkX3N0YXRlKHN0YXRlLCBmYWxzZSwgJ251bGwnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZnRlciBzZXRIZWFkZXJWYWx1ZSB0byBu
dWxsJyk7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICAgIG5l
dyBUeXBlRXJyb3IsCisgICAgICAgICAgICBucC5zZXRIZWFkZXJWYWx1ZSgnd2hhdFx1REMwMFx1
RDgwMHRoaXMnKSwKKyAgICAgICAgICAgICdzZXRIZWFkZXJWYWx1ZSgpIHNob3VsZCB0aHJvdyBp
ZiBwYXNzZWQgc3Vycm9nYXRlcycpOworICAgICAgfSkKKyAgICAudGhlbigoKSA9PiB7CisgICAg
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICAgIG5ldyBUeXBlRXJyb3Is
CisgICAgICAgICAgICBucC5zZXRIZWFkZXJWYWx1ZSgnemVyXDBvJyksCisgICAgICAgICAgICAn
c2V0SGVhZGVyVmFsdWUoKSBzaG91bGQgdGhyb3cgaWYgcGFzc2VkIFxcMCcpOworICAgICAgfSkK
KyAgICAudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAg
ICAgICAgICAgIG5ldyBUeXBlRXJyb3IsCisgICAgICAgICAgICBucC5zZXRIZWFkZXJWYWx1ZSgn
XHJjYXJyaWFnZScpLAorICAgICAgICAgICAgJ3NldEhlYWRlclZhbHVlKCkgc2hvdWxkIHRocm93
IGlmIHBhc3NlZCBcXHInKTsKKyAgICAgIH0pCisgICAgLnRoZW4oKCkgPT4geworICAgICAgICBy
ZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAgICAgICBuZXcgVHlwZUVycm9yLAorICAg
ICAgICAgICAgbnAuc2V0SGVhZGVyVmFsdWUoJ25ld2xpbmVcbicpLAorICAgICAgICAgICAgJ3Nl
dEhlYWRlclZhbHVlKCkgc2hvdWxkIHRocm93IGlmIHBhc3NlZCBcXG4nKTsKKyAgICAgIH0pCisg
ICAgLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAg
ICAgICAgICBuZXcgVHlwZUVycm9yLAorICAgICAgICAgICAgbnAuc2V0SGVhZGVyVmFsdWUoKSwK
KyAgICAgICAgICAgICdzZXRIZWFkZXJWYWx1ZSgpIHNob3VsZCB0aHJvdyBpZiBwYXNzZWQgdW5k
ZWZpbmVkJyk7CisgICAgICB9KQorICAgIC50aGVuKCgpID0+IG5wLmVuYWJsZSgpLnRoZW4oKCkg
PT4gbnAuZ2V0U3RhdGUoKSkpCisgICAgLnRoZW4oc3RhdGUgPT4geworICAgICAgICBleHBlY3Rf
bmF2aWdhdGlvbl9wcmVsb2FkX3N0YXRlKHN0YXRlLCB0cnVlLCAnbnVsbCcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VuYWJsZSgpIHNob3VsZCBub3QgY2hhbmdl
IGhlYWRlcicpOworICAgICAgfSk7CisgIH0sICdnZXRTdGF0ZScpOworCisvLyBUaGlzIHRlc3Qg
c2VuZHMgY29tbWFuZHMgdG8gYSB3b3JrZXIgdG8gY2FsbCBlbmFibGUoKS9kaXNhYmxlKCkvZ2V0
U3RhdGUoKS4KKy8vIEl0IGNoZWNrcyB0aGUgcmVzdWx0cyBmcm9tIHRoZSB3b3JrZXIgYW5kIHZl
cmlmaWVzIHRoYXQgdGhleSBtYXRjaCB0aGUKKy8vIG5hdmlnYXRpb24gcHJlbG9hZCBzdGF0ZSBh
Y2Nlc3NpYmxlIGZyb20gdGhlIHBhZ2UuCitwcm9taXNlX3Rlc3QodCA9PiB7CisgIGNvbnN0IHNj
b3BlID0gJ3Jlc291cmNlcy9nZXQtc3RhdGUtd29ya2VyJzsKKyAgY29uc3Qgc2NyaXB0ID0gJ3Jl
c291cmNlcy9nZXQtc3RhdGUtd29ya2VyLmpzJzsKKyAgdmFyIHdvcmtlcjsKKyAgdmFyIHJlZ2lz
dHJhdGlvbjsKKworICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAudGhlbihyID0+IHsKKyAgICAgICAgcmVnaXN0cmF0
aW9uID0gcjsKKyAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKSk7CisgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nOworICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZhdGVk
Jyk7CisgICAgICB9KQorICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgLy8gQ2FsbCBnZXRTdGF0
ZSgpLgorICAgICAgICByZXR1cm4gcG9zdF9hbmRfd2FpdF9mb3JfcmVwbHkod29ya2VyLCAnZ2V0
U3RhdGUnKTsKKyAgICAgIH0pCisgICAgLnRoZW4oZGF0YSA9PiB7CisgICAgICAgIHJldHVybiBQ
cm9taXNlLmFsbChbZGF0YSwgcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkLmdldFN0YXRl
KCldKTsKKyAgICAgIH0pCisgICAgLnRoZW4oc3RhdGVzID0+IHsKKyAgICAgICAgZXhwZWN0X25h
dmlnYXRpb25fcHJlbG9hZF9zdGF0ZShzdGF0ZXNbMF0sIGZhbHNlLCAndHJ1ZScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQgc3RhdGUgKGZyb20gd29y
a2VyKScpOworICAgICAgICBleHBlY3RfbmF2aWdhdGlvbl9wcmVsb2FkX3N0YXRlKHN0YXRlc1sx
XSwgZmFsc2UsICd0cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnZGVmYXVsdCBzdGF0ZSAoZnJvbSBwYWdlKScpOworICAgICAgICAvLyBDYWxsIGVuYWJsZSgp
IGFuZCB0aGVuIGdldFN0YXRlKCkuCisgICAgICAgIHJldHVybiBwb3N0X2FuZF93YWl0X2Zvcl9y
ZXBseSh3b3JrZXIsICdlbmFibGUnKTsKKyAgICAgIH0pCisgICAgLnRoZW4oZGF0YSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgdW5kZWZpbmVkLCAnZW5hYmxlKCkgc2hvdWxkIHJl
c29sdmUgdG8gdW5kZWZpbmVkJyk7CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAg
ICAgICAgICBwb3N0X2FuZF93YWl0X2Zvcl9yZXBseSh3b3JrZXIsICdnZXRTdGF0ZScpLAorICAg
ICAgICAgICAgcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkLmdldFN0YXRlKCkKKyAgICAg
ICAgICBdKTsKKyAgICAgIH0pCisgICAgLnRoZW4oc3RhdGVzID0+IHsKKyAgICAgICAgZXhwZWN0
X25hdmlnYXRpb25fcHJlbG9hZF9zdGF0ZShzdGF0ZXNbMF0sIHRydWUsICd0cnVlJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGUgYWZ0ZXIgZW5hYmxlKCkg
KGZyb20gd29ya2VyKScpOworICAgICAgICBleHBlY3RfbmF2aWdhdGlvbl9wcmVsb2FkX3N0YXRl
KHN0YXRlc1sxXSwgdHJ1ZSwgJ3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdzdGF0ZSBhZnRlciBlbmFibGUoKSAoZnJvbSBwYWdlKScpOworICAgICAgICAv
LyBDYWxsIGRpc2FibGUoKSBhbmQgdGhlbiBnZXRTdGF0ZSgpLgorICAgICAgICByZXR1cm4gcG9z
dF9hbmRfd2FpdF9mb3JfcmVwbHkod29ya2VyLCAnZGlzYWJsZScpOworICAgICAgfSkKKyAgICAu
dGhlbihkYXRhID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYXRhLCB1bmRlZmluZWQsCisg
ICAgICAgICAgICAgICAgICAgICAgJy5kaXNhYmxlKCkgc2hvdWxkIHJlc29sdmUgdG8gdW5kZWZp
bmVkJyk7CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAgICAgICBwb3N0X2Fu
ZF93YWl0X2Zvcl9yZXBseSh3b3JrZXIsICdnZXRTdGF0ZScpLAorICAgICAgICAgICAgcmVnaXN0
cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkLmdldFN0YXRlKCkKKyAgICAgICAgICBdKTsKKyAgICAg
IH0pCisgICAgLnRoZW4oc3RhdGVzID0+IHsKKyAgICAgICAgZXhwZWN0X25hdmlnYXRpb25fcHJl
bG9hZF9zdGF0ZShzdGF0ZXNbMF0sIGZhbHNlLCAndHJ1ZScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlIGFmdGVyIGRpc2FibGUoKSAoZnJvbSB3b3JrZXIp
Jyk7CisgICAgICAgIGV4cGVjdF9uYXZpZ2F0aW9uX3ByZWxvYWRfc3RhdGUoc3RhdGVzWzFdLCBm
YWxzZSwgJ3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdz
dGF0ZSBhZnRlciBkaXNhYmxlKCkgKGZyb20gcGFnZSknKTsKKyAgICAgICAgcmV0dXJuIHBvc3Rf
YW5kX3dhaXRfZm9yX3JlcGx5KHdvcmtlciwgJ3NldEhlYWRlclZhbHVlJyk7CisgICAgICB9KQor
ICAgIC50aGVuKGRhdGEgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsIHVuZGVmaW5l
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAnLnNldEhlYWRlclZhbHVlKCkgc2hvdWxkIHJlc29s
dmUgdG8gdW5kZWZpbmVkJyk7CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICBwb3N0X2FuZF93YWl0X2Zvcl9yZXBseSh3b3JrZXIsICdnZXRTdGF0ZScpLAorICAgICAg
ICAgICAgcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkLmdldFN0YXRlKCldKTsKKyAgICAg
IH0pCisgICAgLnRoZW4oc3RhdGVzID0+IHsKKyAgICAgICAgZXhwZWN0X25hdmlnYXRpb25fcHJl
bG9hZF9zdGF0ZSgKKyAgICAgICAgICAgIHN0YXRlc1swXSwgZmFsc2UsICdpbnNpZ2h0ZnVsJywK
KyAgICAgICAgICAgICdzdGF0ZSBhZnRlciBzZXRIZWFkZXJWYWx1ZSgpIChmcm9tIHdvcmtlcikn
KTsKKyAgICAgICAgZXhwZWN0X25hdmlnYXRpb25fcHJlbG9hZF9zdGF0ZSgKKyAgICAgICAgICAg
IHN0YXRlc1sxXSwgZmFsc2UsICdpbnNpZ2h0ZnVsJywKKyAgICAgICAgICAgICdzdGF0ZSBhZnRl
ciBzZXRIZWFkZXJWYWx1ZSgpIChmcm9tIHBhZ2UpJyk7CisgICAgICB9KTsKKyAgfSwgJ2dldFN0
YXRlIGZyb20gYSB3b3JrZXInKTsKKworLy8gVGhpcyB0ZXN0cyBuYXZpZ2F0aW9uIHByZWxvYWQg
QVBJIHdoZW4gdGhlcmUgaXMgbm8gYWN0aXZlIHdvcmtlci4gSXQgY2FsbHMKKy8vIHRoZSBBUEkg
ZnJvbSB0aGUgbWFpbiBwYWdlIGFuZCB0aGVuIGZyb20gdGhlIHdvcmtlciBpdHNlbGYuCitwcm9t
aXNlX3Rlc3QodCA9PiB7CisgIGNvbnN0IHNjb3BlID0gJ3Jlc291cmNlcy93YWl0LWZvci1hY3Rp
dmF0ZS13b3JrZXInOworICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL3dhaXQtZm9yLWFjdGl2
YXRlLXdvcmtlci5qcyc7CisgIHZhciByZWdpc3RyYXRpb247CisgIHZhciBucDsKKyAgcmV0dXJu
IHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUp
CisgICAgLnRoZW4ociA9PiB7CisgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgIG5w
ID0gcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkOworICAgICAgICBhZGRfY29tcGxldGlv
bl9jYWxsYmFjaygoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKKyAgICAgICAgcmV0
dXJuIFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgIHByb21pc2VfcmVqZWN0cygKKyAgICAgICAg
ICAgICAgICB0LCAnSW52YWxpZFN0YXRlRXJyb3InLCBucC5lbmFibGUoKSwKKyAgICAgICAgICAg
ICAgICAnZW5hYmxlIHNob3VsZCByZWplY3QgaWYgdGhlcmUgaXMgbm8gYWN0aXZlIHdvcmtlcicp
LAorICAgICAgICAgICAgcHJvbWlzZV9yZWplY3RzKAorICAgICAgICAgICAgICAgIHQsICdJbnZh
bGlkU3RhdGVFcnJvcicsIG5wLmRpc2FibGUoKSwKKyAgICAgICAgICAgICAgICAnZGlzYWJsZSBz
aG91bGQgcmVqZWN0IGlmIHRoZXJlIGlzIG5vIGFjdGl2ZSB3b3JrZXInKSwKKyAgICAgICAgICAg
IHByb21pc2VfcmVqZWN0cygKKyAgICAgICAgICAgICAgICB0LCAnSW52YWxpZFN0YXRlRXJyb3In
LCBucC5zZXRIZWFkZXJWYWx1ZSgndW1tJyksCisgICAgICAgICAgICAgICAgJ3NldEhlYWRlclZh
bHVlIHNob3VsZCByZWplY3QgaWYgdGhlcmUgaXMgbm8gYWN0aXZlIHdvcmtlcicpXSk7CisgICAg
ICB9KQorICAgIC50aGVuKCgpID0+IG5wLmdldFN0YXRlKCkpCisgICAgLnRoZW4oc3RhdGUgPT4g
eworICAgICAgICBleHBlY3RfbmF2aWdhdGlvbl9wcmVsb2FkX3N0YXRlKHN0YXRlLCBmYWxzZSwg
J3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0ZSBi
ZWZvcmUgYWN0aXZhdGlvbicpOworICAgICAgICByZXR1cm4gcG9zdF9hbmRfd2FpdF9mb3JfcmVw
bHkocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdwaW5nJyk7CisgICAgICB9KQorICAgIC50aGVu
KHJlc3VsdCA9PiBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ1BBU1MnKSk7CisgIH0sICdubyBhY3Rp
dmUgd29ya2VyJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3JlZGlyZWN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTk3MGYwNTNlMzY5OTZmNGNhZDkzYWVjMTA0YzU1ZjUzMDU1NDY1YQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPk5hdmlnYXRpb24gUHJlbG9hZCByZWRpcmVjdCByZXNwb25zZTwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworZnVuY3Rpb24gY2hlY2tfb3BhcXVlcmVkaXJlY3QocmVzcG9uc2VfaW5mbywg
c2NvcGUpIHsKKyAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZV9pbmZvLnR5cGUsICdvcGFxdWVyZWRp
cmVjdCcpOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlX2luZm8udXJsLCAnJyArIG5ldyBVUkwo
c2NvcGUsIGxvY2F0aW9uKSk7CisgIGFzc2VydF9lcXVhbHMocmVzcG9uc2VfaW5mby5zdGF0dXMs
IDApOworICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlX2luZm8ub2ssIGZhbHNlKTsKKyAgYXNzZXJ0
X2VxdWFscyhyZXNwb25zZV9pbmZvLnN0YXR1c1RleHQsICcnKTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZXNwb25zZV9pbmZvLmhlYWRlcnMubGVuZ3RoLCAwKTsKK30KKworZnVuY3Rpb24gcmVkaXJlY3Rf
cmVzcG9uc2VfdGVzdCh0LCBzY29wZSwgZXhwZWN0ZWRfYm9keSwgZXhwZWN0ZWRfdXJscykgewor
ICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanMnOworICB2YXIgcmVn
aXN0cmF0aW9uOworICB2YXIgbWVzc2FnZV9yZXNvbHZlcnMgPSBbXTsKKyAgZnVuY3Rpb24gd2Fp
dF9mb3JfbWVzc2FnZShjb3VudCkgeworICAgIHZhciBwcm9taXNlcyA9IFtdOworICAgIG1lc3Nh
Z2VfcmVzb2x2ZXJzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7
CisgICAgICBwcm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKHJlc29sdmUgPT4gbWVzc2FnZV9yZXNv
bHZlcnMucHVzaChyZXNvbHZlKSkpOworICAgIH0KKyAgICByZXR1cm4gcHJvbWlzZXM7CisgIH0K
KyAgZnVuY3Rpb24gb25fbWVzc2FnZShlKSB7CisgICAgdmFyIHJlc29sdmUgPSBtZXNzYWdlX3Jl
c29sdmVycy5zaGlmdCgpOworICAgIGlmIChyZXNvbHZlKQorICAgICAgcmVzb2x2ZShlLmRhdGEp
OworICB9CisgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCBzY3JpcHQsIHNjb3BlKQorICAgIC50aGVuKHJlZyA9PiB7CisgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHJlZzsKKyAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soXyA9PiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpKTsKKyAgICAgICAgdmFyIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOworICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgd29ya2VyLCAnYWN0aXZh
dGVkJyk7CisgICAgICB9KQorICAgIC50aGVuKF8gPT4gd2l0aF9pZnJhbWUoc2NvcGUgKyAnJmJh
c2UnKSkKKyAgICAudGhlbihmcmFtZSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWUu
Y29udGVudERvY3VtZW50LmJvZHkudGV4dENvbnRlbnQsICdPSycpOworICAgICAgICBmcmFtZS5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9IG9uX21lc3Nh
Z2U7CisgICAgICAgIHJldHVybiBQcm9taXNlLmFsbCh3YWl0X2Zvcl9tZXNzYWdlKGV4cGVjdGVk
X3VybHMubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb25jYXQod2l0
aF9pZnJhbWUoc2NvcGUpKSk7CisgICAgICB9KQorICAgIC50aGVuKHJlc3VsdHMgPT4geworICAg
ICAgdmFyIGZyYW1lID0gcmVzdWx0c1tleHBlY3RlZF91cmxzLmxlbmd0aF07CisgICAgICBhc3Nl
cnRfZXF1YWxzKGZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50LCBleHBlY3Rl
ZF9ib2R5KTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWRfdXJscy5sZW5ndGg7
ICsraSkgeworICAgICAgICBjaGVja19vcGFxdWVyZWRpcmVjdChyZXN1bHRzW2ldLCBleHBlY3Rl
ZF91cmxzW2ldKTsKKyAgICAgIH0KKyAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgcmV0dXJu
IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgfSk7Cit9CisKK3Byb21pc2VfdGVzdCh0
ID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RfcmVzcG9uc2VfdGVzdCgKKyAgICAgICAgdCwKKyAg
ICAgICAgJ3Jlc291cmNlcy9yZWRpcmVjdC1zY29wZS5weT90eXBlPW5vcm1hbCcsCisgICAgICAg
ICdyZWRpcmVjdGVkXG4nLAorICAgICAgICBbJ3Jlc291cmNlcy9yZWRpcmVjdC1zY29wZS5weT90
eXBlPW5vcm1hbCddKTsKKyAgfSwgJ05hdmlnYXRpb24gUHJlbG9hZCByZWRpcmVjdCByZXNwb25z
ZS4nKTsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHJldHVybiByZWRpcmVjdF9yZXNwb25z
ZV90ZXN0KAorICAgICAgICB0LAorICAgICAgICAncmVzb3VyY2VzL3JlZGlyZWN0LXNjb3BlLnB5
P3R5cGU9bm8tbG9jYXRpb24nLAorICAgICAgICAnJywKKyAgICAgICAgWydyZXNvdXJjZXMvcmVk
aXJlY3Qtc2NvcGUucHk/dHlwZT1uby1sb2NhdGlvbiddKTsKKyAgfSwgJ05hdmlnYXRpb24gUHJl
bG9hZCBuby1sb2NhdGlvbiByZWRpcmVjdCByZXNwb25zZS4nKTsKKworcHJvbWlzZV90ZXN0KHQg
PT4geworICAgIHJldHVybiByZWRpcmVjdF9yZXNwb25zZV90ZXN0KAorICAgICAgICB0LAorICAg
ICAgICAncmVzb3VyY2VzL3JlZGlyZWN0LXNjb3BlLnB5P3R5cGU9bm8tbG9jYXRpb24td2l0aC1i
b2R5JywKKyAgICAgICAgJ0JPRFknLAorICAgICAgICBbJ3Jlc291cmNlcy9yZWRpcmVjdC1zY29w
ZS5weT90eXBlPW5vLWxvY2F0aW9uLXdpdGgtYm9keSddKTsKKyAgfSwgJ05hdmlnYXRpb24gUHJl
bG9hZCBuby1sb2NhdGlvbiByZWRpcmVjdCByZXNwb25zZSB3aXRoIGJvZHkuJyk7CisKK3Byb21p
c2VfdGVzdCh0ID0+IHsKKyAgICByZXR1cm4gcmVkaXJlY3RfcmVzcG9uc2VfdGVzdCgKKyAgICAg
ICAgdCwKKyAgICAgICAgJ3Jlc291cmNlcy9yZWRpcmVjdC1zY29wZS5weT90eXBlPXJlZGlyZWN0
LXRvLXNjb3BlJywKKyAgICAgICAgJ3JlZGlyZWN0ZWRcbicsCisgICAgICAgIFsncmVzb3VyY2Vz
L3JlZGlyZWN0LXNjb3BlLnB5P3R5cGU9cmVkaXJlY3QtdG8tc2NvcGUnLAorICAgICAgICAgJ3Jl
c291cmNlcy9yZWRpcmVjdC1zY29wZS5weT90eXBlPXJlZGlyZWN0LXRvLXNjb3BlMicsCisgICAg
ICAgICAncmVzb3VyY2VzL3JlZGlyZWN0LXNjb3BlLnB5P3R5cGU9cmVkaXJlY3QtdG8tc2NvcGUz
JyxdKTsKKyAgfSwgJ05hdmlnYXRpb24gUHJlbG9hZCByZWRpcmVjdCB0byB0aGUgc2FtZSBzY29w
ZS4nKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA5NjQyMDEwMjE4YWRhNzJkYTk0NmY4ZmRjZjFjNzEzZjczNjc5MzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVxdWVzdC1oZWFkZXJz
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+TmF2aWdhdGlvbiBQcmVsb2FkIHJlcXVlc3QgaGVhZGVyczwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIgc2NyaXB0ID0gJ3Jlc291
cmNlcy9yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3Vy
Y2VzL3JlcXVlc3QtaGVhZGVycy1zY29wZS5weSc7CisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwgc2NvcGUpCisgICAgICAudGhlbihy
ZWdpc3RyYXRpb24gPT4geworICAgICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKF8gPT4g
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKSk7CisgICAgICAgICAgdmFyIHdvcmtlciA9IHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3
b3JrZXIsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKF8gPT4gd2l0aF9p
ZnJhbWUoc2NvcGUpKQorICAgICAgLnRoZW4oZnJhbWUgPT4geworICAgICAgICAgIHZhciBoZWFk
ZXJzID0gSlNPTi5wYXJzZShmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS50ZXh0Q29udGVudCk7
CisgICAgICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgICAgICAnU0VSVklDRS1XT1JLRVItTkFW
SUdBVElPTi1QUkVMT0FEJyBpbiBoZWFkZXJzLAorICAgICAgICAgICAgJ1RoZSBOYXZpZ2F0aW9u
IFByZWxvYWQgcmVxdWVzdCBtdXN0IHNwZWNpZnkgYSAnICsKKyAgICAgICAgICAgICciU2Vydmlj
ZS1Xb3JrZXItTmF2aWdhdGlvbi1QcmVsb2FkIiBoZWFkZXIuJyk7CisgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscygKKyAgICAgICAgICAgIGhlYWRlcnNbJ1NFUlZJQ0UtV09SS0VSLU5BVklH
QVRJT04tUFJFTE9BRCddLAorICAgICAgICAgICAgWydoZWxsbyddLAorICAgICAgICAgICAgJ1Ro
ZSBOYXZpZ2F0aW9uIFByZWxvYWQgcmVxdWVzdCBtdXN0IHNwZWNpZnkgdGhlIGNvcnJlY3QgdmFs
dWUgJyArCisgICAgICAgICAgICAnZm9yIHRoZSAiU2VydmljZS1Xb3JrZXItTmF2aWdhdGlvbi1Q
cmVsb2FkIiBoZWFkZXIuJyk7CisgICAgICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgICAgICAn
VVBHUkFERS1JTlNFQ1VSRS1SRVFVRVNUUycgaW4gaGVhZGVycywKKyAgICAgICAgICAgICdUaGUg
TmF2aWdhdGlvbiBQcmVsb2FkIHJlcXVlc3QgbXVzdCBzcGVjaWZ5IGFuICcgKworICAgICAgICAg
ICAgJyJVcGdyYWRlLUluc2VjdXJlLVJlcXVlc3RzIiBoZWFkZXIuJyk7CisgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscygKKyAgICAgICAgICAgIGhlYWRlcnNbJ1VQR1JBREUtSU5TRUNVUkUt
UkVRVUVTVFMnXSwKKyAgICAgICAgICAgIFsnMSddLAorICAgICAgICAgICAgJ1RoZSBOYXZpZ2F0
aW9uIFByZWxvYWQgcmVxdWVzdCBtdXN0IHNwZWNpZnkgdGhlIGNvcnJlY3QgdmFsdWUgJyArCisg
ICAgICAgICAgICAnZm9yIHRoZSAiVXBncmFkZS1JbnNlY3VyZS1SZXF1ZXN0cyIgaGVhZGVyLicp
OworICAgICAgICB9KTsKKyAgfSwgJ05hdmlnYXRpb24gUHJlbG9hZCByZXF1ZXN0IGhlYWRlcnMu
Jyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVmMDk1M2M3NmQxM2FiY2ZjNTZhMTAxNjc4M2E2OTA4N2NiMTVlM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2UtdGltaW5n
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+TmF2aWdhdGlvbiBQcmVsb2FkIFJlc291cmNlIFRpbWluZzwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworZnVuY3Rpb24gY2hlY2tfdGltaW5nX2VudHJ5KGVudHJ5LCB1cmwsIGRl
Y29kZWRCb2R5U2l6ZSwgZW5jb2RlZEJvZHlTaXplKSB7CisgIGFzc2VydF9lcXVhbHMoZW50cnku
bmFtZSwgdXJsLCAnVGhlIGVudHJ5IG5hbWUgb2YgJysgdXJsKTsKKworICBhc3NlcnRfZXF1YWxz
KAorICAgIGVudHJ5LmVudHJ5VHlwZSwgJ3Jlc291cmNlJywKKyAgICAnVGhlIGVudHJ5VHlwZSBv
ZiBwcmVsb2FkIHJlc3BvbnNlIHRpbWluZyBlbnRyeSBtdXN0IGJlICJyZXNvdXJjZScgKworICAg
ICciIDonICsgdXJsKTsKKyAgYXNzZXJ0X2VxdWFscygKKyAgICBlbnRyeS5pbml0aWF0b3JUeXBl
LCAnb3RoZXInLAorICAgICdUaGUgaW5pdGlhdG9yVHlwZSBvZiBwcmVsb2FkIHJlc3BvbnNlIHRp
bWluZyBlbnRyeSBtdXN0IGJlICcgKworICAgICcib3RoZXIiOicgKyB1cmwpOworCisgIC8vIElm
IHRoZSBzZXJ2ZXIgcmV0dXJucyB0aGUgcmVkaXJlY3QgcmVzcG9uc2UsIHxkZWNvZGVkQm9keVNp
emV8IGlzIG51bGwgYW5kCisgIC8vIHxlbnRyeS5kZWNvZGVkQm9keVNpemV8IHNodWxkIGJlIDAu
IE90aGVyd2lzZSB8ZW50cnkuZGVjb2RlZEJvZHlTaXplfCBtdXN0CisgIC8vIHNhbWUgYXMgfGRl
Y29kZWRCb2R5U2l6ZXwKKyAgYXNzZXJ0X2VxdWFscygKKyAgICBlbnRyeS5kZWNvZGVkQm9keVNp
emUsIE51bWJlcihkZWNvZGVkQm9keVNpemUpLAorICAgICdkZWNvZGVkQm9keVNpemUgbXVzdCBz
YW1lIGFzIHRoZSBkZWNvZGVkIHNpemUgaW4gdGhlIHNlcnZlcjonICsgdXJsKTsKKworICAvLyBJ
ZiB0aGUgc2VydmVyIHJldHVybnMgdGhlIHJlZGlyZWN0IHJlc3BvbnNlLCB8ZW5jb2RlZEJvZHlT
aXplfCBpcyBudWxsIGFuZAorICAvLyB8ZW50cnkuZW5jb2RlZEJvZHlTaXplfCBzaHVsZCBiZSAw
LiBPdGhlcndpc2UgfGVudHJ5LmVuY29kZWRCb2R5U2l6ZXwgbXVzdAorICAvLyBzYW1lIGFzIHxl
bmNvZGVkQm9keVNpemV8CisgIGFzc2VydF9lcXVhbHMoCisgICAgZW50cnkuZW5jb2RlZEJvZHlT
aXplLCBOdW1iZXIoZW5jb2RlZEJvZHlTaXplKSwKKyAgICAnZW5jb2RlZEJvZHlTaXplIG11c3Qg
c2FtZSBhcyB0aGUgZW5jb2RlZCBzaXplIGluIHRoZSBzZXJ2ZXI6JyArIHVybCk7CisKKyAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbigKKyAgICBlbnRyeS50cmFuc2ZlclNpemUsIGVudHJ5LmRlY29kZWRC
b2R5U2l6ZSwKKyAgICAndHJhbnNmZXJTaXplIG11c3QgZ3JlYXRlciB0aGVuIGVuY29kZWRCb2R5
U2l6ZS4nKTsKKworICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5LnN0YXJ0VGltZSwgMCwgJ3N0
YXJ0VGltZSBvZiAnICsgdXJsKTsKKyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5m
ZXRjaFN0YXJ0LCBlbnRyeS5zdGFydFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2ZldGNoU3RhcnQgPj0gc3RhcnRUaW1lIG9mICcgKyB1cmwpOworICBhc3NlcnRfZ3JlYXRlcl90
aGFuX2VxdWFsKGVudHJ5LmRvbWFpbkxvb2t1cFN0YXJ0LCBlbnRyeS5mZXRjaFN0YXJ0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdkb21haW5Mb29rdXBTdGFydCA+PSBmZXRjaFN0YXJ0
IG9mICcgKyB1cmwpOworICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LmRvbWFpbkxv
b2t1cEVuZCwgZW50cnkuZG9tYWluTG9va3VwU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJ2RvbWFpbkxvb2t1cEVuZCA+PSBkb21haW5Mb29rdXBTdGFydCBvZiAnICsgdXJsKTsK
KyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChlbnRyeS5jb25uZWN0U3RhcnQsIGVudHJ5LmRv
bWFpbkxvb2t1cEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVjdFN0YXJ0
ID49IGRvbWFpbkxvb2t1cEVuZCBvZiAnICsgdXJsKTsKKyAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9l
cXVhbChlbnRyeS5jb25uZWN0RW5kLCBlbnRyeS5jb25uZWN0U3RhcnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2Nvbm5lY3RFbmQgPj0gY29ubmVjdFN0YXJ0IG9mICcgKyB1cmwpOwor
ICBhc3NlcnRfZ3JlYXRlcl90aGFuX2VxdWFsKGVudHJ5LnJlcXVlc3RTdGFydCwgZW50cnkuY29u
bmVjdEVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVxdWVzdFN0YXJ0ID49IGNv
bm5lY3RFbmQgb2YgJyArIHVybCk7CisgIGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnku
cmVzcG9uc2VTdGFydCwgZW50cnkucmVxdWVzdFN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdkb21haW5Mb29rdXBTdGFydCA+PSByZXF1ZXN0U3RhcnQgb2YgJyArIHVybCk7Cisg
IGFzc2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZW50cnkucmVzcG9uc2VFbmQsIGVudHJ5LnJlc3Bv
bnNlU3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc3BvbnNlRW5kID49IHJl
c3BvbnNlU3RhcnQgb2YgJyArIHVybCk7CisgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnkuZHVy
YXRpb24sIDAsICdkdXJhdGlvbiBvZiAnICsgdXJsKTsKK30KKworcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL3Jlc291cmNlLXRpbWluZy13b3JrZXIuanMn
OworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLXNjb3BlLnB5JzsK
KyAgICB2YXIgcmVnaXN0cmF0aW9uOworICAgIHZhciBmcmFtZXMgPSBbXTsKKyAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkK
KyAgICAgIC50aGVuKHJlZyA9PiB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcmVnOworICAg
ICAgICAgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKF8gPT4gcmVnaXN0cmF0aW9uLnVucmVnaXN0
ZXIoKSk7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihfID0+IHdp
dGhfaWZyYW1lKHNjb3BlICsgJz90eXBlPW5vcm1hbCcpKQorICAgICAgLnRoZW4oZnJhbWUgPT4g
eworICAgICAgICAgIGZyYW1lcy5wdXNoKGZyYW1lKTsKKyAgICAgICAgICByZXR1cm4gd2l0aF9p
ZnJhbWUoc2NvcGUgKyAnP3R5cGU9cmVkaXJlY3QnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZyYW1lID0+IHsKKyAgICAgICAgICBmcmFtZXMucHVzaChmcmFtZSk7CisgICAgICAgICAgZnJh
bWVzLmZvckVhY2goZnJhbWUgPT4geworICAgICAgICAgICAgdmFyIHJlc3VsdCA9IEpTT04ucGFy
c2UoZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkudGV4dENvbnRlbnQpOworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgcmVzdWx0LnRpbWluZ0VudHJpZXMubGVuZ3Ro
LCAxLAorICAgICAgICAgICAgICAncGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgpIG11c3Qg
cmV0dXJucyBvbmUgJyArCisgICAgICAgICAgICAgICdQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
IGVudHJ5IGZvciB0aGUgbmF2aWdhdGlvbiBwcmVsb2FkLicpOworICAgICAgICAgICAgdmFyIGVu
dHJ5ID0gcmVzdWx0LnRpbWluZ0VudHJpZXNbMF07CisgICAgICAgICAgICBjaGVja190aW1pbmdf
ZW50cnkoZW50cnksIGZyYW1lLnNyYywgcmVzdWx0LmRlY29kZWRCb2R5U2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZW5jb2RlZEJvZHlTaXplKTsKKyAgICAgICAg
ICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIH0pOworICAgICAgICAgIHJldHVybiByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KTsKKyAgfSwgJ05hdmlnYXRpb24gUHJl
bG9hZCBSZXNvdXJjZSBUaW1pbmcuJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9icm9rZW4tY2h1bmtlZC1l
bmNvZGluZy1zY29wZS5hc2lzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L3Jlc291cmNlcy9icm9rZW4tY2h1bmtlZC1lbmNvZGluZy1zY29wZS5hc2lzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJhNzE5NTM2ZmI4OWU1MDU5ODVmN2Y0N2JjZWM5ZmQ2MGUzOTFhZjUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL2Jyb2tl
bi1jaHVua2VkLWVuY29kaW5nLXNjb3BlLmFzaXMKQEAgLTAsMCArMSw2IEBACitIVFRQLzEuMSAy
MDAgT0sKK0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04CitUcmFuc2Zlci1l
bmNvZGluZzogY2h1bmtlZAorCitoZWxsbword29ybGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvYnJva2VuLWNodW5rZWQtZW5jb2Rp
bmctd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291
cmNlcy9icm9rZW4tY2h1bmtlZC1lbmNvZGluZy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjcyNjhl
ODU2Yzc1NTFiZmJlODE2YzlhMzc1NTFlOWEzZjI2ZGM5YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvYnJva2VuLWNodW5r
ZWQtZW5jb2Rpbmctd29ya2VyLmpzCkBAIC0wLDAgKzEsMTEgQEAKK3NlbGYuYWRkRXZlbnRMaXN0
ZW5lcignYWN0aXZhdGUnLCBldmVudCA9PiB7CisgICAgZXZlbnQud2FpdFVudGlsKAorICAgICAg
ICBzZWxmLnJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZC5lbmFibGUoKSk7CisgIH0pOwor
CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4geworICAgIGV2ZW50LnJl
c3BvbmRXaXRoKGV2ZW50LnByZWxvYWRSZXNwb25zZQorICAgICAgLnRoZW4oCisgICAgICAgIF8g
PT4gbmV3IFJlc3BvbnNlKCdGYWlsOiBnb3QgYSByZXNwb25zZScpLAorICAgICAgICBfID0+IG5l
dyBSZXNwb25zZSgnRG9uZScpKSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9jaHVua2VkLWVuY29kaW5nLXNjb3BlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9jaHVua2Vk
LWVuY29kaW5nLXNjb3BlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwYTVkZGNlMGIxOGQ4MzVhMTg1YWM4NzA0
YzZhZDYxOGYzZTdmMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZp
Z2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL2NodW5rZWQtZW5jb2Rpbmctc2NvcGUucHkKQEAgLTAs
MCArMSwxNyBAQAoraW1wb3J0IHRpbWUKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgor
ICAgIGJvZHkgPSAiaGVsbG9cbndvcmxkXG5cbiIKKworICAgIHJlc3BvbnNlLmFkZF9yZXF1aXJl
ZF9oZWFkZXJzID0gRmFsc2UKKyAgICByZXNwb25zZS53cml0ZXIud3JpdGVfc3RhdHVzKDIwMCkK
KyAgICByZXNwb25zZS53cml0ZXIud3JpdGVfaGVhZGVyKCJDb250ZW50LXR5cGUiLCAidGV4dC9o
dG1sOyBjaGFyc2V0PVVURi04IikKKyAgICByZXNwb25zZS53cml0ZXIud3JpdGVfaGVhZGVyKCJU
cmFuc2Zlci1lbmNvZGluZyIsICJjaHVua2VkIikKKyAgICByZXNwb25zZS53cml0ZXIuZW5kX2hl
YWRlcnMoKQorCisgICAgZm9yIGlkeCBpbiByYW5nZSgxMCk6CisgICAgICAgIHJlc3BvbnNlLndy
aXRlci53cml0ZSgiJXNcclxuJXNcclxuIiAlIChsZW4oc3RyKGlkeCkpLCBpZHgpKQorICAgICAg
ICByZXNwb25zZS53cml0ZXIuZmx1c2goKQorICAgICAgICB0aW1lLnNsZWVwKDAuMDAxKQorCisg
ICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlKCIwXHJcblxyXG4iKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9jaHVua2VkLWVuY29kaW5n
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJj
ZXMvY2h1bmtlZC1lbmNvZGluZy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMwZTVlZDI3NGRkNTYw
YjRjNWEzM2RkYWIzNjQyMjFlZjY0NGExMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvY2h1bmtlZC1lbmNvZGluZy13b3Jr
ZXIuanMKQEAgLTAsMCArMSw4IEBACitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2FjdGl2YXRlJywg
ZXZlbnQgPT4geworICAgIGV2ZW50LndhaXRVbnRpbCgKKyAgICAgICAgc2VsZi5yZWdpc3RyYXRp
b24ubmF2aWdhdGlvblByZWxvYWQuZW5hYmxlKCkpOworICB9KTsKKworc2VsZi5hZGRFdmVudExp
c3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsKKyAgICBldmVudC5yZXNwb25kV2l0aChldmVudC5w
cmVsb2FkUmVzcG9uc2UpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5LXNj
b3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2Vz
L2VtcHR5LXByZWxvYWQtcmVzcG9uc2UtYm9keS1zY29wZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRl
MjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvZW1wdHktcHJlbG9hZC1yZXNw
b25zZS1ib2R5LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9h
ZC9yZXNvdXJjZXMvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5LXdvcmtlci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OGMxNGI3OTE2ZjM2OTRkMDc4ODk1NWVkNDkwMTI1NDlmMGE2NGQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9l
bXB0eS1wcmVsb2FkLXJlc3BvbnNlLWJvZHktd29ya2VyLmpzCkBAIC0wLDAgKzEsMTUgQEAKK3Nl
bGYuYWRkRXZlbnRMaXN0ZW5lcignYWN0aXZhdGUnLCBldmVudCA9PiB7CisgICAgZXZlbnQud2Fp
dFVudGlsKAorICAgICAgICBzZWxmLnJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZC5lbmFi
bGUoKSk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4g
eworICAgIGV2ZW50LnJlc3BvbmRXaXRoKAorICAgICAgZXZlbnQucHJlbG9hZFJlc3BvbnNlCisg
ICAgICAgIC50aGVuKHJlcyA9PiByZXMudGV4dCgpKQorICAgICAgICAudGhlbih0ZXh0ID0+IHsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgJzxib2R5
PlsnICsgdGV4dCArICddPC9ib2R5PicsCisgICAgICAgICAgICAgICAge2hlYWRlcnM6IFtbJ2Nv
bnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnXV19KTsKKyAgICAgICAgICB9KSk7CisgIH0pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9n
ZXQtc3RhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L3Jlc291cmNlcy9nZXQtc3RhdGUtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNGZmYjRmYWFhZDg2
OTFkMzVkMTY2NzY3N2IzOTg4MGRiMGQwNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL2dldC1zdGF0ZS13b3JrZXIuanMK
QEAgLTAsMCArMSwyMSBAQAorLy8gVGhpcyB3b3JrZXIgbGlzdGVucyBmb3IgY29tbWFuZHMgZnJv
bSB0aGUgcGFnZSBhbmQgbWVzc2FnZXMgYmFjaworLy8gdGhlIHJlc3VsdC4KKworZnVuY3Rpb24g
aGFuZGxlKG1lc3NhZ2UpIHsKKyAgY29uc3QgbnAgPSBzZWxmLnJlZ2lzdHJhdGlvbi5uYXZpZ2F0
aW9uUHJlbG9hZDsKKyAgc3dpdGNoIChtZXNzYWdlKSB7CisgICAgY2FzZSAnZ2V0U3RhdGUnOgor
ICAgICAgcmV0dXJuIG5wLmdldFN0YXRlKCk7CisgICAgY2FzZSAnZW5hYmxlJzoKKyAgICAgIHJl
dHVybiBucC5lbmFibGUoKTsKKyAgICBjYXNlICdkaXNhYmxlJzoKKyAgICAgIHJldHVybiBucC5k
aXNhYmxlKCk7CisgICAgY2FzZSAnc2V0SGVhZGVyVmFsdWUnOgorICAgICAgcmV0dXJuIG5wLnNl
dEhlYWRlclZhbHVlKCdpbnNpZ2h0ZnVsJyk7CisgIH0KKyAgcmV0dXJuIFByb21pc2UucmVqZWN0
KCdiYWQgbWVzc2FnZScpOworfQorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBl
ID0+IHsKKyAgICBlLndhaXRVbnRpbChoYW5kbGUoZS5kYXRhKS50aGVuKHJlc3VsdCA9PiBlLnNv
dXJjZS5wb3N0TWVzc2FnZShyZXN1bHQpKSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9oZWxwZXJzLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9oZWxwZXJzLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg2ZjBjMDkxNmVjOTlmMGNjNTE5ZjA1ZGEwZDQ3MDJhZmI1ZWYxZjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2Vz
L2hlbHBlcnMuanMKQEAgLTAsMCArMSw1IEBACitmdW5jdGlvbiBleHBlY3RfbmF2aWdhdGlvbl9w
cmVsb2FkX3N0YXRlKHN0YXRlLCBlbmFibGVkLCBoZWFkZXIsIGRlc2MpIHsKKyAgYXNzZXJ0X2Vx
dWFscyhPYmplY3Qua2V5cyhzdGF0ZSkubGVuZ3RoLCAyLCBkZXNjICsgJzogIyBvZiBrZXlzJyk7
CisgIGFzc2VydF9lcXVhbHMoc3RhdGUuZW5hYmxlZCwgZW5hYmxlZCwgZGVzYyArICc6IGVuYWJs
ZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhzdGF0ZS5oZWFkZXJWYWx1ZSwgaGVhZGVyLCBkZXNjICsg
JzogaGVhZGVyJyk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9u
LXByZWxvYWQvcmVzb3VyY2VzL3JlZGlyZWN0LXJlZGlyZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvcmVkaXJlY3QtcmVkaXJlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY5YmZjZTVlODk1Mzc5ZmM2OTQ0MTg1ZWFiMzVhMjAwN2E3ZGJjNzUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQv
cmVzb3VyY2VzL3JlZGlyZWN0LXJlZGlyZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGJvZHk+cmVkaXJlY3RlZDwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNv
dXJjZXMvcmVkaXJlY3Qtc2NvcGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXBy
ZWxvYWQvcmVzb3VyY2VzL3JlZGlyZWN0LXNjb3BlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4ZGNjOGViYzA1
YzZhM2EyYmM5MWEzN2MzYmZlNTQ3MzkyZjViZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL3JlZGlyZWN0LXNjb3BlLnB5
CkBAIC0wLDAgKzEsMzYgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBpZiAi
YmFzZSIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHJldHVybiBbKCJDb250ZW50LVR5cGUiLCAi
dGV4dC9odG1sIildLCAiT0siCisgICAgdHlwZSA9IHJlcXVlc3QuR0VULmZpcnN0KCJ0eXBlIikK
KworICAgIGlmIHR5cGUgPT0gIm5vcm1hbCI6CisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDMw
MgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLmFwcGVuZCgiTG9jYXRpb24iLCAicmVkaXJlY3Qt
cmVkaXJlY3RlZC5odG1sIikKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5hcHBlbmQoIkN1c3Rv
bS1IZWFkZXIiLCAiaGVsbG8iKQorICAgICAgICByZXR1cm4gIiIKKworICAgIGlmIHR5cGUgPT0g
Im5vLWxvY2F0aW9uIjoKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gMzAyCisgICAgICAgIHJl
c3BvbnNlLmhlYWRlcnMuYXBwZW5kKCJDdXN0b20tSGVhZGVyIiwgImhlbGxvIikKKyAgICAgICAg
cmV0dXJuICIiCisKKyAgICBpZiB0eXBlID09ICJuby1sb2NhdGlvbi13aXRoLWJvZHkiOgorICAg
ICAgICByZXNwb25zZS5zdGF0dXMgPSAzMDIKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5hcHBl
bmQoIkN1c3RvbS1IZWFkZXIiLCAiaGVsbG8iKQorICAgICAgICByZXR1cm4gIjxib2R5PkJPRFk8
L2JvZHk+IgorCisgICAgaWYgdHlwZSA9PSAicmVkaXJlY3QtdG8tc2NvcGUiOgorICAgICAgICBy
ZXNwb25zZS5zdGF0dXMgPSAzMDIKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5hcHBlbmQoIkxv
Y2F0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZGlyZWN0LXNjb3Bl
LnB5P3R5cGU9cmVkaXJlY3QtdG8tc2NvcGUyIikKKyAgICAgICAgcmV0dXJuICIiCisgICAgaWYg
dHlwZSA9PSAicmVkaXJlY3QtdG8tc2NvcGUyIjoKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID0g
MzAyCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuYXBwZW5kKCJMb2NhdGlvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJyZWRpcmVjdC1zY29wZS5weT90eXBlPXJlZGlyZWN0
LXRvLXNjb3BlMyIpCisgICAgICAgIHJldHVybiAiIgorICAgIGlmIHR5cGUgPT0gInJlZGlyZWN0
LXRvLXNjb3BlMyI6CisgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9IDMwMgorICAgICAgICByZXNw
b25zZS5oZWFkZXJzLmFwcGVuZCgiTG9jYXRpb24iLCAicmVkaXJlY3QtcmVkaXJlY3RlZC5odG1s
IikKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5hcHBlbmQoIkN1c3RvbS1IZWFkZXIiLCAiaGVs
bG8iKQorICAgICAgICByZXR1cm4gIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9yZWRpcmVjdC13b3JrZXIuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjc0NzllZGVmOTI5MGM5OGM1NzRhMmRjNzJiYzM3ZmJkMWY5YjE3NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNv
dXJjZXMvcmVkaXJlY3Qtd29ya2VyLmpzCkBAIC0wLDAgKzEsMzIgQEAKK3NlbGYuYWRkRXZlbnRM
aXN0ZW5lcignYWN0aXZhdGUnLCBldmVudCA9PiB7CisgICAgZXZlbnQud2FpdFVudGlsKAorICAg
ICAgICBzZWxmLnJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZC5lbmFibGUoKSk7CisgIH0p
OworCitmdW5jdGlvbiBnZXRfcmVzcG9uc2VfaW5mbyhyKSB7CisgIHZhciBpbmZvID0geworICAg
IHR5cGU6IHIudHlwZSwKKyAgICB1cmw6IHIudXJsLAorICAgIHN0YXR1czogci5zdGF0dXMsCisg
ICAgb2s6IHIub2ssCisgICAgc3RhdHVzVGV4dDogci5zdGF0dXNUZXh0LAorICAgIGhlYWRlcnM6
IFtdCisgIH07CisgIHIuaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwgbmFtZSkgPT4geyBpbmZvLmhl
YWRlcnMucHVzaChbdmFsdWUsIG5hbWVdKTsgfSk7CisgIHJldHVybiBpbmZvOworfQorCitmdW5j
dGlvbiBwb3N0X3RvX3BhZ2UoZGF0YSkgeworICByZXR1cm4gc2VsZi5jbGllbnRzLm1hdGNoQWxs
KCkKKyAgICAudGhlbihjbGllbnRzID0+IGNsaWVudHMuZm9yRWFjaChjbGllbnQgPT4gY2xpZW50
LnBvc3RNZXNzYWdlKGRhdGEpKSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gn
LCBldmVudCA9PiB7CisgICAgZXZlbnQucmVzcG9uZFdpdGgoCisgICAgICBldmVudC5wcmVsb2Fk
UmVzcG9uc2UKKyAgICAgICAgLnRoZW4oCisgICAgICAgICAgcmVzID0+IHsKKyAgICAgICAgICAg
IHJldHVybiBwb3N0X3RvX3BhZ2UoZ2V0X3Jlc3BvbnNlX2luZm8ocmVzKSkudGhlbihfID0+IHJl
cyk7CisgICAgICAgICAgfSwKKyAgICAgICAgICBlcnIgPT4gbmV3IFJlc3BvbnNlKGVyci50b1N0
cmluZygpKSkpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9yZXNvdXJjZXMvcmVxdWVzdC1oZWFkZXJzLXNjb3BlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9yZXF1ZXN0LWhlYWRlcnMtc2Nv
cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDQzMjBiNzJjMjBiYzcxMjUzODhlNDY0OGJiYzBjN2Q0OGU0MDQ1
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9h
ZC9yZXNvdXJjZXMvcmVxdWVzdC1oZWFkZXJzLXNjb3BlLnB5CkBAIC0wLDAgKzEsOSBAQAoraW1w
b3J0IGpzb24KKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIG5vcm1hbGl6ZWQg
PSBkaWN0KCkKKworICAgIGZvciBrZXksIHZhbHVlcyBpbiBkaWN0KHJlcXVlc3QuaGVhZGVycyku
aXRlcml0ZW1zKCk6CisgICAgICAgIG5vcm1hbGl6ZWRba2V5LnVwcGVyKCldID0gdmFsdWVzCisK
KyAgICByZXR1cm4ganNvbi5kdW1wcyhub3JtYWxpemVkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9yZXF1ZXN0LWhlYWRlcnMtd29y
a2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9y
ZXF1ZXN0LWhlYWRlcnMtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwMDZjZjI3OTEzYTlkZmNiNzdi
NmJlMjU5YjI5OWU3MTJkMjFkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL3JlcXVlc3QtaGVhZGVycy13b3JrZXIuanMK
QEAgLTAsMCArMSwxMCBAQAorc2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIGV2ZW50
ID0+IHsKKyAgICBldmVudC53YWl0VW50aWwoCisgICAgICAgIFByb21pc2UuYWxsWworICAgICAg
ICAgICAgc2VsZi5yZWdpc3RyYXRpb24ubmF2aWdhdGlvblByZWxvYWQuZW5hYmxlKCksCisgICAg
ICAgICAgICBzZWxmLnJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZC5zZXRIZWFkZXJWYWx1
ZSgnaGVsbG8nKV0pOworICB9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2
ZW50ID0+IHsKKyAgICBldmVudC5yZXNwb25kV2l0aChldmVudC5wcmVsb2FkUmVzcG9uc2UpOwor
ICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9y
ZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLXNjb3BlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctc2NvcGUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTgyMGJlNDQwMGUzZWFlNWIzNDVmZTcxOGVkOWMyZmFkNjk5MDJiMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMv
cmVzb3VyY2UtdGltaW5nLXNjb3BlLnB5CkBAIC0wLDAgKzEsMTkgQEAKK2ltcG9ydCB6bGliCisK
K2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICB0eXBlID0gcmVxdWVzdC5HRVQuZmly
c3QoInR5cGUiKQorCisgICAgaWYgdHlwZSA9PSAibm9ybWFsIjoKKyAgICAgICAgY29udGVudCA9
ICJUaGlzIGlzIE5hdmlnYXRpb24gUHJlbG9hZCBSZXNvdXJjZSBUaW1pbmcgdGVzdC4iCisgICAg
ICAgIG91dHB1dCA9IHpsaWIuY29tcHJlc3MoY29udGVudCwgOSkKKyAgICAgICAgaGVhZGVycyA9
IFsoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L3BsYWluIiksCisgICAgICAgICAgICAgICAgICAgKCJD
b250ZW50LUVuY29kaW5nIiwgImRlZmxhdGUiKSwKKyAgICAgICAgICAgICAgICAgICAoIlgtRGVj
b2RlZC1Cb2R5LVNpemUiLCBsZW4oY29udGVudCkpLAorICAgICAgICAgICAgICAgICAgICgiWC1F
bmNvZGVkLUJvZHktU2l6ZSIsIGxlbihvdXRwdXQpKSwKKyAgICAgICAgICAgICAgICAgICAoIkNv
bnRlbnQtTGVuZ3RoIiwgbGVuKG91dHB1dCkpXQorICAgICAgICByZXR1cm4gaGVhZGVycywgb3V0
cHV0CisKKyAgICBpZiB0eXBlID09ICJyZWRpcmVjdCI6CisgICAgICAgIHJlc3BvbnNlLnN0YXR1
cyA9IDMwMgorICAgICAgICByZXNwb25zZS5oZWFkZXJzLmFwcGVuZCgiTG9jYXRpb24iLCAicmVk
aXJlY3QtcmVkaXJlY3RlZC5odG1sIikKKyAgICAgICAgcmV0dXJuICIiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL3Jlc291cmNlLXRp
bWluZy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVz
b3VyY2VzL3Jlc291cmNlLXRpbWluZy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZhZjY0NTZhZWMz
ZDM2OGRiMzUyN2E4MzMxZjRjNzBmNWM4NDU1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLXdv
cmtlci5qcwpAQCAtMCwwICsxLDE5IEBACitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2FjdGl2YXRl
JywgZXZlbnQgPT4geworICAgIGV2ZW50LndhaXRVbnRpbChzZWxmLnJlZ2lzdHJhdGlvbi5uYXZp
Z2F0aW9uUHJlbG9hZC5lbmFibGUoKSk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J2ZldGNoJywgZXZlbnQgPT4geworICAgIGV2ZW50LnJlc3BvbmRXaXRoKAorICAgICAgZXZlbnQu
cHJlbG9hZFJlc3BvbnNlCisgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4geworICAgICAgICAg
ICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOworICAgICAgICAgICAgcmV0dXJuIHJl
c3BvbnNlLnRleHQoKS50aGVuKHRleHQgPT4KKyAgICAgICAgICAgICAgbmV3IFJlc3BvbnNlKAor
ICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHsKKyAgICAgICAgICAgICAgICAgIGRlY29k
ZWRCb2R5U2l6ZTogaGVhZGVycy5nZXQoJ1gtRGVjb2RlZC1Cb2R5LVNpemUnKSwKKyAgICAgICAg
ICAgICAgICAgIGVuY29kZWRCb2R5U2l6ZTogaGVhZGVycy5nZXQoJ1gtRW5jb2RlZC1Cb2R5LVNp
emUnKSwKKyAgICAgICAgICAgICAgICAgIHRpbWluZ0VudHJpZXM6IHBlcmZvcm1hbmNlLmdldEVu
dHJpZXNCeU5hbWUoZXZlbnQucmVxdWVzdC51cmwpCisgICAgICAgICAgICAgICAgfSksCisgICAg
ICAgICAgICAgICAge2hlYWRlcnM6IHsnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCd9fSkpOwor
ICAgICAgICAgIH0pKTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZp
Z2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOGMxNGI2ZDRhZTM1ZDZmOTkwMzZiODJlMzdhN2E0ODYyNTgxMDc0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDMyIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL2Jyb2tlbi1jaHVua2VkLWVuY29kaW5nLXNjb3Bl
LmFzaXMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL2Jy
b2tlbi1jaHVua2VkLWVuY29kaW5nLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvY2h1bmtlZC1lbmNvZGluZy1zY29wZS5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvY2h1bmtlZC1lbmNvZGlu
Zy13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3Vy
Y2VzL2VtcHR5LXByZWxvYWQtcmVzcG9uc2UtYm9keS1zY29wZS5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9lbXB0eS1wcmVsb2FkLXJlc3BvbnNl
LWJvZHktd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jl
c291cmNlcy9nZXQtc3RhdGUtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL3Jlc291cmNlcy9oZWxwZXJzLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdh
dGlvbi1wcmVsb2FkL3Jlc291cmNlcy9yZWRpcmVjdC1yZWRpcmVjdGVkLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2VzL3JlZGlyZWN0LXNjb3BlLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9yZWRpcmVj
dC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3Vy
Y2VzL3JlcXVlc3QtaGVhZGVycy1zY29wZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9yZXNvdXJjZXMvcmVxdWVzdC1oZWFkZXJzLXdvcmtlci5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLXNj
b3BlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlcy9y
ZXNvdXJjZS10aW1pbmctd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1w
cmVsb2FkL3Jlc291cmNlcy93YWl0LWZvci1hY3RpdmF0ZS13b3JrZXIuanMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvd2FpdC1mb3It
YWN0aXZhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L3Jlc291cmNlcy93YWl0LWZvci1hY3RpdmF0ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc3OTFk
MmU0ODdkYjdkODM3MjVkMTQyMTVlZmYwODEyNWIwNTc2MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvd2FpdC1mb3ItYWN0
aXZhdGUtd29ya2VyLmpzCkBAIC0wLDAgKzEsNDAgQEAKKy8vIFRoaXMgd29ya2VyIHJlbWFpbnMg
aW4gdGhlIGluc3RhbGxpbmcgcGhhc2Ugc28gdGhhdCB0aGUKKy8vIG5hdmlnYXRpb24gcHJlbG9h
ZCBBUEkgY2FuIGJlIHRlc3RlZCB3aGVuIHRoZXJlIGlzIG5vCisvLyBhY3RpdmUgd29ya2VyLgor
aW1wb3J0U2NyaXB0cygnL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOworaW1wb3J0U2NyaXB0
cygnaGVscGVycy5qcycpOworCitmdW5jdGlvbiBleHBlY3RfcmVqZWN0aW9uKHByb21pc2UpIHsK
KyAgcmV0dXJuIHByb21pc2UudGhlbigKKyAgICAgICgpID0+IHsgcmV0dXJuIFByb21pc2UucmVq
ZWN0KCd1bmV4cGVjdGVkIGZ1bGZpbGxtZW50Jyk7IH0sCisgICAgICBlcnIgPT4geyBhc3NlcnRf
ZXF1YWxzKCdJbnZhbGlkU3RhdGVFcnJvcicsIGVyci5uYW1lKTsgfSk7Cit9CisKK2Z1bmN0aW9u
IHRlc3RfYmVmb3JlX2FjdGl2YXRpb24oKSB7CisgIGNvbnN0IG5wID0gc2VsZi5yZWdpc3RyYXRp
b24ubmF2aWdhdGlvblByZWxvYWQ7CisgIHJldHVybiBleHBlY3RfcmVqZWN0aW9uKG5wLmVuYWJs
ZSgpKQorICAgICAgLnRoZW4oKCkgPT4gZXhwZWN0X3JlamVjdGlvbihucC5kaXNhYmxlKCkpKQor
ICAgICAgLnRoZW4oKCkgPT4gZXhwZWN0X3JlamVjdGlvbihucC5zZXRIZWFkZXJWYWx1ZSgnaGkn
KSkpCisgICAgICAudGhlbigoKSA9PiBucC5nZXRTdGF0ZSgpKQorICAgICAgLnRoZW4oc3RhdGUg
PT4gZXhwZWN0X25hdmlnYXRpb25fcHJlbG9hZF9zdGF0ZSgKKyAgICAgICAgICBzdGF0ZSwgZmFs
c2UsICd0cnVlJywgJ3N0YXRlIHNob3VsZCBiZSB0aGUgZGVmYXVsdCcpKQorICAgICAgLnRoZW4o
KCkgPT4gJ1BBU1MnKQorICAgICAgLmNhdGNoKGVyciA9PiAnRkFJTDogJyArIGVycik7Cit9CisK
K3ZhciByZXNvbHZlX2RvbmVfcHJvbWlzZTsKK3ZhciBkb25lX3Byb21pc2UgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsgcmVzb2x2ZV9kb25lX3Byb21pc2UgPSByZXNvbHZlOyB9KTsKKworLy8g
UnVuIHRoZSB0ZXN0IG9uY2UgdGhlIHBhZ2UgbWVzc2FnZXMgdGhpcyB3b3JrZXIuCitzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBlID0+IHsKKyAgICBlLndhaXRVbnRpbCh0ZXN0X2Jl
Zm9yZV9hY3RpdmF0aW9uKCkKKyAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHsKKyAgICAgICAgICAg
IGUuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7CisgICAgICAgICAgICByZXNvbHZlX2RvbmVf
cHJvbWlzZSgpOworICAgICAgICAgIH0pKTsKKyAgfSk7CisKKy8vIERvbid0IGJlY29tZSB0aGUg
YWN0aXZlIHdvcmtlciB1bnRpbCB0aGUgdGVzdCBpcyBkb25lLgorc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdpbnN0YWxsJywgZSA9PiB7CisgICAgZS53YWl0VW50aWwoZG9uZV9wcm9taXNlKTsKKyAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvdzNjLWlt
cG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE2NDI3MTY0MjcwZmFjNTU3Y2U4MGE2YWQwOGI4YjFiYjY5
ZDU4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJl
bG9hZC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIzIEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29k
aW5nLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1w
dHktcHJlbG9hZC1yZXNwb25zZS1ib2R5Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0YXRlLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVkaXJlY3QuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXF1ZXN0LWhlYWRlcnMuaHR0cHMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC1ib2R5
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LWJvZHku
aHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDQxYzYxMGIxNzk3ODk0MWVmYjgzMmU0YWYyMDJiY2M0
ZmY5NTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1y
ZWRpcmVjdC1ib2R5Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IE5hdmlnYXRpb24gcmVkaXJlY3Rpb24gbXVzdCBjbGVh
ciBib2R5PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3Jp
cHQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8Ym9keT4KKzxmb3JtIGlkPSJ0ZXN0LWZvcm0i
IG1ldGhvZD0iUE9TVCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KKyAgPGlucHV0IHR5cGU9InN1
Ym1pdCIgaWQ9InN1Ym1pdC1idXR0b24iIC8+Cis8L2Zvcm0+Cis8c2NyaXB0PgorcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL25hdmlnYXRpb24t
cmVkaXJlY3QtYm9keS5weSc7CisgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvbmF2aWdhdGlv
bi1yZWRpcmVjdC1ib2R5LXdvcmtlci5qcyc7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKyAgICB2
YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmcmFtZScpOworICAgIHZhciBmb3Jt
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtZm9ybScpOworICAgIHZhciBzdWJtaXRf
YnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1Ym1pdC1idXR0b24nKTsKKworICAg
IGZyYW1lLnNyYyA9ICdhYm91dDpibGFuayc7CisgICAgZnJhbWUubmFtZSA9ICd0YXJnZXRfZnJh
bWUnOworICAgIGZyYW1lLmlkID0gJ2ZyYW1lJzsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGZyYW1lKTsKKyAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeyBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGZyYW1lKTsgfSk7CisKKyAgICBmb3JtLmFjdGlvbiA9IHNjb3BlOworICAg
IGZvcm0udGFyZ2V0ID0gJ3RhcmdldF9mcmFtZSc7CisKKyAgICByZXR1cm4gc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJl
dHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFy
IGZyYW1lX2xvYWRfcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAg
ICAgICAgICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJv
ZHkuaW5uZXJUZXh0KTsKKyAgICAgICAgICAgICAgICB9LCBmYWxzZSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICBzdWJtaXRfYnV0dG9uLmNsaWNrKCk7CisgICAgICAgICAgcmV0dXJuIGZy
YW1lX2xvYWRfcHJvbWlzZTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHRleHQp
IHsKKyAgICAgICAgICB2YXIgcmVxdWVzdF91cmkgPSBkZWNvZGVVUklDb21wb25lbnQodGV4dCk7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgcmVxdWVzdF91cmksCisg
ICAgICAgICAgICAgICcvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9u
YXZpZ2F0aW9uLXJlZGlyZWN0LWJvZHkucHk/cmVkaXJlY3QnKTsKKyAgICAgICAgICByZXR1cm4g
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSk7CisgIH0sICdOYXZpZ2F0aW9u
IHJlZGlyZWN0aW9uIG11c3QgY2xlYXIgYm9keScpOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcmVkaXJlY3QtdG8taHR0cC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZDI3ODhjNTg5MWExZmJjM2YzOGY0NDhjNDBjYWNiNDRh
OTgwZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXJl
ZGlyZWN0LXRvLWh0dHAuaHR0cHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogU2VydmljZSBXb3JrZXIgY2FuIHJlY2VpdmUgSFRU
UCBvcGFxdWVyZWRpcmVjdCByZXNwb25zZS48L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhv
c3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhl
bHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxib2R5Pjwv
Ym9keT4KKzxzY3JpcHQ+Cithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgZnJhbWVf
c3JjID0gZ2V0X2hvc3RfaW5mbygpWydIVFRQU19PUklHSU4nXSArIGJhc2VfcGF0aCgpICsKKyAg
ICAgICdyZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC10by1odHRwLWlmcmFtZS5odG1sJzsK
KyAgICBmdW5jdGlvbiBvbl9tZXNzYWdlKGUpIHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRh
LnJlc3VsdHMsICdPSycpOworICAgICAgdC5kb25lKCk7CisgICAgfQorCisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0LnN0ZXBfZnVuYyhvbl9tZXNzYWdlKSwgZmFsc2Up
OworCisgICAgd2l0aF9pZnJhbWUoZnJhbWVfc3JjKQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJh
bWUpIHsKKyAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsgZnJhbWUucmVtb3Zl
KCk7IH0pOworICAgICAgICAgfSk7CisgIH0sICdWZXJpZnkgU2VydmljZSBXb3JrZXIgY2FuIHJl
Y2VpdmUgSFRUUCBvcGFxdWVyZWRpcmVjdCByZXNwb25zZS4nKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCmluZGV4IDdi
NjA2Y2YwYzNjMDRkYzQ4N2FjZDAzMTc5NTRlMzZkNzY0MTgyNjMuLmUzMTFiYjYzNTM2N2FjMjJm
MDhjOTEwYjU4NWMwYTg1YWUzZTNhZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcmVkaXJlY3QuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZp
Z2F0aW9uLXJlZGlyZWN0Lmh0dHBzLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXI6IE5hdmlnYXRpb24gcmVkaXJlY3Rpb248L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9n
ZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgpAQCAtMTc2LDcg
KzE3Niw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgIHJldHVybiB0ZXN0
X3JlZGlyZWN0KAogICAgICAgICAgICAgU0NPUEUxICsgJ3VybD0nICsgZW5jb2RlVVJJQ29tcG9u
ZW50KFNDT1BFMSksCiAgICAgICAgICAgICBTQ09QRTEsCi0gICAgICAgICAgICBbW1NDT1BFMSAr
ICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpXSwgW10sIFtdXSk7CisgICAgICAg
ICAgICBbW1NDT1BFMSArICd1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChTQ09QRTEpLCBTQ09Q
RTFdLCBbXSwgW11dKTsKICAgICAgIH0pOwogICB9LCAnU1ctZmFsbGJhY2tlZCByZWRpcmVjdCB0
byBzYW1lLW9yaWdpbiBzYW1lLXNjb3BlLicpOwogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsK
QEAgLTE4NCw3ICsxODQsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICBy
ZXR1cm4gdGVzdF9yZWRpcmVjdCgKICAgICAgICAgICAgIFNDT1BFMSArICd1cmw9JyArIGVuY29k
ZVVSSUNvbXBvbmVudChTQ09QRTIpLAogICAgICAgICAgICAgU0NPUEUyLAotICAgICAgICAgICAg
W1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NPUEUyKV0sIFtdLCBbXV0p
OworICAgICAgICAgICAgW1tTQ09QRTEgKyAndXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoU0NP
UEUyKV0sIFtTQ09QRTJdLCBbXV0pOwogICAgICAgfSk7CiAgIH0sICdTVy1mYWxsYmFja2VkIHJl
ZGlyZWN0IHRvIHNhbWUtb3JpZ2luIG90aGVyLXNjb3BlLicpOwogcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewog
ICAgICAgICAgICAgT1RIRVJfT1JJR0lOX1NDT1BFLAogICAgICAgICAgICAgW1tTQ09QRTEgKyAn
dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfT1JJR0lOX1NDT1BFKV0sCiAgICAgICAg
ICAgICAgW10sCi0gICAgICAgICAgICAgW11dKTsKKyAgICAgICAgICAgICBbT1RIRVJfT1JJR0lO
X1NDT1BFXV0pOwogICAgICAgfSk7CiAgIH0sICdTVy1mYWxsYmFja2VkIHJlZGlyZWN0IHRvIG90
aGVyLW9yaWdpbiBpbi1zY29wZS4nKTsKIApAQCAtMzcyLDYgKzM3MiwxNiBAQCBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgICAgICAgIFtPVEhFUl9PUklHSU5fU0NPUEVdXSk7CiAg
ICAgICB9KTsKICAgfSwgJ1JlZGlyZWN0IHRvIG90aGVyLW9yaWdpbiBpbi1zY29wZSB3aXRoIG9w
YXF1ZSByZWRpcmVjdCByZXNwb25zZS4nKTsKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgcmV0dXJuIHNldHVwX2Vudmlyb25tZW50KHQpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAg
IHJldHVybiB0ZXN0X3JlZGlyZWN0KAorICAgICAgICAgICAgU0NPUEUxICsgJ3N3PW9wYXF1ZSZu
b0xvY2F0aW9uUmVkaXJlY3QnLAorICAgICAgICAgICAgU0NPUEUxICsgJ3N3PW9wYXF1ZSZub0xv
Y2F0aW9uUmVkaXJlY3QnLAorICAgICAgICAgICAgW1tTQ09QRTEgKyAnc3c9b3BhcXVlJm5vTG9j
YXRpb25SZWRpcmVjdCddLAorICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgIFtdXSk7Cisg
ICAgICB9KTsKKyAgfSwgJ05vIGxvY2F0aW9uIHJlZGlyZWN0IHJlc3BvbnNlLicpOwogCiAvLyBP
cGFxdWUgcmVkaXJlY3QgcGFzc2VkIHRocm91Z2ggQ2FjaGUuCiAvLyBTVyByZXNwb25kcyB3aXRo
IGFuIG9wYXF1ZSByZWRpcmVjdHJlc3BvbnNlIGZyb20gdGhlIENhY2hlIEFQSS4KQEAgLTQ0NSw1
ICs0NTUsMTUgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKICAgfSwKICAgJ1JlZGlyZWN0
IHRvIG90aGVyLW9yaWdpbiBpbi1zY29wZSB3aXRoIG9wYXF1ZSByZWRpcmVjdCByZXNwb25zZSB3
aGljaCAnICsKICAgJ2lzIHBhc3NlZCB0aHJvdWdoIENhY2hlLicpOworcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICByZXR1cm4gc2V0dXBfZW52aXJvbm1lbnQodCkudGhlbihmdW5jdGlv
bigpIHsKKyAgICAgICAgcmV0dXJuIHRlc3RfcmVkaXJlY3QoCisgICAgICAgICAgICBTQ09QRTEg
KyAnc3c9b3BhcXVlVGhyb3VnaENhY2hlJm5vTG9jYXRpb25SZWRpcmVjdCcsCisgICAgICAgICAg
ICBTQ09QRTEgKyAnc3c9b3BhcXVlVGhyb3VnaENhY2hlJm5vTG9jYXRpb25SZWRpcmVjdCcsCisg
ICAgICAgICAgICBbW1NDT1BFMSArICdzdz1vcGFxdWVUaHJvdWdoQ2FjaGUmbm9Mb2NhdGlvblJl
ZGlyZWN0J10sCisgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgW11dKTsKKyAgICAgIH0p
OworICB9LCAnTm8gbG9jYXRpb24gcmVkaXJlY3QgcmVzcG9uc2UgdmlhIENhY2hlLicpOwogPC9z
Y3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9vbmFjdGl2YXRl
LXNjcmlwdC1lcnJvci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvb25hY3RpdmF0ZS1z
Y3JpcHQtZXJyb3IuaHR0cHMuaHRtbAppbmRleCAyM2E3ZjJjODY4NjhlZTU3YjA1NTZiNjNjMWNh
YTIzZDZkYjQwYzhmLi42YzE2MzU3ZjNjYzVhYmExODFlZTA3OThhYzlmYWRjMjM4OGMzZjNhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9vbmFjdGl2YXRlLXNjcmlwdC1lcnJvci5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL29uYWN0aXZhdGUtc2NyaXB0LWVycm9yLmh0
dHBzLmh0bWwKQEAgLTMzLDE2ICszMywxNSBAQCBmdW5jdGlvbiBtYWtlX3Rlc3QobmFtZSwgc2Ny
aXB0KSB7CiAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0
ZXIodCwgc2NyaXB0LCBzY29wZSkKICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewogICAgICAg
ICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKworICAgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICByLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgICAg
fSk7CisKICAgICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9pbnN0YWxsKHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nKTsKICAgICAgICAgICB9KQogICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAg
ICAgICAgICAgIC8vIEFjdGl2YXRlIHNob3VsZCBzdWNjZWVkIHJlZ2FyZGxlc3Mgb2Ygc2NyaXB0
IGVycm9ycy4KLSAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlICYmIHJlZ2lzdHJh
dGlvbi5hY3RpdmUuc3RhdGUgPT0gJ2FjdGl2YXRlZCcpIHsKLSAgICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZSgpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RyYXRpb24u
YWN0aXZlKSB7Ci0gICAgICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9hY3RpdmF0ZShyZWdpc3Ry
YXRpb24uYWN0aXZlKTsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgcmV0dXJuIHdhaXRf
Zm9yX2FjdGl2YXRlKHJlZ2lzdHJhdGlvbi53YWl0aW5nKTsKICAgICAgICAgICB9KTsKICAgICB9
LCBuYW1lKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL29uaW5zdGFsbC1zY3JpcHQt
ZXJyb3IuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL29uaW5zdGFsbC1zY3JpcHQtZXJy
b3IuaHR0cHMuaHRtbAppbmRleCBhOWNhMTljYWI3ZmQ0ZDM3MWI3NzZiMDBmMzQ1NjI0NzI5OTNl
MDJlLi5mZTdmNmU5MDEyMDZlMDdiNjExNDk2YTE5MWE4MDIzNTE2YWE0Yjg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9vbmluc3RhbGwtc2NyaXB0LWVycm9yLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvb25pbnN0YWxsLXNjcmlwdC1lcnJvci5odHRwcy5odG1sCkBA
IC0zMywxOCArMzMsMjMgQEAgZnVuY3Rpb24gbWFrZV90ZXN0KG5hbWUsIHNjcmlwdCwgZXhwZWN0
X2luc3RhbGwpIHsKICAgewogICAgIG5hbWU6ICdpbnN0YWxsIGhhbmRsZXIgdGhyb3dzIGFuIGVy
cm9yJywKICAgICBzY3JpcHQ6ICdyZXNvdXJjZXMvb25pbnN0YWxsLXRocm93LWVycm9yLXdvcmtl
ci5qcycsCi0gICAgZXhwZWN0X2luc3RhbGw6IGZhbHNlCisgICAgZXhwZWN0X2luc3RhbGw6IHRy
dWUKICAgfSwKICAgewogICAgIG5hbWU6ICdpbnN0YWxsIGhhbmRsZXIgdGhyb3dzIGFuIGVycm9y
LCBlcnJvciBoYW5kbGVyIGRvZXMgbm90IGNhbmNlbCcsCiAgICAgc2NyaXB0OiAncmVzb3VyY2Vz
L29uaW5zdGFsbC10aHJvdy1lcnJvci13aXRoLWVtcHR5LW9uZXJyb3Itd29ya2VyLmpzJywKLSAg
ICBleHBlY3RfaW5zdGFsbDogZmFsc2UKKyAgICBleHBlY3RfaW5zdGFsbDogdHJ1ZQogICB9LAog
ICB7CiAgICAgbmFtZTogJ2luc3RhbGwgaGFuZGxlciBkaXNwYXRjaGVzIGFuIGV2ZW50IHRoYXQg
dGhyb3dzIGFuIGVycm9yJywKICAgICBzY3JpcHQ6ICdyZXNvdXJjZXMvb25pbnN0YWxsLXRocm93
LWVycm9yLWZyb20tbmVzdGVkLWV2ZW50LXdvcmtlci5qcycsCiAgICAgZXhwZWN0X2luc3RhbGw6
IHRydWUKICAgfSwKKyAgeworICAgIG5hbWU6ICdpbnN0YWxsIGhhbmRsZXIgdGhyb3dzIGFuIGVy
cm9yIGluIHRoZSB3YWl0VW50aWwnLAorICAgIHNjcmlwdDogJ3Jlc291cmNlcy9vbmluc3RhbGwt
d2FpdHVudGlsLXRocm93LWVycm9yLXdvcmtlci5qcycsCisgICAgZXhwZWN0X2luc3RhbGw6IGZh
bHNlCisgIH0sCiAKICAgLy8gVGhlIGZvbGxvd2luZyB0d28gY2FzZXMgdGVzdCB3aGF0IGhhcHBl
bnMgd2hlbiB0aGUgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlCiAgIC8vICdlcnJvcicgZXZlbnQg
aGFuZGxlciBjYW5jZWxzIHRoZSByZXN1bHRpbmcgZXJyb3IgZXZlbnQuICBTaW5jZSB0aGUKQEAg
LTU0LDEyICs1OSwxMiBAQCBmdW5jdGlvbiBtYWtlX3Rlc3QobmFtZSwgc2NyaXB0LCBleHBlY3Rf
aW5zdGFsbCkgewogICB7CiAgICAgbmFtZTogJ2luc3RhbGwgaGFuZGxlciB0aHJvd3MgYW4gZXJy
b3IgdGhhdCBpcyBjYW5jZWxsZWQnLAogICAgIHNjcmlwdDogJ3Jlc291cmNlcy9vbmluc3RhbGwt
dGhyb3ctZXJyb3ItdGhlbi1jYW5jZWwtd29ya2VyLmpzJywKLSAgICBleHBlY3RfaW5zdGFsbDog
ZmFsc2UKKyAgICBleHBlY3RfaW5zdGFsbDogdHJ1ZQogICB9LAogICB7CiAgICAgbmFtZTogJ2lu
c3RhbGwgaGFuZGxlciB0aHJvd3MgYW4gZXJyb3IgYW5kIHByZXZlbnRzIGRlZmF1bHQnLAogICAg
IHNjcmlwdDogJ3Jlc291cmNlcy9vbmluc3RhbGwtdGhyb3ctZXJyb3ItdGhlbi1wcmV2ZW50LWRl
ZmF1bHQtd29ya2VyLmpzJywKLSAgICBleHBlY3RfaW5zdGFsbDogZmFsc2UKKyAgICBleHBlY3Rf
aW5zdGFsbDogdHJ1ZQogICB9CiBdLmZvckVhY2goZnVuY3Rpb24odGVzdF9jYXNlKSB7CiAgICAg
bWFrZV90ZXN0KHRlc3RfY2FzZS5uYW1lLCB0ZXN0X2Nhc2Uuc2NyaXB0LCB0ZXN0X2Nhc2UuZXhw
ZWN0X2luc3RhbGwpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvb3BhcXVlLXJlc3Bv
bnNlLXByZWxvYWRlZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvb3BhcXVlLXJlc3Bv
bnNlLXByZWxvYWRlZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxN2FhNGViZWM4MzgwZWM3Nzhi
YmU0MmYzZWU4ZmI0NTY0OTI5MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9vcGFxdWUtcmVzcG9uc2UtcHJlbG9hZGVkLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+T3BhcXVlIHJl
c3BvbnNlcyBzaG91bGQgbm90IGJlIHJldXNlZCBmb3IgWEhSczwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IFdP
UktFUiA9CisgICdyZXNvdXJjZXMvb3BhcXVlLXJlc3BvbnNlLXByZWxvYWRlZC13b3JrZXIuanMn
OworCit2YXIgZG9uZTsKKworLy8gVGhlc2UgdGVzdCB0aGF0IHRoZSBicm93c2VyIGRvZXMgbm90
IGluYXBwcm9wcmlhdGVseSB1c2UgYSBjYWNoZWQgb3BhcXVlCisvLyByZXNwb25zZSBmb3IgYSBy
ZXF1ZXN0IHRoYXQgaXMgbm90IG5vLWNvcnMuIFRoZSB0ZXN0IG9wZW5zIGEgY29udHJvbGxlZAor
Ly8gaWZyYW1lIHRoYXQgdXNlcyBsaW5rIHJlbD1wcmVsb2FkIHRvIGlzc3VlIGEgc2FtZS1vcmln
aW4gbm8tY29ycyByZXF1ZXN0LgorLy8gVGhlIHNlcnZpY2Ugd29ya2VyIHJlc3BvbmRzIHRvIHRo
ZSByZXF1ZXN0IHdpdGggYW4gb3BhcXVlIHJlc3BvbnNlLiBUaGVuIHRoZQorLy8gaWZyYW1lIGRv
ZXMgYW4gWEhSIChub3Qgbm8tY29ycykgdG8gdGhhdCBVUkwgYWdhaW4uIFRoZSByZXF1ZXN0IHNo
b3VsZCBmYWlsLgorcHJvbWlzZV90ZXN0KHQgPT4geworICAgIGNvbnN0IFNDT1BFID0KKyAgICAg
ICdyZXNvdXJjZXMvb3BhcXVlLXJlc3BvbnNlLWJlaW5nLXByZWxvYWRlZC14aHIuaHRtbCc7Cisg
ICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gZG9uZSA9IHJlc29sdmUp
OworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IFdPUktFUiwgU0NPUEUpCisgICAgICAudGhlbihyZWcgPT4geworICAgICAgICAgICBhZGRfY29t
cGxldGlvbl9jYWxsYmFjaygoKSA9PiByZWcudW5yZWdpc3RlcigpKTsKKyAgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAg
ICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUoU0NPUEUpKQorICAgICAgLnRo
ZW4oZnJhbWUgPT4gdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5yZW1vdmUoKSApKQorICAgICAg
LnRoZW4oKCkgPT4gcHJvbWlzZSkKKyAgICAgIC50aGVuKHJlc3VsdCA9PiBhc3NlcnRfZXF1YWxz
KHJlc3VsdCwgJ1BBU1MnKSk7CisgIH0sICdPcGFxdWUgcmVzcG9uc2VzIHNob3VsZCBub3QgYmUg
cmV1c2VkIGZvciBYSFJzLCBsb2FkaW5nIGNhc2UnKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gewor
ICAgIGNvbnN0IFNDT1BFID0KKyAgICAgICdyZXNvdXJjZXMvb3BhcXVlLXJlc3BvbnNlLXByZWxv
YWRlZC14aHIuaHRtbCc7CisgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gZG9uZSA9IHJlc29sdmUpOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIFdPUktFUiwgU0NPUEUpCisgICAgICAudGhlbihyZWcgPT4gewor
ICAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiByZWcudW5yZWdpc3Rlcigp
KTsKKyAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAn
YWN0aXZhdGVkJyk7CisgICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUo
U0NPUEUpKQorICAgICAgLnRoZW4oZnJhbWUgPT4gdC5hZGRfY2xlYW51cCgoKSA9PiBmcmFtZS5y
ZW1vdmUoKSApKQorICAgICAgLnRoZW4oKCkgPT4gcHJvbWlzZSkKKyAgICAgIC50aGVuKHJlc3Vs
dCA9PiBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ1BBU1MnKSk7CisgIH0sICdPcGFxdWUgcmVzcG9u
c2VzIHNob3VsZCBub3QgYmUgcmV1c2VkIGZvciBYSFJzLCBkb25lIGNhc2UnKTsKKworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wZXJmb3JtYW5jZS10aW1lbGluZS5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcGVyZm9ybWFuY2UtdGltZWxpbmUuaHR0cHMu
aHRtbAppbmRleCAxODIwNzZiYWE5ODQxZjFhZWQzMTE3NWZmOTYwZmEwNjNkNmVmMGMwLi5iNjZk
NGE4MjE4NjFiNmU2ZTM3ZTQ3YjY1MmYzMjc1NmM4MDYyMDU4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9wZXJmb3JtYW5jZS10aW1lbGluZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3BlcmZvcm1hbmNlLXRpbWVsaW5lLmh0dHBzLmh0bWwKQEAgLTgsNCArOCwzOSBA
QCBzZXJ2aWNlX3dvcmtlcl90ZXN0KAogICAgICdyZXNvdXJjZXMvcGVyZm9ybWFuY2UtdGltZWxp
bmUtd29ya2VyLmpzJywKICAgICAnVGVzdCBQZXJmb3JtYW5jZSBUaW1lbGluZSBBUEkgaW4gU2Vy
dmljZSBXb3JrZXInKTsKIAorLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyB0ZXN0IGlzIHRvIHZlcmlm
eSB0aGF0IHNlcnZpY2Ugd29ya2VyIG92ZXJoZWFkCisvLyBpcyBpbmNsdWRlZCBpbiB0aGUgUGVy
Zm9ybWFuY2UgQVBJJ3MgdGltaW5nIGluZm9ybWF0aW9uLgorcHJvbWlzZV90ZXN0KHQgPT4gewor
ICBsZXQgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS1idXQtc2xvdy13b3JrZXIuanMnOworICBs
ZXQgc2NvcGUgPSAncmVzb3VyY2VzL2R1bW15LnR4dD9zbG93LXN3LXRpbWluZyc7CisgIGxldCB1
cmwgPSBuZXcgVVJMKHNjb3BlLCB3aW5kb3cubG9jYXRpb24pLmhyZWY7CisgIGxldCBzbG93VVJM
ID0gdXJsICsgJyZzbG93JzsKKyAgbGV0IGZyYW1lOworICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAudGhlbihyZWcg
PT4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKSkKKyAgICAu
dGhlbihfID0+IHdpdGhfaWZyYW1lKHNjb3BlKSkKKyAgICAudGhlbihmID0+IHsKKyAgICAgIGZy
YW1lID0gZjsKKyAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKHVybCkudGhl
bihyID0+IHIgJiYgci50ZXh0KCkpOworICAgIH0pCisgICAgLnRoZW4oXyA9PiB7CisgICAgICBy
ZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChzbG93VVJMKS50aGVuKHIgPT4gciAmJiBy
LnRleHQoKSk7CisgICAgfSkKKyAgICAudGhlbihfID0+IHsKKyAgICAgIGZ1bmN0aW9uIGVsYXBz
ZWQodSkgeworICAgICAgICBsZXQgZW50cnkgPSBmcmFtZS5jb250ZW50V2luZG93LnBlcmZvcm1h
bmNlLmdldEVudHJpZXNCeU5hbWUodSk7CisgICAgICAgIHJldHVybiBlbnRyeVswXSA/IGVudHJ5
WzBdLmR1cmF0aW9uIDogdW5kZWZpbmVkOworICAgICAgfQorICAgICAgbGV0IHVybFRpbWUgPSBl
bGFwc2VkKHVybCk7CisgICAgICBsZXQgc2xvd1VSTFRpbWUgPSBlbGFwc2VkKHNsb3dVUkwpOwor
ICAgICAgLy8gVmVyaWZ5IHRoZSByZXF1ZXN0IHNsb3dlZCBieSB0aGUgc2VydmljZSB3b3JrZXIg
aXMgaW5kZWVkIG1lYXN1cmVkCisgICAgICAvLyB0byBiZSBzbG93ZXIuICBOb3RlLCB3ZSBjb21w
YXJlIHRvIHNtYWxsZXIgZGVsYXkgaW5zdGVhZCBvZiB0aGUgZXhhY3QKKyAgICAgIC8vIGRlbGF5
IGFtb3VudCB0byBhdm9pZCBtYWtpbmcgdGhlIHRlc3QgcmFjeSB1bmRlciBhdXRvbWF0aW9uLgor
ICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihzbG93VVJMVGltZSwgdXJsVGltZSArIDEwMDAsCisg
ICAgICAgICAgICAgICAgICAnU2xvdyBzZXJ2aWNlIHdvcmtlciByZXF1ZXN0IHNob3VsZCBtZWFz
dXJlIGluY3JlYXNlZCBkZWxheS4nKTsKKyAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgIH0p
Cit9LCAnZW1wdHkgc2VydmljZSB3b3JrZXIgZmV0Y2ggZXZlbnQgaW5jbHVkZWQgaW4gcGVyZm9y
bWFuY2UgdGltaW5ncycpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Bvc3RtZXNzYWdlLWJsb2ItdXJsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9w
b3N0bWVzc2FnZS1ibG9iLXVybC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ZmRkZDU3YjgzNTI0
MDExMmIxYTBiMmIyYzAzODM1ZTc2OTVlMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9wb3N0bWVzc2FnZS1ibG9iLXVybC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBwb3N0TWVzc2FnZSBCbG9i
IFVSTDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICBsZXQgc2NyaXB0ID0gJ3Jl
c291cmNlcy9wb3N0bWVzc2FnZS1ibG9iLXVybC5qcyc7CisgICAgbGV0IHNjb3BlID0gJ3Jlc291
cmNlcy9ibGFuay5odG1sJzsKKyAgICBsZXQgcmVnaXN0cmF0aW9uOworICAgIGxldCBibG9iVGV4
dCA9ICdCbG9iIHRleHQnOworICAgIGxldCBibG9iOworICAgIGxldCBibG9iVXJsOworCisgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNjcmlwdCwg
c2NvcGUpCisgICAgICAudGhlbihyID0+IHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxs
YmFjaygoKSA9PiByLnVucmVnaXN0ZXIoKSk7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsK
KyAgICAgICAgICBsZXQgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAg
ICAgYmxvYiA9IG5ldyBCbG9iKFtibG9iVGV4dF0pOworICAgICAgICAgIGJsb2JVcmwgPSBVUkwu
Y3JlYXRlT2JqZWN0VVJMKGJsb2IpOworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IHsKKyAgICAgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9
IGUgPT4geyByZXNvbHZlKGUuZGF0YSk7IH0KKyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2Fn
ZShibG9iVXJsKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKHJlc3Bv
bnNlID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnV29ya2VyIHJlcGx5
OicgKyBibG9iVGV4dCk7CisgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChibG9iVXJsKTsK
KyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSk7
CisgIH0sICdwb3N0TWVzc2FnZSBCbG9iIFVSTCB0byBhIFNlcnZpY2VXb3JrZXInKTsKKzwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtZnJvbS13YWl0
aW5nLXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNz
YWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQw
YTVkMzI3NGQ0MTRiZmNhMDMzOTA1NDBjMjk0OTBjNjYzODg3OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLWZyb20td2FpdGluZy1zZXJ2aWNld29ya2Vy
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2Vy
dmljZSBXb3JrZXI6IHBvc3RNZXNzYWdlIGZyb20gd2FpdGluZyBzZXJ2aWNld29ya2VyPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCitmdW5jdGlvbiBlY2hvKHdvcmtlciwgZGF0YSkgeworICByZXR1cm4gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7CisgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGZ1bmN0aW9uIG9uTXNnKGV2dCkgeworICAgICAgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTXNnKTsKKyAgICAgIHJl
c29sdmUoZXZ0KTsKKyAgICB9KTsKKyAgICB3b3JrZXIucG9zdE1lc3NhZ2UoZGF0YSk7CisgIH0p
OworfQorCithc3luY190ZXN0KHQgPT4geworICBsZXQgc2NyaXB0ID0gJ3Jlc291cmNlcy9lY2hv
LW1lc3NhZ2UtdG8tc291cmNlLXdvcmtlci5qcyc7CisgIGxldCBzY29wZSA9ICdyZXNvdXJjZXMv
Y2xpZW50LXBvc3RtZXNzYWdlLWZyb20td2FpdC1zZXJ2aWNld29ya2VyJzsKKyAgbGV0IHJlZ2lz
dHJhdGlvbjsKKyAgbGV0IGZyYW1lOworICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgIC50aGVuKHN3ciA9PiB7CisgICAgICByZWdp
c3RyYXRpb24gPSBzd3I7CisgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICB9KS50aGVuKF8gPT4geworICAgICAg
cmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICB9KS50aGVuKGYgPT4geworICAgICAgZnJh
bWUgPSBmOworICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNj
cmlwdCArICc/dXBkYXRlJywgeyBzY29wZTogc2NvcGUgfSkKKyAgICB9KS50aGVuKHN3ciA9PiB7
CisgICAgICBhc3NlcnRfZXF1YWxzKHN3ciwgcmVnaXN0cmF0aW9uLCAnc2hvdWxkIGJlIHNhbWUg
cmVnaXN0cmF0aW9uJyk7CisgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdpbnN0YWxsZWQnKTsKKyAgICB9KS50aGVuKF8gPT4geworICAgICAg
cmV0dXJuIGVjaG8ocmVnaXN0cmF0aW9uLndhaXRpbmcsICd3YWl0aW5nJyk7CisgICAgfSkudGhl
bihldnQgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhldnQuc291cmNlLCByZWdpc3RyYXRpb24u
d2FpdGluZywKKyAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2UgZXZlbnQgc291cmNlIHNob3Vs
ZCBiZSBjb3JyZWN0Jyk7CisgICAgICByZXR1cm4gZWNobyhyZWdpc3RyYXRpb24uYWN0aXZlLCAn
YWN0aXZlJyk7CisgICAgfSkudGhlbihldnQgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyhldnQu
c291cmNlLCByZWdpc3RyYXRpb24uYWN0aXZlLAorICAgICAgICAgICAgICAgICAgICAnbWVzc2Fn
ZSBldmVudCBzb3VyY2Ugc2hvdWxkIGJlIGNvcnJlY3QnKTsKKyAgICAgIGZyYW1lLnJlbW92ZSgp
OworICAgIH0pLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQs
IHNjb3BlKSApCisgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworfSwgJ0NsaWVu
dC5wb3N0TWVzc2FnZSgpIGZyb20gd2FpdGluZyBzZXJ2aWNld29ya2VyLicpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1tc2dwb3J0LXRvLWNs
aWVudC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtbXNncG9ydC10
by1jbGllbnQuaHR0cHMuaHRtbAppbmRleCAzOGI0ZjU2ZTc4NGQwYjMzZGJmNmIwZmVlZDYxYjJk
Y2QwMTAwM2ZmLi4yOWMwNTYwODBjNzlkNTgxOTc1ZTA5MjlkY2ViZDg0ZDYzYjg2YTIwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1tc2dwb3J0LXRvLWNsaWVudC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLW1zZ3BvcnQtdG8t
Y2xpZW50Lmh0dHBzLmh0bWwKQEAgLTEsNTEgKzEsNDMgQEAKIDwhRE9DVFlQRSBodG1sPgotPHRp
dGxlPlNlcnZpY2UgV29ya2VyOiBwb3N0TWVzc2FnZSB0byBDbGllbnQ8L3RpdGxlPgorPHRpdGxl
PlNlcnZpY2UgV29ya2VyOiBwb3N0TWVzc2FnZSB2aWEgTWVzc2FnZVBvcnQgdG8gQ2xpZW50PC90
aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0PgotdmFyIGZyYW1lOwotdmFyIHQgPSBhc3luY190ZXN0KCdwb3N0TWVzc2FnZSBNZXNz
YWdlUG9ydHMgZnJvbSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCcpOwotdC5zdGVwKGZ1bmN0aW9u
KCkgewotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCcKLSAgICBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3RlcigKLSAgICAgICAgdCwgJ3Jlc291cmNlcy9w
b3N0bWVzc2FnZS1tc2dwb3J0LXRvLWNsaWVudC13b3JrZXIuanMnLCBzY29wZSkKLSAgICAgIC50
aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHZh
ciBzY3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLW1zZ3BvcnQtdG8tY2xpZW50LXdvcmtl
ci5qcyc7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKKyAgICB2YXIg
cG9ydDsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cih0LCBzY3JpcHQsIHNjb3BlKQorICAgICAgLnRoZW4ocmVnaXN0cmF0aW9uID0+IHsKKyAgICAg
ICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjaygoKSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmlu
c3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9u
KCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24o
ZikgewotICAgICAgICAgIGZyYW1lID0gZjsKLSAgICAgICAgICB2YXIgdyA9IGZyYW1lLmNvbnRl
bnRXaW5kb3c7Ci0gICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2Ug
PSB0LnN0ZXBfZnVuYyhvbk1lc3NhZ2UpOwotICAgICAgICAgIHcubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgncGluZycpOworICAgICAgLnRoZW4oKCkgPT4g
d2l0aF9pZnJhbWUoc2NvcGUpKQorICAgICAgLnRoZW4oZnJhbWUgPT4geworICAgICAgICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gZnJhbWUucmVtb3ZlKCkpOworICAgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgICAgdmFyIHcgPSBmcmFtZS5jb250ZW50
V2luZG93OworICAgICAgICAgICAgICB3Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2Fn
ZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHcubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29u
dHJvbGxlci5wb3N0TWVzc2FnZSgncGluZycpOworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
Ci0gICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Ci0KLSAgICB2YXIgcmVzdWx0
ID0gW107Ci0gICAgdmFyIGV4cGVjdGVkID0gWwotICAgICAgICAnQWNraW5nIHZhbHVlOiAxJywK
LSAgICAgICAgJ0Fja2luZyB2YWx1ZTogMicsCi0gICAgXTsKLQotICAgIGZ1bmN0aW9uIG9uTWVz
c2FnZShlKSB7Ci0gICAgICB2YXIgbWVzc2FnZSA9IGUuZGF0YTsKLSAgICAgIGlmICgncG9ydCcg
aW4gbWVzc2FnZSkgewotICAgICAgICB2YXIgcG9ydCA9IG1lc3NhZ2UucG9ydDsKLSAgICAgICAg
cG9ydC5wb3N0TWVzc2FnZSh7dmFsdWU6IDF9KTsKLSAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7
dmFsdWU6IDJ9KTsKLSAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7ZG9uZTogdHJ1ZX0pOwotICAg
ICAgfSBlbHNlIGlmICgnYWNrJyBpbiBtZXNzYWdlKSB7Ci0gICAgICAgIHJlc3VsdC5wdXNoKG1l
c3NhZ2UuYWNrKTsKLSAgICAgIH0gZWxzZSBpZiAoJ2RvbmUnIGluIG1lc3NhZ2UpIHsKLSAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscygKLSAgICAgICAgICAgIHJlc3VsdCwgZXhwZWN0ZWQsCi0g
ICAgICAgICAgICAnV29ya2VyIHNob3VsZCBwb3N0IGJhY2sgZXhwZWN0ZWQgdmFsdWVzIHZpYSBN
ZXNzYWdlUG9ydC4nKTsKLSAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnR290IHVuZXhwZWN0ZWQgbWVzc2FnZSBmcm9tIFNlcnZp
Y2VXb3JrZXInKTsKLSAgICAgIH0KLSAgICB9Ci0gIH0pOworICAgICAgLnRoZW4oZSA9PiB7Cisg
ICAgICAgICAgcG9ydCA9IGUucG9ydHNbMF07CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7
dmFsdWU6IDF9KTsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHt2YWx1ZTogMn0pOworICAg
ICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uoe2RvbmU6IHRydWV9KTsKKyAgICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IHBvcnQub25tZXNzYWdlID0gcmVzb2x2ZTsgfSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihlID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
ZGF0YS5hY2ssICdBY2tpbmcgdmFsdWU6IDEnKTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7IHBvcnQub25tZXNzYWdlID0gcmVzb2x2ZTsgfSk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihlID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5hY2ss
ICdBY2tpbmcgdmFsdWU6IDInKTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7IHBvcnQub25tZXNzYWdlID0gcmVzb2x2ZTsgfSk7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihlID0+IHsgYXNzZXJ0X3RydWUoZS5kYXRhLmRvbmUsICdkb25lJyk7IH0pOworICB9LCAn
cG9zdE1lc3NhZ2UgTWVzc2FnZVBvcnRzIGZyb20gU2VydmljZVdvcmtlciB0byBDbGllbnQnKTsK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtdG8t
Y2xpZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGll
bnQuaHR0cHMuaHRtbAppbmRleCBhMDMxZWUyZWRmM2M3ZDVkMzg3ZjQ5N2Y2ZDEwNjdjZDU2OTc0
MzM0Li4xNWQyZTg4OTMzNzA3ODg2OWUzYzNlOTdkMzEyNjQ5ZTZhOGJkOGIyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS10by1jbGllbnQuaHR0cHMuaHRtbApAQCAt
Miw0OCArMiw1MyBAQAogPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBwb3N0TWVzc2FnZSB0byBDbGll
bnQ8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdD4KLXZhciBmcmFtZTsKLXZhciB0ID0gYXN5bmNfdGVzdCgncG9zdE1lc3NhZ2UgZnJv
bSBTZXJ2aWNlV29ya2VyIHRvIENsaWVudCcpOwotdC5zdGVwKGZ1bmN0aW9uKCkgeworcHJvbWlz
ZV90ZXN0KHQgPT4geworICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRv
LWNsaWVudC13b3JrZXIuanMnOwogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRt
bCc7Ci0gICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKLSAgICB2YXIgc3c7Ci0g
ICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICAgIHQsICdy
ZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdG8tY2xpZW50LXdvcmtlci5qcycsIHNjb3BlKQotICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgdmFyIHc7CisKKyAgICByZXR1cm4g
c2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkK
KyAgICAgIC50aGVuKHJlZ2lzdHJhdGlvbiA9PiB7CisgICAgICAgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpKTsKICAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAg
ICAgfSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUp
OyB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oZikgewotICAgICAgICAgIGZyYW1lID0gZjsKLSAg
ICAgICAgICBzdyA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXI7
Ci0gICAgICAgICAgc3cub25tZXNzYWdlID0gdC5zdGVwX2Z1bmMob25NZXNzYWdlKTsKLSAgICAg
ICAgICBzdy5jb250cm9sbGVyLnBvc3RNZXNzYWdlKCdwaW5nJyk7Ci0gICAgICAgIH0pCi0gICAg
ICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Ci0KLSAgICB2YXIgcmVzdWx0ID0gW107
Ci0gICAgdmFyIGV4cGVjdGVkID0gWydTZW5kaW5nIG1lc3NhZ2UgdmlhIGNsaWVudHMnXTsKKyAg
ICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKHNjb3BlKSkKKyAgICAgIC50aGVuKGZyYW1lID0+
IHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGZyYW1lLnJlbW92ZSgpKTsKIAotICAg
IGZ1bmN0aW9uIG9uTWVzc2FnZShlKSB7Ci0gICAgICBhc3NlcnRfZXF1YWxzKGUuYnViYmxlcywg
ZmFsc2UsICdtZXNzYWdlIGV2ZW50cyBzaG91bGQgbm90IGJ1YmJsZS4nKTsKLSAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5jYW5jZWxhYmxlLCBmYWxzZSwgJ21lc3NhZ2UgZXZlbnRzIHNob3VsZCBub3Qg
YmUgY2FuY2VsYWJsZS4nKTsKLSAgICAgIGFzc2VydF9lcXVhbHMoZS5vcmlnaW4sIGhvc3RfaW5m
b1snSFRUUFNfT1JJR0lOJ10sICdtZXNzYWdlIGV2ZW50XCdzIG9yaWdpbiBzaG91bGQgYmUgc2V0
IGNvcnJlY3RseS4nKTsKLS8vIFhYWGtodWV5IGZpeG1lIQotLy8gICAgICBhc3NlcnRfZXF1YWxz
KGUuc291cmNlLCBzdy5jb250cm9sbGVyLCAnc291cmNlIHNob3VsZCBiZSBTZXJ2aWNlV29ya2Vy
LicpOwotCi0gICAgICB2YXIgbWVzc2FnZSA9IGUuZGF0YTsKLSAgICAgIGlmIChtZXNzYWdlID09
PSAncXVpdCcpIHsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhyZXN1bHQsIGV4cGVjdGVk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgc2hvdWxkIHBvc3QgYmFjayBl
eHBlY3RlZCBtZXNzYWdlcy4nKTsKLSAgICAgICAgZnJhbWUucmVtb3ZlKCk7Ci0gICAgICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgfSBlbHNl
IHsKLSAgICAgICAgcmVzdWx0LnB1c2gobWVzc2FnZSk7Ci0gICAgICB9Ci0gICAgfQotICB9KTsK
KyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICAg
IHcgPSBmcmFtZS5jb250ZW50V2luZG93OworICAgICAgICAgICAgICB3Lm5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHcubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSgncGluZycpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihlID0+IHsKKyAgICAgICAgICB2YXIgbWVz
c2FnZSA9IGUuZGF0YTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuY29uc3RydWN0b3IsIHcu
TWVzc2FnZUV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2UgZXZlbnRzIHNo
b3VsZCB1c2UgTWVzc2FnZUV2ZW50IGludGVyZmFjZS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGUudHlwZSwgJ21lc3NhZ2UnLCAndHlwZSBzaG91bGQgYmUgIm1lc3NhZ2UiLicpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5idWJibGVzLCBmYWxzZSwgJ21lc3NhZ2UgZXZlbnRzIHNo
b3VsZCBub3QgYnViYmxlLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5jYW5jZWxhYmxl
LCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdtZXNzYWdlIGV2ZW50cyBzaG91bGQg
bm90IGJlIGNhbmNlbGFibGUuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAg
ICAgICAgZS5vcmlnaW4sIGxvY2F0aW9uLm9yaWdpbiwKKyAgICAgICAgICAgICAgJ29yaWdpbiBv
ZiBtZXNzYWdlIHNob3VsZCBiZSBvcmlnaW4gb2YgU2VydmljZSBXb3JrZXIuJyk7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhlLmxhc3RFdmVudElkLCAnJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdsYXN0RXZlbnRJZCBzaG91bGQgYmUgYW4gZW1wdHkgc3RyaW5nLicpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5zb3VyY2UuY29uc3RydWN0b3IsIHcuU2VydmljZVdvcmtlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2Ugc2hvdWxkIHVzZSBTZXJ2aWNlV29ya2VyIGlu
dGVyZmFjZS4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICBlLnNv
dXJjZSwgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLAorICAgICAgICAgICAg
ICAnc291cmNlIHNob3VsZCBiZSB0aGUgc2VydmljZSB3b3JrZXIgdGhhdCBzZW50IHRoZSBtZXNz
YWdlLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5wb3J0cy5sZW5ndGgsIDAsICdwb3J0
cyBzaG91bGQgYmUgYW4gZW1wdHkgYXJyYXkuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyht
ZXNzYWdlLCAnU2VuZGluZyBtZXNzYWdlIHZpYSBjbGllbnRzJyk7CisgICAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgICB3Lm5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGUgPT4geyBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJ3F1aXQnKTsgfSk7
CisgIH0sICdwb3N0TWVzc2FnZSBmcm9tIFNlcnZpY2VXb3JrZXIgdG8gQ2xpZW50LicpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UuaHR0cHMuaHRtbAppbmRleCBhNmY2
NjUxNzkxMGVlZmQ1NGFiYzcyMmM3Y2YxNmE3ZDZmMzc5NGFjLi4zYTY0ODdlYTE3YTYzZDhhZTc3
MTBlZTZlMWRkYjViYzY2MjZmOTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0
bWVzc2FnZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdlLmh0
dHBzLmh0bWwKQEAgLTQsNTcgKzQsMTM2IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3Qt
aGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWFzeW5jX3Rlc3QoZnVuY3Rpb24o
dCkgeworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL3Bv
c3RtZXNzYWdlLXdvcmtlci5qcyc7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5o
dG1sJzsKICAgICB2YXIgcmVnaXN0cmF0aW9uOwogICAgIHZhciB3b3JrZXI7Ci0gICAgc2Vydmlj
ZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIoCi0gICAgICAgIHQsICdyZXNvdXJjZXMv
cG9zdG1lc3NhZ2Utd29ya2VyLmpzJywgc2NvcGUpCi0gICAgICAudGhlbihmdW5jdGlvbihyKSB7
CisgICAgdmFyIHBvcnQ7CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVuKHIgPT4geworICAgICAg
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gci51bnJlZ2lzdGVyKCkpOwogICAgICAgICAgIHJlZ2lz
dHJhdGlvbiA9IHI7CiAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7
CisKICAgICAgICAgICB2YXIgbWVzc2FnZUNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsK
LSAgICAgICAgICBtZXNzYWdlQ2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhv
bk1lc3NhZ2UpOwotICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDogbWVzc2FnZUNo
YW5uZWwucG9ydDJ9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21lc3NhZ2VDaGFu
bmVsLnBvcnQyXSk7Ci0gICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHt2YWx1ZTogMX0pOwot
ICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dmFsdWU6IDJ9KTsKLSAgICAgICAgICB3b3Jr
ZXIucG9zdE1lc3NhZ2Uoe2RvbmU6IHRydWV9KTsKLSAgICAgICAgfSkKLSAgICAgIC5jYXRjaCh1
bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKLQotICAgIHZhciByZXN1bHQgPSBbXTsKLSAgICB2YXIg
ZXhwZWN0ZWQgPSBbCi0gICAgICAnQWNraW5nIHZhbHVlOiAxJywKLSAgICAgICdBY2tpbmcgdmFs
dWU6IDInLAotICAgIF07Ci0KLSAgICBmdW5jdGlvbiBvbk1lc3NhZ2UoZSkgewotICAgICAgdmFy
IG1lc3NhZ2UgPSBlLmRhdGE7Ci0gICAgICBpZiAobWVzc2FnZSA9PT0gJ3F1aXQnKSB7Ci0gICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMocmVzdWx0LCBleHBlY3RlZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnV29ya2VyIHNob3VsZCBwb3N0IGJhY2sgZXhwZWN0ZWQgdmFsdWVzLicp
OwotICAgICAgICBwb3N0TWVzc2FnZVRvUmVkdW5kYW50V29ya2VyKCk7Ci0gICAgICB9IGVsc2Ug
ewotICAgICAgICByZXN1bHQucHVzaChtZXNzYWdlKTsKLSAgICAgIH0KLSAgICB9OwotCi0gICAg
ZnVuY3Rpb24gcG9zdE1lc3NhZ2VUb1JlZHVuZGFudFdvcmtlcigpIHsKLSAgICAgIHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKHNjb3BlKQotICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1bmRhbnQnKTsKLSAg
ICAgICAgICB9KQotICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMod29ya2VyLnN0YXRlLCAncmVkdW5kYW50Jyk7Ci0gICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKAotICAgICAgICAgICAgICB7bmFtZTonSW52YWxpZFN0YXRlRXJyb3InfSwKLSAgICAg
ICAgICAgICAgZnVuY3Rpb24oKSB7IHdvcmtlci5wb3N0TWVzc2FnZSgnJyk7IH0sCi0gICAgICAg
ICAgICAgICdDYWxsaW5nIHBvc3RNZXNzYWdlIG9uIGEgcmVkdW5kYW50IFNlcnZpY2VXb3JrZXIg
c2hvdWxkICcgKwotICAgICAgICAgICAgICAgICAgJ3Rocm93IEludmFsaWRTdGF0ZUVycm9yLicp
OwotICAgICAgICAgICAgdC5kb25lKCk7Ci0gICAgICAgICAgfSkKLSAgICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOwotICAgIH0KKyAgICAgICAgICBwb3J0ID0gbWVzc2FnZUNo
YW5uZWwucG9ydDE7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewor
ICAgICAgICAgICAgICBwb3J0Lm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAgIHdv
cmtlci5wb3N0TWVzc2FnZSh7cG9ydDogbWVzc2FnZUNoYW5uZWwucG9ydDJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW21lc3NhZ2VDaGFubmVsLnBvcnQyXSk7CisgICAgICAg
ICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dmFsdWU6IDF9KTsKKyAgICAgICAgICAgICAgd29y
a2VyLnBvc3RNZXNzYWdlKHt2YWx1ZTogMn0pOworICAgICAgICAgICAgICB3b3JrZXIucG9zdE1l
c3NhZ2Uoe2RvbmU6IHRydWV9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZSA9PiB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEsICdBY2tpbmcgdmFs
dWU6IDEnKTsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IHBvcnQu
b25tZXNzYWdlID0gcmVzb2x2ZTsgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihlID0+IHsK
KyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgJ0Fja2luZyB2YWx1ZTogMicpOworICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgcG9ydC5vbm1lc3NhZ2UgPSBy
ZXNvbHZlOyB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGUgPT4geworICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS5kYXRhLCAncXVpdCcpOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcihzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbigoKSA9PiB7IHJl
dHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCB3b3JrZXIsICdyZWR1bmRhbnQnKTsgfSkKKyAgICAgIC50
aGVuKCgpID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHdvcmtlci5zdGF0ZSwgJ3JlZHVu
ZGFudCcpOworICAgICAgICAgIGFzc2VydF90aHJvd3MoCisgICAgICAgICAgICB7bmFtZTonSW52
YWxpZFN0YXRlRXJyb3InfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyB3b3JrZXIucG9zdE1l
c3NhZ2UoJycpOyB9LAorICAgICAgICAgICAgJ0NhbGxpbmcgcG9zdE1lc3NhZ2Ugb24gYSByZWR1
bmRhbnQgU2VydmljZVdvcmtlciBzaG91bGQgJyArCisgICAgICAgICAgICAgICAgJ3Rocm93IElu
dmFsaWRTdGF0ZUVycm9yLicpOworICAgICAgICB9KTsKICAgfSwgJ3Bvc3RNZXNzYWdlIHRvIGEg
U2VydmljZVdvcmtlciAoYW5kIGJhY2sgdmlhIE1lc3NhZ2VQb3J0KScpOworCitwcm9taXNlX3Rl
c3QodCA9PiB7CisgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvcG9zdG1lc3NhZ2UtdHJhbnNm
ZXJhYmxlcy13b3JrZXIuanMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRt
bCc7CisgICAgdmFyIHN3ID0gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXI7CisKKyAgICB2YXIgbWVz
c2FnZSA9ICdIZWxsbywgd29ybGQhJzsKKyAgICB2YXIgdGV4dF9lbmNvZGVyID0gbmV3IFRleHRF
bmNvZGVyOworICAgIHZhciB0ZXh0X2RlY29kZXIgPSBuZXcgVGV4dERlY29kZXI7CisKKyAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgc2NyaXB0LCBz
Y29wZSkKKyAgICAgIC50aGVuKHIgPT4geworICAgICAgICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
ci51bnJlZ2lzdGVyKCkpOworCisgICAgICAgICAgdmFyIGFiID0gdGV4dF9lbmNvZGVyLmVuY29k
ZShtZXNzYWdlKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFiLmJ5dGVMZW5ndGgsIG1lc3Nh
Z2UubGVuZ3RoKTsKKyAgICAgICAgICByLmluc3RhbGxpbmcucG9zdE1lc3NhZ2UoYWIsIFthYi5i
dWZmZXJdKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRleHRfZGVjb2Rlci5kZWNvZGUoYWIp
LCAnJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhYi5ieXRlTGVuZ3RoLCAwKTsKKworICAg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgc3cub25tZXNzYWdlID0gcmVz
b2x2ZTsgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihlID0+IHsKKyAgICAgICAgICAvLyBW
ZXJpZnkgdGhlIGludGVncml0eSBvZiB0aGUgdHJhbnNmZXJyZWQgYXJyYXkgYnVmZmVyLgorICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmNvbnRlbnQsIG1lc3NhZ2UpOworICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5kYXRhLmJ5dGVMZW5ndGgsIG1lc3NhZ2UubGVuZ3RoKTsKKyAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7IHN3Lm9ubWVzc2FnZSA9IHJlc29s
dmU7IH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZSA9PiB7CisgICAgICAgICAgLy8gVmVy
aWZ5IHRoZSBpbnRlZ3JpdHkgb2YgdGhlIGFycmF5IGJ1ZmZlciBzZW50IGJhY2sgZnJvbQorICAg
ICAgICAgIC8vIFNlcnZpY2VXb3JrZXIgdmlhIENsaWVudC5wb3N0TWVzc2FnZS4KKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHRleHRfZGVjb2Rlci5kZWNvZGUoZS5kYXRhKSwgbWVzc2FnZSk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuYnl0ZUxlbmd0aCwgbWVzc2FnZS5sZW5ndGgp
OworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgc3cub25tZXNzYWdl
ID0gcmVzb2x2ZTsgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihlID0+IHsKKyAgICAgICAg
ICAvLyBWZXJpZnkgdGhhdCB0aGUgYXJyYXkgYnVmZmVyIG9uIFNlcnZpY2VXb3JrZXIgaXMgbmV1
dGVyZWQuCisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEuY29udGVudCwgJycpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5kYXRhLmJ5dGVMZW5ndGgsIDApOworICAgICAgICB9KTsK
KyAgfSwgJ3Bvc3RNZXNzYWdlIGEgdHJhbnNmZXJhYmxlIEFycmF5QnVmZmVyIGJldHdlZW4gU2Vy
dmljZVdvcmtlciBhbmQgQ2xpZW50Jyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHsKKyAgICB2YXIg
c2NyaXB0ID0gJ3Jlc291cmNlcy9wb3N0bWVzc2FnZS10cmFuc2ZlcmFibGVzLXdvcmtlci5qcyc7
CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKKyAgICB2YXIgbWVzc2Fn
ZSA9ICdIZWxsbywgd29ybGQhJzsKKyAgICB2YXIgdGV4dF9lbmNvZGVyID0gbmV3IFRleHRFbmNv
ZGVyOworICAgIHZhciB0ZXh0X2RlY29kZXIgPSBuZXcgVGV4dERlY29kZXI7CisgICAgdmFyIHBv
cnQ7CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgc2NyaXB0LCBzY29wZSkKKyAgICAgIC50aGVuKHIgPT4geworICAgICAgICAgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gci51bnJlZ2lzdGVyKCkpOworCisgICAgICAgICAgdmFyIGNoYW5uZWwgPSBu
ZXcgTWVzc2FnZUNoYW5uZWw7CisgICAgICAgICAgcG9ydCA9IGNoYW5uZWwucG9ydDE7CisgICAg
ICAgICAgci5pbnN0YWxsaW5nLnBvc3RNZXNzYWdlKHVuZGVmaW5lZCwgW2NoYW5uZWwucG9ydDJd
KTsKKworICAgICAgICAgIHZhciBhYiA9IHRleHRfZW5jb2Rlci5lbmNvZGUobWVzc2FnZSk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhhYi5ieXRlTGVuZ3RoLCBtZXNzYWdlLmxlbmd0aCk7Cisg
ICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShhYiwgW2FiLmJ1ZmZlcl0pOworICAgICAgICAgIGFz
c2VydF9lcXVhbHModGV4dF9kZWNvZGVyLmRlY29kZShhYiksICcnKTsKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGFiLmJ5dGVMZW5ndGgsIDApOworCisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geyBwb3J0Lm9ubWVzc2FnZSA9IHJlc29sdmU7IH0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZSA9PiB7CisgICAgICAgICAgLy8gVmVyaWZ5IHRoZSBpbnRlZ3JpdHkg
b2YgdGhlIHRyYW5zZmVycmVkIGFycmF5IGJ1ZmZlci4KKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUuZGF0YS5jb250ZW50LCBtZXNzYWdlKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0
YS5ieXRlTGVuZ3RoLCBtZXNzYWdlLmxlbmd0aCk7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geyBwb3J0Lm9ubWVzc2FnZSA9IHJlc29sdmU7IH0pOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZSA9PiB7CisgICAgICAgICAgLy8gVmVyaWZ5IHRoZSBpbnRlZ3JpdHkg
b2YgdGhlIGFycmF5IGJ1ZmZlciBzZW50IGJhY2sgZnJvbQorICAgICAgICAgIC8vIFNlcnZpY2VX
b3JrZXIgdmlhIENsaWVudC5wb3N0TWVzc2FnZS4KKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHRl
eHRfZGVjb2Rlci5kZWNvZGUoZS5kYXRhKSwgbWVzc2FnZSk7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLmRhdGEuYnl0ZUxlbmd0aCwgbWVzc2FnZS5sZW5ndGgpOworICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgcG9ydC5vbm1lc3NhZ2UgPSByZXNvbHZlOyB9KTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGUgPT4geworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0
IHRoZSBhcnJheSBidWZmZXIgb24gU2VydmljZVdvcmtlciBpcyBuZXV0ZXJlZC4KKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5jb250ZW50LCAnJyk7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLmRhdGEuYnl0ZUxlbmd0aCwgMCk7CisgICAgICAgIH0pOworICB9LCAncG9zdE1lc3Nh
Z2UgYSB0cmFuc2ZlcmFibGUgQXJyYXlCdWZmZXIgYmV0d2VlbiBTZXJ2aWNlV29ya2VyIGFuZCBD
bGllbnQnICsKKyAgICAgJyBvdmVyIE1lc3NhZ2VQb3J0Jyk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWFkeS5odHRwcy5odG1sCmluZGV4IGVlNmE5N2NhOGZjOTZjNDQ5NzM0ODE0YjVjM2E3Njdj
MzRjNDNhOWQuLjgyNjdlNjUwNmQyMGNjNGMxZDhlOGE1NWQ5MjM0MTI0YTYwMjc1MTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVhZHkuaHR0cHMuaHRtbApAQCAtMTIsMzEgKzEyLDM5IEBAIHRlc3QoZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgICAncmVnaXN0cmF0aW9ucyBzaG91bGQgcmV0dXJuIHRo
ZSBzYW1lIFByb21pc2Ugb2JqZWN0Jyk7CiAgIH0sICdyZWFkeSByZXR1cm5zIHRoZSBzYW1lIFBy
b21pc2Ugb2JqZWN0Jyk7CiAKLWFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHdpdGhfaWZy
YW1lKCdyZXNvdXJjZXMvYmxhbmsuaHRtbD91bmNvbnRyb2xsZWQnKQorcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uKHQpIHsKKyAgICByZXR1cm4gd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9ibGFuay5odG1s
P3VuY29udHJvbGxlZCcpCiAgICAgICAudGhlbih0LnN0ZXBfZnVuYyhmdW5jdGlvbihmcmFtZSkg
ewogICAgICAgICAgIHZhciBwcm9taXNlID0gZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWFkeTsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICAgIH0pOworCiAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvbWlzZSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LlByb21pc2UucHJvdG90eXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBQcm9taXNlIHNob3VsZCBiZSBpbiB0aGUg
Y29udGV4dCBvZiB0aGUgJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAncmVsYXRlZCBkb2N1
bWVudCcpOwotICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgIHQuZG9uZSgpOwog
ICAgICAgICB9KSk7CiAgIH0sICdyZWFkeSByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgaW4gdGhl
IGNvbnRleHQgb2YgdGhlIHJlbGF0ZWQgZG9jdW1lbnQnKTsKIAotYXN5bmNfdGVzdChmdW5jdGlv
bih0KSB7Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciB1cmwgPSAncmVzb3Vy
Y2VzL2VtcHR5LXdvcmtlci5qcyc7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5o
dG1sP3JlYWR5LWNvbnRyb2xsZWQnOwogICAgIHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxpemVV
UkwodXJsKTsKICAgICB2YXIgZnJhbWU7CiAKLSAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQorICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQogICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAg
ICAgICAgICB9KTsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOyB9KQogICAgICAgLnRoZW4oZnVu
Y3Rpb24oZikgeworICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgIGYucmVtb3ZlKCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgICBmcmFtZSA9IGY7
CiAgICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIucmVhZHk7CiAgICAgICAgIH0pCkBAIC00NywyOSArNTUsMzQgQEAgYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBzaG91bGQgYmUg
bnVsbCcpOwogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3Jp
cHRVUkwsIGV4cGVjdGVkX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgYWZ0
ZXIgcmVhZHkgc2hvdWxkIG5vdCBiZSBudWxsJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscygK
LSAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5jb250cm9sbGVyLnNjcmlwdFVSTCwKLSAgICAgICAgICAgICAgZXhwZWN0ZWRfdXJsLAotICAg
ICAgICAgICAgICAnY29udHJvbGxlZCBkb2N1bWVudCBzaG91bGQgaGF2ZSBhIGNvbnRyb2xsZXIn
KTsKLQotICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgICB9KQotICAgICAgLmNhdGNo
KHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWUu
Y29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICd0aGUgY29udHJvbGxlciBzaG91bGQgYmUgdGhlIGFjdGl2ZSB3b3JrZXInKTsKKyAg
ICAgICAgICBhc3NlcnRfaW5fYXJyYXkocmVnaXN0cmF0aW9uLmFjdGl2ZS5zdGF0ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgWydhY3RpdmF0aW5nJywgJ2FjdGl2YXRlZCddLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLnJlYWR5IHNob3VsZCBiZSByZXNvbHZlZCB3aGVuIHRoZSBy
ZWdpc3RyYXRpb24gJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICdoYXMgYW4gYWN0aXZl
IHdvcmtlcicpOworICAgICAgICB9KTsKICAgfSwgJ3JlYWR5IG9uIGEgY29udHJvbGxlZCBkb2N1
bWVudCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKK3Byb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CiAgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKICAgICB2
YXIgc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWw/cmVhZHktcG90ZW50aWFsLWNvbnRyb2xs
ZWQnOwogICAgIHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwodXJsKTsKICAgICB2YXIg
ZnJhbWU7CiAKLSAgICB3aXRoX2lmcmFtZShzY29wZSkKKyAgICByZXR1cm4gd2l0aF9pZnJhbWUo
c2NvcGUpCiAgICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgICAgdC5hZGRfY2xlYW51
cChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgZi5yZW1vdmUoKTsKKyAgICAgICAgICAgIH0p
OwogICAgICAgICAgIGZyYW1lID0gZjsKICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIodXJsLCB7c2NvcGU6c2NvcGV9KTsKICAgICAgICAgfSkKLSAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAg
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByLnVu
cmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgIHJldHVybiBmcmFtZS5jb250
ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlYWR5OwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CkBAIC03OSwzMiArOTIsOTkgQEAgYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBz
aG91bGQgYmUgbnVsbC4nKQogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFj
dGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICdh
Y3RpdmUgYWZ0ZXIgcmVhZHkgc2hvdWxkIG5vdCBiZSBudWxsJyk7CisgICAgICAgICAgYXNzZXJ0
X2luX2FycmF5KHJlZ2lzdHJhdGlvbi5hY3RpdmUuc3RhdGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsnYWN0aXZhdGluZycsICdhY3RpdmF0ZWQnXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgJy5yZWFkeSBzaG91bGQgYmUgcmVzb2x2ZWQgd2hlbiB0aGUgcmVnaXN0cmF0aW9uICcg
KworICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFzIGFuIGFjdGl2ZSB3b3JrZXInKTsKICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuY29udHJvbGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAndW5jb250cm9sbGVkIGRvY3VtZW50IHNob3VsZCBub3QgaGF2
ZSBhIGNvbnRyb2xsZXInKTsKKyAgICAgICAgfSk7CisgIH0sICdyZWFkeSBvbiBhIHBvdGVudGlh
bCBjb250cm9sbGVkIGRvY3VtZW50Jyk7CiAKLSAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAg
ICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKK3By
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWw/cmVhZHkt
aW5zdGFsbGluZyc7CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcih0LCBz
Y29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lm
cmFtZShzY29wZSk7CiAgICAgICAgIH0pCi0gICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlv
bih0KSk7Ci0gIH0sICdyZWFkeSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVkIGRvY3VtZW50Jyk7
CisgICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgICAgdmFyIHByb21pc2UgPSBmLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVhZHk7CisgICAgICAgICAgdC5h
ZGRfY2xlYW51cChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgZi5yZW1vdmUoKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHVy
bCwge3Njb3BlOiBzY29wZX0pOworICAgICAgICAgIHJldHVybiBwcm9taXNlOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgYWRkX2Nv
bXBsZXRpb25fY2FsbGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAg
ICAnaW5zdGFsbGluZyBzaG91bGQgYmUgbnVsbCcpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsICd3YWl0aW5nIHNob3VsZCBiZSBudWxsJyk7Cisg
ICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIGFmdGVyIHJlYWR5IHNob3VsZCBub3Qg
YmUgbnVsbCcpOworICAgICAgICAgIGFzc2VydF9pbl9hcnJheShyZWdpc3RyYXRpb24uYWN0aXZl
LnN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FjdGl2YXRpbmcnLCAnYWN0aXZh
dGVkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICcucmVhZHkgc2hvdWxkIGJlIHJlc29s
dmVkIHdoZW4gdGhlIHJlZ2lzdHJhdGlvbiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
J2hhcyBhbiBhY3RpdmUgd29ya2VyJyk7CisgICAgICAgfSk7CisgfSwgJ3JlYWR5IG9uIGFuIGlm
cmFtZSB3aG9zZSBwYXJlbnQgcmVnaXN0ZXJzIGEgbmV3IHNlcnZpY2Ugd29ya2VyJyk7CiAKLWFz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgeworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2
YXIgdXJsID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICAgIHZhciBzY29wZSA9ICdy
ZXNvdXJjZXMvcmVnaXN0ZXItaWZyYW1lLmh0bWwnOworICAgIHZhciBleHBlY3RlZF91cmwgPSBu
b3JtYWxpemVVUkwodXJsKTsKKworICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICBmLnJlbW92ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAg
cmV0dXJuIGYuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAg
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByZWdp
c3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ2luc3RhbGxpbmcgc2hvdWxkIGJlIG51bGwnKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLCAnd2FpdGluZyBzaG91bGQgYmUgbnVs
bCcpOworICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUsIG51
bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBhZnRlciByZWFkeSBzaG91
bGQgbm90IGJlIG51bGwnKTsKKyAgICAgICAgICBhc3NlcnRfaW5fYXJyYXkocmVnaXN0cmF0aW9u
LmFjdGl2ZS5zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgWydhY3RpdmF0aW5nJywg
J2FjdGl2YXRlZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnLnJlYWR5IHNob3VsZCBi
ZSByZXNvbHZlZCB3aXRoICJhY3RpdmUgd29ya2VyIicpOworICAgICAgIH0pOworIH0sICdyZWFk
eSBvbiBhbiBpZnJhbWUgdGhhdCBpbnN0YWxscyBhIG5ldyBzZXJ2aWNlIHdvcmtlcicpOworCitw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewogICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL2VtcHR5
LXdvcmtlci5qcyc7CiAgICAgdmFyIG1hdGNoZWRfc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0
bWw/cmVhZHktYWZ0ZXItbWF0Y2gnOwogICAgIHZhciBsb25nZXJfbWF0Y2hlZF9zY29wZSA9ICdy
ZXNvdXJjZXMvYmxhbmsuaHRtbD9yZWFkeS1hZnRlci1tYXRjaC1sb25nZXInOwogICAgIHZhciBm
cmFtZSwgcmVnaXN0cmF0aW9uOwogCi0gICAgUHJvbWlzZS5hbGwoW3NlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXIodCwgbWF0Y2hlZF9zY29wZSksCi0gICAgICAgICAgICAgICAgIHNlcnZpY2Vfd29y
a2VyX3VucmVnaXN0ZXIodCwgbG9uZ2VyX21hdGNoZWRfc2NvcGUpXSkKKyAgICByZXR1cm4gUHJv
bWlzZS5hbGwoW3NlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXIodCwgbWF0Y2hlZF9zY29wZSksCisg
ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyKHQsIGxvbmdl
cl9tYXRjaGVkX3Njb3BlKV0pCiAgICAgICAudGhlbihmdW5jdGlvbigpIHsKICAgICAgICAgICBy
ZXR1cm4gd2l0aF9pZnJhbWUobG9uZ2VyX21hdGNoZWRfc2NvcGUpOwogICAgICAgICB9KQogICAg
ICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgIGYucmVtb3ZlKCk7CisgICAgICAgICAgICB9KTsKICAgICAgICAg
ICBmcmFtZSA9IGY7CiAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKHVybCwge3Njb3BlOiBtYXRjaGVkX3Njb3BlfSk7CiAgICAgICAgIH0pCiAgICAgICAu
dGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgIHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jf
c3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0pCkBAIC0xMTIs
NyArMTkyLDEwIEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewogICAgICAgICAgIHJldHVybiBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKICAgICAgICAgICAgICAgdXJsLCB7c2Nv
cGU6IGxvbmdlcl9tYXRjaGVkX3Njb3BlfSk7CiAgICAgICAgIH0pCi0gICAgICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICBhZGRfY29tcGxl
dGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgci51bnJlZ2lzdGVyKCk7
CisgICAgICAgICAgICB9KTsKICAgICAgICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5u
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWFkeTsKICAgICAgICAgfSkKICAgICAgIC50aGVuKGZ1
bmN0aW9uKHIpIHsKQEAgLTEyMCwyNCArMjAzLDIxIEBAIGFzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgJ2xvbmdlciBtYXRjaGVkIHJlZ2lzdHJhdGlvbiBz
aG91bGQgYmUgcmV0dXJuZWQnKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRl
bnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwKICAgICAgICAgICAg
ICAgICAgICAgICAgIG51bGwsICdjb250cm9sbGVyIHNob3VsZCBiZSBudWxsJyk7Ci0gICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Ci0gICAgICAgIH0pCi0gICAgICAu
dGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgICBy
ZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBsb25nZXJfbWF0Y2hl
ZF9zY29wZSk7Ci0gICAgICAgIH0pCi0gICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0
KSk7CisgICAgICAgIH0pOwogICB9LCAncmVhZHkgYWZ0ZXIgYSBsb25nZXIgbWF0Y2hlZCByZWdp
c3RyYXRpb24gcmVnaXN0ZXJlZCcpOwogCi1hc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKK3Byb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvZW1wdHktd29y
a2VyLmpzJzsKICAgICB2YXIgbWF0Y2hlZF9zY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9y
ZWFkeS1hZnRlci1yZXNvbHZlJzsKICAgICB2YXIgbG9uZ2VyX21hdGNoZWRfc2NvcGUgPQogICAg
ICAgICAncmVzb3VyY2VzL2JsYW5rLmh0bWw/cmVhZHktYWZ0ZXItcmVzb2x2ZS1sb25nZXInOwog
ICAgIHZhciBmcmFtZSwgcmVnaXN0cmF0aW9uOwogCi0gICAgc2VydmljZV93b3JrZXJfdW5yZWdp
c3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBtYXRjaGVkX3Njb3BlKQorICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIG1hdGNoZWRfc2NvcGUp
CiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2Fs
bGJhY2soZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHIudW5yZWdpc3RlcigpOworICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKICAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CiAgICAgICAgIH0p
CkBAIC0xNDUsNiArMjI1LDkgQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAgICAg
cmV0dXJuIHdpdGhfaWZyYW1lKGxvbmdlcl9tYXRjaGVkX3Njb3BlKTsKICAgICAgICAgfSkKICAg
ICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICBmLnJlbW92ZSgpOworICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgZnJhbWUgPSBmOwogICAgICAgICAgIHJldHVybiBmLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVhZHk7CiAgICAgICAgIH0pCkBAIC0xNTQsMTkgKzIzNywxNSBAQCBh
c3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoCiAgICAgICAgICAgICAgIHVybCwge3Njb3BlOiBsb25nZXJfbWF0
Y2hlZF9zY29wZX0pOwogICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2so
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHIudW5yZWdpc3RlcigpOworICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgcmV0dXJuIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVhZHk7CiAgICAgICAgIH0pCiAgICAgICAudGhlbihmdW5jdGlvbihyKSB7CiAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyLnNjb3BlLCBub3JtYWxpemVVUkwobWF0Y2hlZF9zY29w
ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAncmVhZHkgc2hvdWxkIG9ubHkgYmUgcmVzb2x2
ZWQgb25jZScpOwotICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOwot
ICAgICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgZnJhbWUucmVt
b3ZlKCk7Ci0gICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2Rv
bmUodCwgbG9uZ2VyX21hdGNoZWRfc2NvcGUpOwotICAgICAgICB9KQotICAgICAgLmNhdGNoKHVu
cmVhY2hlZF9yZWplY3Rpb24odCkpOworICAgICAgICB9KTsKICAgfSwgJ2FjY2VzcyByZWFkeSBh
ZnRlciBpdCBoYXMgYmVlbiByZXNvbHZlZCcpOwotCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9uc2UuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2Vl
OWRiNDIxODY3MDNkZTk5ODQ2ZTczNTU2YzcyYzZkMjk3MzAwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy5odG1sCkBAIC0wLDAg
KzEsMTk4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogUmVkaXJl
Y3RlZCByZXNwb25zZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIFRlc3RzIHJlZGlyZWN0IGJlaGF2aW9yLiBJdCBjYWxs
cyBmZXRjaF9tZXRob2QodXJsLCBmZXRjaF9vcHRpb24pIGFuZCB0ZXN0cworLy8gdGhlIHJlc3Vs
dGluZyByZXNwb25zZSBhZ2FpbnN0IHRoZSBleHBlY3RlZCB2YWx1ZXMuIEl0IGFsc28gYWRkcyB0
aGUKKy8vIHJlc3BvbnNlIHRvIHxjYWNoZXwgYW5kIGNoZWNrcyB0aGUgY2FjaGVkIHJlc3BvbnNl
IG1hdGNoZXMgdGhlIGV4cGVjdGVkCisvLyB2YWx1ZXMuCisvLworLy8gfG9wdGlvbnN8OiBhIGRp
Y3Rpb25hcnkgb2YgcGFyYW1ldGVycyBmb3IgdGhlIHRlc3QKKy8vIHxvcHRpb25zLnVybHw6IHRo
ZSBVUkwgdG8gZmV0Y2gKKy8vIHxvcHRpb25zLmZldGNoX29wdGlvbnw6IHRoZSBvcHRpb25zIHBh
c3NlZCB0byB8ZmV0Y2hfbWV0aG9kfAorLy8gfG9wdGlvbnMuZmV0Y2hfbWV0aG9kfDogdGhlIG1l
dGhvZCB1c2VkIHRvIGZldGNoLiBVc2VmdWwgZm9yIHRlc3RpbmcgYW4KKy8vICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmcmFtZSdzIGZldGNoKCkgdnMuIHRoaXMgcGFnZSdzIGZldGNoKCkuCisv
LyB8b3B0aW9ucy5jYWNoZXw6IEEgQ2FjaGUgdG8gYWRkIHRoZSByZXNwb25zZSB0bworLy8gfG9w
dGlvbnMuZXhwZWN0ZWRfcmVkaXJlY3RlZHw6IFRoZSB2YWx1ZSBvZiByZXNwb25zZS5yZWRpcmVj
dGVkCitmdW5jdGlvbiByZWRpcmVjdGVkX3Rlc3Qob3B0aW9ucykgeworICByZXR1cm4gb3B0aW9u
cy5mZXRjaF9tZXRob2QuY2FsbChudWxsLCBvcHRpb25zLnVybCwgb3B0aW9ucy5mZXRjaF9vcHRp
b24pLnRoZW4ocmVzcG9uc2UgPT4geworICAgICAgICB2YXIgY2xvbmVkX3Jlc3BvbnNlID0gcmVz
cG9uc2UuY2xvbmUoKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIHJlc3Bv
bnNlLnJlZGlyZWN0ZWQsIG9wdGlvbnMuZXhwZWN0ZWRfcmVkaXJlY3RlZCwKKyAgICAgICAgICAg
ICdUaGUgcmVkaXJlY3RlZCBmbGFnIG9mIHJlc3BvbnNlIG11c3QgbWF0Y2guIFVSTDogJyArIG9w
dGlvbnMudXJsKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgIGNsb25lZF9y
ZXNwb25zZS5yZWRpcmVjdGVkLCBvcHRpb25zLmV4cGVjdGVkX3JlZGlyZWN0ZWQsCisgICAgICAg
ICAgICAnVGhlIHJlZGlyZWN0ZWQgZmxhZyBvZiBjbG9uZWQgcmVzcG9uc2UgbXVzdCBtYXRjaC4g
VVJMOiAnICsgb3B0aW9ucy51cmwpOworICAgICAgICByZXR1cm4gb3B0aW9ucy5jYWNoZS5wdXQo
b3B0aW9ucy51cmwsIHJlc3BvbnNlKTsKKyAgICAgIH0pCisgICAgLnRoZW4oXyA9PiBvcHRpb25z
LmNhY2hlLm1hdGNoKG9wdGlvbnMudXJsKSkKKyAgICAudGhlbihyZXNwb25zZSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UucmVkaXJlY3RlZCwgb3B0aW9ucy5leHBlY3RlZF9y
ZWRpcmVjdGVkLAorICAgICAgICAnVGhlIHJlZGlyZWN0ZWQgZmxhZyBvZiByZXNwb25zZSBpbiBD
YWNoZVN0b3JhZ2UgbXVzdCBtYXRjaC4gVVJMOiAnICsKKyAgICAgICAgb3B0aW9ucy51cmwpOwor
ICAgICAgfSk7Cit9CisKK3ZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Cit2YXIgUkVE
SVJFQ1RfVVJMID0gaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArCisgICAgICAgICAgICAgICAg
ICAgJy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5
P1JlZGlyZWN0PSc7Cit2YXIgVEFSR0VUX1VSTCA9IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10g
KworICAgICAgICAgICAgICAgICAnL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvc2ltcGxlLnR4dCc7Cit2YXIgUkVESVJFQ1RfVE9fVEFSR0VUX1VSTCA9IFJFRElSRUNU
X1VSTCArIGVuY29kZVVSSUNvbXBvbmVudChUQVJHRVRfVVJMKTsKK3ZhciBmcmFtZTsKK3ZhciBj
YWNoZTsKK3ZhciBzZXR1cDsKKworcHJvbWlzZV90ZXN0KHQgPT4geworICAgIHZhciBTQ09QRSA9
ICdyZXNvdXJjZXMvYmxhbmsuaHRtbD9yZWRpcmVjdGVkLXJlc3BvbnNlJzsKKyAgICB2YXIgU0NS
SVBUID0gJ3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtlci5qcyc7CisgICAgdmFyIENBQ0hF
X05BTUUgPSAnc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZGlyZWN0ZWQtcmVzcG9u
c2UnOworICAgIHNldHVwID0gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIo
dCwgU0NSSVBULCBTQ09QRSkKKyAgICAgIC50aGVuKHJlZ2lzdHJhdGlvbiA9PiB7CisgICAgICAg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByZXR1cm4gcmVnaXN0
cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIH0sICdyZXN0b3JlIGdsb2JhbCBzdGF0
ZSAoc2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uKScpOworCisgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihfID0+IHNlbGYuY2FjaGVzLm9wZW4oQ0FDSEVfTkFNRSkp
CisgICAgICAudGhlbihjID0+IHsKKyAgICAgICAgICBjYWNoZSA9IGM7CisKKyAgICAgICAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJldHVybiBzZWxmLmNhY2hl
cy5kZWxldGUoQ0FDSEVfTkFNRSk7CisgICAgICAgICAgICB9LCAncmVzdG9yZSBnbG9iYWwgc3Rh
dGUgKGNhY2hlcyknKTsKKworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShTQ09QRSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmID0+IHsKKyAgICAgICAgICBmcmFtZSA9IGY7CisKKyAg
ICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgZi5yZW1vdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIHJldHVy
biBzZXR1cDsKKyAgfSwgJ2luaXRpYWxpemUgZ2xvYmFsIHN0YXRlIChzZXJ2aWNlIHdvcmtlciBy
ZWdpc3RyYXRpb24gYW5kIGNhY2hlcyknKTsKKworLy8gPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBUZXN0cyBmb3IgcmVx
dWVzdHMgdGhhdCBhcmUgb3V0LW9mLXNjb3BlIG9mIHRoZSBzZXJ2aWNlIHdvcmtlci4KKy8vID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorcHJvbWlzZV90ZXN0KHQgPT4gc2V0dXAKKyAgLnRoZW4oKCkgPT4gcmVkaXJlY3RlZF90
ZXN0KHt1cmw6IFRBUkdFVF9VUkwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0
Y2hfb3B0aW9uOiB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaF9tZXRo
b2Q6IHNlbGYuZmV0Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGU6IGNh
Y2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZGlyZWN0ZWQ6
IGZhbHNlfSkpLAorICAnbW9kZTogImZvbGxvdyIsIG5vbi1pbnRlcmNlcHRlZCByZXF1ZXN0LCBu
byBzZXJ2ZXIgcmVkaXJlY3QnKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gc2V0dXAKKyAgLnRoZW4o
KCkgPT4gcmVkaXJlY3RlZF90ZXN0KHt1cmw6IFJFRElSRUNUX1RPX1RBUkdFVF9VUkwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hfb3B0aW9uOiB7fSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmZXRjaF9tZXRob2Q6IHNlbGYuZmV0Y2gsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FjaGU6IGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4cGVjdGVkX3JlZGlyZWN0ZWQ6IHRydWV9KSksCisgICdtb2RlOiAiZm9sbG93
Iiwgbm9uLWludGVyY2VwdGVkIHJlcXVlc3QnKTsKKworcHJvbWlzZV90ZXN0KHQgPT4gc2V0dXAK
KyAgLnRoZW4oKCkgPT4gcmVkaXJlY3RlZF90ZXN0KHt1cmw6IFJFRElSRUNUX1RPX1RBUkdFVF9V
UkwgKyAnJm1hbnVhbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0Y2hfb3B0
aW9uOiB7cmVkaXJlY3Q6ICdtYW51YWwnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmZXRjaF9tZXRob2Q6IHNlbGYuZmV0Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FjaGU6IGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3JlZGlyZWN0ZWQ6IGZhbHNlfSkpLAorICAnbW9kZTogIm1hbnVhbCIsIG5vbi1pbnRlcmNlcHRl
ZCByZXF1ZXN0Jyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHNldHVwCisgICAgLnRoZW4oKCkgPT4g
cHJvbWlzZV9yZWplY3RzKAorICAgICAgICAgICAgICAgICAgIHQsIG5ldyBUeXBlRXJyb3IoKSwK
KyAgICAgICAgICAgICAgICAgICBzZWxmLmZldGNoKFJFRElSRUNUX1RPX1RBUkdFVF9VUkwgKyAn
JmVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZWRpcmVjdDonZXJyb3In
fSksCisgICAgICAgICAgICAgICAgICAgJ1RoZSByZWRpcmVjdCByZXNwb25zZSBmcm9tIHRoZSBz
ZXJ2ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMnICsKKyAgICAgICAgICAgICAgICAgICAnIGFuIGVy
cm9yIHdoZW4gdGhlIHJlZGlyZWN0IGZsYWcgb2YgcmVxdWVzdCB3YXMgXCdlcnJvclwnLicpKSwK
KyAgJ21vZGU6ICJlcnJvciIsIG5vbi1pbnRlcmNlcHRlZCByZXF1ZXN0Jyk7CisKK3Byb21pc2Vf
dGVzdCh0ID0+IHNldHVwCisgICAgLnRoZW4oKCkgPT4gcmVkaXJlY3RlZF90ZXN0KHt1cmw6Jy4v
P3VybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KFRBUkdFVF9VUkwpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZldGNoX29wdGlvbjoge30sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmV0Y2hfbWV0aG9kOiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlOiBjYWNoZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF9yZWRpcmVjdGVkOiBmYWxzZX0pKSwKKyAgJ21vZGU6ICJm
b2xsb3ciLCBubyBtb2RlIGNoYW5nZSwgbm8gc2VydmVyIHJlZGlyZWN0Jyk7CisKKy8vID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRl
c3RzIGZvciByZXF1ZXN0cyB0aGF0IGFyZSBpbi1zY29wZSBvZiB0aGUgc2VydmljZSB3b3JrZXIu
IFRoZSBzZXJ2aWNlCisvLyB3b3JrZXIgcmV0dXJucyBhIHJlZGlyZWN0ZWQgcmVzcG9uc2UuCisv
LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Citwcm9taXNlX3Rlc3QodCA9PiBzZXR1cAorICAgIC50aGVuKCgpID0+IHJlZGlyZWN0ZWRfdGVz
dCh7dXJsOiAnLi8/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoUkVESVJFQ1RfVE9fVEFSR0VU
X1VSTCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyZvcmlnaW5h
bC1yZWRpcmVjdC1tb2RlPWZvbGxvdycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmZXRjaF9vcHRpb246IHtyZWRpcmVjdDogJ2ZvbGxvdyd9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmV0Y2hfbWV0aG9kOiBmcmFtZS5jb250ZW50V2luZG93LmZldGNoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGU6IGNhY2hlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVkaXJlY3RlZDogdHJ1ZX0pKSwKKyAg
J21vZGU6ICJmb2xsb3ciLCBubyBtb2RlIGNoYW5nZScpOworCitwcm9taXNlX3Rlc3QodCA9PiBz
ZXR1cAorICAgIC50aGVuKCgpID0+IHByb21pc2VfcmVqZWN0cygKKyAgICAgICAgICAgICAgICAg
ICB0LCBuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdp
bmRvdy5mZXRjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgJy4vP3VybD0nICsgZW5jb2RlVVJJ
Q29tcG9uZW50KFJFRElSRUNUX1RPX1RBUkdFVF9VUkwpICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgJyZvcmlnaW5hbC1yZWRpcmVjdC1tb2RlPWVycm9yJnJlZGlyZWN0LW1vZGU9Zm9sbG93JywK
KyAgICAgICAgICAgICAgICAgICAgICAge3JlZGlyZWN0OiAnZXJyb3InfSksCisgICAgICAgICAg
ICAgICAgICAgJ1RoZSByZWRpcmVjdGVkIHJlc3BvbnNlIGZyb20gdGhlIHNlcnZpY2Ugd29ya2Vy
IHNob3VsZCBiZSAnICsKKyAgICAgICAgICAgICAgICAgICAndHJlYXRlZCBhcyBhbiBlcnJvciB3
aGVuIHRoZSByZWRpcmVjdCBmbGFnIG9mIHJlcXVlc3Qgd2FzICcgKworICAgICAgICAgICAgICAg
ICAgICdcJ2Vycm9yXCcuJykpLAorICAnbW9kZTogImVycm9yIiwgbW9kZSBjaGFuZ2U6ICJmb2xs
b3ciJyk7CisKK3Byb21pc2VfdGVzdCh0ID0+IHNldHVwCisgICAgLnRoZW4oKCkgPT4gcHJvbWlz
ZV9yZWplY3RzKAorICAgICAgICAgICAgICAgICAgIHQsIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAg
ICAgICAgICAgICAgICBmcmFtZS5jb250ZW50V2luZG93LmZldGNoKAorICAgICAgICAgICAgICAg
ICAgICAgICAnLi8/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoUkVESVJFQ1RfVE9fVEFSR0VU
X1VSTCkgKworICAgICAgICAgICAgICAgICAgICAgICAnJm9yaWdpbmFsLXJlZGlyZWN0LW1vZGU9
bWFudWFsJnJlZGlyZWN0LW1vZGU9Zm9sbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAge3Jl
ZGlyZWN0OiAnbWFudWFsJ30pLAorICAgICAgICAgICAgICAgICAgICdUaGUgcmVkaXJlY3RlZCBy
ZXNwb25zZSBmcm9tIHRoZSBzZXJ2aWNlIHdvcmtlciBzaG91bGQgYmUgJyArCisgICAgICAgICAg
ICAgICAgICAgJ3RyZWF0ZWQgYXMgYW4gZXJyb3Igd2hlbiB0aGUgcmVkaXJlY3QgZmxhZyBvZiBy
ZXF1ZXN0IHdhcyAnICsKKyAgICAgICAgICAgICAgICAgICAnXCdtYW51YWxcJy4nKSksCisgICdt
b2RlOiAibWFudWFsIiwgbW9kZSBjaGFuZ2U6ICJmb2xsb3ciJyk7CisKKy8vID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy8vIFRlc3RzIGZv
ciByZXF1ZXN0cyB0aGF0IGFyZSBpbi1zY29wZSBvZiB0aGUgc2VydmljZSB3b3JrZXIuIFRoZSBz
ZXJ2aWNlCisvLyB3b3JrZXIgcmV0dXJucyBhbiBvcGFxdWVyZWRpcmVjdCByZXNwb25zZS4KKy8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
K3Byb21pc2VfdGVzdCh0ID0+IHNldHVwCisgICAgLnRoZW4oKCkgPT4gcHJvbWlzZV9yZWplY3Rz
KAorICAgICAgICAgICAgICAgICAgICB0LCBuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAg
ICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goCisgICAgICAgICAgICAgICAgICAgICAg
ICAnLi8/dXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQoUkVESVJFQ1RfVE9fVEFSR0VUX1VSTCkg
KworICAgICAgICAgICAgICAgICAgICAgICAgJyZvcmlnaW5hbC1yZWRpcmVjdC1tb2RlPWZvbGxv
dyZyZWRpcmVjdC1tb2RlPW1hbnVhbCcsCisgICAgICAgICAgICAgICAgICAgICAgICB7cmVkaXJl
Y3Q6ICdmb2xsb3cnfSksCisgICAgICAgICAgICAgICAgICAgICdUaGUgb3BhcXVlcmVkaXJlY3Qg
cmVzcG9uc2UgZnJvbSB0aGUgc2VydmljZSB3b3JrZXIgc2hvdWxkICcgKworICAgICAgICAgICAg
ICAgICAgICAnYmUgdHJlYXRlZCBhcyBhbiBlcnJvciB3aGVuIHRoZSByZWRpcmVjdCBmbGFnIG9m
IHJlcXVlc3Qgd2FzJyArCisgICAgICAgICAgICAgICAgICAgICcgXCdmb2xsb3dcJy4nKSksCisg
ICdtb2RlOiAiZm9sbG93IiwgbW9kZSBjaGFuZ2U6ICJyZWRpcmVjdCInKTsKKworcHJvbWlzZV90
ZXN0KHQgPT4gc2V0dXAKKyAgICAudGhlbigoKSA9PiBwcm9taXNlX3JlamVjdHMoCisgICAgICAg
ICAgICAgICAgICAgIHQsIG5ldyBUeXBlRXJyb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgZnJh
bWUuY29udGVudFdpbmRvdy5mZXRjaCgKKyAgICAgICAgICAgICAgICAgICAgICAgICcuLz91cmw9
JyArIGVuY29kZVVSSUNvbXBvbmVudChSRURJUkVDVF9UT19UQVJHRVRfVVJMKSArCisgICAgICAg
ICAgICAgICAgICAgICAgICAnJm9yaWdpbmFsLXJlZGlyZWN0LW1vZGU9ZXJyb3ImcmVkaXJlY3Qt
bW9kZT1tYW51YWwnLAorICAgICAgICAgICAgICAgICAgICAgICAge3JlZGlyZWN0OiAnZXJyb3In
fSksCisgICAgICAgICAgICAgICAgICAgICdUaGUgb3BhcXVlcmVkaXJlY3QgcmVzcG9uc2UgZnJv
bSB0aGUgc2VydmljZSB3b3JrZXIgc2hvdWxkICcgKworICAgICAgICAgICAgICAgICAgICAnYmUg
dHJlYXRlZCBhcyBhbiBlcnJvciB3aGVuIHRoZSByZWRpcmVjdCBmbGFnIG9mIHJlcXVlc3Qgd2Fz
JyArCisgICAgICAgICAgICAgICAgICAgICcgXCdlcnJvclwnLicpKSwKKyAgJ21vZGU6ICJlcnJv
ciIsIG1vZGUgY2hhbmdlOiAibWFudWFsIicpOworCitwcm9taXNlX3Rlc3QodCA9PiBzZXR1cAor
ICAgIC50aGVuKCgpID0+IHJlZGlyZWN0ZWRfdGVzdCh7dXJsOiAnLi8/dXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoUkVESVJFQ1RfVE9fVEFSR0VUX1VSTCkgKworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcmb3JpZ2luYWwtcmVkaXJlY3QtbW9kZT1tYW51YWwmcmVk
aXJlY3QtbW9kZT1tYW51YWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmV0
Y2hfb3B0aW9uOiB7cmVkaXJlY3Q6ICdtYW51YWwnfSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZldGNoX21ldGhvZDogZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlOiBjYWNoZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZGlyZWN0ZWQ6IGZhbHNlfSkpLAorICAnbW9k
ZTogIm1hbnVhbCIsIG5vIG1vZGUgY2hhbmdlJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3JlZmVyZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
ZmVyZXIuaHR0cHMuaHRtbAppbmRleCA5YjM1NjUzMjllY2NiMTMyMWJhNzA3MDExOTJiNjdkYjZk
ZjA4YTU4Li40M2ZjY2JhZDU2Y2Y0NTA0ZTllOWRkYTk3NDJjMWM4NjliYjBhNTU5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWZlcmVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVmZXJlci5odHRwcy5odG1sCkBAIC0yLDcgKzIsNyBAQAogPHRpdGxlPlNlcnZp
Y2UgV29ya2VyOiBjaGVjayByZWZlcmVyIG9mIGZldGNoKCk8L3RpdGxlPgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGFzeW5j
X3Rlc3QoZnVuY3Rpb24odCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJy
ZXItcG9saWN5LWhlYWRlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJyZXIt
cG9saWN5LWhlYWRlci5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZTkxZDQ3MmMwYWZmMzRhZjhi
YjUxOTUyZDE1ZGFmZmNmNjEzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWZlcnJlci1wb2xpY3ktaGVhZGVyLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IGNoZWNrIHJlZmVyZXIgb2YgZmV0
Y2goKSB3aXRoIFJlZmVycmVyIFBvbGljeTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3Byb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CisgICAgdmFyIFNDT1BFID0gJ3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lLmh0
bWwnOworICAgIHZhciBTQ1JJUFQgPSAncmVzb3VyY2VzL2ZldGNoLXJld3JpdGUtd29ya2VyLXJl
ZmVycmVyLXBvbGljeS5qcyc7CisgICAgdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsK
KyAgICB2YXIgYm9keSwgdW5yZWdpc3RlcjsKKworICAgIGJvZHkgPSBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBTQ1JJUFQsIFNDT1BFKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgdW5yZWdpc3RlciA9IHJlZ2lzdHJhdGlv
bi51bnJlZ2lzdGVyLmJpbmQocmVnaXN0cmF0aW9uKTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoU0NPUEUp
OyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICB2YXIgY2hhbm5l
bCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAg
ICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJlc29sdmU7CisgICAgICAgICAgICAg
IGZyYW1lLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2Uoe30sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hhbm5lbC5wb3J0
Ml0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihl
KSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLmRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOwor
ICAgICAgICB9KTsKKworICAgICAgLy8gU2NoZWR1bGUgdW4tcmVnaXN0cmF0aW9uIHRvIG9jY3Vy
IGFmdGVyIHRlc3QgZXhlY3V0aW9uIGhhcyBjb21wbGV0ZWQsCisgICAgICAvLyB3aXRob3V0IGhp
ZGluZyB0ZXN0IGZhaWx1cmUuCisgICAgICByZXR1cm4gYm9keQorICAgICAgICAudGhlbih1bnJl
Z2lzdGVyLCB1bnJlZ2lzdGVyKQorICAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIGJv
ZHk7IH0pOworICB9LCAnVmVyaWZ5IHRoZSByZWZlcmVyIHdpdGggYSBSZWZlcnJlciBQb2xpY3kn
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xv
c2VkLXdpbmRvdy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2Vk
LXdpbmRvdy5odHRwcy5odG1sCmluZGV4IDIyMTM1NjcxNjI1YTZhMWU0MGRmZWNiYTE3ZDcxMDVj
MGZjMjBjMjguLjljMWI2MzliYjc1N2QwMjk0OTc0NmQzZmE1ODRkYjhiYmYyODYwNjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWNsb3NlZC13aW5kb3cuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1jbG9zZWQtd2luZG93Lmh0dHBzLmh0
bWwKQEAgLTQsNyArNCw3IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXQtaG9zdC1pbmZvLnN1Yi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwv
c2NyaXB0PgogPGJvZHk+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVnaXN0ZXItZm9yZWlnbi1mZXRjaC1lcnJvcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3JlZ2lzdGVyLWZvcmVpZ24tZmV0Y2gtZXJyb3JzLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGVhZTA3NGRhZTgyMzNkMjdjNzE1MTRjZTYyMzI1YWUxZDZmNzQ1MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWZvcmVpZ24tZmV0Y2gtZXJyb3JzLmh0dHBz
Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2VydmljZV93b3JrZXJf
dGVzdCgncmVzb3VyY2VzL3JlZ2lzdGVyLWZvcmVpZ24tZmV0Y2gtZXJyb3JzLXdvcmtlci5qcycs
CisgICAgICAgICAgICAgICAgICAgICdmb3JlaWduIGZldGNoIHJlZ2lzdHJhdGlvbicpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1saW5rLWVsZW1l
bnQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWxpbmstZWxlbWVudC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0YTRhMTllYjYzMGUzMjA0ZDQyNmE4ZDc3YjQ0ZmMzYzIx
NjNmNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1saW5r
LWVsZW1lbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIHJlZ2lzdGVyVXNpbmdMaW5rKHNjcmlwdCwgb3B0aW9ucykgewor
ICB2YXIgc2NvcGUgPSBvcHRpb25zLnNjb3BlOworICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2xpbmsnKTsKKyAgbGluay5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdzZXJ2aWNld29y
a2VyJyk7CisgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgc2NyaXB0KTsKKyAgbGluay5zZXRB
dHRyaWJ1dGUoJ3Njb3BlJywgc2NvcGUpOworICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKGxpbmspOworICByZXR1cm4gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgIGxpbmsub25sb2FkID0gcmVzb2x2ZTsK
KyAgICAgICAgbGluay5vbmVycm9yID0gcmVqZWN0OworICAgICAgfSkKKyAgICAudGhlbigoKSA9
PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpKTsKK30KKwor
cmVnaXN0cmF0aW9uX3Rlc3RzKHJlZ2lzdGVyVXNpbmdMaW5rLCBmYWxzZSk7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItbGluay1oZWFkZXIuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWxpbmstaGVhZGVyLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGQ3MWM5Yjg5MmVhNGUxYzAyMmY2OTc2Nzk1ZjFlZTk3MzBjNmI5NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWxpbmstaGVhZGVy
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2Vy
dmljZSBXb3JrZXI6IFJlZ2lzdHJhdGlvbiB1c2luZyBMaW5rIGhlYWRlcjwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gZ2V0X25ld2VzdF93b3JrZXIocmVnaXN0cmF0aW9uKSB7CisgIGlmIChy
ZWdpc3RyYXRpb24uaW5zdGFsbGluZykKKyAgICByZXR1cm4gcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmc7CisgIGlmIChyZWdpc3RyYXRpb24ud2FpdGluZykKKyAgICByZXR1cm4gcmVnaXN0cmF0aW9u
LndhaXRpbmc7CisgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlKQorICAgIHJldHVybiByZWdpc3Ry
YXRpb24uYWN0aXZlOworfQorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBz
Y29wZSA9IG5vcm1hbGl6ZVVSTCgncmVzb3VyY2VzL2JsYW5rLmh0bWw/ZmV0Y2gnKTsKKyAgICB2
YXIgaGVhZGVyID0gJzxlbXB0eS13b3JrZXIuanM+OyByZWw9c2VydmljZXdvcmtlcjsgc2NvcGU9
IicgKyBzY29wZSArICciJzsKKyAgICB2YXIgcmVzb3VyY2UgPSAncmVzb3VyY2VzL2xpbmstaGVh
ZGVyLnB5P0xpbms9JyArCisgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChoZWFkZXIpOworICAg
IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSkKKyAgICAgIC50aGVuKGZyYW1lID0+CisgICAgICAg
ICAgUHJvbWlzZS5hbGwoW2ZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVhZHksCisgICAgICAgICAgICAgICAgICAgICAgZmV0Y2gocmVzb3VyY2UpXSkpCisgICAg
ICAudGhlbigoW3JlZ2lzdHJhdGlvbiwgcmVzcG9uc2VdKSA9PiB7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24uc2NvcGUsIHNjb3BlKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGdldF9uZXdlc3Rfd29ya2VyKHJlZ2lzdHJhdGlvbikuc2NyaXB0VVJMLAorICAgICAgICAg
ICAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJykp
OworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9
KTsKKyAgfSwgJ2ZldGNoIGNhbiB0cmlnZ2VyIHNlcnZpY2Ugd29ya2VyIGluc3RhbGxhdGlvbicp
OworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9IG5vcm1hbGl6
ZVVSTCgncmVzb3VyY2VzL2JsYW5rLmh0bWw/aWZyYW1lJyk7CisgICAgdmFyIGhlYWRlciA9ICc8
ZW1wdHktd29ya2VyLmpzPjsgcmVsPXNlcnZpY2V3b3JrZXI7IHNjb3BlPSInICsgc2NvcGUgKyAn
Iic7CisgICAgdmFyIHJlc291cmNlID0gJ3Jlc291cmNlcy9saW5rLWhlYWRlci5weT9MaW5rPScg
KworICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoaGVhZGVyKTsKKyAgICByZXR1cm4gd2l0aF9p
ZnJhbWUoc2NvcGUpCisgICAgICAudGhlbihmcmFtZSA9PgorICAgICAgICAgIFByb21pc2UuYWxs
KFtmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlYWR5LAorICAg
ICAgICAgICAgICAgICAgICAgICB3aXRoX2lmcmFtZShyZXNvdXJjZSldKSkKKyAgICAgIC50aGVu
KChbcmVnaXN0cmF0aW9uLCBmcmFtZV0pID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5zY29wZSwgc2NvcGUpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2V0X25l
d2VzdF93b3JrZXIocmVnaXN0cmF0aW9uKS5zY3JpcHRVUkwsCisgICAgICAgICAgICAgICAgICAg
ICAgICBub3JtYWxpemVVUkwoJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnKSk7CisgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pOworICB9LCAn
QW4gaWZyYW1lIGNhbiB0cmlnZ2VyIHNlcnZpY2Ugd29ya2VyIGluc3RhbGxhdGlvbicpOworCitw
cm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9IG5vcm1hbGl6ZVVSTCgn
cmVzb3VyY2VzL2JsYW5rLmh0bWw/Y3NzJyk7CisgICAgdmFyIGhlYWRlciA9ICc8ZW1wdHktd29y
a2VyLmpzPjsgcmVsPXNlcnZpY2V3b3JrZXI7IHNjb3BlPSInICsgc2NvcGUgKyAnIic7CisgICAg
dmFyIHJlc291cmNlID0gJ3Jlc291cmNlcy9saW5rLWhlYWRlci5weT9MaW5rPScgKworICAgICAg
ICBlbmNvZGVVUklDb21wb25lbnQoaGVhZGVyKTsKKyAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2Nv
cGUpCisgICAgICAudGhlbihmcmFtZSA9PiB7CisgICAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7CisgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3Jl
bCcsICdzdHlsZXNoZWV0Jyk7CisgICAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAn
dGV4dC9jc3MnKTsKKyAgICAgICAgICBsaW5rLnNldEF0dHJpYnV0ZSgnaHJlZicsIHJlc291cmNl
KTsKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFw
cGVuZENoaWxkKGxpbmspOworICAgICAgICAgIHJldHVybiBmcmFtZS5jb250ZW50V2luZG93Lm5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlYWR5OworICAgICAgICB9KQorICAgICAgLnRoZW4ocmVn
aXN0cmF0aW9uID0+IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5zY29w
ZSwgc2NvcGUpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZ2V0X25ld2VzdF93b3JrZXIocmVn
aXN0cmF0aW9uKS5zY3JpcHRVUkwsCisgICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVV
UkwoJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnKSk7CisgICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pOworICB9LCAnQSBzdHlsZXNoZWV0IGNh
biB0cmlnZ2VyIHNlcnZpY2Ugd29ya2VyIGluc3RhbGxhdGlvbicpOworCis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXNhbWUtc2NvcGUtZGlmZmVyZW50
LXNjcmlwdC11cmwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXNhbWUt
c2NvcGUtZGlmZmVyZW50LXNjcmlwdC11cmwuaHR0cHMuaHRtbAppbmRleCA0NDViZTc0MDk1MWIx
NmFhZWMzMDRlMTY3OWY1ODk4MWYzZTNkN2JhLi42ZWIwMGYzMDcxYTI2ZWQzZjU1YWM5MGNhMzJj
MWIzNzdhZWMyM2UxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3Rlci1zYW1l
LXNjb3BlLWRpZmZlcmVudC1zY3JpcHQtdXJsLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVnaXN0ZXItc2FtZS1zY29wZS1kaWZmZXJlbnQtc2NyaXB0LXVybC5odHRwcy5odG1s
CkBAIC04NCwxNyArODQsMTAgQEAgYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CiAgICAgICAudGhl
bihmdW5jdGlvbigpIHsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgJ29uIGluc3RhbGxlZCwgaW5z
dGFsbGluZyBzaG91bGQgYmUgbnVsbCcpOwotICAgICAgICAgIC8vIFNpbmNlIHRoZSByZWdpc3Ry
YXRpb24gaXMgbm90IGNvbnRyb2xsaW5nIGFueSBkb2N1bWVudCwgdGhlIG5ldwotICAgICAgICAg
IC8vIHdvcmtlciBjYW4gaW1tZWRpYXRlbHkgdHJhbnNpdGlvbiB0byBhY3RpdmUuCi0gICAgICAg
ICAgaWYgKHJlZ2lzdHJhdGlvbi53YWl0aW5nKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLnNjcmlwdFVSTCwgc2NyaXB0MiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ29uIGluc3RhbGxlZCwgdGhlIHNlY29uZCBzY3JpcHQgbWF5IHN0aWxsIGJl
IHdhaXRpbmcnKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2
ZS5zY3JpcHRVUkwsIHNjcmlwdDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdvbiBpbnN0
YWxsZWQsIHRoZSBmaXJzdCBzY3JpcHQgbWF5IGJlIGFjdGl2ZScpOwotICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0
VVJMLCBzY3JpcHQyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnb24gaW5zdGFsbGVkLCB0
aGUgc2Vjb25kIHNjcmlwdCBtYXkgYmUgYWN0aXZlJyk7Ci0gICAgICAgICAgfQorICAgICAgICAg
IGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcuc2NyaXB0VVJMLCBzY3JpcHQyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ29uIGluc3RhbGxlZCwgdGhlIHNlY29uZCBzY3JpcHQg
c2hvdWxkIGJlIHdhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi5hY3RpdmUuc2NyaXB0VVJMLCBzY3JpcHQxLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29u
IGluc3RhbGxlZCwgdGhlIGZpcnN0IHNjcmlwdCBzaG91bGQgYmUgYWN0aXZlJyk7CiAgICAgICAg
ICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CiAgICAgICAgIH0pCiAgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi1pZnJhbWUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1p
ZnJhbWUuaHR0cHMuaHRtbAppbmRleCBmYjYwYWZlODQ5NzViMWZhMjY4NjJlNTc3YzNlNmU1MTQz
OTExYjBlLi5kNmEyYzNiNTUxOTMzMGI0MDE0ZTFiNGIxOTM1Y2UzY2E4NDI3NjE0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24taWZyYW1lLmh0dHBzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLWlmcmFtZS5odHRwcy5odG1sCkBAIC01
LDE1ICs1LDE1IEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KLS8vIFNldCBzY3JpcHQgdXJsIGFuZCBzY29wZSB1cmwgcmVs
YXRpdmUgdG8gdGhlIGNhbGxpbmcgZnJhbWUncyBkb2N1bWVudCdzIHVybC4KLS8vIEFzc2VydCB0
aGUgaW1wbGVtZW50YXRpb24gcGFyc2VzIHRoZSB1cmxzIGFnYWluc3QgdGhlIGNhbGxpbmcgZnJh
bWUncwotLy8gZG9jdW1lbnQncyB1cmwuCisKKy8vIFNldCBzY3JpcHQgdXJsIGFuZCBzY29wZSB1
cmwgcmVsYXRpdmUgdG8gdGhlIGlmcmFtZSdzIGRvY3VtZW50J3MgdXJsLiBBc3NlcnQKKy8vIHRo
ZSBpbXBsZW1lbnRhdGlvbiBwYXJzZXMgdGhlIHVybHMgYWdhaW5zdCB0aGUgaWZyYW1lJ3MgZG9j
dW1lbnQncyB1cmwuCiBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgdmFyIHVybCA9ICdyZXNv
dXJjZXMvYmxhbmsuaHRtbCc7Ci0gIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvcmVnaXN0cmF0aW9u
LWZvci1pZnJhbWUtZnJvbS1jYWxsaW5nLWZyYW1lJzsKLSAgdmFyIHBhcnNlZF9zY29wZSA9IG5v
cm1hbGl6ZVVSTChzY29wZSk7Ci0gIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtl
ci5qcyc7Ci0gIHZhciBwYXJzZWRfc2NyaXB0ID0gbm9ybWFsaXplVVJMKHNjcmlwdCk7CisgIGNv
bnN0IHVybCA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7CisgIGNvbnN0IGlmcmFtZV9zY29wZSA9
ICdyZWdpc3RyYXRpb24td2l0aC12YWxpZC1zY29wZSc7CisgIGNvbnN0IHNjb3BlID0gbm9ybWFs
aXplVVJMKCdyZXNvdXJjZXMvJyArIGlmcmFtZV9zY29wZSk7CisgIGNvbnN0IGlmcmFtZV9zY3Jp
cHQgPSAnZW1wdHktd29ya2VyLmpzJzsKKyAgY29uc3Qgc2NyaXB0ID0gbm9ybWFsaXplVVJMKCdy
ZXNvdXJjZXMvJyArIGlmcmFtZV9zY3JpcHQpOwogICB2YXIgZnJhbWU7CiAgIHZhciByZWdpc3Ry
YXRpb247CiAKQEAgLTIyLDM2ICsyMiwzNyBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAudGhlbihmdW5jdGlvbihmKSB7CiAgICAgICAgIGZyYW1lID0gZjsKICAgICAgICAgcmV0dXJu
IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoCi0g
ICAgICAgICAgICBzY3JpcHQsCi0gICAgICAgICAgICB7IHNjb3BlOiBzY29wZSB9KTsKKyAgICAg
ICAgICAgIGlmcmFtZV9zY3JpcHQsCisgICAgICAgICAgICB7IHNjb3BlOiBpZnJhbWVfc2NvcGUg
fSk7CiAgICAgICB9KQogICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKICAgICAgICAgcmVnaXN0cmF0
aW9uID0gcjsKICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOwogICAgICAgfSkKICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAg
YXNzZXJ0X2VxdWFscygKLSAgICAgICAgICByZWdpc3RyYXRpb24uc2NvcGUsIHBhcnNlZF9zY29w
ZSwKLSAgICAgICAgICAncmVnaXN0cmF0aW9uXCdzIHNjb3BlIG11c3QgYmUgdGhlIHNjb3BlIHBh
cnNlZCBhZ2FpbnN0IGNhbGxpbmcgJyArCi0gICAgICAgICAgJ2RvY3VtZW50XCdzIHVybCcpOwot
ICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgIHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2Ny
aXB0VVJMLCBwYXJzZWRfc2NyaXB0LAotICAgICAgICAgICd3b3JrZXJcJ3Mgc2NyaXB0IG11c3Qg
YmUgdGhlIHVybCBwYXJzZWQgYWdhaW5zdCBjYWxsaW5nICcgKwotICAgICAgICAgICdkb2N1bWVu
dFwncyB1cmwnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uc2NvcGUsIHNj
b3BlLAorICAgICAgICAgICAgICAgICAgICAgICdyZWdpc3RyYXRpb25cJ3Mgc2NvcGUgbXVzdCBi
ZSBwYXJzZWQgYWdhaW5zdCB0aGUgJyArCisgICAgICAgICAgICAgICAgICAgICAgJyJyZWxldmFu
dCBnbG9iYWwgb2JqZWN0IicpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5h
Y3RpdmUuc2NyaXB0VVJMLCBzY3JpcHQsCisgICAgICAgICAgICAgICAgICAgICAgJ3dvcmtlclwn
cyBzY3JpcHRVUkwgbXVzdCBiZSBwYXJzZWQgYWdhaW5zdCB0aGUgJyArCisgICAgICAgICAgICAg
ICAgICAgICAgJyJyZWxldmFudCBnbG9iYWwgb2JqZWN0IicpOworICAgICAgICByZXR1cm4gcmVn
aXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgIH0pCisgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CiAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwotICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIHQuZG9uZSgpOwogICAgICAg
fSkKICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Ci0gIH0sICdTdWJmcmFtZVwn
cyBjb250YWluZXJcJ3MgcmVnaXN0ZXIgbWV0aG9kIHNob3VsZCB1c2UgY2FsbGluZyBmcmFtZVwn
cyAnICsKLSAgICAgJ2RvY3VtZW50XCdzIHVybCBhcyBhIGJhc2UgdXJsIGZvciBwYXJzaW5nIGl0
cyBzY3JpcHQgdXJsIGFuZCBzY29wZSB1cmwgJyArCi0gICAgICctIG5vcm1hbCBjYXNlJyk7Cisg
IH0sICdyZWdpc3RlciBtZXRob2Qgc2hvdWxkIHVzZSB0aGUgInJlbGV2YW50IGdsb2JhbCBvYmpl
Y3QiIHRvIHBhcnNlIGl0cyAnICsKKyAgICAgJ3NjcmlwdFVSTCBhbmQgc2NvcGUgLSBub3JtYWwg
Y2FzZScpOwogCi0vLyBTZXQgc2NyaXB0IHVybCBhbmQgc2NvcGUgdXJsIHJlbGF0aXZlIHRvIHRo
ZSBpZnJhbWUncyBkb2N1bWVudCdzIHVybC4KLS8vIEFzc2VydCB0aGUgaW1wbGVtZW50YXRpb24g
dGhyb3dzIGEgTmV0d29ya0Vycm9yIGV4Y2VwdGlvbi4KKy8vIFNldCBzY3JpcHQgdXJsIGFuZCBz
Y29wZSB1cmwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBmcmFtZSdzIGRvY3VtZW50J3MgdXJsLgor
Ly8gQXNzZXJ0IHRoZSBpbXBsZW1lbnRhdGlvbiB0aHJvd3MgYSBUeXBlRXJyb3IgZXhjZXB0aW9u
LgogYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7Ci0gIHZhciB1cmwgPSAncmVzb3VyY2VzL2JsYW5r
Lmh0bWwnOwotICB2YXIgc2NvcGUgPSAncmVnaXN0cmF0aW9uLWZvci1pZnJhbWUtZnJvbS1jYWxs
aW5nLWZyYW1lJzsKLSAgdmFyIHNjcmlwdCA9ICdlbXB0eS13b3JrZXIuanMnOworICBjb25zdCB1
cmwgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWwnOworICBjb25zdCBpZnJhbWVfc2NvcGUgPSAncmVz
b3VyY2VzL3JlZ2lzdHJhdGlvbi13aXRoLXNjb3BlLXRvLW5vbi1leGlzdGluZy11cmwnOworICBj
b25zdCBzY29wZSA9IG5vcm1hbGl6ZVVSTCgncmVzb3VyY2VzLycgKyBpZnJhbWVfc2NvcGUpOwor
ICBjb25zdCBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CiAgIHZhciBmcmFt
ZTsKICAgdmFyIHJlZ2lzdHJhdGlvbjsKIApAQCAtNjEsMjggKzYyLDMwIEBAIGFzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgewogICAgICAgICBmcmFtZSA9IGY7CiAgICAgICAgIHJldHVybiBmcmFtZS5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKAogICAgICAgICAg
ICAgc2NyaXB0LAotICAgICAgICAgICAgeyBzY29wZTogc2NvcGUgfSk7CisgICAgICAgICAgICB7
IHNjb3BlOiBpZnJhbWVfc2NvcGUgfSk7CiAgICAgICB9KQogICAgIC50aGVuKAogICAgICAgZnVu
Y3Rpb24oKSB7CiAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ3JlZ2lzdGVyKCkgc2hvdWxkIHJl
amVjdCcpOwogICAgICAgfSwKICAgICAgIGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLm5hbWUsICdUeXBlRXJyb3InKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUs
ICdUeXBlRXJyb3InLAorICAgICAgICAgICAgICAgICAgICAgICdyZWdpc3RlciBtZXRob2Qgd2l0
aCBzY3JpcHRVUkwgYW5kIHNjb3BlIHBhcnNlZCB0byAnICsKKyAgICAgICAgICAgICAgICAgICAg
ICAnbm9uZXhpc3RlbnQgbG9jYXRpb24gc2hvdWxkIHJlamVjdCB3aXRoIFR5cGVFcnJvcicpOwog
ICAgICAgICBmcmFtZS5yZW1vdmUoKTsKLSAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3Vu
cmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB0LmRvbmUoKTsKICAgICAgIH0p
CiAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwotICB9LCAnU3ViZnJhbWVcJ3Mg
Y29udGFpbmVyXCdzIHJlZ2lzdGVyIG1ldGhvZCBzaG91bGQgdXNlIGNhbGxpbmcgZnJhbWVcJ3Mg
JyArCi0gICAgICdkb2N1bWVudFwncyB1cmwgYXMgYSBiYXNlIHVybCBmb3IgcGFyc2luZyBpdHMg
c2NyaXB0IHVybCBhbmQgc2NvcGUgdXJsICcgKwotICAgICAnLSBlcnJvciBjYXNlJyk7CisgIH0s
ICdyZWdpc3RlciBtZXRob2Qgc2hvdWxkIHVzZSB0aGUgInJlbGV2YW50IGdsb2JhbCBvYmplY3Qi
IHRvIHBhcnNlIGl0cyAnICsKKyAgICAgJ3NjcmlwdFVSTCBhbmQgc2NvcGUgLSBlcnJvciBjYXNl
Jyk7CiAKLS8vIFNldCB0aGUgc2NvcGUgdXJsIHRvIGEgbm9uLXN1YmRpcmVjdG9yeSBvZiB0aGUg
c2NyaXB0IHVybC4KLS8vIEFzc2VydCB0aGUgaW1wbGVtZW50YXRpb24gdGhyb3dzIGEgU2VjdXJp
dHlFcnJvciBleGNlcHRpb24uCisvLyBTZXQgdGhlIHNjb3BlIHVybCB0byBhIG5vbi1zdWJkaXJl
Y3Rvcnkgb2YgdGhlIHNjcmlwdCB1cmwuIEFzc2VydCB0aGUKKy8vIGltcGxlbWVudGF0aW9uIHRo
cm93cyBhIFNlY3VyaXR5RXJyb3IgZXhjZXB0aW9uLgogYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
Ci0gIHZhciB1cmwgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWwnOwotICB2YXIgc2NvcGUgPSAncmVn
aXN0cmF0aW9uLWZvci1pZnJhbWUtZnJvbS1jYWxsaW5nLWZyYW1lJzsKLSAgdmFyIHNjcmlwdCA9
ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgY29uc3QgdXJsID0gJ3Jlc291cmNlcy9i
bGFuay5odG1sJzsKKyAgY29uc3Qgc2NvcGUgPSAncmVnaXN0cmF0aW9uLXdpdGgtZGlzYWxsb3dl
ZC1zY29wZSc7CisgIGNvbnN0IGlmcmFtZV9zY29wZSA9ICcuLi8nICsgc2NvcGU7CisgIGNvbnN0
IHNjcmlwdCA9ICdlbXB0eS13b3JrZXIuanMnOwogICB2YXIgZnJhbWU7CiAgIHZhciByZWdpc3Ry
YXRpb247CiAKQEAgLTkyLDE3ICs5NSwyMCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKICAg
ICAgICAgZnJhbWUgPSBmOwogICAgICAgICByZXR1cm4gZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigKICAgICAgICAgICAgIHNjcmlwdCwKLSAgICAg
ICAgICAgIHsgc2NvcGU6IHNjb3BlIH0pOworICAgICAgICAgICAgeyBzY29wZTogaWZyYW1lX3Nj
b3BlIH0pOwogICAgICAgfSkKICAgICAudGhlbigKICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKCdyZWdpc3RlcigpIHNob3VsZCByZWplY3QnKTsKICAgICAgIH0s
CiAgICAgICBmdW5jdGlvbihlKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAnU2Vj
dXJpdHlFcnJvcicpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgJ1NlY3VyaXR5RXJy
b3InLAorICAgICAgICAgICAgICAgICAgICAgICdUaGUgc2NvcGUgc2V0IHRvIGEgbm9uLXN1YmRp
cmVjdG9yeSBvZiB0aGUgc2NyaXB0VVJMICcgKworICAgICAgICAgICAgICAgICAgICAgICdzaG91
bGQgcmVqZWN0IHdpdGggU2VjdXJpdHlFcnJvcicpOwogICAgICAgICBmcmFtZS5yZW1vdmUoKTsK
LSAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2Nv
cGUpOworICAgICAgICB0LmRvbmUoKTsKICAgICAgIH0pCiAgICAgLmNhdGNoKHVucmVhY2hlZF9y
ZWplY3Rpb24odCkpOwogICB9LCAnQSBzY29wZSB1cmwgc2hvdWxkIHN0YXJ0IHdpdGggdGhlIGdp
dmVuIHNjcmlwdCB1cmwnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVnaXN0cmF0aW9uLXNlcnZpY2Utd29ya2VyLWF0dHJpYnV0ZXMu
aHR0cHMuaHRtbAppbmRleCBhMGRlYTU0MjhkYjE0MWM2YzcwNjg4YjcwNWViZTYwYzg1ZDBhNTRk
Li44ZmQ1NjZkYWRjNjJhNzhlZjA4MzZiYmM2MzAwMDQ3M2Y4ODRkN2M3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWdpc3RyYXRpb24tc2VydmljZS13b3JrZXItYXR0cmlidXRlcy5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi1zZXJ2aWNlLXdv
cmtlci1hdHRyaWJ1dGVzLmh0dHBzLmh0bWwKQEAgLTMsMTQgKzMsMjEgQEAKIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotYXN5
bmNfdGVzdChmdW5jdGlvbih0KSB7CisndXNlIHN0cmljdCc7Citwcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewogICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvaW5zdGFsbGluZy13YWl0
aW5nLWFjdGl2ZS1hZnRlci1yZWdpc3RyYXRpb24nOwogICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jl
c291cmNlcy9lbXB0eS13b3JrZXIuanMnOwogICAgIHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxp
emVVUkwod29ya2VyX3VybCk7CisgICAgdmFyIG5ld2VzdF93b3JrZXI7CisgICAgdmFyIHJlZ2lz
dHJhdGlvbjsKIAotICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQs
IHdvcmtlcl91cmwsIHNjb3BlKQorICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKICAgICAgIC50aGVuKGZ1bmN0aW9u
KHIpIHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICByLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgIHJlZ2lzdHJhdGlv
biA9IHI7CisgICAgICAgICAgbmV3ZXN0X3dvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
OwogICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0
VVJMLCBleHBlY3RlZF91cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyBi
ZWZvcmUgdXBkYXRlZm91bmQnKTsKICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlv
bi53YWl0aW5nLCBudWxsLApAQCAtMTksOCArMjYsOCBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgYmVmb3JlIHVwZGF0ZWZvdW5kJyk7
CiAgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pOwogICAg
ICAgICB9KQotICAgICAgLnRoZW4oZnVuY3Rpb24od29ya2VyKSB7Ci0gICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0
cmF0aW9uLmluc3RhbGxpbmcsIG5ld2VzdF93b3JrZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAnaW5zdGFsbGluZyBhZnRlciB1cGRhdGVmb3VuZCcpOwogICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAn
d2FpdGluZyBhZnRlciB1cGRhdGVmb3VuZCcpOwpAQCAtMzEsMjIgKzM4LDE5IEBAIGFzeW5jX3Rl
c3QoZnVuY3Rpb24odCkgewogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICdpbnN0YWxsaW5nIGFmdGVyIGluc3RhbGxlZCcpOwotICAgICAgICAgIHZhciBu
ZXdlc3QgPSByZWdpc3RyYXRpb24ud2FpdGluZyB8fCByZWdpc3RyYXRpb24uYWN0aXZlOwotICAg
ICAgICAgIGFzc2VydF9lcXVhbHMobmV3ZXN0LnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAg
ICAgICAgICAgICAgICAgICAgICAgJ3dhaXRpbmcgb3IgYWN0aXZlIGFmdGVyIGluc3RhbGxlZCcp
OwotICAgICAgICAgIGlmIChyZWdpc3RyYXRpb24ud2FpdGluZykgewotICAgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi53YWl0aW5nLCAnYWN0aXZhdGVkJykK
LSAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyBhZnRlciBhY3RpdmF0ZWQnKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVs
bCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBhZnRlciBhY3Rp
dmF0ZWQnKTsKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24u
YWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdhY3RpdmUgYWZ0ZXIgYWN0aXZhdGVkJyk7Ci0gICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgfQorICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRp
bmcsIG5ld2VzdF93b3JrZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBhZnRl
ciBpbnN0YWxsZWQnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3Rp
dmUsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIGFmdGVyIGluc3RhbGxl
ZCcpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24ud2Fp
dGluZywgJ2FjdGl2YXRlZCcpOwogICAgICAgICB9KQogICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxsaW5nIGFmdGVyIGFjdGl2YXRlZCcpOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBhZnRlciBhY3RpdmF0ZWQnKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUsIG5ld2VzdF93b3JrZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIGFmdGVyIGFjdGl2YXRlZCcpOwogICAgICAgICAg
IHJldHVybiBQcm9taXNlLmFsbChbCiAgICAgICAgICAgICAgIHdhaXRfZm9yX3N0YXRlKHQsIHJl
Z2lzdHJhdGlvbi5hY3RpdmUsICdyZWR1bmRhbnQnKSwKICAgICAgICAgICAgICAgcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKQpAQCAtNjMsOCArNjcsNiBAQCBhc3luY190ZXN0KGZ1bmN0aW9uKHQp
IHsKICAgICAgICAgICAvLyByZXNvbHZlZCwgdGhpcyB3aWxsIGJlIGdvbmUuCiAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLCBudWxsLAogICAgICAgICAgICAgICAg
ICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgYmUgbnVsbCBhZnRlciByZWR1bmRhbnQnKTsKLSAgICAg
ICAgICB0LmRvbmUoKTsKLSAgICAgICAgfSkKLSAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0
aW9uKHQpKTsKKyAgICAgICAgfSk7CiAgIH0sICdpbnN0YWxsaW5nL3dhaXRpbmcvYWN0aXZlIGFm
dGVyIHJlZ2lzdHJhdGlvbicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJh
dGlvbi5odHRwcy5odG1sCmluZGV4IGFlOWY4NWZiMjdjNWU5ZmE3YjRlODlkM2E5ZjI1MTg0Mjll
MzQyYzMuLjU4N2NhYzJmZTRhZTk4MzAwZGEwOTA2ZjQ3Mzg2N2Q1MDYwMGVmYjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0xLDM2OCArMSw5IEBACiA8
IURPQ1RZUEUgaHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogUmVnaXN0cmF0aW9uPC90aXRs
ZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jl
c291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3Vy
Y2VzL3JlZ2lzdHJhdGlvbi9ub3JtYWwnOwotICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9KQotICAgICAgLnRoZW4oZnVuY3Rp
b24ocmVnaXN0cmF0aW9uKSB7Ci0gICAgICAgICAgYXNzZXJ0X3RydWUocmVnaXN0cmF0aW9uIGlu
c3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICAnU3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQuJyk7Ci0gICAgICAgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7Ci0gICAgICAgIH0pCi0gIH0sICdSZWdpc3Rl
cmluZyBub3JtYWwgc2NvcGUnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2
YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKLSAgICB2YXIg
c2NvcGUgPSAncmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi9zY29wZS13aXRoLWZyYWdtZW50I3JlZic7
Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Nj
b3BlOiBzY29wZX0pCi0gICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAg
ICAgICBhc3NlcnRfdHJ1ZSgKLSAgICAgICAgICAgIHJlZ2lzdHJhdGlvbiBpbnN0YW5jZW9mIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24sCi0gICAgICAgICAgICAnU3VjY2Vzc2Z1bGx5IHJlZ2lz
dGVyZWQuJyk7Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlZ2lzdHJh
dGlvbi5zY29wZSwKLSAgICAgICAgICAgIG5vcm1hbGl6ZVVSTCgncmVzb3VyY2VzL3JlZ2lzdHJh
dGlvbi9zY29wZS13aXRoLWZyYWdtZW50JyksCi0gICAgICAgICAgICAnQSBmcmFnbWVudCBzaG91
bGQgYmUgcmVtb3ZlZCBmcm9tIHNjb3BlJykKLSAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKLSAgICAgICAgfSkKLSAgfSwgJ1JlZ2lzdGVyaW5n
IHNjb3BlIHdpdGggZnJhZ21lbnQnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAg
ICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKLSAgICB2
YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pCi0gICAgICAudGhlbihmdW5jdGlv
bihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICBhc3NlcnRfdHJ1ZShyZWdpc3RyYXRpb24gaW5z
dGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLAotICAgICAgICAgICAgICAgICAgICAg
ICdTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC4nKTsKLSAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKLSAgICAgICAgfSkKLSAgfSwgJ1JlZ2lzdGVy
aW5nIHNhbWUgc2NvcGUgYXMgdGhlIHNjcmlwdCBkaXJlY3RvcnknKTsKLQotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9yZWdpc3RyYXRpb24t
d29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzJzsKLSAgICByZXR1cm4gYXNz
ZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCi0gICAgICAgICdTZWN1cml0eUVycm9yJywK
LSAgICAgICAgJ1JlZ2lzdGVyaW5nIHNhbWUgc2NvcGUgYXMgdGhlIHNjcmlwdCBkaXJlY3Rvcnkg
d2l0aG91dCB0aGUgbGFzdCAnICsKLSAgICAgICAgICAgICdzbGFzaCBzaG91bGQgZmFpbCB3aXRo
IFNlY3VyaXR5RXJyb3IuJyk7Ci0gIH0sICdSZWdpc3RlcmluZyBzYW1lIHNjb3BlIGFzIHRoZSBz
Y3JpcHQgZGlyZWN0b3J5IHdpdGhvdXQgdGhlIGxhc3Qgc2xhc2gnKTsKLQotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9yZWdpc3RyYXRpb24t
d29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAnZGlmZmVyZW50LWRpcmVjdG9yeS8nOwotICAg
IHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAgICBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKLSAgICAgICAgJ1NlY3Vy
aXR5RXJyb3InLAotICAgICAgICAnUmVnaXN0cmF0aW9uIHNjb3BlIG91dHNpZGUgdGhlIHNjcmlw
dCBkaXJlY3Rvcnkgc2hvdWxkIGZhaWwgJyArCi0gICAgICAgICAgICAnd2l0aCBTZWN1cml0eUVy
cm9yLicpOwotICB9LCAnUmVnaXN0cmF0aW9uIHNjb3BlIG91dHNpZGUgdGhlIHNjcmlwdCBkaXJl
Y3RvcnknKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0g
J3Jlc291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAnaHR0
cDovL2V4YW1wbGUuY29tLyc7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0g
ICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBz
Y29wZX0pLAotICAgICAgICAnU2VjdXJpdHlFcnJvcicsCi0gICAgICAgICdSZWdpc3RyYXRpb24g
c2NvcGUgb3V0c2lkZSBkb21haW4gc2hvdWxkIGZhaWwgd2l0aCBTZWN1cml0eUVycm9yLicpOwot
ICB9LCAnUmVnaXN0ZXJpbmcgc2NvcGUgb3V0c2lkZSBkb21haW4nKTsKLQotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ2h0dHA6Ly9leGFtcGxlLmNvbS93b3Jr
ZXIuanMnOwotICAgIHZhciBzY29wZSA9ICdodHRwOi8vZXhhbXBsZS5jb20vc2NvcGUvJzsKLSAg
ICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCi0gICAgICAgICdTZWN1
cml0eUVycm9yJywKLSAgICAgICAgJ1JlZ2lzdHJhdGlvbiBzY3JpcHQgb3V0c2lkZSBkb21haW4g
c2hvdWxkIGZhaWwgd2l0aCBTZWN1cml0eUVycm9yLicpOwotICB9LCAnUmVnaXN0ZXJpbmcgc2Ny
aXB0IG91dHNpZGUgZG9tYWluJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAg
dmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvbm8tc3VjaC13b3JrZXIuanMnOwotICAgIHZhciBzY29w
ZSA9ICdyZXNvdXJjZXMvc2NvcGUvbm8tc3VjaC13b3JrZXInOwotICAgIHJldHVybiBhc3NlcnRf
cHJvbWlzZV9yZWplY3RzKAotICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cihzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKLSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAg
ICAgICAnUmVnaXN0cmF0aW9uIG9mIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7
Ci0gIH0sICdSZWdpc3RlcmluZyBub24tZXhpc3RlbnQgc2NyaXB0Jyk7Ci0KLXByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvaW52YWxpZC1jaHVu
a2VkLWVuY29kaW5nLnB5JzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2ludmFs
aWQtY2h1bmtlZC1lbmNvZGluZy8nOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3Rz
KAotICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29w
ZTogc2NvcGV9KSwKLSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAnUmVnaXN0cmF0
aW9uIG9mIGludmFsaWQgY2h1bmtlZCBlbmNvZGluZyBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7Ci0g
IH0sICdSZWdpc3RlcmluZyBpbnZhbGlkIGNodW5rZWQgZW5jb2Rpbmcgc2NyaXB0Jyk7Ci0KLXBy
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvaW52
YWxpZC1jaHVua2VkLWVuY29kaW5nLXdpdGgtZmx1c2gucHknOwotICAgIHZhciBzY29wZSA9ICdy
ZXNvdXJjZXMvc2NvcGUvaW52YWxpZC1jaHVua2VkLWVuY29kaW5nLXdpdGgtZmx1c2gvJzsKLSAg
ICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCi0gICAgICAgIG5ldyBU
eXBlRXJyb3IoKSwKLSAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBpbnZhbGlkIGNodW5rZWQgZW5j
b2Rpbmcgc2NyaXB0IHNob3VsZCBmYWlsLicpOwotICB9LCAnUmVnaXN0ZXJpbmcgaW52YWxpZCBj
aHVua2VkIGVuY29kaW5nIHNjcmlwdCB3aXRoIGZsdXNoJyk7Ci0KLXByb21pc2VfdGVzdChmdW5j
dGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvbWltZS10eXBlLXdvcmtlci5w
eSc7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9uby1taW1lLXR5cGUtd29ya2Vy
Lyc7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAgIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAotICAgICAg
ICAnU2VjdXJpdHlFcnJvcicsCi0gICAgICAgICdSZWdpc3RyYXRpb24gb2Ygbm8gTUlNRSB0eXBl
IHNjcmlwdCBzaG91bGQgZmFpbC4nKTsKLSAgfSwgJ1JlZ2lzdGVyaW5nIHNjcmlwdCB3aXRoIG5v
IE1JTUUgdHlwZScpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzY3Jp
cHQgPSAncmVzb3VyY2VzL21pbWUtdHlwZS13b3JrZXIucHk/bWltZT10ZXh0L3BsYWluJzsKLSAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2JhZC1taW1lLXR5cGUtd29ya2VyLyc7Ci0g
ICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAgIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAotICAgICAgICAnU2Vj
dXJpdHlFcnJvcicsCi0gICAgICAgICdSZWdpc3RyYXRpb24gb2YgcGxhaW4gdGV4dCBzY3JpcHQg
c2hvdWxkIGZhaWwuJyk7Ci0gIH0sICdSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBiYWQgTUlNRSB0
eXBlJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9ICdy
ZXNvdXJjZXMvcmVkaXJlY3QucHk/UmVkaXJlY3Q9JyArCi0gICAgICAgICAgICAgICAgICBlbmNv
ZGVVUklDb21wb25lbnQoJy9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXdvcmtlci5qcycpOwotICAg
IHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvcmVkaXJlY3QvJzsKLSAgICByZXR1cm4gYXNz
ZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCi0gICAgICAgICdTZWN1cml0eUVycm9yJywK
LSAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiByZWRpcmVjdGVkIHNjcmlwdCBzaG91bGQgZmFpbC4n
KTsKLSAgfSwgJ1JlZ2lzdGVyaW5nIHJlZGlyZWN0ZWQgc2NyaXB0Jyk7Ci0KLXByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvbWFsZm9ybWVkLXdv
cmtlci5weT9wYXJzZS1lcnJvcic7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9w
YXJzZS1lcnJvcic7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAg
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0p
LAotICAgICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICdSZWdpc3RyYXRpb24gb2Ygc2Ny
aXB0IGluY2x1ZGluZyBwYXJzZSBlcnJvciBzaG91bGQgZmFpbC4nKTsKLSAgfSwgJ1JlZ2lzdGVy
aW5nIHNjcmlwdCBpbmNsdWRpbmcgcGFyc2UgZXJyb3InKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5
P3VuZGVmaW5lZC1lcnJvcic7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bmRl
ZmluZWQtZXJyb3InOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAg
ICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9
KSwKLSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAnUmVnaXN0cmF0aW9uIG9mIHNj
cmlwdCBpbmNsdWRpbmcgdW5kZWZpbmVkIGVycm9yIHNob3VsZCBmYWlsLicpOwotICB9LCAnUmVn
aXN0ZXJpbmcgc2NyaXB0IGluY2x1ZGluZyB1bmRlZmluZWQgZXJyb3InKTsKLQotcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQt
d29ya2VyLnB5P3VuY2F1Z2h0LWV4Y2VwdGlvbic7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNl
cy9zY29wZS91bmNhdWdodC1leGNlcHRpb24nOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9y
ZWplY3RzKAotICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQs
IHtzY29wZTogc2NvcGV9KSwKLSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAnUmVn
aXN0cmF0aW9uIG9mIHNjcmlwdCBpbmNsdWRpbmcgdW5jYXVnaHQgZXhjZXB0aW9uIHNob3VsZCBm
YWlsLicpOwotICB9LCAnUmVnaXN0ZXJpbmcgc2NyaXB0IGluY2x1ZGluZyB1bmNhdWdodCBleGNl
cHRpb24nKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0g
J3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5P2NhdWdodC1leGNlcHRpb24nOwotICAgIHZh
ciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvY2F1Z2h0LWV4Y2VwdGlvbic7Ci0gICAgcmV0dXJu
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0p
Ci0gICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgICAgYXNz
ZXJ0X3RydWUocmVnaXN0cmF0aW9uIGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICdTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC4nKTsK
LSAgICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUp
OwotICAgICAgICAgIH0pCi0gIH0sICdSZWdpc3RlcmluZyBzY3JpcHQgaW5jbHVkaW5nIGNhdWdo
dCBleGNlcHRpb24nKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5P2ltcG9ydC1tYWxmb3JtZWQtc2Ny
aXB0JzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2ltcG9ydC1tYWxmb3JtZWQt
c2NyaXB0JzsKLSAgICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKLSAgICAgICAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCi0g
ICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKLSAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBzY3JpcHQg
aW1wb3J0aW5nIG1hbGZvcm1lZCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7Ci0gIH0sICdSZWdpc3Rl
cmluZyBzY3JpcHQgaW1wb3J0aW5nIG1hbGZvcm1lZCBzY3JpcHQnKTsKLQotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29y
a2VyLnB5P2ltcG9ydC1uby1zdWNoLXNjcmlwdCc7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNl
cy9zY29wZS9pbXBvcnQtbm8tc3VjaC1zY3JpcHQnOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlz
ZV9yZWplY3RzKAotICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3Jp
cHQsIHtzY29wZTogc2NvcGV9KSwKLSAgICAgICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAn
UmVnaXN0cmF0aW9uIG9mIHNjcmlwdCBpbXBvcnRpbmcgbm9uLWV4aXN0ZW50IHNjcmlwdCBzaG91
bGQgZmFpbC4nKTsKLSAgfSwgJ1JlZ2lzdGVyaW5nIHNjcmlwdCBpbXBvcnRpbmcgbm9uLWV4aXN0
ZW50IHNjcmlwdCcpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIC8vIFVSTC1l
bmNvZGVkIGZ1bGwtd2lkdGggJ3Njb3BlJy4KLSAgICB2YXIgbmFtZSA9ICclZWYlYmQlOTMlZWYl
YmQlODMlZWYlYmQlOGYlZWYlYmQlOTAlZWYlYmQlODUnOwotICAgIHZhciBzY3JpcHQgPSAncmVz
b3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy8nICsg
bmFtZSArICcvZXNjYXBlZC1tdWx0aWJ5dGUtY2hhcmFjdGVyLXNjb3BlJzsKLSAgICByZXR1cm4g
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkK
LSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIGFzc2VydF9l
cXVhbHMoCi0gICAgICAgICAgICByZWdpc3RyYXRpb24uc2NvcGUsCi0gICAgICAgICAgICBub3Jt
YWxpemVVUkwoc2NvcGUpLAotICAgICAgICAgICAgJ1VSTC1lbmNvZGVkIG11bHRpYnl0ZSBjaGFy
YWN0ZXJzIHNob3VsZCBiZSBhdmFpbGFibGUuJyk7Ci0gICAgICAgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7Ci0gICAgICAgIH0pOwotICB9LCAnU2NvcGUg
aW5jbHVkaW5nIFVSTC1lbmNvZGVkIG11bHRpYnl0ZSBjaGFyYWN0ZXJzJyk7Ci0KLXByb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7Ci0gICAgLy8gTm9uLVVSTC1lbmNvZGVkIGZ1bGwtd2lkdGggInNj
b3BlIi4KLSAgICB2YXIgbmFtZSA9IFN0cmluZy5mcm9tQ29kZVBvaW50KDB4ZmY1MywgMHhmZjQz
LCAweGZmNGYsIDB4ZmY1MCwgMHhmZjQ1KTsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnOwotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvJyArIG5hbWUgICsg
Jy9ub24tZXNjYXBlZC1tdWx0aWJ5dGUtY2hhcmFjdGVyLXNjb3BlJzsKLSAgICByZXR1cm4gbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkKLSAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIGFzc2VydF9lcXVh
bHMoCi0gICAgICAgICAgICByZWdpc3RyYXRpb24uc2NvcGUsCi0gICAgICAgICAgICBub3JtYWxp
emVVUkwoc2NvcGUpLAotICAgICAgICAgICAgJ05vbi1VUkwtZW5jb2RlZCBtdWx0aWJ5dGUgY2hh
cmFjdGVycyBzaG91bGQgYmUgYXZhaWxhYmxlLicpOwotICAgICAgICAgIHNlcnZpY2Vfd29ya2Vy
X3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgICB9KTsKLSAgfSwgJ1Njb3Bl
IGluY2x1ZGluZyBub24tZXNjYXBlZCBtdWx0aWJ5dGUgY2hhcmFjdGVycycpOwotCi1wcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzJTJmZW1wdHkt
d29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL2VuY29kZWQtc2xh
c2gtaW4tc2NyaXB0LXVybCc7Ci0gICAgcmV0dXJuIGFzc2VydF9wcm9taXNlX3JlamVjdHMoCi0g
ICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBz
Y29wZX0pLAotICAgICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAgICAgICdVUkwtZW5jb2RlZCBz
bGFzaCBpbiB0aGUgc2NyaXB0IFVSTCBzaG91bGQgYmUgcmVqZWN0ZWQuJyk7Ci0gIH0sICdTY3Jp
cHQgVVJMIGluY2x1ZGluZyBVUkwtZW5jb2RlZCBzbGFzaCcpOwotCi1wcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgewotICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7
Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZSUyZmVuY29kZWQtc2xhc2gtaW4tc2Nv
cGUnOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAgICBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKLSAgICAg
ICAgbmV3IFR5cGVFcnJvcigpLAotICAgICAgICAnVVJMLWVuY29kZWQgc2xhc2ggaW4gdGhlIHNj
b3BlIHNob3VsZCBiZSByZWplY3RlZC4nKTsKLSAgfSwgJ1Njb3BlIGluY2x1ZGluZyBVUkwtZW5j
b2RlZCBzbGFzaCcpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewotICAgIHZhciBzY3Jp
cHQgPSAncmVzb3VyY2VzJTVjZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVz
b3VyY2VzL3Njb3BlL2VuY29kZWQtc2xhc2gtaW4tc2NyaXB0LXVybCc7Ci0gICAgcmV0dXJuIGFz
c2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAotICAgICAgICBuZXcgVHlwZUVycm9yKCks
Ci0gICAgICAgICdVUkwtZW5jb2RlZCBiYWNrc2xhc2ggaW4gdGhlIHNjcmlwdCBVUkwgc2hvdWxk
IGJlIHJlamVjdGVkLicpOwotICB9LCAnU2NyaXB0IFVSTCBpbmNsdWRpbmcgVVJMLWVuY29kZWQg
YmFja3NsYXNoJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlw
dCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3Vy
Y2VzL3Njb3BlJTVjZW5jb2RlZC1zbGFzaC1pbi1zY29wZSc7Ci0gICAgcmV0dXJuIGFzc2VydF9w
cm9taXNlX3JlamVjdHMoCi0gICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVy
KHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAotICAgICAgICBuZXcgVHlwZUVycm9yKCksCi0gICAg
ICAgICdVUkwtZW5jb2RlZCBiYWNrc2xhc2ggaW4gdGhlIHNjb3BlIHNob3VsZCBiZSByZWplY3Rl
ZC4nKTsKLSAgfSwgJ1Njb3BlIGluY2x1ZGluZyBVUkwtZW5jb2RlZCBiYWNrc2xhc2gnKTsKLQot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy8u
Ly4vZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3Bh
cmVudC1yZWZlcmVuY2UtaW4tc2NyaXB0LXVybCc7Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pCi0gICAgICAudGhlbihm
dW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAg
ICAgICAgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLAotICAgICAgICAgICAgbm9y
bWFsaXplVVJMKCdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJyksCi0gICAgICAgICAgICAnU2Ny
aXB0IFVSTCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2Ugc2hvdWxkIGJlIG5vcm1hbGl6ZWQuJyk7
Ci0gICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
Ci0gICAgICAgIH0pOwotICB9LCAnU2NyaXB0IFVSTCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2Un
KTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291
cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvLi8uL3Nj
b3BlL3NlbGYtcmVmZXJlbmNlLWluLXNjb3BlJzsKLSAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkKLSAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIGFzc2VydF9lcXVhbHMoCi0gICAgICAg
ICAgICByZWdpc3RyYXRpb24uc2NvcGUsCi0gICAgICAgICAgICBub3JtYWxpemVVUkwoJ3Jlc291
cmNlcy9zY29wZS9zZWxmLXJlZmVyZW5jZS1pbi1zY29wZScpLAotICAgICAgICAgICAgJ1Njb3Bl
IGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZSBzaG91bGQgYmUgbm9ybWFsaXplZC4nKTsKLSAgICAg
ICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKLSAgICAg
ICAgfSk7Ci0gIH0sICdTY29wZSBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2UnKTsKLQotcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy8uLi9yZXNv
dXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3Bl
L3BhcmVudC1yZWZlcmVuY2UtaW4tc2NyaXB0LXVybCc7Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pCi0gICAgICAudGhl
bihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAg
ICAgICAgICAgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcuc2NyaXB0VVJMLAotICAgICAgICAgICAg
bm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJyksCi0gICAgICAgICAgICAn
U2NyaXB0IFVSTCBpbmNsdWRpbmcgcGFyZW50LXJlZmVyZW5jZSBzaG91bGQgYmUgbm9ybWFsaXpl
ZC4nKTsKLSAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNj
b3BlKTsKLSAgICAgICAgfSk7Ci0gIH0sICdTY3JpcHQgVVJMIGluY2x1ZGluZyBwYXJlbnQtcmVm
ZXJlbmNlJyk7Ci0KLXByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9
ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2Vz
Ly4uL3Jlc291cmNlcy9zY29wZS9wYXJlbnQtcmVmZXJlbmNlLWluLXNjb3BlJzsKLSAgICByZXR1
cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoc2NyaXB0LCB7c2NvcGU6IHNjb3Bl
fSkKLSAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgewotICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoCi0gICAgICAgICAgICByZWdpc3RyYXRpb24uc2NvcGUsCi0gICAgICAgICAgICBu
b3JtYWxpemVVUkwoJ3Jlc291cmNlcy9zY29wZS9wYXJlbnQtcmVmZXJlbmNlLWluLXNjb3BlJyks
Ci0gICAgICAgICAgICAnU2NvcGUgaW5jbHVkaW5nIHBhcmVudC1yZWZlcmVuY2Ugc2hvdWxkIGJl
IG5vcm1hbGl6ZWQuJyk7Ci0gICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
ZG9uZSh0LCBzY29wZSk7Ci0gICAgICAgIH0pOwotICB9LCAnU2NvcGUgaW5jbHVkaW5nIHBhcmVu
dC1yZWZlcmVuY2UnKTsKLQotcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOwotICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvLi4vc2NvcGUvcGFyZW50LXJlZmVyZW5jZS1pbi1zY29wZSc7Ci0gICAgcmV0dXJuIGFz
c2VydF9wcm9taXNlX3JlamVjdHMoCi0gICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAotICAgICAgICAnU2VjdXJpdHlFcnJvcics
Ci0gICAgICAgICdTY29wZSBub3QgdW5kZXIgdGhlIHNjcmlwdCBkaXJlY3Rvcnkgc2hvdWxkIGJl
IHJlamVjdGVkLicpOwotICB9LCAnU2NvcGUgaW5jbHVkaW5nIHBhcmVudC1yZWZlcmVuY2UgYW5k
IG5vdCB1bmRlciB0aGUgc2NyaXB0IGRpcmVjdG9yeScpOwotCi1wcm9taXNlX3Rlc3QoZnVuY3Rp
b24odCkgewotICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzLy8vL2VtcHR5LXdvcmtlci5qcyc7
Ci0gICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9jb25zZWN1dGl2ZS1zbGFzaGVzLWlu
LXNjcmlwdC11cmwnOwotICAgIHJldHVybiBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAg
ICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9
KSwKLSAgICAgICAgJ1NlY3VyaXR5RXJyb3InLAotICAgICAgICAnQ29uc2VjdXRpdmUgc2xhc2hl
cyBpbiB0aGUgc2NyaXB0IHVybCBzaG91bGQgbm90IGJlIHVuaWZpZWQuJyk7Ci0gIH0sICdTY3Jp
cHQgVVJMIGluY2x1ZGluZyBjb25zZWN1dGl2ZSBzbGFzaGVzJyk7Ci0KLXByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7Ci0gICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpz
JzsKLSAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlLy8vL2NvbnNlY3V0aXZlLXNsYXNo
ZXMtaW4tc2NvcGUnOwotICAgIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rl
cihzY3JpcHQsIHtzY29wZTogc2NvcGV9KQotICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0
aW9uKSB7Ci0gICAgICAgICAgLy8gQWx0aG91Z2ggY29uc2VjdXRpdmUgc2xhc2hlcyBpbiB0aGUg
c2NvcGUgYXJlIG5vdCB1bmlmaWVkLCB0aGUKLSAgICAgICAgICAvLyBzY29wZSBpcyB1bmRlciB0
aGUgc2NyaXB0IGRpcmVjdG9yeSBhbmQgcmVnaXN0cmF0aW9uIHNob3VsZAotICAgICAgICAgIC8v
IHN1Y2NlZWQuCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscygKLSAgICAgICAgICAgIHJlZ2lzdHJh
dGlvbi5zY29wZSwKLSAgICAgICAgICAgIG5vcm1hbGl6ZVVSTChzY29wZSksCi0gICAgICAgICAg
ICAnU2hvdWxkIHN1Y2Nlc3NmdWxseSBiZSByZWdpc3RlcmVkLicpOwotICAgICAgICAgIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAgICAgICB9KQotICB9
LCAnU2NvcGUgaW5jbHVkaW5nIGNvbnNlY3V0aXZlIHNsYXNoZXMnKTsKLQotcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ2ZpbGVzeXN0ZW06JyArIG5vcm1hbGl6
ZVVSTCgncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycpOwotICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvc2NvcGUvZmlsZXN5c3RlbS1zY3JpcHQtdXJsJzsKLSAgICByZXR1cm4gYXNzZXJ0X3By
b21pc2VfcmVqZWN0cygKLSAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
c2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCi0gICAgICAgICdTZWN1cml0eUVycm9yJywKLSAgICAg
ICAgJ1JlZ2lzdGVyaW5nIGEgc2NyaXB0IHdoaWNoIGhhcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVt
OiBVUkwgc2hvdWxkICcgKwotICAgICAgICAgICAgJ2ZhaWwgd2l0aCBTZWN1cml0eUVycm9yLicp
OwotICB9LCAnU2NyaXB0IFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwnKTsKLQot
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKLSAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9l
bXB0eS13b3JrZXIuanMnOwotICAgIHZhciBzY29wZSA9ICdmaWxlc3lzdGVtOicgKyBub3JtYWxp
emVVUkwoJ3Jlc291cmNlcy9zY29wZS9maWxlc3lzdGVtLXNjb3BlLXVybCcpOwotICAgIHJldHVy
biBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAotICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcihzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKLSAgICAgICAgJ1NlY3VyaXR5RXJy
b3InLAotICAgICAgICAnUmVnaXN0ZXJpbmcgd2l0aCB0aGUgc2NvcGUgdGhhdCBoYXMgc2FtZS1v
cmlnaW4gZmlsZXN5c3RlbTogVVJMICcgKwotICAgICAgICAgICAgJ3Nob3VsZCBmYWlsIHdpdGgg
U2VjdXJpdHlFcnJvci4nKTsKLSAgfSwgJ1Njb3BlIFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxlc3lz
dGVtOiBVUkwnKTsKLQorcmVnaXN0cmF0aW9uX3Rlc3RzKChzY3JpcHQsIG9wdGlvbnMpID0+IG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwgb3B0aW9ucyksIHRydWUpOwog
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXF1ZXN0LWJvZHktYmxv
Yi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVxdWVzdC1ib2R5LWJsb2IuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43YWUyY2IwYmY5Mzg1NGRhNTU5YjI1NmQxYmVhMjkyMzY1ZDZkYjU4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVxdWVzdC1ib2R5LWJsb2Iu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5yZXF1ZXN0IGJvZHkgYmxvYjwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3Ry
aWN0JzsKK3ZhciByZXNvbHZlX2RvbmU7Cit2YXIgZG9uZTsKK3ZhciBkb25lX3dhc19jYWxsZWQg
PSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGRvbmUgPSByZXNvbHZlKTsKKworLy8gVGhpcyB0ZXN0
IGNyZWF0ZXMgYW4gY29udHJvbGxlZCBpZnJhbWUgdGhhdCBkb2VzIGEgcmVxdWVzdCB3aXRoIGEg
cmVxdWVzdAorLy8gYm9keSBibG9iLiBUaGUgc2VydmljZSB3b3JrZXIgY29uZmlybXMgaXQgY2Fu
IHJlYWQgdGhlIGJsb2IgYW5kIHJlc3BvbmRzCisvLyB3aXRoICdQYXNzJy4KK3Byb21pc2VfdGVz
dCh0ID0+IHsKKyAgICB2YXIgd29ya2VyID0gJ3Jlc291cmNlcy9yZXF1ZXN0LWJvZHktYmxvYi13
b3JrZXIuanMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvcmVxdWVzdC1ib2R5LWJsb2It
aWZyYW1lLmh0bWwnOworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3BlKQorICAgICAgLnRoZW4ocmVnID0+IHsKKyAgICAgICAg
ICAgYWRkX2NvbXBsZXRpb25fY2FsbGJhY2soKCkgPT4gcmVnLnVucmVnaXN0ZXIoKSk7CisgICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWcuaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOworICAgICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKHNjb3BlKSkK
KyAgICAgIC50aGVuKGZyYW1lID0+IHsKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IGZy
YW1lLnJlbW92ZSgpKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IGRvbmVfd2FzX2Nh
bGxlZCkKKyAgICAgIC50aGVuKHJlc3VsdCA9PiBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgJ1Bhc3Mn
KSk7CisgIH0sICdTZXJ2aWNlIHdvcmtlciBjYW4gcmVhZCB0aGUgcmVxdWVzdCBib2R5IGJsb2In
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVxdWVzdC1lbmQt
dG8tZW5kLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXF1ZXN0LWVuZC10by1lbmQu
aHR0cHMuaHRtbAppbmRleCBjOWMzYjMwNDY0YjJlOTgwYjc5YjI1YWJhMGNlZTgxOWI3NTk1NWI1
Li43YjU5NGFhYzU3ZDQzOWYwZjViNDkxODg2OWJmMTYyNTQzNjUyNWJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXF1ZXN0LWVuZC10by1lbmQuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXF1ZXN0LWVuZC10by1lbmQuaHR0cHMuaHRtbApAQCAtMSw2MSArMSw0
MCBAQAogPCFET0NUWVBFIGh0bWw+Ci08dGl0bGU+U2VydmljZSBXb3JrZXI6IFJlcXVlc3QgZW5k
LXRvLWVuZDwvdGl0bGU+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IEZldGNoRXZlbnQucmVxdWVz
dCBwYXNzZWQgdG8gb25mZXRjaDwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVy
cy5zdWIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLXZhciB0ID0gYXN5bmNfdGVzdCgnUmVxdWVz
dDogZW5kLXRvLWVuZCcpOwotdC5zdGVwKGZ1bmN0aW9uKCkgeworJ3VzZSBzdHJpY3QnOworCitw
cm9taXNlX3Rlc3QodCA9PiB7CiAgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvcmVxdWVzdC1lbmQt
dG8tZW5kLXdvcmtlci5qcyc7CiAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1s
JzsKLSAgICB2YXIgZnJhbWVzID0gW107Ci0KLSAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVy
X2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQotICAgICAgLnRoZW4ob25SZWdpc3RlcikKLSAg
ICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKLQotICAgIGZ1bmN0aW9uIHNlbmRN
ZXNzYWdlUG9ydCh3b3JrZXIpIHsKLSAgICAgICAgdmFyIG1lc3NhZ2VDaGFubmVsID0gbmV3IE1l
c3NhZ2VDaGFubmVsKCk7Ci0gICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7cG9ydDptZXNzYWdl
Q2hhbm5lbC5wb3J0Mn0sIFttZXNzYWdlQ2hhbm5lbC5wb3J0Ml0pOwotICAgICAgICByZXR1cm4g
bWVzc2FnZUNoYW5uZWwucG9ydDE7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25SZWdpc3Rlcihy
ZWdpc3RyYXRpb24pIHsKLSAgICAgICAgdmFyIHN3ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7
Ci0gICAgICAgIHZhciBwb3J0ID0gc2VuZE1lc3NhZ2VQb3J0KHN3KTsKLSAgICAgICAgcG9ydC5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsK
LSAgICAgICAgICAgIG9uTWVzc2FnZShldmVudCk7Ci0gICAgICAgIH0pLCBmYWxzZSk7Ci0gICAg
ICAgIHBvcnQuc3RhcnQoKTsKLSAgICAgICAgc3cuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFu
Z2UnLCB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgaWYgKGV2ZW50
LnRhcmdldC5zdGF0ZSA9PSAnYWN0aXZhdGVkJykKLSAgICAgICAgICAgICAgICBvbkFjdGl2ZSgp
OwotICAgICAgICB9KSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25BY3RpdmUoKSB7Ci0gICAg
ICAgIHdpdGhfaWZyYW1lKHNjb3BlKS50aGVuKGZ1bmN0aW9uKGYpIHsgZnJhbWVzLnB1c2goZik7
IH0pOwotICAgIH0KKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVn
aXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKHIgPT4geworICAgICAgICAgIGFkZF9j
b21wbGV0aW9uX2NhbGxiYWNrKCgpID0+IHsgci51bnJlZ2lzdGVyKCk7IH0pOworICAgICAgICAg
IHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKCgpID0+IHsgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsg
fSkKKyAgICAgIC50aGVuKGZyYW1lID0+IHsKKyAgICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxs
YmFjaygoKSA9PiB7IGZyYW1lLnJlbW92ZSgpOyB9KTsKIAotICAgIGZ1bmN0aW9uIG9uTWVzc2Fn
ZShldmVudCkgewotICAgICAgICBhc3NlcnRfZXF1YWxzKAotICAgICAgICAgICAgZXZlbnQuZGF0
YS51cmwsCi0gICAgICAgICAgICBsb2NhdGlvbi5ocmVmLnN1YnN0cmluZygwLCBsb2NhdGlvbi5o
cmVmLmxhc3RJbmRleE9mKCcvJykgKyAxKSArCi0gICAgICAgICAgICBzY29wZSwKLSAgICAgICAg
ICAgICdyZXF1ZXN0LnVybCBzaG91bGQgYmUgcGFzc2VkIHRvIG9uZmV0Y2ggZXZlbnQuJyk7Ci0g
ICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQuZGF0YS5tb2RlLCAnbmF2aWdhdGUnLAotICAgICAg
ICAgICAgICAgICAgICAgICdyZXF1ZXN0Lm1vZGUgc2hvdWxkIGJlIHBhc3NlZCB0byBvbmZldGNo
IGV2ZW50LicpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEubWV0aG9kLCAnR0VU
JywKLSAgICAgICAgICAgICAgICAgICAgICAncmVxdWVzdC5tZXRob2Qgc2hvdWxkIGJlIHBhc3Nl
ZCB0byBvbmZldGNoIGV2ZW50LicpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEu
cmVmZXJyZXIsIGxvY2F0aW9uLmhyZWYsCi0gICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3Qu
cmVmZXJyZXIgc2hvdWxkIGJlIHBhc3NlZCB0byBvbmZldGNoIGV2ZW50LicpOwotICAgICAgICBh
c3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEuaGVhZGVyc1sndXNlci1hZ2VudCddLCB1bmRlZmluZWQs
Ci0gICAgICAgICAgICAgICAgICAgICAgJ0RlZmF1bHQgVXNlci1BZ2VudCBoZWFkZXIgc2hvdWxk
IG5vdCBiZSBwYXNzZWQgdG8gb25mZXRjaCBldmVudC4nKQotICAgICAgICBhc3NlcnRfZXF1YWxz
KGV2ZW50LmRhdGEuZXJyb3JOYW1lV2hpbGVBcHBlbmRpbmdIZWFkZXIsICdUeXBlRXJyb3InLAot
ICAgICAgICAgICAgICAgICAgICAgICdBcHBlbmRpbmcgYSBuZXcgaGVhZGVyIHRvIHRoZSByZXF1
ZXN0IG11c3QgdGhyb3cgYSAnICsKLSAgICAgICAgICAgICAgICAgICAgICAnVHlwZUVycm9yLicp
Ci0gICAgICAgIGZyYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHsgZi5yZW1vdmUoKTsgfSk7Ci0g
ICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOwotICAg
IH0KLX0pOworICAgICAgICAgIHZhciByZXN1bHQgPSBKU09OLnBhcnNlKGZyYW1lLmNvbnRlbnRE
b2N1bWVudC5ib2R5LnRleHRDb250ZW50KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3Vs
dC51cmwsIGZyYW1lLnNyYywgJ3JlcXVlc3QudXJsJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXN1bHQubWV0aG9kLCAnR0VUJywgJ3JlcXVlc3QubWV0aG9kJyk7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZXN1bHQucmVmZXJyZXIsIGxvY2F0aW9uLmhyZWYsICdyZXF1ZXN0LnJlZmVy
cmVyJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQubW9kZSwgJ25hdmlnYXRlJywg
J3JlcXVlc3QubW9kZScpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0LnJlcXVlc3Rf
Y29uc3RydWN0X2Vycm9yLCAnVHlwZUVycm9yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdD
b25zdHJ1Y3RpbmcgYSBSZXF1ZXN0IHdpdGggYSBSZXF1ZXN0IHdob3NlIG1vZGUgJyArCisgICAg
ICAgICAgICAgICAgICAgICAgICAnaXMgbmF2aWdhdGUgYW5kIG5vbi1lbXB0eSBSZXF1ZXN0SW5p
dCBtdXN0IHRocm93IGEgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAnVHlwZUVycm9yLicp
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuY3JlZGVudGlhbHMsICdpbmNsdWRlJywg
J3JlcXVlc3QuY3JlZGVudGlhbHMnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdC5y
ZWRpcmVjdCwgJ21hbnVhbCcsICdyZXF1ZXN0LnJlZGlyZWN0Jyk7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZXN1bHQuaGVhZGVyc1sndXNlci1hZ2VudCddLCB1bmRlZmluZWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAnRGVmYXVsdCBVc2VyLUFnZW50IGhlYWRlciBzaG91bGQgbm90IGJl
IHBhc3NlZCB0byAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvbmZldGNoIGV2ZW50Licp
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQuYXBwZW5kX2hlYWRlcl9lcnJvciwgJ1R5
cGVFcnJvcicsCisgICAgICAgICAgICAgICAgICAgICAgICAnQXBwZW5kaW5nIGEgbmV3IGhlYWRl
ciB0byB0aGUgcmVxdWVzdCBtdXN0IHRocm93IGEgJyArCisgICAgICAgICAgICAgICAgICAgICAg
ICAnVHlwZUVycm9yLicpCisgICAgICAgIH0pOworICB9LCAnVGVzdCBGZXRjaEV2ZW50LnJlcXVl
c3QgcGFzc2VkIHRvIG9uZmV0Y2gnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2UtdGltaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRtbAppbmRleCBmMzNjNDFkNzE1ZWNhZjJkZmFkOGY3NmJm
NzUwZWZjZmNhMDZlYmI5Li5lMWVlNTQxZWY1OTk1NjQ4YTllZTY3ZDM0ZTE4MjhlOTRhOTY2MzA2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZS10aW1pbmcuaHR0cHMuaHRtbApAQCAt
MSwxMSArMSwxMSBAQAogPCFET0NUWVBFIGh0bWw+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWlu
Zm8uc3ViLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJz
LnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gcmVzb3VyY2VVcmwocGF0aCkg
ewotICAgIHJldHVybiBnZXRfaG9zdF9pbmZvKClbJ0hUVFBfT1JJR0lOJ10gKyBiYXNlX3BhdGgo
KSArIHBhdGg7CisgICAgcmV0dXJuIGdldF9ob3N0X2luZm8oKVsnSFRUUFNfT1JJR0lOJ10gKyBi
YXNlX3BhdGgoKSArIHBhdGg7CiB9CiAKIGZ1bmN0aW9uIHZlcmlmeShwZXJmb3JtYW5jZSwgcmVz
b3VyY2UsIGRlc2NyaXB0aW9uKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvYnl0ZWNoZWNrLXdvcmtlci1pbXBvcnRlZC1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvYnl0ZWNoZWNrLXdvcmtlci1pbXBvcnRlZC1zY3JpcHQucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTk2MDIyMDI2YzUyMmZmYjEzYzhiMmVhZjgwNTE2NjZmNTAwMWRmNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9ieXRlY2hlY2std29ya2VyLWlt
cG9ydGVkLXNjcmlwdC5weQpAQCAtMCwwICsxLDE5IEBACitpbXBvcnQgdGltZQorCitkZWYgbWFp
bihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsoJ0NvbnRlbnQtVHlwZScsICdh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0JyksCisgICAgICAgICAgICAgICAoJ0NhY2hlLUNvbnRyb2wn
LCAnbWF4LWFnZT0wJyldCisKKyAgICBpbXBvcnRlZF9jb250ZW50X3R5cGUgPSAnJworICAgIGlm
ICdpbXBvcnRlZCcgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGltcG9ydGVkX2NvbnRlbnRfdHlw
ZSA9IHJlcXVlc3QuR0VUWydpbXBvcnRlZCddCisKKyAgICBpbXBvcnRlZF9jb250ZW50ID0gJ2Rl
ZmF1bHQnCisgICAgaWYgaW1wb3J0ZWRfY29udGVudF90eXBlID09ICd0aW1lJzoKKyAgICAgICAg
aW1wb3J0ZWRfY29udGVudCA9IHRpbWUudGltZSgpCisKKyAgICBib2R5ID0gJycnCisgICAgLy8g
JXMKKyAgICAnJycgJSAoaW1wb3J0ZWRfY29udGVudCkKKworICAgIHJldHVybiBoZWFkZXJzLCBi
b2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYnl0ZWNoZWNrLXdv
cmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9ieXRlY2hlY2std29ya2VyLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBiMTJkZTlmMzA4NDgxYzg2YzJhMzljYjJiMmM3ODE4MjkyNjZiYzUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYnl0ZWNoZWNrLXdv
cmtlci5weQpAQCAtMCwwICsxLDMyIEBACitpbXBvcnQgdGltZQorCitkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0JyksCisgICAgICAgICAgICAgICAoJ0NhY2hlLUNvbnRyb2wnLCAnbWF4LWFn
ZT0wJyldCisKKyAgICBtYWluX2NvbnRlbnRfdHlwZSA9ICcnCisgICAgaWYgJ21haW4nIGluIHJl
cXVlc3QuR0VUOgorICAgICAgICBtYWluX2NvbnRlbnRfdHlwZSA9IHJlcXVlc3QuR0VUWydtYWlu
J10KKworICAgIG1haW5fY29udGVudCA9ICdkZWZhdWx0JworICAgIGlmIG1haW5fY29udGVudF90
eXBlID09ICd0aW1lJzoKKyAgICAgICAgbWFpbl9jb250ZW50ID0gdGltZS50aW1lKCkKKworICAg
IGltcG9ydGVkX3JlcXVlc3RfcGF0aCA9ICcnCisgICAgaWYgJ3BhdGgnIGluIHJlcXVlc3QuR0VU
OgorICAgICAgICBpbXBvcnRlZF9yZXF1ZXN0X3BhdGggPSByZXF1ZXN0LkdFVFsncGF0aCddCisK
KyAgICBpbXBvcnRlZF9yZXF1ZXN0X3R5cGUgPSAnJworICAgIGlmICdpbXBvcnRlZCcgaW4gcmVx
dWVzdC5HRVQ6CisgICAgICAgIGltcG9ydGVkX3JlcXVlc3RfdHlwZSA9IHJlcXVlc3QuR0VUWydp
bXBvcnRlZCddCisKKyAgICBpbXBvcnRlZF9yZXF1ZXN0ID0gJycKKyAgICBpZiBpbXBvcnRlZF9y
ZXF1ZXN0X3R5cGUgPT0gJ3RpbWUnOgorICAgICAgICBpbXBvcnRlZF9yZXF1ZXN0ID0gJz9pbXBv
cnRlZD10aW1lJzsKKworICAgIGJvZHkgPSAnJycKKyAgICAvLyAlcworICAgIGltcG9ydFNjcmlw
dHMoJyVzYnl0ZWNoZWNrLXdvcmtlci1pbXBvcnRlZC1zY3JpcHQucHklcycpOworICAgICcnJyAl
IChtYWluX2NvbnRlbnQsIGltcG9ydGVkX3JlcXVlc3RfcGF0aCwgaW1wb3J0ZWRfcmVxdWVzdCkK
KworICAgIHJldHVybiBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvY2xhaW0td2l0aC1yZWRpcmVjdC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9jbGFpbS13aXRoLXJlZGlyZWN0LWlmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxNTBkN2U2ODU3NDIyY2IzZTRiYWYxYWZlMTE4NTQxZjFiYWUwY2EKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td2l0aC1yZWRpcmVjdC1p
ZnJhbWUuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0ZXN0
LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBob3N0X2luZm8g
PSBnZXRfaG9zdF9pbmZvKCk7CisKK2Z1bmN0aW9uIHNlbmRfcmVzdWx0KHJlc3VsdCkgeworICB3
aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHttZXNzYWdlOiByZXN1bHR9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pOworfQorCitmdW5jdGlv
biBleGVjdXRlVGFzayhwYXJhbXMpIHsKKyAgLy8gRXhlY3V0ZSB0YXNrIGZvciBlYWNoIHBhcmFt
ZXRlcgorICBpZiAocGFyYW1zLmhhcygncmVnaXN0ZXInKSkgeworICAgIHZhciB3b3JrZXJfdXJs
ID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5nZXQoJ3JlZ2lzdGVyJykpOworICAgIHZhciBz
Y29wZSA9IGRlY29kZVVSSUNvbXBvbmVudChwYXJhbXMuZ2V0KCdzY29wZScpKTsKKyAgICBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7c2NvcGU6IHNjb3BlfSkK
KyAgICAgIC50aGVuKHIgPT4gc2VuZF9yZXN1bHQoJ3JlZ2lzdGVyZWQnKSk7CisgIH0gZWxzZSBp
ZiAocGFyYW1zLmhhcygncmVkaXJlY3RlZCcpKSB7CisgICAgc2VuZF9yZXN1bHQoJ3JlZGlyZWN0
ZWQnKTsKKyAgfSBlbHNlIGlmIChwYXJhbXMuaGFzKCd1cGRhdGUnKSkgeworICAgIHZhciBzY29w
ZSA9IGRlY29kZVVSSUNvbXBvbmVudChwYXJhbXMuZ2V0KCd1cGRhdGUnKSk7CisgICAgbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKQorICAgICAgLnRoZW4ociA9
PiByLnVwZGF0ZSgpKQorICAgICAgLnRoZW4oKCkgPT4gc2VuZF9yZXN1bHQoJ3VwZGF0ZWQnKSk7
CisgIH0gZWxzZSBpZiAocGFyYW1zLmhhcygndW5yZWdpc3RlcicpKSB7CisgICAgdmFyIHNjb3Bl
ID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5nZXQoJ3VucmVnaXN0ZXInKSk7CisgICAgbmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKQorICAgICAgLnRoZW4o
ciA9PiByLnVucmVnaXN0ZXIoKSkKKyAgICAgIC50aGVuKHN1Y2NlZWRlZCA9PiB7CisgICAgICAg
ICAgaWYgKHN1Y2NlZWRlZCkgeworICAgICAgICAgICAgc2VuZF9yZXN1bHQoJ3VucmVnaXN0ZXJl
ZCcpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZW5kX3Jlc3VsdCgnZmFpbHVy
ZTogdW5yZWdpc3RlcicpOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgIH0gZWxzZSB7Cisg
ICAgc2VuZF9yZXN1bHQoJ3Vua25vd24gcGFyYW1ldGVyOiAnICsgcGFyYW1zLnRvU3RyaW5nKCkp
OworICB9Cit9CisKK3ZhciBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNl
YXJjaC5zbGljZSgxKSk7CitleGVjdXRlVGFzayhwYXJhbXMpOworPC9zY3JpcHQ+Cis8L2JvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xhaW0td29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcwppbmRleCAzMTdm
ZWIxYTAyZDJkMDA2MGVmMDJjNDI3YmVjYzIyZmY5NzY5YmUyLi41M2YyMTBjZjc2MzQ5OTNmODYz
MTBjZGVmZWM5YTE1ZmQ2YjY5OWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xhaW0td29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGFpbS13b3JrZXIuanMKQEAgLTEyLDMgKzEyLDcgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCdt
ZXNzYWdlJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgICBldmVudC5kYXRhLnBvcnQucG9z
dE1lc3NhZ2UoJ0ZBSUw6IGV4Y2VwdGlvbjogJyArIGVycm9yLm5hbWUpOwogICAgICAgICB9KTsK
ICAgfSk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkg
eworICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgnSW50ZXJjZXB0ZWQhJykpOwor
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LWlkLXdv
cmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtaWQtd29ya2VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVjNzFiMzQ1OGI3MjE0ZmM3Njc1ZjZmNzU5OTdjYzgyYTQ3Y2FjODIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LWlkLXdv
cmtlci5qcwpAQCAtMCwwICsxLDI3IEBACitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsK
KyAgdmFyIHBvcnQgPSBlLmRhdGEucG9ydDsKKyAgdmFyIG1lc3NhZ2UgPSBbXTsKKworICB2YXIg
cHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpCisgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgIC8vIDFzdCBtYXRjaEFsbCgpCisgICAgICAgIHJldHVybiBzZWxmLmNsaWVudHMubWF0Y2hB
bGwoKS50aGVuKGZ1bmN0aW9uKGNsaWVudHMpIHsKKyAgICAgICAgICAgIGNsaWVudHMuZm9yRWFj
aChmdW5jdGlvbihjbGllbnQpIHsKKyAgICAgICAgICAgICAgICBtZXNzYWdlLnB1c2goY2xpZW50
LmlkKTsKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSk7CisgICAgICB9KQorICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAvLyAybmQgbWF0Y2hBbGwoKQorICAgICAgICByZXR1
cm4gc2VsZi5jbGllbnRzLm1hdGNoQWxsKCkudGhlbihmdW5jdGlvbihjbGllbnRzKSB7CisgICAg
ICAgICAgICBjbGllbnRzLmZvckVhY2goZnVuY3Rpb24oY2xpZW50KSB7CisgICAgICAgICAgICAg
ICAgbWVzc2FnZS5wdXNoKGNsaWVudC5pZCk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAg
IH0pOworICAgICAgfSkKKyAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gU2VuZCBh
biBhcnJheSBjb250YWluaW5nIGlkcyBvZiBjbGllbnRzIGZyb20gMXN0IGFuZCAybmQgbWF0Y2hB
bGwoKQorICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG1lc3NhZ2UpOworICAgICAgfSk7CisgIGUu
d2FpdFVudGlsKHByb21pc2UpOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGllbnQtbmF2aWdhdGUtZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGllbnQtbmF2aWdhdGUtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTE4NmY4ZWU3
OTg0ZDEwYTY1NDFiMjNkOWI1ZWVjZDNiYjhiN2ZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS1mcmFtZS5odG1sCkBAIC0wLDAg
KzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxzY3JpcHQ+
CisgIGZldGNoKCJjbGllbnRJZCIpCisgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAg
ICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7CisgICAgfSkKKyAgICAudGhlbihmdW5jdGlvbih0
ZXh0KSB7CisgICAgICBwYXJlbnQucG9zdE1lc3NhZ2Uoe2lkOiB0ZXh0fSwgIioiKTsKKyAgICB9
KTsKKzwvc2NyaXB0PgorPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsiPjwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtbmF2aWdh
dGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0
ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlkMTFmZTYxODFkMzNmNDNjNTViMGRhNDE4NjI3MTQy
YjRjNjQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnQtbmF2aWdhdGUtd29ya2VyLmpzCkBAIC0wLDAgKzEsOTAgQEAKK2ltcG9ydFNjcmlwdHMo
Indvcmtlci10ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygidGVzdC1oZWxwZXJzLnN1
Yi5qcyIpOworaW1wb3J0U2NyaXB0cygiL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyIpCitp
bXBvcnRTY3JpcHRzKCJ0ZXN0aGFybmVzcy1oZWxwZXJzLmpzIikKKworc2VsZi5vbmZldGNoID0g
ZnVuY3Rpb24oZSkgeworICBpZiAoZS5yZXF1ZXN0LnVybC5pbmRleE9mKCJjbGllbnQtbmF2aWdh
dGUtZnJhbWUuaHRtbCIpID49IDApIHsKKyAgICBpZiAoZS5jbGllbnRJZCA9PT0gbnVsbCkgewor
ICAgICAgZS5yZXNwb25kV2l0aChmZXRjaChlLnJlcXVlc3QpKTsKKyAgICB9IGVsc2UgeworICAg
ICAgZS5yZXNwb25kV2l0aChSZXNwb25zZS5lcnJvcigpKTsKKyAgICB9CisgICAgcmV0dXJuOwor
ICB9CisgIGUucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKGUuY2xpZW50SWQpKTsKK307CisKK2Z1
bmN0aW9uIHBhc3ModGVzdCwgdXJsKSB7CisgIHJldHVybiB7IHJlc3VsdDogdGVzdCwKKyAgICAg
ICAgICAgdXJsOiB1cmwgfTsKK30KKworZnVuY3Rpb24gZmFpbCh0ZXN0LCByZWFzb24pIHsKKyAg
cmV0dXJuIHsgcmVzdWx0OiAiRkFJTEVEICIgKyB0ZXN0ICsgIiAiICsgcmVhc29uIH0KK30KKwor
c2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgIHZhciBwb3J0ID0gZS5kYXRhLnBvcnQ7
CisgIHZhciB0ZXN0ID0gZS5kYXRhLnRlc3Q7CisgIHZhciBjbGllbnRJZCA9IGUuZGF0YS5jbGll
bnRJZDsKKyAgdmFyIGNsaWVudFVybCA9ICIiOworICBpZiAodGVzdCA9PT0gInRlc3RfY2xpZW50
X25hdmlnYXRlX3N1Y2Nlc3MiKSB7CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICAgIHRoaXMuYWRkX2NsZWFudXAoKCkgPT4gcG9ydC5wb3N0TWVzc2FnZShwYXNzKHRlc3QsIGNs
aWVudFVybCkpKTsKKyAgICAgIHJldHVybiBzZWxmLmNsaWVudHMuZ2V0KGNsaWVudElkKQorICAg
ICAgICAgICAgICAgICAudGhlbihjbGllbnQgPT4gY2xpZW50Lm5hdmlnYXRlKCJjbGllbnQtbmF2
aWdhdGVkLWZyYW1lLmh0bWwiKSkKKyAgICAgICAgICAgICAgICAgLnRoZW4oY2xpZW50ID0+IHsK
KyAgICAgICAgICAgICAgICAgICBjbGllbnRVcmwgPSBjbGllbnQudXJsOworICAgICAgICAgICAg
ICAgICAgIGFzc2VydF90cnVlKGNsaWVudCBpbnN0YW5jZW9mIFdpbmRvd0NsaWVudCk7CisgICAg
ICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0
aW9uKHQpKTsKKyAgICB9LCAiUmV0dXJuIHZhbHVlIHNob3VsZCBiZSBpbnN0YW5jZSBvZiBXaW5k
b3dDbGllbnQiKTsKKyAgfSBlbHNlIGlmICh0ZXN0ID09PSAidGVzdF9jbGllbnRfbmF2aWdhdGVf
Y3Jvc3Nfb3JpZ2luIikgeworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB0
aGlzLmFkZF9jbGVhbnVwKCgpID0+IHBvcnQucG9zdE1lc3NhZ2UocGFzcyh0ZXN0LCBjbGllbnRV
cmwpKSk7CisgICAgICB2YXIgcGF0aCA9IG5ldyBVUkwoJ2NsaWVudC1uYXZpZ2F0ZWQtZnJhbWUu
aHRtbCcsIHNlbGYubG9jYXRpb24uaHJlZikucGF0aG5hbWU7CisgICAgICB2YXIgdXJsID0gZ2V0
X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBwYXRoOworICAgICAgcmV0dXJu
IHNlbGYuY2xpZW50cy5nZXQoY2xpZW50SWQpCisgICAgICAgICAgICAgICAgIC50aGVuKGNsaWVu
dCA9PiBjbGllbnQubmF2aWdhdGUodXJsKSkKKyAgICAgICAgICAgICAgICAgLnRoZW4oY2xpZW50
ID0+IHsKKyAgICAgICAgICAgICAgICAgICBjbGllbnRVcmwgPSAoY2xpZW50ICYmIGNsaWVudC51
cmwpIHx8ICIiOworICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY2xpZW50LCBudWxs
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nyb3NzLW9yaWdpbiBuYXZpZ2F0
ZSByZXNvbHZlcyB3aXRoIG51bGwnKTsKKyAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAg
ICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICAgIH0sICJOYXZpZ2F0aW5n
IHRvIGRpZmZlcmVudCBvcmlnaW4gc2hvdWxkIHJlc29sdmUgd2l0aCBudWxsIik7CisgIH0gZWxz
ZSBpZiAodGVzdCA9PT0gInRlc3RfY2xpZW50X25hdmlnYXRlX2Fib3V0X2JsYW5rIikgeworICAg
IHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB0aGlzLmFkZF9jbGVhbnVwKGZ1bmN0
aW9uKCkgeyBwb3J0LnBvc3RNZXNzYWdlKHBhc3ModGVzdCwgIiIpKTsgfSk7CisgICAgICByZXR1
cm4gc2VsZi5jbGllbnRzLmdldChjbGllbnRJZCkKKyAgICAgICAgICAgICAgICAgLnRoZW4oY2xp
ZW50ID0+IHByb21pc2VfcmVqZWN0cyh0LCBuZXcgVHlwZUVycm9yKCksIGNsaWVudC5uYXZpZ2F0
ZSgiYWJvdXQ6YmxhbmsiKSkpCisgICAgICAgICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVq
ZWN0aW9uKHQpKTsKKyAgICB9LCAiTmF2aWdhdGluZyB0byBhYm91dDpibGFuayBzaG91bGQgcmVq
ZWN0IHdpdGggVHlwZUVycm9yIik7CisgIH0gZWxzZSBpZiAodGVzdCA9PT0gInRlc3RfY2xpZW50
X25hdmlnYXRlX21peGVkX2NvbnRlbnQiKSB7CisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgIHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7IHBvcnQucG9zdE1lc3NhZ2Uo
cGFzcyh0ZXN0LCAiIikpOyB9KTsKKyAgICAgIHZhciBwYXRoID0gbmV3IFVSTCgnY2xpZW50LW5h
dmlnYXRlZC1mcmFtZS5odG1sJywgc2VsZi5sb2NhdGlvbi5ocmVmKS5wYXRobmFtZTsKKyAgICAg
IC8vIEluc2VjdXJlIFVSTCBzaG91bGQgZmFpbCBzaW5jZSB0aGUgZnJhbWUgaXMgb3duZWQgYnkg
YSBzZWN1cmUgcGFyZW50CisgICAgICAvLyBhbmQgbmF2aWdhdGluZyB0byBodHRwOi8vIHdvdWxk
IGNyZWF0ZSBhIG1peGVkLWNvbnRlbnQgdmlvbGF0aW9uLgorICAgICAgdmFyIHVybCA9IGdldF9o
b3N0X2luZm8oKVsnSFRUUF9SRU1PVEVfT1JJR0lOJ10gKyBwYXRoOworICAgICAgcmV0dXJuIHNl
bGYuY2xpZW50cy5nZXQoY2xpZW50SWQpCisgICAgICAgICAgICAgICAgIC50aGVuKGNsaWVudCA9
PiBwcm9taXNlX3JlamVjdHModCwgbmV3IFR5cGVFcnJvcigpLCBjbGllbnQubmF2aWdhdGUodXJs
KSkpCisgICAgICAgICAgICAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAg
ICB9LCAiTmF2aWdhdGluZyB0byBtaXhlZC1jb250ZW50IGlmcmFtZSBzaG91bGQgcmVqZWN0IHdp
dGggVHlwZUVycm9yIik7CisgIH0gZWxzZSBpZiAodGVzdCA9PT0gInRlc3RfY2xpZW50X25hdmln
YXRlX3JlZGlyZWN0IikgeworICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Cisg
ICAgdmFyIHVybCA9IG5ldyBVUkwoaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10pLnRv
U3RyaW5nKCkgKworICAgICAgICAgICAgICBuZXcgVVJMKCJjbGllbnQtbmF2aWdhdGVkLWZyYW1l
Lmh0bWwiLCBsb2NhdGlvbikucGF0aG5hbWUuc3Vic3RyaW5nKDEpOworICAgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgICB0aGlzLmFkZF9jbGVhbnVwKCgpID0+IHBvcnQucG9zdE1l
c3NhZ2UocGFzcyh0ZXN0LCBjbGllbnRVcmwpKSk7CisgICAgICByZXR1cm4gc2VsZi5jbGllbnRz
LmdldChjbGllbnRJZCkKKyAgICAgICAgICAgICAgICAgLnRoZW4oY2xpZW50ID0+IGNsaWVudC5u
YXZpZ2F0ZSgicmVkaXJlY3QucHk/UmVkaXJlY3Q9IiArIHVybCkpCisgICAgICAgICAgICAgICAg
IC50aGVuKGNsaWVudCA9PiB7CisgICAgICAgICAgICAgICAgICAgY2xpZW50VXJsID0gKGNsaWVu
dCAmJiBjbGllbnQudXJsKSB8fCAiIgorICAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGNs
aWVudCA9PT0gbnVsbCk7CisgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgICB9LCAiUmVkaXJlY3RpbmcgdG8gYW5v
dGhlciBvcmlnaW4gc2hvdWxkIHJlc29sdmUgd2l0aCBudWxsIik7CisgIH0KK307CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlZC1mcmFtZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZWQtZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMDdmN2Y5YWM2ZWE4YTRmZmQ5N2I0Zjc4MTkzMmQ2NTEzN2RlMzJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudC1u
YXZpZ2F0ZWQtZnJhbWUuaHRtbApAQCAtMCwwICsxLDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsi
PjwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LWdldC1jbGllbnQtdHlwZXMtZnJhbWUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy1mcmFtZS13b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGExNDYxYjQwZTA4OWY2ODRmYWEwMGNhYzU2ZDQ0OTEyMzJhMTQzMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlw
ZXMtZnJhbWUtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTEgQEAKK29ubWVzc2FnZSA9IGZ1bmN0aW9u
KGUpIHsKKyAgaWYgKGUuZGF0YS5jbWQgPT0gJ0dldENsaWVudElkJykgeworICAgIGZldGNoKCdj
bGllbnRJZCcpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAg
cmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rp
b24odGV4dCkgeworICAgICAgICAgIGUuZGF0YS5wb3J0LnBvc3RNZXNzYWdlKHtjbGllbnRJZDog
dGV4dH0pOworICAgICAgICB9KTsKKyAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMtZnJhbWUuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMtZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40MzI0ZTZkNDA1NGY5YTEzM2U2ODNiODg1MWU4Yjc5YjdkNmIzZTFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0
LWNsaWVudC10eXBlcy1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHNjcmlwdD4KK2ZldGNoKCdjbGllbnRJZCcpCisgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNl
KSB7CisgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICAgIH0pCisgIC50aGVuKGZ1bmN0
aW9uKHRleHQpIHsKKyAgICAgIHBhcmVudC5wb3N0TWVzc2FnZSh7Y2xpZW50SWQ6IHRleHR9LCAn
KicpOworICAgIH0pOworCitvbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgIGlmIChlLmRhdGEg
PT0gJ1N0YXJ0V29ya2VyJykgeworICAgIHZhciB3ID0gbmV3IFdvcmtlcignY2xpZW50cy1nZXQt
Y2xpZW50LXR5cGVzLWZyYW1lLXdvcmtlci5qcycpOworICAgIHcucG9zdE1lc3NhZ2Uoe2NtZDon
R2V0Q2xpZW50SWQnLCBwb3J0OmUucG9ydHNbMF19LCBbZS5wb3J0c1swXV0pOworICB9Cit9Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LWdldC1jbGllbnQtdHlwZXMtc2hhcmVkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMtc2hhcmVkLXdvcmtlci5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYWRlZjk3MDM3NGJkYjg3MjA2MmIyOGJjYjVkMWZkMjQ5ZWQyMDY2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNsaWVudC10
eXBlcy1zaGFyZWQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTAgQEAKK29uY29ubmVjdCA9IGZ1bmN0
aW9uKGUpIHsKKyAgdmFyIHBvcnQgPSBlLnBvcnRzWzBdOworICBmZXRjaCgnY2xpZW50SWQnKQor
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIHJldHVybiByZXNwb25zZS50
ZXh0KCk7CisgICAgICB9KQorICAgIC50aGVuKGZ1bmN0aW9uKHRleHQpIHsKKyAgICAgICAgcG9y
dC5wb3N0TWVzc2FnZSh7Y2xpZW50SWQ6IHRleHR9KTsKKyAgICAgIH0pOworfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNsaWVu
dC10eXBlcy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGExNDYxYjQwZTA4OWY2ODRmYWEwMGNhYzU2
ZDQ0OTEyMzJhMTQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9jbGllbnRzLWdldC1jbGllbnQtdHlwZXMtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTEgQEAK
K29ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgaWYgKGUuZGF0YS5jbWQgPT0gJ0dldENsaWVu
dElkJykgeworICAgIGZldGNoKCdjbGllbnRJZCcpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgICAgICAgfSkK
KyAgICAgICAgLnRoZW4oZnVuY3Rpb24odGV4dCkgeworICAgICAgICAgIGUuZGF0YS5wb3J0LnBv
c3RNZXNzYWdlKHtjbGllbnRJZDogdGV4dH0pOworICAgICAgICB9KTsKKyAgfQorfTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1jcm9zcy1vcmln
aW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1j
cm9zcy1vcmlnaW4tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWFkZTMyN2JjNTlkOGYyZTM4YzU2
NzY2YzM5OTczZjFlYzQxNDI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNyb3NzLW9yaWdpbi1mcmFtZS5odG1sCkBAIC0wLDAgKzEs
NTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK3ZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7Cit2YXIgc2NvcGUg
PSAnYmxhbmsuaHRtbD9jbGllbnRzLWdldCc7Cit2YXIgc2NyaXB0ID0gJ2NsaWVudHMtZ2V0LXdv
cmtlci5qcyc7CisKK3ZhciByZWdpc3RyYXRpb247Cit2YXIgd29ya2VyOwordmFyIHdhaXRfZm9y
X3dvcmtlcl9wcm9taXNlID0gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9u
KHNjb3BlKQorICAudGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICAgIGlmIChyZWcpCisgICAgICAg
IHJldHVybiByZWcudW5yZWdpc3RlcigpOworICAgIH0pCisgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHNjcmlwdCwge3Nj
b3BlOiBzY29wZX0pOworICAgIH0pCisgIC50aGVuKGZ1bmN0aW9uKHJlZykgeworICAgICAgcmVn
aXN0cmF0aW9uID0gcmVnOworICAgICAgd29ya2VyID0gcmVnLmluc3RhbGxpbmc7CisgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgIHdvcmtlci5h
ZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICBpZiAod29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKQorICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKword2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CisgIHZhciBjcm9zc19vcmln
aW5fY2xpZW50X2lkcyA9IFtdOworICBjcm9zc19vcmlnaW5fY2xpZW50X2lkcy5wdXNoKGUuZGF0
YS5jbGllbnRJZCk7CisgIHdhaXRfZm9yX3dvcmtlcl9wcm9taXNlCisgICAgLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICB9KQorICAg
IC50aGVuKGZ1bmN0aW9uKGlmcmFtZSkgeworICAgICAgICBhZGRfY29tcGxldGlvbl9jYWxsYmFj
ayhmdW5jdGlvbigpIHsgaWZyYW1lLnJlbW92ZSgpOyB9KTsKKyAgICAgICAgdmFyIGNoYW5uZWwg
PSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAg
ICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKAorICAgICAgICAgICAgeyB0eXBlOiAn
Y2xpZW50SWQnLCB2YWx1ZTogZS5kYXRhIH0sIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10KKyAg
ICAgICAgICApOworICAgICAgICB9OworICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnBvc3RNZXNzYWdlKAorICAgICAgICAgICAg
e3BvcnQ6Y2hhbm5lbC5wb3J0MiwgY2xpZW50SWRzOiBjcm9zc19vcmlnaW5fY2xpZW50X2lkc30s
CisgICAgICAgICAgICBbY2hhbm5lbC5wb3J0Ml0pOworICAgICAgfSk7Cit9KTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LW90
aGVyLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0
LW90aGVyLW9yaWdpbi5odG1sCmluZGV4IGNiZDNkY2M2ZjNiMTM0ODQ2NjNlMmFiOWQ2ODMyZTU1
NzBjZTVkNGQuLjYzNDJmZTA0ZjQwNGUzNmUyZmQ3YzhmOTE5NjBkZWQyYWUxYzkxZWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC1vdGhlci1vcmln
aW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtb3Ro
ZXItb3JpZ2luLmh0bWwKQEAgLTEsNSArMSw1IEBACiA8IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQg
c3JjPSJnZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1v
bi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0idGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogdmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0
X2luZm8oKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LWdldC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQt
d29ya2VyLmpzCmluZGV4IDlhYzJjMjI2NDU4OTdhZDFmMTVjMTkxNzBiNjM1Y2I0YjNkYjA3N2Mu
Ljc3Yzk5ZTgzNTIxOTU2MGUwZjVlNWZiMGJkZDc0ODM5NTY1ZWM3ZTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLWdldC13b3JrZXIuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcwpAQCAtMSw1MyAr
MSw0OSBAQAorLy8gVGhpcyB3b3JrZXIgaXMgZGVzaWduZWQgdG8gZXhwb3NlIGluZm9ybWF0aW9u
IGFib3V0IGNsaWVudHMgdGhhdCBpcyBvbmx5IGF2YWlsYWJsZSBmcm9tIFNlcnZpY2UgV29ya2Vy
IGNvbnRleHRzLgorLy8KKy8vIEluIHRoZSBjYXNlIG9mIHRoZSBgb25mZXRjaGAgaGFuZGxlciwg
aXQgcHJvdmlkZXMgdGhlIGBjbGllbnRJZGAgcHJvcGVydHkgb2YKKy8vIHRoZSBgZXZlbnRgIG9i
amVjdC4gSW4gdGhlIGNhc2Ugb2YgdGhlIGBvbm1lc3NhZ2VgIGhhbmRsZXIsIGl0IHByb3ZpZGVz
IHRoZQorLy8gQ2xpZW50IGluc3RhbmNlIGF0dHJpYnV0ZXMgb2YgdGhlIHJlcXVlc3RlZCBjbGll
bnRzLgogc2VsZi5vbmZldGNoID0gZnVuY3Rpb24oZSkgewotICBpZiAoZS5yZXF1ZXN0LnVybC5p
bmRleE9mKCJjbGllbnRzLWdldC1mcmFtZS5odG1sIikgPj0gMCkgewotICAgIGlmIChlLmNsaWVu
dElkID09PSBudWxsKSB7Ci0gICAgICBlLnJlc3BvbmRXaXRoKGZldGNoKGUucmVxdWVzdCkpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICBlLnJlc3BvbmRXaXRoKFJlc3BvbnNlLmVycm9yKCkpOwotICAg
IH0KKyAgaWYgKGUucmVxdWVzdC5tb2RlID09PSAnbmF2aWdhdGUnICYmIGUuY2xpZW50SWQgIT09
IG51bGwpIHsKKyAgICBlLnJlc3BvbmRXaXRoKFJlc3BvbnNlLmVycm9yKAorICAgICAgJ2BjbGll
bnRJZGAgaW5jb3JyZWN0bHkgc2V0IHRvIG5vbi1udWxsIHZhbHVlIGZvciByZXF1ZXN0IHdpdGgg
bW9kZSBgbmF2aWdhdGVgJworICAgICkpOworICAgIHJldHVybjsKKyAgfQorCisgIGlmICgvXC9j
bGllbnRJZCQvLnRlc3QoZS5yZXF1ZXN0LnVybCkpIHsKKyAgICBlLnJlc3BvbmRXaXRoKG5ldyBS
ZXNwb25zZShlLmNsaWVudElkKSk7CiAgICAgcmV0dXJuOwogICB9Ci0gIGUucmVzcG9uZFdpdGgo
bmV3IFJlc3BvbnNlKGUuY2xpZW50SWQpKTsKIH07CiAKIHNlbGYub25tZXNzYWdlID0gZnVuY3Rp
b24oZSkgewogICB2YXIgcG9ydCA9IGUuZGF0YS5wb3J0OwotICBpZiAoZS5kYXRhLm1lc3NhZ2Ug
PT0gJ2dldF9jbGllbnRfaWRzJykgewotICAgIHZhciBjbGllbnRJZHMgPSBlLmRhdGEuY2xpZW50
SWRzOwotICAgIHZhciBtZXNzYWdlID0gW107CisgIHZhciBjbGllbnRfaWRzID0gZS5kYXRhLmNs
aWVudElkczsKKyAgdmFyIG1lc3NhZ2UgPSBbXTsKIAotICAgIFByb21pc2UuYWxsKAotICAgICAg
ICBjbGllbnRJZHMubWFwKGZ1bmN0aW9uKGNsaWVudElkKSB7Ci0gICAgICAgICAgcmV0dXJuIHNl
bGYuY2xpZW50cy5nZXQoY2xpZW50SWQpOwotICAgICAgICB9KS5jb25jYXQoc2VsZi5jbGllbnRz
LmdldCgiaW52YWxpZC1pZCIpKQotICAgICAgKS50aGVuKGZ1bmN0aW9uKGNsaWVudHMpIHsKLSAg
ICAgICAgY2xpZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGNsaWVudCkgewotICAgICAgICAgICAgaWYg
KGNsaWVudCBpbnN0YW5jZW9mIENsaWVudCkgewotICAgICAgICAgICAgICBtZXNzYWdlLnB1c2go
W2NsaWVudC52aXNpYmlsaXR5U3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50LmZvY3VzZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LnVybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuZnJhbWVUeXBlXSk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICBtZXNzYWdlLnB1c2goY2xpZW50KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICB9KTsKLSAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShtZXNzYWdlKTsK
LSAgICAgIH0pOwotICB9IGVsc2UgaWYgKGUuZGF0YS5tZXNzYWdlID09ICdnZXRfb3RoZXJfY2xp
ZW50X2lkJykgewotICAgIHZhciBjbGllbnRJZCA9IGUuZGF0YS5jbGllbnRJZDsKLSAgICB2YXIg
bWVzc2FnZTsKLQotICAgIHNlbGYuY2xpZW50cy5nZXQoY2xpZW50SWQpCi0gICAgICAudGhlbihm
dW5jdGlvbihjbGllbnQpIHsKLSAgICAgICAgICBpZiAoY2xpZW50IGluc3RhbmNlb2YgQ2xpZW50
KSB7Ci0gICAgICAgICAgICBtZXNzYWdlID0gW2NsaWVudC52aXNpYmlsaXR5U3RhdGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgIGNsaWVudC5mb2N1c2VkLAotICAgICAgICAgICAgICAgICAgICAg
ICBjbGllbnQudXJsLAotICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuZnJhbWVUeXBlXTsK
KyAgZS53YWl0VW50aWwoUHJvbWlzZS5hbGwoCisgICAgICBjbGllbnRfaWRzLm1hcChmdW5jdGlv
bihjbGllbnRfaWQpIHsKKyAgICAgICAgICByZXR1cm4gc2VsZi5jbGllbnRzLmdldChjbGllbnRf
aWQpOworICAgICAgICB9KSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGNsaWVudHMpIHsKKyAgICAg
ICAgICAvLyBObyBtYXRjaGluZyBjbGllbnQgZm9yIGEgZ2l2ZW4gaWQgb3IgYSBtYXRjaGVkIGNs
aWVudCBpcyBvZmYtb3JpZ2luCisgICAgICAgICAgLy8gZnJvbSB0aGUgc2VydmljZSB3b3JrZXIu
CisgICAgICAgICAgaWYgKGNsaWVudHMubGVuZ3RoID09IDEgJiYgY2xpZW50c1swXSA9PSB1bmRl
ZmluZWQpIHsKKyAgICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoY2xpZW50c1swXSk7CiAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBjbGllbnQ7CisgICAgICAgICAg
ICBjbGllbnRzLmZvckVhY2goZnVuY3Rpb24oY2xpZW50KSB7CisgICAgICAgICAgICAgICAgaWYg
KGNsaWVudCBpbnN0YW5jZW9mIENsaWVudCkgeworICAgICAgICAgICAgICAgICAgbWVzc2FnZS5w
dXNoKFtjbGllbnQudmlzaWJpbGl0eVN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGllbnQuZm9jdXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50LnVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LnR5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5mcmFtZVR5cGVdKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgbWVzc2FnZS5wdXNoKGNsaWVu
dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHBv
cnQucG9zdE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgICAgfQotICAgICAgICAgIHBvcnQucG9z
dE1lc3NhZ2UobWVzc2FnZSk7Ci0gICAgICAgIH0pOwotICB9CisgICAgICAgIH0pKTsKIH07CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC1j
bGllbnQtdHlwZXMtZGVkaWNhdGVkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy1kZWRpY2F0ZWQtd29ya2VyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVhM2YwNGQzM2FhYWU2NGViOGFiZWQxNmRjMzZlODE4MWZlZDlkZTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFs
bC1jbGllbnQtdHlwZXMtZGVkaWNhdGVkLXdvcmtlci5qcwpAQCAtMCwwICsxLDMgQEAKK29ubWVz
c2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgcG9zdE1lc3NhZ2UoZS5kYXRhKTsKK307CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC1jbGllbnQt
dHlwZXMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1t
YXRjaGFsbC1jbGllbnQtdHlwZXMtaWZyYW1lLmh0bWwKaW5kZXggN2UyMmMyNTZlOWY1NzAwODlj
NWM5ZDNlZThkY2RlM2EyYTIyOTJhOS4uYWM4MDMzNzM4YjJlMTgyYjMwYmU5MTZjZGM4Y2IxMWFi
NjNjNDk5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMt
bWF0Y2hhbGwtY2xpZW50LXR5cGVzLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy1pZnJhbWUuaHRtbApAQCAt
NCw1ICs0LDUgQEAKICAgQ2hhbmdlIHRoZSBwYWdlIFVSTCB1c2luZyB0aGUgSGlzdG9yeSBBUEkg
dG8gZW5zdXJlIHRoYXQgU2VydmljZVdvcmtlckNsaWVudAogICB1c2VzIHRoZSBjcmVhdGlvbiBV
UkwuCiAgLS0+Ci08Ym9keSBvbmxvYWQ9Imhpc3RvcnkucHVzaFN0YXRlKHt9LCAndGl0bGUnLCAn
bmV3LXVybC5odG1sJykiPgorPGJvZHkgb25sb2FkPSJoaXN0b3J5LnB1c2hTdGF0ZSh7fSwgJ3Rp
dGxlJywgJ3VybC1tb2RpZmllZC12aWEtcHVzaHN0YXRlLmh0bWwnKSI+CiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC1vbi1l
dmFsdWF0aW9uLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRz
LW1hdGNoYWxsLW9uLWV2YWx1YXRpb24td29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxNTU5YWNhMzli
NmQ0ZmYwNzljZmY5ZjQxYmFlMzQwOTA2MmZmMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1tYXRjaGFsbC1vbi1ldmFsdWF0aW9uLXdvcmtl
ci5qcwpAQCAtMCwwICsxLDExIEBACitpbXBvcnRTY3JpcHRzKCd0ZXN0LWhlbHBlcnMuc3ViLmpz
Jyk7CisKK3ZhciBwYWdlX3VybCA9IG5vcm1hbGl6ZVVSTCgnLi4vY2xpZW50cy1tYXRjaGFsbC1v
bi1ldmFsdWF0aW9uLmh0dHBzLmh0bWwnKTsKKworc2VsZi5jbGllbnRzLm1hdGNoQWxsKHtpbmNs
dWRlVW5jb250cm9sbGVkOiB0cnVlfSkKKyAgLnRoZW4oZnVuY3Rpb24oY2xpZW50cykgeworICAg
ICAgY2xpZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGNsaWVudCkgeworICAgICAgICAgIGlmIChjbGll
bnQudXJsID09IHBhZ2VfdXJsKQorICAgICAgICAgICAgY2xpZW50LnBvc3RNZXNzYWdlKCdtYXRj
aGVkJyk7CisgICAgICAgIH0pOworICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtd29ya2VyLmpzCmluZGV4IGYwYWU5MGQ4MTQy
Mjc3ODFlNDc5NDkyODQ1NDM2YjJhNjBjMjA3MGUuLmQ2NjM0ZjRkNDBlZjZhZGEzNDQwYjQ0M2Zh
ZmYxNzZlNTQwODJhNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9j
bGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvY2xpZW50cy1tYXRjaGFsbC13b3JrZXIuanMKQEAgLTIsMjMgKzIsMzAgQEAgc2VsZi5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihlKSB7CiAgIHZhciBwb3J0ID0gZS5kYXRhLnBvcnQ7CiAgIHZhciBv
cHRpb25zID0gZS5kYXRhLm9wdGlvbnM7CiAKLSAgc2VsZi5jbGllbnRzLm1hdGNoQWxsKG9wdGlv
bnMpLnRoZW4oZnVuY3Rpb24oY2xpZW50cykgewotICAgICAgdmFyIG1lc3NhZ2UgPSBbXTsKLSAg
ICAgIGNsaWVudHMuZm9yRWFjaChmdW5jdGlvbihjbGllbnQpIHsKLSAgICAgICAgICB2YXIgZnJh
bWVfdHlwZSA9IGNsaWVudC5mcmFtZVR5cGU7Ci0gICAgICAgICAgaWYgKGNsaWVudC51cmwuaW5k
ZXhPZignY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRwcy5odG1sJykg
PiAtMSAmJgotICAgICAgICAgICAgICBjbGllbnQuZnJhbWVUeXBlID09ICdhdXhpbGlhcnknKSB7
Ci0gICAgICAgICAgICAvLyBUaGUgdGVzdCB0YWIgbWlnaHQgYmUgb3BlbmVkIHVzaW5nIHdpbmRv
dy5vcGVuKCkgYnkgdGhlIHRlc3QgZnJhbWV3b3JrLgotICAgICAgICAgICAgLy8gSW4gdGhhdCBj
YXNlLCBqdXN0IHByZXRlbmQgaXQncyB0b3AtbGV2ZWwhCi0gICAgICAgICAgICBmcmFtZV90eXBl
ID0gJ3RvcC1sZXZlbCc7Ci0gICAgICAgICAgfQotICAgICAgICAgIG1lc3NhZ2UucHVzaChbY2xp
ZW50LnZpc2liaWxpdHlTdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC5mb2N1
c2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LnVybCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYW1lX3R5cGVdKTsKLSAgICAgICAgfSk7Ci0gICAgICAvLyBTb3J0IGJ5IHVy
bAotICAgICAgbWVzc2FnZS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGFbMl0gPiBiWzJd
ID8gMSA6IC0xOyB9KTsKLSAgICAgIHBvcnQucG9zdE1lc3NhZ2UobWVzc2FnZSk7Ci0gICAgfSk7
CisgIGUud2FpdFVudGlsKHNlbGYuY2xpZW50cy5tYXRjaEFsbChvcHRpb25zKQorICAgIC50aGVu
KGZ1bmN0aW9uKGNsaWVudHMpIHsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBbXTsKKyAgICAgICAg
Y2xpZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGNsaWVudCkgeworICAgICAgICAgICAgdmFyIGZyYW1l
X3R5cGUgPSBjbGllbnQuZnJhbWVUeXBlOworICAgICAgICAgICAgaWYgKGNsaWVudC51cmwuaW5k
ZXhPZignY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRwcy5odG1sJykg
PiAtMSAmJgorICAgICAgICAgICAgICAgIGNsaWVudC5mcmFtZVR5cGUgPT0gJ2F1eGlsaWFyeScp
IHsKKyAgICAgICAgICAgICAgLy8gVGhlIHRlc3QgdGFiIG1pZ2h0IGJlIG9wZW5lZCB1c2luZyB3
aW5kb3cub3BlbigpIGJ5IHRoZSB0ZXN0IGZyYW1ld29yay4KKyAgICAgICAgICAgICAgLy8gSW4g
dGhhdCBjYXNlLCBqdXN0IHByZXRlbmQgaXQncyB0b3AtbGV2ZWwhCisgICAgICAgICAgICAgIGZy
YW1lX3R5cGUgPSAndG9wLWxldmVsJzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1lc3Nh
Z2UucHVzaChbY2xpZW50LnZpc2liaWxpdHlTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpZW50LmZvY3VzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC51cmws
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudC50eXBlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBmcmFtZV90eXBlXSk7CisgICAgICAgICAgfSk7CisgICAgICAgIC8vIFNvcnQg
YnkgdXJsCisgICAgICAgIGlmICghZS5kYXRhLmRpc2FibGVTb3J0KSB7CisgICAgICAgICAgbWVz
c2FnZS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHsgcmV0dXJuIGFbMl0gPiBiWzJdID8gMSA6IC0xOyB9
KTsKKyAgICAgICAgfQorICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKG1lc3NhZ2UpOworICAgICAg
fSkKKyAgICAuY2F0Y2goZSA9PiB7CisgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ2NsaWVudHMu
bWF0Y2hBbGwoKSByZWplY3RlZDogJyArIGUpOworICAgICAgfSkpOwogfTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpz
CmluZGV4IDQzMjQ0ZTFkOTkzMDIzYWZkZjYwZjk1ZDMwZjM1OWUwMzdlNzVjZGIuLmFiZWM1ZmRk
NThiMjhiN2I2YTFkMGJhNDUzZTY3Y2NlMWE0ZDQ5NzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItaW50ZXJjZXB0b3IuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwpAQCAtMSw0
ICsxLDQgQEAKLWltcG9ydFNjcmlwdHMoJ2dldC1ob3N0LWluZm8uc3ViLmpzJyk7CitpbXBvcnRT
Y3JpcHRzKCcvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzJyk7CiAKIHZhciB3b3JrZXJfdGV4
dCA9ICdwb3N0TWVzc2FnZSgid29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXIiKTsgJzsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Vj
aG8tbWVzc2FnZS10by1zb3VyY2Utd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2VjaG8tbWVzc2FnZS10by1zb3VyY2Utd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiYmQzNWZi
NGY2MDhlZGM1MjZlODM2OTgzNGM5ODkxZjA0ZjlmODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZWNoby1tZXNzYWdlLXRvLXNvdXJjZS13b3JrZXIuanMK
QEAgLTAsMCArMSwzIEBACithZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZ0ID0+IHsKKyAg
ZXZ0LnNvdXJjZS5wb3N0TWVzc2FnZShldnQuZGF0YSk7Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS1idXQtc2xvdy13b3JrZXIuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZW1wdHktYnV0LXNsb3ctd29ya2VyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkyYWJhYzdhMzg0ZDUxNTEyNTJhNTc0OTUzM2RhNWU5MTQzODBlMDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZW1wdHktYnV0LXNsb3ctd29ya2VyLmpz
CkBAIC0wLDAgKzEsOCBAQAorYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBldnQgPT4geworICBp
ZiAoZXZ0LnJlcXVlc3QudXJsLmVuZHNXaXRoKCdzbG93JykpIHsKKyAgICAvLyBQZXJmb3JtYW5j
ZS5ub3coKSBtaWdodCBiZSBhIGJpdCBiZXR0ZXIgaGVyZSwgYnV0IERhdGUubm93KCkgaGFzCisg
ICAgLy8gYmV0dGVyIGNvbXBhdCBpbiB3b3JrZXJzIHJpZ2h0IG5vdy4KKyAgICBsZXQgc3RhcnQg
PSBEYXRlLm5vdygpOworICAgIHdoaWxlKERhdGUubm93KCkgLSBzdGFydCA8IDIwMDApOworICB9
Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VtcHR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZl
YjExOTQ2YjgwZDg1YzQwYmJhOGE5ZTg1OWY2OTI4Y2Y5MDQ1NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS5odG1sCkBAIC0wLDAgKzEsNiBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxib2R5PgoraGVsbG8gd29ybGQKKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjlkZTI5
YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50aWwuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZXh0ZW5kYWJsZS1ldmVudC1hc3luYy13YWl0dW50
aWwuanMKaW5kZXggZDc3MjM4ZDkzOTdjMTRiMTZhNzE0MTY1ZTBlMzM0MzhiMDAwYjU4My4uNDBh
NGNiYmEyYTJmMTAxNzZmNjQ2MWYxNzU4MDg2NTA5ZTgxMTg1YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmpz
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LWFzeW5j
LXdhaXR1bnRpbC5qcwpAQCAtMSwyMCArMSwxMjcgQEAKLXZhciByZXN1bHQgPSAnRkFJTDogZGlk
IG5vdCB0aHJvdy4nOworLy8gY29udHJvbGxlZCBieSAnaW5pdCcvJ2RvbmUnIG1lc3NhZ2VzLgor
dmFyIHJlc29sdmVMb2NrUHJvbWlzZTsKK3ZhciBwb3J0OwogCiBzZWxmLmFkZEV2ZW50TGlzdGVu
ZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgewotICAgIGV2ZW50LmRhdGEucG9ydC5wb3N0
TWVzc2FnZShyZXN1bHQpOworICAgIHZhciB3YWl0UHJvbWlzZTsKKyAgICB2YXIgcmVzb2x2ZVRl
c3RQcm9taXNlOworCisgICAgc3dpdGNoIChldmVudC5kYXRhLnN0ZXApIHsKKyAgICAgIGNhc2Ug
J2luaXQnOgorICAgICAgICBldmVudC53YWl0VW50aWwobmV3IFByb21pc2UoKHJlcykgPT4geyBy
ZXNvbHZlTG9ja1Byb21pc2UgPSByZXM7IH0pKTsKKyAgICAgICAgcG9ydCA9IGV2ZW50LmRhdGEu
cG9ydDsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlICdkb25lJzoKKyAgICAgICAgcmVzb2x2
ZUxvY2tQcm9taXNlKCk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnbm8tY3VycmVudC1l
eHRlbnNpb24tZGlmZmVyZW50LXRhc2snOgorICAgICAgICBhc3luY190YXNrX3dhaXR1bnRpbChl
dmVudCkudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ0ludmFsaWRTdGF0ZUVycm9yJykpOwor
ICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgJ25vLWN1cnJlbnQtZXh0ZW5zaW9uLWRpZmZlcmVu
dC1taWNyb3Rhc2snOgorICAgICAgICBhc3luY19taWNyb3Rhc2tfd2FpdHVudGlsKGV2ZW50KS50
aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnSW52YWxpZFN0YXRlRXJyb3InKSk7CisgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSAnY3VycmVudC1leHRlbnNpb24tZGlmZmVyZW50LXRhc2snOgor
ICAgICAgICBldmVudC53YWl0VW50aWwobmV3IFByb21pc2UoKHJlcykgPT4geyByZXNvbHZlVGVz
dFByb21pc2UgPSByZXM7IH0pKTsKKyAgICAgICAgYXN5bmNfdGFza193YWl0dW50aWwoZXZlbnQp
LnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKS50aGVuKHJlc29sdmVUZXN0UHJvbWlz
ZSk7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnY3VycmVudC1leHRlbnNpb24tZXhwaXJl
ZC1zYW1lLW1pY3JvdGFzay10dXJuJzoKKyAgICAgICAgd2FpdFByb21pc2UgPSBQcm9taXNlLnJl
c29sdmUoKTsKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKHdhaXRQcm9taXNlKTsKKyAgICAgICAg
d2FpdFByb21pc2UudGhlbigoKSA9PiB7IHJldHVybiBzeW5jX3dhaXR1bnRpbChldmVudCk7IH0p
CisgICAgICAgICAgLnRoZW4ocmVwb3J0UmVzdWx0RXhwZWN0aW5nKCdPSycpKQorICAgICAgICBi
cmVhazsKKyAgICAgIGNhc2UgJ2N1cnJlbnQtZXh0ZW5zaW9uLWV4cGlyZWQtc2FtZS1taWNyb3Rh
c2stdHVybi1leHRyYSc6CisgICAgICAgIC8vIFRoZSBwcm9taXNlIGhhbmRsZXIgcXVldWVzIGEg
bmV3IG1pY3JvdGFzayAqYWZ0ZXIqIHRoZSBjaGVjayBmb3IgbmV3CisgICAgICAgIC8vIGV4dGVu
c2lvbnMgd2FzIHBlcmZvcm1lZC4KKyAgICAgICAgd2FpdFByb21pc2UgPSBQcm9taXNlLnJlc29s
dmUoKTsKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKHdhaXRQcm9taXNlKTsKKyAgICAgICAgd2Fp
dFByb21pc2UudGhlbigoKSA9PiB7IHJldHVybiBhc3luY19taWNyb3Rhc2tfd2FpdHVudGlsKGV2
ZW50KTsgfSkKKyAgICAgICAgICAudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ0ludmFsaWRT
dGF0ZUVycm9yJykpCisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAnY3VycmVudC1leHRlbnNp
b24tZXhwaXJlZC1kaWZmZXJlbnQtdGFzayc6CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChQcm9t
aXNlLnJlc29sdmUoKSk7CisgICAgICAgIGFzeW5jX3Rhc2tfd2FpdHVudGlsKGV2ZW50KS50aGVu
KHJlcG9ydFJlc3VsdEV4cGVjdGluZygnSW52YWxpZFN0YXRlRXJyb3InKSk7CisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSAnc2NyaXB0LWV4dGVuZGFibGUtZXZlbnQnOgorICAgICAgICBuZXdf
ZXZlbnRfd2FpdHVudGlsKCkudGhlbihyZXBvcnRSZXN1bHRFeHBlY3RpbmcoJ0ludmFsaWRTdGF0
ZUVycm9yJykpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZXZlbnQuc291cmNlLnBvc3RN
ZXNzYWdlKCdBQ0snKTsKICAgfSk7CiAKLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcs
IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgc2VsZi5pbnN0YWxsRXZlbnQgPSBldmVudDsKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVu
dC5yZXF1ZXN0LnVybC5pbmRleE9mKCdwZW5kaW5nLXJlc3BvbmR3aXRoLWFzeW5jLXdhaXR1bnRp
bCcpICE9IC0xKSB7CisgICAgICB2YXIgcmVzb2x2ZUZldGNoOworICAgICAgbGV0IHJlc3BvbnNl
ID0gbmV3IFByb21pc2UoKHJlcykgPT4geyByZXNvbHZlRmV0Y2ggPSByZXM7IH0pOworICAgICAg
ZXZlbnQucmVzcG9uZFdpdGgocmVzcG9uc2UpOworICAgICAgYXN5bmNfdGFza193YWl0dW50aWwo
ZXZlbnQpCisgICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnT0snKSkKKyAgICAg
ICAgLnRoZW4oKCkgPT4geyByZXNvbHZlRmV0Y2gobmV3IFJlc3BvbnNlKCdPSycpKTsgfSk7Cisg
ICAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCdyZXNwb25kd2l0aC1taWNy
b3Rhc2stc3luYy13YWl0dW50aWwnKSAhPSAtMSkgeworICAgICAgcmVzcG9uc2UgPSBQcm9taXNl
LnJlc29sdmUobmV3IFJlc3BvbnNlKCdSRVNQJykpOworICAgICAgZXZlbnQucmVzcG9uZFdpdGgo
cmVzcG9uc2UpOworICAgICAgcmVzcG9uc2UudGhlbigoKSA9PiB7IHJldHVybiBzeW5jX3dhaXR1
bnRpbChldmVudCk7IH0pCisgICAgICAgIC50aGVuKHJlcG9ydFJlc3VsdEV4cGVjdGluZygnT0sn
KSkKKyAgICB9IGVsc2UgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ3Jlc3BvbmR3aXRo
LW1pY3JvdGFzay1hc3luYy13YWl0dW50aWwnKSAhPSAtMSkgeworICAgICAgcmVzcG9uc2UgPSBQ
cm9taXNlLnJlc29sdmUobmV3IFJlc3BvbnNlKCdSRVNQJykpOworICAgICAgZXZlbnQucmVzcG9u
ZFdpdGgocmVzcG9uc2UpOworICAgICAgcmVzcG9uc2UudGhlbigoKSA9PiB7IHJldHVybiBhc3lu
Y19taWNyb3Rhc2tfd2FpdHVudGlsKGV2ZW50KTsgfSkKKyAgICAgICAgLnRoZW4ocmVwb3J0UmVz
dWx0RXhwZWN0aW5nKCdJbnZhbGlkU3RhdGVFcnJvcicpKQorICAgIH0KICAgfSk7CiAKLXNlbGYu
YWRkRXZlbnRMaXN0ZW5lcignYWN0aXZhdGUnLCBmdW5jdGlvbihldmVudCkgeworZnVuY3Rpb24g
cmVwb3J0UmVzdWx0RXhwZWN0aW5nKGV4cGVjdGVkUmVzdWx0KSB7CisgIHJldHVybiBmdW5jdGlv
biAocmVzdWx0KSB7CisgICAgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0IDogcmVzdWx0LCBleHBl
Y3RlZDogZXhwZWN0ZWRSZXN1bHR9KTsKKyAgICByZXR1cm4gcmVzdWx0OworICB9OworfQorCitm
dW5jdGlvbiBzeW5jX3dhaXR1bnRpbChldmVudCkgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJl
cywgcmVqKSA9PiB7CiAgICAgdHJ5IHsKLSAgICAgIHNlbGYuaW5zdGFsbEV2ZW50LndhaXRVbnRp
bChuZXcgUHJvbWlzZShmdW5jdGlvbigpe30pKTsKKyAgICAgICAgZXZlbnQud2FpdFVudGlsKFBy
b21pc2UucmVzb2x2ZSgpKTsKKyAgICAgICAgcmVzKCdPSycpOworICAgICAgfSBjYXRjaCAoZXJy
b3IpIHsKKyAgICAgICAgcmVzKGVycm9yLm5hbWUpOworICAgICAgfQorICB9KTsKK30KKworZnVu
Y3Rpb24gbmV3X2V2ZW50X3dhaXR1bnRpbCgpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMs
IHJlaikgPT4geworICAgIHRyeSB7CisgICAgICBsZXQgZSA9IG5ldyBFeHRlbmRhYmxlRXZlbnQo
J2ZvbycpOworICAgICAgZS53YWl0VW50aWwobmV3IFByb21pc2UoKCkgPT4ge30pKTsKKyAgICAg
IHJlcygnT0snKTsKICAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgaWYgKGVycm9yLm5hbWUg
PT0gJ0ludmFsaWRTdGF0ZUVycm9yJykKLSAgICAgICAgcmVzdWx0ID0gJ1BBU1MnOwotICAgICAg
ZWxzZQotICAgICAgICByZXN1bHQgPSAnRkFJTDogdW5leHBlY3RlZCBleGNlcHRpb246ICcgKyBl
cnJvcjsKKyAgICAgIHJlcyhlcnJvci5uYW1lKTsKICAgICB9CiAgIH0pOworfQorCitmdW5jdGlv
biBhc3luY19taWNyb3Rhc2tfd2FpdHVudGlsKGV2ZW50KSB7CisgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzLCByZWopID0+IHsKKyAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHsKKyAg
ICAgIHRyeSB7CisgICAgICAgIGV2ZW50LndhaXRVbnRpbChQcm9taXNlLnJlc29sdmUoKSk7Cisg
ICAgICAgIHJlcygnT0snKTsKKyAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIHJlcyhl
cnJvci5uYW1lKTsKKyAgICAgIH0KKyAgICB9KTsKKyAgfSk7Cit9CisKK2Z1bmN0aW9uIGFzeW5j
X3Rhc2tfd2FpdHVudGlsKGV2ZW50KSB7CisgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzLCByZWop
ID0+IHsKKyAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAgICAgIHRyeSB7CisgICAgICAgIGV2ZW50
LndhaXRVbnRpbChQcm9taXNlLnJlc29sdmUoKSk7CisgICAgICAgIHJlcygnT0snKTsKKyAgICAg
IH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIHJlcyhlcnJvci5uYW1lKTsKKyAgICAgIH0KKyAg
ICB9LCAwKTsKKyAgfSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZXh0ZW5kYWJsZS1ldmVudC13YWl0dW50aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZXh0ZW5kYWJsZS1ldmVudC13YWl0dW50aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBhOWViMDIz
ZjYyMTNjNzkzZTE0OGIyZWVmYmE3ZWFiODFjZTc5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9leHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5qcwpAQCAt
MCwwICsxLDg3IEBACit2YXIgcGVuZGluZ1BvcnRzID0gW107Cit2YXIgcG9ydFJlc29sdmVzID0g
W107CisKK29ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgdmFyIG1lc3NhZ2UgPSBlLmRhdGE7
CisgIGlmICgncG9ydCcgaW4gbWVzc2FnZSkgeworICAgIHZhciByZXNvbHZlID0gc2VsZi5wb3J0
UmVzb2x2ZXMuc2hpZnQoKTsKKyAgICBpZiAocmVzb2x2ZSkKKyAgICAgIHJlc29sdmUobWVzc2Fn
ZS5wb3J0KTsKKyAgICBlbHNlCisgICAgICBzZWxmLnBlbmRpbmdQb3J0cy5wdXNoKG1lc3NhZ2Uu
cG9ydCk7CisgIH0KK307CisKK2Z1bmN0aW9uIGZ1bGZpbGxQcm9taXNlKCkgeworICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgLy8gTWFrZSBzdXJlIHRoZSBv
bmluc3RhbGwvb25hY3RpdmF0ZSBjYWxsYmFjayByZXR1cm5zIGZpcnN0LgorICAgICAgUHJvbWlz
ZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgcG9ydCA9IHNlbGYu
cGVuZGluZ1BvcnRzLnNoaWZ0KCk7CisgICAgICAgICAgaWYgKHBvcnQpCisgICAgICAgICAgICBy
ZXNvbHZlKHBvcnQpOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNlbGYucG9ydFJlc29s
dmVzLnB1c2gocmVzb2x2ZSk7CisgICAgICAgIH0pOworICAgIH0pLnRoZW4oZnVuY3Rpb24ocG9y
dCkgeworICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKCdTWU5DJyk7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICBwb3J0Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgaWYgKGUuZGF0YSA9PSAnQUNLJykKKyAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgIH0pOwor
ICAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHJlamVjdFByb21pc2UoKSB7CisgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIC8vIE1ha2Ugc3VyZSB0
aGUgb25pbnN0YWxsL29uYWN0aXZhdGUgY2FsbGJhY2sgcmV0dXJucyBmaXJzdC4KKyAgICAgIFBy
b21pc2UucmVzb2x2ZSgpLnRoZW4ocmVqZWN0KTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gc3Ry
aXBTY29wZU5hbWUodXJsKSB7CisgIHJldHVybiB1cmwuc3BsaXQoJy8nKS5zbGljZSgtMSlbMF07
Cit9CisKK29uaW5zdGFsbCA9IGZ1bmN0aW9uKGUpIHsKKyAgc3dpdGNoIChzdHJpcFNjb3BlTmFt
ZShzZWxmLmxvY2F0aW9uLmhyZWYpKSB7CisgICAgY2FzZSAnaW5zdGFsbC1mdWxmaWxsZWQnOgor
ICAgICAgZS53YWl0VW50aWwoZnVsZmlsbFByb21pc2UoKSk7CisgICAgICBicmVhazsKKyAgICBj
YXNlICdpbnN0YWxsLXJlamVjdGVkJzoKKyAgICAgIGUud2FpdFVudGlsKHJlamVjdFByb21pc2Uo
KSk7CisgICAgICBicmVhazsKKyAgICBjYXNlICdpbnN0YWxsLW11bHRpcGxlLWZ1bGZpbGxlZCc6
CisgICAgICBlLndhaXRVbnRpbChmdWxmaWxsUHJvbWlzZSgpKTsKKyAgICAgIGUud2FpdFVudGls
KGZ1bGZpbGxQcm9taXNlKCkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnaW5zdGFsbC1yZWpl
Y3QtcHJlY2VkZW5jZSc6CisgICAgICAvLyBUaHJlZSAiZXh0ZW5kIGxpZmV0aW1lIHByb21pc2Vz
IiBhcmUgbmVlZGVkIHRvIHZlcmlmeSB0aGF0IHRoZSB1c2VyCisgICAgICAvLyBhZ2VudCB3YWl0
cyBmb3IgYWxsIHByb21pc2VzIHRvIHNldHRsZSBldmVuIGluIHRoZSBldmVudCBvZiByZWplY3Rp
b24uCisgICAgICAvLyBUaGUgZmlyc3QgcHJvbWlzZSBpcyBmdWxmaWxsZWQgb24gZGVtYW5kIGJ5
IHRoZSBjbGllbnQsIHRoZSBzZWNvbmQgaXMKKyAgICAgIC8vIGltbWVkaWF0ZWx5IHNjaGVkdWxl
ZCBmb3IgcmVqZWN0aW9uLCBhbmQgdGhlIHRoaXJkIGlzIGZ1bGZpbGxlZCBvbgorICAgICAgLy8g
ZGVtYW5kIGJ5IHRoZSBjbGllbnQgKGJ1dCBvbmx5IGFmdGVyIHRoZSBmaXJzdCBwcm9taXNlIGhh
cyBiZWVuCisgICAgICAvLyBmdWxmaWxsZWQpLgorICAgICAgLy8KKyAgICAgIC8vIFVzZXIgYWdl
bnRzIHdoaWNoIHNpbXBseSBleHBvc2UgYFByb21pc2UuYWxsYCBzZW1hbnRpY3MgaW4gdGhpcyBj
YXNlCisgICAgICAvLyAoYnkgZW50ZXJpbmcgdGhlICJyZWR1bmRhbnQgc3RhdGUiIGZvbGxvd2lu
ZyB0aGUgcmVqZWN0aW9uIG9mIHRoZQorICAgICAgLy8gc2Vjb25kIHByb21pc2UgYnV0IHByaW9y
IHRvIHRoZSBmdWxmaWxsbWVudCBvZiB0aGUgdGhpcmQpIGNhbiBiZQorICAgICAgLy8gaWRlbnRp
ZmllZCBmcm9tIHRoZSBjbGllbnQgY29udGV4dC4KKyAgICAgIGUud2FpdFVudGlsKGZ1bGZpbGxQ
cm9taXNlKCkpOworICAgICAgZS53YWl0VW50aWwocmVqZWN0UHJvbWlzZSgpKTsKKyAgICAgIGUu
d2FpdFVudGlsKGZ1bGZpbGxQcm9taXNlKCkpOworICAgICAgYnJlYWs7CisgIH0KK307CisKK29u
YWN0aXZhdGUgPSBmdW5jdGlvbihlKSB7CisgIHN3aXRjaCAoc3RyaXBTY29wZU5hbWUoc2VsZi5s
b2NhdGlvbi5ocmVmKSkgeworICAgIGNhc2UgJ2FjdGl2YXRlLWZ1bGZpbGxlZCc6CisgICAgICBl
LndhaXRVbnRpbChmdWxmaWxsUHJvbWlzZSgpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJ2Fj
dGl2YXRlLXJlamVjdGVkJzoKKyAgICAgIGUud2FpdFVudGlsKHJlamVjdFByb21pc2UoKSk7Cisg
ICAgICBicmVhazsKKyAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mYWlsLW9uLWZldGNoLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9mYWlsLW9uLWZldGNoLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTdmMjg5ZmJjOGU0M2IxZDU0
MGE0Nzc2MTUzOGZlODRiMTIxYzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ZhaWwtb24tZmV0Y2gtd29ya2VyLmpzCkBAIC0wLDAgKzEsNSBAQAoraW1w
b3J0U2NyaXB0cygnd29ya2VyLXRlc3RoYXJuZXNzLmpzJyk7CisKK3RoaXMuYWRkRXZlbnRMaXN0
ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5l
dyBSZXNwb25zZSgnRVJST1InKSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLWxvZ2luLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wtbG9naW4uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZTI5NjgwN2VkMTQyY2Y4ZGY3Y2Q3Y2IzYzU2Yzc1MTkyNGQ1MDE5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9s
LWxvZ2luLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPHNjcmlwdD4KKy8vIFNldCBhdXRoZW50aWNh
dGlvbiBpbmZvCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2
dCkgeworICAgIHZhciBwb3J0ID0gZXZ0LnBvcnRzWzBdOworICAgIGRvY3VtZW50LmNvb2tpZSA9
ICdjb29raWU9JyArIGV2dC5kYXRhLmNvb2tpZTsKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7CisgICAgeGhyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7bXNnOiAnTE9HSU4gRklOSVNIRUQnfSk7CisgICAg
ICB9LCBmYWxzZSk7CisgICAgeGhyLm9wZW4oJ0dFVCcsCisgICAgICAgICAgICAgJy4vZmV0Y2gt
YWNjZXNzLWNvbnRyb2wucHk/QXV0aCcsCisgICAgICAgICAgICAgdHJ1ZSwKKyAgICAgICAgICAg
ICBldnQuZGF0YS51c2VybmFtZSwgZXZ0LmRhdGEucGFzc3dvcmQpOworICAgIHhoci5zZW5kKCk7
CisgIH0sIGZhbHNlKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzZWEwZTBhZDY2ZTcy
ZWMyNTEwOWIzZjRjZTRiMTQ3ZjdhMTAzYzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkKQEAgLTAsMCArMSw2OSBA
QAoraW1wb3J0IGJhc2U2NAoraW1wb3J0IGpzb24KKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgorICAgIGhlYWRlcnMgPSBbXQorICAgIGhlYWRlcnMuYXBwZW5kKCgnWC1TZXJ2aWNlV29y
a2VyLVNlcnZlckhlYWRlcicsICdTZXRJblRoZVNlcnZlcicpKQorCisgICAgaWYgIkFDQU9yaWdp
biIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGZvciBpdGVtIGluIHJlcXVlc3QuR0VUWyJBQ0FP
cmlnaW4iXS5zcGxpdCgiLCIpOgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3Mt
Q29udHJvbC1BbGxvdy1PcmlnaW4iLCBpdGVtKSkKKworICAgIGZvciBzdWZmaXggaW4gWyJIZWFk
ZXJzIiwgIk1ldGhvZHMiLCAiQ3JlZGVudGlhbHMiXToKKyAgICAgICAgcXVlcnkgPSAiQUNBJXMi
ICUgc3VmZml4CisgICAgICAgIGhlYWRlciA9ICJBY2Nlc3MtQ29udHJvbC1BbGxvdy0lcyIgJSBz
dWZmaXgKKyAgICAgICAgaWYgcXVlcnkgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgICAgICBoZWFk
ZXJzLmFwcGVuZCgoaGVhZGVyLCByZXF1ZXN0LkdFVFtxdWVyeV0pKQorCisgICAgaWYgIkFDRUhl
YWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1D
b250cm9sLUV4cG9zZS1IZWFkZXJzIiwgcmVxdWVzdC5HRVRbIkFDRUhlYWRlcnMiXSkpCisKKyAg
ICBpZiAoIkF1dGgiIGluIHJlcXVlc3QuR0VUIGFuZCBub3QgcmVxdWVzdC5hdXRoLnVzZXJuYW1l
KSBvciAiQXV0aEZhaWwiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBzdGF0dXMgPSA0MDEKKyAg
ICAgICAgaGVhZGVycy5hcHBlbmQoKCdXV1ctQXV0aGVudGljYXRlJywgJ0Jhc2ljIHJlYWxtPSJS
ZXN0cmljdGVkIicpKQorICAgICAgICBib2R5ID0gJ0F1dGhlbnRpY2F0aW9uIGNhbmNlbGVkJwor
ICAgICAgICByZXR1cm4gc3RhdHVzLCBoZWFkZXJzLCBib2R5CisKKyAgICBpZiAiUE5HSU1BR0Ui
IGluIHJlcXVlc3QuR0VUOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkNvbnRlbnQtVHlwZSIs
ICJpbWFnZS9wbmciKSkKKyAgICAgICAgYm9keSA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoImlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElBcnM0YzZR
QUFBQVJuUVUxQiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFBQ3hqd3Y4
WVFVQUFBQUpjRWhaY3dBQURzUUFBQTdFQVpVckRoc0FBQUFoU1VSQlZEaFBZM3dyby9LZmdRTEFC
S1hKQnFNRyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImpCb0FBcU1HREx3
QkRBd0FFc29DVEZXdW5tUUFBQUFBU1VWT1JLNUNZSUk9IikKKyAgICAgICAgcmV0dXJuIGhlYWRl
cnMsIGJvZHkKKworCisgICAgdXNlcm5hbWUgPSByZXF1ZXN0LmF1dGgudXNlcm5hbWUgaWYgcmVx
dWVzdC5hdXRoLnVzZXJuYW1lIGVsc2UgInVuZGVmaW5lZCIKKyAgICBwYXNzd29yZCA9IHJlcXVl
c3QuYXV0aC5wYXNzd29yZCBpZiByZXF1ZXN0LmF1dGgudXNlcm5hbWUgZWxzZSAidW5kZWZpbmVk
IgorICAgIGNvb2tpZSA9IHJlcXVlc3QuY29va2llc1snY29va2llJ10udmFsdWUgaWYgJ2Nvb2tp
ZScgaW4gcmVxdWVzdC5jb29raWVzIGVsc2UgInVuZGVmaW5lZCIKKworICAgIGZpbGVzID0gW10K
KyAgICBmb3Iga2V5LCB2YWx1ZXMgaW4gcmVxdWVzdC5QT1NULml0ZXJpdGVtcygpOgorICAgICAg
ICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICB2YWx1ZSA9IHZhbHVlc1swXQorICAg
ICAgICBpZiBub3QgaGFzYXR0cih2YWx1ZSwgImZpbGUiKToKKyAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgIGRhdGEgPSB2YWx1ZS5maWxlLnJlYWQoKQorICAgICAgICBmaWxlcy5hcHBlbmQo
eyJrZXkiOiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiB2YWx1ZS5maWxlLm5h
bWUsCisgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiB2YWx1ZS50eXBlLAorICAgICAgICAg
ICAgICAgICAgICAgICJlcnJvciI6IDAsICNUT0RPLAorICAgICAgICAgICAgICAgICAgICAgICJz
aXplIjogbGVuKGRhdGEpLAorICAgICAgICAgICAgICAgICAgICAgICJjb250ZW50IjogZGF0YX0p
CisKKyAgICBnZXRfZGF0YSA9IHtrZXk6cmVxdWVzdC5HRVRba2V5XSBmb3Iga2V5LHZhbHVlIGlu
IHJlcXVlc3QuR0VULml0ZXJpdGVtcygpfQorICAgIHBvc3RfZGF0YSA9IHtrZXk6cmVxdWVzdC5Q
T1NUW2tleV0gZm9yIGtleSx2YWx1ZSBpbiByZXF1ZXN0LlBPU1QuaXRlcml0ZW1zKCkKKyAgICAg
ICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIocmVxdWVzdC5QT1NUW2tleV0sICJmaWxlIil9Cisg
ICAgaGVhZGVyc19kYXRhID0ge2tleTpyZXF1ZXN0LmhlYWRlcnNba2V5XSBmb3Iga2V5LHZhbHVl
IGluIHJlcXVlc3QuaGVhZGVycy5pdGVyaXRlbXMoKX0KKworICAgIGRhdGEgPSB7Impzb25wUmVz
dWx0IjogInN1Y2Nlc3MiLAorICAgICAgICAgICAgIm1ldGhvZCI6IHJlcXVlc3QubWV0aG9kLAor
ICAgICAgICAgICAgImhlYWRlcnMiOiBoZWFkZXJzX2RhdGEsCisgICAgICAgICAgICAiYm9keSI6
IHJlcXVlc3QuYm9keSwKKyAgICAgICAgICAgICJmaWxlcyI6IGZpbGVzLAorICAgICAgICAgICAg
IkdFVCI6IGdldF9kYXRhLAorICAgICAgICAgICAgIlBPU1QiOiBwb3N0X2RhdGEsCisgICAgICAg
ICAgICAidXNlcm5hbWUiOiB1c2VybmFtZSwKKyAgICAgICAgICAgICJwYXNzd29yZCI6IHBhc3N3
b3JkLAorICAgICAgICAgICAgImNvb2tpZSI6IGNvb2tpZX0KKworICAgIHJldHVybiBoZWFkZXJz
LCAicmVwb3J0KCAlcyApIiAlIGpzb24uZHVtcHMoZGF0YSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jYW52YXMtdGFpbnRpbmctaWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWlmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjliMDY4NjkwOTkzYzViNGMwN2U4NGRkNzQ4ZjRhYmYyNjkxMzNjN2UK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY2Fu
dmFzLXRhaW50aW5nLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMjkxIEBACis8c2NyaXB0IHNyYz0i
L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0idGVz
dC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIGltYWdl
X3BhdGggPSBiYXNlX3BhdGgoKSArICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9QTkdJTUFHRSc7
Cit2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOwordmFyIHBhcmFtcyA9IGdldF9xdWVy
eV9wYXJhbXMobG9jYXRpb24uaHJlZik7CisKK3ZhciBOT1RfVEFJTlRFRCA9ICdOT1RfVEFJTlRF
RCc7Cit2YXIgVEFJTlRFRCA9ICdUQUlOVEVEJzsKK3ZhciBMT0FEX0VSUk9SID0gJ0xPQURfRVJS
T1InOworCitmdW5jdGlvbiBnZXRfcXVlcnlfcGFyYW1zKHVybCkgeworICB2YXIgc2VhcmNoID0g
KG5ldyBVUkwodXJsKSkuc2VhcmNoOworICBpZiAoIXNlYXJjaCkgeworICAgIHJldHVybiB7fTsK
KyAgfQorICB2YXIgcmV0ID0ge307CisgIHZhciBwYXJhbXMgPSBzZWFyY2guc3Vic3RyaW5nKDEp
LnNwbGl0KCcmJyk7CisgIHBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uKHBhcmFtKSB7CisgICAgICB2
YXIgZWxlbWVudCA9IHBhcmFtLnNwbGl0KCc9Jyk7CisgICAgICByZXRbZGVjb2RlVVJJQ29tcG9u
ZW50KGVsZW1lbnRbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChlbGVtZW50WzFdKTsKKyAgICB9
KTsKKyAgcmV0dXJuIHJldDsKK30KKworZnVuY3Rpb24gY3JlYXRlX3Rlc3RfY2FzZV9wcm9taXNl
KHVybCwgY3Jvc3Nfb3JpZ2luKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlKSB7CisgICAgICB2YXIgaW1nID0gbmV3IEltYWdlKCk7CisgICAgICBpZiAoY3Jvc3Nfb3Jp
Z2luICE9ICcnKSB7CisgICAgICAgIGltZy5jcm9zc09yaWdpbiA9IGNyb3NzX29yaWdpbjsKKyAg
ICAgIH0KKyAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7Cisg
ICAgICAgICAgY2FudmFzLndpZHRoID0gMTAwOworICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSAx
MDA7CisgICAgICAgICAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
ICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWcsIDAsIDApOworICAgICAgICAgIGNvbnRleHQu
Z2V0SW1hZ2VEYXRhKDAsIDAsIDEwMCwgMTAwKTsKKyAgICAgICAgICByZXNvbHZlKE5PVF9UQUlO
VEVEKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIHJlc29sdmUoVEFJTlRFRCk7
CisgICAgICAgIH0KKyAgICAgIH07CisgICAgICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICByZXNvbHZlKExPQURfRVJST1IpOworICAgICAgfQorICAgICAgaW1nLnNyYyA9IHVy
bDsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlX3Rlc3RfcHJvbWlzZSh1cmwsIGNyb3Nz
X29yaWdpbiwgZXhwZWN0ZWRfcmVzdWx0KSB7CisgIGlmIChwYXJhbXNbJ2NhY2hlJ10pIHsKKyAg
ICB1cmwgKz0gIiZjYWNoZSI7CisgIH0KKworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICBjcmVhdGVfdGVzdF9jYXNlX3Byb21pc2UodXJsLCBj
cm9zc19vcmlnaW4pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAg
IGlmIChyZXN1bHQgPT0gZXhwZWN0ZWRfcmVzdWx0KSB7CisgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlamVjdCgnUmVzdWx0IG9mIHVybDon
ICsgdXJsICsgJyAnICsKKyAgICAgICAgICAgICAgICAgICAnIGNyb3NzX29yaWdpbjogJyArIGNy
b3NzX29yaWdpbiArICcgbXVzdCBiZSAnICsKKyAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9y
ZXN1bHQgKyAnIGJ1dCAnICsgcmVzdWx0KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pCisgICAg
fSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0
KSB7CisgICAgdmFyIHBvcnQgPSBldnQucG9ydHNbMF07CisgICAgdmFyIGltYWdlX3VybCA9IGhv
c3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyBpbWFnZV9wYXRoOworICAgIHZhciByZW1vdGVfaW1h
Z2VfdXJsID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBpbWFnZV9wYXRoOwor
ICAgIFByb21pc2UuYWxsKFsKKyAgICAgICAgLy8gUmVqZWN0IHRlc3RzCisgICAgICAgIGNyZWF0
ZV90ZXN0X3Byb21pc2UoaW1hZ2VfdXJsICsgJyZyZWplY3QnLCAnJywgTE9BRF9FUlJPUiksCisg
ICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoaW1hZ2VfdXJsICsgJyZyZWplY3QnLCAnYW5vbnlt
b3VzJywgTE9BRF9FUlJPUiksCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAg
ICAgICBpbWFnZV91cmwgKyAnJnJlamVjdCcsICd1c2UtY3JlZGVudGlhbHMnLCBMT0FEX0VSUk9S
KSwKKyAgICAgICAgLy8gRmFsbGJhY2sgdGVzdHMKKyAgICAgICAgY3JlYXRlX3Rlc3RfcHJvbWlz
ZSgKKyAgICAgICAgICAgIGltYWdlX3VybCArICcmaWdub3JlJywKKyAgICAgICAgICAgICcnLAor
ICAgICAgICAgICAgTk9UX1RBSU5URUQpLAorICAgICAgICBjcmVhdGVfdGVzdF9wcm9taXNlKAor
ICAgICAgICAgICAgcmVtb3RlX2ltYWdlX3VybCArICcmaWdub3JlJywKKyAgICAgICAgICAgICcn
LAorICAgICAgICAgICAgVEFJTlRFRCksCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisg
ICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsgJyZpZ25vcmUnLAorICAgICAgICAgICAgJ2Fu
b255bW91cycsCisgICAgICAgICAgICBMT0FEX0VSUk9SKSwKKyAgICAgICAgY3JlYXRlX3Rlc3Rf
cHJvbWlzZSgKKyAgICAgICAgICAgIHJlbW90ZV9pbWFnZV91cmwgKyAnJkFDQU9yaWdpbj0nICsg
aG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArCisgICAgICAgICAgICAnJmlnbm9yZScsCisgICAg
ICAgICAgICAnYW5vbnltb3VzJywKKyAgICAgICAgICAgIE5PVF9UQUlOVEVEKSwKKyAgICAgICAg
Y3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAgICAgICAgICAgIHJlbW90ZV9pbWFnZV91cmwgKyAnJmln
bm9yZScsCisgICAgICAgICAgICAndXNlLWNyZWRlbnRpYWxzJywKKyAgICAgICAgICAgIExPQURf
RVJST1IpLAorICAgICAgICBjcmVhdGVfdGVzdF9wcm9taXNlKAorICAgICAgICAgICAgcmVtb3Rl
X2ltYWdlX3VybCArICcmQUNBT3JpZ2luPScgKyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsK
KyAgICAgICAgICAgICcmaWdub3JlJywKKyAgICAgICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAor
ICAgICAgICAgICAgTE9BRF9FUlJPUiksCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisg
ICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsgJyZBQ0FPcmlnaW49JyArIGhvc3RfaW5mb1sn
SFRUUFNfT1JJR0lOJ10gKworICAgICAgICAgICAgJyZBQ0FDcmVkZW50aWFscz10cnVlJmlnbm9y
ZScsCisgICAgICAgICAgICAndXNlLWNyZWRlbnRpYWxzJywKKyAgICAgICAgICAgIE5PVF9UQUlO
VEVEKSwKKworICAgICAgICAvLyBDcmVkZW50aWFsIHRlc3QgKGZhbGxiYWNrKQorICAgICAgICBj
cmVhdGVfdGVzdF9wcm9taXNlKAorICAgICAgICAgICAgaW1hZ2VfdXJsICsgJyZBdXRoJmlnbm9y
ZScsCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgIE5PVF9UQUlOVEVEKSwKKyAgICAgICAg
Y3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAgICAgICAgICAgIHJlbW90ZV9pbWFnZV91cmwgKyAnJkF1
dGgmaWdub3JlJywKKyAgICAgICAgICAgICcnLAorICAgICAgICAgICAgVEFJTlRFRCksCisgICAg
ICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsg
JyZBdXRoJmlnbm9yZScsCisgICAgICAgICAgICAnYW5vbnltb3VzJywKKyAgICAgICAgICAgIExP
QURfRVJST1IpLAorICAgICAgICBjcmVhdGVfdGVzdF9wcm9taXNlKAorICAgICAgICAgICAgcmVt
b3RlX2ltYWdlX3VybCArICcmQXV0aCZpZ25vcmUnLAorICAgICAgICAgICAgJ3VzZS1jcmVkZW50
aWFscycsCisgICAgICAgICAgICBMT0FEX0VSUk9SKSwKKyAgICAgICAgY3JlYXRlX3Rlc3RfcHJv
bWlzZSgKKyAgICAgICAgICAgIHJlbW90ZV9pbWFnZV91cmwgKyAnJkF1dGgmQUNBT3JpZ2luPScg
KyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsKKyAgICAgICAgICAgICcmaWdub3JlJywKKyAg
ICAgICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAorICAgICAgICAgICAgTE9BRF9FUlJPUiksCisg
ICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJs
ICsgJyZBdXRoJkFDQU9yaWdpbj0nICsgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArCisgICAg
ICAgICAgICAnJkFDQUNyZWRlbnRpYWxzPXRydWUmaWdub3JlJywKKyAgICAgICAgICAgICd1c2Ut
Y3JlZGVudGlhbHMnLAorICAgICAgICAgICAgTk9UX1RBSU5URUQpLAorCisgICAgICAgIC8vIEJh
c2ljIHJlc3BvbnNlCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAgICBp
bWFnZV91cmwgKworICAgICAgICAgICAgJyZtb2RlPXNhbWUtb3JpZ2luJnVybD0nICsgZW5jb2Rl
VVJJQ29tcG9uZW50KGltYWdlX3VybCksCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgIE5P
VF9UQUlOVEVEKSwKKyAgICAgICAgY3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAgICAgICAgICAgIGlt
YWdlX3VybCArCisgICAgICAgICAgICAnJm1vZGU9c2FtZS1vcmlnaW4mdXJsPScgKyBlbmNvZGVV
UklDb21wb25lbnQoaW1hZ2VfdXJsKSwKKyAgICAgICAgICAgICdhbm9ueW1vdXMnLAorICAgICAg
ICAgICAgTk9UX1RBSU5URUQpLAorICAgICAgICBjcmVhdGVfdGVzdF9wcm9taXNlKAorICAgICAg
ICAgICAgaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9kZT1zYW1lLW9yaWdpbiZ1cmw9JyAr
IGVuY29kZVVSSUNvbXBvbmVudChpbWFnZV91cmwpLAorICAgICAgICAgICAgJ3VzZS1jcmVkZW50
aWFscycsCisgICAgICAgICAgICBOT1RfVEFJTlRFRCksCisgICAgICAgIGNyZWF0ZV90ZXN0X3By
b21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9k
ZT1zYW1lLW9yaWdpbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChpbWFnZV91cmwpLAorICAg
ICAgICAgICAgJycsCisgICAgICAgICAgICBOT1RfVEFJTlRFRCksCisgICAgICAgIGNyZWF0ZV90
ZXN0X3Byb21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAg
ICcmbW9kZT1zYW1lLW9yaWdpbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChpbWFnZV91cmwp
LAorICAgICAgICAgICAgJ2Fub255bW91cycsCisgICAgICAgICAgICBOT1RfVEFJTlRFRCksCisg
ICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJs
ICsKKyAgICAgICAgICAgICcmbW9kZT1zYW1lLW9yaWdpbiZ1cmw9JyArIGVuY29kZVVSSUNvbXBv
bmVudChpbWFnZV91cmwpLAorICAgICAgICAgICAgJ3VzZS1jcmVkZW50aWFscycsCisgICAgICAg
ICAgICBOT1RfVEFJTlRFRCksCisKKyAgICAgICAgLy8gT3BhcXVlIHJlc3BvbnNlCisgICAgICAg
IGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAgICBpbWFnZV91cmwgKworICAgICAgICAg
ICAgJyZtb2RlPW5vLWNvcnMmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQocmVtb3RlX2ltYWdl
X3VybCksCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgIFRBSU5URUQpLAorICAgICAgICBj
cmVhdGVfdGVzdF9wcm9taXNlKAorICAgICAgICAgICAgaW1hZ2VfdXJsICsKKyAgICAgICAgICAg
ICcmbW9kZT1uby1jb3JzJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV9pbWFnZV91
cmwpLAorICAgICAgICAgICAgJ2Fub255bW91cycsCisgICAgICAgICAgICBMT0FEX0VSUk9SKSwK
KyAgICAgICAgY3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAgICAgICAgICAgIGltYWdlX3VybCArCisg
ICAgICAgICAgICAnJm1vZGU9bm8tY29ycyZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChyZW1v
dGVfaW1hZ2VfdXJsKSwKKyAgICAgICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAorICAgICAgICAg
ICAgTE9BRF9FUlJPUiksCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAg
ICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9kZT1uby1jb3JzJnVybD0nICsg
ZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV9pbWFnZV91cmwpLAorICAgICAgICAgICAgJycsCisg
ICAgICAgICAgICBUQUlOVEVEKSwKKyAgICAgICAgY3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAgICAg
ICAgICAgIHJlbW90ZV9pbWFnZV91cmwgKworICAgICAgICAgICAgJyZtb2RlPW5vLWNvcnMmdXJs
PScgKyBlbmNvZGVVUklDb21wb25lbnQocmVtb3RlX2ltYWdlX3VybCksCisgICAgICAgICAgICAn
YW5vbnltb3VzJywKKyAgICAgICAgICAgIExPQURfRVJST1IpLAorICAgICAgICBjcmVhdGVfdGVz
dF9wcm9taXNlKAorICAgICAgICAgICAgcmVtb3RlX2ltYWdlX3VybCArCisgICAgICAgICAgICAn
Jm1vZGU9bm8tY29ycyZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChyZW1vdGVfaW1hZ2VfdXJs
KSwKKyAgICAgICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAorICAgICAgICAgICAgTE9BRF9FUlJP
UiksCisKKyAgICAgICAgLy8gQ09SUyByZXNwb25zZQorICAgICAgICBjcmVhdGVfdGVzdF9wcm9t
aXNlKAorICAgICAgICAgICAgaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9kZT1jb3JzJnVy
bD0nICsKKyAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChyZW1vdGVfaW1hZ2VfdXJsICsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJkFDQU9yaWdpbj0nICsgaG9zdF9pbmZv
WydIVFRQU19PUklHSU4nXSksCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgIExPQURfRVJS
T1IpLCAvLyBXZSBleHBlY3QgTE9BRF9FUlJPUiBzaW5jZSB0aGUgc2VydmVyIGRvZXNuJ3QgcmVz
cG9uZAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpdGggYW4gQWNjZXNzLUNvbnRyb2wt
QWxsb3ctQ3JlZGVudGlhbHMgaGVhZGVyLgorICAgICAgICBjcmVhdGVfdGVzdF9wcm9taXNlKAor
ICAgICAgICAgICAgaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9kZT1jb3JzJmNyZWRlbnRp
YWxzPXNhbWUtb3JpZ2luJnVybD0nICsKKyAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChy
ZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJkFDQU9y
aWdpbj0nICsgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSksCisgICAgICAgICAgICAnJywKKyAg
ICAgICAgICAgIE5PVF9UQUlOVEVEKSwKKyAgICAgICAgY3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAg
ICAgICAgICAgIGltYWdlX3VybCArCisgICAgICAgICAgICAnJm1vZGU9Y29ycyZ1cmw9JyArCisg
ICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQocmVtb3RlX2ltYWdlX3VybCArCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyZBQ0FPcmlnaW49JyArIGhvc3RfaW5mb1snSFRUUFNf
T1JJR0lOJ10pLAorICAgICAgICAgICAgJ2Fub255bW91cycsCisgICAgICAgICAgICBOT1RfVEFJ
TlRFRCksCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAgICBpbWFnZV91
cmwgKworICAgICAgICAgICAgJyZtb2RlPWNvcnMmdXJsPScgKworICAgICAgICAgICAgZW5jb2Rl
VVJJQ29tcG9uZW50KHJlbW90ZV9pbWFnZV91cmwgKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcmQUNBT3JpZ2luPScgKyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddKSwKKyAgICAg
ICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAorICAgICAgICAgICAgTE9BRF9FUlJPUiksIC8vIFdl
IGV4cGVjdCBMT0FEX0VSUk9SIHNpbmNlIHRoZSBzZXJ2ZXIgZG9lc24ndCByZXNwb25kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBhbiBBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVk
ZW50aWFscyBoZWFkZXIuCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2UoCisgICAgICAgICAg
ICBpbWFnZV91cmwgKworICAgICAgICAgICAgJyZtb2RlPWNvcnMmdXJsPScgKworICAgICAgICAg
ICAgZW5jb2RlVVJJQ29tcG9uZW50KAorICAgICAgICAgICAgICAgIHJlbW90ZV9pbWFnZV91cmwg
KworICAgICAgICAgICAgICAgICcmQUNBQ3JlZGVudGlhbHM9dHJ1ZSZBQ0FPcmlnaW49JyArIGhv
c3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pLAorICAgICAgICAgICAgJ3VzZS1jcmVkZW50aWFscycs
CisgICAgICAgICAgICBOT1RfVEFJTlRFRCksCisgICAgICAgIGNyZWF0ZV90ZXN0X3Byb21pc2Uo
CisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9kZT1jb3Jz
JnVybD0nICsKKyAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChyZW1vdGVfaW1hZ2VfdXJs
ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJkFDQU9yaWdpbj0nICsgaG9zdF9p
bmZvWydIVFRQU19PUklHSU4nXSksCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgIExPQURf
RVJST1IpLCAvLyBXZSBleHBlY3QgTE9BRF9FUlJPUiBzaW5jZSB0aGUgc2VydmVyIGRvZXNuJ3Qg
cmVzcG9uZAorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdpdGggYW4gQWNjZXNzLUNvbnRy
b2wtQWxsb3ctQ3JlZGVudGlhbHMgaGVhZGVyLgorICAgICAgICBjcmVhdGVfdGVzdF9wcm9taXNl
KAorICAgICAgICAgICAgcmVtb3RlX2ltYWdlX3VybCArCisgICAgICAgICAgICAnJm1vZGU9Y29y
cyZjcmVkZW50aWFscz1zYW1lLW9yaWdpbiZ1cmw9JyArCisgICAgICAgICAgICBlbmNvZGVVUklD
b21wb25lbnQocmVtb3RlX2ltYWdlX3VybCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJyZBQ0FPcmlnaW49JyArIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pLAorICAgICAgICAg
ICAgJycsCisgICAgICAgICAgICBOT1RfVEFJTlRFRCksCisgICAgICAgIGNyZWF0ZV90ZXN0X3By
b21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICcmbW9k
ZT1jb3JzJnVybD0nICsKKyAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChyZW1vdGVfaW1h
Z2VfdXJsICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJkFDQU9yaWdpbj0nICsg
aG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSksCisgICAgICAgICAgICAnYW5vbnltb3VzJywKKyAg
ICAgICAgICAgIE5PVF9UQUlOVEVEKSwKKyAgICAgICAgY3JlYXRlX3Rlc3RfcHJvbWlzZSgKKyAg
ICAgICAgICAgIHJlbW90ZV9pbWFnZV91cmwgKworICAgICAgICAgICAgJyZtb2RlPWNvcnMmdXJs
PScgKworICAgICAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV9pbWFnZV91cmwgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcmQUNBT3JpZ2luPScgKyBob3N0X2luZm9b
J0hUVFBTX09SSUdJTiddKSwKKyAgICAgICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAorICAgICAg
ICAgICAgTE9BRF9FUlJPUiksIC8vIFdlIGV4cGVjdCBMT0FEX0VSUk9SIHNpbmNlIHRoZSBzZXJ2
ZXIgZG9lc24ndCByZXNwb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBhbiBB
Y2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyBoZWFkZXIuCisgICAgICAgIGNyZWF0ZV90
ZXN0X3Byb21pc2UoCisgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAg
ICcmbW9kZT1jb3JzJnVybD0nICsKKyAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCgKKyAg
ICAgICAgICAgICAgICByZW1vdGVfaW1hZ2VfdXJsICsKKyAgICAgICAgICAgICAgICAnJkFDQUNy
ZWRlbnRpYWxzPXRydWUmQUNBT3JpZ2luPScgKyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddKSwK
KyAgICAgICAgICAgICd1c2UtY3JlZGVudGlhbHMnLAorICAgICAgICAgICAgTk9UX1RBSU5URUQp
CisgICAgICBdKQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcG9ydC5wb3N0
TWVzc2FnZSh7cmVzdWx0czogJ2ZpbmlzaCd9KTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaChm
dW5jdGlvbihlKSB7CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2ZhaWx1
cmU6JyArIGV9KTsKKyAgICAgICAgfSk7CisgIH0sIGZhbHNlKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUxOTUyYTk4OGVmZTA3MDAyNzZjZWZhMDMyODY1YzQ0MmRmY2I2YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY29y
cy14aHItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyMDkgQEAKKzxzY3JpcHQgc3JjPSIvY29tbW9u
L2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0ZXN0LWhlbHBl
cnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcGF0aCA9IGJhc2Vf
cGF0aCgpICsgJ2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5JzsKK3ZhciBob3N0X2luZm8gPSBnZXRf
aG9zdF9pbmZvKCk7Cit2YXIgU1VDQ0VTUyA9ICdTVUNDRVNTJzsKK3ZhciBGQUlMID0gJ0ZBSUwn
OworCitmdW5jdGlvbiBjcmVhdGVfdGVzdF9jYXNlX3Byb21pc2UodXJsLCB3aXRoX2NyZWRlbnRp
YWxzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICB2
YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICB4aHIub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgIGlmICh4aHIuc3RhdHVzID09IDIwMCkgeworICAgICAgICAgIHJlc29s
dmUoU1VDQ0VTUyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgcmVzb2x2ZSgiU1RBVFVT
IiArIHhoci5zdGF0dXMpOworICAgICAgICB9CisgICAgICB9CisgICAgICB4aHIub25lcnJvciA9
IGZ1bmN0aW9uKCkgeworICAgICAgICByZXNvbHZlKEZBSUwpOworICAgICAgfQorICAgICAgeGhy
LnJlc3BvbnNlVHlwZSA9ICd0ZXh0JzsKKyAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB3aXRo
X2NyZWRlbnRpYWxzOworICAgICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7CisgICAgICB4
aHIuc2VuZCgpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjcmVhdGVfdGVzdF9wcm9taXNlKHVy
bCwgd2l0aF9jcmVkZW50aWFscywgZXhwZWN0ZWRfcmVzdWx0KSB7CisgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIGNyZWF0ZV90ZXN0X2Nhc2Vf
cHJvbWlzZSh1cmwsIHdpdGhfY3JlZGVudGlhbHMpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgICAgICAgIGlmIChyZXN1bHQgPT0gZXhwZWN0ZWRfcmVzdWx0KSB7CisgICAg
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlamVj
dCgnUmVzdWx0IG9mIHVybDonICsgdXJsICsgJyAnICsKKyAgICAgICAgICAgICAgICAgICAnIHdp
dGhfY3JlZGVudGlhbHM6ICcgKyB3aXRoX2NyZWRlbnRpYWxzICsgJyBtdXN0IGJlICcgKworICAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdCArICcgYnV0ICcgKyByZXN1bHQpOworICAg
ICAgICAgIH0KKyAgICAgICAgfSkKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY3JlYXRlX3Nlcmlh
bF9wcm9taXNlKHRlc3RfY2FzZXMpIHsKKyAgdmFyIHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUo
KTsKKyAgdGVzdF9jYXNlcy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RfY2FzZSkgeworICAgICAgcHJv
bWlzZSA9IHByb21pc2UudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gY3JlYXRl
X3Rlc3RfcHJvbWlzZSh0ZXN0X2Nhc2VbMF0sIHRlc3RfY2FzZVsxXSwgdGVzdF9jYXNlWzJdKTsK
KyAgICAgICAgfSk7CisgICAgfSk7CisgICAgcmV0dXJuIHByb21pc2U7Cit9CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7CisgICAgdmFyIHBvcnQg
PSBldnQucG9ydHNbMF07CisgICAgdmFyIHVybCA9IGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10g
KyBwYXRoOworICAgIHZhciByZW1vdGVfdXJsID0gaG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJ
R0lOJ10gKyBwYXRoOworICAgIC8vIElmIHRoZSA0dGggdmFsdWUgb2YgdGhlIGl0ZW0gb2YgVEVT
VF9DQVNFUyBpcyB0cnVlLCB0aGUgdGVzdCBjYXNlIG91dHB1dHMKKyAgICAvLyB3YXJuaW5nIG1l
c3NhZ2VzLiBTbyBzdWNoIHRlc3RzIG11c3QgYmUgZXhlY3V0ZWQgaW4gc2VyaWFsIHRvIG1hdGNo
IHRoZQorICAgIC8vIGV4cGVjdGVkIG91dHB1dCB0ZXh0LgorICAgIHZhciBURVNUX0NBU0VTID0g
WworICAgICAgLy8gUmVqZWN0IHRlc3RzCisgICAgICBbdXJsICsgJz9yZWplY3QnLCBmYWxzZSwg
RkFJTF0sCisgICAgICBbdXJsICsgJz9yZWplY3QnLCB0cnVlLCBGQUlMXSwKKyAgICAgIFtyZW1v
dGVfdXJsICsgJz9yZWplY3QnLCBmYWxzZSwgRkFJTF0sCisgICAgICBbcmVtb3RlX3VybCArICc/
cmVqZWN0JywgdHJ1ZSwgRkFJTF0sCisgICAgICAvLyBFdmVudCBoYW5kbGVyIGV4Y2VwdGlvbiB0
ZXN0cworICAgICAgW3VybCArICc/dGhyb3cnLCBmYWxzZSwgU1VDQ0VTU10sCisgICAgICBbdXJs
ICsgJz90aHJvdycsIHRydWUsIFNVQ0NFU1NdLAorICAgICAgW3JlbW90ZV91cmwgKyAnP3Rocm93
JywgZmFsc2UsIEZBSUxdLAorICAgICAgW3JlbW90ZV91cmwgKyAnP3Rocm93JywgdHJ1ZSwgRkFJ
TF0sCisgICAgICAvLyBSZWplY3QocmVzb2x2ZS1udWxsKSB0ZXN0cworICAgICAgW3VybCArICc/
cmVzb2x2ZS1udWxsJywgZmFsc2UsIEZBSUxdLAorICAgICAgW3VybCArICc/cmVzb2x2ZS1udWxs
JywgdHJ1ZSwgRkFJTF0sCisgICAgICBbcmVtb3RlX3VybCArICc/cmVzb2x2ZS1udWxsJywgZmFs
c2UsIEZBSUxdLAorICAgICAgW3JlbW90ZV91cmwgKyAnP3Jlc29sdmUtbnVsbCcsIHRydWUsIEZB
SUxdLAorICAgICAgLy8gRmFsbGJhY2sgdGVzdHMKKyAgICAgIFt1cmwgKyAnP2lnbm9yZScsIGZh
bHNlLCBTVUNDRVNTXSwKKyAgICAgIFt1cmwgKyAnP2lnbm9yZScsIHRydWUsIFNVQ0NFU1NdLAor
ICAgICAgW3JlbW90ZV91cmwgKyAnP2lnbm9yZScsIGZhbHNlLCBGQUlMLCB0cnVlXSwgIC8vIEV4
ZWN1dGVkIGluIHNlcmlhbC4KKyAgICAgIFtyZW1vdGVfdXJsICsgJz9pZ25vcmUnLCB0cnVlLCBG
QUlMLCB0cnVlXSwgIC8vIEV4ZWN1dGVkIGluIHNlcmlhbC4KKyAgICAgIFsKKyAgICAgICAgcmVt
b3RlX3VybCArICc/QUNBT3JpZ2luPScgKyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsgJyZp
Z25vcmUnLAorICAgICAgICBmYWxzZSwgU1VDQ0VTUworICAgICAgXSwKKyAgICAgIFsKKyAgICAg
ICAgcmVtb3RlX3VybCArICc/QUNBT3JpZ2luPScgKyBob3N0X2luZm9bJ0hUVFBTX09SSUdJTidd
ICsgJyZpZ25vcmUnLAorICAgICAgICB0cnVlLCBGQUlMLCB0cnVlICAvLyBFeGVjdXRlZCBpbiBz
ZXJpYWwuCisgICAgICBdLAorICAgICAgWworICAgICAgICByZW1vdGVfdXJsICsgJz9BQ0FPcmln
aW49JyArIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKworICAgICAgICAnJkFDQUNyZWRlbnRp
YWxzPXRydWUmaWdub3JlJywKKyAgICAgICAgdHJ1ZSwgU1VDQ0VTUworICAgICAgXSwKKyAgICAg
IC8vIENyZWRlbnRpYWwgdGVzdCAoZmFsbGJhY2spCisgICAgICBbdXJsICsgJz9BdXRoJmlnbm9y
ZScsIGZhbHNlLCBTVUNDRVNTXSwKKyAgICAgIFt1cmwgKyAnP0F1dGgmaWdub3JlJywgdHJ1ZSwg
U1VDQ0VTU10sCisgICAgICBbcmVtb3RlX3VybCArICc/QXV0aCZpZ25vcmUnLCBmYWxzZSwgRkFJ
TCwgdHJ1ZV0sICAvLyBFeGVjdXRlZCBpbiBzZXJpYWwuCisgICAgICBbcmVtb3RlX3VybCArICc/
QXV0aCZpZ25vcmUnLCB0cnVlLCBGQUlMLCB0cnVlXSwgIC8vIEV4ZWN1dGVkIGluIHNlcmlhbC4K
KyAgICAgIFsKKyAgICAgICAgcmVtb3RlX3VybCArICc/QXV0aCZBQ0FPcmlnaW49JyArIGhvc3Rf
aW5mb1snSFRUUFNfT1JJR0lOJ10gKyAnJmlnbm9yZScsCisgICAgICAgIGZhbHNlLCAnU1RBVFVT
NDAxJworICAgICAgXSwKKyAgICAgIFsKKyAgICAgICAgcmVtb3RlX3VybCArICc/QXV0aCZBQ0FP
cmlnaW49JyArIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKyAnJmlnbm9yZScsCisgICAgICAg
IHRydWUsIEZBSUwsIHRydWUgIC8vIEV4ZWN1dGVkIGluIHNlcmlhbC4KKyAgICAgIF0sCisgICAg
ICBbCisgICAgICAgIHJlbW90ZV91cmwgKyAnP0F1dGgmQUNBT3JpZ2luPScgKyBob3N0X2luZm9b
J0hUVFBTX09SSUdJTiddICsKKyAgICAgICAgJyZBQ0FDcmVkZW50aWFscz10cnVlJmlnbm9yZScs
CisgICAgICAgIHRydWUsIFNVQ0NFU1MKKyAgICAgIF0sCisgICAgICAvLyBCYXNpYyByZXNwb25z
ZQorICAgICAgWworICAgICAgICB1cmwgKyAnP21vZGU9c2FtZS1vcmlnaW4mdXJsPScgKyBlbmNv
ZGVVUklDb21wb25lbnQodXJsKSwKKyAgICAgICAgZmFsc2UsIFNVQ0NFU1MKKyAgICAgIF0sCisg
ICAgICBbCisgICAgICAgIHVybCArICc/bW9kZT1zYW1lLW9yaWdpbiZ1cmw9JyArIGVuY29kZVVS
SUNvbXBvbmVudCh1cmwpLAorICAgICAgICBmYWxzZSwgU1VDQ0VTUworICAgICAgXSwKKyAgICAg
IFsKKyAgICAgICAgcmVtb3RlX3VybCArICc/bW9kZT1zYW1lLW9yaWdpbiZ1cmw9JyArIGVuY29k
ZVVSSUNvbXBvbmVudCh1cmwpLAorICAgICAgICBmYWxzZSwgU1VDQ0VTUworICAgICAgXSwKKyAg
ICAgIFsKKyAgICAgICAgcmVtb3RlX3VybCArICc/bW9kZT1zYW1lLW9yaWdpbiZ1cmw9JyArIGVu
Y29kZVVSSUNvbXBvbmVudCh1cmwpLAorICAgICAgICBmYWxzZSwgU1VDQ0VTUworICAgICAgXSwK
KyAgICAgIC8vIE9wYXF1ZSByZXNwb25zZQorICAgICAgWworICAgICAgICB1cmwgKyAnP21vZGU9
bm8tY29ycyZ1cmw9JyArIGVuY29kZVVSSUNvbXBvbmVudChyZW1vdGVfdXJsKSwKKyAgICAgICAg
ZmFsc2UsIEZBSUwKKyAgICAgIF0sCisgICAgICBbCisgICAgICAgIHVybCArICc/bW9kZT1uby1j
b3JzJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV91cmwpLAorICAgICAgICBmYWxz
ZSwgRkFJTAorICAgICAgXSwKKyAgICAgIFsKKyAgICAgICAgcmVtb3RlX3VybCArICc/bW9kZT1u
by1jb3JzJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV91cmwpLAorICAgICAgICBm
YWxzZSwgRkFJTAorICAgICAgXSwKKyAgICAgIFsKKyAgICAgICAgcmVtb3RlX3VybCArICc/bW9k
ZT1uby1jb3JzJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV91cmwpLAorICAgICAg
ICBmYWxzZSwgRkFJTAorICAgICAgXSwKKyAgICAgIC8vIENPUlMgcmVzcG9uc2UKKyAgICAgIFsK
KyAgICAgICAgdXJsICsgJz9tb2RlPWNvcnMmdXJsPScgKworICAgICAgICBlbmNvZGVVUklDb21w
b25lbnQocmVtb3RlX3VybCArICc/QUNBT3JpZ2luPScgKworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSksCisgICAgICAgIGZhbHNlLCBTVUNDRVNT
CisgICAgICBdLAorICAgICAgWworICAgICAgICB1cmwgKyAnP21vZGU9Y29ycyZ1cmw9JyArCisg
ICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChyZW1vdGVfdXJsICsgJz9BQ0FPcmlnaW49JyArCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddKSwKKyAg
ICAgICAgdHJ1ZSwgRkFJTAorICAgICAgXSwKKyAgICAgIFsKKyAgICAgICAgdXJsICsgJz9tb2Rl
PWNvcnMmdXJsPScgKworICAgICAgICBlbmNvZGVVUklDb21wb25lbnQocmVtb3RlX3VybCArICc/
QUNBT3JpZ2luPScgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQ
U19PUklHSU4nXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnJkFDQUNyZWRlbnRpYWxz
PXRydWUnKSwKKyAgICAgICAgdHJ1ZSwgU1VDQ0VTUworICAgICAgXSwKKyAgICAgIFsKKyAgICAg
ICAgcmVtb3RlX3VybCArICc/bW9kZT1jb3JzJnVybD0nICsKKyAgICAgICAgZW5jb2RlVVJJQ29t
cG9uZW50KHJlbW90ZV91cmwgKyAnP0FDQU9yaWdpbj0nICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pLAorICAgICAgICBmYWxzZSwgU1VDQ0VT
UworICAgICAgXSwKKyAgICAgIFsKKyAgICAgICAgcmVtb3RlX3VybCArCisgICAgICAgICc/bW9k
ZT1jb3JzJnVybD0nICsKKyAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KHJlbW90ZV91cmwgKyAn
P0FDQU9yaWdpbj0nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRU
UFNfT1JJR0lOJ10pLAorICAgICAgICB0cnVlLCBGQUlMCisgICAgICBdLAorICAgICAgWworICAg
ICAgICByZW1vdGVfdXJsICsKKyAgICAgICAgJz9tb2RlPWNvcnMmdXJsPScgKworICAgICAgICBl
bmNvZGVVUklDb21wb25lbnQocmVtb3RlX3VybCArICc/QUNBT3JpZ2luPScgKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnJkFDQUNyZWRlbnRpYWxzPXRydWUnKSwKKyAgICAgICAgdHJ1ZSwg
U1VDQ0VTUworICAgICAgXQorICAgIF07CisgICAgdmFyIHByb21pc2VzID0gW107CisgICAgdmFy
IHNlcmlhbF90ZXN0cyA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgVEVTVF9DQVNFUy5s
ZW5ndGggOyArK2kpIHsKKyAgICAgIGlmICghVEVTVF9DQVNFU1tpXVszXSkgeworICAgICAgICBw
cm9taXNlcy5wdXNoKGNyZWF0ZV90ZXN0X3Byb21pc2UoVEVTVF9DQVNFU1tpXVswXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfQ0FTRVNbaV1bMV0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX0NBU0VTW2ldWzJd
KSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBzZXJpYWxfdGVzdHMucHVzaChURVNUX0NBU0VT
W2ldKTsKKyAgICAgIH0KKyAgICB9CisgICAgcHJvbWlzZXMucHVzaChjcmVhdGVfc2VyaWFsX3By
b21pc2Uoc2VyaWFsX3Rlc3RzKSk7CisgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCisgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAn
ZmluaXNoJ30pOworICAgICAgICB9KQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmFpbHVyZTonICsgZX0pOworICAgICAg
ICB9KTsKKyAgfSwgZmFsc2UpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtY3NwLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWNzcC1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2JmMDQxNmQ1ODU2
ZGEzZjg5NDQ2OGQzOTQ1N2VhN2JmNThhMzU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWNzcC1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDE2IEBA
Cis8c2NyaXB0PgordmFyIG1ldGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRhJyk7Citt
ZXRhLnNldEF0dHJpYnV0ZSgnaHR0cC1lcXVpdicsICdDb250ZW50LVNlY3VyaXR5LVBvbGljeScp
OworbWV0YS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnLCBkZWNvZGVVUklDb21wb25lbnQobG9jYXRp
b24uc2VhcmNoLnN1YnN0cmluZygxKSkpOworZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChtZXRh
KTsKKworZnVuY3Rpb24gbG9hZF9pbWFnZSh1cmwpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2ltZycpOworICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpOwor
ICAgICAgaW1nLm9ubG9hZCA9IHJlc29sdmU7CisgICAgICBpbWcub25lcnJvciA9IHJlamVjdDsK
KyAgICAgIGltZy5zcmMgPSB1cmw7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1jc3AtaWZyYW1lLmh0bWwuc3ViLmhl
YWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtY3NwLWlmcmFtZS5odG1s
LnN1Yi5oZWFkZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwMGVmZTA0OWI1ZGU4ODEwZjdjNDQ4NjNlMTFjMjgw
Y2EyOTI2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtY3NwLWlmcmFtZS5odG1sLnN1Yi5oZWFkZXJzCkBAIC0wLDAgKzEgQEAKK0NvbnRlbnQt
U2VjdXJpdHktUG9saWN5OiBpbWctc3JjIGh0dHBzOi8ve3tob3N0fX06e3twb3J0c1todHRwc11b
MF19fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50
LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2UtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS1p
ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjhhNmQ1Y2U1MWZhY2RkNjVmMzBjZTU3NTA0MTdjN2Zj
ZjJlZjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWV2ZW50LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2UtaWZyYW1lLmh0bWwKQEAgLTAs
MCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgorZnVuY3Rpb24gZmV0Y2hfdXJs
KHVybCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgcmVxdWVz
dC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICBp
ZiAocmVxdWVzdC5zdGF0dXMgPT0gMjAwKQorICAgICAgICAgICAgcmVzb2x2ZShyZXF1ZXN0LnJl
c3BvbnNlKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdm
ZXRjaF91cmw6ICcgKyByZXF1ZXN0LnN0YXR1c1RleHQgKyAiIDogIiArIHVybCkpOworICAgICAg
ICB9KTsKKyAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihl
dmVudCkgeworICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ2ZldGNoX3VybCBlbmNvdW50ZXJl
ZCBhbiBlcnJvcjogJyArIHVybCkpOworICAgICAgICB9KTsKKyAgICAgIHJlcXVlc3QuYWRkRXZl
bnRMaXN0ZW5lcignYWJvcnQnLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgIHJlamVjdChu
ZXcgRXJyb3IoJ2ZldGNoX3VybCB3YXMgYWJvcnRlZDogJyArIHVybCkpOworICAgICAgICB9KTsK
KyAgICAgIHJlcXVlc3Qub3BlbignR0VUJywgdXJsKTsKKyAgICAgIHJlcXVlc3Quc2VuZCgpOwor
ICAgIH0pOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtZXZlbnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1hc3luYy1yZXNwb25kLXdpdGgtd29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdmNjZkMjBkZmMyZGZmMGFmMDFkZmEwN2Y4MjNjNjYwYjdhMWVjMWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZl
bnQtYXN5bmMtcmVzcG9uZC13aXRoLXdvcmtlci5qcwpAQCAtMCwwICsxLDE5IEBACit2YXIgcmVz
dWx0OworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkg
eworICAgIGV2ZW50LmRhdGEucG9ydC5wb3N0TWVzc2FnZShyZXN1bHQpOworICB9KTsKKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICBldmVudC5yZXNwb25k
V2l0aChuZXcgUmVzcG9uc2UoKSk7CisgICAgICAgICAgcmVzdWx0ID0gJ0ZBSUw6IGRpZCBub3Qg
dGhyb3cnOworICAgICAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICAgIGlmIChlcnJvci5u
YW1lID09ICdJbnZhbGlkU3RhdGVFcnJvcicpCisgICAgICAgICAgICByZXN1bHQgPSAnUEFTUyc7
CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gJ0ZBSUw6IFVuZXhwZWN0ZWQg
ZXhjZXB0aW9uOiAnICsgZXJyb3I7CisgICAgICAgIH0KKyAgICAgIH0sIDApOworICB9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1uZXR3b3Jr
LWVycm9yLWNvbnRyb2xsZWUtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci1jb250cm9sbGVlLWlmcmFtZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUyOGY2MjM5MzRlYWM4YWY4ZmIxOWQ2NzhkMjVkYzllYzhhMzk4ODMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtbmV0d29y
ay1lcnJvci1jb250cm9sbGVlLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGZldGNoX3VybCh1cmwpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIHJlcXVlc3Qg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
KTsKKyAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICAgIHJlamVjdCgpOworICAgICAgICB9KTsKKyAgICAgIHJlcXVlc3Qub3Bl
bignR0VUJywgdXJsKTsKKyAgICAgIHJlcXVlc3Quc2VuZCgpOworICAgIH0pOworfQorCitmdW5j
dGlvbiBtYWtlX3Rlc3QodGVzdGNhc2UpIHsKKyAgdmFyIG5hbWUgPSB0ZXN0Y2FzZS5uYW1lOwor
ICByZXR1cm4gZmV0Y2hfdXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgJz8nICsgbmFtZSkKKyAg
ICAudGhlbigKKyAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh0ZXN0Y2FzZS5leHBl
Y3RfbG9hZCkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAg
ICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKAorICAgICAgICAgICAgICBuYW1lICsg
JzogZXhwZWN0ZWQgbmV0d29yayBlcnJvciBidXQgbG9hZGVkJykpOworICAgICAgICB9LAorICAg
ICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKCF0ZXN0Y2FzZS5leHBlY3RfbG9hZCkKKyAg
ICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgICByZXR1cm4gUHJv
bWlzZS5yZWplY3QobmV3IEVycm9yKAorICAgICAgICAgICAgICBuYW1lICsgJzogZXhwZWN0ZWQg
dG8gbG9hZCBidXQgZ290IG5ldHdvcmsgZXJyb3InKSk7CisgICAgICAgIH0pOworfQorCitmdW5j
dGlvbiBydW5fdGVzdHMoKSB7CisgIHZhciB0ZXN0cyA9IFsKKyAgICB7IG5hbWU6ICdwcmV2ZW50
LWRlZmF1bHQtYW5kLXJlc3BvbmQtd2l0aCcsIGV4cGVjdF9sb2FkOiB0cnVlIH0sCisgICAgeyBu
YW1lOiAncHJldmVudC1kZWZhdWx0JywgZXhwZWN0X2xvYWQ6IGZhbHNlIH0sCisgICAgeyBuYW1l
OiAncmVqZWN0JywgZXhwZWN0X2xvYWQ6IGZhbHNlIH0sCisgICAgeyBuYW1lOiAndW51c2VkLWJv
ZHknLCBleHBlY3RfbG9hZDogdHJ1ZSB9LAorICAgIHsgbmFtZTogJ3VzZWQtYm9keScsIGV4cGVj
dF9sb2FkOiBmYWxzZSB9LAorICAgIHsgbmFtZTogJ3VudXNlZC1mZXRjaGVkLWJvZHknLCBleHBl
Y3RfbG9hZDogdHJ1ZSB9LAorICAgIHsgbmFtZTogJ3VzZWQtZmV0Y2hlZC1ib2R5JywgZXhwZWN0
X2xvYWQ6IGZhbHNlIH0sCisgICAgeyBuYW1lOiAndGhyb3ctZXhjZXB0aW9uJywgZXhwZWN0X2xv
YWQ6IHRydWUgfSwKKyAgXS5tYXAobWFrZV90ZXN0KTsKKworICBQcm9taXNlLmFsbCh0ZXN0cykK
KyAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgd2luZG93LnBhcmVudC5ub3RpZnlfdGVz
dF9kb25lKCdQQVNTJyk7CisgICAgICB9KQorICAgIC5jYXRjaChmdW5jdGlvbihlcnJvcikgewor
ICAgICAgICB3aW5kb3cucGFyZW50Lm5vdGlmeV90ZXN0X2RvbmUoJ0ZBSUw6ICcgKyBlcnJvci5t
ZXNzYWdlKTsKKyAgICAgIH0pOworfQorCitpZiAoIW5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNv
bnRyb2xsZXIpCisgIHdpbmRvdy5wYXJlbnQubm90aWZ5X2RvbmUoJ0ZBSUw6IG5vIGNvbnRyb2xs
ZXInKTsKK2Vsc2UKKyAgcnVuX3Rlc3RzKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9yLXdvcmtlci5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9y
LXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmZlM2EwYmJkOWNmZTcwNmE3MjA4MGRjZGU0Y2MxNDcz
NDRkZGM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLWV2ZW50LW5ldHdvcmstZXJyb3Itd29ya2VyLmpzCkBAIC0wLDAgKzEsNDkgQEAKKy8vIFRl
c3QgdGhhdCBtdWx0aXBsZSBmZXRjaCBoYW5kbGVycyBkbyBub3QgY29uZnVzZSB0aGUgaW1wbGVt
ZW50YXRpb24uCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oZXZlbnQp
IHt9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgdmFyIHRlc3RjYXNlID0gbmV3IFVSTChldmVudC5yZXF1ZXN0LnVybCkuc2VhcmNoOwor
ICAgIHN3aXRjaCAodGVzdGNhc2UpIHsKKyAgICBjYXNlICc/cmVqZWN0JzoKKyAgICAgIGV2ZW50
LnJlc3BvbmRXaXRoKFByb21pc2UucmVqZWN0KCkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAn
P3ByZXZlbnQtZGVmYXVsdCc6CisgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAg
YnJlYWs7CisgICAgY2FzZSAnP3ByZXZlbnQtZGVmYXVsdC1hbmQtcmVzcG9uZC13aXRoJzoKKyAg
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICBicmVhazsKKyAgICBjYXNlICc/dW51
c2VkLWJvZHknOgorICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCdib2R5Jykp
OworICAgICAgYnJlYWs7CisgICAgY2FzZSAnP3VzZWQtYm9keSc6CisgICAgICB2YXIgcmVzID0g
bmV3IFJlc3BvbnNlKCdib2R5Jyk7CisgICAgICByZXMudGV4dCgpOworICAgICAgZXZlbnQucmVz
cG9uZFdpdGgocmVzKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJz91bnVzZWQtZmV0Y2hlZC1i
b2R5JzoKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKCdvdGhlci5odG1sJykudGhlbihm
dW5jdGlvbihyZXMpeworICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgIH0pKTsKKyAgICAg
IGJyZWFrOworICAgIGNhc2UgJz91c2VkLWZldGNoZWQtYm9keSc6CisgICAgICBldmVudC5yZXNw
b25kV2l0aChmZXRjaCgnb3RoZXIuaHRtbCcpLnRoZW4oZnVuY3Rpb24ocmVzKXsKKyAgICAgICAg
ICByZXMudGV4dCgpOworICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgIH0pKTsKKyAgICAg
IGJyZWFrOworICAgIGNhc2UgJz90aHJvdy1leGNlcHRpb24nOgorICAgICAgdGhyb3coJ2Jvb20n
KTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfSk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcign
ZmV0Y2gnLCBmdW5jdGlvbihldmVudCkge30pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2Zl
dGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgdGVzdGNhc2UgPSBuZXcgVVJMKGV2ZW50
LnJlcXVlc3QudXJsKS5zZWFyY2g7CisgICAgaWYgKHRlc3RjYXNlID09ICc/cHJldmVudC1kZWZh
dWx0LWFuZC1yZXNwb25kLXdpdGgnKQorICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3Bv
bnNlKCdyZXNwb25kaW5nIScpKTsKKyAgfSk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0
Y2gnLCBmdW5jdGlvbihldmVudCkge30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlZGlyZWN0LWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlZGlyZWN0LWlmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc1NDhkOGFmN2Q2MDE0ZjI0ZWM5MjhkOTA1Njg2MTA3YmY4YzM2MWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVkaXJlY3Qt
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPHNjcmlwdD4KK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7CisgIHZhciBwb3J0ID0gZXZ0LnBvcnRz
WzBdOworICB2YXIgZGF0YSA9IGV2dC5kYXRhOworICBmZXRjaChuZXcgUmVxdWVzdChkYXRhLnVy
bCwgZGF0YS5yZXF1ZXN0X2luaXQpKS50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgaWYg
KGRhdGEucmVxdWVzdF9pbml0Lm1vZGUgPT09ICduby1jb3JzJyAmJiBkYXRhLnJlZGlyZWN0X2Rl
c3QgIT0gJ3NhbWUtb3JpZ2luJykgeworICAgICAgaWYgKHJlc3BvbnNlLnR5cGUgPT09IGRhdGEu
ZXhwZWN0ZWRfdHlwZSAmJgorICAgICAgICAgIChyZXNwb25zZS50eXBlID09PSAnb3BhcXVlJyB8
fCByZXNwb25zZS50eXBlID09PSAnb3BhcXVlcmVkaXJlY3QnKSAmJgorICAgICAgICAgIHJlc3Bv
bnNlLnJlZGlyZWN0ZWQgPT09IGRhdGEuZXhwZWN0ZWRfcmVkaXJlY3RlZCkgeworICAgICAgICBy
ZXR1cm4ge3Jlc3VsdDogJ3N1Y2Nlc3MnLCBkZXRhaWw6ICcnfTsKKyAgICAgIH0gZWxzZSB7Cisg
ICAgICAgIHJldHVybiB7cmVzdWx0OiAnZmFpbHVyZScsCisgICAgICAgICAgICAgICAgZGV0YWls
OiAnZXhwZWN0ZWQgdHlwZSAnICsgZGF0YS5leHBlY3RlZF90eXBlICsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICcsIGV4cGVjdGVkIHJlZGlyZWN0ZWQgJyArIGRhdGEuZXhwZWN0ZWRfcmVkaXJl
Y3RlZCArCisgICAgICAgICAgICAgICAgICAgICAgICAnIHJlc3BvbnNlJ307CisgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7CisgIH0pLnRoZW4oZnVuY3Rpb24oYm9k
eSkgeworICAgIHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdDogYm9keS5yZXN1bHQsIGRldGFpbDog
Ym9keS5kZXRhaWx9KTsKKyAgfSkuY2F0Y2goZnVuY3Rpb24oZSkgeworICAgIHBvcnQucG9zdE1l
c3NhZ2Uoe3Jlc3VsdDogJ3JlamVjdCcsIGRldGFpbDogZS50b1N0cmluZygpfSk7CisgIH0pOwor
fSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtYXJndW1lbnQtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50LWlmcmFt
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMzYjQ3ZTc4YTM0OWRmZGE3MGY5ZGM5YTIzMGEzNDE1MjMwNTY0
MGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
ZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGZldGNoX3VybCh1cmwpIHsKKyAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIHJlcXVlc3QuYWRkRXZlbnRM
aXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9KTsKKyAgICAgIHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgIHJlamVjdCgpOworICAgICAgICB9KTsKKyAgICAgIHJl
cXVlc3Qub3BlbignR0VUJywgdXJsKTsKKyAgICAgIHJlcXVlc3Quc2VuZCgpOworICAgIH0pOwor
fQorCitmdW5jdGlvbiBtYWtlX3Rlc3QodGVzdGNhc2UpIHsKKyAgdmFyIG5hbWUgPSB0ZXN0Y2Fz
ZS5uYW1lOworICByZXR1cm4gZmV0Y2hfdXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmICsgJz8nICsg
bmFtZSkKKyAgICAudGhlbigKKyAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmICh0ZXN0
Y2FzZS5leHBlY3RfbG9hZCkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsK
KyAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKAorICAgICAgICAgICAg
ICBuYW1lICsgJzogZXhwZWN0ZWQgbmV0d29yayBlcnJvciBidXQgbG9hZGVkJykpOworICAgICAg
ICB9LAorICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKCF0ZXN0Y2FzZS5leHBlY3Rf
bG9hZCkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKAorICAgICAgICAgICAgICBuYW1lICsgJzog
ZXhwZWN0ZWQgdG8gbG9hZCBidXQgZ290IG5ldHdvcmsgZXJyb3InKSk7CisgICAgICAgIH0pOwor
fQorCitmdW5jdGlvbiBydW5fdGVzdHMoKSB7CisgIHZhciB0ZXN0cyA9IFsKKyAgICB7IG5hbWU6
ICdyZXNwb25zZS1vYmplY3QnLCBleHBlY3RfbG9hZDogdHJ1ZSB9LAorICAgIHsgbmFtZTogJ3Jl
c3BvbnNlLXByb21pc2Utb2JqZWN0JywgZXhwZWN0X2xvYWQ6IHRydWUgfSwKKyAgICB7IG5hbWU6
ICdvdGhlci12YWx1ZScsIGV4cGVjdF9sb2FkOiBmYWxzZSB9LAorICBdLm1hcChtYWtlX3Rlc3Qp
OworCisgIFByb21pc2UuYWxsKHRlc3RzKQorICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICB3aW5kb3cucGFyZW50Lm5vdGlmeV90ZXN0X2RvbmUoJ1BBU1MnKTsKKyAgICAgIH0pCisgICAg
LmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgIHdpbmRvdy5wYXJlbnQubm90aWZ5X3Rl
c3RfZG9uZSgnRkFJTDogJyArIGVycm9yLm1lc3NhZ2UpOworICAgICAgfSk7Cit9CisKK2lmICgh
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcikKKyAgd2luZG93LnBhcmVudC5ub3Rp
ZnlfZG9uZSgnRkFJTDogbm8gY29udHJvbGxlcicpOworZWxzZQorICBydW5fdGVzdHMoKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1hcmd1bWVudC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50LXdvcmtlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MTJjNGI3M2M5YmM2ZGE3YzgyOGE0YzE5NGIwOWFkOTAxOGQ0N2FlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3Bv
bmQtd2l0aC1hcmd1bWVudC13b3JrZXIuanMKQEAgLTAsMCArMSwxNCBAQAorc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHRlc3RjYXNlID0g
bmV3IFVSTChldmVudC5yZXF1ZXN0LnVybCkuc2VhcmNoOworICAgIHN3aXRjaCAodGVzdGNhc2Up
IHsKKyAgICBjYXNlICc/cmVzcG9uc2Utb2JqZWN0JzoKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRo
KG5ldyBSZXNwb25zZSgnYm9keScpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJz9yZXNwb25z
ZS1wcm9taXNlLW9iamVjdCc6CisgICAgICBldmVudC5yZXNwb25kV2l0aChQcm9taXNlLnJlc29s
dmUobmV3IFJlc3BvbnNlKCdib2R5JykpKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgJz9vdGhl
ci12YWx1ZSc6CisgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgT2JqZWN0KCkpOworICAgICAg
YnJlYWs7CisgICAgfQorICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVhZGFibGUtc3RyZWFtLWlmcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1y
ZWFkYWJsZS1zdHJlYW0taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTkwNGQ3NTY1N2Q1NzgxNTIw
YjA4OTI2MTc4OGQyNjBkMTIyY2ZmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVhZGFibGUtc3RyZWFtLWlm
cmFtZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgorJ3Vz
ZSBzdHJpY3QnOworCitmZXRjaCgnYm9keS1zdHJlYW0nKS50aGVuKHJlc3AgPT4geworICAgIHJl
dHVybiByZXNwLnRleHQoKTsKKyAgfSkudGhlbih0ZXh0ID0+IHBhcmVudC5kb25lKHRleHQpKQor
ICAuY2F0Y2goZSA9PiBwYXJlbnQuZG9uZSgnRkFJTDogJyArIGUpKTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQt
d2l0aC1yZWFkYWJsZS1zdHJlYW0td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1yZWFkYWJsZS1zdHJlYW0td29ya2VyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRkYWJhNTVmYTdiYTUyZjkzYjgwN2FkMTZmMzU3ODEwNGRkYjI5NTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVz
cG9uZC13aXRoLXJlYWRhYmxlLXN0cmVhbS13b3JrZXIuanMKQEAgLTAsMCArMSwxMyBAQAorJ3Vz
ZSBzdHJpY3QnOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQgPT4gewor
ICAgIGlmICghZXZlbnQucmVxdWVzdC51cmwubWF0Y2goL2JvZHktc3RyZWFtJC8pKQorICAgICAg
cmV0dXJuOworCisgICAgY29uc3Qgc3RyZWFtID0gbmV3IFJlYWRhYmxlU3RyZWFtKHtzdGFydDog
Y29udHJvbGxlciA9PiB7CisgICAgICAgIGNvbnN0IGVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIo
KTsKKyAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGVuY29kZXIuZW5jb2RlKCdQQVNTJykpOwor
ICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7CisgICAgICB9fSk7CisgICAgZXZlbnQucmVzcG9u
ZFdpdGgobmV3IFJlc3BvbnNlKHN0cmVhbSkpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVzcG9uc2UtYm9k
eS13aXRoLWludmFsaWQtY2h1bmstaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXJlc3BvbnNlLWJvZHktd2l0aC1pbnZhbGlk
LWNodW5rLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYzdlNjE4MGM4MTcwN2E2NjRiZTRhZTcx
MzFhOWU1NjRmYTVkOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXJlc3BvbnNlLWJvZHktd2l0aC1pbnZhbGlk
LWNodW5rLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPnJlc3BvbmQtd2l0aC1yZXNwb25zZS1ib2R5LXdp
dGgtaW52YWxpZC1jaHVuazwvdGl0bGU+Cis8Ym9keT48L2JvZHk+Cis8c2NyaXB0PgorJ3VzZSBz
dHJpY3QnOworCitmZXRjaCgnYm9keS1zdHJlYW0td2l0aC1pbnZhbGlkLWNodW5rJykudGhlbihy
ZXNwID0+IHsKKyAgICBjb25zdCByZWFkZXIgPSByZXNwLmJvZHkuZ2V0UmVhZGVyKCk7CisgICAg
cmV0dXJuIHJlYWRlci5yZWFkKCkudGhlbigKKyAgICAgICgpID0+IHBhcmVudC5kb25lKCdGQUlM
OiByZWFkKCkgc2hvdWxkIGJlIHJlamVjdGVkJyksCisgICAgICAoKSA9PiBwYXJlbnQuZG9uZSgn
UEFTUycpKTsKKyAgfSkuY2F0Y2goZSA9PiBwYXJlbnQuZG9uZSgnRkFJTDogJyArIGUpKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2
ZW50LXJlc3BvbmQtd2l0aC1yZXNwb25zZS1ib2R5LXdpdGgtaW52YWxpZC1jaHVuay13b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRo
LXJlc3BvbnNlLWJvZHktd2l0aC1pbnZhbGlkLWNodW5rLXdvcmtlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MjU0ZTI0Zjk0YTJlZjUyMTA3NjdhZjVkNzE3ZTg4NjZlMDlkYjBlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1y
ZXNwb25zZS1ib2R5LXdpdGgtaW52YWxpZC1jaHVuay13b3JrZXIuanMKQEAgLTAsMCArMSwxMiBA
QAorJ3VzZSBzdHJpY3QnOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZXZlbnQg
PT4geworICAgIGlmICghZXZlbnQucmVxdWVzdC51cmwubWF0Y2goL2JvZHktc3RyZWFtLXdpdGgt
aW52YWxpZC1jaHVuayQvKSkKKyAgICAgIHJldHVybjsKKyAgICBjb25zdCBzdHJlYW0gPSBuZXcg
UmVhZGFibGVTdHJlYW0oe3N0YXJ0OiBjb250cm9sbGVyID0+IHsKKyAgICAgICAgLy8gVGhlIGFy
Z3VtZW50IGlzIGludGVudGlvbmFsbHkgYSBzdHJpbmcsIG5vdCBhIFVpbnQ4QXJyYXkuCisgICAg
ICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSgnaGVsbG8nKTsKKyAgICAgIH19KTsKKyAgICBjb25zdCBo
ZWFkZXJzID0geyAneC1jb250ZW50LXR5cGUtb3B0aW9ucyc6ICdub3NuaWZmJyB9OworICAgIGV2
ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShzdHJlYW0sIHsgaGVhZGVycyB9KSk7CisgIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJl
c3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtcmVzcG9uZC13aXRoLXN0b3BzLXByb3BhZ2F0aW9uLXdv
cmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xOGRhMDQ5ZDY5ZjRmYmY5NGRjYTU5NmEzZGU4MTM5ZGZjNWNj
MWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi13b3JrZXIuanMKQEAgLTAsMCAr
MSwxNSBAQAordmFyIHJlc3VsdCA9IG51bGw7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVz
c2FnZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZXZlbnQuZGF0YS5wb3J0LnBvc3RNZXNzYWdl
KHJlc3VsdCk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgIHJlc3VsdCA9ICdQQVNTJzsKKyAg
ICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoKSk7CisgIH0pOworCitzZWxmLmFkZEV2
ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICByZXN1bHQgPSAnRkFJ
TDogZmV0Y2ggZXZlbnQgcHJvcGFnYXRlZCc7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXRlc3Qtd29ya2VyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYxYWU4NWU5ODk4NmM2ZjAyOGRlYWVjNGY2ODEyNWNlNTAzODBiYmUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIu
anMKQEAgLTAsMCArMSwxNTcgQEAKK2Z1bmN0aW9uIGhhbmRsZVN0cmluZyhldmVudCkgeworICBl
dmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoJ1Rlc3Qgc3RyaW5nJykpOworfQorCitmdW5j
dGlvbiBoYW5kbGVCbG9iKGV2ZW50KSB7CisgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25z
ZShuZXcgQmxvYihbJ1Rlc3QgYmxvYiddKSkpOworfQorCitmdW5jdGlvbiBoYW5kbGVSZWZlcnJl
cihldmVudCkgeworICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UobmV3IEJsb2IoCisg
ICAgWydSZWZlcnJlcjogJyArIGV2ZW50LnJlcXVlc3QucmVmZXJyZXJdKSkpOworfQorCitmdW5j
dGlvbiBoYW5kbGVSZWZlcnJlclBvbGljeShldmVudCkgeworICBldmVudC5yZXNwb25kV2l0aChu
ZXcgUmVzcG9uc2UobmV3IEJsb2IoCisgICAgWydSZWZlcnJlclBvbGljeTogJyArIGV2ZW50LnJl
cXVlc3QucmVmZXJyZXJQb2xpY3ldKSkpOworfQorCitmdW5jdGlvbiBoYW5kbGVSZWZlcnJlckZ1
bGwoZXZlbnQpIHsKKyAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKG5ldyBCbG9iKAor
ICAgIFsnUmVmZXJyZXI6ICcgKyBldmVudC5yZXF1ZXN0LnJlZmVycmVyICsgJ1xuJyArCisgICAg
ICdSZWZlcnJlclBvbGljeTogJyArIGV2ZW50LnJlcXVlc3QucmVmZXJyZXJQb2xpY3ldKSkpOwor
fQorCitmdW5jdGlvbiBoYW5kbGVDbGllbnRJZChldmVudCkgeworICB2YXIgYm9keTsKKyAgaWYg
KGV2ZW50LmNsaWVudElkICE9PSBudWxsKSB7CisgICAgYm9keSA9ICdDbGllbnQgSUQgRm91bmQ6
ICcgKyBldmVudC5jbGllbnRJZDsKKyAgfSBlbHNlIHsKKyAgICBib2R5ID0gJ0NsaWVudCBJRCBO
b3QgRm91bmQnOworICB9CisgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShib2R5KSk7
Cit9CisKK2Z1bmN0aW9uIGhhbmRsZU51bGxCb2R5KGV2ZW50KSB7CisgIGV2ZW50LnJlc3BvbmRX
aXRoKG5ldyBSZXNwb25zZSgpKTsKK30KKworZnVuY3Rpb24gaGFuZGxlRmV0Y2goZXZlbnQpIHsK
KyAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ290aGVyLmh0bWwnKSk7Cit9CisKK2Z1bmN0aW9u
IGhhbmRsZUZvcm1Qb3N0KGV2ZW50KSB7CisgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgIGV2ZW50LnJlcXVlc3QudGV4dCgpCisgICAgICAg
IC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9u
c2UoZXZlbnQucmVxdWVzdC5tZXRob2QgKyAnOicgKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXZlbnQucmVxdWVzdC5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJykgKyAnOicg
KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KSk7CisgICAgICAgICAg
fSk7CisgICAgfSkpOworfQorCitmdW5jdGlvbiBoYW5kbGVNdWx0aXBsZVJlc3BvbmRXaXRoKGV2
ZW50KSB7CisgIHZhciBsb2dGb3JNdWx0aXBsZVJlc3BvbmRXaXRoID0gJyc7CisgIGZvciAodmFy
IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgbG9nRm9yTXVsdGlwbGVSZXNwb25kV2l0aCArPSAn
KCcgKyBpICsgJyknOworICAgIHRyeSB7CisgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUHJv
bWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9uc2UobG9nRm9yTXVsdGlwbGVSZXNwb25kV2l0
aCkpOworICAgICAgICB9LCAwKTsKKyAgICAgIH0pKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICBsb2dGb3JNdWx0aXBsZVJlc3BvbmRXaXRoICs9ICdbJyArIGUubmFtZSArICddJzsKKyAgICB9
CisgIH0KK30KKwordmFyIGxhc3RSZXNwb25zZUZvclVzZWRDaGVjayA9IHVuZGVmaW5lZDsKKwor
ZnVuY3Rpb24gaGFuZGxlVXNlZENoZWNrKGV2ZW50KSB7CisgIGlmICghbGFzdFJlc3BvbnNlRm9y
VXNlZENoZWNrKSB7CisgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goJ290aGVyLmh0bWwnKS50
aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIGxhc3RSZXNwb25zZUZvclVzZWRDaGVj
ayA9IHJlc3BvbnNlOworICAgICAgICByZXR1cm4gcmVzcG9uc2U7CisgICAgICB9KSk7CisgIH0g
ZWxzZSB7CisgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKAorICAgICAgICAnYm9k
eVVzZWQ6ICcgKyBsYXN0UmVzcG9uc2VGb3JVc2VkQ2hlY2suYm9keVVzZWQpKTsKKyAgfQorfQor
ZnVuY3Rpb24gaGFuZGxlRnJhZ21lbnRDaGVjayhldmVudCkgeworICB2YXIgYm9keTsKKyAgaWYg
KGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJyMnKSA9PT0gLTEpIHsKKyAgICBib2R5ID0gJ0Zy
YWdtZW50IE5vdCBGb3VuZCc7CisgIH0gZWxzZSB7CisgICAgYm9keSA9ICdGcmFnbWVudCBGb3Vu
ZCA6JyArCisgICAgICAgICAgIGV2ZW50LnJlcXVlc3QudXJsLnN1YnN0cmluZyhldmVudC5yZXF1
ZXN0LnVybC5pbmRleE9mKCcjJykpOworICB9CisgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNw
b25zZShib2R5KSk7Cit9CitmdW5jdGlvbiBoYW5kbGVDYWNoZShldmVudCkgeworICBldmVudC5y
ZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoZXZlbnQucmVxdWVzdC5jYWNoZSkpOworfQorZnVuY3Rp
b24gaGFuZGxlRXZlbnRTb3VyY2UoZXZlbnQpIHsKKyAgaWYgKGV2ZW50LnJlcXVlc3QubW9kZSA9
PT0gJ25hdmlnYXRlJykgeworICAgIHJldHVybjsKKyAgfQorICB2YXIgZGF0YSA9IHsKKyAgICBt
b2RlOiBldmVudC5yZXF1ZXN0Lm1vZGUsCisgICAgY2FjaGU6IGV2ZW50LnJlcXVlc3QuY2FjaGUs
CisgICAgY3JlZGVudGlhbHM6IGV2ZW50LnJlcXVlc3QuY3JlZGVudGlhbHMKKyAgfTsKKyAgdmFy
IGJvZHkgPSAnZGF0YTonICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkgKyAnXG5cbic7CisgIGV2ZW50
LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShib2R5LCB7CisgICAgICBoZWFkZXJzOiB7ICdDb250
ZW50LVR5cGUnOiAndGV4dC9ldmVudC1zdHJlYW0nIH0KKyAgICB9CisgICkpOworfQorCitmdW5j
dGlvbiBoYW5kbGVJbnRlZ3JpdHkoZXZlbnQpIHsKKyAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJl
c3BvbnNlKGV2ZW50LnJlcXVlc3QuaW50ZWdyaXR5KSk7Cit9CisKK2Z1bmN0aW9uIGhhbmRsZUhl
YWRlcnMoZXZlbnQpIHsKKyAgY29uc3QgaGVhZGVycyA9IEFycmF5LmZyb20oZXZlbnQucmVxdWVz
dC5oZWFkZXJzKTsKKyAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKEpTT04uc3RyaW5n
aWZ5KGhlYWRlcnMpKSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5j
dGlvbihldmVudCkgeworICAgIHZhciB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgICB2YXIg
aGFuZGxlcnMgPSBbCisgICAgICB7IHBhdHRlcm46ICc/c3RyaW5nJywgZm46IGhhbmRsZVN0cmlu
ZyB9LAorICAgICAgeyBwYXR0ZXJuOiAnP2Jsb2InLCBmbjogaGFuZGxlQmxvYiB9LAorICAgICAg
eyBwYXR0ZXJuOiAnP3JlZmVycmVyRnVsbCcsIGZuOiBoYW5kbGVSZWZlcnJlckZ1bGwgfSwKKyAg
ICAgIHsgcGF0dGVybjogJz9yZWZlcnJlclBvbGljeScsIGZuOiBoYW5kbGVSZWZlcnJlclBvbGlj
eSB9LAorICAgICAgeyBwYXR0ZXJuOiAnP3JlZmVycmVyJywgZm46IGhhbmRsZVJlZmVycmVyIH0s
CisgICAgICB7IHBhdHRlcm46ICc/Y2xpZW50SWQnLCBmbjogaGFuZGxlQ2xpZW50SWQgfSwKKyAg
ICAgIHsgcGF0dGVybjogJz9pZ25vcmUnLCBmbjogZnVuY3Rpb24oKSB7fSB9LAorICAgICAgeyBw
YXR0ZXJuOiAnP251bGwnLCBmbjogaGFuZGxlTnVsbEJvZHkgfSwKKyAgICAgIHsgcGF0dGVybjog
Jz9mZXRjaCcsIGZuOiBoYW5kbGVGZXRjaCB9LAorICAgICAgeyBwYXR0ZXJuOiAnP2Zvcm0tcG9z
dCcsIGZuOiBoYW5kbGVGb3JtUG9zdCB9LAorICAgICAgeyBwYXR0ZXJuOiAnP211bHRpcGxlLXJl
c3BvbmQtd2l0aCcsIGZuOiBoYW5kbGVNdWx0aXBsZVJlc3BvbmRXaXRoIH0sCisgICAgICB7IHBh
dHRlcm46ICc/dXNlZC1jaGVjaycsIGZuOiBoYW5kbGVVc2VkQ2hlY2sgfSwKKyAgICAgIHsgcGF0
dGVybjogJz9mcmFnbWVudC1jaGVjaycsIGZuOiBoYW5kbGVGcmFnbWVudENoZWNrIH0sCisgICAg
ICB7IHBhdHRlcm46ICc/Y2FjaGUnLCBmbjogaGFuZGxlQ2FjaGUgfSwKKyAgICAgIHsgcGF0dGVy
bjogJz9ldmVudHNvdXJjZScsIGZuOiBoYW5kbGVFdmVudFNvdXJjZSB9LAorICAgICAgeyBwYXR0
ZXJuOiAnP2ludGVncml0eScsIGZuOiBoYW5kbGVJbnRlZ3JpdHkgfSwKKyAgICAgIHsgcGF0dGVy
bjogJz9oZWFkZXJzJywgZm46IGhhbmRsZUhlYWRlcnMgfSwKKyAgICBdOworCisgICAgdmFyIGhh
bmRsZXIgPSBudWxsOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGFuZGxlcnMubGVuZ3RoOyAr
K2kpIHsKKyAgICAgIGlmICh1cmwuaW5kZXhPZihoYW5kbGVyc1tpXS5wYXR0ZXJuKSAhPSAtMSkg
eworICAgICAgICBoYW5kbGVyID0gaGFuZGxlcnNbaV07CisgICAgICAgIGJyZWFrOworICAgICAg
fQorICAgIH0KKworICAgIGlmIChoYW5kbGVyKSB7CisgICAgICBoYW5kbGVyLmZuKGV2ZW50KTsK
KyAgICB9IGVsc2UgeworICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKG5ldyBC
bG9iKAorICAgICAgICBbJ1NlcnZpY2UgV29ya2VyIGdvdCBhbiB1bmV4cGVjdGVkIHJlcXVlc3Q6
ICcgKyB1cmxdKSkpOworICAgIH0KKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LXdvcmtlci5qcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC13aXRoaW4tc3ctd29ya2VyLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYzMTgwZDc3NmM1YjAyZWQyY2YyMDJjMjk4ZmFiZmQxZThmOGVhMTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtd2l0aGluLXN3
LXdvcmtlci5qcwpAQCAtMCwwICsxLDQ4IEBACitza2lwV2FpdGluZygpOworCithZGRFdmVudExp
c3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsKKyAgY29uc3QgdXJsID0gbmV3IFVSTChldmVudC5y
ZXF1ZXN0LnVybCk7CisKKyAgaWYgKHVybC5vcmlnaW4gIT0gbG9jYXRpb24ub3JpZ2luKSByZXR1
cm47CisKKyAgaWYgKHVybC5wYXRobmFtZS5lbmRzV2l0aCgnL2R1bW15LnR4dCcpKSB7CisgICAg
ZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCdpbnRlcmNlcHRlZCcpKTsKKyAgICByZXR1
cm47CisgIH0KKworICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRoKCcvZHVtbXkudHh0LWlubmVy
LWZldGNoJykpIHsKKyAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaCgnZHVtbXkudHh0JykpOwor
ICAgIHJldHVybjsKKyAgfQorCisgIGlmICh1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy9kdW1teS50
eHQtaW5uZXItY2FjaGUnKSkgeworICAgIGV2ZW50LnJlc3BvbmRXaXRoKAorICAgICAgY2FjaGVz
Lm9wZW4oJ3Rlc3QtaW5uZXItY2FjaGUnKS50aGVuKGNhY2hlID0+CisgICAgICAgIGNhY2hlLmFk
ZCgnZHVtbXkudHh0JykudGhlbigoKSA9PiBjYWNoZS5tYXRjaCgnZHVtbXkudHh0JykpCisgICAg
ICApCisgICAgKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodXJsLnBhdGhuYW1lLmVuZHNX
aXRoKCcvc2hvdy1ub3RpZmljYXRpb24nKSkgeworICAgIC8vIENvcHkgdGhlIGN1cnJlY3Qgc2Vh
cmNoIHN0cmluZyBvbnRvIHRoZSBpY29uIHVybAorICAgIGNvbnN0IGljb25VUkwgPSBuZXcgVVJM
KCdub3RpZmljYXRpb25faWNvbi5weScsIGxvY2F0aW9uKTsKKyAgICBpY29uVVJMLnNlYXJjaCA9
IHVybC5zZWFyY2g7CisKKyAgICBldmVudC5yZXNwb25kV2l0aCgKKyAgICAgIHJlZ2lzdHJhdGlv
bi5zaG93Tm90aWZpY2F0aW9uKCd0ZXN0JywgeworICAgICAgICBpY29uOiBpY29uVVJMCisgICAg
ICB9KS50aGVuKCgpID0+IHJlZ2lzdHJhdGlvbi5nZXROb3RpZmljYXRpb25zKCkpLnRoZW4obm90
aWZpY2F0aW9ucyA9PiB7CisgICAgICAgIGZvciAoY29uc3QgbiBvZiBub3RpZmljYXRpb25zKSBu
LmNsb3NlKCk7CisgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoJ2RvbmUnKTsKKyAgICAgIH0p
CisgICAgKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAodXJsLnBhdGhuYW1lLmVuZHNXaXRo
KCcvbm90aWZpY2F0aW9uX2ljb24ucHknKSkgeworICAgIG5ldyBCcm9hZGNhc3RDaGFubmVsKCdp
Y29uLXJlcXVlc3QnKS5wb3N0TWVzc2FnZSgneWF5Jyk7CisgICAgZXZlbnQucmVzcG9uZFdpdGgo
bmV3IFJlc3BvbnNlKCdkb25lJykpOworICAgIHJldHVybjsKKyAgfQorfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtaGVhZGVyLXZpc2liaWxpdHktaWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtaGVhZGVyLXZpc2li
aWxpdHktaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGQ5YWI2ZmY5MDQ1ODNkNGZmZGEwOGQyNDMy
ZjUzMjFiNGI5MWE4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDY2IEBA
Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0idGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICB2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOworICB2YXIgdXJpID0gZG9j
dW1lbnQubG9jYXRpb24gKyAnP2NoZWNrLXVhLWhlYWRlcic7CisKKyAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVycygpOworICBoZWFkZXJzLnNldCgnVXNlci1BZ2VudCcsICdjdXN0b21fdWEnKTsK
KworICAvLyBDaGVjayB0aGUgY3VzdG9tIFVBIGNhc2UKKyAgZmV0Y2godXJpLCB7IGhlYWRlcnM6
IGhlYWRlcnMgfSkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgIHJldHVybiByZXNwb25z
ZS50ZXh0KCk7CisgIH0pLnRoZW4oZnVuY3Rpb24odGV4dCkgeworICAgIGlmICh0ZXh0ID09ICdj
dXN0b21fdWEnKSB7CisgICAgICBwYXJlbnQucG9zdE1lc3NhZ2UoJ1BBU1MnLCAnKicpOworICAg
IH0gZWxzZSB7CisgICAgICBwYXJlbnQucG9zdE1lc3NhZ2UoJ3dpdGhVQSBGQUlMIC0gZXhwZWN0
ZWQgImN1c3RvbV91YSIsIGdvdCAiJyArIHRleHQgKyAnIicsICcqJyk7CisgICAgfQorICB9KS5j
YXRjaChmdW5jdGlvbihlcnIpIHsKKyAgICBwYXJlbnQucG9zdE1lc3NhZ2UoJ3dpdGhVQSBGQUlM
IC0gdW5leHBlY3RlZCBlcnJvcjogJyArIGVyciwgJyonKTsKKyAgfSk7CisKKyAgLy8gQ2hlY2sg
dGhlIGRlZmF1bHQgVUEgY2FzZQorICBmZXRjaCh1cmksIHt9KS50aGVuKGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7CisgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKKyAgfSkudGhlbihmdW5jdGlvbih0
ZXh0KSB7CisgICAgaWYgKHRleHQgPT0gJ05PX1VBJykgeworICAgICAgcGFyZW50LnBvc3RNZXNz
YWdlKCdQQVNTJywgJyonKTsKKyAgICB9IGVsc2UgeworICAgICAgcGFyZW50LnBvc3RNZXNzYWdl
KCdub1VBIEZBSUwgLSBleHBlY3RlZCAiTk9fVUEiLCBnb3QgIicgKyB0ZXh0ICsgJyInLCAnKicp
OworICAgIH0KKyAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CisgICAgcGFyZW50LnBvc3RNZXNz
YWdlKCdub1VBIEZBSUwgLSB1bmV4cGVjdGVkIGVycm9yOiAnICsgZXJyLCAnKicpOworICB9KTsK
KworICB2YXIgdXJpID0gZG9jdW1lbnQubG9jYXRpb24gKyAnP2NoZWNrLWFjY2VwdC1oZWFkZXIn
OworICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzKCk7CisgIGhlYWRlcnMuc2V0KCdBY2NlcHQn
LCAnaG1tJyk7CisKKyAgLy8gQ2hlY2sgZm9yIGN1c3RvbSBhY2NlcHQgaGVhZGVyCisgIGZldGNo
KHVyaSwgeyBoZWFkZXJzOiBoZWFkZXJzIH0pLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAg
ICByZXR1cm4gcmVzcG9uc2UudGV4dCgpOworICB9KS50aGVuKGZ1bmN0aW9uKHRleHQpIHsKKyAg
ICBpZiAodGV4dCA9PT0gaGVhZGVycy5nZXQoJ0FjY2VwdCcpKSB7CisgICAgICBwYXJlbnQucG9z
dE1lc3NhZ2UoJ1BBU1MnLCAnKicpOworICAgIH0gZWxzZSB7CisgICAgICBwYXJlbnQucG9zdE1l
c3NhZ2UoJ2N1c3RvbSBhY2NlcHQgRkFJTCAtIGV4cGVjdGVkICcgKyBoZWFkZXJzLmdldCgnQWNj
ZXB0JykgKworICAgICAgICAgICAgICAgICAgICAgICAgICcgZ290ICInICsgdGV4dCArICciJywg
JyonKTsKKyAgICB9CisgIH0pLmNhdGNoKGZ1bmN0aW9uKGVycikgeworICAgIHBhcmVudC5wb3N0
TWVzc2FnZSgnY3VzdG9tIGFjY2VwdCBGQUlMIC0gdW5leHBlY3RlZCBlcnJvcjogJyArIGVyciwg
JyonKTsKKyAgfSk7CisKKyAgLy8gQ2hlY2sgZm9yIGRlZmF1bHQgYWNjZXB0IGhlYWRlcgorICBm
ZXRjaCh1cmkpLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICByZXR1cm4gcmVzcG9uc2Uu
dGV4dCgpOworICB9KS50aGVuKGZ1bmN0aW9uKHRleHQpIHsKKyAgICBpZiAodGV4dCA9PT0gJyov
KicpIHsKKyAgICAgIHBhcmVudC5wb3N0TWVzc2FnZSgnUEFTUycsICcqJyk7CisgICAgfSBlbHNl
IHsKKyAgICAgIHBhcmVudC5wb3N0TWVzc2FnZSgnYWNjZXB0IEZBSUwgLSBleHBlY3RlZCAqLyog
Z290ICInICsgdGV4dCArICciJywgJyonKTsKKyAgICB9CisgIH0pLmNhdGNoKGZ1bmN0aW9uKGVy
cikgeworICAgIHBhcmVudC5wb3N0TWVzc2FnZSgnYWNjZXB0IEZBSUwgLSB1bmV4cGVjdGVkIGVy
cm9yOiAnICsgZXJyLCAnKicpOworICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLW1peGVkLWNvbnRlbnQtaWZyYW1lLWluc2NvcGUt
dG8taW5zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLW1peGVk
LWNvbnRlbnQtaWZyYW1lLWluc2NvcGUtdG8taW5zY29wZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2YTI2
MGQwNjZiZmJhMDQwMjNhZTM1Y2Y1YmZiNTY5MGM5ZjljNWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtbWl4ZWQtY29udGVudC1pZnJhbWUtaW5z
Y29wZS10by1pbnNjb3BlLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPHNjcmlwdCBzcmM9Ii9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3QtaGVs
cGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBpbWFnZV9wYXRo
ID0gYmFzZV9wYXRoKCkgKyAnZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHk/UE5HSU1BR0UnOwordmFy
IGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKK3ZhciByZXN1bHRzID0gJyc7CisKK2Z1bmN0
aW9uIHRlc3QxKCkgeworICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7
CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIHRlc3QyKCk7CisgIH07CisgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7
CisgICAgcmVzdWx0cyArPSAnRkFJTCgxKSc7CisgICAgdGVzdDIoKTsKKyAgfTsKKyAgaW1nLnNy
YyA9ICcuL2R1bW15P3VybD0nICsKKyAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChob3N0
X2luZm9bJ0hUVFBTX09SSUdJTiddICsgaW1hZ2VfcGF0aCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qy
KCkgeworICB2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1nKTsKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIHRlc3QzKCk7CisgIH07CisgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgcmVz
dWx0cyArPSAnRkFJTCgyKSc7CisgICAgdGVzdDMoKTsKKyAgfTsKKyAgaW1nLnNyYyA9ICcuL2R1
bW15P21vZGU9bm8tY29ycyZ1cmw9JyArCisgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQo
aG9zdF9pbmZvWydIVFRQU19SRU1PVEVfT1JJR0lOJ10gKyBpbWFnZV9wYXRoKTsKK30KKworZnVu
Y3Rpb24gdGVzdDMoKSB7CisgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcn
KTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpOworICBpbWcub25sb2FkID0gZnVu
Y3Rpb24oKSB7CisgICAgcmVzdWx0cyArPSAnRkFJTCgzKSc7CisgICAgdGVzdDQoKTsKKyAgfTsK
KyAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICB0ZXN0NCgpOworICB9OworICBpbWcu
c3JjID0gJy4vZHVtbXk/bW9kZT1uby1jb3JzJnVybD0nICsKKyAgICAgICAgICAgIGVuY29kZVVS
SUNvbXBvbmVudChob3N0X2luZm9bJ0hUVFBfT1JJR0lOJ10gKyBpbWFnZV9wYXRoKTsKK30KKwor
ZnVuY3Rpb24gdGVzdDQoKSB7CisgIHZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdp
bWcnKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpOworICBpbWcub25sb2FkID0g
ZnVuY3Rpb24oKSB7CisgICAgcmVzdWx0cyArPSAnRkFJTCg0KSc7CisgICAgZmluaXNoKCk7Cisg
IH07CisgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgZmluaXNoKCk7CisgIH07Cisg
IGltZy5zcmMgPSAnLi9kdW1teT9tb2RlPW5vLWNvcnMmdXJsPScgKworICAgICAgICAgICAgZW5j
b2RlVVJJQ29tcG9uZW50KGhvc3RfaW5mb1snSFRUUF9SRU1PVEVfT1JJR0lOJ10gKyBpbWFnZV9w
YXRoKTsKK30KKworZnVuY3Rpb24gZmluaXNoKCkgeworICByZXN1bHRzICs9ICdmaW5pc2gnOwor
ICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiByZXN1bHRzfSwgaG9zdF9pbmZv
WydIVFRQU19PUklHSU4nXSk7Cit9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSd0ZXN0MSgp
Oyc+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtbWl4ZWQtY29udGVudC1pZnJhbWUtaW5zY29wZS10by1vdXRzY29wZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLW1peGVkLWNvbnRlbnQtaWZyYW1lLWluc2NvcGUt
dG8tb3V0c2NvcGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGM5NDBjMmEwYTU2ODBhYTIyODJjYjdlM2I2
MTk0MDhlZDgyZjg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLW1peGVkLWNvbnRlbnQtaWZyYW1lLWluc2NvcGUtdG8tb3V0c2NvcGUuaHRtbApA
QCAtMCwwICsxLDgwIEBACis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0idGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIGltYWdlX3BhdGggPSBiYXNlX3BhdGgoKSArICdmZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9QTkdJTUFHRSc7Cit2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3Rf
aW5mbygpOwordmFyIHJlc3VsdHMgPSAnJzsKKworZnVuY3Rpb24gdGVzdDEoKSB7CisgIHZhciBp
bWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpbWcpOworICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgdGVzdDIoKTsK
KyAgfTsKKyAgaW1nLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICByZXN1bHRzICs9ICdGQUlM
KDEpJzsKKyAgICB0ZXN0MigpOworICB9OworICBpbWcuc3JjID0gaG9zdF9pbmZvWydIVFRQU19P
UklHSU4nXSArIGltYWdlX3BhdGg7Cit9CisKK2Z1bmN0aW9uIHRlc3QyKCkgeworICB2YXIgaW1n
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaW1nKTsKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHRlc3QzKCk7Cisg
IH07CisgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgcmVzdWx0cyArPSAnRkFJTCgy
KSc7CisgICAgdGVzdDMoKTsKKyAgfTsKKyAgaW1nLnNyYyA9IGhvc3RfaW5mb1snSFRUUFNfUkVN
T1RFX09SSUdJTiddICsgaW1hZ2VfcGF0aDsKK30KKworZnVuY3Rpb24gdGVzdDMoKSB7CisgIHZh
ciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWcpOworICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgcmVzdWx0
cyArPSAnRkFJTCgzKSc7CisgICAgdGVzdDQoKTsKKyAgfTsKKyAgaW1nLm9uZXJyb3IgPSBmdW5j
dGlvbigpIHsKKyAgICB0ZXN0NCgpOworICB9OworICBpbWcuc3JjID0gaG9zdF9pbmZvWydIVFRQ
X09SSUdJTiddICsgaW1hZ2VfcGF0aDsKK30KKworZnVuY3Rpb24gdGVzdDQoKSB7CisgIHZhciBp
bWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpbWcpOworICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgcmVzdWx0cyAr
PSAnRkFJTCg0KSc7CisgICAgdGVzdDUoKTsKKyAgfTsKKyAgaW1nLm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsKKyAgICB0ZXN0NSgpOworICB9OworICBpbWcuc3JjID0gaG9zdF9pbmZvWydIVFRQX1JF
TU9URV9PUklHSU4nXSArIGltYWdlX3BhdGg7Cit9CisKK2Z1bmN0aW9uIHRlc3Q1KCkgeworICB2
YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaW1nKTsKKyAgaW1nLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIGZpbmlz
aCgpOworICB9OworICBpbWcub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgIHJlc3VsdHMgKz0g
J0ZBSUwoNSknOworICAgIGZpbmlzaCgpOworICB9OworICBpbWcuc3JjID0gJy4vZHVtbXk/Z2Vu
ZXJhdGUtcG5nJzsKK30KKworZnVuY3Rpb24gZmluaXNoKCkgeworICByZXN1bHRzICs9ICdmaW5p
c2gnOworICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiByZXN1bHRzfSwgaG9z
dF9pbmZvWydIVFRQU19PUklHSU4nXSk7Cit9Cis8L3NjcmlwdD4KKworPGJvZHkgb25sb2FkPSd0
ZXN0MSgpOyc+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtbWl4ZWQtY29udGVudC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9mZXRjaC1taXhlZC1jb250ZW50LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MzFj
MzgxYjVlNDZiNjJkOWI0MDJiMTA0NWZhMGYyNmQwNjYxZjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtbWl4ZWQtY29udGVudC1pZnJhbWUuaHRt
bApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvY29tbW9u
L2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0ZXN0LWhlbHBl
cnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgcGFyYW1zID0gZ2V0
X3F1ZXJ5X3BhcmFtcyhsb2NhdGlvbi5ocmVmKTsKK3ZhciBTQ09QRSA9ICdmZXRjaC1taXhlZC1j
b250ZW50LWlmcmFtZS1pbnNjb3BlLXRvLScgKyBwYXJhbXNbJ3RhcmdldCddICsgJy5odG1sJzsK
K3ZhciBVUkwgPSAnZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMnOwordmFyIGhvc3RfaW5mbyA9IGdl
dF9ob3N0X2luZm8oKTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbl9t
ZXNzYWdlLCBmYWxzZSk7CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlv
bihTQ09QRSkKKyAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICBpZiAocmVn
aXN0cmF0aW9uKQorICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAg
ICB9KQorICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcihVUkwsIHtzY29wZTogU0NPUEV9KTsKKyAgICB9KQorICAudGhlbihm
dW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2ZW50TGlzdGVuZXIoJ3Vw
ZGF0ZWZvdW5kJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJlc29sdmUocmVnaXN0cmF0
aW9uLmluc3RhbGxpbmcpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pCisg
IC50aGVuKGZ1bmN0aW9uKHdvcmtlcikgeworICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J3N0YXRlY2hhbmdlJywgb25fc3RhdGVfY2hhbmdlKTsKKyAgICB9KQorICAuY2F0Y2goZnVuY3Rp
b24ocmVhc29uKSB7CisgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAn
RkFJTFVSRTogJyArIHJlYXNvbi5tZXNzYWdlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSk7CisgICAgIH0pOworCitmdW5jdGlvbiBv
bl9zdGF0ZV9jaGFuZ2UoZXZlbnQpIHsKKyAgaWYgKGV2ZW50LnRhcmdldC5zdGF0ZSAhPSAnYWN0
aXZhdGVkJykKKyAgICByZXR1cm47CisgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2lmcmFtZScpOworICBmcmFtZS5zcmMgPSBTQ09QRTsKKyAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChmcmFtZSk7Cit9CisKK2Z1bmN0aW9uIG9uX21lc3NhZ2UoZSkgeworICBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oU0NPUEUpCisgICAgLnRoZW4oZnVuY3Rp
b24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgIGlmIChyZWdpc3RyYXRpb24pCisgICAgICAgICAg
cmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICB9KQorICAgIC50aGVuKGZ1
bmN0aW9uKCkgeworICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShlLmRhdGEsIGhvc3Rf
aW5mb1snSFRUUFNfT1JJR0lOJ10pOworICAgIH0pCisgICAgLmNhdGNoKGZ1bmN0aW9uKHJlYXNv
bikgeworICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnRkFJTFVS
RTogJyArIHJlYXNvbi5tZXNzYWdlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddKTsKKyAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGdl
dF9xdWVyeV9wYXJhbXModXJsKSB7CisgIHZhciBzZWFyY2ggPSAobmV3IFVSTCh1cmwpKS5zZWFy
Y2g7CisgIGlmICghc2VhcmNoKSB7CisgICAgcmV0dXJuIHt9OworICB9CisgIHZhciByZXQgPSB7
fTsKKyAgdmFyIHBhcmFtcyA9IHNlYXJjaC5zdWJzdHJpbmcoMSkuc3BsaXQoJyYnKTsKKyAgcGFy
YW1zLmZvckVhY2goZnVuY3Rpb24ocGFyYW0pIHsKKyAgICAgIHZhciBlbGVtZW50ID0gcGFyYW0u
c3BsaXQoJz0nKTsKKyAgICAgIHJldFtkZWNvZGVVUklDb21wb25lbnQoZWxlbWVudFswXSldID0g
ZGVjb2RlVVJJQ29tcG9uZW50KGVsZW1lbnRbMV0pOworICAgIH0pOworICByZXR1cm4gcmV0Owor
fQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtaWZyYW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGVkZjJlN2Y5NjU5YTViYTJiMjA0Yzc2ZWMwNDUwM2VhY2FjMTRhNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNl
LXVybC1pZnJhbWUuaHRtbApAQCAtMCwwICsxIEBACis8bGluayBocmVmPSIuL2ZldGNoLXJlcXVl
c3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz
cyI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVz
dC1jc3MtYmFzZS11cmwtc3R5bGUuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NjQzZjY2N2Fk
YmMyNjMyNDNkOTNmNmZhM2EzYjQ2YTc3ZDRkZTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLXN0eWxlLmNz
cwpAQCAtMCwwICsxIEBACitib2R5IHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuL2R1bW15LnBu
ZyIpO30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1
ZXN0LWNzcy1iYXNlLXVybC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxYzMyNTk5
OGEzYjhkNmE2MTA2YTgzNDkwM2UyMDU1OWUwZjAwNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11cmwtd29ya2Vy
LmpzCkBAIC0wLDAgKzEsMjcgQEAKK2ltcG9ydFNjcmlwdHMoJy9jb21tb24vZ2V0LWhvc3QtaW5m
by5zdWIuanMnKTsKK2ltcG9ydFNjcmlwdHMoJ3Rlc3QtaGVscGVycy5zdWIuanMnKTsKKwordmFy
IHBvcnQgPSB1bmRlZmluZWQ7CisKK3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICB2
YXIgbWVzc2FnZSA9IGUuZGF0YTsKKyAgaWYgKCdwb3J0JyBpbiBtZXNzYWdlKSB7CisgICAgcG9y
dCA9IG1lc3NhZ2UucG9ydDsKKyAgICBwb3J0LnBvc3RNZXNzYWdlKHtyZWFkeTogdHJ1ZX0pOwor
ICB9Cit9OworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICB2YXIgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7CisgICAgaWYgKHVybC5pbmRleE9m
KCdmZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5jc3MnKSAhPSAtMSkgeworICAgICAg
ZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goCisgICAgICAgIGdldF9ob3N0X2luZm8oKVsnSFRUUFNf
UkVNT1RFX09SSUdJTiddICsgYmFzZV9wYXRoKCkgKworICAgICAgICAnZmV0Y2gtcmVxdWVzdC1j
c3MtYmFzZS11cmwtc3R5bGUuY3NzJywKKyAgICAgICAge21vZGU6ICduby1jb3JzJ30pKTsKKyAg
ICB9IGVsc2UgaWYgKHVybC5pbmRleE9mKCdkdW1teS5wbmcnKSAhPSAtMSkgeworICAgICAgcG9y
dC5wb3N0TWVzc2FnZSh7CisgICAgICAgICAgdXJsOiBldmVudC5yZXF1ZXN0LnVybCwKKyAgICAg
ICAgICByZWZlcnJlcjogZXZlbnQucmVxdWVzdC5yZWZlcnJlcgorICAgICAgICB9KTsKKyAgICB9
CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJl
cXVlc3QtY3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLWNyb3NzLmNzcyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVj
ay1jcm9zcy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE3NTQ1ZDA3MDIxNWU2MWQzYWQyMjE1NjAxOGE4YjMy
MDk2M2M1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay1jcm9zcy5jc3MKQEAgLTAs
MCArMSBAQAorI2Nyb3NzT3JpZ2luQ3NzIHsgY29sb3I6IGJsdWU7IH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4t
bWltZS1jaGVjay1jcm9zcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LXJlcXVlc3QtY3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLWNyb3NzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzIxMWY3ODA4NGQ3Mzg5NTljZWUyMjU3ZWE3M2NiY2QyZGEwY2UyYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9z
cy1vcmlnaW4tbWltZS1jaGVjay1jcm9zcy5odG1sCkBAIC0wLDAgKzEgQEAKKyNjcm9zc09yaWdp
bkh0bWwgeyBjb2xvcjogcmVkOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtY3Jvc3Mtb3JpZ2luLW1pbWUtY2hlY2staWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtY3Jvc3Mt
b3JpZ2luLW1pbWUtY2hlY2staWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGNiODI4NzEzNTRlMGRm
N2M5NDQ1ZDQxNzNhYjk5NTY3Y2I3MTMyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVj
ay1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgor
I2Nyb3NzT3JpZ2luQ3NzIHsgY29sb3I6IHJlZDsgfQorI2Nyb3NzT3JpZ2luSHRtbCB7IGNvbG9y
OiBibHVlOyB9Cisjc2FtZU9yaWdpbkNzcyB7IGNvbG9yOiByZWQ7IH0KKyNzYW1lT3JpZ2luSHRt
bCB7IGNvbG9yOiByZWQ7IH0KKyNzeW50aGV0aWMgeyBjb2xvcjogcmVkOyB9Cis8L3N0eWxlPgor
PGxpbmsgaHJlZj0iLi9jcm9zcy1vcmlnaW4tY3NzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyI+Cis8bGluayBocmVmPSIuL2Nyb3NzLW9yaWdpbi1odG1sLmNzcyIgcmVsPSJz
dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+Cis8bGluayBocmVmPSIuL2ZldGNoLXJlcXVlc3Qt
Y3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLXNhbWUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIj4KKzxsaW5rIGhyZWY9Ii4vZmV0Y2gtcmVxdWVzdC1jc3MtY3Jvc3Mtb3Jp
Z2luLW1pbWUtY2hlY2stc2FtZS5odG1sIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3Nz
Ij4KKzxsaW5rIGhyZWY9Ii4vc3ludGhldGljLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0
ZXh0L2NzcyI+Cis8aDEgaWQ9Y3Jvc3NPcmlnaW5Dc3M+SSBzaG91bGQgYmUgYmx1ZTwvaDE+Cis8
aDEgaWQ9Y3Jvc3NPcmlnaW5IdG1sPkkgc2hvdWxkIGJlIGJsdWU8L2gxPgorPGgxIGlkPXNhbWVP
cmlnaW5Dc3M+SSBzaG91bGQgYmUgYmx1ZTwvaDE+Cis8aDEgaWQ9c2FtZU9yaWdpbkh0bWw+SSBz
aG91bGQgYmUgYmx1ZTwvaDE+Cis8aDEgaWQ9c3ludGhldGljPkkgc2hvdWxkIGJlIGJsdWU8L2gx
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qt
Y3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLXNhbWUuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLXNhbWUu
Y3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU1NDU1YmQ1ZGE1ODhjYTBjMGNlZDJmMTM4MDJiMzViNTYxMWZlYjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVx
dWVzdC1jc3MtY3Jvc3Mtb3JpZ2luLW1pbWUtY2hlY2stc2FtZS5jc3MKQEAgLTAsMCArMSBAQAor
I3NhbWVPcmlnaW5Dc3MgeyBjb2xvcjogYmx1ZTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNr
LXNhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNz
cy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay1zYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZhZDRiOWZm
MDQ4NDI0OTcxZjljNzlkOWZiMGRjZWE2YmQ0MjgyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWlt
ZS1jaGVjay1zYW1lLmh0bWwKQEAgLTAsMCArMSBAQAorI3NhbWVPcmlnaW5IdG1sIHsgY29sb3I6
IGJsdWU7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1y
ZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay13b3JrZXIuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtY3Jvc3Mtb3JpZ2luLW1pbWUtY2hl
Y2std29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3NDE0MmY1Y2U0NDAwMTZiYjUzYjRjZThjZWNjNDRj
OGFkYjViODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtcmVxdWVzdC1jc3MtY3Jvc3Mtb3JpZ2luLW1pbWUtY2hlY2std29ya2VyLmpzCkBAIC0w
LDAgKzEsMjAgQEAKK2ltcG9ydFNjcmlwdHMoJy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMn
KTsKK2ltcG9ydFNjcmlwdHMoJ3Rlc3QtaGVscGVycy5zdWIuanMnKTsKKworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgaWYgKGV2ZW50LnJlcXVl
c3QudXJsLmluZGV4T2YoJ2Nyb3NzLW9yaWdpbi1jc3MuY3NzJykgIT0gLTEpIHsKKyAgICAgIGV2
ZW50LnJlc3BvbmRXaXRoKGZldGNoKAorICAgICAgICAgIGdldF9ob3N0X2luZm8oKVsnSFRUUFNf
UkVNT1RFX09SSUdJTiddICsgYmFzZV9wYXRoKCkgKworICAgICAgICAgICdmZXRjaC1yZXF1ZXN0
LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay1jcm9zcy5jc3MnLAorICAgICAgICAgIHttb2Rl
OiAnbm8tY29ycyd9KSk7CisgICAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9m
KCdjcm9zcy1vcmlnaW4taHRtbC5jc3MnKSAhPSAtMSkgeworICAgICAgZXZlbnQucmVzcG9uZFdp
dGgoZmV0Y2goCisgICAgICAgICAgZ2V0X2hvc3RfaW5mbygpWydIVFRQU19SRU1PVEVfT1JJR0lO
J10gKyBiYXNlX3BhdGgoKSArCisgICAgICAgICAgJ2ZldGNoLXJlcXVlc3QtY3NzLWNyb3NzLW9y
aWdpbi1taW1lLWNoZWNrLWNyb3NzLmh0bWwnLAorICAgICAgICAgIHttb2RlOiAnbm8tY29ycyd9
KSk7CisgICAgfSBlbHNlIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCdzeW50aGV0aWMu
Y3NzJykgIT0gLTEpIHsKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgiI3N5
bnRoZXRpYyB7IGNvbG9yOiBibHVlOyB9IikpOworICAgIH0gZWxzZSB7CisgICAgICBldmVudC5y
ZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7CisgICAgfQorICB9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLWlm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtZmFs
bGJhY2staWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDExN2QwZjU1ZWYzZDBjYmQwZDZmMDBmNmZl
MjhhODA4NmVmNmY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzIgQEAK
KzxzY3JpcHQ+CitmdW5jdGlvbiB4aHIodXJsKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7CisgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAgICdlcnJv
cicsCisgICAgICAgIGZ1bmN0aW9uKCkgeyByZWplY3QobmV3IEVycm9yKCkpOyB9KTsKKyAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigKKyAgICAgICAgJ2xvYWQnLAorICAgICAgICBmdW5j
dGlvbihldmVudCkgeyByZXNvbHZlKHJlcXVlc3QucmVzcG9uc2UpOyB9KTsKKyAgICAgIHJlcXVl
c3Qub3BlbignR0VUJywgdXJsKTsKKyAgICAgIHJlcXVlc3Quc2VuZCgpOworICAgIH0pOworfQor
CitmdW5jdGlvbiBsb2FkX2ltYWdlKHVybCwgY3Jvc3Nfb3JpZ2luKSB7CisgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBpbWcgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKKyAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoaW1nKTsKKyAgICAgIGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfTsKKyAgICAgIGltZy5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAg
IHJlamVjdChuZXcgRXJyb3IoKSk7CisgICAgICB9OworICAgICAgaWYgKGNyb3NzX29yaWdpbiAh
PSAnJykgeworICAgICAgICBpbWcuY3Jvc3NPcmlnaW4gPSBjcm9zc19vcmlnaW47CisgICAgICB9
CisgICAgICBpbWcuc3JjID0gdXJsOworICAgIH0pOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1mYWxsYmFjay13b3Jr
ZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1mYWxsYmFj
ay13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IwMjhiMjRiZGU0NGQ2ZWY5NWRhNDBlMjdiZmQ5NmM5
Mzk3M2ExYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLXdvcmtlci5qcwpAQCAtMCwwICsxLDEzIEBACit2YXIgcmVx
dWVzdHMgPSBbXTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24o
ZXZlbnQpIHsKKyAgICBldmVudC5kYXRhLnBvcnQucG9zdE1lc3NhZ2Uoe3JlcXVlc3RzOiByZXF1
ZXN0c30pOworICAgIHJlcXVlc3RzID0gW107CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVu
ZXIoJ2ZldGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICByZXF1ZXN0cy5wdXNoKHsKKyAgICAg
ICAgdXJsOiBldmVudC5yZXF1ZXN0LnVybCwKKyAgICAgICAgbW9kZTogZXZlbnQucmVxdWVzdC5t
b2RlCisgICAgICB9KTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1odG1sLWltcG9ydHMtaWZyYW1lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzk1MTg1OTQ0ZTk0MjMwMzhlNzA0MjFiY2I4NmVkNDUzN2UwNjg3ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0
LWh0bWwtaW1wb3J0cy1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8c2NyaXB0IHNyYz0i
L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisgIHZhciBob3N0SW5mbyA9IGdldF9ob3N0X2luZm8oKTsKKyAgdmFy
IG1ha2VMaW5rID0gZnVuY3Rpb24oaWQsIHVybCkgeworICAgICAgdmFyIGxpbmsgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7CisgICAgICBsaW5rLnJlbCA9ICdpbXBvcnQnCisgICAg
ICBsaW5rLmlkID0gaWQ7CisgICAgICBsaW5rLmhyZWYgPSB1cmw7CisgICAgICBkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQobGluayk7CisgICAgfTsKKyAgbWFrZUxpbmsoJ3Nh
bWUnLCBob3N0SW5mby5IVFRQU19PUklHSU4gKyAnL2R1bW15LWRpci9zYW1lLmh0bWwnKTsKKyAg
bWFrZUxpbmsoJ290aGVyJywgaG9zdEluZm8uSFRUUFNfUkVNT1RFX09SSUdJTiArICcvZHVtbXkt
ZGlyL290aGVyLmh0bWwnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtaHRtbC1pbXBvcnRzLXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy13b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTUyNWQ1MjY4NjZhZjhhOTk0MTAzMWQwYmM1NDYyMWIyYzZkNjJiZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1
ZXN0LWh0bWwtaW1wb3J0cy13b3JrZXIuanMKQEAgLTAsMCArMSwzMCBAQAoraW1wb3J0U2NyaXB0
cygnL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcycpOwordmFyIGhvc3RfaW5mbyA9IGdldF9o
b3N0X2luZm8oKTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgdmFyIHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICAgIGlmICh1cmwuaW5k
ZXhPZignZHVtbXktZGlyJykgPT0gLTEpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgdmFy
IHJlc3VsdCA9ICdtb2RlPScgKyBldmVudC5yZXF1ZXN0Lm1vZGUgKworICAgICAgJyBjcmVkZW50
aWFscz0nICsgZXZlbnQucmVxdWVzdC5jcmVkZW50aWFsczsKKyAgICBpZiAodXJsID09IGhvc3Rf
aW5mby5IVFRQU19PUklHSU4gKyAnL2R1bW15LWRpci9zYW1lLmh0bWwnKSB7CisgICAgICBldmVu
dC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoCisgICAgICAgIHJlc3VsdCArCisgICAgICAgICc8
bGluayBpZD0ic2FtZS1zYW1lIiByZWw9ImltcG9ydCIgJyArCisgICAgICAgICdocmVmPSInICsg
aG9zdF9pbmZvLkhUVFBTX09SSUdJTiArICcvZHVtbXktZGlyL3NhbWUtc2FtZS5odG1sIj4nICsK
KyAgICAgICAgJzxsaW5rIGlkPSJzYW1lLW90aGVyIiByZWw9ImltcG9ydCIgJyArCisgICAgICAg
ICcgaHJlZj0iJyArIGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKKyAgICAgICAgJy9k
dW1teS1kaXIvc2FtZS1vdGhlci5odG1sIj4nKSk7CisgICAgfSBlbHNlIGlmICh1cmwgPT0gaG9z
dF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKyAnL2R1bW15LWRpci9vdGhlci5odG1sJykgewor
ICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKAorICAgICAgICByZXN1bHQgKwor
ICAgICAgICAnPGxpbmsgaWQ9Im90aGVyLXNhbWUiIHJlbD0iaW1wb3J0IiAnICsKKyAgICAgICAg
JyBocmVmPSInICsgaG9zdF9pbmZvLkhUVFBTX09SSUdJTiArICcvZHVtbXktZGlyL290aGVyLXNh
bWUuaHRtbCI+JyArCisgICAgICAgICc8bGluayBpZD0ib3RoZXItb3RoZXIiIHJlbD0iaW1wb3J0
IiAnICsKKyAgICAgICAgJyBocmVmPSInICsgaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4g
KworICAgICAgICAnL2R1bW15LWRpci9vdGhlci1vdGhlci5odG1sIj4nKSk7CisgICAgfSBlbHNl
IHsKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShyZXN1bHQpKTsKKyAgICB9
CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJl
cXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy1pZnJhbWUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42OGExYTg2ODc2MGJiYzNjOTY2OGI2MjIyNGI3Zjk0MGM1ZGNmZmMzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVl
c3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSBAQAorPHNjcmlw
dCBzcmM9ImVtcHR5LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJzLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1o
ZWFkZXJzLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmQ1OWQ3MzkyMjU1MjFjODYzYjJmYzBjMmY4
NzA3MDg1OWUyYmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLXJlcXVlc3Qtbm8tZnJlc2huZXNzLWhlYWRlcnMtd29ya2VyLmpzCkBAIC0wLDAg
KzEsMTggQEAKK3ZhciByZXF1ZXN0cyA9IFtdOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21l
c3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIGV2ZW50LmRhdGEucG9ydC5wb3N0TWVzc2Fn
ZSh7cmVxdWVzdHM6IHJlcXVlc3RzfSk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J2ZldGNoJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgdXJsID0gZXZlbnQucmVxdWVzdC51
cmw7CisgICAgdmFyIGhlYWRlcnMgPSBbXTsKKyAgICBmb3IgKHZhciBoZWFkZXIgb2YgZXZlbnQu
cmVxdWVzdC5oZWFkZXJzKSB7CisgICAgICBoZWFkZXJzLnB1c2goaGVhZGVyKTsKKyAgICB9Cisg
ICAgcmVxdWVzdHMucHVzaCh7CisgICAgICAgIHVybDogdXJsLAorICAgICAgICBoZWFkZXJzOiBo
ZWFkZXJzCisgICAgICB9KTsKKyAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1
ZXN0KSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zl
dGNoLXJlcXVlc3QtcmVkaXJlY3QtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtcmVxdWVzdC1yZWRpcmVjdC1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZmQ3
NmJmYzQ5OTA4YjliMjVkMTBkNTY3MWM5ZGRiNzA5NWVhNzUyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtcmVkaXJlY3QtaWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIHhocih1cmwpIHsKKyAg
cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFy
IHJlcXVlc3QgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIHJlcXVlc3QuYWRkRXZlbnRM
aXN0ZW5lcigKKyAgICAgICAgJ2Vycm9yJywKKyAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsgcmVq
ZWN0KGV2ZW50KTsgfSk7CisgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgICAg
ICdsb2FkJywKKyAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHsgcmVzb2x2ZShyZXF1ZXN0LnJlc3Bv
bnNlKTsgfSk7CisgICAgICByZXF1ZXN0Lm9wZW4oJ0dFVCcsIHVybCk7CisgICAgICByZXF1ZXN0
LnNlbmQoKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gbG9hZF9pbWFnZSh1cmwpIHsKKyAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIGlt
ZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOworICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChpbWcpOworICAgICAgaW1nLm9ubG9hZCA9IHJlc29sdmU7CisgICAgICBpbWcu
b25lcnJvciA9IHJlamVjdDsKKyAgICAgIGltZy5zcmMgPSB1cmw7CisgICAgfSk7Cit9CisKK2Z1
bmN0aW9uIGxvYWRfYXVkaW8odXJsKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihy
ZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciBhdWRpbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2F1ZGlvJyk7CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGF1ZGlvKTsKKyAg
ICAgIGF1ZGlvLm9uY2FucGxheSA9IHJlc29sdmU7CisgICAgICBhdWRpby5vbmVycm9yID0gcmVq
ZWN0OworICAgICAgYXVkaW8uc3JjID0gdXJsOworICAgIH0pOworfQorPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1yZXNvdXJj
ZXMtaWZyYW1lLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
cmVxdWVzdC1yZXNvdXJjZXMtaWZyYW1lLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU1ZDdkZmU5
NzI0NGNiNTY5ZTc1YjUyNGYxZDE5YjEyZjU0ZTNhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXJlc291cmNlcy1pZnJhbWUuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDc1IEBACis8c2NyaXB0IHNyYz0idGVzdC1oZWxwZXJzLnN1Yi5q
cz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWRf
aW1hZ2UodXJsLCBjcm9zc19vcmlnaW4pIHsKKyAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2ltZycpOworICBpZiAoY3Jvc3Nfb3JpZ2luICE9ICcnKSB7CisgICAgaW1nLmNyb3Nz
T3JpZ2luID0gY3Jvc3Nfb3JpZ2luOworICB9CisgIGltZy5zcmMgPSB1cmw7Cit9CisKK2Z1bmN0
aW9uIGxvYWRfc2NyaXB0KHVybCwgY3Jvc3Nfb3JpZ2luKSB7CisgIHZhciBzY3JpcHQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKKyAgc2NyaXB0LnNyYyA9IHVybDsKKyAgaWYg
KGNyb3NzX29yaWdpbiAhPSAnJykgeworICAgIHNjcmlwdC5jcm9zc09yaWdpbiA9IGNyb3NzX29y
aWdpbjsKKyAgfQorICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7Cit9CisKK2Z1
bmN0aW9uIGxvYWRfY3NzKHVybCwgY3Jvc3Nfb3JpZ2luKSB7CisgIHZhciBsaW5rID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnbGluaycpOworICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JworICBs
aW5rLmhyZWYgPSB1cmw7CisgIGxpbmsudHlwZSA9ICd0ZXh0L2Nzcyc7CisgIGlmIChjcm9zc19v
cmlnaW4gIT0gJycpIHsKKyAgICBsaW5rLmNyb3NzT3JpZ2luID0gY3Jvc3Nfb3JpZ2luOworICB9
CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7Cit9CisKK2Z1bmN0aW9uIGxvYWRf
Zm9udCh1cmwpIHsKKyAgdmFyIGZvbnRGYWNlID0gbmV3IEZvbnRGYWNlKCd0ZXN0JywgJ3VybCgn
ICsgdXJsICsgJyknKTsKKyAgZm9udEZhY2UubG9hZCgpOworfQorCitmdW5jdGlvbiBsb2FkX2Nz
c19pbWFnZSh1cmwsIHR5cGUpIHsKKyAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgIGRpdi5zdHlsZVt0
eXBlXSA9ICd1cmwoJyArIHVybCArICcpJzsKK30KKworZnVuY3Rpb24gbG9hZF9jc3NfaW1hZ2Vf
c2V0KHVybCwgdHlwZSkgeworICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgZGl2LnN0eWxlW3R5cGVd
ID0gJy13ZWJraXQtaW1hZ2Utc2V0KHVybCgnICsgdXJsICsgJykgMXgpJzsKK30KKworZnVuY3Rp
b24gbG9hZF9zY3JpcHRfd2l0aF9pbnRlZ3JpdHkodXJsLCBpbnRlZ3JpdHkpIHsKKyAgdmFyIHNj
cmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOworICBzY3JpcHQuc3JjID0g
dXJsOworICBzY3JpcHQuaW50ZWdyaXR5ID0gaW50ZWdyaXR5OworICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKHNjcmlwdCk7Cit9CisKK2Z1bmN0aW9uIGxvYWRfY3NzX3dpdGhfaW50ZWdyaXR5
KHVybCwgaW50ZWdyaXR5KSB7CisgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bGluaycpOworICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JworICBsaW5rLmhyZWYgPSB1cmw7Cisg
IGxpbmsudHlwZSA9ICd0ZXh0L2Nzcyc7CisgIGxpbmsuaW50ZWdyaXR5ID0gaW50ZWdyaXR5Owor
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspOworfQorCitmdW5jdGlvbiBsb2FkX2F1
ZGlvKHVybCwgY3Jvc3Nfb3JpZ2luKSB7CisgIHZhciBhdWRpbyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2F1ZGlvJyk7CisgIGlmIChjcm9zc19vcmlnaW4gIT0gJycpIHsKKyAgICBhdWRpby5j
cm9zc09yaWdpbiA9IGNyb3NzX29yaWdpbjsKKyAgfQorICBhdWRpby5zcmMgPSB1cmw7CisgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYXVkaW8pOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1yZXNv
dXJjZXMtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVl
c3QtcmVzb3VyY2VzLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNzMyZGEwZjFiMTJiOWUxNzI5ZGI0
NGU0NjU1NWNlYWE4M2Y3Mjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtcmVzb3VyY2VzLXdvcmtlci5qcwpAQCAtMCwwICsxLDI1
IEBACit2YXIgcmVxdWVzdHMgPSBbXTsKK3ZhciBwb3J0ID0gdW5kZWZpbmVkOworCitzZWxmLm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgdmFyIG1lc3NhZ2UgPSBlLmRhdGE7CisgIGlmICgn
cG9ydCcgaW4gbWVzc2FnZSkgeworICAgIHBvcnQgPSBtZXNzYWdlLnBvcnQ7CisgICAgcG9ydC5w
b3N0TWVzc2FnZSh7cmVhZHk6IHRydWV9KTsKKyAgfQorfTsKKworc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHVybCA9IGV2ZW50LnJlcXVl
c3QudXJsOworICAgIGlmICh1cmwuaW5kZXhPZignZHVtbXk/dGVzdCcpID09IC0xKSB7CisgICAg
ICByZXR1cm47CisgICAgfQorICAgIHBvcnQucG9zdE1lc3NhZ2UoeworICAgICAgICB1cmw6IHVy
bCwKKyAgICAgICAgbW9kZTogZXZlbnQucmVxdWVzdC5tb2RlLAorICAgICAgICByZWRpcmVjdDog
ZXZlbnQucmVxdWVzdC5yZWRpcmVjdCwKKyAgICAgICAgY3JlZGVudGlhbHM6IGV2ZW50LnJlcXVl
c3QuY3JlZGVudGlhbHMsCisgICAgICAgIGludGVncml0eTogZXZlbnQucmVxdWVzdC5pbnRlZ3Jp
dHkKKyAgICAgIH0pOworICAgIGV2ZW50LnJlc3BvbmRXaXRoKFByb21pc2UucmVqZWN0KCkpOwor
ICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1
ZXN0LXhoci1pZnJhbWUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1yZXF1ZXN0LXhoci1pZnJhbWUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWZhMjM3ZGMw
ZWNiOWJiNmM1MmU4N2FlZGQwMTRmZWIxYTEwZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QteGhyLWlmcmFtZS5odHRwcy5odG1s
CkBAIC0wLDAgKzEsMjU0IEBACis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1
Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0idGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1
YiI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHBvcnQ7Cit2YXIgaG9zdF9pbmZvID0gZ2V0X2hv
c3RfaW5mbygpOworCitmdW5jdGlvbiBhc3NlcnRfZXF1YWxzKGEsIGIpIHsKKyAgcG9ydC5wb3N0
TWVzc2FnZSh7cmVzdWx0czogJ2VxdWFscycsIGdvdDogYSwgZXhwZWN0ZWQ6IGJ9KTsKK30KKwor
ZnVuY3Rpb24gYXNzZXJ0X2FycmF5X2VxdWFscyhhLCBiLCBtc2cpIHsKKyAgcG9ydC5wb3N0TWVz
c2FnZSh7cmVzdWx0czogJ2FycmF5X2VxdWFscycsIGdvdDogYSwgZXhwZWN0ZWQ6IGIsIG1zZzog
bXNnfSk7Cit9CisKK2Z1bmN0aW9uIGdldF9ib3VuZGFyeShoZWFkZXJzKSB7CisgIHZhciByZWcg
PSBuZXcgUmVnRXhwKCdtdWx0aXBhcnRcL2Zvcm0tZGF0YTsgYm91bmRhcnk9KC4qKScpOworICBm
b3IgKHZhciBpID0gMDsgaSA8IGhlYWRlcnMubGVuZ3RoOyArK2kpIHsKKyAgICBpZiAoaGVhZGVy
c1tpXVswXSAhPSAnY29udGVudC10eXBlJykgeworICAgICAgY29udGludWU7CisgICAgfQorICAg
IHZhciByZWdSZXN1bHQgPSByZWcuZXhlYyhoZWFkZXJzW2ldWzFdKTsKKyAgICBpZiAoIXJlZ1Jl
c3VsdCkgeworICAgICAgY29udGludWU7CisgICAgfQorICAgIHJldHVybiByZWdSZXN1bHRbMV07
CisgIH0KKyAgcmV0dXJuICcnOworfQorCitmdW5jdGlvbiBjcmVhdGVfZmlsZV9zeXN0ZW1fZmls
ZShmaWxlX25hbWUsIGRhdGEpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgd2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0oVEVNUE9SQVJZLCAx
MDI0LCBmdW5jdGlvbihmcykgeworICAgICAgICAgIGZzLnJvb3QuZ2V0RmlsZSgKKyAgICAgICAg
ICAgIGZpbGVfbmFtZSwge2NyZWF0ZTogdHJ1ZSwgZXhjbHVzaXZlOiB0cnVlfSwKKyAgICAgICAg
ICAgIGZ1bmN0aW9uKGZpbGVFbnRyeSkgeworICAgICAgICAgICAgICBmaWxlRW50cnkuY3JlYXRl
V3JpdGVyKGZ1bmN0aW9uKGZpbGVXcml0ZXIpIHsKKyAgICAgICAgICAgICAgICAgIGZpbGVXcml0
ZXIub253cml0ZWVuZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgZmlsZUVu
dHJ5LmZpbGUoZnVuY3Rpb24oZmlsZSkgeyByZXNvbHZlKGZpbGUpOyB9KTsKKyAgICAgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwg
e3R5cGU6ICd0ZXh0L3BsYWluJ30pOworICAgICAgICAgICAgICAgICAgZmlsZVdyaXRlci53cml0
ZShibG9iKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sIGZ1bmN0aW9uKGUp
IHsgcmVqZWN0KGUpOyB9KTsKKyAgICAgICAgfSwgZnVuY3Rpb24oZSkgeyByZWplY3QoZSk7IH0p
OworICAgIH0pOworfQorCitmdW5jdGlvbiB4aHJfc2VuZCh1cmxfYmFzZSwgbWV0aG9kLCBkYXRh
LCB3aXRoX2NyZWRlbnRpYWxzKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAg
ICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVzb2x2ZShKU09OLnBhcnNl
KHhoci5yZXNwb25zZSkpOworICAgICAgfTsKKyAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHJlamVjdCgnWEhSIHNob3VsZCBzdWNjZWVkLicpOworICAgICAgfTsKKyAg
ICAgIHhoci5yZXNwb25zZVR5cGUgPSAndGV4dCc7CisgICAgICBpZiAod2l0aF9jcmVkZW50aWFs
cykgeworICAgICAgICB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTsKKyAgICAgIH0KKyAgICAg
IHhoci5vcGVuKG1ldGhvZCwgdXJsX2Jhc2UgKyAnL2R1bW15P3Rlc3QnLCB0cnVlKTsKKyAgICAg
IHhoci5zZW5kKGRhdGEpOworICAgIH0pOworfQorCitmdW5jdGlvbiBnZXRfc29ydGVkX2hlYWRl
cl9uYW1lX2xpc3QoaGVhZGVycykgeworICB2YXIgaGVhZGVyX25hbWVzID0gW107CisgIHZhciBp
ZHgsIG5hbWU7CisKKyAgZm9yIChpZHggPSAwOyBpZHggPCBoZWFkZXJzLmxlbmd0aDsgKytpZHgp
IHsKKyAgICBuYW1lID0gaGVhZGVyc1tpZHhdWzBdOworICAgIC8vIFRoZSBgQWNjZXB0LUxhbmd1
YWdlYCBoZWFkZXIgaXMgb3B0aW9uYWw7IGl0cyBwcmVzZW5jZSBzaG91bGQgbm90CisgICAgLy8g
aW5mbHVlbmNlIHRlc3QgcmVzdWx0cy4KKyAgICAvLworICAgIC8vID4gNC4gSWYgcmVxdWVzdOKA
mXMgaGVhZGVyIGxpc3QgZG9lcyBub3QgY29udGFpbiBgQWNjZXB0LUxhbmd1YWdlYCwgdXNlcgor
ICAgIC8vID4gICAgYWdlbnRzIHNob3VsZCBhcHBlbmQgYEFjY2VwdC1MYW5ndWFnZWAvYW4gYXBw
cm9wcmlhdGUgdmFsdWUgdG8KKyAgICAvLyA+ICAgIHJlcXVlc3QncyBoZWFkZXIgbGlzdC4KKyAg
ICAvLworICAgIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNmZXRjaGluZworICAg
IGlmIChuYW1lID09PSAnYWNjZXB0LWxhbmd1YWdlJykgeworICAgICAgY29udGludWU7CisgICAg
fQorCisgICAgaGVhZGVyX25hbWVzLnB1c2gobmFtZSk7CisgIH0KKyAgaGVhZGVyX25hbWVzLnNv
cnQoKTsKKyAgcmV0dXJuIGhlYWRlcl9uYW1lczsKK30KKworZnVuY3Rpb24gZ2V0X2hlYWRlcl90
ZXN0KCkgeworICByZXR1cm4geGhyX3NlbmQoaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwgJ0dF
VCcsICcnLCBmYWxzZSkKKyAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKAorICAgICAgICAgIGdldF9zb3J0ZWRfaGVhZGVyX25hbWVfbGlz
dChyZXNwb25zZS5oZWFkZXJzKSwKKyAgICAgICAgICBbImFjY2VwdCJdLAorICAgICAgICAgICdl
dmVudC5yZXF1ZXN0IGhhcyB0aGUgZXhwZWN0ZWQgaGVhZGVycyBmb3Igc2FtZS1vcmlnaW4gR0VU
LicpOworICAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHBvc3RfaGVhZGVyX3Rlc3QoKSB7CisgIHJl
dHVybiB4aHJfc2VuZChob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddLCAnUE9TVCcsICcnLCBmYWxz
ZSkKKyAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKAorICAgICAgICAgIGdldF9zb3J0ZWRfaGVhZGVyX25hbWVfbGlzdChyZXNwb25zZS5o
ZWFkZXJzKSwKKyAgICAgICAgICBbImFjY2VwdCIsICJjb250ZW50LXR5cGUiXSwKKyAgICAgICAg
ICAnZXZlbnQucmVxdWVzdCBoYXMgdGhlIGV4cGVjdGVkIGhlYWRlcnMgZm9yIHNhbWUtb3JpZ2lu
IFBPU1QuJyk7CisgICAgICB9KTsKK30KKworZnVuY3Rpb24gY3Jvc3Nfb3JpZ2luX2dldF9oZWFk
ZXJfdGVzdCgpIHsKKyAgcmV0dXJuIHhocl9zZW5kKGhvc3RfaW5mb1snSFRUUFNfUkVNT1RFX09S
SUdJTiddLCAnR0VUJywgJycsIGZhbHNlKQorICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKSB7
CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCisgICAgICAgICAgZ2V0X3NvcnRlZF9oZWFk
ZXJfbmFtZV9saXN0KHJlc3BvbnNlLmhlYWRlcnMpLAorICAgICAgICAgIFsiYWNjZXB0Il0sCisg
ICAgICAgICAgJ2V2ZW50LnJlcXVlc3QgaGFzIHRoZSBleHBlY3RlZCBoZWFkZXJzIGZvciBjcm9z
cy1vcmlnaW4gR0VULicpOworICAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGNyb3NzX29yaWdpbl9w
b3N0X2hlYWRlcl90ZXN0KCkgeworICByZXR1cm4geGhyX3NlbmQoaG9zdF9pbmZvWydIVFRQU19S
RU1PVEVfT1JJR0lOJ10sICdQT1NUJywgJycsIGZhbHNlKQorICAgIC50aGVuKGZ1bmN0aW9uKHJl
c3BvbnNlKSB7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoCisgICAgICAgICAgZ2V0X3Nv
cnRlZF9oZWFkZXJfbmFtZV9saXN0KHJlc3BvbnNlLmhlYWRlcnMpLAorICAgICAgICAgIFsiYWNj
ZXB0IiwgImNvbnRlbnQtdHlwZSJdLAorICAgICAgICAgICdldmVudC5yZXF1ZXN0IGhhcyB0aGUg
ZXhwZWN0ZWQgaGVhZGVycyBmb3IgY3Jvc3Mtb3JpZ2luIFBPU1QuJyk7CisgICAgICB9KTsKK30K
KworZnVuY3Rpb24gc3RyaW5nX3Rlc3QoKSB7CisgIHJldHVybiB4aHJfc2VuZChob3N0X2luZm9b
J0hUVFBTX09SSUdJTiddLCAnUE9TVCcsICd0ZXN0IHN0cmluZycsIGZhbHNlKQorICAgIC50aGVu
KGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UubWV0
aG9kLCAnUE9TVCcpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmJvZHksICd0ZXN0
IHN0cmluZycpOworICAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGJsb2JfdGVzdCgpIHsKKyAgcmV0
dXJuIHhocl9zZW5kKGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10sICdQT1NUJywgbmV3IEJsb2Io
Wyd0ZXN0IGJsb2InXSksCisgICAgICAgICAgICAgICAgICBmYWxzZSkKKyAgICAudGhlbihmdW5j
dGlvbihyZXNwb25zZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLm1ldGhvZCwg
J1BPU1QnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5ib2R5LCAndGVzdCBibG9i
Jyk7CisgICAgICB9KTsKK30KKworZnVuY3Rpb24gY3VzdG9tX21ldGhvZF90ZXN0KCkgeworICBy
ZXR1cm4geGhyX3NlbmQoaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwgJ1hYWCcsICd0ZXN0IHN0
cmluZyB4eHgnLCBmYWxzZSkKKyAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLm1ldGhvZCwgJ1hYWCcpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlc3BvbnNlLmJvZHksICd0ZXN0IHN0cmluZyB4eHgnKTsKKyAgICAgIH0pOworfQor
CitmdW5jdGlvbiBvcHRpb25zX21ldGhvZF90ZXN0KCkgeworICByZXR1cm4geGhyX3NlbmQoaG9z
dF9pbmZvWydIVFRQU19PUklHSU4nXSwgJ09QVElPTlMnLCAndGVzdCBzdHJpbmcgeHh4JywgZmFs
c2UpCisgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZXNwb25zZS5tZXRob2QsICdPUFRJT05TJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVz
cG9uc2UuYm9keSwgJ3Rlc3Qgc3RyaW5nIHh4eCcpOworICAgICAgfSk7Cit9CisKK2Z1bmN0aW9u
IGZvcm1fZGF0YV90ZXN0KCkgeworICAgIHZhciBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpOwor
ICAgIGZvcm1EYXRhLmFwcGVuZCgnc2FtcGxlIHN0cmluZycsICcxMjM0NTY3ODkwJyk7CisgICAg
Zm9ybURhdGEuYXBwZW5kKCdzYW1wbGUgYmxvYicsIG5ldyBCbG9iKFsnYmxvYiBjb250ZW50J10p
KTsKKyAgICBmb3JtRGF0YS5hcHBlbmQoJ3NhbXBsZSBmaWxlJywgbmV3IEZpbGUoWydmaWxlIGNv
bnRlbnQnXSwgJ2ZpbGUuZGF0JykpOworICAgIHJldHVybiB4aHJfc2VuZChob3N0X2luZm9bJ0hU
VFBTX09SSUdJTiddLCAnUE9TVCcsIGZvcm1EYXRhLCBmYWxzZSkKKyAgICAudGhlbihmdW5jdGlv
bihyZXNwb25zZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLm1ldGhvZCwgJ1BP
U1QnKTsKKyAgICAgICAgdmFyIGJvdW5kYXJ5ID0gZ2V0X2JvdW5kYXJ5KHJlc3BvbnNlLmhlYWRl
cnMpOworICAgICAgICB2YXIgZXhwZWN0ZWRfYm9keSA9CisgICAgICAgICAgJy0tJyArIGJvdW5k
YXJ5ICsgJ1xyXG4nICsKKyAgICAgICAgICAnQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRh
OyBuYW1lPSJzYW1wbGUgc3RyaW5nIlxyXG4nICsKKyAgICAgICAgICAnXHJcbicgKworICAgICAg
ICAgICcxMjM0NTY3ODkwXHJcbicgKworICAgICAgICAgICctLScgKyBib3VuZGFyeSArICdcclxu
JyArCisgICAgICAgICAgJ0NvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT0ic2Ft
cGxlIGJsb2IiOyAnICsKKyAgICAgICAgICAnZmlsZW5hbWU9ImJsb2IiXHJcbicgKworICAgICAg
ICAgICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVxyXG4nICsKKyAgICAg
ICAgICAnXHJcbicgKworICAgICAgICAgICdibG9iIGNvbnRlbnRcclxuJyArCisgICAgICAgICAg
Jy0tJyArIGJvdW5kYXJ5ICsgJ1xyXG4nICsKKyAgICAgICAgICAnQ29udGVudC1EaXNwb3NpdGlv
bjogZm9ybS1kYXRhOyBuYW1lPSJzYW1wbGUgZmlsZSI7ICcgKworICAgICAgICAgICdmaWxlbmFt
ZT0iZmlsZS5kYXQiXHJcbicgKworICAgICAgICAgICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbVxyXG4nICsKKyAgICAgICAgICAnXHJcbicgKworICAgICAgICAgICdmaWxl
IGNvbnRlbnRcclxuJyArCisgICAgICAgICAgJy0tJyArIGJvdW5kYXJ5ICsgJy0tXHJcbic7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuYm9keSwgZXhwZWN0ZWRfYm9keSk7CisgICAg
ICB9KTsKK30KKworZnVuY3Rpb24gbW9kZV9jcmVkZW50aWFsc190ZXN0KCkgeworICByZXR1cm4g
eGhyX3NlbmQoaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSwgJ0dFVCcsICcnLCBmYWxzZSkKKyAg
ICAudGhlbihmdW5jdGlvbihyZXNwb25zZSl7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9u
c2UubW9kZSwgJ2NvcnMnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5jcmVkZW50
aWFscywgJ3NhbWUtb3JpZ2luJyk7CisgICAgICAgIHJldHVybiB4aHJfc2VuZChob3N0X2luZm9b
J0hUVFBTX09SSUdJTiddLCAnR0VUJywgJycsIHRydWUpOworICAgICAgfSkKKyAgICAudGhlbihm
dW5jdGlvbihyZXNwb25zZSl7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UubW9kZSwg
J2NvcnMnKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5jcmVkZW50aWFscywgJ2lu
Y2x1ZGUnKTsKKyAgICAgICAgcmV0dXJuIHhocl9zZW5kKGhvc3RfaW5mb1snSFRUUFNfUkVNT1RF
X09SSUdJTiddLCAnR0VUJywgJycsIGZhbHNlKTsKKyAgICAgIH0pCisgICAgLnRoZW4oZnVuY3Rp
b24ocmVzcG9uc2UpeworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLm1vZGUsICdjb3Jz
Jyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMocmVzcG9uc2UuY3JlZGVudGlhbHMsICdzYW1lLW9y
aWdpbicpOworICAgICAgICByZXR1cm4geGhyX3NlbmQoaG9zdF9pbmZvWydIVFRQU19SRU1PVEVf
T1JJR0lOJ10sICdHRVQnLCAnJywgdHJ1ZSk7CisgICAgICB9KQorICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3BvbnNlKXsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXNwb25zZS5tb2RlLCAnY29ycycp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmNyZWRlbnRpYWxzLCAnaW5jbHVkZScp
OworICAgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGRhdGFfdXJsX3Rlc3QoKSB7CisgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgICAgICAgcmVzb2x2ZSh4aHIucmVzcG9uc2UpOworICAgICAgICB9OworICAgICAgICB4
aHIub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJlamVjdCgnWEhSIHNob3VsZCBz
dWNjZWVkLicpOworICAgICAgICB9OworICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ3RleHQn
OworICAgICAgICB4aHIub3BlbignR0VUJywgJ2RhdGE6dGV4dC9odG1sLEZvb2JhcicsIHRydWUp
OworICAgICAgICB4aHIuc2VuZCgpOworICAgICAgfSkKKyAgICAudGhlbihmdW5jdGlvbihkYXRh
KSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ0Zvb2JhcicpOworICAgICAgfSk7Cit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7Cisg
ICAgcG9ydCA9IGV2dC5wb3J0c1swXTsKKyAgICBnZXRfaGVhZGVyX3Rlc3QoKQorICAgICAgLnRo
ZW4ocG9zdF9oZWFkZXJfdGVzdCkKKyAgICAgIC50aGVuKGNyb3NzX29yaWdpbl9nZXRfaGVhZGVy
X3Rlc3QpCisgICAgICAudGhlbihjcm9zc19vcmlnaW5fcG9zdF9oZWFkZXJfdGVzdCkKKyAgICAg
IC50aGVuKHN0cmluZ190ZXN0KQorICAgICAgLnRoZW4oYmxvYl90ZXN0KQorICAgICAgLnRoZW4o
Y3VzdG9tX21ldGhvZF90ZXN0KQorICAgICAgLnRoZW4ob3B0aW9uc19tZXRob2RfdGVzdCkKKyAg
ICAgIC50aGVuKGZvcm1fZGF0YV90ZXN0KQorICAgICAgLnRoZW4obW9kZV9jcmVkZW50aWFsc190
ZXN0KQorICAgICAgLnRoZW4oZGF0YV91cmxfdGVzdCkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkg
eyBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmluaXNoJ30pOyB9KQorICAgICAgLmNhdGNo
KGZ1bmN0aW9uKHJlYXNvbikgeworICAgICAgICAgIHZhciBlcnJvciA9IFN0cmluZyhyZWFzb24u
bWVzc2FnZSB8fCByZWFzb24pOworICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6
ICdmYWlsdXJlJywgZXJyb3I6IGVycm9yfSk7CisgICAgICAgIH0pOworICB9KTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qt
eGhyLXN5bmMtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
cmVxdWVzdC14aHItc3luYy1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDA3NjJmZmM2Y2NlNWI5
OTgyMmE5ZTBlOTM4YWUwMTVjMGZhYzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMtaWZyYW1lLmh0bWwKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IFN5bmNo
cm9ub3VzIFhIUiBpcyBpbnRlcmNlcHRlZCBpZnJhbWU8L3RpdGxlPgorPHNjcmlwdD4KKyd1c2Ug
c3RyaWN0JzsKKworZnVuY3Rpb24gcGVyZm9ybVN5bmNYSFIodXJsKSB7CisgIHZhciBzeW5jWGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIHN5bmNYaHIub3BlbignR0VUJywgdXJsLCBmYWxz
ZSk7CisgIHN5bmNYaHIuc2VuZCgpOworCisgIHJldHVybiBzeW5jWGhyOworfQorPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC14
aHItc3luYy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVx
dWVzdC14aHItc3luYy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcwZTU3MmY0MDA0ZDVmM2Y5YmI2
MzU0OTFmN2NlZjNmNDc4ODVkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXhoci1zeW5jLXdvcmtlci5qcwpAQCAtMCwwICsxLDcg
QEAKKyd1c2Ugc3RyaWN0JzsKKworc2VsZi5vbmZldGNoID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
aWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoJ25vbi1leGlzdGVudC1maWxlLnR4dCcpICE9
PSAtMSkgeworICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgnUmVzcG9uc2UgZnJv
bSBzZXJ2aWNlIHdvcmtlcicpKTsKKyAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXhoci13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC14aHItd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkx
YjNhYmIxNGQ5YzY3NWEwYmQ4ODYzNDRhMjY0ODJmMzZiYjU3NzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC14aHItd29ya2VyLmpz
CkBAIC0wLDAgKzEsMjIgQEAKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlv
bihldmVudCkgeworICAgIHZhciB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgICBpZiAodXJs
LmluZGV4T2YoJ2R1bW15P3Rlc3QnKSA9PSAtMSkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBldmVudC5yZXNwb25kV2l0aChuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAg
ICAgIHZhciBoZWFkZXJzID0gW107CisgICAgICAgIGZvciAodmFyIGhlYWRlciBvZiBldmVudC5y
ZXF1ZXN0LmhlYWRlcnMpIHsKKyAgICAgICAgICBoZWFkZXJzLnB1c2goaGVhZGVyKTsKKyAgICAg
ICAgfQorICAgICAgICBldmVudC5yZXF1ZXN0LnRleHQoKQorICAgICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICByZXNvbHZlKG5ldyBSZXNwb25zZShKU09OLnN0
cmluZ2lmeSh7CisgICAgICAgICAgICAgICAgICBtZXRob2Q6IGV2ZW50LnJlcXVlc3QubWV0aG9k
LAorICAgICAgICAgICAgICAgICAgbW9kZTogZXZlbnQucmVxdWVzdC5tb2RlLAorICAgICAgICAg
ICAgICAgICAgY3JlZGVudGlhbHM6IGV2ZW50LnJlcXVlc3QuY3JlZGVudGlhbHMsCisgICAgICAg
ICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLAorICAgICAgICAgICAgICAgICAgYm9keTogcmVz
dWx0CisgICAgICAgICAgICAgICAgfSkpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgfSkpOwor
ICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXNw
b25zZS10YWludC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRj
aC1yZXNwb25zZS10YWludC1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjA5ZWZlMjhkZmZiNGM5
MTEwMTRhZTgzMzNmNTRlNDEwM2RmOWY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlc3BvbnNlLXRhaW50LWlmcmFtZS5odG1sCkBAIC0wLDAg
KzEsMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT48L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVzcG9uc2UteGhyLWlmcmFtZS5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlc3BvbnNlLXhoci1pZnJh
bWUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTJjOTM0MWViNzg1NzY4YTNkNGY5YWQ1YmEyOTEw
ZmM5MGY2NzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLXJlc3BvbnNlLXhoci1pZnJhbWUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDUzIEBACis8
c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0idGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordmFyIGhvc3RfaW5mbyA9IGdldF9ob3N0X2luZm8oKTsKKworZnVuY3Rpb24geGhyX3NlbmQo
bWV0aG9kLCBkYXRhKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIHho
ci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVzb2x2ZSh4aHIpOworICAgICAgfTsK
KyAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJlamVjdCgnWEhSIHNo
b3VsZCBzdWNjZWVkLicpOworICAgICAgfTsKKyAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAndGV4
dCc7CisgICAgICB4aHIub3BlbihtZXRob2QsICcuL2R1bW15P3Rlc3QnLCB0cnVlKTsKKyAgICAg
IHhoci5zZW5kKGRhdGEpOworICAgIH0pOworfQorCitmdW5jdGlvbiBjb2FsZXNjZV9oZWFkZXJz
X3Rlc3QoKSB7CisgIHJldHVybiB4aHJfc2VuZCgnUE9TVCcsICd0ZXN0IHN0cmluZycpCisgIC50
aGVuKGZ1bmN0aW9uKHhocikgeworICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7cmVz
dWx0czogeGhyLmdldFJlc3BvbnNlSGVhZGVyKCdmb28nKX0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pOworCisgICAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gaGFuZGxlKGV2dCkgeworICAgICAgICAgICAg
ICBpZiAoZXZ0LmRhdGEgIT09ICdBQ0snKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBoYW5kbGUpOworICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7CisgICAgdmFyIHBvcnQ7CisKKyAgICBpZiAoZXZ0
LmRhdGEgIT09ICdTVEFSVCcpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwb3J0ID0g
ZXZ0LnBvcnRzWzBdOworCisgICAgY29hbGVzY2VfaGVhZGVyc190ZXN0KCkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeyBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmluaXNoJ30pOyB9KQor
ICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2Zh
aWx1cmU6JyArIGV9KTsgfSk7CisgIH0pOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVzcG9uc2UteGhyLXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXNwb25zZS14aHItd29ya2VyLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ2NWZiYzkxYmFhNzE2NjljYTljM2YzMjExN2VlODM0ZGU4Mjk0ZDAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVzcG9uc2UteGhy
LXdvcmtlci5qcwpAQCAtMCwwICsxLDEyIEBACitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNo
JywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7Cisg
ICAgaWYgKHVybC5pbmRleE9mKCdkdW1teT90ZXN0JykgPT0gLTEpIHsKKyAgICAgIHJldHVybjsK
KyAgICB9CisgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2
ZSkgeworICAgICAgICB2YXIgaGVhZGVycyA9IG5ldyBIZWFkZXJzOworICAgICAgICBoZWFkZXJz
LmFwcGVuZCgnZm9vJywgJ2ZvbycpOworICAgICAgICBoZWFkZXJzLmFwcGVuZCgnZm9vJywgJ2Jh
cicpOworICAgICAgICByZXNvbHZlKG5ldyBSZXNwb25zZSgnaGVsbG8gd29ybGQnLCB7J2hlYWRl
cnMnOiBoZWFkZXJzfSkpOworICAgICAgfSkpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtlci1yZWZlcnJlci1wb2xpY3ku
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXItcmVm
ZXJyZXItcG9saWN5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0Yzk5Yzk1ZDg2YzM2ZjliMTIxNDFjMjczMzNh
OWExMDkwOTljZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXItcmVmZXJyZXItcG9saWN5LmpzCkBAIC0wLDAgKzEsNCBA
QAorLy8gVGhpcyBzY3JpcHQgaXMgaW50ZW5kZWQgdG8gYmUgc2VydmVkIHdpdGggdGhlIGBSZWZl
cnJlci1Qb2xpY3lgIGhlYWRlciBhcworLy8gZGVmaW5lZCBpbiB0aGUgY29ycmVzcG9uZGluZyBg
LmhlYWRlcnNgIGZpbGUuCisKK2ltcG9ydFNjcmlwdHMoJ2ZldGNoLXJld3JpdGUtd29ya2VyLmpz
Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmV3cml0
ZS13b3JrZXItcmVmZXJyZXItcG9saWN5LmpzLmhlYWRlcnMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXItcmVmZXJyZXItcG9saWN5LmpzLmhlYWRlcnMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWFlNDI2NTQxOGUzMTNjZjdkNGUyNTk5NTdhMGU2OTkxOGMzMmFiNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXdyaXRl
LXdvcmtlci1yZWZlcnJlci1wb2xpY3kuanMuaGVhZGVycwpAQCAtMCwwICsxLDIgQEAKK0NvbnRl
bnQtVHlwZTogYXBwbGljYXRpb24vamF2YXNjcmlwdAorUmVmZXJyZXItUG9saWN5OiBvcmlnaW4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdv
cmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXdyaXRlLXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ODA2ZjJiNWI2YjJiM2E3M2I5NmNlYWM5N2E3ZDFhODhiZTUwOTk2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJl
d3JpdGUtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTQ5IEBACitmdW5jdGlvbiBnZXRfcXVlcnlfcGFy
YW1zKHVybCkgeworICB2YXIgc2VhcmNoID0gKG5ldyBVUkwodXJsKSkuc2VhcmNoOworICBpZiAo
IXNlYXJjaCkgeworICAgIHJldHVybiB7fTsKKyAgfQorICB2YXIgcmV0ID0ge307CisgIHZhciBw
YXJhbXMgPSBzZWFyY2guc3Vic3RyaW5nKDEpLnNwbGl0KCcmJyk7CisgIHBhcmFtcy5mb3JFYWNo
KGZ1bmN0aW9uKHBhcmFtKSB7CisgICAgICB2YXIgZWxlbWVudCA9IHBhcmFtLnNwbGl0KCc9Jyk7
CisgICAgICByZXRbZGVjb2RlVVJJQ29tcG9uZW50KGVsZW1lbnRbMF0pXSA9IGRlY29kZVVSSUNv
bXBvbmVudChlbGVtZW50WzFdKTsKKyAgICB9KTsKKyAgcmV0dXJuIHJldDsKK30KKworZnVuY3Rp
b24gZ2V0X3JlcXVlc3RfaW5pdChiYXNlLCBwYXJhbXMpIHsKKyAgdmFyIGluaXQgPSB7fTsKKyAg
aW5pdFsnbWV0aG9kJ10gPSBwYXJhbXNbJ21ldGhvZCddIHx8IGJhc2VbJ21ldGhvZCddOworICBp
bml0Wydtb2RlJ10gPSBwYXJhbXNbJ21vZGUnXSB8fCBiYXNlWydtb2RlJ107CisgIGlmIChpbml0
Wydtb2RlJ10gPT0gJ25hdmlnYXRlJykgeworICAgIGluaXRbJ21vZGUnXSA9ICdzYW1lLW9yaWdp
bic7CisgIH0KKyAgaW5pdFsnY3JlZGVudGlhbHMnXSA9IHBhcmFtc1snY3JlZGVudGlhbHMnXSB8
fCBiYXNlWydjcmVkZW50aWFscyddOworICBpbml0WydyZWRpcmVjdCddID0gcGFyYW1zWydyZWRp
cmVjdC1tb2RlJ10gfHwgYmFzZVsncmVkaXJlY3QnXTsKKyAgcmV0dXJuIGluaXQ7Cit9CisKK3Nl
bGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAgIHZhciBw
YXJhbXMgPSBnZXRfcXVlcnlfcGFyYW1zKGV2ZW50LnJlcXVlc3QudXJsKTsKKyAgICB2YXIgaW5p
dCA9IGdldF9yZXF1ZXN0X2luaXQoZXZlbnQucmVxdWVzdCwgcGFyYW1zKTsKKyAgICB2YXIgdXJs
ID0gcGFyYW1zWyd1cmwnXTsKKyAgICBpZiAocGFyYW1zWydpZ25vcmUnXSkgeworICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAocGFyYW1zWyd0aHJvdyddKSB7CisgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2Jvb20nKTsKKyAgICB9CisgICAgaWYgKHBhcmFtc1sncmVqZWN0J10pIHsKKyAgICAg
IGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgIHJlamVjdCgpOworICAgICAgICB9KSk7CisgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChwYXJhbXNbJ3Jlc29sdmUtbnVsbCddKSB7CisgICAgICBldmVudC5yZXNwb25k
V2l0aChuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgcmVzb2x2ZShu
dWxsKTsKKyAgICAgICAgfSkpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocGFyYW1z
WydnZW5lcmF0ZS1wbmcnXSkgeworICAgICAgdmFyIGJpbmFyeSA9IGF0b2IoCisgICAgICAgICAg
J2lWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQUFYTlNSMElB
cnM0YzZRQUFBQScgKworICAgICAgICAgICdSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFE
c1FBQUE3RUFaVXJEaHNBQUFBaFNVUkJWRGhQWTN3cm8vS2YnICsKKyAgICAgICAgICAnZ1FMQUJL
WEpCcU1HakJvQUFxTUdETHdCREF3QUVzb0NURld1bm1RQUFBQUFTVVZPUks1Q1lJST0nKTsKKyAg
ICAgIHZhciBhcnJheSA9IG5ldyBVaW50OEFycmF5KGJpbmFyeS5sZW5ndGgpOworICAgICAgZm9y
KHZhciBpID0gMDsgaSA8IGJpbmFyeS5sZW5ndGg7IGkrKykgeworICAgICAgICBhcnJheVtpXSA9
IGJpbmFyeS5jaGFyQ29kZUF0KGkpOworICAgICAgfTsKKyAgICAgIGV2ZW50LnJlc3BvbmRXaXRo
KG5ldyBSZXNwb25zZShuZXcgQmxvYihbYXJyYXldLCB7dHlwZTogJ2ltYWdlL3BuZyd9KSkpOwor
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocGFyYW1zWydjaGVjay11YS1oZWFkZXInXSkg
eworICAgICAgdmFyIHVhID0gZXZlbnQucmVxdWVzdC5oZWFkZXJzLmdldCgnVXNlci1BZ2VudCcp
OworICAgICAgaWYgKHVhKSB7CisgICAgICAgIC8vIFdlIGhhdmUgYSB1c2VyIGFnZW50IQorICAg
ICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UobmV3IEJsb2IoW3VhXSkpKTsKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSB1c2VyLWFnZW50IQorICAg
ICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UobmV3IEJsb2IoWyJOT19VQSJdKSkp
OworICAgICAgfQorICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAocGFyYW1zWydjaGVjay1h
Y2NlcHQtaGVhZGVyJ10pIHsKKyAgICAgIHZhciBhY2NlcHQgPSBldmVudC5yZXF1ZXN0LmhlYWRl
cnMuZ2V0KCdBY2NlcHQnKTsKKyAgICAgIGlmIChhY2NlcHQpIHsKKyAgICAgICAgZXZlbnQucmVz
cG9uZFdpdGgobmV3IFJlc3BvbnNlKGFjY2VwdCkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCdOT19BQ0NFUFQnKSk7CisgICAgICB9Cisg
ICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBQcm9taXNlKGZ1
bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICB2YXIgcmVxdWVzdCA9IGV2ZW50LnJl
cXVlc3Q7CisgICAgICAgIGlmICh1cmwpIHsKKyAgICAgICAgICByZXF1ZXN0ID0gbmV3IFJlcXVl
c3QodXJsLCBpbml0KTsKKyAgICAgICAgfQorICAgICAgICBmZXRjaChyZXF1ZXN0KS50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgdmFyIGV4cGVjdGVkVHlwZSA9IHBhcmFtc1sn
ZXhwZWN0ZWRfdHlwZSddOworICAgICAgICAgIGlmIChleHBlY3RlZFR5cGUgJiYgcmVzcG9uc2Uu
dHlwZSAhPT0gZXhwZWN0ZWRUeXBlKSB7CisgICAgICAgICAgICAvLyBSZXNvbHZlIGEgSlNPTiBv
YmplY3Qgd2l0aCBhIGZhaWx1cmUgaW5zdGVhZCBvZiByZWplY3RpbmcKKyAgICAgICAgICAgIC8v
IGluIG9yZGVyIHRvIGRpc3Rpbmd1aXNoIHRoaXMgZnJvbSBhIE5ldHdvcmtFcnJvciwgd2hpY2gK
KyAgICAgICAgICAgIC8vIG1heSBiZSBleHBlY3RlZCBldmVuIGlmIHRoZSB0eXBlIGlzIGNvcnJl
Y3QuCisgICAgICAgICAgICByZXNvbHZlKG5ldyBSZXNwb25zZShKU09OLnN0cmluZ2lmeSh7Cisg
ICAgICAgICAgICAgIHJlc3VsdDogJ2ZhaWx1cmUnLAorICAgICAgICAgICAgICBkZXRhaWw6ICdn
b3QgJyArIHJlc3BvbnNlLnR5cGUgKyAnIFJlc3BvbnNlLnR5cGUgaW5zdGVhZCBvZiAnICsKKyAg
ICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFR5cGUKKyAgICAgICAgICAgIH0pKSk7CisgICAg
ICAgICAgfQorCisgICAgICAgICAgdmFyIGV4cGVjdGVkUmVkaXJlY3RlZCA9IHBhcmFtc1snZXhw
ZWN0ZWRfcmVkaXJlY3RlZCddOworICAgICAgICAgIGlmICh0eXBlb2YgZXhwZWN0ZWRSZWRpcmVj
dGVkICE9PSAndW5kZWZpbmVkJykgeworICAgICAgICAgICAgdmFyIGV4cGVjdGVkX3JlZGlyZWN0
ZWQgPSAoZXhwZWN0ZWRSZWRpcmVjdGVkID09PSAndHJ1ZScpOworICAgICAgICAgICAgaWYocmVz
cG9uc2UucmVkaXJlY3RlZCAhPT0gZXhwZWN0ZWRfcmVkaXJlY3RlZCkgeworICAgICAgICAgICAg
ICAvLyBUaGlzIGlzIHNpbXBseSBkZXRlcm1pbmluZyBob3cgdG8gcGFzcyBhbiBlcnJvciB0byB0
aGUgb3V0ZXIKKyAgICAgICAgICAgICAgLy8gdGVzdCBjYXNlKGZldGNoLXJlcXVlc3QtcmVkaXJl
Y3QuaHR0cHMuaHRtbCkuCisgICAgICAgICAgICAgIHZhciBleGVjcHRlZFJlc29sdmVzID0gcGFy
YW1zWydleHBlY3RlZF9yZXNvbHZlcyddOworICAgICAgICAgICAgICBpZiAoZXhlY3B0ZWRSZXNv
bHZlcyA9PT0gJ3RydWUnKSB7CisgICAgICAgICAgICAgICAgLy8gUmVqZWN0IGEgSlNPTiBvYmpl
Y3Qgd2l0aCBhIGZhaWx1cmUgc2luY2UgcHJvbWlzZSBpcyBleHBlY3RlZAorICAgICAgICAgICAg
ICAgIC8vIHRvIGJlIHJlc29sdmVkLgorICAgICAgICAgICAgICAgIHJlamVjdChuZXcgUmVzcG9u
c2UoSlNPTi5zdHJpbmdpZnkoeworICAgICAgICAgICAgICAgICAgcmVzdWx0OiAnZmFpbHVyZScs
CisgICAgICAgICAgICAgICAgICBkZXRhaWw6ICdnb3QgJysgcmVzcG9uc2UucmVkaXJlY3RlZCAr
CisgICAgICAgICAgICAgICAgICAgICAgICAgICcgUmVzcG9uc2UucmVkaXJlY3RlZCBpbnN0ZWFk
IG9mICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZFJlZGlyZWN0ZWQKKyAg
ICAgICAgICAgICAgICB9KSkpOworICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIC8vIFJlc29sdmUgYSBKU09OIG9iamVjdCB3aXRoIGEgZmFpbHVyZSBzaW5jZSBwcm9taXNl
IGlzCisgICAgICAgICAgICAgICAgLy8gZXhwZWN0ZWQgdG8gYmUgcmVqZWN0ZWQuCisgICAgICAg
ICAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9uc2UoSlNPTi5zdHJpbmdpZnkoeworICAgICAgICAg
ICAgICAgICAgcmVzdWx0OiAnZmFpbHVyZScsCisgICAgICAgICAgICAgICAgICBkZXRhaWw6ICdn
b3QgJysgcmVzcG9uc2UucmVkaXJlY3RlZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICcg
UmVzcG9uc2UucmVkaXJlY3RlZCBpbnN0ZWFkIG9mICcgKworICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHBlY3RlZFJlZGlyZWN0ZWQKKyAgICAgICAgICAgICAgICB9KSkpOworICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKHBhcmFt
c1snY2FjaGUnXSkgeworICAgICAgICAgICAgdmFyIGNhY2hlTmFtZSA9ICJjYWNoZWQtZmV0Y2hl
cy0iICsgcGVyZm9ybWFuY2Uubm93KCkgKyAiLSIgKworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV2ZW50LnJlcXVlc3QudXJsOworICAgICAgICAgICAgdmFyIGNhY2hlOworICAgICAgICAg
ICAgdmFyIGNhY2hlZFJlc3BvbnNlOworICAgICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLm9w
ZW4oY2FjaGVOYW1lKS50aGVuKGZ1bmN0aW9uKG9wZW5lZCkgeworICAgICAgICAgICAgICBjYWNo
ZSA9IG9wZW5lZDsKKyAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlLnB1dChyZXF1ZXN0LCByZXNw
b25zZSk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBy
ZXR1cm4gY2FjaGUubWF0Y2gocmVxdWVzdCk7CisgICAgICAgICAgICB9KS50aGVuKGZ1bmN0aW9u
KGNhY2hlZCkgeworICAgICAgICAgICAgICBjYWNoZWRSZXNwb25zZSA9IGNhY2hlZDsKKyAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuY2FjaGVzLmRlbGV0ZShjYWNoZU5hbWUpOworICAgICAgICAg
ICAgfSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgIHJlc29sdmUoY2FjaGVkUmVz
cG9uc2UpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IHJlc29sdmUocmVzcG9uc2UpOworICAgICAgICAgIH0KKyAgICAgICAgfSwgcmVqZWN0KQorICAg
ICAgfSkpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXdhaXRzLWZvci1hY3RpdmF0ZS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZm
M2U1OTM2MTk2ZDAwMmY5ZTI0ODY3N2NmY2U3YTIxMWRlZDhhNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUtd29y
a2VyLmpzCkBAIC0wLDAgKzEsMTcgQEAKK3ZhciBhY3RpdmF0ZVByb21pc2VSZXNvbHZlOworCith
ZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIGZ1bmN0aW9uKGV2dCkgeworICBldnQud2FpdFVu
dGlsKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICBhY3RpdmF0ZVByb21pc2VS
ZXNvbHZlID0gcmVzb2x2ZTsKKyAgfSkpOworfSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoJ21lc3Nh
Z2UnLCBmdW5jdGlvbihldnQpIHsKKyAgaWYgKHR5cGVvZiBhY3RpdmF0ZVByb21pc2VSZXNvbHZl
ID09PSAnZnVuY3Rpb24nKSB7CisgICAgYWN0aXZhdGVQcm9taXNlUmVzb2x2ZSgpOworICB9Cit9
KTsKKworYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldnQpIHsKKyAgZXZ0LnJl
c3BvbmRXaXRoKG5ldyBSZXNwb25zZSgnSGVsbG8gd29ybGQnKSk7Cit9KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZldGNoLWNvcnMtd29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtY29ycy13b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjE5ZDA3NDljMmY2MjlmNDkzYjg5YzgyNDRmOTkxMjZjOWRlYjE1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZl
dGNoLWNvcnMtd29ya2VyLmpzCkBAIC0wLDAgKzEsMzAgQEAKK2ltcG9ydFNjcmlwdHMoJy9jb21t
b24vZ2V0LWhvc3QtaW5mby5zdWIuanMnKTsKK3ZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZv
KCk7CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgZXZlbnQucmVnaXN0ZXJGb3JlaWduRmV0Y2goe3Njb3BlczogW3JlZ2lzdHJhdGlvbi5z
Y29wZV0sIG9yaWdpbnM6IFsnKiddfSk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J2ZvcmVpZ25mZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHJlc3BvbnNlID0gSlNP
Ti5wYXJzZShkZWNvZGVVUklDb21wb25lbnQobG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSkp
OworICAgIHZhciB1cmwgPSBuZXcgVVJMKGV2ZW50LnJlcXVlc3QudXJsKTsKKyAgICB2YXIgcGFy
YW1zID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQodXJsLnNlYXJjaC5zdWJzdHJpbmco
MSkpKTsKKyAgICB2YXIgdXJsX3RvX2ZldGNoID0gJ2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5Pyc7
CisgICAgaWYgKHBhcmFtcy5jcm9zc19vcmlnaW4pIHsKKyAgICAgIHVybF90b19mZXRjaCA9Cisg
ICAgICAgICAgaG9zdF9pbmZvLkhUVFBTX09SSUdJTiArIG5ldyBVUkwoJy4vJywgbG9jYXRpb24p
LnBhdGhuYW1lICsgdXJsX3RvX2ZldGNoOworICAgIH0KKyAgICBpZiAocGFyYW1zLndpdGhfYWNl
aGVhZGVycykKKyAgICAgIHVybF90b19mZXRjaCArPSAnQUNFSGVhZGVycz1YLVNlcnZpY2VXb3Jr
ZXItU2VydmVySGVhZGVyJic7CisgICAgaWYgKHBhcmFtcy53aXRoX2FjYW9yaWdpbikKKyAgICAg
IHVybF90b19mZXRjaCArPSAnQUNBT3JpZ2luPSonOworICAgIGZldGNoX3BhcmFtcyA9IHt9Owor
ICAgIGlmIChwYXJhbXMuY3Jvc3Nfb3JpZ2luICYmICFwYXJhbXMud2l0aF9hY2FvcmlnaW4pCisg
ICAgICAgZmV0Y2hfcGFyYW1zLm1vZGUgPSAnbm8tY29ycyc7CisgICAgZXZlbnQucmVzcG9uZFdp
dGgoZmV0Y2godXJsX3RvX2ZldGNoLCBmZXRjaF9wYXJhbXMpCisgICAgICAudGhlbihyID0+IHsK
KyAgICAgICAgICByZXNwb25zZS5yZXNwb25zZSA9IHI7CisgICAgICAgICAgcmV0dXJuIHJlc3Bv
bnNlOworICAgICAgICB9KSk7CisgICAgcmV0dXJuOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZldGNoLWV2ZW50LXdvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZldGNoLWV2ZW50LXdvcmtlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42M2Y5OTZlMDg5NTk0MjU5MGYxYjYwODc3YzQzZThlZjBkMjQ3NTgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gt
ZXZlbnQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMzEgQEAKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcign
aW5zdGFsbCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAg
ICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgbmV3IEZvcmVpZ25GZXRjaEV2ZW50KCd0eXBlJyk7CisgICAgICAgICAgfSk7CisgICAgICB9
LCAnRm9yZWlnbkZldGNoRXZlbnQgY29uc3RydWN0b3Igd2l0aCBubyBpbml0IGRpY3QnKTsKKwor
ICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJv
cigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIG5ldyBGb3JlaWduRmV0Y2hFdmVudCgndHlw
ZScsIHt9KTsKKyAgICAgICAgICB9KTsKKyAgICAgIH0sICdGb3JlaWduRmV0Y2hFdmVudCBjb25z
dHJ1Y3RvciB3aXRoIGVtcHR5IGluaXQgZGljdCcpOworCisgICAgdGVzdChmdW5jdGlvbigpIHsK
KyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgbmV3IEZvcmVpZ25GZXRjaEV2ZW50KCd0eXBlJywgeyByZXF1ZXN0OiBudWxsIH0p
OworICAgICAgICAgIH0pOworICAgICAgfSwgJ0ZvcmVpZ25GZXRjaEV2ZW50IGNvbnN0cnVjdG9y
IHdpdGggbnVsbCByZXF1ZXN0Jyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICB2
YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KCdodHRwczovL3d3dy5leGFtcGxlLmNvbS8nKTsKKyAg
ICAgICAgdmFyIGV2ZW50ID0gbmV3IEZvcmVpZ25GZXRjaEV2ZW50KCd0eXBlJywgeyByZXF1ZXN0
OiByZXF1ZXN0LCBvcmlnaW46ICdvcmlnaW4nIH0pOworICAgICAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50LnR5cGUsICd0eXBlJyk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQucmVxdWVzdCwg
cmVxdWVzdCk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQub3JpZ2luLCAnb3JpZ2luJyk7
CisgICAgICB9LCAnRm9yZWlnbkZldGNoRXZlbnQgY29uc3RydWN0b3Igd2l0aCBhbGwgaW5pdCBk
aWN0IG1lbWJlcnMnKTsKKyAgfSk7CisKKy8vIEltcG9ydCB0ZXN0aGFybmVzcyBhZnRlciBpbnN0
YWxsIGhhbmRsZXIgdG8gbWFrZSBzdXJlIG91ciBpbnN0YWxsIGhhbmRsZXIKKy8vIHJ1bnMgZmly
c3QuIE90aGVyd2lzZSBvbmx5IG9uZSB0ZXN0IHdpbGwgcnVuLgoraW1wb3J0U2NyaXB0cygnL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtaGVscGVyLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtaGVscGVyLWlmcmFtZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcyMjg0M2EwOWZhNWIwM2EzMjNmMTRmZDAxYzg2NjY1ZDM2NjUwNDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZm9yZWlnbi1mZXRjaC1oZWxwZXIt
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHNjcmlwdCBzcmM9ImZvcmVpZ24tZmV0Y2gtaGVscGVyLXNjcmlwdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2VsZi5vbm1lc3NhZ2UgPSBlID0+IHsKKyAgICBpZiAoZS5k
YXRhLndvcmtlciA9PSAnZGVkaWNhdGVkJykgeworICAgICAgbGV0IHdvcmtlciA9IG5ldyBXb3Jr
ZXIoJ2ZvcmVpZ24tZmV0Y2gtaGVscGVyLXNjcmlwdC5qcycpOworICAgICAgd29ya2VyLnBvc3RN
ZXNzYWdlKGUuZGF0YSwgZS5wb3J0cyk7CisgICAgfSBlbHNlIGlmIChlLmRhdGEud29ya2VyID09
ICdzaGFyZWQnKSB7CisgICAgICBsZXQgd29ya2VyID0gbmV3IFNoYXJlZFdvcmtlcignZm9yZWln
bi1mZXRjaC1oZWxwZXItc2NyaXB0LmpzJyk7CisgICAgICB3b3JrZXIucG9ydC5wb3N0TWVzc2Fn
ZShlLmRhdGEsIGUucG9ydHMpOworICAgIH0gZWxzZSB7CisgICAgICBoYW5kbGVfbWVzc2FnZShl
KTsKKyAgICB9CisgIH07CitpZiAoc2VsZi5vcGVuZXIpIHNlbGYub3BlbmVyLnBvc3RNZXNzYWdl
KCdyZWFkeScsICcqJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mb3JlaWduLWZldGNoLWhlbHBlci1zY3JpcHQuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvZm9yZWlnbi1mZXRjaC1oZWxwZXItc2NyaXB0LmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVlY2FhOWUzNjE2NjM5NWM4NTdmMjJmMWVhZTdmZGRiYTJmY2E1ZjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZm9yZWlnbi1mZXRjaC1oZWxwZXItc2Ny
aXB0LmpzCkBAIC0wLDAgKzEsMTEgQEAKK2Z1bmN0aW9uIGhhbmRsZV9tZXNzYWdlKGUpIHsKKyAg
ZmV0Y2goZS5kYXRhLnVybCkKKyAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS50ZXh0KCkp
CisgICAgLnRoZW4odGV4dCA9PiBlLnBvcnRzWzBdLnBvc3RNZXNzYWdlKCdTdWNjZXNzOiAnICsg
dGV4dCkpCisgICAgLmNhdGNoKGVycm9yID0+IGUucG9ydHNbMF0ucG9zdE1lc3NhZ2UoJ0Vycm9y
OiAnICsgZXJyb3IpKTsKK30KKworc2VsZi5vbm1lc3NhZ2UgPSBoYW5kbGVfbWVzc2FnZTsKK3Nl
bGYub25jb25uZWN0ID0gZSA9PiB7CisgIGUucG9ydHNbMF0ub25tZXNzYWdlID0gaGFuZGxlX21l
c3NhZ2U7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVp
Z24tZmV0Y2gtaGVscGVyLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
b3JlaWduLWZldGNoLWhlbHBlci13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U1OTYwNDRiZDE1YTNk
ZjE2MGRjMTE1M2E1OWQyMDY3NTMxN2MxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZldGNoLWhlbHBlci13b3JrZXIuanMKQEAgLTAsMCAr
MSw4IEBACitpbXBvcnRTY3JpcHRzKCcvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzJyk7Citj
b25zdCBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisKK3NlbGYub25mZXRjaCA9IGUgPT4g
eworICBjb25zdCByZW1vdGVfdXJsID0gaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKwor
ICAgICAgICAgICAgICAgICAgICAgbmV3IFVSTCgnLi8nLCBsb2NhdGlvbikucGF0aG5hbWUgKyAn
c2ltcGxlLnR4dD9iYXNpY19zdyc7CisgIGUucmVzcG9uZFdpdGgoZmV0Y2gocmVtb3RlX3VybCkp
OworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZl
dGNoLWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZm9yZWlnbi1mZXRj
aC1oZWxwZXJzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxODMxZWQxNzNjMTI1MDI3ZDUzNjRlMjEzZGEyZjk1
YjAxZmE2YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Zm9yZWlnbi1mZXRjaC1oZWxwZXJzLmpzCkBAIC0wLDAgKzEsNDQgQEAKKy8vIENvbW1vbiBoZWxw
ZXIgZnVuY3Rpb25zIGZvciBmb3JlaWduIGZldGNoIHRlc3RzLgorCisvLyBJbnN0YWxscyBhIHNl
cnZpY2Ugd29ya2VyIG9uIGEgZGlmZmVyZW50IG9yaWdpbi4gQm90aCB8d29ya2VyfCBhbmQgfHNj
b3BlfAorLy8gYXJlIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRoZSAvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy8KKy8vIGRpcmVjdG9yeSBvbiBhIHJlbW90ZSBvcmlnaW4u
CitmdW5jdGlvbiBpbnN0YWxsX2Nyb3NzX29yaWdpbl93b3JrZXIoCisgICAgdCwgd29ya2VyLCBz
Y29wZSwgb3JpZ2luID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX1JFTU9URV9PUklHSU4pIHsKKyAg
cmV0dXJuIHdpdGhfaWZyYW1lKG9yaWdpbiArIG5ldyBVUkwoJ3Jlc291cmNlcy9pbnN0YWxsLXdv
cmtlci1oZWxwZXIuaHRtbCcsIGxvY2F0aW9uKS5wYXRobmFtZSkKKyAgICAudGhlbihmcmFtZSA9
PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGZyYW1lLmNvbnRl
bnRXaW5kb3cucG9zdE1lc3NhZ2Uoe3dvcmtlcjogd29ya2VyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7c2NvcGU6IHNjb3BlfX0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyonKTsKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCByZXBseSA9PiB7CisgICAgICAgICAgICBpZiAocmVw
bHkuc291cmNlICE9IGZyYW1lLmNvbnRlbnRXaW5kb3cpIHJldHVybjsKKyAgICAgICAgICAgIGlm
IChyZXBseS5kYXRhID09ICdzdWNjZXNzJykgcmVzb2x2ZSgpOworICAgICAgICAgICAgZWxzZSBy
ZWplY3QocmVwbHkuZGF0YSk7CisgICAgICAgICAgfSk7CisgICAgICB9KSk7Cit9CisKKy8vIFBl
cmZvcm1zIGEgZmV0Y2ggZnJvbSBhIGRpZmZlcmVudCBvcmlnaW4uIEJ5IGRlZmF1bHQgdGhpcyBw
ZXJmb3JtcyBhIGZldGNoCisvLyBmcm9tIGEgd2luZG93IG9uIHRoYXQgb3JpZ2luLCBidXQgaWYg
fHdvcmtlcl90eXBlfCBpcyAnZGVkaWNhdGVkJyBvciAnc2hhcmVkJworLy8gdGhlIGZldGNoIGlz
IG1hZGUgZnJvbSBhIHdvcmtlciBvbiB0aGF0IG9yaWdpbiBpbnN0ZWFkLgorLy8gVGhpcyB1c2Vz
IGEgd2luZG93IHJhdGhlciB0aGFuIGFuIGlmcmFtZSBiZWNhdXNlIGFuIGlmcmFtZSBtaWdodCBn
ZXQgYmxvY2tlZAorLy8gYnkgbWl4ZWQgY29udGVudCBjaGVja3MuCitmdW5jdGlvbiBmZXRjaF9m
cm9tX2RpZmZlcmVudF9vcmlnaW4ob3JpZ2luLCB1cmwsIHdvcmtlcl90eXBlKSB7CisgIGNvbnN0
IHdpbiA9IG9wZW4ob3JpZ2luICsgbmV3IFVSTCgncmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtaGVs
cGVyLWlmcmFtZS5odG1sJywgbG9jYXRpb24pLnBhdGhuYW1lKTsKKyAgcmV0dXJuIG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geworICAgICAgICBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LCBlID0+IHsKKyAgICAgICAgICAgIGlmIChlLnNvdXJjZSAhPSB3aW4pIHJldHVybjsKKyAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICB9KTsKKyAgICAgIH0pCisgICAgLnRoZW4oKCkg
PT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgY29uc3QgY2hhbm5lbCA9IG5l
dyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICB3aW4ucG9zdE1lc3NhZ2Uoe3VybDogdXJsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtlcjogd29ya2VyX3R5cGV9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgJyonLCBbY2hhbm5lbC5wb3J0MV0pOworICAgICAgICBjaGFubmVsLnBv
cnQyLm9ubWVzc2FnZSA9IHJlcGx5ID0+IHsKKyAgICAgICAgICB3aW4uY2xvc2UoKTsKKyAgICAg
ICAgICByZXNvbHZlKHJlcGx5LmRhdGEpOworICAgICAgICB9OworICAgICAgfSkpOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtd29ya2VyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU1YTc0MDc1M2ZjM2RhZGE0NzEyODc5YmYzN2FhZTVkY2Q1M2I5OWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZm9yZWlnbi1mZXRj
aC13b3JrZXIuanMKQEAgLTAsMCArMSw3OCBAQAorc2VsZi5hZGRFdmVudExpc3RlbmVyKCdpbnN0
YWxsJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgcGFyYW1zID0gSlNPTi5wYXJzZShkZWNv
ZGVVUklDb21wb25lbnQobG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKSkpOworICAgIGlmICgh
KCdzY29wZXMnIGluIHBhcmFtcykpIHsKKyAgICAgIGlmICgncmVsc2NvcGVzJyBpbiBwYXJhbXMp
IHsKKyAgICAgICAgcGFyYW1zLnNjb3BlcyA9IHBhcmFtcy5yZWxzY29wZXMubWFwKHMgPT4gcmVn
aXN0cmF0aW9uLnNjb3BlICsgcyk7CisgICAgICB9IGVsc2UgeworICAgICAgICBwYXJhbXMuc2Nv
cGVzID0gW3JlZ2lzdHJhdGlvbi5zY29wZV07CisgICAgICB9CisgICAgfQorICAgIGlmICghKCdv
cmlnaW5zJyBpbiBwYXJhbXMpKQorICAgICAgcGFyYW1zLm9yaWdpbnMgPSBbJyonXTsKKyAgICBl
dmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaChwYXJhbXMpOworICB9KTsKKworZnVuY3Rpb24gaGFu
ZGxlX2Jhc2ljKGV2ZW50KSB7CisgIGV2ZW50LnJlc3BvbmRXaXRoKHtyZXNwb25zZTogbmV3IFJl
c3BvbnNlKCdGb3JlaWduIEZldGNoJyksIG9yaWdpbjogZXZlbnQub3JpZ2lufSk7Cit9CisKK2Z1
bmN0aW9uIGhhbmRsZV9udWxsKGV2ZW50KSB7CisgIGV2ZW50LnJlc3BvbmRXaXRoKHtyZXNwb25z
ZTogbnVsbCB9KTsKK30KKworZnVuY3Rpb24gaGFuZGxlX29ubWVzc2FnZShldmVudCkgeworICBl
dmVudC5yZXNwb25kV2l0aCh7b3JpZ2luOiBldmVudC5vcmlnaW4sIHJlc3BvbnNlOgorICAgIG5l
dyBSZXNwb25zZSgnPHNjcmlwdD53aW5kb3cub25tZXNzYWdlID0gZSA9PiBlLnBvcnRzWzBdLnBv
c3RNZXNzYWdlKCJmYWlsZWQiKTs8L3NjcmlwdD4nLAorICAgICAgICAgICAgICAgICB7aGVhZGVy
czogeydDb250ZW50LVR5cGUnOiAndGV4dC9odG1sJ319KX0pOworfQorCitmdW5jdGlvbiBoYW5k
bGVfZmFsbGJhY2soZXZlbnQpIHsKKyAgLy8gRG8gbm90aGluZy4KK30KKworZnVuY3Rpb24gaGFu
ZGxlX2ZldGNoKGV2ZW50KSB7CisgIGV2ZW50LnJlc3BvbmRXaXRoKAorICAgIGZldGNoKGV2ZW50
LnJlcXVlc3QpLnRoZW4ocmVzcG9uc2UgPT4gKHtyZXNwb25zZSwgb3JpZ2luOiBldmVudC5vcmln
aW59KSkpOworfQorCitmdW5jdGlvbiBoYW5kbGVfbWV0YShldmVudCkgeworICB2YXIgZGF0YSA9
IHsKKyAgICBvcmlnaW46IGV2ZW50Lm9yaWdpbiwKKyAgICByZWZlcnJlcjogZXZlbnQucmVxdWVz
dC5yZWZlcnJlcgorICB9OworICBldmVudC5yZXNwb25kV2l0aCh7cmVzcG9uc2U6IG5ldyBSZXNw
b25zZShKU09OLnN0cmluZ2lmeShkYXRhKSksCisgICAgICAgICAgICAgICAgICAgICBvcmlnaW46
IGV2ZW50Lm9yaWdpbn0pOworfQorCitmdW5jdGlvbiBoYW5kbGVfc2NyaXB0KGV2ZW50KSB7Cisg
IGV2ZW50LnJlc3BvbmRXaXRoKHtvcmlnaW46IGV2ZW50Lm9yaWdpbiwgcmVzcG9uc2U6CisgICAg
bmV3IFJlc3BvbnNlKCdzZWxmLkRpZExvYWQoIkZvcmVpZ24gRmV0Y2giKTsnKX0pOworfQorCitz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvcmVpZ25mZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgdmFyIHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICAgIHZhciBoYW5kbGVycyA9IFsKKyAg
ICAgIHsgcGF0dGVybjogJz9iYXNpYycsIGZuOiBoYW5kbGVfYmFzaWMgfSwKKyAgICAgIHsgcGF0
dGVybjogJz9udWxsJywgZm46IGhhbmRsZV9udWxsIH0sCisgICAgICB7IHBhdHRlcm46ICc/ZmFs
bGJhY2snLCBmbjogaGFuZGxlX2ZhbGxiYWNrIH0sCisgICAgICB7IHBhdHRlcm46ICc/ZmV0Y2gn
LCBmbjogaGFuZGxlX2ZldGNoIH0sCisgICAgICB7IHBhdHRlcm46ICc/b25tZXNzYWdlJywgZm46
IGhhbmRsZV9vbm1lc3NhZ2UgfSwKKyAgICAgIHsgcGF0dGVybjogJz9tZXRhJywgZm46IGhhbmRs
ZV9tZXRhIH0sCisgICAgICB7IHBhdHRlcm46ICc/c2NyaXB0JywgZm46IGhhbmRsZV9zY3JpcHQg
fQorICAgIF07CisKKyAgICB2YXIgaGFuZGxlciA9IG51bGw7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBoYW5kbGVycy5sZW5ndGg7ICsraSkgeworICAgICAgaWYgKHVybC5pbmRleE9mKGhhbmRs
ZXJzW2ldLnBhdHRlcm4pICE9IC0xKSB7CisgICAgICAgIGhhbmRsZXIgPSBoYW5kbGVyc1tpXTsK
KyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorCisgICAgaWYgKGhhbmRsZXIpIHsKKyAg
ICAgIGhhbmRsZXIuZm4oZXZlbnQpOworICAgIH0gZWxzZSB7CisgICAgICBldmVudC5yZXNwb25k
V2l0aCh7b3JpZ2luOiBldmVudC5vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
cG9uc2U6IG5ldyBSZXNwb25zZSgndW5leHBlY3RlZCByZXF1ZXN0Jyl9KTsKKyAgICB9CisgIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZyYW1lLWZvci1nZXRy
ZWdpc3RyYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZnJhbWUtZm9y
LWdldHJlZ2lzdHJhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmMzNWYxODkxNGMxMzQ1ZTBmNWNj
YWI5MzMwNTkzODE4MGZlOWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZyYW1lLWZvci1nZXRyZWdpc3RyYXRpb25zLmh0bWwKQEAgLTAsMCArMSwxOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IGZyYW1lIGZvciBnZXRS
ZWdpc3RyYXRpb25zKCk8L3RpdGxlPgorPHNjcmlwdD4KK3ZhciBzY29wZSA9ICdzY29wZS1mb3It
Z2V0cmVnaXN0cmF0aW9ucyc7Cit2YXIgc2NyaXB0ID0gJ2VtcHR5LXdvcmtlci5qcyc7Cit2YXIg
cmVnaXN0cmF0aW9uOworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihzY3JpcHQs
IHsgc2NvcGU6IHNjb3BlIH0pCisgIC50aGVuKGZ1bmN0aW9uKHIpIHsgcmVnaXN0cmF0aW9uID0g
cjsgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgncmVhZHknLCAnKicpOyB9KQorCitzZWxmLm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgaWYgKGUuZGF0YSA9PSAndW5yZWdpc3RlcicpIHsK
KyAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgICAgICBlLnBvcnRzWzBdLnBvc3RNZXNzYWdlKCd1bnJlZ2lzdGVyZWQnKTsKKyAgICAg
ICAgfSk7CisgIH0KK307Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9odHRwLXRvLWh0dHBzLXJlZGlyZWN0LWFuZC1yZWdpc3Rlci1pZnJhbWUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9odHRwLXRvLWh0dHBzLXJlZGlyZWN0LWFu
ZC1yZWdpc3Rlci1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzQ4YTE4Y2VlNDU3NDY5ZDE4Nzhj
MDhhMTE2ZjYxMzY3ZWRiNTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2h0dHAtdG8taHR0cHMtcmVkaXJlY3QtYW5kLXJlZ2lzdGVyLWlmcmFtZS5odG1s
CkBAIC0wLDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPnJlZ2lzdGVyLCB1bnJl
Z2lzdGVyLCBhbmQgcmVwb3J0IHJlc3VsdCB0byBvcGVuZXI8L3RpdGxlPgorPGJvZHk+Cis8c2Ny
aXB0PgorJ3VzZSBzdHJpY3QnOworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcign
ZW1wdHktd29ya2VyLmpzJywge3Njb3BlOiAnc2NvcGUtcmVnaXN0ZXInfSkKKyAgLnRoZW4oCisg
ICAgcmVnaXN0cmF0aW9uID0+IHsKKyAgICAgICAgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoJ09LJywg
JyonKTsKKyAgICAgICAgICB9KTsKKyAgICAgIH0sCisgICAgZXJyb3IgPT4geworICAgICAgICB3
aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCdGQUlMOiAnICsgZXJyb3IubmFtZSwgJyonKTsKKyAg
ICAgIH0pCisgIC5jYXRjaChlcnJvciA9PiB7CisgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNz
YWdlKCdFUlJPUjogJyArIGVycm9yLm5hbWUsICcqJyk7CisgICAgfSk7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pZnJhbWUtcmVn
aXN0ZXItbGluay1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaWZy
YW1lLXJlZ2lzdGVyLWxpbmstZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiNWJmMjMwZTg5Y2Q4
ODYxMTBiYTk3NDAzN2ZmY2FhM2IzNzJmNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaWZyYW1lLXJlZ2lzdGVyLWxpbmstZWxlbWVudC5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7Cit2YXIgbGluayA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKK2xpbmsuc2V0QXR0cmlidXRlKCdyZWwnLCAnc2Vydmlj
ZXdvcmtlcicpOworbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCAnZW1wdHktd29ya2VyLmpzJyk7
CitmdW5jdGlvbiByZXBvcnQocmVzdWx0KSB7CisgICAgdG9wLnBvc3RNZXNzYWdlKHtpZDogbG9j
YXRpb24uc2VhcmNoLCByZXN1bHQ6IHJlc3VsdH0sICcqJyk7Cit9OworbGluay5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICByZXBvcnQoJ2xvYWRlZCcpOworfTsKK2xpbmsub25lcnJvciA9IGZ1
bmN0aW9uKCkgeworICAgIHJlcG9ydCgnZXJyb3InKTsKK307Citkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKGxpbmspOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LW1pbWUtdHlwZS13b3Jr
ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LW1pbWUtdHlwZS13b3Jr
ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWE4ODVlN2E0ZGUwNDgyMDgyMmViNTYyZDQ3NzgwOTk5ZmEyNTNl
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQt
bWltZS10eXBlLXdvcmtlci5weQpAQCAtMCwwICsxLDEwIEBACitkZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6CisgICAgaWYgJ21pbWUnIGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZXR1cm4g
KAorICAgICAgICAgICAgWygnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQn
KV0sCisgICAgICAgICAgICAiaW1wb3J0U2NyaXB0cygnLi9taW1lLXR5cGUtd29ya2VyLnB5P21p
bWU9ezB9Jyk7Ii5mb3JtYXQocmVxdWVzdC5HRVRbJ21pbWUnXSkKKyAgICAgICAgKQorICAgIHJl
dHVybiAoCisgICAgICAgIFsoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
JyldLAorICAgICAgICAiaW1wb3J0U2NyaXB0cygnLi9taW1lLXR5cGUtd29ya2VyLnB5Jyk7Igor
ICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2Ny
aXB0cy1lY2hvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRz
LWVjaG8ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q5Mjc5NGUzMWI2YjEyNzBkYjI2Nzc5ZjYzNjQ0YWM0MmEz
ZDNkNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBv
cnQtc2NyaXB0cy1lY2hvLnB5CkBAIC0wLDAgKzEsNiBAQAorZGVmIG1haW4ocmVxLCByZXMpOgor
ICAgIHJldHVybiAoWworICAgICAgICAoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG11c3Qt
cmV2YWxpZGF0ZScpLAorICAgICAgICAoJ1ByYWdtYScsICduby1jYWNoZScpLAorICAgICAgICAo
J0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JyldLAorICAgICAgJ2VjaG9f
b3V0cHV0ID0gIiVzIjtcbicgJSByZXEuR0VUWydtc2cnXSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAtd29ya2VyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXJlc291cmNlLW1h
cC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjNiOWJjNDZhMDI0MjllMGFmZGI2YzVmNDRiMjZmZWVj
ODk4YzkyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9p
bXBvcnQtc2NyaXB0cy1yZXNvdXJjZS1tYXAtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTUgQEAKK2lt
cG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKKworbGV0IHZlcnNpb24g
PSBudWxsOworaW1wb3J0U2NyaXB0cygnaW1wb3J0LXNjcmlwdHMtdmVyc2lvbi5weScpOworLy8g
T25jZSBpbXBvcnRlZCwgdGhlIHN0b3JlZCBzY3JpcHQgc2hvdWxkIGJlIGxvYWRlZCBmb3Igc3Vi
c2VxdWVudCBpbXBvcnRTY3JpcHRzLgorY29uc3QgZXhwZWN0ZWRfdmVyc2lvbiA9IHZlcnNpb247
CisKK3ZlcnNpb24gPSBudWxsOworaW1wb3J0U2NyaXB0cygnaW1wb3J0LXNjcmlwdHMtdmVyc2lv
bi5weScpOworYXNzZXJ0X2VxdWFscyhleHBlY3RlZF92ZXJzaW9uLCB2ZXJzaW9uLCAnc2Vjb25k
IGltcG9ydCcpOworCit2ZXJzaW9uID0gbnVsbDsKK2ltcG9ydFNjcmlwdHMoJ2ltcG9ydC1zY3Jp
cHRzLXZlcnNpb24ucHknLCAnaW1wb3J0LXNjcmlwdHMtdmVyc2lvbi5weScsCisgICAgJ2ltcG9y
dC1zY3JpcHRzLXZlcnNpb24ucHknKTsKK2Fzc2VydF9lcXVhbHMoZXhwZWN0ZWRfdmVyc2lvbiwg
dmVyc2lvbiwgJ211bHRpcGxlIGltcG9ydHMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy11cGRhdGVkLWZsYWctd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXVwZGF0ZWQtZmxhZy13b3Jr
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGY1MDA1ZDlhZjQxZDk1YzkyNDMwOTY0NzhkMmUzNWM2NTNjOTY2
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQt
c2NyaXB0cy11cGRhdGVkLWZsYWctd29ya2VyLmpzCkBAIC0wLDAgKzEsMjkgQEAKK2ltcG9ydFNj
cmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKKworbGV0IGVjaG9fb3V0cHV0ID0g
bnVsbDsKKworLy8gVGVzdHMgaW1wb3J0aW5nIGEgc2NyaXB0IHRoYXQgc2V0cyB8ZWNob19vdXRw
dXR8IHRvIHRoZSBxdWVyeSBzdHJpbmcuCitmdW5jdGlvbiB0ZXN0X2ltcG9ydChzdHIpIHsKKyAg
aW1wb3J0U2NyaXB0cygnaW1wb3J0LXNjcmlwdHMtZWNoby5weT9tc2c9JyArIHN0cik7CisgIGFz
c2VydF9lcXVhbHMoZWNob19vdXRwdXQsIHN0cik7Cit9CisKK3Rlc3RfaW1wb3J0KCdyb290Jyk7
Cit0ZXN0X2ltcG9ydCgncm9vdC1hbmQtbWVzc2FnZScpOworCitzZWxmLmFkZEV2ZW50TGlzdGVu
ZXIoJ2luc3RhbGwnLCAoKSA9PiB7CisgICAgdGVzdF9pbXBvcnQoJ2luc3RhbGwnKTsKKyAgICB0
ZXN0X2ltcG9ydCgnaW5zdGFsbC1hbmQtbWVzc2FnZScpOworICB9KTsKKworc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdtZXNzYWdlJywgZSA9PiB7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKworICAg
IHRyeSB7CisgICAgICBpbXBvcnRTY3JpcHRzKCdpbXBvcnQtc2NyaXB0cy1lY2hvLnB5P21zZz0n
ICsgZS5kYXRhKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICBlcnJvciA9IGUgJiYgZS5uYW1l
OworICAgIH0KKworICAgIGUuc291cmNlLnBvc3RNZXNzYWdlKHsgZXJyb3I6IGVycm9yLCB2YWx1
ZTogZWNob19vdXRwdXQgfSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXZlcnNpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtdmVyc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWNhYTFhNDFl
ZDJmNzZmMjM0MjViYzc5NzhiNjA1NmU0MmQzYzJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLXZlcnNpb24ucHkKQEAgLTAsMCAr
MSwxNyBAQAoraW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgdGltZQorCitlcG9jaCA9IGRhdGV0aW1l
LmRhdGV0aW1lKDE5NzAsIDEsIDEpCisKK2RlZiBtYWluKHJlcSwgcmVzKToKKyAgICAjIEFydGlm
aWNpYWxseSBkZWxheSByZXNwb25zZSB0aW1lIGluIG9yZGVyIHRvIGVuc3VyZSB1bmlxdWVuZXNz
IG9mCisgICAgIyBjb21wdXRlZCB2YWx1ZQorICAgIHRpbWUuc2xlZXAoMC4xKQorCisgICAgbm93
ID0gKGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpIC0gZXBvY2gpLnRvdGFsX3NlY29uZHMoKQorCisg
ICAgcmV0dXJuIChbCisgICAgICAgICgnQ2FjaGUtQ29udHJvbCcsICduby1jYWNoZSwgbXVzdC1y
ZXZhbGlkYXRlJyksCisgICAgICAgICgnUHJhZ21hJywgJ25vLWNhY2hlJyksCisgICAgICAgICgn
Q29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnKV0sCisgICAgICAndmVyc2lv
biA9ICIlcyI7XG4nICUgbm93KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2luZGV4ZWRkYi13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW5k
ZXhlZGRiLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YWRkNDc2ODM4ODRjMDRmYzIyYzM0MzM3NzE0
ZmQyYTM1NmRjYWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2luZGV4ZWRkYi13b3JrZXIuanMKQEAgLTAsMCArMSw1NyBAQAorc2VsZi5hZGRFdmVudExp
c3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAgIHZhciBtZXNzYWdlID0gZS5kYXRh
OworICAgIGlmIChtZXNzYWdlLmFjdGlvbiA9PT0gJ2NyZWF0ZScpIHsKKyAgICAgIGUud2FpdFVu
dGlsKGRlbGV0ZURCKCkKKyAgICAgICAgICAudGhlbihkb0luZGV4ZWREQlRlc3QpCisgICAgICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIG1lc3NhZ2UucG9ydC5wb3N0TWVz
c2FnZSh7IHR5cGU6ICdjcmVhdGVkJyB9KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgLmNh
dGNoKGZ1bmN0aW9uKHJlYXNvbikgeworICAgICAgICAgICAgICBtZXNzYWdlLnBvcnQucG9zdE1l
c3NhZ2UoeyB0eXBlOiAnZXJyb3InLCB2YWx1ZTogcmVhc29uIH0pOworICAgICAgICAgICAgfSkp
OworICAgIH0gZWxzZSBpZiAobWVzc2FnZS5hY3Rpb24gPT09ICdjbGVhbnVwJykgeworICAgICAg
ZS53YWl0VW50aWwoZGVsZXRlREIoKQorICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICBtZXNzYWdlLnBvcnQucG9zdE1lc3NhZ2UoeyB0eXBlOiAnZG9uZScgfSk7Cisg
ICAgICAgICAgICB9KQorICAgICAgICAgIC5jYXRjaChmdW5jdGlvbihyZWFzb24pIHsKKyAgICAg
ICAgICAgICAgbWVzc2FnZS5wb3J0LnBvc3RNZXNzYWdlKHsgdHlwZTogJ2Vycm9yJywgdmFsdWU6
IHJlYXNvbiB9KTsKKyAgICAgICAgICAgIH0pKTsKKyAgICB9CisgIH0pOworCitmdW5jdGlvbiBk
ZWxldGVEQigpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgdmFyIGRlbGV0ZV9yZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KCdkYicpOworCisgICAgICBkZWxldGVfcmVxdWVzdC5vbnN1Y2Nlc3MgPSByZXNvbHZlOworICAg
ICAgZGVsZXRlX3JlcXVlc3Qub25lcnJvciA9IHJlamVjdDsKKyAgICB9KTsKK30KKworZnVuY3Rp
b24gZG9JbmRleGVkREJUZXN0KHBvcnQpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgdmFyIG9wZW5fcmVxdWVzdCA9IGluZGV4ZWREQi5v
cGVuKCdkYicpOworCisgICAgICBvcGVuX3JlcXVlc3Qub25lcnJvciA9IHJlamVjdDsKKyAgICAg
IG9wZW5fcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFy
IGRiID0gb3Blbl9yZXF1ZXN0LnJlc3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J3N0b3JlJyk7CisgICAgICB9OworICAgICAgb3Blbl9yZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgZGIgPSBvcGVuX3JlcXVlc3QucmVzdWx0OworICAgICAgICB2
YXIgdHggPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZHdyaXRlJyk7CisgICAgICAgIHZh
ciBzdG9yZSA9IHR4Lm9iamVjdFN0b3JlKCdzdG9yZScpOworICAgICAgICBzdG9yZS5wdXQoJ3Zh
bHVlJywgJ2tleScpOworCisgICAgICAgIHR4Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgICAgICByZWplY3QodHguZXJyb3IpOworICAgICAg
ICAgIH07CisgICAgICAgIHR4Lm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IGRiLmNsb3NlKCk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgfTsKKyAgICAg
IH07CisgICAgfSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aW5zdGFsbC1ldmVudC10eXBlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9pbnN0YWxsLWV2ZW50LXR5cGUtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjOTRhZTIxZWE5ZDg4
YThmYTI1OWE3MDZmZGE2NjVlZjU3MmRkNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvaW5zdGFsbC1ldmVudC10eXBlLXdvcmtlci5qcwpAQCAtMCwwICsx
LDkgQEAKK2ltcG9ydFNjcmlwdHMoJ3dvcmtlci10ZXN0aGFybmVzcy5qcycpOworCitzZWxmLm9u
aW5zdGFsbCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYXNzZXJ0X3RydWUoZXZlbnQgaW5zdGFu
Y2VvZiBFeHRlbmRhYmxlRXZlbnQsICdpbnN0YW5jZSBvZiBFeHRlbmRhYmxlRXZlbnQnKTsKKyAg
ICBhc3NlcnRfdHJ1ZShldmVudCBpbnN0YW5jZW9mIEluc3RhbGxFdmVudCwgJ2luc3RhbmNlIG9m
IEluc3RhbGxFdmVudCcpOworICAgIGFzc2VydF9lcXVhbHMoZXZlbnQudHlwZSwgJ2luc3RhbGwn
LCAnYHR5cGVgIHByb3BlcnR5IHZhbHVlJyk7CisgICAgYXNzZXJ0X2ZhbHNlKGV2ZW50LmNhbmNl
bGFibGUsICdgY2FuY2VsYWJsZWAgcHJvcGVydHkgdmFsdWUnKTsKKyAgICBhc3NlcnRfZmFsc2Uo
ZXZlbnQuYnViYmxlcywgJ2BidWJibGVzYCBwcm9wZXJ0eSB2YWx1ZScpOworfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnN0YWxsLXdvcmtlci1oZWxwZXIuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnN0YWxsLXdvcmtlci1oZWxwZXIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mY2I4ZjZkODNjN2UwZTRiM2EwYjk3ZWQyOWNhNWFkZDI0OGQwOTFlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2luc3RhbGwtd29y
a2VyLWhlbHBlci5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlw
dCBzcmM9InRlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZXZlbnQgPT4geworICAgIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbihldmVudC5kYXRhLm9wdGlvbnMuc2NvcGUpCisgICAg
ICAudGhlbihyID0+IHsKKyAgICAgICAgICBpZiAocikgcmV0dXJuIHIudW5yZWdpc3RlcigpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oKCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVn
aXN0ZXIoZXZlbnQuZGF0YS53b3JrZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBldmVudC5kYXRhLm9wdGlvbnMpKQorICAgICAgLnRoZW4ociA9
PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigndW5sb2FkJywgKCkgPT4gci51bnJlZ2lzdGVyKCkpOworICAgICAgICAgIHZhciB3b3Jr
ZXIgPSByLmluc3RhbGxpbmc7CisgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0
YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgICBpZiAod29ya2VyLnN0YXRlID09PSAn
YWN0aXZhdGVkJykgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pKQorICAg
ICAgLnRoZW4oKCkgPT4gZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCdzdWNjZXNzJywgJyonKSkK
KyAgICAgIC5jYXRjaCgoZSkgPT4gZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCdmYWlsdXJlOicg
KyBlLCAnKicpKTsKKyAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pbnRlcmZhY2VzLXdvcmtlci5zdWIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvaW50ZXJmYWNlcy13b3JrZXIuc3ViLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiYjM0MTdh
NGU1MDEwM2M1NzNiOGUxY2Y5ZmYzNGIzYmFlODAxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW50ZXJmYWNlcy13b3JrZXIuc3ViLmpzCkBAIC0wLDAg
KzEsMTE3IEBACitpbXBvcnRTY3JpcHRzKCdpbnRlcmZhY2VzLmpzJyk7CitpbXBvcnRTY3JpcHRz
KCd3b3JrZXItdGVzdGhhcm5lc3MuanMnKTsKK2ltcG9ydFNjcmlwdHMoJy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy1oZWxwZXJzLmpzJyk7CisKK3ZhciBFVkVOVF9IQU5ETEVSID0gJ29iamVjdCc7
CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmVyaWZ5X2ludGVyZmFjZSgnU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlJywKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudHM6ICdvYmplY3QnLAorICAg
ICAgICAgICAgICAgICAgICAgICByZWdpc3RyYXRpb246ICdvYmplY3QnLAorICAgICAgICAgICAg
ICAgICAgICAgICBza2lwV2FpdGluZzogJ2Z1bmN0aW9uJywKKworICAgICAgICAgICAgICAgICAg
ICAgICBvbmFjdGl2YXRlOiBFVkVOVF9IQU5ETEVSLAorICAgICAgICAgICAgICAgICAgICAgICBv
bmZldGNoOiBFVkVOVF9IQU5ETEVSLAorICAgICAgICAgICAgICAgICAgICAgICBvbmluc3RhbGw6
IEVWRU5UX0hBTkRMRVIsCisgICAgICAgICAgICAgICAgICAgICAgIG9ubWVzc2FnZTogRVZFTlRf
SEFORExFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgb25tZXNzYWdlZXJyb3I6IEVWRU5UX0hB
TkRMRVIKKyAgICAgICAgICAgICAgICAgICAgIH0pOworICB9LCAnU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmVyaWZ5X2ludGVyZmFjZSgnQ2xp
ZW50cycsCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmNsaWVudHMsCisgICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgIGNsYWltOiAnZnVuY3Rpb24nLAorICAg
ICAgICAgICAgICAgICAgICAgICBtYXRjaEFsbDogJ2Z1bmN0aW9uJworICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgIH0sICdDbGllbnRzJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICAgdmVy
aWZ5X2ludGVyZmFjZSgnQ2xpZW50Jyk7CisgICAgLy8gRklYTUU6IEdldCBhbiBpbnN0YW5jZSBh
bmQgdGVzdCBpdCwgb3IgZW5zdXJlIHByb3BlcnR5IGV4aXN0cyBvbgorICAgIC8vIHByb3RvdHlw
ZS4KKyAgfSwgJ0NsaWVudCcpOworCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIHZlcmlmeV9pbnRl
cmZhY2UoJ1dpbmRvd0NsaWVudCcpOworICAgIC8vIEZJWE1FOiBHZXQgYW4gaW5zdGFuY2UgYW5k
IHRlc3QgaXQsIG9yIGVuc3VyZSBwcm9wZXJ0eSBleGlzdHMgb24KKyAgICAvLyBwcm90b3R5cGUu
CisgIH0sICdXaW5kb3dDbGllbnQnKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2ZXJpZnlf
aW50ZXJmYWNlKCdDYWNoZVN0b3JhZ2UnLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5jYWNo
ZXMsCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgIG1hdGNo
OiAnZnVuY3Rpb24nLAorICAgICAgICAgICAgICAgICAgICAgICBoYXM6ICdmdW5jdGlvbicsCisg
ICAgICAgICAgICAgICAgICAgICAgIG9wZW46ICdmdW5jdGlvbicsCisgICAgICAgICAgICAgICAg
ICAgICAgIGRlbGV0ZTogJ2Z1bmN0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAga2V5czog
J2Z1bmN0aW9uJworICAgICAgICAgICAgICAgICAgICAgfSk7CisgIH0sICdDYWNoZVN0b3JhZ2Un
KTsKKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICByZXR1cm4gY3JlYXRlX3RlbXBv
cmFyeV9jYWNoZSh0KQorICAgICAgLnRoZW4oZnVuY3Rpb24oY2FjaGUpIHsKKyAgICAgICAgICB2
ZXJpZnlfaW50ZXJmYWNlKCdDYWNoZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNo
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWF0Y2g6ICdmdW5jdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoQWxsOiAnZnVuY3Rpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGQ6ICdm
dW5jdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEFsbDogJ2Z1bmN0aW9u
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0OiAnZnVuY3Rpb24nLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWxldGU6ICdmdW5jdGlvbicsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtleXM6ICdmdW5jdGlvbicKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgfSwgJ0NhY2hlJyk7CisKK3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgdmFyIHJlcSA9IG5ldyBSZXF1ZXN0KCdodHRwOi8ve3tob3N0fX0vJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAge21ldGhvZDogJ1BPU1QnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVhZGVyczogW1snQ29udGVudC1UeXBlJywgJ1RleHQvSHRtbCddXX0pOworICAgIGFz
c2VydF9lcXVhbHMoCisgICAgICBuZXcgRXh0ZW5kYWJsZUV2ZW50KCdFeHRlbmRhYmxlRXZlbnQn
KS50eXBlLAorICAgICAgJ0V4dGVuZGFibGVFdmVudCcsICdUeXBlIG9mIEV4dGVuZGFibGVFdmVu
dCBzaG91bGQgYmUgRXh0ZW5kYWJsZUV2ZW50Jyk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlw
ZUVycm9yLCBmdW5jdGlvbigpIHsKKyAgICAgICAgbmV3IEZldGNoRXZlbnQoJ0ZldGNoRXZlbnQn
KTsKKyAgICB9LCAnRmV0Y2hFdmVudCBjb25zdHJ1Y3RvciB3aXRoIG9uZSBhcmd1bWVudCB0aHJv
d3MnKTsKKyAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICAg
ICAgICBuZXcgRmV0Y2hFdmVudCgnRmV0Y2hFdmVudCcsIHt9KTsKKyAgICB9LCAnRmV0Y2hFdmVu
dCBjb25zdHJ1Y3RvciB3aXRoIGVtcHR5IGluaXQgZGljdCB0aHJvd3MnKTsKKyAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IsIGZ1bmN0aW9uKCkgeworICAgICAgICBuZXcgRmV0Y2hFdmVu
dCgnRmV0Y2hFdmVudCcsIHtyZXF1ZXN0OiBudWxsfSk7CisgICAgfSwgJ0ZldGNoRXZlbnQgY29u
c3RydWN0b3Igd2l0aCBudWxsIHJlcXVlc3QgbWVtYmVyIHRocm93cycpOworICAgIGFzc2VydF9l
cXVhbHMoCisgICAgICBuZXcgRmV0Y2hFdmVudCgnRmV0Y2hFdmVudCcsIHtyZXF1ZXN0OiByZXF9
KS50eXBlLAorICAgICAgJ0ZldGNoRXZlbnQnLCAnVHlwZSBvZiBGZXRjaEV2ZW50IHNob3VsZCBi
ZSBGZXRjaEV2ZW50Jyk7CisgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgIG5ldyBGZXRjaEV2ZW50
KCdGZXRjaEV2ZW50Jywge3JlcXVlc3Q6IHJlcX0pLmNhbmNlbGFibGUsCisgICAgICBmYWxzZSwg
J0RlZmF1bHQgRmV0Y2hFdmVudC5jYW5jZWxhYmxlIHNob3VsZCBiZSBmYWxzZScpOworICAgIGFz
c2VydF9lcXVhbHMoCisgICAgICBuZXcgRmV0Y2hFdmVudCgnRmV0Y2hFdmVudCcsIHtyZXF1ZXN0
OiByZXF9KS5idWJibGVzLAorICAgICAgZmFsc2UsICdEZWZhdWx0IEZldGNoRXZlbnQuYnViYmxl
cyBzaG91bGQgYmUgZmFsc2UnKTsKKyAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgbmV3IEZldGNo
RXZlbnQoJ0ZldGNoRXZlbnQnLCB7cmVxdWVzdDogcmVxfSkuY2xpZW50SWQsCisgICAgICBudWxs
LCAnRGVmYXVsdCBGZXRjaEV2ZW50LmNsaWVudElkIHNob3VsZCBiZSBudWxsJyk7CisgICAgYXNz
ZXJ0X2VxdWFscygKKyAgICAgIG5ldyBGZXRjaEV2ZW50KCdGZXRjaEV2ZW50Jywge3JlcXVlc3Q6
IHJlcX0pLmlzUmVsb2FkLAorICAgICAgZmFsc2UsICdEZWZhdWx0IEZldGNoRXZlbnQuaXNSZWxv
YWQgc2hvdWxkIGJlIGZhbHNlJyk7CisgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgIG5ldyBGZXRj
aEV2ZW50KCdGZXRjaEV2ZW50Jywge3JlcXVlc3Q6IHJlcSwgY2FuY2VsYWJsZTogZmFsc2V9KS5j
YW5jZWxhYmxlLAorICAgICAgZmFsc2UsICdGZXRjaEV2ZW50LmNhbmNlbGFibGUgc2hvdWxkIGJl
IGZhbHNlJyk7CisgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgIG5ldyBGZXRjaEV2ZW50KCdGZXRj
aEV2ZW50Jywge3JlcXVlc3Q6IHJlcSwgY2xpZW50SWQgOiAndGVzdC1jbGllbnQtaWQnfSkuY2xp
ZW50SWQsICd0ZXN0LWNsaWVudC1pZCcsCisgICAgICAnRmV0Y2hFdmVudC5jbGllbnRJZCB3aXRo
IG9wdGlvbiB7Y2xpZW50SWQgOiAidGVzdC1jbGllbnQtaWQifSBzaG91bGQgYmUgInRlc3QtY2xp
ZW50LWlkIicpOworICAgIGFzc2VydF9lcXVhbHMoCisgICAgICBuZXcgRmV0Y2hFdmVudCgnRmV0
Y2hFdmVudCcsIHtyZXF1ZXN0OiByZXEsIGlzUmVsb2FkIDogdHJ1ZX0pLmlzUmVsb2FkLCB0cnVl
LAorICAgICAgJ0ZldGNoRXZlbnQuaXNSZWxvYWQgd2l0aCBvcHRpb24ge2lzUmVsb2FkIDogdHJ1
ZX0gc2hvdWxkIGJlIHRydWUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgbmV3IEZldGNo
RXZlbnQoJ0ZldGNoRXZlbnQnLCB7cmVxdWVzdCA6IHJlcSwgaXNSZWxvYWQgOiB0cnVlfSkucmVx
dWVzdC51cmwsCisgICAgICAnaHR0cDovL3t7aG9zdH19LycsCisgICAgICAnRmV0Y2hFdmVudC5y
ZXF1ZXN0LnVybCBzaG91bGQgcmV0dXJuIHRoZSB2YWx1ZSBpdCB3YXMgaW5pdGlhbGl6ZWQgdG8n
KTsKKyAgfSwgJ0V2ZW50IGNvbnN0cnVjdG9ycycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL2ludGVyZmFjZXMuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvaW50ZXJmYWNlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjAwZGY2NWZmM2I3YjcwOWEyYzYwM2NkN2Jl
MjFmNzY1ZWM1ZjQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ludGVyZmFjZXMuanMKQEAgLTAsMCArMSwxNSBAQAorZnVuY3Rpb24gdmVyaWZ5X2ludGVy
ZmFjZShuYW1lLCBpbnN0YW5jZSwgYXR0cmlidXRlcykgeworICBhc3NlcnRfdHJ1ZShuYW1lIGlu
IHNlbGYsCisgICAgICAgICAgICAgIG5hbWUgKyAnIHNob3VsZCBiZSBhbiBkZWZpbmVkIHR5cGUn
KTsKKyAgaWYgKGluc3RhbmNlKSB7CisgICAgYXNzZXJ0X3RydWUoaW5zdGFuY2UgaW5zdGFuY2Vv
ZiBzZWxmW25hbWVdLAorICAgICAgICAgICAgICAgIGluc3RhbmNlICsgJyBzaG91bGQgYmUgYW4g
aW5zdGFuY2Ugb2YgJyArIG5hbWUpOworICAgIE9iamVjdC5rZXlzKGF0dHJpYnV0ZXMgfHwge30p
LmZvckVhY2goZnVuY3Rpb24oYXR0cmlidXRlKSB7CisgICAgICAgIHZhciB0eXBlID0gYXR0cmli
dXRlc1thdHRyaWJ1dGVdOworICAgICAgICBhc3NlcnRfdHJ1ZShhdHRyaWJ1dGUgaW4gaW5zdGFu
Y2UsCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSArICcgc2hvdWxkIGJlIGFuIGF0dHJp
YnV0ZSBvZiAnICsgbmFtZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGluc3RhbmNl
W2F0dHJpYnV0ZV0sIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICsgJyBz
aG91bGQgYmUgb2YgdHlwZSAnICsgdHlwZSk7CisgICAgICB9KTsKKyAgfQorfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtYmxvYnR5cGUtaWZyYW1lLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1ibG9idHlwZS1p
ZnJhbWUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTZjYWNiNTVkN2Y4MGY2YzcxZTNiZTUxM2Mx
MGE3NTZkNjY1NDNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ludmFsaWQtYmxvYnR5cGUtaWZyYW1lLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PHNjcmlwdCBzcmM9InRlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
ZnVuY3Rpb24geGhyX3NlbmQobWV0aG9kLCBkYXRhKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKKyAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHho
ci5nZXRSZXNwb25zZUhlYWRlcignQ29udGVudC1UeXBlJykgIT09IG51bGwpIHsKKyAgICAgICAg
ICByZWplY3QoJ0NvbnRlbnQtVHlwZSBtdXN0IGJlIG51bGwuJyk7CisgICAgICAgIH0KKyAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgfTsKKyAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7
CisgICAgICAgIHJlamVjdCgnWEhSIG11c3Qgc3VjY2VlZC4nKTsKKyAgICAgIH07CisgICAgICB4
aHIucmVzcG9uc2VUeXBlID0gJ3RleHQnOworICAgICAgeGhyLm9wZW4obWV0aG9kLCAnLi9kdW1t
eT90ZXN0JywgdHJ1ZSk7CisgICAgICB4aHIuc2VuZChkYXRhKTsKKyAgICB9KTsKK30KKword2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldnQpIHsKKyAgICB2YXIg
cG9ydCA9IGV2dC5wb3J0c1swXTsKKyAgICB4aHJfc2VuZCgnUE9TVCcsICd0ZXN0IHN0cmluZycp
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2Zp
bmlzaCd9KTsgfSkKKyAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7IHBvcnQucG9zdE1lc3NhZ2Uo
e3Jlc3VsdHM6ICdmYWlsdXJlOicgKyBlfSk7IH0pOworICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtYmxvYnR5cGUtd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtYmxvYnR5cGUtd29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkzZjQ5NmVmNDRlNzEzY2EyNDZmYjgyZTFjYmY3MTM5MTE0M2JjZWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1i
bG9idHlwZS13b3JrZXIuanMKQEAgLTAsMCArMSwxMCBAQAorc2VsZi5hZGRFdmVudExpc3RlbmVy
KCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFyIHVybCA9IGV2ZW50LnJlcXVlc3Qu
dXJsOworICAgIGlmICh1cmwuaW5kZXhPZignZHVtbXk/dGVzdCcpID09IC0xKSB7CisgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUpIHsKKyAgICAgICAgLy8gbnVsbCBieXRlIGluIGJsb2IgdHlwZQorICAgICAgICBy
ZXNvbHZlKG5ldyBSZXNwb25zZShuZXcgQmxvYihbXSx7dHlwZTogJ2FcMGInfSkpKTsKKyAgICAg
IH0pKTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52
YWxpZC1jaHVua2VkLWVuY29kaW5nLXdpdGgtZmx1c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvaW52YWxpZC1jaHVua2VkLWVuY29kaW5nLXdpdGgtZmx1c2gucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzkxMjUwYTlkMWY5YmNmMTkzMGYwZDNkZDY4NWViY2NhMjkzMjU1OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnZhbGlkLWNodW5rZWQtZW5jb2Rp
bmctd2l0aC1mbHVzaC5weQpAQCAtMCwwICsxLDExIEBACitpbXBvcnQgdGltZQorZGVmIG1haW4o
cmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDb250ZW50LVR5
cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQo
IlRyYW5zZmVyLWVuY29kaW5nIiwgImNodW5rZWQiKQorICAgIHJlc3BvbnNlLndyaXRlX3N0YXR1
c19oZWFkZXJzKCkKKworICAgIHRpbWUuc2xlZXAoMSkKKyAgICByZXNwb25zZS5leHBsaWNpdF9m
bHVzaCA9IFRydWUKKworICAgIHJlc3BvbnNlLndyaXRlci53cml0ZSgiWFhcclxuXHJcbiIpCisg
ICAgcmVzcG9uc2Uud3JpdGVyLmZsdXNoKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9pbnZhbGlkLWNodW5rZWQtZW5jb2RpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvaW52YWxpZC1jaHVua2VkLWVuY29kaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlMmMx
ZjIxYjJlYzAxZmYyNmI4ZmNjN2Y4MGE2YWZmNjljY2JmMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1jaHVua2VkLWVuY29kaW5nLnB5CkBA
IC0wLDAgKzEsMiBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHJldHVybiBb
KCJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCAoIlRyYW5zZmVyLWVu
Y29kaW5nIiwgImNodW5rZWQiKV0sICJYWFxyXG5cclxuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtaGVhZGVyLWlmcmFtZS5odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtaGVhZGVyLWlmcmFtZS5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgwNTMxYjc5ZGI5NTcyM2Y4ODBkNmJiOGYzNjMzMmYxZDQxYWMzZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1oZWFk
ZXItaWZyYW1lLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPHNjcmlwdCBzcmM9InRlc3Qt
aGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24geGhyX3NlbmQo
bWV0aG9kLCBkYXRhKSB7CisgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgIHho
ci5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVqZWN0KCdYSFIgbXVzdCBmYWlsLicp
OworICAgICAgfTsKKyAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgIH07CisgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ3RleHQnOworICAg
ICAgeGhyLm9wZW4obWV0aG9kLCAnLi9kdW1teT90ZXN0JywgdHJ1ZSk7CisgICAgICB4aHIuc2Vu
ZChkYXRhKTsKKyAgICB9KTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2Un
LCBmdW5jdGlvbihldnQpIHsKKyAgICB2YXIgcG9ydCA9IGV2dC5wb3J0c1swXTsKKyAgICB4aHJf
c2VuZCgnUE9TVCcsICd0ZXN0IHN0cmluZycpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcG9y
dC5wb3N0TWVzc2FnZSh7cmVzdWx0czogJ2ZpbmlzaCd9KTsgfSkKKyAgICAgIC5jYXRjaChmdW5j
dGlvbihlKSB7IHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmYWlsdXJlOicgKyBlfSk7IH0p
OworICB9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ludmFsaWQtaGVhZGVyLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9pbnZhbGlkLWhlYWRlci13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlN2YyOWQwNmZkN2U0ZjJk
Mzg1NjAzMzllYzQ0NDVlZWM1MTMyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pbnZhbGlkLWhlYWRlci13b3JrZXIuanMKQEAgLTAsMCArMSwxMiBAQAor
c2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdmFy
IHVybCA9IGV2ZW50LnJlcXVlc3QudXJsOworICAgIGlmICh1cmwuaW5kZXhPZignZHVtbXk/dGVz
dCcpID09IC0xKSB7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRo
KG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgdmFyIGhlYWRlcnMgPSBu
ZXcgSGVhZGVyczsKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoJ2ZvbycsICdmb28nKTsKKyAgICAg
ICAgaGVhZGVycy5hcHBlbmQoJ2ZvbycsICdiXDByJyk7IC8vIGhlYWRlciB2YWx1ZSB3aXRoIGEg
bnVsbCBieXRlCisgICAgICAgIHJlc29sdmUobmV3IFJlc3BvbnNlKCdoZWxsbyB3b3JsZCcsIHsn
aGVhZGVycyc6IGhlYWRlcnN9KSk7CisgICAgICB9KSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lzby1sYXRpbjEtaGVhZGVyLWlmcmFtZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2lzby1sYXRpbjEtaGVhZGVyLWlmcmFtZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjkwZTNmNjk4Y2ZhNmJiNmQxMmVlODE4NDk1M2I0ZjdmYmRlNzE5ZTQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaXNvLWxhdGluMS1o
ZWFkZXItaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPHNjcmlwdD4KK2Z1bmN0aW9uIHho
cl9zZW5kKG1ldGhvZCwgZGF0YSkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVz
b2x2ZSwgcmVqZWN0KSB7CisgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Cisg
ICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
IH07CisgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICByZWplY3QoJ1hI
UiBtdXN0IHN1Y2NlZWQuJyk7CisgICAgICB9OworICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICd0
ZXh0JzsKKyAgICAgIHhoci5vcGVuKG1ldGhvZCwgJy4vZHVtbXk/dGVzdCcsIHRydWUpOworICAg
ICAgeGhyLnNlbmQoZGF0YSk7CisgICAgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7CisgICAgdmFyIHBvcnQgPSBldnQucG9ydHNbMF07
CisgICAgeGhyX3NlbmQoJ1BPU1QnLCAndGVzdCBzdHJpbmcnKQorICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7IHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmaW5pc2gnfSk7IH0pCisgICAgICAu
Y2F0Y2goZnVuY3Rpb24oZSkgeyBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmFpbHVyZTon
ICsgZX0pOyB9KTsKKyAgfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9pc28tbGF0aW4xLWhlYWRlci13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvaXNvLWxhdGluMS1oZWFkZXItd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNh
YjVjN2U3MzE4NmI0OWQ4OGVhYWU5NzFjZThjMmE2YmVmNWQ0MzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaXNvLWxhdGluMS1oZWFkZXItd29ya2VyLmpz
CkBAIC0wLDAgKzEsMTIgQEAKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlv
bihldmVudCkgeworICAgIHZhciB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDsKKyAgICBpZiAodXJs
LmluZGV4T2YoJ2R1bW15P3Rlc3QnKSA9PSAtMSkgeworICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAg
ICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVyczsKKyAgICAgICAgaGVhZGVycy5hcHBlbmQo
J1RFU1QnLCAnw5/DgMK/Jyk7IC8vIGhlYWRlciB2YWx1ZSBob2xkcyB0aGUgTGF0aW4xIChJU084
ODU5LTEpIHN0cmluZy4KKyAgICAgICAgcmVzb2x2ZShuZXcgUmVzcG9uc2UoJ2hlbGxvIHdvcmxk
JywgeydoZWFkZXJzJzogaGVhZGVyc30pKTsKKyAgICAgIH0pKTsKKyAgfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbGluay1oZWFkZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbGluay1oZWFkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVhMzdjMzEyMTg4
MmU3ZDljOGU3MjlhMTYxOWRiMTZhYjQ0ZmIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9saW5rLWhlYWRlci5weQpAQCAtMCwwICsxLDQgQEAKK2RlZiBt
YWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBpZiAnTGluaycgaW4gcmVxdWVzdC5HRVQ6Cisg
ICAgICAgIHJldHVybiBbKCdMaW5rJywgcmVxdWVzdC5HRVRbJ0xpbmsnXSldLCAiIgorICAgIHJl
dHVybiBbXSwgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9sb2Fk
X3dvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9sb2FkX3dvcmtlci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYzgwZjI1YTNkYjI4MzFmNGIxZTU2MzNhNDU1NDgxZDdhMzViNGM3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2xvYWRfd29ya2VyLmpz
CkBAIC0wLDAgKzEsMjkgQEAKK3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2dCkgeworICAg
IGlmIChldnQuZGF0YSA9PSAieGhyIikgeworICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBS
ZXF1ZXN0KCk7CisgICAgICAgIHhoci5vcGVuKCJHRVQiLCAic3ludGhlc2l6ZWQtcmVzcG9uc2Uu
dHh0IiwgdHJ1ZSk7CisgICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAidGV4dCI7CisgICAgICAg
IHhoci5zZW5kKCk7CisgICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZXZ0KSB7CisgICAg
ICAgICAgICBwb3N0TWVzc2FnZSh4aHIucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgfTsKKyAgICAg
ICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHBvc3RNZXNzYWdlKCJY
SFIgZmFpbGVkISIpOworICAgICAgICB9OworICAgIH0gZWxzZSBpZiAoZXZ0LmRhdGEgPT0gImZl
dGNoIikgeworICAgICAgICBmZXRjaCgic3ludGhlc2l6ZWQtcmVzcG9uc2UudHh0IikKKyAgICAg
ICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAgICByZXR1cm4gcmVz
cG9uc2UudGV4dCgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbihk
YXRhKSB7CisgICAgICAgICAgICAgIHBvc3RNZXNzYWdlKGRhdGEpOworICAgICAgICAgICAgfSkK
KyAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAgcG9zdE1l
c3NhZ2UoIkZldGNoIGZhaWxlZCEiKTsKKyAgICAgICAgICAgIH0pOworICAgIH0gZWxzZSBpZiAo
ZXZ0LmRhdGEgPT0gImltcG9ydFNjcmlwdHMiKSB7CisgICAgICAgIGltcG9ydFNjcmlwdHMoInN5
bnRoZXNpemVkLXJlc3BvbnNlLmpzIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGhyb3cgIlVu
ZXhwZWN0ZWQgbWVzc2FnZSEgIiArIGV2dC5kYXRhOworICAgIH0KK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbG9hZGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNhYmNlNjlmOGU4NDljM2FiYmNh
ZDQ4ZjUxNjBlOWZmNjM3M2E1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9sb2FkZWQuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxzY3JpcHQ+CithZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgIG9wZW5lci5wb3N0TWVzc2FnZSh7IHR5
cGU6ICdMT0FERUQnIH0sICcqJyk7Cit9KTsKKworYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNob3cn
LCBmdW5jdGlvbigpIHsKKyAgb3BlbmVyLnBvc3RNZXNzYWdlKHsgdHlwZTogJ1BBR0VTSE9XJyB9
LCAnKicpOworfSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L21hbGZvcm1lZC13b3JrZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTAxNTIxZmYzZTM3ZGZjNzViYzYxZjMy
MTNjODI4MjQxMGY5MWZiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5CkBAIC0wLDAgKzEsMTAgQEAKK2RlZiBtYWluKHJl
cXVlc3QsIHJlc3BvbnNlKToKKyAgICBoZWFkZXJzID0gWygiQ29udGVudC1UeXBlIiwgImFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiKV0KKworICAgIGJvZHkgPSB7J3BhcnNlLWVycm9yJzogJ3ZhciBm
b28gPSBmdW5jdGlvbigpIHs7JywKKyAgICAgICAgICAgICd1bmRlZmluZWQtZXJyb3InOiAnZm9v
LmJhciA9IDQyOycsCisgICAgICAgICAgICAndW5jYXVnaHQtZXhjZXB0aW9uJzogJ3Rocm93IG5l
dyBET01FeGNlcHRpb24oIkFib3J0RXJyb3IiKTsnLAorICAgICAgICAgICAgJ2NhdWdodC1leGNl
cHRpb24nOiAndHJ5IHsgdGhyb3cgbmV3IEVycm9yOyB9IGNhdGNoKGUpIHt9JywKKyAgICAgICAg
ICAgICdpbXBvcnQtbWFsZm9ybWVkLXNjcmlwdCc6ICdpbXBvcnRTY3JpcHRzKCJtYWxmb3JtZWQt
d29ya2VyLnB5P3BhcnNlLWVycm9yIik7JywKKyAgICAgICAgICAgICdpbXBvcnQtbm8tc3VjaC1z
Y3JpcHQnOiAnaW1wb3J0U2NyaXB0cygibm8tc3VjaC1zY3JpcHQuanMiKTsnfVtyZXF1ZXN0LnVy
bF9wYXJ0cy5xdWVyeV0KKyAgICByZXR1cm4gaGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21pbWUtdHlwZS13b3JrZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbWltZS10eXBlLXdvcmtlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTY2ODRk
ZTVjYjZhZTYwMzU2YzIyNTE5MTc0NGI0ZWY0MzNjMmFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL21pbWUtdHlwZS13b3JrZXIucHkKQEAgLTAsMCArMSw0
IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaWYgJ21pbWUnIGluIHJlcXVl
c3QuR0VUOgorICAgICAgICByZXR1cm4gWygnQ29udGVudC1UeXBlJywgcmVxdWVzdC5HRVRbJ21p
bWUnXSldLCAiIgorICAgIHJldHVybiBbXSwgIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9taW50LW5ldy13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvbWludC1uZXctd29ya2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiZTcwMzA0ZDg5YzM4MzU2NjNk
NmFiOTc4MmE0NDQ4MjEzNGFmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbWludC1uZXctd29ya2VyLnB5CkBAIC0wLDAgKzEsMjUgQEAKK2ltcG9ydCB0
aW1lCisKK2JvZHkgPSAnJycKK29uYWN0aXZhdGUgPSAoZSkgPT4gZS53YWl0VW50aWwoY2xpZW50
cy5jbGFpbSgpKTsKK3ZhciByZXNvbHZlX3dhaXRfdW50aWw7Cit2YXIgd2FpdF91bnRpbCA9IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHJlc29sdmVfd2FpdF91bnRpbCA9IHJlc29sdmU7
CisgIH0pOworb25tZXNzYWdlID0gKGUpID0+IHsKKyAgICBpZiAoZS5kYXRhID09ICd3YWl0JykK
KyAgICAgIGUud2FpdFVudGlsKHdhaXRfdW50aWwpOworICAgIGlmIChlLmRhdGEgPT0gJ2dvJykK
KyAgICAgIHJlc29sdmVfd2FpdF91bnRpbCgpOworICB9OycnJworCitkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUs
IG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAgICAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUn
KSwKKyAgICAgICAgICAgICAgICgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2phdmFzY3Jp
cHQnKV0KKworICAgIHNraXBXYWl0aW5nID0gJycKKyAgICBpZiAnc2tpcC13YWl0aW5nJyBpbiBy
ZXF1ZXN0LkdFVDoKKyAgICAgIHNraXBXYWl0aW5nID0gJ3NraXBXYWl0aW5nKCk7JworCisgICAg
cmV0dXJuIGhlYWRlcnMsICcvKiAlcyAlcyAqLyAlcyAlcycgJSAodGltZS50aW1lKCksIHRpbWUu
Y2xvY2soKSwgc2tpcFdhaXRpbmcsIGJvZHkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbmF2aWdhdGUtd2luZG93LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9uYXZpZ2F0ZS13aW5kb3ctd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NjE3NDM5
ZmM2MGZhZmYyNmJhNDUyMmM3Yzk1YjAyZjc4NzY5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGUtd2luZG93LXdvcmtlci5qcwpAQCAtMCww
ICsxLDIxIEBACithZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7Cisg
IGlmIChldnQuZGF0YS50eXBlID09PSAnR0VUX0NMSUVOVFMnKSB7CisgICAgY2xpZW50cy5tYXRj
aEFsbChldnQuZGF0YS5vcHRzKS50aGVuKGZ1bmN0aW9uKGNsaWVudExpc3QpIHsKKyAgICAgIHZh
ciByZXN1bHRMaXN0ID0gY2xpZW50TGlzdC5tYXAoZnVuY3Rpb24oYykgeworICAgICAgICByZXR1
cm4geyB1cmw6IGMudXJsLCBmcmFtZVR5cGU6IGMuZnJhbWVUeXBlLCBpZDogYy5pZCB9OworICAg
ICAgfSk7CisgICAgICBldnQuc291cmNlLnBvc3RNZXNzYWdlKHsgdHlwZTogJ3N1Y2Nlc3MnLCBk
ZXRhaWw6IHJlc3VsdExpc3QgfSk7CisgICAgfSkuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CisgICAg
ICBldnQuc291cmNlLnBvc3RNZXNzYWdlKHsKKyAgICAgICAgdHlwZTogJ2ZhaWx1cmUnLAorICAg
ICAgICBkZXRhaWw6ICdtYXRjaEFsbCgpIHJlamVjdGVkIHdpdGggIicgKyBlcnIgKyAnIicKKyAg
ICAgIH0pOworICAgIH0pOworICAgIHJldHVybjsKKyAgfQorCisgIGV2dC5zb3VyY2UucG9zdE1l
c3NhZ2UoeworICAgIHR5cGU6ICdmYWlsdXJlJywKKyAgICBkZXRhaWw6ICdVbmV4cGVjdGVkIG1l
c3NhZ2UgdHlwZSAiJyArIGV2dC5kYXRhLnR5cGUgKyAnIicKKyAgfSk7Cit9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LWJvZHkt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJl
Y3QtYm9keS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzlmMTFiYWY4Y2I5NjU5ODhjZjZhMmYwYWJm
OTE0YjE0ODRlYzYzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LWJvZHktd29ya2VyLmpzCkBAIC0wLDAgKzEsMTEgQEAK
K3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAgIGV2
ZW50LnJlc3BvbmRXaXRoKAorICAgICAgICBmZXRjaChldmVudC5yZXF1ZXN0KQorICAgICAgICAg
IC50aGVuKAorICAgICAgICAgICAgICBmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgICAg
ICAgIHJldHVybiByZXNwb25zZTsKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgZnVu
Y3Rpb24oZXJyb3IpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCdFcnJv
cjonICsgZXJyb3IpOworICAgICAgICAgICAgICB9KSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3QtYm9keS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LWJvZHkucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjAxZjgxOGNmZjZhZDQ3YTJjMjMyZjRmMGIxMjdkNzU2Y2IwZjZjMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGly
ZWN0LWJvZHkucHkKQEAgLTAsMCArMSw5IEBACitpbXBvcnQgb3MKKworZmlsZW5hbWUgPSBvcy5w
YXRoLmJhc2VuYW1lKF9fZmlsZV9fKQorCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6Cisg
ICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gJ1BPU1QnOgorICAgICAgICByZXR1cm4gMzAyLCBbKCdM
b2NhdGlvbicsICcuLyVzP3JlZGlyZWN0JyAlIGZpbGVuYW1lKV0sICcnCisKKyAgICByZXR1cm4g
WygnQ29udGVudC1UeXBlJywgJ3RleHQvcGxhaW4nKV0sIHJlcXVlc3QucmVxdWVzdF9wYXRoCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVj
dC1vdGhlci1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0
aW9uLXJlZGlyZWN0LW90aGVyLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2ODhjOGE4MDAwYmQx
NGY5MTBlNDQzOTZmNzViNmI2OTdiNmE0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdGhlci1vcmlnaW4uaHRtbApA
QCAtMCwwICsxLDY2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dl
dC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0ZXN0LWhlbHBlcnMu
c3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5m
bygpOwordmFyIFNDT1BFID0gJ25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUxLnB5JzsKK3ZhciBT
Q1JJUFQgPSAnbmF2aWdhdGlvbi1yZWRpcmVjdC13b3JrZXIuanMnOworCit2YXIgcmVnaXN0cmF0
aW9uOwordmFyIHdvcmtlcjsKK3ZhciB3YWl0X2Zvcl93b3JrZXJfcHJvbWlzZSA9IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbihTQ09QRSkKKyAgLnRoZW4oZnVuY3Rpb24o
cmVnKSB7CisgICAgICBpZiAocmVnKQorICAgICAgICByZXR1cm4gcmVnLnVucmVnaXN0ZXIoKTsK
KyAgICB9KQorICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5yZWdpc3RlcihTQ1JJUFQsIHtzY29wZTogU0NPUEV9KTsKKyAgICB9KQorICAu
dGhlbihmdW5jdGlvbihyZWcpIHsKKyAgICAgIHJlZ2lzdHJhdGlvbiA9IHJlZzsKKyAgICAgIHdv
cmtlciA9IHJlZy5pbnN0YWxsaW5nOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9u
KHJlc29sdmUpIHsKKyAgICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFu
Z2UnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PSAnYWN0
aXZhdGVkJykKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CisKK2Z1bmN0aW9uIHNlbmRfcmVzdWx0KG1lc3NhZ2VfaWQsIHJl
c3VsdCkgeworICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKAorICAgICAge2lkOiBtZXNzYWdl
X2lkLCByZXN1bHQ6IHJlc3VsdH0sCisgICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddKTsK
K30KKworZnVuY3Rpb24gZ2V0X2ludGVyY2VwdGVkX3VybHMod29ya2VyKSB7CisgIHJldHVybiBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBN
ZXNzYWdlQ2hhbm5lbCgpOworICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihtc2cpIHsgcmVzb2x2ZShtc2cuZGF0YS51cmxzKTsgfTsKKyAgICAgIHdvcmtlci5wb3N0TWVz
c2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgfSk7Cit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25fbWVzc2FnZSwgZmFsc2Up
OworCitmdW5jdGlvbiBvbl9tZXNzYWdlKGUpIHsKKyAgaWYgKGUub3JpZ2luICE9IGhvc3RfaW5m
b1snSFRUUFNfT1JJR0lOJ10pIHsKKyAgICBjb25zb2xlLmVycm9yKCdpbnZhbGlkIG9yaWdpbjog
JyArIGUub3JpZ2luKTsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKGUuZGF0YS5tZXNzYWdlID09
ICd3YWl0X2Zvcl93b3JrZXInKSB7CisgICAgd2FpdF9mb3Jfd29ya2VyX3Byb21pc2UudGhlbihm
dW5jdGlvbigpIHsgc2VuZF9yZXN1bHQoZS5kYXRhLmlkLCAnb2snKTsgfSk7CisgIH0gZWxzZSBp
ZiAoZS5kYXRhLm1lc3NhZ2UgPT0gJ2dldF9pbnRlcmNlcHRlZF91cmxzJykgeworICAgIGdldF9p
bnRlcmNlcHRlZF91cmxzKHdvcmtlcikKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHVybHMpIHsKKyAg
ICAgICAgICBzZW5kX3Jlc3VsdChlLmRhdGEuaWQsIHVybHMpOworICAgICAgICB9KTsKKyAgfSBl
bHNlIGlmIChlLmRhdGEubWVzc2FnZSA9PSAndW5yZWdpc3RlcicpIHsKKyAgICByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBzZW5k
X3Jlc3VsdChlLmRhdGEuaWQsICdvaycpOworICAgICAgICB9KTsKKyAgfQorfQorCis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJl
ZGlyZWN0LW91dC1zY29wZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0
aW9uLXJlZGlyZWN0LW91dC1zY29wZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Q1ZWYxODUxNmZhYjI3ZDQ4
ZjRkZjFlMzNhNmZkZmU5YTRkZjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtb3V0LXNjb3BlLnB5CkBAIC0wLDAgKzEs
MjAgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBpZiAidXJsIiBpbiByZXF1
ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycyA9IFsoIkxvY2F0aW9uIiwgcmVxdWVzdC5HRVRbInVy
bCJdKV0KKyAgICAgICAgcmV0dXJuIDMwMiwgaGVhZGVycywgJycKKworICAgIHN0YXR1cyA9IDIw
MAorCisgICAgaWYgIm5vTG9jYXRpb25SZWRpcmVjdCIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAg
IHN0YXR1cyA9IDMwMgorCisgICAgcmV0dXJuIHN0YXR1cywgW10sICcnJworPCFET0NUWVBFIGh0
bWw+Cis8c2NyaXB0PgorICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKAorICAgICAgeworICAg
ICAgICBpZDogJ2xhc3RfdXJsJywKKyAgICAgICAgcmVzdWx0OiBsb2NhdGlvbi5ocmVmCisgICAg
ICB9LCAnKicpOworPC9zY3JpcHQ+CisnJycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
Y2Q1ZWYxODUxNmZhYjI3ZDQ4ZjRkZjFlMzNhNmZkZmU5YTRkZjgwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qtc2NvcGUx
LnB5CkBAIC0wLDAgKzEsMjAgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBp
ZiAidXJsIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycyA9IFsoIkxvY2F0aW9uIiwg
cmVxdWVzdC5HRVRbInVybCJdKV0KKyAgICAgICAgcmV0dXJuIDMwMiwgaGVhZGVycywgJycKKwor
ICAgIHN0YXR1cyA9IDIwMAorCisgICAgaWYgIm5vTG9jYXRpb25SZWRpcmVjdCIgaW4gcmVxdWVz
dC5HRVQ6CisgICAgICAgIHN0YXR1cyA9IDMwMgorCisgICAgcmV0dXJuIHN0YXR1cywgW10sICcn
JworPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgorICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdl
KAorICAgICAgeworICAgICAgICBpZDogJ2xhc3RfdXJsJywKKyAgICAgICAgcmVzdWx0OiBsb2Nh
dGlvbi5ocmVmCisgICAgICB9LCAnKicpOworPC9zY3JpcHQ+CisnJycKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjb3BlMi5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wY2Q1ZWYxODUxNmZhYjI3ZDQ4ZjRkZjFlMzNhNmZkZmU5YTRkZjgwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24t
cmVkaXJlY3Qtc2NvcGUyLnB5CkBAIC0wLDAgKzEsMjAgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJl
c3BvbnNlKToKKyAgICBpZiAidXJsIiBpbiByZXF1ZXN0LkdFVDoKKyAgICAgICAgaGVhZGVycyA9
IFsoIkxvY2F0aW9uIiwgcmVxdWVzdC5HRVRbInVybCJdKV0KKyAgICAgICAgcmV0dXJuIDMwMiwg
aGVhZGVycywgJycKKworICAgIHN0YXR1cyA9IDIwMAorCisgICAgaWYgIm5vTG9jYXRpb25SZWRp
cmVjdCIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIHN0YXR1cyA9IDMwMgorCisgICAgcmV0dXJu
IHN0YXR1cywgW10sICcnJworPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgorICB3aW5kb3cucGFy
ZW50LnBvc3RNZXNzYWdlKAorICAgICAgeworICAgICAgICBpZDogJ2xhc3RfdXJsJywKKyAgICAg
ICAgcmVzdWx0OiBsb2NhdGlvbi5ocmVmCisgICAgICB9LCAnKicpOworPC9zY3JpcHQ+CisnJycK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGly
ZWN0LXRvLWh0dHAtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2
aWdhdGlvbi1yZWRpcmVjdC10by1odHRwLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwZTI3YzYz
MGQyOWM2OTQyOTUzNzRlODM2ODBkYTU5OTQ0YjA4YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC10by1odHRwLWlmcmFt
ZS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3Qt
aGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBTQ09QRSA9ICcuL3JlZGly
ZWN0LnB5P1JlZGlyZWN0PScgKyBlbmNvZGVVUkkoJ2h0dHA6Ly9leGFtcGxlLmNvbScpOwordmFy
IFNDUklQVCA9ICduYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAtd29ya2VyLmpzJzsKK3ZhciBo
b3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdl
dFJlZ2lzdHJhdGlvbihTQ09QRSkKKyAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Cisg
ICAgICBpZiAocmVnaXN0cmF0aW9uKQorICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKTsKKyAgICB9KQorICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgIHJldHVybiBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcihTQ1JJUFQsIHtzY29wZTogU0NPUEV9KTsKKyAg
ICB9KQorICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgIHJldHVybiBuZXcg
UHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uLmFkZEV2
ZW50TGlzdGVuZXIoJ3VwZGF0ZWZvdW5kJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJl
c29sdmUocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcpOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0pCisgIC50aGVuKGZ1bmN0aW9uKHdvcmtlcikgeworICAgICAgd29ya2VyLmFk
ZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgb25fc3RhdGVfY2hhbmdlKTsKKyAgICB9KQor
ICAuY2F0Y2goZnVuY3Rpb24ocmVhc29uKSB7CisgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNz
YWdlKHtyZXN1bHRzOiAnRkFJTFVSRTogJyArIHJlYXNvbi5tZXNzYWdlfSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSk7CisgICAgIH0p
OworCitmdW5jdGlvbiBvbl9zdGF0ZV9jaGFuZ2UoZXZlbnQpIHsKKyAgaWYgKGV2ZW50LnRhcmdl
dC5zdGF0ZSAhPSAnYWN0aXZhdGVkJykKKyAgICByZXR1cm47CisgIHdpdGhfaWZyYW1lKFNDT1BF
LCB7YXV0b19yZW1vdmU6IGZhbHNlfSkKKyAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAg
ICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKAorICAgICAgICAgICAge3Jlc3VsdHM6IGZy
YW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LnRleHRDb250ZW50fSwKKyAgICAgICAgICAgIGhvc3Rf
aW5mb1snSFRUUFNfT1JJR0lOJ10pOworICAgICAgfSk7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0
dHAtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVk
aXJlY3QtdG8taHR0cC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYyYThhZTFkNzQ5YmI1OGU1NDdi
ZGI1MTFiODk1YjBlNmJkZWU0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9uYXZpZ2F0aW9uLXJlZGlyZWN0LXRvLWh0dHAtd29ya2VyLmpzCkBAIC0wLDAg
KzEsMjIgQEAKK2ltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnKTsKKwor
c2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZXZl
bnQucmVzcG9uZFdpdGgobmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgUHJv
bWlzZS5yZXNvbHZlKCkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICAgIGV2ZW50LnJlcXVlc3QucmVkaXJlY3QsICdt
YW51YWwnLAorICAgICAgICAgICAgICAgICdUaGUgcmVkaXJlY3QgbW9kZSBvZiBuYXZpZ2F0aW9u
IHJlcXVlc3QgbXVzdCBiZSBtYW51YWwuJyk7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2goZXZl
bnQucmVxdWVzdCk7CisgICAgICAgICAgfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9u
c2UpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgICAgcmVzcG9u
c2UudHlwZSwgJ29wYXF1ZXJlZGlyZWN0JywKKyAgICAgICAgICAgICAgICAnVGhlIHJlc3BvbnNl
IHR5cGUgb2YgMzAyIHJlc3BvbnNlIG11c3QgYmUgb3BhcXVlcmVkaXJlY3QuJyk7CisgICAgICAg
ICAgICByZXNvbHZlKG5ldyBSZXNwb25zZSgnT0snKSk7CisgICAgICAgICAgfSkKKyAgICAgICAg
LmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7CisgICAgICAgICAgICByZXNvbHZlKG5ldyBSZXNwb25z
ZSgnRmFpbGVkIGluIFNXOiAnICsgZXJyb3IpKTsKKyAgICAgICAgICB9KTsKKyAgICB9KSk7Cisg
IH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24t
cmVkaXJlY3Qtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRp
b24tcmVkaXJlY3Qtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMTViM2ZmMTEzZmJjMDc5MGFlZDdh
MTY2MzJlYzYxMWM5YWEzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC13b3JrZXIuanMKQEAgLTAsMCArMSw3NSBAQAor
Ly8gV2Ugc3RvcmUgYW4gZW1wdHkgcmVzcG9uc2UgZm9yIGVhY2ggZmV0Y2ggZXZlbnQgcmVxdWVz
dCB3ZSBzZWUKKy8vIGluIHRoaXMgQ2FjaGUgb2JqZWN0IHNvIHdlIGNhbiBnZXQgdGhlIGxpc3Qg
b2YgdXJscyBpbiB0aGUKKy8vIG1lc3NhZ2UgZXZlbnQuCit2YXIgY2FjaGVOYW1lID0gJ3VybHMt
JyArIHNlbGYucmVnaXN0cmF0aW9uLnNjb3BlOworCit2YXIgd2FpdFVudGlsUHJvbWlzZUxpc3Qg
PSBbXTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICB2YXIgdXJsczsKKyAgICBldmVudC53YWl0VW50aWwoUHJvbWlzZS5hbGwod2FpdFVu
dGlsUHJvbWlzZUxpc3QpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICB3YWl0VW50aWxQcm9taXNl
TGlzdCA9IFtdOworICAgICAgcmV0dXJuIGNhY2hlcy5vcGVuKGNhY2hlTmFtZSk7CisgICAgfSku
dGhlbihmdW5jdGlvbihjYWNoZSkgeworICAgICAgcmV0dXJuIGNhY2hlLmtleXMoKTsKKyAgICB9
KS50aGVuKGZ1bmN0aW9uKHJlcXVlc3RMaXN0KSB7CisgICAgICB1cmxzID0gcmVxdWVzdExpc3Qu
bWFwKGZ1bmN0aW9uKHJlcXVlc3QpIHsgcmV0dXJuIHJlcXVlc3QudXJsOyB9KTsKKyAgICAgIHJl
dHVybiBjYWNoZXMuZGVsZXRlKGNhY2hlTmFtZSk7CisgICAgfSkudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgIGV2ZW50LmRhdGEucG9ydC5wb3N0TWVzc2FnZSh7dXJsczogdXJsc30pOworICAgIH0p
KTsKKyAgfSk7CisKK2Z1bmN0aW9uIGdldF9xdWVyeV9wYXJhbXModXJsKSB7CisgIHZhciBzZWFy
Y2ggPSAobmV3IFVSTCh1cmwpKS5zZWFyY2g7CisgIGlmICghc2VhcmNoKSB7CisgICAgcmV0dXJu
IHt9OworICB9CisgIHZhciByZXQgPSB7fTsKKyAgdmFyIHBhcmFtcyA9IHNlYXJjaC5zdWJzdHJp
bmcoMSkuc3BsaXQoJyYnKTsKKyAgcGFyYW1zLmZvckVhY2goZnVuY3Rpb24ocGFyYW0pIHsKKyAg
ICAgIHZhciBlbGVtZW50ID0gcGFyYW0uc3BsaXQoJz0nKTsKKyAgICAgIHJldFtkZWNvZGVVUklD
b21wb25lbnQoZWxlbWVudFswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KGVsZW1lbnRbMV0pOwor
ICAgIH0pOworICByZXR1cm4gcmV0OworfQorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNo
JywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICB2YXIgd2FpdFVudGlsUHJvbWlzZSA9IGNhY2hlcy5v
cGVuKGNhY2hlTmFtZSkudGhlbihmdW5jdGlvbihjYWNoZSkgeworICAgICAgcmV0dXJuIGNhY2hl
LnB1dChldmVudC5yZXF1ZXN0LCBuZXcgUmVzcG9uc2UoKSk7CisgICAgfSk7CisgICAgZXZlbnQu
d2FpdFVudGlsKHdhaXRVbnRpbFByb21pc2UpOworCisgICAgdmFyIHBhcmFtcyA9IGdldF9xdWVy
eV9wYXJhbXMoZXZlbnQucmVxdWVzdC51cmwpOworICAgIGlmICghcGFyYW1zWydzdyddKSB7Cisg
ICAgICAvLyBUbyBhdm9pZCByYWNlcywgYWRkIHRoZSB3YWl0VW50aWwoKSBwcm9taXNlIHRvIG91
ciBnbG9iYWwgbGlzdC4KKyAgICAgIC8vIElmIHdlIGdldCBhIG1lc3NhZ2UgZXZlbnQgYmVmb3Jl
IHdlIGZpbmlzaCBoZXJlLCBpdCB3aWxsIHdhaXQKKyAgICAgIC8vIHRoZXNlIHByb21pc2VzIHRv
IGNvbXBsZXRlIGJlZm9yZSBwcm9jZWVkaW5nIHRvIHJlYWQgZnJvbSB0aGUKKyAgICAgIC8vIGNh
Y2hlLgorICAgICAgd2FpdFVudGlsUHJvbWlzZUxpc3QucHVzaCh3YWl0VW50aWxQcm9taXNlKTsK
KyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBldmVudC5yZXNwb25kV2l0aCh3YWl0VW50aWxQ
cm9taXNlLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICBpZiAocGFyYW1zWydzdyddID09ICdnZW4n
KSB7CisgICAgICAgIHJldHVybiBSZXNwb25zZS5yZWRpcmVjdChwYXJhbXNbJ3VybCddKTsKKyAg
ICAgIH0gZWxzZSBpZiAocGFyYW1zWydzdyddID09ICdmZXRjaCcpIHsKKyAgICAgICAgcmV0dXJu
IGZldGNoKGV2ZW50LnJlcXVlc3QpOworICAgICAgfSBlbHNlIGlmIChwYXJhbXNbJ3N3J10gPT0g
J29wYXF1ZScpIHsKKyAgICAgICAgcmV0dXJuIGZldGNoKG5ldyBSZXF1ZXN0KGV2ZW50LnJlcXVl
c3QudXJsLCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpOworICAgICAgfSBlbHNlIGlmIChwYXJhbXNb
J3N3J10gPT0gJ29wYXF1ZVRocm91Z2hDYWNoZScpIHsKKyAgICAgICAgdmFyIHVybCA9IGV2ZW50
LnJlcXVlc3QudXJsOworICAgICAgICB2YXIgY2FjaGU7CisgICAgICAgIHJldHVybiBjYWNoZXMu
ZGVsZXRlKHVybCkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIHNlbGYuY2Fj
aGVzLm9wZW4odXJsKTsgfSkKKyAgICAgICAgICAudGhlbihmdW5jdGlvbihjKSB7CisgICAgICAg
ICAgICBjYWNoZSA9IGM7CisgICAgICAgICAgICByZXR1cm4gZmV0Y2gobmV3IFJlcXVlc3QodXJs
LCB7cmVkaXJlY3Q6ICdtYW51YWwnfSkpOworICAgICAgICAgIH0pCisgICAgICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVzKSB7IHJldHVybiBjYWNoZS5wdXQoZXZlbnQucmVxdWVzdCwgcmVzKTsgfSkK
KyAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsgcmV0dXJuIGNhY2hlLm1hdGNoKHVybCk7IH0p
OworICAgICAgfQorCisgICAgICAvLyB1bmV4cGVjdGVkLi4uIHRyaWdnZXIgYW4gaW50ZXJjZXB0
aW9uIGZhaWx1cmUKKyAgICB9KSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL25vdGlmaWNhdGlvbl9pY29uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL25vdGlmaWNhdGlvbl9pY29uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxN2FiMGEwZGVlMjVhYThk
NDk5N2UxMjE4OTU1MTQzNmMxYzY4YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbm90aWZpY2F0aW9uX2ljb24ucHkKQEAgLTAsMCArMSw5IEBACitpbXBv
cnQgdXJscGFyc2UKKworZGVmIG1haW4ocmVxLCByZXMpOgorICBxc19jb29raWVfdmFsID0gdXJs
cGFyc2UucGFyc2VfcXMocmVxLnVybF9wYXJ0cy5xdWVyeSkuZ2V0KCdzZXQtY29va2llLW5vdGlm
aWNhdGlvbicpCisKKyAgaWYgcXNfY29va2llX3ZhbDoKKyAgICByZXMuc2V0X2Nvb2tpZSgnbm90
aWZpY2F0aW9uJywgcXNfY29va2llX3ZhbFswXSkKKworICByZXR1cm4gJ25vdCByZWFsbHkgYW4g
aWNvbicKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvb25hY3RpdmF0ZS10aHJvdy1lcnJvci1mcm9tLW5lc3RlZC1ldmVu
dC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25hY3RpdmF0ZS10aHJv
dy1lcnJvci1mcm9tLW5lc3RlZC1ldmVudC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M5NzAxNGZk
MDQyYWZmYmQzOGQ3N2ZhNTM4ZDhhNTg0ZDdjNzJmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9vbmFjdGl2YXRlLXRocm93LWVycm9yLWZyb20tbmVzdGVk
LWV2ZW50LXdvcmtlci5qcwpAQCAtMCwwICsxLDEzIEBACit2YXIgbWF4X25lc3RpbmdfbGV2ZWwg
PSA4OworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkg
eworICAgIHZhciBsZXZlbCA9IGV2ZW50LmRhdGE7CisgICAgaWYgKGxldmVsIDwgbWF4X25lc3Rp
bmdfbGV2ZWwpCisgICAgICBkaXNwYXRjaEV2ZW50KG5ldyBNZXNzYWdlRXZlbnQoJ21lc3NhZ2Un
LCB7IGRhdGE6IGxldmVsICsgMSB9KSk7CisgICAgdGhyb3cgRXJyb3IoJ2Vycm9yIGF0IGxldmVs
ICcgKyBsZXZlbCk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2FjdGl2YXRlJywg
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBkaXNwYXRjaEV2ZW50KG5ldyBNZXNzYWdlRXZlbnQoJ21l
c3NhZ2UnLCB7IGRhdGE6IDEgfSkpOworICB9KTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL29uYWN0aXZhdGUtdGhyb3ctZXJyb3ItdGhlbi1jYW5jZWwtd29ya2Vy
LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uYWN0aXZhdGUtdGhyb3ctZXJyb3It
dGhlbi1jYW5jZWwtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiZDlkMzE4YjI0MWQ3MDBlYThmMDM5
OTM5NjIwMDM4MTIzM2QyODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvb25hY3RpdmF0ZS10aHJvdy1lcnJvci10aGVuLWNhbmNlbC13b3JrZXIuanMKQEAg
LTAsMCArMSwzIEBACitzZWxmLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeyByZXR1cm4gdHJ1
ZTsgfTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIGZ1bmN0aW9uKGV2ZW50
KSB7IHRocm93IG5ldyBFcnJvcigpOyB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9vbmFjdGl2YXRlLXRocm93LWVycm9yLXRoZW4tcHJldmVudC1kZWZhdWx0LXdv
cmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vbmFjdGl2YXRlLXRocm93LWVy
cm9yLXRoZW4tcHJldmVudC1kZWZhdWx0LXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTZjOTUxMTM5
MTdkOGYxOGE3YjUxMGQwMWMzMDczNzNiODhlNWQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL29uYWN0aXZhdGUtdGhyb3ctZXJyb3ItdGhlbi1wcmV2ZW50
LWRlZmF1bHQtd29ya2VyLmpzCkBAIC0wLDAgKzEsNyBAQAorLy8gRW5zdXJlIHdlIGNhbiBoYW5k
bGUgbXVsdGlwbGUgZXJyb3IgaGFuZGxlcnMuIE9uZSBlcnJvciBoYW5kbGVyCisvLyBjYWxsaW5n
IHByZXZlbnREZWZhdWx0IHNob3VsZCBjYXVzZSB0aGUgZXZlbnQgdG8gYmUgdHJlYXRlZCBhcwor
Ly8gaGFuZGxlZC4KK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihldmVu
dCkge30pOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGV2ZW50KSB7
IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IH0pOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdlcnJv
cicsIGZ1bmN0aW9uKGV2ZW50KSB7fSk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2FjdGl2YXRl
JywgZnVuY3Rpb24oZXZlbnQpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uYWN0aXZhdGUtdGhyb3ctZXJyb3Itd2l0aC1l
bXB0eS1vbmVycm9yLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vbmFj
dGl2YXRlLXRocm93LWVycm9yLXdpdGgtZW1wdHktb25lcnJvci13b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWIxMmFlODYyYzU5MDk5ZDA1NDZiNjE4M2MyZDYyNDdmMmQ5ZmUzZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vbmFjdGl2YXRlLXRocm93LWVycm9y
LXdpdGgtZW1wdHktb25lcnJvci13b3JrZXIuanMKQEAgLTAsMCArMSwyIEBACitzZWxmLmFkZEV2
ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZXZlbnQpIHt9KTsKK3NlbGYuYWRkRXZlbnRM
aXN0ZW5lcignYWN0aXZhdGUnLCBmdW5jdGlvbihldmVudCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25hY3RpdmF0ZS10
aHJvdy1lcnJvci13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25hY3Rp
dmF0ZS10aHJvdy1lcnJvci13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU4OGFjNWM0ZTc4NTJiNDc1
MmRlM2FmMjEwNTY2ZDAxMGI2MmE4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9vbmFjdGl2YXRlLXRocm93LWVycm9yLXdvcmtlci5qcwpAQCAtMCwwICsx
LDcgQEAKKy8vIEVuc3VyZSB3ZSBjYW4gaGFuZGxlIG11bHRpcGxlIGFjdGl2YXRlIGhhbmRsZXJz
LiBPbmUgaGFuZGxlciB0aHJvd2luZyBhbgorLy8gZXJyb3Igc2hvdWxkIGNhdXNlIHRoZSBldmVu
dCBkaXNwYXRjaCB0byBiZSB0cmVhdGVkIGFzIGhhdmluZyB1bmhhbmRsZWQKKy8vIGVycm9ycy4K
K3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignYWN0aXZhdGUnLCBmdW5jdGlvbihldmVudCkge30pOwor
c2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIGZ1bmN0aW9uKGV2ZW50KSB7fSk7Citz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2FjdGl2YXRlJywgZnVuY3Rpb24oZXZlbnQpIHsgdGhyb3cg
bmV3IEVycm9yKCk7IH0pOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIGZ1bmN0
aW9uKGV2ZW50KSB7fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
b25pbnN0YWxsLXRocm93LWVycm9yLWZyb20tbmVzdGVkLWV2ZW50LXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9vbmluc3RhbGwtdGhyb3ctZXJyb3ItZnJvbS1uZXN0ZWQt
ZXZlbnQtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MjlhYjYxYTM3MWJhZjcwMTc5NmU4OGQxOTc1
ZGMxYWY3N2FkY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvb25pbnN0YWxsLXRocm93LWVycm9yLWZyb20tbmVzdGVkLWV2ZW50LXdvcmtlci5qcwpAQCAt
MCwwICsxLDEyIEBACit2YXIgbWF4X25lc3RpbmdfbGV2ZWwgPSA4OworCitzZWxmLmFkZEV2ZW50
TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIHZhciBsZXZlbCA9IGV2
ZW50LmRhdGE7CisgICAgaWYgKGxldmVsIDwgbWF4X25lc3RpbmdfbGV2ZWwpCisgICAgICBkaXNw
YXRjaEV2ZW50KG5ldyBNZXNzYWdlRXZlbnQoJ21lc3NhZ2UnLCB7IGRhdGE6IGxldmVsICsgMSB9
KSk7CisgICAgdGhyb3cgRXJyb3IoJ2Vycm9yIGF0IGxldmVsICcgKyBsZXZlbCk7CisgIH0pOwor
CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBmdW5jdGlvbihldmVudCkgeworICAg
IGRpc3BhdGNoRXZlbnQobmV3IE1lc3NhZ2VFdmVudCgnbWVzc2FnZScsIHsgZGF0YTogMSB9KSk7
CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFs
bC10aHJvdy1lcnJvci10aGVuLWNhbmNlbC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvb25pbnN0YWxsLXRocm93LWVycm9yLXRoZW4tY2FuY2VsLXdvcmtlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMmM0OTlhYjFhMzc1N2FhNGQxZDU3NTI0ZWVhMzY0NjMwMmMyMjZkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFsbC10aHJvdy1l
cnJvci10aGVuLWNhbmNlbC13b3JrZXIuanMKQEAgLTAsMCArMSwzIEBACitzZWxmLm9uZXJyb3Ig
PSBmdW5jdGlvbihldmVudCkgeyByZXR1cm4gdHJ1ZTsgfTsKKworc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdpbnN0YWxsJywgZnVuY3Rpb24oZXZlbnQpIHsgdGhyb3cgbmV3IEVycm9yKCk7IH0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFsbC10aHJvdy1l
cnJvci10aGVuLXByZXZlbnQtZGVmYXVsdC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvb25pbnN0YWxsLXRocm93LWVycm9yLXRoZW4tcHJldmVudC1kZWZhdWx0LXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NjY3YzI3ODFkMDk0NzdlNTc2MTdiZWI2NDJjMzllMjQ0ZTFkMDc1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFs
bC10aHJvdy1lcnJvci10aGVuLXByZXZlbnQtZGVmYXVsdC13b3JrZXIuanMKQEAgLTAsMCArMSw3
IEBACisvLyBFbnN1cmUgd2UgY2FuIGhhbmRsZSBtdWx0aXBsZSBlcnJvciBoYW5kbGVycy4gT25l
IGVycm9yIGhhbmRsZXIKKy8vIGNhbGxpbmcgcHJldmVudERlZmF1bHQgc2hvdWxkIGNhdXNlIHRo
ZSBldmVudCB0byBiZSB0cmVhdGVkIGFzCisvLyBoYW5kbGVkLgorc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCdlcnJvcicsIGZ1bmN0aW9uKGV2ZW50KSB7fSk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIo
J2Vycm9yJywgZnVuY3Rpb24oZXZlbnQpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfSk7Citz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24oZXZlbnQpIHt9KTsKK3NlbGYu
YWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9uKGV2ZW50KSB7IHRocm93IG5ldyBF
cnJvcigpOyB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vbmlu
c3RhbGwtdGhyb3ctZXJyb3Itd2l0aC1lbXB0eS1vbmVycm9yLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9vbmluc3RhbGwtdGhyb3ctZXJyb3Itd2l0aC1lbXB0eS1vbmVy
cm9yLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjU2ZDFiZjE0OTEwMTMyZDU2NTZkZTAyMGQ2YWFm
YWY5NjIzODA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L29uaW5zdGFsbC10aHJvdy1lcnJvci13aXRoLWVtcHR5LW9uZXJyb3Itd29ya2VyLmpzCkBAIC0w
LDAgKzEsMiBAQAorc2VsZi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGV2ZW50
KSB7fSk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBmdW5jdGlvbihldmVudCkg
eyB0aHJvdyBuZXcgRXJyb3IoKTsgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvb25pbnN0YWxsLXRocm93LWVycm9yLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9vbmluc3RhbGwtdGhyb3ctZXJyb3Itd29ya2VyLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmNjMmY2ZDdlNWU3OGZkYTJjNzRlOTYxMzg5NzkzMWIxZWVhZGJiNTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25pbnN0YWxsLXRocm93LWVycm9yLXdv
cmtlci5qcwpAQCAtMCwwICsxLDcgQEAKKy8vIEVuc3VyZSB3ZSBjYW4gaGFuZGxlIG11bHRpcGxl
IGluc3RhbGwgaGFuZGxlcnMuIE9uZSBoYW5kbGVyIHRocm93aW5nIGFuCisvLyBlcnJvciBzaG91
bGQgY2F1c2UgdGhlIGV2ZW50IGRpc3BhdGNoIHRvIGJlIHRyZWF0ZWQgYXMgaGF2aW5nIHVuaGFu
ZGxlZAorLy8gZXJyb3JzLgorc2VsZi5hZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgZnVuY3Rp
b24oZXZlbnQpIHt9KTsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9u
KGV2ZW50KSB7fSk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBmdW5jdGlvbihl
dmVudCkgeyB0aHJvdyBuZXcgRXJyb3IoKTsgfSk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2lu
c3RhbGwnLCBmdW5jdGlvbihldmVudCkge30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL29uaW5zdGFsbC13YWl0dW50aWwtdGhyb3ctZXJyb3Itd29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFsbC13YWl0dW50aWwtdGhyb3ctZXJy
b3Itd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjYjhmNmVkZTYzNWEzZTcxYjY3ZmVkZGMyZWZjMzI2
YjhhZjM0NzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
b25pbnN0YWxsLXdhaXR1bnRpbC10aHJvdy1lcnJvci13b3JrZXIuanMKQEAgLTAsMCArMSw1IEBA
CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBmdW5jdGlvbihldmVudCkgeworICBl
dmVudC53YWl0VW50aWwobmV3IFByb21pc2UoZnVuY3Rpb24oYVJlcXVlc3QsIGFSZXNwb25zZSkg
eworICAgICAgdGhyb3cgbmV3IEVycm9yKCk7CisgICAgfSkpOworfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb3BhcXVlLXJlc3BvbnNlLWJlaW5nLXByZWxvYWRl
ZC14aHIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vcGFxdWUtcmVzcG9uc2Ut
YmVpbmctcHJlbG9hZGVkLXhoci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljNmQ4YmQ1MDRhMWEzYWY0ODQw
ZWQzNmYyMzk3ZjJkNzI1M2VlZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvb3BhcXVlLXJlc3BvbnNlLWJlaW5nLXByZWxvYWRlZC14aHIuaHRtbApAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxi
b2R5PjwvYm9keT4KKzxzY3JpcHQ+Citjb25zdCBVUkwgPSAnb3BhcXVlLXJlc3BvbnNlP2Zyb209
b3BhcXVlLXJlc3BvbnNlLWJlaW5nLXByZWxvYWRlZC14aHIuaHRtbCc7CitmdW5jdGlvbiBydW5U
ZXN0KCkgeworICB2YXIgbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKKyAgLy8g
VXNlIGxpbmsgcmVsPXByZWxvYWQgdG8gdHJ5IHRvIGdldCB0aGUgYnJvd3NlciB0byBjYWNoZSB0
aGUgb3BhcXVlCisgIC8vIHJlc3BvbnNlLgorICBsLnNldEF0dHJpYnV0ZSgncmVsJywgJ3ByZWxv
YWQnKTsKKyAgbC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBVUkwpOworICBsLnNldEF0dHJpYnV0ZSgn
YXMnLCAnZmV0Y2gnKTsKKyAgbC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgcGFyZW50LmRv
bmUoJ0ZBSUw6IHByZWxvYWQgZmFpbGVkIHVuZXhwZWN0ZWRseScpOworICB9OworICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGwpOworICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgIHho
ci53aXRoQ3JlZGVudGlhbHMgPSB0cnVlOworICB4aHIub3BlbignR0VUJywgVVJMKTsKKyAgLy8g
b3BhcXVlLXJlc3BvbnNlIHJldHVybnMgYW4gb3BhcXVlIHJlc3BvbnNlIGZyb20gc2VydmljZXdv
cmtlciBhbmQgdGh1cworICAvLyB0aGUgWEhSIG11c3QgZmFpbCBiZWNhdXNlIGl0IGlzIG5vdCBu
by1jb3JzIHJlcXVlc3QuCisgIC8vIFBhcnRpY3VsYXJseSwgdGhlIFhIUiBtdXN0IG5vdCByZXVz
ZSB0aGUgb3BhcXVlIHJlc3BvbnNlIGZyb20gdGhlCisgIC8vIHByZWxvYWQgcmVxdWVzdC4KKyAg
eGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICBwYXJlbnQuZG9uZSgnUEFTUycpOworICB9
OworICB4aHIub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgcGFyZW50LmRvbmUoJ0ZBSUw6ICcg
KyB4aHIucmVzcG9uc2VUZXh0KTsKKyAgfTsKKyAgeGhyLnNlbmQoKTsKK30KKzwvc2NyaXB0Pgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDEwMCkiPjwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vcGFxdWUtcmVzcG9uc2UtcHJlbG9hZGVk
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vcGFxdWUtcmVzcG9uc2Ut
cHJlbG9hZGVkLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODU5YmFkNDViN2QxMDYyY2QwYjhiYjA0
MzEyNzA2ODk3OTNkMTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL29wYXF1ZS1yZXNwb25zZS1wcmVsb2FkZWQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMTIg
QEAKK2ltcG9ydFNjcmlwdHMoJy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnKTsKKwordmFy
IHJlbW90ZVVybCA9IGdldF9ob3N0X2luZm8oKVsnSFRUUFNfUkVNT1RFX09SSUdJTiddICsKKyAg
Jy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS50eHQnCisK
K3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCBldmVudCA9PiB7CisgICAgaWYgKCFldmVu
dC5yZXF1ZXN0LnVybC5tYXRjaCgvb3BhcXVlLXJlc3BvbnNlXD9mcm9tPS8pKSB7CisgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2gocmVtb3RlVXJsLCB7
bW9kZTogJ25vLWNvcnMnfSkpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9vcGFxdWUtcmVzcG9uc2UtcHJlbG9hZGVkLXhoci5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL29wYXF1ZS1yZXNwb25zZS1wcmVsb2FkZWQteGhyLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjMxYWM5YjVjNGNlMzcyYjE4MmQ1M2RkNjY5MGYxYzNiNDk4ZWNkMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vcGFxdWUtcmVzcG9uc2Ut
cHJlbG9hZGVkLXhoci5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdD4KK2NvbnN0IFVSTCA9
ICdvcGFxdWUtcmVzcG9uc2U/ZnJvbT1vcGFxdWUtcmVzcG9uc2UtcHJlbG9hZGVkLXhoci5odG1s
JzsKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgIHZhciBsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbGluaycpOworICAvLyBVc2UgbGluayByZWw9cHJlbG9hZCB0byB0cnkgdG8gZ2V0IHRoZSBi
cm93c2VyIHRvIGNhY2hlIHRoZSBvcGFxdWUKKyAgLy8gcmVzcG9uc2UuCisgIGwuc2V0QXR0cmli
dXRlKCdyZWwnLCAncHJlbG9hZCcpOworICBsLnNldEF0dHJpYnV0ZSgnaHJlZicsIFVSTCk7Cisg
IGwuc2V0QXR0cmlidXRlKCdhcycsICdmZXRjaCcpOworICBsLm9ubG9hZCA9IGZ1bmN0aW9uKCkg
eworICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdDsKKyAgICB4aHIud2l0aENyZWRlbnRpYWxz
ID0gdHJ1ZTsKKyAgICB4aHIub3BlbignR0VUJywgVVJMKTsKKyAgICAvLyBvcGFxdWUtcmVzcG9u
c2UgcmV0dXJucyBhbiBvcGFxdWUgcmVzcG9uc2UgZnJvbSBzZXJ2aWNld29ya2VyIGFuZCB0aHVz
CisgICAgLy8gdGhlIFhIUiBtdXN0IGZhaWwgYmVjYXVzZSBpdCBpcyBub3Qgbm8tY29ycyByZXF1
ZXN0LgorICAgIC8vIFBhcnRpY3VsYXJseSwgdGhlIFhIUiBtdXN0IG5vdCByZXVzZSB0aGUgb3Bh
cXVlIHJlc3BvbnNlIGZyb20gdGhlCisgICAgLy8gcHJlbG9hZCByZXF1ZXN0LgorICAgIHhoci5v
bmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICBwYXJlbnQuZG9uZSgnUEFTUycpOworICAgIH07
CisgICAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgcGFyZW50LmRvbmUoJ0ZBSUw6
ICcgKyB4aHIucmVzcG9uc2VUZXh0KTsKKyAgICB9OworICAgIHhoci5zZW5kKCk7CisgIH07Cisg
IGwub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgIHBhcmVudC5kb25lKCdGQUlMOiBwcmVsb2Fk
IGZhaWxlZCB1bmV4cGVjdGVkbHknKTsKKyAgfTsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChsKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KHJ1blRlc3QsIDEw
MCkiPjwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vdGhl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL290aGVyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjlmMzUwNDM4NzcyMmM0NTgzYTA5MDRjYjdiN2Y3YTRmOTcwNmI3MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vdGhlci5odG1sCkBAIC0wLDAgKzEs
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+T3RoZXI8L3RpdGxlPgorSGVyZSdzIGFuIG90
aGVyIGh0bWwgZmlsZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9v
dmVycmlkZV9hc3NlcnRfb2JqZWN0X2VxdWFscy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9vdmVycmlkZV9hc3NlcnRfb2JqZWN0X2VxdWFscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzUwNDZk
NDcyYjJiM2JiNDZhYTdlNGNiYTI5NzZkMzY3YjI5ODk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL292ZXJyaWRlX2Fzc2VydF9vYmplY3RfZXF1YWxzLmpz
CkBAIC0wLDAgKzEsNTggQEAKKy8vIC5ib2R5IGF0dHJpYnV0ZSBvZiBSZXF1ZXN0IGFuZCBSZXNw
b25zZSBvYmplY3QgYXJlIGV4cGVyaW1lbnRhbCBmZXR1cmUuIEl0IGlzCisvLyBlbmFibGVkIHdo
ZW4gLS1lbmFibGUtZXhwZXJpbWVudGFsLXdlYi1wbGF0Zm9ybS1mZWF0dXJlcyBmbGFnIGlzIHNl
dC4KKy8vIFRvdWNoaW5nIHRoaXMgYXR0cmlidXRlIGNhbiBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9m
IHRoZSBvYmplY3RzLiBUbyBhdm9pZAorLy8gdG91Y2hpbmcgaXQgd2hpbGUgY29tcGFyaW5nIHRo
ZSBvYmplY3RzIGluIExheW91dFRlc3QsIHdlIG92ZXJ3cml0ZQorLy8gYXNzZXJ0X29iamVjdF9l
cXVhbHMgbWV0aG9kLgorCisoZnVuY3Rpb24oKSB7CisgIHZhciBvcmlnaW5hbF9hc3NlcnRfb2Jq
ZWN0X2VxdWFscyA9IHNlbGYuYXNzZXJ0X29iamVjdF9lcXVhbHM7CisgIGZ1bmN0aW9uIF9icmFu
ZChvYmplY3QpIHsKKyAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9i
amVjdCkubWF0Y2goL15cW29iamVjdCAoLiopXF0kLylbMV07CisgIH0KKyAgdmFyIGFzc2VydF9y
ZXF1ZXN0X2VxdWFscyA9IGZ1bmN0aW9uKGFjdHVhbCwgZXhwZWN0ZWQsIHByZWZpeCkgeworICAg
IGlmICh0eXBlb2YgYWN0dWFsICE9PSAnb2JqZWN0JykgeworICAgICAgYXNzZXJ0X2VxdWFscyhh
Y3R1YWwsIGV4cGVjdGVkLCBwcmVmaXgpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhc3Nl
cnRfdHJ1ZShhY3R1YWwgaW5zdGFuY2VvZiBSZXF1ZXN0LCBwcmVmaXgpOworICAgIGFzc2VydF90
cnVlKGV4cGVjdGVkIGluc3RhbmNlb2YgUmVxdWVzdCwgcHJlZml4KTsKKyAgICBhc3NlcnRfZXF1
YWxzKGFjdHVhbC5ib2R5VXNlZCwgZXhwZWN0ZWQuYm9keVVzZWQsIHByZWZpeCArICcuYm9keVVz
ZWQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5tZXRob2QsIGV4cGVjdGVkLm1ldGhvZCwg
cHJlZml4ICsgJy5tZXRob2QnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC51cmwsIGV4cGVj
dGVkLnVybCwgcHJlZml4ICsgJy51cmwnKTsKKyAgICBvcmlnaW5hbF9hc3NlcnRfb2JqZWN0X2Vx
dWFscyhhY3R1YWwuaGVhZGVycywgZXhwZWN0ZWQuaGVhZGVycywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmVmaXggKyAnLmhlYWRlcnMnKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGFjdHVhbC5jb250ZXh0LCBleHBlY3RlZC5jb250ZXh0LCBwcmVmaXggKyAnLmNvbnRleHQnKTsK
KyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5yZWZlcnJlciwgZXhwZWN0ZWQucmVmZXJyZXIsIHBy
ZWZpeCArICcucmVmZXJyZXInKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5tb2RlLCBleHBl
Y3RlZC5tb2RlLCBwcmVmaXggKyAnLm1vZGUnKTsKKyAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5j
cmVkZW50aWFscywgZXhwZWN0ZWQuY3JlZGVudGlhbHMsCisgICAgICAgICAgICAgICAgICBwcmVm
aXggKyAnLmNyZWRlbnRpYWxzJyk7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwuY2FjaGUsIGV4
cGVjdGVkLmNhY2hlLCBwcmVmaXggKyAnLmNhY2hlJyk7CisgIH07CisgIHZhciBhc3NlcnRfcmVz
cG9uc2VfZXF1YWxzID0gZnVuY3Rpb24oYWN0dWFsLCBleHBlY3RlZCwgcHJlZml4KSB7CisgICAg
aWYgKHR5cGVvZiBhY3R1YWwgIT09ICdvYmplY3QnKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGFj
dHVhbCwgZXhwZWN0ZWQsIHByZWZpeCk7CisgICAgICByZXR1cm47CisgICAgfQorICAgIGFzc2Vy
dF90cnVlKGFjdHVhbCBpbnN0YW5jZW9mIFJlc3BvbnNlLCBwcmVmaXgpOworICAgIGFzc2VydF90
cnVlKGV4cGVjdGVkIGluc3RhbmNlb2YgUmVzcG9uc2UsIHByZWZpeCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhhY3R1YWwuYm9keVVzZWQsIGV4cGVjdGVkLmJvZHlVc2VkLCBwcmVmaXggKyAnLmJvZHlV
c2VkJyk7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwudHlwZSwgZXhwZWN0ZWQudHlwZSwgcHJl
Zml4ICsgJy50eXBlJyk7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwudXJsLCBleHBlY3RlZC51
cmwsIHByZWZpeCArICcudXJsJyk7CisgICAgYXNzZXJ0X2VxdWFscyhhY3R1YWwuc3RhdHVzLCBl
eHBlY3RlZC5zdGF0dXMsIHByZWZpeCArICcuc3RhdHVzJyk7CisgICAgYXNzZXJ0X2VxdWFscyhh
Y3R1YWwuc3RhdHVzVGV4dCwgZXhwZWN0ZWQuc3RhdHVzVGV4dCwKKyAgICAgICAgICAgICAgICAg
IHByZWZpeCArICcuc3RhdHVzVGV4dCcpOworICAgIG9yaWdpbmFsX2Fzc2VydF9vYmplY3RfZXF1
YWxzKGFjdHVhbC5oZWFkZXJzLCBleHBlY3RlZC5oZWFkZXJzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByZWZpeCArICcuaGVhZGVycycpOworICB9OworICB2YXIgYXNzZXJ0
X29iamVjdF9lcXVhbHMgPSBmdW5jdGlvbihhY3R1YWwsIGV4cGVjdGVkLCBkZXNjcmlwdGlvbikg
eworICAgIHZhciBwcmVmaXggPSAoZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbiArICc6ICcgOiAn
JykgKyBfYnJhbmQoZXhwZWN0ZWQpOworICAgIGlmIChleHBlY3RlZCBpbnN0YW5jZW9mIFJlcXVl
c3QpIHsKKyAgICAgIGFzc2VydF9yZXF1ZXN0X2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBwcmVm
aXgpOworICAgIH0gZWxzZSBpZiAoZXhwZWN0ZWQgaW5zdGFuY2VvZiBSZXNwb25zZSkgeworICAg
ICAgYXNzZXJ0X3Jlc3BvbnNlX2VxdWFscyhhY3R1YWwsIGV4cGVjdGVkLCBwcmVmaXgpOworICAg
IH0gZWxzZSB7CisgICAgICBvcmlnaW5hbF9hc3NlcnRfb2JqZWN0X2VxdWFscyhhY3R1YWwsIGV4
cGVjdGVkLCBkZXNjcmlwdGlvbik7CisgICAgfQorICB9OworICBzZWxmLmFzc2VydF9vYmplY3Rf
ZXF1YWxzID0gYXNzZXJ0X29iamVjdF9lcXVhbHM7Cit9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3BlcmZvcm1hbmNlLXRpbWVsaW5lLXdvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10aW1lbGluZS13b3JrZXIuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmY3ZGY3NWU5MjE3ODYxMDg3ZjA0MTllOTg0OWQ0YmM1ODkzYWIyNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wZXJmb3JtYW5jZS10
aW1lbGluZS13b3JrZXIuanMKQEAgLTAsMCArMSw1OCBAQAoraW1wb3J0U2NyaXB0cygnL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcycpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewor
ICAgIHZhciBkdXJhdGlvbk1zZWMgPSAxMDA7CisgICAgLy8gVGhlcmUgYXJlIGxpbWl0cyB0byBv
dXIgYWNjdXJhY3kgaGVyZS4gIFRpbWVycyBtYXkgZmlyZSB1cCB0byBhCisgICAgLy8gbWlsbGlz
ZWNvbmQgZWFybHkgZHVlIHRvIHBsYXRmb3JtLWRlcGVuZGVudCByb3VuZGluZy4gIEluIGFkZGl0
aW9uCisgICAgLy8gdGhlIHBlcmZvcm1hbmNlIEFQSSBpbnRyb2R1Y2VzIHNvbWUgcm91bmRpbmcg
YXMgd2VsbCB0byBwcmV2ZW50CisgICAgLy8gdGltaW5nIGF0dGFja3MuCisgICAgdmFyIGFjY3Vy
YWN5ID0gMS41OworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Cisg
ICAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ3N0YXJ0TWFyaycpOworICAgICAgICBzZXRUaW1lb3V0
KHJlc29sdmUsIGR1cmF0aW9uTXNlYyk7CisgICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ2VuZE1hcmsnKTsKKyAgICAgICAgICBwZXJmb3JtYW5j
ZS5tZWFzdXJlKCdtZWFzdXJlJywgJ3N0YXJ0TWFyaycsICdlbmRNYXJrJyk7CisgICAgICAgICAg
dmFyIHN0YXJ0TWFyayA9IHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeU5hbWUoJ3N0YXJ0TWFyaycp
WzBdOworICAgICAgICAgIHZhciBlbmRNYXJrID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFt
ZSgnZW5kTWFyaycpWzBdOworICAgICAgICAgIHZhciBtZWFzdXJlID0gcGVyZm9ybWFuY2UuZ2V0
RW50cmllc0J5VHlwZSgnbWVhc3VyZScpWzBdOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVh
c3VyZS5zdGFydFRpbWUsIHN0YXJ0TWFyay5zdGFydFRpbWUpOworICAgICAgICAgIGFzc2VydF9h
cHByb3hfZXF1YWxzKGVuZE1hcmsuc3RhcnRUaW1lIC0gc3RhcnRNYXJrLnN0YXJ0VGltZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzdXJlLmR1cmF0aW9uLCAwLjAwMSk7Cisg
ICAgICAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihtZWFzdXJlLmR1cmF0aW9uLCBkdXJhdGlvbk1z
ZWMgLSBhY2N1cmFjeSk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwZXJmb3JtYW5jZS5nZXRF
bnRyaWVzQnlUeXBlKCdtYXJrJykubGVuZ3RoLCAyKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoJ21lYXN1cmUnKS5sZW5ndGgsIDEpOworICAg
ICAgICAgIHBlcmZvcm1hbmNlLmNsZWFyTWFya3MoJ3N0YXJ0TWFyaycpOworICAgICAgICAgIHBl
cmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMoJ21lYXN1cmUnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoJ21hcmsnKS5sZW5ndGgsIDEpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgnbWVhc3Vy
ZScpLmxlbmd0aCwgMCk7CisgICAgICB9KTsKKyAgfSwgJ1VzZXIgVGltaW5nJyk7CisKK3Byb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgcmV0dXJuIGZldGNoKCdkdW1teS50eHQnKQor
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcCkgeworICAgICAgICAgIHJldHVybiByZXNwLnRleHQo
KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHRleHQpIHsKKyAgICAgICAgICB2
YXIgZXhwZWN0ZWRSZXNvdXJjZXMgPSBbJ3Rlc3RoYXJuZXNzLmpzJywgJ2R1bW15LnR4dCddOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSgncmVz
b3VyY2UnKS5sZW5ndGgsIGV4cGVjdGVkUmVzb3VyY2VzLmxlbmd0aCk7CisgICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFJlc291cmNlcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgICAgICB2YXIgZW50cnkgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJj
ZScpW2ldOworICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlbnRyeS5uYW1lLmVuZHNXaXRoKGV4
cGVjdGVkUmVzb3VyY2VzW2ldKSk7CisgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZW50cnku
d29ya2VyU3RhcnQsIDApOworICAgICAgICAgICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGVudHJ5
LnN0YXJ0VGltZSwgMCk7CisgICAgICAgICAgICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oZW50cnku
cmVzcG9uc2VFbmQsIGVudHJ5LnN0YXJ0VGltZSk7CisgICAgICAgICAgfQorICAgICAgICAgIHJl
dHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAgICAgICAgIHBlcmZv
cm1hbmNlLm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gcmVzb2x2ZTsKKyAgICAgICAgICAg
ICAgcGVyZm9ybWFuY2Uuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKGV4cGVjdGVkUmVzb3Vy
Y2VzLmxlbmd0aCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgeworICAgICAgICAgIHBlcmZvcm1hbmNlLmNsZWFyUmVzb3VyY2VUaW1pbmdzKCk7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKCdy
ZXNvdXJjZScpLmxlbmd0aCwgMCk7CisgICAgICAgIH0pCisgIH0sICdSZXNvdXJjZSBUaW1pbmcn
KTsKKworZG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bv
c3RtZXNzYWdlLWJsb2ItdXJsLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLWJsb2ItdXJsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOTUxOTRhNGMwM2YzMzc1ZmE3NmIzNzk3
ODY0MmNlNWY5ODliOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvcG9zdG1lc3NhZ2UtYmxvYi11cmwuanMKQEAgLTAsMCArMSw1IEBACitzZWxmLm9ubWVz
c2FnZSA9IGUgPT4geworICBmZXRjaChlLmRhdGEpCisgIC50aGVuKHJlc3BvbnNlID0+IHJlc3Bv
bnNlLnRleHQoKSkKKyAgLnRoZW4odGV4dCA9PiBlLnNvdXJjZS5wb3N0TWVzc2FnZSgnV29ya2Vy
IHJlcGx5OicgKyB0ZXh0KSk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLW1zZ3BvcnQtdG8tY2xpZW50LXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1tc2dwb3J0LXRvLWNsaWVudC13b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uN2FmOTM1ZjRmOGZjMDE3NTY5ODBlNDZkY2NlNTAxOGRkYzYyMGU2Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2Fn
ZS1tc2dwb3J0LXRvLWNsaWVudC13b3JrZXIuanMKQEAgLTAsMCArMSwxOSBAQAorc2VsZi5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgIGUud2FpdFVudGlsKHNlbGYuY2xpZW50cy5tYXRjaEFs
bCgpLnRoZW4oZnVuY3Rpb24oY2xpZW50cykgeworICAgICAgY2xpZW50cy5mb3JFYWNoKGZ1bmN0
aW9uKGNsaWVudCkgeworICAgICAgICAgIHZhciBtZXNzYWdlQ2hhbm5lbCA9IG5ldyBNZXNzYWdl
Q2hhbm5lbCgpOworICAgICAgICAgIG1lc3NhZ2VDaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9Cisg
ICAgICAgICAgICBvbk1lc3NhZ2VWaWFNZXNzYWdlUG9ydC5iaW5kKG51bGwsIG1lc3NhZ2VDaGFu
bmVsLnBvcnQxKTsKKyAgICAgICAgICBjbGllbnQucG9zdE1lc3NhZ2UodW5kZWZpbmVkLCBbbWVz
c2FnZUNoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgfSk7CisgICAgfSkpOworfTsKKworZnVuY3Rp
b24gb25NZXNzYWdlVmlhTWVzc2FnZVBvcnQocG9ydCwgZSkgeworICB2YXIgbWVzc2FnZSA9IGUu
ZGF0YTsKKyAgaWYgKCd2YWx1ZScgaW4gbWVzc2FnZSkgeworICAgIHBvcnQucG9zdE1lc3NhZ2Uo
e2FjazogJ0Fja2luZyB2YWx1ZTogJyArIG1lc3NhZ2UudmFsdWV9KTsKKyAgfSBlbHNlIGlmICgn
ZG9uZScgaW4gbWVzc2FnZSkgeworICAgIHBvcnQucG9zdE1lc3NhZ2Uoe2RvbmU6IHRydWV9KTsK
KyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNz
YWdlLXRvLWNsaWVudC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9z
dG1lc3NhZ2UtdG8tY2xpZW50LXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzkxMzA2MzU4M2E4Mjc2
Njc1YWRjYzY1YTY2ZTg0M2Q4M2EzMDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMKQEAgLTAsMCAr
MSwxMCBAQAorc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgIGUud2FpdFVudGlsKHNl
bGYuY2xpZW50cy5tYXRjaEFsbCgpLnRoZW4oZnVuY3Rpb24oY2xpZW50cykgeworICAgICAgY2xp
ZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGNsaWVudCkgeworICAgICAgICAgIGNsaWVudC5wb3N0TWVz
c2FnZSgnU2VuZGluZyBtZXNzYWdlIHZpYSBjbGllbnRzJyk7CisgICAgICAgICAgaWYgKCFBcnJh
eS5pc0FycmF5KGNsaWVudHMpKQorICAgICAgICAgICAgY2xpZW50LnBvc3RNZXNzYWdlKCdjbGll
bnRzIGlzIG5vdCBhbiBhcnJheScpOworICAgICAgICAgIGNsaWVudC5wb3N0TWVzc2FnZSgncXVp
dCcpOworICAgICAgICB9KTsKKyAgICB9KSk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRyYW5zZmVyYWJsZXMtd29ya2VyLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRyYW5zZmVyYWJsZXMtd29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQzNWMxYzk1MmI4ODAwNjllYWZlMjVhYTk3MWQ4YWE3YzkyOTNlMDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3Nh
Z2UtdHJhbnNmZXJhYmxlcy13b3JrZXIuanMKQEAgLTAsMCArMSwyNCBAQAordmFyIG1lc3NhZ2VI
YW5kbGVyID0gZnVuY3Rpb24ocG9ydCwgZSkgeworICAgIHZhciB0ZXh0X2RlY29kZXIgPSBuZXcg
VGV4dERlY29kZXI7CisgICAgcG9ydC5wb3N0TWVzc2FnZSh7CisgICAgICBjb250ZW50OiB0ZXh0
X2RlY29kZXIuZGVjb2RlKGUuZGF0YSksCisgICAgICBieXRlTGVuZ3RoOiBlLmRhdGEuYnl0ZUxl
bmd0aAorICAgIH0pOworCisgICAgLy8gU2VuZCBiYWNrIHRoZSBhcnJheSBidWZmZXIgdmlhIENs
aWVudC5wb3N0TWVzc2FnZS4KKyAgICBwb3J0LnBvc3RNZXNzYWdlKGUuZGF0YSwgW2UuZGF0YS5i
dWZmZXJdKTsKKworICAgIHBvcnQucG9zdE1lc3NhZ2UoeworICAgICAgY29udGVudDogdGV4dF9k
ZWNvZGVyLmRlY29kZShlLmRhdGEpLAorICAgICAgYnl0ZUxlbmd0aDogZS5kYXRhLmJ5dGVMZW5n
dGgKKyAgICB9KTsKK307CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGUgPT4g
eworICAgIGlmIChlLnBvcnRzWzBdKSB7CisgICAgICAvLyBXYWl0IGZvciBtZXNzYWdlcyBzZW50
IHZpYSBNZXNzYWdlUG9ydC4KKyAgICAgIGUucG9ydHNbMF0ub25tZXNzYWdlID0gbWVzc2FnZUhh
bmRsZXIuYmluZChudWxsLCBlLnBvcnRzWzBdKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAg
bWVzc2FnZUhhbmRsZXIoZS5zb3VyY2UsIGUpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9wb3N0bWVzc2FnZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1OGNmMDQy
NjdjMjRjZjg4OGRiZmU4ZjUyZDE4MTYyZjBjMmY0OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcG9zdG1lc3NhZ2Utd29ya2VyLmpzCkBAIC0wLDAgKzEs
MTkgQEAKK3ZhciBwb3J0OworCisvLyBFeGVyY2lzZSB0aGUgJ29ubWVzc2FnZScgaGFuZGxlcjoK
K3NlbGYub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICB2YXIgbWVzc2FnZSA9IGUuZGF0YTsK
KyAgaWYgKCdwb3J0JyBpbiBtZXNzYWdlKSB7CisgICAgcG9ydCA9IG1lc3NhZ2UucG9ydDsKKyAg
fQorfTsKKworLy8gQW5kIGFuIGV2ZW50IGxpc3RlbmVyOgorc2VsZi5hZGRFdmVudExpc3RlbmVy
KCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAgIHZhciBtZXNzYWdlID0gZS5kYXRhOworICAg
IGlmICgndmFsdWUnIGluIG1lc3NhZ2UpIHsKKyAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ0Fja2lu
ZyB2YWx1ZTogJyArIG1lc3NhZ2UudmFsdWUpOworICAgIH0gZWxzZSBpZiAoJ2RvbmUnIGluIG1l
c3NhZ2UpIHsKKyAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ3F1aXQnKTsKKyAgICB9CisgIH0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZGlyZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwNTIxYjAw
YzljYWUwNDg1Njc4MDA3YjgzNjgzNTAzNTEyZDgzNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVkaXJlY3QucHkKQEAgLTAsMCArMSwyNSBAQAorZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGlmICdTdGF0dXMnIGluIHJlcXVlc3QuR0VU
OgorICAgICAgICBzdGF0dXMgPSBpbnQocmVxdWVzdC5HRVRbIlN0YXR1cyJdKQorICAgIGVsc2U6
CisgICAgICAgIHN0YXR1cyA9IDMwMgorCisgICAgaGVhZGVycyA9IFtdCisKKyAgICB1cmwgPSBy
ZXF1ZXN0LkdFVFsnUmVkaXJlY3QnXQorICAgIGhlYWRlcnMuYXBwZW5kKCgiTG9jYXRpb24iLCB1
cmwpKQorCisgICAgaWYgIkFDQU9yaWdpbiIgaW4gcmVxdWVzdC5HRVQ6CisgICAgICAgIGZvciBp
dGVtIGluIHJlcXVlc3QuR0VUWyJBQ0FPcmlnaW4iXS5zcGxpdCgiLCIpOgorICAgICAgICAgICAg
aGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCBpdGVtKSkKKwor
ICAgIGZvciBzdWZmaXggaW4gWyJIZWFkZXJzIiwgIk1ldGhvZHMiLCAiQ3JlZGVudGlhbHMiXToK
KyAgICAgICAgcXVlcnkgPSAiQUNBJXMiICUgc3VmZml4CisgICAgICAgIGhlYWRlciA9ICJBY2Nl
c3MtQ29udHJvbC1BbGxvdy0lcyIgJSBzdWZmaXgKKyAgICAgICAgaWYgcXVlcnkgaW4gcmVxdWVz
dC5HRVQ6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoaGVhZGVyLCByZXF1ZXN0LkdFVFtx
dWVyeV0pKQorCisgICAgaWYgIkFDRUhlYWRlcnMiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICBo
ZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzIiwgcmVxdWVzdC5H
RVRbIkFDRUhlYWRlcnMiXSkpCisKKyAgICByZXR1cm4gc3RhdHVzLCBoZWFkZXJzLCAiIgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZmVyZXItaWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVmZXJlci1pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yOTVmZjQ1NjcxNTRhOTg2NWEwMmQ4NWJlZTkxYTY1M2RlMzU0NWRjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZmVyZXItaWZyYW1lLmh0bWwK
QEAgLTAsMCArMSwzOSBAQAorPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNoZWNrX3JlZmVyZXIodXJsLCBleHBlY3RlZF9yZWZlcmVy
KSB7CisgIHJldHVybiBmZXRjaCh1cmwpCisgICAgLnRoZW4oZnVuY3Rpb24ocmVzKSB7IHJldHVy
biByZXMuanNvbigpOyB9KQorICAgIC50aGVuKGZ1bmN0aW9uKGhlYWRlcnMpIHsKKyAgICAgICAg
aWYgKGhlYWRlcnNbJ3JlZmVyZXInXSA9PT0gZXhwZWN0ZWRfcmVmZXJlcikgeworICAgICAgICAg
IHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZWplY3QoJ1JlZmVyZXIgZm9yICcgKyB1cmwgKyAnIG11c3QgYmUgJyAr
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZmVyZXIgKyAnIGJ1
dCBnb3QgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNbJ3JlZmVy
ZXInXSk7CisgICAgICAgIH0KKyAgICAgIH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbWVzc2FnZScsIGZ1bmN0aW9uKGV2dCkgeworICAgIHZhciBob3N0X2luZm8gPSBnZXRfaG9z
dF9pbmZvKCk7CisgICAgdmFyIHBvcnQgPSBldnQucG9ydHNbMF07CisgICAgY2hlY2tfcmVmZXJl
cigncmVxdWVzdC1oZWFkZXJzLnB5P2lnbm9yZT10cnVlJywKKyAgICAgICAgICAgICAgICAgIGhv
c3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKworICAgICAgICAgICAgICAgICAgYmFzZV9wYXRoKCkg
KyAncmVmZXJlci1pZnJhbWUuaHRtbCcpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICByZXR1cm4gY2hlY2tfcmVmZXJlcigKKyAgICAgICAgICAgICAgJ3JlcXVlc3QtaGVhZGVy
cy5weScsCisgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKworICAgICAg
ICAgICAgICBiYXNlX3BhdGgoKSArICdyZWZlcmVyLWlmcmFtZS5odG1sJyk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gY2hlY2tfcmVmZXJl
cigKKyAgICAgICAgICAgICAgJ3JlcXVlc3QtaGVhZGVycy5weT91cmw9cmVxdWVzdC1oZWFkZXJz
LnB5JywKKyAgICAgICAgICAgICAgaG9zdF9pbmZvWydIVFRQU19PUklHSU4nXSArCisgICAgICAg
ICAgICAgIGJhc2VfcGF0aCgpICsgJ2ZldGNoLXJld3JpdGUtd29ya2VyLmpzJyk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsgcG9ydC5wb3N0TWVzc2FnZSh7cmVzdWx0czog
J2ZpbmlzaCd9KTsgfSkKKyAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7IHBvcnQucG9zdE1lc3Nh
Z2Uoe3Jlc3VsdHM6ICdmYWlsdXJlOicgKyBlfSk7IH0pOworICB9KTsKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVmM2NkMTlhOTgyNDY5ODkwNDFlYzA4YTUzYmE4YTMxYWE2
N2VjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWZl
cnJlci1wb2xpY3ktaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPHNjcmlwdCBzcmM9Ii9j
b21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3Qt
aGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNoZWNrX3JlZmVy
ZXIodXJsLCBleHBlY3RlZF9yZWZlcmVyKSB7CisgIHJldHVybiBmZXRjaCh1cmwpCisgICAgLnRo
ZW4oZnVuY3Rpb24ocmVzKSB7IHJldHVybiByZXMuanNvbigpOyB9KQorICAgIC50aGVuKGZ1bmN0
aW9uKGhlYWRlcnMpIHsKKyAgICAgICAgaWYgKGhlYWRlcnNbJ3JlZmVyZXInXSA9PT0gZXhwZWN0
ZWRfcmVmZXJlcikgeworICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoJ1JlZmVyZXIgZm9y
ICcgKyB1cmwgKyAnIG11c3QgYmUgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkX3JlZmVyZXIgKyAnIGJ1dCBnb3QgJyArCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlYWRlcnNbJ3JlZmVyZXInXSk7CisgICAgICAgIH0KKyAgICAgIH0pOworfQor
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2dCkgeworICAg
IHZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisgICAgdmFyIHBvcnQgPSBldnQucG9y
dHNbMF07CisgICAgY2hlY2tfcmVmZXJlcigncmVxdWVzdC1oZWFkZXJzLnB5P2lnbm9yZT10cnVl
JywKKyAgICAgICAgICAgICAgICAgIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10gKworICAgICAg
ICAgICAgICAgICAgYmFzZV9wYXRoKCkgKyAncmVmZXJyZXItcG9saWN5LWlmcmFtZS5odG1sJykK
KyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBjaGVja19yZWZlcmVy
KAorICAgICAgICAgICAgICAncmVxdWVzdC1oZWFkZXJzLnB5P3VybD1yZXF1ZXN0LWhlYWRlcnMu
cHknLAorICAgICAgICAgICAgICBob3N0X2luZm9bJ0hUVFBTX09SSUdJTiddICsgJy8nKTsKKyAg
ICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1
bHRzOiAnZmluaXNoJ30pOyB9KQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsgcG9ydC5wb3N0
TWVzc2FnZSh7cmVzdWx0czogJ2ZhaWx1cmU6JyArIGV9KTsgfSk7CisgIH0pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVnaXN0ZXItY2xvc2Vk
LXdpbmRvdy1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Rl
ci1jbG9zZWQtd2luZG93LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNzQzZWEwNTZlN2Q3MTI5
ZjJmMWM4YjE4NWVkZTk1YjA1MGUzN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvcmVnaXN0ZXItY2xvc2VkLXdpbmRvdy1pZnJhbWUuaHRtbApAQCAtMCww
ICsxLDE2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3dpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZXZ0KSB7CisgIGlmIChldnQuZGF0YSA9PT0gJ1NUQVJU
JykgeworICAgIHZhciB3ID0gd2luZG93Lm9wZW4oJy4vJyk7CisgICAgdmFyIHN3ID0gdy5uYXZp
Z2F0b3Iuc2VydmljZVdvcmtlcjsKKyAgICB3LmNsb3NlKCk7CisgICAgdyA9IG51bGw7CisgICAg
c3cucmVnaXN0ZXIoJ2RvZXNudG1hdHRlci5qcycpOworICAgIHBhcmVudC5wb3N0TWVzc2FnZSgn
T0snLCAnKicpOworICB9Cit9KTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdGVyLWZvcmVpZ24tZmV0Y2gt
ZXJyb3JzLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Rlci1m
b3JlaWduLWZldGNoLWVycm9ycy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFmYWNjODljYTgzN2Qx
NjA0ZTU4NDlmM2E4MWJlYjI1Y2VkNzkyMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9yZWdpc3Rlci1mb3JlaWduLWZldGNoLWVycm9ycy13b3JrZXIuanMK
QEAgLTAsMCArMSwxMzQgQEAKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgdmFyIHNjb3BlID0gcmVnaXN0cmF0aW9uLnNjb3BlOworICAgIHZh
ciBzY29wZV91cmwgPSBuZXcgVVJMKHNjb3BlKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGV2ZW50LnJlZ2lzdGVyRm9yZWlnbkZldGNoKHt9KTsKKyAgICAgICAgICB9KTsKKyAg
ICAgIH0sICdJbnZhbGlkIG9wdGlvbnMnKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGV2ZW50LnJlZ2lzdGVyRm9yZWlnbkZldGNoKHtzY29wZXM6IHNjb3BlLCBvcmlnaW5zOiBb
JyonXX0pOworICAgICAgICAgIH0pOworICAgICAgfSwgJ1Njb3BlcyBub3QgYW4gYXJyYXknKTsK
KworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVF
cnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2ZW50LnJlZ2lzdGVyRm9yZWlnbkZl
dGNoKHtzY29wZXM6IFt7fV0sIG9yaWdpbnM6IFsnKiddfSk7CisgICAgICAgICAgfSk7CisgICAg
ICB9LCAnU2NvcGVzIG5vdCBhIHN0cmluZyBpbiBhcnJheScpOworCisgICAgdGVzdChmdW5jdGlv
bigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgZXZlbnQucmVnaXN0ZXJGb3JlaWduRmV0Y2goe3Njb3BlczogWycvZm9v
J10sIG9yaWdpbnM6IFsnKiddfSk7CisgICAgICAgICAgfSk7CisgICAgICB9LCAnUmVsYXRpdmUg
dXJsIG5vdCB1bmRlciBzY29wZScpOworCisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAg
dmFyIHVybCA9IG5ldyBVUkwoc2NvcGVfdXJsKTsKKyAgICAgICAgdXJsLmhvc3QgPSAnZXhhbXBs
ZS5jb20nOworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBldmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBbdXJs
LmhyZWZdLCBvcmlnaW5zOiBbJyonXX0pOworICAgICAgICAgIH0pOworICAgICAgfSwgJ0Fic29s
dXRlIHVybCBub3QgdW5kZXIgc2NvcGUnKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAg
ICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGV2ZW50LnJlZ2lzdGVyRm9yZWlnbkZldGNoKHtzY29wZXM6IFtdLCBvcmlnaW5zOiBbJyon
XX0pOworICAgICAgICAgIH0pOworICAgICAgfSwgJ0VtcHR5IHNjb3BlIGFycmF5Jyk7CisKKyAg
ICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgc2VsZi5zZXRUaW1lb3V0KHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0
YXRlRXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBldmVudC5yZWdpc3RlckZv
cmVpZ25GZXRjaCh7c2NvcGVzOiBbc2NvcGVdLCBvcmlnaW5zOiBbJyonXX0pOworICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgIH0pLCAxKTsKKyAgICAg
IH0sICdDYWxsIGFmdGVyIGV2ZW50IHJldHVybmVkJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkg
eworICAgICAgICBldmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBbc2NvcGVdLCBv
cmlnaW5zOiBbJyonXX0pOworICAgICAgfSwgJ1ZhbGlkIHNjb3BlcyB3aXRoIHdpbGRjYXJkIG9y
aWdpbiBzdHJpbmcnKTsKKworICAgIHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGV2ZW50LnJl
Z2lzdGVyRm9yZWlnbkZldGNoKHtzY29wZXM6IFtzY29wZSwgc2NvcGUgKyAnL2ZvbyddLCBvcmln
aW5zOiBbJyonXX0pOworICAgICAgfSwgJ0Fic29sdXRlIHVybHMnKTsKKworICAgIHRlc3QoZnVu
Y3Rpb24oKSB7CisgICAgICAgIC8vIEZpZ3VyZSBvdXQgc2NvcGUgcmVsYXRpdmUgdG8gbG9jYXRp
b24gb2YgdGhpcyBzY3JpcHQ6CisgICAgICAgIHZhciBsb2NhbF9kaXIgPSBsb2NhdGlvbi5wYXRo
bmFtZTsKKyAgICAgICAgbG9jYWxfZGlyID0gbG9jYWxfZGlyLnN1YnN0cigwLCBsb2NhbF9kaXIu
bGFzdEluZGV4T2YoJy8nKSk7CisgICAgICAgIGFzc2VydF90cnVlKHNjb3BlX3VybC5wYXRobmFt
ZS5zdGFydHNXaXRoKGxvY2FsX2RpcikpOworICAgICAgICB2YXIgcmVsYXRpdmVfc2NvcGUgPSBz
Y29wZV91cmwucGF0aG5hbWUuc3Vic3RyKGxvY2FsX2Rpci5sZW5ndGggKyAxKTsKKworICAgICAg
ICBldmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBbCisgICAgICAgICAgc2NvcGVf
dXJsLnBhdGhuYW1lLAorICAgICAgICAgIHJlbGF0aXZlX3Njb3BlLAorICAgICAgICAgICcuLycg
KyByZWxhdGl2ZV9zY29wZSwKKyAgICAgICAgICByZWxhdGl2ZV9zY29wZSArICcvZm9vJ10sIG9y
aWdpbnM6IFsnKiddfSk7CisgICAgICB9LCAnUmVsYXRpdmUgdXJscycpOworCisgICAgdGVzdChm
dW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgZXZlbnQucmVnaXN0ZXJGb3JlaWduRmV0Y2goe3Njb3Blczog
W3Njb3BlXX0pOworICAgICAgICAgIH0pOworICAgICAgfSwgJ05vIG9yaWdpbnMgc3BlY2lmaWVk
Jyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBU
eXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBldmVudC5yZWdpc3RlckZvcmVp
Z25GZXRjaCh7c2NvcGVzOiBbc2NvcGVdLCBvcmlnaW5zOiB7fX0pOworICAgICAgICAgIH0pOwor
ICAgICAgfSwgJ09yaWdpbnMgbm90IGEgc3RyaW5nIG9yIGFycmF5Jyk7CisKKyAgICB0ZXN0KGZ1
bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBldmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBb
c2NvcGVdLCBvcmlnaW5zOiBbe31dfSk7CisgICAgICAgICAgfSk7CisgICAgICB9LCAnT3JpZ2lu
cyBjb250YWlucyBzb21ldGhpbmcgbm90IGEgc3RyaW5nJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9u
KCkgeworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBldmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBbc2NvcGVd
LCBvcmlnaW5zOiBbJy9mb28nXX0pOworICAgICAgICAgIH0pOworICAgICAgfSwgJ09yaWdpbiBu
b3QgYW4gYWJzb2x1dGUgVVJMJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBl
dmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBbc2NvcGVdLCBvcmlnaW5zOiBbJyon
XX0pOworICAgICAgfSwgJ1dpbGRjYXJkIG9yaWdpbiBzdHJpbmcgaW4gYXJyYXknKTsKKworICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2ZW50LnJlZ2lzdGVyRm9yZWlnbkZldGNoKHtz
Y29wZXM6IFtzY29wZV0sIG9yaWdpbnM6ICdodHRwczovL2V4YW1wbGUuY29tLyd9KTsKKyAgICAg
ICAgICB9KTsKKyAgICAgIH0sICdPcmlnaW4gc3RyaW5nJyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9u
KCkgeworICAgICAgICBldmVudC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7c2NvcGVzOiBbc2NvcGVd
LCBvcmlnaW5zOiBbJ2h0dHBzOi8vZXhhbXBsZS5jb20vJ119KTsKKyAgICAgIH0sICdPcmlnaW4g
c3RyaW5nIGluIGFycmF5Jyk7CisKKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICBldmVu
dC5yZWdpc3RlckZvcmVpZ25GZXRjaCh7CisgICAgICAgICAgICBzY29wZXM6IFtzY29wZV0sIG9y
aWdpbnM6IFsnaHR0cHM6Ly9leGFtcGxlLmNvbS8nLCAnaHR0cHM6Ly9jaHJvbWl1bS5vcmcnXX0p
OworICAgICAgfSwgJ0FycmF5IHdpdGggbXVsdGlwbGUgb3JpZ2lucycpOworCisgICAgdGVzdChm
dW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgZXZlbnQucmVnaXN0ZXJGb3JlaWduRmV0Y2goe3Njb3Blczog
W3Njb3BlXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5z
OiBbJyonLCAnaHR0cHM6Ly9leGFtcGxlLmNvbS8nXX0pOworICAgICAgICAgIH0pOworICAgICAg
fSwgJ09yaWdpbnMgaW5jbHVkZXMgd2lsZGNhcmQgYW5kIG90aGVyIHN0cmluZ3MnKTsKKworICAg
IHRlc3QoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5cGVFcnJvcigp
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGV2ZW50LnJlZ2lzdGVyRm9yZWlnbkZldGNoKHtz
Y29wZXM6IFtzY29wZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3JpZ2luczogWydodHRwczovL2V4YW1wbGUuY29tLycsICcqJ119KTsKKyAgICAgICAgICB9KTsK
KyAgICAgIH0sICdPcmlnaW5zIGluY2x1ZGVzIG90aGVyIHN0cmluZ3MgYW5kIHdpbGRjYXJkJyk7
CisgIH0pOworCisvLyBJbXBvcnQgdGVzdGhhcm5lc3MgYWZ0ZXIgaW5zdGFsbCBoYW5kbGVyIHRv
IG1ha2Ugc3VyZSBvdXIgaW5zdGFsbCBoYW5kbGVyCisvLyBydW5zIGZpcnN0LiBPdGhlcndpc2Ug
b25seSBvbmUgdGVzdCB3aWxsIHJ1bi4KK2ltcG9ydFNjcmlwdHMoJy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdp
c3Rlci1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Rlci1p
ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWEwNDBlNDFkOTZhNWU2OTk1YjkyNTQyZWM5OGNjNWM5
MjZlZWJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
Z2lzdGVyLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJ2VtcHR5LXdvcmtl
ci5qcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2NvcGU6ICdyZWdpc3Rl
ci1pZnJhbWUuaHRtbCd9KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10ZXN0cy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y2MDYyODE5MTJhMmQ3
YTkwN2M1YjJmZWU4N2EyMzI5ZjU2MzY3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMuanMKQEAgLTAsMCArMSw0NjAgQEAK
K2Z1bmN0aW9uIHJlZ2lzdHJhdGlvbl90ZXN0cyhyZWdpc3Rlcl9tZXRob2QsIGNoZWNrX2Vycm9y
X3R5cGVzKSB7CisgIC8vIFRoZSBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG1l
dGhvZCBndWFyYW50ZWVzIHRoYXQgdGhlIG5ld2x5CisgIC8vIGluc3RhbGxpbmcgd29ya2VyIGlz
IGF2YWlsYWJsZSBhcyByZWdpc3RyYXRpb24uaW5zdGFsbGluZyB3aGVuIGl0cyBwcm9taXNlCisg
IC8vIHJlc29sdmVzLiBIb3dldmVyIHRoZXNlIHRlc3RzIGFyZSBhbHNvIHVzZWQgdG8gdGVzdCBp
bnN0YWxsYXRpb24gdXNpbmcgYQorICAvLyA8bGluaz4gZWxlbWVudCB3aGVyZSBpdCBpcyBwb3Nz
aWJsZSBmb3IgdGhlIGluc3RhbGxpbmcgd29ya2VyIHRvIGhhdmUKKyAgLy8gYWxyZWFkeSBiZWNv
bWUgdGhlIHdhaXRpbmcgb3IgYWN0aXZlIHdvcmtlci4gU28gVGhpcyBtZXRob2QgaXMgdXNlZCB0
byBnZXQKKyAgLy8gdGhlIG5ld2VzdCB3b3JrZXIgd2hlbiB0aGVzZSB0ZXN0cyBuZWVkIGFjY2Vz
cyB0byB0aGUgU2VydmljZVdvcmtlciBpdHNlbGYuCisgIGZ1bmN0aW9uIGdldF9uZXdlc3Rfd29y
a2VyKHJlZ2lzdHJhdGlvbikgeworICAgIGlmIChyZWdpc3RyYXRpb24uaW5zdGFsbGluZykKKyAg
ICAgIHJldHVybiByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICBpZiAocmVnaXN0cmF0aW9u
LndhaXRpbmcpCisgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLndhaXRpbmc7CisgICAgaWYgKHJl
Z2lzdHJhdGlvbi5hY3RpdmUpCisgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAg
fQorCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jl
c291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvcmVnaXN0cmF0aW9uL25vcm1hbCc7CisgICAgICByZXR1cm4gcmVnaXN0ZXJfbWV0aG9k
KHNjcmlwdCwge3Njb3BlOiBzY29wZX0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJh
dGlvbikgeworICAgICAgICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgICAgICAgIHJlZ2lzdHJh
dGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24sCisgICAgICAgICAgICAg
ICdTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC4nKTsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgIH0pOworICAgIH0sICdSZWdpc3RlcmluZyBu
b3JtYWwgc2NvcGUnKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgdmFy
IHNjcmlwdCA9ICdyZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXdvcmtlci5qcyc7CisgICAgICB2YXIg
c2NvcGUgPSAncmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi9zY29wZS13aXRoLWZyYWdtZW50I3JlZic7
CisgICAgICByZXR1cm4gcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pCisg
ICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgICAgYXNzZXJ0
X3RydWUoCisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24sCisgICAgICAgICAgICAgICdTdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZC4n
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlv
bi5zY29wZSwKKyAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvcmVnaXN0cmF0
aW9uL3Njb3BlLXdpdGgtZnJhZ21lbnQnKSwKKyAgICAgICAgICAgICAgJ0EgZnJhZ21lbnQgc2hv
dWxkIGJlIHJlbW92ZWQgZnJvbSBzY29wZScpCisgICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICB9KTsKKyAgICB9LCAnUmVnaXN0ZXJpbmcgc2Nv
cGUgd2l0aCBmcmFnbWVudCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
ICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKKyAgICAg
IHZhciBzY29wZSA9ICdyZXNvdXJjZXMvJzsKKyAgICAgIHJldHVybiByZWdpc3Rlcl9tZXRob2Qo
c2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0
aW9uKSB7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgICAgICAgICAgcmVnaXN0cmF0
aW9uIGluc3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwKKyAgICAgICAgICAgICAg
J1N1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLicpOworICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJh
dGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAgfSk7CisgICAgfSwgJ1JlZ2lzdGVyaW5nIHNh
bWUgc2NvcGUgYXMgdGhlIHNjcmlwdCBkaXJlY3RvcnknKTsKKworICBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24odCkgeworICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXdv
cmtlci5qcyc7CisgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzJzsKKyAgICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBjaGVja19lcnJvcl90eXBlcyA/ICdTZWN1cml0
eUVycm9yJyA6IG51bGwsCisgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3Bl
OiBzY29wZX0pLAorICAgICAgICAgICdSZWdpc3RlcmluZyBzYW1lIHNjb3BlIGFzIHRoZSBzY3Jp
cHQgZGlyZWN0b3J5IHdpdGhvdXQgdGhlIGxhc3QgJyArCisgICAgICAgICAgICAgICdzbGFzaCBz
aG91bGQgZmFpbCB3aXRoIFNlY3VyaXR5RXJyb3IuJyk7CisgICAgfSwgJ1JlZ2lzdGVyaW5nIHNh
bWUgc2NvcGUgYXMgdGhlIHNjcmlwdCBkaXJlY3Rvcnkgd2l0aG91dCB0aGUgbGFzdCBzbGFzaCcp
OworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jl
c291cmNlcy9yZWdpc3RyYXRpb24td29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29wZSA9ICdkaWZm
ZXJlbnQtZGlyZWN0b3J5Lyc7CisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAg
ICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyAnU2VjdXJpdHlFcnJvcicgOiBudWxsLAorICAgICAg
ICAgIHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAn
UmVnaXN0cmF0aW9uIHNjb3BlIG91dHNpZGUgdGhlIHNjcmlwdCBkaXJlY3Rvcnkgc2hvdWxkIGZh
aWwgJyArCisgICAgICAgICAgICAgICd3aXRoIFNlY3VyaXR5RXJyb3IuJyk7CisgICAgfSwgJ1Jl
Z2lzdHJhdGlvbiBzY29wZSBvdXRzaWRlIHRoZSBzY3JpcHQgZGlyZWN0b3J5Jyk7CisKKyAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL3Jl
Z2lzdHJhdGlvbi13b3JrZXIuanMnOworICAgICAgdmFyIHNjb3BlID0gJ2h0dHA6Ly9leGFtcGxl
LmNvbS8nOworICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNr
X2Vycm9yX3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwKKyAgICAgICAgICByZWdpc3Rl
cl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCisgICAgICAgICAgJ1JlZ2lzdHJhdGlv
biBzY29wZSBvdXRzaWRlIGRvbWFpbiBzaG91bGQgZmFpbCB3aXRoIFNlY3VyaXR5RXJyb3IuJyk7
CisgICAgfSwgJ1JlZ2lzdGVyaW5nIHNjb3BlIG91dHNpZGUgZG9tYWluJyk7CisKKyAgcHJvbWlz
ZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAnaHR0cDovL2V4YW1wbGUu
Y29tL3dvcmtlci5qcyc7CisgICAgICB2YXIgc2NvcGUgPSAnaHR0cDovL2V4YW1wbGUuY29tL3Nj
b3BlLyc7CisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAgICAgY2hlY2tf
ZXJyb3JfdHlwZXMgPyAnU2VjdXJpdHlFcnJvcicgOiBudWxsLAorICAgICAgICAgIHJlZ2lzdGVy
X21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnUmVnaXN0cmF0aW9u
IHNjcmlwdCBvdXRzaWRlIGRvbWFpbiBzaG91bGQgZmFpbCB3aXRoIFNlY3VyaXR5RXJyb3IuJyk7
CisgICAgfSwgJ1JlZ2lzdGVyaW5nIHNjcmlwdCBvdXRzaWRlIGRvbWFpbicpOworCisgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9uby1z
dWNoLXdvcmtlci5qcyc7CisgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL25vLXN1
Y2gtd29ya2VyJzsKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBj
aGVja19lcnJvcl90eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAgIHJlZ2lz
dGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnUmVnaXN0cmF0
aW9uIG9mIG5vbi1leGlzdGVudCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CisgICAgfSwgJ1JlZ2lz
dGVyaW5nIG5vbi1leGlzdGVudCBzY3JpcHQnKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dCkgeworICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvaW52YWxpZC1jaHVua2VkLWVuY29k
aW5nLnB5JzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvaW52YWxpZC1jaHVu
a2VkLWVuY29kaW5nLyc7CisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAg
ICAgY2hlY2tfZXJyb3JfdHlwZXMgPyBuZXcgVHlwZUVycm9yIDogbnVsbCwKKyAgICAgICAgICBy
ZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCisgICAgICAgICAgJ1JlZ2lz
dHJhdGlvbiBvZiBpbnZhbGlkIGNodW5rZWQgZW5jb2Rpbmcgc2NyaXB0IHNob3VsZCBmYWlsLicp
OworICAgIH0sICdSZWdpc3RlcmluZyBpbnZhbGlkIGNodW5rZWQgZW5jb2Rpbmcgc2NyaXB0Jyk7
CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVz
b3VyY2VzL2ludmFsaWQtY2h1bmtlZC1lbmNvZGluZy13aXRoLWZsdXNoLnB5JzsKKyAgICAgIHZh
ciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvaW52YWxpZC1jaHVua2VkLWVuY29kaW5nLXdpdGgt
Zmx1c2gvJzsKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBjaGVj
a19lcnJvcl90eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAgIHJlZ2lzdGVy
X21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnUmVnaXN0cmF0aW9u
IG9mIGludmFsaWQgY2h1bmtlZCBlbmNvZGluZyBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CisgICAg
fSwgJ1JlZ2lzdGVyaW5nIGludmFsaWQgY2h1bmtlZCBlbmNvZGluZyBzY3JpcHQgd2l0aCBmbHVz
aCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0g
J3Jlc291cmNlcy9taW1lLXR5cGUtd29ya2VyLnB5JzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvc2NvcGUvbm8tbWltZS10eXBlLXdvcmtlci8nOworICAgICAgcmV0dXJuIHByb21pc2Vf
cmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gJ1NlY3VyaXR5RXJyb3In
IDogbnVsbCwKKyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3Bl
fSksCisgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBubyBNSU1FIHR5cGUgc2NyaXB0IHNob3Vs
ZCBmYWlsLicpOworICAgIH0sICdSZWdpc3RlcmluZyBzY3JpcHQgd2l0aCBubyBNSU1FIHR5cGUn
KTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgdmFyIHNjcmlwdCA9ICdy
ZXNvdXJjZXMvbWltZS10eXBlLXdvcmtlci5weT9taW1lPXRleHQvcGxhaW4nOworICAgICAgdmFy
IHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9iYWQtbWltZS10eXBlLXdvcmtlci8nOworICAgICAg
cmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8g
J1NlY3VyaXR5RXJyb3InIDogbnVsbCwKKyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0
LCB7c2NvcGU6IHNjb3BlfSksCisgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBwbGFpbiB0ZXh0
IHNjcmlwdCBzaG91bGQgZmFpbC4nKTsKKyAgICB9LCAnUmVnaXN0ZXJpbmcgc2NyaXB0IHdpdGgg
YmFkIE1JTUUgdHlwZScpOworCisgIGNvbnN0IHZhbGlkTWltZVR5cGVzID0gWworICAgICdhcHBs
aWNhdGlvbi9lY21hc2NyaXB0JywKKyAgICAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcsCisgICAg
J2FwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCcsCisgICAgJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlw
dCcsCisgICAgJ3RleHQvZWNtYXNjcmlwdCcsCisgICAgJ3RleHQvamF2YXNjcmlwdCcsCisgICAg
J3RleHQvamF2YXNjcmlwdDEuMCcsCisgICAgJ3RleHQvamF2YXNjcmlwdDEuMScsCisgICAgJ3Rl
eHQvamF2YXNjcmlwdDEuMicsCisgICAgJ3RleHQvamF2YXNjcmlwdDEuMycsCisgICAgJ3RleHQv
amF2YXNjcmlwdDEuNCcsCisgICAgJ3RleHQvamF2YXNjcmlwdDEuNScsCisgICAgJ3RleHQvanNj
cmlwdCcsCisgICAgJ3RleHQvbGl2ZXNjcmlwdCcsCisgICAgJ3RleHQveC1lY21hc2NyaXB0JywK
KyAgICAndGV4dC94LWphdmFzY3JpcHQnCisgIF07CisKKyAgZm9yIChjb25zdCB2YWxpZE1pbWVU
eXBlIG9mIHZhbGlkTWltZVR5cGVzKSB7CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAg
IHZhciBzY3JpcHQgPSBgcmVzb3VyY2VzL21pbWUtdHlwZS13b3JrZXIucHk/bWltZT0ke3ZhbGlk
TWltZVR5cGV9YDsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ29vZC1taW1l
LXR5cGUtd29ya2VyLyc7CisKKyAgICAgIHJldHVybiByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7
c2NvcGV9KS50aGVuKHJlZ2lzdHJhdGlvbiA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKAorICAg
ICAgICAgIHJlZ2lzdHJhdGlvbiBpbnN0YW5jZW9mIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24s
CisgICAgICAgICAgJ1N1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLicpOworICAgICAgICByZXR1cm4g
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgIH0pOworICAgIH0sIGBSZWdpc3Rlcmlu
ZyBzY3JpcHQgd2l0aCBnb29kIE1JTUUgdHlwZSAke3ZhbGlkTWltZVR5cGV9YCk7CisKKyAgICBw
cm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgdmFyIHNjcmlwdCA9IGByZXNvdXJjZXMvaW1wb3J0
LW1pbWUtdHlwZS13b3JrZXIucHk/bWltZT0ke3ZhbGlkTWltZVR5cGV9YDsKKyAgICAgIHZhciBz
Y29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZ29vZC1taW1lLXR5cGUtd29ya2VyLyc7CisKKyAgICAg
IHJldHVybiByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7IHNjb3BlIH0pLnRoZW4ocmVnaXN0cmF0
aW9uID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoCisgICAgICAgICAgcmVnaXN0cmF0aW9uIGlu
c3RhbmNlb2YgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiwKKyAgICAgICAgICAnU3VjY2Vzc2Z1
bGx5IHJlZ2lzdGVyZWQuJyk7CisgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICAgICAgfSk7CisgICAgfSwgYFJlZ2lzdGVyaW5nIHNjcmlwdCB0aGF0IGltcG9ydHMg
c2NyaXB0IHdpdGggZ29vZCBNSU1FIHR5cGUgJHt2YWxpZE1pbWVUeXBlfWApOworICB9CisKKyAg
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2Vz
L2ltcG9ydC1taW1lLXR5cGUtd29ya2VyLnB5JzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNvdXJj
ZXMvc2NvcGUvbm8tbWltZS10eXBlLXdvcmtlci8nOworICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDog
bnVsbCwKKyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSks
CisgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBubyBNSU1FIHR5cGUgaW1wb3J0ZWQgc2NyaXB0
IHNob3VsZCBmYWlsLicpOworICAgIH0sICdSZWdpc3RlcmluZyBzY3JpcHQgdGhhdCBpbXBvcnRz
IHNjcmlwdCB3aXRoIG5vIE1JTUUgdHlwZScpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0
KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9pbXBvcnQtbWltZS10eXBlLXdvcmtl
ci5weT9taW1lPXRleHQvcGxhaW4nOworICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29w
ZS9iYWQtbWltZS10eXBlLXdvcmtlci8nOworICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0
LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwK
KyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCisgICAg
ICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBwbGFpbiB0ZXh0IGltcG9ydGVkIHNjcmlwdCBzaG91bGQg
ZmFpbC4nKTsKKyAgICB9LCAnUmVnaXN0ZXJpbmcgc2NyaXB0IHRoYXQgaW1wb3J0cyBzY3JpcHQg
d2l0aCBiYWQgTUlNRSB0eXBlJyk7CisKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewor
ICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvcmVkaXJlY3QucHk/UmVkaXJlY3Q9JyArCisg
ICAgICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudCgnL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24td29ya2VyLmpzJyk7CisgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3Jl
ZGlyZWN0Lyc7CisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAgICAgY2hl
Y2tfZXJyb3JfdHlwZXMgPyAnU2VjdXJpdHlFcnJvcicgOiBudWxsLAorICAgICAgICAgIHJlZ2lz
dGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnUmVnaXN0cmF0
aW9uIG9mIHJlZGlyZWN0ZWQgc2NyaXB0IHNob3VsZCBmYWlsLicpOworICAgIH0sICdSZWdpc3Rl
cmluZyByZWRpcmVjdGVkIHNjcmlwdCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5P3BhcnNl
LWVycm9yJzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvcGFyc2UtZXJyb3In
OworICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9y
X3R5cGVzID8gbmV3IFR5cGVFcnJvciA6IG51bGwsCisgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9k
KHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgICAgICdSZWdpc3RyYXRpb24gb2Ygc2Ny
aXB0IGluY2x1ZGluZyBwYXJzZSBlcnJvciBzaG91bGQgZmFpbC4nKTsKKyAgICB9LCAnUmVnaXN0
ZXJpbmcgc2NyaXB0IGluY2x1ZGluZyBwYXJzZSBlcnJvcicpOworCisgIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29y
a2VyLnB5P3VuZGVmaW5lZC1lcnJvcic7CisgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Nj
b3BlL3VuZGVmaW5lZC1lcnJvcic7CisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHQsCisg
ICAgICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyBuZXcgVHlwZUVycm9yIDogbnVsbCwKKyAgICAg
ICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCisgICAgICAgICAg
J1JlZ2lzdHJhdGlvbiBvZiBzY3JpcHQgaW5jbHVkaW5nIHVuZGVmaW5lZCBlcnJvciBzaG91bGQg
ZmFpbC4nKTsKKyAgICB9LCAnUmVnaXN0ZXJpbmcgc2NyaXB0IGluY2x1ZGluZyB1bmRlZmluZWQg
ZXJyb3InKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgdmFyIHNjcmlw
dCA9ICdyZXNvdXJjZXMvbWFsZm9ybWVkLXdvcmtlci5weT91bmNhdWdodC1leGNlcHRpb24nOwor
ICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bmNhdWdodC1leGNlcHRpb24nOwor
ICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5
cGVzID8gbmV3IFR5cGVFcnJvciA6IG51bGwsCisgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNj
cmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgICAgICdSZWdpc3RyYXRpb24gb2Ygc2NyaXB0
IGluY2x1ZGluZyB1bmNhdWdodCBleGNlcHRpb24gc2hvdWxkIGZhaWwuJyk7CisgICAgfSwgJ1Jl
Z2lzdGVyaW5nIHNjcmlwdCBpbmNsdWRpbmcgdW5jYXVnaHQgZXhjZXB0aW9uJyk7CisKKyAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL21h
bGZvcm1lZC13b3JrZXIucHk/Y2F1Z2h0LWV4Y2VwdGlvbic7CisgICAgICB2YXIgc2NvcGUgPSAn
cmVzb3VyY2VzL3Njb3BlL2NhdWdodC1leGNlcHRpb24nOworICAgICAgcmV0dXJuIHJlZ2lzdGVy
X21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KQorICAgICAgICAudGhlbihmdW5jdGlvbihy
ZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKAorICAgICAgICAgICAgICBy
ZWdpc3RyYXRpb24gaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLAorICAgICAg
ICAgICAgICAnU3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQuJyk7CisgICAgICAgICAgICByZXR1cm4g
cmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICB9KTsKKyAgICB9LCAnUmVnaXN0
ZXJpbmcgc2NyaXB0IGluY2x1ZGluZyBjYXVnaHQgZXhjZXB0aW9uJyk7CisKKyAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL21hbGZvcm1l
ZC13b3JrZXIucHk/aW1wb3J0LW1hbGZvcm1lZC1zY3JpcHQnOworICAgICAgdmFyIHNjb3BlID0g
J3Jlc291cmNlcy9zY29wZS9pbXBvcnQtbWFsZm9ybWVkLXNjcmlwdCc7CisgICAgICByZXR1cm4g
cHJvbWlzZV9yZWplY3RzKHQsCisgICAgICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyBuZXcgVHlw
ZUVycm9yIDogbnVsbCwKKyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6
IHNjb3BlfSksCisgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBzY3JpcHQgaW1wb3J0aW5nIG1h
bGZvcm1lZCBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CisgICAgfSwgJ1JlZ2lzdGVyaW5nIHNjcmlw
dCBpbXBvcnRpbmcgbWFsZm9ybWVkIHNjcmlwdCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9tYWxmb3JtZWQtd29ya2VyLnB5
P2ltcG9ydC1uby1zdWNoLXNjcmlwdCc7CisgICAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Nj
b3BlL2ltcG9ydC1uby1zdWNoLXNjcmlwdCc7CisgICAgICByZXR1cm4gcHJvbWlzZV9yZWplY3Rz
KHQsCisgICAgICAgICAgY2hlY2tfZXJyb3JfdHlwZXMgPyBuZXcgVHlwZUVycm9yIDogbnVsbCwK
KyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCisgICAg
ICAgICAgJ1JlZ2lzdHJhdGlvbiBvZiBzY3JpcHQgaW1wb3J0aW5nIG5vbi1leGlzdGVudCBzY3Jp
cHQgc2hvdWxkIGZhaWwuJyk7CisgICAgfSwgJ1JlZ2lzdGVyaW5nIHNjcmlwdCBpbXBvcnRpbmcg
bm9uLWV4aXN0ZW50IHNjcmlwdCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgICAvLyBVUkwtZW5jb2RlZCBmdWxsLXdpZHRoICdzY29wZScuCisgICAgICB2YXIgbmFtZSA9
ICclZWYlYmQlOTMlZWYlYmQlODMlZWYlYmQlOGYlZWYlYmQlOTAlZWYlYmQlODUnOworICAgICAg
dmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29w
ZSA9ICdyZXNvdXJjZXMvJyArIG5hbWUgKyAnL2VzY2FwZWQtbXVsdGlieXRlLWNoYXJhY3Rlci1z
Y29wZSc7CisgICAgICByZXR1cm4gcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBzY29w
ZX0pCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgcmVnaXN0cmF0aW9uLnNjb3BlLAorICAgICAg
ICAgICAgICBub3JtYWxpemVVUkwoc2NvcGUpLAorICAgICAgICAgICAgICAnVVJMLWVuY29kZWQg
bXVsdGlieXRlIGNoYXJhY3RlcnMgc2hvdWxkIGJlIGF2YWlsYWJsZS4nKTsKKyAgICAgICAgICAg
IHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgIH0pOworICAgIH0s
ICdTY29wZSBpbmNsdWRpbmcgVVJMLWVuY29kZWQgbXVsdGlieXRlIGNoYXJhY3RlcnMnKTsKKwor
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgLy8gTm9uLVVSTC1lbmNvZGVkIGZ1
bGwtd2lkdGggInNjb3BlIi4KKyAgICAgIHZhciBuYW1lID0gU3RyaW5nLmZyb21Db2RlUG9pbnQo
MHhmZjUzLCAweGZmNDMsIDB4ZmY0ZiwgMHhmZjUwLCAweGZmNDUpOworICAgICAgdmFyIHNjcmlw
dCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvJyArIG5hbWUgICsgJy9ub24tZXNjYXBlZC1tdWx0aWJ5dGUtY2hhcmFjdGVyLXNjb3Bl
JzsKKyAgICAgIHJldHVybiByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkK
KyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKAorICAgICAgICAgICAgICByZWdpc3RyYXRpb24uc2NvcGUsCisgICAgICAgICAg
ICAgIG5vcm1hbGl6ZVVSTChzY29wZSksCisgICAgICAgICAgICAgICdOb24tVVJMLWVuY29kZWQg
bXVsdGlieXRlIGNoYXJhY3RlcnMgc2hvdWxkIGJlIGF2YWlsYWJsZS4nKTsKKyAgICAgICAgICAg
IHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgIH0pOworICAgIH0s
ICdTY29wZSBpbmNsdWRpbmcgbm9uLWVzY2FwZWQgbXVsdGlieXRlIGNoYXJhY3RlcnMnKTsKKwor
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJj
ZXMlMmZlbXB0eS13b3JrZXIuanMnOworICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29w
ZS9lbmNvZGVkLXNsYXNoLWluLXNjcmlwdC11cmwnOworICAgICAgcmV0dXJuIHByb21pc2VfcmVq
ZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gbmV3IFR5cGVFcnJvciA6IG51
bGwsCisgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAor
ICAgICAgICAgICdVUkwtZW5jb2RlZCBzbGFzaCBpbiB0aGUgc2NyaXB0IFVSTCBzaG91bGQgYmUg
cmVqZWN0ZWQuJyk7CisgICAgfSwgJ1NjcmlwdCBVUkwgaW5jbHVkaW5nIFVSTC1lbmNvZGVkIHNs
YXNoJyk7CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQg
PSAncmVzb3VyY2VzJTJGZW1wdHktd29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNv
dXJjZXMvc2NvcGUvZW5jb2RlZC1zbGFzaC1pbi1zY3JpcHQtdXJsJzsKKyAgICAgIHJldHVybiBw
cm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBjaGVja19lcnJvcl90eXBlcyA/IG5ldyBUeXBl
RXJyb3IgOiBudWxsLAorICAgICAgICAgIHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTog
c2NvcGV9KSwKKyAgICAgICAgICAnVVJMLWVuY29kZWQgc2xhc2ggaW4gdGhlIHNjcmlwdCBVUkwg
c2hvdWxkIGJlIHJlamVjdGVkLicpOworICAgIH0sICdTY3JpcHQgVVJMIGluY2x1ZGluZyB1cHBl
cmNhc2UgVVJMLWVuY29kZWQgc2xhc2gnKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgICAgdmFyIHNjcmlwdCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgICAg
IHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUlMmZlbmNvZGVkLXNsYXNoLWluLXNjb3BlJzsK
KyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBjaGVja19lcnJvcl90
eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAgIHJlZ2lzdGVyX21ldGhvZChz
Y3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnVVJMLWVuY29kZWQgc2xhc2ggaW4g
dGhlIHNjb3BlIHNob3VsZCBiZSByZWplY3RlZC4nKTsKKyAgICB9LCAnU2NvcGUgaW5jbHVkaW5n
IFVSTC1lbmNvZGVkIHNsYXNoJyk7CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzJTVjZW1wdHktd29ya2VyLmpzJzsKKyAgICAgIHZh
ciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZW5jb2RlZC1zbGFzaC1pbi1zY3JpcHQtdXJsJzsK
KyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBjaGVja19lcnJvcl90
eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAgIHJlZ2lzdGVyX21ldGhvZChz
Y3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnVVJMLWVuY29kZWQgYmFja3NsYXNo
IGluIHRoZSBzY3JpcHQgVVJMIHNob3VsZCBiZSByZWplY3RlZC4nKTsKKyAgICB9LCAnU2NyaXB0
IFVSTCBpbmNsdWRpbmcgVVJMLWVuY29kZWQgYmFja3NsYXNoJyk7CisKKyAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHQpIHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzJTVDZW1wdHktd29y
a2VyLmpzJzsKKyAgICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvZW5jb2RlZC1zbGFz
aC1pbi1zY3JpcHQtdXJsJzsKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAg
ICAgICBjaGVja19lcnJvcl90eXBlcyA/IG5ldyBUeXBlRXJyb3IgOiBudWxsLAorICAgICAgICAg
IHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KSwKKyAgICAgICAgICAnVVJM
LWVuY29kZWQgYmFja3NsYXNoIGluIHRoZSBzY3JpcHQgVVJMIHNob3VsZCBiZSByZWplY3RlZC4n
KTsKKyAgICB9LCAnU2NyaXB0IFVSTCBpbmNsdWRpbmcgdXBwZXJjYXNlIFVSTC1lbmNvZGVkIGJh
Y2tzbGFzaCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB2YXIgc2Ny
aXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICAgICAgdmFyIHNjb3BlID0gJ3Jl
c291cmNlcy9zY29wZSU1Y2VuY29kZWQtc2xhc2gtaW4tc2NvcGUnOworICAgICAgcmV0dXJuIHBy
b21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gbmV3IFR5cGVF
cnJvciA6IG51bGwsCisgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBz
Y29wZX0pLAorICAgICAgICAgICdVUkwtZW5jb2RlZCBiYWNrc2xhc2ggaW4gdGhlIHNjb3BlIHNo
b3VsZCBiZSByZWplY3RlZC4nKTsKKyAgICB9LCAnU2NvcGUgaW5jbHVkaW5nIFVSTC1lbmNvZGVk
IGJhY2tzbGFzaCcpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgICB2YXIg
c2NyaXB0ID0gJ3Jlc291cmNlcy8uLy4vZW1wdHktd29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29w
ZSA9ICdyZXNvdXJjZXMvc2NvcGUvcGFyZW50LXJlZmVyZW5jZS1pbi1zY3JpcHQtdXJsJzsKKyAg
ICAgIHJldHVybiByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSkKKyAgICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKAorICAgICAgICAgICAgICBnZXRfbmV3ZXN0X3dvcmtlcihyZWdpc3RyYXRpb24pLnNjcmlw
dFVSTCwKKyAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvZW1wdHktd29ya2Vy
LmpzJyksCisgICAgICAgICAgICAgICdTY3JpcHQgVVJMIGluY2x1ZGluZyBzZWxmLXJlZmVyZW5j
ZSBzaG91bGQgYmUgbm9ybWFsaXplZC4nKTsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYXRp
b24udW5yZWdpc3RlcigpOworICAgICAgICAgIH0pOworICAgIH0sICdTY3JpcHQgVVJMIGluY2x1
ZGluZyBzZWxmLXJlZmVyZW5jZScpOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0KSB7Cisg
ICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICAgICAgdmFy
IHNjb3BlID0gJ3Jlc291cmNlcy8uLy4vc2NvcGUvc2VsZi1yZWZlcmVuY2UtaW4tc2NvcGUnOwor
ICAgICAgcmV0dXJuIHJlZ2lzdGVyX21ldGhvZChzY3JpcHQsIHtzY29wZTogc2NvcGV9KQorICAg
ICAgICAudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoCisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi5zY29wZSwKKyAgICAgICAgICAgICAg
bm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvc2NvcGUvc2VsZi1yZWZlcmVuY2UtaW4tc2NvcGUnKSwK
KyAgICAgICAgICAgICAgJ1Njb3BlIGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZSBzaG91bGQgYmUg
bm9ybWFsaXplZC4nKTsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3Rl
cigpOworICAgICAgICAgIH0pOworICAgIH0sICdTY29wZSBpbmNsdWRpbmcgc2VsZi1yZWZlcmVu
Y2UnKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgdmFyIHNjcmlwdCA9
ICdyZXNvdXJjZXMvLi4vcmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgICAgICB2YXIgc2Nv
cGUgPSAncmVzb3VyY2VzL3Njb3BlL3BhcmVudC1yZWZlcmVuY2UtaW4tc2NyaXB0LXVybCc7Cisg
ICAgICByZXR1cm4gcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pCisgICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscygKKyAgICAgICAgICAgICAgZ2V0X25ld2VzdF93b3JrZXIocmVnaXN0cmF0aW9uKS5zY3Jp
cHRVUkwsCisgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTCgncmVzb3VyY2VzL2VtcHR5LXdvcmtl
ci5qcycpLAorICAgICAgICAgICAgICAnU2NyaXB0IFVSTCBpbmNsdWRpbmcgcGFyZW50LXJlZmVy
ZW5jZSBzaG91bGQgYmUgbm9ybWFsaXplZC4nKTsKKyAgICAgICAgICAgIHJldHVybiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOworICAgICAgICAgIH0pOworICAgIH0sICdTY3JpcHQgVVJMIGlu
Y2x1ZGluZyBwYXJlbnQtcmVmZXJlbmNlJyk7CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgICAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLy4uL3Jlc291cmNlcy9zY29wZS9wYXJlbnQtcmVmZXJl
bmNlLWluLXNjb3BlJzsKKyAgICAgIHJldHVybiByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2Nv
cGU6IHNjb3BlfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICByZWdpc3RyYXRpb24uc2NvcGUs
CisgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTCgncmVzb3VyY2VzL3Njb3BlL3BhcmVudC1yZWZl
cmVuY2UtaW4tc2NvcGUnKSwKKyAgICAgICAgICAgICAgJ1Njb3BlIGluY2x1ZGluZyBwYXJlbnQt
cmVmZXJlbmNlIHNob3VsZCBiZSBub3JtYWxpemVkLicpOworICAgICAgICAgICAgcmV0dXJuIHJl
Z2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgICAgfSk7CisgICAgfSwgJ1Njb3BlIGlu
Y2x1ZGluZyBwYXJlbnQtcmVmZXJlbmNlJyk7CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQp
IHsKKyAgICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgICAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLy4uL3Njb3BlL3BhcmVudC1yZWZlcmVuY2UtaW4tc2Nv
cGUnOworICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vy
cm9yX3R5cGVzID8gJ1NlY3VyaXR5RXJyb3InIDogbnVsbCwKKyAgICAgICAgICByZWdpc3Rlcl9t
ZXRob2Qoc2NyaXB0LCB7c2NvcGU6IHNjb3BlfSksCisgICAgICAgICAgJ1Njb3BlIG5vdCB1bmRl
ciB0aGUgc2NyaXB0IGRpcmVjdG9yeSBzaG91bGQgYmUgcmVqZWN0ZWQuJyk7CisgICAgfSwgJ1Nj
b3BlIGluY2x1ZGluZyBwYXJlbnQtcmVmZXJlbmNlIGFuZCBub3QgdW5kZXIgdGhlIHNjcmlwdCBk
aXJlY3RvcnknKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAgdmFyIHNj
cmlwdCA9ICdyZXNvdXJjZXMvLy8vZW1wdHktd29ya2VyLmpzJzsKKyAgICAgIHZhciBzY29wZSA9
ICdyZXNvdXJjZXMvc2NvcGUvY29uc2VjdXRpdmUtc2xhc2hlcy1pbi1zY3JpcHQtdXJsJzsKKyAg
ICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAgICAgICBjaGVja19lcnJvcl90eXBl
cyA/ICdTZWN1cml0eUVycm9yJyA6IG51bGwsCisgICAgICAgICAgcmVnaXN0ZXJfbWV0aG9kKHNj
cmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgICAgICdDb25zZWN1dGl2ZSBzbGFzaGVzIGlu
IHRoZSBzY3JpcHQgdXJsIHNob3VsZCBub3QgYmUgdW5pZmllZC4nKTsKKyAgICB9LCAnU2NyaXB0
IFVSTCBpbmNsdWRpbmcgY29uc2VjdXRpdmUgc2xhc2hlcycpOworCisgIHByb21pc2VfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIu
anMnOworICAgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS8vLy9jb25zZWN1dGl2ZS1z
bGFzaGVzLWluLXNjb3BlJzsKKyAgICAgIHJldHVybiByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7
c2NvcGU6IHNjb3BlfSkKKyAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7Cisg
ICAgICAgICAgICAvLyBBbHRob3VnaCBjb25zZWN1dGl2ZSBzbGFzaGVzIGluIHRoZSBzY29wZSBh
cmUgbm90IHVuaWZpZWQsIHRoZQorICAgICAgICAgICAgLy8gc2NvcGUgaXMgdW5kZXIgdGhlIHNj
cmlwdCBkaXJlY3RvcnkgYW5kIHJlZ2lzdHJhdGlvbiBzaG91bGQKKyAgICAgICAgICAgIC8vIHN1
Y2NlZWQuCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKAorICAgICAgICAgICAgICByZWdpc3Ry
YXRpb24uc2NvcGUsCisgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTChzY29wZSksCisgICAgICAg
ICAgICAgICdTaG91bGQgc3VjY2Vzc2Z1bGx5IGJlIHJlZ2lzdGVyZWQuJyk7CisgICAgICAgICAg
ICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICB9KQorICAgIH0s
ICdTY29wZSBpbmNsdWRpbmcgY29uc2VjdXRpdmUgc2xhc2hlcycpOworCisgIHByb21pc2VfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgICB2YXIgc2NyaXB0ID0gJ2ZpbGVzeXN0ZW06JyArIG5vcm1h
bGl6ZVVSTCgncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcycpOworICAgICAgdmFyIHNjb3BlID0g
J3Jlc291cmNlcy9zY29wZS9maWxlc3lzdGVtLXNjcmlwdC11cmwnOworICAgICAgcmV0dXJuIHBy
b21pc2VfcmVqZWN0cyh0LAorICAgICAgICAgIGNoZWNrX2Vycm9yX3R5cGVzID8gJ1NlY3VyaXR5
RXJyb3InIDogbnVsbCwKKyAgICAgICAgICByZWdpc3Rlcl9tZXRob2Qoc2NyaXB0LCB7c2NvcGU6
IHNjb3BlfSksCisgICAgICAgICAgJ1JlZ2lzdGVyaW5nIGEgc2NyaXB0IHdoaWNoIGhhcyBzYW1l
LW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwgc2hvdWxkICcgKworICAgICAgICAgICAgICAnZmFpbCB3
aXRoIFNlY3VyaXR5RXJyb3IuJyk7CisgICAgfSwgJ1NjcmlwdCBVUkwgaXMgc2FtZS1vcmlnaW4g
ZmlsZXN5c3RlbTogVVJMJyk7CisKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICAg
IHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyc7CisgICAgICB2YXIgc2Nv
cGUgPSAnZmlsZXN5c3RlbTonICsgbm9ybWFsaXplVVJMKCdyZXNvdXJjZXMvc2NvcGUvZmlsZXN5
c3RlbS1zY29wZS11cmwnKTsKKyAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHModCwKKyAgICAg
ICAgICBjaGVja19lcnJvcl90eXBlcyA/ICdTZWN1cml0eUVycm9yJyA6IG51bGwsCisgICAgICAg
ICAgcmVnaXN0ZXJfbWV0aG9kKHNjcmlwdCwge3Njb3BlOiBzY29wZX0pLAorICAgICAgICAgICdS
ZWdpc3RlcmluZyB3aXRoIHRoZSBzY29wZSB0aGF0IGhhcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVt
OiBVUkwgJyArCisgICAgICAgICAgICAgICdzaG91bGQgZmFpbCB3aXRoIFNlY3VyaXR5RXJyb3Iu
Jyk7CisgICAgfSwgJ1Njb3BlIFVSTCBpcyBzYW1lLW9yaWdpbiBmaWxlc3lzdGVtOiBVUkwnKTsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3RyYXRpb24t
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi13b3Jr
ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDRkMWQyNzc0YTI0YmRmNWQ1MTExMjUzOTlmZmZhMmI3MDM4ZTRj
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24td29ya2VyLmpzCkBAIC0wLDAgKzEgQEAKKy8vIGVtcHR5IGZvciBub3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWplY3QtaW5zdGFsbC13b3JrZXIuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVqZWN0LWluc3RhbGwtd29ya2VyLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQxZjA3ZmQ1ZGI4MWQ2ZmM3YTgxZmRkZDJjNmJhYzVkNTE3MTk3NGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVqZWN0LWluc3RhbGwt
d29ya2VyLmpzCkBAIC0wLDAgKzEsMyBAQAorc2VsZi5vbmluc3RhbGwgPSBmdW5jdGlvbihldmVu
dCkgeworICBldmVudC53YWl0VW50aWwoUHJvbWlzZS5yZWplY3QoKSk7Cit9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlcGx5LXRvLW1lc3NhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXBseS10by1tZXNzYWdlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOGE3MGUyYWQ5MzNlMzQyZWU3MTc1YWZhYzQ0Yzk0N2I0ZTVhNjhkNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXBseS10by1tZXNzYWdlLmh0bWwK
QEAgLTAsMCArMSw3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbWVzc2FnZScsIGV2ZW50ID0+IHsKKyAgICB2YXIgcG9ydCA9IGV2ZW50LnBv
cnRzWzBdOworICAgIHBvcnQucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSk7CisgIH0pOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVxdWVzdC1ib2R5
LWJsb2ItaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVxdWVzdC1i
b2R5LWJsb2ItaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFiZjU4MTJjOTEzNzMxOTliMmMxM2Jm
Y2ExNDc2YjljZWY2NTZkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9yZXF1ZXN0LWJvZHktYmxvYi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5yZXF1ZXN0LWJv
ZHktYmxvYi1pZnJhbWU8L3RpdGxlPgorPGJvZHk+PC9ib2R5PgorPHNjcmlwdD4KK3ZhciBibG9i
ID0gbmV3IEJsb2IoWydpdFwncyBtZSB0aGUgYmxvYicsCisgICAgICAgICAgICAgICAgICAgICAn
YW5kIG1vcmUgYmxvYiEnXSk7CitmZXRjaCgnc2ltcGxlLmh0bWw/cG9zdC13aXRoLWJsb2ItYm9k
eScsCisgICAgICB7IG1ldGhvZDogJ1BPU1QnLCBib2R5OiBibG9iIH0pCisgIC50aGVuKHJlc3Ag
PT4geworICAgICAgaWYgKCFyZXNwLm9rKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qo
J2JhZCByZXNwb25zZTogJyArIHJlc3Auc3RhdHVzKTsKKyAgICAgIHJldHVybiByZXNwLnRleHQo
KQorICAgIH0pCisgIC50aGVuKHRleHQgPT4gcGFyZW50LmRvbmUodGV4dCkpCisgIC5jYXRjaChl
cnJvciA9PiB7CisgICAgICB2YXIgcmVhc29uID0gZXJyb3IubWVzc2FnZSB8fCBlcnJvci5uYW1l
IHx8IGVycm9yOworICAgICAgcGFyZW50LmRvbmUoJ2Vycm9yOiAnICsgcmVhc29uKTsKKyAgICB9
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
cXVlc3QtYm9keS1ibG9iLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9y
ZXF1ZXN0LWJvZHktYmxvYi13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWViOTE0NGU3ZGVlYjEyMDg1
NGQ0MmRjMDBlMzYzODMwNDZhNDliNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZXF1ZXN0LWJvZHktYmxvYi13b3JrZXIuanMKQEAgLTAsMCArMSwxMSBA
QAorc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsKKyAgICBpZiAoZXZl
bnQucmVxdWVzdC51cmwuaW5kZXhPZignP3Bvc3Qtd2l0aC1ibG9iLWJvZHknKSA9PSAtMSkKKyAg
ICAgIHJldHVybjsKKyAgICBldmVudC5yZXNwb25kV2l0aChldmVudC5yZXF1ZXN0LnRleHQoKS50
aGVuKGJvZHkgPT4geworICAgICAgICBpZiAoYm9keS5pbmRleE9mKCdpdFwncyBtZSB0aGUgYmxv
YicpID09IC0xKQorICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoJ2ZhaWwnKTsKKyAgICAg
ICAgaWYgKGJvZHkuaW5kZXhPZignYW5kIG1vcmUgYmxvYiEnKSA9PSAtMSkKKyAgICAgICAgICBy
ZXR1cm4gbmV3IFJlc3BvbnNlKCdmYWlsJyk7CisgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2Uo
J1Bhc3MnKTsKKyAgICAgIH0pKTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvcmVxdWVzdC1lbmQtdG8tZW5kLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZXF1ZXN0LWVuZC10by1lbmQtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZi
ZDJiNzIxMzdlNWI0NjMyZmU2ZTE0NDE4NGZkZTNmZjhhODdlYjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVxdWVzdC1lbmQtdG8tZW5kLXdvcmtlci5q
cwpAQCAtMCwwICsxLDM0IEBACisndXNlIHN0cmljdCc7CisKK29uZmV0Y2ggPSBmdW5jdGlvbihl
KSB7CisgIHZhciBoZWFkZXJzID0ge307CisgIGZvciAodmFyIGhlYWRlciBvZiBlLnJlcXVlc3Qu
aGVhZGVycykgeworICAgIHZhciBrZXkgPSBoZWFkZXJbMF0sIHZhbHVlID0gaGVhZGVyWzFdOwor
ICAgIGhlYWRlcnNba2V5XSA9IHZhbHVlOworICB9CisgIHZhciBhcHBlbmRfaGVhZGVyX2Vycm9y
ID0gJyc7CisgIHRyeSB7CisgICAgZS5yZXF1ZXN0LmhlYWRlcnMuYXBwZW5kKCdUZXN0LUhlYWRl
cicsICdUZXN0VmFsdWUnKTsKKyAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICBhcHBlbmRfaGVhZGVy
X2Vycm9yID0gZXJyb3IubmFtZTsKKyAgfQorCisgIHZhciByZXF1ZXN0X2NvbnN0cnVjdF9lcnJv
ciA9ICcnOworICB0cnkgeworICAgIG5ldyBSZXF1ZXN0KGUucmVxdWVzdCwge21ldGhvZDogJ0dF
VCd9KTsKKyAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICByZXF1ZXN0X2NvbnN0cnVjdF9lcnJvciA9
IGVycm9yLm5hbWU7CisgIH0KKworICBlLnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShKU09OLnN0
cmluZ2lmeSh7CisgICAgdXJsOiBlLnJlcXVlc3QudXJsLAorICAgIG1ldGhvZDogZS5yZXF1ZXN0
Lm1ldGhvZCwKKyAgICByZWZlcnJlcjogZS5yZXF1ZXN0LnJlZmVycmVyLAorICAgIGhlYWRlcnM6
IGhlYWRlcnMsCisgICAgbW9kZTogZS5yZXF1ZXN0Lm1vZGUsCisgICAgY3JlZGVudGlhbHM6IGUu
cmVxdWVzdC5jcmVkZW50aWFscywKKyAgICByZWRpcmVjdDogZS5yZXF1ZXN0LnJlZGlyZWN0LAor
ICAgIGFwcGVuZF9oZWFkZXJfZXJyb3I6IGFwcGVuZF9oZWFkZXJfZXJyb3IsCisgICAgcmVxdWVz
dF9jb25zdHJ1Y3RfZXJyb3I6IHJlcXVlc3RfY29uc3RydWN0X2Vycm9yCisgIH0pKSk7Cit9Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlcXVlc3QtaGVhZGVycy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXF1ZXN0LWhlYWRlcnMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjk4OTdmNGVjZmZiMTZhYmVjMjI2Zjg3ZTEyZWU1NGZmYWJkZjdiNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXF1ZXN0LWhlYWRlcnMucHkK
QEAgLTAsMCArMSw2IEBACitpbXBvcnQganNvbgorCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25z
ZSk6CisgICAgZGF0YSA9IHtrZXk6cmVxdWVzdC5oZWFkZXJzW2tleV0gZm9yIGtleSx2YWx1ZSBp
biByZXF1ZXN0LmhlYWRlcnMuaXRlcml0ZW1zKCl9CisKKyAgICByZXR1cm4gWygiQ29udGVudC1U
eXBlIiwgImFwcGxpY2F0aW9uL2pzb24iKV0sIGpzb24uZHVtcHMoZGF0YSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmctaWZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5nLWlmcmFtZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJhZjY3OTM2OTZiNTczMjg1Yjc2NjliNWI5MzFhOTcxMzc2NGUxODkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdGlt
aW5nLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0
IHNyYz0iZW1wdHkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImR1bW15LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZWRpcmVjdC5weT9SZWRpcmVjdD1lbXB0eS5qcyI+PC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVzb3VyY2UtdGltaW5n
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10aW1pbmct
d29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MWE2NTM2YWZjZWM0NTdiNGQ0ZTQ1YjBiMGU1NGIxYjNk
OGJkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVz
b3VyY2UtdGltaW5nLXdvcmtlci5qcwpAQCAtMCwwICsxLDUgQEAKK3NlbGYuYWRkRXZlbnRMaXN0
ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5yZXF1ZXN0LnVy
bC5pbmRleE9mKCdkdW1teS5qcycpICE9IC0xKSB7CisgICAgICBldmVudC5yZXNwb25kV2l0aChu
ZXcgUmVzcG9uc2UoKSk7CisgICAgfQorICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZXNwb25kLXRoZW4tdGhyb3ctd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3Jlc3BvbmQtdGhlbi10aHJvdy13b3JrZXIuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWRiNDhkZTY5ZTcyMzUxYWIwYWNhMWRmNWJlMzc1N2RhMGE5Mzc5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNwb25kLXRoZW4tdGhyb3ctd29ya2Vy
LmpzCkBAIC0wLDAgKzEsNDAgQEAKK3ZhciBzeW5jcG9ydCA9IG51bGw7CisKK3NlbGYuYWRkRXZl
bnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGUpIHsKKyAgaWYgKCdwb3J0JyBpbiBlLmRh
dGEpIHsKKyAgICBpZiAoc3luY3BvcnQpIHsKKyAgICAgIHN5bmNwb3J0KGUuZGF0YS5wb3J0KTsK
KyAgICB9IGVsc2UgeworICAgICAgc3luY3BvcnQgPSBlLmRhdGEucG9ydDsKKyAgICB9CisgIH0K
K30pOworCitmdW5jdGlvbiBzeW5jKCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o
cmVzb2x2ZSkgeworICAgICAgaWYgKHN5bmNwb3J0KSB7CisgICAgICAgIHJlc29sdmUoc3luY3Bv
cnQpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgc3luY3BvcnQgPSByZXNvbHZlOworICAgICAg
fQorICAgIH0pLnRoZW4oZnVuY3Rpb24ocG9ydCkgeworICAgICAgcG9ydC5wb3N0TWVzc2FnZSgn
U1lOQycpOworICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAg
ICAgICAgICBwb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmIChl
LmRhdGEgPT09ICdBQ0snKSB7CisgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworfQorCisKK3NlbGYuYWRkRXZl
bnRMaXN0ZW5lcignZmV0Y2gnLCBmdW5jdGlvbihldmVudCkgeworICAgIC8vIEluIEZpcmVmb3gg
dGhlIHJlc3VsdCB3b3VsZCBkZXBlbmQgb24gYSByYWNlIGJldHdlZW4gZmV0Y2ggaGFuZGxpbmcK
KyAgICAvLyBhbmQgZXhjZXB0aW9uIGhhbmRsaW5nIGNvZGUuIE9uIHRoZSBhc3N1bXB0aW9uIHRo
YXQgdGhpcyBtaWdodCBiZSBhIGNvbW1vbgorICAgIC8vIGRlc2lnbiBlcnJvciwgd2UgZXhwbGlj
aXRseSBhbGxvdyB0aGUgZXhjZXB0aW9uIHRvIGJlIGhhbmRsZWQgZmlyc3QuCisgICAgZXZlbnQu
cmVzcG9uZFdpdGgoc3luYygpLnRoZW4oKCkgPT4gbmV3IFJlc3BvbnNlKCdpbnRlcmNlcHRlZCcp
KSk7CisKKyAgICB0aHJvdygiZXJyb3IiKTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY3NwLXdvcmtlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jc3Atd29ya2VyLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVmMDY0NTRmMTQ0ZDU4NGRiYmVjNGVjMjQ1N2Y1YjViZGQxNjFmZTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY3NwLXdv
cmtlci5weQpAQCAtMCwwICsxLDE1MyBAQAorYm9keURlZmF1bHQgPSAnJycKK2ltcG9ydFNjcmlw
dHMoJ3dvcmtlci10ZXN0aGFybmVzcy5qcycpOworaW1wb3J0U2NyaXB0cygndGVzdC1oZWxwZXJz
LnN1Yi5qcycpOworaW1wb3J0U2NyaXB0cygnL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcycp
OworCit2YXIgaG9zdF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOworCit0ZXN0KGZ1bmN0aW9uKCkg
eworICAgIHZhciBpbXBvcnRfc2NyaXB0X2ZhaWxlZCA9IGZhbHNlOworICAgIHRyeSB7CisgICAg
ICBpbXBvcnRTY3JpcHRzKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKKyAgICAgICAg
YmFzZV9wYXRoKCkgKyAnZW1wdHkuanMnKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgIGltcG9y
dF9zY3JpcHRfZmFpbGVkID0gdHJ1ZTsKKyAgICB9CisgICAgYXNzZXJ0X3RydWUoaW1wb3J0X3Nj
cmlwdF9mYWlsZWQsCisgICAgICAgICAgICAgICAgJ0ltcG9ydGluZyB0aGUgb3RoZXIgb3JpZ2lu
cyBzY3JpcHQgc2hvdWxkIGZhaWwuJyk7CisgIH0sICdpbXBvcnRTY3JpcHRzIHRlc3QgZm9yIGRl
ZmF1bHQtc3JjJyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIGZldGNoKGhvc3Rf
aW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKKyAgICAgICAgICBiYXNlX3BhdGgoKSArICdmZXRj
aC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmlnaW49KicsCisgICAgICAgICAge21vZGU6ICdjb3Jz
J30pCisgICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSl7CisgICAgICAgICAgYXNzZXJ0X3Vu
cmVhY2hlZCgnZmV0Y2ggc2hvdWxkIGZhaWwuJyk7CisgICAgICAgIH0sIGZ1bmN0aW9uKCl7Cisg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3Jl
amVjdGlvbih0KSk7CisgIH0sICdGZXRjaCB0ZXN0IGZvciBkZWZhdWx0LXNyYycpOworCithc3lu
Y190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgUkVESVJFQ1RfVVJMID0gaG9zdF9pbmZvLkhU
VFBTX09SSUdJTiArCisgICAgICBiYXNlX3BhdGgoKSArICdyZWRpcmVjdC5weT9SZWRpcmVjdD0n
OworICAgIHZhciBPVEhFUl9CQVNFX1VSTCA9IGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lO
ICsKKyAgICAgIGJhc2VfcGF0aCgpICsgJ2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5PycKKyAgICBm
ZXRjaChSRURJUkVDVF9VUkwgKyBlbmNvZGVVUklDb21wb25lbnQoT1RIRVJfQkFTRV9VUkwgKyAn
QUNBT3JpZ2luPSonKSwKKyAgICAgICAgICB7bW9kZTogJ2NvcnMnfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlc3BvbnNlKXsKKyAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdSZWRpcmVjdGVk
IGZldGNoIHNob3VsZCBmYWlsLicpOworICAgICAgICB9LCBmdW5jdGlvbigpeworICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24o
dCkpOworICB9LCAnUmVkaXJlY3RlZCBmZXRjaCB0ZXN0IGZvciBkZWZhdWx0LXNyYycpOycnJwor
Citib2R5U2NyaXB0ID0gJycnCitpbXBvcnRTY3JpcHRzKCd3b3JrZXItdGVzdGhhcm5lc3MuanMn
KTsKK2ltcG9ydFNjcmlwdHMoJ3Rlc3QtaGVscGVycy5zdWIuanMnKTsKK2ltcG9ydFNjcmlwdHMo
Jy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnKTsKKwordmFyIGhvc3RfaW5mbyA9IGdldF9o
b3N0X2luZm8oKTsKKwordGVzdChmdW5jdGlvbigpIHsKKyAgICB2YXIgaW1wb3J0X3NjcmlwdF9m
YWlsZWQgPSBmYWxzZTsKKyAgICB0cnkgeworICAgICAgaW1wb3J0U2NyaXB0cyhob3N0X2luZm8u
SFRUUFNfUkVNT1RFX09SSUdJTiArCisgICAgICAgIGJhc2VfcGF0aCgpICsgJ2VtcHR5LmpzJyk7
CisgICAgfSBjYXRjaChlKSB7CisgICAgICBpbXBvcnRfc2NyaXB0X2ZhaWxlZCA9IHRydWU7Cisg
ICAgfQorICAgIGFzc2VydF90cnVlKGltcG9ydF9zY3JpcHRfZmFpbGVkLAorICAgICAgICAgICAg
ICAgICdJbXBvcnRpbmcgdGhlIG90aGVyIG9yaWdpbnMgc2NyaXB0IHNob3VsZCBmYWlsLicpOwor
ICB9LCAnaW1wb3J0U2NyaXB0cyB0ZXN0IGZvciBzY3JpcHQtc3JjJyk7CisKK2FzeW5jX3Rlc3Qo
ZnVuY3Rpb24odCkgeworICAgIGZldGNoKGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsK
KyAgICAgICAgICBiYXNlX3BhdGgoKSArICdmZXRjaC1hY2Nlc3MtY29udHJvbC5weT9BQ0FPcmln
aW49KicsCisgICAgICAgICAge21vZGU6ICdjb3JzJ30pCisgICAgICAudGhlbihmdW5jdGlvbihy
ZXNwb25zZSl7CisgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0sIGZ1bmN0aW9uKCl7Cisg
ICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnZmV0Y2ggc2hvdWxkIG5vdCBmYWlsLicpOworICAg
ICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnRmV0
Y2ggdGVzdCBmb3Igc2NyaXB0LXNyYycpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgUkVESVJFQ1RfVVJMID0gaG9zdF9pbmZvLkhUVFBTX09SSUdJTiArCisgICAgICBiYXNl
X3BhdGgoKSArICdyZWRpcmVjdC5weT9SZWRpcmVjdD0nOworICAgIHZhciBPVEhFUl9CQVNFX1VS
TCA9IGhvc3RfaW5mby5IVFRQU19SRU1PVEVfT1JJR0lOICsKKyAgICAgIGJhc2VfcGF0aCgpICsg
J2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5PycKKyAgICBmZXRjaChSRURJUkVDVF9VUkwgKyBlbmNv
ZGVVUklDb21wb25lbnQoT1RIRVJfQkFTRV9VUkwgKyAnQUNBT3JpZ2luPSonKSwKKyAgICAgICAg
ICB7bW9kZTogJ2NvcnMnfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXsKKyAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSwgZnVuY3Rpb24oKXsKKyAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCdSZWRpcmVjdGVkIGZldGNoIHNob3VsZCBub3QgZmFpbC4nKTsKKyAgICAgICAg
fSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1JlZGlyZWN0
ZWQgZmV0Y2ggdGVzdCBmb3Igc2NyaXB0LXNyYycpOycnJworCitib2R5Q29ubmVjdCA9ICcnJwor
aW1wb3J0U2NyaXB0cygnd29ya2VyLXRlc3RoYXJuZXNzLmpzJyk7CitpbXBvcnRTY3JpcHRzKCd0
ZXN0LWhlbHBlcnMuc3ViLmpzJyk7CitpbXBvcnRTY3JpcHRzKCcvY29tbW9uL2dldC1ob3N0LWlu
Zm8uc3ViLmpzJyk7CisKK3ZhciBob3N0X2luZm8gPSBnZXRfaG9zdF9pbmZvKCk7CisKK3Rlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgdmFyIGltcG9ydF9zY3JpcHRfZmFpbGVkID0gZmFsc2U7CisgICAg
dHJ5IHsKKyAgICAgIGltcG9ydFNjcmlwdHMoaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4g
KworICAgICAgICBiYXNlX3BhdGgoKSArICdlbXB0eS5qcycpOworICAgIH0gY2F0Y2goZSkgewor
ICAgICAgaW1wb3J0X3NjcmlwdF9mYWlsZWQgPSB0cnVlOworICAgIH0KKyAgICBhc3NlcnRfZmFs
c2UoaW1wb3J0X3NjcmlwdF9mYWlsZWQsCisgICAgICAgICAgICAgICAgICdJbXBvcnRpbmcgdGhl
IG90aGVyIG9yaWdpbnMgc2NyaXB0IHNob3VsZCBub3QgZmFpbC4nKTsKKyAgfSwgJ2ltcG9ydFNj
cmlwdHMgdGVzdCBmb3IgY29ubmVjdC1zcmMnKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgZmV0Y2goaG9zdF9pbmZvLkhUVFBTX1JFTU9URV9PUklHSU4gKworICAgICAgICAgIGJh
c2VfcGF0aCgpICsgJ2ZldGNoLWFjY2Vzcy1jb250cm9sLnB5P0FDQU9yaWdpbj0qJywKKyAgICAg
ICAgICB7bW9kZTogJ2NvcnMnfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3BvbnNlKXsKKyAg
ICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdmZXRjaCBzaG91bGQgZmFpbC4nKTsKKyAgICAgICAg
fSwgZnVuY3Rpb24oKXsKKyAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSkKKyAgICAgIC5j
YXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ0ZldGNoIHRlc3QgZm9yIGNvbm5l
Y3Qtc3JjJyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBSRURJUkVDVF9V
UkwgPSBob3N0X2luZm8uSFRUUFNfT1JJR0lOICsKKyAgICAgIGJhc2VfcGF0aCgpICsgJ3JlZGly
ZWN0LnB5P1JlZGlyZWN0PSc7CisgICAgdmFyIE9USEVSX0JBU0VfVVJMID0gaG9zdF9pbmZvLkhU
VFBTX1JFTU9URV9PUklHSU4gKworICAgICAgYmFzZV9wYXRoKCkgKyAnZmV0Y2gtYWNjZXNzLWNv
bnRyb2wucHk/JworICAgIGZldGNoKFJFRElSRUNUX1VSTCArIGVuY29kZVVSSUNvbXBvbmVudChP
VEhFUl9CQVNFX1VSTCArICdBQ0FPcmlnaW49KicpLAorICAgICAgICAgIHttb2RlOiAnY29ycyd9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpeworICAgICAgICAgIGFzc2VydF91bnJl
YWNoZWQoJ1JlZGlyZWN0ZWQgZmV0Y2ggc2hvdWxkIGZhaWwuJyk7CisgICAgICAgIH0sIGZ1bmN0
aW9uKCl7CisgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5y
ZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdSZWRpcmVjdGVkIGZldGNoIHRlc3QgZm9yIGNv
bm5lY3Qtc3JjJyk7JycnCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBoZWFk
ZXJzID0gW10KKyAgICBoZWFkZXJzLmFwcGVuZCgoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0JykpCisgICAgZGlyZWN0aXZlID0gcmVxdWVzdC5HRVRbJ2RpcmVjdGl2ZSdd
CisgICAgYm9keSA9ICdFUlJPUjogVW5rbm93biBkaXJlY3RpdmUnCisgICAgaWYgZGlyZWN0aXZl
ID09ICdkZWZhdWx0JzoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCdDb250ZW50LVNlY3VyaXR5
LVBvbGljeScsICJkZWZhdWx0LXNyYyAnc2VsZiciKSkKKyAgICAgICAgYm9keSA9IGJvZHlEZWZh
dWx0CisgICAgZWxpZiBkaXJlY3RpdmUgPT0gJ3NjcmlwdCc6CisgICAgICAgIGhlYWRlcnMuYXBw
ZW5kKCgnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knLCAic2NyaXB0LXNyYyAnc2VsZiciKSkKKyAg
ICAgICAgYm9keSA9IGJvZHlTY3JpcHQKKyAgICBlbGlmIGRpcmVjdGl2ZSA9PSAnY29ubmVjdCc6
CisgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knLCAiY29u
bmVjdC1zcmMgJ3NlbGYnIikpCisgICAgICAgIGJvZHkgPSBib2R5Q29ubmVjdAorICAgIHJldHVy
biBoZWFkZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
c2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2NjMmZlM2JkYmU2OGFk
MjAwZjcwMzdmZDVjNjhkNzY4OTMxODM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVzb3VyY2VzL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5qcwpAQCAtMCwwICsxLDgg
QEAKK29uY29ubmVjdCA9IGZ1bmN0aW9uKGUpIHsKKyAgdmFyIHBvcnQgPSBlLnBvcnRzWzBdOwor
ICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIHhoci5vbmxvYWQgPSBmdW5jdGlv
bigpIHsgcG9ydC5wb3N0TWVzc2FnZSh0aGlzLnJlc3BvbnNlVGV4dCk7IH07CisgIHhoci5vbmVy
cm9yID0gZnVuY3Rpb24oZSkgeyBwb3J0LnBvc3RNZXNzYWdlKGUpOyB9OworICB4aHIub3Blbign
R0VUJywgJ2R1bW15LnR4dD9zaW1wbGUnLCB0cnVlKTsKKyAgeGhyLnNlbmQoKTsKK307CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVkLXdvcmtlci1pbXBvcnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2M1NTRiZDc0MTUyMDliMjY2ZmZmY2ViOTAxODVhNzllYmQ3NTZjNQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaGFyZWQtd29ya2Vy
LWltcG9ydC5qcwpAQCAtMCwwICsxIEBACitpbXBvcnRTY3JpcHRzKCdpbXBvcnQtZHVtbXktc2hh
cmVkLXdvcmtlci5qcycpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NpbGVuY2Uub2dhIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbGVuY2Uub2dhCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmNTkxODgwNDM2YWY0M2FiYjRjZWU1OWZkZTMyMDA4MWJjYWM3ZWQKR0lUIGJp
bmFyeSBwYXRjaApsaXRlcmFsIDEyOTgzCnpjbWFpYWJ6RD8hKlkxRmwwd1IoTU5PdzAxKCVuT01I
elAzdk5hRih7LThzT31BVld6RE5Kd2Bgd3soTEBtejw1eQp6YCtlXkBmMVVmY19udGV9VWJFdTUq
SXNNU3NNKj9UZj4xJktZMiREST9XRStvR14wP1djc1JSUipoMyR0UF4zJSQKelRgfUFKX3d5QD8r
UVhneSthQiZqMFk+ZnpadHJsRj8qSDVSOXt0T08wJDl8dWNkX0c4YkYteSN2YldJciViUUFwCnpp
aWU5IWg/fD43QFpzKGt6JHYzRHI2dyV7N1BZWn54TERpciEwZkRALU9TbSFJQyVJXyhFZXJoTj5X
TShwaGZ8YQp6VDUyKU5yaCRKYmhMSiVOeG48S1Y7dVhVUmZ7NypOR29nZjwjbHE3V2otP0g/Uktm
VCFHfVcyVygha01SZG9zKHwKemhhU0Y/MHpIaTJIRGpoRnpNO2JSc1pfQFppOH1JTlRzVDtueGli
K1FFe1JFfDhPaHcwMnYoSERwb2loVC1YenpJCnpSJURYK25nSzFUTy17Q3FEMkJ4PVpxWnBPT1Vn
NVVqOTBgYyZ7VU9fPVREdmpHZ0NtcFU8Wms5OzQzQlRzRGczLQp6OEk5RmBraDR1M3wzd3V4TkY0
O2k1Nj5ZRE0tMmBzTUZzSklLIyNNVHFGMCVzWEAlbzA2XlE/bTBJdDlYZiFiVU0KejcyKml7RChS
R2R1cWxtOFlpUnBUM1RTSmV5QmtrRzk4YFEoTD1SbFc8JWBrXlVRbzU7U2RuN2w+WjVfRTBPUUZy
Cnp3Y3xoZkFNPTFMbjFuK2FZQnFoTChMcHhDYn1VXytGYytIMU9AKChYbzB9UVhWUFZFfVh0JlQt
MX5sQndoVDlJSAp6JVlZSUQqKWFkeEx2KElSSTNnZUJ4YG01XlR4Q2ZDSShXXmRnb0Q1b0ZoXldk
REQxJHwxQHZlKEhXZVRvbFIkNCsKejckRXQzTDZRX2ZUfnJAOT1ibXBHeXB0cFdkVCteIWU0dnNL
Yk57OUwqRjFvfTV+S25sdTA+U3hTJFE4d1drVChICnpeRCEzbElfVF9oK15+en5eNzcpcXlIdHI8
LTNyV158N3dtMjAjT0dPZzV7fHt7XnRAKDlZU2krJVVxUTQ0Pm43Mgp6ZXJgQlZLVT8pNiYlbmNG
P0BSVVk+d1RfSGQ/fW89OFVpSmkrRFNkanZXQmU7TjR5XmZfR1B0R2lwJkxvbXpuP0MKekZBIzdL
Q1llPk5nek4rN1EwbEBBd3w/ZiYqe0ZaYjJgb1BCNXxLV3J2PmZjZU0tTm0pRT5UKG1JQkp2IUNZ
MDVQCnp2P3I1ezRYM09aJm1yYXs5Klk8NSVOT296KDt2PENsZGI9czw2cVNRTyM8O0hHNT1NaGZZ
ZnIzZG4tRlpVR2pnXwp6cXlvT01PQHFBNGx9XnIkdH1tV1ZBJVJiK1Q0WlFrTUNEWGtnSFVCJE9H
WHphdnNmY0RvMlc3a1E8O1RuPig/NlYKeipGazJkQWcwTlg8cU48Nj51eyZ8dEQteXp2QElXPEZD
VSZTQUg2ME5QbHU5MlQ+PTc7Siluc3hKV25Xa08rS0RaCnpBdnM/R3Y3dyk5PDR8YnBqckAlSW1x
aCU1PGVAUmFTRDZifW5SOGMjYjc+V0d0cXBQdTltPCl+dE0oZXB8OT1PXgp6VXgzR2dLJTtUd2VS
MVJmeiFpV0YlM3RkT2RqUz5YZzN9V1ZmRjN+bmV7QHRrMXFeQ0RoVzM5dTAwaVFxPmoxT0sKekxI
UUlDd1VsYkxSQkUtOWhfdXpUfDlfMk5XdD5rMUZmMlc9PnAqUTVRUXRTSHNPamw5bWhqdjA2QTtg
QylVX3RtCnprS15LKHhZM0QlNUluZyFaY0NERF8oN0NfKFZsXiUwbk5McWRobnNXIWc5cTQxajFY
TlZUbXVjJFAxI3V3Izszcgp6N0RHJSlHdkx4RlhmIy1eRUhCWjVqb2wqPTk5NyY2cGFxcDJJTjU+
JEBnSVhVSyVpaTVkRkZnVmklOCszNDU+KXcKenR5RXxUX2EtP3NUNmlsUDI0Pm1IZlQ9MldrXjtr
YDNARz9EVi1pJFZrdWU5cjJNN1o9cFg3fGo1fX1BXmZDNDRyCnpNYnYpdFgoYU5nNXoxKTdqNVlY
LXIrPHF+bytAaTxpO2loJllpZEpnd1kycTxNTW41VSRGO09hX19RYTFBckwhfgp6V3dhK0Q8TD5W
QkZ6di07JG96JHxBK2Qqc0hlXnhEY3dTSUBgckxULSspc2JYLVNXNEhfTD1neXlYWkt+ZGVSK1kK
ej14JUkkcHskdiNHTSF7Uz9oY3R4dk5yYSNwMXQ1N2haJkQrVGhHRmJYRmFUUz55N28je2w/dXRF
KzwpPT5SUmlRCnpkS2gxUEdATVNfZkVoMzlUSSZreDBJUD02QTZLVF8mQ144R3Y7b2U+QlllaVg/
IzhDTiM/dz4kPEIxUVBYU0l5PQp6SnBqKGV4Pk4yV2Q9SCVHMSZubypBMntuS3lEITIzVnIlX05a
UVhOc3twcUJZRGFlWVRAJGBrWntgcDU+Xj9gR1AKenlEe2xvP0szfTNrQj0pYj4qZVc+JWxodyhn
XzZoSXttaGRmRHwqKVkhdX42SSQlX3xCKSZNSSMkU2tSaks1PlpZCnpXIy0xWS1gYWIzVzNxUlBU
WjReOUk2WClDSH5yKDI1WCZeYk1TVUFuJiomQT4qUjgrU2lqZnVSPCpZYkdZKUBKYgp6X1BWUVlU
QjsoO19pbThEa1kmRVRhPEFwJncmZT8zLXVgdkYhJEE5JnhqT0VKbVVuRWVGNjBBX2Q7USNkRWdF
KDEKenpOWVc3SjVGSGsjJEduWUo/SE1RSDh+O3dlISNVVDUzWVVRRlA9bHFpVyg/ezAqYXZ2JWVC
KGFXenRWKDNOUEdsCnolKFpKUSYkbGx1d254fC16LXs0JF9RKXpgY3NaTHIrfTszVDFCVngtNzIz
aGU5cFF6ZztmMmZ0ZyUxNXlfVkI5eAp6I3d0aXR4emx7RXtva1B6eXBYTV9zJHstPWY0NERUenAm
VH5WZWZ6ZFNwNmp+RlkhVitjcThuUDJxcS1iMGZ7VV8KekJIMFhxUnJxI3NBITlmJlEmPEtedko0
YT09Yz8/SGJ4dWVtcXpTb3lUP05AfDFTRWtWMykkMD00aUI4Ryp5YkJLCnowalZCMSE/KTUzMFdx
QjVOTEU4YzUmVkprVz5fSj5vR3JaJipgS19YaDZGaDhoOU1tUGEoMCtRK1FUMD52IUByYgp6NDN0
QXxUSzQqQC1YVzFyME8hMzJBKU4rVmp7MT5AZS0tPklNaXUqZil6THN6PkNJbVNBSCthJTN7Kmow
UnkqQV4KeitRSSlMNzBZfVRgJU5QdClscS1CYXx5Q14/X3FkJlVHQjJpJG5+d3Q9Pn1QUC1OLXVN
PSlBYD5mOUB2QEt2MHQoCnpHN3N6JTBEfFklenw8SFkjODZ3P1AoV3B9JktpSXE1S18oZ1JBengp
R15IfEcxSk9eMG5BY2dhMEwxbXloVWYwbgp6TiQjZjhlcndhI2k8XnlBMkxufVFIXmBGZnkyRzF4
bSVae3wqZFAkODNrWmJDbTRpZTBxS1dfJTNQZ29TXkdJJlkKekREYmNfTXZnfG1ARGBRVHVtbVBg
KHg1T1ZieihkKW16Yz0yTVVAeTIjc3FvPlBwQV9VIUgjR2s1VE90ZHdgUWBMCnpEfV40PWYpYzAm
MHRLejwwcnQjd241KGk+S21iLVBNJUVxM0N2UyEyKzU/XzQxWkUxMGs+emBQQFBCOWFiXi1oUgp6
b29RXzNmYWV3P2skYTYqPCR6Tz08KlpGcmArR25LeHp9SUxjR0hlKkVOMkJ3eTRVXiV4RSpsOGU0
WDxHNVp6bWoKelpyYkNAXzhLe0UrcXJTJVAoVk1pQEljfmQwO1NPfFVfTjMheUl3XlEpZ3c/Szdk
bXdpejljJHphNGNBbngqKEFOCnoyLWlQPiRFdWttOFBofVQjZVcxMFAjI0R5c2V2NW56bkF+YjMk
UT5sRilwQjNaIVRgYGp+XyF5QUFgVV5edEErWAp6R1ZVIVo9fTYmalFXJHxeSTFuYmVGJChndmdm
WGF0d0cwTnotMCZuWm5RT0hTSCF+OGFmY1YteUQ5cF48cjJgJCMKek51MDFLWlA8anJWSkA0NUl9
U0FAUGROPG5aeTc7MyVEVWk9IX45emRaaUQ9UHpxJEtBWCRjQlEycDEyT2pxKDRlCnpNRmF7SW10
X1Y+QExtVEtTXnxFZjR3azJXNylvTGlKcSMmPUBtYWRiQUJOT2NlXj5EKGRvek9ZVUlXXlZOJnYr
OAp6bDF2NUF6c2VGUXsqVDVGI1EkcjZvSjR8JHB9SGchSnQyQEp8MjBfMEUrKFVsPCVob30ybjJ6
c0tHQTxwPFRhMUEKejlKUTIrYig+SFEhcS0lVjZ7YVQ0RFImV0M7WWwtUU57MU16KlFFPnNfQGNy
REBQX2dqOVRVMytBSnFafUIjdXdSCnpEPWxlRyNLeSVHZyNPNzNeYjdRaWBXYzloZiQwWWFOQT5g
UzFtLSZaMHNrTlRVQEJxXmIjWVdZKXZxZ0lmKzgjRQp6ak42MXN1WW0qd1hwY2JlS19EVGZ6fGhj
NTdCJnRwOXpGcX4qQ0ckdTVVMzNlMW15a0VQcE4yZjg/WW11TUIrckAKek0mcmRpdG8mX01SOClV
SWZmTnIhTWZHcE5BZz1SdzNpTURnSm4qPCRMdGk3b0QjfUVaNnl8MVVXI3p5I1EmUkZXCno1aDtr
enNSYkU3U2NVLWlnRnRYYmNEV2xvZWg0NFIpJXk/ODx5KDc0dVI2WGxObWpkJWZedmhfPkwhTE9x
T1hrSQp6UGxvUVl2fG4reVk4bEBvZWBgPndATkhZLWgyc3ZVJE9lM3B5blFEfFhSZjt+dygyfm8t
P2dtfmBod00xTnJ+dFcKemNlN2x0TzIqVDQmZWpZO203QDh8aTBoLVY5bHRLfnY2Qn1QcSp4Z3sq
dHxVenApVlEzUzkwJXB4dWFpWGxIV0kqCnpjdWl5ZHRqXl5MeXhvQUdPJFdIUDNnJSZyPV5eWWJV
VnZIe0ROP1RJRktnSUM5Sz1IfCNuVUk3PUVJQ2VMM08jPQp6aVJoMlFLdEZUcVNZRlh3JjRMVGVq
Yj5vNnVRKmFvbUAqflhNRHgtfC18YzB9c2pxcFFFPTt3NXJPNjtEOGx5fHMKensxJCZXVUZZXjRM
dyQlY15VWVZVXlZLd0pKamVUMjlufjVCOGM4cilvVDxgbSRyaVA4TG1NPl5YSXBqZClyb0sxCnpi
SXRwblVqNXF4ZzdZQzR8SzsoRj01ZyQhWnF5PlgkP0ImZDFTMzIyRCN8QF9SPTckI2BzdSM5VVJC
ZFVBV0NVegp6WCl1RVhJKjVacU49O2RmX3I1QSVGRVd4Zk1EUHhZSDI5YGc8MDZ8Znl1Smg+JVRX
cmZUXzYzO2FROTYwMl5sP3AKenchemxkbyVoYF9SeTI5YjdJYWYtNnZGWXZJfDgzJVl2VDZIcSQh
fWNZRVcqUVBpfV5IWXwtMkQ4ZThXbD48WFdnCnpKbH1vdlpMQHh3TE9hcGkoLXRRdUZtU0pnblM+
SG1aQ2lnfmp8d3U4SjZPRUthM3hEQXEmYWd6JHFtSXJjUzNWMgp6TnYxT2dveU5+ViNPUG0xOVFx
OFVJQ0pjZUd7WEVwNEsjaGZKREpiZ09eM0hpdWZzaEZtfUh7PW5BTlQ+WT5XfUcKeko5Yy1MdWxE
ZFFIWEJrUEs2KUxmZEk9cHxkUEw3M1ROcGleRkJMcDdUMlc7IyRidUR4Rk9XY3srfTd+U2J3MWA3
Cno0ZGFoaXVTeXBGSmlGUXBFIVYlRnIwRCY2SiY0MCs2ITdPN3xBfndMQURkNDxHWmo3NSZBfTF0
M3hGWFpMLSVFLQp6V3UrZHcpSUJoaWlhPXFYMHdhIU9MVVZOU0V9TmtWKmZ6NFY+aj8+S0B7PGJC
N1hMUkBYfUp7bEkrR2lqdktHPFgKenV6Y0NPNHAjbytuNkojZkl8eFZpYCs3SHBIUEBON3YrLVk2
Y3M5KWE4QFBxa2k3XzkhX15ifEF1MEwocnRkMEAyCnpiRyNWNVhQc0RfWjFCI0I3JTZLYkFTTG4/
I2Q7JSt3dUkrMEg2MF9VdTFkRks/c0l3WmZAOWVRWklYfSNtdlJhKwp6b0d1Ui1SN0xacWE3dTM+
bUVyITBNfTBAUXtFVlUqPnhocDYzUj5Yd3Yoa188PVI/Yng8TG1nSW0+K21PSiFBVTQKejFRQSlY
KHUoSEZxVnNMRClaYlYzX0FqeV5Ua0M3Y0NESVZ7azRpPlFNR3h5NjJvdFBfUlMqN25kdXc4OHom
eyZzCnp7MnwwKXB1ISs9bmBHQD5kbUEoM2xPOFBvZkBfYlU8I1MkQi0qWXQ5TEVnOUtPJj9TSzFU
Um9Paj1zdD1vbXxmVAp6ck94WHZSRXdRJGhYelBeSGh3eH1HaGZ6ZDlubXwzIUtLRldNczdSfVdY
NEw4ISV3Q1RWbWdXelpTNjJwXlhSLVkKenckI2NKeTx4bkZ0SDxaKCN3UH5EOX5xOX1SU2QtQDEt
djVaNzRZeE5XZlp1bypLeWYyaChCU1gqXmtkfU9+Xkc7CnpNUCNQJC15U2l1ZTA/KiEtcylFQj5B
WWJoKVFOQW50M1hrO2Frez5reX5gSFNHUWk0RUAzazdWVntAfEcwYDZzcQp6ZDlPTEdKRkB0dlgl
QjZNX3lMbFpSfnQpLURlTj5uPWw9ezYmcUw+djt0NXlLMjJjYWZBeXVtIWBmMzRMRGx1NnAKelBr
WkpVaTtLMWZ1THpKUCQhIWZiPzdXWl8mOWJGeU88fnh1PnVhYjA1b08yMW4qLU9aanM0eit6VGBB
TlEqcVR+CnprJHxTRUp9NlYteCltKCg0eFlHXmkoVCVXWXc+eTdoKDslVFV+OV41N3M5KHhEODkr
TSt0P3ZRQzlCPWJPRDxkLQp6bTl9IV51fElAcmRBTEZkdkk4T0glOVFSbEFWV1dkTndJdk4/dVhK
JGVVcXpqPk5QNFE/NWQoOzFgMGFXZkk7Q0gKeiNQR1hfcm0rZmRZfU9GT3Y+fEhjRFdUPWwtPWg3
cyhSbFM7ekNOWXQrdl5kM3ZATGp0WWNubzxScmJ1KHVHTkBYCnpUfHl9TEB+QHd4IW95VGhuMzM+
QVNKaHBhNEF1ZEQqKm97VlNXJDsocnhVWEF4KE59eXY5S2tuQmBNYz4oI3A0Mgp6YVREZnEob0hy
U3N+SlUhNGFeKEBmT3dGeWB4NjY4RXlGc1o4X2Bpd2ktWkdTVWRHM1BXdUtvNlZXVlJReyhoVGYK
eldtRCYmZVgxKjwqfEIoIS19SGppVFh8b0I/OTR1Tzd0PyVLb2tyXzVTNXM1PXB5Kk8la0hQV0ds
I0BhO25KJipICno9TVcybSUkQEMyQGBtPHwpWjJAYFg2MU97Y3FIU256fkhuKGN5IXBwa3M1REJG
Rm1gVV5ARHpJVkVwX3A1aHwkUAp6ZTJARXVZaUh1dlpicFFqTylKdDNKTHNsQ0B2ckBFViM/QVlv
V3NsKChEWFJKUS08ZWVHZ3ZiUFZxWit3b2JmQkMKejl7LUJxKVZSQVFfcDlPUkJHdTEwdEYwRTxT
MW9DKFA+Pz5FUzs4cDM3clFhP2YxSUFla3pyT0NhNmJGM2JYZD9ACnoma0BPQXg3RCtkSl9HNCg0
d2xwQVNgUXxGKCFFZWdzKFF5cDQyXnd2WXJyMEoqfERLJHYxeUVWRE5SU3BRIT84bAp6Q3w3bm1S
WDYoKipZRGkpQz9BXjs4O35yc25gTypfbzNiJDZZNXgmWkA8SXE5Q2hrbWwwamJDcURzfmBJYW0l
MGEKeiZaUFR1MGVJR1ReOTRlXjReKztiPGdpfn15RVBxT0h1cFJEWWopMklWPjN2OSZhYWkrLWR4
MGZOailAfngteEx7Cno2dXw1OHVIbzhYbndqKV9HS2pIYmRvWSt+WENJRyRwWkB8VUU8czhtPHhh
QTBVQyRPRl9wUFA0ZEEqVDdtM0IoRQp6WUh7YHhuT001U29IYEAhXnFiSXIrN31PVDEjJnhRJDZI
bnh4JGgleGB2Izg+aV9DP29KeTkxTmYqUUN0KldHSG0Kejk8XytDIVpVc0toanBXMVZ3YDF8QSh1
KXp3NEE/eGVTMk5QR3BQczk2JmtTYiEmTExLVWIkfWFseGZ4a0p4MDVlCnpiMk9zbXU1S3BPVzRm
MzNZTXFIRkl6Ry0pPFdkd2l6OUp1dmxlQkdQUTBWNE1Sc09Rak1mcCNWeG4+X2xvRkNWNAp6RSMp
SWUte01ENW9jMTdBNmFhNEhtb0w4IWZmdGN6JWE3dEg3fkhNMClUSUVwJCR5cngwcjVAdWlTYSoh
YGt2aDEKemolUiRvSFlZcDdGbm5IfU1vS3d4R1EzQ0B3OE9sPy1laldMTmJ6WFR4Z2owKGkxKUJ7
bDx+ZklXYiQwaFpsTkA7CnpOTWBHb142S2I2S1Y/fmVXYTkxfHpJNDZNaWl1RkIpbit1a3M/YX5E
bVpLY15VRjVjWj1UWGxmJjl7NlVHWmhgewp6RClGYXc/TiRsb0ZQQ1g+TXtuSEdBeH1uNURLNjNZ
aGA8SV5YSk1WQUFCR2JzdXMhflZ3ZUdhe3hudXFUIWdhUUkKenZoaC13Xm99d2xuJUxSdGh3eStG
SHI8ViVENGNQaGh7Wng+SiR6V0BxaCY1YlVHP01zZVdfI3glZyUoMSNNKlY/CnpYQ3xYT3BWUjN7
QDIzLVVPaXZJYHVZeiZscEFeOXVtWjJeM2clSytHRU5YMztTOGR8Jj4je3I8VSglZG5qV0Arawp6
K2BwJHQ8M3BHOUQjSVF3Y21mOFFGaFZyMUB4MHxyNDJrSDMtcn5GQWkme1djc1JqZXRTKDZ4Z2FS
T0J8UmQrYVcKei08SC16YW1jfUBsM0RzNXJgWDApbU9TNUYlcnEzUkVnLWYmbHtGdF81UCV7fmpK
Mlo5Xk5AJiV1MGUyQVloO3B6CnpfVFdmczdxbUowSW4ycVYoWll0RmQpRyVhSlY1Y3E/QW5yKVVu
MHN+ZT5xTmlTU2x+ciN4b3xUKUMrWXNaezw0Ugp6RDhabFhfQjVlb0VBP0JKbU5MZGU0NmdNJVZk
Xk84bGFLUUlCSE5nZlF+WipTdzV6fCQ8cUpNJmAxKXx9dSUmVkEKemVze3paWXA5ZGBQO0tNPThj
QkhjRGtaZUp5Y1BSNTgtc21scF88P2tKSHVLSCQ0SCE7enp6Jm9qPFp0Um1xakVICnp3PXR+QVlp
Zl5oVmJjc3JBU3xZbmp2ITUhdDd4Y0lxfihsbz1+YG1IRU99fHV2UXBwaSNDNFczZG13JUNebERD
Xgp6WE85MU1GdDI4KnYrZn4+KUVpWmhlMlpMfVZ+WUI0Kk1LRzshRWNrY0RPT21JeGp4VVZvO1hT
eSF7eTc+aXNMSm0KekN6aHtYWD1gc2U3aXFMRzhgK042Y3R2N3xxM2xLQCgjUl5jRzlGb3ZpIXw+
UTNmP1R6PlVMWihXe0EoX2hGZVlGCno2UzJlRjVCIzdNNnUqMGFTfHpmSEZfIUpuI25HVmNSNyFm
V21VTWMxUHZQTUNUVDdEPz9oPilna1Q3VnZHJlczSQp6dG4wYyNNUFpLLW9WXzNiYm5KNVgpe351
Kz47X3ppQTBgQ0lEcnJrWUxYekI9aFReZiYpRX5kSElCZHh4bThAK14Kej1reTwmXjM1eURJY1oo
YXdONUNgd2lHNWYkQm5LYjNvNXhLand3bVU9UlFEVnFIJkctNkZFS1peREhKTVo9TU5GCnoqV1Vr
UzZuJXYrYVMyQyZacklhWCleUmhGJX1XQjheaVJXYHB6YFYjdFY3TThoYilLcnlzOHN+PD9ubW1H
Rz11VAp6I2pJSTBxMVBVYjQyamcwSnhGKDhuSzBfVFZxSnZPe2d3JmBqYUExR2M7K1czKEpOc3lm
d34wSlBXdF43M21WN3sKelRwSmZYQkVEdX4pZnE/S2lpQ0lAO3VLPWxqe0VAZ3ZhaVQ9Rks7bj9v
NXVDJT9qR0RwKXFkPUFIcDQtSCV3UlVDCnpUe0xAUXQ1bFUkMkQpUGlfYy07YktCU1U1aX0mfFJe
S3F+MHhEUXlkdDI0N3IkR2FLNy0kYGFZSXdfZjE2eU4qdwp6TlRDKzBfWGwmSXtCWF40a3ZpMExS
bWJke3ZzNDVSKUZLRGJPYzxAMWBlNn1UWEt7fUtUV0BMcTJMfWFZU1ErZmIKem1KUnlsRGZUM0pw
NzApYWlScmxCVWpObDN3OUw9NDdxZjZLUHB+Y31HP2FHQ1Y+OzY5Sj84KklYLVhZVVJYVTRGCnpD
dUBVJXY7Xm4yU0w3WWN7IWxmd3NLV3Z8cXR0fH5XaCZHVGA7JnpCbztFS3p5N0VqfW9fJH1JYUtS
aHpVSXlEQQp6RipvTkdJO2tuQ0B0SEpCQm9Edmo7TTQ+aSpiLSV5SD1BIU1Oe21AaHIhbDxRJlhW
UUtJd2FZPzVEb2E2M304SjkKemJacCVjdkhxUXpVYmB9O2N8bV9Mc0ZZJlNhazRgMzxpfVRQP1Bv
NzNwVihOQ19zTEpuYGxAYiVLTm5XS2tAUWVCCnpgekVxbnVvNiFAZH1URGZ0cmlxbldeVDgpaHAy
MmR6cGdaekc1U0hJVT5acHdJMT9TWD9+bWJueWxMe2JMN3w4Zwp6SE5sd3Q2UmtuUVRZc1ZERlhy
dUY3eHdSeio9fUZnQjJiNypeKU52SHNyOVA8VGs4UnBLZ2YzUGxfXlBhNzl0Q1EKemZUIWhXZWE8
YjtQRCMocCUrMVkhWENmRmd5e2ApTkBfWmR3dGlubHQhTUNGRWFTZ3EhblR4fTRLPnU5VDNvVSE1
CnpPbWlCb2kzTy1tb35eaFh0MHR7LWNhKT9qT0kqUD84N2tBO085IU9OI0R1RippcCo7KyFrcDFM
b0J3Yi0+bF5hOwp6SEF0X15gbnxrflJ3dzU0dWJfZj9hblAwY2tUcjdaSiYlSUVYVnxZM2ZBUUFT
bDFMVWpnNDFUemVsMU96YWoodE0KelVTfF5QdDdeLVJ7SGxKXmY2Sm90bTlqMDtzbkkjelFReCh0
NDtPZWtBMmk+b2xwMzI5WDFsS1dRKzA1OFBwQVl4CnphenpDa0sreTMpOHFfeEE7WGZfbklZcXpL
R2B6dHVwTlVJP3RzQWlPZXghS2tVNT9LanBEdGVrM3JGbm15UC1iUQp6aSUoM2FgJjZINDstU2JU
PWtxd0dFe24qYnRldWIzdyYmVEZ2PG1eQjl6UkVpWT0/UStgWiVnfFl9aX0rY293XykKeihJczJ4
T281d0h8TTRVKmspVkpeTURJenc7RjVXRSgkZ1NjT0NQaE5pVHlZNER5eFRfSWdOcVZqSyFUWlZl
NSh0CnptN31Ha09yWVI5JXAwQjxHMTFvRmRtOzxNJWFiY1ZDezJ4am9SKytMVE89P189KSUhcWxr
alpOdWV4KH1Wbm8kfAp6YXs4SX5YUSV0Kj1ROERrIyY2VGk9N2ckX2hCMmtxUEowKkBvNXNTX0Iw
VS1TcFQ4My00VWlzVnRDIX4waHtJT0YKejkzPWcyRkNfKzE5bnRGT0ZpV0ZOUGZ9Jl90S0Mzfk98
aj9xdGZAfEdHNSFsKXloKXBWbTFubntibzJJdXYkJSRGCnpJNDFIYVhyUHtXbS0ldEw+aWVWfipT
cVc4eWxoc0hYJCgoS1Zub0JuXmtffnc4bWw9SEAwfikwXnFzMGhzOSlfKAp6XkZZVEh2I3VFWWI7
RythP3MtT2RWN2otP2N7WHE4ZzAhfiU4V3NEQjhNMV9wMWJtTHFIYnwmOFlOdyhJaExaQU0KelJ3
fGVlPitTbVl7Nm08d2V3azRlNjw8N2MpP2w0SkRXcnw0U21wMXd7YEtIbnJKSmI5LW9wSmFuMzJ0
RzMmUGBrCnpLcEMxdFZlfG5ONnZ6SW51YnkpLWprMmomMWlyRGVkVF88enU7WVl3P31SYVljc0w1
M0E/aVI4KXZWb2whKk5tNAp6IXp0bnlJem94ZldNbytPVD0hXz0xSmpkUUZLPEtsJV57LTZlY2pD
fjtvMzszUHM3c1c3Xkp+Q3UyanRBczElOVYKekElMmVhSnRtcXNAbGlhX0h+cEV9M0V4SzMkWnNz
R2RSI2s2aUh+YEJnJio/NXZnVyh1c1pzPkowVj8lOSN3eFlrCnpSMyl2ejd3I2V1c3w8R3RQfXFU
ZmNiUiE7UEVEMlE1TzJMIXpMYT4/Qnh5I2tsYEoyJlY0PnxMYmxYNnhMLU5VVQp6QDAoKFVzeCo0
Z1FCVThfTXY8MHh1VHpyIUA3YXY8REpIfFc3WCk/c0o8bV5uel5OZVZTe2lWcDVJV2FNRz1tRlQK
elBTWE84KX0oMStkIzRTR2d7MTNASnxUK1VWXig8OXlgTmI2R2Z+RnN4UW9YUihyTWxtMiZrbEY9
MypWOG8lMCluCno7Pj84cUdvMHkpZituOHlYKSV4dD5aRUI7Y1c8Km9jOyo8Ymg5K3czdCNrU2A+
Nk1VazlXOVpqa28zVEl6IV4jTwp6OUwzTWFTRThJdGtqfms4YGpgdzhnKFBPNExBWVVNb2Z6K2l4
K3ZxX1ZCcUBXP19EQThJZWskaFcyT3soNmtMdXwKekl0M1FualF6dUdQKyE4YU5SR0I0PEgtc3p0
IyM3fmo9bU9WK1ZAO0ZLci1XfERfcGxCbTt4QGleLTFHaSFlVjQjCnpuVng8UWBWJUlRYlplQ3FY
U3dKJWEtVDszQ0x9QjhAPXxtMz1SST5ATDF0RzRYfm8/JUlOaUFnaV9pTV5KRXRxJQp6KDdmZ1NO
RDxiUiR8Wkw4dEdjfHY3WTxfPzYwIUxqPmI5eUZ4PHVpUno+JTdAU2g3eyV5QDV1JVRRalQ+Vzlk
UVMKenktanNaVG5XXzkxTVpLX1NsX0t4SlJgJWQ/XnhaUGJITGVuNHsmUn5gKCNKVXt0bm07RjVX
UWRiVzdfM3ozfDVUCnpLLTR6RF9JdGopYCheSyhfUGU3JFhVbHJwTVBoSTJDe0A5cW13bkJ+d0N2
dShxIWZhflp0fTwzYCRoS2RheitAdQp6O2Vzan42VntNY3NTe1F7Z1V4U2N4JVNeZEF9YSlmJXU7
ZzR0LWFTOG1mdjEwVUE/MDhKJE9ldSFJY1pUXktGUiUKenQjWC1nbXRIOXcleyhJc3NxVWV4eGYm
WipUSDM2O1B+Q3hZdGUkJH5ZX2I0fWI9bHF9Uz44filGO0JieSh7KnE2CnpZJEByV0tzSUtRQ21a
eD1nZGkkJnU/dWUtdjhDSDMlfG1KZWxiMm1sZkJlIzgtbHFqakdIKihidlVIOSo8d1Fiewp6dURI
SVl3T0BGZ29Ybm5CYUUkdSZ8OCN3WEE/WShYVyt5TnE/YXhUeWtqbCtnUWFhSGhrejg+WCNwYUt2
ayhZbyMKemsyNyRPPEQ5NDNUbyV9TSo9IVp5YDlpe0MmRVhoJil1aFJQeCo5YiNOR3lQTGp0YGhI
KUJBMyNpYSV3WD1oQiFlCnpCYWA9X29UViE5bWsxeWxUVVlnfjYxPEB8S2JDSnZUU2gqTGRWMz1f
TmdGSEh1RnVEPEM8X21fRU0oV3RXdlN5NQp6KnxzPWkjfUFGc2krKyRDeloramReZT4xSUgkYHlg
QWpVcW1XKz85X0RQRylhVGJJI0QlZ0w8SEREeWZQX0hAMVcKejckS2ByUk5eRGd5RW1+Yyl7RXUx
bl5hSXUhRkYjPTZMS3NmKndgSDttYzlfWTtoSnY8QGVNTHI1fW5SXzBtdW5+CnorJWhgTFpOMjFh
S2cxQklpZ3EhdlhYZyErbDMtUEZMQmtHPVVuNSkrSEV6bG42XndSR1VwQWF0PDVROzRDaXo0JAp6
fEFoPnkkaTY9NipCZXRjYSZwMmU7RD14a19DaklgKnBBO0ZkUjIrZSotV2lRN0FNTGtpN3N3OFJP
QHlaVUxRWVUKemNzOTU7dmo0Sm9aTEt9NG9rQjszTE0tQn0/aXwtISg1bX51V3E1TkcqVUMzUj9Z
cEEoZyQ8PDRBbEUkTG4zQTxHCnpuKTlLOHZiOyVlZkRhQE9OJjF1ZzNSa2dwWVNTcXQ0Nj9eJjNU
JlU5R1pgXihwTnFTP3RhVVpJK0M2U351YU9HJQp6TGxTWn1PUlVwfW1Udyh+TXchRHJZS09QPylh
XkhaX2VWY2Zge0hfRlAkRjkxX3F2fGolOUJxZ0tjbm98P2BDezQKenp0eiFReXI2KHpqKCZ3QCYl
T0hjTDwxJlk/dGRaZXhYVkMpJjJaZypGSCUzRWwjdG95PUJUPFI4RH17a1djZnxLCnpyeXk7dksm
K2w3ZU5iO0paJmx+LXVEUCNiPmU9bHora2ElPl54bDUxNG95IXg1PVJ4dEFFZ3lJZ0M9Nml6S00h
OAp6aT9CZno8PSttNWs3PGI2N0crck92TU5AVmU9Tj4+e1Z3eztpP3lLIV5LKURsQSM3OzFlfSVo
UWR+JiRXX0wlcG4Kem84ajw/VXlwITc7JiZ6TVVwSCZeJm5QWjdGVmNrYj5pRH0oLWAmKHNleiMt
JmM+VG9ETjZHV3UhOHhnOTUqOWlwCnpATlZrazdKWFczYGpTKmF5fXEpK0g5bjl5OS1KYFFwRTc5
Nk4kPEE9ank7PnJgPnFwZyZqPXYkQG1OeyYlfUd2Vwp6eHo9JCNPSjNFX292I1okVV9UWEhDeWt8
PFoya0NyWTA5V2NnbFNwcUFadSZOZz1DU3V0PnhTVDxqIT80WW99eioKeklQKWdVJTNCNzlneVRO
SDs5RkVxYThNfVVAJFNuaG4wcEhacWJjcEVHVmYhfWpSZWd4N3JDTCFnbU5qbCM8KkByCnpXSnpW
Wl9xZihHJSF7P2QyTHZqbWE4LTE3NWFUfW5eRTktfj1YSzVgQk1BWUpkUF5pYyNzPEM4Sj5XaE9y
Vkd5aAp6anNCYz1mJG53RU1peWoxRmNLM2o3KTYqSURgNE1UOH5JflMjOzVOXl8yeF52LT5WNlJw
RjV3c2UmMlZ+UGNMOEEKejJzUE44MHtlWCNTK3YyQVQ3YzUxclc+djkoYlZKUnN2M0dAP2FESk1y
OH1FNnZNXzB0ITs7Q1dNajF0bXJTbkJkCnp3KT44YzZ7Z159YHtPN2thdEZ8PiY5UHVMajk7eVJP
V1Q4cE5JIWFKP3lvZVVZcTFVVitLfVl5Kj9KRHcoK2c0MAp6YkRtZUMmUkpQTCQobVcrQDZ9I1gk
YVd5d149LUE4Iy1Dayg1M3pYcSYpdEI+XzBhM08rJk5jVUd1aTY5bThKMXUKellfSTI3MFkzRjUo
cXhMbnJ0TiNiRVAoJjZsPTdiIV41X1FMYz5oVH1qWD1udll2KS0mN05mO3o3cklkXiRGMyhzCnpy
ejFRfCtsXz43YTJkZG4kSkpgPTsqVER4ZiRfXl9vcGcyfHF+eCFyd3k4YD42ZW9UQ2NzVEd2TSlH
MVlgbE4tPQp6XkZyekJXQGNyNF9QQSh4Xj1JRDZ5R31CYWtAaDtHXyg3Pl9WX2gwKDxHcmhgXl57
Wkk2U3h8aSM8KXpzPHZlOXwKejVVVThqSVVKKV9LOylaXj1iZDJCbWZLNjBvVnBtPlghZER9VEhP
Jik+fG5CVm18O0x3TF4+SismRVVBdD5qe35ACno8X143e1NwTkBXVk8xa2NpQVU3Y05OZ2FoVnFk
ISlMUDg+blVsJHp2aHxkI2s9cnckaGNyKzdFVWxXOHpEMUo0Ngp6UihrTlEhYntXZHJtRS11Xylw
NTBWcTJ+aUlMNCMmOzg1bTEzVnIyZCVVbmlMLWtwWmcpPmYpKEo7TkM+MSt7UjcKejJLQkVNKnBw
MnQ2bHJPKmd+MTkjRWhVc147Ql5McyZSbkN4VDVCT0hIUEwqWHpjbE5+RWFVbCYtZyRhJjRSPiVs
CnpPPkpaOWFDd3sqT3R3RCUha3FLRHFZUTQ+MWlScnc5blRLQVJVRTR1U1kpfDB7PDs1bz09JExh
b05PWUEyNjc/cgp6eCNJQ1M1SHlXOHh+JXg+YF5SbEB3ckg3cVpmbDloJnxndExjWU5YJWUqKHVH
I21WKkFGWnluYlRITERxcjtZeEcKeiM8OzAwUWx+VllPYTtZV0lDXj5vKTt6RnV3cCQwKzdvMiFt
TUJ1SVlEMVIkOyM0QSNqKFIqRH03SFVtPkdhTikpCnojN0pqdGNRaVY2ViRafkhkUFZUU2UwbHZo
Sz9fUXEhUV5iPGVLfSlVQG9sXnM/VV9kfXYxe1JGbzVOWUJMQT5SNgp6KVZmP2ZKQiR1Y0QwPkwo
JG1pbD47YyhRcyYpeHtLOUp4X2s7QXgpMEV8SHZARFg/QlV2N2t4dUNZWkMwJXlvNigKempybnUp
VHR7PWw8aTI+eShuOGBCQ0s2RGtlc3QpN3UlVzN9O3hDb2FnYVlQQDlgYmRQUjVXR0J5ZDBJdW5i
U0tmCnomZXBjMTN8ZEBRdUI1MmlsQWwqdHd6YXtmbz5nTEZyI15OQjBRayFHbjlOTmdtYTRUTGAj
K3NBRUJCIWklNzMpawp6cktwSFFxN0lzOWA3TDUtUXI1ZnxGeDskYUBXb0BgSWBqd3VYOHR9d0lB
KjZSYnpRc0NsZiEhYFFmI3g2UkE8WmsKelh5bkdsT3U0SlhXX2B7RGA1b1RDZlgyY1JaPnZoWmY4
OU84eEtLPm48UnM1Q1BgZFpYPGZEYygkeEt7SnFnYnVMCnpeUEl9b3hWV0luQTFYbT9EclMtYCo/
RmhwWSU1N2kjZzg1eXptNz48Y2BCU20rUUdONGc2QStqcjs7PC1RUUM5fQp6KEszUVFwa199a2NZ
MyN8alImeHdaVFJlWU5jZnVMQX55d0pPPDArSnAycFhOZGQhJX1uZHg5JChMYnxfNVZYMHMKenco
ND12WiNWaX1mK2F8THBzS3o+KC18a2wkUUN9PmpOI1pVTztKNXYoYGNpO2c+JFIjO0dZeSpXV05u
QkAxT1dwCnolWHJze2AoO3tAdGJPJDhlYlZYbyhRemc3dzkwWmBpTW9gM2lfcGhgaHlOYD85fEsr
ZSpnNktIPzd9UVdRRCR5UQp6YzF9VE5FK3F2T0Q9U2tmTntid1lWVWtkJW1MazdRa15Ja0ZAbzAt
S1M9ekAjQ3xgKjlZOCsheHpJPCFoVENnI2sKenVSVGdSeTFwcGMpRlJwOWVUd0ZpI3JLP25renpM
a3FFKmE8KnxZcWRxU1N2PXp5NC1Ad19TJCk0LVl1fSVgOTlsCnp1VX1EcjdNWl9WdiUoUGZKZ1VV
Mk1GYjxLXkgmOTRtMnZHX0lmZWFyQ0wmI0pkRX1pZDNoVD8wTVQlUjZ6PnxuSwp6azVzeiVuSVJk
QUZ7JlAkayp9Z35BS3NqbDBZOH1KS18pZlBUUVQtU2dgcz1+fDN1MTl2OWRCKChjeXIkNV8pPikK
emUldkBBd0ImR1h3cnZpK21SUzEwM29vfXJNUjRfUFc8dDt+O2I7eUs3VEIrMHlwQGRhUk1mJnRn
Wjw5RGFAXld1CnpFNHpOallKZTU3ZDFoMURPZSRFT0V6cDRuSHFnQzVISHdMX1JyZnpDQkZ7WD0h
T2ktOCt+O1pyIXBUTksyZWw2OAp6Wl8yKk5hJEw4I3hhVjY0KlhzeEVPeX5DIS0qeUBYI25TPGhD
fGtRNiR4flM8ZXF7TS09OGRLa0pEPEJgVjNHd3IKei14QzA9cEwtXk1QPldePVJOUT1nS31NX0Qx
N0RkOXJoSkF5THJHSmh1d05JX1U7a1EwenxXYDFGZD0zOCQoeiMhCno1YGlxbGEobG1hO3NeVVg4
JXZ+bipWcFNkZ1RCY2hqPmIqcmtfUTF8Myg4cldHNEcrUXp1Xy1YYyhMUHBEVX5DSAp6Zj9LQnU8
bWw+ZXR+TWchU1F0SXV0dz0oVCEte3t7QmQtUUQ5d0whU1MtXj9JXlpMbHhgPUVXSF5IZEI0I0A4
ckwKelVIJFFKTFVxdW87emlWYSVWWmlAP1JSbHt4MlQoQWApcWJvbzl9UCh3UXc5KCo1SUVQKiNk
JUNNcy0ocXVleUY0CnpTO0lIWDRVP1QpdyVrayVrbl51VCNRRGV6WSs3YDgtJGx6RmxLWCFYJmFw
diNCcUpyfUV3dlFyc2wwdFM3VnBNVQp6SU8yQHItKElfRTwkfFU7ZjBISzQ9eTkxV2xwezh1V3B0
SntgI0JIO0F4RSl3e25DPFJIZ1F0dXg5RGlNKDxKKnAKelh5KTllJSo9TX10bStfcXJuNHtVVEh7
amAjWkZlY2BWdHo9dEh1MSs2fX51ckFCaGgySHxmYDVUYXxiQmNiN2YxCnpiYFRxc0J+bFUoWWxn
MUdQWUFJMyhXdHZDc2RrR0l0VF9OaEYjfFZAZk1EbDY4Xnd1MFlQMjhKRVhzdyM7X0xFRQp6Yyt8
O25mej9sJTd5QWpyYlojdChlYkpMSXY1cCh9ZjBFUTZ0Q00kZ1pnRSUmQE5UbSRfQE16bFd7Mk02
S2AxaVcKejRTJjVnYkRCMkNvM0JOcUdoXioxIXdOejlOaTtgc2s4Nz95PU1jbDEpc2s/NXZpaCE9
JD1aUzMxelhiQHJpIXlzCnpsZFQ8QiowKCMpSCg4SjV1c0kjX2M5YkhzRy1TUlV2U29kPCRCYSNW
O1VwYXpMUlZPS0p9MCF5bXJuaWxFc2Q9YQp6R2hAcSM0TzdYSCYlOCRxdmUxTHpndE5+WHBBdj82
QCFnKyQ9OG1fb3tyPFQwbVBYcCNoSW8oJHJHLSZOR2xrMXAKejZSWCpfY1p5S183Xk9kUUB9REtw
WXRWZVpxSn1VYVUmSmxmXzA+Qil7ZD51aS08en5TXyROUVl1RG84YiszJj9CCno0NyUwTlY8S2d4
Xkk3NDgtX1hjYy18T2tWWEUhcHBkS3EoZylOdUlMbUJIVktNRCtNLTZ7ZSZyUkslfj0rJUNRfAp6
NUw+NHdVNkdxZ28/IXZBRD0pJUhTSkkjKzIqXiMjSzJPcz56SFMtKzBqKEtJK0h7QE9gKylMYyh6
YSh4T1hWU0kKemRkQ1N9PVgjYzQtaVRwSio2OS12Xm1nYFoxeTVPX1ZTXl43b2F1YVQmWEsrV0J7
b3s3U058flUmUV9eXmBna3I3CnpWPkNpaHMtTTxhOVYhfnV7Sz8wXkM4fUxWUmFpeElkIzVMQWBu
VHQkKyQqOVQjUD1BaypBMXVWaU1yMU4qeHokSAp6bShNQ0pKfDk2a3BCS2piaTdla2Q0UDgwa0hL
SGM+REErKCg8dHZSNm9ZLWFUMyp6I0VCTzgzVSRJPUlWSTVUeVkKek5FOCVLJEhgUVJEN2clX0FD
ZyhXIzhtdEEqTnBCcTdfQXIrdlBWPFl4ejt0KDcrO2JgM0NWI01wPGk9az4qYilvCno0Ujc9KjRA
PzxVT2AyRjF2SlA1YDMjIT9nJDI+dntVZUF9XyFDOzxDaStDcXhVJVBFUm9UZ1FBP3grMCtvI0Ej
dAp6b0FtV3dhWkw5WDYrSEZCaGhNUn5kUFQxMnZSdm5yaTZ1WXsyOUB5d3tmNklYKXNGbX45YzVR
VT1JMXIrY0ZXQ2gKekJ6cSFjVFhRYG1Qc1pyVUtncHAhezFefHQhaUIpU0hUZXs1MncobTMwQl9D
aGxrPWVoUG9NIThnfngjK1JuQkpaCnpxeFpMa1NTeDx1TkRxKExEQ3Q5MlIzKzMoYUxzSnQ0Rmpv
LW8mSi1iX2RlYDNoVHBiVkxrRWZQa3EpXyE/SG8+Mwp6ODVEeVhgNnkhNGhuaHJucEI9cldvaTV3
VCh8TSVlMnYlJE9NcHU1Pyp1RXpvP1pHQ3hXPHYmeGgoMyZQZjJzcyEKej9vXkp1WmxHbnsrfV45
TlU5TGEpQEN1NmdWOERVUGBTPGhoMyZWU2xCJVc7MUlKbCFYblZ+cWJ2VWJJanE2YiNeCnolPWp9
QDlFWTR4QUZpc0RMJT5SNVZQOTZ9eSktQGQ4eDJISHo4PGJCOFd8LXRjb2xYaHVLc0d1NTRmaWwy
el5SQgp6UWJKNWkmdTU9NHd2b1IodG9OfjJGT15yJi0tfENoZERnbk5mPH5OOyF9cDNLN2RjSSgr
THZKY0RvYmljbj9yQT8Kem1iJGlNWFJ4cj4/N2Z8ZygzbiV5YEpJPnV5QTc0QCZ1PCNIMDNhIVB0
X05oJnl7b21NVHJaRE0tbXE2WVQzTD9hCnplbn4wfmM4ZGhMMW15TUglR1Y1cHVEQEZsSkAhe0Mo
TFUle09fbDBSY1FQeGJKUk10NUZIeFdpZShueyVCemlLJgp6UV9VJCQ2My1gY15DMXlWdEw7Q3sq
NktPYEhzRChlbGFDPDkjb0ozcD8ja0R+JHFjN2AtYF4xRmQ3ZWNgYys5aFUKenkrcWdXJjRUVj91
K00kQzVFUjZIK1ElOUVQdlNzQzU7NSk/Qz50ZU4/IWZsTyR4QHt4dThPP3tWPXA1dGdSTHBaCnpq
bF97Jk1eUSk4NyVZd3dzQm5LWjtiRE5LMDh6eHE7VC1uKCoxYmBCJG1AKTFGVVp1YjVIPFF0YWhP
MT0mSkN7WQp6VyFLLVhsRGVCfUZvNH5QX1Z5b1VgY3U7blkrdz9zbl9tNDhVZHN2dmVTVC1AZ0Ex
R3Z1WkVqNE0mZ2I/T2wqKWcKeiR2ZTdXblgkVkRPXnRjdXVkJkwxYWA/O20xKzhrMkJIdSlBPmRB
eXxQMzAleGYpWUUhWGM3S3NaNWZfailzVUtmCnp1VFJBYiVOfj9lUzI3dTYxKnNeQi1DLXcpTllH
IyheR0I2SVR8V09VQENoPGtnR2dQP0cjWX1NKExFdlQ7fWFOcAp6UkZ6cVZsVnJMUnJrU09eSGBo
Pjk/Kkc9Jj9AMT5wdlI4RDs9K0Q0elV8RyZqdmw+LUI8S3RufD1LVFFDJDJaYnMKeiN0biFgNFlp
YFVmVis3S0RNJDNrPyZvV0w+bSRAQ0hpPCVPZV5TP1E0T1R5ZWVkKkE7dVBBQHZiRjZaPEo8V00x
CnpsPlUzfDc4akh1cE92O0djbDNjXkU2Kl5OR19DTSokZ3pzcGEqQFFAIXNxbTB6LXVpalR7bjZ3
OVNNVFY4TmEpTwp6Sl99b0ZUWiFOezRWKnFMdldfSFltNUcwMGdGO25hXzNDJXlfMUdiS2hTPmU/
IUZNUmF8NzR6NChebUZpNDRQR08Kej1oJiYoT19ufn1WSSs9Q042aj1keTZiNl5aQ1VuSnh6YTB2
NVJvKiF1Q0hLWHZ+IUpTaTU8cjdYeDkzalJmTUxtCncxU05gbCNLZXxfXlVTXldXOUBaVWFWRVNh
c2V2Q1lJc2Q+RyNkOWl6TnBwI1lvfHoyPDMmZ192S2NuS3Nyfm0pfQoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1p
bnRlcmNlcHQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1p
bnRlcmNlcHQtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4YjVmOGM1Y2I3N2IxNTNiYzk4NzAzODIx
ZTEzZjAwZDg3MDJmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvc2ltcGxlLWludGVyY2VwdC13b3JrZXIuanMKQEAgLTAsMCArMSw1IEBACitzZWxmLm9u
ZmV0Y2ggPSBmdW5jdGlvbihldmVudCkgeworICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhP
Zignc2ltcGxlJykgIT0gLTEpCisgICAgZXZlbnQucmVzcG9uZFdpdGgoCisgICAgICBuZXcgUmVz
cG9uc2UobmV3IEJsb2IoWydpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlciddKSkpOworfTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzNlM2U3
ODcwN2IxNGRjY2E5OGJmMWE0MzVhMzRmNDAyYjNkYWRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS5odG1sCkBAIC0wLDAgKzEsMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+U2ltcGxlPC90aXRsZT4KK0hlcmUncyBhIHNpbXBsZSBodG1s
IGZpbGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2ltcGxlLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9zaW1wbGUudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjll
M2NiOTFmYjliOTVkNmU1MWRlODViODJlNmY4NmU5MmY1OWFjNmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2ltcGxlLnR4dApAQCAtMCwwICsxIEBACith
IHNpbXBsZSB0ZXh0IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9za2lwLXdhaXRpbmctaW5zdGFsbGVkLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjYz
MDI2ZDVjNDgwZWY0N2U0MmM4ZjRiNzNlMWFhM2ZhNzlmYjJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAtd2FpdGluZy1pbnN0YWxsZWQtd29ya2Vy
LmpzCkBAIC0wLDAgKzEsMzUgQEAKK3NlbGYuc3RhdGUgPSAnc3RhcnRpbmcnOworCitzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoJ2luc3RhbGwnLCBmdW5jdGlvbigpIHsKKyAgICBzZWxmLnN0YXRlID0g
J2luc3RhbGxpbmcnOworICB9KTsKKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScs
IGZ1bmN0aW9uKCkgeworICAgIHNlbGYuc3RhdGUgPSAnYWN0aXZhdGluZyc7CisgIH0pOworCitz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIHZh
ciBwb3J0ID0gZXZlbnQuZGF0YS5wb3J0OworICAgIGlmIChzZWxmLnN0YXRlICE9PSAnaW5zdGFs
bGluZycpIHsKKyAgICAgIHBvcnQucG9zdE1lc3NhZ2UoJ0ZBSUw6IFdvcmtlciBzaG91bGQgYmUg
d2FpdGluZyBpbiBpbnN0YWxsZWQgc3RhdGUnKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAg
ZXZlbnQud2FpdFVudGlsKHNlbGYuc2tpcFdhaXRpbmcoKQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAg
ICAgICBwb3J0LnBvc3RNZXNzYWdlKCdGQUlMOiBQcm9taXNlIHNob3VsZCBiZSByZXNvbHZlZCB3
aXRoIHVuZGVmaW5lZCcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKworICAg
ICAgICAgIGlmIChzZWxmLnN0YXRlID09PSAnYWN0aXZhdGluZycpIHsKKyAgICAgICAgICAgIHBv
cnQucG9zdE1lc3NhZ2UoCisgICAgICAgICAgICAgICAgJ0ZBSUw6IFByb21pc2Ugc2hvdWxkIGJl
IHJlc29sdmVkIGJlZm9yZSB3b3JrZXIgaXMgYWN0aXZhdGVkJyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgfQorCisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZSgnUEFTUycpOwor
ICAgICAgICB9KQorICAgICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICBwb3J0LnBv
c3RNZXNzYWdlKCdGQUlMOiB1bmV4cGVjdGVkIGV4Y2VwdGlvbjogJyArIGUpOworICAgICAgICB9
KSk7CisgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NraXAt
d2FpdGluZy13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2tpcC13YWl0
aW5nLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmMxZDFlMjM3YWFjZmI4NmFhMWUzZTM2Mjg3ZGI5
ZjQ1ZWJmNzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3NraXAtd2FpdGluZy13b3JrZXIuanMKQEAgLTAsMCArMSwyMSBAQAoraW1wb3J0U2NyaXB0cygn
d29ya2VyLXRlc3RoYXJuZXNzLmpzJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAg
ICByZXR1cm4gc2tpcFdhaXRpbmcoKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHQsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdQcm9taXNlIHNob3VsZCBiZSByZXNvbHZlZCB3aXRoIHVuZGVmaW5lZCcpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHByb21p
c2VzID0gW107CisgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCA4OyArK2kpCisgICAgICAg
ICAgICBwcm9taXNlcy5wdXNoKHNlbGYuc2tpcFdhaXRpbmcoKSk7CisgICAgICAgICAgcmV0dXJu
IFByb21pc2UuYWxsKHByb21pc2VzKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KHJlc3VsdHMpIHsKKyAgICAgICAgICByZXN1bHRzLmZvckVhY2goZnVuY3Rpb24ocikgeworICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVmaW5lZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnUHJvbWlzZXMgc2hvdWxkIGJlIHJlc29sdmVkIHdpdGggdW5kZWZpbmVkJyk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgIH0sICdza2lwV2FpdGluZycpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NxdWFyZS5wbmcgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvc3F1YXJlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWM5NjY2YThkZTlk
NTUzNTYxNWFmZjgzMDgxMGU1ZGY0YjIxNTZmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxODI5
OQp6Y21lSTNjVGBoWng0PHZMMEQ9Pz9xOVJUeERrNzwqa1FoUDxSaG1FJHUmM09GMnFifC1EVUot
TjIkb01vUkdLaFkKej44UE02ZntLWFBMMiNefml+PUckOzJYZmZRR3hHPD9wM3FxeSpLWnpfMTtS
Pk5ePHd2WFlZTl9aPWJYOEllKis4CnolaUo5YClhSXhHMEhFUlFXYWtDX2JFSUVZVyQwSipAJkUo
K249RXFqN1h5SSRibT48Q05JTnRPME10REFibyNQbwp6MFlac1Q5M1RgU29hdUNnQ3spUGgyWX48
KHt4cmp6JE1FaSRZMSNMQCpWWkxJZGNUWCVPR2cjcVd4RmVTTSZiZmYKemdVUS1VO3wmZiEoZWI9
OCkhdHI3Pz96VTw7K3tSeHlMQ0x4cnRET0V0a1A8NVdZNTs0QGpHdlFkYT56ZjtLUGMoCnpTOWJA
X0tCQmMzXmtrSU9zWl4+P0lwfTJXTnI7fTNZZGRmMVooRlpkKlN1JiZTO3dkdWl2VnJhNXtga20t
JCgpWQp6NUpqYWZIbXA+KzFTb3t4UzYybHAtTz8qRGJLP2ZKLXFAekRRaSRIQlAkQH5ZYThacSgw
YSE9d3V7e0E7SjE5aEYKenElODBUdlhwPnp4N24tflU+T292eEE1bXpfa3JrKTUyPjNKZlIrMFZi
UUgxQDBtTzdMLVZPKkAwdTxDTy0pUnJ7CnpWU3BLMm11ZlFiN3p0cFVlWXNBK3NkR1NPdCtza0dw
Z0lNPmMqZSZyMCtjb1o+dXdrc2cjKzdDZmYpfG56U0tWIQp6N2lxVmZMWm5pUXNiJDd3YDxSdWck
UGc3QFUoYEk0VDQmd0dHbDxNZCVydDlNUllkQStUbnR8OHgxS3V5a2Q+JGQKemprYyNoeWpIV1F3
d0FjM1JDNnV6JjFMMDVMbCYhTHBzZy1uV0ROaT5CdkpKUFg2VFlSKE15ITBnOW5ieD9AfGdfCnpx
bkA+KVp4Xj4lJWxhJmspJCFEfk08aXVxZXxUQCVsUDdKaHQmZipoK3BjOFpeNCZiWnQ2RSM+K2FM
NS02IW1sOAp6YGA8M1RHPipab2omVzRfQExTY0xVZjFKdT4tSjZGIyVnKyU7UTBCUmBydjIlYC1h
dWR0VEkyLTg3LWRFTGlYNkQKej9lNClISHs0O25aXyV+KzRUR0dRJjFSbnpZMFUpUylPd28ycmJK
fVVZUFJCXkUoXjgmQiRZNHcwSEN7RWM7IzBVCnpSbUpGbHR1Tn1yMkgjb3JKNyYhWHFQZm9kTEk3
Wm1vaVUxV3RIa1FNRGdmQUojaDlNNShkKWYzJWRBcCk/dik+IQp6dUJkLXJOOER5PlR3UF9XWkw3
d0tvKlRNdVFOYjJsbGtJbTs+NkAtWXw3eHZ8dWs7TXFvK1EjbFJyI0ZQdj1uSzUKeldVNkxmRnt5
fXx0WW1YVGJ2bzFGWH1raCFyPVFVdFJvJkZzNCtkQTlsJjAtNk0lO3tfO2M0aVNOTn5iPj9QTVQp
CnpvYjxhYkxubzJyUnlrWnFUeWdgelpUWTt0IVYkWWFycjZXKypDfVZ8V2pVbGQrWj5MbC17Vk5J
WCRkcDQoKGk/eQp6blBhKHxjKTB5dWV0XzF+MVJESzFydDxZSDc0enlLNDY1ZDs/UCZ8TSR3fTxu
cnd0M0g8ayFxT3dZKSZGZTgrb3MKei1SVXI7WCkqU2RsWmlAVXdnfjF0OHooPGtLbGpIQElmJUsm
X15ENFBsT2ApfV5RPkJFbjNVc2tYMkZIMmVedCs3Cno7am5SalBHJnxBcnpLMkJZajI5RFNDZnBW
P1YjZnBtaEdNN2VFSnhwVk9vUGpnVFR3RSF6PyEpPz07Nks+RT1eVAp6VjZoNSR6WnFpampvOCtW
KX5sYE50JE04bi03RDJIU2tAdU9LNnQtMEB3JkJzPkZoU2BIaGh+aG4xWndNSWh5QTYKekVheHl8
RGp7S29aUTxja3VhbGx9SW4oaFEoI1V0VyZVQUo7VVU9bGR7VyRAOzBlJD9GdU8lMHpLMDdlYUpe
N3cqCnohfGV7bypVN0lIZCY4el5ZfWVVKEopVVBXSkFJYlFFWiojfVN0bkNtUHQzbCpZeFo+cGhK
PH5hKHc/ZjdEKWpMKQp6RWo5Zn5DLUlpcmZ1I28pOU1DZ0dHamo3ejxVUCsqX3YhSnUlfUJeeTxH
czFhIU49VVlDM29fIzJsSVhNR00yc2QKeio3TjQmRjNFfEA8SytrJFI+enxKYCokZSZVdjw2ZUt8
a2kxYiRWP31NR1pvb0otWn5fJXBnIUJmQlN8UUxpS3t2CnpjYzEqVShYPjNKVSV6fnBXblMpS0dU
blRzeG8/U0Emd2ozek49cih9aGVIemckP1ljRCR2c2chcFUtJT09O2IyNAp6Nkx7QSRFVndFIz9f
bHlsemtIe0Imd1IoWDdsfW9rKiU+RDsrTCF4KGlxVypXekk1VExnXnMrMCs4Ozk3eWBPa0wKeiVU
fip0PjFJaUpVeGRtRkpnI0BSKyVEfDBBaUZDaV5VfDg9T2psdnteTjVTPkFMbmpIX2NRdX5LVzR2
b29aX2NrCnpHUjBXQWFaMnFoPk5QQCRrZ0FXcS11UTxuZWYzcHFgZj1zflg3WTx8aURtV0ZxWW9W
WjwpRjJqVSRkJmt4Rnh0SQp6eGFRfnI8cGwte1QtQEhjYil8V15tN1EzMFZ1fFkjKlh3dWgrJnl5
bFZKYWNyNjhpfChwNUM3UkQ4MmRJeCl0Rm8KeiV0fmBnJng2anp0dChGV2NhPkhNVnBvdjtrTmYk
b1NZNl4hbXtCPFlWUj5QQl9TRWIkX2F5aUglIWo8SXJ+Vzl0CnpTKDx4cF9ObGhWJThmOyghS0lz
LUplRHIrK19qPnNUfWM7e0hlY0JNdVlPQXZqa3FWOGBUOHNMcXJfKUlYSGI/Pwp6b35QOXc+YXlC
PXRAbUlEbiYoJWlVSDkwJHJGOG8zTWItUWFAQVVoUUpZOE95Y3h6QW10e3BDMFpsaldFc0MyIVcK
elhFIWRrRXx0NndTXlhsaTtlQUdXTnFTWGhQVUZjZ1ZpJihGdUlaT01fK0opZmBrUmFJVUE7bTcm
OWtsRU84dTd1CnpuODQ8T0M9YT92NERXMmE1dEB4b15ldWRKPmZHX0x5Z3VlVFVEfV90JnxnfDtF
bVlFVCs7amk2Y1N4MXpaaylVQQp6YWFFWVBIbnk0bXYoWEBERm1rWFMkY348YHoqRjIyVi12Ry0o
eChyUktOKCEhVj99OE18MTVzZVh8cEA0JXRwczEKelZOMm5id2t3NE8wWEtmJVRXSFlObz5INHcl
aCF4dTdXTWshSnIoOUY9Qn0kelF4P1g/I3JrZnkrOVFoaG5eVFdYCnpDV09eRChaJFZuQU1GbT5K
eH1MaEo7KjFLTzlgZzVKayl5WFFfPTxlMSo7a3EqWjxBfnpZSVU7QWVYc2hseFkhQgp6NU9rXmVi
N3hRNyVaISltRXRfO3gmXkswI0FgYUo5Xn5QcTsldGNLenFhM3QkamQhPSR7fnRFbXJhM2NyJitu
Y2QKekhoKyY9TTNzSU8mayRXdHRkRDw4VXU4UGF6MXp2dUVwcCVRaTR9d2g8Nz8pfSZEelNnRXpJ
M3A7aX0+S0VTLWAkCnpHaUBVeDctdmJqaH4yc2BhY191aW9gRzlaRGVuI002P2Z6OTB4LTZDO0ZA
NjlJck97KERtTWQ1Xzc/byRrNW50UQp6SkBKfmMhc0w7dU4tKz1nPHpCd0s7fS1jfmUmKnU0b3Ao
eFpIU1ElSGRpVHA8PWRgTTZGWlB1bC18cGd6KWMxUkoKenYweSM5bT5McSVzTWV6TSF7WTdCbD8k
bG5jYjF3NEtrJiUhXmkze2B5MHs/SEVpaCl5bTBNZWBvSyo7WHRMfiVMCno3UTZYdikxJUpTOSk0
KjU9Q2pPPytjV2ZOSXktaDImMWxxMyo3XkNkTm1GPjZVWXpqTzw8ekdBWEw5cWElUSR1MQp6MjUh
Zno9Zzc+Sm5ne2NlVW5PZV9HQGQqP3F0VSRsT3l+UFE/SGtkX2NURjEweDBjZSZqJFdwb3VLPUBl
KjR8eFcKeiNXPT8zV3FmMjF5QmVPSVdqXntLc1BFRi1SUGlWTl9YbXdERUJnOXJIIW41JURFUFFO
OzY0QzlJZSNrWXZudHc9CnoqWVYtdHJ7TDl2PyFoNlEqQSpLU2AmRW9JT0NPY31gYXIrSWxIcnhg
YVBlRDUmRmVwMjhwd0RUaFNWVHhgMjZjbwp6JX1YUFpUfHtkfi17amBMY15aX2I4K1VJaWMlZ0Z0
JEJwX3RlZWA8VXdDKiZBYm5tb0pEX0pXcWMtKjFZS1lhNSUKel4wUTsoazZNVERSUjQmakomYz9E
cnlYMUZDLUopTGM0cipPKmNecld0NyU+MWs8dn09P0FxcV9URWNmMXY/VlZaCno+PDQkWEZSNTVr
eVE9JVZxYFNEV1pNeUd5LT9XcEl3WlUmQlo+UiVGX2RUd2NBMVk1UERxOXM7KSlqZzI+P1Vxcwp6
aGg4U0JfRjM9NmgoQmZ5Szc1YyN3dFJONkNzTnBWdD96eUYleDYpZDM7U3p0bXA9KHgqaX41SlFM
KG55eTNeKGYKenthTUB0dENhJnlrS1otQHl1TENsdEVheG51fT9YNll1IU5OYHZmaWU0KypJV3gz
X0MtZjE3RFJCYT5mUmg0eSFSCnomWmdJSz5LMF9gNGpkVntVOEZrYDlyZllDK2Vmd2FEZk5ld3lP
V2JIMm1mQHV8NHJyRiooViFvcyVxdzR4KjJZYwp6VURMYiNRfEZiaXJaRHw/TjFMQGdUN04/UFkl
Jjx8KlhqNChfcCgxRiV9ej1oUjhtYW9gT0cjKUhVaHdzY1lLRFEKeiNMdnhAIVdJVWptPmVNc00x
PT43cHA3VTFQXzRwNk9tLWtCTDlqcGBVdG5xWXVLY25nZzNxeHVeZC0xcSsoZExSCnpmYlNGOzNW
S0puR3VWLVZZJTw1dGlsIztsciQ3I1pLP3hIUDl2bWJQUV5HOWBoeH01WVlpVHB1NUhadzY1QD1+
Pwp6Qk1wZX5iNmJYPjNxd0ghMFl5TnZGKnEhT0xgR289MVFIMm5oUU1MNGNyKnIhIytvQ3NXQ3xX
biFDKCswQTQ4Zk4KemJWVXYyYTRCQVA0a09fcCQ8aT1EQWB3eTA9Ji1PYlJHMndSN3xLSXEkeihE
YmdHMXdSTlQ+JT05M2hZfSE7dTI5CnooWGYrSUtYI3kpOW0qRjtfKEIwZj5YKnE5WmplfFM4Y0c5
PWVNWkk9RUUpP1c1UmI1ZkQ1QXJlQX5ZNi1MNFY3TAp6IXlkQntaM3FuLXgtfHxQNEYtWTFwZzx5
cT82QlhvNk9DXkUkSVFQN0lpfihAVT8/WVVacj9UQHoyRCZBWi15MzIKej5eRExQTXYjNkhjR09i
TGghQkJqRkhrSnA1WHVKYUgkcD0oYHF0PHJlQ35MMXpWSVp+ZUR+aExhUT03OXE/JSF+Cnpwe1gj
T0F1MlJoM095OExOYCM+ZHApaU94Smo9JDxQdGZzNkk7IypTWmNIe2BBVSN3cXFOM3FPO341fEsy
aWg/dQp6QVdkcUUjTmQlUUc2UmRGVTxuaX41czR1fF5LeWNkO2hyIWJaYkE7OTghXkVMMzVtbHF1
eV9pTk9kJHteYGsyclkKej9nTHN1OUh4WiV4NGNhM0pIWmMhUDJtYmRnUDlUPEtiWGtfKElOcWxp
WEx5QSZ+dDJGUVJ1PVRWSkxLNEFrQ2JMCnp7I05yaHQpUD9ZdmYrYSZQMyt9cGkqVUI1NlJ+Nj41
czU9I0MlVCE/Wi1TcXBJWkpVQ2gkVHpgOCs1aiNLQEJLQQp6cEY/NWVATFl+TGZzRGpzSVJxcjB6
K3hlcFRwV21HVkwyOD03Sz0rSHU/YSlUYUM0aHp7KmBNeEEkeDsjLTlmSTAKek9CNkBRaFRNLTI0
PHdRP0VPUm1vTngpLUJOR3o1X0xOWkJFVG5oXiNpTk01VEteJlBpOGZiI0V1TDYwNUB9VWFLCno0
NFRrS0l1O0hUakFNWlpuSyYjQ2k4WigyQW5fZE9TbEFYPUJwMVViVm1MVCtxNkhmcTRlPD4oVXhq
a3dpPWxaUgp6Rj0wSkd0NzUxfGRWP1dmd3ZILS1fKFFjJCMwKFhLKHZAcyFJSiVVX2lzTS1BbGlD
YmIxUFlUYXQmJWpoYmZKTTkKekQqQjdvQCFKfSs5NUxnNm96QjA5VkElZnpeWTZ6OTNqaFZPbWcl
c29wPGRzMkF7S0hiVmEhbV9oNmx9JVpgRmA1CnolRXokRkZLeXR5c2M3alZDNVpuJmtPZVZ3PDl7
eSlZJSttTVU9cCFOM29eejZpNl5veGtZcWZJaHkrPD05Rn1hKAp6I288V28oSCNHMGIxKz15JXFl
JmhnQDc5XmJOQF5aek9MaGNDbFRZNW0+c3xyQElWZD9Kdno0MGhXfUghYCY7RjMKejd8ZWV5Y2Qk
cCl8Qkt1V3Vme0tuOyVLNCR4YDxNeEl9ezMzZlQzYyo5NGRVITFNSTd8QG1WdzYtJW5hZGdFa0VI
CnpDKmQmQTJhVDJmaitqblYhJWg4Vm5AJnsyT34pO0wxYmhoJUh4ZG9qSmkkdTNqVChOIWRxWD5a
a09tRDYtVVJReAp6ajJ7akxgUHVRSSRFUjVPNz1WVH5WZyVRRyk2KU9EbUo+ODFtY3htZnVyblgz
cFRuKXR6OF5ZcnB2VFN9VXpPSWUKeiRJbX1gRitRWSEoa3NsREpPflZrWSpDSSZIWG9RKWp0ZDR2
d2tYRlhuLTVHWSN7fmwtVGFARkglP0dCSDxBTVFeCnpFeXs3cDxeJDhwYWx3R2Q3VWo1UF5NUHNR
eExgbkppKmo3RGBNfFZ0VHJlUUFNTDkwbmR8K0JSRSpLRW1xOHlpTwp6Sn18OHU3WXZBT1FJMVBD
QURDOC0za0YyQ0Q5MHQ2NEBAaF4xcF57bWw7ZWBrMmQwKGRmJnF+JiU1bGwmMUpsWkoKeiFHT3BY
PCt4PD9mb2JLcVVfZk14YSRLX2N6X2ZCKUZkKHU7SVdGMEpVfEttWTchY1dfOUc3ZjlGcyZSSDQy
V3p8CnpqIVFObG17eUpwMjFLP2YkMGVIJk9lQEMpMTBxfEw8QzR0PnJqX0dAMGcpfXIjSEJYPTdC
NDcoVWZtNlktcUJxPgp6ZU0xQkVlbExSVTxtQ25ja0BFb3tkTWcwQEgzPEU4MEtmKGUwSzhjVDBG
KUV9Jj11fW1kKDhwcm85fUZBIXc3JSsKemQlYzFOZktnUkMmMEZ6QFAkOV9kKnVvYnBJJFYzKj5M
d3YzT3xyOSZSI253alAlISpveXx6e3dpQ2d4MzUmI1NpCmJEZ3MoKENvT0omQCQ0fmwra21zWnlJ
cW0oeC1JXyhLdlVvJgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3N1Y2Nlc3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvc3VjY2Vzcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iY2JiNDg3ZDJiMjlkNGVmMDg5YTZjN2RjMThl
MWNjMTY2YTI2MmZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL3N1Y2Nlc3MucHkKQEAgLTAsMCArMSw4IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25z
ZSk6CisgICAgaGVhZGVycyA9IFtdCisKKyAgICBpZiAiQUNBT3JpZ2luIiBpbiByZXF1ZXN0LkdF
VDoKKyAgICAgICAgZm9yIGl0ZW0gaW4gcmVxdWVzdC5HRVRbIkFDQU9yaWdpbiJdLnNwbGl0KCIs
Iik6CisgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbiIsIGl0ZW0pKQorCisgICAgcmV0dXJuIGhlYWRlcnMsICJ7IFwicmVzdWx0XCI6IFwic3Vj
Y2Vzc1wiIH0iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1o
ZWxwZXJzLnN1Yi5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMu
c3ViLmpzCmluZGV4IGIwZmZiZDQwNjI1YzkzYTg4Mjc0MDc3MWJiOTY3MTQ5YzEzMDIzZTAuLjFk
NzY0M2E3MWU5MTQyZGY2MDUyYjkwMWRmOWViZjk0YWE5NzMyN2YgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzCkBAIC01Miw2ICs1Miw3IEBA
IGZ1bmN0aW9uIHVucmVhY2hlZF9yZWplY3Rpb24odGVzdCwgcHJlZml4KSB7CiBmdW5jdGlvbiB3
aXRoX2lmcmFtZSh1cmwpIHsKICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUp
IHsKICAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOwor
ICAgICAgZnJhbWUuY2xhc3NOYW1lID0gJ3Rlc3QtaWZyYW1lJzsKICAgICAgIGZyYW1lLnNyYyA9
IHVybDsKICAgICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyByZXNvbHZlKGZyYW1lKTsg
fTsKICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZDdhZjFmZjljYTc3Yzg1Njk2ZjM1MzY4ZmYzYTdhMWM0YjI0ODBiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLWhlbHBlcnMuanMK
QEAgLTAsMCArMSwxNjMgQEAKKy8qCisgKiB0ZXN0aGFybmVzcy1oZWxwZXJzIGNvbnRhaW5zIHZh
cmlvdXMgdXNlZnVsIGV4dGVuc2lvbnMgdG8gdGVzdGhhcm5lc3MuanMgdG8KKyAqIGFsbG93IHRo
ZW0gdG8gYmUgdXNlZCBhY3Jvc3MgbXVsdGlwbGUgdGVzdHMgYmVmb3JlIHRoZXkgaGF2ZSBiZWVu
CisgKiB1cHN0cmVhbWVkLiBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gYmUgdXNhYmxlIGZyb20g
Ym90aCBkb2N1bWVudCBhbmQgd29ya2VyCisgKiBlbnZpcm9ubWVudHMsIHNvIGNvZGUgc2hvdWxk
IGZvciBleGFtcGxlIG5vdCByZWx5IG9uIHRoZSBET00uCisgKi8KKworLy8gUmV0dXJucyBhIHBy
b21pc2UgdGhhdCBmdWxmaWxscyBhZnRlciB0aGUgcHJvdmlkZWQgfHByb21pc2V8IGlzIGZ1bGZp
bGxlZC4KKy8vIFRoZSB8dGVzdHwgc3VjY2VlZHMgb25seSBpZiB8cHJvbWlzZXwgcmVqZWN0cyB3
aXRoIGFuIGV4Y2VwdGlvbiBtYXRjaGluZworLy8gfGNvZGV8LiBBY2NlcHRlZCB2YWx1ZXMgZm9y
IHxjb2RlfCBmb2xsb3cgdGhvc2UgYWNjZXB0ZWQgZm9yIGFzc2VydF90aHJvd3MoKS4KKy8vIFRo
ZSBvcHRpb25hbCB8ZGVzY3JpcHRpb258IGRlc2NyaWJlcyB0aGUgdGVzdCBiZWluZyBwZXJmb3Jt
ZWQuCisvLworLy8gRS5nLjoKKy8vICAgYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKKy8vICAgICAg
IG5ldyBQcm9taXNlKC4uLiksIC8vIHNvbWV0aGluZyB0aGF0IHNob3VsZCB0aHJvdyBhbiBleGNl
cHRpb24uCisvLyAgICAgICAnTm90Rm91bmRFcnJvcicsCisvLyAgICAgICAnU2hvdWxkIHRocm93
IE5vdEZvdW5kRXJyb3IuJyk7CisvLworLy8gICBhc3NlcnRfcHJvbWlzZV9yZWplY3RzKAorLy8g
ICAgICAgbmV3IFByb21pc2UoLi4uKSwKKy8vICAgICAgIG5ldyBUeXBlRXJyb3IoKSwKKy8vICAg
ICAgICdTaG91bGQgdGhyb3cgVHlwZUVycm9yJyk7CitmdW5jdGlvbiBhc3NlcnRfcHJvbWlzZV9y
ZWplY3RzKHByb21pc2UsIGNvZGUsIGRlc2NyaXB0aW9uKSB7CisgIHJldHVybiBwcm9taXNlLnRo
ZW4oCisgICAgZnVuY3Rpb24oKSB7CisgICAgICB0aHJvdyAnYXNzZXJ0X3Byb21pc2VfcmVqZWN0
czogJyArIGRlc2NyaXB0aW9uICsgJyBQcm9taXNlIGRpZCBub3QgcmVqZWN0Lic7CisgICAgfSwK
KyAgICBmdW5jdGlvbihlKSB7CisgICAgICBpZiAoY29kZSAhPT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgIGFzc2VydF90aHJvd3MoY29kZSwgZnVuY3Rpb24oKSB7IHRocm93IGU7IH0sIGRlc2NyaXB0
aW9uKTsKKyAgICAgIH0KKyAgICB9KTsKK30KKworLy8gQXNzZXJ0cyB0aGF0IHR3byBvYmplY3Rz
IHxhY3R1YWx8IGFuZCB8ZXhwZWN0ZWR8IGFyZSB3ZWFrbHkgZXF1YWwgdW5kZXIgdGhlCisvLyBm
b2xsb3dpbmcgZGVmaW5pdGlvbjoKKy8vCisvLyB8YXwgYW5kIHxifCBhcmUgd2Vha2x5IGVxdWFs
IGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgorLy8gICAxLiBJZiB8YXwgaXMgbm90
IGFuICdvYmplY3QnLCBhbmQgfGF8ID09PSB8YnwuCisvLyAgIDIuIElmIHxhfCBpcyBhbiAnb2Jq
ZWN0JywgYW5kIGFsbCBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgorLy8gICAgIDIuMSB8YS5w
fCBpcyB3ZWFrbHkgZXF1YWwgdG8gfGIucHwgZm9yIGFsbCBvd24gcHJvcGVydGllcyB8cHwgb2Yg
fGF8LgorLy8gICAgIDIuMiBFdmVyeSBvd24gcHJvcGVydHkgb2YgfGJ8IGlzIGFuIG93biBwcm9w
ZXJ0eSBvZiB8YXwuCisvLworLy8gVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgdGhlIHZl
cnNpb24gb2YgYXNzZXJ0X29iamVjdF9lcXVhbHMoKSBpbgorLy8gdGVzdGhhcm5lc3MuanMuIFRo
ZSBsYXR0ZXIgZG9lc24ndCBoYW5kbGUgb3duIHByb3BlcnRpZXMgY29ycmVjdGx5LiBJLmUuIGlm
CisvLyB8YS5wfCBpcyBub3QgYW4gb3duIHByb3BlcnR5LCBpdCBzdGlsbCByZXF1aXJlcyB0aGF0
IHxiLnB8IGJlIGFuIG93bgorLy8gcHJvcGVydHkuCisvLworLy8gTm90ZSB0aGF0IHxhY3R1YWx8
IG11c3Qgbm90IGNvbnRhaW4gY3ljbGljIHJlZmVyZW5jZXMuCitzZWxmLmFzc2VydF9vYmplY3Rf
ZXF1YWxzID0gZnVuY3Rpb24oYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRpb24pIHsKKyAgdmFy
IG9iamVjdF9zdGFjayA9IFtdOworCisgIGZ1bmN0aW9uIF9pc19lcXVhbChhY3R1YWwsIGV4cGVj
dGVkLCBwcmVmaXgpIHsKKyAgICBpZiAodHlwZW9mIGFjdHVhbCAhPT0gJ29iamVjdCcpIHsKKyAg
ICAgIGFzc2VydF9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgcHJlZml4KTsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgYXNzZXJ0X3RydWUodHlwZW9mIGV4cGVjdGVkID09PSAnb2JqZWN0Jywg
cHJlZml4KTsKKyAgICBhc3NlcnRfZXF1YWxzKG9iamVjdF9zdGFjay5pbmRleE9mKGFjdHVhbCks
IC0xLAorICAgICAgICAgICAgICAgICAgcHJlZml4ICsgJyBtdXN0IG5vdCBjb250YWluIGN5Y2xp
YyByZWZlcmVuY2VzLicpOworCisgICAgb2JqZWN0X3N0YWNrLnB1c2goYWN0dWFsKTsKKworICAg
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4cGVjdGVkKS5mb3JFYWNoKGZ1bmN0aW9uKHBy
b3BlcnR5KSB7CisgICAgICAgIGFzc2VydF9vd25fcHJvcGVydHkoYWN0dWFsLCBwcm9wZXJ0eSwg
cHJlZml4KTsKKyAgICAgICAgX2lzX2VxdWFsKGFjdHVhbFtwcm9wZXJ0eV0sIGV4cGVjdGVkW3By
b3BlcnR5XSwKKyAgICAgICAgICAgICAgICAgIHByZWZpeCArICcuJyArIHByb3BlcnR5KTsKKyAg
ICAgIH0pOworICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFjdHVhbCkuZm9yRWFjaChm
dW5jdGlvbihwcm9wZXJ0eSkgeworICAgICAgICBhc3NlcnRfb3duX3Byb3BlcnR5KGV4cGVjdGVk
LCBwcm9wZXJ0eSwgcHJlZml4KTsKKyAgICAgIH0pOworCisgICAgb2JqZWN0X3N0YWNrLnBvcCgp
OworICB9CisKKyAgZnVuY3Rpb24gX2JyYW5kKG9iamVjdCkgeworICAgIHJldHVybiBPYmplY3Qu
cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KS5tYXRjaCgvXlxbb2JqZWN0ICguKilcXSQv
KVsxXTsKKyAgfQorCisgIF9pc19lcXVhbChhY3R1YWwsIGV4cGVjdGVkLAorICAgICAgICAgICAg
KGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb24gKyAnOiAnIDogJycpICsgX2JyYW5kKGV4cGVjdGVk
KSk7Cit9OworCisvLyBFcXVpdmFsZW50IHRvIGFzc2VydF9pbl9hcnJheSwgYnV0IHVzZXMgYSB3
ZWFrZXIgZXF1aXZhbGVuY2UgcmVsYXRpb24KKy8vIChhc3NlcnRfb2JqZWN0X2VxdWFscykgdGhh
biAnPT09Jy4KK2Z1bmN0aW9uIGFzc2VydF9vYmplY3RfaW5fYXJyYXkoYWN0dWFsLCBleHBlY3Rl
ZF9hcnJheSwgZGVzY3JpcHRpb24pIHsKKyAgYXNzZXJ0X3RydWUoZXhwZWN0ZWRfYXJyYXkuc29t
ZShmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICB0cnkgeworICAgICAgICBhc3NlcnRfb2JqZWN0
X2VxdWFscyhhY3R1YWwsIGVsZW1lbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0pLCBkZXNj
cmlwdGlvbik7Cit9CisKKy8vIEFzc2VydCB0aGF0IHRoZSB0d28gYXJyYXlzIHxhY3R1YWx8IGFu
ZCB8ZXhwZWN0ZWR8IGNvbnRhaW4gdGhlIHNhbWUgc2V0IG9mCisvLyBlbGVtZW50cyBhcyBkZXRl
cm1pbmVkIGJ5IGFzc2VydF9vYmplY3RfZXF1YWxzLiBUaGUgb3JkZXIgaXMgbm90IHNpZ25pZmlj
YW50LgorLy8KKy8vIHxleHBlY3RlZHwgaXMgYXNzdW1lZCB0byBub3QgY29udGFpbiBhbnkgZHVw
bGljYXRlcyBhcyBkZXRlcm1pbmVkIGJ5CisvLyBhc3NlcnRfb2JqZWN0X2VxdWFscygpLgorZnVu
Y3Rpb24gYXNzZXJ0X2FycmF5X2VxdWl2YWxlbnQoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3JpcHRp
b24pIHsKKyAgYXNzZXJ0X3RydWUoQXJyYXkuaXNBcnJheShhY3R1YWwpLCBkZXNjcmlwdGlvbik7
CisgIGFzc2VydF9lcXVhbHMoYWN0dWFsLmxlbmd0aCwgZXhwZWN0ZWQubGVuZ3RoLCBkZXNjcmlw
dGlvbik7CisgIGV4cGVjdGVkLmZvckVhY2goZnVuY3Rpb24oZXhwZWN0ZWRfZWxlbWVudCkgewor
ICAgICAgLy8gYXNzZXJ0X2luX2FycmF5IHRyZWF0cyB0aGUgZmlyc3QgYXJndW1lbnQgYXMgYmVp
bmcgJ2FjdHVhbCcsIGFuZCB0aGUKKyAgICAgIC8vIHNlY29uZCBhcyBiZWluZyAnZXhwZWN0ZWQg
YXJyYXknLiBXZSBhcmUgc3dpdGNoaW5nIHRoZW0gYXJvdW5kIGJlY2F1c2UKKyAgICAgIC8vIHdl
IHdhbnQgdG8gYmUgcmVzaWxpZW50IGFnYWluc3QgdGhlIHxhY3R1YWx8IGFycmF5IGNvbnRhaW5p
bmcKKyAgICAgIC8vIGR1cGxpY2F0ZXMuCisgICAgICBhc3NlcnRfb2JqZWN0X2luX2FycmF5KGV4
cGVjdGVkX2VsZW1lbnQsIGFjdHVhbCwgZGVzY3JpcHRpb24pOworICAgIH0pOworfQorCisvLyBB
c3NlcnRzIHRoYXQgdHdvIGFycmF5cyB8YWN0dWFsfCBhbmQgfGV4cGVjdGVkfCBjb250YWluIHRo
ZSBzYW1lIHNldCBvZgorLy8gZWxlbWVudHMgYXMgZGV0ZXJtaW5lZCBieSBhc3NlcnRfb2JqZWN0
X2VxdWFscygpLiBUaGUgY29ycmVzcG9uZGluZyBlbGVtZW50cworLy8gbXVzdCBvY2N1cHkgY29y
cmVzcG9uZGluZyBpbmRpY2VzIGluIHRoZWlyIHJlc3BlY3RpdmUgYXJyYXlzLgorZnVuY3Rpb24g
YXNzZXJ0X2FycmF5X29iamVjdHNfZXF1YWxzKGFjdHVhbCwgZXhwZWN0ZWQsIGRlc2NyaXB0aW9u
KSB7CisgIGFzc2VydF90cnVlKEFycmF5LmlzQXJyYXkoYWN0dWFsKSwgZGVzY3JpcHRpb24pOwor
ICBhc3NlcnRfZXF1YWxzKGFjdHVhbC5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCwgZGVzY3JpcHRp
b24pOworICBhY3R1YWwuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKKyAgICAgIGFz
c2VydF9vYmplY3RfZXF1YWxzKHZhbHVlLCBleHBlY3RlZFtpbmRleF0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXNjcmlwdGlvbiArICcgOiBvYmplY3RbJyArIGluZGV4ICsgJ10nKTsK
KyAgICB9KTsKK30KKworLy8gQXNzZXJ0cyB0aGF0IHxvYmplY3R8IHRoYXQgaXMgYW4gaW5zdGFu
Y2Ugb2Ygc29tZSBpbnRlcmZhY2UgaGFzIHRoZSBhdHRyaWJ1dGUKKy8vIHxhdHRyaWJ1dGVfbmFt
ZXwgZm9sbG93aW5nIHRoZSBjb25kaXRpb25zIHNwZWNpZmllZCBieSBXZWJJREwsIGJ1dCBpdCdz
CisvLyBhY2NlcHRhYmxlIHRoYXQgdGhlIGF0dHJpYnV0ZSB8YXR0cmlidXRlX25hbWV8IGlzIGFu
IG93biBwcm9wZXJ0eSBvZiB0aGUKKy8vIG9iamVjdCBiZWNhdXNlIHdlJ3JlIGluIHRoZSBtaWRk
bGUgb2YgbW92aW5nIHRoZSBhdHRyaWJ1dGUgdG8gYSBwcm90b3R5cGUKKy8vIGNoYWluLiAgT25j
ZSB3ZSBjb21wbGV0ZSB0aGUgdHJhbnNpdGlvbiB0byBwcm90b3R5cGUgY2hhaW5zLAorLy8gYXNz
ZXJ0X3dpbGxfYmVfaWRsX2F0dHJpYnV0ZSBtdXN0IGJlIHJlcGxhY2VkIHdpdGggYXNzZXJ0X2lk
bF9hdHRyaWJ1dGUKKy8vIGRlZmluZWQgaW4gdGVzdGhhcm5lc3MuanMuCisvLworLy8gRklYTUU6
IFJlbW92ZSBhc3NlcnRfd2lsbF9iZV9pZGxfYXR0cmlidXRlIG9uY2Ugd2UgY29tcGxldGUgdGhl
IHRyYW5zaXRpb24KKy8vIG9mIG1vdmluZyB0aGUgRE9NIGF0dHJpYnV0ZXMgdG8gcHJvdG90eXBl
IGNoYWlucy4gIChodHRwOi8vY3JidWcuY29tLzQzMzk0KQorZnVuY3Rpb24gYXNzZXJ0X3dpbGxf
YmVfaWRsX2F0dHJpYnV0ZShvYmplY3QsIGF0dHJpYnV0ZV9uYW1lLCBkZXNjcmlwdGlvbikgewor
ICBhc3NlcnRfdHJ1ZSh0eXBlb2Ygb2JqZWN0ID09PSAib2JqZWN0IiwgZGVzY3JpcHRpb24pOwor
CisgIGFzc2VydF90cnVlKCJoYXNPd25Qcm9wZXJ0eSIgaW4gb2JqZWN0LCBkZXNjcmlwdGlvbik7
CisKKyAgLy8gRG8gbm90IHRlc3QgaWYgfGF0dHJpYnV0ZV9uYW1lfCBpcyBub3QgYW4gb3duIHBy
b3BlcnR5IGJlY2F1c2UKKyAgLy8gfGF0dHJpYnV0ZV9uYW1lfCBpcyBpbiB0aGUgbWlkZGxlIG9m
IHRoZSB0cmFuc2l0aW9uIHRvIGEgcHJvdG90eXBlCisgIC8vIGNoYWluLiAgKGh0dHA6Ly9jcmJ1
Zy5jb20vNDMzOTQpCisKKyAgYXNzZXJ0X3RydWUoYXR0cmlidXRlX25hbWUgaW4gb2JqZWN0LCBk
ZXNjcmlwdGlvbik7Cit9CisKKy8vIFN0cmluZ2lmaWVzIGEgRE9NIG9iamVjdC4gIFRoaXMgZnVu
Y3Rpb24gc3RyaW5naWZpZXMgbm90IG9ubHkgb3duIHByb3BlcnRpZXMKKy8vIGJ1dCBhbHNvIERP
TSBhdHRyaWJ1dGVzIHdoaWNoIGFyZSBvbiBhIHByb3RvdHlwZSBjaGFpbi4gIE5vdGUgdGhhdAor
Ly8gSlNPTi5zdHJpbmdpZnkgb25seSBzdHJpbmdpZmllcyBvd24gcHJvcGVydGllcy4KK2Z1bmN0
aW9uIHN0cmluZ2lmeURPTU9iamVjdChvYmplY3QpCit7CisgICAgZnVuY3Rpb24gZGVlcENvcHko
c3JjKSB7CisgICAgICAgIGlmICh0eXBlb2Ygc3JjICE9ICJvYmplY3QiKQorICAgICAgICAgICAg
cmV0dXJuIHNyYzsKKyAgICAgICAgdmFyIGRzdCA9IEFycmF5LmlzQXJyYXkoc3JjKSA/IFtdIDog
e307CisgICAgICAgIGZvciAodmFyIHByb3BlcnR5IGluIHNyYykgeworICAgICAgICAgICAgZHN0
W3Byb3BlcnR5XSA9IGRlZXBDb3B5KHNyY1twcm9wZXJ0eV0pOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBkc3Q7CisgICAgfQorICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkZWVwQ29weShv
YmplY3QpKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91bnJl
Z2lzdGVyLWNvbnRyb2xsZXItcGFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VucmVnaXN0ZXItY29udHJvbGxlci1wYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThhOTVlZTg5MmIx
YzllZTdjYTU5N2NiMjY1NWU2YzQ1MDRhNzkxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy91bnJlZ2lzdGVyLWNvbnRyb2xsZXItcGFnZS5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGZldGNoX3Vy
bCh1cmwpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT0gMjAwKQorICAgICAgICAgICAgICAgIHJlc29s
dmUocmVxdWVzdC5yZXNwb25zZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
cmVqZWN0KEVycm9yKHJlcXVlc3Quc3RhdHVzVGV4dCkpOworICAgICAgICB9KTsKKyAgICAgICAg
cmVxdWVzdC5vcGVuKCdHRVQnLCB1cmwpOworICAgICAgICByZXF1ZXN0LnNlbmQoKTsKKyAgICB9
KTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3VwZGF0ZS1jbGFpbS13b3JrZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBk
YXRlLWNsYWltLXdvcmtlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTEyNDZjOTZhYmZjODg3NTJhMmI5Njk1
ZjQ1NGRjMWI4ZmRiNzY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL3VwZGF0ZS1jbGFpbS13b3JrZXIucHkKQEAgLTAsMCArMSwyNCBAQAoraW1wb3J0IHRp
bWUKKworc2NyaXB0ID0gJycnCisvLyBUaW1lIHN0YW1wOiAlcworLy8gKFRoaXMgZW5zdXJlcyB0
aGUgc291cmNlIHRleHQgaXMgKm5vdCogYSBieXRlLWZvci1ieXRlIG1hdGNoIHdpdGggYW55Cisv
LyBwcmV2aW91c2x5LWZldGNoZWQgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdC4pCisKKy8vIFRoaXMg
bm8tb3AgZmV0Y2ggaGFuZGxlciBpcyBuZWNlc3NhcnkgdG8gYnlwYXNzIGV4cGxpY2l0bHkgdGhl
IG5vIGZldGNoCisvLyBoYW5kbGVyIG9wdGltaXphdGlvbiBieSB3aGljaCB0aGlzIHNlcnZpY2Ug
d29ya2VyIHNjcmlwdCBjYW4gYmUgc2tpcHBlZC4KK2FkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywg
ZXZlbnQgPT4geworICAgIHJldHVybjsKKyAgfSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoJ2luc3Rh
bGwnLCBldmVudCA9PiB7CisgICAgZXZlbnQud2FpdFVudGlsKHNlbGYuc2tpcFdhaXRpbmcoKSk7
CisgIH0pOworCithZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIGV2ZW50ID0+IHsKKyAgICBl
dmVudC53YWl0VW50aWwoc2VsZi5jbGllbnRzLmNsYWltKCkpOworICB9KTsnJycKKworCitkZWYg
bWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgIHJldHVybiBbKCdDb250ZW50LVR5cGUnLCAnYXBw
bGljYXRpb24vamF2YXNjcmlwdCcpXSwgc2NyaXB0ICUgdGltZS50aW1lKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbm9jb29raWUtd29ya2VyLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1ub2Nvb2tpZS13b3JrZXIucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMGYwOWI3ZTMyYzAzYzM3MjRjYmI1NWU4OGYxOWMwYjliNGQ3OGRiNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbm9jb29raWUt
d29ya2VyLnB5CkBAIC0wLDAgKzEsMTUgQEAKK2ltcG9ydCB0aW1lCisKK2RlZiBtYWluKHJlcXVl
c3QsIHJlc3BvbnNlKToKKyAgICAjIG5vLWNhY2hlIGl0c2VsZiB0byBlbnN1cmUgdGhlIHVzZXIg
YWdlbnQgZmluZHMgYSBuZXcgdmVyc2lvbiBmb3IgZWFjaCB1cGRhdGUuCisgICAgaGVhZGVycyA9
IFsoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAg
ICAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUnKV0KKworICAgICMgU2V0IGEgbm9ybWFsIG1p
bWV0eXBlLgorICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JworCisg
ICAgaGVhZGVycy5hcHBlbmQoKCdDb250ZW50LVR5cGUnLCBjb250ZW50X3R5cGUpKQorICAgICMg
UmV0dXJuIGEgZGlmZmVyZW50IHNjcmlwdCBmb3IgZWFjaCBhY2Nlc3MuICBVc2UgLnRpbWUoKSBh
bmQgLmNsb2NrKCkgZm9yCisgICAgIyBiZXN0IHRpbWUgcmVzb2x1dGlvbiBhY3Jvc3MgZGlmZmVy
ZW50IHBsYXRmb3Jtcy4KKyAgICByZXR1cm4gaGVhZGVycywgJy8vICVzICVzJyAlICh0aW1lLnRp
bWUoKSwgdGltZS5jbG9jaygpKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvdXBkYXRlLXJlY292ZXJ5LXdvcmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy91cGRhdGUtcmVjb3Zlcnktd29ya2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhYWE1Y2E5MzQ0NTc3
MTRlZTBlNTI5YWQ0YjJiMTc0MGQ5NzU4ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXJlY292ZXJ5LXdvcmtlci5weQpAQCAtMCwwICsxLDI1
IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgIyBTZXQgbW9kZSB0byAnaW5p
dCcgZm9yIGluaXRpYWwgZmV0Y2guCisgICAgbW9kZSA9ICdpbml0JworICAgIGlmICd1cGRhdGUt
cmVjb3ZlcnktbW9kZScgaW4gcmVxdWVzdC5jb29raWVzOgorICAgICAgICBtb2RlID0gcmVxdWVz
dC5jb29raWVzWyd1cGRhdGUtcmVjb3ZlcnktbW9kZSddLnZhbHVlCisKKyAgICAjIG5vLWNhY2hl
IGl0c2VsZiB0byBlbnN1cmUgdGhlIHVzZXIgYWdlbnQgZmluZHMgYSBuZXcgdmVyc2lvbiBmb3Ig
ZWFjaCB1cGRhdGUuCisgICAgaGVhZGVycyA9IFsoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUs
IG11c3QtcmV2YWxpZGF0ZScpLAorICAgICAgICAgICAgICAgKCdQcmFnbWEnLCAnbm8tY2FjaGUn
KV0KKworICAgIGV4dHJhX2JvZHkgPSAnJworCisgICAgaWYgbW9kZSA9PSAnaW5pdCc6CisgICAg
ICAgICMgSW5zdGFsbCBhIGJhZCBzZXJ2aWNlIHdvcmtlciB0aGF0IHdpbGwgYnJlYWsgdGhlIGNv
bnRyb2xsZWQKKyAgICAgICAgIyBkb2N1bWVudCBuYXZpZ2F0aW9uLgorICAgICAgICByZXNwb25z
ZS5zZXRfY29va2llKCd1cGRhdGUtcmVjb3ZlcnktbW9kZScsICdiYWQnKQorICAgICAgICBleHRy
YV9ib2R5ID0gImFkZEV2ZW50TGlzdGVuZXIoJ2ZldGNoJywgZnVuY3Rpb24oZSkgeyBlLnJlc3Bv
bmRXaXRoKFByb21pc2UucmVqZWN0KCkpOyB9KTsiCisgICAgZWxpZiBtb2RlID09ICdiYWQnOgor
ICAgICAgICAjIFdoZW4gdGhlIHVwZGF0ZSB0cmllcyB0byBwdWxsIHRoZSBzY3JpcHQgYWdhaW4s
IHVwZGF0ZSB0bworICAgICAgICAjIGEgd29ya2VyIHNlcnZpY2Ugd29ya2VyIHRoYXQgZG9lcyBu
b3QgYnJlYWsgZG9jdW1lbnQKKyAgICAgICAgIyBuYXZpZ2F0aW9uLiAgU2VydmUgdGhlIHNhbWUg
c2NyaXB0IGZyb20gdGhlbiBvbi4KKyAgICAgICAgcmVzcG9uc2UuZGVsZXRlX2Nvb2tpZSgndXBk
YXRlLXJlY292ZXJ5LW1vZGUnKQorCisgICAgaGVhZGVycy5hcHBlbmQoKCdDb250ZW50LVR5cGUn
LCAnYXBwbGljYXRpb24vamF2YXNjcmlwdCcpKQorICAgIHJldHVybiBoZWFkZXJzLCAnJXMnICUg
KGV4dHJhX2JvZHkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBk
YXRlLXdvcmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtd29ya2Vy
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJjOWIzMmFkM2U2ODg3MGQ5ZjU0MDUyNGU3MGNkNzk0NzM0NmU1YzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdv
cmtlci5weQpAQCAtMCwwICsxLDQ2IEBACitpbXBvcnQgdGltZQorCitkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CisgICAgIyBTZXQgbW9kZSB0byAnaW5pdCcgZm9yIGluaXRpYWwgZmV0Y2gu
CisgICAgbW9kZSA9ICdpbml0JworICAgIGlmICdtb2RlJyBpbiByZXF1ZXN0LmNvb2tpZXM6Cisg
ICAgICAgIG1vZGUgPSByZXF1ZXN0LmNvb2tpZXNbJ21vZGUnXS52YWx1ZQorCisgICAgIyBuby1j
YWNoZSBpdHNlbGYgdG8gZW5zdXJlIHRoZSB1c2VyIGFnZW50IGZpbmRzIGEgbmV3IHZlcnNpb24g
Zm9yIGVhY2ggdXBkYXRlLgorICAgIGhlYWRlcnMgPSBbKCdDYWNoZS1Db250cm9sJywgJ25vLWNh
Y2hlLCBtdXN0LXJldmFsaWRhdGUnKSwKKyAgICAgICAgICAgICAgICgnUHJhZ21hJywgJ25vLWNh
Y2hlJyldCisKKyAgICBjb250ZW50X3R5cGUgPSAnJworICAgIGV4dHJhX2JvZHkgPSAnJworCisg
ICAgaWYgbW9kZSA9PSAnaW5pdCc6CisgICAgICAgICMgU2V0IGEgbm9ybWFsIG1pbWV0eXBlLgor
ICAgICAgICAjIFNldCBjb29raWUgdmFsdWUgdG8gJ25vcm1hbCcgc28gdGhlIG5leHQgZmV0Y2gg
d2lsbCB3b3JrIGluICdub3JtYWwnIG1vZGUuCisgICAgICAgIGNvbnRlbnRfdHlwZSA9ICdhcHBs
aWNhdGlvbi9qYXZhc2NyaXB0JworICAgICAgICByZXNwb25zZS5zZXRfY29va2llKCdtb2RlJywg
J25vcm1hbCcpCisgICAgZWxpZiBtb2RlID09ICdub3JtYWwnOgorICAgICAgICAjIFNldCBhIG5v
cm1hbCBtaW1ldHlwZS4KKyAgICAgICAgIyBTZXQgY29va2llIHZhbHVlIHRvICdlcnJvcicgc28g
dGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICdlcnJvcicgbW9kZS4KKyAgICAgICAgY29udGVu
dF90eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnCisgICAgICAgIHJlc3BvbnNlLnNldF9j
b29raWUoJ21vZGUnLCAnZXJyb3InKTsKKyAgICBlbGlmIG1vZGUgPT0gJ2Vycm9yJzoKKyAgICAg
ICAgIyBTZXQgYSBkaXNhbGxvd2VkIG1pbWV0eXBlLgorICAgICAgICAjIFNldCBjb29raWUgdmFs
dWUgdG8gJ3N5bnRheC1lcnJvcicgc28gdGhlIG5leHQgZmV0Y2ggd2lsbCB3b3JrIGluICdzeW50
YXgtZXJyb3InIG1vZGUuCisgICAgICAgIGNvbnRlbnRfdHlwZSA9ICd0ZXh0L2h0bWwnCisgICAg
ICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAnc3ludGF4LWVycm9yJyk7CisgICAgZWxp
ZiBtb2RlID09ICdzeW50YXgtZXJyb3InOgorICAgICAgICAjIFNldCBjb29raWUgdmFsdWUgdG8g
J3Rocm93LWluc3RhbGwnIHNvIHRoZSBuZXh0IGZldGNoIHdpbGwgd29yayBpbiAndGhyb3ctaW5z
dGFsbCcgbW9kZS4KKyAgICAgICAgY29udGVudF90eXBlID0gJ2FwcGxpY2F0aW9uL2phdmFzY3Jp
cHQnCisgICAgICAgIHJlc3BvbnNlLnNldF9jb29raWUoJ21vZGUnLCAndGhyb3ctaW5zdGFsbCcp
OworICAgICAgICBleHRyYV9ib2R5ID0gJ2JhZHN5bnRheChpc2JhZDsnCisgICAgZWxpZiBtb2Rl
ID09ICd0aHJvdy1pbnN0YWxsJzoKKyAgICAgICAgIyBVbnNldCBhbmQgZGVsZXRlIGNvb2tpZSB0
byBjbGVhbiB1cCB0aGUgdGVzdCBzZXR0aW5nLgorICAgICAgICBjb250ZW50X3R5cGUgPSAnYXBw
bGljYXRpb24vamF2YXNjcmlwdCcKKyAgICAgICAgcmVzcG9uc2UuZGVsZXRlX2Nvb2tpZSgnbW9k
ZScpCisgICAgICAgIGV4dHJhX2JvZHkgPSAiYWRkRXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1
bmN0aW9uKGUpIHsgdGhyb3cgbmV3IEVycm9yKCdib29tJyk7IH0pOyIKKworICAgIGhlYWRlcnMu
YXBwZW5kKCgnQ29udGVudC1UeXBlJywgY29udGVudF90eXBlKSkKKyAgICAjIFJldHVybiBhIGRp
ZmZlcmVudCBzY3JpcHQgZm9yIGVhY2ggYWNjZXNzLiAgVXNlIC50aW1lKCkgYW5kIC5jbG9jaygp
IGZvcgorICAgICMgYmVzdCB0aW1lIHJlc29sdXRpb24gYWNyb3NzIGRpZmZlcmVudCBwbGF0Zm9y
bXMuCisgICAgcmV0dXJuIGhlYWRlcnMsICcvKiAlcyAlcyAqLyAlcycgJSAodGltZS50aW1lKCks
IHRpbWUuY2xvY2soKSwgZXh0cmFfYm9keSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL3VwZGF0ZS91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlL3VwZGF0ZS1hZnRlci1vbmVkYXkuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZDRjOTgyNzIxODdlNTI5NDdlNzEwMTg5YzlmYTFjZmFmYmY0YjIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS91
cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4IEBACis8Ym9keT4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiBsb2FkX2ltYWdlKHVybCkgeworICB2YXIgaW1nID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnaW1nJyk7CisgIGltZy5zcmMgPSB1cmw7Cit9Cis8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlMmYwMTZlMzA1NGNlMDFhNzViMTM5YzA4NjAyNjc4YzczNjU5
ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRl
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy91cGRhdGUvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMxMDBj
ZWZjYjhmYzcwYjBmZGQ3MWY1NWFiMjY1ZDQwZTM0MTI2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIyMCBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzLzQwNC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9hcHBjYWNoZS1vcmRlcmluZy5pbnN0YWxsLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBwY2FjaGVkLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYXBwY2FjaGUtb3JkZXJpbmcuaXMtYXBw
Y2FjaGVkLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2FwcGNhY2hlLW9yZGVyaW5n
Lm1hbmlmZXN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2JsYW5rLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYnl0ZWNoZWNrLXdvcmtlci1pbXBvcnRlZC1zY3JpcHQu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvYnl0ZWNoZWNrLXdvcmtlci5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9jbGFpbS13aXRoLXJlZGlyZWN0LWlmcmFtZS5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsYWltLXdvcmtlci5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnQtaWQtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS1mcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudC1uYXZpZ2F0ZS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvY2xpZW50LW5hdmlnYXRlZC1mcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVzb3VyY2VzL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy1mcmFtZS13b3JrZXIuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY2xpZW50LXR5cGVzLWZyYW1l
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50cy1nZXQtY2xpZW50LXR5
cGVzLXNoYXJlZC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvY2xpZW50
cy1nZXQtY2xpZW50LXR5cGVzLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9jbGllbnRzLWdldC1jcm9zcy1vcmlnaW4tZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9jbGllbnRzLWdldC1mcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2NsaWVudHMtZ2V0LW90aGVyLW9yaWdpbi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2NsaWVudHMtZ2V0LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9jbGllbnRzLW1hdGNoYWxsLWNsaWVudC10eXBlcy1kZWRpY2F0ZWQtd29ya2VyLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hhbGwtY2xpZW50LXR5cGVz
LWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2NsaWVudHMtbWF0Y2hh
bGwtY2xpZW50LXR5cGVzLXNoYXJlZC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvY2xpZW50cy1tYXRjaGFsbC1vbi1ldmFsdWF0aW9uLXdvcmtlci5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9jbGllbnRzLW1hdGNoYWxsLXdvcmtlci5qcworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWludGVyY2VwdG9yLmpzCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9kdW1teS13b3JrZXItc2NyaXB0LnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2R1bW15Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvZHVtbXkudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2VjaG8tbWVz
c2FnZS10by1zb3VyY2Utd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Vt
cHR5LWJ1dC1zbG93LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0
eS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZW1wdHkuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9lbXB0eS5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9lbmQtdG8tZW5kLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNl
cy9ldmVudHMtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2V4dGVuZGFi
bGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2V4dGVuZGFibGUtZXZlbnQtd2FpdHVudGlsLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZhaWwtb24tZmV0Y2gtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L2ZldGNoLWFjY2Vzcy1jb250cm9sLWxvZ2luLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtYWNjZXNzLWNvbnRyb2wucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWNvcnMteGhyLWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL2ZldGNoLWNzcC1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1jc3AtaWZyYW1lLmh0bWwuc3ViLmhlYWRlcnMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS1pZnJh
bWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1hc3luYy1y
ZXNwb25kLXdpdGgtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNo
LWV2ZW50LW5ldHdvcmstZXJyb3ItY29udHJvbGxlZS1pZnJhbWUuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1uZXR3b3JrLWVycm9yLXdvcmtlci5qcworL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1yZWRpcmVjdC1pZnJhbWUuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgt
YXJndW1lbnQtaWZyYW1lLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gt
ZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVhZGFibGUtc3RyZWFtLWlmcmFt
ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQt
d2l0aC1yZWFkYWJsZS1zdHJlYW0td29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3Vy
Y2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1yZXNwb25zZS1ib2R5LXdpdGgtaW52YWxpZC1j
aHVuay1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1ldmVu
dC1yZXNwb25kLXdpdGgtcmVzcG9uc2UtYm9keS13aXRoLWludmFsaWQtY2h1bmstd29ya2VyLmpz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLWV2ZW50LXJlc3BvbmQtd2l0aC1z
dG9wcy1wcm9wYWdhdGlvbi13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtdGVzdC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
ZmV0Y2gtZXZlbnQtd2l0aGluLXN3LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1taXhlZC1jb250ZW50LWlmcmFtZS1pbnNjb3BlLXRvLWluc2Nv
cGUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1taXhlZC1jb250ZW50
LWlmcmFtZS1pbnNjb3BlLXRvLW91dHNjb3BlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvZmV0Y2gtbWl4ZWQtY29udGVudC1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1pZnJhbWUuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1iYXNlLXVybC1zdHlsZS5j
c3MKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1jc3MtYmFzZS11
cmwtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3Qt
Y3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLWNyb3NzLmNzcworL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay1jcm9z
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWNy
b3NzLW9yaWdpbi1taW1lLWNoZWNrLWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWNyb3NzLW9yaWdpbi1taW1lLWNoZWNrLXNhbWUuY3Nz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QtY3NzLWNyb3NzLW9y
aWdpbi1taW1lLWNoZWNrLXNhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay13b3JrZXIuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmVxdWVzdC1mYWxsYmFjay1pZnJhbWUuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLXdv
cmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LWh0bWwt
aW1wb3J0cy1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1y
ZXF1ZXN0LWh0bWwtaW1wb3J0cy13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVhZGVycy1pZnJhbWUuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LW5vLWZyZXNobmVzcy1oZWFkZXJz
LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXJl
ZGlyZWN0LWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJl
cXVlc3QtcmVzb3VyY2VzLWlmcmFtZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL2ZldGNoLXJlcXVlc3QtcmVzb3VyY2VzLXdvcmtlci5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXhoci1pZnJhbWUuaHR0cHMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXF1ZXN0LXhoci1zeW5jLWlmcmFtZS5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMtd29y
a2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZldGNoLXJlcXVlc3QteGhyLXdv
cmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXNwb25zZS10YWlu
dC1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mZXRjaC1yZXNwb25z
ZS14aHItaWZyYW1lLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0
Y2gtcmVzcG9uc2UteGhyLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9m
ZXRjaC1yZXdyaXRlLXdvcmtlci1yZWZlcnJlci1wb2xpY3kuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXItcmVmZXJyZXItcG9saWN5LmpzLmhlYWRl
cnMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtcmV3cml0ZS13b3JrZXIuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvZmV0Y2gtd2FpdHMtZm9yLWFjdGl2YXRlLXdv
cmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3JlaWduLWZldGNoLWNvcnMt
d29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gtZXZl
bnQtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24tZmV0Y2gt
aGVscGVyLWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZvcmVpZ24t
ZmV0Y2gtaGVscGVyLXNjcmlwdC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9mb3Jl
aWduLWZldGNoLWhlbHBlci13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
Zm9yZWlnbi1mZXRjaC1oZWxwZXJzLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2Zv
cmVpZ24tZmV0Y2gtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ZyYW1l
LWZvci1nZXRyZWdpc3RyYXRpb25zLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
aHR0cC10by1odHRwcy1yZWRpcmVjdC1hbmQtcmVnaXN0ZXItaWZyYW1lLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvaWZyYW1lLXJlZ2lzdGVyLWxpbmstZWxlbWVudC5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1taW1lLXR5cGUtd29ya2VyLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3JpcHRzLWVjaG8ucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW1wb3J0LXNjcmlwdHMtcmVzb3VyY2UtbWFwLXdvcmtl
ci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbXBvcnQtc2NyaXB0cy11cGRhdGVk
LWZsYWctd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ltcG9ydC1zY3Jp
cHRzLXZlcnNpb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW5kZXhlZGRiLXdv
cmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnN0YWxsLWV2ZW50LXR5cGUt
d29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2luc3RhbGwtd29ya2VyLWhl
bHBlci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludGVyZmFjZXMtd29ya2Vy
LnN1Yi5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pbnRlcmZhY2VzLmpzCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtYmxvYnR5cGUtaWZyYW1lLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1ibG9idHlwZS13b3JrZXIu
anMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1jaHVua2VkLWVuY29kaW5n
LXdpdGgtZmx1c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvaW52YWxpZC1jaHVu
a2VkLWVuY29kaW5nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFsaWQtaGVh
ZGVyLWlmcmFtZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL2ludmFs
aWQtaGVhZGVyLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pc28tbGF0
aW4xLWhlYWRlci1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9pc28t
bGF0aW4xLWhlYWRlci13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbGlu
ay1oZWFkZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZF93b3JrZXIuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbG9hZGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvbWFsZm9ybWVkLXdvcmtlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9taW1lLXR5cGUtd29ya2VyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L21pbnQtbmV3LXdvcmtlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9uYXZpZ2F0
ZS13aW5kb3ctd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRp
b24tcmVkaXJlY3QtYm9keS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
bmF2aWdhdGlvbi1yZWRpcmVjdC1ib2R5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L25hdmlnYXRpb24tcmVkaXJlY3Qtb3RoZXItb3JpZ2luLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1vdXQtc2NvcGUucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTEucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC1zY29wZTIucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlvbi1yZWRpcmVjdC10by1odHRwLWlmcmFt
ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL25hdmlnYXRpb24tcmVkaXJlY3Qt
dG8taHR0cC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbmF2aWdhdGlv
bi1yZWRpcmVjdC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvbm90aWZp
Y2F0aW9uX2ljb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25hY3RpdmF0ZS10
aHJvdy1lcnJvci1mcm9tLW5lc3RlZC1ldmVudC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvb25hY3RpdmF0ZS10aHJvdy1lcnJvci10aGVuLWNhbmNlbC13b3JrZXIuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25hY3RpdmF0ZS10aHJvdy1lcnJvci10aGVu
LXByZXZlbnQtZGVmYXVsdC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
b25hY3RpdmF0ZS10aHJvdy1lcnJvci13aXRoLWVtcHR5LW9uZXJyb3Itd29ya2VyLmpzCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uYWN0aXZhdGUtdGhyb3ctZXJyb3Itd29ya2VyLmpz
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFsbC10aHJvdy1lcnJvci1mcm9t
LW5lc3RlZC1ldmVudC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb25p
bnN0YWxsLXRocm93LWVycm9yLXRoZW4tY2FuY2VsLXdvcmtlci5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9vbmluc3RhbGwtdGhyb3ctZXJyb3ItdGhlbi1wcmV2ZW50LWRlZmF1bHQt
d29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL29uaW5zdGFsbC10aHJvdy1l
cnJvci13aXRoLWVtcHR5LW9uZXJyb3Itd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVz
b3VyY2VzL29uaW5zdGFsbC10aHJvdy1lcnJvci13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvb25pbnN0YWxsLXdhaXR1bnRpbC10aHJvdy1lcnJvci13b3JrZXIuanMKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb3BhcXVlLXJlc3BvbnNlLWJlaW5nLXByZWxvYWRl
ZC14aHIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vcGFxdWUtcmVzcG9uc2Ut
cHJlbG9hZGVkLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9vcGFxdWUt
cmVzcG9uc2UtcHJlbG9hZGVkLXhoci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L290aGVyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvb3ZlcnJpZGVfYXNzZXJ0
X29iamVjdF9lcXVhbHMuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcGVyZm9ybWFu
Y2UtdGltZWxpbmUtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLWJsb2ItdXJsLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNz
YWdlLW1zZ3BvcnQtdG8tY2xpZW50LXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9wb3N0bWVzc2FnZS10by1jbGllbnQtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXRyYW5zZmVyYWJsZXMtd29ya2VyLmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLXdvcmtlci5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWRpcmVjdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9y
ZWZlcmVyLWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZWdpc3Rl
ci1jbG9zZWQtd2luZG93LWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3JlZ2lzdGVyLWZvcmVpZ24tZmV0Y2gtZXJyb3JzLXdvcmtlci5qcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3Jlc291cmNlcy9yZWdpc3Rlci1pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy9yZWdpc3RyYXRpb24tdGVzdHMuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvcmVnaXN0cmF0aW9uLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9y
ZWplY3QtaW5zdGFsbC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVw
bHktdG8tbWVzc2FnZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlcXVlc3Qt
Ym9keS1ibG9iLWlmcmFtZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3JlcXVl
c3QtYm9keS1ibG9iLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXF1
ZXN0LWVuZC10by1lbmQtd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3Jl
cXVlc3QtaGVhZGVycy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNvdXJjZS10
aW1pbmctaWZyYW1lLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvcmVzb3VyY2Ut
dGltaW5nLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy9yZXNwb25kLXRo
ZW4tdGhyb3ctd29ya2VyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NlcnZpY2Ut
d29ya2VyLWNzcC13b3JrZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2hhcmVk
LXdvcmtlci1jb250cm9sbGVkLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NoYXJl
ZC13b3JrZXItaW1wb3J0LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbGVuY2Uu
b2dhCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNlcHQtd29ya2Vy
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3NpbXBsZS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvc2tpcC13YWl0aW5nLWluc3RhbGxlZC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvc2tpcC13YWl0aW5nLXdvcmtlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291
cmNlcy9zcXVhcmUucG5nCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3N1Y2Nlc3MucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcworL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3Jlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3VucmVnaXN0ZXItY29udHJvbGxlci1wYWdlLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLWNsYWltLXdvcmtlci5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3Jlc291cmNlcy91cGRhdGUtbm9jb29raWUtd29ya2VyLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3VwZGF0ZS1yZWNvdmVyeS13b3JrZXIucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9yZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93YWl0LWZvcmV2ZXItaW4taW5zdGFsbC13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9yZXNvdXJjZXMvd2Vic29ja2V0LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS13b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNv
dXJjZXMvd29ya2VyLWludGVyY2VwdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy93b3JrZXItbG9hZC1pbnRlcmNlcHRvci5qcworL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3Jlc291cmNlcy93b3JrZXItdGVzdGhhcm5lc3MuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMveGhyLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvd2FpdC1mb3JldmVyLWluLWluc3RhbGwtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVzb3VyY2VzL3dhaXQtZm9yZXZlci1pbi1pbnN0YWxsLXdvcmtlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Zjg1YTczYWQzZTExZTYwYjlkYzkzNWUxODhhYTBhYmI3OTNkNTEyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dhaXQtZm9yZXZlci1pbi1pbnN0YWxsLXdv
cmtlci5qcwpAQCAtMCwwICsxLDEyIEBACit2YXIgd2FpdFVudGlsUmVzb2x2ZTsKK3NlbGYuYWRk
RXZlbnRMaXN0ZW5lcignaW5zdGFsbCcsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgZXZlbnQud2Fp
dFVudGlsKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgd2FpdFVudGls
UmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICB9KSk7CisgIH0pOworCitzZWxmLmFkZEV2ZW50TGlz
dGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgIGlmIChldmVudC5kYXRhID09
PSAnU1RPUF9XQUlUSU5HJykgeworICAgICAgd2FpdFVudGlsUmVzb2x2ZSgpOworICAgIH0KKyAg
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd2Vic29ja2V0Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dlYnNvY2tldC5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YzZhYmQyODNhMDQzZmYwNjBjOGY2NDEwNjZjYmNlNjg1MDc3NWE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3dlYnNvY2tldC5qcwpAQCAtMCwwICsxLDcg
QEAKK3NlbGYudXJscyA9IFtdOworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgc2VsZi51cmxzLnB1c2goZXZlbnQucmVxdWVzdC51cmwpOworICB9
KTsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgZXZlbnQuZGF0YS5wb3J0LnBvc3RNZXNzYWdlKHt1cmxzOiBzZWxmLnVybHN9KTsKKyAgfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd2luZG93Y2xpZW50LW5h
dmlnYXRlLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93aW5kb3djbGll
bnQtbmF2aWdhdGUtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMmMyYzY2ZDc1OGRjOGJiNzI2Yzli
MGY3M2NlYzVmYmMzZmU2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9y
ZXNvdXJjZXMvd2luZG93Y2xpZW50LW5hdmlnYXRlLXdvcmtlci5qcwpAQCAtMCwwICsxLDY2IEBA
CitmdW5jdGlvbiBtYXRjaF9xdWVyeShxdWVyeV9zdHJpbmcpIHsKKyAgcmV0dXJuIHNlbGYubG9j
YXRpb24uc2VhcmNoLnN1YnN0cigxKSA9PSBxdWVyeV9zdHJpbmc7Cit9CisKK2Z1bmN0aW9uIG5h
dmlnYXRlX3Rlc3QoZSkgeworICB2YXIgcG9ydCA9IGUuZGF0YS5wb3J0OworICB2YXIgdXJsID0g
ZS5kYXRhLnVybDsKKworICByZXR1cm4gY2xpZW50cy5tYXRjaEFsbCh7IGluY2x1ZGVVbmNvbnRy
b2xsZWQgOiB0cnVlIH0pCisgICAgLnRoZW4oZnVuY3Rpb24oY2xpZW50X2xpc3QpIHsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjbGllbnRfbGlzdC5sZW5ndGg7IGkrKykgeworICAgICAg
ICAgIHZhciBjbGllbnQgPSBjbGllbnRfbGlzdFtpXTsKKyAgICAgICAgICBpZiAoY2xpZW50LmZy
YW1lVHlwZSA9PSAnbmVzdGVkJykgeworICAgICAgICAgICAgcmV0dXJuIGNsaWVudC5uYXZpZ2F0
ZSh1cmwpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwb3J0LnBvc3RNZXNzYWdl
KCdDb3VsZCBub3QgbG9jYXRlIHdpbmRvdyBjbGllbnQuJyk7CisgICAgICB9KQorICAgIC50aGVu
KGZ1bmN0aW9uKG5ld19jbGllbnQpIHsKKyAgICAgICAgaWYgKG5ld19jbGllbnQgPT09IG51bGwp
CisgICAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShuZXdfY2xpZW50KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgIHBvcnQucG9zdE1lc3NhZ2UobmV3X2NsaWVudC51cmwpOworICAgICAgfSkKKyAg
ICAuY2F0Y2goZnVuY3Rpb24oZXJyb3IpIHsKKyAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShlcnJv
ci5uYW1lKTsKKyAgICAgIH0pOworfQorCitmdW5jdGlvbiBnZXRUZXN0Q2xpZW50KCkgeworICBy
ZXR1cm4gY2xpZW50cy5tYXRjaEFsbCh7IGluY2x1ZGVVbmNvbnRyb2xsZWQ6IHRydWUgfSkKKyAg
ICAudGhlbihmdW5jdGlvbihjbGllbnRfbGlzdCkgeworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGNsaWVudF9saXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgdmFyIGNsaWVudCA9IGNs
aWVudF9saXN0W2ldOworCisgICAgICAgICAgaWYgKC93aW5kb3djbGllbnQtbmF2aWdhdGVcLmh0
dHBzXC5odG1sLy50ZXN0KGNsaWVudC51cmwpKSB7CisgICAgICAgICAgICByZXR1cm4gY2xpZW50
OworICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHRocm93IG5ldyBFcnJvcignU2Vy
dmljZSB3b3JrZXIgd2FzIHVuYWJsZSB0byBsb2NhdGUgdGVzdCBjbGllbnQuJyk7CisgICAgICB9
KTsKK30KKworZnVuY3Rpb24gd2FpdEZvck1lc3NhZ2UoY2xpZW50KSB7CisgIHZhciBjaGFubmVs
ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7CisgIGNsaWVudC5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNo
YW5uZWwucG9ydDIgfSwgW2NoYW5uZWwucG9ydDJdKTsKKworICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHJl
c29sdmU7CisgICAgICB9KTsKK30KKworLy8gVGhlIHdvcmtlciBtdXN0IHJlbWFpbiBpbiB0aGUg
Imluc3RhbGxpbmciIHN0YXRlIGZvciB0aGUgZHVyYXRpb24gb2Ygc29tZQorLy8gc3ViLXRlc3Rz
LiBJbiBvcmRlciB0byBhY2hpZXZlIHRoaXMgY29vcmRpbmF0aW9uIHdpdGhvdXQgcmVseWluZyBv
biBnbG9iYWwKKy8vIHN0YXRlLCB0aGUgd29ya2VyIG11c3QgY3JlYXRlIGEgbWVzc2FnZSBjaGFu
bmVsIHdpdGggdGhlIGNsaWVudCBmcm9tIHdpdGhpbgorLy8gdGhlICJpbnN0YWxsIiBldmVudCBo
YW5kbGVyLgoraWYgKG1hdGNoX3F1ZXJ5KCdpbnN0YWxsaW5nJykpIHsKKyAgc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCdpbnN0YWxsJywgZnVuY3Rpb24oZSkgeworICAgICAgZS53YWl0VW50aWwoZ2V0
VGVzdENsaWVudCgpLnRoZW4od2FpdEZvck1lc3NhZ2UpKTsKKyAgICB9KTsKK30KKworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24oZSkgeworICAgIGUud2FpdFVudGls
KG5hdmlnYXRlX3Rlc3QoZSkpOworICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3Jlc291cmNlcy93b3JrZXItaW50ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTg5YjM4NjkxY2Q0YmU3ODU1YzhjZjQ5ZTc0YzM0MzMxZTM4OTdlNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jlc291cmNlcy93b3JrZXItaW50
ZXJjZXB0aW9uLWlmcmFtZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxzY3JpcHQgc3Jj
PSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0
ZXN0LWhlbHBlcnMuc3ViLmpzP3BpcGU9c3ViIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgaG9z
dF9pbmZvID0gZ2V0X2hvc3RfaW5mbygpOworCitmdW5jdGlvbiBib2lsZXJwbGF0ZV90ZXN0KG1z
ZykgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsK
KyAgICAgICAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigibG9hZF93b3JrZXIuanMiKTsKKyAg
ICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeyByZXNvbHZlKGUuZGF0YSkg
fTsKKyAgICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsgcmVqZWN0KGUpIH07
CisgICAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKG1zZyk7CisgICAgICAgIH0pCisgICAgICAu
dGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2Fn
ZSh7cmVzdWx0czogZGF0YX0sIGhvc3RfaW5mb1snSFRUUFNfT1JJR0lOJ10pOworICAgICAgICB9
KTsKK30KKworZnVuY3Rpb24geGhyX3Rlc3QoKSB7CisgICAgcmV0dXJuIGJvaWxlcnBsYXRlX3Rl
c3QoInhociIpOworfQorCitmdW5jdGlvbiBmZXRjaF90ZXN0KCkgeworICAgIHJldHVybiBib2ls
ZXJwbGF0ZV90ZXN0KCJmZXRjaCIpOworfQorCitmdW5jdGlvbiBpbXBvcnRTY3JpcHRzX3Rlc3Qo
KSB7CisgICAgcmV0dXJuIGJvaWxlcnBsYXRlX3Rlc3QoImltcG9ydFNjcmlwdHMiKTsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldnQpIHsKKyAgICB2
YXIgcG9ydCA9IGV2dC5wb3J0c1swXTsKKyAgICB4aHJfdGVzdCgpCisgICAgICAudGhlbihmZXRj
aF90ZXN0KQorICAgICAgLnRoZW4oaW1wb3J0U2NyaXB0c190ZXN0KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7IHBvcnQucG9zdE1lc3NhZ2Uoe3Jlc3VsdHM6ICdmaW5pc2gnfSk7IH0pCisgICAg
ICAuY2F0Y2goZnVuY3Rpb24oZSkgeyBwb3J0LnBvc3RNZXNzYWdlKHtyZXN1bHRzOiAnZmFpbHVy
ZTonICsgZX0pOyB9KTsKKyAgfSk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvcmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY5NTc3N2E1MTRmNjU2MjhiMjVmNzY1NDk5NzBkZGZiYzg1NGZlZTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvd29ya2VyLWxvYWQtaW50ZXJjZXB0b3Iu
anMKQEAgLTAsMCArMSwxMyBAQAoraW1wb3J0U2NyaXB0cygnL2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcycpOworCit2YXIgcmVzcG9uc2VfdGV4dCA9ICJUaGlzIGxvYWQgd2FzIHN1Y2Nlc3Nm
dWxseSBpbnRlcmNlcHRlZC4iOwordmFyIHJlc3BvbnNlX3NjcmlwdCA9ICJwb3N0TWVzc2FnZShc
IlRoaXMgbG9hZCB3YXMgc3VjY2Vzc2Z1bGx5IGludGVyY2VwdGVkLlwiKTsiOworCitzZWxmLm9u
ZmV0Y2ggPSBmdW5jdGlvbihldmVudCkgeworICAgIHZhciB1cmwgPSBldmVudC5yZXF1ZXN0LnVy
bDsKKyAgICBpZiAodXJsLmluZGV4T2YoInN5bnRoZXNpemVkLXJlc3BvbnNlLnR4dCIpICE9IC0x
KSB7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZShyZXNwb25zZV90ZXh0
KSk7CisgICAgfSBlbHNlIGlmICh1cmwuaW5kZXhPZigic3ludGhlc2l6ZWQtcmVzcG9uc2UuanMi
KSAhPSAtMSkgeworICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UocmVzcG9u
c2Vfc2NyaXB0KSk7CisgICAgfQorfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Jl
c291cmNlcy93b3JrZXItdGVzdGhhcm5lc3MuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJj
ZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkZjU4NjhlMzNlMmZlMzUzNDQ4
MThlYzNmMWEyZTA2OGI5MDk5NmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZXNvdXJjZXMvd29ya2VyLXRlc3RoYXJuZXNzLmpzCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisg
KiB3b3JrZXItdGVzdC1oYXJuZXNzIHNob3VsZCBiZSBjb25zaWRlcmVkIGEgdGVtcG9yYXJ5IHBv
bHlmaWxsIGFyb3VuZAorICogdGVzdGhhcm5lc3MuanMgZm9yIHN1cHBvcnRpbmcgU2VydmljZSBX
b3JrZXIgYmFzZWQgdGVzdHMuIEl0IHNob3VsZCBub3QgYmUKKyAqIG5lY2Vzc2FyeSBvbmNlIHRo
ZSB0ZXN0IGhhcm5lc3MgaXMgYWJsZSB0byBkcml2ZSB3b3JrZXIgYmFzZWQgdGVzdHMgbmF0aXZl
bHkuCisgKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3czYy90ZXN0aGFybmVzcy5qcy9wdWxsLzgy
IGZvciBzdGF0dXMgb2YgZWZmb3J0IHRvCisgKiB1cGRhdGUgdXBzdHJlYW0gdGVzdGhhcm5lc3Mu
anMuIE9uY2UgdGhlIHVwc3RyZWFtaW5nIGlzIGNvbXBsZXRlLCB0ZXN0cyB0aGF0CisgKiByZWZl
cmVuY2Ugd29ya2VyLXRlc3QtaGFybmVzcyBzaG91bGQgYmUgdXBkYXRlZCB0byBkaXJlY3RseSBp
bXBvcnQKKyAqIHRlc3RoYXJuZXNzLmpzLgorICovCisKK2ltcG9ydFNjcmlwdHMoJy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMnKTsKKworKGZ1bmN0aW9uKCkgeworICB2YXIgbmV4dF9jYWNoZV9p
bmRleCA9IDE7CisKKyAgLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIG5l
d2x5IGNyZWF0ZWQgQ2FjaGUgb2JqZWN0LiBUaGUKKyAgLy8gcmV0dXJuZWQgQ2FjaGUgd2lsbCBi
ZSBkZXN0cm95ZWQgd2hlbiB8dGVzdHwgY29tcGxldGVzLgorICBmdW5jdGlvbiBjcmVhdGVfdGVt
cG9yYXJ5X2NhY2hlKHRlc3QpIHsKKyAgICB2YXIgdW5pcXVpZmllciA9IFN0cmluZygrK25leHRf
Y2FjaGVfaW5kZXgpOworICAgIHZhciBjYWNoZV9uYW1lID0gc2VsZi5sb2NhdGlvbi5wYXRobmFt
ZSArICcvJyArIHVuaXF1aWZpZXI7CisKKyAgICB0ZXN0LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkg
eworICAgICAgICBzZWxmLmNhY2hlcy5kZWxldGUoY2FjaGVfbmFtZSk7CisgICAgICB9KTsKKwor
ICAgIHJldHVybiBzZWxmLmNhY2hlcy5kZWxldGUoY2FjaGVfbmFtZSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBzZWxmLmNhY2hlcy5vcGVuKGNhY2hlX25hbWUp
OworICAgICAgICB9KTsKKyAgfQorCisgIHNlbGYuY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSA9IGNy
ZWF0ZV90ZW1wb3JhcnlfY2FjaGU7Cit9KSgpOworCisvLyBSdW5zIHx0ZXN0X2Z1bmN0aW9ufCB3
aXRoIGEgdGVtcG9yYXJ5IHVuaXF1ZSBDYWNoZSBwYXNzZWQgaW4gYXMgdGhlIG9ubHkKKy8vIGFy
Z3VtZW50LiBUaGUgZnVuY3Rpb24gaXMgcnVuIGFzIGEgcGFydCBvZiBQcm9taXNlIGNoYWluIG93
bmVkIGJ5CisvLyBwcm9taXNlX3Rlc3QoKS4gQXMgc3VjaCwgaXQgaXMgZXhwZWN0ZWQgdG8gYmVo
YXZlIGluIGEgbWFubmVyIGlkZW50aWNhbCAod2l0aAorLy8gdGhlIGV4Y2VwdGlvbiBvZiB0aGUg
YXJndW1lbnQpIHRvIGEgZnVuY3Rpb24gcGFzc2VkIGludG8gcHJvbWlzZV90ZXN0KCkuCisvLwor
Ly8gRS5nLjoKKy8vICAgIGNhY2hlX3Rlc3QoZnVuY3Rpb24oY2FjaGUpIHsKKy8vICAgICAgLy8g
RG8gc29tZXRoaW5nIHdpdGggfGNhY2hlfCwgd2hpY2ggaXMgYSBDYWNoZSBvYmplY3QuCisvLyAg
ICB9LCAiU29tZSBDYWNoZSB0ZXN0Iik7CitmdW5jdGlvbiBjYWNoZV90ZXN0KHRlc3RfZnVuY3Rp
b24sIGRlc2NyaXB0aW9uKSB7CisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAg
ICByZXR1cm4gY3JlYXRlX3RlbXBvcmFyeV9jYWNoZSh0ZXN0KQorICAgICAgICAudGhlbih0ZXN0
X2Z1bmN0aW9uKTsKKyAgICB9LCBkZXNjcmlwdGlvbik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZXNvdXJjZXMveGhyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2Vz
L3hoci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zODdjNGE0OGVkNTEyZTZhMTg2ZWU1Njk0YmU3ODlmNmJmYmJl
ZTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVzb3VyY2VzL3hoci5q
cwpAQCAtMCwwICsxLDYgQEAKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignYWN0aXZhdGUnLCBmdW5j
dGlvbihldmVudCkgeworICAgIGV2ZW50LndhaXRVbnRpbChjbGllbnRzLmNsYWltKCkpOworICB9
KTsKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgZXZlbnQuZGF0YS5wb3J0LnBvc3RNZXNzYWdlKHt4aHI6ICEhKCJYTUxIdHRwUmVxdWVzdCIg
aW4gc2VsZil9KTsKKyAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNl
LXdvcmtlci1jc3AtY29ubmVjdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjZmNGE0MGU0ZTlh
YjQwYmJlZWFjNGU4NzQyMDhhZjMxMDZkMmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ1NQIGNvbm5l
Y3QgZGlyZWN0aXZlIGZvciBTZXJ2aWNlV29ya2VyIHNjcmlwdDwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K3NlcnZpY2Vfd29ya2VyX3Rlc3QoCisgICAgJ3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jc3At
d29ya2VyLnB5P2RpcmVjdGl2ZT1jb25uZWN0JywKKyAgICAnQ1NQIHRlc3QgZm9yIGNvbm5lY3Qt
c3JjIGluIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZScpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3AtZGVmYXVsdC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWRlZmF1bHQuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZDRlNzYyNGQ4NjFiYzFjZTFmZGU3MDY0MDljZmFkMTYwOTc4YzQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWRl
ZmF1bHQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5TZXJ2aWNlIFdvcmtlcjogQ1NQIGRlZmF1bHQgZGlyZWN0aXZlIGZvciBTZXJ2aWNlV29ya2Vy
IHNjcmlwdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanM/cGlw
ZT1zdWIiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3NlcnZpY2Vfd29ya2VyX3Rlc3QoCisgICAgJ3Jl
c291cmNlcy9zZXJ2aWNlLXdvcmtlci1jc3Atd29ya2VyLnB5P2RpcmVjdGl2ZT1kZWZhdWx0JywK
KyAgICAnQ1NQIHRlc3QgZm9yIGRlZmF1bHQtc3JjIGluIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZScpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdv
cmtlci1jc3Atc2NyaXB0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNlLXdv
cmtlci1jc3Atc2NyaXB0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjMmViNzJiZGM0OWM0ZTEz
ZmEyZDlkYTRhNDdiZTc4NWIwNzJmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NlcnZpY2Utd29ya2VyLWNzcC1zY3JpcHQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogQ1NQIHNjcmlwdCBkaXJl
Y3RpdmUgZm9yIFNlcnZpY2VXb3JrZXIgc2NyaXB0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
dGVzdC1oZWxwZXJzLnN1Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2Vydmlj
ZV93b3JrZXJfdGVzdCgKKyAgICAncmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNzcC13b3JrZXIu
cHk/ZGlyZWN0aXZlPXNjcmlwdCcsCisgICAgJ0NTUCB0ZXN0IGZvciBzY3JpcHQtc3JjIGluIFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZScpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3Rv
cmljYWwuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjc4MGE2MDQyODJkYzI4MWViZTc1YTk2NGVk
MjRmODMyYTI0ZTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2Vydmlj
ZXdvcmtlci1tZXNzYWdlLWV2ZW50LWhpc3RvcmljYWwuaHR0cHMuaHRtbApAQCAtMCwwICsxLDQ0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNlIFdvcmtlcjogU2VydmljZVdvcmtl
ck1lc3NhZ2VFdmVudDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWwnOworICAgIHZhciB1cmwgPSAncmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLXRvLWNsaWVudC13b3JrZXIuanMnOworICAgIHJldHVybiBzZXJ2
aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB1cmwsIHNjb3BlKQorICAgICAg
LnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIHZhciB3ID0gZnJhbWUu
Y29udGVudFdpbmRvdzsKKyAgICAgICAgICB2YXIgd29ya2VyID0gdy5uYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5jb250cm9sbGVyOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAg
ICAgIHNlbGYuU2VydmljZVdvcmtlck1lc3NhZ2VFdmVudCwgdW5kZWZpbmVkLAorICAgICAgICAg
ICAgICAnU2VydmljZVdvcmtlck1lc3NhZ2VFdmVudCBzaG91bGQgbm90IGJlIGRlZmluZWQuJyk7
CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAg
ICAgICAgICAgdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSgKKyAgICAgICAg
ICAgICAgICAgICAgICBlIGluc3RhbmNlb2Ygdy5NZXNzYWdlRXZlbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgJ21lc3NhZ2UgZXZlbnRzIHNob3VsZCB1c2UgTWVzc2FnZUV2ZW50IGludGVyZmFj
ZS4nKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKGUuc291cmNlIGluc3RhbmNlb2Yg
dy5TZXJ2aWNlV29ya2VyKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBl
LCAnbWVzc2FnZScpOworICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnNvdXJjZSwg
d29ya2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlIHNob3VsZCBl
cXVhbCB0byB0aGUgY29udHJvbGxlci4nKTsKKyAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS5wb3J0cy5sZW5ndGgsIDApOworICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ1BJTkcn
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOworICAgICAgICB9KTsKKyAgfSwgJ1Rlc3QgTWVzc2FnZUV2ZW50IHN1cHBsYW50cyBT
ZXJ2aWNlV29ya2VyTWVzc2FnZUV2ZW50LicpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3NlcnZpY2V3b3JrZXJvYmplY3Qtc2NyaXB0dXJsLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNld29ya2Vyb2JqZWN0LXNjcmlwdHVybC5odHRwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU4ZjI1ZjNhNDQyYzAxMzg3ODA3MzAwYjFhMjc4ZTcxZTkyNTRkMGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zZXJ2aWNld29ya2Vyb2JqZWN0
LXNjcmlwdHVybC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPlNlcnZpY2VXb3JrZXIgb2JqZWN0OiBzY3JpcHRVUkwgcHJvcGVydHk8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisndXNlIHN0cmljdCc7CisKK2Z1bmN0aW9uIHVybF90ZXN0KG5hbWUsIHVybCkgeworICB2YXIg
c2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlLycgKyBuYW1lOworICB2YXIgZXhwZWN0ZWRVUkwgPSBu
b3JtYWxpemVVUkwodXJsKTsKKworICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybCwgc2Nv
cGUpCisgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgICAg
dmFyIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworCisgICAgICAgICAgICB0LmFk
ZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCk7CisgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHdvcmtlci5zY3JpcHRVUkwsIGV4cGVjdGVkVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAnUmV0dXJuZWQgU2VydmljZVdvcmtlciBvYmplY3Qgc2hvdWxkIGhhdmUgc2NyaXB0VVJMJyk7
CisgICAgICAgICAgfSk7CisgICAgfSwgJ1ZlcmlmeSB0aGUgc2NyaXB0VVJMIHByb3BlcnR5OiAn
ICsgbmFtZSk7Cit9CisKK3VybF90ZXN0KCdyZWxhdGl2ZScsICdyZXNvdXJjZXMvZW1wdHktd29y
a2VyLmpzJyk7Cit1cmxfdGVzdCgnd2l0aC1mcmFnbWVudCcsICdyZXNvdXJjZXMvZW1wdHktd29y
a2VyLmpzI3JlZicpOwordXJsX3Rlc3QoJ2Fic29sdXRlJywgbm9ybWFsaXplVVJMKCcuL3Jlc291
cmNlcy9lbXB0eS13b3JrZXIuanMnKSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc2hhcmVkLXdvcmtlci1jb250cm9sbGVkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzNkNTJlMDExOTljMmJkYzBlODVkZjdkODEwNmRkZDk3MGFhZTA4MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2Vy
OiBjb250cm9sbGluZyBhIFNoYXJlZFdvcmtlcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2hhcmVkX3dvcmtlciA9ICdyZXNvdXJjZXMvc2hh
cmVkLXdvcmtlci1jb250cm9sbGVkLmpzJzsKKyAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVz
b3VyY2VzL3NpbXBsZS1pbnRlcmNlcHQtd29ya2VyLmpzJzsKKyAgICB2YXIgc2NvcGUgPSBzaGFy
ZWRfd29ya2VyOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIp
IHsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0
aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
ICAgICAgIHZhciB3ID0gbmV3IFNoYXJlZFdvcmtlcihzaGFyZWRfd29ya2VyKTsKKyAgICAgICAg
ICAgICAgdy5wb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlKGUuZGF0YSk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZGF0YSwgJ2ludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7CisgICAgICAgICAgc2Vy
dmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pOwor
ICB9LCAnVmVyaWZ5IHN1YnJlc291cmNlIGxvYWRzIGluIFNoYXJlZFdvcmtlciBhcmUgY29udHJv
bGxlZCBieSBhIFNlcnZpY2UgV29ya2VyJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7
CisgICAgdmFyIHNoYXJlZF93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXNoYXJlZC13b3JrZXIu
anMnOworICAgIHZhciBzZXJ2aWNlX3dvcmtlciA9ICdyZXNvdXJjZXMvZHVtbXktc2hhcmVkLXdv
cmtlci1pbnRlcmNlcHRvci5qcyc7CisgICAgdmFyIHNjb3BlID0gc2hhcmVkX3dvcmtlcjsKKwor
ICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2
aWNlX3dvcmtlciwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAg
cmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICB2YXIgdyA9
IG5ldyBTaGFyZWRXb3JrZXIoc2hhcmVkX3dvcmtlcik7CisgICAgICAgICAgICAgIHcucG9ydC5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRhdGEp
OworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICd3b3Jr
ZXIgbG9hZGluZyBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcicpOworICAgICAgICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KTsK
KyAgfSwgJ1ZlcmlmeSBTaGFyZWRXb3JrZXIgY29uc3RydWN0aW9uIGlzIGNvbnRyb2xsZWQgYnkg
YSBTZXJ2aWNlIFdvcmtlcicpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZh
ciBzaGFyZWRfd29ya2VyID0gJ3Jlc291cmNlcy9zaGFyZWQtd29ya2VyLWltcG9ydC5qcyc7Cisg
ICAgdmFyIHNlcnZpY2Vfd29ya2VyID0gJ3Jlc291cmNlcy9kdW1teS1zaGFyZWQtd29ya2VyLWlu
dGVyY2VwdG9yLmpzJzsKKyAgICB2YXIgc2NvcGUgPSBzaGFyZWRfd29ya2VyOworCisgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29y
a2VyLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZXR1cm4g
d2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2Uo
ZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgIHZhciB3ID0gbmV3IFNo
YXJlZFdvcmtlcihzaGFyZWRfd29ya2VyKTsKKyAgICAgICAgICAgICAgdy5wb3J0Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGUuZGF0YSk7CisgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oZGF0YSkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGF0YSwgJ3dvcmtlciBsb2Fk
aW5nIGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyJyk7CisgICAgICAgICAgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pOworICB9LCAn
VmVyaWZ5IGltcG9ydFNjcmlwdHMgZnJvbSBTaGFyZWRXb3JrZXIgaXMgY29udHJvbGxlZCBieSBh
IFNlcnZpY2UgV29ya2VyJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NraXAtd2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MWUyNmJlNTEyODQ1NGVlMDUxNDNiMTBiODAzOWNlYjk1YTQ4Y2Q1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxlZC5odHRwcy5odG1sCkBA
IC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBT
a2lwIHdhaXRpbmcgaW5zdGFsbGVkIHdvcmtlcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rl
c3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKwor
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2Js
YW5rLmh0bWw/c2tpcC13YWl0aW5nLWluc3RhbGxlZCc7CisgICAgdmFyIHVybDEgPSAncmVzb3Vy
Y2VzL2VtcHR5LmpzJzsKKyAgICB2YXIgdXJsMiA9ICdyZXNvdXJjZXMvc2tpcC13YWl0aW5nLWlu
c3RhbGxlZC13b3JrZXIuanMnOworICAgIHZhciBmcmFtZSwgZnJhbWVfc3csIHNlcnZpY2Vfd29y
a2VyLCByZWdpc3RyYXRpb24sIG9ubWVzc2FnZSwgb25jb250cm9sbGVyY2hhbmdlZDsKKyAgICB2
YXIgc2F3X21lc3NhZ2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICAg
IG9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsK
KyAgICAgICAgICB9OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24obWVzc2FnZSkg
eworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICBtZXNzYWdlLCAnUEFTUycs
CisgICAgICAgICAgICAnc2tpcFdhaXRpbmcgcHJvbWlzZSBzaG91bGQgYmUgcmVzb2x2ZWQgd2l0
aCB1bmRlZmluZWQnKTsKKyAgICAgICAgfSk7CisgICAgdmFyIHNhd19jb250cm9sbGVyY2hhbmdl
ZCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgb25jb250cm9sbGVy
Y2hhbmdlZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAg
ICAgICAgICAgICBmcmFtZV9zdy5jb250cm9sbGVyLnNjcmlwdFVSTCwgbm9ybWFsaXplVVJMKHVy
bDIpLAorICAgICAgICAgICAgICAgICdDb250cm9sbGVyIHNjcmlwdFVSTCBzaG91bGQgY2hhbmdl
IHRvIHRoZSBzZWNvbmQgb25lJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwodXJsMiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICdXb3JrZXIgd2hpY2ggY2FsbHMgc2tpcFdhaXRpbmcgc2hvdWxkIGJlIGFj
dGl2ZSBieSBjb250cm9sbGVyY2hhbmdlJyk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgIH07CisgICAgICB9KTsKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9h
bmRfcmVnaXN0ZXIodCwgdXJsMSwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7Cisg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRl
ZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0
dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KGYpIHsKKyAgICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgICAgZnJhbWVfc3cgPSBmLmNvbnRl
bnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXI7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cygKKyAgICAgICAgICAgICAgZnJhbWVfc3cuY29udHJvbGxlci5zY3JpcHRVUkwsIG5vcm1hbGl6
ZVVSTCh1cmwxKSwKKyAgICAgICAgICAgICAgJ0RvY3VtZW50IGNvbnRyb2xsZXIgc2NyaXB0VVJM
IHNob3VsZCBlcXVhbCB0byB0aGUgZmlyc3Qgb25lJyk7CisgICAgICAgICAgZnJhbWVfc3cub25j
b250cm9sbGVyY2hhbmdlID0gdC5zdGVwX2Z1bmMob25jb250cm9sbGVyY2hhbmdlZCk7CisgICAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHVybDIsIHtzY29w
ZTogc2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAg
ICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyID0gci5pbnN0
YWxsaW5nOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBzZXJ2aWNlX3dvcmtl
ciwgJ2luc3RhbGxlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICBj
aGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IHQuc3RlcF9mdW5jKG9ubWVzc2FnZSk7CisgICAgICAg
ICAgc2VydmljZV93b3JrZXIucG9zdE1lc3NhZ2Uoe3BvcnQ6IGNoYW5uZWwucG9ydDJ9LCBbY2hh
bm5lbC5wb3J0Ml0pOworICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbc2F3X21lc3NhZ2Us
IHNhd19jb250cm9sbGVyY2hhbmdlZF0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHNlcnZp
Y2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KTsKKyAg
fSwgJ1Rlc3Qgc2tpcFdhaXRpbmcgd2hlbiBhIGluc3RhbGxlZCB3b3JrZXIgaXMgd2FpdGluZycp
OworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGlu
Zy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAt
d2FpdGluZy11c2luZy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOWMzOThh
MjYwNjc2ZDk3NmYwYWFjMGNhNDk1YWExYTZjOTRlNjMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2Vy
OiBTa2lwIHdhaXRpbmcgdXNpbmcgcmVnaXN0cmF0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3Qn
OworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJj
ZXMvYmxhbmsuaHRtbD9za2lwLXdhaXRpbmctdXNpbmctcmVnaXN0cmF0aW9uJzsKKyAgICB2YXIg
dXJsMSA9ICdyZXNvdXJjZXMvZW1wdHkuanMnOworICAgIHZhciB1cmwyID0gJ3Jlc291cmNlcy9z
a2lwLXdhaXRpbmctd29ya2VyLmpzJzsKKyAgICB2YXIgZnJhbWUsIGZyYW1lX3N3LCBzd19yZWdp
c3RyYXRpb24sIG9uY29udHJvbGxlcmNoYW5nZWQ7CisgICAgdmFyIHNhd19jb250cm9sbGVyY2hh
bmdlZCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHsKKyAgICAgICAgb25jb250cm9s
bGVyY2hhbmdlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHJlc29sdmUoZSk7CisgICAg
ICAgICAgfTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgJ2NvbnRyb2xsZXJjaGFuZ2UnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ0V2ZW50IG5hbWUgc2hvdWxkIGJlICJjb250cm9sbGVyY2hhbmdlIicpOwor
ICAgICAgICAgIGFzc2VydF90cnVlKAorICAgICAgICAgICAgICBlLnRhcmdldCBpbnN0YW5jZW9m
IGZyYW1lLmNvbnRlbnRXaW5kb3cuU2VydmljZVdvcmtlckNvbnRhaW5lciwKKyAgICAgICAgICAg
ICAgJ0V2ZW50IHRhcmdldCBzaG91bGQgYmUgYSBTZXJ2aWNlV29ya2VyQ29udGFpbmVyJyk7Cisg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5jb250cm9sbGVyLnN0YXRlLCAnYWN0aXZh
dGluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAnQ29udHJvbGxlciBzdGF0ZSBzaG91bGQg
YmUgYWN0aXZhdGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAg
IGZyYW1lX3N3LmNvbnRyb2xsZXIuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwodXJsMiksCisgICAg
ICAgICAgICAgICdDb250cm9sbGVyIHNjcmlwdFVSTCBzaG91bGQgY2hhbmdlIHRvIHRoZSBzZWNv
bmQgb25lJyk7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybDEsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lz
dHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIGYucmVtb3ZlKCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgICBmcmFtZSA9IGY7CisgICAgICAgICAgZnJhbWVfc3cgPSBmLmNvbnRlbnRX
aW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXI7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygK
KyAgICAgICAgICAgICAgZnJhbWVfc3cuY29udHJvbGxlci5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVS
TCh1cmwxKSwKKyAgICAgICAgICAgICAgJ0RvY3VtZW50IGNvbnRyb2xsZXIgc2NyaXB0VVJMIHNo
b3VsZCBlcXVhbCB0byB0aGUgZmlyc3Qgb25lJyk7CisgICAgICAgICAgZnJhbWVfc3cub25jb250
cm9sbGVyY2hhbmdlID0gdC5zdGVwX2Z1bmMob25jb250cm9sbGVyY2hhbmdlZCk7CisgICAgICAg
ICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHVybDIsIHtzY29wZTog
c2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikg
eworICAgICAgICAgIHN3X3JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbjsKKyAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICByZWdpc3RyYXRpb24udW5y
ZWdpc3RlcigpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIHNhd19jb250cm9s
bGVyY2hhbmdlZDsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUsIG51bGwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZ2lzdHJhdGlvbiBhY3RpdmUgd29ya2VyIHNob3Vs
ZCBub3QgYmUgbnVsbCcpOworICAgICAgICAgIGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHN3X3Jl
Z2lzdHJhdGlvbi5hY3RpdmUpOworICAgICAgICB9KTsKKyAgfSwgJ1Rlc3Qgc2tpcFdhaXRpbmcg
d2hpbGUgYSBjbGllbnQgaXMgdXNpbmcgdGhlIHJlZ2lzdHJhdGlvbicpOworCis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LWNsaWVu
dC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtY2xp
ZW50Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIwNjBhODI0NzJmZjQ0MjZmNTQzZTkxMDM2MTE1
Y2QxM2E0MzI5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2Fp
dGluZy13aXRob3V0LWNsaWVudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBTa2lwIHdhaXRpbmcgd2l0aG91dCBjbGll
bnQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKK3NlcnZpY2Vfd29ya2VyX3Rlc3QoCisgICAgJ3Jlc291cmNlcy9za2lw
LXdhaXRpbmctd29ya2VyLmpzJywKKyAgICAnVGVzdCBzaW5nbGUgc2tpcFdhaXRpbmcoKSB3aGVu
IG5vIGNsaWVudCBhdHRhY2hlZCcpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtdXNpbmctcmVnaXN0
cmF0aW9uLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJlMmJkZTc4ZDNjMGI0YmQ2ODk2NzE4OGQ2
NjhjNDU1NzE0MTIxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAt
d2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCkBAIC0wLDAgKzEs
NDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBTa2lwIHdhaXRp
bmcgd2l0aG91dCB1c2luZyByZWdpc3RyYXRpb248L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9i
bGFuay5odG1sP3NraXAtd2FpdGluZy13aXRob3V0LXVzaW5nLXJlZ2lzdHJhdGlvbic7CisgICAg
dmFyIHVybCA9ICdyZXNvdXJjZXMvc2tpcC13YWl0aW5nLXdvcmtlci5qcyc7CisgICAgdmFyIGZy
YW1lX3N3LCBzd19yZWdpc3RyYXRpb247CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5y
ZWdpc3Rlcih0LCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJl
dHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlv
bihmKSB7CisgICAgICAgICAgdC5hZGRfY2xlYW51cChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgZi5yZW1vdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIGZyYW1lX3N3ID0gZi5j
b250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyOworICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZnJhbWVfc3cuY29udHJvbGxlciwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICdEb2N1bWVudCBjb250cm9sbGVyIHNob3VsZCBiZSBudWxsJyk7CisgICAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHVybCwge3Njb3BlOiBzY29wZX0pOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAg
ICAgc3dfcmVnaXN0cmF0aW9uID0gcmVnaXN0cmF0aW9uOworICAgICAgICAgIHQuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgcmVn
aXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMoZnJhbWVfc3cuY29udHJv
bGxlciwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdEb2N1bWVudCBjb250cm9sbGVy
IHNob3VsZCBzdGlsbCBiZSBudWxsJyk7CisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoc3df
cmVnaXN0cmF0aW9uLmFjdGl2ZSwgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
UmVnaXN0cmF0aW9uIGFjdGl2ZSB3b3JrZXIgc2hvdWxkIG5vdCBiZSBudWxsJyk7CisgICAgICAg
ICAgZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIoc3dfcmVnaXN0cmF0aW9uLmFjdGl2ZSk7CisgICAg
ICAgIH0pOworICB9LCAnVGVzdCBza2lwV2FpdGluZyB3aGlsZSBhIGNsaWVudCBpcyBub3QgYmVp
bmcgY29udHJvbGxlZCcpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3NraXAtd2FpdGluZy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0
aW5nLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhiNWE4YzlhZWViNDA2NDhjNGQyOTU0OTJkNGE0
NGI5NTdkNzg4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2Fp
dGluZy5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PlNlcnZpY2UgV29ya2VyOiBTa2lwIHdhaXRpbmc8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9i
bGFuay5odG1sP3NraXAtd2FpdGluZyc7CisgICAgdmFyIHVybDEgPSAncmVzb3VyY2VzL2VtcHR5
LmpzJzsKKyAgICB2YXIgdXJsMiA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKyAgICB2
YXIgdXJsMyA9ICdyZXNvdXJjZXMvc2tpcC13YWl0aW5nLXdvcmtlci5qcyc7CisgICAgdmFyIHN3
X3JlZ2lzdHJhdGlvbiwgYWN0aXZhdGVkX3dvcmtlciwgd2FpdGluZ193b3JrZXI7CisgICAgcmV0
dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHVybDEsIHNjb3Bl
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnaXN0cmF0aW9uKSB7CisgICAgICAgICAgc3dfcmVn
aXN0cmF0aW9uID0gcmVnaXN0cmF0aW9uOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0
ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNj
b3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICB0
LmFkZF9jbGVhbnVwKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBmLnJlbW92ZSgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJl
Z2lzdGVyKHVybDIsIHtzY29wZTogc2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0
LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgYWN0aXZhdGVkX3dvcmtlciA9IHN3X3Jl
Z2lzdHJhdGlvbi5hY3RpdmU7CisgICAgICAgICAgd2FpdGluZ193b3JrZXIgPSBzd19yZWdpc3Ry
YXRpb24ud2FpdGluZzsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdGl2YXRlZF93b3JrZXIu
c2NyaXB0VVJMLCBub3JtYWxpemVVUkwodXJsMSksCisgICAgICAgICAgICAgICAgICAgICAgICAn
V29ya2VyIHdpdGggdXJsMSBzaG91bGQgYmUgYWN0aXZhdGVkJyk7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyh3YWl0aW5nX3dvcmtlci5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh1cmwyKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgd2l0aCB1cmwyIHNob3VsZCBiZSB3YWl0aW5n
Jyk7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHVy
bDMsIHtzY29wZTogc2NvcGV9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJl
Z2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhY3RpdmF0ZWRfd29ya2VyLnN0
YXRlLCAncmVkdW5kYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdXb3JrZXIgd2l0aCB1
cmwxIHNob3VsZCBiZSByZWR1bmRhbnQnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHdhaXRp
bmdfd29ya2VyLnN0YXRlLCAncmVkdW5kYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdX
b3JrZXIgd2l0aCB1cmwyIHNob3VsZCBiZSByZWR1bmRhbnQnKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHN3X3JlZ2lzdHJhdGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBub3JtYWxpemVVUkwodXJs
MyksCisgICAgICAgICAgICAgICAgICAgICAgICAnV29ya2VyIHdpdGggdXJsMyBzaG91bGQgYmUg
YWN0aXZhdGVkJyk7CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KTsKKyAgfSwgJ1Rlc3Qgc2tpcFdhaXRpbmcg
d2l0aCBib3RoIGFjdGl2ZSBhbmQgd2FpdGluZyB3b3JrZXJzJyk7CisKKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3N0YXRlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgxMDM2MmUwNTMzMDU2OWY5N2I3
NjEyY2FlMWM5M2Y4MTM1Y2YzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3N0YXRlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2Ny
aXB0PgorKGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoJ1NlcnZpY2UgV29y
a2VyIHN0YXRlIHByb3BlcnR5IGFuZCAic3RhdGVjaGFuZ2UiIGV2ZW50Jyk7CisgICAgdmFyIGN1
cnJlbnRTdGF0ZSA9ICd0ZXN0LWlzLXN0YXJ0aW5nJzsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3Vy
Y2VzL3N0YXRlLyc7CisKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rl
cigKKyAgICAgICAgdCwgJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnLCBzY29wZSkKKyAgICAg
IC50aGVuKHQuc3RlcF9mdW5jKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHZh
ciBzdyA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgICAgICAgIHN3LmFkZEV2ZW50TGlz
dGVuZXIoJ3N0YXRlY2hhbmdlJywgdC5zdGVwX2Z1bmMob25TdGF0ZUNoYW5nZShzdykpKTsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHN3LnN0YXRlLCAnaW5zdGFsbGluZycsCisgICAgICAgICAg
ICAgICAgICAgICAgICAndGhlIHNlcnZpY2Ugd29ya2VyIHNob3VsZCBiZSBpbiAiaW5zdGFsbGlu
ZyIgc3RhdGUuJyk7CisgICAgICAgICAgY2hlY2tTdGF0ZVRyYW5zaXRpb24oc3cuc3RhdGUpOwor
ICAgICAgICB9KSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKworICAg
IGZ1bmN0aW9uIGNoZWNrU3RhdGVUcmFuc2l0aW9uKG5ld1N0YXRlKSB7CisgICAgICAgIHN3aXRj
aCAoY3VycmVudFN0YXRlKSB7CisgICAgICAgIGNhc2UgJ3Rlc3QtaXMtc3RhcnRpbmcnOgorICAg
ICAgICAgICAgYnJlYWs7IC8vIGFueXRoaW5nIGdvZXMKKyAgICAgICAgY2FzZSAnaW5zdGFsbGlu
Zyc6CisgICAgICAgICAgICBhc3NlcnRfaW5fYXJyYXkobmV3U3RhdGUsIFsnaW5zdGFsbGVkJywg
J3JlZHVuZGFudCddKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdpbnN0YWxs
ZWQnOgorICAgICAgICAgICAgYXNzZXJ0X2luX2FycmF5KG5ld1N0YXRlLCBbJ2FjdGl2YXRpbmcn
LCAncmVkdW5kYW50J10pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ2FjdGl2
YXRpbmcnOgorICAgICAgICAgICAgYXNzZXJ0X2luX2FycmF5KG5ld1N0YXRlLCBbJ2FjdGl2YXRl
ZCcsICdyZWR1bmRhbnQnXSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnYWN0
aXZhdGVkJzoKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3U3RhdGUsICdyZWR1bmRhbnQn
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdyZWR1bmRhbnQnOgorICAgICAg
ICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnYSBTZXJ2aWNlV29ya2VyIHNob3VsZCBub3QgdHJhbnNp
dGlvbiBvdXQgb2YgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgInJlZHVu
ZGFudCIgc3RhdGUnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgnc2hvdWxkIG5vdCB0cmFuc2l0aW9uIGludG8gdW5r
bm93biBzdGF0ZSAiJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N0YXRlICsg
JyInKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGN1cnJlbnRTdGF0
ZSA9IG5ld1N0YXRlOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU3RhdGVDaGFuZ2UoZXhwZWN0
ZWRUYXJnZXQpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBTZXJ2aWNlV29ya2VyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ3RoZSB0YXJnZXQgb2YgdGhlIHN0YXRlY2hhbmdlIGV2ZW50
IHNob3VsZCBiZSBhICcgKworICAgICAgICAgICAgICAgICAgICAgICAgJ1NlcnZpY2VXb3JrZXIu
Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LnRhcmdldCwgZXhwZWN0ZWRUYXJn
ZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgdGFyZ2V0IG9mIHRoZSBzdGF0ZWNo
YW5nZSBldmVudCBzaG91bGQgYmUgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUg
aW5zdGFsbGluZyBTZXJ2aWNlV29ya2VyJyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2
ZW50LnR5cGUsICdzdGF0ZWNoYW5nZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUg
dHlwZSBvZiB0aGUgZXZlbnQgc2hvdWxkIGJlICJzdGF0ZWNoYW5nZSIuJyk7CisKKyAgICAgICAg
ICAgIGNoZWNrU3RhdGVUcmFuc2l0aW9uKGV2ZW50LnRhcmdldC5zdGF0ZSk7CisKKyAgICAgICAg
ICAgIGlmIChldmVudC50YXJnZXQuc3RhdGUgPT0gJ2FjdGl2YXRlZCcpCisgICAgICAgICAgICAg
ICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAg
IH07CisgICAgfQorfSgpKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvc3luY2VkLXN0YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9zeW5jZWQtc3Rh
dGUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGE5YjY2NTVjYjA2NjBhNzhhMjdjNTIzNTkxYzQ5
NTNkM2I3N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3luY2VkLXN0
YXRlLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw5MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+
U2VydmljZVdvcmtlcjogd29ya2VyIG9iamVjdHMgaGF2ZSBzeW5jZWQgc3RhdGU8L3RpdGxlPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisvLyBUZXN0cyB0aGF0IFNlcnZpY2VXb3JrZXIgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHNh
bWUgU2VydmljZSBXb3JrZXIKKy8vIGVudGl0eSBoYXZlIHRoZSBzYW1lIHN0YXRlLiBKUy1sZXZl
bCBlcXVhbGl0eSBpcyBub3cgcmVxdWlyZWQgYWNjb3JkaW5nIHRvCisvLyB0aGUgc3BlYy4KKyd1
c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gbmV4dENoYW5nZSh3b3JrZXIpIHsKKyAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgd29ya2VyLmFkZEV2
ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgZnVuY3Rpb24gaGFuZGxlcihldmVudCkgeworICAg
ICAgICAgIHRyeSB7CisgICAgICAgICAgICB3b3JrZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3Rh
dGVjaGFuZ2UnLCBoYW5kbGVyKTsKKyAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuY3VycmVudFRh
cmdldC5zdGF0ZSk7CisgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CisgICAgICAgICAgICByZWpl
Y3QoZXJyKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworfQorCitwcm9taXNl
X3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc3luY2VkLXN0
YXRlJzsKKyAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9lbXB0eS13b3JrZXIuanMnOworICAg
IHZhciByZWdpc3RyYXRpb24sIHdvcmtlcjsKKworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgd29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisKKyAgICAgICAgICB0LmFkZF9jbGVhbnVwKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICByLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgICAgIH0p
OworCisgICAgICAgICAgcmV0dXJuIG5leHRDaGFuZ2Uod29ya2VyKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhzdGF0
ZSwgJ2luc3RhbGxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3JpZ2luYWwgU1cgc2hv
dWxkIGJlIGluc3RhbGxlZCcpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9u
Lmluc3RhbGxpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW4gaW5zdGFsbGVk
LCAuaW5zdGFsbGluZyBzaG91bGQgYmUgbnVsbCcpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLndhaXRpbmcsIHdvcmtlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICdp
biBpbnN0YWxsZWQsIC53YWl0aW5nIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgJyArCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICdvcmlnaW5hbCB3b3JrZXInKTsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLnN0YXRlLCAnaW5zdGFsbGVkJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdpbiBpbnN0YWxsZWQsIC53YWl0aW5nIHNob3VsZCBiZSBpbnN0YWxs
ZWQnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUsIG51bGws
CisgICAgICAgICAgICAgICAgICAgICAgICAnaW4gaW5zdGFsbGVkLCAuYWN0aXZlIHNob3VsZCBi
ZSBudWxsJyk7CisKKyAgICAgICAgICByZXR1cm4gbmV4dENoYW5nZSh3b3JrZXIpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oc3RhdGUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHN0YXRlLCAnYWN0aXZhdGluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3JpZ2lu
YWwgU1cgc2hvdWxkIGJlIGFjdGl2YXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2lu
IGFjdGl2YXRpbmcsIC5pbnN0YWxsaW5nIHNob3VsZCBiZSBudWxsJyk7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdpbiBhY3RpdmF0aW5nLCAud2FpdGluZyBzaG91bGQgYmUgbnVsbCcpOworICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZSwgd29ya2VyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ2luIGFjdGl2YXRpbmcsIC5hY3RpdmUgc2hvdWxkIGJlIGVxdWFsIHRv
IHRoZSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdpbmFsIHdvcmtlcicpOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoCisgICAgICAgICAgICAgIHJlZ2lzdHJhdGlvbi5hY3Rp
dmUuc3RhdGUsICdhY3RpdmF0aW5nJywKKyAgICAgICAgICAgICAgJ2luIGFjdGl2YXRpbmcsIC5h
Y3RpdmUgc2hvdWxkIGJlIGFjdGl2YXRpbmcnKTsKKworICAgICAgICAgIHJldHVybiBuZXh0Q2hh
bmdlKHdvcmtlcik7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihzdGF0ZSkgewor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoc3RhdGUsICdhY3RpdmF0ZWQnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ29yaWdpbmFsIFNXIHNob3VsZCBiZSBhY3RpdmF0ZWQnKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ2luIGFjdGl2YXRlZCwgLmluc3RhbGxpbmcgc2hvdWxkIGJlIG51bGwn
KTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ2luIGFjdGl2YXRlZCwgLndhaXRpbmcgc2hvdWxkIGJl
IG51bGwnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUsIHdv
cmtlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbiBhY3RpdmF0ZWQsIC5hY3RpdmUgc2hv
dWxkIGJlIGVxdWFsIHRvIHRoZSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yaWdp
bmFsIHdvcmtlcicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2
ZS5zdGF0ZSwgJ2FjdGl2YXRlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW4gYWN0aXZh
dGVkIC5hY3RpdmUgc2hvdWxkIGJlIGFjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmdldFJlZ2lzdHJhdGlvbihzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlv
bihyKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyLCByZWdpc3RyYXRpb24sICdnZXRSZWdp
c3RyYXRpb24gc2hvdWxkIHJldHVybiB0aGUgJyArCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdzYW1lIG9iamVjdCcpOworICAgICAgICB9KTsKKyAgfSwgJ3dvcmtl
ciBvYmplY3RzIGZvciB0aGUgc2FtZSBlbnRpdHkgaGF2ZSB0aGUgc2FtZSBzdGF0ZScpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bmNvbnRyb2xsZWQtcGFnZS5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0cHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hOTUyM2E1NGNkY2UyN2NjZGRiNTg2MDEyMTEwMWNkZDFiZGI1MGNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5jb250cm9sbGVkLXBhZ2UuaHR0
cHMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5TZXJ2aWNl
IFdvcmtlcjogUmVnaXN0cmF0aW9uPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxw
ZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gZmV0Y2hfdXJsKHVybCkg
eworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICB2YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgcmVxdWVzdC5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICBpZiAocmVx
dWVzdC5zdGF0dXMgPT0gMjAwKQorICAgICAgICAgICAgcmVzb2x2ZShyZXF1ZXN0LnJlc3BvbnNl
KTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICByZWplY3QoRXJyb3IocmVxdWVzdC5zdGF0
dXNUZXh0KSk7CisgICAgICAgIH0pOworICAgICAgcmVxdWVzdC5vcGVuKCdHRVQnLCB1cmwpOwor
ICAgICAgcmVxdWVzdC5zZW5kKCk7CisgICAgfSk7Cit9Cit2YXIgd29ya2VyID0gJ3Jlc291cmNl
cy9mYWlsLW9uLWZldGNoLXdvcmtlci5qcyc7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgewor
ICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5jb250cm9sbGVkLXBhZ2UvJzsKKyAg
ICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXIsIHNjb3Bl
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVnKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHJlZy5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gZmV0Y2hfdXJsKCdyZXNvdXJj
ZXMvc2ltcGxlLnR4dCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24odGV4dCkg
eworICAgICAgICAgIGFzc2VydF9lcXVhbHModGV4dCwgJ2Egc2ltcGxlIHRleHQgZmlsZVxuJyk7
CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godC5zdGVwX2Z1bmMoZnVuY3Rpb24ocmVhc29uKSB7
CisgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChyZWFzb24ubWVzc2FnZSk7CisgICAgICAgIH0p
KTsKKyAgfSwgJ0ZldGNoIGV2ZW50cyBzaG91bGQgbm90IGdvIHRocm91Z2ggdW5jb250cm9sbGVk
IHBhZ2UuJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVn
aXN0ZXItY29udHJvbGxlci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci1jb250cm9sbGVyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNGNmZjcyMDBlNzFhN2FkMTU3
Zjk3ZjYwZTBiY2E0NTY5MzQ4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItY29udHJvbGxlci5odHRwcy5odG1sCkBAIC0wLDAgKzEsMTA4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgordmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL3NpbXBsZS1pbnRlcmNl
cHQtd29ya2VyLmpzJzsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3Bl
ID0KKyAgICAgICAgJ3Jlc291cmNlcy91bnJlZ2lzdGVyLWNvbnRyb2xsZXItcGFnZS5odG1sP2xv
YWQtYmVmb3JlLXVucmVnaXN0ZXInOworICAgIHZhciBmcmFtZV93aW5kb3c7CisgICAgdmFyIGNv
bnRyb2xsZXI7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKyAgICB2YXIgZnJhbWU7CisKKyAgICBz
ZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29w
ZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSBy
OworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3Rp
dmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAg
IHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbihmKSB7CisgICAgICAgICAgZnJhbWUgPSBmOworICAgICAgICAgIGZyYW1lX3dpbmRvdyA9
IGZyYW1lLmNvbnRlbnRXaW5kb3c7CisgICAgICAgICAgY29udHJvbGxlciA9IGZyYW1lX3dpbmRv
dy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOworICAgICAgICAgIGFzc2VydF90
cnVlKGNvbnRyb2xsZXIgaW5zdGFuY2VvZiBmcmFtZV93aW5kb3cuU2VydmljZVdvcmtlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQgc2hvdWxkIGxvYWQgd2l0aCBhIGNvbnRyb2xs
ZXInKTsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZnJhbWVfd2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBjb250cm9sbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Vu
cmVnaXN0cmF0aW9uIHNob3VsZCBub3QgbW9kaWZ5IGNvbnRyb2xsZXInKTsKKyAgICAgICAgICBy
ZXR1cm4gZnJhbWVfd2luZG93LmZldGNoX3VybCgnc2ltcGxlLnR4dCcpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlc3BvbnNlLCAnaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXInLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ2NvbnRyb2xsZXIgc2hvdWxkIGludGVyY2VwdCByZXF1ZXN0cycpOworICAg
ICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KQor
ICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVW5yZWdpc3RlciBk
b2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgY29udHJvbGxlcicpOworCithc3luY190ZXN0KGZ1bmN0
aW9uKHQpIHsKKyAgICB2YXIgc2NvcGUgPQorICAgICAgICAncmVzb3VyY2VzL3VucmVnaXN0ZXIt
Y29udHJvbGxlci1wYWdlLmh0bWw/bG9hZC1hZnRlci11bnJlZ2lzdGVyJzsKKyAgICB2YXIgcmVn
aXN0cmF0aW9uOworICAgIHZhciBmcmFtZTsKKworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0
ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rp
b24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdh
aXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51
bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAg
ICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1lID0gZjsKKyAgICAgICAgICB2YXIgZnJhbWVf
d2luZG93ID0gZnJhbWUuY29udGVudFdpbmRvdzsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZy
YW1lX3dpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLCBudWxsLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ2RvY3VtZW50IHNob3VsZCBub3QgaGF2ZSBhIGNvbnRyb2xs
ZXInKTsKKyAgICAgICAgICByZXR1cm4gZnJhbWVfd2luZG93LmZldGNoX3VybCgnc2ltcGxlLnR4
dCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLCAnYSBzaW1wbGUgdGV4dCBmaWxlXG4nLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ3JlcXVlc3RzIHNob3VsZCBub3QgYmUgaW50ZXJjZXB0ZWQn
KTsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICB0LmRvbmUoKTsKKyAgICAg
ICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1VucmVn
aXN0ZXIgcHJldmVudHMgY29udHJvbCBvZiBzdWJzZXF1ZW50IG5hdmlnYXRpb25zJyk7CisKK2Fz
eW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9CisgICAgICAgICdyZXNvdXJj
ZXMvc2NvcGUvbm8tbmV3LWNvbnRyb2xsZWUtZXZlbi1pZi1yZWdpc3RyYXRpb24taXMtc3RpbGwt
dXNlZCc7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKworICAgIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVu
Y3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJu
IHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1l
KHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAg
ICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAg
ICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
Y29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAnZG9jdW1lbnQgc2hvdWxkIG5vdCBoYXZlIGEgY29udHJvbGxlcicpOworICAg
ICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KQor
ICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVW5yZWdpc3RlciBw
cmV2ZW50cyBuZXcgY29udHJvbGxlZSBldmVuIGlmIHJlZ2lzdHJhdGlvbiBpcyBzdGlsbCBpbiB1
c2UnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rl
ci10aGVuLXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2NyaXB0Lmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzg1NDMwYzJkOGU2Yzg3NWExZGJiYzNmZjE0YzgwNTAwZjA0OWEzOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXItdGhlbi1yZWdpc3Rlci1uZXctc2Ny
aXB0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIg
d29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJzsKKworYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bnJlZ2lzdGVy
LXRoZW4tcmVnaXN0ZXItbmV3LXNjcmlwdC10aGF0LWV4aXN0cyc7CisgICAgdmFyIG5ld193b3Jr
ZXJfdXJsID0gd29ya2VyX3VybCArICc/bmV3JzsKKyAgICB2YXIgaWZyYW1lOworICAgIHZhciBy
ZWdpc3RyYXRpb247CisgICAgdmFyIG5ld19yZWdpc3RyYXRpb247CisKKyAgICBzZXJ2aWNlX3dv
cmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAg
ICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiB3
aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFt
ZSkgeworICAgICAgICAgIGlmcmFtZSA9IGZyYW1lOworICAgICAgICAgIHJldHVybiByZWdpc3Ry
YXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKG5ld193
b3JrZXJfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHNjb3BlOiBzY29wZSB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KHIpIHsKKyAgICAgICAgICBuZXdfcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5vcm1hbGl6ZVVSTChuZXdfd29ya2VyX3VybCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRpb24uaW5zdGFsbGluZycpOworICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAnYmVmb3JlIGFjdGl2YXRlZCByZWdpc3RyYXRpb24ud2FpdGluZycp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkws
IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdiZWZv
cmUgYWN0aXZhdGVkIHJlZ2lzdHJhdGlvbi5hY3RpdmUnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1
YWxzKG5ld19yZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsCisgICAgICAgICAgICAg
ICAgICAgICAgICBub3JtYWxpemVVUkwobmV3X3dvcmtlcl91cmwpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ2JlZm9yZSBhY3RpdmF0ZWQgbmV3X3JlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nJyk7
CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfcmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGws
CisgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGFjdGl2YXRlZCBuZXdfcmVnaXN0cmF0
aW9uLndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld19yZWdpc3RyYXRpb24u
YWN0aXZlLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZVVSTCh3
b3JrZXJfdXJsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgYWN0aXZhdGVkIG5l
d19yZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAgICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAg
ICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywg
J2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhuZXdfcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsIG51bGwsCisg
ICAgICAgICAgICAgICAgICAgICAgICAnYWZ0ZXIgYWN0aXZhdGVkIG5ld19yZWdpc3RyYXRpb24u
aW5zdGFsbGluZycpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMobmV3X3JlZ2lzdHJhdGlvbi53
YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FmdGVyIGFjdGl2YXRlZCBu
ZXdfcmVnaXN0cmF0aW9uLndhaXRpbmcnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKG5ld19y
ZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
cm1hbGl6ZVVSTChuZXdfd29ya2VyX3VybCksCisgICAgICAgICAgICAgICAgICAgICAgICAnYWZ0
ZXIgYWN0aXZhdGVkIG5ld19yZWdpc3RyYXRpb24uYWN0aXZlJyk7CisgICAgICAgICAgcmV0dXJu
IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZy
YW1lKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscygKKyAgICAgICAgICAgICAgZnJhbWUuY29u
dGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyLnNjcmlwdFVSTCwK
KyAgICAgICAgICAgICAgbm9ybWFsaXplVVJMKG5ld193b3JrZXJfdXJsKSwKKyAgICAgICAgICAg
ICAgJ3RoZSBuZXcgd29ya2VyIHNob3VsZCBjb250cm9sIGEgbmV3IGRvY3VtZW50Jyk7CisgICAg
ICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJl
Z2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9u
KHQpKTsKK30sICdSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHdoaWxlIGFuIHVucmVnaXN0
ZXJlZCByZWdpc3RyYXRpb24gaXMgaW4gdXNlJyk7CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkg
eworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdW5yZWdpc3Rlci10aGVuLXJlZ2lz
dGVyLW5ldy1zY3JpcHQtdGhhdC00MDRzJzsKKyAgICB2YXIgaWZyYW1lOworICAgIHZhciByZWdp
c3RyYXRpb247CisKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0
LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAg
ICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCBy
Lmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKCkgeworICAgICAgICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGlmcmFtZSA9IGZyYW1l
OworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9
KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIHByb21pc2UgPSBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigndGhpcy13aWxsLTQwNCcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHNjb3BlOiBz
Y29wZSB9KTsKKyAgICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHBy
b21pc2U7CisgICAgICAgIH0pCisgICAgICAudGhlbigKKyAgICAgICAgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgncmVnaXN0ZXIgc2hvdWxkIHJlamVjdCB0aGUgcHJv
bWlzZScpOworICAgICAgICB9LAorICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1
cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
ZnJhbWUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2
aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQgc2hvdWxkIG5vdCBsb2Fk
IHdpdGggYSBjb250cm9sbGVyJyk7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlv
bih0KSk7Cit9LCAnUmVnaXN0ZXJpbmcgYSBuZXcgc2NyaXB0IFVSTCB0aGF0IDQwNHMgZG9lcyBu
b3QgcmVzdXJyZWN0IGFuICcgKworICAgICAgICd1bnJlZ2lzdGVyZWQgcmVnaXN0cmF0aW9uJyk7
CisKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMv
c2NvcGUvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLXJlamVjdC1pbnN0YWxsLXdvcmtlcic7Cisg
ICAgdmFyIGlmcmFtZTsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOworCisgICAgc2VydmljZV93b3Jr
ZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAgICAu
dGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAg
ICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0
aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUp
IHsKKyAgICAgICAgICBpZnJhbWUgPSBmcmFtZTsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0
aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgIHZhciBwcm9taXNlID0gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
CisgICAgICAgICAgICAgICdyZXNvdXJjZXMvcmVqZWN0LWluc3RhbGwtd29ya2VyLmpzJywgeyBz
Y29wZTogc2NvcGUgfSk7CisgICAgICAgICAgaWZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJl
dHVybiBwcm9taXNlOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAg
ICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRl
KHQsIHIuaW5zdGFsbGluZywgJ3JlZHVuZGFudCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1lKSB7CisgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhmcmFtZS5jb250ZW50V2luZG93Lm5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xs
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2RvY3VtZW50IHNob3VsZCBub3QgbG9hZCB3aXRoIGEgY29udHJvbGxlcicpOworICAgICAg
ICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0
KSk7CisgIH0sICdSZWdpc3RlcmluZyBhIG5ldyBzY3JpcHQgVVJMIHRoYXQgZmFpbHMgdG8gaW5z
dGFsbCBkb2VzIG5vdCByZXN1cnJlY3QgJyArCisgICAgICAgJ2FuIHVucmVnaXN0ZXJlZCByZWdp
c3RyYXRpb24nKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5y
ZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJl
Z2lzdGVyLXRoZW4tcmVnaXN0ZXIuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzBhMGFlY2YzZjU2
MmE1NmVkZjdmZjY1YWNiOWZjZDY3NWNkZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvdW5yZWdpc3Rlci10aGVuLXJlZ2lzdGVyLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwx
NjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBlcnMuc3Vi
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZW1w
dHktd29ya2VyLmpzJzsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3Bl
ID0gJ3Jlc291cmNlcy9zY29wZS9yZS1yZWdpc3Rlci1yZXNvbHZlcy10by1uZXctdmFsdWUnOwor
ICAgIHZhciByZWdpc3RyYXRpb247CisKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2Fu
ZF9yZWdpc3Rlcih0LCB3b3JrZXJfdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHIp
IHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVybiB3YWl0X2Zv
cl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAg
IC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb24udW5yZWdp
c3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAg
cmV0dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlcl91cmwsIHsgc2Nv
cGU6IHNjb3BlIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24obmV3X3JlZ2lz
dHJhdGlvbikgeworICAgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHJlZ2lzdHJhdGlvbiwgbmV3
X3JlZ2lzdHJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVnaXN0ZXIgc2hv
dWxkIHJlc29sdmUgdG8gYSBuZXcgdmFsdWUnKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91
bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaCh1
bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1VucmVnaXN0ZXIgdGhlbiByZWdpc3RlciBy
ZXNvbHZlcyB0byBhIG5ldyB2YWx1ZScpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3JlLXJlZ2lzdGVyLXdoaWxlLW9sZC1yZWdp
c3RyYXRpb24taW4tdXNlJzsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOworCisgICAgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2VyX3VybCwgc2NvcGUpCisgICAg
ICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7
CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4g
d2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJh
bWUpIHsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7IHNjb3BlOiBzY29wZSB9KTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKG5ld19yZWdpc3RyYXRpb24pIHsKKyAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbiwgbmV3X3JlZ2lzdHJhdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICduZXcgcmVnaXN0cmF0aW9uIHNob3VsZCByZXNvbHZlIHRv
IHRoZSBzYW1lIHJlZ2lzdHJhdGlvbicpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVn
aXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVh
Y2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnVW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVyIHJlc29s
dmVzIHRvIHRoZSBvcmlnaW5hbCB2YWx1ZSBpZiB0aGUgJyArCisgICAgICAgICAncmVnaXN0cmF0
aW9uIGlzIGluIHVzZS4nKTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNj
b3BlID0gJ3Jlc291cmNlcy9zY29wZS9jb21wbGV0ZS11bnJlZ2lzdHJhdGlvbi1mb2xsb3dlZC1i
eS0nICsKKyAgICAgICAgICAgICAgICAncmVsb2FkaW5nLWNvbnRyb2xsZWUtaWZyYW1lJzsKKyAg
ICB2YXIgcmVnaXN0cmF0aW9uOworICAgIHZhciBmcmFtZTsKKyAgICB2YXIgc2VydmljZV93b3Jr
ZXI7CisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29ya2Vy
X3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVnaXN0
cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAg
LnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1lID0gZjsKKyAgICAgICAgICByZXR1
cm4gcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKCkgeworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
KSB7CisgICAgICAgICAgICAgIGZyYW1lLm9ubG9hZCA9IHJlc29sdmU7CisgICAgICAgICAgICAg
IGZyYW1lLmNvbnRlbnRXaW5kb3cubG9jYXRpb24ucmVsb2FkKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgIHZhciBjID0g
ZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5jb250cm9sbGVyOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoYywgbnVsbCwgJ2EgcGFnZSBhZnRlciB1bnJlZ2lzdHJh
dGlvbiBzaG91bGQgbm90IGJlICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2NvbnRyb2xsZWQgYnkgc2VydmljZSB3b3JrZXInKTsKKyAgICAgICAgICByZXR1cm4gbmF2aWdh
dG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKTsKKyAgICAgICAgfSkKKyAg
ICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHIsIHVuZGVm
aW5lZCwgJ2dldFJlZ2lzdHJhdGlvbiBzaG91bGQgcmV0dXJuICcgKworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAndW5kZWZpbmVkIGFmdGVyIHVucmVnaXN0cmF0aW9uJyk7
CisgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlvbih0KSk7Cit9LCAn
UmVsb2FkaW5nIHRoZSBsYXN0IGNvbnRyb2xsZWQgaWZyYW1lIGFmdGVyIHVucmVnaXN0cmF0aW9u
IHNob3VsZCBlbnN1cmUgJyArCisgICAndGhlIGRlbGV0aW9uIG9mIHRoZSByZWdpc3RyYXRpb24n
KTsKKworYXN5bmNfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNl
cy9zY29wZS9yZS1yZWdpc3Rlci1kb2VzLW5vdC1hZmZlY3QtZXhpc3RpbmctY29udHJvbGxlZSc7
CisgICAgdmFyIGlmcmFtZTsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOworICAgIHZhciBjb250cm9s
bGVyOworCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgd29y
a2VyX3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVn
aXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0
YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAg
ICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUpIHsKKyAgICAgICAgICBpZnJhbWUgPSBmcmFtZTsKKyAg
ICAgICAgICBjb250cm9sbGVyID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIuY29udHJvbGxlcjsKKyAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVucmVn
aXN0ZXIoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAg
IHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3b3JrZXJfdXJsLCB7IHNj
b3BlOiBzY29wZSB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJh
dGlvbikgeworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmluc3RhbGxpbmcs
IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGluZyB2ZXJzaW9uIGlzIG51
bGwnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxs
LCAnd2FpdGluZyB2ZXJzaW9uIGlzIG51bGwnKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKAor
ICAgICAgICAgICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5uYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5jb250cm9sbGVyLAorICAgICAgICAgICAgICBjb250cm9sbGVyLAorICAgICAgICAgICAgICAn
dGhlIHdvcmtlciBmcm9tIHRoZSBmaXJzdCByZWdpc3RyYXRpb24gaXMgdGhlIGNvbnRyb2xsZXIn
KTsKKyAgICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgc2VydmljZV93b3JrZXJf
dW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2go
dW5yZWFjaGVkX3JlamVjdGlvbih0KSk7CisgIH0sICdVbnJlZ2lzdGVyIHRoZW4gcmVnaXN0ZXIg
ZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGNvbnRyb2xsZWUnKTsKKworYXN5bmNfdGVzdChmdW5j
dGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS9yZXN1cnJlY3Rpb24n
OworICAgIHZhciBpZnJhbWU7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKworICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAg
ICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAg
ICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcp
OworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJu
IHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZy
YW1lKSB7CisgICAgICAgICAgaWZyYW1lID0gZnJhbWU7CisgICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29y
a2VyX3VybCwgeyBzY29wZTogc2NvcGUgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5j
dGlvbigpIHsKKyAgICAgICAgICBpZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgcmV0dXJuIHdp
dGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGZyYW1l
KSB7CisgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoCisgICAgICAgICAgICAgIGZyYW1lLmNv
bnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlciwgbnVsbCwKKyAg
ICAgICAgICAgICAgJ2RvY3VtZW50IHNob3VsZCBoYXZlIGEgY29udHJvbGxlcicpOworICAgICAg
ICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9y
ZWplY3Rpb24odCkpOworICB9LCAnVW5yZWdpc3RlciB0aGVuIHJlZ2lzdGVyIHJlc3VycmVjdHMg
dGhlIHJlZ2lzdHJhdGlvbicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci91bnJlZ2lzdGVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91bnJlZ2lzdGVy
Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkyYWVjYjIxYTg3NTgxNGUzYThmYjg5ZTY0MDY5OTg5
YjllMzFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXIu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorYXN5bmNfdGVz
dChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zY29wZS91bnJlZ2lz
dGVyLXR3aWNlJzsKKyAgICB2YXIgcmVnaXN0cmF0aW9uOworICAgIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKCdyZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7c2NvcGU6IHNjb3BlfSkKKyAgICAgIC50aGVuKGZ1
bmN0aW9uKHIpIHsKKyAgICAgICAgICByZWdpc3RyYXRpb24gPSByOworICAgICAgICAgIHJldHVy
biByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbih2YWx1ZSkgeworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHModmFsdWUsIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VucmVnaXN0
ZXJpbmcgdHdpY2Ugc2hvdWxkIHJlc29sdmUgd2l0aCBmYWxzZScpOworICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hlZF9yZWplY3Rpb24odCkpOwor
ICB9LCAnVW5yZWdpc3RlciB0d2ljZScpOworCithc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL3Njb3BlL3N1Y2Nlc3NmdWwtdW5yZWdpc3Rlci8nOwor
ICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCdyZXNvdXJjZXMvZW1wdHktd29y
a2VyLmpzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c2NvcGU6IHNj
b3BlfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJl
dHVybiByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHZhbHVlLCB0cnVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ3VucmVnaXN0cmF0aW9uIHNob3VsZCByZXNvbHZlIHdp
dGggdHJ1ZScpOworICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KQorICAgICAgLmNhdGNo
KHVucmVhY2hlZF9yZWplY3Rpb24odCkpOworICB9LCAnUmVnaXN0ZXIgdGhlbiB1bnJlZ2lzdGVy
Jyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRl
ci1uYXZpZ2F0aW9uLWZldGNoLWV2ZW50Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91
cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1mZXRjaC1ldmVudC5odHRwcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA0Y2Q5OTYwZmM2M2IwZmFkM2ZmYzMzMjRjNTRmNzVlNzVjMDBmNDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItbmF2aWdhdGlvbi1mZXRjaC1ldmVu
dC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNl
cnZpY2UgV29ya2VyOiBVcGRhdGUgc2hvdWxkIGJlIHRyaWdnZXJlZCBhZnRlciBhIG5hdmlnYXRp
b24gZmV0Y2ggZXZlbnQuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgewor
ICAgIHZhciBzY3JpcHQgPSAncmVzb3VyY2VzL3VwZGF0ZS1ub2Nvb2tpZS13b3JrZXIucHknOwor
ICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvc2NvcGUvdXBkYXRlJzsKKyAgICB2YXIgcGFyc2Vk
X3VybCA9IG5vcm1hbGl6ZVVSTChzY3JpcHQpOworICAgIHZhciByZWdpc3RyYXRpb247CisgICAg
dmFyIGZyYW1lOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3Jl
Z2lzdGVyKHQsIHBhcnNlZF91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgewor
ICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0p
CisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAvLyBOYXZpZ2F0aW9uIHRvIHRo
ZSBpZnJhbWUuCisgICAgICAgICAgcmV0dXJuIHdpdGhfaWZyYW1lKHNjb3BlKTsKKyAgICAgICAg
fSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgICBmcmFtZSA9IGY7CisgICAg
ICAgICAgLy8gTmF2aWdhdGlvbiBmZXRjaCBldmVudCBzaG91bGQgdHJpZ2dlciB1cGRhdGUuCisg
ICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3RyYXRpb24pOworICAgICAg
IH0pCisgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7
CisgICAgICAgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwg
c2NvcGUpOworICAgICAgIH0pCisgIH0sICdVcGRhdGUgc2hvdWxkIGJlIHRyaWdnZXJlZCBhZnRl
ciBhIG5hdmlnYXRpb24gZmV0Y2ggZXZlbnQuJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRlci1vbmVkYXkuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3VwZGF0ZS1hZnRlci1vbmVkYXkuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWEz
YTIyZDgyNzMyMGNhY2Q0MDgwYmRhMzU0MWQwZWVhMjZmMTFlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sCkBAIC0wLDAg
KzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSAgVGhpcyB0ZXN0IHJlcXVpcmVzIGJyb3dz
ZXIgdG8gdHJlYXQgYWxsIHJlZ2lzdHJhdGlvbnMgYXJlIG9sZGVyIHRoYW4gMjQgaG91cnMuCisg
ICAgIFByZWZlcmVuY2UgJ2RvbS5zZXJ2aWNlV29ya2Vycy50ZXN0VXBkYXRlT3Zlck9uZURheScg
c2hvdWxkIGJlIGVuYWJsZWQgZHVyaW5nCisgICAgIHRoZSBleGVjdXRpb24gb2YgdGhlIHRlc3Qg
IC0tPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBGdW5jdGlvbmFsIGV2ZW50cyBzaG91bGQgdHJp
Z2dlciB1cGRhdGUgaWYgbGFzdCB1cGRhdGUgdGltZSBpcyBvdmVyIDI0IGhvdXJzPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY3JpcHQgPSAncmVzb3Vy
Y2VzL3VwZGF0ZS1ub2Nvb2tpZS13b3JrZXIucHknOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJj
ZXMvdXBkYXRlL3VwZGF0ZS1hZnRlci1vbmVkYXkuaHR0cHMuaHRtbCc7CisgICAgdmFyIGV4cGVj
dGVkX3VybCA9IG5vcm1hbGl6ZVVSTChzY3JpcHQpOworICAgIHZhciByZWdpc3RyYXRpb247Cisg
ICAgdmFyIGZyYW1lOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIGV4cGVjdGVkX3VybCwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihy
KSB7CisgICAgICAgICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgICByZXR1cm4gd2FpdF9m
b3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmcsICdhY3RpdmF0ZWQnKTsKKyAgICAg
ICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJhbWUoc2NvcGUp
OyB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZikgeworICAgICAgICAgIGZyYW1lID0gZjsKKyAg
ICAgICAgICByZXR1cm4gd2FpdF9mb3JfdXBkYXRlKHQsIHJlZ2lzdHJhdGlvbik7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ25ldyBpbnN0YWxsaW5nIHNob3VsZCBiZSBzZXQgYWZ0ZXIgdXBkYXRl
IHJlc29sdmVzLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLndhaXRp
bmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnd2FpdGluZyBzaG91bGQgc3RpbGwg
YmUgbnVsbCBhZnRlciB1cGRhdGUgcmVzb2x2ZXMuJyk7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0ZWRfdXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhpc3QgYWZ0ZXIgdXBkYXRlIGZv
dW5kLicpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24u
aW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgLy8gVHJpZ2dlciBhIG5vbi1uYXZpZ2F0aW9uIGZldGNoIGV2ZW50
CisgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRvdy5sb2FkX2ltYWdlKG5vcm1hbGl6ZVVSTCgn
cmVzb3VyY2VzL3VwZGF0ZS9kdW1teScpKTsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3JfdXBk
YXRlKHQsIHJlZ2lzdHJhdGlvbik7CisgICAgICAgfSkKKyAgICAgICAudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7CisgICAgICAgfSkKKyAgfSwgJ1Vw
ZGF0ZSBzaG91bGQgYmUgdHJpZ2dlcmVkIGFmdGVyIGEgZnVuY3Rpb25hbCBldmVudCB3aGVuIGxh
c3QgdXBkYXRlIHRpbWUgaXMgb3ZlciAyNCBob3VycycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2suaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTRj
NmVjNDAzYTk5NWU4YjFjZGU5ZWEyNDdiYzFiNmUzNGMwNGI4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWJ5dGVjaGVjay5odHRwcy5odG1sCkBAIC0wLDAgKzEs
NzIgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT48L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0aGFybmVzcy1oZWxwZXJzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCisvKgorICogQHBhcmFtIGJvbGVhbiBjb3JzCisgKiAgIERldGVybWluZSB3ZXRo
ZXIgdGhlIGltcG9ydGVkIHNjcmlwdCBzaG91bGQgYmUgYSBjcm9zcyBvcmlnaW4gc2NyaXB0Lgor
ICogQHBhcmFtIHN0cmluZyBtYWluCisgKiAgIERlY2lkZSB0aGUgY29udGVudCBvZiB0aGUgbWFp
biBzY3JpcHQsIHdoZXJlICdkZWZhdWx0JyBpcyBmb3IgY29uc3RhbnQKKyAqICAgY29udGVudCB3
aGlsZSAndGltZScgaXMgZm9yIHRpbWUtdmFyaWFudCBjb250ZW50LgorICogQHBhcmFtIHN0cmlu
ZyBpbXBvcnRlZAorICogICBEZWNpZGUgdGhlIGNvbnRlbnQgb2YgdGhlIGltcG9ydGVkIHNjcmlw
dCwgd2hlcmUgJ2RlZmF1bHQnIGlzIGZvciBjb25zdGFudAorICogICBjb250ZW50IHdoaWxlICd0
aW1lJyBpcyBmb3IgdGltZS12YXJpYW50IGNvbnRlbnQuCisgKi8KK2NvbnN0IHNldHRpbmdzID0g
W3tjb3JzOiBmYWxzZSwgbWFpbjogJ2RlZmF1bHQnLCBpbXBvcnRlZDogJ2RlZmF1bHQnfSwKKyAg
ICAgICAgICAgICAgICAgIHtjb3JzOiBmYWxzZSwgbWFpbjogJ2RlZmF1bHQnLCBpbXBvcnRlZDog
J3RpbWUnICAgfSwKKyAgICAgICAgICAgICAgICAgIHtjb3JzOiBmYWxzZSwgbWFpbjogJ3RpbWUn
LCAgICBpbXBvcnRlZDogJ2RlZmF1bHQnfSwKKyAgICAgICAgICAgICAgICAgIHtjb3JzOiBmYWxz
ZSwgbWFpbjogJ3RpbWUnLCAgICBpbXBvcnRlZDogJ3RpbWUnICAgfSwKKyAgICAgICAgICAgICAg
ICAgIHtjb3JzOiB0cnVlLCAgbWFpbjogJ2RlZmF1bHQnLCBpbXBvcnRlZDogJ2RlZmF1bHQnfSwK
KyAgICAgICAgICAgICAgICAgIHtjb3JzOiB0cnVlLCAgbWFpbjogJ2RlZmF1bHQnLCBpbXBvcnRl
ZDogJ3RpbWUnICAgfSwKKyAgICAgICAgICAgICAgICAgIHtjb3JzOiB0cnVlLCAgbWFpbjogJ3Rp
bWUnLCAgICBpbXBvcnRlZDogJ2RlZmF1bHQnfSwKKyAgICAgICAgICAgICAgICAgIHtjb3JzOiB0
cnVlLCAgbWFpbjogJ3RpbWUnLCAgICBpbXBvcnRlZDogJ3RpbWUnICAgfV07CisKK3NldHRpbmdz
LnJlZHVjZSgocCwgcykgPT4geworICByZXR1cm4gcC50aGVuKHByb21pc2VfdGVzdChmdW5jdGlv
bih0KSB7CisgICAgdmFyIHBhdGggPSAhcy5jb3JzID8gJycKKyAgICAgICAgICAgICAgICAgICAg
ICAgOiAnaHR0cHM6Ly93d3cxLndlYi1wbGF0Zm9ybS50ZXN0Ojg0NDMvJyArCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMv
JzsKKyAgICB2YXIgc2NyaXB0ID0gJ3Jlc291cmNlcy9ieXRlY2hlY2std29ya2VyLnB5JyArCisg
ICAgICAgICAgICAgICAgICc/bWFpbj0nICsgcy5tYWluICsKKyAgICAgICAgICAgICAgICAgJyZp
bXBvcnRlZD0nICsgcy5pbXBvcnRlZCArCisgICAgICAgICAgICAgICAgICcmcGF0aD0nICsgcGF0
aDsKKyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWwnOworCisgICAgdmFyIHN3
ciwgc3c7CisgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCisgICAgICAvLyBSZWdpc3RlciBh
IHNlcnZpY2Ugd29ya2VyLgorICAgICAgLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lz
dGVyX2FuZF9yZWdpc3Rlcih0LCBzY3JpcHQsIHNjb3BlKSkKKyAgICAgIC50aGVuKHIgPT4gc3dy
ID0gcikKKyAgICAgIC50aGVuKF8gPT4gd2FpdF9mb3JfdXBkYXRlKHQsIHN3cikpCisgICAgICAu
dGhlbih3ID0+IHN3ID0gdykKKyAgICAgIC50aGVuKF8gPT4gd2FpdF9mb3Jfc3RhdGUodCwgc3cs
ICdhY3RpdmF0ZWQnKSkKKyAgICAgIC50aGVuKF8gPT4gYXNzZXJ0X2FycmF5X2VxdWFscyhbc3dy
LmFjdGl2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dyLndhaXRp
bmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3ci5pbnN0YWxsaW5n
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3csIG51bGwsIG51bGxd
KSkKKworICAgICAgLy8gVXBkYXRlIHRoZSBzZXJ2aWNlIHdvcmtlciByZWdpc3RyYXRpb24uCisg
ICAgICAudGhlbihfID0+IHN3ci51cGRhdGUoKSkKKyAgICAgIC50aGVuKF8gPT4geworICAgICAg
ICAgLy8gSWYgdGhlcmUgc2hvdWxkIGJlIGEgbmV3IHNlcnZpY2Ugd29ya2VyLgorICAgICAgICAg
aWYgKHMubWFpbiA9PT0gJ3RpbWUnIHx8IHMuaW1wb3J0ZWQgPT09ICd0aW1lJykgeworICAgICAg
ICAgICByZXR1cm4gd2FpdF9mb3JfdXBkYXRlKHQsIHN3cik7CisgICAgICAgICB9CisgICAgICAg
ICAvLyBPdGhlcndpc2UsIG1ha2Ugc3VyZSB0aGVyZSBpcyBubyBuZXdseSBjcmVhdGVkIHNlcnZp
Y2Ugd29ya2VyLgorICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhbc3dyLmFjdGl2ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3ci53YWl0aW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3dyLmluc3RhbGxpbmddLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbc3csIG51bGwsIG51bGxdKTsKKyAgICAgIH0pCisKKyAgICAgIC8vIFVucmVnaXN0ZXIg
dGhlIHNlcnZpY2Ugd29ya2VyLgorICAgICAgLnRoZW4oXyA9PiBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKSk7CisgIH0sIGBUZXN0KGNvcnM6ICR7cy5jb3JzfSwg
bWFpbjogJHtzLm1haW59LCBpbXBvcnRlZDogJHtzLmltcG9ydGVkfSlgKSk7Cit9LCBQcm9taXNl
LnJlc29sdmUoKSk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
dXBkYXRlLXJlY292ZXJ5Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVj
b3ZlcnkuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjNkOTU1YjE0MmJmZjY3YzNkMmMyYTJkMTc0
Mjg4OGM2NjFjNjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRl
LXJlY292ZXJ5Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
dGl0bGU+U2VydmljZSBXb3JrZXI6IHJlY292ZXJ5IGJ5IG5hdmlnYXRpb24gdXBkYXRlPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdGhhcm5lc3MtaGVscGVycy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzY29wZSA9ICdyZXNvdXJj
ZXMvc2ltcGxlLnR4dCc7CisgICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL3VwZGF0ZS1y
ZWNvdmVyeS13b3JrZXIucHknOworICAgIHZhciBleHBlY3RlZF91cmwgPSBub3JtYWxpemVVUkwo
d29ya2VyX3VybCk7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsKKworICAgIGZ1bmN0aW9uIHdpdGhf
YmFkX2lmcmFtZSh1cmwpIHsKKyAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnaWZyYW1lJyk7CisKKyAgICAgICAgLy8gVGhlcmUgaXMgbm8gY3Jvc3MtYnJvd3NlciBldmVu
dCB0byBsaXN0ZW4gZm9yIHRvIGRldGVjdCBhbgorICAgICAgICAvLyBpZnJhbWUgdGhhdCBmYWls
cyB0byBsb2FkIGR1ZSB0byBhIGJhZCBpbnRlcmNlcHRpb24uICBVbmZvcnR1bmF0ZWx5CisgICAg
ICAgIC8vIHdlIGhhdmUgdG8gdXNlIGEgdGltZW91dC4KKyAgICAgICAgdmFyIHRpbWVvdXQgPSBz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSwgNTAwMCk7CisKKyAgICAgICAgLy8gSWYgd2UgZG8g
Z2V0IGEgbG9hZCBldmVudCwgdGhvdWdoLCB3ZSBrbm93IHNvbWV0aGluZyB3ZW50IHdyb25nLgor
ICAgICAgICBmcmFtZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOworICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwor
ICAgICAgICAgIHJlamVjdCgnZXhwZWN0ZWQgYmFkIGlmcmFtZSBzaG91bGQgbm90IGZpcmUgYSBs
b2FkIGV2ZW50IScpOworICAgICAgICB9KTsKKworICAgICAgICBmcmFtZS5zcmMgPSB1cmw7Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgICAgfSk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gd2l0aF91cGRhdGUodCkgeworICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICByZWdpc3RyYXRpb24uYWRk
RXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQnLCBmdW5jdGlvbiBvblVwZGF0ZSgpIHsKKyAgICAg
ICAgICByZWdpc3RyYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndXBkYXRlZm91bmQnLCBvblVw
ZGF0ZSk7CisgICAgICAgICAgd2FpdF9mb3Jfc3RhdGUodCwgcmVnaXN0cmF0aW9uLmluc3RhbGxp
bmcsICdhY3RpdmF0ZWQnKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgIH0pOworICAgIH0KKworICAgIHNl
cnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3Bl
KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7
CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgd2l0aF91cGRhdGUo
dCksCisgICAgICAgICAgICB3aXRoX2JhZF9pZnJhbWUoc2NvcGUpCisgICAgICAgICAgXSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gd2l0
aF9pZnJhbWUoc2NvcGUpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZnJhbWUp
IHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5zY3JpcHRVUkwsCisgICAgICAgICAgICAgICAgICAg
ICAgICBleHBlY3RlZF91cmwpOworICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAg
ICAgICAgfSkKKyAgICAgIC5jYXRjaCh1bnJlYWNoZWRfcmVqZWN0aW9uKHQpKTsKKyAgfSwgJ1Jl
Y292ZXIgZnJvbSBhIGJhZCBzZXJ2aWNlIHdvcmtlciBieSB1cGRhdGluZyBhZnRlciBhIGZhaWxl
ZCBuYXZpZ2F0aW9uLicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci91cGRhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS5odHRwcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY3MTdkNGQ3YWMyODljOGExOGIxNTAwZTIxNzk1ZmQxNmM1MzIxZTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUuaHR0cHMuaHRtbApAQCAt
MCwwICsxLDEyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IFJl
Z2lzdHJhdGlvbiB1cGRhdGUoKTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LWhlbHBlcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0LWhlbHBl
cnMuc3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHNjb3BlID0gJ3Jlc291cmNlcy9zaW1wbGUudHh0
JzsKKyAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvdXBkYXRlLXdvcmtlci5weSc7Cisg
ICAgdmFyIGV4cGVjdGVkX3VybCA9IG5vcm1hbGl6ZVVSTCh3b3JrZXJfdXJsKTsKKyAgICB2YXIg
cmVnaXN0cmF0aW9uOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5k
X3JlZ2lzdGVyKHQsIHdvcmtlcl91cmwsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24ocikg
eworICAgICAgICAgIHJlZ2lzdHJhdGlvbiA9IHI7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9y
X3N0YXRlKHQsIHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLCAnYWN0aXZhdGVkJyk7CisgICAgICAg
IH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Z2lzdHJhdGlvbi5pbnN0YWxsaW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2lu
c3RhbGxpbmcgc2hvdWxkIGJlIG51bGwgaW4gdGhlIGluaXRpYWwgc3RhdGUuJyk7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZywgbnVsbCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBudWxsIGluIHRoZSBpbml0aWFsIHN0YXRl
LicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRV
UkwsIGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxk
IGV4aXN0IGluIHRoZSBpbml0aWFsIHN0YXRlLicpOworICAgICAgICAgIC8vIEEgbmV3IHdvcmtl
ciAoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3JrZXIucHkpIHNob3VsZCBiZSBmb3VuZC4KKyAgICAg
ICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlzZSBzaG91bGQgcmVzb2x2ZSB3aGVuIGEgbmV3IHdv
cmtlciBzY3JpcHQgaXMKKyAgICAgICAgICAvLyBmZXRjaGVkIGFuZCBzdGFydHMgaW5zdGFsbGlu
Zy4KKyAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW3JlZ2lzdHJhdGlvbi51cGRhdGUoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRfZm9yX3VwZGF0ZSh0LCByZWdpc3Ry
YXRpb24pXSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nLnNjcmlwdFVSTCwgZXhwZWN0
ZWRfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ25ldyBpbnN0YWxsaW5nIHNob3VsZCBi
ZSBzZXQgYWZ0ZXIgdXBkYXRlIHJlc29sdmVzLicpOworICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cmVnaXN0cmF0aW9uLndhaXRpbmcsIG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAnd2Fp
dGluZyBzaG91bGQgc3RpbGwgYmUgbnVsbCBhZnRlciB1cGRhdGUgcmVzb2x2ZXMuJyk7CisgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uYWN0aXZlLnNjcmlwdFVSTCwgZXhwZWN0
ZWRfdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZSBzaG91bGQgc3RpbGwgZXhp
c3QgYWZ0ZXIgdXBkYXRlIGZvdW5kLicpOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0
ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWdpc3Ry
YXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdpbnN0YWxs
aW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGluc3RhbGxpbmcuJyk7CisgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWdpc3RyYXRpb24ud2FpdGluZy5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICd3YWl0aW5nIHNob3VsZCBiZSBzZXQgYWZ0ZXIgaW5zdGFs
bGluZy4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi5hY3RpdmUuc2Ny
aXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlIHNo
b3VsZCBzdGlsbCBleGlzdCBhZnRlciBpbnN0YWxsaW5nLicpOworICAgICAgICAgIHJldHVybiB3
YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24ud2FpdGluZywgJ2FjdGl2YXRlZCcpOworICAg
ICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICdpbnN0YWxsaW5nIHNob3VsZCBiZSBudWxsIGFmdGVyIGFjdGl2YXRlZC4nKTsKKyAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ3dhaXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZhdGVkLicpOwor
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4
cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICduZXcgd29ya2VyIHNob3VsZCBi
ZSBwcm9tb3RlZCB0byBhY3RpdmUuJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlv
bigpIHsKKyAgICAgICAgICAvLyBBIG5ldyB3b3JrZXIoZ2VuZXJhdGVkIGJ5IHVwZGF0ZS13b3Jr
ZXIucHkpIHNob3VsZCBiZSBmb3VuZC4KKyAgICAgICAgICAvLyBUaGUgcmV0dXJuZWQgcHJvbWlz
ZSBzaG91bGQgcmVqZWN0IGFzIHVwZGF0ZS13b3JrZXIucHkgc2V0cyB0aGUKKyAgICAgICAgICAv
LyBtaW1ldHlwZSB0byBhIGRpc2FsbG93ZWQgdmFsdWUgZm9yIHRoaXMgYXR0ZW1wdC4KKyAgICAg
ICAgICByZXR1cm4gcmVnaXN0cmF0aW9uLnVwZGF0ZSgpOworICAgICAgICB9KQorICAgICAgLnRo
ZW4oCisgICAgICAgIGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJ1cGRhdGUoKSBzaG91
bGQgcmVqZWN0LiIpOyB9LAorICAgICAgICBmdW5jdGlvbihlKSB7CisgICAgICAgICAgYXNzZXJ0
X3Rocm93cygnU2VjdXJpdHlFcnJvcicsIGZ1bmN0aW9uKCkgeyB0aHJvdyBlOyB9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ1VzaW5nIGEgZGlzYWxsb3dlZCBtaW1ldHlwZSBzaG91bGQgbWFr
ZSB1cGRhdGUoKSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9taXNlIHJlamVjdCB3
aXRoIGEgU2VjdXJpdHlFcnJvci4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlZ2lzdHJh
dGlvbi5hY3RpdmUuc2NyaXB0VVJMLCBleHBlY3RlZF91cmwsCisgICAgICAgICAgICAgICAgICAg
ICAgICAnYWN0aXZlIHNob3VsZCBzdGlsbCBleGlzdCBhZnRlciB1cGRhdGUgZmFpbHVyZS4nKTsK
KworICAgICAgICAgIC8vIEEgbmV3IHdvcmtlcihnZW5lcmF0ZWQgYnkgdXBkYXRlLXdvcmtlci5w
eSkgc2hvdWxkIGJlIGZvdW5kLgorICAgICAgICAgIC8vIFRoZSByZXR1cm5lZCBwcm9taXNlIHNo
b3VsZCByZWplY3QgYXMgdXBkYXRlLXdvcmtlci5weSByZXR1cm5zCisgICAgICAgICAgLy8gYSB3
b3JrZXIgc2NyaXB0IHdpdGggYSBzeW50YXggZXJyb3IuCisgICAgICAgICAgcmV0dXJuIHJlZ2lz
dHJhdGlvbi51cGRhdGUoKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKAorICAgICAgICBmdW5j
dGlvbigpIHsgYXNzZXJ0X3VucmVhY2hlZCgidXBkYXRlKCkgc2hvdWxkIHJlamVjdC4iKTsgfSwK
KyAgICAgICAgZnVuY3Rpb24oZSkgeworICAgICAgICAgIGFzc2VydF90aHJvd3Moe25hbWU6ICdU
eXBlRXJyb3InfSwgZnVuY3Rpb24gKCkgeyB0aHJvdyBlOyB9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ0Egc2NyaXB0IHN5bnRheCBlcnJvciBzaG91bGQgbWFrZSB1cGRhdGUoKSAnICsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdwcm9taXNlIHJlamVjdCB3aXRoIGEgVHlwZUVycm9yLicp
OworICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkws
IGV4cGVjdGVkX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0
aWxsIGV4aXN0IGFmdGVyIHVwZGF0ZSBmYWlsdXJlLicpOworCisgICAgICAgICAgLy8gQSBuZXcg
d29ya2VyKGdlbmVyYXRlZCBieSB1cGRhdGUtd29ya2VyLnB5KSBzaG91bGQgYmUgZm91bmQuCisg
ICAgICAgICAgLy8gVGhlIHJldHVybmVkIHByb21pc2Ugc2hvdWxkIG5vdCByZWplY3QsIGV2ZW4g
dGhvdWdoCisgICAgICAgICAgLy8gdXBkYXRlLXdvcmtlci5weSByZXR1cm5zIGEgd29ya2VyIHNj
cmlwdCB0aGF0IHRocm93cyBpbiB0aGUKKyAgICAgICAgICAvLyBpbnN0YWxsIGV2ZW50IGhhbmRs
ZXIuCisgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtyZWdpc3RyYXRpb24udXBkYXRlKCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X2Zvcl91cGRhdGUodCwgcmVnaXN0
cmF0aW9uKV0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZy5zY3JpcHRVUkwsIGV4cGVj
dGVkX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICduZXcgaW5zdGFsbGluZyBzaG91bGQg
YmUgc2V0IGFmdGVyIHVwZGF0ZSByZXNvbHZlcy4nKTsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHJlZ2lzdHJhdGlvbi53YWl0aW5nLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3dh
aXRpbmcgc2hvdWxkIGJlIG51bGwgYWZ0ZXIgYWN0aXZhdGVkLicpOworICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocmVnaXN0cmF0aW9uLmFjdGl2ZS5zY3JpcHRVUkwsIGV4cGVjdGVkX3VybCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUgc2hvdWxkIHN0aWxsIGV4aXN0IGFmdGVyIHVw
ZGF0ZSBmb3VuZC4nKTsKKworICAgICAgICAgIC8vIFdlIG5lZWQgdG8gaG9sZCBhIGNsaWVudCBh
bGl2ZSBzbyB0aGF0IHVucmVnaXN0ZXIoKSBiZWxvdyBkb2Vzbid0CisgICAgICAgICAgLy8gcmVt
b3ZlIHRoZSByZWdpc3RyYXRpb24gYmVmb3JlIHVwZGF0ZSgpIGhhcyBoYWQgYSBjaGFuY2UgdG8g
bG9vaworICAgICAgICAgIC8vIGF0IHRoZSBwZW5kaW5nIHVuaW5zdGFsbCBmbGFnLgorICAgICAg
ICAgIHJldHVybiB3aXRoX2lmcmFtZShzY29wZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihm
dW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIHQuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICByZXR1cm4gYXNzZXJ0X3Byb21pc2VfcmVqZWN0cygKKyAgICAgICAgICAgICAgUHJvbWlzZS5h
bGwoW3JlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCksIHJlZ2lzdHJhdGlvbi51cGRhdGUoKV0pLAor
ICAgICAgICAgICAgICBuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICdDYWxsaW5nIHVw
ZGF0ZSgpIHdoaWxlIHRoZSB1bmluc3RhbGxpbmcgZmxhZyBpcyBzZXQgJyArCisgICAgICAgICAg
ICAgICdzaG91bGQgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgd2l0aCBhIFR5cGVFcnJv
ci4nKTsKKyAgICAgICAgfSk7CisgIH0sICdVcGRhdGUgYSByZWdpc3RyYXRpb24uJyk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRkMDBhZWQwMmRmODJk
MTdjYzkzZTNlMzk4ODkyMjBkYjgyZWUwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTU2IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9hY3RpdmF0ZS1ldmVudC1hZnRlci1pbnN0YWxsLXN0YXRlLWNoYW5nZS5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi1hZnRlci1yZWdpc3RyYXRpb24u
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2FjdGl2ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYXBw
Y2FjaGUtb3JkZXJpbmctbWFpbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0t
YWZmZWN0LW90aGVyLXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
Y2xhaW0tZmV0Y2guaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLW5vdC11c2lu
Zy1yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXVzaW5n
LXJlZ2lzdHJhdGlvbi5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xhaW0td2l0aC1y
ZWRpcmVjdC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50LWlkLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NsaWVudHMtZ2V0LWNsaWVudC10eXBlcy5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvY2xpZW50cy1nZXQtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9jbGllbnRzLWdldC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xp
ZW50cy1tYXRjaGFsbC1jbGllbnQtdHlwZXMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2NsaWVudHMtbWF0Y2hhbGwtZXhhY3QtY29udHJvbGxlci5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1pbmNsdWRlLXVuY29udHJvbGxlZC5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvY2xpZW50cy1tYXRjaGFsbC1vbi1ldmFsdWF0aW9uLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLW9yZGVyLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnRzLW1hdGNoYWxsLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jb250cm9sbGVyLW9uLWRpc2Nvbm5lY3QuaHR0cHMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2NvbnRyb2xsZXItb24tbG9hZC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvY29udHJvbGxlci1vbi1yZWxvYWQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2V4dGVuZGFibGUtZXZlbnQtYXN5bmMtd2FpdHVudGlsLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9leHRlbmRhYmxlLWV2ZW50LXdhaXR1bnRpbC5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtY2FudmFzLXRhaW50aW5nLWNhY2hlLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1jYW52YXMtdGFpbnRpbmcuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLWNvcnMteGhyLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1jc3AuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFmdGVyLW5h
dmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LWFzeW5jLXJlc3BvbmQtd2l0aC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtZXZlbnQtbmV0d29yay1lcnJvci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
ZmV0Y2gtZXZlbnQtcmVkaXJlY3QuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVzcG9uZC13aXRoLWFyZ3VtZW50Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVhZGFibGUtc3RyZWFtLmh0dHBzLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZXNwb25kLXdpdGgtcmVzcG9uc2UtYm9k
eS13aXRoLWludmFsaWQtY2h1bmsuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlc3BvbmQtd2l0aC1zdG9wcy1wcm9wYWdhdGlvbi5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtdGhyb3dzLWFmdGVyLXJlc3BvbmQtd2l0aC5odHRwcy5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3Lmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZnJhbWUtcmVzb3VyY2UuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWhlYWRlci12aXNpYmlsaXR5Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1taXhlZC1jb250ZW50LXRvLWluc2NvcGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZldGNoLW1peGVkLWNvbnRlbnQtdG8tb3V0c2NvcGUuaHR0cHMuaHRtbAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QtY3NzLWJhc2UtdXJsLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWNzcy1jcm9zcy1vcmlnaW4tbWltZS1jaGVjay5o
dHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1jc3MtaW1hZ2VzLmh0
dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWZhbGxiYWNrLmh0dHBz
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXF1ZXN0LWh0bWwtaW1wb3J0cy5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1uby1mcmVzaG5lc3MtaGVh
ZGVycy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZWRpcmVj
dC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtcmVxdWVzdC1yZXNvdXJjZXMu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLXN5bmMuaHR0
cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLXJlcXVlc3QteGhyLmh0dHBzLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1yZXNwb25zZS10YWludC5odHRwcy5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtcmVzcG9uc2UteGhyLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC13YWl0cy1mb3ItYWN0aXZhdGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL2ZvcmVpZ24tZmV0Y2gtYmFzaWNzLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mb3JlaWduLWZldGNoLWNvcnMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZvcmVp
Z24tZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZvcmVpZ24tZmV0
Y2gtd29ya2Vycy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZ2V0cmVnaXN0cmF0aW9u
Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9nZXRyZWdpc3RyYXRpb25zLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9odHRwLXRvLWh0dHBzLXJlZGlyZWN0LWFuZC1yZWdpc3Rl
ci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaWZyYW1lLXNhbmRib3gtcmVnaXN0ZXIt
bGluay1lbGVtZW50Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbXBvcnQtc2NyaXB0
cy1yZXNvdXJjZS1tYXAuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ltcG9ydC1zY3Jp
cHRzLXVwZGF0ZWQtZmxhZy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvaW5kZXhlZGRi
Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pbnN0YWxsLWV2ZW50LXR5cGUuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2luc3RhbGxpbmcuaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ludGVyZmFjZXMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFs
aWQtYmxvYnR5cGUuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ludmFsaWQtaGVhZGVy
Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9pc28tbGF0aW4xLWhlYWRlci5odHRwcy5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbXVsdGlwbGUtcmVnaXN0ZXIuaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL211bHRpcGxlLXVwZGF0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGUtd2luZG93Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZp
Z2F0aW9uLXJlZGlyZWN0LWJvZHkuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcmVkaXJlY3QtdG8taHR0cC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1yZWRpcmVjdC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvb25hY3RpdmF0
ZS1zY3JpcHQtZXJyb3IuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL29uaW5zdGFsbC1z
Y3JpcHQtZXJyb3IuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL29wYXF1ZS1yZXNwb25z
ZS1wcmVsb2FkZWQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1hbmNlLXRp
bWVsaW5lLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVzc2FnZS1ibG9iLXVy
bC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcG9zdG1lc3NhZ2UtZnJvbS13YWl0aW5n
LXNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdl
LW1zZ3BvcnQtdG8tY2xpZW50Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9wb3N0bWVz
c2FnZS10by1jbGllbnQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Bvc3RtZXNzYWdl
Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVkaXJlY3RlZC1yZXNwb25zZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvcmVmZXJlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVmZXJyZXItcG9s
aWN5LWhlYWRlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItY2xvc2Vk
LXdpbmRvdy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZGVmYXVsdC1z
Y29wZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItZm9yZWlnbi1mZXRj
aC1lcnJvcnMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWxpbmstZWxl
bWVudC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVnaXN0ZXItbGluay1oZWFkZXIu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXNhbWUtc2NvcGUtZGlmZmVy
ZW50LXNjcmlwdC11cmwuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLXdh
aXQtZm9yZXZlci1pbi1pbnN0YWxsLXdvcmtlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVnaXN0cmF0aW9uLWVuZC10by1lbmQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3JlZ2lzdHJhdGlvbi1ldmVudHMuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lz
dHJhdGlvbi1pZnJhbWUuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdHJhdGlv
bi1zZXJ2aWNlLXdvcmtlci1hdHRyaWJ1dGVzLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9yZWdpc3RyYXRpb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlamVjdGlvbnMu
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlcXVlc3QtYm9keS1ibG9iLmh0dHBzLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXF1ZXN0LWVuZC10by1lbmQuaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL3Jlc291cmNlLXRpbWluZy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvc2VydmljZS13b3JrZXItY3NwLWNvbm5lY3QuaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3NlcnZpY2Utd29ya2VyLWNzcC1kZWZhdWx0Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9zZXJ2aWNlLXdvcmtlci1jc3Atc2NyaXB0Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9zZXJ2aWNld29ya2VyLW1lc3NhZ2UtZXZlbnQtaGlzdG9yaWNhbC5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2VydmljZXdvcmtlcm9iamVjdC1zY3JpcHR1cmwuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NoYXJlZC13b3JrZXItY29udHJvbGxlZC5odHRwcy5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLWluc3RhbGxlZC5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXVzaW5nLXJlZ2lzdHJhdGlvbi5odHRw
cy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc2tpcC13YWl0aW5nLXdpdGhvdXQtY2xpZW50Lmh0
dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9za2lwLXdhaXRpbmctd2l0aG91dC11c2luZy1y
ZWdpc3RyYXRpb24uaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAtd2FpdGluZy5o
dHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3RhdGUuaHR0cHMuaHRtbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL3N5bmNlZC1zdGF0ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5j
b250cm9sbGVkLXBhZ2UuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVnaXN0ZXIt
Y29udHJvbGxlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdpc3Rlci10aGVu
LXJlZ2lzdGVyLW5ldy1zY3JpcHQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VucmVn
aXN0ZXItdGhlbi1yZWdpc3Rlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdW5yZWdp
c3Rlci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLWFmdGVyLW5hdmlnYXRp
b24tZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRl
ci1vbmVkYXkuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ieXRlY2hlY2su
aHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1yZWNvdmVyeS5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci93YWl0aW5nLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci93ZWJzb2NrZXQuaHR0cHMu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIveGhyLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL3dhaXRpbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dhaXRpbmcuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZmY5YzgwYTRmNjU5ZWQ5YmI0OTE4ZDQ5NTM3Nzk2MDUwYTZjYzJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvd2FpdGluZy5odHRwcy5odG1s
CkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2VXb3JrZXI6
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLndhaXRpbmc8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4KKy8vICJ3
YWl0aW5nIiBpcyBzZXQKK2FzeW5jX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciBzdGVwID0g
dC5zdGVwX2Z1bmMuYmluZCh0KTsKKyAgICB2YXIgdXJsID0gJ3Jlc291cmNlcy9lbXB0eS13b3Jr
ZXIuanMnOworICAgIHZhciBzY29wZSA9ICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7CisgICAgdmFy
IGZyYW1lOworICAgIHZhciByZWdpc3RyYXRpb247CisKKyAgICBzZXJ2aWNlX3dvcmtlcl91bnJl
Z2lzdGVyKHQsIHNjb3BlKQorICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4gd2l0aF9pZnJh
bWUoc2NvcGUpOyB9KQorICAgIC50aGVuKGZ1bmN0aW9uKGYpIHsKKyAgICAgICAgZnJhbWUgPSBm
OworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIodXJsLCB7
c2NvcGU6IHNjb3BlfSk7CisgICAgICB9KQorICAgIC50aGVuKGZ1bmN0aW9uKHIpIHsKKyAgICAg
ICAgcmVnaXN0cmF0aW9uID0gcjsKKyAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIu
aW5zdGFsbGluZywgJ2luc3RhbGxlZCcpOworICAgICAgfSwgdW5yZWFjaGVkX3JlamVjdGlvbih0
LCAnUmVnaXN0cmF0aW9uIHNob3VsZCBub3QgZmFpbCcpKQorICAgIC50aGVuKGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgY29udHJvbGxlciA9IGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcjsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhjb250cm9s
bGVyLCBudWxsKTsKKyAgICAgICAgLy8gTm90aGluZyBpbiB0aGUgc3BlYyBwcm9oaWJpdHMgYSB3
b3JrZXIgZnJvbSBnb2luZyB0byBhY3RpdmUKKyAgICAgICAgLy8gaW1tZWRpYXRlbHkuCisgICAg
ICAgIC8vIFN0ZXAgMjYgb2YgdGhlIFtbSW5zdGFsbF1dIGFsZ29yaXRobQorICAgICAgICAvLyAi
SWYgcmVnaXN0cmF0aW9uJ3Mgd2FpdGluZyB3b3JrZXIgd2FpdGluZ1dvcmtlciBpcyBub3QgbnVs
bCBhbmQKKyAgICAgICAgLy8gd2FpdGluZ1dvcmtlcidzIHNraXAgd2FpdGluZyBmbGFnIGlzIG5v
dCBzZXQsIGludm9rZSBBY3RpdmF0ZQorICAgICAgICAvLyBhbGdvcml0aG0sIG9yIGl0cyBlcXVp
dmFsZW50LCB3aXRoIHJlZ2lzdHJhdGlvbiBhcyBpdHMgYXJndW1lbnQuIgorICAgICAgICB2YXIg
dyA9IHJlZ2lzdHJhdGlvbi53YWl0aW5nIHx8IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgICAg
IGFzc2VydF9lcXVhbHMody5zY3JpcHRVUkwsIG5vcm1hbGl6ZVVSTCh1cmwpKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWdpc3RyYXRpb24uaW5zdGFsbGluZywgbnVsbCk7CisgICAgICB9KQor
ICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBmcmFtZS5yZW1vdmUoKTsKKyAgICAgICAg
cmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAg
ICAgfSk7Cit9LCAnd2FpdGluZyBvciBhY3RpdmUgaXMgc2V0Jyk7Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvd2Vic29ja2V0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjljNTI2ZDUwZmI5OWFi
YmFmY2IyYjhkNGYwMGMyMjY3YjI1YzQ3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3dlYnNvY2tldC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBXZWJTb2NrZXQgaGFuZHNoYWtlIGNoYW5uZWwg
aXMgbm90IGludGVyY2VwdGVkPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcz9waXBlPXN1YiI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCithc3luY190ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgICB2YXIgcGF0aCA9IG5ldyBVUkwoIi4iLCB3aW5kb3cubG9jYXRpb24pLnBhdGhu
YW1lCisgICAgdmFyIHVybCA9ICdyZXNvdXJjZXMvd2Vic29ja2V0LmpzJzsKKyAgICB2YXIgc2Nv
cGUgPSAncmVzb3VyY2VzL2JsYW5rLmh0bWw/d2Vic29ja2V0JzsKKyAgICB2YXIgaG9zdF9pbmZv
ID0gZ2V0X2hvc3RfaW5mbygpOworICAgIHZhciBmcmFtZVVSTCA9IGhvc3RfaW5mb1snSFRUUFNf
T1JJR0lOJ10gKyBwYXRoICsgc2NvcGU7CisgICAgdmFyIGZyYW1lOworCisgICAgc2VydmljZV93
b3JrZXJfdW5yZWdpc3Rlcl9hbmRfcmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0
ZSh0LCByZWdpc3RyYXRpb24uaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQor
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7IHJldHVybiB3aXRoX2lmcmFtZShmcmFtZVVSTCk7IH0p
CisgICAgICAudGhlbihmdW5jdGlvbihmKSB7CisgICAgICAgICAgZnJhbWUgPSBmOworICAgICAg
ICAgIHJldHVybiB3ZWJzb2NrZXQodCwgZnJhbWUpOworICAgICAgICB9KQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgZnVuY3Rpb24gb25NZXNzYWdlKGUpIHsKKyAgICAg
ICAgICAgICAgZm9yICh2YXIgdXJsIGluIGUuZGF0YS51cmxzKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyh1cmwuaW5kZXhPZihnZXRfd2Vic29ja2V0X3VybCgpKSwgLTEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiT2JzZXJ2ZWQgYW4gdW5leHBlY3RlZCBGZXRjaEV2
ZW50IGZvciB0aGUgV2ViU29ja2V0IGhhbmRzaGFrZSIpOworICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyIGNoYW5u
ZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAgICAgICAgICAgIGNoYW5uZWwucG9ydDEub25t
ZXNzYWdlID0gdC5zdGVwX2Z1bmMob25NZXNzYWdlKTsKKyAgICAgICAgICAgIGZyYW1lLmNvbnRl
bnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7
cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBmcmFtZS5yZW1v
dmUoKTsKKyAgICAgICAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9u
ZSh0LCBzY29wZSk7CisgICAgICAgIH0pCisgICAgICAuY2F0Y2godW5yZWFjaGVkX3JlamVjdGlv
bih0KSk7CisgIH0sICdWZXJpZnkgV2ViU29ja2V0IGhhbmRzaGFrZSBjaGFubmVsIGRvZXMgbm90
IGdldCBpbnRlcmNlcHRlZCcpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmYjQ2N2EzZjli
ZjgxYmU5YWYyNzA4NTdhOGZlZGMzOTI0OTJhYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci93aW5kb3djbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDE3
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+U2VydmljZSBXb3JrZXI6IFdpbmRvd0NsaWVu
dC5uYXZpZ2F0ZSgpIHRlc3RzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1
Yi5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK2NvbnN0
IFNDT1BFID0gJ3Jlc291cmNlcy9ibGFuay5odG1sJzsKK2NvbnN0IFNDUklQVF9VUkwgPSAncmVz
b3VyY2VzL3dpbmRvd2NsaWVudC1uYXZpZ2F0ZS13b3JrZXIuanMnOworY29uc3QgQ1JPU1NfT1JJ
R0lOX1VSTCA9IGdldF9ob3N0X2luZm8oKVsnSFRUUFNfUkVNT1RFX09SSUdJTiddICsgYmFzZV9w
YXRoKCkgKworICAgICdyZXNvdXJjZXMvYmxhbmsuaHRtbCc7CisKK25hdmlnYXRlX3Rlc3Qoewor
ICAgIGRlc2NyaXB0aW9uOiAnbm9ybWFsJywKKyAgICBkZXN0X3VybDogJ2JsYW5rLmh0bWw/bmF2
aWdhdGUnLAorICAgIGV4cGVjdGVkOiBub3JtYWxpemVVUkwoU0NPUEUpICsgJz9uYXZpZ2F0ZScs
CisgIH0pOworCituYXZpZ2F0ZV90ZXN0KHsKKyAgICBkZXNjcmlwdGlvbjogJ2JsYW5rIHVybCcs
CisgICAgZGVzdF91cmw6ICcnLAorICAgIGV4cGVjdGVkOiBub3JtYWxpemVVUkwoU0NSSVBUX1VS
TCkKKyAgfSk7CisKK25hdmlnYXRlX3Rlc3QoeworICAgIGRlc2NyaXB0aW9uOiAnaW4gc2NvcGUg
YnV0IG5vdCBjb250cm9sbGVkIHRlc3Qgb24gaW5zdGFsbGluZyB3b3JrZXInLAorICAgIGRlc3Rf
dXJsOiAnYmxhbmsuaHRtbD9uYXZpZ2F0ZScsCisgICAgZXhwZWN0ZWQ6ICdUeXBlRXJyb3InLAor
ICAgIHdhaXRfc3RhdGU6ICdpbnN0YWxsaW5nJywKKyAgfSk7CisKK25hdmlnYXRlX3Rlc3Qoewor
ICAgIGRlc2NyaXB0aW9uOiAnaW4gc2NvcGUgYnV0IG5vdCBjb250cm9sbGVkIHRlc3Qgb24gYWN0
aXZlIHdvcmtlcicsCisgICAgZGVzdF91cmw6ICdibGFuay5odG1sP25hdmlnYXRlJywKKyAgICBl
eHBlY3RlZDogJ1R5cGVFcnJvcicsCisgICAgc2hvdWxkX2JlX3JlbG9hZDogZmFsc2UsCisgIH0p
OworCituYXZpZ2F0ZV90ZXN0KHsKKyAgICBkZXNjcmlwdGlvbjogJ291dCBvZiBzY29wZScsCisg
ICAgc3JjX3VybDogJy9jb21tb24vYmxhbmsuaHRtbCcsCisgICAgZGVzdF91cmw6ICdibGFuay5o
dG1sP25hdmlnYXRlJywKKyAgICBleHBlY3RlZDogJ1R5cGVFcnJvcicsCisgIH0pOworCituYXZp
Z2F0ZV90ZXN0KHsKKyAgICBkZXNjcmlwdGlvbjogJ2Nyb3NzIG9yZ2luIHVybCcsCisgICAgZGVz
dF91cmw6IENST1NTX09SSUdJTl9VUkwsCisgICAgZXhwZWN0ZWQ6IG51bGwKKyAgfSk7CisKK25h
dmlnYXRlX3Rlc3QoeworICAgIGRlc2NyaXB0aW9uOiAnaW52YWxpZCB1cmwgKGh0dHA6Ly9bZXhh
bXBsZS5jb21dKScsCisgICAgZGVzdF91cmw6ICdodHRwOi8vW2V4YW1wbGVdLmNvbScsCisgICAg
ZXhwZWN0ZWQ6ICdUeXBlRXJyb3InCisgIH0pOworCituYXZpZ2F0ZV90ZXN0KHsKKyAgICBkZXNj
cmlwdGlvbjogJ2ludmFsaWQgdXJsICh2aWV3LXNvdXJjZTovL2V4YW1wbGUuY29tKScsCisgICAg
ZGVzdF91cmw6ICd2aWV3LXNvdXJjZTovL2V4YW1wbGUuY29tJywKKyAgICBleHBlY3RlZDogJ1R5
cGVFcnJvcicKKyAgfSk7CisKK25hdmlnYXRlX3Rlc3QoeworICAgIGRlc2NyaXB0aW9uOiAnaW52
YWxpZCB1cmwgKGZpbGU6Ly8vKScsCisgICAgZGVzdF91cmw6ICdmaWxlOi8vLycsCisgICAgZXhw
ZWN0ZWQ6ICdUeXBlRXJyb3InCisgIH0pOworCituYXZpZ2F0ZV90ZXN0KHsKKyAgICBkZXNjcmlw
dGlvbjogJ2ludmFsaWQgdXJsIChhYm91dDpibGFuayknLAorICAgIGRlc3RfdXJsOiAnYWJvdXQ6
YmxhbmsnLAorICAgIGV4cGVjdGVkOiAnVHlwZUVycm9yJworICB9KTsKKworZnVuY3Rpb24gbmF2
aWdhdGVfdGVzdChvdmVycmlkZV9wYXJhbWV0ZXJzKSB7CisgIC8vIGRlZmF1bHQgcGFyYW1ldGVy
cworICB2YXIgcGFyYW1ldGVycyA9IHsKKyAgICBkZXNjcmlwdGlvbjogbnVsbCwKKyAgICBzcmNf
dXJsOiBTQ09QRSwKKyAgICBkZXN0X3VybDogbnVsbCwKKyAgICBleHBlY3RlZDogbnVsbCwKKyAg
ICB3YWl0X3N0YXRlOiAnYWN0aXZhdGVkJywKKyAgICBzY29wZTogU0NPUEUsCisgICAgc2hvdWxk
X2JlX3JlbG9hZDogdHJ1ZQorICB9OworICB2YXIga2V5OworCisgIGZvciAoa2V5IGluIG92ZXJy
aWRlX3BhcmFtZXRlcnMpCisgICAgcGFyYW1ldGVyc1trZXldID0gb3ZlcnJpZGVfcGFyYW1ldGVy
c1trZXldOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIHNlcnZp
Y2Vfd29ya2VyOworICAgIHZhciBjbGllbnRfZnJhbWU7CisgICAgdmFyIHJlZ2lzdHJhdGlvbjsK
KyAgICB2YXIgcGF1c2VkTGlmZWN5Y2xlUG9ydDsKKyAgICB2YXIgc2NyaXB0X3VybCA9IFNDUklQ
VF9VUkw7CisKKyAgICAvLyBGb3IgaW4tc2NvcGUtYnV0LW5vdC1jb250cm9sbGVkIHRlc3Qgb24g
aW5zdGFsbGluZyB3b3JrZXIsCisgICAgLy8gaWYgdGhlIHdhaXRfc3RhdGUgaXMgImluc3RhbGxp
bmciLCB0aGVuIGFwcGVuZCB0aGUgcXVlcnkgdG8gc2NyaXB0X3VybC4KKyAgICBpZiAocGFyYW1l
dGVycy53YWl0X3N0YXRlID09ICdpbnN0YWxsaW5nJykgeworICAgICAgc2NyaXB0X3VybCArPSAn
PycgKyBwYXJhbWV0ZXJzLndhaXRfc3RhdGU7CisKKyAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICAgIHBhdXNlZExpZmVjeWNsZVBvcnQgPSBldmVudC5kYXRhLnBvcnQ7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHZhciBjbGVhbnVwID0gZnVuY3Rpb24oKSB7CisgICAgICBpZiAoY2xpZW50
X2ZyYW1lICYmIGNsaWVudF9mcmFtZSkgeworICAgICAgICBjbGllbnRfZnJhbWUucmVtb3ZlKCk7
CisgICAgICB9CisKKyAgICAgIC8vIFNvbWUgdGVzdHMgcmVxdWlyZSB0aGF0IHRoZSB3b3JrZXIg
cmVtYWluIGluIGEgZ2l2ZW4gbGlmZWN5Y2xlIHBoYXNlLgorICAgICAgLy8gIkNsZWFuIHVwIiBs
b2dpYyBmb3IgdGhlc2UgdGVzdHMgcmVxdWlyZXMgc2lnbmFsaW5nIHRoZSB3b3JrZXIgdG8KKyAg
ICAgIC8vIHJlbGVhc2UgdGhlIGhvbGQ7IHRoaXMgYWxsb3dzIHRoZSB3b3JrZXIgdG8gYmUgcHJv
cGVybHkgZGlzY2FyZGVkCisgICAgICAvLyBwcmlvciB0byB0aGUgZXhlY3V0aW9uIG9mIGFkZGl0
aW9uYWwgdGVzdHMuCisgICAgICBpZiAocGF1c2VkTGlmZWN5Y2xlUG9ydCkgeworICAgICAgICAv
LyBUaGUgdmFsdWUgb2YgdGhlIHBvc3RlZCBtZXNzYWdlIGlzIGluY29uc2VxdWVudGlhbC4gQSBz
dHJpbmcgaXMKKyAgICAgICAgLy8gc3BlY2lmaWVkIGhlcmUgc29sZWx5IHRvIGFpZCBpbiB0ZXN0
IGRlYnVnZ2luZy4KKyAgICAgICAgcGF1c2VkTGlmZWN5Y2xlUG9ydC5wb3N0TWVzc2FnZSgnY29u
dGludWUgbGlmZWN5Y2xlJyk7CisgICAgICB9CisKKyAgICAgIGlmIChyZWdpc3RyYXRpb24pIHsK
KyAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICB9CisgICAg
fTsKKworICAgIHZhciB0ZXN0X2JvZHkgPSB3aXRoX2lmcmFtZShwYXJhbWV0ZXJzLnNyY191cmwp
CisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkgeworICAgICAgICAgIGNsaWVudF9mcmFtZSA9
IGZyYW1lOworICAgICAgICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9y
ZWdpc3RlcigKKyAgICAgICAgICAgICAgdGVzdCwgc2NyaXB0X3VybCwgcGFyYW1ldGVycy5zY29w
ZSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmVn
aXN0cmF0aW9uID0gcjsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlciA9IHJlZ2lzdHJhdGlvbi5p
bnN0YWxsaW5nOworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0ZXN0LCBzZXJ2aWNl
X3dvcmtlciwgcGFyYW1ldGVycy53YWl0X3N0YXRlKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVu
KGZ1bmN0aW9uKCkgeworICAgICAgICAgIGlmIChwYXJhbWV0ZXJzLnNob3VsZF9iZV9yZWxvYWQp
IHsKKyAgICAgICAgICAgIGNsaWVudF9mcmFtZS5yZW1vdmUoKTsKKyAgICAgICAgICAgIHJldHVy
biB3aXRoX2lmcmFtZShwYXJhbWV0ZXJzLnNyY191cmwpOworICAgICAgICAgIH0KKyAgICAgICAg
ICByZXR1cm4gY2xpZW50X2ZyYW1lOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
ZnJhbWUpIHsKKyAgICAgICAgICBjbGllbnRfZnJhbWUgPSBmcmFtZTsKKyAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkgeworICAgICAgICAgICAgICB2YXIgY2hh
bm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworICAgICAgICAgICAgICBjaGFubmVsLnBvcnQx
Lm9ubWVzc2FnZSA9IHRlc3Quc3RlcF9mdW5jKHJlc29sdmUpOworICAgICAgICAgICAgICBzZXJ2
aWNlX3dvcmtlci5wb3N0TWVzc2FnZSh7CisgICAgICAgICAgICAgICAgICBwb3J0OiBjaGFubmVs
LnBvcnQyLAorICAgICAgICAgICAgICAgICAgdXJsOiBwYXJhbWV0ZXJzLmRlc3RfdXJsCisgICAg
ICAgICAgICAgICAgfSwgW2NoYW5uZWwucG9ydDJdKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlc3BvbnNlLmRhdGEsIHBhcmFtZXRlcnMuZXhwZWN0ZWQpOworICAgICAgICB9KTsK
KworICAgIC8vIEVuc3VyZSB0aGF0IHRlc3QgImNsZWFuIHVwIiBpcyBkZWZlcnJlZCB1bnRpbCBh
ZnRlciB0aGUgdGVzdCBib2R5CisgICAgLy8gZXhlY3V0ZXMuIGBUZXN0I2FkZF9jbGVhbnVwYCBj
YW5ub3QgYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlIGJlY2F1c2UgdGhlCisgICAgLy8gb3BlcmF0
aW9uIGlzIGFzeW5jaHJvbm91cywgYW5kIGBhZGRfY2xlYW51cGAgZG9lcyBub3Qgc3VwcG9ydAor
ICAgIC8vIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGlu
Zy4gU2VlCisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aXNzdWVzLzYwNzUKKyAgICAvLyBFbnN1cmUgYWxzbyB0aGF0IHRlc3QgZmFpbHVyZSBpcyBub3Qg
aGlkZGVuIGJ5IHN1Y2Nlc3NmdWwgY2xlYW51cAorICAgIC8vIG9wZXJhdGlvbi4KKyAgICByZXR1
cm4gdGVzdF9ib2R5CisgICAgICAudGhlbihjbGVhbnVwLCBjbGVhbnVwKQorICAgICAgLnRoZW4o
ZnVuY3Rpb24oKSB7IHJldHVybiB0ZXN0X2JvZHk7IH0pOworICB9LCBwYXJhbWV0ZXJzLmRlc2Ny
aXB0aW9uKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvd29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
d29ya2VyLWludGVyY2VwdGlvbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlYzY2YTU0YjZlMWU1
MzZkNzgxZWFmMDBjOWY4YTQ3ZjAwMjljNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci93b3JrZXItaW50ZXJjZXB0aW9uLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2UgV29ya2VyOiBpbnRlcmNlcHRpbmcgV29y
a2VyIHNjcmlwdCBsb2FkczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
KHQpIHsKKyAgICB2YXIgd29ya2VyX3VybCA9ICdyZXNvdXJjZXMvZHVtbXktc3ludGhlc2l6ZWQt
d29ya2VyLmpzJzsKKyAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdv
cmtlci1pbnRlcmNlcHRvci5qcyc7CisgICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsKKworICAg
IHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNl
X3dvcmtlciwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmV0
dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAg
ICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9t
aXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICB2YXIgdyA9IG5l
dyBXb3JrZXIod29ya2VyX3VybCk7CisgICAgICAgICAgICAgIHcub25tZXNzYWdlID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
ICAgICByZWplY3QoZS5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhkYXRhLCAnd29ya2VyIGxvYWRpbmcgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3
b3JrZXInKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQs
IHNjb3BlKTsKKyAgICAgICAgfSk7CisgIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBmcm9tIHVu
Y29udHJvbGxlZCBkb2N1bWVudCBpcyBpbnRlcmNlcHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOwor
Citwcm9taXNlX3Rlc3QoZnVuY3Rpb24odCkgeworICAgIHZhciB3b3JrZXJfdXJsID0gJ3Jlc291
cmNlcy9kdW1teS1zYW1lLW9yaWdpbi13b3JrZXIuanMnOworICAgIHZhciBzZXJ2aWNlX3dvcmtl
ciA9ICdyZXNvdXJjZXMvZHVtbXktd29ya2VyLWludGVyY2VwdG9yLmpzJzsKKyAgICB2YXIgc2Nv
cGUgPSB3b3JrZXJfdXJsOworCisgICAgcmV0dXJuIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJf
YW5kX3JlZ2lzdGVyKHQsIHNlcnZpY2Vfd29ya2VyLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0
aW9uKHIpIHsKKyAgICAgICAgICByZXR1cm4gd2FpdF9mb3Jfc3RhdGUodCwgci5pbnN0YWxsaW5n
LCAnYWN0aXZhdGVkJyk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAg
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICAgIHZhciB3ID0gbmV3IFdvcmtlcih3b3JrZXJfdXJsKTsKKyAgICAgICAgICAg
ICAgdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShl
LmRhdGEpOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgdy5vbmVycm9yID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHJlamVjdChlLm1lc3NhZ2UpOworICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9u
KGRhdGEpIHsKKyAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRhdGEsICdkdW1teS13b3JrZXItc2Ny
aXB0IGxvYWRlZCcpOworICAgICAgICAgIHNlcnZpY2Vfd29ya2VyX3VucmVnaXN0ZXJfYW5kX2Rv
bmUodCwgc2NvcGUpOworICAgICAgICB9KTsKKyAgfSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGlu
dGVyY2VwdGVkIGJ5IHNhbWUtb3JpZ2luIHJlc3BvbnNlIHN1Y2NlZWRzJyk7CisKK3Byb21pc2Vf
dGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15
LWNvcnMtd29ya2VyLmpzJzsKKyAgICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1
bW15LXdvcmtlci1pbnRlcmNlcHRvci5qcyc7CisgICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsK
KworICAgIHJldHVybiBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBz
ZXJ2aWNlX3dvcmtlciwgc2NvcGUpCisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAg
ICAgcmV0dXJuIHdhaXRfZm9yX3N0YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOwor
ICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5l
dyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICB2YXIg
dyA9IG5ldyBXb3JrZXIod29ya2VyX3VybCk7CisgICAgICAgICAgICAgIHcub25tZXNzYWdlID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICByZWplY3QoZS5tZXNzYWdlKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pCisgICAgICAudGhlbihmdW5jdGlvbihkYXRhKSB7CisgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhkYXRhLCAnZHVtbXktd29ya2VyLXNjcmlwdCBsb2FkZWQnKTsKKyAg
ICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25lKHQsIHNjb3BlKTsKKyAg
ICAgICAgfSk7CisgIH0sICdWZXJpZnkgd29ya2VyIHNjcmlwdCBpbnRlcmNlcHRlZCBieSBjb3Jz
IHJlc3BvbnNlIHN1Y2NlZWRzJyk7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAg
dmFyIHdvcmtlcl91cmwgPSAncmVzb3VyY2VzL2R1bW15LW5vLWNvcnMtd29ya2VyLmpzJzsKKyAg
ICB2YXIgc2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL2R1bW15LXdvcmtlci1pbnRlcmNlcHRv
ci5qcyc7CisgICAgdmFyIHNjb3BlID0gd29ya2VyX3VybDsKKworICAgIHJldHVybiBzZXJ2aWNl
X3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9yZWdpc3Rlcih0LCBzZXJ2aWNlX3dvcmtlciwgc2NvcGUp
CisgICAgICAudGhlbihmdW5jdGlvbihyKSB7CisgICAgICAgICAgcmV0dXJuIHdhaXRfZm9yX3N0
YXRlKHQsIHIuaW5zdGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRo
ZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICB2YXIgdyA9IG5ldyBXb3JrZXIod29ya2Vy
X3VybCk7CisgICAgICAgICAgICAgIHcub25tZXNzYWdlID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgICAgIHJlc29sdmUoZS5kYXRhKTsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgIHcub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICByZWplY3QoZSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAg
ICAgIGFzc2VydF91bnJlYWNoZWQoJ2ludGVyY2VwdGVkIG5vLWNvcnMgd29ya2VyIGxvYWQgc2hv
dWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9kb25l
KHQsIHNjb3BlKTsKKyAgICAgICAgfSkKKyAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgYXNzZXJ0X3RydWUodHJ1ZSwgJ2ludGVyY2VwdGVkIG5vLWNvcnMgd29ya2VyIGxvYWQg
c2hvdWxkIGZhaWwnKTsKKyAgICAgICAgICBzZXJ2aWNlX3dvcmtlcl91bnJlZ2lzdGVyX2FuZF9k
b25lKHQsIHNjb3BlKTsKKyAgICAgICB9KTsKKyAgfSwgJ1ZlcmlmeSB3b3JrZXIgc2NyaXB0IGlu
dGVyY2VwdGVkIGJ5IG5vLWNvcnMgY3Jvc3Mtb3JpZ2luIHJlc3BvbnNlIGZhaWxzJyk7CisKK3By
b21pc2VfdGVzdChmdW5jdGlvbih0KSB7CisgICAgdmFyIHN1YmRvY191cmwgPSAncmVzb3VyY2Vz
L3dvcmtlci1pbnRlcmNlcHRpb24taWZyYW1lLmh0dHBzLmh0bWw/YnlwYXNzJzsKKyAgICB2YXIg
c2VydmljZV93b3JrZXIgPSAncmVzb3VyY2VzL3dvcmtlci1sb2FkLWludGVyY2VwdG9yLmpzJzsK
KyAgICB2YXIgc2NvcGUgPSAncmVzb3VyY2VzLyc7CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbWVzc2FnZScsIHQuc3RlcF9mdW5jKG9uX21lc3NhZ2UpLCBmYWxzZSk7CisgICAgZnVu
Y3Rpb24gb25fbWVzc2FnZShlKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKGUuZGF0YS5yZXN1bHRz
LCAiVGhpcyBsb2FkIHdhcyBzdWNjZXNzZnVsbHkgaW50ZXJjZXB0ZWQuIik7CisgICAgICB0LmRv
bmUoKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgc2VydmljZV93b3JrZXIsIHNjb3BlKQorICAgICAgLnRoZW4oZnVuY3Rpb24o
cikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByLmluc3RhbGxpbmcsICdh
Y3RpdmF0ZWQnKTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeyByZXR1cm4g
d2l0aF9pZnJhbWUoc3ViZG9jX3VybCk7IH0pCisgICAgICAudGhlbihmdW5jdGlvbihmcmFtZSkg
eworICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKyAg
ICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICAgICAgZnJhbWUucmVtb3ZlKCk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShlLmRh
dGEpOworICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgZnJhbWUuY29udGVudFdpbmRv
dy5wb3N0TWVzc2FnZSgiR08iLCAiKiIsIFtjaGFubmVsLnBvcnQyXSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKGRhdGEpIHsKKyAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGRhdGEucmVzdWx0cywgJ2ZpbmlzaCcpOworICAgICAgICAgIHNlcnZpY2Vf
d29ya2VyX3VucmVnaXN0ZXJfYW5kX2RvbmUodCwgc2NvcGUpOworICAgICAgICB9KTsKKyAgfSwg
J1ZlcmlmeSB3b3JrZXIgbG9hZHMgZnJvbSBjb250cm9sbGVkIGRvY3VtZW50IGFyZSBpbnRlcmNl
cHRlZCBieSBTZXJ2aWNlIFdvcmtlcicpOworCis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
eGhyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDgwNWNmODRkZmEyYTcwOWNlNjNlZjBiZjE1ZmY4
MDhiMDgyZDQ3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3hoci5odHRw
cy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPlNlcnZpY2Ug
V29ya2VyOiBYSFIgZG9lc24ndCBleGlzdDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9z
dC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVs
cGVycy5zdWIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChm
dW5jdGlvbih0KSB7CisgICAgdmFyIHBhdGggPSBuZXcgVVJMKCIuIiwgd2luZG93LmxvY2F0aW9u
KS5wYXRobmFtZQorICAgIHZhciB1cmwgPSAncmVzb3VyY2VzL3hoci5qcyc7CisgICAgdmFyIHNj
b3BlID0gJ3Jlc291cmNlcy9ibGFuay5odG1sP3hocic7CisgICAgdmFyIGhvc3RfaW5mbyA9IGdl
dF9ob3N0X2luZm8oKTsKKyAgICB2YXIgZnJhbWVVUkwgPSBob3N0X2luZm9bJ0hUVFBTX09SSUdJ
TiddICsgcGF0aCArIHNjb3BlOworCisgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRf
cmVnaXN0ZXIodCwgdXJsLCBzY29wZSkKKyAgICAgIC50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlv
bikgeworICAgICAgICAgIHJldHVybiB3YWl0X2Zvcl9zdGF0ZSh0LCByZWdpc3RyYXRpb24uaW5z
dGFsbGluZywgJ2FjdGl2YXRlZCcpOworICAgICAgICB9KQorICAgICAgLnRoZW4oZnVuY3Rpb24o
KSB7IHJldHVybiB3aXRoX2lmcmFtZShmcmFtZVVSTCk7IH0pCisgICAgICAudGhlbihmdW5jdGlv
bihmcmFtZSkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgZnVuY3Rpb24gb25NZXNzYWdlKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9mYWxzZShlLmRhdGEueGhyKTsKKyAgICAgICAgICAgIGZyYW1lLnJlbW92ZSgpOwor
ICAgICAgICAgICAgc2VydmljZV93b3JrZXJfdW5yZWdpc3Rlcl9hbmRfZG9uZSh0LCBzY29wZSk7
CisgICAgICAgICAgfQorICAgICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVs
KCk7CisgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSB0LnN0ZXBfZnVuYyhvbk1l
c3NhZ2UpOworICAgICAgICAgIGZyYW1lLmNvbnRlbnRXaW5kb3cubmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuY29udHJvbGxlci5wb3N0TWVzc2FnZSh7cG9ydDogY2hhbm5lbC5wb3J0Mn0sIFtjaGFu
bmVsLnBvcnQyXSk7CisgICAgICAgIH0pCisgICAgICB9KQorICAgICAgLmNhdGNoKHVucmVhY2hl
ZF9yZWplY3Rpb24odCkpOworICB9LCAnVmVyaWZ5IFhIUiBkb2VzIG5vdCBleGlzdCcpOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zcGVjZ2VuLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zcGVjZ2VuLmpzb24KaW5k
ZXggNWQ3NmRhODI3MWE5MTk0ZDRiZGIwZDdiODJlZmQ2YzAwNGY5NDMwZi4uODhjMzZlZDA0YWFk
YTliNjFkZmU2NWY5N2RjNmU3M2Q3OTEzYTZhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3BlY2dlbi5qc29u
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NwZWNnZW4uanNvbgpAQCAtNjU0LDUgKzY1NCw1IEBACiAgICAgICAgICAgICAi
dGVzdGFibGUiOiBmYWxzZQogICAgICAgICB9CiAgICAgXSwKLSAgICAic3BlY1VybCI6ICJodHRw
czovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3Jr
ZXIvIgorICAgICJzcGVjVXJsIjogImh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyIKIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMu
MS1zZXJ2aWNlLXdvcmtlci1vYmouaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4xLXNlcnZpY2Utd29ya2VyLW9i
ai5odG1sCmluZGV4IDU4ODcyMGUwNzU0NmZlOTc4MjVmOWJiZDBjMDk4NDIyZTM1NDcyZjIuLmEz
NzBiZjkzM2Y3YmFkOTZkNDgxNTk1MjJmOGZlYTlmNzhlMmZlZjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItMy4xLXNlcnZpY2Utd29ya2VyLW9iai5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4xLXNlcnZpY2Ut
d29ya2VyLW9iai5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBX
b3JrZXJzOiBTZXJ2aWNlV29ya2VyPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyL3NwZWMvc2VydmljZV93b3JrZXIvI3NlcnZpY2Utd29ya2VyLW9iaiI+CisgICAgICAgIDxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIv
I3NlcnZpY2Utd29ya2VyLW9iaiI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCkBAIC0zMCwyMiArMzAsMjIgQEAgZW51
bSBTZXJ2aWNlV29ya2VyU3RhdGUgewogICAiYWN0aXZhdGVkIiwKICAgInJlZHVuZGFudCIKIH07
Ci08L3ByZT4KKzwvc2NyaXB0PgogCi08IS0tCis8IS0tIAogVGhlIGBTZXJ2aWNlV29ya2VyYCBp
bnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgZG9jdW1lbnQtc2lkZSB2aWV3IG9mIGEgU2VydmljZQog
V29ya2VyLiBUaGlzIG9iamVjdCBwcm92aWRlcyBhIG5vLW9wIGNvbnN0cnVjdG9yLiBDYWxsZXJz
IHNob3VsZCBub3RlIHRoYXQgb25seQogYFNlcnZpY2VXb3JrZXJgIG9iamVjdHMgY3JlYXRlZCBi
eSB0aGUgdXNlciBhZ2VudCAoc2VlCiBgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuaW5zdGFsbGlu
Z2AsIGBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci53YWl0aW5nYCwKIGBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5hY3RpdmVgIGFuZCBgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuY29udHJvbGxlcmAp
IHdpbGwKIHByb3ZpZGUgbWVhbmluZ2Z1bCBmdW5jdGlvbmFsaXR5LgotLS0+CisgLS0+CiAKIAog
ICAgIDxzY3JpcHQgdHlwZT10ZXh0L3BsYWluIGlkPSJ1bnRlc3RlZF9pZGxzIj4KICAgICAgICAg
aW50ZXJmYWNlIEV2ZW50SGFuZGxlciB7fTsKICAgICAgICAgaW50ZXJmYWNlIFdvcmtlciB7fTsK
LSAgICA8L3ByZT4KKyAgICA8L3NjcmlwdD4KIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZhciBp
ZGxfYXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4xLjEtc2Vy
dmljZS13b3JrZXItc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4xLjEtc2VydmljZS13b3JrZXItc2Nv
cGUuaHRtbAppbmRleCBhZWYzM2I0N2M2ZDA0Yjg1MWMwNTM5Zjk3MDEyZGI1MTJjM2U2NDljLi42
NmIyMmMyZThmNmYzOWM0NmFjZjkzOTVjYmNlNGMzNzNiYjAwZjMwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
dHViLTMuMS4xLXNlcnZpY2Utd29ya2VyLXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjEuMS1z
ZXJ2aWNlLXdvcmtlci1zY29wZS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+
U2VydmljZSBXb3JrZXJzOiBzY29wZTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdv
cmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNzZXJ2aWNlLXdvcmtlci1zY29wZSI+CisgICAgICAg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI3NlcnZpY2Utd29ya2VyLXNjb3BlIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItMy4xLjItc2VydmljZS13b3JrZXItdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMS4yLXNlcnZpY2Ut
d29ya2VyLXVybC5odG1sCmluZGV4IGNhMDc1MTgzNzgxY2Y5OTNiZGFkMzgzODg1MTRiNTY2ZTI3
MjY5ZTkuLjI1ZWExMWYyMTE4ZWE3ZGFhYTBkZmI5MTMzNDZhMjYxMjhiNzM1MGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3N0dWItMy4xLjItc2VydmljZS13b3JrZXItdXJsLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0z
LjEuMi1zZXJ2aWNlLXdvcmtlci11cmwuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRp
dGxlPlNlcnZpY2UgV29ya2VyczogdXJsPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI3NlcnZpY2Utd29ya2VyLXVybCI+CisgICAgICAg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI3NlcnZpY2Utd29ya2VyLXVybCI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHVi
LTMuMS4zLXNlcnZpY2Utd29ya2VyLXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMS4zLXNlcnZpY2Ut
d29ya2VyLXN0YXRlLmh0bWwKaW5kZXggMjA1MGJmMTNjYzhkNjY5NDNmY2VmODMyM2JkZTExZDcz
OWZmMWU4MS4uYzEwMTNlNmNiMWZkY2ZjMDEwN2JkYTQxMWFmNjQyYTlmYjk5Nzk3NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc3R1Yi0zLjEuMy1zZXJ2aWNlLXdvcmtlci1zdGF0ZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItMy4xLjMtc2VydmljZS13b3JrZXItc3RhdGUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1s
PgogPHRpdGxlPlNlcnZpY2UgV29ya2Vyczogc3RhdGU8L3RpdGxlPgogICAgIDxoZWFkPgotICAg
ICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlv
L1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jc2VydmljZS13b3JrZXItc3RhdGUi
PgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9T
ZXJ2aWNlV29ya2VyLyNzZXJ2aWNlLXdvcmtlci1zdGF0ZSI+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zdHViLTMuMS40LXNlcnZpY2Utd29ya2VyLW9uLXN0YXRlLWNoYW5nZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi0zLjEuNC1zZXJ2aWNlLXdvcmtlci1vbi1zdGF0ZS1jaGFuZ2UuaHRtbAppbmRleCA3
YmE1MzYzNDY2MGY2MmYxOTFmNmY3Yzc3MmI0MTM5NzZiMzU2N2NmLi40MWEyYzA0YTFiYTI4MmVm
MWIwNTNiOWFhYWUyMzI4OWNhMzYwMGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMS40LXNlcnZp
Y2Utd29ya2VyLW9uLXN0YXRlLWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4xLjQtc2Vydmlj
ZS13b3JrZXItb24tc3RhdGUtY2hhbmdlLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0
aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IG9uc3RhdGVjaGFuZ2U8L3RpdGxlPgogICAgIDxoZWFkPgot
ICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jc2VydmljZS13b3JrZXItb24t
c3RhdGUtY2hhbmdlIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItb24tc3RhdGUtY2hhbmdl
Ij4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLW5hdmlnYXRvci1zZXJ2aWNl
LXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjItbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLmh0bWwK
aW5kZXggNWVlNTUxMjlhMjRiNjYzNWFmNzUxZGM4Y2QzODVhY2VkOGE0NjU3OS4uNGMwYjA2N2Y3
ZDEyOWEwZDI4NmZjMDQzOTYzOTQ2NmQyZGZlNTYwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIt
bmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjItbmF2aWdhdG9y
LXNlcnZpY2Utd29ya2VyLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2
aWNlIFdvcmtlcnM6IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyPC90aXRsZT4KICAgICA8aGVhZD4K
LSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI25hdmlnYXRvci1zZXJ2aWNl
LXdvcmtlciI+CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL1NlcnZpY2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlciI+CiAgICAgICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgogCkBAIC02NCw3ICs2NCw3IEBAIGludGVyZmFjZSBSZWxvYWRQYWdlRXZlbnQgOiBFdmVudCB7
CiAgICAgICAgIGludGVyZmFjZSBFdmVudEhhbmRsZXIge307CiAgICAgICAgIGludGVyZmFjZSBF
dmVudFRhcmdldCB7fTsKICAgICAgICAgaW50ZXJmYWNlIEV2ZW50IHt9OwotICAgIDwvcHJlPgor
ICAgIDwvc2NyaXB0PgogCiAgICAgPHNjcmlwdD4KICAgICAgICAgdmFyIGlkbF9hcnJheSA9IG5l
dyBJZGxBcnJheSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuMS1uYXZpZ2F0b3Itc2Vydmlj
ZS13b3JrZXItaW5zdGFsbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuMS1uYXZpZ2F0b3Itc2Vydmlj
ZS13b3JrZXItaW5zdGFsbGluZy5odG1sCmluZGV4IGE1ZDBmNTAwZjQzZTc0NmU4Y2VmMjE3NGZi
Nzc2NDNlN2UxZTQxMDQuLmU4ZGI0M2RmODEwZjU3ZTVhMWZmNDI1ZDQ0MzQxYjVmOTU0NWNlYmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItMy4yLjEtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWluc3Rh
bGxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi4xLW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1p
bnN0YWxsaW5nLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdv
cmtlcnM6IGluc3RhbGxpbmc8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIv
c3BlYy9zZXJ2aWNlX3dvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWluc3RhbGxpbmci
PgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9T
ZXJ2aWNlV29ya2VyLyNuYXZpZ2F0b3Itc2VydmljZS13b3JrZXItaW5zdGFsbGluZyI+CiAgICAg
ICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi4xMC1uYXZpZ2F0b3Itc2VydmljZS13b3Jr
ZXItb25jb250cm9sbGVyY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi4xMC1uYXZpZ2F0b3Itc2Vy
dmljZS13b3JrZXItb25jb250cm9sbGVyY2hhbmdlLmh0bWwKaW5kZXggMGEzYjViYTI3N2Y0MWQy
MGEzZDFkMWRjZjAwZWQ0YTMwM2VlOTlhMS4uNGFjYWNlMDhkOTNjY2JmMDAzOTg5NzFhMTEyOWI3
MTFlNDAzYjkwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuMTAtbmF2aWdhdG9yLXNlcnZpY2Ut
d29ya2VyLW9uY29udHJvbGxlcmNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjEwLW5hdmln
YXRvci1zZXJ2aWNlLXdvcmtlci1vbmNvbnRyb2xsZXJjaGFuZ2UuaHRtbApAQCAtMiw3ICsyLDcg
QEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2Vyczogb25jb250cm9sbGVyY2hhbmdlPC90
aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIv
I25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1vbmNvbnRyb2xsZXJjaGFuZ2UiPgorICAgICAgICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyNuYXZpZ2F0b3Itc2VydmljZS13b3JrZXItb25jb250cm9sbGVyY2hhbmdlIj4KICAgICAgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjExLW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1v
bnJlbG9hZHBhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjExLW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtl
ci1vbnJlbG9hZHBhZ2UuaHRtbAppbmRleCA3MWY4YzBhYzMzYTAyMDAzMDhmMTc0OGMxMzZiYzYw
ZDdiMTUyNDhkLi4zMDMzNTliZWM0M2I1ODVhNDY4YzYwNjc2OTc2ZDU4YWM0ODNmMjZiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTMuMi4xMS1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItb25yZWxvYWRw
YWdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuMTEtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLW9u
cmVsb2FkcGFnZS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBX
b3JrZXJzOiBvbnJlbG9hZHBhZ2U8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLW9ucmVsb2Fk
cGFnZSI+CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1vbnJlbG9hZHBhZ2Ui
PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuMTItbmF2aWdhdG9yLXNlcnZp
Y2Utd29ya2VyLW9uZXJyb3IuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjEyLW5hdmlnYXRvci1zZXJ2aWNl
LXdvcmtlci1vbmVycm9yLmh0bWwKaW5kZXggNDM0NTdjNTlhMzBhNTU1MjIyNmM1NGMwZGMyNDU4
ODUxMzkyNGViMy4uNWMzMTEyZjIzZmRjYTIwODlhZjc1NDE5OWI2MjBmZmI1ODFiMjZkNSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc3R1Yi0zLjIuMTItbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLW9uZXJyb3Iu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zdHViLTMuMi4xMi1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItb25lcnJv
ci5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBv
bmVycm9yPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2Vydmlj
ZV93b3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1vbmVycm9yIj4KKyAgICAgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8j
bmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLW9uZXJyb3IiPgogICAgICAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc3R1Yi0zLjIuMi1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItd2FpdGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi0zLjIuMi1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItd2FpdGluZy5odG1sCmluZGV4
IDllYjkwZjFkMzZmOGYyOWQzOGY5OTA5ODQ0OTI4YmNlZmQxZmQ0MGUuLjRkNGZmMGUzZjY5ZWZk
ZWE1OGJhZTE1NmZlZTM2YzUyNjgxYjRlOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjItbmF2
aWdhdG9yLXNlcnZpY2Utd29ya2VyLXdhaXRpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi4yLW5h
dmlnYXRvci1zZXJ2aWNlLXdvcmtlci13YWl0aW5nLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRt
bD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IHdhaXRpbmc8L3RpdGxlPgogICAgIDxoZWFkPgot
ICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2Ut
d29ya2VyLXdhaXRpbmciPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNuYXZpZ2F0b3Itc2VydmljZS13b3JrZXItd2Fp
dGluZyI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi4zLW5hdmlnYXRvci1z
ZXJ2aWNlLXdvcmtlci1hY3RpdmUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjMtbmF2aWdhdG9yLXNlcnZp
Y2Utd29ya2VyLWFjdGl2ZS5odG1sCmluZGV4IDJmN2MwNTRiOGMyMGMxNDg0Y2ZkMTcxMzJiMmM1
NTQ1NDlhYjJhNzMuLmNlYjIwNGQ1MTdiYTAwMmQ5MjZjZmE2ZTY3NTc3NDFhMmJjZmM4MWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3N0dWItMy4yLjMtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWFjdGl2ZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3N0dWItMy4yLjMtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWFjdGl2ZS5o
dG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBhY3Rp
dmU8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dv
cmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWFjdGl2ZSI+CisgICAgICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI25hdmln
YXRvci1zZXJ2aWNlLXdvcmtlci1hY3RpdmUiPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c3R1Yi0zLjIuNC1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItY29udHJvbGxlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c3R1Yi0zLjIuNC1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItY29udHJvbGxlci5odG1sCmluZGV4
IDQwMzRhOTVhMzNjMmU2YzFmNzJjYmIyMzRjOGNkNzJjZjc3YzY2OWIuLjg0YzFhMDJlNTUwNzhh
MWRiODk2ZDcwMGI1OWNjMGRjYTJkYzZiY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjQtbmF2
aWdhdG9yLXNlcnZpY2Utd29ya2VyLWNvbnRyb2xsZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi40
LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1jb250cm9sbGVyLmh0bWwKQEAgLTIsNyArMiw3IEBA
CiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IGNvbnRyb2xsZXI8L3RpdGxlPgogICAg
IDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlv
ZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jbmF2aWdhdG9y
LXNlcnZpY2Utd29ya2VyLWNvbnRyb2xsZXIiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNuYXZpZ2F0b3Itc2Vydmlj
ZS13b3JrZXItY29udHJvbGxlciI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMu
Mi41LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWFkeS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuNS1u
YXZpZ2F0b3Itc2VydmljZS13b3JrZXItcmVhZHkuaHRtbAppbmRleCA3YTQ1NDIyMjdjNzZlMmEy
ZGY1MDliNmFjODBkYjQxMjNhMzgyMGY5Li42OTdlN2M1ZTVlZGExNmU2YjQ1ZTE5MDNlMjJiYmI2
ZmFiMzM2MjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi41LW5hdmlnYXRvci1zZXJ2aWNlLXdv
cmtlci1yZWFkeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjUtbmF2aWdhdG9yLXNlcnZpY2Utd29y
a2VyLXJlYWR5Lmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdv
cmtlcnM6IHJlYWR5PC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMv
c2VydmljZV93b3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWFkeSI+CisgICAgICAg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWFkeSI+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zdHViLTMuMi42LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1nZXRBbGwuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3N0dWItMy4yLjYtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWdldEFsbC5odG1sCmluZGV4
IGI3MDQyNTc4MTlhYzc2ZWMyYzQ5ZTk1YTc5Y2Q4NzczMDZmMTU4YmUuLjYzMzUyMDZkOGUzNmU2
Y2EyYWY0ZTYyZDA5ZjUwYTk2Nzg4NmRhYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjYtbmF2
aWdhdG9yLXNlcnZpY2Utd29ya2VyLWdldEFsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItMy4yLjYtbmF2
aWdhdG9yLXNlcnZpY2Utd29ya2VyLWdldEFsbC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+
CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBnZXRBbGwoKTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0g
ICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIu
aW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNuYXZpZ2F0b3Itc2VydmljZS13
b3JrZXItZ2V0QWxsIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLWdldEFs
bCI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTMuMi43LW5hdmlnYXRvci1zZXJ2
aWNlLXdvcmtlci1yZWdpc3Rlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi0zLjIuNy1uYXZpZ2F0b3Itc2Vydmlj
ZS13b3JrZXItcmVnaXN0ZXIuaHRtbAppbmRleCA4ZjI5NDBkYzg5YWRjOTY3N2QwZDI5ZGE4NzM0
N2ViYjRjZTYwZGZjLi43ZGFiN2MxMDdkMmMzMWIwYjg3Mzk3NmNhY2RmN2VhMDI5Y2FmNmY1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zdHViLTMuMi43LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWdpc3Rl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItMy4yLjctbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXJlZ2lz
dGVyLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6
IHJlZ2lzdGVyKCk8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9z
ZXJ2aWNlX3dvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXJlZ2lzdGVyIj4KKyAgICAg
ICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdv
cmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXJlZ2lzdGVyIj4KICAgICAgICAgPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3N0dWItMy4yLjgtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXVucmVnaXN0
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3N0dWItMy4yLjgtbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXVucmVnaXN0
ZXIuaHRtbAppbmRleCAzNWI5YzMxNDQ3Y2QwOWNiOWIzZDMzYWI0YThkZDFiZjBhNDI0NGRmLi4x
NWJkNzMxOTZlOTcwYzk0NTE1NjY0NzNmZWM1MzYwZDE5ZTZkZDdhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
dHViLTMuMi44LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci11bnJlZ2lzdGVyLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi0zLjIuOC1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItdW5yZWdpc3Rlci5odG1sCkBA
IC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiB1bnJlZ2lzdGVy
KCk8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dv
cmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXVucmVnaXN0ZXIiPgorICAgICAgICA8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNu
YXZpZ2F0b3Itc2VydmljZS13b3JrZXItdW5yZWdpc3RlciI+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zdHViLTMuMi45LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1vbnVwZGF0ZWZvdW5k
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTMuMi45LW5hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1vbnVwZGF0ZWZv
dW5kLmh0bWwKaW5kZXggNDQ5NzU2NTNmYzNjNWUyZTcxNmQxZWFmNjg0ODg3YjM1OTFiYmVjZC4u
NjJiNGVlNjNjNDZkMmYyMmNjY2ZhMGY5NzU0NTg3ZmNhYjk1ZGQ1NSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c3R1Yi0zLjIuOS1uYXZpZ2F0b3Itc2VydmljZS13b3JrZXItb251cGRhdGVmb3VuZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3N0dWItMy4yLjktbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLW9udXBkYXRlZm91bmQu
aHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2Vyczogb251
cGRhdGVmb3VuZDwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3Nl
cnZpY2Vfd29ya2VyLyNuYXZpZ2F0b3Itc2VydmljZS13b3JrZXItb251cGRhdGVmb3VuZCI+Cisg
ICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZp
Y2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1vbnVwZGF0ZWZvdW5kIj4KICAgICAg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAg
ICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4xLXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29w
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc3R1Yi00LjEtc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLmh0bWwKaW5k
ZXggY2U2YTA0NWUyNWU0NzI0ZWJjY2M5OGNiYWQwZTc4NzU4NmQ5NDRmMi4uNmU4MzA1YjViZWM5
MTQ0NmJhM2I3YTNjNmZmYmIyOWNkZDZkNjNlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEtc2Vy
dmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEtc2VydmljZS13
b3JrZXItZ2xvYmFsLXNjb3BlLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5T
ZXJ2aWNlIFdvcmtlcnM6IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTwvdGl0bGU+CiAgICAgPGhl
YWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5n
aXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNzZXJ2aWNlLXdvcmtl
ci1nbG9iYWwtc2NvcGUiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8v
dzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUi
PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KIApAQCAtMzcsOSArMzcsOSBAQCBpbnRlcmZhY2UgU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIDogV29ya2VyR2xvYmFsU2NvcGUgewogCiAgIC8vIGNsb3NlKCkgbWV0aG9kIGlu
aGVyaXRlZCBmcm9tIFdvcmtlckdsb2JhbFNjb3BlIGlzIG5vdCBleHBvc2VkLgogfTsKLTwvcHJl
PgorPC9zY3JpcHQ+CiAKLTwhLS0KKzwhLS0gCiBUaGUgYFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZWAgaW50ZXJmYWNlIHJlcHJlc2VudHMgdGhlIGdsb2JhbCBleGVjdXRpb24KIGNvbnRleHQgb2Yg
YSBTZXJ2aWNlIFdvcmtlci4gYFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZWAgb2JqZWN0IHByb3Zp
ZGVzCiBnZW5lcmljLCBldmVudC1kcml2ZW4sIHRpbWUtbGltaXRlZCBzY3JpcHQgZXhlY3V0aW9u
IGNvbnRleHRzIHRoYXQgcnVuIGF0IGFuCkBAIC00OCw3ICs0OCw3IEBAIGFsaXZlIGFuZCBraWxs
ZWQgYnkgdGhlaXIgcmVsYXRpb25zaGlwIHRvIGV2ZW50cywgbm90IGRvY3VtZW50cy4gQW55IHR5
cGUgb2YKIHN5bmNocm9ub3VzIHJlcXVlc3RzIE1VU1QgTk9UIGJlIGluaXRpYXRlZCBpbnNpZGUg
b2YgYSBTZXJ2aWNlIFdvcmtlci4KIAogWzFdOiAjbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXJl
Z2lzdGVyCi0tLT4KKyAtLT4KIAogCiAgICAgPHNjcmlwdCB0eXBlPXRleHQvcGxhaW4gaWQ9InVu
dGVzdGVkX2lkbHMiPgpAQCAtNTgsNyArNTgsNyBAQCBzeW5jaHJvbm91cyByZXF1ZXN0cyBNVVNU
IE5PVCBiZSBpbml0aWF0ZWQgaW5zaWRlIG9mIGEgU2VydmljZSBXb3JrZXIuCiAgICAgICAgIGlu
dGVyZmFjZSBTY2FsYXJWYWx1ZVN0cmluZyB7fTsKICAgICAgICAgaW50ZXJmYWNlIEV2ZW50SGFu
ZGxlciB7fTsKICAgICAgICAgaW50ZXJmYWNlIFdvcmtlckdsb2JhbFNjb3BlIHt9OwotICAgIDwv
cHJlPgorICAgIDwvc2NyaXB0PgogCiAgICAgPHNjcmlwdD4KICAgICAgICAgdmFyIGlkbF9hcnJh
eSA9IG5ldyBJZGxBcnJheSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuMS1zZXJ2aWNlLXdv
cmtlci1nbG9iYWwtc2NvcGUtY2FjaGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMS4xLXNlcnZpY2Utd29y
a2VyLWdsb2JhbC1zY29wZS1jYWNoZXMuaHRtbAppbmRleCAzMDEwMWRiZGM1Y2Q1NTkwZGM0N2Q5
ZTU0ZWQwYjQ4ZjRhODBkY2RiLi5lNGRjYzlhN2I3YmY4YjMwNmNjMTBhMmEwNDY5OWY1NDM3ZmQ2
YmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMS4xLXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29w
ZS1jYWNoZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMS4xLXNlcnZpY2Utd29ya2VyLWdsb2JhbC1z
Y29wZS1jYWNoZXMuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2Ug
V29ya2VyczogY2FjaGVzPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3Nw
ZWMvc2VydmljZV93b3JrZXIvI3NlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1jYWNoZXMiPgor
ICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2
aWNlV29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtY2FjaGVzIj4KICAgICAgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4xLjItc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3Bl
LWNsaWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4xLjItc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3Bl
LWNsaWVudHMuaHRtbAppbmRleCBmN2U2ZWVkNWMzYTEwYjY5ZGNlNzhhNzBiZWY0NTQ4YjQ2YjYz
N2U1Li5kZjFhOGFhNzUxOTk4Y2Y4YjYxNTdlM2VhZjc5NzMzNGFiYTg4MjNmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zdHViLTQuMS4yLXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1jbGllbnRzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc3R1Yi00LjEuMi1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtY2xpZW50cy5o
dG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBjbGll
bnRzPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93
b3JrZXIvI3NlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1jbGllbnRzIj4KKyAgICAgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8j
c2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLWNsaWVudHMiPgogICAgICAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc3R1Yi00LjEuMy1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtc2NvcGUuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3N0dWItNC4xLjMtc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLXNjb3BlLmh0bWwK
aW5kZXggMWQ3NGI0OTA5ODBjNTY5M2NlYjA5OTFjYzhmNWQ0OWM4NDE0ZmJhMC4uNzhjYWVkMWIy
NWM0MzBiNGIzNjA0YjczNDJiMjEwMjRmNDNmMzI1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEu
My1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtc2NvcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQu
MS4zLXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS1zY29wZS5odG1sCkBAIC0yLDcgKzIsNyBA
QAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBzY29wZTwvdGl0bGU+CiAgICAgPGhl
YWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5n
aXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNzZXJ2aWNlLXdvcmtl
ci1nbG9iYWwtc2NvcGUtc2NvcGUiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwt
c2NvcGUtc2NvcGUiPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNC1zZXJ2
aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtZmV0Y2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4xLjQtc2Vydmlj
ZS13b3JrZXItZ2xvYmFsLXNjb3BlLWZldGNoLmh0bWwKaW5kZXggZWU3OGZiOTBhMWUyYWMzMWE4
ZmVkOTQxNzNmNWVmZTRjNzY3MmIxOS4uNThhZDliZDM3YTg4ZmNjNmVkMTE1YTM0NGYyNjI0MmJm
YTJmNjQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNC1zZXJ2aWNlLXdvcmtlci1nbG9iYWwt
c2NvcGUtZmV0Y2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMS40LXNlcnZpY2Utd29ya2VyLWdsb2Jh
bC1zY29wZS1mZXRjaC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXJzOiBmZXRjaChyZXF1ZXN0KTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2Vydmlj
ZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUt
ZmV0Y2giPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtZmV0Y2giPgog
ICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNS1zZXJ2aWNlLXdvcmtlci1nbG9i
YWwtc2NvcGUtdXBkYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMS41LXNlcnZpY2Utd29ya2VyLWdsb2Jh
bC1zY29wZS11cGRhdGUuaHRtbAppbmRleCAxYjkxMGExNTUwODY5Nzk5YmFiMDQ4ODI1NTE1MmE3
MmQ2MWQ2ZmZhLi4yZDM4MTI4YTJjNzE3ODk3YTI1ODdmNjBjZWU3NWI5Mzk5NTZhMzE4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTQuMS41LXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS11cGRhdGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zdHViLTQuMS41LXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS11cGRh
dGUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2Vyczog
dXBkYXRlKCk8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2
aWNlX3dvcmtlci8jc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLXVwZGF0ZSI+CisgICAgICAg
IDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI3NlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS11cGRhdGUiPgogICAgICAgICA8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc3R1Yi00LjEuNi1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtdW5yZWdp
c3Rlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNi1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtdW5y
ZWdpc3Rlci5odG1sCmluZGV4IDBmZjBkMWZjYjMxZTU3ZjNkZDI4NGNkNGFiODFmNjE3MWIyNzZh
NWUuLmU5MzhiODZhOWRhNzNhYTY2MDA2ZjQyMzkxMjk3MWI4MTYzMTI2NDAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3N0dWItNC4xLjYtc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLXVucmVnaXN0ZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTQuMS42LXNlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS11bnJlZ2lz
dGVyLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6
IHVucmVnaXN0ZXIoKTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVj
L3NlcnZpY2Vfd29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtdW5yZWdpc3RlciI+
CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1Nl
cnZpY2VXb3JrZXIvI3NlcnZpY2Utd29ya2VyLWdsb2JhbC1zY29wZS11bnJlZ2lzdGVyIj4KICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgog
ICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4xLjctc2VydmljZS13b3JrZXItZ2xvYmFs
LXNjb3BlLW9ubWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNy1zZXJ2aWNlLXdvcmtlci1nbG9i
YWwtc2NvcGUtb25tZXNzYWdlLmh0bWwKaW5kZXggMGZjMjYyYjI3ZTEwYmExYzFhMTVhNzViNmRi
Y2UxOGRjNGE5NzI1Ni4uNDE4OWE2MmY5YWNmZjI3MTQxOGY2YjY5ODNiMTA0MzIyMjBiMzY1MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNy1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtb25t
ZXNzYWdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjEuNy1zZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2Nv
cGUtb25tZXNzYWdlLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNl
IFdvcmtlcnM6IG9ubWVzc2FnZTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtl
ci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNzZXJ2aWNlLXdvcmtlci1nbG9iYWwtc2NvcGUtb25tZXNz
YWdlIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItZ2xvYmFsLXNjb3BlLW9ubWVzc2FnZSI+
CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMi1jbGllbnQuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItNC4yLWNsaWVudC5odG1sCmluZGV4IDk2OTc2YzFlZTFkYzI3OGQ2ZTk5YWRjOTk4M2M3YWFi
NzE1MDYxMjEuLmNiNWY3ZDFhZWNjNjlmN2JlMTY0OTM3ODU0N2YzZDI5MDAzYzNlNmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3N0dWItNC4yLWNsaWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4yLWNsaWVudC5o
dG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBDbGll
bnQ8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dv
cmtlci8jY2xpZW50Ij4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2xpZW50Ij4KICAgICAgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKQEAgLTE5LDkg
KzE5LDkgQEAgaW50ZXJmYWNlIENsaWVudCB7CiAgIHZvaWQgcG9zdE1lc3NhZ2UoYW55IG1lc3Nh
Z2UsIERPTVN0cmluZyB0YXJnZXRPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwg
c2VxdWVuY2U8VHJhbnNmZXJhYmxlPiB0cmFuc2Zlcik7CiB9OwotPC9wcmU+Cis8L3NjcmlwdD4K
IAotPCEtLQorPCEtLSAKIFRoZSBgQ2xpZW50YCBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgd2lu
ZG93IG9yIHRoZSB3b3JrZXIgKGRlZmluZWQgYXMgY2xpZW50KQogdGhhdCBpcyBbY29udHJvbGxl
ZF1bMV0gYnkgdGhlIFNlcnZpY2UgV29ya2VyLiBUaGlzIG9iamVjdCBwcm92aWRlcyBhIG5vLW9w
CiBjb25zdHJ1Y3Rvci4gQ2FsbGVycyBzaG91bGQgbm90ZSB0aGF0IG9ubHkgYENsaWVudGAgb2Jq
ZWN0cyBjcmVhdGVkIGJ5IHRoZSB1c2VyCkBAIC0zOSwxMiArMzksMTIgQEAgdGFyZ2V0T3JpZ2lu
LCB0cmFuc2ZlcilgIG1ldGhvZCBvZiBhIGBbQ2xpZW50XVszXWAsIHdoZW4gY2FsbGVkLCBjYXVz
ZXMgYQogWzJdOiAjZ2V0LXNlcnZpY2VkLW1ldGhvZAogWzNdOiAjY2xpZW50LWludGVyZmFjZQog
WzRdOiBodHRwOi8vZ29vLmdsLzRTTFdpSAotLS0+CisgLS0+CiAKIAogICAgIDxzY3JpcHQgdHlw
ZT10ZXh0L3BsYWluIGlkPSJ1bnRlc3RlZF9pZGxzIj4KICAgICAgICAgaW50ZXJmYWNlIFRyYW5z
ZmVyYWJsZSB7fTsKLSAgICA8L3ByZT4KKyAgICA8L3NjcmlwdD4KIAogICAgIDxzY3JpcHQ+CiAg
ICAgICAgIHZhciBpZGxfYXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItNC4zLXNlcnZpY2Utd29ya2VyLWNsaWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4zLXNlcnZpY2Ut
d29ya2VyLWNsaWVudHMuaHRtbAppbmRleCBiZWI1ZDU5YjdkZDcyNzM5ODM3YTViNGYxNTJiMTIz
NTYxNjI2MmE4Li43YTZiYjU3YzQ1MGY3MmJmNjA3ZjQ4YWYzNzZkYmVmNzU5OTAxNWYyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTQuMy1zZXJ2aWNlLXdvcmtlci1jbGllbnRzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c3R1Yi00LjMtc2VydmljZS13b3JrZXItY2xpZW50cy5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0
bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBTZXJ2aWNlV29ya2VyQ2xpZW50czwvdGl0bGU+
CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9zbGln
aHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2VyLyNzZXJ2
aWNlLXdvcmtlci1jbGllbnRzIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jc2VydmljZS13b3JrZXItY2xpZW50cyI+
CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogCkBAIC0xOSwxOSArMTksMTkgQEAgaW50ZXJmYWNlIFNlcnZpY2VXb3JrZXJD
bGllbnRzIHsKICAgUHJvbWlzZTxzZXF1ZW5jZTxDbGllbnQ+Pz4gZ2V0U2VydmljZWQoKTsKICAg
UHJvbWlzZTxhbnk+IHJlbG9hZEFsbCgpOwogfTsKLTwvcHJlPgorPC9zY3JpcHQ+CiAKLTwhLS0K
KzwhLS0gCiBUaGUgYFNlcnZpY2VXb3JrZXJDbGllbnRzYCBpbnRlcmZhY2UgcmVwcmVzZW50cyBh
IGNvbnRhaW5lciBmb3IgYSBsaXN0IG9mCiBgW0NsaWVudF1bMV1gIG9iamVjdHMuCiAKIFsxXTog
I2NsaWVudC1pbnRlcmZhY2UKLS0tPgorIC0tPgogCiAKICAgICA8c2NyaXB0IHR5cGU9dGV4dC9w
bGFpbiBpZD0idW50ZXN0ZWRfaWRscyI+CiAgICAgICAgIGludGVyZmFjZSBDbGllbnQge307Ci0g
ICAgPC9wcmU+CisgICAgPC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0PgogICAgICAgICB2YXIgaWRs
X2FycmF5ID0gbmV3IElkbEFycmF5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuMy4xLWdldC1z
ZXJ2aWNlZC1tZXRob2QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4zLjEtZ2V0LXNlcnZpY2VkLW1ldGhvZC5o
dG1sCmluZGV4IDUzNzBjNDNkNmQ4MWYwNjQxYTQ2YjE0NDhlNGQ0ODJlYThjMzA3MDUuLmM1M2Vj
YTc2MGJlMzI1Nzc1ZGZlNjFiNDFlNzExODAzYmY4YTU1YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NC4zLjEtZ2V0LXNlcnZpY2VkLW1ldGhvZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC4zLjEtZ2V0LXNl
cnZpY2VkLW1ldGhvZC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2Vydmlj
ZSBXb3JrZXJzOiBnZXRTZXJ2aWNlZCgpPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2dldC1zZXJ2aWNlZC1tZXRob2QiPgorICAgICAg
ICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyLyNnZXQtc2VydmljZWQtbWV0aG9kIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItNC4zLjItcmVsb2FkYWxsLW1ldGhvZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjMuMi1yZWxvYWRhbGwt
bWV0aG9kLmh0bWwKaW5kZXggOWYwYjViMTc1NDQzYzhiYmY2OGQ1ODU5NjRjYjYzNzNmOTFiODJl
YS4uMDIyM2M3ZjgzZjM2YThkYjRjY2M4ZjQzMjczZDNmNGMxZjdlZmRmMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi00LjMuMi1yZWxvYWRhbGwtbWV0aG9kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjMuMi1y
ZWxvYWRhbGwtbWV0aG9kLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2
aWNlIFdvcmtlcnM6IHJlbG9hZEFsbCgpPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI3JlbG9hZGFsbC1tZXRob2QiPgorICAgICAgICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyNyZWxvYWRhbGwtbWV0aG9kIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC40
LXJlcXVlc3Qtb2JqZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjQtcmVxdWVzdC1vYmplY3RzLmh0bWwK
aW5kZXggYWEzNTAyYmZkMGJhNmYyMDdkMzM3YTRjZTM1ODhhNTExODJlMjQzMS4uMmY0NzFmODBm
NjA3NGE2YTZjZTI3ZGRlMWQ4ODE5OWViMDFkOGJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjQt
cmVxdWVzdC1vYmplY3RzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjQtcmVxdWVzdC1vYmplY3RzLmh0
bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IFJlcXVl
c3QgT2JqZWN0czwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIg
aHJlZj0iaHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3Nl
cnZpY2Vfd29ya2VyLyNyZXF1ZXN0LW9iamVjdHMiPgorICAgICAgICA8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNyZXF1ZXN0LW9iamVj
dHMiPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KIApAQCAtNDksNyArNDksNyBAQCBlbnVtIE1vZGUgewogW01hcENsYXNz
KERPTVN0cmluZywgRE9NU3RyaW5nKV0KIGludGVyZmFjZSBIZWFkZXJNYXAgewogfTsKLTwvcHJl
PgorPC9zY3JpcHQ+CiAKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNS1yZXNwb25zZS1vYmpl
Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zdHViLTQuNS1yZXNwb25zZS1vYmplY3RzLmh0bWwKaW5kZXggNDRkZDc2
ZmEzYzc4YTE1Mzc3MmI2ZWRkZjY3MjU3YmRhMDIwNDQ2Yi4uZjdlN2VhZGEzZWEyYmM3MjcwOTBh
Y2EwOGE1MDk2NjE2YzY1NWVhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjUtcmVzcG9uc2Utb2Jq
ZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3N0dWItNC41LXJlc3BvbnNlLW9iamVjdHMuaHRtbApAQCAtMiw3
ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyczogUmVzcG9uc2UgT2JqZWN0
czwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29y
a2VyLyNyZXNwb25zZS1vYmplY3RzIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jcmVzcG9uc2Utb2JqZWN0cyI+CiAg
ICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
ICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgogCkBAIC00NywxNCArNDcsMTQgQEAgZGljdGlvbmFyeSBSZXNwb25zZUluaXQgewog
ICBCeXRlU3RyaW5nIHN0YXR1c1RleHQgPSAiT0siOwogICBIZWFkZXJNYXAgaGVhZGVyczsKIH07
Ci08L3ByZT4KKzwvc2NyaXB0PgogCiAKIAogICAgIDxzY3JpcHQgdHlwZT10ZXh0L3BsYWluIGlk
PSJ1bnRlc3RlZF9pZGxzIj4KICAgICAgICAgaW50ZXJmYWNlIEhlYWRlck1hcCB7fTsKICAgICAg
ICAgaW50ZXJmYWNlIEJsb2Ige307Ci0gICAgPC9wcmU+CisgICAgPC9zY3JpcHQ+CiAKICAgICA8
c2NyaXB0PgogICAgICAgICB2YXIgaWRsX2FycmF5ID0gbmV3IElkbEFycmF5KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zdHViLTQuNS4yLXJlc3BvbnNlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNS4yLXJlc3BvbnNl
Lmh0bWwKaW5kZXggMGM3NjI1ZDJiOGJjNWU0ZDRkNDY5OWM3NGY5ODk3NjFiYjhlMGNhMC4uMzg4
Yjk3Y2NiMzc4NzYyNzc2M2M5MTFhY2NiNzgzNDc5ZGZkNDk5NiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1
Yi00LjUuMi1yZXNwb25zZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC41LjItcmVzcG9uc2UuaHRtbApA
QCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyczogUmVzcG9uc2U8
L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtl
ci8jcmVzcG9uc2UiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNj
LmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNyZXNwb25zZSI+CiAgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zdHViLTQuNS40LW9wYXF1ZS1yZXNwb25zZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjUuNC1v
cGFxdWUtcmVzcG9uc2UuaHRtbAppbmRleCA2NTA2ZTdiOTM2MGQ1YjZhMmNkYThkNzhlMWFiMWZj
ZjlkM2Y5ODk3Li5iYmQxN2JmZGMwMjExMTE3OWJlNTU2MTc0MzAwMzQ1NzFhZmYyNGUzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTQuNS40LW9wYXF1ZS1yZXNwb25zZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NC41LjQtb3BhcXVlLXJlc3BvbnNlLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRs
ZT5TZXJ2aWNlIFdvcmtlcnM6IE9wYXF1ZVJlc3BvbnNlPC90aXRsZT4KICAgICA8aGVhZD4KLSAg
ICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5p
by9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI29wYXF1ZS1yZXNwb25zZSI+Cisg
ICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZp
Y2VXb3JrZXIvI29wYXF1ZS1yZXNwb25zZSI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
dHViLTQuNi1jYWNoZS1vYmplY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNi1jYWNoZS1vYmplY3RzLmh0
bWwKaW5kZXggOTQzYjc0MGY4Yzk5NTk4ZmU0MDJiN2IyYjMwNzU3YWFjNDBhODQ4Ny4uZGVjN2E3
NjY1MzQ0N2YzMDBiY2Y4YmU4NzAyOTliYmFjMDBmZGRmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00
LjYtY2FjaGUtb2JqZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LWNhY2hlLW9iamVjdHMuaHRt
bApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyczogQ2FjaGVz
PC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3Jr
ZXIvI2NhY2hlLW9iamVjdHMiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjYWNoZS1vYmplY3RzIj4KICAgICAgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjEtY2FjaGUtbGlmZXRpbWVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
dHViLTQuNi4xLWNhY2hlLWxpZmV0aW1lcy5odG1sCmluZGV4IGFmYWUwYjczNGQ0MzBjYjNiOTc3
NTM4MmU2ZTVhOWNkYjg1MDM3NjkuLmE1NDg3MzM1ZDUwZDMwY2U4N2RjNTYwNDljNjk1MDFkMmU0
ZmI1YTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjEtY2FjaGUtbGlmZXRpbWVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc3R1Yi00LjYuMS1jYWNoZS1saWZldGltZXMuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxo
dG1sPgogPHRpdGxlPlNlcnZpY2UgV29ya2VyczogVW5kZXJzdGFuZGluZyBDYWNoZSBMaWZldGlt
ZXM8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dv
cmtlci8jY2FjaGUtbGlmZXRpbWVzIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2FjaGUtbGlmZXRpbWVzIj4KICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgog
ICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjItY2FjaGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NC42LjItY2FjaGUuaHRtbAppbmRleCBmYWVlMzM2YjhiODViYjMzYmRjNzRkNTNhZTZlMTAwNmJh
OTFjODI2Li45MjcwNDgxZDE4MzdmYjVjMmMyNDJkZTQxZTY2NTNhMjY2MDFjYzNkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zdHViLTQuNi4yLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjYuMi1jYWNoZS5o
dG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBDYWNo
ZTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29y
a2VyLyNjYWNoZSI+CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NhY2hlIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKQEAgLTM3LDcgKzM3
LDcgQEAgZGljdGlvbmFyeSBDYWNoZUJhdGNoT3BlcmF0aW9uIHsKICAgUmVzcG9uc2UgcmVzcG9u
c2U7CiAgIENhY2hlUXVlcnlPcHRpb25zIG9wdGlvbnM7CiB9OwotPC9wcmU+Cis8L3NjcmlwdD4K
IAogCiAKQEAgLTQ1LDcgKzQ1LDcgQEAgZGljdGlvbmFyeSBDYWNoZUJhdGNoT3BlcmF0aW9uIHsK
ICAgICAgICAgaW50ZXJmYWNlIEFic3RyYWN0UmVzcG9uc2Uge307CiAgICAgICAgIGludGVyZmFj
ZSBSZXF1ZXN0IHt9OwogICAgICAgICBpbnRlcmZhY2UgU2NhbGFyVmFsdWVTdHJpbmcge307Ci0g
ICAgPC9wcmU+CisgICAgPC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0PgogICAgICAgICB2YXIgaWRs
X2FycmF5ID0gbmV3IElkbEFycmF5KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNi4zLWNhY2hl
LXN0b3JhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjMtY2FjaGUtc3RvcmFnZS5odG1sCmluZGV4IDg3
NTIyMGVhOWZmNzExNTVmMmM3OTg0NGVjOGU4ZWQ2MzZjOTUxMzguLmRmYWJmZDZjZGFmM2NlM2U5
MTIzNTIwMDVlNTVmMzJlZDhmOGFlYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjMtY2FjaGUt
c3RvcmFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC42LjMtY2FjaGUtc3RvcmFnZS5odG1sCkBAIC0y
LDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBDYWNoZVN0b3JhZ2U8
L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtl
ci8jY2FjaGUtc3RvcmFnZSI+CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NhY2hlLXN0b3JhZ2UiPgogICAgICAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAg
IDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
IApAQCAtMjksMjIgKzI5LDIyIEBAIGludGVyZmFjZSBDYWNoZVN0b3JhZ2UgewogfTsKIAogY2Fs
bGJhY2sgQ2FjaGVTdG9yYWdlSXRlcmF0aW9uQ2FsbGJhY2sgPSB2b2lkIChDYWNoZSB2YWx1ZSwg
RE9NU3RyaW5nIGtleSwgQ2FjaGVTdG9yYWdlIG1hcCk7Ci08L3ByZT4KKzwvc2NyaXB0PgogCi08
IS0tCis8IS0tIAogKipOb3RlKio6W0NhY2hlU3RvcmFnZV1bMV1pbnRlcmZhY2UgaXMgZGVzaWdu
ZWQgdG8gbGFyZ2VseSBjb25mb3JtCiB0b1tFQ01BU2NyaXB0IDYgTWFwIG9iamVjdHNdWzJdYnV0
IGVudGlyZWx5IGFzeW5jLCBhbmQgd2l0aCBhZGRpdGlvbmFsCiBjb252ZW5pZW5jZSBtZXRob2Rz
LgogCiBbMV06ICNjYWNoZS1zdG9yYWdlLWludGVyZmFjZQogWzJdOiBodHRwOi8vZ29vLmdsL2dO
bkRQTwotLS0+CisgLS0+CiAKIAogICAgIDxzY3JpcHQgdHlwZT10ZXh0L3BsYWluIGlkPSJ1bnRl
c3RlZF9pZGxzIj4KICAgICAgICAgaW50ZXJmYWNlIFNjYWxhclZhbHVlU3RyaW5nIHt9OwogICAg
ICAgICBpbnRlcmZhY2UgQ2FjaGUge307Ci0gICAgPC9wcmU+CisgICAgPC9zY3JpcHQ+CiAKICAg
ICA8c2NyaXB0PgogICAgICAgICB2YXIgaWRsX2FycmF5ID0gbmV3IElkbEFycmF5KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTQuNy4xLWluc3RhbGwtcGhhc2UtZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NC43LjEtaW5zdGFsbC1waGFzZS1ldmVudC5odG1sCmluZGV4IDE5NWMzOGQ5NDE1YjQwYjA3Y2Yz
Y2YzNGVkOGZmODI4ZGE2OGM5NzIuLmY4YmJmYzRmYjczNTNmN2ZjOGVhZjRiNTQ0MGJhY2IxZjQ4
YzRhNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjEtaW5zdGFsbC1waGFzZS1ldmVudC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3N0dWItNC43LjEtaW5zdGFsbC1waGFzZS1ldmVudC5odG1sCkBAIC0yLDcgKzIs
NyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBJbnN0YWxsUGhhc2VFdmVudDwv
dGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2Vy
LyNpbnN0YWxsLXBoYXNlLWV2ZW50Ij4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jaW5zdGFsbC1waGFzZS1ldmVudCI+
CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogCkBAIC0xNiw5ICsxNiw5IEBACiBpbnRlcmZhY2UgSW5zdGFsbFBoYXNlRXZl
bnQgOiBFdmVudCB7CiAgIFByb21pc2U8YW55PiB3YWl0VW50aWwoUHJvbWlzZTxhbnk+IGYpOwog
fTsKLTwvcHJlPgorPC9zY3JpcHQ+CiAKLTwhLS0KKzwhLS0gCiBTZXJ2aWNlIFdvcmtlcnMgaGF2
ZSB0d28gW0xpZmVjeWNsZSBldmVudHNdWzFdLCBgW2luc3RhbGxdWzJdYCBhbmQKIGBbYWN0aXZh
dGVdWzNdYC4gU2VydmljZSBXb3JrZXJzIHVzZSB0aGUgYFtJbnN0YWxsUGhhc2VFdmVudF1bNF1g
IGludGVyZmFjZSBmb3IKIGBbYWN0aXZhdGVdWzNdYCBldmVudCBhbmQgdGhlIGBbSW5zdGFsbEV2
ZW50XVs1XWAgaW50ZXJmYWNlLCB3aGljaCBpbmhlcml0cwpAQCAtMjksMTIgKzI5LDEyIEBAIGZy
b20gdGhlIGBbSW5zdGFsbFBoYXNlRXZlbnRdWzRdYCBpbnRlcmZhY2UsIGZvciBgW2luc3RhbGxd
WzJdYCBldmVudC4KIFszXTogI2FjdGl2YXRlLWV2ZW50CiBbNF06ICNpbnN0YWxsLXBoYXNlLWV2
ZW50LWludGVyZmFjZQogWzVdOiAjaW5zdGFsbC1ldmVudC1pbnRlcmZhY2UKLS0tPgorIC0tPgog
CiAKICAgICA8c2NyaXB0IHR5cGU9dGV4dC9wbGFpbiBpZD0idW50ZXN0ZWRfaWRscyI+CiAgICAg
ICAgIGludGVyZmFjZSBFdmVudCB7fTsKLSAgICA8L3ByZT4KKyAgICA8L3NjcmlwdD4KIAogICAg
IDxzY3JpcHQ+CiAgICAgICAgIHZhciBpZGxfYXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3N0dWItNC43LjEuMS13YWl0LXVudGlsLW1ldGhvZC5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00
LjcuMS4xLXdhaXQtdW50aWwtbWV0aG9kLmh0bWwKaW5kZXggZmY0Y2E3MThjNTA0YTYzZGIwNzkx
MzIwMTlhYTVhN2VhYTFlNDU4Mi4uMTQzZThjM2FhNDY5ZTg1NDQxOTllM2VlYjA2YzA3NDQyZTBh
YzI0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuMS4xLXdhaXQtdW50aWwtbWV0aG9kLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc3R1Yi00LjcuMS4xLXdhaXQtdW50aWwtbWV0aG9kLmh0bWwKQEAgLTIsNyArMiw3
IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IGV2ZW50LndhaXRVbnRpbChmKTwv
dGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29ya2Vy
LyN3YWl0LXVudGlsLW1ldGhvZCI+CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI3dhaXQtdW50aWwtbWV0aG9kIj4KICAg
ICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgog
ICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjItaW5zdGFsbC1ldmVudC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi00LjcuMi1pbnN0YWxsLWV2ZW50Lmh0bWwKaW5kZXggNmEzOWM1ZjU0MmYzYmJhZTk1
MmEwOWQxYTgwYmIxYWM1ZWU2OGVmZi4uMmFmMThiYjY1NGI1MmExNDc1OWUxOGI3MjJhZGM4ZGZl
ZTY1M2NmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuMi1pbnN0YWxsLWV2ZW50Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc3R1Yi00LjcuMi1pbnN0YWxsLWV2ZW50Lmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRt
bD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IGluc3RhbGwgRXZlbnQ8L3RpdGxlPgogICAgIDxo
ZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYu
Z2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jaW5zdGFsbC1ldmVu
dCI+CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L1NlcnZpY2VXb3JrZXIvI2luc3RhbGwtZXZlbnQiPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc3R1Yi00LjcuMi4xLWluc3RhbGwtZXZlbnQtc2VjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00Ljcu
Mi4xLWluc3RhbGwtZXZlbnQtc2VjdGlvbi5odG1sCmluZGV4IGMzMDUxNTliMWQyMDQzMzAxMDE5
OGZkNDVkNTkxMzU2YzFiNDQ0NjEuLjIwZmU4Y2EwOGY1YjYzYzEzZjExNmNhMGQzZGQ3ZWE5MTli
MjE3NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjIuMS1pbnN0YWxsLWV2ZW50LXNlY3Rpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zdHViLTQuNy4yLjEtaW5zdGFsbC1ldmVudC1zZWN0aW9uLmh0bWwKQEAg
LTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6IEluc3RhbGxFdmVu
dDwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vfd29y
a2VyLyNpbnN0YWxsLWV2ZW50LXNlY3Rpb24iPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNpbnN0YWxsLWV2ZW50LXNl
Y3Rpb24iPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIApAQCAtMTcsMjAgKzE3LDIwIEBAIGludGVyZmFjZSBJbnN0YWxs
RXZlbnQgOiBJbnN0YWxsUGhhc2VFdmVudCB7CiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNl
V29ya2VyPyBhY3RpdmVXb3JrZXI7CiAgIHZvaWQgcmVwbGFjZSgpOwogfTsKLTwvcHJlPgorPC9z
Y3JpcHQ+CiAKLTwhLS0KKzwhLS0gCiBTZXJ2aWNlIFdvcmtlcnMgdXNlIHRoZSBgW0luc3RhbGxF
dmVudF1bMV1gIGludGVyZmFjZSBmb3IgYFtpbnN0YWxsXVsyXWAgZXZlbnQuCiAKIFsxXTogI2lu
c3RhbGwtZXZlbnQtaW50ZXJmYWNlCiBbMl06ICNpbnN0YWxsLWV2ZW50Ci0tLT4KKyAtLT4KIAog
CiAgICAgPHNjcmlwdCB0eXBlPXRleHQvcGxhaW4gaWQ9InVudGVzdGVkX2lkbHMiPgogICAgICAg
ICBpbnRlcmZhY2UgU2VydmljZVdvcmtlciB7fTsKICAgICAgICAgaW50ZXJmYWNlIEluc3RhbGxQ
aGFzZUV2ZW50IHt9OwotICAgIDwvcHJlPgorICAgIDwvc2NyaXB0PgogCiAgICAgPHNjcmlwdD4K
ICAgICAgICAgdmFyIGlkbF9hcnJheSA9IG5ldyBJZGxBcnJheSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c3R1Yi00LjcuMi4yLXJlcGxhY2UtbWV0aG9kLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy4yLjItcmVwbGFj
ZS1tZXRob2QuaHRtbAppbmRleCAwYjQ5ZTFhZjFkNzBkNzc0MTk5Y2E4MjE3YmU1NGI1OWI1NDMw
YWQ5Li5kNzM1YWU2MzQyNDVhZGMzNmM0NDA5MzU5YTdlZmU5YmU1NzRiMTQ1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zdHViLTQuNy4yLjItcmVwbGFjZS1tZXRob2QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy4y
LjItcmVwbGFjZS1tZXRob2QuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNl
cnZpY2UgV29ya2VyczogZXZlbnQucmVwbGFjZSgpPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAg
ICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9T
ZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI3JlcGxhY2UtbWV0aG9kIj4KKyAgICAg
ICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdv
cmtlci8jcmVwbGFjZS1tZXRob2QiPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00
LjcuMy1hY3RpdmF0ZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuMy1hY3RpdmF0ZS1ldmVudC5o
dG1sCmluZGV4IGQ4NmUzZmU5NTM0Mzk0ZGE4ODgyNzNmZDQ3NDY3OTQwODhjZWNkYjEuLmIxZTdk
MmFlMDI0MzllOTU2OGZkMjE0YTIwNmU4OTRiMTM4OGQ0MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NC43LjMtYWN0aXZhdGUtZXZlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy4zLWFjdGl2YXRlLWV2
ZW50Lmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdvcmtlcnM6
IGFjdGl2YXRlIEV2ZW50PC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3Nw
ZWMvc2VydmljZV93b3JrZXIvI2FjdGl2YXRlLWV2ZW50Ij4KKyAgICAgICAgPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUt
ZXZlbnQiPgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuNC4xLWZldGNoLWV2
ZW50LXNlY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjQuMS1mZXRjaC1ldmVudC1zZWN0aW9uLmh0
bWwKaW5kZXggODU1NTkwM2QzY2MxYWNmZTM1MDBjNDMwOTRhODRmMDkwZTljZTAwMC4uMmJhYjg1
Yzc2MTczZjk3MmFhNTQ1MzgyYWUxOGI3OTZhNDFiMDNjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00
LjcuNC4xLWZldGNoLWV2ZW50LXNlY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy40LjEtZmV0
Y2gtZXZlbnQtc2VjdGlvbi5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2Vy
dmljZSBXb3JrZXJzOiBGZXRjaEV2ZW50PC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2ZldGNoLWV2ZW50LXNlY3Rpb24iPgorICAgICAg
ICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyLyNmZXRjaC1ldmVudC1zZWN0aW9uIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKQEAgLTM3LDE0ICszNywxNCBA
QCBlbnVtIENvbnRleHQgewogICAiY2hpbGQiLAogICAibmF2aWdhdGUiCiB9OwotPC9wcmU+Cis8
L3NjcmlwdD4KIAotPCEtLQorPCEtLSAKIFNlcnZpY2UgV29ya2VycyB1c2UgdGhlIGBbRmV0Y2hF
dmVudF1bMV1gIGludGVyZmFjZSBmb3IgYFtmZXRjaF1bMl1gIGV2ZW50LgogCiBbMV06ICNmZXRj
aC1ldmVudC1pbnRlcmZhY2UKIFsyXTogI2ZldGNoLWV2ZW50Ci0tLT4KKyAtLT4KIAogCiAgICAg
PHNjcmlwdCB0eXBlPXRleHQvcGxhaW4gaWQ9InVudGVzdGVkX2lkbHMiPgpAQCAtNTMsNyArNTMs
NyBAQCBTZXJ2aWNlIFdvcmtlcnMgdXNlIHRoZSBgW0ZldGNoRXZlbnRdWzFdYCBpbnRlcmZhY2Ug
Zm9yIGBbZmV0Y2hdWzJdYCBldmVudC4KICAgICAgICAgaW50ZXJmYWNlIEFic3RyYWN0UmVzcG9u
c2Uge307CiAgICAgICAgIGludGVyZmFjZSBTY2FsYXJWYWx1ZVN0cmluZyB7fTsKICAgICAgICAg
aW50ZXJmYWNlIEV2ZW50IHt9OwotICAgIDwvcHJlPgorICAgIDwvc2NyaXB0PgogCiAgICAgPHNj
cmlwdD4KICAgICAgICAgdmFyIGlkbF9hcnJheSA9IG5ldyBJZGxBcnJheSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc3R1Yi00LjcuNC4yLXJlc3BvbmQtd2l0aC1tZXRob2QuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43
LjQuMi1yZXNwb25kLXdpdGgtbWV0aG9kLmh0bWwKaW5kZXggMmM3NTMxODFhZDNhYTM0M2I2NGRk
N2E3NmYzMTk2MGZlNTEwMTg0ZC4uYTg5YWFhMDEwMzZlN2FkNmQwZDliMmU1ZGVkOTFiYWMzMzRj
YWVhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuNC4yLXJlc3BvbmQtd2l0aC1tZXRob2QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zdHViLTQuNy40LjItcmVzcG9uZC13aXRoLW1ldGhvZC5odG1sCkBAIC0yLDcg
KzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBldmVudC5yZXNwb25kV2l0
aChyKTwvdGl0bGU+CiAgICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9zbGlnaHRseW9mZi5naXRodWIuaW8vU2VydmljZVdvcmtlci9zcGVjL3NlcnZpY2Vf
d29ya2VyLyNyZXNwb25kLXdpdGgtbWV0aG9kIj4KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jcmVzcG9uZC13aXRoLW1l
dGhvZCI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy40LjMtZGVmYXVsdC1t
ZXRob2QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3N0dWItNC43LjQuMy1kZWZhdWx0LW1ldGhvZC5odG1sCmluZGV4IDhh
Mjg2NjRlNmNhNDg1MTUyNjg0MGEwYjI2NmJhNDc0OWZkYWMyMmEuLjIzNmYwOTM0OGIzNWNiZjVi
M2E3M2QzYTMwMTA2YTU5MDQ0OTRjODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjQuMy1kZWZh
dWx0LW1ldGhvZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjQuMy1kZWZhdWx0LW1ldGhvZC5odG1s
CkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8dGl0bGU+U2VydmljZSBXb3JrZXJzOiBldmVudC5k
ZWZhdWx0KCk8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvc3BlYy9zZXJ2
aWNlX3dvcmtlci8jZGVmYXVsdC1tZXRob2QiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkZWZhdWx0LW1ldGhvZCI+
CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy40LjQtaXMtcmVsb2FkLWF0dHJp
YnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc3R1Yi00LjcuNC40LWlzLXJlbG9hZC1hdHRyaWJ1dGUuaHRtbAppbmRl
eCA0NTQ0YTg2ZTMyYTczYjgzMGFmODA5MGRiZjk5NjAwNGI2MzE3MmUxLi5mYmQ0MDAzODhhNjkw
NWZiOGMxMzUyZWVkODMwYWIxNTk0ZTBlYThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTQuNy40LjQt
aXMtcmVsb2FkLWF0dHJpYnV0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWItNC43LjQuNC1pcy1yZWxvYWQt
YXR0cmlidXRlLmh0bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDx0aXRsZT5TZXJ2aWNlIFdv
cmtlcnM6IGV2ZW50LmlzUmVsb2FkPC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29y
a2VyL3NwZWMvc2VydmljZV93b3JrZXIvI2lzLXJlbG9hZC1hdHRyaWJ1dGUiPgorICAgICAgICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyNpcy1yZWxvYWQtYXR0cmlidXRlIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NS4xLW9yaWdpbi1yZWxhdGl2aXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTUuMS1vcmlnaW4tcmVsYXRpdml0
eS5odG1sCmluZGV4IDdmMTYyYWZhMmM0NzE2YTVkMDZmMDgwY2NlMTY4OWM4MzUzOGY3MGQuLjYw
ODRjZDIzOWE0NzU1ZmMwNTQwMDUxZDU2YWU0NmM3YjIzNzM1ZjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0
dWItNS4xLW9yaWdpbi1yZWxhdGl2aXR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc3R1Yi01LjEtb3JpZ2luLXJl
bGF0aXZpdHkuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPHRpdGxlPlNlcnZpY2UgV29y
a2VyczogT3JpZ2luIFJlbGF0aXZpdHk8L3RpdGxlPgogICAgIDxoZWFkPgotICAgICAgICA8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vc2xpZ2h0bHlvZmYuZ2l0aHViLmlvL1NlcnZpY2VX
b3JrZXIvc3BlYy9zZXJ2aWNlX3dvcmtlci8jb3JpZ2luLXJlbGF0aXZpdHkiPgorICAgICAgICA8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2Vy
LyNvcmlnaW4tcmVsYXRpdml0eSI+CiAgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTUu
Mi1jcm9zcy1vcmlnaW4tcmVzb3VyY2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zdHViLTUuMi1jcm9zcy1vcmlnaW4t
cmVzb3VyY2VzLmh0bWwKaW5kZXggM2JmOWIyMDAzNTcyZTNjMmFlZWNiOWVhMzFjYzJhYjczMzFl
NDIxMy4uZmM0ZTg1YmYxNGM3ODIyZGI0MzRkOGNiOTE4MDg1MTlhYmI4ODI1YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc3R1Yi01LjItY3Jvc3Mtb3JpZ2luLXJlc291cmNlcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3N0dWIt
NS4yLWNyb3NzLW9yaWdpbi1yZXNvdXJjZXMuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgog
PHRpdGxlPlNlcnZpY2UgV29ya2VyczogQ3Jvc3MtT3JpZ2luIFJlc291cmNlcyAmYW1wOyBDT1JT
PC90aXRsZT4KICAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL3NsaWdodGx5b2ZmLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyL3NwZWMvc2VydmljZV93b3Jr
ZXIvI2Nyb3NzLW9yaWdpbi1yZXNvdXJjZXMiPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjcm9zcy1vcmlnaW4tcmVz
b3VyY2VzIj4KICAgICAgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Rvb2xzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvdG9vbHMvdzNjLWltcG9ydC5sb2cKaW5kZXggZTA1ZWE4OTYyMjA5ZTM1M2M3MDNlYjQ1
NmMzNjBhNmU2YjY1NDNkYS4uOGNmMGFiNjcxNmQ1Y2EzZTEyZjYxNTIxYzIxODRiMTBkYTU2NzBi
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvdG9vbHMvdzNj
LWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KIERvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKIAogVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvdzNjLWltcG9ydC5sb2cK
aW5kZXggNjczYWI4YjQwOGZiNDVlMzg4ZGJhYmE0NGZjNWQ0YzZjY2ZhZmI4OC4uNzU3NTFmYjNk
NTVlYTE0NTg1NjQzOWQzZTkzZmJkY2QxZDI4NzMyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvdzNjLWltcG9y
dC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTEsNyArMSw2IEBACiBUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
IERvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXM0MgQ1NTIG9yIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy10ZXN0CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CiAJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMKIAogVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
</data>

          </attachment>
      

    </bug>

</bugzilla>