<?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>223262</bug_id>
          
          <creation_ts>2021-03-16 10:40:22 -0700</creation_ts>
          <short_desc>[resultsdbpy] Return new-style commits</short_desc>
          <delta_ts>2021-03-30 12:17: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>Tools / Tests</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=221860</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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zhifei_fang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1740019</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-16 10:40:22 -0700</bug_when>
    <thetext>When requesting commit information, the results database should return new-styled commits containing identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740020</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-16 10:40:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/75483361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743911</commentid>
    <comment_count>2</comment_count>
      <attachid>424278</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-25 14:06:44 -0700</bug_when>
    <thetext>Created attachment 424278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744305</commentid>
    <comment_count>3</comment_count>
      <attachid>424399</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-26 13:28:37 -0700</bug_when>
    <thetext>Created attachment 424399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744809</commentid>
    <comment_count>4</comment_count>
      <attachid>424554</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-29 11:47:06 -0700</bug_when>
    <thetext>Created attachment 424554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744820</commentid>
    <comment_count>5</comment_count>
      <attachid>424554</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-29 12:01:39 -0700</bug_when>
    <thetext>Comment on attachment 424554
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424554&amp;action=review

r=me

&gt; Tools/Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller.py:32
&gt; +    if bool(ref) + bool(uuid) + bool(timestamp) &gt; 1:

Is this equivalent to `any([ref, uuid, timestamp])`?

&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:-26
&gt; -from datetime import datetime

Why do we defer the import here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744853</commentid>
    <comment_count>6</comment_count>
      <attachid>424554</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-29 13:11:05 -0700</bug_when>
    <thetext>Comment on attachment 424554
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424554&amp;action=review

&gt;&gt; Tools/Scripts/libraries/resultsdbpy/resultsdbpy/controller/commit_controller.py:32
&gt;&gt; +    if bool(ref) + bool(uuid) + bool(timestamp) &gt; 1:
&gt; 
&gt; Is this equivalent to `any([ref, uuid, timestamp])`?

Not quite. We need at most one of these arguments.

&gt;&gt; Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:-26
&gt;&gt; -from datetime import datetime
&gt; 
&gt; Why do we defer the import here?

Because date time is a bit of a mess, and we can end up having trouble installing the module on some Python 2 configurations. Since we only need it for testing, it makes the most sense to defer the import.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744953</commentid>
    <comment_count>7</comment_count>
      <attachid>424554</attachid>
    <who name="Zhifei Fang">zhifei_fang</who>
    <bug_when>2021-03-29 15:11:36 -0700</bug_when>
    <thetext>Comment on attachment 424554
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=424554&amp;action=review

&gt; Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/commit.js:114
&gt; +                            &amp;#60&lt;a href=&quot;mailto:${escapeHTML(cell.commit.author.emails[0])}&quot;&gt;${escapeHTML(cell.commit.author.emails[0])}&lt;/a&gt;&amp;#62 &lt;br&gt;` : &apos;&apos;}

Since the author.email is in an attribute, just escape html tag may not be enough, it can be easily inject something like this:
&quot; onMouseover= &quot;javascript:alert(&apos;You are hacked!&apos;) 

Then you will end up with something like

&lt;a href=&quot;mailto:&quot; onmouseover=&quot;alert(&apos;You are hacked&apos;)&quot;&gt;

Need to consider &quot; as welll, it can easily close href and create a new attribute, and easily inject with some unwanted code

&gt; Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:195
&gt; +                            &amp;#60&lt;a href=&quot;mailto:${escapeHTML(node.label.author.emails[0])}&quot;&gt;${escapeHTML(node.label.author.emails[0])}&lt;/a&gt;&amp;#62` : &apos;&apos;}

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744980</commentid>
    <comment_count>8</comment_count>
      <attachid>424601</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-29 16:37:41 -0700</bug_when>
    <thetext>Created attachment 424601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745014</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-29 19:27:30 -0700</bug_when>
    <thetext>Committed r275195: &lt;https://commits.webkit.org/r275195&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424601.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745195</commentid>
    <comment_count>10</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-30 11:25:55 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745196</commentid>
    <comment_count>11</comment_count>
      <attachid>424664</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-30 11:25:57 -0700</bug_when>
    <thetext>Created attachment 424664
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745197</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-30 11:26:35 -0700</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745202</commentid>
    <comment_count>13</comment_count>
      <attachid>424666</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-03-30 11:40:57 -0700</bug_when>
    <thetext>Created attachment 424666
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745234</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-30 12:17:44 -0700</bug_when>
    <thetext>Committed r275226: &lt;https://commits.webkit.org/r275226&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424666.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424278</attachid>
            <date>2021-03-25 14:06:44 -0700</date>
            <delta_ts>2021-03-26 13:28:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223262-20210325140643.patch</filename>
            <type>text/plain</type>
            <size>114699</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODcyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWI3M2I4ZmI2ZDA5MmE0MTY3YWRlMDUwYmI3NGE3Yzdl
MDMzYzQ1NS4uZjZmZGYxYzY4MzgwYjM1NjhlNGE0MjdhNDU2MzYwMWJmMGZmMzU3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
NCBAQAorMjAyMS0wMy0yNSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW3Jlc3VsdHNkYnB5XSBSZXR1cm4gbmV3LXN0eWxlIGNvbW1pdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzI2MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdJUAorCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21t
aXQucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkv
cmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weToKKyAgICAgICAgKF9m
aW5kX2NvbXBhcmlzb24pOgorICAgICAgICAodXVpZF9yYW5nZV9mb3JfY29tbWl0X3JhbmdlX3F1
ZXJ5LmRlY29yYXRvci5yZWFsX21ldGhvZCk6CisgICAgICAgICh1dWlkX3JhbmdlX2Zvcl9xdWVy
eS5kZWNvcmF0b3IucmVhbF9tZXRob2QpOgorICAgICAgICAoQ29tbWl0Q29udHJvbGxlci5fZmlu
ZCk6CisgICAgICAgIChDb21taXRDb250cm9sbGVyLnJlZ2lzdGVyKToKKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9j
b250cm9sbGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ29tbWl0Q29udHJvbGxlclRlc3QudGVz
dF9yZWdpc3Rlcl93aXRoX3BhcnRpYWxfY29tbWl0KToKKyAgICAgICAgKENvbW1pdENvbnRyb2xs
ZXJUZXN0LnRlc3RfcmVnaXN0ZXJfd2l0aF9mdWxsX2NvbW1pdCk6CisgICAgICAgIChDb21taXRD
b250cm9sbGVyVGVzdC50ZXN0X2ZpbmRfcmFuZ2VfaWQpOgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X3VuaXR0ZXN0
LnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L2NvbnRyb2xsZXIvZmFpbHVyZV9jb250cm9sbGVyX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAoRmFpbHVyZUNvbnRyb2xsZXJUZXN0LnRlc3Rfbm9fcnVucyk6CisgICAgICAgICogU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci91cGxvYWRf
Y29udHJvbGxlcl91bml0dGVzdC5weToKKyAgICAgICAgKFVwbG9hZENvbnRyb2xsZXJQb3N0VGVz
dC50ZXN0X3VwbG9hZCk6CisgICAgICAgIChVcGxvYWRDb250cm9sbGVyVGVzdC50ZXN0X2Rvd25s
b2FkX2Zvcl9jb21taXQpOgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29udGV4dC5weToKKyAgICAgICAgKEFyY2hpdmVD
b250ZXh0LnJlZ2lzdGVyKToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC9jaV9jb250ZXh0LnB5OgorICAgICAgICAoQ0lDb250ZXh0LnJl
Z2lzdGVyKToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC9jb21taXRfY29udGV4dC5weToKKyAgICAgICAgKENvbW1pdENvbnRleHQuQ29t
bWl0TW9kZWwpOgorICAgICAgICAoQ29tbWl0Q29udGV4dC5Db21taXRNb2RlbC50b19jb21taXQp
OgorICAgICAgICAoQ29tbWl0Q29udGV4dC5Db21taXRCeVJlZik6CisgICAgICAgIChDb21taXRD
b250ZXh0LkNvbW1pdEJ5VXVpZEFzY2VuZGluZyk6CisgICAgICAgIChDb21taXRDb250ZXh0LkNv
bW1pdEJ5VXVpZERlc2NlbmRpbmcpOgorICAgICAgICAoQ29tbWl0Q29udGV4dC5fX2luaXRfXyk6
CisgICAgICAgIChDb21taXRDb250ZXh0LnRpbWVzdGFtcF90b191dWlkKToKKyAgICAgICAgKENv
bW1pdENvbnRleHQuZmluZF9jb21taXRzX2J5X3JlZik6CisgICAgICAgIChDb21taXRDb250ZXh0
LmZpbmRfY29tbWl0c19ieV9yZWYuY2FsbGJhY2spOgorICAgICAgICAoQ29tbWl0Q29udGV4dC5y
ZWdpc3Rlcl9jb21taXQpOgorICAgICAgICAoQ29tbWl0Q29udGV4dC51cmwpOgorICAgICAgICAo
Q29tbWl0Q29udGV4dC5Db21taXRCeUlEKTogRGVsZXRlZC4KKyAgICAgICAgKENvbW1pdENvbnRl
eHQuQ29tbWl0TW9kZWxNazIpOiBEZWxldGVkLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5Db21t
aXRNb2RlbE1rMi50b19jb21taXQpOiBEZWxldGVkLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5D
b21taXRCeVV1aWRBc2NlbmRpbmdNazIpOiBEZWxldGVkLgorICAgICAgICAoQ29tbWl0Q29udGV4
dC5Db21taXRCeVV1aWREZXNjZW5kaW5nTWsyKTogRGVsZXRlZC4KKyAgICAgICAgKENvbW1pdENv
bnRleHQuZmluZF9jb21taXRzX2J5X2lkKTogRGVsZXRlZC4KKyAgICAgICAgKENvbW1pdENvbnRl
eHQuZmluZF9jb21taXRzX2J5X2lkLmNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4
dF91bml0dGVzdC5weToKKyAgICAgICAgKENvbW1pdENvbnRleHRUZXN0LnRlc3RfY29tbWl0X2J5
X2lkKToKKyAgICAgICAgKENvbW1pdENvbnRleHRUZXN0LnRlc3RfY29tbWl0X2J5X3V1aWQpOgor
ICAgICAgICAoQ29tbWl0Q29udGV4dFRlc3QudGVzdF9jb21taXRfYnlfdGltZXN0YW1wKToKKyAg
ICAgICAgKENvbW1pdENvbnRleHRUZXN0LnRlc3RfYWxsX2NvbW1pdHNfc3Rhc2gpOgorICAgICAg
ICAoQ29tbWl0Q29udGV4dFRlc3QudGVzdF9hbGxfY29tbWl0c19zdm4pOgorICAgICAgICAoQ29t
bWl0Q29udGV4dFRlc3QudGVzdF9zdGFzaF9jb21taXRzX2luX3JhbmdlKToKKyAgICAgICAgKENv
bW1pdENvbnRleHRUZXN0LnRlc3Rfc3ZuX2NvbW1pdHNfaW5fcmFuZ2UpOgorICAgICAgICAoQ29t
bWl0Q29udGV4dFRlc3QudGVzdF9zdGFzaF9jb21taXRzX2JldHdlZW4pOgorICAgICAgICAoQ29t
bWl0Q29udGV4dFRlc3QudGVzdF9zdm5fY29tbWl0c19iZXR3ZWVuKToKKyAgICAgICAgKENvbW1p
dENvbnRleHRUZXN0LnRlc3RfY29tbWl0X2Zyb21fc3Rhc2hfcmVwbyk6CisgICAgICAgIChDb21t
aXRDb250ZXh0VGVzdC50ZXN0X2NvbW1pdF9mcm9tX3N2bl9yZXBvKToKKyAgICAgICAgKENvbW1p
dENvbnRleHRUZXN0LnRlc3RfbmV4dF9jb21taXQpOgorICAgICAgICAoQ29tbWl0Q29udGV4dFRl
c3QudGVzdF9wcmV2aW91c19jb21taXQpOgorICAgICAgICAoQ29tbWl0Q29udGV4dFRlc3QudGVz
dF9zaWJsaW5nX2NvbW1pdHMpOgorICAgICAgICAoQ29tbWl0Q29udGV4dFRlc3QudGVzdF91dWlk
X2Zvcl9jb21taXRzKToKKyAgICAgICAgKENvbW1pdENvbnRleHRUZXN0LnRlc3RfYnJhbmNoX2tl
eXNfZm9yX2NvbW1pdHMpOgorICAgICAgICAoQ29tbWl0Q29udGV4dFRlc3QudGVzdF9jb21taXRf
dXJsKToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9tb2RlbC9mYWlsdXJlX2NvbnRleHQucHk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dC5yZWdp
c3Rlcik6CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvbW9kZWwvcmVwb3NpdG9yeS5weToKKyAgICAgICAgKFJlcG9zaXRvcnkuY29tbWl0KToKKyAg
ICAgICAgKFN0YXNoUmVwb3NpdG9yeS5jb21taXQpOgorICAgICAgICAoU3Rhc2hSZXBvc2l0b3J5
LnVybF9mb3JfY29tbWl0KToKKyAgICAgICAgKFdlYktpdFJlcG9zaXRvcnkuY29tbWl0KToKKyAg
ICAgICAgKFdlYktpdFJlcG9zaXRvcnkudXJsX2Zvcl9jb21taXQpOgorICAgICAgICAoV2ViS2l0
UmVwb3NpdG9yeS5yZXByZXNlbnRhdGlvbnMpOgorICAgICAgICAoUmVwb3NpdG9yeS5jb21taXRf
Zm9yX2lkKTogRGVsZXRlZC4KKyAgICAgICAgKFN0YXNoUmVwb3NpdG9yeS5jb21taXRfZm9yX2lk
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdFJlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZCk6IERl
bGV0ZWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvbW9kZWwvc3VpdGVfY29udGV4dC5weToKKyAgICAgICAgKFN1aXRlQ29udGV4dC5yZWdpc3Rl
cik6CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvdGVzdF9jb250ZXh0LnB5OgorICAgICAgICAoVGVzdENvbnRleHQucmVnaXN0ZXIpOgor
ICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVs
L3VwbG9hZF9jb250ZXh0LnB5OgorICAgICAgICAoVXBsb2FkQ29udGV4dC5VcGxvYWRzQnlDb25m
aWd1cmF0aW9uTGVnYWN5LnVucGFjayk6CisgICAgICAgIChVcGxvYWRDb250ZXh0LlVwbG9hZHNC
eUNvbmZpZ3VyYXRpb24udW5wYWNrKToKKyAgICAgICAgKFVwbG9hZENvbnRleHQuX2RvX2pvYl9m
b3Jfa2V5KToKKyAgICAgICAgKFVwbG9hZENvbnRleHQudXBsb2FkX3Rlc3RfcmVzdWx0cyk6Cisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9h
cmNoaXZlX3ZpZXdfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9jb21taXRfdmlldy5weToKKyAgICAgICAgKENvbW1p
dFZpZXcuY29tbWl0KToKKyAgICAgICAgKENvbW1pdFZpZXcuaW5mbyk6CisgICAgICAgIChDb21t
aXRWaWV3LnByZXZpb3VzKToKKyAgICAgICAgKENvbW1pdFZpZXcubmV4dCk6CisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMv
Y29tbWl0LmpzOgorICAgICAgICAoQ29tbWl0KToKKyAgICAgICAgKENvbW1pdC5wcm90b3R5cGUu
bGFiZWwpOgorICAgICAgICAoX0NvbW1pdEJhbmsucHJvdG90eXBlLl9sb2FkU2libGluZ3MpOgor
ICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcv
c3RhdGljL2pzL3RpbWVsaW5lLmpzOgorICAgICAgICAoeEF4aXNGcm9tU2NhbGUpOgorICAgICAg
ICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxh
dGVzL2NvbW1pdC5odG1sOgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbDoKKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9jb21taXQucHk6Cisg
ICAgICAgIChDb21taXQuRW5jb2Rlci5kZWZhdWx0KToKKyAgICAgICAgKENvbW1pdC51dWlkKToK
KyAgICAgICAgKENvbW1pdC5fX3JlcHJfXyk6CisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weToKKyAgICAg
ICAgKEJpdEJ1Y2tldC5yZXF1ZXN0KToKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5weToKKyAgICAgICAgKFNjbUJhc2UpOgorCiAy
MDIxLTAzLTIyICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IG9yZGVyaW5nIG9mIG15IGVtYWlsIGFkZHJlc3NlcyBpbiBjb250cmlidXRvcnMuanNv
bgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9fX2luaXRfXy5weQppbmRleCA1ZDMzY2ZmZGEyZDJkMjEwYmFhZGY2M2NhMmI4
MDRmNzVjYWI5YjZmLi42YzYwOWRlZDMyYzA2MzI0MmU5MDRkZDk3Njk2MmZkODA3YTUxMzkzIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9fX2luaXRfXy5weQpAQCAtNDQsNiArNDQsNiBAQCBleGNlcHQgSW1wb3J0RXJy
b3I6CiAgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3Rh
bGwgd2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgog
ICAgICkKIAotdmVyc2lvbiA9IFZlcnNpb24oMiwgMCwgMykKK3ZlcnNpb24gPSBWZXJzaW9uKDIs
IDAsIDQpCiAKIG5hbWUgPSAncmVzdWx0c2RicHknCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdC5weSBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xs
ZXIvY29tbWl0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzY3NjhlZTgyOTE2
MGFhMWJmZGY2ZGE2ZGFiN2ViZjE0MGRlNTAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICsw
LDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBjYWxl
bmRhcgotaW1wb3J0IGpzb24KLWltcG9ydCByZQotCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRl
dGltZQotZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKLQot
Ci1jbGFzcyBDb21taXQob2JqZWN0KToKLSAgICBUSU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVS
ID0gMTAwCi0gICAgTUFYX0tFWV9MRU5HVEggPSAxMjgKLQotICAgIFJFVklTSU9OX1JFID0gcmUu
Y29tcGlsZShyJ1swLTldKyQnKQotICAgIEhBU0hfUkUgPSByZS5jb21waWxlKHInW2EtZkEtRjAt
OV0rJCcpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9qc29uKGNscywgZGF0YSk6
Ci0gICAgICAgIGRhdGEgPSBkYXRhIGlmIGlzaW5zdGFuY2UoZGF0YSwgZGljdCkgZWxzZSBqc29u
LmxvYWRzKGRhdGEpCi0gICAgICAgIHJldHVybiBjbHMoCi0gICAgICAgICAgICByZXBvc2l0b3J5
X2lkPWRhdGEuZ2V0KCdyZXBvc2l0b3J5X2lkJyksCi0gICAgICAgICAgICBicmFuY2g9ZGF0YS5n
ZXQoJ2JyYW5jaCcpLAotICAgICAgICAgICAgaWQ9ZGF0YS5nZXQoJ2lkJyksCi0gICAgICAgICAg
ICByZXZpc2lvbj1kYXRhLmdldCgncmV2aXNpb24nKSwKLSAgICAgICAgICAgIGhhc2g9ZGF0YS5n
ZXQoJ2hhc2gnKSwKLSAgICAgICAgICAgIHRpbWVzdGFtcD1kYXRhLmdldCgndGltZXN0YW1wJyks
Ci0gICAgICAgICAgICBvcmRlcj1kYXRhLmdldCgnb3JkZXInKSwKLSAgICAgICAgICAgIGNvbW1p
dHRlcj1kYXRhLmdldCgnY29tbWl0dGVyJyksCi0gICAgICAgICAgICBtZXNzYWdlPWRhdGEuZ2V0
KCdtZXNzYWdlJyksCi0gICAgICAgICkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvc2l0
b3J5X2lkLCBicmFuY2gsIGlkLCB0aW1lc3RhbXA9Tm9uZSwgb3JkZXI9Tm9uZSwgY29tbWl0dGVy
PU5vbmUsIG1lc3NhZ2U9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lKToKLSAgICAgICAg
Zm9yIGFyZ3VtZW50IGluIFsoJ3JlcG9zaXRvcnlfaWQnLCByZXBvc2l0b3J5X2lkKSwgKCdicmFu
Y2gnLCBicmFuY2gpLCAoJ2lkJywgaWQpLCAoJ3RpbWVzdGFtcCcsIHRpbWVzdGFtcCldOgotICAg
ICAgICAgICAgaWYgYXJndW1lbnRbMV0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKGYne2FyZ3VtZW50WzBdfSBpcyBub3QgZGVmaW5lZCBmb3IgY29tbWl0JykKLQot
ICAgICAgICBzZWxmLnJlcG9zaXRvcnlfaWQgPSBzdHIocmVwb3NpdG9yeV9pZCkKLSAgICAgICAg
aWYgbm90IHJlLm1hdGNoKHInXlthLXpBLVo/XSskJywgc2VsZi5yZXBvc2l0b3J5X2lkKSBvciBs
ZW4oc2VsZi5yZXBvc2l0b3J5X2lkKSA+IHNlbGYuTUFYX0tFWV9MRU5HVEg6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKGYiJ3tzZWxmLnJlcG9zaXRvcnlfaWR9JyBpcyBhbiBpbnZhbGlk
IHJlcG9zaXRvcnkgaWQiKQotCi0gICAgICAgIHNlbGYuYnJhbmNoID0gc3RyKGJyYW5jaCkKLSAg
ICAgICAgaWYgbm90IHJlLm1hdGNoKHInXlthLXpBLVowLTktLj8vXSskJywgc2VsZi5icmFuY2gp
IG9yIGxlbihzZWxmLmJyYW5jaCkgPiBzZWxmLk1BWF9LRVlfTEVOR1RIOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcihmIid7c2VsZi5icmFuY2h9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBu
YW1lIikKLQotICAgICAgICAjIEFuIGlkIGlzIGVpdGhlciBhIGdpdCBjb21taXQgb3IgU1ZOIHJl
dmlzaW9uLgotICAgICAgICBzZWxmLmlkID0gc3RyKGlkKQotICAgICAgICBpZiBub3QgcmUubWF0
Y2gocideW2EtZkEtRjAtOT9dKyQnLCBzZWxmLmlkKSBvciBsZW4oc2VsZi5pZCkgPiA0MDoKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiIne3NlbGYuaWR9JyBpcyBhbiBpbnZhbGlkIGNv
bW1pdCBpZCIpCi0KLSAgICAgICAgc2VsZi5yZXZpc2lvbiA9IHJldmlzaW9uCi0gICAgICAgIHNl
bGYuaGFzaCA9IGhhc2gKLSAgICAgICAgaWYgc2VsZi5SRVZJU0lPTl9SRS5tYXRjaChzZWxmLmlk
KToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJldmlzaW9uOgotICAgICAgICAgICAgICAgIHNl
bGYucmV2aXNpb24gPSBzZWxmLmlkCi0gICAgICAgIGVsaWYgc2VsZi5IQVNIX1JFLm1hdGNoKHNl
bGYuaWQpOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuaGFzaDoKLSAgICAgICAgICAgICAgICBz
ZWxmLmhhc2ggPSBzZWxmLmlkCi0KLSAgICAgICAgaWYgc2VsZi5yZXZpc2lvbjoKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLnJldmlzaW9uID0gaW50KHNlbGYucmV2aXNp
b24pCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKGYiJ3tzZWxmLnJldmlzaW9ufScgaXMgbm90IGFuIGludGVnZXIiKQotICAg
ICAgICBpZiBzZWxmLmhhc2g6Ci0gICAgICAgICAgICBzZWxmLmhhc2ggPSBzZWxmLmhhc2gubG93
ZXIoKQotCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodGltZXN0YW1wLCBkYXRldGltZSk6Ci0gICAg
ICAgICAgICBzZWxmLnRpbWVzdGFtcCA9IHRpbWVzdGFtcAotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi50aW1lc3RhbXAgPSBkYXRldGltZS51dGNmcm9tdGltZXN0YW1wKGludCh0aW1l
c3RhbXApKQotICAgICAgICBzZWxmLm9yZGVyID0gaW50KG9yZGVyKSBpZiBvcmRlciBlbHNlIDAK
LQotICAgICAgICBzZWxmLmNvbW1pdHRlciA9IGNvbW1pdHRlciBpZiBjb21taXR0ZXIgZWxzZSBO
b25lCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UgaWYgbWVzc2FnZSBlbHNlIE5vbmUK
LQotICAgIGRlZiB0aW1lc3RhbXBfYXNfZXBvY2goc2VsZik6Ci0gICAgICAgIHJldHVybiBjYWxl
bmRhci50aW1lZ20oc2VsZi50aW1lc3RhbXAudGltZXR1cGxlKCkpCi0KLSAgICBAcHJvcGVydHkK
LSAgICBkZWYgdXVpZChzZWxmKToKLSAgICAgICAgIyBSZWJhc2UtYmFzZWQgd29ya2Zsb3dzIGlu
IGdpdCBjYW4gY2F1c2UgY29tbWl0cyB0byBoYXZlIHRoZSBzYW1lIGNvbW1pdCB0aW1lc3RhbXAu
IFRvIHVuaXF1ZWx5IHJlY29nbml6ZSB0aGVtLAotICAgICAgICAjIG11bHRpcGx5IGVhY2ggdGlt
ZXN0YW1wIGJ5IHRoZSBgVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUmAuCi0gICAgICAgIHJl
dHVybiBzZWxmLnRpbWVzdGFtcF9hc19lcG9jaCgpICogc2VsZi5USU1FU1RBTVBfVE9fVVVJRF9N
VUxUSVBMSUVSICsgc2VsZi5vcmRlcgotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0g
ICAgICAgIHJldHVybiAoaXNpbnN0YW5jZShvdGhlciwgdHlwZShzZWxmKSkgYW5kIChzZWxmLnJl
cG9zaXRvcnlfaWQsIHNlbGYuYnJhbmNoLCBzZWxmLmlkKSA9PSAob3RoZXIucmVwb3NpdG9yeV9p
ZCwgb3RoZXIuYnJhbmNoLCBvdGhlci5pZCkpCi0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVy
KToKLSAgICAgICAgcmV0dXJuIG5vdCAoc2VsZiA9PSBvdGhlcikKLQotICAgIGRlZiBfX2x0X18o
c2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFtcCA8IG90aGVyLnRpbWVzdGFt
cDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHNlbGYudGltZXN0YW1wID4g
b3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVy
biBzZWxmLm9yZGVyIDwgb3RoZXIub3JkZXIKLQotICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIp
OgotICAgICAgICByZXR1cm4gc2VsZiA8IG90aGVyIG9yIHNlbGYgPT0gb3RoZXIKLQotICAgIGRl
ZiBfX2d0X18oc2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFtcCA+IG90aGVy
LnRpbWVzdGFtcDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHNlbGYudGlt
ZXN0YW1wIDwgb3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
ICAgIHJldHVybiBzZWxmLm9yZGVyID4gb3RoZXIub3JkZXIKLQotICAgIGRlZiBfX2dlX18oc2Vs
Ziwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZiA+IG90aGVyIG9yIHNlbGYgPT0gb3RoZXIK
LQotICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5yZXBv
c2l0b3J5X2lkKSBeIGhhc2goc2VsZi5icmFuY2gpIF4gaGFzaChzZWxmLmlkKQotCi0gICAgZGVm
IHRvX2pzb24oc2VsZiwgcHJldHR5X3ByaW50PUZhbHNlKToKLSAgICAgICAgcmV0dXJuIGpzb24u
ZHVtcHMoc2VsZiwgY2xzPXNlbGYuRW5jb2Rlciwgc29ydF9rZXlzPXByZXR0eV9wcmludCwgaW5k
ZW50PTQgaWYgcHJldHR5X3ByaW50IGVsc2UgTm9uZSkKLQotICAgIGNsYXNzIEVuY29kZXIoRmxh
c2tKU09ORW5jb2Rlcik6Ci0KLSAgICAgICAgZGVmIGRlZmF1bHQoc2VsZiwgb2JqKToKLSAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBDb21taXQpOgotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHt9Ci0gICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gb2JqLl9fZGljdF9fLml0
ZW1zKCk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9
IHZhbHVlCi0gICAgICAgICAgICAgICAgcmVzdWx0Wyd0aW1lc3RhbXAnXSA9IG9iai50aW1lc3Rh
bXBfYXNfZXBvY2goKQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKLSAgICAgICAgICAg
IHJldHVybiBzdXBlcihDb21taXQuRW5jb2Rlciwgc2VsZikuZGVmYXVsdChvYmopCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250
cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weQppbmRl
eCA0NDQyNGQ1NTljOGVhODg2MDRkMzgyNGFlYTAyOTRhYzUxOWJhOWEyLi40ZGJhMzU1ZGQxMjY4
MmRhZWUyZDQzZTI5NmJhZGU5MGJlNGJhZGViIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9s
bGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkKQEAgLTI0LDI2ICsyNCwyNSBAQCBp
bXBvcnQganNvbgogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogZnJvbSBm
bGFzayBpbXBvcnQgYWJvcnQsIGpzb25pZnksIHJlcXVlc3QKLWZyb20gcmVzdWx0c2RicHkuY29u
dHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1w
b3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5Ci1mcm9t
IHdlYmtpdHNjbXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQgYXMgU2NtQ29tbWl0Citmcm9tIHdl
YmtpdHNjbXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQKIAogCi1kZWYgX2ZpbmRfY29tcGFyaXNv
bihjb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9pZCwgYnJhbmNoLCBpZCwgdXVpZCwgdGltZXN0
YW1wLCBwcmlvcml0eT1taW4pOgotICAgIGlmIGJvb2woaWQpICsgYm9vbCh1dWlkKSArIGJvb2wo
dGltZXN0YW1wKSA+IDE6Ci0gICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5
IHNlYXJjaCBieSBvbmUgb2YgW2NvbW1pdCBpZCwgY29tbWl0IHV1aWQsIHRpbWVzdGFtcF0gaW4g
YSBzaW5nbGUgcmVxdWVzdCcpCitkZWYgX2ZpbmRfY29tcGFyaXNvbihjb21taXRfY29udGV4dCwg
cmVwb3NpdG9yeV9pZCwgYnJhbmNoLCByZWYsIHV1aWQsIHRpbWVzdGFtcCwgcHJpb3JpdHk9bWlu
KToKKyAgICBpZiBib29sKHJlZikgKyBib29sKHV1aWQpICsgYm9vbCh0aW1lc3RhbXApID4gMToK
KyAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBv
ZiBbY29tbWl0IGlkL3JlZiwgY29tbWl0IHV1aWQsIHRpbWVzdGFtcF0gaW4gYSBzaW5nbGUgcmVx
dWVzdCcpCiAKICAgICB0cnk6CiAgICAgICAgIGlmIHV1aWQ6CiAgICAgICAgICAgICAjIFdlIGRv
bid0IG5lZWQgcmVhbCBjb21taXQgdG8gc2VhcmNoIGJ5IHV1aWQgYW5kIENvbW1pdENvbnRleHRz
IGhhdmUgdHJvdWJsZSBkaWZmcmVudGlhdGluZyBiZXR3ZWVuIHV1aWRzIGFuZCB0aW1lc3RhbXBz
LgogICAgICAgICAgICAgdXVpZCA9IHByaW9yaXR5KFtpbnQoZWxlbWVudCkgZm9yIGVsZW1lbnQg
aW4gdXVpZF0pCi0gICAgICAgICAgICByZXR1cm4gQ29tbWl0KCc/JywgJz8nLCAnPycsIHV1aWQg
Ly8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIsIHV1aWQgJSBDb21taXQuVElN
RVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikKKyAgICAgICAgICAgIHJldHVybiBDb21taXQodGlt
ZXN0YW1wPXV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUiwgb3JkZXI9dXVpZCAlIENvbW1p
dC5VVUlEX01VTFRJUExJRVIpCiAgICAgICAgIGlmIHRpbWVzdGFtcDoKICAgICAgICAgICAgIHJl
dHVybiBwcmlvcml0eShbcm91bmQoZmxvYXQoZWxlbWVudCkpIGZvciBlbGVtZW50IGluIHRpbWVz
dGFtcF0pCiAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgIGFib3J0KDQwMCwgZGVzY3Jp
cHRpb249J1RpbWVzdGFtcCBhbmQgdXVpZCBtdXN0IGJlIGludGVnZXJzJykKIAotICAgIGlmIG5v
dCByZXBvc2l0b3J5X2lkIGFuZCBub3QgaWQ6CisgICAgaWYgbm90IHJlcG9zaXRvcnlfaWQgYW5k
IG5vdCByZWY6CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgaWYgbm90IHJlcG9zaXRvcnlfaWQ6
CiAgICAgICAgIHJlcG9zaXRvcnlfaWQgPSBjb21taXRfY29udGV4dC5yZXBvc2l0b3JpZXMua2V5
cygpCkBAIC01MywxMSArNTIsMTEgQEAgZGVmIF9maW5kX2NvbXBhcmlzb24oY29tbWl0X2NvbnRl
eHQsIHJlcG9zaXRvcnlfaWQsIGJyYW5jaCwgaWQsIHV1aWQsIHRpbWVzdGFtcCwKIAogICAgIHJl
c3VsdCA9IFtdCiAgICAgZm9yIHJlcG9zaXRvcnkgaW4gcmVwb3NpdG9yeV9pZDoKLSAgICAgICAg
Zm9yIGIgaW4gYnJhbmNoOgotICAgICAgICAgICAgaWYgaWQ6Ci0gICAgICAgICAgICAgICAgZm9y
IGVsbSBpbiBpZDoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGNvbW1pdF9jb250ZXh0
LmZpbmRfY29tbWl0c19ieV9pZChyZXBvc2l0b3J5LCBiLCBlbG0pCi0gICAgICAgICAgICBlbHNl
OgorICAgICAgICBpZiByZWY6CisgICAgICAgICAgICBmb3IgZWxtIGluIHJlZjoKKyAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRzX2J5X3JlZihyZXBv
c2l0b3J5LCByZWY9ZWxtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGIgaW4gYnJh
bmNoOgogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBjb21taXRfY29udGV4dC5maW5kX2NvbW1p
dHNfaW5fcmFuZ2UocmVwb3NpdG9yeSwgYiwgbGltaXQ9MSkKIAogICAgIGlmIG5vdCByZXN1bHQ6
CkBAIC02OCw5ICs2Nyw5IEBAIGRlZiBfZmluZF9jb21wYXJpc29uKGNvbW1pdF9jb250ZXh0LCBy
ZXBvc2l0b3J5X2lkLCBicmFuY2gsIGlkLCB1dWlkLCB0aW1lc3RhbXAsCiBkZWYgdXVpZF9yYW5n
ZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRvcihtZXRob2QpOgog
ICAgICAgICBkZWYgcmVhbF9tZXRob2Qob2JqLCBicmFuY2g9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFmdGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5vbmUsIGFm
dGVyX2lkPU5vbmUsIGFmdGVyX3V1aWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFm
dGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5vbmUsIGFmdGVyX2lkPU5vbmUs
IGFmdGVyX3V1aWQ9Tm9uZSwgYWZ0ZXJfcmVmPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBhZnRlcl90aW1lc3RhbXA9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZV9y
ZXBvc2l0b3J5X2lkPU5vbmUsIGJlZm9yZV9icmFuY2g9Tm9uZSwgYmVmb3JlX2lkPU5vbmUsIGJl
Zm9yZV91dWlkPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVfcmVwb3NpdG9y
eV9pZD1Ob25lLCBiZWZvcmVfYnJhbmNoPU5vbmUsIGJlZm9yZV9pZD1Ob25lLCBiZWZvcmVfdXVp
ZD1Ob25lLCBiZWZvcmVfcmVmPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVf
dGltZXN0YW1wPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgICAgICMgV2UncmUgbWFraW5nIGFu
IGFzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBo
YXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAgICAgICAgICAgICAjIHRoaXMg
ZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CkBAIC03OSwxMSArNzgsMTEgQEAgZGVm
IHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgogICAgICAgICAgICAgICAgICAg
ICBicmFuY2ggPSBbTm9uZV0KICAgICAgICAgICAgICAgICBiZWdpbiA9IF9maW5kX2NvbXBhcmlz
b24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9p
ZD1hZnRlcl9yZXBvc2l0b3J5X2lkLCBicmFuY2g9YWZ0ZXJfYnJhbmNoIG9yIGJyYW5jaCwKLSAg
ICAgICAgICAgICAgICAgICAgaWQ9YWZ0ZXJfaWQsIHV1aWQ9YWZ0ZXJfdXVpZCwgdGltZXN0YW1w
PWFmdGVyX3RpbWVzdGFtcCwgcHJpb3JpdHk9bWluLAorICAgICAgICAgICAgICAgICAgICByZWY9
YWZ0ZXJfcmVmIG9yIGFmdGVyX2lkLCB1dWlkPWFmdGVyX3V1aWQsIHRpbWVzdGFtcD1hZnRlcl90
aW1lc3RhbXAsIHByaW9yaXR5PW1pbiwKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg
ICAgZW5kID0gX2ZpbmRfY29tcGFyaXNvbigKICAgICAgICAgICAgICAgICAgICAgb2JqLmNvbW1p
dF9jb250ZXh0LCByZXBvc2l0b3J5X2lkPWJlZm9yZV9yZXBvc2l0b3J5X2lkLCBicmFuY2g9YmVm
b3JlX2JyYW5jaCBvciBicmFuY2gsCi0gICAgICAgICAgICAgICAgICAgIGlkPWJlZm9yZV9pZCwg
dXVpZD1iZWZvcmVfdXVpZCwgdGltZXN0YW1wPWJlZm9yZV90aW1lc3RhbXAsIHByaW9yaXR5PW1h
eCwKKyAgICAgICAgICAgICAgICAgICAgcmVmPWJlZm9yZV9yZWYgb3IgYmVmb3JlX2lkLCB1dWlk
PWJlZm9yZV91dWlkLCB0aW1lc3RhbXA9YmVmb3JlX3RpbWVzdGFtcCwgcHJpb3JpdHk9bWF4LAog
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKG9iaiwgYmVn
aW49YmVnaW4sIGVuZD1lbmQsIGJyYW5jaD1icmFuY2gsICoqa3dhcmdzKQogCkBAIC05NiwxMyAr
OTUsMTQgQEAgZGVmIHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgogZGVmIHV1
aWRfcmFuZ2VfZm9yX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRvcihtZXRob2QpOgogICAgICAg
ICBAdXVpZF9yYW5nZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCkKLSAgICAgICAgZGVmIHJlYWxf
bWV0aG9kKG9iaiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVp
ZD1Ob25lLCB0aW1lc3RhbXA9Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoqa3dhcmdzKToK
LSAgICAgICAgICAgICMgV2UncmUgbWFraW5nIGFuIGFzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1
c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQg
ZG9lcyBub3QsCisgICAgICAgIGRlZiByZWFsX21ldGhvZChvYmosIHJlcG9zaXRvcnlfaWQ9Tm9u
ZSwgYnJhbmNoPU5vbmUsIGlkPU5vbmUsIHJlZj1Ob25lLCB1dWlkPU5vbmUsIHRpbWVzdGFtcD1O
b25lLCBiZWdpbj1Ob25lLCBlbmQ9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBXZSdy
ZSBtYWtpbmcgYW4gYXNzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRv
ciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAgICAgICAg
ICAgICAjIHRoaXMgZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CiAgICAgICAgICAg
ICB3aXRoIG9iai5jb21taXRfY29udGV4dDoKICAgICAgICAgICAgICAgICBpbmRleCA9IF9maW5k
X2NvbXBhcmlzb24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29udGV4dCwgcmVw
b3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLAotICAgICAgICAgICAgICAg
ICAgICBpZD1pZCwgdXVpZD11dWlkLCB0aW1lc3RhbXA9dGltZXN0YW1wLCBwcmlvcml0eT1tYXgs
CisgICAgICAgICAgICAgICAgICAgIHJlZj1yZWYgb3IgaWQsCisgICAgICAgICAgICAgICAgICAg
IHV1aWQ9dXVpZCwgdGltZXN0YW1wPXRpbWVzdGFtcCwgcHJpb3JpdHk9bWF4LAogICAgICAgICAg
ICAgICAgICkKICAgICAgICAgICAgICAgICBpZiBpbmRleDoKICAgICAgICAgICAgICAgICAgICAg
aWYgYmVnaW4gb3IgZW5kOgpAQCAtMTEwLDcgKzExMCw3IEBAIGRlZiB1dWlkX3JhbmdlX2Zvcl9x
dWVyeSgpOgogICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGluZGV4CiAgICAgICAgICAgICAg
ICAgICAgIGVuZCA9IGluZGV4CiAKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGVuZCwg
Q29tbWl0KSBhbmQgZW5kLnJlcG9zaXRvcnlfaWQgIT0gJz8nOgorICAgICAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UoZW5kLCBDb21taXQpIGFuZCBlbmQucmVwb3NpdG9yeV9pZDoKICAgICAgICAg
ICAgICAgICAgICAgcmVwb3NpdG9yaWVzID0gbGlzdChvYmouY29tbWl0X2NvbnRleHQucmVwb3Np
dG9yaWVzLmtleXMoKSkKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzLnJlbW92ZShl
bmQucmVwb3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAgICAgY29tbWl0cyA9IFtlbmRdCkBA
IC0xNDAsOSArMTQwLDkgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihIYXNDb21taXRDb250ZXh0
KToKIAogICAgIEB1dWlkX3JhbmdlX2Zvcl9jb21taXRfcmFuZ2VfcXVlcnkoKQogICAgIEBsaW1p
dF9mb3JfcXVlcnkoREVGQVVMVF9MSU1JVCkKLSAgICBkZWYgX2ZpbmQoc2VsZiwgcmVwb3NpdG9y
eV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVpZD1Ob25lLCB0aW1lc3RhbXA9Tm9u
ZSwgbGltaXQ9Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoqa3dhcmdzKToKKyAgICBkZWYg
X2ZpbmQoc2VsZiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgcmVm
PU5vbmUsIHV1aWQ9Tm9uZSwgdGltZXN0YW1wPU5vbmUsIGxpbWl0PU5vbmUsIGJlZ2luPU5vbmUs
IGVuZD1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEFzc2VydFJlcXVlc3QucXVlcnlfa3dhcmdz
X2VtcHR5KCoqa3dhcmdzKQotCisgICAgICAgIHJlZiA9IHJlZiBvciBpZAogICAgICAgICB3aXRo
IHNlbGYuY29tbWl0X2NvbnRleHQ6CiAgICAgICAgICAgICBpZiBub3QgcmVwb3NpdG9yeV9pZDoK
ICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkID0gc2VsZi5jb21taXRfY29udGV4dC5yZXBv
c2l0b3JpZXMua2V5cygpCkBAIC0xNTIsOCArMTUyLDggQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxl
cihIYXNDb21taXRDb250ZXh0KToKICAgICAgICAgICAgIGlmIG5vdCBicmFuY2g6CiAgICAgICAg
ICAgICAgICAgYnJhbmNoID0gW05vbmVdCiAKLSAgICAgICAgICAgIGlmIGJvb2woaWQpICsgYm9v
bCh1dWlkKSArIGJvb2wodGltZXN0YW1wKSA+IDE6Ci0gICAgICAgICAgICAgICAgYWJvcnQoNDAw
LCBkZXNjcmlwdGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBvZiBbY29tbWl0IGlkLCBjb21t
aXQgdXVpZCwgdGltZXN0YW1wXSBpbiBhIHNpbmdsZSByZXF1ZXN0JykKKyAgICAgICAgICAgIGlm
IGJvb2wocmVmKSArIGJvb2wodXVpZCkgKyBib29sKHRpbWVzdGFtcCkgPiAxOgorICAgICAgICAg
ICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5IHNlYXJjaCBieSBvbmUgb2Yg
W2NvbW1pdCBpZC9yZWYsIGNvbW1pdCB1dWlkLCB0aW1lc3RhbXBdIGluIGEgc2luZ2xlIHJlcXVl
c3QnKQogCiAgICAgICAgICAgICByZXN1bHQgPSBbXQogICAgICAgICAgICAgZm9yIHJlcG9zaXRv
cnkgaW4gcmVwb3NpdG9yeV9pZDoKQEAgLTE2NCw5ICsxNjQsOSBAQCBjbGFzcyBDb21taXRDb250
cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocmVz
dWx0c19mb3JfcmVwbykgPj0gbGltaXQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQogCi0gICAgICAgICAgICAgICAgICAgIGlmIGlkOgotICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIGVsbSBpbiBpZDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9y
ZXBvICs9IHNlbGYuY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnks
IGIsIGVsbSwgbGltaXQ9bGltaXQgLSBsZW4ocmVzdWx0c19mb3JfcmVwbykpCisgICAgICAgICAg
ICAgICAgICAgIGlmIHJlZjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlbG0gaW4gcmVm
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNfZm9yX3JlcG8gKz0gc2VsZi5j
b21taXRfY29udGV4dC5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnksIHJlZj1lbG0sIGxp
bWl0PWxpbWl0IC0gbGVuKHJlc3VsdHNfZm9yX3JlcG8pKQogICAgICAgICAgICAgICAgICAgICBl
bGlmIHV1aWQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZWxtIGluIHV1aWQ6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfcmVwbyArPSBzZWxmLmNvbW1pdF9j
b250ZXh0LmZpbmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRvcnksIGIsIGludChlbG0pLCBsaW1p
dD1saW1pdCAtIGxlbihyZXN1bHRzX2Zvcl9yZXBvKSkKQEAgLTI4MCw3ICsyODAsNyBAQCBjbGFz
cyBDb21taXRDb250cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAgICAgIGFi
b3J0KDQwMCwgZGVzY3JpcHRpb249J0V4cGVjdGVkIHVwbG9hZGVkIGRhdGEgdG8gYmUganNvbicp
CiAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgY2FuZGlkYXRlID0gU2NtQ29tbWl0LmZyb21f
anNvbihjb21taXQpCisgICAgICAgICAgICBjYW5kaWRhdGUgPSBDb21taXQuZnJvbV9qc29uKGNv
bW1pdCkKIAogICAgICAgICAgICAgIyBDb21taXQgbmVlZHMgdG8gYmUgc3VmZmljaWVudGx5IGRl
ZmluZWQKICAgICAgICAgICAgIGlmIGNhbmRpZGF0ZS5yZXBvc2l0b3J5X2lkIGFuZCBjYW5kaWRh
dGUuYnJhbmNoIGFuZCBjYW5kaWRhdGUudGltZXN0YW1wIGFuZCAoY2FuZGlkYXRlLnJldmlzaW9u
IG9yIGNhbmRpZGF0ZS5oYXNoKToKQEAgLTMyOCwxMiArMzI4LDQgQEAgY2xhc3MgQ29tbWl0Q29u
dHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKIAogICAgICAgICBpZiBpc19lbmRwb2ludDoKICAg
ICAgICAgICAgIHJldHVybiBqc29uaWZ5KHsnc3RhdHVzJzogJ29rJ30pCi0gICAgICAgIHJldHVy
biBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPWNvbW1pdC5yZXBvc2l0b3J5X2lk
LAotICAgICAgICAgICAgaWQ9Y29tbWl0LnJldmlzaW9uIG9yIGNvbW1pdC5oYXNoLAotICAgICAg
ICAgICAgYnJhbmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0
LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1pdC5vcmRlciwKLSAgICAgICAgICAg
IGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25l
LAotICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwKLSAgICAgICAgKQorICAgICAg
ICByZXR1cm4gY29tbWl0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29u
dHJvbGxlci9jb21taXRfY29udHJvbGxlcl91bml0dGVzdC5weQppbmRleCA5ZDI2NmI1NTdlM2Jl
ZTMyNTU2MTc1Y2VjYzEwMDg3MWY0MTk2MjE5Li44ZWQ5OWQ4OTI4MWY2NWE4YWNjN2JlMTE0Zjc0
MjBiMzYyNzRiZmE3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXJfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDYgQEAK
IGZyb20gZmFrZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVkaXMKIGZyb20gcmVkaXMgaW1wb3J0
IFN0cmljdFJlZGlzCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuYXBpX3JvdXRlcyBpbXBv
cnQgQVBJUm91dGVzCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBD
b21taXQKIGZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC5mbGFza190ZXN0Y2FzZSBpbXBv
cnQgRmxhc2tUZXN0Q2FzZQogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jYXNzYW5kcmFfY29udGV4
dCBpbXBvcnQgQ2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2NrX2Nh
c3NhbmRyYV9jb250ZXh0IGltcG9ydCBNb2NrQ2Fzc2FuZHJhQ29udGV4dApAQCAtMzIsNiArMzEs
NyBAQCBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLm1vZGVsIGltcG9ydCBNb2RlbAogZnJvbSByZXN1
bHRzZGJweS5tb2RlbC53YWl0X2Zvcl9kb2NrZXJfdGVzdF9jYXNlIGltcG9ydCBXYWl0Rm9yRG9j
a2VyVGVzdENhc2UKIGZyb20gcmVzdWx0c2RicHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU3Rh
c2hSZXBvc2l0b3J5LCBXZWJLaXRSZXBvc2l0b3J5CiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQg
T3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3Mg
Q29tbWl0Q29udHJvbGxlclRlc3QoRmxhc2tUZXN0Q2FzZSwgV2FpdEZvckRvY2tlclRlc3RDYXNl
KToKQEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlclRlc3QoRmxhc2tUZXN0
Q2FzZSwgV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgcmVzcG9uc2UgPSBjbGllbnQu
Z2V0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hlcycpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkaWN0KAotICAgICAgICAgICAgd2Via2l0PVsnYnJhbmNoLWEnLCAnYnJhbmNoLWInLCAn
dGFncy90YWctMScsICd0YWdzL3RhZy0yJywgJ3RydW5rJ10sCisgICAgICAgICAgICB3ZWJraXQ9
WydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10sCiAgICAgICAgICAgICBzYWZhcmk9Wydi
cmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10pLCByZXNwb25zZS5qc29uKCkpCiAKICAgICAg
ICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hl
cz9icmFuY2g9YnJhbmNoJykKQEAgLTEyMSwyNyArMTIxLDI4IEBAIGNsYXNzIENvbW1pdENvbnRy
b2xsZXJUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAg
IGdpdF9jb21taXQgPSBDb21taXQoCiAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmkn
LAogICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKLSAgICAgICAgICAgIGlkPSc4ZWJhMjgwZTMy
ZGFhZjVmZGRiYmI2NWFlYTM3OTMyZWE5YWQ4NWRmJywKKyAgICAgICAgICAgIGhhc2g9JzhlYmEy
ODBlMzJkYWFmNWZkZGJiYjY1YWVhMzc5MzJlYTlhZDg1ZGYnLAogICAgICAgICAgICAgdGltZXN0
YW1wPTE2MDE2NTAxMDAsCiAgICAgICAgICAgICBvcmRlcj0wLAotICAgICAgICAgICAgY29tbWl0
dGVyPSdqYmVkYXJkQHdlYmtpdC5vcmcnLAorICAgICAgICAgICAgYXV0aG9yPSdqYmVkYXJkQHdl
YmtpdC5vcmcnLAogICAgICAgICAgICAgbWVzc2FnZT0nY3VzdG9tIGNvbW1pdCcsCiAgICAgICAg
ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIGNsaWVudC5wb3N0KHNlbGYuVVJMICsg
Jy9hcGkvY29tbWl0cycsIGRhdGE9Q29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGdpdF9jb21taXQp
KS5zdGF0dXNfY29kZSkKKyAgICAgICAgcHJpbnQoQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGdp
dF9jb21taXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgY2xpZW50LnBvc3Qoc2Vs
Zi5VUkwgKyAnL2FwaS9jb21taXRzJywganNvbj1Db21taXQuRW5jb2RlcigpLmRlZmF1bHQoZ2l0
X2NvbW1pdCkpLnN0YXR1c19jb2RlKQogICAgICAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoc2Vs
Zi5VUkwgKyAnL2FwaS9jb21taXRzP3JlcG9zaXRvcnlfaWQ9c2FmYXJpJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyMDAsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKENvbW1pdC5mcm9tX2pzb24ocmVzcG9uc2UuanNvbigpWzBdKSwgZ2l0X2NvbW1p
dCkKIAogICAgICAgICBzdm5fY29tbWl0ID0gQ29tbWl0KAogICAgICAgICAgICAgcmVwb3NpdG9y
eV9pZD0nd2Via2l0JywKLSAgICAgICAgICAgIGJyYW5jaD0ndHJ1bmsnLAotICAgICAgICAgICAg
aWQ9JzEyMzQnLAorICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKKyAgICAgICAgICAgIHJldmlz
aW9uPScxMjM0JywKICAgICAgICAgICAgIHRpbWVzdGFtcD0xNjAxNjUwMTAwLAogICAgICAgICAg
ICAgb3JkZXI9MCwKLSAgICAgICAgICAgIGNvbW1pdHRlcj0namJlZGFyZEB3ZWJraXQub3JnJywK
KyAgICAgICAgICAgIGF1dGhvcj0namJlZGFyZEB3ZWJraXQub3JnJywKICAgICAgICAgICAgIG1l
c3NhZ2U9J2N1c3RvbSBjb21taXQnLAogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHMnLCBkYXRhPUNvbW1p
dC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVzX2NvZGUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHMn
LCBqc29uPUNvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVzX2NvZGUp
CiAgICAgICAgIHJlc3BvbnNlID0gY2xpZW50LmdldChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHM/
cmVwb3NpdG9yeV9pZD13ZWJraXQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVz
cG9uc2Uuc3RhdHVzX2NvZGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LmZyb21f
anNvbihyZXNwb25zZS5qc29uKClbMF0pLCBzdm5fY29tbWl0KQpAQCAtMjA0LDggKzIwNSw4IEBA
IGNsYXNzIENvbW1pdENvbnRyb2xsZXJUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJU
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYucmVnaXN0ZXJfYWxsX2NvbW1pdHMoY2xpZW50KQogICAg
ICAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoc2VsZi5VUkwgKyAnL2FwaS9jb21taXRzP2FmdGVy
X2lkPTYmYmVmb3JlX2lkPWZmZjgzYmIyZDkxNycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MjAwLCByZXNwb25zZS5zdGF0dXNfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbQ29t
bWl0LmZyb21fanNvbihlbGVtZW50KS5pZCBmb3IgZWxlbWVudCBpbiByZXNwb25zZS5qc29uKCld
LCBbCi0gICAgICAgICAgICAnNicsICc5YjgzMTFmMjVhNzdiYTE0OTIzZDlkNWE2NTMyMTAzZjU0
YWJlZmNiJywgJ2ZmZjgzYmIyZDkxNzFiNGQ5MTk2ZTk3N2ViMDUwOGZkNTdlN2EwOGQnLAorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFtDb21taXQuZnJvbV9qc29uKGVsZW1lbnQpLnJldmlzaW9u
IG9yIENvbW1pdC5mcm9tX2pzb24oZWxlbWVudCkuaGFzaCBmb3IgZWxlbWVudCBpbiByZXNwb25z
ZS5qc29uKCldLCBbCisgICAgICAgICAgICA2LCAnOWI4MzExZjI1YTc3YmExNDkyM2Q5ZDVhNjUz
MjEwM2Y1NGFiZWZjYicsICdmZmY4M2JiMmQ5MTcxYjRkOTE5NmU5NzdlYjA1MDhmZDU3ZTdhMDhk
JywKICAgICAgICAgXSkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19k
b2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNz
YW5kcmFDb250ZXh0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1p
dF91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc4ZGE0NWEyNmY4
MzJjNTYxM2E1NmVjZDE0ZGI0NTI5NDM5YjExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDE1NyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1p
bXBvcnQgdW5pdHRlc3QKLQotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBv
cnQgQ29tbWl0Ci0KLQotY2xhc3MgQ29tbWl0VW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
Ci0gICAgZGVmIHRlc3RfY29tcGFyZShzZWxmKToKLSAgICAgICAgY29tbWl0MSA9IENvbW1pdCgK
LSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFzdGVyJywKLSAg
ICAgICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJjYTMxNDgyY2E3MTViMzgzJywK
LSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAgICAgICApCi0gICAgICAgIGNv
bW1pdDIgPSBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFu
Y2g9J21hc3RlcicsCi0gICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdj
NWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwgb3JkZXI9
MSwKLSAgICAgICAgKQotICAgICAgICBjb21taXQzID0gQ29tbWl0KAotICAgICAgICAgICAgcmVw
b3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgaWQ9J2Ji
NmJkYTVmNDRkZDI0ZDBiNTQ1MzliOGZmNmU4YzE3ZjUxOTI0OWEnLAotICAgICAgICAgICAgdGlt
ZXN0YW1wPTE1Mzc4MTAyODEsCi0gICAgICAgICkKLSAgICAgICAgY29tbWl0NCA9IENvbW1pdCgK
LSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFzdGVyJywKLSAg
ICAgICAgICAgIGlkPTIzNjUyMiwKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3ODI2NjE0LAot
ICAgICAgICApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvbW1pdDIgPiBjb21taXQxKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tbWl0MiA+PSBjb21taXQxKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoY29tbWl0MSA+PSBjb21taXQxKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
Y29tbWl0MSA8IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxIDw9IGNv
bW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxIDw9IGNvbW1pdDEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxID09IGNvbW1pdDEpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGNvbW1pdDIgPCBjb21taXQzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29t
bWl0MyA+IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0MS50aW1lc3Rh
bXAsIGNvbW1pdDIudGltZXN0YW1wKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQ0
ID4gY29tbWl0MykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChjb21taXQzLnJlcG9zaXRv
cnlfaWQsIGNvbW1pdDQucmVwb3NpdG9yeV9pZCkKLQotICAgIGRlZiB0ZXN0X2VuY29kaW5nKHNl
bGYpOgotICAgICAgICBjb21taXRzX3RvX3Rlc3QgPSBbCi0gICAgICAgICAgICBDb21taXQoCi0g
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAot
ICAgICAgICAgICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJjYTMxNDgyY2E3MTVi
MzgzJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwKLSAgICAgICAgICAg
ICksIENvbW1pdCgKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFu
Y2g9J21hc3RlcicsCi0gICAgICAgICAgICAgICAgaWQ9JzdiZTQwODQyNThhNDUyZThmZTIyZjM2
Mjg3YzViMzIxZTljODI0OWInLAotICAgICAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1
LCBvcmRlcj0xLAotICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0nZW1haWwxQHdlYmtpdC5vcmcn
LCBtZXNzYWdlPSdDaGFuZ2Vsb2cnLAotICAgICAgICAgICAgKSwgQ29tbWl0KAotICAgICAgICAg
ICAgICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAg
ICAgICAgICBpZD0yMzY1MjIsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc4MjY2MTQs
Ci0gICAgICAgICAgICApLAotICAgICAgICBdCi0gICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0
c190b190ZXN0OgotICAgICAgICAgICAgY29udmVydGVkX2NvbW1pdCA9IENvbW1pdC5mcm9tX2pz
b24oY29tbWl0LnRvX2pzb24oKSkKLQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
aXQsIGNvbnZlcnRlZF9jb21taXQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1p
dC5yZXBvc2l0b3J5X2lkLCBjb252ZXJ0ZWRfY29tbWl0LnJlcG9zaXRvcnlfaWQpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5pZCwgY29udmVydGVkX2NvbW1pdC5pZCkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnRpbWVzdGFtcCwgY29udmVydGVkX2Nv
bW1pdC50aW1lc3RhbXApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5vcmRl
ciwgY29udmVydGVkX2NvbW1pdC5vcmRlcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbWl0LmNvbW1pdHRlciwgY29udmVydGVkX2NvbW1pdC5jb21taXR0ZXIpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5tZXNzYWdlLCBjb252ZXJ0ZWRfY29tbWl0Lm1lc3Nh
Z2UpCi0KLSAgICBkZWYgdGVzdF91ZGlkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KENvbW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFz
dGVyJywKLSAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5
YzgyNDliJywKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LCBvcmRlcj0xLAotICAg
ICAgICApLnV1aWQsIDE1Mzc1NTA2ODUwMSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWQoc2VsZik6
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0g
ICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJp
JywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4
ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9Tm9u
ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhj
ZXB0aW9uKSwgJ3RpbWVzdGFtcCBpcyBub3QgZGVmaW5lZCBmb3IgY29tbWl0JykKLQotICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycm9yOgotICAgICAgICAg
ICAgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J2ludmFsaWQtcmVwbycs
IGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZl
MjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1
NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9y
LmV4Y2VwdGlvbiksICInaW52YWxpZC1yZXBvJyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgaWQi
KQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6
Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0naScg
KiAxMjksIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0
NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1w
PTE1Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
KGVycm9yLmV4Y2VwdGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRv
cnkgaWQiKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMg
ZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9p
ZD0nc2FmYXJpJywgYnJhbmNoPSc8aHRtbD5pbnZhbGlkLWJyYW5jaDwvaHRtbD4nLAotICAgICAg
ICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywK
LSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhjZXB0aW9uKSwgIic8aHRtbD5pbnZh
bGlkLWJyYW5jaDwvaHRtbD4nIGlzIGFuIGludmFsaWQgYnJhbmNoIG5hbWUiKQotCi0gICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAg
ICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNo
PSdpJyAqIDEyOSwKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYy
ODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUs
Ci0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2Vw
dGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBuYW1lIikKLQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycm9yOgotICAgICAg
ICAgICAgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJy
YW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nPGh0bWw+MTIzNDwvaHRtbD4nLAot
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAgICAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlcnJvci5leGNlcHRpb24pLCAiJzxodG1sPjEyMzQ8
L2h0bWw+JyBpcyBhbiBpbnZhbGlkIGNvbW1pdCBpZCIpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBlcnJvcjoKLSAgICAgICAgICAgIENvbW1pdCgKLSAg
ICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3RlcicsCi0g
ICAgICAgICAgICAgICAgaWQ9JzAnICogNDEsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1
Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVy
cm9yLmV4Y2VwdGlvbiksIGYiJ3snMCcgKiA0MX0nIGlzIGFuIGludmFsaWQgY29tbWl0IGlkIikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3VwbG9hZF9j
b250cm9sbGVyX3VuaXR0ZXN0LnB5CmluZGV4IGQzZDZhZWJkMzkyZjJmODY5ZWZlMTM0MzA0ZWY0
OTlhZTkwMDc5NzEuLmY5ODZiNWY0NDMwNjcwNmNkZjJjYjBkYzJhYTU0NTY4ZTE1Zjc2NjIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5
L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci91cGxvYWRf
Y29udHJvbGxlcl91bml0dGVzdC5weQpAQCAtNDksOCArNDksMTAgQEAgY2xhc3MgVXBsb2FkQ29u
dHJvbGxlclBvc3RUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAg
ICAgZGVmIHRlc3RfdXBsb2FkKHNlbGYsIGNsaWVudCwgKiprd2FyZ3MpOgogICAgICAgICB1cGxv
YWRfZGljdCA9IGRpY3QoCiAgICAgICAgICAgICBzdWl0ZT0nbGF5b3V0LXRlc3RzJywKLSAgICAg
ICAgICAgIGNvbW1pdHM9W2RpY3QocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgaWQ9J2Q4YmNlMjZm
YTY1YzZmYzhmMzljMTc5MjdhYmI3N2Y2OWZhYjgyZmMnKSwgZGljdChyZXBvc2l0b3J5X2lkPSd3
ZWJraXQnLCBpZD02KV0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPUNvbmZpZ3VyYXRpb24u
RW5jb2RlcigpLmRlZmF1bHQoQ29uZmlndXJhdGlvbigKKyAgICAgICAgICAgIGNvbW1pdHM9Wwor
ICAgICAgICAgICAgICAgIGRpY3QocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgaGFzaD0nZDhiY2Uy
NmZhNjVjNmZjOGYzOWMxNzkyN2FiYjc3ZjY5ZmFiODJmYycpLAorICAgICAgICAgICAgICAgIGRp
Y3QocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgaGFzaD0nNzVlYWVmMWM5MjQyZjkyYThkNzY5NGU4
Y2NkMzEwZjY5Y2Y5NjgzYicpLAorICAgICAgICAgICAgXSwgY29uZmlndXJhdGlvbj1Db25maWd1
cmF0aW9uLkVuY29kZXIoKS5kZWZhdWx0KENvbmZpZ3VyYXRpb24oCiAgICAgICAgICAgICAgICAg
cGxhdGZvcm09J01hYycsIHZlcnNpb249JzEwLjE0LjAnLCBzZGs9JzE4QTM5MScsCiAgICAgICAg
ICAgICAgICAgaXNfc2ltdWxhdG9yPUZhbHNlLCBhcmNoaXRlY3R1cmU9J3g4Nl82NCcsCiAgICAg
ICAgICAgICAgICAgc3R5bGU9J1JlbGVhc2UnLCBmbGF2b3I9J3drMicsCkBAIC02Nyw3ICs2OSw3
IEBAIGNsYXNzIFVwbG9hZENvbnRyb2xsZXJQb3N0VGVzdChGbGFza1Rlc3RDYXNlLCBXYWl0Rm9y
RG9ja2VyVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1
c19jb2RlLCAyMDApCiAKICAgICAgICAgcmV0cmlldmVkID0gcmVzcG9uc2UuanNvbigpWzBdCi0g
ICAgICAgIHJldHJpZXZlZFsnY29tbWl0cyddID0gW2RpY3QocmVwb3NpdG9yeV9pZD1jb21taXRb
J3JlcG9zaXRvcnlfaWQnXSwgaWQ9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5nZXQoJ3Jldmlz
aW9uJykpKSBmb3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQorICAgICAgICByZXRy
aWV2ZWRbJ2NvbW1pdHMnXSA9IFtkaWN0KHJlcG9zaXRvcnlfaWQ9Y29tbWl0WydyZXBvc2l0b3J5
X2lkJ10sIGhhc2g9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5nZXQoJ3JldmlzaW9uJykpKSBm
b3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJldHJpZXZlZCwgdXBsb2FkX2RpY3QpCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNl
Lm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3Nh
bmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKQEAgLTE5MCw3ICsxOTIsNyBAQCBjbGFzcyBVcGxv
YWRDb250cm9sbGVyVGVzdChGbGFza1Rlc3RDYXNlLCBXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXNwb25zZS5qc29uKCkpKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnZDhiY2UyNmZhNjVjNmZjOGYzOWMxNzkyN2FiYjc3ZjY5ZmFi
ODJmYyddLCBbcmVzdWx0Wydjb21taXRzJ11bMV1bJ2hhc2gnXSBmb3IgcmVzdWx0IGluIHJlc3Bv
bnNlLmpzb24oKV0pCiAKLSAgICAgICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KHNlbGYuVVJMICsg
Jy9hcGkvdXBsb2FkP3BsYXRmb3JtPU1hYyZzdHlsZT1SZWxlYXNlJmZsYXZvcj13azImaWQ9Nicp
CisgICAgICAgIHJlc3BvbnNlID0gY2xpZW50LmdldChzZWxmLlVSTCArICcvYXBpL3VwbG9hZD9w
bGF0Zm9ybT1NYWMmc3R5bGU9UmVsZWFzZSZmbGF2b3I9d2syJmlkPXI2JykKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDUsIGxlbihyZXNwb25zZS5qc29uKCkpKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFs2XSAqIDUsIFtyZXN1bHRbJ2NvbW1pdHMnXVswXVsncmV2aXNpb24nXSBmb3IgcmVzdWx0
IGluIHJlc3BvbnNlLmpzb24oKV0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9hcmNoaXZlX2NvbnRleHQucHkgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9hcmNoaXZl
X2NvbnRleHQucHkKaW5kZXggZmE4NGRmMjk2NDE4YzJkMmQ2YTk4YWQ5YWVhODg0OGNkMTc0NGZj
ZS4uZDY0OThjYmE3MjUzZTIzYzgyMTU3NTYyMDFkZDRjNTJmMmU4ZjE3ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvYXJj
aGl2ZV9jb250ZXh0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29udGV4dC5weQpAQCAtMSw0ICsxLDQgQEAKLSMg
Q29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDEzICsyNywxMyBAQCBpbXBvcnQg
emlwZmlsZQogCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUgaW1wb3J0IGNvbHVtbnMKIGZyb20g
ZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29t
bWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuYXJjaGl2ZXIgaW1wb3J0
IEFyY2hpdmVyCiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNhc3NhbmRyYV9hcmNoaXZlciBpbXBv
cnQgQ2Fzc2FuZHJhQXJjaGl2ZXIKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29tbWl0X2NvbnRl
eHQgaW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29uZmlndXJh
dGlvbl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRCeUNvbmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0
c2RicHkubW9kZWwuczNfYXJjaGl2ZXIgaW1wb3J0IFMzQXJjaGl2ZXIKIGZyb20gcmVzdWx0c2Ri
cHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1wb3J0IFVwbG9hZENvbnRleHQKK2Zyb20gd2Via2l0
c2NtcHkgaW1wb3J0IENvbW1pdAogCiAKIGRlZiBfZ2V0X3RpbWUoaW5wdXRfdGltZSk6CkBAIC0x
MTQsNyArMTE0LDcgQEAgY2xhc3MgQXJjaGl2ZUNvbnRleHQob2JqZWN0KToKIAogICAgICAgICB3
aXRoIHNlbGY6CiAgICAgICAgICAgICB1dWlkID0gc2VsZi5jb21taXRfY29udGV4dC51dWlkX2Zv
cl9jb21taXRzKGNvbW1pdHMpCi0gICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0
LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUu
dGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQorICAgICAgICAgICAgdHRsID0g
aW50KCh1dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAt
IHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQogCiAgICAgICAgICAg
ICBmb3IgYnJhbmNoIGluIHNlbGYuY29tbWl0X2NvbnRleHQuYnJhbmNoX2tleXNfZm9yX2NvbW1p
dHMoY29tbWl0cyk6CiAgICAgICAgICAgICAgICAgc2VsZi5jb25maWd1cmF0aW9uX2NvbnRleHQu
cmVnaXN0ZXJfY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLCBicmFuY2g9YnJhbmNoLCB0aW1l
c3RhbXA9dGltZXN0YW1wKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY2lfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NpX2NvbnRleHQucHkKaW5k
ZXggMmQ2MDk3NjhjYjIyYjNiZTVjYzVmYWE1YjZjNjk4NjBjNTBiOTA4My4uYTIzMDQ3MGI4NTNj
YmQxNTdhYTNhYzA2ODVhMDlhZDQwODlhZTI0YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY2lfY29udGV4dC5weQorKysg
Yi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9j
aV9jb250ZXh0LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDExICszMSwxMiBAQCBpbXBvcnQgdXJsbGliLnBhcnNlCiBmcm9tIGNhc3NhbmRyYS5j
cWxlbmdpbmUgaW1wb3J0IGNvbHVtbnMKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBm
cm9tIGZha2VyZWRpcyBpbXBvcnQgRmFrZVN0cmljdFJlZGlzCi1mcm9tIHJlc3VsdHNkYnB5LmNv
bnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29t
bWl0X2NvbnRleHQgaW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwu
Y29uZmlndXJhdGlvbl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRCeUNvbmZpZ3VyYXRpb24KIGZy
b20gcmVzdWx0c2RicHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1wb3J0IFVwbG9hZENhbGxiYWNr
Q29udGV4dAogCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKKwogCiBjbGFzcyBDSUNv
bnRleHQoVXBsb2FkQ2FsbGJhY2tDb250ZXh0KToKICAgICBERUZBVUxUX0NBU1NBTkRSQV9MSU1J
VCA9IDEwMApAQCAtMTM1LDcgKzEzNiw3IEBAIGNsYXNzIENJQ29udGV4dChVcGxvYWRDYWxsYmFj
a0NvbnRleHQpOgogICAgICAgICAgICAgICAgICAgICBkZWwgZGV0YWlsc1trZXldCiAKICAgICAg
ICAgICAgIHV1aWQgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMoY29tbWl0
cykKLSAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJ
RF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50
dGxfc2Vjb25kcyBlbHNlIE5vbmUKKyAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvIENvbW1p
dC5VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBz
ZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQogCiAgICAgICAgICAgICB3aXRoIHNlbGYsIHNlbGYu
Y2Fzc2FuZHJhLmJhdGNoX3F1ZXJ5X2NvbnRleHQoKToKICAgICAgICAgICAgICAgICBmb3IgYnJh
bmNoIGluIHNlbGYuY29tbWl0X2NvbnRleHQuYnJhbmNoX2tleXNfZm9yX2NvbW1pdHMoY29tbWl0
cyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250ZXh0LnB5CmluZGV4IGUz
MTg2MjNlMDFiMjAyZDZkNTY2M2IxYmY1YWY5NzYyMGQ1YTIyYmYuLjFlMGRkYzBlYjViOGU1ZDM2
YTczNzc4ZDcyMTFkNjIzYTZlZGYzZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250ZXh0LnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2Nv
bW1pdF9jb250ZXh0LnB5CkBAIC0yNyw0NSArMjcsMTQgQEAgaW1wb3J0IHRpbWUKIGZyb20gY2Fz
c2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5l
Lm1vZGVscyBpbXBvcnQgTW9kZWwKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9t
IHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0
c2RicHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgUmVwb3NpdG9yeQogCi1mcm9tIHdlYmtpdHNj
bXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQgYXMgU2NtQ29tbWl0LCBDb250cmlidXRvcgorZnJv
bSB3ZWJraXRzY21weSBpbXBvcnQgU2NtQmFzZSwgQ29tbWl0LCBDb250cmlidXRvcgogCiAKIGNs
YXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKIAogICAgIGNsYXNzIENvbW1pdE1vZGVsKE1vZGVs
KToKLSAgICAgICAgcmVwb3NpdG9yeV9pZCA9IGNvbHVtbnMuVGV4dChwYXJ0aXRpb25fa2V5PVRy
dWUsIHJlcXVpcmVkPVRydWUpCi0gICAgICAgIGJyYW5jaCA9IGNvbHVtbnMuVGV4dChwYXJ0aXRp
b25fa2V5PVRydWUsIHJlcXVpcmVkPVRydWUpCi0gICAgICAgIGNvbW1pdHRlciA9IGNvbHVtbnMu
VGV4dCgpCi0gICAgICAgIG1lc3NhZ2UgPSBjb2x1bW5zLlRleHQoKQotCi0gICAgICAgIGRlZiB0
b19jb21taXQoc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4gQ29tbWl0KAotICAgICAgICAgICAg
ICAgIHJlcG9zaXRvcnlfaWQ9c2VsZi5yZXBvc2l0b3J5X2lkLCBicmFuY2g9c2VsZi5icmFuY2gs
Ci0gICAgICAgICAgICAgICAgaWQ9c2VsZi5jb21taXRfaWQsCi0gICAgICAgICAgICAgICAgdGlt
ZXN0YW1wPXNlbGYudXVpZCAvLyBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUiwK
LSAgICAgICAgICAgICAgICBvcmRlcj1zZWxmLnV1aWQgJSBDb21taXQuVElNRVNUQU1QX1RPX1VV
SURfTVVMVElQTElFUiwKLSAgICAgICAgICAgICAgICBjb21taXR0ZXI9c2VsZi5jb21taXR0ZXIs
IG1lc3NhZ2U9c2VsZi5tZXNzYWdlLAotICAgICAgICAgICAgKQotCi0gICAgY2xhc3MgQ29tbWl0
QnlJRChDb21taXRNb2RlbCk6Ci0gICAgICAgIF9fdGFibGVfbmFtZV9fID0gJ2NvbW1pdHNfaWRf
dG9fdGltZXN0YW1wX3V1aWQnCi0gICAgICAgIGNvbW1pdF9pZCA9IGNvbHVtbnMuVGV4dChwcmlt
YXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlKQotICAgICAgICB1dWlkID0gY29sdW1ucy5CaWdJ
bnQocmVxdWlyZWQ9VHJ1ZSkKLQotICAgIGNsYXNzIENvbW1pdEJ5VXVpZEFzY2VuZGluZyhDb21t
aXRNb2RlbCk6Ci0gICAgICAgIF9fdGFibGVfbmFtZV9fID0gJ2NvbW1pdHNfdGltZXN0YW1wX3V1
aWRfdG9faWRfYXNjZW5kaW5nJwotICAgICAgICB1dWlkID0gY29sdW1ucy5CaWdJbnQocHJpbWFy
eV9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSwgY2x1c3RlcmluZ19vcmRlcj0nQVNDJykKLSAgICAg
ICAgY29tbWl0X2lkID0gY29sdW1ucy5UZXh0KHJlcXVpcmVkPVRydWUpCi0KLSAgICBjbGFzcyBD
b21taXRCeVV1aWREZXNjZW5kaW5nKENvbW1pdE1vZGVsKToKLSAgICAgICAgX190YWJsZV9uYW1l
X18gPSAnY29tbWl0c190aW1lc3RhbXBfdXVpZF90b19pZF9kZXNjZW5kaW5nJwotICAgICAgICB1
dWlkID0gY29sdW1ucy5CaWdJbnQocHJpbWFyeV9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSwgY2x1
c3RlcmluZ19vcmRlcj0nREVTQycpCi0gICAgICAgIGNvbW1pdF9pZCA9IGNvbHVtbnMuVGV4dChy
ZXF1aXJlZD1UcnVlKQotCi0gICAgY2xhc3MgQ29tbWl0TW9kZWxNazIoTW9kZWwpOgogICAgICAg
ICByZXBvc2l0b3J5X2lkID0gY29sdW1ucy5UZXh0KHBhcnRpdGlvbl9rZXk9VHJ1ZSwgcmVxdWly
ZWQ9VHJ1ZSkKICAgICAgICAgcGVvcGxlID0gY29sdW1ucy5UZXh0KHJlcXVpcmVkPUZhbHNlKQog
ICAgICAgICBtZXNzYWdlID0gY29sdW1ucy5UZXh0KHJlcXVpcmVkPUZhbHNlKQpAQCAtNzUsMjkg
KzQ0LDI5IEBAIGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAgcmV2aXNpb24g
PSBjb2x1bW5zLkludGVnZXIocmVxdWlyZWQ9RmFsc2UpCiAKICAgICAgICAgZGVmIHRvX2NvbW1p
dChzZWxmKToKLSAgICAgICAgICAgIHJldHVybiBTY21Db21taXQoCisgICAgICAgICAgICByZXR1
cm4gQ29tbWl0KAogICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9c2VsZi5yZXBvc2l0b3J5
X2lkLCBicmFuY2g9c2VsZi5icmFuY2gsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPXNlbGYu
dXVpZCAvLyBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUiwKLSAgICAgICAgICAg
ICAgICBvcmRlcj1zZWxmLnV1aWQgJSBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElF
UiwKLSAgICAgICAgICAgICAgICBhdXRob3I9c2VsZi5wZW9wbGUuZ2V0KCdhdXRob3InKSBpZiBz
ZWxmLnBlb3BsZSBlbHNlIE5vbmUsCisgICAgICAgICAgICAgICAgdGltZXN0YW1wPXNlbGYudXVp
ZCAvLyBDb21taXQuVVVJRF9NVUxUSVBMSUVSLAorICAgICAgICAgICAgICAgIG9yZGVyPXNlbGYu
dXVpZCAlIENvbW1pdC5VVUlEX01VTFRJUExJRVIsCisgICAgICAgICAgICAgICAgYXV0aG9yPWpz
b24ubG9hZHMoc2VsZi5wZW9wbGUpIGlmIHNlbGYucGVvcGxlIGVsc2UgTm9uZSwKICAgICAgICAg
ICAgICAgICBtZXNzYWdlPXNlbGYubWVzc2FnZSwKICAgICAgICAgICAgICAgICBpZGVudGlmaWVy
PXNlbGYuaWRlbnRpZmllciwKICAgICAgICAgICAgICAgICBoYXNoPXNlbGYuaGFzaCwKICAgICAg
ICAgICAgICAgICByZXZpc2lvbj1zZWxmLnJldmlzaW9uLAogICAgICAgICAgICAgKQogCi0gICAg
Y2xhc3MgQ29tbWl0QnlSZWYoQ29tbWl0TW9kZWxNazIpOgorICAgIGNsYXNzIENvbW1pdEJ5UmVm
KENvbW1pdE1vZGVsKToKICAgICAgICAgX190YWJsZV9uYW1lX18gPSAnY29tbWl0c19yZWZfdG9f
b2JqZWN0JwogICAgICAgICByZWYgPSBjb2x1bW5zLlRleHQocHJpbWFyeV9rZXk9VHJ1ZSwgcmVx
dWlyZWQ9VHJ1ZSkKICAgICAgICAgdXVpZCA9IGNvbHVtbnMuQmlnSW50KHJlcXVpcmVkPVRydWUp
CiAgICAgICAgIGJyYW5jaCA9IGNvbHVtbnMuVGV4dChyZXF1aXJlZD1UcnVlKQogCi0gICAgY2xh
c3MgQ29tbWl0QnlVdWlkQXNjZW5kaW5nTWsyKENvbW1pdE1vZGVsTWsyKToKKyAgICBjbGFzcyBD
b21taXRCeVV1aWRBc2NlbmRpbmcoQ29tbWl0TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25hbWVf
XyA9ICdjb21taXRzX3V1aWRfdG9fb2JqZWN0X2FzY2VuZGluZycKICAgICAgICAgYnJhbmNoID0g
Y29sdW1ucy5UZXh0KHBhcnRpdGlvbl9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSkKICAgICAgICAg
dXVpZCA9IGNvbHVtbnMuQmlnSW50KHByaW1hcnlfa2V5PVRydWUsIHJlcXVpcmVkPVRydWUsIGNs
dXN0ZXJpbmdfb3JkZXI9J0FTQycpCiAKLSAgICBjbGFzcyBDb21taXRCeVV1aWREZXNjZW5kaW5n
TWsyKENvbW1pdE1vZGVsTWsyKToKKyAgICBjbGFzcyBDb21taXRCeVV1aWREZXNjZW5kaW5nKENv
bW1pdE1vZGVsKToKICAgICAgICAgX190YWJsZV9uYW1lX18gPSAnY29tbWl0c191dWlkX3RvX29i
amVjdF9kZXNjZW5kaW5nJwogICAgICAgICBicmFuY2ggPSBjb2x1bW5zLlRleHQocGFydGl0aW9u
X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlKQogICAgICAgICB1dWlkID0gY29sdW1ucy5CaWdJbnQo
cHJpbWFyeV9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSwgY2x1c3RlcmluZ19vcmRlcj0nREVTQycp
CkBAIC0xMjAsMTAgKzg5LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAg
ICBzZWxmLm5hbWUgPSAnY29tbWl0LWlkZW50aWZpZXJzJwogCiAgICAgICAgIHdpdGggc2VsZjoK
LSAgICAgICAgICAgIGZvciBvbGQgaW4gW3NlbGYuQ29tbWl0QnlJRCwgc2VsZi5Db21taXRCeVV1
aWRBc2NlbmRpbmcsIHNlbGYuQ29tbWl0QnlVdWlkRGVzY2VuZGluZ106Ci0gICAgICAgICAgICAg
ICAgc2VsZi5jYXNzYW5kcmEuY3JlYXRlX3RhYmxlKG9sZCkKLQotICAgICAgICAgICAgZm9yIHRh
YmxlIGluIFtzZWxmLkNvbW1pdEJ5UmVmLCBzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZ01rMiwg
c2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5nTWsyLCBzZWxmLkJyYW5jaGVzXToKKyAgICAgICAg
ICAgIGZvciB0YWJsZSBpbiBbc2VsZi5Db21taXRCeVJlZiwgc2VsZi5Db21taXRCeVV1aWRBc2Nl
bmRpbmcsIHNlbGYuQ29tbWl0QnlVdWlkRGVzY2VuZGluZywgc2VsZi5CcmFuY2hlc106CiAgICAg
ICAgICAgICAgICAgc2VsZi5jYXNzYW5kcmEuY3JlYXRlX3RhYmxlKHRhYmxlKQogCiAgICAgZGVm
IF9fZW50ZXJfXyhzZWxmKToKQEAgLTEzNSwxMCArMTAxLDEwIEBAIGNsYXNzIENvbW1pdENvbnRl
eHQob2JqZWN0KToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgdGltZXN0YW1wX3RvX3V1aWQo
Y2xzLCB0aW1lc3RhbXA9Tm9uZSk6CiAgICAgICAgIGlmIHRpbWVzdGFtcCBpcyBOb25lOgotICAg
ICAgICAgICAgcmV0dXJuIGludCh0aW1lLnRpbWUoKSkgKiBDb21taXQuVElNRVNUQU1QX1RPX1VV
SURfTVVMVElQTElFUgorICAgICAgICAgICAgcmV0dXJuIGludCh0aW1lLnRpbWUoKSkgKiBDb21t
aXQuVVVJRF9NVUxUSVBMSUVSCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh0aW1lc3RhbXAsIGRh
dGV0aW1lKToKLSAgICAgICAgICAgIHJldHVybiBjYWxlbmRhci50aW1lZ20odGltZXN0YW1wLnRp
bWV0dXBsZSgpKSAqIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSCi0gICAgICAg
IHJldHVybiBpbnQodGltZXN0YW1wKSAqIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBM
SUVSCisgICAgICAgICAgICByZXR1cm4gY2FsZW5kYXIudGltZWdtKHRpbWVzdGFtcC50aW1ldHVw
bGUoKSkgKiBDb21taXQuVVVJRF9NVUxUSVBMSUVSCisgICAgICAgIHJldHVybiBpbnQodGltZXN0
YW1wKSAqIENvbW1pdC5VVUlEX01VTFRJUExJRVIKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRl
ZiBjb252ZXJ0X3RvX3V1aWQoY2xzLCB2YWx1ZSwgZGVmYXVsdD0wKToKQEAgLTE2MCw3ICsxMjYs
NyBAQCBjbGFzcyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICMgdGhpcyBjYXNlLCB0
cmFjayBicmFuY2hlcyB3aGljaCBhcmUgbm90IHRoZSBkZWZhdWx0IGJyYW5jaCBpbmRlcGVuZGVu
dGx5LgogICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6CiAgICAgICAgICAgICByZXBvID0g
c2VsZi5yZXBvc2l0b3JpZXMuZ2V0KGNvbW1pdC5yZXBvc2l0b3J5X2lkLCBSZXBvc2l0b3J5KGtl
eT1jb21taXQucmVwb3NpdG9yeV9pZCkpCi0gICAgICAgICAgICBpZiBjb21taXQuYnJhbmNoICE9
IHJlcG8uZGVmYXVsdF9icmFuY2g6CisgICAgICAgICAgICBpZiBjb21taXQuYnJhbmNoIG5vdCBp
biBTY21CYXNlLkRFRkFVTFRfQlJBTkNIRVM6CiAgICAgICAgICAgICAgICAgYnJhbmNoZXMuYWRk
KGNvbW1pdC5icmFuY2gpCiAgICAgICAgIGlmIGxlbihicmFuY2hlcykgPT0gMDoKICAgICAgICAg
ICAgIGJyYW5jaGVzLmFkZChzZWxmLkRFRkFVTFRfQlJBTkNIX0tFWSkKQEAgLTE4NCw0NiArMTUw
LDI3IEBAIGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAgICAgIHJhaXNlIFR5
cGVFcnJvcihmJ0V4cGVjdGVkIHR5cGUge1JlcG9zaXRvcnl9LCBnb3Qge3R5cGUocmVwb3NpdG9y
eSl9JykKICAgICAgICAgc2VsZi5yZXBvc2l0b3JpZXNbcmVwb3NpdG9yeS5rZXldID0gcmVwb3Np
dG9yeQogCi0gICAgZGVmIGZpbmRfY29tbWl0c19ieV9pZChzZWxmLCByZXBvc2l0b3J5X2lkLCBi
cmFuY2gsIGNvbW1pdF9pZCwgbGltaXQ9MTAwKToKLSAgICAgICAgaWYgYnJhbmNoIGlzIE5vbmU6
Ci0gICAgICAgICAgICBicmFuY2ggPSBzZWxmLnJlcG9zaXRvcmllc1tyZXBvc2l0b3J5X2lkXS5k
ZWZhdWx0X2JyYW5jaAotCi0gICAgICAgIGRlZiBjYWxsYmFjayhjb21taXRfaWQ9Y29tbWl0X2lk
KToKKyAgICBkZWYgZmluZF9jb21taXRzX2J5X3JlZihzZWxmLCByZXBvc2l0b3J5X2lkLCByZWYs
IGxpbWl0PTEwMCk6CisgICAgICAgIGRlZiBjYWxsYmFjayhyZWY9cmVmKToKICAgICAgICAgICAg
IHdpdGggc2VsZjoKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNvbW1pdF9pZCwgaW50
KSBvciBjb21taXRfaWQuaXNkaWdpdCgpOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo
cmVmLCBpbnQpIG9yIHJlZi5pc2RpZ2l0KCk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBb
bW9kZWwudG9fY29tbWl0KCkgZm9yIG1vZGVsIGluIHNlbGYuY2Fzc2FuZHJhLnNlbGVjdF9mcm9t
X3RhYmxlKAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5Db21taXRCeUlELl9fdGFibGVf
bmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlf
aWQ9cmVwb3NpdG9yeV9pZCwgYnJhbmNoPWJyYW5jaCwgY29tbWl0X2lkPXN0cihjb21taXRfaWQp
LAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5Db21taXRCeVJlZi5fX3RhYmxlX25hbWVf
XywgbGltaXQ9bGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPXJl
cG9zaXRvcnlfaWQsIHJlZj0ncnt9Jy5mb3JtYXQocmVmKSwKICAgICAgICAgICAgICAgICAgICAg
KV0KIAogICAgICAgICAgICAgICAgICMgRklYTUU6IFNBU0kgaW5kZWNpZXMgYXJlIHRoZSBjYW5v
aWNhbCB3YXkgdG8gc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgcmVxdWlyZSBDYXNzYW5kcmEgMy40
IHdoaWNoCiAgICAgICAgICAgICAgICAgIyBoYXNuJ3QgYmVlbiBkZXBsb3llZCB0byBvdXIgZGF0
YWNlbnRlcnMgeWV0LiBUaGlzIHdvcmtzIGZvciBjb21taXRzLCBidXQgaXMgbGVzcyB0cmFuc3Bh
cmVudC4KICAgICAgICAgICAgICAgICByZXR1cm4gW21vZGVsLnRvX2NvbW1pdCgpIGZvciBtb2Rl
bCBpbiBzZWxmLmNhc3NhbmRyYS5zZWxlY3RfZnJvbV90YWJsZSgKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5Db21taXRCeUlELl9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAg
ICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLCBj
b21taXRfaWRfX2d0ZT1jb21taXRfaWQubG93ZXIoKSwgY29tbWl0X2lkX19sdGU9KGNvbW1pdF9p
ZC5sb3dlcigpICsgJ2cnKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5Db21taXRCeVJlZi5f
X3RhYmxlX25hbWVfXywgbGltaXQ9bGltaXQsCisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRv
cnlfaWQ9cmVwb3NpdG9yeV9pZCwgcmVmX19ndGU9cmVmLmxvd2VyKCksIHJlZl9fbHRlPShyZWYu
bG93ZXIoKSArICdnJyksCiAgICAgICAgICAgICAgICAgKV0KIAogICAgICAgICByZXR1cm4gc2Vs
Zi5ydW5fZnVuY3Rpb25fdGhyb3VnaF9yZWRpc19jYWNoZSgKLSAgICAgICAgICAgIGYncmVwb3Np
dG9yeV9pZD17cmVwb3NpdG9yeV9pZH06YnJhbmNoPXticmFuY2h9OmNvbW1pdF9pZD17c3RyKGNv
bW1pdF9pZCkubG93ZXIoKX0nLAorICAgICAgICAgICAgZidyZXBvc2l0b3J5X2lkPXtyZXBvc2l0
b3J5X2lkfTpyZWY9e3N0cihyZWYpLmxvd2VyKCl9JywKICAgICAgICAgICAgIGNhbGxiYWNrLAog
ICAgICAgICApCiAKLSAgICBkZWYgZmluZF9jb21taXRzX2J5X3JlZihzZWxmLCByZXBvc2l0b3J5
X2lkLCByZWYsIGxpbWl0PTEwMCk6Ci0gICAgICAgICMgRklYTUU6IFNob3VsZCB1c2UgdGhlIHJl
ZGlzIGNhY2hlLCBidXQgdGhlIHJlZGlzIGNhY2hlIGRvZXNuJ3Qgc3VwcG9ydCBuZXctc3R5bGUg
Y29tbWl0cyB5ZXQKLSAgICAgICAgd2l0aCBzZWxmOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5j
ZShyZWYsIGludCkgb3IgcmVmLmlzZGlnaXQoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gW21v
ZGVsLnRvX2NvbW1pdCgpIGZvciBtb2RlbCBpbiBzZWxmLmNhc3NhbmRyYS5zZWxlY3RfZnJvbV90
YWJsZSgKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5Db21taXRCeVJlZi5fX3RhYmxlX25hbWVf
XywgbGltaXQ9bGltaXQsCi0gICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9cmVwb3Np
dG9yeV9pZCwgcmVmPSdye30nLmZvcm1hdChyZWYpLAotICAgICAgICAgICAgICAgICldCi0KLSAg
ICAgICAgICAgICMgRklYTUU6IFNBU0kgaW5kZWNpZXMgYXJlIHRoZSBjYW5vaWNhbCB3YXkgdG8g
c29sdmUgdGhpcyBwcm9ibGVtLCBidXQgcmVxdWlyZSBDYXNzYW5kcmEgMy40IHdoaWNoCi0gICAg
ICAgICAgICAjIGhhc24ndCBiZWVuIGRlcGxveWVkIHRvIG91ciBkYXRhY2VudGVycyB5ZXQuIFRo
aXMgd29ya3MgZm9yIGNvbW1pdHMsIGJ1dCBpcyBsZXNzIHRyYW5zcGFyZW50LgotICAgICAgICAg
ICAgcmV0dXJuIFttb2RlbC50b19jb21taXQoKSBmb3IgbW9kZWwgaW4gc2VsZi5jYXNzYW5kcmEu
c2VsZWN0X2Zyb21fdGFibGUoCi0gICAgICAgICAgICAgICAgc2VsZi5Db21taXRCeVJlZi5fX3Rh
YmxlX25hbWVfXywgbGltaXQ9bGltaXQsCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1y
ZXBvc2l0b3J5X2lkLCByZWZfX2d0ZT1yZWYubG93ZXIoKSwgcmVmX19sdGU9KHJlZi5sb3dlcigp
ICsgJ2cnKSwKLSAgICAgICAgICAgICldCi0KICAgICBkZWYgZmluZF9jb21taXRzX2J5X3V1aWQo
c2VsZiwgcmVwb3NpdG9yeV9pZCwgYnJhbmNoLCB1dWlkLCBsaW1pdD0xMDApOgogICAgICAgICBp
ZiBicmFuY2ggaXMgTm9uZToKICAgICAgICAgICAgIGJyYW5jaCA9IHNlbGYucmVwb3NpdG9yaWVz
W3JlcG9zaXRvcnlfaWRdLmRlZmF1bHRfYnJhbmNoCkBAIC0zNzIsMjUgKzMxOSwxNyBAQCBjbGFz
cyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgIHJldHVybiBkaWN0KHN0YXR1cz0nb2sn
KQogCiAgICAgZGVmIHJlZ2lzdGVyX2NvbW1pdChzZWxmLCBjb21taXQpOgotICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShjb21taXQsIFNjbUNvbW1pdCk6Ci0gICAgICAgICAgICByYWlzZSBUeXBl
RXJyb3IoZidFeHBlY3RlZCB0eXBlIHtTY21Db21taXR9LCBnb3Qge3R5cGUoY29tbWl0KX0nKQor
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb21taXQsIENvbW1pdCk6CisgICAgICAgICAgICBy
YWlzZSBUeXBlRXJyb3IoZidFeHBlY3RlZCB0eXBlIHtDb21taXR9LCBnb3Qge3R5cGUoY29tbWl0
KX0nKQogCiAgICAgICAgIHdpdGggc2VsZjoKICAgICAgICAgICAgIGlmIGNvbW1pdC5yZXBvc2l0
b3J5X2lkIG5vdCBpbiBzZWxmLnJlcG9zaXRvcmllczoKICAgICAgICAgICAgICAgICBzZWxmLnJl
cG9zaXRvcmllc1tjb21taXQucmVwb3NpdG9yeV9pZF0gPSBSZXBvc2l0b3J5KGtleT1jb21taXQu
cmVwb3NpdG9yeV9pZCkKIAotICAgICAgICAgICAgZm9yIG9sZCBpbiBbc2VsZi5Db21taXRCeUlE
LCBzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5n
XToKLSAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRyYS5pbnNlcnRfcm93KAotICAgICAgICAg
ICAgICAgICAgICBvbGQuX190YWJsZV9uYW1lX18sCi0gICAgICAgICAgICAgICAgICAgIHJlcG9z
aXRvcnlfaWQ9Y29tbWl0LnJlcG9zaXRvcnlfaWQsCi0gICAgICAgICAgICAgICAgICAgIGJyYW5j
aD1jb21taXQuYnJhbmNoLAotICAgICAgICAgICAgICAgICAgICBjb21taXRfaWQ9c3RyKGNvbW1p
dC5yZXZpc2lvbikubG93ZXIoKSBpZiBjb21taXQucmV2aXNpb24gZWxzZSBjb21taXQuaGFzaCwK
LSAgICAgICAgICAgICAgICAgICAgdXVpZD1jb21taXQudXVpZCwKLSAgICAgICAgICAgICAgICAg
ICAgY29tbWl0dGVyPWNvbW1pdC5hdXRob3IuZW1haWwgaWYgY29tbWl0LmF1dGhvciBlbHNlIE5v
bmUsCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3NhZ2UsCi0gICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgaWYgY29tbWl0LmJyYW5jaCBpbiBTY21CYXNlLkRFRkFV
TFRfQlJBTkNIRVM6CisgICAgICAgICAgICAgICAgY29tbWl0LmJyYW5jaCA9IHNlbGYucmVwb3Np
dG9yaWVzW2NvbW1pdC5yZXBvc2l0b3J5X2lkXS5kZWZhdWx0X2JyYW5jaAogCi0gICAgICAgICAg
ICBmb3IgdGFibGUgaW4gW3NlbGYuQ29tbWl0QnlVdWlkQXNjZW5kaW5nTWsyLCBzZWxmLkNvbW1p
dEJ5VXVpZERlc2NlbmRpbmdNazIsIHNlbGYuQnJhbmNoZXNdOgorICAgICAgICAgICAgZm9yIHRh
YmxlIGluIFtzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNj
ZW5kaW5nXToKICAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRyYS5pbnNlcnRfcm93KAogICAg
ICAgICAgICAgICAgICAgICB0YWJsZS5fX3RhYmxlX25hbWVfXywKICAgICAgICAgICAgICAgICAg
ICAgcmVwb3NpdG9yeV9pZD1jb21taXQucmVwb3NpdG9yeV9pZCwKQEAgLTM5OSw3ICszMzgsNyBA
QCBjbGFzcyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGhhc2g9
Y29tbWl0Lmhhc2gsCiAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9c3RyKGNvbW1pdCkg
aWYgY29tbWl0LmlkZW50aWZpZXIgZWxzZSBOb25lLAogICAgICAgICAgICAgICAgICAgICB1dWlk
PWNvbW1pdC51dWlkLAotICAgICAgICAgICAgICAgICAgICBjb21taXR0ZXI9anNvbi5kdW1wcyhj
b21taXQuYXV0aG9yLCBjbHM9Q29udHJpYnV0b3IuRW5jb2RlcikgaWYgY29tbWl0LmF1dGhvciBl
bHNlIE5vbmUsCisgICAgICAgICAgICAgICAgICAgIHBlb3BsZT1qc29uLmR1bXBzKGNvbW1pdC5h
dXRob3IsIGNscz1Db250cmlidXRvci5FbmNvZGVyKSBpZiBjb21taXQuYXV0aG9yIGVsc2UgTm9u
ZSwKICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwKICAgICAgICAg
ICAgICAgICApCiAKQEAgLTQyMCw3ICszNTksNyBAQCBjbGFzcyBDb21taXRDb250ZXh0KG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgICAgIGhhc2g9Y29tbWl0Lmhhc2gsCiAgICAgICAgICAgICAg
ICAgICAgIGlkZW50aWZpZXI9c3RyKGNvbW1pdCkgaWYgY29tbWl0LmlkZW50aWZpZXIgZWxzZSBO
b25lLAogICAgICAgICAgICAgICAgICAgICB1dWlkPWNvbW1pdC51dWlkLAotICAgICAgICAgICAg
ICAgICAgICBjb21taXR0ZXI9anNvbi5kdW1wcyhjb21taXQuYXV0aG9yLCBjbHM9Q29udHJpYnV0
b3IuRW5jb2RlcikgaWYgY29tbWl0LmF1dGhvciBlbHNlIE5vbmUsCisgICAgICAgICAgICAgICAg
ICAgIHBlb3BsZT1qc29uLmR1bXBzKGNvbW1pdC5hdXRob3IsIGNscz1Db250cmlidXRvci5FbmNv
ZGVyKSBpZiBjb21taXQuYXV0aG9yIGVsc2UgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZT1jb21taXQubWVzc2FnZSwKICAgICAgICAgICAgICAgICApCiAKQEAgLTQ0NCwxMCArMzgz
LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNl
bGYucmVnaXN0ZXJfY29tbWl0KGNvbW1pdCkKIAogICAgIGRlZiB1cmwoc2VsZiwgY29tbWl0KToK
LSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpIGFuZCBub3QgaXNpbnN0
YW5jZShjb21taXQsIFNjbUNvbW1pdCk6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZidF
eHBlY3RlZCB0eXBlIHtDb21taXR9LCBnb3Qge3R5cGUoY29tbWl0KX0nKQotCiAgICAgICAgIHJl
cG8gPSBzZWxmLnJlcG9zaXRvcmllcy5nZXQoY29tbWl0LnJlcG9zaXRvcnlfaWQpCiAgICAgICAg
IGlmIHJlcG86Ci0gICAgICAgICAgICByZXR1cm4gcmVwby51cmxfZm9yX2NvbW1pdChjb21taXQu
aWQgaWYgaXNpbnN0YW5jZShjb21taXQsIENvbW1pdCkgZWxzZSBjb21taXQuaGFzaCBvciBjb21t
aXQucmV2aXNpb24pCisgICAgICAgICAgICByZXR1cm4gcmVwby51cmxfZm9yX2NvbW1pdChjb21t
aXQpCiAgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dF91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21v
ZGVsL2NvbW1pdF9jb250ZXh0X3VuaXR0ZXN0LnB5CmluZGV4IGNjNDQyZWY3MDhhM2ZkMzU3OWRh
Zjg3ZGM2MmEzYmVmNDE4MDljMzIuLmM2ZTFlMmIxODNhMmIyMjU0NThjZDdjMTM4NGQ5ZTFhNTNk
N2NlYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250ZXh0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250
ZXh0X3VuaXR0ZXN0LnB5CkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0
KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgIGZvciBicmFuY2gs
IGNvbW1pdHMgaW4gcmVwb3NpdG9yeS5jb21taXRzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5kYXRhYmFzZS5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga2V5LCByZWY9Y29tbWl0Lmhhc2ggb3IgY29tbWl0LnJldmlzaW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksIGhhc2g9Y29tbWl0Lmhhc2gs
IHJldmlzaW9uPWNvbW1pdC5yZXZpc2lvbiwgZmFzdD1GYWxzZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZfbm9fZG9j
a2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2Fu
ZHJhQ29udGV4dCkKQEAgLTcwLDE1ICs3MCwxNSBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChX
YWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNf
dG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZh
NjVjJyldLAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lk
KHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGNvbW1pdF9pZD0nZDhiY2Uy
NmZhNjVjJyksCisgICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQo
cmVmPSdkOGJjZTI2ZmE2NWMnKV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5k
X2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIHJlZj0nZDhiY2UyNmZhNjVj
JyksCiAgICAgICAgICAgICApCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV0sCi0g
ICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfaWQocmVwb3NpdG9y
eV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVuaycsIGNvbW1pdF9pZD02KSwKKyAgICAgICAgICAg
ICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpXSwKKyAgICAgICAgICAgICAg
ICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0nd2Via2l0
JywgcmVmPTYpLAogICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgw
LCBsZW4oc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfaWQocmVwb3NpdG9yeV9pZD0nd2Vi
a2l0JywgYnJhbmNoPSd0cnVuaycsIGNvbW1pdF9pZD0nMTIzNCcpKSkKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3JlZihy
ZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCByZWY9JzEyMzQnKSkpCiAKICAgICBAV2FpdEZvckRvY2tl
clRlc3RDYXNlLm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBt
b2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKICAgICBkZWYgdGVzdF9jb21taXRf
YnlfdXVpZChzZWxmLCByZWRpcz1TdHJpY3RSZWRpcywgY2Fzc2FuZHJhPUNhc3NhbmRyYUNvbnRl
eHQpOgpAQCAtODcsMTIgKzg3LDEyIEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JE
b2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRh
YmFzZSgpCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
W3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPScxYWJlMjViNDQzZTknKV0s
CisgICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPScxYWJl
MjViNDQzZTknKV0sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNf
YnlfdXVpZChyZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21haW4nLCB1dWlkPTE2MDE2
NjMwMDAwMCksCiAgICAgICAgICAgICApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9Nild
LAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3V1aWQocmVw
b3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVuaycsIHV1aWQ9MTYwMTYzOTkwMDAwKSwK
KyAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpXSwKKyAg
ICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRv
cnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIHV1aWQ9MTYwMTYzOTkwMDAwKSwKICAgICAg
ICAgICAgICkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIo
bW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFD
b250ZXh0KQpAQCAtMTAyLDEyICsxMDIsMTIgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2Fp
dEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3Rv
X2RhdGFiYXNlKCkKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzFhYmUyNWI0NDNl
OScpXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9
JzFhYmUyNWI0NDNlOScpXSwKICAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29t
bWl0c19ieV90aW1lc3RhbXAocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWluJywg
dGltZXN0YW1wPTE2MDE2NjMwMDApLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRf
Zm9yX2lkKGlkPTYpXSwKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0
c19ieV90aW1lc3RhbXAocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVuaycsIHRp
bWVzdGFtcD0xNjAxNjM5OTAwKSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9y
eS5jb21taXQocmVmPTYpXSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29t
bWl0c19ieV90aW1lc3RhbXAocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJywg
dGltZXN0YW1wPTE2MDE2Mzk5MDApLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBsZW4oc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0YW1w
KHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIHRpbWVzdGFtcD0xNjAxNjY4
MDAwKSkpCiAKQEAgLTExOCw3ICsxMTgsNyBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0
Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9f
ZGF0YWJhc2UoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg1LCBsZW4oc2VsZi5kYXRh
YmFzZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNo
PSdtYWluJykpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Q4YmNlMjZmYTY1Yycp
LCBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5Jyld
LAorICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nZDhi
Y2UyNmZhNjVjJyksIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdiYWU1ZDFlOTA5
OTknKV0sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5fcmFu
Z2UocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWluJywgbGltaXQ9MiksCiAgICAg
ICAgICAgICApCiAKQEAgLTEyNywxMCArMTI3LDEwIEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0
KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgIHdpdGggTW9ja01vZGVsRmFjdG9yeS5z
YWZhcmkoKSwgTW9ja01vZGVsRmFjdG9yeS53ZWJraXQoKToKICAgICAgICAgICAgIHNlbGYuaW5p
dF9kYXRhYmFzZShyZWRpcz1yZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAg
IHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoNCwgbGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9z
aXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnKSkpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDQsIGxlbihzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19pbl9yYW5nZShyZXBv
c2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9J21haW4nKSkpCiAgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9m
b3JfaWQoaWQ9NiksIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD00KV0sCi0g
ICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3Np
dG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVuaycsIGxpbWl0PTIpLAorICAgICAgICAgICAg
ICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NiksIHNlbGYuc3ZuX3JlcG9zaXRv
cnkuY29tbWl0KHJlZj00KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2Nv
bW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJywgbGlt
aXQ9MiksCiAgICAgICAgICAgICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tf
aWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1N
b2NrQ2Fzc2FuZHJhQ29udGV4dCkKQEAgLTEzOSw3ICsxMzksNyBAQCBjbGFzcyBDb21taXRDb250
ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5pbml0X2Rh
dGFiYXNlKHJlZGlzPXJlZGlzLCBjYXNzYW5kcmE9Y2Fzc2FuZHJhKQogICAgICAgICAgICAgc2Vs
Zi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3Jf
aWQoaWQ9J2JhZTVkMWU5MDk5OScpLCBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9p
ZChpZD0nMWFiZTI1YjQ0M2U5JyldLAorICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyksIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5j
b21taXQocmVmPScxYWJlMjViNDQzZTknKV0sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFz
ZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdt
YWluJywgYmVnaW49MTYwMTY2MzAwMCwgZW5kPTE2MDE2NjgwMDApLAogICAgICAgICAgICAgKQog
CkBAIC0xNDksOCArMTQ5LDggQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tl
clRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1yZWRpcywg
Y2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3Rv
X2RhdGFiYXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAg
ICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KSwgc2VsZi5zdm5fcmVw
b3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTQpXSwKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFi
YXNlLmZpbmRfY29tbWl0c19pbl9yYW5nZShyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9
J3RydW5rJywgYmVnaW49MTYwMTYzNzkwMCwgZW5kPTE2MDE2Mzk5MDApLAorICAgICAgICAgICAg
ICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NiksIHNlbGYuc3ZuX3JlcG9zaXRv
cnkuY29tbWl0KHJlZj00KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2Nv
bW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJywgYmVn
aW49MTYwMTYzNzkwMCwgZW5kPTE2MDE2Mzk5MDApLAogICAgICAgICAgICAgKQogCiAgICAgQFdh
aXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJp
Y3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBAIC0xNjAsOSAr
MTYwLDkgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToK
ICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKIAogICAgICAg
ICAgICAgY29tbWl0cyA9IFsKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnku
Y29tbWl0X2Zvcl9pZChpZD0nMWFiZTI1YjQ0M2U5JyksCi0gICAgICAgICAgICAgICAgc2VsZi5z
dGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2ZmZjgzYmIyZDkxNycpLAotICAgICAg
ICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSc5YjgzMTFm
MjVhNzcnKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJl
Zj0nMWFiZTI1YjQ0M2U5JyksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5
LmNvbW1pdChyZWY9J2ZmZjgzYmIyZDkxNycpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hf
cmVwb3NpdG9yeS5jb21taXQocmVmPSc5YjgzMTFmMjVhNzcnKSwKICAgICAgICAgICAgIF0KICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0cywgc2VsZi5kYXRhYmFzZS5maW5kX2Nv
bW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWluJywgIGJl
Z2luPWNvbW1pdHNbLTFdLCBlbmQ9Y29tbWl0c1swXSkpCiAKQEAgLTE3MywzMCArMTczLDMwIEBA
IGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAg
ICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAKICAgICAgICAgICAgIGNv
bW1pdHMgPSBbCi0gICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9y
X2lkKGlkPTYpLAotICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zv
cl9pZChpZD00KSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9m
b3JfaWQoaWQ9MiksCisgICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQo
cmVmPTYpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj00
KSwKKyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9MiksCiAg
ICAgICAgICAgICBdCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHMsIHNlbGYu
ZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJy
YW5jaD0ndHJ1bmsnLCBiZWdpbj1jb21taXRzWy0xXSwgZW5kPWNvbW1pdHNbMF0pKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRzLCBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0
c19pbl9yYW5nZShyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9J21haW4nLCBiZWdpbj1j
b21taXRzWy0xXSwgZW5kPWNvbW1pdHNbMF0pKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2Fz
ZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNz
YW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCiAgICAgZGVmIHRlc3RfY29tbWl0X2Zyb21fc3Rh
c2hfcmVwbyhzZWxmLCByZWRpcz1TdHJpY3RSZWRpcywgY2Fzc2FuZHJhPUNhc3NhbmRyYUNvbnRl
eHQpOgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJpKCksIE1vY2tNb2RlbEZh
Y3Rvcnkud2Via2l0KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVkaXM9cmVk
aXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEpCi0gICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnJlZ2lz
dGVyX3BhcnRpYWxfY29tbWl0KCdzYWZhcmknLCBoYXNoPSdkOGJjZTI2ZmE2NWMnKQorICAgICAg
ICAgICAgc2VsZi5kYXRhYmFzZS5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgnc2FmYXJpJywgaGFz
aD0nZDhiY2UyNmZhNjVjJywgZmFzdD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lk
KGlkPSdkOGJjZTI2ZmE2NWMnKV0sCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5k
X2NvbW1pdHNfYnlfaWQocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWluJywgY29t
bWl0X2lkPSdkOGJjZTI2ZmE2NWMnKSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBv
c2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpXSwKKyAgICAgICAgICAgICAgICBzZWxm
LmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgcmVm
PSdkOGJjZTI2ZmE2NWMnKSwKICAgICAgICAgICAgICkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVz
dENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tf
Y2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQogICAgIGRlZiB0ZXN0X2NvbW1pdF9mcm9t
X3N2bl9yZXBvKHNlbGYsIHJlZGlzPVN0cmljdFJlZGlzLCBjYXNzYW5kcmE9Q2Fzc2FuZHJhQ29u
dGV4dCk6CiAgICAgICAgIHdpdGggTW9ja01vZGVsRmFjdG9yeS5zYWZhcmkoKSwgTW9ja01vZGVs
RmFjdG9yeS53ZWJraXQoKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1y
ZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKLSAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UucmVn
aXN0ZXJfcGFydGlhbF9jb21taXQoJ3dlYmtpdCcsIHJldmlzaW9uPTYpCisgICAgICAgICAgICBz
ZWxmLmRhdGFiYXNlLnJlZ2lzdGVyX3BhcnRpYWxfY29tbWl0KCd3ZWJraXQnLCByZXZpc2lvbj02
LCBmYXN0PUZhbHNlKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
ICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpXSwKLSAgICAgICAg
ICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9pZChyZXBvc2l0b3J5X2lkPSd3
ZWJraXQnLCBicmFuY2g9J3RydW5rJywgY29tbWl0X2lkPTYpLAorICAgICAgICAgICAgICAgIFtz
ZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NildLAorICAgICAgICAgICAgICAgIHNlbGYu
ZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3JlZihyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCByZWY9
NiksCiAgICAgICAgICAgICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZf
bm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2Nr
Q2Fzc2FuZHJhQ29udGV4dCkKQEAgLTIwNiw3ICsyMDYsNyBAQCBjbGFzcyBDb21taXRDb250ZXh0
VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2Nv
bW1pdHNfdG9fZGF0YWJhc2UoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ2JyYW5j
aC1hJywgJ2JyYW5jaC1iJywgJ21haW4nXSwgc2VsZi5kYXRhYmFzZS5icmFuY2hlcyhyZXBvc2l0
b3J5X2lkPSdzYWZhcmknKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICAgICAgWydicmFuY2gtYScsICdicmFuY2gtYicsICd0YWdzL3RhZy0xJywgJ3RhZ3MvdGFn
LTInLCAndHJ1bmsnXSwKKyAgICAgICAgICAgICAgICBbJ2JyYW5jaC1hJywgJ2JyYW5jaC1iJywg
J21haW4nXSwKICAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmJyYW5jaGVzKHJlcG9zaXRv
cnlfaWQ9J3dlYmtpdCcpLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ2JyYW5jaC1hJywgJ2JyYW5jaC1iJ10sIHNlbGYuZGF0YWJhc2UuYnJhbmNoZXMocmVw
b3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdicmFuY2gnKSkKQEAgLTIxOSwxMiArMjE5LDEy
IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAg
ICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5uZXh0X2Nv
bW1pdChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NCkpLAotICAgICAgICAg
ICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KSwKKyAgICAgICAg
ICAgICAgICBzZWxmLmRhdGFiYXNlLm5leHRfY29tbWl0KHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29t
bWl0KHJlZj00KSksCisgICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQo
cmVmPTYpLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLm5leHRfY29tbWl0KHNlbGYuc3Rhc2hfcmVwb3Np
dG9yeS5jb21taXRfZm9yX2lkKGlkPSdiYWU1ZDFlOTA5OTknKSksCi0gICAgICAgICAgICAgICAg
c2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Q4YmNlMjZmYTY1YycpLAor
ICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UubmV4dF9jb21taXQoc2VsZi5zdGFzaF9yZXBv
c2l0b3J5LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpKSwKKyAgICAgICAgICAgICAgICBzZWxm
LnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nZDhiY2UyNmZhNjVjJyksCiAgICAgICAgICAg
ICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tf
cmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4
dCkKQEAgLTIzNCwxMiArMjM0LDEyIEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JE
b2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRh
YmFzZSgpCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
c2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTQpLAotICAgICAgICAgICAgICAg
IHNlbGYuZGF0YWJhc2UucHJldmlvdXNfY29tbWl0KHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0
X2Zvcl9pZChpZD02KSksCisgICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21t
aXQocmVmPTQpLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UucHJldmlvdXNfY29tbWl0
KHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSksCiAgICAgICAgICAgICApCiAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVw
b3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdiYWU1ZDFlOTA5OTknKSwKLSAgICAgICAgICAgICAg
ICBzZWxmLmRhdGFiYXNlLnByZXZpb3VzX2NvbW1pdChzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29t
bWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJykpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rh
c2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdiYWU1ZDFlOTA5OTknKSwKKyAgICAgICAgICAgICAg
ICBzZWxmLmRhdGFiYXNlLnByZXZpb3VzX2NvbW1pdChzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29t
bWl0KHJlZj0nZDhiY2UyNmZhNjVjJykpLAogICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JE
b2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRp
cywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBAIC0yNTAsMjIgKzI1MCwy
MSBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAg
ICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uuc2libGlu
Z19jb21taXRzKHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KSwgWydzYWZh
cmknXSksCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5zaWJsaW5nX2NvbW1pdHMoc2Vs
Zi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBbJ3NhZmFyaSddKSwKICAgICAgICAgICAg
ICAgICB7J3NhZmFyaSc6IFsKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0
b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Q4YmNlMjZmYTY1YycpLAotICAgICAgICAgICAgICAgICAg
ICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5Jyks
Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lk
KGlkPScxYWJlMjViNDQzZTknKSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBv
c2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2ZmZjgzYmIyZDkxNycpLAotICAgICAgICAgICAgICAg
ICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nOWI4MzExZjI1YTc3
JyksCi0KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChy
ZWY9J2Q4YmNlMjZmYTY1YycpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyksCisgICAgICAgICAgICAgICAgICAgIHNl
bGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPScxYWJlMjViNDQzZTknKSwKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2ZmZjgzYmIyZDkx
NycpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJl
Zj0nOWI4MzExZjI1YTc3JyksCiAgICAgICAgICAgICAgICAgXX0sCiAgICAgICAgICAgICApCiAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJh
c2Uuc2libGluZ19jb21taXRzKHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlk
PSdkOGJjZTI2ZmE2NWMnKSwgWyd3ZWJraXQnXSksCi0gICAgICAgICAgICAgICAgeyd3ZWJraXQn
OiBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpXX0sCisgICAgICAgICAg
ICAgICAgc2VsZi5kYXRhYmFzZS5zaWJsaW5nX2NvbW1pdHMoc2VsZi5zdGFzaF9yZXBvc2l0b3J5
LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpLCBbJ3dlYmtpdCddKSwKKyAgICAgICAgICAgICAg
ICB7J3dlYmtpdCc6IFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NildfSwKICAgICAg
ICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
c2VsZi5kYXRhYmFzZS5zaWJsaW5nX2NvbW1pdHMoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRf
Zm9yX2lkKGlkPTEpLCBbJ3NhZmFyaSddKSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNl
LnNpYmxpbmdfY29tbWl0cyhzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9MSksIFsnc2Fm
YXJpJ10pLAogICAgICAgICAgICAgICAgIHsnc2FmYXJpJzogW119LAogICAgICAgICAgICAgKQog
CkBAIC0yNzQsOCArMjczLDggQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tl
clRlc3RDYXNlKToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5LnNhZmFyaSgpLCBNb2Nr
TW9kZWxGYWN0b3J5LndlYmtpdCgpOgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFiYXNlKHJl
ZGlzPXJlZGlzLCBjYXNzYW5kcmE9Y2Fzc2FuZHJhKQogICAgICAgICAgICAgdXVpZCA9IENvbW1p
dENvbnRleHQudXVpZF9mb3JfY29tbWl0cyhbCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9y
ZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2JhZTVkMWU5MDk5OScpLAotICAgICAgICAgICAg
ICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KSwKKyAgICAgICAgICAg
ICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyksCisg
ICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpLAogICAgICAg
ICAgICAgXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXVpZCwgMTYwMTY2ODAwMDAw
KQogCkBAIC0yODQsMjAgKzI4MywyMCBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9y
RG9ja2VyVGVzdENhc2UpOgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJpKCks
IE1vY2tNb2RlbEZhY3Rvcnkud2Via2l0KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJh
c2UocmVkaXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEpCiAgICAgICAgICAgICBicmFuY2hl
cyA9IHNlbGYuZGF0YWJhc2UuYnJhbmNoX2tleXNfZm9yX2NvbW1pdHMoWwotICAgICAgICAgICAg
ICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMn
KSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9
NiksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4
YmNlMjZmYTY1YycpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0
KHJlZj02KSwKICAgICAgICAgICAgIF0pCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJy
YW5jaGVzLCBbJ2RlZmF1bHQnXSkKIAogICAgICAgICAgICAgYnJhbmNoZXMgPSBzZWxmLmRhdGFi
YXNlLmJyYW5jaF9rZXlzX2Zvcl9jb21taXRzKFsKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNo
X3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nNjIxNjUyYWRkN2ZjJyksCi0gICAgICAgICAg
ICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTcpLAorICAgICAgICAg
ICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSc2MjE2NTJhZGQ3ZmMnKSwK
KyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NyksCiAgICAg
ICAgICAgICBdKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChicmFuY2hlcywgWydicmFu
Y2gtYSddKQogCiAgICAgICAgICAgICBicmFuY2hlcyA9IHNlbGYuZGF0YWJhc2UuYnJhbmNoX2tl
eXNfZm9yX2NvbW1pdHMoWwotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5j
b21taXRfZm9yX2lkKGlkPSc3OTA3MjVhNmQ3OWUnKSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2
bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9OCksCisgICAgICAgICAgICAgICAgc2VsZi5z
dGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9Jzc5MDcyNWE2ZDc5ZScpLAorICAgICAgICAgICAg
ICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj04KSwKICAgICAgICAgICAgIF0pCiAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJyYW5jaGVzLCBbJ2JyYW5jaC1iJ10pCiAKQEAg
LTMwNyw5ICszMDYsOSBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVz
dENhc2UpOgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFiYXNlKHJlZGlzPXJlZGlzLCBjYXNz
YW5kcmE9Y2Fzc2FuZHJhKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAg
ICAgICAgICAnaHR0cHM6Ly9iaXRidWNrZXQuZXhhbXBsZS5jb20vcHJvamVjdHMvU0FGQVJJL3Jl
cG9zL3NhZmFyaS9jb21taXRzL2Q4YmNlMjZmYTY1YzZmYzhmMzljMTc5MjdhYmI3N2Y2OWZhYjgy
ZmMnLAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UudXJsKHNlbGYuc3Rhc2hfcmVwb3Np
dG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSksCisgICAgICAgICAgICAgICAg
c2VsZi5kYXRhYmFzZS51cmwoc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNl
MjZmYTY1YycpKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgJ2h0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3I2JywKLSAgICAg
ICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnVybChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9m
b3JfaWQoaWQ9NikpLAorICAgICAgICAgICAgICAgICdodHRwczovL2NvbW1pdHMud2Via2l0Lm9y
Zy80QG1haW4nLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UudXJsKHNlbGYuc3ZuX3Jl
cG9zaXRvcnkuY29tbWl0KHJlZj02KSksCiAgICAgICAgICAgICApCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9mYWlsdXJl
X2NvbnRleHQucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC9mYWlsdXJlX2NvbnRleHQucHkKaW5kZXggMWRkMWNjMzVkOTViYmJmYTc4Yzlj
ZTQ4YWI3ZTgwOGUzNzEwOWQ1OS4uMzBhNjQ3MDdiOGE4MzQyNjM0MmE1NzYyNGY3ODk0OWMyNWZl
NTc5OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvbW9kZWwvZmFpbHVyZV9jb250ZXh0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2ZhaWx1cmVfY29udGV4dC5weQpA
QCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMSwxOCArMjEs
MTYgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGNhbGVuZGFyCi1pbXBvcnQgY29sbGVjdGlv
bnMKIGltcG9ydCBqc29uCiBpbXBvcnQgdGltZQogCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUg
aW1wb3J0IGNvbHVtbnMKLWZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZS5tb2RlbHMgaW1wb3J0IE1v
ZGVsCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSByZXN1bHRzZGJweS5jb250
cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNvbW1p
dF9jb250ZXh0IGltcG9ydCBDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNv
bmZpZ3VyYXRpb25fY29udGV4dCBpbXBvcnQgQ2x1c3RlcmVkQnlDb25maWd1cmF0aW9uCiBmcm9t
IHJlc3VsdHNkYnB5Lm1vZGVsLnVwbG9hZF9jb250ZXh0IGltcG9ydCBVcGxvYWRDYWxsYmFja0Nv
bnRleHQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwudGVzdF9jb250ZXh0IGltcG9ydCBFeHBlY3Rh
dGlvbnMKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdAogCiAKIGNsYXNzIEZhaWx1cmVD
b250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CkBAIC05NSw3ICs5Myw3IEBAIGNsYXNzIEZh
aWx1cmVDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CiAKICAgICAgICAgICAgIHdpdGgg
c2VsZjoKICAgICAgICAgICAgICAgICB1dWlkID0gc2VsZi5jb21taXRfY29udGV4dC51dWlkX2Zv
cl9jb21taXRzKGNvbW1pdHMpCi0gICAgICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8vIENv
bW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0
aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUKKyAgICAgICAgICAgICAg
ICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9z
ZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAg
ICAgICAgICAgICAgICBkZWYgY2FsbGJhY2sodGVzdCwgcmVzdWx0LCBmYWlsdXJlcywgdW5leHBl
Y3RlZCk6CiAgICAgICAgICAgICAgICAgICAgIGZhaWxlZF9yZXN1bHQgPSBFeHBlY3RhdGlvbnMu
c3RyaW5nX3RvX3N0YXRlX2lkcyhyZXN1bHQuZ2V0KCdhY3R1YWwnLCAnJykpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9t
b2NrX21vZGVsX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC9tb2NrX21vZGVsX2ZhY3RvcnkucHkKaW5kZXggMTA0NDM0YTM1
OTgwZWNjZWRjYWU2YmFlMThlZWExNzRhMjU5NmQ3OS4uZTg4NjQ4MGQyMDNmNjRiNjFjMDY3YzJm
MjZlY2QwZjkzYTc4NTM4YyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvbW9ja19tb2RlbF9mYWN0b3J5LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL21vY2tf
bW9kZWxfZmFjdG9yeS5weQpAQCAtMjEsNiArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBpbXBv
cnQgYmFzZTY0CitpbXBvcnQgY29udGV4dGxpYgogaW1wb3J0IGlvCiBpbXBvcnQgdGltZQogCkBA
IC0yOSw3ICszMCw3IEBAIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29uZmlndXJhdGlvbl9jb250
ZXh0X3VuaXR0ZXN0IGltcG9ydCBDb25maWd1cmF0aW9uQ29udGV4CiBmcm9tIHJlc3VsdHNkYnB5
Lm1vZGVsLm1vZGVsIGltcG9ydCBNb2RlbAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5yZXBvc2l0
b3J5IGltcG9ydCBTdGFzaFJlcG9zaXRvcnksIFdlYktpdFJlcG9zaXRvcnkKIAotZnJvbSB3ZWJr
aXRzY21weSBpbXBvcnQgbW9ja3MKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IG1vY2tzLCBDb21t
aXQKIAogCiBjbGFzcyBNb2NrTW9kZWxGYWN0b3J5KG9iamVjdCk6CkBAIC02NSwxNiArNjYsNDQg
QEAgY2xhc3MgTW9ja01vZGVsRmFjdG9yeShvYmplY3QpOgogICAgICAgICByZXR1cm4gbW9ja3Mu
cmVtb3RlLkJpdEJ1Y2tldChyZW1vdGU9J2JpdGJ1Y2tldC5leGFtcGxlLmNvbS9wcm9qZWN0cy9T
QUZBUkkvcmVwb3Mvc2FmYXJpJykKIAogICAgIEBjbGFzc21ldGhvZAorICAgIEBjb250ZXh0bGli
LmNvbnRleHRtYW5hZ2VyCiAgICAgZGVmIHdlYmtpdChjbHMpOgotICAgICAgICByZXR1cm4gbW9j
a3MucmVtb3RlLlN2bihyZW1vdGU9J3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0JykK
KyAgICAgICAgc3ZuID0gbW9ja3MucmVtb3RlLlN2bihyZW1vdGU9J3N2bi53ZWJraXQub3JnL3Jl
cG9zaXRvcnkvd2Via2l0JykKKyAgICAgICAgZ2l0aHViID0gbW9ja3MucmVtb3RlLkdpdEh1Yihy
ZW1vdGU9J2dpdGh1Yi5jb20vV2ViS2l0L1dlYktpdCcsIGdpdF9zdm49VHJ1ZSkKKyAgICAgICAg
Z2l0aHViLmNvbW1pdHMgPSB7fQorCisgICAgICAgIGZvciBicmFuY2gsIGNvbW1pdHMgaW4gc3Zu
LmNvbW1pdHMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmICd0YWcnIGluIGJyYW5jaDoKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgYnJhbmNoID09ICd0cnVuayc6Cisg
ICAgICAgICAgICAgICAgYnJhbmNoID0gJ21haW4nCisgICAgICAgICAgICBnaXRodWIuY29tbWl0
c1ticmFuY2hdID0gW10KKworICAgICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRzOgorICAg
ICAgICAgICAgICAgIGdpdGh1Yi5jb21taXRzW2JyYW5jaF0uYXBwZW5kKENvbW1pdCgKKyAgICAg
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1jb21taXQucmVwb3NpdG9yeV9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgYnJhbmNoPWJyYW5jaCwKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9y
PWNvbW1pdC5hdXRob3IsCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3Nh
Z2UsCisgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcD1jb21taXQudGltZXN0YW1wLAorICAg
ICAgICAgICAgICAgICAgICBvcmRlcj1jb21taXQub3JkZXIsCisgICAgICAgICAgICAgICAgICAg
IGlkZW50aWZpZXI9Y29tbWl0LmlkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgIGJyYW5j
aF9wb2ludD1jb21taXQuYnJhbmNoX3BvaW50LAorICAgICAgICAgICAgICAgICAgICByZXZpc2lv
bj1jb21taXQucmV2aXNpb24sCisgICAgICAgICAgICAgICAgICAgIGhhc2g9Y29tbWl0Lmhhc2gs
CisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICB3aXRoIHN2biwgZ2l0aHViOgorICAgICAg
ICAgICAgeWllbGQgZ2l0aHViCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgY3JlYXRlKGNs
cywgcmVkaXMsIGNhc3NhbmRyYSwgYXN5bmNfcHJvY2Vzc2luZz1GYWxzZSk6CiAgICAgICAgIG9s
ZGVzdF9jb21taXQgPSB0aW1lLnRpbWUoKQotICAgICAgICBmb3IgcmVwbyBpbiBbY2xzLnNhZmFy
aSgpLCBjbHMud2Via2l0KCldOgotICAgICAgICAgICAgZm9yIGNvbW1pdHMgaW4gcmVwby5jb21t
aXRzLnZhbHVlcygpOgotICAgICAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKLSAg
ICAgICAgICAgICAgICAgICAgb2xkZXN0X2NvbW1pdCA9IG1pbihvbGRlc3RfY29tbWl0LCBjb21t
aXQudGltZXN0YW1wKQorICAgICAgICB3aXRoIGNscy5zYWZhcmkoKSBhcyBzYWZhcmksIGNscy53
ZWJraXQoKSBhcyB3ZWJraXQ6CisgICAgICAgICAgICBmb3IgcmVwbyBpbiBbc2FmYXJpLCB3ZWJr
aXRdOgorICAgICAgICAgICAgICAgIGZvciBjb21taXRzIGluIHJlcG8uY29tbWl0cy52YWx1ZXMo
KToKKyAgICAgICAgICAgICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRzOgorICAgICAgICAg
ICAgICAgICAgICAgICAgb2xkZXN0X2NvbW1pdCA9IG1pbihvbGRlc3RfY29tbWl0LCBjb21taXQu
dGltZXN0YW1wKQogCiAgICAgICAgIG1vZGVsID0gTW9kZWwoCiAgICAgICAgICAgICByZWRpcz1y
ZWRpcywKQEAgLTkzLDcgKzEyMiw3IEBAIGNsYXNzIE1vY2tNb2RlbEZhY3Rvcnkob2JqZWN0KToK
ICAgICAgICAgICAgICAgICAgICAgZm9yIGJyYW5jaCwgY29tbWl0cyBpbiByZXBvc2l0b3J5LmNv
bW1pdHMuaXRlbXMoKToKICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29t
bWl0czoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC5jb21taXRfY29udGV4dC5y
ZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a2V5LCBoYXNoPWNvbW1pdC5oYXNoLCByZXZpc2lvbj1jb21taXQucmV2aXNpb24sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgaGFzaD1jb21taXQuaGFzaCwgcmV2aXNpb249
Y29tbWl0LnJldmlzaW9uLCBmYXN0PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKICAgICAgICAgcmV0dXJuIG1vZGVsCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRvcnkucHkgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0
b3J5LnB5CmluZGV4IGY3ZTQwMDgzMGZkZjMwNzVkZDcwY2MyODFlMTk0MTg4OTFlYTA2NGQuLjdl
NDE3OTQ1M2IyNDBlMDdhY2I3ZGQ5NzFjMDVlYTFmMWVjZWY4NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRv
cnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvbW9kZWwvcmVwb3NpdG9yeS5weQpAQCAtMjAsOCArMjAsNyBAQAogIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29t
bWl0IGltcG9ydCBDb21taXQKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IHJlbW90ZQorZnJvbSB3
ZWJraXRzY21weSBpbXBvcnQgcmVtb3RlLCBDb21taXQKIAogCiBjbGFzcyBSZXBvc2l0b3J5KG9i
amVjdCk6CkBAIC0zMCwxMCArMjksNyBAQCBjbGFzcyBSZXBvc2l0b3J5KG9iamVjdCk6CiAgICAg
ICAgIHNlbGYua2V5ID0ga2V5CiAgICAgICAgIHNlbGYuZGVmYXVsdF9icmFuY2ggPSBkZWZhdWx0
X2JyYW5jaCBvciAnbWFpbicKIAotICAgIGRlZiBjb21taXRfZm9yX2lkKHNlbGYsIGlkKToKLSAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCi0KLSAgICBkZWYgY29tbWl0KHNlbGYs
IHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBoYXNoPU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFz
dD1UcnVlKToKKyAgICBkZWYgY29tbWl0KHNlbGYsIHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBo
YXNoPU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFzdD1GYWxzZSk6CiAgICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IoKQogCiAgICAgZGVmIHVybF9mb3JfY29tbWl0KHNlbGYsIGNvbW1p
dCk6CkBAIC01MiwxOSArNDgsNyBAQCBjbGFzcyBTdGFzaFJlcG9zaXRvcnkoUmVwb3NpdG9yeSk6
CiAgICAgICAgICAgICBkZWZhdWx0X2JyYW5jaD1kZWZhdWx0X2JyYW5jaCBvciBzZWxmLnJlbW90
ZS5kZWZhdWx0X2JyYW5jaCwKICAgICAgICAgKQogCi0gICAgZGVmIGNvbW1pdF9mb3JfaWQoc2Vs
ZiwgaWQpOgotICAgICAgICBjb21taXQgPSBzZWxmLnJlbW90ZS5jb21taXQoaGFzaD1pZCwgaW5j
bHVkZV9pZGVudGlmaWVyPUZhbHNlKQotICAgICAgICByZXR1cm4gQ29tbWl0KAotICAgICAgICAg
ICAgcmVwb3NpdG9yeV9pZD1zZWxmLmtleSwKLSAgICAgICAgICAgIGlkPWNvbW1pdC5oYXNoLAot
ICAgICAgICAgICAgYnJhbmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAgICAgICB0aW1lc3RhbXA9
Y29tbWl0LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1pdC5vcmRlciwKLSAgICAg
ICAgICAgIGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsLAotICAgICAgICAgICAgbWVzc2Fn
ZT1jb21taXQubWVzc2FnZSwKLSAgICAgICAgKQotCi0gICAgZGVmIGNvbW1pdChzZWxmLCByZWY9
Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lLCBpZGVudGlmaWVyPU5vbmUsIGZhc3Q9VHJ1
ZSk6CisgICAgZGVmIGNvbW1pdChzZWxmLCByZWY9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1O
b25lLCBpZGVudGlmaWVyPU5vbmUsIGZhc3Q9RmFsc2UpOgogICAgICAgICBpZiBpZGVudGlmaWVy
OgogICAgICAgICAgICAgZmFzdCA9IEZhbHNlCiAgICAgICAgIGlmIHJlZjoKQEAgLTcyLDcgKzU2
LDEyIEBAIGNsYXNzIFN0YXNoUmVwb3NpdG9yeShSZXBvc2l0b3J5KToKICAgICAgICAgcmV0dXJu
IHNlbGYucmVtb3RlLmNvbW1pdChyZXZpc2lvbj1yZXZpc2lvbiwgaGFzaD1oYXNoLCBpZGVudGlm
aWVyPWlkZW50aWZpZXIsIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCkKIAogICAgIGRlZiB1
cmxfZm9yX2NvbW1pdChzZWxmLCBjb21taXQpOgotICAgICAgICByZXR1cm4gZid7c2VsZi5yZW1v
dGUudXJsfS9jb21taXRzL3tjb21taXR9JworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb21t
aXQsIENvbW1pdCk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZidFeHBlY3RlZCB0eXBl
IHtDb21taXR9LCBnb3Qge3R5cGUoY29tbWl0KX0nKQorCisgICAgICAgIGlmIGNvbW1pdC5pZGVu
dGlmaWVyIG9yIGNvbW1pdC5oYXNoOgorICAgICAgICAgICAgcmV0dXJuIGYne3NlbGYucmVtb3Rl
LnVybH0vY29tbWl0cy97Y29tbWl0Lmhhc2h9JworICAgICAgICByZXR1cm4gTm9uZQogCiAgICAg
ZGVmIHJlcHJlc2VudGF0aW9ucyhzZWxmKToKICAgICAgICAgcmV0dXJuIFsnaGFzaCcsICdpZGVu
dGlmaWVyJ10KQEAgLTgxLDM1ICs3MCw0NyBAQCBjbGFzcyBTdGFzaFJlcG9zaXRvcnkoUmVwb3Np
dG9yeSk6CiBjbGFzcyBXZWJLaXRSZXBvc2l0b3J5KFJlcG9zaXRvcnkpOgogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnJlbW90ZSA9IHJlbW90ZS5Tdm4oJ2h0dHBzOi8v
c3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJraXQnKQorICAgICAgICBzZWxmLnN2biA9IHJl
bW90ZS5Tdm4oJ2h0dHBzOi8vc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJraXQnKQorICAg
ICAgICBzZWxmLmdpdGh1YiA9IHJlbW90ZS5HaXRIdWIoJ2h0dHBzOi8vZ2l0aHViLmNvbS9XZWJL
aXQvV2ViS2l0JykKICAgICAgICAgc3VwZXIoV2ViS2l0UmVwb3NpdG9yeSwgc2VsZikuX19pbml0
X18oCiAgICAgICAgICAgICBrZXk9J3dlYmtpdCcsCi0gICAgICAgICAgICBkZWZhdWx0X2JyYW5j
aD1zZWxmLnJlbW90ZS5kZWZhdWx0X2JyYW5jaCwKLSAgICAgICAgKQotCi0gICAgZGVmIGNvbW1p
dF9mb3JfaWQoc2VsZiwgaWQpOgotICAgICAgICBjb21taXQgPSBzZWxmLnJlbW90ZS5jb21taXQo
cmV2aXNpb249aWQsIGluY2x1ZGVfaWRlbnRpZmllcj1GYWxzZSkKLSAgICAgICAgcmV0dXJuIENv
bW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9c2VsZi5rZXksCi0gICAgICAgICAgICBp
ZD1jb21taXQucmV2aXNpb24sCi0gICAgICAgICAgICBicmFuY2g9Y29tbWl0LmJyYW5jaCwKLSAg
ICAgICAgICAgIHRpbWVzdGFtcD1jb21taXQudGltZXN0YW1wLAotICAgICAgICAgICAgb3JkZXI9
Y29tbWl0Lm9yZGVyLAotICAgICAgICAgICAgY29tbWl0dGVyPWNvbW1pdC5hdXRob3IuZW1haWws
Ci0gICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlLAorICAgICAgICAgICAgZGVmYXVs
dF9icmFuY2g9c2VsZi5naXRodWIuZGVmYXVsdF9icmFuY2gsCiAgICAgICAgICkKIAotICAgIGRl
ZiBjb21taXQoc2VsZiwgcmVmPU5vbmUsIHJldmlzaW9uPU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRp
Zmllcj1Ob25lLCBmYXN0PVRydWUpOgorICAgIGRlZiBjb21taXQoc2VsZiwgcmVmPU5vbmUsIHJl
dmlzaW9uPU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRpZmllcj1Ob25lLCBmYXN0PUZhbHNlKToKICAg
ICAgICAgaWYgaWRlbnRpZmllcjoKICAgICAgICAgICAgIGZhc3QgPSBGYWxzZQorCiAgICAgICAg
IGlmIHJlZjoKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVmLCBpbnQpIG9yIHJlZi5pc2Rp
Z2l0KCk6Ci0gICAgICAgICAgICAgICAgcmVmID0gJ3J7fScuZm9ybWF0KHJlZikKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLnJlbW90ZS5maW5kKHJlZiwgaW5jbHVkZV9pZGVudGlmaWVyPW5vdCBm
YXN0KQotICAgICAgICByZXR1cm4gc2VsZi5yZW1vdGUuY29tbWl0KHJldmlzaW9uPXJldmlzaW9u
LCBoYXNoPWhhc2gsIGlkZW50aWZpZXI9aWRlbnRpZmllciwgaW5jbHVkZV9pZGVudGlmaWVyPW5v
dCBmYXN0KQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc3ZuLmZpbmQoJ3J7fScuZm9y
bWF0KHJlZiksIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5naXRodWIuZmluZChyZWYsIGluY2x1ZGVf
aWRlbnRpZmllcj1ub3QgZmFzdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdCA9
IChzZWxmLnN2biBpZiByZXZpc2lvbiBhbmQgbm90IGhhc2ggZWxzZSBzZWxmLmdpdGh1YikuY29t
bWl0KAorICAgICAgICAgICAgICAgIHJldmlzaW9uPU5vbmUgaWYgaGFzaCBlbHNlIHJldmlzaW9u
LAorICAgICAgICAgICAgICAgIGhhc2g9aGFzaCwKKyAgICAgICAgICAgICAgICBpZGVudGlmaWVy
PU5vbmUgaWYgbm90IGhhc2ggYW5kIG5vdCByZXZpc2lvbiBlbHNlIGlkZW50aWZpZXIsCisgICAg
ICAgICAgICAgICAgaW5jbHVkZV9pZGVudGlmaWVyPW5vdCBmYXN0LAorICAgICAgICAgICAgKQor
CisgICAgICAgIGlmIG5vdCBmYXN0IGFuZCByZXN1bHQuaGFzaCBhbmQgcmVzdWx0LmlkZW50aWZp
ZXI6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmdpdGh1Yi5jb21taXQoaWRlbnRpZmllcj1z
dHIocmVzdWx0KSkKKworICAgICAgICBpZiByZXN1bHQuYnJhbmNoIGluIHNlbGYuc3ZuLkRFRkFV
TFRfQlJBTkNIRVM6CisgICAgICAgICAgICByZXN1bHQuYnJhbmNoID0gc2VsZi5kZWZhdWx0X2Jy
YW5jaAorICAgICAgICByZXR1cm4gcmVzdWx0CiAKICAgICBkZWYgdXJsX2Zvcl9jb21taXQoc2Vs
ZiwgY29tbWl0KToKLSAgICAgICAgcmV0dXJuIGYnaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcv
cntjb21taXR9JworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb21taXQsIENvbW1pdCk6Cisg
ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZidFeHBlY3RlZCB0eXBlIHtDb21taXR9LCBnb3Qg
e3R5cGUoY29tbWl0KX0nKQorCisgICAgICAgIGlmIGNvbW1pdC5pZGVudGlmaWVyIG9yIGNvbW1p
dC5oYXNoOgorICAgICAgICAgICAgcmV0dXJuIGYnaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcv
e2NvbW1pdH0nCisgICAgICAgIGlmIGNvbW1pdC5yZXZpc2lvbjoKKyAgICAgICAgICAgIHJldHVy
biBmJ2h0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3J7Y29tbWl0LnJldmlzaW9ufScKKyAgICAg
ICAgcmV0dXJuIE5vbmUKKwogCiAgICAgZGVmIHJlcHJlc2VudGF0aW9ucyhzZWxmKToKLSAgICAg
ICAgcmV0dXJuIFsnaWRlbnRpZmllcicsICdyZXZpc2lvbiddCisgICAgICAgIHJldHVybiBbJ2lk
ZW50aWZpZXInLCAnaGFzaCcsICdyZXZpc2lvbiddCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5X3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvcmVwb3NpdG9yeV91bml0dGVzdC5weQppbmRleCA3Y2Y2YzdjNWZiZDMwM2RkNmRkMzc5
ZDM0NGZhZjIwYWRhODJlZWM2Li5lZDNjN2Q2YTg0NWYxZjI2NGUxMzM3NWEyMDFiZjE2Yjg1ZGI2
MTQzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRvcnlfdW5pdHRl
c3QucHkKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgUmVwb3NpdG9yeVRlc3QoV2FpdEZvckRvY2tl
clRlc3RDYXNlKToKICAgICAgICAgICAgIGNvbW1pdCA9IHN2bl9yZXBvLmNvbW1pdChyZXZpc2lv
bj02KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQudXVpZCwgMTYwMTYzOTkw
MDAwKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQubWVzc2FnZSwgJzZ0aCBj
b21taXQnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQuYnJhbmNoLCAndHJ1
bmsnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQuYnJhbmNoLCAnbWFpbicp
CiAKICAgICBkZWYgdGVzdF9yZWZfc3ZuKHNlbGYpOgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZh
Y3Rvcnkud2Via2l0KCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9zdWl0ZV9jb250ZXh0LnB5IGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5w
eQppbmRleCAzNWU2YTc3ZWQ1N2M0Y2Y2Mzk2NTUxZjA5Y2MwZGExM2ZlMTI3ODgzLi43OGU5MDNl
Y2I4MDEzZjVjNWUxYmU1ZDVmMDc5ZmNjNThmYzcwZWM0IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9zdWl0ZV9jb250ZXh0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5
L21vZGVsL3N1aXRlX2NvbnRleHQucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAx
OS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjYsMTEgKzI2LDExIEBAIGltcG9ydCB0aW1lCiAKIGZyb20gY2Fzc2Fu
ZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJv
bSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAog
ZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0
ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC50ZXN0X2NvbnRleHQg
aW1wb3J0IEV4cGVjdGF0aW9ucwogZnJvbSByZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4
dCBpbXBvcnQgVXBsb2FkQ2FsbGJhY2tDb250ZXh0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBD
b21taXQKIAogCiBjbGFzcyBTdWl0ZUNvbnRleHQoVXBsb2FkQ2FsbGJhY2tDb250ZXh0KToKQEAg
LTExNiw3ICsxMTYsNyBAQCBjbGFzcyBTdWl0ZUNvbnRleHQoVXBsb2FkQ2FsbGJhY2tDb250ZXh0
KToKICAgICAgICAgICAgIEV4cGVjdGF0aW9ucy5pdGVyYXRlX3Rocm91Z2hfbmVzdGVkX3Jlc3Vs
dHModGVzdF9yZXN1bHRzLmdldCgncmVzdWx0cycpLCBjYWxsYmFjaykKIAogICAgICAgICAgICAg
dXVpZCA9IHNlbGYuY29tbWl0X2NvbnRleHQudXVpZF9mb3JfY29tbWl0cyhjb21taXRzKQotICAg
ICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxU
SVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vj
b25kcyBlbHNlIE5vbmUKKyAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBDb21taXQuVVVJ
RF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50
dGxfc2Vjb25kcyBlbHNlIE5vbmUKIAogICAgICAgICAgICAgd2l0aCBzZWxmLCBzZWxmLmNhc3Nh
bmRyYS5iYXRjaF9xdWVyeV9jb250ZXh0KCk6CiAgICAgICAgICAgICAgICAgZm9yIGJyYW5jaCBp
biBzZWxmLmNvbW1pdF9jb250ZXh0LmJyYW5jaF9rZXlzX2Zvcl9jb21taXRzKGNvbW1pdHMpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvbW9kZWwvdGVzdF9jb250ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdGVzdF9jb250ZXh0LnB5CmluZGV4IDg2MjlmZmU2MWE3
NWQ2ZTFmOTkwNTgwMjU5MzZmZGJlY2RjMTI2OTkuLmMyYTAxZmYyYzMxZGEwMzlhNGVmZjMxMmFk
MWNjNjVkOTVlMGUwZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3Rlc3RfY29udGV4dC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC90ZXN0X2NvbnRleHQu
cHkKQEAgLTI4LDEwICsyOCwxMCBAQCBpbXBvcnQgdGltZQogZnJvbSBjYXNzYW5kcmEuY3FsZW5n
aW5lIGltcG9ydCBjb2x1bW5zCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUubW9kZWxzIGltcG9y
dCBNb2RlbAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVzdWx0c2RicHku
Y29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5j
b21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2Rl
bC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgog
ZnJvbSByZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ2FsbGJh
Y2tDb250ZXh0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBjbGFzcyBFeHBl
Y3RhdGlvbnM6CkBAIC0xNTksNyArMTU5LDcgQEAgY2xhc3MgVGVzdENvbnRleHQoVXBsb2FkQ2Fs
bGJhY2tDb250ZXh0KToKIAogICAgICAgICAgICAgd2l0aCBzZWxmOgogICAgICAgICAgICAgICAg
IHV1aWQgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMoY29tbWl0cykKLSAg
ICAgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlE
X01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBzZWxmLnR0
bF9zZWNvbmRzIGVsc2UgTm9uZQorICAgICAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBD
b21taXQuVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkg
aWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUKIAogICAgICAgICAgICAgICAgIGRlZiBjYWxs
YmFjayh0ZXN0LCByZXN1bHQsIGJyYW5jaCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2Fz
c2FuZHJhLmluc2VydF9yb3coc2VsZi5UZXN0TmFtZUJ5U3VpdGUuX190YWJsZV9uYW1lX18sIHN1
aXRlPXN1aXRlLCB0ZXN0PXRlc3QsIHR0bD10dGwpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5w
eSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVs
L3VwbG9hZF9jb250ZXh0LnB5CmluZGV4IGE4YTVjYzFjZTkyODkwMzJhMmJhZGYwYjQ3ZjQ1ZGRm
ZTJlMjliMGIuLmE1ODkyZmRjMzg2YTI1ZjUxZTE2YjlmMzk3ZmI3NjBlZDQ5ZjE0NDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21v
ZGVsL3VwbG9hZF9jb250ZXh0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3VwbG9hZF9jb250ZXh0LnB5CkBAIC0yOSwxMiArMjks
MTEgQEAgaW1wb3J0IHppcGZpbGUKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29s
dW1ucwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKIGZyb20gZGF0ZXRpbWUg
aW1wb3J0IGRhdGV0aW1lCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9y
dCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb25maWd1cmF0aW9uIGltcG9y
dCBDb25maWd1cmF0aW9uCiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNvbW1pdF9jb250ZXh0IGlt
cG9ydCBDb21taXRDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNvbmZpZ3VyYXRpb25f
Y29udGV4dCBpbXBvcnQgQ2x1c3RlcmVkQnlDb25maWd1cmF0aW9uCiAKLWZyb20gd2Via2l0c2Nt
cHkgaW1wb3J0IENvbW1pdCBhcyBTY21Db21taXQKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENv
bW1pdAogCiAKIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0KToKQEAgLTYzLDcgKzYyLDcgQEAg
Y2xhc3MgVXBsb2FkQ29udGV4dChvYmplY3QpOgogCiAgICAgICAgIGRlZiB1bnBhY2soc2VsZik6
CiAgICAgICAgICAgICByZXR1cm4gZGljdCgKLSAgICAgICAgICAgICAgICBjb21taXRzPVtTY21D
b21taXQuZnJvbV9qc29uKGVsZW1lbnQpIGZvciBlbGVtZW50IGluIGpzb24ubG9hZHMoVXBsb2Fk
Q29udGV4dC5mcm9tX3ppcChieXRlYXJyYXkoc2VsZi5jb21taXRzKSkpXSwKKyAgICAgICAgICAg
ICAgICBjb21taXRzPVtDb21taXQuZnJvbV9qc29uKGVsZW1lbnQpIGZvciBlbGVtZW50IGluIGpz
b24ubG9hZHMoVXBsb2FkQ29udGV4dC5mcm9tX3ppcChieXRlYXJyYXkoc2VsZi5jb21taXRzKSkp
XSwKICAgICAgICAgICAgICAgICBzZGs9Tm9uZSBpZiBzZWxmLnNkayA9PSAnPycgZWxzZSBzZWxm
LnNkaywKICAgICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHM9anNvbi5sb2FkcyhVcGxvYWRDb250
ZXh0LmZyb21femlwKGJ5dGVhcnJheShzZWxmLnRlc3RfcmVzdWx0cykpKSwKICAgICAgICAgICAg
ICAgICB0aW1lc3RhbXA9Y2FsZW5kYXIudGltZWdtKHNlbGYudGltZV91cGxvYWRlZC50aW1ldHVw
bGUoKSksCkBAIC04Myw3ICs4Miw3IEBAIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0KToKIAog
ICAgICAgICBkZWYgdW5wYWNrKHNlbGYpOgogICAgICAgICAgICAgcmV0dXJuIGRpY3QoCi0gICAg
ICAgICAgICAgICAgY29tbWl0cz1bU2NtQ29tbWl0LmZyb21fanNvbihlbGVtZW50KSBmb3IgZWxl
bWVudCBpbiBqc29uLmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYu
Y29tbWl0cykpKV0sCisgICAgICAgICAgICAgICAgY29tbWl0cz1bQ29tbWl0LmZyb21fanNvbihl
bGVtZW50KSBmb3IgZWxlbWVudCBpbiBqc29uLmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAo
Ynl0ZWFycmF5KHNlbGYuY29tbWl0cykpKV0sCiAgICAgICAgICAgICAgICAgc2RrPU5vbmUgaWYg
c2VsZi5zZGsgPT0gJz8nIGVsc2Ugc2VsZi5zZGssCiAgICAgICAgICAgICAgICAgdGVzdF9yZXN1
bHRzPWpzb24ubG9hZHMoVXBsb2FkQ29udGV4dC5mcm9tX3ppcChieXRlYXJyYXkoc2VsZi50ZXN0
X3Jlc3VsdHMpKSksCiAgICAgICAgICAgICAgICAgdGltZXN0YW1wPWNhbGVuZGFyLnRpbWVnbShz
ZWxmLnRpbWVfdXBsb2FkZWQudGltZXR1cGxlKCkpLApAQCAtMTgxLDcgKzE4MCw3IEBAIGNsYXNz
IFVwbG9hZENvbnRleHQob2JqZWN0KToKICAgICAgICAgICAgICAgICBkYXRhID0ganNvbi5sb2Fk
cyhyYXdfZGF0YSkKICAgICAgICAgICAgICAgICBzZWxmLnN5bmNocm9ub3VzbHlfcHJvY2Vzc190
ZXN0X3Jlc3VsdHMoCiAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb249Q29uZmlndXJh
dGlvbi5mcm9tX2pzb24oZGF0YVsnY29uZmlndXJhdGlvbiddKSwKLSAgICAgICAgICAgICAgICAg
ICAgY29tbWl0cz1bU2NtQ29tbWl0LmZyb21fanNvbihjb21taXRfanNvbikgZm9yIGNvbW1pdF9q
c29uIGluIGRhdGFbJ2NvbW1pdHMnXV0sCisgICAgICAgICAgICAgICAgICAgIGNvbW1pdHM9W0Nv
bW1pdC5mcm9tX2pzb24oY29tbWl0X2pzb24pIGZvciBjb21taXRfanNvbiBpbiBkYXRhWydjb21t
aXRzJ11dLAogICAgICAgICAgICAgICAgICAgICBzdWl0ZT1kYXRhWydzdWl0ZSddLAogICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA9ZGF0YVsndGltZXN0YW1wJ10sCiAgICAgICAgICAgICAg
ICAgICAgIHRlc3RfcmVzdWx0cz1kYXRhWyd0ZXN0X3Jlc3VsdHMnXSwKQEAgLTI0Myw3ICsyNDIs
NyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgIGlmIG5vdCBpc2luc3Rh
bmNlKHN1aXRlLCBzdHIpOgogICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQg
dHlwZSB7c3RyfSwgZ290IHt0eXBlKHN1aXRlKX0nKQogICAgICAgICBmb3IgY29tbWl0IGluIGNv
bW1pdHM6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb21taXQsIFNjbUNvbW1pdCkg
YW5kIG5vdCBpc2luc3RhbmNlKGNvbW1pdCwgQ29tbWl0KToKKyAgICAgICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKGNvbW1pdCwgQ29tbWl0KToKICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJy
b3IoZidFeHBlY3RlZCB0eXBlIHtDb21taXR9LCBnb3Qge3R5cGUoY29tbWl0KX0nKQogICAgICAg
ICBpZiBsZW4oY29tbWl0cykgPCAxOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRWFj
aCB0ZXN0IHJlc3VsdCBtdXN0IGhhdmUgYXQgbGVhc3QgMSBhc3NvY2lhdGVkIGNvbW1pdCcpCkBA
IC0yNjIsNyArMjYxLDcgQEAgY2xhc3MgVXBsb2FkQ29udGV4dChvYmplY3QpOgogCiAgICAgICAg
ICAgICAgICAgc2VsZi5jb25maWd1cmF0aW9uX2NvbnRleHQuaW5zZXJ0X3Jvd193aXRoX2NvbmZp
Z3VyYXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuU3VpdGVzQnlDb25maWd1cmF0aW9u
Ll9fdGFibGVfbmFtZV9fLCBjb25maWd1cmF0aW9uLCBzdWl0ZT1zdWl0ZSwgYnJhbmNoPWJyYW5j
aCwKLSAgICAgICAgICAgICAgICAgICAgdHRsPWludCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1Q
X1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlm
IHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lLAorICAgICAgICAgICAgICAgICAgICB0dGw9aW50
KCh1dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRp
bWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZSwKICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgc2VsZi5jb25maWd1cmF0aW9uX2NvbnRleHQuaW5zZXJ0X3Jv
d193aXRoX2NvbmZpZ3VyYXRpb24oCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuVXBsb2Fkc0J5
Q29uZmlndXJhdGlvbi5fX3RhYmxlX25hbWVfXywgY29uZmlndXJhdGlvbj1jb25maWd1cmF0aW9u
LApAQCAtMjcwLDcgKzI2OSw3IEBAIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAgICAgY29tbWl0cz1zZWxmLnRvX3ppcChqc29uLmR1bXBzKGNvbW1pdHMsIGNs
cz1jb21taXRzWzBdLkVuY29kZXIpKSwKICAgICAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRz
PXNlbGYudG9femlwKGpzb24uZHVtcHModGVzdF9yZXN1bHRzKSksCiAgICAgICAgICAgICAgICAg
ICAgIHVwbG9hZF92ZXJzaW9uPXZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgIHR0bD1pbnQo
KHV1aWQgLy8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxf
c2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZSwKKyAg
ICAgICAgICAgICAgICAgICAgdHRsPWludCgodXVpZCAvLyBDb21taXQuVVVJRF9NVUxUSVBMSUVS
KSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBl
bHNlIE5vbmUsCiAgICAgICAgICAgICAgICAgKQogCiAgICAgZGVmIGZpbmRfdGVzdF9yZXN1bHRz
KHNlbGYsIGNvbmZpZ3VyYXRpb25zLCBzdWl0ZSwgYnJhbmNoPU5vbmUsIGJlZ2luPU5vbmUsIGVu
ZD1Ob25lLCByZWNlbnQ9VHJ1ZSwgbGltaXQ9MTAwKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvdmlldy9hcmNoaXZlX3ZpZXdfdW5pdHRlc3QucHkKaW5kZXggN2JjYTY1NTJjMGZjOWU1YjA5
MTFkNThhZWZiZmFjMzExNjJlNjYxYy4uYWRiZDcxYmE1MGI4YmE3MWQwNmRlZjA5MmIxMGE0NjBi
MGE0YzcxOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkv
cmVzdWx0c2RicHkvdmlldy9hcmNoaXZlX3ZpZXdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9hcmNoaXZlX3ZpZXdf
dW5pdHRlc3QucHkKQEAgLTI0LDEzICsyNCwxMyBAQCBpbXBvcnQgYmFzZTY0CiBpbXBvcnQganNv
bgogCiBmcm9tIGZha2VyZWRpcyBpbXBvcnQgRmFrZVN0cmljdFJlZGlzCi1mcm9tIHJlc3VsdHNk
YnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkuY29u
dHJvbGxlci5jb25maWd1cmF0aW9uIGltcG9ydCBDb25maWd1cmF0aW9uCiBmcm9tIHJlc3VsdHNk
YnB5Lm1vZGVsLmNvbmZpZ3VyYXRpb25fY29udGV4dF91bml0dGVzdCBpbXBvcnQgQ29uZmlndXJh
dGlvbkNvbnRleHRUZXN0CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLm1vY2tfY2Fzc2FuZHJhX2Nv
bnRleHQgaW1wb3J0IE1vY2tDYXNzYW5kcmFDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVs
Lm1vY2tfbW9kZWxfZmFjdG9yeSBpbXBvcnQgTW9ja01vZGVsRmFjdG9yeQogZnJvbSByZXN1bHRz
ZGJweS5tb2RlbC53YWl0X2Zvcl9kb2NrZXJfdGVzdF9jYXNlIGltcG9ydCBXYWl0Rm9yRG9ja2Vy
VGVzdENhc2UKIGZyb20gcmVzdWx0c2RicHkudmlldy52aWV3X3JvdXRlc191bml0dGVzdCBpbXBv
cnQgV2ViU2l0ZVRlc3RDYXNlCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBj
bGFzcyBBcmNoaXZlVmlld1VuaXR0ZXN0KFdlYlNpdGVUZXN0Q2FzZSk6CkBAIC01MSw3ICs1MSw3
IEBAIGNsYXNzIEFyY2hpdmVWaWV3VW5pdHRlc3QoV2ViU2l0ZVRlc3RDYXNlKToKICAgICAgICAg
ICAgICAgICApLCBkaWN0KAogICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSd3ZWJr
aXQnLAogICAgICAgICAgICAgICAgICAgICBpZD0nNicsCi0gICAgICAgICAgICAgICAgICAgIGJy
YW5jaD0ndHJ1bmsnLAorICAgICAgICAgICAgICAgICAgICBicmFuY2g9J21haW4nLAogICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA9MTYwMTY2NTEwMCwKICAgICAgICAgICAgICAgICAgICAg
b3JkZXI9MCwKICAgICAgICAgICAgICAgICAgICAgY29tbWl0dGVyPSdqYmVkYXJkQGFwcGxlLmNv
bScsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS92aWV3L2NvbW1pdF92aWV3LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9jb21taXRfdmlldy5weQppbmRleCA2ZjQ1ZTE4ZDY1
ZTgwMWZlZjZkYjU0NzI1Yjk1Y2M4ZjgyMjdmODY5Li5hOGVlNzc2MzA5OGY5ZjdmNzAwNzBjOGIz
NjgxOWY5MjExZDZlZDdkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2NvbW1pdF92aWV3LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcucHkK
QEAgLTIxLDkgKzIxLDkgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogZnJvbSBmbGFzayBpbXBvcnQgYWJv
cnQsIHJlZGlyZWN0LCByZXF1ZXN0Ci1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0
IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkudmlldy5zaXRlX21lbnUgaW1wb3J0IFNp
dGVNZW51CiBmcm9tIHdlYmtpdGZsYXNrcHkudXRpbCBpbXBvcnQgQXNzZXJ0UmVxdWVzdCwgcXVl
cnlfYXNfa3dhcmdzCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBjbGFzcyBD
b21taXRWaWV3KG9iamVjdCk6CkBAIC01Niw3ICs1Niw3IEBAIGNsYXNzIENvbW1pdFZpZXcob2Jq
ZWN0KToKICAgICAgICAgcmVwb3NpdG9yaWVzID0gW2NvbW1pdC5yZXBvc2l0b3J5X2lkXSArIHNv
cnRlZChbc3RyKGtleSkgZm9yIGtleSwgbHN0IGluIHNpYmxpbmdzLml0ZW1zKCkgaWYgbHN0XSkK
IAogICAgICAgICByZXR1cm4gc2VsZi5lbnZpcm9ubWVudC5nZXRfdGVtcGxhdGUoJ2NvbW1pdC5o
dG1sJykucmVuZGVyKAotICAgICAgICAgICAgdGl0bGU9c2VsZi5zaXRlX21lbnUudGl0bGUgKyAn
OiAnICsgc3RyKGNvbW1pdC5pZCksCisgICAgICAgICAgICB0aXRsZT1zZWxmLnNpdGVfbWVudS50
aXRsZSArICc6ICcgKyBzdHIoY29tbWl0KSwKICAgICAgICAgICAgIGNvbW1pdD1jb21taXQsCiAg
ICAgICAgICAgICByZXBvc2l0b3J5X2lkcz1yZXBvc2l0b3JpZXMsCiAgICAgICAgICAgICBjb21t
aXRzPUNvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChbY29tbWl0XSArIFtpdGVtIGZvciBsc3QgaW4g
c2libGluZ3MudmFsdWVzKCkgZm9yIGl0ZW0gaW4gbHN0XSksCkBAIC02NCw5ICs2NCw5IEBAIGNs
YXNzIENvbW1pdFZpZXcob2JqZWN0KToKIAogICAgIGRlZiBpbmZvKHNlbGYpOgogICAgICAgICBj
b21taXQgPSBzZWxmLl9zaW5nbGVfY29tbWl0KCkKLSAgICAgICAgaW5mb191cmwgPSBzZWxmLmNv
bW1pdF9jb250ZXh0LnJlcG9zaXRvcmllc1tjb21taXQucmVwb3NpdG9yeV9pZF0udXJsX2Zvcl9j
b21taXQoY29tbWl0LmlkKQorICAgICAgICBpbmZvX3VybCA9IHNlbGYuY29tbWl0X2NvbnRleHQu
cmVwb3NpdG9yaWVzW2NvbW1pdC5yZXBvc2l0b3J5X2lkXS51cmxfZm9yX2NvbW1pdChjb21taXQp
CiAgICAgICAgIGlmIG5vdCBpbmZvX3VybDoKLSAgICAgICAgICAgIGFib3J0KDQxMCwgZGVzY3Jp
cHRpb249ZidGb3VuZCBjb21taXQge2xlbihjb21taXQuaWQpfSwgYnV0IG5vIGluZm8gdXJsIGZv
dW5kJykKKyAgICAgICAgICAgIGFib3J0KDQxMCwgZGVzY3JpcHRpb249ZidGb3VuZCBjb21taXQg
e2NvbW1pdH0sIGJ1dCBubyBpbmZvIHVybCBmb3VuZCcpCiAgICAgICAgIHJldHVybiByZWRpcmVj
dChpbmZvX3VybCkKIAogICAgIGRlZiBwcmV2aW91cyhzZWxmKToKQEAgLTc0LDE2ICs3NCwxNiBA
QCBjbGFzcyBDb21taXRWaWV3KG9iamVjdCk6CiAgICAgICAgICAgICBvcmlnaW5hbF9jb21taXQg
PSBzZWxmLl9zaW5nbGVfY29tbWl0KCkKICAgICAgICAgICAgIGNvbW1pdCA9IHNlbGYuY29tbWl0
X2NvbnRleHQucHJldmlvdXNfY29tbWl0KG9yaWdpbmFsX2NvbW1pdCkKICAgICAgICAgICAgIGlm
IG5vdCBjb21taXQ6Ci0gICAgICAgICAgICAgICAgYWJvcnQoNDA0LCBkZXNjcmlwdGlvbj1mJ3tv
cmlnaW5hbF9jb21taXQuaWR9IGhhcyBubyByZWdpc3RlcmVkIHByZXZpb3VzIGNvbW1pdCcpCi0g
ICAgICAgIHJldHVybiByZWRpcmVjdChmJy9jb21taXQ/cmVwb3NpdG9yeV9pZD17Y29tbWl0LnJl
cG9zaXRvcnlfaWR9JmlkPXtjb21taXQuaWR9JykKKyAgICAgICAgICAgICAgICBhYm9ydCg0MDQs
IGRlc2NyaXB0aW9uPWYne29yaWdpbmFsX2NvbW1pdH0gaGFzIG5vIHJlZ2lzdGVyZWQgcHJldmlv
dXMgY29tbWl0JykKKyAgICAgICAgcmV0dXJuIHJlZGlyZWN0KGYnL2NvbW1pdD9yZXBvc2l0b3J5
X2lkPXtjb21taXQucmVwb3NpdG9yeV9pZH0maWQ9e2NvbW1pdH0nKQogCiAgICAgZGVmIG5leHQo
c2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5jb21taXRfY29udGV4dDoKICAgICAgICAgICAgIG9y
aWdpbmFsX2NvbW1pdCA9IHNlbGYuX3NpbmdsZV9jb21taXQoKQogICAgICAgICAgICAgY29tbWl0
ID0gc2VsZi5jb21taXRfY29udGV4dC5uZXh0X2NvbW1pdChvcmlnaW5hbF9jb21taXQpCiAgICAg
ICAgICAgICBpZiBub3QgY29tbWl0OgotICAgICAgICAgICAgICAgIGFib3J0KDQwNCwgZGVzY3Jp
cHRpb249Zid7b3JpZ2luYWxfY29tbWl0LmlkfSBoYXMgbm8gcmVnaXN0ZXJlZCBzdWJzZXF1ZW50
IGNvbW1pdCcpCi0gICAgICAgICAgICByZXR1cm4gcmVkaXJlY3QoZicvY29tbWl0P3JlcG9zaXRv
cnlfaWQ9e2NvbW1pdC5yZXBvc2l0b3J5X2lkfSZpZD17Y29tbWl0LmlkfScpCisgICAgICAgICAg
ICAgICAgYWJvcnQoNDA0LCBkZXNjcmlwdGlvbj1mJ3tvcmlnaW5hbF9jb21taXR9IGhhcyBubyBy
ZWdpc3RlcmVkIHN1YnNlcXVlbnQgY29tbWl0JykKKyAgICAgICAgICAgIHJldHVybiByZWRpcmVj
dChmJy9jb21taXQ/cmVwb3NpdG9yeV9pZD17Y29tbWl0LnJlcG9zaXRvcnlfaWR9JmlkPXtjb21t
aXR9JykKIAogICAgIEBTaXRlTWVudS5yZW5kZXJfd2l0aF9zaXRlX21lbnUoKQogICAgIGRlZiBj
b21taXRzKHNlbGYsICoqa3dhcmdzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2NvbW1pdC5qcyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGlj
L2pzL2NvbW1pdC5qcwppbmRleCA5Y2U3ZDJiNjUzZDlkN2NjMTU4OWJmYWNlYzQzZGRmNTdmM2Mw
MjIwLi4zNzI3NzkwYTFlOTdhYTQ3NjMxZTJmN2NmYWU2YzBlNWY1ZTE4MmZkIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0
YXRpYy9qcy9jb21taXQuanMKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMvY29tbWl0LmpzCkBAIC0xMDEsMTYgKzEwMSwx
NiBAQCBmdW5jdGlvbiBDb21taXRUYWJsZShjb21taXRzLCByZXBvc2l0b3J5SWRzID0gW10sIG9u
ZUxpbmUgPSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICBsZXQgY29tbWl0QXJncyA9IHBh
cmFtc1RvUXVlcnkoewogICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZDogW2Nl
bGwuY29tbWl0LnJlcG9zaXRvcnlfaWRdLAogICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNo
OiBbY2VsbC5jb21taXQuYnJhbmNoXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBbY2Vs
bC5jb21taXQuaWRlbnRpZmllcl0sCisgICAgICAgICAgICAgICAgICAgICAgICByZWY6IFtjZWxs
LmNvbW1pdC5oYXNoID8gY2VsbC5jb21taXQuaGFzaCA6IGNlbGwuY29tbWl0LnJldmlzaW9uXSwK
ICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBpbnZlc3Rp
Z2F0ZUFyZ3MgPSB7aWQ6IFtjZWxsLmNvbW1pdC5pZGVudGlmaWVyXX07CisgICAgICAgICAgICAg
ICAgICAgIGxldCBpbnZlc3RpZ2F0ZUFyZ3MgPSB7cmVmOiBbY2VsbC5jb21taXQuaGFzaCA/IGNl
bGwuY29tbWl0Lmhhc2ggOiBjZWxsLmNvbW1pdC5yZXZpc2lvbl19OwogICAgICAgICAgICAgICAg
ICAgICBpZiAoIVsnbWFzdGVyJywgJ21haW4nLCAndHJ1bmsnXS5pbmNsdWRlcyhjZWxsLmNvbW1p
dC5icmFuY2gpKQogICAgICAgICAgICAgICAgICAgICAgICAgaW52ZXN0aWdhdGVBcmdzLmJyYW5j
aCA9IFtjZWxsLmNvbW1pdC5icmFuY2hdOwogCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBg
PHRkIHJvd3NwYW49IiR7Y2VsbC5yb3dzcGFufSI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8
YSBocmVmPSIvY29tbWl0PyR7Y29tbWl0QXJnc30iPiR7Y2VsbC5jb21taXQubGFiZWwoKX08L2E+
IDxicj4KICAgICAgICAgICAgICAgICAgICAgICAgIEJyYW5jaDogJHtjZWxsLmNvbW1pdC5icmFu
Y2h9IDxicj4KLSAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcjogJHtlc2NhcGVIVE1MKGNl
bGwuY29tbWl0LmF1dGhvcil9IDxicj4KKyAgICAgICAgICAgICAgICAgICAgICAgICR7Y2VsbC5j
b21taXQuYXV0aG9yID8gYEF1dGhvcjogJHtlc2NhcGVIVE1MKGNlbGwuY29tbWl0LmF1dGhvci5u
YW1lKX0gJiM2MCR7ZXNjYXBlSFRNTChjZWxsLmNvbW1pdC5hdXRob3IuZW1haWwpfSYjNjIgPGJy
PmAgOiAnJ30KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jb21taXQvaW5mbz8k
e2NvbW1pdEFyZ3N9Ij5Nb3JlIEluZm88L2E+PGJyPgogICAgICAgICAgICAgICAgICAgICAgICAg
PGEgaHJlZj0iL2ludmVzdGlnYXRlPyR7cGFyYW1zVG9RdWVyeShpbnZlc3RpZ2F0ZUFyZ3MpfSI+
VGVzdCByZXN1bHRzIGZvciBjb21taXQ8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAke2Z1
bmN0aW9uKCkgewpAQCAtMTMzLDcgKzEzMywxMCBAQCBjbGFzcyBDb21taXQgewogICAgICAgICB0
aGlzLnJldmlzaW9uID0ganNvbi5yZXZpc2lvbjsKICAgICAgICAgdGhpcy5oYXNoID0ganNvbi5o
YXNoOwogCi0gICAgICAgIHRoaXMuYXV0aG9yID0ganNvbi5hdXRob3IgPyBqc29uLmF1dGhvci5u
YW1lIDoganNvbi5jb21taXR0ZXI7CisgICAgICAgIHRoaXMuYXV0aG9yID0ganNvbi5hdXRob3Ig
PyBqc29uLmF1dGhvciA6IHsKKyAgICAgICAgICAgICduYW1lJzoganNvbi5jb21taXR0ZXIsCisg
ICAgICAgICAgICAnZW1haWwnOiBqc29uLmVtYWlsLAorICAgICAgICB9OwogCiAgICAgICAgIHRo
aXMucmVwb3NpdG9yeV9pZCA9IGpzb24ucmVwb3NpdG9yeV9pZDsKICAgICAgICAgdGhpcy5icmFu
Y2ggPSBqc29uLmJyYW5jaDsKQEAgLTE0OSwxMyArMTUyLDEzIEBAIGNsYXNzIENvbW1pdCB7CiAg
ICAgbGFiZWwoKSB7CiAgICAgICAgIGNvbnN0IHByZWZlcmVuY2UgPSBDb21taXRCYW5rLl9yZXBy
ZXNlbnRhdGlvbkNhY2hlID8gQ29tbWl0QmFuay5fcmVwcmVzZW50YXRpb25DYWNoZVt0aGlzLnJl
cG9zaXRvcnlfaWRdLnJlcHJlc2VudGF0aW9uIDogbnVsbDsKIAotICAgICAgICBpZiAocHJlZmVy
ZW5jZSA9PT0gJ2lkZW50aWZpZXInKQorICAgICAgICBpZiAocHJlZmVyZW5jZSA9PT0gJ2lkZW50
aWZpZXInICYmIHRoaXMuaWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybiB0aGlzLmlkZW50
aWZpZXI7Ci0gICAgICAgIGlmIChwcmVmZXJlbmNlID09PSAnaGFzaCcpIHsKKyAgICAgICAgaWYg
KHByZWZlcmVuY2UgPT09ICdoYXNoJyAmJiB0aGlzLmhhc2gpIHsKICAgICAgICAgICAgIC8vIFBl
ciB0aGUgYmlydGhkYXkgcGFyYWRveCwgMTAlIGNoYW5jZSBvZiBjb2xsaXNpb24gd2l0aCA3Ljcg
bWlsbGlvbiBjb21taXRzIHdpdGggMTIgY2hhcmFjdGVyIGNvbW1pdHMKICAgICAgICAgICAgIHJl
dHVybiB0aGlzLmhhc2guc3Vic3RyaW5nKDAsMTIpCiAgICAgICAgIH0KLSAgICAgICAgaWYgKHBy
ZWZlcmVuY2UgPT09ICdyZXZpc2lvbicpCisgICAgICAgIGlmIChwcmVmZXJlbmNlID09PSAncmV2
aXNpb24nICYmIHRoaXMucmV2aXNpb24pCiAgICAgICAgICAgICByZXR1cm4gYHIke3RoaXMucmV2
aXNpb259YDsKIAogICAgICAgICByZXR1cm4gdGhpcy5yZXZpc2lvbiA/IGByJHt0aGlzLnJldmlz
aW9ufWAgOiB0aGlzLmhhc2guc3Vic3RyaW5nKDAsMTIpOwpAQCAtMzQ1LDcgKzM0OCw3IEBAIGNs
YXNzIF9Db21taXRCYW5rIHsKICAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXNUb1F1ZXJ5KHsK
ICAgICAgICAgICAgIGJyYW5jaDogW2NvbW1pdC5icmFuY2hdLAogICAgICAgICAgICAgcmVwb3Np
dG9yeV9pZDogW2NvbW1pdC5yZXBvc2l0b3J5X2lkXSwKLSAgICAgICAgICAgIGlkOiBbY29tbWl0
LmlkZW50aWZpZXJdLAorICAgICAgICAgICAgcmVmOiBbY29tbWl0Lmhhc2ggPyBjb21taXQuaGFz
aCA6IGNvbW1pdC5yZXZpc2lvbl0sCiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gZmV0Y2go
J2FwaS9jb21taXRzL3NpYmxpbmdzPycgKyBxdWVyeSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAg
ICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9kcmF3ZXIuanMgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRp
Yy9qcy9kcmF3ZXIuanMKaW5kZXggOTg4NWQ5NzgyOGMxZTY5ZDQxYmU1M2U4ZjU0NGU0N2QxOWEy
MTdhNS4uOGFmODkyMDVlZWFjMGQxNDAwZDVlMjU5ZDRiMzYwN2EyZWM1Y2NkOCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9z
dGF0aWMvanMvZHJhd2VyLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2RyYXdlci5qcwpAQCAtMTM3LDcgKzEzNyw3
IEBAIGZ1bmN0aW9uIHJlZnJlc2hDb25maWd1cmF0aW9ucygpIHsKIH0KIAogZnVuY3Rpb24gQnJh
bmNoU2VsZWN0b3IoY2FsbGJhY2spIHsKLSAgICBjb25zdCBkZWZhdWx0QnJhbmNoZXMgPSBuZXcg
U2V0KFsndHJ1bmsnLCAnbWFzdGVyJ10pOworICAgIGNvbnN0IGRlZmF1bHRCcmFuY2hlcyA9IG5l
dyBTZXQoWyd0cnVuaycsICdtYXN0ZXInLCAnbWFpbiddKTsKICAgICBjb25zdCBkZWZhdWx0QnJh
bmNoS2V5ID0gWy4uLmRlZmF1bHRCcmFuY2hlc10uc29ydCgpLmpvaW4oJy8nKTsKICAgICBjb25z
dCBicmFuY2hNb2RpZmllciA9IG5ldyBRdWVyeU1vZGlmaWVyKCdicmFuY2gnKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmll
dy9zdGF0aWMvanMvdGltZWxpbmUuanMgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcwppbmRleCBlYjVmMjk3
OGViOTRiMzE4ODZkZTk2NWU3Njg3YjYxODg5ZTEzMWI1Li45OTMzNDBhNWE3NjJmMmIzNjQ3NmMz
MTdiY2I2ZDUxN2Q3OTcxNWU2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcworKysgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRp
Yy9qcy90aW1lbGluZS5qcwpAQCAtMTkxLDcgKzE5MSw3IEBAIGZ1bmN0aW9uIHhBeGlzRnJvbVNj
YWxlKHNjYWxlLCByZXBvc2l0b3J5LCB1cGRhdGVzQXJyYXksIGlzVG9wPWZhbHNlLCB2aWV3cG9y
dD1uCiAgICAgICAgICAgICBUb29sVGlwLnNldCgKICAgICAgICAgICAgICAgICBgPGRpdiBjbGFz
cz0iY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgIFRpbWU6ICR7bmV3IERhdGUobm9kZS5s
YWJlbC50aW1lc3RhbXAgKiAxMDAwKS50b0xvY2FsZVN0cmluZygpfTxicj4KLSAgICAgICAgICAg
ICAgICAgICAgQXV0aG9yOiAke25vZGUubGFiZWwuYXV0aG9yfQorICAgICAgICAgICAgICAgICAg
ICAke25vZGUubGFiZWwuYXV0aG9yID8gYDxicj5BdXRob3I6ICR7ZXNjYXBlSFRNTChub2RlLmxh
YmVsLmF1dGhvci5uYW1lKX0gJiM2MCR7ZXNjYXBlSFRNTChub2RlLmxhYmVsLmF1dGhvci5lbWFp
bCl9JiM2MmAgOiAnJ30KICAgICAgICAgICAgICAgICAgICAgJHtub2RlLmxhYmVsLm1lc3NhZ2Ug
PyBgPGJyPjxkaXY+JHtlc2NhcGVIVE1MKG5vZGUubGFiZWwubWVzc2FnZS5zcGxpdCgnXG4nKVsw
XSl9PC9kaXY+YCA6ICcnfQogICAgICAgICAgICAgICAgIDwvZGl2PmAsCiAgICAgICAgICAgICAg
ICAgbm9kZS50aXBQb2ludHMubWFwKChwb2ludCkgPT4gewpAQCAtMjA2LDcgKzIwNiw3IEBAIGZ1
bmN0aW9uIHhBeGlzRnJvbVNjYWxlKHNjYWxlLCByZXBvc2l0b3J5LCB1cGRhdGVzQXJyYXksIGlz
VG9wPWZhbHNlLCB2aWV3cG9ydD1uCiAgICAgICAgICAgICBpZiAoIVRvb2xUaXAuaXNJbih7eDog
ZXZlbnQueCwgeTogZXZlbnQueSAtIHNjcm9sbERlbHRhfSkpCiAgICAgICAgICAgICAgICAgVG9v
bFRpcC51bnNldCgpOwogICAgICAgICB9LAotICAgICAgICBnZXRMYWJlbEZ1bmM6IChjb21taXQp
ID0+IHtyZXR1cm4gY29tbWl0ID8gY29tbWl0LmxhYmVsKCkgOiAnPyc7fSwKKyAgICAgICAgZ2V0
TGFiZWxGdW5jOiAoY29tbWl0KSA9PiB7cmV0dXJuIGNvbW1pdCAmJiBjb21taXQubGFiZWwgPyBj
b21taXQubGFiZWwoKSA6ICc/Jzt9LAogICAgICAgICBnZXRTY2FsZUZ1bmM6IChjb21taXQpID0+
IGNvbW1pdC51dWlkLAogICAgICAgICBleHBvcnRlcjogKHVwZGF0ZUZ1bmN0aW9uKSA9PiB7CiAg
ICAgICAgICAgICB1cGRhdGVzQXJyYXkucHVzaCgoc2NhbGUpID0+IHt1cGRhdGVGdW5jdGlvbihz
Y2FsZUZvclJlcG9zaXRvcnkoc2NhbGUpKTt9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2NvbW1pdC5o
dG1sIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmll
dy90ZW1wbGF0ZXMvY29tbWl0Lmh0bWwKaW5kZXggZDg5YmVhMDMwNGZlNjNjNDM4NmVjMjdiOTg4
MzMzM2U0YjcxMjQ5Ny4uZDRjNzUzOThkZTZiZmI3ZTRiNGU1MmEzNjMwOTQ4OWYzZGIxNDc5NiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvdmlldy90ZW1wbGF0ZXMvY29tbWl0Lmh0bWwKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvY29tbWl0Lmh0bWwKQEAg
LTMyLDEzICszMiwxMyBAQAogICAgIDxkaXYgY2xhc3M9ImNvbC0xMiI+CiAgICAgICAgIDxkaXYg
Y2xhc3M9InJvdyI+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtNCIgc3R5bGU9InRleHQt
YWxpZ246bGVmdCI+Ci0gICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2Nv
bW1pdC9wcmV2aW91cz9yZXBvc2l0b3J5X2lkPXt7IGNvbW1pdC5yZXBvc2l0b3J5X2lkIH19JmJy
YW5jaD17eyBjb21taXQuYnJhbmNoIH19JmlkPXt7IGNvbW1pdC5pZCB9fSI+4peAIFByZXZpb3Vz
PC9hPgorICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9jb21taXQvcHJl
dmlvdXM/cmVwb3NpdG9yeV9pZD17eyBjb21taXQucmVwb3NpdG9yeV9pZCB9fSZyZWY9e3sgY29t
bWl0Lmhhc2ggb3IgY29tbWl0LnJldmlzaW9uIH19Ij7il4AgUHJldmlvdXM8L2E+CiAgICAgICAg
ICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC00IiBzdHlsZT0idGV4dC1h
bGlnbjpjZW50ZXIiPgotICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9j
b21taXQvaW5mbz9yZXBvc2l0b3J5X2lkPXt7IGNvbW1pdC5yZXBvc2l0b3J5X2lkIH19JmJyYW5j
aD17eyBjb21taXQuYnJhbmNoIH19JmlkPXt7IGNvbW1pdC5pZCB9fSI+e3sgY29tbWl0LmlkIH19
PC9hPgorICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9jb21taXQvaW5m
bz9yZXBvc2l0b3J5X2lkPXt7IGNvbW1pdC5yZXBvc2l0b3J5X2lkIH19JnJlZj17eyBjb21taXQu
aGFzaCBvciBjb21taXQucmV2aXNpb24gfX0iPnt7IGNvbW1pdC5pZCB9fTwvYT4KICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTQiIHN0eWxlPSJ0ZXh0LWFs
aWduOnJpZ2h0Ij4KLSAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnV0dG9uIiBocmVmPSIvY29t
bWl0L25leHQ/cmVwb3NpdG9yeV9pZD17eyBjb21taXQucmVwb3NpdG9yeV9pZCB9fSZicmFuY2g9
e3sgY29tbWl0LmJyYW5jaCB9fSZpZD17eyBjb21taXQuaWQgfX0iPk5leHQg4pa2PC9hPgorICAg
ICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9jb21taXQvbmV4dD9yZXBvc2l0
b3J5X2lkPXt7IGNvbW1pdC5yZXBvc2l0b3J5X2lkIH19JnJlZj17eyBjb21taXQuaGFzaCBvciBj
b21taXQucmV2aXNpb24gfX0iPk5leHQg4pa2PC9hPgogICAgICAgICAgICAgPC9kaXY+CiAgICAg
ICAgIDwvZGl2PgogICAgICAgICA8ZGl2IGlkPSJjb21taXRUYWJsZSI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3
L3RlbXBsYXRlcy9kb2N1bWVudGF0aW9uLmh0bWwgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9kb2N1bWVudGF0aW9uLmh0bWwK
aW5kZXggNTY4YmNiMTVjYWZmYzkwZTAyZTRmNDljODFkNzk5MjkxOWI5YzdjZC4uYzg5N2ZhOTY0
OGNlYjM1ZGJiN2JkYzQyNjU3NTQ1ZjNhMGRlMjY3MiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvZG9jdW1l
bnRhdGlvbi5odG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbApAQCAtNzMsNyArNzMs
OSBAQCBjb25zdCBkb2N1bWVudGF0aW9uID0gewogICAgICAgICAgICAgY29kZUJsb2NrKCd7XG4n
ICsgCiAgICAgICAgICAgICAgICAgJyAgICAicmVwb3NpdG9yeV9pZCI6IDxzdHJpbmcgcmVwcmVz
ZW50aW5nIHJlcG9zaXRvcnkgaWRlbnRpZmllcj4sXG4nICsKICAgICAgICAgICAgICAgICAnICAg
ICJicmFuY2giOiA8YnJhbmNoIGNvbW1pdCBpcyByZWdpc3RlcmVkIG9uPixcbicgKwotICAgICAg
ICAgICAgICAgICcgICAgImlkIjogPGdpdCBoYXNoIG9yIHN2biByZXZpc2lvbj4sXG4nICsKKyAg
ICAgICAgICAgICAgICAnICAgICJpZGVudGlmaWVyIjogPGNvbW1pdCBpZGVudGlmaWVyPixcbicg
KworICAgICAgICAgICAgICAgICcgICAgImhhc2giOiA8Z2l0IGhhc2g+LFxuJyArCisgICAgICAg
ICAgICAgICAgJyAgICAicmV2aXNpb24iOiA8c3ZuIHJldmlzaW9uPixcbicgKwogICAgICAgICAg
ICAgICAgICcgICAgInRpbWVzdGFtcCI6IDxpbnRlZ2VyIFVUQyB0aW1lc3RhbXAgd2hlbiBjb21t
aXQgd2FzIGNvbW1pdHRlZD4sXG4nICsKICAgICAgICAgICAgICAgICAnICAgICJvcmRlciI6IDxv
cmRlciBvZiBjb21taXQgd2l0aGluIHBhdGNoIHNlcmllcz4sXG4nICsKICAgICAgICAgICAgICAg
ICAnICAgICJjb21taXR0ZXIiOiA8cGVyc29uIHdobyBjb21taXR0ZWQgdGhlIGNoYW5nZT4sXG4n
ICsKQEAgLTEyMyw3ICsxMjUsNyBAQCBjb25zdCBkb2N1bWVudGF0aW9uID0gewogICAgICAgICAg
ICAgICAgICAgICBgUmV0dXJucyBhIGRpY3Rpb25hcnkgb2YgbGlzdHMgb2YgYnJhbmNoZXMgYXNz
b2NpYXRlZCB3aXRoIGVhY2ggcmVwb3NpdG9yeS4gVGhlIG91dHB1dCBpcyBvZiB0aGUgZm9ybTpg
LAogICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2soJ3tcbicgKwogICAgICAgICAgICAgICAg
ICAgICAnICAgIDxyZXBvc2l0b3J5LWlkIChhKT46IFsibWFzdGVyIiwgImJyYW5jaC1hIiwgImJy
YW5jaC1iIl0sXG4nICsKLSAgICAgICAgICAgICAgICAgICAgJyAgICA8cmVwb3NpdG9yeS1pZCAo
Yik+OiBbInRydW5rIiwgImJyYW5jaC1hIiwgImJyYW5jaC1jIl1cbicgKworICAgICAgICAgICAg
ICAgICAgICAnICAgIDxyZXBvc2l0b3J5LWlkIChiKT46IFsibWFpbiIsICJicmFuY2gtYSIsICJi
cmFuY2gtYyJdXG4nICsKICAgICAgICAgICAgICAgICAgICAgJ30nKSwKICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgKSwKQEAgLTE1OCw3ICsxNjAsNyBAQCBjb25zdCBkb2N1bWVudGF0
aW9uID0gewogICAgICAgICAgICAgICAgIFsnQnJhbmNoJywgJ1JlcG9zaXRvcnknXSwKICAgICAg
ICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgIGBSZWdpc3RlciBhIHNpbmdsZSBjb21t
aXQgaW4gdGhlIHJlc3VsdHMgZGF0YWJhc2UuIFRoaXMgY29tbWl0IG11c3QgYmUgYXNzb2NpYXRl
ZCB3aXRoIGEgcmVwb3NpdG9yeSBhbHJlYWR5IGtub3duIGJ5IHRoZSByZXN1bHRzIGRhdGFiYXNl
LiBXaGlsZSBhICR7bG9jYWxMaW5rKFsnQVBJJywgJ0NvbW1pdHMnXSwgJ2NvbW1pdCBvYmplY3Rz
Jyl9IGNhbiBiZSB1cGxvYWRlZCB0byB0aGlzIGVuZHBvaW50LCBpdCBpcyByZWNvbW1lbmRlZCB0
aGF0IHRoZSByZWdpc3RyYXRpb24gb2YgY29tbWl0cyBvdXRzaWRlIG9mIGF1dG9tYXRpb24gYWxs
b3cgdGhlIHJlc3VsdHMgZGF0YWJhc2UgdG8gbGV2ZXJhZ2UgeW91ciBzb3VyY2UgY29udHJvbCdz
IEFQSS4gU3VjaCBhIHJlcXVlc3QgbG9va3MgbGlrZSB0aGlzYCwKLSAgICAgICAgICAgICAgICAg
ICAgY29kZUJsb2NrKCcvYXBpL2NvbW1pdHMvcmVnaXN0ZXI/cmVwb3NpdG9yeV9pZD13ZWJraXQm
YnJhbmNoPXRydW5rJmlkPTI0NzM1NScpLAorICAgICAgICAgICAgICAgICAgICBjb2RlQmxvY2so
Jy9hcGkvY29tbWl0cy9yZWdpc3Rlcj9yZXBvc2l0b3J5X2lkPXdlYmtpdCZicmFuY2g9bWFpbiZp
ZD0yNDczNTUnKSwKICAgICAgICAgICAgICAgICAgICAgYE1vcmUgZ2VuZXJhbGx5LCBhbnkgZGVm
aW5pdGlvbiBvZiBhIGNvbW1pdCB3aGljaCBkZWZpbmVzIHRoZSByZXBvc2l0b3J5X2lkLCBpZCBh
bmQgYnJhbmNoIHByb3ZpZGVzIGVub3VnaCBpbmZvcm1hdGlvbiBmb3IgdGhlIHJlc3VsdHMgZGF0
YWJhc2UgdG8gcXVlcnkgeW91ciBzb3VyY2UgY29udHJvbCdzIEFQSSBhbmQgcmV0cmVpdmUgY29t
bWl0IGluZm9ybWF0aW9uLmAsCiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICksCkBA
IC00NzksNyArNDgxLDcgQEAgY29uc3QgZG9jdW1lbnRhdGlvbiA9IHsKICAgICAgICAgICAgIGBC
eSBkZWZhdWx0LCB0aGlzIGZsYWcgaXMgJ1RydWUnIGFuZCBlbmRwb2ludHMgd2lsbCBpZ25vcmUg
dGVzdHMgd2hpY2ggbWF0Y2hlZCB0aGVpciBleHBlY3RlZCBiZWhhdmlvci4gSWYgc2V0IHRvICdG
YWxzZScsIGVuZHBvaW50cyB3aWxsIHJldHVybiByZXN1bHRzIGZvciBhbGwgZmFpbGluZyB0ZXN0
cywgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZWlyIGV4cGVjdGF0aW9uIGlzLmAsCiAgICAgICAgIF0s
CiAgICAgICAgICdCcmFuY2gnOiBbCi0gICAgICAgICAgICBgTW9zdCBkYXRhIGluIHRoZSByZXN1
bHRzIGRhdGFiYXNlIGlzIHBhcnRpdGlvbmVkIGJ5IGJyYW5jaCwgYW5kIGl0IGlzIGdlbmVyYWxs
eSBleHBlY3RlZCB0aGF0IHJlc3VsdHMgb24gc2VwZXJhdGUgYnJhbmNoZXMgYXJlIGluZGVwZW5k
ZW50IG9mIG9uZSBhbm90aGVyLiBCeSBkZWZhdWx0LCBlbmRwb2ludHMgdGhhdCBzdXBwb3J0IHRo
ZSBicmFuY2ggcXVlcnkgd2lsbCBhc3N1bWUgdGhhdCB0aGUgYnJhbmNoIGlzIG1hc3RlciBmb3Ig
Z2l0IHJlcG9zaXRvcmllcyBhbmQgdHJ1bmsgZm9yIFNWTiByZXBvc2l0b3JpZXMgaWYgbm8gdmFs
dWUgaXMgc3BlY2lmaWVkLiBJZiBtdWx0aXBsZSB2YWx1ZXMgZm9yIGJyYW5jaCBhcmUgc3BlY2lm
aWVkLCBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHJlc3BlY3RlZC4gQSByZXF1ZXN0IHdoaWNoIGlu
dGVuZGVkIHRvIHNlYXJjaCBmb3IgcmVzdWx0cyBvbiBvbmx5IHJlc3VsdHMgb24gdGhlIHNhZmFy
aS02MDcgYnJhbmNoIHdvdWxkIHVzZSBhIHF1ZXJ5IGxpa2UgdGhpczpgLAorICAgICAgICAgICAg
YE1vc3QgZGF0YSBpbiB0aGUgcmVzdWx0cyBkYXRhYmFzZSBpcyBwYXJ0aXRpb25lZCBieSBicmFu
Y2gsIGFuZCBpdCBpcyBnZW5lcmFsbHkgZXhwZWN0ZWQgdGhhdCByZXN1bHRzIG9uIHNlcGVyYXRl
IGJyYW5jaGVzIGFyZSBpbmRlcGVuZGVudCBvZiBvbmUgYW5vdGhlci4gQnkgZGVmYXVsdCwgZW5k
cG9pbnRzIHRoYXQgc3VwcG9ydCB0aGUgYnJhbmNoIHF1ZXJ5IHdpbGwgYXNzdW1lIHRoYXQgdGhl
IGJyYW5jaCBpcyBtYXN0ZXIgb3IgbWFpbiBmb3IgZ2l0IHJlcG9zaXRvcmllcyBhbmQgdHJ1bmsg
Zm9yIFNWTiByZXBvc2l0b3JpZXMgaWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLiBJZiBtdWx0aXBs
ZSB2YWx1ZXMgZm9yIGJyYW5jaCBhcmUgc3BlY2lmaWVkLCBvbmx5IHRoZSBmaXJzdCB3aWxsIGJl
IHJlc3BlY3RlZC4gQSByZXF1ZXN0IHdoaWNoIGludGVuZGVkIHRvIHNlYXJjaCBmb3IgcmVzdWx0
cyBvbiBvbmx5IHJlc3VsdHMgb24gdGhlIHNhZmFyaS02MDcgYnJhbmNoIHdvdWxkIHVzZSBhIHF1
ZXJ5IGxpa2UgdGhpczpgLAogICAgICAgICAgICAgY29kZUJsb2NrKCdicmFuY2g9c2FmYXJpLTYw
NycpLAogICAgICAgICBdLAogICAgICAgICAnQ29uZmlndXJhdGlvbic6IFsKQEAgLTU0NCwxMyAr
NTQ2LDEzIEBAIGNvbnN0IGRvY3VtZW50YXRpb24gPSB7CiAgICAgICAgICAgICBgV2UgYWxzbyBr
bm93IHRoYXQgdGltZXN0YW1wcyBjYW4gYmUgZWFzaWx5IGNvbnZlcnRlZCB0byBVVUlEcy4gRW5k
cG9pbnRzIHdoaWNoIHN1cHBvcnQgcXVlcnlpbmcgYnkgVVVJRCBhbHNvIHN1cHBvcnQgcXVlcnlp
bmcgYnkgVVRDIHRpbWVzdGFtcC4gT3VyIHByZXZpb3VzIHF1ZXJ5IGNvdWxkIGJlIGluc3RlYWQg
d3JpdHRlbiBsaWtlIHRoaXM6YCwKICAgICAgICAgICAgIGNvZGVCbG9jaygnYWZ0ZXJfdGltZXN0
YW1wPTE1NjI5NTE0OTEmYmVmb3JlX3RpbWVzdGFtcD0xNTYyOTUyNDczJyksCiAgICAgICAgICAg
ICBgQ29tbWl0cyBjYW4gYWxzbyBiZSB0cmFuc2xhdGVkIHRvIHRpbWVzdGFtcCwgYWx0aG91Z2gg
d2l0aCBhIGJpdCBtb3JlIHdvcmsgcmVxdWlyZWQgZnJvbSB0aGUgYmFjay1lbmQuIEVuZHBvaW50
cyB3aGljaCBzdXBwb3J0IHF1ZXJ5aW5nIGJ5IFVVSUQgYWxzbyBzdXBwb3J0IHF1ZXJ5aW5nIGJ5
IGNvbW1pdCBpbmZvcm1hdGlvbi4gSW4gdGhlIGZpcnN0IGV4YW1wbGUgaW4gdGhpcyBzZWN0aW9u
LCB3ZSBxdWVyaWVkIGJ5IFVVSUQgMTU2Mjk1MjQ3MzAwLiBUaGlzIGNvcnJlc3BvbmRzIHRvICR7
ZXh0ZXJuYWxMaW5rKCdodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjQ3MzkxL3dl
YmtpdCcsICdyMjQ3MzkxJyl9LiBXZSBjb3VsZCBpbnN0ZWFkIHF1ZXJ5IGJ5IHRoZSBjb21taXQg
aW5mb3JtYXRpb246YCwKLSAgICAgICAgICAgIGNvZGVCbG9jaygnaWQ9MjQ3MzkxJnJlcG9zaXRv
cnlfaWQ9d2Via2l0JmJyYW5jaD10cnVuaycpLAorICAgICAgICAgICAgY29kZUJsb2NrKCdpZD0y
NDczOTEmcmVwb3NpdG9yeV9pZD13ZWJraXQmYnJhbmNoPW1haW4nKSwKICAgICAgICAgICAgIGBC
dXQsIGFzIG91dGxpbmVkIGluIHRoZSBvdmVydmlld3MgYWJvdXQgJHtsb2NhbExpbmsoWydRdWVy
eSBQYXJhbWV0ZXJzJywgJ0JyYW5jaCddLCAnYnJhbmNoZXMnKX0gYW5kICR7bG9jYWxMaW5rKFsn
UXVlcnkgUGFyYW1ldGVycycsICdSZXBvc2l0b3J5J10sICdyZXBvc2l0b3JpZXMnKX0sIGVuZHBv
aW50cyB3aGljaCBzdXBwb3J0IHRob3NlIHF1ZXJpZXMgaGF2ZSBkZWZhdWx0cyB3aGljaCBjb3Zl
ciBtYW55IGNhc2VzLCBzbyB0aGUgcHJldmlvdXMgcXVlcnkgY291bGQgYmUgc2ltcGxpZmllZCB0
bzpgLAogICAgICAgICAgICAgY29kZUJsb2NrKCdpZD0yNDczOTEnKSwKICAgICAgICAgICAgIGBC
ZWNhdXNlIGVuZHBvaW50cyBzdXBwb3J0aW5nIHRpbWUgYXJlIGNvbnZlcnQgZXZlcnl0aGluZyB0
byBVVUlEIG9uIHRoZSBiYWNrZW5kLCB0aGUgcXVlcmllcyB0byB0aGVzZSBlbmRwb2ludHMgYXJl
IHF1aXRlIGZsZXhpYmxlLiBUaGUgZm9sbG93aW5nIGFyZSBhbGwgZXhhbXBsZXMgb2YgdmFsaWQg
dGltZSBxdWVyaWVzOmAsCiAgICAgICAgICAgICBjb2RlQmxvY2soJ2FmdGVyX2lkPTI0NzM5MSZy
ZXBvc2l0b3J5X2lkPXdlYmtpdCcpLAogICAgICAgICAgICAgY29kZUJsb2NrKCdhZnRlcl9pZD0y
NDczOTAmYmVmb3JlX3RpbWVzdGFtcD0xNTYyOTUyNDczJyksCi0gICAgICAgICAgICBjb2RlQmxv
Y2soJ2JlZm9yZV9pZD0yNDczOTEmYWZ0ZXJfdXVpZD0xNTYyOTUxNDkxMDAmYmVmb3JlX2JyYW5j
aD10cnVuaycpLAorICAgICAgICAgICAgY29kZUJsb2NrKCdiZWZvcmVfaWQ9MjQ3MzkxJmFmdGVy
X3V1aWQ9MTU2Mjk1MTQ5MTAwJmJlZm9yZV9icmFuY2g9bWFpbicpLAogICAgICAgICBdLAogICAg
IH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2ludmVzdGlnYXRlLmh0bWwgYi9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9pbnZlc3Rp
Z2F0ZS5odG1sCmluZGV4IDc2OTVlYzgzZmI0YWRhZTg5N2U1MTg5ZTdkMjg3ZjdhY2ZhODFmNWYu
LjQwYzFkMTU5YzEyYzgwNmM0OTA4Y2NhYWZlNzEwN2Y4NGE4Yjc3ZjYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxh
dGVzL2ludmVzdGlnYXRlLmh0bWwKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvaW52ZXN0aWdhdGUuaHRtbApAQCAtMTQ4
LDYgKzE0OCw3IEBAIGNsYXNzIFN1aXRlRmFpbHVyZXNWaWV3IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBicmFuY2hlcyA9IG5ldyBTZXQoY29tbWl0cy5t
YXAoY29tbWl0ID0+IGNvbW1pdC5icmFuY2gpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmFuY2hlcy5kZWxldGUoJ3RydW5rJyk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoZXMuZGVsZXRlKCdtYXN0ZXInKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmFuY2hlcy5kZWxldGUoJ21haW4n
KTsKIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9z
aXRvcmllcyA9IG5ldyBTZXQoY29tbWl0cy5tYXAoY29tbWl0ID0+IGNvbW1pdC5yZXBvc2l0b3J5
X2lkKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3NldHVwLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkK
aW5kZXggNzViNWU3ZDczYmE1MzMxNzFmZjgxY2E2ODMwYmE4NWVhNjVhMTk5Yi4uZGM2Mjg5YmM1
NDA1YmM1M2ExZjFiZTQ2NGFmODI0ZGY3MGY1NzUyYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkKQEAgLTMwLDcgKzMwLDcgQEAgZGVmIHJlYWRtZSgp
OgogCiBzZXR1cCgKICAgICBuYW1lPSdyZXN1bHRzZGJweScsCi0gICAgdmVyc2lvbj0nMi4wLjMn
LAorICAgIHZlcnNpb249JzIuMC40JywKICAgICBkZXNjcmlwdGlvbj0nTGlicmFyeSBmb3Igdmlz
dWFsaXppbmcsIHByb2Nlc3NpbmcgYW5kIHN0b3JpbmcgdGVzdCByZXN1bHRzLicsCiAgICAgbG9u
Z19kZXNjcmlwdGlvbj1yZWFkbWUoKSwKICAgICBjbGFzc2lmaWVycz1bCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9jb21taXQucHkg
Yi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9jb21taXQu
cHkKaW5kZXggNGI2MWNlMWFkMTc0MTMwMjE5ODlkNmJiYTQ2NzgzMTA2NTEwY2I0MC4uMDQ0NzFj
YmFiMGRkZWNmNmVmM2VkYjVmYTAwOTk0ZGJiYzQ5ZTAxNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvY29tbWl0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2NvbW1pdC5weQpA
QCAtMzksNiArMzksMTAgQEAgY2xhc3MgQ29tbWl0KG9iamVjdCk6CiAgICAgY2xhc3MgRW5jb2Rl
cihqc29uLkpTT05FbmNvZGVyKToKIAogICAgICAgICBkZWYgZGVmYXVsdChzZWxmLCBvYmopOgor
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGRpY3QpOgorICAgICAgICAgICAgICAgIHJl
dHVybiB7a2V5OiBzZWxmLmRlZmF1bHQodmFsdWUpIGZvciBrZXksIHZhbHVlIGluIG9iai5pdGVt
cygpfQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGxpc3QpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBbc2VsZi5kZWZhdWx0KHZhbHVlKSBmb3IgdmFsdWUgaW4gb2JqXQogICAgICAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBDb21taXQpOgogICAgICAgICAgICAgICAgIHJl
dHVybiBzdXBlcihDb21taXQuRW5jb2Rlciwgc2VsZikuZGVmYXVsdChvYmopCiAKQEAgLTI3MCw3
ICsyNzQsNyBAQCBjbGFzcyBDb21taXQob2JqZWN0KToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRl
ZiB1dWlkKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi50aW1lc3RhbXA6CisgICAgICAgIGlm
IHNlbGYudGltZXN0YW1wIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAg
ICByZXR1cm4gc2VsZi50aW1lc3RhbXAgKiBzZWxmLlVVSURfTVVMVElQTElFUiArIHNlbGYub3Jk
ZXIKIApAQCAtMjg1LDcgKzI4OSw3IEBAIGNsYXNzIENvbW1pdChvYmplY3QpOgogICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuaGFzaFs6c2VsZi5IQVNIX0xBQkVMX1NJWkVdCiAgICAgICAgIGlmIHNl
bGYuaWRlbnRpZmllciBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5p
ZGVudGlmaWVyKQotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbmNvbXBsZXRlIGNvbW1pdCBm
b3JtYXQnKQorICAgICAgICByZXR1cm4gJz8nCiAKICAgICBkZWYgX19oYXNoX18oc2VsZik6CiAg
ICAgICAgIGlmIHNlbGYuaWRlbnRpZmllciBhbmQgc2VsZi5icmFuY2g6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1v
dGUvYml0YnVja2V0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Vi
a2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weQppbmRleCBiZjVlMDQ4ZTBkYzE3OGMz
NTA4ODBkMzljNTE1ZGI2OWQ2YzU4ODQ2Li5hMWQxNzA3MWQwN2JmNmQwNjhlYTg4NmZmY2UxNDlk
MTRhMmYwNTQ3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVja2V0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNr
ZXQucHkKQEAgLTE4Niw5ICsxODYsOSBAQCBjbGFzcyBCaXRCdWNrZXQobW9ja3MuUmVxdWVzdHMp
OgogICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZT1jb21taXQuYXV0aG9yLm5hbWUsCiAg
ICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICBjb21taXR0ZXJUaW1lc3RhbXA9Y29t
bWl0LnRpbWVzdGFtcCAqIDEwMDAsCi0gICAgICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVz
c2FnZSArICdcbmdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmV4YW1wbGUub3JnL3JlcG9zaXRvcnkv
d2Via2l0L3t9QHt9IDI2OGY0NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5MWI0ZGJmY1xuJy5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSArICgnXG5naXQtc3Zu
LWlkOiBodHRwczovL3N2bi5leGFtcGxlLm9yZy9yZXBvc2l0b3J5L3dlYmtpdC97fUB7fSAyNjhm
NDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmNcbicuZm9ybWF0KAogICAgICAgICAgICAg
ICAgICAgICAndHJ1bmsnIGlmIGNvbW1pdC5icmFuY2ggPT0gc2VsZi5kZWZhdWx0X2JyYW5jaCBl
bHNlIGNvbW1pdC5icmFuY2gsIGNvbW1pdC5yZXZpc2lvbiwKLSAgICAgICAgICAgICAgICApLAor
ICAgICAgICAgICAgICAgICkgaWYgY29tbWl0LnJldmlzaW9uIGVsc2UgJycpLAogICAgICAgICAg
ICAgKSkKIAogICAgICAgICBpZiBzdHJpcHBlZF91cmwuc3RhcnRzd2l0aCgne30vcmVzdC9icmFu
Y2gtdXRpbHMvbGF0ZXN0L3t9L2JyYW5jaGVzL2luZm8vJy5mb3JtYXQoc2VsZi5ob3N0c1swXSwg
c2VsZi5wcm9qZWN0KSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weSBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHVi
LnB5CmluZGV4IGNhNzUzZmM4ZmRhNzhlZGZlZTAyYzAxNjY0ZGM4ZjA5ZDI2M2Q3MzEuLjAwNzhj
MTczODJkODcwMjIxNjJjZDRjZmE4ZmViNGYxYTkwNTQwODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRf
aHViLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CkBAIC0yMyw3ICsyMyw2IEBACiBpbXBvcnQgb3MK
IGltcG9ydCBqc29uCiAKLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBmcm9tIHdlYmtp
dGNvcmVweSBpbXBvcnQgbW9ja3MKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgcmVt
b3RlIGFzIHNjbXJlbW90ZQogCkBAIC0xMzQsNiArMTMzLDggQEAgY2xhc3MgR2l0SHViKG1vY2tz
LlJlcXVlc3RzKToKICAgICAgICAgXSwgdXJsPXVybCkKIAogICAgIGRlZiBfY29tbWl0X3Jlc3Bv
bnNlKHNlbGYsIHVybCwgcmVmKToKKyAgICAgICAgZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUsIHRpbWVkZWx0YQorCiAgICAgICAgIGNvbW1pdCA9IHNlbGYuY29tbWl0KHJlZikKICAgICAg
ICAgaWYgbm90IGNvbW1pdDoKICAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZSgKQEAg
LTE0NywxMSArMTQ4LDExIEBAIGNsYXNzIEdpdEh1Yihtb2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAg
ICAgICAgICAgJ2F1dGhvcic6IHsKICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiBjb21taXQu
YXV0aG9yLm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICdlbWFpbCc6IGNvbW1pdC5hdXRob3Iu
ZW1haWwsCi0gICAgICAgICAgICAgICAgICAgICdkYXRlJzogZGF0ZXRpbWUuZnJvbXRpbWVzdGFt
cChjb21taXQudGltZXN0YW1wKS5zdHJmdGltZSgnJVktJW0tJWRUJUg6JU06JVNaJyksCisgICAg
ICAgICAgICAgICAgICAgICdkYXRlJzogZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFtcChjb21taXQu
dGltZXN0YW1wIC0gdGltZWRlbHRhKGhvdXJzPTcpLnNlY29uZHMpLnN0cmZ0aW1lKCclWS0lbS0l
ZFQlSDolTTolU1onKSwKICAgICAgICAgICAgICAgICB9LCAnY29tbWl0dGVyJzogewogICAgICAg
ICAgICAgICAgICAgICAnbmFtZSc6IGNvbW1pdC5hdXRob3IubmFtZSwKICAgICAgICAgICAgICAg
ICAgICAgJ2VtYWlsJzogY29tbWl0LmF1dGhvci5lbWFpbCwKLSAgICAgICAgICAgICAgICAgICAg
J2RhdGUnOiBkYXRldGltZS5mcm9tdGltZXN0YW1wKGNvbW1pdC50aW1lc3RhbXApLnN0cmZ0aW1l
KCclWS0lbS0lZFQlSDolTTolU1onKSwKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGUnOiBkYXRl
dGltZS51dGNmcm9tdGltZXN0YW1wKGNvbW1pdC50aW1lc3RhbXAgLSB0aW1lZGVsdGEoaG91cnM9
Nykuc2Vjb25kcykuc3RyZnRpbWUoJyVZLSVtLSVkVCVIOiVNOiVTWicpLAogICAgICAgICAgICAg
ICAgIH0sICdtZXNzYWdlJzogY29tbWl0Lm1lc3NhZ2UgKyAnXG5naXQtc3ZuLWlkOiBodHRwczov
L3N2bi5leGFtcGxlLm9yZy9yZXBvc2l0b3J5L3dlYmtpdC97fUB7fSAyNjhmNDVjYy1jZDA5LTA0
MTAtYWIzYy1kNTI2OTFiNGRiZmNcbicuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAndHJ1
bmsnIGlmIGNvbW1pdC5icmFuY2ggPT0gc2VsZi5kZWZhdWx0X2JyYW5jaCBlbHNlIGNvbW1pdC5i
cmFuY2gsIGNvbW1pdC5yZXZpc2lvbiwKICAgICAgICAgICAgICAgICApIGlmIGNvbW1pdC5yZXZp
c2lvbiBlbHNlICcnLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0
c2NtcHkvd2Via2l0c2NtcHkvc2NtX2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5weQppbmRleCAzNmIxYzAwOTg5NTg3YjE5
MTlhODIzZWZjYzhmM2Q0YTc4M2ViYWYxLi5iMDJjOGE0M2ZkYmVmYzUxNzNjNWRjOTIxNWM5OTQz
Yzk1NGM5MDAyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9zY21fYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5weQpAQCAtMzcsNyArMzcsNyBAQCBjbGFz
cyBTY21CYXNlKG9iamVjdCk6CiAgICAgIyB0aGUgZm9sbG93aW5nIGlkaW9tcyBzZWVtIGNvbW1v
biBlbm91Z2ggdG8gYmUgc2hhcmVkLgogICAgIERFVl9CUkFOQ0hFUyA9IHJlLmNvbXBpbGUocicu
KlsoZW5nKShkZXYpKGJ1ZyldLy4rJykKICAgICBQUk9EX0JSQU5DSEVTID0gcmUuY29tcGlsZShy
J1xTKy1bXGQrXC5dKy1icmFuY2gnKQotICAgIEdJVF9TVk5fUkVWSVNJT04gPSByZS5jb21waWxl
KHInZ2l0LXN2bi1pZDogXFMrOlwvXC8uK0AoP1A8cmV2aXNpb24+XGQrKSAuKy0uKy0uKy0uKycp
CisgICAgR0lUX1NWTl9SRVZJU0lPTiA9IHJlLmNvbXBpbGUocidbXiBdZ2l0LXN2bi1pZDogXFMr
OlwvXC8uK0AoP1A8cmV2aXNpb24+XGQrKSAuKy0uKy0uKy0uKycpCiAgICAgREVGQVVMVF9CUkFO
Q0hFUyA9IFsnbWFpbicsICdtYXN0ZXInLCAndHJ1bmsnXQogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGRldl9icmFuY2hlcz1Ob25lLCBwcm9kX2JyYW5jaGVzPU5vbmUsIGNvbnRyaWJ1dG9ycz1O
b25lLCBpZD1Ob25lKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424399</attachid>
            <date>2021-03-26 13:28:37 -0700</date>
            <delta_ts>2021-03-29 11:47:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223262-20210326132836.patch</filename>
            <type>text/plain</type>
            <size>121392</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODcyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWI3M2I4ZmI2ZDA5MmE0MTY3YWRlMDUwYmI3NGE3Yzdl
MDMzYzQ1NS4uNWNmMjA4ZTc2MTQ1MDUwNmU1MWM1NmY3ZDllNjZjYzE3MTJkZDVkYSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
MSBAQAorMjAyMS0wMy0yNiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW3Jlc3VsdHNkYnB5XSBSZXR1cm4gbmV3LXN0eWxlIGNvbW1pdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzI2MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzU0ODMzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0LnB5OiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHk6CisgICAgICAgIChfZmluZF9jb21wYXJpc29u
KTogUmVwbGFjZSBpZCB3aXRoIHJlZi4KKyAgICAgICAgKHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9y
YW5nZV9xdWVyeSk6IFN1cHBvcnQgYm90aCBpZCBhbmQgcmVmIGluIFJFU1QgQVBJLgorICAgICAg
ICAodXVpZF9yYW5nZV9mb3JfcXVlcnkpOiBEaXR0by4KKyAgICAgICAgKENvbW1pdENvbnRyb2xs
ZXIuX2ZpbmQpOiBEaXR0by4KKyAgICAgICAgKENvbW1pdENvbnRyb2xsZXIucmVnaXN0ZXIpOiBS
ZXR1cm4gd2Via2l0c2NtcHkuQ29tbWl0IG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVy
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ29tbWl0Q29udHJvbGxlclRlc3QudGVzdF9icmFuY2hl
cyk6IFdlYktpdCdzIGRlZmF1bHQgYnJhbmNoIGlzIG5vdyBtYWluLgorICAgICAgICAoQ29tbWl0
Q29udHJvbGxlclRlc3QudGVzdF9yZWdpc3Rlcl93aXRoX2Z1bGxfY29tbWl0KTogUmVnaXN0ZXJl
ZCBjb21taXRzIHNob3VsZCBiZSB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAg
KENvbW1pdENvbnRyb2xsZXJUZXN0LnRlc3RfZmluZF9yYW5nZV9pZCk6IFJldHVybmVkIHJldmlz
aW9ucyBhcmUgbm93IGludGVnZXJzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X3VuaXR0ZXN0LnB5OiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChVcGxvYWRD
b250cm9sbGVyUG9zdFRlc3QudGVzdF91cGxvYWQpOiBXZWJLaXQgY29tbWl0cyBhcmUgdW5kZXIt
cGlubmVkIGJ5IEdpdCBub3cuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvbW9kZWwvYXJjaGl2ZV9jb250ZXh0LnB5OgorICAgICAgICAoQXJjaGl2
ZUNvbnRleHQucmVnaXN0ZXIpOiBVc2Ugd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAg
ICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY2lf
Y29udGV4dC5weToKKyAgICAgICAgKENJQ29udGV4dC5yZWdpc3Rlcik6IFVzZSB3ZWJraXRzY21w
eSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dC5weToKKyAgICAgICAgKENvbW1pdENv
bnRleHQuQ29tbWl0TW9kZWwpOiBSZW5hbWVkIGZyb20gQ29tbWl0TW9kZWxNazIuCisgICAgICAg
IChDb21taXRDb250ZXh0LkNvbW1pdEJ5VXVpZEFzY2VuZGluZyk6IFJlbmFtZWQgZnJvbSBDb21t
aXRCeVV1aWRBc2NlbmRpbmdNazIuCisgICAgICAgIChDb21taXRDb250ZXh0LkNvbW1pdEJ5VXVp
ZERlc2NlbmRpbmcpOiBSZW5hbWVkIGZyb20gQ29tbWl0QnlVdWlkRGVzY2VuZGluZ01rMi4KKyAg
ICAgICAgKENvbW1pdENvbnRleHQuX19pbml0X18pOiBSZW1vdmUgb2xkIHRhYmxlcy4KKyAgICAg
ICAgKENvbW1pdENvbnRleHQudGltZXN0YW1wX3RvX3V1aWQpOiBVc2Ugd2Via2l0c2NtcHkgQ29t
bWl0IG9iamVjdHMuCisgICAgICAgIChDb21taXRDb250ZXh0LmJyYW5jaF9rZXlzX2Zvcl9jb21t
aXRzKTogQWxsIGRlZmF1bHQgYnJhbmNoZXMgc2hvdWxkIGJlIHRyZWF0ZWQgdGhlIHNhbWUuCisg
ICAgICAgIChDb21taXRDb250ZXh0LmZpbmRfY29tbWl0c19ieV9yZWYpOiBGaW5kIGNvbW1pdHMg
YnkgcmV2aXNpb24sIGhhc2ggYW5kIGlkZW50aWZpZXIuCisgICAgICAgIChDb21taXRDb250ZXh0
LnJlZ2lzdGVyKToKKyAgICAgICAgKENvbW1pdENvbnRleHQucmVnaXN0ZXJfY29tbWl0KTogU2F2
ZSBjb21taXQgdG8gbmV3IHRhYmxlcy4KKyAgICAgICAgKENvbW1pdENvbnRleHQudXJsKTogUGFz
cyBjb21taXQgb2JqZWN0IHRvIHJlcG9zaXRvcnkgdXJsIGdlbmVyYXRvci4KKyAgICAgICAgKENv
bW1pdENvbnRleHQuQ29tbWl0QnlJRCk6IERlbGV0ZWQuCisgICAgICAgIChDb21taXRDb250ZXh0
LkNvbW1pdE1vZGVsTWsyKTogUmVuYW1lZCB0byBDb21taXRNb2RlbC4KKyAgICAgICAgKENvbW1p
dENvbnRleHQuQ29tbWl0QnlVdWlkQXNjZW5kaW5nTWsyKTogUmVuYW1lZCB0byBDb21taXRCeVV1
aWRBc2NlbmRpbmcuCisgICAgICAgIChDb21taXRDb250ZXh0LkNvbW1pdEJ5VXVpZERlc2NlbmRp
bmdNazIpOiBSZW5hbWVkIHRvIENvbW1pdEJ5VXVpZERlc2NlbmRpbmcuCisgICAgICAgIChDb21t
aXRDb250ZXh0LmZpbmRfY29tbWl0c19ieV9pZCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHRf
dW5pdHRlc3QucHk6CisgICAgICAgIChDb21taXRDb250ZXh0VGVzdCk6IFVzZSByZWYgaW5zdGVh
ZCBvZiBpZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC9mYWlsdXJlX2NvbnRleHQucHk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dC5y
ZWdpc3Rlcik6IFVzZSB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9tb2NrX21vZGVsX2Zh
Y3RvcnkucHk6CisgICAgICAgIChNb2NrTW9kZWxGYWN0b3J5KToKKyAgICAgICAgKE1vY2tNb2Rl
bEZhY3Rvcnkud2Via2l0KTogTW9jayBib3RoIFN1YnZlcnNpb24gYW5kIEdpdEh1YiBmb3IgV2Vi
S2l0LgorICAgICAgICAoTW9ja01vZGVsRmFjdG9yeS5jcmVhdGUpOgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRvcnkucHk6
CisgICAgICAgIChSZXBvc2l0b3J5LmNvbW1pdCk6IEJ5IGRlZmF1bHQsIGZ1bGx5IGRlZmluZSBj
b21taXRzLgorICAgICAgICAoU3Rhc2hSZXBvc2l0b3J5LmNvbW1pdCk6IERpdHRvLgorICAgICAg
ICAoU3Rhc2hSZXBvc2l0b3J5LnVybF9mb3JfY29tbWl0KTogQ3JlYXRlIGEgVVJMIGZvciBhIGNv
bW1pdCBvYmplY3QuCisgICAgICAgIChXZWJLaXRSZXBvc2l0b3J5Ll9faW5pdF9fKTogVXNlIGJv
dGggR2l0SHViIGFuZCBTdWJ2ZXJzaW9uLgorICAgICAgICAoV2ViS2l0UmVwb3NpdG9yeS5jb21t
aXQpOiBEZXRlcm1pbmUgd2hpY2ggcmVtb3RlIHRvIHVzZSBiYXNlZCBvbiBwcm92aWRlZCBhcmd1
bWVudHMuCisgICAgICAgIChXZWJLaXRSZXBvc2l0b3J5LnVybF9mb3JfY29tbWl0KTogQ3JlYXRl
IGEgVVJMIGZvciBhIGNvbW1pdCBvYmplY3QuCisgICAgICAgIChXZWJLaXRSZXBvc2l0b3J5LnJl
cHJlc2VudGF0aW9ucyk6IFdlYktpdCBjb21taXRzIGNhbiBiZSByZXByZXNlbnRlZCBieSBoYXNo
ZXMuCisgICAgICAgIChSZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQpOiBEZWxldGVkLgorICAgICAg
ICAoU3Rhc2hSZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0UmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5X3VuaXR0
ZXN0LnB5OgorICAgICAgICAoUmVwb3NpdG9yeVRlc3QudGVzdF9zdm4pOiBXZWJLaXQgZGVmYXVs
dCBicmFuY2ggaXMgbm93IG1haW4uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weToKKyAgICAgICAgKFN1aXRl
Q29udGV4dC5yZWdpc3Rlcik6IFVzZSB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC90ZXN0
X2NvbnRleHQucHk6CisgICAgICAgIChUZXN0Q29udGV4dC5yZWdpc3Rlcik6IFVzZSB3ZWJraXRz
Y21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weToKKyAgICAgICAgKFVwbG9h
ZENvbnRleHQuVXBsb2Fkc0J5Q29uZmlndXJhdGlvbkxlZ2FjeS51bnBhY2spOiBVc2Ugd2Via2l0
c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAgICAgIChVcGxvYWRDb250ZXh0LlVwbG9hZHNCeUNv
bmZpZ3VyYXRpb24udW5wYWNrKTogRGl0dG8uCisgICAgICAgIChVcGxvYWRDb250ZXh0Ll9kb19q
b2JfZm9yX2tleSk6IERpdHRvLgorICAgICAgICAoVXBsb2FkQ29udGV4dC51cGxvYWRfdGVzdF9y
ZXN1bHRzKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkv
cmVzdWx0c2RicHkvdmlldy9hcmNoaXZlX3ZpZXdfdW5pdHRlc3QucHk6CisgICAgICAgIChBcmNo
aXZlVmlld1VuaXR0ZXN0LnJlZ2lzdGVyX2FyY2hpdmUpOiBVc2Ugd2Via2l0c2NtcHkgQ29tbWl0
IG9iamVjdHMuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvdmlldy9jb21taXRfdmlldy5weToKKyAgICAgICAgKENvbW1pdFZpZXcuY29tbWl0KTog
VXNlIHdlYmtpdHNjbXB5IENvbW1pdCBvYmplY3RzLgorICAgICAgICAoQ29tbWl0Vmlldy5pbmZv
KTogRGl0dG8uCisgICAgICAgIChDb21taXRWaWV3LnByZXZpb3VzKTogRGl0dG8uCisgICAgICAg
IChDb21taXRWaWV3Lm5leHQpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9jb21taXQuanM6CisgICAgICAg
IChDb21taXQpOiAKKyAgICAgICAgKENvbW1pdC5wcm90b3R5cGUubGFiZWwpOiBPbmx5IHByaW50
IGlkZW50aWZpZXIvaGFzaC9yZXZpc2lvbiBpZiB0aGV5IGFyZSBkZWZpbmVkLgorICAgICAgICAo
X0NvbW1pdEJhbmsucHJvdG90eXBlLl9sb2FkU2libGluZ3MpOiBVc2UgcmVmIG92ZXIgaWQuCisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9z
dGF0aWMvanMvZHJhd2VyLmpzOiBtYWluIGlzIGEgZGVmYXVsdCBicmFuY2guCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMv
dGltZWxpbmUuanM6CisgICAgICAgICh4QXhpc0Zyb21TY2FsZSk6IE9ubHkgcHJpbnQgYXV0aG9y
IGlmIHRoZSBhdXRob3IgZXhpc3RzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2NvbW1pdC5odG1sOiBwcmVmZXIgcmVm
IG92ZXIgaWQsIHVzZQorICAgICAgICB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0IGluIEppbmph
IHRlbXBsYXRlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbDogVXBkYXRlIGRvY3VtZW50
YXRpb24KKyAgICAgICAgdG8gbWF0Y2ggd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBs
YXRlcy9pbnZlc3RpZ2F0ZS5odG1sOiBtYWluIGlzIGEgZGVmYXVsdCBicmFuY2guCisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0
ZXMvc2VhcmNoLmh0bWw6IENvcnJlY3QgQ29tbWl0UmVwcmVzZW50YXRpb24gY2FsbGJhY2suCisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90
ZW1wbGF0ZXMvc3VpdGVfcmVzdWx0cy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9zZXR1cC5weTogQnVtcCB2ZXJzaW9uLgorICAgICAgICAqIFNj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5OiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogRGl0
dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
Y29tbWl0LnB5OgorICAgICAgICAoQ29tbWl0LkVuY29kZXIuZGVmYXVsdCk6IEhhbmRsZSBkaWN0
IGFuZCBsaXN0IGluIEpTT04gY29ycmVjdGx5LgorICAgICAgICAoQ29tbWl0LnV1aWQpOiB1dWlk
IHNob3VsZCBiZSAnTm9uZScgd2hlbiB0aW1lc3RhbXAgaXMgJ05vbmUnLgorICAgICAgICAoQ29t
bWl0Ll9fcmVwcl9fKTogUmV0dXJuIGEgPyBmb3IgYW4gdW5kZWZpbmVkIGNvbW1pdC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1v
dGUvYml0YnVja2V0LnB5OgorICAgICAgICAoQml0QnVja2V0LnJlcXVlc3QpOiBEbyBub3QgYWRk
IGdpdC1zdm4taWQgZm9yIHVuZGVmaW5lZCByZXZpc2lvbi4KKyAgICAgICAgKiBTY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weToK
KyAgICAgICAgKEdpdEh1Yi5fY29tbWl0X3Jlc3BvbnNlKTogRml4IHVuaXQgdGVzdHMuCisgICAg
ICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvc2NtX2Jhc2Uu
cHk6CisgICAgICAgIChTY21CYXNlKTogRG8gbm90IG1hY2ggZ2l0LXN2biBJRCB3aXRoIGEgc3Bh
Y2UgYmVmb3JlIGl0LgorCiAyMDIxLTAzLTIyICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IG9yZGVyaW5nIG9mIG15IGVtYWlsIGFkZHJlc3NlcyBp
biBjb250cmlidXRvcnMuanNvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9fX2luaXRfXy5weQppbmRleCA1ZDMzY2ZmZGEy
ZDJkMjEwYmFhZGY2M2NhMmI4MDRmNzVjYWI5YjZmLi42YzYwOWRlZDMyYzA2MzI0MmU5MDRkZDk3
Njk2MmZkODA3YTUxMzkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9fX2luaXRfXy5weQpAQCAtNDQsNiArNDQsNiBA
QCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3Jl
cHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNr
YWdlIGluZGV4IFVSTD5gIgogICAgICkKIAotdmVyc2lvbiA9IFZlcnNpb24oMiwgMCwgMykKK3Zl
cnNpb24gPSBWZXJzaW9uKDIsIDAsIDQpCiAKIG5hbWUgPSAncmVzdWx0c2RicHknCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250
cm9sbGVyL2NvbW1pdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4NzY3NjhlZTgyOTE2MGFhMWJmZGY2ZGE2ZGFiN2ViZjE0MGRlNTAyLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0LnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUg
bWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0j
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLWltcG9ydCBjYWxlbmRhcgotaW1wb3J0IGpzb24KLWltcG9ydCByZQotCi1mcm9tIGRh
dGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEZs
YXNrSlNPTkVuY29kZXIKLQotCi1jbGFzcyBDb21taXQob2JqZWN0KToKLSAgICBUSU1FU1RBTVBf
VE9fVVVJRF9NVUxUSVBMSUVSID0gMTAwCi0gICAgTUFYX0tFWV9MRU5HVEggPSAxMjgKLQotICAg
IFJFVklTSU9OX1JFID0gcmUuY29tcGlsZShyJ1swLTldKyQnKQotICAgIEhBU0hfUkUgPSByZS5j
b21waWxlKHInW2EtZkEtRjAtOV0rJCcpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJv
bV9qc29uKGNscywgZGF0YSk6Ci0gICAgICAgIGRhdGEgPSBkYXRhIGlmIGlzaW5zdGFuY2UoZGF0
YSwgZGljdCkgZWxzZSBqc29uLmxvYWRzKGRhdGEpCi0gICAgICAgIHJldHVybiBjbHMoCi0gICAg
ICAgICAgICByZXBvc2l0b3J5X2lkPWRhdGEuZ2V0KCdyZXBvc2l0b3J5X2lkJyksCi0gICAgICAg
ICAgICBicmFuY2g9ZGF0YS5nZXQoJ2JyYW5jaCcpLAotICAgICAgICAgICAgaWQ9ZGF0YS5nZXQo
J2lkJyksCi0gICAgICAgICAgICByZXZpc2lvbj1kYXRhLmdldCgncmV2aXNpb24nKSwKLSAgICAg
ICAgICAgIGhhc2g9ZGF0YS5nZXQoJ2hhc2gnKSwKLSAgICAgICAgICAgIHRpbWVzdGFtcD1kYXRh
LmdldCgndGltZXN0YW1wJyksCi0gICAgICAgICAgICBvcmRlcj1kYXRhLmdldCgnb3JkZXInKSwK
LSAgICAgICAgICAgIGNvbW1pdHRlcj1kYXRhLmdldCgnY29tbWl0dGVyJyksCi0gICAgICAgICAg
ICBtZXNzYWdlPWRhdGEuZ2V0KCdtZXNzYWdlJyksCi0gICAgICAgICkKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCByZXBvc2l0b3J5X2lkLCBicmFuY2gsIGlkLCB0aW1lc3RhbXA9Tm9uZSwgb3Jk
ZXI9Tm9uZSwgY29tbWl0dGVyPU5vbmUsIG1lc3NhZ2U9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFz
aD1Ob25lKToKLSAgICAgICAgZm9yIGFyZ3VtZW50IGluIFsoJ3JlcG9zaXRvcnlfaWQnLCByZXBv
c2l0b3J5X2lkKSwgKCdicmFuY2gnLCBicmFuY2gpLCAoJ2lkJywgaWQpLCAoJ3RpbWVzdGFtcCcs
IHRpbWVzdGFtcCldOgotICAgICAgICAgICAgaWYgYXJndW1lbnRbMV0gaXMgTm9uZToKLSAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYne2FyZ3VtZW50WzBdfSBpcyBub3QgZGVmaW5l
ZCBmb3IgY29tbWl0JykKLQotICAgICAgICBzZWxmLnJlcG9zaXRvcnlfaWQgPSBzdHIocmVwb3Np
dG9yeV9pZCkKLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKHInXlthLXpBLVo/XSskJywgc2VsZi5y
ZXBvc2l0b3J5X2lkKSBvciBsZW4oc2VsZi5yZXBvc2l0b3J5X2lkKSA+IHNlbGYuTUFYX0tFWV9M
RU5HVEg6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiJ3tzZWxmLnJlcG9zaXRvcnlf
aWR9JyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgaWQiKQotCi0gICAgICAgIHNlbGYuYnJhbmNo
ID0gc3RyKGJyYW5jaCkKLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKHInXlthLXpBLVowLTktLj8v
XSskJywgc2VsZi5icmFuY2gpIG9yIGxlbihzZWxmLmJyYW5jaCkgPiBzZWxmLk1BWF9LRVlfTEVO
R1RIOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIid7c2VsZi5icmFuY2h9JyBpcyBh
biBpbnZhbGlkIGJyYW5jaCBuYW1lIikKLQotICAgICAgICAjIEFuIGlkIGlzIGVpdGhlciBhIGdp
dCBjb21taXQgb3IgU1ZOIHJldmlzaW9uLgotICAgICAgICBzZWxmLmlkID0gc3RyKGlkKQotICAg
ICAgICBpZiBub3QgcmUubWF0Y2gocideW2EtZkEtRjAtOT9dKyQnLCBzZWxmLmlkKSBvciBsZW4o
c2VsZi5pZCkgPiA0MDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiIne3NlbGYuaWR9
JyBpcyBhbiBpbnZhbGlkIGNvbW1pdCBpZCIpCi0KLSAgICAgICAgc2VsZi5yZXZpc2lvbiA9IHJl
dmlzaW9uCi0gICAgICAgIHNlbGYuaGFzaCA9IGhhc2gKLSAgICAgICAgaWYgc2VsZi5SRVZJU0lP
Tl9SRS5tYXRjaChzZWxmLmlkKToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJldmlzaW9uOgot
ICAgICAgICAgICAgICAgIHNlbGYucmV2aXNpb24gPSBzZWxmLmlkCi0gICAgICAgIGVsaWYgc2Vs
Zi5IQVNIX1JFLm1hdGNoKHNlbGYuaWQpOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuaGFzaDoK
LSAgICAgICAgICAgICAgICBzZWxmLmhhc2ggPSBzZWxmLmlkCi0KLSAgICAgICAgaWYgc2VsZi5y
ZXZpc2lvbjoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLnJldmlzaW9u
ID0gaW50KHNlbGYucmV2aXNpb24pCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiJ3tzZWxmLnJldmlzaW9ufScgaXMgbm90
IGFuIGludGVnZXIiKQotICAgICAgICBpZiBzZWxmLmhhc2g6Ci0gICAgICAgICAgICBzZWxmLmhh
c2ggPSBzZWxmLmhhc2gubG93ZXIoKQotCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodGltZXN0YW1w
LCBkYXRldGltZSk6Ci0gICAgICAgICAgICBzZWxmLnRpbWVzdGFtcCA9IHRpbWVzdGFtcAotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi50aW1lc3RhbXAgPSBkYXRldGltZS51dGNmcm9t
dGltZXN0YW1wKGludCh0aW1lc3RhbXApKQotICAgICAgICBzZWxmLm9yZGVyID0gaW50KG9yZGVy
KSBpZiBvcmRlciBlbHNlIDAKLQotICAgICAgICBzZWxmLmNvbW1pdHRlciA9IGNvbW1pdHRlciBp
ZiBjb21taXR0ZXIgZWxzZSBOb25lCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UgaWYg
bWVzc2FnZSBlbHNlIE5vbmUKLQotICAgIGRlZiB0aW1lc3RhbXBfYXNfZXBvY2goc2VsZik6Ci0g
ICAgICAgIHJldHVybiBjYWxlbmRhci50aW1lZ20oc2VsZi50aW1lc3RhbXAudGltZXR1cGxlKCkp
Ci0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgdXVpZChzZWxmKToKLSAgICAgICAgIyBSZWJhc2Ut
YmFzZWQgd29ya2Zsb3dzIGluIGdpdCBjYW4gY2F1c2UgY29tbWl0cyB0byBoYXZlIHRoZSBzYW1l
IGNvbW1pdCB0aW1lc3RhbXAuIFRvIHVuaXF1ZWx5IHJlY29nbml6ZSB0aGVtLAotICAgICAgICAj
IG11bHRpcGx5IGVhY2ggdGltZXN0YW1wIGJ5IHRoZSBgVElNRVNUQU1QX1RPX1VVSURfTVVMVElQ
TElFUmAuCi0gICAgICAgIHJldHVybiBzZWxmLnRpbWVzdGFtcF9hc19lcG9jaCgpICogc2VsZi5U
SU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSICsgc2VsZi5vcmRlcgotCi0gICAgZGVmIF9fZXFf
XyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiAoaXNpbnN0YW5jZShvdGhlciwgdHlwZShz
ZWxmKSkgYW5kIChzZWxmLnJlcG9zaXRvcnlfaWQsIHNlbGYuYnJhbmNoLCBzZWxmLmlkKSA9PSAo
b3RoZXIucmVwb3NpdG9yeV9pZCwgb3RoZXIuYnJhbmNoLCBvdGhlci5pZCkpCi0KLSAgICBkZWYg
X19uZV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIG5vdCAoc2VsZiA9PSBvdGhlcikK
LQotICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFt
cCA8IG90aGVyLnRpbWVzdGFtcDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlm
IHNlbGYudGltZXN0YW1wID4gb3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgIHJldHVybiBzZWxmLm9yZGVyIDwgb3RoZXIub3JkZXIKLQotICAgIGRlZiBf
X2xlX18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZiA8IG90aGVyIG9yIHNlbGYg
PT0gb3RoZXIKLQotICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxm
LnRpbWVzdGFtcCA+IG90aGVyLnRpbWVzdGFtcDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0g
ICAgICAgIGlmIHNlbGYudGltZXN0YW1wIDwgb3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBzZWxmLm9yZGVyID4gb3RoZXIub3JkZXIKLQot
ICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZiA+IG90aGVy
IG9yIHNlbGYgPT0gb3RoZXIKLQotICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0
dXJuIGhhc2goc2VsZi5yZXBvc2l0b3J5X2lkKSBeIGhhc2goc2VsZi5icmFuY2gpIF4gaGFzaChz
ZWxmLmlkKQotCi0gICAgZGVmIHRvX2pzb24oc2VsZiwgcHJldHR5X3ByaW50PUZhbHNlKToKLSAg
ICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2VsZiwgY2xzPXNlbGYuRW5jb2Rlciwgc29ydF9rZXlz
PXByZXR0eV9wcmludCwgaW5kZW50PTQgaWYgcHJldHR5X3ByaW50IGVsc2UgTm9uZSkKLQotICAg
IGNsYXNzIEVuY29kZXIoRmxhc2tKU09ORW5jb2Rlcik6Ci0KLSAgICAgICAgZGVmIGRlZmF1bHQo
c2VsZiwgb2JqKToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBDb21taXQpOgotICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHt9Ci0gICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUg
aW4gb2JqLl9fZGljdF9fLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAg
ICAgICByZXN1bHRba2V5XSA9IHZhbHVlCi0gICAgICAgICAgICAgICAgcmVzdWx0Wyd0aW1lc3Rh
bXAnXSA9IG9iai50aW1lc3RhbXBfYXNfZXBvY2goKQotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQKLSAgICAgICAgICAgIHJldHVybiBzdXBlcihDb21taXQuRW5jb2Rlciwgc2VsZikuZGVm
YXVsdChvYmopCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5IGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRf
Y29udHJvbGxlci5weQppbmRleCA0NDQyNGQ1NTljOGVhODg2MDRkMzgyNGFlYTAyOTRhYzUxOWJh
OWEyLi40ZGJhMzU1ZGQxMjY4MmRhZWUyZDQzZTI5NmJhZGU5MGJlNGJhZGViIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9s
bGVyL2NvbW1pdF9jb250cm9sbGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkKQEAg
LTI0LDI2ICsyNCwyNSBAQCBpbXBvcnQganNvbgogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBk
ZWZhdWx0ZGljdAogZnJvbSBmbGFzayBpbXBvcnQgYWJvcnQsIGpzb25pZnksIHJlcXVlc3QKLWZy
b20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSB3ZWJr
aXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGlt
aXRfZm9yX3F1ZXJ5Ci1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQgYXMg
U2NtQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQKIAogCi1k
ZWYgX2ZpbmRfY29tcGFyaXNvbihjb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9pZCwgYnJhbmNo
LCBpZCwgdXVpZCwgdGltZXN0YW1wLCBwcmlvcml0eT1taW4pOgotICAgIGlmIGJvb2woaWQpICsg
Ym9vbCh1dWlkKSArIGJvb2wodGltZXN0YW1wKSA+IDE6Ci0gICAgICAgIGFib3J0KDQwMCwgZGVz
Y3JpcHRpb249J0NhbiBvbmx5IHNlYXJjaCBieSBvbmUgb2YgW2NvbW1pdCBpZCwgY29tbWl0IHV1
aWQsIHRpbWVzdGFtcF0gaW4gYSBzaW5nbGUgcmVxdWVzdCcpCitkZWYgX2ZpbmRfY29tcGFyaXNv
bihjb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9pZCwgYnJhbmNoLCByZWYsIHV1aWQsIHRpbWVz
dGFtcCwgcHJpb3JpdHk9bWluKToKKyAgICBpZiBib29sKHJlZikgKyBib29sKHV1aWQpICsgYm9v
bCh0aW1lc3RhbXApID4gMToKKyAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj0nQ2FuIG9u
bHkgc2VhcmNoIGJ5IG9uZSBvZiBbY29tbWl0IGlkL3JlZiwgY29tbWl0IHV1aWQsIHRpbWVzdGFt
cF0gaW4gYSBzaW5nbGUgcmVxdWVzdCcpCiAKICAgICB0cnk6CiAgICAgICAgIGlmIHV1aWQ6CiAg
ICAgICAgICAgICAjIFdlIGRvbid0IG5lZWQgcmVhbCBjb21taXQgdG8gc2VhcmNoIGJ5IHV1aWQg
YW5kIENvbW1pdENvbnRleHRzIGhhdmUgdHJvdWJsZSBkaWZmcmVudGlhdGluZyBiZXR3ZWVuIHV1
aWRzIGFuZCB0aW1lc3RhbXBzLgogICAgICAgICAgICAgdXVpZCA9IHByaW9yaXR5KFtpbnQoZWxl
bWVudCkgZm9yIGVsZW1lbnQgaW4gdXVpZF0pCi0gICAgICAgICAgICByZXR1cm4gQ29tbWl0KCc/
JywgJz8nLCAnPycsIHV1aWQgLy8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIs
IHV1aWQgJSBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikKKyAgICAgICAgICAg
IHJldHVybiBDb21taXQodGltZXN0YW1wPXV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUiwg
b3JkZXI9dXVpZCAlIENvbW1pdC5VVUlEX01VTFRJUExJRVIpCiAgICAgICAgIGlmIHRpbWVzdGFt
cDoKICAgICAgICAgICAgIHJldHVybiBwcmlvcml0eShbcm91bmQoZmxvYXQoZWxlbWVudCkpIGZv
ciBlbGVtZW50IGluIHRpbWVzdGFtcF0pCiAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAg
IGFib3J0KDQwMCwgZGVzY3JpcHRpb249J1RpbWVzdGFtcCBhbmQgdXVpZCBtdXN0IGJlIGludGVn
ZXJzJykKIAotICAgIGlmIG5vdCByZXBvc2l0b3J5X2lkIGFuZCBub3QgaWQ6CisgICAgaWYgbm90
IHJlcG9zaXRvcnlfaWQgYW5kIG5vdCByZWY6CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgaWYg
bm90IHJlcG9zaXRvcnlfaWQ6CiAgICAgICAgIHJlcG9zaXRvcnlfaWQgPSBjb21taXRfY29udGV4
dC5yZXBvc2l0b3JpZXMua2V5cygpCkBAIC01MywxMSArNTIsMTEgQEAgZGVmIF9maW5kX2NvbXBh
cmlzb24oY29tbWl0X2NvbnRleHQsIHJlcG9zaXRvcnlfaWQsIGJyYW5jaCwgaWQsIHV1aWQsIHRp
bWVzdGFtcCwKIAogICAgIHJlc3VsdCA9IFtdCiAgICAgZm9yIHJlcG9zaXRvcnkgaW4gcmVwb3Np
dG9yeV9pZDoKLSAgICAgICAgZm9yIGIgaW4gYnJhbmNoOgotICAgICAgICAgICAgaWYgaWQ6Ci0g
ICAgICAgICAgICAgICAgZm9yIGVsbSBpbiBpZDoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0
ICs9IGNvbW1pdF9jb250ZXh0LmZpbmRfY29tbWl0c19ieV9pZChyZXBvc2l0b3J5LCBiLCBlbG0p
Ci0gICAgICAgICAgICBlbHNlOgorICAgICAgICBpZiByZWY6CisgICAgICAgICAgICBmb3IgZWxt
IGluIHJlZjoKKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gY29tbWl0X2NvbnRleHQuZmluZF9j
b21taXRzX2J5X3JlZihyZXBvc2l0b3J5LCByZWY9ZWxtKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgZm9yIGIgaW4gYnJhbmNoOgogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBjb21taXRf
Y29udGV4dC5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeSwgYiwgbGltaXQ9MSkKIAog
ICAgIGlmIG5vdCByZXN1bHQ6CkBAIC02OCw5ICs2Nyw5IEBAIGRlZiBfZmluZF9jb21wYXJpc29u
KGNvbW1pdF9jb250ZXh0LCByZXBvc2l0b3J5X2lkLCBicmFuY2gsIGlkLCB1dWlkLCB0aW1lc3Rh
bXAsCiBkZWYgdXVpZF9yYW5nZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCk6CiAgICAgZGVmIGRl
Y29yYXRvcihtZXRob2QpOgogICAgICAgICBkZWYgcmVhbF9tZXRob2Qob2JqLCBicmFuY2g9Tm9u
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0
ZXJfYnJhbmNoPU5vbmUsIGFmdGVyX2lkPU5vbmUsIGFmdGVyX3V1aWQ9Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFmdGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5v
bmUsIGFmdGVyX2lkPU5vbmUsIGFmdGVyX3V1aWQ9Tm9uZSwgYWZ0ZXJfcmVmPU5vbmUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICBhZnRlcl90aW1lc3RhbXA9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJlZm9yZV9yZXBvc2l0b3J5X2lkPU5vbmUsIGJlZm9yZV9icmFuY2g9Tm9uZSwg
YmVmb3JlX2lkPU5vbmUsIGJlZm9yZV91dWlkPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICBiZWZvcmVfcmVwb3NpdG9yeV9pZD1Ob25lLCBiZWZvcmVfYnJhbmNoPU5vbmUsIGJlZm9yZV9p
ZD1Ob25lLCBiZWZvcmVfdXVpZD1Ob25lLCBiZWZvcmVfcmVmPU5vbmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICBiZWZvcmVfdGltZXN0YW1wPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgICAg
ICMgV2UncmUgbWFraW5nIGFuIGFzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRl
Y29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAg
ICAgICAgICAgICAjIHRoaXMgZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CkBAIC03
OSwxMSArNzgsMTEgQEAgZGVmIHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgog
ICAgICAgICAgICAgICAgICAgICBicmFuY2ggPSBbTm9uZV0KICAgICAgICAgICAgICAgICBiZWdp
biA9IF9maW5kX2NvbXBhcmlzb24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29u
dGV4dCwgcmVwb3NpdG9yeV9pZD1hZnRlcl9yZXBvc2l0b3J5X2lkLCBicmFuY2g9YWZ0ZXJfYnJh
bmNoIG9yIGJyYW5jaCwKLSAgICAgICAgICAgICAgICAgICAgaWQ9YWZ0ZXJfaWQsIHV1aWQ9YWZ0
ZXJfdXVpZCwgdGltZXN0YW1wPWFmdGVyX3RpbWVzdGFtcCwgcHJpb3JpdHk9bWluLAorICAgICAg
ICAgICAgICAgICAgICByZWY9YWZ0ZXJfcmVmIG9yIGFmdGVyX2lkLCB1dWlkPWFmdGVyX3V1aWQs
IHRpbWVzdGFtcD1hZnRlcl90aW1lc3RhbXAsIHByaW9yaXR5PW1pbiwKICAgICAgICAgICAgICAg
ICApCiAgICAgICAgICAgICAgICAgZW5kID0gX2ZpbmRfY29tcGFyaXNvbigKICAgICAgICAgICAg
ICAgICAgICAgb2JqLmNvbW1pdF9jb250ZXh0LCByZXBvc2l0b3J5X2lkPWJlZm9yZV9yZXBvc2l0
b3J5X2lkLCBicmFuY2g9YmVmb3JlX2JyYW5jaCBvciBicmFuY2gsCi0gICAgICAgICAgICAgICAg
ICAgIGlkPWJlZm9yZV9pZCwgdXVpZD1iZWZvcmVfdXVpZCwgdGltZXN0YW1wPWJlZm9yZV90aW1l
c3RhbXAsIHByaW9yaXR5PW1heCwKKyAgICAgICAgICAgICAgICAgICAgcmVmPWJlZm9yZV9yZWYg
b3IgYmVmb3JlX2lkLCB1dWlkPWJlZm9yZV91dWlkLCB0aW1lc3RhbXA9YmVmb3JlX3RpbWVzdGFt
cCwgcHJpb3JpdHk9bWF4LAogICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICByZXR1
cm4gbWV0aG9kKG9iaiwgYmVnaW49YmVnaW4sIGVuZD1lbmQsIGJyYW5jaD1icmFuY2gsICoqa3dh
cmdzKQogCkBAIC05NiwxMyArOTUsMTQgQEAgZGVmIHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5n
ZV9xdWVyeSgpOgogZGVmIHV1aWRfcmFuZ2VfZm9yX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRv
cihtZXRob2QpOgogICAgICAgICBAdXVpZF9yYW5nZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCkK
LSAgICAgICAgZGVmIHJlYWxfbWV0aG9kKG9iaiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9
Tm9uZSwgaWQ9Tm9uZSwgdXVpZD1Ob25lLCB0aW1lc3RhbXA9Tm9uZSwgYmVnaW49Tm9uZSwgZW5k
PU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgICAgICMgV2UncmUgbWFraW5nIGFuIGFzdW1wdGlv
biB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21t
aXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCisgICAgICAgIGRlZiByZWFsX21ldGhvZChvYmos
IHJlcG9zaXRvcnlfaWQ9Tm9uZSwgYnJhbmNoPU5vbmUsIGlkPU5vbmUsIHJlZj1Ob25lLCB1dWlk
PU5vbmUsIHRpbWVzdGFtcD1Ob25lLCBiZWdpbj1Ob25lLCBlbmQ9Tm9uZSwgKiprd2FyZ3MpOgor
ICAgICAgICAgICAgIyBXZSdyZSBtYWtpbmcgYW4gYXNzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1
c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQg
ZG9lcyBub3QsCiAgICAgICAgICAgICAjIHRoaXMgZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFj
dWxhcmx5CiAgICAgICAgICAgICB3aXRoIG9iai5jb21taXRfY29udGV4dDoKICAgICAgICAgICAg
ICAgICBpbmRleCA9IF9maW5kX2NvbXBhcmlzb24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5j
b21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNo
LAotICAgICAgICAgICAgICAgICAgICBpZD1pZCwgdXVpZD11dWlkLCB0aW1lc3RhbXA9dGltZXN0
YW1wLCBwcmlvcml0eT1tYXgsCisgICAgICAgICAgICAgICAgICAgIHJlZj1yZWYgb3IgaWQsCisg
ICAgICAgICAgICAgICAgICAgIHV1aWQ9dXVpZCwgdGltZXN0YW1wPXRpbWVzdGFtcCwgcHJpb3Jp
dHk9bWF4LAogICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICBpZiBpbmRleDoKICAg
ICAgICAgICAgICAgICAgICAgaWYgYmVnaW4gb3IgZW5kOgpAQCAtMTEwLDcgKzExMCw3IEBAIGRl
ZiB1dWlkX3JhbmdlX2Zvcl9xdWVyeSgpOgogICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGlu
ZGV4CiAgICAgICAgICAgICAgICAgICAgIGVuZCA9IGluZGV4CiAKLSAgICAgICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKGVuZCwgQ29tbWl0KSBhbmQgZW5kLnJlcG9zaXRvcnlfaWQgIT0gJz8nOgor
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZW5kLCBDb21taXQpIGFuZCBlbmQucmVwb3Np
dG9yeV9pZDoKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzID0gbGlzdChvYmouY29t
bWl0X2NvbnRleHQucmVwb3NpdG9yaWVzLmtleXMoKSkKICAgICAgICAgICAgICAgICAgICAgcmVw
b3NpdG9yaWVzLnJlbW92ZShlbmQucmVwb3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAgICAg
Y29tbWl0cyA9IFtlbmRdCkBAIC0xNDAsOSArMTQwLDkgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxl
cihIYXNDb21taXRDb250ZXh0KToKIAogICAgIEB1dWlkX3JhbmdlX2Zvcl9jb21taXRfcmFuZ2Vf
cXVlcnkoKQogICAgIEBsaW1pdF9mb3JfcXVlcnkoREVGQVVMVF9MSU1JVCkKLSAgICBkZWYgX2Zp
bmQoc2VsZiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVpZD1O
b25lLCB0aW1lc3RhbXA9Tm9uZSwgbGltaXQ9Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoq
a3dhcmdzKToKKyAgICBkZWYgX2ZpbmQoc2VsZiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9
Tm9uZSwgaWQ9Tm9uZSwgcmVmPU5vbmUsIHV1aWQ9Tm9uZSwgdGltZXN0YW1wPU5vbmUsIGxpbWl0
PU5vbmUsIGJlZ2luPU5vbmUsIGVuZD1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEFzc2VydFJl
cXVlc3QucXVlcnlfa3dhcmdzX2VtcHR5KCoqa3dhcmdzKQotCisgICAgICAgIHJlZiA9IHJlZiBv
ciBpZAogICAgICAgICB3aXRoIHNlbGYuY29tbWl0X2NvbnRleHQ6CiAgICAgICAgICAgICBpZiBu
b3QgcmVwb3NpdG9yeV9pZDoKICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkID0gc2VsZi5j
b21taXRfY29udGV4dC5yZXBvc2l0b3JpZXMua2V5cygpCkBAIC0xNTIsOCArMTUyLDggQEAgY2xh
c3MgQ29tbWl0Q29udHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKICAgICAgICAgICAgIGlmIG5v
dCBicmFuY2g6CiAgICAgICAgICAgICAgICAgYnJhbmNoID0gW05vbmVdCiAKLSAgICAgICAgICAg
IGlmIGJvb2woaWQpICsgYm9vbCh1dWlkKSArIGJvb2wodGltZXN0YW1wKSA+IDE6Ci0gICAgICAg
ICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBv
ZiBbY29tbWl0IGlkLCBjb21taXQgdXVpZCwgdGltZXN0YW1wXSBpbiBhIHNpbmdsZSByZXF1ZXN0
JykKKyAgICAgICAgICAgIGlmIGJvb2wocmVmKSArIGJvb2wodXVpZCkgKyBib29sKHRpbWVzdGFt
cCkgPiAxOgorICAgICAgICAgICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5
IHNlYXJjaCBieSBvbmUgb2YgW2NvbW1pdCBpZC9yZWYsIGNvbW1pdCB1dWlkLCB0aW1lc3RhbXBd
IGluIGEgc2luZ2xlIHJlcXVlc3QnKQogCiAgICAgICAgICAgICByZXN1bHQgPSBbXQogICAgICAg
ICAgICAgZm9yIHJlcG9zaXRvcnkgaW4gcmVwb3NpdG9yeV9pZDoKQEAgLTE2NCw5ICsxNjQsOSBA
QCBjbGFzcyBDb21taXRDb250cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAg
ICAgICAgICBpZiBsZW4ocmVzdWx0c19mb3JfcmVwbykgPj0gbGltaXQ6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICAgICAgICAgIGlmIGlkOgotICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIGVsbSBpbiBpZDoKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXN1bHRzX2Zvcl9yZXBvICs9IHNlbGYuY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRz
X2J5X2lkKHJlcG9zaXRvcnksIGIsIGVsbSwgbGltaXQ9bGltaXQgLSBsZW4ocmVzdWx0c19mb3Jf
cmVwbykpCisgICAgICAgICAgICAgICAgICAgIGlmIHJlZjoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciBlbG0gaW4gcmVmOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNf
Zm9yX3JlcG8gKz0gc2VsZi5jb21taXRfY29udGV4dC5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9z
aXRvcnksIHJlZj1lbG0sIGxpbWl0PWxpbWl0IC0gbGVuKHJlc3VsdHNfZm9yX3JlcG8pKQogICAg
ICAgICAgICAgICAgICAgICBlbGlmIHV1aWQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
ZWxtIGluIHV1aWQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfcmVw
byArPSBzZWxmLmNvbW1pdF9jb250ZXh0LmZpbmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRvcnks
IGIsIGludChlbG0pLCBsaW1pdD1saW1pdCAtIGxlbihyZXN1bHRzX2Zvcl9yZXBvKSkKQEAgLTI4
MCw3ICsyODAsNyBAQCBjbGFzcyBDb21taXRDb250cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgog
ICAgICAgICAgICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0V4cGVjdGVkIHVwbG9hZGVk
IGRhdGEgdG8gYmUganNvbicpCiAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgY2FuZGlkYXRl
ID0gU2NtQ29tbWl0LmZyb21fanNvbihjb21taXQpCisgICAgICAgICAgICBjYW5kaWRhdGUgPSBD
b21taXQuZnJvbV9qc29uKGNvbW1pdCkKIAogICAgICAgICAgICAgIyBDb21taXQgbmVlZHMgdG8g
YmUgc3VmZmljaWVudGx5IGRlZmluZWQKICAgICAgICAgICAgIGlmIGNhbmRpZGF0ZS5yZXBvc2l0
b3J5X2lkIGFuZCBjYW5kaWRhdGUuYnJhbmNoIGFuZCBjYW5kaWRhdGUudGltZXN0YW1wIGFuZCAo
Y2FuZGlkYXRlLnJldmlzaW9uIG9yIGNhbmRpZGF0ZS5oYXNoKToKQEAgLTMyOCwxMiArMzI4LDQg
QEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKIAogICAgICAgICBp
ZiBpc19lbmRwb2ludDoKICAgICAgICAgICAgIHJldHVybiBqc29uaWZ5KHsnc3RhdHVzJzogJ29r
J30pCi0gICAgICAgIHJldHVybiBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPWNv
bW1pdC5yZXBvc2l0b3J5X2lkLAotICAgICAgICAgICAgaWQ9Y29tbWl0LnJldmlzaW9uIG9yIGNv
bW1pdC5oYXNoLAotICAgICAgICAgICAgYnJhbmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAgICAg
ICB0aW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1pdC5v
cmRlciwKLSAgICAgICAgICAgIGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1p
dC5hdXRob3IgZWxzZSBOb25lLAotICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwK
LSAgICAgICAgKQorICAgICAgICByZXR1cm4gY29tbWl0CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9j
b250cm9sbGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlcl91bml0dGVzdC5weQpp
bmRleCA5ZDI2NmI1NTdlM2JlZTMyNTU2MTc1Y2VjYzEwMDg3MWY0MTk2MjE5Li44ZWQ5OWQ4OTI4
MWY2NWE4YWNjN2JlMTE0Zjc0MjBiMzYyNzRiZmE3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250
cm9sbGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXJfdW5pdHRlc3QucHkK
QEAgLTIzLDcgKzIzLDYgQEAKIGZyb20gZmFrZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVkaXMK
IGZyb20gcmVkaXMgaW1wb3J0IFN0cmljdFJlZGlzCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xs
ZXIuYXBpX3JvdXRlcyBpbXBvcnQgQVBJUm91dGVzCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xs
ZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC5m
bGFza190ZXN0Y2FzZSBpbXBvcnQgRmxhc2tUZXN0Q2FzZQogZnJvbSByZXN1bHRzZGJweS5tb2Rl
bC5jYXNzYW5kcmFfY29udGV4dCBpbXBvcnQgQ2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1bHRz
ZGJweS5tb2RlbC5tb2NrX2Nhc3NhbmRyYV9jb250ZXh0IGltcG9ydCBNb2NrQ2Fzc2FuZHJhQ29u
dGV4dApAQCAtMzIsNiArMzEsNyBAQCBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLm1vZGVsIGltcG9y
dCBNb2RlbAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC53YWl0X2Zvcl9kb2NrZXJfdGVzdF9jYXNl
IGltcG9ydCBXYWl0Rm9yRG9ja2VyVGVzdENhc2UKIGZyb20gcmVzdWx0c2RicHkubW9kZWwucmVw
b3NpdG9yeSBpbXBvcnQgU3Rhc2hSZXBvc2l0b3J5LCBXZWJLaXRSZXBvc2l0b3J5CiBmcm9tIHdl
YmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQg
Q29tbWl0CiAKIAogY2xhc3MgQ29tbWl0Q29udHJvbGxlclRlc3QoRmxhc2tUZXN0Q2FzZSwgV2Fp
dEZvckRvY2tlclRlc3RDYXNlKToKQEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgQ29tbWl0Q29udHJv
bGxlclRlc3QoRmxhc2tUZXN0Q2FzZSwgV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAg
cmVzcG9uc2UgPSBjbGllbnQuZ2V0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hlcycp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KAotICAgICAgICAgICAgd2Via2l0PVsnYnJhbmNo
LWEnLCAnYnJhbmNoLWInLCAndGFncy90YWctMScsICd0YWdzL3RhZy0yJywgJ3RydW5rJ10sCisg
ICAgICAgICAgICB3ZWJraXQ9WydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10sCiAgICAg
ICAgICAgICBzYWZhcmk9WydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10pLCByZXNwb25z
ZS5qc29uKCkpCiAKICAgICAgICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KHNlbGYuVVJMICsgJy9h
cGkvY29tbWl0cy9icmFuY2hlcz9icmFuY2g9YnJhbmNoJykKQEAgLTEyMSwyNyArMTIxLDI4IEBA
IGNsYXNzIENvbW1pdENvbnRyb2xsZXJUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJU
ZXN0Q2FzZSk6CiAgICAgICAgIGdpdF9jb21taXQgPSBDb21taXQoCiAgICAgICAgICAgICByZXBv
c2l0b3J5X2lkPSdzYWZhcmknLAogICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKLSAgICAgICAg
ICAgIGlkPSc4ZWJhMjgwZTMyZGFhZjVmZGRiYmI2NWFlYTM3OTMyZWE5YWQ4NWRmJywKKyAgICAg
ICAgICAgIGhhc2g9JzhlYmEyODBlMzJkYWFmNWZkZGJiYjY1YWVhMzc5MzJlYTlhZDg1ZGYnLAog
ICAgICAgICAgICAgdGltZXN0YW1wPTE2MDE2NTAxMDAsCiAgICAgICAgICAgICBvcmRlcj0wLAot
ICAgICAgICAgICAgY29tbWl0dGVyPSdqYmVkYXJkQHdlYmtpdC5vcmcnLAorICAgICAgICAgICAg
YXV0aG9yPSdqYmVkYXJkQHdlYmtpdC5vcmcnLAogICAgICAgICAgICAgbWVzc2FnZT0nY3VzdG9t
IGNvbW1pdCcsCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIGNsaWVu
dC5wb3N0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cycsIGRhdGE9Q29tbWl0LkVuY29kZXIoKS5k
ZWZhdWx0KGdpdF9jb21taXQpKS5zdGF0dXNfY29kZSkKKyAgICAgICAgcHJpbnQoQ29tbWl0LkVu
Y29kZXIoKS5kZWZhdWx0KGdpdF9jb21taXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIw
MCwgY2xpZW50LnBvc3Qoc2VsZi5VUkwgKyAnL2FwaS9jb21taXRzJywganNvbj1Db21taXQuRW5j
b2RlcigpLmRlZmF1bHQoZ2l0X2NvbW1pdCkpLnN0YXR1c19jb2RlKQogICAgICAgICByZXNwb25z
ZSA9IGNsaWVudC5nZXQoc2VsZi5VUkwgKyAnL2FwaS9jb21taXRzP3JlcG9zaXRvcnlfaWQ9c2Fm
YXJpJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIHJlc3BvbnNlLnN0YXR1c19jb2Rl
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENvbW1pdC5mcm9tX2pzb24ocmVzcG9uc2UuanNv
bigpWzBdKSwgZ2l0X2NvbW1pdCkKIAogICAgICAgICBzdm5fY29tbWl0ID0gQ29tbWl0KAogICAg
ICAgICAgICAgcmVwb3NpdG9yeV9pZD0nd2Via2l0JywKLSAgICAgICAgICAgIGJyYW5jaD0ndHJ1
bmsnLAotICAgICAgICAgICAgaWQ9JzEyMzQnLAorICAgICAgICAgICAgYnJhbmNoPSdtYWluJywK
KyAgICAgICAgICAgIHJldmlzaW9uPScxMjM0JywKICAgICAgICAgICAgIHRpbWVzdGFtcD0xNjAx
NjUwMTAwLAogICAgICAgICAgICAgb3JkZXI9MCwKLSAgICAgICAgICAgIGNvbW1pdHRlcj0namJl
ZGFyZEB3ZWJraXQub3JnJywKKyAgICAgICAgICAgIGF1dGhvcj0namJlZGFyZEB3ZWJraXQub3Jn
JywKICAgICAgICAgICAgIG1lc3NhZ2U9J2N1c3RvbSBjb21taXQnLAogICAgICAgICApCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2Nv
bW1pdHMnLCBkYXRhPUNvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVz
X2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVS
TCArICcvYXBpL2NvbW1pdHMnLCBqc29uPUNvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29t
bWl0KSkuc3RhdHVzX2NvZGUpCiAgICAgICAgIHJlc3BvbnNlID0gY2xpZW50LmdldChzZWxmLlVS
TCArICcvYXBpL2NvbW1pdHM/cmVwb3NpdG9yeV9pZD13ZWJraXQnKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDIwMCwgcmVzcG9uc2Uuc3RhdHVzX2NvZGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoQ29tbWl0LmZyb21fanNvbihyZXNwb25zZS5qc29uKClbMF0pLCBzdm5fY29tbWl0KQpA
QCAtMjA0LDggKzIwNSw4IEBAIGNsYXNzIENvbW1pdENvbnRyb2xsZXJUZXN0KEZsYXNrVGVzdENh
c2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYucmVnaXN0ZXJfYWxsX2Nv
bW1pdHMoY2xpZW50KQogICAgICAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoc2VsZi5VUkwgKyAn
L2FwaS9jb21taXRzP2FmdGVyX2lkPTYmYmVmb3JlX2lkPWZmZjgzYmIyZDkxNycpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwb25zZS5zdGF0dXNfY29kZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChbQ29tbWl0LmZyb21fanNvbihlbGVtZW50KS5pZCBmb3IgZWxlbWVudCBp
biByZXNwb25zZS5qc29uKCldLCBbCi0gICAgICAgICAgICAnNicsICc5YjgzMTFmMjVhNzdiYTE0
OTIzZDlkNWE2NTMyMTAzZjU0YWJlZmNiJywgJ2ZmZjgzYmIyZDkxNzFiNGQ5MTk2ZTk3N2ViMDUw
OGZkNTdlN2EwOGQnLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtDb21taXQuZnJvbV9qc29u
KGVsZW1lbnQpLnJldmlzaW9uIG9yIENvbW1pdC5mcm9tX2pzb24oZWxlbWVudCkuaGFzaCBmb3Ig
ZWxlbWVudCBpbiByZXNwb25zZS5qc29uKCldLCBbCisgICAgICAgICAgICA2LCAnOWI4MzExZjI1
YTc3YmExNDkyM2Q5ZDVhNjUzMjEwM2Y1NGFiZWZjYicsICdmZmY4M2JiMmQ5MTcxYjRkOTE5NmU5
NzdlYjA1MDhmZDU3ZTdhMDhkJywKICAgICAgICAgXSkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVz
dENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tf
Y2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjc4ZGE0NWEyNmY4MzJjNTYxM2E1NmVjZDE0ZGI0NTI5NDM5YjExMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVzdC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDE1NyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
Ci0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSByZXN1bHRzZGJweS5jb250
cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0Ci0KLQotY2xhc3MgQ29tbWl0VW5pdHRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfY29tcGFyZShzZWxmKToKLSAgICAgICAg
Y29tbWl0MSA9IENvbW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJy
YW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJj
YTMxNDgyY2E3MTViMzgzJywKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAg
ICAgICApCi0gICAgICAgIGNvbW1pdDIgPSBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5
X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3RlcicsCi0gICAgICAgICAgICBpZD0nN2JlNDA4NDI1
OGE0NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICB0aW1lc3RhbXA9
MTUzNzU1MDY4NSwgb3JkZXI9MSwKLSAgICAgICAgKQotICAgICAgICBjb21taXQzID0gQ29tbWl0
KAotICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAot
ICAgICAgICAgICAgaWQ9J2JiNmJkYTVmNDRkZDI0ZDBiNTQ1MzliOGZmNmU4YzE3ZjUxOTI0OWEn
LAotICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc4MTAyODEsCi0gICAgICAgICkKLSAgICAgICAg
Y29tbWl0NCA9IENvbW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJy
YW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgIGlkPTIzNjUyMiwKLSAgICAgICAgICAgIHRpbWVz
dGFtcD0xNTM3ODI2NjE0LAotICAgICAgICApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNv
bW1pdDIgPiBjb21taXQxKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tbWl0MiA+PSBjb21t
aXQxKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tbWl0MSA+PSBjb21taXQxKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoY29tbWl0MSA8IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShjb21taXQxIDw9IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQx
IDw9IGNvbW1pdDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxID09IGNvbW1pdDEp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvbW1pdDIgPCBjb21taXQzKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoY29tbWl0MyA+IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tbWl0MS50aW1lc3RhbXAsIGNvbW1pdDIudGltZXN0YW1wKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShjb21taXQ0ID4gY29tbWl0MykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVh
bChjb21taXQzLnJlcG9zaXRvcnlfaWQsIGNvbW1pdDQucmVwb3NpdG9yeV9pZCkKLQotICAgIGRl
ZiB0ZXN0X2VuY29kaW5nKHNlbGYpOgotICAgICAgICBjb21taXRzX3RvX3Rlc3QgPSBbCi0gICAg
ICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywg
YnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4
NzFlMTJjYTMxNDgyY2E3MTViMzgzJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1
MDY4NSwKLSAgICAgICAgICAgICksIENvbW1pdCgKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5
X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3RlcicsCi0gICAgICAgICAgICAgICAgaWQ9JzdiZTQw
ODQyNThhNDUyZThmZTIyZjM2Mjg3YzViMzIxZTljODI0OWInLAotICAgICAgICAgICAgICAgIHRp
bWVzdGFtcD0xNTM3NTUwNjg1LCBvcmRlcj0xLAotICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0n
ZW1haWwxQHdlYmtpdC5vcmcnLCBtZXNzYWdlPSdDaGFuZ2Vsb2cnLAotICAgICAgICAgICAgKSwg
Q29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0n
bWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0yMzY1MjIsCi0gICAgICAgICAgICAgICAgdGlt
ZXN0YW1wPTE1Mzc4MjY2MTQsCi0gICAgICAgICAgICApLAotICAgICAgICBdCi0gICAgICAgIGZv
ciBjb21taXQgaW4gY29tbWl0c190b190ZXN0OgotICAgICAgICAgICAgY29udmVydGVkX2NvbW1p
dCA9IENvbW1pdC5mcm9tX2pzb24oY29tbWl0LnRvX2pzb24oKSkKLQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21taXQsIGNvbnZlcnRlZF9jb21taXQpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1pdC5yZXBvc2l0b3J5X2lkLCBjb252ZXJ0ZWRfY29tbWl0LnJlcG9z
aXRvcnlfaWQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5pZCwgY29udmVy
dGVkX2NvbW1pdC5pZCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnRpbWVz
dGFtcCwgY29udmVydGVkX2NvbW1pdC50aW1lc3RhbXApCi0gICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1pdC5vcmRlciwgY29udmVydGVkX2NvbW1pdC5vcmRlcikKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmNvbW1pdHRlciwgY29udmVydGVkX2NvbW1pdC5jb21t
aXR0ZXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5tZXNzYWdlLCBjb252
ZXJ0ZWRfY29tbWl0Lm1lc3NhZ2UpCi0KLSAgICBkZWYgdGVzdF91ZGlkKHNlbGYpOgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKENvbW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3Nh
ZmFyaScsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4
ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUw
Njg1LCBvcmRlcj0xLAotICAgICAgICApLnV1aWQsIDE1Mzc1NTA2ODUwMSkKLQotICAgIGRlZiB0
ZXN0X2ludmFsaWQoc2VsZik6Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVF
cnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVw
b3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgICAgIGlk
PSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAgICAg
ICAgICB0aW1lc3RhbXA9Tm9uZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzdHIoZXJyb3IuZXhjZXB0aW9uKSwgJ3RpbWVzdGFtcCBpcyBub3QgZGVmaW5lZCBmb3Ig
Y29tbWl0JykKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFz
IGVycm9yOgotICAgICAgICAgICAgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlf
aWQ9J2ludmFsaWQtcmVwbycsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0n
N2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAg
ICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2VwdGlvbiksICInaW52YWxpZC1yZXBvJyBpcyBhbiBpbnZh
bGlkIHJlcG9zaXRvcnkgaWQiKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFs
dWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAg
cmVwb3NpdG9yeV9pZD0naScgKiAxMjksIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAg
ICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAg
ICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2VwdGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBh
biBpbnZhbGlkIHJlcG9zaXRvcnkgaWQiKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAg
ICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSc8aHRtbD5pbnZhbGlkLWJyYW5j
aDwvaHRtbD4nLAotICAgICAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4
N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwK
LSAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhjZXB0
aW9uKSwgIic8aHRtbD5pbnZhbGlkLWJyYW5jaDwvaHRtbD4nIGlzIGFuIGludmFsaWQgYnJhbmNo
IG5hbWUiKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMg
ZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9p
ZD0nc2FmYXJpJywgYnJhbmNoPSdpJyAqIDEyOSwKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4
NDI1OGE0NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGlt
ZXN0YW1wPTE1Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyKGVycm9yLmV4Y2VwdGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIGJy
YW5jaCBuYW1lIikKLQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3Ip
IGFzIGVycm9yOgotICAgICAgICAgICAgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRv
cnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nPGh0
bWw+MTIzNDwvaHRtbD4nLAotICAgICAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAot
ICAgICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlcnJvci5leGNlcHRp
b24pLCAiJzxodG1sPjEyMzQ8L2h0bWw+JyBpcyBhbiBpbnZhbGlkIGNvbW1pdCBpZCIpCi0KLSAg
ICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBlcnJvcjoKLSAgICAg
ICAgICAgIENvbW1pdCgKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBi
cmFuY2g9J21hc3RlcicsCi0gICAgICAgICAgICAgICAgaWQ9JzAnICogNDEsCi0gICAgICAgICAg
ICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2VwdGlvbiksIGYiJ3snMCcgKiA0MX0nIGlzIGFuIGlu
dmFsaWQgY29tbWl0IGlkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9j
b250cm9sbGVyL3VwbG9hZF9jb250cm9sbGVyX3VuaXR0ZXN0LnB5CmluZGV4IGQzZDZhZWJkMzky
ZjJmODY5ZWZlMTM0MzA0ZWY0OTlhZTkwMDc5NzEuLjM3YzVmY2FkYzU5MTA1YjhkM2NiNjY3MzUx
OTI1NzBmY2Q4NGNlMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3Qu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
Y29udHJvbGxlci91cGxvYWRfY29udHJvbGxlcl91bml0dGVzdC5weQpAQCAtNDksOCArNDksMTAg
QEAgY2xhc3MgVXBsb2FkQ29udHJvbGxlclBvc3RUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JE
b2NrZXJUZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfdXBsb2FkKHNlbGYsIGNsaWVudCwgKiprd2Fy
Z3MpOgogICAgICAgICB1cGxvYWRfZGljdCA9IGRpY3QoCiAgICAgICAgICAgICBzdWl0ZT0nbGF5
b3V0LXRlc3RzJywKLSAgICAgICAgICAgIGNvbW1pdHM9W2RpY3QocmVwb3NpdG9yeV9pZD0nc2Fm
YXJpJywgaWQ9J2Q4YmNlMjZmYTY1YzZmYzhmMzljMTc5MjdhYmI3N2Y2OWZhYjgyZmMnKSwgZGlj
dChyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBpZD02KV0sCi0gICAgICAgICAgICBjb25maWd1cmF0
aW9uPUNvbmZpZ3VyYXRpb24uRW5jb2RlcigpLmRlZmF1bHQoQ29uZmlndXJhdGlvbigKKyAgICAg
ICAgICAgIGNvbW1pdHM9WworICAgICAgICAgICAgICAgIGRpY3QocmVwb3NpdG9yeV9pZD0nc2Fm
YXJpJywgaGFzaD0nZDhiY2UyNmZhNjVjNmZjOGYzOWMxNzkyN2FiYjc3ZjY5ZmFiODJmYycpLAor
ICAgICAgICAgICAgICAgIGRpY3QocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgaGFzaD0nNzVlYWVm
MWM5MjQyZjkyYThkNzY5NGU4Y2NkMzEwZjY5Y2Y5NjgzYicpLAorICAgICAgICAgICAgXSwgY29u
ZmlndXJhdGlvbj1Db25maWd1cmF0aW9uLkVuY29kZXIoKS5kZWZhdWx0KENvbmZpZ3VyYXRpb24o
CiAgICAgICAgICAgICAgICAgcGxhdGZvcm09J01hYycsIHZlcnNpb249JzEwLjE0LjAnLCBzZGs9
JzE4QTM5MScsCiAgICAgICAgICAgICAgICAgaXNfc2ltdWxhdG9yPUZhbHNlLCBhcmNoaXRlY3R1
cmU9J3g4Nl82NCcsCiAgICAgICAgICAgICAgICAgc3R5bGU9J1JlbGVhc2UnLCBmbGF2b3I9J3dr
MicsCkBAIC02Nyw3ICs2OSw3IEBAIGNsYXNzIFVwbG9hZENvbnRyb2xsZXJQb3N0VGVzdChGbGFz
a1Rlc3RDYXNlLCBXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKICAgICAgICAgcmV0cmlldmVkID0gcmVz
cG9uc2UuanNvbigpWzBdCi0gICAgICAgIHJldHJpZXZlZFsnY29tbWl0cyddID0gW2RpY3QocmVw
b3NpdG9yeV9pZD1jb21taXRbJ3JlcG9zaXRvcnlfaWQnXSwgaWQ9Y29tbWl0LmdldCgnaGFzaCcs
IGNvbW1pdC5nZXQoJ3JldmlzaW9uJykpKSBmb3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0
cyddXQorICAgICAgICByZXRyaWV2ZWRbJ2NvbW1pdHMnXSA9IFtkaWN0KHJlcG9zaXRvcnlfaWQ9
Y29tbWl0WydyZXBvc2l0b3J5X2lkJ10sIGhhc2g9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5n
ZXQoJ3JldmlzaW9uJykpKSBmb3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHJpZXZlZCwgdXBsb2FkX2RpY3QpCiAKICAgICBAV2Fp
dEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmlj
dFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2Fy
Y2hpdmVfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29udGV4dC5weQppbmRleCBmYTg0ZGYyOTY0MThjMmQy
ZDZhOThhZDlhZWE4ODQ4Y2QxNzQ0ZmNlLi5kNjQ5OGNiYTcyNTNlMjNjODIxNTc1NjIwMWRkNGM1
MmYyZThmMTdlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC9hcmNoaXZlX2NvbnRleHQucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvYXJjaGl2ZV9jb250ZXh0
LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsMTMgKzI3LDEzIEBAIGltcG9ydCB6aXBmaWxlCiAKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2lu
ZSBpbXBvcnQgY29sdW1ucwogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVz
dWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJw
eS5tb2RlbC5hcmNoaXZlciBpbXBvcnQgQXJjaGl2ZXIKIGZyb20gcmVzdWx0c2RicHkubW9kZWwu
Y2Fzc2FuZHJhX2FyY2hpdmVyIGltcG9ydCBDYXNzYW5kcmFBcmNoaXZlcgogZnJvbSByZXN1bHRz
ZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1
bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29u
ZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5zM19hcmNoaXZlciBpbXBvcnQgUzNB
cmNoaXZlcgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBs
b2FkQ29udGV4dAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogZGVmIF9nZXRf
dGltZShpbnB1dF90aW1lKToKQEAgLTExNCw3ICsxMTQsNyBAQCBjbGFzcyBBcmNoaXZlQ29udGV4
dChvYmplY3QpOgogCiAgICAgICAgIHdpdGggc2VsZjoKICAgICAgICAgICAgIHV1aWQgPSBzZWxm
LmNvbW1pdF9jb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMoY29tbWl0cykKLSAgICAgICAgICAgIHR0
bCA9IGludCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikgKyBz
ZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBO
b25lCisgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElF
UikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMg
ZWxzZSBOb25lCiAKICAgICAgICAgICAgIGZvciBicmFuY2ggaW4gc2VsZi5jb21taXRfY29udGV4
dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhjb21taXRzKToKICAgICAgICAgICAgICAgICBzZWxm
LmNvbmZpZ3VyYXRpb25fY29udGV4dC5yZWdpc3Rlcl9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRp
b24sIGJyYW5jaD1icmFuY2gsIHRpbWVzdGFtcD10aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jaV9jb250
ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvY2lfY29udGV4dC5weQppbmRleCAyZDYwOTc2OGNiMjJiM2JlNWNjNWZhYTViNmM2OTg2
MGM1MGI5MDgzLi5hMjMwNDcwYjg1M2NiZDE1N2FhM2FjMDY4NWEwOWFkNDA4OWFlMjRhIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9t
b2RlbC9jaV9jb250ZXh0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NpX2NvbnRleHQucHkKQEAgLTEsNCArMSw0IEBACi0jIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHly
aWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMTEgKzMxLDEyIEBAIGltcG9ydCB1cmxsaWIu
cGFyc2UKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBkYXRl
dGltZSBpbXBvcnQgZGF0ZXRpbWUKIGZyb20gZmFrZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVk
aXMKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJv
bSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAog
ZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0
ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4
dCBpbXBvcnQgVXBsb2FkQ2FsbGJhY2tDb250ZXh0CiAKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0
IENvbW1pdAorCiAKIGNsYXNzIENJQ29udGV4dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgogICAg
IERFRkFVTFRfQ0FTU0FORFJBX0xJTUlUID0gMTAwCkBAIC0xMzUsNyArMTM2LDcgQEAgY2xhc3Mg
Q0lDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CiAgICAgICAgICAgICAgICAgICAgIGRl
bCBkZXRhaWxzW2tleV0KIAogICAgICAgICAgICAgdXVpZCA9IHNlbGYuY29tbWl0X2NvbnRleHQu
dXVpZF9mb3JfY29tbWl0cyhjb21taXRzKQotICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8g
Q29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAt
IHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQorICAgICAgICAgICAg
dHRsID0gaW50KCh1dWlkIC8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNv
bmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAg
ICAgICAgIHdpdGggc2VsZiwgc2VsZi5jYXNzYW5kcmEuYmF0Y2hfcXVlcnlfY29udGV4dCgpOgog
ICAgICAgICAgICAgICAgIGZvciBicmFuY2ggaW4gc2VsZi5jb21taXRfY29udGV4dC5icmFuY2hf
a2V5c19mb3JfY29tbWl0cyhjb21taXRzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250ZXh0LnB5IGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29t
bWl0X2NvbnRleHQucHkKaW5kZXggZTMxODYyM2UwMWIyMDJkNmQ1NjYzYjFiZjVhZjk3NjIwZDVh
MjJiZi4uMDRjZTdlYTVhYmQ3OGNmYzI5NjViY2RjMDAzZWUzN2E0NjY3NDExNiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwv
Y29tbWl0X2NvbnRleHQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHQucHkKQEAgLTI3LDQ1ICsyNywxMyBA
QCBpbXBvcnQgdGltZQogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5lIGltcG9ydCBjb2x1bW5zCiBm
cm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUubW9kZWxzIGltcG9ydCBNb2RlbAogZnJvbSBkYXRldGlt
ZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1w
b3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5yZXBvc2l0b3J5IGltcG9ydCBSZXBv
c2l0b3J5CiAKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IFNjbUJhc2UsIENvbW1pdCBhcyBTY21D
b21taXQsIENvbnRyaWJ1dG9yCi0KK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IFNjbUJhc2UsIENv
bW1pdCwgQ29udHJpYnV0b3IKIAogY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogCiAgICAg
Y2xhc3MgQ29tbWl0TW9kZWwoTW9kZWwpOgotICAgICAgICByZXBvc2l0b3J5X2lkID0gY29sdW1u
cy5UZXh0KHBhcnRpdGlvbl9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSkKLSAgICAgICAgYnJhbmNo
ID0gY29sdW1ucy5UZXh0KHBhcnRpdGlvbl9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSkKLSAgICAg
ICAgY29tbWl0dGVyID0gY29sdW1ucy5UZXh0KCkKLSAgICAgICAgbWVzc2FnZSA9IGNvbHVtbnMu
VGV4dCgpCi0KLSAgICAgICAgZGVmIHRvX2NvbW1pdChzZWxmKToKLSAgICAgICAgICAgIHJldHVy
biBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1zZWxmLnJlcG9zaXRvcnlf
aWQsIGJyYW5jaD1zZWxmLmJyYW5jaCwKLSAgICAgICAgICAgICAgICBpZD1zZWxmLmNvbW1pdF9p
ZCwKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9c2VsZi51dWlkIC8vIENvbW1pdC5USU1FU1RB
TVBfVE9fVVVJRF9NVUxUSVBMSUVSLAotICAgICAgICAgICAgICAgIG9yZGVyPXNlbGYudXVpZCAl
IENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSLAotICAgICAgICAgICAgICAgIGNv
bW1pdHRlcj1zZWxmLmNvbW1pdHRlciwgbWVzc2FnZT1zZWxmLm1lc3NhZ2UsCi0gICAgICAgICAg
ICApCi0KLSAgICBjbGFzcyBDb21taXRCeUlEKENvbW1pdE1vZGVsKToKLSAgICAgICAgX190YWJs
ZV9uYW1lX18gPSAnY29tbWl0c19pZF90b190aW1lc3RhbXBfdXVpZCcKLSAgICAgICAgY29tbWl0
X2lkID0gY29sdW1ucy5UZXh0KHByaW1hcnlfa2V5PVRydWUsIHJlcXVpcmVkPVRydWUpCi0gICAg
ICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChyZXF1aXJlZD1UcnVlKQotCi0gICAgY2xhc3MgQ29t
bWl0QnlVdWlkQXNjZW5kaW5nKENvbW1pdE1vZGVsKToKLSAgICAgICAgX190YWJsZV9uYW1lX18g
PSAnY29tbWl0c190aW1lc3RhbXBfdXVpZF90b19pZF9hc2NlbmRpbmcnCi0gICAgICAgIHV1aWQg
PSBjb2x1bW5zLkJpZ0ludChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVy
aW5nX29yZGVyPSdBU0MnKQotICAgICAgICBjb21taXRfaWQgPSBjb2x1bW5zLlRleHQocmVxdWly
ZWQ9VHJ1ZSkKLQotICAgIGNsYXNzIENvbW1pdEJ5VXVpZERlc2NlbmRpbmcoQ29tbWl0TW9kZWwp
OgotICAgICAgICBfX3RhYmxlX25hbWVfXyA9ICdjb21taXRzX3RpbWVzdGFtcF91dWlkX3RvX2lk
X2Rlc2NlbmRpbmcnCi0gICAgICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChwcmltYXJ5X2tleT1U
cnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVyaW5nX29yZGVyPSdERVNDJykKLSAgICAgICAgY29t
bWl0X2lkID0gY29sdW1ucy5UZXh0KHJlcXVpcmVkPVRydWUpCi0KLSAgICBjbGFzcyBDb21taXRN
b2RlbE1rMihNb2RlbCk6CiAgICAgICAgIHJlcG9zaXRvcnlfaWQgPSBjb2x1bW5zLlRleHQocGFy
dGl0aW9uX2tleT1UcnVlLCByZXF1aXJlZD1UcnVlKQogICAgICAgICBwZW9wbGUgPSBjb2x1bW5z
LlRleHQocmVxdWlyZWQ9RmFsc2UpCiAgICAgICAgIG1lc3NhZ2UgPSBjb2x1bW5zLlRleHQocmVx
dWlyZWQ9RmFsc2UpCkBAIC03NSwyOSArNDMsMjkgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmpl
Y3QpOgogICAgICAgICByZXZpc2lvbiA9IGNvbHVtbnMuSW50ZWdlcihyZXF1aXJlZD1GYWxzZSkK
IAogICAgICAgICBkZWYgdG9fY29tbWl0KHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuIFNjbUNv
bW1pdCgKKyAgICAgICAgICAgIHJldHVybiBDb21taXQoCiAgICAgICAgICAgICAgICAgcmVwb3Np
dG9yeV9pZD1zZWxmLnJlcG9zaXRvcnlfaWQsIGJyYW5jaD1zZWxmLmJyYW5jaCwKLSAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA9c2VsZi51dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9N
VUxUSVBMSUVSLAotICAgICAgICAgICAgICAgIG9yZGVyPXNlbGYudXVpZCAlIENvbW1pdC5USU1F
U1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSLAotICAgICAgICAgICAgICAgIGF1dGhvcj1zZWxmLnBl
b3BsZS5nZXQoJ2F1dGhvcicpIGlmIHNlbGYucGVvcGxlIGVsc2UgTm9uZSwKKyAgICAgICAgICAg
ICAgICB0aW1lc3RhbXA9c2VsZi51dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIsCisgICAg
ICAgICAgICAgICAgb3JkZXI9c2VsZi51dWlkICUgQ29tbWl0LlVVSURfTVVMVElQTElFUiwKKyAg
ICAgICAgICAgICAgICBhdXRob3I9anNvbi5sb2FkcyhzZWxmLnBlb3BsZSkgaWYgc2VsZi5wZW9w
bGUgZWxzZSBOb25lLAogICAgICAgICAgICAgICAgIG1lc3NhZ2U9c2VsZi5tZXNzYWdlLAogICAg
ICAgICAgICAgICAgIGlkZW50aWZpZXI9c2VsZi5pZGVudGlmaWVyLAogICAgICAgICAgICAgICAg
IGhhc2g9c2VsZi5oYXNoLAogICAgICAgICAgICAgICAgIHJldmlzaW9uPXNlbGYucmV2aXNpb24s
CiAgICAgICAgICAgICApCiAKLSAgICBjbGFzcyBDb21taXRCeVJlZihDb21taXRNb2RlbE1rMik6
CisgICAgY2xhc3MgQ29tbWl0QnlSZWYoQ29tbWl0TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25h
bWVfXyA9ICdjb21taXRzX3JlZl90b19vYmplY3QnCiAgICAgICAgIHJlZiA9IGNvbHVtbnMuVGV4
dChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlKQogICAgICAgICB1dWlkID0gY29sdW1u
cy5CaWdJbnQocmVxdWlyZWQ9VHJ1ZSkKICAgICAgICAgYnJhbmNoID0gY29sdW1ucy5UZXh0KHJl
cXVpcmVkPVRydWUpCiAKLSAgICBjbGFzcyBDb21taXRCeVV1aWRBc2NlbmRpbmdNazIoQ29tbWl0
TW9kZWxNazIpOgorICAgIGNsYXNzIENvbW1pdEJ5VXVpZEFzY2VuZGluZyhDb21taXRNb2RlbCk6
CiAgICAgICAgIF9fdGFibGVfbmFtZV9fID0gJ2NvbW1pdHNfdXVpZF90b19vYmplY3RfYXNjZW5k
aW5nJwogICAgICAgICBicmFuY2ggPSBjb2x1bW5zLlRleHQocGFydGl0aW9uX2tleT1UcnVlLCBy
ZXF1aXJlZD1UcnVlKQogICAgICAgICB1dWlkID0gY29sdW1ucy5CaWdJbnQocHJpbWFyeV9rZXk9
VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSwgY2x1c3RlcmluZ19vcmRlcj0nQVNDJykKIAotICAgIGNsYXNz
IENvbW1pdEJ5VXVpZERlc2NlbmRpbmdNazIoQ29tbWl0TW9kZWxNazIpOgorICAgIGNsYXNzIENv
bW1pdEJ5VXVpZERlc2NlbmRpbmcoQ29tbWl0TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25hbWVf
XyA9ICdjb21taXRzX3V1aWRfdG9fb2JqZWN0X2Rlc2NlbmRpbmcnCiAgICAgICAgIGJyYW5jaCA9
IGNvbHVtbnMuVGV4dChwYXJ0aXRpb25fa2V5PVRydWUsIHJlcXVpcmVkPVRydWUpCiAgICAgICAg
IHV1aWQgPSBjb2x1bW5zLkJpZ0ludChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlLCBj
bHVzdGVyaW5nX29yZGVyPSdERVNDJykKQEAgLTEyMCwxMCArODgsNyBAQCBjbGFzcyBDb21taXRD
b250ZXh0KG9iamVjdCk6CiAgICAgICAgIHNlbGYubmFtZSA9ICdjb21taXQtaWRlbnRpZmllcnMn
CiAKICAgICAgICAgd2l0aCBzZWxmOgotICAgICAgICAgICAgZm9yIG9sZCBpbiBbc2VsZi5Db21t
aXRCeUlELCBzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNj
ZW5kaW5nXToKLSAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRyYS5jcmVhdGVfdGFibGUob2xk
KQotCi0gICAgICAgICAgICBmb3IgdGFibGUgaW4gW3NlbGYuQ29tbWl0QnlSZWYsIHNlbGYuQ29t
bWl0QnlVdWlkQXNjZW5kaW5nTWsyLCBzZWxmLkNvbW1pdEJ5VXVpZERlc2NlbmRpbmdNazIsIHNl
bGYuQnJhbmNoZXNdOgorICAgICAgICAgICAgZm9yIHRhYmxlIGluIFtzZWxmLkNvbW1pdEJ5UmVm
LCBzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5n
LCBzZWxmLkJyYW5jaGVzXToKICAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRyYS5jcmVhdGVf
dGFibGUodGFibGUpCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtMTM1LDEwICsxMDAs
MTAgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAg
IGRlZiB0aW1lc3RhbXBfdG9fdXVpZChjbHMsIHRpbWVzdGFtcD1Ob25lKToKICAgICAgICAgaWYg
dGltZXN0YW1wIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gaW50KHRpbWUudGltZSgpKSAq
IENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSCisgICAgICAgICAgICByZXR1cm4g
aW50KHRpbWUudGltZSgpKSAqIENvbW1pdC5VVUlEX01VTFRJUExJRVIKICAgICAgICAgZWxpZiBp
c2luc3RhbmNlKHRpbWVzdGFtcCwgZGF0ZXRpbWUpOgotICAgICAgICAgICAgcmV0dXJuIGNhbGVu
ZGFyLnRpbWVnbSh0aW1lc3RhbXAudGltZXR1cGxlKCkpICogQ29tbWl0LlRJTUVTVEFNUF9UT19V
VUlEX01VTFRJUExJRVIKLSAgICAgICAgcmV0dXJuIGludCh0aW1lc3RhbXApICogQ29tbWl0LlRJ
TUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhci50
aW1lZ20odGltZXN0YW1wLnRpbWV0dXBsZSgpKSAqIENvbW1pdC5VVUlEX01VTFRJUExJRVIKKyAg
ICAgICAgcmV0dXJuIGludCh0aW1lc3RhbXApICogQ29tbWl0LlVVSURfTVVMVElQTElFUgogCiAg
ICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNvbnZlcnRfdG9fdXVpZChjbHMsIHZhbHVlLCBkZWZh
dWx0PTApOgpAQCAtMTYwLDcgKzEyNSw3IEBAIGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToK
ICAgICAgICAgIyB0aGlzIGNhc2UsIHRyYWNrIGJyYW5jaGVzIHdoaWNoIGFyZSBub3QgdGhlIGRl
ZmF1bHQgYnJhbmNoIGluZGVwZW5kZW50bHkuCiAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0
czoKICAgICAgICAgICAgIHJlcG8gPSBzZWxmLnJlcG9zaXRvcmllcy5nZXQoY29tbWl0LnJlcG9z
aXRvcnlfaWQsIFJlcG9zaXRvcnkoa2V5PWNvbW1pdC5yZXBvc2l0b3J5X2lkKSkKLSAgICAgICAg
ICAgIGlmIGNvbW1pdC5icmFuY2ggIT0gcmVwby5kZWZhdWx0X2JyYW5jaDoKKyAgICAgICAgICAg
IGlmIGNvbW1pdC5icmFuY2ggbm90IGluIFNjbUJhc2UuREVGQVVMVF9CUkFOQ0hFUzoKICAgICAg
ICAgICAgICAgICBicmFuY2hlcy5hZGQoY29tbWl0LmJyYW5jaCkKICAgICAgICAgaWYgbGVuKGJy
YW5jaGVzKSA9PSAwOgogICAgICAgICAgICAgYnJhbmNoZXMuYWRkKHNlbGYuREVGQVVMVF9CUkFO
Q0hfS0VZKQpAQCAtMTg0LDQ2ICsxNDksMjcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3Qp
OgogICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7UmVwb3NpdG9y
eX0sIGdvdCB7dHlwZShyZXBvc2l0b3J5KX0nKQogICAgICAgICBzZWxmLnJlcG9zaXRvcmllc1ty
ZXBvc2l0b3J5LmtleV0gPSByZXBvc2l0b3J5CiAKLSAgICBkZWYgZmluZF9jb21taXRzX2J5X2lk
KHNlbGYsIHJlcG9zaXRvcnlfaWQsIGJyYW5jaCwgY29tbWl0X2lkLCBsaW1pdD0xMDApOgotICAg
ICAgICBpZiBicmFuY2ggaXMgTm9uZToKLSAgICAgICAgICAgIGJyYW5jaCA9IHNlbGYucmVwb3Np
dG9yaWVzW3JlcG9zaXRvcnlfaWRdLmRlZmF1bHRfYnJhbmNoCi0KLSAgICAgICAgZGVmIGNhbGxi
YWNrKGNvbW1pdF9pZD1jb21taXRfaWQpOgorICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlfcmVmKHNl
bGYsIHJlcG9zaXRvcnlfaWQsIHJlZiwgbGltaXQ9MTAwKToKKyAgICAgICAgZGVmIGNhbGxiYWNr
KHJlZj1yZWYpOgogICAgICAgICAgICAgd2l0aCBzZWxmOgotICAgICAgICAgICAgICAgIGlmIGlz
aW5zdGFuY2UoY29tbWl0X2lkLCBpbnQpIG9yIGNvbW1pdF9pZC5pc2RpZ2l0KCk6CisgICAgICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShyZWYsIGludCkgb3IgcmVmLmlzZGlnaXQoKToKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIFttb2RlbC50b19jb21taXQoKSBmb3IgbW9kZWwgaW4gc2Vs
Zi5jYXNzYW5kcmEuc2VsZWN0X2Zyb21fdGFibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLkNvbW1pdEJ5SUQuX190YWJsZV9uYW1lX18sIGxpbWl0PWxpbWl0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLCBj
b21taXRfaWQ9c3RyKGNvbW1pdF9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNv
bW1pdEJ5UmVmLl9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcG9zaXRvcnlfaWQ9cmVwb3NpdG9yeV9pZCwgcmVmPSdye30nLmZvcm1hdChyZWYp
LAogICAgICAgICAgICAgICAgICAgICApXQogCiAgICAgICAgICAgICAgICAgIyBGSVhNRTogU0FT
SSBpbmRlY2llcyBhcmUgdGhlIGNhbm9pY2FsIHdheSB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJ1
dCByZXF1aXJlIENhc3NhbmRyYSAzLjQgd2hpY2gKICAgICAgICAgICAgICAgICAjIGhhc24ndCBi
ZWVuIGRlcGxveWVkIHRvIG91ciBkYXRhY2VudGVycyB5ZXQuIFRoaXMgd29ya3MgZm9yIGNvbW1p
dHMsIGJ1dCBpcyBsZXNzIHRyYW5zcGFyZW50LgogICAgICAgICAgICAgICAgIHJldHVybiBbbW9k
ZWwudG9fY29tbWl0KCkgZm9yIG1vZGVsIGluIHNlbGYuY2Fzc2FuZHJhLnNlbGVjdF9mcm9tX3Rh
YmxlKAotICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5SUQuX190YWJsZV9uYW1lX18s
IGxpbWl0PWxpbWl0LAotICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPXJlcG9zaXRv
cnlfaWQsIGJyYW5jaD1icmFuY2gsIGNvbW1pdF9pZF9fZ3RlPWNvbW1pdF9pZC5sb3dlcigpLCBj
b21taXRfaWRfX2x0ZT0oY29tbWl0X2lkLmxvd2VyKCkgKyAnZycpLAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKKyAgICAg
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCByZWZfX2d0ZT1yZWYu
bG93ZXIoKSwgcmVmX19sdGU9KHJlZi5sb3dlcigpICsgJ2cnKSwKICAgICAgICAgICAgICAgICAp
XQogCiAgICAgICAgIHJldHVybiBzZWxmLnJ1bl9mdW5jdGlvbl90aHJvdWdoX3JlZGlzX2NhY2hl
KAotICAgICAgICAgICAgZidyZXBvc2l0b3J5X2lkPXtyZXBvc2l0b3J5X2lkfTpicmFuY2g9e2Jy
YW5jaH06Y29tbWl0X2lkPXtzdHIoY29tbWl0X2lkKS5sb3dlcigpfScsCisgICAgICAgICAgICBm
J3JlcG9zaXRvcnlfaWQ9e3JlcG9zaXRvcnlfaWR9OnJlZj17c3RyKHJlZikubG93ZXIoKX0nLAog
ICAgICAgICAgICAgY2FsbGJhY2ssCiAgICAgICAgICkKIAotICAgIGRlZiBmaW5kX2NvbW1pdHNf
YnlfcmVmKHNlbGYsIHJlcG9zaXRvcnlfaWQsIHJlZiwgbGltaXQ9MTAwKToKLSAgICAgICAgIyBG
SVhNRTogU2hvdWxkIHVzZSB0aGUgcmVkaXMgY2FjaGUsIGJ1dCB0aGUgcmVkaXMgY2FjaGUgZG9l
c24ndCBzdXBwb3J0IG5ldy1zdHlsZSBjb21taXRzIHlldAotICAgICAgICB3aXRoIHNlbGY6Ci0g
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlZiwgaW50KSBvciByZWYuaXNkaWdpdCgpOgotICAg
ICAgICAgICAgICAgIHJldHVybiBbbW9kZWwudG9fY29tbWl0KCkgZm9yIG1vZGVsIGluIHNlbGYu
Y2Fzc2FuZHJhLnNlbGVjdF9mcm9tX3RhYmxlKAotICAgICAgICAgICAgICAgICAgICBzZWxmLkNv
bW1pdEJ5UmVmLl9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICAg
ICAgcmVwb3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCByZWY9J3J7fScuZm9ybWF0KHJlZiksCi0g
ICAgICAgICAgICAgICAgKV0KLQotICAgICAgICAgICAgIyBGSVhNRTogU0FTSSBpbmRlY2llcyBh
cmUgdGhlIGNhbm9pY2FsIHdheSB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJ1dCByZXF1aXJlIENh
c3NhbmRyYSAzLjQgd2hpY2gKLSAgICAgICAgICAgICMgaGFzbid0IGJlZW4gZGVwbG95ZWQgdG8g
b3VyIGRhdGFjZW50ZXJzIHlldC4gVGhpcyB3b3JrcyBmb3IgY29tbWl0cywgYnV0IGlzIGxlc3Mg
dHJhbnNwYXJlbnQuCi0gICAgICAgICAgICByZXR1cm4gW21vZGVsLnRvX2NvbW1pdCgpIGZvciBt
b2RlbCBpbiBzZWxmLmNhc3NhbmRyYS5zZWxlY3RfZnJvbV90YWJsZSgKLSAgICAgICAgICAgICAg
ICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAg
ICAgICAgICByZXBvc2l0b3J5X2lkPXJlcG9zaXRvcnlfaWQsIHJlZl9fZ3RlPXJlZi5sb3dlcigp
LCByZWZfX2x0ZT0ocmVmLmxvd2VyKCkgKyAnZycpLAotICAgICAgICAgICAgKV0KLQogICAgIGRl
ZiBmaW5kX2NvbW1pdHNfYnlfdXVpZChzZWxmLCByZXBvc2l0b3J5X2lkLCBicmFuY2gsIHV1aWQs
IGxpbWl0PTEwMCk6CiAgICAgICAgIGlmIGJyYW5jaCBpcyBOb25lOgogICAgICAgICAgICAgYnJh
bmNoID0gc2VsZi5yZXBvc2l0b3JpZXNbcmVwb3NpdG9yeV9pZF0uZGVmYXVsdF9icmFuY2gKQEAg
LTM1OCw5ICszMDQsOSBAQCBjbGFzcyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAg
ICBmb3IgY29tbWl0IGluIGNvbW1pdHM6CiAgICAgICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcl9w
YXJ0aWFsX2NvbW1pdCgKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1jb21taXQu
cmVwb3NpdG9yeV9pZCwKLSAgICAgICAgICAgICAgICAgICAgcmVmPWNvbW1pdC5pZCwKICAgICAg
ICAgICAgICAgICAgICAgcmV2aXNpb249Y29tbWl0LnJldmlzaW9uLAogICAgICAgICAgICAgICAg
ICAgICBoYXNoPWNvbW1pdC5oYXNoLAorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPWNv
bW1pdC5pZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICBmYXN0PUZhbHNlLAogICAgICAg
ICAgICAgICAgICkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtMzcyLDI1ICsz
MTgsMTcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICByZXR1cm4gZGlj
dChzdGF0dXM9J29rJykKIAogICAgIGRlZiByZWdpc3Rlcl9jb21taXQoc2VsZiwgY29tbWl0KToK
LSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBTY21Db21taXQpOgotICAgICAgICAg
ICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7U2NtQ29tbWl0fSwgZ290IHt0eXBl
KGNvbW1pdCl9JykKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgor
ICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290
IHt0eXBlKGNvbW1pdCl9JykKIAogICAgICAgICB3aXRoIHNlbGY6CiAgICAgICAgICAgICBpZiBj
b21taXQucmVwb3NpdG9yeV9pZCBub3QgaW4gc2VsZi5yZXBvc2l0b3JpZXM6CiAgICAgICAgICAg
ICAgICAgc2VsZi5yZXBvc2l0b3JpZXNbY29tbWl0LnJlcG9zaXRvcnlfaWRdID0gUmVwb3NpdG9y
eShrZXk9Y29tbWl0LnJlcG9zaXRvcnlfaWQpCiAKLSAgICAgICAgICAgIGZvciBvbGQgaW4gW3Nl
bGYuQ29tbWl0QnlJRCwgc2VsZi5Db21taXRCeVV1aWRBc2NlbmRpbmcsIHNlbGYuQ29tbWl0QnlV
dWlkRGVzY2VuZGluZ106Ci0gICAgICAgICAgICAgICAgc2VsZi5jYXNzYW5kcmEuaW5zZXJ0X3Jv
dygKLSAgICAgICAgICAgICAgICAgICAgb2xkLl9fdGFibGVfbmFtZV9fLAotICAgICAgICAgICAg
ICAgICAgICByZXBvc2l0b3J5X2lkPWNvbW1pdC5yZXBvc2l0b3J5X2lkLAotICAgICAgICAgICAg
ICAgICAgICBicmFuY2g9Y29tbWl0LmJyYW5jaCwKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0
X2lkPXN0cihjb21taXQucmV2aXNpb24pLmxvd2VyKCkgaWYgY29tbWl0LnJldmlzaW9uIGVsc2Ug
Y29tbWl0Lmhhc2gsCi0gICAgICAgICAgICAgICAgICAgIHV1aWQ9Y29tbWl0LnV1aWQsCi0gICAg
ICAgICAgICAgICAgICAgIGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1pdC5h
dXRob3IgZWxzZSBOb25lLAotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNz
YWdlLAotICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIGNvbW1pdC5icmFuY2ggaW4g
U2NtQmFzZS5ERUZBVUxUX0JSQU5DSEVTOgorICAgICAgICAgICAgICAgIGNvbW1pdC5icmFuY2gg
PSBzZWxmLnJlcG9zaXRvcmllc1tjb21taXQucmVwb3NpdG9yeV9pZF0uZGVmYXVsdF9icmFuY2gK
IAotICAgICAgICAgICAgZm9yIHRhYmxlIGluIFtzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZ01r
Miwgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5nTWsyLCBzZWxmLkJyYW5jaGVzXToKKyAgICAg
ICAgICAgIGZvciB0YWJsZSBpbiBbc2VsZi5Db21taXRCeVV1aWRBc2NlbmRpbmcsIHNlbGYuQ29t
bWl0QnlVdWlkRGVzY2VuZGluZ106CiAgICAgICAgICAgICAgICAgc2VsZi5jYXNzYW5kcmEuaW5z
ZXJ0X3JvdygKICAgICAgICAgICAgICAgICAgICAgdGFibGUuX190YWJsZV9uYW1lX18sCiAgICAg
ICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9Y29tbWl0LnJlcG9zaXRvcnlfaWQsCkBAIC0z
OTksNyArMzM3LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAogICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVy
PXN0cihjb21taXQpIGlmIGNvbW1pdC5pZGVudGlmaWVyIGVsc2UgTm9uZSwKICAgICAgICAgICAg
ICAgICAgICAgdXVpZD1jb21taXQudXVpZCwKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0dGVy
PWpzb24uZHVtcHMoY29tbWl0LmF1dGhvciwgY2xzPUNvbnRyaWJ1dG9yLkVuY29kZXIpIGlmIGNv
bW1pdC5hdXRob3IgZWxzZSBOb25lLAorICAgICAgICAgICAgICAgICAgICBwZW9wbGU9anNvbi5k
dW1wcyhjb21taXQuYXV0aG9yLCBjbHM9Q29udHJpYnV0b3IuRW5jb2RlcikgaWYgY29tbWl0LmF1
dGhvciBlbHNlIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3Nh
Z2UsCiAgICAgICAgICAgICAgICAgKQogCkBAIC00MjAsNyArMzU4LDcgQEAgY2xhc3MgQ29tbWl0
Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAog
ICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPXN0cihjb21taXQpIGlmIGNvbW1pdC5pZGVu
dGlmaWVyIGVsc2UgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgdXVpZD1jb21taXQudXVpZCwK
LSAgICAgICAgICAgICAgICAgICAgY29tbWl0dGVyPWpzb24uZHVtcHMoY29tbWl0LmF1dGhvciwg
Y2xzPUNvbnRyaWJ1dG9yLkVuY29kZXIpIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAorICAg
ICAgICAgICAgICAgICAgICBwZW9wbGU9anNvbi5kdW1wcyhjb21taXQuYXV0aG9yLCBjbHM9Q29u
dHJpYnV0b3IuRW5jb2RlcikgaWYgY29tbWl0LmF1dGhvciBlbHNlIE5vbmUsCiAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgKQogCkBA
IC00NDQsMTAgKzM4Miw3IEBAIGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAg
ICAgIHJldHVybiBzZWxmLnJlZ2lzdGVyX2NvbW1pdChjb21taXQpCiAKICAgICBkZWYgdXJsKHNl
bGYsIGNvbW1pdCk6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbW1pdCwgQ29tbWl0KSBh
bmQgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBTY21Db21taXQpOgotICAgICAgICAgICAgcmFpc2Ug
VHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykK
LQogICAgICAgICByZXBvID0gc2VsZi5yZXBvc2l0b3JpZXMuZ2V0KGNvbW1pdC5yZXBvc2l0b3J5
X2lkKQogICAgICAgICBpZiByZXBvOgotICAgICAgICAgICAgcmV0dXJuIHJlcG8udXJsX2Zvcl9j
b21taXQoY29tbWl0LmlkIGlmIGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpIGVsc2UgY29tbWl0
Lmhhc2ggb3IgY29tbWl0LnJldmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuIHJlcG8udXJsX2Zv
cl9jb21taXQoY29tbWl0KQogICAgICAgICByZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2Nv
bnRleHRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dF91bml0dGVzdC5weQppbmRleCBjYzQ0MmVm
NzA4YTNmZDM1NzlkYWY4N2RjNjJhM2JlZjQxODA5YzMyLi5jNmUxZTJiMTgzYTJiMjI1NDU4Y2Q3
YzEzODRkOWUxYTUzZDdjZWMyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dF91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2Rl
bC9jb21taXRfY29udGV4dF91bml0dGVzdC5weQpAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBDb21t
aXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAg
ICBmb3IgYnJhbmNoLCBjb21taXRzIGluIHJlcG9zaXRvcnkuY29tbWl0cy5pdGVtcygpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRzOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UucmVnaXN0ZXJfcGFydGlhbF9jb21taXQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgcmVmPWNvbW1pdC5oYXNoIG9yIGNv
bW1pdC5yZXZpc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCBoYXNo
PWNvbW1pdC5oYXNoLCByZXZpc2lvbj1jb21taXQucmV2aXNpb24sIGZhc3Q9RmFsc2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5t
b2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5k
cmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBAIC03MCwxNSArNzAsMTUgQEAgY2xhc3MgQ29tbWl0
Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRk
X2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQo
aWQ9J2Q4YmNlMjZmYTY1YycpXSwKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRf
Y29tbWl0c19ieV9pZChyZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21haW4nLCBjb21t
aXRfaWQ9J2Q4YmNlMjZmYTY1YycpLAorICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj0nZDhiY2UyNmZhNjVjJyldLAorICAgICAgICAgICAgICAgIHNlbGYu
ZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3JlZihyZXBvc2l0b3J5X2lkPSdzYWZhcmknLCByZWY9
J2Q4YmNlMjZmYTY1YycpLAogICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAotICAgICAgICAgICAgICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3Jf
aWQoaWQ9NildLAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5
X2lkKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCBjb21taXRfaWQ9Niks
CisgICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KV0sCisg
ICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRv
cnlfaWQ9J3dlYmtpdCcsIHJlZj02KSwKICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMCwgbGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lkKHJlcG9z
aXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCBjb21taXRfaWQ9JzEyMzQnKSkpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihzZWxmLmRhdGFiYXNlLmZpbmRfY29t
bWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgcmVmPScxMjM0JykpKQogCiAgICAg
QFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VT
dHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCiAgICAgZGVm
IHRlc3RfY29tbWl0X2J5X3V1aWQoc2VsZiwgcmVkaXM9U3RyaWN0UmVkaXMsIGNhc3NhbmRyYT1D
YXNzYW5kcmFDb250ZXh0KToKQEAgLTg3LDEyICs4NywxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0
VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2Nv
bW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nMWFi
ZTI1YjQ0M2U5JyldLAorICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29t
bWl0KHJlZj0nMWFiZTI1YjQ0M2U5JyldLAogICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uu
ZmluZF9jb21taXRzX2J5X3V1aWQocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWlu
JywgdXVpZD0xNjAxNjYzMDAwMDApLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRf
Zm9yX2lkKGlkPTYpXSwKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0
c19ieV91dWlkKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCB1dWlkPTE2
MDE2Mzk5MDAwMCksCisgICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0
KHJlZj02KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlf
dXVpZChyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9J21haW4nLCB1dWlkPTE2MDE2Mzk5
MDAwMCksCiAgICAgICAgICAgICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tf
aWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1N
b2NrQ2Fzc2FuZHJhQ29udGV4dCkKQEAgLTEwMiwxMiArMTAyLDEyIEBAIGNsYXNzIENvbW1pdENv
bnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFkZF9h
bGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlk
PScxYWJlMjViNDQzZTknKV0sCisgICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXQocmVmPScxYWJlMjViNDQzZTknKV0sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRh
YmFzZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0YW1wKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJy
YW5jaD0nbWFpbicsIHRpbWVzdGFtcD0xNjAxNjYzMDAwKSwKICAgICAgICAgICAgICkKICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9z
aXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV0sCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFz
ZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0YW1wKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5j
aD0ndHJ1bmsnLCB0aW1lc3RhbXA9MTYwMTYzOTkwMCksCisgICAgICAgICAgICAgICAgW3NlbGYu
c3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRh
YmFzZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0YW1wKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJy
YW5jaD0nbWFpbicsIHRpbWVzdGFtcD0xNjAxNjM5OTAwKSwKICAgICAgICAgICAgICkKICAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRz
X2J5X3RpbWVzdGFtcChyZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21haW4nLCB0aW1l
c3RhbXA9MTYwMTY2ODAwMCkpKQogCkBAIC0xMTgsNyArMTE4LDcgQEAgY2xhc3MgQ29tbWl0Q29u
dGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2Fs
bF9jb21taXRzX3RvX2RhdGFiYXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwg
bGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3Nh
ZmFyaScsIGJyYW5jaD0nbWFpbicpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdk
OGJjZTI2ZmE2NWMnKSwgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Jh
ZTVkMWU5MDk5OScpXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNv
bW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpLCBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJl
Zj0nYmFlNWQxZTkwOTk5JyldLAogICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9j
b21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGxp
bWl0PTIpLAogICAgICAgICAgICAgKQogCkBAIC0xMjcsMTAgKzEyNywxMCBAQCBjbGFzcyBDb21t
aXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICB3aXRoIE1vY2tN
b2RlbEZhY3Rvcnkuc2FmYXJpKCksIE1vY2tNb2RlbEZhY3Rvcnkud2Via2l0KCk6CiAgICAgICAg
ICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVkaXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEp
CiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19p
bl9yYW5nZShyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9J3RydW5rJykpKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBsZW4oc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNf
aW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJykpKQogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3Np
dG9yeS5jb21taXRfZm9yX2lkKGlkPTYpLCBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3Jf
aWQoaWQ9NCldLAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2lu
X3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCBsaW1pdD0yKSwK
KyAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBzZWxm
LnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NCldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0
YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5j
aD0nbWFpbicsIGxpbWl0PTIpLAogICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJU
ZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9j
a19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBAIC0xMzksNyArMTM5LDcgQEAgY2xh
c3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAg
IHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1yZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAg
ICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXRfZm9yX2lkKGlkPSdiYWU1ZDFlOTA5OTknKSwgc2VsZi5zdGFzaF9yZXBvc2l0b3J5
LmNvbW1pdF9mb3JfaWQoaWQ9JzFhYmUyNWI0NDNlOScpXSwKKyAgICAgICAgICAgICAgICBbc2Vs
Zi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpLCBzZWxmLnN0YXNo
X3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nMWFiZTI1YjQ0M2U5JyldLAogICAgICAgICAgICAgICAg
IHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFy
aScsIGJyYW5jaD0nbWFpbicsIGJlZ2luPTE2MDE2NjMwMDAsIGVuZD0xNjAxNjY4MDAwKSwKICAg
ICAgICAgICAgICkKIApAQCAtMTQ5LDggKzE0OSw4IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0
KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2Uo
cmVkaXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEpCiAgICAgICAgICAgICBzZWxmLmFkZF9h
bGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9Niks
IHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD00KV0sCi0gICAgICAgICAgICAg
ICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Vi
a2l0JywgYnJhbmNoPSd0cnVuaycsIGJlZ2luPTE2MDE2Mzc5MDAsIGVuZD0xNjAxNjM5OTAwKSwK
KyAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBzZWxm
LnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NCldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0
YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5j
aD0nbWFpbicsIGJlZ2luPTE2MDE2Mzc5MDAsIGVuZD0xNjAxNjM5OTAwKSwKICAgICAgICAgICAg
ICkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19y
ZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0
KQpAQCAtMTYwLDkgKzE2MCw5IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2Nr
ZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFz
ZSgpCiAKICAgICAgICAgICAgIGNvbW1pdHMgPSBbCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFz
aF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzFhYmUyNWI0NDNlOScpLAotICAgICAgICAg
ICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdmZmY4M2JiMmQ5
MTcnKSwKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9p
ZChpZD0nOWI4MzExZjI1YTc3JyksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0
b3J5LmNvbW1pdChyZWY9JzFhYmUyNWI0NDNlOScpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rh
c2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdmZmY4M2JiMmQ5MTcnKSwKKyAgICAgICAgICAgICAg
ICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nOWI4MzExZjI1YTc3JyksCiAgICAg
ICAgICAgICBdCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHMsIHNlbGYuZGF0
YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5j
aD0nbWFpbicsICBiZWdpbj1jb21taXRzWy0xXSwgZW5kPWNvbW1pdHNbMF0pKQogCkBAIC0xNzMs
MzAgKzE3MywzMCBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENh
c2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAg
ICAgICAgICAgICBjb21taXRzID0gWwotICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRv
cnkuY29tbWl0X2Zvcl9pZChpZD02KSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0
b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NCksCi0gICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3Np
dG9yeS5jb21taXRfZm9yX2lkKGlkPTIpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj02KSwKKyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5
LmNvbW1pdChyZWY9NCksCisgICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21t
aXQocmVmPTIpLAogICAgICAgICAgICAgXQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21taXRzLCBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19pbl9yYW5nZShyZXBvc2l0b3J5X2lk
PSd3ZWJraXQnLCBicmFuY2g9J3RydW5rJywgYmVnaW49Y29tbWl0c1stMV0sIGVuZD1jb21taXRz
WzBdKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0cywgc2VsZi5kYXRhYmFz
ZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdt
YWluJywgYmVnaW49Y29tbWl0c1stMV0sIGVuZD1jb21taXRzWzBdKSkKIAogICAgIEBXYWl0Rm9y
RG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVk
aXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQogICAgIGRlZiB0ZXN0X2Nv
bW1pdF9mcm9tX3N0YXNoX3JlcG8oc2VsZiwgcmVkaXM9U3RyaWN0UmVkaXMsIGNhc3NhbmRyYT1D
YXNzYW5kcmFDb250ZXh0KToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5LnNhZmFyaSgp
LCBNb2NrTW9kZWxGYWN0b3J5LndlYmtpdCgpOgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFi
YXNlKHJlZGlzPXJlZGlzLCBjYXNzYW5kcmE9Y2Fzc2FuZHJhKQotICAgICAgICAgICAgc2VsZi5k
YXRhYmFzZS5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgnc2FmYXJpJywgaGFzaD0nZDhiY2UyNmZh
NjVjJykKKyAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UucmVnaXN0ZXJfcGFydGlhbF9jb21taXQo
J3NhZmFyaScsIGhhc2g9J2Q4YmNlMjZmYTY1YycsIGZhc3Q9RmFsc2UpCiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnku
Y29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJyldLAotICAgICAgICAgICAgICAgIHNlbGYu
ZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5j
aD0nbWFpbicsIGNvbW1pdF9pZD0nZDhiY2UyNmZhNjVjJyksCisgICAgICAgICAgICAgICAgW3Nl
bGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKV0sCisgICAgICAg
ICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnlfaWQ9
J3NhZmFyaScsIHJlZj0nZDhiY2UyNmZhNjVjJyksCiAgICAgICAgICAgICApCiAKICAgICBAV2Fp
dEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmlj
dFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKICAgICBkZWYgdGVz
dF9jb21taXRfZnJvbV9zdm5fcmVwbyhzZWxmLCByZWRpcz1TdHJpY3RSZWRpcywgY2Fzc2FuZHJh
PUNhc3NhbmRyYUNvbnRleHQpOgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJp
KCksIE1vY2tNb2RlbEZhY3Rvcnkud2Via2l0KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0
YWJhc2UocmVkaXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEpCi0gICAgICAgICAgICBzZWxm
LmRhdGFiYXNlLnJlZ2lzdGVyX3BhcnRpYWxfY29tbWl0KCd3ZWJraXQnLCByZXZpc2lvbj02KQor
ICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgnd2Via2l0
JywgcmV2aXNpb249NiwgZmFzdD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02
KV0sCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfaWQocmVw
b3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVuaycsIGNvbW1pdF9pZD02KSwKKyAgICAg
ICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpXSwKKyAgICAgICAg
ICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0n
d2Via2l0JywgcmVmPTYpLAogICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0
Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19j
YXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBAIC0yMDYsNyArMjA2LDcgQEAgY2xhc3Mg
Q29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNl
bGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10sIHNlbGYuZGF0YWJhc2UuYnJh
bmNoZXMocmVwb3NpdG9yeV9pZD0nc2FmYXJpJykpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgICAgIFsnYnJhbmNoLWEnLCAnYnJhbmNoLWInLCAndGFncy90YWct
MScsICd0YWdzL3RhZy0yJywgJ3RydW5rJ10sCisgICAgICAgICAgICAgICAgWydicmFuY2gtYScs
ICdicmFuY2gtYicsICdtYWluJ10sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5icmFu
Y2hlcyhyZXBvc2l0b3J5X2lkPSd3ZWJraXQnKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoWydicmFuY2gtYScsICdicmFuY2gtYiddLCBzZWxmLmRhdGFiYXNl
LmJyYW5jaGVzKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nYnJhbmNoJykpCkBAIC0y
MTksMTIgKzIxOSwxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVz
dENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQog
CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuZGF0
YWJhc2UubmV4dF9jb21taXQoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTQp
KSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9
NiksCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5uZXh0X2NvbW1pdChzZWxmLnN2bl9y
ZXBvc2l0b3J5LmNvbW1pdChyZWY9NCkpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj02KSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5uZXh0X2NvbW1pdChzZWxm
LnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5JykpLAotICAg
ICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJj
ZTI2ZmE2NWMnKSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLm5leHRfY29tbWl0KHNl
bGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdiYWU1ZDFlOTA5OTknKSksCisgICAgICAg
ICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1Yycp
LAogICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25v
X2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nh
c3NhbmRyYUNvbnRleHQpCkBAIC0yMzQsMTIgKzIzNCwxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0
VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2Nv
bW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD00KSwKLSAg
ICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnByZXZpb3VzX2NvbW1pdChzZWxmLnN2bl9yZXBv
c2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NikpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3Jl
cG9zaXRvcnkuY29tbWl0KHJlZj00KSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnBy
ZXZpb3VzX2NvbW1pdChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NikpLAogICAgICAg
ICAgICAgKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBz
ZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5JyksCi0g
ICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5wcmV2aW91c19jb21taXQoc2VsZi5zdGFzaF9y
ZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Q4YmNlMjZmYTY1YycpKSwKKyAgICAgICAgICAg
ICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyksCisg
ICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5wcmV2aW91c19jb21taXQoc2VsZi5zdGFzaF9y
ZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpKSwKICAgICAgICAgICAgICkKIAog
ICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1G
YWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQpAQCAt
MjUwLDIyICsyNTAsMjEgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRl
c3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkK
IAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLmRh
dGFiYXNlLnNpYmxpbmdfY29tbWl0cyhzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQo
aWQ9NiksIFsnc2FmYXJpJ10pLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uuc2libGlu
Z19jb21taXRzKHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSwgWydzYWZhcmknXSks
CiAgICAgICAgICAgICAgICAgeydzYWZhcmknOiBbCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
c3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Jh
ZTVkMWU5MDk5OScpLAotICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnku
Y29tbWl0X2Zvcl9pZChpZD0nMWFiZTI1YjQ0M2U5JyksCi0gICAgICAgICAgICAgICAgICAgIHNl
bGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdmZmY4M2JiMmQ5MTcnKSwKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9
JzliODMxMWYyNWE3NycpLAotCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3Np
dG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKSwKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpLAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nMWFiZTI1YjQ0M2U5
JyksCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVm
PSdmZmY4M2JiMmQ5MTcnKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0
b3J5LmNvbW1pdChyZWY9JzliODMxMWYyNWE3NycpLAogICAgICAgICAgICAgICAgIF19LAogICAg
ICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICBzZWxmLmRhdGFiYXNlLnNpYmxpbmdfY29tbWl0cyhzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29t
bWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJyksIFsnd2Via2l0J10pLAotICAgICAgICAgICAg
ICAgIHsnd2Via2l0JzogW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV19
LAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3Rh
c2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKSwgWyd3ZWJraXQnXSksCisg
ICAgICAgICAgICAgICAgeyd3ZWJraXQnOiBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVm
PTYpXX0sCiAgICAgICAgICAgICApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3ZuX3JlcG9z
aXRvcnkuY29tbWl0X2Zvcl9pZChpZD0xKSwgWydzYWZhcmknXSksCisgICAgICAgICAgICAgICAg
c2VsZi5kYXRhYmFzZS5zaWJsaW5nX2NvbW1pdHMoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQo
cmVmPTEpLCBbJ3NhZmFyaSddKSwKICAgICAgICAgICAgICAgICB7J3NhZmFyaSc6IFtdfSwKICAg
ICAgICAgICAgICkKIApAQCAtMjc0LDggKzI3Myw4IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0
KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgIHdpdGggTW9ja01vZGVsRmFjdG9yeS5z
YWZhcmkoKSwgTW9ja01vZGVsRmFjdG9yeS53ZWJraXQoKToKICAgICAgICAgICAgIHNlbGYuaW5p
dF9kYXRhYmFzZShyZWRpcz1yZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAg
IHV1aWQgPSBDb21taXRDb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMoWwotICAgICAgICAgICAgICAg
IHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdiYWU1ZDFlOTA5OTknKSwK
LSAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9Niks
CisgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2JhZTVk
MWU5MDk5OScpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJl
Zj02KSwKICAgICAgICAgICAgIF0pCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV1aWQs
IDE2MDE2NjgwMDAwMCkKIApAQCAtMjg0LDIwICsyODMsMjAgQEAgY2xhc3MgQ29tbWl0Q29udGV4
dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0
b3J5LnNhZmFyaSgpLCBNb2NrTW9kZWxGYWN0b3J5LndlYmtpdCgpOgogICAgICAgICAgICAgc2Vs
Zi5pbml0X2RhdGFiYXNlKHJlZGlzPXJlZGlzLCBjYXNzYW5kcmE9Y2Fzc2FuZHJhKQogICAgICAg
ICAgICAgYnJhbmNoZXMgPSBzZWxmLmRhdGFiYXNlLmJyYW5jaF9rZXlzX2Zvcl9jb21taXRzKFsK
LSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0n
ZDhiY2UyNmZhNjVjJyksCi0gICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21t
aXRfZm9yX2lkKGlkPTYpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5j
b21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBv
c2l0b3J5LmNvbW1pdChyZWY9NiksCiAgICAgICAgICAgICBdKQogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChicmFuY2hlcywgWydkZWZhdWx0J10pCiAKICAgICAgICAgICAgIGJyYW5jaGVz
ID0gc2VsZi5kYXRhYmFzZS5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhbCi0gICAgICAgICAgICAg
ICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzYyMTY1MmFkZDdmYycp
LAotICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD03
KSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nNjIx
NjUyYWRkN2ZjJyksCisgICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQo
cmVmPTcpLAogICAgICAgICAgICAgXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnJh
bmNoZXMsIFsnYnJhbmNoLWEnXSkKIAogICAgICAgICAgICAgYnJhbmNoZXMgPSBzZWxmLmRhdGFi
YXNlLmJyYW5jaF9rZXlzX2Zvcl9jb21taXRzKFsKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNo
X3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nNzkwNzI1YTZkNzllJyksCi0gICAgICAgICAg
ICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTgpLAorICAgICAgICAg
ICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSc3OTA3MjVhNmQ3OWUnKSwK
KyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9OCksCiAgICAg
ICAgICAgICBdKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChicmFuY2hlcywgWydicmFu
Y2gtYiddKQogCkBAIC0zMDcsOSArMzA2LDkgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2Fp
dEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRp
cz1yZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCiAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vYml0YnVja2V0LmV4YW1wbGUuY29tL3Byb2pl
Y3RzL1NBRkFSSS9yZXBvcy9zYWZhcmkvY29tbWl0cy9kOGJjZTI2ZmE2NWM2ZmM4ZjM5YzE3OTI3
YWJiNzdmNjlmYWI4MmZjJywKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnVybChzZWxm
LnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJykpLAorICAg
ICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UudXJsKHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21t
aXQocmVmPSdkOGJjZTI2ZmE2NWMnKSksCiAgICAgICAgICAgICApCiAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICdodHRwczovL2NvbW1pdHMud2Via2l0Lm9y
Zy9yNicsCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS51cmwoc2VsZi5zdm5fcmVwb3Np
dG9yeS5jb21taXRfZm9yX2lkKGlkPTYpKSwKKyAgICAgICAgICAgICAgICAnaHR0cHM6Ly9jb21t
aXRzLndlYmtpdC5vcmcvNEBtYWluJywKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnVy
bChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NikpLAogICAgICAgICAgICAgKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvZmFpbHVyZV9jb250ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvZmFpbHVyZV9jb250ZXh0LnB5CmluZGV4IDFkZDFjYzM1
ZDk1YmJiZmE3OGM5Y2U0OGFiN2U4MDhlMzcxMDlkNTkuLjMwYTY0NzA3YjhhODM0MjYzNDJhNTc2
MjRmNzg5NDljMjVmZTU3OTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2ZhaWx1cmVfY29udGV4dC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9mYWlsdXJl
X2NvbnRleHQucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjEsMTggKzIxLDE2IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBjYWxlbmRhcgotaW1w
b3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNvbgogaW1wb3J0IHRpbWUKIAogZnJvbSBjYXNzYW5k
cmEuY3FsZW5naW5lIGltcG9ydCBjb2x1bW5zCi1mcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUubW9k
ZWxzIGltcG9ydCBNb2RlbAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVz
dWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJw
eS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRz
ZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmln
dXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBs
b2FkQ2FsbGJhY2tDb250ZXh0CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLnRlc3RfY29udGV4dCBp
bXBvcnQgRXhwZWN0YXRpb25zCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBj
bGFzcyBGYWlsdXJlQ29udGV4dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgpAQCAtOTUsNyArOTMs
NyBAQCBjbGFzcyBGYWlsdXJlQ29udGV4dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgogCiAgICAg
ICAgICAgICB3aXRoIHNlbGY6CiAgICAgICAgICAgICAgICAgdXVpZCA9IHNlbGYuY29tbWl0X2Nv
bnRleHQudXVpZF9mb3JfY29tbWl0cyhjb21taXRzKQotICAgICAgICAgICAgICAgIHR0bCA9IGlu
dCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0
bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCisg
ICAgICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIp
ICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVs
c2UgTm9uZQogCiAgICAgICAgICAgICAgICAgZGVmIGNhbGxiYWNrKHRlc3QsIHJlc3VsdCwgZmFp
bHVyZXMsIHVuZXhwZWN0ZWQpOgogICAgICAgICAgICAgICAgICAgICBmYWlsZWRfcmVzdWx0ID0g
RXhwZWN0YXRpb25zLnN0cmluZ190b19zdGF0ZV9pZHMocmVzdWx0LmdldCgnYWN0dWFsJywgJycp
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvbW9kZWwvbW9ja19tb2RlbF9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvbW9ja19tb2RlbF9mYWN0b3J5LnB5Cmlu
ZGV4IDEwNDQzNGEzNTk4MGVjY2VkY2FlNmJhZTE4ZWVhMTc0YTI1OTZkNzkuLmU4ODY0ODBkMjAz
ZjY0YjYxYzA2N2MyZjI2ZWNkMGY5M2E3ODUzOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL21vY2tfbW9kZWxfZmFjdG9y
eS5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9tb2RlbC9tb2NrX21vZGVsX2ZhY3RvcnkucHkKQEAgLTIxLDYgKzIxLDcgQEAKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAogaW1wb3J0IGJhc2U2NAoraW1wb3J0IGNvbnRleHRsaWIKIGltcG9ydCBpbwogaW1w
b3J0IHRpbWUKIApAQCAtMjksNyArMzAsNyBAQCBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNvbmZp
Z3VyYXRpb25fY29udGV4dF91bml0dGVzdCBpbXBvcnQgQ29uZmlndXJhdGlvbkNvbnRleAogZnJv
bSByZXN1bHRzZGJweS5tb2RlbC5tb2RlbCBpbXBvcnQgTW9kZWwKIGZyb20gcmVzdWx0c2RicHku
bW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU3Rhc2hSZXBvc2l0b3J5LCBXZWJLaXRSZXBvc2l0b3J5
CiAKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IG1vY2tzCitmcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBtb2NrcywgQ29tbWl0CiAKIAogY2xhc3MgTW9ja01vZGVsRmFjdG9yeShvYmplY3QpOgpAQCAt
NjUsMTYgKzY2LDQ0IEBAIGNsYXNzIE1vY2tNb2RlbEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAg
cmV0dXJuIG1vY2tzLnJlbW90ZS5CaXRCdWNrZXQocmVtb3RlPSdiaXRidWNrZXQuZXhhbXBsZS5j
b20vcHJvamVjdHMvU0FGQVJJL3JlcG9zL3NhZmFyaScpCiAKICAgICBAY2xhc3NtZXRob2QKKyAg
ICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgogICAgIGRlZiB3ZWJraXQoY2xzKToKLSAgICAg
ICAgcmV0dXJuIG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPSdzdm4ud2Via2l0Lm9yZy9yZXBvc2l0
b3J5L3dlYmtpdCcpCisgICAgICAgIHN2biA9IG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPSdzdm4u
d2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdCcpCisgICAgICAgIGdpdGh1YiA9IG1vY2tzLnJl
bW90ZS5HaXRIdWIocmVtb3RlPSdnaXRodWIuY29tL1dlYktpdC9XZWJLaXQnLCBnaXRfc3ZuPVRy
dWUpCisgICAgICAgIGdpdGh1Yi5jb21taXRzID0ge30KKworICAgICAgICBmb3IgYnJhbmNoLCBj
b21taXRzIGluIHN2bi5jb21taXRzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiAndGFnJyBpbiBi
cmFuY2g6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGJyYW5jaCA9
PSAndHJ1bmsnOgorICAgICAgICAgICAgICAgIGJyYW5jaCA9ICdtYWluJworICAgICAgICAgICAg
Z2l0aHViLmNvbW1pdHNbYnJhbmNoXSA9IFtdCisKKyAgICAgICAgICAgIGZvciBjb21taXQgaW4g
Y29tbWl0czoKKyAgICAgICAgICAgICAgICBnaXRodWIuY29tbWl0c1ticmFuY2hdLmFwcGVuZChD
b21taXQoCisgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9Y29tbWl0LnJlcG9zaXRv
cnlfaWQsCisgICAgICAgICAgICAgICAgICAgIGJyYW5jaD1icmFuY2gsCisgICAgICAgICAgICAg
ICAgICAgIGF1dGhvcj1jb21taXQuYXV0aG9yLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PWNvbW1pdC5tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0LnRp
bWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgb3JkZXI9Y29tbWl0Lm9yZGVyLAorICAgICAg
ICAgICAgICAgICAgICBpZGVudGlmaWVyPWNvbW1pdC5pZGVudGlmaWVyLAorICAgICAgICAgICAg
ICAgICAgICBicmFuY2hfcG9pbnQ9Y29tbWl0LmJyYW5jaF9wb2ludCwKKyAgICAgICAgICAgICAg
ICAgICAgcmV2aXNpb249Y29tbWl0LnJldmlzaW9uLAorICAgICAgICAgICAgICAgICAgICBoYXNo
PWNvbW1pdC5oYXNoLAorICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAgd2l0aCBzdm4sIGdp
dGh1YjoKKyAgICAgICAgICAgIHlpZWxkIGdpdGh1YgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGNyZWF0ZShjbHMsIHJlZGlzLCBjYXNzYW5kcmEsIGFzeW5jX3Byb2Nlc3Npbmc9RmFsc2Up
OgogICAgICAgICBvbGRlc3RfY29tbWl0ID0gdGltZS50aW1lKCkKLSAgICAgICAgZm9yIHJlcG8g
aW4gW2Nscy5zYWZhcmkoKSwgY2xzLndlYmtpdCgpXToKLSAgICAgICAgICAgIGZvciBjb21taXRz
IGluIHJlcG8uY29tbWl0cy52YWx1ZXMoKToKLSAgICAgICAgICAgICAgICBmb3IgY29tbWl0IGlu
IGNvbW1pdHM6Ci0gICAgICAgICAgICAgICAgICAgIG9sZGVzdF9jb21taXQgPSBtaW4ob2xkZXN0
X2NvbW1pdCwgY29tbWl0LnRpbWVzdGFtcCkKKyAgICAgICAgd2l0aCBjbHMuc2FmYXJpKCkgYXMg
c2FmYXJpLCBjbHMud2Via2l0KCkgYXMgd2Via2l0OgorICAgICAgICAgICAgZm9yIHJlcG8gaW4g
W3NhZmFyaSwgd2Via2l0XToKKyAgICAgICAgICAgICAgICBmb3IgY29tbWl0cyBpbiByZXBvLmNv
bW1pdHMudmFsdWVzKCk6CisgICAgICAgICAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0
czoKKyAgICAgICAgICAgICAgICAgICAgICAgIG9sZGVzdF9jb21taXQgPSBtaW4ob2xkZXN0X2Nv
bW1pdCwgY29tbWl0LnRpbWVzdGFtcCkKIAogICAgICAgICBtb2RlbCA9IE1vZGVsKAogICAgICAg
ICAgICAgcmVkaXM9cmVkaXMsCkBAIC05Myw3ICsxMjIsNyBAQCBjbGFzcyBNb2NrTW9kZWxGYWN0
b3J5KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGZvciBicmFuY2gsIGNvbW1pdHMgaW4g
cmVwb3NpdG9yeS5jb21taXRzLml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
Y29tbWl0IGluIGNvbW1pdHM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwuY29t
bWl0X2NvbnRleHQucmVnaXN0ZXJfcGFydGlhbF9jb21taXQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleSwgaGFzaD1jb21taXQuaGFzaCwgcmV2aXNpb249Y29tbWl0LnJldmlz
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksIGhhc2g9Y29tbWl0Lmhh
c2gsIHJldmlzaW9uPWNvbW1pdC5yZXZpc2lvbiwgZmFzdD1GYWxzZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApCiAgICAgICAgIHJldHVybiBtb2RlbAogCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0
b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvcmVwb3NpdG9yeS5weQppbmRleCBmN2U0MDA4MzBmZGYzMDc1ZGQ3MGNjMjgxZTE5NDE4
ODkxZWEwNjRkLi43ZTQxNzk0NTNiMjQwZTA3YWNiN2RkOTcxYzA1ZWExZjFlY2VmODUzIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9t
b2RlbC9yZXBvc2l0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRvcnkucHkKQEAgLTIwLDggKzIwLDcgQEAKICMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotZnJvbSByZXN1bHRzZGJweS5j
b250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0Ci1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBy
ZW1vdGUKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IHJlbW90ZSwgQ29tbWl0CiAKIAogY2xhc3Mg
UmVwb3NpdG9yeShvYmplY3QpOgpAQCAtMzAsMTAgKzI5LDcgQEAgY2xhc3MgUmVwb3NpdG9yeShv
YmplY3QpOgogICAgICAgICBzZWxmLmtleSA9IGtleQogICAgICAgICBzZWxmLmRlZmF1bHRfYnJh
bmNoID0gZGVmYXVsdF9icmFuY2ggb3IgJ21haW4nCiAKLSAgICBkZWYgY29tbWl0X2Zvcl9pZChz
ZWxmLCBpZCk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQotCi0gICAgZGVm
IGNvbW1pdChzZWxmLCByZWY9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lLCBpZGVudGlm
aWVyPU5vbmUsIGZhc3Q9VHJ1ZSk6CisgICAgZGVmIGNvbW1pdChzZWxmLCByZWY9Tm9uZSwgcmV2
aXNpb249Tm9uZSwgaGFzaD1Ob25lLCBpZGVudGlmaWVyPU5vbmUsIGZhc3Q9RmFsc2UpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKIAogICAgIGRlZiB1cmxfZm9yX2NvbW1p
dChzZWxmLCBjb21taXQpOgpAQCAtNTIsMTkgKzQ4LDcgQEAgY2xhc3MgU3Rhc2hSZXBvc2l0b3J5
KFJlcG9zaXRvcnkpOgogICAgICAgICAgICAgZGVmYXVsdF9icmFuY2g9ZGVmYXVsdF9icmFuY2gg
b3Igc2VsZi5yZW1vdGUuZGVmYXVsdF9icmFuY2gsCiAgICAgICAgICkKIAotICAgIGRlZiBjb21t
aXRfZm9yX2lkKHNlbGYsIGlkKToKLSAgICAgICAgY29tbWl0ID0gc2VsZi5yZW1vdGUuY29tbWl0
KGhhc2g9aWQsIGluY2x1ZGVfaWRlbnRpZmllcj1GYWxzZSkKLSAgICAgICAgcmV0dXJuIENvbW1p
dCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9c2VsZi5rZXksCi0gICAgICAgICAgICBpZD1j
b21taXQuaGFzaCwKLSAgICAgICAgICAgIGJyYW5jaD1jb21taXQuYnJhbmNoLAotICAgICAgICAg
ICAgdGltZXN0YW1wPWNvbW1pdC50aW1lc3RhbXAsCi0gICAgICAgICAgICBvcmRlcj1jb21taXQu
b3JkZXIsCi0gICAgICAgICAgICBjb21taXR0ZXI9Y29tbWl0LmF1dGhvci5lbWFpbCwKLSAgICAg
ICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3NhZ2UsCi0gICAgICAgICkKLQotICAgIGRlZiBjb21t
aXQoc2VsZiwgcmVmPU5vbmUsIHJldmlzaW9uPU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRpZmllcj1O
b25lLCBmYXN0PVRydWUpOgorICAgIGRlZiBjb21taXQoc2VsZiwgcmVmPU5vbmUsIHJldmlzaW9u
PU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRpZmllcj1Ob25lLCBmYXN0PUZhbHNlKToKICAgICAgICAg
aWYgaWRlbnRpZmllcjoKICAgICAgICAgICAgIGZhc3QgPSBGYWxzZQogICAgICAgICBpZiByZWY6
CkBAIC03Miw3ICs1NiwxMiBAQCBjbGFzcyBTdGFzaFJlcG9zaXRvcnkoUmVwb3NpdG9yeSk6CiAg
ICAgICAgIHJldHVybiBzZWxmLnJlbW90ZS5jb21taXQocmV2aXNpb249cmV2aXNpb24sIGhhc2g9
aGFzaCwgaWRlbnRpZmllcj1pZGVudGlmaWVyLCBpbmNsdWRlX2lkZW50aWZpZXI9bm90IGZhc3Qp
CiAKICAgICBkZWYgdXJsX2Zvcl9jb21taXQoc2VsZiwgY29tbWl0KToKLSAgICAgICAgcmV0dXJu
IGYne3NlbGYucmVtb3RlLnVybH0vY29tbWl0cy97Y29tbWl0fScKKyAgICAgICAgaWYgbm90IGlz
aW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYn
RXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKKworICAgICAgICBp
ZiBjb21taXQuaWRlbnRpZmllciBvciBjb21taXQuaGFzaDoKKyAgICAgICAgICAgIHJldHVybiBm
J3tzZWxmLnJlbW90ZS51cmx9L2NvbW1pdHMve2NvbW1pdC5oYXNofScKKyAgICAgICAgcmV0dXJu
IE5vbmUKIAogICAgIGRlZiByZXByZXNlbnRhdGlvbnMoc2VsZik6CiAgICAgICAgIHJldHVybiBb
J2hhc2gnLCAnaWRlbnRpZmllciddCkBAIC04MSwzNSArNzAsNDcgQEAgY2xhc3MgU3Rhc2hSZXBv
c2l0b3J5KFJlcG9zaXRvcnkpOgogY2xhc3MgV2ViS2l0UmVwb3NpdG9yeShSZXBvc2l0b3J5KToK
IAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5yZW1vdGUgPSByZW1vdGUu
U3ZuKCdodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0JykKKyAgICAgICAg
c2VsZi5zdm4gPSByZW1vdGUuU3ZuKCdodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkv
d2Via2l0JykKKyAgICAgICAgc2VsZi5naXRodWIgPSByZW1vdGUuR2l0SHViKCdodHRwczovL2dp
dGh1Yi5jb20vV2ViS2l0L1dlYktpdCcpCiAgICAgICAgIHN1cGVyKFdlYktpdFJlcG9zaXRvcnks
IHNlbGYpLl9faW5pdF9fKAogICAgICAgICAgICAga2V5PSd3ZWJraXQnLAotICAgICAgICAgICAg
ZGVmYXVsdF9icmFuY2g9c2VsZi5yZW1vdGUuZGVmYXVsdF9icmFuY2gsCi0gICAgICAgICkKLQot
ICAgIGRlZiBjb21taXRfZm9yX2lkKHNlbGYsIGlkKToKLSAgICAgICAgY29tbWl0ID0gc2VsZi5y
ZW1vdGUuY29tbWl0KHJldmlzaW9uPWlkLCBpbmNsdWRlX2lkZW50aWZpZXI9RmFsc2UpCi0gICAg
ICAgIHJldHVybiBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPXNlbGYua2V5LAot
ICAgICAgICAgICAgaWQ9Y29tbWl0LnJldmlzaW9uLAotICAgICAgICAgICAgYnJhbmNoPWNvbW1p
dC5icmFuY2gsCi0gICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCwKLSAgICAg
ICAgICAgIG9yZGVyPWNvbW1pdC5vcmRlciwKLSAgICAgICAgICAgIGNvbW1pdHRlcj1jb21taXQu
YXV0aG9yLmVtYWlsLAotICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwKKyAgICAg
ICAgICAgIGRlZmF1bHRfYnJhbmNoPXNlbGYuZ2l0aHViLmRlZmF1bHRfYnJhbmNoLAogICAgICAg
ICApCiAKLSAgICBkZWYgY29tbWl0KHNlbGYsIHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBoYXNo
PU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFzdD1UcnVlKToKKyAgICBkZWYgY29tbWl0KHNlbGYs
IHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBoYXNoPU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFz
dD1GYWxzZSk6CiAgICAgICAgIGlmIGlkZW50aWZpZXI6CiAgICAgICAgICAgICBmYXN0ID0gRmFs
c2UKKwogICAgICAgICBpZiByZWY6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlZiwgaW50
KSBvciByZWYuaXNkaWdpdCgpOgotICAgICAgICAgICAgICAgIHJlZiA9ICdye30nLmZvcm1hdChy
ZWYpCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5yZW1vdGUuZmluZChyZWYsIGluY2x1ZGVfaWRl
bnRpZmllcj1ub3QgZmFzdCkKLSAgICAgICAgcmV0dXJuIHNlbGYucmVtb3RlLmNvbW1pdChyZXZp
c2lvbj1yZXZpc2lvbiwgaGFzaD1oYXNoLCBpZGVudGlmaWVyPWlkZW50aWZpZXIsIGluY2x1ZGVf
aWRlbnRpZmllcj1ub3QgZmFzdCkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnN2bi5m
aW5kKCdye30nLmZvcm1hdChyZWYpLCBpbmNsdWRlX2lkZW50aWZpZXI9bm90IGZhc3QpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZ2l0aHViLmZpbmQo
cmVmLCBpbmNsdWRlX2lkZW50aWZpZXI9bm90IGZhc3QpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICByZXN1bHQgPSAoc2VsZi5zdm4gaWYgcmV2aXNpb24gYW5kIG5vdCBoYXNoIGVsc2Ugc2Vs
Zi5naXRodWIpLmNvbW1pdCgKKyAgICAgICAgICAgICAgICByZXZpc2lvbj1Ob25lIGlmIGhhc2gg
ZWxzZSByZXZpc2lvbiwKKyAgICAgICAgICAgICAgICBoYXNoPWhhc2gsCisgICAgICAgICAgICAg
ICAgaWRlbnRpZmllcj1Ob25lIGlmIG5vdCBoYXNoIGFuZCBub3QgcmV2aXNpb24gZWxzZSBpZGVu
dGlmaWVyLAorICAgICAgICAgICAgICAgIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCwKKyAg
ICAgICAgICAgICkKKworICAgICAgICBpZiBub3QgZmFzdCBhbmQgcmVzdWx0Lmhhc2ggYW5kIHJl
c3VsdC5pZGVudGlmaWVyOgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5naXRodWIuY29tbWl0
KGlkZW50aWZpZXI9c3RyKHJlc3VsdCkpCisKKyAgICAgICAgaWYgcmVzdWx0LmJyYW5jaCBpbiBz
ZWxmLnN2bi5ERUZBVUxUX0JSQU5DSEVTOgorICAgICAgICAgICAgcmVzdWx0LmJyYW5jaCA9IHNl
bGYuZGVmYXVsdF9icmFuY2gKKyAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHVybF9m
b3JfY29tbWl0KHNlbGYsIGNvbW1pdCk6Ci0gICAgICAgIHJldHVybiBmJ2h0dHBzOi8vY29tbWl0
cy53ZWJraXQub3JnL3J7Y29tbWl0fScKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0
LCBDb21taXQpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7
Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKKworICAgICAgICBpZiBjb21taXQuaWRlbnRp
ZmllciBvciBjb21taXQuaGFzaDoKKyAgICAgICAgICAgIHJldHVybiBmJ2h0dHBzOi8vY29tbWl0
cy53ZWJraXQub3JnL3tjb21taXR9JworICAgICAgICBpZiBjb21taXQucmV2aXNpb246CisgICAg
ICAgICAgICByZXR1cm4gZidodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9ye2NvbW1pdC5yZXZp
c2lvbn0nCisgICAgICAgIHJldHVybiBOb25lCisKIAogICAgIGRlZiByZXByZXNlbnRhdGlvbnMo
c2VsZik6Ci0gICAgICAgIHJldHVybiBbJ2lkZW50aWZpZXInLCAncmV2aXNpb24nXQorICAgICAg
ICByZXR1cm4gWydpZGVudGlmaWVyJywgJ2hhc2gnLCAncmV2aXNpb24nXQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVw
b3NpdG9yeV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRvcnlfdW5pdHRlc3QucHkKaW5kZXggN2NmNmM3YzVm
YmQzMDNkZDZkZDM3OWQzNDRmYWYyMGFkYTgyZWVjNi4uZWQzYzdkNmE4NDVmMWYyNjRlMTMzNzVh
MjAxYmYxNmI4NWRiNjE0MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVwb3NpdG9yeV91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBv
c2l0b3J5X3VuaXR0ZXN0LnB5CkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFJlcG9zaXRvcnlUZXN0
KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBjb21taXQgPSBzdm5fcmVwby5j
b21taXQocmV2aXNpb249NikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnV1
aWQsIDE2MDE2Mzk5MDAwMCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0Lm1l
c3NhZ2UsICc2dGggY29tbWl0JykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0
LmJyYW5jaCwgJ3RydW5rJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJy
YW5jaCwgJ21haW4nKQogCiAgICAgZGVmIHRlc3RfcmVmX3N2bihzZWxmKToKICAgICAgICAgd2l0
aCBNb2NrTW9kZWxGYWN0b3J5LndlYmtpdCgpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weSBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3N1
aXRlX2NvbnRleHQucHkKaW5kZXggMzVlNmE3N2VkNTdjNGNmNjM5NjU1MWYwOWNjMGRhMTNmZTEy
Nzg4My4uNzhlOTAzZWNiODAxM2Y1YzVlMWJlNWQ1ZjA3OWZjYzU4ZmM3MGVjNCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwv
c3VpdGVfY29udGV4dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC9zdWl0ZV9jb250ZXh0LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBD
b3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDExICsyNiwxMSBAQCBpbXBvcnQgdGltZQog
CiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUgaW1wb3J0IGNvbHVtbnMKIGZyb20gZGF0ZXRpbWUg
aW1wb3J0IGRhdGV0aW1lCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9y
dCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29tbWl0X2NvbnRleHQgaW1wb3J0IENv
bW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29uZmlndXJhdGlvbl9jb250ZXh0
IGltcG9ydCBDbHVzdGVyZWRCeUNvbmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0c2RicHkubW9kZWwu
dGVzdF9jb250ZXh0IGltcG9ydCBFeHBlY3RhdGlvbnMKIGZyb20gcmVzdWx0c2RicHkubW9kZWwu
dXBsb2FkX2NvbnRleHQgaW1wb3J0IFVwbG9hZENhbGxiYWNrQ29udGV4dAorZnJvbSB3ZWJraXRz
Y21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgU3VpdGVDb250ZXh0KFVwbG9hZENhbGxiYWNr
Q29udGV4dCk6CkBAIC0xMTYsNyArMTE2LDcgQEAgY2xhc3MgU3VpdGVDb250ZXh0KFVwbG9hZENh
bGxiYWNrQ29udGV4dCk6CiAgICAgICAgICAgICBFeHBlY3RhdGlvbnMuaXRlcmF0ZV90aHJvdWdo
X25lc3RlZF9yZXN1bHRzKHRlc3RfcmVzdWx0cy5nZXQoJ3Jlc3VsdHMnKSwgY2FsbGJhY2spCiAK
ICAgICAgICAgICAgIHV1aWQgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMo
Y29tbWl0cykKLSAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1Q
X1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlm
IHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCisgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQg
Ly8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1l
KCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgIHdpdGggc2Vs
Ziwgc2VsZi5jYXNzYW5kcmEuYmF0Y2hfcXVlcnlfY29udGV4dCgpOgogICAgICAgICAgICAgICAg
IGZvciBicmFuY2ggaW4gc2VsZi5jb21taXRfY29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0
cyhjb21taXRzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L21vZGVsL3Rlc3RfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3Rlc3RfY29udGV4dC5weQppbmRl
eCA4NjI5ZmZlNjFhNzVkNmUxZjk5MDU4MDI1OTM2ZmRiZWNkYzEyNjk5Li5jMmEwMWZmMmMzMWRh
MDM5YTRlZmYzMTJhZDFjYzY1ZDk1ZTBlMGVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC90ZXN0X2NvbnRleHQucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwv
dGVzdF9jb250ZXh0LnB5CkBAIC0yOCwxMCArMjgsMTAgQEAgaW1wb3J0IHRpbWUKIGZyb20gY2Fz
c2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5l
Lm1vZGVscyBpbXBvcnQgTW9kZWwKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9t
IHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0
c2RicHkubW9kZWwuY29tbWl0X2NvbnRleHQgaW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20gcmVz
dWx0c2RicHkubW9kZWwuY29uZmlndXJhdGlvbl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRCeUNv
bmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0c2RicHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1wb3J0
IFVwbG9hZENhbGxiYWNrQ29udGV4dAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAK
IAogY2xhc3MgRXhwZWN0YXRpb25zOgpAQCAtMTU5LDcgKzE1OSw3IEBAIGNsYXNzIFRlc3RDb250
ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CiAKICAgICAgICAgICAgIHdpdGggc2VsZjoKICAg
ICAgICAgICAgICAgICB1dWlkID0gc2VsZi5jb21taXRfY29udGV4dC51dWlkX2Zvcl9jb21taXRz
KGNvbW1pdHMpCi0gICAgICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8vIENvbW1pdC5USU1F
U1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUo
KSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUKKyAgICAgICAgICAgICAgICB0dGwgPSBp
bnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0g
dGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAg
ICAgICBkZWYgY2FsbGJhY2sodGVzdCwgcmVzdWx0LCBicmFuY2gpOgogICAgICAgICAgICAgICAg
ICAgICBzZWxmLmNhc3NhbmRyYS5pbnNlcnRfcm93KHNlbGYuVGVzdE5hbWVCeVN1aXRlLl9fdGFi
bGVfbmFtZV9fLCBzdWl0ZT1zdWl0ZSwgdGVzdD10ZXN0LCB0dGw9dHRsKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdXBs
b2FkX2NvbnRleHQucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weQppbmRleCBhOGE1Y2MxY2U5Mjg5MDMyYTJi
YWRmMGI0N2Y0NWRkZmUyZTI5YjBiLi5hNTg5MmZkYzM4NmEyNWY1MWUxNmI5ZjM5N2ZiNzYwZWQ0
OWYxNDQ1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weQpA
QCAtMjksMTIgKzI5LDExIEBAIGltcG9ydCB6aXBmaWxlCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdp
bmUgaW1wb3J0IGNvbHVtbnMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiBm
cm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVy
LmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmln
dXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21t
aXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5j
b25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogCi1m
cm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQgYXMgU2NtQ29tbWl0Citmcm9tIHdlYmtpdHNj
bXB5IGltcG9ydCBDb21taXQKIAogCiBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CkBAIC02
Myw3ICs2Miw3IEBAIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0KToKIAogICAgICAgICBkZWYg
dW5wYWNrKHNlbGYpOgogICAgICAgICAgICAgcmV0dXJuIGRpY3QoCi0gICAgICAgICAgICAgICAg
Y29tbWl0cz1bU2NtQ29tbWl0LmZyb21fanNvbihlbGVtZW50KSBmb3IgZWxlbWVudCBpbiBqc29u
LmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYuY29tbWl0cykpKV0s
CisgICAgICAgICAgICAgICAgY29tbWl0cz1bQ29tbWl0LmZyb21fanNvbihlbGVtZW50KSBmb3Ig
ZWxlbWVudCBpbiBqc29uLmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNl
bGYuY29tbWl0cykpKV0sCiAgICAgICAgICAgICAgICAgc2RrPU5vbmUgaWYgc2VsZi5zZGsgPT0g
Jz8nIGVsc2Ugc2VsZi5zZGssCiAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzPWpzb24ubG9h
ZHMoVXBsb2FkQ29udGV4dC5mcm9tX3ppcChieXRlYXJyYXkoc2VsZi50ZXN0X3Jlc3VsdHMpKSks
CiAgICAgICAgICAgICAgICAgdGltZXN0YW1wPWNhbGVuZGFyLnRpbWVnbShzZWxmLnRpbWVfdXBs
b2FkZWQudGltZXR1cGxlKCkpLApAQCAtODMsNyArODIsNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0
KG9iamVjdCk6CiAKICAgICAgICAgZGVmIHVucGFjayhzZWxmKToKICAgICAgICAgICAgIHJldHVy
biBkaWN0KAotICAgICAgICAgICAgICAgIGNvbW1pdHM9W1NjbUNvbW1pdC5mcm9tX2pzb24oZWxl
bWVudCkgZm9yIGVsZW1lbnQgaW4ganNvbi5sb2FkcyhVcGxvYWRDb250ZXh0LmZyb21femlwKGJ5
dGVhcnJheShzZWxmLmNvbW1pdHMpKSldLAorICAgICAgICAgICAgICAgIGNvbW1pdHM9W0NvbW1p
dC5mcm9tX2pzb24oZWxlbWVudCkgZm9yIGVsZW1lbnQgaW4ganNvbi5sb2FkcyhVcGxvYWRDb250
ZXh0LmZyb21femlwKGJ5dGVhcnJheShzZWxmLmNvbW1pdHMpKSldLAogICAgICAgICAgICAgICAg
IHNkaz1Ob25lIGlmIHNlbGYuc2RrID09ICc/JyBlbHNlIHNlbGYuc2RrLAogICAgICAgICAgICAg
ICAgIHRlc3RfcmVzdWx0cz1qc29uLmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFy
cmF5KHNlbGYudGVzdF9yZXN1bHRzKSkpLAogICAgICAgICAgICAgICAgIHRpbWVzdGFtcD1jYWxl
bmRhci50aW1lZ20oc2VsZi50aW1lX3VwbG9hZGVkLnRpbWV0dXBsZSgpKSwKQEAgLTE4MSw3ICsx
ODAsNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZGF0
YSA9IGpzb24ubG9hZHMocmF3X2RhdGEpCiAgICAgICAgICAgICAgICAgc2VsZi5zeW5jaHJvbm91
c2x5X3Byb2Nlc3NfdGVzdF9yZXN1bHRzKAogICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0
aW9uPUNvbmZpZ3VyYXRpb24uZnJvbV9qc29uKGRhdGFbJ2NvbmZpZ3VyYXRpb24nXSksCi0gICAg
ICAgICAgICAgICAgICAgIGNvbW1pdHM9W1NjbUNvbW1pdC5mcm9tX2pzb24oY29tbWl0X2pzb24p
IGZvciBjb21taXRfanNvbiBpbiBkYXRhWydjb21taXRzJ11dLAorICAgICAgICAgICAgICAgICAg
ICBjb21taXRzPVtDb21taXQuZnJvbV9qc29uKGNvbW1pdF9qc29uKSBmb3IgY29tbWl0X2pzb24g
aW4gZGF0YVsnY29tbWl0cyddXSwKICAgICAgICAgICAgICAgICAgICAgc3VpdGU9ZGF0YVsnc3Vp
dGUnXSwKICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPWRhdGFbJ3RpbWVzdGFtcCddLAog
ICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdHM9ZGF0YVsndGVzdF9yZXN1bHRzJ10sCkBA
IC0yNDMsNyArMjQyLDcgQEAgY2xhc3MgVXBsb2FkQ29udGV4dChvYmplY3QpOgogICAgICAgICBp
ZiBub3QgaXNpbnN0YW5jZShzdWl0ZSwgc3RyKToKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cihmJ0V4cGVjdGVkIHR5cGUge3N0cn0sIGdvdCB7dHlwZShzdWl0ZSl9JykKICAgICAgICAgZm9y
IGNvbW1pdCBpbiBjb21taXRzOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0
LCBTY21Db21taXQpIGFuZCBub3QgaXNpbnN0YW5jZShjb21taXQsIENvbW1pdCk6CisgICAgICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShjb21taXQsIENvbW1pdCk6CiAgICAgICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1p
dCl9JykKICAgICAgICAgaWYgbGVuKGNvbW1pdHMpIDwgMToKICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ0VhY2ggdGVzdCByZXN1bHQgbXVzdCBoYXZlIGF0IGxlYXN0IDEgYXNzb2NpYXRl
ZCBjb21taXQnKQpAQCAtMjYyLDcgKzI2MSw3IEBAIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0
KToKIAogICAgICAgICAgICAgICAgIHNlbGYuY29uZmlndXJhdGlvbl9jb250ZXh0Lmluc2VydF9y
b3dfd2l0aF9jb25maWd1cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICBzZWxmLlN1aXRlc0J5
Q29uZmlndXJhdGlvbi5fX3RhYmxlX25hbWVfXywgY29uZmlndXJhdGlvbiwgc3VpdGU9c3VpdGUs
IGJyYW5jaD1icmFuY2gsCi0gICAgICAgICAgICAgICAgICAgIHR0bD1pbnQoKHV1aWQgLy8gQ29t
bWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRp
bWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgdHRsPWludCgodXVpZCAvLyBDb21taXQuVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRs
X3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUsCiAg
ICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgIHNlbGYuY29uZmlndXJhdGlvbl9jb250
ZXh0Lmluc2VydF9yb3dfd2l0aF9jb25maWd1cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICBz
ZWxmLlVwbG9hZHNCeUNvbmZpZ3VyYXRpb24uX190YWJsZV9uYW1lX18sIGNvbmZpZ3VyYXRpb249
Y29uZmlndXJhdGlvbiwKQEAgLTI3MCw3ICsyNjksNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdHM9c2VsZi50b196aXAoanNvbi5kdW1w
cyhjb21taXRzLCBjbHM9Y29tbWl0c1swXS5FbmNvZGVyKSksCiAgICAgICAgICAgICAgICAgICAg
IHRlc3RfcmVzdWx0cz1zZWxmLnRvX3ppcChqc29uLmR1bXBzKHRlc3RfcmVzdWx0cykpLAogICAg
ICAgICAgICAgICAgICAgICB1cGxvYWRfdmVyc2lvbj12ZXJzaW9uLAotICAgICAgICAgICAgICAg
ICAgICB0dGw9aW50KCh1dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVS
KSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBl
bHNlIE5vbmUsCisgICAgICAgICAgICAgICAgICAgIHR0bD1pbnQoKHV1aWQgLy8gQ29tbWl0LlVV
SURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYu
dHRsX3NlY29uZHMgZWxzZSBOb25lLAogICAgICAgICAgICAgICAgICkKIAogICAgIGRlZiBmaW5k
X3Rlc3RfcmVzdWx0cyhzZWxmLCBjb25maWd1cmF0aW9ucywgc3VpdGUsIGJyYW5jaD1Ob25lLCBi
ZWdpbj1Ob25lLCBlbmQ9Tm9uZSwgcmVjZW50PVRydWUsIGxpbWl0PTEwMCk6CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2Fy
Y2hpdmVfdmlld191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5CmluZGV4IDdiY2E2
NTUyYzBmYzllNWIwOTExZDU4YWVmYmZhYzMxMTYyZTY2MWMuLmFkYmQ3MWJhNTBiOGJhNzFkMDZk
ZWYwOTJiMTBhNDYwYjBhNGM3MTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcv
YXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5CkBAIC0yNCwxMyArMjQsMTMgQEAgaW1wb3J0IGJhc2U2
NAogaW1wb3J0IGpzb24KIAogZnJvbSBmYWtlcmVkaXMgaW1wb3J0IEZha2VTdHJpY3RSZWRpcwot
ZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJl
c3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgog
ZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHRfdW5pdHRlc3QgaW1w
b3J0IENvbmZpZ3VyYXRpb25Db250ZXh0VGVzdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2Nr
X2Nhc3NhbmRyYV9jb250ZXh0IGltcG9ydCBNb2NrQ2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1
bHRzZGJweS5tb2RlbC5tb2NrX21vZGVsX2ZhY3RvcnkgaW1wb3J0IE1vY2tNb2RlbEZhY3RvcnkK
IGZyb20gcmVzdWx0c2RicHkubW9kZWwud2FpdF9mb3JfZG9ja2VyX3Rlc3RfY2FzZSBpbXBvcnQg
V2FpdEZvckRvY2tlclRlc3RDYXNlCiBmcm9tIHJlc3VsdHNkYnB5LnZpZXcudmlld19yb3V0ZXNf
dW5pdHRlc3QgaW1wb3J0IFdlYlNpdGVUZXN0Q2FzZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQg
Q29tbWl0CiAKIAogY2xhc3MgQXJjaGl2ZVZpZXdVbml0dGVzdChXZWJTaXRlVGVzdENhc2UpOgpA
QCAtNTEsNyArNTEsNyBAQCBjbGFzcyBBcmNoaXZlVmlld1VuaXR0ZXN0KFdlYlNpdGVUZXN0Q2Fz
ZSk6CiAgICAgICAgICAgICAgICAgKSwgZGljdCgKICAgICAgICAgICAgICAgICAgICAgcmVwb3Np
dG9yeV9pZD0nd2Via2l0JywKICAgICAgICAgICAgICAgICAgICAgaWQ9JzYnLAotICAgICAgICAg
ICAgICAgICAgICBicmFuY2g9J3RydW5rJywKKyAgICAgICAgICAgICAgICAgICAgYnJhbmNoPSdt
YWluJywKICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wPTE2MDE2NjUxMDAsCiAgICAgICAg
ICAgICAgICAgICAgIG9yZGVyPTAsCiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0namJl
ZGFyZEBhcHBsZS5jb20nLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9jb21taXRfdmlldy5weSBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcucHkKaW5k
ZXggNmY0NWUxOGQ2NWU4MDFmZWY2ZGI1NDcyNWI5NWNjOGY4MjI3Zjg2OS4uYThlZTc3NjMwOThm
OWY3ZjcwMDcwYzhiMzY4MTlmOTIxMWQ2ZWQ3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9jb21taXRfdmlldy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2Nv
bW1pdF92aWV3LnB5CkBAIC0yMSw5ICsyMSw5IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGZyb20gZmxh
c2sgaW1wb3J0IGFib3J0LCByZWRpcmVjdCwgcmVxdWVzdAotZnJvbSByZXN1bHRzZGJweS5jb250
cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJlc3VsdHNkYnB5LnZpZXcuc2l0ZV9t
ZW51IGltcG9ydCBTaXRlTWVudQogZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2Vy
dFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncworZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0
CiAKIAogY2xhc3MgQ29tbWl0VmlldyhvYmplY3QpOgpAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBD
b21taXRWaWV3KG9iamVjdCk6CiAgICAgICAgIHJlcG9zaXRvcmllcyA9IFtjb21taXQucmVwb3Np
dG9yeV9pZF0gKyBzb3J0ZWQoW3N0cihrZXkpIGZvciBrZXksIGxzdCBpbiBzaWJsaW5ncy5pdGVt
cygpIGlmIGxzdF0pCiAKICAgICAgICAgcmV0dXJuIHNlbGYuZW52aXJvbm1lbnQuZ2V0X3RlbXBs
YXRlKCdjb21taXQuaHRtbCcpLnJlbmRlcigKLSAgICAgICAgICAgIHRpdGxlPXNlbGYuc2l0ZV9t
ZW51LnRpdGxlICsgJzogJyArIHN0cihjb21taXQuaWQpLAorICAgICAgICAgICAgdGl0bGU9c2Vs
Zi5zaXRlX21lbnUudGl0bGUgKyAnOiAnICsgc3RyKGNvbW1pdCksCiAgICAgICAgICAgICBjb21t
aXQ9Y29tbWl0LAogICAgICAgICAgICAgcmVwb3NpdG9yeV9pZHM9cmVwb3NpdG9yaWVzLAogICAg
ICAgICAgICAgY29tbWl0cz1Db21taXQuRW5jb2RlcigpLmRlZmF1bHQoW2NvbW1pdF0gKyBbaXRl
bSBmb3IgbHN0IGluIHNpYmxpbmdzLnZhbHVlcygpIGZvciBpdGVtIGluIGxzdF0pLApAQCAtNjQs
OSArNjQsOSBAQCBjbGFzcyBDb21taXRWaWV3KG9iamVjdCk6CiAKICAgICBkZWYgaW5mbyhzZWxm
KToKICAgICAgICAgY29tbWl0ID0gc2VsZi5fc2luZ2xlX2NvbW1pdCgpCi0gICAgICAgIGluZm9f
dXJsID0gc2VsZi5jb21taXRfY29udGV4dC5yZXBvc2l0b3JpZXNbY29tbWl0LnJlcG9zaXRvcnlf
aWRdLnVybF9mb3JfY29tbWl0KGNvbW1pdC5pZCkKKyAgICAgICAgaW5mb191cmwgPSBzZWxmLmNv
bW1pdF9jb250ZXh0LnJlcG9zaXRvcmllc1tjb21taXQucmVwb3NpdG9yeV9pZF0udXJsX2Zvcl9j
b21taXQoY29tbWl0KQogICAgICAgICBpZiBub3QgaW5mb191cmw6Ci0gICAgICAgICAgICBhYm9y
dCg0MTAsIGRlc2NyaXB0aW9uPWYnRm91bmQgY29tbWl0IHtsZW4oY29tbWl0LmlkKX0sIGJ1dCBu
byBpbmZvIHVybCBmb3VuZCcpCisgICAgICAgICAgICBhYm9ydCg0MTAsIGRlc2NyaXB0aW9uPWYn
Rm91bmQgY29tbWl0IHtjb21taXR9LCBidXQgbm8gaW5mbyB1cmwgZm91bmQnKQogICAgICAgICBy
ZXR1cm4gcmVkaXJlY3QoaW5mb191cmwpCiAKICAgICBkZWYgcHJldmlvdXMoc2VsZik6CkBAIC03
NCwxNiArNzQsMTYgQEAgY2xhc3MgQ29tbWl0VmlldyhvYmplY3QpOgogICAgICAgICAgICAgb3Jp
Z2luYWxfY29tbWl0ID0gc2VsZi5fc2luZ2xlX2NvbW1pdCgpCiAgICAgICAgICAgICBjb21taXQg
PSBzZWxmLmNvbW1pdF9jb250ZXh0LnByZXZpb3VzX2NvbW1pdChvcmlnaW5hbF9jb21taXQpCiAg
ICAgICAgICAgICBpZiBub3QgY29tbWl0OgotICAgICAgICAgICAgICAgIGFib3J0KDQwNCwgZGVz
Y3JpcHRpb249Zid7b3JpZ2luYWxfY29tbWl0LmlkfSBoYXMgbm8gcmVnaXN0ZXJlZCBwcmV2aW91
cyBjb21taXQnKQotICAgICAgICByZXR1cm4gcmVkaXJlY3QoZicvY29tbWl0P3JlcG9zaXRvcnlf
aWQ9e2NvbW1pdC5yZXBvc2l0b3J5X2lkfSZpZD17Y29tbWl0LmlkfScpCisgICAgICAgICAgICAg
ICAgYWJvcnQoNDA0LCBkZXNjcmlwdGlvbj1mJ3tvcmlnaW5hbF9jb21taXR9IGhhcyBubyByZWdp
c3RlcmVkIHByZXZpb3VzIGNvbW1pdCcpCisgICAgICAgIHJldHVybiByZWRpcmVjdChmJy9jb21t
aXQ/cmVwb3NpdG9yeV9pZD17Y29tbWl0LnJlcG9zaXRvcnlfaWR9JmlkPXtjb21taXR9JykKIAog
ICAgIGRlZiBuZXh0KHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuY29tbWl0X2NvbnRleHQ6CiAg
ICAgICAgICAgICBvcmlnaW5hbF9jb21taXQgPSBzZWxmLl9zaW5nbGVfY29tbWl0KCkKICAgICAg
ICAgICAgIGNvbW1pdCA9IHNlbGYuY29tbWl0X2NvbnRleHQubmV4dF9jb21taXQob3JpZ2luYWxf
Y29tbWl0KQogICAgICAgICAgICAgaWYgbm90IGNvbW1pdDoKLSAgICAgICAgICAgICAgICBhYm9y
dCg0MDQsIGRlc2NyaXB0aW9uPWYne29yaWdpbmFsX2NvbW1pdC5pZH0gaGFzIG5vIHJlZ2lzdGVy
ZWQgc3Vic2VxdWVudCBjb21taXQnKQotICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0KGYnL2Nv
bW1pdD9yZXBvc2l0b3J5X2lkPXtjb21taXQucmVwb3NpdG9yeV9pZH0maWQ9e2NvbW1pdC5pZH0n
KQorICAgICAgICAgICAgICAgIGFib3J0KDQwNCwgZGVzY3JpcHRpb249Zid7b3JpZ2luYWxfY29t
bWl0fSBoYXMgbm8gcmVnaXN0ZXJlZCBzdWJzZXF1ZW50IGNvbW1pdCcpCisgICAgICAgICAgICBy
ZXR1cm4gcmVkaXJlY3QoZicvY29tbWl0P3JlcG9zaXRvcnlfaWQ9e2NvbW1pdC5yZXBvc2l0b3J5
X2lkfSZpZD17Y29tbWl0fScpCiAKICAgICBAU2l0ZU1lbnUucmVuZGVyX3dpdGhfc2l0ZV9tZW51
KCkKICAgICBkZWYgY29tbWl0cyhzZWxmLCAqKmt3YXJncyk6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9j
b21taXQuanMgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS92aWV3L3N0YXRpYy9qcy9jb21taXQuanMKaW5kZXggOWNlN2QyYjY1M2Q5ZDdjYzE1ODliZmFj
ZWM0M2RkZjU3ZjNjMDIyMC4uNjdiMDY0MmQ2MjNhZjY1ZDVjZGE1MmM3OTVmOWU5MGU2ZTE4NzRj
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvdmlldy9zdGF0aWMvanMvY29tbWl0LmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2NvbW1pdC5qcwpAQCAt
MTAxLDE2ICsxMDEsMTcgQEAgZnVuY3Rpb24gQ29tbWl0VGFibGUoY29tbWl0cywgcmVwb3NpdG9y
eUlkcyA9IFtdLCBvbmVMaW5lID0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgbGV0IGNv
bW1pdEFyZ3MgPSBwYXJhbXNUb1F1ZXJ5KHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9z
aXRvcnlfaWQ6IFtjZWxsLmNvbW1pdC5yZXBvc2l0b3J5X2lkXSwKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyYW5jaDogW2NlbGwuY29tbWl0LmJyYW5jaF0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICBpZDogW2NlbGwuY29tbWl0LmlkZW50aWZpZXJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmOiBbY2VsbC5jb21taXQubGFiZWwoKV0sCiAgICAgICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgICAgICAgICBsZXQgaW52ZXN0aWdhdGVBcmdzID0ge2lkOiBbY2VsbC5jb21t
aXQuaWRlbnRpZmllcl19OworICAgICAgICAgICAgICAgICAgICBsZXQgaW52ZXN0aWdhdGVBcmdz
ID0ge3JlZjogW2NlbGwuY29tbWl0LmxhYmVsKCldfTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KCFbJ21hc3RlcicsICdtYWluJywgJ3RydW5rJ10uaW5jbHVkZXMoY2VsbC5jb21taXQuYnJhbmNo
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGludmVzdGlnYXRlQXJncy5icmFuY2ggPSBbY2Vs
bC5jb21taXQuYnJhbmNoXTsKIAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDx0ZCByb3dz
cGFuPSIke2NlbGwucm93c3Bhbn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0i
L2NvbW1pdD8ke2NvbW1pdEFyZ3N9Ij4ke2NlbGwuY29tbWl0LmxhYmVsKCl9PC9hPiA8YnI+Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBCcmFuY2g6ICR7Y2VsbC5jb21taXQuYnJhbmNofSA8YnI+
Ci0gICAgICAgICAgICAgICAgICAgICAgICBBdXRob3I6ICR7ZXNjYXBlSFRNTChjZWxsLmNvbW1p
dC5hdXRob3IpfSA8YnI+CisgICAgICAgICAgICAgICAgICAgICAgICAke2NlbGwuY29tbWl0Lmxh
YmVsKCkuaW5jbHVkZXMoJ0AnKSA/ICcnIDogYEJyYW5jaDogJHtjZWxsLmNvbW1pdC5icmFuY2h9
IDxicj5gfQorICAgICAgICAgICAgICAgICAgICAgICAgJHtjZWxsLmNvbW1pdC5hdXRob3IgPyBg
QXV0aG9yOiAke2VzY2FwZUhUTUwoY2VsbC5jb21taXQuYXV0aG9yLm5hbWUpfQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICYjNjA8YSBocmVmPSJtYWlsdG86JHtlc2NhcGVIVE1MKGNlbGwu
Y29tbWl0LmF1dGhvci5lbWFpbHNbMF0pfSI+JHtlc2NhcGVIVE1MKGNlbGwuY29tbWl0LmF1dGhv
ci5lbWFpbHNbMF0pfTwvYT4mIzYyIDxicj5gIDogJyd9CiAgICAgICAgICAgICAgICAgICAgICAg
ICA8YSBocmVmPSIvY29tbWl0L2luZm8/JHtjb21taXRBcmdzfSI+TW9yZSBJbmZvPC9hPjxicj4K
ICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9pbnZlc3RpZ2F0ZT8ke3BhcmFtc1Rv
UXVlcnkoaW52ZXN0aWdhdGVBcmdzKX0iPlRlc3QgcmVzdWx0cyBmb3IgY29tbWl0PC9hPgogICAg
ICAgICAgICAgICAgICAgICAgICAgJHtmdW5jdGlvbigpIHsKQEAgLTEzMCwxMCArMTMxLDEwIEBA
IGZ1bmN0aW9uIENvbW1pdFRhYmxlKGNvbW1pdHMsIHJlcG9zaXRvcnlJZHMgPSBbXSwgb25lTGlu
ZSA9IGZhbHNlKSB7CiBjbGFzcyBDb21taXQgewogICAgIGNvbnN0cnVjdG9yKGpzb24pIHsKICAg
ICAgICAgdGhpcy5pZGVudGlmaWVyID0ganNvbi5pZGVudGlmaWVyID8ganNvbi5pZGVudGlmaWVy
IDoganNvbi5pZDsKLSAgICAgICAgdGhpcy5yZXZpc2lvbiA9IGpzb24ucmV2aXNpb247Ci0gICAg
ICAgIHRoaXMuaGFzaCA9IGpzb24uaGFzaDsKKyAgICAgICAgdGhpcy5yZXZpc2lvbiA9IGpzb24u
cmV2aXNpb24gPyBqc29uLnJldmlzaW9uIDogbnVsbDsKKyAgICAgICAgdGhpcy5oYXNoID0ganNv
bi5oYXNoID8ganNvbi5oYXNoIDogbnVsbDsKIAotICAgICAgICB0aGlzLmF1dGhvciA9IGpzb24u
YXV0aG9yID8ganNvbi5hdXRob3IubmFtZSA6IGpzb24uY29tbWl0dGVyOworICAgICAgICB0aGlz
LmF1dGhvciA9IGpzb24uYXV0aG9yID8ganNvbi5hdXRob3IgOiBudWxsOwogCiAgICAgICAgIHRo
aXMucmVwb3NpdG9yeV9pZCA9IGpzb24ucmVwb3NpdG9yeV9pZDsKICAgICAgICAgdGhpcy5icmFu
Y2ggPSBqc29uLmJyYW5jaDsKQEAgLTE0OSwxMyArMTUwLDEzIEBAIGNsYXNzIENvbW1pdCB7CiAg
ICAgbGFiZWwoKSB7CiAgICAgICAgIGNvbnN0IHByZWZlcmVuY2UgPSBDb21taXRCYW5rLl9yZXBy
ZXNlbnRhdGlvbkNhY2hlID8gQ29tbWl0QmFuay5fcmVwcmVzZW50YXRpb25DYWNoZVt0aGlzLnJl
cG9zaXRvcnlfaWRdLnJlcHJlc2VudGF0aW9uIDogbnVsbDsKIAotICAgICAgICBpZiAocHJlZmVy
ZW5jZSA9PT0gJ2lkZW50aWZpZXInKQorICAgICAgICBpZiAocHJlZmVyZW5jZSA9PT0gJ2lkZW50
aWZpZXInICYmIHRoaXMuaWRlbnRpZmllcikKICAgICAgICAgICAgIHJldHVybiB0aGlzLmlkZW50
aWZpZXI7Ci0gICAgICAgIGlmIChwcmVmZXJlbmNlID09PSAnaGFzaCcpIHsKKyAgICAgICAgaWYg
KHByZWZlcmVuY2UgPT09ICdoYXNoJyAmJiB0aGlzLmhhc2gpIHsKICAgICAgICAgICAgIC8vIFBl
ciB0aGUgYmlydGhkYXkgcGFyYWRveCwgMTAlIGNoYW5jZSBvZiBjb2xsaXNpb24gd2l0aCA3Ljcg
bWlsbGlvbiBjb21taXRzIHdpdGggMTIgY2hhcmFjdGVyIGNvbW1pdHMKICAgICAgICAgICAgIHJl
dHVybiB0aGlzLmhhc2guc3Vic3RyaW5nKDAsMTIpCiAgICAgICAgIH0KLSAgICAgICAgaWYgKHBy
ZWZlcmVuY2UgPT09ICdyZXZpc2lvbicpCisgICAgICAgIGlmIChwcmVmZXJlbmNlID09PSAncmV2
aXNpb24nICYmIHRoaXMucmV2aXNpb24pCiAgICAgICAgICAgICByZXR1cm4gYHIke3RoaXMucmV2
aXNpb259YDsKIAogICAgICAgICByZXR1cm4gdGhpcy5yZXZpc2lvbiA/IGByJHt0aGlzLnJldmlz
aW9ufWAgOiB0aGlzLmhhc2guc3Vic3RyaW5nKDAsMTIpOwpAQCAtMzQ1LDcgKzM0Niw3IEBAIGNs
YXNzIF9Db21taXRCYW5rIHsKICAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXNUb1F1ZXJ5KHsK
ICAgICAgICAgICAgIGJyYW5jaDogW2NvbW1pdC5icmFuY2hdLAogICAgICAgICAgICAgcmVwb3Np
dG9yeV9pZDogW2NvbW1pdC5yZXBvc2l0b3J5X2lkXSwKLSAgICAgICAgICAgIGlkOiBbY29tbWl0
LmlkZW50aWZpZXJdLAorICAgICAgICAgICAgcmVmOiBbY29tbWl0Lmhhc2ggPyBjb21taXQuaGFz
aCA6IGNvbW1pdC5yZXZpc2lvbl0sCiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gZmV0Y2go
J2FwaS9jb21taXRzL3NpYmxpbmdzPycgKyBxdWVyeSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAg
ICAgICAgICBsZXQgc2VsZiA9IHRoaXM7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9kcmF3ZXIuanMgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRp
Yy9qcy9kcmF3ZXIuanMKaW5kZXggOTg4NWQ5NzgyOGMxZTY5ZDQxYmU1M2U4ZjU0NGU0N2QxOWEy
MTdhNS4uOGFmODkyMDVlZWFjMGQxNDAwZDVlMjU5ZDRiMzYwN2EyZWM1Y2NkOCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9z
dGF0aWMvanMvZHJhd2VyLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2RyYXdlci5qcwpAQCAtMTM3LDcgKzEzNyw3
IEBAIGZ1bmN0aW9uIHJlZnJlc2hDb25maWd1cmF0aW9ucygpIHsKIH0KIAogZnVuY3Rpb24gQnJh
bmNoU2VsZWN0b3IoY2FsbGJhY2spIHsKLSAgICBjb25zdCBkZWZhdWx0QnJhbmNoZXMgPSBuZXcg
U2V0KFsndHJ1bmsnLCAnbWFzdGVyJ10pOworICAgIGNvbnN0IGRlZmF1bHRCcmFuY2hlcyA9IG5l
dyBTZXQoWyd0cnVuaycsICdtYXN0ZXInLCAnbWFpbiddKTsKICAgICBjb25zdCBkZWZhdWx0QnJh
bmNoS2V5ID0gWy4uLmRlZmF1bHRCcmFuY2hlc10uc29ydCgpLmpvaW4oJy8nKTsKICAgICBjb25z
dCBicmFuY2hNb2RpZmllciA9IG5ldyBRdWVyeU1vZGlmaWVyKCdicmFuY2gnKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmll
dy9zdGF0aWMvanMvdGltZWxpbmUuanMgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcwppbmRleCBlYjVmMjk3
OGViOTRiMzE4ODZkZTk2NWU3Njg3YjYxODg5ZTEzMWI1Li4yMzBjMDM1ZDg0M2JlYzc4NGIxYmU1
NzEzNDgxM2RiMzc4MjMzMjgzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcworKysgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRp
Yy9qcy90aW1lbGluZS5qcwpAQCAtMTkwLDggKzE5MCw5IEBAIGZ1bmN0aW9uIHhBeGlzRnJvbVNj
YWxlKHNjYWxlLCByZXBvc2l0b3J5LCB1cGRhdGVzQXJyYXksIGlzVG9wPWZhbHNlLCB2aWV3cG9y
dD1uCiAgICAgICAgICAgICBjb25zdCBzY3JvbGxEZWx0YSA9IGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgICAgICAgICBU
b29sVGlwLnNldCgKICAgICAgICAgICAgICAgICBgPGRpdiBjbGFzcz0iY29udGVudCI+Ci0gICAg
ICAgICAgICAgICAgICAgIFRpbWU6ICR7bmV3IERhdGUobm9kZS5sYWJlbC50aW1lc3RhbXAgKiAx
MDAwKS50b0xvY2FsZVN0cmluZygpfTxicj4KLSAgICAgICAgICAgICAgICAgICAgQXV0aG9yOiAk
e25vZGUubGFiZWwuYXV0aG9yfQorICAgICAgICAgICAgICAgICAgICBUaW1lOiAke25ldyBEYXRl
KG5vZGUubGFiZWwudGltZXN0YW1wICogMTAwMCkudG9Mb2NhbGVTdHJpbmcoKX0KKyAgICAgICAg
ICAgICAgICAgICAgJHtub2RlLmxhYmVsLmF1dGhvciA/IGA8YnI+QXV0aG9yOiAke2VzY2FwZUhU
TUwobm9kZS5sYWJlbC5hdXRob3IubmFtZSl9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JiM2MDxhIGhyZWY9Im1haWx0bzoke2VzY2FwZUhUTUwobm9kZS5sYWJlbC5hdXRob3IuZW1haWxz
WzBdKX0iPiR7ZXNjYXBlSFRNTChub2RlLmxhYmVsLmF1dGhvci5lbWFpbHNbMF0pfTwvYT4mIzYy
YCA6ICcnfQogICAgICAgICAgICAgICAgICAgICAke25vZGUubGFiZWwubWVzc2FnZSA/IGA8YnI+
PGRpdj4ke2VzY2FwZUhUTUwobm9kZS5sYWJlbC5tZXNzYWdlLnNwbGl0KCdcbicpWzBdKX08L2Rp
dj5gIDogJyd9CiAgICAgICAgICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgICBub2Rl
LnRpcFBvaW50cy5tYXAoKHBvaW50KSA9PiB7CkBAIC0yMDYsNyArMjA3LDcgQEAgZnVuY3Rpb24g
eEF4aXNGcm9tU2NhbGUoc2NhbGUsIHJlcG9zaXRvcnksIHVwZGF0ZXNBcnJheSwgaXNUb3A9ZmFs
c2UsIHZpZXdwb3J0PW4KICAgICAgICAgICAgIGlmICghVG9vbFRpcC5pc0luKHt4OiBldmVudC54
LCB5OiBldmVudC55IC0gc2Nyb2xsRGVsdGF9KSkKICAgICAgICAgICAgICAgICBUb29sVGlwLnVu
c2V0KCk7CiAgICAgICAgIH0sCi0gICAgICAgIGdldExhYmVsRnVuYzogKGNvbW1pdCkgPT4ge3Jl
dHVybiBjb21taXQgPyBjb21taXQubGFiZWwoKSA6ICc/Jzt9LAorICAgICAgICBnZXRMYWJlbEZ1
bmM6IChjb21taXQpID0+IHtyZXR1cm4gY29tbWl0ICYmIGNvbW1pdC5sYWJlbCA/IGNvbW1pdC5s
YWJlbCgpIDogJz8nO30sCiAgICAgICAgIGdldFNjYWxlRnVuYzogKGNvbW1pdCkgPT4gY29tbWl0
LnV1aWQsCiAgICAgICAgIGV4cG9ydGVyOiAodXBkYXRlRnVuY3Rpb24pID0+IHsKICAgICAgICAg
ICAgIHVwZGF0ZXNBcnJheS5wdXNoKChzY2FsZSkgPT4ge3VwZGF0ZUZ1bmN0aW9uKHNjYWxlRm9y
UmVwb3NpdG9yeShzY2FsZSkpO30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvY29tbWl0Lmh0bWwgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBs
YXRlcy9jb21taXQuaHRtbAppbmRleCBkODliZWEwMzA0ZmU2M2M0Mzg2ZWMyN2I5ODgzMzMzZTRi
NzEyNDk3Li5kNmI3ZTc4YTA4YjAxOWFkNjdmYjU4MTQ5MzJjOTAwZjJlNWJiZDEwIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3
L3RlbXBsYXRlcy9jb21taXQuaHRtbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9jb21taXQuaHRtbApAQCAtMzIsMTMg
KzMyLDEzIEBACiAgICAgPGRpdiBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgPGRpdiBjbGFzcz0i
cm93Ij4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC00IiBzdHlsZT0idGV4dC1hbGlnbjps
ZWZ0Ij4KLSAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnV0dG9uIiBocmVmPSIvY29tbWl0L3By
ZXZpb3VzP3JlcG9zaXRvcnlfaWQ9e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mYnJhbmNoPXt7
IGNvbW1pdC5icmFuY2ggfX0maWQ9e3sgY29tbWl0LmlkIH19Ij7il4AgUHJldmlvdXM8L2E+Cisg
ICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9wcmV2aW91cz9y
ZXBvc2l0b3J5X2lkPXt7IGNvbW1pdC5yZXBvc2l0b3J5X2lkIH19JnJlZj17eyBjb21taXQuaGFz
aCBvciBjb21taXQucmV2aXNpb24gfX0iPuKXgCBQcmV2aW91czwvYT4KICAgICAgICAgICAgIDwv
ZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNl
bnRlciI+Ci0gICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9p
bmZvP3JlcG9zaXRvcnlfaWQ9e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mYnJhbmNoPXt7IGNv
bW1pdC5icmFuY2ggfX0maWQ9e3sgY29tbWl0LmlkIH19Ij57eyBjb21taXQuaWQgfX08L2E+Cisg
ICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9pbmZvP3JlcG9z
aXRvcnlfaWQ9e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mcmVmPXt7IGNvbW1pdC5oYXNoIG9y
IGNvbW1pdC5yZXZpc2lvbiB9fSI+e3sgY29tbWl0IH19PC9hPgogICAgICAgICAgICAgPC9kaXY+
CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtNCIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQi
PgotICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9jb21taXQvbmV4dD9y
ZXBvc2l0b3J5X2lkPXt7IGNvbW1pdC5yZXBvc2l0b3J5X2lkIH19JmJyYW5jaD17eyBjb21taXQu
YnJhbmNoIH19JmlkPXt7IGNvbW1pdC5pZCB9fSI+TmV4dCDilrY8L2E+CisgICAgICAgICAgICAg
ICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9uZXh0P3JlcG9zaXRvcnlfaWQ9e3sg
Y29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mcmVmPXt7IGNvbW1pdC5oYXNoIG9yIGNvbW1pdC5yZXZp
c2lvbiB9fSI+TmV4dCDilrY8L2E+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+
CiAgICAgICAgIDxkaXYgaWQ9ImNvbW1pdFRhYmxlIj48L2Rpdj4KQEAgLTQ2LDcgKzQ2LDcgQEAK
IDwvZGl2PgogCiA8c2NyaXB0IHR5cGU9Im1vZHVsZSI+Ci1pbXBvcnQge0NvbW1pdFRhYmxlfSBm
cm9tICcvYXNzZXRzL2pzL2NvbW1pdC5qcyc7CitpbXBvcnQge0NvbW1pdCwgQ29tbWl0VGFibGUs
IENvbW1pdEJhbmt9IGZyb20gJy9hc3NldHMvanMvY29tbWl0LmpzJzsKIAogZnVuY3Rpb24gdW5l
c2NhcGVKaW5qYVRleHQodGV4dCkgewogICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoLyYoW147XSsp
Oy9nLCBmdW5jdGlvbihtYXRjaCwgZW5jb2RlZCkgewpAQCAtNjgsMTcgKzY4LDIzIEBAIGZ1bmN0
aW9uIHVuZXNjYXBlSmluamFUZXh0KHRleHQpIHsKIH0KIAogbGV0IGNvbW1pdHMgPSBbCi17JSBm
b3IgY29tbWl0IGluIGNvbW1pdHMgJX0gICAgewotICAgIHslIGZvciBrZXksIHZhbHVlIGluIGNv
bW1pdC5pdGVtcygpICV9Ci0gICAgICAgIHt7IGtleSB9fToKLSAgICAgICAgeyUgaWYgJ3N0cicg
aW4gdmFsdWUuX19jbGFzc19fLl9fbmFtZV9fICV9Ci0gICAgICAgICAgICB1bmVzY2FwZUppbmph
VGV4dCgne3sgdmFsdWUgfCByZXBsYWNlKCJcXCIsICJcXFxcIikgfCByZXBsYWNlKCJcbiIsICJc
XG4iKSB9fScpCi0gICAgICAgIHslIGVsc2UgJX0KLSAgICAgICAgICAgIHt7IHZhbHVlIH19Ci0g
ICAgICAgIHslIGVuZGlmICV9LAotICAgIHslIGVuZGZvciAlfX0sCit7JSBmb3IgY29tbWl0IGlu
IGNvbW1pdHMgJX0gICAgbmV3IENvbW1pdCh7CisgICAgICAgIHJlcG9zaXRvcnlfaWQ6ICd7eyBj
b21taXQucmVwb3NpdG9yeV9pZCB9fScsCisgICAgICAgIHJldmlzaW9uOiB7eyBjb21taXQucmV2
aXNpb24gaWYgY29tbWl0LnJldmlzaW9uIGVsc2UgJ251bGwnIH19LAorICAgICAgICBoYXNoOiAn
e3sgY29tbWl0Lmhhc2ggaWYgY29tbWl0Lmhhc2ggZWxzZSAnJyB9fScsCisgICAgICAgIGlkZW50
aWZpZXI6ICd7eyBjb21taXQuaWRlbnRpZmllciBpZiBjb21taXQuaWRlbnRpZmllciBlbHNlICcn
IH19JywKKyAgICAgICAgYnJhbmNoOiAne3sgY29tbWl0LmJyYW5jaCB9fScsCisgICAgICAgIHRp
bWVzdGFtcDoge3sgY29tbWl0LnRpbWVzdGFtcCB9fSwKKyAgICAgICAgYXV0aG9yOiB7CisgICAg
ICAgICAgICBuYW1lOiB1bmVzY2FwZUppbmphVGV4dCgne3sgY29tbWl0LmF1dGhvci5uYW1lIH19
JyksCisgICAgICAgICAgICBlbWFpbHM6IFt7JSBmb3IgZSBpbiBjb21taXQuYXV0aG9yLmVtYWls
cyAlfSB1bmVzY2FwZUppbmphVGV4dCgne3sgZSB9fScpIHslIGVuZGZvciAlfV0sCisgICAgICAg
IH0sIG9yZGVyOiB7eyBjb21taXQub3JkZXIgfX0sCisgICAgICAgIG1lc3NhZ2U6IHVuZXNjYXBl
SmluamFUZXh0KCd7eyBjb21taXQubWVzc2FnZSB8IHJlcGxhY2UoIlxcIiwgIlxcXFwiKSB8IHJl
cGxhY2UoIlxuIiwgIlxcbiIpIH19JyksCisgICAgfSksCiB7JSBlbmRmb3IgJX1dOwogCi1kb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnY29tbWl0VGFibGUnKS5pbm5lckhUTUwgPSBDb21taXRUYWJs
ZShjb21taXRzLCB7eyByZXBvc2l0b3J5fHNhZmUgfX0pOworQ29tbWl0QmFuay5jb21taXRSZXBy
ZXNlbnRhdGlvbnMoKCkgPT4geworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21taXRU
YWJsZScpLmlubmVySFRNTCA9IENvbW1pdFRhYmxlKGNvbW1pdHMsIHt7IHJlcG9zaXRvcnl8c2Fm
ZSB9fSk7Cit9KTsKIDwvc2NyaXB0PgogeyUgZW5kYmxvY2sgJX0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVz
L2RvY3VtZW50YXRpb24uaHRtbCBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbAppbmRleCA1Njhi
Y2IxNWNhZmZjOTBlMDJlNGY0OWM4MWQ3OTkyOTE5YjljN2NkLi5jODk3ZmE5NjQ4Y2ViMzVkYmI3
YmRjNDI2NTc1NDVmM2EwZGUyNjcyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9kb2N1bWVudGF0aW9uLmh0
bWwKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
dmlldy90ZW1wbGF0ZXMvZG9jdW1lbnRhdGlvbi5odG1sCkBAIC03Myw3ICs3Myw5IEBAIGNvbnN0
IGRvY3VtZW50YXRpb24gPSB7CiAgICAgICAgICAgICBjb2RlQmxvY2soJ3tcbicgKyAKICAgICAg
ICAgICAgICAgICAnICAgICJyZXBvc2l0b3J5X2lkIjogPHN0cmluZyByZXByZXNlbnRpbmcgcmVw
b3NpdG9yeSBpZGVudGlmaWVyPixcbicgKwogICAgICAgICAgICAgICAgICcgICAgImJyYW5jaCI6
IDxicmFuY2ggY29tbWl0IGlzIHJlZ2lzdGVyZWQgb24+LFxuJyArCi0gICAgICAgICAgICAgICAg
JyAgICAiaWQiOiA8Z2l0IGhhc2ggb3Igc3ZuIHJldmlzaW9uPixcbicgKworICAgICAgICAgICAg
ICAgICcgICAgImlkZW50aWZpZXIiOiA8Y29tbWl0IGlkZW50aWZpZXI+LFxuJyArCisgICAgICAg
ICAgICAgICAgJyAgICAiaGFzaCI6IDxnaXQgaGFzaD4sXG4nICsKKyAgICAgICAgICAgICAgICAn
ICAgICJyZXZpc2lvbiI6IDxzdm4gcmV2aXNpb24+LFxuJyArCiAgICAgICAgICAgICAgICAgJyAg
ICAidGltZXN0YW1wIjogPGludGVnZXIgVVRDIHRpbWVzdGFtcCB3aGVuIGNvbW1pdCB3YXMgY29t
bWl0dGVkPixcbicgKwogICAgICAgICAgICAgICAgICcgICAgIm9yZGVyIjogPG9yZGVyIG9mIGNv
bW1pdCB3aXRoaW4gcGF0Y2ggc2VyaWVzPixcbicgKwogICAgICAgICAgICAgICAgICcgICAgImNv
bW1pdHRlciI6IDxwZXJzb24gd2hvIGNvbW1pdHRlZCB0aGUgY2hhbmdlPixcbicgKwpAQCAtMTIz
LDcgKzEyNSw3IEBAIGNvbnN0IGRvY3VtZW50YXRpb24gPSB7CiAgICAgICAgICAgICAgICAgICAg
IGBSZXR1cm5zIGEgZGljdGlvbmFyeSBvZiBsaXN0cyBvZiBicmFuY2hlcyBhc3NvY2lhdGVkIHdp
dGggZWFjaCByZXBvc2l0b3J5LiBUaGUgb3V0cHV0IGlzIG9mIHRoZSBmb3JtOmAsCiAgICAgICAg
ICAgICAgICAgICAgIGNvZGVCbG9jaygne1xuJyArCiAgICAgICAgICAgICAgICAgICAgICcgICAg
PHJlcG9zaXRvcnktaWQgKGEpPjogWyJtYXN0ZXIiLCAiYnJhbmNoLWEiLCAiYnJhbmNoLWIiXSxc
bicgKwotICAgICAgICAgICAgICAgICAgICAnICAgIDxyZXBvc2l0b3J5LWlkIChiKT46IFsidHJ1
bmsiLCAiYnJhbmNoLWEiLCAiYnJhbmNoLWMiXVxuJyArCisgICAgICAgICAgICAgICAgICAgICcg
ICAgPHJlcG9zaXRvcnktaWQgKGIpPjogWyJtYWluIiwgImJyYW5jaC1hIiwgImJyYW5jaC1jIl1c
bicgKwogICAgICAgICAgICAgICAgICAgICAnfScpLAogICAgICAgICAgICAgICAgIF0sCiAgICAg
ICAgICAgICApLApAQCAtMTU4LDcgKzE2MCw3IEBAIGNvbnN0IGRvY3VtZW50YXRpb24gPSB7CiAg
ICAgICAgICAgICAgICAgWydCcmFuY2gnLCAnUmVwb3NpdG9yeSddLAogICAgICAgICAgICAgICAg
IFsKICAgICAgICAgICAgICAgICAgICAgYFJlZ2lzdGVyIGEgc2luZ2xlIGNvbW1pdCBpbiB0aGUg
cmVzdWx0cyBkYXRhYmFzZS4gVGhpcyBjb21taXQgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggYSBy
ZXBvc2l0b3J5IGFscmVhZHkga25vd24gYnkgdGhlIHJlc3VsdHMgZGF0YWJhc2UuIFdoaWxlIGEg
JHtsb2NhbExpbmsoWydBUEknLCAnQ29tbWl0cyddLCAnY29tbWl0IG9iamVjdHMnKX0gY2FuIGJl
IHVwbG9hZGVkIHRvIHRoaXMgZW5kcG9pbnQsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIHJl
Z2lzdHJhdGlvbiBvZiBjb21taXRzIG91dHNpZGUgb2YgYXV0b21hdGlvbiBhbGxvdyB0aGUgcmVz
dWx0cyBkYXRhYmFzZSB0byBsZXZlcmFnZSB5b3VyIHNvdXJjZSBjb250cm9sJ3MgQVBJLiBTdWNo
IGEgcmVxdWVzdCBsb29rcyBsaWtlIHRoaXNgLAotICAgICAgICAgICAgICAgICAgICBjb2RlQmxv
Y2soJy9hcGkvY29tbWl0cy9yZWdpc3Rlcj9yZXBvc2l0b3J5X2lkPXdlYmtpdCZicmFuY2g9dHJ1
bmsmaWQ9MjQ3MzU1JyksCisgICAgICAgICAgICAgICAgICAgIGNvZGVCbG9jaygnL2FwaS9jb21t
aXRzL3JlZ2lzdGVyP3JlcG9zaXRvcnlfaWQ9d2Via2l0JmJyYW5jaD1tYWluJmlkPTI0NzM1NScp
LAogICAgICAgICAgICAgICAgICAgICBgTW9yZSBnZW5lcmFsbHksIGFueSBkZWZpbml0aW9uIG9m
IGEgY29tbWl0IHdoaWNoIGRlZmluZXMgdGhlIHJlcG9zaXRvcnlfaWQsIGlkIGFuZCBicmFuY2gg
cHJvdmlkZXMgZW5vdWdoIGluZm9ybWF0aW9uIGZvciB0aGUgcmVzdWx0cyBkYXRhYmFzZSB0byBx
dWVyeSB5b3VyIHNvdXJjZSBjb250cm9sJ3MgQVBJIGFuZCByZXRyZWl2ZSBjb21taXQgaW5mb3Jt
YXRpb24uYCwKICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgKSwKQEAgLTQ3OSw3ICs0
ODEsNyBAQCBjb25zdCBkb2N1bWVudGF0aW9uID0gewogICAgICAgICAgICAgYEJ5IGRlZmF1bHQs
IHRoaXMgZmxhZyBpcyAnVHJ1ZScgYW5kIGVuZHBvaW50cyB3aWxsIGlnbm9yZSB0ZXN0cyB3aGlj
aCBtYXRjaGVkIHRoZWlyIGV4cGVjdGVkIGJlaGF2aW9yLiBJZiBzZXQgdG8gJ0ZhbHNlJywgZW5k
cG9pbnRzIHdpbGwgcmV0dXJuIHJlc3VsdHMgZm9yIGFsbCBmYWlsaW5nIHRlc3RzLCByZWdhcmRs
ZXNzIG9mIHdoYXQgdGhlaXIgZXhwZWN0YXRpb24gaXMuYCwKICAgICAgICAgXSwKICAgICAgICAg
J0JyYW5jaCc6IFsKLSAgICAgICAgICAgIGBNb3N0IGRhdGEgaW4gdGhlIHJlc3VsdHMgZGF0YWJh
c2UgaXMgcGFydGl0aW9uZWQgYnkgYnJhbmNoLCBhbmQgaXQgaXMgZ2VuZXJhbGx5IGV4cGVjdGVk
IHRoYXQgcmVzdWx0cyBvbiBzZXBlcmF0ZSBicmFuY2hlcyBhcmUgaW5kZXBlbmRlbnQgb2Ygb25l
IGFub3RoZXIuIEJ5IGRlZmF1bHQsIGVuZHBvaW50cyB0aGF0IHN1cHBvcnQgdGhlIGJyYW5jaCBx
dWVyeSB3aWxsIGFzc3VtZSB0aGF0IHRoZSBicmFuY2ggaXMgbWFzdGVyIGZvciBnaXQgcmVwb3Np
dG9yaWVzIGFuZCB0cnVuayBmb3IgU1ZOIHJlcG9zaXRvcmllcyBpZiBubyB2YWx1ZSBpcyBzcGVj
aWZpZWQuIElmIG11bHRpcGxlIHZhbHVlcyBmb3IgYnJhbmNoIGFyZSBzcGVjaWZpZWQsIG9ubHkg
dGhlIGZpcnN0IHdpbGwgYmUgcmVzcGVjdGVkLiBBIHJlcXVlc3Qgd2hpY2ggaW50ZW5kZWQgdG8g
c2VhcmNoIGZvciByZXN1bHRzIG9uIG9ubHkgcmVzdWx0cyBvbiB0aGUgc2FmYXJpLTYwNyBicmFu
Y2ggd291bGQgdXNlIGEgcXVlcnkgbGlrZSB0aGlzOmAsCisgICAgICAgICAgICBgTW9zdCBkYXRh
IGluIHRoZSByZXN1bHRzIGRhdGFiYXNlIGlzIHBhcnRpdGlvbmVkIGJ5IGJyYW5jaCwgYW5kIGl0
IGlzIGdlbmVyYWxseSBleHBlY3RlZCB0aGF0IHJlc3VsdHMgb24gc2VwZXJhdGUgYnJhbmNoZXMg
YXJlIGluZGVwZW5kZW50IG9mIG9uZSBhbm90aGVyLiBCeSBkZWZhdWx0LCBlbmRwb2ludHMgdGhh
dCBzdXBwb3J0IHRoZSBicmFuY2ggcXVlcnkgd2lsbCBhc3N1bWUgdGhhdCB0aGUgYnJhbmNoIGlz
IG1hc3RlciBvciBtYWluIGZvciBnaXQgcmVwb3NpdG9yaWVzIGFuZCB0cnVuayBmb3IgU1ZOIHJl
cG9zaXRvcmllcyBpZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQuIElmIG11bHRpcGxlIHZhbHVlcyBm
b3IgYnJhbmNoIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhlIGZpcnN0IHdpbGwgYmUgcmVzcGVjdGVk
LiBBIHJlcXVlc3Qgd2hpY2ggaW50ZW5kZWQgdG8gc2VhcmNoIGZvciByZXN1bHRzIG9uIG9ubHkg
cmVzdWx0cyBvbiB0aGUgc2FmYXJpLTYwNyBicmFuY2ggd291bGQgdXNlIGEgcXVlcnkgbGlrZSB0
aGlzOmAsCiAgICAgICAgICAgICBjb2RlQmxvY2soJ2JyYW5jaD1zYWZhcmktNjA3JyksCiAgICAg
ICAgIF0sCiAgICAgICAgICdDb25maWd1cmF0aW9uJzogWwpAQCAtNTQ0LDEzICs1NDYsMTMgQEAg
Y29uc3QgZG9jdW1lbnRhdGlvbiA9IHsKICAgICAgICAgICAgIGBXZSBhbHNvIGtub3cgdGhhdCB0
aW1lc3RhbXBzIGNhbiBiZSBlYXNpbHkgY29udmVydGVkIHRvIFVVSURzLiBFbmRwb2ludHMgd2hp
Y2ggc3VwcG9ydCBxdWVyeWluZyBieSBVVUlEIGFsc28gc3VwcG9ydCBxdWVyeWluZyBieSBVVEMg
dGltZXN0YW1wLiBPdXIgcHJldmlvdXMgcXVlcnkgY291bGQgYmUgaW5zdGVhZCB3cml0dGVuIGxp
a2UgdGhpczpgLAogICAgICAgICAgICAgY29kZUJsb2NrKCdhZnRlcl90aW1lc3RhbXA9MTU2Mjk1
MTQ5MSZiZWZvcmVfdGltZXN0YW1wPTE1NjI5NTI0NzMnKSwKICAgICAgICAgICAgIGBDb21taXRz
IGNhbiBhbHNvIGJlIHRyYW5zbGF0ZWQgdG8gdGltZXN0YW1wLCBhbHRob3VnaCB3aXRoIGEgYml0
IG1vcmUgd29yayByZXF1aXJlZCBmcm9tIHRoZSBiYWNrLWVuZC4gRW5kcG9pbnRzIHdoaWNoIHN1
cHBvcnQgcXVlcnlpbmcgYnkgVVVJRCBhbHNvIHN1cHBvcnQgcXVlcnlpbmcgYnkgY29tbWl0IGlu
Zm9ybWF0aW9uLiBJbiB0aGUgZmlyc3QgZXhhbXBsZSBpbiB0aGlzIHNlY3Rpb24sIHdlIHF1ZXJp
ZWQgYnkgVVVJRCAxNTYyOTUyNDczMDAuIFRoaXMgY29ycmVzcG9uZHMgdG8gJHtleHRlcm5hbExp
bmsoJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDczOTEvd2Via2l0JywgJ3Iy
NDczOTEnKX0uIFdlIGNvdWxkIGluc3RlYWQgcXVlcnkgYnkgdGhlIGNvbW1pdCBpbmZvcm1hdGlv
bjpgLAotICAgICAgICAgICAgY29kZUJsb2NrKCdpZD0yNDczOTEmcmVwb3NpdG9yeV9pZD13ZWJr
aXQmYnJhbmNoPXRydW5rJyksCisgICAgICAgICAgICBjb2RlQmxvY2soJ2lkPTI0NzM5MSZyZXBv
c2l0b3J5X2lkPXdlYmtpdCZicmFuY2g9bWFpbicpLAogICAgICAgICAgICAgYEJ1dCwgYXMgb3V0
bGluZWQgaW4gdGhlIG92ZXJ2aWV3cyBhYm91dCAke2xvY2FsTGluayhbJ1F1ZXJ5IFBhcmFtZXRl
cnMnLCAnQnJhbmNoJ10sICdicmFuY2hlcycpfSBhbmQgJHtsb2NhbExpbmsoWydRdWVyeSBQYXJh
bWV0ZXJzJywgJ1JlcG9zaXRvcnknXSwgJ3JlcG9zaXRvcmllcycpfSwgZW5kcG9pbnRzIHdoaWNo
IHN1cHBvcnQgdGhvc2UgcXVlcmllcyBoYXZlIGRlZmF1bHRzIHdoaWNoIGNvdmVyIG1hbnkgY2Fz
ZXMsIHNvIHRoZSBwcmV2aW91cyBxdWVyeSBjb3VsZCBiZSBzaW1wbGlmaWVkIHRvOmAsCiAgICAg
ICAgICAgICBjb2RlQmxvY2soJ2lkPTI0NzM5MScpLAogICAgICAgICAgICAgYEJlY2F1c2UgZW5k
cG9pbnRzIHN1cHBvcnRpbmcgdGltZSBhcmUgY29udmVydCBldmVyeXRoaW5nIHRvIFVVSUQgb24g
dGhlIGJhY2tlbmQsIHRoZSBxdWVyaWVzIHRvIHRoZXNlIGVuZHBvaW50cyBhcmUgcXVpdGUgZmxl
eGlibGUuIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCBleGFtcGxlcyBvZiB2YWxpZCB0aW1lIHF1ZXJp
ZXM6YCwKICAgICAgICAgICAgIGNvZGVCbG9jaygnYWZ0ZXJfaWQ9MjQ3MzkxJnJlcG9zaXRvcnlf
aWQ9d2Via2l0JyksCiAgICAgICAgICAgICBjb2RlQmxvY2soJ2FmdGVyX2lkPTI0NzM5MCZiZWZv
cmVfdGltZXN0YW1wPTE1NjI5NTI0NzMnKSwKLSAgICAgICAgICAgIGNvZGVCbG9jaygnYmVmb3Jl
X2lkPTI0NzM5MSZhZnRlcl91dWlkPTE1NjI5NTE0OTEwMCZiZWZvcmVfYnJhbmNoPXRydW5rJyks
CisgICAgICAgICAgICBjb2RlQmxvY2soJ2JlZm9yZV9pZD0yNDczOTEmYWZ0ZXJfdXVpZD0xNTYy
OTUxNDkxMDAmYmVmb3JlX2JyYW5jaD1tYWluJyksCiAgICAgICAgIF0sCiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
dmlldy90ZW1wbGF0ZXMvaW52ZXN0aWdhdGUuaHRtbCBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2ludmVzdGlnYXRlLmh0bWwK
aW5kZXggNzY5NWVjODNmYjRhZGFlODk3ZTUxODllN2QyODdmN2FjZmE4MWY1Zi4uNDBjMWQxNTlj
MTJjODA2YzQ5MDhjY2FhZmU3MTA3Zjg0YThiNzdmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvaW52ZXN0
aWdhdGUuaHRtbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS92aWV3L3RlbXBsYXRlcy9pbnZlc3RpZ2F0ZS5odG1sCkBAIC0xNDgsNiArMTQ4LDcg
QEAgY2xhc3MgU3VpdGVGYWlsdXJlc1ZpZXcgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGJyYW5jaGVzID0gbmV3IFNldChjb21taXRzLm1hcChjb21taXQg
PT4gY29tbWl0LmJyYW5jaCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyYW5jaGVzLmRlbGV0ZSgndHJ1bmsnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmFuY2hlcy5kZWxldGUoJ21hc3RlcicpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGVzLmRlbGV0ZSgnbWFpbicpOwogCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9yaWVzID0g
bmV3IFNldChjb21taXRzLm1hcChjb21taXQgPT4gY29tbWl0LnJlcG9zaXRvcnlfaWQpKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvdmlldy90ZW1wbGF0ZXMvc2VhcmNoLmh0bWwgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zZWFyY2guaHRtbAppbmRleCA5
NTkwYmM5YmZmMThiNmY1NGIyZTkxMGVhMmJjYzQ5YzZlOGQwNTFhLi45MDkzOTQxM2RlNDFlMDQz
NzUwMDI3NmI3NjgxN2VmY2MwZTFkZWE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zZWFyY2guaHRtbAor
KysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3
L3RlbXBsYXRlcy9zZWFyY2guaHRtbApAQCAtMjM5LDcgKzIzOSw5IEBAIERPTS5pbmplY3QoCiAg
ICAgICAgICAgICB2aWV3LnJlbG9hZCgpOwogICAgICAgICB9KSwKICAgICAgICAgQ29uZmlndXJh
dGlvblNlbGVjdG9ycygoKSA9PiB7dmlldy5yZWxvYWQoKX0pLAotICAgICAgICBDb21taXRSZXBy
ZXNlbnRhdGlvbigoKSA9PiB7dmlldy5yZWxvYWQoKX0pLAorICAgICAgICBDb21taXRSZXByZXNl
bnRhdGlvbigoKSA9PiB7CisgICAgICAgICAgICB2aWV3LnJlZi5zZXRTdGF0ZSh7Y2hpbGRyZW46
IHZpZXcucmVmLnN0YXRlLmNoaWxkcmVufSk7CisgICAgICAgIH0pLAogICAgIF0sICgpID0+IG9u
TGF5b3V0Q2hhbmdlLmFkZCgpKX0KIAogICAgIDxkaXYgY2xhc3M9Im1haW4gcmlnaHQtc2lkZWJh
ciB1bmRlci10b3BiYXItd2l0aC1hY3Rpb25zIj4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3N1aXRlX3Jl
c3VsdHMuaHRtbCBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L3ZpZXcvdGVtcGxhdGVzL3N1aXRlX3Jlc3VsdHMuaHRtbAppbmRleCBhZTVmYzVhNTQ0YzU0
MGI4MjVlYzgyMTAyODMwYzI4YWEyNzRjN2U3Li45YzI1MGFiYTgwNTU3ZDAxNWNjYjM3Mjc4NmIx
MzNmNDkzMmMxZGRjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zdWl0ZV9yZXN1bHRzLmh0bWwKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1w
bGF0ZXMvc3VpdGVfcmVzdWx0cy5odG1sCkBAIC0xODIsNyArMTgyLDkgQEAgJHtEcmF3ZXIoWwog
ICAgICAgICB2aWV3LnJlbG9hZCgpOwogICAgIH0pLAogICAgIENvbmZpZ3VyYXRpb25TZWxlY3Rv
cnMoKCkgPT4ge3ZpZXcucmVsb2FkKCl9KSwKLSAgICBDb21taXRSZXByZXNlbnRhdGlvbigoKSA9
PiB7dmlldy5yZWxvYWQoKX0pLAorICAgIENvbW1pdFJlcHJlc2VudGF0aW9uKCgpID0+IHsKKyAg
ICAgICAgdmlldy5yZWYuc2V0U3RhdGUodmlldy5yZWYuc3RhdGUpOworICAgIH0pLAogXSwgKCkg
PT4gb25MYXlvdXRDaGFuZ2UuYWRkKCkpfQogPGRpdiBjbGFzcz0ibWFpbiByaWdodC1zaWRlYmFy
IHVuZGVyLXRvcGJhci13aXRoLWFjdGlvbnMiPgogICAgIDxicj4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3NldHVwLnB5IGIvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkKaW5kZXggNzViNWU3ZDczYmE1MzMxNzFmZjgx
Y2E2ODMwYmE4NWVhNjVhMTk5Yi4uZGM2Mjg5YmM1NDA1YmM1M2ExZjFiZTQ2NGFmODI0ZGY3MGY1
NzUyYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0
dXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkK
QEAgLTMwLDcgKzMwLDcgQEAgZGVmIHJlYWRtZSgpOgogCiBzZXR1cCgKICAgICBuYW1lPSdyZXN1
bHRzZGJweScsCi0gICAgdmVyc2lvbj0nMi4wLjMnLAorICAgIHZlcnNpb249JzIuMC40JywKICAg
ICBkZXNjcmlwdGlvbj0nTGlicmFyeSBmb3IgdmlzdWFsaXppbmcsIHByb2Nlc3NpbmcgYW5kIHN0
b3JpbmcgdGVzdCByZXN1bHRzLicsCiAgICAgbG9uZ19kZXNjcmlwdGlvbj1yZWFkbWUoKSwKICAg
ICBjbGFzc2lmaWVycz1bCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3Nl
dHVwLnB5CmluZGV4IDQ0ODUzMWY1Y2Q1MjVjZWI2ZWE4MDM3ZDBiZTU4NzdiN2EyZTViMTcuLjAy
YTE5ZjQyZWVkOGY1NTQ1NTUyM2VlMWRiOThhZGUwNDM1MjhkZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBAIGRlZiBy
ZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0c2NtcHknLAotICAgIHZlcnNpb249
JzAuMTMuNicsCisgICAgdmVyc2lvbj0nMC4xMy43JywKICAgICBkZXNjcmlwdGlvbj0nTGlicmFy
eSBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIGdpdCBhbmQgc3ZuIHJlcG9zaXRvcmllcy4nLAog
ICAgIGxvbmdfZGVzY3JpcHRpb249cmVhZG1lKCksCiAgICAgY2xhc3NpZmllcnM9WwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19p
bml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9fX2luaXRfXy5weQppbmRleCAyNWVkZWNlMTIzM2Y0ZmYwM2M1ZTI5YTQ4YmIwOTIyNjY5NGQx
MDUwLi44NTA4NjIyYWVjYjc4NTIyYjZhYmY2YjczNjFlODQyMTI5Y2JmYzE3IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRf
Xy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9fX2luaXRfXy5weQpAQCAtNDYsNyArNDYsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAg
ICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0
Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAot
dmVyc2lvbiA9IFZlcnNpb24oMCwgMTMsIDYpCit2ZXJzaW9uID0gVmVyc2lvbigwLCAxMywgNykK
IAogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnZmFzdGVuZXJzJywgVmVyc2lvbigwLCAx
NSwgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW9ub3RvbmljJywgVmVyc2lv
bigxLCA1KSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9jb21taXQucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9jb21taXQucHkKaW5kZXggNGI2MWNlMWFkMTc0MTMwMjE5ODlkNmJi
YTQ2NzgzMTA2NTEwY2I0MC4uMDQ0NzFjYmFiMGRkZWNmNmVmM2VkYjVmYTAwOTk0ZGJiYzQ5ZTAx
NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0
c2NtcHkvY29tbWl0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L2NvbW1pdC5weQpAQCAtMzksNiArMzksMTAgQEAgY2xhc3MgQ29tbWl0KG9i
amVjdCk6CiAgICAgY2xhc3MgRW5jb2Rlcihqc29uLkpTT05FbmNvZGVyKToKIAogICAgICAgICBk
ZWYgZGVmYXVsdChzZWxmLCBvYmopOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGRp
Y3QpOgorICAgICAgICAgICAgICAgIHJldHVybiB7a2V5OiBzZWxmLmRlZmF1bHQodmFsdWUpIGZv
ciBrZXksIHZhbHVlIGluIG9iai5pdGVtcygpfQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShv
YmosIGxpc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiBbc2VsZi5kZWZhdWx0KHZhbHVlKSBm
b3IgdmFsdWUgaW4gb2JqXQogICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBDb21t
aXQpOgogICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcihDb21taXQuRW5jb2Rlciwgc2VsZiku
ZGVmYXVsdChvYmopCiAKQEAgLTI3MCw3ICsyNzQsNyBAQCBjbGFzcyBDb21taXQob2JqZWN0KToK
IAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB1dWlkKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2Vs
Zi50aW1lc3RhbXA6CisgICAgICAgIGlmIHNlbGYudGltZXN0YW1wIGlzIE5vbmU6CiAgICAgICAg
ICAgICByZXR1cm4gTm9uZQogICAgICAgICByZXR1cm4gc2VsZi50aW1lc3RhbXAgKiBzZWxmLlVV
SURfTVVMVElQTElFUiArIHNlbGYub3JkZXIKIApAQCAtMjg1LDcgKzI4OSw3IEBAIGNsYXNzIENv
bW1pdChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFzaFs6c2VsZi5IQVNIX0xB
QkVMX1NJWkVdCiAgICAgICAgIGlmIHNlbGYuaWRlbnRpZmllciBpcyBub3QgTm9uZToKICAgICAg
ICAgICAgIHJldHVybiBzdHIoc2VsZi5pZGVudGlmaWVyKQotICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdJbmNvbXBsZXRlIGNvbW1pdCBmb3JtYXQnKQorICAgICAgICByZXR1cm4gJz8nCiAKICAg
ICBkZWYgX19oYXNoX18oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuaWRlbnRpZmllciBhbmQgc2Vs
Zi5icmFuY2g6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVja2V0LnB5IGIvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5w
eQppbmRleCBiZjVlMDQ4ZTBkYzE3OGMzNTA4ODBkMzljNTE1ZGI2OWQ2YzU4ODQ2Li5hMWQxNzA3
MWQwN2JmNmQwNjhlYTg4NmZmY2UxNDlkMTRhMmYwNTQ3IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVj
a2V0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHkKQEAgLTE4Niw5ICsxODYsOSBAQCBjbGFzcyBC
aXRCdWNrZXQobW9ja3MuUmVxdWVzdHMpOgogICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZT1jb21taXQuYXV0aG9yLm5hbWUsCiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAg
ICBjb21taXR0ZXJUaW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCAqIDEwMDAsCi0gICAgICAgICAg
ICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSArICdcbmdpdC1zdm4taWQ6IGh0dHBzOi8vc3Zu
LmV4YW1wbGUub3JnL3JlcG9zaXRvcnkvd2Via2l0L3t9QHt9IDI2OGY0NWNjLWNkMDktMDQxMC1h
YjNjLWQ1MjY5MWI0ZGJmY1xuJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgbWVzc2FnZT1jb21t
aXQubWVzc2FnZSArICgnXG5naXQtc3ZuLWlkOiBodHRwczovL3N2bi5leGFtcGxlLm9yZy9yZXBv
c2l0b3J5L3dlYmtpdC97fUB7fSAyNjhmNDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmNc
bicuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAndHJ1bmsnIGlmIGNvbW1pdC5icmFuY2gg
PT0gc2VsZi5kZWZhdWx0X2JyYW5jaCBlbHNlIGNvbW1pdC5icmFuY2gsIGNvbW1pdC5yZXZpc2lv
biwKLSAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICkgaWYgY29tbWl0LnJldmlz
aW9uIGVsc2UgJycpLAogICAgICAgICAgICAgKSkKIAogICAgICAgICBpZiBzdHJpcHBlZF91cmwu
c3RhcnRzd2l0aCgne30vcmVzdC9icmFuY2gtdXRpbHMvbGF0ZXN0L3t9L2JyYW5jaGVzL2luZm8v
Jy5mb3JtYXQoc2VsZi5ob3N0c1swXSwgc2VsZi5wcm9qZWN0KSk6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUv
Z2l0X2h1Yi5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CmluZGV4IGNhNzUzZmM4ZmRhNzhlZGZlZTAyYzAx
NjY0ZGM4ZjA5ZDI2M2Q3MzEuLjAwNzhjMTczODJkODcwMjIxNjJjZDRjZmE4ZmViNGYxYTkwNTQw
ODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CkBAIC0y
Myw3ICsyMyw2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBqc29uCiAKLWZyb20gZGF0ZXRpbWUgaW1w
b3J0IGRhdGV0aW1lCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgbW9ja3MKIGZyb20gd2Via2l0
c2NtcHkgaW1wb3J0IENvbW1pdCwgcmVtb3RlIGFzIHNjbXJlbW90ZQogCkBAIC0xMzQsNiArMTMz
LDggQEAgY2xhc3MgR2l0SHViKG1vY2tzLlJlcXVlc3RzKToKICAgICAgICAgXSwgdXJsPXVybCkK
IAogICAgIGRlZiBfY29tbWl0X3Jlc3BvbnNlKHNlbGYsIHVybCwgcmVmKToKKyAgICAgICAgZnJv
bSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQorCiAgICAgICAgIGNvbW1pdCA9
IHNlbGYuY29tbWl0KHJlZikKICAgICAgICAgaWYgbm90IGNvbW1pdDoKICAgICAgICAgICAgIHJl
dHVybiBtb2Nrcy5SZXNwb25zZSgKQEAgLTE0NywxMSArMTQ4LDExIEBAIGNsYXNzIEdpdEh1Yiht
b2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAgICAgICAgICAgJ2F1dGhvcic6IHsKICAgICAgICAgICAg
ICAgICAgICAgJ25hbWUnOiBjb21taXQuYXV0aG9yLm5hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICdlbWFpbCc6IGNvbW1pdC5hdXRob3IuZW1haWwsCi0gICAgICAgICAgICAgICAgICAgICdkYXRl
JzogZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChjb21taXQudGltZXN0YW1wKS5zdHJmdGltZSgnJVkt
JW0tJWRUJUg6JU06JVNaJyksCisgICAgICAgICAgICAgICAgICAgICdkYXRlJzogZGF0ZXRpbWUu
dXRjZnJvbXRpbWVzdGFtcChjb21taXQudGltZXN0YW1wIC0gdGltZWRlbHRhKGhvdXJzPTcpLnNl
Y29uZHMpLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onKSwKICAgICAgICAgICAgICAgICB9
LCAnY29tbWl0dGVyJzogewogICAgICAgICAgICAgICAgICAgICAnbmFtZSc6IGNvbW1pdC5hdXRo
b3IubmFtZSwKICAgICAgICAgICAgICAgICAgICAgJ2VtYWlsJzogY29tbWl0LmF1dGhvci5lbWFp
bCwKLSAgICAgICAgICAgICAgICAgICAgJ2RhdGUnOiBkYXRldGltZS5mcm9tdGltZXN0YW1wKGNv
bW1pdC50aW1lc3RhbXApLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onKSwKKyAgICAgICAg
ICAgICAgICAgICAgJ2RhdGUnOiBkYXRldGltZS51dGNmcm9tdGltZXN0YW1wKGNvbW1pdC50aW1l
c3RhbXAgLSB0aW1lZGVsdGEoaG91cnM9Nykuc2Vjb25kcykuc3RyZnRpbWUoJyVZLSVtLSVkVCVI
OiVNOiVTWicpLAogICAgICAgICAgICAgICAgIH0sICdtZXNzYWdlJzogY29tbWl0Lm1lc3NhZ2Ug
KyAnXG5naXQtc3ZuLWlkOiBodHRwczovL3N2bi5leGFtcGxlLm9yZy9yZXBvc2l0b3J5L3dlYmtp
dC97fUB7fSAyNjhmNDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRiZmNcbicuZm9ybWF0KAog
ICAgICAgICAgICAgICAgICAgICAndHJ1bmsnIGlmIGNvbW1pdC5icmFuY2ggPT0gc2VsZi5kZWZh
dWx0X2JyYW5jaCBlbHNlIGNvbW1pdC5icmFuY2gsIGNvbW1pdC5yZXZpc2lvbiwKICAgICAgICAg
ICAgICAgICApIGlmIGNvbW1pdC5yZXZpc2lvbiBlbHNlICcnLApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvc2NtX2Jhc2UucHkgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5w
eQppbmRleCAzNmIxYzAwOTg5NTg3YjE5MTlhODIzZWZjYzhmM2Q0YTc4M2ViYWYxLi5iMDJjOGE0
M2ZkYmVmYzUxNzNjNWRjOTIxNWM5OTQzYzk1NGM5MDAyIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5weQorKysgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5w
eQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTY21CYXNlKG9iamVjdCk6CiAgICAgIyB0aGUgZm9s
bG93aW5nIGlkaW9tcyBzZWVtIGNvbW1vbiBlbm91Z2ggdG8gYmUgc2hhcmVkLgogICAgIERFVl9C
UkFOQ0hFUyA9IHJlLmNvbXBpbGUocicuKlsoZW5nKShkZXYpKGJ1ZyldLy4rJykKICAgICBQUk9E
X0JSQU5DSEVTID0gcmUuY29tcGlsZShyJ1xTKy1bXGQrXC5dKy1icmFuY2gnKQotICAgIEdJVF9T
Vk5fUkVWSVNJT04gPSByZS5jb21waWxlKHInZ2l0LXN2bi1pZDogXFMrOlwvXC8uK0AoP1A8cmV2
aXNpb24+XGQrKSAuKy0uKy0uKy0uKycpCisgICAgR0lUX1NWTl9SRVZJU0lPTiA9IHJlLmNvbXBp
bGUocidbXiBdZ2l0LXN2bi1pZDogXFMrOlwvXC8uK0AoP1A8cmV2aXNpb24+XGQrKSAuKy0uKy0u
Ky0uKycpCiAgICAgREVGQVVMVF9CUkFOQ0hFUyA9IFsnbWFpbicsICdtYXN0ZXInLCAndHJ1bmsn
XQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRldl9icmFuY2hlcz1Ob25lLCBwcm9kX2JyYW5j
aGVzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25lLCBpZD1Ob25lKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424554</attachid>
            <date>2021-03-29 11:47:06 -0700</date>
            <delta_ts>2021-03-29 16:37:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223262-20210329114702.patch</filename>
            <type>text/plain</type>
            <size>122604</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTYyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTNkZTE2ZjIyMDYzN2JhYzdlODc2YTNmOWM4NzQ5NTJk
YWVkOTI2MS4uZjhmY2VhMWRhMjY4MzZiODhkMzY1ZDYxZDA0NzVlNzg0ODYwODExZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
MSBAQAorMjAyMS0wMy0yOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW3Jlc3VsdHNkYnB5XSBSZXR1cm4gbmV3LXN0eWxlIGNvbW1pdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzI2MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzU0ODMzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0LnB5OiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHk6CisgICAgICAgIChfZmluZF9jb21wYXJpc29u
KTogUmVwbGFjZSBpZCB3aXRoIHJlZi4KKyAgICAgICAgKHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9y
YW5nZV9xdWVyeSk6IFN1cHBvcnQgYm90aCBpZCBhbmQgcmVmIGluIFJFU1QgQVBJLgorICAgICAg
ICAodXVpZF9yYW5nZV9mb3JfcXVlcnkpOiBEaXR0by4KKyAgICAgICAgKENvbW1pdENvbnRyb2xs
ZXIuX2ZpbmQpOiBEaXR0by4KKyAgICAgICAgKENvbW1pdENvbnRyb2xsZXIucmVnaXN0ZXIpOiBS
ZXR1cm4gd2Via2l0c2NtcHkuQ29tbWl0IG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVy
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQ29tbWl0Q29udHJvbGxlclRlc3QudGVzdF9icmFuY2hl
cyk6IFdlYktpdCdzIGRlZmF1bHQgYnJhbmNoIGlzIG5vdyBtYWluLgorICAgICAgICAoQ29tbWl0
Q29udHJvbGxlclRlc3QudGVzdF9yZWdpc3Rlcl93aXRoX2Z1bGxfY29tbWl0KTogUmVnaXN0ZXJl
ZCBjb21taXRzIHNob3VsZCBiZSB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAg
KENvbW1pdENvbnRyb2xsZXJUZXN0LnRlc3RfZmluZF9yYW5nZV9pZCk6IFJldHVybmVkIHJldmlz
aW9ucyBhcmUgbm93IGludGVnZXJzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0X3VuaXR0ZXN0LnB5OiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChVcGxvYWRD
b250cm9sbGVyUG9zdFRlc3QudGVzdF91cGxvYWQpOiBXZWJLaXQgY29tbWl0cyBhcmUgdW5kZXIt
cGlubmVkIGJ5IEdpdCBub3cuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvbW9kZWwvYXJjaGl2ZV9jb250ZXh0LnB5OgorICAgICAgICAoQXJjaGl2
ZUNvbnRleHQucmVnaXN0ZXIpOiBVc2Ugd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAg
ICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY2lf
Y29udGV4dC5weToKKyAgICAgICAgKENJQ29udGV4dC5yZWdpc3Rlcik6IFVzZSB3ZWJraXRzY21w
eSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dC5weToKKyAgICAgICAgKENvbW1pdENv
bnRleHQuQ29tbWl0TW9kZWwpOiBSZW5hbWVkIGZyb20gQ29tbWl0TW9kZWxNazIuCisgICAgICAg
IChDb21taXRDb250ZXh0LkNvbW1pdEJ5VXVpZEFzY2VuZGluZyk6IFJlbmFtZWQgZnJvbSBDb21t
aXRCeVV1aWRBc2NlbmRpbmdNazIuCisgICAgICAgIChDb21taXRDb250ZXh0LkNvbW1pdEJ5VXVp
ZERlc2NlbmRpbmcpOiBSZW5hbWVkIGZyb20gQ29tbWl0QnlVdWlkRGVzY2VuZGluZ01rMi4KKyAg
ICAgICAgKENvbW1pdENvbnRleHQuX19pbml0X18pOiBSZW1vdmUgb2xkIHRhYmxlcy4KKyAgICAg
ICAgKENvbW1pdENvbnRleHQudGltZXN0YW1wX3RvX3V1aWQpOiBVc2Ugd2Via2l0c2NtcHkgQ29t
bWl0IG9iamVjdHMuCisgICAgICAgIChDb21taXRDb250ZXh0LmJyYW5jaF9rZXlzX2Zvcl9jb21t
aXRzKTogQWxsIGRlZmF1bHQgYnJhbmNoZXMgc2hvdWxkIGJlIHRyZWF0ZWQgdGhlIHNhbWUuCisg
ICAgICAgIChDb21taXRDb250ZXh0LmZpbmRfY29tbWl0c19ieV9yZWYpOiBGaW5kIGNvbW1pdHMg
YnkgcmV2aXNpb24sIGhhc2ggYW5kIGlkZW50aWZpZXIuCisgICAgICAgIChDb21taXRDb250ZXh0
LnJlZ2lzdGVyKToKKyAgICAgICAgKENvbW1pdENvbnRleHQucmVnaXN0ZXJfY29tbWl0KTogU2F2
ZSBjb21taXQgdG8gbmV3IHRhYmxlcy4KKyAgICAgICAgKENvbW1pdENvbnRleHQudXJsKTogUGFz
cyBjb21taXQgb2JqZWN0IHRvIHJlcG9zaXRvcnkgdXJsIGdlbmVyYXRvci4KKyAgICAgICAgKENv
bW1pdENvbnRleHQuQ29tbWl0QnlJRCk6IERlbGV0ZWQuCisgICAgICAgIChDb21taXRDb250ZXh0
LkNvbW1pdE1vZGVsTWsyKTogUmVuYW1lZCB0byBDb21taXRNb2RlbC4KKyAgICAgICAgKENvbW1p
dENvbnRleHQuQ29tbWl0QnlVdWlkQXNjZW5kaW5nTWsyKTogUmVuYW1lZCB0byBDb21taXRCeVV1
aWRBc2NlbmRpbmcuCisgICAgICAgIChDb21taXRDb250ZXh0LkNvbW1pdEJ5VXVpZERlc2NlbmRp
bmdNazIpOiBSZW5hbWVkIHRvIENvbW1pdEJ5VXVpZERlc2NlbmRpbmcuCisgICAgICAgIChDb21t
aXRDb250ZXh0LmZpbmRfY29tbWl0c19ieV9pZCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHRf
dW5pdHRlc3QucHk6CisgICAgICAgIChDb21taXRDb250ZXh0VGVzdCk6IFVzZSByZWYgaW5zdGVh
ZCBvZiBpZC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC9mYWlsdXJlX2NvbnRleHQucHk6CisgICAgICAgIChGYWlsdXJlQ29udGV4dC5y
ZWdpc3Rlcik6IFVzZSB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKiBTY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9tb2NrX21vZGVsX2Zh
Y3RvcnkucHk6CisgICAgICAgIChNb2NrTW9kZWxGYWN0b3J5KToKKyAgICAgICAgKE1vY2tNb2Rl
bEZhY3Rvcnkud2Via2l0KTogTW9jayBib3RoIFN1YnZlcnNpb24gYW5kIEdpdEh1YiBmb3IgV2Vi
S2l0LgorICAgICAgICAoTW9ja01vZGVsRmFjdG9yeS5jcmVhdGUpOgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRvcnkucHk6
CisgICAgICAgIChSZXBvc2l0b3J5LmNvbW1pdCk6IEJ5IGRlZmF1bHQsIGZ1bGx5IGRlZmluZSBj
b21taXRzLgorICAgICAgICAoU3Rhc2hSZXBvc2l0b3J5LmNvbW1pdCk6IERpdHRvLgorICAgICAg
ICAoU3Rhc2hSZXBvc2l0b3J5LnVybF9mb3JfY29tbWl0KTogQ3JlYXRlIGEgVVJMIGZvciBhIGNv
bW1pdCBvYmplY3QuCisgICAgICAgIChXZWJLaXRSZXBvc2l0b3J5Ll9faW5pdF9fKTogVXNlIGJv
dGggR2l0SHViIGFuZCBTdWJ2ZXJzaW9uLgorICAgICAgICAoV2ViS2l0UmVwb3NpdG9yeS5jb21t
aXQpOiBEZXRlcm1pbmUgd2hpY2ggcmVtb3RlIHRvIHVzZSBiYXNlZCBvbiBwcm92aWRlZCBhcmd1
bWVudHMuCisgICAgICAgIChXZWJLaXRSZXBvc2l0b3J5LnVybF9mb3JfY29tbWl0KTogQ3JlYXRl
IGEgVVJMIGZvciBhIGNvbW1pdCBvYmplY3QuCisgICAgICAgIChXZWJLaXRSZXBvc2l0b3J5LnJl
cHJlc2VudGF0aW9ucyk6IFdlYktpdCBjb21taXRzIGNhbiBiZSByZXByZXNlbnRlZCBieSBoYXNo
ZXMuCisgICAgICAgIChSZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQpOiBEZWxldGVkLgorICAgICAg
ICAoU3Rhc2hSZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0UmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5X3VuaXR0
ZXN0LnB5OgorICAgICAgICAoUmVwb3NpdG9yeVRlc3QudGVzdF9zdm4pOiBXZWJLaXQgZGVmYXVs
dCBicmFuY2ggaXMgbm93IG1haW4uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weToKKyAgICAgICAgKFN1aXRl
Q29udGV4dC5yZWdpc3Rlcik6IFVzZSB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC90ZXN0
X2NvbnRleHQucHk6CisgICAgICAgIChUZXN0Q29udGV4dC5yZWdpc3Rlcik6IFVzZSB3ZWJraXRz
Y21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weToKKyAgICAgICAgKFVwbG9h
ZENvbnRleHQuVXBsb2Fkc0J5Q29uZmlndXJhdGlvbkxlZ2FjeS51bnBhY2spOiBVc2Ugd2Via2l0
c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAgICAgIChVcGxvYWRDb250ZXh0LlVwbG9hZHNCeUNv
bmZpZ3VyYXRpb24udW5wYWNrKTogRGl0dG8uCisgICAgICAgIChVcGxvYWRDb250ZXh0Ll9kb19q
b2JfZm9yX2tleSk6IERpdHRvLgorICAgICAgICAoVXBsb2FkQ29udGV4dC51cGxvYWRfdGVzdF9y
ZXN1bHRzKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkv
cmVzdWx0c2RicHkvdmlldy9hcmNoaXZlX3ZpZXdfdW5pdHRlc3QucHk6CisgICAgICAgIChBcmNo
aXZlVmlld1VuaXR0ZXN0LnJlZ2lzdGVyX2FyY2hpdmUpOiBVc2Ugd2Via2l0c2NtcHkgQ29tbWl0
IG9iamVjdHMuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvdmlldy9jb21taXRfdmlldy5weToKKyAgICAgICAgKENvbW1pdFZpZXcuY29tbWl0KTog
VXNlIHdlYmtpdHNjbXB5IENvbW1pdCBvYmplY3RzLgorICAgICAgICAoQ29tbWl0Vmlldy5pbmZv
KTogRGl0dG8uCisgICAgICAgIChDb21taXRWaWV3LnByZXZpb3VzKTogRGl0dG8uCisgICAgICAg
IChDb21taXRWaWV3Lm5leHQpOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9jb21taXQuanM6CisgICAgICAg
IChDb21taXQpOiAKKyAgICAgICAgKENvbW1pdC5wcm90b3R5cGUubGFiZWwpOiBPbmx5IHByaW50
IGlkZW50aWZpZXIvaGFzaC9yZXZpc2lvbiBpZiB0aGV5IGFyZSBkZWZpbmVkLgorICAgICAgICAo
X0NvbW1pdEJhbmsucHJvdG90eXBlLl9sb2FkU2libGluZ3MpOiBVc2UgcmVmIG92ZXIgaWQuCisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9z
dGF0aWMvanMvZHJhd2VyLmpzOiBtYWluIGlzIGEgZGVmYXVsdCBicmFuY2guCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMv
dGltZWxpbmUuanM6CisgICAgICAgICh4QXhpc0Zyb21TY2FsZSk6IE9ubHkgcHJpbnQgYXV0aG9y
IGlmIHRoZSBhdXRob3IgZXhpc3RzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2NvbW1pdC5odG1sOiBwcmVmZXIgcmVm
IG92ZXIgaWQsIHVzZQorICAgICAgICB3ZWJraXRzY21weSBDb21taXQgb2JqZWN0IGluIEppbmph
IHRlbXBsYXRlLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbDogVXBkYXRlIGRvY3VtZW50
YXRpb24KKyAgICAgICAgdG8gbWF0Y2ggd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBs
YXRlcy9pbnZlc3RpZ2F0ZS5odG1sOiBtYWluIGlzIGEgZGVmYXVsdCBicmFuY2guCisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0
ZXMvc2VhcmNoLmh0bWw6IENvcnJlY3QgQ29tbWl0UmVwcmVzZW50YXRpb24gY2FsbGJhY2suCisg
ICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90
ZW1wbGF0ZXMvc3VpdGVfcmVzdWx0cy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9zZXR1cC5weTogQnVtcCB2ZXJzaW9uLgorICAgICAgICAqIFNj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5OiBEaXR0by4KKyAgICAgICAgKiBT
Y3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weTogRGl0
dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
Y29tbWl0LnB5OgorICAgICAgICAoQ29tbWl0LkVuY29kZXIuZGVmYXVsdCk6IEhhbmRsZSBkaWN0
IGFuZCBsaXN0IGluIEpTT04gY29ycmVjdGx5LgorICAgICAgICAoQ29tbWl0LnV1aWQpOiB1dWlk
IHNob3VsZCBiZSAnTm9uZScgd2hlbiB0aW1lc3RhbXAgaXMgJ05vbmUnLgorICAgICAgICAoQ29t
bWl0Ll9fcmVwcl9fKTogUmV0dXJuIGEgPyBmb3IgYW4gdW5kZWZpbmVkIGNvbW1pdC4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1v
dGUvYml0YnVja2V0LnB5OgorICAgICAgICAoQml0QnVja2V0LnJlcXVlc3QpOiBEbyBub3QgYWRk
IGdpdC1zdm4taWQgZm9yIHVuZGVmaW5lZCByZXZpc2lvbi4KKyAgICAgICAgKiBTY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weToK
KyAgICAgICAgKEdpdEh1Yi5fY29tbWl0X3Jlc3BvbnNlKTogRml4IHVuaXQgdGVzdHMuCisgICAg
ICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvc2NtX2Jhc2Uu
cHk6CisgICAgICAgIChTY21CYXNlKTogRG8gbm90IG1hY2ggZ2l0LXN2biBJRCB3aXRoIGEgc3Bh
Y2UgYmVmb3JlIGl0LgorCiAyMDIxLTAzLTI5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KIAogICAgICAgICBQcm9tb3RlIFdLV2ViVmlldyBnZXRVc2VyTWVkaWEgU1BJIHRvIEFQ
SQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9fX2luaXRfXy5weQppbmRleCA1ZDMzY2ZmZGEyZDJkMjEwYmFhZGY2M2NhMmI4
MDRmNzVjYWI5YjZmLi42YzYwOWRlZDMyYzA2MzI0MmU5MDRkZDk3Njk2MmZkODA3YTUxMzkzIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9fX2luaXRfXy5weQpAQCAtNDQsNiArNDQsNiBAQCBleGNlcHQgSW1wb3J0RXJy
b3I6CiAgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3Rh
bGwgd2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgog
ICAgICkKIAotdmVyc2lvbiA9IFZlcnNpb24oMiwgMCwgMykKK3ZlcnNpb24gPSBWZXJzaW9uKDIs
IDAsIDQpCiAKIG5hbWUgPSAncmVzdWx0c2RicHknCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdC5weSBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xs
ZXIvY29tbWl0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzY3NjhlZTgyOTE2
MGFhMWJmZGY2ZGE2ZGFiN2ViZjE0MGRlNTAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICsw
LDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBjYWxl
bmRhcgotaW1wb3J0IGpzb24KLWltcG9ydCByZQotCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRl
dGltZQotZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKLQot
Ci1jbGFzcyBDb21taXQob2JqZWN0KToKLSAgICBUSU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVS
ID0gMTAwCi0gICAgTUFYX0tFWV9MRU5HVEggPSAxMjgKLQotICAgIFJFVklTSU9OX1JFID0gcmUu
Y29tcGlsZShyJ1swLTldKyQnKQotICAgIEhBU0hfUkUgPSByZS5jb21waWxlKHInW2EtZkEtRjAt
OV0rJCcpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9qc29uKGNscywgZGF0YSk6
Ci0gICAgICAgIGRhdGEgPSBkYXRhIGlmIGlzaW5zdGFuY2UoZGF0YSwgZGljdCkgZWxzZSBqc29u
LmxvYWRzKGRhdGEpCi0gICAgICAgIHJldHVybiBjbHMoCi0gICAgICAgICAgICByZXBvc2l0b3J5
X2lkPWRhdGEuZ2V0KCdyZXBvc2l0b3J5X2lkJyksCi0gICAgICAgICAgICBicmFuY2g9ZGF0YS5n
ZXQoJ2JyYW5jaCcpLAotICAgICAgICAgICAgaWQ9ZGF0YS5nZXQoJ2lkJyksCi0gICAgICAgICAg
ICByZXZpc2lvbj1kYXRhLmdldCgncmV2aXNpb24nKSwKLSAgICAgICAgICAgIGhhc2g9ZGF0YS5n
ZXQoJ2hhc2gnKSwKLSAgICAgICAgICAgIHRpbWVzdGFtcD1kYXRhLmdldCgndGltZXN0YW1wJyks
Ci0gICAgICAgICAgICBvcmRlcj1kYXRhLmdldCgnb3JkZXInKSwKLSAgICAgICAgICAgIGNvbW1p
dHRlcj1kYXRhLmdldCgnY29tbWl0dGVyJyksCi0gICAgICAgICAgICBtZXNzYWdlPWRhdGEuZ2V0
KCdtZXNzYWdlJyksCi0gICAgICAgICkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvc2l0
b3J5X2lkLCBicmFuY2gsIGlkLCB0aW1lc3RhbXA9Tm9uZSwgb3JkZXI9Tm9uZSwgY29tbWl0dGVy
PU5vbmUsIG1lc3NhZ2U9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lKToKLSAgICAgICAg
Zm9yIGFyZ3VtZW50IGluIFsoJ3JlcG9zaXRvcnlfaWQnLCByZXBvc2l0b3J5X2lkKSwgKCdicmFu
Y2gnLCBicmFuY2gpLCAoJ2lkJywgaWQpLCAoJ3RpbWVzdGFtcCcsIHRpbWVzdGFtcCldOgotICAg
ICAgICAgICAgaWYgYXJndW1lbnRbMV0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKGYne2FyZ3VtZW50WzBdfSBpcyBub3QgZGVmaW5lZCBmb3IgY29tbWl0JykKLQot
ICAgICAgICBzZWxmLnJlcG9zaXRvcnlfaWQgPSBzdHIocmVwb3NpdG9yeV9pZCkKLSAgICAgICAg
aWYgbm90IHJlLm1hdGNoKHInXlthLXpBLVo/XSskJywgc2VsZi5yZXBvc2l0b3J5X2lkKSBvciBs
ZW4oc2VsZi5yZXBvc2l0b3J5X2lkKSA+IHNlbGYuTUFYX0tFWV9MRU5HVEg6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKGYiJ3tzZWxmLnJlcG9zaXRvcnlfaWR9JyBpcyBhbiBpbnZhbGlk
IHJlcG9zaXRvcnkgaWQiKQotCi0gICAgICAgIHNlbGYuYnJhbmNoID0gc3RyKGJyYW5jaCkKLSAg
ICAgICAgaWYgbm90IHJlLm1hdGNoKHInXlthLXpBLVowLTktLj8vXSskJywgc2VsZi5icmFuY2gp
IG9yIGxlbihzZWxmLmJyYW5jaCkgPiBzZWxmLk1BWF9LRVlfTEVOR1RIOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcihmIid7c2VsZi5icmFuY2h9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBu
YW1lIikKLQotICAgICAgICAjIEFuIGlkIGlzIGVpdGhlciBhIGdpdCBjb21taXQgb3IgU1ZOIHJl
dmlzaW9uLgotICAgICAgICBzZWxmLmlkID0gc3RyKGlkKQotICAgICAgICBpZiBub3QgcmUubWF0
Y2gocideW2EtZkEtRjAtOT9dKyQnLCBzZWxmLmlkKSBvciBsZW4oc2VsZi5pZCkgPiA0MDoKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiIne3NlbGYuaWR9JyBpcyBhbiBpbnZhbGlkIGNv
bW1pdCBpZCIpCi0KLSAgICAgICAgc2VsZi5yZXZpc2lvbiA9IHJldmlzaW9uCi0gICAgICAgIHNl
bGYuaGFzaCA9IGhhc2gKLSAgICAgICAgaWYgc2VsZi5SRVZJU0lPTl9SRS5tYXRjaChzZWxmLmlk
KToKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLnJldmlzaW9uOgotICAgICAgICAgICAgICAgIHNl
bGYucmV2aXNpb24gPSBzZWxmLmlkCi0gICAgICAgIGVsaWYgc2VsZi5IQVNIX1JFLm1hdGNoKHNl
bGYuaWQpOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuaGFzaDoKLSAgICAgICAgICAgICAgICBz
ZWxmLmhhc2ggPSBzZWxmLmlkCi0KLSAgICAgICAgaWYgc2VsZi5yZXZpc2lvbjoKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLnJldmlzaW9uID0gaW50KHNlbGYucmV2aXNp
b24pCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKGYiJ3tzZWxmLnJldmlzaW9ufScgaXMgbm90IGFuIGludGVnZXIiKQotICAg
ICAgICBpZiBzZWxmLmhhc2g6Ci0gICAgICAgICAgICBzZWxmLmhhc2ggPSBzZWxmLmhhc2gubG93
ZXIoKQotCi0gICAgICAgIGlmIGlzaW5zdGFuY2UodGltZXN0YW1wLCBkYXRldGltZSk6Ci0gICAg
ICAgICAgICBzZWxmLnRpbWVzdGFtcCA9IHRpbWVzdGFtcAotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi50aW1lc3RhbXAgPSBkYXRldGltZS51dGNmcm9tdGltZXN0YW1wKGludCh0aW1l
c3RhbXApKQotICAgICAgICBzZWxmLm9yZGVyID0gaW50KG9yZGVyKSBpZiBvcmRlciBlbHNlIDAK
LQotICAgICAgICBzZWxmLmNvbW1pdHRlciA9IGNvbW1pdHRlciBpZiBjb21taXR0ZXIgZWxzZSBO
b25lCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UgaWYgbWVzc2FnZSBlbHNlIE5vbmUK
LQotICAgIGRlZiB0aW1lc3RhbXBfYXNfZXBvY2goc2VsZik6Ci0gICAgICAgIHJldHVybiBjYWxl
bmRhci50aW1lZ20oc2VsZi50aW1lc3RhbXAudGltZXR1cGxlKCkpCi0KLSAgICBAcHJvcGVydHkK
LSAgICBkZWYgdXVpZChzZWxmKToKLSAgICAgICAgIyBSZWJhc2UtYmFzZWQgd29ya2Zsb3dzIGlu
IGdpdCBjYW4gY2F1c2UgY29tbWl0cyB0byBoYXZlIHRoZSBzYW1lIGNvbW1pdCB0aW1lc3RhbXAu
IFRvIHVuaXF1ZWx5IHJlY29nbml6ZSB0aGVtLAotICAgICAgICAjIG11bHRpcGx5IGVhY2ggdGlt
ZXN0YW1wIGJ5IHRoZSBgVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUmAuCi0gICAgICAgIHJl
dHVybiBzZWxmLnRpbWVzdGFtcF9hc19lcG9jaCgpICogc2VsZi5USU1FU1RBTVBfVE9fVVVJRF9N
VUxUSVBMSUVSICsgc2VsZi5vcmRlcgotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0g
ICAgICAgIHJldHVybiAoaXNpbnN0YW5jZShvdGhlciwgdHlwZShzZWxmKSkgYW5kIChzZWxmLnJl
cG9zaXRvcnlfaWQsIHNlbGYuYnJhbmNoLCBzZWxmLmlkKSA9PSAob3RoZXIucmVwb3NpdG9yeV9p
ZCwgb3RoZXIuYnJhbmNoLCBvdGhlci5pZCkpCi0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVy
KToKLSAgICAgICAgcmV0dXJuIG5vdCAoc2VsZiA9PSBvdGhlcikKLQotICAgIGRlZiBfX2x0X18o
c2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFtcCA8IG90aGVyLnRpbWVzdGFt
cDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHNlbGYudGltZXN0YW1wID4g
b3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVy
biBzZWxmLm9yZGVyIDwgb3RoZXIub3JkZXIKLQotICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIp
OgotICAgICAgICByZXR1cm4gc2VsZiA8IG90aGVyIG9yIHNlbGYgPT0gb3RoZXIKLQotICAgIGRl
ZiBfX2d0X18oc2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFtcCA+IG90aGVy
LnRpbWVzdGFtcDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHNlbGYudGlt
ZXN0YW1wIDwgb3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
ICAgIHJldHVybiBzZWxmLm9yZGVyID4gb3RoZXIub3JkZXIKLQotICAgIGRlZiBfX2dlX18oc2Vs
Ziwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZiA+IG90aGVyIG9yIHNlbGYgPT0gb3RoZXIK
LQotICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5yZXBv
c2l0b3J5X2lkKSBeIGhhc2goc2VsZi5icmFuY2gpIF4gaGFzaChzZWxmLmlkKQotCi0gICAgZGVm
IHRvX2pzb24oc2VsZiwgcHJldHR5X3ByaW50PUZhbHNlKToKLSAgICAgICAgcmV0dXJuIGpzb24u
ZHVtcHMoc2VsZiwgY2xzPXNlbGYuRW5jb2Rlciwgc29ydF9rZXlzPXByZXR0eV9wcmludCwgaW5k
ZW50PTQgaWYgcHJldHR5X3ByaW50IGVsc2UgTm9uZSkKLQotICAgIGNsYXNzIEVuY29kZXIoRmxh
c2tKU09ORW5jb2Rlcik6Ci0KLSAgICAgICAgZGVmIGRlZmF1bHQoc2VsZiwgb2JqKToKLSAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBDb21taXQpOgotICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHt9Ci0gICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gb2JqLl9fZGljdF9fLml0
ZW1zKCk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9
IHZhbHVlCi0gICAgICAgICAgICAgICAgcmVzdWx0Wyd0aW1lc3RhbXAnXSA9IG9iai50aW1lc3Rh
bXBfYXNfZXBvY2goKQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKLSAgICAgICAgICAg
IHJldHVybiBzdXBlcihDb21taXQuRW5jb2Rlciwgc2VsZikuZGVmYXVsdChvYmopCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250
cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weQppbmRl
eCA0NDQyNGQ1NTljOGVhODg2MDRkMzgyNGFlYTAyOTRhYzUxOWJhOWEyLi40ZGJhMzU1ZGQxMjY4
MmRhZWUyZDQzZTI5NmJhZGU5MGJlNGJhZGViIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9s
bGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L2NvbnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkKQEAgLTI0LDI2ICsyNCwyNSBAQCBp
bXBvcnQganNvbgogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogZnJvbSBm
bGFzayBpbXBvcnQgYWJvcnQsIGpzb25pZnksIHJlcXVlc3QKLWZyb20gcmVzdWx0c2RicHkuY29u
dHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1w
b3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5Ci1mcm9t
IHdlYmtpdHNjbXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQgYXMgU2NtQ29tbWl0Citmcm9tIHdl
YmtpdHNjbXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQKIAogCi1kZWYgX2ZpbmRfY29tcGFyaXNv
bihjb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9pZCwgYnJhbmNoLCBpZCwgdXVpZCwgdGltZXN0
YW1wLCBwcmlvcml0eT1taW4pOgotICAgIGlmIGJvb2woaWQpICsgYm9vbCh1dWlkKSArIGJvb2wo
dGltZXN0YW1wKSA+IDE6Ci0gICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5
IHNlYXJjaCBieSBvbmUgb2YgW2NvbW1pdCBpZCwgY29tbWl0IHV1aWQsIHRpbWVzdGFtcF0gaW4g
YSBzaW5nbGUgcmVxdWVzdCcpCitkZWYgX2ZpbmRfY29tcGFyaXNvbihjb21taXRfY29udGV4dCwg
cmVwb3NpdG9yeV9pZCwgYnJhbmNoLCByZWYsIHV1aWQsIHRpbWVzdGFtcCwgcHJpb3JpdHk9bWlu
KToKKyAgICBpZiBib29sKHJlZikgKyBib29sKHV1aWQpICsgYm9vbCh0aW1lc3RhbXApID4gMToK
KyAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlwdGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBv
ZiBbY29tbWl0IGlkL3JlZiwgY29tbWl0IHV1aWQsIHRpbWVzdGFtcF0gaW4gYSBzaW5nbGUgcmVx
dWVzdCcpCiAKICAgICB0cnk6CiAgICAgICAgIGlmIHV1aWQ6CiAgICAgICAgICAgICAjIFdlIGRv
bid0IG5lZWQgcmVhbCBjb21taXQgdG8gc2VhcmNoIGJ5IHV1aWQgYW5kIENvbW1pdENvbnRleHRz
IGhhdmUgdHJvdWJsZSBkaWZmcmVudGlhdGluZyBiZXR3ZWVuIHV1aWRzIGFuZCB0aW1lc3RhbXBz
LgogICAgICAgICAgICAgdXVpZCA9IHByaW9yaXR5KFtpbnQoZWxlbWVudCkgZm9yIGVsZW1lbnQg
aW4gdXVpZF0pCi0gICAgICAgICAgICByZXR1cm4gQ29tbWl0KCc/JywgJz8nLCAnPycsIHV1aWQg
Ly8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIsIHV1aWQgJSBDb21taXQuVElN
RVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikKKyAgICAgICAgICAgIHJldHVybiBDb21taXQodGlt
ZXN0YW1wPXV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUiwgb3JkZXI9dXVpZCAlIENvbW1p
dC5VVUlEX01VTFRJUExJRVIpCiAgICAgICAgIGlmIHRpbWVzdGFtcDoKICAgICAgICAgICAgIHJl
dHVybiBwcmlvcml0eShbcm91bmQoZmxvYXQoZWxlbWVudCkpIGZvciBlbGVtZW50IGluIHRpbWVz
dGFtcF0pCiAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgIGFib3J0KDQwMCwgZGVzY3Jp
cHRpb249J1RpbWVzdGFtcCBhbmQgdXVpZCBtdXN0IGJlIGludGVnZXJzJykKIAotICAgIGlmIG5v
dCByZXBvc2l0b3J5X2lkIGFuZCBub3QgaWQ6CisgICAgaWYgbm90IHJlcG9zaXRvcnlfaWQgYW5k
IG5vdCByZWY6CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgaWYgbm90IHJlcG9zaXRvcnlfaWQ6
CiAgICAgICAgIHJlcG9zaXRvcnlfaWQgPSBjb21taXRfY29udGV4dC5yZXBvc2l0b3JpZXMua2V5
cygpCkBAIC01MywxMSArNTIsMTEgQEAgZGVmIF9maW5kX2NvbXBhcmlzb24oY29tbWl0X2NvbnRl
eHQsIHJlcG9zaXRvcnlfaWQsIGJyYW5jaCwgaWQsIHV1aWQsIHRpbWVzdGFtcCwKIAogICAgIHJl
c3VsdCA9IFtdCiAgICAgZm9yIHJlcG9zaXRvcnkgaW4gcmVwb3NpdG9yeV9pZDoKLSAgICAgICAg
Zm9yIGIgaW4gYnJhbmNoOgotICAgICAgICAgICAgaWYgaWQ6Ci0gICAgICAgICAgICAgICAgZm9y
IGVsbSBpbiBpZDoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGNvbW1pdF9jb250ZXh0
LmZpbmRfY29tbWl0c19ieV9pZChyZXBvc2l0b3J5LCBiLCBlbG0pCi0gICAgICAgICAgICBlbHNl
OgorICAgICAgICBpZiByZWY6CisgICAgICAgICAgICBmb3IgZWxtIGluIHJlZjoKKyAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRzX2J5X3JlZihyZXBv
c2l0b3J5LCByZWY9ZWxtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGIgaW4gYnJh
bmNoOgogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBjb21taXRfY29udGV4dC5maW5kX2NvbW1p
dHNfaW5fcmFuZ2UocmVwb3NpdG9yeSwgYiwgbGltaXQ9MSkKIAogICAgIGlmIG5vdCByZXN1bHQ6
CkBAIC02OCw5ICs2Nyw5IEBAIGRlZiBfZmluZF9jb21wYXJpc29uKGNvbW1pdF9jb250ZXh0LCBy
ZXBvc2l0b3J5X2lkLCBicmFuY2gsIGlkLCB1dWlkLCB0aW1lc3RhbXAsCiBkZWYgdXVpZF9yYW5n
ZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRvcihtZXRob2QpOgog
ICAgICAgICBkZWYgcmVhbF9tZXRob2Qob2JqLCBicmFuY2g9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFmdGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5vbmUsIGFm
dGVyX2lkPU5vbmUsIGFmdGVyX3V1aWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFm
dGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5vbmUsIGFmdGVyX2lkPU5vbmUs
IGFmdGVyX3V1aWQ9Tm9uZSwgYWZ0ZXJfcmVmPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBhZnRlcl90aW1lc3RhbXA9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZV9y
ZXBvc2l0b3J5X2lkPU5vbmUsIGJlZm9yZV9icmFuY2g9Tm9uZSwgYmVmb3JlX2lkPU5vbmUsIGJl
Zm9yZV91dWlkPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVfcmVwb3NpdG9y
eV9pZD1Ob25lLCBiZWZvcmVfYnJhbmNoPU5vbmUsIGJlZm9yZV9pZD1Ob25lLCBiZWZvcmVfdXVp
ZD1Ob25lLCBiZWZvcmVfcmVmPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVf
dGltZXN0YW1wPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgICAgICMgV2UncmUgbWFraW5nIGFu
IGFzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBo
YXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAgICAgICAgICAgICAjIHRoaXMg
ZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CkBAIC03OSwxMSArNzgsMTEgQEAgZGVm
IHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgogICAgICAgICAgICAgICAgICAg
ICBicmFuY2ggPSBbTm9uZV0KICAgICAgICAgICAgICAgICBiZWdpbiA9IF9maW5kX2NvbXBhcmlz
b24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9p
ZD1hZnRlcl9yZXBvc2l0b3J5X2lkLCBicmFuY2g9YWZ0ZXJfYnJhbmNoIG9yIGJyYW5jaCwKLSAg
ICAgICAgICAgICAgICAgICAgaWQ9YWZ0ZXJfaWQsIHV1aWQ9YWZ0ZXJfdXVpZCwgdGltZXN0YW1w
PWFmdGVyX3RpbWVzdGFtcCwgcHJpb3JpdHk9bWluLAorICAgICAgICAgICAgICAgICAgICByZWY9
YWZ0ZXJfcmVmIG9yIGFmdGVyX2lkLCB1dWlkPWFmdGVyX3V1aWQsIHRpbWVzdGFtcD1hZnRlcl90
aW1lc3RhbXAsIHByaW9yaXR5PW1pbiwKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAg
ICAgZW5kID0gX2ZpbmRfY29tcGFyaXNvbigKICAgICAgICAgICAgICAgICAgICAgb2JqLmNvbW1p
dF9jb250ZXh0LCByZXBvc2l0b3J5X2lkPWJlZm9yZV9yZXBvc2l0b3J5X2lkLCBicmFuY2g9YmVm
b3JlX2JyYW5jaCBvciBicmFuY2gsCi0gICAgICAgICAgICAgICAgICAgIGlkPWJlZm9yZV9pZCwg
dXVpZD1iZWZvcmVfdXVpZCwgdGltZXN0YW1wPWJlZm9yZV90aW1lc3RhbXAsIHByaW9yaXR5PW1h
eCwKKyAgICAgICAgICAgICAgICAgICAgcmVmPWJlZm9yZV9yZWYgb3IgYmVmb3JlX2lkLCB1dWlk
PWJlZm9yZV91dWlkLCB0aW1lc3RhbXA9YmVmb3JlX3RpbWVzdGFtcCwgcHJpb3JpdHk9bWF4LAog
ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKG9iaiwgYmVn
aW49YmVnaW4sIGVuZD1lbmQsIGJyYW5jaD1icmFuY2gsICoqa3dhcmdzKQogCkBAIC05NiwxMyAr
OTUsMTQgQEAgZGVmIHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgogZGVmIHV1
aWRfcmFuZ2VfZm9yX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRvcihtZXRob2QpOgogICAgICAg
ICBAdXVpZF9yYW5nZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCkKLSAgICAgICAgZGVmIHJlYWxf
bWV0aG9kKG9iaiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVp
ZD1Ob25lLCB0aW1lc3RhbXA9Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoqa3dhcmdzKToK
LSAgICAgICAgICAgICMgV2UncmUgbWFraW5nIGFuIGFzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1
c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQg
ZG9lcyBub3QsCisgICAgICAgIGRlZiByZWFsX21ldGhvZChvYmosIHJlcG9zaXRvcnlfaWQ9Tm9u
ZSwgYnJhbmNoPU5vbmUsIGlkPU5vbmUsIHJlZj1Ob25lLCB1dWlkPU5vbmUsIHRpbWVzdGFtcD1O
b25lLCBiZWdpbj1Ob25lLCBlbmQ9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBXZSdy
ZSBtYWtpbmcgYW4gYXNzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRv
ciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAgICAgICAg
ICAgICAjIHRoaXMgZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CiAgICAgICAgICAg
ICB3aXRoIG9iai5jb21taXRfY29udGV4dDoKICAgICAgICAgICAgICAgICBpbmRleCA9IF9maW5k
X2NvbXBhcmlzb24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29udGV4dCwgcmVw
b3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLAotICAgICAgICAgICAgICAg
ICAgICBpZD1pZCwgdXVpZD11dWlkLCB0aW1lc3RhbXA9dGltZXN0YW1wLCBwcmlvcml0eT1tYXgs
CisgICAgICAgICAgICAgICAgICAgIHJlZj1yZWYgb3IgaWQsCisgICAgICAgICAgICAgICAgICAg
IHV1aWQ9dXVpZCwgdGltZXN0YW1wPXRpbWVzdGFtcCwgcHJpb3JpdHk9bWF4LAogICAgICAgICAg
ICAgICAgICkKICAgICAgICAgICAgICAgICBpZiBpbmRleDoKICAgICAgICAgICAgICAgICAgICAg
aWYgYmVnaW4gb3IgZW5kOgpAQCAtMTEwLDcgKzExMCw3IEBAIGRlZiB1dWlkX3JhbmdlX2Zvcl9x
dWVyeSgpOgogICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGluZGV4CiAgICAgICAgICAgICAg
ICAgICAgIGVuZCA9IGluZGV4CiAKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGVuZCwg
Q29tbWl0KSBhbmQgZW5kLnJlcG9zaXRvcnlfaWQgIT0gJz8nOgorICAgICAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UoZW5kLCBDb21taXQpIGFuZCBlbmQucmVwb3NpdG9yeV9pZDoKICAgICAgICAg
ICAgICAgICAgICAgcmVwb3NpdG9yaWVzID0gbGlzdChvYmouY29tbWl0X2NvbnRleHQucmVwb3Np
dG9yaWVzLmtleXMoKSkKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzLnJlbW92ZShl
bmQucmVwb3NpdG9yeV9pZCkKICAgICAgICAgICAgICAgICAgICAgY29tbWl0cyA9IFtlbmRdCkBA
IC0xNDAsOSArMTQwLDkgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihIYXNDb21taXRDb250ZXh0
KToKIAogICAgIEB1dWlkX3JhbmdlX2Zvcl9jb21taXRfcmFuZ2VfcXVlcnkoKQogICAgIEBsaW1p
dF9mb3JfcXVlcnkoREVGQVVMVF9MSU1JVCkKLSAgICBkZWYgX2ZpbmQoc2VsZiwgcmVwb3NpdG9y
eV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVpZD1Ob25lLCB0aW1lc3RhbXA9Tm9u
ZSwgbGltaXQ9Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoqa3dhcmdzKToKKyAgICBkZWYg
X2ZpbmQoc2VsZiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgcmVm
PU5vbmUsIHV1aWQ9Tm9uZSwgdGltZXN0YW1wPU5vbmUsIGxpbWl0PU5vbmUsIGJlZ2luPU5vbmUs
IGVuZD1Ob25lLCAqKmt3YXJncyk6CiAgICAgICAgIEFzc2VydFJlcXVlc3QucXVlcnlfa3dhcmdz
X2VtcHR5KCoqa3dhcmdzKQotCisgICAgICAgIHJlZiA9IHJlZiBvciBpZAogICAgICAgICB3aXRo
IHNlbGYuY29tbWl0X2NvbnRleHQ6CiAgICAgICAgICAgICBpZiBub3QgcmVwb3NpdG9yeV9pZDoK
ICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkID0gc2VsZi5jb21taXRfY29udGV4dC5yZXBv
c2l0b3JpZXMua2V5cygpCkBAIC0xNTIsOCArMTUyLDggQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxl
cihIYXNDb21taXRDb250ZXh0KToKICAgICAgICAgICAgIGlmIG5vdCBicmFuY2g6CiAgICAgICAg
ICAgICAgICAgYnJhbmNoID0gW05vbmVdCiAKLSAgICAgICAgICAgIGlmIGJvb2woaWQpICsgYm9v
bCh1dWlkKSArIGJvb2wodGltZXN0YW1wKSA+IDE6Ci0gICAgICAgICAgICAgICAgYWJvcnQoNDAw
LCBkZXNjcmlwdGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBvZiBbY29tbWl0IGlkLCBjb21t
aXQgdXVpZCwgdGltZXN0YW1wXSBpbiBhIHNpbmdsZSByZXF1ZXN0JykKKyAgICAgICAgICAgIGlm
IGJvb2wocmVmKSArIGJvb2wodXVpZCkgKyBib29sKHRpbWVzdGFtcCkgPiAxOgorICAgICAgICAg
ICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5IHNlYXJjaCBieSBvbmUgb2Yg
W2NvbW1pdCBpZC9yZWYsIGNvbW1pdCB1dWlkLCB0aW1lc3RhbXBdIGluIGEgc2luZ2xlIHJlcXVl
c3QnKQogCiAgICAgICAgICAgICByZXN1bHQgPSBbXQogICAgICAgICAgICAgZm9yIHJlcG9zaXRv
cnkgaW4gcmVwb3NpdG9yeV9pZDoKQEAgLTE2NCw5ICsxNjQsOSBAQCBjbGFzcyBDb21taXRDb250
cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocmVz
dWx0c19mb3JfcmVwbykgPj0gbGltaXQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQogCi0gICAgICAgICAgICAgICAgICAgIGlmIGlkOgotICAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIGVsbSBpbiBpZDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9y
ZXBvICs9IHNlbGYuY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnks
IGIsIGVsbSwgbGltaXQ9bGltaXQgLSBsZW4ocmVzdWx0c19mb3JfcmVwbykpCisgICAgICAgICAg
ICAgICAgICAgIGlmIHJlZjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlbG0gaW4gcmVm
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNfZm9yX3JlcG8gKz0gc2VsZi5j
b21taXRfY29udGV4dC5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnksIHJlZj1lbG0sIGxp
bWl0PWxpbWl0IC0gbGVuKHJlc3VsdHNfZm9yX3JlcG8pKQogICAgICAgICAgICAgICAgICAgICBl
bGlmIHV1aWQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZWxtIGluIHV1aWQ6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfcmVwbyArPSBzZWxmLmNvbW1pdF9j
b250ZXh0LmZpbmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRvcnksIGIsIGludChlbG0pLCBsaW1p
dD1saW1pdCAtIGxlbihyZXN1bHRzX2Zvcl9yZXBvKSkKQEAgLTI4MCw3ICsyODAsNyBAQCBjbGFz
cyBDb21taXRDb250cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAgICAgIGFi
b3J0KDQwMCwgZGVzY3JpcHRpb249J0V4cGVjdGVkIHVwbG9hZGVkIGRhdGEgdG8gYmUganNvbicp
CiAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgY2FuZGlkYXRlID0gU2NtQ29tbWl0LmZyb21f
anNvbihjb21taXQpCisgICAgICAgICAgICBjYW5kaWRhdGUgPSBDb21taXQuZnJvbV9qc29uKGNv
bW1pdCkKIAogICAgICAgICAgICAgIyBDb21taXQgbmVlZHMgdG8gYmUgc3VmZmljaWVudGx5IGRl
ZmluZWQKICAgICAgICAgICAgIGlmIGNhbmRpZGF0ZS5yZXBvc2l0b3J5X2lkIGFuZCBjYW5kaWRh
dGUuYnJhbmNoIGFuZCBjYW5kaWRhdGUudGltZXN0YW1wIGFuZCAoY2FuZGlkYXRlLnJldmlzaW9u
IG9yIGNhbmRpZGF0ZS5oYXNoKToKQEAgLTMyOCwxMiArMzI4LDQgQEAgY2xhc3MgQ29tbWl0Q29u
dHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKIAogICAgICAgICBpZiBpc19lbmRwb2ludDoKICAg
ICAgICAgICAgIHJldHVybiBqc29uaWZ5KHsnc3RhdHVzJzogJ29rJ30pCi0gICAgICAgIHJldHVy
biBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPWNvbW1pdC5yZXBvc2l0b3J5X2lk
LAotICAgICAgICAgICAgaWQ9Y29tbWl0LnJldmlzaW9uIG9yIGNvbW1pdC5oYXNoLAotICAgICAg
ICAgICAgYnJhbmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0
LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1pdC5vcmRlciwKLSAgICAgICAgICAg
IGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25l
LAotICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwKLSAgICAgICAgKQorICAgICAg
ICByZXR1cm4gY29tbWl0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29u
dHJvbGxlci9jb21taXRfY29udHJvbGxlcl91bml0dGVzdC5weQppbmRleCA5ZDI2NmI1NTdlM2Jl
ZTMyNTU2MTc1Y2VjYzEwMDg3MWY0MTk2MjE5Li44ZWQ5OWQ4OTI4MWY2NWE4YWNjN2JlMTE0Zjc0
MjBiMzYyNzRiZmE3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyX3VuaXR0ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXJfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDYgQEAK
IGZyb20gZmFrZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVkaXMKIGZyb20gcmVkaXMgaW1wb3J0
IFN0cmljdFJlZGlzCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuYXBpX3JvdXRlcyBpbXBv
cnQgQVBJUm91dGVzCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBD
b21taXQKIGZyb20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC5mbGFza190ZXN0Y2FzZSBpbXBv
cnQgRmxhc2tUZXN0Q2FzZQogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jYXNzYW5kcmFfY29udGV4
dCBpbXBvcnQgQ2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2NrX2Nh
c3NhbmRyYV9jb250ZXh0IGltcG9ydCBNb2NrQ2Fzc2FuZHJhQ29udGV4dApAQCAtMzIsNiArMzEs
NyBAQCBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLm1vZGVsIGltcG9ydCBNb2RlbAogZnJvbSByZXN1
bHRzZGJweS5tb2RlbC53YWl0X2Zvcl9kb2NrZXJfdGVzdF9jYXNlIGltcG9ydCBXYWl0Rm9yRG9j
a2VyVGVzdENhc2UKIGZyb20gcmVzdWx0c2RicHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU3Rh
c2hSZXBvc2l0b3J5LCBXZWJLaXRSZXBvc2l0b3J5CiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQg
T3V0cHV0Q2FwdHVyZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3Mg
Q29tbWl0Q29udHJvbGxlclRlc3QoRmxhc2tUZXN0Q2FzZSwgV2FpdEZvckRvY2tlclRlc3RDYXNl
KToKQEAgLTc2LDcgKzc2LDcgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlclRlc3QoRmxhc2tUZXN0
Q2FzZSwgV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgcmVzcG9uc2UgPSBjbGllbnQu
Z2V0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hlcycpCiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkaWN0KAotICAgICAgICAgICAgd2Via2l0PVsnYnJhbmNoLWEnLCAnYnJhbmNoLWInLCAn
dGFncy90YWctMScsICd0YWdzL3RhZy0yJywgJ3RydW5rJ10sCisgICAgICAgICAgICB3ZWJraXQ9
WydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10sCiAgICAgICAgICAgICBzYWZhcmk9Wydi
cmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10pLCByZXNwb25zZS5qc29uKCkpCiAKICAgICAg
ICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hl
cz9icmFuY2g9YnJhbmNoJykKQEAgLTEyMSwyNyArMTIxLDI4IEBAIGNsYXNzIENvbW1pdENvbnRy
b2xsZXJUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAg
IGdpdF9jb21taXQgPSBDb21taXQoCiAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmkn
LAogICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKLSAgICAgICAgICAgIGlkPSc4ZWJhMjgwZTMy
ZGFhZjVmZGRiYmI2NWFlYTM3OTMyZWE5YWQ4NWRmJywKKyAgICAgICAgICAgIGhhc2g9JzhlYmEy
ODBlMzJkYWFmNWZkZGJiYjY1YWVhMzc5MzJlYTlhZDg1ZGYnLAogICAgICAgICAgICAgdGltZXN0
YW1wPTE2MDE2NTAxMDAsCiAgICAgICAgICAgICBvcmRlcj0wLAotICAgICAgICAgICAgY29tbWl0
dGVyPSdqYmVkYXJkQHdlYmtpdC5vcmcnLAorICAgICAgICAgICAgYXV0aG9yPSdqYmVkYXJkQHdl
YmtpdC5vcmcnLAogICAgICAgICAgICAgbWVzc2FnZT0nY3VzdG9tIGNvbW1pdCcsCiAgICAgICAg
ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIGNsaWVudC5wb3N0KHNlbGYuVVJMICsg
Jy9hcGkvY29tbWl0cycsIGRhdGE9Q29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGdpdF9jb21taXQp
KS5zdGF0dXNfY29kZSkKKyAgICAgICAgcHJpbnQoQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGdp
dF9jb21taXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgY2xpZW50LnBvc3Qoc2Vs
Zi5VUkwgKyAnL2FwaS9jb21taXRzJywganNvbj1Db21taXQuRW5jb2RlcigpLmRlZmF1bHQoZ2l0
X2NvbW1pdCkpLnN0YXR1c19jb2RlKQogICAgICAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoc2Vs
Zi5VUkwgKyAnL2FwaS9jb21taXRzP3JlcG9zaXRvcnlfaWQ9c2FmYXJpJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgyMDAsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKENvbW1pdC5mcm9tX2pzb24ocmVzcG9uc2UuanNvbigpWzBdKSwgZ2l0X2NvbW1p
dCkKIAogICAgICAgICBzdm5fY29tbWl0ID0gQ29tbWl0KAogICAgICAgICAgICAgcmVwb3NpdG9y
eV9pZD0nd2Via2l0JywKLSAgICAgICAgICAgIGJyYW5jaD0ndHJ1bmsnLAotICAgICAgICAgICAg
aWQ9JzEyMzQnLAorICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKKyAgICAgICAgICAgIHJldmlz
aW9uPScxMjM0JywKICAgICAgICAgICAgIHRpbWVzdGFtcD0xNjAxNjUwMTAwLAogICAgICAgICAg
ICAgb3JkZXI9MCwKLSAgICAgICAgICAgIGNvbW1pdHRlcj0namJlZGFyZEB3ZWJraXQub3JnJywK
KyAgICAgICAgICAgIGF1dGhvcj0namJlZGFyZEB3ZWJraXQub3JnJywKICAgICAgICAgICAgIG1l
c3NhZ2U9J2N1c3RvbSBjb21taXQnLAogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHMnLCBkYXRhPUNvbW1p
dC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVzX2NvZGUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHMn
LCBqc29uPUNvbW1pdC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVzX2NvZGUp
CiAgICAgICAgIHJlc3BvbnNlID0gY2xpZW50LmdldChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHM/
cmVwb3NpdG9yeV9pZD13ZWJraXQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVz
cG9uc2Uuc3RhdHVzX2NvZGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LmZyb21f
anNvbihyZXNwb25zZS5qc29uKClbMF0pLCBzdm5fY29tbWl0KQpAQCAtMjA0LDggKzIwNSw4IEBA
IGNsYXNzIENvbW1pdENvbnRyb2xsZXJUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJU
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYucmVnaXN0ZXJfYWxsX2NvbW1pdHMoY2xpZW50KQogICAg
ICAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoc2VsZi5VUkwgKyAnL2FwaS9jb21taXRzP2FmdGVy
X2lkPTYmYmVmb3JlX2lkPWZmZjgzYmIyZDkxNycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MjAwLCByZXNwb25zZS5zdGF0dXNfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbQ29t
bWl0LmZyb21fanNvbihlbGVtZW50KS5pZCBmb3IgZWxlbWVudCBpbiByZXNwb25zZS5qc29uKCld
LCBbCi0gICAgICAgICAgICAnNicsICc5YjgzMTFmMjVhNzdiYTE0OTIzZDlkNWE2NTMyMTAzZjU0
YWJlZmNiJywgJ2ZmZjgzYmIyZDkxNzFiNGQ5MTk2ZTk3N2ViMDUwOGZkNTdlN2EwOGQnLAorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFtDb21taXQuZnJvbV9qc29uKGVsZW1lbnQpLnJldmlzaW9u
IG9yIENvbW1pdC5mcm9tX2pzb24oZWxlbWVudCkuaGFzaCBmb3IgZWxlbWVudCBpbiByZXNwb25z
ZS5qc29uKCldLCBbCisgICAgICAgICAgICA2LCAnOWI4MzExZjI1YTc3YmExNDkyM2Q5ZDVhNjUz
MjEwM2Y1NGFiZWZjYicsICdmZmY4M2JiMmQ5MTcxYjRkOTE5NmU5NzdlYjA1MDhmZDU3ZTdhMDhk
JywKICAgICAgICAgXSkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19k
b2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNz
YW5kcmFDb250ZXh0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1p
dF91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc4ZGE0NWEyNmY4
MzJjNTYxM2E1NmVjZDE0ZGI0NTI5NDM5YjExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDE1NyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1p
bXBvcnQgdW5pdHRlc3QKLQotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBv
cnQgQ29tbWl0Ci0KLQotY2xhc3MgQ29tbWl0VW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgot
Ci0gICAgZGVmIHRlc3RfY29tcGFyZShzZWxmKToKLSAgICAgICAgY29tbWl0MSA9IENvbW1pdCgK
LSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFzdGVyJywKLSAg
ICAgICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJjYTMxNDgyY2E3MTViMzgzJywK
LSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAgICAgICApCi0gICAgICAgIGNv
bW1pdDIgPSBDb21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFu
Y2g9J21hc3RlcicsCi0gICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdj
NWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwgb3JkZXI9
MSwKLSAgICAgICAgKQotICAgICAgICBjb21taXQzID0gQ29tbWl0KAotICAgICAgICAgICAgcmVw
b3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgaWQ9J2Ji
NmJkYTVmNDRkZDI0ZDBiNTQ1MzliOGZmNmU4YzE3ZjUxOTI0OWEnLAotICAgICAgICAgICAgdGlt
ZXN0YW1wPTE1Mzc4MTAyODEsCi0gICAgICAgICkKLSAgICAgICAgY29tbWl0NCA9IENvbW1pdCgK
LSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFzdGVyJywKLSAg
ICAgICAgICAgIGlkPTIzNjUyMiwKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3ODI2NjE0LAot
ICAgICAgICApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvbW1pdDIgPiBjb21taXQxKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tbWl0MiA+PSBjb21taXQxKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUoY29tbWl0MSA+PSBjb21taXQxKQotICAgICAgICBzZWxmLmFzc2VydFRydWUo
Y29tbWl0MSA8IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxIDw9IGNv
bW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxIDw9IGNvbW1pdDEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxID09IGNvbW1pdDEpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGNvbW1pdDIgPCBjb21taXQzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29t
bWl0MyA+IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0MS50aW1lc3Rh
bXAsIGNvbW1pdDIudGltZXN0YW1wKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQ0
ID4gY29tbWl0MykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChjb21taXQzLnJlcG9zaXRv
cnlfaWQsIGNvbW1pdDQucmVwb3NpdG9yeV9pZCkKLQotICAgIGRlZiB0ZXN0X2VuY29kaW5nKHNl
bGYpOgotICAgICAgICBjb21taXRzX3RvX3Rlc3QgPSBbCi0gICAgICAgICAgICBDb21taXQoCi0g
ICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAot
ICAgICAgICAgICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJjYTMxNDgyY2E3MTVi
MzgzJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwKLSAgICAgICAgICAg
ICksIENvbW1pdCgKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFu
Y2g9J21hc3RlcicsCi0gICAgICAgICAgICAgICAgaWQ9JzdiZTQwODQyNThhNDUyZThmZTIyZjM2
Mjg3YzViMzIxZTljODI0OWInLAotICAgICAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1
LCBvcmRlcj0xLAotICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0nZW1haWwxQHdlYmtpdC5vcmcn
LCBtZXNzYWdlPSdDaGFuZ2Vsb2cnLAotICAgICAgICAgICAgKSwgQ29tbWl0KAotICAgICAgICAg
ICAgICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAg
ICAgICAgICBpZD0yMzY1MjIsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc4MjY2MTQs
Ci0gICAgICAgICAgICApLAotICAgICAgICBdCi0gICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0
c190b190ZXN0OgotICAgICAgICAgICAgY29udmVydGVkX2NvbW1pdCA9IENvbW1pdC5mcm9tX2pz
b24oY29tbWl0LnRvX2pzb24oKSkKLQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
aXQsIGNvbnZlcnRlZF9jb21taXQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1p
dC5yZXBvc2l0b3J5X2lkLCBjb252ZXJ0ZWRfY29tbWl0LnJlcG9zaXRvcnlfaWQpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5pZCwgY29udmVydGVkX2NvbW1pdC5pZCkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnRpbWVzdGFtcCwgY29udmVydGVkX2Nv
bW1pdC50aW1lc3RhbXApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5vcmRl
ciwgY29udmVydGVkX2NvbW1pdC5vcmRlcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Y29tbWl0LmNvbW1pdHRlciwgY29udmVydGVkX2NvbW1pdC5jb21taXR0ZXIpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5tZXNzYWdlLCBjb252ZXJ0ZWRfY29tbWl0Lm1lc3Nh
Z2UpCi0KLSAgICBkZWYgdGVzdF91ZGlkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KENvbW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFz
dGVyJywKLSAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5
YzgyNDliJywKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LCBvcmRlcj0xLAotICAg
ICAgICApLnV1aWQsIDE1Mzc1NTA2ODUwMSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWQoc2VsZik6
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0g
ICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJp
JywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4
ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9Tm9u
ZSwKLSAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhj
ZXB0aW9uKSwgJ3RpbWVzdGFtcCBpcyBub3QgZGVmaW5lZCBmb3IgY29tbWl0JykKLQotICAgICAg
ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycm9yOgotICAgICAgICAg
ICAgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J2ludmFsaWQtcmVwbycs
IGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZl
MjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1
NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9y
LmV4Y2VwdGlvbiksICInaW52YWxpZC1yZXBvJyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgaWQi
KQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6
Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0naScg
KiAxMjksIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0
NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1w
PTE1Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
KGVycm9yLmV4Y2VwdGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRv
cnkgaWQiKQotCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMg
ZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9p
ZD0nc2FmYXJpJywgYnJhbmNoPSc8aHRtbD5pbnZhbGlkLWJyYW5jaDwvaHRtbD4nLAotICAgICAg
ICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywK
LSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwKLSAgICAgICAgICAgICkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhjZXB0aW9uKSwgIic8aHRtbD5pbnZh
bGlkLWJyYW5jaDwvaHRtbD4nIGlzIGFuIGludmFsaWQgYnJhbmNoIG5hbWUiKQotCi0gICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAg
ICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNo
PSdpJyAqIDEyOSwKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYy
ODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUs
Ci0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2Vw
dGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBuYW1lIikKLQotICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycm9yOgotICAgICAg
ICAgICAgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJy
YW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nPGh0bWw+MTIzNDwvaHRtbD4nLAot
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAgICAgICAgICAgKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlcnJvci5leGNlcHRpb24pLCAiJzxodG1sPjEyMzQ8
L2h0bWw+JyBpcyBhbiBpbnZhbGlkIGNvbW1pdCBpZCIpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFz
c2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBlcnJvcjoKLSAgICAgICAgICAgIENvbW1pdCgKLSAg
ICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3RlcicsCi0g
ICAgICAgICAgICAgICAgaWQ9JzAnICogNDEsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1
Mzc1NTA2ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVy
cm9yLmV4Y2VwdGlvbiksIGYiJ3snMCcgKiA0MX0nIGlzIGFuIGludmFsaWQgY29tbWl0IGlkIikK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3VwbG9hZF9j
b250cm9sbGVyX3VuaXR0ZXN0LnB5CmluZGV4IGQzZDZhZWJkMzkyZjJmODY5ZWZlMTM0MzA0ZWY0
OTlhZTkwMDc5NzEuLjM3YzVmY2FkYzU5MTA1YjhkM2NiNjY3MzUxOTI1NzBmY2Q4NGNlMWMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5
L2NvbnRyb2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci91cGxvYWRf
Y29udHJvbGxlcl91bml0dGVzdC5weQpAQCAtNDksOCArNDksMTAgQEAgY2xhc3MgVXBsb2FkQ29u
dHJvbGxlclBvc3RUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAg
ICAgZGVmIHRlc3RfdXBsb2FkKHNlbGYsIGNsaWVudCwgKiprd2FyZ3MpOgogICAgICAgICB1cGxv
YWRfZGljdCA9IGRpY3QoCiAgICAgICAgICAgICBzdWl0ZT0nbGF5b3V0LXRlc3RzJywKLSAgICAg
ICAgICAgIGNvbW1pdHM9W2RpY3QocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgaWQ9J2Q4YmNlMjZm
YTY1YzZmYzhmMzljMTc5MjdhYmI3N2Y2OWZhYjgyZmMnKSwgZGljdChyZXBvc2l0b3J5X2lkPSd3
ZWJraXQnLCBpZD02KV0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPUNvbmZpZ3VyYXRpb24u
RW5jb2RlcigpLmRlZmF1bHQoQ29uZmlndXJhdGlvbigKKyAgICAgICAgICAgIGNvbW1pdHM9Wwor
ICAgICAgICAgICAgICAgIGRpY3QocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgaGFzaD0nZDhiY2Uy
NmZhNjVjNmZjOGYzOWMxNzkyN2FiYjc3ZjY5ZmFiODJmYycpLAorICAgICAgICAgICAgICAgIGRp
Y3QocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgaGFzaD0nNzVlYWVmMWM5MjQyZjkyYThkNzY5NGU4
Y2NkMzEwZjY5Y2Y5NjgzYicpLAorICAgICAgICAgICAgXSwgY29uZmlndXJhdGlvbj1Db25maWd1
cmF0aW9uLkVuY29kZXIoKS5kZWZhdWx0KENvbmZpZ3VyYXRpb24oCiAgICAgICAgICAgICAgICAg
cGxhdGZvcm09J01hYycsIHZlcnNpb249JzEwLjE0LjAnLCBzZGs9JzE4QTM5MScsCiAgICAgICAg
ICAgICAgICAgaXNfc2ltdWxhdG9yPUZhbHNlLCBhcmNoaXRlY3R1cmU9J3g4Nl82NCcsCiAgICAg
ICAgICAgICAgICAgc3R5bGU9J1JlbGVhc2UnLCBmbGF2b3I9J3drMicsCkBAIC02Nyw3ICs2OSw3
IEBAIGNsYXNzIFVwbG9hZENvbnRyb2xsZXJQb3N0VGVzdChGbGFza1Rlc3RDYXNlLCBXYWl0Rm9y
RG9ja2VyVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1
c19jb2RlLCAyMDApCiAKICAgICAgICAgcmV0cmlldmVkID0gcmVzcG9uc2UuanNvbigpWzBdCi0g
ICAgICAgIHJldHJpZXZlZFsnY29tbWl0cyddID0gW2RpY3QocmVwb3NpdG9yeV9pZD1jb21taXRb
J3JlcG9zaXRvcnlfaWQnXSwgaWQ9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5nZXQoJ3Jldmlz
aW9uJykpKSBmb3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQorICAgICAgICByZXRy
aWV2ZWRbJ2NvbW1pdHMnXSA9IFtkaWN0KHJlcG9zaXRvcnlfaWQ9Y29tbWl0WydyZXBvc2l0b3J5
X2lkJ10sIGhhc2g9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5nZXQoJ3JldmlzaW9uJykpKSBm
b3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHJldHJpZXZlZCwgdXBsb2FkX2RpY3QpCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNl
Lm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3Nh
bmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29udGV4dC5weSBi
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2Fy
Y2hpdmVfY29udGV4dC5weQppbmRleCBmYTg0ZGYyOTY0MThjMmQyZDZhOThhZDlhZWE4ODQ4Y2Qx
NzQ0ZmNlLi5kNjQ5OGNiYTcyNTNlMjNjODIxNTc1NjIwMWRkNGM1MmYyZThmMTdlIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2Rl
bC9hcmNoaXZlX2NvbnRleHQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvYXJjaGl2ZV9jb250ZXh0LnB5CkBAIC0xLDQgKzEsNCBA
QAotIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTMgKzI3LDEzIEBAIGlt
cG9ydCB6aXBmaWxlCiAKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwog
ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxl
ci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5hcmNoaXZlciBp
bXBvcnQgQXJjaGl2ZXIKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY2Fzc2FuZHJhX2FyY2hpdmVy
IGltcG9ydCBDYXNzYW5kcmFBcmNoaXZlcgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRf
Y29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25m
aWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSBy
ZXN1bHRzZGJweS5tb2RlbC5zM19hcmNoaXZlciBpbXBvcnQgUzNBcmNoaXZlcgogZnJvbSByZXN1
bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ29udGV4dAorZnJvbSB3
ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogZGVmIF9nZXRfdGltZShpbnB1dF90aW1lKToK
QEAgLTExNCw3ICsxMTQsNyBAQCBjbGFzcyBBcmNoaXZlQ29udGV4dChvYmplY3QpOgogCiAgICAg
ICAgIHdpdGggc2VsZjoKICAgICAgICAgICAgIHV1aWQgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnV1
aWRfZm9yX2NvbW1pdHMoY29tbWl0cykKLSAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBD
b21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0g
dGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCisgICAgICAgICAgICB0
dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNv
bmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAg
ICAgICAgIGZvciBicmFuY2ggaW4gc2VsZi5jb21taXRfY29udGV4dC5icmFuY2hfa2V5c19mb3Jf
Y29tbWl0cyhjb21taXRzKToKICAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZ3VyYXRpb25fY29u
dGV4dC5yZWdpc3Rlcl9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIGJyYW5jaD1icmFuY2gs
IHRpbWVzdGFtcD10aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jaV9jb250ZXh0LnB5IGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY2lfY29udGV4dC5w
eQppbmRleCAyZDYwOTc2OGNiMjJiM2JlNWNjNWZhYTViNmM2OTg2MGM1MGI5MDgzLi5hMjMwNDcw
Yjg1M2NiZDE1N2FhM2FjMDY4NWEwOWFkNDA4OWFlMjRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jaV9jb250ZXh0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21v
ZGVsL2NpX2NvbnRleHQucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzEsMTEgKzMxLDEyIEBAIGltcG9ydCB1cmxsaWIucGFyc2UKIGZyb20gY2Fzc2Fu
ZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRp
bWUKIGZyb20gZmFrZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVkaXMKLWZyb20gcmVzdWx0c2Ri
cHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2Rl
bC5jb21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5t
b2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlv
bgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ2Fs
bGJhY2tDb250ZXh0CiAKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdAorCiAKIGNsYXNz
IENJQ29udGV4dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgogICAgIERFRkFVTFRfQ0FTU0FORFJB
X0xJTUlUID0gMTAwCkBAIC0xMzUsNyArMTM2LDcgQEAgY2xhc3MgQ0lDb250ZXh0KFVwbG9hZENh
bGxiYWNrQ29udGV4dCk6CiAgICAgICAgICAgICAgICAgICAgIGRlbCBkZXRhaWxzW2tleV0KIAog
ICAgICAgICAgICAgdXVpZCA9IHNlbGYuY29tbWl0X2NvbnRleHQudXVpZF9mb3JfY29tbWl0cyhj
b21taXRzKQotICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8gQ29tbWl0LlRJTUVTVEFNUF9U
T19VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBz
ZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQorICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8g
Q29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkp
IGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgIHdpdGggc2VsZiwg
c2VsZi5jYXNzYW5kcmEuYmF0Y2hfcXVlcnlfY29udGV4dCgpOgogICAgICAgICAgICAgICAgIGZv
ciBicmFuY2ggaW4gc2VsZi5jb21taXRfY29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhj
b21taXRzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHQucHkKaW5k
ZXggZTMxODYyM2UwMWIyMDJkNmQ1NjYzYjFiZjVhZjk3NjIwZDVhMjJiZi4uMDRjZTdlYTVhYmQ3
OGNmYzI5NjViY2RjMDAzZWUzN2E0NjY3NDExNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHQucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9k
ZWwvY29tbWl0X2NvbnRleHQucHkKQEAgLTI3LDQ1ICsyNywxMyBAQCBpbXBvcnQgdGltZQogZnJv
bSBjYXNzYW5kcmEuY3FsZW5naW5lIGltcG9ydCBjb2x1bW5zCiBmcm9tIGNhc3NhbmRyYS5jcWxl
bmdpbmUubW9kZWxzIGltcG9ydCBNb2RlbAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUK
LWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSBy
ZXN1bHRzZGJweS5tb2RlbC5yZXBvc2l0b3J5IGltcG9ydCBSZXBvc2l0b3J5CiAKLWZyb20gd2Vi
a2l0c2NtcHkgaW1wb3J0IFNjbUJhc2UsIENvbW1pdCBhcyBTY21Db21taXQsIENvbnRyaWJ1dG9y
Ci0KK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IFNjbUJhc2UsIENvbW1pdCwgQ29udHJpYnV0b3IK
IAogY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogCiAgICAgY2xhc3MgQ29tbWl0TW9kZWwo
TW9kZWwpOgotICAgICAgICByZXBvc2l0b3J5X2lkID0gY29sdW1ucy5UZXh0KHBhcnRpdGlvbl9r
ZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSkKLSAgICAgICAgYnJhbmNoID0gY29sdW1ucy5UZXh0KHBh
cnRpdGlvbl9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSkKLSAgICAgICAgY29tbWl0dGVyID0gY29s
dW1ucy5UZXh0KCkKLSAgICAgICAgbWVzc2FnZSA9IGNvbHVtbnMuVGV4dCgpCi0KLSAgICAgICAg
ZGVmIHRvX2NvbW1pdChzZWxmKToKLSAgICAgICAgICAgIHJldHVybiBDb21taXQoCi0gICAgICAg
ICAgICAgICAgcmVwb3NpdG9yeV9pZD1zZWxmLnJlcG9zaXRvcnlfaWQsIGJyYW5jaD1zZWxmLmJy
YW5jaCwKLSAgICAgICAgICAgICAgICBpZD1zZWxmLmNvbW1pdF9pZCwKLSAgICAgICAgICAgICAg
ICB0aW1lc3RhbXA9c2VsZi51dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBM
SUVSLAotICAgICAgICAgICAgICAgIG9yZGVyPXNlbGYudXVpZCAlIENvbW1pdC5USU1FU1RBTVBf
VE9fVVVJRF9NVUxUSVBMSUVSLAotICAgICAgICAgICAgICAgIGNvbW1pdHRlcj1zZWxmLmNvbW1p
dHRlciwgbWVzc2FnZT1zZWxmLm1lc3NhZ2UsCi0gICAgICAgICAgICApCi0KLSAgICBjbGFzcyBD
b21taXRCeUlEKENvbW1pdE1vZGVsKToKLSAgICAgICAgX190YWJsZV9uYW1lX18gPSAnY29tbWl0
c19pZF90b190aW1lc3RhbXBfdXVpZCcKLSAgICAgICAgY29tbWl0X2lkID0gY29sdW1ucy5UZXh0
KHByaW1hcnlfa2V5PVRydWUsIHJlcXVpcmVkPVRydWUpCi0gICAgICAgIHV1aWQgPSBjb2x1bW5z
LkJpZ0ludChyZXF1aXJlZD1UcnVlKQotCi0gICAgY2xhc3MgQ29tbWl0QnlVdWlkQXNjZW5kaW5n
KENvbW1pdE1vZGVsKToKLSAgICAgICAgX190YWJsZV9uYW1lX18gPSAnY29tbWl0c190aW1lc3Rh
bXBfdXVpZF90b19pZF9hc2NlbmRpbmcnCi0gICAgICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChw
cmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVyaW5nX29yZGVyPSdBU0MnKQot
ICAgICAgICBjb21taXRfaWQgPSBjb2x1bW5zLlRleHQocmVxdWlyZWQ9VHJ1ZSkKLQotICAgIGNs
YXNzIENvbW1pdEJ5VXVpZERlc2NlbmRpbmcoQ29tbWl0TW9kZWwpOgotICAgICAgICBfX3RhYmxl
X25hbWVfXyA9ICdjb21taXRzX3RpbWVzdGFtcF91dWlkX3RvX2lkX2Rlc2NlbmRpbmcnCi0gICAg
ICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVl
LCBjbHVzdGVyaW5nX29yZGVyPSdERVNDJykKLSAgICAgICAgY29tbWl0X2lkID0gY29sdW1ucy5U
ZXh0KHJlcXVpcmVkPVRydWUpCi0KLSAgICBjbGFzcyBDb21taXRNb2RlbE1rMihNb2RlbCk6CiAg
ICAgICAgIHJlcG9zaXRvcnlfaWQgPSBjb2x1bW5zLlRleHQocGFydGl0aW9uX2tleT1UcnVlLCBy
ZXF1aXJlZD1UcnVlKQogICAgICAgICBwZW9wbGUgPSBjb2x1bW5zLlRleHQocmVxdWlyZWQ9RmFs
c2UpCiAgICAgICAgIG1lc3NhZ2UgPSBjb2x1bW5zLlRleHQocmVxdWlyZWQ9RmFsc2UpCkBAIC03
NSwyOSArNDMsMjkgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICByZXZp
c2lvbiA9IGNvbHVtbnMuSW50ZWdlcihyZXF1aXJlZD1GYWxzZSkKIAogICAgICAgICBkZWYgdG9f
Y29tbWl0KHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuIFNjbUNvbW1pdCgKKyAgICAgICAgICAg
IHJldHVybiBDb21taXQoCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1zZWxmLnJlcG9z
aXRvcnlfaWQsIGJyYW5jaD1zZWxmLmJyYW5jaCwKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9
c2VsZi51dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSLAotICAgICAg
ICAgICAgICAgIG9yZGVyPXNlbGYudXVpZCAlIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxU
SVBMSUVSLAotICAgICAgICAgICAgICAgIGF1dGhvcj1zZWxmLnBlb3BsZS5nZXQoJ2F1dGhvcicp
IGlmIHNlbGYucGVvcGxlIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXA9c2Vs
Zi51dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIsCisgICAgICAgICAgICAgICAgb3JkZXI9
c2VsZi51dWlkICUgQ29tbWl0LlVVSURfTVVMVElQTElFUiwKKyAgICAgICAgICAgICAgICBhdXRo
b3I9anNvbi5sb2FkcyhzZWxmLnBlb3BsZSkgaWYgc2VsZi5wZW9wbGUgZWxzZSBOb25lLAogICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9c2VsZi5tZXNzYWdlLAogICAgICAgICAgICAgICAgIGlkZW50
aWZpZXI9c2VsZi5pZGVudGlmaWVyLAogICAgICAgICAgICAgICAgIGhhc2g9c2VsZi5oYXNoLAog
ICAgICAgICAgICAgICAgIHJldmlzaW9uPXNlbGYucmV2aXNpb24sCiAgICAgICAgICAgICApCiAK
LSAgICBjbGFzcyBDb21taXRCeVJlZihDb21taXRNb2RlbE1rMik6CisgICAgY2xhc3MgQ29tbWl0
QnlSZWYoQ29tbWl0TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25hbWVfXyA9ICdjb21taXRzX3Jl
Zl90b19vYmplY3QnCiAgICAgICAgIHJlZiA9IGNvbHVtbnMuVGV4dChwcmltYXJ5X2tleT1UcnVl
LCByZXF1aXJlZD1UcnVlKQogICAgICAgICB1dWlkID0gY29sdW1ucy5CaWdJbnQocmVxdWlyZWQ9
VHJ1ZSkKICAgICAgICAgYnJhbmNoID0gY29sdW1ucy5UZXh0KHJlcXVpcmVkPVRydWUpCiAKLSAg
ICBjbGFzcyBDb21taXRCeVV1aWRBc2NlbmRpbmdNazIoQ29tbWl0TW9kZWxNazIpOgorICAgIGNs
YXNzIENvbW1pdEJ5VXVpZEFzY2VuZGluZyhDb21taXRNb2RlbCk6CiAgICAgICAgIF9fdGFibGVf
bmFtZV9fID0gJ2NvbW1pdHNfdXVpZF90b19vYmplY3RfYXNjZW5kaW5nJwogICAgICAgICBicmFu
Y2ggPSBjb2x1bW5zLlRleHQocGFydGl0aW9uX2tleT1UcnVlLCByZXF1aXJlZD1UcnVlKQogICAg
ICAgICB1dWlkID0gY29sdW1ucy5CaWdJbnQocHJpbWFyeV9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1
ZSwgY2x1c3RlcmluZ19vcmRlcj0nQVNDJykKIAotICAgIGNsYXNzIENvbW1pdEJ5VXVpZERlc2Nl
bmRpbmdNazIoQ29tbWl0TW9kZWxNazIpOgorICAgIGNsYXNzIENvbW1pdEJ5VXVpZERlc2NlbmRp
bmcoQ29tbWl0TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25hbWVfXyA9ICdjb21taXRzX3V1aWRf
dG9fb2JqZWN0X2Rlc2NlbmRpbmcnCiAgICAgICAgIGJyYW5jaCA9IGNvbHVtbnMuVGV4dChwYXJ0
aXRpb25fa2V5PVRydWUsIHJlcXVpcmVkPVRydWUpCiAgICAgICAgIHV1aWQgPSBjb2x1bW5zLkJp
Z0ludChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVyaW5nX29yZGVyPSdE
RVNDJykKQEAgLTEyMCwxMCArODgsNyBAQCBjbGFzcyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAg
ICAgICAgIHNlbGYubmFtZSA9ICdjb21taXQtaWRlbnRpZmllcnMnCiAKICAgICAgICAgd2l0aCBz
ZWxmOgotICAgICAgICAgICAgZm9yIG9sZCBpbiBbc2VsZi5Db21taXRCeUlELCBzZWxmLkNvbW1p
dEJ5VXVpZEFzY2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5nXToKLSAgICAgICAg
ICAgICAgICBzZWxmLmNhc3NhbmRyYS5jcmVhdGVfdGFibGUob2xkKQotCi0gICAgICAgICAgICBm
b3IgdGFibGUgaW4gW3NlbGYuQ29tbWl0QnlSZWYsIHNlbGYuQ29tbWl0QnlVdWlkQXNjZW5kaW5n
TWsyLCBzZWxmLkNvbW1pdEJ5VXVpZERlc2NlbmRpbmdNazIsIHNlbGYuQnJhbmNoZXNdOgorICAg
ICAgICAgICAgZm9yIHRhYmxlIGluIFtzZWxmLkNvbW1pdEJ5UmVmLCBzZWxmLkNvbW1pdEJ5VXVp
ZEFzY2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5nLCBzZWxmLkJyYW5jaGVzXToK
ICAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRyYS5jcmVhdGVfdGFibGUodGFibGUpCiAKICAg
ICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtMTM1LDEwICsxMDAsMTAgQEAgY2xhc3MgQ29tbWl0
Q29udGV4dChvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiB0aW1lc3RhbXBfdG9f
dXVpZChjbHMsIHRpbWVzdGFtcD1Ob25lKToKICAgICAgICAgaWYgdGltZXN0YW1wIGlzIE5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4gaW50KHRpbWUudGltZSgpKSAqIENvbW1pdC5USU1FU1RBTVBf
VE9fVVVJRF9NVUxUSVBMSUVSCisgICAgICAgICAgICByZXR1cm4gaW50KHRpbWUudGltZSgpKSAq
IENvbW1pdC5VVUlEX01VTFRJUExJRVIKICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHRpbWVzdGFt
cCwgZGF0ZXRpbWUpOgotICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLnRpbWVnbSh0aW1lc3Rh
bXAudGltZXR1cGxlKCkpICogQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIKLSAg
ICAgICAgcmV0dXJuIGludCh0aW1lc3RhbXApICogQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01V
TFRJUExJRVIKKyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhci50aW1lZ20odGltZXN0YW1wLnRp
bWV0dXBsZSgpKSAqIENvbW1pdC5VVUlEX01VTFRJUExJRVIKKyAgICAgICAgcmV0dXJuIGludCh0
aW1lc3RhbXApICogQ29tbWl0LlVVSURfTVVMVElQTElFUgogCiAgICAgQGNsYXNzbWV0aG9kCiAg
ICAgZGVmIGNvbnZlcnRfdG9fdXVpZChjbHMsIHZhbHVlLCBkZWZhdWx0PTApOgpAQCAtMTYwLDcg
KzEyNSw3IEBAIGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAgIyB0aGlzIGNh
c2UsIHRyYWNrIGJyYW5jaGVzIHdoaWNoIGFyZSBub3QgdGhlIGRlZmF1bHQgYnJhbmNoIGluZGVw
ZW5kZW50bHkuCiAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKICAgICAgICAgICAgIHJl
cG8gPSBzZWxmLnJlcG9zaXRvcmllcy5nZXQoY29tbWl0LnJlcG9zaXRvcnlfaWQsIFJlcG9zaXRv
cnkoa2V5PWNvbW1pdC5yZXBvc2l0b3J5X2lkKSkKLSAgICAgICAgICAgIGlmIGNvbW1pdC5icmFu
Y2ggIT0gcmVwby5kZWZhdWx0X2JyYW5jaDoKKyAgICAgICAgICAgIGlmIGNvbW1pdC5icmFuY2gg
bm90IGluIFNjbUJhc2UuREVGQVVMVF9CUkFOQ0hFUzoKICAgICAgICAgICAgICAgICBicmFuY2hl
cy5hZGQoY29tbWl0LmJyYW5jaCkKICAgICAgICAgaWYgbGVuKGJyYW5jaGVzKSA9PSAwOgogICAg
ICAgICAgICAgYnJhbmNoZXMuYWRkKHNlbGYuREVGQVVMVF9CUkFOQ0hfS0VZKQpAQCAtMTg0LDQ2
ICsxNDksMjcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7UmVwb3NpdG9yeX0sIGdvdCB7dHlwZShyZXBv
c2l0b3J5KX0nKQogICAgICAgICBzZWxmLnJlcG9zaXRvcmllc1tyZXBvc2l0b3J5LmtleV0gPSBy
ZXBvc2l0b3J5CiAKLSAgICBkZWYgZmluZF9jb21taXRzX2J5X2lkKHNlbGYsIHJlcG9zaXRvcnlf
aWQsIGJyYW5jaCwgY29tbWl0X2lkLCBsaW1pdD0xMDApOgotICAgICAgICBpZiBicmFuY2ggaXMg
Tm9uZToKLSAgICAgICAgICAgIGJyYW5jaCA9IHNlbGYucmVwb3NpdG9yaWVzW3JlcG9zaXRvcnlf
aWRdLmRlZmF1bHRfYnJhbmNoCi0KLSAgICAgICAgZGVmIGNhbGxiYWNrKGNvbW1pdF9pZD1jb21t
aXRfaWQpOgorICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlfcmVmKHNlbGYsIHJlcG9zaXRvcnlfaWQs
IHJlZiwgbGltaXQ9MTAwKToKKyAgICAgICAgZGVmIGNhbGxiYWNrKHJlZj1yZWYpOgogICAgICAg
ICAgICAgd2l0aCBzZWxmOgotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29tbWl0X2lk
LCBpbnQpIG9yIGNvbW1pdF9pZC5pc2RpZ2l0KCk6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShyZWYsIGludCkgb3IgcmVmLmlzZGlnaXQoKToKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIFttb2RlbC50b19jb21taXQoKSBmb3IgbW9kZWwgaW4gc2VsZi5jYXNzYW5kcmEuc2VsZWN0
X2Zyb21fdGFibGUoCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5SUQuX190
YWJsZV9uYW1lX18sIGxpbWl0PWxpbWl0LAotICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3Np
dG9yeV9pZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLCBjb21taXRfaWQ9c3RyKGNvbW1p
dF9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVf
bmFtZV9fLCBsaW1pdD1saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlf
aWQ9cmVwb3NpdG9yeV9pZCwgcmVmPSdye30nLmZvcm1hdChyZWYpLAogICAgICAgICAgICAgICAg
ICAgICApXQogCiAgICAgICAgICAgICAgICAgIyBGSVhNRTogU0FTSSBpbmRlY2llcyBhcmUgdGhl
IGNhbm9pY2FsIHdheSB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJ1dCByZXF1aXJlIENhc3NhbmRy
YSAzLjQgd2hpY2gKICAgICAgICAgICAgICAgICAjIGhhc24ndCBiZWVuIGRlcGxveWVkIHRvIG91
ciBkYXRhY2VudGVycyB5ZXQuIFRoaXMgd29ya3MgZm9yIGNvbW1pdHMsIGJ1dCBpcyBsZXNzIHRy
YW5zcGFyZW50LgogICAgICAgICAgICAgICAgIHJldHVybiBbbW9kZWwudG9fY29tbWl0KCkgZm9y
IG1vZGVsIGluIHNlbGYuY2Fzc2FuZHJhLnNlbGVjdF9mcm9tX3RhYmxlKAotICAgICAgICAgICAg
ICAgICAgICBzZWxmLkNvbW1pdEJ5SUQuX190YWJsZV9uYW1lX18sIGxpbWl0PWxpbWl0LAotICAg
ICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPXJlcG9zaXRvcnlfaWQsIGJyYW5jaD1icmFu
Y2gsIGNvbW1pdF9pZF9fZ3RlPWNvbW1pdF9pZC5sb3dlcigpLCBjb21taXRfaWRfX2x0ZT0oY29t
bWl0X2lkLmxvd2VyKCkgKyAnZycpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5
UmVmLl9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgcmVw
b3NpdG9yeV9pZD1yZXBvc2l0b3J5X2lkLCByZWZfX2d0ZT1yZWYubG93ZXIoKSwgcmVmX19sdGU9
KHJlZi5sb3dlcigpICsgJ2cnKSwKICAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIHJldHVy
biBzZWxmLnJ1bl9mdW5jdGlvbl90aHJvdWdoX3JlZGlzX2NhY2hlKAotICAgICAgICAgICAgZidy
ZXBvc2l0b3J5X2lkPXtyZXBvc2l0b3J5X2lkfTpicmFuY2g9e2JyYW5jaH06Y29tbWl0X2lkPXtz
dHIoY29tbWl0X2lkKS5sb3dlcigpfScsCisgICAgICAgICAgICBmJ3JlcG9zaXRvcnlfaWQ9e3Jl
cG9zaXRvcnlfaWR9OnJlZj17c3RyKHJlZikubG93ZXIoKX0nLAogICAgICAgICAgICAgY2FsbGJh
Y2ssCiAgICAgICAgICkKIAotICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlfcmVmKHNlbGYsIHJlcG9z
aXRvcnlfaWQsIHJlZiwgbGltaXQ9MTAwKToKLSAgICAgICAgIyBGSVhNRTogU2hvdWxkIHVzZSB0
aGUgcmVkaXMgY2FjaGUsIGJ1dCB0aGUgcmVkaXMgY2FjaGUgZG9lc24ndCBzdXBwb3J0IG5ldy1z
dHlsZSBjb21taXRzIHlldAotICAgICAgICB3aXRoIHNlbGY6Ci0gICAgICAgICAgICBpZiBpc2lu
c3RhbmNlKHJlZiwgaW50KSBvciByZWYuaXNkaWdpdCgpOgotICAgICAgICAgICAgICAgIHJldHVy
biBbbW9kZWwudG9fY29tbWl0KCkgZm9yIG1vZGVsIGluIHNlbGYuY2Fzc2FuZHJhLnNlbGVjdF9m
cm9tX3RhYmxlKAotICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVf
bmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1y
ZXBvc2l0b3J5X2lkLCByZWY9J3J7fScuZm9ybWF0KHJlZiksCi0gICAgICAgICAgICAgICAgKV0K
LQotICAgICAgICAgICAgIyBGSVhNRTogU0FTSSBpbmRlY2llcyBhcmUgdGhlIGNhbm9pY2FsIHdh
eSB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJ1dCByZXF1aXJlIENhc3NhbmRyYSAzLjQgd2hpY2gK
LSAgICAgICAgICAgICMgaGFzbid0IGJlZW4gZGVwbG95ZWQgdG8gb3VyIGRhdGFjZW50ZXJzIHll
dC4gVGhpcyB3b3JrcyBmb3IgY29tbWl0cywgYnV0IGlzIGxlc3MgdHJhbnNwYXJlbnQuCi0gICAg
ICAgICAgICByZXR1cm4gW21vZGVsLnRvX2NvbW1pdCgpIGZvciBtb2RlbCBpbiBzZWxmLmNhc3Nh
bmRyYS5zZWxlY3RfZnJvbV90YWJsZSgKLSAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVm
Ll9fdGFibGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5
X2lkPXJlcG9zaXRvcnlfaWQsIHJlZl9fZ3RlPXJlZi5sb3dlcigpLCByZWZfX2x0ZT0ocmVmLmxv
d2VyKCkgKyAnZycpLAotICAgICAgICAgICAgKV0KLQogICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlf
dXVpZChzZWxmLCByZXBvc2l0b3J5X2lkLCBicmFuY2gsIHV1aWQsIGxpbWl0PTEwMCk6CiAgICAg
ICAgIGlmIGJyYW5jaCBpcyBOb25lOgogICAgICAgICAgICAgYnJhbmNoID0gc2VsZi5yZXBvc2l0
b3JpZXNbcmVwb3NpdG9yeV9pZF0uZGVmYXVsdF9icmFuY2gKQEAgLTM1OCw5ICszMDQsOSBAQCBj
bGFzcyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAgICBmb3IgY29tbWl0IGluIGNv
bW1pdHM6CiAgICAgICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgKICAg
ICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1jb21taXQucmVwb3NpdG9yeV9pZCwKLSAg
ICAgICAgICAgICAgICAgICAgcmVmPWNvbW1pdC5pZCwKICAgICAgICAgICAgICAgICAgICAgcmV2
aXNpb249Y29tbWl0LnJldmlzaW9uLAogICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5o
YXNoLAorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPWNvbW1pdC5pZGVudGlmaWVyLAog
ICAgICAgICAgICAgICAgICAgICBmYXN0PUZhbHNlLAogICAgICAgICAgICAgICAgICkKICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtMzcyLDI1ICszMTgsMTcgQEAgY2xhc3MgQ29t
bWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICByZXR1cm4gZGljdChzdGF0dXM9J29rJykKIAog
ICAgIGRlZiByZWdpc3Rlcl9jb21taXQoc2VsZiwgY29tbWl0KToKLSAgICAgICAgaWYgbm90IGlz
aW5zdGFuY2UoY29tbWl0LCBTY21Db21taXQpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y
KGYnRXhwZWN0ZWQgdHlwZSB7U2NtQ29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKKyAgICAg
ICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgorICAgICAgICAgICAgcmFpc2Ug
VHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykK
IAogICAgICAgICB3aXRoIHNlbGY6CiAgICAgICAgICAgICBpZiBjb21taXQucmVwb3NpdG9yeV9p
ZCBub3QgaW4gc2VsZi5yZXBvc2l0b3JpZXM6CiAgICAgICAgICAgICAgICAgc2VsZi5yZXBvc2l0
b3JpZXNbY29tbWl0LnJlcG9zaXRvcnlfaWRdID0gUmVwb3NpdG9yeShrZXk9Y29tbWl0LnJlcG9z
aXRvcnlfaWQpCiAKLSAgICAgICAgICAgIGZvciBvbGQgaW4gW3NlbGYuQ29tbWl0QnlJRCwgc2Vs
Zi5Db21taXRCeVV1aWRBc2NlbmRpbmcsIHNlbGYuQ29tbWl0QnlVdWlkRGVzY2VuZGluZ106Ci0g
ICAgICAgICAgICAgICAgc2VsZi5jYXNzYW5kcmEuaW5zZXJ0X3JvdygKLSAgICAgICAgICAgICAg
ICAgICAgb2xkLl9fdGFibGVfbmFtZV9fLAotICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5
X2lkPWNvbW1pdC5yZXBvc2l0b3J5X2lkLAotICAgICAgICAgICAgICAgICAgICBicmFuY2g9Y29t
bWl0LmJyYW5jaCwKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0X2lkPXN0cihjb21taXQucmV2
aXNpb24pLmxvd2VyKCkgaWYgY29tbWl0LnJldmlzaW9uIGVsc2UgY29tbWl0Lmhhc2gsCi0gICAg
ICAgICAgICAgICAgICAgIHV1aWQ9Y29tbWl0LnV1aWQsCi0gICAgICAgICAgICAgICAgICAgIGNv
bW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAot
ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlLAotICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgICAgIGlmIGNvbW1pdC5icmFuY2ggaW4gU2NtQmFzZS5ERUZBVUxUX0JS
QU5DSEVTOgorICAgICAgICAgICAgICAgIGNvbW1pdC5icmFuY2ggPSBzZWxmLnJlcG9zaXRvcmll
c1tjb21taXQucmVwb3NpdG9yeV9pZF0uZGVmYXVsdF9icmFuY2gKIAotICAgICAgICAgICAgZm9y
IHRhYmxlIGluIFtzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZ01rMiwgc2VsZi5Db21taXRCeVV1
aWREZXNjZW5kaW5nTWsyLCBzZWxmLkJyYW5jaGVzXToKKyAgICAgICAgICAgIGZvciB0YWJsZSBp
biBbc2VsZi5Db21taXRCeVV1aWRBc2NlbmRpbmcsIHNlbGYuQ29tbWl0QnlVdWlkRGVzY2VuZGlu
Z106CiAgICAgICAgICAgICAgICAgc2VsZi5jYXNzYW5kcmEuaW5zZXJ0X3JvdygKICAgICAgICAg
ICAgICAgICAgICAgdGFibGUuX190YWJsZV9uYW1lX18sCiAgICAgICAgICAgICAgICAgICAgIHJl
cG9zaXRvcnlfaWQ9Y29tbWl0LnJlcG9zaXRvcnlfaWQsCkBAIC0zOTksNyArMzM3LDcgQEAgY2xh
c3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1p
dC5oYXNoLAogICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPXN0cihjb21taXQpIGlmIGNv
bW1pdC5pZGVudGlmaWVyIGVsc2UgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgdXVpZD1jb21t
aXQudXVpZCwKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0dGVyPWpzb24uZHVtcHMoY29tbWl0
LmF1dGhvciwgY2xzPUNvbnRyaWJ1dG9yLkVuY29kZXIpIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBO
b25lLAorICAgICAgICAgICAgICAgICAgICBwZW9wbGU9anNvbi5kdW1wcyhjb21taXQuYXV0aG9y
LCBjbHM9Q29udHJpYnV0b3IuRW5jb2RlcikgaWYgY29tbWl0LmF1dGhvciBlbHNlIE5vbmUsCiAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3NhZ2UsCiAgICAgICAgICAgICAg
ICAgKQogCkBAIC00MjAsNyArMzU4LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgog
ICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAogICAgICAgICAgICAgICAgICAg
ICBpZGVudGlmaWVyPXN0cihjb21taXQpIGlmIGNvbW1pdC5pZGVudGlmaWVyIGVsc2UgTm9uZSwK
ICAgICAgICAgICAgICAgICAgICAgdXVpZD1jb21taXQudXVpZCwKLSAgICAgICAgICAgICAgICAg
ICAgY29tbWl0dGVyPWpzb24uZHVtcHMoY29tbWl0LmF1dGhvciwgY2xzPUNvbnRyaWJ1dG9yLkVu
Y29kZXIpIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAorICAgICAgICAgICAgICAgICAgICBw
ZW9wbGU9anNvbi5kdW1wcyhjb21taXQuYXV0aG9yLCBjbHM9Q29udHJpYnV0b3IuRW5jb2Rlcikg
aWYgY29tbWl0LmF1dGhvciBlbHNlIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9
Y29tbWl0Lm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgKQogCkBAIC00NDQsMTAgKzM4Miw3IEBA
IGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJl
Z2lzdGVyX2NvbW1pdChjb21taXQpCiAKICAgICBkZWYgdXJsKHNlbGYsIGNvbW1pdCk6Ci0gICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbW1pdCwgQ29tbWl0KSBhbmQgbm90IGlzaW5zdGFuY2Uo
Y29tbWl0LCBTY21Db21taXQpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0
ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKLQogICAgICAgICByZXBvID0g
c2VsZi5yZXBvc2l0b3JpZXMuZ2V0KGNvbW1pdC5yZXBvc2l0b3J5X2lkKQogICAgICAgICBpZiBy
ZXBvOgotICAgICAgICAgICAgcmV0dXJuIHJlcG8udXJsX2Zvcl9jb21taXQoY29tbWl0LmlkIGlm
IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpIGVsc2UgY29tbWl0Lmhhc2ggb3IgY29tbWl0LnJl
dmlzaW9uKQorICAgICAgICAgICAgcmV0dXJuIHJlcG8udXJsX2Zvcl9jb21taXQoY29tbWl0KQog
ICAgICAgICByZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHRfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9j
b21taXRfY29udGV4dF91bml0dGVzdC5weQppbmRleCBjYzQ0MmVmNzA4YTNmZDM1NzlkYWY4N2Rj
NjJhM2JlZjQxODA5YzMyLi5jNmUxZTJiMTgzYTJiMjI1NDU4Y2Q3YzEzODRkOWUxYTUzZDdjZWMy
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC9jb21taXRfY29udGV4dF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dF91
bml0dGVzdC5weQpAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0
Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICBmb3IgYnJhbmNoLCBjb21t
aXRzIGluIHJlcG9zaXRvcnkuY29tbWl0cy5pdGVtcygpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yIGNvbW1pdCBpbiBjb21taXRzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYuZGF0YWJhc2UucmVnaXN0ZXJfcGFydGlhbF9jb21taXQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGtleSwgcmVmPWNvbW1pdC5oYXNoIG9yIGNvbW1pdC5yZXZpc2lvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCBoYXNoPWNvbW1pdC5oYXNoLCByZXZp
c2lvbj1jb21taXQucmV2aXNpb24sIGZhc3Q9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlciht
b2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNv
bnRleHQpCkBAIC03MCwxNSArNzAsMTUgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZv
ckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2Rh
dGFiYXNlKCkKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Q4YmNlMjZmYTY1Yycp
XSwKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9pZChyZXBv
c2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21haW4nLCBjb21taXRfaWQ9J2Q4YmNlMjZmYTY1
YycpLAorICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0n
ZDhiY2UyNmZhNjVjJyldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21t
aXRzX2J5X3JlZihyZXBvc2l0b3J5X2lkPSdzYWZhcmknLCByZWY9J2Q4YmNlMjZmYTY1YycpLAog
ICAgICAgICAgICAgKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgICAgIFtzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NildLAotICAgICAg
ICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnlfaWQ9
J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCBjb21taXRfaWQ9NiksCisgICAgICAgICAgICAgICAg
W3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KV0sCisgICAgICAgICAgICAgICAgc2Vs
Zi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIHJl
Zj02KSwKICAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVu
KHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcs
IGJyYW5jaD0ndHJ1bmsnLCBjb21taXRfaWQ9JzEyMzQnKSkpCisgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDAsIGxlbihzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9yZWYocmVwb3Np
dG9yeV9pZD0nd2Via2l0JywgcmVmPScxMjM0JykpKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0
Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19j
YXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCiAgICAgZGVmIHRlc3RfY29tbWl0X2J5X3V1
aWQoc2VsZiwgcmVkaXM9U3RyaWN0UmVkaXMsIGNhc3NhbmRyYT1DYXNzYW5kcmFDb250ZXh0KToK
QEAgLTg3LDEyICs4NywxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2Vy
VGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2Uo
KQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtzZWxm
LnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nMWFiZTI1YjQ0M2U5JyldLAorICAg
ICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nMWFiZTI1YjQ0
M2U5JyldLAogICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3V1
aWQocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWluJywgdXVpZD0xNjAxNjYzMDAw
MDApLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAg
ICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpXSwKLSAg
ICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRv
cnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCB1dWlkPTE2MDE2Mzk5MDAwMCksCisgICAg
ICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KV0sCisgICAgICAg
ICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfdXVpZChyZXBvc2l0b3J5X2lk
PSd3ZWJraXQnLCBicmFuY2g9J21haW4nLCB1dWlkPTE2MDE2Mzk5MDAwMCksCiAgICAgICAgICAg
ICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tf
cmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4
dCkKQEAgLTEwMiwxMiArMTAyLDEyIEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JE
b2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRh
YmFzZSgpCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
W3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPScxYWJlMjViNDQzZTknKV0s
CisgICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPScxYWJl
MjViNDQzZTknKV0sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNf
YnlfdGltZXN0YW1wKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIHRpbWVz
dGFtcD0xNjAxNjYzMDAwKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9p
ZChpZD02KV0sCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlf
dGltZXN0YW1wKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCB0aW1lc3Rh
bXA9MTYwMTYzOTkwMCksCisgICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29t
bWl0KHJlZj02KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNf
YnlfdGltZXN0YW1wKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIHRpbWVz
dGFtcD0xNjAxNjM5OTAwKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMiwgbGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3RpbWVzdGFtcChyZXBv
c2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21haW4nLCB0aW1lc3RhbXA9MTYwMTY2ODAwMCkp
KQogCkBAIC0xMTgsNyArMTE4LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRv
Y2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFi
YXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwgbGVuKHNlbGYuZGF0YWJhc2Uu
ZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFp
bicpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgW3Nl
bGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwgc2Vs
Zi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2JhZTVkMWU5MDk5OScpXSwKKyAg
ICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZm
YTY1YycpLCBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5Jyld
LAogICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJl
cG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGxpbWl0PTIpLAogICAgICAgICAg
ICAgKQogCkBAIC0xMjcsMTAgKzEyNywxMCBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0
Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJp
KCksIE1vY2tNb2RlbEZhY3Rvcnkud2Via2l0KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0
YWJhc2UocmVkaXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEpCiAgICAgICAgICAgICBzZWxm
LmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDQsIGxlbihzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19pbl9yYW5nZShyZXBvc2l0b3J5
X2lkPSd3ZWJraXQnLCBicmFuY2g9J3RydW5rJykpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCg0LCBsZW4oc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9y
eV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJykpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lk
KGlkPTYpLCBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NCldLAotICAgICAg
ICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlf
aWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCBsaW1pdD0yKSwKKyAgICAgICAgICAgICAgICBb
c2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBzZWxmLnN2bl9yZXBvc2l0b3J5LmNv
bW1pdChyZWY9NCldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRz
X2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIGxpbWl0PTIp
LAogICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25v
X2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nh
c3NhbmRyYUNvbnRleHQpCkBAIC0xMzksNyArMTM5LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRl
c3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFz
ZShyZWRpcz1yZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAgIHNlbGYuYWRk
X2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Ci0gICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlk
PSdiYWU1ZDFlOTA5OTknKSwgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9
JzFhYmUyNWI0NDNlOScpXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5
LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpLCBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0
KHJlZj0nMWFiZTI1YjQ0M2U5JyldLAogICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmlu
ZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbics
IGJlZ2luPTE2MDE2NjMwMDAsIGVuZD0xNjAxNjY4MDAwKSwKICAgICAgICAgICAgICkKIApAQCAt
MTQ5LDggKzE0OSw4IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0
Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVkaXM9cmVkaXMsIGNhc3Nh
bmRyYT1jYXNzYW5kcmEpCiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRh
YmFzZSgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtz
ZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksIHNlbGYuc3ZuX3JlcG9zaXRv
cnkuY29tbWl0X2Zvcl9pZChpZD00KV0sCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5m
aW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVu
aycsIGJlZ2luPTE2MDE2Mzc5MDAsIGVuZD0xNjAxNjM5OTAwKSwKKyAgICAgICAgICAgICAgICBb
c2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBzZWxmLnN2bl9yZXBvc2l0b3J5LmNv
bW1pdChyZWY9NCldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRz
X2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIGJlZ2luPTE2
MDE2Mzc5MDAsIGVuZD0xNjAxNjM5OTAwKSwKICAgICAgICAgICAgICkKIAogICAgIEBXYWl0Rm9y
RG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVk
aXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQpAQCAtMTYwLDkgKzE2MCw5
IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAg
ICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAKICAgICAgICAgICAg
IGNvbW1pdHMgPSBbCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1p
dF9mb3JfaWQoaWQ9JzFhYmUyNWI0NDNlOScpLAotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hf
cmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdmZmY4M2JiMmQ5MTcnKSwKLSAgICAgICAgICAg
ICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nOWI4MzExZjI1YTc3
JyksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9JzFh
YmUyNWI0NDNlOScpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21t
aXQocmVmPSdmZmY4M2JiMmQ5MTcnKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj0nOWI4MzExZjI1YTc3JyksCiAgICAgICAgICAgICBdCiAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdHMsIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRz
X2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsICBiZWdpbj1j
b21taXRzWy0xXSwgZW5kPWNvbW1pdHNbMF0pKQogCkBAIC0xNzMsMzAgKzE3MywzMCBAQCBjbGFz
cyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAg
c2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBjb21taXRz
ID0gWwotICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChp
ZD02KSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQo
aWQ9NCksCi0gICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lk
KGlkPTIpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02
KSwKKyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NCksCisg
ICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTIpLAogICAgICAg
ICAgICAgXQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRzLCBzZWxmLmRhdGFi
YXNlLmZpbmRfY29tbWl0c19pbl9yYW5nZShyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9
J3RydW5rJywgYmVnaW49Y29tbWl0c1stMV0sIGVuZD1jb21taXRzWzBdKSkKKyAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0cywgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5f
cmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJywgYmVnaW49Y29tbWl0
c1stMV0sIGVuZD1jb21taXRzWzBdKSkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9j
a19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJh
PU1vY2tDYXNzYW5kcmFDb250ZXh0KQogICAgIGRlZiB0ZXN0X2NvbW1pdF9mcm9tX3N0YXNoX3Jl
cG8oc2VsZiwgcmVkaXM9U3RyaWN0UmVkaXMsIGNhc3NhbmRyYT1DYXNzYW5kcmFDb250ZXh0KToK
ICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5LnNhZmFyaSgpLCBNb2NrTW9kZWxGYWN0b3J5
LndlYmtpdCgpOgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFiYXNlKHJlZGlzPXJlZGlzLCBj
YXNzYW5kcmE9Y2Fzc2FuZHJhKQotICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5yZWdpc3Rlcl9w
YXJ0aWFsX2NvbW1pdCgnc2FmYXJpJywgaGFzaD0nZDhiY2UyNmZhNjVjJykKKyAgICAgICAgICAg
IHNlbGYuZGF0YWJhc2UucmVnaXN0ZXJfcGFydGlhbF9jb21taXQoJ3NhZmFyaScsIGhhc2g9J2Q4
YmNlMjZmYTY1YycsIGZhc3Q9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot
ICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0n
ZDhiY2UyNmZhNjVjJyldLAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21t
aXRzX2J5X2lkKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGNvbW1pdF9p
ZD0nZDhiY2UyNmZhNjVjJyksCisgICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRh
YmFzZS5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIHJlZj0nZDhi
Y2UyNmZhNjVjJyksCiAgICAgICAgICAgICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNl
Lm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3Nh
bmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKICAgICBkZWYgdGVzdF9jb21taXRfZnJvbV9zdm5f
cmVwbyhzZWxmLCByZWRpcz1TdHJpY3RSZWRpcywgY2Fzc2FuZHJhPUNhc3NhbmRyYUNvbnRleHQp
OgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJpKCksIE1vY2tNb2RlbEZhY3Rv
cnkud2Via2l0KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVkaXM9cmVkaXMs
IGNhc3NhbmRyYT1jYXNzYW5kcmEpCi0gICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnJlZ2lzdGVy
X3BhcnRpYWxfY29tbWl0KCd3ZWJraXQnLCByZXZpc2lvbj02KQorICAgICAgICAgICAgc2VsZi5k
YXRhYmFzZS5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgnd2Via2l0JywgcmV2aXNpb249NiwgZmFz
dD1GYWxzZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
W3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV0sCi0gICAgICAgICAgICAg
ICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfaWQocmVwb3NpdG9yeV9pZD0nd2Via2l0
JywgYnJhbmNoPSd0cnVuaycsIGNvbW1pdF9pZD02KSwKKyAgICAgICAgICAgICAgICBbc2VsZi5z
dm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpXSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFi
YXNlLmZpbmRfY29tbWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgcmVmPTYpLAog
ICAgICAgICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2Rv
Y2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3Nh
bmRyYUNvbnRleHQpCkBAIC0yMDYsNyArMjA2LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3Qo
V2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRz
X3RvX2RhdGFiYXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydicmFuY2gtYScs
ICdicmFuY2gtYicsICdtYWluJ10sIHNlbGYuZGF0YWJhc2UuYnJhbmNoZXMocmVwb3NpdG9yeV9p
ZD0nc2FmYXJpJykpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
ICAgIFsnYnJhbmNoLWEnLCAnYnJhbmNoLWInLCAndGFncy90YWctMScsICd0YWdzL3RhZy0yJywg
J3RydW5rJ10sCisgICAgICAgICAgICAgICAgWydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWlu
J10sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5icmFuY2hlcyhyZXBvc2l0b3J5X2lk
PSd3ZWJraXQnKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
WydicmFuY2gtYScsICdicmFuY2gtYiddLCBzZWxmLmRhdGFiYXNlLmJyYW5jaGVzKHJlcG9zaXRv
cnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nYnJhbmNoJykpCkBAIC0yMTksMTIgKzIxOSwxMiBAQCBj
bGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAg
ICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UubmV4dF9jb21taXQo
c2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTQpKSwKLSAgICAgICAgICAgICAg
ICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksCisgICAgICAgICAgICAg
ICAgc2VsZi5kYXRhYmFzZS5uZXh0X2NvbW1pdChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChy
ZWY9NCkpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02
KSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICAgICAgc2VsZi5kYXRhYmFzZS5uZXh0X2NvbW1pdChzZWxmLnN0YXNoX3JlcG9zaXRvcnku
Y29tbWl0X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5JykpLAotICAgICAgICAgICAgICAgIHNlbGYu
c3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwKKyAgICAg
ICAgICAgICAgICBzZWxmLmRhdGFiYXNlLm5leHRfY29tbWl0KHNlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXQocmVmPSdiYWU1ZDFlOTA5OTknKSksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFz
aF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpLAogICAgICAgICAgICAgKQog
CiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlz
PUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBA
IC0yMzQsMTIgKzIzNCwxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2Vy
VGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2Uo
KQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYu
c3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD00KSwKLSAgICAgICAgICAgICAgICBzZWxm
LmRhdGFiYXNlLnByZXZpb3VzX2NvbW1pdChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3Jf
aWQoaWQ9NikpLAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJl
Zj00KSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnByZXZpb3VzX2NvbW1pdChzZWxm
LnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NikpLAogICAgICAgICAgICAgKQogICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRv
cnkuY29tbWl0X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5JyksCi0gICAgICAgICAgICAgICAgc2Vs
Zi5kYXRhYmFzZS5wcmV2aW91c19jb21taXQoc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9m
b3JfaWQoaWQ9J2Q4YmNlMjZmYTY1YycpKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3Jl
cG9zaXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyksCisgICAgICAgICAgICAgICAgc2Vs
Zi5kYXRhYmFzZS5wcmV2aW91c19jb21taXQoc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChy
ZWY9J2Q4YmNlMjZmYTY1YycpKSwKICAgICAgICAgICAgICkKIAogICAgIEBXYWl0Rm9yRG9ja2Vy
VGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1v
Y2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQpAQCAtMjUwLDIyICsyNTAsMjEgQEAg
Y2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAg
ICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKIAogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnNpYmxpbmdfY29t
bWl0cyhzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksIFsnc2FmYXJpJ10p
LAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3Zu
X3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSwgWydzYWZhcmknXSksCiAgICAgICAgICAgICAgICAg
eydzYWZhcmknOiBbCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5j
b21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2JhZTVkMWU5MDk5OScpLAotICAg
ICAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0n
MWFiZTI1YjQ0M2U5JyksCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXRfZm9yX2lkKGlkPSdmZmY4M2JiMmQ5MTcnKSwKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzliODMxMWYyNWE3NycpLAot
CisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdk
OGJjZTI2ZmE2NWMnKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5
LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0
YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nMWFiZTI1YjQ0M2U5JyksCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdmZmY4M2JiMmQ5MTcnKSwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9Jzli
ODMxMWYyNWE3NycpLAogICAgICAgICAgICAgICAgIF19LAogICAgICAgICAgICAgKQogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnNp
YmxpbmdfY29tbWl0cyhzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhi
Y2UyNmZhNjVjJyksIFsnd2Via2l0J10pLAotICAgICAgICAgICAgICAgIHsnd2Via2l0JzogW3Nl
bGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV19LAorICAgICAgICAgICAgICAg
IHNlbGYuZGF0YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21t
aXQocmVmPSdkOGJjZTI2ZmE2NWMnKSwgWyd3ZWJraXQnXSksCisgICAgICAgICAgICAgICAgeyd3
ZWJraXQnOiBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpXX0sCiAgICAgICAgICAg
ICApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYu
ZGF0YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9p
ZChpZD0xKSwgWydzYWZhcmknXSksCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5zaWJs
aW5nX2NvbW1pdHMoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTEpLCBbJ3NhZmFyaSdd
KSwKICAgICAgICAgICAgICAgICB7J3NhZmFyaSc6IFtdfSwKICAgICAgICAgICAgICkKIApAQCAt
Mjc0LDggKzI3Myw4IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0
Q2FzZSk6CiAgICAgICAgIHdpdGggTW9ja01vZGVsRmFjdG9yeS5zYWZhcmkoKSwgTW9ja01vZGVs
RmFjdG9yeS53ZWJraXQoKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1y
ZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAgIHV1aWQgPSBDb21taXRDb250
ZXh0LnV1aWRfZm9yX2NvbW1pdHMoWwotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3Np
dG9yeS5jb21taXRfZm9yX2lkKGlkPSdiYWU1ZDFlOTA5OTknKSwKLSAgICAgICAgICAgICAgICBz
ZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksCisgICAgICAgICAgICAgICAg
c2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpLAorICAgICAg
ICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSwKICAgICAgICAgICAg
IF0pCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV1aWQsIDE2MDE2NjgwMDAwMCkKIApA
QCAtMjg0LDIwICsyODMsMjAgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tl
clRlc3RDYXNlKToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5LnNhZmFyaSgpLCBNb2Nr
TW9kZWxGYWN0b3J5LndlYmtpdCgpOgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFiYXNlKHJl
ZGlzPXJlZGlzLCBjYXNzYW5kcmE9Y2Fzc2FuZHJhKQogICAgICAgICAgICAgYnJhbmNoZXMgPSBz
ZWxmLmRhdGFiYXNlLmJyYW5jaF9rZXlzX2Zvcl9jb21taXRzKFsKLSAgICAgICAgICAgICAgICBz
ZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJyksCi0g
ICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpLAor
ICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2
ZmE2NWMnKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9
NiksCiAgICAgICAgICAgICBdKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChicmFuY2hl
cywgWydkZWZhdWx0J10pCiAKICAgICAgICAgICAgIGJyYW5jaGVzID0gc2VsZi5kYXRhYmFzZS5i
cmFuY2hfa2V5c19mb3JfY29tbWl0cyhbCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBv
c2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzYyMTY1MmFkZDdmYycpLAotICAgICAgICAgICAgICAg
IHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD03KSwKKyAgICAgICAgICAgICAg
ICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nNjIxNjUyYWRkN2ZjJyksCisgICAg
ICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTcpLAogICAgICAgICAg
ICAgXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnJhbmNoZXMsIFsnYnJhbmNoLWEn
XSkKIAogICAgICAgICAgICAgYnJhbmNoZXMgPSBzZWxmLmRhdGFiYXNlLmJyYW5jaF9rZXlzX2Zv
cl9jb21taXRzKFsKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0
X2Zvcl9pZChpZD0nNzkwNzI1YTZkNzllJyksCi0gICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVw
b3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTgpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hf
cmVwb3NpdG9yeS5jb21taXQocmVmPSc3OTA3MjVhNmQ3OWUnKSwKKyAgICAgICAgICAgICAgICBz
ZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9OCksCiAgICAgICAgICAgICBdKQogICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChicmFuY2hlcywgWydicmFuY2gtYiddKQogCkBAIC0zMDcs
OSArMzA2LDkgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNl
KToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1yZWRpcywgY2Fzc2FuZHJh
PWNhc3NhbmRyYSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICAg
ICAgJ2h0dHBzOi8vYml0YnVja2V0LmV4YW1wbGUuY29tL3Byb2plY3RzL1NBRkFSSS9yZXBvcy9z
YWZhcmkvY29tbWl0cy9kOGJjZTI2ZmE2NWM2ZmM4ZjM5YzE3OTI3YWJiNzdmNjlmYWI4MmZjJywK
LSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnVybChzZWxmLnN0YXNoX3JlcG9zaXRvcnku
Y29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJykpLAorICAgICAgICAgICAgICAgIHNlbGYu
ZGF0YWJhc2UudXJsKHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2
NWMnKSksCiAgICAgICAgICAgICApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAg
ICAgICAgICAgICAgICdodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yNicsCi0gICAgICAgICAg
ICAgICAgc2VsZi5kYXRhYmFzZS51cmwoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lk
KGlkPTYpKSwKKyAgICAgICAgICAgICAgICAnaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvNEBt
YWluJywKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnVybChzZWxmLnN2bl9yZXBvc2l0
b3J5LmNvbW1pdChyZWY9NikpLAogICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvZmFpbHVyZV9jb250
ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvZmFpbHVyZV9jb250ZXh0LnB5CmluZGV4IDFkZDFjYzM1ZDk1YmJiZmE3OGM5Y2U0OGFi
N2U4MDhlMzcxMDlkNTkuLjMwYTY0NzA3YjhhODM0MjYzNDJhNTc2MjRmNzg5NDljMjVmZTU3OTgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L21vZGVsL2ZhaWx1cmVfY29udGV4dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9mYWlsdXJlX2NvbnRleHQucHkKQEAgLTEs
NCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjEsMTggKzIxLDE2IEBA
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKIGltcG9ydCBjYWxlbmRhcgotaW1wb3J0IGNvbGxlY3Rpb25zCiBp
bXBvcnQganNvbgogaW1wb3J0IHRpbWUKIAogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5lIGltcG9y
dCBjb2x1bW5zCi1mcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUubW9kZWxzIGltcG9ydCBNb2RlbAog
ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxl
ci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29u
dGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1
cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSByZXN1
bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ2FsbGJhY2tDb250ZXh0
CiBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLnRlc3RfY29udGV4dCBpbXBvcnQgRXhwZWN0YXRpb25z
Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBjbGFzcyBGYWlsdXJlQ29udGV4
dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgpAQCAtOTUsNyArOTMsNyBAQCBjbGFzcyBGYWlsdXJl
Q29udGV4dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgogCiAgICAgICAgICAgICB3aXRoIHNlbGY6
CiAgICAgICAgICAgICAgICAgdXVpZCA9IHNlbGYuY29tbWl0X2NvbnRleHQudXVpZF9mb3JfY29t
bWl0cyhjb21taXRzKQotICAgICAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBDb21taXQu
VElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50
aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCisgICAgICAgICAgICAgICAgdHRs
ID0gaW50KCh1dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25k
cyAtIHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQogCiAgICAgICAg
ICAgICAgICAgZGVmIGNhbGxiYWNrKHRlc3QsIHJlc3VsdCwgZmFpbHVyZXMsIHVuZXhwZWN0ZWQp
OgogICAgICAgICAgICAgICAgICAgICBmYWlsZWRfcmVzdWx0ID0gRXhwZWN0YXRpb25zLnN0cmlu
Z190b19zdGF0ZV9pZHMocmVzdWx0LmdldCgnYWN0dWFsJywgJycpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvbW9ja19t
b2RlbF9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvbW9kZWwvbW9ja19tb2RlbF9mYWN0b3J5LnB5CmluZGV4IDEwNDQzNGEzNTk4MGVj
Y2VkY2FlNmJhZTE4ZWVhMTc0YTI1OTZkNzkuLmU4ODY0ODBkMjAzZjY0YjYxYzA2N2MyZjI2ZWNk
MGY5M2E3ODUzOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L21vZGVsL21vY2tfbW9kZWxfZmFjdG9yeS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9tb2NrX21vZGVs
X2ZhY3RvcnkucHkKQEAgLTIxLDYgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGJh
c2U2NAoraW1wb3J0IGNvbnRleHRsaWIKIGltcG9ydCBpbwogaW1wb3J0IHRpbWUKIApAQCAtMjks
NyArMzAsNyBAQCBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNvbmZpZ3VyYXRpb25fY29udGV4dF91
bml0dGVzdCBpbXBvcnQgQ29uZmlndXJhdGlvbkNvbnRleAogZnJvbSByZXN1bHRzZGJweS5tb2Rl
bC5tb2RlbCBpbXBvcnQgTW9kZWwKIGZyb20gcmVzdWx0c2RicHkubW9kZWwucmVwb3NpdG9yeSBp
bXBvcnQgU3Rhc2hSZXBvc2l0b3J5LCBXZWJLaXRSZXBvc2l0b3J5CiAKLWZyb20gd2Via2l0c2Nt
cHkgaW1wb3J0IG1vY2tzCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBtb2NrcywgQ29tbWl0CiAK
IAogY2xhc3MgTW9ja01vZGVsRmFjdG9yeShvYmplY3QpOgpAQCAtNjUsMTYgKzY2LDQ0IEBAIGNs
YXNzIE1vY2tNb2RlbEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgcmV0dXJuIG1vY2tzLnJlbW90
ZS5CaXRCdWNrZXQocmVtb3RlPSdiaXRidWNrZXQuZXhhbXBsZS5jb20vcHJvamVjdHMvU0FGQVJJ
L3JlcG9zL3NhZmFyaScpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBAY29udGV4dGxpYi5jb250
ZXh0bWFuYWdlcgogICAgIGRlZiB3ZWJraXQoY2xzKToKLSAgICAgICAgcmV0dXJuIG1vY2tzLnJl
bW90ZS5Tdm4ocmVtb3RlPSdzdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdCcpCisgICAg
ICAgIHN2biA9IG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPSdzdm4ud2Via2l0Lm9yZy9yZXBvc2l0
b3J5L3dlYmtpdCcpCisgICAgICAgIGdpdGh1YiA9IG1vY2tzLnJlbW90ZS5HaXRIdWIocmVtb3Rl
PSdnaXRodWIuY29tL1dlYktpdC9XZWJLaXQnLCBnaXRfc3ZuPVRydWUpCisgICAgICAgIGdpdGh1
Yi5jb21taXRzID0ge30KKworICAgICAgICBmb3IgYnJhbmNoLCBjb21taXRzIGluIHN2bi5jb21t
aXRzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiAndGFnJyBpbiBicmFuY2g6CisgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGJyYW5jaCA9PSAndHJ1bmsnOgorICAgICAg
ICAgICAgICAgIGJyYW5jaCA9ICdtYWluJworICAgICAgICAgICAgZ2l0aHViLmNvbW1pdHNbYnJh
bmNoXSA9IFtdCisKKyAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAgICAgICAg
ICAgICAgICBnaXRodWIuY29tbWl0c1ticmFuY2hdLmFwcGVuZChDb21taXQoCisgICAgICAgICAg
ICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9Y29tbWl0LnJlcG9zaXRvcnlfaWQsCisgICAgICAgICAg
ICAgICAgICAgIGJyYW5jaD1icmFuY2gsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcj1jb21t
aXQuYXV0aG9yLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlLAor
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCwKKyAgICAgICAg
ICAgICAgICAgICAgb3JkZXI9Y29tbWl0Lm9yZGVyLAorICAgICAgICAgICAgICAgICAgICBpZGVu
dGlmaWVyPWNvbW1pdC5pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICBicmFuY2hfcG9p
bnQ9Y29tbWl0LmJyYW5jaF9wb2ludCwKKyAgICAgICAgICAgICAgICAgICAgcmV2aXNpb249Y29t
bWl0LnJldmlzaW9uLAorICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAorICAg
ICAgICAgICAgICAgICkpCisKKyAgICAgICAgd2l0aCBzdm4sIGdpdGh1YjoKKyAgICAgICAgICAg
IHlpZWxkIGdpdGh1YgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNyZWF0ZShjbHMsIHJl
ZGlzLCBjYXNzYW5kcmEsIGFzeW5jX3Byb2Nlc3Npbmc9RmFsc2UpOgogICAgICAgICBvbGRlc3Rf
Y29tbWl0ID0gdGltZS50aW1lKCkKLSAgICAgICAgZm9yIHJlcG8gaW4gW2Nscy5zYWZhcmkoKSwg
Y2xzLndlYmtpdCgpXToKLSAgICAgICAgICAgIGZvciBjb21taXRzIGluIHJlcG8uY29tbWl0cy52
YWx1ZXMoKToKLSAgICAgICAgICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6Ci0gICAgICAg
ICAgICAgICAgICAgIG9sZGVzdF9jb21taXQgPSBtaW4ob2xkZXN0X2NvbW1pdCwgY29tbWl0LnRp
bWVzdGFtcCkKKyAgICAgICAgd2l0aCBjbHMuc2FmYXJpKCkgYXMgc2FmYXJpLCBjbHMud2Via2l0
KCkgYXMgd2Via2l0OgorICAgICAgICAgICAgZm9yIHJlcG8gaW4gW3NhZmFyaSwgd2Via2l0XToK
KyAgICAgICAgICAgICAgICBmb3IgY29tbWl0cyBpbiByZXBvLmNvbW1pdHMudmFsdWVzKCk6Cisg
ICAgICAgICAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG9sZGVzdF9jb21taXQgPSBtaW4ob2xkZXN0X2NvbW1pdCwgY29tbWl0LnRpbWVz
dGFtcCkKIAogICAgICAgICBtb2RlbCA9IE1vZGVsKAogICAgICAgICAgICAgcmVkaXM9cmVkaXMs
CkBAIC05Myw3ICsxMjIsNyBAQCBjbGFzcyBNb2NrTW9kZWxGYWN0b3J5KG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIGZvciBicmFuY2gsIGNvbW1pdHMgaW4gcmVwb3NpdG9yeS5jb21taXRz
Lml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWwuY29tbWl0X2NvbnRleHQucmVnaXN0
ZXJfcGFydGlhbF9jb21taXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwg
aGFzaD1jb21taXQuaGFzaCwgcmV2aXNpb249Y29tbWl0LnJldmlzaW9uLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrZXksIGhhc2g9Y29tbWl0Lmhhc2gsIHJldmlzaW9uPWNvbW1p
dC5yZXZpc2lvbiwgZmFzdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAg
ICAgICAgIHJldHVybiBtb2RlbAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5LnB5IGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVwb3NpdG9yeS5w
eQppbmRleCBmN2U0MDA4MzBmZGYzMDc1ZGQ3MGNjMjgxZTE5NDE4ODkxZWEwNjRkLi43ZTQxNzk0
NTNiMjQwZTA3YWNiN2RkOTcxYzA1ZWExZjFlY2VmODUzIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21v
ZGVsL3JlcG9zaXRvcnkucHkKQEAgLTIwLDggKzIwLDcgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBp
bXBvcnQgQ29tbWl0Ci1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCByZW1vdGUKK2Zyb20gd2Via2l0
c2NtcHkgaW1wb3J0IHJlbW90ZSwgQ29tbWl0CiAKIAogY2xhc3MgUmVwb3NpdG9yeShvYmplY3Qp
OgpAQCAtMzAsMTAgKzI5LDcgQEAgY2xhc3MgUmVwb3NpdG9yeShvYmplY3QpOgogICAgICAgICBz
ZWxmLmtleSA9IGtleQogICAgICAgICBzZWxmLmRlZmF1bHRfYnJhbmNoID0gZGVmYXVsdF9icmFu
Y2ggb3IgJ21haW4nCiAKLSAgICBkZWYgY29tbWl0X2Zvcl9pZChzZWxmLCBpZCk6Ci0gICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQotCi0gICAgZGVmIGNvbW1pdChzZWxmLCByZWY9
Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lLCBpZGVudGlmaWVyPU5vbmUsIGZhc3Q9VHJ1
ZSk6CisgICAgZGVmIGNvbW1pdChzZWxmLCByZWY9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1O
b25lLCBpZGVudGlmaWVyPU5vbmUsIGZhc3Q9RmFsc2UpOgogICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCkKIAogICAgIGRlZiB1cmxfZm9yX2NvbW1pdChzZWxmLCBjb21taXQpOgpA
QCAtNTIsMTkgKzQ4LDcgQEAgY2xhc3MgU3Rhc2hSZXBvc2l0b3J5KFJlcG9zaXRvcnkpOgogICAg
ICAgICAgICAgZGVmYXVsdF9icmFuY2g9ZGVmYXVsdF9icmFuY2ggb3Igc2VsZi5yZW1vdGUuZGVm
YXVsdF9icmFuY2gsCiAgICAgICAgICkKIAotICAgIGRlZiBjb21taXRfZm9yX2lkKHNlbGYsIGlk
KToKLSAgICAgICAgY29tbWl0ID0gc2VsZi5yZW1vdGUuY29tbWl0KGhhc2g9aWQsIGluY2x1ZGVf
aWRlbnRpZmllcj1GYWxzZSkKLSAgICAgICAgcmV0dXJuIENvbW1pdCgKLSAgICAgICAgICAgIHJl
cG9zaXRvcnlfaWQ9c2VsZi5rZXksCi0gICAgICAgICAgICBpZD1jb21taXQuaGFzaCwKLSAgICAg
ICAgICAgIGJyYW5jaD1jb21taXQuYnJhbmNoLAotICAgICAgICAgICAgdGltZXN0YW1wPWNvbW1p
dC50aW1lc3RhbXAsCi0gICAgICAgICAgICBvcmRlcj1jb21taXQub3JkZXIsCi0gICAgICAgICAg
ICBjb21taXR0ZXI9Y29tbWl0LmF1dGhvci5lbWFpbCwKLSAgICAgICAgICAgIG1lc3NhZ2U9Y29t
bWl0Lm1lc3NhZ2UsCi0gICAgICAgICkKLQotICAgIGRlZiBjb21taXQoc2VsZiwgcmVmPU5vbmUs
IHJldmlzaW9uPU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRpZmllcj1Ob25lLCBmYXN0PVRydWUpOgor
ICAgIGRlZiBjb21taXQoc2VsZiwgcmVmPU5vbmUsIHJldmlzaW9uPU5vbmUsIGhhc2g9Tm9uZSwg
aWRlbnRpZmllcj1Ob25lLCBmYXN0PUZhbHNlKToKICAgICAgICAgaWYgaWRlbnRpZmllcjoKICAg
ICAgICAgICAgIGZhc3QgPSBGYWxzZQogICAgICAgICBpZiByZWY6CkBAIC03Miw3ICs1NiwxMiBA
QCBjbGFzcyBTdGFzaFJlcG9zaXRvcnkoUmVwb3NpdG9yeSk6CiAgICAgICAgIHJldHVybiBzZWxm
LnJlbW90ZS5jb21taXQocmV2aXNpb249cmV2aXNpb24sIGhhc2g9aGFzaCwgaWRlbnRpZmllcj1p
ZGVudGlmaWVyLCBpbmNsdWRlX2lkZW50aWZpZXI9bm90IGZhc3QpCiAKICAgICBkZWYgdXJsX2Zv
cl9jb21taXQoc2VsZiwgY29tbWl0KToKLSAgICAgICAgcmV0dXJuIGYne3NlbGYucmVtb3RlLnVy
bH0vY29tbWl0cy97Y29tbWl0fScKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBD
b21taXQpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29t
bWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKKworICAgICAgICBpZiBjb21taXQuaWRlbnRpZmll
ciBvciBjb21taXQuaGFzaDoKKyAgICAgICAgICAgIHJldHVybiBmJ3tzZWxmLnJlbW90ZS51cmx9
L2NvbW1pdHMve2NvbW1pdC5oYXNofScKKyAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBy
ZXByZXNlbnRhdGlvbnMoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ2hhc2gnLCAnaWRlbnRpZmll
ciddCkBAIC04MSwzNSArNzAsNDcgQEAgY2xhc3MgU3Rhc2hSZXBvc2l0b3J5KFJlcG9zaXRvcnkp
OgogY2xhc3MgV2ViS2l0UmVwb3NpdG9yeShSZXBvc2l0b3J5KToKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKLSAgICAgICAgc2VsZi5yZW1vdGUgPSByZW1vdGUuU3ZuKCdodHRwczovL3N2bi53
ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0JykKKyAgICAgICAgc2VsZi5zdm4gPSByZW1vdGUu
U3ZuKCdodHRwczovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0JykKKyAgICAgICAg
c2VsZi5naXRodWIgPSByZW1vdGUuR2l0SHViKCdodHRwczovL2dpdGh1Yi5jb20vV2ViS2l0L1dl
YktpdCcpCiAgICAgICAgIHN1cGVyKFdlYktpdFJlcG9zaXRvcnksIHNlbGYpLl9faW5pdF9fKAog
ICAgICAgICAgICAga2V5PSd3ZWJraXQnLAotICAgICAgICAgICAgZGVmYXVsdF9icmFuY2g9c2Vs
Zi5yZW1vdGUuZGVmYXVsdF9icmFuY2gsCi0gICAgICAgICkKLQotICAgIGRlZiBjb21taXRfZm9y
X2lkKHNlbGYsIGlkKToKLSAgICAgICAgY29tbWl0ID0gc2VsZi5yZW1vdGUuY29tbWl0KHJldmlz
aW9uPWlkLCBpbmNsdWRlX2lkZW50aWZpZXI9RmFsc2UpCi0gICAgICAgIHJldHVybiBDb21taXQo
Ci0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPXNlbGYua2V5LAotICAgICAgICAgICAgaWQ9Y29t
bWl0LnJldmlzaW9uLAotICAgICAgICAgICAgYnJhbmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAg
ICAgICB0aW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1p
dC5vcmRlciwKLSAgICAgICAgICAgIGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsLAotICAg
ICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwKKyAgICAgICAgICAgIGRlZmF1bHRfYnJh
bmNoPXNlbGYuZ2l0aHViLmRlZmF1bHRfYnJhbmNoLAogICAgICAgICApCiAKLSAgICBkZWYgY29t
bWl0KHNlbGYsIHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBoYXNoPU5vbmUsIGlkZW50aWZpZXI9
Tm9uZSwgZmFzdD1UcnVlKToKKyAgICBkZWYgY29tbWl0KHNlbGYsIHJlZj1Ob25lLCByZXZpc2lv
bj1Ob25lLCBoYXNoPU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFzdD1GYWxzZSk6CiAgICAgICAg
IGlmIGlkZW50aWZpZXI6CiAgICAgICAgICAgICBmYXN0ID0gRmFsc2UKKwogICAgICAgICBpZiBy
ZWY6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlZiwgaW50KSBvciByZWYuaXNkaWdpdCgp
OgotICAgICAgICAgICAgICAgIHJlZiA9ICdye30nLmZvcm1hdChyZWYpCi0gICAgICAgICAgICBy
ZXR1cm4gc2VsZi5yZW1vdGUuZmluZChyZWYsIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCkK
LSAgICAgICAgcmV0dXJuIHNlbGYucmVtb3RlLmNvbW1pdChyZXZpc2lvbj1yZXZpc2lvbiwgaGFz
aD1oYXNoLCBpZGVudGlmaWVyPWlkZW50aWZpZXIsIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFz
dCkKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnN2bi5maW5kKCdye30nLmZvcm1hdChy
ZWYpLCBpbmNsdWRlX2lkZW50aWZpZXI9bm90IGZhc3QpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZ2l0aHViLmZpbmQocmVmLCBpbmNsdWRlX2lkZW50
aWZpZXI9bm90IGZhc3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgPSAoc2Vs
Zi5zdm4gaWYgcmV2aXNpb24gYW5kIG5vdCBoYXNoIGVsc2Ugc2VsZi5naXRodWIpLmNvbW1pdCgK
KyAgICAgICAgICAgICAgICByZXZpc2lvbj1Ob25lIGlmIGhhc2ggZWxzZSByZXZpc2lvbiwKKyAg
ICAgICAgICAgICAgICBoYXNoPWhhc2gsCisgICAgICAgICAgICAgICAgaWRlbnRpZmllcj1Ob25l
IGlmIG5vdCBoYXNoIGFuZCBub3QgcmV2aXNpb24gZWxzZSBpZGVudGlmaWVyLAorICAgICAgICAg
ICAgICAgIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCwKKyAgICAgICAgICAgICkKKworICAg
ICAgICBpZiBub3QgZmFzdCBhbmQgcmVzdWx0Lmhhc2ggYW5kIHJlc3VsdC5pZGVudGlmaWVyOgor
ICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5naXRodWIuY29tbWl0KGlkZW50aWZpZXI9c3RyKHJl
c3VsdCkpCisKKyAgICAgICAgaWYgcmVzdWx0LmJyYW5jaCBpbiBzZWxmLnN2bi5ERUZBVUxUX0JS
QU5DSEVTOgorICAgICAgICAgICAgcmVzdWx0LmJyYW5jaCA9IHNlbGYuZGVmYXVsdF9icmFuY2gK
KyAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHVybF9mb3JfY29tbWl0KHNlbGYsIGNv
bW1pdCk6Ci0gICAgICAgIHJldHVybiBmJ2h0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3J7Y29t
bWl0fScKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgorICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBl
KGNvbW1pdCl9JykKKworICAgICAgICBpZiBjb21taXQuaWRlbnRpZmllciBvciBjb21taXQuaGFz
aDoKKyAgICAgICAgICAgIHJldHVybiBmJ2h0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3tjb21t
aXR9JworICAgICAgICBpZiBjb21taXQucmV2aXNpb246CisgICAgICAgICAgICByZXR1cm4gZido
dHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9ye2NvbW1pdC5yZXZpc2lvbn0nCisgICAgICAgIHJl
dHVybiBOb25lCisKIAogICAgIGRlZiByZXByZXNlbnRhdGlvbnMoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBbJ2lkZW50aWZpZXInLCAncmV2aXNpb24nXQorICAgICAgICByZXR1cm4gWydpZGVudGlm
aWVyJywgJ2hhc2gnLCAncmV2aXNpb24nXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVwb3NpdG9yeV91bml0dGVzdC5w
eSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVs
L3JlcG9zaXRvcnlfdW5pdHRlc3QucHkKaW5kZXggN2NmNmM3YzVmYmQzMDNkZDZkZDM3OWQzNDRm
YWYyMGFkYTgyZWVjNi4uZWQzYzdkNmE4NDVmMWYyNjRlMTMzNzVhMjAxYmYxNmI4NWRiNjE0MyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvbW9kZWwvcmVwb3NpdG9yeV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5X3VuaXR0ZXN0LnB5
CkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFJlcG9zaXRvcnlUZXN0KFdhaXRGb3JEb2NrZXJUZXN0
Q2FzZSk6CiAgICAgICAgICAgICBjb21taXQgPSBzdm5fcmVwby5jb21taXQocmV2aXNpb249NikK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnV1aWQsIDE2MDE2Mzk5MDAwMCkK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0Lm1lc3NhZ2UsICc2dGggY29tbWl0
JykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJyYW5jaCwgJ3RydW5rJykK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJyYW5jaCwgJ21haW4nKQogCiAg
ICAgZGVmIHRlc3RfcmVmX3N2bihzZWxmKToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5
LndlYmtpdCgpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3N1aXRlX2NvbnRleHQucHkKaW5k
ZXggMzVlNmE3N2VkNTdjNGNmNjM5NjU1MWYwOWNjMGRhMTNmZTEyNzg4My4uNzhlOTAzZWNiODAx
M2Y1YzVlMWJlNWQ1ZjA3OWZjYzU4ZmM3MGVjNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weQor
KysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2Rl
bC9zdWl0ZV9jb250ZXh0LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI2LDExICsyNiwxMSBAQCBpbXBvcnQgdGltZQogCiBmcm9tIGNhc3NhbmRyYS5j
cWxlbmdpbmUgaW1wb3J0IGNvbHVtbnMKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1m
cm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVz
dWx0c2RicHkubW9kZWwuY29tbWl0X2NvbnRleHQgaW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20g
cmVzdWx0c2RicHkubW9kZWwuY29uZmlndXJhdGlvbl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRC
eUNvbmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0c2RicHkubW9kZWwudGVzdF9jb250ZXh0IGltcG9y
dCBFeHBlY3RhdGlvbnMKIGZyb20gcmVzdWx0c2RicHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1w
b3J0IFVwbG9hZENhbGxiYWNrQ29udGV4dAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0
CiAKIAogY2xhc3MgU3VpdGVDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CkBAIC0xMTYs
NyArMTE2LDcgQEAgY2xhc3MgU3VpdGVDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CiAg
ICAgICAgICAgICBFeHBlY3RhdGlvbnMuaXRlcmF0ZV90aHJvdWdoX25lc3RlZF9yZXN1bHRzKHRl
c3RfcmVzdWx0cy5nZXQoJ3Jlc3VsdHMnKSwgY2FsbGJhY2spCiAKICAgICAgICAgICAgIHV1aWQg
PSBzZWxmLmNvbW1pdF9jb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMoY29tbWl0cykKLSAgICAgICAg
ICAgIHR0bCA9IGludCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElF
UikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMg
ZWxzZSBOb25lCisgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVM
VElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3Nl
Y29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgIHdpdGggc2VsZiwgc2VsZi5jYXNzYW5kcmEu
YmF0Y2hfcXVlcnlfY29udGV4dCgpOgogICAgICAgICAgICAgICAgIGZvciBicmFuY2ggaW4gc2Vs
Zi5jb21taXRfY29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhjb21taXRzKToKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21v
ZGVsL3Rlc3RfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L21vZGVsL3Rlc3RfY29udGV4dC5weQppbmRleCA4NjI5ZmZlNjFhNzVkNmUx
Zjk5MDU4MDI1OTM2ZmRiZWNkYzEyNjk5Li5jMmEwMWZmMmMzMWRhMDM5YTRlZmYzMTJhZDFjYzY1
ZDk1ZTBlMGVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC90ZXN0X2NvbnRleHQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdGVzdF9jb250ZXh0LnB5CkBA
IC0yOCwxMCArMjgsMTAgQEAgaW1wb3J0IHRpbWUKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZSBp
bXBvcnQgY29sdW1ucwogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5lLm1vZGVscyBpbXBvcnQgTW9k
ZWwKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRy
b2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29tbWl0
X2NvbnRleHQgaW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29u
ZmlndXJhdGlvbl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRCeUNvbmZpZ3VyYXRpb24KIGZyb20g
cmVzdWx0c2RicHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1wb3J0IFVwbG9hZENhbGxiYWNrQ29u
dGV4dAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgRXhwZWN0YXRp
b25zOgpAQCAtMTU5LDcgKzE1OSw3IEBAIGNsYXNzIFRlc3RDb250ZXh0KFVwbG9hZENhbGxiYWNr
Q29udGV4dCk6CiAKICAgICAgICAgICAgIHdpdGggc2VsZjoKICAgICAgICAgICAgICAgICB1dWlk
ID0gc2VsZi5jb21taXRfY29udGV4dC51dWlkX2Zvcl9jb21taXRzKGNvbW1pdHMpCi0gICAgICAg
ICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxU
SVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vj
b25kcyBlbHNlIE5vbmUKKyAgICAgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0
LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNl
bGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgICAgICBkZWYgY2FsbGJhY2so
dGVzdCwgcmVzdWx0LCBicmFuY2gpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRy
YS5pbnNlcnRfcm93KHNlbGYuVGVzdE5hbWVCeVN1aXRlLl9fdGFibGVfbmFtZV9fLCBzdWl0ZT1z
dWl0ZSwgdGVzdD10ZXN0LCB0dGw9dHRsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdXBsb2FkX2NvbnRleHQucHkgYi9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxv
YWRfY29udGV4dC5weQppbmRleCBhOGE1Y2MxY2U5Mjg5MDMyYTJiYWRmMGI0N2Y0NWRkZmUyZTI5
YjBiLi5hNTg5MmZkYzM4NmEyNWY1MWUxNmI5ZjM5N2ZiNzYwZWQ0OWYxNDQ1IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC91
cGxvYWRfY29udGV4dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weQpAQCAtMjksMTIgKzI5LDExIEBA
IGltcG9ydCB6aXBmaWxlCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUgaW1wb3J0IGNvbHVtbnMK
IGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiBmcm9tIGRhdGV0aW1lIGltcG9y
dCBkYXRldGltZQotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29t
bWl0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29u
ZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBvcnQg
Q29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRl
eHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogCi1mcm9tIHdlYmtpdHNjbXB5IGlt
cG9ydCBDb21taXQgYXMgU2NtQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQK
IAogCiBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CkBAIC02Myw3ICs2Miw3IEBAIGNsYXNz
IFVwbG9hZENvbnRleHQob2JqZWN0KToKIAogICAgICAgICBkZWYgdW5wYWNrKHNlbGYpOgogICAg
ICAgICAgICAgcmV0dXJuIGRpY3QoCi0gICAgICAgICAgICAgICAgY29tbWl0cz1bU2NtQ29tbWl0
LmZyb21fanNvbihlbGVtZW50KSBmb3IgZWxlbWVudCBpbiBqc29uLmxvYWRzKFVwbG9hZENvbnRl
eHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYuY29tbWl0cykpKV0sCisgICAgICAgICAgICAgICAg
Y29tbWl0cz1bQ29tbWl0LmZyb21fanNvbihlbGVtZW50KSBmb3IgZWxlbWVudCBpbiBqc29uLmxv
YWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYuY29tbWl0cykpKV0sCiAg
ICAgICAgICAgICAgICAgc2RrPU5vbmUgaWYgc2VsZi5zZGsgPT0gJz8nIGVsc2Ugc2VsZi5zZGss
CiAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHRzPWpzb24ubG9hZHMoVXBsb2FkQ29udGV4dC5m
cm9tX3ppcChieXRlYXJyYXkoc2VsZi50ZXN0X3Jlc3VsdHMpKSksCiAgICAgICAgICAgICAgICAg
dGltZXN0YW1wPWNhbGVuZGFyLnRpbWVnbShzZWxmLnRpbWVfdXBsb2FkZWQudGltZXR1cGxlKCkp
LApAQCAtODMsNyArODIsNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CiAKICAgICAg
ICAgZGVmIHVucGFjayhzZWxmKToKICAgICAgICAgICAgIHJldHVybiBkaWN0KAotICAgICAgICAg
ICAgICAgIGNvbW1pdHM9W1NjbUNvbW1pdC5mcm9tX2pzb24oZWxlbWVudCkgZm9yIGVsZW1lbnQg
aW4ganNvbi5sb2FkcyhVcGxvYWRDb250ZXh0LmZyb21femlwKGJ5dGVhcnJheShzZWxmLmNvbW1p
dHMpKSldLAorICAgICAgICAgICAgICAgIGNvbW1pdHM9W0NvbW1pdC5mcm9tX2pzb24oZWxlbWVu
dCkgZm9yIGVsZW1lbnQgaW4ganNvbi5sb2FkcyhVcGxvYWRDb250ZXh0LmZyb21femlwKGJ5dGVh
cnJheShzZWxmLmNvbW1pdHMpKSldLAogICAgICAgICAgICAgICAgIHNkaz1Ob25lIGlmIHNlbGYu
c2RrID09ICc/JyBlbHNlIHNlbGYuc2RrLAogICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cz1q
c29uLmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYudGVzdF9yZXN1
bHRzKSkpLAogICAgICAgICAgICAgICAgIHRpbWVzdGFtcD1jYWxlbmRhci50aW1lZ20oc2VsZi50
aW1lX3VwbG9hZGVkLnRpbWV0dXBsZSgpKSwKQEAgLTE4MSw3ICsxODAsNyBAQCBjbGFzcyBVcGxv
YWRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmF3
X2RhdGEpCiAgICAgICAgICAgICAgICAgc2VsZi5zeW5jaHJvbm91c2x5X3Byb2Nlc3NfdGVzdF9y
ZXN1bHRzKAogICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPUNvbmZpZ3VyYXRpb24u
ZnJvbV9qc29uKGRhdGFbJ2NvbmZpZ3VyYXRpb24nXSksCi0gICAgICAgICAgICAgICAgICAgIGNv
bW1pdHM9W1NjbUNvbW1pdC5mcm9tX2pzb24oY29tbWl0X2pzb24pIGZvciBjb21taXRfanNvbiBp
biBkYXRhWydjb21taXRzJ11dLAorICAgICAgICAgICAgICAgICAgICBjb21taXRzPVtDb21taXQu
ZnJvbV9qc29uKGNvbW1pdF9qc29uKSBmb3IgY29tbWl0X2pzb24gaW4gZGF0YVsnY29tbWl0cydd
XSwKICAgICAgICAgICAgICAgICAgICAgc3VpdGU9ZGF0YVsnc3VpdGUnXSwKICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wPWRhdGFbJ3RpbWVzdGFtcCddLAogICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3Jlc3VsdHM9ZGF0YVsndGVzdF9yZXN1bHRzJ10sCkBAIC0yNDMsNyArMjQyLDcgQEAg
Y2xhc3MgVXBsb2FkQ29udGV4dChvYmplY3QpOgogICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShz
dWl0ZSwgc3RyKToKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihmJ0V4cGVjdGVkIHR5cGUg
e3N0cn0sIGdvdCB7dHlwZShzdWl0ZSl9JykKICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRz
OgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBTY21Db21taXQpIGFuZCBu
b3QgaXNpbnN0YW5jZShjb21taXQsIENvbW1pdCk6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShjb21taXQsIENvbW1pdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYn
RXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKICAgICAgICAgaWYg
bGVuKGNvbW1pdHMpIDwgMToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VhY2ggdGVz
dCByZXN1bHQgbXVzdCBoYXZlIGF0IGxlYXN0IDEgYXNzb2NpYXRlZCBjb21taXQnKQpAQCAtMjYy
LDcgKzI2MSw3IEBAIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0KToKIAogICAgICAgICAgICAg
ICAgIHNlbGYuY29uZmlndXJhdGlvbl9jb250ZXh0Lmluc2VydF9yb3dfd2l0aF9jb25maWd1cmF0
aW9uKAogICAgICAgICAgICAgICAgICAgICBzZWxmLlN1aXRlc0J5Q29uZmlndXJhdGlvbi5fX3Rh
YmxlX25hbWVfXywgY29uZmlndXJhdGlvbiwgc3VpdGU9c3VpdGUsIGJyYW5jaD1icmFuY2gsCi0g
ICAgICAgICAgICAgICAgICAgIHR0bD1pbnQoKHV1aWQgLy8gQ29tbWl0LlRJTUVTVEFNUF9UT19V
VUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBzZWxm
LnR0bF9zZWNvbmRzIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgdHRsPWludCgodXVp
ZCAvLyBDb21taXQuVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRp
bWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUsCiAgICAgICAgICAgICAgICAgKQog
ICAgICAgICAgICAgICAgIHNlbGYuY29uZmlndXJhdGlvbl9jb250ZXh0Lmluc2VydF9yb3dfd2l0
aF9jb25maWd1cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICBzZWxmLlVwbG9hZHNCeUNvbmZp
Z3VyYXRpb24uX190YWJsZV9uYW1lX18sIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKQEAg
LTI3MCw3ICsyNjksNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgICAgIGNvbW1pdHM9c2VsZi50b196aXAoanNvbi5kdW1wcyhjb21taXRzLCBjbHM9Y29t
bWl0c1swXS5FbmNvZGVyKSksCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cz1zZWxm
LnRvX3ppcChqc29uLmR1bXBzKHRlc3RfcmVzdWx0cykpLAogICAgICAgICAgICAgICAgICAgICB1
cGxvYWRfdmVyc2lvbj12ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICB0dGw9aW50KCh1dWlk
IC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29u
ZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUsCisgICAgICAg
ICAgICAgICAgICAgIHR0bD1pbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBz
ZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBO
b25lLAogICAgICAgICAgICAgICAgICkKIAogICAgIGRlZiBmaW5kX3Rlc3RfcmVzdWx0cyhzZWxm
LCBjb25maWd1cmF0aW9ucywgc3VpdGUsIGJyYW5jaD1Ob25lLCBiZWdpbj1Ob25lLCBlbmQ9Tm9u
ZSwgcmVjZW50PVRydWUsIGxpbWl0PTEwMCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2FyY2hpdmVfdmlld191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3Zp
ZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5CmluZGV4IDdiY2E2NTUyYzBmYzllNWIwOTExZDU4
YWVmYmZhYzMxMTYyZTY2MWMuLmFkYmQ3MWJhNTBiOGJhNzFkMDZkZWYwOTJiMTBhNDYwYjBhNGM3
MTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3VuaXR0
ZXN0LnB5CkBAIC0yNCwxMyArMjQsMTMgQEAgaW1wb3J0IGJhc2U2NAogaW1wb3J0IGpzb24KIAog
ZnJvbSBmYWtlcmVkaXMgaW1wb3J0IEZha2VTdHJpY3RSZWRpcwotZnJvbSByZXN1bHRzZGJweS5j
b250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xs
ZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5t
b2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHRfdW5pdHRlc3QgaW1wb3J0IENvbmZpZ3VyYXRpb25D
b250ZXh0VGVzdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2NrX2Nhc3NhbmRyYV9jb250ZXh0
IGltcG9ydCBNb2NrQ2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2Nr
X21vZGVsX2ZhY3RvcnkgaW1wb3J0IE1vY2tNb2RlbEZhY3RvcnkKIGZyb20gcmVzdWx0c2RicHku
bW9kZWwud2FpdF9mb3JfZG9ja2VyX3Rlc3RfY2FzZSBpbXBvcnQgV2FpdEZvckRvY2tlclRlc3RD
YXNlCiBmcm9tIHJlc3VsdHNkYnB5LnZpZXcudmlld19yb3V0ZXNfdW5pdHRlc3QgaW1wb3J0IFdl
YlNpdGVUZXN0Q2FzZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3Mg
QXJjaGl2ZVZpZXdVbml0dGVzdChXZWJTaXRlVGVzdENhc2UpOgpAQCAtNTEsNyArNTEsNyBAQCBj
bGFzcyBBcmNoaXZlVmlld1VuaXR0ZXN0KFdlYlNpdGVUZXN0Q2FzZSk6CiAgICAgICAgICAgICAg
ICAgKSwgZGljdCgKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nd2Via2l0JywK
ICAgICAgICAgICAgICAgICAgICAgaWQ9JzYnLAotICAgICAgICAgICAgICAgICAgICBicmFuY2g9
J3RydW5rJywKKyAgICAgICAgICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wPTE2MDE2NjUxMDAsCiAgICAgICAgICAgICAgICAgICAgIG9yZGVy
PTAsCiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0namJlZGFyZEBhcHBsZS5jb20nLApk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvdmlldy9jb21taXRfdmlldy5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcucHkKaW5kZXggNmY0NWUxOGQ2NWU4MDFm
ZWY2ZGI1NDcyNWI5NWNjOGY4MjI3Zjg2OS4uYThlZTc3NjMwOThmOWY3ZjcwMDcwYzhiMzY4MTlm
OTIxMWQ2ZWQ3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvdmlldy9jb21taXRfdmlldy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2NvbW1pdF92aWV3LnB5CkBAIC0y
MSw5ICsyMSw5IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIGZyb20gZmxhc2sgaW1wb3J0IGFib3J0LCBy
ZWRpcmVjdCwgcmVxdWVzdAotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBv
cnQgQ29tbWl0CiBmcm9tIHJlc3VsdHNkYnB5LnZpZXcuc2l0ZV9tZW51IGltcG9ydCBTaXRlTWVu
dQogZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2Fz
X2t3YXJncworZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgQ29tbWl0
VmlldyhvYmplY3QpOgpAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBDb21taXRWaWV3KG9iamVjdCk6
CiAgICAgICAgIHJlcG9zaXRvcmllcyA9IFtjb21taXQucmVwb3NpdG9yeV9pZF0gKyBzb3J0ZWQo
W3N0cihrZXkpIGZvciBrZXksIGxzdCBpbiBzaWJsaW5ncy5pdGVtcygpIGlmIGxzdF0pCiAKICAg
ICAgICAgcmV0dXJuIHNlbGYuZW52aXJvbm1lbnQuZ2V0X3RlbXBsYXRlKCdjb21taXQuaHRtbCcp
LnJlbmRlcigKLSAgICAgICAgICAgIHRpdGxlPXNlbGYuc2l0ZV9tZW51LnRpdGxlICsgJzogJyAr
IHN0cihjb21taXQuaWQpLAorICAgICAgICAgICAgdGl0bGU9c2VsZi5zaXRlX21lbnUudGl0bGUg
KyAnOiAnICsgc3RyKGNvbW1pdCksCiAgICAgICAgICAgICBjb21taXQ9Y29tbWl0LAogICAgICAg
ICAgICAgcmVwb3NpdG9yeV9pZHM9cmVwb3NpdG9yaWVzLAogICAgICAgICAgICAgY29tbWl0cz1D
b21taXQuRW5jb2RlcigpLmRlZmF1bHQoW2NvbW1pdF0gKyBbaXRlbSBmb3IgbHN0IGluIHNpYmxp
bmdzLnZhbHVlcygpIGZvciBpdGVtIGluIGxzdF0pLApAQCAtNjQsOSArNjQsOSBAQCBjbGFzcyBD
b21taXRWaWV3KG9iamVjdCk6CiAKICAgICBkZWYgaW5mbyhzZWxmKToKICAgICAgICAgY29tbWl0
ID0gc2VsZi5fc2luZ2xlX2NvbW1pdCgpCi0gICAgICAgIGluZm9fdXJsID0gc2VsZi5jb21taXRf
Y29udGV4dC5yZXBvc2l0b3JpZXNbY29tbWl0LnJlcG9zaXRvcnlfaWRdLnVybF9mb3JfY29tbWl0
KGNvbW1pdC5pZCkKKyAgICAgICAgaW5mb191cmwgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnJlcG9z
aXRvcmllc1tjb21taXQucmVwb3NpdG9yeV9pZF0udXJsX2Zvcl9jb21taXQoY29tbWl0KQogICAg
ICAgICBpZiBub3QgaW5mb191cmw6Ci0gICAgICAgICAgICBhYm9ydCg0MTAsIGRlc2NyaXB0aW9u
PWYnRm91bmQgY29tbWl0IHtsZW4oY29tbWl0LmlkKX0sIGJ1dCBubyBpbmZvIHVybCBmb3VuZCcp
CisgICAgICAgICAgICBhYm9ydCg0MTAsIGRlc2NyaXB0aW9uPWYnRm91bmQgY29tbWl0IHtjb21t
aXR9LCBidXQgbm8gaW5mbyB1cmwgZm91bmQnKQogICAgICAgICByZXR1cm4gcmVkaXJlY3QoaW5m
b191cmwpCiAKICAgICBkZWYgcHJldmlvdXMoc2VsZik6CkBAIC03NCwxNiArNzQsMTYgQEAgY2xh
c3MgQ29tbWl0VmlldyhvYmplY3QpOgogICAgICAgICAgICAgb3JpZ2luYWxfY29tbWl0ID0gc2Vs
Zi5fc2luZ2xlX2NvbW1pdCgpCiAgICAgICAgICAgICBjb21taXQgPSBzZWxmLmNvbW1pdF9jb250
ZXh0LnByZXZpb3VzX2NvbW1pdChvcmlnaW5hbF9jb21taXQpCiAgICAgICAgICAgICBpZiBub3Qg
Y29tbWl0OgotICAgICAgICAgICAgICAgIGFib3J0KDQwNCwgZGVzY3JpcHRpb249Zid7b3JpZ2lu
YWxfY29tbWl0LmlkfSBoYXMgbm8gcmVnaXN0ZXJlZCBwcmV2aW91cyBjb21taXQnKQotICAgICAg
ICByZXR1cm4gcmVkaXJlY3QoZicvY29tbWl0P3JlcG9zaXRvcnlfaWQ9e2NvbW1pdC5yZXBvc2l0
b3J5X2lkfSZpZD17Y29tbWl0LmlkfScpCisgICAgICAgICAgICAgICAgYWJvcnQoNDA0LCBkZXNj
cmlwdGlvbj1mJ3tvcmlnaW5hbF9jb21taXR9IGhhcyBubyByZWdpc3RlcmVkIHByZXZpb3VzIGNv
bW1pdCcpCisgICAgICAgIHJldHVybiByZWRpcmVjdChmJy9jb21taXQ/cmVwb3NpdG9yeV9pZD17
Y29tbWl0LnJlcG9zaXRvcnlfaWR9JmlkPXtjb21taXR9JykKIAogICAgIGRlZiBuZXh0KHNlbGYp
OgogICAgICAgICB3aXRoIHNlbGYuY29tbWl0X2NvbnRleHQ6CiAgICAgICAgICAgICBvcmlnaW5h
bF9jb21taXQgPSBzZWxmLl9zaW5nbGVfY29tbWl0KCkKICAgICAgICAgICAgIGNvbW1pdCA9IHNl
bGYuY29tbWl0X2NvbnRleHQubmV4dF9jb21taXQob3JpZ2luYWxfY29tbWl0KQogICAgICAgICAg
ICAgaWYgbm90IGNvbW1pdDoKLSAgICAgICAgICAgICAgICBhYm9ydCg0MDQsIGRlc2NyaXB0aW9u
PWYne29yaWdpbmFsX2NvbW1pdC5pZH0gaGFzIG5vIHJlZ2lzdGVyZWQgc3Vic2VxdWVudCBjb21t
aXQnKQotICAgICAgICAgICAgcmV0dXJuIHJlZGlyZWN0KGYnL2NvbW1pdD9yZXBvc2l0b3J5X2lk
PXtjb21taXQucmVwb3NpdG9yeV9pZH0maWQ9e2NvbW1pdC5pZH0nKQorICAgICAgICAgICAgICAg
IGFib3J0KDQwNCwgZGVzY3JpcHRpb249Zid7b3JpZ2luYWxfY29tbWl0fSBoYXMgbm8gcmVnaXN0
ZXJlZCBzdWJzZXF1ZW50IGNvbW1pdCcpCisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3QoZicv
Y29tbWl0P3JlcG9zaXRvcnlfaWQ9e2NvbW1pdC5yZXBvc2l0b3J5X2lkfSZpZD17Y29tbWl0fScp
CiAKICAgICBAU2l0ZU1lbnUucmVuZGVyX3dpdGhfc2l0ZV9tZW51KCkKICAgICBkZWYgY29tbWl0
cyhzZWxmLCAqKmt3YXJncyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9jb21taXQuanMgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9j
b21taXQuanMKaW5kZXggOWNlN2QyYjY1M2Q5ZDdjYzE1ODliZmFjZWM0M2RkZjU3ZjNjMDIyMC4u
NjdiMDY0MmQ2MjNhZjY1ZDVjZGE1MmM3OTVmOWU5MGU2ZTE4NzRjZCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMv
anMvY29tbWl0LmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2NvbW1pdC5qcwpAQCAtMTAxLDE2ICsxMDEsMTcgQEAg
ZnVuY3Rpb24gQ29tbWl0VGFibGUoY29tbWl0cywgcmVwb3NpdG9yeUlkcyA9IFtdLCBvbmVMaW5l
ID0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbW1pdEFyZ3MgPSBwYXJhbXNU
b1F1ZXJ5KHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ6IFtjZWxsLmNv
bW1pdC5yZXBvc2l0b3J5X2lkXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaDogW2Nl
bGwuY29tbWl0LmJyYW5jaF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBpZDogW2NlbGwuY29t
bWl0LmlkZW50aWZpZXJdLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBbY2VsbC5jb21t
aXQubGFiZWwoKV0sCiAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAg
ICBsZXQgaW52ZXN0aWdhdGVBcmdzID0ge2lkOiBbY2VsbC5jb21taXQuaWRlbnRpZmllcl19Owor
ICAgICAgICAgICAgICAgICAgICBsZXQgaW52ZXN0aWdhdGVBcmdzID0ge3JlZjogW2NlbGwuY29t
bWl0LmxhYmVsKCldfTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFbJ21hc3RlcicsICdtYWlu
JywgJ3RydW5rJ10uaW5jbHVkZXMoY2VsbC5jb21taXQuYnJhbmNoKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIGludmVzdGlnYXRlQXJncy5icmFuY2ggPSBbY2VsbC5jb21taXQuYnJhbmNoXTsK
IAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDx0ZCByb3dzcGFuPSIke2NlbGwucm93c3Bh
bn0iPgogICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NvbW1pdD8ke2NvbW1pdEFy
Z3N9Ij4ke2NlbGwuY29tbWl0LmxhYmVsKCl9PC9hPiA8YnI+Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBCcmFuY2g6ICR7Y2VsbC5jb21taXQuYnJhbmNofSA8YnI+Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBBdXRob3I6ICR7ZXNjYXBlSFRNTChjZWxsLmNvbW1pdC5hdXRob3IpfSA8YnI+Cisg
ICAgICAgICAgICAgICAgICAgICAgICAke2NlbGwuY29tbWl0LmxhYmVsKCkuaW5jbHVkZXMoJ0An
KSA/ICcnIDogYEJyYW5jaDogJHtjZWxsLmNvbW1pdC5icmFuY2h9IDxicj5gfQorICAgICAgICAg
ICAgICAgICAgICAgICAgJHtjZWxsLmNvbW1pdC5hdXRob3IgPyBgQXV0aG9yOiAke2VzY2FwZUhU
TUwoY2VsbC5jb21taXQuYXV0aG9yLm5hbWUpfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICYjNjA8YSBocmVmPSJtYWlsdG86JHtlc2NhcGVIVE1MKGNlbGwuY29tbWl0LmF1dGhvci5lbWFp
bHNbMF0pfSI+JHtlc2NhcGVIVE1MKGNlbGwuY29tbWl0LmF1dGhvci5lbWFpbHNbMF0pfTwvYT4m
IzYyIDxicj5gIDogJyd9CiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY29tbWl0
L2luZm8/JHtjb21taXRBcmdzfSI+TW9yZSBJbmZvPC9hPjxicj4KICAgICAgICAgICAgICAgICAg
ICAgICAgIDxhIGhyZWY9Ii9pbnZlc3RpZ2F0ZT8ke3BhcmFtc1RvUXVlcnkoaW52ZXN0aWdhdGVB
cmdzKX0iPlRlc3QgcmVzdWx0cyBmb3IgY29tbWl0PC9hPgogICAgICAgICAgICAgICAgICAgICAg
ICAgJHtmdW5jdGlvbigpIHsKQEAgLTEzMCwxMCArMTMxLDEwIEBAIGZ1bmN0aW9uIENvbW1pdFRh
YmxlKGNvbW1pdHMsIHJlcG9zaXRvcnlJZHMgPSBbXSwgb25lTGluZSA9IGZhbHNlKSB7CiBjbGFz
cyBDb21taXQgewogICAgIGNvbnN0cnVjdG9yKGpzb24pIHsKICAgICAgICAgdGhpcy5pZGVudGlm
aWVyID0ganNvbi5pZGVudGlmaWVyID8ganNvbi5pZGVudGlmaWVyIDoganNvbi5pZDsKLSAgICAg
ICAgdGhpcy5yZXZpc2lvbiA9IGpzb24ucmV2aXNpb247Ci0gICAgICAgIHRoaXMuaGFzaCA9IGpz
b24uaGFzaDsKKyAgICAgICAgdGhpcy5yZXZpc2lvbiA9IGpzb24ucmV2aXNpb24gPyBqc29uLnJl
dmlzaW9uIDogbnVsbDsKKyAgICAgICAgdGhpcy5oYXNoID0ganNvbi5oYXNoID8ganNvbi5oYXNo
IDogbnVsbDsKIAotICAgICAgICB0aGlzLmF1dGhvciA9IGpzb24uYXV0aG9yID8ganNvbi5hdXRo
b3IubmFtZSA6IGpzb24uY29tbWl0dGVyOworICAgICAgICB0aGlzLmF1dGhvciA9IGpzb24uYXV0
aG9yID8ganNvbi5hdXRob3IgOiBudWxsOwogCiAgICAgICAgIHRoaXMucmVwb3NpdG9yeV9pZCA9
IGpzb24ucmVwb3NpdG9yeV9pZDsKICAgICAgICAgdGhpcy5icmFuY2ggPSBqc29uLmJyYW5jaDsK
QEAgLTE0OSwxMyArMTUwLDEzIEBAIGNsYXNzIENvbW1pdCB7CiAgICAgbGFiZWwoKSB7CiAgICAg
ICAgIGNvbnN0IHByZWZlcmVuY2UgPSBDb21taXRCYW5rLl9yZXByZXNlbnRhdGlvbkNhY2hlID8g
Q29tbWl0QmFuay5fcmVwcmVzZW50YXRpb25DYWNoZVt0aGlzLnJlcG9zaXRvcnlfaWRdLnJlcHJl
c2VudGF0aW9uIDogbnVsbDsKIAotICAgICAgICBpZiAocHJlZmVyZW5jZSA9PT0gJ2lkZW50aWZp
ZXInKQorICAgICAgICBpZiAocHJlZmVyZW5jZSA9PT0gJ2lkZW50aWZpZXInICYmIHRoaXMuaWRl
bnRpZmllcikKICAgICAgICAgICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXI7Ci0gICAgICAgIGlm
IChwcmVmZXJlbmNlID09PSAnaGFzaCcpIHsKKyAgICAgICAgaWYgKHByZWZlcmVuY2UgPT09ICdo
YXNoJyAmJiB0aGlzLmhhc2gpIHsKICAgICAgICAgICAgIC8vIFBlciB0aGUgYmlydGhkYXkgcGFy
YWRveCwgMTAlIGNoYW5jZSBvZiBjb2xsaXNpb24gd2l0aCA3LjcgbWlsbGlvbiBjb21taXRzIHdp
dGggMTIgY2hhcmFjdGVyIGNvbW1pdHMKICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhc2guc3Vi
c3RyaW5nKDAsMTIpCiAgICAgICAgIH0KLSAgICAgICAgaWYgKHByZWZlcmVuY2UgPT09ICdyZXZp
c2lvbicpCisgICAgICAgIGlmIChwcmVmZXJlbmNlID09PSAncmV2aXNpb24nICYmIHRoaXMucmV2
aXNpb24pCiAgICAgICAgICAgICByZXR1cm4gYHIke3RoaXMucmV2aXNpb259YDsKIAogICAgICAg
ICByZXR1cm4gdGhpcy5yZXZpc2lvbiA/IGByJHt0aGlzLnJldmlzaW9ufWAgOiB0aGlzLmhhc2gu
c3Vic3RyaW5nKDAsMTIpOwpAQCAtMzQ1LDcgKzM0Niw3IEBAIGNsYXNzIF9Db21taXRCYW5rIHsK
ICAgICAgICAgY29uc3QgcXVlcnkgPSBwYXJhbXNUb1F1ZXJ5KHsKICAgICAgICAgICAgIGJyYW5j
aDogW2NvbW1pdC5icmFuY2hdLAogICAgICAgICAgICAgcmVwb3NpdG9yeV9pZDogW2NvbW1pdC5y
ZXBvc2l0b3J5X2lkXSwKLSAgICAgICAgICAgIGlkOiBbY29tbWl0LmlkZW50aWZpZXJdLAorICAg
ICAgICAgICAgcmVmOiBbY29tbWl0Lmhhc2ggPyBjb21taXQuaGFzaCA6IGNvbW1pdC5yZXZpc2lv
bl0sCiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gZmV0Y2goJ2FwaS9jb21taXRzL3NpYmxp
bmdzPycgKyBxdWVyeSkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICBsZXQgc2VsZiA9
IHRoaXM7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9kcmF3ZXIuanMgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9kcmF3ZXIuanMKaW5k
ZXggOTg4NWQ5NzgyOGMxZTY5ZDQxYmU1M2U4ZjU0NGU0N2QxOWEyMTdhNS4uOGFmODkyMDVlZWFj
MGQxNDAwZDVlMjU5ZDRiMzYwN2EyZWM1Y2NkOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMvZHJhd2VyLmpz
CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3Zp
ZXcvc3RhdGljL2pzL2RyYXdlci5qcwpAQCAtMTM3LDcgKzEzNyw3IEBAIGZ1bmN0aW9uIHJlZnJl
c2hDb25maWd1cmF0aW9ucygpIHsKIH0KIAogZnVuY3Rpb24gQnJhbmNoU2VsZWN0b3IoY2FsbGJh
Y2spIHsKLSAgICBjb25zdCBkZWZhdWx0QnJhbmNoZXMgPSBuZXcgU2V0KFsndHJ1bmsnLCAnbWFz
dGVyJ10pOworICAgIGNvbnN0IGRlZmF1bHRCcmFuY2hlcyA9IG5ldyBTZXQoWyd0cnVuaycsICdt
YXN0ZXInLCAnbWFpbiddKTsKICAgICBjb25zdCBkZWZhdWx0QnJhbmNoS2V5ID0gWy4uLmRlZmF1
bHRCcmFuY2hlc10uc29ydCgpLmpvaW4oJy8nKTsKICAgICBjb25zdCBicmFuY2hNb2RpZmllciA9
IG5ldyBRdWVyeU1vZGlmaWVyKCdicmFuY2gnKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMvdGltZWxp
bmUuanMgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92
aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcwppbmRleCBlYjVmMjk3OGViOTRiMzE4ODZkZTk2NWU3
Njg3YjYxODg5ZTEzMWI1Li4yMzBjMDM1ZDg0M2JlYzc4NGIxYmU1NzEzNDgxM2RiMzc4MjMzMjgz
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS92aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcworKysgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy90aW1lbGluZS5qcwpA
QCAtMTkwLDggKzE5MCw5IEBAIGZ1bmN0aW9uIHhBeGlzRnJvbVNjYWxlKHNjYWxlLCByZXBvc2l0
b3J5LCB1cGRhdGVzQXJyYXksIGlzVG9wPWZhbHNlLCB2aWV3cG9ydD1uCiAgICAgICAgICAgICBj
b25zdCBzY3JvbGxEZWx0YSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwg
ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgICAgICAgICBUb29sVGlwLnNldCgKICAgICAg
ICAgICAgICAgICBgPGRpdiBjbGFzcz0iY29udGVudCI+Ci0gICAgICAgICAgICAgICAgICAgIFRp
bWU6ICR7bmV3IERhdGUobm9kZS5sYWJlbC50aW1lc3RhbXAgKiAxMDAwKS50b0xvY2FsZVN0cmlu
ZygpfTxicj4KLSAgICAgICAgICAgICAgICAgICAgQXV0aG9yOiAke25vZGUubGFiZWwuYXV0aG9y
fQorICAgICAgICAgICAgICAgICAgICBUaW1lOiAke25ldyBEYXRlKG5vZGUubGFiZWwudGltZXN0
YW1wICogMTAwMCkudG9Mb2NhbGVTdHJpbmcoKX0KKyAgICAgICAgICAgICAgICAgICAgJHtub2Rl
LmxhYmVsLmF1dGhvciA/IGA8YnI+QXV0aG9yOiAke2VzY2FwZUhUTUwobm9kZS5sYWJlbC5hdXRo
b3IubmFtZSl9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiM2MDxhIGhyZWY9Im1haWx0
bzoke2VzY2FwZUhUTUwobm9kZS5sYWJlbC5hdXRob3IuZW1haWxzWzBdKX0iPiR7ZXNjYXBlSFRN
TChub2RlLmxhYmVsLmF1dGhvci5lbWFpbHNbMF0pfTwvYT4mIzYyYCA6ICcnfQogICAgICAgICAg
ICAgICAgICAgICAke25vZGUubGFiZWwubWVzc2FnZSA/IGA8YnI+PGRpdj4ke2VzY2FwZUhUTUwo
bm9kZS5sYWJlbC5tZXNzYWdlLnNwbGl0KCdcbicpWzBdKX08L2Rpdj5gIDogJyd9CiAgICAgICAg
ICAgICAgICAgPC9kaXY+YCwKICAgICAgICAgICAgICAgICBub2RlLnRpcFBvaW50cy5tYXAoKHBv
aW50KSA9PiB7CkBAIC0yMDYsNyArMjA3LDcgQEAgZnVuY3Rpb24geEF4aXNGcm9tU2NhbGUoc2Nh
bGUsIHJlcG9zaXRvcnksIHVwZGF0ZXNBcnJheSwgaXNUb3A9ZmFsc2UsIHZpZXdwb3J0PW4KICAg
ICAgICAgICAgIGlmICghVG9vbFRpcC5pc0luKHt4OiBldmVudC54LCB5OiBldmVudC55IC0gc2Ny
b2xsRGVsdGF9KSkKICAgICAgICAgICAgICAgICBUb29sVGlwLnVuc2V0KCk7CiAgICAgICAgIH0s
Ci0gICAgICAgIGdldExhYmVsRnVuYzogKGNvbW1pdCkgPT4ge3JldHVybiBjb21taXQgPyBjb21t
aXQubGFiZWwoKSA6ICc/Jzt9LAorICAgICAgICBnZXRMYWJlbEZ1bmM6IChjb21taXQpID0+IHty
ZXR1cm4gY29tbWl0ICYmIGNvbW1pdC5sYWJlbCA/IGNvbW1pdC5sYWJlbCgpIDogJz8nO30sCiAg
ICAgICAgIGdldFNjYWxlRnVuYzogKGNvbW1pdCkgPT4gY29tbWl0LnV1aWQsCiAgICAgICAgIGV4
cG9ydGVyOiAodXBkYXRlRnVuY3Rpb24pID0+IHsKICAgICAgICAgICAgIHVwZGF0ZXNBcnJheS5w
dXNoKChzY2FsZSkgPT4ge3VwZGF0ZUZ1bmN0aW9uKHNjYWxlRm9yUmVwb3NpdG9yeShzY2FsZSkp
O30pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvY29tbWl0Lmh0bWwgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9jb21taXQuaHRtbApp
bmRleCBkODliZWEwMzA0ZmU2M2M0Mzg2ZWMyN2I5ODgzMzMzZTRiNzEyNDk3Li5kNmI3ZTc4YTA4
YjAxOWFkNjdmYjU4MTQ5MzJjOTAwZjJlNWJiZDEwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9jb21taXQu
aHRtbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS92aWV3L3RlbXBsYXRlcy9jb21taXQuaHRtbApAQCAtMzIsMTMgKzMyLDEzIEBACiAgICAgPGRp
diBjbGFzcz0iY29sLTEyIj4KICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImNvbC00IiBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0Ij4KLSAgICAgICAgICAg
ICAgICA8YSBjbGFzcz0iYnV0dG9uIiBocmVmPSIvY29tbWl0L3ByZXZpb3VzP3JlcG9zaXRvcnlf
aWQ9e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mYnJhbmNoPXt7IGNvbW1pdC5icmFuY2ggfX0m
aWQ9e3sgY29tbWl0LmlkIH19Ij7il4AgUHJldmlvdXM8L2E+CisgICAgICAgICAgICAgICAgPGEg
Y2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9wcmV2aW91cz9yZXBvc2l0b3J5X2lkPXt7IGNv
bW1pdC5yZXBvc2l0b3J5X2lkIH19JnJlZj17eyBjb21taXQuaGFzaCBvciBjb21taXQucmV2aXNp
b24gfX0iPuKXgCBQcmV2aW91czwvYT4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAg
PGRpdiBjbGFzcz0iY29sLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+Ci0gICAgICAgICAg
ICAgICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9pbmZvP3JlcG9zaXRvcnlfaWQ9
e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mYnJhbmNoPXt7IGNvbW1pdC5icmFuY2ggfX0maWQ9
e3sgY29tbWl0LmlkIH19Ij57eyBjb21taXQuaWQgfX08L2E+CisgICAgICAgICAgICAgICAgPGEg
Y2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9pbmZvP3JlcG9zaXRvcnlfaWQ9e3sgY29tbWl0
LnJlcG9zaXRvcnlfaWQgfX0mcmVmPXt7IGNvbW1pdC5oYXNoIG9yIGNvbW1pdC5yZXZpc2lvbiB9
fSI+e3sgY29tbWl0IH19PC9hPgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJjb2wtNCIgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPgotICAgICAgICAgICAgICAg
IDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9jb21taXQvbmV4dD9yZXBvc2l0b3J5X2lkPXt7IGNv
bW1pdC5yZXBvc2l0b3J5X2lkIH19JmJyYW5jaD17eyBjb21taXQuYnJhbmNoIH19JmlkPXt7IGNv
bW1pdC5pZCB9fSI+TmV4dCDilrY8L2E+CisgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImJ1dHRv
biIgaHJlZj0iL2NvbW1pdC9uZXh0P3JlcG9zaXRvcnlfaWQ9e3sgY29tbWl0LnJlcG9zaXRvcnlf
aWQgfX0mcmVmPXt7IGNvbW1pdC5oYXNoIG9yIGNvbW1pdC5yZXZpc2lvbiB9fSI+TmV4dCDilrY8
L2E+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxkaXYgaWQ9
ImNvbW1pdFRhYmxlIj48L2Rpdj4KQEAgLTQ2LDcgKzQ2LDcgQEAKIDwvZGl2PgogCiA8c2NyaXB0
IHR5cGU9Im1vZHVsZSI+Ci1pbXBvcnQge0NvbW1pdFRhYmxlfSBmcm9tICcvYXNzZXRzL2pzL2Nv
bW1pdC5qcyc7CitpbXBvcnQge0NvbW1pdCwgQ29tbWl0VGFibGUsIENvbW1pdEJhbmt9IGZyb20g
Jy9hc3NldHMvanMvY29tbWl0LmpzJzsKIAogZnVuY3Rpb24gdW5lc2NhcGVKaW5qYVRleHQodGV4
dCkgewogICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoLyYoW147XSspOy9nLCBmdW5jdGlvbihtYXRj
aCwgZW5jb2RlZCkgewpAQCAtNjgsMTcgKzY4LDIzIEBAIGZ1bmN0aW9uIHVuZXNjYXBlSmluamFU
ZXh0KHRleHQpIHsKIH0KIAogbGV0IGNvbW1pdHMgPSBbCi17JSBmb3IgY29tbWl0IGluIGNvbW1p
dHMgJX0gICAgewotICAgIHslIGZvciBrZXksIHZhbHVlIGluIGNvbW1pdC5pdGVtcygpICV9Ci0g
ICAgICAgIHt7IGtleSB9fToKLSAgICAgICAgeyUgaWYgJ3N0cicgaW4gdmFsdWUuX19jbGFzc19f
Ll9fbmFtZV9fICV9Ci0gICAgICAgICAgICB1bmVzY2FwZUppbmphVGV4dCgne3sgdmFsdWUgfCBy
ZXBsYWNlKCJcXCIsICJcXFxcIikgfCByZXBsYWNlKCJcbiIsICJcXG4iKSB9fScpCi0gICAgICAg
IHslIGVsc2UgJX0KLSAgICAgICAgICAgIHt7IHZhbHVlIH19Ci0gICAgICAgIHslIGVuZGlmICV9
LAotICAgIHslIGVuZGZvciAlfX0sCit7JSBmb3IgY29tbWl0IGluIGNvbW1pdHMgJX0gICAgbmV3
IENvbW1pdCh7CisgICAgICAgIHJlcG9zaXRvcnlfaWQ6ICd7eyBjb21taXQucmVwb3NpdG9yeV9p
ZCB9fScsCisgICAgICAgIHJldmlzaW9uOiB7eyBjb21taXQucmV2aXNpb24gaWYgY29tbWl0LnJl
dmlzaW9uIGVsc2UgJ251bGwnIH19LAorICAgICAgICBoYXNoOiAne3sgY29tbWl0Lmhhc2ggaWYg
Y29tbWl0Lmhhc2ggZWxzZSAnJyB9fScsCisgICAgICAgIGlkZW50aWZpZXI6ICd7eyBjb21taXQu
aWRlbnRpZmllciBpZiBjb21taXQuaWRlbnRpZmllciBlbHNlICcnIH19JywKKyAgICAgICAgYnJh
bmNoOiAne3sgY29tbWl0LmJyYW5jaCB9fScsCisgICAgICAgIHRpbWVzdGFtcDoge3sgY29tbWl0
LnRpbWVzdGFtcCB9fSwKKyAgICAgICAgYXV0aG9yOiB7CisgICAgICAgICAgICBuYW1lOiB1bmVz
Y2FwZUppbmphVGV4dCgne3sgY29tbWl0LmF1dGhvci5uYW1lIH19JyksCisgICAgICAgICAgICBl
bWFpbHM6IFt7JSBmb3IgZSBpbiBjb21taXQuYXV0aG9yLmVtYWlscyAlfSB1bmVzY2FwZUppbmph
VGV4dCgne3sgZSB9fScpIHslIGVuZGZvciAlfV0sCisgICAgICAgIH0sIG9yZGVyOiB7eyBjb21t
aXQub3JkZXIgfX0sCisgICAgICAgIG1lc3NhZ2U6IHVuZXNjYXBlSmluamFUZXh0KCd7eyBjb21t
aXQubWVzc2FnZSB8IHJlcGxhY2UoIlxcIiwgIlxcXFwiKSB8IHJlcGxhY2UoIlxuIiwgIlxcbiIp
IH19JyksCisgICAgfSksCiB7JSBlbmRmb3IgJX1dOwogCi1kb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29tbWl0VGFibGUnKS5pbm5lckhUTUwgPSBDb21taXRUYWJsZShjb21taXRzLCB7eyByZXBv
c2l0b3J5fHNhZmUgfX0pOworQ29tbWl0QmFuay5jb21taXRSZXByZXNlbnRhdGlvbnMoKCkgPT4g
eworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb21taXRUYWJsZScpLmlubmVySFRNTCA9
IENvbW1pdFRhYmxlKGNvbW1pdHMsIHt7IHJlcG9zaXRvcnl8c2FmZSB9fSk7Cit9KTsKIDwvc2Ny
aXB0PgogeyUgZW5kYmxvY2sgJX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRt
bCBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcv
dGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbAppbmRleCA1NjhiY2IxNWNhZmZjOTBlMDJlNGY0
OWM4MWQ3OTkyOTE5YjljN2NkLi4wN2M2NTZkZDJkYmQzMzc2NmJmZTZhYTNlMTdiODgwYmRjMWU2
ZTYxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS92aWV3L3RlbXBsYXRlcy9kb2N1bWVudGF0aW9uLmh0bWwKKysrIGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvZG9j
dW1lbnRhdGlvbi5odG1sCkBAIC03MywxMSArNzMsMTUgQEAgY29uc3QgZG9jdW1lbnRhdGlvbiA9
IHsKICAgICAgICAgICAgIGNvZGVCbG9jaygne1xuJyArIAogICAgICAgICAgICAgICAgICcgICAg
InJlcG9zaXRvcnlfaWQiOiA8c3RyaW5nIHJlcHJlc2VudGluZyByZXBvc2l0b3J5IGlkZW50aWZp
ZXI+LFxuJyArCiAgICAgICAgICAgICAgICAgJyAgICAiYnJhbmNoIjogPGJyYW5jaCBjb21taXQg
aXMgcmVnaXN0ZXJlZCBvbj4sXG4nICsKLSAgICAgICAgICAgICAgICAnICAgICJpZCI6IDxnaXQg
aGFzaCBvciBzdm4gcmV2aXNpb24+LFxuJyArCisgICAgICAgICAgICAgICAgJyAgICAiaWRlbnRp
ZmllciI6IDxjb21taXQgaWRlbnRpZmllcj4sXG4nICsKKyAgICAgICAgICAgICAgICAnICAgICJo
YXNoIjogPGdpdCBoYXNoPixcbicgKworICAgICAgICAgICAgICAgICcgICAgInJldmlzaW9uIjog
PHN2biByZXZpc2lvbj4sXG4nICsKICAgICAgICAgICAgICAgICAnICAgICJ0aW1lc3RhbXAiOiA8
aW50ZWdlciBVVEMgdGltZXN0YW1wIHdoZW4gY29tbWl0IHdhcyBjb21taXR0ZWQ+LFxuJyArCiAg
ICAgICAgICAgICAgICAgJyAgICAib3JkZXIiOiA8b3JkZXIgb2YgY29tbWl0IHdpdGhpbiBwYXRj
aCBzZXJpZXM+LFxuJyArCi0gICAgICAgICAgICAgICAgJyAgICAiY29tbWl0dGVyIjogPHBlcnNv
biB3aG8gY29tbWl0dGVkIHRoZSBjaGFuZ2U+LFxuJyArCi0gICAgICAgICAgICAgICAgJyAgICAi
bWVzc2FnZSI6IDxjb21taXQgbWVzc2FnZSBvciBjaGFuZ2Vsb2cgYXNzb2NpYXRlZCB3aXRoIGNv
bW1pdD5cbicgKworICAgICAgICAgICAgICAgICcgICAgImF1dGhvciI6IHtcbicgKworICAgICAg
ICAgICAgICAgICcgICAgICAgICJuYW1lIjogPG5hbWUgb2YgcGVyc29uIHdobyBhdXRob3JlZCBj
aGFuZ2U+LFxuJyArCisgICAgICAgICAgICAgICAgJyAgICAgICAgImVtYWlscyI6IFs8bGlzdCBv
ZiBlbWFpbHMgYXNzb2NpYXRlZCB3aXRoIGNoYW5nZSBhdXRob3I+XVxuJyArCisgICAgICAgICAg
ICAgICAgJyAgICB9LCAibWVzc2FnZSI6IDxjb21taXQgbWVzc2FnZSBvciBjaGFuZ2Vsb2cgYXNz
b2NpYXRlZCB3aXRoIGNvbW1pdD5cbicgKwogICAgICAgICAgICAgICAgICd9JyksCiAgICAgICAg
ICAgICBkb2N1bWVudEVuZHBvaW50KAogICAgICAgICAgICAgICAgICcvYXBpL2NvbW1pdHMnLApA
QCAtMTIzLDcgKzEyNyw3IEBAIGNvbnN0IGRvY3VtZW50YXRpb24gPSB7CiAgICAgICAgICAgICAg
ICAgICAgIGBSZXR1cm5zIGEgZGljdGlvbmFyeSBvZiBsaXN0cyBvZiBicmFuY2hlcyBhc3NvY2lh
dGVkIHdpdGggZWFjaCByZXBvc2l0b3J5LiBUaGUgb3V0cHV0IGlzIG9mIHRoZSBmb3JtOmAsCiAg
ICAgICAgICAgICAgICAgICAgIGNvZGVCbG9jaygne1xuJyArCiAgICAgICAgICAgICAgICAgICAg
ICcgICAgPHJlcG9zaXRvcnktaWQgKGEpPjogWyJtYXN0ZXIiLCAiYnJhbmNoLWEiLCAiYnJhbmNo
LWIiXSxcbicgKwotICAgICAgICAgICAgICAgICAgICAnICAgIDxyZXBvc2l0b3J5LWlkIChiKT46
IFsidHJ1bmsiLCAiYnJhbmNoLWEiLCAiYnJhbmNoLWMiXVxuJyArCisgICAgICAgICAgICAgICAg
ICAgICcgICAgPHJlcG9zaXRvcnktaWQgKGIpPjogWyJtYWluIiwgImJyYW5jaC1hIiwgImJyYW5j
aC1jIl1cbicgKwogICAgICAgICAgICAgICAgICAgICAnfScpLAogICAgICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICApLApAQCAtMTU4LDcgKzE2Miw3IEBAIGNvbnN0IGRvY3VtZW50YXRpb24g
PSB7CiAgICAgICAgICAgICAgICAgWydCcmFuY2gnLCAnUmVwb3NpdG9yeSddLAogICAgICAgICAg
ICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgYFJlZ2lzdGVyIGEgc2luZ2xlIGNvbW1pdCBp
biB0aGUgcmVzdWx0cyBkYXRhYmFzZS4gVGhpcyBjb21taXQgbXVzdCBiZSBhc3NvY2lhdGVkIHdp
dGggYSByZXBvc2l0b3J5IGFscmVhZHkga25vd24gYnkgdGhlIHJlc3VsdHMgZGF0YWJhc2UuIFdo
aWxlIGEgJHtsb2NhbExpbmsoWydBUEknLCAnQ29tbWl0cyddLCAnY29tbWl0IG9iamVjdHMnKX0g
Y2FuIGJlIHVwbG9hZGVkIHRvIHRoaXMgZW5kcG9pbnQsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQg
dGhlIHJlZ2lzdHJhdGlvbiBvZiBjb21taXRzIG91dHNpZGUgb2YgYXV0b21hdGlvbiBhbGxvdyB0
aGUgcmVzdWx0cyBkYXRhYmFzZSB0byBsZXZlcmFnZSB5b3VyIHNvdXJjZSBjb250cm9sJ3MgQVBJ
LiBTdWNoIGEgcmVxdWVzdCBsb29rcyBsaWtlIHRoaXNgLAotICAgICAgICAgICAgICAgICAgICBj
b2RlQmxvY2soJy9hcGkvY29tbWl0cy9yZWdpc3Rlcj9yZXBvc2l0b3J5X2lkPXdlYmtpdCZicmFu
Y2g9dHJ1bmsmaWQ9MjQ3MzU1JyksCisgICAgICAgICAgICAgICAgICAgIGNvZGVCbG9jaygnL2Fw
aS9jb21taXRzL3JlZ2lzdGVyP3JlcG9zaXRvcnlfaWQ9d2Via2l0JmJyYW5jaD1tYWluJmlkPTI0
NzM1NScpLAogICAgICAgICAgICAgICAgICAgICBgTW9yZSBnZW5lcmFsbHksIGFueSBkZWZpbml0
aW9uIG9mIGEgY29tbWl0IHdoaWNoIGRlZmluZXMgdGhlIHJlcG9zaXRvcnlfaWQsIGlkIGFuZCBi
cmFuY2ggcHJvdmlkZXMgZW5vdWdoIGluZm9ybWF0aW9uIGZvciB0aGUgcmVzdWx0cyBkYXRhYmFz
ZSB0byBxdWVyeSB5b3VyIHNvdXJjZSBjb250cm9sJ3MgQVBJIGFuZCByZXRyZWl2ZSBjb21taXQg
aW5mb3JtYXRpb24uYCwKICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgKSwKQEAgLTQ3
OSw3ICs0ODMsNyBAQCBjb25zdCBkb2N1bWVudGF0aW9uID0gewogICAgICAgICAgICAgYEJ5IGRl
ZmF1bHQsIHRoaXMgZmxhZyBpcyAnVHJ1ZScgYW5kIGVuZHBvaW50cyB3aWxsIGlnbm9yZSB0ZXN0
cyB3aGljaCBtYXRjaGVkIHRoZWlyIGV4cGVjdGVkIGJlaGF2aW9yLiBJZiBzZXQgdG8gJ0ZhbHNl
JywgZW5kcG9pbnRzIHdpbGwgcmV0dXJuIHJlc3VsdHMgZm9yIGFsbCBmYWlsaW5nIHRlc3RzLCBy
ZWdhcmRsZXNzIG9mIHdoYXQgdGhlaXIgZXhwZWN0YXRpb24gaXMuYCwKICAgICAgICAgXSwKICAg
ICAgICAgJ0JyYW5jaCc6IFsKLSAgICAgICAgICAgIGBNb3N0IGRhdGEgaW4gdGhlIHJlc3VsdHMg
ZGF0YWJhc2UgaXMgcGFydGl0aW9uZWQgYnkgYnJhbmNoLCBhbmQgaXQgaXMgZ2VuZXJhbGx5IGV4
cGVjdGVkIHRoYXQgcmVzdWx0cyBvbiBzZXBlcmF0ZSBicmFuY2hlcyBhcmUgaW5kZXBlbmRlbnQg
b2Ygb25lIGFub3RoZXIuIEJ5IGRlZmF1bHQsIGVuZHBvaW50cyB0aGF0IHN1cHBvcnQgdGhlIGJy
YW5jaCBxdWVyeSB3aWxsIGFzc3VtZSB0aGF0IHRoZSBicmFuY2ggaXMgbWFzdGVyIGZvciBnaXQg
cmVwb3NpdG9yaWVzIGFuZCB0cnVuayBmb3IgU1ZOIHJlcG9zaXRvcmllcyBpZiBubyB2YWx1ZSBp
cyBzcGVjaWZpZWQuIElmIG11bHRpcGxlIHZhbHVlcyBmb3IgYnJhbmNoIGFyZSBzcGVjaWZpZWQs
IG9ubHkgdGhlIGZpcnN0IHdpbGwgYmUgcmVzcGVjdGVkLiBBIHJlcXVlc3Qgd2hpY2ggaW50ZW5k
ZWQgdG8gc2VhcmNoIGZvciByZXN1bHRzIG9uIG9ubHkgcmVzdWx0cyBvbiB0aGUgc2FmYXJpLTYw
NyBicmFuY2ggd291bGQgdXNlIGEgcXVlcnkgbGlrZSB0aGlzOmAsCisgICAgICAgICAgICBgTW9z
dCBkYXRhIGluIHRoZSByZXN1bHRzIGRhdGFiYXNlIGlzIHBhcnRpdGlvbmVkIGJ5IGJyYW5jaCwg
YW5kIGl0IGlzIGdlbmVyYWxseSBleHBlY3RlZCB0aGF0IHJlc3VsdHMgb24gc2VwZXJhdGUgYnJh
bmNoZXMgYXJlIGluZGVwZW5kZW50IG9mIG9uZSBhbm90aGVyLiBCeSBkZWZhdWx0LCBlbmRwb2lu
dHMgdGhhdCBzdXBwb3J0IHRoZSBicmFuY2ggcXVlcnkgd2lsbCBhc3N1bWUgdGhhdCB0aGUgYnJh
bmNoIGlzIG1hc3RlciBvciBtYWluIGZvciBnaXQgcmVwb3NpdG9yaWVzIGFuZCB0cnVuayBmb3Ig
U1ZOIHJlcG9zaXRvcmllcyBpZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQuIElmIG11bHRpcGxlIHZh
bHVlcyBmb3IgYnJhbmNoIGFyZSBzcGVjaWZpZWQsIG9ubHkgdGhlIGZpcnN0IHdpbGwgYmUgcmVz
cGVjdGVkLiBBIHJlcXVlc3Qgd2hpY2ggaW50ZW5kZWQgdG8gc2VhcmNoIGZvciByZXN1bHRzIG9u
IG9ubHkgcmVzdWx0cyBvbiB0aGUgc2FmYXJpLTYwNyBicmFuY2ggd291bGQgdXNlIGEgcXVlcnkg
bGlrZSB0aGlzOmAsCiAgICAgICAgICAgICBjb2RlQmxvY2soJ2JyYW5jaD1zYWZhcmktNjA3Jyks
CiAgICAgICAgIF0sCiAgICAgICAgICdDb25maWd1cmF0aW9uJzogWwpAQCAtNTQ0LDEzICs1NDgs
MTMgQEAgY29uc3QgZG9jdW1lbnRhdGlvbiA9IHsKICAgICAgICAgICAgIGBXZSBhbHNvIGtub3cg
dGhhdCB0aW1lc3RhbXBzIGNhbiBiZSBlYXNpbHkgY29udmVydGVkIHRvIFVVSURzLiBFbmRwb2lu
dHMgd2hpY2ggc3VwcG9ydCBxdWVyeWluZyBieSBVVUlEIGFsc28gc3VwcG9ydCBxdWVyeWluZyBi
eSBVVEMgdGltZXN0YW1wLiBPdXIgcHJldmlvdXMgcXVlcnkgY291bGQgYmUgaW5zdGVhZCB3cml0
dGVuIGxpa2UgdGhpczpgLAogICAgICAgICAgICAgY29kZUJsb2NrKCdhZnRlcl90aW1lc3RhbXA9
MTU2Mjk1MTQ5MSZiZWZvcmVfdGltZXN0YW1wPTE1NjI5NTI0NzMnKSwKICAgICAgICAgICAgIGBD
b21taXRzIGNhbiBhbHNvIGJlIHRyYW5zbGF0ZWQgdG8gdGltZXN0YW1wLCBhbHRob3VnaCB3aXRo
IGEgYml0IG1vcmUgd29yayByZXF1aXJlZCBmcm9tIHRoZSBiYWNrLWVuZC4gRW5kcG9pbnRzIHdo
aWNoIHN1cHBvcnQgcXVlcnlpbmcgYnkgVVVJRCBhbHNvIHN1cHBvcnQgcXVlcnlpbmcgYnkgY29t
bWl0IGluZm9ybWF0aW9uLiBJbiB0aGUgZmlyc3QgZXhhbXBsZSBpbiB0aGlzIHNlY3Rpb24sIHdl
IHF1ZXJpZWQgYnkgVVVJRCAxNTYyOTUyNDczMDAuIFRoaXMgY29ycmVzcG9uZHMgdG8gJHtleHRl
cm5hbExpbmsoJ2h0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNDczOTEvd2Via2l0
JywgJ3IyNDczOTEnKX0uIFdlIGNvdWxkIGluc3RlYWQgcXVlcnkgYnkgdGhlIGNvbW1pdCBpbmZv
cm1hdGlvbjpgLAotICAgICAgICAgICAgY29kZUJsb2NrKCdpZD0yNDczOTEmcmVwb3NpdG9yeV9p
ZD13ZWJraXQmYnJhbmNoPXRydW5rJyksCisgICAgICAgICAgICBjb2RlQmxvY2soJ2lkPTI0NzM5
MSZyZXBvc2l0b3J5X2lkPXdlYmtpdCZicmFuY2g9bWFpbicpLAogICAgICAgICAgICAgYEJ1dCwg
YXMgb3V0bGluZWQgaW4gdGhlIG92ZXJ2aWV3cyBhYm91dCAke2xvY2FsTGluayhbJ1F1ZXJ5IFBh
cmFtZXRlcnMnLCAnQnJhbmNoJ10sICdicmFuY2hlcycpfSBhbmQgJHtsb2NhbExpbmsoWydRdWVy
eSBQYXJhbWV0ZXJzJywgJ1JlcG9zaXRvcnknXSwgJ3JlcG9zaXRvcmllcycpfSwgZW5kcG9pbnRz
IHdoaWNoIHN1cHBvcnQgdGhvc2UgcXVlcmllcyBoYXZlIGRlZmF1bHRzIHdoaWNoIGNvdmVyIG1h
bnkgY2FzZXMsIHNvIHRoZSBwcmV2aW91cyBxdWVyeSBjb3VsZCBiZSBzaW1wbGlmaWVkIHRvOmAs
CiAgICAgICAgICAgICBjb2RlQmxvY2soJ2lkPTI0NzM5MScpLAogICAgICAgICAgICAgYEJlY2F1
c2UgZW5kcG9pbnRzIHN1cHBvcnRpbmcgdGltZSBhcmUgY29udmVydCBldmVyeXRoaW5nIHRvIFVV
SUQgb24gdGhlIGJhY2tlbmQsIHRoZSBxdWVyaWVzIHRvIHRoZXNlIGVuZHBvaW50cyBhcmUgcXVp
dGUgZmxleGlibGUuIFRoZSBmb2xsb3dpbmcgYXJlIGFsbCBleGFtcGxlcyBvZiB2YWxpZCB0aW1l
IHF1ZXJpZXM6YCwKICAgICAgICAgICAgIGNvZGVCbG9jaygnYWZ0ZXJfaWQ9MjQ3MzkxJnJlcG9z
aXRvcnlfaWQ9d2Via2l0JyksCiAgICAgICAgICAgICBjb2RlQmxvY2soJ2FmdGVyX2lkPTI0NzM5
MCZiZWZvcmVfdGltZXN0YW1wPTE1NjI5NTI0NzMnKSwKLSAgICAgICAgICAgIGNvZGVCbG9jaygn
YmVmb3JlX2lkPTI0NzM5MSZhZnRlcl91dWlkPTE1NjI5NTE0OTEwMCZiZWZvcmVfYnJhbmNoPXRy
dW5rJyksCisgICAgICAgICAgICBjb2RlQmxvY2soJ2JlZm9yZV9pZD0yNDczOTEmYWZ0ZXJfdXVp
ZD0xNTYyOTUxNDkxMDAmYmVmb3JlX2JyYW5jaD1tYWluJyksCiAgICAgICAgIF0sCiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvdmlldy90ZW1wbGF0ZXMvaW52ZXN0aWdhdGUuaHRtbCBiL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2ludmVzdGlnYXRl
Lmh0bWwKaW5kZXggNzY5NWVjODNmYjRhZGFlODk3ZTUxODllN2QyODdmN2FjZmE4MWY1Zi4uNDBj
MWQxNTljMTJjODA2YzQ5MDhjY2FhZmU3MTA3Zjg0YThiNzdmNiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMv
aW52ZXN0aWdhdGUuaHRtbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9pbnZlc3RpZ2F0ZS5odG1sCkBAIC0xNDgsNiAr
MTQ4LDcgQEAgY2xhc3MgU3VpdGVGYWlsdXJlc1ZpZXcgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGJyYW5jaGVzID0gbmV3IFNldChjb21taXRzLm1hcChj
b21taXQgPT4gY29tbWl0LmJyYW5jaCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyYW5jaGVzLmRlbGV0ZSgndHJ1bmsnKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmFuY2hlcy5kZWxldGUoJ21hc3RlcicpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGVzLmRlbGV0ZSgnbWFpbicpOwog
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVwb3NpdG9y
aWVzID0gbmV3IFNldChjb21taXRzLm1hcChjb21taXQgPT4gY29tbWl0LnJlcG9zaXRvcnlfaWQp
KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvc2VhcmNoLmh0bWwgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zZWFyY2guaHRtbApp
bmRleCA5NTkwYmM5YmZmMThiNmY1NGIyZTkxMGVhMmJjYzQ5YzZlOGQwNTFhLi45MDkzOTQxM2Rl
NDFlMDQzNzUwMDI3NmI3NjgxN2VmY2MwZTFkZWE5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zZWFyY2gu
aHRtbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS92aWV3L3RlbXBsYXRlcy9zZWFyY2guaHRtbApAQCAtMjM5LDcgKzIzOSw5IEBAIERPTS5pbmpl
Y3QoCiAgICAgICAgICAgICB2aWV3LnJlbG9hZCgpOwogICAgICAgICB9KSwKICAgICAgICAgQ29u
ZmlndXJhdGlvblNlbGVjdG9ycygoKSA9PiB7dmlldy5yZWxvYWQoKX0pLAotICAgICAgICBDb21t
aXRSZXByZXNlbnRhdGlvbigoKSA9PiB7dmlldy5yZWxvYWQoKX0pLAorICAgICAgICBDb21taXRS
ZXByZXNlbnRhdGlvbigoKSA9PiB7CisgICAgICAgICAgICB2aWV3LnJlZi5zZXRTdGF0ZSh7Y2hp
bGRyZW46IHZpZXcucmVmLnN0YXRlLmNoaWxkcmVufSk7CisgICAgICAgIH0pLAogICAgIF0sICgp
ID0+IG9uTGF5b3V0Q2hhbmdlLmFkZCgpKX0KIAogICAgIDxkaXYgY2xhc3M9Im1haW4gcmlnaHQt
c2lkZWJhciB1bmRlci10b3BiYXItd2l0aC1hY3Rpb25zIj4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3N1
aXRlX3Jlc3VsdHMuaHRtbCBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3N1aXRlX3Jlc3VsdHMuaHRtbAppbmRleCBhZTVmYzVh
NTQ0YzU0MGI4MjVlYzgyMTAyODMwYzI4YWEyNzRjN2U3Li45YzI1MGFiYTgwNTU3ZDAxNWNjYjM3
Mjc4NmIxMzNmNDkzMmMxZGRjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zdWl0ZV9yZXN1bHRzLmh0bWwK
KysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmll
dy90ZW1wbGF0ZXMvc3VpdGVfcmVzdWx0cy5odG1sCkBAIC0xODIsNyArMTgyLDkgQEAgJHtEcmF3
ZXIoWwogICAgICAgICB2aWV3LnJlbG9hZCgpOwogICAgIH0pLAogICAgIENvbmZpZ3VyYXRpb25T
ZWxlY3RvcnMoKCkgPT4ge3ZpZXcucmVsb2FkKCl9KSwKLSAgICBDb21taXRSZXByZXNlbnRhdGlv
bigoKSA9PiB7dmlldy5yZWxvYWQoKX0pLAorICAgIENvbW1pdFJlcHJlc2VudGF0aW9uKCgpID0+
IHsKKyAgICAgICAgdmlldy5yZWYuc2V0U3RhdGUodmlldy5yZWYuc3RhdGUpOworICAgIH0pLAog
XSwgKCkgPT4gb25MYXlvdXRDaGFuZ2UuYWRkKCkpfQogPGRpdiBjbGFzcz0ibWFpbiByaWdodC1z
aWRlYmFyIHVuZGVyLXRvcGJhci13aXRoLWFjdGlvbnMiPgogICAgIDxicj4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3NldHVwLnB5IGIvVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkKaW5kZXggNzViNWU3ZDczYmE1MzMx
NzFmZjgxY2E2ODMwYmE4NWVhNjVhMTk5Yi4uZGM2Mjg5YmM1NDA1YmM1M2ExZjFiZTQ2NGFmODI0
ZGY3MGY1NzUyYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvc2V0dXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0
dXAucHkKQEAgLTMwLDcgKzMwLDcgQEAgZGVmIHJlYWRtZSgpOgogCiBzZXR1cCgKICAgICBuYW1l
PSdyZXN1bHRzZGJweScsCi0gICAgdmVyc2lvbj0nMi4wLjMnLAorICAgIHZlcnNpb249JzIuMC40
JywKICAgICBkZXNjcmlwdGlvbj0nTGlicmFyeSBmb3IgdmlzdWFsaXppbmcsIHByb2Nlc3Npbmcg
YW5kIHN0b3JpbmcgdGVzdCByZXN1bHRzLicsCiAgICAgbG9uZ19kZXNjcmlwdGlvbj1yZWFkbWUo
KSwKICAgICBjbGFzc2lmaWVycz1bCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy93ZWJraXRzY21weS9zZXR1cC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CmluZGV4IDQ0ODUzMWY1Y2Q1MjVjZWI2ZWE4MDM3ZDBiZTU4NzdiN2EyZTVi
MTcuLjAyYTE5ZjQyZWVkOGY1NTQ1NTUyM2VlMWRiOThhZGUwNDM1MjhkZWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5CkBAIC0yOSw3ICsyOSw3IEBA
IGRlZiByZWFkbWUoKToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0c2NtcHknLAotICAgIHZl
cnNpb249JzAuMTMuNicsCisgICAgdmVyc2lvbj0nMC4xMy43JywKICAgICBkZXNjcmlwdGlvbj0n
TGlicmFyeSBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIGdpdCBhbmQgc3ZuIHJlcG9zaXRvcmll
cy4nLAogICAgIGxvbmdfZGVzY3JpcHRpb249cmVhZG1lKCksCiAgICAgY2xhc3NpZmllcnM9Wwpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2Nt
cHkvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9fX2luaXRfXy5weQppbmRleCAyNWVkZWNlMTIzM2Y0ZmYwM2M1ZTI5YTQ4YmIwOTIy
NjY5NGQxMDUwLi44NTA4NjIyYWVjYjc4NTIyYjZhYmY2YjczNjFlODQyMTI5Y2JmYzE3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9f
X2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9fX2luaXRfXy5weQpAQCAtNDYsNyArNDYsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6
CiAgICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwg
d2Via2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAg
ICkKIAotdmVyc2lvbiA9IFZlcnNpb24oMCwgMTMsIDYpCit2ZXJzaW9uID0gVmVyc2lvbigwLCAx
MywgNykKIAogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnZmFzdGVuZXJzJywgVmVyc2lv
bigwLCAxNSwgMCkpKQogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnbW9ub3RvbmljJywg
VmVyc2lvbigxLCA1KSkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRzY21weS93ZWJraXRzY21weS9jb21taXQucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9jb21taXQucHkKaW5kZXggNGI2MWNlMWFkMTc0MTMwMjE5
ODlkNmJiYTQ2NzgzMTA2NTEwY2I0MC4uMzQ5ODllMWUzOTFhMzVlYzlmMmI4YTUyYjlhNzgzMmZh
MmQ0MjNmMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvY29tbWl0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L2NvbW1pdC5weQpAQCAtMzksNiArMzksMTAgQEAgY2xhc3MgQ29t
bWl0KG9iamVjdCk6CiAgICAgY2xhc3MgRW5jb2Rlcihqc29uLkpTT05FbmNvZGVyKToKIAogICAg
ICAgICBkZWYgZGVmYXVsdChzZWxmLCBvYmopOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShv
YmosIGRpY3QpOgorICAgICAgICAgICAgICAgIHJldHVybiB7a2V5OiBzZWxmLmRlZmF1bHQodmFs
dWUpIGZvciBrZXksIHZhbHVlIGluIG9iai5pdGVtcygpfQorICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShvYmosIGxpc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiBbc2VsZi5kZWZhdWx0KHZh
bHVlKSBmb3IgdmFsdWUgaW4gb2JqXQogICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2Jq
LCBDb21taXQpOgogICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcihDb21taXQuRW5jb2Rlciwg
c2VsZikuZGVmYXVsdChvYmopCiAKQEAgLTI3MCw3ICsyNzQsNyBAQCBjbGFzcyBDb21taXQob2Jq
ZWN0KToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB1dWlkKHNlbGYpOgotICAgICAgICBpZiBu
b3Qgc2VsZi50aW1lc3RhbXA6CisgICAgICAgIGlmIHNlbGYudGltZXN0YW1wIGlzIE5vbmU6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICByZXR1cm4gc2VsZi50aW1lc3RhbXAgKiBz
ZWxmLlVVSURfTVVMVElQTElFUiArIHNlbGYub3JkZXIKIApAQCAtMjg1LDcgKzI4OSw3IEBAIGNs
YXNzIENvbW1pdChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFzaFs6c2VsZi5I
QVNIX0xBQkVMX1NJWkVdCiAgICAgICAgIGlmIHNlbGYuaWRlbnRpZmllciBpcyBub3QgTm9uZToK
ICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5pZGVudGlmaWVyKQotICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdJbmNvbXBsZXRlIGNvbW1pdCBmb3JtYXQnKQorICAgICAgICByZXR1cm4gJz8n
CiAKICAgICBkZWYgX19oYXNoX18oc2VsZik6CiAgICAgICAgIGlmIHNlbGYuaWRlbnRpZmllciBh
bmQgc2VsZi5icmFuY2g6CkBAIC0zMDEsOCArMzA1LDExIEBAIGNsYXNzIENvbW1pdChvYmplY3Qp
OgogICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKICAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2Uob3RoZXIsIENvbW1pdCk6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDYW5ub3Qg
Y29tcGFyZSBjb21taXQgYW5kIHt9Jy5mb3JtYXQodHlwZShvdGhlcikpKQotICAgICAgICBpZiBz
ZWxmLnV1aWQgYW5kIG90aGVyLnV1aWQgYW5kIHNlbGYudXVpZCAhPSBvdGhlci51dWlkOgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYudXVpZCAtIG90aGVyLnV1aWQKKyAgICAgICAgaWYgc2VsZi51
dWlkIGFuZCBvdGhlci51dWlkOgorICAgICAgICAgICAgaWYgc2VsZi51dWlkICE9IG90aGVyLnV1
aWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudXVpZCAtIG90aGVyLnV1aWQKKyAgICAg
ICAgICAgIGlmIHNlbGYucmVwb3NpdG9yeV9pZCAhPSBvdGhlci5yZXBvc2l0b3J5X2lkOgorICAg
ICAgICAgICAgICAgIHJldHVybiAxIGlmIHNlbGYucmVwb3NpdG9yeV9pZCA+IG90aGVyLnJlcG9z
aXRvcnlfaWQgZWxzZSAtMQogICAgICAgICBpZiBzZWxmLnJldmlzaW9uIGFuZCBvdGhlci5yZXZp
c2lvbjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJldmlzaW9uIC0gb3RoZXIucmV2aXNpb24K
ICAgICAgICAgaWYgc2VsZi5pZGVudGlmaWVyIGFuZCBvdGhlci5pZGVudGlmaWVyIGFuZCBzZWxm
LmJyYW5jaCA9PSBvdGhlci5icmFuY2g6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nrcy9yZW1vdGUvYml0YnVja2V0LnB5IGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVt
b3RlL2JpdGJ1Y2tldC5weQppbmRleCBiZjVlMDQ4ZTBkYzE3OGMzNTA4ODBkMzljNTE1ZGI2OWQ2
YzU4ODQ2Li5hMWQxNzA3MWQwN2JmNmQwNjhlYTg4NmZmY2UxNDlkMTRhMmYwNTQ3IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nr
cy9yZW1vdGUvYml0YnVja2V0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHkKQEAgLTE4Niw5ICsx
ODYsOSBAQCBjbGFzcyBCaXRCdWNrZXQobW9ja3MuUmVxdWVzdHMpOgogICAgICAgICAgICAgICAg
ICAgICBkaXNwbGF5TmFtZT1jb21taXQuYXV0aG9yLm5hbWUsCiAgICAgICAgICAgICAgICAgKSwK
ICAgICAgICAgICAgICAgICBjb21taXR0ZXJUaW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCAqIDEw
MDAsCi0gICAgICAgICAgICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSArICdcbmdpdC1zdm4t
aWQ6IGh0dHBzOi8vc3ZuLmV4YW1wbGUub3JnL3JlcG9zaXRvcnkvd2Via2l0L3t9QHt9IDI2OGY0
NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5MWI0ZGJmY1xuJy5mb3JtYXQoCisgICAgICAgICAgICAg
ICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSArICgnXG5naXQtc3ZuLWlkOiBodHRwczovL3N2bi5l
eGFtcGxlLm9yZy9yZXBvc2l0b3J5L3dlYmtpdC97fUB7fSAyNjhmNDVjYy1jZDA5LTA0MTAtYWIz
Yy1kNTI2OTFiNGRiZmNcbicuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAndHJ1bmsnIGlm
IGNvbW1pdC5icmFuY2ggPT0gc2VsZi5kZWZhdWx0X2JyYW5jaCBlbHNlIGNvbW1pdC5icmFuY2gs
IGNvbW1pdC5yZXZpc2lvbiwKLSAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICkg
aWYgY29tbWl0LnJldmlzaW9uIGVsc2UgJycpLAogICAgICAgICAgICAgKSkKIAogICAgICAgICBp
ZiBzdHJpcHBlZF91cmwuc3RhcnRzd2l0aCgne30vcmVzdC9icmFuY2gtdXRpbHMvbGF0ZXN0L3t9
L2JyYW5jaGVzL2luZm8vJy5mb3JtYXQoc2VsZi5ob3N0c1swXSwgc2VsZi5wcm9qZWN0KSk6CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9tb2Nrcy9yZW1vdGUvZ2l0X2h1Yi5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtp
dHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CmluZGV4IGNhNzUzZmM4
ZmRhNzhlZGZlZTAyYzAxNjY0ZGM4ZjA5ZDI2M2Q3MzEuLjAwNzhjMTczODJkODcwMjIxNjJjZDRj
ZmE4ZmViNGYxYTkwNTQwODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9n
aXRfaHViLnB5CkBAIC0yMyw3ICsyMyw2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBqc29uCiAKLWZy
b20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgbW9j
a3MKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdCwgcmVtb3RlIGFzIHNjbXJlbW90ZQog
CkBAIC0xMzQsNiArMTMzLDggQEAgY2xhc3MgR2l0SHViKG1vY2tzLlJlcXVlc3RzKToKICAgICAg
ICAgXSwgdXJsPXVybCkKIAogICAgIGRlZiBfY29tbWl0X3Jlc3BvbnNlKHNlbGYsIHVybCwgcmVm
KToKKyAgICAgICAgZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQorCiAg
ICAgICAgIGNvbW1pdCA9IHNlbGYuY29tbWl0KHJlZikKICAgICAgICAgaWYgbm90IGNvbW1pdDoK
ICAgICAgICAgICAgIHJldHVybiBtb2Nrcy5SZXNwb25zZSgKQEAgLTE0NywxMSArMTQ4LDExIEBA
IGNsYXNzIEdpdEh1Yihtb2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAgICAgICAgICAgJ2F1dGhvcic6
IHsKICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiBjb21taXQuYXV0aG9yLm5hbWUsCiAgICAg
ICAgICAgICAgICAgICAgICdlbWFpbCc6IGNvbW1pdC5hdXRob3IuZW1haWwsCi0gICAgICAgICAg
ICAgICAgICAgICdkYXRlJzogZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChjb21taXQudGltZXN0YW1w
KS5zdHJmdGltZSgnJVktJW0tJWRUJUg6JU06JVNaJyksCisgICAgICAgICAgICAgICAgICAgICdk
YXRlJzogZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFtcChjb21taXQudGltZXN0YW1wIC0gdGltZWRl
bHRhKGhvdXJzPTcpLnNlY29uZHMpLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onKSwKICAg
ICAgICAgICAgICAgICB9LCAnY29tbWl0dGVyJzogewogICAgICAgICAgICAgICAgICAgICAnbmFt
ZSc6IGNvbW1pdC5hdXRob3IubmFtZSwKICAgICAgICAgICAgICAgICAgICAgJ2VtYWlsJzogY29t
bWl0LmF1dGhvci5lbWFpbCwKLSAgICAgICAgICAgICAgICAgICAgJ2RhdGUnOiBkYXRldGltZS5m
cm9tdGltZXN0YW1wKGNvbW1pdC50aW1lc3RhbXApLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTol
U1onKSwKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGUnOiBkYXRldGltZS51dGNmcm9tdGltZXN0
YW1wKGNvbW1pdC50aW1lc3RhbXAgLSB0aW1lZGVsdGEoaG91cnM9Nykuc2Vjb25kcykuc3RyZnRp
bWUoJyVZLSVtLSVkVCVIOiVNOiVTWicpLAogICAgICAgICAgICAgICAgIH0sICdtZXNzYWdlJzog
Y29tbWl0Lm1lc3NhZ2UgKyAnXG5naXQtc3ZuLWlkOiBodHRwczovL3N2bi5leGFtcGxlLm9yZy9y
ZXBvc2l0b3J5L3dlYmtpdC97fUB7fSAyNjhmNDVjYy1jZDA5LTA0MTAtYWIzYy1kNTI2OTFiNGRi
ZmNcbicuZm9ybWF0KAogICAgICAgICAgICAgICAgICAgICAndHJ1bmsnIGlmIGNvbW1pdC5icmFu
Y2ggPT0gc2VsZi5kZWZhdWx0X2JyYW5jaCBlbHNlIGNvbW1pdC5icmFuY2gsIGNvbW1pdC5yZXZp
c2lvbiwKICAgICAgICAgICAgICAgICApIGlmIGNvbW1pdC5yZXZpc2lvbiBlbHNlICcnLApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
c2NtX2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9zY21fYmFzZS5weQppbmRleCAzNmIxYzAwOTg5NTg3YjE5MTlhODIzZWZjYzhmM2Q0YTc4
M2ViYWYxLi5iMDJjOGE0M2ZkYmVmYzUxNzNjNWRjOTIxNWM5OTQzYzk1NGM5MDAyIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9zY21f
YmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9zY21fYmFzZS5weQpAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTY21CYXNlKG9iamVjdCk6
CiAgICAgIyB0aGUgZm9sbG93aW5nIGlkaW9tcyBzZWVtIGNvbW1vbiBlbm91Z2ggdG8gYmUgc2hh
cmVkLgogICAgIERFVl9CUkFOQ0hFUyA9IHJlLmNvbXBpbGUocicuKlsoZW5nKShkZXYpKGJ1Zyld
Ly4rJykKICAgICBQUk9EX0JSQU5DSEVTID0gcmUuY29tcGlsZShyJ1xTKy1bXGQrXC5dKy1icmFu
Y2gnKQotICAgIEdJVF9TVk5fUkVWSVNJT04gPSByZS5jb21waWxlKHInZ2l0LXN2bi1pZDogXFMr
OlwvXC8uK0AoP1A8cmV2aXNpb24+XGQrKSAuKy0uKy0uKy0uKycpCisgICAgR0lUX1NWTl9SRVZJ
U0lPTiA9IHJlLmNvbXBpbGUocidbXiBdZ2l0LXN2bi1pZDogXFMrOlwvXC8uK0AoP1A8cmV2aXNp
b24+XGQrKSAuKy0uKy0uKy0uKycpCiAgICAgREVGQVVMVF9CUkFOQ0hFUyA9IFsnbWFpbicsICdt
YXN0ZXInLCAndHJ1bmsnXQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRldl9icmFuY2hlcz1O
b25lLCBwcm9kX2JyYW5jaGVzPU5vbmUsIGNvbnRyaWJ1dG9ycz1Ob25lLCBpZD1Ob25lKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424601</attachid>
            <date>2021-03-29 16:37:41 -0700</date>
            <delta_ts>2021-03-30 11:25:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223262-20210329163740.patch</filename>
            <type>text/plain</type>
            <size>123749</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MTkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzczYjEzMDc1ODA2M2JjYmU0ZWIxNzZkZTZkYWUxOGY1
YmMxZTM3NS4uNjdlM2NjMWQyNzM1ZGEzNzE5YzcxMTMwZWM3OWViNDU1Yzk4MTY4NiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEx
MSBAQAorMjAyMS0wMy0yOSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CisK
KyAgICAgICAgW3Jlc3VsdHNkYnB5XSBSZXR1cm4gbmV3LXN0eWxlIGNvbW1pdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzI2MgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzU0ODMzNjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV3ZWkgWmh1
LgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
X19pbml0X18ucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdC5weTogUmVtb3ZlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9s
bGVyL2NvbW1pdF9jb250cm9sbGVyLnB5OgorICAgICAgICAoX2ZpbmRfY29tcGFyaXNvbik6IFJl
cGxhY2UgaWQgd2l0aCByZWYuCisgICAgICAgICh1dWlkX3JhbmdlX2Zvcl9jb21taXRfcmFuZ2Vf
cXVlcnkpOiBTdXBwb3J0IGJvdGggaWQgYW5kIHJlZiBpbiBSRVNUIEFQSS4KKyAgICAgICAgKHV1
aWRfcmFuZ2VfZm9yX3F1ZXJ5KTogRGl0dG8uCisgICAgICAgIChDb21taXRDb250cm9sbGVyLl9m
aW5kKTogRGl0dG8uCisgICAgICAgIChDb21taXRDb250cm9sbGVyLnJlZ2lzdGVyKTogUmV0dXJu
IHdlYmtpdHNjbXB5LkNvbW1pdCBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlcl91bml0
dGVzdC5weToKKyAgICAgICAgKENvbW1pdENvbnRyb2xsZXJUZXN0LnRlc3RfYnJhbmNoZXMpOiBX
ZWJLaXQncyBkZWZhdWx0IGJyYW5jaCBpcyBub3cgbWFpbi4KKyAgICAgICAgKENvbW1pdENvbnRy
b2xsZXJUZXN0LnRlc3RfcmVnaXN0ZXJfd2l0aF9mdWxsX2NvbW1pdCk6IFJlZ2lzdGVyZWQgY29t
bWl0cyBzaG91bGQgYmUgd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAgICAgIChDb21t
aXRDb250cm9sbGVyVGVzdC50ZXN0X2ZpbmRfcmFuZ2VfaWQpOiBSZXR1cm5lZCByZXZpc2lvbnMg
YXJlIG5vdyBpbnRlZ2Vycy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVzdC5weTogUmVtb3ZlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9s
bGVyL3VwbG9hZF9jb250cm9sbGVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVXBsb2FkQ29udHJv
bGxlclBvc3RUZXN0LnRlc3RfdXBsb2FkKTogV2ViS2l0IGNvbW1pdHMgYXJlIHVuZGVyLXBpbm5l
ZCBieSBHaXQgbm93LgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29udGV4dC5weToKKyAgICAgICAgKEFyY2hpdmVDb250
ZXh0LnJlZ2lzdGVyKTogVXNlIHdlYmtpdHNjbXB5IENvbW1pdCBvYmplY3RzLgorICAgICAgICAq
IFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NpX2NvbnRl
eHQucHk6CisgICAgICAgIChDSUNvbnRleHQucmVnaXN0ZXIpOiBVc2Ugd2Via2l0c2NtcHkgQ29t
bWl0IG9iamVjdHMuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHQucHk6CisgICAgICAgIChDb21taXRDb250ZXh0
LkNvbW1pdE1vZGVsKTogUmVuYW1lZCBmcm9tIENvbW1pdE1vZGVsTWsyLgorICAgICAgICAoQ29t
bWl0Q29udGV4dC5Db21taXRCeVV1aWRBc2NlbmRpbmcpOiBSZW5hbWVkIGZyb20gQ29tbWl0QnlV
dWlkQXNjZW5kaW5nTWsyLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5Db21taXRCeVV1aWREZXNj
ZW5kaW5nKTogUmVuYW1lZCBmcm9tIENvbW1pdEJ5VXVpZERlc2NlbmRpbmdNazIuCisgICAgICAg
IChDb21taXRDb250ZXh0Ll9faW5pdF9fKTogUmVtb3ZlIG9sZCB0YWJsZXMuCisgICAgICAgIChD
b21taXRDb250ZXh0LnRpbWVzdGFtcF90b191dWlkKTogVXNlIHdlYmtpdHNjbXB5IENvbW1pdCBv
YmplY3RzLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyk6
IEFsbCBkZWZhdWx0IGJyYW5jaGVzIHNob3VsZCBiZSB0cmVhdGVkIHRoZSBzYW1lLgorICAgICAg
ICAoQ29tbWl0Q29udGV4dC5maW5kX2NvbW1pdHNfYnlfcmVmKTogRmluZCBjb21taXRzIGJ5IHJl
dmlzaW9uLCBoYXNoIGFuZCBpZGVudGlmaWVyLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5yZWdp
c3Rlcik6CisgICAgICAgIChDb21taXRDb250ZXh0LnJlZ2lzdGVyX2NvbW1pdCk6IFNhdmUgY29t
bWl0IHRvIG5ldyB0YWJsZXMuCisgICAgICAgIChDb21taXRDb250ZXh0LnVybCk6IFBhc3MgY29t
bWl0IG9iamVjdCB0byByZXBvc2l0b3J5IHVybCBnZW5lcmF0b3IuCisgICAgICAgIChDb21taXRD
b250ZXh0LkNvbW1pdEJ5SUQpOiBEZWxldGVkLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5Db21t
aXRNb2RlbE1rMik6IFJlbmFtZWQgdG8gQ29tbWl0TW9kZWwuCisgICAgICAgIChDb21taXRDb250
ZXh0LkNvbW1pdEJ5VXVpZEFzY2VuZGluZ01rMik6IFJlbmFtZWQgdG8gQ29tbWl0QnlVdWlkQXNj
ZW5kaW5nLgorICAgICAgICAoQ29tbWl0Q29udGV4dC5Db21taXRCeVV1aWREZXNjZW5kaW5nTWsy
KTogUmVuYW1lZCB0byBDb21taXRCeVV1aWREZXNjZW5kaW5nLgorICAgICAgICAoQ29tbWl0Q29u
dGV4dC5maW5kX2NvbW1pdHNfYnlfaWQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvbGli
cmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NvbW1pdF9jb250ZXh0X3VuaXR0
ZXN0LnB5OgorICAgICAgICAoQ29tbWl0Q29udGV4dFRlc3QpOiBVc2UgcmVmIGluc3RlYWQgb2Yg
aWQuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvZmFpbHVyZV9jb250ZXh0LnB5OgorICAgICAgICAoRmFpbHVyZUNvbnRleHQucmVnaXN0
ZXIpOiBVc2Ugd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvbW9ja19tb2RlbF9mYWN0b3J5
LnB5OgorICAgICAgICAoTW9ja01vZGVsRmFjdG9yeSk6CisgICAgICAgIChNb2NrTW9kZWxGYWN0
b3J5LndlYmtpdCk6IE1vY2sgYm90aCBTdWJ2ZXJzaW9uIGFuZCBHaXRIdWIgZm9yIFdlYktpdC4K
KyAgICAgICAgKE1vY2tNb2RlbEZhY3RvcnkuY3JlYXRlKToKKyAgICAgICAgKiBTY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5LnB5OgorICAg
ICAgICAoUmVwb3NpdG9yeS5jb21taXQpOiBCeSBkZWZhdWx0LCBmdWxseSBkZWZpbmUgY29tbWl0
cy4KKyAgICAgICAgKFN0YXNoUmVwb3NpdG9yeS5jb21taXQpOiBEaXR0by4KKyAgICAgICAgKFN0
YXNoUmVwb3NpdG9yeS51cmxfZm9yX2NvbW1pdCk6IENyZWF0ZSBhIFVSTCBmb3IgYSBjb21taXQg
b2JqZWN0LgorICAgICAgICAoV2ViS2l0UmVwb3NpdG9yeS5fX2luaXRfXyk6IFVzZSBib3RoIEdp
dEh1YiBhbmQgU3VidmVyc2lvbi4KKyAgICAgICAgKFdlYktpdFJlcG9zaXRvcnkuY29tbWl0KTog
RGV0ZXJtaW5lIHdoaWNoIHJlbW90ZSB0byB1c2UgYmFzZWQgb24gcHJvdmlkZWQgYXJndW1lbnRz
LgorICAgICAgICAoV2ViS2l0UmVwb3NpdG9yeS51cmxfZm9yX2NvbW1pdCk6IENyZWF0ZSBhIFVS
TCBmb3IgYSBjb21taXQgb2JqZWN0LgorICAgICAgICAoV2ViS2l0UmVwb3NpdG9yeS5yZXByZXNl
bnRhdGlvbnMpOiBXZWJLaXQgY29tbWl0cyBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgaGFzaGVzLgor
ICAgICAgICAoUmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKTogRGVsZXRlZC4KKyAgICAgICAgKFN0
YXNoUmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdFJl
cG9zaXRvcnkuY29tbWl0X2Zvcl9pZCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVwb3NpdG9yeV91bml0dGVzdC5w
eToKKyAgICAgICAgKFJlcG9zaXRvcnlUZXN0LnRlc3Rfc3ZuKTogV2ViS2l0IGRlZmF1bHQgYnJh
bmNoIGlzIG5vdyBtYWluLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L21vZGVsL3N1aXRlX2NvbnRleHQucHk6CisgICAgICAgIChTdWl0ZUNvbnRl
eHQucmVnaXN0ZXIpOiBVc2Ugd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdHMuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdGVzdF9jb250
ZXh0LnB5OgorICAgICAgICAoVGVzdENvbnRleHQucmVnaXN0ZXIpOiBVc2Ugd2Via2l0c2NtcHkg
Q29tbWl0IG9iamVjdHMuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkv
cmVzdWx0c2RicHkvbW9kZWwvdXBsb2FkX2NvbnRleHQucHk6CisgICAgICAgIChVcGxvYWRDb250
ZXh0LlVwbG9hZHNCeUNvbmZpZ3VyYXRpb25MZWdhY3kudW5wYWNrKTogVXNlIHdlYmtpdHNjbXB5
IENvbW1pdCBvYmplY3RzLgorICAgICAgICAoVXBsb2FkQ29udGV4dC5VcGxvYWRzQnlDb25maWd1
cmF0aW9uLnVucGFjayk6IERpdHRvLgorICAgICAgICAoVXBsb2FkQ29udGV4dC5fZG9fam9iX2Zv
cl9rZXkpOiBEaXR0by4KKyAgICAgICAgKFVwbG9hZENvbnRleHQudXBsb2FkX3Rlc3RfcmVzdWx0
cyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5OgorICAgICAgICAoQXJjaGl2ZVZp
ZXdVbml0dGVzdC5yZWdpc3Rlcl9hcmNoaXZlKTogVXNlIHdlYmtpdHNjbXB5IENvbW1pdCBvYmpl
Y3RzLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5
L3ZpZXcvY29tbWl0X3ZpZXcucHk6CisgICAgICAgIChDb21taXRWaWV3LmNvbW1pdCk6IFVzZSB3
ZWJraXRzY21weSBDb21taXQgb2JqZWN0cy4KKyAgICAgICAgKENvbW1pdFZpZXcuaW5mbyk6IERp
dHRvLgorICAgICAgICAoQ29tbWl0Vmlldy5wcmV2aW91cyk6IERpdHRvLgorICAgICAgICAoQ29t
bWl0Vmlldy5uZXh0KTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMvY29tbWl0LmpzOgorICAgICAgICAoQ29t
bWl0KTogCisgICAgICAgIChDb21taXQucHJvdG90eXBlLmxhYmVsKTogT25seSBwcmludCBpZGVu
dGlmaWVyL2hhc2gvcmV2aXNpb24gaWYgdGhleSBhcmUgZGVmaW5lZC4KKyAgICAgICAgKF9Db21t
aXRCYW5rLnByb3RvdHlwZS5fbG9hZFNpYmxpbmdzKTogVXNlIHJlZiBvdmVyIGlkLgorICAgICAg
ICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGlj
L2pzL2RyYXdlci5qczogbWFpbiBpcyBhIGRlZmF1bHQgYnJhbmNoLgorICAgICAgICAqIFNjcmlw
dHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL3RpbWVs
aW5lLmpzOgorICAgICAgICAoeEF4aXNGcm9tU2NhbGUpOiBPbmx5IHByaW50IGF1dGhvciBpZiB0
aGUgYXV0aG9yIGV4aXN0cy4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9jb21taXQuaHRtbDogcHJlZmVyIHJlZiBvdmVy
IGlkLCB1c2UKKyAgICAgICAgd2Via2l0c2NtcHkgQ29tbWl0IG9iamVjdCBpbiBKaW5qYSB0ZW1w
bGF0ZS4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS92aWV3L3RlbXBsYXRlcy9kb2N1bWVudGF0aW9uLmh0bWw6IFVwZGF0ZSBkb2N1bWVudGF0aW9u
CisgICAgICAgIHRvIG1hdGNoIHdlYmtpdHNjbXB5IENvbW1pdCBvYmplY3QuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMv
aW52ZXN0aWdhdGUuaHRtbDogbWFpbiBpcyBhIGRlZmF1bHQgYnJhbmNoLgorICAgICAgICAqIFNj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3Nl
YXJjaC5odG1sOiBDb3JyZWN0IENvbW1pdFJlcHJlc2VudGF0aW9uIGNhbGxiYWNrLgorICAgICAg
ICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxh
dGVzL3N1aXRlX3Jlc3VsdHMuaHRtbDogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJp
ZXMvcmVzdWx0c2RicHkvc2V0dXAucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS9zZXR1cC5weTogRGl0dG8uCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IERpdHRvLgor
ICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2NvbW1p
dC5weToKKyAgICAgICAgKENvbW1pdC5FbmNvZGVyLmRlZmF1bHQpOiBIYW5kbGUgZGljdCBhbmQg
bGlzdCBpbiBKU09OIGNvcnJlY3RseS4KKyAgICAgICAgKENvbW1pdC51dWlkKTogdXVpZCBzaG91
bGQgYmUgJ05vbmUnIHdoZW4gdGltZXN0YW1wIGlzICdOb25lJy4KKyAgICAgICAgKENvbW1pdC5f
X3JlcHJfXyk6IFJldHVybiBhID8gZm9yIGFuIHVuZGVmaW5lZCBjb21taXQuCisgICAgICAgICog
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2Jp
dGJ1Y2tldC5weToKKyAgICAgICAgKEJpdEJ1Y2tldC5yZXF1ZXN0KTogRG8gbm90IGFkZCBnaXQt
c3ZuLWlkIGZvciB1bmRlZmluZWQgcmV2aXNpb24uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9odWIucHk6CisgICAg
ICAgIChHaXRIdWIuX2NvbW1pdF9yZXNwb25zZSk6IEZpeCB1bml0IHRlc3RzLgorICAgICAgICAq
IFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3NjbV9iYXNlLnB5Ogor
ICAgICAgICAoU2NtQmFzZSk6IERvIG5vdCBtYWNoIGdpdC1zdm4gSUQgd2l0aCBhIHNwYWNlIGJl
Zm9yZSBpdC4KKwogMjAyMS0wMy0yOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYSB3YXkgZm9yIGludGVybmFsIGNsaWVudHMgdG8gaGl0LXRl
c3QgZm9yIHNlbGVjdGFibGUgdGV4dCBpbiB1c2VyIGFnZW50IHNoYWRvdyByb290cwpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19p
bml0X18ucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9fX2luaXRfXy5weQppbmRleCA1ZDMzY2ZmZGEyZDJkMjEwYmFhZGY2M2NhMmI4MDRmNzVjYWI5
YjZmLi42YzYwOWRlZDMyYzA2MzI0MmU5MDRkZDk3Njk2MmZkODA3YTUxMzkzIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9fX2luaXRf
Xy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9fX2luaXRfXy5weQpAQCAtNDQsNiArNDQsNiBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAg
ICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0
Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAot
dmVyc2lvbiA9IFZlcnNpb24oMiwgMCwgMykKK3ZlcnNpb24gPSBWZXJzaW9uKDIsIDAsIDQpCiAK
IG5hbWUgPSAncmVzdWx0c2RicHknCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzY3NjhlZTgyOTE2MGFhMWJmZGY2
ZGE2ZGFiN2ViZjE0MGRlNTAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5
L2NvbnRyb2xsZXIvY29tbWl0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLSMg
Q29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBjYWxlbmRhcgotaW1w
b3J0IGpzb24KLWltcG9ydCByZQotCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJv
bSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEZsYXNrSlNPTkVuY29kZXIKLQotCi1jbGFzcyBD
b21taXQob2JqZWN0KToKLSAgICBUSU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSID0gMTAwCi0g
ICAgTUFYX0tFWV9MRU5HVEggPSAxMjgKLQotICAgIFJFVklTSU9OX1JFID0gcmUuY29tcGlsZShy
J1swLTldKyQnKQotICAgIEhBU0hfUkUgPSByZS5jb21waWxlKHInW2EtZkEtRjAtOV0rJCcpCi0K
LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9qc29uKGNscywgZGF0YSk6Ci0gICAgICAg
IGRhdGEgPSBkYXRhIGlmIGlzaW5zdGFuY2UoZGF0YSwgZGljdCkgZWxzZSBqc29uLmxvYWRzKGRh
dGEpCi0gICAgICAgIHJldHVybiBjbHMoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPWRhdGEu
Z2V0KCdyZXBvc2l0b3J5X2lkJyksCi0gICAgICAgICAgICBicmFuY2g9ZGF0YS5nZXQoJ2JyYW5j
aCcpLAotICAgICAgICAgICAgaWQ9ZGF0YS5nZXQoJ2lkJyksCi0gICAgICAgICAgICByZXZpc2lv
bj1kYXRhLmdldCgncmV2aXNpb24nKSwKLSAgICAgICAgICAgIGhhc2g9ZGF0YS5nZXQoJ2hhc2gn
KSwKLSAgICAgICAgICAgIHRpbWVzdGFtcD1kYXRhLmdldCgndGltZXN0YW1wJyksCi0gICAgICAg
ICAgICBvcmRlcj1kYXRhLmdldCgnb3JkZXInKSwKLSAgICAgICAgICAgIGNvbW1pdHRlcj1kYXRh
LmdldCgnY29tbWl0dGVyJyksCi0gICAgICAgICAgICBtZXNzYWdlPWRhdGEuZ2V0KCdtZXNzYWdl
JyksCi0gICAgICAgICkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvc2l0b3J5X2lkLCBi
cmFuY2gsIGlkLCB0aW1lc3RhbXA9Tm9uZSwgb3JkZXI9Tm9uZSwgY29tbWl0dGVyPU5vbmUsIG1l
c3NhZ2U9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lKToKLSAgICAgICAgZm9yIGFyZ3Vt
ZW50IGluIFsoJ3JlcG9zaXRvcnlfaWQnLCByZXBvc2l0b3J5X2lkKSwgKCdicmFuY2gnLCBicmFu
Y2gpLCAoJ2lkJywgaWQpLCAoJ3RpbWVzdGFtcCcsIHRpbWVzdGFtcCldOgotICAgICAgICAgICAg
aWYgYXJndW1lbnRbMV0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KGYne2FyZ3VtZW50WzBdfSBpcyBub3QgZGVmaW5lZCBmb3IgY29tbWl0JykKLQotICAgICAgICBz
ZWxmLnJlcG9zaXRvcnlfaWQgPSBzdHIocmVwb3NpdG9yeV9pZCkKLSAgICAgICAgaWYgbm90IHJl
Lm1hdGNoKHInXlthLXpBLVo/XSskJywgc2VsZi5yZXBvc2l0b3J5X2lkKSBvciBsZW4oc2VsZi5y
ZXBvc2l0b3J5X2lkKSA+IHNlbGYuTUFYX0tFWV9MRU5HVEg6Ci0gICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKGYiJ3tzZWxmLnJlcG9zaXRvcnlfaWR9JyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRv
cnkgaWQiKQotCi0gICAgICAgIHNlbGYuYnJhbmNoID0gc3RyKGJyYW5jaCkKLSAgICAgICAgaWYg
bm90IHJlLm1hdGNoKHInXlthLXpBLVowLTktLj8vXSskJywgc2VsZi5icmFuY2gpIG9yIGxlbihz
ZWxmLmJyYW5jaCkgPiBzZWxmLk1BWF9LRVlfTEVOR1RIOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcihmIid7c2VsZi5icmFuY2h9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBuYW1lIikKLQot
ICAgICAgICAjIEFuIGlkIGlzIGVpdGhlciBhIGdpdCBjb21taXQgb3IgU1ZOIHJldmlzaW9uLgot
ICAgICAgICBzZWxmLmlkID0gc3RyKGlkKQotICAgICAgICBpZiBub3QgcmUubWF0Y2gocideW2Et
ZkEtRjAtOT9dKyQnLCBzZWxmLmlkKSBvciBsZW4oc2VsZi5pZCkgPiA0MDoKLSAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoZiIne3NlbGYuaWR9JyBpcyBhbiBpbnZhbGlkIGNvbW1pdCBpZCIp
Ci0KLSAgICAgICAgc2VsZi5yZXZpc2lvbiA9IHJldmlzaW9uCi0gICAgICAgIHNlbGYuaGFzaCA9
IGhhc2gKLSAgICAgICAgaWYgc2VsZi5SRVZJU0lPTl9SRS5tYXRjaChzZWxmLmlkKToKLSAgICAg
ICAgICAgIGlmIG5vdCBzZWxmLnJldmlzaW9uOgotICAgICAgICAgICAgICAgIHNlbGYucmV2aXNp
b24gPSBzZWxmLmlkCi0gICAgICAgIGVsaWYgc2VsZi5IQVNIX1JFLm1hdGNoKHNlbGYuaWQpOgot
ICAgICAgICAgICAgaWYgbm90IHNlbGYuaGFzaDoKLSAgICAgICAgICAgICAgICBzZWxmLmhhc2gg
PSBzZWxmLmlkCi0KLSAgICAgICAgaWYgc2VsZi5yZXZpc2lvbjoKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBzZWxmLnJldmlzaW9uID0gaW50KHNlbGYucmV2aXNpb24pCi0gICAg
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKGYiJ3tzZWxmLnJldmlzaW9ufScgaXMgbm90IGFuIGludGVnZXIiKQotICAgICAgICBpZiBz
ZWxmLmhhc2g6Ci0gICAgICAgICAgICBzZWxmLmhhc2ggPSBzZWxmLmhhc2gubG93ZXIoKQotCi0g
ICAgICAgIGlmIGlzaW5zdGFuY2UodGltZXN0YW1wLCBkYXRldGltZSk6Ci0gICAgICAgICAgICBz
ZWxmLnRpbWVzdGFtcCA9IHRpbWVzdGFtcAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2Vs
Zi50aW1lc3RhbXAgPSBkYXRldGltZS51dGNmcm9tdGltZXN0YW1wKGludCh0aW1lc3RhbXApKQot
ICAgICAgICBzZWxmLm9yZGVyID0gaW50KG9yZGVyKSBpZiBvcmRlciBlbHNlIDAKLQotICAgICAg
ICBzZWxmLmNvbW1pdHRlciA9IGNvbW1pdHRlciBpZiBjb21taXR0ZXIgZWxzZSBOb25lCi0gICAg
ICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UgaWYgbWVzc2FnZSBlbHNlIE5vbmUKLQotICAgIGRl
ZiB0aW1lc3RhbXBfYXNfZXBvY2goc2VsZik6Ci0gICAgICAgIHJldHVybiBjYWxlbmRhci50aW1l
Z20oc2VsZi50aW1lc3RhbXAudGltZXR1cGxlKCkpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYg
dXVpZChzZWxmKToKLSAgICAgICAgIyBSZWJhc2UtYmFzZWQgd29ya2Zsb3dzIGluIGdpdCBjYW4g
Y2F1c2UgY29tbWl0cyB0byBoYXZlIHRoZSBzYW1lIGNvbW1pdCB0aW1lc3RhbXAuIFRvIHVuaXF1
ZWx5IHJlY29nbml6ZSB0aGVtLAotICAgICAgICAjIG11bHRpcGx5IGVhY2ggdGltZXN0YW1wIGJ5
IHRoZSBgVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUmAuCi0gICAgICAgIHJldHVybiBzZWxm
LnRpbWVzdGFtcF9hc19lcG9jaCgpICogc2VsZi5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVS
ICsgc2VsZi5vcmRlcgotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJl
dHVybiAoaXNpbnN0YW5jZShvdGhlciwgdHlwZShzZWxmKSkgYW5kIChzZWxmLnJlcG9zaXRvcnlf
aWQsIHNlbGYuYnJhbmNoLCBzZWxmLmlkKSA9PSAob3RoZXIucmVwb3NpdG9yeV9pZCwgb3RoZXIu
YnJhbmNoLCBvdGhlci5pZCkpCi0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKLSAgICAg
ICAgcmV0dXJuIG5vdCAoc2VsZiA9PSBvdGhlcikKLQotICAgIGRlZiBfX2x0X18oc2VsZiwgb3Ro
ZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFtcCA8IG90aGVyLnRpbWVzdGFtcDoKLSAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHNlbGYudGltZXN0YW1wID4gb3RoZXIudGlt
ZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBzZWxmLm9y
ZGVyIDwgb3RoZXIub3JkZXIKLQotICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgotICAgICAg
ICByZXR1cm4gc2VsZiA8IG90aGVyIG9yIHNlbGYgPT0gb3RoZXIKLQotICAgIGRlZiBfX2d0X18o
c2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLnRpbWVzdGFtcCA+IG90aGVyLnRpbWVzdGFt
cDoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGlmIHNlbGYudGltZXN0YW1wIDwg
b3RoZXIudGltZXN0YW1wOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVy
biBzZWxmLm9yZGVyID4gb3RoZXIub3JkZXIKLQotICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIp
OgotICAgICAgICByZXR1cm4gc2VsZiA+IG90aGVyIG9yIHNlbGYgPT0gb3RoZXIKLQotICAgIGRl
ZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5yZXBvc2l0b3J5X2lk
KSBeIGhhc2goc2VsZi5icmFuY2gpIF4gaGFzaChzZWxmLmlkKQotCi0gICAgZGVmIHRvX2pzb24o
c2VsZiwgcHJldHR5X3ByaW50PUZhbHNlKToKLSAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoc2Vs
ZiwgY2xzPXNlbGYuRW5jb2Rlciwgc29ydF9rZXlzPXByZXR0eV9wcmludCwgaW5kZW50PTQgaWYg
cHJldHR5X3ByaW50IGVsc2UgTm9uZSkKLQotICAgIGNsYXNzIEVuY29kZXIoRmxhc2tKU09ORW5j
b2Rlcik6Ci0KLSAgICAgICAgZGVmIGRlZmF1bHQoc2VsZiwgb2JqKToKLSAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2Uob2JqLCBDb21taXQpOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHt9Ci0g
ICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gb2JqLl9fZGljdF9fLml0ZW1zKCk6Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlCi0g
ICAgICAgICAgICAgICAgcmVzdWx0Wyd0aW1lc3RhbXAnXSA9IG9iai50aW1lc3RhbXBfYXNfZXBv
Y2goKQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKLSAgICAgICAgICAgIHJldHVybiBz
dXBlcihDb21taXQuRW5jb2Rlciwgc2VsZikuZGVmYXVsdChvYmopCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2Nv
bW1pdF9jb250cm9sbGVyLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkv
cmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weQppbmRleCA0NDQyNGQ1
NTljOGVhODg2MDRkMzgyNGFlYTAyOTRhYzUxOWJhOWEyLi40ZGJhMzU1ZGQxMjY4MmRhZWUyZDQz
ZTI5NmJhZGU5MGJlNGJhZGViIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRy
b2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkKQEAgLTI0LDI2ICsyNCwyNSBAQCBpbXBvcnQganNv
bgogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogZnJvbSBmbGFzayBpbXBv
cnQgYWJvcnQsIGpzb25pZnksIHJlcXVlc3QKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5j
b21taXQgaW1wb3J0IENvbW1pdAogZnJvbSB3ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2Vy
dFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncywgbGltaXRfZm9yX3F1ZXJ5Ci1mcm9tIHdlYmtpdHNj
bXB5IGltcG9ydCBTY21CYXNlLCBDb21taXQgYXMgU2NtQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5
IGltcG9ydCBTY21CYXNlLCBDb21taXQKIAogCi1kZWYgX2ZpbmRfY29tcGFyaXNvbihjb21taXRf
Y29udGV4dCwgcmVwb3NpdG9yeV9pZCwgYnJhbmNoLCBpZCwgdXVpZCwgdGltZXN0YW1wLCBwcmlv
cml0eT1taW4pOgotICAgIGlmIGJvb2woaWQpICsgYm9vbCh1dWlkKSArIGJvb2wodGltZXN0YW1w
KSA+IDE6Ci0gICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5IHNlYXJjaCBi
eSBvbmUgb2YgW2NvbW1pdCBpZCwgY29tbWl0IHV1aWQsIHRpbWVzdGFtcF0gaW4gYSBzaW5nbGUg
cmVxdWVzdCcpCitkZWYgX2ZpbmRfY29tcGFyaXNvbihjb21taXRfY29udGV4dCwgcmVwb3NpdG9y
eV9pZCwgYnJhbmNoLCByZWYsIHV1aWQsIHRpbWVzdGFtcCwgcHJpb3JpdHk9bWluKToKKyAgICBp
ZiBib29sKHJlZikgKyBib29sKHV1aWQpICsgYm9vbCh0aW1lc3RhbXApID4gMToKKyAgICAgICAg
YWJvcnQoNDAwLCBkZXNjcmlwdGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBvZiBbY29tbWl0
IGlkL3JlZiwgY29tbWl0IHV1aWQsIHRpbWVzdGFtcF0gaW4gYSBzaW5nbGUgcmVxdWVzdCcpCiAK
ICAgICB0cnk6CiAgICAgICAgIGlmIHV1aWQ6CiAgICAgICAgICAgICAjIFdlIGRvbid0IG5lZWQg
cmVhbCBjb21taXQgdG8gc2VhcmNoIGJ5IHV1aWQgYW5kIENvbW1pdENvbnRleHRzIGhhdmUgdHJv
dWJsZSBkaWZmcmVudGlhdGluZyBiZXR3ZWVuIHV1aWRzIGFuZCB0aW1lc3RhbXBzLgogICAgICAg
ICAgICAgdXVpZCA9IHByaW9yaXR5KFtpbnQoZWxlbWVudCkgZm9yIGVsZW1lbnQgaW4gdXVpZF0p
Ci0gICAgICAgICAgICByZXR1cm4gQ29tbWl0KCc/JywgJz8nLCAnPycsIHV1aWQgLy8gQ29tbWl0
LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIsIHV1aWQgJSBDb21taXQuVElNRVNUQU1QX1RP
X1VVSURfTVVMVElQTElFUikKKyAgICAgICAgICAgIHJldHVybiBDb21taXQodGltZXN0YW1wPXV1
aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUiwgb3JkZXI9dXVpZCAlIENvbW1pdC5VVUlEX01V
TFRJUExJRVIpCiAgICAgICAgIGlmIHRpbWVzdGFtcDoKICAgICAgICAgICAgIHJldHVybiBwcmlv
cml0eShbcm91bmQoZmxvYXQoZWxlbWVudCkpIGZvciBlbGVtZW50IGluIHRpbWVzdGFtcF0pCiAg
ICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249J1Rp
bWVzdGFtcCBhbmQgdXVpZCBtdXN0IGJlIGludGVnZXJzJykKIAotICAgIGlmIG5vdCByZXBvc2l0
b3J5X2lkIGFuZCBub3QgaWQ6CisgICAgaWYgbm90IHJlcG9zaXRvcnlfaWQgYW5kIG5vdCByZWY6
CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgaWYgbm90IHJlcG9zaXRvcnlfaWQ6CiAgICAgICAg
IHJlcG9zaXRvcnlfaWQgPSBjb21taXRfY29udGV4dC5yZXBvc2l0b3JpZXMua2V5cygpCkBAIC01
MywxMSArNTIsMTEgQEAgZGVmIF9maW5kX2NvbXBhcmlzb24oY29tbWl0X2NvbnRleHQsIHJlcG9z
aXRvcnlfaWQsIGJyYW5jaCwgaWQsIHV1aWQsIHRpbWVzdGFtcCwKIAogICAgIHJlc3VsdCA9IFtd
CiAgICAgZm9yIHJlcG9zaXRvcnkgaW4gcmVwb3NpdG9yeV9pZDoKLSAgICAgICAgZm9yIGIgaW4g
YnJhbmNoOgotICAgICAgICAgICAgaWYgaWQ6Ci0gICAgICAgICAgICAgICAgZm9yIGVsbSBpbiBp
ZDoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGNvbW1pdF9jb250ZXh0LmZpbmRfY29t
bWl0c19ieV9pZChyZXBvc2l0b3J5LCBiLCBlbG0pCi0gICAgICAgICAgICBlbHNlOgorICAgICAg
ICBpZiByZWY6CisgICAgICAgICAgICBmb3IgZWxtIGluIHJlZjoKKyAgICAgICAgICAgICAgICBy
ZXN1bHQgKz0gY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRzX2J5X3JlZihyZXBvc2l0b3J5LCBy
ZWY9ZWxtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGIgaW4gYnJhbmNoOgogICAg
ICAgICAgICAgICAgIHJlc3VsdCArPSBjb21taXRfY29udGV4dC5maW5kX2NvbW1pdHNfaW5fcmFu
Z2UocmVwb3NpdG9yeSwgYiwgbGltaXQ9MSkKIAogICAgIGlmIG5vdCByZXN1bHQ6CkBAIC02OCw5
ICs2Nyw5IEBAIGRlZiBfZmluZF9jb21wYXJpc29uKGNvbW1pdF9jb250ZXh0LCByZXBvc2l0b3J5
X2lkLCBicmFuY2gsIGlkLCB1dWlkLCB0aW1lc3RhbXAsCiBkZWYgdXVpZF9yYW5nZV9mb3JfY29t
bWl0X3JhbmdlX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRvcihtZXRob2QpOgogICAgICAgICBk
ZWYgcmVhbF9tZXRob2Qob2JqLCBicmFuY2g9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IGFmdGVyX3JlcG9zaXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5vbmUsIGFmdGVyX2lkPU5v
bmUsIGFmdGVyX3V1aWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyX3JlcG9z
aXRvcnlfaWQ9Tm9uZSwgYWZ0ZXJfYnJhbmNoPU5vbmUsIGFmdGVyX2lkPU5vbmUsIGFmdGVyX3V1
aWQ9Tm9uZSwgYWZ0ZXJfcmVmPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlcl90
aW1lc3RhbXA9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZV9yZXBvc2l0b3J5
X2lkPU5vbmUsIGJlZm9yZV9icmFuY2g9Tm9uZSwgYmVmb3JlX2lkPU5vbmUsIGJlZm9yZV91dWlk
PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVfcmVwb3NpdG9yeV9pZD1Ob25l
LCBiZWZvcmVfYnJhbmNoPU5vbmUsIGJlZm9yZV9pZD1Ob25lLCBiZWZvcmVfdXVpZD1Ob25lLCBi
ZWZvcmVfcmVmPU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVfdGltZXN0YW1w
PU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgICAgICMgV2UncmUgbWFraW5nIGFuIGFzdW1wdGlv
biB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21t
aXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAgICAgICAgICAgICAjIHRoaXMgZGVjb3JhdG9y
IHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CkBAIC03OSwxMSArNzgsMTEgQEAgZGVmIHV1aWRfcmFu
Z2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgogICAgICAgICAgICAgICAgICAgICBicmFuY2gg
PSBbTm9uZV0KICAgICAgICAgICAgICAgICBiZWdpbiA9IF9maW5kX2NvbXBhcmlzb24oCiAgICAg
ICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9pZD1hZnRlcl9y
ZXBvc2l0b3J5X2lkLCBicmFuY2g9YWZ0ZXJfYnJhbmNoIG9yIGJyYW5jaCwKLSAgICAgICAgICAg
ICAgICAgICAgaWQ9YWZ0ZXJfaWQsIHV1aWQ9YWZ0ZXJfdXVpZCwgdGltZXN0YW1wPWFmdGVyX3Rp
bWVzdGFtcCwgcHJpb3JpdHk9bWluLAorICAgICAgICAgICAgICAgICAgICByZWY9YWZ0ZXJfcmVm
IG9yIGFmdGVyX2lkLCB1dWlkPWFmdGVyX3V1aWQsIHRpbWVzdGFtcD1hZnRlcl90aW1lc3RhbXAs
IHByaW9yaXR5PW1pbiwKICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgZW5kID0g
X2ZpbmRfY29tcGFyaXNvbigKICAgICAgICAgICAgICAgICAgICAgb2JqLmNvbW1pdF9jb250ZXh0
LCByZXBvc2l0b3J5X2lkPWJlZm9yZV9yZXBvc2l0b3J5X2lkLCBicmFuY2g9YmVmb3JlX2JyYW5j
aCBvciBicmFuY2gsCi0gICAgICAgICAgICAgICAgICAgIGlkPWJlZm9yZV9pZCwgdXVpZD1iZWZv
cmVfdXVpZCwgdGltZXN0YW1wPWJlZm9yZV90aW1lc3RhbXAsIHByaW9yaXR5PW1heCwKKyAgICAg
ICAgICAgICAgICAgICAgcmVmPWJlZm9yZV9yZWYgb3IgYmVmb3JlX2lkLCB1dWlkPWJlZm9yZV91
dWlkLCB0aW1lc3RhbXA9YmVmb3JlX3RpbWVzdGFtcCwgcHJpb3JpdHk9bWF4LAogICAgICAgICAg
ICAgICAgICkKICAgICAgICAgICAgICAgICByZXR1cm4gbWV0aG9kKG9iaiwgYmVnaW49YmVnaW4s
IGVuZD1lbmQsIGJyYW5jaD1icmFuY2gsICoqa3dhcmdzKQogCkBAIC05NiwxMyArOTUsMTQgQEAg
ZGVmIHV1aWRfcmFuZ2VfZm9yX2NvbW1pdF9yYW5nZV9xdWVyeSgpOgogZGVmIHV1aWRfcmFuZ2Vf
Zm9yX3F1ZXJ5KCk6CiAgICAgZGVmIGRlY29yYXRvcihtZXRob2QpOgogICAgICAgICBAdXVpZF9y
YW5nZV9mb3JfY29tbWl0X3JhbmdlX3F1ZXJ5KCkKLSAgICAgICAgZGVmIHJlYWxfbWV0aG9kKG9i
aiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVpZD1Ob25lLCB0
aW1lc3RhbXA9Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAg
ICAgICMgV2UncmUgbWFraW5nIGFuIGFzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlz
IGRlY29yYXRvciBhY3R1YWxseSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3Qs
CisgICAgICAgIGRlZiByZWFsX21ldGhvZChvYmosIHJlcG9zaXRvcnlfaWQ9Tm9uZSwgYnJhbmNo
PU5vbmUsIGlkPU5vbmUsIHJlZj1Ob25lLCB1dWlkPU5vbmUsIHRpbWVzdGFtcD1Ob25lLCBiZWdp
bj1Ob25lLCBlbmQ9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAgICAgIyBXZSdyZSBtYWtpbmcg
YW4gYXNzdW1wdGlvbiB0aGF0IHRoZSBjbGFzcyB1c2luZyB0aGlzIGRlY29yYXRvciBhY3R1YWxs
eSBoYXMgYSBjb21taXRfY29udGV4dCwgaWYgaXQgZG9lcyBub3QsCiAgICAgICAgICAgICAjIHRo
aXMgZGVjb3JhdG9yIHdpbGwgZmFpbCBzcGVjdGFjdWxhcmx5CiAgICAgICAgICAgICB3aXRoIG9i
ai5jb21taXRfY29udGV4dDoKICAgICAgICAgICAgICAgICBpbmRleCA9IF9maW5kX2NvbXBhcmlz
b24oCiAgICAgICAgICAgICAgICAgICAgIG9iai5jb21taXRfY29udGV4dCwgcmVwb3NpdG9yeV9p
ZD1yZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLAotICAgICAgICAgICAgICAgICAgICBpZD1p
ZCwgdXVpZD11dWlkLCB0aW1lc3RhbXA9dGltZXN0YW1wLCBwcmlvcml0eT1tYXgsCisgICAgICAg
ICAgICAgICAgICAgIHJlZj1yZWYgb3IgaWQsCisgICAgICAgICAgICAgICAgICAgIHV1aWQ9dXVp
ZCwgdGltZXN0YW1wPXRpbWVzdGFtcCwgcHJpb3JpdHk9bWF4LAogICAgICAgICAgICAgICAgICkK
ICAgICAgICAgICAgICAgICBpZiBpbmRleDoKICAgICAgICAgICAgICAgICAgICAgaWYgYmVnaW4g
b3IgZW5kOgpAQCAtMTEwLDcgKzExMCw3IEBAIGRlZiB1dWlkX3JhbmdlX2Zvcl9xdWVyeSgpOgog
ICAgICAgICAgICAgICAgICAgICBiZWdpbiA9IGluZGV4CiAgICAgICAgICAgICAgICAgICAgIGVu
ZCA9IGluZGV4CiAKLSAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGVuZCwgQ29tbWl0KSBh
bmQgZW5kLnJlcG9zaXRvcnlfaWQgIT0gJz8nOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UoZW5kLCBDb21taXQpIGFuZCBlbmQucmVwb3NpdG9yeV9pZDoKICAgICAgICAgICAgICAgICAg
ICAgcmVwb3NpdG9yaWVzID0gbGlzdChvYmouY29tbWl0X2NvbnRleHQucmVwb3NpdG9yaWVzLmtl
eXMoKSkKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yaWVzLnJlbW92ZShlbmQucmVwb3Np
dG9yeV9pZCkKICAgICAgICAgICAgICAgICAgICAgY29tbWl0cyA9IFtlbmRdCkBAIC0xNDAsOSAr
MTQwLDkgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihIYXNDb21taXRDb250ZXh0KToKIAogICAg
IEB1dWlkX3JhbmdlX2Zvcl9jb21taXRfcmFuZ2VfcXVlcnkoKQogICAgIEBsaW1pdF9mb3JfcXVl
cnkoREVGQVVMVF9MSU1JVCkKLSAgICBkZWYgX2ZpbmQoc2VsZiwgcmVwb3NpdG9yeV9pZD1Ob25l
LCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgdXVpZD1Ob25lLCB0aW1lc3RhbXA9Tm9uZSwgbGltaXQ9
Tm9uZSwgYmVnaW49Tm9uZSwgZW5kPU5vbmUsICoqa3dhcmdzKToKKyAgICBkZWYgX2ZpbmQoc2Vs
ZiwgcmVwb3NpdG9yeV9pZD1Ob25lLCBicmFuY2g9Tm9uZSwgaWQ9Tm9uZSwgcmVmPU5vbmUsIHV1
aWQ9Tm9uZSwgdGltZXN0YW1wPU5vbmUsIGxpbWl0PU5vbmUsIGJlZ2luPU5vbmUsIGVuZD1Ob25l
LCAqKmt3YXJncyk6CiAgICAgICAgIEFzc2VydFJlcXVlc3QucXVlcnlfa3dhcmdzX2VtcHR5KCoq
a3dhcmdzKQotCisgICAgICAgIHJlZiA9IHJlZiBvciBpZAogICAgICAgICB3aXRoIHNlbGYuY29t
bWl0X2NvbnRleHQ6CiAgICAgICAgICAgICBpZiBub3QgcmVwb3NpdG9yeV9pZDoKICAgICAgICAg
ICAgICAgICByZXBvc2l0b3J5X2lkID0gc2VsZi5jb21taXRfY29udGV4dC5yZXBvc2l0b3JpZXMu
a2V5cygpCkBAIC0xNTIsOCArMTUyLDggQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihIYXNDb21t
aXRDb250ZXh0KToKICAgICAgICAgICAgIGlmIG5vdCBicmFuY2g6CiAgICAgICAgICAgICAgICAg
YnJhbmNoID0gW05vbmVdCiAKLSAgICAgICAgICAgIGlmIGJvb2woaWQpICsgYm9vbCh1dWlkKSAr
IGJvb2wodGltZXN0YW1wKSA+IDE6Ci0gICAgICAgICAgICAgICAgYWJvcnQoNDAwLCBkZXNjcmlw
dGlvbj0nQ2FuIG9ubHkgc2VhcmNoIGJ5IG9uZSBvZiBbY29tbWl0IGlkLCBjb21taXQgdXVpZCwg
dGltZXN0YW1wXSBpbiBhIHNpbmdsZSByZXF1ZXN0JykKKyAgICAgICAgICAgIGlmIGJvb2wocmVm
KSArIGJvb2wodXVpZCkgKyBib29sKHRpbWVzdGFtcCkgPiAxOgorICAgICAgICAgICAgICAgIGFi
b3J0KDQwMCwgZGVzY3JpcHRpb249J0NhbiBvbmx5IHNlYXJjaCBieSBvbmUgb2YgW2NvbW1pdCBp
ZC9yZWYsIGNvbW1pdCB1dWlkLCB0aW1lc3RhbXBdIGluIGEgc2luZ2xlIHJlcXVlc3QnKQogCiAg
ICAgICAgICAgICByZXN1bHQgPSBbXQogICAgICAgICAgICAgZm9yIHJlcG9zaXRvcnkgaW4gcmVw
b3NpdG9yeV9pZDoKQEAgLTE2NCw5ICsxNjQsOSBAQCBjbGFzcyBDb21taXRDb250cm9sbGVyKEhh
c0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocmVzdWx0c19mb3Jf
cmVwbykgPj0gbGltaXQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAg
ICAgICAgICAgICAgICAgIGlmIGlkOgotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGVsbSBp
biBpZDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzX2Zvcl9yZXBvICs9IHNl
bGYuY29tbWl0X2NvbnRleHQuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnksIGIsIGVsbSwg
bGltaXQ9bGltaXQgLSBsZW4ocmVzdWx0c19mb3JfcmVwbykpCisgICAgICAgICAgICAgICAgICAg
IGlmIHJlZjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBlbG0gaW4gcmVmOgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNfZm9yX3JlcG8gKz0gc2VsZi5jb21taXRfY29u
dGV4dC5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnksIHJlZj1lbG0sIGxpbWl0PWxpbWl0
IC0gbGVuKHJlc3VsdHNfZm9yX3JlcG8pKQogICAgICAgICAgICAgICAgICAgICBlbGlmIHV1aWQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZWxtIGluIHV1aWQ6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0c19mb3JfcmVwbyArPSBzZWxmLmNvbW1pdF9jb250ZXh0LmZp
bmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRvcnksIGIsIGludChlbG0pLCBsaW1pdD1saW1pdCAt
IGxlbihyZXN1bHRzX2Zvcl9yZXBvKSkKQEAgLTI4MCw3ICsyODAsNyBAQCBjbGFzcyBDb21taXRD
b250cm9sbGVyKEhhc0NvbW1pdENvbnRleHQpOgogICAgICAgICAgICAgICAgIGFib3J0KDQwMCwg
ZGVzY3JpcHRpb249J0V4cGVjdGVkIHVwbG9hZGVkIGRhdGEgdG8gYmUganNvbicpCiAKICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgY2FuZGlkYXRlID0gU2NtQ29tbWl0LmZyb21fanNvbihjb21t
aXQpCisgICAgICAgICAgICBjYW5kaWRhdGUgPSBDb21taXQuZnJvbV9qc29uKGNvbW1pdCkKIAog
ICAgICAgICAgICAgIyBDb21taXQgbmVlZHMgdG8gYmUgc3VmZmljaWVudGx5IGRlZmluZWQKICAg
ICAgICAgICAgIGlmIGNhbmRpZGF0ZS5yZXBvc2l0b3J5X2lkIGFuZCBjYW5kaWRhdGUuYnJhbmNo
IGFuZCBjYW5kaWRhdGUudGltZXN0YW1wIGFuZCAoY2FuZGlkYXRlLnJldmlzaW9uIG9yIGNhbmRp
ZGF0ZS5oYXNoKToKQEAgLTMyOCwxMiArMzI4LDQgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihI
YXNDb21taXRDb250ZXh0KToKIAogICAgICAgICBpZiBpc19lbmRwb2ludDoKICAgICAgICAgICAg
IHJldHVybiBqc29uaWZ5KHsnc3RhdHVzJzogJ29rJ30pCi0gICAgICAgIHJldHVybiBDb21taXQo
Ci0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPWNvbW1pdC5yZXBvc2l0b3J5X2lkLAotICAgICAg
ICAgICAgaWQ9Y29tbWl0LnJldmlzaW9uIG9yIGNvbW1pdC5oYXNoLAotICAgICAgICAgICAgYnJh
bmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFt
cCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1pdC5vcmRlciwKLSAgICAgICAgICAgIGNvbW1pdHRl
cj1jb21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAotICAgICAg
ICAgICAgbWVzc2FnZT1jb21taXQubWVzc2FnZSwKLSAgICAgICAgKQorICAgICAgICByZXR1cm4g
Y29tbWl0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9j
b21taXRfY29udHJvbGxlcl91bml0dGVzdC5weQppbmRleCA5ZDI2NmI1NTdlM2JlZTMyNTU2MTc1
Y2VjYzEwMDg3MWY0MTk2MjE5Li44ZWQ5OWQ4OTI4MWY2NWE4YWNjN2JlMTE0Zjc0MjBiMzYyNzRi
ZmE3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1
bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIv
Y29tbWl0X2NvbnRyb2xsZXJfdW5pdHRlc3QucHkKQEAgLTIzLDcgKzIzLDYgQEAKIGZyb20gZmFr
ZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVkaXMKIGZyb20gcmVkaXMgaW1wb3J0IFN0cmljdFJl
ZGlzCiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuYXBpX3JvdXRlcyBpbXBvcnQgQVBJUm91
dGVzCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZy
b20gcmVzdWx0c2RicHkuZmxhc2tfc3VwcG9ydC5mbGFza190ZXN0Y2FzZSBpbXBvcnQgRmxhc2tU
ZXN0Q2FzZQogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jYXNzYW5kcmFfY29udGV4dCBpbXBvcnQg
Q2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2NrX2Nhc3NhbmRyYV9j
b250ZXh0IGltcG9ydCBNb2NrQ2Fzc2FuZHJhQ29udGV4dApAQCAtMzIsNiArMzEsNyBAQCBmcm9t
IHJlc3VsdHNkYnB5Lm1vZGVsLm1vZGVsIGltcG9ydCBNb2RlbAogZnJvbSByZXN1bHRzZGJweS5t
b2RlbC53YWl0X2Zvcl9kb2NrZXJfdGVzdF9jYXNlIGltcG9ydCBXYWl0Rm9yRG9ja2VyVGVzdENh
c2UKIGZyb20gcmVzdWx0c2RicHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU3Rhc2hSZXBvc2l0
b3J5LCBXZWJLaXRSZXBvc2l0b3J5CiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgT3V0cHV0Q2Fw
dHVyZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgQ29tbWl0Q29u
dHJvbGxlclRlc3QoRmxhc2tUZXN0Q2FzZSwgV2FpdEZvckRvY2tlclRlc3RDYXNlKToKQEAgLTc2
LDcgKzc2LDcgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlclRlc3QoRmxhc2tUZXN0Q2FzZSwgV2Fp
dEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgcmVzcG9uc2UgPSBjbGllbnQuZ2V0KHNlbGYu
VVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hlcycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0
KAotICAgICAgICAgICAgd2Via2l0PVsnYnJhbmNoLWEnLCAnYnJhbmNoLWInLCAndGFncy90YWct
MScsICd0YWdzL3RhZy0yJywgJ3RydW5rJ10sCisgICAgICAgICAgICB3ZWJraXQ9WydicmFuY2gt
YScsICdicmFuY2gtYicsICdtYWluJ10sCiAgICAgICAgICAgICBzYWZhcmk9WydicmFuY2gtYScs
ICdicmFuY2gtYicsICdtYWluJ10pLCByZXNwb25zZS5qc29uKCkpCiAKICAgICAgICAgcmVzcG9u
c2UgPSBjbGllbnQuZ2V0KHNlbGYuVVJMICsgJy9hcGkvY29tbWl0cy9icmFuY2hlcz9icmFuY2g9
YnJhbmNoJykKQEAgLTEyMSwyNyArMTIxLDI4IEBAIGNsYXNzIENvbW1pdENvbnRyb2xsZXJUZXN0
KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgIGdpdF9jb21t
aXQgPSBDb21taXQoCiAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLAogICAgICAg
ICAgICAgYnJhbmNoPSdtYWluJywKLSAgICAgICAgICAgIGlkPSc4ZWJhMjgwZTMyZGFhZjVmZGRi
YmI2NWFlYTM3OTMyZWE5YWQ4NWRmJywKKyAgICAgICAgICAgIGhhc2g9JzhlYmEyODBlMzJkYWFm
NWZkZGJiYjY1YWVhMzc5MzJlYTlhZDg1ZGYnLAogICAgICAgICAgICAgdGltZXN0YW1wPTE2MDE2
NTAxMDAsCiAgICAgICAgICAgICBvcmRlcj0wLAotICAgICAgICAgICAgY29tbWl0dGVyPSdqYmVk
YXJkQHdlYmtpdC5vcmcnLAorICAgICAgICAgICAgYXV0aG9yPSdqYmVkYXJkQHdlYmtpdC5vcmcn
LAogICAgICAgICAgICAgbWVzc2FnZT0nY3VzdG9tIGNvbW1pdCcsCiAgICAgICAgICkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIGNsaWVudC5wb3N0KHNlbGYuVVJMICsgJy9hcGkvY29t
bWl0cycsIGRhdGE9Q29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGdpdF9jb21taXQpKS5zdGF0dXNf
Y29kZSkKKyAgICAgICAgcHJpbnQoQ29tbWl0LkVuY29kZXIoKS5kZWZhdWx0KGdpdF9jb21taXQp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgY2xpZW50LnBvc3Qoc2VsZi5VUkwgKyAn
L2FwaS9jb21taXRzJywganNvbj1Db21taXQuRW5jb2RlcigpLmRlZmF1bHQoZ2l0X2NvbW1pdCkp
LnN0YXR1c19jb2RlKQogICAgICAgICByZXNwb25zZSA9IGNsaWVudC5nZXQoc2VsZi5VUkwgKyAn
L2FwaS9jb21taXRzP3JlcG9zaXRvcnlfaWQ9c2FmYXJpJykKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgyMDAsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KENvbW1pdC5mcm9tX2pzb24ocmVzcG9uc2UuanNvbigpWzBdKSwgZ2l0X2NvbW1pdCkKIAogICAg
ICAgICBzdm5fY29tbWl0ID0gQ29tbWl0KAogICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nd2Vi
a2l0JywKLSAgICAgICAgICAgIGJyYW5jaD0ndHJ1bmsnLAotICAgICAgICAgICAgaWQ9JzEyMzQn
LAorICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKKyAgICAgICAgICAgIHJldmlzaW9uPScxMjM0
JywKICAgICAgICAgICAgIHRpbWVzdGFtcD0xNjAxNjUwMTAwLAogICAgICAgICAgICAgb3JkZXI9
MCwKLSAgICAgICAgICAgIGNvbW1pdHRlcj0namJlZGFyZEB3ZWJraXQub3JnJywKKyAgICAgICAg
ICAgIGF1dGhvcj0namJlZGFyZEB3ZWJraXQub3JnJywKICAgICAgICAgICAgIG1lc3NhZ2U9J2N1
c3RvbSBjb21taXQnLAogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCBj
bGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHMnLCBkYXRhPUNvbW1pdC5FbmNvZGVy
KCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVzX2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMjAwLCBjbGllbnQucG9zdChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHMnLCBqc29uPUNv
bW1pdC5FbmNvZGVyKCkuZGVmYXVsdChzdm5fY29tbWl0KSkuc3RhdHVzX2NvZGUpCiAgICAgICAg
IHJlc3BvbnNlID0gY2xpZW50LmdldChzZWxmLlVSTCArICcvYXBpL2NvbW1pdHM/cmVwb3NpdG9y
eV9pZD13ZWJraXQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVzcG9uc2Uuc3Rh
dHVzX2NvZGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQ29tbWl0LmZyb21fanNvbihyZXNw
b25zZS5qc29uKClbMF0pLCBzdm5fY29tbWl0KQpAQCAtMjA0LDggKzIwNSw4IEBAIGNsYXNzIENv
bW1pdENvbnRyb2xsZXJUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6
CiAgICAgICAgIHNlbGYucmVnaXN0ZXJfYWxsX2NvbW1pdHMoY2xpZW50KQogICAgICAgICByZXNw
b25zZSA9IGNsaWVudC5nZXQoc2VsZi5VUkwgKyAnL2FwaS9jb21taXRzP2FmdGVyX2lkPTYmYmVm
b3JlX2lkPWZmZjgzYmIyZDkxNycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNw
b25zZS5zdGF0dXNfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbQ29tbWl0LmZyb21f
anNvbihlbGVtZW50KS5pZCBmb3IgZWxlbWVudCBpbiByZXNwb25zZS5qc29uKCldLCBbCi0gICAg
ICAgICAgICAnNicsICc5YjgzMTFmMjVhNzdiYTE0OTIzZDlkNWE2NTMyMTAzZjU0YWJlZmNiJywg
J2ZmZjgzYmIyZDkxNzFiNGQ5MTk2ZTk3N2ViMDUwOGZkNTdlN2EwOGQnLAorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFtDb21taXQuZnJvbV9qc29uKGVsZW1lbnQpLnJldmlzaW9uIG9yIENvbW1p
dC5mcm9tX2pzb24oZWxlbWVudCkuaGFzaCBmb3IgZWxlbWVudCBpbiByZXNwb25zZS5qc29uKCld
LCBbCisgICAgICAgICAgICA2LCAnOWI4MzExZjI1YTc3YmExNDkyM2Q5ZDVhNjUzMjEwM2Y1NGFi
ZWZjYicsICdmZmY4M2JiMmQ5MTcxYjRkOTE5NmU5NzdlYjA1MDhmZDU3ZTdhMDhkJywKICAgICAg
ICAgXSkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19kb2NrZXIobW9j
a19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250
ZXh0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvY29udHJvbGxlci9jb21taXRfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVz
dC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjc4ZGE0NWEyNmY4MzJjNTYxM2E1
NmVjZDE0ZGI0NTI5NDM5YjExMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS9jb250cm9sbGVyL2NvbW1pdF91bml0dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE1NyAr
MCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0j
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgdW5p
dHRlc3QKLQotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0
Ci0KLQotY2xhc3MgQ29tbWl0VW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVm
IHRlc3RfY29tcGFyZShzZWxmKToKLSAgICAgICAgY29tbWl0MSA9IENvbW1pdCgKLSAgICAgICAg
ICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAg
IGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJjYTMxNDgyY2E3MTViMzgzJywKLSAgICAgICAg
ICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAgICAgICApCi0gICAgICAgIGNvbW1pdDIgPSBD
b21taXQoCi0gICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3Rl
cicsCi0gICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdjNWIzMjFlOWM4
MjQ5YicsCi0gICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwgb3JkZXI9MSwKLSAgICAg
ICAgKQotICAgICAgICBjb21taXQzID0gQ29tbWl0KAotICAgICAgICAgICAgcmVwb3NpdG9yeV9p
ZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAgICAgaWQ9J2JiNmJkYTVmNDRk
ZDI0ZDBiNTQ1MzliOGZmNmU4YzE3ZjUxOTI0OWEnLAotICAgICAgICAgICAgdGltZXN0YW1wPTE1
Mzc4MTAyODEsCi0gICAgICAgICkKLSAgICAgICAgY29tbWl0NCA9IENvbW1pdCgKLSAgICAgICAg
ICAgIHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAg
IGlkPTIzNjUyMiwKLSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3ODI2NjE0LAotICAgICAgICAp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvbW1pdDIgPiBjb21taXQxKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoY29tbWl0MiA+PSBjb21taXQxKQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUoY29tbWl0MSA+PSBjb21taXQxKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tbWl0MSA8
IGNvbW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxIDw9IGNvbW1pdDIpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQxIDw9IGNvbW1pdDEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShjb21taXQxID09IGNvbW1pdDEpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGNvbW1pdDIgPCBjb21taXQzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29tbWl0MyA+IGNv
bW1pdDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0MS50aW1lc3RhbXAsIGNvbW1p
dDIudGltZXN0YW1wKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb21taXQ0ID4gY29tbWl0
MykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChjb21taXQzLnJlcG9zaXRvcnlfaWQsIGNv
bW1pdDQucmVwb3NpdG9yeV9pZCkKLQotICAgIGRlZiB0ZXN0X2VuY29kaW5nKHNlbGYpOgotICAg
ICAgICBjb21taXRzX3RvX3Rlc3QgPSBbCi0gICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAg
ICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYXN0ZXInLAotICAgICAgICAg
ICAgICAgIGlkPSdlNjQ4MTBhNDBjM2ZlY2I3Mjg4NzFlMTJjYTMxNDgyY2E3MTViMzgzJywKLSAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwKLSAgICAgICAgICAgICksIENvbW1p
dCgKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3Rl
cicsCi0gICAgICAgICAgICAgICAgaWQ9JzdiZTQwODQyNThhNDUyZThmZTIyZjM2Mjg3YzViMzIx
ZTljODI0OWInLAotICAgICAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LCBvcmRlcj0x
LAotICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0nZW1haWwxQHdlYmtpdC5vcmcnLCBtZXNzYWdl
PSdDaGFuZ2Vsb2cnLAotICAgICAgICAgICAgKSwgQ29tbWl0KAotICAgICAgICAgICAgICAgIHJl
cG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBp
ZD0yMzY1MjIsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc4MjY2MTQsCi0gICAgICAg
ICAgICApLAotICAgICAgICBdCi0gICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0c190b190ZXN0
OgotICAgICAgICAgICAgY29udmVydGVkX2NvbW1pdCA9IENvbW1pdC5mcm9tX2pzb24oY29tbWl0
LnRvX2pzb24oKSkKLQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXQsIGNvbnZl
cnRlZF9jb21taXQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5yZXBvc2l0
b3J5X2lkLCBjb252ZXJ0ZWRfY29tbWl0LnJlcG9zaXRvcnlfaWQpCi0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1pdC5pZCwgY29udmVydGVkX2NvbW1pdC5pZCkKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnRpbWVzdGFtcCwgY29udmVydGVkX2NvbW1pdC50aW1l
c3RhbXApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1pdC5vcmRlciwgY29udmVy
dGVkX2NvbW1pdC5vcmRlcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmNv
bW1pdHRlciwgY29udmVydGVkX2NvbW1pdC5jb21taXR0ZXIpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1pdC5tZXNzYWdlLCBjb252ZXJ0ZWRfY29tbWl0Lm1lc3NhZ2UpCi0KLSAg
ICBkZWYgdGVzdF91ZGlkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKENvbW1pdCgK
LSAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFzdGVyJywKLSAg
ICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywK
LSAgICAgICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LCBvcmRlcj0xLAotICAgICAgICApLnV1
aWQsIDE1Mzc1NTA2ODUwMSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWQoc2VsZik6Ci0gICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAg
ICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNo
PSdtYXN0ZXInLAotICAgICAgICAgICAgICAgIGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4
N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9Tm9uZSwKLSAgICAg
ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhjZXB0aW9uKSwg
J3RpbWVzdGFtcCBpcyBub3QgZGVmaW5lZCBmb3IgY29tbWl0JykKLQotICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycm9yOgotICAgICAgICAgICAgQ29tbWl0
KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J2ludmFsaWQtcmVwbycsIGJyYW5jaD0n
bWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdj
NWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUsCi0g
ICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2VwdGlv
biksICInaW52YWxpZC1yZXBvJyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgaWQiKQotCi0gICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAg
ICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0naScgKiAxMjksIGJy
YW5jaD0nbWFzdGVyJywKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJm
MzYyODdjNWIzMjFlOWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2
ODUsCi0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4
Y2VwdGlvbiksIGYiJ3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIHJlcG9zaXRvcnkgaWQiKQot
Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0g
ICAgICAgICAgICBDb21taXQoCi0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJp
JywgYnJhbmNoPSc8aHRtbD5pbnZhbGlkLWJyYW5jaDwvaHRtbD4nLAotICAgICAgICAgICAgICAg
IGlkPSc3YmU0MDg0MjU4YTQ1MmU4ZmUyMmYzNjI4N2M1YjMyMWU5YzgyNDliJywKLSAgICAgICAg
ICAgICAgICB0aW1lc3RhbXA9MTUzNzU1MDY4NSwKLSAgICAgICAgICAgICkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHIoZXJyb3IuZXhjZXB0aW9uKSwgIic8aHRtbD5pbnZhbGlkLWJyYW5j
aDwvaHRtbD4nIGlzIGFuIGludmFsaWQgYnJhbmNoIG5hbWUiKQotCi0gICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgZXJyb3I6Ci0gICAgICAgICAgICBDb21taXQo
Ci0gICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdpJyAqIDEy
OSwKLSAgICAgICAgICAgICAgICBpZD0nN2JlNDA4NDI1OGE0NTJlOGZlMjJmMzYyODdjNWIzMjFl
OWM4MjQ5YicsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUsCi0gICAgICAg
ICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2VwdGlvbiksIGYi
J3snaScgKiAxMjl9JyBpcyBhbiBpbnZhbGlkIGJyYW5jaCBuYW1lIikKLQotICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGVycm9yOgotICAgICAgICAgICAgQ29t
bWl0KAotICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFz
dGVyJywKLSAgICAgICAgICAgICAgICBpZD0nPGh0bWw+MTIzNDwvaHRtbD4nLAotICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcD0xNTM3NTUwNjg1LAotICAgICAgICAgICAgKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHN0cihlcnJvci5leGNlcHRpb24pLCAiJzxodG1sPjEyMzQ8L2h0bWw+JyBp
cyBhbiBpbnZhbGlkIGNvbW1pdCBpZCIpCi0KLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhWYWx1ZUVycm9yKSBhcyBlcnJvcjoKLSAgICAgICAgICAgIENvbW1pdCgKLSAgICAgICAgICAg
ICAgICByZXBvc2l0b3J5X2lkPSdzYWZhcmknLCBicmFuY2g9J21hc3RlcicsCi0gICAgICAgICAg
ICAgICAgaWQ9JzAnICogNDEsCi0gICAgICAgICAgICAgICAgdGltZXN0YW1wPTE1Mzc1NTA2ODUs
Ci0gICAgICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGVycm9yLmV4Y2Vw
dGlvbiksIGYiJ3snMCcgKiA0MX0nIGlzIGFuIGludmFsaWQgY29tbWl0IGlkIikKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRy
b2xsZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL3VwbG9hZF9jb250cm9sbGVy
X3VuaXR0ZXN0LnB5CmluZGV4IGQzZDZhZWJkMzkyZjJmODY5ZWZlMTM0MzA0ZWY0OTlhZTkwMDc5
NzEuLjM3YzVmY2FkYzU5MTA1YjhkM2NiNjY3MzUxOTI1NzBmY2Q4NGNlMWMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xs
ZXIvdXBsb2FkX2NvbnRyb2xsZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci91cGxvYWRfY29udHJvbGxl
cl91bml0dGVzdC5weQpAQCAtNDksOCArNDksMTAgQEAgY2xhc3MgVXBsb2FkQ29udHJvbGxlclBv
c3RUZXN0KEZsYXNrVGVzdENhc2UsIFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgZGVmIHRl
c3RfdXBsb2FkKHNlbGYsIGNsaWVudCwgKiprd2FyZ3MpOgogICAgICAgICB1cGxvYWRfZGljdCA9
IGRpY3QoCiAgICAgICAgICAgICBzdWl0ZT0nbGF5b3V0LXRlc3RzJywKLSAgICAgICAgICAgIGNv
bW1pdHM9W2RpY3QocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgaWQ9J2Q4YmNlMjZmYTY1YzZmYzhm
MzljMTc5MjdhYmI3N2Y2OWZhYjgyZmMnKSwgZGljdChyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBp
ZD02KV0sCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uPUNvbmZpZ3VyYXRpb24uRW5jb2Rlcigp
LmRlZmF1bHQoQ29uZmlndXJhdGlvbigKKyAgICAgICAgICAgIGNvbW1pdHM9WworICAgICAgICAg
ICAgICAgIGRpY3QocmVwb3NpdG9yeV9pZD0nc2FmYXJpJywgaGFzaD0nZDhiY2UyNmZhNjVjNmZj
OGYzOWMxNzkyN2FiYjc3ZjY5ZmFiODJmYycpLAorICAgICAgICAgICAgICAgIGRpY3QocmVwb3Np
dG9yeV9pZD0nd2Via2l0JywgaGFzaD0nNzVlYWVmMWM5MjQyZjkyYThkNzY5NGU4Y2NkMzEwZjY5
Y2Y5NjgzYicpLAorICAgICAgICAgICAgXSwgY29uZmlndXJhdGlvbj1Db25maWd1cmF0aW9uLkVu
Y29kZXIoKS5kZWZhdWx0KENvbmZpZ3VyYXRpb24oCiAgICAgICAgICAgICAgICAgcGxhdGZvcm09
J01hYycsIHZlcnNpb249JzEwLjE0LjAnLCBzZGs9JzE4QTM5MScsCiAgICAgICAgICAgICAgICAg
aXNfc2ltdWxhdG9yPUZhbHNlLCBhcmNoaXRlY3R1cmU9J3g4Nl82NCcsCiAgICAgICAgICAgICAg
ICAgc3R5bGU9J1JlbGVhc2UnLCBmbGF2b3I9J3drMicsCkBAIC02Nyw3ICs2OSw3IEBAIGNsYXNz
IFVwbG9hZENvbnRyb2xsZXJQb3N0VGVzdChGbGFza1Rlc3RDYXNlLCBXYWl0Rm9yRG9ja2VyVGVz
dENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy
MDApCiAKICAgICAgICAgcmV0cmlldmVkID0gcmVzcG9uc2UuanNvbigpWzBdCi0gICAgICAgIHJl
dHJpZXZlZFsnY29tbWl0cyddID0gW2RpY3QocmVwb3NpdG9yeV9pZD1jb21taXRbJ3JlcG9zaXRv
cnlfaWQnXSwgaWQ9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5nZXQoJ3JldmlzaW9uJykpKSBm
b3IgY29tbWl0IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQorICAgICAgICByZXRyaWV2ZWRbJ2Nv
bW1pdHMnXSA9IFtkaWN0KHJlcG9zaXRvcnlfaWQ9Y29tbWl0WydyZXBvc2l0b3J5X2lkJ10sIGhh
c2g9Y29tbWl0LmdldCgnaGFzaCcsIGNvbW1pdC5nZXQoJ3JldmlzaW9uJykpKSBmb3IgY29tbWl0
IGluIHJldHJpZXZlZFsnY29tbWl0cyddXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHJp
ZXZlZCwgdXBsb2FkX2RpY3QpCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZf
bm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2Nr
Q2Fzc2FuZHJhQ29udGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29udGV4dC5weSBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2FyY2hpdmVfY29u
dGV4dC5weQppbmRleCBmYTg0ZGYyOTY0MThjMmQyZDZhOThhZDlhZWE4ODQ4Y2QxNzQ0ZmNlLi5k
NjQ5OGNiYTcyNTNlMjNjODIxNTc1NjIwMWRkNGM1MmYyZThmMTdlIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9hcmNoaXZl
X2NvbnRleHQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvbW9kZWwvYXJjaGl2ZV9jb250ZXh0LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsMTMgKzI3LDEzIEBAIGltcG9ydCB6aXBm
aWxlCiAKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBkYXRl
dGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQg
aW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5hcmNoaXZlciBpbXBvcnQgQXJj
aGl2ZXIKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY2Fzc2FuZHJhX2FyY2hpdmVyIGltcG9ydCBD
YXNzYW5kcmFBcmNoaXZlcgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBp
bXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9u
X2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJw
eS5tb2RlbC5zM19hcmNoaXZlciBpbXBvcnQgUzNBcmNoaXZlcgogZnJvbSByZXN1bHRzZGJweS5t
b2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ29udGV4dAorZnJvbSB3ZWJraXRzY21w
eSBpbXBvcnQgQ29tbWl0CiAKIAogZGVmIF9nZXRfdGltZShpbnB1dF90aW1lKToKQEAgLTExNCw3
ICsxMTQsNyBAQCBjbGFzcyBBcmNoaXZlQ29udGV4dChvYmplY3QpOgogCiAgICAgICAgIHdpdGgg
c2VsZjoKICAgICAgICAgICAgIHV1aWQgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnV1aWRfZm9yX2Nv
bW1pdHMoY29tbWl0cykKLSAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBDb21taXQuVElN
RVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1l
KCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCisgICAgICAgICAgICB0dGwgPSBpbnQo
KHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGlt
ZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgIGZv
ciBicmFuY2ggaW4gc2VsZi5jb21taXRfY29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhj
b21taXRzKToKICAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZ3VyYXRpb25fY29udGV4dC5yZWdp
c3Rlcl9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIGJyYW5jaD1icmFuY2gsIHRpbWVzdGFt
cD10aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jaV9jb250ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY2lfY29udGV4dC5weQppbmRleCAy
ZDYwOTc2OGNiMjJiM2JlNWNjNWZhYTViNmM2OTg2MGM1MGI5MDgzLi5hMjMwNDcwYjg1M2NiZDE1
N2FhM2FjMDY4NWEwOWFkNDA4OWFlMjRhIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jaV9jb250ZXh0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL2NpX2Nv
bnRleHQucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzEsMTEgKzMxLDEyIEBAIGltcG9ydCB1cmxsaWIucGFyc2UKIGZyb20gY2Fzc2FuZHJhLmNxbGVu
Z2luZSBpbXBvcnQgY29sdW1ucwogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKIGZyb20g
ZmFrZXJlZGlzIGltcG9ydCBGYWtlU3RyaWN0UmVkaXMKLWZyb20gcmVzdWx0c2RicHkuY29udHJv
bGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRf
Y29udGV4dCBpbXBvcnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25m
aWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSBy
ZXN1bHRzZGJweS5tb2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ2FsbGJhY2tDb250
ZXh0CiAKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1pdAorCiAKIGNsYXNzIENJQ29udGV4
dChVcGxvYWRDYWxsYmFja0NvbnRleHQpOgogICAgIERFRkFVTFRfQ0FTU0FORFJBX0xJTUlUID0g
MTAwCkBAIC0xMzUsNyArMTM2LDcgQEAgY2xhc3MgQ0lDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29u
dGV4dCk6CiAgICAgICAgICAgICAgICAgICAgIGRlbCBkZXRhaWxzW2tleV0KIAogICAgICAgICAg
ICAgdXVpZCA9IHNlbGYuY29tbWl0X2NvbnRleHQudXVpZF9mb3JfY29tbWl0cyhjb21taXRzKQot
ICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01V
TFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9z
ZWNvbmRzIGVsc2UgTm9uZQorICAgICAgICAgICAgdHRsID0gaW50KCh1dWlkIC8gQ29tbWl0LlVV
SURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYu
dHRsX3NlY29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgIHdpdGggc2VsZiwgc2VsZi5jYXNz
YW5kcmEuYmF0Y2hfcXVlcnlfY29udGV4dCgpOgogICAgICAgICAgICAgICAgIGZvciBicmFuY2gg
aW4gc2VsZi5jb21taXRfY29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhjb21taXRzKToK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L21vZGVsL2NvbW1pdF9jb250ZXh0LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHQucHkKaW5kZXggZTMxODYy
M2UwMWIyMDJkNmQ1NjYzYjFiZjVhZjk3NjIwZDVhMjJiZi4uMDRjZTdlYTVhYmQ3OGNmYzI5NjVi
Y2RjMDAzZWUzN2E0NjY3NDExNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHQucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0
X2NvbnRleHQucHkKQEAgLTI3LDQ1ICsyNywxMyBAQCBpbXBvcnQgdGltZQogZnJvbSBjYXNzYW5k
cmEuY3FsZW5naW5lIGltcG9ydCBjb2x1bW5zCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUubW9k
ZWxzIGltcG9ydCBNb2RlbAogZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVz
dWx0c2RicHkuY29udHJvbGxlci5jb21taXQgaW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJw
eS5tb2RlbC5yZXBvc2l0b3J5IGltcG9ydCBSZXBvc2l0b3J5CiAKLWZyb20gd2Via2l0c2NtcHkg
aW1wb3J0IFNjbUJhc2UsIENvbW1pdCBhcyBTY21Db21taXQsIENvbnRyaWJ1dG9yCi0KK2Zyb20g
d2Via2l0c2NtcHkgaW1wb3J0IFNjbUJhc2UsIENvbW1pdCwgQ29udHJpYnV0b3IKIAogY2xhc3Mg
Q29tbWl0Q29udGV4dChvYmplY3QpOgogCiAgICAgY2xhc3MgQ29tbWl0TW9kZWwoTW9kZWwpOgot
ICAgICAgICByZXBvc2l0b3J5X2lkID0gY29sdW1ucy5UZXh0KHBhcnRpdGlvbl9rZXk9VHJ1ZSwg
cmVxdWlyZWQ9VHJ1ZSkKLSAgICAgICAgYnJhbmNoID0gY29sdW1ucy5UZXh0KHBhcnRpdGlvbl9r
ZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSkKLSAgICAgICAgY29tbWl0dGVyID0gY29sdW1ucy5UZXh0
KCkKLSAgICAgICAgbWVzc2FnZSA9IGNvbHVtbnMuVGV4dCgpCi0KLSAgICAgICAgZGVmIHRvX2Nv
bW1pdChzZWxmKToKLSAgICAgICAgICAgIHJldHVybiBDb21taXQoCi0gICAgICAgICAgICAgICAg
cmVwb3NpdG9yeV9pZD1zZWxmLnJlcG9zaXRvcnlfaWQsIGJyYW5jaD1zZWxmLmJyYW5jaCwKLSAg
ICAgICAgICAgICAgICBpZD1zZWxmLmNvbW1pdF9pZCwKLSAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA9c2VsZi51dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSLAotICAg
ICAgICAgICAgICAgIG9yZGVyPXNlbGYudXVpZCAlIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9N
VUxUSVBMSUVSLAotICAgICAgICAgICAgICAgIGNvbW1pdHRlcj1zZWxmLmNvbW1pdHRlciwgbWVz
c2FnZT1zZWxmLm1lc3NhZ2UsCi0gICAgICAgICAgICApCi0KLSAgICBjbGFzcyBDb21taXRCeUlE
KENvbW1pdE1vZGVsKToKLSAgICAgICAgX190YWJsZV9uYW1lX18gPSAnY29tbWl0c19pZF90b190
aW1lc3RhbXBfdXVpZCcKLSAgICAgICAgY29tbWl0X2lkID0gY29sdW1ucy5UZXh0KHByaW1hcnlf
a2V5PVRydWUsIHJlcXVpcmVkPVRydWUpCi0gICAgICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChy
ZXF1aXJlZD1UcnVlKQotCi0gICAgY2xhc3MgQ29tbWl0QnlVdWlkQXNjZW5kaW5nKENvbW1pdE1v
ZGVsKToKLSAgICAgICAgX190YWJsZV9uYW1lX18gPSAnY29tbWl0c190aW1lc3RhbXBfdXVpZF90
b19pZF9hc2NlbmRpbmcnCi0gICAgICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChwcmltYXJ5X2tl
eT1UcnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVyaW5nX29yZGVyPSdBU0MnKQotICAgICAgICBj
b21taXRfaWQgPSBjb2x1bW5zLlRleHQocmVxdWlyZWQ9VHJ1ZSkKLQotICAgIGNsYXNzIENvbW1p
dEJ5VXVpZERlc2NlbmRpbmcoQ29tbWl0TW9kZWwpOgotICAgICAgICBfX3RhYmxlX25hbWVfXyA9
ICdjb21taXRzX3RpbWVzdGFtcF91dWlkX3RvX2lkX2Rlc2NlbmRpbmcnCi0gICAgICAgIHV1aWQg
PSBjb2x1bW5zLkJpZ0ludChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVy
aW5nX29yZGVyPSdERVNDJykKLSAgICAgICAgY29tbWl0X2lkID0gY29sdW1ucy5UZXh0KHJlcXVp
cmVkPVRydWUpCi0KLSAgICBjbGFzcyBDb21taXRNb2RlbE1rMihNb2RlbCk6CiAgICAgICAgIHJl
cG9zaXRvcnlfaWQgPSBjb2x1bW5zLlRleHQocGFydGl0aW9uX2tleT1UcnVlLCByZXF1aXJlZD1U
cnVlKQogICAgICAgICBwZW9wbGUgPSBjb2x1bW5zLlRleHQocmVxdWlyZWQ9RmFsc2UpCiAgICAg
ICAgIG1lc3NhZ2UgPSBjb2x1bW5zLlRleHQocmVxdWlyZWQ9RmFsc2UpCkBAIC03NSwyOSArNDMs
MjkgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICByZXZpc2lvbiA9IGNv
bHVtbnMuSW50ZWdlcihyZXF1aXJlZD1GYWxzZSkKIAogICAgICAgICBkZWYgdG9fY29tbWl0KHNl
bGYpOgotICAgICAgICAgICAgcmV0dXJuIFNjbUNvbW1pdCgKKyAgICAgICAgICAgIHJldHVybiBD
b21taXQoCiAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1zZWxmLnJlcG9zaXRvcnlfaWQs
IGJyYW5jaD1zZWxmLmJyYW5jaCwKLSAgICAgICAgICAgICAgICB0aW1lc3RhbXA9c2VsZi51dWlk
IC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSLAotICAgICAgICAgICAgICAg
IG9yZGVyPXNlbGYudXVpZCAlIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSLAot
ICAgICAgICAgICAgICAgIGF1dGhvcj1zZWxmLnBlb3BsZS5nZXQoJ2F1dGhvcicpIGlmIHNlbGYu
cGVvcGxlIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXA9c2VsZi51dWlkIC8v
IENvbW1pdC5VVUlEX01VTFRJUExJRVIsCisgICAgICAgICAgICAgICAgb3JkZXI9c2VsZi51dWlk
ICUgQ29tbWl0LlVVSURfTVVMVElQTElFUiwKKyAgICAgICAgICAgICAgICBhdXRob3I9anNvbi5s
b2FkcyhzZWxmLnBlb3BsZSkgaWYgc2VsZi5wZW9wbGUgZWxzZSBOb25lLAogICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9c2VsZi5tZXNzYWdlLAogICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9c2Vs
Zi5pZGVudGlmaWVyLAogICAgICAgICAgICAgICAgIGhhc2g9c2VsZi5oYXNoLAogICAgICAgICAg
ICAgICAgIHJldmlzaW9uPXNlbGYucmV2aXNpb24sCiAgICAgICAgICAgICApCiAKLSAgICBjbGFz
cyBDb21taXRCeVJlZihDb21taXRNb2RlbE1rMik6CisgICAgY2xhc3MgQ29tbWl0QnlSZWYoQ29t
bWl0TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25hbWVfXyA9ICdjb21taXRzX3JlZl90b19vYmpl
Y3QnCiAgICAgICAgIHJlZiA9IGNvbHVtbnMuVGV4dChwcmltYXJ5X2tleT1UcnVlLCByZXF1aXJl
ZD1UcnVlKQogICAgICAgICB1dWlkID0gY29sdW1ucy5CaWdJbnQocmVxdWlyZWQ9VHJ1ZSkKICAg
ICAgICAgYnJhbmNoID0gY29sdW1ucy5UZXh0KHJlcXVpcmVkPVRydWUpCiAKLSAgICBjbGFzcyBD
b21taXRCeVV1aWRBc2NlbmRpbmdNazIoQ29tbWl0TW9kZWxNazIpOgorICAgIGNsYXNzIENvbW1p
dEJ5VXVpZEFzY2VuZGluZyhDb21taXRNb2RlbCk6CiAgICAgICAgIF9fdGFibGVfbmFtZV9fID0g
J2NvbW1pdHNfdXVpZF90b19vYmplY3RfYXNjZW5kaW5nJwogICAgICAgICBicmFuY2ggPSBjb2x1
bW5zLlRleHQocGFydGl0aW9uX2tleT1UcnVlLCByZXF1aXJlZD1UcnVlKQogICAgICAgICB1dWlk
ID0gY29sdW1ucy5CaWdJbnQocHJpbWFyeV9rZXk9VHJ1ZSwgcmVxdWlyZWQ9VHJ1ZSwgY2x1c3Rl
cmluZ19vcmRlcj0nQVNDJykKIAotICAgIGNsYXNzIENvbW1pdEJ5VXVpZERlc2NlbmRpbmdNazIo
Q29tbWl0TW9kZWxNazIpOgorICAgIGNsYXNzIENvbW1pdEJ5VXVpZERlc2NlbmRpbmcoQ29tbWl0
TW9kZWwpOgogICAgICAgICBfX3RhYmxlX25hbWVfXyA9ICdjb21taXRzX3V1aWRfdG9fb2JqZWN0
X2Rlc2NlbmRpbmcnCiAgICAgICAgIGJyYW5jaCA9IGNvbHVtbnMuVGV4dChwYXJ0aXRpb25fa2V5
PVRydWUsIHJlcXVpcmVkPVRydWUpCiAgICAgICAgIHV1aWQgPSBjb2x1bW5zLkJpZ0ludChwcmlt
YXJ5X2tleT1UcnVlLCByZXF1aXJlZD1UcnVlLCBjbHVzdGVyaW5nX29yZGVyPSdERVNDJykKQEAg
LTEyMCwxMCArODgsNyBAQCBjbGFzcyBDb21taXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgIHNl
bGYubmFtZSA9ICdjb21taXQtaWRlbnRpZmllcnMnCiAKICAgICAgICAgd2l0aCBzZWxmOgotICAg
ICAgICAgICAgZm9yIG9sZCBpbiBbc2VsZi5Db21taXRCeUlELCBzZWxmLkNvbW1pdEJ5VXVpZEFz
Y2VuZGluZywgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5nXToKLSAgICAgICAgICAgICAgICBz
ZWxmLmNhc3NhbmRyYS5jcmVhdGVfdGFibGUob2xkKQotCi0gICAgICAgICAgICBmb3IgdGFibGUg
aW4gW3NlbGYuQ29tbWl0QnlSZWYsIHNlbGYuQ29tbWl0QnlVdWlkQXNjZW5kaW5nTWsyLCBzZWxm
LkNvbW1pdEJ5VXVpZERlc2NlbmRpbmdNazIsIHNlbGYuQnJhbmNoZXNdOgorICAgICAgICAgICAg
Zm9yIHRhYmxlIGluIFtzZWxmLkNvbW1pdEJ5UmVmLCBzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGlu
Zywgc2VsZi5Db21taXRCeVV1aWREZXNjZW5kaW5nLCBzZWxmLkJyYW5jaGVzXToKICAgICAgICAg
ICAgICAgICBzZWxmLmNhc3NhbmRyYS5jcmVhdGVfdGFibGUodGFibGUpCiAKICAgICBkZWYgX19l
bnRlcl9fKHNlbGYpOgpAQCAtMTM1LDEwICsxMDAsMTAgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChv
YmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiB0aW1lc3RhbXBfdG9fdXVpZChjbHMs
IHRpbWVzdGFtcD1Ob25lKToKICAgICAgICAgaWYgdGltZXN0YW1wIGlzIE5vbmU6Ci0gICAgICAg
ICAgICByZXR1cm4gaW50KHRpbWUudGltZSgpKSAqIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9N
VUxUSVBMSUVSCisgICAgICAgICAgICByZXR1cm4gaW50KHRpbWUudGltZSgpKSAqIENvbW1pdC5V
VUlEX01VTFRJUExJRVIKICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHRpbWVzdGFtcCwgZGF0ZXRp
bWUpOgotICAgICAgICAgICAgcmV0dXJuIGNhbGVuZGFyLnRpbWVnbSh0aW1lc3RhbXAudGltZXR1
cGxlKCkpICogQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIKLSAgICAgICAgcmV0
dXJuIGludCh0aW1lc3RhbXApICogQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJUExJRVIK
KyAgICAgICAgICAgIHJldHVybiBjYWxlbmRhci50aW1lZ20odGltZXN0YW1wLnRpbWV0dXBsZSgp
KSAqIENvbW1pdC5VVUlEX01VTFRJUExJRVIKKyAgICAgICAgcmV0dXJuIGludCh0aW1lc3RhbXAp
ICogQ29tbWl0LlVVSURfTVVMVElQTElFUgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNv
bnZlcnRfdG9fdXVpZChjbHMsIHZhbHVlLCBkZWZhdWx0PTApOgpAQCAtMTYwLDcgKzEyNSw3IEBA
IGNsYXNzIENvbW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAgIyB0aGlzIGNhc2UsIHRyYWNr
IGJyYW5jaGVzIHdoaWNoIGFyZSBub3QgdGhlIGRlZmF1bHQgYnJhbmNoIGluZGVwZW5kZW50bHku
CiAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKICAgICAgICAgICAgIHJlcG8gPSBzZWxm
LnJlcG9zaXRvcmllcy5nZXQoY29tbWl0LnJlcG9zaXRvcnlfaWQsIFJlcG9zaXRvcnkoa2V5PWNv
bW1pdC5yZXBvc2l0b3J5X2lkKSkKLSAgICAgICAgICAgIGlmIGNvbW1pdC5icmFuY2ggIT0gcmVw
by5kZWZhdWx0X2JyYW5jaDoKKyAgICAgICAgICAgIGlmIGNvbW1pdC5icmFuY2ggbm90IGluIFNj
bUJhc2UuREVGQVVMVF9CUkFOQ0hFUzoKICAgICAgICAgICAgICAgICBicmFuY2hlcy5hZGQoY29t
bWl0LmJyYW5jaCkKICAgICAgICAgaWYgbGVuKGJyYW5jaGVzKSA9PSAwOgogICAgICAgICAgICAg
YnJhbmNoZXMuYWRkKHNlbGYuREVGQVVMVF9CUkFOQ0hfS0VZKQpAQCAtMTg0LDQ2ICsxNDksMjcg
QEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKGYnRXhwZWN0ZWQgdHlwZSB7UmVwb3NpdG9yeX0sIGdvdCB7dHlwZShyZXBvc2l0b3J5KX0n
KQogICAgICAgICBzZWxmLnJlcG9zaXRvcmllc1tyZXBvc2l0b3J5LmtleV0gPSByZXBvc2l0b3J5
CiAKLSAgICBkZWYgZmluZF9jb21taXRzX2J5X2lkKHNlbGYsIHJlcG9zaXRvcnlfaWQsIGJyYW5j
aCwgY29tbWl0X2lkLCBsaW1pdD0xMDApOgotICAgICAgICBpZiBicmFuY2ggaXMgTm9uZToKLSAg
ICAgICAgICAgIGJyYW5jaCA9IHNlbGYucmVwb3NpdG9yaWVzW3JlcG9zaXRvcnlfaWRdLmRlZmF1
bHRfYnJhbmNoCi0KLSAgICAgICAgZGVmIGNhbGxiYWNrKGNvbW1pdF9pZD1jb21taXRfaWQpOgor
ICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlfcmVmKHNlbGYsIHJlcG9zaXRvcnlfaWQsIHJlZiwgbGlt
aXQ9MTAwKToKKyAgICAgICAgZGVmIGNhbGxiYWNrKHJlZj1yZWYpOgogICAgICAgICAgICAgd2l0
aCBzZWxmOgotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29tbWl0X2lkLCBpbnQpIG9y
IGNvbW1pdF9pZC5pc2RpZ2l0KCk6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyZWYs
IGludCkgb3IgcmVmLmlzZGlnaXQoKToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFttb2Rl
bC50b19jb21taXQoKSBmb3IgbW9kZWwgaW4gc2VsZi5jYXNzYW5kcmEuc2VsZWN0X2Zyb21fdGFi
bGUoCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5SUQuX190YWJsZV9uYW1l
X18sIGxpbWl0PWxpbWl0LAotICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1y
ZXBvc2l0b3J5X2lkLCBicmFuY2g9YnJhbmNoLCBjb21taXRfaWQ9c3RyKGNvbW1pdF9pZCksCisg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVfbmFtZV9fLCBs
aW1pdD1saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ9cmVwb3Np
dG9yeV9pZCwgcmVmPSdye30nLmZvcm1hdChyZWYpLAogICAgICAgICAgICAgICAgICAgICApXQog
CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogU0FTSSBpbmRlY2llcyBhcmUgdGhlIGNhbm9pY2Fs
IHdheSB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJ1dCByZXF1aXJlIENhc3NhbmRyYSAzLjQgd2hp
Y2gKICAgICAgICAgICAgICAgICAjIGhhc24ndCBiZWVuIGRlcGxveWVkIHRvIG91ciBkYXRhY2Vu
dGVycyB5ZXQuIFRoaXMgd29ya3MgZm9yIGNvbW1pdHMsIGJ1dCBpcyBsZXNzIHRyYW5zcGFyZW50
LgogICAgICAgICAgICAgICAgIHJldHVybiBbbW9kZWwudG9fY29tbWl0KCkgZm9yIG1vZGVsIGlu
IHNlbGYuY2Fzc2FuZHJhLnNlbGVjdF9mcm9tX3RhYmxlKAotICAgICAgICAgICAgICAgICAgICBz
ZWxmLkNvbW1pdEJ5SUQuX190YWJsZV9uYW1lX18sIGxpbWl0PWxpbWl0LAotICAgICAgICAgICAg
ICAgICAgICByZXBvc2l0b3J5X2lkPXJlcG9zaXRvcnlfaWQsIGJyYW5jaD1icmFuY2gsIGNvbW1p
dF9pZF9fZ3RlPWNvbW1pdF9pZC5sb3dlcigpLCBjb21taXRfaWRfX2x0ZT0oY29tbWl0X2lkLmxv
d2VyKCkgKyAnZycpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFi
bGVfbmFtZV9fLCBsaW1pdD1saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9p
ZD1yZXBvc2l0b3J5X2lkLCByZWZfX2d0ZT1yZWYubG93ZXIoKSwgcmVmX19sdGU9KHJlZi5sb3dl
cigpICsgJ2cnKSwKICAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIHJldHVybiBzZWxmLnJ1
bl9mdW5jdGlvbl90aHJvdWdoX3JlZGlzX2NhY2hlKAotICAgICAgICAgICAgZidyZXBvc2l0b3J5
X2lkPXtyZXBvc2l0b3J5X2lkfTpicmFuY2g9e2JyYW5jaH06Y29tbWl0X2lkPXtzdHIoY29tbWl0
X2lkKS5sb3dlcigpfScsCisgICAgICAgICAgICBmJ3JlcG9zaXRvcnlfaWQ9e3JlcG9zaXRvcnlf
aWR9OnJlZj17c3RyKHJlZikubG93ZXIoKX0nLAogICAgICAgICAgICAgY2FsbGJhY2ssCiAgICAg
ICAgICkKIAotICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlfcmVmKHNlbGYsIHJlcG9zaXRvcnlfaWQs
IHJlZiwgbGltaXQ9MTAwKToKLSAgICAgICAgIyBGSVhNRTogU2hvdWxkIHVzZSB0aGUgcmVkaXMg
Y2FjaGUsIGJ1dCB0aGUgcmVkaXMgY2FjaGUgZG9lc24ndCBzdXBwb3J0IG5ldy1zdHlsZSBjb21t
aXRzIHlldAotICAgICAgICB3aXRoIHNlbGY6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJl
ZiwgaW50KSBvciByZWYuaXNkaWdpdCgpOgotICAgICAgICAgICAgICAgIHJldHVybiBbbW9kZWwu
dG9fY29tbWl0KCkgZm9yIG1vZGVsIGluIHNlbGYuY2Fzc2FuZHJhLnNlbGVjdF9mcm9tX3RhYmxl
KAotICAgICAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVfbmFtZV9fLCBs
aW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD1yZXBvc2l0b3J5
X2lkLCByZWY9J3J7fScuZm9ybWF0KHJlZiksCi0gICAgICAgICAgICAgICAgKV0KLQotICAgICAg
ICAgICAgIyBGSVhNRTogU0FTSSBpbmRlY2llcyBhcmUgdGhlIGNhbm9pY2FsIHdheSB0byBzb2x2
ZSB0aGlzIHByb2JsZW0sIGJ1dCByZXF1aXJlIENhc3NhbmRyYSAzLjQgd2hpY2gKLSAgICAgICAg
ICAgICMgaGFzbid0IGJlZW4gZGVwbG95ZWQgdG8gb3VyIGRhdGFjZW50ZXJzIHlldC4gVGhpcyB3
b3JrcyBmb3IgY29tbWl0cywgYnV0IGlzIGxlc3MgdHJhbnNwYXJlbnQuCi0gICAgICAgICAgICBy
ZXR1cm4gW21vZGVsLnRvX2NvbW1pdCgpIGZvciBtb2RlbCBpbiBzZWxmLmNhc3NhbmRyYS5zZWxl
Y3RfZnJvbV90YWJsZSgKLSAgICAgICAgICAgICAgICBzZWxmLkNvbW1pdEJ5UmVmLl9fdGFibGVf
bmFtZV9fLCBsaW1pdD1saW1pdCwKLSAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPXJlcG9z
aXRvcnlfaWQsIHJlZl9fZ3RlPXJlZi5sb3dlcigpLCByZWZfX2x0ZT0ocmVmLmxvd2VyKCkgKyAn
ZycpLAotICAgICAgICAgICAgKV0KLQogICAgIGRlZiBmaW5kX2NvbW1pdHNfYnlfdXVpZChzZWxm
LCByZXBvc2l0b3J5X2lkLCBicmFuY2gsIHV1aWQsIGxpbWl0PTEwMCk6CiAgICAgICAgIGlmIGJy
YW5jaCBpcyBOb25lOgogICAgICAgICAgICAgYnJhbmNoID0gc2VsZi5yZXBvc2l0b3JpZXNbcmVw
b3NpdG9yeV9pZF0uZGVmYXVsdF9icmFuY2gKQEAgLTM1OCw5ICszMDQsOSBAQCBjbGFzcyBDb21t
aXRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6CiAg
ICAgICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgKICAgICAgICAgICAg
ICAgICAgICAgcmVwb3NpdG9yeV9pZD1jb21taXQucmVwb3NpdG9yeV9pZCwKLSAgICAgICAgICAg
ICAgICAgICAgcmVmPWNvbW1pdC5pZCwKICAgICAgICAgICAgICAgICAgICAgcmV2aXNpb249Y29t
bWl0LnJldmlzaW9uLAogICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAorICAg
ICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPWNvbW1pdC5pZGVudGlmaWVyLAogICAgICAgICAg
ICAgICAgICAgICBmYXN0PUZhbHNlLAogICAgICAgICAgICAgICAgICkKICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgpAQCAtMzcyLDI1ICszMTgsMTcgQEAgY2xhc3MgQ29tbWl0Q29udGV4
dChvYmplY3QpOgogICAgICAgICByZXR1cm4gZGljdChzdGF0dXM9J29rJykKIAogICAgIGRlZiBy
ZWdpc3Rlcl9jb21taXQoc2VsZiwgY29tbWl0KToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
Y29tbWl0LCBTY21Db21taXQpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0
ZWQgdHlwZSB7U2NtQ29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKKyAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y
KGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKIAogICAgICAg
ICB3aXRoIHNlbGY6CiAgICAgICAgICAgICBpZiBjb21taXQucmVwb3NpdG9yeV9pZCBub3QgaW4g
c2VsZi5yZXBvc2l0b3JpZXM6CiAgICAgICAgICAgICAgICAgc2VsZi5yZXBvc2l0b3JpZXNbY29t
bWl0LnJlcG9zaXRvcnlfaWRdID0gUmVwb3NpdG9yeShrZXk9Y29tbWl0LnJlcG9zaXRvcnlfaWQp
CiAKLSAgICAgICAgICAgIGZvciBvbGQgaW4gW3NlbGYuQ29tbWl0QnlJRCwgc2VsZi5Db21taXRC
eVV1aWRBc2NlbmRpbmcsIHNlbGYuQ29tbWl0QnlVdWlkRGVzY2VuZGluZ106Ci0gICAgICAgICAg
ICAgICAgc2VsZi5jYXNzYW5kcmEuaW5zZXJ0X3JvdygKLSAgICAgICAgICAgICAgICAgICAgb2xk
Ll9fdGFibGVfbmFtZV9fLAotICAgICAgICAgICAgICAgICAgICByZXBvc2l0b3J5X2lkPWNvbW1p
dC5yZXBvc2l0b3J5X2lkLAotICAgICAgICAgICAgICAgICAgICBicmFuY2g9Y29tbWl0LmJyYW5j
aCwKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0X2lkPXN0cihjb21taXQucmV2aXNpb24pLmxv
d2VyKCkgaWYgY29tbWl0LnJldmlzaW9uIGVsc2UgY29tbWl0Lmhhc2gsCi0gICAgICAgICAgICAg
ICAgICAgIHV1aWQ9Y29tbWl0LnV1aWQsCi0gICAgICAgICAgICAgICAgICAgIGNvbW1pdHRlcj1j
b21taXQuYXV0aG9yLmVtYWlsIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlLAotICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIGlmIGNvbW1pdC5icmFuY2ggaW4gU2NtQmFzZS5ERUZBVUxUX0JSQU5DSEVTOgor
ICAgICAgICAgICAgICAgIGNvbW1pdC5icmFuY2ggPSBzZWxmLnJlcG9zaXRvcmllc1tjb21taXQu
cmVwb3NpdG9yeV9pZF0uZGVmYXVsdF9icmFuY2gKIAotICAgICAgICAgICAgZm9yIHRhYmxlIGlu
IFtzZWxmLkNvbW1pdEJ5VXVpZEFzY2VuZGluZ01rMiwgc2VsZi5Db21taXRCeVV1aWREZXNjZW5k
aW5nTWsyLCBzZWxmLkJyYW5jaGVzXToKKyAgICAgICAgICAgIGZvciB0YWJsZSBpbiBbc2VsZi5D
b21taXRCeVV1aWRBc2NlbmRpbmcsIHNlbGYuQ29tbWl0QnlVdWlkRGVzY2VuZGluZ106CiAgICAg
ICAgICAgICAgICAgc2VsZi5jYXNzYW5kcmEuaW5zZXJ0X3JvdygKICAgICAgICAgICAgICAgICAg
ICAgdGFibGUuX190YWJsZV9uYW1lX18sCiAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlf
aWQ9Y29tbWl0LnJlcG9zaXRvcnlfaWQsCkBAIC0zOTksNyArMzM3LDcgQEAgY2xhc3MgQ29tbWl0
Q29udGV4dChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAog
ICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPXN0cihjb21taXQpIGlmIGNvbW1pdC5pZGVu
dGlmaWVyIGVsc2UgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgdXVpZD1jb21taXQudXVpZCwK
LSAgICAgICAgICAgICAgICAgICAgY29tbWl0dGVyPWpzb24uZHVtcHMoY29tbWl0LmF1dGhvciwg
Y2xzPUNvbnRyaWJ1dG9yLkVuY29kZXIpIGlmIGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAorICAg
ICAgICAgICAgICAgICAgICBwZW9wbGU9anNvbi5kdW1wcyhjb21taXQuYXV0aG9yLCBjbHM9Q29u
dHJpYnV0b3IuRW5jb2RlcikgaWYgY29tbWl0LmF1dGhvciBlbHNlIE5vbmUsCiAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgKQogCkBA
IC00MjAsNyArMzU4LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dChvYmplY3QpOgogICAgICAgICAg
ICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAogICAgICAgICAgICAgICAgICAgICBpZGVudGlm
aWVyPXN0cihjb21taXQpIGlmIGNvbW1pdC5pZGVudGlmaWVyIGVsc2UgTm9uZSwKICAgICAgICAg
ICAgICAgICAgICAgdXVpZD1jb21taXQudXVpZCwKLSAgICAgICAgICAgICAgICAgICAgY29tbWl0
dGVyPWpzb24uZHVtcHMoY29tbWl0LmF1dGhvciwgY2xzPUNvbnRyaWJ1dG9yLkVuY29kZXIpIGlm
IGNvbW1pdC5hdXRob3IgZWxzZSBOb25lLAorICAgICAgICAgICAgICAgICAgICBwZW9wbGU9anNv
bi5kdW1wcyhjb21taXQuYXV0aG9yLCBjbHM9Q29udHJpYnV0b3IuRW5jb2RlcikgaWYgY29tbWl0
LmF1dGhvciBlbHNlIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1l
c3NhZ2UsCiAgICAgICAgICAgICAgICAgKQogCkBAIC00NDQsMTAgKzM4Miw3IEBAIGNsYXNzIENv
bW1pdENvbnRleHQob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlZ2lzdGVyX2Nv
bW1pdChjb21taXQpCiAKICAgICBkZWYgdXJsKHNlbGYsIGNvbW1pdCk6Ci0gICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKGNvbW1pdCwgQ29tbWl0KSBhbmQgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBT
Y21Db21taXQpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7
Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKLQogICAgICAgICByZXBvID0gc2VsZi5yZXBv
c2l0b3JpZXMuZ2V0KGNvbW1pdC5yZXBvc2l0b3J5X2lkKQogICAgICAgICBpZiByZXBvOgotICAg
ICAgICAgICAgcmV0dXJuIHJlcG8udXJsX2Zvcl9jb21taXQoY29tbWl0LmlkIGlmIGlzaW5zdGFu
Y2UoY29tbWl0LCBDb21taXQpIGVsc2UgY29tbWl0Lmhhc2ggb3IgY29tbWl0LnJldmlzaW9uKQor
ICAgICAgICAgICAgcmV0dXJuIHJlcG8udXJsX2Zvcl9jb21taXQoY29tbWl0KQogICAgICAgICBy
ZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvbW9kZWwvY29tbWl0X2NvbnRleHRfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29u
dGV4dF91bml0dGVzdC5weQppbmRleCBjYzQ0MmVmNzA4YTNmZDM1NzlkYWY4N2RjNjJhM2JlZjQx
ODA5YzMyLi5jNmUxZTJiMTgzYTJiMjI1NDU4Y2Q3YzEzODRkOWUxYTUzZDdjZWMyIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2Rl
bC9jb21taXRfY29udGV4dF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmll
cy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9jb21taXRfY29udGV4dF91bml0dGVzdC5w
eQpAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2Vy
VGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICBmb3IgYnJhbmNoLCBjb21taXRzIGluIHJl
cG9zaXRvcnkuY29tbWl0cy5pdGVtcygpOgogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGNv
bW1pdCBpbiBjb21taXRzOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJh
c2UucmVnaXN0ZXJfcGFydGlhbF9jb21taXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGtleSwgcmVmPWNvbW1pdC5oYXNoIG9yIGNvbW1pdC5yZXZpc2lvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2V5LCBoYXNoPWNvbW1pdC5oYXNoLCByZXZpc2lvbj1jb21t
aXQucmV2aXNpb24sIGZhc3Q9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQog
CiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlz
PUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBA
IC03MCwxNSArNzAsMTUgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRl
c3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkK
IAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBbc2VsZi5z
dGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2Q4YmNlMjZmYTY1YycpXSwKLSAgICAg
ICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9pZChyZXBvc2l0b3J5X2lk
PSdzYWZhcmknLCBicmFuY2g9J21haW4nLCBjb21taXRfaWQ9J2Q4YmNlMjZmYTY1YycpLAorICAg
ICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nZDhiY2UyNmZh
NjVjJyldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3Jl
ZihyZXBvc2l0b3J5X2lkPSdzYWZhcmknLCByZWY9J2Q4YmNlMjZmYTY1YycpLAogICAgICAgICAg
ICAgKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtz
ZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NildLAotICAgICAgICAgICAgICAg
IHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcs
IGJyYW5jaD0ndHJ1bmsnLCBjb21taXRfaWQ9NiksCisgICAgICAgICAgICAgICAgW3NlbGYuc3Zu
X3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFz
ZS5maW5kX2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIHJlZj02KSwKICAg
ICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHNlbGYuZGF0
YWJhc2UuZmluZF9jb21taXRzX2J5X2lkKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0n
dHJ1bmsnLCBjb21taXRfaWQ9JzEyMzQnKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDAsIGxlbihzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0n
d2Via2l0JywgcmVmPScxMjM0JykpKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2Nr
X2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9
TW9ja0Nhc3NhbmRyYUNvbnRleHQpCiAgICAgZGVmIHRlc3RfY29tbWl0X2J5X3V1aWQoc2VsZiwg
cmVkaXM9U3RyaWN0UmVkaXMsIGNhc3NhbmRyYT1DYXNzYW5kcmFDb250ZXh0KToKQEAgLTg3LDEy
ICs4NywxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2Up
OgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtzZWxmLnN0YXNoX3Jl
cG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nMWFiZTI1YjQ0M2U5JyldLAorICAgICAgICAgICAg
ICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nMWFiZTI1YjQ0M2U5JyldLAog
ICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3V1aWQocmVwb3Np
dG9yeV9pZD0nc2FmYXJpJywgYnJhbmNoPSdtYWluJywgdXVpZD0xNjAxNjYzMDAwMDApLAogICAg
ICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAg
ICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpXSwKLSAgICAgICAgICAg
ICAgICBzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19ieV91dWlkKHJlcG9zaXRvcnlfaWQ9J3dl
YmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCB1dWlkPTE2MDE2Mzk5MDAwMCksCisgICAgICAgICAgICAg
ICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KV0sCisgICAgICAgICAgICAgICAg
c2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfdXVpZChyZXBvc2l0b3J5X2lkPSd3ZWJraXQn
LCBicmFuY2g9J21haW4nLCB1dWlkPTE2MDE2Mzk5MDAwMCksCiAgICAgICAgICAgICApCiAKICAg
ICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZfbm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFr
ZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2NrQ2Fzc2FuZHJhQ29udGV4dCkKQEAgLTEw
MiwxMiArMTAyLDEyIEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0
Q2FzZSk6CiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3Rh
c2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPScxYWJlMjViNDQzZTknKV0sCisgICAgICAg
ICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPScxYWJlMjViNDQzZTkn
KV0sCiAgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0
YW1wKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIHRpbWVzdGFtcD0xNjAx
NjYzMDAwKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0g
ICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV0s
Ci0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0YW1w
KHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0ndHJ1bmsnLCB0aW1lc3RhbXA9MTYwMTYz
OTkwMCksCisgICAgICAgICAgICAgICAgW3NlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02
KV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfdGltZXN0
YW1wKHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIHRpbWVzdGFtcD0xNjAx
NjM5OTAwKSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
bGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X3RpbWVzdGFtcChyZXBvc2l0b3J5X2lk
PSdzYWZhcmknLCBicmFuY2g9J21haW4nLCB0aW1lc3RhbXA9MTYwMTY2ODAwMCkpKQogCkBAIC0x
MTgsNyArMTE4LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RD
YXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNSwgbGVuKHNlbGYuZGF0YWJhc2UuZmluZF9jb21t
aXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicpKSkKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hf
cmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwgc2VsZi5zdGFzaF9y
ZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2JhZTVkMWU5MDk5OScpXSwKKyAgICAgICAgICAg
ICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpLCBz
ZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyldLAogICAgICAg
ICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlf
aWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGxpbWl0PTIpLAogICAgICAgICAgICAgKQogCkBA
IC0xMjcsMTAgKzEyNywxMCBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2Vy
VGVzdENhc2UpOgogICAgICAgICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJpKCksIE1vY2tN
b2RlbEZhY3Rvcnkud2Via2l0KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVk
aXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNzYW5kcmEpCiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxf
Y29tbWl0c190b19kYXRhYmFzZSgpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxl
bihzZWxmLmRhdGFiYXNlLmZpbmRfY29tbWl0c19pbl9yYW5nZShyZXBvc2l0b3J5X2lkPSd3ZWJr
aXQnLCBicmFuY2g9J3RydW5rJykpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBs
ZW4oc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Vi
a2l0JywgYnJhbmNoPSdtYWluJykpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpLCBz
ZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NCldLAotICAgICAgICAgICAgICAg
IHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3dlYmtp
dCcsIGJyYW5jaD0ndHJ1bmsnLCBsaW1pdD0yKSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdm5f
cmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9
NCldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3Jhbmdl
KHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIGxpbWl0PTIpLAogICAgICAg
ICAgICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlciht
b2NrX3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNv
bnRleHQpCkBAIC0xMzksNyArMTM5LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZv
ckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1y
ZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21t
aXRzX3RvX2RhdGFiYXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAg
ICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdiYWU1ZDFl
OTA5OTknKSwgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzFhYmUyNWI0
NDNlOScpXSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChy
ZWY9J2JhZTVkMWU5MDk5OScpLCBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nMWFi
ZTI1YjQ0M2U5JyldLAogICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRz
X2luX3JhbmdlKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGJlZ2luPTE2
MDE2NjMwMDAsIGVuZD0xNjAxNjY4MDAwKSwKICAgICAgICAgICAgICkKIApAQCAtMTQ5LDggKzE0
OSw4IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAg
ICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVkaXM9cmVkaXMsIGNhc3NhbmRyYT1jYXNz
YW5kcmEpCiAgICAgICAgICAgICBzZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAg
ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFtzZWxmLnN2bl9y
ZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0
X2Zvcl9pZChpZD00KV0sCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1p
dHNfaW5fcmFuZ2UocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSd0cnVuaycsIGJlZ2lu
PTE2MDE2Mzc5MDAsIGVuZD0xNjAxNjM5OTAwKSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdm5f
cmVwb3NpdG9yeS5jb21taXQocmVmPTYpLCBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9
NCldLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3Jhbmdl
KHJlcG9zaXRvcnlfaWQ9J3dlYmtpdCcsIGJyYW5jaD0nbWFpbicsIGJlZ2luPTE2MDE2Mzc5MDAs
IGVuZD0xNjAxNjM5OTAwKSwKICAgICAgICAgICAgICkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVz
dENhc2UubW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tf
Y2Fzc2FuZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQpAQCAtMTYwLDkgKzE2MCw5IEBAIGNsYXNz
IENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAgICAgICAgICAgICBz
ZWxmLmFkZF9hbGxfY29tbWl0c190b19kYXRhYmFzZSgpCiAKICAgICAgICAgICAgIGNvbW1pdHMg
PSBbCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQo
aWQ9JzFhYmUyNWI0NDNlOScpLAotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXRfZm9yX2lkKGlkPSdmZmY4M2JiMmQ5MTcnKSwKLSAgICAgICAgICAgICAgICBzZWxm
LnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nOWI4MzExZjI1YTc3JyksCisgICAg
ICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9JzFhYmUyNWI0NDNl
OScpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdm
ZmY4M2JiMmQ5MTcnKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29t
bWl0KHJlZj0nOWI4MzExZjI1YTc3JyksCiAgICAgICAgICAgICBdCiAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1pdHMsIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2luX3Jhbmdl
KHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsICBiZWdpbj1jb21taXRzWy0x
XSwgZW5kPWNvbW1pdHNbMF0pKQogCkBAIC0xNzMsMzAgKzE3MywzMCBAQCBjbGFzcyBDb21taXRD
b250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5hZGRf
YWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBjb21taXRzID0gWwotICAg
ICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KSwKLSAg
ICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NCksCi0g
ICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTIpLAor
ICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSwKKyAgICAg
ICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NCksCisgICAgICAgICAg
ICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTIpLAogICAgICAgICAgICAgXQot
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21taXRzLCBzZWxmLmRhdGFiYXNlLmZpbmRf
Y29tbWl0c19pbl9yYW5nZShyZXBvc2l0b3J5X2lkPSd3ZWJraXQnLCBicmFuY2g9J3RydW5rJywg
YmVnaW49Y29tbWl0c1stMV0sIGVuZD1jb21taXRzWzBdKSkKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbWl0cywgc2VsZi5kYXRhYmFzZS5maW5kX2NvbW1pdHNfaW5fcmFuZ2UocmVw
b3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNoPSdtYWluJywgYmVnaW49Y29tbWl0c1stMV0sIGVu
ZD1jb21taXRzWzBdKSkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2UubW9ja19pZl9ub19k
b2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2FuZHJhPU1vY2tDYXNz
YW5kcmFDb250ZXh0KQogICAgIGRlZiB0ZXN0X2NvbW1pdF9mcm9tX3N0YXNoX3JlcG8oc2VsZiwg
cmVkaXM9U3RyaWN0UmVkaXMsIGNhc3NhbmRyYT1DYXNzYW5kcmFDb250ZXh0KToKICAgICAgICAg
d2l0aCBNb2NrTW9kZWxGYWN0b3J5LnNhZmFyaSgpLCBNb2NrTW9kZWxGYWN0b3J5LndlYmtpdCgp
OgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFiYXNlKHJlZGlzPXJlZGlzLCBjYXNzYW5kcmE9
Y2Fzc2FuZHJhKQotICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5yZWdpc3Rlcl9wYXJ0aWFsX2Nv
bW1pdCgnc2FmYXJpJywgaGFzaD0nZDhiY2UyNmZhNjVjJykKKyAgICAgICAgICAgIHNlbGYuZGF0
YWJhc2UucmVnaXN0ZXJfcGFydGlhbF9jb21taXQoJ3NhZmFyaScsIGhhc2g9J2Q4YmNlMjZmYTY1
YycsIGZhc3Q9RmFsc2UpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg
ICAgICAgIFtzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZh
NjVjJyldLAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UuZmluZF9jb21taXRzX2J5X2lk
KHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIGJyYW5jaD0nbWFpbicsIGNvbW1pdF9pZD0nZDhiY2Uy
NmZhNjVjJyksCisgICAgICAgICAgICAgICAgW3NlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQo
cmVmPSdkOGJjZTI2ZmE2NWMnKV0sCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5maW5k
X2NvbW1pdHNfYnlfcmVmKHJlcG9zaXRvcnlfaWQ9J3NhZmFyaScsIHJlZj0nZDhiY2UyNmZhNjVj
JyksCiAgICAgICAgICAgICApCiAKICAgICBAV2FpdEZvckRvY2tlclRlc3RDYXNlLm1vY2tfaWZf
bm9fZG9ja2VyKG1vY2tfcmVkaXM9RmFrZVN0cmljdFJlZGlzLCBtb2NrX2Nhc3NhbmRyYT1Nb2Nr
Q2Fzc2FuZHJhQ29udGV4dCkKICAgICBkZWYgdGVzdF9jb21taXRfZnJvbV9zdm5fcmVwbyhzZWxm
LCByZWRpcz1TdHJpY3RSZWRpcywgY2Fzc2FuZHJhPUNhc3NhbmRyYUNvbnRleHQpOgogICAgICAg
ICB3aXRoIE1vY2tNb2RlbEZhY3Rvcnkuc2FmYXJpKCksIE1vY2tNb2RlbEZhY3Rvcnkud2Via2l0
KCk6CiAgICAgICAgICAgICBzZWxmLmluaXRfZGF0YWJhc2UocmVkaXM9cmVkaXMsIGNhc3NhbmRy
YT1jYXNzYW5kcmEpCi0gICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnJlZ2lzdGVyX3BhcnRpYWxf
Y29tbWl0KCd3ZWJraXQnLCByZXZpc2lvbj02KQorICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5y
ZWdpc3Rlcl9wYXJ0aWFsX2NvbW1pdCgnd2Via2l0JywgcmV2aXNpb249NiwgZmFzdD1GYWxzZSkK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgW3NlbGYuc3Zu
X3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV0sCi0gICAgICAgICAgICAgICAgc2VsZi5k
YXRhYmFzZS5maW5kX2NvbW1pdHNfYnlfaWQocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgYnJhbmNo
PSd0cnVuaycsIGNvbW1pdF9pZD02KSwKKyAgICAgICAgICAgICAgICBbc2VsZi5zdm5fcmVwb3Np
dG9yeS5jb21taXQocmVmPTYpXSwKKyAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLmZpbmRf
Y29tbWl0c19ieV9yZWYocmVwb3NpdG9yeV9pZD0nd2Via2l0JywgcmVmPTYpLAogICAgICAgICAg
ICAgKQogCiAgICAgQFdhaXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2Nr
X3JlZGlzPUZha2VTdHJpY3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRl
eHQpCkBAIC0yMDYsNyArMjA2LDcgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRv
Y2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYuYWRkX2FsbF9jb21taXRzX3RvX2RhdGFi
YXNlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydicmFuY2gtYScsICdicmFuY2gt
YicsICdtYWluJ10sIHNlbGYuZGF0YWJhc2UuYnJhbmNoZXMocmVwb3NpdG9yeV9pZD0nc2FmYXJp
JykpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIFsnYnJh
bmNoLWEnLCAnYnJhbmNoLWInLCAndGFncy90YWctMScsICd0YWdzL3RhZy0yJywgJ3RydW5rJ10s
CisgICAgICAgICAgICAgICAgWydicmFuY2gtYScsICdicmFuY2gtYicsICdtYWluJ10sCiAgICAg
ICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5icmFuY2hlcyhyZXBvc2l0b3J5X2lkPSd3ZWJraXQn
KSwKICAgICAgICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydicmFuY2gt
YScsICdicmFuY2gtYiddLCBzZWxmLmRhdGFiYXNlLmJyYW5jaGVzKHJlcG9zaXRvcnlfaWQ9J3Nh
ZmFyaScsIGJyYW5jaD0nYnJhbmNoJykpCkBAIC0yMTksMTIgKzIxOSwxMiBAQCBjbGFzcyBDb21t
aXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2UpOgogICAgICAgICAgICAgc2VsZi5h
ZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2UubmV4dF9jb21taXQoc2VsZi5zdm5f
cmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTQpKSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2
bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksCisgICAgICAgICAgICAgICAgc2VsZi5k
YXRhYmFzZS5uZXh0X2NvbW1pdChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NCkpLAor
ICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSwKICAgICAg
ICAgICAgICkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg
c2VsZi5kYXRhYmFzZS5uZXh0X2NvbW1pdChzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zv
cl9pZChpZD0nYmFlNWQxZTkwOTk5JykpLAotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVw
b3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwKKyAgICAgICAgICAgICAg
ICBzZWxmLmRhdGFiYXNlLm5leHRfY29tbWl0KHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQo
cmVmPSdiYWU1ZDFlOTA5OTknKSksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0
b3J5LmNvbW1pdChyZWY9J2Q4YmNlMjZmYTY1YycpLAogICAgICAgICAgICAgKQogCiAgICAgQFdh
aXRGb3JEb2NrZXJUZXN0Q2FzZS5tb2NrX2lmX25vX2RvY2tlcihtb2NrX3JlZGlzPUZha2VTdHJp
Y3RSZWRpcywgbW9ja19jYXNzYW5kcmE9TW9ja0Nhc3NhbmRyYUNvbnRleHQpCkBAIC0yMzQsMTIg
KzIzNCwxMiBAQCBjbGFzcyBDb21taXRDb250ZXh0VGVzdChXYWl0Rm9yRG9ja2VyVGVzdENhc2Up
OgogICAgICAgICAgICAgc2VsZi5hZGRfYWxsX2NvbW1pdHNfdG9fZGF0YWJhc2UoKQogCiAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9z
aXRvcnkuY29tbWl0X2Zvcl9pZChpZD00KSwKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNl
LnByZXZpb3VzX2NvbW1pdChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9Nikp
LAorICAgICAgICAgICAgICAgIHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj00KSwKKyAg
ICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnByZXZpb3VzX2NvbW1pdChzZWxmLnN2bl9yZXBv
c2l0b3J5LmNvbW1pdChyZWY9NikpLAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0
X2Zvcl9pZChpZD0nYmFlNWQxZTkwOTk5JyksCi0gICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFz
ZS5wcmV2aW91c19jb21taXQoc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9
J2Q4YmNlMjZmYTY1YycpKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnku
Y29tbWl0KHJlZj0nYmFlNWQxZTkwOTk5JyksCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFz
ZS5wcmV2aW91c19jb21taXQoc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2Q4YmNl
MjZmYTY1YycpKSwKICAgICAgICAgICAgICkKIAogICAgIEBXYWl0Rm9yRG9ja2VyVGVzdENhc2Uu
bW9ja19pZl9ub19kb2NrZXIobW9ja19yZWRpcz1GYWtlU3RyaWN0UmVkaXMsIG1vY2tfY2Fzc2Fu
ZHJhPU1vY2tDYXNzYW5kcmFDb250ZXh0KQpAQCAtMjUwLDIyICsyNTAsMjEgQEAgY2xhc3MgQ29t
bWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAgICAgICAgIHNlbGYu
YWRkX2FsbF9jb21taXRzX3RvX2RhdGFiYXNlKCkKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnNpYmxpbmdfY29tbWl0cyhzZWxm
LnN2bl9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksIFsnc2FmYXJpJ10pLAorICAgICAg
ICAgICAgICAgIHNlbGYuZGF0YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3ZuX3JlcG9zaXRv
cnkuY29tbWl0KHJlZj02KSwgWydzYWZhcmknXSksCiAgICAgICAgICAgICAgICAgeydzYWZhcmkn
OiBbCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRfZm9y
X2lkKGlkPSdkOGJjZTI2ZmE2NWMnKSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9y
ZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9J2JhZTVkMWU5MDk5OScpLAotICAgICAgICAgICAg
ICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nMWFiZTI1YjQ0
M2U5JyksCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXRf
Zm9yX2lkKGlkPSdmZmY4M2JiMmQ5MTcnKSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFz
aF9yZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9JzliODMxMWYyNWE3NycpLAotCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2
NWMnKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChy
ZWY9J2JhZTVkMWU5MDk5OScpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9z
aXRvcnkuY29tbWl0KHJlZj0nMWFiZTI1YjQ0M2U5JyksCisgICAgICAgICAgICAgICAgICAgIHNl
bGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdmZmY4M2JiMmQ5MTcnKSwKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9JzliODMxMWYyNWE3
NycpLAogICAgICAgICAgICAgICAgIF19LAogICAgICAgICAgICAgKQogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnNpYmxpbmdfY29t
bWl0cyhzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVj
JyksIFsnd2Via2l0J10pLAotICAgICAgICAgICAgICAgIHsnd2Via2l0JzogW3NlbGYuc3ZuX3Jl
cG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD02KV19LAorICAgICAgICAgICAgICAgIHNlbGYuZGF0
YWJhc2Uuc2libGluZ19jb21taXRzKHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdk
OGJjZTI2ZmE2NWMnKSwgWyd3ZWJraXQnXSksCisgICAgICAgICAgICAgICAgeyd3ZWJraXQnOiBb
c2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTYpXX0sCiAgICAgICAgICAgICApCiAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uu
c2libGluZ19jb21taXRzKHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0xKSwg
WydzYWZhcmknXSksCisgICAgICAgICAgICAgICAgc2VsZi5kYXRhYmFzZS5zaWJsaW5nX2NvbW1p
dHMoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTEpLCBbJ3NhZmFyaSddKSwKICAgICAg
ICAgICAgICAgICB7J3NhZmFyaSc6IFtdfSwKICAgICAgICAgICAgICkKIApAQCAtMjc0LDggKzI3
Myw4IEBAIGNsYXNzIENvbW1pdENvbnRleHRUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAg
ICAgICAgIHdpdGggTW9ja01vZGVsRmFjdG9yeS5zYWZhcmkoKSwgTW9ja01vZGVsRmFjdG9yeS53
ZWJraXQoKToKICAgICAgICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1yZWRpcywgY2Fz
c2FuZHJhPWNhc3NhbmRyYSkKICAgICAgICAgICAgIHV1aWQgPSBDb21taXRDb250ZXh0LnV1aWRf
Zm9yX2NvbW1pdHMoWwotICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21t
aXRfZm9yX2lkKGlkPSdiYWU1ZDFlOTA5OTknKSwKLSAgICAgICAgICAgICAgICBzZWxmLnN2bl9y
ZXBvc2l0b3J5LmNvbW1pdF9mb3JfaWQoaWQ9NiksCisgICAgICAgICAgICAgICAgc2VsZi5zdGFz
aF9yZXBvc2l0b3J5LmNvbW1pdChyZWY9J2JhZTVkMWU5MDk5OScpLAorICAgICAgICAgICAgICAg
IHNlbGYuc3ZuX3JlcG9zaXRvcnkuY29tbWl0KHJlZj02KSwKICAgICAgICAgICAgIF0pCiAgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV1aWQsIDE2MDE2NjgwMDAwMCkKIApAQCAtMjg0LDIw
ICsyODMsMjAgQEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNl
KToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5LnNhZmFyaSgpLCBNb2NrTW9kZWxGYWN0
b3J5LndlYmtpdCgpOgogICAgICAgICAgICAgc2VsZi5pbml0X2RhdGFiYXNlKHJlZGlzPXJlZGlz
LCBjYXNzYW5kcmE9Y2Fzc2FuZHJhKQogICAgICAgICAgICAgYnJhbmNoZXMgPSBzZWxmLmRhdGFi
YXNlLmJyYW5jaF9rZXlzX2Zvcl9jb21taXRzKFsKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNo
X3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD0nZDhiY2UyNmZhNjVjJyksCi0gICAgICAgICAg
ICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpLAorICAgICAgICAg
ICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKSwK
KyAgICAgICAgICAgICAgICBzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1pdChyZWY9NiksCiAgICAg
ICAgICAgICBdKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChicmFuY2hlcywgWydkZWZh
dWx0J10pCiAKICAgICAgICAgICAgIGJyYW5jaGVzID0gc2VsZi5kYXRhYmFzZS5icmFuY2hfa2V5
c19mb3JfY29tbWl0cyhbCi0gICAgICAgICAgICAgICAgc2VsZi5zdGFzaF9yZXBvc2l0b3J5LmNv
bW1pdF9mb3JfaWQoaWQ9JzYyMTY1MmFkZDdmYycpLAotICAgICAgICAgICAgICAgIHNlbGYuc3Zu
X3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChpZD03KSwKKyAgICAgICAgICAgICAgICBzZWxmLnN0
YXNoX3JlcG9zaXRvcnkuY29tbWl0KHJlZj0nNjIxNjUyYWRkN2ZjJyksCisgICAgICAgICAgICAg
ICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXQocmVmPTcpLAogICAgICAgICAgICAgXSkKICAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnJhbmNoZXMsIFsnYnJhbmNoLWEnXSkKIAogICAg
ICAgICAgICAgYnJhbmNoZXMgPSBzZWxmLmRhdGFiYXNlLmJyYW5jaF9rZXlzX2Zvcl9jb21taXRz
KFsKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zvcl9pZChp
ZD0nNzkwNzI1YTZkNzllJyksCi0gICAgICAgICAgICAgICAgc2VsZi5zdm5fcmVwb3NpdG9yeS5j
b21taXRfZm9yX2lkKGlkPTgpLAorICAgICAgICAgICAgICAgIHNlbGYuc3Rhc2hfcmVwb3NpdG9y
eS5jb21taXQocmVmPSc3OTA3MjVhNmQ3OWUnKSwKKyAgICAgICAgICAgICAgICBzZWxmLnN2bl9y
ZXBvc2l0b3J5LmNvbW1pdChyZWY9OCksCiAgICAgICAgICAgICBdKQogICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChicmFuY2hlcywgWydicmFuY2gtYiddKQogCkBAIC0zMDcsOSArMzA2LDkg
QEAgY2xhc3MgQ29tbWl0Q29udGV4dFRlc3QoV2FpdEZvckRvY2tlclRlc3RDYXNlKToKICAgICAg
ICAgICAgIHNlbGYuaW5pdF9kYXRhYmFzZShyZWRpcz1yZWRpcywgY2Fzc2FuZHJhPWNhc3NhbmRy
YSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICAgICAgJ2h0dHBz
Oi8vYml0YnVja2V0LmV4YW1wbGUuY29tL3Byb2plY3RzL1NBRkFSSS9yZXBvcy9zYWZhcmkvY29t
bWl0cy9kOGJjZTI2ZmE2NWM2ZmM4ZjM5YzE3OTI3YWJiNzdmNjlmYWI4MmZjJywKLSAgICAgICAg
ICAgICAgICBzZWxmLmRhdGFiYXNlLnVybChzZWxmLnN0YXNoX3JlcG9zaXRvcnkuY29tbWl0X2Zv
cl9pZChpZD0nZDhiY2UyNmZhNjVjJykpLAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YWJhc2Uu
dXJsKHNlbGYuc3Rhc2hfcmVwb3NpdG9yeS5jb21taXQocmVmPSdkOGJjZTI2ZmE2NWMnKSksCiAg
ICAgICAgICAgICApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg
ICAgICdodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yNicsCi0gICAgICAgICAgICAgICAgc2Vs
Zi5kYXRhYmFzZS51cmwoc2VsZi5zdm5fcmVwb3NpdG9yeS5jb21taXRfZm9yX2lkKGlkPTYpKSwK
KyAgICAgICAgICAgICAgICAnaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvNEBtYWluJywKKyAg
ICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlLnVybChzZWxmLnN2bl9yZXBvc2l0b3J5LmNvbW1p
dChyZWY9NikpLAogICAgICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvZmFpbHVyZV9jb250ZXh0LnB5IGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvZmFp
bHVyZV9jb250ZXh0LnB5CmluZGV4IDFkZDFjYzM1ZDk1YmJiZmE3OGM5Y2U0OGFiN2U4MDhlMzcx
MDlkNTkuLjMwYTY0NzA3YjhhODM0MjYzNDJhNTc2MjRmNzg5NDljMjVmZTU3OTggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVs
L2ZhaWx1cmVfY29udGV4dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9tb2RlbC9mYWlsdXJlX2NvbnRleHQucHkKQEAgLTEsNCArMSw0IEBA
Ci0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjEsMTggKzIxLDE2IEBACiAjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKIGltcG9ydCBjYWxlbmRhcgotaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNv
bgogaW1wb3J0IHRpbWUKIAogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5lIGltcG9ydCBjb2x1bW5z
Ci1mcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUubW9kZWxzIGltcG9ydCBNb2RlbAogZnJvbSBkYXRl
dGltZSBpbXBvcnQgZGF0ZXRpbWUKLWZyb20gcmVzdWx0c2RicHkuY29udHJvbGxlci5jb21taXQg
aW1wb3J0IENvbW1pdAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBv
cnQgQ29tbWl0Q29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2Nv
bnRleHQgaW1wb3J0IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5t
b2RlbC51cGxvYWRfY29udGV4dCBpbXBvcnQgVXBsb2FkQ2FsbGJhY2tDb250ZXh0CiBmcm9tIHJl
c3VsdHNkYnB5Lm1vZGVsLnRlc3RfY29udGV4dCBpbXBvcnQgRXhwZWN0YXRpb25zCitmcm9tIHdl
YmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBjbGFzcyBGYWlsdXJlQ29udGV4dChVcGxvYWRD
YWxsYmFja0NvbnRleHQpOgpAQCAtOTUsNyArOTMsNyBAQCBjbGFzcyBGYWlsdXJlQ29udGV4dChV
cGxvYWRDYWxsYmFja0NvbnRleHQpOgogCiAgICAgICAgICAgICB3aXRoIHNlbGY6CiAgICAgICAg
ICAgICAgICAgdXVpZCA9IHNlbGYuY29tbWl0X2NvbnRleHQudXVpZF9mb3JfY29tbWl0cyhjb21t
aXRzKQotICAgICAgICAgICAgICAgIHR0bCA9IGludCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1Q
X1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlm
IHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lCisgICAgICAgICAgICAgICAgdHRsID0gaW50KCh1
dWlkIC8vIENvbW1pdC5VVUlEX01VTFRJUExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUu
dGltZSgpKSBpZiBzZWxmLnR0bF9zZWNvbmRzIGVsc2UgTm9uZQogCiAgICAgICAgICAgICAgICAg
ZGVmIGNhbGxiYWNrKHRlc3QsIHJlc3VsdCwgZmFpbHVyZXMsIHVuZXhwZWN0ZWQpOgogICAgICAg
ICAgICAgICAgICAgICBmYWlsZWRfcmVzdWx0ID0gRXhwZWN0YXRpb25zLnN0cmluZ190b19zdGF0
ZV9pZHMocmVzdWx0LmdldCgnYWN0dWFsJywgJycpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvbW9ja19tb2RlbF9mYWN0
b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
bW9kZWwvbW9ja19tb2RlbF9mYWN0b3J5LnB5CmluZGV4IDEwNDQzNGEzNTk4MGVjY2VkY2FlNmJh
ZTE4ZWVhMTc0YTI1OTZkNzkuLmU4ODY0ODBkMjAzZjY0YjYxYzA2N2MyZjI2ZWNkMGY5M2E3ODUz
OGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L21vZGVsL21vY2tfbW9kZWxfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9tb2NrX21vZGVsX2ZhY3Rvcnku
cHkKQEAgLTIxLDYgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogaW1wb3J0IGJhc2U2NAoraW1w
b3J0IGNvbnRleHRsaWIKIGltcG9ydCBpbwogaW1wb3J0IHRpbWUKIApAQCAtMjksNyArMzAsNyBA
QCBmcm9tIHJlc3VsdHNkYnB5Lm1vZGVsLmNvbmZpZ3VyYXRpb25fY29udGV4dF91bml0dGVzdCBp
bXBvcnQgQ29uZmlndXJhdGlvbkNvbnRleAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2RlbCBp
bXBvcnQgTW9kZWwKIGZyb20gcmVzdWx0c2RicHkubW9kZWwucmVwb3NpdG9yeSBpbXBvcnQgU3Rh
c2hSZXBvc2l0b3J5LCBXZWJLaXRSZXBvc2l0b3J5CiAKLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0
IG1vY2tzCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBtb2NrcywgQ29tbWl0CiAKIAogY2xhc3Mg
TW9ja01vZGVsRmFjdG9yeShvYmplY3QpOgpAQCAtNjUsMTYgKzY2LDQ0IEBAIGNsYXNzIE1vY2tN
b2RlbEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgcmV0dXJuIG1vY2tzLnJlbW90ZS5CaXRCdWNr
ZXQocmVtb3RlPSdiaXRidWNrZXQuZXhhbXBsZS5jb20vcHJvamVjdHMvU0FGQVJJL3JlcG9zL3Nh
ZmFyaScpCiAKICAgICBAY2xhc3NtZXRob2QKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdl
cgogICAgIGRlZiB3ZWJraXQoY2xzKToKLSAgICAgICAgcmV0dXJuIG1vY2tzLnJlbW90ZS5Tdm4o
cmVtb3RlPSdzdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdCcpCisgICAgICAgIHN2biA9
IG1vY2tzLnJlbW90ZS5Tdm4ocmVtb3RlPSdzdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtp
dCcpCisgICAgICAgIGdpdGh1YiA9IG1vY2tzLnJlbW90ZS5HaXRIdWIocmVtb3RlPSdnaXRodWIu
Y29tL1dlYktpdC9XZWJLaXQnLCBnaXRfc3ZuPVRydWUpCisgICAgICAgIGdpdGh1Yi5jb21taXRz
ID0ge30KKworICAgICAgICBmb3IgYnJhbmNoLCBjb21taXRzIGluIHN2bi5jb21taXRzLml0ZW1z
KCk6CisgICAgICAgICAgICBpZiAndGFnJyBpbiBicmFuY2g6CisgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgIGlmIGJyYW5jaCA9PSAndHJ1bmsnOgorICAgICAgICAgICAgICAg
IGJyYW5jaCA9ICdtYWluJworICAgICAgICAgICAgZ2l0aHViLmNvbW1pdHNbYnJhbmNoXSA9IFtd
CisKKyAgICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAgICAgICAgICAgICAgICBn
aXRodWIuY29tbWl0c1ticmFuY2hdLmFwcGVuZChDb21taXQoCisgICAgICAgICAgICAgICAgICAg
IHJlcG9zaXRvcnlfaWQ9Y29tbWl0LnJlcG9zaXRvcnlfaWQsCisgICAgICAgICAgICAgICAgICAg
IGJyYW5jaD1icmFuY2gsCisgICAgICAgICAgICAgICAgICAgIGF1dGhvcj1jb21taXQuYXV0aG9y
LAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlLAorICAgICAgICAg
ICAgICAgICAgICB0aW1lc3RhbXA9Y29tbWl0LnRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAg
ICAgb3JkZXI9Y29tbWl0Lm9yZGVyLAorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyPWNv
bW1pdC5pZGVudGlmaWVyLAorICAgICAgICAgICAgICAgICAgICBicmFuY2hfcG9pbnQ9Y29tbWl0
LmJyYW5jaF9wb2ludCwKKyAgICAgICAgICAgICAgICAgICAgcmV2aXNpb249Y29tbWl0LnJldmlz
aW9uLAorICAgICAgICAgICAgICAgICAgICBoYXNoPWNvbW1pdC5oYXNoLAorICAgICAgICAgICAg
ICAgICkpCisKKyAgICAgICAgd2l0aCBzdm4sIGdpdGh1YjoKKyAgICAgICAgICAgIHlpZWxkIGdp
dGh1YgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNyZWF0ZShjbHMsIHJlZGlzLCBjYXNz
YW5kcmEsIGFzeW5jX3Byb2Nlc3Npbmc9RmFsc2UpOgogICAgICAgICBvbGRlc3RfY29tbWl0ID0g
dGltZS50aW1lKCkKLSAgICAgICAgZm9yIHJlcG8gaW4gW2Nscy5zYWZhcmkoKSwgY2xzLndlYmtp
dCgpXToKLSAgICAgICAgICAgIGZvciBjb21taXRzIGluIHJlcG8uY29tbWl0cy52YWx1ZXMoKToK
LSAgICAgICAgICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6Ci0gICAgICAgICAgICAgICAg
ICAgIG9sZGVzdF9jb21taXQgPSBtaW4ob2xkZXN0X2NvbW1pdCwgY29tbWl0LnRpbWVzdGFtcCkK
KyAgICAgICAgd2l0aCBjbHMuc2FmYXJpKCkgYXMgc2FmYXJpLCBjbHMud2Via2l0KCkgYXMgd2Vi
a2l0OgorICAgICAgICAgICAgZm9yIHJlcG8gaW4gW3NhZmFyaSwgd2Via2l0XToKKyAgICAgICAg
ICAgICAgICBmb3IgY29tbWl0cyBpbiByZXBvLmNvbW1pdHMudmFsdWVzKCk6CisgICAgICAgICAg
ICAgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9sZGVzdF9jb21taXQgPSBtaW4ob2xkZXN0X2NvbW1pdCwgY29tbWl0LnRpbWVzdGFtcCkKIAog
ICAgICAgICBtb2RlbCA9IE1vZGVsKAogICAgICAgICAgICAgcmVkaXM9cmVkaXMsCkBAIC05Myw3
ICsxMjIsNyBAQCBjbGFzcyBNb2NrTW9kZWxGYWN0b3J5KG9iamVjdCk6CiAgICAgICAgICAgICAg
ICAgICAgIGZvciBicmFuY2gsIGNvbW1pdHMgaW4gcmVwb3NpdG9yeS5jb21taXRzLml0ZW1zKCk6
CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgY29tbWl0IGluIGNvbW1pdHM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW9kZWwuY29tbWl0X2NvbnRleHQucmVnaXN0ZXJfcGFydGlh
bF9jb21taXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgaGFzaD1jb21t
aXQuaGFzaCwgcmV2aXNpb249Y29tbWl0LnJldmlzaW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrZXksIGhhc2g9Y29tbWl0Lmhhc2gsIHJldmlzaW9uPWNvbW1pdC5yZXZpc2lv
biwgZmFzdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgIHJl
dHVybiBtb2RlbAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRz
ZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVwb3NpdG9yeS5weQppbmRleCBm
N2U0MDA4MzBmZGYzMDc1ZGQ3MGNjMjgxZTE5NDE4ODkxZWEwNjRkLi43ZTQxNzk0NTNiMjQwZTA3
YWNiN2RkOTcxYzA1ZWExZjFlY2VmODUzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJh
cmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9z
aXRvcnkucHkKQEAgLTIwLDggKzIwLDcgQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29t
bWl0Ci1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCByZW1vdGUKK2Zyb20gd2Via2l0c2NtcHkgaW1w
b3J0IHJlbW90ZSwgQ29tbWl0CiAKIAogY2xhc3MgUmVwb3NpdG9yeShvYmplY3QpOgpAQCAtMzAs
MTAgKzI5LDcgQEAgY2xhc3MgUmVwb3NpdG9yeShvYmplY3QpOgogICAgICAgICBzZWxmLmtleSA9
IGtleQogICAgICAgICBzZWxmLmRlZmF1bHRfYnJhbmNoID0gZGVmYXVsdF9icmFuY2ggb3IgJ21h
aW4nCiAKLSAgICBkZWYgY29tbWl0X2Zvcl9pZChzZWxmLCBpZCk6Ci0gICAgICAgIHJhaXNlIE5v
dEltcGxlbWVudGVkRXJyb3IoKQotCi0gICAgZGVmIGNvbW1pdChzZWxmLCByZWY9Tm9uZSwgcmV2
aXNpb249Tm9uZSwgaGFzaD1Ob25lLCBpZGVudGlmaWVyPU5vbmUsIGZhc3Q9VHJ1ZSk6CisgICAg
ZGVmIGNvbW1pdChzZWxmLCByZWY9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaGFzaD1Ob25lLCBpZGVu
dGlmaWVyPU5vbmUsIGZhc3Q9RmFsc2UpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yKCkKIAogICAgIGRlZiB1cmxfZm9yX2NvbW1pdChzZWxmLCBjb21taXQpOgpAQCAtNTIsMTkg
KzQ4LDcgQEAgY2xhc3MgU3Rhc2hSZXBvc2l0b3J5KFJlcG9zaXRvcnkpOgogICAgICAgICAgICAg
ZGVmYXVsdF9icmFuY2g9ZGVmYXVsdF9icmFuY2ggb3Igc2VsZi5yZW1vdGUuZGVmYXVsdF9icmFu
Y2gsCiAgICAgICAgICkKIAotICAgIGRlZiBjb21taXRfZm9yX2lkKHNlbGYsIGlkKToKLSAgICAg
ICAgY29tbWl0ID0gc2VsZi5yZW1vdGUuY29tbWl0KGhhc2g9aWQsIGluY2x1ZGVfaWRlbnRpZmll
cj1GYWxzZSkKLSAgICAgICAgcmV0dXJuIENvbW1pdCgKLSAgICAgICAgICAgIHJlcG9zaXRvcnlf
aWQ9c2VsZi5rZXksCi0gICAgICAgICAgICBpZD1jb21taXQuaGFzaCwKLSAgICAgICAgICAgIGJy
YW5jaD1jb21taXQuYnJhbmNoLAotICAgICAgICAgICAgdGltZXN0YW1wPWNvbW1pdC50aW1lc3Rh
bXAsCi0gICAgICAgICAgICBvcmRlcj1jb21taXQub3JkZXIsCi0gICAgICAgICAgICBjb21taXR0
ZXI9Y29tbWl0LmF1dGhvci5lbWFpbCwKLSAgICAgICAgICAgIG1lc3NhZ2U9Y29tbWl0Lm1lc3Nh
Z2UsCi0gICAgICAgICkKLQotICAgIGRlZiBjb21taXQoc2VsZiwgcmVmPU5vbmUsIHJldmlzaW9u
PU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRpZmllcj1Ob25lLCBmYXN0PVRydWUpOgorICAgIGRlZiBj
b21taXQoc2VsZiwgcmVmPU5vbmUsIHJldmlzaW9uPU5vbmUsIGhhc2g9Tm9uZSwgaWRlbnRpZmll
cj1Ob25lLCBmYXN0PUZhbHNlKToKICAgICAgICAgaWYgaWRlbnRpZmllcjoKICAgICAgICAgICAg
IGZhc3QgPSBGYWxzZQogICAgICAgICBpZiByZWY6CkBAIC03Miw3ICs1NiwxMiBAQCBjbGFzcyBT
dGFzaFJlcG9zaXRvcnkoUmVwb3NpdG9yeSk6CiAgICAgICAgIHJldHVybiBzZWxmLnJlbW90ZS5j
b21taXQocmV2aXNpb249cmV2aXNpb24sIGhhc2g9aGFzaCwgaWRlbnRpZmllcj1pZGVudGlmaWVy
LCBpbmNsdWRlX2lkZW50aWZpZXI9bm90IGZhc3QpCiAKICAgICBkZWYgdXJsX2Zvcl9jb21taXQo
c2VsZiwgY29tbWl0KToKLSAgICAgICAgcmV0dXJuIGYne3NlbGYucmVtb3RlLnVybH0vY29tbWl0
cy97Y29tbWl0fScKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgor
ICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290
IHt0eXBlKGNvbW1pdCl9JykKKworICAgICAgICBpZiBjb21taXQuaWRlbnRpZmllciBvciBjb21t
aXQuaGFzaDoKKyAgICAgICAgICAgIHJldHVybiBmJ3tzZWxmLnJlbW90ZS51cmx9L2NvbW1pdHMv
e2NvbW1pdC5oYXNofScKKyAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiByZXByZXNlbnRh
dGlvbnMoc2VsZik6CiAgICAgICAgIHJldHVybiBbJ2hhc2gnLCAnaWRlbnRpZmllciddCkBAIC04
MSwzNSArNzAsNDcgQEAgY2xhc3MgU3Rhc2hSZXBvc2l0b3J5KFJlcG9zaXRvcnkpOgogY2xhc3Mg
V2ViS2l0UmVwb3NpdG9yeShSZXBvc2l0b3J5KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
LSAgICAgICAgc2VsZi5yZW1vdGUgPSByZW1vdGUuU3ZuKCdodHRwczovL3N2bi53ZWJraXQub3Jn
L3JlcG9zaXRvcnkvd2Via2l0JykKKyAgICAgICAgc2VsZi5zdm4gPSByZW1vdGUuU3ZuKCdodHRw
czovL3N2bi53ZWJraXQub3JnL3JlcG9zaXRvcnkvd2Via2l0JykKKyAgICAgICAgc2VsZi5naXRo
dWIgPSByZW1vdGUuR2l0SHViKCdodHRwczovL2dpdGh1Yi5jb20vV2ViS2l0L1dlYktpdCcpCiAg
ICAgICAgIHN1cGVyKFdlYktpdFJlcG9zaXRvcnksIHNlbGYpLl9faW5pdF9fKAogICAgICAgICAg
ICAga2V5PSd3ZWJraXQnLAotICAgICAgICAgICAgZGVmYXVsdF9icmFuY2g9c2VsZi5yZW1vdGUu
ZGVmYXVsdF9icmFuY2gsCi0gICAgICAgICkKLQotICAgIGRlZiBjb21taXRfZm9yX2lkKHNlbGYs
IGlkKToKLSAgICAgICAgY29tbWl0ID0gc2VsZi5yZW1vdGUuY29tbWl0KHJldmlzaW9uPWlkLCBp
bmNsdWRlX2lkZW50aWZpZXI9RmFsc2UpCi0gICAgICAgIHJldHVybiBDb21taXQoCi0gICAgICAg
ICAgICByZXBvc2l0b3J5X2lkPXNlbGYua2V5LAotICAgICAgICAgICAgaWQ9Y29tbWl0LnJldmlz
aW9uLAotICAgICAgICAgICAgYnJhbmNoPWNvbW1pdC5icmFuY2gsCi0gICAgICAgICAgICB0aW1l
c3RhbXA9Y29tbWl0LnRpbWVzdGFtcCwKLSAgICAgICAgICAgIG9yZGVyPWNvbW1pdC5vcmRlciwK
LSAgICAgICAgICAgIGNvbW1pdHRlcj1jb21taXQuYXV0aG9yLmVtYWlsLAotICAgICAgICAgICAg
bWVzc2FnZT1jb21taXQubWVzc2FnZSwKKyAgICAgICAgICAgIGRlZmF1bHRfYnJhbmNoPXNlbGYu
Z2l0aHViLmRlZmF1bHRfYnJhbmNoLAogICAgICAgICApCiAKLSAgICBkZWYgY29tbWl0KHNlbGYs
IHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBoYXNoPU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFz
dD1UcnVlKToKKyAgICBkZWYgY29tbWl0KHNlbGYsIHJlZj1Ob25lLCByZXZpc2lvbj1Ob25lLCBo
YXNoPU5vbmUsIGlkZW50aWZpZXI9Tm9uZSwgZmFzdD1GYWxzZSk6CiAgICAgICAgIGlmIGlkZW50
aWZpZXI6CiAgICAgICAgICAgICBmYXN0ID0gRmFsc2UKKwogICAgICAgICBpZiByZWY6CiAgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKHJlZiwgaW50KSBvciByZWYuaXNkaWdpdCgpOgotICAgICAg
ICAgICAgICAgIHJlZiA9ICdye30nLmZvcm1hdChyZWYpCi0gICAgICAgICAgICByZXR1cm4gc2Vs
Zi5yZW1vdGUuZmluZChyZWYsIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCkKLSAgICAgICAg
cmV0dXJuIHNlbGYucmVtb3RlLmNvbW1pdChyZXZpc2lvbj1yZXZpc2lvbiwgaGFzaD1oYXNoLCBp
ZGVudGlmaWVyPWlkZW50aWZpZXIsIGluY2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCkKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSBzZWxmLnN2bi5maW5kKCdye30nLmZvcm1hdChyZWYpLCBpbmNs
dWRlX2lkZW50aWZpZXI9bm90IGZhc3QpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IHNlbGYuZ2l0aHViLmZpbmQocmVmLCBpbmNsdWRlX2lkZW50aWZpZXI9bm90
IGZhc3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgPSAoc2VsZi5zdm4gaWYg
cmV2aXNpb24gYW5kIG5vdCBoYXNoIGVsc2Ugc2VsZi5naXRodWIpLmNvbW1pdCgKKyAgICAgICAg
ICAgICAgICByZXZpc2lvbj1Ob25lIGlmIGhhc2ggZWxzZSByZXZpc2lvbiwKKyAgICAgICAgICAg
ICAgICBoYXNoPWhhc2gsCisgICAgICAgICAgICAgICAgaWRlbnRpZmllcj1Ob25lIGlmIG5vdCBo
YXNoIGFuZCBub3QgcmV2aXNpb24gZWxzZSBpZGVudGlmaWVyLAorICAgICAgICAgICAgICAgIGlu
Y2x1ZGVfaWRlbnRpZmllcj1ub3QgZmFzdCwKKyAgICAgICAgICAgICkKKworICAgICAgICBpZiBu
b3QgZmFzdCBhbmQgcmVzdWx0Lmhhc2ggYW5kIHJlc3VsdC5pZGVudGlmaWVyOgorICAgICAgICAg
ICAgcmVzdWx0ID0gc2VsZi5naXRodWIuY29tbWl0KGlkZW50aWZpZXI9c3RyKHJlc3VsdCkpCisK
KyAgICAgICAgaWYgcmVzdWx0LmJyYW5jaCBpbiBzZWxmLnN2bi5ERUZBVUxUX0JSQU5DSEVTOgor
ICAgICAgICAgICAgcmVzdWx0LmJyYW5jaCA9IHNlbGYuZGVmYXVsdF9icmFuY2gKKyAgICAgICAg
cmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIHVybF9mb3JfY29tbWl0KHNlbGYsIGNvbW1pdCk6Ci0g
ICAgICAgIHJldHVybiBmJ2h0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3J7Y29tbWl0fScKKyAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBDb21taXQpOgorICAgICAgICAgICAgcmFp
c2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQgdHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9
JykKKworICAgICAgICBpZiBjb21taXQuaWRlbnRpZmllciBvciBjb21taXQuaGFzaDoKKyAgICAg
ICAgICAgIHJldHVybiBmJ2h0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3tjb21taXR9JworICAg
ICAgICBpZiBjb21taXQucmV2aXNpb246CisgICAgICAgICAgICByZXR1cm4gZidodHRwczovL2Nv
bW1pdHMud2Via2l0Lm9yZy9ye2NvbW1pdC5yZXZpc2lvbn0nCisgICAgICAgIHJldHVybiBOb25l
CisKIAogICAgIGRlZiByZXByZXNlbnRhdGlvbnMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbJ2lk
ZW50aWZpZXInLCAncmV2aXNpb24nXQorICAgICAgICByZXR1cm4gWydpZGVudGlmaWVyJywgJ2hh
c2gnLCAncmV2aXNpb24nXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvcmVwb3NpdG9yeV91bml0dGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3JlcG9zaXRv
cnlfdW5pdHRlc3QucHkKaW5kZXggN2NmNmM3YzVmYmQzMDNkZDZkZDM3OWQzNDRmYWYyMGFkYTgy
ZWVjNi4uZWQzYzdkNmE4NDVmMWYyNjRlMTMzNzVhMjAxYmYxNmI4NWRiNjE0MyAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwv
cmVwb3NpdG9yeV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9yZXBvc2l0b3J5X3VuaXR0ZXN0LnB5CkBAIC0zNCw3
ICszNCw3IEBAIGNsYXNzIFJlcG9zaXRvcnlUZXN0KFdhaXRGb3JEb2NrZXJUZXN0Q2FzZSk6CiAg
ICAgICAgICAgICBjb21taXQgPSBzdm5fcmVwby5jb21taXQocmV2aXNpb249NikKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LnV1aWQsIDE2MDE2Mzk5MDAwMCkKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0Lm1lc3NhZ2UsICc2dGggY29tbWl0JykKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJyYW5jaCwgJ3RydW5rJykKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWl0LmJyYW5jaCwgJ21haW4nKQogCiAgICAgZGVmIHRl
c3RfcmVmX3N2bihzZWxmKToKICAgICAgICAgd2l0aCBNb2NrTW9kZWxGYWN0b3J5LndlYmtpdCgp
OgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jl
c3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3N1aXRlX2NvbnRleHQucHkKaW5kZXggMzVlNmE3
N2VkNTdjNGNmNjM5NjU1MWYwOWNjMGRhMTNmZTEyNzg4My4uNzhlOTAzZWNiODAxM2Y1YzVlMWJl
NWQ1ZjA3OWZjYzU4ZmM3MGVjNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvc3VpdGVfY29udGV4dC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC9zdWl0ZV9j
b250ZXh0LnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI2LDExICsyNiwxMSBAQCBpbXBvcnQgdGltZQogCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUg
aW1wb3J0IGNvbHVtbnMKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHJlc3Vs
dHNkYnB5LmNvbnRyb2xsZXIuY29tbWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHku
bW9kZWwuY29tbWl0X2NvbnRleHQgaW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2Ri
cHkubW9kZWwuY29uZmlndXJhdGlvbl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRCeUNvbmZpZ3Vy
YXRpb24KIGZyb20gcmVzdWx0c2RicHkubW9kZWwudGVzdF9jb250ZXh0IGltcG9ydCBFeHBlY3Rh
dGlvbnMKIGZyb20gcmVzdWx0c2RicHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1wb3J0IFVwbG9h
ZENhbGxiYWNrQ29udGV4dAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xh
c3MgU3VpdGVDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CkBAIC0xMTYsNyArMTE2LDcg
QEAgY2xhc3MgU3VpdGVDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6CiAgICAgICAgICAg
ICBFeHBlY3RhdGlvbnMuaXRlcmF0ZV90aHJvdWdoX25lc3RlZF9yZXN1bHRzKHRlc3RfcmVzdWx0
cy5nZXQoJ3Jlc3VsdHMnKSwgY2FsbGJhY2spCiAKICAgICAgICAgICAgIHV1aWQgPSBzZWxmLmNv
bW1pdF9jb250ZXh0LnV1aWRfZm9yX2NvbW1pdHMoY29tbWl0cykKLSAgICAgICAgICAgIHR0bCA9
IGludCgodXVpZCAvLyBDb21taXQuVElNRVNUQU1QX1RPX1VVSURfTVVMVElQTElFUikgKyBzZWxm
LnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25l
CisgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikg
KyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxz
ZSBOb25lCiAKICAgICAgICAgICAgIHdpdGggc2VsZiwgc2VsZi5jYXNzYW5kcmEuYmF0Y2hfcXVl
cnlfY29udGV4dCgpOgogICAgICAgICAgICAgICAgIGZvciBicmFuY2ggaW4gc2VsZi5jb21taXRf
Y29udGV4dC5icmFuY2hfa2V5c19mb3JfY29tbWl0cyhjb21taXRzKToKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L21vZGVsL3Rlc3Rf
Y29udGV4dC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L21vZGVsL3Rlc3RfY29udGV4dC5weQppbmRleCA4NjI5ZmZlNjFhNzVkNmUxZjk5MDU4MDI1
OTM2ZmRiZWNkYzEyNjk5Li5jMmEwMWZmMmMzMWRhMDM5YTRlZmYzMTJhZDFjYzY1ZDk1ZTBlMGVm
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC90ZXN0X2NvbnRleHQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdGVzdF9jb250ZXh0LnB5CkBAIC0yOCwxMCAr
MjgsMTAgQEAgaW1wb3J0IHRpbWUKIGZyb20gY2Fzc2FuZHJhLmNxbGVuZ2luZSBpbXBvcnQgY29s
dW1ucwogZnJvbSBjYXNzYW5kcmEuY3FsZW5naW5lLm1vZGVscyBpbXBvcnQgTW9kZWwKIGZyb20g
ZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi1mcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29t
bWl0IGltcG9ydCBDb21taXQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29tbWl0X2NvbnRleHQg
aW1wb3J0IENvbW1pdENvbnRleHQKIGZyb20gcmVzdWx0c2RicHkubW9kZWwuY29uZmlndXJhdGlv
bl9jb250ZXh0IGltcG9ydCBDbHVzdGVyZWRCeUNvbmZpZ3VyYXRpb24KIGZyb20gcmVzdWx0c2Ri
cHkubW9kZWwudXBsb2FkX2NvbnRleHQgaW1wb3J0IFVwbG9hZENhbGxiYWNrQ29udGV4dAorZnJv
bSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgRXhwZWN0YXRpb25zOgpAQCAt
MTU5LDcgKzE1OSw3IEBAIGNsYXNzIFRlc3RDb250ZXh0KFVwbG9hZENhbGxiYWNrQ29udGV4dCk6
CiAKICAgICAgICAgICAgIHdpdGggc2VsZjoKICAgICAgICAgICAgICAgICB1dWlkID0gc2VsZi5j
b21taXRfY29udGV4dC51dWlkX2Zvcl9jb21taXRzKGNvbW1pdHMpCi0gICAgICAgICAgICAgICAg
dHRsID0gaW50KCh1dWlkIC8vIENvbW1pdC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSKSAr
IHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNl
IE5vbmUKKyAgICAgICAgICAgICAgICB0dGwgPSBpbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVM
VElQTElFUikgKyBzZWxmLnR0bF9zZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3Nl
Y29uZHMgZWxzZSBOb25lCiAKICAgICAgICAgICAgICAgICBkZWYgY2FsbGJhY2sodGVzdCwgcmVz
dWx0LCBicmFuY2gpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmNhc3NhbmRyYS5pbnNlcnRf
cm93KHNlbGYuVGVzdE5hbWVCeVN1aXRlLl9fdGFibGVfbmFtZV9fLCBzdWl0ZT1zdWl0ZSwgdGVz
dD10ZXN0LCB0dGw9dHRsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVz
dWx0c2RicHkvcmVzdWx0c2RicHkvbW9kZWwvdXBsb2FkX2NvbnRleHQucHkgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29udGV4
dC5weQppbmRleCBhOGE1Y2MxY2U5Mjg5MDMyYTJiYWRmMGI0N2Y0NWRkZmUyZTI5YjBiLi5hNTg5
MmZkYzM4NmEyNWY1MWUxNmI5ZjM5N2ZiNzYwZWQ0OWYxNDQ1IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9tb2RlbC91cGxvYWRfY29u
dGV4dC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRz
ZGJweS9tb2RlbC91cGxvYWRfY29udGV4dC5weQpAQCAtMjksMTIgKzI5LDExIEBAIGltcG9ydCB6
aXBmaWxlCiBmcm9tIGNhc3NhbmRyYS5jcWxlbmdpbmUgaW1wb3J0IGNvbHVtbnMKIGZyb20gY29s
bGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGlt
ZQotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9t
IHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmlndXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlv
bgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb21taXRfY29udGV4dCBpbXBvcnQgQ29tbWl0Q29u
dGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25maWd1cmF0aW9uX2NvbnRleHQgaW1wb3J0
IENsdXN0ZXJlZEJ5Q29uZmlndXJhdGlvbgogCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21t
aXQgYXMgU2NtQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBDb21taXQKIAogCiBjbGFz
cyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CkBAIC02Myw3ICs2Miw3IEBAIGNsYXNzIFVwbG9hZENv
bnRleHQob2JqZWN0KToKIAogICAgICAgICBkZWYgdW5wYWNrKHNlbGYpOgogICAgICAgICAgICAg
cmV0dXJuIGRpY3QoCi0gICAgICAgICAgICAgICAgY29tbWl0cz1bU2NtQ29tbWl0LmZyb21fanNv
bihlbGVtZW50KSBmb3IgZWxlbWVudCBpbiBqc29uLmxvYWRzKFVwbG9hZENvbnRleHQuZnJvbV96
aXAoYnl0ZWFycmF5KHNlbGYuY29tbWl0cykpKV0sCisgICAgICAgICAgICAgICAgY29tbWl0cz1b
Q29tbWl0LmZyb21fanNvbihlbGVtZW50KSBmb3IgZWxlbWVudCBpbiBqc29uLmxvYWRzKFVwbG9h
ZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYuY29tbWl0cykpKV0sCiAgICAgICAgICAg
ICAgICAgc2RrPU5vbmUgaWYgc2VsZi5zZGsgPT0gJz8nIGVsc2Ugc2VsZi5zZGssCiAgICAgICAg
ICAgICAgICAgdGVzdF9yZXN1bHRzPWpzb24ubG9hZHMoVXBsb2FkQ29udGV4dC5mcm9tX3ppcChi
eXRlYXJyYXkoc2VsZi50ZXN0X3Jlc3VsdHMpKSksCiAgICAgICAgICAgICAgICAgdGltZXN0YW1w
PWNhbGVuZGFyLnRpbWVnbShzZWxmLnRpbWVfdXBsb2FkZWQudGltZXR1cGxlKCkpLApAQCAtODMs
NyArODIsNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CiAKICAgICAgICAgZGVmIHVu
cGFjayhzZWxmKToKICAgICAgICAgICAgIHJldHVybiBkaWN0KAotICAgICAgICAgICAgICAgIGNv
bW1pdHM9W1NjbUNvbW1pdC5mcm9tX2pzb24oZWxlbWVudCkgZm9yIGVsZW1lbnQgaW4ganNvbi5s
b2FkcyhVcGxvYWRDb250ZXh0LmZyb21femlwKGJ5dGVhcnJheShzZWxmLmNvbW1pdHMpKSldLAor
ICAgICAgICAgICAgICAgIGNvbW1pdHM9W0NvbW1pdC5mcm9tX2pzb24oZWxlbWVudCkgZm9yIGVs
ZW1lbnQgaW4ganNvbi5sb2FkcyhVcGxvYWRDb250ZXh0LmZyb21femlwKGJ5dGVhcnJheShzZWxm
LmNvbW1pdHMpKSldLAogICAgICAgICAgICAgICAgIHNkaz1Ob25lIGlmIHNlbGYuc2RrID09ICc/
JyBlbHNlIHNlbGYuc2RrLAogICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cz1qc29uLmxvYWRz
KFVwbG9hZENvbnRleHQuZnJvbV96aXAoYnl0ZWFycmF5KHNlbGYudGVzdF9yZXN1bHRzKSkpLAog
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcD1jYWxlbmRhci50aW1lZ20oc2VsZi50aW1lX3VwbG9h
ZGVkLnRpbWV0dXBsZSgpKSwKQEAgLTE4MSw3ICsxODAsNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMocmF3X2RhdGEpCiAg
ICAgICAgICAgICAgICAgc2VsZi5zeW5jaHJvbm91c2x5X3Byb2Nlc3NfdGVzdF9yZXN1bHRzKAog
ICAgICAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uPUNvbmZpZ3VyYXRpb24uZnJvbV9qc29u
KGRhdGFbJ2NvbmZpZ3VyYXRpb24nXSksCi0gICAgICAgICAgICAgICAgICAgIGNvbW1pdHM9W1Nj
bUNvbW1pdC5mcm9tX2pzb24oY29tbWl0X2pzb24pIGZvciBjb21taXRfanNvbiBpbiBkYXRhWydj
b21taXRzJ11dLAorICAgICAgICAgICAgICAgICAgICBjb21taXRzPVtDb21taXQuZnJvbV9qc29u
KGNvbW1pdF9qc29uKSBmb3IgY29tbWl0X2pzb24gaW4gZGF0YVsnY29tbWl0cyddXSwKICAgICAg
ICAgICAgICAgICAgICAgc3VpdGU9ZGF0YVsnc3VpdGUnXSwKICAgICAgICAgICAgICAgICAgICAg
dGltZXN0YW1wPWRhdGFbJ3RpbWVzdGFtcCddLAogICAgICAgICAgICAgICAgICAgICB0ZXN0X3Jl
c3VsdHM9ZGF0YVsndGVzdF9yZXN1bHRzJ10sCkBAIC0yNDMsNyArMjQyLDcgQEAgY2xhc3MgVXBs
b2FkQ29udGV4dChvYmplY3QpOgogICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzdWl0ZSwgc3Ry
KToKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihmJ0V4cGVjdGVkIHR5cGUge3N0cn0sIGdv
dCB7dHlwZShzdWl0ZSl9JykKICAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRzOgotICAgICAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29tbWl0LCBTY21Db21taXQpIGFuZCBub3QgaXNpbnN0
YW5jZShjb21taXQsIENvbW1pdCk6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb21t
aXQsIENvbW1pdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYnRXhwZWN0ZWQg
dHlwZSB7Q29tbWl0fSwgZ290IHt0eXBlKGNvbW1pdCl9JykKICAgICAgICAgaWYgbGVuKGNvbW1p
dHMpIDwgMToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VhY2ggdGVzdCByZXN1bHQg
bXVzdCBoYXZlIGF0IGxlYXN0IDEgYXNzb2NpYXRlZCBjb21taXQnKQpAQCAtMjYyLDcgKzI2MSw3
IEBAIGNsYXNzIFVwbG9hZENvbnRleHQob2JqZWN0KToKIAogICAgICAgICAgICAgICAgIHNlbGYu
Y29uZmlndXJhdGlvbl9jb250ZXh0Lmluc2VydF9yb3dfd2l0aF9jb25maWd1cmF0aW9uKAogICAg
ICAgICAgICAgICAgICAgICBzZWxmLlN1aXRlc0J5Q29uZmlndXJhdGlvbi5fX3RhYmxlX25hbWVf
XywgY29uZmlndXJhdGlvbiwgc3VpdGU9c3VpdGUsIGJyYW5jaD1icmFuY2gsCi0gICAgICAgICAg
ICAgICAgICAgIHR0bD1pbnQoKHV1aWQgLy8gQ29tbWl0LlRJTUVTVEFNUF9UT19VVUlEX01VTFRJ
UExJRVIpICsgc2VsZi50dGxfc2Vjb25kcyAtIHRpbWUudGltZSgpKSBpZiBzZWxmLnR0bF9zZWNv
bmRzIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgdHRsPWludCgodXVpZCAvLyBDb21t
aXQuVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1lLnRpbWUoKSkgaWYg
c2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUsCiAgICAgICAgICAgICAgICAgKQogICAgICAgICAg
ICAgICAgIHNlbGYuY29uZmlndXJhdGlvbl9jb250ZXh0Lmluc2VydF9yb3dfd2l0aF9jb25maWd1
cmF0aW9uKAogICAgICAgICAgICAgICAgICAgICBzZWxmLlVwbG9hZHNCeUNvbmZpZ3VyYXRpb24u
X190YWJsZV9uYW1lX18sIGNvbmZpZ3VyYXRpb249Y29uZmlndXJhdGlvbiwKQEAgLTI3MCw3ICsy
NjksNyBAQCBjbGFzcyBVcGxvYWRDb250ZXh0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
IGNvbW1pdHM9c2VsZi50b196aXAoanNvbi5kdW1wcyhjb21taXRzLCBjbHM9Y29tbWl0c1swXS5F
bmNvZGVyKSksCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfcmVzdWx0cz1zZWxmLnRvX3ppcChq
c29uLmR1bXBzKHRlc3RfcmVzdWx0cykpLAogICAgICAgICAgICAgICAgICAgICB1cGxvYWRfdmVy
c2lvbj12ZXJzaW9uLAotICAgICAgICAgICAgICAgICAgICB0dGw9aW50KCh1dWlkIC8vIENvbW1p
dC5USU1FU1RBTVBfVE9fVVVJRF9NVUxUSVBMSUVSKSArIHNlbGYudHRsX3NlY29uZHMgLSB0aW1l
LnRpbWUoKSkgaWYgc2VsZi50dGxfc2Vjb25kcyBlbHNlIE5vbmUsCisgICAgICAgICAgICAgICAg
ICAgIHR0bD1pbnQoKHV1aWQgLy8gQ29tbWl0LlVVSURfTVVMVElQTElFUikgKyBzZWxmLnR0bF9z
ZWNvbmRzIC0gdGltZS50aW1lKCkpIGlmIHNlbGYudHRsX3NlY29uZHMgZWxzZSBOb25lLAogICAg
ICAgICAgICAgICAgICkKIAogICAgIGRlZiBmaW5kX3Rlc3RfcmVzdWx0cyhzZWxmLCBjb25maWd1
cmF0aW9ucywgc3VpdGUsIGJyYW5jaD1Ob25lLCBiZWdpbj1Ob25lLCBlbmQ9Tm9uZSwgcmVjZW50
PVRydWUsIGxpbWl0PTEwMCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2FyY2hpdmVfdmlld191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvYXJjaGl2
ZV92aWV3X3VuaXR0ZXN0LnB5CmluZGV4IDdiY2E2NTUyYzBmYzllNWIwOTExZDU4YWVmYmZhYzMx
MTYyZTY2MWMuLmFkYmQ3MWJhNTBiOGJhNzFkMDZkZWYwOTJiMTBhNDYwYjBhNGM3MTggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3Zp
ZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvYXJjaGl2ZV92aWV3X3VuaXR0ZXN0LnB5CkBA
IC0yNCwxMyArMjQsMTMgQEAgaW1wb3J0IGJhc2U2NAogaW1wb3J0IGpzb24KIAogZnJvbSBmYWtl
cmVkaXMgaW1wb3J0IEZha2VTdHJpY3RSZWRpcwotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVy
LmNvbW1pdCBpbXBvcnQgQ29tbWl0CiBmcm9tIHJlc3VsdHNkYnB5LmNvbnRyb2xsZXIuY29uZmln
dXJhdGlvbiBpbXBvcnQgQ29uZmlndXJhdGlvbgogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5jb25m
aWd1cmF0aW9uX2NvbnRleHRfdW5pdHRlc3QgaW1wb3J0IENvbmZpZ3VyYXRpb25Db250ZXh0VGVz
dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2NrX2Nhc3NhbmRyYV9jb250ZXh0IGltcG9ydCBN
b2NrQ2Fzc2FuZHJhQ29udGV4dAogZnJvbSByZXN1bHRzZGJweS5tb2RlbC5tb2NrX21vZGVsX2Zh
Y3RvcnkgaW1wb3J0IE1vY2tNb2RlbEZhY3RvcnkKIGZyb20gcmVzdWx0c2RicHkubW9kZWwud2Fp
dF9mb3JfZG9ja2VyX3Rlc3RfY2FzZSBpbXBvcnQgV2FpdEZvckRvY2tlclRlc3RDYXNlCiBmcm9t
IHJlc3VsdHNkYnB5LnZpZXcudmlld19yb3V0ZXNfdW5pdHRlc3QgaW1wb3J0IFdlYlNpdGVUZXN0
Q2FzZQorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgQXJjaGl2ZVZp
ZXdVbml0dGVzdChXZWJTaXRlVGVzdENhc2UpOgpAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBBcmNo
aXZlVmlld1VuaXR0ZXN0KFdlYlNpdGVUZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgKSwgZGlj
dCgKICAgICAgICAgICAgICAgICAgICAgcmVwb3NpdG9yeV9pZD0nd2Via2l0JywKICAgICAgICAg
ICAgICAgICAgICAgaWQ9JzYnLAotICAgICAgICAgICAgICAgICAgICBicmFuY2g9J3RydW5rJywK
KyAgICAgICAgICAgICAgICAgICAgYnJhbmNoPSdtYWluJywKICAgICAgICAgICAgICAgICAgICAg
dGltZXN0YW1wPTE2MDE2NjUxMDAsCiAgICAgICAgICAgICAgICAgICAgIG9yZGVyPTAsCiAgICAg
ICAgICAgICAgICAgICAgIGNvbW1pdHRlcj0namJlZGFyZEBhcHBsZS5jb20nLApkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9j
b21taXRfdmlldy5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvY29tbWl0X3ZpZXcucHkKaW5kZXggNmY0NWUxOGQ2NWU4MDFmZWY2ZGI1NDcy
NWI5NWNjOGY4MjI3Zjg2OS4uYThlZTc3NjMwOThmOWY3ZjcwMDcwYzhiMzY4MTlmOTIxMWQ2ZWQ3
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0
c2RicHkvdmlldy9jb21taXRfdmlldy5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9y
ZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L2NvbW1pdF92aWV3LnB5CkBAIC0yMSw5ICsyMSw5
IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKIGZyb20gZmxhc2sgaW1wb3J0IGFib3J0LCByZWRpcmVjdCwg
cmVxdWVzdAotZnJvbSByZXN1bHRzZGJweS5jb250cm9sbGVyLmNvbW1pdCBpbXBvcnQgQ29tbWl0
CiBmcm9tIHJlc3VsdHNkYnB5LnZpZXcuc2l0ZV9tZW51IGltcG9ydCBTaXRlTWVudQogZnJvbSB3
ZWJraXRmbGFza3B5LnV0aWwgaW1wb3J0IEFzc2VydFJlcXVlc3QsIHF1ZXJ5X2FzX2t3YXJncwor
ZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0CiAKIAogY2xhc3MgQ29tbWl0VmlldyhvYmpl
Y3QpOgpAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBDb21taXRWaWV3KG9iamVjdCk6CiAgICAgICAg
IHJlcG9zaXRvcmllcyA9IFtjb21taXQucmVwb3NpdG9yeV9pZF0gKyBzb3J0ZWQoW3N0cihrZXkp
IGZvciBrZXksIGxzdCBpbiBzaWJsaW5ncy5pdGVtcygpIGlmIGxzdF0pCiAKICAgICAgICAgcmV0
dXJuIHNlbGYuZW52aXJvbm1lbnQuZ2V0X3RlbXBsYXRlKCdjb21taXQuaHRtbCcpLnJlbmRlcigK
LSAgICAgICAgICAgIHRpdGxlPXNlbGYuc2l0ZV9tZW51LnRpdGxlICsgJzogJyArIHN0cihjb21t
aXQuaWQpLAorICAgICAgICAgICAgdGl0bGU9c2VsZi5zaXRlX21lbnUudGl0bGUgKyAnOiAnICsg
c3RyKGNvbW1pdCksCiAgICAgICAgICAgICBjb21taXQ9Y29tbWl0LAogICAgICAgICAgICAgcmVw
b3NpdG9yeV9pZHM9cmVwb3NpdG9yaWVzLAogICAgICAgICAgICAgY29tbWl0cz1Db21taXQuRW5j
b2RlcigpLmRlZmF1bHQoW2NvbW1pdF0gKyBbaXRlbSBmb3IgbHN0IGluIHNpYmxpbmdzLnZhbHVl
cygpIGZvciBpdGVtIGluIGxzdF0pLApAQCAtNjQsOSArNjQsOSBAQCBjbGFzcyBDb21taXRWaWV3
KG9iamVjdCk6CiAKICAgICBkZWYgaW5mbyhzZWxmKToKICAgICAgICAgY29tbWl0ID0gc2VsZi5f
c2luZ2xlX2NvbW1pdCgpCi0gICAgICAgIGluZm9fdXJsID0gc2VsZi5jb21taXRfY29udGV4dC5y
ZXBvc2l0b3JpZXNbY29tbWl0LnJlcG9zaXRvcnlfaWRdLnVybF9mb3JfY29tbWl0KGNvbW1pdC5p
ZCkKKyAgICAgICAgaW5mb191cmwgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnJlcG9zaXRvcmllc1tj
b21taXQucmVwb3NpdG9yeV9pZF0udXJsX2Zvcl9jb21taXQoY29tbWl0KQogICAgICAgICBpZiBu
b3QgaW5mb191cmw6Ci0gICAgICAgICAgICBhYm9ydCg0MTAsIGRlc2NyaXB0aW9uPWYnRm91bmQg
Y29tbWl0IHtsZW4oY29tbWl0LmlkKX0sIGJ1dCBubyBpbmZvIHVybCBmb3VuZCcpCisgICAgICAg
ICAgICBhYm9ydCg0MTAsIGRlc2NyaXB0aW9uPWYnRm91bmQgY29tbWl0IHtjb21taXR9LCBidXQg
bm8gaW5mbyB1cmwgZm91bmQnKQogICAgICAgICByZXR1cm4gcmVkaXJlY3QoaW5mb191cmwpCiAK
ICAgICBkZWYgcHJldmlvdXMoc2VsZik6CkBAIC03NCwxNiArNzQsMTYgQEAgY2xhc3MgQ29tbWl0
VmlldyhvYmplY3QpOgogICAgICAgICAgICAgb3JpZ2luYWxfY29tbWl0ID0gc2VsZi5fc2luZ2xl
X2NvbW1pdCgpCiAgICAgICAgICAgICBjb21taXQgPSBzZWxmLmNvbW1pdF9jb250ZXh0LnByZXZp
b3VzX2NvbW1pdChvcmlnaW5hbF9jb21taXQpCiAgICAgICAgICAgICBpZiBub3QgY29tbWl0Ogot
ICAgICAgICAgICAgICAgIGFib3J0KDQwNCwgZGVzY3JpcHRpb249Zid7b3JpZ2luYWxfY29tbWl0
LmlkfSBoYXMgbm8gcmVnaXN0ZXJlZCBwcmV2aW91cyBjb21taXQnKQotICAgICAgICByZXR1cm4g
cmVkaXJlY3QoZicvY29tbWl0P3JlcG9zaXRvcnlfaWQ9e2NvbW1pdC5yZXBvc2l0b3J5X2lkfSZp
ZD17Y29tbWl0LmlkfScpCisgICAgICAgICAgICAgICAgYWJvcnQoNDA0LCBkZXNjcmlwdGlvbj1m
J3tvcmlnaW5hbF9jb21taXR9IGhhcyBubyByZWdpc3RlcmVkIHByZXZpb3VzIGNvbW1pdCcpCisg
ICAgICAgIHJldHVybiByZWRpcmVjdChmJy9jb21taXQ/cmVwb3NpdG9yeV9pZD17Y29tbWl0LnJl
cG9zaXRvcnlfaWR9JmlkPXtjb21taXR9JykKIAogICAgIGRlZiBuZXh0KHNlbGYpOgogICAgICAg
ICB3aXRoIHNlbGYuY29tbWl0X2NvbnRleHQ6CiAgICAgICAgICAgICBvcmlnaW5hbF9jb21taXQg
PSBzZWxmLl9zaW5nbGVfY29tbWl0KCkKICAgICAgICAgICAgIGNvbW1pdCA9IHNlbGYuY29tbWl0
X2NvbnRleHQubmV4dF9jb21taXQob3JpZ2luYWxfY29tbWl0KQogICAgICAgICAgICAgaWYgbm90
IGNvbW1pdDoKLSAgICAgICAgICAgICAgICBhYm9ydCg0MDQsIGRlc2NyaXB0aW9uPWYne29yaWdp
bmFsX2NvbW1pdC5pZH0gaGFzIG5vIHJlZ2lzdGVyZWQgc3Vic2VxdWVudCBjb21taXQnKQotICAg
ICAgICAgICAgcmV0dXJuIHJlZGlyZWN0KGYnL2NvbW1pdD9yZXBvc2l0b3J5X2lkPXtjb21taXQu
cmVwb3NpdG9yeV9pZH0maWQ9e2NvbW1pdC5pZH0nKQorICAgICAgICAgICAgICAgIGFib3J0KDQw
NCwgZGVzY3JpcHRpb249Zid7b3JpZ2luYWxfY29tbWl0fSBoYXMgbm8gcmVnaXN0ZXJlZCBzdWJz
ZXF1ZW50IGNvbW1pdCcpCisgICAgICAgICAgICByZXR1cm4gcmVkaXJlY3QoZicvY29tbWl0P3Jl
cG9zaXRvcnlfaWQ9e2NvbW1pdC5yZXBvc2l0b3J5X2lkfSZpZD17Y29tbWl0fScpCiAKICAgICBA
U2l0ZU1lbnUucmVuZGVyX3dpdGhfc2l0ZV9tZW51KCkKICAgICBkZWYgY29tbWl0cyhzZWxmLCAq
Kmt3YXJncyk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9jb21taXQuanMgYi9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9jb21taXQuanMK
aW5kZXggOWNlN2QyYjY1M2Q5ZDdjYzE1ODliZmFjZWM0M2RkZjU3ZjNjMDIyMC4uMmRlNWU4Y2Jm
ZTc0MmVhMzY5MzNmZjM3YTQyYTAxNmE5N2Q5YzgzZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMvY29tbWl0
LmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5
L3ZpZXcvc3RhdGljL2pzL2NvbW1pdC5qcwpAQCAtMTAxLDE2ICsxMDEsMTcgQEAgZnVuY3Rpb24g
Q29tbWl0VGFibGUoY29tbWl0cywgcmVwb3NpdG9yeUlkcyA9IFtdLCBvbmVMaW5lID0gZmFsc2Up
IHsKICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbW1pdEFyZ3MgPSBwYXJhbXNUb1F1ZXJ5KHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9zaXRvcnlfaWQ6IFtjZWxsLmNvbW1pdC5yZXBv
c2l0b3J5X2lkXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaDogW2NlbGwuY29tbWl0
LmJyYW5jaF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBpZDogW2NlbGwuY29tbWl0LmlkZW50
aWZpZXJdLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBbY2VsbC5jb21taXQubGFiZWwo
KV0sCiAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICBsZXQgaW52
ZXN0aWdhdGVBcmdzID0ge2lkOiBbY2VsbC5jb21taXQuaWRlbnRpZmllcl19OworICAgICAgICAg
ICAgICAgICAgICBsZXQgaW52ZXN0aWdhdGVBcmdzID0ge3JlZjogW2NlbGwuY29tbWl0LmxhYmVs
KCldfTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFbJ21hc3RlcicsICdtYWluJywgJ3RydW5r
J10uaW5jbHVkZXMoY2VsbC5jb21taXQuYnJhbmNoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IGludmVzdGlnYXRlQXJncy5icmFuY2ggPSBbY2VsbC5jb21taXQuYnJhbmNoXTsKIAogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gYDx0ZCByb3dzcGFuPSIke2NlbGwucm93c3Bhbn0iPgogICAg
ICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NvbW1pdD8ke2NvbW1pdEFyZ3N9Ij4ke2Nl
bGwuY29tbWl0LmxhYmVsKCl9PC9hPiA8YnI+Ci0gICAgICAgICAgICAgICAgICAgICAgICBCcmFu
Y2g6ICR7Y2VsbC5jb21taXQuYnJhbmNofSA8YnI+Ci0gICAgICAgICAgICAgICAgICAgICAgICBB
dXRob3I6ICR7ZXNjYXBlSFRNTChjZWxsLmNvbW1pdC5hdXRob3IpfSA8YnI+CisgICAgICAgICAg
ICAgICAgICAgICAgICAke2NlbGwuY29tbWl0LmxhYmVsKCkuaW5jbHVkZXMoJ0AnKSA/ICcnIDog
YEJyYW5jaDogJHtjZWxsLmNvbW1pdC5icmFuY2h9IDxicj5gfQorICAgICAgICAgICAgICAgICAg
ICAgICAgJHtjZWxsLmNvbW1pdC5hdXRob3IgPyBgQXV0aG9yOiAke2VzY2FwZUhUTUwoY2VsbC5j
b21taXQuYXV0aG9yLm5hbWUpfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICYjNjA8YSBo
cmVmPSJtYWlsdG86JHtlc2NhcGVIVE1MKGNlbGwuY29tbWl0LmF1dGhvci5lbWFpbHNbMF0pfSI+
JHtlc2NhcGVIVE1MKGNlbGwuY29tbWl0LmF1dGhvci5lbWFpbHNbMF0pfTwvYT4mIzYyIDxicj5g
IDogJyd9CiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY29tbWl0L2luZm8/JHtj
b21taXRBcmdzfSI+TW9yZSBJbmZvPC9hPjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgIDxh
IGhyZWY9Ii9pbnZlc3RpZ2F0ZT8ke3BhcmFtc1RvUXVlcnkoaW52ZXN0aWdhdGVBcmdzKX0iPlRl
c3QgcmVzdWx0cyBmb3IgY29tbWl0PC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgJHtmdW5j
dGlvbigpIHsKQEAgLTEzMCwxMCArMTMxLDEyIEBAIGZ1bmN0aW9uIENvbW1pdFRhYmxlKGNvbW1p
dHMsIHJlcG9zaXRvcnlJZHMgPSBbXSwgb25lTGluZSA9IGZhbHNlKSB7CiBjbGFzcyBDb21taXQg
ewogICAgIGNvbnN0cnVjdG9yKGpzb24pIHsKICAgICAgICAgdGhpcy5pZGVudGlmaWVyID0ganNv
bi5pZGVudGlmaWVyID8ganNvbi5pZGVudGlmaWVyIDoganNvbi5pZDsKLSAgICAgICAgdGhpcy5y
ZXZpc2lvbiA9IGpzb24ucmV2aXNpb247Ci0gICAgICAgIHRoaXMuaGFzaCA9IGpzb24uaGFzaDsK
KyAgICAgICAgdGhpcy5yZXZpc2lvbiA9IGpzb24ucmV2aXNpb24gPyBqc29uLnJldmlzaW9uIDog
bnVsbDsKKyAgICAgICAgdGhpcy5oYXNoID0ganNvbi5oYXNoID8ganNvbi5oYXNoIDogbnVsbDsK
IAotICAgICAgICB0aGlzLmF1dGhvciA9IGpzb24uYXV0aG9yID8ganNvbi5hdXRob3IubmFtZSA6
IGpzb24uY29tbWl0dGVyOworICAgICAgICB0aGlzLmF1dGhvciA9IG51bGw7CisgICAgICAgIGlm
IChqc29uLmF1dGhvciAmJiBqc29uLmF1dGhvci5uYW1lICYmIGpzb24uYXV0aG9yLmVtYWlscyAm
JiBqc29uLmF1dGhvci5lbWFpbHNbMF0pCisgICAgICAgICAgICB0aGlzLmF1dGhvciA9IGpzb24u
YXV0aG9yCiAKICAgICAgICAgdGhpcy5yZXBvc2l0b3J5X2lkID0ganNvbi5yZXBvc2l0b3J5X2lk
OwogICAgICAgICB0aGlzLmJyYW5jaCA9IGpzb24uYnJhbmNoOwpAQCAtMTQ5LDEzICsxNTIsMTMg
QEAgY2xhc3MgQ29tbWl0IHsKICAgICBsYWJlbCgpIHsKICAgICAgICAgY29uc3QgcHJlZmVyZW5j
ZSA9IENvbW1pdEJhbmsuX3JlcHJlc2VudGF0aW9uQ2FjaGUgPyBDb21taXRCYW5rLl9yZXByZXNl
bnRhdGlvbkNhY2hlW3RoaXMucmVwb3NpdG9yeV9pZF0ucmVwcmVzZW50YXRpb24gOiBudWxsOwog
Ci0gICAgICAgIGlmIChwcmVmZXJlbmNlID09PSAnaWRlbnRpZmllcicpCisgICAgICAgIGlmIChw
cmVmZXJlbmNlID09PSAnaWRlbnRpZmllcicgJiYgdGhpcy5pZGVudGlmaWVyKQogICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuaWRlbnRpZmllcjsKLSAgICAgICAgaWYgKHByZWZlcmVuY2UgPT09ICdo
YXNoJykgeworICAgICAgICBpZiAocHJlZmVyZW5jZSA9PT0gJ2hhc2gnICYmIHRoaXMuaGFzaCkg
ewogICAgICAgICAgICAgLy8gUGVyIHRoZSBiaXJ0aGRheSBwYXJhZG94LCAxMCUgY2hhbmNlIG9m
IGNvbGxpc2lvbiB3aXRoIDcuNyBtaWxsaW9uIGNvbW1pdHMgd2l0aCAxMiBjaGFyYWN0ZXIgY29t
bWl0cwogICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzaC5zdWJzdHJpbmcoMCwxMikKICAgICAg
ICAgfQotICAgICAgICBpZiAocHJlZmVyZW5jZSA9PT0gJ3JldmlzaW9uJykKKyAgICAgICAgaWYg
KHByZWZlcmVuY2UgPT09ICdyZXZpc2lvbicgJiYgdGhpcy5yZXZpc2lvbikKICAgICAgICAgICAg
IHJldHVybiBgciR7dGhpcy5yZXZpc2lvbn1gOwogCiAgICAgICAgIHJldHVybiB0aGlzLnJldmlz
aW9uID8gYHIke3RoaXMucmV2aXNpb259YCA6IHRoaXMuaGFzaC5zdWJzdHJpbmcoMCwxMik7CkBA
IC0zNDUsNyArMzQ4LDcgQEAgY2xhc3MgX0NvbW1pdEJhbmsgewogICAgICAgICBjb25zdCBxdWVy
eSA9IHBhcmFtc1RvUXVlcnkoewogICAgICAgICAgICAgYnJhbmNoOiBbY29tbWl0LmJyYW5jaF0s
CiAgICAgICAgICAgICByZXBvc2l0b3J5X2lkOiBbY29tbWl0LnJlcG9zaXRvcnlfaWRdLAotICAg
ICAgICAgICAgaWQ6IFtjb21taXQuaWRlbnRpZmllcl0sCisgICAgICAgICAgICByZWY6IFtjb21t
aXQuaGFzaCA/IGNvbW1pdC5oYXNoIDogY29tbWl0LnJldmlzaW9uXSwKICAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybiBmZXRjaCgnYXBpL2NvbW1pdHMvc2libGluZ3M/JyArIHF1ZXJ5KS50aGVu
KHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgIGxldCBzZWxmID0gdGhpczsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3Rh
dGljL2pzL2NvbW1vbi5qcyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2NvbW1vbi5qcwppbmRleCBkOGNjZGYxOGIyYzNiZDQx
MWM3NGQ3NzMyNTQ2NmU1YjhiMTNjNDJhLi5hNjFmZWM2NmU5YmZjMTZmN2M0ZGVkMTJmZWZkYWFk
ZGE2YzRmZjU3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9jb21tb24uanMKKysrIGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy9zdGF0aWMvanMvY29tbW9u
LmpzCkBAIC0xMTksMTIgKzExOSwxNCBAQCBjbGFzcyBRdWVyeU1vZGlmaWVyIHsKIAogLy8gQmFz
ZWQgb24gPGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYyMzQ3NzMvY2FuLWkt
ZXNjYXBlLWh0bWwtc3BlY2lhbC1jaGFycy1pbi1qYXZhc2NyaXB0PgogZnVuY3Rpb24gZXNjYXBl
SFRNTCh0ZXh0KSB7Ci0gICAgcmV0dXJuIHRleHQucmVwbGFjZSgvWyY8Iidcbl0vZywgZnVuY3Rp
b24oY2hhcmFjdGVyKSB7CisgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvWyY8PiInXG5dL2csIGZ1
bmN0aW9uKGNoYXJhY3RlcikgewogICAgICAgICBzd2l0Y2ggKGNoYXJhY3RlcikgewogICAgICAg
ICAgICAgY2FzZSAnJic6CiAgICAgICAgICAgICAgICAgcmV0dXJuICcmYW1wOyc7CiAgICAgICAg
ICAgICBjYXNlICc8JzoKICAgICAgICAgICAgICAgICByZXR1cm4gJyZsdDsnOworICAgICAgICAg
ICAgY2FzZSAnPic6CisgICAgICAgICAgICAgICAgcmV0dXJuICcmZ3Q7JzsKICAgICAgICAgICAg
IGNhc2UgJyInOgogICAgICAgICAgICAgICAgIHJldHVybiAnJnF1b3Q7JzsKICAgICAgICAgICAg
IGNhc2UgJ1xuJzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNk
YnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2RyYXdlci5qcyBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL2RyYXdlci5q
cwppbmRleCA5ODg1ZDk3ODI4YzFlNjlkNDFiZTUzZThmNTQ0ZTQ3ZDE5YTIxN2E1Li44YWY4OTIw
NWVlYWMwZDE0MDBkNWUyNTlkNGIzNjA3YTJlYzVjY2Q4IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy9kcmF3
ZXIuanMKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2Ri
cHkvdmlldy9zdGF0aWMvanMvZHJhd2VyLmpzCkBAIC0xMzcsNyArMTM3LDcgQEAgZnVuY3Rpb24g
cmVmcmVzaENvbmZpZ3VyYXRpb25zKCkgewogfQogCiBmdW5jdGlvbiBCcmFuY2hTZWxlY3Rvcihj
YWxsYmFjaykgewotICAgIGNvbnN0IGRlZmF1bHRCcmFuY2hlcyA9IG5ldyBTZXQoWyd0cnVuaycs
ICdtYXN0ZXInXSk7CisgICAgY29uc3QgZGVmYXVsdEJyYW5jaGVzID0gbmV3IFNldChbJ3RydW5r
JywgJ21hc3RlcicsICdtYWluJ10pOwogICAgIGNvbnN0IGRlZmF1bHRCcmFuY2hLZXkgPSBbLi4u
ZGVmYXVsdEJyYW5jaGVzXS5zb3J0KCkuam9pbignLycpOwogICAgIGNvbnN0IGJyYW5jaE1vZGlm
aWVyID0gbmV3IFF1ZXJ5TW9kaWZpZXIoJ2JyYW5jaCcpOwogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3N0YXRpYy9qcy90
aW1lbGluZS5qcyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNk
YnB5L3ZpZXcvc3RhdGljL2pzL3RpbWVsaW5lLmpzCmluZGV4IGViNWYyOTc4ZWI5NGIzMTg4NmRl
OTY1ZTc2ODdiNjE4ODllMTMxYjUuLjIzMGMwMzVkODQzYmVjNzg0YjFiZTU3MTM0ODEzZGIzNzgy
MzMyODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL3RpbWVsaW5lLmpzCisrKyBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvc3RhdGljL2pzL3RpbWVsaW5l
LmpzCkBAIC0xOTAsOCArMTkwLDkgQEAgZnVuY3Rpb24geEF4aXNGcm9tU2NhbGUoc2NhbGUsIHJl
cG9zaXRvcnksIHVwZGF0ZXNBcnJheSwgaXNUb3A9ZmFsc2UsIHZpZXdwb3J0PW4KICAgICAgICAg
ICAgIGNvbnN0IHNjcm9sbERlbHRhID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRv
cCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcDsKICAgICAgICAgICAgIFRvb2xUaXAuc2V0KAog
ICAgICAgICAgICAgICAgIGA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KLSAgICAgICAgICAgICAgICAg
ICAgVGltZTogJHtuZXcgRGF0ZShub2RlLmxhYmVsLnRpbWVzdGFtcCAqIDEwMDApLnRvTG9jYWxl
U3RyaW5nKCl9PGJyPgotICAgICAgICAgICAgICAgICAgICBBdXRob3I6ICR7bm9kZS5sYWJlbC5h
dXRob3J9CisgICAgICAgICAgICAgICAgICAgIFRpbWU6ICR7bmV3IERhdGUobm9kZS5sYWJlbC50
aW1lc3RhbXAgKiAxMDAwKS50b0xvY2FsZVN0cmluZygpfQorICAgICAgICAgICAgICAgICAgICAk
e25vZGUubGFiZWwuYXV0aG9yID8gYDxicj5BdXRob3I6ICR7ZXNjYXBlSFRNTChub2RlLmxhYmVs
LmF1dGhvci5uYW1lKX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIzYwPGEgaHJlZj0i
bWFpbHRvOiR7ZXNjYXBlSFRNTChub2RlLmxhYmVsLmF1dGhvci5lbWFpbHNbMF0pfSI+JHtlc2Nh
cGVIVE1MKG5vZGUubGFiZWwuYXV0aG9yLmVtYWlsc1swXSl9PC9hPiYjNjJgIDogJyd9CiAgICAg
ICAgICAgICAgICAgICAgICR7bm9kZS5sYWJlbC5tZXNzYWdlID8gYDxicj48ZGl2PiR7ZXNjYXBl
SFRNTChub2RlLmxhYmVsLm1lc3NhZ2Uuc3BsaXQoJ1xuJylbMF0pfTwvZGl2PmAgOiAnJ30KICAg
ICAgICAgICAgICAgICA8L2Rpdj5gLAogICAgICAgICAgICAgICAgIG5vZGUudGlwUG9pbnRzLm1h
cCgocG9pbnQpID0+IHsKQEAgLTIwNiw3ICsyMDcsNyBAQCBmdW5jdGlvbiB4QXhpc0Zyb21TY2Fs
ZShzY2FsZSwgcmVwb3NpdG9yeSwgdXBkYXRlc0FycmF5LCBpc1RvcD1mYWxzZSwgdmlld3BvcnQ9
bgogICAgICAgICAgICAgaWYgKCFUb29sVGlwLmlzSW4oe3g6IGV2ZW50LngsIHk6IGV2ZW50Lnkg
LSBzY3JvbGxEZWx0YX0pKQogICAgICAgICAgICAgICAgIFRvb2xUaXAudW5zZXQoKTsKICAgICAg
ICAgfSwKLSAgICAgICAgZ2V0TGFiZWxGdW5jOiAoY29tbWl0KSA9PiB7cmV0dXJuIGNvbW1pdCA/
IGNvbW1pdC5sYWJlbCgpIDogJz8nO30sCisgICAgICAgIGdldExhYmVsRnVuYzogKGNvbW1pdCkg
PT4ge3JldHVybiBjb21taXQgJiYgY29tbWl0LmxhYmVsID8gY29tbWl0LmxhYmVsKCkgOiAnPyc7
fSwKICAgICAgICAgZ2V0U2NhbGVGdW5jOiAoY29tbWl0KSA9PiBjb21taXQudXVpZCwKICAgICAg
ICAgZXhwb3J0ZXI6ICh1cGRhdGVGdW5jdGlvbikgPT4gewogICAgICAgICAgICAgdXBkYXRlc0Fy
cmF5LnB1c2goKHNjYWxlKSA9PiB7dXBkYXRlRnVuY3Rpb24oc2NhbGVGb3JSZXBvc2l0b3J5KHNj
YWxlKSk7fSk7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9jb21taXQuaHRtbCBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2NvbW1pdC5o
dG1sCmluZGV4IGQ4OWJlYTAzMDRmZTYzYzQzODZlYzI3Yjk4ODMzMzNlNGI3MTI0OTcuLmQ2Yjdl
NzhhMDhiMDE5YWQ2N2ZiNTgxNDkzMmM5MDBmMmU1YmJkMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2Nv
bW1pdC5odG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2NvbW1pdC5odG1sCkBAIC0zMiwxMyArMzIsMTMgQEAKICAg
ICA8ZGl2IGNsYXNzPSJjb2wtMTIiPgogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iY29sLTQiIHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPgotICAgICAg
ICAgICAgICAgIDxhIGNsYXNzPSJidXR0b24iIGhyZWY9Ii9jb21taXQvcHJldmlvdXM/cmVwb3Np
dG9yeV9pZD17eyBjb21taXQucmVwb3NpdG9yeV9pZCB9fSZicmFuY2g9e3sgY29tbWl0LmJyYW5j
aCB9fSZpZD17eyBjb21taXQuaWQgfX0iPuKXgCBQcmV2aW91czwvYT4KKyAgICAgICAgICAgICAg
ICA8YSBjbGFzcz0iYnV0dG9uIiBocmVmPSIvY29tbWl0L3ByZXZpb3VzP3JlcG9zaXRvcnlfaWQ9
e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mcmVmPXt7IGNvbW1pdC5oYXNoIG9yIGNvbW1pdC5y
ZXZpc2lvbiB9fSI+4peAIFByZXZpb3VzPC9hPgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJjb2wtNCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj4KLSAgICAg
ICAgICAgICAgICA8YSBjbGFzcz0iYnV0dG9uIiBocmVmPSIvY29tbWl0L2luZm8/cmVwb3NpdG9y
eV9pZD17eyBjb21taXQucmVwb3NpdG9yeV9pZCB9fSZicmFuY2g9e3sgY29tbWl0LmJyYW5jaCB9
fSZpZD17eyBjb21taXQuaWQgfX0iPnt7IGNvbW1pdC5pZCB9fTwvYT4KKyAgICAgICAgICAgICAg
ICA8YSBjbGFzcz0iYnV0dG9uIiBocmVmPSIvY29tbWl0L2luZm8/cmVwb3NpdG9yeV9pZD17eyBj
b21taXQucmVwb3NpdG9yeV9pZCB9fSZyZWY9e3sgY29tbWl0Lmhhc2ggb3IgY29tbWl0LnJldmlz
aW9uIH19Ij57eyBjb21taXQgfX08L2E+CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImNvbC00IiBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+Ci0gICAgICAgICAg
ICAgICAgPGEgY2xhc3M9ImJ1dHRvbiIgaHJlZj0iL2NvbW1pdC9uZXh0P3JlcG9zaXRvcnlfaWQ9
e3sgY29tbWl0LnJlcG9zaXRvcnlfaWQgfX0mYnJhbmNoPXt7IGNvbW1pdC5icmFuY2ggfX0maWQ9
e3sgY29tbWl0LmlkIH19Ij5OZXh0IOKWtjwvYT4KKyAgICAgICAgICAgICAgICA8YSBjbGFzcz0i
YnV0dG9uIiBocmVmPSIvY29tbWl0L25leHQ/cmVwb3NpdG9yeV9pZD17eyBjb21taXQucmVwb3Np
dG9yeV9pZCB9fSZyZWY9e3sgY29tbWl0Lmhhc2ggb3IgY29tbWl0LnJldmlzaW9uIH19Ij5OZXh0
IOKWtjwvYT4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICAgICAgPGRp
diBpZD0iY29tbWl0VGFibGUiPjwvZGl2PgpAQCAtNDYsNyArNDYsNyBAQAogPC9kaXY+CiAKIDxz
Y3JpcHQgdHlwZT0ibW9kdWxlIj4KLWltcG9ydCB7Q29tbWl0VGFibGV9IGZyb20gJy9hc3NldHMv
anMvY29tbWl0LmpzJzsKK2ltcG9ydCB7Q29tbWl0LCBDb21taXRUYWJsZSwgQ29tbWl0QmFua30g
ZnJvbSAnL2Fzc2V0cy9qcy9jb21taXQuanMnOwogCiBmdW5jdGlvbiB1bmVzY2FwZUppbmphVGV4
dCh0ZXh0KSB7CiAgICAgcmV0dXJuIHRleHQucmVwbGFjZSgvJihbXjtdKyk7L2csIGZ1bmN0aW9u
KG1hdGNoLCBlbmNvZGVkKSB7CkBAIC02OCwxNyArNjgsMjMgQEAgZnVuY3Rpb24gdW5lc2NhcGVK
aW5qYVRleHQodGV4dCkgewogfQogCiBsZXQgY29tbWl0cyA9IFsKLXslIGZvciBjb21taXQgaW4g
Y29tbWl0cyAlfSAgICB7Ci0gICAgeyUgZm9yIGtleSwgdmFsdWUgaW4gY29tbWl0Lml0ZW1zKCkg
JX0KLSAgICAgICAge3sga2V5IH19OgotICAgICAgICB7JSBpZiAnc3RyJyBpbiB2YWx1ZS5fX2Ns
YXNzX18uX19uYW1lX18gJX0KLSAgICAgICAgICAgIHVuZXNjYXBlSmluamFUZXh0KCd7eyB2YWx1
ZSB8IHJlcGxhY2UoIlxcIiwgIlxcXFwiKSB8IHJlcGxhY2UoIlxuIiwgIlxcbiIpIH19JykKLSAg
ICAgICAgeyUgZWxzZSAlfQotICAgICAgICAgICAge3sgdmFsdWUgfX0KLSAgICAgICAgeyUgZW5k
aWYgJX0sCi0gICAgeyUgZW5kZm9yICV9fSwKK3slIGZvciBjb21taXQgaW4gY29tbWl0cyAlfSAg
ICBuZXcgQ29tbWl0KHsKKyAgICAgICAgcmVwb3NpdG9yeV9pZDogJ3t7IGNvbW1pdC5yZXBvc2l0
b3J5X2lkIH19JywKKyAgICAgICAgcmV2aXNpb246IHt7IGNvbW1pdC5yZXZpc2lvbiBpZiBjb21t
aXQucmV2aXNpb24gZWxzZSAnbnVsbCcgfX0sCisgICAgICAgIGhhc2g6ICd7eyBjb21taXQuaGFz
aCBpZiBjb21taXQuaGFzaCBlbHNlICcnIH19JywKKyAgICAgICAgaWRlbnRpZmllcjogJ3t7IGNv
bW1pdC5pZGVudGlmaWVyIGlmIGNvbW1pdC5pZGVudGlmaWVyIGVsc2UgJycgfX0nLAorICAgICAg
ICBicmFuY2g6ICd7eyBjb21taXQuYnJhbmNoIH19JywKKyAgICAgICAgdGltZXN0YW1wOiB7eyBj
b21taXQudGltZXN0YW1wIH19LAorICAgICAgICBhdXRob3I6IHsKKyAgICAgICAgICAgIG5hbWU6
IHVuZXNjYXBlSmluamFUZXh0KCd7eyBjb21taXQuYXV0aG9yLm5hbWUgfX0nKSwKKyAgICAgICAg
ICAgIGVtYWlsczogW3slIGZvciBlIGluIGNvbW1pdC5hdXRob3IuZW1haWxzICV9IHVuZXNjYXBl
SmluamFUZXh0KCd7eyBlIH19JykgeyUgZW5kZm9yICV9XSwKKyAgICAgICAgfSwgb3JkZXI6IHt7
IGNvbW1pdC5vcmRlciB9fSwKKyAgICAgICAgbWVzc2FnZTogdW5lc2NhcGVKaW5qYVRleHQoJ3t7
IGNvbW1pdC5tZXNzYWdlIHwgcmVwbGFjZSgiXFwiLCAiXFxcXCIpIHwgcmVwbGFjZSgiXG4iLCAi
XFxuIikgfX0nKSwKKyAgICB9KSwKIHslIGVuZGZvciAlfV07CiAKLWRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb21taXRUYWJsZScpLmlubmVySFRNTCA9IENvbW1pdFRhYmxlKGNvbW1pdHMsIHt7
IHJlcG9zaXRvcnl8c2FmZSB9fSk7CitDb21taXRCYW5rLmNvbW1pdFJlcHJlc2VudGF0aW9ucygo
KSA9PiB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbW1pdFRhYmxlJykuaW5uZXJI
VE1MID0gQ29tbWl0VGFibGUoY29tbWl0cywge3sgcmVwb3NpdG9yeXxzYWZlIH19KTsKK30pOwog
PC9zY3JpcHQ+CiB7JSBlbmRibG9jayAlfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvZG9jdW1lbnRhdGlv
bi5odG1sIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
dmlldy90ZW1wbGF0ZXMvZG9jdW1lbnRhdGlvbi5odG1sCmluZGV4IDU2OGJjYjE1Y2FmZmM5MGUw
MmU0ZjQ5YzgxZDc5OTI5MTliOWM3Y2QuLjA3YzY1NmRkMmRiZDMzNzY2YmZlNmFhM2UxN2I4ODBi
ZGMxZTZlNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5
L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2RvY3VtZW50YXRpb24uaHRtbAorKysgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRl
cy9kb2N1bWVudGF0aW9uLmh0bWwKQEAgLTczLDExICs3MywxNSBAQCBjb25zdCBkb2N1bWVudGF0
aW9uID0gewogICAgICAgICAgICAgY29kZUJsb2NrKCd7XG4nICsgCiAgICAgICAgICAgICAgICAg
JyAgICAicmVwb3NpdG9yeV9pZCI6IDxzdHJpbmcgcmVwcmVzZW50aW5nIHJlcG9zaXRvcnkgaWRl
bnRpZmllcj4sXG4nICsKICAgICAgICAgICAgICAgICAnICAgICJicmFuY2giOiA8YnJhbmNoIGNv
bW1pdCBpcyByZWdpc3RlcmVkIG9uPixcbicgKwotICAgICAgICAgICAgICAgICcgICAgImlkIjog
PGdpdCBoYXNoIG9yIHN2biByZXZpc2lvbj4sXG4nICsKKyAgICAgICAgICAgICAgICAnICAgICJp
ZGVudGlmaWVyIjogPGNvbW1pdCBpZGVudGlmaWVyPixcbicgKworICAgICAgICAgICAgICAgICcg
ICAgImhhc2giOiA8Z2l0IGhhc2g+LFxuJyArCisgICAgICAgICAgICAgICAgJyAgICAicmV2aXNp
b24iOiA8c3ZuIHJldmlzaW9uPixcbicgKwogICAgICAgICAgICAgICAgICcgICAgInRpbWVzdGFt
cCI6IDxpbnRlZ2VyIFVUQyB0aW1lc3RhbXAgd2hlbiBjb21taXQgd2FzIGNvbW1pdHRlZD4sXG4n
ICsKICAgICAgICAgICAgICAgICAnICAgICJvcmRlciI6IDxvcmRlciBvZiBjb21taXQgd2l0aGlu
IHBhdGNoIHNlcmllcz4sXG4nICsKLSAgICAgICAgICAgICAgICAnICAgICJjb21taXR0ZXIiOiA8
cGVyc29uIHdobyBjb21taXR0ZWQgdGhlIGNoYW5nZT4sXG4nICsKLSAgICAgICAgICAgICAgICAn
ICAgICJtZXNzYWdlIjogPGNvbW1pdCBtZXNzYWdlIG9yIGNoYW5nZWxvZyBhc3NvY2lhdGVkIHdp
dGggY29tbWl0PlxuJyArCisgICAgICAgICAgICAgICAgJyAgICAiYXV0aG9yIjoge1xuJyArCisg
ICAgICAgICAgICAgICAgJyAgICAgICAgIm5hbWUiOiA8bmFtZSBvZiBwZXJzb24gd2hvIGF1dGhv
cmVkIGNoYW5nZT4sXG4nICsKKyAgICAgICAgICAgICAgICAnICAgICAgICAiZW1haWxzIjogWzxs
aXN0IG9mIGVtYWlscyBhc3NvY2lhdGVkIHdpdGggY2hhbmdlIGF1dGhvcj5dXG4nICsKKyAgICAg
ICAgICAgICAgICAnICAgIH0sICJtZXNzYWdlIjogPGNvbW1pdCBtZXNzYWdlIG9yIGNoYW5nZWxv
ZyBhc3NvY2lhdGVkIHdpdGggY29tbWl0PlxuJyArCiAgICAgICAgICAgICAgICAgJ30nKSwKICAg
ICAgICAgICAgIGRvY3VtZW50RW5kcG9pbnQoCiAgICAgICAgICAgICAgICAgJy9hcGkvY29tbWl0
cycsCkBAIC0xMjMsNyArMTI3LDcgQEAgY29uc3QgZG9jdW1lbnRhdGlvbiA9IHsKICAgICAgICAg
ICAgICAgICAgICAgYFJldHVybnMgYSBkaWN0aW9uYXJ5IG9mIGxpc3RzIG9mIGJyYW5jaGVzIGFz
c29jaWF0ZWQgd2l0aCBlYWNoIHJlcG9zaXRvcnkuIFRoZSBvdXRwdXQgaXMgb2YgdGhlIGZvcm06
YCwKICAgICAgICAgICAgICAgICAgICAgY29kZUJsb2NrKCd7XG4nICsKICAgICAgICAgICAgICAg
ICAgICAgJyAgICA8cmVwb3NpdG9yeS1pZCAoYSk+OiBbIm1hc3RlciIsICJicmFuY2gtYSIsICJi
cmFuY2gtYiJdLFxuJyArCi0gICAgICAgICAgICAgICAgICAgICcgICAgPHJlcG9zaXRvcnktaWQg
KGIpPjogWyJ0cnVuayIsICJicmFuY2gtYSIsICJicmFuY2gtYyJdXG4nICsKKyAgICAgICAgICAg
ICAgICAgICAgJyAgICA8cmVwb3NpdG9yeS1pZCAoYik+OiBbIm1haW4iLCAiYnJhbmNoLWEiLCAi
YnJhbmNoLWMiXVxuJyArCiAgICAgICAgICAgICAgICAgICAgICd9JyksCiAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICksCkBAIC0xNTgsNyArMTYyLDcgQEAgY29uc3QgZG9jdW1lbnRh
dGlvbiA9IHsKICAgICAgICAgICAgICAgICBbJ0JyYW5jaCcsICdSZXBvc2l0b3J5J10sCiAgICAg
ICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICBgUmVnaXN0ZXIgYSBzaW5nbGUgY29t
bWl0IGluIHRoZSByZXN1bHRzIGRhdGFiYXNlLiBUaGlzIGNvbW1pdCBtdXN0IGJlIGFzc29jaWF0
ZWQgd2l0aCBhIHJlcG9zaXRvcnkgYWxyZWFkeSBrbm93biBieSB0aGUgcmVzdWx0cyBkYXRhYmFz
ZS4gV2hpbGUgYSAke2xvY2FsTGluayhbJ0FQSScsICdDb21taXRzJ10sICdjb21taXQgb2JqZWN0
cycpfSBjYW4gYmUgdXBsb2FkZWQgdG8gdGhpcyBlbmRwb2ludCwgaXQgaXMgcmVjb21tZW5kZWQg
dGhhdCB0aGUgcmVnaXN0cmF0aW9uIG9mIGNvbW1pdHMgb3V0c2lkZSBvZiBhdXRvbWF0aW9uIGFs
bG93IHRoZSByZXN1bHRzIGRhdGFiYXNlIHRvIGxldmVyYWdlIHlvdXIgc291cmNlIGNvbnRyb2wn
cyBBUEkuIFN1Y2ggYSByZXF1ZXN0IGxvb2tzIGxpa2UgdGhpc2AsCi0gICAgICAgICAgICAgICAg
ICAgIGNvZGVCbG9jaygnL2FwaS9jb21taXRzL3JlZ2lzdGVyP3JlcG9zaXRvcnlfaWQ9d2Via2l0
JmJyYW5jaD10cnVuayZpZD0yNDczNTUnKSwKKyAgICAgICAgICAgICAgICAgICAgY29kZUJsb2Nr
KCcvYXBpL2NvbW1pdHMvcmVnaXN0ZXI/cmVwb3NpdG9yeV9pZD13ZWJraXQmYnJhbmNoPW1haW4m
aWQ9MjQ3MzU1JyksCiAgICAgICAgICAgICAgICAgICAgIGBNb3JlIGdlbmVyYWxseSwgYW55IGRl
ZmluaXRpb24gb2YgYSBjb21taXQgd2hpY2ggZGVmaW5lcyB0aGUgcmVwb3NpdG9yeV9pZCwgaWQg
YW5kIGJyYW5jaCBwcm92aWRlcyBlbm91Z2ggaW5mb3JtYXRpb24gZm9yIHRoZSByZXN1bHRzIGRh
dGFiYXNlIHRvIHF1ZXJ5IHlvdXIgc291cmNlIGNvbnRyb2wncyBBUEkgYW5kIHJldHJlaXZlIGNv
bW1pdCBpbmZvcm1hdGlvbi5gLAogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICApLApA
QCAtNDc5LDcgKzQ4Myw3IEBAIGNvbnN0IGRvY3VtZW50YXRpb24gPSB7CiAgICAgICAgICAgICBg
QnkgZGVmYXVsdCwgdGhpcyBmbGFnIGlzICdUcnVlJyBhbmQgZW5kcG9pbnRzIHdpbGwgaWdub3Jl
IHRlc3RzIHdoaWNoIG1hdGNoZWQgdGhlaXIgZXhwZWN0ZWQgYmVoYXZpb3IuIElmIHNldCB0byAn
RmFsc2UnLCBlbmRwb2ludHMgd2lsbCByZXR1cm4gcmVzdWx0cyBmb3IgYWxsIGZhaWxpbmcgdGVz
dHMsIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGVpciBleHBlY3RhdGlvbiBpcy5gLAogICAgICAgICBd
LAogICAgICAgICAnQnJhbmNoJzogWwotICAgICAgICAgICAgYE1vc3QgZGF0YSBpbiB0aGUgcmVz
dWx0cyBkYXRhYmFzZSBpcyBwYXJ0aXRpb25lZCBieSBicmFuY2gsIGFuZCBpdCBpcyBnZW5lcmFs
bHkgZXhwZWN0ZWQgdGhhdCByZXN1bHRzIG9uIHNlcGVyYXRlIGJyYW5jaGVzIGFyZSBpbmRlcGVu
ZGVudCBvZiBvbmUgYW5vdGhlci4gQnkgZGVmYXVsdCwgZW5kcG9pbnRzIHRoYXQgc3VwcG9ydCB0
aGUgYnJhbmNoIHF1ZXJ5IHdpbGwgYXNzdW1lIHRoYXQgdGhlIGJyYW5jaCBpcyBtYXN0ZXIgZm9y
IGdpdCByZXBvc2l0b3JpZXMgYW5kIHRydW5rIGZvciBTVk4gcmVwb3NpdG9yaWVzIGlmIG5vIHZh
bHVlIGlzIHNwZWNpZmllZC4gSWYgbXVsdGlwbGUgdmFsdWVzIGZvciBicmFuY2ggYXJlIHNwZWNp
ZmllZCwgb25seSB0aGUgZmlyc3Qgd2lsbCBiZSByZXNwZWN0ZWQuIEEgcmVxdWVzdCB3aGljaCBp
bnRlbmRlZCB0byBzZWFyY2ggZm9yIHJlc3VsdHMgb24gb25seSByZXN1bHRzIG9uIHRoZSBzYWZh
cmktNjA3IGJyYW5jaCB3b3VsZCB1c2UgYSBxdWVyeSBsaWtlIHRoaXM6YCwKKyAgICAgICAgICAg
IGBNb3N0IGRhdGEgaW4gdGhlIHJlc3VsdHMgZGF0YWJhc2UgaXMgcGFydGl0aW9uZWQgYnkgYnJh
bmNoLCBhbmQgaXQgaXMgZ2VuZXJhbGx5IGV4cGVjdGVkIHRoYXQgcmVzdWx0cyBvbiBzZXBlcmF0
ZSBicmFuY2hlcyBhcmUgaW5kZXBlbmRlbnQgb2Ygb25lIGFub3RoZXIuIEJ5IGRlZmF1bHQsIGVu
ZHBvaW50cyB0aGF0IHN1cHBvcnQgdGhlIGJyYW5jaCBxdWVyeSB3aWxsIGFzc3VtZSB0aGF0IHRo
ZSBicmFuY2ggaXMgbWFzdGVyIG9yIG1haW4gZm9yIGdpdCByZXBvc2l0b3JpZXMgYW5kIHRydW5r
IGZvciBTVk4gcmVwb3NpdG9yaWVzIGlmIG5vIHZhbHVlIGlzIHNwZWNpZmllZC4gSWYgbXVsdGlw
bGUgdmFsdWVzIGZvciBicmFuY2ggYXJlIHNwZWNpZmllZCwgb25seSB0aGUgZmlyc3Qgd2lsbCBi
ZSByZXNwZWN0ZWQuIEEgcmVxdWVzdCB3aGljaCBpbnRlbmRlZCB0byBzZWFyY2ggZm9yIHJlc3Vs
dHMgb24gb25seSByZXN1bHRzIG9uIHRoZSBzYWZhcmktNjA3IGJyYW5jaCB3b3VsZCB1c2UgYSBx
dWVyeSBsaWtlIHRoaXM6YCwKICAgICAgICAgICAgIGNvZGVCbG9jaygnYnJhbmNoPXNhZmFyaS02
MDcnKSwKICAgICAgICAgXSwKICAgICAgICAgJ0NvbmZpZ3VyYXRpb24nOiBbCkBAIC01NDQsMTMg
KzU0OCwxMyBAQCBjb25zdCBkb2N1bWVudGF0aW9uID0gewogICAgICAgICAgICAgYFdlIGFsc28g
a25vdyB0aGF0IHRpbWVzdGFtcHMgY2FuIGJlIGVhc2lseSBjb252ZXJ0ZWQgdG8gVVVJRHMuIEVu
ZHBvaW50cyB3aGljaCBzdXBwb3J0IHF1ZXJ5aW5nIGJ5IFVVSUQgYWxzbyBzdXBwb3J0IHF1ZXJ5
aW5nIGJ5IFVUQyB0aW1lc3RhbXAuIE91ciBwcmV2aW91cyBxdWVyeSBjb3VsZCBiZSBpbnN0ZWFk
IHdyaXR0ZW4gbGlrZSB0aGlzOmAsCiAgICAgICAgICAgICBjb2RlQmxvY2soJ2FmdGVyX3RpbWVz
dGFtcD0xNTYyOTUxNDkxJmJlZm9yZV90aW1lc3RhbXA9MTU2Mjk1MjQ3MycpLAogICAgICAgICAg
ICAgYENvbW1pdHMgY2FuIGFsc28gYmUgdHJhbnNsYXRlZCB0byB0aW1lc3RhbXAsIGFsdGhvdWdo
IHdpdGggYSBiaXQgbW9yZSB3b3JrIHJlcXVpcmVkIGZyb20gdGhlIGJhY2stZW5kLiBFbmRwb2lu
dHMgd2hpY2ggc3VwcG9ydCBxdWVyeWluZyBieSBVVUlEIGFsc28gc3VwcG9ydCBxdWVyeWluZyBi
eSBjb21taXQgaW5mb3JtYXRpb24uIEluIHRoZSBmaXJzdCBleGFtcGxlIGluIHRoaXMgc2VjdGlv
biwgd2UgcXVlcmllZCBieSBVVUlEIDE1NjI5NTI0NzMwMC4gVGhpcyBjb3JyZXNwb25kcyB0byAk
e2V4dGVybmFsTGluaygnaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI0NzM5MS93
ZWJraXQnLCAncjI0NzM5MScpfS4gV2UgY291bGQgaW5zdGVhZCBxdWVyeSBieSB0aGUgY29tbWl0
IGluZm9ybWF0aW9uOmAsCi0gICAgICAgICAgICBjb2RlQmxvY2soJ2lkPTI0NzM5MSZyZXBvc2l0
b3J5X2lkPXdlYmtpdCZicmFuY2g9dHJ1bmsnKSwKKyAgICAgICAgICAgIGNvZGVCbG9jaygnaWQ9
MjQ3MzkxJnJlcG9zaXRvcnlfaWQ9d2Via2l0JmJyYW5jaD1tYWluJyksCiAgICAgICAgICAgICBg
QnV0LCBhcyBvdXRsaW5lZCBpbiB0aGUgb3ZlcnZpZXdzIGFib3V0ICR7bG9jYWxMaW5rKFsnUXVl
cnkgUGFyYW1ldGVycycsICdCcmFuY2gnXSwgJ2JyYW5jaGVzJyl9IGFuZCAke2xvY2FsTGluayhb
J1F1ZXJ5IFBhcmFtZXRlcnMnLCAnUmVwb3NpdG9yeSddLCAncmVwb3NpdG9yaWVzJyl9LCBlbmRw
b2ludHMgd2hpY2ggc3VwcG9ydCB0aG9zZSBxdWVyaWVzIGhhdmUgZGVmYXVsdHMgd2hpY2ggY292
ZXIgbWFueSBjYXNlcywgc28gdGhlIHByZXZpb3VzIHF1ZXJ5IGNvdWxkIGJlIHNpbXBsaWZpZWQg
dG86YCwKICAgICAgICAgICAgIGNvZGVCbG9jaygnaWQ9MjQ3MzkxJyksCiAgICAgICAgICAgICBg
QmVjYXVzZSBlbmRwb2ludHMgc3VwcG9ydGluZyB0aW1lIGFyZSBjb252ZXJ0IGV2ZXJ5dGhpbmcg
dG8gVVVJRCBvbiB0aGUgYmFja2VuZCwgdGhlIHF1ZXJpZXMgdG8gdGhlc2UgZW5kcG9pbnRzIGFy
ZSBxdWl0ZSBmbGV4aWJsZS4gVGhlIGZvbGxvd2luZyBhcmUgYWxsIGV4YW1wbGVzIG9mIHZhbGlk
IHRpbWUgcXVlcmllczpgLAogICAgICAgICAgICAgY29kZUJsb2NrKCdhZnRlcl9pZD0yNDczOTEm
cmVwb3NpdG9yeV9pZD13ZWJraXQnKSwKICAgICAgICAgICAgIGNvZGVCbG9jaygnYWZ0ZXJfaWQ9
MjQ3MzkwJmJlZm9yZV90aW1lc3RhbXA9MTU2Mjk1MjQ3MycpLAotICAgICAgICAgICAgY29kZUJs
b2NrKCdiZWZvcmVfaWQ9MjQ3MzkxJmFmdGVyX3V1aWQ9MTU2Mjk1MTQ5MTAwJmJlZm9yZV9icmFu
Y2g9dHJ1bmsnKSwKKyAgICAgICAgICAgIGNvZGVCbG9jaygnYmVmb3JlX2lkPTI0NzM5MSZhZnRl
cl91dWlkPTE1NjI5NTE0OTEwMCZiZWZvcmVfYnJhbmNoPW1haW4nKSwKICAgICAgICAgXSwKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9pbnZlc3RpZ2F0ZS5odG1sIGIvVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvaW52ZXN0
aWdhdGUuaHRtbAppbmRleCA3Njk1ZWM4M2ZiNGFkYWU4OTdlNTE4OWU3ZDI4N2Y3YWNmYTgxZjVm
Li40MGMxZDE1OWMxMmM4MDZjNDkwOGNjYWFmZTcxMDdmODRhOGI3N2Y2IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS92aWV3L3RlbXBs
YXRlcy9pbnZlc3RpZ2F0ZS5odG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3Vs
dHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL2ludmVzdGlnYXRlLmh0bWwKQEAgLTE0
OCw2ICsxNDgsNyBAQCBjbGFzcyBTdWl0ZUZhaWx1cmVzVmlldyB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnJhbmNoZXMgPSBuZXcgU2V0KGNvbW1pdHMu
bWFwKGNvbW1pdCA9PiBjb21taXQuYnJhbmNoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJhbmNoZXMuZGVsZXRlKCd0cnVuaycpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaGVzLmRlbGV0ZSgnbWFzdGVyJyk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoZXMuZGVsZXRlKCdtYWlu
Jyk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXBv
c2l0b3JpZXMgPSBuZXcgU2V0KGNvbW1pdHMubWFwKGNvbW1pdCA9PiBjb21taXQucmVwb3NpdG9y
eV9pZCkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9yZXN1bHRzZGJweS92aWV3L3RlbXBsYXRlcy9zZWFyY2guaHRtbCBiL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3NlYXJjaC5o
dG1sCmluZGV4IDk1OTBiYzliZmYxOGI2ZjU0YjJlOTEwZWEyYmNjNDljNmU4ZDA1MWEuLjkwOTM5
NDEzZGU0MWUwNDM3NTAwMjc2Yjc2ODE3ZWZjYzBlMWRlYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3Nl
YXJjaC5odG1sCisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3Vs
dHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3NlYXJjaC5odG1sCkBAIC0yMzksNyArMjM5LDkgQEAgRE9N
LmluamVjdCgKICAgICAgICAgICAgIHZpZXcucmVsb2FkKCk7CiAgICAgICAgIH0pLAogICAgICAg
ICBDb25maWd1cmF0aW9uU2VsZWN0b3JzKCgpID0+IHt2aWV3LnJlbG9hZCgpfSksCi0gICAgICAg
IENvbW1pdFJlcHJlc2VudGF0aW9uKCgpID0+IHt2aWV3LnJlbG9hZCgpfSksCisgICAgICAgIENv
bW1pdFJlcHJlc2VudGF0aW9uKCgpID0+IHsKKyAgICAgICAgICAgIHZpZXcucmVmLnNldFN0YXRl
KHtjaGlsZHJlbjogdmlldy5yZWYuc3RhdGUuY2hpbGRyZW59KTsKKyAgICAgICAgfSksCiAgICAg
XSwgKCkgPT4gb25MYXlvdXRDaGFuZ2UuYWRkKCkpfQogCiAgICAgPGRpdiBjbGFzcz0ibWFpbiBy
aWdodC1zaWRlYmFyIHVuZGVyLXRvcGJhci13aXRoLWFjdGlvbnMiPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0
ZXMvc3VpdGVfcmVzdWx0cy5odG1sIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2Ri
cHkvcmVzdWx0c2RicHkvdmlldy90ZW1wbGF0ZXMvc3VpdGVfcmVzdWx0cy5odG1sCmluZGV4IGFl
NWZjNWE1NDRjNTQwYjgyNWVjODIxMDI4MzBjMjhhYTI3NGM3ZTcuLjljMjUwYWJhODA1NTdkMDE1
Y2NiMzcyNzg2YjEzM2Y0OTMyYzFkZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L3ZpZXcvdGVtcGxhdGVzL3N1aXRlX3Jlc3VsdHMu
aHRtbAorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJw
eS92aWV3L3RlbXBsYXRlcy9zdWl0ZV9yZXN1bHRzLmh0bWwKQEAgLTE4Miw3ICsxODIsOSBAQCAk
e0RyYXdlcihbCiAgICAgICAgIHZpZXcucmVsb2FkKCk7CiAgICAgfSksCiAgICAgQ29uZmlndXJh
dGlvblNlbGVjdG9ycygoKSA9PiB7dmlldy5yZWxvYWQoKX0pLAotICAgIENvbW1pdFJlcHJlc2Vu
dGF0aW9uKCgpID0+IHt2aWV3LnJlbG9hZCgpfSksCisgICAgQ29tbWl0UmVwcmVzZW50YXRpb24o
KCkgPT4geworICAgICAgICB2aWV3LnJlZi5zZXRTdGF0ZSh2aWV3LnJlZi5zdGF0ZSk7CisgICAg
fSksCiBdLCAoKSA9PiBvbkxheW91dENoYW5nZS5hZGQoKSl9CiA8ZGl2IGNsYXNzPSJtYWluIHJp
Z2h0LXNpZGViYXIgdW5kZXItdG9wYmFyLXdpdGgtYWN0aW9ucyI+CiAgICAgPGJyPgpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHkgYi9Ub29s
cy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9zZXR1cC5weQppbmRleCA3NWI1ZTdkNzNi
YTUzMzE3MWZmODFjYTY4MzBiYTg1ZWE2NWExOTliLi5kYzYyODliYzU0MDViYzUzYTFmMWJlNDY0
YWY4MjRkZjcwZjU3NTJiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9zZXR1cC5weQorKysgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJw
eS9zZXR1cC5weQpAQCAtMzAsNyArMzAsNyBAQCBkZWYgcmVhZG1lKCk6CiAKIHNldHVwKAogICAg
IG5hbWU9J3Jlc3VsdHNkYnB5JywKLSAgICB2ZXJzaW9uPScyLjAuMycsCisgICAgdmVyc2lvbj0n
Mi4wLjQnLAogICAgIGRlc2NyaXB0aW9uPSdMaWJyYXJ5IGZvciB2aXN1YWxpemluZywgcHJvY2Vz
c2luZyBhbmQgc3RvcmluZyB0ZXN0IHJlc3VsdHMuJywKICAgICBsb25nX2Rlc2NyaXB0aW9uPXJl
YWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3NldHVwLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvc2V0dXAucHkKaW5kZXggNDQ4NTMxZjVjZDUyNWNlYjZlYTgwMzdkMGJlNTg3N2I3
YTJlNWIxNy4uMDJhMTlmNDJlZWQ4ZjU1NDU1NTIzZWUxZGI5OGFkZTA0MzUyOGRlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAucHkKQEAgLTI5LDcgKzI5
LDcgQEAgZGVmIHJlYWRtZSgpOgogCiBzZXR1cCgKICAgICBuYW1lPSd3ZWJraXRzY21weScsCi0g
ICAgdmVyc2lvbj0nMC4xMy42JywKKyAgICB2ZXJzaW9uPScwLjEzLjcnLAogICAgIGRlc2NyaXB0
aW9uPSdMaWJyYXJ5IGRlc2lnbmVkIHRvIGludGVyYWN0IHdpdGggZ2l0IGFuZCBzdm4gcmVwb3Np
dG9yaWVzLicsCiAgICAgbG9uZ19kZXNjcmlwdGlvbj1yZWFkbWUoKSwKICAgICBjbGFzc2lmaWVy
cz1bCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5CmluZGV4IDI1ZWRlY2UxMjMzZjRmZjAzYzVlMjlhNDhi
YjA5MjI2Njk0ZDEwNTAuLjg1MDg2MjJhZWNiNzg1MjJiNmFiZjZiNzM2MWU4NDIxMjljYmZjMTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNj
bXB5L19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5
L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5CkBAIC00Niw3ICs0Niw3IEBAIGV4Y2VwdCBJbXBvcnRF
cnJvcjoKICAgICAgICAgIlBsZWFzZSBpbnN0YWxsIHdlYmtpdGNvcmVweSB3aXRoIGBwaXAgaW5z
dGFsbCB3ZWJraXRjb3JlcHkgLS1leHRyYS1pbmRleC11cmwgPHBhY2thZ2UgaW5kZXggVVJMPmAi
CiAgICAgKQogCi12ZXJzaW9uID0gVmVyc2lvbigwLCAxMywgNikKK3ZlcnNpb24gPSBWZXJzaW9u
KDAsIDEzLCA3KQogCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdmYXN0ZW5lcnMnLCBW
ZXJzaW9uKDAsIDE1LCAwKSkpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdtb25vdG9u
aWMnLCBWZXJzaW9uKDEsIDUpKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2NvbW1pdC5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2NvbW1pdC5weQppbmRleCA0YjYxY2UxYWQxNzQx
MzAyMTk4OWQ2YmJhNDY3ODMxMDY1MTBjYjQwLi4zNDk4OWUxZTM5MWEzNWVjOWYyYjhhNTJiOWE3
ODMyZmEyZDQyM2YwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRz
Y21weS93ZWJraXRzY21weS9jb21taXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvY29tbWl0LnB5CkBAIC0zOSw2ICszOSwxMCBAQCBjbGFz
cyBDb21taXQob2JqZWN0KToKICAgICBjbGFzcyBFbmNvZGVyKGpzb24uSlNPTkVuY29kZXIpOgog
CiAgICAgICAgIGRlZiBkZWZhdWx0KHNlbGYsIG9iaik6CisgICAgICAgICAgICBpZiBpc2luc3Rh
bmNlKG9iaiwgZGljdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHtrZXk6IHNlbGYuZGVmYXVs
dCh2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4gb2JqLml0ZW1zKCl9CisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKG9iaiwgbGlzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFtzZWxmLmRlZmF1
bHQodmFsdWUpIGZvciB2YWx1ZSBpbiBvYmpdCiAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZShvYmosIENvbW1pdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKENvbW1pdC5FbmNv
ZGVyLCBzZWxmKS5kZWZhdWx0KG9iaikKIApAQCAtMjcwLDcgKzI3NCw3IEBAIGNsYXNzIENvbW1p
dChvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHV1aWQoc2VsZik6Ci0gICAgICAg
IGlmIG5vdCBzZWxmLnRpbWVzdGFtcDoKKyAgICAgICAgaWYgc2VsZi50aW1lc3RhbXAgaXMgTm9u
ZToKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLnRpbWVzdGFt
cCAqIHNlbGYuVVVJRF9NVUxUSVBMSUVSICsgc2VsZi5vcmRlcgogCkBAIC0yODUsNyArMjg5LDcg
QEAgY2xhc3MgQ29tbWl0KG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5oYXNoWzpz
ZWxmLkhBU0hfTEFCRUxfU0laRV0KICAgICAgICAgaWYgc2VsZi5pZGVudGlmaWVyIGlzIG5vdCBO
b25lOgogICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmLmlkZW50aWZpZXIpCi0gICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0luY29tcGxldGUgY29tbWl0IGZvcm1hdCcpCisgICAgICAgIHJldHVy
biAnPycKIAogICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKICAgICAgICAgaWYgc2VsZi5pZGVudGlm
aWVyIGFuZCBzZWxmLmJyYW5jaDoKQEAgLTMwMSw4ICszMDUsMTEgQEAgY2xhc3MgQ29tbWl0KG9i
amVjdCk6CiAgICAgZGVmIF9fY21wX18oc2VsZiwgb3RoZXIpOgogICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShvdGhlciwgQ29tbWl0KToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0Nh
bm5vdCBjb21wYXJlIGNvbW1pdCBhbmQge30nLmZvcm1hdCh0eXBlKG90aGVyKSkpCi0gICAgICAg
IGlmIHNlbGYudXVpZCBhbmQgb3RoZXIudXVpZCBhbmQgc2VsZi51dWlkICE9IG90aGVyLnV1aWQ6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi51dWlkIC0gb3RoZXIudXVpZAorICAgICAgICBpZiBz
ZWxmLnV1aWQgYW5kIG90aGVyLnV1aWQ6CisgICAgICAgICAgICBpZiBzZWxmLnV1aWQgIT0gb3Ro
ZXIudXVpZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi51dWlkIC0gb3RoZXIudXVpZAor
ICAgICAgICAgICAgaWYgc2VsZi5yZXBvc2l0b3J5X2lkICE9IG90aGVyLnJlcG9zaXRvcnlfaWQ6
CisgICAgICAgICAgICAgICAgcmV0dXJuIDEgaWYgc2VsZi5yZXBvc2l0b3J5X2lkID4gb3RoZXIu
cmVwb3NpdG9yeV9pZCBlbHNlIC0xCiAgICAgICAgIGlmIHNlbGYucmV2aXNpb24gYW5kIG90aGVy
LnJldmlzaW9uOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmV2aXNpb24gLSBvdGhlci5yZXZp
c2lvbgogICAgICAgICBpZiBzZWxmLmlkZW50aWZpZXIgYW5kIG90aGVyLmlkZW50aWZpZXIgYW5k
IHNlbGYuYnJhbmNoID09IG90aGVyLmJyYW5jaDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L21vY2tzL3JlbW90ZS9iaXRidWNrZXQu
cHkgYi9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9tb2Nr
cy9yZW1vdGUvYml0YnVja2V0LnB5CmluZGV4IGJmNWUwNDhlMGRjMTc4YzM1MDg4MGQzOWM1MTVk
YjY5ZDZjNTg4NDYuLmExZDE3MDcxZDA3YmY2ZDA2OGVhODg2ZmZjZTE0OWQxNGEyZjA1NDcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L21vY2tzL3JlbW90ZS9iaXRidWNrZXQucHkKKysrIGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2JpdGJ1Y2tldC5weQpAQCAtMTg2
LDkgKzE4Niw5IEBAIGNsYXNzIEJpdEJ1Y2tldChtb2Nrcy5SZXF1ZXN0cyk6CiAgICAgICAgICAg
ICAgICAgICAgIGRpc3BsYXlOYW1lPWNvbW1pdC5hdXRob3IubmFtZSwKICAgICAgICAgICAgICAg
ICApLAogICAgICAgICAgICAgICAgIGNvbW1pdHRlclRpbWVzdGFtcD1jb21taXQudGltZXN0YW1w
ICogMTAwMCwKLSAgICAgICAgICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlICsgJ1xuZ2l0
LXN2bi1pZDogaHR0cHM6Ly9zdm4uZXhhbXBsZS5vcmcvcmVwb3NpdG9yeS93ZWJraXQve31Ae30g
MjY4ZjQ1Y2MtY2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjXG4nLmZvcm1hdCgKKyAgICAgICAg
ICAgICAgICBtZXNzYWdlPWNvbW1pdC5tZXNzYWdlICsgKCdcbmdpdC1zdm4taWQ6IGh0dHBzOi8v
c3ZuLmV4YW1wbGUub3JnL3JlcG9zaXRvcnkvd2Via2l0L3t9QHt9IDI2OGY0NWNjLWNkMDktMDQx
MC1hYjNjLWQ1MjY5MWI0ZGJmY1xuJy5mb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgICd0cnVu
aycgaWYgY29tbWl0LmJyYW5jaCA9PSBzZWxmLmRlZmF1bHRfYnJhbmNoIGVsc2UgY29tbWl0LmJy
YW5jaCwgY29tbWl0LnJldmlzaW9uLAotICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAg
ICAgKSBpZiBjb21taXQucmV2aXNpb24gZWxzZSAnJyksCiAgICAgICAgICAgICApKQogCiAgICAg
ICAgIGlmIHN0cmlwcGVkX3VybC5zdGFydHN3aXRoKCd7fS9yZXN0L2JyYW5jaC11dGlscy9sYXRl
c3Qve30vYnJhbmNoZXMvaW5mby8nLmZvcm1hdChzZWxmLmhvc3RzWzBdLCBzZWxmLnByb2plY3Qp
KToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtp
dHNjbXB5L21vY2tzL3JlbW90ZS9naXRfaHViLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9odWIucHkKaW5kZXggY2E3
NTNmYzhmZGE3OGVkZmVlMDJjMDE2NjRkYzhmMDlkMjYzZDczMS4uMDA3OGMxNzM4MmQ4NzAyMjE2
MmNkNGNmYThmZWI0ZjFhOTA1NDA4NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVtb3RlL2dpdF9odWIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvcmVt
b3RlL2dpdF9odWIucHkKQEAgLTIzLDcgKzIzLDYgQEAKIGltcG9ydCBvcwogaW1wb3J0IGpzb24K
IAotZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKIGZyb20gd2Via2l0Y29yZXB5IGltcG9y
dCBtb2NrcwogZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0LCByZW1vdGUgYXMgc2NtcmVt
b3RlCiAKQEAgLTEzNCw2ICsxMzMsOCBAQCBjbGFzcyBHaXRIdWIobW9ja3MuUmVxdWVzdHMpOgog
ICAgICAgICBdLCB1cmw9dXJsKQogCiAgICAgZGVmIF9jb21taXRfcmVzcG9uc2Uoc2VsZiwgdXJs
LCByZWYpOgorICAgICAgICBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRh
CisKICAgICAgICAgY29tbWl0ID0gc2VsZi5jb21taXQocmVmKQogICAgICAgICBpZiBub3QgY29t
bWl0OgogICAgICAgICAgICAgcmV0dXJuIG1vY2tzLlJlc3BvbnNlKApAQCAtMTQ3LDExICsxNDgs
MTEgQEAgY2xhc3MgR2l0SHViKG1vY2tzLlJlcXVlc3RzKToKICAgICAgICAgICAgICAgICAnYXV0
aG9yJzogewogICAgICAgICAgICAgICAgICAgICAnbmFtZSc6IGNvbW1pdC5hdXRob3IubmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgJ2VtYWlsJzogY29tbWl0LmF1dGhvci5lbWFpbCwKLSAgICAg
ICAgICAgICAgICAgICAgJ2RhdGUnOiBkYXRldGltZS5mcm9tdGltZXN0YW1wKGNvbW1pdC50aW1l
c3RhbXApLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onKSwKKyAgICAgICAgICAgICAgICAg
ICAgJ2RhdGUnOiBkYXRldGltZS51dGNmcm9tdGltZXN0YW1wKGNvbW1pdC50aW1lc3RhbXAgLSB0
aW1lZGVsdGEoaG91cnM9Nykuc2Vjb25kcykuc3RyZnRpbWUoJyVZLSVtLSVkVCVIOiVNOiVTWicp
LAogICAgICAgICAgICAgICAgIH0sICdjb21taXR0ZXInOiB7CiAgICAgICAgICAgICAgICAgICAg
ICduYW1lJzogY29tbWl0LmF1dGhvci5uYW1lLAogICAgICAgICAgICAgICAgICAgICAnZW1haWwn
OiBjb21taXQuYXV0aG9yLmVtYWlsLAotICAgICAgICAgICAgICAgICAgICAnZGF0ZSc6IGRhdGV0
aW1lLmZyb210aW1lc3RhbXAoY29tbWl0LnRpbWVzdGFtcCkuc3RyZnRpbWUoJyVZLSVtLSVkVCVI
OiVNOiVTWicpLAorICAgICAgICAgICAgICAgICAgICAnZGF0ZSc6IGRhdGV0aW1lLnV0Y2Zyb210
aW1lc3RhbXAoY29tbWl0LnRpbWVzdGFtcCAtIHRpbWVkZWx0YShob3Vycz03KS5zZWNvbmRzKS5z
dHJmdGltZSgnJVktJW0tJWRUJUg6JU06JVNaJyksCiAgICAgICAgICAgICAgICAgfSwgJ21lc3Nh
Z2UnOiBjb21taXQubWVzc2FnZSArICdcbmdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmV4YW1wbGUu
b3JnL3JlcG9zaXRvcnkvd2Via2l0L3t9QHt9IDI2OGY0NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5
MWI0ZGJmY1xuJy5mb3JtYXQoCiAgICAgICAgICAgICAgICAgICAgICd0cnVuaycgaWYgY29tbWl0
LmJyYW5jaCA9PSBzZWxmLmRlZmF1bHRfYnJhbmNoIGVsc2UgY29tbWl0LmJyYW5jaCwgY29tbWl0
LnJldmlzaW9uLAogICAgICAgICAgICAgICAgICkgaWYgY29tbWl0LnJldmlzaW9uIGVsc2UgJycs
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9zY21fYmFzZS5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L3NjbV9iYXNlLnB5CmluZGV4IDM2YjFjMDA5ODk1ODdiMTkxOWE4MjNlZmNjOGYz
ZDRhNzgzZWJhZjEuLmIwMmM4YTQzZmRiZWZjNTE3M2M1ZGM5MjE1Yzk5NDNjOTU0YzkwMDIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5
L3NjbV9iYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L3NjbV9iYXNlLnB5CkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNjbUJhc2Uob2Jq
ZWN0KToKICAgICAjIHRoZSBmb2xsb3dpbmcgaWRpb21zIHNlZW0gY29tbW9uIGVub3VnaCB0byBi
ZSBzaGFyZWQuCiAgICAgREVWX0JSQU5DSEVTID0gcmUuY29tcGlsZShyJy4qWyhlbmcpKGRldiko
YnVnKV0vLisnKQogICAgIFBST0RfQlJBTkNIRVMgPSByZS5jb21waWxlKHInXFMrLVtcZCtcLl0r
LWJyYW5jaCcpCi0gICAgR0lUX1NWTl9SRVZJU0lPTiA9IHJlLmNvbXBpbGUocidnaXQtc3ZuLWlk
OiBcUys6XC9cLy4rQCg/UDxyZXZpc2lvbj5cZCspIC4rLS4rLS4rLS4rJykKKyAgICBHSVRfU1ZO
X1JFVklTSU9OID0gcmUuY29tcGlsZShyJ1teIF1naXQtc3ZuLWlkOiBcUys6XC9cLy4rQCg/UDxy
ZXZpc2lvbj5cZCspIC4rLS4rLS4rLS4rJykKICAgICBERUZBVUxUX0JSQU5DSEVTID0gWydtYWlu
JywgJ21hc3RlcicsICd0cnVuayddCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZGV2X2JyYW5j
aGVzPU5vbmUsIHByb2RfYnJhbmNoZXM9Tm9uZSwgY29udHJpYnV0b3JzPU5vbmUsIGlkPU5vbmUp
Ogo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424664</attachid>
            <date>2021-03-30 11:25:57 -0700</date>
            <delta_ts>2021-03-30 11:40:54 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223262-20210330112556.patch</filename>
            <type>text/plain</type>
            <size>1845</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MjE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTVjZDQyZjY4ODY0ZGRhNTY2NDFiMjNlZDVhZmU0ZGQy
ODUyMjJiMS4uYTczNTZkM2Q1NzVlYjU2MWMwZjBmODcyM2MxYTA0ZThkMDJiMWM4OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTAzLTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbcmVzdWx0c2RicHldIFJldHVybiBuZXctc3R5bGUgY29tbWl0cyAoRm9sbG93LXVw
IGZpeCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MzI2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU0ODMzNjE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy9yZXN1
bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5OgorICAg
ICAgICAoQ29tbWl0Q29udHJvbGxlci5yZWdpc3Rlcik6IEFsbG93IGJyYW5jaCBpbiBjb21taXQg
dXBsb2Fkcy4KKwogMjAyMS0wMy0zMCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW2V3c10gQWRkIGJ1aWxkIHN0ZXAgdG8gZmluZCBsaXN0IG9mIGxheW91
dCB0ZXN0cyBtb2RpZmllZCBieSBhIHBhdGNoCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2xp
YnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9s
bGVyLnB5IGIvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkv
Y29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weQppbmRleCA0ZGJhMzU1ZGQxMjY4MmRhZWUy
ZDQzZTI5NmJhZGU5MGJlNGJhZGViLi5iZTI3Mjc4YjNkZTM3ZDFmYzNiZGI0YjMxYjAxY2ExNDkw
ZjY2NjU1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9y
ZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9jb250cm9sbGVyLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2NvbnRyb2xsZXIvY29tbWl0
X2NvbnRyb2xsZXIucHkKQEAgLTMwOCw5ICszMDgsOSBAQCBjbGFzcyBDb21taXRDb250cm9sbGVy
KEhhc0NvbW1pdENvbnRleHQpOgogCiAKICAgICAgICAgZm9yIGFyZyBpbiBjb21taXQua2V5cygp
OgotICAgICAgICAgICAgaWYgYXJnIGluIHJlcXVpcmVkX2FyZ3Mgb3IgYXJnIGluIG9uZV9vZl9h
cmdzOgorICAgICAgICAgICAgaWYgYXJnIGluIHJlcXVpcmVkX2FyZ3Mgb3IgYXJnIGluIG9uZV9v
Zl9hcmdzIG9yIGFyZyBpbiBbJ2JyYW5jaCddOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICBpZiBhcmcgaW4gWydicmFuY2gnLCAndGltZXN0YW1wJywgJ29yZGVyJywgJ2Nv
bW1pdHRlcicsICdtZXNzYWdlJ106CisgICAgICAgICAgICBpZiBhcmcgaW4gWyd0aW1lc3RhbXAn
LCAnb3JkZXInLCAnY29tbWl0dGVyJywgJ21lc3NhZ2UnXToKICAgICAgICAgICAgICAgICBhYm9y
dCg0MDAsIGRlc2NyaXB0aW9uPSdOb3QgZW5vdWdoIGFyZ3VtZW50cyBwcm92aWRlZCB0byBkZWZp
bmUgYSBjb21taXQsIGJ1dCB0b28gbWFueSB0byBzZWFyY2ggZm9yIGEgY29tbWl0JykKICAgICAg
ICAgICAgIGFib3J0KDQwMCwgZGVzY3JpcHRpb249ZiIne2FyZ30nIGlzIG5vdCB2YWxpZCBmb3Ig
ZGVmaW5pbmcgY29tbWl0cyIpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424666</attachid>
            <date>2021-03-30 11:40:57 -0700</date>
            <delta_ts>2021-03-30 12:17:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223262-20210330114055.patch</filename>
            <type>text/plain</type>
            <size>1843</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MjE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTVjZDQyZjY4ODY0ZGRhNTY2NDFiMjNlZDVhZmU0ZGQy
ODUyMjJiMS4uZmU5MTRjY2M4ZDk0ZDc2NjM3MTMzY2RlMWVkZTUyMWEyNzY0MjJhZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIxLTAzLTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbcmVzdWx0c2RicHldIFJldHVybiBuZXctc3R5bGUgY29tbWl0cyAoRm9sbG93LXVw
IGZpeCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MzI2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU0ODMzNjE+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCBmb2xsb3ctdXAgZml4LgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0
c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weToKKyAgICAg
ICAgKENvbW1pdENvbnRyb2xsZXIucmVnaXN0ZXIpOiBBbGxvdyBicmFuY2ggaW4gY29tbWl0IHVw
bG9hZHMuCisKIDIwMjEtMDMtMzAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtld3NdIEFkZCBidWlsZCBzdGVwIHRvIGZpbmQgbGlzdCBvZiBsYXlvdXQg
dGVzdHMgbW9kaWZpZWQgYnkgYSBwYXRjaApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9saWJy
YXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxl
ci5weSBiL1Rvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jlc3VsdHNkYnB5L2Nv
bnRyb2xsZXIvY29tbWl0X2NvbnRyb2xsZXIucHkKaW5kZXggNGRiYTM1NWRkMTI2ODJkYWVlMmQ0
M2UyOTZiYWRlOTBiZTRiYWRlYi4uYmUyNzI3OGIzZGUzN2QxZmMzYmRiNGIzMWIwMWNhMTQ5MGY2
NjY1NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVz
dWx0c2RicHkvY29udHJvbGxlci9jb21taXRfY29udHJvbGxlci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9yZXN1bHRzZGJweS9jb250cm9sbGVyL2NvbW1pdF9j
b250cm9sbGVyLnB5CkBAIC0zMDgsOSArMzA4LDkgQEAgY2xhc3MgQ29tbWl0Q29udHJvbGxlcihI
YXNDb21taXRDb250ZXh0KToKIAogCiAgICAgICAgIGZvciBhcmcgaW4gY29tbWl0LmtleXMoKToK
LSAgICAgICAgICAgIGlmIGFyZyBpbiByZXF1aXJlZF9hcmdzIG9yIGFyZyBpbiBvbmVfb2ZfYXJn
czoKKyAgICAgICAgICAgIGlmIGFyZyBpbiByZXF1aXJlZF9hcmdzIG9yIGFyZyBpbiBvbmVfb2Zf
YXJncyBvciBhcmcgaW4gWydicmFuY2gnXToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgaWYgYXJnIGluIFsnYnJhbmNoJywgJ3RpbWVzdGFtcCcsICdvcmRlcicsICdjb21t
aXR0ZXInLCAnbWVzc2FnZSddOgorICAgICAgICAgICAgaWYgYXJnIGluIFsndGltZXN0YW1wJywg
J29yZGVyJywgJ2NvbW1pdHRlcicsICdtZXNzYWdlJ106CiAgICAgICAgICAgICAgICAgYWJvcnQo
NDAwLCBkZXNjcmlwdGlvbj0nTm90IGVub3VnaCBhcmd1bWVudHMgcHJvdmlkZWQgdG8gZGVmaW5l
IGEgY29tbWl0LCBidXQgdG9vIG1hbnkgdG8gc2VhcmNoIGZvciBhIGNvbW1pdCcpCiAgICAgICAg
ICAgICBhYm9ydCg0MDAsIGRlc2NyaXB0aW9uPWYiJ3thcmd9JyBpcyBub3QgdmFsaWQgZm9yIGRl
ZmluaW5nIGNvbW1pdHMiKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>