<?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>216706</bug_id>
          
          <creation_ts>2020-09-18 10:36:11 -0700</creation_ts>
          <short_desc>Import AudioContext / AudioListener / AudioNode / AudioParam layout tests from Blink</short_desc>
          <delta_ts>2020-09-22 20:51:10 -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>Web Audio</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=216868</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>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689853</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-18 10:36:11 -0700</bug_when>
    <thetext>Import AudioContext / AudioListener / AudioNode / AudioParam layout tests from Blink.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689854</commentid>
    <comment_count>1</comment_count>
      <attachid>409143</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-18 10:37:10 -0700</bug_when>
    <thetext>Created attachment 409143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689864</commentid>
    <comment_count>2</comment_count>
      <attachid>409143</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-09-18 10:50:31 -0700</bug_when>
    <thetext>Comment on attachment 409143
Patch

+1 to more tests! rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689894</commentid>
    <comment_count>3</comment_count>
      <attachid>409157</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-09-18 11:52:29 -0700</bug_when>
    <thetext>Created attachment 409157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689906</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-18 12:18:46 -0700</bug_when>
    <thetext>Committed r267253: &lt;https://trac.webkit.org/changeset/267253&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409157.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689908</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-18 12:19:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/69167494&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409143</attachid>
            <date>2020-09-18 10:37:10 -0700</date>
            <delta_ts>2020-09-18 11:52:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216706-20200918103709.patch</filename>
            <type>text/plain</type>
            <size>508716</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjQ1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDljYTkyMWI2MGM0YTE4NDkyMTI3
NzZiMTUwM2ZiNDQ3NjM3Yzc5MS4uYWY2NTc4ZTc0ZWUxZjhhNDU3MzY3MTUxYmVmNDZjYTAwNGNi
MDIzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMC0wOS0xOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBBdWRpb0NvbnRleHQgLyBBdWRpb0xp
c3RlbmVyIC8gQXVkaW9Ob2RlIC8gQXVkaW9QYXJhbSBsYXlvdXQgdGVzdHMgZnJvbSBCbGluawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NzA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wb3J0IEF1
ZGlvQ29udGV4dCAvIEF1ZGlvTGlzdGVuZXIgLyBBdWRpb05vZGUgLyBBdWRpb1BhcmFtIGxheW91
dCB0ZXN0cyBmcm9tIEJsaW5rLgorCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Db250ZXh0L2F1
ZGlvY29udGV4dC1jbG9zZS1iYXNpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtY2xvc2UtYmFzaWMuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Db250ZXh0L2F1ZGlvY29udGV4dC1saXN0ZW5lci1z
aG91bGQtbm90LWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8v
QXVkaW9Db250ZXh0L2F1ZGlvY29udGV4dC1saXN0ZW5lci1zaG91bGQtbm90LWNyYXNoLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1h
dXRvbWF0aW9uLXBvc2l0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVk
aW8vQXVkaW9MaXN0ZW5lci9hdWRpb2xpc3RlbmVyLWF1dG9tYXRpb24tcG9zaXRpb24uaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci9hdWRpb2xpc3RlbmVyLXNl
dC1wb3NpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
TGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQtcG9zaXRpb24uaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtY29ubmVjdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1jb25uZWN0aW9ucy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1wcm9jZXNzaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtcHJvY2Vz
c2luZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFy
YW0tYXV0b21hdGlvbi1jbGFtcGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1hdXRvbWF0aW9uLWNsYW1waW5nLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jYW5jZWwtYW5k
LWhvbGQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwuCisg
ICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWNsYW1wLXRpbWUtdG8tY3Vy
cmVudC10aW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLWNsYW1wLXRpbWUtdG8tY3VycmVudC10aW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1pbml0aWFsLWV2ZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3Bh
cmFtLWluaXRpYWwtZXZlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLWstcmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
YmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1rLXJhdGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWxpbmVhclJhbXAtdmFsdWUtYXR0cmli
dXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9h
dWRpb3BhcmFtLWxpbmVhclJhbXAtdmFsdWUtYXR0cmlidXRlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1uZWdhdGl2ZS1leHBvbmVudGlhbFJh
bXAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tbmVnYXRpdmUtZXhwb25lbnRpYWxSYW1wLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1ub21pbmFsLXJhbmdlLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tbm9taW5hbC1y
YW5nZS1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3Bh
cmFtLW5vbWluYWwtcmFuZ2UuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS5odG1sLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXByb2Nlc3NpbmcuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNhbXBsaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFt
LXNhbXBsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVk
aW9wYXJhbS1zZXRUYXJnZXQtdGltZUNvbnN0YW50LTAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0LXRpbWVDb25z
dGFudC0wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9w
YXJhbS1zZXRUYXJnZXRBdFRpbWUtY29udGludW91cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtY29u
dGludW91cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tc2V0VGFyZ2V0QXRUaW1lLWxpbWl0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1saW1pdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0
VGFyZ2V0QXRUaW1lLXNhbXBsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1zYW1wbGluZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFs
dWVDdXJ2ZS1jb3B5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVk
aW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtY29weS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1kdXJhdGlv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVk
aW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWR1cmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWVuZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRW
YWx1ZUN1cnZlLWVuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFt
L2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmVB
dFRpbWUtaW50ZXJwb2xhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1
ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWludGVycG9sYXRp
b24uaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFt
LXVwZGF0ZS12YWx1ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tdXBkYXRlLXZhbHVlLWF0dHJpYnV0ZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tdmFsdWUt
c2V0dGVyLWVycm9yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVk
aW9QYXJhbS9hdWRpb3BhcmFtLXZhbHVlLXNldHRlci1lcnJvci5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9jYW5jZWwtdmFs
dWVzLWNyYXNoLTkxMzIxNy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1Bh
cmFtL3ZhbHVlLXNldHRlci13YXJuaW5ncy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvUGFyYW0vdmFsdWUtc2V0dGVyLXdhcm5pbmdzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vd29ya2xldC13YXJuaW5ncy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vd29ya2xldC13YXJuaW5n
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb3BhcmFtLWV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb3BhcmFtLWxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9wYXJh
bS1zZXRWYWx1ZUF0VGltZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9hdWRp
b3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhdWRp
by9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzLgorICAgICAgICAocmVuZGVyTGVuZ3Ro
KToKKyAgICAgICAgKGNyZWF0ZUNvbnN0YW50QnVmZmVyKToKKyAgICAgICAgKGNyZWF0ZUNvbnN0
YW50QXJyYXkpOgorICAgICAgICAoY3JlYXRlTGluZWFyUmFtcEFycmF5KToKKyAgICAgICAgKGNy
ZWF0ZUV4cG9uZW50aWFsUmFtcEFycmF5KToKKyAgICAgICAgKGRpc2NyZXRlVGltZUNvbnN0YW50
Rm9yU2FtcGxlUmF0ZSk6CisgICAgICAgIChjcmVhdGVFeHBvbmVudGlhbEFwcHJvYWNoQXJyYXkp
OgorICAgICAgICAoY3JlYXRlU2luZVdhdmVBcnJheSk6CisgICAgICAgIChlbmRWYWx1ZURlbHRh
KToKKyAgICAgICAgKHZhbHVlVXBkYXRlKToKKyAgICAgICAgKGNvbXBhcmVQYXJ0aWFsU2lnbmFs
cyk6CisgICAgICAgICh2ZXJpZnlEaXNjb250aW51aXRpZXMpOgorICAgICAgICAoY29tcGFyZVNp
Z25hbHMpOgorICAgICAgICAoY2hlY2tSZXN1bHRGdW5jdGlvbik6CisgICAgICAgIChkb0F1dG9t
YXRpb24pOgorICAgICAgICAoY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QpOgorICAgICAgICAqIHdl
YmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanM6CisgICAgICAgIChyZW5kZXJM
ZW5ndGgpOgorICAgICAgICAoY3JlYXRlQ29uc3RhbnRBcnJheSk6CisgICAgICAgIChnZXRTdGFy
dEVuZEZyYW1lcyk6CisgICAgICAgIChjcmVhdGVMaW5lYXJSYW1wQXJyYXkpOgorICAgICAgICAo
Y3JlYXRlRXhwb25lbnRpYWxSYW1wQXJyYXkpOgorICAgICAgICAoZGlzY3JldGVUaW1lQ29uc3Rh
bnRGb3JTYW1wbGVSYXRlKToKKyAgICAgICAgKGNyZWF0ZUV4cG9uZW50aWFsQXBwcm9hY2hBcnJh
eSk6CisgICAgICAgIChjcmVhdGVSZWZlcmVuY2VTaW5lQXJyYXkpOgorICAgICAgICAoY3JlYXRl
U2luZVdhdmVBcnJheSk6CisgICAgICAgIChlbmRWYWx1ZURlbHRhKToKKyAgICAgICAgKHJlbGF0
aXZlRXJyb3JNZXRyaWMpOgorICAgICAgICAoZGlmZmVyZW5jZUVycm9yTWV0cmljKToKKyAgICAg
ICAgKHZhbHVlVXBkYXRlKToKKyAgICAgICAgKGNvbXBhcmVQYXJ0aWFsU2lnbmFscyk6CisgICAg
ICAgICh2ZXJpZnlEaXNjb250aW51aXRpZXMpOgorICAgICAgICAoY29tcGFyZVNpZ25hbHMpOgor
ICAgICAgICAoY2hlY2tSZXN1bHRGdW5jdGlvbik6CisgICAgICAgIChkb0F1dG9tYXRpb24pOgor
ICAgICAgICAoY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QpOgorICAgICAgICAqIHdlYmF1ZGlvL3Jl
c291cmNlcy9zZXQtcG9zaXRpb24tdnMtY3VydmUtdGVzdC5qczogQWRkZWQuCisgICAgICAgICh0
ZXN0UG9zaXRpb25TZXR0ZXJWc0N1cnZlKToKKwogMjAyMC0wOS0xOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCBBbmFseXNlciAvIEF1ZGlvQnVmZmVy
IC8gQXVkaW9CdWZmZXJTb3VyY2UgbGF5b3V0IHRlc3RzIGZyb20gQmxpbmsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtY2xvc2UtYmFz
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Db250ZXh0L2F1ZGlv
Y29udGV4dC1jbG9zZS1iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM5YWE3MzM5MzQ3
OTYxYmRmNWEwZTY3OWJkOTU0NmZkMGQ1NDJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtY2xvc2UtYmFzaWMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTA5IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFS
VEVELiAKK1BBU1MgRXhlY3V0aW5nICJ0ZXN0IiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+
IFt0ZXN0XSBUZXN0IHRoYXQgY2xvc2luZyBhIGNvbnRleHQgcmVsZWFzZXMgdGhlIGF1ZGlvIEhX
IGNvbnRleHQgCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMSBpcyBl
cXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0
IDIgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQg
Y29udGV4dCAzIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3Ig
Y2xvc2VkIGNvbnRleHQgNCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3Rh
dGUgZm9yIGNsb3NlZCBjb250ZXh0IDUgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250
ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA2IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNT
ICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNyBpcyBlcXVhbCB0byBjbG9zZWQu
IAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDggaXMgZXF1YWwgdG8g
Y2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA5IGlzIGVx
dWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQg
MTAgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQg
Y29udGV4dCAxMSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9y
IGNsb3NlZCBjb250ZXh0IDEyIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5z
dGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMTMgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBj
b250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAxNCBpcyBlcXVhbCB0byBjbG9zZWQuIAor
UEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDE1IGlzIGVxdWFsIHRvIGNs
b3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMTYgaXMgZXF1
YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAx
NyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBj
b250ZXh0IDE4IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3Ig
Y2xvc2VkIGNvbnRleHQgMTkgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0
YXRlIGZvciBjbG9zZWQgY29udGV4dCAyMCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNv
bnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDIxIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQ
QVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMjIgaXMgZXF1YWwgdG8gY2xv
c2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAyMyBpcyBlcXVh
bCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDI0
IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNv
bnRleHQgMjUgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBj
bG9zZWQgY29udGV4dCAyNiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3Rh
dGUgZm9yIGNsb3NlZCBjb250ZXh0IDI3IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29u
dGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMjggaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BB
U1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAyOSBpcyBlcXVhbCB0byBjbG9z
ZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDMwIGlzIGVxdWFs
IHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMzEg
aXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29u
dGV4dCAzMiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNs
b3NlZCBjb250ZXh0IDMzIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0
ZSBmb3IgY2xvc2VkIGNvbnRleHQgMzQgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250
ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAzNSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFT
UyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDM2IGlzIGVxdWFsIHRvIGNsb3Nl
ZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMzcgaXMgZXF1YWwg
dG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAzOCBp
cyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250
ZXh0IDM5IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xv
c2VkIGNvbnRleHQgNDAgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRl
IGZvciBjbG9zZWQgY29udGV4dCA0MSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRl
eHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDQyIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNT
ICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNDMgaXMgZXF1YWwgdG8gY2xvc2Vk
LiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA0NCBpcyBlcXVhbCB0
byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDQ1IGlz
IGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRl
eHQgNDYgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9z
ZWQgY29udGV4dCA0NyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUg
Zm9yIGNsb3NlZCBjb250ZXh0IDQ4IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4
dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNDkgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1Mg
ICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA1MCBpcyBlcXVhbCB0byBjbG9zZWQu
IAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDUxIGlzIGVxdWFsIHRv
IGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNTIgaXMg
ZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4
dCA1MyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3Nl
ZCBjb250ZXh0IDU0IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBm
b3IgY2xvc2VkIGNvbnRleHQgNTUgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0
LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA1NiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAg
IGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDU3IGlzIGVxdWFsIHRvIGNsb3NlZC4g
CitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNTggaXMgZXF1YWwgdG8g
Y2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA1OSBpcyBl
cXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0
IDYwIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2Vk
IGNvbnRleHQgNjEgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZv
ciBjbG9zZWQgY29udGV4dCA2MiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQu
c3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDYzIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAg
Y29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNjQgaXMgZXF1YWwgdG8gY2xvc2VkLiAK
K1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA2NSBpcyBlcXVhbCB0byBj
bG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDY2IGlzIGVx
dWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQg
NjcgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQg
Y29udGV4dCA2OCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9y
IGNsb3NlZCBjb250ZXh0IDY5IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5z
dGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNzAgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBj
b250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA3MSBpcyBlcXVhbCB0byBjbG9zZWQuIAor
UEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDcyIGlzIGVxdWFsIHRvIGNs
b3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNzMgaXMgZXF1
YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA3
NCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBj
b250ZXh0IDc1IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3Ig
Y2xvc2VkIGNvbnRleHQgNzYgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0
YXRlIGZvciBjbG9zZWQgY29udGV4dCA3NyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNv
bnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDc4IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQ
QVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNzkgaXMgZXF1YWwgdG8gY2xv
c2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA4MCBpcyBlcXVh
bCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDgx
IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNv
bnRleHQgODIgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBj
bG9zZWQgY29udGV4dCA4MyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3Rh
dGUgZm9yIGNsb3NlZCBjb250ZXh0IDg0IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29u
dGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgODUgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BB
U1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA4NiBpcyBlcXVhbCB0byBjbG9z
ZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDg3IGlzIGVxdWFs
IHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgODgg
aXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29u
dGV4dCA4OSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNs
b3NlZCBjb250ZXh0IDkwIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0
ZSBmb3IgY2xvc2VkIGNvbnRleHQgOTEgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250
ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA5MiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFT
UyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDkzIGlzIGVxdWFsIHRvIGNsb3Nl
ZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgOTQgaXMgZXF1YWwg
dG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA5NSBp
cyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250
ZXh0IDk2IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xv
c2VkIGNvbnRleHQgOTcgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRl
IGZvciBjbG9zZWQgY29udGV4dCA5OCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRl
eHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDk5IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNT
ICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMTAwIGlzIGVxdWFsIHRvIGNsb3Nl
ZC4gCitQQVNTICAgTnVtYmVyIG9mIGNvbnRleHRzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkIGFuZCBj
bG9zZWQgaXMgZXF1YWwgdG8gMTAwLiAKK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMTAxIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJ
TklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb0NvbnRleHQvYXVkaW9jb250ZXh0LWNsb3NlLWJhc2ljLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0NvbnRleHQvYXVkaW9jb250ZXh0LWNsb3NlLWJh
c2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVlYWM0ODBjNDhmODliOGFmZmEwOTNhNWY4YjVjN2Y0NzE2
MDgyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC9hdWRpb2NvbnRleHQtY2xvc2UtYmFzaWMuaHRtbApAQCAtMCwwICsxLDcyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IEF1ZGlv
Q29udGV4dC5jbG9zZSgpIGNsb3NlcyBtYW55IGNvbnRleHRzCisgICAgPC90aXRsZT4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5j
cmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIGxldCBjb250ZXh0ID0gbnVsbDsKKworICAgICAg
Ly8gVGhlIG51bWJlciBvZiBjb250ZXh0cyB3ZSB3YW50IHRvIGNyZWF0ZSBhbmQgY2xvc2UuCisg
ICAgICBsZXQgTUFYX0lURVJBVElPTiA9IDEwMDsKKyAgICAgIGxldCBjb3VudGVyID0gMDsKKwor
ICAgICAgZnVuY3Rpb24gY3JlYXRlQ29udGV4dEFuZENsb3NlKHRhc2ssIHNob3VsZCkgeworICAg
ICAgICAvLyBCeXBhc3MgdGhlIGZpcnN0IGl0ZXJhdGlvbi4KKyAgICAgICAgaWYgKGNvbnRleHQp
IHsKKyAgICAgICAgICBzaG91bGQoY29udGV4dC5zdGF0ZSwgJ2NvbnRleHQuc3RhdGUgZm9yIGNs
b3NlZCBjb250ZXh0ICcgKyBjb3VudGVyKQorICAgICAgICAgICAgICAuYmVFcXVhbFRvKCdjbG9z
ZWQnKTsKKyAgICAgICAgICBjb250ZXh0ID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAvLyBD
cmVhdGUgbmV3IGNvbnRleHQgYW5kIGNsb3NlLgorICAgICAgICBjb250ZXh0ID0gbmV3IEF1ZGlv
Q29udGV4dCgpOworICAgICAgICBpZiAoY291bnRlcisrIDwgTUFYX0lURVJBVElPTikgeworICAg
ICAgICAgIC8vIFJlY3Vyc2l2ZSBwcm9taXNlIHJlc29sdXRpb24uCisgICAgICAgICAgY29udGV4
dC5jbG9zZSgpLnRoZW4oCisgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIGNyZWF0ZUNvbnRleHRBbmRDbG9zZSh0YXNrLCBzaG91bGQpOworICAgICAgICAgICAgICB9
LAorICAgICAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBvbkZhaWx1cmUo
c2hvdWxkKTsKKyAgICAgICAgICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgICAgICAgICAgfSk7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgY29udGV4dC5jbG9zZSgpLnRoZW4oZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAvLyB8Y291bnRlcnwgaXMgb25lIG1vcmUgdGhhbiBNQVhfSVRF
UkFUSU9OIGlmIHdlCisgICAgICAgICAgICAvLyBzdWNjZWVkZWQuCisgICAgICAgICAgICBzaG91
bGQoCisgICAgICAgICAgICAgICAgY291bnRlciAtIDEsCisgICAgICAgICAgICAgICAgJ051bWJl
ciBvZiBjb250ZXh0cyBzdWNjZXNzZnVsbHkgY3JlYXRlZCBhbmQgY2xvc2VkJykKKyAgICAgICAg
ICAgICAgICAuYmVFcXVhbFRvKE1BWF9JVEVSQVRJT04pOworICAgICAgICAgICAgdGFzay5kb25l
KCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24g
b25GYWlsdXJlKHNob3VsZCkgeworICAgICAgICBzaG91bGQoY29udGV4dC5zdGF0ZSwgJ0NvbnRl
eHQgJyArIGNvdW50ZXIgKyAnZmFpbGVkIHRvIGNsb3NlJykKKyAgICAgICAgICAgIC5iZUVxdWFs
VG8oJ2Nsb3NlZCcpOworICAgICAgfQorCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAg
eworICAgICAgICAgICAgbGFiZWw6ICd0ZXN0JywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOgor
ICAgICAgICAgICAgICAgICdUZXN0IHRoYXQgY2xvc2luZyBhIGNvbnRleHQgcmVsZWFzZXMgdGhl
IGF1ZGlvIEhXIGNvbnRleHQnCisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNr
LCBzaG91bGQpIHsKKyAgICAgICAgICAgIGNyZWF0ZUNvbnRleHRBbmRDbG9zZSh0YXNrLCBzaG91
bGQpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4K
KyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0L2F1ZGlvY29udGV4dC1saXN0ZW5lci1zaG91bGQtbm90LWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlz
dGVuZXItc2hvdWxkLW5vdC1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUwNGYxM2U4
ZTUyMmRhODBiYmU5NWIzN2I4NzlkZTE2NzdlY2ExYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlzdGVuZXItc2hvdWxk
LW5vdC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAidGVzdCIgCitQQVNTIEF1ZGl0
IHJlcG9ydCAKK1BBU1MgPiBbdGVzdF0gIAorUEFTUyAgIGNvbnRleHQubGlzdGVuZXIgaXMgQXVk
aW9MaXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKDAs
IGNvbnRleHQpIHNob3VsZCBub3QgY3Jhc2ggZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAor
UEFTUyA8IFt0ZXN0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMp
IAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNz
ZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0NvbnRleHQv
YXVkaW9jb250ZXh0LWxpc3RlbmVyLXNob3VsZC1ub3QtY3Jhc2guaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlzdGVuZXItc2hvdWxkLW5vdC1j
cmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmZTBhMzk1OWY2MzAxNjlmMTc5MzEzYTljMmZiNDAyYWE5
ZTFhMWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQvYXVkaW9jb250ZXh0LWxpc3RlbmVyLXNob3VsZC1ub3QtY3Jhc2guaHRtbApAQCAtMCwwICsx
LDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+Cisg
ICAgICBhdWRpb2NvbnRleHQtbGlzdGVuZXItc2hvdWxkLW5vdC1jcmFzaC5odG1sCisgICAgPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IGF1
ZGl0ID0gbmV3IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVkaXQuZGVmaW5l
KCd0ZXN0JywgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgIGxldCBjb250ZXh0ID0g
bmV3IEF1ZGlvQ29udGV4dCgpOworICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBjb250ZXh0
Lmxpc3RlbmVyIGluc3RhbmNlb2YgQXVkaW9MaXN0ZW5lciwKKyAgICAgICAgICAgICdjb250ZXh0
Lmxpc3RlbmVyIGlzIEF1ZGlvTGlzdGVuZXInKQorICAgICAgICAgICAgLmJlVHJ1ZSgpOworICAg
ICAgICBzaG91bGQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigwLCBjb250ZXh0KTsKKyAgICAgICAgfSwgJ2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo
MCwgY29udGV4dCkgc2hvdWxkIG5vdCBjcmFzaCcpLm5vdFRocm93KCk7CisgICAgICAgIHRhc2su
ZG9uZSgpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b0xpc3RlbmVyL2F1ZGlvbGlzdGVuZXItYXV0b21hdGlvbi1wb3NpdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyL2F1ZGlvbGlzdGVuZXItYXV0b21h
dGlvbi1wb3NpdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ExMjQ3NmUyMTAwZTI5YTc5
NWE4MjJhZTE1NDE4MDk3NWI0MTBiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1hdXRvbWF0aW9uLXBvc2l0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBT
VEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJsaW5lYXIiIAorUEFTUyBFeGVjdXRpbmcgImV4cG9u
ZW50aWFsIiAKK1BBU1MgRXhlY3V0aW5nICJpbnZlcnNlIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAor
UEFTUyA+IFtsaW5lYXJdICAKK1BBU1MgICBEaXN0YW5jZSBtb2RlbDogImxpbmVhciIsIHJvbGxv
ZmY6IDE6IGxlZnQgY2hhbm5lbCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJl
c2hvbGQiOjB9LiAKK1BBU1MgICBEaXN0YW5jZSBtb2RlbDogImxpbmVhciIsIHJvbGxvZmY6IDE6
IHJpZ2h0IGNoYW5uZWwgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xk
IjowfS4gCitQQVNTIDwgW2xpbmVhcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBh
c3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxdICAKK1BBU1MgICBEaXN0YW5jZSBtb2Rl
bDogImV4cG9uZW50aWFsIiwgcm9sbG9mZjogMS41OiBsZWZ0IGNoYW5uZWwgZXF1YWxzIFtleHBl
Y3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVU
aHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgRGlzdGFuY2UgbW9k
ZWw6ICJleHBvbmVudGlhbCIsIHJvbGxvZmY6IDEuNTogcmlnaHQgY2hhbm5lbCBlcXVhbHMgW2V4
cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbZXhwb25lbnRp
YWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4g
W2ludmVyc2VdICAKK1BBU1MgICBEaXN0YW5jZSBtb2RlbDogImludmVyc2UiLCByb2xsb2ZmOiAx
OiBsZWZ0IGNoYW5uZWwgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xk
IjowfS4gCitQQVNTICAgRGlzdGFuY2UgbW9kZWw6ICJpbnZlcnNlIiwgcm9sbG9mZjogMTogcmln
aHQgY2hhbm5lbCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9
LiAKK1BBU1MgPCBbaW52ZXJzZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3Nl
cnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMyB0YXNrcyByYW4g
c3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9M
aXN0ZW5lci9hdWRpb2xpc3RlbmVyLWF1dG9tYXRpb24tcG9zaXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1hdXRvbWF0aW9uLXBvc2l0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVjNzIwZDk2NmFhN2Y5ZjE3OWEyMGVmNmExMmFiOTBhNjc1
NjMzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVu
ZXIvYXVkaW9saXN0ZW5lci1hdXRvbWF0aW9uLXBvc2l0aW9uLmh0bWwKQEAgLTAsMCArMSwxNzQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAg
IFRlc3QgQXV0b21hdGlvbiBvZiBBdWRpb0xpc3RlbmVyCisgICAgPC90aXRsZT4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNj
cmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDQ4MDAw
OworICAgICAgLy8gVGhlc2UgdGVzdHMgYXJlIHF1aXRlIHNsb3csIHNvIGRvbid0IHJ1biBmb3Ig
bWFueSBmcmFtZXMuICAxMDI0IGZyYW1lcworICAgICAgLy8gc2hvdWxkIGJlIGVub3VnaCB0byBk
ZW1vbnN0cmF0ZSB0aGF0IGF1dG9tYXRpb25zIGFyZSB3b3JraW5nLgorICAgICAgbGV0IHJlbmRl
ckZyYW1lcyA9IDEwMjQ7CisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSByZW5kZXJGcmFtZXMg
LyBzYW1wbGVSYXRlOworCisgICAgICAvLyBFbmQgdGltZSBvZiB0aGUgYXV0b21hdGlvbi4gIEZh
aXJseSBhcmJpdHJhcnksIGJ1dCBtdXN0IGJlIGxlc3MgdGhhbgorICAgICAgLy8gdGhlIHJlbmRl
ciBkdXJhdGlvbiBzbyB0aGF0IHdlIGNhbiB2ZXJpZnkgdGhhdCB0aGUgYXV0b21hdGlvbiBkaWQg
ZW5kCisgICAgICAvLyBhdCB0aGUgY29ycmVjdCB0aW1lIGFuZCB2YWx1ZS4KKyAgICAgIGxldCBl
bmRUaW1lID0gMC43NSAqIHJlbmRlckR1cmF0aW9uOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRp
dC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIC8vIFN0YXJ0aW5nIHBvc2l0aW9uIGZvciB0
aGUgcGFubmVyCisgICAgICBsZXQgZGVmYXVsdFN0YXJ0UG9zaXRpb24gPSB7eDogMCwgeTogMCwg
ejogMH07CisKKyAgICAgIC8vIEVuZGluZyBwb3NpdGlvbiBmb3IgdGhlIHBhbm5lcgorICAgICAg
bGV0IHBhbm5lckVuZFBvc2l0aW9uID0ge3g6IDEwMDAsIHk6IDEwMDAsIHo6IDEwMDB9OworCisg
ICAgICAvLyBFbmRpbmcgcG9zaXRpb24gZm9yIHRoZSBsaXN0ZW5lci4gIEl0IE1VU1QgYmUgdGhl
IHRoZSBuZWdhdGl2ZSBvZiB0aGUKKyAgICAgIC8vIHBhbm5lckVuZFBvc2l0aW9uIQorICAgICAg
bGV0IGxpc3RlbmVyRW5kUG9zaXRpb24gPSB7CisgICAgICAgIHg6IC1wYW5uZXJFbmRQb3NpdGlv
bi54LAorICAgICAgICB5OiAtcGFubmVyRW5kUG9zaXRpb24ueSwKKyAgICAgICAgejogLXBhbm5l
ckVuZFBvc2l0aW9uLnoKKyAgICAgIH07CisKKworICAgICAgLy8gVGVzdCB0aGUgbGluZWFyLCBp
bnZlcnNlLCBhbmQgZXhwb25lbnRpYWwgZGlzdGFuY2UgbW9kZWxzIHdoZW4gdGhlCisgICAgICAv
LyBBdWRpb0xpc3RlbmVyIGlzIG1vdmluZyBpbnN0ZWFkIG9mIHRoZSBwYW5uZXIuICBXZSB0YWtl
IGFkdmFudGFnZSB0aGF0CisgICAgICAvLyBtb3Rpb24gaXMgcmVsYXRpdmUgYW5kIGNyZWF0ZSBh
IHJlZmVyZW5jZSBieSBtb3ZpbmcgdGhlIHBhbm5lciBpbiBvbmUKKyAgICAgIC8vIGRpcmVjdGlv
bi4gIFRoZSByZXN1bHRpbmcgb3V0cHV0IGlzIHRoZSBleHBlY3RlZCByZXN1bHQuICBUaGVuIHdl
IHJlZG8KKyAgICAgIC8vIHRoZSB0ZXN0LCBidXQgdGhpcyB0aW1lIG1vdmUgdGhlIGxpc3RlbmVy
IGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uCisgICAgICAvLyBUaGUgb3V0cHV0IG9mIHRoaXMg
dGVzdCBpcyBjb21wYXJlZCBhZ2FpbnN0IHRoZSBwYW5uZXIgcmVzdWx0LiAgVGhleQorICAgICAg
Ly8gc2hvdWxkIGJlIHRoZSBzYW1lLgorCisgICAgICBhdWRpdC5kZWZpbmUoJ2xpbmVhcicsICh0
YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgcnVuVGVzdCh7CisgICAgICAgICAgc2hvdWxkOiBz
aG91bGQsCisgICAgICAgICAgc3RhcnRQb3NpdGlvbjogZGVmYXVsdFN0YXJ0UG9zaXRpb24sCisg
ICAgICAgICAgZW5kUG9zaXRpb246IHBhbm5lckVuZFBvc2l0aW9uLAorICAgICAgICAgIGRpc3Rh
bmNlTW9kZWw6IHttb2RlbDogJ2xpbmVhcicsIHJvbGxvZmY6IDF9CisgICAgICAgIH0pLnRoZW4o
KCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnZXhw
b25lbnRpYWwnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3QoeworICAgICAg
ICAgIHNob3VsZDogc2hvdWxkLAorICAgICAgICAgIHN0YXJ0UG9zaXRpb246IGRlZmF1bHRTdGFy
dFBvc2l0aW9uLAorICAgICAgICAgIGVuZFBvc2l0aW9uOiBwYW5uZXJFbmRQb3NpdGlvbiwKKyAg
ICAgICAgICBkaXN0YW5jZU1vZGVsOiB7bW9kZWw6ICdleHBvbmVudGlhbCcsIHJvbGxvZmY6IDEu
NX0KKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCdpbnZlcnNlJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBy
dW5UZXN0KHsKKyAgICAgICAgICBzaG91bGQ6IHNob3VsZCwKKyAgICAgICAgICBzdGFydFBvc2l0
aW9uOiBkZWZhdWx0U3RhcnRQb3NpdGlvbiwKKyAgICAgICAgICBlbmRQb3NpdGlvbjogcGFubmVy
RW5kUG9zaXRpb24sCisgICAgICAgICAgZGlzdGFuY2VNb2RlbDoge21vZGVsOiAnaW52ZXJzZScs
IHJvbGxvZmY6IDF9CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAg
fSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOworCisgICAgICBmdW5jdGlvbiBjcmVhdGVHcmFwaCgp
IHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5k
ZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgICAgICAvLyBTdGVyZW8gc291cmNlIGZvciB0aGUg
cGFubmVyLgorICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQs
IHJlbmRlckZyYW1lcywgWzEsIDJdKTsKKworICAgICAgICBsZXQgcGFubmVyID0gY29udGV4dC5j
cmVhdGVQYW5uZXIoKTsKKyAgICAgICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9ICdlcXVhbHBvd2Vy
JzsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChwYW5uZXIpOworICAgICAgICBwYW5uZXIuY29u
bmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICByZXR1cm4ge2NvbnRleHQ6IGNv
bnRleHQsIHNvdXJjZTogc291cmNlLCBwYW5uZXI6IHBhbm5lcn07CisgICAgICB9CisKKyAgICAg
IC8vIFJ1biBhIGxpc3RlbmVyIHRlc3Qgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy4KKyAgICAgIGZ1
bmN0aW9uIHJ1blRlc3Qob3B0aW9ucykgeworICAgICAgICBsZXQgcmVmUmVzdWx0OworCisgICAg
ICAgIHJldHVybiBydW5QYW5uZXJUZXN0KG9wdGlvbnMpCisgICAgICAgICAgICAudGhlbihmdW5j
dGlvbihyZW5kZXJlZEJ1ZmZlcikgeworICAgICAgICAgICAgICByZWZSZXN1bHQgPSByZW5kZXJl
ZEJ1ZmZlcjsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgLy8gTW92ZSB0aGUgbGlzdGVuZXIgaW4gdGhlIG9wcG9zaXRlIGRpcmVj
dGlvbi4KKyAgICAgICAgICAgICAgb3B0aW9ucy5lbmRQb3NpdGlvbiA9IGxpc3RlbmVyRW5kUG9z
aXRpb247CisgICAgICAgICAgICAgIHJldHVybiBydW5MaXN0ZW5lclRlc3Qob3B0aW9ucykudGhl
bihmdW5jdGlvbihyZW5kZXJlZEJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGNvbXBhcmVSZXN1
bHRzKHJlbmRlcmVkQnVmZmVyLCByZWZSZXN1bHQsIG9wdGlvbnMpOworICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBydW5QYW5uZXJU
ZXN0KG9wdGlvbnMpIHsKKyAgICAgICAgbGV0IGdyYXBoID0gY3JlYXRlR3JhcGgoKTsKKworICAg
ICAgICByZXR1cm4gcnVuVGVzdENvcmUoZ3JhcGgsIG9wdGlvbnMsIGdyYXBoLnBhbm5lcik7Cisg
ICAgICB9CisKKworICAgICAgZnVuY3Rpb24gcnVuTGlzdGVuZXJUZXN0KG9wdGlvbnMpIHsKKyAg
ICAgICAgbGV0IGdyYXBoID0gY3JlYXRlR3JhcGgoKTsKKworICAgICAgICByZXR1cm4gcnVuVGVz
dENvcmUoZ3JhcGgsIG9wdGlvbnMsIGdyYXBoLmNvbnRleHQubGlzdGVuZXIpOworICAgICAgfQor
CisgICAgICBmdW5jdGlvbiBydW5UZXN0Q29yZShncmFwaCwgb3B0aW9ucywgYXVkaW9PamJlY3Qp
IHsKKyAgICAgICAgbGV0IHtjb250ZXh0LCBzb3VyY2UsIHBhbm5lcn0gPSBncmFwaDsKKworICAg
ICAgICAvLyBJbml0aWFsaXplIHRoZSBwYW5uZXIgd2l0aCBrbm93biB2YWx1ZXMuCisgICAgICAg
IHBhbm5lci5kaXN0YW5jZU1vZGVsID0gb3B0aW9ucy5kaXN0YW5jZU1vZGVsLm1vZGVsOworICAg
ICAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IG9wdGlvbnMuZGlzdGFuY2VNb2RlbC5yb2xsb2Zm
OworICAgICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gJ2VxdWFscG93ZXInOworCisgICAgICAg
IC8vIEF1dG9tYXRlIHRoZSBsb2NhdGlvbi4gIGF1ZGlvT2JqZWN0IG11c3QgYmUgZWl0aGVyIGEg
UGFubmVyTm9kZSBvcgorICAgICAgICAvLyB0aGUgY29udGV4dCdzIEF1ZGlvTGlzdGVuZXIuCisK
KyAgICAgICAgYXVkaW9PamJlY3QucG9zaXRpb25YLnNldFZhbHVlQXRUaW1lKG9wdGlvbnMuc3Rh
cnRQb3NpdGlvbi54LCAwKTsKKyAgICAgICAgYXVkaW9PamJlY3QucG9zaXRpb25ZLnNldFZhbHVl
QXRUaW1lKG9wdGlvbnMuc3RhcnRQb3NpdGlvbi55LCAwKTsKKyAgICAgICAgYXVkaW9PamJlY3Qu
cG9zaXRpb25aLnNldFZhbHVlQXRUaW1lKG9wdGlvbnMuc3RhcnRQb3NpdGlvbi56LCAwKTsKKwor
ICAgICAgICBhdWRpb09qYmVjdC5wb3NpdGlvblgubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoCisg
ICAgICAgICAgICBvcHRpb25zLmVuZFBvc2l0aW9uLngsIGVuZFRpbWUpOworICAgICAgICBhdWRp
b09qYmVjdC5wb3NpdGlvblkubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoCisgICAgICAgICAgICBv
cHRpb25zLmVuZFBvc2l0aW9uLnksIGVuZFRpbWUpOworICAgICAgICBhdWRpb09qYmVjdC5wb3Np
dGlvbloubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoCisgICAgICAgICAgICBvcHRpb25zLmVuZFBv
c2l0aW9uLnosIGVuZFRpbWUpOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBzb3VyY2UsIHJlbmRl
ciB0aGUgZ3JhcGgsIGFuZCByZXR1cm4gdGhlIHJlc3VsdGluZyBwcm9taXNlCisgICAgICAgIC8v
IGZyb20gcmVuZGVyaW5nLgorICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICByZXR1
cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7
CisgICAgICAgICAgcmV0dXJuIHJlc3VsdEJ1ZmZlcjsKKyAgICAgICAgfSk7CisgICAgICB9CisK
KyAgICAgIGZ1bmN0aW9uIGNvbXBhcmVSZXN1bHRzKGFjdHVhbFJlc3VsdCwgZXhwZWN0ZWRSZXN1
bHQsIG9wdGlvbnMpIHsKKyAgICAgICAgLy8gQ29tcGFyZSB0aGUgb3V0cHV0IHdpdGggdGhlIHJl
ZmVyZW5jZSBvdXRwdXQgZnJvbSBtb3ZpbmcgdGhlIHNvdXJjZQorICAgICAgICAvLyBpbiB0aGUg
b3Bwb3NpdGUgZGlyZWN0aW9uLgorCisgICAgICAgIGxldCBleHBlY3RlZExlZnQgPSBleHBlY3Rl
ZFJlc3VsdC5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgbGV0IGV4cGVjdGVkUmlnaHQgPSBl
eHBlY3RlZFJlc3VsdC5nZXRDaGFubmVsRGF0YSgxKTsKKworICAgICAgICBsZXQgYWN0dWFsTGVm
dCA9IGFjdHVhbFJlc3VsdC5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgbGV0IGFjdHVhbFJp
Z2h0ID0gYWN0dWFsUmVzdWx0LmdldENoYW5uZWxEYXRhKDEpOworCisgICAgICAgIGxldCBwcmVm
aXggPSAnRGlzdGFuY2UgbW9kZWw6ICInICsgb3B0aW9ucy5kaXN0YW5jZU1vZGVsLm1vZGVsICsg
JyInOworICAgICAgICBwcmVmaXggKz0gJywgcm9sbG9mZjogJyArIG9wdGlvbnMuZGlzdGFuY2VN
b2RlbC5yb2xsb2ZmOworICAgICAgICBvcHRpb25zLnNob3VsZChhY3R1YWxMZWZ0LCBwcmVmaXgg
KyAnOiBsZWZ0IGNoYW5uZWwnKQorICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KGV4cGVjdGVk
TGVmdCwgMCk7CisgICAgICAgIG9wdGlvbnMuc2hvdWxkKGFjdHVhbFJpZ2h0LCBwcmVmaXggKyAn
OiByaWdodCBjaGFubmVsJykKKyAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJheShleHBlY3RlZFJp
Z2h0LCAwKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci9hdWRpb2xpc3RlbmVy
LXNldC1wb3NpdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0xp
c3RlbmVyL2F1ZGlvbGlzdGVuZXItc2V0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MDA4Y2JjNjk2MzU0Y2I2NDNmM2NmZGNjMTA1MmNkNjlhNGJlNDdhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci9hdWRpb2xpc3RlbmVyLXNl
dC1wb3NpdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDQgQEAKKworUEFTUyAjIEFVRElU
IFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldFBvc2l0
aW9uIFggZXJyb3IiIAorUEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldFBvc2l0aW9uIFggbm8g
ZXJyb3IiIAorUEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldFBvc2l0aW9uIFkgZXJyb3IiIAor
UEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldFBvc2l0aW9uIFkgbm8gZXJyb3IiIAorUEFTUyBF
eGVjdXRpbmcgIkxpc3RlbmVyIHNldFBvc2l0aW9uIFogZXJyb3IiIAorUEFTUyBFeGVjdXRpbmcg
Ikxpc3RlbmVyIHNldFBvc2l0aW9uIFogbm8gZXJyb3IiIAorUEFTUyBFeGVjdXRpbmcgIkxpc3Rl
bmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWCBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlz
dGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBYIG5vIGVycm9yIiAKK1BBU1MgRXhlY3V0aW5n
ICJMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFkgZXJyb3IiIAorUEFTUyBFeGVjdXRp
bmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWSBubyBlcnJvciIgCitQQVNTIEV4
ZWN1dGluZyAiTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBaIGVycm9yIiAKK1BBU1Mg
RXhlY3V0aW5nICJMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFogbm8gZXJyb3IiIAor
UEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggZXJyb3IiIAorUEFT
UyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggbm8gZXJyb3IiIAorUEFT
UyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFkgZXJyb3IiIAorUEFTUyBF
eGVjdXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFkgbm8gZXJyb3IiIAorUEFTUyBF
eGVjdXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFogZXJyb3IiIAorUEFTUyBFeGVj
dXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFogbm8gZXJyb3IiIAorUEFTUyBBdWRp
dCByZXBvcnQgCitQQVNTID4gW0xpc3RlbmVyIHNldFBvc2l0aW9uIFggZXJyb3JdICAKK1BBU1Mg
ICBMaXN0ZW5lciBzZXRQb3NpdGlvbiBYIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVk
aW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci5wb3NpdGlvblguc2V0VmFsdWVD
dXJ2ZSguLi4sIDAsIDAuMDE2KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTICAg
bGlzdGVuZXIuc2V0UG9zaXRpb24oMSwxLDEpIGZvciBwb3NpdGlvblggdGhyZXcgTm90U3VwcG9y
dGVkRXJyb3I6ICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW0xpc3RlbmVyIHNl
dFBvc2l0aW9uIFggZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0
aW9ucykgCitQQVNTID4gW0xpc3RlbmVyIHNldFBvc2l0aW9uIFggbm8gZXJyb3JdICAKK1BBU1Mg
ICBMaXN0ZW5lciBzZXRQb3NpdGlvbiBYIG5vIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4g
QXVkaW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci5wb3NpdGlvblguc2V0VmFs
dWVDdXJ2ZSguLi4sIDAsIDAuMDAwNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFT
UyA8IFtMaXN0ZW5lciBzZXRQb3NpdGlvbiBYIG5vIGVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRQb3NpdGlvbiBZ
IGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0UG9zaXRpb24gWSBlcnJvcjogTm9kZSB1bmRl
ciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIucG9z
aXRpb25ZLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxNikgZGlkIG5vdCB0aHJvdyBhbiBleGNl
cHRpb24uIAorUEFTUyAgIGxpc3RlbmVyLnNldFBvc2l0aW9uKDEsMSwxKSBmb3IgcG9zaXRpb25Z
IHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIuIAorUEFT
UyA8IFtMaXN0ZW5lciBzZXRQb3NpdGlvbiBZIGVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRQb3NpdGlvbiBZIG5v
IGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0UG9zaXRpb24gWSBubyBlcnJvcjogTm9kZSB1
bmRlciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIu
cG9zaXRpb25ZLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAwMDUpIGRpZCBub3QgdGhyb3cgYW4g
ZXhjZXB0aW9uLiAKK1BBU1MgPCBbTGlzdGVuZXIgc2V0UG9zaXRpb24gWSBubyBlcnJvcl0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVu
ZXIgc2V0UG9zaXRpb24gWiBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldFBvc2l0aW9uIFog
ZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFT
UyAgIGxpc3RlbmVyLnBvc2l0aW9uWi5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMTYpIGRpZCBu
b3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICBsaXN0ZW5lci5zZXRQb3NpdGlvbigxLDEs
MSkgZm9yIHBvc2l0aW9uWiB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3Zl
cmxhcHBpbmciLiAKK1BBU1MgPCBbTGlzdGVuZXIgc2V0UG9zaXRpb24gWiBlcnJvcl0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIg
c2V0UG9zaXRpb24gWiBubyBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldFBvc2l0aW9uIFog
bm8gZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAor
UEFTUyAgIGxpc3RlbmVyLnBvc2l0aW9uWi5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMDA1KSBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldFBvc2l0aW9u
IFogbm8gZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykg
CitQQVNTID4gW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWCBlcnJvcl0gIAorUEFT
UyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWCBlcnJvcjogTm9kZSB1bmRlciB0
ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIuZm9yd2Fy
ZFguc2V0VmFsdWVDdXJ2ZSguLi4sIDAsIDAuMDE2KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlv
bi4gCitQQVNTICAgbGlzdGVuZXIuc2V0T3JpZW50YXRpb24oMSwxLDEsMSwxLDEpIGZvciBmb3J3
YXJkWCB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciLiAK
K1BBU1MgPCBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBYIGVycm9yXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBz
ZXRPcmllbnRhdGlvbiBmb3J3YXJkIFggbm8gZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5lciBzZXRP
cmllbnRhdGlvbiBmb3J3YXJkIFggbm8gZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRp
b0xJc3RlbmVyIGlzIHRydWUuIAorUEFTUyAgIGxpc3RlbmVyLmZvcndhcmRYLnNldFZhbHVlQ3Vy
dmUoLi4uLCAwLCAwLjAwMDUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgPCBb
TGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBYIG5vIGVycm9yXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRPcmll
bnRhdGlvbiBmb3J3YXJkIFkgZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5lciBzZXRPcmllbnRhdGlv
biBmb3J3YXJkIFkgZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlz
IHRydWUuIAorUEFTUyAgIGxpc3RlbmVyLmZvcndhcmRZLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAw
LjAxNikgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyAgIGxpc3RlbmVyLnNldE9y
aWVudGF0aW9uKDEsMSwxLDEsMSwxKSBmb3IgZm9yd2FyZFkgdGhyZXcgTm90U3VwcG9ydGVkRXJy
b3I6ICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9yaWVu
dGF0aW9uIGZvcndhcmQgWSBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBh
c3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBZIG5v
IGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBZIG5vIGVy
cm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1Mg
ICBsaXN0ZW5lci5mb3J3YXJkWS5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMDA1KSBkaWQgbm90
IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZv
cndhcmQgWSBubyBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRp
b25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBaIGVycm9yXSAg
CitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBaIGVycm9yOiBOb2RlIHVu
ZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci5m
b3J3YXJkWi5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMTYpIGRpZCBub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uLiAKK1BBU1MgICBsaXN0ZW5lci5zZXRPcmllbnRhdGlvbigxLDEsMSwxLDEsMSkgZm9y
IGZvcndhcmRaIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIuIAorUEFTUyA8IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFogZXJyb3JdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNTID4gW0xpc3Rl
bmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWiBubyBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVy
IHNldE9yaWVudGF0aW9uIGZvcndhcmQgWiBubyBlcnJvcjogTm9kZSB1bmRlciB0ZXN0IGlzIGFu
IEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIuZm9yd2FyZFouc2V0VmFs
dWVDdXJ2ZSguLi4sIDAsIDAuMDAwNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFT
UyA8IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFogbm8gZXJyb3JdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4gW0xpc3RlbmVyIHNl
dE9yaWVudGF0aW9uIHVwIFggZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5lciBzZXRPcmllbnRhdGlv
biB1cCBYIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5lciBpcyB0cnVl
LiAKK1BBU1MgICBsaXN0ZW5lci51cFguc2V0VmFsdWVDdXJ2ZSguLi4sIDAsIDAuMDE2KSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTICAgbGlzdGVuZXIuc2V0T3JpZW50YXRpb24o
MSwxLDEsMSwxLDEpIGZvciB1cFggdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJFdmVudHMgYXJl
IG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggZXJy
b3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNTID4g
W0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggbm8gZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5l
ciBzZXRPcmllbnRhdGlvbiB1cCBYIG5vIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVk
aW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci51cFguc2V0VmFsdWVDdXJ2ZSgu
Li4sIDAsIDAuMDAwNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyA8IFtMaXN0
ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBYIG5vIGVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1
cCBZIGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWSBlcnJvcjog
Tm9kZSB1bmRlciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlz
dGVuZXIudXBZLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxNikgZGlkIG5vdCB0aHJvdyBhbiBl
eGNlcHRpb24uIAorUEFTUyAgIGxpc3RlbmVyLnNldE9yaWVudGF0aW9uKDEsMSwxLDEsMSwxKSBm
b3IgdXBZIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIu
IAorUEFTUyA8IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBZIGVycm9yXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRP
cmllbnRhdGlvbiB1cCBZIG5vIGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50YXRp
b24gdXAgWSBubyBlcnJvcjogTm9kZSB1bmRlciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMg
dHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIudXBZLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAwMDUp
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgPCBbTGlzdGVuZXIgc2V0T3JpZW50
YXRpb24gdXAgWSBubyBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3Nl
cnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWiBlcnJvcl0gIAor
UEFTUyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFogZXJyb3I6IE5vZGUgdW5kZXIgdGVz
dCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFTUyAgIGxpc3RlbmVyLnVwWi5zZXRW
YWx1ZUN1cnZlKC4uLiwgMCwgMC4wMTYpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BB
U1MgICBsaXN0ZW5lci5zZXRPcmllbnRhdGlvbigxLDEsMSwxLDEsMSkgZm9yIHVwWiB0aHJldyBO
b3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciLiAKK1BBU1MgPCBbTGlz
dGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWiBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAo
dG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAg
WiBubyBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFogbm8gZXJy
b3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFTUyAg
IGxpc3RlbmVyLnVwWi5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMDA1KSBkaWQgbm90IHRocm93
IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFogbm8g
ZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNT
ICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDE4IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHku
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyL2F1ZGlv
bGlzdGVuZXItc2V0LXBvc2l0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0xp
c3RlbmVyL2F1ZGlvbGlzdGVuZXItc2V0LXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNkNDNi
YzIyMGM3MTk3NzUyYjdhZjFlMmFhZmE0MjQ5NzEzZTkyMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQtcG9zaXRp
b24uaHRtbApAQCAtMCwwICsxLDE2NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhl
YWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBBdWRpb0xpc3RlbmVyLnNldFBvc2l0aW9uIGFu
ZCBBdWRpb0xpc3RlbmVyLnNldE9yaWVudGF0aW9uIEVycm9ycworICAgIDwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvc2V0LXBvc2l0aW9uLXZzLWN1cnZlLXRlc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgLy8g
RmFpcmx5IGFyYml0cmFyeSByYXRlCisgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDE2MDAwOworCisg
ICAgICAvLyBGb3IgdGhlIHRlc3RzIHdlIG5lZWQgdG8gcmVuZGVyIGZvciBhdCBsZWFzdCB0d28g
cmVuZGVyIHF1YW50YS4KKyAgICAgIC8vIE90aGVyd2lzZSwgcHJldHR5IGFyYml0cmFyeS4KKyAg
ICAgIGxldCByZW5kZXJGcmFtZXMgPSAyNTY7CisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSBy
ZW5kZXJGcmFtZXMgLyBzYW1wbGVSYXRlOworCisgICAgICAvLyBUaGUgY3VydmUgZHVyYXRpb24g
Zm9yIHRoZSB0ZXN0LiAgQW55dGhpbmcgbGVzcyB0aGFuIG9uZSByZW5kZXIgcXVhbnR1bQorICAg
ICAgLy8gaXMgZmluZS4gIEFyYml0cmFyaWx5IGNob29zZSBzb21ldGhpbmcgc21hbGwuCisgICAg
ICBsZXQgY3VydmVEdXJhdGlvbkZyYW1lcyA9IDg7CisgICAgICBsZXQgY3VydmVEdXJhdGlvbiA9
IGN1cnZlRHVyYXRpb25GcmFtZXMgLyBzYW1wbGVSYXRlOworCisgICAgICAvLyBXaGVuIHRvIGNh
bGwgc2V0UG9zaXRpb24sIGFmdGVyIHRoZSBzZXRWYWx1ZUN1cnZlIGhhcyBlbmRlZC4gIEFueSB2
YWx1ZQorICAgICAgLy8gYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgZmlyc3QgcmVuZGVyIHF1YW50dW0g
aXMgZmluZS4KKyAgICAgIGxldCBzdXNwZW5kRnJhbWUgPSAxMjk7CisKKyAgICAgIGxldCBhdWRp
dCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gQXJyYXkgb2YgdGVzdHMg
dG8gZG8uICBFYWNoIGVsZW1lbnQgb2YgdGhpcyBhcnJheSBpcyB1c2VkIHRvIGNyZWF0ZSBhCisg
ICAgICAvLyB0YXNrIHRvIHRlc3QgdGhlIGVudHJ5LgorICAgICAgbGV0IHRlc3RzID0gWworICAg
ICAgICAvLyBUZXN0IHxzZXRQb3NpdGlvbnwgYWdhaW5zdCB8cG9zaXRpb25YfCwgfHBvc2l0aW9u
WXwsIGFuZCB8cG9zaXRpb25afAorICAgICAgICAvLyBzZXRWYWx1ZUN1cnZlcy4gIEluY2x1ZGUg
dGVzdCB3aGVyZSB0aGVyZSdzIG92ZXJsYXAgYW5kIHdoZXJlIHRoZXJlCisgICAgICAgIC8vIGlz
bid0LgorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldFBvc2l0aW9uIFgg
ZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHtwYXJhbU5hbWU6ICdwb3NpdGlvblgnLCBjdXJ2
ZUR1cmF0aW9uOiByZW5kZXJEdXJhdGlvbn0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRQb3NpdGlvbiBYIG5vIGVycm9yJywKKyAgICAgICAgICBv
cHRpb25zOiB7CisgICAgICAgICAgICBwYXJhbU5hbWU6ICdwb3NpdGlvblgnLAorICAgICAgICAg
ICAgY3VydmVEdXJhdGlvbjogY3VydmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHN1c3BlbmRGcmFt
ZTogc3VzcGVuZEZyYW1lCisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldFBvc2l0aW9uIFkgZXJyb3InLAorICAgICAgICAgIG9w
dGlvbnM6IHtwYXJhbU5hbWU6ICdwb3NpdGlvblknLCBjdXJ2ZUR1cmF0aW9uOiByZW5kZXJEdXJh
dGlvbn0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBz
ZXRQb3NpdGlvbiBZIG5vIGVycm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAg
ICBwYXJhbU5hbWU6ICdwb3NpdGlvblknLAorICAgICAgICAgICAgY3VydmVEdXJhdGlvbjogY3Vy
dmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHN1c3BlbmRGcmFtZTogc3VzcGVuZEZyYW1lCisgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVy
IHNldFBvc2l0aW9uIFogZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHtwYXJhbU5hbWU6ICdw
b3NpdGlvblonLCBjdXJ2ZUR1cmF0aW9uOiByZW5kZXJEdXJhdGlvbn0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRQb3NpdGlvbiBaIG5vIGVycm9y
JywKKyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICBwYXJhbU5hbWU6ICdwb3NpdGlv
blonLAorICAgICAgICAgICAgY3VydmVEdXJhdGlvbjogY3VydmVEdXJhdGlvbiwKKyAgICAgICAg
ICAgIHN1c3BlbmRGcmFtZTogc3VzcGVuZEZyYW1lCisgICAgICAgICAgfQorICAgICAgICB9LAor
ICAgICAgICAvLyBOb3cgZG8gdGhlIHNhbWUgd2l0aCB8c2V0T3JpZW50YXRpb258LCBmb3IgZm9y
d2FyZCBhbmQgdXAgdmVjdG9ycy4KKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5l
ciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFggZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHtw
YXJhbU5hbWU6ICdmb3J3YXJkWCcsIGN1cnZlRHVyYXRpb246IHJlbmRlckR1cmF0aW9ufQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldE9yaWVudGF0
aW9uIGZvcndhcmQgWCBubyBlcnJvcicsCisgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAg
ICAgcGFyYW1OYW1lOiAnZm9yd2FyZFgnLAorICAgICAgICAgICAgY3VydmVEdXJhdGlvbjogY3Vy
dmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHN1c3BlbmRGcmFtZTogc3VzcGVuZEZyYW1lCisgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVy
IHNldE9yaWVudGF0aW9uIGZvcndhcmQgWSBlcnJvcicsCisgICAgICAgICAgb3B0aW9uczoge3Bh
cmFtTmFtZTogJ2ZvcndhcmRZJywgY3VydmVEdXJhdGlvbjogcmVuZGVyRHVyYXRpb259CisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0T3JpZW50YXRp
b24gZm9yd2FyZCBZIG5vIGVycm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAg
ICBwYXJhbU5hbWU6ICdmb3J3YXJkWScsCisgICAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiBjdXJ2
ZUR1cmF0aW9uLAorICAgICAgICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUKKyAgICAg
ICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIg
c2V0T3JpZW50YXRpb24gZm9yd2FyZCBaIGVycm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7cGFy
YW1OYW1lOiAnZm9yd2FyZFonLCBjdXJ2ZUR1cmF0aW9uOiByZW5kZXJEdXJhdGlvbn0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlv
biBmb3J3YXJkIFogbm8gZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAg
IHBhcmFtTmFtZTogJ2ZvcndhcmRaJywKKyAgICAgICAgICAgIGN1cnZlRHVyYXRpb246IGN1cnZl
RHVyYXRpb24sCisgICAgICAgICAgICBzdXNwZW5kRnJhbWU6IHN1c3BlbmRGcmFtZQorICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBz
ZXRPcmllbnRhdGlvbiB1cCBYIGVycm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7cGFyYW1OYW1l
OiAndXBYJywgY3VydmVEdXJhdGlvbjogcmVuZGVyRHVyYXRpb259CisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWCBubyBl
cnJvcicsCisgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgcGFyYW1OYW1lOiAndXBY
JywKKyAgICAgICAgICAgIGN1cnZlRHVyYXRpb246IGN1cnZlRHVyYXRpb24sCisgICAgICAgICAg
ICBzdXNwZW5kRnJhbWU6IHN1c3BlbmRGcmFtZQorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBZIGVy
cm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7cGFyYW1OYW1lOiAndXBZJywgY3VydmVEdXJhdGlv
bjogcmVuZGVyRHVyYXRpb259CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1l
OiAnTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWSBubyBlcnJvcicsCisgICAgICAgICAgb3B0
aW9uczogeworICAgICAgICAgICAgcGFyYW1OYW1lOiAndXBZJywKKyAgICAgICAgICAgIGN1cnZl
RHVyYXRpb246IGN1cnZlRHVyYXRpb24sCisgICAgICAgICAgICBzdXNwZW5kRnJhbWU6IHN1c3Bl
bmRGcmFtZQorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5h
bWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBaIGVycm9yJywKKyAgICAgICAgICBvcHRp
b25zOiB7cGFyYW1OYW1lOiAndXBaJywgY3VydmVEdXJhdGlvbjogcmVuZGVyRHVyYXRpb259Cisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0T3JpZW50
YXRpb24gdXAgWiBubyBlcnJvcicsCisgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAg
cGFyYW1OYW1lOiAndXBaJywKKyAgICAgICAgICAgIGN1cnZlRHVyYXRpb246IGN1cnZlRHVyYXRp
b24sCisgICAgICAgICAgICBzdXNwZW5kRnJhbWU6IHN1c3BlbmRGcmFtZQorICAgICAgICAgIH0K
KyAgICAgICAgfSwKKyAgICAgIF07CisKKyAgICAgIC8vIENyZWF0ZSBhbiBhdWRpdCB0ZXN0IGZv
ciBlYWNoIGVudHJ5IGluIHx0ZXN0c3wuCisgICAgICB0ZXN0cy5mb3JFYWNoKHRlc3QgPT4gewor
ICAgICAgICBhdWRpdC5kZWZpbmUodGVzdC5uYW1lLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAg
ICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFt
ZXMsIHNhbXBsZVJhdGUpOworICAgICAgICAgIHRlc3RQb3NpdGlvblNldHRlclZzQ3VydmUoCisg
ICAgICAgICAgICAgIHNob3VsZCwgY29udGV4dCwKKyAgICAgICAgICAgICAgT2JqZWN0LmFzc2ln
bigKKyAgICAgICAgICAgICAgICAgIHt0ZXN0TmFtZTogdGVzdC5uYW1lLCBub2RlTmFtZTogJ2xp
c3RlbmVyJ30sIHRlc3Qub3B0aW9ucykpCisgICAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2su
ZG9uZSgpKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7Cisg
ICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvTm9kZS90YWlsLWNvbm5lY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTm9kZS90YWlsLWNvbm5lY3Rpb25zLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mN2JkYjMwOGFhMDM0MTY5ZTBkMjVhMTY4ZmY3ZjJhMGI5YjJiZDgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtY29ubmVj
dGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKKworUEFTUyAjIEFVRElUIFRBU0sg
UlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgIlJlY29ubmVjdCBncmFwaCB0byBEeW5h
bWljc0NvbXByZXNzb3IgYmVmb3JlIGVuZCBvZiB0YWlsIiAKK1BBU1MgRXhlY3V0aW5nICJSZWNv
bm5lY3QgZ3JhcGggdG8gQmlxdWFkIGJlZm9yZSBlbmQgb2YgdGFpbCIgCitQQVNTIEF1ZGl0IHJl
cG9ydCAKK1BBU1MgPiBbUmVjb25uZWN0IGdyYXBoIHRvIER5bmFtaWNzQ29tcHJlc3NvciBiZWZv
cmUgZW5kIG9mIHRhaWxdICAKK1BBU1MgICBPc2NpbGxhdG9yIHN0YXJ0IHRpbWUgaXMgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFsIHRvIDEuNjg5LiAKK1BBU1MgICBPdXRwdXQgb2YgRHluYW1pY3NDb21w
cmVzc29yTm9kZSBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlucyAxNTkwMyBkaWZmZXJlbnQg
dmFsdWVzKS4gCitQQVNTIDwgW1JlY29ubmVjdCBncmFwaCB0byBEeW5hbWljc0NvbXByZXNzb3Ig
YmVmb3JlIGVuZCBvZiB0YWlsXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtSZWNvbm5lY3QgZ3JhcGggdG8gQmlxdWFkIGJlZm9yZSBlbmQgb2Yg
dGFpbF0gIAorUEFTUyAgIE9zY2lsbGF0b3Igc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3Ig
ZXF1YWwgdG8gMC4xMjY5MTY1MDM5MDYyNS4gCitQQVNTICAgT3V0cHV0IG9mIEJpcXVhZEZpbHRl
ck5vZGUgaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMgODE5MSBkaWZmZXJlbnQgdmFsdWVz
KS4gCitQQVNTIDwgW1JlY29ubmVjdCBncmFwaCB0byBCaXF1YWQgYmVmb3JlIGVuZCBvZiB0YWls
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAyIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1jb25uZWN0aW9u
cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtY29ubmVjdGlvbnMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42OTBiODZmN2RlYmJjMWZkOGFiNzMyOGUyZTFjYThlNWRiMDQ1YTZm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwt
Y29ubmVjdGlvbnMuaHRtbApAQCAtMCwwICsxLDEzMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBSZWNvbm5lY3Rpb24gb2YgVGFp
bC1Qcm9jZXNzaW5nIE5vZGVzCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKworICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAg
bGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICBhdWRpdC5kZWZp
bmUoCisgICAgICAgICAgeworICAgICAgICAgICAgdGVzdDogJ1Rlc3QgQ29tcHJlc3NvcicsCisg
ICAgICAgICAgICBsYWJlbDogJ1JlY29ubmVjdCBncmFwaCB0byBEeW5hbWljc0NvbXByZXNzb3Ig
YmVmb3JlIGVuZCBvZiB0YWlsJworICAgICAgICAgIH0sCisgICAgICAgICAgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICAgICAgLy8gQXJiaXRyYXJ5IHNhbXBsZSByYXRlCisgICAgICAgICAg
ICBjb25zdCBzYW1wbGVSYXRlID0gMTYwMDA7CisKKyAgICAgICAgICAgIC8vIFRoZXNlIGNvbnN0
YW50cyB0YWtlbiBmcm9tIGR5YW5taWNzX2NvbXByZXNzX2tlcm5lbC57Y2MsaH0uCisgICAgICAg
ICAgICBjb25zdCBwcmVEZWxheUZyYW1lcyA9IDEwMjQ7CisgICAgICAgICAgICBjb25zdCBtZXRl
cmluZ1JlbGVhc2VUaW1lID0gMC4zMjU7CisgICAgICAgICAgICBjb25zdCB0YWlsVGltZSA9IDUg
KiBtZXRlcmluZ1JlbGVhc2VUaW1lOworICAgICAgICAgICAgY29uc3QgbGF0ZW5jeVRpbWUgPSBw
cmVEZWxheUZyYW1lcyAvIHNhbXBsZVJhdGU7CisgICAgICAgICAgICBjb25zdCB0YWlsUHJvY2Vz
c2luZ1RpbWUgPSB0YWlsVGltZSArIGxhdGVuY3lUaW1lOworCisgICAgICAgICAgICAvLyBUaGUg
RHluYW1pY3NDb21wcmVzc29yTm9kZSBoYXMgYSB0YWlsICsgbGF0ZW5jeSB0aW1lIG9mIGEgbGl0
dGxlCisgICAgICAgICAgICAvLyBvdmVyIDEuNjggc2VjLCBzbyBtYWtlIHRoZSBkdXJhdGlvbiBs
b25nZXIgdGhhbiB0aGF0LgorICAgICAgICAgICAgY29uc3QgcmVuZGVyRHVyYXRpb24gPSAzOwor
CisgICAgICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KAorICAg
ICAgICAgICAgICAgIDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7
CisKKworICAgICAgICAgICAgcnVuVGVzdChjb250ZXh0LCBzaG91bGQsIHsKKyAgICAgICAgICAg
ICAgdGVzdE5vZGVOYW1lOiAnRHluYW1pY3NDb21wcmVzc29yTm9kZScsCisgICAgICAgICAgICAg
IG5vZGVPcHRpb25zOiBudWxsLAorICAgICAgICAgICAgICBzdXNwZW5kVGltZTogMiwKKyAgICAg
ICAgICAgICAgdGFpbFByb2Nlc3NpbmdUaW1lOiB0YWlsUHJvY2Vzc2luZ1RpbWUKKyAgICAgICAg
ICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgICAgIH0pOworCisgICAgICBh
dWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAgICAgICAgdGVzdDogJ1Rlc3QgQmlxdWFk
JywKKyAgICAgICAgICAgIGxhYmVsOiAnUmVjb25uZWN0IGdyYXBoIHRvIEJpcXVhZCBiZWZvcmUg
ZW5kIG9mIHRhaWwnCisgICAgICAgICAgfSwKKyAgICAgICAgICAodGFzaywgc2hvdWxkKSA9PiB7
CisgICAgICAgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSAxOworICAgICAgICAgICAgbGV0IHNh
bXBsZVJhdGUgPSAxNjM4NDsKKworICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dCgKKyAgICAgICAgICAgICAgICAxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBs
ZVJhdGUsIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgICAvLyBUYWtlbiBmcm9tIEJpcXVhZEZp
bHRlci90YWlsLXRpbWUtbG93cGFzcy5odG1sCisgICAgICAgICAgICBsZXQgZmlsdGVyT3B0aW9u
cyA9IHsKKyAgICAgICAgICAgICAgdHlwZTogJ2xvd3Bhc3MnLAorICAgICAgICAgICAgICBROiA0
MCwKKyAgICAgICAgICAgICAgZnJlcXVlbmN5OiBzYW1wbGVSYXRlIC8gNAorICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgIGxldCB0YWlsUHJvY2Vzc2luZ1RpbWUgPSAyMDc5LjQgLyBjb250ZXh0
LnNhbXBsZVJhdGU7CisKKyAgICAgICAgICAgIHJ1blRlc3QoY29udGV4dCwgc2hvdWxkLCB7Cisg
ICAgICAgICAgICAgIHRlc3ROb2RlTmFtZTogJ0JpcXVhZEZpbHRlck5vZGUnLAorICAgICAgICAg
ICAgICBub2RlT3B0aW9uczogZmlsdGVyT3B0aW9ucywKKyAgICAgICAgICAgICAgc3VzcGVuZFRp
bWU6IC41LAorICAgICAgICAgICAgICB0YWlsUHJvY2Vzc2luZ1RpbWU6IHRhaWxQcm9jZXNzaW5n
VGltZQorICAgICAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisKKyAgICAgICAg
ICB9KTsKKworICAgICAgLy8gUnVuIGEgdGVzdCB1c2luZyB0aGUgZ2l2ZW4gdGVzdCBub2RlIHRo
YXQgaGFzIGEgdGFpbCB0aW1lLgorICAgICAgLy8gfG9wdGlvbnN8IGlzIGEgZGljdGlvbmFyeSB3
aXRoIHRoZSBmb2xsb3dpbmcgbWVtYmVyczoKKyAgICAgIC8vICAgdGVzdE5vZGVOYW1lOiAgbmFt
ZSBvZiB0aGUgbm9kZSAodXNlZCBhcyBhIGNvbnN0cnVjdG9yKQorICAgICAgLy8gICBub2RlT3B0
aW9zbjogICBhbnkgb3B0aW9ucyBuZWVkZWQgdG8gY3JlYXRlIHRoZSBub2RlIHdpdGggdGhlIHJp
Z2h0CisgICAgICAvLyAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMuCisgICAgICAvLyAgIHN1
c3BlbmRUaW1lOiAgIFRpbWUgYXQgd2hpY2ggb3NjaWxsYXRvciBzaG91bGQgc3RhcnQuCisgICAg
ICAvLyAgIHRhaWxQcm9jZXNzaW5nVGltZTogIExlbmd0aCBvZiB0aGUgdGFpbCBvZiB0aGUgbm9k
ZSwgaW4gc2VjLgorICAgICAgZnVuY3Rpb24gcnVuVGVzdChjb250ZXh0LCBzaG91bGQsIG9wdGlv
bnMpIHsKKyAgICAgICAgLy8gVGhpcyB0ZXN0IGJhc2ljYWxseSB0YWtlbiBmcm9tIHRoZSByZXBy
byBjYXNlIGluIGNyYnVnLmNvbS84Mjk3NjcKKyAgICAgICAgbGV0IG9zYyA9IG5ldyBPc2NpbGxh
dG9yTm9kZShjb250ZXh0KTsKKyAgICAgICAgbGV0IGcwID0gbmV3IEdhaW5Ob2RlKGNvbnRleHQp
OworICAgICAgICBsZXQgZzEgPSBuZXcgR2Fpbk5vZGUoY29udGV4dCk7CisgICAgICAgIGxldCBn
MiA9IG5ldyBHYWluTm9kZShjb250ZXh0KTsKKyAgICAgICAgbGV0IGczID0gbmV3IEdhaW5Ob2Rl
KGNvbnRleHQpOworICAgICAgICBsZXQgdGVzdE5vZGUgPQorICAgICAgICAgICAgbmV3IHdpbmRv
d1tvcHRpb25zLnRlc3ROb2RlTmFtZV0oY29udGV4dCwgb3B0aW9ucy5ub2RlT3B0aW9ucyk7CisK
KyAgICAgICAgb3NjLmNvbm5lY3QoZzApCisgICAgICAgICAgICAuY29ubmVjdChnMSkKKyAgICAg
ICAgICAgIC5jb25uZWN0KHRlc3ROb2RlKQorICAgICAgICAgICAgLmNvbm5lY3QoZzIpCisgICAg
ICAgICAgICAuY29ubmVjdChnMykKKyAgICAgICAgICAgIC5jb25uZWN0KGNvbnRleHQuZGVzdGlu
YXRpb24pOworCisgICAgICAgIC8vIERpc2Nvbm5lY3QgdGhlIHJlc3Qgb2YgdGhlIGdyYXBoIGZy
b20gZzAuICBUaGlzIHNob3VsZCBwbGFjZSB0aGUKKyAgICAgICAgLy8gdGVzdCBub2RlIG9uIHRo
ZSBpbnRlcm5hbCB0YWlsIHByb2Nlc3NpbmcgbGlzdC4KKyAgICAgICAgZzAuZGlzY29ubmVjdCgp
OworICAgICAgICAvLyBOb3cgcmVjb25uZWN0IGcwIHRvIHRoZSBncmFwaC4uICBUaGlzIHNob3Vs
ZCByZS1lbmFibGUgdGhlIHRlc3Qgbm9kZQorICAgICAgICAvLyBvdXRwdXQgYW5kIHJlbW92ZSBp
dCBmcm9tIHRoZSB0YWlsIGxpc3QuCisgICAgICAgIGcwLmNvbm5lY3QoZzEpOworCisgICAgICAg
IC8vIFN0YXJ0IHRoZSBzb3VyY2UgYWZ0ZXIgdGhlIHRhaWwgdGltZSBvZiB0aGUgdGVzdCBub2Rl
LgorICAgICAgICBjb250ZXh0LnN1c3BlbmQob3B0aW9ucy5zdXNwZW5kVGltZSkKKyAgICAgICAg
ICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIHRoYXQgd2Ug
c3RhcnQgdGhlIG9zY2lsbGF0b3IgYWZ0ZXIgdGhlIHRhaWwKKyAgICAgICAgICAgICAgLy8gcHJv
Y2Vzc2luZyB0aW1lLgorICAgICAgICAgICAgICBzaG91bGQoY29udGV4dC5jdXJyZW50VGltZSwg
J09zY2lsbGF0b3Igc3RhcnQgdGltZScpCisgICAgICAgICAgICAgICAgICAuYmVHcmVhdGVyVGhh
bk9yRXF1YWxUbyhvcHRpb25zLnRhaWxQcm9jZXNzaW5nVGltZSk7CisgICAgICAgICAgICAgIG9z
Yy5zdGFydCgpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IGNvbnRl
eHQucmVzdW1lKCkpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCku
dGhlbihyZW5kZXJlZEJ1ZmZlciA9PiB7CisgICAgICAgICAgLy8gSnVzdCBjaGVjayB0aGF0IHRo
ZSBvdXRwdXQgaXNuJ3Qgc2lsZW5jZS4gIElmIHRoaW5ncyBhcmUgd29ya2luZworICAgICAgICAg
IC8vIGFmdGVyIHJlY29ubmVjdGluZywgdGhlcmUgc2hvdWxkIGJlIG5vbi16ZXJvIG91dHB1dC4K
KyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIHJlbmRlcmVkQnVmZmVyLmdldENoYW5u
ZWxEYXRhKDApLAorICAgICAgICAgICAgICBgT3V0cHV0IG9mICR7b3B0aW9ucy50ZXN0Tm9kZU5h
bWV9YCkKKyAgICAgICAgICAgICAgLm5vdEJlQ29uc3RhbnRWYWx1ZU9mKDApOworICAgICAgICB9
KTsKKyAgICAgIH0KKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTm9kZS90
YWlsLXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9O
b2RlL3RhaWwtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM5ZDg4MDViNDA2
OGIzZTI3YzFmZTYwOGYzMTc4ZjU5Y2MxZTMwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvTm9kZS90YWlsLXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTMgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBF
eGVjdXRpbmcgIndhdmVzaGFwZXItdGFpbCIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBb
d2F2ZXNoYXBlci10YWlsXSAgCitQQVNTICAgV2F2ZVNoYXBlciB0YWlsIGZyYW1lICgyNTYpIGlz
IGdyZWF0ZXIgdGhhbiAwLiAKK1BBU1MgICBXYXZlU2hhcGVyIFRhaWwgb3V0cHV0WzA6MjU1XSBp
cyBpZGVudGljYWwgdG8gdGhlIGFycmF5IFtleHBlY3RlZCBhcnJheV0uIAorUEFTUyAgIFdhdmVT
aGFwZXIgb3V0cHV0WzA6MTI3XSBpcyBub3QgY29uc3RhbnRseSAwIChjb250YWlucyAxMjcgZGlm
ZmVyZW50IHZhbHVlcykuIAorUEFTUyAgIFdhdmVTaGFwZXIgb3V0cHV0WzEyODoyNTVdIGlzIG5v
dCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDEyOCBkaWZmZXJlbnQgdmFsdWVzKS4gCitQQVNTICAg
V2F2ZVNoYXBlciBvdXRwdXRbMjU2Ol0gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4gCitQ
QVNTIDwgW3dhdmVzaGFwZXItdGFpbF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBh
c3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyBy
YW4gc3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9Ob2RlL3RhaWwtcHJvY2Vzc2luZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9O
b2RlL3RhaWwtcHJvY2Vzc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZTQ3ZGEwOGMzOWY5ZTFjZmFl
MmQzYWViZDFiZmNkMGU5MjU5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb05vZGUvdGFpbC1wcm9jZXNzaW5nLmh0bWwKQEAgLTAsMCArMSwzODggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3Qg
SGFuZGxpbmcgb2YgVGFpbCBQcm9jZXNzaW5nCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVk
aXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBp
ZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNr
UnVubmVyKCk7CisKKyAgICAgIC8vIEZhaXJseSBhcmJpdHJhcnkgYnV0IG11c3QgYmUgYSBwb3dl
ciBvZiB0d28gdG8gZWxpbWluYXRlIHJvdW5kb2ZmIHdoZW4KKyAgICAgIC8vIHdlIGNvbXB1dGUg
dGltZXMgZnJvbSBzYW1wbGUgZnJhbWVzCisgICAgICBjb25zdCBzYW1wbGVSYXRlID0gMzI3Njg7
CisKKyAgICAgIC8vIEZhaXJseSBhcmJpdHJhcnkgZHVyYXRpb24KKyAgICAgIGNvbnN0IHJlbmRl
ckR1cmF0aW9uID0gMC4yNTsKKyAgICAgIGNvbnN0IHJlbmRlckZyYW1lcyA9IHJlbmRlckR1cmF0
aW9uICogc2FtcGxlUmF0ZTsKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJl
bDogJ2dyYWluJywgZGVzY3JpcHRpb246ICdBQlNOIGdyYWluIGhhcyB0aGUgY29ycmVjdCBkdXJh
dGlvbid9LAorICAgICAgICAgICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgICAgIC8vIFRl
c3QgdGhhdCB0aGUgZ3JhaW4gZHVyYXRpb24gaXMgdGhlIHJlcXVlc3RlZCBkdXJhdGlvbi4KKyAg
ICAgICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxl
UmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBsZXQgbWVyZ2VyID0gbmV3IENoYW5uZWxN
ZXJnZXJOb2RlKAorICAgICAgICAgICAgICAgIGNvbnRleHQsIHtudW1iZXJPZklucHV0czogY29u
dGV4dC5kZXN0aW5hdGlvbi5jaGFubmVsQ291bnR9KTsKKyAgICAgICAgICAgIG1lcmdlci5jb25u
ZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgICAgICAvLyBOdW1iZXIgb2YgZnJh
bWVzIGZvciB0aGUgZ3JhaW4gd2Ugd2FudCB0byBwbGF5LiAoUHJldHR5IG11Y2gKKyAgICAgICAg
ICAgIC8vIGFyYml0cmFyeS4pCisgICAgICAgICAgICBsZXQgZ3JhaW5GcmFtZXMgPSAxMjg7CisK
KyAgICAgICAgICAgIC8vIFRlc3Qgc2lnbmFsLiAgSnVzdCBmaWxsIHRoZSBidWZmZXIgd2l0aCBh
bGwgb25lcy4KKyAgICAgICAgICAgIGxldCBiVGVzdCA9IG5ldyBBdWRpb0J1ZmZlcigKKyAgICAg
ICAgICAgICAgICB7bGVuZ3RoOiBjb250ZXh0Lmxlbmd0aCwgc2FtcGxlUmF0ZTogY29udGV4dC5z
YW1wbGVSYXRlfSk7CisgICAgICAgICAgICBiVGVzdC5nZXRDaGFubmVsRGF0YSgwKS5maWxsKDEp
OworICAgICAgICAgICAgbGV0IHNUZXN0ID0gbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250
ZXh0LCB7YnVmZmVyOiBiVGVzdH0pOworCisgICAgICAgICAgICAvLyBSZWZlcmVuY2Ugc2lnbmFs
LiAKKyAgICAgICAgICAgIGxldCBiUmVmID0gbmV3IEF1ZGlvQnVmZmVyKAorICAgICAgICAgICAg
ICAgIHtsZW5ndGg6IGNvbnRleHQubGVuZ3RoLCBzYW1wbGVSYXRlOiBjb250ZXh0LnNhbXBsZVJh
dGV9KTsKKyAgICAgICAgICAgIGJSZWYuZ2V0Q2hhbm5lbERhdGEoMCkuZmlsbCgxLCAwLCBncmFp
bkZyYW1lcyk7CisgICAgICAgICAgICBsZXQgc1JlZiA9IG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5v
ZGUoY29udGV4dCwge2J1ZmZlcjogYlJlZn0pOworCisgICAgICAgICAgICBzVGVzdC5jb25uZWN0
KG1lcmdlciwgMCwgMCk7CisgICAgICAgICAgICBzUmVmLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsK
KworICAgICAgICAgICAgc1Rlc3Quc3RhcnQoMCwgMCwgZ3JhaW5GcmFtZXMgLyBjb250ZXh0LnNh
bXBsZVJhdGUpOworICAgICAgICAgICAgc1JlZi5zdGFydCgpOworCisgICAgICAgICAgICBjb250
ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgICAgICAudGhlbihyZW5kZXJlZEJ1ZmZl
ciA9PiB7CisgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gcmVuZGVyZWRCdWZmZXIuZ2V0
Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSByZW5kZXJl
ZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsKKworICAgICAgICAgICAgICAgICAgLy8gVGhlIGFj
dHVhbCBhbmQgZXhwZWN0ZWQgc2hvdWxkIGJlIHRoZSBzYW1lIGJlY2F1c2Ugd2UgZ290CisgICAg
ICAgICAgICAgICAgICAvLyByaWQgb2YgdGhlIGdyYWluIGhhY2sgdGhhdCBjYXVzZWQgYSBncmFp
biB0byBwbGF5IGZvciBhbgorICAgICAgICAgICAgICAgICAgLy8gZXh0cmEgNTEyIGZyYW1lcy4K
KyAgICAgICAgICAgICAgICAgIHNob3VsZChhY3R1YWwsICdSZW5kZXJlZCBBQlNOIGdyYWluJykK
KyAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvQXJyYXkoZXhwZWN0ZWQpOworICAgICAg
ICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOwor
ICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2hydGYtcGFubmVyLXRhaWwnLCAo
dGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3QoJ1Bhbm5lck5vZGUnLCB7cGFubmlu
Z01vZGVsOiAnSFJURicsIGRpc3RhbmNlTW9kZTogJ2xpbmVhcid9KQorICAgICAgICAgICAgLnRo
ZW4ocmVuZGVyZWRCdWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgcHJlZml4ID0gJ0hSVEYg
UGFubmVyTm9kZSc7CisgICAgICAgICAgICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgICAgIGxldCBsYXRlbmN5RnJhbWUg
PSBmaW5kTGF0ZW5jeUZyYW1lKHJlc3BvbnNlKTsKKyAgICAgICAgICAgICAgbGV0IHRhaWxGcmFt
ZSA9IGZpbmRUYWlsRnJhbWUocmVzcG9uc2UpOworCisgICAgICAgICAgICAgIC8vIFRoZSBIUlRG
IHBhbm5lciBoYXMgYm90aCBhIGxhdGVuY3kgY29tcG9uZW50IGFuZCBhIHRhaWwKKyAgICAgICAg
ICAgICAgLy8gY29tcG9uZW50LiAgTWFrZSBzdXJlIGJvdGggYXJlIG5vbi16ZXJvLgorICAgICAg
ICAgICAgICBzaG91bGQobGF0ZW5jeUZyYW1lLCBgJHtwcmVmaXh9IGxhdGVuY3kgZnJhbWUgKCR7
bGF0ZW5jeUZyYW1lfSlgKQorICAgICAgICAgICAgICAgICAgLmJlR3JlYXRlclRoYW4oMCk7CisK
KyAgICAgICAgICAgICAgc2hvdWxkKHRhaWxGcmFtZSwgYCR7cHJlZml4fSB0YWlsIGZyYW1lICgk
e3RhaWxGcmFtZX0pYCkKKyAgICAgICAgICAgICAgICAgIC5iZUdyZWF0ZXJUaGFuKDApOworCisg
ICAgICAgICAgICAgIC8vIEJlY2F1c2Ugb2YgdGhlIGxhdGVuY3ksIHRoZSBvdXRwdXQgaXMgemVy
byBhdCB0aGUgYmVnaW5uaW5nLgorICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhpcyBpcyB0
cnVlLgorICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBvdXRwdXQuc2xp
Y2UoMCwgbGF0ZW5jeUZyYW1lKSwKKyAgICAgICAgICAgICAgICAgIGAke3ByZWZpeH0gTGF0ZW5j
eSBvdXRwdXRbMDpgICsgKGxhdGVuY3lGcmFtZSAtIDEpICsgJ10nKQorICAgICAgICAgICAgICAg
ICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDApOworCisgICAgICAgICAgICAgIC8vIFZlcmlmeSB0aGUg
cmVzdCBvZiB0aGUgb3V0cHV0IG1hdGNoZXMgdGhlIGV4cGVjdGVkIHZhbHVlcy4gIFRoZQorICAg
ICAgICAgICAgICAvLyBvdXRwdXQgc2hvdWxkIGJlIG5vbi16ZXJvIGZyb20gbGF0ZW5jeUZyYW1l
IHRvIHRhaWxGcmFtZSBhbmQKKyAgICAgICAgICAgICAgLy8gemVybyBhZnRlciB0YWlsRnJhbWUu
CisgICAgICAgICAgICAgIHZlcmlmeU91dHB1dChzaG91bGQsIG91dHB1dCwgeworICAgICAgICAg
ICAgICAgIHByZWZpeDogcHJlZml4LAorICAgICAgICAgICAgICAgIHN0YXJ0RnJhbWU6IGxhdGVu
Y3lGcmFtZSwKKyAgICAgICAgICAgICAgICBub25aZXJvRW5kRnJhbWU6IE1hdGgubWluKHRhaWxG
cmFtZSwgb3V0cHV0Lmxlbmd0aCksCisgICAgICAgICAgICAgICAgemVyb1N0YXJ0RnJhbWU6IHJv
dW5kVXAodGFpbEZyYW1lKSwKKyAgICAgICAgICAgICAgICB0YWlsRnJhbWU6IHRhaWxGcmFtZSwK
KyAgICAgICAgICAgICAgICByZWZlcmVuY2U6IHJlc3BvbnNlCisgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAg
ICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2JpcXVhZC10YWlsJywgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICBydW5UZXN0KCdCaXF1YWRGaWx0ZXJOb2RlJywge1E6IDIwLCBmcmVx
dWVuY3k6IDEwMH0pCisgICAgICAgICAgICAudGhlbihyZW5kZXJlZEJ1ZmZlciA9PiB7CisgICAg
ICAgICAgICAgIGxldCBwcmVmaXggPSAnQmlxdWFkRmlsdGVyJworICAgICAgICAgICAgICBsZXQg
b3V0cHV0ID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAg
IGxldCByZXNwb25zZSA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworICAgICAg
ICAgICAgICBsZXQgdGFpbEZyYW1lID0gZmluZFRhaWxGcmFtZShyZXNwb25zZSk7CisKKyAgICAg
ICAgICAgICAgc2hvdWxkKHRhaWxGcmFtZSwgYCR7cHJlZml4fSB0YWlsIGZyYW1lICgke3RhaWxG
cmFtZX0pYCkKKyAgICAgICAgICAgICAgICAgIC5iZUdyZWF0ZXJUaGFuKDApOworCisgICAgICAg
ICAgICAgIC8vIFZlcmlmeSBiaXF1YWQgb3V0cHV0IHdoaWNoIHNob3VsZCBiZSBub24temVybyB1
cCB0byB0YWlsRnJhbWUKKyAgICAgICAgICAgICAgLy8gYW5kIHplcm8gYWZ0ZXJ3YXJkcy4gIEhv
d2V2ZXIsIHRoZSBhY3R1YWwgb3V0cHV0IGlzbid0IGFmdGVyCisgICAgICAgICAgICAgIC8vIHRh
aWxGcmFtZSBiZWNhdXNlIHRoZSBpbnRlcm5hbCBiaXF1YWQgdGFpbCB0aW1lIHVzZXMgYW4KKyAg
ICAgICAgICAgICAgLy8gYXBwcm94aW1hdGlvbi4gIFRoYXQncyB3aHkgemVyb1N0YXJ0RnJhbWUg
aXMgb25lIHJlbmRlciBxdWFudHVtCisgICAgICAgICAgICAgIC8vIGFmdGVyIHRhaWxGcmFtZS4K
KyAgICAgICAgICAgICAgdmVyaWZ5T3V0cHV0KHNob3VsZCwgb3V0cHV0LCB7CisgICAgICAgICAg
ICAgICAgcHJlZml4OiBwcmVmaXgsCisgICAgICAgICAgICAgICAgc3RhcnRGcmFtZTogMCwKKyAg
ICAgICAgICAgICAgICBub25aZXJvRW5kRnJhbWU6CisgICAgICAgICAgICAgICAgICAgIE1hdGgu
bWluKHRhaWxGcmFtZSArIFJFTkRFUl9RVUFOVFVNX0ZSQU1FUywgb3V0cHV0Lmxlbmd0aCksCisg
ICAgICAgICAgICAgICAgemVyb1N0YXJ0RnJhbWU6IFJFTkRFUl9RVUFOVFVNX0ZSQU1FUyArIHJv
dW5kVXAodGFpbEZyYW1lKSwKKyAgICAgICAgICAgICAgICB0YWlsRnJhbWU6IHRhaWxGcmFtZSwK
KyAgICAgICAgICAgICAgICByZWZlcmVuY2U6IHJlc3BvbnNlCisgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAg
ICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2lpci10YWlsJywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBydW5UZXN0KCdJSVJGaWx0ZXJOb2RlJywge2ZlZWRmb3J3YXJkOiBbMV0s
IGZlZWRiYWNrOiBbMSwgLS45OV19KQorICAgICAgICAgICAgLnRoZW4ocmVuZGVyZWRCdWZmZXIg
PT4geworICAgICAgICAgICAgICBsZXQgcHJlZml4ID0gJ0lJUkZpbHRlcic7CisgICAgICAgICAg
ICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAg
ICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7
CisgICAgICAgICAgICAgIGxldCB0YWlsRnJhbWUgPSBmaW5kVGFpbEZyYW1lKHJlc3BvbnNlKTsK
KworICAgICAgICAgICAgICBzaG91bGQodGFpbEZyYW1lLCBgJHtwcmVmaXh9IHRhaWwgZnJhbWUg
KCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAgICAgICAgICAgLmJlR3JlYXRlclRoYW4oMCk7CisK
KyAgICAgICAgICAgICAgdmVyaWZ5T3V0cHV0KHNob3VsZCwgb3V0cHV0LCB7CisgICAgICAgICAg
ICAgICAgcHJlZml4OiBwcmVmaXgsCisgICAgICAgICAgICAgICAgc3RhcnRGcmFtZTogMCwKKyAg
ICAgICAgICAgICAgICBub25aZXJvRW5kRnJhbWU6CisgICAgICAgICAgICAgICAgICAgIE1hdGgu
bWluKHRhaWxGcmFtZSArIFJFTkRFUl9RVUFOVFVNX0ZSQU1FUywgb3V0cHV0Lmxlbmd0aCksCisg
ICAgICAgICAgICAgICAgemVyb1N0YXJ0RnJhbWU6IDIgKiBSRU5ERVJfUVVBTlRVTV9GUkFNRVMg
KyByb3VuZFVwKHRhaWxGcmFtZSksCisgICAgICAgICAgICAgICAgdGFpbEZyYW1lOiB0YWlsRnJh
bWUsCisgICAgICAgICAgICAgICAgcmVmZXJlbmNlOiByZXNwb25zZQorICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7
CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdkZWxheS10YWlsJywgKHRhc2ssIHNo
b3VsZCkgPT4geworICAgICAgICAvLyBGb3IgdGhlIHRlc3QsIG1ha2Ugc3VyZSB0aGUgZGVsYXkg
aXMgZ3JlYXRlciB0aGFuIG9uZSByZW5kZXIKKyAgICAgICAgLy8gcXVhbnR1bS4gIElmIGl0J3Mg
bGVzcyB3ZSB3b24ndCBiZSBhYmxlIHRvIHRlbGwgaWYgdGFpbCBwcm9jZXNzaW5nCisgICAgICAg
IC8vIHdvcmtlZCBiZWNhdXNlIHRoZSBpbnB1dCBzaWduYWwgaXMgYW4gaW1wdWxzZS4KKyAgICAg
ICAgbGV0IGRlbGF5RnJhbWVzID0gUkVOREVSX1FVQU5UVU1fRlJBTUVTICsgNjQ7CisgICAgICAg
IHJ1blRlc3QoJ0RlbGF5Tm9kZScsIHtkZWxheVRpbWU6IGRlbGF5RnJhbWVzIC8gc2FtcGxlUmF0
ZX0pCisgICAgICAgICAgICAudGhlbihyZW5kZXJlZEJ1ZmZlciA9PiB7CisgICAgICAgICAgICAg
IGxldCBwcmVmaXggPSAnRGVsYXknOworICAgICAgICAgICAgICBsZXQgb3V0cHV0ID0gcmVuZGVy
ZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9
IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworICAgICAgICAgICAgICBsZXQgdGFp
bEZyYW1lID0gZmluZFRhaWxGcmFtZShyZXNwb25zZSk7CisKKyAgICAgICAgICAgICAgc2hvdWxk
KHRhaWxGcmFtZSwgYCR7cHJlZml4fSB0YWlsIGZyYW1lICgke3RhaWxGcmFtZX0pYCkKKyAgICAg
ICAgICAgICAgICAgIC5iZUdyZWF0ZXJUaGFuKDApOworCisgICAgICAgICAgICAgIC8vIEFzIGEg
ZGVsYXkgbm9kZSB3aXRoIGRlbGF5IHRpbWUgZ3JlYXRlciB0aGFuIG9uZSByZW5kZXIKKyAgICAg
ICAgICAgICAgLy8gcXVhbnR1bSwgdGhlIGZpcnN0IHJlbmRlciBxdWFudHVtIG11c3QgYmUgMC4K
KyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgb3V0cHV0LnNsaWNlKDAs
IFJFTkRFUl9RVUFOVFVNX0ZSQU1FUyksCisgICAgICAgICAgICAgICAgICBgJHtwcmVmaXh9IG91
dHB1dFswOmAgKyAoUkVOREVSX1FVQU5UVU1fRlJBTUVTIC0gMSkgKyAnXScpCisgICAgICAgICAg
ICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMCk7CisKKyAgICAgICAgICAgICAgLy8gVGhlIG91
dHB1dCBvZiB0aGUgZGVsYXkgbm9kZSBzaG91bGQgYmUgbm9uemVybyBpbiB0aGUgc2Vjb25kCisg
ICAgICAgICAgICAgIC8vIHJlbmRlciBxdWFudHVtIGFuZCB6ZXJvIGZvcmV2ZXIgYWZ0ZXIuCisg
ICAgICAgICAgICAgIHZlcmlmeU91dHB1dChzaG91bGQsIG91dHB1dCwgeworICAgICAgICAgICAg
ICAgIHByZWZpeDogcHJlZml4LAorICAgICAgICAgICAgICAgIHN0YXJ0RnJhbWU6IFJFTkRFUl9R
VUFOVFVNX0ZSQU1FUywKKyAgICAgICAgICAgICAgICBub25aZXJvRW5kRnJhbWU6IE1hdGgubWlu
KHRhaWxGcmFtZSwgb3V0cHV0Lmxlbmd0aCksCisgICAgICAgICAgICAgICAgemVyb1N0YXJ0RnJh
bWU6IHJvdW5kVXAodGFpbEZyYW1lKSwKKyAgICAgICAgICAgICAgICB0YWlsRnJhbWU6IHRhaWxG
cmFtZSwKKyAgICAgICAgICAgICAgICByZWZlcmVuY2U6IHJlc3BvbnNlCisgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25l
KCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnY29udm9sdmVyLXRhaWwnLCAo
dGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFRoZSBjb252b2x2ZXIgcmVzcG9uc2UuICBJ
dCBuZWVkcyB0byBiZSBsb25nZXIgdGhhbiBvbmUgcmVuZGVyCisgICAgICAgIC8vIHF1YW50dW0g
dG8gc2hvdyB0aGUgdGFpbCBwcm9jZXNzaW5nLgorICAgICAgICBsZXQgcmVzcG9uc2UgPSBuZXcg
QXVkaW9CdWZmZXIoCisgICAgICAgICAgICB7bGVuZ3RoOiBSRU5ERVJfUVVBTlRVTV9GUkFNRVMg
KyA2NCwgc2FtcGxlUmF0ZTogc2FtcGxlUmF0ZX0pOworICAgICAgICAvLyBGb3Igc2ltcGxpY2l0
eSwganVzdCBtYWtlIHRoZSByZXNwb25zZSBhbGwgb25lcy4KKyAgICAgICAgcmVzcG9uc2UuZ2V0
Q2hhbm5lbERhdGEoMCkuZmlsbCgxKTsKKworICAgICAgICBydW5UZXN0KCdDb252b2x2ZXJOb2Rl
Jywge2Rpc2FibGVOb3JtYWxpemF0aW9uOiB0cnVlLCBidWZmZXI6IHJlc3BvbnNlfSkKKyAgICAg
ICAgICAgIC50aGVuKHJlbmRlcmVkQnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IHByZWZp
eCA9ICdDb252b2x2ZXInOworICAgICAgICAgICAgICBsZXQgb3V0cHV0ID0gcmVuZGVyZWRCdWZm
ZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9IHJlbmRl
cmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworICAgICAgICAgICAgICBsZXQgdGFpbEZyYW1l
ID0gZmluZFRhaWxGcmFtZShyZXNwb25zZSk7CisKKyAgICAgICAgICAgICAgc2hvdWxkKHRhaWxG
cmFtZSwgYCR7cHJlZml4fSB0YWlsIGZyYW1lICgke3RhaWxGcmFtZX0pYCkKKyAgICAgICAgICAg
ICAgICAgIC5iZUdyZWF0ZXJUaGFuKDApOworCisgICAgICAgICAgICAgIHZlcmlmeU91dHB1dChz
aG91bGQsIG91dHB1dCwgeworICAgICAgICAgICAgICAgIHByZWZpeDogcHJlZml4LAorICAgICAg
ICAgICAgICAgIHN0YXJ0RnJhbWU6IDAsCisgICAgICAgICAgICAgICAgbm9uWmVyb0VuZEZyYW1l
OgorICAgICAgICAgICAgICAgICAgICBNYXRoLm1pbih0YWlsRnJhbWUgKyBSRU5ERVJfUVVBTlRV
TV9GUkFNRVMsIG91dHB1dC5sZW5ndGgpLAorICAgICAgICAgICAgICAgIHplcm9TdGFydEZyYW1l
OiBSRU5ERVJfUVVBTlRVTV9GUkFNRVMgKyByb3VuZFVwKHRhaWxGcmFtZSksCisgICAgICAgICAg
ICAgICAgdGFpbEZyYW1lOiB0YWlsRnJhbWUsCisgICAgICAgICAgICAgICAgcmVmZXJlbmNlOiBy
ZXNwb25zZQorICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAu
dGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5l
KCdkeW5hbWljcy1jb21wcmVzc29yLXRhaWwnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAg
IHJ1blRlc3QoJ0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUnLCB7fSkKKyAgICAgICAgICAgIC50aGVu
KHJlbmRlcmVkQnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IHByZWZpeCA9ICdEeWFtaWNz
Q29tcHJlc3Nvcic7CisgICAgICAgICAgICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgICAgIGxldCB0YWlsRnJhbWUgPSBm
aW5kVGFpbEZyYW1lKHJlc3BvbnNlKTsKKworICAgICAgICAgICAgICBzaG91bGQodGFpbEZyYW1l
LCBgJHtwcmVmaXh9IHRhaWwgZnJhbWUgKCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAgICAgICAg
ICAgLmJlR3JlYXRlclRoYW4oMCk7CisKKyAgICAgICAgICAgICAgbGV0IGxhdGVuY3lGcmFtZSA9
IHJvdW5kRG93bih0YWlsRnJhbWUgLSAxKTsKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAg
ICAgICAgICAgICAgb3V0cHV0LnNsaWNlKDAsIGxhdGVuY3lGcmFtZSksCisgICAgICAgICAgICAg
ICAgICBgJHtwcmVmaXh9IG91dHB1dFswOmAgKyAobGF0ZW5jeUZyYW1lIC0gMSkgKyAnXScpCisg
ICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMCk7CisKKyAgICAgICAgICAgICAg
dmVyaWZ5T3V0cHV0KHNob3VsZCwgb3V0cHV0LCB7CisgICAgICAgICAgICAgICAgcHJlZml4OiBw
cmVmaXgsCisgICAgICAgICAgICAgICAgc3RhcnRGcmFtZTogbGF0ZW5jeUZyYW1lLAorICAgICAg
ICAgICAgICAgIG5vblplcm9FbmRGcmFtZTogTWF0aC5taW4odGFpbEZyYW1lLCBvdXRwdXQubGVu
Z3RoKSwKKyAgICAgICAgICAgICAgICB6ZXJvU3RhcnRGcmFtZTogcm91bmRVcCh0YWlsRnJhbWUp
LAorICAgICAgICAgICAgICAgIHRhaWxGcmFtZTogdGFpbEZyYW1lLAorICAgICAgICAgICAgICAg
IHJlZmVyZW5jZTogcmVzcG9uc2UKKyAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0p
CisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCd3YXZlc2hhcGVyLXRhaWwnLCAodGFzaywgc2hvdWxkKSA9PiB7Cisg
ICAgICAgIC8vIEZhaXJseSBhcmJpdHJhcnkgY3VydmUgZm9yIHRoZSBXYXZlU2hhcGVyCisgICAg
ICAgIGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFstMSwgLS41LCAwLCAwLjUsIDFdKTsK
KworICAgICAgICBydW5UZXN0KCdXYXZlU2hhcGVyTm9kZScsIHtjdXJ2ZTogY3VydmUsIG92ZXJz
YW1wbGU6ICcyeCd9KQorICAgICAgICAgICAgLnRoZW4ocmVuZGVyZWRCdWZmZXIgPT4geworICAg
ICAgICAgICAgICBsZXQgcHJlZml4ID0gJ1dhdmVTaGFwZXInOworICAgICAgICAgICAgICBsZXQg
b3V0cHV0ID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAg
IGxldCByZXNwb25zZSA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworICAgICAg
ICAgICAgICAvLyBGRlQgcmVzYW1wbGVyIGludHJvZHVjZXMgc29tZSB2ZXJ5IHNtYWxsIHJvdW5k
LW9mZi4gIFVzZSBhCisgICAgICAgICAgICAgIC8vIHRocmVzaG9sZCBvZiB6ZXJvIHRvIGZpbmQg
dGhlIHRhaWwgZnJhbWUuCisgICAgICAgICAgICAgIGxldCB0YWlsRnJhbWUgPSBmaW5kVGFpbEZy
YW1lKHJlc3BvbnNlLCAwKTsKKworICAgICAgICAgICAgICBzaG91bGQodGFpbEZyYW1lLCBgJHtw
cmVmaXh9IHRhaWwgZnJhbWUgKCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAgICAgICAgICAgLmJl
R3JlYXRlclRoYW4oMCk7CisKKyAgICAgICAgICAgICAgdmVyaWZ5T3V0cHV0KHNob3VsZCwgb3V0
cHV0LCB7CisgICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCisgICAgICAgICAgICAgICAg
c3RhcnRGcmFtZTogMCwKKyAgICAgICAgICAgICAgICBub25aZXJvRW5kRnJhbWU6IE1hdGgubWlu
KHRhaWxGcmFtZSwgb3V0cHV0Lmxlbmd0aCksCisgICAgICAgICAgICAgICAgemVyb1N0YXJ0RnJh
bWU6IHJvdW5kVXAodGFpbEZyYW1lKSwKKyAgICAgICAgICAgICAgICB0YWlsRnJhbWU6IHRhaWxG
cmFtZSwKKyAgICAgICAgICAgICAgICByZWZlcmVuY2U6IHJlc3BvbnNlCisgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgp
KTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oJ3dhdmVzaGFwZXItdGFpbCcpOworCisg
ICAgICBmdW5jdGlvbiBydW5UZXN0KG5vZGVOYW1lLCBub2RlT3B0aW9ucykgeworICAgICAgICAv
LyBUd28tY2hhbm5lbCBvdXRwdXQuICBDaGFubmVsIDAgaXMgdGhlIHRlc3QgcmVzdWx0OyBjaGFu
bmVsIDEgaXMgdGhlCisgICAgICAgIC8vIGltcHVsc2UgcmVzcG9uc2UgdGhhdCBpcyB1c2VkIHRv
IGZpZ3VyZSBvdXQgd2hlbiB0aGUgdGFpbCBzaG91bGQKKyAgICAgICAgLy8gc3RhcnQuCisgICAg
ICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSwg
c2FtcGxlUmF0ZSk7CisKKyAgICAgICAgLy8gTWVyZ2UgY2hhbm5lbHMgZm9yIHRoZSBkZXN0aW5h
dGlvbi4KKyAgICAgICAgbGV0IG1lcmdlciA9IG5ldyBDaGFubmVsTWVyZ2VyTm9kZShjb250ZXh0
LCB7bnVtYmVyT2ZJbnB1dHM6IDJ9KTsKKyAgICAgICAgbWVyZ2VyLmNvbm5lY3QoY29udGV4dC5k
ZXN0aW5hdGlvbik7CisKKyAgICAgICAgbGV0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUo
Y29udGV4dCwge29mZnNldDogMX0pOworCisgICAgICAgIC8vIEltcHVsc2UgZm9yIHRlc3Rpbmcu
ICBXZSB3YW50IGEgZnVsbCBidWZmZXIgc28gYXMgbm90IHRvIHdvcnJ5IGFib3V0CisgICAgICAg
IC8vIHRoZSBzb3VyY2UgZGlzY29ubmVjdGluZyBwcmVtYXR1cmVseSBmcm9tIHRoZSBmaWx0ZXIu
CisgICAgICAgIGxldCBiID0gbmV3IEF1ZGlvQnVmZmVyKAorICAgICAgICAgICAge2xlbmd0aDog
Y29udGV4dC5sZW5ndGgsIHNhbXBsZVJhdGU6IGNvbnRleHQuc2FtcGxlUmF0ZX0pOworICAgICAg
ICBiLmdldENoYW5uZWxEYXRhKDApWzBdID0gMTsKKyAgICAgICAgbGV0IGltcHVsc2UgPSBuZXcg
QXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQsIHtidWZmZXI6IGJ9KTsKKworICAgICAgICBs
ZXQgdGVzdE5vZGUgPSBuZXcgd2luZG93W25vZGVOYW1lXShjb250ZXh0LCBub2RlT3B0aW9ucyk7
CisgICAgICAgIGxldCByZWZOb2RlID0gbmV3IHdpbmRvd1tub2RlTmFtZV0oY29udGV4dCwgbm9k
ZU9wdGlvbnMpOworCisgICAgICAgIHNyYy5jb25uZWN0KHRlc3ROb2RlKS5jb25uZWN0KG1lcmdl
ciwgMCwgMCk7CisgICAgICAgIGltcHVsc2UuY29ubmVjdChyZWZOb2RlKS5jb25uZWN0KG1lcmdl
ciwgMCwgMSk7CisKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisgICAgICAgIHNyYy5zdG9wKDEgLyBj
b250ZXh0LnNhbXBsZVJhdGUpOworICAgICAgICBpbXB1bHNlLnN0YXJ0KCk7CisKKyAgICAgICAg
cmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKKyAgICAgIH0KKworICAgICAgLy8gU3Rh
cnRpbmcgZnJvbSB0aGUgZW5kIGZpbmQgdGhlIGZpcnN0IGZyYW1lIHRoYXQgZXhjZWVkcyBvdXIg
dGhyZXNob2xkLgorICAgICAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgZXZlcnl0aGluZyBsZXNzIHRo
YW4gdGhlIHRocmVzaG9sZCBpcyBlcXVpdmFsZW50IHRvIDAKKyAgICAgIC8vIGZvciBvdXIgcHVy
cG9zZXMuCisgICAgICBmdW5jdGlvbiBmaW5kVGFpbEZyYW1lKHJlc3BvbnNlLCB6ZXJvVGhyZXNo
b2xkKSB7CisgICAgICAgIC8vIEFueSB2YWx1ZSBiZWxvdyB0aGlzIGlzIGNvbnNpZGVyZWQgdG8g
YmUgemVybyBmb3Igb3VyIHB1cnBvc2Ugb2YKKyAgICAgICAgLy8gZmluZGluZyB0aGUgZmlyc3Qg
bm9uLXplcm8gdmFsdWUuICBTb21ld2hhdCBhcmJpdHJhcnksIGJ1dCB0aGUgdmFsdWUKKyAgICAg
ICAgLy8gaGVyZSBpcyB0aGUgc2l6ZSBvZiB0aGUgTFNCIG9mIGEgMTYtYml0IFBDTSBzYW1wbGUu
CisgICAgICAgIGxldCB0aHJlc2hvbGQgPSB6ZXJvVGhyZXNob2xkID09PSB1bmRlZmluZWQgPyAx
IC8gMzI3NjggOiB6ZXJvVGhyZXNob2xkOworICAgICAgICBsZXQgdGFpbEZyYW1lID0gcmVzcG9u
c2UubGVuZ3RoOworCisgICAgICAgIGZvciAobGV0IGsgPSByZXNwb25zZS5sZW5ndGggLSAxOyBr
ID49IDA7IC0taykgeworICAgICAgICAgIGlmIChNYXRoLmFicyhyZXNwb25zZVtrXSkgPiB0aHJl
c2hvbGQpIHsKKyAgICAgICAgICAgIHRhaWxGcmFtZSA9IGsgKyAxOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRhaWxGcmFtZTsK
KyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gZmluZExhdGVuY3lGcmFtZShyZXNwb25zZSkgewor
ICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IHJlc3BvbnNlLmxlbmd0aDsgKytrKSB7CisgICAg
ICAgICAgaWYgKHJlc3BvbnNlW2tdICE9IDApCisgICAgICAgICAgICByZXR1cm4gazsKKyAgICAg
ICAgfQorCisgICAgICAgIHJldHVybiByZXNwb25zZS5sZW5ndGg7CisgICAgICB9CisKKyAgICAg
IGZ1bmN0aW9uIHZlcmlmeU91dHB1dChzaG91bGQsIG91dHB1dCwgb3B0aW9ucykgeworICAgICAg
ICBsZXQgcHJlZml4ID0gb3B0aW9ucy5wcmVmaXggfHwgJyc7CisgICAgICAgIGlmIChvcHRpb25z
LnRhaWxGcmFtZSAmJiBvcHRpb25zLnJlZmVyZW5jZSkgeworICAgICAgICAgIHNob3VsZCgKKyAg
ICAgICAgICAgICAgb3V0cHV0LnNsaWNlKDAsIG9wdGlvbnMudGFpbEZyYW1lKSwKKyAgICAgICAg
ICAgICAgYCR7cHJlZml4fSBUYWlsIG91dHB1dFswOmAgKyAob3B0aW9ucy50YWlsRnJhbWUgLSAx
KSArICddJykKKyAgICAgICAgICAgICAgLmJlRXF1YWxUb0FycmF5KG9wdGlvbnMucmVmZXJlbmNl
LnNsaWNlKDAsIG9wdGlvbnMudGFpbEZyYW1lKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBW
ZXJpZnkgdGhhdCB8b3V0cHV0fCBpcyBub24temVybyBiZXR3ZWVuIHxzdGFydEZyYW1lfCBhbmQK
KyAgICAgICAgLy8gfG5vblplcm9FbmRGcmFtZXwuCisgICAgICAgIGZvciAobGV0IGsgPSBvcHRp
b25zLnN0YXJ0RnJhbWU7IGsgPCBvcHRpb25zLm5vblplcm9FbmRGcmFtZTsKKyAgICAgICAgICAg
ICBrICs9IFJFTkRFUl9RVUFOVFVNX0ZSQU1FUykgeworICAgICAgICAgIHNob3VsZCgKKyAgICAg
ICAgICAgICAgb3V0cHV0LnNsaWNlKGssIGsgKyBSRU5ERVJfUVVBTlRVTV9GUkFNRVMpLAorICAg
ICAgICAgICAgICBgJHtwcmVmaXh9IG91dHB1dFtgICsgayArICc6JyArIChrICsgMTI3KSArICdd
JykKKyAgICAgICAgICAgICAgLm5vdEJlQ29uc3RhbnRWYWx1ZU9mKDApOworICAgICAgICB9CisK
KyAgICAgICAgLy8gVmVyaWZ5IHxvdXRwdXR8IGlzIHplcm8gc3RhcnRpbmcgYXQgZnJhbWUgfHpl
cm9TdGFydEZyYW1lfCwgaW5jbHVzaXZlCisgICAgICAgIGlmIChvcHRpb25zLnplcm9TdGFydEZy
YW1lIDwgb3V0cHV0Lmxlbmd0aCkgeworICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAg
b3V0cHV0LnNsaWNlKG9wdGlvbnMuemVyb1N0YXJ0RnJhbWUpLAorICAgICAgICAgICAgICBgJHtw
cmVmaXh9IG91dHB1dFtgICsgb3B0aW9ucy56ZXJvU3RhcnRGcmFtZSArICc6XScpCisgICAgICAg
ICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigwKTsKKyAgICAgICAgfQorICAgICAgfQorCisgICAg
ICBmdW5jdGlvbiByb3VuZERvd24oZnJhbWUpIHsKKyAgICAgICAgcmV0dXJuIFJFTkRFUl9RVUFO
VFVNX0ZSQU1FUyAqCisgICAgICAgICAgICBNYXRoLmZsb29yKGZyYW1lIC8gUkVOREVSX1FVQU5U
VU1fRlJBTUVTKTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gcm91bmRVcChmcmFtZSkgewor
ICAgICAgICByZXR1cm4gUkVOREVSX1FVQU5UVU1fRlJBTUVTICogTWF0aC5jZWlsKGZyYW1lIC8g
UkVOREVSX1FVQU5UVU1fRlJBTUVTKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9h
dWRpb3BhcmFtLWF1dG9tYXRpb24tY2xhbXBpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWF1dG9tYXRpb24tY2xhbXBpbmctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU0ZWQ1MDUxNTFkYmU1OGEwNWEyNzJmMzljYjUxOGZkYjQ1MzE4
NGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tYXV0b21hdGlvbi1jbGFtcGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAi
Y2xhbXAiIAorUEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW2NsYW1wXSAgCitQQVNTICAgQ2xh
bXBlZCBzaWduYWwgaW4gZnJhbWUgcmFuZ2UgWzU2MTgsIDE4MzgyXSBlcXVhbHMgWzAsMCwwLDAs
MCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFT
UyAgIEFjdHVhbCBDbGFtcCBzdGFydCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTYxOC4gCitQ
QVNTICAgQWN0dWFsIENsYW1wIGVuZCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTgzODIu
IAorUEFTUyA8IFtjbGFtcF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRp
b25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3Vj
Y2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJh
bS9hdWRpb3BhcmFtLWF1dG9tYXRpb24tY2xhbXBpbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1hdXRvbWF0aW9uLWNsYW1waW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTdlMjQ4MWJhMGQ2Y2NjMmY4NjBmY2EyZGFkM2RmNTkyZTM3YjA1ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1hdXRv
bWF0aW9uLWNsYW1waW5nLmh0bWwKQEAgLTAsMCArMSwxMjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3QgQ2xhbXBpbmcgb2YgQXV0
b21hdGlvbnMKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2Rl
Ij4KKyAgICAgIC8vIFNvbWUgYXJiaXRyYXJ5IHNhbXBsZSByYXRlIGZvciB0aGUgb2ZmbGluZSBj
b250ZXh0LgorICAgICAgbGV0IHNhbXBsZVJhdGUgPSA0ODAwMDsKKworICAgICAgLy8gRHVyYXRp
b24gb2YgdGVzdCAoZmFpcmx5IGFyYml0cmFyeSkuCisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24g
PSAxOworICAgICAgbGV0IHJlbmRlckZyYW1lcyA9IHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0
ZTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAg
ICBhdWRpdC5kZWZpbmUoJ2NsYW1wJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAvLyBU
ZXN0IGNsYW1waW5nIG9mIGF1dG9tYXRpb25zLiAgTW9zdCBBdWRpb1BhcmFtIGxpbWl0cyBhcmUg
ZXNzZW50aWFsbHkKKyAgICAgICAgLy8gdW5ib3VuZGVkLCBzbyBjbGFtcGluZyBkb2Vzbid0IGhh
cHBlbi4gIEZvciBtb3N0IG90aGVyIEF1ZGlvUGFyYW1zLAorICAgICAgICAvLyB0aGUgYmVoYXZp
b3IgaXMgc3VmZmljaWVudGx5IGNvbXBsaWNhdGVkIHdpdGggY29tcGxpY2F0ZWQgb3V0cHV0cwor
ICAgICAgICAvLyB0aGF0IHRlc3RpbmcgdGhlbSBpcyBoYXJkLiAgSG93ZXZlciB0aGUgb3V0cHV0
IGJlaGF2aW9yIG9mIHRoZQorICAgICAgICAvLyBmcmVxdWVuY3kgcGFyYW1ldGVyIGZvciBhIEJp
cXVhZEZpbHRlciBpcyByZWxhdGl2ZWx5IHNpbXBsZS4gIFVzZQorICAgICAgICAvLyB0aGF0IGFz
IHRoZSB0ZXN0LgorICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0
KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgbGV0IHNvdXJjZSA9IGNv
bnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgIHNvdXJjZS5idWZmZXIgPSBjcmVh
dGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAgc291cmNlLmxvb3AgPSB0
cnVlOworCisgICAgICAgIGxldCBmaWx0ZXIgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigp
OworICAgICAgICBmaWx0ZXIudHlwZSA9ICdsb3dwYXNzJzsKKworICAgICAgICBzb3VyY2UuY29u
bmVjdChmaWx0ZXIpOworICAgICAgICBmaWx0ZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9u
KTsKKworICAgICAgICBsZXQgVjAgPSA4ODA7CisgICAgICAgIGxldCBUMCA9IDA7CisgICAgICAg
IGZpbHRlci5mcmVxdWVuY3kuc2V0VmFsdWVBdFRpbWUoVjAsIFQwKTsKKworICAgICAgICBsZXQg
VjEgPSAtMTAwMDsKKyAgICAgICAgbGV0IFQxID0gcmVuZGVyRHVyYXRpb24gLyA0OworICAgICAg
ICBmaWx0ZXIuZnJlcXVlbmN5LmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKFYxLCBUMSk7CisKKyAg
ICAgICAgbGV0IFYyID0gODgwOworICAgICAgICBsZXQgVDIgPSByZW5kZXJEdXJhdGlvbiAvIDI7
CisgICAgICAgIGZpbHRlci5mcmVxdWVuY3kubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoVjIsIFQy
KTsKKworICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICBjb250ZXh0LnN0YXJ0UmVu
ZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKGJ1ZmZlcikgeworICAgICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgICAgICAg
ICAgIC8vIFdoZW4gdGhlIGN1dG9mZiBmcmVxdWVuY3kgb2YgYSBsb3dwYXNzIGZpbHRlciBpcyAw
LCBub3RoaW5nCisgICAgICAgICAgICAgIC8vIGdldHMgdGhyb3VnaC4gIEhlbmNlIHRoZSBvdXRw
dXQgb2YgdGhlIGZpbHRlciBiZXR3ZWVuIHRoZQorICAgICAgICAgICAgICAvLyBjbGFtcGluZyBw
ZXJpb2Qgc2hvdWxkIGJlIGV4YWN0bHkgemVyby4gVGhpcyB0ZXN0cyBwYXNzZXMgaWYKKyAgICAg
ICAgICAgICAgLy8gdGhlIG91dHB1dCBpcyAwIGR1cmluZyB0aGUgZXhwZWN0ZWQgcmFuZ2UuCisg
ICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgIC8vIENvbXB1dGUgd2hlbiB0aGUgZnJlcXVl
bmN5IHZhbHVlIG9mIHRoZSBiaXF1YWQgZ29lcyB0byAwLiAgSW4KKyAgICAgICAgICAgICAgLy8g
Z2VuZXJhbCwgdCA9IChUMCpWMSAtVDEqVjApLyhWMS1WMCkgKHVzaW5nIHRoZSBub3RhdGlvbiBm
cm9tCisgICAgICAgICAgICAgIC8vIHRoZSBzcGVjLikKKyAgICAgICAgICAgICAgbGV0IGNsYW1w
U3RhcnRUaW1lID0gc29sdmVMaW5lYXJSYW1wKDAsIFYwLCBUMCwgVjEsIFQxKTsKKyAgICAgICAg
ICAgICAgbGV0IGNsYW1wRW5kVGltZSA9IHNvbHZlTGluZWFyUmFtcCgwLCBWMSwgVDEsIFYyLCBU
Mik7CisKKyAgICAgICAgICAgICAgbGV0IGNsYW1wU3RhcnRGcmFtZSA9IE1hdGguY2VpbChjbGFt
cFN0YXJ0VGltZSAqIHNhbXBsZVJhdGUpOworICAgICAgICAgICAgICBsZXQgY2xhbXBFbmRGcmFt
ZSA9IE1hdGguZmxvb3IoY2xhbXBFbmRUaW1lICogc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAg
ICAgbGV0IGNsYW1wZWRTaWduYWwgPQorICAgICAgICAgICAgICAgICAgcmVzdWx0LnNsaWNlKGNs
YW1wU3RhcnRGcmFtZSwgY2xhbXBFbmRGcmFtZSArIDEpOworICAgICAgICAgICAgICBsZXQgZXhw
ZWN0ZWRTaWduYWwgPSBuZXcgRmxvYXQzMkFycmF5KGNsYW1wZWRTaWduYWwubGVuZ3RoKTsKKyAg
ICAgICAgICAgICAgZXhwZWN0ZWRTaWduYWwuZmlsbCgwKTsKKworICAgICAgICAgICAgICAvLyBP
dXRwdXQgc2hvdWxkIGJlIHplcm8uCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAg
ICAgICAgIGNsYW1wZWRTaWduYWwsCisgICAgICAgICAgICAgICAgICAnQ2xhbXBlZCBzaWduYWwg
aW4gZnJhbWUgcmFuZ2UgWycgKyBjbGFtcFN0YXJ0RnJhbWUgKyAnLCAnICsKKyAgICAgICAgICAg
ICAgICAgICAgICBjbGFtcEVuZEZyYW1lICsgJ10nKQorICAgICAgICAgICAgICAgICAgLmJlQ2xv
c2VUb0FycmF5KGV4cGVjdGVkU2lnbmFsLCAwKTsKKworICAgICAgICAgICAgICAvLyBGaW5kIHRo
ZSBhY3R1YWwgY2xhbXAgcmFuZ2UgYmFzZWQgb24gdGhlIG91dHB1dCB2YWx1ZXMuCisgICAgICAg
ICAgICAgIGxldCBhY3R1YWxDbGFtcFN0YXJ0ID0gcmVzdWx0LmZpbmRJbmRleCh4ID0+IHggPT09
IDApOworICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xhbXBFbmQgPSBhY3R1YWxDbGFtcFN0YXJ0
ICsKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5zbGljZShhY3R1YWxDbGFtcFN0YXJ0KS5maW5k
SW5kZXgoeCA9PiB4ICE9IDApOworCisgICAgICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBl
eHBlY3RlZCBjbGFtcGluZyByYW5nZSBpcyBhIHN1YnNldCBvZiB0aGUKKyAgICAgICAgICAgICAg
Ly8gYWN0dWFsIHJhbmdlLgorICAgICAgICAgICAgICBzaG91bGQoYWN0dWFsQ2xhbXBTdGFydCwg
J0FjdHVhbCBDbGFtcCBzdGFydCcpCisgICAgICAgICAgICAgICAgICAuYmVMZXNzVGhhbk9yRXF1
YWxUbyhjbGFtcFN0YXJ0RnJhbWUpOworICAgICAgICAgICAgICBzaG91bGQoYWN0dWFsQ2xhbXBF
bmQsICdBY3R1YWwgQ2xhbXAgZW5kJykKKyAgICAgICAgICAgICAgICAgIC5iZUdyZWF0ZXJUaGFu
T3JFcXVhbFRvKGNsYW1wRW5kRnJhbWUpOworCisgICAgICAgICAgICB9KQorICAgICAgICAgICAg
LnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1bigp
OworCisgICAgICBmdW5jdGlvbiBzb2x2ZUxpbmVhclJhbXAodiwgdjAsIHQwLCB2MSwgdDEpIHsK
KyAgICAgICAgLy8gU29sdmUgdGhlIGxpbmVhciByYW1wIGVxdWF0aW9uIGZvciB0aGUgdGltZSB0
IGF0IHdoaWNoIHRoZSByYW1wCisgICAgICAgIC8vIHJlYWNoZXMgdGhlIHZhbHVlIHYuICBUaGUg
bGluZWFyIHJhbXAgZXF1YXRpb24gKGZyb20gdGhlIHNwZWMpIGlzCisgICAgICAgIC8vCisgICAg
ICAgIC8vICB2KHQpID0gdjAgKyAodjEgLSB2MCkgKiAodCAtIHQwKS8odDEgLSB0MCkKKyAgICAg
ICAgLy8KKyAgICAgICAgLy8gRmluZCB0IHN1Y2ggdGhhdAorICAgICAgICAvLworICAgICAgICAv
LyAgIHYgPSB2MCArICh2MSAtIHYwKSAqICh0IC0gdDApLyh0MSAtIHQwKQorICAgICAgICAvLwor
ICAgICAgICAvLyBUaGVuCisgICAgICAgIC8vCisgICAgICAgIC8vICAgdCA9ICh0MCAqIHYxIC0g
dDEgKiB2MCArICh0MSAtIHQwKSAqIHYpIC8gKHYxIC0gdjApCisgICAgICAgIC8vCisgICAgICAg
IHJldHVybiAodDAgKiB2MSAtIHQxICogdjAgKyAodDEgLSB0MCkgKiB2KSAvICh2MSAtIHYwKTsK
KyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9s
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFy
YW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2MwNzY3MmEwY2Iz
NzJlNzk1ZDUwMGRhN2NiYzg0NzQ2ZjljZjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxNzkgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJU
RUQuIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhciIgCitQQVNTIEV4ZWN1dGluZyAiZXhwb25lbnRp
YWwiIAorUEFTUyBFeGVjdXRpbmcgInNldFRhcmdldCIgCitQQVNTIEV4ZWN1dGluZyAic2V0VmFs
dWVDdXJ2ZSIgCitQQVNTIEV4ZWN1dGluZyAic2V0VmFsdWVDdXJ2ZSBhZnRlciBlbmQiIAorUEFT
UyBFeGVjdXRpbmcgImluaXRpYWwgc2V0VGFyZ2V0IiAKK1BBU1MgRXhlY3V0aW5nICJwb3N0IGNh
bmNlbDogTGluZWFyIiAKK1BBU1MgRXhlY3V0aW5nICJwb3N0IGNhbmNlbDogRXhwb25lbnRpYWwi
IAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlIiAKK1BBU1MgRXhlY3V0
aW5nICJwb3N0IGNhbmNlbDogc2V0VGFyZ2V0IiAKK1BBU1MgRXhlY3V0aW5nICJwb3N0IGNhbmNl
bDogc2V0VmFsdWUiIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0IiAK
K1BBU1MgRXhlY3V0aW5nICJjYW5jZWwgc2V0VGFyZ2V0IG5vdyIgCitQQVNTIEV4ZWN1dGluZyAi
Y2FuY2VsIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlIiAKK1BBU1MgRXhlY3V0aW5nICJjYW5jZWwgc2V0
VmFsdWVDdXJ2ZSBub3ciIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhciwgY2FuY2VsLCBsaW5lYXIs
IGNhbmNlbCwgbGluZWFyIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtsaW5lYXJdIENh
bmNlbCBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZSAKK0ZBSUwgWCBsaW5lYXJSYW1wVG9WYWx1ZUF0
VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZG9lcyBub3Qg
ZXF1YWwgWzAsMC4wMDIwODMzMzM0NDE5ODc2MzM3LDAuMDA0MTY2NjY2ODgzOTc1MjY3LDAuMDA2
MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMzc2Nzk1MDUzNSwwLjAxMDQxNjY2Njk3NzEwNzUy
NSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMzM5NTQyMTUwNSwwLjAxNjY2NjY2NzUz
NTkwMTA3LDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2
NzE2MzM3MjA0LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzM1ODE2ODYwMiwwLjAyOTE2
NjY2Njc5MDg0MzAxLDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBv
ZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCisJSW5kZXgJ
QWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hvbGQKKwlb
NzE1XQk5LjkwMDA4NTMzMDAwOTQ2MDRlLTEJOS45MDAwODQ3MzM5NjMwMTI3ZS0xCTUuOTYwNDY0
NDc3NTM5MDYyNWUtOAk2LjAyMDYxOTY1OTAzMzA0MjdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSsw
CisJWzgxNl0JOS44NTcxNDMxNjM2ODEwMzAzZS0xCTkuODU3MTQyNTY3NjM0NTgyNWUtMQk1Ljk2
MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNDY4NDgxOTgyOTAxODE3ZS04CTAuMDAwMDAwMDAwMDAwMDAw
MGUrMAorCVs4NzldCTkuODMwMzU2ODM2MzE4OTY5N2UtMQk5LjgzMDM1NzQzMjM2NTQxNzVlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDYzMzI0MjY3MjQ4Nzc4MmUtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKKwlbMTI2NF0JOS42NjY2NjYzODg1MTE2NTc3ZS0xCTkuNjY2NjY2OTg0NTU4MTA1
NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xNjU5OTc1MzI2MTQ0Mjc5ZS04CTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAorCVsxMzY4XQk5LjYyMjQ0OTI3ODgzMTQ4MTllLTEJOS42MjI0NDg2ODI3
ODUwMzQyZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE5NDMzMjMwOTgyMzE1ODNlLTgJMC4w
MDAwMDAwMDAwMDAwMDAwZSswCisJLi4uYW5kIDExNDAgbW9yZSBlcnJvcnMuCisJTWF4IEFic0Vy
cm9yIG9mIDUuOTYwNDY0NDc3NTM5MDYyNWUtOCBhdCBpbmRleCBvZiA3MTUuCisJTWF4IFJlbEVy
cm9yIG9mIDEuMTY3MTgxMTk5MDQ1MjQ1OGUtNyBhdCBpbmRleCBvZiAxMTk4OS4KKwlbMTE5ODld
CTUuMTA2NzE3OTQ0MTQ1MjAyNmUtMQk1LjEwNjcxNzM0ODA5ODc1NDllLTEJNS45NjA0NjQ0Nzc1
MzkwNjI1ZS04CTEuMTY3MTgxMTk5MDQ1MjQ1OGUtNwkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKyBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBDYW5jZWxsaW5nIGxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUg
MC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFT
UyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2
Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK0ZBSUwgPCBbbGluZWFyXSAx
IG91dCBvZiAzIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtleHBvbmVudGlhbF0gQ2FuY2VsIGV4cG9uZW50aWFsUmFt
cEF0VGltZSAKK1BBU1MgICBleHBvbmVudGlhbFJhbXBUb1ZhbHVlKDAuMDAxLCAwLjUpIHVwIHRv
IHRpbWUgMC4yNSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6NS45NjA1ZS04LCJyZWxhdGl2ZVRocmVz
aG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZSgwLjAw
MSwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4wMzM5MzIy
MjAxOTA3NjM0NzQuIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIGV4cG9u
ZW50aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuMDMzOTMyMjE2
NDY1NDczMTc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTg2NjQuIAorUEFTUyA8IFtleHBv
bmVudGlhbF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BB
U1MgPiBbc2V0VGFyZ2V0XSBDYW5jZWwgc2V0VGFyZ2V0QXRUaW1lIAorUEFTUyAgIHNldFRhcmdl
dEF0VGltZSgwLCAwLjAxLCAwLjA1KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFtleHBlY3RlZCBh
cnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hv
bGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2VsbGluZyBzZXRUYXJn
ZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDAuMDA4MjI5NzUxMTM5ODc5MjI3LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3Ig
Y2FuY2VsbGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAwLjI1IGlz
IDAuMDA4MjI5NzQ3NDE0NTg4OTI4IHdpdGhpbiBhbiBlcnJvciBvZiA0LjUyNjdlLTcuIAorUEFT
UyA8IFtzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9u
cykgCitQQVNTID4gW3NldFZhbHVlQ3VydmVdIENhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIAor
UEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuNDkpIHVwIHRvIHRpbWUg
MC4yNSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFu
Y2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BB
U1MgICBDYW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuNDkpIGF0
IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2Nzgu
IAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRp
bWUoWzEsMF0sIDAuMDEsIDAuNDkpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA4MTYzMjY1MyB3
aXRoaW4gYW4gZXJyb3Igb2YgOS41MzY4ZS05LiAKK1BBU1MgPCBbc2V0VmFsdWVDdXJ2ZV0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbc2V0VmFs
dWVDdXJ2ZSBhZnRlciBlbmRdIENhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIGFmdGVyIHRoZSBl
bmQgCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC4xMTQ5OTk5OTk5
OTk5OTk5OSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4g
ZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2
ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShb
MSwwXSwgMC4wMSwgMC4xMTQ5OTk5OTk5OTk5OTk5OSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9u
bHkgdGhlIGNvbnN0YW50IDAuIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5n
IHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuMTE0OTk5OTk5OTk5OTk5OTkpIGF0
IHRpbWUgMC4yNSBpcyAwIHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKK1BBU1MgPCBbc2V0VmFsdWVD
dXJ2ZSBhZnRlciBlbmRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9u
cykgCitQQVNTID4gW2luaXRpYWwgc2V0VGFyZ2V0XSBDYW5jZWwgd2l0aCBpbml0aWFsIHNldFRh
cmdldEF0VGltZSAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4xKSB1cCB0byB0
aW1lIDAuMjUgZXF1YWxzIFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLi4uXSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgw
LCAwLjAxLCAwLjEpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjA5
MDcxNzg0NDY2NTA1MDUuIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNl
dFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIGF0IHRpbWUgMC4yNSBpcyAwLjA5MDcxNzk1NjQy
Mzc1OTQ2IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTIzMi4gCitQQVNTIDwgW2luaXRpYWwg
c2V0VGFyZ2V0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAor
UEFTUyA+IFtwb3N0IGNhbmNlbDogTGluZWFyXSBMaW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcg
CitGQUlMIFggUG9zdCBjYW5jZWxsYXRpb24gbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVh
clJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGRvZXMgbm90IGVxdWFsIFswLDAu
MDAyMDgzMzMzNDQxOTg3NjMzNywwLjAwNDE2NjY2Njg4Mzk3NTI2NywwLjAwNjI1MDAwMDA5MzEz
MjI1NzUsMC4wMDgzMzMzMzM3Njc5NTA1MzUsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAw
MDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzMzOTU0MjE1MDUsMC4wMTY2NjY2Njc1MzU5MDEwNywwLjAx
ODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjcxNjMzNzIwNCww
LjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMzNTgxNjg2MDIsMC4wMjkxNjY2NjY3OTA4NDMw
MSwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVhbAkJCUV4
cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzcxNV0JOS45MDAw
ODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVl
LTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs4MTZdCTku
ODU3MTQzMTYzNjgxMDMwM2UtMQk5Ljg1NzE0MjU2NzYzNDU4MjVlLTEJNS45NjA0NjQ0Nzc1Mzkw
NjI1ZS04CTYuMDQ2ODQ4MTk4MjkwMTgxN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbODc5
XQk5LjgzMDM1NjgzNjMxODk2OTdlLTEJOS44MzAzNTc0MzIzNjU0MTc1ZS0xCTUuOTYwNDY0NDc3
NTM5MDYyNWUtOAk2LjA2MzMyNDI2NzI0ODc3ODJlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJ
WzEyNjRdCTkuNjY2NjY2Mzg4NTExNjU3N2UtMQk5LjY2NjY2Njk4NDU1ODEwNTVlLTEJNS45NjA0
NjQ0Nzc1MzkwNjI1ZS04CTYuMTY1OTk3NTMyNjE0NDI3OWUtOAkwLjAwMDAwMDAwMDAwMDAwMDBl
KzAKKwlbMTM2OF0JOS42MjI0NDkyNzg4MzE0ODE5ZS0xCTkuNjIyNDQ4NjgyNzg1MDM0MmUtMQk1
Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xOTQzMzIzMDk4MjMxNTgzZS04CTAuMDAwMDAwMDAwMDAw
MDAwMGUrMAorCS4uLmFuZCAxMTQwIG1vcmUgZXJyb3JzLgorCU1heCBBYnNFcnJvciBvZiA1Ljk2
MDQ2NDQ3NzUzOTA2MjVlLTggYXQgaW5kZXggb2YgNzE1LgorCU1heCBSZWxFcnJvciBvZiAxLjE2
NzE4MTE5OTA0NTI0NThlLTcgYXQgaW5kZXggb2YgMTE5ODkuCisJWzExOTg5XQk1LjEwNjcxNzk0
NDE0NTIwMjZlLTEJNS4xMDY3MTczNDgwOTg3NTQ5ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAkx
LjE2NzE4MTE5OTA0NTI0NThlLTcJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisgYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbGxh
dGlvbiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBh
dCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4
LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbGxhdGlv
biBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0
aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4
Mzk5OC4gCitQQVNTICAgUG9zdCBsaW5lYXJSYW1wKDIsIDAuMzc1KSBlcXVhbHMgW2V4cGVjdGVk
IGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVz
aG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwgPCBbcG9zdCBjYW5jZWw6IExp
bmVhcl0gMSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbcG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsXSBF
eHBvbmVudGlhbFJhbXAgYWZ0ZXIgY2FuY2VsbGluZyAKK0ZBSUwgWCBQb3N0IGNhbmNlbCBleHBv
bmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRv
IHRpbWUgMC4yNSBkb2VzIG5vdCBlcXVhbCBbMCwwLjAwMjA4MzMzMzQ0MTk4NzYzMzcsMC4wMDQx
NjY2NjY4ODM5NzUyNjcsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMzNzY3OTUwNTM1
LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMzMzk1
NDIxNTA1LDAuMDE2NjY2NjY3NTM1OTAxMDcsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMz
Mzk1NDIxNTA1LDAuMDIyOTE2NjY3MTYzMzcyMDQsMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4
MzMzMzU4MTY4NjAyLDAuMDI5MTY2NjY2NzkwODQzMDEsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVt
ZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhy
ZXNob2xkIjowfS4KKwlJbmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJlbEVycm9y
CQlUZXN0IHRocmVzaG9sZAorCVs3MTVdCTkuOTAwMDg1MzMwMDA5NDYwNGUtMQk5LjkwMDA4NDcz
Mzk2MzAxMjdlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDIwNjE5NjU5MDMzMDQyN2UtOAkw
LjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbODE2XQk5Ljg1NzE0MzE2MzY4MTAzMDNlLTEJOS44NTcx
NDI1Njc2MzQ1ODI1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA0Njg0ODE5ODI5MDE4MTdl
LTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzg3OV0JOS44MzAzNTY4MzYzMTg5Njk3ZS0xCTku
ODMwMzU3NDMyMzY1NDE3NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNjMzMjQyNjcyNDg3
NzgyZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsxMjY0XQk5LjY2NjY2NjM4ODUxMTY1Nzdl
LTEJOS42NjY2NjY5ODQ1NTgxMDU1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE2NTk5NzUz
MjYxNDQyNzllLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzEzNjhdCTkuNjIyNDQ5Mjc4ODMx
NDgxOWUtMQk5LjYyMjQ0ODY4Mjc4NTAzNDJlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTk0
MzMyMzA5ODIzMTU4M2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwkuLi5hbmQgMTE0MCBtb3Jl
IGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45NjA0NjQ0Nzc1MzkwNjI1ZS04IGF0IGluZGV4
IG9mIDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4xNjcxODExOTkwNDUyNDU4ZS03IGF0IGluZGV4
IG9mIDExOTg5LgorCVsxMTk4OV0JNS4xMDY3MTc5NDQxNDUyMDI2ZS0xCTUuMTA2NzE3MzQ4MDk4
NzU0OWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJMS4xNjcxODExOTkwNDUyNDU4ZS03CTAuMDAw
MDAwMDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGlt
ZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0
aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBm
b3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBs
aW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2
Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0IGV4cG9uZW50
aWFsUmFtcCgyLCAwLjM3NSkgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNo
b2xkIjowfS4gCitGQUlMIDwgW3Bvc3QgY2FuY2VsOiBFeHBvbmVudGlhbF0gMSBvdXQgb2YgNCBh
c3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgPiBbcG9zdCBjYW5jZWw6IFZhbHVlQ3VydmVdICAKK0ZBSUwgWCBQb3N0IGNhbmNl
bCBzZXRWYWx1ZUN1cnZlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRp
bWUgMC4yNSBkb2VzIG5vdCBlcXVhbCBbMCwwLjAwMjA4MzMzMzQ0MTk4NzYzMzcsMC4wMDQxNjY2
NjY4ODM5NzUyNjcsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMzNzY3OTUwNTM1LDAu
MDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgzMzMzMzk1NDIx
NTA1LDAuMDE2NjY2NjY3NTM1OTAxMDcsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAyMDgzMzMzMzk1
NDIxNTA1LDAuMDIyOTE2NjY3MTYzMzcyMDQsMC4wMjUwMDAwMDAzNzI1MjkwMywwLjAyNzA4MzMz
MzU4MTY4NjAyLDAuMDI5MTY2NjY2NzkwODQzMDEsMC4wMzEyNS4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNo
b2xkIjowfS4KKwlJbmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJlbEVycm9yCQlU
ZXN0IHRocmVzaG9sZAorCVs3MTVdCTkuOTAwMDg1MzMwMDA5NDYwNGUtMQk5LjkwMDA4NDczMzk2
MzAxMjdlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDIwNjE5NjU5MDMzMDQyN2UtOAkwLjAw
MDAwMDAwMDAwMDAwMDBlKzAKKwlbODE2XQk5Ljg1NzE0MzE2MzY4MTAzMDNlLTEJOS44NTcxNDI1
Njc2MzQ1ODI1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA0Njg0ODE5ODI5MDE4MTdlLTgJ
MC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzg3OV0JOS44MzAzNTY4MzYzMTg5Njk3ZS0xCTkuODMw
MzU3NDMyMzY1NDE3NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNjMzMjQyNjcyNDg3Nzgy
ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsxMjY0XQk5LjY2NjY2NjM4ODUxMTY1NzdlLTEJ
OS42NjY2NjY5ODQ1NTgxMDU1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE2NTk5NzUzMjYx
NDQyNzllLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzEzNjhdCTkuNjIyNDQ5Mjc4ODMxNDgx
OWUtMQk5LjYyMjQ0ODY4Mjc4NTAzNDJlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTk0MzMy
MzA5ODIzMTU4M2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwkuLi5hbmQgMTE0MCBtb3JlIGVy
cm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45NjA0NjQ0Nzc1MzkwNjI1ZS04IGF0IGluZGV4IG9m
IDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4xNjcxODExOTkwNDUyNDU4ZS03IGF0IGluZGV4IG9m
IDExOTg5LgorCVsxMTk4OV0JNS4xMDY3MTc5NDQxNDUyMDI2ZS0xCTUuMTA2NzE3MzQ4MDk4NzU0
OWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJMS4xNjcxODExOTkwNDUyNDU4ZS03CTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFt
cFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQg
MC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGlu
ZyBQb3N0IGNhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAw
LjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9m
IDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0IHNldFZhbHVlQ3VydmUoWzAuMTI1LDJdLCAwLjM3
NSwgMC4xMjUpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJl
c2hvbGQiOjB9LiAKK0ZBSUwgPCBbcG9zdCBjYW5jZWw6IFZhbHVlQ3VydmVdIDEgb3V0IG9mIDQg
YXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitQQVNTID4gW3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXRdICAKK0ZBSUwgWCBQb3N0IGNhbmNl
bCBzZXRUYXJnZXRBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAw
LjI1IGRvZXMgbm90IGVxdWFsIFswLDAuMDAyMDgzMzMzNDQxOTg3NjMzNywwLjAwNDE2NjY2Njg4
Mzk3NTI2NywwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzM3Njc5NTA1MzUsMC4wMTA0
MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzMzOTU0MjE1MDUs
MC4wMTY2NjY2Njc1MzU5MDEwNywwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1
MDUsMC4wMjI5MTY2NjcxNjMzNzIwNCwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMzNTgx
Njg2MDIsMC4wMjkxNjY2NjY3OTA4NDMwMSwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lz
ZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LgorCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3Qg
dGhyZXNob2xkCisJWzcxNV0JOS45MDAwODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEy
N2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAorCVs4MTZdCTkuODU3MTQzMTYzNjgxMDMwM2UtMQk5Ljg1NzE0MjU2NzYz
NDU4MjVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDQ2ODQ4MTk4MjkwMTgxN2UtOAkwLjAw
MDAwMDAwMDAwMDAwMDBlKzAKKwlbODc5XQk5LjgzMDM1NjgzNjMxODk2OTdlLTEJOS44MzAzNTc0
MzIzNjU0MTc1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA2MzMyNDI2NzI0ODc3ODJlLTgJ
MC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzEyNjRdCTkuNjY2NjY2Mzg4NTExNjU3N2UtMQk5LjY2
NjY2Njk4NDU1ODEwNTVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTY1OTk3NTMyNjE0NDI3
OWUtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbMTM2OF0JOS42MjI0NDkyNzg4MzE0ODE5ZS0x
CTkuNjIyNDQ4NjgyNzg1MDM0MmUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xOTQzMzIzMDk4
MjMxNTgzZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCS4uLmFuZCAxMTQwIG1vcmUgZXJyb3Jz
LgorCU1heCBBYnNFcnJvciBvZiA1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTggYXQgaW5kZXggb2YgNzE1
LgorCU1heCBSZWxFcnJvciBvZiAxLjE2NzE4MTE5OTA0NTI0NThlLTcgYXQgaW5kZXggb2YgMTE5
ODkuCisJWzExOTg5XQk1LjEwNjcxNzk0NDE0NTIwMjZlLTEJNS4xMDY3MTczNDgwOTg3NTQ5ZS0x
CTUuOTYwNDY0NDc3NTM5MDYyNWUtOAkxLjE2NzE4MTE5OTA0NTI0NThlLTcJMC4wMDAwMDAwMDAw
MDAwMDAwZSswCisgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAg
Q2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVl
KDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0
MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9zdCBj
YW5jZWwgc2V0VGFyZ2V0QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUg
MC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4
LiAKK1BBU1MgICBQb3N0IHNldFRhcmdldEF0VGltZSgwLjEyNSwgMC4zNzUsIDAuMSkgZXF1YWxz
IFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAuMDAwMDg0MDM3LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorRkFJ
TCA8IFtwb3N0IGNhbmNlbDogc2V0VGFyZ2V0XSAxIG91dCBvZiA0IGFzc2VydGlvbnMgd2VyZSBm
YWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwb3N0
IGNhbmNlbDogc2V0VmFsdWVdICAKK0ZBSUwgWCBQb3N0IGNhbmNlbCBzZXRWYWx1ZUF0VGltZTog
bGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZG9lcyBub3QgZXF1YWwg
WzAsMC4wMDIwODMzMzM0NDE5ODc2MzM3LDAuMDA0MTY2NjY2ODgzOTc1MjY3LDAuMDA2MjUwMDAw
MDkzMTMyMjU3NSwwLjAwODMzMzMzMzc2Nzk1MDUzNSwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAx
MjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMzM5NTQyMTUwNSwwLjAxNjY2NjY2NzUzNTkwMTA3
LDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NzE2MzM3
MjA0LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzM1ODE2ODYwMiwwLjAyOTE2NjY2Njc5
MDg0MzAxLDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFi
c29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCisJSW5kZXgJQWN0dWFs
CQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hvbGQKKwlbNzE1XQk5
LjkwMDA4NTMzMDAwOTQ2MDRlLTEJOS45MDAwODQ3MzM5NjMwMTI3ZS0xCTUuOTYwNDY0NDc3NTM5
MDYyNWUtOAk2LjAyMDYxOTY1OTAzMzA0MjdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzgx
Nl0JOS44NTcxNDMxNjM2ODEwMzAzZS0xCTkuODU3MTQyNTY3NjM0NTgyNWUtMQk1Ljk2MDQ2NDQ3
NzUzOTA2MjVlLTgJNi4wNDY4NDgxOTgyOTAxODE3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAor
CVs4NzldCTkuODMwMzU2ODM2MzE4OTY5N2UtMQk5LjgzMDM1NzQzMjM2NTQxNzVlLTEJNS45NjA0
NjQ0Nzc1MzkwNjI1ZS04CTYuMDYzMzI0MjY3MjQ4Nzc4MmUtOAkwLjAwMDAwMDAwMDAwMDAwMDBl
KzAKKwlbMTI2NF0JOS42NjY2NjYzODg1MTE2NTc3ZS0xCTkuNjY2NjY2OTg0NTU4MTA1NWUtMQk1
Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xNjU5OTc1MzI2MTQ0Mjc5ZS04CTAuMDAwMDAwMDAwMDAw
MDAwMGUrMAorCVsxMzY4XQk5LjYyMjQ0OTI3ODgzMTQ4MTllLTEJOS42MjI0NDg2ODI3ODUwMzQy
ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE5NDMzMjMwOTgyMzE1ODNlLTgJMC4wMDAwMDAw
MDAwMDAwMDAwZSswCisJLi4uYW5kIDExNDAgbW9yZSBlcnJvcnMuCisJTWF4IEFic0Vycm9yIG9m
IDUuOTYwNDY0NDc3NTM5MDYyNWUtOCBhdCBpbmRleCBvZiA3MTUuCisJTWF4IFJlbEVycm9yIG9m
IDEuMTY3MTgxMTk5MDQ1MjQ1OGUtNyBhdCBpbmRleCBvZiAxMTk4OS4KKwlbMTE5ODldCTUuMTA2
NzE3OTQ0MTQ1MjAyNmUtMQk1LjEwNjcxNzM0ODA5ODc1NDllLTEJNS45NjA0NjQ0Nzc1MzkwNjI1
ZS04CTEuMTY3MTgxMTk5MDQ1MjQ1OGUtNwkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKyBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2Fu
Y2VsIHNldFZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4y
NSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFTUyAg
IEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2
Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0IHNldFZh
bHVlQXRUaW1lKDAuMTI1LCAwLjM3NSkgZXF1YWxzIFswLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSww
LjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEyNSwwLjEy
NSwwLjEyNSwwLjEyNS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitGQUlMIDwgW3Bvc3Qg
Y2FuY2VsOiBzZXRWYWx1ZV0gMSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbY2FuY2VsIGZ1dHVyZSBz
ZXRUYXJnZXRdICAKK1BBU1MgICBBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRUYXJnZXQgZXZl
bnQsIG91dHB1dCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5j
ZWwgZnV0dXJlIHNldFRhcmdldF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3Nl
cnRpb25zKSAKK1BBU1MgPiBbY2FuY2VsIHNldFRhcmdldCBub3ddICAKK1BBU1MgICBBZnRlciBj
YW5jZWxsaW5nIHNldFRhcmdldCBldmVudCBzdGFydGluZyBub3csIG91dHB1dCBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5jZWwgc2V0VGFyZ2V0IG5vd10gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbY2FuY2Vs
IGZ1dHVyZSBzZXRWYWx1ZUN1cnZlXSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBmdXR1cmUg
c2V0VmFsdWVDdXJ2ZSBldmVudCwgb3V0cHV0IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAu
NS4gCitQQVNTIDwgW2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZV0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbY2FuY2VsIHNldFZhbHVlQ3Vy
dmUgbm93XSAgCitQQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBjdXJyZW50IHNldFZhbHVlQ3VydmUg
ZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41
LiAKK1BBU1MgPCBbY2FuY2VsIHNldFZhbHVlQ3VydmUgbm93XSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtsaW5lYXIsIGNhbmNlbCwgbGluZWFy
LCBjYW5jZWwsIGxpbmVhcl0gU2NoZWR1bGVzIDMgbGluZWFyIHJhbXBzLCBjYW5jZWxsaW5nIDIg
b2YgdGhlbSwgc28gdGhhdCB3ZSBlbmQgdXAgd2l0aCAyIGNhbmNlbCBldmVudHMgbmV4dCB0byBl
YWNoIG90aGVyIAorRkFJTCBYIDFzdCBsaW5lYXJSYW1wOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAw
LjUpIHVwIHRvIHRpbWUgMC4yNSBkb2VzIG5vdCBlcXVhbCBbMCwwLjAwMjA4MzMzMzQ0MTk4NzYz
MzcsMC4wMDQxNjY2NjY4ODM5NzUyNjcsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMz
NzY3OTUwNTM1LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0
NTgzMzMzMzk1NDIxNTA1LDAuMDE2NjY2NjY3NTM1OTAxMDcsMC4wMTg3NTAwMDA3NDUwNTgwNiww
LjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY3MTYzMzcyMDQsMC4wMjUwMDAwMDAzNzI1Mjkw
MywwLjAyNzA4MzMzMzU4MTY4NjAyLDAuMDI5MTY2NjY2NzkwODQzMDEsMC4wMzEyNS4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJl
bGF0aXZlVGhyZXNob2xkIjowfS4KKwlJbmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJ
CVJlbEVycm9yCQlUZXN0IHRocmVzaG9sZAorCVs3MTVdCTkuOTAwMDg1MzMwMDA5NDYwNGUtMQk5
LjkwMDA4NDczMzk2MzAxMjdlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDIwNjE5NjU5MDMz
MDQyN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbODE2XQk5Ljg1NzE0MzE2MzY4MTAzMDNl
LTEJOS44NTcxNDI1Njc2MzQ1ODI1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA0Njg0ODE5
ODI5MDE4MTdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzg3OV0JOS44MzAzNTY4MzYzMTg5
Njk3ZS0xCTkuODMwMzU3NDMyMzY1NDE3NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNjMz
MjQyNjcyNDg3NzgyZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsxMjY0XQk5LjY2NjY2NjM4
ODUxMTY1NzdlLTEJOS42NjY2NjY5ODQ1NTgxMDU1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2
LjE2NTk5NzUzMjYxNDQyNzllLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzEzNjhdCTkuNjIy
NDQ5Mjc4ODMxNDgxOWUtMQk5LjYyMjQ0ODY4Mjc4NTAzNDJlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1
ZS04CTYuMTk0MzMyMzA5ODIzMTU4M2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwkuLi5hbmQg
MTE0MCBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45NjA0NjQ0Nzc1MzkwNjI1ZS04
IGF0IGluZGV4IG9mIDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4xNjcxODExOTkwNDUyNDU4ZS03
IGF0IGluZGV4IG9mIDExOTg5LgorCVsxMTk4OV0JNS4xMDY3MTc5NDQxNDUyMDI2ZS0xCTUuMTA2
NzE3MzQ4MDk4NzU0OWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJMS4xNjcxODExOTkwNDUyNDU4
ZS03CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyAgIENhbmNlbGxpbmcgMXN0IGxpbmVhclJhbXA6IGxpbmVhclJhbXBUb1Zh
bHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEw
MjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgMXN0
IGxpbmVhclJhbXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAu
NTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTICAgMm5kIGxpbmVh
clJhbXAoMiwgMC41KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lz
ZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIDJuZCBsaW5lYXJSYW1wKDIsIDAuNSkgYXQgdGltZSAw
LjM3NSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxLjI1NTEwMjAzODM4MzQ4MzkuIAorUEFT
UyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIDJuZCBsaW5lYXJSYW1wKDIsIDAuNSkg
YXQgdGltZSAwLjM3NSBpcyAxLjI1NTEwMjAzODM4MzQ4Mzkgd2l0aGluIGFuIGVycm9yIG9mIDAu
IAorUEFTUyAgIDNyZCBsaW5lYXJSYW1wKDAsIDAuNSkgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0g
d2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitGQUlMIDwgW2xpbmVhciwgY2FuY2VsLCBsaW5lYXIs
IGNhbmNlbCwgbGluZWFyXSAxIG91dCBvZiA3IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVS
IEZJTklTSEVEOiA3IG91dCBvZiAxNiB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTEzZWVjNjllZjg5MWViMWFkN2ZjYjZjNTJhNDZkYTExNTQ3YjM0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWNh
bmNlbC1hbmQtaG9sZC5odG1sCkBAIC0wLDAgKzEsODIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IENhbmNlbFZhbHVlc0FuZEhv
bGRBdFRpbWUKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2Rl
Ij4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgwMDA7CisgICAgICBsZXQgcmVuZGVyRHVyYXRp
b24gPSAwLjU7CisKKyAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsK
KworICAgICAgLy8gVGhlIGZpcnN0IGZldyB0YXNrcyB0ZXN0IHRoZSBjYW5jZWxsYXRpb24gb2Yg
ZWFjaCByZWxldmFudCBhdXRvbWF0aW9uCisgICAgICAvLyBmdW5jdGlvbi4gIEZvciB0aGUgdGVz
dCwgYSBzaW1wbGUgbGluZWFyIHJhbXAgZnJvbSAwIHRvIDEgaXMgdXNlZCB0bworICAgICAgLy8g
c3RhcnQgdGhpbmdzIG9mZi4gIFRoZW4gdGhlIGF1dG9tYXRpb24gdG8gYmUgdGVzdGVkIGlzIHNj
aGVkdWxlZCBhbmQKKyAgICAgIC8vIGNhbmNlbGxlZC4KKworICAgICAgYXVkaXQuZGVmaW5lKAor
ICAgICAgICAgIHtsYWJlbDogJ2xpbmVhcicsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIGxpbmVhclJh
bXBUb1ZhbHVlQXRUaW1lJ30sCisgICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7Cisg
ICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ2xpbmVhclJhbXBU
b1ZhbHVlQXRUaW1lJyksIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUt
NSwKKyAgICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDAKKyAgICAgICAgICAgIH0pLnRoZW4o
dGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZp
bmUoCisgICAgICAgICAge2xhYmVsOiAnZXhwb25lbnRpYWwnLCBkZXNjcmlwdGlvbjogJ0NhbmNl
bCBleHBvbmVudGlhbFJhbXBBdFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91
bGQpIHsKKyAgICAgICAgICAgIC8vIENhbmNlbCBhbiBleHBvbmVudGlhbCByYW1wLiAgVGhlIHRo
cmVzaG9sZHMgYXJlIGV4cGVyaW1lbnRhbGx5CisgICAgICAgICAgICAvLyBkZXRlcm1pbmVkLgor
ICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2Vs
VGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgorICAgICAg
ICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIGdb
MV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUg
YSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgorICAgICAgICAgICAgICBn
WzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAgICAgICAgICAgICAg
Z1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisKKyAgICAgICAgICAg
ICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhbiBleHBvbmVudGlhbCByYW1w
IHRvIHRoZSBlbmQuCisgICAgICAgICAgICAgIC8vIChUaGlzIGlzIHRoZSBldmVudCB0aGF0IHdp
bGwgYmUgYmUgY2FuY2VsbGVkLikKKyAgICAgICAgICAgICAgbGV0IHYxID0gMC4wMDE7CisgICAg
ICAgICAgICAgIGxldCB0MSA9IHJlbmRlckR1cmF0aW9uOworCisgICAgICAgICAgICAgIGdbMF0u
Z2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisgICAgICAgICAgICAg
IGdbMV0uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisKKyAgICAg
ICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAorICAgICAgICAgICAgICAg
ICAgdjAgKiBNYXRoLnBvdyh2MSAvIHYwLCAoY2FuY2VsVGltZSAtIHQwKSAvICh0MSAtIHQwKSkp
OworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3Rh
bnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6ICdleHBv
bmVudGlhbFJhbXBUb1ZhbHVlKCcgKyB2MSArICcsICcgKyB0MSArICcpJywKKyAgICAgICAgICAg
ICAgICBzdW1tYXJ5OiAnZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScsCisgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiAx
Ljg2NjRlLTYsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiA1Ljk2MDVlLTgKKyAgICAg
ICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisg
ICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAnc2V0VGFyZ2V0JywgZGVzY3Jp
cHRpb246ICdDYW5jZWwgc2V0VGFyZ2V0QXRUaW1lJ30sCisgICAgICAgICAgZnVuY3Rpb24odGFz
aywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBDYW5jZWwgYSBzZXRUYXJnZXQgZXZlbnQuCisg
ICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxU
aW1lKSB7CisgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAg
ICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sx
XS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBh
IHNob3J0IGxpbmVhciByYW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdb
MF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBn
WzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAg
ICAvLyBBdCB0aGUgZW5kIG9mIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYSBzZXRUYXJnZXQu
ICAoVGhpcyBpcworICAgICAgICAgICAgICAvLyB0aGUgZXZlbnQgdGhhdCB3aWxsIGJlIGNhbmNl
bGxlZC4pCisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAgICAgICAgIGxldCB0MSA9
IHQwOworICAgICAgICAgICAgICBsZXQgdGltZUNvbnN0YW50ID0gMC4wNTsKKworICAgICAgICAg
ICAgICBnWzBdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MSwgdGltZUNvbnN0YW50KTsKKyAg
ICAgICAgICAgICAgZ1sxXS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwgdDEsIHRpbWVDb25zdGFu
dCk7CisKKyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAorICAg
ICAgICAgICAgICAgICAgdjEgKyAodjAgLSB2MSkgKiBNYXRoLmV4cCgtKGNhbmNlbFRpbWUgLSB0
MCkgLyB0aW1lQ29uc3RhbnQpKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAorICAgICAgICAgICAgICAg
IGF1dG9NZXNzYWdlOiAnc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MSArICcsICcgKyB0MSArICcsICcg
KworICAgICAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAgICAg
ICAgc3VtbWFyeTogJ3NldFRhcmdldEF0VGltZScsCisgICAgICAgICAgICAgIH07CisgICAgICAg
ICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVlVGhyZXNob2xkOiA0LjUyNjdlLTcsICAvLyAx
LjEzMTdlLTcsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAwCisgICAgICAgICAgICB9
KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVk
aXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJlbDogJ3NldFZhbHVlQ3VydmUnLCBkZXNjcmlwdGlv
bjogJ0NhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lJ30sCisgICAgICAgICAgZnVuY3Rpb24odGFz
aywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBDYW5jZWwgYSBzZXRWYWx1ZUN1cnZlIGV2ZW50
LgorICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2Fu
Y2VsVGltZSkgeworICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgorICAg
ICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAg
IGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1
bGUgYSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgorICAgICAgICAgICAg
ICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKKyAgICAgICAgICAg
ICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisKKyAgICAgICAg
ICAgICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFZhbHVlc0N1cnZl
LiAoVGhpcyBpcyB0aGUKKyAgICAgICAgICAgICAgLy8gZXZlbnQgdGhhdCB3aWxsIGJlIGNhbmNl
bGxlZC4pCisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAgICAgICAgIGxldCBkdXJh
dGlvbiA9IHJlbmRlckR1cmF0aW9uIC0gdDA7CisKKyAgICAgICAgICAgICAgLy8gRm9yIHNpbXBs
aWNpdHksIGEgMi1wb2ludCBjdXJ2ZSBzbyB3ZSBnZXQgYSBsaW5lYXIgaW50ZXJwb2xhdGVkCisg
ICAgICAgICAgICAgIC8vIHJlc3VsdC4KKyAgICAgICAgICAgICAgbGV0IGN1cnZlID0gRmxvYXQz
MkFycmF5LmZyb20oW3YwLCAwXSk7CisKKyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVl
Q3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7CisgICAgICAgICAgICAgIGdbMV0uZ2Fp
bi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOworCisgICAgICAgICAg
ICAgIGxldCBpbmRleCA9CisgICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKChjdXJ2ZS5sZW5n
dGggLSAxKSAvIGR1cmF0aW9uICogKGNhbmNlbFRpbWUgLSB0MCkpOworCisgICAgICAgICAgICAg
IGxldCBjdXJ2ZVBvaW50c1BlckZyYW1lID0KKyAgICAgICAgICAgICAgICAgIChjdXJ2ZS5sZW5n
dGggLSAxKSAvIGR1cmF0aW9uIC8gc2FtcGxlUmF0ZTsKKyAgICAgICAgICAgICAgbGV0IHZpcnR1
YWxJbmRleCA9CisgICAgICAgICAgICAgICAgICAoY2FuY2VsVGltZSAtIHQwKSAqIHNhbXBsZVJh
dGUgKiBjdXJ2ZVBvaW50c1BlckZyYW1lOworCisgICAgICAgICAgICAgIGxldCBkZWx0YSA9IHZp
cnR1YWxJbmRleCAtIGluZGV4OworICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gY3Vy
dmVbMF0gKyAoY3VydmVbMV0gLSBjdXJ2ZVswXSkgKiBkZWx0YTsKKyAgICAgICAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50
LAorICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnc2V0VmFsdWVDdXJ2ZUF0VGltZShbJyAr
IGN1cnZlICsgJ10sICcgKyB0MCArCisgICAgICAgICAgICAgICAgICAgICcsICcgKyBkdXJhdGlv
biArICcpJywKKyAgICAgICAgICAgICAgICBzdW1tYXJ5OiAnc2V0VmFsdWVDdXJ2ZUF0VGltZScs
CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgIHZhbHVl
VGhyZXNob2xkOiA5LjUzNjhlLTksCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAwCisg
ICAgICAgICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsK
KworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAn
c2V0VmFsdWVDdXJ2ZSBhZnRlciBlbmQnLAorICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDYW5j
ZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSBhZnRlciB0aGUgZW5kJworICAgICAgICAgIH0sCisgICAg
ICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICBjYW5jZWxUZXN0KHNo
b3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAgIC8v
IEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1
ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAs
IDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciByYW1wIHRvIHN0
YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1
ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAgICAvLyBBZnRlciB0aGUgbGluZWFyIHJh
bXAsIHNjaGVkdWxlIGEgc2V0VmFsdWVzQ3VydmUuIChUaGlzIGlzIHRoZQorICAgICAgICAgICAg
ICAvLyBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikgIE1ha2Ugc3VyZSB0aGUgY3VydmUg
ZW5kcyBiZWZvcmUKKyAgICAgICAgICAgICAgLy8gdGhlIGNhbmNlbGxhdGlvbiB0aW1lLgorICAg
ICAgICAgICAgICBsZXQgdjEgPSAwOworICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSBjYW5j
ZWxUaW1lIC0gdDAgLSAwLjEyNTsKKworICAgICAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwg
YSAyLXBvaW50IGN1cnZlIHNvIHdlIGdldCBhIGxpbmVhciBpbnRlcnBvbGF0ZWQKKyAgICAgICAg
ICAgICAgLy8gcmVzdWx0LgorICAgICAgICAgICAgICBsZXQgY3VydmUgPSBGbG9hdDMyQXJyYXku
ZnJvbShbdjAsIDBdKTsKKworICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0
VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZh
bHVlQ3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7CisKKyAgICAgICAgICAgICAgZXhw
ZWN0ZWRDb25zdGFudCA9IGN1cnZlWzFdOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAg
ICAgICAgYXV0b01lc3NhZ2U6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lKFsnICsgY3VydmUgKyAnXSwg
JyArIHQwICsKKyAgICAgICAgICAgICAgICAgICAgJywgJyArIGR1cmF0aW9uICsgJyknLAorICAg
ICAgICAgICAgICAgIHN1bW1hcnk6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lJywKKyAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDAs
CisgICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAwCisgICAgICAgICAgICB9KS50aGVuKHRh
c2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgLy8gU3BlY2lhbCBj
YXNlIHdoZXJlIHdlIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFuZCB0aGVyZSBpcyBubyBlYXJsaWVy
CisgICAgICAvLyBhdXRvbWF0aW9uIGV2ZW50LiAgVGhpcyB0ZXN0cyB0aGF0IHdlIHBpY2sgdXAg
dGhlIHN0YXJ0aW5nIHBvaW50CisgICAgICAvLyBjb3JyZWN0bHkgZnJvbSB0aGUgbGFzdCBzZXR0
aW5nIG9mIHRoZSBBdWRpb1BhcmFtIHZhbHVlIGF0dHJpYnV0ZS4KKworCisgICAgICBhdWRpdC5k
ZWZpbmUoCisgICAgICAgICAgeworICAgICAgICAgICAgbGFiZWw6ICdpbml0aWFsIHNldFRhcmdl
dCcsCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NhbmNlbCB3aXRoIGluaXRpYWwgc2V0VGFy
Z2V0QXRUaW1lJworICAgICAgICAgIH0sCisgICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxk
KSB7CisgICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBj
YW5jZWxUaW1lKSB7CisgICAgICAgICAgICAgIGxldCB2MSA9IDA7CisgICAgICAgICAgICAgIGxl
dCB0aW1lQ29uc3RhbnQgPSAwLjE7CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi52YWx1ZSA9IDE7
CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQwLCB0aW1lQ29u
c3RhbnQpOworICAgICAgICAgICAgICBnWzFdLmdhaW4udmFsdWUgPSAxOworICAgICAgICAgICAg
ICBnWzFdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MCwgdGltZUNvbnN0YW50KTsKKworICAg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAorICAgICAgICAg
ICAgICAgICAgdjEgKyAodjAgLSB2MSkgKiBNYXRoLmV4cCgtKGNhbmNlbFRpbWUgLSB0MCkgLyB0
aW1lQ29uc3RhbnQpKTsKKworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAg
IGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0
b01lc3NhZ2U6ICdzZXRUYXJnZXRBdFRpbWUoJyArIHYxICsgJywgJyArIHQwICsgJywgJyArCisg
ICAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudCArICcpJywKKyAgICAgICAgICAgICAgICBz
dW1tYXJ5OiAnSW5pdGlhbCBzZXRUYXJnZXRBdFRpbWUnLAorICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgfSwgeworICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogMS4yMzIwZS02LAor
ICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMAorICAgICAgICAgICAgfSkudGhlbih0YXNr
LmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIC8vIFRlc3QgYXV0b21h
dGlvbnMgc2NoZWR1bGVkIGFmdGVyIHRoZSBjYWxsIHRvIGNhbmNlbEFuZEhvbGRBdFRpbWUuCisg
ICAgICAvLyBWZXJ5IHNpbWlsYXIgdG8gdGhlIGFib3ZlIHRlc3RzLCBidXQgd2UgYWxzbyBzY2hl
ZHVsZSBhbiBldmVudCBhZnRlcgorICAgICAgLy8gY2FuY2VsQW5kSG9sZEF0VGltZSBhbmQgdmVy
aWZ5IHRoYXQgY3VydmUgYWZ0ZXIgY2FuY2VsbGF0aW9uIGhhcworICAgICAgLy8gdGhlIGNvcnJl
Y3QgdmFsdWVzLgorCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAgICAg
ICAgbGFiZWw6ICdwb3N0IGNhbmNlbDogTGluZWFyJywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
OiAnTGluZWFyUmFtcCBhZnRlciBjYW5jZWxsaW5nJworICAgICAgICAgIH0sCisgICAgICAgICAg
ZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0
ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUKKyAgICAgICAgICAgIC8v
IGNhbmNlbGxlZC4gVGhlbiBzY2hlZHVsZSBhbm90aGVyIGxpbmVhciByYW1wIGFmdGVyIHRoZQor
ICAgICAgICAgICAgLy8gY2FuY2VsbGF0aW9uLgorICAgICAgICAgICAgY2FuY2VsVGVzdCgKKyAg
ICAgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICAgICAgbGluZWFyUmFtcFRlc3QoJ1Bv
c3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJyksCisgICAgICAgICAgICAg
ICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNob2xkOiAwfSwKKyAgICAg
ICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7Cisg
ICAgICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgbGluZWFyIHJhbXAgb24gZ1swXSwgYW5k
IGRvIHRoZSBzYW1lIGZvciBnWzJdLAorICAgICAgICAgICAgICAgICAgLy8gdXNpbmcgdGhlIHN0
YXJ0aW5nIHBvaW50IGdpdmVuIGJ5IGV4cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgICAg
ICBsZXQgdjIgPSAyOworICAgICAgICAgICAgICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSArIDAu
MTI1OworICAgICAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
KHYyLCB0Mik7CisgICAgICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhw
ZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7CisgICAgICAgICAgICAgICAgICBnWzJdLmdhaW4u
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSwKKyAg
ICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bvc3QgbGluZWFyUmFtcCgnICsgdjIgKyAnLCAn
ICsgdDIgKyAnKScKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSkKKyAg
ICAgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7
CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDog
J3Bvc3QgY2FuY2VsOiBFeHBvbmVudGlhbCcsCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0V4
cG9uZW50aWFsUmFtcCBhZnRlciBjYW5jZWxsaW5nJworICAgICAgICAgIH0sCisgICAgICAgICAg
ZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0
ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUKKyAgICAgICAgICAgIC8v
IGNhbmNlbGxlZC4gVGhlbiBzY2hlZHVsZSBhbiBleHBvbmVudGlhbCByYW1wIGFmdGVyIHRoZQor
ICAgICAgICAgICAgLy8gY2FuY2VsbGF0aW9uLgorICAgICAgICAgICAgY2FuY2VsVGVzdCgKKyAg
ICAgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICAgICAgbGluZWFyUmFtcFRlc3QoJ1Bv
c3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUnKSwKKyAgICAgICAgICAgICAg
ICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDB9LAorICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKKyAg
ICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0s
IGFuZCBkbyB0aGUgc2FtZSBmb3IKKyAgICAgICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5nIHRo
ZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0YW50LgorICAgICAgICAgICAg
ICAgICAgbGV0IHYyID0gMjsKKyAgICAgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUg
KyAwLjEyNTsKKyAgICAgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVB
dFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7CisgICAgICAgICAgICAgICAgICBn
WzJdLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBj
YW5jZWxUaW1lLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBleHBvbmVudGlh
bFJhbXAoJyArIHYyICsgJywgJyArIHQyICsgJyknCisgICAgICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFz
aykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBW
YWx1ZUN1cnZlJywgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisgICAgICAgIC8vIFJ1biB0aGUg
Y2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBiZSBjYW5jZWxs
ZWQuCisgICAgICAgIC8vIFRoZW4gc2NoZWR1bGUgYSBzZXRWYWx1ZUN1cnZlIGFmdGVyIHRoZSBj
YW5jZWxsYXRpb24uCisgICAgICAgIGNhbmNlbFRlc3QoCisgICAgICAgICAgICBzaG91bGQsIGxp
bmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lJyksCisgICAgICAg
ICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDB9LAorICAg
ICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAg
ICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQg
ZG8gdGhlIHNhbWUgZm9yCisgICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGlu
ZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0YW50LgorICAgICAgICAgICAgICBsZXQgdDIg
PSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgIGxldCBkdXJhdGlvbiA9IDAuMTI1
OworICAgICAgICAgICAgICBsZXQgY3VydmUgPSBGbG9hdDMyQXJyYXkuZnJvbShbLjEyNSwgMl0p
OworICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIs
IGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVj
dGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOworICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFs
dWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUsCisgICAgICAg
ICAgICAgICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VmFsdWVDdXJ2ZShbJyArIGN1cnZlICsgJ10sICcg
KyB0MiArICcsICcgKworICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiArICcpJywKKyAgICAg
ICAgICAgICAgICBlcnJvclRocmVzaG9sZDogOC4zOTk4ZS01CisgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOwor
ICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgncG9zdCBjYW5jZWw6IHNldFRhcmdldCcs
IGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0
IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAg
ICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisg
ICAgICAgIGNhbmNlbFRlc3QoCisgICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQ
b3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWUnKSwKKyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9s
ZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogMH0sCisgICAgICAgICAgICBmdW5jdGlvbihn
LCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgIC8vIFNjaGVk
dWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IKKyAg
ICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5IGV4
cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgIGxldCB2MiA9IDAuMTI1OworICAgICAgICAg
ICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgIGxldCB0aW1l
Q29uc3RhbnQgPSAwLjE7CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUo
djIsIHQyLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVB
dFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7CisgICAgICAgICAgICAgIGdbMl0u
Z2Fpbi5zZXRUYXJnZXRBdFRpbWUodjIsIHQyLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAg
ICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSAr
IDAuMTI1LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IHNldFRhcmdldEF0VGltZSgn
ICsgdjIgKyAnLCAnICsgdDIgKyAnLCAnICsKKyAgICAgICAgICAgICAgICAgICAgdGltZUNvbnN0
YW50ICsgJyknLAorICAgICAgICAgICAgICAgIGVycm9yVGhyZXNob2xkOiA4LjQwMzdlLTUKKyAg
ICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRv
bmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdwb3N0IGNh
bmNlbDogc2V0VmFsdWUnLCBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgLy8gUnVu
IHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxpbmVhclJhbXAgYXMgdGhlIGV2ZW50IHRvIGJlIGNh
bmNlbGxlZC4KKyAgICAgICAgLy8gVGhlbiBzY2hlZHVsZSBhIHNldFRhcmdldCBhZnRlciB0aGUg
Y2FuY2VsbGF0aW9uLgorICAgICAgICBjYW5jZWxUZXN0KAorICAgICAgICAgICAgc2hvdWxkLCBs
aW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWwgc2V0VmFsdWVBdFRpbWUnKSwKKyAgICAgICAgICAg
IHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogMH0sCisgICAgICAg
ICAgICBmdW5jdGlvbihnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAg
ICAgICAgIC8vIFNjaGVkdWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0
aGUgc2FtZSBmb3IKKyAgICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBv
aW50IGdpdmVuIGJ5IGV4cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgIGxldCB2MiA9IDAu
MTI1OworICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAg
ICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAgICAgICBn
WzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7Cisg
ICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MiwgdDIpOworICAgICAgICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGlt
ZSArIDAuMTI1LAorICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IHNldFZhbHVlQXRUaW1l
KCcgKyB2MiArICcsICcgKyB0MiArICcpJworICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
fSkKKyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOwor
CisgICAgICBhdWRpdC5kZWZpbmUoJ2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0JywgKHRhc2ssIHNo
b3VsZCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZs
aW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0
ZSk7CisgICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7
CisgICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNy
Yy5vZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRU
YXJnZXRBdFRpbWUoMCwgMC43NSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOworICAgICAgICAvLyBO
b3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KKyAgICAgICAgc3JjLm9mZnNl
dC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICBz
cmMuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAg
ICAudGhlbihidWZmZXIgPT4geworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdl
dENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJnZXQg
d2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQorICAgICAgICAgICAgICAvLyBj
b25zdGFudC4KKyAgICAgICAgICAgICAgc2hvdWxkKGFjdHVhbCwgJ0FmdGVyIGNhbmNlbGxpbmcg
ZnV0dXJlIHNldFRhcmdldCBldmVudCwgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAgIC5iZUNv
bnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKHRh
c2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2Nh
bmNlbCBzZXRUYXJnZXQgbm93JywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBjb25zdCBj
b250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1
cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGNvbnN0IHNyYyA9IG5l
dyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7CisgICAgICAgIHNyYy5jb25uZWN0KGNvbnRl
eHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41
LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRUYXJnZXRBdFRpbWUoMCwgMC41ICogcmVuZGVy
RHVyYXRpb24sIDAuMSk7CisgICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUg
c2V0VGFyZ2V0LgorICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICog
cmVuZGVyRHVyYXRpb24pOworCisgICAgICAgIHNyYy5zdGFydCgpOworICAgICAgICBjb250ZXh0
LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAg
ICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAg
ICAgIC8vIEJlY2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNo
b3VsZCBiZSBhCisgICAgICAgICAgICAgIC8vIGNvbnN0YW50LgorICAgICAgICAgICAgICBzaG91
bGQoCisgICAgICAgICAgICAgICAgICBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAnQWZ0ZXIg
Y2FuY2VsbGluZyBzZXRUYXJnZXQgZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQnKQorICAgICAg
ICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LmRlZmluZSgnY2FuY2VsIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlJywgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5l
QXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7
CisgICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7Cisg
ICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNyYy5v
ZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1
ZUN1cnZlQXRUaW1lKFstMSwgMV0sIDAuNzUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAg
ICAgLy8gTm93IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCisgICAgICAgIHNy
Yy5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7CisKKyAg
ICAgICAgc3JjLnN0YXJ0KCk7CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAg
ICAgICAgICAgLnRoZW4oYnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1
ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0
VGFyZ2V0IHdhcyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgICAgICAg
ICAgLy8gY29uc3RhbnQuCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAg
IGFjdHVhbCwgJ0FmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQsIG91
dHB1dCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41KTsKKyAgICAg
ICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAg
ICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgc2V0VmFsdWVDdXJ2ZSBub3cnLCAo
dGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgICAg
bmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBz
YW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShj
b250ZXh0KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAg
ICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUsIDApOworICAgICAgICBzcmMub2Zm
c2V0LnNldFZhbHVlQ3VydmVBdFRpbWUoWy0xLCAxXSwgMC41ICogcmVuZGVyRHVyYXRpb24sIDAu
MSk7CisgICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0Lgor
ICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVyYXRp
b24pOworCisgICAgICAgIHNyYy5zdGFydCgpOworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVy
aW5nKCkKKyAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBh
Y3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgIC8vIEJlY2F1
c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBhCisg
ICAgICAgICAgICAgIC8vIGNvbnN0YW50LgorICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAg
ICAgICAgICAgICBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAnQWZ0ZXIgY2FuY2VsbGluZyBj
dXJyZW50IHNldFZhbHVlQ3VydmUgZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQnKQorICAgICAg
ICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LmRlZmluZSgKKyAgICAgICAgeworICAgICAgICAgIGxhYmVsOiAnbGluZWFyLCBjYW5j
ZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXInLAorICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2No
ZWR1bGVzIDMgbGluZWFyIHJhbXBzLCBjYW5jZWxsaW5nIDIgb2YgdGhlbSwgJworICAgICAgICAg
ICAgKyAnc28gdGhhdCB3ZSBlbmQgdXAgd2l0aCAyIGNhbmNlbCBldmVudHMgbmV4dCB0byBlYWNo
IG90aGVyJworICAgICAgICB9LAorICAgICAgICAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAg
ICAgY2FuY2VsVGVzdDIoCisgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICBsaW5lYXJS
YW1wVGVzdCgnMXN0IGxpbmVhclJhbXAnKSwKKyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDog
MCwgY3VydmVUaHJlc2hvbGQ6IDB9LAorICAgICAgICAgICAgKGcsIGNhbmNlbFRpbWUsIGV4cGVj
dGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUyKSA9PiB7CisgICAgICAgICAgICAgIC8vIFJhbXAgZnJv
bSBmaXJzdCBjYW5jZWwgdGltZSB0byB0aGUgZW5kIHdpbGwgYmUgY2FuY2VsbGVkIGF0CisgICAg
ICAgICAgICAgIC8vIHNlY29uZCBjYW5jZWwgdGltZS4KKyAgICAgICAgICAgICAgY29uc3QgdjEg
PSBleHBlY3RlZENvbnN0YW50OworICAgICAgICAgICAgICBjb25zdCB0MSA9IGNhbmNlbFRpbWU7
CisgICAgICAgICAgICAgIGNvbnN0IHYyID0gMjsKKyAgICAgICAgICAgICAgY29uc3QgdDIgPSBy
ZW5kZXJEdXJhdGlvbjsKKyAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVl
QXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2
MSwgdDEpOworICAgICAgICAgICAgICBnWzJdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUo
djIsIHQyKTsKKworICAgICAgICAgICAgICBjb25zdCBleHBlY3RlZENvbnN0YW50MiA9CisgICAg
ICAgICAgICAgICAgYXVkaW9QYXJhbUxpbmVhclJhbXAoY2FuY2VsVGltZTIsIHYxLCB0MSwgdjIs
IHQyKTsKKworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50
RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiBgMm5kIGxpbmVh
clJhbXAoJHt2Mn0sICR7dDJ9KWAsCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDIK
KyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAoZywgY2FuY2Vs
VGltZTIsIGV4cGVjdGVkQ29uc3RhbnQyKSA9PiB7CisgICAgICAgICAgICAgIC8vIFJhbXAgZnJv
bSBzZWNvbmQgY2FuY2VsIHRpbWUgdG8gdGhlIGVuZC4KKyAgICAgICAgICAgICAgY29uc3QgdjMg
PSAwOworICAgICAgICAgICAgICBjb25zdCB0MyA9IHJlbmRlckR1cmF0aW9uOworICAgICAgICAg
ICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjMsIHQzKTsKKyAgICAgICAg
ICAgICAgZ1szXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQyLCBjYW5jZWxU
aW1lMik7CisgICAgICAgICAgICAgIGdbM10uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2
MywgdDMpOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0YW50
RW5kVGltZTI6IGNhbmNlbFRpbWUyLAorICAgICAgICAgICAgICAgIG1lc3NhZ2UyOiBgM3JkIGxp
bmVhclJhbXAoJHt2M30sICR7dDN9KWAsCisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9
KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgICB9KTsKKwor
ICAgICAgYXVkaXQucnVuKCk7CisKKyAgICAgIC8vIENvbW1vbiBmdW5jdGlvbiBmb3IgZG9pbmcg
YSBsaW5lYXJSYW1wIHRlc3QuICBUaGlzIGp1c3QgZG9lcyBhIGxpbmVhcgorICAgICAgLy8gcmFt
cCBmcm9tIDAgdG8gdjAgYXQgZnJvbSB0aW1lIDAgdG8gdDAuICBUaGVuIGFub3RoZXIgbGluZWFy
IHJhbXAgaXMKKyAgICAgIC8vIHNjaGVkdWxlZCBmcm9tIHYwIHRvIDAgZnJvbSB0aW1lIHQwIHRv
IHQxLiAgVGhpcyBpcyB0aGUgcmFtcCB0aGF0IGlzIHRvCisgICAgICAvLyBiZSBjYW5jZWxsZWQu
CisgICAgICBmdW5jdGlvbiBsaW5lYXJSYW1wVGVzdChtZXNzYWdlKSB7CisgICAgICAgIHJldHVy
biBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAgICAgICBnWzBdLmdhaW4u
c2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1l
KDAsIDApOworICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwg
dDApOworICAgICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDAp
OworCisgICAgICAgICAgbGV0IHYxID0gMDsKKyAgICAgICAgICBsZXQgdDEgPSByZW5kZXJEdXJh
dGlvbjsKKyAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQx
KTsKKyAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsK
KworICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPQorICAgICAgICAgICAgICBNYXRoLmZyb3Vu
ZCh2MCArICh2MSAtIHYwKSAqIChjYW5jZWxUaW1lIC0gdDApIC8gKHQxIC0gdDApKTsKKworICAg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENv
bnN0YW50LAorICAgICAgICAgICAgYXV0b01lc3NhZ2U6CisgICAgICAgICAgICAgICAgbWVzc2Fn
ZSArICc6IGxpbmVhclJhbXBUb1ZhbHVlKCcgKyB2MSArICcsICcgKyB0MSArICcpJywKKyAgICAg
ICAgICAgIHN1bW1hcnk6IG1lc3NhZ2UsCisgICAgICAgICAgfTsKKyAgICAgICAgfQorICAgICAg
fQorCisgICAgICAvLyBSdW4gdGhlIGNhbmNlbGxhdGlvbiB0ZXN0LiBBIHNldCBvZiBhdXRvbWF0
aW9ucyBpcyBjcmVhdGVkIGFuZAorICAgICAgLy8gY2FuY2VsZWQuCisgICAgICAvLworICAgICAg
Ly8gfHRlc3RlckZ1bmN0aW9ufCBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSBhdXRv
bWF0aW9uIHRvIGJlCisgICAgICAvLyB0ZXN0ZWQuICBJdCBpcyBnaXZlbiBhbiBhcnJheSBvZiAz
IGdhaW4gbm9kZXMsIHRoZSB2YWx1ZSBhbmQgdGltZSBvZiBhbgorICAgICAgLy8gaW5pdGlhbCBs
aW5lYXIgcmFtcCwgYW5kIHRoZSB0aW1lIHdoZXJlIHRoZSBjYW5jZWxsYXRpb24gc2hvdWxkIG9j
Y3VyLgorICAgICAgLy8gVGhlIGZ1bmN0aW9uIG11c3QgZG8gdGhlIGF1dG9tYXRpb25zIGZvciB0
aGUgZmlyc3QgdHdvIGdhaW4gbm9kZXMuICBJdAorICAgICAgLy8gbXVzdCByZXR1cm4gYSBkaWN0
aW9uYXJ5IHdpdGggfGV4cGVjdGVkQ29uc3RhbnR8IGJlaW5nIHRoZSB2YWx1ZSBhdCB0aGUKKyAg
ICAgIC8vIGNhbmNlbGxhdGlvbiB0aW1lLCB8YXV0b01lc3NhZ2V8IGZvciBtZXNzYWdlIHRvIGRl
c2NyaWJlIHRoZSB0ZXN0LCBhbmQKKyAgICAgIC8vIHxzdW1tYXJ5fCBmb3IgZ2VuZXJhbCBzdW1t
YXJ5IG1lc3NhZ2UgdG8gYmUgcHJpbnRlZCBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgLy8gdGVz
dC4KKyAgICAgIC8vCisgICAgICAvLyB8dGhyZXNob2xkT3B0aW9uc3wgaXMgYSBwcm9wZXJ0eSBi
YWcgdGhhdCBzcGVjaWZpZXMgdGhlIGVycm9yIHRocmVzaG9sZAorICAgICAgLy8gdG8gdXNlLiB8
dGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZHwgaXMgdGhlIGVycm9yIHRocmVzaG9sZCBm
b3IKKyAgICAgIC8vIGNvbXBhcmluZyB0aGUgYWN0dWFsIGNvbnN0YW50IG91dHB1dCBhZnRlciBj
YW5jZWxsaW5nIHRvIHRoZSBleHBlY3RlZAorICAgICAgLy8gdmFsdWUuICB8dGhyZXNob2xkT3B0
aW9ucy5jdXJ2ZVRocmVzaG9sZHwgaXMgdGhlIGVycm9yIHRocmVzaG9sZCBmb3IKKyAgICAgIC8v
IGNvbXBhcmluZyB0aGUgYWN0dWFsIGFuZCBleHBlY3RlZCBhdXRvbWF0aW9uIGN1cnZlcyBiZWZv
cmUgdGhlCisgICAgICAvLyBjYW5jZWxhdGlvbiBwb2ludC4KKyAgICAgIC8vCisgICAgICAvLyBG
b3IgY2FuY2VsbGF0aW9uIHRlc3RzLCB8cG9zdENhbmNlbFRlc3R8IGlzIGEgZnVuY3Rpb24gdGhh
dCBzY2hlZHVsZXMKKyAgICAgIC8vIHNvbWUgYXV0b21hdGlvbiBhZnRlciB0aGUgY2FuY2VsbGF0
aW9uLiAgSXQgdGFrZXMgMyBhcmd1bWVudHM6IGFuIGFycmF5CisgICAgICAvLyBvZiB0aGUgZ2Fp
biBub2RlcywgdGhlIGNhbmNlbGxhdGlvbiB0aW1lLCBhbmQgdGhlIGV4cGVjdGVkIHZhbHVlIGF0
IHRoZQorICAgICAgLy8gY2FuY2VsbGF0aW9uIHRpbWUuICBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0
dXJuIGEgZGljdGlvbmFyeSBjb25zaXN0aW5nCisgICAgICAvLyBvZiB8Y29uc3RhbnRFbmR0aW1l
fCBpbmRpY2F0aW5nIHdoZW4gdGhlIGhlbGQgY29uc3RhbnQgZnJvbQorICAgICAgLy8gY2FuY2Vs
bGF0aW9uIHN0b3BzIGJlaW5nIGNvbnN0YW50LCB8bWVzc2FnZXwgZ2l2aW5nIGEgc3VtbWFyeSBv
ZiB3aGF0CisgICAgICAvLyBhdXRvbWF0aW9uIGlzIGJlaW5nIHVzZWQsIGFuZCB8ZXJyb3JUaHJl
c2hvbGR8IHRoYXQgaXMgdGhlIGVycm9yCisgICAgICAvLyB0aHJlc2hvbGQgYmV0d2VlbiB0aGUg
ZXhwZWN0ZWQgY3VydmUgYW5kIHRoZSBhY3R1YWwgY3VydmUuCisgICAgICAvLworICAgICAgZnVu
Y3Rpb24gY2FuY2VsVGVzdCgKKyAgICAgICAgICBzaG91bGQsIHRlc3RlckZ1bmN0aW9uLCB0aHJl
c2hvbGRPcHRpb25zLCBwb3N0Q2FuY2VsVGVzdCkgeworICAgICAgICAvLyBDcmVhdGUgYSBjb250
ZXh0IHdpdGggdGhyZWUgY2hhbm5lbHMuICBDaGFubmVsIDAgaXMgdGhlIHRlc3QgY2hhbm5lbAor
ICAgICAgICAvLyBjb250YWluaW5nIHRoZSBhY3R1YWwgb3V0cHV0IHRoYXQgaW5jbHVkZXMgdGhl
IGNhbmNlbGxhdGlvbiBvZgorICAgICAgICAvLyBldmVudHMuICBDaGFubmVsIDEgaXMgdGhlIGV4
cGVjdGVkIGRhdGEgdXB0byB0aGUgY2FuY2VsbGF0aW9uIHNvIHdlCisgICAgICAgIC8vIGNhbiB2
ZXJpZnkgdGhlIGNhbmNlbGxhdGlvbiBwcm9kdWNlZCB0aGUgY29ycmVjdCByZXN1bHQuICBDaGFu
bmVsIDIKKyAgICAgICAgLy8gaXMgZm9yIHZlcmlmeWluZyBldmVudHMgaW5zZXJ0ZWQgYWZ0ZXIg
dGhlIGNhbmNlbGxhdGlvbiBzbyB3ZSBjYW4KKyAgICAgICAgLy8gdmVyaWZ5IHRoYXQgYXV0b21h
dGlvbnMgYXJlIGNvcnJlY3RseSBnZW5lcmF0ZWQgYWZ0ZXIgdGhlCisgICAgICAgIC8vIGNhbmNl
bGxhdGlvbiBwb2ludC4KKyAgICAgICAgbGV0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMywgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVS
YXRlKTsKKworICAgICAgICAvLyBUZXN0IHNvdXJjZSBpcyBhIGNvbnN0YW50IHNpZ25hbAorICAg
ICAgICBsZXQgc3JjID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc3Jj
LmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBz
cmMubG9vcCA9IHRydWU7CisKKyAgICAgICAgLy8gV2UnbGwgZG8gdGhlIGF1dG9tYXRpb24gdGVz
dHMgd2l0aCB0aHJlZSBnYWluIG5vZGVzLiAgT25lIChnMCkgd2lsbAorICAgICAgICAvLyBoYXZl
IGNhbmNlbEFuZEhvbGRBdFRpbWUgYW5kIHRoZSBvdGhlciAoZzEpIHdpbGwgbm90LiAgZzEgaXMK
KyAgICAgICAgLy8gdXNlZCBhcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciB0aGF0IGF1dG9tYXRp
b24gdXAgdG8gdGhlCisgICAgICAgIC8vIGNhbmNlbGxhdGlvbiBwb2ludC4gIFRoZXkgc2hvdWxk
IGJlIHRoZSBzYW1lLiAgVGhlIHRoaXJkIG5vZGUgKGcyKSBpcworICAgICAgICAvLyB1c2VkIGZv
ciB0ZXN0aW5nIGF1dG9tYXRpb25zIGluc2VydGVkIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24gcG9p
bnQsCisgICAgICAgIC8vIGlmIGFueS4gIGcyIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSB0
aGUgY2FuY2VsbGF0aW9uIHBvaW50IHRvIHRoZQorICAgICAgICAvLyBlbmQgb2YgdGhlIHRlc3Qu
CisKKyAgICAgICAgbGV0IGcwID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGxldCBn
MSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgZzIgPSBjb250ZXh0LmNyZWF0
ZUdhaW4oKTsKKyAgICAgICAgbGV0IHYwID0gMTsKKyAgICAgICAgbGV0IHQwID0gMC4wMTsKKwor
ICAgICAgICBsZXQgY2FuY2VsVGltZSA9IHJlbmRlckR1cmF0aW9uIC8gMjsKKworICAgICAgICAv
LyBUZXN0IGF1dG9tYXRpb24gaGVyZS4gIFRoZSB0ZXN0ZXIgZnVuY3Rpb24gaXMgcmVzcG9uc2li
bGUgZm9yIHNldHRpbmcKKyAgICAgICAgLy8gdXAgdGhlIGdhaW4gbm9kZXMgd2l0aCB0aGUgZGVz
aXJlZCBhdXRvbWF0aW9uIGZvciB0ZXN0aW5nLgorICAgICAgICBhdXRvUmVzdWx0ID0gdGVzdGVy
RnVuY3Rpb24oW2cwLCBnMSwgZzJdLCB2MCwgdDAsIGNhbmNlbFRpbWUpOworICAgICAgICBsZXQg
ZXhwZWN0ZWRDb25zdGFudCA9IGF1dG9SZXN1bHQuZXhwZWN0ZWRDb25zdGFudDsKKyAgICAgICAg
bGV0IGF1dG9NZXNzYWdlID0gYXV0b1Jlc3VsdC5hdXRvTWVzc2FnZTsKKyAgICAgICAgbGV0IHN1
bW1hcnlNZXNzYWdlID0gYXV0b1Jlc3VsdC5zdW1tYXJ5OworCisgICAgICAgIC8vIENhbmNlbCBz
Y2hlZHVsZWQgZXZlbnRzIHNvbWV3aGVyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSB0ZXN0CisgICAg
ICAgIC8vIGF1dG9tYXRpb24uCisgICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShj
YW5jZWxUaW1lKTsKKworICAgICAgICBsZXQgY29uc3RhbnRFbmRUaW1lOworICAgICAgICBpZiAo
cG9zdENhbmNlbFRlc3QpIHsKKyAgICAgICAgICBwb3N0UmVzdWx0ID0KKyAgICAgICAgICAgICAg
cG9zdENhbmNlbFRlc3QoW2cwLCBnMSwgZzJdLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50
KTsKKyAgICAgICAgICBjb25zdGFudEVuZFRpbWUgPSBwb3N0UmVzdWx0LmNvbnN0YW50RW5kVGlt
ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbm5lY3QgZXZlcnl0aGluZyB0b2dldGhlciAo
d2l0aCBhIG1lcmdlciB0byBtYWtlIGEgdHdvLWNoYW5uZWwKKyAgICAgICAgLy8gcmVzdWx0KS4g
IENoYW5uZWwgMCBpcyB0aGUgdGVzdCAod2l0aCBjYW5jZWxBbmRIb2xkQXRUaW1lKSBhbmQKKyAg
ICAgICAgLy8gY2hhbm5lbCAxIGlzIHRoZSByZWZlcmVuY2UgKHdpdGhvdXQgY2FuY2VsQW5kSG9s
ZEF0VGltZSkuCisgICAgICAgIC8vIENoYW5uZWwgMSBpcyB1c2VkIHRvIHZlcmlmeSB0aGF0IGV2
ZXJ5dGhpbmcgdXAgdG8gdGhlIGNhbmNlbGxhdGlvbgorICAgICAgICAvLyBoYXMgdGhlIGNvcnJl
Y3QgdmFsdWVzLgorICAgICAgICBzcmMuY29ubmVjdChnMCk7CisgICAgICAgIHNyYy5jb25uZWN0
KGcxKTsKKyAgICAgICAgc3JjLmNvbm5lY3QoZzIpOworICAgICAgICBsZXQgbWVyZ2VyID0gY29u
dGV4dC5jcmVhdGVDaGFubmVsTWVyZ2VyKDMpOworICAgICAgICBnMC5jb25uZWN0KG1lcmdlciwg
MCwgMCk7CisgICAgICAgIGcxLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKKyAgICAgICAgZzIuY29u
bmVjdChtZXJnZXIsIDAsIDIpOworICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0LmRlc3Rp
bmF0aW9uKTsKKworICAgICAgICAvLyBHbyEKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKGJ1ZmZlcikg
eworICAgICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAg
ICAgICAgbGV0IGV4cGVjdGVkID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworCisgICAgICAg
ICAgLy8gVGhlIGFjdHVhbCBvdXRwdXQgc2hvdWxkIGJlIGEgY29uc3RhbnQgZnJvbSB0aGUgY2Fu
Y2VsIHRpbWUgdG8gdGhlCisgICAgICAgICAgLy8gZW5kLiAgV2UgdXNlIHRoZSBsYXN0IHZhbHVl
IG9mIHRoZSBhY3R1YWwgb3V0cHV0IGFzIHRoZSBjb25zdGFudCwKKyAgICAgICAgICAvLyBidXQg
d2UgYWxzbyB3YW50IHRvIGNvbXBhcmUgdGhhdCB3aXRoIHdoYXQgd2UgdGhvdWdodCBpdCBzaG91
bGQKKyAgICAgICAgICAvLyByZWFsbHkgYmUuCisKKyAgICAgICAgICBsZXQgY2FuY2VsRnJhbWUg
PSBNYXRoLmNlaWwoY2FuY2VsVGltZSAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgLy8gVmVy
aWZ5IHRoYXQgdGhlIGN1cnZlcyB1cCB0byB0aGUgY2FuY2VsIHRpbWUgYXJlICJpZGVudGljYWwi
LiAgVGhlCisgICAgICAgICAgLy8gc2hvdWxkIGJlIGJ1dCByb3VuZC1vZmYgbWF5IG1ha2UgdGhl
bSBkaWZmZXIgc2xpZ2h0bHkgZHVlIHRvIHRoZQorICAgICAgICAgIC8vIHdheSBjYW5jZWxsaW5n
IGlzIGRvbmUuCisgICAgICAgICAgbGV0IGVuZEZyYW1lID0gTWF0aC5mbG9vcihjYW5jZWxUaW1l
ICogc2FtcGxlUmF0ZSk7CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBhY3R1YWwu
c2xpY2UoMCwgZW5kRnJhbWUpLAorICAgICAgICAgICAgICBhdXRvTWVzc2FnZSArICcgdXAgdG8g
dGltZSAnICsgY2FuY2VsVGltZSkKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWQuc2xpY2UoMCwgZW5kRnJhbWUpLAorICAgICAgICAgICAg
ICAgICAge2Fic29sdXRlVGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLmN1cnZlVGhyZXNob2xk
fSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhlIG91dHB1dCBhZnRlciB0aGUgY2FuY2VsbGF0
aW9uIGlzIGEgY29uc3RhbnQuCisgICAgICAgICAgbGV0IGFjdHVhbFRhaWw7CisgICAgICAgICAg
bGV0IGNvbnN0YW50RW5kRnJhbWU7CisKKyAgICAgICAgICBpZiAocG9zdENhbmNlbFRlc3QpIHsK
KyAgICAgICAgICAgIGNvbnN0YW50RW5kRnJhbWUgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1l
ICogc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBhY3R1YWxUYWlsID0gYWN0dWFsLnNsaWNlKGNh
bmNlbEZyYW1lLCBjb25zdGFudEVuZEZyYW1lKTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgYWN0dWFsVGFpbCA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZSk7CisgICAgICAgICAg
fQorCisgICAgICAgICAgbGV0IGFjdHVhbENvbnN0YW50ID0gYWN0dWFsW2NhbmNlbEZyYW1lXTsK
KworICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgYWN0dWFsVGFpbCwKKyAgICAgICAg
ICAgICAgJ0NhbmNlbGxpbmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKyBjYW5jZWxU
aW1lKQorICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQpOwor
CisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvbnN0YW50IGlzIHRoZSB2YWx1ZSB3ZSBl
eHBlY3QuCisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBhY3R1YWxDb25zdGFudCwK
KyAgICAgICAgICAgICAgJ0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBhdXRvTWVz
c2FnZSArICcgYXQgdGltZSAnICsKKyAgICAgICAgICAgICAgICAgIGNhbmNlbFRpbWUpCisgICAg
ICAgICAgICAgIC5iZUNsb3NlVG8oCisgICAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50
LAorICAgICAgICAgICAgICAgICAge3RocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRo
cmVzaG9sZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoZSBjdXJ2ZSBhZnRlciB0aGUgY29u
c3RhbnRFbmRUaW1lIG1hdGNoZXMgb3VyCisgICAgICAgICAgLy8gZXhwZWN0YXRpb25zLgorICAg
ICAgICAgIGlmIChwb3N0Q2FuY2VsVGVzdCkgeworICAgICAgICAgICAgbGV0IGMyID0gYnVmZmVy
LmdldENoYW5uZWxEYXRhKDIpOworICAgICAgICAgICAgc2hvdWxkKGFjdHVhbC5zbGljZShjb25z
dGFudEVuZEZyYW1lKSwgcG9zdFJlc3VsdC5tZXNzYWdlKQorICAgICAgICAgICAgICAgIC5iZUNs
b3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgICAgICAgYzIuc2xpY2UoY29uc3RhbnRFbmRGcmFt
ZSksCisgICAgICAgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogcG9zdFJlc3VsdC5l
cnJvclRocmVzaG9sZCB8fCAwfSk7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgIH0K
KworICAgICAgLy8gU2ltaWxhciB0byBjYW5jZWxUZXN0LCBidXQgZG9lcyAyIGNhbmNlbHMuCisg
ICAgICBmdW5jdGlvbiBjYW5jZWxUZXN0MigKKyAgICAgICAgICBzaG91bGQsIHRlc3RlckZ1bmN0
aW9uLCB0aHJlc2hvbGRPcHRpb25zLAorICAgICAgICAgIHBvc3RDYW5jZWxUZXN0LCBwb3N0Q2Fu
Y2VsVGVzdDIpIHsKKyAgICAgICAgLy8gQ2hhbm5lbCAwOiBBY3R1YWwgb3V0cHV0IHRoYXQgaW5j
bHVkZXMgdGhlIGNhbmNlbGxhdGlvbiBvZiBldmVudHMuCisgICAgICAgIC8vIENoYW5uZWwgMTog
RXhwZWN0ZWQgZGF0YSB1cCB0byB0aGUgZmlyc3QgY2FuY2VsbGF0aW9uLgorICAgICAgICAvLyBD
aGFubmVsIDI6IEV4cGVjdGVkIGRhdGEgZnJvbSAxc3QgY2FuY2VsbGF0aW9uIHRvIDJuZCBjYW5j
ZWxsYXRpb24uCisgICAgICAgIC8vIENoYW5uZWwgMzogRXhwZWN0ZWQgZGF0YSBmcm9tIDJuZCBj
YW5jZWxsYXRpb24gdG8gdGhlIGVuZC4KKyAgICAgICAgY29uc3QgY29udGV4dCA9CisgICAgICAg
ICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoNCwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRl
LCBzYW1wbGVSYXRlKTsKKworICAgICAgICBjb25zdCBzcmMgPSBjb250ZXh0LmNyZWF0ZUNvbnN0
YW50U291cmNlKCk7CisKKyAgICAgICAgLy8gZzA6IEFjdHVhbCBnYWluIHdoaWNoIHdpbGwgaGF2
ZSBjYW5jZWxBbmRIb2xkQXRUaW1lIGNhbGxlZCBvbiBpdAorICAgICAgICAvLyB0d2ljZS4KKyAg
ICAgICAgLy8gZzE6IEV4cGVjdGVkIGdhaW4gZnJvbSBzdGFydCB0byB0aGUgMXN0IGNhbmNlbC4K
KyAgICAgICAgLy8gZzI6IEV4cGVjdGVkIGdhaW4gZnJvbSAxc3QgY2FuY2VsIHRvIHRoZSAybmQg
Y2FuY2VsLgorICAgICAgICAvLyBnMzogRXhwZWN0ZWQgZ2FpbiBmcm9tIHRoZSAybmQgY2FuY2Vs
IHRvIHRoZSBlbmQuCisgICAgICAgIGNvbnN0IGcwID0gY29udGV4dC5jcmVhdGVHYWluKCk7Cisg
ICAgICAgIGNvbnN0IGcxID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGNvbnN0IGcy
ID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAgICAgIGNvbnN0IGczID0gY29udGV4dC5jcmVh
dGVHYWluKCk7CisgICAgICAgIGNvbnN0IHYwID0gMTsKKyAgICAgICAgY29uc3QgdDAgPSAwLjAx
OworCisgICAgICAgIGNvbnN0IGNhbmNlbFRpbWUxID0gcmVuZGVyRHVyYXRpb24gKiAwLjU7Cisg
ICAgICAgIGNvbnN0IGNhbmNlbFRpbWUyID0gcmVuZGVyRHVyYXRpb24gKiAwLjc1OworCisgICAg
ICAgIC8vIFJ1biB0ZXN0ZXJGdW5jdGlvbiB0byBnZW5lcmF0ZSB0aGUgMXN0IHJhbXAuCisgICAg
ICAgIGNvbnN0IHsKKyAgICAgICAgICBleHBlY3RlZENvbnN0YW50LCBhdXRvTWVzc2FnZSwgc3Vt
bWFyeU1lc3NhZ2V9ID0KKyAgICAgICAgICAgIHRlc3RlckZ1bmN0aW9uKFtnMCwgZzEsIGcyXSwg
djAsIHQwLCBjYW5jZWxUaW1lMSk7CisKKyAgICAgICAgLy8gMXN0IGNhbmNlbCwgY2FuY2VsbGlu
ZyB0aGUgMXN0IHJhbXAuCisgICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShjYW5j
ZWxUaW1lMSk7CisKKyAgICAgICAgLy8gUnVuIHBvc3RDYW5jZWxUZXN0IHRvIGdlbmVyYXRlIHRo
ZSAybmQgcmFtcC4KKyAgICAgICAgY29uc3QgeworICAgICAgICAgIGNvbnN0YW50RW5kVGltZSwg
bWVzc2FnZSwgZXJyb3JUaHJlc2hvbGQgPSAwLCBleHBlY3RlZENvbnN0YW50Mn0gPQorICAgICAg
ICAgICAgcG9zdENhbmNlbFRlc3QoCisgICAgICAgICAgICAgIFtnMCwgZzEsIGcyXSwgY2FuY2Vs
VGltZTEsIGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUyKTsKKworICAgICAgICAvLyAybmQg
Y2FuY2VsLCBjYW5jZWxsaW5nIHRoZSAybmQgcmFtcC4KKyAgICAgICAgZzAuZ2Fpbi5jYW5jZWxB
bmRIb2xkQXRUaW1lKGNhbmNlbFRpbWUyKTsKKworICAgICAgICAvLyBSdW4gcG9zdENhbmNlbFRl
c3QyIHRvIGdlbmVyYXRlIHRoZSAzcmQgcmFtcC4KKyAgICAgICAgY29uc3Qge2NvbnN0YW50RW5k
VGltZTIsIG1lc3NhZ2UyfSA9CisgICAgICAgICAgcG9zdENhbmNlbFRlc3QyKFtnMCwgZzEsIGcy
LCBnM10sIGNhbmNlbFRpbWUyLCBleHBlY3RlZENvbnN0YW50Mik7CisKKyAgICAgICAgLy8gQ29u
bmVjdCBldmVyeXRoaW5nIHRvZ2V0aGVyCisgICAgICAgIHNyYy5jb25uZWN0KGcwKTsKKyAgICAg
ICAgc3JjLmNvbm5lY3QoZzEpOworICAgICAgICBzcmMuY29ubmVjdChnMik7CisgICAgICAgIHNy
Yy5jb25uZWN0KGczKTsKKyAgICAgICAgY29uc3QgbWVyZ2VyID0gY29udGV4dC5jcmVhdGVDaGFu
bmVsTWVyZ2VyKDQpOworICAgICAgICBnMC5jb25uZWN0KG1lcmdlciwgMCwgMCk7CisgICAgICAg
IGcxLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKKyAgICAgICAgZzIuY29ubmVjdChtZXJnZXIsIDAs
IDIpOworICAgICAgICBnMy5jb25uZWN0KG1lcmdlciwgMCwgMyk7CisgICAgICAgIG1lcmdlci5j
b25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIC8vIEdvIQorICAgICAgICBz
cmMuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRo
ZW4oZnVuY3Rpb24gKGJ1ZmZlcikgeworICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IGJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICBjb25zdCBleHBlY3RlZDEgPSBidWZmZXIuZ2V0
Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgY29uc3QgZXhwZWN0ZWQyID0gYnVmZmVyLmdldENo
YW5uZWxEYXRhKDIpOworICAgICAgICAgIGNvbnN0IGV4cGVjdGVkMyA9IGJ1ZmZlci5nZXRDaGFu
bmVsRGF0YSgzKTsKKworICAgICAgICAgIGNvbnN0IGNhbmNlbEZyYW1lMSA9IE1hdGguY2VpbChj
YW5jZWxUaW1lMSAqIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnN0IGNhbmNlbEZyYW1lMiA9
IE1hdGguY2VpbChjYW5jZWxUaW1lMiAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgY29uc3Qg
Y29uc3RhbnRFbmRGcmFtZTEgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1lICogc2FtcGxlUmF0
ZSk7CisgICAgICAgICAgY29uc3QgY29uc3RhbnRFbmRGcmFtZTIgPSBNYXRoLmNlaWwoY29uc3Rh
bnRFbmRUaW1lMiAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgY29uc3QgYWN0dWFsVGFpbDEg
PSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUxLCBjb25zdGFudEVuZEZyYW1lMSk7CisgICAgICAg
ICAgY29uc3QgYWN0dWFsVGFpbDIgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUyLCBjb25zdGFu
dEVuZEZyYW1lMik7CisKKyAgICAgICAgICBjb25zdCBhY3R1YWxDb25zdGFudDEgPSBhY3R1YWxb
Y2FuY2VsRnJhbWUxXTsKKyAgICAgICAgICBjb25zdCBhY3R1YWxDb25zdGFudDIgPSBhY3R1YWxb
Y2FuY2VsRnJhbWUyXTsKKworICAgICAgICAgIC8vIFZlcmlmeSBmaXJzdCBzZWN0aW9uIGN1cnZl
CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsLnNsaWNlKDAsIGNhbmNlbEZy
YW1lMSksCisgICAgICAgICAgICBhdXRvTWVzc2FnZSArICcgdXAgdG8gdGltZSAnICsgY2FuY2Vs
VGltZTEpCisgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisgICAgICAgICAgICAgIGV4cGVj
dGVkMS5zbGljZSgwLCBjYW5jZWxGcmFtZTEpLAorICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJl
c2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJlc2hvbGR9KTsKKworICAgICAgICAgIC8v
IFZlcmlmeSB0aGF0IGEgdmFsdWUgd2FzIGhlbGQgYWZ0ZXIgMXN0IGNhbmNlbAorICAgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgIGFjdHVhbFRhaWwxLAorICAgICAgICAgICAgJ0NhbmNlbGxp
bmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKyBjYW5jZWxUaW1lMSkKKyAgICAgICAg
ICAgIC5iZUNvbnN0YW50VmFsdWVPZihhY3R1YWxDb25zdGFudDEpOworCisgICAgICAgICAgLy8g
VmVyaWZ5IHRoYXQgaGVsZCB2YWx1ZSBhZnRlciAxc3QgY2FuY2VsIHdhcyBjb3JyZWN0CisgICAg
ICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0dWFsQ29uc3RhbnQxLAorICAgICAgICAgICAg
J0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQgdGlt
ZSAnICsKKyAgICAgICAgICAgIGNhbmNlbFRpbWUxKQorICAgICAgICAgICAgLmJlQ2xvc2VUbygK
KyAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAgICAgICAge3RocmVzaG9s
ZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZH0pOworCisgICAgICAgICAgLy8gVmVy
aWZ5IG1pZGRsZSBzZWN0aW9uIGN1cnZlCisgICAgICAgICAgc2hvdWxkKGFjdHVhbC5zbGljZShj
b25zdGFudEVuZEZyYW1lMSwgY2FuY2VsRnJhbWUyKSwgbWVzc2FnZSkKKyAgICAgICAgICAgIC5i
ZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgZXhwZWN0ZWQyLnNsaWNlKGNvbnN0YW50RW5k
RnJhbWUxLCBjYW5jZWxGcmFtZTIpLAorICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6
IGVycm9yVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBhIHZhbHVlIHdh
cyBoZWxkIGFmdGVyIDJuZCBjYW5jZWwKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBh
Y3R1YWxUYWlsMiwKKyAgICAgICAgICAgICdDYW5jZWxsaW5nICcgKyBtZXNzYWdlICsgJyBhdCB0
aW1lICcgKyBjYW5jZWxUaW1lMikKKyAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZihhY3R1
YWxDb25zdGFudDIpOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgaGVsZCB2YWx1ZSBhZnRl
ciAybmQgY2FuY2VsIHdhcyBjb3JyZWN0CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAg
YWN0dWFsQ29uc3RhbnQyLAorICAgICAgICAgICAgJ0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxs
aW5nICcgKyBtZXNzYWdlICsgJyBhdCB0aW1lICcgKworICAgICAgICAgICAgY2FuY2VsVGltZTIp
CisgICAgICAgICAgICAuYmVDbG9zZVRvKAorICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50
MiwKKyAgICAgICAgICAgICAge3RocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVz
aG9sZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IGVuZCBzZWN0aW9uIGN1cnZlCisgICAgICAg
ICAgc2hvdWxkKGFjdHVhbC5zbGljZShjb25zdGFudEVuZEZyYW1lMiksIG1lc3NhZ2UyKQorICAg
ICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICBleHBlY3RlZDMuc2xpY2Uo
Y29uc3RhbnRFbmRGcmFtZTIpLAorICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IGVy
cm9yVGhyZXNob2xkIHx8IDB9KTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+
CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW0vYXVkaW9wYXJhbS1jbGFtcC10aW1lLXRvLWN1cnJlbnQtdGltZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tY2xhbXAtdGlt
ZS10by1jdXJyZW50LXRpbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MGJkMzJjMDQ4Y2Ji
MGVlYWU2ZmRjNDUwNDU4OWU1MWY5NjhiYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tY2xhbXAtdGltZS10by1jdXJyZW50LXRp
bWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgInNldFZhbHVlIiAKK1BBU1MgRXhlY3V0aW5n
ICJsaW5lYXIiIAorUEFTUyBFeGVjdXRpbmcgImV4cG9uZW50aWFsIiAKK1BBU1MgRXhlY3V0aW5n
ICJzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgInNldFZhbHVlQ3VydmUiIAorUEFTUyBBdWRp
dCByZXBvcnQgCitQQVNTID4gW3NldFZhbHVlXSAgCitQQVNTICAgc2V0VmFsdWU6IE91dHB1dFsw
LTEyN10gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4gCitQQVNTICAgc2V0VmFsdWU6IE91
dHB1dFsxMjgtMTAyM10gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4gCitQQVNTIDwgW3Nl
dFZhbHVlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFT
UyA+IFtsaW5lYXJdICAKK1BBU1MgICBsaW5lYXI6IE91dHB1dFswLTEyN10gY29udGFpbnMgb25s
eSB0aGUgY29uc3RhbnQgMS4gCitQQVNTICAgbGluZWFyOiBPdXRwdXRbMTI4LTEwMjNdIGNvbnRh
aW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQQVNTIDwgW2xpbmVhcl0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxdICAK
K1BBU1MgICBleHBvbmVudGlhbDogT3V0cHV0WzAtMTI3XSBjb250YWlucyBvbmx5IHRoZSBjb25z
dGFudCAxLiAKK1BBU1MgICBleHBvbmVudGlhbDogT3V0cHV0WzEyOC0xMDIzXSBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtleHBvbmVudGlhbF0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbc2V0VGFyZ2V0XSAgCitQ
QVNTICAgc2V0VGFyZ2V0OiBPdXRwdXRbMC0xMjddIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50
IDEuIAorUEFTUyAgIHNldFRhcmdldDogT3V0cHV0WzEyOF0gaXMgZXF1YWwgdG8gMS4gCitQQVNT
ICAgT3V0cHV0WzEyOS0xMDIzXSBjb250YWlucyBvbmx5IHBvc2l0aXZlIHZhbHVlcyBpcyBlcXVh
bCB0byB0cnVlLiAKK1BBU1MgPCBbc2V0VGFyZ2V0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXRWYWx1ZUN1cnZlXSAgCitQQVNTICAgc2V0
VmFsdWVDdXJ2ZTogT3V0cHV0WzAtMTI3XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxLiAK
K1BBU1MgICBzZXRWYWx1ZUN1cnZlOiBPdXRwdXRbMTI4LTEwMjNdIGlzIGVxdWFsIHRvIHRydWUu
IAorUEFTUyA8IFtzZXRWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAy
IGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA1IHRhc2tz
IHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
dWRpb1BhcmFtL2F1ZGlvcGFyYW0tY2xhbXAtdGltZS10by1jdXJyZW50LXRpbWUuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jbGFtcC10aW1lLXRvLWN1
cnJlbnQtdGltZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NWYyYzQ5NDVkOWE0ZDA2NzI2ZmRlYjc0Y2Jh
MGMyNDQ3MmQyMDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0tY2xhbXAtdGltZS10by1jdXJyZW50LXRpbWUuaHRtbApAQCAtMCww
ICsxLDIxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxl
PgorICAgICAgVGVzdCBDbGFtcGluZyBvZiBBdWRpb1BhcmFtIFRpbWUKKyAgICA8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIEZhaXJseSBhcmJp
dHJhcnkgc2FtcGxlIHJhdGUgYW5kIHJlbmRlciBmcmFtZXMuCisgICAgICBsZXQgc2FtcGxlUmF0
ZSA9IDI0MDAwOworICAgICAgbGV0IHJlbmRlckZyYW1lcyA9IDEwMjQ7CisKKyAgICAgIGxldCBh
dWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdz
ZXRWYWx1ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgbGV0IHN1c3BlbmRGcmFtZSA9
IDEyODsKKyAgICAgICAgY3JlYXRlR3JhcGgoeworICAgICAgICAgIHN1c3BlbmRGcmFtZTogc3Vz
cGVuZEZyYW1lLAorICAgICAgICAgIG1ldGhvZDogJ3NldFZhbHVlQXRUaW1lJywKKyAgICAgICAg
ICBpbml0aWFsR2FpbjogMCwKKyAgICAgICAgICBhcmcwOiAxLAorICAgICAgICB9KQorICAgICAg
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgICAgIC8vIEp1
c3QgdmVyaWZ5IHRoYXQgdGhlIGNvc2luZSB3YXZlIGFjdHVhbGx5IHN0YXJ0ZWQgYXQKKyAgICAg
ICAgICAgICAgLy8gc3VzcGVuZEZyYW1lLgorICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVz
dWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgICAgICAgICAgIHNob3VsZCgKKyAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5zbGljZSgwLCBzdXNwZW5kRnJhbWUpLAorICAgICAgICAg
ICAgICAgICAgJ3NldFZhbHVlOiBPdXRwdXRbMC0nICsgKHN1c3BlbmRGcmFtZSAtIDEpICsgJ10n
KQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDApOworICAgICAgICAgICAg
ICBzaG91bGQoCisgICAgICAgICAgICAgICAgICByZXN1bHQuc2xpY2Uoc3VzcGVuZEZyYW1lKSwK
KyAgICAgICAgICAgICAgICAgICdzZXRWYWx1ZTogT3V0cHV0WycgKyBzdXNwZW5kRnJhbWUgKyAn
LScgKworICAgICAgICAgICAgICAgICAgICAgIChyZW5kZXJGcmFtZXMgLSAxKSArICddJykKKyAg
ICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigxKTsKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAg
YXVkaXQuZGVmaW5lKCdsaW5lYXInLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCBz
dXNwZW5kRnJhbWUgPSAxMjg7CisgICAgICAgIGNyZWF0ZUdyYXBoKHsKKyAgICAgICAgICBzdXNw
ZW5kRnJhbWU6IHN1c3BlbmRGcmFtZSwKKyAgICAgICAgICBtZXRob2Q6ICdsaW5lYXJSYW1wVG9W
YWx1ZUF0VGltZScsCisgICAgICAgICAgaW5pdGlhbEdhaW46IDEsCisgICAgICAgICAgYXJnMDog
MC41CisgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIp
IHsKKyAgICAgICAgICAgICAgLy8gSnVzdCB2ZXJpZnkgdGhhdCB0aGUgY29zaW5lIHdhdmUgYWN0
dWFsbHkgc3RhcnRlZCBhdAorICAgICAgICAgICAgICAvLyBzdXNwZW5kRnJhbWUuCisgICAgICAg
ICAgICAgIGxldCByZXN1bHQgPSByZXN1bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisKKyAg
ICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgcmVzdWx0LnNsaWNlKDAsIHN1
c3BlbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICAnbGluZWFyOiBPdXRwdXRbMC0nICsgKHN1
c3BlbmRGcmFtZSAtIDEpICsgJ10nKQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1
ZU9mKDEpOworICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICByZXN1bHQu
c2xpY2Uoc3VzcGVuZEZyYW1lKSwKKyAgICAgICAgICAgICAgICAgICdsaW5lYXI6IE91dHB1dFsn
ICsgc3VzcGVuZEZyYW1lICsgJy0nICsgKHJlbmRlckZyYW1lcyAtIDEpICsKKyAgICAgICAgICAg
ICAgICAgICAgICAnXScpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41
KTsKKworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgp
KTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2V4cG9uZW50aWFsJywgKHRhc2ss
IHNob3VsZCkgPT4geworICAgICAgICBsZXQgc3VzcGVuZEZyYW1lID0gMTI4OworICAgICAgICBj
cmVhdGVHcmFwaCh7CisgICAgICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUsCisgICAg
ICAgICAgbWV0aG9kOiAnZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScsCisgICAgICAgICAg
aW5pdGlhbEdhaW46IDEsCisgICAgICAgICAgYXJnMDogMC41CisgICAgICAgIH0pCisgICAgICAg
ICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAgICAgICAgICAgICAgLy8gSnVz
dCB2ZXJpZnkgdGhhdCB0aGUgY29zaW5lIHdhdmUgYWN0dWFsbHkgc3RhcnRlZCBhdAorICAgICAg
ICAgICAgICAvLyBzdXNwZW5kRnJhbWUuCisgICAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXN1
bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNsaWNlKDAsIHN1c3BlbmRGcmFtZSksCisgICAgICAgICAg
ICAgICAgICAnZXhwb25lbnRpYWw6IE91dHB1dFswLScgKyAoc3VzcGVuZEZyYW1lIC0gMSkgKyAn
XScpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMSk7CisgICAgICAgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5zbGljZShzdXNwZW5kRnJhbWUp
LAorICAgICAgICAgICAgICAgICAgJ2V4cG9uZW50aWFsOiBPdXRwdXRbJyArIHN1c3BlbmRGcmFt
ZSArICctJyArCisgICAgICAgICAgICAgICAgICAgICAgKHJlbmRlckZyYW1lcyAtIDEpICsgJ10n
KQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAgICAgICAg
ICB9KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisK
KyAgICAgIGF1ZGl0LmRlZmluZSgnc2V0VGFyZ2V0JywgKHRhc2ssIHNob3VsZCkgPT4geworICAg
ICAgICBsZXQgc3VzcGVuZEZyYW1lID0gMTI4OworICAgICAgICBjcmVhdGVHcmFwaCh7CisgICAg
ICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUsCisgICAgICAgICAgbWV0aG9kOiAnc2V0
VGFyZ2V0QXRUaW1lJywKKyAgICAgICAgICBpbml0aWFsR2FpbjogMSwKKyAgICAgICAgICBhcmcw
OiAwLjUsCisgICAgICAgICAgbW9yZUFyZ3M6IDAuMQorICAgICAgICB9KQorICAgICAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgICAgIC8vIEp1c3QgdmVy
aWZ5IHRoYXQgdGhlIGNvc2luZSB3YXZlIGFjdHVhbGx5IHN0YXJ0ZWQgYXQKKyAgICAgICAgICAg
ICAgLy8gc3VzcGVuZEZyYW1lLgorICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzdWx0QnVm
ZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAg
ICAgICAgICAgIHJlc3VsdC5zbGljZSgwLCBzdXNwZW5kRnJhbWUpLAorICAgICAgICAgICAgICAg
ICAgJ3NldFRhcmdldDogT3V0cHV0WzAtJyArIChzdXNwZW5kRnJhbWUgLSAxKSArICddJykKKyAg
ICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigxKTsKKyAgICAgICAgICAgICAgLy8g
Rm9yIHRoZSBzYW1wbGVzIHBhc3QgdGhlIHN1c3BlbmQgdGltZSwgd2Ugb25seSBjYXJlIHRoYXQg
Zmlyc3QKKyAgICAgICAgICAgICAgLy8gdmFsdWUgaXMgMSBhbmQgdGhhdCB0aGUgcmVzdCBhcmUg
bm90IHplcm8uCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgIHJlc3Vs
dFtzdXNwZW5kRnJhbWVdLAorICAgICAgICAgICAgICAgICAgJ3NldFRhcmdldDogT3V0cHV0Wycg
KyBzdXNwZW5kRnJhbWUgKyAnXScpCisgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKDEpOwor
CisgICAgICAgICAgICAgIGxldCBwb3NpdGl2ZSA9IHJlc3VsdC5zbGljZShzdXNwZW5kRnJhbWUg
KyAxKS5ldmVyeSh4ID0+IHggPiAwKTsKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAg
ICAgICAgICAgcG9zaXRpdmUsCisgICAgICAgICAgICAgICAgICAnT3V0cHV0WycgKyAoc3VzcGVu
ZEZyYW1lICsgMSkgKyAnLScgKyAocmVuZGVyRnJhbWVzIC0gMSkgKworICAgICAgICAgICAgICAg
ICAgICAgICddIGNvbnRhaW5zIG9ubHkgcG9zaXRpdmUgdmFsdWVzJykKKyAgICAgICAgICAgICAg
ICAgIC5iZUVxdWFsVG8odHJ1ZSk7CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4o
KCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnc2V0
VmFsdWVDdXJ2ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgbGV0IHN1c3BlbmRGcmFt
ZSA9IDEyODsKKyAgICAgICAgY3JlYXRlR3JhcGgoeworICAgICAgICAgIHN1c3BlbmRGcmFtZTog
c3VzcGVuZEZyYW1lLAorICAgICAgICAgIG1ldGhvZDogJ3NldFZhbHVlQ3VydmVBdFRpbWUnLAor
ICAgICAgICAgIGluaXRpYWxHYWluOiAxLAorICAgICAgICAgIGFyZzA6IEZsb2F0MzJBcnJheS5m
cm9tKFsyLCAzXSksCisgICAgICAgICAgbW9yZUFyZ3M6IDAuMQorICAgICAgICB9KQorICAgICAg
ICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgICAgIC8vIEp1
c3QgdmVyaWZ5IHRoYXQgdGhlIGNvc2luZSB3YXZlIGFjdHVhbGx5IHN0YXJ0ZWQgYXQKKyAgICAg
ICAgICAgICAgLy8gc3VzcGVuZEZyYW1lLgorICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVz
dWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgICAgICAgICAgIHNob3VsZCgKKyAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5zbGljZSgwLCBzdXNwZW5kRnJhbWUpLAorICAgICAgICAg
ICAgICAgICAgJ3NldFZhbHVlQ3VydmU6IE91dHB1dFswLScgKyAoc3VzcGVuZEZyYW1lIC0gMSkg
KyAnXScpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMSk7CisKKyAgICAg
ICAgICAgICAgLy8gVGhlIHNlbGVjdGVkIGN1cnZlIGNvbnRhaW5zIHZhbHVlcyBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gMi4KKyAgICAgICAgICAgICAgLy8gSnVzdCB2ZXJpZnkgdGhhdCBhbGwg
dmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMi4KKyAgICAgICAgICAgICAgbGV0
IGJpZ2dlclRoYW4yID0gcmVzdWx0LnNsaWNlKHN1c3BlbmRGcmFtZSkuZXZlcnkoeCA9PiB4ID49
IDIpOworICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBiaWdnZXJUaGFu
MiwKKyAgICAgICAgICAgICAgICAgICdzZXRWYWx1ZUN1cnZlOiBPdXRwdXRbJyArIHN1c3BlbmRG
cmFtZSArICctJyArCisgICAgICAgICAgICAgICAgICAgICAgKHJlbmRlckZyYW1lcyAtIDEpICsg
J10nKQorICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyh0cnVlKTsKKyAgICAgICAgICAgIH0p
CisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworCisg
ICAgICAvLyBDcmVhdGUgdGhlIHRlc3QgZ3JhcGggY29uc2lzdGluZyBvZiBhIGNvbnN0YW50IHNv
dXJjZSBmb2xsb3dlZCBieSBhCisgICAgICAvLyBnYWluIG5vZGUuICBUaGUgZ2FpbiBub2RlIGF1
dG9tYXRpb25zIHdpbGwgYmUgdGVzdGVkLiAgfG9wdGlvbnN8CisgICAgICAvLyBzcGVjaWZpZXMg
dGhlIHBhcmFtZXRlcnMgZm9yIHRoZSB0ZXN0IGluY2x1ZGluZworICAgICAgLy8KKyAgICAgIC8v
ICAgc3VzcGVuZEZyYW1lOiB0aW1lIGF0IHdoaWNoIHdlIHNjaGVkdWxlIHRoZSBhdXRvbWF0aW9u
IGNhbGwKKyAgICAgIC8vICAgbWV0aG9kOiB0aGUgbmFtZSBvZiBhdXRvbWF0aW9uIG1ldGhvZCB0
byBiZSB0ZXN0ZWQKKyAgICAgIC8vICAgaW5pdGlhbEdhaW46IHRoZSBpbml0aWFsIGdhaW4gYXQg
dGltZSAwIGZvciB0aGUgZ2FpbiBub2RlCisgICAgICAvLyAgIGFyZzA6IHRoZSBmaXJzdCBhcmd1
bWVudCB0byBiZSBzdXBwbGllZCB0byB0aGUgYXV0b21hdGlvbiBtZXRob2QuCisgICAgICAvLyAg
IG1vcmVBcmdzOiBBbiBhcnJheSBvZiBhbnkgYWRkaXRpb25hbCBhcmd1bWVudHMgZm9yIHRoZSBh
dXRvbWF0aW9uCisgICAgICAvLyAgIG1ldGhvZC4KKyAgICAgIGZ1bmN0aW9uIGNyZWF0ZUdyYXBo
KG9wdGlvbnMpIHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworCisgICAgICAgIGxldCBjb3NpbmVXYXZl
ID0gbmV3IFBlcmlvZGljV2F2ZShjb250ZXh0LCB7cmVhbDogWzAsIDFdfSk7CisKKyAgICAgICAg
bGV0IHNyYyA9IG5ldyBPc2NpbGxhdG9yTm9kZSgKKyAgICAgICAgICAgIGNvbnRleHQsIHtwZXJp
b2RpY1dhdmU6IGNvc2luZVdhdmUsIGZyZXF1ZW5jeTogMH0pOworCisgICAgICAgIC8vIFRoZSBn
YWluIG5vZGUgd2hvc2UgYXV0b21hdGlvbnMgd2UncmUgdGVzdGluZy4KKyAgICAgICAgbGV0IGdh
aW4gPSBuZXcgR2Fpbk5vZGUoY29udGV4dCwge2dhaW46IDB9KTsKKworICAgICAgICBzcmMuY29u
bmVjdChnYWluKS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIGdhaW4u
Z2Fpbi5zZXRWYWx1ZUF0VGltZShvcHRpb25zLmluaXRpYWxHYWluLCAwKTsKKworICAgICAgICAv
LyBTdXNwZW5kIHJlbmRlcmluZyBzbyB0aGF0IHdlIGNhbiBjYWxsIHRoZSBhdXRvbWF0aW9uIG1l
dGhvZCBhdCB0aGUKKyAgICAgICAgLy8gcmlnaHQgdGltZS4gIHxzdGFydFRpbWV8IGlzIHRoZSB0
aW1lIGZvciB0aGUgYXV0b21hdGlvbiBtZXRob2QuIEl0CisgICAgICAgIC8vIG11c3QgYmUgc29t
ZSB0aW1lIGJlZm9yZSB0aGUgc3VzcGVuZCB0aW1lLgorICAgICAgICBsZXQgc3VzcGVuZEZyYW1l
ID0gb3B0aW9ucy5zdXNwZW5kRnJhbWU7CisgICAgICAgIGxldCBzdGFydFRpbWUgPSAoc3VzcGVu
ZEZyYW1lIC8gMikgLyBjb250ZXh0LnNhbXBsZVJhdGU7CisgICAgICAgIGNvbnRleHQuc3VzcGVu
ZChzdXNwZW5kRnJhbWUgLyBjb250ZXh0LnNhbXBsZVJhdGUpCisgICAgICAgICAgICAudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgLy8gQ2FsbCB0aGUgYXBwcm9wcmlhdGUgYXV0b21h
dGlvbiBtZXRob2Qgd2l0aCB0aGUgZGVzaXJlZAorICAgICAgICAgICAgICAvLyBhdXRvbWF0aW9u
IHZhbHVlLCB0aW1lLCBhbmQgYW55IG90aGVyIGFyZ3VtZW50cyBuZWVkZWQuCisgICAgICAgICAg
ICAgIGdhaW4uZ2FpbltvcHRpb25zLm1ldGhvZF0oCisgICAgICAgICAgICAgICAgICAuLi5bb3B0
aW9ucy5hcmcwLCBzdGFydFRpbWUsIG9wdGlvbnMubW9yZUFyZ3NdKTsKKyAgICAgICAgICAgIH0p
CisgICAgICAgICAgICAudGhlbihjb250ZXh0LnJlc3VtZS5iaW5kKGNvbnRleHQpKTsKKworICAg
ICAgICAvLyBTdGFydCB0aGUgc291cmNlIGFuZCBiZWdpbiByZW5kZXJpbmcsIHJldHVybmluZyB0
aGUgcHJvbWlzZSBmcm9tCisgICAgICAgIC8vIHJlbmRlcmluZy4KKyAgICAgICAgc3JjLnN0YXJ0
KCk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKKyAgICAgIH0K
KworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1p
bml0aWFsLWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0vYXVkaW9wYXJhbS1pbml0aWFsLWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODBh
OTdmM2FkMmFkMmIwZmQ5NzI0ZjBiMWFiZjc4MTg2MDFmN2ExCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWluaXRpYWwtZXZlbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhci1yYW1wIiAKK1BBU1MgRXhlY3V0aW5n
ICJleHBvbmVudGlhbC1yYW1wIiAKK1BBU1MgRXhlY3V0aW5nICJkZWxheWVkLWxpbmVhci1yYW1w
IiAKK1BBU1MgRXhlY3V0aW5nICJkZWxheWVkLWV4cG9uZW50aWFsLXJhbXAiIAorUEFTUyBBdWRp
dCByZXBvcnQgCitQQVNTID4gW2xpbmVhci1yYW1wXSAgCitQQVNTICAgTGluZWFyIHJhbXAgZXF1
YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjYuMDAwM2UtOCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BB
U1MgPCBbbGluZWFyLXJhbXBdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykgCitQQVNTID4gW2V4cG9uZW50aWFsLXJhbXBdICAKK1BBU1MgICBFeHBvbmVudGlhbCBy
YW1wIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDAwMjM4NDIsInJlbGF0aXZlVGhyZXNob2xk
IjowfS4gCitQQVNTIDwgW2V4cG9uZW50aWFsLXJhbXBdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW2RlbGF5ZWQtbGluZWFyLXJhbXBdICAKK1BB
U1MgICBEZWxheWVkIGxpbmVhciByYW1wIGVxdWFscyBbMC41LDAuNSwwLjUsMC41LDAuNSwwLjUs
MC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41Li4uXSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6OS44Nzk2OGUtOCwicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbZGVsYXllZC1saW5lYXItcmFtcF0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZGVsYXllZC1l
eHBvbmVudGlhbC1yYW1wXSAgCitQQVNTICAgRGVsYXllZCBleHBvbmVudGlhbCByYW1wIGVxdWFs
cyBbMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAu
NSwwLjUsMC41Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MC4wMDAwMTM5NDgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTIDwg
W2RlbGF5ZWQtZXhwb25lbnRpYWwtcmFtcF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MSBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogNCB0YXNr
cyByYW4gc3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
QXVkaW9QYXJhbS9hdWRpb3BhcmFtLWluaXRpYWwtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1pbml0aWFsLWV2ZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmM3Mzc3M2QyYzcwMDlkMjdlYmM5OTZlNTg0M2I1YmJlZjdmM2VmZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1pbml0aWFs
LWV2ZW50Lmh0bWwKQEAgLTAsMCArMSwxNzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIEF1ZGlvUGFyYW0gSW5pdGlhbCBFdmVudHMKKyAg
ICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+Cisg
ICAgICBsZXQgc2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAgLy8gTnVtYmVyIG9mIGZyYW1lcyBp
biBhIHJlbmRlcmluZyBxdWFudHVtLgorICAgICAgbGV0IHF1YW50dW1GcmFtZXMgPSAxMjg7Cisg
ICAgICAvLyBUZXN0IGRvZXNuJ3QgbmVlZCB0byBydW4gZm9yIHZlcnkgbG9uZy4KKyAgICAgIGxl
dCByZW5kZXJEdXJhdGlvbiA9IDAuMjsKKyAgICAgIGxldCByZW5kZXJGcmFtZXMgPSByZW5kZXJE
dXJhdGlvbiAqIHNhbXBsZVJhdGU7CisgICAgICBsZXQgYXV0b21hdGlvbkVuZFRpbWUgPSAwLjE7
CisKKyAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAg
Ly8gVGhlIGZvbGxvd2luZyB0ZXN0cyBzdGFydCBhIHJhbXAgYXV0b21hdGlvbiB3aXRob3V0IGFu
IGluaXRpYWwgZXZlbnQuCisgICAgICAvLyBUaGlzIHNob3VsZCBjYXVzZSBhbiBpbml0aWFsIGV2
ZW50IHRvIGJlIGFkZGVkIGltcGxpY2l0bHkgdG8gZ2l2ZSBhCisgICAgICAvLyBzdGFydGluZyBw
b2ludC4KKyAgICAgIGF1ZGl0LmRlZmluZSgnbGluZWFyLXJhbXAnLCAodGFzaywgc2hvdWxkKSA9
PiB7CisgICAgICAgIHJ1blRlc3QoJ0xpbmVhciByYW1wJywgc2hvdWxkLCB7CisgICAgICAgICAg
YXV0b21hdGlvbkZ1bmN0aW9uOiBmdW5jdGlvbihub2RlLCB2YWx1ZSwgdGltZSkgeworICAgICAg
ICAgICAgbm9kZS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHZhbHVlLCB0aW1lKTsKKyAg
ICAgICAgICB9LAorICAgICAgICAgIHJlZmVyZW5jZUZ1bmN0aW9uOiBsaW5lYXJSYW1wLAorICAg
ICAgICAgIC8vIEV4cGVyaW1lbnRhbGx5IGRldGVybWluZWQgdGhyZXNob2xkCisgICAgICAgICAg
dGhyZXNob2xkOiB7YWJzb2x1dGVUaHJlc2hvbGQ6IDYuMDAwM2UtOH0sCisgICAgICAgICAgLy8g
VGhlIHN0YXJ0aW5nIHZhbHVlIG9mIHRoZSBnYWluIG5vZGUKKyAgICAgICAgICB2MDogMC41LAor
ICAgICAgICAgIC8vIFRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF1dG9tYXRpb24KKyAgICAgICAg
ICB2MTogMCwKKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsK
KworICAgICAgYXVkaXQuZGVmaW5lKCdleHBvbmVudGlhbC1yYW1wJywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBydW5UZXN0KCdFeHBvbmVudGlhbCByYW1wJywgc2hvdWxkLCB7CisgICAg
ICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uOiBmdW5jdGlvbihub2RlLCB2YWx1ZSwgdGltZSkgewor
ICAgICAgICAgICAgbm9kZS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodmFsdWUs
IHRpbWUpOworICAgICAgICAgIH0sCisgICAgICAgICAgcmVmZXJlbmNlRnVuY3Rpb246IGV4cG9u
ZW50aWFsUmFtcCwKKyAgICAgICAgICB0aHJlc2hvbGQ6IHthYnNvbHV0ZVRocmVzaG9sZDogMi4z
ODQyZS02fSwKKyAgICAgICAgICB2MDogMC41LAorICAgICAgICAgIHYxOiAyLAorICAgICAgICB9
KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICAvLyBTYW1lIHRl
c3RzIGFzIGFib3ZlLCBidXQgd2UgZGVsYXkgdGhlIGNhbGwgdG8gdGhlIGF1dG9tYXRpb24gZnVu
Y3Rpb24uCisgICAgICAvLyBUaGlzIGlzIHRvIHZlcmlmeSB0aGF0IHRoZSB3ZSBzdGlsbCBkbyB0
aGUgcmlnaHQgdGhpbmcgYWZ0ZXIgdGhlCisgICAgICAvLyBjb250ZXh0IGhhcyBzdGFydGVkLgor
ICAgICAgYXVkaXQuZGVmaW5lKCdkZWxheWVkLWxpbmVhci1yYW1wJywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBydW5UZXN0KCdEZWxheWVkIGxpbmVhciByYW1wJywgc2hvdWxkLCB7Cisg
ICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uOiBmdW5jdGlvbihub2RlLCB2YWx1ZSwgdGltZSkg
eworICAgICAgICAgICAgbm9kZS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHZhbHVlLCB0
aW1lKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHJlZmVyZW5jZUZ1bmN0aW9uOiBsaW5lYXJS
YW1wLAorICAgICAgICAgIC8vIEV4cGVyaW1lbnRhbGx5IGRldGVybWluZWQgdGhyZXNob2xkCisg
ICAgICAgICAgdGhyZXNob2xkOiB7YWJzb2x1dGVUaHJlc2hvbGQ6IDkuODc5NjhlLTh9LAorICAg
ICAgICAgIC8vIFRoZSBzdGFydGluZyB2YWx1ZSBvZiB0aGUgZ2FpbiBub2RlCisgICAgICAgICAg
djA6IDAuNSwKKyAgICAgICAgICAvLyBUaGUgdGFyZ2V0IHZhbHVlIG9mIHRoZSBhdXRvbWF0aW9u
CisgICAgICAgICAgdjE6IDAsCisgICAgICAgICAgZGVsYXk6IHF1YW50dW1GcmFtZXMgLyBzYW1w
bGVSYXRlCisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisK
KyAgICAgIGF1ZGl0LmRlZmluZSgnZGVsYXllZC1leHBvbmVudGlhbC1yYW1wJywgKHRhc2ssIHNo
b3VsZCkgPT4geworICAgICAgICBydW5UZXN0KCdEZWxheWVkIGV4cG9uZW50aWFsIHJhbXAnLCBz
aG91bGQsIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb246IGZ1bmN0aW9uKG5vZGUsIHZh
bHVlLCB0aW1lKSB7CisgICAgICAgICAgICBub2RlLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1
ZUF0VGltZSh2YWx1ZSwgdGltZSk7CisgICAgICAgICAgfSwKKyAgICAgICAgICByZWZlcmVuY2VG
dW5jdGlvbjogZXhwb25lbnRpYWxSYW1wLAorICAgICAgICAgIC8vIEV4cGVyaW1lbnRhbGx5IGRl
dGVybWluZWQgdGhyZXNob2xkCisgICAgICAgICAgdGhyZXNob2xkOiB7YWJzb2x1dGVUaHJlc2hv
bGQ6IDEuMzk0OGUtNX0sCisgICAgICAgICAgLy8gVGhlIHN0YXJ0aW5nIHZhbHVlIG9mIHRoZSBn
YWluIG5vZGUKKyAgICAgICAgICB2MDogMC41LAorICAgICAgICAgIC8vIFRoZSB0YXJnZXQgdmFs
dWUgb2YgdGhlIGF1dG9tYXRpb24KKyAgICAgICAgICB2MTogMiwKKyAgICAgICAgICBkZWxheTog
cXVhbnR1bUZyYW1lcyAvIHNhbXBsZVJhdGUKKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRv
bmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisKKyAgICAgIC8vIEdlbmVy
YXRlIHRoZSBleHBlY3RlZCB3YXZlZm9ybSBmb3IgYSBsaW5lYXIgcmFtcCBzdGFydGluZyBmcm9t
IHRoZQorICAgICAgLy8gdmFsdWUgfHYwfCwgcmFtcGluZyB0byB8djF8IGF0IHRpbWUgfGVuZFRp
bWV8LiAgVGhlIHRpbWUgb2YgfHYwfCBpcworICAgICAgLy8gYXNzdW1lZCB0byBiZSAwLiAgfG5G
cmFtZXN8IGlzIGhvdyBtYW55IGZyYW1lcyB0byBnZW5lcmF0ZS4KKyAgICAgIGZ1bmN0aW9uIGxp
bmVhclJhbXAodjAsIHYxLCBzdGFydFRpbWUsIGVuZFRpbWUsIG5GcmFtZXMpIHsKKyAgICAgICAg
bGV0IGV4cGVjdGVkID0KKyAgICAgICAgICAgIGNyZWF0ZUxpbmVhclJhbXBBcnJheShzdGFydFRp
bWUsIGVuZFRpbWUsIHYwLCB2MSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBwcmVGaWxsZXIg
PSBuZXcgQXJyYXkoTWF0aC5mbG9vcihzdGFydFRpbWUgKiBzYW1wbGVSYXRlKSk7CisgICAgICAg
IGxldCBwb3N0RmlsbGVyID0gbmV3IEFycmF5KG5GcmFtZXMgLSBNYXRoLmNlaWwoZW5kVGltZSAq
IHNhbXBsZVJhdGUpKTsKKyAgICAgICAgcHJlRmlsbGVyLmZpbGwodjApOworICAgICAgICByZXR1
cm4gcHJlRmlsbGVyLmNvbmNhdChleHBlY3RlZC5jb25jYXQocG9zdEZpbGxlci5maWxsKHYxKSkp
OworICAgICAgfQorCisgICAgICAvLyBHZW5lcmF0ZSB0aGUgZXhwZWN0ZWQgd2F2ZWZvcm0gZm9y
IGFuIGV4cG9uZW50aWFsIHJhbXAgc3RhcnRpbmcgZnJvbQorICAgICAgLy8gdGhlIHZhbHVlIHx2
MHwsIHJhbXBpbmcgdG8gfHYxfCBhdCB0aW1lIHxlbmRUaW1lfC4gIFRoZSB0aW1lIG9mIHx2MHwg
aXMKKyAgICAgIC8vIGFzc3VtZWQgdG8gYmUgMC4gIHxuRnJhbWVzfCBpcyBob3cgbWFueSBmcmFt
ZXMgdG8gZ2VuZXJhdGUuCisgICAgICBmdW5jdGlvbiBleHBvbmVudGlhbFJhbXAodjAsIHYxLCBz
dGFydFRpbWUsIGVuZFRpbWUsIG5GcmFtZXMpIHsKKyAgICAgICAgbGV0IGV4cGVjdGVkID0KKyAg
ICAgICAgICAgIGNyZWF0ZUV4cG9uZW50aWFsUmFtcEFycmF5KHN0YXJ0VGltZSwgZW5kVGltZSwg
djAsIHYxLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgbGV0IHByZUZpbGxlciA9IG5ldyBBcnJheShN
YXRoLmZsb29yKHN0YXJ0VGltZSAqIHNhbXBsZVJhdGUpKTsKKyAgICAgICAgcHJlRmlsbGVyLmZp
bGwodjApOworICAgICAgICBsZXQgcG9zdEZpbGxlciA9IG5ldyBBcnJheShuRnJhbWVzIC0gTWF0
aC5jZWlsKGVuZFRpbWUgKiBzYW1wbGVSYXRlKSk7CisgICAgICAgIHJldHVybiBwcmVGaWxsZXIu
Y29uY2F0KGV4cGVjdGVkLmNvbmNhdChwb3N0RmlsbGVyLmZpbGwodjEpKSk7CisgICAgICB9CisK
KyAgICAgIC8vIFJ1biBhbiBhdXRvbWF0aW9uIHRlc3QuIHxtZXNzYWdlfCBpcyB0aGUgbWVzc2Fn
ZSB0byB1c2UgZm9yIHByaW50aW5nCisgICAgICAvLyB0aGUgcmVzdWx0cy4gfG9wdGlvbnN8IGlz
IGEgcHJvcGVydHkgYmFnIGNvbnRhaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24KKyAgICAgIC8vIG9m
IHRoZSB0ZXN0IGluY2x1ZGluZyB0aGUgZm9sbG93aW5nOgorICAgICAgLy8KKyAgICAgIC8vIGF1
dG9tYXRpb25GdW5jdGlvbiAtIGF1dG9tYXRpb24gZnVuY3Rpb24gdG8gdXNlLAorICAgICAgLy8g
cmVmZXJlbmNlRnVuY3Rpb24gIC0gZnVuY3Rpb24gZ2VuZXJhdGluZyB0aGUgZXhwZWN0ZWQgcmVz
dWx0CisgICAgICAvLyB0aHJlc2hvbGQgICAgICAgICAgLSBjb21wYXJpc29uIHRocmVzaG9sZAor
ICAgICAgLy8gdjAgICAgICAgICAgICAgICAgIC0gc3RhcnRpbmcgdmFsdWUKKyAgICAgIC8vIHYx
ICAgICAgICAgICAgICAgICAtIGVuZCB2YWx1ZSBmb3IgYXV0b21hdGlvbgorICAgICAgZnVuY3Rp
b24gcnVuVGVzdChtZXNzYWdlLCBzaG91bGQsIG9wdGlvbnMpIHsKKyAgICAgICAgbGV0IGF1dG9t
YXRpb25GdW5jdGlvbiA9IG9wdGlvbnMuYXV0b21hdGlvbkZ1bmN0aW9uOworICAgICAgICBsZXQg
cmVmZXJlbmNlRnVuY3Rpb24gPSBvcHRpb25zLnJlZmVyZW5jZUZ1bmN0aW9uOworICAgICAgICBs
ZXQgdGhyZXNob2xkID0gb3B0aW9ucy50aHJlc2hvbGQ7CisgICAgICAgIGxldCB2MCA9IG9wdGlv
bnMudjA7CisgICAgICAgIGxldCB2MSA9IG9wdGlvbnMudjE7CisgICAgICAgIGxldCBkZWxheSA9
IG9wdGlvbnMuZGVsYXk7CisKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworCisgICAgICAgIC8vIEEgY29u
c3RhbnQgc291cmNlIG9mIGFtcGxpdHVkZSAxLgorICAgICAgICBsZXQgc291cmNlID0gY29udGV4
dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNv
bnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7
CisKKyAgICAgICAgLy8gQXV0b21hdGlvbiBpcyBhcHBsaWVkIHRvIGEgZ2FpbiBub2RlLiAgU2V0
IHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZQorICAgICAgICAvLyBnYWluIGluIHRoZSBjb25zdHJ1
Y3RvcjsgdXNpbmcgdGhlIHZhbHVlIHNldHRlciBkb2VzIGFuIGltcGxpY2l0CisgICAgICAgIC8v
IHNldFZhbHVlQXRUaW1lIHdoaWNoIHNldHMgYW4gaW5pdGlhbCBldmVudC4gIFRoaXMgZGVmZWF0
cyB0aGUgcHVycG9zZQorICAgICAgICAvLyBvZiB0aGUgdGVzdC4KKyAgICAgICAgbGV0IGdhaW4g
PSBuZXcgR2Fpbk5vZGUoY29udGV4dCwge2dhaW46IHYwfSk7CisKKyAgICAgICAgLy8gRGVsYXkg
c3RhcnQgb2YgYXV0b21hdGlvbiwgaWYgcmVxdWVzdGVkCisgICAgICAgIGlmIChkZWxheSkgewor
ICAgICAgICAgIGNvbnRleHQuc3VzcGVuZChvcHRpb25zLmRlbGF5KS50aGVuKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uKGdhaW4sIHYxLCBhdXRvbWF0aW9uRW5k
VGltZSk7CisgICAgICAgICAgICBjb250ZXh0LnJlc3VtZSgpOworICAgICAgICAgIH0pOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbihnYWluLCB2MSwgYXV0
b21hdGlvbkVuZFRpbWUpOworICAgICAgICB9CisKKyAgICAgICAgc291cmNlLmNvbm5lY3QoZ2Fp
bik7CisgICAgICAgIGdhaW4uY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAg
ICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmlu
ZygpLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgbGV0IHJlc3VsdCA9
IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICBsZXQgZXhwZWN0ZWQg
PSByZWZlcmVuY2VGdW5jdGlvbigKKyAgICAgICAgICAgICAgdjAsIHYxLCBkZWxheSA/IGRlbGF5
IDogMCwgYXV0b21hdGlvbkVuZFRpbWUsIHJlbmRlckZyYW1lcyk7CisgICAgICAgICAgc2hvdWxk
KHJlc3VsdCwgbWVzc2FnZSkuYmVDbG9zZVRvQXJyYXkoZXhwZWN0ZWQsIHRocmVzaG9sZCk7Cisg
ICAgICAgIH0pOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tay1y
YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9w
YXJhbS1rLXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NThmYTAwM2I2ODhhYWI4ODky
ZGQ4NjQ0OGYzZDMxYjc1OWM2YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tay1yYXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMyIEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0
aW5nICJ2YWxpZGF0ZSIgCitQQVNTIEV4ZWN1dGluZyAicGxheWJhY2tyYXRlK2RldHVuZSIgCitQ
QVNTIEV4ZWN1dGluZyAicGFubmVyLWstcmF0ZSIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1Mg
PiBbdmFsaWRhdGVdIFZhbGlkYXRlIHRlc3QgcGFyYW1ldGVycyAKK1BBU1MgICBldmVudFRpbWUg
aXMgbGVzcyB0aGFuIDAuMDQyNjY2NjY2NjY2NjY2NjY1LiAKK1BBU1MgPCBbdmFsaWRhdGVdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW3BsYXli
YWNrcmF0ZStkZXR1bmVdIFRlc3Qgay1yYXRlIEF1ZGlvQnVmZmVyU291cmNlTm9kZSBBdWRpb1Bh
cmFtcyAKK1BBU1MgICBGaW5hbCBub2RlLmRldHVuZS52YWx1ZSBpcyBlcXVhbCB0byAwLjc1LiAK
K1BBU1MgICBGaW5hbCBub2RlLnBsYXliYWNrUmF0ZS52YWx1ZSBpcyBlcXVhbCB0byAwLjUuIAor
UEFTUyA8IFtwbGF5YmFja3JhdGUrZGV0dW5lXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtwYW5uZXItay1yYXRlXSBUZXN0IGstcmF0ZSBQYW5u
ZXJOb2RlIGFuZCBBdWRpb0xpc3RlbmVyTm9kZSBBdWRpb1BhcmFtcyAKK1BBU1MgICBGaW5hbCBw
YW5uZXIub3JpZW50YXRpb25YLnZhbHVlIGlzIGVxdWFsIHRvIDIuNS4gCitQQVNTICAgRmluYWwg
cGFubmVyLm9yaWVudGF0aW9uWS52YWx1ZSBpcyBlcXVhbCB0byAyLjUuIAorUEFTUyAgIEZpbmFs
IHBhbm5lci5vcmllbnRhdGlvbloudmFsdWUgaXMgZXF1YWwgdG8gMi41LiAKK1BBU1MgICBGaW5h
bCBwYW5uZXIucG9zaXRpb25YLnZhbHVlIGlzIGVxdWFsIHRvIDExLiAKK1BBU1MgICBGaW5hbCBw
YW5uZXIucG9zaXRpb25ZLnZhbHVlIGlzIGVxdWFsIHRvIDExLiAKK1BBU1MgICBGaW5hbCBwYW5u
ZXIucG9zaXRpb25aLnZhbHVlIGlzIGVxdWFsIHRvIDExLiAKK1BBU1MgICBGaW5hbCBjb250ZXh0
Lmxpc3RlbmVyLmZvcndhcmRYLnZhbHVlIGlzIGVxdWFsIHRvIDMuIAorUEFTUyAgIEZpbmFsIGNv
bnRleHQubGlzdGVuZXIuZm9yd2FyZFkudmFsdWUgaXMgZXF1YWwgdG8gMy4gCitQQVNTICAgRmlu
YWwgY29udGV4dC5saXN0ZW5lci5mb3J3YXJkWi52YWx1ZSBpcyBlcXVhbCB0byAzLiAKK1BBU1Mg
ICBGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWC52YWx1ZSBpcyBlcXVhbCB0byAwLjUu
IAorUEFTUyAgIEZpbmFsIGNvbnRleHQubGlzdGVuZXIucG9zaXRpb25ZLnZhbHVlIGlzIGVxdWFs
IHRvIDAuNS4gCitQQVNTICAgRmluYWwgY29udGV4dC5saXN0ZW5lci5wb3NpdGlvbloudmFsdWUg
aXMgZXF1YWwgdG8gMC41LiAKK1BBU1MgICBGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnVwWC52YWx1
ZSBpcyBlcXVhbCB0byA0LiAKK1BBU1MgICBGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnVwWS52YWx1
ZSBpcyBlcXVhbCB0byA0LiAKK1BBU1MgICBGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnVwWi52YWx1
ZSBpcyBlcXVhbCB0byA0LiAKK1BBU1MgPCBbcGFubmVyLWstcmF0ZV0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMTUgYXNzZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIg
RklOSVNIRUQ6IDMgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1rLXJhdGUuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1rLXJhdGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOWRiZDEyMTUxMTZiNzc2YWY2Mzk5Yjc3ZDVhMWQ3NTM4ODE2ZTQxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWstcmF0
ZS5odG1sCkBAIC0wLDAgKzEsMTkzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGstcmF0ZSBBdWRpb1BhcmFtcworICAgIDwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxi
b2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IHNhbXBs
ZVJhdGUgPSA0ODAwMDsKKyAgICAgIGxldCByZW5kZXJMZW5ndGggPSAyMDQ4OworICAgICAgbGV0
IGV2ZW50RW5kVGltZSA9IDAuMDE1OworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVU
YXNrUnVubmVyKCkKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICAgIHtsYWJlbDogJ3Zh
bGlkYXRlJywgZGVzY3JpcHRpb246ICdWYWxpZGF0ZSB0ZXN0IHBhcmFtZXRlcnMnfSwKKyAgICAg
ICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIHNob3VsZChldmVudEVu
ZFRpbWUsICdldmVudFRpbWUnKQorICAgICAgICAgICAgICAgIC5iZUxlc3NUaGFuKHJlbmRlckxl
bmd0aCAvIHNhbXBsZVJhdGUpOworICAgICAgICAgICAgdGFzay5kb25lKCk7CisgICAgICAgICAg
fSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJl
bDogJ3BsYXliYWNrcmF0ZStkZXR1bmUnLAorICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUZXN0
IGstcmF0ZSBBdWRpb0J1ZmZlclNvdXJjZU5vZGUgQXVkaW9QYXJhbXMnCisgICAgICAgICAgfSwK
KyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKworICAgICAgICAgICAgbGV0IGNv
bnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJMZW5ndGgsIHNhbXBsZVJh
dGUpOworICAgICAgICAgICAgbGV0IGJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRl
eHQsIHJlbmRlckxlbmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgbm9kZSA9IG5ldyBBdWRpb0J1
ZmZlclNvdXJjZU5vZGUoY29udGV4dCwge2J1ZmZlcjogYnVmZmVyfSk7CisKKyAgICAgICAgICAg
IG5vZGUuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICAgICAgLy8gSW5p
dGlhbGl6ZSBkZXR1bmUgYW5kIHBsYXliYWNrUmF0ZSB0byBzb21lIG5vbi16ZXJvIHZhbHVlCisg
ICAgICAgICAgICAvLyAoYmVjYXVzZSB3ZSdyZSB1c2luZyBleHBvbmVudGlhbCByYW1wcy4gIFRo
ZW4gYWRkIGV4cG9uZW50aWFsCisgICAgICAgICAgICAvLyByYW1wIHRvIHNvbWUgbm9uLXplcm8g
ZW5kIHZhbHVlLiAgVGhlIGFjdHVhbCB2YWx1ZXMgZG9uJ3QgbWF0dGVyCisgICAgICAgICAgICAv
LyBhcyBsb25nIGFzIHRoZXkncmUgc3RyaWN0bHkgcG9zaXRpdmUuCisgICAgICAgICAgICBub2Rl
LmRldHVuZS5zZXRWYWx1ZUF0VGltZSgwLjEyNSwgMCk7CisgICAgICAgICAgICBub2RlLnBsYXli
YWNrUmF0ZS5zZXRWYWx1ZUF0VGltZSgxLCAwKTsKKworICAgICAgICAgICAgbm9kZS5kZXR1bmUu
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgwLjc1LCAwLjAxNSk7CisgICAgICAgICAgICBu
b2RlLnBsYXliYWNrUmF0ZS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuNSwgMC4wMTUp
OworCisgICAgICAgICAgICBub2RlLnN0YXJ0KCk7CisKKyAgICAgICAgICAgIGNvbnRleHQuc3Rh
cnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgLy8gVGhlIGZpbmFsIHZhbHVlcyBmb3IgZWFjaCBhdHRyaWJ1dGUgc2hvdWxk
IGJlIHRoZSBleHBlY3RlZAorICAgICAgICAgICAgICAgICAgLy8gZmluYWwgdmFsdWUuCisgICAg
ICAgICAgICAgICAgICBzaG91bGQobm9kZS5kZXR1bmUudmFsdWUsICdGaW5hbCBub2RlLmRldHVu
ZS52YWx1ZScpCisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygwLjc1KTsKKyAgICAg
ICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICBub2RlLnBsYXliYWNr
UmF0ZS52YWx1ZSwgJ0ZpbmFsIG5vZGUucGxheWJhY2tSYXRlLnZhbHVlJykKKyAgICAgICAgICAg
ICAgICAgICAgICAuYmVFcXVhbFRvKDAuNSk7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAg
ICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAg
ICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3Bhbm5l
ci1rLXJhdGUnLAorICAgICAgICAgICAgZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgJ1Rl
c3Qgay1yYXRlIFBhbm5lck5vZGUgYW5kIEF1ZGlvTGlzdGVuZXJOb2RlIEF1ZGlvUGFyYW1zJwor
ICAgICAgICAgIH0sCisgICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7CisKKyAgICAg
ICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyTGVu
Z3RoLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIGxldCBidWZmZXIgPSBjcmVhdGVDb25zdGFu
dEJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGgsIDEpOworICAgICAgICAgICAgbGV0IHNvdXJj
ZSA9IG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29udGV4dCwge2J1ZmZlcjogYnVmZmVyfSk7
CisKKyAgICAgICAgICAgIGxldCBwYW5uZXIgPSBuZXcgUGFubmVyTm9kZShjb250ZXh0LCB7cGFu
bmluZ01vZGVsOiAnSFJURid9KTsKKworICAgICAgICAgICAgc291cmNlLmNvbm5lY3QocGFubmVy
KS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgICAgICAvLyBJbml0aWFs
aXplIHRoZSBrLXJhdGUgcGFyYW1ldGVycyB0byBzb21lIHBvc2l0aXZlIHZhbHVlLiAgVGhlbgor
ICAgICAgICAgICAgLy8gYWRkIGV4cG9uZW50aWFsIHJhbXAgdG8gc29tZSBub24temVybyBlbmQg
dmFsdWUuICBUaGUgYWN0dWFsCisgICAgICAgICAgICAvLyB2YWx1ZXMgZG9uJ3QgbWF0dGVyIGFz
IGxvbmcgYXMgdGhleSdyZSBzdHJpY3RseSBwb3NpdGl2ZS4KKyAgICAgICAgICAgIHBhbm5lci5v
cmllbnRhdGlvblguc2V0VmFsdWVBdFRpbWUoMSwgMCk7CisgICAgICAgICAgICBwYW5uZXIub3Jp
ZW50YXRpb25ZLnNldFZhbHVlQXRUaW1lKDEsIDApOworICAgICAgICAgICAgcGFubmVyLm9yaWVu
dGF0aW9uWi5zZXRWYWx1ZUF0VGltZSgxLCAwKTsKKworICAgICAgICAgICAgcGFubmVyLnBvc2l0
aW9uWC5zZXRWYWx1ZUF0VGltZSg1LCAwKTsKKyAgICAgICAgICAgIHBhbm5lci5wb3NpdGlvblku
c2V0VmFsdWVBdFRpbWUoNSwgMCk7CisgICAgICAgICAgICBwYW5uZXIucG9zaXRpb25aLnNldFZh
bHVlQXRUaW1lKDUsIDApOworCisgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLmZvcndhcmRY
LnNldFZhbHVlQXRUaW1lKDEsIDApOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5mb3J3
YXJkWS5zZXRWYWx1ZUF0VGltZSgxLCAwKTsKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIu
Zm9yd2FyZFouc2V0VmFsdWVBdFRpbWUoMSwgMCk7CisKKyAgICAgICAgICAgIGNvbnRleHQubGlz
dGVuZXIucG9zaXRpb25YLnNldFZhbHVlQXRUaW1lKC41LCAwKTsKKyAgICAgICAgICAgIGNvbnRl
eHQubGlzdGVuZXIucG9zaXRpb25ZLnNldFZhbHVlQXRUaW1lKC41LCAwKTsKKyAgICAgICAgICAg
IGNvbnRleHQubGlzdGVuZXIucG9zaXRpb25aLnNldFZhbHVlQXRUaW1lKC41LCAwKTsKKworICAg
ICAgICAgICAgY29udGV4dC5saXN0ZW5lci51cFguc2V0VmFsdWVBdFRpbWUoMSwgMCk7CisgICAg
ICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLnVwWS5zZXRWYWx1ZUF0VGltZSgxLCAwKTsKKyAgICAg
ICAgICAgIGNvbnRleHQubGlzdGVuZXIudXBaLnNldFZhbHVlQXRUaW1lKDEsIDApOworCisgICAg
ICAgICAgICBwYW5uZXIub3JpZW50YXRpb25YLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUo
Mi41LCAwLjAxNSk7CisgICAgICAgICAgICBwYW5uZXIub3JpZW50YXRpb25ZLmV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWUoMi41LCAwLjAxNSk7CisgICAgICAgICAgICBwYW5uZXIub3JpZW50
YXRpb25aLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMi41LCAwLjAxNSk7CisKKyAgICAg
ICAgICAgIHBhbm5lci5wb3NpdGlvblguZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgxMSwg
MC4wMTUpOworICAgICAgICAgICAgcGFubmVyLnBvc2l0aW9uWS5leHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lKDExLCAwLjAxNSk7CisgICAgICAgICAgICBwYW5uZXIucG9zaXRpb25aLmV4cG9u
ZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMTEsIDAuMDE1KTsKKworICAgICAgICAgICAgY29udGV4
dC5saXN0ZW5lci5mb3J3YXJkWC5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDMsIDAuMDE1
KTsKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIuZm9yd2FyZFkuZXhwb25lbnRpYWxSYW1w
VG9WYWx1ZUF0VGltZSgzLCAwLjAxNSk7CisgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLmZv
cndhcmRaLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMywgMC4wMTUpOworCisgICAgICAg
ICAgICBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWC5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lKDAuNSwgMC4wMTUpOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5wb3NpdGlvblku
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgwLjUsIDAuMDE1KTsKKyAgICAgICAgICAgIGNv
bnRleHQubGlzdGVuZXIucG9zaXRpb25aLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC41
LCAwLjAxNSk7CisKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIudXBYLmV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWUoNCwgMC4wMTUpOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5l
ci51cFkuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSg0LCAwLjAxNSk7CisgICAgICAgICAg
ICBjb250ZXh0Lmxpc3RlbmVyLnVwWi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDQsIDAu
MDE1KTsKKworICAgICAgICAgICAgc291cmNlLnN0YXJ0KCk7CisKKyAgICAgICAgICAgIGNvbnRl
eHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgLy8gVGhlIGZpbmFsIHZhbHVlcyBmb3IgZWFjaCBhdHRyaWJ1dGUg
c2hvdWxkIGJlIHRoZSBleHBlY3RlZAorICAgICAgICAgICAgICAgICAgLy8gZmluYWwgdmFsdWUu
CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICAgICAgcGFubmVy
Lm9yaWVudGF0aW9uWC52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAnRmluYWwgcGFubmVy
Lm9yaWVudGF0aW9uWC52YWx1ZScpCisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygy
LjUpOworICAgICAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAgIHBh
bm5lci5vcmllbnRhdGlvblkudmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgJ0ZpbmFsIHBh
bm5lci5vcmllbnRhdGlvblkudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFs
VG8oMi41KTsKKyAgICAgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAg
ICBwYW5uZXIub3JpZW50YXRpb25aLnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICdGaW5h
bCBwYW5uZXIub3JpZW50YXRpb25aLnZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAuYmVF
cXVhbFRvKDIuNSk7CisgICAgICAgICAgICAgICAgICBzaG91bGQocGFubmVyLnBvc2l0aW9uWC52
YWx1ZSwgJ0ZpbmFsIHBhbm5lci5wb3NpdGlvblgudmFsdWUnKQorICAgICAgICAgICAgICAgICAg
ICAgIC5iZUVxdWFsVG8oMTEpOworICAgICAgICAgICAgICAgICAgc2hvdWxkKHBhbm5lci5wb3Np
dGlvblkudmFsdWUsICdGaW5hbCBwYW5uZXIucG9zaXRpb25ZLnZhbHVlJykKKyAgICAgICAgICAg
ICAgICAgICAgICAuYmVFcXVhbFRvKDExKTsKKyAgICAgICAgICAgICAgICAgIHNob3VsZChwYW5u
ZXIucG9zaXRpb25aLnZhbHVlLCAnRmluYWwgcGFubmVyLnBvc2l0aW9uWi52YWx1ZScpCisgICAg
ICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygxMSk7CisKKyAgICAgICAgICAgICAgICAgIHNo
b3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLmZvcndhcmRYLnZh
bHVlLAorICAgICAgICAgICAgICAgICAgICAgICdGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLmZvcndh
cmRYLnZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKDMpOworICAgICAg
ICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubGlzdGVu
ZXIuZm9yd2FyZFkudmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgJ0ZpbmFsIGNvbnRleHQu
bGlzdGVuZXIuZm9yd2FyZFkudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFs
VG8oMyk7CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dC5saXN0ZW5lci5mb3J3YXJkWi52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAn
RmluYWwgY29udGV4dC5saXN0ZW5lci5mb3J3YXJkWi52YWx1ZScpCisgICAgICAgICAgICAgICAg
ICAgICAgLmJlRXF1YWxUbygzKTsKKyAgICAgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAg
ICAgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWC52YWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAnRmluYWwgY29udGV4dC5saXN0ZW5lci5wb3NpdGlvblgudmFsdWUnKQor
ICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oMC41KTsKKyAgICAgICAgICAgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9u
WS52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAnRmluYWwgY29udGV4dC5saXN0ZW5lci5w
b3NpdGlvblkudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oMC41KTsK
KyAgICAgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0
Lmxpc3RlbmVyLnBvc2l0aW9uWi52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAnRmluYWwg
Y29udGV4dC5saXN0ZW5lci5wb3NpdGlvbloudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAg
IC5iZUVxdWFsVG8oMC41KTsKKyAgICAgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAg
ICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLnVwWC52YWx1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAnRmluYWwgY29udGV4dC5saXN0ZW5lci51cFgudmFsdWUnKQorICAgICAgICAgICAgICAg
ICAgICAgIC5iZUVxdWFsVG8oNCk7CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAg
ICAgICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci51cFkudmFsdWUsCisgICAgICAgICAgICAg
ICAgICAgICAgJ0ZpbmFsIGNvbnRleHQubGlzdGVuZXIudXBZLnZhbHVlJykKKyAgICAgICAgICAg
ICAgICAgICAgICAuYmVFcXVhbFRvKDQpOworICAgICAgICAgICAgICAgICAgc2hvdWxkKAorICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIudXBaLnZhbHVlLAorICAgICAgICAg
ICAgICAgICAgICAgICdGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnVwWi52YWx1ZScpCisgICAgICAg
ICAgICAgICAgICAgICAgLmJlRXF1YWxUbyg0KTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAg
ICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKwor
ICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1saW5l
YXJSYW1wLXZhbHVlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbGluZWFyUmFtcC12YWx1ZS1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAzNzk5YzY1NWYyYzM4MWFhNjg5M2JlOGE1ZjlkNmZlMDM0Y2Ix
Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tbGluZWFyUmFtcC12YWx1ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNzIgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVj
dXRpbmcgInByb3BhZ2F0ZSIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbcHJvcGFnYXRl
XSAgCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDEyNyBpcyBlcXVhbCB0byAwLjAz
MTAwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDI1NSBpcyBlcXVh
bCB0byAwLjA2MjI1NTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDM4
MyBpcyBlcXVhbCB0byAwLjA5MzUwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0
IGZyYW1lIDUxMSBpcyBlcXVhbCB0byAwLjEyNDc1NTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWlu
LnZhbHVlIGF0IGZyYW1lIDYzOSBpcyBlcXVhbCB0byAwLjE1NjAwNTg1OTM3NS4gCitQQVNTICAg
Z2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDc2NyBpcyBlcXVhbCB0byAwLjE4NzI1NTg1OTM3NS4g
CitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDg5NSBpcyBlcXVhbCB0byAwLjIxODUw
NTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDEwMjMgaXMgZXF1YWwg
dG8gMC4yNDk3NTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAxMTUx
IGlzIGVxdWFsIHRvIDAuMjgxMDA1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQg
ZnJhbWUgMTI3OSBpcyBlcXVhbCB0byAwLjMxMjI1NTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWlu
LnZhbHVlIGF0IGZyYW1lIDE0MDcgaXMgZXF1YWwgdG8gMC4zNDM1MDU4NTkzNzUuIAorUEFTUyAg
IGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAxNTM1IGlzIGVxdWFsIHRvIDAuMzc0NzU1ODU5Mzc1
LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMTY2MyBpcyBlcXVhbCB0byAwLjQw
NjAwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDE3OTEgaXMgZXF1
YWwgdG8gMC40MzcyNTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAx
OTE5IGlzIGVxdWFsIHRvIDAuNDY4NTA1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUg
YXQgZnJhbWUgMjA0NyBpcyBlcXVhbCB0byAwLjQ5OTc1NTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5n
YWluLnZhbHVlIGF0IGZyYW1lIDIxNzUgaXMgZXF1YWwgdG8gMC41MzEwMDU4NTkzNzUuIAorUEFT
UyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAyMzAzIGlzIGVxdWFsIHRvIDAuNTYyMjU1ODU5
Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMjQzMSBpcyBlcXVhbCB0byAw
LjU5MzUwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDI1NTkgaXMg
ZXF1YWwgdG8gMC42MjQ3NTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFt
ZSAyNjg3IGlzIGVxdWFsIHRvIDAuNjU2MDA1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFs
dWUgYXQgZnJhbWUgMjgxNSBpcyBlcXVhbCB0byAwLjY4NzI1NTg1OTM3NS4gCitQQVNTICAgZ2Fp
bi5nYWluLnZhbHVlIGF0IGZyYW1lIDI5NDMgaXMgZXF1YWwgdG8gMC43MTg1MDU4NTkzNzUuIAor
UEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAzMDcxIGlzIGVxdWFsIHRvIDAuNzQ5NzU1
ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMzE5OSBpcyBlcXVhbCB0
byAwLjc4MTAwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDMzMjcg
aXMgZXF1YWwgdG8gMC44MTIyNTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBm
cmFtZSAzNDU1IGlzIGVxdWFsIHRvIDAuODQzNTA1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4u
dmFsdWUgYXQgZnJhbWUgMzU4MyBpcyBlcXVhbCB0byAwLjg3NDc1NTg1OTM3NS4gCitQQVNTICAg
Z2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDM3MTEgaXMgZXF1YWwgdG8gMC45MDYwMDU4NTkzNzUu
IAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAzODM5IGlzIGVxdWFsIHRvIDAuOTM3
MjU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMzk2NyBpcyBlcXVh
bCB0byAwLjk2ODUwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQw
OTUgaXMgZXF1YWwgdG8gMC45OTk3NTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBh
dCBmcmFtZSA0MjIzIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBm
cmFtZSA0MzUxIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFt
ZSA0NDc5IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA0
NjA3IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA0NzM1
IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA0ODYzIGlz
IGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA0OTkxIGlzIGVx
dWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1MTE5IGlzIGVxdWFs
IHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1MjQ3IGlzIGVxdWFsIHRv
IDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1Mzc1IGlzIGVxdWFsIHRvIDEu
IAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1NTAzIGlzIGVxdWFsIHRvIDEuIAor
UEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1NjMxIGlzIGVxdWFsIHRvIDEuIAorUEFT
UyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1NzU5IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAg
IGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA1ODg3IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdh
aW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA2MDE1IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4u
Z2Fpbi52YWx1ZSBhdCBmcmFtZSA2MTQzIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fp
bi52YWx1ZSBhdCBmcmFtZSA2MjcxIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52
YWx1ZSBhdCBmcmFtZSA2Mzk5IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1
ZSBhdCBmcmFtZSA2NTI3IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBh
dCBmcmFtZSA2NjU1IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBm
cmFtZSA2NzgzIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFt
ZSA2OTExIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3
MDM5IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3MTY3
IGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3Mjk1IGlz
IGVxdWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3NDIzIGlzIGVx
dWFsIHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3NTUxIGlzIGVxdWFs
IHRvIDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3Njc5IGlzIGVxdWFsIHRv
IDEuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3ODA3IGlzIGVxdWFsIHRvIDEu
IAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA3OTM1IGlzIGVxdWFsIHRvIDEuIAor
UEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSA4MDYzIGlzIGVxdWFsIHRvIDEuIAorUEFT
UyAgIGxpbmVhclJhbXBUb1ZhbHVlIHByb3Blcmx5IHNldCB0aGUgQXVkaW9QYXJhbSB2YWx1ZSAK
K1BBU1MgPCBbcHJvcGFnYXRlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA2NCBhc3Nl
cnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4g
c3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLWxpbmVhclJhbXAtdmFsdWUtYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbGluZWFyUmFtcC12YWx1ZS1hdHRy
aWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTAxOWJhZWFmZmEyYzFkMGMzNTZkYjAwMTEyZWRlMWM2
NjRiMTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJh
bS9hdWRpb3BhcmFtLWxpbmVhclJhbXAtdmFsdWUtYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSw5
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAg
ICAgVGVzdCBsaW5lYXJSYW1wVG9WYWx1ZSBVcGRhdGVzIHRoZSBQYXJhbSBWYWx1ZQorICAgIDwv
dGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IHJl
bmRlclF1YW50dW1TaXplID0gMTI4OworICAgICAgLy8gU2hvdWxkIGJlIGEgcG93ZXIgb2YgdHdv
IHRvIGdldCByaWQgb2Ygcm91bmRpbmcgZXJyb3JzIHdoZW4gY29udmVydGluZworICAgICAgLy8g
YmV0d2VlbiB0aW1lIGFuZCBmcmFtZS4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gODE5MjsKKyAg
ICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IDE7CisgICAgICAvLyBFbmQgdGltZSBvZiB0aGUgbGlu
ZWFyIHJhbXAgYXV0b21hdGlvbgorICAgICAgbGV0IHJhbXBFbmRUaW1lID0gcmVuZGVyRHVyYXRp
b24gLyAyOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisK
KyAgICAgIC8vIFRlc3QgdGhhdCBsaW5lYXJSYW1wVG9WYWx1ZSBwcm9wZXJseSBzZXRzIHRoZSBB
dWRpb1BhcmFtIC52YWx1ZQorICAgICAgLy8gYXR0cmlidXRlIHdoZW4gdGhlIGxpbmVhclJhbXAg
YXV0b21hdGlvbiBpcyBydW5uaW5nLgorICAgICAgYXVkaXQuZGVmaW5lKCdwcm9wYWdhdGUnLCAo
dGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5l
dyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2Ft
cGxlUmF0ZSk7CisKKyAgICAgICAgLy8gQ3JlYXRlIGEgY29uc3RhbnQgc291cmNlLgorICAgICAg
ICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc291
cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAg
ICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgLy8gVGhlIGdhaW4gbm9kZSB0byBiZSBh
dXRvbWF0ZWQgZm9yIHRlc3RpbmcuCisgICAgICAgIGxldCBnYWluID0gY29udGV4dC5jcmVhdGVH
YWluKCk7CisKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAg
ICBnYWluLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoMSwgcmFtcEVuZFRpbWUpOworCisg
ICAgICAgIC8vIENvbm5lY3QgdXAgdGhlIGdyYXBoCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdh
aW4pOworICAgICAgICBnYWluLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAg
ICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworCisgICAgICAgIC8vIFRoZSBudW1iZXIgb2YgcmVuZGVy
aW5nIHF1YW50YSB0aGF0IHdpbGwgYmUgcHJvY2Vzc2VkIGluIHRoZSBjb250ZXh0LgorICAgICAg
ICAvLyBBdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggcmVuZGVyaW5nIHF1YW50dW0gKGV4Y2VwdCB0
aGUgZmlyc3QpLCB3ZQorICAgICAgICAvLyB3aWxsIGNoZWNrIHRoYXQgZ2Fpbi5nYWluLnZhbHVl
IGhhcyB0aGUgZXhwZWN0ZWQgdmFsdWUuCisgICAgICAgIGxldCByZW5kZXJMb29wcyA9CisgICAg
ICAgICAgICBNYXRoLmZsb29yKHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSAvIHJlbmRlclF1
YW50dW1TaXplKTsKKworICAgICAgICBmb3IgKGxldCBrID0gMTsgayA8IHJlbmRlckxvb3BzOyAr
K2spIHsKKyAgICAgICAgICBsZXQgdGltZSA9IGsgKiByZW5kZXJRdWFudHVtU2l6ZSAvIHNhbXBs
ZVJhdGU7CisgICAgICAgICAgY29udGV4dC5zdXNwZW5kKHRpbWUpCisgICAgICAgICAgICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IDE7CisKKyAg
ICAgICAgICAgICAgICBpZiAoY29udGV4dC5jdXJyZW50VGltZSA8PSByYW1wRW5kVGltZSkgewor
ICAgICAgICAgICAgICAgICAgLy8gVGhlIGV4cGVjdGVkIHZhbHVlIG9mIHRoZSBnYWluIGlzIHRo
ZSBsYXN0IGNvbXB1dGVkIHZhbHVlCisgICAgICAgICAgICAgICAgICAvLyBmcm9tIHRoZSBwcmV2
aW91cyByZW5kZXJpbmcgcXVhbnR1bSBiZWNhdXNlIHN1c3BlbmQoKSBzdG9wcworICAgICAgICAg
ICAgICAgICAgLy8gYXQgdGhlIGJlZ2lubmluZyBvZiBhIHJlbmRlcmluZyBxdWFudHVtLCBzbyB3
ZSBoYXZlbid0CisgICAgICAgICAgICAgICAgICAvLyBjb21wdXRlZCB0aGUgbmV3IHZhbHVlIHll
dC4KKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0KKyAgICAgICAgICAgICAgICAgICAgICAo
Y29udGV4dC5jdXJyZW50VGltZSAtIDEgLyBzYW1wbGVSYXRlKSAvIHJhbXBFbmRUaW1lOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGxldCBmcmFtZSA9IGNvbnRleHQuY3Vy
cmVudFRpbWUgKiBzYW1wbGVSYXRlIC0gMTsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0KKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkKGdhaW4uZ2Fpbi52YWx1ZSwgJ2dhaW4uZ2Fpbi52YWx1
ZSBhdCBmcmFtZSAnICsgZnJhbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRv
KGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgLnRoZW4oY29udGV4
dC5yZXN1bWUuYmluZChjb250ZXh0KSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBSb2NrIGFu
ZCByb2xsIQorICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKyAgICAgICAgY29udGV4dC5zdGFydFJl
bmRlcmluZygpCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgc2hvdWxkKHN1Y2Nlc3MsICdsaW5lYXJSYW1wVG9WYWx1ZScpCisgICAgICAgICAgICAg
ICAgICAubWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAncHJvcGVybHkgc2V0IHRoZSBB
dWRpb1BhcmFtIHZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICAnZGlkIG5vdCBwcm9wZXJs
eSBzZXQgdGhlIEF1ZGlvUGFyYW0gdmFsdWUnKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVu
KCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1uZWdhdGl2ZS1leHBvbmVudGlh
bFJhbXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLW5lZ2F0aXZlLWV4cG9uZW50aWFsUmFtcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjBkYTZiYWZmYjhhNDRhZmJjMDBmN2UzMjdlZTc2MDNlMGM2YmU0MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1uZWdhdGl2ZS1l
eHBvbmVudGlhbFJhbXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDYgQEAKKworUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgImJvdGggbmVnYXRpdmUg
dmFsdWVzIiAKK1BBU1MgRXhlY3V0aW5nICJuZWdhdGl2ZS1lbmQiIAorUEFTUyBFeGVjdXRpbmcg
InBvc2l0aXZlLWVuZCIgCitQQVNTIEV4ZWN1dGluZyAicHJvcGFnYXRlIiAKK1BBU1MgQXVkaXQg
cmVwb3J0IAorUEFTUyA+IFtib3RoIG5lZ2F0aXZlIHZhbHVlc10gIAorRkFJTCBYIE5lZ2F0aXZl
IGV4cG9uZW50aWFsIHJhbXAgZnJvbSAtMSB0byAtMiBleHBlY3RlZCB0byBiZSBlcXVhbCB0byB0
aGUgYXJyYXkgWy0xLC0xLjAwMDExNTUxMzgwMTU3NDcsLTEuMDAwMjMxMDI3NjAzMTQ5NCwtMS4w
MDAzNDY1NDE0MDQ3MjQxLC0xLjAwMDQ2MjA1NTIwNjI5ODgsLTEuMDAwNTc3NTY5MDA3ODczNSwt
MS4wMDA2OTMyMDIwMTg3Mzc4LC0xLjAwMDgwODgzNTAyOTYwMiwtMS4wMDA5MjQ0NjgwNDA0NjYz
LC0xLjAwMTA0MDEwMTA1MTMzMDYsLTEuMDAxMTU1NzM0MDYyMTk0OCwtMS4wMDEyNzEzNjcwNzMw
NTksLTEuMDAxMzg3MDAwMDgzOTIzMywtMS4wMDE1MDI2MzMwOTQ3ODc2LC0xLjAwMTYxODI2NjEw
NTY1MTksLTEuMDAxNzM0MDE4MzI1ODA1Ny4uLl0gYnV0IGRpZmZlcnMgaW4gNjAwMCBwbGFjZXM6
CisJSW5kZXgJQWN0dWFsCQkJRXhwZWN0ZWQKKwlbMF0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCS0x
LjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbMV0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCS0xLjAwMDEx
NTUxMzgwMTU3NDdlKzAKKwlbMl0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCS0xLjAwMDIzMTAyNzYw
MzE0OTRlKzAKKwlbM10JMS4wMDAwMDAwMDAwMDAwMDAwZSswCS0xLjAwMDM0NjU0MTQwNDcyNDFl
KzAKKwkuLi5hbmQgNTk5NiBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitGQUlMIDwgW2JvdGggbmVnYXRpdmUgdmFsdWVzXSAxIG91dCBvZiAxIGFzc2Vy
dGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyA+IFtuZWdhdGl2ZS1lbmRdICAKK0ZBSUwgWCBFeHBvbmVudGlhbCByYW1wIGZyb20gMiB0
byAtMTogRXhwZWN0ZWQgMiBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgNjAwMCB1bmV4cGVjdGVk
IHZhbHVlczogCisJSW5kZXgJQWN0dWFsCisJWzBdCTEKKwlbMV0JMQorCVsyXQkxCisJWzNdCTEK
KwkuLi5hbmQgNTk5NiBtb3JlIGVycm9ycy4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMIDwgW25lZ2F0aXZlLWVuZF0gMSBvdXQgb2YgMSBhc3NlcnRpb25zIHdlcmUg
ZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbcG9z
aXRpdmUtZW5kXSAgCitGQUlMIFggRXhwb25lbnRpYWwgcmFtcCBmcm9tIC0xIHRvIDE6IEV4cGVj
dGVkIC0xIGZvciBhbGwgdmFsdWVzIGJ1dCBmb3VuZCA2MDAwIHVuZXhwZWN0ZWQgdmFsdWVzOiAK
KwlJbmRleAlBY3R1YWwKKwlbMF0JMQorCVsxXQkxCisJWzJdCTEKKwlbM10JMQorCS4uLmFuZCA1
OTk2IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgPCBbcG9zaXRpdmUtZW5kXSAxIG91dCBvZiAxIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwcm9wYWdhdGVdICAK
K0ZBSUwgWCBFeHBvbmVudGlhbCByYW1wIGZyb20gLTEgdG8gMSBhZnRlciB0aGUgZW5kIG9mIHRo
ZSBsaW5lYXIgcmFtcDogRXhwZWN0ZWQgLTEgZm9yIGFsbCB2YWx1ZXMgYnV0IGZvdW5kIDE1MDAg
dW5leHBlY3RlZCB2YWx1ZXM6IAorCUluZGV4CUFjdHVhbAorCVswXQktMC45OTc5OTk5MDY1Mzk5
MTcKKwlbMV0JLTAuOTk3OTk5OTA2NTM5OTE3CisJWzJdCS0wLjk5Nzk5OTkwNjUzOTkxNworCVsz
XQktMC45OTc5OTk5MDY1Mzk5MTcKKwkuLi5hbmQgMTQ5NiBtb3JlIGVycm9ycy4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgRXhwb25lbnRpYWwgcmFtcCBhZnRl
ciBlbmQgb2YgcmFtcCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxLiAKK0ZBSUwgPCBbcHJv
cGFnYXRlXSAxIG91dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBl
eHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVE
OiA0IG91dCBvZiA0IHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJh
bS9hdWRpb3BhcmFtLW5lZ2F0aXZlLWV4cG9uZW50aWFsUmFtcC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLW5lZ2F0aXZlLWV4cG9uZW50aWFsUmFtcC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJlM2U4OWRmZjdmZmZlNjUzODI5Mzg0MzkzZjBiNDRlMDRhMDQ3YWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tbmVnYXRpdmUtZXhwb25lbnRpYWxSYW1wLmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3Qg
TmVnYXRpdmUgQXVkaW9QYXJhbS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lCisgICAgPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAg
PGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2Ft
cGxlUmF0ZSA9IDQ4MDAwOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVu
bmVyKCk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnYm90aCBuZWdhdGl2ZSB2YWx1ZXMnLCAodGFz
aywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IDAuMTI1OworCisg
ICAgICAgIC8vIENyZWF0ZSBjb250ZXh0IHdpdGggdHdvIGNoYW5uZWxzLiAgQ2hhbm5lbCAwIGNv
bnRhaW5zIHRoZQorICAgICAgICAvLyBwb3NpdGl2ZS12YWx1ZWQgZXhwb25lbnRpYWwgYW5kIGNo
YW5uZWwgMSBjb250YWlucyB0aGUKKyAgICAgICAgLy8gbmVnYXRpdmUtdmFsdWVkIGV4cG9uZW50
aWFsLiAgV2UnbGwgY29tcGFyZSB0aGUgdHdvIGNoYW5uZWxzIHRvCisgICAgICAgIC8vIHZlcmlm
eSB0aGF0IHRoZXkncmUgdGhlIHNhbWUsIGFzIHRoZXkgc2hvdWxkIGJlLgorICAgICAgICBsZXQg
Y29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJE
dXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBsZXQgc291cmNlID0g
Y29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNy
ZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBzb3VyY2UubG9vcCA9
IHRydWU7CisKKyAgICAgICAgLy8gR2FpbiBub2RlIGdwIGlzIGZvciB0aGUgcG9zaXRpdmUtdmFs
dWVkIGV4cG9uZW50aWFsIHJhbXAsIGFuZCBnbiBpcworICAgICAgICAvLyBmb3IgdGhlIG5lZ2F0
aXZlLXZhbHVlZCBleHBvbmVudGlhbCByYW1wLgorICAgICAgICBsZXQgZ3AgPSBjb250ZXh0LmNy
ZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0IGduID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAg
ICAgIGxldCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxNZXJnZXIoMik7CisKKyAgICAg
ICAgc291cmNlLmNvbm5lY3QoZ3ApLmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAgICAgc291
cmNlLmNvbm5lY3QoZ24pLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKKyAgICAgICAgbWVyZ2VyLmNv
bm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgZ3AuZ2Fpbi5zZXRWYWx1ZUF0
VGltZSgxLCAwKTsKKyAgICAgICAgZ3AuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1l
KDIsIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICBnbi5nYWluLnNldFZhbHVlQXRUaW1lKC0x
LCAwKTsKKyAgICAgICAgZ24uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKC0yLCBy
ZW5kZXJEdXJhdGlvbik7CisKKyAgICAgICAgc291cmNlLnN0YXJ0KCk7CisKKyAgICAgICAgY29u
dGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRC
dWZmZXIpIHsKKyAgICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgY2hhbm5lbHMgaGF2ZSB0aGUg
c2FtZSB2YWx1ZXMsIGV4Y2VwdCBmb3IgdGhlIHNpZ24uCisgICAgICAgICAgICAgIGxldCBleHBl
Y3RlZCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgbGV0
IGFjdHVhbCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsKKyAgICAgICAgICAgICAg
bGV0IGludmVydGVkID0gZXhwZWN0ZWQubWFwKHNhbXBsZSA9PiAtc2FtcGxlKTsKKworICAgICAg
ICAgICAgICBzaG91bGQoYWN0dWFsLCAnTmVnYXRpdmUgZXhwb25lbnRpYWwgcmFtcCBmcm9tIC0x
IHRvIC0yJykKKyAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG9BcnJheShpbnZlcnRlZCk7Cisg
ICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAg
ICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnbmVnYXRpdmUtZW5kJywgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICAvLyBQb3NpdGl2ZSBzdGFydCB2YWx1ZSBhbmQgbmVnYXRpdmUgZW5k
IHZhbHVlIHNob3VsZCBqdXN0IGRvIG5vdGhpbmcuCisgICAgICAgIGxldCByZW5kZXJEdXJhdGlv
biA9IDAuMTI1OworICAgICAgICBsZXQgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUp
OworICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAg
ICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEp
OworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgLy8gR2FpbiBub2RlIGdw
IGlzIGZvciB0aGUgcG9zaXRpdmUtdmFsdWVkIGV4cG9uZW50aWFsIHJhbXAsIGFuZCBnbiBpcwor
ICAgICAgICAvLyBmb3IgdGhlIG5lZ2F0aXZlLXZhbHVlZCBleHBvbmVudGlhbCByYW1wLgorICAg
ICAgICBsZXQgZyA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIGcuZ2Fpbi5zZXRW
YWx1ZUF0VGltZSgyLCAwKTsKKyAgICAgICAgZy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVB
dFRpbWUoLTEsIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChnKS5j
b25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNvdXJjZS5zdGFydCgpOwor
CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSByZXN1bHRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisKKyAgICAgICAgICAgICAgc2hvdWxkKGFjdHVhbCwg
J0V4cG9uZW50aWFsIHJhbXAgZnJvbSAyIHRvIC0xJykKKyAgICAgICAgICAgICAgICAgIC5iZUNv
bnN0YW50VmFsdWVPZigyKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9
PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdwb3NpdGl2
ZS1lbmQnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFBvc2l0aXZlIHN0YXJ0IHZh
bHVlIGFuZCBuZWdhdGl2ZSBlbmQgdmFsdWUgc2hvdWxkIGp1c3QgZG8gbm90aGluZy4KKyAgICAg
ICAgbGV0IHJlbmRlckR1cmF0aW9uID0gMC4xMjU7CisgICAgICAgIGxldCBjb250ZXh0ID0KKyAg
ICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2Ft
cGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNyZWF0
ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRC
dWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKworICAg
ICAgICBsZXQgZyA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIGcuZ2Fpbi5zZXRW
YWx1ZUF0VGltZSgtMSwgMCk7CisgICAgICAgIGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVl
QXRUaW1lKDEsIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChnKS5j
b25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKwor
ICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0
aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gcmVzdWx0QnVm
ZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAgICAgICAgICAgIHNob3VsZChhY3R1YWwsICdF
eHBvbmVudGlhbCByYW1wIGZyb20gLTEgdG8gMScpCisgICAgICAgICAgICAgICAgICAuYmVDb25z
dGFudFZhbHVlT2YoLTEpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+
IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Byb3BhZ2F0
ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gVGVzdCBwcm9wYWdhdGlvbiBvZiBy
YW1wIGlmIHRoZSBleHBvbmVudGlhbCByYW1wIHN0YXJ0IGFuZCBlbmQgdmFsdWVzCisgICAgICAg
IC8vIGhhdmUgb3Bwb3NpdGUgc2lnbi4KKyAgICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0gMC4x
MjU7CisgICAgICAgIGxldCBsaW5lYXJSYW1wRW5kID0gcmVuZGVyRHVyYXRpb24gLyA0OworICAg
ICAgICBsZXQgZXhwb25lbnRpYWxSYW1wRW5kID0gcmVuZGVyRHVyYXRpb24gLyAyOworCisgICAg
ICAgIGxldCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEs
IHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBz
b3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVm
ZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJj
ZS5sb29wID0gdHJ1ZTsKKworICAgICAgICBsZXQgZyA9IGNvbnRleHQuY3JlYXRlR2FpbigpOwor
CisgICAgICAgIGcuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgyLCAwKTsKKyAgICAgICAgZy5nYWluLmxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lKC0xLCBsaW5lYXJSYW1wRW5kKTsKKyAgICAgICAgZy5nYWlu
LmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMSwgZXhwb25lbnRpYWxSYW1wRW5kKTsKKwor
ICAgICAgICBzb3VyY2UuY29ubmVjdChnKS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwor
ICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5n
KCkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAg
ICAgICBsZXQgYWN0dWFsID0gcmVzdWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAg
ICAgICAgICAgIC8vIFNpbmNlIHRoZSBzdGFydCB2YWx1ZSBvZiB0aGUgZXhwb25lbnRpYWwgcmFt
cCBpcyAtMSBhbmQgdGhlIGVuZAorICAgICAgICAgICAgICAvLyB2YWx1ZSBpcyAxLCB0aGUgcmFt
cCBzaG91bGQganVzdCBwcm9wYWdhdGUgLTEgdG8gdGhlIGVuZCBvZgorICAgICAgICAgICAgICAv
LyB0aGUgZXhwb25lbnRpYWwgcmFtcCwgYW5kIHRoZW4gcHJvcGFnYXRlIHRoZSBleHBvbmVudGlh
bCByYW1wCisgICAgICAgICAgICAgIC8vIHZhbHVlICJmb3JldmVyIiBhZnRlcndhcmRzLgorICAg
ICAgICAgICAgICBjb25zdCBsaW5lYXJFbmRGcmFtZSA9IE1hdGguY2VpbChsaW5lYXJSYW1wRW5k
ICogc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICAgIGNvbnN0IGV4cG9FbmRGcmFtZSA9IE1hdGgu
Y2VpbChleHBvbmVudGlhbFJhbXBFbmQgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAgICAgICAgc2hv
dWxkKAorICAgICAgICAgICAgICAgICAgYWN0dWFsLnNsaWNlKGxpbmVhckVuZEZyYW1lLCBleHBv
RW5kRnJhbWUpLAorICAgICAgICAgICAgICAgICAgJ0V4cG9uZW50aWFsIHJhbXAgZnJvbSAtMSB0
byAxIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGxpbmVhciByYW1wJykKKyAgICAgICAgICAgICAgICAg
IC5iZUNvbnN0YW50VmFsdWVPZigtMSk7CisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAg
ICAgICAgICAgIGFjdHVhbC5zbGljZShleHBvRW5kRnJhbWUpLAorICAgICAgICAgICAgICAgICAg
J0V4cG9uZW50aWFsIHJhbXAgYWZ0ZXIgZW5kIG9mIHJhbXAnKQorICAgICAgICAgICAgICAgICAg
LmJlQ29uc3RhbnRWYWx1ZU9mKDEpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVu
KCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKyAg
ICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLW5vbWluYWwtcmFu
Z2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMmRlMjBhYWNmY2YwOWNlOWIzMDNiYWE2YjMz
NGIzYjA2OGM1MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
MjkgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRp
bmcgImluaXRpYWxpemUiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlR2FpbiIgCitQ
QVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVEZWxheSIgCitQQVNTIEV4ZWN1dGluZyAiT2Zm
bGluZSBjcmVhdGVCdWZmZXJTb3VyY2UiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRl
U3RlcmVvUGFubmVyIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUR5bmFtaWNzQ29t
cHJlc3NvciIgCitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVCaXF1YWRGaWx0ZXIiIAor
UEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlT3NjaWxsYXRvciIgCitQQVNTIEV4ZWN1dGlu
ZyAiT2ZmbGluZSBjcmVhdGVQYW5uZXIiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRl
Q29uc3RhbnRTb3VyY2UiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlQnVmZmVyIiAK
K1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUlJUkZpbHRlciIgCitQQVNTIEV4ZWN1dGlu
ZyAiT2ZmbGluZSBjcmVhdGVXYXZlU2hhcGVyIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNy
ZWF0ZUNvbnZvbHZlciIgCitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVBbmFseXNlciIg
CitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVTY3JpcHRQcm9jZXNzb3IiIAorUEFTUyBF
eGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlUGVyaW9kaWNXYXZlIiAKK1BBU1MgRXhlY3V0aW5nICJP
ZmZsaW5lIGNyZWF0ZUNoYW5uZWxTcGxpdHRlciIgCitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBj
cmVhdGVDaGFubmVsTWVyZ2VyIiAKK1BBU1MgRXhlY3V0aW5nICJPbmxpbmUgY3JlYXRlTWVkaWFF
bGVtZW50U291cmNlIiAKK1BBU1MgRXhlY3V0aW5nICJPbmxpbmUgY3JlYXRlTWVkaWFTdHJlYW1E
ZXN0aW5hdGlvbiIgCitQQVNTIEV4ZWN1dGluZyAiQXVkaW9MaXN0ZW5lciIgCitQQVNTIEV4ZWN1
dGluZyAidmVyaWZ5VGVzdHMiIAorUEFTUyBFeGVjdXRpbmcgImF1dG9tYXRpb24iIAorUEFTUyBB
dWRpdCByZXBvcnQgCitQQVNTID4gW2luaXRpYWxpemVdICAKK1BBU1MgICBDcmVhdGUgb2ZmbGlu
ZSBjb250ZXh0IGZvciB0ZXN0cyBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTICAg
Q3JlYXRlIG9ubGluZSBjb250ZXh0IGZvciB0ZXN0cyBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlv
bi4gCitQQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIg
YXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlR2Fpbl0gIAorUEFTUyAgIEdhaW5O
b2RlLmdhaW4ubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAor
UEFTUyAgIEdhaW5Ob2RlLmdhaW4ubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUy
ODg2ZSszOC4gCitQQVNTICAgR2Fpbk5vZGUuZ2Fpbi5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCitQQVNTICAgR2Fpbk5vZGUuZ2Fpbi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgR2Fpbk5vZGUuZ2Fpbi5tYXhWYWx1ZSA9IDQyIGlzIG5v
dCBlcXVhbCB0byA0Mi4gCitQQVNTICAgR2Fpbk5vZGUuZ2Fpbi5tYXhWYWx1ZSBpcyByZWFkLW9u
bHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFy
YW0ocykgb2YgR2Fpbk5vZGUgYXJlIGNvcnJlY3QgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRlR2Fp
bl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNyBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
T2ZmbGluZSBjcmVhdGVEZWxheV0gIAorUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRpbWUubWluVmFs
dWUgaXMgZXF1YWwgdG8gMC4gCitQQVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZS5tYXhWYWx1ZSBp
cyBlcXVhbCB0byAxLjUuIAorUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRpbWUubWluVmFsdWUgPSA0
MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRpbWUubWluVmFs
dWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIERlbGF5Tm9kZS5kZWxh
eVRpbWUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIERlbGF5Tm9k
ZS5kZWxheVRpbWUubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFT
UyAgIFNldCBEZWxheU5vZGUuZGVsYXlUaW1lLnZhbHVlID0gLTEgaXMgZXF1YWwgdG8gMC4gCitQ
QVNTICAgU2V0IERlbGF5Tm9kZS5kZWxheVRpbWUudmFsdWUgPSA0IGlzIGVxdWFsIHRvIDEuNS4g
CitQQVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZSB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRo
ZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIE5vbWluYWwgcmFuZ2Vz
IGZvciBBdWRpb1BhcmFtKHMpIG9mIERlbGF5Tm9kZSBhcmUgY29ycmVjdCAKK1BBU1MgPCBbT2Zm
bGluZSBjcmVhdGVEZWxheV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMTAgYXNzZXJ0
aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlQnVmZmVyU291cmNlXSAgCitQQVNTICAgQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLnBsYXliYWNrUmF0ZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40
MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnBsYXli
YWNrUmF0ZS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BB
U1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tSYXRlLm1pblZhbHVlID0gNDIgaXMg
bm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tS
YXRlLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRp
b0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tSYXRlLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFs
IHRvIDQyLiAKK1BBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tSYXRlLm1heFZh
bHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0J1ZmZlclNv
dXJjZU5vZGUuZGV0dW5lLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKK1BBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuZGV0dW5lLm1heFZhbHVlIGlzIGVx
dWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNl
Tm9kZS5kZXR1bmUubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1
ZGlvQnVmZmVyU291cmNlTm9kZS5kZXR1bmUubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFs
IHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5kZXR1bmUubWF4VmFsdWUg
PSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5k
ZXR1bmUubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIE5v
bWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIEF1ZGlvQnVmZmVyU291cmNlTm9kZSBh
cmUgY29ycmVjdCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVCdWZmZXJTb3VyY2VdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDEzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNy
ZWF0ZVN0ZXJlb1Bhbm5lcl0gIAorUEFTUyAgIFN0ZXJlb1Bhbm5lck5vZGUucGFuLm1pblZhbHVl
IGlzIGVxdWFsIHRvIC0xLiAKK1BBU1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5tYXhWYWx1ZSBp
cyBlcXVhbCB0byAxLiAKK1BBU1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5taW5WYWx1ZSA9IDQy
IGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgU3RlcmVvUGFubmVyTm9kZS5wYW4ubWluVmFs
dWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFN0ZXJlb1Bhbm5lck5v
ZGUucGFuLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBTdGVyZW9Q
YW5uZXJOb2RlLnBhbi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQ
QVNTICAgU2V0IFN0ZXJlb1Bhbm5lck5vZGUucGFuLnZhbHVlID0gLTMgaXMgZXF1YWwgdG8gLTEu
IAorUEFTUyAgIFNldCBTdGVyZW9QYW5uZXJOb2RlLnBhbi52YWx1ZSA9IDMgaXMgZXF1YWwgdG8g
MS4gCitQQVNTICAgU3RlcmVvUGFubmVyTm9kZS5wYW4gd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhp
biB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBOb21pbmFsIHJh
bmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBTdGVyZW9QYW5uZXJOb2RlIGFyZSBjb3JyZWN0IAor
UEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVN0ZXJlb1Bhbm5lcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMTAgYXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlRHluYW1pY3ND
b21wcmVzc29yXSAgCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQubWlu
VmFsdWUgaXMgZXF1YWwgdG8gLTEwMC4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS50
aHJlc2hvbGQubWF4VmFsdWUgaXMgZXF1YWwgdG8gMC4gCitQQVNTICAgRHluYW1pY3NDb21wcmVz
c29yTm9kZS50aHJlc2hvbGQubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFT
UyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLm1pblZhbHVlIGlzIHJlYWQtb25s
eSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVz
aG9sZC5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgRHluYW1pY3ND
b21wcmVzc29yTm9kZS50aHJlc2hvbGQubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRv
IHRydWUuIAorUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZC52YWx1
ZSA9IC0yMDEgaXMgZXF1YWwgdG8gLTEwMC4gCitQQVNTICAgU2V0IER5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUudGhyZXNob2xkLnZhbHVlID0gMSBpcyBlcXVhbCB0byAwLiAKK1BBU1MgICBEeW5hbWlj
c0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZCB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRoZSBu
b21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUua25lZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAwLiAKK1BBU1MgICBEeW5hbWljc0NvbXBy
ZXNzb3JOb2RlLmtuZWUubWF4VmFsdWUgaXMgZXF1YWwgdG8gNDAuIAorUEFTUyAgIER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUua25lZS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQ
QVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1pblZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUubWF4
VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUua25lZS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNT
ICAgU2V0IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZS52YWx1ZSA9IC0xIGlzIGVxdWFsIHRv
IDAuIAorUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUudmFsdWUgPSA4MSBp
cyBlcXVhbCB0byA0MC4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlIHdhcyBj
bGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4g
CitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yYXRpby5taW5WYWx1ZSBpcyBlcXVhbCB0
byAxLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1heFZhbHVlIGlzIGVx
dWFsIHRvIDIwLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1pblZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LnJhdGlvLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBE
eW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRv
IDQyLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1heFZhbHVlIGlzIHJl
YWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29y
Tm9kZS5yYXRpby52YWx1ZSA9IDEgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgU2V0IER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUucmF0aW8udmFsdWUgPSA0MSBpcyBlcXVhbCB0byAyMC4gCitQQVNTICAg
RHluYW1pY3NDb21wcmVzc29yTm9kZS5yYXRpbyB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRo
ZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJl
c3Nvck5vZGUuYXR0YWNrLm1pblZhbHVlIGlzIGVxdWFsIHRvIDAuIAorUEFTUyAgIER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUuYXR0YWNrLm1heFZhbHVlIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIER5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRv
IDQyLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay5taW5WYWx1ZSBpcyBy
ZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5hdHRhY2subWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIER5bmFt
aWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0
byB0cnVlLiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRhY2sudmFsdWUg
PSAtMSBpcyBlcXVhbCB0byAwLiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS5h
dHRhY2sudmFsdWUgPSAzIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuYXR0YWNrIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2Ug
aXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNl
Lm1pblZhbHVlIGlzIGVxdWFsIHRvIDAuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
cmVsZWFzZS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAxLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNz
b3JOb2RlLnJlbGVhc2UubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlLm1h
eFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNz
b3JOb2RlLnJlbGVhc2UubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAor
UEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJlbGVhc2UudmFsdWUgPSAtMSBpcyBl
cXVhbCB0byAwLiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlLnZh
bHVlID0gMyBpcyBlcXVhbCB0byAxLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJl
bGVhc2Ugd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVh
bCB0byB0cnVlLiAKK1BBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBE
eW5hbWljc0NvbXByZXNzb3JOb2RlIGFyZSBjb3JyZWN0IAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0
ZUR5bmFtaWNzQ29tcHJlc3Nvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNDYgYXNz
ZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlQmlxdWFkRmlsdGVyXSAgCitQQVNTICAg
QmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kubWluVmFsdWUgaXMgZXF1YWwgdG8gMC4gCitQQVNT
ICAgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kubWF4VmFsdWUgaXMgZXF1YWwgdG8gMjQwMDAu
IAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5Lm1pblZhbHVlID0gNDIgaXMgbm90
IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5jeS5taW5WYWx1
ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9k
ZS5mcmVxdWVuY3kubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEJp
cXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5Lm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0
byB0cnVlLiAKK1BBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kudmFsdWUgPSAt
MSBpcyBlcXVhbCB0byAwLiAKK1BBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3ku
dmFsdWUgPSA0ODAwMSBpcyBlcXVhbCB0byAyNDAwMC4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9k
ZS5mcmVxdWVuY3kgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBp
cyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZS5taW5WYWx1
ZSBpcyBlcXVhbCB0byAtMTUzNjAwLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZS5t
YXhWYWx1ZSBpcyBlcXVhbCB0byAxNTM2MDAuIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0
dW5lLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBCaXF1YWRGaWx0
ZXJOb2RlLmRldHVuZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQ
QVNTICAgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwg
dG8gNDIuIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLm1heFZhbHVlIGlzIHJlYWQt
b25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5kZXR1
bmUudmFsdWUgPSAtMzA3MjAxIGlzIGVxdWFsIHRvIC0xNTM2MDAuIAorUEFTUyAgIFNldCBCaXF1
YWRGaWx0ZXJOb2RlLmRldHVuZS52YWx1ZSA9IDMwNzIwMSBpcyBlcXVhbCB0byAxNTM2MDAuIAor
UEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4g
dGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQmlxdWFkRmlsdGVy
Tm9kZS5RLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BB
U1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYz
ODUyODg2ZSszOC4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5RLm1pblZhbHVlID0gNDIgaXMg
bm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWluVmFsdWUgaXMg
cmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuUS5t
YXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9k
ZS5RLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBCaXF1
YWRGaWx0ZXJOb2RlLmdhaW4ubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4
NmUrMzguIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fpbi5tYXhWYWx1ZSBpcyBlcXVhbCB0
byAxNTQxLjI3MzY4MTY0MDYyNS4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluLm1pblZh
bHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdh
aW4ubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEJpcXVh
ZEZpbHRlck5vZGUuZ2Fpbi5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNT
ICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0
byB0cnVlLiAKK1BBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5nYWluLnZhbHVlID0gMzA4My41
NDczNjMyODEyNSBpcyBlcXVhbCB0byAxNTQxLjI3MzY4MTY0MDYyNS4gCitQQVNTICAgQmlxdWFk
RmlsdGVyTm9kZS5nYWluIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFu
Z2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFy
YW0ocykgb2YgQmlxdWFkRmlsdGVyTm9kZSBhcmUgY29ycmVjdCAKK1BBU1MgPCBbT2ZmbGluZSBj
cmVhdGVCaXF1YWRGaWx0ZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMzIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZU9zY2lsbGF0b3JdICAKK1BBU1MgICBPc2Np
bGxhdG9yTm9kZS5mcmVxdWVuY3kubWluVmFsdWUgaXMgZXF1YWwgdG8gLTI0MDAwLiAKK1BBU1Mg
ICBPc2NpbGxhdG9yTm9kZS5mcmVxdWVuY3kubWF4VmFsdWUgaXMgZXF1YWwgdG8gMjQwMDAuIAor
UEFTUyAgIE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVlbmN5Lm1pblZhbHVlIGlzIHJl
YWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBPc2NpbGxhdG9yTm9kZS5mcmVxdWVu
Y3kubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIE9zY2lsbGF0b3JO
b2RlLmZyZXF1ZW5jeS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQ
QVNTICAgU2V0IE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS52YWx1ZSA9IC00ODAwMSBpcyBlcXVh
bCB0byAtMjQwMDAuIAorUEFTUyAgIFNldCBPc2NpbGxhdG9yTm9kZS5mcmVxdWVuY3kudmFsdWUg
PSA0ODAwMSBpcyBlcXVhbCB0byAyNDAwMC4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVl
bmN5IHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwg
dG8gdHJ1ZS4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZGV0dW5lLm1pblZhbHVlIGlzIGVxdWFs
IHRvIC0xNTM2MDAuIAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5tYXhWYWx1ZSBpcyBl
cXVhbCB0byAxNTM2MDAuIAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5taW5WYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZGV0dW5lLm1p
blZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBPc2NpbGxhdG9y
Tm9kZS5kZXR1bmUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIE9z
Y2lsbGF0b3JOb2RlLmRldHVuZS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCitQQVNTICAgU2V0IE9zY2lsbGF0b3JOb2RlLmRldHVuZS52YWx1ZSA9IC0zMDcyMDEgaXMg
ZXF1YWwgdG8gLTE1MzYwMC4gCitQQVNTICAgU2V0IE9zY2lsbGF0b3JOb2RlLmRldHVuZS52YWx1
ZSA9IDMwNzIwMSBpcyBlcXVhbCB0byAxNTM2MDAuIAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRl
dHVuZSB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFs
IHRvIHRydWUuIAorUEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIE9z
Y2lsbGF0b3JOb2RlIGFyZSBjb3JyZWN0IAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZU9zY2lsbGF0
b3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDE5IGFzc2VydGlvbnMpIAorUEFTUyA+
IFtPZmZsaW5lIGNyZWF0ZVBhbm5lcl0gIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25YLm1p
blZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBQYW5u
ZXJOb2RlLnBvc2l0aW9uWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWC5taW5WYWx1ZSA9IDQyIGlzIG5vdCBl
cXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblgubWluVmFsdWUgaXMgcmVh
ZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25YLm1h
eFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0
aW9uWC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgUGFu
bmVyTm9kZS5wb3NpdGlvblkubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4
NmUrMzguIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1heFZhbHVlIGlzIGVxdWFsIHRv
IDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1p
blZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0
aW9uWS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgUGFu
bmVyTm9kZS5wb3NpdGlvblkubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFT
UyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0
byB0cnVlLiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWi5taW5WYWx1ZSBpcyBlcXVhbCB0
byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblou
bWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgUGFu
bmVyTm9kZS5wb3NpdGlvbloubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFT
UyAgIFBhbm5lck5vZGUucG9zaXRpb25aLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0
byB0cnVlLiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWi5tYXhWYWx1ZSA9IDQyIGlzIG5v
dCBlcXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvbloubWF4VmFsdWUgaXMg
cmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRp
b25YLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1Mg
ICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2
NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5taW5WYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblgu
bWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5v
ZGUub3JpZW50YXRpb25YLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1Mg
ICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwg
dG8gdHJ1ZS4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblkubWluVmFsdWUgaXMgZXF1
YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIFBhbm5lck5vZGUub3JpZW50
YXRpb25ZLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFT
UyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25ZLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRv
IDQyLiAKK1BBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWS5taW5WYWx1ZSBpcyByZWFkLW9u
bHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblkubWF4
VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIFBhbm5lck5vZGUub3JpZW50
YXRpb25ZLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBQ
YW5uZXJOb2RlLm9yaWVudGF0aW9uWi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYz
ODUyODg2ZSszOC4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvbloubWF4VmFsdWUgaXMg
ZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgUGFubmVyTm9kZS5vcmll
bnRhdGlvbloubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIFBhbm5l
ck5vZGUub3JpZW50YXRpb25aLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVl
LiAKK1BBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWi5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBl
cXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvbloubWF4VmFsdWUgaXMg
cmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBB
dWRpb1BhcmFtKHMpIG9mIFBhbm5lck5vZGUgYXJlIGNvcnJlY3QgCitQQVNTIDwgW09mZmxpbmUg
Y3JlYXRlUGFubmVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzNyBhc3NlcnRpb25z
KSAKK1BBU1MgPiBbT2ZmbGluZSBjcmVhdGVDb25zdGFudFNvdXJjZV0gIAorUEFTUyAgIENvbnN0
YW50U291cmNlTm9kZS5vZmZzZXQubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1
Mjg4NmUrMzguIAorUEFTUyAgIENvbnN0YW50U291cmNlTm9kZS5vZmZzZXQubWF4VmFsdWUgaXMg
ZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQ29uc3RhbnRTb3VyY2VO
b2RlLm9mZnNldC5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQ29u
c3RhbnRTb3VyY2VOb2RlLm9mZnNldC5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8g
dHJ1ZS4gCitQQVNTICAgQ29uc3RhbnRTb3VyY2VOb2RlLm9mZnNldC5tYXhWYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQ29uc3RhbnRTb3VyY2VOb2RlLm9mZnNldC5tYXhW
YWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgTm9taW5hbCByYW5n
ZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgQ29uc3RhbnRTb3VyY2VOb2RlIGFyZSBjb3JyZWN0IAor
UEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUNvbnN0YW50U291cmNlXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCA3IGFzc2VydGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZUJ1ZmZlcl0g
IAorUEFTUyAgIEF1ZGlvQnVmZmVyIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BB
U1MgPCBbT2ZmbGluZSBjcmVhdGVCdWZmZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlSUlSRmlsdGVyXSAgCitQQVNT
ICAgSUlSRmlsdGVyTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCitQQVNTIDwg
W09mZmxpbmUgY3JlYXRlSUlSRmlsdGVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAx
IGFzc2VydGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZVdhdmVTaGFwZXJdICAKK1BBU1Mg
ICBXYXZlU2hhcGVyTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCitQQVNTIDwg
W09mZmxpbmUgY3JlYXRlV2F2ZVNoYXBlcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2ZmbGluZSBjcmVhdGVDb252b2x2ZXJdICAKK1BBU1Mg
ICBDb252b2x2ZXJOb2RlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BBU1MgPCBb
T2ZmbGluZSBjcmVhdGVDb252b2x2ZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEg
YXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlQW5hbHlzZXJdICAKK1BBU1MgICBB
bmFseXNlck5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAorUEFTUyA8IFtPZmZs
aW5lIGNyZWF0ZUFuYWx5c2VyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZVNjcmlwdFByb2Nlc3Nvcl0gIAorUEFTUyAg
IFNjcmlwdFByb2Nlc3Nvck5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAorUEFT
UyA8IFtPZmZsaW5lIGNyZWF0ZVNjcmlwdFByb2Nlc3Nvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2ZmbGluZSBjcmVhdGVQZXJpb2RpY1dh
dmVdICAKK1BBU1MgICBQZXJpb2RpY1dhdmUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVk
IAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVBlcmlvZGljV2F2ZV0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2ZmbGluZSBjcmVhdGVDaGFubmVs
U3BsaXR0ZXJdICAKK1BBU1MgICBDaGFubmVsU3BsaXR0ZXJOb2RlIGhhcyBubyBBdWRpb1BhcmFt
cyBhcyBleHBlY3RlZCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVDaGFubmVsU3BsaXR0ZXJdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxp
bmUgY3JlYXRlQ2hhbm5lbE1lcmdlcl0gIAorUEFTUyAgIENoYW5uZWxNZXJnZXJOb2RlIGhhcyBu
byBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVDaGFubmVs
TWVyZ2VyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFT
UyA+IFtPbmxpbmUgY3JlYXRlTWVkaWFFbGVtZW50U291cmNlXSAgCitQQVNTICAgTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BBU1Mg
PCBbT25saW5lIGNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZV0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT25saW5lIGNyZWF0ZU1lZGlhU3RyZWFt
RGVzdGluYXRpb25dICAKK1BBU1MgICBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIGhh
cyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BBU1MgPCBbT25saW5lIGNyZWF0ZU1lZGlh
U3RyZWFtRGVzdGluYXRpb25dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykgCitQQVNTID4gW0F1ZGlvTGlzdGVuZXJdICAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnBv
c2l0aW9uWC5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQ
QVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4
MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWluVmFs
dWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRp
b25YLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRp
b0xpc3RlbmVyLnBvc2l0aW9uWC5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQ
QVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVx
dWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25ZLm1pblZhbHVlIGlz
IGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVy
LnBvc2l0aW9uWS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAK
K1BBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblkubWluVmFsdWUgaXMgcmVh
ZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25Z
Lm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVy
LnBvc2l0aW9uWS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNT
ICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIz
NDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25aLm1heFZhbHVl
IGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVu
ZXIucG9zaXRpb25aLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBB
dWRpb0xpc3RlbmVyLnBvc2l0aW9uWi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8g
dHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWF4VmFsdWUgPSA0MiBpcyBu
b3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25aLm1heFZhbHVl
IGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLmZv
cndhcmRYLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BB
U1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRYLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIz
NDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgubWluVmFsdWUg
PSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgu
bWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlz
dGVuZXIuZm9yd2FyZFgubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAg
IEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRv
IHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFkubWluVmFsdWUgaXMgZXF1YWwg
dG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2Fy
ZFkubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAg
QXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4g
CitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5tYXhWYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5t
YXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0
ZW5lci5mb3J3YXJkWi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSsz
OC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWi5tYXhWYWx1ZSBpcyBlcXVhbCB0byAz
LjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRaLm1p
blZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLmZv
cndhcmRaLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBB
dWRpb0xpc3RlbmVyLmZvcndhcmRaLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAK
K1BBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRaLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBl
cXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5taW5WYWx1ZSBpcyBlcXVh
bCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFgu
bWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQXVk
aW9MaXN0ZW5lci51cFgubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAg
IEF1ZGlvTGlzdGVuZXIudXBYLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVl
LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0
byA0Mi4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFgubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlz
IGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1pblZhbHVlIGlzIGVx
dWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVw
WS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBB
dWRpb0xpc3RlbmVyLnVwWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNT
ICAgQXVkaW9MaXN0ZW5lci51cFkubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRy
dWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFs
IHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkg
aXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFoubWluVmFsdWUgaXMg
ZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIu
dXBaLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAg
IEF1ZGlvTGlzdGVuZXIudXBaLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BB
U1MgICBBdWRpb0xpc3RlbmVyLnVwWi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8g
dHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFoubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1
YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBaLm1heFZhbHVlIGlzIHJlYWQtb25s
eSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJh
bShzKSBvZiBBdWRpb0xpc3RlbmVyIGFyZSBjb3JyZWN0IAorUEFTUyA8IFtBdWRpb0xpc3RlbmVy
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1NSBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
dmVyaWZ5VGVzdHNdICAKK1BBU1MgICBOdW1iZXIgb2Ygbm9kZXMgbm90IHRlc3RlZCA6IDAgCitQ
QVNTIDwgW3ZlcmlmeVRlc3RzXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFthdXRvbWF0aW9uXSAgCitQQVNTICAgVGVzdCBhdXRvbWF0aW9ucyAo
Y2hlY2sgY29uc29sZSBsb2dzKSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwg
W2F1dG9tYXRpb25dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykg
CitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDI0IHRhc2tzIHJhbiBzdWNjZXNz
ZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWIyNzQ5NmQ3
MWIzOGVlMDFlOTIzNzNlMWMzODI3OTc4Y2RlYzczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UuaHRtbApA
QCAtMCwwICsxLDQ5NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAg
PHRpdGxlPgorICAgICAgVGVzdCBBdWRpb1BhcmFtIE5vbWluYWwgUmFuZ2UgVmFsdWVzCisgICAg
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICAvLyBT
b21lIGFyYml0cmFyeSBzYW1wbGUgcmF0ZSBmb3IgdGhlIG9mZmxpbmUgY29udGV4dC4KKyAgICAg
IGxldCBzYW1wbGVSYXRlID0gNDgwMDA7CisKKyAgICAgIC8vIFRoZSBhY3R1YWwgY29udGV4dHMg
dG8gdXNlLiAgR2VuZXJhbGx5IHVzZSB0aGUgb2ZmbGluZSBjb250ZXh0IGZvcgorICAgICAgLy8g
dGVzdGluZyBleGNlcHQgZm9yIHRoZSBtZWRpYSBub2RlcyB3aGljaCByZXF1aXJlIGFuIEF1ZGlv
Q29udGV4dC4KKyAgICAgIGxldCBvZmZsaW5lQ29udGV4dDsKKyAgICAgIGxldCBhdWRpb0NvbnRl
eHQ7CisKKyAgICAgIC8vIFRoZSBzZXQgb2YgYWxsIG1ldGhvZHMgdGhhdCB3ZSd2ZSB0ZXN0ZWQg
Zm9yIHZlcmlmeWluZyB0aGF0IHdlIHRlc3RlZAorICAgICAgLy8gYWxsIG9mIHRoZSBuZWNlc3Nh
cnkgb2JqZWN0cy4KKyAgICAgIGxldCB0ZXN0ZWRNZXRob2RzID0gbmV3IFNldCgpOworCisgICAg
ICAvLyBUaGUgbW9zdCBwb3NpdGl2ZSBzaW5nbGUgZmxvYXQgdmFsdWUgKHRoZSB2YWx1ZSBqdXN0
IGJlZm9yZSBpbmZpbml0eSkuCisgICAgICAvLyBCZSBjYXJlZnVsIHdoZW4gY2hhbmdpbmcgdGhp
cyB2YWx1ZSEgIEphdmFzY3JpcHQgb25seSB1c2VzIGRvdWJsZQorICAgICAgLy8gZmxvYXRzLCBz
byB0aGUgdmFsdWUgaGVyZSBzaG91bGQgYmUgdGhlIG1heCBzaW5nbGUtZmxvYXQgdmFsdWUsCisg
ICAgICAvLyBjb252ZXJ0ZWQgZGlyZWN0bHkgdG8gYSBkb3VibGUtZmxvYXQgdmFsdWUuICBUaGlz
IGFsc28gZGVwZW5kcyBvbgorICAgICAgLy8gSmF2YXNjcmlwdCByZWFkaW5nIHRoaXMgdmFsdWUg
YW5kIHByb2R1Y2luZyB0aGUgZGVzaXJlZCBkb3VibGUtZmxvYXQKKyAgICAgIC8vIHZhbHVlIGNv
cnJlY3RseS4KKyAgICAgIGxldCBtb3N0UG9zaXRpdmVGbG9hdCA9IDMuNDAyODIzNDY2Mzg1Mjg4
NmUzODsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisg
ICAgICAvLyBBcnJheSBkZXNjcmliaW5nIHRoZSB0ZXN0cyB0aGF0IHNob3VsZCBiZSBydW4uICB8
dGVzdE9mZmxpbmVDb25maWdzfCBpcworICAgICAgLy8gZm9yIHRlc3RzIHRoYXQgY2FuIHVzZSBh
biBvZmZsaW5lIGNvbnRleHQuIHx0ZXN0T25saW5lQ29uZmlnc3wgaXMgZm9yCisgICAgICAvLyB0
ZXN0cyB0aGF0IG5lZWQgdG8gdXNlIGFuIG9ubGluZSBjb250ZXh0LiAgT2ZmbGluZSBjb250ZXh0
cyBhcmUKKyAgICAgIC8vIHByZWZlcnJlZCB3aGVuIHBvc3NpYmxlLgorICAgICAgbGV0IHRlc3RP
ZmZsaW5lQ29uZmlncyA9IFsKKyAgICAgICAgeworICAgICAgICAgIC8vIFRoZSBuYW1lIG9mIHRo
ZSBtZXRob2QgdG8gY3JlYXRlIHRoZSBwYXJ0aWN1bGFyIG5vZGUgdG8gYmUgdGVzdGVkLgorICAg
ICAgICAgIGNyZWF0b3I6ICdjcmVhdGVHYWluJywKKworICAgICAgICAgIC8vIEFueSBhcmdzIHRv
IHBhc3MgdG8gdGhlIGNyZWF0b3IgZnVuY3Rpb24uCisgICAgICAgICAgYXJnczogW10sCisKKyAg
ICAgICAgICAvLyBUaGUgbWluL21heCBsaW1pdHMgZm9yIGVhY2ggQXVkaW9QYXJhbSBvZiB0aGUg
bm9kZS4gIFRoaXMgaXMgYQorICAgICAgICAgIC8vIGRpY3Rpb25hcnkgd2hvc2Uga2V5cyBhcmUK
KyAgICAgICAgICAvLyB0aGUgbmFtZXMgb2YgZWFjaCBBdWRpb1BhcmFtIGluIHRoZSBub2RlLiAg
RG9uJ3QgZGVmaW5lIHRoaXMgaWYgdGhlCisgICAgICAgICAgLy8gbm9kZSBkb2Vzbid0IGhhdmUg
YW55CisgICAgICAgICAgLy8gQXVkaW9QYXJhbSBhdHRyaWJ1dGVzLgorICAgICAgICAgIGxpbWl0
czogeworICAgICAgICAgICAgZ2FpbjogeworICAgICAgICAgICAgICAvLyBUaGUgZXhwZWN0ZWQg
bWluIGFuZCBtYXggdmFsdWVzIGZvciB0aGlzIEF1ZGlvUGFyYW0uCisgICAgICAgICAgICAgIG1p
blZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0
UG9zaXRpdmVGbG9hdAorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVEZWxheScsCisgICAgICAgICAgLy8g
SnVzdCBzcGVjaWZ5IGEgbm9uLWRlZmF1bHQgdmFsdWUgZm9yIHRoZSBtYXhpbXVtIGRlbGF5IHNv
IHdlIGNhbgorICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGUgbGltaXRzIGFyZQorICAgICAgICAg
IC8vIHNldCBjb3JyZWN0bHkuCisgICAgICAgICAgYXJnczogWzEuNV0sCisgICAgICAgICAgbGlt
aXRzOiB7ZGVsYXlUaW1lOiB7bWluVmFsdWU6IDAsIG1heFZhbHVlOiAxLjV9fQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUJ1ZmZlclNvdXJjZScsCisg
ICAgICAgICAgYXJnczogW10sCisgICAgICAgICAgbGltaXRzOiB7CisgICAgICAgICAgICBwbGF5
YmFja1JhdGU6CisgICAgICAgICAgICAgICAge21pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQs
IG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdH0sCisgICAgICAgICAgICBkZXR1bmU6IHttaW5W
YWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LCBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXR9Cisg
ICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgY3JlYXRvcjogJ2Ny
ZWF0ZVN0ZXJlb1Bhbm5lcicsCisgICAgICAgICAgYXJnczogW10sCisgICAgICAgICAgbGltaXRz
OiB7cGFuOiB7bWluVmFsdWU6IC0xLCBtYXhWYWx1ZTogMX19CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlRHluYW1pY3NDb21wcmVzc29yJywKKyAgICAg
ICAgICBhcmdzOiBbXSwKKyAgICAgICAgICAvLyBEbyBub3Qgc2V0IGxpbWl0cyBmb3IgcmVkdWN0
aW9uOyAgaXQncyBjdXJyZW50bHkgYW4gQXVkaW9QYXJhbSBidXQKKyAgICAgICAgICAvLyBzaG91
bGQgYmUgYSBmbG9hdC4KKyAgICAgICAgICAvLyBTbyBsZXQgdGhlIHRlc3QgZmFpbCBmb3IgcmVk
dWN0aW9uLiAgV2hlbiByZWR1Y3Rpb24gaXMgY2hhbmdlZCwKKyAgICAgICAgICAvLyB0aGlzIHRl
c3Qgd2lsbCB0aGVuCisgICAgICAgICAgLy8gY29ycmVjdGx5IHBhc3MuCisgICAgICAgICAgbGlt
aXRzOiB7CisgICAgICAgICAgICB0aHJlc2hvbGQ6IHttaW5WYWx1ZTogLTEwMCwgbWF4VmFsdWU6
IDB9LAorICAgICAgICAgICAga25lZToge21pblZhbHVlOiAwLCBtYXhWYWx1ZTogNDB9LAorICAg
ICAgICAgICAgcmF0aW86IHttaW5WYWx1ZTogMSwgbWF4VmFsdWU6IDIwfSwKKyAgICAgICAgICAg
IGF0dGFjazoge21pblZhbHVlOiAwLCBtYXhWYWx1ZTogMX0sCisgICAgICAgICAgICByZWxlYXNl
OiB7bWluVmFsdWU6IDAsIG1heFZhbHVlOiAxfQorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVCaXF1YWRGaWx0ZXInLAorICAgICAg
ICAgIGFyZ3M6IFtdLAorICAgICAgICAgIGxpbWl0czogeworICAgICAgICAgICAgZ2Fpbjogewor
ICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAg
ICAvLyBUaGlzIGNvbXBsaWNhdGVkIGV4cHJlc3Npb24gaXMgdXNlZCB0byBnZXQgYWxsIHRoZSBh
cml0aG1ldGljCisgICAgICAgICAgICAgIC8vIHRvIHJvdW5kIHRvIHRoZSBjb3JyZWN0IHNpbmds
ZS1wcmVjaXNpb24gZmxvYXQgdmFsdWUgZm9yIHRoZQorICAgICAgICAgICAgICAvLyBkZXNpcmVk
IG1heC4gIFRoaXMgYWxzbyBhc3N1bWVzIHRoYXQgdGhlIGltcGxpY2F0aW9uIGNvbXB1dGVzCisg
ICAgICAgICAgICAgIC8vIHRoZSBsaW1pdCBhcyA0MCAqIGxvZzEwZihzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bWF4KCkpLgorICAgICAgICAgICAgICBtYXhWYWx1ZToKKyAgICAgICAgICAg
ICAgICAgIE1hdGguZnJvdW5kKDQwICogTWF0aC5mcm91bmQoTWF0aC5sb2cxMChtb3N0UG9zaXRp
dmVGbG9hdCkpKQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFE6IHttaW5WYWx1ZTogLW1v
c3RQb3NpdGl2ZUZsb2F0LCBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXR9LAorICAgICAgICAg
ICAgZnJlcXVlbmN5OiB7bWluVmFsdWU6IDAsIG1heFZhbHVlOiBzYW1wbGVSYXRlIC8gMn0sCisg
ICAgICAgICAgICBkZXR1bmU6IHsKKyAgICAgICAgICAgICAgbWluVmFsdWU6IC1NYXRoLmZyb3Vu
ZCgxMjAwICogTWF0aC5sb2cyKG1vc3RQb3NpdGl2ZUZsb2F0KSksCisgICAgICAgICAgICAgIG1h
eFZhbHVlOiBNYXRoLmZyb3VuZCgxMjAwICogTWF0aC5sb2cyKG1vc3RQb3NpdGl2ZUZsb2F0KSkK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICBjcmVhdG9yOiAnY3JlYXRlT3NjaWxsYXRvcicsCisgICAgICAgICAgYXJnczogW10sCisg
ICAgICAgICAgbGltaXRzOiB7CisgICAgICAgICAgICBmcmVxdWVuY3k6IHttaW5WYWx1ZTogLXNh
bXBsZVJhdGUgLyAyLCBtYXhWYWx1ZTogc2FtcGxlUmF0ZSAvIDJ9LAorICAgICAgICAgICAgZGV0
dW5lOiB7CisgICAgICAgICAgICAgIG1pblZhbHVlOiAtTWF0aC5mcm91bmQoMTIwMCAqIE1hdGgu
bG9nMihtb3N0UG9zaXRpdmVGbG9hdCkpLAorICAgICAgICAgICAgICBtYXhWYWx1ZTogTWF0aC5m
cm91bmQoMTIwMCAqIE1hdGgubG9nMihtb3N0UG9zaXRpdmVGbG9hdCkpCisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgY3JlYXRvcjog
J2NyZWF0ZVBhbm5lcicsCisgICAgICAgICAgYXJnczogW10sCisgICAgICAgICAgbGltaXRzOiB7
CisgICAgICAgICAgICBwb3NpdGlvblg6IHsKKyAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0
UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0
LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHBvc2l0aW9uWTogeworICAgICAgICAgICAg
ICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgICBtYXhWYWx1ZTog
bW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgcG9zaXRpb25a
OiB7CisgICAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAg
ICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICBvcmllbnRhdGlvblg6IHsKKyAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9z
aXRpdmVGbG9hdCwKKyAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG9yaWVudGF0aW9uWTogeworICAgICAgICAgICAg
ICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgICBtYXhWYWx1ZTog
bW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb3JpZW50YXRp
b25aOiB7CisgICAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCisgICAg
ICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgY3JlYXRvcjogJ2Ny
ZWF0ZUNvbnN0YW50U291cmNlJywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAgICAgICBsaW1p
dHM6IHsKKyAgICAgICAgICAgIG9mZnNldDoge21pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQs
IG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdH0KKyAgICAgICAgICB9CisgICAgICAgIH0sCisg
ICAgICAgIC8vIFRoZXNlIG5vZGVzIGRvbid0IGhhdmUgQXVkaW9QYXJhbXMsIGJ1dCB3ZSB3YW50
IHRvIHRlc3QgdGhlbSBhbnl3YXkuCisgICAgICAgIC8vIEFueSBhcmd1bWVudHMgZm9yIHRoZQor
ICAgICAgICAvLyBjb25zdHJ1Y3RvciBhcmUgcHJldHR5IG11Y2ggYXJiaXRyYXJ5OyB0aGV5IGp1
c3QgbmVlZCB0byBiZSB2YWxpZC4KKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVh
dGVCdWZmZXInLAorICAgICAgICAgIGFyZ3M6IFsxLCAxLCBzYW1wbGVSYXRlXSwKKyAgICAgICAg
fSwKKyAgICAgICAge2NyZWF0b3I6ICdjcmVhdGVJSVJGaWx0ZXInLCBhcmdzOiBbWzEsIDJdLCBb
MSwgLjldXX0sCisgICAgICAgIHsKKyAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlV2F2ZVNoYXBl
cicsCisgICAgICAgICAgYXJnczogW10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICBjcmVhdG9yOiAnY3JlYXRlQ29udm9sdmVyJywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVBbmFseXNlcicsCisg
ICAgICAgICAgYXJnczogW10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBjcmVh
dG9yOiAnY3JlYXRlU2NyaXB0UHJvY2Vzc29yJywKKyAgICAgICAgICBhcmdzOiBbMF0sCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlUGVyaW9kaWNXYXZl
JywKKyAgICAgICAgICBhcmdzOiBbRmxvYXQzMkFycmF5LmZyb20oWzAsIDBdKSwgRmxvYXQzMkFy
cmF5LmZyb20oWzEsIDBdKV0sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBjcmVh
dG9yOiAnY3JlYXRlQ2hhbm5lbFNwbGl0dGVyJywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVDaGFubmVsTWVyZ2Vy
JywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAgICAgfSwKKyAgICAgIF07CisKKyAgICAgIGxl
dCB0ZXN0T25saW5lQ29uZmlncyA9IFsKKyAgICAgICAge2NyZWF0b3I6ICdjcmVhdGVNZWRpYUVs
ZW1lbnRTb3VyY2UnLCBhcmdzOiBbbmV3IEF1ZGlvKCldfSwKKyAgICAgICAge2NyZWF0b3I6ICdj
cmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uJywgYXJnczogW119CisgICAgICAgIC8vIENhbid0
IGN1cnJlbnRseSB0ZXN0IE1lZGlhU3RyZWFtU291cmNlIGJlY2F1c2Ugd2UncmUgdXNpbmcgYW4g
b2ZmbGluZQorICAgICAgICAvLyBjb250ZXh0LgorICAgICAgXTsKKworICAgICAgLy8gQ3JlYXRl
IHRoZSBjb250ZXh0cyBzbyB3ZSBjYW4gdXNlIGl0IGluIHRoZSBmb2xsb3dpbmcgdGVzdC4KKyAg
ICAgIGF1ZGl0LmRlZmluZSgnaW5pdGlhbGl6ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgLy8gSnVzdCBhbnkgY29udGV4dCBzbyB0aGF0IHdlIGNhbiBjcmVhdGUgdGhlIG5vZGVzLgor
ICAgICAgICBzaG91bGQoKCkgPT4geworICAgICAgICAgIG9mZmxpbmVDb250ZXh0ID0gbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMSwgMSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIH0sICdDcmVhdGUg
b2ZmbGluZSBjb250ZXh0IGZvciB0ZXN0cycpLm5vdFRocm93KCk7CisgICAgICAgIHNob3VsZCgo
KSA9PiB7CisgICAgICAgICAgb25saW5lQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKKyAg
ICAgICAgfSwgJ0NyZWF0ZSBvbmxpbmUgY29udGV4dCBmb3IgdGVzdHMnKS5ub3RUaHJvdygpOwor
ICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgIH0pOworCisgICAgICAvLyBDcmVhdGUgYSB0YXNr
IGZvciBlYWNoIGVudHJ5IGluIHRlc3RPZmZsaW5lQ29uZmlncworICAgICAgZm9yIChsZXQgdGVz
dCBpbiB0ZXN0T2ZmbGluZUNvbmZpZ3MpIHsKKyAgICAgICAgbGV0IGNvbmZpZyA9IHRlc3RPZmZs
aW5lQ29uZmlnc1t0ZXN0XQorICAgICAgICBhdWRpdC5kZWZpbmUoJ09mZmxpbmUgJyArIGNvbmZp
Zy5jcmVhdG9yLCAoZnVuY3Rpb24oYykgeworICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
KHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub2RlID0g
b2ZmbGluZUNvbnRleHRbYy5jcmVhdG9yXSguLi5jLmFyZ3MpOworICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3RMaW1pdHMoc2hvdWxkLCBjLmNyZWF0b3IsIG5vZGUsIGMubGltaXRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICAgICAgIH0pKGNvbmZpZykpOworICAgICAgfQorCisgICAg
ICBmb3IgKGxldCB0ZXN0IGluIHRlc3RPbmxpbmVDb25maWdzKSB7CisgICAgICAgIGxldCBjb25m
aWcgPSB0ZXN0T25saW5lQ29uZmlnc1t0ZXN0XQorICAgICAgICBhdWRpdC5kZWZpbmUoJ09ubGlu
ZSAnICsgY29uZmlnLmNyZWF0b3IsIChmdW5jdGlvbihjKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
bGV0IG5vZGUgPSBvbmxpbmVDb250ZXh0W2MuY3JlYXRvcl0oLi4uYy5hcmdzKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0TGltaXRzKHNob3VsZCwgYy5jcmVhdG9yLCBub2RlLCBjLmxp
bWl0cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgdGFzay5kb25lKCk7CisgICAgICAgICAg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICB9KShjb25maWcpKTsKKyAgICAg
IH0KKworICAgICAgLy8gVGVzdCB0aGUgQXVkaW9MaXN0ZW5lciBwYXJhbXMgdGhhdCB3ZXJlIGFk
ZGVkIGZvciB0aGUgYXV0b21hdGVkIFBhbm5lcgorICAgICAgYXVkaXQuZGVmaW5lKCdBdWRpb0xp
c3RlbmVyJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICB0ZXN0TGltaXRzKHNob3VsZCwg
JycsIG9mZmxpbmVDb250ZXh0Lmxpc3RlbmVyLCB7CisgICAgICAgICAgcG9zaXRpb25YOiB7Cisg
ICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgbWF4
VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0sCisgICAgICAgICAgcG9zaXRp
b25ZOiB7CisgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAg
ICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0sCisgICAgICAg
ICAgcG9zaXRpb25aOiB7CisgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0
LAorICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0s
CisgICAgICAgICAgZm9yd2FyZFg6IHsKKyAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0
aXZlRmxvYXQsCisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAg
ICAgICAgfSwKKyAgICAgICAgICBmb3J3YXJkWTogeworICAgICAgICAgICAgbWluVmFsdWU6IC1t
b3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9h
dCwKKyAgICAgICAgICB9LAorICAgICAgICAgIGZvcndhcmRaOiB7CisgICAgICAgICAgICBtaW5W
YWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3Np
dGl2ZUZsb2F0LAorICAgICAgICAgIH0sCisgICAgICAgICAgdXBYOiB7CisgICAgICAgICAgICBt
aW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQ
b3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0sCisgICAgICAgICAgdXBZOiB7CisgICAgICAgICAg
ICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgbWF4VmFsdWU6IG1v
c3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0sCisgICAgICAgICAgdXBaOiB7CisgICAgICAg
ICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgbWF4VmFsdWU6
IG1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIHRh
c2suZG9uZSgpOworICAgICAgfSk7CisKKyAgICAgIC8vIFZlcmlmeSB0aGF0IHdlIGhhdmUgdGVz
dGVkIGFsbCB0aGUgY3JlYXRlIG1ldGhvZHMgYXZhaWxhYmxlIG9uIHRoZQorICAgICAgLy8gY29u
dGV4dC4KKyAgICAgIGF1ZGl0LmRlZmluZSgndmVyaWZ5VGVzdHMnLCAodGFzaywgc2hvdWxkKSA9
PiB7CisgICAgICAgIGxldCBhbGxOb2RlcyA9IG5ldyBTZXQoKTsKKyAgICAgICAgLy8gQ3JlYXRl
IHRoZSBzZXQgb2YgYWxsICJjcmVhdGUiIG1ldGhvZHMgZnJvbSB0aGUgY29udGV4dC4KKyAgICAg
ICAgZm9yIChsZXQgbWV0aG9kIGluIG9mZmxpbmVDb250ZXh0KSB7CisgICAgICAgICAgaWYgKHR5
cGVvZiBvZmZsaW5lQ29udGV4dFttZXRob2RdID09PSAnZnVuY3Rpb24nICYmCisgICAgICAgICAg
ICAgIG1ldGhvZC5zdWJzdHJpbmcoMCwgNikgPT09ICdjcmVhdGUnKSB7CisgICAgICAgICAgICBh
bGxOb2Rlcy5hZGQobWV0aG9kKTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAv
LyBDb21wdXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHNldCBvZiBhbGwgY3JlYXRlIG1l
dGhvZHMgb24gdGhlCisgICAgICAgIC8vIGNvbnRleHQgYW5kIHRoZSBzZXQgb2YgdGVzdHMgdGhh
dCB3ZSd2ZSBydW4uCisgICAgICAgIGxldCBkaWZmID0gbmV3IFNldChbLi4uYWxsTm9kZXNdLmZp
bHRlcih4ID0+ICF0ZXN0ZWRNZXRob2RzLmhhcyh4KSkpOworCisgICAgICAgIC8vIENhbid0IGN1
cnJlbnRseSB0ZXN0IGEgTWVkaWFTdHJlYW1Tb3VyY2VOb2RlLCBzbyByZW1vdmUgaXQgZnJvbSB0
aGUKKyAgICAgICAgLy8gZGlmZiBzZXQuCisgICAgICAgIGRpZmYuZGVsZXRlKCdjcmVhdGVNZWRp
YVN0cmVhbVNvdXJjZScpOworCisgICAgICAgIC8vIEl0J3MgYSB0ZXN0IGZhaWx1cmUgaWYgd2Ug
ZGlkbid0IHRlc3QgYWxsIG9mIHRoZSBjcmVhdGUgbWV0aG9kcyBpbgorICAgICAgICAvLyB0aGUg
Y29udGV4dCAoZXhjZXB0IGNyZWF0ZU1lZGlhU3RyZWFtU291cmNlLCBvZiBjb3Vyc2UpLgorICAg
ICAgICBsZXQgb3V0cHV0ID0gW107CisgICAgICAgIGlmIChkaWZmLnNpemUpIHsKKyAgICAgICAg
ICBmb3IgKGxldCBpdGVtIG9mIGRpZmYpCisgICAgICAgICAgICBvdXRwdXQucHVzaCgnICcgKyBp
dGVtLnN1YnN0cmluZyg2KSk7CisgICAgICAgIH0KKworICAgICAgICBzaG91bGQob3V0cHV0Lmxl
bmd0aCA9PT0gMCwgJ051bWJlciBvZiBub2RlcyBub3QgdGVzdGVkJykKKyAgICAgICAgICAgIC5t
ZXNzYWdlKCc6IDAnLCAnOiAnICsgb3V0cHV0KTsKKworICAgICAgICB0YXNrLmRvbmUoKTsKKyAg
ICAgIH0pOworCisgICAgICAvLyBTaW1wbGUgdGVzdCBvZiBhIGZldyBhdXRvbWF0aW9uIG1ldGhv
ZHMgdG8gdmVyaWZ5IHdlIGdldCB3YXJuaW5ncy4KKyAgICAgIGF1ZGl0LmRlZmluZSgnYXV0b21h
dGlvbicsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gSnVzdCB1c2UgYSBEZWxheU5v
ZGUgZm9yIHRlc3RpbmcgYmVjYXVzZSB0aGUgYXVkaW8gcGFyYW0gaGFzIGZpbml0ZQorICAgICAg
ICAvLyBsaW1pdHMuCisgICAgICAgIHNob3VsZCgoKSA9PiB7CisgICAgICAgICAgbGV0IGQgPSBv
ZmZsaW5lQ29udGV4dC5jcmVhdGVEZWxheSgpOworCisgICAgICAgICAgLy8gVGhlIGNvbnNvbGUg
b3V0cHV0IHNob3VsZCBoYXZlIHRoZSB3YXJuaW5ncyB0aGF0IHdlJ3JlIGludGVyZXN0ZWQKKyAg
ICAgICAgICAvLyBpbi4KKyAgICAgICAgICBkLmRlbGF5VGltZS5zZXRWYWx1ZUF0VGltZSgtMSwg
MCk7CisgICAgICAgICAgZC5kZWxheVRpbWUubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoMiwgMSk7
CisgICAgICAgICAgZC5kZWxheVRpbWUuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgzLCAy
KTsKKyAgICAgICAgICBkLmRlbGF5VGltZS5zZXRUYXJnZXRBdFRpbWUoLTEsIDMsIC4xKTsKKyAg
ICAgICAgICBkLmRlbGF5VGltZS5zZXRWYWx1ZUN1cnZlQXRUaW1lKAorICAgICAgICAgICAgICBG
bG9hdDMyQXJyYXkuZnJvbShbLjEsIC4yLCAxLjUsIC0xXSksIDQsIC4xKTsKKyAgICAgICAgfSwg
J1Rlc3QgYXV0b21hdGlvbnMgKGNoZWNrIGNvbnNvbGUgbG9ncyknKS5ub3RUaHJvdygpOworICAg
ICAgICB0YXNrLmRvbmUoKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKworICAg
ICAgLy8gSXMgfG9iamVjdHwgYW4gQXVkaW9QYXJhbT8gIFdlIGRldGVybWluZSB0aGlzIGJ5IGNo
ZWNraW5nIHRoZQorICAgICAgLy8gY29uc3RydWN0b3IgbmFtZS4KKyAgICAgIGZ1bmN0aW9uIGlz
QXVkaW9QYXJhbShvYmplY3QpIHsKKyAgICAgICAgcmV0dXJuIG9iamVjdCAmJiBvYmplY3QuY29u
c3RydWN0b3IubmFtZSA9PT0gJ0F1ZGlvUGFyYW0nOworICAgICAgfQorCisgICAgICAvLyBEb2Vz
IHxsaW1pdE9wdGlvbnN8IGV4aXN0IGFuZCBkb2VzIGl0IGhhdmUgdmFsaWQgdmFsdWVzIGZvciB0
aGUKKyAgICAgIC8vIGV4cGVjdGVkIG1pbiBhbmQgbWF4IHZhbHVlcz8KKyAgICAgIGZ1bmN0aW9u
IGhhc1ZhbGlkTGltaXRzKGxpbWl0T3B0aW9ucykgeworICAgICAgICByZXR1cm4gbGltaXRPcHRp
b25zICYmICh0eXBlb2YgbGltaXRPcHRpb25zLm1pblZhbHVlID09PSAnbnVtYmVyJykgJiYKKyAg
ICAgICAgICAgICh0eXBlb2YgbGltaXRPcHRpb25zLm1heFZhbHVlID09PSAnbnVtYmVyJyk7Cisg
ICAgICB9CisKKyAgICAgIC8vIENoZWNrIHRoZSBtaW4gYW5kIG1heCB2YWx1ZXMgZm9yIHRoZSBB
dWRpb1BhcmFtIGF0dHJpYnV0ZSBuYW1lZAorICAgICAgLy8gfHBhcmFtTmFtZXwgZm9yIHRoZSB8
bm9kZXwuIFRoZSBleHBlY3RlZCBsaW1pdHMgaXMgZ2l2ZW4gYnkgdGhlCisgICAgICAvLyBkaWN0
aW9uYXJ5IHxsaW1pdHN8LiAgSWYgc29tZSB0ZXN0IGZhaWxzLCBhZGQgdGhlIG5hbWUgb2YgdGhl
IGZhaWxlZAorICAgICAgZnVuY3Rpb24gdmFsaWRhdGVBdWRpb1BhcmFtTGltaXRzKHNob3VsZCwg
bm9kZSwgcGFyYW1OYW1lLCBsaW1pdHMpIHsKKyAgICAgICAgbGV0IG5vZGVOYW1lID0gbm9kZS5j
b25zdHJ1Y3Rvci5uYW1lOworICAgICAgICBsZXQgcGFyYW1ldGVyID0gbm9kZVtwYXJhbU5hbWVd
OworICAgICAgICBsZXQgcHJlZml4ID0gbm9kZU5hbWUgKyAnLicgKyBwYXJhbU5hbWU7CisKKyAg
ICAgICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworICAgICAgICBpZiAoaGFzVmFsaWRMaW1pdHMobGlt
aXRzW3BhcmFtTmFtZV0pKSB7CisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIG1pbiBhbmQg
bWF4IHZhbHVlcyBmb3IgdGhlIHBhcmFtZXRlciBhcmUgY29ycmVjdC4KKyAgICAgICAgICBsZXQg
aXNDb3JyZWN0ID0gc2hvdWxkKHBhcmFtZXRlci5taW5WYWx1ZSwgcHJlZml4ICsgJy5taW5WYWx1
ZScpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKGxpbWl0c1twYXJh
bU5hbWVdLm1pblZhbHVlKTsKKyAgICAgICAgICBpc0NvcnJlY3QgPSBzaG91bGQocGFyYW1ldGVy
Lm1heFZhbHVlLCBwcmVmaXggKyAnLm1heFZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmJlRXF1YWxUbyhsaW1pdHNbcGFyYW1OYW1lXS5tYXhWYWx1ZSkgJiYKKyAgICAgICAgICAg
ICAgaXNDb3JyZWN0OworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIG1pbiBhbmQgbWF4
IGF0dHJpYnV0ZXMgYXJlIHJlYWQtb25seS4gIHx0ZXN0VmFsdWV8CisgICAgICAgICAgLy8gTVVT
VCBiZSBhIG51bWJlciB0aGF0IGNhbiBiZSByZXByZXNlbnRlZCBleGFjdGx5IHRoZSBzYW1lIHdh
eSBhcworICAgICAgICAgIC8vIGJvdGggYSBkb3VibGUgYW5kIHNpbmdsZSBmbG9hdC4gIEEgc21h
bGwgaW50ZWdlciB3b3JrcyBuaWNlbHkuCisgICAgICAgICAgY29uc3QgdGVzdFZhbHVlID0gNDI7
CisgICAgICAgICAgcGFyYW1ldGVyLm1pblZhbHVlID0gdGVzdFZhbHVlOworICAgICAgICAgIGxl
dCBpc1JlYWRPbmx5OworICAgICAgICAgIGlzUmVhZE9ubHkgPQorICAgICAgICAgICAgICBzaG91
bGQocGFyYW1ldGVyLm1pblZhbHVlLCBgJHtwcmVmaXh9Lm1pblZhbHVlID0gJHt0ZXN0VmFsdWV9
YCkKKyAgICAgICAgICAgICAgICAgIC5ub3RCZUVxdWFsVG8odGVzdFZhbHVlKTsKKworICAgICAg
ICAgIHNob3VsZChpc1JlYWRPbmx5LCBwcmVmaXggKyAnLm1pblZhbHVlIGlzIHJlYWQtb25seScp
LmJlRXF1YWxUbyh0cnVlKTsKKworICAgICAgICAgIGlzQ29ycmVjdCA9IGlzUmVhZE9ubHkgJiYg
aXNDb3JyZWN0OworCisgICAgICAgICAgcGFyYW1ldGVyLm1heFZhbHVlID0gdGVzdFZhbHVlOwor
ICAgICAgICAgIGlzUmVhZE9ubHkgPQorICAgICAgICAgICAgICBzaG91bGQocGFyYW1ldGVyLm1h
eFZhbHVlLCBgJHtwcmVmaXh9Lm1heFZhbHVlID0gJHt0ZXN0VmFsdWV9YCkKKyAgICAgICAgICAg
ICAgICAgIC5ub3RCZUVxdWFsVG8odGVzdFZhbHVlKTsKKyAgICAgICAgICBzaG91bGQoaXNSZWFk
T25seSwgcHJlZml4ICsgJy5tYXhWYWx1ZSBpcyByZWFkLW9ubHknKS5iZUVxdWFsVG8odHJ1ZSk7
CisKKyAgICAgICAgICBpc0NvcnJlY3QgPSBpc1JlYWRPbmx5ICYmIGlzQ29ycmVjdDsKKworICAg
ICAgICAgIC8vIE5vdyB0cnkgdG8gc2V0IHRoZSBwYXJhbWV0ZXIgb3V0c2lkZSB0aGUgbm9taW5h
bCByYW5nZS4KKyAgICAgICAgICBsZXQgbmV3VmFsdWUgPSAyICogbGltaXRzW3BhcmFtTmFtZV0u
bWluVmFsdWUgLSAxOworCisgICAgICAgICAgbGV0IGlzQ2xpcHBlZCA9IHRydWU7CisgICAgICAg
ICAgbGV0IGNsaXBwaW5nVGVzdGVkID0gZmFsc2U7CisgICAgICAgICAgLy8gSWYgdGhlIG5ldyB2
YWx1ZSBpcyBiZXlvbmQgZmxvYXQgdGhlIGxhcmdlc3Qgc2luZ2xlLXByZWNpc2lvbgorICAgICAg
ICAgIC8vIGZsb2F0LCBza2lwIHRoZSB0ZXN0IGJlY2F1c2UgQ2hyb21lIHRocm93cyBhbiBlcnJv
ci4KKyAgICAgICAgICBpZiAobmV3VmFsdWUgPj0gLW1vc3RQb3NpdGl2ZUZsb2F0KSB7CisgICAg
ICAgICAgICBwYXJhbWV0ZXIudmFsdWUgPSBuZXdWYWx1ZTsKKyAgICAgICAgICAgIGNsaXBwaW5n
VGVzdGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlzQ2xpcHBlZCA9CisgICAgICAgICAgICAgICAg
c2hvdWxkKAorICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIudmFsdWUsICdTZXQgJyArIHBy
ZWZpeCArICcudmFsdWUgPSAnICsgbmV3VmFsdWUpCisgICAgICAgICAgICAgICAgICAgIC5iZUVx
dWFsVG8ocGFyYW1ldGVyLm1pblZhbHVlKSAmJgorICAgICAgICAgICAgICAgIGlzQ2xpcHBlZDsK
KyAgICAgICAgICB9CisKKyAgICAgICAgICBuZXdWYWx1ZSA9IDIgKiBsaW1pdHNbcGFyYW1OYW1l
XS5tYXhWYWx1ZSArIDE7CisKKyAgICAgICAgICBpZiAobmV3VmFsdWUgPD0gbW9zdFBvc2l0aXZl
RmxvYXQpIHsKKyAgICAgICAgICAgIHBhcmFtZXRlci52YWx1ZSA9IG5ld1ZhbHVlOworICAgICAg
ICAgICAgY2xpcHBpbmdUZXN0ZWQgPSB0cnVlOworICAgICAgICAgICAgaXNDbGlwcGVkID0KKyAg
ICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci52YWx1
ZSwgJ1NldCAnICsgcHJlZml4ICsgJy52YWx1ZSA9ICcgKyBuZXdWYWx1ZSkKKyAgICAgICAgICAg
ICAgICAgICAgLmJlRXF1YWxUbyhwYXJhbWV0ZXIubWF4VmFsdWUpICYmCisgICAgICAgICAgICAg
ICAgaXNDbGlwcGVkOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmIChjbGlwcGluZ1Rlc3Rl
ZCkgeworICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgIGlzQ2xpcHBlZCwKKyAg
ICAgICAgICAgICAgICBwcmVmaXggKyAnIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5v
bWluYWwgcmFuZ2UnKQorICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8odHJ1ZSk7CisgICAgICAg
ICAgfQorCisgICAgICAgICAgaXNDb3JyZWN0ID0gaXNDb3JyZWN0ICYmIGlzQ2xpcHBlZDsKKwor
ICAgICAgICAgIHN1Y2Nlc3MgPSBpc0NvcnJlY3QgJiYgc3VjY2VzczsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAvLyBUZXN0IGNvbmZpZyBkaWRuJ3Qgc3BlY2lmeSB2YWxpZCBsaW1pdHMu
ICBGYWlsIHRoaXMgdGVzdCEKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIGNsaXBw
aW5nVGVzdGVkLAorICAgICAgICAgICAgICAnTGltaXRzIGZvciAnICsgbm9kZU5hbWUgKyAnLicg
KyBwYXJhbU5hbWUgKworICAgICAgICAgICAgICAgICAgJyB3ZXJlIGNvcnJlY3RseSBkZWZpbmVk
JykKKyAgICAgICAgICAgICAgLmJlRXF1YWxUbyhmYWxzZSk7CisKKyAgICAgICAgICBzdWNjZXNz
ID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3VjY2VzczsKKyAgICAgIH0K
KworICAgICAgLy8gVGVzdCBhbGwgb2YgdGhlIEF1ZGlvUGFyYW1zIGZvciB8bm9kZXwgdXNpbmcg
dGhlIGV4cGVjdGVkIHZhbHVlcyBpbgorICAgICAgLy8gfGxpbWl0c3wuIHxjcmVhdG9yTmFtZXwg
aXMgdGhlIG5hbWUgb2YgdGhlIG1ldGhvZCB0byBjcmVhdGUgdGhlIG5vZGUsCisgICAgICAvLyBh
bmQgaXMgdXNlZCB0byBrZWVwIHRyYWtjIG9mIHdoaWNoIHRlc3RzIHdlJ3ZlIHJ1bi4KKyAgICAg
IGZ1bmN0aW9uIHRlc3RMaW1pdHMoc2hvdWxkLCBjcmVhdG9yTmFtZSwgbm9kZSwgbGltaXRzKSB7
CisgICAgICAgIGxldCBub2RlTmFtZSA9IG5vZGUuY29uc3RydWN0b3IubmFtZTsKKyAgICAgICAg
dGVzdGVkTWV0aG9kcy5hZGQoY3JlYXRvck5hbWUpOworCisgICAgICAgIGxldCBzdWNjZXNzID0g
dHJ1ZTsKKworICAgICAgICAvLyBMaXN0IG9mIGFsbCBvZiB0aGUgQXVkaW9QYXJhbXMgdGhhdCB3
ZXJlIHRlc3RlZC4KKyAgICAgICAgbGV0IGF1ZGlvUGFyYW1zID0gW107CisKKyAgICAgICAgLy8g
TGlzdCBvZiBBdWRpb1BhcmFtcyB0aGF0IGZhaWxlZCB0aGUgdGVzdC4KKyAgICAgICAgbGV0IGlu
Y29ycmVjdFBhcmFtcyA9IFtdOworCisgICAgICAgIC8vIExvb2sgdGhyb3VnaCBhbGwgb2YgdGhl
IGtleXMgZm9yIHRoZSBub2RlIGFuZCBleHRyYWN0IGp1c3QgdGhlCisgICAgICAgIC8vIEF1ZGlv
UGFyYW1zCisgICAgICAgIE9iamVjdC5rZXlzKG5vZGUuX19wcm90b19fKS5mb3JFYWNoKGZ1bmN0
aW9uKHBhcmFtTmFtZSkgeworICAgICAgICAgIGlmIChpc0F1ZGlvUGFyYW0obm9kZVtwYXJhbU5h
bWVdKSkgeworICAgICAgICAgICAgYXVkaW9QYXJhbXMucHVzaChwYXJhbU5hbWUpOworICAgICAg
ICAgICAgbGV0IGlzVmFsaWQgPSB2YWxpZGF0ZUF1ZGlvUGFyYW1MaW1pdHMoCisgICAgICAgICAg
ICAgICAgc2hvdWxkLCBub2RlLCBwYXJhbU5hbWUsIGxpbWl0cywgaW5jb3JyZWN0UGFyYW1zKTsK
KyAgICAgICAgICAgIGlmICghaXNWYWxpZCkKKyAgICAgICAgICAgICAgaW5jb3JyZWN0UGFyYW1z
LnB1c2gocGFyYW1OYW1lKTsKKworICAgICAgICAgICAgc3VjY2VzcyA9IGlzVmFsaWQgJiYgc3Vj
Y2VzczsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8vIFByaW50IGFuIGFw
cHJvcHJpYXRlIG1lc3NhZ2UgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlcmUgd2VyZQorICAgICAg
ICAvLyBBdWRpb1BhcmFtcyBkZWZpbmVkIG9yIG5vdC4KKyAgICAgICAgaWYgKGF1ZGlvUGFyYW1z
Lmxlbmd0aCkgeworICAgICAgICAgIGxldCBtZXNzYWdlID0KKyAgICAgICAgICAgICAgJ05vbWlu
YWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mICcgKyBub2RlLmNvbnN0cnVjdG9yLm5hbWU7
CisgICAgICAgICAgc2hvdWxkKHN1Y2Nlc3MsIG1lc3NhZ2UpCisgICAgICAgICAgICAgIC5tZXNz
YWdlKCdhcmUgY29ycmVjdCcsICdhcmUgaW5jb3JyZWN0IGZvcjogJyArICtpbmNvcnJlY3RQYXJh
bXMpOworICAgICAgICAgIHJldHVybiBzdWNjZXNzOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgIHNob3VsZCghbGltaXRzLCBub2RlTmFtZSkKKyAgICAgICAgICAgICAgLm1lc3NhZ2UoCisg
ICAgICAgICAgICAgICAgICAnaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkJywKKyAgICAg
ICAgICAgICAgICAgICdoYXMgbm8gQXVkaW9QYXJhbXMgYnV0IHRlc3QgZXhwZWN0ZWQgJyArIGxp
bWl0cyk7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3Bh
cmFtLXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwZGFl
ODgzNjNiNDg3ZWZhZTM4ZmUxNGMxMzgxNGQxYjRjNzY4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tcHJvY2Vzc2luZy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4MCBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RB
UlRFRC4gCitQQVNTIEV4ZWN1dGluZyAiQmlxdWFkRmlsdGVyTm9kZSIgCitQQVNTIEV4ZWN1dGlu
ZyAiRGVsYXlOb2RlIiAKK1BBU1MgRXhlY3V0aW5nICJEeW5hbWljc0NvbXByZXNzb3JOb2RlIiAK
K1BBU1MgRXhlY3V0aW5nICJHYWluTm9kZSIgCitQQVNTIEV4ZWN1dGluZyAiUGFubmVyTm9kZSIg
CitQQVNTIEV4ZWN1dGluZyAiU3RlcmVvUGFubmVyTm9kZSIgCitQQVNTIEV4ZWN1dGluZyAiQXVk
aW9MaXN0ZW5lciIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbQmlxdWFkRmlsdGVyTm9k
ZV0gIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuUSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBl
cXVhbCB0byAxLiAKK0ZBSUwgWCBCaXF1YWRGaWx0ZXJOb2RlLlEudmFsdWUgaXMgbm90IGVxdWFs
IHRvIDUuIEdvdCAxLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
ICBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0
byAwLiAKK0ZBSUwgWCBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZS52YWx1ZSBpcyBub3QgZXF1YWwg
dG8gMC41LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
ICAgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kgcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1
YWwgdG8gMzUwLiAKK0ZBSUwgWCBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5jeS52YWx1ZSBpcyBu
b3QgZXF1YWwgdG8gMTAwLiBHb3QgMzUwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdhaW4gcmFtcCBmaW5hbCB2YWx1ZSBpcyBu
b3QgZXF1YWwgdG8gMC4gCitGQUlMIFggQmlxdWFkRmlsdGVyTm9kZS5nYWluLnZhbHVlIGlzIG5v
dCBlcXVhbCB0byAzLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIDwgW0JpcXVhZEZpbHRlck5vZGVdIDQgb3V0IG9mIDggYXNzZXJ0aW9ucyB3ZXJlIGZh
aWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW0RlbGF5
Tm9kZV0gIAorUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRpbWUgcmFtcCBmaW5hbCB2YWx1ZSBpcyBu
b3QgZXF1YWwgdG8gMC4gCitGQUlMIFggRGVsYXlOb2RlLmRlbGF5VGltZS52YWx1ZSBpcyBub3Qg
ZXF1YWwgdG8gMC41LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitGQUlMIDwgW0RlbGF5Tm9kZV0gMSBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbRHluYW1pY3NDb21w
cmVzc29yTm9kZV0gIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrIHJhbXAg
ZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuMDAzMDAwMDAwMDI2MDc3MDMyLiAKK0ZBSUwg
WCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay52YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC41
LiBHb3QgMC4wMDMwMDAwMDAwMjYwNzcwMzIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZSByYW1wIGZpbmFsIHZh
bHVlIGlzIG5vdCBlcXVhbCB0byAzMC4gCitGQUlMIFggRHluYW1pY3NDb21wcmVzc29yTm9kZS5r
bmVlLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAyNS4gR290IDMwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvIHJh
bXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDEyLiAKK0ZBSUwgWCBEeW5hbWljc0NvbXBy
ZXNzb3JOb2RlLnJhdGlvLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAxNS4gR290IDEyLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JO
b2RlLnJlbGVhc2UgcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4yNS4gCitGQUlM
IFggRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAw
Ljc1LiBHb3QgMC4yNS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
ICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQgcmFtcCBmaW5hbCB2YWx1ZSBpcyBu
b3QgZXF1YWwgdG8gLTI0LiAKK0ZBSUwgWCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9s
ZC52YWx1ZSBpcyBub3QgZXF1YWwgdG8gLTEwLiBHb3QgLTI0LiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbRHluYW1pY3NDb21wcmVzc29yTm9kZV0gNSBvdXQg
b2YgMTAgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitQQVNTID4gW0dhaW5Ob2RlXSAgCitQQVNTICAgR2Fpbk5vZGUuZ2FpbiByYW1w
IGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAxLiAKK0ZBSUwgWCBHYWluTm9kZS5nYWluLnZh
bHVlIGlzIG5vdCBlcXVhbCB0byAwLjUuIEdvdCAxLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbR2Fpbk5vZGVdIDEgb3V0IG9mIDIgYXNzZXJ0aW9ucyB3ZXJl
IGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW1Bh
bm5lck5vZGVdICAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWCByYW1wIGZpbmFsIHZhbHVl
IGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBQYW5uZXJOb2RlLnBvc2l0aW9uWC52YWx1ZSBp
cyBub3QgZXF1YWwgdG8gMC41LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblkgcmFtcCBmaW5hbCB2YWx1ZSBpcyBu
b3QgZXF1YWwgdG8gMC4gCitGQUlMIFggUGFubmVyTm9kZS5wb3NpdGlvblkudmFsdWUgaXMgbm90
IGVxdWFsIHRvIDMwLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblogcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1
YWwgdG8gMC4gCitGQUlMIFggUGFubmVyTm9kZS5wb3NpdGlvbloudmFsdWUgaXMgbm90IGVxdWFs
IHRvIDE1LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNT
ICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblggcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwg
dG8gMS4gCitGQUlMIFggUGFubmVyTm9kZS5vcmllbnRhdGlvblgudmFsdWUgaXMgbm90IGVxdWFs
IHRvIDAuNS4gR290IDEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25ZIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFs
IHRvIDAuIAorRkFJTCBYIFBhbm5lck5vZGUub3JpZW50YXRpb25ZLnZhbHVlIGlzIG5vdCBlcXVh
bCB0byAzMC4gR290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25aIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFs
IHRvIDAuIAorRkFJTCBYIFBhbm5lck5vZGUub3JpZW50YXRpb25aLnZhbHVlIGlzIG5vdCBlcXVh
bCB0byAxNS4gR290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCA8IFtQYW5uZXJOb2RlXSA2IG91dCBvZiAxMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbU3RlcmVvUGFubmVyTm9k
ZV0gIAorUEFTUyAgIFN0ZXJlb1Bhbm5lck5vZGUucGFuIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90
IGVxdWFsIHRvIDAuIAorRkFJTCBYIFN0ZXJlb1Bhbm5lck5vZGUucGFuLnZhbHVlIGlzIG5vdCBl
cXVhbCB0byAwLjUuIEdvdCAwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgPCBbU3RlcmVvUGFubmVyTm9kZV0gMSBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFp
bGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbQXVkaW9M
aXN0ZW5lcl0gIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25YIHJhbXAgZmluYWwgdmFs
dWUgaXMgbm90IGVxdWFsIHRvIDAuIAorRkFJTCBYIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25YLnZh
bHVlIGlzIG5vdCBlcXVhbCB0byAxMDAuIEdvdCAwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWSByYW1wIGZpbmFsIHZh
bHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWS52
YWx1ZSBpcyBub3QgZXF1YWwgdG8gMjAwLiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblogcmFtcCBmaW5hbCB2
YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggQXVkaW9MaXN0ZW5lci5wb3NpdGlvblou
dmFsdWUgaXMgbm90IGVxdWFsIHRvIDMwMC4gR290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFggcmFtcCBmaW5hbCB2
YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggQXVkaW9MaXN0ZW5lci5mb3J3YXJkWC52
YWx1ZSBpcyBub3QgZXF1YWwgdG8gLTEwMC4gR290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFkgcmFtcCBmaW5hbCB2
YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS52
YWx1ZSBpcyBub3QgZXF1YWwgdG8gLTIwMC4gR290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0
cnVlIGdvdCBmYWxzZQorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFogcmFtcCBmaW5hbCB2
YWx1ZSBpcyBub3QgZXF1YWwgdG8gLTEuIAorRkFJTCBYIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFou
dmFsdWUgaXMgbm90IGVxdWFsIHRvIC0zMDAuIEdvdCAtMS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVk
IHRydWUgZ290IGZhbHNlCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFggcmFtcCBmaW5hbCB2YWx1
ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggQXVkaW9MaXN0ZW5lci51cFgudmFsdWUgaXMg
bm90IGVxdWFsIHRvIDk5LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFkgcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1
YWwgdG8gMS4gCitGQUlMIFggQXVkaW9MaXN0ZW5lci51cFkudmFsdWUgaXMgbm90IGVxdWFsIHRv
IDQyLiBHb3QgMS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAg
QXVkaW9MaXN0ZW5lci51cFogcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitG
QUlMIFggQXVkaW9MaXN0ZW5lci51cFoudmFsdWUgaXMgbm90IGVxdWFsIHRvIDEzNy4gR290IDAu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFtBdWRpb0xpc3Rl
bmVyXSA5IG91dCBvZiAxOCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDog
NyBvdXQgb2YgNyB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0v
YXVkaW9wYXJhbS1wcm9jZXNzaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1Bh
cmFtL2F1ZGlvcGFyYW0tcHJvY2Vzc2luZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlOGJkYjg3OTQxZDZj
YmUyYmEyZmJiOTIwZjEwNDg0MzcyM2E2MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tcHJvY2Vzc2luZy5odG1sCkBAIC0wLDAg
KzEsMzA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+
CisgICAgICBUZXN0IFByb2Nlc3NpbmcgT2YgQXVkaW9QYXJhbXMgb2YgRGlzY29ubmVjdGVkIEF1
ZGlvTm9kZXMKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3Jp
cHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29k
ZSI+CisgICAgICAvLyBBcmJpdHJhcnkgc2FtcGxlIHJhdGUuCisgICAgICBsZXQgc2FtcGxlUmF0
ZSA9IDgwMDA7CisKKyAgICAgIC8vIEFyYml0cmFyeSBudW1iZXIgb2YgZnJhbWVzIGZvciB0aGUg
dGVzdCwgZXhjZXB0IGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuCisgICAgICAvLyB8YXV0b21hdGlv
bkVuZEZyYW1lfC4KKyAgICAgIGxldCByZW5kZXJGcmFtZXMgPSAxMDI0OworCisgICAgICAvLyBU
aGUgbGluZWFyIHJhbXAgYXV0b21hdGlvbiBlbmRzIGF0IHRoaXMgZnJhbWUuIEFyYml0cmFyeSwg
ZXhjZXB0IGl0CisgICAgICAvLyBtdXN0IGJlIHN0cmljdGx5IGxlc3MgdGhhbiB0aGUgcmVuZGVy
IGxlbmd0aC4KKyAgICAgIGxldCBhdXRvbWF0aW9uRW5kRnJhbWUgPSAxMjg7CisKKyAgICAgIGxl
dCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gVGhlcmUgc2hv
dWxkIGJlIGEgdGVzdCBmb3IgZXZlcnkgc2luZ2xlIG5vZGUgd2hpY2ggaGFzIGFuIEF1ZGlvUGFy
YW0uCisgICAgICAvLyBTb3VyY2Ugbm9kZXMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGlzIGJlY2F1
c2UgdGhlIEF1ZGlvUGFyYW1zIGZvciB0aGUKKyAgICAgIC8vIHNvdXJjZSBub2RlcyBvbmx5IHBy
b2Nlc3Mgd2hlbiB0aGUgbm9kZSBoYXMgYmVlbiBzdGFydGVkLgorCisgICAgICBhdWRpdC5kZWZp
bmUoJ0JpcXVhZEZpbHRlck5vZGUnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCBu
b2RlTmFtZSA9ICdCaXF1YWRGaWx0ZXJOb2RlJworICAgICAgICBQcm9taXNlCisgICAgICAgICAg
ICAuYWxsKFsKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAg
ICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFyYW1O
YW1lOiAnUScsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAyLAorICAgICAgICAgICAg
ICAgIHJhbXBGaW5hbFZhbHVlOiA1CisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgICB0
ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBu
b2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJhbU5hbWU6ICdkZXR1bmUnLAorICAgICAgICAg
ICAgICAgIGluaXRpYWxWYWx1ZTogMSwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTog
MC41CisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9u
KHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAg
ICAgICAgICBwYXJhbU5hbWU6ICdmcmVxdWVuY3knLAorICAgICAgICAgICAgICAgIGluaXRpYWxW
YWx1ZTogMTAwMCwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogMTAwCisgICAgICAg
ICAgICAgIH0pLAorICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgewor
ICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJh
bU5hbWU6ICdnYWluJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IC0zLAorICAgICAg
ICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAzCisgICAgICAgICAgICAgIH0pLAorICAgICAgICAg
ICAgXSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOwor
CisgICAgICBhdWRpdC5kZWZpbmUoJ0RlbGF5Tm9kZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAg
ICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAgICBub2RlTmFtZTog
J0RlbGF5Tm9kZScsCisgICAgICAgICAgcGFyYW1OYW1lOiAnZGVsYXlUaW1lJywKKyAgICAgICAg
ICBpbml0aWFsVmFsdWU6IDAuMjUsCisgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDAuNQorICAg
ICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRp
dC5kZWZpbmUoJ0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUnLCAodGFzaywgc2hvdWxkKSA9PiB7Cisg
ICAgICAgIGxldCBub2RlTmFtZSA9ICdEeW5hbWljc0NvbXByZXNzb3JOb2RlJzsKKyAgICAgICAg
UHJvbWlzZQorICAgICAgICAgICAgLmFsbChbCisgICAgICAgICAgICAgIHRlc3RQYXJhbUF1dG9t
YXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgbm9kZU5hbWU6IG5vZGVOYW1lLAorICAg
ICAgICAgICAgICAgIHBhcmFtTmFtZTogJ2F0dGFjaycsCisgICAgICAgICAgICAgICAgaW5pdGlh
bFZhbHVlOiAwLjEsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDAuNQorICAgICAg
ICAgICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsK
KyAgICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFy
YW1OYW1lOiAna25lZScsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAwLAorICAgICAg
ICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAyNQorICAgICAgICAgICAgICB9KSwKKyAgICAgICAg
ICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAgICAgICAgICBub2Rl
TmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFyYW1OYW1lOiAncmF0aW8nLAorICAg
ICAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogMSwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxW
YWx1ZTogMTUKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RQYXJhbUF1dG9t
YXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgbm9kZU5hbWU6IG5vZGVOYW1lLAorICAg
ICAgICAgICAgICAgIHBhcmFtTmFtZTogJ3JlbGVhc2UnLAorICAgICAgICAgICAgICAgIGluaXRp
YWxWYWx1ZTogMCwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogMC43NQorICAgICAg
ICAgICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsK
KyAgICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFy
YW1OYW1lOiAndGhyZXNob2xkJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IC01MCwK
KyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogLTEwCisgICAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICBdKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAg
ICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnR2Fpbk5vZGUnLCAodGFzaywgc2hvdWxkKSA9
PiB7CisgICAgICAgIHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgbm9k
ZU5hbWU6ICdHYWluTm9kZScsCisgICAgICAgICAgcGFyYW1OYW1lOiAnZ2FpbicsCisgICAgICAg
ICAgaW5pdGlhbFZhbHVlOiAxLAorICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAwLjUKKyAgICAg
ICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQu
ZGVmaW5lKCdQYW5uZXJOb2RlJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBsZXQgbm9k
ZU5hbWUgPSAnUGFubmVyTm9kZSc7CisgICAgICAgIFByb21pc2UKKyAgICAgICAgICAgIC5hbGwo
WworICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgeworICAgICAgICAg
ICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJhbU5hbWU6ICdw
b3NpdGlvblgnLAorICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogMC4xLAorICAgICAgICAg
ICAgICAgIHJhbXBGaW5hbFZhbHVlOiAwLjUKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAg
ICAgIHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgbm9kZU5h
bWU6IG5vZGVOYW1lLAorICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWScsCisg
ICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAyLAorICAgICAgICAgICAgICAgIHJhbXBGaW5h
bFZhbHVlOiAzMAorICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0
b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisg
ICAgICAgICAgICAgICAgcGFyYW1OYW1lOiAncG9zaXRpb25aJywKKyAgICAgICAgICAgICAgICBp
bml0aWFsVmFsdWU6IDEsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDE1CisgICAg
ICAgICAgICAgIH0pLAorICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwg
eworICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAgICAgICAgICBw
YXJhbU5hbWU6ICdvcmllbnRhdGlvblgnLAorICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZTog
MC4xLAorICAgICAgICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAwLjUKKyAgICAgICAgICAgICAg
fSksCisgICAgICAgICAgICAgIHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAg
ICAgICAgICAgbm9kZU5hbWU6IG5vZGVOYW1lLAorICAgICAgICAgICAgICAgIHBhcmFtTmFtZTog
J29yaWVudGF0aW9uWScsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAyLAorICAgICAg
ICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAzMAorICAgICAgICAgICAgICB9KSwKKyAgICAgICAg
ICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAgICAgICAgICBub2Rl
TmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFyYW1OYW1lOiAnb3JpZW50YXRpb25a
JywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDEsCisgICAgICAgICAgICAgICAgcmFt
cEZpbmFsVmFsdWU6IDE1CisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgXSkKKyAgICAg
ICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRp
dC5kZWZpbmUoJ1N0ZXJlb1Bhbm5lck5vZGUnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAg
IHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgbm9kZU5hbWU6ICdTdGVy
ZW9QYW5uZXJOb2RlJywKKyAgICAgICAgICBwYXJhbU5hbWU6ICdwYW4nLAorICAgICAgICAgIGlu
aXRpYWxWYWx1ZTogMSwKKyAgICAgICAgICByYW1wRmluYWxWYWx1ZTogMC41CisgICAgICAgIH0p
LnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmlu
ZSgnQXVkaW9MaXN0ZW5lcicsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgUHJvbWlzZQor
ICAgICAgICAgICAgLmFsbChbCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xpc3RlbmVyKHNob3Vs
ZCwgeworICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWCcsCisgICAgICAgICAg
ICAgICAgaW5pdGlhbFZhbHVlOiAxLAorICAgICAgICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAx
MDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xpc3RlbmVyKHNo
b3VsZCwgeworICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWScsCisgICAgICAg
ICAgICAgICAgaW5pdGlhbFZhbHVlOiAxLAorICAgICAgICAgICAgICAgIHJhbXBGaW5hbFZhbHVl
OiAyMDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xpc3RlbmVy
KHNob3VsZCwgeworICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWicsCisgICAg
ICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAxLAorICAgICAgICAgICAgICAgIHJhbXBGaW5hbFZh
bHVlOiAzMDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xpc3Rl
bmVyKHNob3VsZCwgeworICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ2ZvcndhcmRYJywKKyAg
ICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDEsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFs
VmFsdWU6IC0xMDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xp
c3RlbmVyKHNob3VsZCwgeworICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ2ZvcndhcmRZJywK
KyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDEsCisgICAgICAgICAgICAgICAgcmFtcEZp
bmFsVmFsdWU6IC0yMDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RBdWRp
b0xpc3RlbmVyKHNob3VsZCwgeworICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ2ZvcndhcmRa
JywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDEsCisgICAgICAgICAgICAgICAgcmFt
cEZpbmFsVmFsdWU6IC0zMDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RB
dWRpb0xpc3RlbmVyKAorICAgICAgICAgICAgICAgICAgc2hvdWxkLAorICAgICAgICAgICAgICAg
ICAge3BhcmFtTmFtZTogJ3VwWCcsIGluaXRpYWxWYWx1ZTogMSwgcmFtcEZpbmFsVmFsdWU6IDk5
fSksCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xpc3RlbmVyKAorICAgICAgICAgICAgICAgICAg
c2hvdWxkLAorICAgICAgICAgICAgICAgICAge3BhcmFtTmFtZTogJ3VwWScsIGluaXRpYWxWYWx1
ZTogMSwgcmFtcEZpbmFsVmFsdWU6IDQyfSksCisgICAgICAgICAgICAgIHRlc3RBdWRpb0xpc3Rl
bmVyKAorICAgICAgICAgICAgICAgICAgc2hvdWxkLAorICAgICAgICAgICAgICAgICAge3BhcmFt
TmFtZTogJ3VwWicsIGluaXRpYWxWYWx1ZTogMSwgcmFtcEZpbmFsVmFsdWU6IDEzN30pLAorICAg
ICAgICAgICAgXSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAg
IH0pOworCisgICAgICAvLyBSdW4gdGVzdCBvZiBhdXRvbWF0aW9uIHByb2Nlc3NpbmcuIHxvcHRp
b25zfCBpcyBhIGRpY3Rpb25hcnkgdGhhdAorICAgICAgLy8gZGVzY3JpYmVzIHRoZSBub2RlIHRv
IHRlc3QsIHRoZSBBdWRpb1BhcmFtcyB0byBiZSB0ZXN0ZWQgYW5kIHRoZSB2YWx1ZXMKKyAgICAg
IC8vIGZvciB0aGUgQXVkaW9QYXJhbS4gIFRoZSBtZW1iZXJzIG9mIHRoZSBkaWN0aW9uYXJ5IGFy
ZToKKyAgICAgIC8vCisgICAgICAvLyAgIG5vZGVOYW1lICAgICAgIC0gbmFtZSBvZiB0aGUgbm9k
ZSAoY29uc3RydWN0b3IgbmFtZSkKKyAgICAgIC8vICAgcGFyYW1OYW1lICAgICAgLSBuYW1lIG9m
IHRoZSBBdWRpb1BhcmFtIHRvIGJlIHRlc3RlZAorICAgICAgLy8gICBpbml0aWFsVmFsdWUgICAt
IHN0YXJ0aW5nIHZhbHVlIGZvciBsaW5lYXIgcmFtcAorICAgICAgLy8gICByYW1wRmluYWxWYWx1
ZSAtIGZpbmFsZSB2YWx1ZSBmb3IgbGluZWFyIHJhbXAKKyAgICAgIC8vCisgICAgICAvLyBUaGUg
dGVzdCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgc3VjY2VlZGVkIGlmIHRoZSB8LnZhbHVlfCBvZiB0
aGUKKyAgICAgIC8vIEF1ZGlvUGFyYW0gaXMgdGhlIGZpbmFsIHZhbHVlLgorICAgICAgLy8KKyAg
ICAgIC8vIEEgc2ltcGxlIGdyYXBoIGlzIGNyZWF0ZWQgY29udGFpbmluZyB0aGUgbm9kZSB0byBi
ZSB0ZXN0ZWQsIGNvbm5lY3RlZAorICAgICAgLy8gdG8gdGhlIGRlc3RpbmF0aW9uLiAgQSBsaW5l
YXIgcmFtcCBhdXRvbWF0aW9uIGlzIHNjaGVkdWxlZCBmb3IgdGhlCisgICAgICAvLyBzcGVjaWZp
ZWQgQXVkaW9QYXJhbSwgc3RhcnRpbmcgYW5kIGVuZGluZyBhdCB0aGUgdmFsdWVzIGdpdmVuLgor
ICAgICAgLy8KKyAgICAgIC8vIFByb2Nlc3NpbmcgaXMgc3RhcnRlZCBhbmQgYWZ0ZXIgc29tZSBu
dW1iZXIgb2YgZnJhbWVzLCB0aGUgfC52YWx1ZXwgb2YKKyAgICAgIC8vIHRoZSBBdWRpb1BhcmFt
IGlzIG9idGFpbmVkIGFuZCBjb21wYXJlZCBhZ2FpbnN0IHRoZSBmaW5hbCB2YWx1ZS4gIFRoZXNl
CisgICAgICAvLyBzaG91bGQgbWF0Y2ggZXhhY3RseS4KKyAgICAgIGZ1bmN0aW9uIHRlc3RQYXJh
bUF1dG9tYXRpb24oc2hvdWxkLCBvcHRpb25zKSB7CisgICAgICAgIGxldCBjb250ZXh0ID0gbmV3
IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKworICAg
ICAgICAvLyBDcmVhdGUgdGhlIG5vZGUgdG8gYmUgdGVzdGVkCisgICAgICAgIGxldCBub2RlID0g
bmV3IHdpbmRvd1tvcHRpb25zLm5vZGVOYW1lXShjb250ZXh0KTsKKyAgICAgICAgbm9kZS5jb25u
ZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIC8vIEEgbGluZWFyIHJhbXAgc3Rh
cnRpbmcgYXQgZnJhbWUgMCB0byBmcmFtZSB8YXV0b21hdGlvbkVuZEZyYW1lfCBpcworICAgICAg
ICAvLyB1c2VkIGZvciB0aGUgdGVzdC4gIFRoaXMgdmFsdWUgaXMgZmFpcmx5IGFyYml0cmFyeSwg
YnV0IGl0IHNob3VsZCBiZQorICAgICAgICAvLyBsZXNzIHRoYW4gdGhlIHRvdGFsIHJlbmRlciBm
cmFtZXMuCisKKyAgICAgICAgbm9kZVtvcHRpb25zLnBhcmFtTmFtZV0uc2V0VmFsdWVBdFRpbWUo
b3B0aW9ucy5pbml0aWFsVmFsdWUsIDApOworICAgICAgICBub2RlW29wdGlvbnMucGFyYW1OYW1l
XS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgKKyAgICAgICAgICAgIG9wdGlvbnMucmFtcEZpbmFs
VmFsdWUsIGF1dG9tYXRpb25FbmRGcmFtZSAvIGNvbnRleHQuc2FtcGxlUmF0ZSk7CisKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1
ZmZlcikgeworICAgICAgICAgIC8vIFNhbml0eSBjaGVjazogdGhlIGdpdmVuIHJhbXAgZmluYWwg
dmFsdWUgbXVzdCBub3QgYmUgdGhlIGRlZmF1bHQKKyAgICAgICAgICAvLyB2YWx1ZSwgb3RoZXJ3
aXNlIHdlIGNhbid0IGVhc2lseSB0ZWxsIGlmIHRoZSBhdXRvbWF0aW9uIHdhcworICAgICAgICAg
IC8vIGFjdHVhbGx5IHJ1bi4KKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIG9wdGlv
bnMucmFtcEZpbmFsVmFsdWUsCisgICAgICAgICAgICAgIG9wdGlvbnMubm9kZU5hbWUgKyAnLicg
KyBvcHRpb25zLnBhcmFtTmFtZSArICcgcmFtcCBmaW5hbCB2YWx1ZScpCisgICAgICAgICAgICAg
IC5ub3RCZUVxdWFsVG8obm9kZVtvcHRpb25zLnBhcmFtTmFtZV0uZGVmYXVsdFZhbHVlKTsKKwor
ICAgICAgICAgIC8vIFRoZSBhY3R1YWwgQXVkaW9QYXJhbSB2YWx1ZSBzaG91bGQgYmUgdGhlIHJh
bXBlIGZpbmFsIHZhbHVlLgorICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgbm9kZVtv
cHRpb25zLnBhcmFtTmFtZV0udmFsdWUsCisgICAgICAgICAgICAgIG9wdGlvbnMubm9kZU5hbWUg
KyAnLicgKyBvcHRpb25zLnBhcmFtTmFtZSArICcudmFsdWUnKQorICAgICAgICAgICAgICAuYmVF
cXVhbFRvKG9wdGlvbnMucmFtcEZpbmFsVmFsdWUpOworICAgICAgICB9KTsKKyAgICAgIH0KKwor
ICAgICAgZnVuY3Rpb24gdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCBvcHRpb25zKSB7CisgICAg
ICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVz
LCBzYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBDcmVhdGUgdGhlIG5vZGUgdG8gYmUgdGVzdGVk
CisgICAgICAgIGxldCBub2RlID0gbmV3IFBhbm5lck5vZGUoY29udGV4dCk7CisgICAgICAgIG5v
ZGUuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICAvLyBBIGxpbmVhciBy
YW1wIHN0YXJ0aW5nIGF0IGZyYW1lIDAgdG8gZnJhbWUgfGF1dG9tYXRpb25FbmRGcmFtZXwgaXMK
KyAgICAgICAgLy8gdXNlZCBmb3IgdGhlIHRlc3QuICBUaGlzIHZhbHVlIGlzIGZhaXJseSBhcmJp
dHJhcnksIGJ1dCBpdCBzaG91bGQgYmUKKyAgICAgICAgLy8gbGVzcyB0aGFuIHRoZSB0b3RhbCBy
ZW5kZXIgZnJhbWVzLgorCisgICAgICAgIGNvbnRleHQubGlzdGVuZXJbb3B0aW9ucy5wYXJhbU5h
bWVdLnNldFZhbHVlQXRUaW1lKAorICAgICAgICAgICAgb3B0aW9ucy5pbml0aWFsVmFsdWUsIDAp
OworICAgICAgICBjb250ZXh0Lmxpc3RlbmVyW29wdGlvbnMucGFyYW1OYW1lXS5saW5lYXJSYW1w
VG9WYWx1ZUF0VGltZSgKKyAgICAgICAgICAgIG9wdGlvbnMucmFtcEZpbmFsVmFsdWUsIGF1dG9t
YXRpb25FbmRGcmFtZSAvIGNvbnRleHQuc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgcmV0dXJuIGNv
bnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAg
ICAgICAgIC8vIFNhbml0eSBjaGVjazogdGhlIGdpdmVuIHJhbXAgZmluYWwgdmFsdWUgbXVzdCBu
b3QgYmUgdGhlIGRlZmF1bHQKKyAgICAgICAgICAvLyB2YWx1ZSwgb3RoZXJ3aXNlIHdlIGNhbid0
IGVhc2lseSB0ZWxsIGlmIHRoZSBhdXRvbWF0aW9uIHdhcworICAgICAgICAgIC8vIGFjdHVhbGx5
IHJ1bi4KKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIG9wdGlvbnMucmFtcEZpbmFs
VmFsdWUsCisgICAgICAgICAgICAgICdBdWRpb0xpc3RlbmVyLicgKyBvcHRpb25zLnBhcmFtTmFt
ZSArICcgcmFtcCBmaW5hbCB2YWx1ZScpCisgICAgICAgICAgICAgIC5ub3RCZUVxdWFsVG8oY29u
dGV4dC5saXN0ZW5lcltvcHRpb25zLnBhcmFtTmFtZV0uZGVmYXVsdFZhbHVlKTsKKworICAgICAg
ICAgIC8vIFRoZSBhY3R1YWwgQXVkaW9QYXJhbSB2YWx1ZSBzaG91bGQgYmUgdGhlIHJhbXBlIGZp
bmFsIHZhbHVlLgorICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgY29udGV4dC5saXN0
ZW5lcltvcHRpb25zLnBhcmFtTmFtZV0udmFsdWUsCisgICAgICAgICAgICAgICdBdWRpb0xpc3Rl
bmVyLicgKyBvcHRpb25zLnBhcmFtTmFtZSArICcudmFsdWUnKQorICAgICAgICAgICAgICAuYmVF
cXVhbFRvKG9wdGlvbnMucmFtcEZpbmFsVmFsdWUpOworICAgICAgICB9KTsKKyAgICAgIH0KKwor
ICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zYW1w
bGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tc2FtcGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0MzZkODJhYjJkY2YwOTU4
YTllYjYyMmQ4ZjlmMDhjNjdlZTU3MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2FtcGxpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzUgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBF
eGVjdXRpbmcgImxpbmVhclJhbXA6dGFzazAiIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhclJhbXA6
c2hvcnQ6dGFzazEiIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhclJhbXA6bG9uZzp0YXNrMiIgCitQ
QVNTIEV4ZWN1dGluZyAiZXhwb25lbnRpYWxSYW1wOnRhc2szIiAKK1BBU1MgRXhlY3V0aW5nICJl
eHBvbmVudGlhbFJhbXA6c2hvcnQ6dGFzazQiIAorUEFTUyBFeGVjdXRpbmcgImV4cG9uZW50aWFs
UmFtcDpsb25nOnRhc2s1IiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtsaW5lYXJSYW1w
OnRhc2swXSAgCitQQVNTICAgbGluZWFyUmFtcDogU2FtcGxlIDEgaXMgMC45OTI5Njg3NSB3aXRo
aW4gYW4gZXJyb3Igb2YgMS4yMDFlLTguIAorUEFTUyAgIGxpbmVhclJhbXA6IFNhbXBsZSAxMjgg
aXMgMC4wMDA3ODEyNDk5OTk5OTk4NDQ2IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAxNTI2LiAK
K1BBU1MgPCBbbGluZWFyUmFtcDp0YXNrMF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbbGluZWFyUmFtcDpzaG9ydDp0YXNrMV0gIAorUEFTUyAg
IGxpbmVhclJhbXA6c2hvcnQ6IFNhbXBsZSAxIGlzIDAuODIgd2l0aGluIGFuIGVycm9yIG9mIDgu
NzIzZS05LiAKK1BBU1MgICBsaW5lYXJSYW1wOnNob3J0OiBTYW1wbGUgNSBpcyAwLjAyMDAwMDAw
MDAwMDAwMDAxOCB3aXRoaW4gYW4gZXJyb3Igb2YgOS41MzdlLTcuIAorUEFTUyA8IFtsaW5lYXJS
YW1wOnNob3J0OnRhc2sxXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlv
bnMpIAorUEFTUyA+IFtsaW5lYXJSYW1wOmxvbmc6dGFzazJdICAKK1BBU1MgICBsaW5lYXJSYW1w
Omxvbmc6IFNhbXBsZSAxIGlzIDAuOTk1NSB3aXRoaW4gYW4gZXJyb3Igb2YgMi44MjdlLTguIAor
UEFTUyAgIGxpbmVhclJhbXA6bG9uZzogU2FtcGxlIDIwMCBpcyAwLjAwMDQ5OTk5OTk5OTk5OTk0
NDkgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDQ2NzQuIAorUEFTUyA8IFtsaW5lYXJSYW1wOmxv
bmc6dGFzazJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW2V4cG9uZW50aWFsUmFtcDp0YXNrM10gIAorUEFTUyAgIGV4cG9uZW50aWFsUmFtcDog
U2FtcGxlIDEgaXMgMC45MjIyMzk1NjUxMDQ0MjM1IHdpdGhpbiBhbiBlcnJvciBvZiAyLjUwNWUt
OC4gCitQQVNTICAgZXhwb25lbnRpYWxSYW1wOiBTYW1wbGUgMTI4IGlzIDAuMDAwMDEwMDkwMzUw
NDQ4NDE0NDcgd2l0aGluIGFuIGVycm9yIG9mIDEuNDg0ZS03LiAKK1BBU1MgPCBbZXhwb25lbnRp
YWxSYW1wOnRhc2szXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMp
IAorUEFTUyA+IFtleHBvbmVudGlhbFJhbXA6c2hvcnQ6dGFzazRdICAKK1BBU1MgICBleHBvbmVu
dGlhbFJhbXA6c2hvcnQ6IFNhbXBsZSAxIGlzIDAuMTI1ODkyNTQxMTc5NDE2NjQgd2l0aGluIGFu
IGVycm9yIG9mIDUuMDI3ZS04LiAKK1BBU1MgICBleHBvbmVudGlhbFJhbXA6c2hvcnQ6IFNhbXBs
ZSA1IGlzIDAuMDAwMDEyNTg5MjU0MTE3OTQxNjYgd2l0aGluIGFuIGVycm9yIG9mIDMuODIxZS03
LiAKK1BBU1MgPCBbZXhwb25lbnRpYWxSYW1wOnNob3J0OnRhc2s0XSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtleHBvbmVudGlhbFJhbXA6bG9u
Zzp0YXNrNV0gIAorUEFTUyAgIGV4cG9uZW50aWFsUmFtcDpsb25nOiBTYW1wbGUgMSBpcyAwLjk0
OTUxMDk5OTIwMjE5ODIgd2l0aGluIGFuIGVycm9yIG9mIDguMDM1ZS05LiAKK1BBU1MgICBleHBv
bmVudGlhbFJhbXA6bG9uZzogU2FtcGxlIDIwMCBpcyAwLjAwMDAxMDA1NzczMDYzMDAxNzM3OCB3
aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDEzMzcuIAorUEFTUyA8IFtleHBvbmVudGlhbFJhbXA6
bG9uZzp0YXNrNV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAK
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogNiB0YXNrcyByYW4gc3VjY2Vzc2Z1
bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLXNhbXBsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tc2FtcGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGIzM2Y0MjBlNzkwNDA1ZjA2Yzhj
MmM1YTg0NzQ1MDk4MTkyMWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNhbXBsaW5nLmh0bWwKQEAgLTAsMCArMSwxNzUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRl
c3QgU2FtcGxpbmcgb2YgTGluZWFyUmFtcFRvVmFsdWVBdFRpbWUKKyAgICA8L3RpdGxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJv
ZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2FtcGxl
UmF0ZSA9IDEyODAwOworICAgICAgbGV0IGNvbnRleHQ7CisKKyAgICAgIGxldCBhdWRpdCA9IEF1
ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgZnVuY3Rpb24gcnVuVGVzdChzaG91bGQs
IGNvbmZpZykgeworICAgICAgICAvLyBDcmVhdGUgYSBzaG9ydCBjb250ZXh0IHdpdGggYSBjb25z
dGFudCBzaWduYWwgc291cmNlIGNvbm5lY3RlZCB0byBhCisgICAgICAgIC8vIGdhaW4gbm9kZSB0
aGF0IHdpbGwgYmUgYXV0b21hdGVkLgorICAgICAgICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoMSwgMjU2LCBzYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBDcmVhdGUgYSBjb25z
dGFudCB1bml0IGFtcGxpdHVkZSBzb3VyY2UuCisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0
LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBsZXQgYiA9IGNyZWF0ZUNvbnN0YW50QnVm
ZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gYjsKKyAgICAgICAg
c291cmNlLmxvb3AgPSB0cnVlOworCisgICAgICAgIC8vIEdhaW4gbm9kZSB0aGF0IGlzIHRvIGJl
IGF1dG9tYXRlZC4KKyAgICAgICAgbGV0IGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAg
ICAgICAgZ2Fpbi5nYWluLnZhbHVlID0gMDsKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRU
aW1lKGNvbmZpZy5zdGFydFZhbHVlLCBjb25maWcuc3RhcnRUaW1lKTsKKyAgICAgICAgY29uZmln
LmF1dG9tYXRpb25GdW5jdGlvbihnYWluKTsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChnYWlu
KTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAg
IHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5n
KCkudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAgICAgICAgICAvLyBDaGVjayB0aGF0
IHRoZSBhdXRvbWF0aW9uIGhhcyB0aGUgY29ycmVjdCBzYW1wbGluZy4KKyAgICAgICAgICBsZXQg
cmVzdWx0RGF0YSA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKworICAgICAgICAg
IC8vIFRoZSBhdXRvbWF0aW9uIGhhcyBzdGFydHMgYXQgY29uZmlnLnN0YXJ0VGltZSwgc28gdGhl
IGZyYW1lIGp1c3QKKyAgICAgICAgICAvLyBhZnRlciB0aGlzIHNob3VsZCBoYXZlIHRoZSBhdXRv
bWF0aW9uIGFwcGxpZWQuCisgICAgICAgICAgbGV0IHN0YXJ0RnJhbWUgPSBNYXRoLmNlaWwoY29u
ZmlnLnN0YXJ0VGltZSAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgLy8gVGhlIGF1dG9tYXRp
b24gZW5kcyBhdCBjb25maWcuZW5kVGltZSBzbyB0aGUgZnJhbWUganVzdCBiZWZvcmUgdGhpcwor
ICAgICAgICAgIC8vIHNob3VsZCBoYXZlIHRoZSBhdXRvbWF0aW9uIGFwcGxpZWQuCisgICAgICAg
ICAgbGV0IGVuZEZyYW1lID0gTWF0aC5mbG9vcihjb25maWcuZW5kVGltZSAqIHNhbXBsZVJhdGUp
OworCisgICAgICAgICAgLy8gVXNlIHRoZSB0cnVlIGF1dG9tYXRpb24gdG8gZmluZCB0aGUgZXhw
ZWN0ZWQgdmFsdWVzLgorICAgICAgICAgIGxldCBleHBlY3RlZFN0YXJ0ID0gY29uZmlnLmV4cGVj
dGVkRnVuY3Rpb24oc3RhcnRGcmFtZSAvIHNhbXBsZVJhdGUpOworICAgICAgICAgIGxldCBleHBl
Y3RlZEVuZCA9IGNvbmZpZy5leHBlY3RlZEZ1bmN0aW9uKGVuZEZyYW1lIC8gc2FtcGxlUmF0ZSk7
CisKKyAgICAgICAgICBzaG91bGQocmVzdWx0RGF0YVtzdGFydEZyYW1lXSwgY29uZmlnLmRlc2Mg
KyAnOiBTYW1wbGUgJyArIHN0YXJ0RnJhbWUpCisgICAgICAgICAgICAgIC5iZUNsb3NlVG8oCisg
ICAgICAgICAgICAgICAgICBleHBlY3RlZFN0YXJ0LCB7dGhyZXNob2xkOiBjb25maWcuc3RhcnRW
YWx1ZVRocmVzaG9sZH0pOworICAgICAgICAgIHNob3VsZChyZXN1bHREYXRhW2VuZEZyYW1lXSwg
Y29uZmlnLmRlc2MgKyAnOiBTYW1wbGUgJyArIGVuZEZyYW1lKQorICAgICAgICAgICAgICAuYmVD
bG9zZVRvKGV4cGVjdGVkRW5kLCB7dGhyZXNob2xkOiBjb25maWcuZW5kVmFsdWVUaHJlc2hvbGR9
KTsKKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGV4cGVjdGVkTGluZWFy
KHQpIHsKKyAgICAgICAgbGV0IHNsb3BlID0KKyAgICAgICAgICAgICh0aGlzLmVuZFZhbHVlIC0g
dGhpcy5zdGFydFZhbHVlKSAvICh0aGlzLmVuZFRpbWUgLSB0aGlzLnN0YXJ0VGltZSk7CisgICAg
ICAgIHJldHVybiB0aGlzLnN0YXJ0VmFsdWUgKyBzbG9wZSAqICh0IC0gdGhpcy5zdGFydFRpbWUp
OworICAgICAgfTsKKworICAgICAgZnVuY3Rpb24gZXhwZWN0ZWRFeHBvbmVudGlhbCh0KSB7Cisg
ICAgICAgIGxldCByYXRpbyA9IHRoaXMuZW5kVmFsdWUgLyB0aGlzLnN0YXJ0VmFsdWU7CisgICAg
ICAgIGxldCBleHBvbmVudCA9ICh0IC0gdGhpcy5zdGFydFRpbWUpIC8gKHRoaXMuZW5kVGltZSAt
IHRoaXMuc3RhcnRUaW1lKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRWYWx1ZSAqIE1hdGgu
cG93KHJhdGlvLCBleHBvbmVudCk7CisgICAgICB9OworCisgICAgICBmdW5jdGlvbiBsaW5lYXJB
dXRvbWF0aW9uKGcpIHsKKyAgICAgICAgZy5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHRo
aXMuZW5kVmFsdWUsIHRoaXMuZW5kVGltZSk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGV4
cG9uZW50aWFsQXV0b21hdGlvbihnKSB7CisgICAgICAgIGcuZ2Fpbi5leHBvbmVudGlhbFJhbXBU
b1ZhbHVlQXRUaW1lKHRoaXMuZW5kVmFsdWUsIHRoaXMuZW5kVGltZSk7CisgICAgICB9CisKKyAg
ICAgIC8vIEJhc2ljYWxseSB3YW50IHRvIHRlc3QgdGhhdCBpZiBuZWl0aGVyIHRoZSBzdGFydCB0
aW1lIG5vciBlbmQgdGltZSBpcworICAgICAgLy8gb24gYSBmcmFtZSBib3VuZGFyeSB0aGF0IHdl
IHNhbXBsZSB0aGUgYXV0b21hdGlvbiBjdXJ2ZSBjb3JyZWN0bHkuICBUaGUKKyAgICAgIC8vIHN0
YXJ0IHRpbWVzIGFuZCBlbmQgdGltZXMgYXJlIG1vc3RseSBhcmJpdHJhcnksIGV4Y2VwdCB0aGF0
IHRoZXkgY2Fubm90CisgICAgICAvLyBiZSBvbiBhIGZyYW1lIGJvdW5kYXJ5LgorICAgICAgbGV0
IHRlc3RDb25maWdzID0gWworICAgICAgICB7CisgICAgICAgICAgZGVzYzogJ2xpbmVhclJhbXAn
LAorICAgICAgICAgIHN0YXJ0VGltZTogLjEgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGVuZFRp
bWU6IDEyOC4xIC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBzdGFydFZhbHVlOiAxLAorICAgICAg
ICAgIGVuZFZhbHVlOiAwLAorICAgICAgICAgIHN0YXJ0VmFsdWVUaHJlc2hvbGQ6IDEuMjAxZS04
LAorICAgICAgICAgIGVuZFZhbHVlVGhyZXNob2xkOiAxLjUyNmUtNSwKKyAgICAgICAgICBhdXRv
bWF0aW9uRnVuY3Rpb246IGxpbmVhckF1dG9tYXRpb24sCisgICAgICAgICAgZXhwZWN0ZWRGdW5j
dGlvbjogZXhwZWN0ZWRMaW5lYXIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGRl
c2M6ICdsaW5lYXJSYW1wOnNob3J0JywKKyAgICAgICAgICBzdGFydFRpbWU6IC4xIC8gc2FtcGxl
UmF0ZSwKKyAgICAgICAgICBlbmRUaW1lOiA1LjEgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIHN0
YXJ0VmFsdWU6IDEsCisgICAgICAgICAgZW5kVmFsdWU6IDAsCisgICAgICAgICAgc3RhcnRWYWx1
ZVRocmVzaG9sZDogOC43MjNlLTksCisgICAgICAgICAgZW5kVmFsdWVUaHJlc2hvbGQ6IDkuNTM3
ZS03LAorICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbjogbGluZWFyQXV0b21hdGlvbiwKKyAg
ICAgICAgICBleHBlY3RlZEZ1bmN0aW9uOiBleHBlY3RlZExpbmVhcgorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgZGVzYzogJ2xpbmVhclJhbXA6bG9uZycsCisgICAgICAgICAgc3Rh
cnRUaW1lOiAuMSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgZW5kVGltZTogMjAwLjEgLyBzYW1w
bGVSYXRlLAorICAgICAgICAgIHN0YXJ0VmFsdWU6IDEsCisgICAgICAgICAgZW5kVmFsdWU6IDAs
CisgICAgICAgICAgc3RhcnRWYWx1ZVRocmVzaG9sZDogMi44MjdlLTgsCisgICAgICAgICAgZW5k
VmFsdWVUaHJlc2hvbGQ6IDQuNjc0ZS01LAorICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbjog
bGluZWFyQXV0b21hdGlvbiwKKyAgICAgICAgICBleHBlY3RlZEZ1bmN0aW9uOiBleHBlY3RlZExp
bmVhcgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZGVzYzogJ2V4cG9uZW50aWFs
UmFtcCcsCisgICAgICAgICAgc3RhcnRUaW1lOiAuMSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAg
ZW5kVGltZTogMTI4LjEgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIHN0YXJ0VmFsdWU6IDEsCisg
ICAgICAgICAgZW5kVmFsdWU6IDFlLTUsCisgICAgICAgICAgc3RhcnRWYWx1ZVRocmVzaG9sZDog
Mi41MDVlLTgsCisgICAgICAgICAgZW5kVmFsdWVUaHJlc2hvbGQ6IDEuNDg0ZS03LAorICAgICAg
ICAgIGF1dG9tYXRpb25GdW5jdGlvbjogZXhwb25lbnRpYWxBdXRvbWF0aW9uLAorICAgICAgICAg
IGV4cGVjdGVkRnVuY3Rpb246IGV4cGVjdGVkRXhwb25lbnRpYWwKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgIGRlc2M6ICdleHBvbmVudGlhbFJhbXA6c2hvcnQnLAorICAgICAgICAg
IHN0YXJ0VGltZTogLjEgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGVuZFRpbWU6IDUuMSAvIHNh
bXBsZVJhdGUsCisgICAgICAgICAgc3RhcnRWYWx1ZTogMSwKKyAgICAgICAgICBlbmRWYWx1ZTog
MWUtNSwKKyAgICAgICAgICBzdGFydFZhbHVlVGhyZXNob2xkOiA1LjAyN2UtOCwKKyAgICAgICAg
ICBlbmRWYWx1ZVRocmVzaG9sZDogMy44MjFlLTcsCisgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0
aW9uOiBleHBvbmVudGlhbEF1dG9tYXRpb24sCisgICAgICAgICAgZXhwZWN0ZWRGdW5jdGlvbjog
ZXhwZWN0ZWRFeHBvbmVudGlhbAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZGVz
YzogJ2V4cG9uZW50aWFsUmFtcDpsb25nJywKKyAgICAgICAgICBzdGFydFRpbWU6IC4xIC8gc2Ft
cGxlUmF0ZSwKKyAgICAgICAgICBlbmRUaW1lOiAyMDAuMSAvIHNhbXBsZVJhdGUsCisgICAgICAg
ICAgc3RhcnRWYWx1ZTogMSwKKyAgICAgICAgICBlbmRWYWx1ZTogMWUtNSwKKyAgICAgICAgICBz
dGFydFZhbHVlVGhyZXNob2xkOiA4LjAzNWUtOSwKKyAgICAgICAgICBlbmRWYWx1ZVRocmVzaG9s
ZDogMS4zMzdlLTYsCisgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uOiBleHBvbmVudGlhbEF1
dG9tYXRpb24sCisgICAgICAgICAgZXhwZWN0ZWRGdW5jdGlvbjogZXhwZWN0ZWRFeHBvbmVudGlh
bAorICAgICAgICB9LAorICAgICAgXTsKKworICAgICAgZnVuY3Rpb24gY3JlYXRlVGFza0Z1bmN0
aW9uKGNvbmZpZykgeworICAgICAgICByZXR1cm4gKHRhc2ssIHNob3VsZCkgPT4geworICAgICAg
ICAgIHJ1blRlc3Qoc2hvdWxkLCBjb25maWcpLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAg
ICAgICB9OworICAgICAgfQorCisgICAgICAvLyBDcmVhdGUgYWxsIG9mIHRoZSB0YXNrcyBmcm9t
IHRoZSB0ZXN0IGNvbmZpZ3MKKyAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdGVzdENvbmZpZ3Mu
bGVuZ3RoOyArK2spIHsKKyAgICAgICAgbGV0IGNvbmZpZyA9IHRlc3RDb25maWdzW2tdOworICAg
ICAgICBsZXQgdGFza05hbWUgPSBjb25maWcuZGVzYyArICc6dGFzaycgKyBrOworICAgICAgICBh
dWRpdC5kZWZpbmUodGFza05hbWUsIGNyZWF0ZVRhc2tGdW5jdGlvbihjb25maWcpKTsKKyAgICAg
IH0KKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJh
bS1zZXRUYXJnZXQtdGltZUNvbnN0YW50LTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldC10aW1lQ29uc3RhbnQtMC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzA2OTc2MzM1OThlY2Q0ODM2NDE4Yzk3N2QzNjNhMmYxMTc4
ZDNlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0v
YXVkaW9wYXJhbS1zZXRUYXJnZXQtdGltZUNvbnN0YW50LTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVj
dXRpbmcgInRpbWVjb25zdGFudC0wIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFt0aW1l
Y29uc3RhbnQtMF0gIAorUEFTUyAgIE91dHB1dCBmb3IgZnJhbWUgWzExLCAyMSkgY29udGFpbnMg
b25seSB0aGUgY29uc3RhbnQgMC4gCitQQVNTICAgT3V0cHV0IGZvciBmcmFtZSBbMjEsIDEwMSkg
Y29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAKK1BBU1MgICBPdXRwdXQgZm9yIGZyYW1l
IFsxMDEsIDEyOCkgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4gCitQQVNTIDwgW3RpbWVj
b25zdGFudC0wXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAor
UEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVs
bHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tc2V0VGFyZ2V0LXRpbWVDb25zdGFudC0wLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0LXRpbWVDb25zdGFudC0wLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjBlNjNiZDZiNzJjNTFjNmIxOWQyNjEwODc5YWU1ZmUzNzI1OWM0MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1z
ZXRUYXJnZXQtdGltZUNvbnN0YW50LTAuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IHNldFRhcmdl
dEF0VGltZSB3aXRoIHRpbWVDb25zdGFudD0wCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQg
aWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgLy8gRmFpcmx5IGFyYml0cmFyeSBzYW1wbGUg
cmF0ZSBhbmQgbnVtYmVyIG9mIGZyYW1lcywgc28gY2hvb3NlIGEgbG93CisgICAgICAvLyBzYW1w
bGUgcmF0ZSwgYW5kIHNob3J0IHJlbmRlcmluZyBsZW5ndGguCisgICAgICBsZXQgc2FtcGxlUmF0
ZSA9IDgwMDA7CisgICAgICBsZXQgcmVuZGVyRnJhbWVzID0gMTI4OworCisgICAgICAvLyBBcnJh
eSBzcGVjaWZ5aW5nIHBhcmFtZXRlcnMgZm9yIHNldFRhcmdldEF0VGltZS4gIHxmcmFtZXwgaXMg
dGhlIGZyYW1lCisgICAgICAvLyAobm90IG5lY2Vzc2FyaWx5IGFuIGludGVnZXIpIGF0IHdoaWNo
IHNldFRhcmdldEF0VGltZSBzdGFydHMsIGFuZAorICAgICAgLy8gfHZhbHVlfCBpcyB0aGUgdGFy
Z2V0IHZhbHVlLiAgTm9uLWludGVncmFsIHZhbHVlcyBmb3IgfGZyYW1lfCB0ZXN0cworICAgICAg
Ly8gdGhhdCB3ZSBzdGFydGVkIHRoZSBzZXRUYXJnZXRBdFRpbWUgYXQgdGhlIHJpZ2h0IHRpbWUu
CisgICAgICBsZXQgdGFyZ2V0VmFsdWVJbmZvID0gWworICAgICAgICB7ZnJhbWU6IDEwLjEsIHZh
bHVlOiAwfSwge2ZyYW1lOiAyMC4zLCB2YWx1ZTogMC41fSwKKyAgICAgICAge2ZyYW1lOiAxMDAu
NSwgdmFsdWU6IDF9CisgICAgICBdOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVU
YXNrUnVubmVyKCk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgndGltZWNvbnN0YW50LTAnLCAodGFz
aywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0Nv
bnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBTaW1wbGUg
Y29uc3RhbnQgc291cmNlIGZvciB0ZXN0aW5nLgorCisgICAgICAgIGxldCBzcmMgPSBuZXcgQ29u
c3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworCisgICAgICAgIC8vIFdlJ3JlIGdvaW5nIHRvIGF1
dG9tYXRlIHRoZSBnYWluIG5vZGUgdG8gdGVzdCBzZXRUYXJnZXRBdFRpbWUuCisgICAgICAgIGxl
dCBnYWluID0gbmV3IEdhaW5Ob2RlKGNvbnRleHQsIHtnYWluOiAxfSk7CisKKyAgICAgICAgc3Jj
LmNvbm5lY3QoZ2FpbikuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBm
b3IgKGxldCBrID0gMDsgayA8IHRhcmdldFZhbHVlSW5mby5sZW5ndGg7ICsraykgeworICAgICAg
ICAgIGdhaW4uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUoCisgICAgICAgICAgICAgIHRhcmdldFZhbHVl
SW5mb1trXS52YWx1ZSwKKyAgICAgICAgICAgICAgdGFyZ2V0VmFsdWVJbmZvW2tdLmZyYW1lIC8g
Y29udGV4dC5zYW1wbGVSYXRlLCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIHNyYy5zdGFydCgp
OworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXN1
bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAgICAgIGxldCBzdWNjZXNzID0g
dHJ1ZTsKKworICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSB0aW1lIGNvbnN0YW50IGlzIDAs
IHRoZSBhdXRvbWF0aW9uIHNob3VsZCBpbnN0YW50bHkKKyAgICAgICAgICAgICAgLy8ganVtcCB0
byB0aGUgdGFyZ2V0IHZhbHVlIGF0IHRoZSBzdGFydCB0aW1lLiAgVmVyaWZ5IHRoYXQgdGhlCisg
ICAgICAgICAgICAgIC8vIG91dHB1dCBoYXMgdGhlIGV4cGVjdGVkIHZhbHVlLgorICAgICAgICAg
ICAgICBmb3IgKGxldCBrID0gMDsgayA8IHRhcmdldFZhbHVlSW5mby5sZW5ndGg7ICsraykgewor
ICAgICAgICAgICAgICAgIGxldCBzdGFydEZyYW1lID0gTWF0aC5jZWlsKHRhcmdldFZhbHVlSW5m
b1trXS5mcmFtZSk7CisgICAgICAgICAgICAgICAgbGV0IGVuZEZyYW1lID0gayA8IHRhcmdldFZh
bHVlSW5mby5sZW5ndGggLSAxID8KKyAgICAgICAgICAgICAgICAgICAgTWF0aC5jZWlsKHRhcmdl
dFZhbHVlSW5mb1trICsgMV0uZnJhbWUpIDoKKyAgICAgICAgICAgICAgICAgICAgcmVuZGVyRnJh
bWVzOworICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRhcmdldFZhbHVlSW5mb1trXS52YWx1
ZTsKKworICAgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0
LnNsaWNlKHN0YXJ0RnJhbWUsIGVuZEZyYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgJ091dHB1
dCBmb3IgZnJhbWUgWycgKyBzdGFydEZyYW1lICsgJywgJyArIGVuZEZyYW1lICsgJyknKQorICAg
ICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YodmFsdWUpOworICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUo
KSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtY29udGludW91cy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0QXRUaW1l
LWNvbnRpbnVvdXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZWM3OTBlZTdjOWI4MDRiZmU3
NmRmMThjNWRmYTdlNDMzYjE4NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0QXRUaW1lLWNvbnRpbnVvdXMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzcgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNU
QVJURUQuIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhciByYW1wIHJlcGxhY2UiIAorUEFTUyBFeGVj
dXRpbmcgImRlbGF5ZWQgbGluZWFyIHJhbXAiIAorUEFTUyBFeGVjdXRpbmcgImV4cG8gcmFtcCBy
ZXBsYWNlIiAKK1BBU1MgRXhlY3V0aW5nICJkZWxheWVkIGV4cG8gcmFtcCIgCitQQVNTIEF1ZGl0
IHJlcG9ydCAKK1BBU1MgPiBbbGluZWFyIHJhbXAgcmVwbGFjZV0gIAorUEFTUyAgIExpbmVhciBy
YW1wOiBJbml0aWFsIHBhcnQgZXF1YWxzIFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwx
Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9s
ZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBMaW5lYXIgcmFtcDogU2V0VGFy
Z2V0IHBhcnQgd2FzIGNvcnJlY3RseSByZXBsYWNlZCBieSB0aGUgcmFtcCAKK0ZBSUwgWCBMaW5l
YXIgcmFtcCBkb2VzIG5vdCBlcXVhbCBbMSwxLjAwMDQ0MDE0MDg0NTA3MDUsMS4wMDA4ODAyODE2
OTAxNDA4LDEuMDAxMzIwNDIyNTM1MjExMywxLjAwMTc2MDU2MzM4MDI4MTcsMS4wMDIyMDA3MDQy
MjUzNTIsMS4wMDI2NDA4NDUwNzA0MjI1LDEuMDAzMDgwOTg1OTE1NDkzLDEuMDAzNTIxMTI2NzYw
NTYzNSwxLjAwMzk2MTI2NzYwNTYzMzgsMS4wMDQ0MDE0MDg0NTA3MDQyLDEuMDA0ODQxNTQ5Mjk1
Nzc0NywxLjAwNTI4MTY5MDE0MDg0NSwxLjAwNTcyMTgzMDk4NTkxNTUsMS4wMDYxNjE5NzE4MzA5
ODYsMS4wMDY2MDIxMTI2NzYwNTYzLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwMDEyNjc2NSwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LgorCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3Qg
dGhyZXNob2xkCisJWzBdCTAuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBl
KzAJMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjI2NzY1MDAw
MDAwMDAwMDFlLTYKKwlbMV0JOC44MDI4MTY3Mzc0NDMyMDg3ZS00CTEuMDAwNDQwMTQwODQ1MDcw
NWUrMAk5Ljk5NTU5ODU5MTcxMzI2MTdlLTEJOS45OTEyMDEwNTYwMzcxODc4ZS0xCTEuMjY3NjUw
MDAwMDAwMDAwMWUtNgorCVsyXQkxLjc2MDU2MzM0NzQ4ODY0MTdlLTMJMS4wMDA4ODAyODE2OTAx
NDA4ZSswCTkuOTkxMTk3MTgzNDI2NTIxMmUtMQk5Ljk4MjQwOTg1MDgxMTM3MTJlLTEJMS4yNjc2
NTAwMDAwMDAwMDAxZS02CisJWzNdCTIuNjQwODQ1MDIxMjMyOTYyNmUtMwkxLjAwMTMyMDQyMjUz
NTIxMTNlKzAJOS45ODY3OTU3NzUxMzk3ODI5ZS0xCTkuOTczNjI2Mzc0MTE3NjIxMmUtMQkxLjI2
NzY1MDAwMDAwMDAwMDFlLTYKKwlbNF0JMy41MjExMjY2OTQ5NzcyODM1ZS0zCTEuMDAxNzYwNTYz
MzgwMjgxN2UrMAk5Ljk4MjM5NDM2Njg1MzA0NDZlLTEJOS45NjQ4NTA2MTU3Njg5NDQzZS0xCTEu
MjY3NjUwMDAwMDAwMDAwMWUtNgorCS4uLmFuZCAyMjY3IG1vcmUgZXJyb3JzLgorCU1heCBBYnNF
cnJvciBvZiAxLjAwMDAwMDAwMDAwMDAwMDBlKzAgYXQgaW5kZXggb2YgMC4KKwlNYXggUmVsRXJy
b3Igb2YgMS4wMDAwMDAwMDAwMDAwMDAwZSswIGF0IGluZGV4IG9mIDAuCisgYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgTGluZWFyIHJhbXA6IFRhaWwgcGFydCBl
cXVhbHMgWzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIuLi5dIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVz
aG9sZCI6MH0uIAorRkFJTCA8IFtsaW5lYXIgcmFtcCByZXBsYWNlXSAxIG91dCBvZiA0IGFzc2Vy
dGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyA+IFtkZWxheWVkIGxpbmVhciByYW1wXSAgCitQQVNTICAgRGVsYXllZCBsaW5lYXIgcmFt
cDogSW5pdGlhbCBwYXJ0IGVxdWFscyBbMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4u
Ll0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQi
OjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgRGVsYXllZCBsaW5lYXIgcmFtcDog
U2V0VGFyZ2V0IHBhcnQgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjMuNDM2MzJlLTcsInJlbGF0aXZl
VGhyZXNob2xkIjowfS4gCitGQUlMIFggRGVsYXllZCBsaW5lYXIgcmFtcCBkb2VzIG5vdCBlcXVh
bCBbMC40NDkzMjg5NjQxMTcyMjE1NiwwLjQ1MDE1MDI5NDExNTA0MDg3LDAuNDUwOTcxNjI0MTEy
ODYwMSwwLjQ1MTc5Mjk1NDExMDY3OTQsMC40NTI2MTQyODQxMDg0OTg2MywwLjQ1MzQzNTYxNDEw
NjMxNzk0LDAuNDU0MjU2OTQ0MTA0MTM3MiwwLjQ1NTA3ODI3NDEwMTk1NjQ1LDAuNDU1ODk5NjA0
MDk5Nzc1NzYsMC40NTY3MjA5MzQwOTc1OTQ5NSwwLjQ1NzU0MjI2NDA5NTQxNDIsMC40NTgzNjM1
OTQwOTMyMzM1LDAuNDU5MTg0OTI0MDkxMDUyNzcsMC40NjAwMDYyNTQwODg4NzIsMC40NjA4Mjc1
ODQwODY2OTEzMywwLjQ2MTY0ODkxNDA4NDUxMDYuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDAwMTA3OTcyLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uCisJSW5kZXgJQWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJv
cgkJVGVzdCB0aHJlc2hvbGQKKwlbMF0JMy4zODAyODE2MjcxNzgxOTIxZS0xCTQuNDkzMjg5NjQx
MTcyMjE1NmUtMQkxLjExMzAwODAxMzk5NDAyMzVlLTEJMi40NzcwNDQ4ODg4ODM4MTY1ZS0xCTEu
MDc5NzE5OTk5OTk5OTk5OWUtNgorCVsxXQkzLjM4OTA4NDYzNzE2NTA2OTZlLTEJNC41MDE1MDI5
NDExNTA0MDg3ZS0xCTEuMTEyNDE4MzAzOTg1MzM5MWUtMQkyLjQ3MTIxNTMyMTkyMzIzMzhlLTEJ
MS4wNzk3MTk5OTk5OTk5OTk5ZS02CisJWzJdCTMuMzk3ODg3MzQ5MTI4NzIzMWUtMQk0LjUwOTcx
NjI0MTEyODYwMTNlLTEJMS4xMTE4Mjg4OTE5OTk4NzgxZS0xCTIuNDY1NDA3NjQ5OTUzNjc0MGUt
MQkxLjA3OTcxOTk5OTk5OTk5OTllLTYKKwlbM10JMy40MDY2OTAwNjEwOTIzNzY3ZS0xCTQuNTE3
OTI5NTQxMTA2NzkzOGUtMQkxLjExMTIzOTQ4MDAxNDQxNzFlLTEJMi40NTk2MjEwOTM5MTg1ODIy
ZS0xCTEuMDc5NzE5OTk5OTk5OTk5OWUtNgorCVs0XQkzLjQxNTQ5MzA3MTA3OTI1NDJlLTEJNC41
MjYxNDI4NDEwODQ5ODYzZS0xCTEuMTEwNjQ5NzcwMDA1NzMyMmUtMQkyLjQ1Mzg1NDg4MDQxNjIx
ODNlLTEJMS4wNzk3MTk5OTk5OTk5OTk5ZS02CisJLi4uYW5kIDE4ODMgbW9yZSBlcnJvcnMuCisJ
TWF4IEFic0Vycm9yIG9mIDEuMTEzMDA4MDEzOTk0MDIzNWUtMSBhdCBpbmRleCBvZiAwLgorCU1h
eCBSZWxFcnJvciBvZiAyLjQ3NzA0NDg4ODg4MzgxNjVlLTEgYXQgaW5kZXggb2YgMC4KKyBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBEZWxheWVkIGxpbmVhciBy
YW1wOiBUYWlsIHBhcnQgZXF1YWxzIFsyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLi4u
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwgPCBbZGVsYXllZCBsaW5lYXIgcmFtcF0g
MSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbZXhwbyByYW1wIHJlcGxhY2VdICAKK1BBU1MgICBFeHBv
bmVudGlhbCByYW1wOiBJbml0aWFsIHBhcnQgZXF1YWxzIFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBFeHBvbmVudGlh
bCByYW1wOiBTZXRUYXJnZXQgcGFydCB3YXMgY29ycmVjdGx5IHJlcGxhY2VkIGJ5IHRoZSByYW1w
IAorRkFJTCBYIEV4cG9uZW50aWFsIHJhbXAgZG9lcyBub3QgZXF1YWwgWzEsMS4wMDAzMDUxNzU3
ODEyNSwxLjAwMDYxMDM1MTU2MjUsMS4wMDA5MTU2NDY1NTMwMzk2LDEuMDAxMjIxMDYwNzUyODY4
NywxLjAwMTUyNjU5NDE2MTk4NzMsMS4wMDE4MzIxMjc1NzExMDYsMS4wMDIxMzc4OTkzOTg4MDM3
LDEuMDAyNDQzNjcxMjI2NTAxNSwxLjAwMjc0OTU2MjI2MzQ4ODgsMS4wMDMwNTU0NTMzMDA0NzYs
MS4wMDMzNjE1ODI3NTYwNDI1LDEuMDAzNjY3NzEyMjExNjA4OSwxLjAwMzk3Mzk2MDg3NjQ2NDgs
MS4wMDQyODAzMjg3NTA2MTA0LDEuMDA0NTg2Njk2NjI0NzU1OS4uLl0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDExNDQ0MSwicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJ
UmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzFdCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAw
MDMwNTE3NTc4MTI1MDBlKzAJMy4wNTE3NTc4MTI1MDAwMDAwZS00CTMuMDUwODI2Nzc0MDU1NzY5
MmUtNAkxLjE0NDQwOTk5OTk5OTk5OTllLTUKKwlbMl0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEu
MDAwNjEwMzUxNTYyNTAwMGUrMAk2LjEwMzUxNTYyNTAwMDAwMDBlLTQJNi4wOTk3OTI2MDcwNTEz
NjA1ZS00CTEuMTQ0NDA5OTk5OTk5OTk5OWUtNQorCVszXQkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJ
MS4wMDA5MTU2NDY1NTMwMzk2ZSswCTkuMTU2NDY1NTMwMzk1NTA3OGUtNAk5LjE0ODA4OTExNDEz
MTI1NDVlLTQJMS4xNDQ0MDk5OTk5OTk5OTk5ZS01CisJWzRdCTEuMDAwMDAwMDAwMDAwMDAwMGUr
MAkxLjAwMTIyMTA2MDc1Mjg2ODdlKzAJMS4yMjEwNjA3NTI4Njg2NTIzZS0zCTEuMjE5NTcxNTgx
ODc0NzExMmUtMwkxLjE0NDQwOTk5OTk5OTk5OTllLTUKKwlbNV0JMS4wMDAwMDAwMDAwMDAwMDAw
ZSswCTEuMDAxNTI2NTk0MTYxOTg3M2UrMAkxLjUyNjU5NDE2MTk4NzMwNDdlLTMJMS41MjQyNjcy
MjQ1NDEwMTE4ZS0zCTEuMTQ0NDA5OTk5OTk5OTk5OWUtNQorCS4uLmFuZCAyMjY2IG1vcmUgZXJy
b3JzLgorCU1heCBBYnNFcnJvciBvZiA5Ljk5Mzg5ODg2ODU2MDc5MTBlLTEgYXQgaW5kZXggb2Yg
MjI3MS4KKwlbMjI3MV0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuOTk5Mzg5ODg2ODU2MDc5MWUr
MAk5Ljk5Mzg5ODg2ODU2MDc5MTBlLTEJNC45OTg0NzQyNTE3MDA2NTIwZS0xCTEuMTQ0NDA5OTk5
OTk5OTk5OWUtNQorCU1heCBSZWxFcnJvciBvZiA0Ljk5ODQ3NDI1MTcwMDY1MjBlLTEgYXQgaW5k
ZXggb2YgMjI3MS4KKwlbMjI3MV0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuOTk5Mzg5ODg2ODU2
MDc5MWUrMAk5Ljk5Mzg5ODg2ODU2MDc5MTBlLTEJNC45OTg0NzQyNTE3MDA2NTIwZS0xCTEuMTQ0
NDA5OTk5OTk5OTk5OWUtNQorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
UEFTUyAgIEV4cG9uZW50aWFsIHJhbXA6IFRhaWwgcGFydCBlcXVhbHMgWzIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMiwyLDIuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7
ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorRkFJTCA8IFtl
eHBvIHJhbXAgcmVwbGFjZV0gMSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbZGVsYXllZCBleHBvIHJh
bXBdICAKK1BBU1MgICBEZWxheWVkIGV4cG9uZW50aWFsIHJhbXA6IEluaXRpYWwgcGFydCBlcXVh
bHMgWzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuLi5dIHdpdGggYW4gZWxlbWVudC13
aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9s
ZCI6MH0uIAorUEFTUyAgIERlbGF5ZWQgZXhwb25lbnRpYWwgcmFtcDogU2V0VGFyZ2V0IHBhcnQg
ZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9m
IHsiYWJzb2x1dGVUaHJlc2hvbGQiOjMuNDM2MzJlLTcsInJlbGF0aXZlVGhyZXNob2xkIjowfS4g
CitGQUlMIFggRGVsYXllZCBleHBvbmVudGlhbCByYW1wIGRvZXMgbm90IGVxdWFsIFswLjQ0OTMy
ODk1ODk4ODE4OTcsMC40NDk2ODQ0NzA4OTE5NTI1LDAuNDUwMDQwMjIxMjE0Mjk0NDMsMC40NTAz
OTYyOTkzNjIxODI2LDAuNDUwNzUyNjQ1NzMwOTcyMywwLjQ1MTEwOTI2MDMyMDY2MzQ1LDAuNDUx
NDY2MTcyOTMzNTc4NSwwLjQ1MTgyMzM1Mzc2NzM5NSwwLjQ1MjE4MDgzMjYyNDQzNTQsMC40NTI1
Mzg1Nzk3MDIzNzczLDAuNDUyODk2NjI0ODAzNTQzMSwwLjQ1MzI1NDkzODEyNTYxMDM1LDAuNDUz
NjEzNTQ5NDcwOTAxNSwwLjQ1Mzk3MjQyOTAzNzA5NDEsMC40NTQzMzE2MDY2MjY1MTA2LDAuNDU0
NjkxMDUyNDM2ODI4Ni4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAuMDAwMDA0MjkxNTQsInJlbGF0aXZlVGhyZXNob2xkIjowfS4KKwlJ
bmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJlbEVycm9yCQlUZXN0IHRocmVzaG9s
ZAorCVswXQk0LjUwMjY1OTQ0MDA0MDU4ODRlLTEJNC40OTMyODk1ODk4ODE4OTcwZS0xCTkuMzY5
ODUwMTU4NjkxNDA2M2UtNAkyLjA4NTI5ODUyNjAwNDM0OTJlLTMJNC4yOTE1Mzk5OTk5OTk5OTk3
ZS02CisJWzFdCTQuNTAyNjU5NDQwMDQwNTg4NGUtMQk0LjQ5Njg0NDcwODkxOTUyNTFlLTEJNS44
MTQ3MzExMjEwNjMyMzI0ZS00CTEuMjkzMDY5MTQwMTMwNTYwOGUtMwk0LjI5MTUzOTk5OTk5OTk5
OTdlLTYKKwlbMl0JNC41MDI2NTk0NDAwNDA1ODg0ZS0xCTQuNTAwNDAyMjEyMTQyOTQ0M2UtMQky
LjI1NzIyNzg5NzY0NDA0MzBlLTQJNS4wMTU2MTM2OTY4MjM4MzMyZS00CTQuMjkxNTM5OTk5OTk5
OTk5N2UtNgorCVszXQk0LjUwMjY1OTQ0MDA0MDU4ODRlLTEJNC41MDM5NjI5OTM2MjE4MjYyZS0x
CTEuMzAzNTUzNTgxMjM3NzkzMGUtNAkyLjg5NDIzNjg4MjIzODU3MDBlLTQJNC4yOTE1Mzk5OTk5
OTk5OTk3ZS02CisJWzRdCTQuNTAyNjU5NDQwMDQwNTg4NGUtMQk0LjUwNzUyNjQ1NzMwOTcyMjll
LTEJNC44NjcwMTcyNjkxMzQ1MjE1ZS00CTEuMDc5NzUzNDU1NzQzMjk4N2UtMwk0LjI5MTUzOTk5
OTk5OTk5OTdlLTYKKwkuLi5hbmQgMTg4MyBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2Yg
MS41NDgxNTI4NjM5NzkzMzk2ZSswIGF0IGluZGV4IG9mIDE4ODcuCisJWzE4ODddCTQuNTAyNjU5
NDQwMDQwNTg4NGUtMQkxLjk5ODQxODgwNzk4MzM5ODRlKzAJMS41NDgxNTI4NjM5NzkzMzk2ZSsw
CTcuNzQ2ODg4OTc5NDAwNTYxM2UtMQk0LjI5MTUzOTk5OTk5OTk5OTdlLTYKKwlNYXggUmVsRXJy
b3Igb2YgNy43NDY4ODg5Nzk0MDA1NjEzZS0xIGF0IGluZGV4IG9mIDE4ODcuCisJWzE4ODddCTQu
NTAyNjU5NDQwMDQwNTg4NGUtMQkxLjk5ODQxODgwNzk4MzM5ODRlKzAJMS41NDgxNTI4NjM5Nzkz
Mzk2ZSswCTcuNzQ2ODg4OTc5NDAwNTYxM2UtMQk0LjI5MTUzOTk5OTk5OTk5OTdlLTYKKyBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBEZWxheWVkIGV4cG9uZW50
aWFsIHJhbXA6IFRhaWwgcGFydCBlcXVhbHMgWzIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwy
LDIuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNo
b2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorRkFJTCA8IFtkZWxheWVkIGV4cG8gcmFt
cF0gMSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogNCBv
dXQgb2YgNCB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVk
aW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtY29udGludW91cy5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1jb250aW51b3VzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjNjMWU5ZDgyNDliYjBiYjBjNWE1Y2JkODcxZmEyZDI5YWMzYzgzMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9w
YXJhbS1zZXRUYXJnZXRBdFRpbWUtY29udGludW91cy5odG1sCkBAIC0wLDAgKzEsMjUzIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBTZXRU
YXJnZXQgRm9sbG93ZWQgYnkgTGluZWFyIG9yIEV4cG9uZW50aWFsIFJhbXAgSXMgQ29udGludW91
cworICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2Rl
Ij4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgwMDA7CisgICAgICBsZXQgcmVuZGVyUXVhbnR1
bSA9IDEyODsKKyAgICAgIC8vIFRlc3QgZG9lc24ndCBuZWVkIHRvIHJ1biBmb3IgdmVyeSBsb25n
LgorICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0gMC4xOworICAgICAgLy8gV2hlcmUgdGhlIHJh
bXAgc2hvdWxkIGVuZAorICAgICAgbGV0IHJhbXBFbmRUaW1lID0gcmVuZGVyRHVyYXRpb24gLSAu
MDU7CisgICAgICBsZXQgcmVuZGVyRnJhbWVzID0gcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRl
OworICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMDE7CisKKyAgICAgIGxldCBhdWRpdCA9IEF1
ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gQWxsIG9mIHRoZSB0ZXN0cyBzdGFy
dCBhIFNldFRhcmdldEF0VGltZSBhZnRlciBvbmUgcmVuZGVyaW5nIHF1YW50dW0uCisgICAgICAv
LyBUaGUgZm9sbG93aW5nIHRlc3RzIGhhbmRsZSB2YXJpb3VzIGNhc2VzIHdoZXJlIGEgbGluZWFy
IG9yIGV4cG9uZW50aWFsCisgICAgICAvLyByYW1wIGlzIHNjaGVkdWxlZCBhdCBvciBhZnRlciBT
ZXRUYXJnZXRBdFRpbWUgc3RhcnRzLgorCisgICAgICBhdWRpdC5kZWZpbmUoJ2xpbmVhciByYW1w
IHJlcGxhY2UnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFNjaGVkdWxlIGEgbGlu
ZWFyIHJhbXAgdG8gc3RhcnQgYXQgdGhlIHNhbWUgdGltZSBhcyBTZXRUYXJnZXRBdFRpbWUuCisg
ICAgICAgIC8vIFRoaXMgZWZmZWN0aXZlbHkgcmVwbGFjZXMgdGhlIFNldFRhcmdldEF0VGltZSBh
cyBpZiBpdCBuZXZlciBleGlzdGVkLgorICAgICAgICBydW5UZXN0KHNob3VsZCwgJ0xpbmVhciBy
YW1wJywgeworICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbjogZnVuY3Rpb24oYXVkaW9wYXJh
bSwgZW5kVmFsdWUsIGVuZFRpbWUpIHsKKyAgICAgICAgICAgIGF1ZGlvcGFyYW0ubGluZWFyUmFt
cFRvVmFsdWVBdFRpbWUoZW5kVmFsdWUsIGVuZFRpbWUpOworICAgICAgICAgIH0sCisgICAgICAg
ICAgcmVmZXJlbmNlRnVuY3Rpb246IGxpbmVhclJlc3VsdCwKKyAgICAgICAgICBhdXRvbWF0aW9u
VGltZTogcmVuZGVyUXVhbnR1bSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgdGhyZXNob2xkU2V0
VGFyZ2V0OiAwLAorICAgICAgICAgIHRocmVzaG9sZFJhbXA6IDEuMjY3NjVlLTYKKyAgICAgICAg
fSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdkZWxheWVkIGxpbmVhciByYW1wJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAv
LyBTY2hlZHVsZSBhIGxpbmVhciByYW1wIHRvIHN0YXJ0IGFmdGVyIHRoZSBTZXRUYXJnZXRBdFRp
bWUgaGFzIGFscmVhZHkKKyAgICAgICAgLy8gc3RhcnRlZCByZW5kZXJpbmcuIFRoaXMgaXMgdGhl
IG1haW4gdGVzdCB0byB2ZXJpZnkgdGhhdCB0aGUgbGluZWFyCisgICAgICAgIC8vIHJhbXAgaXMg
Y29udGludW91cyB3aXRoIHRoZSBTZXRUYXJnZXRBdFRpbWUgY3VydmUuCisgICAgICAgIHJ1blRl
c3Qoc2hvdWxkLCAnRGVsYXllZCBsaW5lYXIgcmFtcCcsIHsKKyAgICAgICAgICBhdXRvbWF0aW9u
RnVuY3Rpb246IGZ1bmN0aW9uKGF1ZGlvcGFyYW0sIGVuZFZhbHVlLCBlbmRUaW1lKSB7CisgICAg
ICAgICAgICBhdWRpb3BhcmFtLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGVuZFZhbHVlLCBlbmRU
aW1lKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHJlZmVyZW5jZUZ1bmN0aW9uOiBsaW5lYXJS
ZXN1bHQsCisgICAgICAgICAgYXV0b21hdGlvblRpbWU6IDQgKiByZW5kZXJRdWFudHVtIC8gc2Ft
cGxlUmF0ZSwKKyAgICAgICAgICB0aHJlc2hvbGRTZXRUYXJnZXQ6IDMuNDM2MzJlLTcsCisgICAg
ICAgICAgdGhyZXNob2xkUmFtcDogMS4wNzk3MmUtNgorICAgICAgICB9KS50aGVuKCgpID0+IHRh
c2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2V4cG8gcmFtcCBy
ZXBsYWNlJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAvLyBMaWtlICJsaW5lYXIgcmFt
cCByZXBsYWNlIiwgYnV0IHdpdGggYW4gZXhwb25lbnRpYWwgcmFtcCBpbnN0ZWFkLgorICAgICAg
ICBydW5UZXN0KHNob3VsZCwgJ0V4cG9uZW50aWFsIHJhbXAnLCB7CisgICAgICAgICAgYXV0b21h
dGlvbkZ1bmN0aW9uOiBmdW5jdGlvbihhdWRpb3BhcmFtLCBlbmRWYWx1ZSwgZW5kVGltZSkgewor
ICAgICAgICAgICAgYXVkaW9wYXJhbS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGVuZFZh
bHVlLCBlbmRUaW1lKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHJlZmVyZW5jZUZ1bmN0aW9u
OiBleHBvbmVudGlhbFJlc3VsdCwKKyAgICAgICAgICBhdXRvbWF0aW9uVGltZTogcmVuZGVyUXVh
bnR1bSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgdGhyZXNob2xkU2V0VGFyZ2V0OiAwLAorICAg
ICAgICAgIHRocmVzaG9sZFJhbXA6IDEuMTQ0NDFlLTUKKyAgICAgICAgfSkudGhlbigoKSA9PiB0
YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdkZWxheWVkIGV4
cG8gcmFtcCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gTGlrZSAiZGVsYXllZCBs
aW5lYXIgcmFtcCIsIGJ1dCB3aXRoIGFuIGV4cG9uZW50aWFsIHJhbXAgaW5zdGVhZC4KKyAgICAg
ICAgcnVuVGVzdChzaG91bGQsICdEZWxheWVkIGV4cG9uZW50aWFsIHJhbXAnLCB7CisgICAgICAg
ICAgYXV0b21hdGlvbkZ1bmN0aW9uOiBmdW5jdGlvbihhdWRpb3BhcmFtLCBlbmRWYWx1ZSwgZW5k
VGltZSkgeworICAgICAgICAgICAgYXVkaW9wYXJhbS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lKGVuZFZhbHVlLCBlbmRUaW1lKTsKKyAgICAgICAgICB9LAorICAgICAgICAgIHJlZmVyZW5j
ZUZ1bmN0aW9uOiBleHBvbmVudGlhbFJlc3VsdCwKKyAgICAgICAgICBhdXRvbWF0aW9uVGltZTog
NCAqIHJlbmRlclF1YW50dW0gLyBzYW1wbGVSYXRlLAorICAgICAgICAgIHRocmVzaG9sZFNldFRh
cmdldDogMy40MzYzMmUtNywKKyAgICAgICAgICB0aHJlc2hvbGRSYW1wOiA0LjI5MTU0ZS02Cisg
ICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1
ZGl0LnJ1bigpOworCisgICAgICBmdW5jdGlvbiBjb21wdXRlRXhwZWN0ZWRSZXN1bHQoCisgICAg
ICAgICAgYXV0b21hdGlvblRpbWUsIHRpbWVDb25zdGFudCwgZW5kVmFsdWUsIGVuZFRpbWUsIHJh
bXBGdW5jdGlvbikgeworICAgICAgICAvLyBUaGUgcmVzdWx0IGlzIGEgY29uc3RhbnQgdmFsdWUg
b2YgMSBmb3Igb25lIHJlbmRlcmluZyBxdWFudHVtLCB0aGVuIGEKKyAgICAgICAgLy8gU2V0VGFy
Z2V0IGV2ZW50IGxhc3RpbmcgdG8gfGF1dG9tYXRpb25UaW1lfCwgYXQgd2hpY2ggcG9pbnQgYSBy
YW1wCisgICAgICAgIC8vIHN0YXJ0cyB3aGljaCBlbmRzIGF0IHxlbmRWYWx1ZXwgYXQgfGVuZFRp
bWV8LiAgVGhlbiB0aGUgcmVzdCBvZiBjdXJ2ZQorICAgICAgICAvLyBzaG91bGQgYmUgaGVsZCBj
b25zdGFudCBhdCB8ZW5kVmFsdWV8LgorICAgICAgICBsZXQgaW5pdGlhbFBhcnQgPSBuZXcgQXJy
YXkocmVuZGVyUXVhbnR1bSk7CisgICAgICAgIGluaXRpYWxQYXJ0LmZpbGwoMSk7CisKKyAgICAg
ICAgLy8gR2VuZXJhdGUgMSBleHRyYSBmcmFtZSBzbyB0aGF0IHdlIGtub3cgd2hlcmUgdG8gc3Rh
cnQgdGhlIGxpbmVhcgorICAgICAgICAvLyByYW1wLiAgVGhlIGxhc3Qgc2FtcGxlIG9mIHRoZSBh
cnJheSBpcyB3aGVyZSB0aGUgcmFtcCBzaG91bGQgc3RhcnQKKyAgICAgICAgLy8gZnJvbS4KKyAg
ICAgICAgbGV0IHNldFRhcmdldFBhcnQgPSBjcmVhdGVFeHBvbmVudGlhbEFwcHJvYWNoQXJyYXko
CisgICAgICAgICAgICByZW5kZXJRdWFudHVtIC8gc2FtcGxlUmF0ZSwgYXV0b21hdGlvblRpbWUg
KyAxIC8gc2FtcGxlUmF0ZSwgMSwgMCwKKyAgICAgICAgICAgIHNhbXBsZVJhdGUsIHRpbWVDb25z
dGFudCk7CisgICAgICAgIGxldCBzZXRUYXJnZXRMZW5ndGggPSBzZXRUYXJnZXRQYXJ0Lmxlbmd0
aDsKKworICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcmFtcCBzdGFydGluZyBhdCB8YXV0b21hdGlv
blRpbWV8IHdpdGggYSB2YWx1ZSBmcm9tIGxhc3QKKyAgICAgICAgLy8gdmFsdWUgb2YgdGhlIFNl
dFRhcmdldCBjdXJ2ZSBhYm92ZS4KKyAgICAgICAgbGV0IHJhbXBQYXJ0ID0gcmFtcEZ1bmN0aW9u
KAorICAgICAgICAgICAgYXV0b21hdGlvblRpbWUsIGVuZFRpbWUsIHNldFRhcmdldFBhcnRbc2V0
VGFyZ2V0TGVuZ3RoIC0gMV0sCisgICAgICAgICAgICBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSk7CisK
KyAgICAgICAgLy8gRmluYWxseSBmaW5pc2ggb3V0IHRoZSByZXN0IHdpdGggYSBjb25zdGFudCB2
YWx1ZSBvZiB8ZW5kVmFsdWV8LCBpZgorICAgICAgICAvLyBuZWVkZWQuCisgICAgICAgIGxldCBm
aW5hbFBhcnQgPQorICAgICAgICAgICAgbmV3IEFycmF5KE1hdGguZmxvb3IoKHJlbmRlckR1cmF0
aW9uIC0gZW5kVGltZSkgKiBzYW1wbGVSYXRlKSk7CisgICAgICAgIGZpbmFsUGFydC5maWxsKGVu
ZFZhbHVlKTsKKworICAgICAgICAvLyBSZXR1cm4gdGhlIGZvdXIgcGFydHMgc2VwYXJhdGVseSBm
b3IgdGVzdGluZy4KKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICBpbml0aWFsUGFydDogaW5p
dGlhbFBhcnQsCisgICAgICAgICAgc2V0VGFyZ2V0UGFydDogc2V0VGFyZ2V0UGFydC5zbGljZSgw
LCBzZXRUYXJnZXRMZW5ndGggLSAxKSwKKyAgICAgICAgICByYW1wUGFydDogcmFtcFBhcnQsCisg
ICAgICAgICAgdGFpbFBhcnQ6IGZpbmFsUGFydAorICAgICAgICB9OworICAgICAgfQorCisgICAg
ICBmdW5jdGlvbiBsaW5lYXJSZXN1bHQoYXV0b21hdGlvblRpbWUsIHRpbWVDb25zdGFudCwgZW5k
VmFsdWUsIGVuZFRpbWUpIHsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVFeHBlY3RlZFJlc3VsdCgK
KyAgICAgICAgICAgIGF1dG9tYXRpb25UaW1lLCB0aW1lQ29uc3RhbnQsIGVuZFZhbHVlLCBlbmRU
aW1lLAorICAgICAgICAgICAgY3JlYXRlTGluZWFyUmFtcEFycmF5KTsKKyAgICAgIH0KKworICAg
ICAgZnVuY3Rpb24gZXhwb25lbnRpYWxSZXN1bHQoCisgICAgICAgICAgYXV0b21hdGlvblRpbWUs
IHRpbWVDb25zdGFudCwgZW5kVmFsdWUsIGVuZFRpbWUpIHsKKyAgICAgICAgcmV0dXJuIGNvbXB1
dGVFeHBlY3RlZFJlc3VsdCgKKyAgICAgICAgICAgIGF1dG9tYXRpb25UaW1lLCB0aW1lQ29uc3Rh
bnQsIGVuZFZhbHVlLCBlbmRUaW1lLAorICAgICAgICAgICAgY3JlYXRlRXhwb25lbnRpYWxSYW1w
QXJyYXkpOworICAgICAgfQorCisgICAgICAvLyBSdW4gdGVzdCB0byB2ZXJpZnkgdGhhdCBhIFNl
dFRhcmdldCBmb2xsb3dlZCBieSBhIHJhbXAgcHJvZHVjZXMgYQorICAgICAgLy8gY29udGludW91
cyBjdXJ2ZS4gfHByZWZpeHwgaXMgYSBzdHJpbmcgdG8gdXNlIGFzIGEgcHJlZml4IGZvciB0aGUK
KyAgICAgIC8vIG1lc3NhZ2VzLiB8b3B0aW9uc3wgaXMgYSBkaWN0aW9uYXJ5IGRlc2NyaWJpbmcg
aG93IHRoZSB0ZXN0IGlzIHJ1bjoKKyAgICAgIC8vCisgICAgICAvLyAgIHxvcHRpb25zLmF1dG9t
YXRpb25GdW5jdGlvbnwKKyAgICAgIC8vICAgICBUaGUgZnVuY3Rpb24gdG8gdXNlIHRvIHN0YXJ0
IHRoZSBhdXRvbWF0aW9uLCB3aGljaCBzaG91bGQgYmUgYQorICAgICAgLy8gICAgIGxpbmVhciBv
ciBleHBvbmVudGlhbCByYW1wIGF1dG9tYXRpb24uICBUaGlzIGZ1bmN0aW9uIGhhcyB0aHJlZQor
ICAgICAgLy8gICAgIGFyZ3VtZW50czoKKyAgICAgIC8vICAgICAgIGF1ZGlvcGFyYW0gLSB0aGUg
QXVkaW9QYXJhbSB0byBiZSBhdXRvbWF0ZWQKKyAgICAgIC8vICAgICAgIGVuZFZhbHVlICAgLSB0
aGUgZW5kIHZhbHVlIG9mIHRoZSByYW1wCisgICAgICAvLyAgICAgICBlbmRUaW1lICAgIC0gdGhl
IGVuZCB0aW1lIGZvIHRoZSByYW1wLgorICAgICAgLy8gICB8b3B0aW9ucy5yZWZlcmVuY2VGdW5j
dGlvbnwKKyAgICAgIC8vICAgICBUaGUgZnVuY3Rpb24gdG8gZ2VuZXJhdGVkIHRoZSBleHBlY3Rl
ZCByZXN1bHQuICBUaGlzIGZ1bmN0aW9uIGhhcworICAgICAgLy8gICAgIGZvdXIgYXJndW1lbnRz
OgorICAgICAgLy8gICAgICAgYXV0b21hdGlvblRpbWUgLSB0aGUgdmFsdWUgb2YgIHxvcHRpb25z
LmF1dG9tYXRpb25UaW1lfAorICAgICAgLy8gICAgICAgdGltZUNvbnN0YW50ICAgLSB0aW1lIGNv
bnN0YW50IHVzZWQgZm9yIFNldFRhcmdldEF0VGltZQorICAgICAgLy8gICAgICAgcmFtcEVuZFZh
bHVlICAgLSBlbmQgdmFsdWUgZm9yIHRoZSByYW1wIChzYW1lIHZhbHVlIHVzZWQgZm9yCisgICAg
ICAvLyAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb24pIHJhbXBFbmRUaW1lICAgIC0gZW5kIHRpbWUg
Zm9yIHRoZSByYW1wIChzYW1lCisgICAgICAvLyAgICAgICB2YWx1ZSB1c2VkIGZvciBhdXRvbWF0
aW9uRnVuY3Rpb24pCisgICAgICAvLyAgIHxvcHRpb25zLmF1dG9tYXRpb25UaW1lfAorICAgICAg
Ly8gICAgIFRpbWUgYXQgd2hpY2ggdGhlIHxhdXRvbWF0aW9uRnVuY3Rpb258IGlzIGNhbGxlZCB0
byBzdGFydCB0aGUKKyAgICAgIC8vICAgICBhdXRvbWF0aW9uLgorICAgICAgLy8gICB8b3B0aW9u
cy50aHJlc2hvbGRTZXRUYXJnZXR8CisgICAgICAvLyAgICAgVGhyZXNob2xkIHRvIHVzZSBmb3Ig
dmVyaWZ5aW5nIHRoYXQgdGhlIGluaXRpYWwgKGlmIGFueSkKKyAgICAgIC8vICAgICBTZXRUYXJn
ZXRBdFRpbWUgcG9ydGlvbiBoYWQgdGhlIGNvcnJlY3QgdmFsdWVzLgorICAgICAgLy8gICB8b3B0
aW9ucy50aHJlc2hvbGRSYW1wfAorICAgICAgLy8gICAgIFRocmVzaG9sZCB0byB1c2UgZm9yIHZl
cmlmeWluZyB0aGF0IHRoZSByYW1wIHBvcnRpb24gaGFkIHRoZQorICAgICAgLy8gICAgIGNvcnJl
Y3QgdmFsdWVzLgorICAgICAgZnVuY3Rpb24gcnVuVGVzdChzaG91bGQsIHByZWZpeCwgb3B0aW9u
cykgeworICAgICAgICBsZXQgYXV0b21hdGlvbkZ1bmN0aW9uID0gb3B0aW9ucy5hdXRvbWF0aW9u
RnVuY3Rpb247CisgICAgICAgIGxldCByZWZlcmVuY2VGdW5jdGlvbiA9IG9wdGlvbnMucmVmZXJl
bmNlRnVuY3Rpb247CisgICAgICAgIGxldCBhdXRvbWF0aW9uVGltZSA9IG9wdGlvbnMuYXV0b21h
dGlvblRpbWU7CisgICAgICAgIGxldCB0aHJlc2hvbGRTZXRUYXJnZXQgPSBvcHRpb25zLnRocmVz
aG9sZFNldFRhcmdldCB8fCAwOworICAgICAgICBsZXQgdGhyZXNob2xkUmFtcCA9IG9wdGlvbnMu
dGhyZXNob2xkUmFtcCB8fCAwOworCisgICAgICAgIC8vIEVuZCB2YWx1ZSBmb3IgdGhlIHJhbXAu
ICBGYWlybHkgYXJiaXRyYXJ5LCBidXQgc2hvdWxkIGJlIGRpc3RpbmN0bHkKKyAgICAgICAgLy8g
ZGlmZmVyZW50IGZyb20gdGhlIHRhcmdldCB2YWx1ZSBmb3IgU2V0VGFyZ2V0QXRUaW1lIGFuZCB0
aGUgaW5pdGlhbAorICAgICAgICAvLyB2YWx1ZSBvZiBnYWluLmdhaW4uCisgICAgICAgIGxldCBy
YW1wRW5kVmFsdWUgPSAyOworICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9D
b250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgLy8gQSBjb25z
dGFudCBzb3VyY2Ugb2YgYW1wbGl0dWRlIDEuCisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0
LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlQ29u
c3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsK
KworICAgICAgICBsZXQgZ2FpbiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIC8v
IFRoZSBTZXRUYXJnZXQgc3RhcnRzIGFmdGVyIG9uZSByZW5kZXJpbmcgcXVhbnR1bS4KKyAgICAg
ICAgZ2Fpbi5nYWluLnNldFRhcmdldEF0VGltZSgKKyAgICAgICAgICAgIDAsIHJlbmRlclF1YW50
dW0gLyBjb250ZXh0LnNhbXBsZVJhdGUsIHRpbWVDb25zdGFudCk7CisKKyAgICAgICAgLy8gU2No
ZWR1bGUgdGhlIHJhbXAgYXQgfGF1dG9tYXRpb25UaW1lfC4gIElmIHRoaXMgdGltZSBpcyBwYXN0
IHRoZQorICAgICAgICAvLyBmaXJzdCByZW5kZXJpbmcgcXVhbnR1bSwgdGhlIFNldFRhcmdldCBl
dmVudCB3aWxsIHJ1biBmb3IgYSBiaXQKKyAgICAgICAgLy8gYmVmb3JlIHJ1bm5pbmcgdGhlIHJh
bXAuICBPdGhlcndpc2UsIHRoZSBTZXRUYXJnZXQgc2hvdWxkIGJlCisgICAgICAgIC8vIGNvbXBs
ZXRlbHkgcmVwbGFjZWQgYnkgdGhlIHJhbXAuCisgICAgICAgIGNvbnRleHQuc3VzcGVuZChhdXRv
bWF0aW9uVGltZSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rp
b24oZ2Fpbi5nYWluLCByYW1wRW5kVmFsdWUsIHJhbXBFbmRUaW1lKTsKKyAgICAgICAgICBjb250
ZXh0LnJlc3VtZSgpOworICAgICAgICB9KTsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChnYWlu
KTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAg
IHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5n
KCkudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAgICAgICAgICBsZXQgc3VjY2VzcyA9
IHRydWU7CisgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0
YSgwKTsKKyAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSByZWZlcmVuY2VGdW5jdGlvbigKKyAgICAg
ICAgICAgICAgYXV0b21hdGlvblRpbWUsIHRpbWVDb25zdGFudCwgcmFtcEVuZFZhbHVlLCByYW1w
RW5kVGltZSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgZWFjaCBwYXJ0IG9mIHRoZSBjdXJ2ZSBz
ZXBhcmF0ZWx5LgorICAgICAgICAgIGxldCBzdGFydEluZGV4ID0gMDsKKyAgICAgICAgICBsZXQg
bGVuZ3RoID0gZXhwZWN0ZWQuaW5pdGlhbFBhcnQubGVuZ3RoOworCisgICAgICAgICAgLy8gVmVy
aWZ5IHRoYXQgdGhlIGluaXRpYWwgcGFydCBvZiB0aGUgY3VydmUgaXMgY29uc3RhbnQuCisgICAg
ICAgICAgc2hvdWxkKHJlc3VsdC5zbGljZSgwLCBsZW5ndGgpLCBwcmVmaXggKyAnOiBJbml0aWFs
IHBhcnQnKQorICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoZXhwZWN0ZWQuaW5pdGlhbFBh
cnQpOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoZSBTZXRUYXJnZXQgcGFydCBvZiB0aGUgY3Vy
dmUsIGlmIHRoZSBTZXRUYXJnZXQgZGlkCisgICAgICAgICAgLy8gYWN0dWFsbHkgcnVuLgorICAg
ICAgICAgIHN0YXJ0SW5kZXggKz0gbGVuZ3RoOworICAgICAgICAgIGxlbmd0aCA9IGV4cGVjdGVk
LnNldFRhcmdldFBhcnQubGVuZ3RoOworICAgICAgICAgIGlmIChsZW5ndGgpIHsKKyAgICAgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICByZXN1bHQuc2xpY2Uoc3RhcnRJbmRleCwgc3Rh
cnRJbmRleCArIGxlbmd0aCksCisgICAgICAgICAgICAgICAgcHJlZml4ICsgJzogU2V0VGFyZ2V0
IHBhcnQnKQorICAgICAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAg
ICAgICAgZXhwZWN0ZWQuc2V0VGFyZ2V0UGFydCwKKyAgICAgICAgICAgICAgICAgICAge2Fic29s
dXRlVGhyZXNob2xkOiB0aHJlc2hvbGRTZXRUYXJnZXR9KTsKKyAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgc2hvdWxkKCFsZW5ndGgsIHByZWZpeCArICc6IFNldFRhcmdldCBwYXJ0JykK
KyAgICAgICAgICAgICAgICAubWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgJ3dhcyBjb3Jy
ZWN0bHkgcmVwbGFjZWQgYnkgdGhlIHJhbXAnLAorICAgICAgICAgICAgICAgICAgICAnd2FzIGlu
Y29ycmVjdGx5IHJlcGxhY2VkIGJ5IHRoZSByYW1wJyk7CisgICAgICAgICAgfQorCisgICAgICAg
ICAgLy8gVmVyaWZ5IHRoZSByYW1wIHBhcnQgb2YgdGhlIGN1cnZlCisgICAgICAgICAgc3RhcnRJ
bmRleCArPSBsZW5ndGg7CisgICAgICAgICAgbGVuZ3RoID0gZXhwZWN0ZWQucmFtcFBhcnQubGVu
Z3RoOworICAgICAgICAgIHNob3VsZChyZXN1bHQuc2xpY2Uoc3RhcnRJbmRleCwgc3RhcnRJbmRl
eCArIGxlbmd0aCksIHByZWZpeCkKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAg
ICAgICAgICAgICAgICAgZXhwZWN0ZWQucmFtcFBhcnQsIHthYnNvbHV0ZVRocmVzaG9sZDogdGhy
ZXNob2xkUmFtcH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGVuZCBvZiB0aGUg
Y3VydmUgYWZ0ZXIgdGhlIHJhbXAgKGlmIGFueSkgaXMgYQorICAgICAgICAgIC8vIGNvbnN0YW50
LgorICAgICAgICAgIHN0YXJ0SW5kZXggKz0gbGVuZ3RoOworICAgICAgICAgIHNob3VsZChyZXN1
bHQuc2xpY2Uoc3RhcnRJbmRleCksIHByZWZpeCArICc6IFRhaWwgcGFydCcpCisgICAgICAgICAg
ICAgIC5iZUNsb3NlVG9BcnJheShleHBlY3RlZC50YWlsUGFydCk7CisKKyAgICAgICAgfSk7Cisg
ICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUt
bGltaXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLXNldFRhcmdldEF0VGltZS1saW1pdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlm
ODAyYzg0Y2MxN2NmZTU2NDA2MmE0NDJlMWRhNTVkYWYwMDFjMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRp
bWUtbGltaXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKKworUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgImFwcHJvYWNoIDEiIAorUEFTUyBF
eGVjdXRpbmcgImFwcHJvYWNoIDAiIAorUEFTUyBFeGVjdXRpbmcgImNyYnVnLmNvbS84MzUyOTQi
IAorUEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW2FwcHJvYWNoIDFdICAKK1BBU1MgICBJbml0
aWFsIG91dHB1dCBvZiA2NjQgc2FtcGxlcyBmb3Igc2V0VGFyZ2V0QXRUaW1lKDEsIDAsIDAuMDAx
KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwMjQsInJlbGF0aXZlVGhyZXNob2xkIjowfS4g
CitQQVNTICAgVGFpbCBvdXRwdXQgZm9yIHNldFRhcmdldEF0VGltZSgxLCAwLCAwLjAwMSkgZXF1
YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjo5LjgyMzRlLTd9LiAKK1BB
U1MgPCBbYXBwcm9hY2ggMV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRp
b25zKSAKK1BBU1MgPiBbYXBwcm9hY2ggMF0gIAorUEFTUyAgIEluaXRpYWwgb3V0cHV0IG9mIDQ4
MCBzYW1wbGVzIGZvciBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4wMDEpIGVxdWFscyBbZXhwZWN0
ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjo0Ljc0N2UtOCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBUYWlsIG91
dHB1dCBmb3Igc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMDAxKSBlcXVhbHMgW2V4cGVjdGVkIGFy
cmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9s
ZCI6MC4wMDAwMjMzMSwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbYXBwcm9hY2gg
MF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
Y3JidWcuY29tLzgzNTI5NF0gIAorUEFTUyAgIE91dHB1dCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5
XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6
OS44MTcyZS03LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtjcmJ1Zy5jb20vODM1
Mjk0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAzIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0t
c2V0VGFyZ2V0QXRUaW1lLWxpbWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1Bh
cmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0QXRUaW1lLWxpbWl0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdj
YTA4YTIzNGEzMjEyOTlkNDhkZGI4YWU2NWRmMTM5MTVlYTQ2MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRp
bWUtbGltaXQuaHRtbApAQCAtMCwwICsxLDE5MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBzZXRUYXJnZXRBdFRpbWUgQXBwcm9h
Y2ggdG8gTGltaXQKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpby1wYXJhbS5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0
LXRlc3QtY29kZSI+CisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7
CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnYXBwcm9hY2ggMScsICh0YXNrLCBzaG91bGQpID0+IHsK
KyAgICAgICAgbGV0IHNhbXBsZVJhdGUgPSA0ODAwMDsKKworICAgICAgICAvLyBBIHJlYWxseSBz
aG9ydCB0aW1lIGNvbnN0YW50IHNvIHRoYXQgc2V0VGFyZ2V0QXRUaW1lIGFwcHJvYWNoZXMgdGhl
CisgICAgICAgIC8vIGxpbWl0aW5nIHZhbHVlIHdlbGwgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIHRl
c3QuCisgICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAwLjAwMTsKKworICAgICAgICAvLyBGaW5k
IHRoZSB0aW1lIHdoZXJlIHNldFRhcmdldEF0VGltZSBpcyBjbG9zZSBlbm91Z2ggdG8gdGhlIGxp
bWl0LgorICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhcHByb2FjaGluZyAxLCB1c2UgYSB2YWx1ZSBv
ZiBlcHMgc21hbGxlciB0aGFuCisgICAgICAgIC8vIGtTZXRUYXJnZXRUaHJlc2hvbGQgKDEuNWUt
NikgaW4gQXVkaW9QYXJhbVRpbWVsaW5lLmNwcC4gIFRoaXMgaXMgdG8KKyAgICAgICAgLy8gYWNj
b3VudCBmb3Igcm91bmQtb2ZmIGluIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gKHdoaWNoIHVz
ZXMgYQorICAgICAgICAvLyBmaWx0ZXIgYW5kIG5vdCB0aGUgZm9ybXVsYS4pCisgICAgICAgIGxl
dCBsaW1pdFRocmVzaG9sZCA9IDFlLTY7CisKKyAgICAgICAgcnVuVGVzdChzaG91bGQsIHsKKyAg
ICAgICAgICBzYW1wbGVSYXRlOiBzYW1wbGVSYXRlLAorICAgICAgICAgIHYwOiAwLAorICAgICAg
ICAgIHYxOiAxLAorICAgICAgICAgIHRpbWVDb25zdGFudDogdGltZUNvbnN0YW50LAorICAgICAg
ICAgIGVwczogbGltaXRUaHJlc2hvbGQsCisgICAgICAgICAgLy8gRXhwZXJpbWVudGFsbHkgZGV0
ZXJtaW5lZAorICAgICAgICAgIHRocmVzaG9sZDogMi40ZS01LAorICAgICAgICAgIHRhaWxUaHJl
c2hvbGQ6IHtyZWxhdGl2ZVRocmVzaG9sZDogOS44MjM0ZS03fQorICAgICAgICB9KS50aGVuKCgp
ID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pCisKKyAgICAgIGF1ZGl0LmRlZmluZSgnYXBwcm9h
Y2ggMCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gVXNlIHRoZSBlcXVhdGlvbiBm
b3Igc2V0VGFyZ2V0QXRUaW1lIHRvIGZpZ3VyZSBvdXQgd2hlbiB3ZSBhcmUgY2xvc2UKKyAgICAg
ICAgLy8gdG8gMDoKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICB2KHQpID0gZXhwKC10L3RhdSkK
KyAgICAgICAgLy8KKyAgICAgICAgLy8gU28gZmluZCB0IHN1Y2ggdGhhdCBleHAoLXQvdGF1KSA8
PSBlcHMuICBUaHVzIHQgPj0gLSB0YXUgKiBsb2coZXBzKS4KKyAgICAgICAgLy8KKyAgICAgICAg
Ly8gRm9yIGVwcywgdXNlIGV4cCgtMTApLgorCisgICAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgw
MDA7CisKKyAgICAgICAgLy8gQSByZWFsbHkgc2hvcnQgdGltZSBjb25zdGFudCBzbyB0aGF0IHNl
dFRhcmdldEF0VGltZSBhcHByb2FjaGVzIHRoZQorICAgICAgICAvLyBsaW1pdGluZyB2YWx1ZSB3
ZWxsIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSB0ZXN0LgorICAgICAgICBsZXQgdGltZUNvbnN0YW50
ID0gMC4wMDE7CisKKyAgICAgICAgLy8gRmluZCB0aGUgdGltZSB3aGVyZSBzZXRUYXJnZXRBdFRp
bWUgaXMgY2xvc2UgZW5vdWdoIHRvIHRoZSBsaW1pdC4KKyAgICAgICAgLy8gU2luY2Ugd2UncmUg
YXBwcm9hY2hpbmcgMCwgdXNlIGEgdmFsdWUgb2YgZXBzIHNtYWxsZXIgdGhhbgorICAgICAgICAv
LyBrU2V0VGFyZ2V0WmVyb1RocmVzaG9sZCAoMWUtMjApIGluIEF1ZGlvUGFyYW1UaW1lbGluZS5j
cHAuICBUaGlzIGlzCisgICAgICAgIC8vIHRvIGFjY291bnQgZm9yIHJvdW5kLW9mZiBpbiB0aGUg
YWN0dWFsIGltcGxlbWVudGF0aW9uICh3aGljaCB1c2VzIGEKKyAgICAgICAgLy8gZmlsdGVyIGFu
ZCBub3QgdGhlIGZvcm11bGEuKQorICAgICAgICBsZXQgbGltaXRUaHJlc2hvbGQgPSBNYXRoLmV4
cCgtMTApOworCisgICAgICAgIHJ1blRlc3Qoc2hvdWxkLCB7CisgICAgICAgICAgc2FtcGxlUmF0
ZTogc2FtcGxlUmF0ZSwKKyAgICAgICAgICB2MDogMSwKKyAgICAgICAgICB2MTogMCwKKyAgICAg
ICAgICB0aW1lQ29uc3RhbnQ6IHRpbWVDb25zdGFudCwKKyAgICAgICAgICBlcHM6IGxpbWl0VGhy
ZXNob2xkLAorICAgICAgICAgIC8vIEV4cGVyaW1lbnRhbGx5IGRldGVybWluZWQKKyAgICAgICAg
ICB0aHJlc2hvbGQ6IDQuNzQ3MGUtOCwKKyAgICAgICAgICB0YWlsVGhyZXNob2xkOiB7YWJzb2x1
dGVUaHJlc2hvbGQ6IDIuMzMxMGUtNX0KKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUo
KSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjcmJ1Zy5jb20vODM1Mjk0Jywg
KHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDgwMDA7CisgICAg
ICAgIGxldCBkdXJhdGlvbiA9IDg7CisgICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVB
dWRpb0NvbnRleHQoeworICAgICAgICAgIGxlbmd0aDogZHVyYXRpb24gKiBzYW1wbGVSYXRlLAor
ICAgICAgICAgIHNhbXBsZVJhdGU6IHNhbXBsZVJhdGV9KTsKKworICAgICAgICBsZXQgc3JjID0g
bmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0KTsKKyAgICAgICAgbGV0IGdhaW4gPSBuZXcg
R2Fpbk5vZGUoY29udGV4dCk7CisKKyAgICAgICAgc3JjLmNvbm5lY3QoZ2FpbikuY29ubmVjdChj
b250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBsZXQgdGFyZ2V0VmFsdWUgPSAwLjg7Cisg
ICAgICAgIGxldCB0YXJnZXRTdGFydFRpbWUgPSAwOworICAgICAgICBsZXQgdGltZUNvbnN0YW50
ID0gMjsKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICBn
YWluLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHRhcmdldFZhbHVlLCB0YXJnZXRTdGFydFRpbWUsIHRp
bWVDb25zdGFudCk7CisgICAgICAgIHNyYy5zdGFydCgpOworCisgICAgICAgIGNvbnRleHQuc3Rh
cnRSZW5kZXJpbmcoKQorICAgICAgICAgIC50aGVuKHJlbmRlcmVkQnVmZmVyID0+IHsKKyAgICAg
ICAgICAgICAvLyBUaGUgb3V0cHV0IHNob3VsZCBiZSBhIHNpbXBsZSBleHBvbmVudGlhbCBhcHBy
b2FjaCB0byAwLjgKKyAgICAgICAgICAgICAvLyBzdGFydGluZyBhdCAwIGF0IHRpbWUgMC4xLgor
ICAgICAgICAgICAgIGxldCBhY3R1YWwgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgw
KTsKKyAgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBjcmVhdGVFeHBvbmVudGlhbEFwcHJvYWNo
QXJyYXkodGFyZ2V0U3RhcnRUaW1lLAorICAgICAgICAgICAgICAgZHVyYXRpb24sIDAsIHRhcmdl
dFZhbHVlLCBjb250ZXh0LnNhbXBsZVJhdGUsIHRpbWVDb25zdGFudCk7CisKKyAgICAgICAgICAg
ICBzaG91bGQoYWN0dWFsLCAnT3V0cHV0JykKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5
KGV4cGVjdGVkLCB7YWJzb2x1dGVUaHJlc2hvbGQ6IDkuODE3MmUtN30pOworICAgICAgICAgIH0p
CisgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAg
IGZ1bmN0aW9uIGZpbmRMaW1pdFRpbWUodjAsIHYxLCB0aW1lQ29uc3RhbnQsIGVwcykgeworICAg
ICAgICAvLyBGaW5kIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBzZXRUYXJnZXRBdFRpbWUgaXMgY2xv
c2UgZW5vdWdoIHRvIHRoZQorICAgICAgICAvLyB0YXJnZXQgdmFsdWUgfHYxfCB3aGVyZSB3ZSBj
YW4gY29uc2lkZXIgdGhlIGN1cnZlIHRvIGhhdmUgcmVhY2hlZCBpdHMKKyAgICAgICAgLy8gbGlt
aXRpbmcgdmFsdWUuCisgICAgICAgIC8vCisgICAgICAgIC8vIElmIHYxID0gMCwgfGVwc3wgaXMg
dGhlIGFic29sdXRlIGVycm9yIGJldHdlZW4gdGhlIGFjdHVhbCB2YWx1ZSBhbmQKKyAgICAgICAg
Ly8gfHYxfC4gIE90aGVyd2lzZSwgfGVwc3wgaXMgdGhlIHJlbGF0aXZlIGVycm9yIGJldHdlZW4g
dGhlIGFjdHVhbAorICAgICAgICAvLyB2YWx1ZSBhbmQgfHYxfC4KKyAgICAgICAgLy8KKyAgICAg
ICAgLy8gVGhlIGN1cnZlIGlzCisgICAgICAgIC8vCisgICAgICAgIC8vICAgdih0KSA9IHYxIC0g
KHYxIC0gdjApICogZXhwKC10L3RpbWVDb25zdGFudCkKKyAgICAgICAgLy8KKyAgICAgICAgLy8g
SWYgdjEgPSAwLAorICAgICAgICAvLworICAgICAgICAvLyAgIHYodCkgPSB2MCAqIGV4cCgtdC90
aW1lQ29uc3RhbnQpCisgICAgICAgIC8vCisgICAgICAgIC8vIFNvbHZlIHRoaXMgZm9yIHdoZW4g
fHYodCl8IDw9IGVwczoKKyAgICAgICAgLy8KKyAgICAgICAgLy8gICB0ID49IHRpbWVDb25zdGFu
dCAqIGxvZyh2MC9lcHMpCisgICAgICAgIC8vCisgICAgICAgIC8vIEZvciB2MSBub3QgemVybywg
d2Ugd2FudCB8dih0KSAtIHYxfC98djF8IDw9IGVwczoKKyAgICAgICAgLy8KKyAgICAgICAgLy8g
ICB0ID49IHRpbWVDb25zdGFudCAqIGxvZyhhYnModjEtdjApL2Vwcy92MSkKKworICAgICAgICBp
ZiAodjEpCisgICAgICAgICAgcmV0dXJuIHRpbWVDb25zdGFudCAqIE1hdGgubG9nKE1hdGguYWJz
KHYxIC0gdjApIC8gZXBzIC8gdjEpOworICAgICAgICBlbHNlCisgICAgICAgICAgcmV0dXJuIHRp
bWVDb25zdGFudCAqIE1hdGgubG9nKHYwIC8gZXBzKTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rp
b24gcnVuVGVzdChzaG91bGQsIG9wdGlvbnMpIHsKKyAgICAgICAgbGV0IHJlbmRlckxlbmd0aCA9
IDE7CisKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgKKyAg
ICAgICAgICAgIDEsIHJlbmRlckxlbmd0aCAqIHNhbXBsZVJhdGUsIG9wdGlvbnMuc2FtcGxlUmF0
ZSk7CisKKyAgICAgICAgLy8gQSBjb25zdGFudCBzb3VyY2UKKyAgICAgICAgbGV0IHNvdXJjZSA9
IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgIHNvdXJjZS5idWZmZXIgPSBj
cmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAgc291cmNlLmxvb3Ag
PSB0cnVlOworCisgICAgICAgIGxldCBnYWluID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisgICAg
ICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUF0VGltZShvcHRpb25zLnYwLCAwKTsKKyAgICAgICAgZ2Fp
bi5nYWluLnNldFRhcmdldEF0VGltZShvcHRpb25zLnYxLCAwLCBvcHRpb25zLnRpbWVDb25zdGFu
dCk7CisKKyAgICAgICAgc291cmNlLmNvbm5lY3QoZ2Fpbik7CisgICAgICAgIGdhaW4uY29ubmVj
dChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKworICAg
ICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4oZnVuY3Rpb24ocmVzdWx0
QnVmZmVyKSB7CisgICAgICAgICAgbGV0IGFjdHVhbCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVs
RGF0YSgwKTsKKyAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBjcmVhdGVFeHBvbmVudGlhbEFwcHJv
YWNoQXJyYXkoCisgICAgICAgICAgICAgIDAsIHJlbmRlckxlbmd0aCwgb3B0aW9ucy52MCwgb3B0
aW9ucy52MSwgb3B0aW9ucy5zYW1wbGVSYXRlLAorICAgICAgICAgICAgICBvcHRpb25zLnRpbWVD
b25zdGFudCk7CisKKyAgICAgICAgICBsZXQgbWVzc2FnZSA9ICdzZXRUYXJnZXRBdFRpbWUoJyAr
IG9wdGlvbnMudjEgKyAnLCAwLCAnICsKKyAgICAgICAgICAgICAgb3B0aW9ucy50aW1lQ29uc3Rh
bnQgKyAnKSc7CisKKyAgICAgICAgICAvLyBEZXRlcm1pbmUgd2hlcmUgdGhlIHRhaWwgb2YgdGhl
IGN1cnZlIGJlZ2lucy4gIChXaGVyZSB0aGUgY3VydmUgaGFzCisgICAgICAgICAgLy8gYmFzaWNh
bGx5IHJlYWNoZWQgdGhlIGxpbWl0IHZhbHVlLikKKyAgICAgICAgICBsZXQgdGFpbFRpbWUgPSBm
aW5kTGltaXRUaW1lKAorICAgICAgICAgICAgICBvcHRpb25zLnYwLCBvcHRpb25zLnYxLCBvcHRp
b25zLnRpbWVDb25zdGFudCwgb3B0aW9ucy5lcHMpOworICAgICAgICAgIGxldCB0YWlsRnJhbWUg
PSBNYXRoLmNlaWwodGFpbFRpbWUgKiBvcHRpb25zLnNhbXBsZVJhdGUpOworCisgICAgICAgICAg
c2hvdWxkKAorICAgICAgICAgICAgICBhY3R1YWwuc2xpY2UoMCwgdGFpbEZyYW1lKSwKKyAgICAg
ICAgICAgICAgJ0luaXRpYWwgb3V0cHV0IG9mICcgKyB0YWlsRnJhbWUgKyAnIHNhbXBsZXMgZm9y
ICcgKyBtZXNzYWdlKQorICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisgICAgICAgICAg
ICAgICAgICBleHBlY3RlZC5zbGljZSgwLCB0YWlsRnJhbWUpLAorICAgICAgICAgICAgICAgICAg
e2Fic29sdXRlVGhyZXNob2xkOiBvcHRpb25zLnRocmVzaG9sZH0pOworCisgICAgICAgICAgc2hv
dWxkKGFjdHVhbC5zbGljZSh0YWlsRnJhbWUpLCAnVGFpbCBvdXRwdXQgZm9yICcgKyBtZXNzYWdl
KQorICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoZXhwZWN0ZWQuc2xpY2UodGFpbEZyYW1l
KSwgb3B0aW9ucy50YWlsVGhyZXNob2xkKTsKKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAg
IGF1ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0
QXRUaW1lLXNhbXBsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtc2FtcGxpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRhNTdmNTU1MzhmMDVlMmNhOTVkYmJjNTVhZWQ1YWExMWRjNTRkZmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0t
c2V0VGFyZ2V0QXRUaW1lLXNhbXBsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisK
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJzZXRW
YWx1ZTsxMjguMSIgCitQQVNTIEV4ZWN1dGluZyAic2V0VmFsdWU7MC4xIiAKK1BBU1MgRXhlY3V0
aW5nICJzZXRWYWx1ZTswLjAiIAorUEFTUyBFeGVjdXRpbmcgInNldHRlcjsxMjguMSIgCitQQVNT
IEV4ZWN1dGluZyAic2V0dGVyOzAuMSIgCitQQVNTIEV4ZWN1dGluZyAic2V0dGVyOzAuMCIgCitQ
QVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbc2V0VmFsdWU7MTI4LjFdICAKK1BBU1MgICBJbml0
aWFsaXplIGJ5IHNldFZhbHVlQXRUaW1lOiBUYXJnZXQgdmFsdWUgYXQgZnJhbWUgMTI5IGlzIDkx
MzkuMzExODUyNzEyMjcyIHdpdGhpbiBhbiBlcnJvciBvZiAzLjYwMjllLTguIAorUEFTUyA8IFtz
ZXRWYWx1ZTsxMjguMV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25z
KSAKK1BBU1MgPiBbc2V0VmFsdWU7MC4xXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBieSBzZXRWYWx1
ZUF0VGltZTogVGFyZ2V0IHZhbHVlIGF0IGZyYW1lIDEgaXMgOTEzOS4zMTE4NTI3MTIyODIgd2l0
aGluIGFuIGVycm9yIG9mIDMuNjAyOWUtOC4gCitQQVNTIDwgW3NldFZhbHVlOzAuMV0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbc2V0VmFsdWU7
MC4wXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBieSBzZXRWYWx1ZUF0VGltZTogVGFyZ2V0IHZhbHVl
IGF0IGZyYW1lIDAgaXMgMTAwMDAgd2l0aGluIGFuIGVycm9yIG9mIDMuNjAyOWUtOC4gCitQQVNT
IDwgW3NldFZhbHVlOzAuMF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRp
b25zKSAKK1BBU1MgPiBbc2V0dGVyOzEyOC4xXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBieSBzZXR0
ZXI6IFRhcmdldCB2YWx1ZSBhdCBmcmFtZSAxMjkgaXMgOTEzOS4zMTE4NTI3MTIyNzIgd2l0aGlu
IGFuIGVycm9yIG9mIDMuNjAyOWUtOC4gCitQQVNTIDwgW3NldHRlcjsxMjguMV0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbc2V0dGVyOzAuMV0g
IAorUEFTUyAgIEluaXRpYWxpemUgYnkgc2V0dGVyOiBUYXJnZXQgdmFsdWUgYXQgZnJhbWUgMSBp
cyA5MTM5LjMxMTg1MjcxMjI4MiB3aXRoaW4gYW4gZXJyb3Igb2YgMy42MDI5ZS04LiAKK1BBU1Mg
PCBbc2V0dGVyOzAuMV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25z
KSAKK1BBU1MgPiBbc2V0dGVyOzAuMF0gIAorUEFTUyAgIEluaXRpYWxpemUgYnkgc2V0dGVyOiBU
YXJnZXQgdmFsdWUgYXQgZnJhbWUgMCBpcyAxMDAwMCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQ
QVNTIDwgW3NldHRlcjswLjBdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0
aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDYgdGFza3MgcmFuIHN1
Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtc2FtcGxpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtc2FtcGxpbmcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZGY2NWFiMWVmOWE1NTgyMzA5ODFiNzc2MmIzNWE2NGY4MDU4ZTQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLXNldFRhcmdldEF0VGltZS1zYW1wbGluZy5odG1sCkBAIC0wLDAgKzEsMTIwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0
IFNhbXBsaW5nIGZvciBTZXRUYXJnZXRBdFRpbWUKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1
ZGlvcGFyYW0tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
PHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICAvLyBTb21lIHNsb3cgc2FtcGxl
IHJhdGUsIGJ1dCBvdGhlcndpc2UgYXJiaXRyYXJ5LgorICAgICAgbGV0IHNhbXBsZVJhdGUgPSAx
MjgwMDsKKworICAgICAgLy8gVGltZSBjb25zdGFudCBmb3Igc2V0VGFyZ2V0VmFsdWUuIE1ha2Ug
aXQgc2hvcnQsIGJ1dCBpcyBvdGhlcndpc2UKKyAgICAgIC8vIGFyYml0cmFyeS4KKyAgICAgIGxl
dCB0aW1lQ29uc3RhbnQgPSAxMCAvIHNhbXBsZVJhdGU7CisKKyAgICAgIC8vIERlZmF1dCBpbml0
aWFsIGdhaW4gZm9yIHRlc3QuICBBcmJpdHJhcnksIGJ1dCB3ZSB3YW50IGl0IGxhcmdlIHNvIHRo
ZQorICAgICAgLy8gY2hhbmdlcyBsb29rIGxhcmdlLCBldmVuIGlmIHRoZSByZWxhdGl2ZSBjaGFu
Z2UgaXNuJ3QuCisgICAgICBsZXQgaW5pdGlhbEdhaW4gPSAxMDAwMDsKKworICAgICAgbGV0IGF1
ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICAvLyBUZXN0IHNhbXBsaW5n
IG9mIHNldFRhcmdldEF0VGltZSB0aGF0IHN0YXJ0cyBhdCB8c3RhcnRGcmFtZXwuICBBIGdhaW4K
KyAgICAgIC8vIG5vZGUgaXMgdXNlZCBmb3IgdGVzdGluZy4gIHxpbml0aWFsaXplR2FpbkZ1bmN0
aW9ufCBpbml0aWFsaXplcyB0aGUKKyAgICAgIC8vIGdhaW4gdmFsdWUuCisgICAgICBmdW5jdGlv
biBkb1Rlc3QoCisgICAgICAgICAgc2hvdWxkLCBtZXNzYWdlLCBzdGFydEZyYW1lLCB0aHJlc2hv
bGQsIGluaXRpYWxpemVHYWluRnVuY3Rpb24pIHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAyNTYsIHNhbXBsZVJhdGUpOworICAgICAgICBsZXQgc291
cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgbGV0IGIgPSBjb250
ZXh0LmNyZWF0ZUJ1ZmZlcigxLCAxLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgYi5nZXRDaGFubmVs
RGF0YSgwKVswXSA9IDE7CisgICAgICAgIHNvdXJjZS5idWZmZXIgPSBiOworICAgICAgICBzb3Vy
Y2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgbGV0IGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4o
KTsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgdmFsdWUgb2YgdGhlIGdhaW4gbm9kZSBhcHBy
b3ByaWF0ZWx5LgorICAgICAgICBpbml0aWFsaXplR2FpbkZ1bmN0aW9uKGdhaW4pOworICAgICAg
ICBnYWluLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKDAsIHN0YXJ0RnJhbWUgLyBzYW1wbGVSYXRlLCB0
aW1lQ29uc3RhbnQpOworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOworICAgICAgICBn
YWluLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc291cmNlLnN0YXJ0
KCk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0
aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBzYW1wbGlu
ZyBvZiB0aGUgc2V0VGFyZ2V0QXRUaW1lIGF1dG9tYXRpb24gd2FzIGRvbmUKKyAgICAgICAgICAv
LyBjb3JyZWN0bHkuIFdlIGp1c3QgbG9vayBhdCB0aGUgc2FtcGxlIGp1c3QgcGFzdCB0aGUgc3Rh
cnQgb2YgdGhlCisgICAgICAgICAgLy8gYXV0b21hdGlvbi4KKyAgICAgICAgICBsZXQgcmVzdWx0
RGF0YSA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAvLyBDb21w
dXRlIHRoZSB0cnVlIHJlc3VsdCBhdCB0aGUgZnJhbWUganVzdCBwYXN0IHN0YXJ0RnJhbWUgYW5k
CisgICAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlIGFjdHVhbCByZW5kZXJlZCByZXN1bHQgaXMg
d2l0aGluIHx0aHJlc2hvbGR8IG9mIHRoZQorICAgICAgICAgIC8vIGV4cGVjdGVkIHZhbHVlLgor
ICAgICAgICAgIGxldCBmcmFtZSA9IE1hdGguY2VpbChzdGFydEZyYW1lKTsKKyAgICAgICAgICBs
ZXQgdiA9IDEwMDAwICoKKyAgICAgICAgICAgICAgTWF0aC5leHAoCisgICAgICAgICAgICAgICAg
ICAtKGZyYW1lIC8gc2FtcGxlUmF0ZSAtIHN0YXJ0RnJhbWUgLyBzYW1wbGVSYXRlKSAvCisgICAg
ICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQpOworICAgICAgICAgIHNob3VsZCgKKyAgICAgICAg
ICAgICAgcmVzdWx0RGF0YVtmcmFtZV0sIG1lc3NhZ2UgKyAnOiBUYXJnZXQgdmFsdWUgYXQgZnJh
bWUgJyArIGZyYW1lKQorICAgICAgICAgICAgICAuYmVDbG9zZVRvKHYsIHt0aHJlc2hvbGQ6IHRo
cmVzaG9sZH0pOworICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gaW5pdGlh
bGl6ZUdhaW5CeVNldHRlcihnKSB7CisgICAgICAgIGcuZ2Fpbi52YWx1ZSA9IGluaXRpYWxHYWlu
OworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBpbml0aWFsaXplR2FpbkJ5U2V0VmFsdWUoZykg
eworICAgICAgICBnLmdhaW4uc2V0VmFsdWVBdFRpbWUoaW5pdGlhbEdhaW4sIDApOworICAgICAg
fQorCisgICAgICBhdWRpdC5kZWZpbmUoJ3NldFZhbHVlOzEyOC4xJywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBkb1Rlc3QoCisgICAgICAgICAgICBzaG91bGQsICdJbml0aWFsaXplIGJ5
IHNldFZhbHVlQXRUaW1lJywgMTI4LjEsIDMuNjAyOWUtOCwKKyAgICAgICAgICAgIGluaXRpYWxp
emVHYWluQnlTZXRWYWx1ZSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsK
KyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3NldFZhbHVlOzAuMScsICh0YXNrLCBz
aG91bGQpID0+IHsKKyAgICAgICAgZG9UZXN0KAorICAgICAgICAgICAgc2hvdWxkLCAnSW5pdGlh
bGl6ZSBieSBzZXRWYWx1ZUF0VGltZScsIDAuMSwgMy42MDI5ZS04LAorICAgICAgICAgICAgaW5p
dGlhbGl6ZUdhaW5CeVNldFZhbHVlKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25l
KCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnc2V0VmFsdWU7MC4wJywgKHRh
c2ssIHNob3VsZCkgPT4geworICAgICAgICBkb1Rlc3QoCisgICAgICAgICAgICBzaG91bGQsICdJ
bml0aWFsaXplIGJ5IHNldFZhbHVlQXRUaW1lJywgMCwgMy42MDI5ZS04LAorICAgICAgICAgICAg
aW5pdGlhbGl6ZUdhaW5CeVNldFZhbHVlKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5k
b25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnc2V0dGVyOzEyOC4xJywg
KHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBkb1Rlc3QoCisgICAgICAgICAgICBzaG91bGQs
ICdJbml0aWFsaXplIGJ5IHNldHRlcicsIDEyOC4xLCAzLjYwMjllLTgsCisgICAgICAgICAgICBp
bml0aWFsaXplR2FpbkJ5U2V0dGVyKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25l
KCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnc2V0dGVyOzAuMScsICh0YXNr
LCBzaG91bGQpID0+IHsKKyAgICAgICAgZG9UZXN0KAorICAgICAgICAgICAgc2hvdWxkLCAnSW5p
dGlhbGl6ZSBieSBzZXR0ZXInLCAwLjEsIDMuNjAyOWUtOCwKKyAgICAgICAgICAgIGluaXRpYWxp
emVHYWluQnlTZXR0ZXIpCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7Cisg
ICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdzZXR0ZXI7MC4wJywgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICBkb1Rlc3Qoc2hvdWxkLCAnSW5pdGlhbGl6ZSBieSBzZXR0ZXInLCAw
LCAwLCBpbml0aWFsaXplR2FpbkJ5U2V0dGVyKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFz
ay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0
PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
dWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1jb3B5LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWNv
cHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNzJmNGFlNWFlYTA5MTUwMjc0NzRmZWEwZmY4
NzlhOTdiMjgwZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1jb3B5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVj
dXRpbmcgInRlc3QtY29weSIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbdGVzdC1jb3B5
XSAgCitQQVNTICAgc2V0VmFsdWVDdXJ2ZSBvdXRwdXQgaXMgaWRlbnRpY2FsIHRvIHRoZSBhcnJh
eSBbZXhwZWN0ZWQgYXJyYXldLiAKK1BBU1MgPCBbdGVzdC1jb3B5XSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJ
TklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1jb3B5Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVD
dXJ2ZS1jb3B5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjExMjFhODEzYTY3MTdlZDZjZGY3NjAxODljY2Yy
MzAxZTMyOTk0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWNvcHkuaHRtbApAQCAtMCwwICsxLDkxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBU
ZXN0IHNldFZhbHVlQ3VydmVBdFRpbWUgQ29waWVzIHRoZSBDdXJ2ZSBEYXRhCisgICAgPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9wYW5uZXItZm9ybXVsYXMuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IHNh
bXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgIGxldCByZW5kZXJGcmFtZXMgPSAxMDI0OworICAgICAg
bGV0IHJlbmRlckR1cmF0aW9uID0gcmVuZGVyRnJhbWVzIC8gc2FtcGxlUmF0ZTsKKworICAgICAg
bGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICAvLyBUZXN0IHRo
YXQgY2hhbmdpbmcgdGhlIGN1cnZlIGFycmF5IHRvIHNldFZhbHVlQ3VydmVBdFRpbWUgZG9lc24n
dAorICAgICAgLy8gY2hhbmdlIHRoZSBhdXRvbWF0aW9uIG91dHB1dC4KKyAgICAgIGF1ZGl0LmRl
ZmluZSgndGVzdC1jb3B5JywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAvLyBUd28tY2hh
bm5lbCBjb250ZXh0OyBjaGFubmVsIDAgaXMgdGhlIHRlc3QgcmVzdWx0LCBhbmQgY2hhbm5lbCAx
IGlzCisgICAgICAgIC8vIHRoZSBleHBlY3RlZCByZXN1bHQuCisgICAgICAgIGxldCBjb250ZXh0
ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsK
KworICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAg
ICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEp
OworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgLy8gQ3JlYXRlIHR3byBn
YWluIG5vZGVzLiAgZ2FpblJlZiBpcyB0aGUgcmVmZXJlbmNlIHdpdGggdGhlIGV4cGVjdGVkCisg
ICAgICAgIC8vIGF1dG9tYXRpb24gcmVzdWx0cy4gIGdhaW5UZXN0IGlzIHRoZSB0ZXN0IHdoaWNo
IHdpbGwgaGF2ZSB0aGUgY3VydmUKKyAgICAgICAgLy8gbW9kaWZpZWQuCisgICAgICAgIGxldCBn
YWluVGVzdCA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgZ2FpblJlZiA9IGNv
bnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIGxldCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0
ZUNoYW5uZWxNZXJnZXIoMik7CisKKyAgICAgICAgLy8gVGhlIGFjdHVhbCBjdXJ2ZSBkYXRhIGNh
biBiZSBhbnl0aGluZywgYnV0IHdlIHVzZSB0aGlzIGZvcgorICAgICAgICAvLyBzaW1wbGljaXR5
LgorICAgICAgICBsZXQgY3VydmVEYXRhID0gWzEsIDBdOworICAgICAgICBsZXQgY3VydmVSZWYg
PSBGbG9hdDMyQXJyYXkuZnJvbShjdXJ2ZURhdGEpOworICAgICAgICBsZXQgY3VydmVUZXN0ID0g
RmxvYXQzMkFycmF5LmZyb20oY3VydmVEYXRhKTsKKworICAgICAgICAvLyBDcmVhdGUgdGhlIGdy
YXBoLgorICAgICAgICBzb3VyY2UuY29ubmVjdChnYWluVGVzdCk7CisgICAgICAgIHNvdXJjZS5j
b25uZWN0KGdhaW5SZWYpOworICAgICAgICBnYWluVGVzdC5jb25uZWN0KG1lcmdlciwgMCwgMCk7
CisgICAgICAgIGdhaW5SZWYuY29ubmVjdChtZXJnZXIsIDAsIDEpOworICAgICAgICBtZXJnZXIu
Y29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICAvLyBJbml0aWFsaXplIHRo
ZSBnYWlucy4KKyAgICAgICAgZ2FpblRlc3QuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAg
ICAgICAgZ2FpblJlZi5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworCisgICAgICAgIC8vIFNl
dCB1cCB0aGUgdmFsdWUgY3VydmUuICBBdCB0aGlzIHBvaW50IGN1cnZlVGVzdCBhbmQgY3VydmVS
ZWYgYXJlIHRoZQorICAgICAgICAvLyBzYW1lLgorICAgICAgICBnYWluVGVzdC5nYWluLnNldFZh
bHVlQ3VydmVBdFRpbWUoY3VydmVUZXN0LCAwLCByZW5kZXJEdXJhdGlvbik7CisgICAgICAgIGdh
aW5SZWYuZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlUmVmLCAwLCByZW5kZXJEdXJhdGlv
bik7CisKKyAgICAgICAgLy8gQWZ0ZXIgcmVuZGVyaW5nIGhhcyBzdGFydGVkLCBtb2RpZnkgY3Vy
dmVUZXN0LgorICAgICAgICBjb250ZXh0LnN1c3BlbmQoMTI4IC8gc2FtcGxlUmF0ZSkKKyAgICAg
ICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAvLyBDaGFuZ2UgdGhlIHZh
bHVlcyBvZiBjdXJ2ZSBub3cuICBBbnkgdHJhbnNmb3JtYXRpb24gaXMgb2sgYXMKKyAgICAgICAg
ICAgICAgLy8gbG9uZyBhcyBjdXJ2ZVRlc3QgY2hhbmdlcy4gIFdlIGRvIHRoaXMgdG8gbWFrZSBp
dCByZWFsbHkKKyAgICAgICAgICAgICAgLy8gb2J2aW91cy4KKyAgICAgICAgICAgICAgZm9yIChs
ZXQgayA9IDA7IGsgPCBjdXJ2ZVRlc3QubGVuZ3RoOyArK2spCisgICAgICAgICAgICAgICAgY3Vy
dmVUZXN0W2tdID0gMTAwICogY3VydmVUZXN0W2tdICsgMTsKKyAgICAgICAgICAgIH0pCisgICAg
ICAgICAgICAudGhlbihjb250ZXh0LnJlc3VtZS5iaW5kKGNvbnRleHQpKTsKKworICAgICAgICAv
LyBTdGFydCB0aGUgdGVzdCEKKyAgICAgICAgc291cmNlLnN0YXJ0KCk7CisKKyAgICAgICAgY29u
dGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRC
dWZmZXIpIHsKKyAgICAgICAgICAgICAgbGV0IHRlc3REYXRhID0gcmVzdWx0QnVmZmVyLmdldENo
YW5uZWxEYXRhKDApOworICAgICAgICAgICAgICBsZXQgcmVmRGF0YSA9IHJlc3VsdEJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgxKTsKKworICAgICAgICAgICAgICAvLyBUaGUgdGVzdCByZXN1bHQgYW5k
IHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGlkZW50aWNhbCBzaW5jZQorICAgICAgICAgICAgICAv
LyBjaGFuZ2luZyB0aGUgY3VydmUgZGF0YSBzaG91bGQgbm90IGFmZmVjdCB0aGUgYXV0b21hdGlv
bi4KKyAgICAgICAgICAgICAgc2hvdWxkKHRlc3REYXRhLCAnc2V0VmFsdWVDdXJ2ZSBvdXRwdXQn
KS5iZUVxdWFsVG9BcnJheShyZWZEYXRhKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAu
dGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7
CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWR1cmF0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJh
bS1zZXRWYWx1ZUN1cnZlLWR1cmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOTEzMGU3
ODkyMmVlMjQ0ZmE2OGE4NWE4NTdjZDFmMWU1ODE2NWJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZHVy
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNTICMgQVVESVQgVEFTSyBS
VU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAibG9uZyBkdXJhdGlvbiIgCitQQVNTIEF1
ZGl0IHJlcG9ydCAKK1BBU1MgPiBbbG9uZyBkdXJhdGlvbl0gIAorUEFTUyAgIE1heCBhbXBsaXR1
ZGUgb2Ygc2V0VmFsdWVDdXJ2ZShbMCwxXSwgMCwgMTg0NDY3NDQwNzM3MDk1NTIwMDApIGlzIGxl
c3MgdGhhbiBvciBlcXVhbCB0byAxLjEyOTM3NzI2MzAwNTczMzdlLTIxLiAKK1BBU1MgPCBbbG9u
ZyBkdXJhdGlvbl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAK
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1
bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLXNldFZhbHVlQ3VydmUtZHVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWR1cmF0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDRhMTcxOGNiNDI2Y2NmZDhiNWU1N2ZlMzM0MGQ5Y2NmZjE3MWFkNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRW
YWx1ZUN1cnZlLWR1cmF0aW9uLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBzZXRWYWx1ZUN1cnZl
QXRUaW1lIHdpdGggSHVnZSBEdXJhdGlvbgorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YXVkaXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaW9w
YXJhbS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2Ny
aXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgwMDA7
CisgICAgICBsZXQgcmVuZGVyRnJhbWVzID0gMTAwMDsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVk
aXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2xvbmcgZHVyYXRp
b24nLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBnZW5l
cmF0ZSBhIHNtYWxsIG51bWJlciBvZiBmcmFtZXMgZm9yIHRoaXMgdGVzdC4KKyAgICAgICAgbGV0
IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBs
ZVJhdGUpOworICAgICAgICBsZXQgc3JjID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsK
KworICAgICAgICAvLyBDb25zdGFudCBzb3VyY2Ugb2YgYW1wbGl0dWRlIDEsIGxvb3BpbmcuCisg
ICAgICAgIHNyYy5idWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsK
KyAgICAgICAgc3JjLmxvb3AgPSB0cnVlOworCisgICAgICAgIC8vIEF1dG9tYXRlIHRoZSBnYWlu
IHdpdGggYSBzZXRWYWx1ZUN1cnZlIHdpdGggYSB2ZXJ5IGxvbmcgZHVyYXRpb24uCisgICAgICAg
IC8vIFRoZSBkdXJhdGlvbiBzaG91bGQgcHJvZHVjZSBhIGZyYW1lIG51bWJlciBncmVhdGVyIHRo
YW4gMl42NCAobGFyZ2VyCisgICAgICAgIC8vIHRoYW4gdGhlIGxhcmdlc3Qgc2l6ZV90IHZhbHVl
KS4KKyAgICAgICAgbGV0IGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0
IGR1cmF0aW9uID0gTWF0aC5wb3coMiwgNjQpOworICAgICAgICBsZXQgY3VydmUgPSBGbG9hdDMy
QXJyYXkuZnJvbShbMCwgMV0pOworICAgICAgICBnYWluLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGlt
ZShjdXJ2ZSwgMCwgZHVyYXRpb24pOworCisgICAgICAgIC8vIENyZWF0ZSB0aGUgZ3JhcGggYW5k
IGdvIQorICAgICAgICBzcmMuY29ubmVjdChnYWluKTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0KGNv
bnRleHQuZGVzdGluYXRpb24pOworICAgICAgICBzcmMuc3RhcnQoKTsKKworICAgICAgICBjb250
ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgICAgICAgICAgICAvLyBGaW5kIHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSBidWZmZXIu
CisgICAgICAgICAgICAgIGxldCBtYXggPSBNYXRoLm1heC5hcHBseShudWxsLCByZXN1bHQuZ2V0
Q2hhbm5lbERhdGEoMCkpOworCisgICAgICAgICAgICAgIC8vIFRoZSBhdXRvbWF0aW9uIGRvZXMg
bGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiAwIGFuZCAxIGZyb20KKyAgICAgICAgICAgICAg
Ly8gdGltZSAwIHRvIGR1cmF0aW9uLiBIZW5jZSB0aGUgbWF4IHZhbHVlIG9mIHRoZSBpbnRlcnBv
bGF0aW9uCisgICAgICAgICAgICAgIC8vIG9jY3VycyBhdCB0aGUgZW5kIG9mIHRoZSByZW5kZXJp
bmcuICBDb21wdXRlIHRoaXMgdmFsdWUuCisKKyAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkTWF4
ID0gKHJlbmRlckZyYW1lcyAvIHNhbXBsZVJhdGUpICogKDEgLyBkdXJhdGlvbik7CisKKyAgICAg
ICAgICAgICAgbGV0IG1lc3NhZ2UgPQorICAgICAgICAgICAgICAgICAgJ3NldFZhbHVlQ3VydmUo
WycgKyBjdXJ2ZSArICddLCAwLCAnICsgZHVyYXRpb24gKyAnKSc7CisKKyAgICAgICAgICAgICAg
c2hvdWxkKG1heCwgJ01heCBhbXBsaXR1ZGUgb2YgJyArIG1lc3NhZ2UpCisgICAgICAgICAgICAg
ICAgICAuYmVMZXNzVGhhbk9yRXF1YWxUbyhleHBlY3RlZE1heCk7CisgICAgICAgICAgICB9KQor
ICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAg
IGF1ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVD
dXJ2ZS1lbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9h
dWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZW5kLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjRk
ZTgxN2RhNmI4MWE0YzMxM2U2YmUxZDgzMzQ2ZTg2NDNiOWVhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUt
ZW5kLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICIwOiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGlt
ZSIgCitQQVNTIEV4ZWN1dGluZyAiMTogbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUiIAorUEFTUyBF
eGVjdXRpbmcgIjI6IGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUiIAorUEFTUyBFeGVjdXRp
bmcgIjM6IGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUiIAorUEFTUyBFeGVjdXRpbmcgIjQ6
IHNldFRhcmdldEF0VGltZSIgCitQQVNTIEV4ZWN1dGluZyAiNTogc2V0VGFyZ2V0QXRUaW1lIiAK
K1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFswOiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZV0g
IAorRkFJTCBYIHNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxKS5saW5lYXJSYW1wVG9WYWx1ZUF0
VGltZSgyLCAwLjAyKTogdmFsdWUgYXQgdGltZSAwLjAxIGlzIG5vdCBjbG9zZSB0byAwLjMgd2l0
aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgMy45NzM3ZS04IChSZWxFcnI9Mi4zMzMzMzMzMzMzMzMz
MzM1KS4gR290IDEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8
IFswOiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZV0gMSBvdXQgb2YgMSBhc3NlcnRpb25zIHdlcmUg
ZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbMTog
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWVdICAKK0ZBSUwgWCBzZXRWYWx1ZUN1cnZlKC4uLiwgMCwg
MC4wMTAwMzkwNjI1KS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgyLCAwLjAyKTogdmFsdWUgYXQg
dGltZSAwLjAxMDA3ODEyNSBpcyBub3QgY2xvc2UgdG8gMC4zMDY2NjY2NjY2NjY2NjY4IHdpdGhp
biBhIHJlbGF0aXZlIGVycm9yIG9mIDEuODE0MWUtOCAoUmVsRXJyPTIuMjg2MzQ1MTA4Njk1NjUw
NikuIEdvdCAxLjAwNzgxMjUuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
RkFJTCA8IFsxOiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZV0gMSBvdXQgb2YgMSBhc3NlcnRpb25z
IHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
PiBbMjogZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZV0gIAorRkFJTCBYIHNldFZhbHVlQ3Vy
dmUoLi4uLCAwLCAwLjAxKS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDIsIDAuMDIpOiB2
YWx1ZSBhdCB0aW1lIDAuMDEgaXMgbm90IGNsb3NlIHRvIDAuMyB3aXRoaW4gYSByZWxhdGl2ZSBl
cnJvciBvZiAzLjk3MzdlLTggKFJlbEVycj0yLjMzMzMzMzMzMzMzMzMzMzUpLiBHb3QgMS4gYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgWzI6IGV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWVdIDEgb3V0IG9mIDEgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gWzM6IGV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWVdICAKK0ZBSUwgWCBzZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMTAw
MzkwNjI1KS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDIsIDAuMDIpOiB2YWx1ZSBhdCB0
aW1lIDAuMDEwMDc4MTI1IGlzIG5vdCBjbG9zZSB0byAwLjMwMjI0MDIyODgzMTUwMzY0IHdpdGhp
biBhIHJlbGF0aXZlIGVycm9yIG9mIDcuODI5NGUtOCAoUmVsRXJyPTIuMzA4NjI2Mzk5MTU5NzYx
KS4gR290IDEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFsz
OiBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lXSAxIG91dCBvZiAxIGFzc2VydGlvbnMgd2Vy
ZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFs0
OiBzZXRUYXJnZXRBdFRpbWVdICAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMSku
c2V0VGFyZ2V0QXRUaW1lKDIsIDAuMDIsIDAuMDEpOiB2YWx1ZSBhdCB0aW1lIDAuMDEgaXMgMC4z
MDAwMDAwMDAwMDAwMDAwNCB3aXRoaW4gYW4gZXJyb3Igb2YgMS41ODk1ZS03LiAKK1BBU1MgPCBb
NDogc2V0VGFyZ2V0QXRUaW1lXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFs1OiBzZXRUYXJnZXRBdFRpbWVdICAKK0ZBSUwgWCBzZXRWYWx1ZUN1
cnZlKC4uLiwgMCwgMC4wMTAwMzkwNjI1KS5zZXRUYXJnZXRBdFRpbWUoMiwgMC4wMiwgMC4wMSk6
IHZhbHVlIGF0IHRpbWUgMC4wMTAwNzgxMjUgaXMgbm90IGNsb3NlIHRvIDAuMzA2NjI3NjcxOTAw
ODAwNTQgd2l0aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgMS4zMjc4ZS03IChSZWxFcnI9MC4wNDI5
NzcxMzg3NTgwOTM2OSkuIEdvdCAwLjMxOTgwNTY1MTkwMzE1MjQ3LiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbNTogc2V0VGFyZ2V0QXRUaW1lXSAxIG91dCBv
ZiAxIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA1IG91dCBvZiA2IHRh
c2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNl
dFZhbHVlQ3VydmUtZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1lbmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTFkYjdhNGU0OWYy
YTdjNjVkMWRmYWEzNTQ1ZjVhMjBkNDkzMzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZW5kLmh0bWwK
QEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAg
IDx0aXRsZT4KKyAgICAgIFRlc3QgQXV0b21hdGlvbiBGb2xsb3dpbmcgc2V0VmFsdWVDdXJ2ZUF0
VGltZSBBdXRvbWF0aW9ucworICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaW8tcGFyYW0uanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10
ZXN0LWNvZGUiPgorICAgICAgbGV0IHNhbXBsZVJhdGUgPSAxMjgwMDsKKyAgICAgIC8vIFNvbWUg
c2hvcnQgZHVyYXRpb24gYmVjYXVzZSB3ZSBkb24ndCBuZWVkIHRvIHJ1biB0aGUgdGVzdCBmb3Ig
dmVyeQorICAgICAgLy8gbG9uZy4KKyAgICAgIGxldCB0ZXN0RHVyYXRpb25GcmFtZXMgPSAyNTY7
CisgICAgICBsZXQgdGVzdER1cmF0aW9uU2VjID0gdGVzdER1cmF0aW9uRnJhbWVzIC8gc2FtcGxl
UmF0ZTsKKyAgICAgIGxldCBjdXJ2ZUR1cmF0aW9uID0gdGVzdER1cmF0aW9uU2VjIC8gMjsKKwor
ICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICAvLyBD
b25maWd1cmF0aW9uIGZvciBlYWNoIHRlc3QuCisgICAgICAvLworICAgICAgLy8gUmVxdWlyZWQg
b3B0aW9uczoKKyAgICAgIC8vICAgYXV0b21hdGlvbiAtIE5hbWUgb2YgYXV0b21hdGlvbiBtZXRo
b2QgdG8gdGVzdAorICAgICAgLy8gICB0aW1lICAgICAgIC0gVGltZSBmb3IgdGhlIGF1dG9tYXRp
b24gbWV0aG9kLgorICAgICAgLy8gT3B0aW9uYWwgb3B0aW9uczoKKyAgICAgIC8vICAgZXh0cmFE
dXJhdGlvbiAtIGV4dHJhIHRpbWUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgc2V0VmFsdWVDdXJ2
ZQorICAgICAgLy8gICAgICAgICAgICAgICAgICAgZHVyYXRpb24uICBEZWZhdWx0IGlzIDAuIFRo
aXMgc2hvdWxkIG5vdCBiZSBvbiBhCisgICAgICAvLyAgICAgICAgICAgICAgICAgICBzYW1wbGUg
ZnJhbWUgYm91bmRhcnkuIFRoaXMgaXMgZm9yIHRlc3RpbmcgdGhhdAorICAgICAgLy8gICAgICAg
ICAgICAgICAgICAgY3VydmVzIHRoYXQgZG9uJ3QgZW5kIG9uIGEgZnJhbWUgYm91bmRhcnkgYXJl
IGhhbmRsZWQKKyAgICAgIC8vICAgICAgICAgICAgICAgICAgIGNvcnJlY3RseS4KKyAgICAgIC8v
ICAgdGhyZXNob2xkICAgICAtIEVycm9yIHRocmVzaG9sZCBmb3IgdGhlIHRlc3Q7IGRlZmF1bHQg
aXMgMC4KKyAgICAgIGxldCB0ZXN0Q29uZmlncyA9IFsKKyAgICAgICAgeworICAgICAgICAgIGF1
dG9tYXRpb246ICdsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZScsCisgICAgICAgICAgdGltZTogdGVz
dER1cmF0aW9uU2VjLAorICAgICAgICAgIHRocmVzaG9sZDogMy45NzM3ZS04CisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICBhdXRvbWF0aW9uOiAnbGluZWFyUmFtcFRvVmFsdWVBdFRp
bWUnLAorICAgICAgICAgIHRpbWU6IHRlc3REdXJhdGlvblNlYywKKyAgICAgICAgICBleHRyYUR1
cmF0aW9uOiAwLjUgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIHRocmVzaG9sZDogMS44MTQxZS04
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBhdXRvbWF0aW9uOiAnZXhwb25lbnRp
YWxSYW1wVG9WYWx1ZUF0VGltZScsCisgICAgICAgICAgdGltZTogdGVzdER1cmF0aW9uU2VjLAor
ICAgICAgICAgIHRocmVzaG9sZDogMy45NzM3ZS04CisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICBhdXRvbWF0aW9uOiAnZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScsCisgICAg
ICAgICAgdGltZTogdGVzdER1cmF0aW9uU2VjLAorICAgICAgICAgIGV4dHJhRHVyYXRpb246IDAu
NSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgdGhyZXNob2xkOiA3LjgyOTRlLTgKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgIGF1dG9tYXRpb246ICdzZXRUYXJnZXRBdFRpbWUnLAor
ICAgICAgICAgIHRpbWU6IGN1cnZlRHVyYXRpb24sCisgICAgICAgICAgdGhyZXNob2xkOiAxLjU4
OTVlLTcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGF1dG9tYXRpb246ICdzZXRU
YXJnZXRBdFRpbWUnLAorICAgICAgICAgIHRpbWU6IGN1cnZlRHVyYXRpb24gKyAwLjUgLyBzYW1w
bGVSYXRlLAorICAgICAgICAgIGV4dHJhRHVyYXRpb246IDAuNSAvIHNhbXBsZVJhdGUsCisgICAg
ICAgICAgdGhyZXNob2xkOiAxLjMyNzhlLTcKKyAgICAgICAgfQorICAgICAgXTsKKworICAgICAg
Ly8gRGVmaW5lIHRlc3RzIGZyb20gdGhlIGNvbmZpZ3MKKyAgICAgIGZvciAoayBpbiB0ZXN0Q29u
ZmlncykgeworICAgICAgICBhdWRpdC5kZWZpbmUoayArICc6ICcgKyB0ZXN0Q29uZmlnc1trXS5h
dXRvbWF0aW9uLCAoZnVuY3Rpb24oY29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgcnVuVGVz
dChzaG91bGQsIGNvbmZpZykudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgICB9KSh0ZXN0Q29uZmlnc1trXSkpOwor
ICAgICAgfQorCisgICAgICBhdWRpdC5ydW4oKTsKKworICAgICAgZnVuY3Rpb24gcnVuVGVzdChz
aG91bGQsIG9wdGlvbnMpIHsKKyAgICAgICAgLy8gRm9yIHRoZSB0ZXN0LCB1c2UgYSBnYWluIG5v
ZGUgd2l0aCBhIGNvbnN0YW50IGlucHV0IHRvIHRlc3QgdGhlCisgICAgICAgIC8vIGF1dG9tYXRp
b25zLgorICAgICAgICBsZXQgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCB0ZXN0RHVyYXRpb25GcmFtZXMsIHNhbXBsZVJhdGUpOworICAgICAgICBsZXQg
c291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc291cmNlLmJ1
ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBzb3Vy
Y2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgbGV0IGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4o
KTsKKworICAgICAgICAvLyBBbnkgdmFsaWQgY3VydmUgaXMgb2suICBXZSBvbmx5IHVzZSB0aGUg
bGFzdCB2YWx1ZSBmb3IgdGVzdGluZy4KKyAgICAgICAgbGV0IGN1cnZlID0gWzAsIDIsIDAuM107
CisgICAgICAgIGxldCBhY3R1YWxEdXJhdGlvbiA9IGN1cnZlRHVyYXRpb24gKyAob3B0aW9ucy5l
eHRyYUR1cmF0aW9uIHx8IDApOworICAgICAgICBnYWluLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGlt
ZSgKKyAgICAgICAgICAgIEZsb2F0MzJBcnJheS5mcm9tKGN1cnZlKSwgMCwgYWN0dWFsRHVyYXRp
b24pOworCisgICAgICAgIC8vIFJ1biB0aGUgZGVzaXJlZCB0ZXN0IGF1dG9tYXRpb24uICBUaGUg
ZXh0cmEgcGFyYW1ldGVyICgwLjAxKSBpcyBvbmx5CisgICAgICAgIC8vIHVzZWQgZm9yIHNldFRh
cmdldEF0VGltZSB0ZXN0czsgaXQncyBpZ25vcmVkIGZvciBvdGhlciB0ZXN0cy4KKyAgICAgICAg
bGV0IGF1dG9tYXRpb25WYWx1ZSA9IDI7CisgICAgICAgIGdhaW4uZ2FpbltvcHRpb25zLmF1dG9t
YXRpb25dKGF1dG9tYXRpb25WYWx1ZSwgb3B0aW9ucy50aW1lLCAwLjAxKTsKKworICAgICAgICBz
b3VyY2UuY29ubmVjdChnYWluKTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0KGNvbnRleHQuZGVzdGlu
YXRpb24pOworCisgICAgICAgIHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250
ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAgICAg
ICAgICBsZXQgcmVzdWx0ID0gcmVzdWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworCisgICAg
ICAgICAgLy8gT25seSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZSByYW1wIHN0YXJ0ZWQgYXQgdGhl
IHJpZ2h0CisgICAgICAgICAgLy8gdmFsdWUuIEZpZ3VyZSB0aGUgbmVhcmVzdCBzYW1wbGUgZnJh
bWUgdG8gdGhlIGVuZCBjdXJ2ZS4KKyAgICAgICAgICBsZXQgY3VydmVFbmRGcmFtZSA9IE1hdGgu
Y2VpbChhY3R1YWxEdXJhdGlvbiAqIHNhbXBsZVJhdGUpOworCisgICAgICAgICAgbGV0IGV4cGVj
dGVkUmVzdWx0ID0gY3VydmVbY3VydmUubGVuZ3RoIC0gMV07CisKKyAgICAgICAgICAvLyBEZXRl
cm1pbmUgdGhlIGV4cGVjdGVkIHZhbHVlIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHNldFZhbHVlQ3Vy
dmUKKyAgICAgICAgICAvLyBldmVudC4KKyAgICAgICAgICBpZiAob3B0aW9ucy5hdXRvbWF0aW9u
ID09ICdsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZScpIHsKKyAgICAgICAgICAgIGV4cGVjdGVkUmVz
dWx0ID0gYXVkaW9QYXJhbUxpbmVhclJhbXAoCisgICAgICAgICAgICAgICAgY3VydmVFbmRGcmFt
ZSAvIHNhbXBsZVJhdGUsIGN1cnZlW2N1cnZlLmxlbmd0aCAtIDFdLAorICAgICAgICAgICAgICAg
IGFjdHVhbER1cmF0aW9uLCBhdXRvbWF0aW9uVmFsdWUsIHRlc3REdXJhdGlvblNlYyk7CisgICAg
ICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmF1dG9tYXRpb24gPT0gJ2V4cG9uZW50aWFsUmFtcFRv
VmFsdWVBdFRpbWUnKSB7CisgICAgICAgICAgICBleHBlY3RlZFJlc3VsdCA9IGF1ZGlvUGFyYW1F
eHBvbmVudGlhbFJhbXAoCisgICAgICAgICAgICAgICAgY3VydmVFbmRGcmFtZSAvIHNhbXBsZVJh
dGUsIGN1cnZlW2N1cnZlLmxlbmd0aCAtIDFdLAorICAgICAgICAgICAgICAgIGFjdHVhbER1cmF0
aW9uLCBhdXRvbWF0aW9uVmFsdWUsIHRlc3REdXJhdGlvblNlYyk7CisgICAgICAgICAgfSBlbHNl
IGlmIChvcHRpb25zLmF1dG9tYXRpb24gPT0gJ3NldFRhcmdldEF0VGltZScpIHsKKyAgICAgICAg
ICAgIGV4cGVjdGVkUmVzdWx0ID0gYXVkaW9QYXJhbVNldFRhcmdldCgKKyAgICAgICAgICAgICAg
ICBjdXJ2ZUVuZEZyYW1lIC8gc2FtcGxlUmF0ZSwgY3VydmVbY3VydmUubGVuZ3RoIC0gMV0sCisg
ICAgICAgICAgICAgICAgYWN0dWFsRHVyYXRpb24sIGF1dG9tYXRpb25WYWx1ZSwgMC4wMSk7Cisg
ICAgICAgICAgfQorCisgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAnc2V0VmFsdWVDdXJ2ZSguLi4s
ICcgKyAwICsgJywgJyArIGFjdHVhbER1cmF0aW9uICsKKyAgICAgICAgICAgICAgJykuJyArIG9w
dGlvbnMuYXV0b21hdGlvbiArICcoMiwgJyArIHRlc3REdXJhdGlvblNlYzsKKworICAgICAgICAg
IGlmIChvcHRpb25zLmF1dG9tYXRpb24gPT0gJ3NldFRhcmdldEF0VGltZScpCisgICAgICAgICAg
ICBtZXNzYWdlICs9ICcsIDAuMDEnOworICAgICAgICAgIG1lc3NhZ2UgKz0gJyknOworCisgICAg
ICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICByZXN1bHRbY3VydmVFbmRGcmFtZV0sCisgICAg
ICAgICAgICAgIG1lc3NhZ2UgKyAnOiB2YWx1ZSBhdCB0aW1lICcgKyBjdXJ2ZUVuZEZyYW1lIC8g
c2FtcGxlUmF0ZSkKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUbyhleHBlY3RlZFJlc3VsdCwge3Ro
cmVzaG9sZDogb3B0aW9ucy50aHJlc2hvbGQgfHwgMH0pOworICAgICAgICB9KTsKKyAgICAgIH0K
KworICAgICAgZnVuY3Rpb24gbGluZWFyUmFtcFZhbHVlKHQsIHQwLCB2MCwgdDEsIHYxKSB7Cisg
ICAgICAgIHJldHVybiB2MCArICh2MSAtIHYwKSAqICh0IC0gdDApIC8gKHQxIC0gdDApOworICAg
ICAgfQorCisgICAgICBmdW5jdGlvbiBleHBvbmVudGlhbFJhbXBWYWx1ZSh0LCB0MCwgdjAsIHQx
LCB2MSkgeworICAgICAgICByZXR1cm4gdjAgKiBNYXRoLnBvdyh2MSAvIHYwLCAodCAtIHQwKSAv
ICh0MSAtIHQwKSk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIHNldFRhcmdldFZhbHVlKHQs
IHQwLCB2MCwgdjEsIHRpbWVDb25zdGFudCkgeworICAgICAgICByZXR1cm4gdjEgKyAodjAgLSB2
MSkgKiBNYXRoLmV4cCgtKHQgLSB0MCkgLyB0aW1lQ29uc3RhbnQpCisgICAgICB9CisgICAgPC9z
Y3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWV4Y2VwdGlvbnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZh
bHVlQ3VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFmZjhhYjM1OGRm
MTA4MTZmZGUyYTAyNTMxNzkwMzkzOGMxYzAxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK0NPTlNPTEUgV0FSTklORzogbGluZSAx
NDg6IERlbGF5LmRlbGF5VGltZS5zZXRWYWx1ZUN1cnZlQXRUaW1lIHZhbHVlIDUgb3V0c2lkZSBu
b21pbmFsIHJhbmdlIFswLCAxXTsgdmFsdWUgd2lsbCBiZSBjbGFtcGVkLgorVGhpcyBpcyBhIHRl
c3RoYXJuZXNzLmpzLWJhc2VkIHRlc3QuCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRF
RC4KK1BBU1MgPiBbc2V0VmFsdWVDdXJ2ZV0gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShj
dXJ2ZSwgMC4wMTI1LCAwLjAxMjUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyAg
IHNldFZhbHVlQXRUaW1lKDEsIDAuMDE4NzUwMDAwMDAwMDAwMDAzKSB0aHJldyBOb3RTdXBwb3J0
ZWRFcnJvcjogIkZhaWxlZCB0byBleGVjdXRlICdzZXRWYWx1ZUF0VGltZScgb24gJ0F1ZGlvUGFy
YW0nOiBzZXRWYWx1ZUF0VGltZSgxLCAwLjAxODc1KSBvdmVybGFwcyBzZXRWYWx1ZUN1cnZlQXRU
aW1lKC4uLiwgMC4wMTI1LCAwLjAxMjUpIi4KK1BBU1MgICBsaW5lYXJSYW1wVG9WYWx1ZUF0VGlt
ZSgxLCAwLjAxODc1MDAwMDAwMDAwMDAwMykgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJGYWls
ZWQgdG8gZXhlY3V0ZSAnbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnIG9uICdBdWRpb1BhcmFtJzog
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoMSwgMC4wMTg3NSkgb3ZlcmxhcHMgc2V0VmFsdWVDdXJ2
ZUF0VGltZSguLi4sIDAuMDEyNSwgMC4wMTI1KSIuCitQQVNTICAgZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZUF0VGltZSgxLCAwLjAxODc1MDAwMDAwMDAwMDAwMykgdGhyZXcgTm90U3VwcG9ydGVkRXJy
b3I6ICJGYWlsZWQgdG8gZXhlY3V0ZSAnZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScgb24g
J0F1ZGlvUGFyYW0nOiBleHBvbmVudGlhbFJhbXBUb1ZhbHVlKDEsIDAuMDE4NzUpIG92ZXJsYXBz
IHNldFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjAxMjUsIDAuMDEyNSkiLgorUEFTUyAgIHNldFRh
cmdldEF0VGltZSgxLCAwLjAxODc1MDAwMDAwMDAwMDAwMywgMSkgdGhyZXcgTm90U3VwcG9ydGVk
RXJyb3I6ICJGYWlsZWQgdG8gZXhlY3V0ZSAnc2V0VGFyZ2V0QXRUaW1lJyBvbiAnQXVkaW9QYXJh
bSc6IHNldFRhcmdldEF0VGltZSgxLCAwLjAxODc1LCAxKSBvdmVybGFwcyBzZXRWYWx1ZUN1cnZl
QXRUaW1lKC4uLiwgMC4wMTI1LCAwLjAxMjUpIi4KK1BBU1MgICBzZXRWYWx1ZUF0VGltZSgxLCAw
LjAyNjI1MDAwMDAwMDAwMDAwMikgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTIDwg
W3NldFZhbHVlQ3VydmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDYgYXNzZXJ0aW9u
cykKK1BBU1MgPiBbYXV0b21hdGlvbnNdIAorUEFTUyAgIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
KDEsIDAuMDEyNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAgZXhwb25lbnRp
YWxSYW1wVG9WYWx1ZUF0VGltZSgxLCAwLjAyNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24u
CitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDEsIDAuMDM3NTAwMDAwMDAwMDAwMDA2LCAwLjEpIGRp
ZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoY3Vy
dmUsIDAuMDUsIDAuMSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAgc2V0VmFs
dWVDdXJ2ZUF0VGltZShjdXJ2ZSwgMC4wMDYyNSwgMC4wMSkgdGhyZXcgTm90U3VwcG9ydGVkRXJy
b3I6ICJGYWlsZWQgdG8gZXhlY3V0ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24gJ0F1ZGlvUGFy
YW0nOiBzZXRWYWx1ZUN1cnZlQXRUaW1lKC4uLiwgMC4wMDYyNSwgMC4wMSkgb3ZlcmxhcHMgbGlu
ZWFyUmFtcFRvVmFsdWVBdFRpbWUoMSwgMC4wMTI1KSIuCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0
VGltZShjdXJ2ZSwgMC4wMTg3NTAwMDAwMDAwMDAwMDMsIDAuMDEpIHRocmV3IE5vdFN1cHBvcnRl
ZEVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVlQ3VydmVBdFRpbWUnIG9uICdBdWRp
b1BhcmFtJzogc2V0VmFsdWVDdXJ2ZUF0VGltZSguLi4sIDAuMDE4NzUsIDAuMDEpIG92ZXJsYXBz
IGV4cG9uZW50aWFsUmFtcFRvVmFsdWUoMSwgMC4wMjUpIi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZl
QXRUaW1lKGN1cnZlLCAwLjAzMTI1LCAwLjAxKSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkZh
aWxlZCB0byBleGVjdXRlICdzZXRWYWx1ZUN1cnZlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IHNl
dFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjAzMTI1LCAwLjAxKSBvdmVybGFwcyBzZXRUYXJnZXRB
dFRpbWUoMSwgMC4wMzc1MDAwMDAwMDAwMDAwMSwgMC4xKSIuCitQQVNTICAgc2V0VmFsdWVDdXJ2
ZUF0VGltZShjdXJ2ZSwgMC4wNDM3NTAwMDAwMDAwMDAwMDQsIDAuMDEpIHRocmV3IE5vdFN1cHBv
cnRlZEVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVlQ3VydmVBdFRpbWUnIG9uICdB
dWRpb1BhcmFtJzogc2V0VmFsdWVDdXJ2ZUF0VGltZSguLi4sIDAuMDQzNzUsIDAuMDEpIG92ZXJs
YXBzIHNldFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjA1LCAwLjEpIi4KK1BBU1MgICBzZXRWYWx1
ZUN1cnZlQXRUaW1lKFtOYU4sIE5hTl0sIDAuMDQzNzUwMDAwMDAwMDAwMDA0LCAwLjAxKSB0aHJl
dyBUeXBlRXJyb3I6ICJGYWlsZWQgdG8gZXhlY3V0ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24g
J0F1ZGlvUGFyYW0nOiBUaGUgcHJvdmlkZWQgZmxvYXQgdmFsdWUgaXMgbm9uLWZpbml0ZS4iLgor
UEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsIEluZmluaXR5XSwgMC4wNDM3NTAwMDAwMDAw
MDAwMDQsIDAuMDEpIHRocmV3IFR5cGVFcnJvcjogIkZhaWxlZCB0byBleGVjdXRlICdzZXRWYWx1
ZUN1cnZlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IFRoZSBwcm92aWRlZCBmbG9hdCB2YWx1ZSBp
cyBub24tZmluaXRlLiIuCitQQVNTICAgZGVsYXlUaW1lLnNldFZhbHVlQ3VydmVBdFRpbWUoWzEs
IDVdLCAwLjA0Mzc1MDAwMDAwMDAwMDAwNCwgMC4wMSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRp
b24uCitQQVNTICAgZGVsYXlUaW1lLnNldFZhbHVlQ3VydmVBdFRpbWUoWzEsIDUsIEluZmluaXR5
XSwgMC4wNDM3NTAwMDAwMDAwMDAwMDQsIDAuMDEpIHRocmV3IFR5cGVFcnJvcjogIkZhaWxlZCB0
byBleGVjdXRlICdzZXRWYWx1ZUN1cnZlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IFRoZSBwcm92
aWRlZCBmbG9hdCB2YWx1ZSBpcyBub24tZmluaXRlLiIuCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0
VGltZShjdXJ2ZSwgMC4wMzE0MTU5MjY1MzU4OTc5MzQsIDAuMDEpIHRocmV3IE5vdFN1cHBvcnRl
ZEVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVlQ3VydmVBdFRpbWUnIG9uICdBdWRp
b1BhcmFtJzogc2V0VmFsdWVDdXJ2ZUF0VGltZSguLi4sIDAuMDMxNDE1OTI2NTM1ODk3OTMsIDAu
MDEpIG92ZXJsYXBzIHNldFRhcmdldEF0VGltZSgxLCAwLjAzNzUwMDAwMDAwMDAwMDAxLCAwLjEp
Ii4KK1BBU1MgPCBbYXV0b21hdGlvbnNdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEz
IGFzc2VydGlvbnMpCitQQVNTID4gW2NhdGNoLWV4Y2VwdGlvbl0gCitQQVNTICAgSGFuZGxlZCBz
ZXRWYWx1ZUN1cnZlIGV4Y2VwdGlvbiBzbyBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3Rh
bnQgMS4KK1BBU1MgPCBbY2F0Y2gtZXhjZXB0aW9uXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAxIGFzc2VydGlvbnMpCitQQVNTID4gW3N0YXJ0LWVuZF0gCitQQVNTICAgc2V0VmFsdWVB
dFRpbWUoMSwgMCkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAgbGluZWFyUmFt
cFRvVmFsdWVBdFRpbWUoMCwgMC4wMDI1KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BB
U1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKC4uLiwgMC4wMDI1LCAwLjAwMjUpIGRpZCBub3QgdGhy
b3cgYW4gZXhjZXB0aW9uLgorUEFTUyAgIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMSwg
MC4wMDc1KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZl
QXRUaW1lKC4uLiwgMC4wMDc1LCAwLjAwMjUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgor
UEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjAxLCAwLjAwMjUpIGRpZCBub3QgdGhy
b3cgYW4gZXhjZXB0aW9uLgorUEFTUyAgIHNldFZhbHVlQXRUaW1lKDAsIDAuMDEyNSkgZGlkIG5v
dCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZSguLi4sIDAu
MDEyNSwgMC4wMDI1KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBzZXRUYXJn
ZXRBdFRpbWUoMSwgMC4wMTUwMDAwMDAwMDAwMDAwMDEsIDEpIGRpZCBub3QgdGhyb3cgYW4gZXhj
ZXB0aW9uLgorUEFTUyA8IFtzdGFydC1lbmRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDkgYXNzZXJ0aW9ucykKK1BBU1MgPiBbY3VydmUgbGVuZ3Roc10gCitQQVNTICAgc2V0VmFsdWVD
dXJ2ZUF0VGltZShbXSwgMCwgMC4wMSkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJGYWlsZWQg
dG8gZXhlY3V0ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24gJ0F1ZGlvUGFyYW0nOiBUaGUgY3Vy
dmUgbGVuZ3RoIHByb3ZpZGVkICgwKSBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gYm91bmQgKDIp
LiIuCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMV0sIDAsIDAuMDEpIHRocmV3IEludmFs
aWRTdGF0ZUVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVlQ3VydmVBdFRpbWUnIG9u
ICdBdWRpb1BhcmFtJzogVGhlIGN1cnZlIGxlbmd0aCBwcm92aWRlZCAoMSkgaXMgbGVzcyB0aGFu
IHRoZSBtaW5pbXVtIGJvdW5kICgyKS4iLgorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEs
Ml0sIDAsIDAuMDEpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyA8IFtjdXJ2ZSBs
ZW5ndGhzXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpCitQQVNT
ICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4K
K0hhcm5lc3M6IHRoZSB0ZXN0IHJhbiB0byBjb21wbGV0aW9uLgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGlt
ZS1pbnRlcnBvbGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWludGVycG9sYXRpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI3N2Y3ZWY4ZDAxZWJlYjY5OWYzM2YwYjBmNzg0OTJjYzdiYTIx
Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1pbnRlcnBvbGF0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDc1IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BB
U1MgRXhlY3V0aW5nICIwOmN1cnZlPTIsZHVyYXRpb249MzAwIiAKK1BBU1MgRXhlY3V0aW5nICIx
OmN1cnZlPTMsZHVyYXRpb249MzAwIiAKK1BBU1MgRXhlY3V0aW5nICIyOmN1cnZlPTE2LGR1cmF0
aW9uPTMwMCIgCitQQVNTIEV4ZWN1dGluZyAiMzpjdXJ2ZT0xMDAsZHVyYXRpb249MzAwIiAKK1BB
U1MgRXhlY3V0aW5nICI0OmN1cnZlPTIsZHVyYXRpb249MC4yNSIgCitQQVNTIEV4ZWN1dGluZyAi
NTpjdXJ2ZT0yLGR1cmF0aW9uPTIiIAorUEFTUyBFeGVjdXRpbmcgIjY6Y3VydmU9OCxkdXJhdGlv
bj0yIiAKK1BBU1MgRXhlY3V0aW5nICI3OmN1cnZlPTEwMDAsZHVyYXRpb249MTI4MDAiIAorUEFT
UyBFeGVjdXRpbmcgImNyYnVnLTQ0MTQ3MSIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBb
MDpjdXJ2ZT0yLGR1cmF0aW9uPTMwMF0gIAorUEFTUyAgIExlbmd0aCAyLCBkdXJhdGlvbiAwLjAx
MTcxODc1OiBDaGVjazogQ3VydmUgZW5kIHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEu
IAorUEFTUyAgIExlbmd0aCAyLCBkdXJhdGlvbiAwLjAxMTcxODc1OiBDaGVjazogRnVsbCBnYWlu
IHN0YXJ0IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAorUEFTUyAgIExlbmd0aCAy
LCBkdXJhdGlvbiAwLjAxMTcxODc1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMDIxNzE4NzUwMDAwMDAwMDAyLiAKK1BBU1MgICBDdXJ2
ZSBsZW5ndGggMiwgZHVyYXRpb24gMC4wMTE3MTg3NTogU05SIGlzIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byAxNzEuMjA2LiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGggMiwgZHVyYXRpb24gMC4wMTE3
MTg3NTogTWF4IGRpZmZlcmVuY2UgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUuOTYwNWUtOC4g
CitQQVNTIDwgWzA6Y3VydmU9MixkdXJhdGlvbj0zMDBdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDUgYXNzZXJ0aW9ucykgCitQQVNTID4gWzE6Y3VydmU9MyxkdXJhdGlvbj0zMDBdICAK
K1BBU1MgICBMZW5ndGggMywgZHVyYXRpb24gMC4wMTE3MTg3NTogQ2hlY2s6IEN1cnZlIGVuZCB0
aW1lIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMywgZHVyYXRp
b24gMC4wMTE3MTg3NTogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lIGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMywgZHVyYXRpb24gMC4wMTE3MTg3NTogQ2hl
Y2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLjAy
MTcxODc1MDAwMDAwMDAwMi4gCitQQVNTICAgQ3VydmUgbGVuZ3RoIDMsIGR1cmF0aW9uIDAuMDEx
NzE4NzU6IFNOUiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTcxLjIwNi4gCitQQVNTICAg
Q3VydmUgbGVuZ3RoIDMsIGR1cmF0aW9uIDAuMDExNzE4NzU6IE1heCBkaWZmZXJlbmNlIGlzIGxl
c3MgdGhhbiBvciBlcXVhbCB0byA1Ljk2MDVlLTguIAorUEFTUyA8IFsxOmN1cnZlPTMsZHVyYXRp
b249MzAwXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1IGFzc2VydGlvbnMpIAorUEFT
UyA+IFsyOmN1cnZlPTE2LGR1cmF0aW9uPTMwMF0gIAorUEFTUyAgIExlbmd0aCAxNiwgZHVyYXRp
b24gMC4wMTE3MTg3NTogQ2hlY2s6IEN1cnZlIGVuZCB0aW1lIGlzIGxlc3MgdGhhbiBvciBlcXVh
bCB0byAxLiAKK1BBU1MgICBMZW5ndGggMTYsIGR1cmF0aW9uIDAuMDExNzE4NzU6IENoZWNrOiBG
dWxsIGdhaW4gc3RhcnQgdGltZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNTICAg
TGVuZ3RoIDE2LCBkdXJhdGlvbiAwLjAxMTcxODc1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRp
bWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMDIxNzE4NzUwMDAwMDAwMDAyLiAKK1BB
U1MgICBDdXJ2ZSBsZW5ndGggMTYsIGR1cmF0aW9uIDAuMDExNzE4NzU6IFNOUiBpcyBncmVhdGVy
IHRoYW4gb3IgZXF1YWwgdG8gMTcwLjg5Mi4gCitQQVNTICAgQ3VydmUgbGVuZ3RoIDE2LCBkdXJh
dGlvbiAwLjAxMTcxODc1OiBNYXggZGlmZmVyZW5jZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8g
NS45NjA1ZS04LiAKK1BBU1MgPCBbMjpjdXJ2ZT0xNixkdXJhdGlvbj0zMDBdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9ucykgCitQQVNTID4gWzM6Y3VydmU9MTAwLGR1
cmF0aW9uPTMwMF0gIAorUEFTUyAgIExlbmd0aCAxMDAsIGR1cmF0aW9uIDAuMDExNzE4NzU6IENo
ZWNrOiBDdXJ2ZSBlbmQgdGltZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNTICAg
TGVuZ3RoIDEwMCwgZHVyYXRpb24gMC4wMTE3MTg3NTogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0
aW1lIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMTAwLCBkdXJh
dGlvbiAwLjAxMTcxODc1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgZ3JlYXRlciB0
aGFuIG9yIGVxdWFsIHRvIDAuMDIxNzE4NzUwMDAwMDAwMDAyLiAKK1BBU1MgICBDdXJ2ZSBsZW5n
dGggMTAwLCBkdXJhdGlvbiAwLjAxMTcxODc1OiBTTlIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFs
IHRvIDE2OC43MTIuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAxMDAsIGR1cmF0aW9uIDAuMDExNzE4
NzU6IE1heCBkaWZmZXJlbmNlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLjE5MjFlLTcuIAor
UEFTUyA8IFszOmN1cnZlPTEwMCxkdXJhdGlvbj0zMDBdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDUgYXNzZXJ0aW9ucykgCitQQVNTID4gWzQ6Y3VydmU9MixkdXJhdGlvbj0wLjI1XSAg
CitQQVNTICAgTGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDA5NzY1NjI1OiBDaGVjazogQ3VydmUg
ZW5kIHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAorUEFTUyAgIExlbmd0aCAyLCBk
dXJhdGlvbiAwLjAwMDAwOTc2NTYyNTogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lIGlzIGxl
c3MgdGhhbiBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMiwgZHVyYXRpb24gMC4wMDAw
MDk3NjU2MjU6IENoZWNrOiBGdWxsIGdhaW4gc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3Ig
ZXF1YWwgdG8gMC4wMTAwMDk3NjU2MjUuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAyLCBkdXJhdGlv
biAwLjAwMDAwOTc2NTYyNTogU05SIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxMDAwMC4g
CitQQVNTICAgQ3VydmUgbGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDA5NzY1NjI1OiBNYXggZGlm
ZmVyZW5jZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4gCitQQVNTIDwgWzQ6Y3VydmU9Mixk
dXJhdGlvbj0wLjI1XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1IGFzc2VydGlvbnMp
IAorUEFTUyA+IFs1OmN1cnZlPTIsZHVyYXRpb249Ml0gIAorUEFTUyAgIExlbmd0aCAyLCBkdXJh
dGlvbiAwLjAwMDA3ODEyNTogQ2hlY2s6IEN1cnZlIGVuZCB0aW1lIGlzIGxlc3MgdGhhbiBvciBl
cXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMiwgZHVyYXRpb24gMC4wMDAwNzgxMjU6IENoZWNr
OiBGdWxsIGdhaW4gc3RhcnQgdGltZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNT
ICAgTGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDc4MTI1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0
IHRpbWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMDEwMDc4MTI1LiAKK1BBU1MgICBD
dXJ2ZSBsZW5ndGggMiwgZHVyYXRpb24gMC4wMDAwNzgxMjU6IFNOUiBpcyBncmVhdGVyIHRoYW4g
b3IgZXF1YWwgdG8gMTAwMDAuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAyLCBkdXJhdGlvbiAwLjAw
MDA3ODEyNTogTWF4IGRpZmZlcmVuY2UgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuIAorUEFT
UyA8IFs1OmN1cnZlPTIsZHVyYXRpb249Ml0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
NSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbNjpjdXJ2ZT04LGR1cmF0aW9uPTJdICAKK1BBU1MgICBM
ZW5ndGggOCwgZHVyYXRpb24gMC4wMDAwNzgxMjU6IENoZWNrOiBDdXJ2ZSBlbmQgdGltZSBpcyBs
ZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNTICAgTGVuZ3RoIDgsIGR1cmF0aW9uIDAuMDAw
MDc4MTI1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIDEuIAorUEFTUyAgIExlbmd0aCA4LCBkdXJhdGlvbiAwLjAwMDA3ODEyNTogQ2hlY2s6IEZ1
bGwgZ2FpbiBzdGFydCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLjAxMDA3ODEy
NS4gCitQQVNTICAgQ3VydmUgbGVuZ3RoIDgsIGR1cmF0aW9uIDAuMDAwMDc4MTI1OiBTTlIgaXMg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEwMDAwLiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGggOCwg
ZHVyYXRpb24gMC4wMDAwNzgxMjU6IE1heCBkaWZmZXJlbmNlIGlzIGxlc3MgdGhhbiBvciBlcXVh
bCB0byAwLiAKK1BBU1MgPCBbNjpjdXJ2ZT04LGR1cmF0aW9uPTJdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9ucykgCitQQVNTID4gWzc6Y3VydmU9MTAwMCxkdXJhdGlv
bj0xMjgwMF0gIAorUEFTUyAgIExlbmd0aCAxMDAwLCBkdXJhdGlvbiAwLjU6IENoZWNrOiBDdXJ2
ZSBlbmQgdGltZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNTICAgTGVuZ3RoIDEw
MDAsIGR1cmF0aW9uIDAuNTogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lIGlzIGxlc3MgdGhh
biBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMTAwMCwgZHVyYXRpb24gMC41OiBDaGVj
azogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuNTEu
IAorUEFTUyAgIEN1cnZlIGxlbmd0aCAxMDAwLCBkdXJhdGlvbiAwLjU6IFNOUiBpcyBncmVhdGVy
IHRoYW4gb3IgZXF1YWwgdG8gMTUyLjc4NC4gCitQQVNTICAgQ3VydmUgbGVuZ3RoIDEwMDAsIGR1
cmF0aW9uIDAuNTogTWF4IGRpZmZlcmVuY2UgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUuOTYw
NWUtOC4gCitQQVNTIDwgWzc6Y3VydmU9MTAwMCxkdXJhdGlvbj0xMjgwMF0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgNSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbY3JidWctNDQxNDcxXSAg
CitQQVNTICAgQ3VydmUgdmFsdWUgYXQgdGltZSAwLjcgaXMgZXF1YWwgdG8gLTEuIAorUEFTUyAg
IEN1cnZlIHZhbHVlIGF0IHRpbWUgMC43OTk5OTk5OTk5OTk5OTk5IGlzIDAgd2l0aGluIGFuIGVy
cm9yIG9mIDQuNDQwODkyMDk4NTAwNjI2ZS0xNi4gCitQQVNTICAgQ3VydmUgdmFsdWUgYXQgdGlt
ZSAwLjg5OTk5OTk5OTk5OTk5OTkgaXMgZXF1YWwgdG8gMS4gCitQQVNTIDwgW2NyYnVnLTQ0MTQ3
MV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgIyBB
VURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogOSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNl
dFZhbHVlQ3VydmVBdFRpbWUtaW50ZXJwb2xhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmVBdFRpbWUtaW50ZXJwb2xhdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiMmY2Y2ZlYWUxMTZhMTc3NDFiNGE1NWY2NTNhM2QzYTEzOWRi
YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1pbnRlcnBvbGF0aW9uLmh0bWwKQEAgLTAsMCAr
MSwzMTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4K
KyAgICAgIFRlc3QgSW50ZXJwb2xhdGlvbiBmb3IgQXVkaW9QYXJhbS5zZXRWYWx1ZUN1cnZlQXRU
aW1lCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHRpdGxlPgorICAgICAgVGVzdCBJbnRlcnBvbGF0aW9uIGZvciBBdWRpb1BhcmFtLnNldFZh
bHVlQ3VydmVBdFRpbWUKKyAgICA8L3RpdGxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxz
Y3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgLy8gUGxheSBhIGNvbnN0YW50IHNp
Z25hbCB0aHJvdWdoIGEgZ2FpbiBub2RlIHRoYXQgaXMgYXV0b21hdGVkIHVzaW5nCisgICAgICAv
LyBzZXRWYWx1ZUN1cnZlQXRUaW1lIHdpdGggYSAyLWVsZW1lbnQgY3VydmUuICBUaGUgb3V0cHV0
IHNob3VsZCBiZSBhCisgICAgICAvLyBsaW5lYXIgY2hhbmdlLgorCisgICAgICAvLyBDaG9vc2Ug
YSBzYW1wbGUgcmF0ZSB0aGF0IGlzIGEgbXVsdGlwbGUgb2YgMTI4LCB0aGUgcmVuZGVyaW5nIHF1
YW50dW0KKyAgICAgIC8vIHNpemUuICBUaGlzIG1ha2VzIHRoZSBtYXRoIHdvcmsgb3V0IHRvIGJl
IG5pY2UgbnVtYmVycy4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gMjU2MDA7CisgICAgICBsZXQg
dGVzdER1cmF0aW9uU2VjID0gMTsKKyAgICAgIGxldCB0ZXN0RHVyYXRpb25GcmFtZXMgPSB0ZXN0
RHVyYXRpb25TZWMgKiBzYW1wbGVSYXRlOworCisgICAgICAvLyBXaGVyZSB0aGUgY3VydmUgc3Rh
cnRzIGFuZCBpdHMgZHVyYXRpb24uICBUaGlzIE1VU1QgYmUgbGVzcyB0aGFuIHRoZQorICAgICAg
Ly8gdG90YWwgcmVuZGVyaW5nIHRpbWUuCisgICAgICBsZXQgY3VydmVTdGFydFRpbWUgPSAyNTYg
LyBzYW1wbGVSYXRlOworICAgICAgbGV0IGN1cnZlRHVyYXRpb24gPSAzMDAgLyBzYW1wbGVSYXRl
OworICAgICAgOworICAgICAgbGV0IGN1cnZlVmFsdWUgPSAwLjc1OworCisgICAgICAvLyBBdCB0
aGlzIHRpbWUsIHRoZSBnYWluIG5vZGUgZ29lcyB0byBnYWluIDEuICBUaGlzIGlzIHVzZWQgdG8g
bWFrZSBzdXJlCisgICAgICAvLyB0aGUgdmFsdWUgY3VydmUgaXMgcHJvcGFnYXRlZCBjb3JyZWN0
bHkgdW50aWwgdGhlIG5leHQgZXZlbnQuCisgICAgICBsZXQgZnVsbEdhaW5UaW1lID0gMC43NTsK
KworICAgICAgLy8gVGhyZXNob2xkcyB1c2UgdG8gZGV0ZXJtaW5lIGlmIHRoZSB0ZXN0IHBhc3Nl
czsgdGhlc2UgYXJlCisgICAgICAvLyBleHBlcmltZW50YWxseSBkZXRlcm1pbmVkLiAgVGhlIFNO
UiBiZXR3ZWVuIHRoZSBhY3R1YWwgYW5kIGV4cGVjdGVkCisgICAgICAvLyByZXN1bHQgc2hvdWxk
IGJlIGF0IGxlYXN0IHxzbnJUaHJlc2hvbGR8LiAgVGhlIG1heGltdW0gZGlmZmVyZW5jZQorICAg
ICAgLy8gYmV0d2VuIHRoZW0gc2hvdWxkIG5vdCBleGNlZWQgfG1heEVycm9yVGhyZXNob2xkfC4K
KyAgICAgIGxldCBzbnJUaHJlc2hvbGQgPSAxMDAwMDsKKyAgICAgIGxldCBtYXhFcnJvclRocmVz
aG9sZCA9IDA7CisKKyAgICAgIGxldCBjb250ZXh0OworICAgICAgbGV0IGFjdHVhbFJlc3VsdDsK
KyAgICAgIGxldCBleHBlY3RlZFJlc3VsdDsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3Jl
YXRlVGFza1J1bm5lcigpOworCisgICAgICAvLyBBcnJheSBvZiB0ZXN0IGNvbmZpZ3MuICBFYWNo
IGNvbmZpZyBtdXN0IHNwZWNpZnkgY3VydmVTdGFydFRpbWUsCisgICAgICAvLyBjdXJ2ZUR1cmF0
aW9uLCBjdXJ2ZUxlbmd0aCwgZnVsbEdhaW5UaW1lLCBtYXhFcnJvclRocmVzaG9sZCwgYW5kCisg
ICAgICAvLyBzbnJUaHJlc2hvbGQuCisgICAgICBsZXQgdGVzdENvbmZpZ3MgPSBbCisgICAgICAg
IHsKKyAgICAgICAgICAvLyBUaGUgbWFpbiB0ZXN0CisgICAgICAgICAgY3VydmVTdGFydFRpbWU6
IDI1NiAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgY3VydmVEdXJhdGlvbjogMzAwIC8gc2FtcGxl
UmF0ZSwKKyAgICAgICAgICBjdXJ2ZUxlbmd0aDogMiwKKyAgICAgICAgICBmdWxsR2FpblRpbWU6
IDAuNzUsCisgICAgICAgICAgbWF4RXJyb3JUaHJlc2hvbGQ6IDUuOTYwNWUtOCwKKyAgICAgICAg
ICBzbnJUaHJlc2hvbGQ6IDE3MS4yMDYKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
IC8vIEluY3JlYXNlIHRoZSBjdXJ2ZSBsZW5ndGgKKyAgICAgICAgICBjdXJ2ZVN0YXJ0VGltZTog
MjU2IC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiAzMDAgLyBzYW1wbGVS
YXRlLAorICAgICAgICAgIGN1cnZlTGVuZ3RoOiAzLAorICAgICAgICAgIGZ1bGxHYWluVGltZTog
MC43NSwKKyAgICAgICAgICBtYXhFcnJvclRocmVzaG9sZDogNS45NjA1ZS04LAorICAgICAgICAg
IHNuclRocmVzaG9sZDogMTcxLjIwNgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
Ly8gSW5jcmVhc2UgdGhlIGN1cnZlIGxlbmd0aAorICAgICAgICAgIGN1cnZlU3RhcnRUaW1lOiAy
NTYgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGN1cnZlRHVyYXRpb246IDMwMCAvIHNhbXBsZVJh
dGUsCisgICAgICAgICAgY3VydmVMZW5ndGg6IDE2LAorICAgICAgICAgIGZ1bGxHYWluVGltZTog
MC43NSwKKyAgICAgICAgICBtYXhFcnJvclRocmVzaG9sZDogNS45NjA1ZS04LAorICAgICAgICAg
IHNuclRocmVzaG9sZDogMTcwLjg5MgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
Ly8gSW5jcmVhc2UgdGhlIGN1cnZlIGxlbmd0aAorICAgICAgICAgIGN1cnZlU3RhcnRUaW1lOiAy
NTYgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGN1cnZlRHVyYXRpb246IDMwMCAvIHNhbXBsZVJh
dGUsCisgICAgICAgICAgY3VydmVMZW5ndGg6IDEwMCwKKyAgICAgICAgICBmdWxsR2FpblRpbWU6
IDAuNzUsCisgICAgICAgICAgbWF4RXJyb3JUaHJlc2hvbGQ6IDEuMTkyMWUtNywKKyAgICAgICAg
ICBzbnJUaHJlc2hvbGQ6IDE2OC43MTIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
IC8vIENvcm5lciBjYXNlIHdpdGggZHVyYXRpb24gbGVzcyB0aGFuIGEgZnJhbWUhCisgICAgICAg
ICAgY3VydmVTdGFydFRpbWU6IDI1NiAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgY3VydmVEdXJh
dGlvbjogMC4yNSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgY3VydmVMZW5ndGg6IDIsCisgICAg
ICAgICAgZnVsbEdhaW5UaW1lOiAwLjc1LAorICAgICAgICAgIG1heEVycm9yVGhyZXNob2xkOiAw
LAorICAgICAgICAgIHNuclRocmVzaG9sZDogMTAwMDAKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgIC8vIFNob3J0IGR1cmF0aW9uIHRlc3QKKyAgICAgICAgICBjdXJ2ZVN0YXJ0VGlt
ZTogMjU2IC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiAyIC8gc2FtcGxl
UmF0ZSwKKyAgICAgICAgICBjdXJ2ZUxlbmd0aDogMiwKKyAgICAgICAgICBmdWxsR2FpblRpbWU6
IDAuNzUsCisgICAgICAgICAgbWF4RXJyb3JUaHJlc2hvbGQ6IDAsCisgICAgICAgICAgc25yVGhy
ZXNob2xkOiAxMDAwMAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgLy8gU2hvcnQg
ZHVyYXRpb24gdGVzdCB3aXRoIG1hbnkgcG9pbnRzLgorICAgICAgICAgIGN1cnZlU3RhcnRUaW1l
OiAyNTYgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGN1cnZlRHVyYXRpb246IDIgLyBzYW1wbGVS
YXRlLAorICAgICAgICAgIGN1cnZlTGVuZ3RoOiA4LAorICAgICAgICAgIGZ1bGxHYWluVGltZTog
MC43NSwKKyAgICAgICAgICBtYXhFcnJvclRocmVzaG9sZDogMCwKKyAgICAgICAgICBzbnJUaHJl
c2hvbGQ6IDEwMDAwCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAvLyBMb25nIGR1
cmF0aW9uLCBiaWcgY3VydmUKKyAgICAgICAgICBjdXJ2ZVN0YXJ0VGltZTogMjU2IC8gc2FtcGxl
UmF0ZSwKKyAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiAuNSwKKyAgICAgICAgICBjdXJ2ZUxlbmd0
aDogMTAwMCwKKyAgICAgICAgICBmdWxsR2FpblRpbWU6IDAuNzUsCisgICAgICAgICAgbWF4RXJy
b3JUaHJlc2hvbGQ6IDUuOTYwNWUtOCwKKyAgICAgICAgICBzbnJUaHJlc2hvbGQ6IDE1Mi43ODQK
KyAgICAgICAgfQorICAgICAgXTsKKworICAgICAgLy8gQ3JlYXRlcyBhIGZ1bmN0aW9uIGJhc2Vk
IG9uIHRoZSB0ZXN0IGNvbmZpZyB0aGF0IGlzIHN1aXRhYmxlIGZvciB1c2UgYnkKKyAgICAgIC8v
IGRlZmluZVRhc2soKS4KKyAgICAgIGZ1bmN0aW9uIGNyZWF0ZVRhc2tGdW5jdGlvbihjb25maWcp
IHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAgIHJ1
blRlc3Qoc2hvdWxkLCBjb25maWcpLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgICB9
OworICAgICAgfQorCisgICAgICAvLyBEZWZpbmUgYSB0YXNrIGZvciBlYWNoIGNvbmZpZywgaW4g
dGhlIG9yZGVyIGxpc3RlZCBpbiB0ZXN0Q29uZmlncy4KKyAgICAgIGZvciAobGV0IGsgPSAwOyBr
IDwgdGVzdENvbmZpZ3MubGVuZ3RoOyArK2spIHsKKyAgICAgICAgbGV0IGNvbmZpZyA9IHRlc3RD
b25maWdzW2tdOworICAgICAgICBsZXQgbmFtZSA9IGsgKyAnOmN1cnZlPScgKyBjb25maWcuY3Vy
dmVMZW5ndGggKworICAgICAgICAgICAgJyxkdXJhdGlvbj0nICsgKGNvbmZpZy5jdXJ2ZUR1cmF0
aW9uICogc2FtcGxlUmF0ZSk7CisgICAgICAgIGF1ZGl0LmRlZmluZShuYW1lLCBjcmVhdGVUYXNr
RnVuY3Rpb24oY29uZmlnKSk7CisgICAgICB9CisKKyAgICAgIC8vIFNpbXBsZSB0ZXN0IGZyb20g
Y3JidWcuY29tLzQ0MTQ3MS4gIE1ha2VzIHN1cmUgdGhlIGVuZCBwb2ludHMgYW5kIHRoZQorICAg
ICAgLy8gbWlkZGxlIHBvaW50IGFyZSBpbnRlcnBvbGF0ZWQgY29ycmVjdGx5LgorICAgICAgYXVk
aXQuZGVmaW5lKCdjcmJ1Zy00NDE0NzEnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8v
IEFueSBzYW1wbGUgcmF0ZSBzaG91bGQgd29yazsgd2UgcGljayBzb21ldGhpbmcgc21hbGwgc3Vj
aCB0aGF0IHRoZQorICAgICAgICAvLyB0aW1lIGVuZCBwb2ludHMgYXJlIG9uIGEgc2FtcGxpbmcg
cG9pbnQuCisgICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwg
NTAwMCwgNTAwMCkKKworICAgICAgICAgICAgLy8gQSBjb25zdGFudCBzb3VyY2UKKyAgICAgICAg
ICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBz
b3VyY2UuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAg
ICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKworICAgICAgICBsZXQgZ2FpbiA9IGNvbnRleHQuY3Jl
YXRlR2FpbigpOworCisgICAgICAgIGxldCBzdGFydFRpbWUgPSAwLjc7CisgICAgICAgIGxldCBk
dXJhdGlvbiA9IDAuMjsKKworICAgICAgICAvLyBDcmVhdGUgdGhlIGN1cnZlLiAgVGhlIGludGVy
cG9sYXRlZCByZXN1bHQgc2hvdWxkIGJlIGp1c3QgYSBzdHJhaWdodAorICAgICAgICAvLyBsaW5l
IGZyb20gLTEgdG8gMSBmcm9tIHRpbWUgc3RhcnRUaW1lIHRvIHN0YXJ0VGltZSArIGR1cmF0aW9u
LgorCisgICAgICAgIGxldCBjID0gbmV3IEZsb2F0MzJBcnJheSgzKTsKKyAgICAgICAgY1swXSA9
IC0xOworICAgICAgICBjWzFdID0gMDsKKyAgICAgICAgY1syXSA9IDE7CisgICAgICAgIGdhaW4u
Z2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGMsIHN0YXJ0VGltZSwgZHVyYXRpb24pOworICAgICAg
ICBzb3VyY2UuY29ubmVjdChnYWluKTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0KGNvbnRleHQuZGVz
dGluYXRpb24pOworICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICBjb250ZXh0LnN0
YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlbmRlcmVkQnVmZmVy
KSB7CisgICAgICAgICAgICAgIGxldCBkYXRhID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERh
dGEoMCk7CisgICAgICAgICAgICAgIGxldCBlbmRUaW1lID0gc3RhcnRUaW1lICsgZHVyYXRpb247
CisgICAgICAgICAgICAgIGxldCBtaWRQb2ludCA9IChzdGFydFRpbWUgKyBlbmRUaW1lKSAvIDI7
CisKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgZGF0YVt0aW1lVG9T
YW1wbGVGcmFtZShzdGFydFRpbWUsIGNvbnRleHQuc2FtcGxlUmF0ZSldLAorICAgICAgICAgICAg
ICAgICAgJ0N1cnZlIHZhbHVlIGF0IHRpbWUgJyArIHN0YXJ0VGltZSkKKyAgICAgICAgICAgICAg
ICAgIC5iZUVxdWFsVG8oY1swXSk7CisgICAgICAgICAgICAgIC8vIER1ZSB0byByb3VuZC1vZmYs
IHRoZSB2YWx1ZSBhdCB0aGUgbWlkcG9pbnQgaXMgbm90IGV4YWN0bHkgemVybworICAgICAgICAg
ICAgICAvLyBvbiBhcm02NC4gIFNlZSBjcmJ1Zy5jb20vNTU4NTYzLiAgVGhlIGN1cnJlbnQgdmFs
dWUgaXMKKyAgICAgICAgICAgICAgLy8gZXhwZXJpbWVudGFsbHkgZGV0ZXJtaW5lZC4KKyAgICAg
ICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgZGF0YVt0aW1lVG9TYW1wbGVGcmFt
ZShtaWRQb2ludCwgY29udGV4dC5zYW1wbGVSYXRlKV0sCisgICAgICAgICAgICAgICAgICAnQ3Vy
dmUgdmFsdWUgYXQgdGltZSAnICsgbWlkUG9pbnQpCisgICAgICAgICAgICAgICAgICAuYmVDbG9z
ZVRvKDAsIHt0aHJlc2hvbGQ6IE1hdGgucG93KDIsIC01MSl9KTsKKyAgICAgICAgICAgICAgc2hv
dWxkKAorICAgICAgICAgICAgICAgICAgZGF0YVt0aW1lVG9TYW1wbGVGcmFtZShlbmRUaW1lLCBj
b250ZXh0LnNhbXBsZVJhdGUpXSwKKyAgICAgICAgICAgICAgICAgICdDdXJ2ZSB2YWx1ZSBhdCB0
aW1lICcgKyBlbmRUaW1lKQorICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyhjWzJdKTsKKyAg
ICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAg
ICB9KTsKKworICAgICAgZnVuY3Rpb24gcnVuVGVzdChzaG91bGQsIGNvbmZpZykgeworICAgICAg
ICBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgdGVzdER1cmF0aW9uRnJhbWVz
LCBzYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBBIGNvbnN0YW50IGF1ZGlvIHNvdXJjZSBvZiB2
YWx1ZSAxLgorICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQs
IDEsIDEpOworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgLy8gVGhlIHZh
bHVlIGN1cnZlIGZvciB0ZXN0aW5nLiAgSnVzdCB0byBtYWtlIHRoaW5ncyBlYXN5IGZvciB0ZXN0
aW5nLAorICAgICAgICAvLyBtYWtlIHRoZSBjdXJ2ZSBhIHNpbXBsZSByYW1wIHVwIHRvIGN1cnZl
VmFsdWUuCisgICAgICAgIC8vIFRPRE8ocnRveSk6IE1heWJlIGFsbG93IG1vcmUgY29tcGxpY2F0
ZWQgY3VydmVzPworICAgICAgICBsZXQgY3VydmUgPSBuZXcgRmxvYXQzMkFycmF5KGNvbmZpZy5j
dXJ2ZUxlbmd0aCk7CisgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgY29uZmlnLmN1cnZlTGVu
Z3RoOyArK2spIHsKKyAgICAgICAgICBjdXJ2ZVtrXSA9IGN1cnZlVmFsdWUgLyAoY29uZmlnLmN1
cnZlTGVuZ3RoIC0gMSkgKiBrOworICAgICAgICB9CisKKyAgICAgICAgLy8gQSBnYWluIG5vZGUg
dGhhdCBpcyB0byBiZSBhdXRvbWF0ZWQgdXNpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZS4KKyAgICAg
ICAgbGV0IGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgZ2Fpbi5nYWluLnZh
bHVlID0gMDsKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUoCisgICAgICAg
ICAgICBjdXJ2ZSwgY29uZmlnLmN1cnZlU3RhcnRUaW1lLCBjb25maWcuY3VydmVEdXJhdGlvbik7
CisgICAgICAgIC8vIFRoaXMgaXMgdG8gdmVyaWZ5IHRoYXQgc2V0VmFsdWVDdXJ2ZUF0VGltZSBl
bmRzIGFwcHJvcHJpYXRlbHkuCisgICAgICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgxLCBj
b25maWcuZnVsbEdhaW5UaW1lKTsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChnYWluKTsKKyAg
ICAgICAgZ2Fpbi5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAgICAgICBzb3VyY2Uu
c3RhcnQoKTsKKworICAgICAgICAvLyBTb21lIGNvbnNpc3RlbmN5IGNoZWNrcyBvbiB0aGUgdGVz
dCBwYXJhbWV0ZXJzCisgICAgICAgIGxldCBwcmVmaXggPSAnTGVuZ3RoICcgKyBjb25maWcuY3Vy
dmVMZW5ndGggKyAnLCBkdXJhdGlvbiAnICsKKyAgICAgICAgICAgIGNvbmZpZy5jdXJ2ZUR1cmF0
aW9uOworICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBjb25maWcuY3VydmVTdGFydFRpbWUg
KyBjb25maWcuY3VydmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHByZWZpeCArICc6IENoZWNrOiBD
dXJ2ZSBlbmQgdGltZScpCisgICAgICAgICAgICAuYmVMZXNzVGhhbk9yRXF1YWxUbyh0ZXN0RHVy
YXRpb25TZWMpOworICAgICAgICBzaG91bGQoY29uZmlnLmZ1bGxHYWluVGltZSwgcHJlZml4ICsg
JzogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lJykKKyAgICAgICAgICAgIC5iZUxlc3NUaGFu
T3JFcXVhbFRvKHRlc3REdXJhdGlvblNlYyk7CisgICAgICAgIHNob3VsZChjb25maWcuZnVsbEdh
aW5UaW1lLCBwcmVmaXggKyAnOiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUnKQorICAgICAg
ICAgICAgLmJlR3JlYXRlclRoYW5PckVxdWFsVG8oCisgICAgICAgICAgICAgICAgY29uZmlnLmN1
cnZlU3RhcnRUaW1lICsgY29uZmlnLmN1cnZlRHVyYXRpb24pOworCisgICAgICAgIC8vIFJvY2sg
YW5kIHJvbGwhCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihj
aGVja1Jlc3VsdChzaG91bGQsIGNvbmZpZykpOworICAgICAgfQorCisgICAgICAvLyBSZXR1cm4g
YSBmdW5jdGlvbiB0byBjaGVjayB0aGF0IHRoZSByZW5kZXJlZCByZXN1bHQgbWF0Y2hlcyB0aGUK
KyAgICAgIC8vIGV4cGVjdGVkIHJlc3VsdC4KKyAgICAgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KHNo
b3VsZCwgY29uZmlnKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbihyZW5kZXJlZEJ1ZmZlcikg
eworICAgICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTsKKworICAgICAgICAgIGFjdHVhbFJlc3Vs
dCA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgIGV4cGVjdGVk
UmVzdWx0ID0gY29tcHV0ZUV4cGVjdGVkUmVzdWx0KGNvbmZpZyk7CisKKyAgICAgICAgICAvLyBD
b21wdXRlIHRoZSBTTlIgYW5kIG1heCBhYnNvbHV0ZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGFj
dHVhbCBhbmQKKyAgICAgICAgICAvLyBleHBlY3RlZCByZXN1bHQuCisgICAgICAgICAgbGV0IFNO
UiA9IDEwICogTWF0aC5sb2cxMChjb21wdXRlU05SKGFjdHVhbFJlc3VsdCwgZXhwZWN0ZWRSZXN1
bHQpKTsKKyAgICAgICAgICBsZXQgbWF4RGlmZiA9IC0xOworICAgICAgICAgIGxldCBwb3NuID0g
LTE7CisKKyAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGFjdHVhbFJlc3VsdC5sZW5ndGg7
ICsraykgeworICAgICAgICAgICAgbGV0IGRpZmYgPSBNYXRoLmFicyhhY3R1YWxSZXN1bHRba10g
LSBleHBlY3RlZFJlc3VsdFtrXSk7CisgICAgICAgICAgICBpZiAobWF4RGlmZiA8IGRpZmYpIHsK
KyAgICAgICAgICAgICAgbWF4RGlmZiA9IGRpZmY7CisgICAgICAgICAgICAgIHBvc24gPSBrOwor
ICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIGxldCBwcmVmaXggPSAnQ3Vy
dmUgbGVuZ3RoICcgKyBjb25maWcuY3VydmVMZW5ndGggKyAnLCBkdXJhdGlvbiAnICsKKyAgICAg
ICAgICAgICAgY29uZmlnLmN1cnZlRHVyYXRpb247CisgICAgICAgICAgc2hvdWxkKFNOUiwgcHJl
Zml4ICsgJzogU05SJykKKyAgICAgICAgICAgICAgLmJlR3JlYXRlclRoYW5PckVxdWFsVG8oY29u
ZmlnLnNuclRocmVzaG9sZCk7CisKKyAgICAgICAgICBzaG91bGQobWF4RGlmZiwgcHJlZml4ICsg
JzogTWF4IGRpZmZlcmVuY2UnKQorICAgICAgICAgICAgICAuYmVMZXNzVGhhbk9yRXF1YWxUbyhj
b25maWcubWF4RXJyb3JUaHJlc2hvbGQpOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8v
IENvbXB1dGUgdGhlIGV4cGVjdGVkIHJlc3VsdCBiYXNlZCBvbiB0aGUgY29uZmlnIHNldHRpbmdz
LgorICAgICAgZnVuY3Rpb24gY29tcHV0ZUV4cGVjdGVkUmVzdWx0KGNvbmZpZykgeworICAgICAg
ICAvLyBUaGUgYXV0b21hdGlvbiBjdXJ2ZSBzdGFydHMgYXQgfGN1cnZlU3RhcnRUaW1lfCBhbmQg
aGFzIGR1cmF0aW9uCisgICAgICAgIC8vIHxjdXJ2ZUR1cmF0aW9ufC4gIFNvLCB0aGUgb3V0cHV0
IHNob3VsZCBiZSB6ZXJvIHVudGlsIGN1cnZlU3RhcnRUaW1lLAorICAgICAgICAvLyBsaW5lYXJs
eSByYW1wIHVwIGZyb20gdGhlcmUgdG8gfGN1cnZlVmFsdWV8LCBhbmQgdGhlbiBiZSBjb25zdGFu
dCAxCisgICAgICAgIC8vIGZyb20gdGhlbiB0byB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCisKKyAg
ICAgICAgbGV0IGV4cGVjdGVkID0gbmV3IEZsb2F0MzJBcnJheSh0ZXN0RHVyYXRpb25GcmFtZXMp
OworCisgICAgICAgIGxldCBjdXJ2ZVN0YXJ0RnJhbWUgPSBjb25maWcuY3VydmVTdGFydFRpbWUg
KiBzYW1wbGVSYXRlOworICAgICAgICBsZXQgY3VydmVFbmRGcmFtZSA9CisgICAgICAgICAgICAo
Y29uZmlnLmN1cnZlU3RhcnRUaW1lICsgY29uZmlnLmN1cnZlRHVyYXRpb24pICogc2FtcGxlUmF0
ZTsKKyAgICAgICAgbGV0IGZ1bGxHYWluRnJhbWUgPSBjb25maWcuZnVsbEdhaW5UaW1lICogc2Ft
cGxlUmF0ZTsKKworICAgICAgICBsZXQgazsKKworICAgICAgICAvLyBaZXJvIG91dCB0aGUgc3Rh
cnQuCisgICAgICAgIGZvciAoayA9IDA7IGsgPCBjdXJ2ZVN0YXJ0RnJhbWU7ICsraykKKyAgICAg
ICAgICBleHBlY3RlZFtrXSA9IDA7CisKKyAgICAgICAgLy8gTGluZWFybHkgcmFtcCBub3cuICBU
aGlzIGFzc3VtZXMgdGhhdCB0aGUgYWN0dWFsIGN1cnZlIHVzZWQgaXMgYQorICAgICAgICAvLyBs
aW5lYXIgcmFtcCwgZXZlbiBpZiB0aGVyZSBhcmUgbWFueSBjdXJ2ZSBwb2ludHMuCisgICAgICAg
IGxldCBzdGVwU2l6ZSA9IGN1cnZlVmFsdWUgLyAoY29uZmlnLmN1cnZlRHVyYXRpb24gKiBzYW1w
bGVSYXRlKTsKKyAgICAgICAgZm9yICg7IGsgPCBjdXJ2ZUVuZEZyYW1lOyArK2spCisgICAgICAg
ICAgZXhwZWN0ZWRba10gPSBzdGVwU2l6ZSAqIChrIC0gY3VydmVTdGFydEZyYW1lKTsKKworICAg
ICAgICAvLyBIb2xkIGl0IGNvbnN0YW50IHVudGlsIHRoZSBuZXh0IGV2ZW50CisgICAgICAgIGZv
ciAoOyBrIDwgZnVsbEdhaW5GcmFtZTsgKytrKQorICAgICAgICAgIGV4cGVjdGVkW2tdID0gY3Vy
dmVWYWx1ZTsKKworICAgICAgICAvLyBBbXBsaXR1ZGUgaXMgb25lIGZvciB0aGUgcmVzdCBvZiB0
aGUgdGVzdC4KKyAgICAgICAgZm9yICg7IGsgPCB0ZXN0RHVyYXRpb25GcmFtZXM7ICsraykKKyAg
ICAgICAgICBleHBlY3RlZFtrXSA9IDE7CisKKyAgICAgICAgcmV0dXJuIGV4cGVjdGVkOworICAg
ICAgfQorCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3Bh
cmFtLXVwZGF0ZS12YWx1ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXVwZGF0ZS12YWx1ZS1hdHRyaWJ1dGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5OWM2YTU3ZDU1OTlkOWZiN2E1OTFiMDA5NGE3MTkyN2VjZjk5
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tdXBkYXRlLXZhbHVlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MDEgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRp
bmcgImxpbmVhciIgCitQQVNTIEV4ZWN1dGluZyAiZXhwb25lbnRpYWwiIAorUEFTUyBFeGVjdXRp
bmcgInNldFRhcmdldCIgCitQQVNTIEV4ZWN1dGluZyAic2V0VmFsdWVDdXJ2ZSIgCitQQVNTIEF1
ZGl0IHJlcG9ydCAKK1BBU1MgPiBbbGluZWFyXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBsaW5lYXJS
YW1wKDEwMCwgMC4wNTg1OTM3NSkgd2l0aCBzZXRWYWx1ZUF0VGltZSgwLjI1LCAwKSAKK1BBU1Mg
ICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTI3IGlzIDYuODQ4MDQ2ODc1
IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAs
IDAuMDU4NTkzNzUpIGF0IGZyYW1lIDI1NSBpcyAxMy40OTgwNDY4NzUgd2l0aGluIGFuIGVycm9y
IG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQg
ZnJhbWUgMzgzIGlzIDIwLjE0ODA0Njg3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDExNjUu
IAorUEFTUyAgIGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA1MTEgaXMgMjYu
Nzk4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFy
UmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDYzOSBpcyAzMy40NDgwNDY4NzUgd2l0aGlu
IGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgNzY3IGlzIDQwLjA5ODA0Njg3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4w
MDAwMDExNjUuIAorUEFTUyAgIGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA4
OTUgaXMgNDYuNzQ4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNT
ICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDEwMjMgaXMgNTMuMzk4MDQ2
ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgx
MDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDExNTEgaXMgNjAuMDQ4MDQ2ODc1IHdpdGhpbiBhbiBl
cnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUp
IGF0IGZyYW1lIDEyNzkgaXMgNjYuNjk4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAw
MTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE0MDcg
aXMgNzMuMzQ4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAg
bGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE1MzUgaXMgNzkuOTk4MDQ2ODc1
IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAs
IDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE2NjMgaXMgODYuNjQ4MDQ2ODc1IHdpdGhpbiBhbiBlcnJv
ciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0
IGZyYW1lIDE3OTEgaXMgOTMuMjk4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2
NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE5MTkgaXMg
OTkuOTQ4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGlu
ZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDIwNDcgaXMgMTAwIHdpdGhpbiBhbiBl
cnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUp
IGF0IGZyYW1lIDIxNzUgaXMgMTAwIHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQ
QVNTICAgbGluZWFyUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDIzMDMgaXMgMTAwIHdp
dGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAsIDAu
MDU4NTkzNzUpIGF0IGZyYW1lIDI0MzEgaXMgMTAwIHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAw
MTE2NS4gCitQQVNTICAgR2FpbiAudmFsdWUgYXR0cmlidXRlIGZvciBsaW5lYXJSYW1wKDEwMCwg
MC4wNTg1OTM3NSkgY29ycmVjdGx5IHVwZGF0ZWQgZHVyaW5nIGF1dG9tYXRpb24gCitQQVNTIDwg
W2xpbmVhcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMjEgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW2V4cG9uZW50aWFsXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBleHBvbmVudGlhbFJhbXAo
MTAwLCAwLjA1ODU5Mzc1KSB3aXRoIHNldFZhbHVlQXRUaW1lKDAuMjUsIDApIAorRkFJTCBYIGV4
cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDEyNyBpcyBub3QgY2xvc2Ug
dG8gMC4zNzE1ODI2NTY0NDk3MDUxIHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUt
NyAoUmVsRXJyPTAuMDAzMTI1NzAyMjgxODQzNDI3NykuIEdvdCAwLjM3Mjc0NDExMzIwNjg2MzQu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBYIGV4cG9uZW50aWFs
UmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDI1NSBpcyBub3QgY2xvc2UgdG8gMC41NTQw
MjA4Mzk4MDk4MjQzIHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUtNyAoUmVsRXJy
PTAuMDAzMTI1NTQzNzU5Mjc4MDgyKS4gR290IDAuNTU1NzUyNDU2MTg4MjAxOS4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwg
MC4wNTg1OTM3NSkgYXQgZnJhbWUgMzgzIGlzIG5vdCBjbG9zZSB0byAwLjgyNjAzMTgwMTA0MzI0
NDUgd2l0aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgNy40NjAxZS03IChSZWxFcnI9MC4wMDMxMjQ4
Njk3NTA2NzU5NjkpLiBHb3QgMC44Mjg2MTMwNDI4MzE0MjA5LiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1
KSBhdCBmcmFtZSA1MTEgaXMgbm90IGNsb3NlIHRvIDEuMjMxNTkzNjI4NDQzNTg5NSB3aXRoaW4g
YSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNTYxNDQwODc0Nzk0
OCkuIEdvdCAxLjIzNTQ0MzExNTIzNDM3NS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUg
NjM5IGlzIG5vdCBjbG9zZSB0byAxLjgzNjI3NjU5ODE5Nzc0NTggd2l0aGluIGEgcmVsYXRpdmUg
ZXJyb3Igb2YgNy40NjAxZS03IChSZWxFcnI9MC4wMDMxMjU1NTQ5ODU2MDU5Njk3KS4gR290IDEu
ODQyMDE1OTgxNjc0MTk0My4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgNzY3IGlzIG5v
dCBjbG9zZSB0byAyLjczNzg0NDQyMTQxODM2NiB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3
LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNTU4NDk3NDQwMTE2NCkuIEdvdCAyLjc0NjQwMTc4Njgw
NDE5OS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25l
bnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgODk1IGlzIG5vdCBjbG9zZSB0byA0
LjA4MjA2MDQ0OTUyNTE4NSB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJl
bEVycj0wLjAwMzEyNTY1MDk3NDE2NjM0MTYpLiBHb3QgNC4wOTQ4MTk1NDU3NDU4NS4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEw
MCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTAyMyBpcyBub3QgY2xvc2UgdG8gNi4wODYyNTQzNDc4
NDM5MjQgd2l0aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgNy40NjAxZS03IChSZWxFcnI9MC4wMDMx
MjYxNDc0MTgxNTQ1NjA2KS4gR290IDYuMTA1MjgwODc2MTU5NjY4LiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAoMTAwLCAwLjA1ODU5
Mzc1KSBhdCBmcmFtZSAxMTUxIGlzIG5vdCBjbG9zZSB0byA5LjA3NDQ1OTQ0MTQyMTk3NSB3aXRo
aW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNTY3NTU1MjA3
MTExNjgpLiBHb3QgOS4xMDI4MjMyNTc0NDYyODkuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorRkFJTCBYIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZy
YW1lIDEyNzkgaXMgbm90IGNsb3NlIHRvIDEzLjUyOTgwMTY1NTk1MzQyNCB3aXRoaW4gYSByZWxh
dGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNTY1MTYzMzQ4NjA5MykuIEdv
dCAxMy41NzIwOTExMDI2MDAwOTguIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxz
ZQorRkFJTCBYIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE0MDcg
aXMgbm90IGNsb3NlIHRvIDIwLjE3MjYxMDE3Mzc2NDI0OCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJv
ciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNDk3NjYxODI2OTEwMzcpLiBHb3QgMjAuMjM1
NjQ5MTA4ODg2NzIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBY
IGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE1MzUgaXMgbm90IGNs
b3NlIHRvIDMwLjA3Njg3ODU1MDgwOTgzNCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2
MDFlLTcgKFJlbEVycj0wLjAwMzEyNTQxNDc3MzEzNDQxNjcpLiBHb3QgMzAuMTcwODgxMjcxMzYy
MzA1LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVu
dGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAxNjYzIGlzIG5vdCBjbG9zZSB0byA0
NC44NDM5MDU0NTIzODgwMTUgd2l0aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgNy40NjAxZS03IChS
ZWxFcnI9MC4wMDMxMjU1MjA3NTI5MjEwODgpLiBHb3QgNDQuOTg0MDY2MDA5NTIxNDg0LiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAo
MTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAxNzkxIGlzIG5vdCBjbG9zZSB0byA2Ni44NjExODg4
MzA2NjY0NCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAw
MzEyNTQ0NjY5MTgzNDY2OSkuIEdvdCA2Ny4wNzAxNTk5MTIxMDkzOC4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgMTkxOSBpcyBub3QgY2xvc2UgdG8gOTkuNjg4NDMwOTQxNzc4NTggd2l0
aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgNy40NjAxZS03IChSZWxFcnI9MC4wMDMxMjQ5NjkyNTU4
MjI0MjgpLiBHb3QgOTkuOTk5OTU0MjIzNjMyODEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorUEFTUyAgIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZy
YW1lIDIwNDcgaXMgMTAwIHdpdGhpbiBhbiBlcnJvciBvZiA3LjQ2MDFlLTcuIAorUEFTUyAgIGV4
cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDIxNzUgaXMgMTAwIHdpdGhp
biBhbiBlcnJvciBvZiA3LjQ2MDFlLTcuIAorUEFTUyAgIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAu
MDU4NTkzNzUpIGF0IGZyYW1lIDIzMDMgaXMgMTAwIHdpdGhpbiBhbiBlcnJvciBvZiA3LjQ2MDFl
LTcuIAorUEFTUyAgIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDI0
MzEgaXMgMTAwIHdpdGhpbiBhbiBlcnJvciBvZiA3LjQ2MDFlLTcuIAorUEFTUyAgIEdhaW4gLnZh
bHVlIGF0dHJpYnV0ZSBmb3IgZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgY29ycmVj
dGx5IHVwZGF0ZWQgZHVyaW5nIGF1dG9tYXRpb24gCitGQUlMIDwgW2V4cG9uZW50aWFsXSAxNSBv
dXQgb2YgMjEgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitQQVNTID4gW3NldFRhcmdldF0gIAorUEFTUyAgIEluaXRpYWxpemUgc2V0
VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgd2l0aCBzZXRWYWx1ZUF0VGltZSgwLjI1LCAwKSAKK1BB
U1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAxMjcgaXMgMC4yNDA0OTYw
MzI3NjgyMTM4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMjI1OTkuIAorUEFTUyAgIHNldFRh
cmdldEF0VGltZSgwLCAwLCAwLjEpIGF0IGZyYW1lIDI1NSBpcyAwLjIzMTI4Mjc3NDQzNjU4MTYg
d2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1l
KDAsIDAsIDAuMSkgYXQgZnJhbWUgMzgzIGlzIDAuMjIyNDIyNDcwNDg4ODg4MDUgd2l0aGluIGFu
IGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAu
MSkgYXQgZnJhbWUgNTExIGlzIDAuMjEzOTAxNTk5NDU1MDIzNjggd2l0aGluIGFuIGVycm9yIG9m
IDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJh
bWUgNjM5IGlzIDAuMjA1NzA3MTU3ODY0MjY0NDQgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAy
MjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgNzY3IGlz
IDAuMTk3ODI2NjQwNDAxMDI2Njggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQ
QVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgODk1IGlzIDAuMTkwMjQ4
MDIwODIwODQzNDcgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0
VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgMTAyMyBpcyAwLjE4Mjk1OTczMzU5NzQz
ODQ1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMjI1OTkuIAorUEFTUyAgIHNldFRhcmdldEF0
VGltZSgwLCAwLCAwLjEpIGF0IGZyYW1lIDExNTEgaXMgMC4xNzU5NTA2NTYyNzI4ODg5MiB3aXRo
aW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwg
MCwgMC4xKSBhdCBmcmFtZSAxMjc5IGlzIDAuMTY5MjEwMDkyNDgzOTQzOTUgd2l0aGluIGFuIGVy
cm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkg
YXQgZnJhbWUgMTQwNyBpcyAwLjE2MjcyNzc1NTYzODU5Mzcgd2l0aGluIGFuIGVycm9yIG9mIDAu
MDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUg
MTUzNSBpcyAwLjE1NjQ5Mzc1MzIxNzk3OTgxIHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMjI1
OTkuIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAwLCAwLjEpIGF0IGZyYW1lIDE2NjMgaXMg
MC4xNTA0OTg1NzE2Nzk2ODk5NyB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BB
U1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAxNzkxIGlzIDAuMTQ0NzMz
MDYxOTM5Mzk4Mjggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0
VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgMTkxOSBpcyAwLjEzOTE4ODQyNTQwODY5
NTIgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRU
aW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgMjA0NyBpcyAwLjEzMzg1NjIwMDU2Nzc5OTk1IHdpdGhp
biBhbiBlcnJvciBvZiAwLjAwMDAwMjI1OTkuIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAw
LCAwLjEpIGF0IGZyYW1lIDIxNzUgaXMgMC4xMjg3MjgyNTAwNTI2NjQgd2l0aGluIGFuIGVycm9y
IG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQg
ZnJhbWUgMjMwMyBpcyAwLjEyMzc5Njc0ODIzNjc2MDA3IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAw
MDAwMjI1OTkuIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAwLCAwLjEpIGF0IGZyYW1lIDI0
MzEgaXMgMC4xMTkwNTQxNjkyODg2MDUxNyB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5
LiAKK1BBU1MgICBHYWluIC52YWx1ZSBhdHRyaWJ1dGUgZm9yIHNldFRhcmdldEF0VGltZSgwLCAw
LCAwLjEpIGNvcnJlY3RseSB1cGRhdGVkIGR1cmluZyBhdXRvbWF0aW9uIAorUEFTUyA8IFtzZXRU
YXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIxIGFzc2VydGlvbnMpIAorUEFT
UyA+IFtzZXRWYWx1ZUN1cnZlXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBzZXRWYWx1ZUN1cnZlQXRU
aW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgd2l0aCBzZXRWYWx1ZUF0VGltZSgwLjI1LCAw
KSAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkg
YXQgZnJhbWUgMTI3IGlzIDEuMDY2MTQ1ODMzMzMzMzMzMyB3aXRoaW4gYW4gZXJyb3Igb2YgNy45
NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgMjU1IGlzIDEuMTMyODEyNSB3aXRoaW4gYW4gZXJyb3Igb2YgNy45NTc3
ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3
NSkgYXQgZnJhbWUgMzgzIGlzIDEuMTk5NDc5MTY2NjY2NjY2NyB3aXRoaW4gYW4gZXJyb3Igb2Yg
Ny45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4w
NTg1OTM3NSkgYXQgZnJhbWUgNTExIGlzIDEuMjY2MTQ1ODMzMzMzMzMzMyB3aXRoaW4gYW4gZXJy
b3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwg
MCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgNjM5IGlzIDEuMzMyODEyNSB3aXRoaW4gYW4gZXJyb3Ig
b2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwg
MC4wNTg1OTM3NSkgYXQgZnJhbWUgNzY3IGlzIDEuMzk5NDc5MTY2NjY2NjY2NiB3aXRoaW4gYW4g
ZXJyb3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0
XSwgMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgODk1IGlzIDEuNDY2MTQ1ODMzMzMzMzMzMyB3aXRo
aW4gYW4gZXJyb3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsx
LDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTAyMyBpcyAxLjY2NDA2MjUgd2l0aGlu
IGFuIGVycm9yIG9mIDcuOTU3N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwx
LjUsNF0sIDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDExNTEgaXMgMS45OTczOTU4MzMzMzMzMzM1
IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRp
bWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAxMjc5IGlzIDIuMzMwNzI5MTY2
NjY2NjY2NSB3aXRoaW4gYW4gZXJyb3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1
cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTQwNyBpcyAyLjY2
NDA2MjUgd2l0aGluIGFuIGVycm9yIG9mIDcuOTU3N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2
ZUF0VGltZShbMSwxLjUsNF0sIDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE1MzUgaXMgMi45OTcz
OTU4MzMzMzMzMzMgd2l0aGluIGFuIGVycm9yIG9mIDcuOTU3N2UtOC4gCitQQVNTICAgc2V0VmFs
dWVDdXJ2ZUF0VGltZShbMSwxLjUsNF0sIDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE2NjMgaXMg
My4zMzA3MjkxNjY2NjY2NjY1IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAg
IHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAx
NzkxIGlzIDMuNjY0MDYyNDk5OTk5OTk5NiB3aXRoaW4gYW4gZXJyb3Igb2YgNy45NTc3ZS04LiAK
K1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgYXQg
ZnJhbWUgMTkxOSBpcyAzLjk5NzM5NTgzMzMzMzMzMzUgd2l0aGluIGFuIGVycm9yIG9mIDcuOTU3
N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwxLjUsNF0sIDAsIDAuMDU4NTkz
NzUpIGF0IGZyYW1lIDIwNDcgaXMgNCB3aXRoaW4gYW4gZXJyb3Igb2YgNy45NTc3ZS04LiAKK1BB
U1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgYXQgZnJh
bWUgMjE3NSBpcyA0IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZh
bHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAyMzAzIGlz
IDQgd2l0aGluIGFuIGVycm9yIG9mIDcuOTU3N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0
VGltZShbMSwxLjUsNF0sIDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDI0MzEgaXMgNCB3aXRoaW4g
YW4gZXJyb3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBHYWluIC52YWx1ZSBhdHRyaWJ1dGUgZm9y
IHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBjb3JyZWN0bHkg
dXBkYXRlZCBkdXJpbmcgYXV0b21hdGlvbiAKK1BBU1MgPCBbc2V0VmFsdWVDdXJ2ZV0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMjEgYXNzZXJ0aW9ucykgCitGQUlMICMgQVVESVQgVEFT
SyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDQgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tdXBkYXRlLXZhbHVlLWF0dHJpYnV0ZS5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXVwZGF0ZS12YWx1
ZS1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWVjOWQ5ZWE4OGE1ODg5YzYwMDA5YmRmYzdi
MGQ3ZDAxYjcxMTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9QYXJhbS9hdWRpb3BhcmFtLXVwZGF0ZS12YWx1ZS1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsx
LDE4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgor
ICAgICAgVXBkYXRpbmcgb2YgVmFsdWUgQXR0cmlidXRlIGZyb20gVGltZWxpbmUKKyAgICA8L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8
Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIFRoaXMg
c2hvdWxkIGJlIGEgcG93ZXIgb2YgdHdvIHNvIHRoYXQgYWxsIHRpbWUgY29tcHV0YXRpb25zIGhh
dmUgbm8KKyAgICAgIC8vIHJvdW5kLW9mZiBlcnJvcnMuCisgICAgICBsZXQgc2FtcGxlUmF0ZSA9
IDMyNzY4OworICAgICAgbGV0IHJlbmRlclF1YW50dW1TaXplID0gMTI4OworICAgICAgLy8gSG93
IG1hbnkgdGVzdHMgdG8gcnVuLgorICAgICAgbGV0IHJlbmRlckxvb3BzID0gMjA7CisgICAgICBs
ZXQgcmVuZGVyRnJhbWVzID0gcmVuZGVyTG9vcHMgKiByZW5kZXJRdWFudHVtU2l6ZTsKKyAgICAg
IGxldCByZW5kZXJEdXJhdGlvbiA9IHJlbmRlckZyYW1lcyAvIHNhbXBsZVJhdGU7CisKKyAgICAg
IGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdsaW5lYXInLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFRlc3QgdGhlIHZh
bHVlIGF0dHJpYnV0ZSBmcm9tIGEgbGluZWFyUmFtcCBldmVudAorICAgICAgICBydW5UZXN0KHNo
b3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCB2MSwgdDEpIHsKKyAgICAgICAgICBnLmdhaW4ubGlu
ZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKKyAgICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgZXhwZWN0ZWRWYWx1ZTogZnVuY3Rpb24odGVzdFRpbWUpIHsKKyAgICAgICAgICAgICAg
cmV0dXJuIGF1ZGlvUGFyYW1MaW5lYXJSYW1wKHRlc3RUaW1lLCB2MCwgdDAsIHYxLCB0MSk7Cisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgbWVzc2FnZTogJ2xpbmVhclJhbXAoJyArIHYxICsg
JywgJyArIHQxICsgJyknLAorICAgICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IDEuMTY1MGUtNgor
ICAgICAgICAgIH07CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAg
fSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnZXhwb25lbnRpYWwnLCAodGFzaywgc2hvdWxkKSA9
PiB7CisgICAgICAgIC8vIFRlc3QgdGhlIHZhbHVlIGF0dHJpYnV0ZSBmcm9tIGFuIGV4cG9uZW50
aWFsUmFtcCBldmVudAorICAgICAgICBydW5UZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQw
LCB2MSwgdDEpIHsKKyAgICAgICAgICBnLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGlt
ZSh2MSwgdDEpOworICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBleHBlY3RlZFZhbHVl
OiBmdW5jdGlvbih0ZXN0VGltZSkgeworICAgICAgICAgICAgICByZXR1cm4gYXVkaW9QYXJhbUV4
cG9uZW50aWFsUmFtcCh0ZXN0VGltZSwgdjAsIHQwLCB2MSwgdDEpOworICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIG1lc3NhZ2U6ICdleHBvbmVudGlhbFJhbXAoJyArIHYxICsgJywgJyArIHQx
ICsgJyknLAorICAgICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IDcuNDYwMWUtNworICAgICAgICAg
IH07CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAg
ICAgIGF1ZGl0LmRlZmluZSgnc2V0VGFyZ2V0JywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAg
ICAvLyBUZXN0IHRoZSB2YWx1ZSBhdHRyaWJ1dGUgZnJvbSBhIHNldFRhcmdldEF0VGltZSBldmVu
dAorICAgICAgICBydW5UZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCB2MSwgdDEpIHsK
KyAgICAgICAgICBsZXQgdGltZUNvbnN0YW50ID0gMC4xOworICAgICAgICAgIGxldCB2RmluYWwg
PSAwOworICAgICAgICAgIGcuZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodkZpbmFsLCB0MCwgdGltZUNv
bnN0YW50KTsKKyAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgZXhwZWN0ZWRWYWx1ZTog
ZnVuY3Rpb24odGVzdFRpbWUpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGF1ZGlvUGFyYW1TZXRU
YXJnZXQoCisgICAgICAgICAgICAgICAgICB0ZXN0VGltZSwgdjAsIHQwLCB2RmluYWwsIHRpbWVD
b25zdGFudCk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbWVzc2FnZTogJ3NldFRhcmdl
dEF0VGltZSgnICsgdkZpbmFsICsgJywgJyArIHQwICsgJywgJyArCisgICAgICAgICAgICAgICAg
dGltZUNvbnN0YW50ICsgJyknLAorICAgICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IDIuMjU5OWUt
NgorICAgICAgICAgIH07CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAg
ICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnc2V0VmFsdWVDdXJ2ZScsICh0YXNrLCBzaG91
bGQpID0+IHsKKyAgICAgICAgLy8gVGVzdCB0aGUgdmFsdWUgYXR0cmlidXRlIGZyb20gYSBzZXRW
YWx1ZUN1cnZlIGV2ZW50CisgICAgICAgIHJ1blRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwg
dDAsIHYxLCB0MSkgeworICAgICAgICAgIGxldCBjdXJ2ZSA9IFsxLCAxLjUsIDRdOworICAgICAg
ICAgIGxldCBkdXJhdGlvbiA9IHQxIC0gdDA7CisgICAgICAgICAgZy5nYWluLnNldFZhbHVlQ3Vy
dmVBdFRpbWUoRmxvYXQzMkFycmF5LmZyb20oY3VydmUpLCB0MCwgZHVyYXRpb24pOworICAgICAg
ICAgIHJldHVybiB7CisgICAgICAgICAgICBleHBlY3RlZFZhbHVlOiBmdW5jdGlvbih0ZXN0VGlt
ZSkgeworICAgICAgICAgICAgICByZXR1cm4gYXVkaW9QYXJhbVNldFZhbHVlQ3VydmUodGVzdFRp
bWUsIGN1cnZlLCB0MCwgZHVyYXRpb24pOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG1l
c3NhZ2U6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lKFsnICsgY3VydmUgKyAnXSwgJyArIHQwICsgJywg
JyArCisgICAgICAgICAgICAgICAgZHVyYXRpb24gKyAnKScsCisgICAgICAgICAgICBlcnJvclRo
cmVzaG9sZDogNy45NTc3ZS04CisgICAgICAgICAgfTsKKyAgICAgICAgfSkudGhlbigoKSA9PiB0
YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisKKyAgICAgIC8v
IFRlc3QgdGhhdCB0aGUgLnZhbHVlIGdldHRlciBoYXMgdGhlIGNvcnJlY3QgdmFsdWUgd2hlbiBh
IHRpbWVsaW5lIGlzCisgICAgICAvLyBydW5uaW5nLiBUaGUgfHRlc3RGdW5jdGlvbnwgaXMgdGhl
IHVuZGVybHlpbmcgdGVzdCB0byBiZSBydW4uCisgICAgICBmdW5jdGlvbiBydW5UZXN0KHNob3Vs
ZCwgdGVzdEZ1bmN0aW9uKSB7CisgICAgICAgIC8vIENyZWF0ZSBhIHNpbXBsZSBncmFwaCBjb25z
aXN0aW5nIG9mIGEgY29uc3RhbnQgc291cmNlIGFuZCBhIGdhaW4gbm9kZQorICAgICAgICAvLyB3
aGVyZSB0aGUgYXV0b21hdGlvbnMgYXJlIHJ1bi4gIEEgc2V0VmFsdWVBdFRpbWUgZXZlbnQgc3Rh
cnRzIHRoaW5ncworICAgICAgICAvLyBvZmYuCisgICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAg
bGV0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgIHNvdXJj
ZS5idWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAg
c291cmNlLmxvb3AgPSB0cnVlOworICAgICAgICBsZXQgZ2FpbiA9IGNvbnRleHQuY3JlYXRlR2Fp
bigpOworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5l
Y3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgLy8gU3RhcnQgdGhlIHRpbWVsaW5l
IHdpdGggc2V0VmFsdWVBdFRpbWUodjAsIHQwKS4KKyAgICAgICAgbGV0IHYwID0gMC4yNTsKKyAg
ICAgICAgbGV0IHQwID0gMDsKKyAgICAgICAgLy8gRW5kIHZhbHVlIGFuZCB0aW1lLCBmb3IgdGhv
c2UgdGhhdCBuZWVkIGl0LiAgVGhlIGVuZCB0aW1lIGlzIGxlc3MKKyAgICAgICAgLy8gdGhhbiB0
aGUgcmVuZGVyaW5nIGR1cmF0aW9uIHNvIHdlIGNhbiB0ZXN0IHRoYXQgdGhlIGZpbmFsIHZhbHVl
cyBvZgorICAgICAgICAvLyB0aGUgYXV0b21hdGlvbiAoaWYgYW55KSBhcmUgYWxzbyBjb3JyZWN0
LgorICAgICAgICBsZXQgdjEgPSAxMDA7CisgICAgICAgIGxldCB0MSA9IHJlbmRlckR1cmF0aW9u
IC0gNSAqIHJlbmRlclF1YW50dW1TaXplIC8gc2FtcGxlUmF0ZTsKKworICAgICAgICBnYWluLmdh
aW4uc2V0VmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAvLyBSdW4gdGhlIGRlc2lyZWQg
YXV0b21hdGlvbiB0ZXN0LiAgVGhlIHRlc3QgZnVuY3Rpb24gcmV0dXJucyBhCisgICAgICAgIC8v
IGRpY3Rpb25hcnkgY29uc2lzdGluZyBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CisgICAg
ICAgIC8vCisgICAgICAgIC8vIHxtZXNzYWdlfCAgICAgICAgYW4gaW5mb3JtYXRpdmUgbWVzc2Fn
ZSBhYm91dCB0aGUgYXV0b21hdGlvbiBiZWluZworICAgICAgICAvLyB0ZXN0ZWQuIHxlcnJvclRo
cmVzaG9sZHwgZXJyb3IgdGhyZXNob2xkIHRvIGRldGVybWluZSBpZiB0aGUgdGVzdAorICAgICAg
ICAvLyBwYXNzZXMgb3Igbm90LiB8ZXhwZWN0ZWRWYWx1ZXwgIGEgZnVuY3Rpb24gdGhhdCBjb21w
dXRlIHRoZSBleHBlY3RlZAorICAgICAgICAvLyB2YWx1ZSBhdCB0aW1lIHx0fC4KKyAgICAgICAg
bGV0IHRlc3QgPSB0ZXN0RnVuY3Rpb24oZ2FpbiwgdjAsIHQwLCB2MSwgdDEpOworCisgICAgICAg
IC8vIFByaW50IGFuIGluZm9ybWF0aXZlIG1lc3NhZ2UgYWJvdXQgdGhlIHRlc3QgYmVpbmcgcnVu
LgorICAgICAgICAvLyB0ZXN0UGFzc2VkKCJJbml0aWFsaXplICIgKyB0ZXN0Lm1lc3NhZ2UgKyAi
IHdpdGggc2V0VmFsdWVBdFRpbWUoIiArCisgICAgICAgIC8vIHYwICsgIiwgIiArIHQwICsgIiku
Iik7CisgICAgICAgIHNob3VsZCh0cnVlLCAnSW5pdGlhbGl6ZScpCisgICAgICAgICAgICAubWVz
c2FnZSgKKyAgICAgICAgICAgICAgICB0ZXN0Lm1lc3NhZ2UgKyAnIHdpdGggc2V0VmFsdWVBdFRp
bWUoJyArIHYwICsgJywgJyArIHQwICsgJyknLAorICAgICAgICAgICAgICAgICcnKTsKKworICAg
ICAgICBsZXQgc3VjY2VzcyA9IHRydWU7CisKKyAgICAgICAgLy8gTWF4IHJlbGF0aXZlIGVycm9y
IGZvdW5kIGZvciB0aGlzIHRlc3QuIFRoaXMgaXMgcHJpbnRlZCBpZiB0aGUgdGVzdAorICAgICAg
ICAvLyBmYWlscyBzbyB0aGF0IHNldHRpbmcgdGhlIHRocmVzaG9sZHMgaXMgZWFzaWVyLgorICAg
ICAgICBsZXQgbWF4RXJyb3IgPSAwOworCisgICAgICAgIC8vIEZvciBldmVyeSByZW5kZXJpbmcg
cXVhbnR1bSAoZXhjZXB0IHRoZSBmaXJzdCksIHN1c3BlbmQgdGhlIGNvbnRleHQKKyAgICAgICAg
Ly8gc28gdGhlIHdlIGNhbiBpbnNwZWN0IHRoZSB2YWx1ZSBhdHRyaWJ1dGUgYW5kIGNvbXBhcmUg
aXQgd2l0aCB0aGUKKyAgICAgICAgLy8gZXhwZWN0ZWQgdmFsdWUuCisgICAgICAgIGZvciAobGV0
IGsgPSAxOyBrIDwgcmVuZGVyTG9vcHM7ICsraykgeworICAgICAgICAgIGxldCB0aW1lID0gayAq
IHJlbmRlclF1YW50dW1TaXplIC8gc2FtcGxlUmF0ZTsKKyAgICAgICAgICBjb250ZXh0LnN1c3Bl
bmQodGltZSkKKyAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgLy8gVGhlIGNvbnRleHQgaXMgc3Vwc2VuZGVkIGF0IHRpbWUgfHRpbWV8LCB3aGljaCBpcyBq
dXN0IGJlZm9yZQorICAgICAgICAgICAgICAgIC8vIHRoZSByZW5kZXJpbmcgcXVhbnR1bSBzdGFy
dHMuICBUaHVzLCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgLy8gYXR0cmlidXRl
IGlzIGFjdHVhbGx5IDEgZnJhbWUgYmVmb3JlIHRoZSBjdXJyZW50IGNvbnRleHQKKyAgICAgICAg
ICAgICAgICAvLyB0aW1lLgorICAgICAgICAgICAgICAgIGxldCBzYW1wbGVUaW1lID0gY29udGV4
dC5jdXJyZW50VGltZSAtIDEgLyBzYW1wbGVSYXRlOworCisgICAgICAgICAgICAgICAgLy8gQ29t
cHV0ZSB0aGUgbWF4IHJlbGF0aXZlIGVycm9yCisgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVk
ID0gdGVzdC5leHBlY3RlZFZhbHVlKHNhbXBsZVRpbWUpOworICAgICAgICAgICAgICAgIGxldCBy
ZWxFcnJvciA9CisgICAgICAgICAgICAgICAgICAgIE1hdGguYWJzKGV4cGVjdGVkIC0gZ2Fpbi5n
YWluLnZhbHVlKSAvIE1hdGguYWJzKGV4cGVjdGVkKTsKKyAgICAgICAgICAgICAgICBtYXhFcnJv
ciA9IE1hdGgubWF4KHJlbEVycm9yLCBtYXhFcnJvcik7CisKKyAgICAgICAgICAgICAgICBzdWNj
ZXNzID0KKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Fpbi5nYWluLnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5tZXNzYWdl
ICsgJyBhdCBmcmFtZSAnICsgKHNhbXBsZVJhdGUgKiBzYW1wbGVUaW1lKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC5iZUNsb3NlVG8oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0ZWQsIHt0aHJlc2hvbGQ6IHRlc3QuZXJyb3JUaHJlc2hvbGQgfHwgMH0pOworICAgICAgICAg
ICAgICB9KQorICAgICAgICAgICAgICAudGhlbihjb250ZXh0LnJlc3VtZS5iaW5kKGNvbnRleHQp
KTsKKyAgICAgICAgfQorCisgICAgICAgIHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIHJldHVy
biBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsK
KyAgICAgICAgICAvLyBKdXN0IHByaW50IGEgZmluYWwgcGFzcyAob3IgZmFpbCkgbWVzc2FnZS4K
KyAgICAgICAgICBzaG91bGQoc3VjY2VzcywgJ0dhaW4gLnZhbHVlIGF0dHJpYnV0ZSBmb3IgJyAr
IHRlc3QubWVzc2FnZSkKKyAgICAgICAgICAgICAgLm1lc3NhZ2UoCisgICAgICAgICAgICAgICAg
ICAnY29ycmVjdGx5IHVwZGF0ZWQgZHVyaW5nIGF1dG9tYXRpb24nLAorICAgICAgICAgICAgICAg
ICAgJ25vdCBjb3JyZWN0bHkgdXBkYXRlZCBkdXJpbmcgYXV0b21hdGlvbjsgbWF4IGVycm9yID0g
JyArCisgICAgICAgICAgICAgICAgICAgICAgbWF4RXJyb3IpOworICAgICAgICB9KTsKKyAgICAg
IH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXZhbHVlLXNldHRlci1lcnJvci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0t
dmFsdWUtc2V0dGVyLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTdmZTRkNGEwZDU2
N2E3YTk1ZWFmOWQ1ZmMxMGNkZGU4MmQzMmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXZhbHVlLXNldHRlci1lcnJvci1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RB
UlRFRC4gCitQQVNTIEV4ZWN1dGluZyAiVGVzdCB2YWx1ZSBzZXR0ZXIgd2l0aCBzZXRWYWx1ZUN1
cnZlQXRUaW1lIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtUZXN0IHZhbHVlIHNldHRl
ciB3aXRoIHNldFZhbHVlQ3VydmVBdFRpbWVdICAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1l
KFsuLi5dLCAwLjAyMzQzNzUsIDAuMDMxMjUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAK
K1BBU1MgICBVc2luZyB2YWx1ZSBzZXR0ZXIgYXQgdGltZSAwLjAxNTYyNSBiZWZvcmUgY3VydmUg
c3RhcnRzIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICBVc2luZyB2YWx1ZSBz
ZXR0ZXIgYXQgdGltZSAwLjAzOTA2MjUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY3VydmUgdGhyZXcg
Tm90U3VwcG9ydGVkRXJyb3I6ICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW1Rl
c3QgdmFsdWUgc2V0dGVyIHdpdGggc2V0VmFsdWVDdXJ2ZUF0VGltZV0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBG
SU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXZhbHVlLXNldHRlci1lcnJvci5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXZhbHVlLXNl
dHRlci1lcnJvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1MWUwYmY1MjNhMDNjNDIzMTdkZmUxNjUzZmI4
YTExOWZmMWE5ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0tdmFsdWUtc2V0dGVyLWVycm9yLmh0bWwKQEAgLTAsMCArMSw4OSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAg
QXVkaW9QYXJhbSBWYWx1ZSBTZXR0ZXIgRXJyb3IgVGVzdHMgCisgICAgPC90aXRsZT4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5
PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IHNhbXBsZVJh
dGUgPSAxNjM4NDsKKyAgICAgIC8vIE51bWJlciBvZiBmcmFtZXMgaW4gYSByZW5kZXJpbmcgcXVh
bnR1bS4KKyAgICAgIC8vIFRlc3QgZG9lc24ndCBuZWVkIHRvIHJ1biBmb3IgdmVyeSBsb25nLgor
ICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0gMC4yOworICAgICAgbGV0IHJlbmRlckZyYW1lcyA9
IHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZTsKKyAgICAgIGxldCBhdXRvbWF0aW9uRW5kVGlt
ZSA9IDAuMTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOwor
CisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgJ1Rlc3QgdmFsdWUgc2V0dGVyIHdpdGgg
c2V0VmFsdWVDdXJ2ZUF0VGltZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgICAgIGxl
dCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoCisgICAgICAgICAgICAgICAge2xl
bmd0aDogcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlOiBzYW1wbGVSYXRlfSk7CisKKyAgICAgICAg
ICAgIGxldCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICAg
ICAgbGV0IGdhaW4gPSBuZXcgR2Fpbk5vZGUoY29udGV4dCk7CisKKyAgICAgICAgICAgIHNyYy5j
b25uZWN0KGdhaW4pLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgICAg
IGxldCByZW5kZXJfcXVhbnR1bV9kdXJhdGlvbiA9CisgICAgICAgICAgICAgICAgUkVOREVSX1FV
QU5UVU1fRlJBTUVTIC8gY29udGV4dC5zYW1wbGVSYXRlOworCisgICAgICAgICAgICAvLyBTdGFy
dCBhbmQgZHVyYXRpb24gb2YgdGhlIGN1cnZlIGF1dG9tYXRpb24uICBUaGVzZSBhcmUgZmFpcmx5
CisgICAgICAgICAgICAvLyBhcmJpdHJhcnksIGJ1dCB0aGUgc3RhcnQgc2hvdWxkIGJlIGF0IGxl
YXN0IDIgcmVuZGVyIHF1YW50YSBmcm9tCisgICAgICAgICAgICAvLyB0aGUgYmVnaW5uaW5nIHRv
IGFsbG93IHRpbWUgZm9yIHRlc3RpbmcgdGhlIHZhbHVlIHNldHRlciBiZWZvcmUKKyAgICAgICAg
ICAgIC8vIHRoZSBjdXJ2ZSBzdGFydHMuICBUaGUgZHVyYXRpb24gc2hvdWxkIGJlIGF0IGxlYXN0
IDIgcmVuZGVyCisgICAgICAgICAgICAvLyBxdWFudGEgdG8gYWxsb3cgdXMgdG8gYXBwbHkgdGhl
IHZhbHVlIHNldHRlciBpbiB0aGUgbWlkZGxlCisgICAgICAgICAgICAvLyAoc29tZXdoZXJlKSBv
ZiB0aGUgY3VydmUuCisgICAgICAgICAgICBsZXQgY3VydmVTdGFydFRpbWUgPSAzICogcmVuZGVy
X3F1YW50dW1fZHVyYXRpb247CisgICAgICAgICAgICBsZXQgY3VydmVEdXJhdGlvbiA9IDQgKiBy
ZW5kZXJfcXVhbnR1bV9kdXJhdGlvbjsKKworICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAg
ICAgICAgICgpID0+IHsKKyAgICAgICAgICAgICAgICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUN1cnZl
QXRUaW1lKAorICAgICAgICAgICAgICAgICAgICAgIFstMiwgMV0sIGN1cnZlU3RhcnRUaW1lLCBj
dXJ2ZUR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGBzZXRW
YWx1ZUN1cnZlQXRUaW1lKFsuLi5dLCAke2N1cnZlU3RhcnRUaW1lfSwgJHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vy
dmVEdXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSlgKQorICAgICAgICAgICAgICAgIC5ub3RUaHJvdygpOworCisg
ICAgICAgICAgICAvLyBBcHBseWluZyB0aGUgdmFsdWUgc2V0dGVyIG91dHNpZGUgdGhlIGN1cnZl
IGF1dG9tYXRpb24gc2hvdWxkIG5vdAorICAgICAgICAgICAgLy8gdGhyb3cuICBUaGUgZ2FpbiB2
YWx1ZSBpcyBhcmJpdHJhcnkuCisgICAgICAgICAgICBjb250ZXh0LnN1c3BlbmQoY3VydmVTdGFy
dFRpbWUgLSByZW5kZXJfcXVhbnR1bV9kdXJhdGlvbikKKyAgICAgICAgICAgICAgICAudGhlbigo
KSA9PiB7CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICAgICAg
KCkgPT4gZ2Fpbi5nYWluLnZhbHVlID0gTWF0aC5QSSwKKyAgICAgICAgICAgICAgICAgICAgICAn
VXNpbmcgdmFsdWUgc2V0dGVyIGF0IHRpbWUgJyArIGNvbnRleHQuY3VycmVudFRpbWUgKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAnIGJlZm9yZSBjdXJ2ZSBzdGFydHMnKQorICAgICAgICAg
ICAgICAgICAgICAgIC5ub3RUaHJvdygpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAgICAgLnRoZW4oKCkgPT4gY29udGV4dC5yZXN1bWUoKSk7CisKKyAgICAgICAgICAgIC8vIEFw
cGx5aW5nIHRoZSB2YWx1ZSBzZXR0ZXIgaW5zaWRlIHRoZSBjdXJ2ZSBhdXRvbWF0aW9uIHNob3Vs
ZCBub3QKKyAgICAgICAgICAgIC8vIHRocm93LiAgVGhlIGdhaW4gdmFsdWUgaXMgYXJiaXRyYXJ5
LgorICAgICAgICAgICAgY29udGV4dC5zdXNwZW5kKGN1cnZlU3RhcnRUaW1lICsgY3VydmVEdXJh
dGlvbiAvIDIpCisgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAg
ICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAgICgpID0+IGdhaW4uZ2Fpbi52YWx1ZSA9
IDAsCisgICAgICAgICAgICAgICAgICAgICAgJ1VzaW5nIHZhbHVlIHNldHRlciBhdCB0aW1lICcg
KyBjb250ZXh0LmN1cnJlbnRUaW1lICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJyBpbiB0
aGUgbWlkZGxlIG9mIHRoZSBjdXJ2ZScpCisgICAgICAgICAgICAgICAgICAgICAgLnRocm93KERP
TUV4Y2VwdGlvbiwgJ05vdFN1cHBvcnRlZEVycm9yJyk7CisgICAgICAgICAgICAgICAgfSkKKyAg
ICAgICAgICAgICAgICAudGhlbigoKSA9PiBjb250ZXh0LnJlc3VtZSgpKTsKKworICAgICAgICAg
ICAgc3JjLnN0YXJ0KCk7CisKKyAgICAgICAgICAgIC8vIERvbid0IGNhcmUgYWJvdXQgdGhlIGFj
dHVhbCBvdXRwdXQuCisgICAgICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbigo
KSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOwor
ICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9BdWRpb1BhcmFtL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vY2FuY2VsLXZhbHVlcy1jcmFz
aC05MTMyMTctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyZTE0ODMyNjRkNjA4MTZiZjkwNTkz
OTJmYTk0N2I0Y2Q3ZTYyNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9BdWRpb1BhcmFtL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDggQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBF
eGVjdXRpbmcgImNyYXNoIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtjcmFzaF0gIAor
UEFTUyA8IFtjcmFzaF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMCBhc3NlcnRpb25z
KSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vz
c2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9j
YW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9QYXJhbS9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YzVm
NWFjODk5ZjA4NDZjNzI2NzFkZDI5OWZhZmMxOTk4MGIyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3
Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+
CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBpZiBjYW5jZWxpbmcgZXZlbnRzIGFmdGVyIHNldFRh
cmdldEF0VGltZSBjcmFzaGVzCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQt
dXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0
LXRlc3QtY29kZSI+CisgICAgICAvLyBBcmJpdHJhcnkgcGFyYW1ldGVycyBmb3IgdGhlIG9mZmxp
bmUgY29udGV4dC4KKyAgICAgIGNvbnN0IHNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgIGNvbnN0
IHJlbmRlckR1cmF0aW9uID0gMTsKKyAgICAgIGNvbnN0IGNoYW5uZWxzID0gMjsKKyAgICAgIGNv
bnN0IHJlbmRlckZyYW1lcyA9IHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZTsKKworICAgICAg
Y29uc3QgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgnY3Jhc2gnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQg
PQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoY2hhbm5lbHMsIHJlbmRlckZy
YW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRl
Q29uc3RhbnRTb3VyY2UoKTsKKyAgICAgICAgY29uc3QgYW5hbHlzZXIgPSBjb250ZXh0LmNyZWF0
ZUFuYWx5c2VyKCk7CisgICAgICAgIHNvdXJjZS5jb25uZWN0KGFuYWx5c2VyKTsKKworICAgICAg
ICAvLyBTY2hlZHVsaW5nIHRoZSBmb2xsb3dpbmcgYXQgYW4gZWFybGllciB0aW1lIHRoYW4gYWJv
dmUgY2F1c2VzIHRoZQorICAgICAgICAvLyBwYWdlIHRvIGNyYXNoIGluIDczLjAuMzYzOC4wLiBT
ZWUgY3JidWcuY29tLzkxMzIxNy4KKyAgICAgICAgc291cmNlLm9mZnNldC5zZXRWYWx1ZUF0VGlt
ZSgxLCBjb250ZXh0LmN1cnJlbnRUaW1lKTsKKyAgICAgICAgc291cmNlLm9mZnNldC5zZXRUYXJn
ZXRBdFRpbWUoMCwgY29udGV4dC5jdXJyZW50VGltZSArIDIsIDAuMDAwMDEpOworICAgICAgICBz
b3VyY2Uub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoY29udGV4dC5jdXJyZW50VGltZSArIDEu
OTk5OTkpOworCisgICAgICAgIHNvdXJjZS5zdGFydChjb250ZXh0LmN1cnJlbnRUaW1lKTsKKwor
ICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbigoKSA9PiB7CisgICAgICAgICAg
Ly8gU2hvdWxkIGZpbmlzaCB3aXRob3V0IGEgY3Jhc2guCisgICAgICAgICAgdGFzay5kb25lKCk7
CisgICAgICAgIH0pOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOworICAgIDwvc2Ny
aXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9BdWRpb1BhcmFtL3ZhbHVlLXNldHRlci13YXJuaW5ncy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL3ZhbHVlLXNldHRlci13YXJuaW5ncy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjI3NzAyOTEwODczMjQxMDE1YzQxMzA3NWFlZDMxYmU1ZWU3ZTA4Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vdmFsdWUt
c2V0dGVyLXdhcm5pbmdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM3IEBACitDT05TT0xFIE1F
U1NBR0U6IFthdWRpdC5qc10gdGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBleHBsaWNpdCBjb21wYXJp
c29uIHdpdGggdGhlIGV4cGVjdGVkIHJlc3VsdCB3aGVuIGl0IHJ1bnMgd2l0aCBydW5fd2ViX3Rl
c3RzLnB5LgorQ09OU09MRSBNRVNTQUdFOiBUZXN0OiB0ZXN0LTAKK0NPTlNPTEUgTUVTU0FHRTog
VGVzdDogdGVzdC0xCitDT05TT0xFIE1FU1NBR0U6IFRlc3Q6IHRlc3QtMgorQ09OU09MRSBNRVNT
QUdFOiBUZXN0OiB0ZXN0LTMKK0NPTlNPTEUgTUVTU0FHRTogVGVzdDogdGVzdC00CitDT05TT0xF
IE1FU1NBR0U6IFRlc3Q6IHRlc3QtNQorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRF
RC4gCitQQVNTIEV4ZWN1dGluZyAidGVzdC0wIiAKK1BBU1MgRXhlY3V0aW5nICJ0ZXN0LTEiIAor
UEFTUyBFeGVjdXRpbmcgInRlc3QtMiIgCitQQVNTIEV4ZWN1dGluZyAidGVzdC0zIiAKK1BBU1Mg
RXhlY3V0aW5nICJ0ZXN0LTQiIAorUEFTUyBFeGVjdXRpbmcgInRlc3QtNSIgCitQQVNTIEF1ZGl0
IHJlcG9ydCAKK1BBU1MgPiBbdGVzdC0wXSAgCitQQVNTICAgdGVzdC0wIDogcmVuZGVyZWQgc3Vj
Y2Vzc2Z1bGx5IAorUEFTUyA8IFt0ZXN0LTBdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Rlc3QtMV0gIAorUEFTUyAgIHRlc3QtMSA6IHJlbmRl
cmVkIHN1Y2Nlc3NmdWxseSAKK1BBU1MgPCBbdGVzdC0xXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFt0ZXN0LTJdICAKK1BBU1MgICB0ZXN0LTIg
OiByZW5kZXJlZCBzdWNjZXNzZnVsbHkgCitQQVNTIDwgW3Rlc3QtMl0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbdGVzdC0zXSAgCitQQVNTICAg
dGVzdC0zIDogcmVuZGVyZWQgc3VjY2Vzc2Z1bGx5IAorUEFTUyA8IFt0ZXN0LTNdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Rlc3QtNF0gIAor
UEFTUyAgIHRlc3QtNCA6IHJlbmRlcmVkIHN1Y2Nlc3NmdWxseSAKK1BBU1MgPCBbdGVzdC00XSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFt0ZXN0
LTVdICAKK1BBU1MgICBWYWx1ZSBzZXR0ZXIgb3ZlcmxhcHMgc2V0VmFsdWVDdXJ2ZSB0aHJldyBO
b3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciLiAKK1BBU1MgICB0ZXN0
LTUgOiByZW5kZXJlZCBzdWNjZXNzZnVsbHkgCitQQVNTIDwgW3Rlc3QtNV0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogNiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS92YWx1ZS1zZXR0ZXItd2FybmluZ3MuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vdmFsdWUtc2V0dGVyLXdhcm5pbmdzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjYyZDg2OTIxNWRlMmE3YWRhODU5MTFjZWEyNTljMWE2MDdkOTViNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vdmFsdWUt
c2V0dGVyLXdhcm5pbmdzLmh0bWwKQEAgLTAsMCArMSwxNjcgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3QgV2FybmluZyBNZXNzYWdl
cyBmb3IgVmFsdWUgU2V0dGVyIGFyZSBQcm9kdWNlZAorICAgIDwvdGl0bGU+CisgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3Jp
cHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRl
VGFza1J1bm5lcih7cmVxdWlyZVJlc3VsdEZpbGU6IHRydWV9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKHtsYWJlbDogJ3Rlc3QtMCd9LCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRl
c3QoCisgICAgICAgICAgICB0YXNrLmxhYmVsLCBzaG91bGQsCisgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgIHttZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbMCwgMF19LAor
ICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ3NldFZhbHVlQXRUaW1lJywgYXJnczogWzEsIDAu
Ml19LAorICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
JywgYXJnczogWzk5LCAwLjddfSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgIC8vIE5vIG92ZXJsYXAsIHNvIG5vIHdhcm5pbmcKKyAgICAgICAgICAgICAge3Rp
bWU6IDAuMSwgdmFsdWU6IC0xfSwKKyAgICAgICAgICAgICAgLy8gT3ZlcmxhcHMgc2V0VmFsdWUg
dG8gbGluZWFyUmFtcAorICAgICAgICAgICAgICB7dGltZTogMC41LCB2YWx1ZTogOTl9LAorICAg
ICAgICAgICAgICAvLyBQYXN0IGVuZCBvZiBsaW5lYXJSYW1wLCBzbyBubyB3YXJuaW5nCisgICAg
ICAgICAgICAgIHt0aW1lOiAwLjksIHZhbHVlOiA1MH0KKyAgICAgICAgICAgIF0pCisgICAgICAg
ICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQu
ZGVmaW5lKHtsYWJlbDogJ3Rlc3QtMSd9LCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1
blRlc3QoCisgICAgICAgICAgICB0YXNrLmxhYmVsLCBzaG91bGQsCisgICAgICAgICAgICBbCisg
ICAgICAgICAgICAgIHttZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbMCwgMF19
LAorICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJywg
YXJnczogWzEsIDAuMjFdfSwKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6ICdsaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZScsIGFyZ3M6IFs5OSwgMC43MV19LAorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgIFsKKyAgICAgICAgICAgICAgLy8gT3ZlcmxhcHMgc2V0VmFsdWUgdG8gbGluZWFyUmFt
cAorICAgICAgICAgICAgICB7dGltZTogMC4xLCB2YWx1ZTogLTF9LAorICAgICAgICAgICAgICAv
LyBPdmVybGFwcyBsaW5lYXJSYW1wIHRvIGxpbmVhclJhbXAKKyAgICAgICAgICAgICAge3RpbWU6
IDAuNSwgdmFsdWU6IDk5fSwKKyAgICAgICAgICAgICAgLy8gUGFzdCBlbmQgb2YgbGluZWFyUmFt
cCwgc28gbm8gd2FybmluZworICAgICAgICAgICAgICB7dGltZTogMC45LCB2YWx1ZTogNTB9Cisg
ICAgICAgICAgICBdKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAg
ICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSh7bGFiZWw6ICd0ZXN0LTInfSwgKHRhc2ssIHNo
b3VsZCkgPT4geworICAgICAgICBydW5UZXN0KAorICAgICAgICAgICAgdGFzay5sYWJlbCwgc2hv
dWxkLAorICAgICAgICAgICAgWworICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ3NldFZhbHVl
QXRUaW1lJywgYXJnczogWzAsIDBdfSwKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6ICdsaW5l
YXJSYW1wVG9WYWx1ZUF0VGltZScsIGFyZ3M6IFsxLCAwLjIyXX0sCisgICAgICAgICAgICAgIHtt
ZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbOTksIDAuNzJdfSwKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgIC8vIE92ZXJsYXBzIHNldFZhbHVl
IHRvIGxpbmVhclJhbXAKKyAgICAgICAgICAgICAge3RpbWU6IDAuMSwgdmFsdWU6IC0xfSwKKyAg
ICAgICAgICAgICAgLy8gQmV0d2VlbiBlbmQgb2YgbGluZWFyUmFtcCBhbmQgc3RhcnQgb2Ygc2V0
VmFsdWUsIHNvIG5vIHdhcm5pbmcuCisgICAgICAgICAgICAgIHt0aW1lOiAwLjUsIHZhbHVlOiA5
OX0sCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkp
OworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSh7bGFiZWw6ICd0ZXN0LTMnfSwgKHRh
c2ssIHNob3VsZCkgPT4geworICAgICAgICBydW5UZXN0KAorICAgICAgICAgICAgdGFzay5sYWJl
bCwgc2hvdWxkLAorICAgICAgICAgICAgWworICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ3Nl
dFZhbHVlQXRUaW1lJywgYXJnczogWzAsIDBdfSwKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6
ICdsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZScsIGFyZ3M6IFsxLCAwLjIzXX0sCisgICAgICAgICAg
ICAgIHttZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbOTksIDAuNzNdfSwKKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgIC8vIE92ZXJsYXBzIHNl
dFZhbHVlIHRvIGxpbmVhclJhbXAKKyAgICAgICAgICAgICAge3RpbWU6IDAuMSwgdmFsdWU6IC0x
fSwKKyAgICAgICAgICAgICAgLy8gQmV0d2VlbiBlbmQgb2YgbGluZWFyUmFtcCBhbmQgc3RhcnQg
b2Ygc2V0VmFsdWUsIHNvIG5vIHdhcm5pbmcuCisgICAgICAgICAgICAgIHt0aW1lOiAwLjUsIHZh
bHVlOiA5OX0sCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5k
b25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSh7bGFiZWw6ICd0ZXN0LTQn
fSwgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBydW5UZXN0KAorICAgICAgICAgICAgdGFz
ay5sYWJlbCwgc2hvdWxkLAorICAgICAgICAgICAgWworICAgICAgICAgICAgICB7bWV0aG9kTmFt
ZTogJ3NldFZhbHVlQXRUaW1lJywgYXJnczogWzAsIDBdfSwKKyAgICAgICAgICAgICAge21ldGhv
ZE5hbWU6ICdzZXRUYXJnZXRBdFRpbWUnLCBhcmdzOiBbMSwgMC4yNCwgLjFdfSwKKyAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgIC8vIE5vIG92ZXJsYXAuCisgICAg
ICAgICAgICAgIHt0aW1lOiAwLjEsIHZhbHVlOiAtMX0sCisgICAgICAgICAgICAgIC8vIE92ZXJs
YXBzIHNldFRhcmdldAorICAgICAgICAgICAgICB7dGltZTogMC41LCB2YWx1ZTogOTl9LAorICAg
ICAgICAgICAgXSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAg
IH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoe2xhYmVsOiAndGVzdC01J30sICh0YXNrLCBzaG91
bGQpID0+IHsKKyAgICAgICAgcnVuVGVzdCgKKyAgICAgICAgICAgIHRhc2subGFiZWwsIHNob3Vs
ZCwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6ICdzZXRWYWx1ZUF0
VGltZScsIGFyZ3M6IFswLCAwXX0sCisgICAgICAgICAgICAgIHttZXRob2ROYW1lOiAnc2V0VmFs
dWVDdXJ2ZUF0VGltZScsIGFyZ3M6IFtbMSwgMiwgM10sIDAuMjUsIC41XX0sCisgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAvLyBObyBvdmVybGFwLgorICAgICAg
ICAgICAgICB7dGltZTogMC4xLCB2YWx1ZTogLTF9LAorICAgICAgICAgICAgICAvLyBPdmVybGFw
cyBzZXRWYWx1ZUN1cnZlCisgICAgICAgICAgICAgIHt0aW1lOiAwLjUsIHZhbHVlOiA5OSwgc2hv
dWxkVGhyb3c6IHRydWV9LAorICAgICAgICAgICAgICAvLyBQYXN0IGVuZCBvZiBzZXRWYWx1ZUN1
cnZlLCBzbyBubyB3YXJuaW5nCisgICAgICAgICAgICAgIHt0aW1lOiAuOSwgdmFsdWU6IDUwfQor
ICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAg
ICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKworICAgICAgLy8gUnVuIHRlc3Qgd2l0aCBh
dXRvbWF0aW9ucyBnaXZlbiBpbiB8YXV0b21hdGlvbkxpc3R8IGFuZCB3aXRoIHZhbHVlCisgICAg
ICAvLyBzZXR0ZXJzIGdpdmVuIGluIHx2YWx1ZVNldHRlckxpc3R8LgorICAgICAgZnVuY3Rpb24g
cnVuVGVzdCh0YXNrTGFiZWwsIHNob3VsZCwgYXV0b21hdGlvbkxpc3QsIHZhbHVlU2V0dGVyTGlz
dCkgeworICAgICAgICAvLyBUaGlzIGxvZyBtZXNzYWdlIGlzIHRvIG1ha2UgaXQgZWFzaWVyIHRv
IHNlZSB3aGVyZSB0aGUgd2FybmluZ3MKKyAgICAgICAgLy8gbWVzc2FnZXMgY29tZSBmcm9tIGlu
IHRoZSBsb2dzLgorICAgICAgICBjb25zb2xlLmxvZygnVGVzdDogJyArIHRhc2tMYWJlbCk7CisK
KyAgICAgICAgLy8gRmFpcmx5IGFyYml0cmFyeSBkdXJhdGlvbiBhbmQgc2FtcGxlIHJhdGUuCisg
ICAgICAgIGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgNDgwMDAsIDQ4
MDAwKTsKKworICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwganVzdCBkbyB0aGUgYXV0b21hdGlv
bnMgb24gYSBDb25zdGFudFNvdXJjZU5vZGUuCisgICAgICAgIGxldCBzcmMgPSBuZXcgQ29uc3Rh
bnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMuY29ubmVjdChjb250ZXh0LmRlc3Rp
bmF0aW9uKTsKKworICAgICAgICAvLyBTZXQgdXAgYXV0b21hdGlvbnMuCisgICAgICAgIGZvciAo
bGV0IGl0ZW0gb2YgYXV0b21hdGlvbkxpc3QpIHsKKyAgICAgICAgICBzcmMub2Zmc2V0W2l0ZW0u
bWV0aG9kTmFtZV0oLi4uaXRlbS5hcmdzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN1c3Bl
bmQgdGhlIGNvbnRleHQgYXQgdGhlIHNwZWNpZmllZCB0aW1lcyBhbmQgZGlyZWN0bHkgc2V0IHRo
ZQorICAgICAgICAvLyB2YWx1ZS4KKyAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB2YWx1ZVNldHRl
ckxpc3QpIHsKKyAgICAgICAgICBjb250ZXh0LnN1c3BlbmQoaXRlbS50aW1lKQorICAgICAgICAg
ICAgICAudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGl0ZW0uc2hvdWxkVGhyb3cg
PT09IHRydWUpIHsKKyAgICAgICAgICAgICAgICAgIHNob3VsZCgoKSA9PiBzcmMub2Zmc2V0LnZh
bHVlID0gaXRlbS52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ1ZhbHVlIHNldHRlciBvdmVy
bGFwcyBzZXRWYWx1ZUN1cnZlJykKKyAgICAgICAgICAgICAgICAgICAgLnRocm93KERPTUV4Y2Vw
dGlvbiwgJ05vdFN1cHBvcnRlZEVycm9yJyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgIHNyYy5vZmZzZXQudmFsdWUgPSBpdGVtLnZhbHVlOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gY29u
dGV4dC5yZXN1bWUoKSk7CisgICAgICAgIH0KKworICAgICAgICBzcmMuc3RhcnQoKTsKKworICAg
ICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4oKCkgPT4geworICAgICAg
ICAgIHNob3VsZCh0cnVlLCB0YXNrTGFiZWwpLm1lc3NhZ2UoJzogcmVuZGVyZWQgc3VjY2Vzc2Z1
bGx5JywgJ0ZBSUxFRCcpOworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS93b3JrbGV0LXdhcm5pbmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vd29ya2xldC13YXJuaW5ncy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY3
OWFmNTcwMzA3NWUxODk5N2UyMzc1ZGFlNjQ3ZjNjNWM2YmIyMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vd29ya2xldC13YXJuaW5ncy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVE
LiAKK0ZBSUwgRXhlY3V0aW5nICJBdWRpb1dvcmtsZXQgQXVkaW9QYXJhbSIgcHJvbWlzZV90ZXN0
OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY29udGV4dC5hdWRpb1dvcmtsZXQu
YWRkTW9kdWxlJykiCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbQXVkaW9Xb3JrbGV0IEF1
ZGlvUGFyYW1dIEdlbmVyYXRlIHdhcm5pbmdzIGlmIG91dHNpZGUgbm9taW5hbCByYW5nZSAKK1BB
U1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5
LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS93b3JrbGV0
LXdhcm5pbmdzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL3dvcmtsZXQt
d2FybmluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTRiNDc1YzVhNzZiMzA2ZGJkYzA0ZDU4N2FlZWVl
MjVkOTI1YTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS93b3JrbGV0LXdhcm5pbmdzLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBBdWRpb1dvcmts
ZXQgQXVkaW9QYXJhbSBXYXJuaW5nIE1lc3NhZ2VzCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy93
b3JrbGV0LXRlc3QuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3Jp
cHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRl
VGFza1J1bm5lcigpOworCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAgeworICAgICAg
ICAgICAgbGFiZWw6ICdBdWRpb1dvcmtsZXQgQXVkaW9QYXJhbScsCisgICAgICAgICAgICBkZXNj
cmlwdGlvbjogJ0dlbmVyYXRlIHdhcm5pbmdzIGlmIG91dHNpZGUgbm9taW5hbCByYW5nZScKKyAg
ICAgICAgICB9LAorICAgICAgICAgICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgICAgIC8v
IEFueSByZWFzb25hYmxlIHNhbXBsZSByYXRlIHdpbGwgd29yaworICAgICAgICAgICAgbGV0IHNh
bXBsZVJhdGUgPSAxNjAwMDsKKyAgICAgICAgICAgIGxldCByZW5kZXJUaW1lID0gMTsKKyAgICAg
ICAgICAgIGxldCByZW5kZXJMZW5ndGggPSByZW5kZXJUaW1lICogc2FtcGxlUmF0ZTsKKyAgICAg
ICAgICAgIGxldCBjb250ZXh0ID0KKyAgICAgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29u
dGV4dCgxLCByZW5kZXJMZW5ndGgsIHNhbXBsZVJhdGUpOworICAgICAgICAgICAgY29udGV4dC5h
dWRpb1dvcmtsZXQuYWRkTW9kdWxlKE5vaXNlR2VuV29ya2xldFVybCkudGhlbigoKSA9PiB7Cisg
ICAgICAgICAgICAgIGxldCBub2lzZUdlbmVyYXRvciA9CisgICAgICAgICAgICAgICAgICBuZXcg
QXVkaW9Xb3JrbGV0Tm9kZShjb250ZXh0LCAnbm9pc2UtZ2VuZXJhdG9yJyk7CisgICAgICAgICAg
ICAgIG5vaXNlR2VuZXJhdG9yLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgICAg
ICAgICAgIGxldCBwYXJhbSA9IG5vaXNlR2VuZXJhdG9yLnBhcmFtZXRlcnMuZ2V0KCdhbXBsaXR1
ZGUnKTsKKyAgICAgICAgICAgICAgLy8gU2V0IHRoZSB2YWx1ZSBpbnNpZGUgdGhlIG5vbWluYWwg
cmFuZ2U7IG5vIHdhcm5pbmcgc2hvdWxkIGJlCisgICAgICAgICAgICAgIC8vIGdlbmVyYXRlZC4K
KyAgICAgICAgICAgICAgcGFyYW0udmFsdWUgPSAuMTsKKyAgICAgICAgICAgICAgLy8gU2V0IHRo
ZSB2YWx1ZSBvdXRzaWRlIHRoZSBub21pbmFsIHJhbmdlIHRvIGdlbmVyYXRlIGEKKyAgICAgICAg
ICAgICAgLy8gd2FybmluZy4KKyAgICAgICAgICAgICAgcGFyYW0udmFsdWUgPSA5OTsKKworICAg
ICAgICAgICAgICAvLyBTZXQgdXAgYXV0b21hdGlvbiBvdXRzaWRlIHRoZSBub21pbmFsIHJhbmdl
IHRvIGdlbmVyYXRlIGEKKyAgICAgICAgICAgICAgLy8gd2FybmluZy4KKyAgICAgICAgICAgICAg
cGFyYW0uc2V0VmFsdWVBdFRpbWUoLTEsIHJlbmRlclRpbWUgLyA0KTsKKyAgICAgICAgICAgICAg
cGFyYW0ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoNSwgcmVuZGVyVGltZSk7CisKKyAgICAgICAg
ICAgICAgLy8gUmVuZGVyOyB3ZSBkb24ndCBjYXJlIHdoYXQgdGhlIGdlbmVyYXRlZCByZXN1bHQg
aXMuCisgICAgICAgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAg
ICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgICAgICBzaG91bGQodHJ1ZSwgJ1Jl
bmRlcmluZyBzdWNjZWVkZWQnKS5iZVRydWUoKTsKKyAgICAgICAgICAgICAgICAgIH0pCisgICAg
ICAgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFy
YW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODllYmVhOTAwZDhiMzI0YjVjNjRmOGJhYjRmODQ5MjJjNWEwMDE1OS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMTMgKzAsMCBAQAotCi1QQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRF
RC4gCi1QQVNTIEV4ZWN1dGluZyAibGluZWFyIiAKLVBBU1MgRXhlY3V0aW5nICJleHBvbmVudGlh
bCIgCi1QQVNTIEV4ZWN1dGluZyAic2V0VGFyZ2V0IiAKLVBBU1MgRXhlY3V0aW5nICJzZXRWYWx1
ZUN1cnZlIiAKLVBBU1MgRXhlY3V0aW5nICJzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZCIgCi1QQVNT
IEV4ZWN1dGluZyAiaW5pdGlhbCBzZXRUYXJnZXQiIAotUEFTUyBFeGVjdXRpbmcgInBvc3QgY2Fu
Y2VsOiBMaW5lYXIiIAotUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBFeHBvbmVudGlhbCIg
Ci1QQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IFZhbHVlQ3VydmUiIAotUEFTUyBFeGVjdXRp
bmcgInBvc3QgY2FuY2VsOiBzZXRUYXJnZXQiIAotUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2Vs
OiBzZXRWYWx1ZSIgCi1QQVNTIEV4ZWN1dGluZyAiY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXQiIAot
UEFTUyBFeGVjdXRpbmcgImNhbmNlbCBzZXRUYXJnZXQgbm93IiAKLVBBU1MgRXhlY3V0aW5nICJj
YW5jZWwgZnV0dXJlIHNldFZhbHVlQ3VydmUiIAotUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBzZXRW
YWx1ZUN1cnZlIG5vdyIgCi1QQVNTIEV4ZWN1dGluZyAibGluZWFyLCBjYW5jZWwsIGxpbmVhciwg
Y2FuY2VsLCBsaW5lYXIiIAotUEFTUyBBdWRpdCByZXBvcnQgCi1QQVNTID4gW2xpbmVhcl0gQ2Fu
Y2VsIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lIAotUEFTUyAgIGxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgW2V4
cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAg
Q2FuY2VsbGluZyBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwg
MC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3
NjY5Njc4LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBsaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMg
MC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCi1QQVNT
IDwgW2xpbmVhcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAK
LVBBU1MgPiBbZXhwb25lbnRpYWxdIENhbmNlbCBleHBvbmVudGlhbFJhbXBBdFRpbWUgCi1QQVNT
ICAgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZSgwLjAwMSwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1
YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsi
YWJzb2x1dGVUaHJlc2hvbGQiOjUuOTYwNWUtOCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBB
U1MgICBDYW5jZWxsaW5nIGV4cG9uZW50aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgYXQgdGlt
ZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDMzOTMyMjIwMTkwNzYzNDc0LiAK
LVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBleHBvbmVudGlhbFJhbXBUb1Zh
bHVlKDAuMDAxLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjAzMzkzMjIxNjQ2NTQ3MzE3NSB3aXRo
aW4gYW4gZXJyb3Igb2YgMC4wMDAwMDE4NjY0LiAKLVBBU1MgPCBbZXhwb25lbnRpYWxdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCi1QQVNTID4gW3NldFRhcmdl
dF0gQ2FuY2VsIHNldFRhcmdldEF0VGltZSAKLVBBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMC4w
MSwgMC4wNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4g
ZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjo0LjUyNjdlLTcs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2VsbGluZyBzZXRUYXJnZXRBdFRp
bWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50
IDAuMDA4MjI5NzUxMTM5ODc5MjI3LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2Vs
bGluZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4wNSkgYXQgdGltZSAwLjI1IGlzIDAuMDA4
MjI5NzQ3NDE0NTg4OTI4IHdpdGhpbiBhbiBlcnJvciBvZiA0LjUyNjdlLTcuIAotUEFTUyA8IFtz
ZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCi1Q
QVNTID4gW3NldFZhbHVlQ3VydmVdIENhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIAotUEFTUyAg
IHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuNDkpIHVwIHRvIHRpbWUgMC4yNSBl
cXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2Yg
eyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBBU1MgICBD
YW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuNDkpIGF0IHRpbWUg
MC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAotUEFT
UyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEs
MF0sIDAuMDEsIDAuNDkpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA4MTYzMjY1MyB3aXRoaW4g
YW4gZXJyb3Igb2YgOS41MzY4ZS05LiAKLVBBU1MgPCBbc2V0VmFsdWVDdXJ2ZV0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKLVBBU1MgPiBbc2V0VmFsdWVDdXJ2
ZSBhZnRlciBlbmRdIENhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIGFmdGVyIHRoZSBlbmQgCi1Q
QVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC4xMTQ5OTk5OTk5OTk5OTk5
OSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVu
dC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVz
aG9sZCI6MH0uIAotUEFTUyAgIENhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwg
MC4wMSwgMC4xMTQ5OTk5OTk5OTk5OTk5OSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhl
IGNvbnN0YW50IDAuIAotUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFZh
bHVlQ3VydmVBdFRpbWUoWzEsMF0sIDAuMDEsIDAuMTE0OTk5OTk5OTk5OTk5OTkpIGF0IHRpbWUg
MC4yNSBpcyAwIHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKLVBBU1MgPCBbc2V0VmFsdWVDdXJ2ZSBh
ZnRlciBlbmRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCi1Q
QVNTID4gW2luaXRpYWwgc2V0VGFyZ2V0XSBDYW5jZWwgd2l0aCBpbml0aWFsIHNldFRhcmdldEF0
VGltZSAKLVBBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4xKSB1cCB0byB0aW1lIDAu
MjUgZXF1YWxzIFsxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLi4uXSB3aXRoIGFuIGVs
ZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwMDEyMzIs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2VsbGluZyBzZXRUYXJnZXRBdFRp
bWUoMCwgMC4wMSwgMC4xKSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQg
MC4wOTA3MTc4NDQ2NjUwNTA1LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGlu
ZyBzZXRUYXJnZXRBdFRpbWUoMCwgMC4wMSwgMC4xKSBhdCB0aW1lIDAuMjUgaXMgMC4wOTA3MTc5
NTY0MjM3NTk0NiB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDEyMzIuIAotUEFTUyA8IFtpbml0
aWFsIHNldFRhcmdldF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25z
KSAKLVBBU1MgPiBbcG9zdCBjYW5jZWw6IExpbmVhcl0gTGluZWFyUmFtcCBhZnRlciBjYW5jZWxs
aW5nIAotUEFTUyAgIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBs
aW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgW2V4cGVjdGVk
IGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVz
aG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2Vs
bGluZyBQb3N0IGNhbmNlbGxhdGlvbiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFt
cFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQg
MC41MTAyMDQwNzY3NjY5Njc4LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGlu
ZyBQb3N0IGNhbmNlbGxhdGlvbiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRv
VmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBh
biBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCi1QQVNTICAgUG9zdCBsaW5lYXJSYW1wKDIsIDAuMzc1
KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBBU1Mg
PCBbcG9zdCBjYW5jZWw6IExpbmVhcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNCBh
c3NlcnRpb25zKSAKLVBBU1MgPiBbcG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsXSBFeHBvbmVudGlh
bFJhbXAgYWZ0ZXIgY2FuY2VsbGluZyAKLVBBU1MgICBQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJh
bXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4y
NSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjow
fS4gCi1QQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVl
QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAotUEFTUyAgIEV4cGVjdGVkIHZh
bHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRp
bWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2
NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5OTguIAotUEFTUyAgIFBvc3QgZXhw
b25lbnRpYWxSYW1wKDIsIDAuMzc1KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVs
ZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVU
aHJlc2hvbGQiOjB9LiAKLVBBU1MgPCBbcG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAotUEFTUyA+IFtwb3N0IGNhbmNl
bDogVmFsdWVDdXJ2ZV0gIAotUEFTUyAgIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWU6
IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0
ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBBU1MgICBDYW5j
ZWxsaW5nIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVl
KDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0
MDc2NzY2OTY3OC4gCi1QQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9zdCBj
YW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0
aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4
Mzk5OC4gCi1QQVNTICAgUG9zdCBzZXRWYWx1ZUN1cnZlKFswLjEyNSwyXSwgMC4zNzUsIDAuMTI1
KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ug
b2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5OTgsInJlbGF0aXZlVGhyZXNob2xkIjow
fS4gCi1QQVNTIDwgW3Bvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAotUEFTUyA+IFtwb3N0IGNhbmNlbDogc2V0VGFyZ2V0
XSAgCi1QQVNTICAgUG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1
ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5
OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNl
bCBzZXRUYXJnZXRBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCi1QQVNTICAg
RXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VGFyZ2V0QXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2
Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKLVBBU1MgICBQb3N0IHNldFRh
cmdldEF0VGltZSgwLjEyNSwgMC4zNzUsIDAuMSkgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAw
MDg0MDM3LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyA8IFtwb3N0IGNhbmNlbDogc2V0
VGFyZ2V0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAotUEFT
UyA+IFtwb3N0IGNhbmNlbDogc2V0VmFsdWVdICAKLVBBU1MgICBQb3N0IGNhbmNlbCBzZXRWYWx1
ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxz
IFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFT
UyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1Zh
bHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEw
MjA0MDc2NzY2OTY3OC4gCi1QQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9z
dCBjYW5jZWwgc2V0VmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGlt
ZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5
OTguIAotUEFTUyAgIFBvc3Qgc2V0VmFsdWVBdFRpbWUoMC4xMjUsIDAuMzc1KSBlcXVhbHMgWzAu
MTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1
LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQt
d2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hv
bGQiOjB9LiAKLVBBU1MgPCBbcG9zdCBjYW5jZWw6IHNldFZhbHVlXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAotUEFTUyA+IFtjYW5jZWwgZnV0dXJlIHNldFRh
cmdldF0gIAotUEFTUyAgIEFmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFRhcmdldCBldmVudCwg
b3V0cHV0IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCi1QQVNTIDwgW2NhbmNlbCBm
dXR1cmUgc2V0VGFyZ2V0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlv
bnMpIAotUEFTUyA+IFtjYW5jZWwgc2V0VGFyZ2V0IG5vd10gIAotUEFTUyAgIEFmdGVyIGNhbmNl
bGxpbmcgc2V0VGFyZ2V0IGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNS4gCi1QQVNTIDwgW2NhbmNlbCBzZXRUYXJnZXQgbm93XSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtjYW5jZWwgZnV0
dXJlIHNldFZhbHVlQ3VydmVdICAKLVBBU1MgICBBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRW
YWx1ZUN1cnZlIGV2ZW50LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAK
LVBBU1MgPCBbY2FuY2VsIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtjYW5jZWwgc2V0VmFsdWVDdXJ2ZSBu
b3ddICAKLVBBU1MgICBBZnRlciBjYW5jZWxsaW5nIGN1cnJlbnQgc2V0VmFsdWVDdXJ2ZSBldmVu
dCBzdGFydGluZyBub3csIG91dHB1dCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAot
UEFTUyA8IFtjYW5jZWwgc2V0VmFsdWVDdXJ2ZSBub3ddIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDEgYXNzZXJ0aW9ucykgCi1QQVNTID4gW2xpbmVhciwgY2FuY2VsLCBsaW5lYXIsIGNh
bmNlbCwgbGluZWFyXSBTY2hlZHVsZXMgMyBsaW5lYXIgcmFtcHMsIGNhbmNlbGxpbmcgMiBvZiB0
aGVtLCBzbyB0aGF0IHdlIGVuZCB1cCB3aXRoIDIgY2FuY2VsIGV2ZW50cyBuZXh0IHRvIGVhY2gg
b3RoZXIgCi1GQUlMIFggMXN0IGxpbmVhclJhbXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkg
dXAgdG8gdGltZSAwLjI1IGRvZXMgbm90IGVxdWFsIFswLDAuMDAyMDgzMzMzNDQxOTg3NjMzNyww
LjAwNDE2NjY2Njg4Mzk3NTI2NywwLjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzM3Njc5
NTA1MzUsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMz
MzMzOTU0MjE1MDUsMC4wMTY2NjY2Njc1MzU5MDEwNywwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIw
ODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjcxNjMzNzIwNCwwLjAyNTAwMDAwMDM3MjUyOTAzLDAu
MDI3MDgzMzMzNTgxNjg2MDIsMC4wMjkxNjY2NjY3OTA4NDMwMSwwLjAzMTI1Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LgotCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVs
RXJyb3IJCVRlc3QgdGhyZXNob2xkCi0JWzcxNV0JOS45MDAwODUzMzAwMDk0NjA0ZS0xCTkuOTAw
MDg0NzMzOTYzMDEyN2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wMjA2MTk2NTkwMzMwNDI3
ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCVs4MTZdCTkuODU3MTQzMTYzNjgxMDMwM2UtMQk5
Ljg1NzE0MjU2NzYzNDU4MjVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDQ2ODQ4MTk4Mjkw
MTgxN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbODc5XQk5LjgzMDM1NjgzNjMxODk2OTdl
LTEJOS44MzAzNTc0MzIzNjU0MTc1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA2MzMyNDI2
NzI0ODc3ODJlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCi0JWzEyNjRdCTkuNjY2NjY2Mzg4NTEx
NjU3N2UtMQk5LjY2NjY2Njk4NDU1ODEwNTVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTY1
OTk3NTMyNjE0NDI3OWUtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLQlbMTM2OF0JOS42MjI0NDky
Nzg4MzE0ODE5ZS0xCTkuNjIyNDQ4NjgyNzg1MDM0MmUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJ
Ni4xOTQzMzIzMDk4MjMxNTgzZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAotCS4uLmFuZCAxMTQw
IG1vcmUgZXJyb3JzLgotCU1heCBBYnNFcnJvciBvZiA1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTggYXQg
aW5kZXggb2YgNzE1LgotCU1heCBSZWxFcnJvciBvZiAxLjE2NzE4MTE5OTA0NTI0NThlLTcgYXQg
aW5kZXggb2YgMTE5ODkuCi0JWzExOTg5XQk1LjEwNjcxNzk0NDE0NTIwMjZlLTEJNS4xMDY3MTcz
NDgwOTg3NTQ5ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAkxLjE2NzE4MTE5OTA0NTI0NThlLTcJ
MC4wMDAwMDAwMDAwMDAwMDAwZSswCi0gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1QQVNTICAgQ2FuY2VsbGluZyAxc3QgbGluZWFyUmFtcDogbGluZWFyUmFtcFRvVmFsdWUo
MCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQw
NzY3NjY5Njc4LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAxc3QgbGlu
ZWFyUmFtcDogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAy
MDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKLVBBU1MgICAybmQgbGluZWFyUmFt
cCgyLCAwLjUpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0u
IAotUEFTUyAgIENhbmNlbGxpbmcgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEuMjU1MTAyMDM4MzgzNDgzOS4gCi1QQVNTICAg
RXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0
aW1lIDAuMzc1IGlzIDEuMjU1MTAyMDM4MzgzNDgzOSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCi1Q
QVNTICAgM3JkIGxpbmVhclJhbXAoMCwgMC41KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVs
YXRpdmVUaHJlc2hvbGQiOjB9LiAKLUZBSUwgPCBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2Fu
Y2VsLCBsaW5lYXJdIDEgb3V0IG9mIDcgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklO
SVNIRUQ6IDEgb3V0IG9mIDE2IHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
cGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVhNmEwZmYxMzBkY2I4NWRiZmU1OGNmNmQ5MTE5YzJiNjk4NjM4YmUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDgyMyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8dGl0bGU+Ci0gICAg
ICBUZXN0IENhbmNlbFZhbHVlc0FuZEhvbGRBdFRpbWUKLSAgICA8L3RpdGxlPgotICAgIDxzY3Jp
cHQgc3JjPSIuLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9h
dWRpby1wYXJhbS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRp
dC11dGlsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0Lmpz
Ij48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9keT4KLSAgICA8c2NyaXB0IGlkPSJsYXlvdXQt
dGVzdC1jb2RlIj4KLSAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgwMDA7Ci0gICAgICBsZXQgcmVu
ZGVyRHVyYXRpb24gPSAwLjU7Ci0KLSAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tS
dW5uZXIoKTsKLQotICAgICAgLy8gVGhlIGZpcnN0IGZldyB0YXNrcyB0ZXN0IHRoZSBjYW5jZWxs
YXRpb24gb2YgZWFjaCByZWxldmFudCBhdXRvbWF0aW9uCi0gICAgICAvLyBmdW5jdGlvbi4gIEZv
ciB0aGUgdGVzdCwgYSBzaW1wbGUgbGluZWFyIHJhbXAgZnJvbSAwIHRvIDEgaXMgdXNlZCB0bwot
ICAgICAgLy8gc3RhcnQgdGhpbmdzIG9mZi4gIFRoZW4gdGhlIGF1dG9tYXRpb24gdG8gYmUgdGVz
dGVkIGlzIHNjaGVkdWxlZCBhbmQKLSAgICAgIC8vIGNhbmNlbGxlZC4KLQotICAgICAgYXVkaXQu
ZGVmaW5lKAotICAgICAgICAgIHtsYWJlbDogJ2xpbmVhcicsIGRlc2NyaXB0aW9uOiAnQ2FuY2Vs
IGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJ30sCi0gICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hv
dWxkKSB7Ci0gICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ2xp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lJyksIHsKLSAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6
IDguMzk5OGUtNSwKLSAgICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNQotICAg
ICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0gICAgICAgICAgfSk7Ci0K
LSAgICAgIGF1ZGl0LmRlZmluZSgKLSAgICAgICAgICB7bGFiZWw6ICdleHBvbmVudGlhbCcsIGRl
c2NyaXB0aW9uOiAnQ2FuY2VsIGV4cG9uZW50aWFsUmFtcEF0VGltZSd9LAotICAgICAgICAgIGZ1
bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAgICAgICAgLy8gQ2FuY2VsIGFuIGV4cG9uZW50
aWFsIHJhbXAuICBUaGUgdGhyZXNob2xkcyBhcmUgZXhwZXJpbWVudGFsbHkKLSAgICAgICAgICAg
IC8vIGRldGVybWluZWQuCi0gICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24o
ZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7Ci0gICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdmFs
dWVzIHRvIDAuCi0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsK
LSAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOwotICAgICAgICAg
ICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciByYW1wIHRvIHN0YXJ0IHRoaW5ncyBvZmYu
Ci0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDAp
OwotICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQw
KTsKLQotICAgICAgICAgICAgICAvLyBBZnRlciB0aGUgbGluZWFyIHJhbXAsIHNjaGVkdWxlIGFu
IGV4cG9uZW50aWFsIHJhbXAgdG8gdGhlIGVuZC4KLSAgICAgICAgICAgICAgLy8gKFRoaXMgaXMg
dGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBiZSBjYW5jZWxsZWQuKQotICAgICAgICAgICAgICBsZXQg
djEgPSAwLjAwMTsKLSAgICAgICAgICAgICAgbGV0IHQxID0gcmVuZGVyRHVyYXRpb247Ci0KLSAg
ICAgICAgICAgICAgZ1swXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQx
KTsKLSAgICAgICAgICAgICAgZ1sxXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUo
djEsIHQxKTsKLQotICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQo
Ci0gICAgICAgICAgICAgICAgICB2MCAqIE1hdGgucG93KHYxIC8gdjAsIChjYW5jZWxUaW1lIC0g
dDApIC8gKHQxIC0gdDApKSk7Ci0gICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAg
ICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKLSAgICAgICAgICAgICAgICBh
dXRvTWVzc2FnZTogJ2V4cG9uZW50aWFsUmFtcFRvVmFsdWUoJyArIHYxICsgJywgJyArIHQxICsg
JyknLAotICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lJywKLSAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAg
dmFsdWVUaHJlc2hvbGQ6IDEuODY2NGUtNiwKLSAgICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6
IDUuOTYwNWUtOAotICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0g
ICAgICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRlZmluZSgKLSAgICAgICAgICB7bGFiZWw6ICdz
ZXRUYXJnZXQnLCBkZXNjcmlwdGlvbjogJ0NhbmNlbCBzZXRUYXJnZXRBdFRpbWUnfSwKLSAgICAg
ICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKLSAgICAgICAgICAgIC8vIENhbmNlbCBhIHNl
dFRhcmdldCBldmVudC4KLSAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihn
LCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKLSAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1
ZXMgdG8gMC4KLSAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOwot
ICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7Ci0gICAgICAgICAg
ICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQgbGluZWFyIHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4K
LSAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7
Ci0gICAgICAgICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDAp
OwotCi0gICAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgdGhlIGxpbmVhciByYW1wLCBzY2hl
ZHVsZSBhIHNldFRhcmdldC4gIChUaGlzIGlzCi0gICAgICAgICAgICAgIC8vIHRoZSBldmVudCB0
aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikKLSAgICAgICAgICAgICAgbGV0IHYxID0gMDsKLSAgICAg
ICAgICAgICAgbGV0IHQxID0gdDA7Ci0gICAgICAgICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAw
LjA1OwotCi0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQxLCB0
aW1lQ29uc3RhbnQpOwotICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYx
LCB0MSwgdGltZUNvbnN0YW50KTsKLQotICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50ID0g
TWF0aC5mcm91bmQoCi0gICAgICAgICAgICAgICAgICB2MSArICh2MCAtIHYxKSAqIE1hdGguZXhw
KC0oY2FuY2VsVGltZSAtIHQwKSAvIHRpbWVDb25zdGFudCkpOwotICAgICAgICAgICAgICByZXR1
cm4gewotICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQs
Ci0gICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6ICdzZXRUYXJnZXRBdFRpbWUoJyArIHYxICsg
JywgJyArIHQxICsgJywgJyArCi0gICAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudCArICcp
JywKLSAgICAgICAgICAgICAgICBzdW1tYXJ5OiAnc2V0VGFyZ2V0QXRUaW1lJywKLSAgICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6
IDQuNTI2N2UtNywgIC8vIDEuMTMxN2UtNywKLSAgICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6
IDQuNTI2N2UtNwotICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0g
ICAgICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRlZmluZSgKLSAgICAgICAgICB7bGFiZWw6ICdz
ZXRWYWx1ZUN1cnZlJywgZGVzY3JpcHRpb246ICdDYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSd9
LAotICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAgICAgICAgLy8gQ2Fu
Y2VsIGEgc2V0VmFsdWVDdXJ2ZSBldmVudC4KLSAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxk
LCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKLSAgICAgICAgICAgICAgLy8gSW5p
dGlhbGl6ZSB2YWx1ZXMgdG8gMC4KLSAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRU
aW1lKDAsIDApOwotICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7
Ci0gICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQgbGluZWFyIHJhbXAgdG8gc3RhcnQg
dGhpbmdzIG9mZi4KLSAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lKHYwLCB0MCk7Ci0gICAgICAgICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0
VGltZSh2MCwgdDApOwotCi0gICAgICAgICAgICAgIC8vIEFmdGVyIHRoZSBsaW5lYXIgcmFtcCwg
c2NoZWR1bGUgYSBzZXRWYWx1ZXNDdXJ2ZS4gKFRoaXMgaXMgdGhlCi0gICAgICAgICAgICAgIC8v
IGV2ZW50IHRoYXQgd2lsbCBiZSBjYW5jZWxsZWQuKQotICAgICAgICAgICAgICBsZXQgdjEgPSAw
OwotICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSByZW5kZXJEdXJhdGlvbiAtIHQwOwotCi0g
ICAgICAgICAgICAgIC8vIEZvciBzaW1wbGljaXR5LCBhIDItcG9pbnQgY3VydmUgc28gd2UgZ2V0
IGEgbGluZWFyIGludGVycG9sYXRlZAotICAgICAgICAgICAgICAvLyByZXN1bHQuCi0gICAgICAg
ICAgICAgIGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFt2MCwgMF0pOwotCi0gICAgICAg
ICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24p
OwotICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAs
IGR1cmF0aW9uKTsKLQotICAgICAgICAgICAgICBsZXQgaW5kZXggPQotICAgICAgICAgICAgICAg
ICAgTWF0aC5mbG9vcigoY3VydmUubGVuZ3RoIC0gMSkgLyBkdXJhdGlvbiAqIChjYW5jZWxUaW1l
IC0gdDApKTsKLQotICAgICAgICAgICAgICBsZXQgY3VydmVQb2ludHNQZXJGcmFtZSA9Ci0gICAg
ICAgICAgICAgICAgICAoY3VydmUubGVuZ3RoIC0gMSkgLyBkdXJhdGlvbiAvIHNhbXBsZVJhdGU7
Ci0gICAgICAgICAgICAgIGxldCB2aXJ0dWFsSW5kZXggPQotICAgICAgICAgICAgICAgICAgKGNh
bmNlbFRpbWUgLSB0MCkgKiBzYW1wbGVSYXRlICogY3VydmVQb2ludHNQZXJGcmFtZTsKLQotICAg
ICAgICAgICAgICBsZXQgZGVsdGEgPSB2aXJ0dWFsSW5kZXggLSBpbmRleDsKLSAgICAgICAgICAg
ICAgZXhwZWN0ZWRDb25zdGFudCA9IGN1cnZlWzBdICsgKGN1cnZlWzFdIC0gY3VydmVbMF0pICog
ZGVsdGE7Ci0gICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWRD
b25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKLSAgICAgICAgICAgICAgICBhdXRvTWVzc2FnZTog
J3NldFZhbHVlQ3VydmVBdFRpbWUoWycgKyBjdXJ2ZSArICddLCAnICsgdDAgKwotICAgICAgICAg
ICAgICAgICAgICAnLCAnICsgZHVyYXRpb24gKyAnKScsCi0gICAgICAgICAgICAgICAgc3VtbWFy
eTogJ3NldFZhbHVlQ3VydmVBdFRpbWUnLAotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAg
fSwgewotICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogOS41MzY4ZS05LAotICAgICAgICAg
ICAgICBjdXJ2ZVRocmVzaG9sZDogMAotICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmlu
ZCh0YXNrKSk7Ci0gICAgICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRlZmluZSgKLSAgICAgICAg
ICB7Ci0gICAgICAgICAgICBsYWJlbDogJ3NldFZhbHVlQ3VydmUgYWZ0ZXIgZW5kJywKLSAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWUgYWZ0ZXIgdGhl
IGVuZCcKLSAgICAgICAgICB9LAotICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewot
ICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2Vs
VGltZSkgewotICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgotICAgICAg
ICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7Ci0gICAgICAgICAgICAgIGdb
MV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKLSAgICAgICAgICAgICAgLy8gU2NoZWR1bGUg
YSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgotICAgICAgICAgICAgICBn
WzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKLSAgICAgICAgICAgICAg
Z1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7Ci0KLSAgICAgICAgICAg
ICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFZhbHVlc0N1cnZlLiAo
VGhpcyBpcyB0aGUKLSAgICAgICAgICAgICAgLy8gZXZlbnQgdGhhdCB3aWxsIGJlIGNhbmNlbGxl
ZC4pICBNYWtlIHN1cmUgdGhlIGN1cnZlIGVuZHMgYmVmb3JlCi0gICAgICAgICAgICAgIC8vIHRo
ZSBjYW5jZWxsYXRpb24gdGltZS4KLSAgICAgICAgICAgICAgbGV0IHYxID0gMDsKLSAgICAgICAg
ICAgICAgbGV0IGR1cmF0aW9uID0gY2FuY2VsVGltZSAtIHQwIC0gMC4xMjU7Ci0KLSAgICAgICAg
ICAgICAgLy8gRm9yIHNpbXBsaWNpdHksIGEgMi1wb2ludCBjdXJ2ZSBzbyB3ZSBnZXQgYSBsaW5l
YXIgaW50ZXJwb2xhdGVkCi0gICAgICAgICAgICAgIC8vIHJlc3VsdC4KLSAgICAgICAgICAgICAg
bGV0IGN1cnZlID0gRmxvYXQzMkFycmF5LmZyb20oW3YwLCAwXSk7Ci0KLSAgICAgICAgICAgICAg
Z1swXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7Ci0gICAg
ICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRp
b24pOwotCi0gICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPSBjdXJ2ZVsxXTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBl
Y3RlZENvbnN0YW50LAotICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnc2V0VmFsdWVDdXJ2
ZUF0VGltZShbJyArIGN1cnZlICsgJ10sICcgKyB0MCArCi0gICAgICAgICAgICAgICAgICAgICcs
ICcgKyBkdXJhdGlvbiArICcpJywKLSAgICAgICAgICAgICAgICBzdW1tYXJ5OiAnc2V0VmFsdWVD
dXJ2ZUF0VGltZScsCi0gICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9LCB7Ci0gICAgICAg
ICAgICAgIHZhbHVlVGhyZXNob2xkOiAwLAotICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDog
MAotICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0gICAgICAgICAg
fSk7Ci0KLSAgICAgIC8vIFNwZWNpYWwgY2FzZSB3aGVyZSB3ZSBzY2hlZHVsZSBhIHNldFRhcmdl
dCBhbmQgdGhlcmUgaXMgbm8gZWFybGllcgotICAgICAgLy8gYXV0b21hdGlvbiBldmVudC4gIFRo
aXMgdGVzdHMgdGhhdCB3ZSBwaWNrIHVwIHRoZSBzdGFydGluZyBwb2ludAotICAgICAgLy8gY29y
cmVjdGx5IGZyb20gdGhlIGxhc3Qgc2V0dGluZyBvZiB0aGUgQXVkaW9QYXJhbSB2YWx1ZSBhdHRy
aWJ1dGUuCi0KLQotICAgICAgYXVkaXQuZGVmaW5lKAotICAgICAgICAgIHsKLSAgICAgICAgICAg
IGxhYmVsOiAnaW5pdGlhbCBzZXRUYXJnZXQnLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICdD
YW5jZWwgd2l0aCBpbml0aWFsIHNldFRhcmdldEF0VGltZScKLSAgICAgICAgICB9LAotICAgICAg
ICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91
bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2VsVGltZSkgewotICAgICAgICAgICAgICBsZXQg
djEgPSAwOwotICAgICAgICAgICAgICBsZXQgdGltZUNvbnN0YW50ID0gMC4xOwotICAgICAgICAg
ICAgICBnWzBdLmdhaW4udmFsdWUgPSAxOwotICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VGFy
Z2V0QXRUaW1lKHYxLCB0MCwgdGltZUNvbnN0YW50KTsKLSAgICAgICAgICAgICAgZ1sxXS5nYWlu
LnZhbHVlID0gMTsKLSAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwg
dDAsIHRpbWVDb25zdGFudCk7Ci0KLSAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkQ29uc3RhbnQg
PSBNYXRoLmZyb3VuZCgKLSAgICAgICAgICAgICAgICAgIHYxICsgKHYwIC0gdjEpICogTWF0aC5l
eHAoLShjYW5jZWxUaW1lIC0gdDApIC8gdGltZUNvbnN0YW50KSk7Ci0KLSAgICAgICAgICAgICAg
cmV0dXJuIHsKLSAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0
YW50LAotICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnc2V0VGFyZ2V0QXRUaW1lKCcgKyB2
MSArICcsICcgKyB0MCArICcsICcgKwotICAgICAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQg
KyAnKScsCi0gICAgICAgICAgICAgICAgc3VtbWFyeTogJ0luaXRpYWwgc2V0VGFyZ2V0QXRUaW1l
JywKLSAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAgdmFs
dWVUaHJlc2hvbGQ6IDEuMjMyMGUtNiwKLSAgICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDEu
MjMyMGUtNgotICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0gICAg
ICAgICAgfSk7Ci0KLSAgICAgIC8vIFRlc3QgYXV0b21hdGlvbnMgc2NoZWR1bGVkIGFmdGVyIHRo
ZSBjYWxsIHRvIGNhbmNlbEFuZEhvbGRBdFRpbWUuCi0gICAgICAvLyBWZXJ5IHNpbWlsYXIgdG8g
dGhlIGFib3ZlIHRlc3RzLCBidXQgd2UgYWxzbyBzY2hlZHVsZSBhbiBldmVudCBhZnRlcgotICAg
ICAgLy8gY2FuY2VsQW5kSG9sZEF0VGltZSBhbmQgdmVyaWZ5IHRoYXQgY3VydmUgYWZ0ZXIgY2Fu
Y2VsbGF0aW9uIGhhcwotICAgICAgLy8gdGhlIGNvcnJlY3QgdmFsdWVzLgotCi0gICAgICBhdWRp
dC5kZWZpbmUoCi0gICAgICAgICAgewotICAgICAgICAgICAgbGFiZWw6ICdwb3N0IGNhbmNlbDog
TGluZWFyJywKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnTGluZWFyUmFtcCBhZnRlciBjYW5j
ZWxsaW5nJwotICAgICAgICAgIH0sCi0gICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7
Ci0gICAgICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBh
cyB0aGUgZXZlbnQgdG8gYmUKLSAgICAgICAgICAgIC8vIGNhbmNlbGxlZC4gVGhlbiBzY2hlZHVs
ZSBhbm90aGVyIGxpbmVhciByYW1wIGFmdGVyIHRoZQotICAgICAgICAgICAgLy8gY2FuY2VsbGF0
aW9uLgotICAgICAgICAgICAgY2FuY2VsVGVzdCgKLSAgICAgICAgICAgICAgICBzaG91bGQsCi0g
ICAgICAgICAgICAgICAgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJh
bXBUb1ZhbHVlQXRUaW1lJyksCi0gICAgICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5
OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5OThlLTV9LAotICAgICAgICAgICAgICAgIGZ1bmN0
aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgICAgICAg
IC8vIFNjaGVkdWxlIHRoZSBsaW5lYXIgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9y
IGdbMl0sCi0gICAgICAgICAgICAgICAgICAvLyB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2
ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KLSAgICAgICAgICAgICAgICAgIGxldCB2MiA9IDI7Ci0g
ICAgICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7Ci0gICAgICAgICAg
ICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKLSAgICAg
ICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBj
YW5jZWxUaW1lKTsKLSAgICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1
ZUF0VGltZSh2MiwgdDIpOwotICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAg
ICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lLAotICAgICAgICAgICAgICAgICAg
ICBtZXNzYWdlOiAnUG9zdCBsaW5lYXJSYW1wKCcgKyB2MiArICcsICcgKyB0MiArICcpJwotICAg
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KQotICAgICAgICAgICAgICAgIC50
aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgYXVkaXQu
ZGVmaW5lKAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGxhYmVsOiAncG9zdCBjYW5jZWw6IEV4
cG9uZW50aWFsJywKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRXhwb25lbnRpYWxSYW1wIGFm
dGVyIGNhbmNlbGxpbmcnCi0gICAgICAgICAgfSwKLSAgICAgICAgICBmdW5jdGlvbih0YXNrLCBz
aG91bGQpIHsKLSAgICAgICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5l
YXJSYW1wIGFzIHRoZSBldmVudCB0byBiZQotICAgICAgICAgICAgLy8gY2FuY2VsbGVkLiBUaGVu
IHNjaGVkdWxlIGFuIGV4cG9uZW50aWFsIHJhbXAgYWZ0ZXIgdGhlCi0gICAgICAgICAgICAvLyBj
YW5jZWxsYXRpb24uCi0gICAgICAgICAgICBjYW5jZWxUZXN0KAotICAgICAgICAgICAgICAgIHNo
b3VsZCwKLSAgICAgICAgICAgICAgICBsaW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWwgZXhwb25l
bnRpYWxSYW1wVG9WYWx1ZUF0VGltZScpLAotICAgICAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9s
ZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogOC4zOTk4ZS01fSwKLSAgICAgICAgICAgICAg
ICBmdW5jdGlvbihnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7Ci0gICAgICAgICAg
ICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8g
dGhlIHNhbWUgZm9yCi0gICAgICAgICAgICAgICAgICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRp
bmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KLSAgICAgICAgICAgICAgICAgIGxl
dCB2MiA9IDI7Ci0gICAgICAgICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7
Ci0gICAgICAgICAgICAgICAgICBnWzBdLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGlt
ZSh2MiwgdDIpOwotICAgICAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4
cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOwotICAgICAgICAgICAgICAgICAgZ1syXS5nYWlu
LmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKLSAgICAgICAgICAgICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGlt
ZSwKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bvc3QgZXhwb25lbnRpYWxSYW1wKCcg
KyB2MiArICcsICcgKyB0MiArICcpJwotICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAg
ICAgICB9KQotICAgICAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAg
ICAgICAgICB9KTsKLQotICAgICAgYXVkaXQuZGVmaW5lKCdwb3N0IGNhbmNlbDogVmFsdWVDdXJ2
ZScsIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0
ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgotICAg
ICAgICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VmFsdWVDdXJ2ZSBhZnRlciB0aGUgY2FuY2VsbGF0
aW9uLgotICAgICAgICBjYW5jZWxUZXN0KAotICAgICAgICAgICAgc2hvdWxkLCBsaW5lYXJSYW1w
VGVzdCgnUG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZScpLAotICAgICAgICAgICAge3Zh
bHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5OThlLTV9LAotICAg
ICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCkgewotICAg
ICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25lbnRpYWwgcmFtcCBvbiBnWzBdLCBhbmQg
ZG8gdGhlIHNhbWUgZm9yCi0gICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGlu
ZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0YW50LgotICAgICAgICAgICAgICBsZXQgdDIg
PSBjYW5jZWxUaW1lICsgMC4xMjU7Ci0gICAgICAgICAgICAgIGxldCBkdXJhdGlvbiA9IDAuMTI1
OwotICAgICAgICAgICAgICBsZXQgY3VydmUgPSBGbG9hdDMyQXJyYXkuZnJvbShbLjEyNSwgMl0p
OwotICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIs
IGR1cmF0aW9uKTsKLSAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVj
dGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOwotICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFs
dWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDIsIGR1cmF0aW9uKTsKLSAgICAgICAgICAgICAgcmV0dXJu
IHsKLSAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUsCi0gICAgICAg
ICAgICAgICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VmFsdWVDdXJ2ZShbJyArIGN1cnZlICsgJ10sICcg
KyB0MiArICcsICcgKwotICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiArICcpJywKLSAgICAg
ICAgICAgICAgICBlcnJvclRocmVzaG9sZDogOC4zOTk4ZS01Ci0gICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICB9KQotICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOwot
ICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRlZmluZSgncG9zdCBjYW5jZWw6IHNldFRhcmdldCcs
IGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0
IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgotICAgICAg
ICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCi0g
ICAgICAgIGNhbmNlbFRlc3QoCi0gICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQ
b3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWUnKSwKLSAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9s
ZDogOC4zOTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogOC4zOTk4ZS01fSwKLSAgICAgICAgICAgIGZ1
bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgICAg
Ly8gU2NoZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJhbXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1l
IGZvcgotICAgICAgICAgICAgICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2
ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KLSAgICAgICAgICAgICAgbGV0IHYyID0gMC4xMjU7Ci0g
ICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKLSAgICAgICAgICAgICAg
bGV0IHRpbWVDb25zdGFudCA9IDAuMTsKLSAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFRhcmdl
dEF0VGltZSh2MiwgdDIsIHRpbWVDb25zdGFudCk7Ci0gICAgICAgICAgICAgIGdbMl0uZ2Fpbi5z
ZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lKTsKLSAgICAgICAgICAg
ICAgZ1syXS5nYWluLnNldFRhcmdldEF0VGltZSh2MiwgdDIsIHRpbWVDb25zdGFudCk7Ci0gICAg
ICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5j
ZWxUaW1lICsgMC4xMjUsCi0gICAgICAgICAgICAgICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VGFyZ2V0
QXRUaW1lKCcgKyB2MiArICcsICcgKyB0MiArICcsICcgKwotICAgICAgICAgICAgICAgICAgICB0
aW1lQ29uc3RhbnQgKyAnKScsCi0gICAgICAgICAgICAgICAgZXJyb3JUaHJlc2hvbGQ6IDguNDAz
N2UtNQotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSkKLSAgICAgICAgICAgIC50aGVu
KHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgIH0pOwotCi0gICAgICBhdWRpdC5kZWZpbmUo
J3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZScsIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAg
ICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEgbGluZWFyUmFtcCBhcyB0aGUgZXZlbnQg
dG8gYmUgY2FuY2VsbGVkLgotICAgICAgICAvLyBUaGVuIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFm
dGVyIHRoZSBjYW5jZWxsYXRpb24uCi0gICAgICAgIGNhbmNlbFRlc3QoCi0gICAgICAgICAgICBz
aG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBzZXRWYWx1ZUF0VGltZScpLAotICAg
ICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNob2xkOiA4LjM5
OThlLTV9LAotICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25z
dGFudCkgewotICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25lbnRpYWwgcmFtcCBv
biBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCi0gICAgICAgICAgICAgIC8vIGdbMl0sIHVzaW5n
IHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0YW50LgotICAgICAgICAg
ICAgICBsZXQgdjIgPSAwLjEyNTsKLSAgICAgICAgICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSAr
IDAuMTI1OwotICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUodjIsIHQyKTsK
LSAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQs
IGNhbmNlbFRpbWUpOwotICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUodjIs
IHQyKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICAgICBjb25zdGFudEVu
ZFRpbWU6IGNhbmNlbFRpbWUgKyAwLjEyNSwKLSAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9z
dCBzZXRWYWx1ZUF0VGltZSgnICsgdjIgKyAnLCAnICsgdDIgKyAnKScKLSAgICAgICAgICAgICAg
fTsKLSAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNr
KSk7Ci0gICAgICB9KTsKLQotICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgZnV0dXJlIHNldFRh
cmdldCcsICh0YXNrLCBzaG91bGQpID0+IHsKLSAgICAgICAgY29uc3QgY29udGV4dCA9Ci0gICAg
ICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBs
ZVJhdGUsIHNhbXBsZVJhdGUpOwotICAgICAgICBjb25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3Vy
Y2VOb2RlKGNvbnRleHQpOwotICAgICAgICBzcmMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9u
KTsKLQotICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVlQXRUaW1lKDAuNSwgMCk7Ci0gICAgICAg
IHNyYy5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1lKDAsIDAuNzUgKiByZW5kZXJEdXJhdGlvbiwgMC4x
KTsKLSAgICAgICAgLy8gTm93IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCi0g
ICAgICAgIHNyYy5vZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlv
bik7Ci0KLSAgICAgICAgc3JjLnN0YXJ0KCk7Ci0gICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJp
bmcoKQotICAgICAgICAgICAgLnRoZW4oYnVmZmVyID0+IHsKLSAgICAgICAgICAgICAgbGV0IGFj
dHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKLSAgICAgICAgICAgICAgLy8gQmVjYXVz
ZSB0aGUgc2V0VGFyZ2V0IHdhcyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKLSAg
ICAgICAgICAgICAgLy8gY29uc3RhbnQuCi0gICAgICAgICAgICAgIHNob3VsZChhY3R1YWwsICdB
ZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRUYXJnZXQgZXZlbnQsIG91dHB1dCcpCi0gICAgICAg
ICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41KTsKLSAgICAgICAgICAgIH0pCi0gICAg
ICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0gICAgICB9KTsKLQotICAgICAg
YXVkaXQuZGVmaW5lKCdjYW5jZWwgc2V0VGFyZ2V0IG5vdycsICh0YXNrLCBzaG91bGQpID0+IHsK
LSAgICAgICAgY29uc3QgY29udGV4dCA9Ci0gICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29u
dGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOwotICAgICAg
ICBjb25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOwotICAgICAgICBz
cmMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKLQotICAgICAgICBzcmMub2Zmc2V0LnNl
dFZhbHVlQXRUaW1lKDAuNSwgMCk7Ci0gICAgICAgIHNyYy5vZmZzZXQuc2V0VGFyZ2V0QXRUaW1l
KDAsIDAuNSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOwotICAgICAgICAvLyBOb3cgY2FuY2VsIHRo
ZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KLSAgICAgICAgc3JjLm9mZnNldC5jYW5jZWxBbmRI
b2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKLQotICAgICAgICBzcmMuc3RhcnQoKTsK
LSAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCi0gICAgICAgICAgICAudGhlbihidWZm
ZXIgPT4gewotICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRh
KDApOwotICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJnZXQgd2FzIGNhbmNlbGxl
ZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQotICAgICAgICAgICAgICAvLyBjb25zdGFudC4KLSAg
ICAgICAgICAgICAgc2hvdWxkKAotICAgICAgICAgICAgICAgICAgYWN0dWFsLAotICAgICAgICAg
ICAgICAgICAgJ0FmdGVyIGNhbmNlbGxpbmcgc2V0VGFyZ2V0IGV2ZW50IHN0YXJ0aW5nIG5vdywg
b3V0cHV0JykKLSAgICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigwLjUpOwotICAg
ICAgICAgICAgfSkKLSAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAg
ICAgIH0pOwotCi0gICAgICBhdWRpdC5kZWZpbmUoJ2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2
ZScsICh0YXNrLCBzaG91bGQpID0+IHsKLSAgICAgICAgY29uc3QgY29udGV4dCA9Ci0gICAgICAg
ICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJh
dGUsIHNhbXBsZVJhdGUpOwotICAgICAgICBjb25zdCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VO
b2RlKGNvbnRleHQpOwotICAgICAgICBzcmMuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsK
LQotICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVlQXRUaW1lKDAuNSwgMCk7Ci0gICAgICAgIHNy
Yy5vZmZzZXQuc2V0VmFsdWVDdXJ2ZUF0VGltZShbLTEsIDFdLCAwLjc1ICogcmVuZGVyRHVyYXRp
b24sIDAuMSk7Ci0gICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFy
Z2V0LgotICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVy
RHVyYXRpb24pOwotCi0gICAgICAgIHNyYy5zdGFydCgpOwotICAgICAgICBjb250ZXh0LnN0YXJ0
UmVuZGVyaW5nKCkKLSAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7Ci0gICAgICAgICAgICAg
IGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICAgICAgICAgIC8v
IEJlY2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBi
ZSBhCi0gICAgICAgICAgICAgIC8vIGNvbnN0YW50LgotICAgICAgICAgICAgICBzaG91bGQoCi0g
ICAgICAgICAgICAgICAgICBhY3R1YWwsICdBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRWYWx1
ZUN1cnZlIGV2ZW50LCBvdXRwdXQnKQotICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1
ZU9mKDAuNSk7Ci0gICAgICAgICAgICB9KQotICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJp
bmQodGFzaykpOwotICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRlZmluZSgnY2FuY2VsIHNldFZh
bHVlQ3VydmUgbm93JywgKHRhc2ssIHNob3VsZCkgPT4gewotICAgICAgICBjb25zdCBjb250ZXh0
ID0KLSAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9u
ICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Ci0gICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25z
dGFudFNvdXJjZU5vZGUoY29udGV4dCk7Ci0gICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVz
dGluYXRpb24pOwotCi0gICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsK
LSAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUN1cnZlQXRUaW1lKFstMSwgMV0sIDAuNSAqIHJl
bmRlckR1cmF0aW9uLCAwLjEpOwotICAgICAgICAvLyBOb3cgY2FuY2VsIHRoZSBlZmZlY3Qgb2Yg
dGhlIHNldFRhcmdldC4KLSAgICAgICAgc3JjLm9mZnNldC5jYW5jZWxBbmRIb2xkQXRUaW1lKDAu
NSAqIHJlbmRlckR1cmF0aW9uKTsKLQotICAgICAgICBzcmMuc3RhcnQoKTsKLSAgICAgICAgY29u
dGV4dC5zdGFydFJlbmRlcmluZygpCi0gICAgICAgICAgICAudGhlbihidWZmZXIgPT4gewotICAg
ICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOwotICAgICAg
ICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJnZXQgd2FzIGNhbmNlbGxlZCwgdGhlIG91dHB1
dCBzaG91bGQgYmUgYQotICAgICAgICAgICAgICAvLyBjb25zdGFudC4KLSAgICAgICAgICAgICAg
c2hvdWxkKAotICAgICAgICAgICAgICAgICAgYWN0dWFsLAotICAgICAgICAgICAgICAgICAgJ0Fm
dGVyIGNhbmNlbGxpbmcgY3VycmVudCBzZXRWYWx1ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywg
b3V0cHV0JykKLSAgICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigwLjUpOwotICAg
ICAgICAgICAgfSkKLSAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAg
ICAgIH0pOwotCi0gICAgICBhdWRpdC5kZWZpbmUoCi0gICAgICAgIHsKLSAgICAgICAgICBsYWJl
bDogJ2xpbmVhciwgY2FuY2VsLCBsaW5lYXIsIGNhbmNlbCwgbGluZWFyJywKLSAgICAgICAgICBk
ZXNjcmlwdGlvbjogJ1NjaGVkdWxlcyAzIGxpbmVhciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRo
ZW0sICcKLSAgICAgICAgICAgICsgJ3NvIHRoYXQgd2UgZW5kIHVwIHdpdGggMiBjYW5jZWwgZXZl
bnRzIG5leHQgdG8gZWFjaCBvdGhlcicKLSAgICAgICAgfSwKLSAgICAgICAgKHRhc2ssIHNob3Vs
ZCkgPT4gewotICAgICAgICAgIGNhbmNlbFRlc3QyKAotICAgICAgICAgICAgc2hvdWxkLAotICAg
ICAgICAgICAgbGluZWFyUmFtcFRlc3QoJzFzdCBsaW5lYXJSYW1wJyksCi0gICAgICAgICAgICB7
dmFsdWVUaHJlc2hvbGQ6IDAsIGN1cnZlVGhyZXNob2xkOiAwfSwKLSAgICAgICAgICAgIChnLCBj
YW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lMikgPT4gewotICAgICAgICAg
ICAgICAvLyBSYW1wIGZyb20gZmlyc3QgY2FuY2VsIHRpbWUgdG8gdGhlIGVuZCB3aWxsIGJlIGNh
bmNlbGxlZCBhdAotICAgICAgICAgICAgICAvLyBzZWNvbmQgY2FuY2VsIHRpbWUuCi0gICAgICAg
ICAgICAgIGNvbnN0IHYxID0gZXhwZWN0ZWRDb25zdGFudDsKLSAgICAgICAgICAgICAgY29uc3Qg
dDEgPSBjYW5jZWxUaW1lOwotICAgICAgICAgICAgICBjb25zdCB2MiA9IDI7Ci0gICAgICAgICAg
ICAgIGNvbnN0IHQyID0gcmVuZGVyRHVyYXRpb247Ci0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5s
aW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOwotICAgICAgICAgICAgICBnWzJdLmdhaW4u
c2V0VmFsdWVBdFRpbWUodjEsIHQxKTsKLSAgICAgICAgICAgICAgZ1syXS5nYWluLmxpbmVhclJh
bXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7Ci0KLSAgICAgICAgICAgICAgY29uc3QgZXhwZWN0ZWRD
b25zdGFudDIgPQotICAgICAgICAgICAgICAgIGF1ZGlvUGFyYW1MaW5lYXJSYW1wKGNhbmNlbFRp
bWUyLCB2MSwgdDEsIHYyLCB0Mik7Ci0KLSAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAg
ICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUsCi0gICAgICAgICAgICAgICAgbWVz
c2FnZTogYDJuZCBsaW5lYXJSYW1wKCR7djJ9LCAke3QyfSlgLAotICAgICAgICAgICAgICAgIGV4
cGVjdGVkQ29uc3RhbnQyCi0gICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9LAotICAgICAg
ICAgICAgKGcsIGNhbmNlbFRpbWUyLCBleHBlY3RlZENvbnN0YW50MikgPT4gewotICAgICAgICAg
ICAgICAvLyBSYW1wIGZyb20gc2Vjb25kIGNhbmNlbCB0aW1lIHRvIHRoZSBlbmQuCi0gICAgICAg
ICAgICAgIGNvbnN0IHYzID0gMDsKLSAgICAgICAgICAgICAgY29uc3QgdDMgPSByZW5kZXJEdXJh
dGlvbjsKLSAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYz
LCB0Myk7Ci0gICAgICAgICAgICAgIGdbM10uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENv
bnN0YW50MiwgY2FuY2VsVGltZTIpOwotICAgICAgICAgICAgICBnWzNdLmdhaW4ubGluZWFyUmFt
cFRvVmFsdWVBdFRpbWUodjMsIHQzKTsKLSAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAg
ICAgICAgICBjb25zdGFudEVuZFRpbWUyOiBjYW5jZWxUaW1lMiwKLSAgICAgICAgICAgICAgICBt
ZXNzYWdlMjogYDNyZCBsaW5lYXJSYW1wKCR7djN9LCAke3QzfSlgLAotICAgICAgICAgICAgICB9
OwotICAgICAgICAgICAgfSkKLSAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsK
LSAgICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LnJ1bigpOwotCi0gICAgICAvLyBDb21tb24gZnVu
Y3Rpb24gZm9yIGRvaW5nIGEgbGluZWFyUmFtcCB0ZXN0LiAgVGhpcyBqdXN0IGRvZXMgYSBsaW5l
YXIKLSAgICAgIC8vIHJhbXAgZnJvbSAwIHRvIHYwIGF0IGZyb20gdGltZSAwIHRvIHQwLiAgVGhl
biBhbm90aGVyIGxpbmVhciByYW1wIGlzCi0gICAgICAvLyBzY2hlZHVsZWQgZnJvbSB2MCB0byAw
IGZyb20gdGltZSB0MCB0byB0MS4gIFRoaXMgaXMgdGhlIHJhbXAgdGhhdCBpcyB0bwotICAgICAg
Ly8gYmUgY2FuY2VsbGVkLgotICAgICAgZnVuY3Rpb24gbGluZWFyUmFtcFRlc3QobWVzc2FnZSkg
ewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7Ci0gICAg
ICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOwotICAgICAgICAgIGdbMV0uZ2Fp
bi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKLSAgICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRv
VmFsdWVBdFRpbWUodjAsIHQwKTsKLSAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUodjAsIHQwKTsKLQotICAgICAgICAgIGxldCB2MSA9IDA7Ci0gICAgICAgICAgbGV0
IHQxID0gcmVuZGVyRHVyYXRpb247Ci0gICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lKHYxLCB0MSk7Ci0gICAgICAgICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVl
QXRUaW1lKHYxLCB0MSk7Ci0KLSAgICAgICAgICBleHBlY3RlZENvbnN0YW50ID0KLSAgICAgICAg
ICAgICAgTWF0aC5mcm91bmQodjAgKyAodjEgLSB2MCkgKiAoY2FuY2VsVGltZSAtIHQwKSAvICh0
MSAtIHQwKSk7Ci0KLSAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgZXhwZWN0ZWRDb25z
dGFudDogZXhwZWN0ZWRDb25zdGFudCwKLSAgICAgICAgICAgIGF1dG9NZXNzYWdlOgotICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgKyAnOiBsaW5lYXJSYW1wVG9WYWx1ZSgnICsgdjEgKyAnLCAnICsg
dDEgKyAnKScsCi0gICAgICAgICAgICBzdW1tYXJ5OiBtZXNzYWdlLAotICAgICAgICAgIH07Ci0g
ICAgICAgIH0KLSAgICAgIH0KLQotICAgICAgLy8gUnVuIHRoZSBjYW5jZWxsYXRpb24gdGVzdC4g
QSBzZXQgb2YgYXV0b21hdGlvbnMgaXMgY3JlYXRlZCBhbmQKLSAgICAgIC8vIGNhbmNlbGVkLgot
ICAgICAgLy8KLSAgICAgIC8vIHx0ZXN0ZXJGdW5jdGlvbnwgaXMgYSBmdW5jdGlvbiB0aGF0IGdl
bmVyYXRlcyB0aGUgYXV0b21hdGlvbiB0byBiZQotICAgICAgLy8gdGVzdGVkLiAgSXQgaXMgZ2l2
ZW4gYW4gYXJyYXkgb2YgMyBnYWluIG5vZGVzLCB0aGUgdmFsdWUgYW5kIHRpbWUgb2YgYW4KLSAg
ICAgIC8vIGluaXRpYWwgbGluZWFyIHJhbXAsIGFuZCB0aGUgdGltZSB3aGVyZSB0aGUgY2FuY2Vs
bGF0aW9uIHNob3VsZCBvY2N1ci4KLSAgICAgIC8vIFRoZSBmdW5jdGlvbiBtdXN0IGRvIHRoZSBh
dXRvbWF0aW9ucyBmb3IgdGhlIGZpcnN0IHR3byBnYWluIG5vZGVzLiAgSXQKLSAgICAgIC8vIG11
c3QgcmV0dXJuIGEgZGljdGlvbmFyeSB3aXRoIHxleHBlY3RlZENvbnN0YW50fCBiZWluZyB0aGUg
dmFsdWUgYXQgdGhlCi0gICAgICAvLyBjYW5jZWxsYXRpb24gdGltZSwgfGF1dG9NZXNzYWdlfCBm
b3IgbWVzc2FnZSB0byBkZXNjcmliZSB0aGUgdGVzdCwgYW5kCi0gICAgICAvLyB8c3VtbWFyeXwg
Zm9yIGdlbmVyYWwgc3VtbWFyeSBtZXNzYWdlIHRvIGJlIHByaW50ZWQgYXQgdGhlIGVuZCBvZiB0
aGUKLSAgICAgIC8vIHRlc3QuCi0gICAgICAvLwotICAgICAgLy8gfHRocmVzaG9sZE9wdGlvbnN8
IGlzIGEgcHJvcGVydHkgYmFnIHRoYXQgc3BlY2lmaWVzIHRoZSBlcnJvciB0aHJlc2hvbGQKLSAg
ICAgIC8vIHRvIHVzZS4gfHRocmVzaG9sZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR8IGlzIHRoZSBl
cnJvciB0aHJlc2hvbGQgZm9yCi0gICAgICAvLyBjb21wYXJpbmcgdGhlIGFjdHVhbCBjb25zdGFu
dCBvdXRwdXQgYWZ0ZXIgY2FuY2VsbGluZyB0byB0aGUgZXhwZWN0ZWQKLSAgICAgIC8vIHZhbHVl
LiAgfHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJlc2hvbGR8IGlzIHRoZSBlcnJvciB0aHJlc2hv
bGQgZm9yCi0gICAgICAvLyBjb21wYXJpbmcgdGhlIGFjdHVhbCBhbmQgZXhwZWN0ZWQgYXV0b21h
dGlvbiBjdXJ2ZXMgYmVmb3JlIHRoZQotICAgICAgLy8gY2FuY2VsYXRpb24gcG9pbnQuCi0gICAg
ICAvLwotICAgICAgLy8gRm9yIGNhbmNlbGxhdGlvbiB0ZXN0cywgfHBvc3RDYW5jZWxUZXN0fCBp
cyBhIGZ1bmN0aW9uIHRoYXQgc2NoZWR1bGVzCi0gICAgICAvLyBzb21lIGF1dG9tYXRpb24gYWZ0
ZXIgdGhlIGNhbmNlbGxhdGlvbi4gIEl0IHRha2VzIDMgYXJndW1lbnRzOiBhbiBhcnJheQotICAg
ICAgLy8gb2YgdGhlIGdhaW4gbm9kZXMsIHRoZSBjYW5jZWxsYXRpb24gdGltZSwgYW5kIHRoZSBl
eHBlY3RlZCB2YWx1ZSBhdCB0aGUKLSAgICAgIC8vIGNhbmNlbGxhdGlvbiB0aW1lLiAgVGhpcyBm
dW5jdGlvbiBtdXN0IHJldHVybiBhIGRpY3Rpb25hcnkgY29uc2lzdGluZwotICAgICAgLy8gb2Yg
fGNvbnN0YW50RW5kdGltZXwgaW5kaWNhdGluZyB3aGVuIHRoZSBoZWxkIGNvbnN0YW50IGZyb20K
LSAgICAgIC8vIGNhbmNlbGxhdGlvbiBzdG9wcyBiZWluZyBjb25zdGFudCwgfG1lc3NhZ2V8IGdp
dmluZyBhIHN1bW1hcnkgb2Ygd2hhdAotICAgICAgLy8gYXV0b21hdGlvbiBpcyBiZWluZyB1c2Vk
LCBhbmQgfGVycm9yVGhyZXNob2xkfCB0aGF0IGlzIHRoZSBlcnJvcgotICAgICAgLy8gdGhyZXNo
b2xkIGJldHdlZW4gdGhlIGV4cGVjdGVkIGN1cnZlIGFuZCB0aGUgYWN0dWFsIGN1cnZlLgotICAg
ICAgLy8KLSAgICAgIGZ1bmN0aW9uIGNhbmNlbFRlc3QoCi0gICAgICAgICAgc2hvdWxkLCB0ZXN0
ZXJGdW5jdGlvbiwgdGhyZXNob2xkT3B0aW9ucywgcG9zdENhbmNlbFRlc3QpIHsKLSAgICAgICAg
Ly8gQ3JlYXRlIGEgY29udGV4dCB3aXRoIHRocmVlIGNoYW5uZWxzLiAgQ2hhbm5lbCAwIGlzIHRo
ZSB0ZXN0IGNoYW5uZWwKLSAgICAgICAgLy8gY29udGFpbmluZyB0aGUgYWN0dWFsIG91dHB1dCB0
aGF0IGluY2x1ZGVzIHRoZSBjYW5jZWxsYXRpb24gb2YKLSAgICAgICAgLy8gZXZlbnRzLiAgQ2hh
bm5lbCAxIGlzIHRoZSBleHBlY3RlZCBkYXRhIHVwdG8gdGhlIGNhbmNlbGxhdGlvbiBzbyB3ZQot
ICAgICAgICAvLyBjYW4gdmVyaWZ5IHRoZSBjYW5jZWxsYXRpb24gcHJvZHVjZWQgdGhlIGNvcnJl
Y3QgcmVzdWx0LiAgQ2hhbm5lbCAyCi0gICAgICAgIC8vIGlzIGZvciB2ZXJpZnlpbmcgZXZlbnRz
IGluc2VydGVkIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24gc28gd2UgY2FuCi0gICAgICAgIC8vIHZl
cmlmeSB0aGF0IGF1dG9tYXRpb25zIGFyZSBjb3JyZWN0bHkgZ2VuZXJhdGVkIGFmdGVyIHRoZQot
ICAgICAgICAvLyBjYW5jZWxsYXRpb24gcG9pbnQuCi0gICAgICAgIGxldCBjb250ZXh0ID0KLSAg
ICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDMsIHJlbmRlckR1cmF0aW9uICogc2Ft
cGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Ci0KLSAgICAgICAgLy8gVGVzdCBzb3VyY2UgaXMgYSBjb25z
dGFudCBzaWduYWwKLSAgICAgICAgbGV0IHNyYyA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNl
KCk7Ci0gICAgICAgIHNyYy5idWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAx
LCAxKTsKLSAgICAgICAgc3JjLmxvb3AgPSB0cnVlOwotCi0gICAgICAgIC8vIFdlJ2xsIGRvIHRo
ZSBhdXRvbWF0aW9uIHRlc3RzIHdpdGggdGhyZWUgZ2FpbiBub2Rlcy4gIE9uZSAoZzApIHdpbGwK
LSAgICAgICAgLy8gaGF2ZSBjYW5jZWxBbmRIb2xkQXRUaW1lIGFuZCB0aGUgb3RoZXIgKGcxKSB3
aWxsIG5vdC4gIGcxIGlzCi0gICAgICAgIC8vIHVzZWQgYXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBm
b3IgdGhhdCBhdXRvbWF0aW9uIHVwIHRvIHRoZQotICAgICAgICAvLyBjYW5jZWxsYXRpb24gcG9p
bnQuICBUaGV5IHNob3VsZCBiZSB0aGUgc2FtZS4gIFRoZSB0aGlyZCBub2RlIChnMikgaXMKLSAg
ICAgICAgLy8gdXNlZCBmb3IgdGVzdGluZyBhdXRvbWF0aW9ucyBpbnNlcnRlZCBhZnRlciB0aGUg
Y2FuY2VsbGF0aW9uIHBvaW50LAotICAgICAgICAvLyBpZiBhbnkuICBnMiBpcyB0aGUgZXhwZWN0
ZWQgcmVzdWx0IGZyb20gdGhlIGNhbmNlbGxhdGlvbiBwb2ludCB0byB0aGUKLSAgICAgICAgLy8g
ZW5kIG9mIHRoZSB0ZXN0LgotCi0gICAgICAgIGxldCBnMCA9IGNvbnRleHQuY3JlYXRlR2Fpbigp
OwotICAgICAgICBsZXQgZzEgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKLSAgICAgICAgbGV0IGcy
ID0gY29udGV4dC5jcmVhdGVHYWluKCk7Ci0gICAgICAgIGxldCB2MCA9IDE7Ci0gICAgICAgIGxl
dCB0MCA9IDAuMDE7Ci0KLSAgICAgICAgbGV0IGNhbmNlbFRpbWUgPSByZW5kZXJEdXJhdGlvbiAv
IDI7Ci0KLSAgICAgICAgLy8gVGVzdCBhdXRvbWF0aW9uIGhlcmUuICBUaGUgdGVzdGVyIGZ1bmN0
aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nCi0gICAgICAgIC8vIHVwIHRoZSBnYWluIG5v
ZGVzIHdpdGggdGhlIGRlc2lyZWQgYXV0b21hdGlvbiBmb3IgdGVzdGluZy4KLSAgICAgICAgYXV0
b1Jlc3VsdCA9IHRlc3RlckZ1bmN0aW9uKFtnMCwgZzEsIGcyXSwgdjAsIHQwLCBjYW5jZWxUaW1l
KTsKLSAgICAgICAgbGV0IGV4cGVjdGVkQ29uc3RhbnQgPSBhdXRvUmVzdWx0LmV4cGVjdGVkQ29u
c3RhbnQ7Ci0gICAgICAgIGxldCBhdXRvTWVzc2FnZSA9IGF1dG9SZXN1bHQuYXV0b01lc3NhZ2U7
Ci0gICAgICAgIGxldCBzdW1tYXJ5TWVzc2FnZSA9IGF1dG9SZXN1bHQuc3VtbWFyeTsKLQotICAg
ICAgICAvLyBDYW5jZWwgc2NoZWR1bGVkIGV2ZW50cyBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZSBv
ZiB0aGUgdGVzdAotICAgICAgICAvLyBhdXRvbWF0aW9uLgotICAgICAgICBnMC5nYWluLmNhbmNl
bEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZSk7Ci0KLSAgICAgICAgbGV0IGNvbnN0YW50RW5kVGlt
ZTsKLSAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0KSB7Ci0gICAgICAgICAgcG9zdFJlc3VsdCA9
Ci0gICAgICAgICAgICAgIHBvc3RDYW5jZWxUZXN0KFtnMCwgZzEsIGcyXSwgY2FuY2VsVGltZSwg
ZXhwZWN0ZWRDb25zdGFudCk7Ci0gICAgICAgICAgY29uc3RhbnRFbmRUaW1lID0gcG9zdFJlc3Vs
dC5jb25zdGFudEVuZFRpbWU7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDb25uZWN0IGV2ZXJ5
dGhpbmcgdG9nZXRoZXIgKHdpdGggYSBtZXJnZXIgdG8gbWFrZSBhIHR3by1jaGFubmVsCi0gICAg
ICAgIC8vIHJlc3VsdCkuICBDaGFubmVsIDAgaXMgdGhlIHRlc3QgKHdpdGggY2FuY2VsQW5kSG9s
ZEF0VGltZSkgYW5kCi0gICAgICAgIC8vIGNoYW5uZWwgMSBpcyB0aGUgcmVmZXJlbmNlICh3aXRo
b3V0IGNhbmNlbEFuZEhvbGRBdFRpbWUpLgotICAgICAgICAvLyBDaGFubmVsIDEgaXMgdXNlZCB0
byB2ZXJpZnkgdGhhdCBldmVyeXRoaW5nIHVwIHRvIHRoZSBjYW5jZWxsYXRpb24KLSAgICAgICAg
Ly8gaGFzIHRoZSBjb3JyZWN0IHZhbHVlcy4KLSAgICAgICAgc3JjLmNvbm5lY3QoZzApOwotICAg
ICAgICBzcmMuY29ubmVjdChnMSk7Ci0gICAgICAgIHNyYy5jb25uZWN0KGcyKTsKLSAgICAgICAg
bGV0IG1lcmdlciA9IGNvbnRleHQuY3JlYXRlQ2hhbm5lbE1lcmdlcigzKTsKLSAgICAgICAgZzAu
Y29ubmVjdChtZXJnZXIsIDAsIDApOwotICAgICAgICBnMS5jb25uZWN0KG1lcmdlciwgMCwgMSk7
Ci0gICAgICAgIGcyLmNvbm5lY3QobWVyZ2VyLCAwLCAyKTsKLSAgICAgICAgbWVyZ2VyLmNvbm5l
Y3QoY29udGV4dC5kZXN0aW5hdGlvbik7Ci0KLSAgICAgICAgLy8gR28hCi0gICAgICAgIHNyYy5z
dGFydCgpOwotCi0gICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihm
dW5jdGlvbihidWZmZXIpIHsKLSAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5u
ZWxEYXRhKDApOwotICAgICAgICAgIGxldCBleHBlY3RlZCA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0
YSgxKTsKLQotICAgICAgICAgIC8vIFRoZSBhY3R1YWwgb3V0cHV0IHNob3VsZCBiZSBhIGNvbnN0
YW50IGZyb20gdGhlIGNhbmNlbCB0aW1lIHRvIHRoZQotICAgICAgICAgIC8vIGVuZC4gIFdlIHVz
ZSB0aGUgbGFzdCB2YWx1ZSBvZiB0aGUgYWN0dWFsIG91dHB1dCBhcyB0aGUgY29uc3RhbnQsCi0g
ICAgICAgICAgLy8gYnV0IHdlIGFsc28gd2FudCB0byBjb21wYXJlIHRoYXQgd2l0aCB3aGF0IHdl
IHRob3VnaHQgaXQgc2hvdWxkCi0gICAgICAgICAgLy8gcmVhbGx5IGJlLgotCi0gICAgICAgICAg
bGV0IGNhbmNlbEZyYW1lID0gTWF0aC5jZWlsKGNhbmNlbFRpbWUgKiBzYW1wbGVSYXRlKTsKLQot
ICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjdXJ2ZXMgdXAgdG8gdGhlIGNhbmNlbCB0aW1l
IGFyZSAiaWRlbnRpY2FsIi4gIFRoZQotICAgICAgICAgIC8vIHNob3VsZCBiZSBidXQgcm91bmQt
b2ZmIG1heSBtYWtlIHRoZW0gZGlmZmVyIHNsaWdodGx5IGR1ZSB0byB0aGUKLSAgICAgICAgICAv
LyB3YXkgY2FuY2VsbGluZyBpcyBkb25lLgotICAgICAgICAgIGxldCBlbmRGcmFtZSA9IE1hdGgu
Zmxvb3IoY2FuY2VsVGltZSAqIHNhbXBsZVJhdGUpOwotICAgICAgICAgIHNob3VsZCgKLSAgICAg
ICAgICAgICAgYWN0dWFsLnNsaWNlKDAsIGVuZEZyYW1lKSwKLSAgICAgICAgICAgICAgYXV0b01l
c3NhZ2UgKyAnIHVwIHRvIHRpbWUgJyArIGNhbmNlbFRpbWUpCi0gICAgICAgICAgICAgIC5iZUNs
b3NlVG9BcnJheSgKLSAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLnNsaWNlKDAsIGVuZEZyYW1l
KSwKLSAgICAgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogdGhyZXNob2xkT3B0aW9u
cy5jdXJ2ZVRocmVzaG9sZH0pOwotCi0gICAgICAgICAgLy8gVmVyaWZ5IHRoZSBvdXRwdXQgYWZ0
ZXIgdGhlIGNhbmNlbGxhdGlvbiBpcyBhIGNvbnN0YW50LgotICAgICAgICAgIGxldCBhY3R1YWxU
YWlsOwotICAgICAgICAgIGxldCBjb25zdGFudEVuZEZyYW1lOwotCi0gICAgICAgICAgaWYgKHBv
c3RDYW5jZWxUZXN0KSB7Ci0gICAgICAgICAgICBjb25zdGFudEVuZEZyYW1lID0gTWF0aC5jZWls
KGNvbnN0YW50RW5kVGltZSAqIHNhbXBsZVJhdGUpOwotICAgICAgICAgICAgYWN0dWFsVGFpbCA9
IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZSwgY29uc3RhbnRFbmRGcmFtZSk7Ci0gICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGFjdHVhbFRhaWwgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJh
bWUpOwotICAgICAgICAgIH0KLQotICAgICAgICAgIGxldCBhY3R1YWxDb25zdGFudCA9IGFjdHVh
bFtjYW5jZWxGcmFtZV07Ci0KLSAgICAgICAgICBzaG91bGQoCi0gICAgICAgICAgICAgIGFjdHVh
bFRhaWwsCi0gICAgICAgICAgICAgICdDYW5jZWxsaW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQg
dGltZSAnICsgY2FuY2VsVGltZSkKLSAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFj
dHVhbENvbnN0YW50KTsKLQotICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjb25zdGFudCBp
cyB0aGUgdmFsdWUgd2UgZXhwZWN0LgotICAgICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgICAg
YWN0dWFsQ29uc3RhbnQsCi0gICAgICAgICAgICAgICdFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2Vs
bGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0IHRpbWUgJyArCi0gICAgICAgICAgICAgICAgICBj
YW5jZWxUaW1lKQotICAgICAgICAgICAgICAuYmVDbG9zZVRvKAotICAgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRDb25zdGFudCwKLSAgICAgICAgICAgICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9s
ZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKLQotICAgICAgICAgIC8vIFZlcmlmeSB0aGUgY3Vy
dmUgYWZ0ZXIgdGhlIGNvbnN0YW50RW5kVGltZSBtYXRjaGVzIG91cgotICAgICAgICAgIC8vIGV4
cGVjdGF0aW9ucy4KLSAgICAgICAgICBpZiAocG9zdENhbmNlbFRlc3QpIHsKLSAgICAgICAgICAg
IGxldCBjMiA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgyKTsKLSAgICAgICAgICAgIHNob3VsZChh
Y3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZSksIHBvc3RSZXN1bHQubWVzc2FnZSkKLSAgICAg
ICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCi0gICAgICAgICAgICAgICAgICAgIGMyLnNsaWNl
KGNvbnN0YW50RW5kRnJhbWUpLAotICAgICAgICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hv
bGQ6IHBvc3RSZXN1bHQuZXJyb3JUaHJlc2hvbGQgfHwgMH0pOwotICAgICAgICAgIH0KLSAgICAg
ICAgfSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFNpbWlsYXIgdG8gY2FuY2VsVGVzdCwgYnV0IGRv
ZXMgMiBjYW5jZWxzLgotICAgICAgZnVuY3Rpb24gY2FuY2VsVGVzdDIoCi0gICAgICAgICAgc2hv
dWxkLCB0ZXN0ZXJGdW5jdGlvbiwgdGhyZXNob2xkT3B0aW9ucywKLSAgICAgICAgICBwb3N0Q2Fu
Y2VsVGVzdCwgcG9zdENhbmNlbFRlc3QyKSB7Ci0gICAgICAgIC8vIENoYW5uZWwgMDogQWN0dWFs
IG91dHB1dCB0aGF0IGluY2x1ZGVzIHRoZSBjYW5jZWxsYXRpb24gb2YgZXZlbnRzLgotICAgICAg
ICAvLyBDaGFubmVsIDE6IEV4cGVjdGVkIGRhdGEgdXAgdG8gdGhlIGZpcnN0IGNhbmNlbGxhdGlv
bi4KLSAgICAgICAgLy8gQ2hhbm5lbCAyOiBFeHBlY3RlZCBkYXRhIGZyb20gMXN0IGNhbmNlbGxh
dGlvbiB0byAybmQgY2FuY2VsbGF0aW9uLgotICAgICAgICAvLyBDaGFubmVsIDM6IEV4cGVjdGVk
IGRhdGEgZnJvbSAybmQgY2FuY2VsbGF0aW9uIHRvIHRoZSBlbmQuCi0gICAgICAgIGNvbnN0IGNv
bnRleHQgPQotICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDQsIHJlbmRlckR1cmF0
aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Ci0KLSAgICAgICAgY29uc3Qgc3JjID0gY29u
dGV4dC5jcmVhdGVDb25zdGFudFNvdXJjZSgpOwotCi0gICAgICAgIC8vIGcwOiBBY3R1YWwgZ2Fp
biB3aGljaCB3aWxsIGhhdmUgY2FuY2VsQW5kSG9sZEF0VGltZSBjYWxsZWQgb24gaXQKLSAgICAg
ICAgLy8gdHdpY2UuCi0gICAgICAgIC8vIGcxOiBFeHBlY3RlZCBnYWluIGZyb20gc3RhcnQgdG8g
dGhlIDFzdCBjYW5jZWwuCi0gICAgICAgIC8vIGcyOiBFeHBlY3RlZCBnYWluIGZyb20gMXN0IGNh
bmNlbCB0byB0aGUgMm5kIGNhbmNlbC4KLSAgICAgICAgLy8gZzM6IEV4cGVjdGVkIGdhaW4gZnJv
bSB0aGUgMm5kIGNhbmNlbCB0byB0aGUgZW5kLgotICAgICAgICBjb25zdCBnMCA9IGNvbnRleHQu
Y3JlYXRlR2FpbigpOwotICAgICAgICBjb25zdCBnMSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOwot
ICAgICAgICBjb25zdCBnMiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOwotICAgICAgICBjb25zdCBn
MyA9IGNvbnRleHQuY3JlYXRlR2FpbigpOwotICAgICAgICBjb25zdCB2MCA9IDE7Ci0gICAgICAg
IGNvbnN0IHQwID0gMC4wMTsKLQotICAgICAgICBjb25zdCBjYW5jZWxUaW1lMSA9IHJlbmRlckR1
cmF0aW9uICogMC41OwotICAgICAgICBjb25zdCBjYW5jZWxUaW1lMiA9IHJlbmRlckR1cmF0aW9u
ICogMC43NTsKLQotICAgICAgICAvLyBSdW4gdGVzdGVyRnVuY3Rpb24gdG8gZ2VuZXJhdGUgdGhl
IDFzdCByYW1wLgotICAgICAgICBjb25zdCB7Ci0gICAgICAgICAgZXhwZWN0ZWRDb25zdGFudCwg
YXV0b01lc3NhZ2UsIHN1bW1hcnlNZXNzYWdlfSA9Ci0gICAgICAgICAgICB0ZXN0ZXJGdW5jdGlv
bihbZzAsIGcxLCBnMl0sIHYwLCB0MCwgY2FuY2VsVGltZTEpOwotCi0gICAgICAgIC8vIDFzdCBj
YW5jZWwsIGNhbmNlbGxpbmcgdGhlIDFzdCByYW1wLgotICAgICAgICBnMC5nYWluLmNhbmNlbEFu
ZEhvbGRBdFRpbWUoY2FuY2VsVGltZTEpOwotCi0gICAgICAgIC8vIFJ1biBwb3N0Q2FuY2VsVGVz
dCB0byBnZW5lcmF0ZSB0aGUgMm5kIHJhbXAuCi0gICAgICAgIGNvbnN0IHsKLSAgICAgICAgICBj
b25zdGFudEVuZFRpbWUsIG1lc3NhZ2UsIGVycm9yVGhyZXNob2xkID0gMCwgZXhwZWN0ZWRDb25z
dGFudDJ9ID0KLSAgICAgICAgICAgIHBvc3RDYW5jZWxUZXN0KAotICAgICAgICAgICAgICBbZzAs
IGcxLCBnMl0sIGNhbmNlbFRpbWUxLCBleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lMik7Ci0K
LSAgICAgICAgLy8gMm5kIGNhbmNlbCwgY2FuY2VsbGluZyB0aGUgMm5kIHJhbXAuCi0gICAgICAg
IGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShjYW5jZWxUaW1lMik7Ci0KLSAgICAgICAgLy8g
UnVuIHBvc3RDYW5jZWxUZXN0MiB0byBnZW5lcmF0ZSB0aGUgM3JkIHJhbXAuCi0gICAgICAgIGNv
bnN0IHtjb25zdGFudEVuZFRpbWUyLCBtZXNzYWdlMn0gPQotICAgICAgICAgIHBvc3RDYW5jZWxU
ZXN0MihbZzAsIGcxLCBnMiwgZzNdLCBjYW5jZWxUaW1lMiwgZXhwZWN0ZWRDb25zdGFudDIpOwot
Ci0gICAgICAgIC8vIENvbm5lY3QgZXZlcnl0aGluZyB0b2dldGhlcgotICAgICAgICBzcmMuY29u
bmVjdChnMCk7Ci0gICAgICAgIHNyYy5jb25uZWN0KGcxKTsKLSAgICAgICAgc3JjLmNvbm5lY3Qo
ZzIpOwotICAgICAgICBzcmMuY29ubmVjdChnMyk7Ci0gICAgICAgIGNvbnN0IG1lcmdlciA9IGNv
bnRleHQuY3JlYXRlQ2hhbm5lbE1lcmdlcig0KTsKLSAgICAgICAgZzAuY29ubmVjdChtZXJnZXIs
IDAsIDApOwotICAgICAgICBnMS5jb25uZWN0KG1lcmdlciwgMCwgMSk7Ci0gICAgICAgIGcyLmNv
bm5lY3QobWVyZ2VyLCAwLCAyKTsKLSAgICAgICAgZzMuY29ubmVjdChtZXJnZXIsIDAsIDMpOwot
ICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKLQotICAgICAgICAv
LyBHbyEKLSAgICAgICAgc3JjLnN0YXJ0KCk7Ci0KLSAgICAgICAgcmV0dXJuIGNvbnRleHQuc3Rh
cnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uIChidWZmZXIpIHsKLSAgICAgICAgICBjb25zdCBh
Y3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICAgICAgY29uc3QgZXhwZWN0
ZWQxID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOwotICAgICAgICAgIGNvbnN0IGV4cGVjdGVk
MiA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgyKTsKLSAgICAgICAgICBjb25zdCBleHBlY3RlZDMg
PSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMyk7Ci0KLSAgICAgICAgICBjb25zdCBjYW5jZWxGcmFt
ZTEgPSBNYXRoLmNlaWwoY2FuY2VsVGltZTEgKiBzYW1wbGVSYXRlKTsKLSAgICAgICAgICBjb25z
dCBjYW5jZWxGcmFtZTIgPSBNYXRoLmNlaWwoY2FuY2VsVGltZTIgKiBzYW1wbGVSYXRlKTsKLQot
ICAgICAgICAgIGNvbnN0IGNvbnN0YW50RW5kRnJhbWUxID0gTWF0aC5jZWlsKGNvbnN0YW50RW5k
VGltZSAqIHNhbXBsZVJhdGUpOwotICAgICAgICAgIGNvbnN0IGNvbnN0YW50RW5kRnJhbWUyID0g
TWF0aC5jZWlsKGNvbnN0YW50RW5kVGltZTIgKiBzYW1wbGVSYXRlKTsKLQotICAgICAgICAgIGNv
bnN0IGFjdHVhbFRhaWwxID0gYWN0dWFsLnNsaWNlKGNhbmNlbEZyYW1lMSwgY29uc3RhbnRFbmRG
cmFtZTEpOwotICAgICAgICAgIGNvbnN0IGFjdHVhbFRhaWwyID0gYWN0dWFsLnNsaWNlKGNhbmNl
bEZyYW1lMiwgY29uc3RhbnRFbmRGcmFtZTIpOwotCi0gICAgICAgICAgY29uc3QgYWN0dWFsQ29u
c3RhbnQxID0gYWN0dWFsW2NhbmNlbEZyYW1lMV07Ci0gICAgICAgICAgY29uc3QgYWN0dWFsQ29u
c3RhbnQyID0gYWN0dWFsW2NhbmNlbEZyYW1lMl07Ci0KLSAgICAgICAgICAvLyBWZXJpZnkgZmly
c3Qgc2VjdGlvbiBjdXJ2ZQotICAgICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgIGFjdHVhbC5z
bGljZSgwLCBjYW5jZWxGcmFtZTEpLAotICAgICAgICAgICAgYXV0b01lc3NhZ2UgKyAnIHVwIHRv
IHRpbWUgJyArIGNhbmNlbFRpbWUxKQotICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAotICAg
ICAgICAgICAgICBleHBlY3RlZDEuc2xpY2UoMCwgY2FuY2VsRnJhbWUxKSwKLSAgICAgICAgICAg
ICAge2Fic29sdXRlVGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLmN1cnZlVGhyZXNob2xkfSk7
Ci0KLSAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBhIHZhbHVlIHdhcyBoZWxkIGFmdGVyIDFzdCBj
YW5jZWwKLSAgICAgICAgICBzaG91bGQoCi0gICAgICAgICAgICBhY3R1YWxUYWlsMSwKLSAgICAg
ICAgICAgICdDYW5jZWxsaW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQgdGltZSAnICsgY2FuY2Vs
VGltZTEpCi0gICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQxKTsK
LQotICAgICAgICAgIC8vIFZlcmlmeSB0aGF0IGhlbGQgdmFsdWUgYWZ0ZXIgMXN0IGNhbmNlbCB3
YXMgY29ycmVjdAotICAgICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgIGFjdHVhbENvbnN0YW50
MSwKLSAgICAgICAgICAgICdFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAnICsgYXV0b01l
c3NhZ2UgKyAnIGF0IHRpbWUgJyArCi0gICAgICAgICAgICBjYW5jZWxUaW1lMSkKLSAgICAgICAg
ICAgIC5iZUNsb3NlVG8oCi0gICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQsCi0gICAgICAg
ICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9wdGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKLQot
ICAgICAgICAgIC8vIFZlcmlmeSBtaWRkbGUgc2VjdGlvbiBjdXJ2ZQotICAgICAgICAgIHNob3Vs
ZChhY3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZTEsIGNhbmNlbEZyYW1lMiksIG1lc3NhZ2Up
Ci0gICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCi0gICAgICAgICAgICAgIGV4cGVjdGVkMi5z
bGljZShjb25zdGFudEVuZEZyYW1lMSwgY2FuY2VsRnJhbWUyKSwKLSAgICAgICAgICAgICAge2Fi
c29sdXRlVGhyZXNob2xkOiBlcnJvclRocmVzaG9sZH0pOwotCi0gICAgICAgICAgLy8gVmVyaWZ5
IHRoYXQgYSB2YWx1ZSB3YXMgaGVsZCBhZnRlciAybmQgY2FuY2VsCi0gICAgICAgICAgc2hvdWxk
KAotICAgICAgICAgICAgYWN0dWFsVGFpbDIsCi0gICAgICAgICAgICAnQ2FuY2VsbGluZyAnICsg
bWVzc2FnZSArICcgYXQgdGltZSAnICsgY2FuY2VsVGltZTIpCi0gICAgICAgICAgICAuYmVDb25z
dGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQyKTsKLQotICAgICAgICAgIC8vIFZlcmlmeSB0aGF0
IGhlbGQgdmFsdWUgYWZ0ZXIgMm5kIGNhbmNlbCB3YXMgY29ycmVjdAotICAgICAgICAgIHNob3Vs
ZCgKLSAgICAgICAgICAgIGFjdHVhbENvbnN0YW50MiwKLSAgICAgICAgICAgICdFeHBlY3RlZCB2
YWx1ZSBmb3IgY2FuY2VsbGluZyAnICsgbWVzc2FnZSArICcgYXQgdGltZSAnICsKLSAgICAgICAg
ICAgIGNhbmNlbFRpbWUyKQotICAgICAgICAgICAgLmJlQ2xvc2VUbygKLSAgICAgICAgICAgICAg
ZXhwZWN0ZWRDb25zdGFudDIsCi0gICAgICAgICAgICAgIHt0aHJlc2hvbGQ6IHRocmVzaG9sZE9w
dGlvbnMudmFsdWVUaHJlc2hvbGR9KTsKLQotICAgICAgICAgIC8vIFZlcmlmeSBlbmQgc2VjdGlv
biBjdXJ2ZQotICAgICAgICAgIHNob3VsZChhY3R1YWwuc2xpY2UoY29uc3RhbnRFbmRGcmFtZTIp
LCBtZXNzYWdlMikKLSAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJheSgKLSAgICAgICAgICAgICAg
ZXhwZWN0ZWQzLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUyKSwKLSAgICAgICAgICAgICAge2Fic29s
dXRlVGhyZXNob2xkOiBlcnJvclRocmVzaG9sZCB8fCAwfSk7Ci0gICAgICAgIH0pOwotICAgICAg
fQotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tZXhwb25lbnRpYWxSYW1wVG9WYWx1
ZUF0VGltZS5odG1sCmluZGV4IDk2NWU4YzIwNTI1OTRkMzRhMThkNTY5YTdmYWQyMWY5YTk5Mjlm
YzAuLjgxNzk0MGU1MjE2ZmQ1ZTEyM2E5YjFjN2ZkYTdjMTRjOTE1YmRjMzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0
VGltZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tZXhwb25lbnRp
YWxSYW1wVG9WYWx1ZUF0VGltZS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiAgIDxoZWFk
PgogICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLWxlZ2Fj
eS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiAgIDwvaGVhZD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9wYXJhbS1saW5lYXJSYW1wVG9WYWx1ZUF0VGltZS5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1saW5lYXJSYW1wVG9WYWx1ZUF0VGltZS5odG1sCmluZGV4
IDA2ZTY4MTZjYjljY2U1NzJjNGY3NmQ0NDNlNjdiOWQwOGE3YTEyZWYuLmI5MGI5ODA1N2Y4ZjUx
NGJkZGMzZTI5NTgwYzM4MGIyMzY3OGRmNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvcGFyYW0tbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lLmh0bWwKQEAg
LTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRp
by10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW9wYXJh
bS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaW9wYXJh
bS10ZXN0aW5nLWxlZ2FjeS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1ub21pbmFsLXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmMmRlMjBhYWNmY2YwOWNlOWIzMDNiYWE2
YjMzNGIzYjA2OGM1MzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1ub21pbmFsLXJhbmdlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMyOSArMCwwIEBACi0KLVBBU1MgIyBBVURJVCBU
QVNLIFJVTk5FUiBTVEFSVEVELiAKLVBBU1MgRXhlY3V0aW5nICJpbml0aWFsaXplIiAKLVBBU1Mg
RXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUdhaW4iIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUg
Y3JlYXRlRGVsYXkiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlQnVmZmVyU291cmNl
IiAKLVBBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZVN0ZXJlb1Bhbm5lciIgCi1QQVNTIEV4
ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVEeW5hbWljc0NvbXByZXNzb3IiIAotUEFTUyBFeGVjdXRp
bmcgIk9mZmxpbmUgY3JlYXRlQmlxdWFkRmlsdGVyIiAKLVBBU1MgRXhlY3V0aW5nICJPZmZsaW5l
IGNyZWF0ZU9zY2lsbGF0b3IiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlUGFubmVy
IiAKLVBBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUNvbnN0YW50U291cmNlIiAKLVBBU1Mg
RXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUJ1ZmZlciIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGlu
ZSBjcmVhdGVJSVJGaWx0ZXIiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlV2F2ZVNo
YXBlciIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVDb252b2x2ZXIiIAotUEFTUyBF
eGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlQW5hbHlzZXIiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxp
bmUgY3JlYXRlU2NyaXB0UHJvY2Vzc29yIiAKLVBBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0
ZVBlcmlvZGljV2F2ZSIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVDaGFubmVsU3Bs
aXR0ZXIiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlQ2hhbm5lbE1lcmdlciIgCi1Q
QVNTIEV4ZWN1dGluZyAiT25saW5lIGNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZSIgCi1QQVNTIEV4
ZWN1dGluZyAiT25saW5lIGNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24iIAotUEFTUyBFeGVj
dXRpbmcgIkF1ZGlvTGlzdGVuZXIiIAotUEFTUyBFeGVjdXRpbmcgInZlcmlmeVRlc3RzIiAKLVBB
U1MgRXhlY3V0aW5nICJhdXRvbWF0aW9uIiAKLVBBU1MgQXVkaXQgcmVwb3J0IAotUEFTUyA+IFtp
bml0aWFsaXplXSAgCi1QQVNTICAgQ3JlYXRlIG9mZmxpbmUgY29udGV4dCBmb3IgdGVzdHMgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAotUEFTUyAgIENyZWF0ZSBvbmxpbmUgY29udGV4dCBm
b3IgdGVzdHMgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAotUEFTUyA8IFtpbml0aWFsaXpl
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAotUEFTUyA+IFtP
ZmZsaW5lIGNyZWF0ZUdhaW5dICAKLVBBU1MgICBHYWluTm9kZS5nYWluLm1pblZhbHVlIGlzIGVx
dWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBHYWluTm9kZS5nYWluLm1h
eFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEdhaW5O
b2RlLmdhaW4ubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEdhaW5O
b2RlLmdhaW4ubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAg
IEdhaW5Ob2RlLmdhaW4ubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAg
IEdhaW5Ob2RlLmdhaW4ubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAot
UEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIEdhaW5Ob2RlIGFyZSBj
b3JyZWN0IAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUdhaW5dIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDcgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlRGVsYXldICAK
LVBBU1MgICBEZWxheU5vZGUuZGVsYXlUaW1lLm1pblZhbHVlIGlzIGVxdWFsIHRvIDAuIAotUEFT
UyAgIERlbGF5Tm9kZS5kZWxheVRpbWUubWF4VmFsdWUgaXMgZXF1YWwgdG8gMS41LiAKLVBBU1Mg
ICBEZWxheU5vZGUuZGVsYXlUaW1lLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAK
LVBBU1MgICBEZWxheU5vZGUuZGVsYXlUaW1lLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVh
bCB0byB0cnVlLiAKLVBBU1MgICBEZWxheU5vZGUuZGVsYXlUaW1lLm1heFZhbHVlID0gNDIgaXMg
bm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEZWxheU5vZGUuZGVsYXlUaW1lLm1heFZhbHVlIGlz
IHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgRGVsYXlOb2RlLmRlbGF5
VGltZS52YWx1ZSA9IC0xIGlzIGVxdWFsIHRvIDAuIAotUEFTUyAgIFNldCBEZWxheU5vZGUuZGVs
YXlUaW1lLnZhbHVlID0gNCBpcyBlcXVhbCB0byAxLjUuIAotUEFTUyAgIERlbGF5Tm9kZS5kZWxh
eVRpbWUgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVh
bCB0byB0cnVlLiAKLVBBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBE
ZWxheU5vZGUgYXJlIGNvcnJlY3QgCi1QQVNTIDwgW09mZmxpbmUgY3JlYXRlRGVsYXldIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEwIGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZsaW5l
IGNyZWF0ZUJ1ZmZlclNvdXJjZV0gIAotUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5wbGF5
YmFja1JhdGUubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAot
UEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5wbGF5YmFja1JhdGUubWF4VmFsdWUgaXMgZXF1
YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLnBsYXliYWNrUmF0ZS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNT
ICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnBsYXliYWNrUmF0ZS5taW5WYWx1ZSBpcyByZWFkLW9u
bHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnBsYXli
YWNrUmF0ZS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLnBsYXliYWNrUmF0ZS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1
YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmRldHVuZS5taW5WYWx1
ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmRldHVuZS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4
ODZlKzM4LiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuZGV0dW5lLm1pblZhbHVlID0g
NDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuZGV0
dW5lLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRp
b0J1ZmZlclNvdXJjZU5vZGUuZGV0dW5lLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQy
LiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuZGV0dW5lLm1heFZhbHVlIGlzIHJlYWQt
b25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9Q
YXJhbShzKSBvZiBBdWRpb0J1ZmZlclNvdXJjZU5vZGUgYXJlIGNvcnJlY3QgCi1QQVNTIDwgW09m
ZmxpbmUgY3JlYXRlQnVmZmVyU291cmNlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAx
MyBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVTdGVyZW9QYW5uZXJdICAKLVBB
U1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMS4gCi1QQVNT
ICAgU3RlcmVvUGFubmVyTm9kZS5wYW4ubWF4VmFsdWUgaXMgZXF1YWwgdG8gMS4gCi1QQVNTICAg
U3RlcmVvUGFubmVyTm9kZS5wYW4ubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAot
UEFTUyAgIFN0ZXJlb1Bhbm5lck5vZGUucGFuLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVh
bCB0byB0cnVlLiAKLVBBU1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5tYXhWYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgU3RlcmVvUGFubmVyTm9kZS5wYW4ubWF4VmFsdWUg
aXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFNldCBTdGVyZW9QYW5uZXJO
b2RlLnBhbi52YWx1ZSA9IC0zIGlzIGVxdWFsIHRvIC0xLiAKLVBBU1MgICBTZXQgU3RlcmVvUGFu
bmVyTm9kZS5wYW4udmFsdWUgPSAzIGlzIGVxdWFsIHRvIDEuIAotUEFTUyAgIFN0ZXJlb1Bhbm5l
ck5vZGUucGFuIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykg
b2YgU3RlcmVvUGFubmVyTm9kZSBhcmUgY29ycmVjdCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVT
dGVyZW9QYW5uZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEwIGFzc2VydGlvbnMp
IAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZUR5bmFtaWNzQ29tcHJlc3Nvcl0gIAotUEFTUyAgIER5
bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0xMDAu
IAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLm1heFZhbHVlIGlzIGVx
dWFsIHRvIDAuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLm1pblZh
bHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JO
b2RlLnRocmVzaG9sZC5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1Q
QVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQubWF4VmFsdWUgPSA0MiBpcyBu
b3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xk
Lm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgRHlu
YW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQudmFsdWUgPSAtMjAxIGlzIGVxdWFsIHRvIC0x
MDAuIAotUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZC52YWx1ZSA9
IDEgaXMgZXF1YWwgdG8gMC4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hv
bGQgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0
byB0cnVlLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUubWluVmFsdWUgaXMg
ZXF1YWwgdG8gMC4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1heFZhbHVl
IGlzIGVxdWFsIHRvIDQwLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUubWlu
VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUua25lZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNT
ICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFs
IHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUubWF4VmFsdWUgaXMg
cmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNz
b3JOb2RlLmtuZWUudmFsdWUgPSAtMSBpcyBlcXVhbCB0byAwLiAKLVBBU1MgICBTZXQgRHluYW1p
Y3NDb21wcmVzc29yTm9kZS5rbmVlLnZhbHVlID0gODEgaXMgZXF1YWwgdG8gNDAuIAotUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZSB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRo
ZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJl
c3Nvck5vZGUucmF0aW8ubWluVmFsdWUgaXMgZXF1YWwgdG8gMS4gCi1QQVNTICAgRHluYW1pY3ND
b21wcmVzc29yTm9kZS5yYXRpby5tYXhWYWx1ZSBpcyBlcXVhbCB0byAyMC4gCi1QQVNTICAgRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5yYXRpby5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0
Mi4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yYXRpby5taW5WYWx1ZSBpcyByZWFk
LW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5y
YXRpby5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgRHluYW1pY3ND
b21wcmVzc29yTm9kZS5yYXRpby5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCi1QQVNTICAgU2V0IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmF0aW8udmFsdWUgPSAxIGlz
IGVxdWFsIHRvIDEuIAotUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLnZh
bHVlID0gNDEgaXMgZXF1YWwgdG8gMjAuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
cmF0aW8gd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVh
bCB0byB0cnVlLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay5taW5WYWx1
ZSBpcyBlcXVhbCB0byAwLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay5t
YXhWYWx1ZSBpcyBlcXVhbCB0byAxLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0
dGFjay5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgRHluYW1pY3ND
b21wcmVzc29yTm9kZS5hdHRhY2subWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRy
dWUuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1heFZhbHVlID0gNDIg
aXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFj
ay5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgU2V0IER5
bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLnZhbHVlID0gLTEgaXMgZXF1YWwgdG8gMC4gCi1Q
QVNTICAgU2V0IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLnZhbHVlID0gMyBpcyBlcXVh
bCB0byAxLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjayB3YXMgY2xpcHBl
ZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAotUEFT
UyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAw
LiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJlbGVhc2UubWF4VmFsdWUgaXMgZXF1
YWwgdG8gMS4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlLm1pblZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LnJlbGVhc2UubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlLm1heFZhbHVl
IGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgRHluYW1pY3NDb21w
cmVzc29yTm9kZS5yZWxlYXNlLnZhbHVlID0gLTEgaXMgZXF1YWwgdG8gMC4gCi1QQVNTICAgU2V0
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS52YWx1ZSA9IDMgaXMgZXF1YWwgdG8gMS4g
Ci1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlIHdhcyBjbGlwcGVkIHRvIGxp
ZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgTm9t
aW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgRHluYW1pY3NDb21wcmVzc29yTm9kZSBh
cmUgY29ycmVjdCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVEeW5hbWljc0NvbXByZXNzb3JdIEFs
bCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQ2IGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZs
aW5lIGNyZWF0ZUJpcXVhZEZpbHRlcl0gIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJlcXVl
bmN5Lm1pblZhbHVlIGlzIGVxdWFsIHRvIDAuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJl
cXVlbmN5Lm1heFZhbHVlIGlzIGVxdWFsIHRvIDI0MDAwLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJO
b2RlLmZyZXF1ZW5jeS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAg
QmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFs
IHRvIHRydWUuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5Lm1heFZhbHVlID0g
NDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5j
eS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgU2V0IEJp
cXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5LnZhbHVlID0gLTEgaXMgZXF1YWwgdG8gMC4gCi1QQVNT
ICAgU2V0IEJpcXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5LnZhbHVlID0gNDgwMDEgaXMgZXF1YWwg
dG8gMjQwMDAuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5IHdhcyBjbGlwcGVk
IHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNT
ICAgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUubWluVmFsdWUgaXMgZXF1YWwgdG8gLTE1MzYwMC4g
Ci1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUubWF4VmFsdWUgaXMgZXF1YWwgdG8gMTUz
NjAwLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZS5taW5WYWx1ZSA9IDQyIGlzIG5v
dCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUubWluVmFsdWUg
aXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUu
ZGV0dW5lLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBCaXF1YWRG
aWx0ZXJOb2RlLmRldHVuZS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4g
Ci1QQVNTICAgU2V0IEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLnZhbHVlID0gLTMwNzIwMSBpcyBl
cXVhbCB0byAtMTUzNjAwLiAKLVBBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUudmFs
dWUgPSAzMDcyMDEgaXMgZXF1YWwgdG8gMTUzNjAwLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2Rl
LmRldHVuZSB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVx
dWFsIHRvIHRydWUuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuUS5taW5WYWx1ZSBpcyBlcXVh
bCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5R
Lm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEJp
cXVhZEZpbHRlck5vZGUuUS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNT
ICAgQmlxdWFkRmlsdGVyTm9kZS5RLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0
cnVlLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1
YWwgdG8gNDIuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuUS5tYXhWYWx1ZSBpcyByZWFkLW9u
bHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluLm1pblZh
bHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBCaXF1YWRG
aWx0ZXJOb2RlLmdhaW4ubWF4VmFsdWUgaXMgZXF1YWwgdG8gMTU0MS4yNzM2ODE2NDA2MjUuIAot
UEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fpbi5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0
byA0Mi4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluLm1pblZhbHVlIGlzIHJlYWQtb25s
eSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdhaW4ubWF4VmFs
dWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fp
bi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgU2V0IEJp
cXVhZEZpbHRlck5vZGUuZ2Fpbi52YWx1ZSA9IDMwODMuNTQ3MzYzMjgxMjUgaXMgZXF1YWwgdG8g
MTU0MS4yNzM2ODE2NDA2MjUuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2FpbiB3YXMgY2xp
cHBlZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAot
UEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIEJpcXVhZEZpbHRlck5v
ZGUgYXJlIGNvcnJlY3QgCi1QQVNTIDwgW09mZmxpbmUgY3JlYXRlQmlxdWFkRmlsdGVyXSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzMyBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGlu
ZSBjcmVhdGVPc2NpbGxhdG9yXSAgCi1QQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVlbmN5Lm1p
blZhbHVlIGlzIGVxdWFsIHRvIC0yNDAwMC4gCi1QQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVl
bmN5Lm1heFZhbHVlIGlzIGVxdWFsIHRvIDI0MDAwLiAKLVBBU1MgICBPc2NpbGxhdG9yTm9kZS5m
cmVxdWVuY3kubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIE9zY2ls
bGF0b3JOb2RlLmZyZXF1ZW5jeS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCi1QQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVlbmN5Lm1heFZhbHVlID0gNDIgaXMgbm90
IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBPc2NpbGxhdG9yTm9kZS5mcmVxdWVuY3kubWF4VmFsdWUg
aXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFNldCBPc2NpbGxhdG9yTm9k
ZS5mcmVxdWVuY3kudmFsdWUgPSAtNDgwMDEgaXMgZXF1YWwgdG8gLTI0MDAwLiAKLVBBU1MgICBT
ZXQgT3NjaWxsYXRvck5vZGUuZnJlcXVlbmN5LnZhbHVlID0gNDgwMDEgaXMgZXF1YWwgdG8gMjQw
MDAuIAotUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeSB3YXMgY2xpcHBlZCB0byBsaWUg
d2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIE9zY2ls
bGF0b3JOb2RlLmRldHVuZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMTUzNjAwLiAKLVBBU1MgICBP
c2NpbGxhdG9yTm9kZS5kZXR1bmUubWF4VmFsdWUgaXMgZXF1YWwgdG8gMTUzNjAwLiAKLVBBU1Mg
ICBPc2NpbGxhdG9yTm9kZS5kZXR1bmUubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAotUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgT3NjaWxsYXRvck5vZGUuZGV0dW5lLm1heFZhbHVlID0g
NDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBPc2NpbGxhdG9yTm9kZS5kZXR1bmUubWF4
VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFNldCBPc2NpbGxh
dG9yTm9kZS5kZXR1bmUudmFsdWUgPSAtMzA3MjAxIGlzIGVxdWFsIHRvIC0xNTM2MDAuIAotUEFT
UyAgIFNldCBPc2NpbGxhdG9yTm9kZS5kZXR1bmUudmFsdWUgPSAzMDcyMDEgaXMgZXF1YWwgdG8g
MTUzNjAwLiAKLVBBU1MgICBPc2NpbGxhdG9yTm9kZS5kZXR1bmUgd2FzIGNsaXBwZWQgdG8gbGll
IHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBOb21p
bmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBPc2NpbGxhdG9yTm9kZSBhcmUgY29ycmVj
dCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVPc2NpbGxhdG9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNz
ZWQuICh0b3RhbCAxOSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVQYW5uZXJd
ICAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWC5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40
MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblgubWF4VmFs
dWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgUGFubmVyTm9k
ZS5wb3NpdGlvblgubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIFBh
bm5lck5vZGUucG9zaXRpb25YLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVl
LiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWC5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblgubWF4VmFsdWUgaXMgcmVhZC1v
bmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1pblZh
bHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBQYW5uZXJO
b2RlLnBvc2l0aW9uWS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4
LiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblkubWluVmFsdWUgaXMgcmVhZC1v
bmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1heFZh
bHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9u
WS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgUGFubmVy
Tm9kZS5wb3NpdGlvbloubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUr
MzguIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25aLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMu
NDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25aLm1pblZh
bHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9u
Wi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgUGFubmVy
Tm9kZS5wb3NpdGlvbloubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAg
IFBhbm5lck5vZGUucG9zaXRpb25aLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0
cnVlLiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5taW5WYWx1ZSBpcyBlcXVhbCB0
byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlv
blgubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAg
UGFubmVyTm9kZS5vcmllbnRhdGlvblgubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAotUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25YLm1pblZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5tYXhWYWx1
ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlv
blgubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFBhbm5l
ck5vZGUub3JpZW50YXRpb25ZLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4
ODZlKzM4LiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWS5tYXhWYWx1ZSBpcyBlcXVh
bCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0
aW9uWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9k
ZS5vcmllbnRhdGlvblkubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAot
UEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25ZLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFs
IHRvIDQyLiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWS5tYXhWYWx1ZSBpcyByZWFk
LW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblou
bWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIFBh
bm5lck5vZGUub3JpZW50YXRpb25aLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1
Mjg4NmUrMzguIAotUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25aLm1pblZhbHVlID0gNDIg
aXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWi5taW5W
YWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgUGFubmVyTm9kZS5v
cmllbnRhdGlvbloubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIFBh
bm5lck5vZGUub3JpZW50YXRpb25aLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0
cnVlLiAKLVBBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBQYW5uZXJO
b2RlIGFyZSBjb3JyZWN0IAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVBhbm5lcl0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMzcgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3Jl
YXRlQ29uc3RhbnRTb3VyY2VdICAKLVBBU1MgICBDb25zdGFudFNvdXJjZU5vZGUub2Zmc2V0Lm1p
blZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBDb25z
dGFudFNvdXJjZU5vZGUub2Zmc2V0Lm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1
Mjg4NmUrMzguIAotUEFTUyAgIENvbnN0YW50U291cmNlTm9kZS5vZmZzZXQubWluVmFsdWUgPSA0
MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIENvbnN0YW50U291cmNlTm9kZS5vZmZzZXQu
bWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIENvbnN0YW50
U291cmNlTm9kZS5vZmZzZXQubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFT
UyAgIENvbnN0YW50U291cmNlTm9kZS5vZmZzZXQubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVx
dWFsIHRvIHRydWUuIAotUEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9m
IENvbnN0YW50U291cmNlTm9kZSBhcmUgY29ycmVjdCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVD
b25zdGFudFNvdXJjZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNyBhc3NlcnRpb25z
KSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVCdWZmZXJdICAKLVBBU1MgICBBdWRpb0J1ZmZlciBo
YXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCi1QQVNTIDwgW09mZmxpbmUgY3JlYXRlQnVm
ZmVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+
IFtPZmZsaW5lIGNyZWF0ZUlJUkZpbHRlcl0gIAotUEFTUyAgIElJUkZpbHRlck5vZGUgaGFzIG5v
IEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUlJUkZpbHRl
cl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBb
T2ZmbGluZSBjcmVhdGVXYXZlU2hhcGVyXSAgCi1QQVNTICAgV2F2ZVNoYXBlck5vZGUgaGFzIG5v
IEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVdhdmVTaGFw
ZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCi1QQVNTID4g
W09mZmxpbmUgY3JlYXRlQ29udm9sdmVyXSAgCi1QQVNTICAgQ29udm9sdmVyTm9kZSBoYXMgbm8g
QXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCi1QQVNTIDwgW09mZmxpbmUgY3JlYXRlQ29udm9sdmVy
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtP
ZmZsaW5lIGNyZWF0ZUFuYWx5c2VyXSAgCi1QQVNTICAgQW5hbHlzZXJOb2RlIGhhcyBubyBBdWRp
b1BhcmFtcyBhcyBleHBlY3RlZCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVBbmFseXNlcl0gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGlu
ZSBjcmVhdGVTY3JpcHRQcm9jZXNzb3JdICAKLVBBU1MgICBTY3JpcHRQcm9jZXNzb3JOb2RlIGhh
cyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVTY3Jp
cHRQcm9jZXNzb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykg
Ci1QQVNTID4gW09mZmxpbmUgY3JlYXRlUGVyaW9kaWNXYXZlXSAgCi1QQVNTICAgUGVyaW9kaWNX
YXZlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVh
dGVQZXJpb2RpY1dhdmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9u
cykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlQ2hhbm5lbFNwbGl0dGVyXSAgCi1QQVNTICAgQ2hh
bm5lbFNwbGl0dGVyTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCi1QQVNTIDwg
W09mZmxpbmUgY3JlYXRlQ2hhbm5lbFNwbGl0dGVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0
b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZUNoYW5uZWxNZXJnZXJd
ICAKLVBBU1MgICBDaGFubmVsTWVyZ2VyTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0
ZWQgCi1QQVNTIDwgW09mZmxpbmUgY3JlYXRlQ2hhbm5lbE1lcmdlcl0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT25saW5lIGNyZWF0ZU1lZGlh
RWxlbWVudFNvdXJjZV0gIAotUEFTUyAgIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZSBoYXMg
bm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCi1QQVNTIDwgW09ubGluZSBjcmVhdGVNZWRpYUVs
ZW1lbnRTb3VyY2VdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykg
Ci1QQVNTID4gW09ubGluZSBjcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uXSAgCi1QQVNTICAg
TWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhw
ZWN0ZWQgCi1QQVNTIDwgW09ubGluZSBjcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uXSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtBdWRpb0xp
c3RlbmVyXSAgCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWluVmFsdWUgaXMgZXF1
YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9z
aXRpb25YLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFT
UyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25YLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRv
IDQyLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWC5taW5WYWx1ZSBpcyByZWFkLW9u
bHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWF4
VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9z
aXRpb25YLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBB
dWRpb0xpc3RlbmVyLnBvc2l0aW9uWS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYz
ODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblkubWF4VmFsdWUgaXMg
ZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5w
b3NpdGlvblkubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlv
TGlzdGVuZXIucG9zaXRpb25ZLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVl
LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBl
cXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblkubWF4VmFsdWUgaXMg
cmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRp
b25aLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1Mg
ICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWi5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2
NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWi5taW5WYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblou
bWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlz
dGVuZXIucG9zaXRpb25aLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1Mg
ICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwg
dG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWC5taW5WYWx1ZSBpcyBlcXVh
bCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3
YXJkWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1Mg
ICBBdWRpb0xpc3RlbmVyLmZvcndhcmRYLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQy
LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRYLm1pblZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRYLm1heFZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRY
Lm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRpb0xp
c3RlbmVyLmZvcndhcmRZLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRZLm1heFZhbHVlIGlzIGVxdWFsIHRv
IDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFku
bWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIu
Zm9yd2FyZFkubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAg
IEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFkubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFkubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlz
IGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFoubWluVmFsdWUg
aXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVu
ZXIuZm9yd2FyZFoubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4g
Ci1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWi5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWi5taW5WYWx1ZSBpcyByZWFk
LW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWi5t
YXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5m
b3J3YXJkWi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAg
QXVkaW9MaXN0ZW5lci51cFgubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4
NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBYLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMu
NDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBYLm1pblZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5taW5W
YWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5l
ci51cFgubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlz
dGVuZXIudXBYLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1Mg
ICBBdWRpb0xpc3RlbmVyLnVwWS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUy
ODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFkubWF4VmFsdWUgaXMgZXF1YWwgdG8g
My40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFkubWluVmFs
dWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1p
blZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRpb0xpc3Rl
bmVyLnVwWS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9M
aXN0ZW5lci51cFkubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFT
UyAgIEF1ZGlvTGlzdGVuZXIudXBaLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4
NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWi5tYXhWYWx1ZSBpcyBlcXVhbCB0
byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWi5taW5W
YWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFou
bWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlz
dGVuZXIudXBaLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRp
b0xpc3RlbmVyLnVwWi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1Q
QVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgQXVkaW9MaXN0ZW5lciBh
cmUgY29ycmVjdCAKLVBBU1MgPCBbQXVkaW9MaXN0ZW5lcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgNTUgYXNzZXJ0aW9ucykgCi1QQVNTID4gW3ZlcmlmeVRlc3RzXSAgCi1QQVNTICAg
TnVtYmVyIG9mIG5vZGVzIG5vdCB0ZXN0ZWQgOiAwIAotUEFTUyA8IFt2ZXJpZnlUZXN0c10gQWxs
IGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbYXV0b21h
dGlvbl0gIAotUEFTUyAgIFRlc3QgYXV0b21hdGlvbnMgKGNoZWNrIGNvbnNvbGUgbG9ncykgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAotUEFTUyA8IFthdXRvbWF0aW9uXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIEZJTklTSEVEOiAyNCB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1ub21pbmFsLXJhbmdlLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2M0MDljMzgxMWI4MDQ2NGRiZWFhZTVhODkwNjFjNDVkOGZl
YTk4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ5NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4K
LSAgICA8dGl0bGU+Ci0gICAgICBUZXN0IEF1ZGlvUGFyYW0gTm9taW5hbCBSYW5nZSBWYWx1ZXMK
LSAgICA8L3RpdGxlPgotICAgIDxzY3JpcHQgc3JjPSIuLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KLSAgPC9oZWFkPgotICA8Ym9k
eT4KLSAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KLSAgICAgIC8vIFNvbWUgYXJi
aXRyYXJ5IHNhbXBsZSByYXRlIGZvciB0aGUgb2ZmbGluZSBjb250ZXh0LgotICAgICAgbGV0IHNh
bXBsZVJhdGUgPSA0ODAwMDsKLQotICAgICAgLy8gVGhlIGFjdHVhbCBjb250ZXh0cyB0byB1c2Uu
ICBHZW5lcmFsbHkgdXNlIHRoZSBvZmZsaW5lIGNvbnRleHQgZm9yCi0gICAgICAvLyB0ZXN0aW5n
IGV4Y2VwdCBmb3IgdGhlIG1lZGlhIG5vZGVzIHdoaWNoIHJlcXVpcmUgYW4gQXVkaW9Db250ZXh0
LgotICAgICAgbGV0IG9mZmxpbmVDb250ZXh0OwotICAgICAgbGV0IGF1ZGlvQ29udGV4dDsKLQot
ICAgICAgLy8gVGhlIHNldCBvZiBhbGwgbWV0aG9kcyB0aGF0IHdlJ3ZlIHRlc3RlZCBmb3IgdmVy
aWZ5aW5nIHRoYXQgd2UgdGVzdGVkCi0gICAgICAvLyBhbGwgb2YgdGhlIG5lY2Vzc2FyeSBvYmpl
Y3RzLgotICAgICAgbGV0IHRlc3RlZE1ldGhvZHMgPSBuZXcgU2V0KCk7Ci0KLSAgICAgIC8vIFRo
ZSBtb3N0IHBvc2l0aXZlIHNpbmdsZSBmbG9hdCB2YWx1ZSAodGhlIHZhbHVlIGp1c3QgYmVmb3Jl
IGluZmluaXR5KS4KLSAgICAgIC8vIEJlIGNhcmVmdWwgd2hlbiBjaGFuZ2luZyB0aGlzIHZhbHVl
ISAgSmF2YXNjcmlwdCBvbmx5IHVzZXMgZG91YmxlCi0gICAgICAvLyBmbG9hdHMsIHNvIHRoZSB2
YWx1ZSBoZXJlIHNob3VsZCBiZSB0aGUgbWF4IHNpbmdsZS1mbG9hdCB2YWx1ZSwKLSAgICAgIC8v
IGNvbnZlcnRlZCBkaXJlY3RseSB0byBhIGRvdWJsZS1mbG9hdCB2YWx1ZS4gIFRoaXMgYWxzbyBk
ZXBlbmRzIG9uCi0gICAgICAvLyBKYXZhc2NyaXB0IHJlYWRpbmcgdGhpcyB2YWx1ZSBhbmQgcHJv
ZHVjaW5nIHRoZSBkZXNpcmVkIGRvdWJsZS1mbG9hdAotICAgICAgLy8gdmFsdWUgY29ycmVjdGx5
LgotICAgICAgbGV0IG1vc3RQb3NpdGl2ZUZsb2F0ID0gMy40MDI4MjM0NjYzODUyODg2ZTM4Owot
Ci0gICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7Ci0KLSAgICAgIC8v
IEFycmF5IGRlc2NyaWJpbmcgdGhlIHRlc3RzIHRoYXQgc2hvdWxkIGJlIHJ1bi4gIHx0ZXN0T2Zm
bGluZUNvbmZpZ3N8IGlzCi0gICAgICAvLyBmb3IgdGVzdHMgdGhhdCBjYW4gdXNlIGFuIG9mZmxp
bmUgY29udGV4dC4gfHRlc3RPbmxpbmVDb25maWdzfCBpcyBmb3IKLSAgICAgIC8vIHRlc3RzIHRo
YXQgbmVlZCB0byB1c2UgYW4gb25saW5lIGNvbnRleHQuICBPZmZsaW5lIGNvbnRleHRzIGFyZQot
ICAgICAgLy8gcHJlZmVycmVkIHdoZW4gcG9zc2libGUuCi0gICAgICBsZXQgdGVzdE9mZmxpbmVD
b25maWdzID0gWwotICAgICAgICB7Ci0gICAgICAgICAgLy8gVGhlIG5hbWUgb2YgdGhlIG1ldGhv
ZCB0byBjcmVhdGUgdGhlIHBhcnRpY3VsYXIgbm9kZSB0byBiZSB0ZXN0ZWQuCi0gICAgICAgICAg
Y3JlYXRvcjogJ2NyZWF0ZUdhaW4nLAotCi0gICAgICAgICAgLy8gQW55IGFyZ3MgdG8gcGFzcyB0
byB0aGUgY3JlYXRvciBmdW5jdGlvbi4KLSAgICAgICAgICBhcmdzOiBbXSwKLQotICAgICAgICAg
IC8vIFRoZSBtaW4vbWF4IGxpbWl0cyBmb3IgZWFjaCBBdWRpb1BhcmFtIG9mIHRoZSBub2RlLiAg
VGhpcyBpcyBhCi0gICAgICAgICAgLy8gZGljdGlvbmFyeSB3aG9zZSBrZXlzIGFyZQotICAgICAg
ICAgIC8vIHRoZSBuYW1lcyBvZiBlYWNoIEF1ZGlvUGFyYW0gaW4gdGhlIG5vZGUuICBEb24ndCBk
ZWZpbmUgdGhpcyBpZiB0aGUKLSAgICAgICAgICAvLyBub2RlIGRvZXNuJ3QgaGF2ZSBhbnkKLSAg
ICAgICAgICAvLyBBdWRpb1BhcmFtIGF0dHJpYnV0ZXMuCi0gICAgICAgICAgbGltaXRzOiB7Ci0g
ICAgICAgICAgICBnYWluOiB7Ci0gICAgICAgICAgICAgIC8vIFRoZSBleHBlY3RlZCBtaW4gYW5k
IG1heCB2YWx1ZXMgZm9yIHRoaXMgQXVkaW9QYXJhbS4KLSAgICAgICAgICAgICAgbWluVmFsdWU6
IC1tb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2
ZUZsb2F0Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZURlbGF5JywKLSAgICAgICAgICAvLyBKdXN0IHNw
ZWNpZnkgYSBub24tZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG1heGltdW0gZGVsYXkgc28gd2UgY2Fu
Ci0gICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBsaW1pdHMgYXJlCi0gICAgICAgICAgLy8gc2V0
IGNvcnJlY3RseS4KLSAgICAgICAgICBhcmdzOiBbMS41XSwKLSAgICAgICAgICBsaW1pdHM6IHtk
ZWxheVRpbWU6IHttaW5WYWx1ZTogMCwgbWF4VmFsdWU6IDEuNX19Ci0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlQnVmZmVyU291cmNlJywKLSAgICAgICAg
ICBhcmdzOiBbXSwKLSAgICAgICAgICBsaW1pdHM6IHsKLSAgICAgICAgICAgIHBsYXliYWNrUmF0
ZToKLSAgICAgICAgICAgICAgICB7bWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwgbWF4VmFs
dWU6IG1vc3RQb3NpdGl2ZUZsb2F0fSwKLSAgICAgICAgICAgIGRldHVuZToge21pblZhbHVlOiAt
bW9zdFBvc2l0aXZlRmxvYXQsIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdH0KLSAgICAgICAg
ICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlU3Rl
cmVvUGFubmVyJywKLSAgICAgICAgICBhcmdzOiBbXSwKLSAgICAgICAgICBsaW1pdHM6IHtwYW46
IHttaW5WYWx1ZTogLTEsIG1heFZhbHVlOiAxfX0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgIGNyZWF0b3I6ICdjcmVhdGVEeW5hbWljc0NvbXByZXNzb3InLAotICAgICAgICAgIGFy
Z3M6IFtdLAotICAgICAgICAgIC8vIERvIG5vdCBzZXQgbGltaXRzIGZvciByZWR1Y3Rpb247ICBp
dCdzIGN1cnJlbnRseSBhbiBBdWRpb1BhcmFtIGJ1dAotICAgICAgICAgIC8vIHNob3VsZCBiZSBh
IGZsb2F0LgotICAgICAgICAgIC8vIFNvIGxldCB0aGUgdGVzdCBmYWlsIGZvciByZWR1Y3Rpb24u
ICBXaGVuIHJlZHVjdGlvbiBpcyBjaGFuZ2VkLAotICAgICAgICAgIC8vIHRoaXMgdGVzdCB3aWxs
IHRoZW4KLSAgICAgICAgICAvLyBjb3JyZWN0bHkgcGFzcy4KLSAgICAgICAgICBsaW1pdHM6IHsK
LSAgICAgICAgICAgIHRocmVzaG9sZDoge21pblZhbHVlOiAtMTAwLCBtYXhWYWx1ZTogMH0sCi0g
ICAgICAgICAgICBrbmVlOiB7bWluVmFsdWU6IDAsIG1heFZhbHVlOiA0MH0sCi0gICAgICAgICAg
ICByYXRpbzoge21pblZhbHVlOiAxLCBtYXhWYWx1ZTogMjB9LAotICAgICAgICAgICAgYXR0YWNr
OiB7bWluVmFsdWU6IDAsIG1heFZhbHVlOiAxfSwKLSAgICAgICAgICAgIHJlbGVhc2U6IHttaW5W
YWx1ZTogMCwgbWF4VmFsdWU6IDF9Ci0gICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUJpcXVhZEZpbHRlcicsCi0gICAgICAgICAgYXJn
czogW10sCi0gICAgICAgICAgbGltaXRzOiB7Ci0gICAgICAgICAgICBnYWluOiB7Ci0gICAgICAg
ICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICAgIC8vIFRo
aXMgY29tcGxpY2F0ZWQgZXhwcmVzc2lvbiBpcyB1c2VkIHRvIGdldCBhbGwgdGhlIGFyaXRobWV0
aWMKLSAgICAgICAgICAgICAgLy8gdG8gcm91bmQgdG8gdGhlIGNvcnJlY3Qgc2luZ2xlLXByZWNp
c2lvbiBmbG9hdCB2YWx1ZSBmb3IgdGhlCi0gICAgICAgICAgICAgIC8vIGRlc2lyZWQgbWF4LiAg
VGhpcyBhbHNvIGFzc3VtZXMgdGhhdCB0aGUgaW1wbGljYXRpb24gY29tcHV0ZXMKLSAgICAgICAg
ICAgICAgLy8gdGhlIGxpbWl0IGFzIDQwICogbG9nMTBmKHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjptYXgoKSkuCi0gICAgICAgICAgICAgIG1heFZhbHVlOgotICAgICAgICAgICAgICAgICAg
TWF0aC5mcm91bmQoNDAgKiBNYXRoLmZyb3VuZChNYXRoLmxvZzEwKG1vc3RQb3NpdGl2ZUZsb2F0
KSkpCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgUToge21pblZhbHVlOiAtbW9zdFBvc2l0
aXZlRmxvYXQsIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdH0sCi0gICAgICAgICAgICBmcmVx
dWVuY3k6IHttaW5WYWx1ZTogMCwgbWF4VmFsdWU6IHNhbXBsZVJhdGUgLyAyfSwKLSAgICAgICAg
ICAgIGRldHVuZTogewotICAgICAgICAgICAgICBtaW5WYWx1ZTogLU1hdGguZnJvdW5kKDEyMDAg
KiBNYXRoLmxvZzIobW9zdFBvc2l0aXZlRmxvYXQpKSwKLSAgICAgICAgICAgICAgbWF4VmFsdWU6
IE1hdGguZnJvdW5kKDEyMDAgKiBNYXRoLmxvZzIobW9zdFBvc2l0aXZlRmxvYXQpKQotICAgICAg
ICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGNy
ZWF0b3I6ICdjcmVhdGVPc2NpbGxhdG9yJywKLSAgICAgICAgICBhcmdzOiBbXSwKLSAgICAgICAg
ICBsaW1pdHM6IHsKLSAgICAgICAgICAgIGZyZXF1ZW5jeToge21pblZhbHVlOiAtc2FtcGxlUmF0
ZSAvIDIsIG1heFZhbHVlOiBzYW1wbGVSYXRlIC8gMn0sCi0gICAgICAgICAgICBkZXR1bmU6IHsK
LSAgICAgICAgICAgICAgbWluVmFsdWU6IC1NYXRoLmZyb3VuZCgxMjAwICogTWF0aC5sb2cyKG1v
c3RQb3NpdGl2ZUZsb2F0KSksCi0gICAgICAgICAgICAgIG1heFZhbHVlOiBNYXRoLmZyb3VuZCgx
MjAwICogTWF0aC5sb2cyKG1vc3RQb3NpdGl2ZUZsb2F0KSkKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRl
UGFubmVyJywKLSAgICAgICAgICBhcmdzOiBbXSwKLSAgICAgICAgICBsaW1pdHM6IHsKLSAgICAg
ICAgICAgIHBvc2l0aW9uWDogewotICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2
ZUZsb2F0LAotICAgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgcG9zaXRpb25ZOiB7Ci0gICAgICAgICAgICAgIG1pblZh
bHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9z
aXRpdmVGbG9hdCwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBwb3NpdGlvblo6IHsKLSAg
ICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAgICAg
bWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAgfSwKLSAgICAgICAgICAg
IG9yaWVudGF0aW9uWDogewotICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZs
b2F0LAotICAgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAg
ICAgICB9LAotICAgICAgICAgICAgb3JpZW50YXRpb25ZOiB7Ci0gICAgICAgICAgICAgIG1pblZh
bHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9z
aXRpdmVGbG9hdCwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBvcmllbnRhdGlvblo6IHsK
LSAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAg
ICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAgfQotICAgICAgICAg
IH0sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlQ29u
c3RhbnRTb3VyY2UnLAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAgICAgIGxpbWl0czogewot
ICAgICAgICAgICAgb2Zmc2V0OiB7bWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwgbWF4VmFs
dWU6IG1vc3RQb3NpdGl2ZUZsb2F0fQotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAg
Ly8gVGhlc2Ugbm9kZXMgZG9uJ3QgaGF2ZSBBdWRpb1BhcmFtcywgYnV0IHdlIHdhbnQgdG8gdGVz
dCB0aGVtIGFueXdheS4KLSAgICAgICAgLy8gQW55IGFyZ3VtZW50cyBmb3IgdGhlCi0gICAgICAg
IC8vIGNvbnN0cnVjdG9yIGFyZSBwcmV0dHkgbXVjaCBhcmJpdHJhcnk7IHRoZXkganVzdCBuZWVk
IHRvIGJlIHZhbGlkLgotICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUJ1ZmZl
cicsCi0gICAgICAgICAgYXJnczogWzEsIDEsIHNhbXBsZVJhdGVdLAotICAgICAgICB9LAotICAg
ICAgICB7Y3JlYXRvcjogJ2NyZWF0ZUlJUkZpbHRlcicsIGFyZ3M6IFtbMSwgMl0sIFsxLCAuOV1d
fSwKLSAgICAgICAgewotICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVXYXZlU2hhcGVyJywKLSAg
ICAgICAgICBhcmdzOiBbXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGNyZWF0
b3I6ICdjcmVhdGVDb252b2x2ZXInLAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUFuYWx5c2VyJywKLSAgICAgICAg
ICBhcmdzOiBbXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGNyZWF0b3I6ICdj
cmVhdGVTY3JpcHRQcm9jZXNzb3InLAotICAgICAgICAgIGFyZ3M6IFswXSwKLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVQZXJpb2RpY1dhdmUnLAotICAg
ICAgICAgIGFyZ3M6IFtGbG9hdDMyQXJyYXkuZnJvbShbMCwgMF0pLCBGbG9hdDMyQXJyYXkuZnJv
bShbMSwgMF0pXSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGNyZWF0b3I6ICdj
cmVhdGVDaGFubmVsU3BsaXR0ZXInLAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUNoYW5uZWxNZXJnZXInLAotICAg
ICAgICAgIGFyZ3M6IFtdLAotICAgICAgICB9LAotICAgICAgXTsKLQotICAgICAgbGV0IHRlc3RP
bmxpbmVDb25maWdzID0gWwotICAgICAgICB7Y3JlYXRvcjogJ2NyZWF0ZU1lZGlhRWxlbWVudFNv
dXJjZScsIGFyZ3M6IFtuZXcgQXVkaW8oKV19LAotICAgICAgICB7Y3JlYXRvcjogJ2NyZWF0ZU1l
ZGlhU3RyZWFtRGVzdGluYXRpb24nLCBhcmdzOiBbXX0KLSAgICAgICAgLy8gQ2FuJ3QgY3VycmVu
dGx5IHRlc3QgTWVkaWFTdHJlYW1Tb3VyY2UgYmVjYXVzZSB3ZSdyZSB1c2luZyBhbiBvZmZsaW5l
Ci0gICAgICAgIC8vIGNvbnRleHQuCi0gICAgICBdOwotCi0gICAgICAvLyBDcmVhdGUgdGhlIGNv
bnRleHRzIHNvIHdlIGNhbiB1c2UgaXQgaW4gdGhlIGZvbGxvd2luZyB0ZXN0LgotICAgICAgYXVk
aXQuZGVmaW5lKCdpbml0aWFsaXplJywgKHRhc2ssIHNob3VsZCkgPT4gewotICAgICAgICAvLyBK
dXN0IGFueSBjb250ZXh0IHNvIHRoYXQgd2UgY2FuIGNyZWF0ZSB0aGUgbm9kZXMuCi0gICAgICAg
IHNob3VsZCgoKSA9PiB7Ci0gICAgICAgICAgb2ZmbGluZUNvbnRleHQgPSBuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dCgxLCAxLCBzYW1wbGVSYXRlKTsKLSAgICAgICAgfSwgJ0NyZWF0ZSBvZmZsaW5l
IGNvbnRleHQgZm9yIHRlc3RzJykubm90VGhyb3coKTsKLSAgICAgICAgc2hvdWxkKCgpID0+IHsK
LSAgICAgICAgICBvbmxpbmVDb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwotICAgICAgICB9
LCAnQ3JlYXRlIG9ubGluZSBjb250ZXh0IGZvciB0ZXN0cycpLm5vdFRocm93KCk7Ci0gICAgICAg
IHRhc2suZG9uZSgpOwotICAgICAgfSk7Ci0KLSAgICAgIC8vIENyZWF0ZSBhIHRhc2sgZm9yIGVh
Y2ggZW50cnkgaW4gdGVzdE9mZmxpbmVDb25maWdzCi0gICAgICBmb3IgKGxldCB0ZXN0IGluIHRl
c3RPZmZsaW5lQ29uZmlncykgewotICAgICAgICBsZXQgY29uZmlnID0gdGVzdE9mZmxpbmVDb25m
aWdzW3Rlc3RdCi0gICAgICAgIGF1ZGl0LmRlZmluZSgnT2ZmbGluZSAnICsgY29uZmlnLmNyZWF0
b3IsIChmdW5jdGlvbihjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodGFzaywg
c2hvdWxkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vZGUgPSBvZmZsaW5l
Q29udGV4dFtjLmNyZWF0b3JdKC4uLmMuYXJncyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdExpbWl0cyhzaG91bGQsIGMuY3JlYXRvciwgbm9kZSwgYy5saW1pdHMpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgIHRhc2suZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICB9Owot
ICAgICAgICAgICAgICAgICAgICAgfSkoY29uZmlnKSk7Ci0gICAgICB9Ci0KLSAgICAgIGZvciAo
bGV0IHRlc3QgaW4gdGVzdE9ubGluZUNvbmZpZ3MpIHsKLSAgICAgICAgbGV0IGNvbmZpZyA9IHRl
c3RPbmxpbmVDb25maWdzW3Rlc3RdCi0gICAgICAgIGF1ZGl0LmRlZmluZSgnT25saW5lICcgKyBj
b25maWcuY3JlYXRvciwgKGZ1bmN0aW9uKGMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICh0YXNrLCBzaG91bGQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9k
ZSA9IG9ubGluZUNvbnRleHRbYy5jcmVhdG9yXSguLi5jLmFyZ3MpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlc3RMaW1pdHMoc2hvdWxkLCBjLmNyZWF0b3IsIG5vZGUsIGMubGltaXRzKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICB0YXNrLmRvbmUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgICAgICAgICAgIH0pKGNvbmZpZykpOwotICAgICAgfQotCi0g
ICAgICAvLyBUZXN0IHRoZSBBdWRpb0xpc3RlbmVyIHBhcmFtcyB0aGF0IHdlcmUgYWRkZWQgZm9y
IHRoZSBhdXRvbWF0ZWQgUGFubmVyCi0gICAgICBhdWRpdC5kZWZpbmUoJ0F1ZGlvTGlzdGVuZXIn
LCAodGFzaywgc2hvdWxkKSA9PiB7Ci0gICAgICAgIHRlc3RMaW1pdHMoc2hvdWxkLCAnJywgb2Zm
bGluZUNvbnRleHQubGlzdGVuZXIsIHsKLSAgICAgICAgICBwb3NpdGlvblg6IHsKLSAgICAgICAg
ICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBtYXhWYWx1ZTog
bW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgfSwKLSAgICAgICAgICBwb3NpdGlvblk6IHsK
LSAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBt
YXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgfSwKLSAgICAgICAgICBwb3Np
dGlvblo6IHsKLSAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAg
ICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgfSwKLSAgICAg
ICAgICBmb3J3YXJkWDogewotICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9h
dCwKLSAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICB9
LAotICAgICAgICAgIGZvcndhcmRZOiB7Ci0gICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3Np
dGl2ZUZsb2F0LAotICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAotICAg
ICAgICAgIH0sCi0gICAgICAgICAgZm9yd2FyZFo6IHsKLSAgICAgICAgICAgIG1pblZhbHVlOiAt
bW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxv
YXQsCi0gICAgICAgICAgfSwKLSAgICAgICAgICB1cFg6IHsKLSAgICAgICAgICAgIG1pblZhbHVl
OiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZl
RmxvYXQsCi0gICAgICAgICAgfSwKLSAgICAgICAgICB1cFk6IHsKLSAgICAgICAgICAgIG1pblZh
bHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0
aXZlRmxvYXQsCi0gICAgICAgICAgfSwKLSAgICAgICAgICB1cFo6IHsKLSAgICAgICAgICAgIG1p
blZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBv
c2l0aXZlRmxvYXQsCi0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgdGFzay5kb25l
KCk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gVmVyaWZ5IHRoYXQgd2UgaGF2ZSB0ZXN0ZWQgYWxs
IHRoZSBjcmVhdGUgbWV0aG9kcyBhdmFpbGFibGUgb24gdGhlCi0gICAgICAvLyBjb250ZXh0Lgot
ICAgICAgYXVkaXQuZGVmaW5lKCd2ZXJpZnlUZXN0cycsICh0YXNrLCBzaG91bGQpID0+IHsKLSAg
ICAgICAgbGV0IGFsbE5vZGVzID0gbmV3IFNldCgpOwotICAgICAgICAvLyBDcmVhdGUgdGhlIHNl
dCBvZiBhbGwgImNyZWF0ZSIgbWV0aG9kcyBmcm9tIHRoZSBjb250ZXh0LgotICAgICAgICBmb3Ig
KGxldCBtZXRob2QgaW4gb2ZmbGluZUNvbnRleHQpIHsKLSAgICAgICAgICBpZiAodHlwZW9mIG9m
ZmxpbmVDb250ZXh0W21ldGhvZF0gPT09ICdmdW5jdGlvbicgJiYKLSAgICAgICAgICAgICAgbWV0
aG9kLnN1YnN0cmluZygwLCA2KSA9PT0gJ2NyZWF0ZScpIHsKLSAgICAgICAgICAgIGFsbE5vZGVz
LmFkZChtZXRob2QpOwotICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIENvbXB1
dGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgc2V0IG9mIGFsbCBjcmVhdGUgbWV0aG9kcyBv
biB0aGUKLSAgICAgICAgLy8gY29udGV4dCBhbmQgdGhlIHNldCBvZiB0ZXN0cyB0aGF0IHdlJ3Zl
IHJ1bi4KLSAgICAgICAgbGV0IGRpZmYgPSBuZXcgU2V0KFsuLi5hbGxOb2Rlc10uZmlsdGVyKHgg
PT4gIXRlc3RlZE1ldGhvZHMuaGFzKHgpKSk7Ci0KLSAgICAgICAgLy8gQ2FuJ3QgY3VycmVudGx5
IHRlc3QgYSBNZWRpYVN0cmVhbVNvdXJjZU5vZGUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQotICAg
ICAgICAvLyBkaWZmIHNldC4KLSAgICAgICAgZGlmZi5kZWxldGUoJ2NyZWF0ZU1lZGlhU3RyZWFt
U291cmNlJyk7Ci0KLSAgICAgICAgLy8gSXQncyBhIHRlc3QgZmFpbHVyZSBpZiB3ZSBkaWRuJ3Qg
dGVzdCBhbGwgb2YgdGhlIGNyZWF0ZSBtZXRob2RzIGluCi0gICAgICAgIC8vIHRoZSBjb250ZXh0
IChleGNlcHQgY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UsIG9mIGNvdXJzZSkuCi0gICAgICAgIGxl
dCBvdXRwdXQgPSBbXTsKLSAgICAgICAgaWYgKGRpZmYuc2l6ZSkgewotICAgICAgICAgIGZvciAo
bGV0IGl0ZW0gb2YgZGlmZikKLSAgICAgICAgICAgIG91dHB1dC5wdXNoKCcgJyArIGl0ZW0uc3Vi
c3RyaW5nKDYpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHNob3VsZChvdXRwdXQubGVuZ3RoID09
PSAwLCAnTnVtYmVyIG9mIG5vZGVzIG5vdCB0ZXN0ZWQnKQotICAgICAgICAgICAgLm1lc3NhZ2Uo
JzogMCcsICc6ICcgKyBvdXRwdXQpOwotCi0gICAgICAgIHRhc2suZG9uZSgpOwotICAgICAgfSk7
Ci0KLSAgICAgIC8vIFNpbXBsZSB0ZXN0IG9mIGEgZmV3IGF1dG9tYXRpb24gbWV0aG9kcyB0byB2
ZXJpZnkgd2UgZ2V0IHdhcm5pbmdzLgotICAgICAgYXVkaXQuZGVmaW5lKCdhdXRvbWF0aW9uJywg
KHRhc2ssIHNob3VsZCkgPT4gewotICAgICAgICAvLyBKdXN0IHVzZSBhIERlbGF5Tm9kZSBmb3Ig
dGVzdGluZyBiZWNhdXNlIHRoZSBhdWRpbyBwYXJhbSBoYXMgZmluaXRlCi0gICAgICAgIC8vIGxp
bWl0cy4KLSAgICAgICAgc2hvdWxkKCgpID0+IHsKLSAgICAgICAgICBsZXQgZCA9IG9mZmxpbmVD
b250ZXh0LmNyZWF0ZURlbGF5KCk7Ci0KLSAgICAgICAgICAvLyBUaGUgY29uc29sZSBvdXRwdXQg
c2hvdWxkIGhhdmUgdGhlIHdhcm5pbmdzIHRoYXQgd2UncmUgaW50ZXJlc3RlZAotICAgICAgICAg
IC8vIGluLgotICAgICAgICAgIGQuZGVsYXlUaW1lLnNldFZhbHVlQXRUaW1lKC0xLCAwKTsKLSAg
ICAgICAgICBkLmRlbGF5VGltZS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgyLCAxKTsKLSAgICAg
ICAgICBkLmRlbGF5VGltZS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDMsIDIpOwotICAg
ICAgICAgIGQuZGVsYXlUaW1lLnNldFRhcmdldEF0VGltZSgtMSwgMywgLjEpOwotICAgICAgICAg
IGQuZGVsYXlUaW1lLnNldFZhbHVlQ3VydmVBdFRpbWUoCi0gICAgICAgICAgICAgIEZsb2F0MzJB
cnJheS5mcm9tKFsuMSwgLjIsIDEuNSwgLTFdKSwgNCwgLjEpOwotICAgICAgICB9LCAnVGVzdCBh
dXRvbWF0aW9ucyAoY2hlY2sgY29uc29sZSBsb2dzKScpLm5vdFRocm93KCk7Ci0gICAgICAgIHRh
c2suZG9uZSgpOwotICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LnJ1bigpOwotCi0gICAgICAvLyBJ
cyB8b2JqZWN0fCBhbiBBdWRpb1BhcmFtPyAgV2UgZGV0ZXJtaW5lIHRoaXMgYnkgY2hlY2tpbmcg
dGhlCi0gICAgICAvLyBjb25zdHJ1Y3RvciBuYW1lLgotICAgICAgZnVuY3Rpb24gaXNBdWRpb1Bh
cmFtKG9iamVjdCkgewotICAgICAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVjdC5jb25zdHJ1Y3Rv
ci5uYW1lID09PSAnQXVkaW9QYXJhbSc7Ci0gICAgICB9Ci0KLSAgICAgIC8vIERvZXMgfGxpbWl0
T3B0aW9uc3wgZXhpc3QgYW5kIGRvZXMgaXQgaGF2ZSB2YWxpZCB2YWx1ZXMgZm9yIHRoZQotICAg
ICAgLy8gZXhwZWN0ZWQgbWluIGFuZCBtYXggdmFsdWVzPwotICAgICAgZnVuY3Rpb24gaGFzVmFs
aWRMaW1pdHMobGltaXRPcHRpb25zKSB7Ci0gICAgICAgIHJldHVybiBsaW1pdE9wdGlvbnMgJiYg
KHR5cGVvZiBsaW1pdE9wdGlvbnMubWluVmFsdWUgPT09ICdudW1iZXInKSAmJgotICAgICAgICAg
ICAgKHR5cGVvZiBsaW1pdE9wdGlvbnMubWF4VmFsdWUgPT09ICdudW1iZXInKTsKLSAgICAgIH0K
LQotICAgICAgLy8gQ2hlY2sgdGhlIG1pbiBhbmQgbWF4IHZhbHVlcyBmb3IgdGhlIEF1ZGlvUGFy
YW0gYXR0cmlidXRlIG5hbWVkCi0gICAgICAvLyB8cGFyYW1OYW1lfCBmb3IgdGhlIHxub2RlfC4g
VGhlIGV4cGVjdGVkIGxpbWl0cyBpcyBnaXZlbiBieSB0aGUKLSAgICAgIC8vIGRpY3Rpb25hcnkg
fGxpbWl0c3wuICBJZiBzb21lIHRlc3QgZmFpbHMsIGFkZCB0aGUgbmFtZSBvZiB0aGUgZmFpbGVk
Ci0gICAgICBmdW5jdGlvbiB2YWxpZGF0ZUF1ZGlvUGFyYW1MaW1pdHMoc2hvdWxkLCBub2RlLCBw
YXJhbU5hbWUsIGxpbWl0cykgewotICAgICAgICBsZXQgbm9kZU5hbWUgPSBub2RlLmNvbnN0cnVj
dG9yLm5hbWU7Ci0gICAgICAgIGxldCBwYXJhbWV0ZXIgPSBub2RlW3BhcmFtTmFtZV07Ci0gICAg
ICAgIGxldCBwcmVmaXggPSBub2RlTmFtZSArICcuJyArIHBhcmFtTmFtZTsKLQotICAgICAgICBs
ZXQgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAgIGlmIChoYXNWYWxpZExpbWl0cyhsaW1pdHNbcGFy
YW1OYW1lXSkpIHsKLSAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgbWluIGFuZCBtYXggdmFs
dWVzIGZvciB0aGUgcGFyYW1ldGVyIGFyZSBjb3JyZWN0LgotICAgICAgICAgIGxldCBpc0NvcnJl
Y3QgPSBzaG91bGQocGFyYW1ldGVyLm1pblZhbHVlLCBwcmVmaXggKyAnLm1pblZhbHVlJykKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8obGltaXRzW3BhcmFtTmFtZV0u
bWluVmFsdWUpOwotICAgICAgICAgIGlzQ29ycmVjdCA9IHNob3VsZChwYXJhbWV0ZXIubWF4VmFs
dWUsIHByZWZpeCArICcubWF4VmFsdWUnKQotICAgICAgICAgICAgICAgICAgICAgICAgICAuYmVF
cXVhbFRvKGxpbWl0c1twYXJhbU5hbWVdLm1heFZhbHVlKSAmJgotICAgICAgICAgICAgICBpc0Nv
cnJlY3Q7Ci0KLSAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgbWluIGFuZCBtYXggYXR0cmli
dXRlcyBhcmUgcmVhZC1vbmx5LiAgfHRlc3RWYWx1ZXwKLSAgICAgICAgICAvLyBNVVNUIGJlIGEg
bnVtYmVyIHRoYXQgY2FuIGJlIHJlcHJlc2VudGVkIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzCi0g
ICAgICAgICAgLy8gYm90aCBhIGRvdWJsZSBhbmQgc2luZ2xlIGZsb2F0LiAgQSBzbWFsbCBpbnRl
Z2VyIHdvcmtzIG5pY2VseS4KLSAgICAgICAgICBjb25zdCB0ZXN0VmFsdWUgPSA0MjsKLSAgICAg
ICAgICBwYXJhbWV0ZXIubWluVmFsdWUgPSB0ZXN0VmFsdWU7Ci0gICAgICAgICAgbGV0IGlzUmVh
ZE9ubHk7Ci0gICAgICAgICAgaXNSZWFkT25seSA9Ci0gICAgICAgICAgICAgIHNob3VsZChwYXJh
bWV0ZXIubWluVmFsdWUsIGAke3ByZWZpeH0ubWluVmFsdWUgPSAke3Rlc3RWYWx1ZX1gKQotICAg
ICAgICAgICAgICAgICAgLm5vdEJlRXF1YWxUbyh0ZXN0VmFsdWUpOwotCi0gICAgICAgICAgc2hv
dWxkKGlzUmVhZE9ubHksIHByZWZpeCArICcubWluVmFsdWUgaXMgcmVhZC1vbmx5JykuYmVFcXVh
bFRvKHRydWUpOwotCi0gICAgICAgICAgaXNDb3JyZWN0ID0gaXNSZWFkT25seSAmJiBpc0NvcnJl
Y3Q7Ci0KLSAgICAgICAgICBwYXJhbWV0ZXIubWF4VmFsdWUgPSB0ZXN0VmFsdWU7Ci0gICAgICAg
ICAgaXNSZWFkT25seSA9Ci0gICAgICAgICAgICAgIHNob3VsZChwYXJhbWV0ZXIubWF4VmFsdWUs
IGAke3ByZWZpeH0ubWF4VmFsdWUgPSAke3Rlc3RWYWx1ZX1gKQotICAgICAgICAgICAgICAgICAg
Lm5vdEJlRXF1YWxUbyh0ZXN0VmFsdWUpOwotICAgICAgICAgIHNob3VsZChpc1JlYWRPbmx5LCBw
cmVmaXggKyAnLm1heFZhbHVlIGlzIHJlYWQtb25seScpLmJlRXF1YWxUbyh0cnVlKTsKLQotICAg
ICAgICAgIGlzQ29ycmVjdCA9IGlzUmVhZE9ubHkgJiYgaXNDb3JyZWN0OwotCi0gICAgICAgICAg
Ly8gTm93IHRyeSB0byBzZXQgdGhlIHBhcmFtZXRlciBvdXRzaWRlIHRoZSBub21pbmFsIHJhbmdl
LgotICAgICAgICAgIGxldCBuZXdWYWx1ZSA9IDIgKiBsaW1pdHNbcGFyYW1OYW1lXS5taW5WYWx1
ZSAtIDE7Ci0KLSAgICAgICAgICBsZXQgaXNDbGlwcGVkID0gdHJ1ZTsKLSAgICAgICAgICBsZXQg
Y2xpcHBpbmdUZXN0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAvLyBJZiB0aGUgbmV3IHZhbHVlIGlz
IGJleW9uZCBmbG9hdCB0aGUgbGFyZ2VzdCBzaW5nbGUtcHJlY2lzaW9uCi0gICAgICAgICAgLy8g
ZmxvYXQsIHNraXAgdGhlIHRlc3QgYmVjYXVzZSBDaHJvbWUgdGhyb3dzIGFuIGVycm9yLgotICAg
ICAgICAgIGlmIChuZXdWYWx1ZSA+PSAtbW9zdFBvc2l0aXZlRmxvYXQpIHsKLSAgICAgICAgICAg
IHBhcmFtZXRlci52YWx1ZSA9IG5ld1ZhbHVlOwotICAgICAgICAgICAgY2xpcHBpbmdUZXN0ZWQg
PSB0cnVlOwotICAgICAgICAgICAgaXNDbGlwcGVkID0KLSAgICAgICAgICAgICAgICBzaG91bGQo
Ci0gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci52YWx1ZSwgJ1NldCAnICsgcHJlZml4ICsg
Jy52YWx1ZSA9ICcgKyBuZXdWYWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyhw
YXJhbWV0ZXIubWluVmFsdWUpICYmCi0gICAgICAgICAgICAgICAgaXNDbGlwcGVkOwotICAgICAg
ICAgIH0KLQotICAgICAgICAgIG5ld1ZhbHVlID0gMiAqIGxpbWl0c1twYXJhbU5hbWVdLm1heFZh
bHVlICsgMTsKLQotICAgICAgICAgIGlmIChuZXdWYWx1ZSA8PSBtb3N0UG9zaXRpdmVGbG9hdCkg
ewotICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlID0gbmV3VmFsdWU7Ci0gICAgICAgICAgICBj
bGlwcGluZ1Rlc3RlZCA9IHRydWU7Ci0gICAgICAgICAgICBpc0NsaXBwZWQgPQotICAgICAgICAg
ICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlLCAnU2V0
ICcgKyBwcmVmaXggKyAnLnZhbHVlID0gJyArIG5ld1ZhbHVlKQotICAgICAgICAgICAgICAgICAg
ICAuYmVFcXVhbFRvKHBhcmFtZXRlci5tYXhWYWx1ZSkgJiYKLSAgICAgICAgICAgICAgICBpc0Ns
aXBwZWQ7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgaWYgKGNsaXBwaW5nVGVzdGVkKSB7Ci0g
ICAgICAgICAgICBzaG91bGQoCi0gICAgICAgICAgICAgICAgaXNDbGlwcGVkLAotICAgICAgICAg
ICAgICAgIHByZWZpeCArICcgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCBy
YW5nZScpCi0gICAgICAgICAgICAgICAgLmJlRXF1YWxUbyh0cnVlKTsKLSAgICAgICAgICB9Ci0K
LSAgICAgICAgICBpc0NvcnJlY3QgPSBpc0NvcnJlY3QgJiYgaXNDbGlwcGVkOwotCi0gICAgICAg
ICAgc3VjY2VzcyA9IGlzQ29ycmVjdCAmJiBzdWNjZXNzOwotICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgIC8vIFRlc3QgY29uZmlnIGRpZG4ndCBzcGVjaWZ5IHZhbGlkIGxpbWl0cy4gIEZhaWwg
dGhpcyB0ZXN0IQotICAgICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgICAgY2xpcHBpbmdUZXN0
ZWQsCi0gICAgICAgICAgICAgICdMaW1pdHMgZm9yICcgKyBub2RlTmFtZSArICcuJyArIHBhcmFt
TmFtZSArCi0gICAgICAgICAgICAgICAgICAnIHdlcmUgY29ycmVjdGx5IGRlZmluZWQnKQotICAg
ICAgICAgICAgICAuYmVFcXVhbFRvKGZhbHNlKTsKLQotICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxz
ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBzdWNjZXNzOwotICAgICAgfQotCi0gICAg
ICAvLyBUZXN0IGFsbCBvZiB0aGUgQXVkaW9QYXJhbXMgZm9yIHxub2RlfCB1c2luZyB0aGUgZXhw
ZWN0ZWQgdmFsdWVzIGluCi0gICAgICAvLyB8bGltaXRzfC4gfGNyZWF0b3JOYW1lfCBpcyB0aGUg
bmFtZSBvZiB0aGUgbWV0aG9kIHRvIGNyZWF0ZSB0aGUgbm9kZSwKLSAgICAgIC8vIGFuZCBpcyB1
c2VkIHRvIGtlZXAgdHJha2Mgb2Ygd2hpY2ggdGVzdHMgd2UndmUgcnVuLgotICAgICAgZnVuY3Rp
b24gdGVzdExpbWl0cyhzaG91bGQsIGNyZWF0b3JOYW1lLCBub2RlLCBsaW1pdHMpIHsKLSAgICAg
ICAgbGV0IG5vZGVOYW1lID0gbm9kZS5jb25zdHJ1Y3Rvci5uYW1lOwotICAgICAgICB0ZXN0ZWRN
ZXRob2RzLmFkZChjcmVhdG9yTmFtZSk7Ci0KLSAgICAgICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOwot
Ci0gICAgICAgIC8vIExpc3Qgb2YgYWxsIG9mIHRoZSBBdWRpb1BhcmFtcyB0aGF0IHdlcmUgdGVz
dGVkLgotICAgICAgICBsZXQgYXVkaW9QYXJhbXMgPSBbXTsKLQotICAgICAgICAvLyBMaXN0IG9m
IEF1ZGlvUGFyYW1zIHRoYXQgZmFpbGVkIHRoZSB0ZXN0LgotICAgICAgICBsZXQgaW5jb3JyZWN0
UGFyYW1zID0gW107Ci0KLSAgICAgICAgLy8gTG9vayB0aHJvdWdoIGFsbCBvZiB0aGUga2V5cyBm
b3IgdGhlIG5vZGUgYW5kIGV4dHJhY3QganVzdCB0aGUKLSAgICAgICAgLy8gQXVkaW9QYXJhbXMK
LSAgICAgICAgT2JqZWN0LmtleXMobm9kZS5fX3Byb3RvX18pLmZvckVhY2goZnVuY3Rpb24ocGFy
YW1OYW1lKSB7Ci0gICAgICAgICAgaWYgKGlzQXVkaW9QYXJhbShub2RlW3BhcmFtTmFtZV0pKSB7
Ci0gICAgICAgICAgICBhdWRpb1BhcmFtcy5wdXNoKHBhcmFtTmFtZSk7Ci0gICAgICAgICAgICBs
ZXQgaXNWYWxpZCA9IHZhbGlkYXRlQXVkaW9QYXJhbUxpbWl0cygKLSAgICAgICAgICAgICAgICBz
aG91bGQsIG5vZGUsIHBhcmFtTmFtZSwgbGltaXRzLCBpbmNvcnJlY3RQYXJhbXMpOwotICAgICAg
ICAgICAgaWYgKCFpc1ZhbGlkKQotICAgICAgICAgICAgICBpbmNvcnJlY3RQYXJhbXMucHVzaChw
YXJhbU5hbWUpOwotCi0gICAgICAgICAgICBzdWNjZXNzID0gaXNWYWxpZCAmJiBzdWNjZXNzOwot
ICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gUHJpbnQgYW4gYXBwcm9wcmlh
dGUgbWVzc2FnZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGVyZSB3ZXJlCi0gICAgICAgIC8vIEF1
ZGlvUGFyYW1zIGRlZmluZWQgb3Igbm90LgotICAgICAgICBpZiAoYXVkaW9QYXJhbXMubGVuZ3Ro
KSB7Ci0gICAgICAgICAgbGV0IG1lc3NhZ2UgPQotICAgICAgICAgICAgICAnTm9taW5hbCByYW5n
ZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgJyArIG5vZGUuY29uc3RydWN0b3IubmFtZTsKLSAgICAg
ICAgICBzaG91bGQoc3VjY2VzcywgbWVzc2FnZSkKLSAgICAgICAgICAgICAgLm1lc3NhZ2UoJ2Fy
ZSBjb3JyZWN0JywgJ2FyZSBpbmNvcnJlY3QgZm9yOiAnICsgK2luY29ycmVjdFBhcmFtcyk7Ci0g
ICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgc2hv
dWxkKCFsaW1pdHMsIG5vZGVOYW1lKQotICAgICAgICAgICAgICAubWVzc2FnZSgKLSAgICAgICAg
ICAgICAgICAgICdoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQnLAotICAgICAgICAgICAg
ICAgICAgJ2hhcyBubyBBdWRpb1BhcmFtcyBidXQgdGVzdCBleHBlY3RlZCAnICsgbGltaXRzKTsK
LSAgICAgICAgfQotICAgICAgfQotICAgIDwvc2NyaXB0PgotICA8L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXNldFZhbHVlQXRUaW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXNldFZhbHVlQXRUaW1lLmh0
bWwKaW5kZXggZTVkZWQzM2Q0NWY1NTk4ZDYxZDQ1MjhmODIwMzE2N2QxMzgzYjk1My4uYjA3NGYz
MWQwYmM3NDRlMGE1NGIxYWQwOGQ2NTNkM2MwMzRjNWE4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zZXRWYWx1ZUF0VGltZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVBdFRpbWUuaHRtbApAQCAtMiw3ICsyLDcg
QEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb3BhcmFtLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb3BhcmFtLXRlc3Rpbmct
bGVnYWN5LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLWxlZ2FjeS5qcyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4MDdhMWU3ZTVmNzMzZTdlODY4ZTZmMjNhM2M4ZTBiYmJmNThiNGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5n
LWxlZ2FjeS5qcwpAQCAtMCwwICsxLDQ0MCBAQAordmFyIHNhbXBsZVJhdGUgPSA0NDEwMDsKKwor
Ly8gSW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0YXJ0aW5nL2VuZGluZyB0aW1lcyBhbmQgc3RhcnRp
bmcvZW5kaW5nIHZhbHVlcyBmb3IgZWFjaCB0aW1lIGludGVydmFsLgordmFyIHRpbWVWYWx1ZUlu
Zm87CisKKy8vIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhcnRpbmcgdmFsdWVzIGJldHdlZW4g
ZWFjaCB0aW1lIGludGVydmFsLgordmFyIHN0YXJ0aW5nVmFsdWVEZWx0YTsKKyAgICAgIAorLy8g
Rm9yIGFueSBhdXRvbWF0aW9uIGZ1bmN0aW9uIHRoYXQgaGFzIGFuIGVuZCBvciB0YXJnZXQgdmFs
dWUsIHRoZSBlbmQgdmFsdWUgaXMgYmFzZWQgdGhlIHN0YXJ0aW5nCisvLyB2YWx1ZSBvZiB0aGUg
dGltZSBpbnRlcnZhbC4gIFRoZSBzdGFydGluZyB2YWx1ZSB3aWxsIGJlIGluY3JlYXNlZCBvciBk
ZWNyZWFzZWQgYnkKKy8vIHxzdGFydEVuZFZhbHVlQ2hhbmdlfC4gV2UgY2hvb3NlIGhhbGYgb2Yg
fHN0YXJ0aW5nVmFsdWVEZWx0YXwgc28gdGhhdCB0aGUgZW5kaW5nIHZhbHVlIHdpbGwgYmUKKy8v
IGRpc3RpbmN0IGZyb20gdGhlIHN0YXJ0aW5nIHZhbHVlIGZvciBuZXh0IHRpbWUgaW50ZXJ2YWwu
ICBUaGlzIGFsbG93cyB1cyB0byBkZXRlY3Qgd2hlcmUgdGhlIHJhbXAKKy8vIGJlZ2lucyBhbmQg
ZW5kcy4KK3ZhciBzdGFydEVuZFZhbHVlQ2hhbmdlOworCisvLyBEZWZhdWx0IHRocmVzaG9sZCB0
byB1c2UgZm9yIGRldGVjdGluZyBkaXNjb250aW51aXRpZXMgdGhhdCBzaG91bGQgYXBwZWFyIGF0
IGVhY2ggdGltZSBpbnRlcnZhbC4KK3ZhciBkaXNjb250aW51aXR5VGhyZXNob2xkOworCisvLyBU
aW1lIGludGVydmFsIGJldHdlZW4gdmFsdWUgY2hhbmdlcy4gIEl0IGlzIGJlc3QgaWYgMSAvIG51
bWJlck9mVGVzdHMgaXMgbm90IGNsb3NlIHRvIHRpbWVJbnRlcnZhbC4KK3ZhciB0aW1lSW50ZXJ2
YWwgPSAuMDM7CisKKy8vIFNvbWUgc3VpdGFibGUgdGltZSBjb25zdGFudCBzbyB0aGF0IHdlIGNh
biBzZWUgYSBzaWduaWZpY2FudCBjaGFuZ2Ugb3ZlciBhIHRpbWVJbnRlcnZhbC4gIFRoaXMgaXMK
Ky8vIG9ubHkgbmVlZGVkIGJ5IHNldFRhcmdldEF0VGltZSgpIHdoaWNoIG5lZWRzIGEgdGltZSBj
b25zdGFudC4KK3ZhciB0aW1lQ29uc3RhbnQgPSB0aW1lSW50ZXJ2YWwgLyAzOworCit2YXIgZ2Fp
bk5vZGU7CisKK3ZhciBjb250ZXh0OworCisvLyBNYWtlIHN1cmUgd2UgcmVuZGVyIGxvbmcgZW5v
dWdoIHRvIGNhcHR1cmUgYWxsIG9mIG91ciB0ZXN0IGRhdGEuCitmdW5jdGlvbiByZW5kZXJMZW5n
dGgobnVtYmVyT2ZUZXN0cykKK3sKKyAgICByZXR1cm4gdGltZVRvU2FtcGxlRnJhbWUoKG51bWJl
ck9mVGVzdHMgKyAxKSAqIHRpbWVJbnRlcnZhbCwgc2FtcGxlUmF0ZSk7Cit9CisKKy8vIENyZWF0
ZSBhIGJ1ZmZlciBjb250YWluaW5nIHRoZSBzYW1lIGNvbnN0YW50IHZhbHVlLgorZnVuY3Rpb24g
Y3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgY29uc3RhbnQsIGxlbmd0aCkgeworICAgIHZh
ciBidWZmZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigxLCBsZW5ndGgsIGNvbnRleHQuc2FtcGxl
UmF0ZSk7CisgICAgdmFyIG4gPSBidWZmZXIubGVuZ3RoOworICAgIHZhciBkYXRhID0gYnVmZmVy
LmdldENoYW5uZWxEYXRhKDApOworCisgICAgZm9yICh2YXIgayA9IDA7IGsgPCBuOyArK2spIHsK
KyAgICAgICAgZGF0YVtrXSA9IGNvbnN0YW50OworICAgIH0KKworICAgIHJldHVybiBidWZmZXI7
Cit9CisKKy8vIENyZWF0ZSBhIGNvbnN0YW50IHJlZmVyZW5jZSBzaWduYWwgd2l0aCB0aGUgZ2l2
ZW4gfHZhbHVlfC4gIEJhc2ljYWxseSB0aGUgc2FtZSBhcworLy8gfGNyZWF0ZUNvbnN0YW50QnVm
ZmVyfCwgYnV0IHdpdGggdGhlIHBhcmFtZXRlcnMgdG8gbWF0Y2ggdGhlIG90aGVyIGNyZWF0ZSBm
dW5jdGlvbnMuICBUaGUKKy8vIHxlbmRWYWx1ZXwgaXMgaWdub3JlZC4KK2Z1bmN0aW9uIGNyZWF0
ZUNvbnN0YW50QXJyYXkoc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZSwgZW5kVmFsdWUsIHNhbXBs
ZVJhdGUpCit7CisgICAgdmFyIHN0YXJ0RnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShzdGFydFRp
bWUsIHNhbXBsZVJhdGUpOworICAgIHZhciBlbmRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKGVu
ZFRpbWUsIHNhbXBsZVJhdGUpOworICAgIHZhciBsZW5ndGggPSBlbmRGcmFtZSAtIHN0YXJ0RnJh
bWU7CisKKyAgICB2YXIgYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgdmFs
dWUsIGxlbmd0aCk7CisKKyAgICByZXR1cm4gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworfQor
CisvLyBDcmVhdGUgYSBsaW5lYXIgcmFtcCBzdGFydGluZyBhdCB8c3RhcnRWYWx1ZXwgYW5kIGVu
ZGluZyBhdCB8ZW5kVmFsdWV8LiAgVGhlIHJhbXAgc3RhcnRzIGF0IHRpbWUKKy8vIHxzdGFydFRp
bWV8IGFuZCBlbmRzIGF0IHxlbmRUaW1lfC4gIChUaGUgc3RhcnQgYW5kIGVuZCB0aW1lcyBhcmUg
b25seSB1c2VkIHRvIGNvbXB1dGUgaG93IG1hbnkKKy8vIHNhbXBsZXMgdG8gcmV0dXJuLikKK2Z1
bmN0aW9uIGNyZWF0ZUxpbmVhclJhbXBBcnJheShzdGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0VmFs
dWUsIGVuZFZhbHVlLCBzYW1wbGVSYXRlKQoreworICAgIHZhciBzdGFydEZyYW1lID0gdGltZVRv
U2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgZW5kRnJhbWUgPSB0
aW1lVG9TYW1wbGVGcmFtZShlbmRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgbGVuZ3RoID0g
ZW5kRnJhbWUgLSBzdGFydEZyYW1lOworICAgIHZhciBhcnJheSA9IG5ldyBBcnJheShsZW5ndGgp
OworCisgICAgdmFyIHN0ZXAgPSAoZW5kVmFsdWUgLSBzdGFydFZhbHVlKSAvIGxlbmd0aDsKKwor
ICAgIGZvciAoayA9IDA7IGsgPCBsZW5ndGg7ICsraykgeworICAgICAgICBhcnJheVtrXSA9IHN0
YXJ0VmFsdWUgKyBrICogc3RlcDsKKyAgICB9CisKKyAgICByZXR1cm4gYXJyYXk7Cit9CisKKy8v
IENyZWF0ZSBhbiBleHBvbmVudGlhbCByYW1wIHN0YXJ0aW5nIGF0IHxzdGFydFZhbHVlfCBhbmQg
ZW5kaW5nIGF0IHxlbmRWYWx1ZXwuICBUaGUgcmFtcCBzdGFydHMgYXQKKy8vIHRpbWUgfHN0YXJ0
VGltZXwgYW5kIGVuZHMgYXQgfGVuZFRpbWV8LiAgKFRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGFy
ZSBvbmx5IHVzZWQgdG8gY29tcHV0ZSBob3cKKy8vIG1hbnkgc2FtcGxlcyB0byByZXR1cm4uKQor
ZnVuY3Rpb24gY3JlYXRlRXhwb25lbnRpYWxSYW1wQXJyYXkoc3RhcnRUaW1lLCBlbmRUaW1lLCBz
dGFydFZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkKK3sKKyAgICB2YXIgc3RhcnRGcmFtZSA9
IHRpbWVUb1NhbXBsZUZyYW1lKHN0YXJ0VGltZSwgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGVuZEZy
YW1lID0gdGltZVRvU2FtcGxlRnJhbWUoZW5kVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGxl
bmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFtZTsKKyAgICB2YXIgYXJyYXkgPSBuZXcgQXJyYXko
bGVuZ3RoKTsKKworICAgIHZhciBtdWx0aXBsaWVyID0gTWF0aC5wb3coZW5kVmFsdWUgLyBzdGFy
dFZhbHVlLCAxIC8gbGVuZ3RoKTsKKyAgICAKKyAgICBmb3IgKHZhciBrID0gMDsgayA8IGxlbmd0
aDsgKytrKSB7CisgICAgICAgIGFycmF5W2tdID0gc3RhcnRWYWx1ZSAqIE1hdGgucG93KG11bHRp
cGxpZXIsIGspOworICAgIH0KKworICAgIHJldHVybiBhcnJheTsKK30KKworZnVuY3Rpb24gZGlz
Y3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlKHRpbWVDb25zdGFudCwgc2FtcGxlUmF0ZSkK
K3sKKyAgICByZXR1cm4gMSAtIE1hdGguZXhwKC0xIC8gKHNhbXBsZVJhdGUgKiB0aW1lQ29uc3Rh
bnQpKTsKK30KKworLy8gQ3JlYXRlIGEgc2lnbmFsIHRoYXQgc3RhcnRzIGF0IHxzdGFydFZhbHVl
fCBhbmQgZXhwb25lbnRpYWxseSBhcHByb2FjaGVzIHRoZSB0YXJnZXQgdmFsdWUgb2YKKy8vIHx0
YXJnZXRWYWx1ZXwsIHVzaW5nIGEgdGltZSBjb25zdGFudCBvZiB8dGltZUNvbnN0YW50fC4gIFRo
ZSByYW1wIHN0YXJ0cyBhdCB0aW1lIHxzdGFydFRpbWV8IGFuZAorLy8gZW5kcyBhdCB8ZW5kVGlt
ZXwuICAoVGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMgYXJlIG9ubHkgdXNlZCB0byBjb21wdXRlIGhv
dyBtYW55IHNhbXBsZXMgdG8KKy8vIHJldHVybi4pCitmdW5jdGlvbiBjcmVhdGVFeHBvbmVudGlh
bEFwcHJvYWNoQXJyYXkoc3RhcnRUaW1lLCBlbmRUaW1lLCBzdGFydFZhbHVlLCB0YXJnZXRWYWx1
ZSwgc2FtcGxlUmF0ZSwgdGltZUNvbnN0YW50KQoreworICAgIHZhciBzdGFydEZyYW1lID0gdGlt
ZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgZW5kRnJhbWUg
PSB0aW1lVG9TYW1wbGVGcmFtZShlbmRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgbGVuZ3Ro
ID0gZW5kRnJhbWUgLSBzdGFydEZyYW1lOworICAgIHZhciBhcnJheSA9IG5ldyBBcnJheShsZW5n
dGgpOworICAgIHZhciBjID0gZGlzY3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlKHRpbWVD
b25zdGFudCwgc2FtcGxlUmF0ZSk7CisKKyAgICB2YXIgdmFsdWUgPSBzdGFydFZhbHVlOworICAg
IAorICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKKyAgICAgICAgYXJyYXlb
a10gPSB2YWx1ZTsKKyAgICAgICAgdmFsdWUgKz0gKHRhcmdldFZhbHVlIC0gdmFsdWUpICogYzsK
KyAgICB9CisKKyAgICByZXR1cm4gYXJyYXk7Cit9CisKKy8vIENyZWF0ZSBhIHNpbmUgd2F2ZSBv
ZiB0aGUgZ2l2ZW4gZnJlcXVlbmN5IGFuZCBhbXBsaXR1ZGUuICBUaGUgc2luZSB3YXZlIGlzIG9m
ZnNldCBieSBoYWxmIHRoZQorLy8gYW1wbGl0dWRlIHNvIHRoYXQgcmVzdWx0IGlzIGFsd2F5cyBw
b3NpdGl2ZS4KK2Z1bmN0aW9uIGNyZWF0ZVNpbmVXYXZlQXJyYXkoZHVyYXRpb25TZWNvbmRzLCBm
cmVxSHosIGFtcGxpdHVkZSwgc2FtcGxlUmF0ZSkKK3sKKyAgICB2YXIgbGVuZ3RoID0gdGltZVRv
U2FtcGxlRnJhbWUoZHVyYXRpb25TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgc2lnbmFs
ID0gbmV3IEZsb2F0MzJBcnJheShsZW5ndGgpOworICAgIHZhciBvbWVnYSA9IDIgKiBNYXRoLlBJ
ICogZnJlcUh6IC8gc2FtcGxlUmF0ZTsKKyAgICB2YXIgaGFsZkFtcGxpdHVkZSA9IGFtcGxpdHVk
ZSAvIDI7CisgICAgCisgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgeworICAg
ICAgICBzaWduYWxba10gPSBoYWxmQW1wbGl0dWRlICsgaGFsZkFtcGxpdHVkZSAqIE1hdGguc2lu
KG9tZWdhICogayk7CisgICAgfQorCisgICAgcmV0dXJuIHNpZ25hbDsKK30KKworLy8gUmV0dXJu
IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHN0YXJ0aW5nIHZhbHVlIGFuZCB0aGUgZW5kaW5n
IHZhbHVlIGZvciB0aW1lIGludGVydmFsCisvLyB8dGltZUludGVydmFsSW5kZXh8LiAgV2UgYWx0
ZXJuYXRlIGJldHdlZW4gYW4gZW5kIHZhbHVlIHRoYXQgaXMgYWJvdmUgb3IgYmVsb3cgdGhlIHN0
YXJ0aW5nCisvLyB2YWx1ZS4KK2Z1bmN0aW9uIGVuZFZhbHVlRGVsdGEodGltZUludGVydmFsSW5k
ZXgpCit7CisgICAgaWYgKHRpbWVJbnRlcnZhbEluZGV4ICYgMSkgeworICAgICAgICByZXR1cm4g
LXN0YXJ0RW5kVmFsdWVDaGFuZ2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHN0YXJ0
RW5kVmFsdWVDaGFuZ2U7CisgICAgfQorfQorCisvLyBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0
d2VlbiB0aGUgc3RhcnRpbmcgdmFsdWUgYXQgfHRpbWVJbnRlcnZhbEluZGV4fCBhbmQgdGhlIHN0
YXJ0aW5nIHZhbHVlIGF0CisvLyB0aGUgbmV4dCB0aW1lIGludGVydmFsLiAgU2luY2Ugd2Ugc3Rh
cnRlZCBhdCBhIGxhcmdlIGluaXRpYWwgdmFsdWUsIHdlIGRlY3JlYXNlIHRoZSB2YWx1ZSBhdCBl
YWNoCisvLyB0aW1lIGludGVydmFsLgorZnVuY3Rpb24gdmFsdWVVcGRhdGUodGltZUludGVydmFs
SW5kZXgpCit7CisgICAgcmV0dXJuIC1zdGFydGluZ1ZhbHVlRGVsdGE7Cit9CisKKy8vIENvbXBh
cmUgYSBzZWN0aW9uIG9mIHRoZSByZW5kZXJlZCBkYXRhIGFnYWluc3Qgb3VyIGV4cGVjdGVkIHNp
Z25hbC4KK2Z1bmN0aW9uIGNvbXBhcmVQYXJ0aWFsU2lnbmFscyhyZW5kZXJlZCwgZXhwZWN0ZWRG
dW5jdGlvbiwgc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZUluZm8sIHNhbXBsZVJhdGUpCit7Cisg
ICAgdmFyIHN0YXJ0U2FtcGxlID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVS
YXRlKTsKKyAgICB2YXIgZXhwZWN0ZWQgPSBleHBlY3RlZEZ1bmN0aW9uKHN0YXJ0VGltZSwgZW5k
VGltZSwgdmFsdWVJbmZvLnN0YXJ0VmFsdWUsIHZhbHVlSW5mby5lbmRWYWx1ZSwgc2FtcGxlUmF0
ZSwgdGltZUNvbnN0YW50KTsKKworICAgIHZhciBuID0gZXhwZWN0ZWQubGVuZ3RoOworICAgIHZh
ciBtYXhFcnJvciA9IC0xOworICAgIHZhciBtYXhFcnJvckluZGV4ID0gLTE7CisgICAgCisgICAg
Zm9yICh2YXIgayA9IDA7IGsgPCBuOyArK2spIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRv
bid0IHBhc3MgdGhlc2UgdGVzdHMgYmVjYXVzZSBhIE5hTiBoYXMgYmVlbiBnZW5lcmF0ZWQgaW4g
ZWl0aGVyIHRoZQorICAgICAgICAvLyByZW5kZXJlZCBkYXRhIG9yIHRoZSByZWZlcmVuY2UgZGF0
YS4KKyAgICAgICAgaWYgKCFpc1ZhbGlkTnVtYmVyKHJlbmRlcmVkW3N0YXJ0U2FtcGxlICsga10p
KSB7CisgICAgICAgICAgICBtYXhFcnJvciA9IEluZmluaXR5OworICAgICAgICAgICAgbWF4RXJy
b3JJbmRleCA9IHN0YXJ0U2FtcGxlICsgazsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5hTiBv
ciBpbmZpbml0eSBmb3IgcmVuZGVyZWQgZGF0YSBhdCAiICsgbWF4RXJyb3JJbmRleCk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWlzVmFsaWROdW1iZXIoZXhw
ZWN0ZWRba10pKSB7CisgICAgICAgICAgICBtYXhFcnJvciA9IEluZmluaXR5OworICAgICAgICAg
ICAgbWF4RXJyb3JJbmRleCA9IHN0YXJ0U2FtcGxlICsgazsKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5hbiBvciBpbmZpbml0eSBmb3IgcmVmZXJlbmNlIGRhdGEgYXQgIiArIG1heEVycm9ySW5k
ZXgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGVycm9yID0g
TWF0aC5hYnMocmVuZGVyZWRbc3RhcnRTYW1wbGUgKyBrXSAtIGV4cGVjdGVkW2tdKTsKKyAgICAg
ICAgaWYgKGVycm9yID4gbWF4RXJyb3IpIHsKKyAgICAgICAgICAgIG1heEVycm9yID0gZXJyb3I7
CisgICAgICAgICAgICBtYXhFcnJvckluZGV4ID0gazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IHJldHVybiB7bWF4RXJyb3IgOiBtYXhFcnJvciwgaW5kZXggOiBtYXhFcnJvckluZGV4fTsKK30K
KworLy8gRmluZCB0aGUgZGlzY29udGludWl0aWVzIGluIHRoZSBkYXRhIGFuZCBjb21wYXJlIHRo
ZSBsb2NhdGlvbnMgb2YgdGhlIGRpc2NvbnRpbnVpdGllcyB3aXRoIHRoZQorLy8gdGltZXMgdGhh
dCBkZWZpbmUgdGhlIHRpbWUgaW50ZXJ2YWxzLiBUaGVyZSBpcyBhIGRpc2NvbnRpbnVpdHkgaWYg
dGhlIGRpZmZlcmVuY2UgYmV0d2VlbgorLy8gc3VjY2Vzc2l2ZSBzYW1wbGVzIGV4Y2VlZHMgdGhl
IHRocmVzaG9sZC4KK2Z1bmN0aW9uIHZlcmlmeURpc2NvbnRpbnVpdGllcyh2YWx1ZXMsIHRpbWVz
LCB0aHJlc2hvbGQpCit7CisgICAgdmFyIG4gPSB2YWx1ZXMubGVuZ3RoOworICAgIHZhciBzdWNj
ZXNzID0gdHJ1ZTsKKyAgICB2YXIgYmFkTG9jYXRpb25zID0gMDsKKyAgICB2YXIgYnJlYWtzID0g
W107CisKKyAgICAvLyBGaW5kIGRpc2NvbnRpbnVpdGllcy4KKyAgICBmb3IgKHZhciBrID0gMTsg
ayA8IG47ICsraykgeworICAgICAgICBpZiAoTWF0aC5hYnModmFsdWVzW2tdIC0gdmFsdWVzW2sg
LSAxXSkgPiB0aHJlc2hvbGQpIHsKKyAgICAgICAgICAgIGJyZWFrcy5wdXNoKGspOworICAgICAg
ICB9CisgICAgfQorCisgICAgdmFyIHRlc3RDb3VudDsKKworICAgIC8vIElmIHRoZXJlIGFyZSBu
dW1iZXJPZlRlc3RzIGludGVydmFscywgdGhlcmUgYXJlIG9ubHkgbnVtYmVyT2ZUZXN0cyAtIDEg
aW50ZXJuYWwgaW50ZXJ2YWwKKyAgICAvLyBib3VuZGFyaWVzLiBIZW5jZSB0aGUgbWF4aW11bSBu
dW1iZXIgb2YgZGlzY29udGludXRpZXMgd2UgZXhwZWN0IHRvIGZpbmQgaXMgbnVtYmVyT2ZUZXN0
cyAtCisgICAgLy8gMS4gSWYgd2UgZmluZCBtb3JlIHRoYW4gdGhhdCwgd2UgaGF2ZSBubyByZWZl
cmVuY2UgdG8gY29tcGFyZSBhZ2FpbnN0LiBXZSBhbHNvIGFzc3VtZSB0aGF0CisgICAgLy8gdGhl
IGFjdHVhbCBkaXNjb250aW51aXRpZXMgYXJlIGNsb3NlIHRvIHRoZSBleHBlY3RlZCBvbmVzLgor
ICAgIC8vCisgICAgLy8gVGhpcyBpcyBqdXN0IGEgc2FuaXR5IGNoZWNrIHdoZW4gc29tZXRoaW5n
IGdvZXMgcmVhbGx5IHdyb25nLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSB0aHJlc2hvbGQKKyAgICAv
LyBpcyB0b28gbG93LCBldmVyeSBzYW1wbGUgZnJhbWUgbG9va3MgbGlrZSBhIGRpc2NvbnRpbnVp
dHkuCisgICAgaWYgKGJyZWFrcy5sZW5ndGggPj0gbnVtYmVyT2ZUZXN0cykgeworICAgICAgICB0
ZXN0Q291bnQgPSBudW1iZXJPZlRlc3RzIC0gMTsKKyAgICAgICAgdGVzdEZhaWxlZCgiRm91bmQg
bW9yZSBkaXNjb250aW51aXRpZXMgKCIgKyBicmVha3MubGVuZ3RoICsgIikgdGhhbiBleHBlY3Rl
ZC4gIE9ubHkgY29tcGFyaW5nIGZpcnN0ICIgKyB0ZXN0Q291bnQgKyAiZGlzY29udGludWl0aWVz
LiIpOworICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVz
dENvdW50ID0gYnJlYWtzLmxlbmd0aDsKKyAgICB9CisgICAgCisgICAgLy8gQ29tcGFyZSB0aGUg
bG9jYXRpb24gb2YgZWFjaCBkaXNjb250aW51aXR5IHdpdGggdGhlIGVuZCB0aW1lIG9mIGVhY2gg
aW50ZXJ2YWwuIChUaGVyZSBpcyBubworICAgIC8vIGRpc2NvbnRpbnVpdHkgYXQgdGhlIHN0YXJ0
IG9mIHRoZSBzaWduYWwuKQorICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGVzdENvdW50OyArK2sp
IHsKKyAgICAgICAgdmFyIGV4cGVjdGVkU2FtcGxlRnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZSh0
aW1lc1trICsgMV0sIHNhbXBsZVJhdGUpOworICAgICAgICBpZiAoYnJlYWtzW2tdICE9IGV4cGVj
dGVkU2FtcGxlRnJhbWUpIHsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAg
ICAgICsrYmFkTG9jYXRpb25zOworICAgICAgICAgICAgdGVzdEZhaWxlZCgiRXhwZWN0ZWQgZGlz
Y29udGludWl0eSBhdCAiICsgZXhwZWN0ZWRTYW1wbGVGcmFtZSArICIgYnV0IGdvdCAiICsgYnJl
YWtzW2tdKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChiYWRMb2NhdGlvbnMpIHsKKyAg
ICAgICAgdGVzdEZhaWxlZChiYWRMb2NhdGlvbnMgKyAiIGRpc2NvbnRpbnVpdGllcyBhdCBpbmNv
cnJlY3QgbG9jYXRpb25zIik7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAoYnJlYWtzLmxlbmd0aCA9PSBudW1iZXJPZlRlc3RzIC0gMSkgeworICAg
ICAgICAgICAgdGVzdFBhc3NlZCgiQWxsICIgKyBudW1iZXJPZlRlc3RzICsgIiB0ZXN0cyBzdGFy
dGVkIGFuZCBlbmRlZCBhdCB0aGUgY29ycmVjdCB0aW1lLiIpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiRm91bmQgIiArIGJyZWFrcy5sZW5ndGggKyAiIGRpc2Nv
bnRpbnVpdGllcyBidXQgZXhwZWN0ZWQgIiArIChudW1iZXJPZlRlc3RzIC0gMSkpOworICAgICAg
ICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHJldHVy
biBzdWNjZXNzOworfQorCisvLyBDb21wYXJlIHRoZSByZW5kZXJlZCBkYXRhIHdpdGggdGhlIGV4
cGVjdGVkIGRhdGEuCisvLworLy8gdGVzdE5hbWUgLSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgdGVz
dAorLy8KKy8vIG1heEVycm9yIC0gbWF4aW11bSBhbGxvd2VkIGRpZmZlcmVuY2UgYmV0d2VlbiB0
aGUgcmVuZGVyZWQgZGF0YSBhbmQgdGhlIGV4cGVjdGVkIGRhdGEKKy8vCisvLyByZW5kZXJlcmRE
YXRhIC0gYXJyYXkgY29udGFpbmluZyB0aGUgcmVuZGVyZWQgKGFjdHVhbCkgZGF0YQorLy8KKy8v
IGV4cGVjdGVkRnVuY3Rpb24gLSBmdW5jdGlvbiB0byBjb21wdXRlIHRoZSBleHBlY3RlZCBkYXRh
CisvLworLy8gdGltZVZhbHVlSW5mbyAtIGFycmF5IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJv
dXQgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMgYW5kIHRoZSBzdGFydCBhbmQgZW5kCisvLyB2YWx1
ZXMgb2YgZWFjaCBpbnRlcnZhbC4KKy8vCisvLyBicmVha1RocmVzaG9sZCAtIHRocmVzaG9sZCB0
byB1c2UgZm9yIGRldGVybWluaW5nIGRpc2NvbnRpbnVpdGllcy4KK2Z1bmN0aW9uIGNvbXBhcmVT
aWduYWxzKHRlc3ROYW1lLCBtYXhFcnJvciwgcmVuZGVyZWREYXRhLCBleHBlY3RlZEZ1bmN0aW9u
LCB0aW1lVmFsdWVJbmZvLCBicmVha1RocmVzaG9sZCkKK3sKKyAgICB2YXIgc3VjY2VzcyA9IHRy
dWU7CisgICAgdmFyIGZhaWxlZFRlc3RDb3VudCA9IDA7CisgICAgdmFyIHRpbWVzID0gdGltZVZh
bHVlSW5mby50aW1lczsKKyAgICB2YXIgdmFsdWVzID0gdGltZVZhbHVlSW5mby52YWx1ZXM7Cisg
ICAgdmFyIG4gPSB2YWx1ZXMubGVuZ3RoOworCisgICAgc3VjY2VzcyA9IHZlcmlmeURpc2NvbnRp
bnVpdGllcyhyZW5kZXJlZERhdGEsIHRpbWVzLCBicmVha1RocmVzaG9sZCk7CisKKyAgICBmb3Ig
KHZhciBrID0gMDsgayA8IG47ICsraykgeworICAgICAgICB2YXIgcmVzdWx0ID0gY29tcGFyZVBh
cnRpYWxTaWduYWxzKHJlbmRlcmVkRGF0YSwgZXhwZWN0ZWRGdW5jdGlvbiwgdGltZXNba10sIHRp
bWVzW2sgKyAxXSwgdmFsdWVzW2tdLCBzYW1wbGVSYXRlKTsKKworICAgICAgICBpZiAocmVzdWx0
Lm1heEVycm9yID4gbWF4RXJyb3IpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkluY29ycmVj
dCB2YWx1ZSBmb3IgdGVzdCAiICsgayArICIuIE1heCBlcnJvciA9ICIgKyByZXN1bHQubWF4RXJy
b3IgKyAiIGF0IG9mZnNldCAiICsgKHJlc3VsdC5pbmRleCArIHRpbWVUb1NhbXBsZUZyYW1lKHRp
bWVzW2tdLCBzYW1wbGVSYXRlKSkpOworICAgICAgICAgICAgKytmYWlsZWRUZXN0Q291bnQ7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZmFpbGVkVGVzdENvdW50KSB7CisgICAgICAgIHRl
c3RGYWlsZWQoZmFpbGVkVGVzdENvdW50ICsgIiB0ZXN0cyBmYWlsZWQgb3V0IG9mICIgKyBuKTsK
KyAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNz
ZWQoIkFsbCAiICsgbiArICIgdGVzdHMgcGFzc2VkIHdpdGhpbiBhbiBhY2NlcHRhYmxlIHRvbGVy
YW5jZS4iKTsKKyAgICB9CisgICAgICAKKyAgICBpZiAoc3VjY2VzcykgeworICAgICAgICB0ZXN0
UGFzc2VkKCJBdWRpb1BhcmFtICIgKyB0ZXN0TmFtZSArICIgdGVzdCBwYXNzZWQuIik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiQXVkaW9QYXJhbSAiICsgdGVzdE5hbWUgKyAi
IHRlc3QgZmFpbGVkLiIpOworICAgIH0KK30KKworLy8gQ3JlYXRlIGEgZnVuY3Rpb24gdG8gdGVz
dCB0aGUgcmVuZGVyZWQgZGF0YSB3aXRoIHRoZSByZWZlcmVuY2UgZGF0YS4KKy8vCisvLyB0ZXN0
TmFtZSAtIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0ZXN0CisvLworLy8gZXJyb3IgLSBtYXggYWxs
b3dlZCBlcnJvciBiZXR3ZWVuIHJlbmRlcmVkIGRhdGEgYW5kIHRoZSByZWZlcmVuY2UgZGF0YS4K
Ky8vCisvLyByZWZlcmVuY2VGdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSBy
ZWZlcmVuY2UgZGF0YSB0byBiZSBjb21wYXJlZCB3aXRoIHRoZSByZW5kZXJlZAorLy8gZGF0YS4K
Ky8vCisvLyBqdW1wVGhyZXNob2xkIC0gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVz
IHRoZSB0aHJlc2hvbGQgdG8gdXNlIGZvciBkZXRlY3RpbmcKKy8vIGRpc2NvbnRpbnVpdGllcy4g
IElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQuCisv
LworZnVuY3Rpb24gY2hlY2tSZXN1bHRGdW5jdGlvbih0ZXN0TmFtZSwgZXJyb3IsIHJlZmVyZW5j
ZUZ1bmN0aW9uLCBqdW1wVGhyZXNob2xkKQoreworICAgIHJldHVybiBmdW5jdGlvbihldmVudCkg
eworICAgICAgICB2YXIgYnVmZmVyID0gZXZlbnQucmVuZGVyZWRCdWZmZXI7CisgICAgICAgIHJl
bmRlcmVkRGF0YSA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKworICAgICAgICB2YXIgdGhy
ZXNob2xkOworCisgICAgICAgIGlmICghanVtcFRocmVzaG9sZCkgeworICAgICAgICAgICAgdGhy
ZXNob2xkID0gZGlzY29udGludWl0eVRocmVzaG9sZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHRocmVzaG9sZCA9IGp1bXBUaHJlc2hvbGQ7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGNvbXBhcmVTaWduYWxzKHRlc3ROYW1lLCBlcnJvciwgcmVuZGVyZWREYXRhLCByZWZl
cmVuY2VGdW5jdGlvbiwgdGltZVZhbHVlSW5mbywgdGhyZXNob2xkKTsKKworICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKKy8vIFJ1biBhbGwgdGhlIGF1dG9tYXRpb24gdGVzdHMu
CisvLworLy8gbnVtYmVyT2ZUZXN0cyAtIG51bWJlciBvZiB0ZXN0cyAodGltZSBpbnRlcnZhbHMp
IHRvIHJ1bi4KKy8vCisvLyBpbml0aWFsVmFsdWUgLSBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUg
Zmlyc3QgdGltZSBpbnRlcnZhbC4KKy8vCisvLyBzZXRWYWx1ZUZ1bmN0aW9uIC0gZnVuY3Rpb24g
dGhhdCBzZXRzIHRoZSBzcGVjaWZpZWQgdmFsdWUgYXQgdGhlIHN0YXJ0IG9mIGEgdGltZSBpbnRl
cnZhbC4KKy8vCisvLyBhdXRvbWF0aW9uRnVuY3Rpb24gLSBmdW5jdGlvbiB0aGF0IHNldHMgdGhl
IGVuZCB2YWx1ZSBmb3IgdGhlIHRpbWUgaW50ZXJ2YWwuICBJdCBzcGVjaWZpZXMgaG93CisvLyB0
aGUgdmFsdWUgYXBwcm9hY2hlcyB0aGUgZW5kIHZhbHVlLgorLy8KKy8vIEFuIG9iamVjdCBpcyBy
ZXR1cm5lZCBjb250YWluaW5nIGFuIGFycmF5IG9mIHN0YXJ0IHRpbWVzIGZvciBlYWNoIHRpbWUg
aW50ZXJ2YWwsIGFuZCBhbiBhcnJheQorLy8gZ2l2aW5nIHRoZSBzdGFydCBhbmQgZW5kIHZhbHVl
cyBmb3IgdGhlIGludGVydmFsLgorZnVuY3Rpb24gZG9BdXRvbWF0aW9uKG51bWJlck9mVGVzdHMs
IGluaXRpYWxWYWx1ZSwgc2V0VmFsdWVGdW5jdGlvbiwgYXV0b21hdGlvbkZ1bmN0aW9uKQorewor
ICAgIHZhciB0aW1lSW5mbyA9IFswXTsKKyAgICB2YXIgdmFsdWVJbmZvID0gW107CisgICAgdmFy
IHZhbHVlID0gaW5pdGlhbFZhbHVlOworICAgIAorICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbnVt
YmVyT2ZUZXN0czsgKytrKSB7CisgICAgICAgIHZhciBzdGFydFRpbWUgPSBrICogdGltZUludGVy
dmFsOworICAgICAgICB2YXIgZW5kVGltZSA9IChrICsgMSkgKiB0aW1lSW50ZXJ2YWw7CisgICAg
ICAgIHZhciBlbmRWYWx1ZSA9IHZhbHVlICsgZW5kVmFsdWVEZWx0YShrKTsKKworICAgICAgICAv
LyBTZXQgdGhlIHZhbHVlIGF0IHRoZSBzdGFydCBvZiB0aGUgdGltZSBpbnRlcnZhbC4KKyAgICAg
ICAgc2V0VmFsdWVGdW5jdGlvbih2YWx1ZSwgc3RhcnRUaW1lKTsKKworICAgICAgICAvLyBTcGVj
aWZ5IHRoZSBlbmQgb3IgdGFyZ2V0IHZhbHVlLCBhbmQgaG93IHdlIHNob3VsZCBhcHByb2FjaCBp
dC4KKyAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uKGVuZFZhbHVlLCBzdGFydFRpbWUsIGVuZFRp
bWUpOworCisgICAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIHN0YXJ0IHRpbWVzLCBhbmQgdGhl
IHN0YXJ0IGFuZCBlbmQgdmFsdWVzIGZvciBlYWNoIHRpbWUgaW50ZXJ2YWwuCisgICAgICAgIHRp
bWVJbmZvLnB1c2goZW5kVGltZSk7CisgICAgICAgIHZhbHVlSW5mby5wdXNoKHtzdGFydFZhbHVl
OiB2YWx1ZSwgZW5kVmFsdWUgOiBlbmRWYWx1ZX0pOworCisgICAgICAgIHZhbHVlICs9IHZhbHVl
VXBkYXRlKGspOworICAgIH0KKworICAgIHJldHVybiB7dGltZXMgOiB0aW1lSW5mbywgdmFsdWVz
IDogdmFsdWVJbmZvfTsKK30KKworLy8gQ3JlYXRlIHRoZSBhdWRpbyBncmFwaCBmb3IgdGhlIHRl
c3QgYW5kIHRoZW4gcnVuIHRoZSB0ZXN0LgorLy8KKy8vIG51bWJlck9mVGVzdHMgLSBudW1iZXIg
b2YgdGltZSBpbnRlcnZhbHMgKHRlc3RzKSB0byBydW4uCisvLworLy8gaW5pdGlhbFZhbHVlIC0g
dGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIGdhaW4gYXQgdGltZSAwLgorLy8KKy8vIHNldFZhbHVl
RnVuY3Rpb24gLSBmdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2Yg
ZWFjaCB0aW1lIGludGVydmFsLgorLy8KKy8vIGF1dG9tYXRpb25GdW5jdGlvbiAtIHRoZSBBdWRp
b1BhcmFtVGltZWxpbmUgYXV0b21hdGlvbiBmdW5jdGlvbgorLy8KKy8vIHRlc3ROYW1lIC0gc3Ry
aW5nIGluZGljYXRpbmcgdGhlIHRlc3QgdGhhdCBpcyBiZWluZyBydW4uCisvLworLy8gbWF4RXJy
b3IgLSBtYXhpbXVtIGFsbG93ZWQgZXJyb3IgYmV0d2VlbiB0aGUgcmVuZGVyZWQgZGF0YSBhbmQg
dGhlIHJlZmVyZW5jZSBkYXRhCisvLworLy8gcmVmZXJlbmNlRnVuY3Rpb24gLSBmdW5jdGlvbiB0
aGF0IGdlbmVyYXRlcyB0aGUgcmVmZXJlbmNlIGRhdGEgdG8gYmUgY29tcGFyZWQgYWdhaW5zdCB0
aGUKKy8vIHJlbmRlcmVkIGRhdGEuCisvLworLy8ganVtcFRocmVzaG9sZCAtIG9wdGlvbmFsIHBh
cmFtZXRlciB0aGF0IHNwZWNpZmllcyB0aGUgdGhyZXNob2xkIHRvIHVzZSBmb3IgZGV0ZWN0aW5n
CisvLyBkaXNjb250aW51aXRpZXMuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byBkaXNj
b250aW51aXR5VGhyZXNob2xkLgorLy8KK2Z1bmN0aW9uIGNyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0
KG51bWJlck9mVGVzdHMsIGluaXRpYWxWYWx1ZSwgc2V0VmFsdWVGdW5jdGlvbiwgYXV0b21hdGlv
bkZ1bmN0aW9uLCB0ZXN0TmFtZSwgbWF4RXJyb3IsIHJlZmVyZW5jZUZ1bmN0aW9uLCBqdW1wVGhy
ZXNob2xkKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgfQorCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMiwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMpLCBzYW1wbGVSYXRlKTsK
KyAgICB2YXIgY29uc3RhbnRCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAx
LCByZW5kZXJMZW5ndGgobnVtYmVyT2ZUZXN0cykpOworCisgICAgLy8gV2UgdXNlIGFuIEF1ZGlv
R2Fpbk5vZGUgaGVyZSBzaW1wbHkgYXMgYSBjb252ZW5pZW50IHdheSB0byB0ZXN0IHRoZSBBdWRp
b1BhcmFtCisgICAgLy8gYXV0b21hdGlvbiwgc2luY2UgaXQncyBlYXN5IHRvIHBhc3MgYSBjb25z
dGFudCB2YWx1ZSB0aHJvdWdoIHRoZSBub2RlLCBhdXRvbWF0ZSB0aGUKKyAgICAvLyAuZ2FpbiBh
dHRyaWJ1dGUgYW5kIG9ic2VydmUgdGhlIHJlc3VsdGluZyB2YWx1ZXMuCisKKyAgICBnYWluTm9k
ZSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworCisgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRl
eHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgYnVmZmVyU291cmNlLmJ1ZmZlciA9IGNvbnN0
YW50QnVmZmVyOworICAgIGJ1ZmZlclNvdXJjZS5jb25uZWN0KGdhaW5Ob2RlKTsKKyAgICBnYWlu
Tm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgLy8gU2V0IHVwIGRlZmF1
bHQgdmFsdWVzIGZvciB0aGUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgaG93IHRoZSBhdXRvbWF0
aW9uIHRlc3QgdmFsdWVzIHByb2dyZXNzCisgICAgLy8gZm9yIGVhY2ggdGltZSBpbnRlcnZhbC4K
KyAgICBzdGFydGluZ1ZhbHVlRGVsdGEgPSBpbml0aWFsVmFsdWUgLyBudW1iZXJPZlRlc3RzOwor
ICAgIHN0YXJ0RW5kVmFsdWVDaGFuZ2UgPSBzdGFydGluZ1ZhbHVlRGVsdGEgLyAyOworICAgIGRp
c2NvbnRpbnVpdHlUaHJlc2hvbGQgPSBzdGFydEVuZFZhbHVlQ2hhbmdlIC8gMjsKKworICAgIC8v
IFJ1biB0aGUgYXV0b21hdGlvbiB0ZXN0cy4KKyAgICB0aW1lVmFsdWVJbmZvID0gZG9BdXRvbWF0
aW9uKG51bWJlck9mVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0
aWFsVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZUZ1bmN0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9u
KTsKKyAgICBidWZmZXJTb3VyY2Uuc3RhcnQoMCk7CisgICAgICAKKyAgICBjb250ZXh0Lm9uY29t
cGxldGUgPSBjaGVja1Jlc3VsdEZ1bmN0aW9uKHRlc3ROYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4RXJyb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VGdW5jdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUaHJlc2hvbGQpOworICAgIGNv
bnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzCmluZGV4IDY4MDdhMWU3ZTVmNzMzZTdl
ODY4ZTZmMjNhM2M4ZTBiYmJmNThiNGYuLmJjOTBkZGJlZjgyODUxMDIxM2Q5NWNmNDA2ODNlMjMy
MzdlNTY2MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRp
b3BhcmFtLXRlc3RpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1
ZGlvcGFyYW0tdGVzdGluZy5qcwpAQCAtMSw0NDAgKzEsNTU0IEBACi12YXIgc2FtcGxlUmF0ZSA9
IDQ0MTAwOworKGZ1bmN0aW9uKGdsb2JhbCkgewogCi0vLyBJbmZvcm1hdGlvbiBhYm91dCB0aGUg
c3RhcnRpbmcvZW5kaW5nIHRpbWVzIGFuZCBzdGFydGluZy9lbmRpbmcgdmFsdWVzIGZvciBlYWNo
IHRpbWUgaW50ZXJ2YWwuCi12YXIgdGltZVZhbHVlSW5mbzsKKyAgLy8gSW5mb3JtYXRpb24gYWJv
dXQgdGhlIHN0YXJ0aW5nL2VuZGluZyB0aW1lcyBhbmQgc3RhcnRpbmcvZW5kaW5nIHZhbHVlcyBm
b3IKKyAgLy8gZWFjaCB0aW1lIGludGVydmFsLgorICBsZXQgdGltZVZhbHVlSW5mbzsKIAotLy8g
VGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdGFydGluZyB2YWx1ZXMgYmV0d2VlbiBlYWNoIHRpbWUg
aW50ZXJ2YWwuCi12YXIgc3RhcnRpbmdWYWx1ZURlbHRhOwotICAgICAgCi0vLyBGb3IgYW55IGF1
dG9tYXRpb24gZnVuY3Rpb24gdGhhdCBoYXMgYW4gZW5kIG9yIHRhcmdldCB2YWx1ZSwgdGhlIGVu
ZCB2YWx1ZSBpcyBiYXNlZCB0aGUgc3RhcnRpbmcKLS8vIHZhbHVlIG9mIHRoZSB0aW1lIGludGVy
dmFsLiAgVGhlIHN0YXJ0aW5nIHZhbHVlIHdpbGwgYmUgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBi
eQotLy8gfHN0YXJ0RW5kVmFsdWVDaGFuZ2V8LiBXZSBjaG9vc2UgaGFsZiBvZiB8c3RhcnRpbmdW
YWx1ZURlbHRhfCBzbyB0aGF0IHRoZSBlbmRpbmcgdmFsdWUgd2lsbCBiZQotLy8gZGlzdGluY3Qg
ZnJvbSB0aGUgc3RhcnRpbmcgdmFsdWUgZm9yIG5leHQgdGltZSBpbnRlcnZhbC4gIFRoaXMgYWxs
b3dzIHVzIHRvIGRldGVjdCB3aGVyZSB0aGUgcmFtcAotLy8gYmVnaW5zIGFuZCBlbmRzLgotdmFy
IHN0YXJ0RW5kVmFsdWVDaGFuZ2U7CisgIC8vIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhcnRp
bmcgdmFsdWVzIGJldHdlZW4gZWFjaCB0aW1lIGludGVydmFsLgorICBsZXQgc3RhcnRpbmdWYWx1
ZURlbHRhOwogCi0vLyBEZWZhdWx0IHRocmVzaG9sZCB0byB1c2UgZm9yIGRldGVjdGluZyBkaXNj
b250aW51aXRpZXMgdGhhdCBzaG91bGQgYXBwZWFyIGF0IGVhY2ggdGltZSBpbnRlcnZhbC4KLXZh
ciBkaXNjb250aW51aXR5VGhyZXNob2xkOworICAvLyBGb3IgYW55IGF1dG9tYXRpb24gZnVuY3Rp
b24gdGhhdCBoYXMgYW4gZW5kIG9yIHRhcmdldCB2YWx1ZSwgdGhlIGVuZCB2YWx1ZQorICAvLyBp
cyBiYXNlZCB0aGUgc3RhcnRpbmcgdmFsdWUgb2YgdGhlIHRpbWUgaW50ZXJ2YWwuICBUaGUgc3Rh
cnRpbmcgdmFsdWUgd2lsbAorICAvLyBiZSBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIGJ5IHxzdGFy
dEVuZFZhbHVlQ2hhbmdlfC4gV2UgY2hvb3NlIGhhbGYgb2YKKyAgLy8gfHN0YXJ0aW5nVmFsdWVE
ZWx0YXwgc28gdGhhdCB0aGUgZW5kaW5nIHZhbHVlIHdpbGwgYmUgZGlzdGluY3QgZnJvbSB0aGUK
KyAgLy8gc3RhcnRpbmcgdmFsdWUgZm9yIG5leHQgdGltZSBpbnRlcnZhbC4gIFRoaXMgYWxsb3dz
IHVzIHRvIGRldGVjdCB3aGVyZSB0aGUKKyAgLy8gcmFtcCBiZWdpbnMgYW5kIGVuZHMuCisgIGxl
dCBzdGFydEVuZFZhbHVlQ2hhbmdlOwogCi0vLyBUaW1lIGludGVydmFsIGJldHdlZW4gdmFsdWUg
Y2hhbmdlcy4gIEl0IGlzIGJlc3QgaWYgMSAvIG51bWJlck9mVGVzdHMgaXMgbm90IGNsb3NlIHRv
IHRpbWVJbnRlcnZhbC4KLXZhciB0aW1lSW50ZXJ2YWwgPSAuMDM7CisgIC8vIERlZmF1bHQgdGhy
ZXNob2xkIHRvIHVzZSBmb3IgZGV0ZWN0aW5nIGRpc2NvbnRpbnVpdGllcyB0aGF0IHNob3VsZCBh
cHBlYXIKKyAgLy8gYXQgZWFjaCB0aW1lIGludGVydmFsLgorICBsZXQgZGlzY29udGludWl0eVRo
cmVzaG9sZDsKIAotLy8gU29tZSBzdWl0YWJsZSB0aW1lIGNvbnN0YW50IHNvIHRoYXQgd2UgY2Fu
IHNlZSBhIHNpZ25pZmljYW50IGNoYW5nZSBvdmVyIGEgdGltZUludGVydmFsLiAgVGhpcyBpcwot
Ly8gb25seSBuZWVkZWQgYnkgc2V0VGFyZ2V0QXRUaW1lKCkgd2hpY2ggbmVlZHMgYSB0aW1lIGNv
bnN0YW50LgotdmFyIHRpbWVDb25zdGFudCA9IHRpbWVJbnRlcnZhbCAvIDM7CisgIC8vIFRpbWUg
aW50ZXJ2YWwgYmV0d2VlbiB2YWx1ZSBjaGFuZ2VzLiAgSXQgaXMgYmVzdCBpZiAxIC8gbnVtYmVy
T2ZUZXN0cyBpcworICAvLyBub3QgY2xvc2UgdG8gdGltZUludGVydmFsLgorICBsZXQgdGltZUlu
dGVydmFsSW50ZXJuYWwgPSAuMDM7CiAKLXZhciBnYWluTm9kZTsKKyAgbGV0IGNvbnRleHQ7CiAK
LXZhciBjb250ZXh0OwotCi0vLyBNYWtlIHN1cmUgd2UgcmVuZGVyIGxvbmcgZW5vdWdoIHRvIGNh
cHR1cmUgYWxsIG9mIG91ciB0ZXN0IGRhdGEuCi1mdW5jdGlvbiByZW5kZXJMZW5ndGgobnVtYmVy
T2ZUZXN0cykKLXsKKyAgLy8gTWFrZSBzdXJlIHdlIHJlbmRlciBsb25nIGVub3VnaCB0byBjYXB0
dXJlIGFsbCBvZiBvdXIgdGVzdCBkYXRhLgorICBmdW5jdGlvbiByZW5kZXJMZW5ndGgobnVtYmVy
T2ZUZXN0cykgewogICAgIHJldHVybiB0aW1lVG9TYW1wbGVGcmFtZSgobnVtYmVyT2ZUZXN0cyAr
IDEpICogdGltZUludGVydmFsLCBzYW1wbGVSYXRlKTsKLX0KLQotLy8gQ3JlYXRlIGEgYnVmZmVy
IGNvbnRhaW5pbmcgdGhlIHNhbWUgY29uc3RhbnQgdmFsdWUuCi1mdW5jdGlvbiBjcmVhdGVDb25z
dGFudEJ1ZmZlcihjb250ZXh0LCBjb25zdGFudCwgbGVuZ3RoKSB7Ci0gICAgdmFyIGJ1ZmZlciA9
IGNvbnRleHQuY3JlYXRlQnVmZmVyKDEsIGxlbmd0aCwgY29udGV4dC5zYW1wbGVSYXRlKTsKLSAg
ICB2YXIgbiA9IGJ1ZmZlci5sZW5ndGg7Ci0gICAgdmFyIGRhdGEgPSBidWZmZXIuZ2V0Q2hhbm5l
bERhdGEoMCk7Ci0KLSAgICBmb3IgKHZhciBrID0gMDsgayA8IG47ICsraykgewotICAgICAgICBk
YXRhW2tdID0gY29uc3RhbnQ7Ci0gICAgfQorICB9CiAKLSAgICByZXR1cm4gYnVmZmVyOwotfQor
ICAvLyBDcmVhdGUgYSBjb25zdGFudCByZWZlcmVuY2Ugc2lnbmFsIHdpdGggdGhlIGdpdmVuIHx2
YWx1ZXwuICBCYXNpY2FsbHkgdGhlCisgIC8vIHNhbWUgYXMgfGNyZWF0ZUNvbnN0YW50QnVmZmVy
fCwgYnV0IHdpdGggdGhlIHBhcmFtZXRlcnMgdG8gbWF0Y2ggdGhlIG90aGVyCisgIC8vIGNyZWF0
ZSBmdW5jdGlvbnMuICBUaGUgfGVuZFZhbHVlfCBpcyBpZ25vcmVkLgorICBmdW5jdGlvbiBjcmVh
dGVDb25zdGFudEFycmF5KAorICAgICAgc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZSwgZW5kVmFs
dWUsIHNhbXBsZVJhdGUpIHsKKyAgICBsZXQgc3RhcnRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1l
KHN0YXJ0VGltZSwgc2FtcGxlUmF0ZSk7CisgICAgbGV0IGVuZEZyYW1lID0gdGltZVRvU2FtcGxl
RnJhbWUoZW5kVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgbGV0IGxlbmd0aCA9IGVuZEZyYW1lIC0g
c3RhcnRGcmFtZTsKIAotLy8gQ3JlYXRlIGEgY29uc3RhbnQgcmVmZXJlbmNlIHNpZ25hbCB3aXRo
IHRoZSBnaXZlbiB8dmFsdWV8LiAgQmFzaWNhbGx5IHRoZSBzYW1lIGFzCi0vLyB8Y3JlYXRlQ29u
c3RhbnRCdWZmZXJ8LCBidXQgd2l0aCB0aGUgcGFyYW1ldGVycyB0byBtYXRjaCB0aGUgb3RoZXIg
Y3JlYXRlIGZ1bmN0aW9ucy4gIFRoZQotLy8gfGVuZFZhbHVlfCBpcyBpZ25vcmVkLgotZnVuY3Rp
b24gY3JlYXRlQ29uc3RhbnRBcnJheShzdGFydFRpbWUsIGVuZFRpbWUsIHZhbHVlLCBlbmRWYWx1
ZSwgc2FtcGxlUmF0ZSkKLXsKLSAgICB2YXIgc3RhcnRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1l
KHN0YXJ0VGltZSwgc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIGVuZEZyYW1lID0gdGltZVRvU2FtcGxl
RnJhbWUoZW5kVGltZSwgc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIGxlbmd0aCA9IGVuZEZyYW1lIC0g
c3RhcnRGcmFtZTsKLQotICAgIHZhciBidWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250
ZXh0LCB2YWx1ZSwgbGVuZ3RoKTsKKyAgICBsZXQgYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZm
ZXIoY29udGV4dCwgbGVuZ3RoLCB2YWx1ZSk7CiAKICAgICByZXR1cm4gYnVmZmVyLmdldENoYW5u
ZWxEYXRhKDApOwotfQotCi0vLyBDcmVhdGUgYSBsaW5lYXIgcmFtcCBzdGFydGluZyBhdCB8c3Rh
cnRWYWx1ZXwgYW5kIGVuZGluZyBhdCB8ZW5kVmFsdWV8LiAgVGhlIHJhbXAgc3RhcnRzIGF0IHRp
bWUKLS8vIHxzdGFydFRpbWV8IGFuZCBlbmRzIGF0IHxlbmRUaW1lfC4gIChUaGUgc3RhcnQgYW5k
IGVuZCB0aW1lcyBhcmUgb25seSB1c2VkIHRvIGNvbXB1dGUgaG93IG1hbnkKLS8vIHNhbXBsZXMg
dG8gcmV0dXJuLikKLWZ1bmN0aW9uIGNyZWF0ZUxpbmVhclJhbXBBcnJheShzdGFydFRpbWUsIGVu
ZFRpbWUsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCBzYW1wbGVSYXRlKQotewotICAgIHZhciBzdGFy
dEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVSYXRlKTsKLSAgICB2
YXIgZW5kRnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShlbmRUaW1lLCBzYW1wbGVSYXRlKTsKLSAg
ICB2YXIgbGVuZ3RoID0gZW5kRnJhbWUgLSBzdGFydEZyYW1lOwotICAgIHZhciBhcnJheSA9IG5l
dyBBcnJheShsZW5ndGgpOwotCi0gICAgdmFyIHN0ZXAgPSAoZW5kVmFsdWUgLSBzdGFydFZhbHVl
KSAvIGxlbmd0aDsKLQorICB9CisKKyAgZnVuY3Rpb24gZ2V0U3RhcnRFbmRGcmFtZXMoc3RhcnRU
aW1lLCBlbmRUaW1lLCBzYW1wbGVSYXRlKSB7CisgICAgLy8gU3RhcnQgZnJhbWUgaXMgdGhlIGNl
aWxpbmcgb2YgdGhlIHN0YXJ0IHRpbWUgYmVjYXVzZSB0aGUgcmFtcCBzdGFydHMgYXQKKyAgICAv
LyBvciBhZnRlciB0aGUgc2FtcGxlIGZyYW1lLiAgRW5kIGZyYW1lIGlzIHRoZSBjZWlsaW5nIGJl
Y2F1c2UgaXQncyB0aGUKKyAgICAvLyBleGNsdXNpdmUgZW5kaW5nIGZyYW1lIG9mIHRoZSBhdXRv
bWF0aW9uLgorICAgIGxldCBzdGFydEZyYW1lID0gTWF0aC5jZWlsKHN0YXJ0VGltZSAqIHNhbXBs
ZVJhdGUpOworICAgIGxldCBlbmRGcmFtZSA9IE1hdGguY2VpbChlbmRUaW1lICogc2FtcGxlUmF0
ZSk7CisKKyAgICByZXR1cm4ge3N0YXJ0RnJhbWU6IHN0YXJ0RnJhbWUsIGVuZEZyYW1lOiBlbmRG
cmFtZX07CisgIH0KKworICAvLyBDcmVhdGUgYSBsaW5lYXIgcmFtcCBzdGFydGluZyBhdCB8c3Rh
cnRWYWx1ZXwgYW5kIGVuZGluZyBhdCB8ZW5kVmFsdWV8LiBUaGUKKyAgLy8gcmFtcCBzdGFydHMg
YXQgdGltZSB8c3RhcnRUaW1lfCBhbmQgZW5kcyBhdCB8ZW5kVGltZXwuICAoVGhlIHN0YXJ0IGFu
ZCBlbmQKKyAgLy8gdGltZXMgYXJlIG9ubHkgdXNlZCB0byBjb21wdXRlIGhvdyBtYW55IHNhbXBs
ZXMgdG8gcmV0dXJuLikKKyAgZnVuY3Rpb24gY3JlYXRlTGluZWFyUmFtcEFycmF5KAorICAgICAg
c3RhcnRUaW1lLCBlbmRUaW1lLCBzdGFydFZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkgewor
ICAgIGxldCBmcmFtZUluZm8gPSBnZXRTdGFydEVuZEZyYW1lcyhzdGFydFRpbWUsIGVuZFRpbWUs
IHNhbXBsZVJhdGUpOworICAgIGxldCBzdGFydEZyYW1lID0gZnJhbWVJbmZvLnN0YXJ0RnJhbWU7
CisgICAgbGV0IGVuZEZyYW1lID0gZnJhbWVJbmZvLmVuZEZyYW1lOworICAgIGxldCBsZW5ndGgg
PSBlbmRGcmFtZSAtIHN0YXJ0RnJhbWU7CisgICAgbGV0IGFycmF5ID0gbmV3IEFycmF5KGxlbmd0
aCk7CisKKyAgICBsZXQgc3RlcCA9IE1hdGguZnJvdW5kKAorICAgICAgICAoZW5kVmFsdWUgLSBz
dGFydFZhbHVlKSAvIChlbmRUaW1lIC0gc3RhcnRUaW1lKSAvIHNhbXBsZVJhdGUpOworICAgIGxl
dCBzdGFydCA9IE1hdGguZnJvdW5kKAorICAgICAgICBzdGFydFZhbHVlICsKKyAgICAgICAgKGVu
ZFZhbHVlIC0gc3RhcnRWYWx1ZSkgKiAoc3RhcnRGcmFtZSAvIHNhbXBsZVJhdGUgLSBzdGFydFRp
bWUpIC8KKyAgICAgICAgICAgIChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7CisKKyAgICBsZXQgc2xv
cGUgPSAoZW5kVmFsdWUgLSBzdGFydFZhbHVlKSAvIChlbmRUaW1lIC0gc3RhcnRUaW1lKTsKKwor
ICAgIC8vIHYodCkgPSB2MCArICh2MSAtIHYwKSoodC10MCkvKHQxLXQwKQogICAgIGZvciAoayA9
IDA7IGsgPCBsZW5ndGg7ICsraykgewotICAgICAgICBhcnJheVtrXSA9IHN0YXJ0VmFsdWUgKyBr
ICogc3RlcDsKKyAgICAgIC8vIGFycmF5W2tdID0gTWF0aC5mcm91bmQoc3RhcnQgKyBrICogc3Rl
cCk7CisgICAgICBsZXQgdCA9IChzdGFydEZyYW1lICsgaykgLyBzYW1wbGVSYXRlOworICAgICAg
YXJyYXlba10gPSBzdGFydFZhbHVlICsgc2xvcGUgKiAodCAtIHN0YXJ0VGltZSk7CiAgICAgfQog
CiAgICAgcmV0dXJuIGFycmF5OwotfQotCi0vLyBDcmVhdGUgYW4gZXhwb25lbnRpYWwgcmFtcCBz
dGFydGluZyBhdCB8c3RhcnRWYWx1ZXwgYW5kIGVuZGluZyBhdCB8ZW5kVmFsdWV8LiAgVGhlIHJh
bXAgc3RhcnRzIGF0Ci0vLyB0aW1lIHxzdGFydFRpbWV8IGFuZCBlbmRzIGF0IHxlbmRUaW1lfC4g
IChUaGUgc3RhcnQgYW5kIGVuZCB0aW1lcyBhcmUgb25seSB1c2VkIHRvIGNvbXB1dGUgaG93Ci0v
LyBtYW55IHNhbXBsZXMgdG8gcmV0dXJuLikKLWZ1bmN0aW9uIGNyZWF0ZUV4cG9uZW50aWFsUmFt
cEFycmF5KHN0YXJ0VGltZSwgZW5kVGltZSwgc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIHNhbXBsZVJh
dGUpCi17Ci0gICAgdmFyIHN0YXJ0RnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShzdGFydFRpbWUs
IHNhbXBsZVJhdGUpOwotICAgIHZhciBlbmRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKGVuZFRp
bWUsIHNhbXBsZVJhdGUpOwotICAgIHZhciBsZW5ndGggPSBlbmRGcmFtZSAtIHN0YXJ0RnJhbWU7
Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5KGxlbmd0aCk7Ci0KLSAgICB2YXIgbXVsdGlwbGll
ciA9IE1hdGgucG93KGVuZFZhbHVlIC8gc3RhcnRWYWx1ZSwgMSAvIGxlbmd0aCk7Ci0gICAgCi0g
ICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgewotICAgICAgICBhcnJheVtrXSA9
IHN0YXJ0VmFsdWUgKiBNYXRoLnBvdyhtdWx0aXBsaWVyLCBrKTsKKyAgfQorCisgIC8vIENyZWF0
ZSBhbiBleHBvbmVudGlhbCByYW1wIHN0YXJ0aW5nIGF0IHxzdGFydFZhbHVlfCBhbmQgZW5kaW5n
IGF0CisgIC8vIHxlbmRWYWx1ZXwuIFRoZSByYW1wIHN0YXJ0cyBhdCB0aW1lIHxzdGFydFRpbWV8
IGFuZCBlbmRzIGF0IHxlbmRUaW1lfC4KKyAgLy8gKFRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGFy
ZSBvbmx5IHVzZWQgdG8gY29tcHV0ZSBob3cgbWFueSBzYW1wbGVzIHRvCisgIC8vIHJldHVybi4p
CisgIGZ1bmN0aW9uIGNyZWF0ZUV4cG9uZW50aWFsUmFtcEFycmF5KAorICAgICAgc3RhcnRUaW1l
LCBlbmRUaW1lLCBzdGFydFZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkgeworICAgIGxldCBk
ZWx0YVRpbWUgPSBlbmRUaW1lIC0gc3RhcnRUaW1lOworCisgICAgbGV0IGZyYW1lSW5mbyA9IGdl
dFN0YXJ0RW5kRnJhbWVzKHN0YXJ0VGltZSwgZW5kVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgbGV0
IHN0YXJ0RnJhbWUgPSBmcmFtZUluZm8uc3RhcnRGcmFtZTsKKyAgICBsZXQgZW5kRnJhbWUgPSBm
cmFtZUluZm8uZW5kRnJhbWU7CisgICAgbGV0IGxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFt
ZTsKKyAgICBsZXQgYXJyYXkgPSBuZXcgQXJyYXkobGVuZ3RoKTsKKworICAgIGxldCByYXRpbyA9
IGVuZFZhbHVlIC8gc3RhcnRWYWx1ZTsKKworICAgIC8vIHYodCkgPSB2MCoodjEvdjApXigodC10
MCkvKHQxLXQwKSkKKyAgICBmb3IgKGxldCBrID0gMDsgayA8IGxlbmd0aDsgKytrKSB7CisgICAg
ICBsZXQgdCA9IE1hdGguZnJvdW5kKChzdGFydEZyYW1lICsgaykgLyBzYW1wbGVSYXRlKTsKKyAg
ICAgIGFycmF5W2tdID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgc3RhcnRWYWx1ZSAqIE1hdGgu
cG93KHJhdGlvLCAodCAtIHN0YXJ0VGltZSkgLyBkZWx0YVRpbWUpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gYXJyYXk7Ci19CisgIH0KIAotZnVuY3Rpb24gZGlzY3JldGVUaW1lQ29uc3RhbnRGb3JT
YW1wbGVSYXRlKHRpbWVDb25zdGFudCwgc2FtcGxlUmF0ZSkKLXsKKyAgZnVuY3Rpb24gZGlzY3Jl
dGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlKHRpbWVDb25zdGFudCwgc2FtcGxlUmF0ZSkgewog
ICAgIHJldHVybiAxIC0gTWF0aC5leHAoLTEgLyAoc2FtcGxlUmF0ZSAqIHRpbWVDb25zdGFudCkp
OwotfQotCi0vLyBDcmVhdGUgYSBzaWduYWwgdGhhdCBzdGFydHMgYXQgfHN0YXJ0VmFsdWV8IGFu
ZCBleHBvbmVudGlhbGx5IGFwcHJvYWNoZXMgdGhlIHRhcmdldCB2YWx1ZSBvZgotLy8gfHRhcmdl
dFZhbHVlfCwgdXNpbmcgYSB0aW1lIGNvbnN0YW50IG9mIHx0aW1lQ29uc3RhbnR8LiAgVGhlIHJh
bXAgc3RhcnRzIGF0IHRpbWUgfHN0YXJ0VGltZXwgYW5kCi0vLyBlbmRzIGF0IHxlbmRUaW1lfC4g
IChUaGUgc3RhcnQgYW5kIGVuZCB0aW1lcyBhcmUgb25seSB1c2VkIHRvIGNvbXB1dGUgaG93IG1h
bnkgc2FtcGxlcyB0bwotLy8gcmV0dXJuLikKLWZ1bmN0aW9uIGNyZWF0ZUV4cG9uZW50aWFsQXBw
cm9hY2hBcnJheShzdGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0VmFsdWUsIHRhcmdldFZhbHVlLCBz
YW1wbGVSYXRlLCB0aW1lQ29uc3RhbnQpCi17Ci0gICAgdmFyIHN0YXJ0RnJhbWUgPSB0aW1lVG9T
YW1wbGVGcmFtZShzdGFydFRpbWUsIHNhbXBsZVJhdGUpOwotICAgIHZhciBlbmRGcmFtZSA9IHRp
bWVUb1NhbXBsZUZyYW1lKGVuZFRpbWUsIHNhbXBsZVJhdGUpOwotICAgIHZhciBsZW5ndGggPSBl
bmRGcmFtZSAtIHN0YXJ0RnJhbWU7Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5KGxlbmd0aCk7
Ci0gICAgdmFyIGMgPSBkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBsZVJhdGUodGltZUNvbnN0
YW50LCBzYW1wbGVSYXRlKTsKLQotICAgIHZhciB2YWx1ZSA9IHN0YXJ0VmFsdWU7Ci0gICAgCi0g
ICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgewotICAgICAgICBhcnJheVtrXSA9
IHZhbHVlOwotICAgICAgICB2YWx1ZSArPSAodGFyZ2V0VmFsdWUgLSB2YWx1ZSkgKiBjOworICB9
CisKKyAgLy8gQ3JlYXRlIGEgc2lnbmFsIHRoYXQgc3RhcnRzIGF0IHxzdGFydFZhbHVlfCBhbmQg
ZXhwb25lbnRpYWxseSBhcHByb2FjaGVzCisgIC8vIHRoZSB0YXJnZXQgdmFsdWUgb2YgfHRhcmdl
dFZhbHVlfCwgdXNpbmcgYSB0aW1lIGNvbnN0YW50IG9mIHx0aW1lQ29uc3RhbnR8LgorICAvLyBU
aGUgcmFtcCBzdGFydHMgYXQgdGltZSB8c3RhcnRUaW1lfCBhbmQgZW5kcyBhdCB8ZW5kVGltZXwu
ICAoVGhlIHN0YXJ0IGFuZAorICAvLyBlbmQgdGltZXMgYXJlIG9ubHkgdXNlZCB0byBjb21wdXRl
IGhvdyBtYW55IHNhbXBsZXMgdG8gcmV0dXJuLikKKyAgZnVuY3Rpb24gY3JlYXRlRXhwb25lbnRp
YWxBcHByb2FjaEFycmF5KAorICAgICAgc3RhcnRUaW1lLCBlbmRUaW1lLCBzdGFydFZhbHVlLCB0
YXJnZXRWYWx1ZSwgc2FtcGxlUmF0ZSwgdGltZUNvbnN0YW50KSB7CisgICAgbGV0IHN0YXJ0RnJh
bWVGbG9hdCA9IHN0YXJ0VGltZSAqIHNhbXBsZVJhdGU7CisgICAgbGV0IGZyYW1lSW5mbyA9IGdl
dFN0YXJ0RW5kRnJhbWVzKHN0YXJ0VGltZSwgZW5kVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgbGV0
IHN0YXJ0RnJhbWUgPSBmcmFtZUluZm8uc3RhcnRGcmFtZTsKKyAgICBsZXQgZW5kRnJhbWUgPSBm
cmFtZUluZm8uZW5kRnJhbWU7CisgICAgbGV0IGxlbmd0aCA9IE1hdGguZmxvb3IoZW5kRnJhbWUg
LSBzdGFydEZyYW1lKTsKKyAgICBsZXQgYXJyYXkgPSBuZXcgQXJyYXkobGVuZ3RoKTsKKyAgICBs
ZXQgYyA9IGRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIHNh
bXBsZVJhdGUpOworCisgICAgbGV0IGRlbHRhID0gc3RhcnRWYWx1ZSAtIHRhcmdldFZhbHVlOwor
CisgICAgLy8gdih0KSA9IHYxICsgKHYwIC0gdjEpICogZXhwKC0odC10MCkvdGF1KQorICAgIGZv
ciAobGV0IGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKKyAgICAgIGxldCB0ID0gKHN0YXJ0RnJh
bWUgKyBrKSAvIHNhbXBsZVJhdGU7CisgICAgICBsZXQgdmFsdWUgPQorICAgICAgICAgIHRhcmdl
dFZhbHVlICsgZGVsdGEgKiBNYXRoLmV4cCgtKHQgLSBzdGFydFRpbWUpIC8gdGltZUNvbnN0YW50
KTsKKyAgICAgIGFycmF5W2tdID0gdmFsdWU7CisgICAgfQorCisgICAgcmV0dXJuIGFycmF5Owor
ICB9CisKKyAgLy8gQ3JlYXRlIGEgc2luZSB3YXZlIG9mIHRoZSBzcGVjaWZpZWQgZHVyYXRpb24u
CisgIGZ1bmN0aW9uIGNyZWF0ZVJlZmVyZW5jZVNpbmVBcnJheSgKKyAgICAgIHN0YXJ0VGltZSwg
ZW5kVGltZSwgc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIHNhbXBsZVJhdGUpIHsKKyAgICAvLyBJZ25v
cmUgfHN0YXJ0VmFsdWV8IGFuZCB8ZW5kVmFsdWV8IGZvciB0aGUgc2luZSB3YXZlLgorICAgIGxl
dCBjdXJ2ZSA9IGNyZWF0ZVNpbmVXYXZlQXJyYXkoCisgICAgICAgIGVuZFRpbWUgLSBzdGFydFRp
bWUsIGZyZXFIeiwgc2luZUFtcGxpdHVkZSwgc2FtcGxlUmF0ZSk7CisgICAgLy8gU2FtcGxlIHRo
ZSBjdXJ2ZSBhcHByb3ByaWF0ZWx5LgorICAgIGxldCBmcmFtZUluZm8gPSBnZXRTdGFydEVuZEZy
YW1lcyhzdGFydFRpbWUsIGVuZFRpbWUsIHNhbXBsZVJhdGUpOworICAgIGxldCBzdGFydEZyYW1l
ID0gZnJhbWVJbmZvLnN0YXJ0RnJhbWU7CisgICAgbGV0IGVuZEZyYW1lID0gZnJhbWVJbmZvLmVu
ZEZyYW1lOworICAgIGxldCBsZW5ndGggPSBNYXRoLmZsb29yKGVuZEZyYW1lIC0gc3RhcnRGcmFt
ZSk7CisgICAgbGV0IGFycmF5ID0gbmV3IEFycmF5KGxlbmd0aCk7CisKKyAgICAvLyB2KHQpID0g
bGluZWFybHkgaW50ZXJwb2xhdGUgYmV0d2VlbiBWW2tdIGFuZCBWW2sgKyAxXSB3aGVyZSBrID0K
KyAgICAvLyBmbG9vcigoTi0xKS9kdXJhdGlvbioodCAtIHQwKSkKKyAgICBsZXQgZiA9IChsZW5n
dGggLSAxKSAvIChlbmRUaW1lIC0gc3RhcnRUaW1lKTsKKworICAgIGZvciAobGV0IGsgPSAwOyBr
IDwgbGVuZ3RoOyArK2spIHsKKyAgICAgIGxldCB0ID0gKHN0YXJ0RnJhbWUgKyBrKSAvIHNhbXBs
ZVJhdGU7CisgICAgICBsZXQgaW5kZXhGbG9hdCA9IGYgKiAodCAtIHN0YXJ0VGltZSk7CisgICAg
ICBsZXQgaW5kZXggPSBNYXRoLmZsb29yKGluZGV4RmxvYXQpOworICAgICAgaWYgKGluZGV4ICsg
MSA8IGxlbmd0aCkgeworICAgICAgICBsZXQgdjAgPSBjdXJ2ZVtpbmRleF07CisgICAgICAgIGxl
dCB2MSA9IGN1cnZlW2luZGV4ICsgMV07CisgICAgICAgIGFycmF5W2tdID0gdjAgKyAodjEgLSB2
MCkgKiAoaW5kZXhGbG9hdCAtIGluZGV4KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGFycmF5
W2tdID0gY3VydmVbbGVuZ3RoIC0gMV07CisgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGFy
cmF5OwotfQotCi0vLyBDcmVhdGUgYSBzaW5lIHdhdmUgb2YgdGhlIGdpdmVuIGZyZXF1ZW5jeSBh
bmQgYW1wbGl0dWRlLiAgVGhlIHNpbmUgd2F2ZSBpcyBvZmZzZXQgYnkgaGFsZiB0aGUKLS8vIGFt
cGxpdHVkZSBzbyB0aGF0IHJlc3VsdCBpcyBhbHdheXMgcG9zaXRpdmUuCi1mdW5jdGlvbiBjcmVh
dGVTaW5lV2F2ZUFycmF5KGR1cmF0aW9uU2Vjb25kcywgZnJlcUh6LCBhbXBsaXR1ZGUsIHNhbXBs
ZVJhdGUpCi17Ci0gICAgdmFyIGxlbmd0aCA9IHRpbWVUb1NhbXBsZUZyYW1lKGR1cmF0aW9uU2Vj
b25kcywgc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIHNpZ25hbCA9IG5ldyBGbG9hdDMyQXJyYXkobGVu
Z3RoKTsKLSAgICB2YXIgb21lZ2EgPSAyICogTWF0aC5QSSAqIGZyZXFIeiAvIHNhbXBsZVJhdGU7
Ci0gICAgdmFyIGhhbGZBbXBsaXR1ZGUgPSBhbXBsaXR1ZGUgLyAyOwotICAgIAotICAgIGZvciAo
dmFyIGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKLSAgICAgICAgc2lnbmFsW2tdID0gaGFsZkFt
cGxpdHVkZSArIGhhbGZBbXBsaXR1ZGUgKiBNYXRoLnNpbihvbWVnYSAqIGspOworICB9CisKKyAg
Ly8gQ3JlYXRlIGEgc2luZSB3YXZlIG9mIHRoZSBnaXZlbiBmcmVxdWVuY3kgYW5kIGFtcGxpdHVk
ZS4gIFRoZSBzaW5lIHdhdmUgaXMKKyAgLy8gb2Zmc2V0IGJ5IGhhbGYgdGhlIGFtcGxpdHVkZSBz
byB0aGF0IHJlc3VsdCBpcyBhbHdheXMgcG9zaXRpdmUuCisgIGZ1bmN0aW9uIGNyZWF0ZVNpbmVX
YXZlQXJyYXkoZHVyYXRpb25TZWNvbmRzLCBmcmVxSHosIGFtcGxpdHVkZSwgc2FtcGxlUmF0ZSkg
eworICAgIGxldCBsZW5ndGggPSB0aW1lVG9TYW1wbGVGcmFtZShkdXJhdGlvblNlY29uZHMsIHNh
bXBsZVJhdGUpOworICAgIGxldCBzaWduYWwgPSBuZXcgRmxvYXQzMkFycmF5KGxlbmd0aCk7Cisg
ICAgbGV0IG9tZWdhID0gMiAqIE1hdGguUEkgKiBmcmVxSHogLyBzYW1wbGVSYXRlOworICAgIGxl
dCBoYWxmQW1wbGl0dWRlID0gYW1wbGl0dWRlIC8gMjsKKworICAgIGZvciAobGV0IGsgPSAwOyBr
IDwgbGVuZ3RoOyArK2spIHsKKyAgICAgIHNpZ25hbFtrXSA9IGhhbGZBbXBsaXR1ZGUgKyBoYWxm
QW1wbGl0dWRlICogTWF0aC5zaW4ob21lZ2EgKiBrKTsKICAgICB9CiAKICAgICByZXR1cm4gc2ln
bmFsOwotfQorICB9CiAKLS8vIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBzdGFy
dGluZyB2YWx1ZSBhbmQgdGhlIGVuZGluZyB2YWx1ZSBmb3IgdGltZSBpbnRlcnZhbAotLy8gfHRp
bWVJbnRlcnZhbEluZGV4fC4gIFdlIGFsdGVybmF0ZSBiZXR3ZWVuIGFuIGVuZCB2YWx1ZSB0aGF0
IGlzIGFib3ZlIG9yIGJlbG93IHRoZSBzdGFydGluZwotLy8gdmFsdWUuCi1mdW5jdGlvbiBlbmRW
YWx1ZURlbHRhKHRpbWVJbnRlcnZhbEluZGV4KQoteworICAvLyBSZXR1cm4gdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiB0aGUgc3RhcnRpbmcgdmFsdWUgYW5kIHRoZSBlbmRpbmcgdmFsdWUgZm9yCisg
IC8vIHRpbWUgaW50ZXJ2YWwgfHRpbWVJbnRlcnZhbEluZGV4fC4gIFdlIGFsdGVybmF0ZSBiZXR3
ZWVuIGFuIGVuZCB2YWx1ZSB0aGF0CisgIC8vIGlzIGFib3ZlIG9yIGJlbG93IHRoZSBzdGFydGlu
ZyB2YWx1ZS4KKyAgZnVuY3Rpb24gZW5kVmFsdWVEZWx0YSh0aW1lSW50ZXJ2YWxJbmRleCkgewog
ICAgIGlmICh0aW1lSW50ZXJ2YWxJbmRleCAmIDEpIHsKLSAgICAgICAgcmV0dXJuIC1zdGFydEVu
ZFZhbHVlQ2hhbmdlOworICAgICAgcmV0dXJuIC1zdGFydEVuZFZhbHVlQ2hhbmdlOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHJldHVybiBzdGFydEVuZFZhbHVlQ2hhbmdlOworICAgICAgcmV0dXJu
IHN0YXJ0RW5kVmFsdWVDaGFuZ2U7CiAgICAgfQotfQotCi0vLyBSZXR1cm4gdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiB0aGUgc3RhcnRpbmcgdmFsdWUgYXQgfHRpbWVJbnRlcnZhbEluZGV4fCBhbmQg
dGhlIHN0YXJ0aW5nIHZhbHVlIGF0Ci0vLyB0aGUgbmV4dCB0aW1lIGludGVydmFsLiAgU2luY2Ug
d2Ugc3RhcnRlZCBhdCBhIGxhcmdlIGluaXRpYWwgdmFsdWUsIHdlIGRlY3JlYXNlIHRoZSB2YWx1
ZSBhdCBlYWNoCi0vLyB0aW1lIGludGVydmFsLgotZnVuY3Rpb24gdmFsdWVVcGRhdGUodGltZUlu
dGVydmFsSW5kZXgpCi17CisgIH0KKworICAvLyBSZWxhdGl2ZSBlcnJvciBtZXRyaWMKKyAgZnVu
Y3Rpb24gcmVsYXRpdmVFcnJvck1ldHJpYyhhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgcmV0dXJu
IChhY3R1YWwgLSBleHBlY3RlZCkgLyBNYXRoLmFicyhleHBlY3RlZCk7CisgIH0KKworICAvLyBE
aWZmZXJlbmNlIG1ldHJpYworICBmdW5jdGlvbiBkaWZmZXJlbmNlRXJyb3JNZXRyaWMoYWN0dWFs
LCBleHBlY3RlZCkgeworICAgIHJldHVybiBhY3R1YWwgLSBleHBlY3RlZDsKKyAgfQorCisgIC8v
IFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBzdGFydGluZyB2YWx1ZSBhdCB8dGlt
ZUludGVydmFsSW5kZXh8IGFuZAorICAvLyB0aGUgc3RhcnRpbmcgdmFsdWUgYXQgdGhlIG5leHQg
dGltZSBpbnRlcnZhbC4gIFNpbmNlIHdlIHN0YXJ0ZWQgYXQgYSBsYXJnZQorICAvLyBpbml0aWFs
IHZhbHVlLCB3ZSBkZWNyZWFzZSB0aGUgdmFsdWUgYXQgZWFjaCB0aW1lIGludGVydmFsLgorICBm
dW5jdGlvbiB2YWx1ZVVwZGF0ZSh0aW1lSW50ZXJ2YWxJbmRleCkgewogICAgIHJldHVybiAtc3Rh
cnRpbmdWYWx1ZURlbHRhOwotfQotCi0vLyBDb21wYXJlIGEgc2VjdGlvbiBvZiB0aGUgcmVuZGVy
ZWQgZGF0YSBhZ2FpbnN0IG91ciBleHBlY3RlZCBzaWduYWwuCi1mdW5jdGlvbiBjb21wYXJlUGFy
dGlhbFNpZ25hbHMocmVuZGVyZWQsIGV4cGVjdGVkRnVuY3Rpb24sIHN0YXJ0VGltZSwgZW5kVGlt
ZSwgdmFsdWVJbmZvLCBzYW1wbGVSYXRlKQotewotICAgIHZhciBzdGFydFNhbXBsZSA9IHRpbWVU
b1NhbXBsZUZyYW1lKHN0YXJ0VGltZSwgc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIGV4cGVjdGVkID0g
ZXhwZWN0ZWRGdW5jdGlvbihzdGFydFRpbWUsIGVuZFRpbWUsIHZhbHVlSW5mby5zdGFydFZhbHVl
LCB2YWx1ZUluZm8uZW5kVmFsdWUsIHNhbXBsZVJhdGUsIHRpbWVDb25zdGFudCk7Ci0KLSAgICB2
YXIgbiA9IGV4cGVjdGVkLmxlbmd0aDsKLSAgICB2YXIgbWF4RXJyb3IgPSAtMTsKLSAgICB2YXIg
bWF4RXJyb3JJbmRleCA9IC0xOwotICAgIAotICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbjsgKytr
KSB7Ci0gICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBwYXNzIHRoZXNlIHRlc3RzIGJlY2F1
c2UgYSBOYU4gaGFzIGJlZW4gZ2VuZXJhdGVkIGluIGVpdGhlciB0aGUKLSAgICAgICAgLy8gcmVu
ZGVyZWQgZGF0YSBvciB0aGUgcmVmZXJlbmNlIGRhdGEuCi0gICAgICAgIGlmICghaXNWYWxpZE51
bWJlcihyZW5kZXJlZFtzdGFydFNhbXBsZSArIGtdKSkgewotICAgICAgICAgICAgbWF4RXJyb3Ig
PSBJbmZpbml0eTsKLSAgICAgICAgICAgIG1heEVycm9ySW5kZXggPSBzdGFydFNhbXBsZSArIGs7
Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJOYU4gb3IgaW5maW5pdHkgZm9yIHJlbmRlcmVkIGRh
dGEgYXQgIiArIG1heEVycm9ySW5kZXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKCFpc1ZhbGlkTnVtYmVyKGV4cGVjdGVkW2tdKSkgewotICAgICAgICAgICAg
bWF4RXJyb3IgPSBJbmZpbml0eTsKLSAgICAgICAgICAgIG1heEVycm9ySW5kZXggPSBzdGFydFNh
bXBsZSArIGs7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJOYW4gb3IgaW5maW5pdHkgZm9yIHJl
ZmVyZW5jZSBkYXRhIGF0ICIgKyBtYXhFcnJvckluZGV4KTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIHZhciBlcnJvciA9IE1hdGguYWJzKHJlbmRlcmVkW3N0YXJ0U2Ft
cGxlICsga10gLSBleHBlY3RlZFtrXSk7Ci0gICAgICAgIGlmIChlcnJvciA+IG1heEVycm9yKSB7
Ci0gICAgICAgICAgICBtYXhFcnJvciA9IGVycm9yOwotICAgICAgICAgICAgbWF4RXJyb3JJbmRl
eCA9IGs7Ci0gICAgICAgIH0KKyAgfQorCisgIC8vIENvbXBhcmUgYSBzZWN0aW9uIG9mIHRoZSBy
ZW5kZXJlZCBkYXRhIGFnYWluc3Qgb3VyIGV4cGVjdGVkIHNpZ25hbC4KKyAgZnVuY3Rpb24gY29t
cGFyZVBhcnRpYWxTaWduYWxzKAorICAgICAgc2hvdWxkLCByZW5kZXJlZCwgZXhwZWN0ZWRGdW5j
dGlvbiwgc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZUluZm8sCisgICAgICBzYW1wbGVSYXRlLCBl
cnJvck1ldHJpYykgeworICAgIGxldCBzdGFydFNhbXBsZSA9IHRpbWVUb1NhbXBsZUZyYW1lKHN0
YXJ0VGltZSwgc2FtcGxlUmF0ZSk7CisgICAgbGV0IGV4cGVjdGVkID0gZXhwZWN0ZWRGdW5jdGlv
bigKKyAgICAgICAgc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZUluZm8uc3RhcnRWYWx1ZSwgdmFs
dWVJbmZvLmVuZFZhbHVlLAorICAgICAgICBzYW1wbGVSYXRlLCB0aW1lQ29uc3RhbnQpOworCisg
ICAgbGV0IG4gPSBleHBlY3RlZC5sZW5ndGg7CisgICAgbGV0IG1heEVycm9yID0gLTE7CisgICAg
bGV0IG1heEVycm9ySW5kZXggPSAtMTsKKworICAgIGZvciAobGV0IGsgPSAwOyBrIDwgbjsgKytr
KSB7CisgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyB0aGVzZSB0ZXN0cyBiZWNhdXNl
IGEgTmFOIGhhcyBiZWVuIGdlbmVyYXRlZCBpbgorICAgICAgLy8gZWl0aGVyIHRoZQorICAgICAg
Ly8gcmVuZGVyZWQgZGF0YSBvciB0aGUgcmVmZXJlbmNlIGRhdGEuCisgICAgICBpZiAoIWlzVmFs
aWROdW1iZXIocmVuZGVyZWRbc3RhcnRTYW1wbGUgKyBrXSkpIHsKKyAgICAgICAgbWF4RXJyb3Ig
PSBJbmZpbml0eTsKKyAgICAgICAgbWF4RXJyb3JJbmRleCA9IHN0YXJ0U2FtcGxlICsgazsKKyAg
ICAgICAgc2hvdWxkKAorICAgICAgICAgICAgaXNWYWxpZE51bWJlcihyZW5kZXJlZFtzdGFydFNh
bXBsZSArIGtdKSwKKyAgICAgICAgICAgICdOYU4gb3IgaW5maW5pdHkgZm9yIHJlbmRlcmVkIGRh
dGEgYXQgJyArIG1heEVycm9ySW5kZXgpCisgICAgICAgICAgICAuYmVUcnVlKCk7CisgICAgICAg
IGJyZWFrOworICAgICAgfQorICAgICAgaWYgKCFpc1ZhbGlkTnVtYmVyKGV4cGVjdGVkW2tdKSkg
eworICAgICAgICBtYXhFcnJvciA9IEluZmluaXR5OworICAgICAgICBtYXhFcnJvckluZGV4ID0g
c3RhcnRTYW1wbGUgKyBrOworICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBpc1ZhbGlkTnVt
YmVyKGV4cGVjdGVkW2tdKSwKKyAgICAgICAgICAgICdOYU4gb3IgaW5maW5pdHkgZm9yIHJlbmRl
cmVkIGRhdGEgYXQgJyArIG1heEVycm9ySW5kZXgpCisgICAgICAgICAgICAuYmVUcnVlKCk7Cisg
ICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgbGV0IGVycm9yID0gTWF0aC5hYnMoZXJyb3JN
ZXRyaWMocmVuZGVyZWRbc3RhcnRTYW1wbGUgKyBrXSwgZXhwZWN0ZWRba10pKTsKKyAgICAgIGlm
IChlcnJvciA+IG1heEVycm9yKSB7CisgICAgICAgIG1heEVycm9yID0gZXJyb3I7CisgICAgICAg
IG1heEVycm9ySW5kZXggPSBrOworICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiB7bWF4RXJy
b3IgOiBtYXhFcnJvciwgaW5kZXggOiBtYXhFcnJvckluZGV4fTsKLX0KKyAgICByZXR1cm4ge21h
eEVycm9yOiBtYXhFcnJvciwgaW5kZXg6IG1heEVycm9ySW5kZXgsIGV4cGVjdGVkOiBleHBlY3Rl
ZH07CisgIH0KIAotLy8gRmluZCB0aGUgZGlzY29udGludWl0aWVzIGluIHRoZSBkYXRhIGFuZCBj
b21wYXJlIHRoZSBsb2NhdGlvbnMgb2YgdGhlIGRpc2NvbnRpbnVpdGllcyB3aXRoIHRoZQotLy8g
dGltZXMgdGhhdCBkZWZpbmUgdGhlIHRpbWUgaW50ZXJ2YWxzLiBUaGVyZSBpcyBhIGRpc2NvbnRp
bnVpdHkgaWYgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgotLy8gc3VjY2Vzc2l2ZSBzYW1wbGVzIGV4
Y2VlZHMgdGhlIHRocmVzaG9sZC4KLWZ1bmN0aW9uIHZlcmlmeURpc2NvbnRpbnVpdGllcyh2YWx1
ZXMsIHRpbWVzLCB0aHJlc2hvbGQpCi17Ci0gICAgdmFyIG4gPSB2YWx1ZXMubGVuZ3RoOwotICAg
IHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgICB2YXIgYmFkTG9jYXRpb25zID0gMDsKLSAgICB2YXIg
YnJlYWtzID0gW107CisgIC8vIEZpbmQgdGhlIGRpc2NvbnRpbnVpdGllcyBpbiB0aGUgZGF0YSBh
bmQgY29tcGFyZSB0aGUgbG9jYXRpb25zIG9mIHRoZQorICAvLyBkaXNjb250aW51aXRpZXMgd2l0
aCB0aGUgdGltZXMgdGhhdCBkZWZpbmUgdGhlIHRpbWUgaW50ZXJ2YWxzLiBUaGVyZSBpcyBhCisg
IC8vIGRpc2NvbnRpbnVpdHkgaWYgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdWNjZXNzaXZlIHNh
bXBsZXMgZXhjZWVkcyB0aGUKKyAgLy8gdGhyZXNob2xkLgorICBmdW5jdGlvbiB2ZXJpZnlEaXNj
b250aW51aXRpZXMoc2hvdWxkLCB2YWx1ZXMsIHRpbWVzLCB0aHJlc2hvbGQpIHsKKyAgICBsZXQg
biA9IHZhbHVlcy5sZW5ndGg7CisgICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworICAgIGxldCBiYWRM
b2NhdGlvbnMgPSAwOworICAgIGxldCBicmVha3MgPSBbXTsKIAogICAgIC8vIEZpbmQgZGlzY29u
dGludWl0aWVzLgotICAgIGZvciAodmFyIGsgPSAxOyBrIDwgbjsgKytrKSB7Ci0gICAgICAgIGlm
IChNYXRoLmFicyh2YWx1ZXNba10gLSB2YWx1ZXNbayAtIDFdKSA+IHRocmVzaG9sZCkgewotICAg
ICAgICAgICAgYnJlYWtzLnB1c2goayk7Ci0gICAgICAgIH0KKyAgICBmb3IgKGxldCBrID0gMTsg
ayA8IG47ICsraykgeworICAgICAgaWYgKE1hdGguYWJzKHZhbHVlc1trXSAtIHZhbHVlc1trIC0g
MV0pID4gdGhyZXNob2xkKSB7CisgICAgICAgIGJyZWFrcy5wdXNoKGspOworICAgICAgfQogICAg
IH0KIAotICAgIHZhciB0ZXN0Q291bnQ7CisgICAgbGV0IHRlc3RDb3VudDsKIAotICAgIC8vIElm
IHRoZXJlIGFyZSBudW1iZXJPZlRlc3RzIGludGVydmFscywgdGhlcmUgYXJlIG9ubHkgbnVtYmVy
T2ZUZXN0cyAtIDEgaW50ZXJuYWwgaW50ZXJ2YWwKLSAgICAvLyBib3VuZGFyaWVzLiBIZW5jZSB0
aGUgbWF4aW11bSBudW1iZXIgb2YgZGlzY29udGludXRpZXMgd2UgZXhwZWN0IHRvIGZpbmQgaXMg
bnVtYmVyT2ZUZXN0cyAtCi0gICAgLy8gMS4gSWYgd2UgZmluZCBtb3JlIHRoYW4gdGhhdCwgd2Ug
aGF2ZSBubyByZWZlcmVuY2UgdG8gY29tcGFyZSBhZ2FpbnN0LiBXZSBhbHNvIGFzc3VtZSB0aGF0
Ci0gICAgLy8gdGhlIGFjdHVhbCBkaXNjb250aW51aXRpZXMgYXJlIGNsb3NlIHRvIHRoZSBleHBl
Y3RlZCBvbmVzLgorICAgIC8vIElmIHRoZXJlIGFyZSBudW1iZXJPZlRlc3RzIGludGVydmFscywg
dGhlcmUgYXJlIG9ubHkgbnVtYmVyT2ZUZXN0cyAtIDEKKyAgICAvLyBpbnRlcm5hbCBpbnRlcnZh
bCBib3VuZGFyaWVzLiBIZW5jZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlzY29udGludXRpZXMK
KyAgICAvLyB3ZSBleHBlY3QgdG8gZmluZCBpcyBudW1iZXJPZlRlc3RzIC0gMS4gSWYgd2UgZmlu
ZCBtb3JlIHRoYW4gdGhhdCwgd2UKKyAgICAvLyBoYXZlIG5vIHJlZmVyZW5jZSB0byBjb21wYXJl
IGFnYWluc3QuIFdlIGFsc28gYXNzdW1lIHRoYXQgdGhlIGFjdHVhbAorICAgIC8vIGRpc2NvbnRp
bnVpdGllcyBhcmUgY2xvc2UgdG8gdGhlIGV4cGVjdGVkIG9uZXMuCiAgICAgLy8KLSAgICAvLyBU
aGlzIGlzIGp1c3QgYSBzYW5pdHkgY2hlY2sgd2hlbiBzb21ldGhpbmcgZ29lcyByZWFsbHkgd3Jv
bmcuICBGb3IgZXhhbXBsZSwgaWYgdGhlIHRocmVzaG9sZAotICAgIC8vIGlzIHRvbyBsb3csIGV2
ZXJ5IHNhbXBsZSBmcmFtZSBsb29rcyBsaWtlIGEgZGlzY29udGludWl0eS4KKyAgICAvLyBUaGlz
IGlzIGp1c3QgYSBzYW5pdHkgY2hlY2sgd2hlbiBzb21ldGhpbmcgZ29lcyByZWFsbHkgd3Jvbmcu
ICBGb3IKKyAgICAvLyBleGFtcGxlLCBpZiB0aGUgdGhyZXNob2xkIGlzIHRvbyBsb3csIGV2ZXJ5
IHNhbXBsZSBmcmFtZSBsb29rcyBsaWtlIGEKKyAgICAvLyBkaXNjb250aW51aXR5LgogICAgIGlm
IChicmVha3MubGVuZ3RoID49IG51bWJlck9mVGVzdHMpIHsKLSAgICAgICAgdGVzdENvdW50ID0g
bnVtYmVyT2ZUZXN0cyAtIDE7Ci0gICAgICAgIHRlc3RGYWlsZWQoIkZvdW5kIG1vcmUgZGlzY29u
dGludWl0aWVzICgiICsgYnJlYWtzLmxlbmd0aCArICIpIHRoYW4gZXhwZWN0ZWQuICBPbmx5IGNv
bXBhcmluZyBmaXJzdCAiICsgdGVzdENvdW50ICsgImRpc2NvbnRpbnVpdGllcy4iKTsKLSAgICAg
ICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgdGVzdENvdW50ID0gbnVtYmVyT2ZUZXN0cyAtIDE7
CisgICAgICBzaG91bGQoYnJlYWtzLmxlbmd0aCwgJ051bWJlciBvZiBkaXNjb250aW51aXRpZXMn
KQorICAgICAgICAgIC5iZUxlc3NUaGFuKG51bWJlck9mVGVzdHMpOworICAgICAgc3VjY2VzcyA9
IGZhbHNlOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHRlc3RDb3VudCA9IGJyZWFrcy5sZW5ndGg7
CisgICAgICB0ZXN0Q291bnQgPSBicmVha3MubGVuZ3RoOwogICAgIH0KLSAgICAKLSAgICAvLyBD
b21wYXJlIHRoZSBsb2NhdGlvbiBvZiBlYWNoIGRpc2NvbnRpbnVpdHkgd2l0aCB0aGUgZW5kIHRp
bWUgb2YgZWFjaCBpbnRlcnZhbC4gKFRoZXJlIGlzIG5vCi0gICAgLy8gZGlzY29udGludWl0eSBh
dCB0aGUgc3RhcnQgb2YgdGhlIHNpZ25hbC4pCi0gICAgZm9yICh2YXIgayA9IDA7IGsgPCB0ZXN0
Q291bnQ7ICsraykgewotICAgICAgICB2YXIgZXhwZWN0ZWRTYW1wbGVGcmFtZSA9IHRpbWVUb1Nh
bXBsZUZyYW1lKHRpbWVzW2sgKyAxXSwgc2FtcGxlUmF0ZSk7Ci0gICAgICAgIGlmIChicmVha3Nb
a10gIT0gZXhwZWN0ZWRTYW1wbGVGcmFtZSkgewotICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNl
OwotICAgICAgICAgICAgKytiYWRMb2NhdGlvbnM7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJF
eHBlY3RlZCBkaXNjb250aW51aXR5IGF0ICIgKyBleHBlY3RlZFNhbXBsZUZyYW1lICsgIiBidXQg
Z290ICIgKyBicmVha3Nba10pOwotICAgICAgICB9CisKKyAgICAvLyBDb21wYXJlIHRoZSBsb2Nh
dGlvbiBvZiBlYWNoIGRpc2NvbnRpbnVpdHkgd2l0aCB0aGUgZW5kIHRpbWUgb2YgZWFjaAorICAg
IC8vIGludGVydmFsLiAoVGhlcmUgaXMgbm8gZGlzY29udGludWl0eSBhdCB0aGUgc3RhcnQgb2Yg
dGhlIHNpZ25hbC4pCisgICAgZm9yIChsZXQgayA9IDA7IGsgPCB0ZXN0Q291bnQ7ICsraykgewor
ICAgICAgbGV0IGV4cGVjdGVkU2FtcGxlRnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZSh0aW1lc1tr
ICsgMV0sIHNhbXBsZVJhdGUpOworICAgICAgaWYgKGJyZWFrc1trXSAhPSBleHBlY3RlZFNhbXBs
ZUZyYW1lKSB7CisgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgKytiYWRMb2NhdGlv
bnM7CisgICAgICAgIHNob3VsZChicmVha3Nba10sICdEaXNjb250aW51aXR5IGF0IGluZGV4JykK
KyAgICAgICAgICAgIC5iZUVxdWFsVG8oZXhwZWN0ZWRTYW1wbGVGcmFtZSk7CisgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKGJhZExvY2F0aW9ucykgewotICAgICAgICB0ZXN0RmFpbGVkKGJhZExv
Y2F0aW9ucyArICIgZGlzY29udGludWl0aWVzIGF0IGluY29ycmVjdCBsb2NhdGlvbnMiKTsKLSAg
ICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgc2hvdWxkKGJhZExvY2F0aW9ucywgJ051bWJl
ciBvZiBkaXNjb250aW51aXRlcyBhdCBpbmNvcnJlY3QgbG9jYXRpb25zJykKKyAgICAgICAgICAu
YmVFcXVhbFRvKDApOworICAgICAgc3VjY2VzcyA9IGZhbHNlOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIGlmIChicmVha3MubGVuZ3RoID09IG51bWJlck9mVGVzdHMgLSAxKSB7Ci0gICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJBbGwgIiArIG51bWJlck9mVGVzdHMgKyAiIHRlc3RzIHN0YXJ0ZWQgYW5k
IGVuZGVkIGF0IHRoZSBjb3JyZWN0IHRpbWUuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJGb3VuZCAiICsgYnJlYWtzLmxlbmd0aCArICIgZGlzY29udGludWl0
aWVzIGJ1dCBleHBlY3RlZCAiICsgKG51bWJlck9mVGVzdHMgLSAxKSk7Ci0gICAgICAgICAgICBz
dWNjZXNzID0gZmFsc2U7Ci0gICAgICAgIH0KKyAgICAgIHNob3VsZCgKKyAgICAgICAgICBicmVh
a3MubGVuZ3RoICsgMSwKKyAgICAgICAgICAnTnVtYmVyIG9mIHRlc3RzIHN0YXJ0ZWQgYW5kIGVu
ZGVkIGF0IHRoZSBjb3JyZWN0IHRpbWUnKQorICAgICAgICAgIC5iZUVxdWFsVG8obnVtYmVyT2ZU
ZXN0cyk7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHN1Y2Nlc3M7Ci19Ci0KLS8vIENvbXBh
cmUgdGhlIHJlbmRlcmVkIGRhdGEgd2l0aCB0aGUgZXhwZWN0ZWQgZGF0YS4KLS8vCi0vLyB0ZXN0
TmFtZSAtIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0ZXN0Ci0vLwotLy8gbWF4RXJyb3IgLSBtYXhp
bXVtIGFsbG93ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUg
ZXhwZWN0ZWQgZGF0YQotLy8KLS8vIHJlbmRlcmVyZERhdGEgLSBhcnJheSBjb250YWluaW5nIHRo
ZSByZW5kZXJlZCAoYWN0dWFsKSBkYXRhCi0vLwotLy8gZXhwZWN0ZWRGdW5jdGlvbiAtIGZ1bmN0
aW9uIHRvIGNvbXB1dGUgdGhlIGV4cGVjdGVkIGRhdGEKLS8vCi0vLyB0aW1lVmFsdWVJbmZvIC0g
YXJyYXkgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhcnQgYW5kIGVuZCB0aW1l
cyBhbmQgdGhlIHN0YXJ0IGFuZCBlbmQKLS8vIHZhbHVlcyBvZiBlYWNoIGludGVydmFsLgotLy8K
LS8vIGJyZWFrVGhyZXNob2xkIC0gdGhyZXNob2xkIHRvIHVzZSBmb3IgZGV0ZXJtaW5pbmcgZGlz
Y29udGludWl0aWVzLgotZnVuY3Rpb24gY29tcGFyZVNpZ25hbHModGVzdE5hbWUsIG1heEVycm9y
LCByZW5kZXJlZERhdGEsIGV4cGVjdGVkRnVuY3Rpb24sIHRpbWVWYWx1ZUluZm8sIGJyZWFrVGhy
ZXNob2xkKQotewotICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgICB2YXIgZmFpbGVkVGVzdENv
dW50ID0gMDsKLSAgICB2YXIgdGltZXMgPSB0aW1lVmFsdWVJbmZvLnRpbWVzOwotICAgIHZhciB2
YWx1ZXMgPSB0aW1lVmFsdWVJbmZvLnZhbHVlczsKLSAgICB2YXIgbiA9IHZhbHVlcy5sZW5ndGg7
Ci0KLSAgICBzdWNjZXNzID0gdmVyaWZ5RGlzY29udGludWl0aWVzKHJlbmRlcmVkRGF0YSwgdGlt
ZXMsIGJyZWFrVGhyZXNob2xkKTsKLQotICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbjsgKytrKSB7
Ci0gICAgICAgIHZhciByZXN1bHQgPSBjb21wYXJlUGFydGlhbFNpZ25hbHMocmVuZGVyZWREYXRh
LCBleHBlY3RlZEZ1bmN0aW9uLCB0aW1lc1trXSwgdGltZXNbayArIDFdLCB2YWx1ZXNba10sIHNh
bXBsZVJhdGUpOwotCi0gICAgICAgIGlmIChyZXN1bHQubWF4RXJyb3IgPiBtYXhFcnJvcikgewot
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSW5jb3JyZWN0IHZhbHVlIGZvciB0ZXN0ICIgKyBrICsg
Ii4gTWF4IGVycm9yID0gIiArIHJlc3VsdC5tYXhFcnJvciArICIgYXQgb2Zmc2V0ICIgKyAocmVz
dWx0LmluZGV4ICsgdGltZVRvU2FtcGxlRnJhbWUodGltZXNba10sIHNhbXBsZVJhdGUpKSk7Ci0g
ICAgICAgICAgICArK2ZhaWxlZFRlc3RDb3VudDsKLSAgICAgICAgfQorICB9CisKKyAgLy8gQ29t
cGFyZSB0aGUgcmVuZGVyZWQgZGF0YSB3aXRoIHRoZSBleHBlY3RlZCBkYXRhLgorICAvLworICAv
LyB0ZXN0TmFtZSAtIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0ZXN0CisgIC8vCisgIC8vIG1heEVy
cm9yIC0gbWF4aW11bSBhbGxvd2VkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgcmVuZGVyZWQgZGF0
YSBhbmQgdGhlCisgIC8vIGV4cGVjdGVkIGRhdGEKKyAgLy8KKyAgLy8gcmVuZGVyZXJkRGF0YSAt
IGFycmF5IGNvbnRhaW5pbmcgdGhlIHJlbmRlcmVkIChhY3R1YWwpIGRhdGEKKyAgLy8KKyAgLy8g
ZXhwZWN0ZWRGdW5jdGlvbiAtIGZ1bmN0aW9uIHRvIGNvbXB1dGUgdGhlIGV4cGVjdGVkIGRhdGEK
KyAgLy8KKyAgLy8gdGltZVZhbHVlSW5mbyAtIGFycmF5IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24g
YWJvdXQgdGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMKKyAgLy8gYW5kIHRoZSBzdGFydCBhbmQgZW5k
IHZhbHVlcyBvZiBlYWNoIGludGVydmFsLgorICAvLworICAvLyBicmVha1RocmVzaG9sZCAtIHRo
cmVzaG9sZCB0byB1c2UgZm9yIGRldGVybWluaW5nIGRpc2NvbnRpbnVpdGllcy4KKyAgZnVuY3Rp
b24gY29tcGFyZVNpZ25hbHMoCisgICAgICBzaG91bGQsIHRlc3ROYW1lLCBtYXhFcnJvciwgcmVu
ZGVyZWREYXRhLCBleHBlY3RlZEZ1bmN0aW9uLCB0aW1lVmFsdWVJbmZvLAorICAgICAgYnJlYWtU
aHJlc2hvbGQsIGVycm9yTWV0cmljKSB7CisgICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworICAgIGxl
dCBmYWlsZWRUZXN0Q291bnQgPSAwOworICAgIGxldCB0aW1lcyA9IHRpbWVWYWx1ZUluZm8udGlt
ZXM7CisgICAgbGV0IHZhbHVlcyA9IHRpbWVWYWx1ZUluZm8udmFsdWVzOworICAgIGxldCBuID0g
dmFsdWVzLmxlbmd0aDsKKyAgICBsZXQgZXhwZWN0ZWRTaWduYWwgPSBbXTsKKworICAgIHN1Y2Nl
c3MgPQorICAgICAgICB2ZXJpZnlEaXNjb250aW51aXRpZXMoc2hvdWxkLCByZW5kZXJlZERhdGEs
IHRpbWVzLCBicmVha1RocmVzaG9sZCk7CisKKyAgICBmb3IgKGxldCBrID0gMDsgayA8IG47ICsr
aykgeworICAgICAgbGV0IHJlc3VsdCA9IGNvbXBhcmVQYXJ0aWFsU2lnbmFscygKKyAgICAgICAg
ICBzaG91bGQsIHJlbmRlcmVkRGF0YSwgZXhwZWN0ZWRGdW5jdGlvbiwgdGltZXNba10sIHRpbWVz
W2sgKyAxXSwKKyAgICAgICAgICB2YWx1ZXNba10sIHNhbXBsZVJhdGUsIGVycm9yTWV0cmljKTsK
KworICAgICAgZXhwZWN0ZWRTaWduYWwgPQorICAgICAgICAgIGV4cGVjdGVkU2lnbmFsLmNvbmNh
dChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyZXN1bHQuZXhwZWN0ZWQpKTsKKworICAgICAg
c2hvdWxkKAorICAgICAgICAgIHJlc3VsdC5tYXhFcnJvciwKKyAgICAgICAgICAnTWF4IGVycm9y
IGZvciB0ZXN0ICcgKyBrICsgJyBhdCBvZmZzZXQgJyArCisgICAgICAgICAgICAgIChyZXN1bHQu
aW5kZXggKyB0aW1lVG9TYW1wbGVGcmFtZSh0aW1lc1trXSwgc2FtcGxlUmF0ZSkpKQorICAgICAg
ICAgIC5iZUxlc3NUaGFuT3JFcXVhbFRvKG1heEVycm9yKTsKICAgICB9CiAKLSAgICBpZiAoZmFp
bGVkVGVzdENvdW50KSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoZmFpbGVkVGVzdENvdW50ICsgIiB0
ZXN0cyBmYWlsZWQgb3V0IG9mICIgKyBuKTsKLSAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIkFsbCAiICsgbiArICIgdGVzdHMgcGFzc2Vk
IHdpdGhpbiBhbiBhY2NlcHRhYmxlIHRvbGVyYW5jZS4iKTsKLSAgICB9Ci0gICAgICAKLSAgICBp
ZiAoc3VjY2VzcykgewotICAgICAgICB0ZXN0UGFzc2VkKCJBdWRpb1BhcmFtICIgKyB0ZXN0TmFt
ZSArICIgdGVzdCBwYXNzZWQuIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxlZCgi
QXVkaW9QYXJhbSAiICsgdGVzdE5hbWUgKyAiIHRlc3QgZmFpbGVkLiIpOwotICAgIH0KLX0KLQot
Ly8gQ3JlYXRlIGEgZnVuY3Rpb24gdG8gdGVzdCB0aGUgcmVuZGVyZWQgZGF0YSB3aXRoIHRoZSBy
ZWZlcmVuY2UgZGF0YS4KLS8vCi0vLyB0ZXN0TmFtZSAtIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0
ZXN0Ci0vLwotLy8gZXJyb3IgLSBtYXggYWxsb3dlZCBlcnJvciBiZXR3ZWVuIHJlbmRlcmVkIGRh
dGEgYW5kIHRoZSByZWZlcmVuY2UgZGF0YS4KLS8vCi0vLyByZWZlcmVuY2VGdW5jdGlvbiAtIGZ1
bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSByZWZlcmVuY2UgZGF0YSB0byBiZSBjb21wYXJlZCB3
aXRoIHRoZSByZW5kZXJlZAotLy8gZGF0YS4KLS8vCi0vLyBqdW1wVGhyZXNob2xkIC0gb3B0aW9u
YWwgcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHRoZSB0aHJlc2hvbGQgdG8gdXNlIGZvciBkZXRl
Y3RpbmcKLS8vIGRpc2NvbnRpbnVpdGllcy4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRv
IGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQuCi0vLwotZnVuY3Rpb24gY2hlY2tSZXN1bHRGdW5jdGlv
bih0ZXN0TmFtZSwgZXJyb3IsIHJlZmVyZW5jZUZ1bmN0aW9uLCBqdW1wVGhyZXNob2xkKQotewor
ICAgIHNob3VsZCgKKyAgICAgICAgZmFpbGVkVGVzdENvdW50LAorICAgICAgICAnTnVtYmVyIG9m
IGZhaWxlZCB0ZXN0cyB3aXRoIGFuIGFjY2VwdGFibGUgcmVsYXRpdmUgdG9sZXJhbmNlIG9mICcg
KworICAgICAgICAgICAgbWF4RXJyb3IpCisgICAgICAgIC5iZUVxdWFsVG8oMCk7CisgIH0KKwor
ICAvLyBDcmVhdGUgYSBmdW5jdGlvbiB0byB0ZXN0IHRoZSByZW5kZXJlZCBkYXRhIHdpdGggdGhl
IHJlZmVyZW5jZSBkYXRhLgorICAvLworICAvLyB0ZXN0TmFtZSAtIHN0cmluZyBkZXNjcmliaW5n
IHRoZSB0ZXN0CisgIC8vCisgIC8vIGVycm9yIC0gbWF4IGFsbG93ZWQgZXJyb3IgYmV0d2VlbiBy
ZW5kZXJlZCBkYXRhIGFuZCB0aGUgcmVmZXJlbmNlIGRhdGEuCisgIC8vCisgIC8vIHJlZmVyZW5j
ZUZ1bmN0aW9uIC0gZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIHJlZmVyZW5jZSBkYXRhIHRv
IGJlCisgIC8vIGNvbXBhcmVkIHdpdGggdGhlIHJlbmRlcmVkIGRhdGEuCisgIC8vCisgIC8vIGp1
bXBUaHJlc2hvbGQgLSBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBzcGVjaWZpZXMgdGhlIHRocmVz
aG9sZCB0byB1c2UgZm9yCisgIC8vIGRldGVjdGluZyBkaXNjb250aW51aXRpZXMuICBJZiBub3Qg
c3BlY2lmaWVkLCBkZWZhdWx0cyB0bworICAvLyBkaXNjb250aW51aXR5VGhyZXNob2xkLgorICAv
LworICBmdW5jdGlvbiBjaGVja1Jlc3VsdEZ1bmN0aW9uKAorICAgICAgdGFzaywgc2hvdWxkLCB0
ZXN0TmFtZSwgZXJyb3IsIHJlZmVyZW5jZUZ1bmN0aW9uLCBqdW1wVGhyZXNob2xkLAorICAgICAg
ZXJyb3JNZXRyaWMpIHsKICAgICByZXR1cm4gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFy
IGJ1ZmZlciA9IGV2ZW50LnJlbmRlcmVkQnVmZmVyOwotICAgICAgICByZW5kZXJlZERhdGEgPSBi
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICBsZXQgYnVmZmVyID0gZXZlbnQucmVuZGVy
ZWRCdWZmZXI7CisgICAgICByZW5kZXJlZERhdGEgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7
CiAKLSAgICAgICAgdmFyIHRocmVzaG9sZDsKKyAgICAgIGxldCB0aHJlc2hvbGQ7CiAKLSAgICAg
ICAgaWYgKCFqdW1wVGhyZXNob2xkKSB7Ci0gICAgICAgICAgICB0aHJlc2hvbGQgPSBkaXNjb250
aW51aXR5VGhyZXNob2xkOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhyZXNob2xk
ID0ganVtcFRocmVzaG9sZDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgY29tcGFyZVNp
Z25hbHModGVzdE5hbWUsIGVycm9yLCByZW5kZXJlZERhdGEsIHJlZmVyZW5jZUZ1bmN0aW9uLCB0
aW1lVmFsdWVJbmZvLCB0aHJlc2hvbGQpOworICAgICAgaWYgKCFqdW1wVGhyZXNob2xkKSB7Cisg
ICAgICAgIHRocmVzaG9sZCA9IGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQ7CisgICAgICB9IGVsc2Ug
eworICAgICAgICB0aHJlc2hvbGQgPSBqdW1wVGhyZXNob2xkOworICAgICAgfQogCi0gICAgICAg
IGZpbmlzaEpTVGVzdCgpOwotICAgIH0KLX0KLQotLy8gUnVuIGFsbCB0aGUgYXV0b21hdGlvbiB0
ZXN0cy4KLS8vCi0vLyBudW1iZXJPZlRlc3RzIC0gbnVtYmVyIG9mIHRlc3RzICh0aW1lIGludGVy
dmFscykgdG8gcnVuLgotLy8KLS8vIGluaXRpYWxWYWx1ZSAtIFRoZSBpbml0aWFsIHZhbHVlIG9m
IHRoZSBmaXJzdCB0aW1lIGludGVydmFsLgotLy8KLS8vIHNldFZhbHVlRnVuY3Rpb24gLSBmdW5j
dGlvbiB0aGF0IHNldHMgdGhlIHNwZWNpZmllZCB2YWx1ZSBhdCB0aGUgc3RhcnQgb2YgYSB0aW1l
IGludGVydmFsLgotLy8KLS8vIGF1dG9tYXRpb25GdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgc2V0
cyB0aGUgZW5kIHZhbHVlIGZvciB0aGUgdGltZSBpbnRlcnZhbC4gIEl0IHNwZWNpZmllcyBob3cK
LS8vIHRoZSB2YWx1ZSBhcHByb2FjaGVzIHRoZSBlbmQgdmFsdWUuCi0vLwotLy8gQW4gb2JqZWN0
IGlzIHJldHVybmVkIGNvbnRhaW5pbmcgYW4gYXJyYXkgb2Ygc3RhcnQgdGltZXMgZm9yIGVhY2gg
dGltZSBpbnRlcnZhbCwgYW5kIGFuIGFycmF5Ci0vLyBnaXZpbmcgdGhlIHN0YXJ0IGFuZCBlbmQg
dmFsdWVzIGZvciB0aGUgaW50ZXJ2YWwuCi1mdW5jdGlvbiBkb0F1dG9tYXRpb24obnVtYmVyT2ZU
ZXN0cywgaW5pdGlhbFZhbHVlLCBzZXRWYWx1ZUZ1bmN0aW9uLCBhdXRvbWF0aW9uRnVuY3Rpb24p
Ci17Ci0gICAgdmFyIHRpbWVJbmZvID0gWzBdOwotICAgIHZhciB2YWx1ZUluZm8gPSBbXTsKLSAg
ICB2YXIgdmFsdWUgPSBpbml0aWFsVmFsdWU7Ci0gICAgCi0gICAgZm9yICh2YXIgayA9IDA7IGsg
PCBudW1iZXJPZlRlc3RzOyArK2spIHsKLSAgICAgICAgdmFyIHN0YXJ0VGltZSA9IGsgKiB0aW1l
SW50ZXJ2YWw7Ci0gICAgICAgIHZhciBlbmRUaW1lID0gKGsgKyAxKSAqIHRpbWVJbnRlcnZhbDsK
LSAgICAgICAgdmFyIGVuZFZhbHVlID0gdmFsdWUgKyBlbmRWYWx1ZURlbHRhKGspOwotCi0gICAg
ICAgIC8vIFNldCB0aGUgdmFsdWUgYXQgdGhlIHN0YXJ0IG9mIHRoZSB0aW1lIGludGVydmFsLgot
ICAgICAgICBzZXRWYWx1ZUZ1bmN0aW9uKHZhbHVlLCBzdGFydFRpbWUpOwotCi0gICAgICAgIC8v
IFNwZWNpZnkgdGhlIGVuZCBvciB0YXJnZXQgdmFsdWUsIGFuZCBob3cgd2Ugc2hvdWxkIGFwcHJv
YWNoIGl0LgotICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb24oZW5kVmFsdWUsIHN0YXJ0VGltZSwg
ZW5kVGltZSk7Ci0KLSAgICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgc3RhcnQgdGltZXMsIGFu
ZCB0aGUgc3RhcnQgYW5kIGVuZCB2YWx1ZXMgZm9yIGVhY2ggdGltZSBpbnRlcnZhbC4KLSAgICAg
ICAgdGltZUluZm8ucHVzaChlbmRUaW1lKTsKLSAgICAgICAgdmFsdWVJbmZvLnB1c2goe3N0YXJ0
VmFsdWU6IHZhbHVlLCBlbmRWYWx1ZSA6IGVuZFZhbHVlfSk7Ci0KLSAgICAgICAgdmFsdWUgKz0g
dmFsdWVVcGRhdGUoayk7CisgICAgICBjb21wYXJlU2lnbmFscygKKyAgICAgICAgICBzaG91bGQs
IHRlc3ROYW1lLCBlcnJvciwgcmVuZGVyZWREYXRhLCByZWZlcmVuY2VGdW5jdGlvbiwKKyAgICAg
ICAgICB0aW1lVmFsdWVJbmZvLCB0aHJlc2hvbGQsIGVycm9yTWV0cmljKTsKKyAgICAgIHRhc2su
ZG9uZSgpOwogICAgIH0KLQotICAgIHJldHVybiB7dGltZXMgOiB0aW1lSW5mbywgdmFsdWVzIDog
dmFsdWVJbmZvfTsKLX0KLQotLy8gQ3JlYXRlIHRoZSBhdWRpbyBncmFwaCBmb3IgdGhlIHRlc3Qg
YW5kIHRoZW4gcnVuIHRoZSB0ZXN0LgotLy8KLS8vIG51bWJlck9mVGVzdHMgLSBudW1iZXIgb2Yg
dGltZSBpbnRlcnZhbHMgKHRlc3RzKSB0byBydW4uCi0vLwotLy8gaW5pdGlhbFZhbHVlIC0gdGhl
IGluaXRpYWwgdmFsdWUgb2YgdGhlIGdhaW4gYXQgdGltZSAwLgotLy8KLS8vIHNldFZhbHVlRnVu
Y3Rpb24gLSBmdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFj
aCB0aW1lIGludGVydmFsLgotLy8KLS8vIGF1dG9tYXRpb25GdW5jdGlvbiAtIHRoZSBBdWRpb1Bh
cmFtVGltZWxpbmUgYXV0b21hdGlvbiBmdW5jdGlvbgotLy8KLS8vIHRlc3ROYW1lIC0gc3RyaW5n
IGluZGljYXRpbmcgdGhlIHRlc3QgdGhhdCBpcyBiZWluZyBydW4uCi0vLwotLy8gbWF4RXJyb3Ig
LSBtYXhpbXVtIGFsbG93ZWQgZXJyb3IgYmV0d2VlbiB0aGUgcmVuZGVyZWQgZGF0YSBhbmQgdGhl
IHJlZmVyZW5jZSBkYXRhCi0vLwotLy8gcmVmZXJlbmNlRnVuY3Rpb24gLSBmdW5jdGlvbiB0aGF0
IGdlbmVyYXRlcyB0aGUgcmVmZXJlbmNlIGRhdGEgdG8gYmUgY29tcGFyZWQgYWdhaW5zdCB0aGUK
LS8vIHJlbmRlcmVkIGRhdGEuCi0vLwotLy8ganVtcFRocmVzaG9sZCAtIG9wdGlvbmFsIHBhcmFt
ZXRlciB0aGF0IHNwZWNpZmllcyB0aGUgdGhyZXNob2xkIHRvIHVzZSBmb3IgZGV0ZWN0aW5nCi0v
LyBkaXNjb250aW51aXRpZXMuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byBkaXNjb250
aW51aXR5VGhyZXNob2xkLgotLy8KLWZ1bmN0aW9uIGNyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0KG51
bWJlck9mVGVzdHMsIGluaXRpYWxWYWx1ZSwgc2V0VmFsdWVGdW5jdGlvbiwgYXV0b21hdGlvbkZ1
bmN0aW9uLCB0ZXN0TmFtZSwgbWF4RXJyb3IsIHJlZmVyZW5jZUZ1bmN0aW9uLCBqdW1wVGhyZXNo
b2xkKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgIH0K
KworICAvLyBSdW4gYWxsIHRoZSBhdXRvbWF0aW9uIHRlc3RzLgorICAvLworICAvLyBudW1iZXJP
ZlRlc3RzIC0gbnVtYmVyIG9mIHRlc3RzICh0aW1lIGludGVydmFscykgdG8gcnVuLgorICAvLwor
ICAvLyBpbml0aWFsVmFsdWUgLSBUaGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgZmlyc3QgdGltZSBp
bnRlcnZhbC4KKyAgLy8KKyAgLy8gc2V0VmFsdWVGdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgc2V0
cyB0aGUgc3BlY2lmaWVkIHZhbHVlIGF0IHRoZSBzdGFydCBvZiBhCisgIC8vIHRpbWUgaW50ZXJ2
YWwuCisgIC8vCisgIC8vIGF1dG9tYXRpb25GdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgc2V0cyB0
aGUgZW5kIHZhbHVlIGZvciB0aGUgdGltZQorICAvLyBpbnRlcnZhbC4gSXQgc3BlY2lmaWVzIGhv
dyB0aGUgdmFsdWUgYXBwcm9hY2hlcyB0aGUgZW5kIHZhbHVlLgorICAvLworICAvLyBBbiBvYmpl
Y3QgaXMgcmV0dXJuZWQgY29udGFpbmluZyBhbiBhcnJheSBvZiBzdGFydCB0aW1lcyBmb3IgZWFj
aCB0aW1lCisgIC8vIGludGVydmFsLCBhbmQgYW4gYXJyYXkgZ2l2aW5nIHRoZSBzdGFydCBhbmQg
ZW5kIHZhbHVlcyBmb3IgdGhlIGludGVydmFsLgorICBmdW5jdGlvbiBkb0F1dG9tYXRpb24oCisg
ICAgICBudW1iZXJPZlRlc3RzLCBpbml0aWFsVmFsdWUsIHNldFZhbHVlRnVuY3Rpb24sIGF1dG9t
YXRpb25GdW5jdGlvbikgeworICAgIGxldCB0aW1lSW5mbyA9IFswXTsKKyAgICBsZXQgdmFsdWVJ
bmZvID0gW107CisgICAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOworCisgICAgZm9yIChsZXQg
ayA9IDA7IGsgPCBudW1iZXJPZlRlc3RzOyArK2spIHsKKyAgICAgIGxldCBzdGFydFRpbWUgPSBr
ICogdGltZUludGVydmFsOworICAgICAgbGV0IGVuZFRpbWUgPSAoayArIDEpICogdGltZUludGVy
dmFsOworICAgICAgbGV0IGVuZFZhbHVlID0gdmFsdWUgKyBlbmRWYWx1ZURlbHRhKGspOworCisg
ICAgICAvLyBTZXQgdGhlIHZhbHVlIGF0IHRoZSBzdGFydCBvZiB0aGUgdGltZSBpbnRlcnZhbC4K
KyAgICAgIHNldFZhbHVlRnVuY3Rpb24odmFsdWUsIHN0YXJ0VGltZSk7CisKKyAgICAgIC8vIFNw
ZWNpZnkgdGhlIGVuZCBvciB0YXJnZXQgdmFsdWUsIGFuZCBob3cgd2Ugc2hvdWxkIGFwcHJvYWNo
IGl0LgorICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uKGVuZFZhbHVlLCBzdGFydFRpbWUsIGVuZFRp
bWUpOworCisgICAgICAvLyBLZWVwIHRyYWNrIG9mIHRoZSBzdGFydCB0aW1lcywgYW5kIHRoZSBz
dGFydCBhbmQgZW5kIHZhbHVlcyBmb3IgZWFjaAorICAgICAgLy8gdGltZSBpbnRlcnZhbC4KKyAg
ICAgIHRpbWVJbmZvLnB1c2goZW5kVGltZSk7CisgICAgICB2YWx1ZUluZm8ucHVzaCh7c3RhcnRW
YWx1ZTogdmFsdWUsIGVuZFZhbHVlOiBlbmRWYWx1ZX0pOworCisgICAgICB2YWx1ZSArPSB2YWx1
ZVVwZGF0ZShrKTsKICAgICB9CiAKLSAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
KyAgICByZXR1cm4ge3RpbWVzOiB0aW1lSW5mbywgdmFsdWVzOiB2YWx1ZUluZm99OworICB9CisK
KyAgLy8gQ3JlYXRlIHRoZSBhdWRpbyBncmFwaCBmb3IgdGhlIHRlc3QgYW5kIHRoZW4gcnVuIHRo
ZSB0ZXN0LgorICAvLworICAvLyBudW1iZXJPZlRlc3RzIC0gbnVtYmVyIG9mIHRpbWUgaW50ZXJ2
YWxzICh0ZXN0cykgdG8gcnVuLgorICAvLworICAvLyBpbml0aWFsVmFsdWUgLSB0aGUgaW5pdGlh
bCB2YWx1ZSBvZiB0aGUgZ2FpbiBhdCB0aW1lIDAuCisgIC8vCisgIC8vIHNldFZhbHVlRnVuY3Rp
b24gLSBmdW5jdGlvbiB0byBzZXQgdGhlIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCB0
aW1lCisgIC8vIGludGVydmFsLgorICAvLworICAvLyBhdXRvbWF0aW9uRnVuY3Rpb24gLSB0aGUg
QXVkaW9QYXJhbVRpbWVsaW5lIGF1dG9tYXRpb24gZnVuY3Rpb24KKyAgLy8KKyAgLy8gdGVzdE5h
bWUgLSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgdGVzdCB0aGF0IGlzIGJlaW5nIHJ1bi4KKyAgLy8K
KyAgLy8gbWF4RXJyb3IgLSBtYXhpbXVtIGFsbG93ZWQgZXJyb3IgYmV0d2VlbiB0aGUgcmVuZGVy
ZWQgZGF0YSBhbmQgdGhlCisgIC8vIHJlZmVyZW5jZSBkYXRhCisgIC8vCisgIC8vIHJlZmVyZW5j
ZUZ1bmN0aW9uIC0gZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIHJlZmVyZW5jZSBkYXRhIHRv
IGJlCisgIC8vIGNvbXBhcmVkIGFnYWluc3QgdGhlIHJlbmRlcmVkIGRhdGEuCisgIC8vCisgIC8v
IGp1bXBUaHJlc2hvbGQgLSBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBzcGVjaWZpZXMgdGhlIHRo
cmVzaG9sZCB0byB1c2UgZm9yCisgIC8vIGRldGVjdGluZyBkaXNjb250aW51aXRpZXMuICBJZiBu
b3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0bworICAvLyBkaXNjb250aW51aXR5VGhyZXNob2xkLgor
ICAvLworICBmdW5jdGlvbiBjcmVhdGVBdWRpb0dyYXBoQW5kVGVzdCgKKyAgICAgIHRhc2ssIHNo
b3VsZCwgbnVtYmVyT2ZUZXN0cywgaW5pdGlhbFZhbHVlLCBzZXRWYWx1ZUZ1bmN0aW9uLAorICAg
ICAgYXV0b21hdGlvbkZ1bmN0aW9uLCB0ZXN0TmFtZSwgbWF4RXJyb3IsIHJlZmVyZW5jZUZ1bmN0
aW9uLCBqdW1wVGhyZXNob2xkLAorICAgICAgZXJyb3JNZXRyaWMpIHsKICAgICAvLyBDcmVhdGUg
b2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGgobnVtYmVyT2ZUZXN0cyksIHNhbXBsZVJhdGUpOwot
ICAgIHZhciBjb25zdGFudEJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEs
IHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSk7CisgICAgY29udGV4dCA9CisgICAgICAgIG5l
dyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSwgc2Ft
cGxlUmF0ZSk7CisgICAgbGV0IGNvbnN0YW50QnVmZmVyID0KKyAgICAgICAgY3JlYXRlQ29uc3Rh
bnRCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMpLCAxKTsKIAotICAg
IC8vIFdlIHVzZSBhbiBBdWRpb0dhaW5Ob2RlIGhlcmUgc2ltcGx5IGFzIGEgY29udmVuaWVudCB3
YXkgdG8gdGVzdCB0aGUgQXVkaW9QYXJhbQotICAgIC8vIGF1dG9tYXRpb24sIHNpbmNlIGl0J3Mg
ZWFzeSB0byBwYXNzIGEgY29uc3RhbnQgdmFsdWUgdGhyb3VnaCB0aGUgbm9kZSwgYXV0b21hdGUg
dGhlCi0gICAgLy8gLmdhaW4gYXR0cmlidXRlIGFuZCBvYnNlcnZlIHRoZSByZXN1bHRpbmcgdmFs
dWVzLgorICAgIC8vIFdlIHVzZSBhbiBBdWRpb0dhaW5Ob2RlIGhlcmUgc2ltcGx5IGFzIGEgY29u
dmVuaWVudCB3YXkgdG8gdGVzdCB0aGUKKyAgICAvLyBBdWRpb1BhcmFtIGF1dG9tYXRpb24sIHNp
bmNlIGl0J3MgZWFzeSB0byBwYXNzIGEgY29uc3RhbnQgdmFsdWUgdGhyb3VnaAorICAgIC8vIHRo
ZSBub2RlLCBhdXRvbWF0ZSB0aGUgLmdhaW4gYXR0cmlidXRlIGFuZCBvYnNlcnZlIHRoZSByZXN1
bHRpbmcgdmFsdWVzLgogCiAgICAgZ2Fpbk5vZGUgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKIAot
ICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAg
IGxldCBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwogICAgIGJ1
ZmZlclNvdXJjZS5idWZmZXIgPSBjb25zdGFudEJ1ZmZlcjsKICAgICBidWZmZXJTb3VyY2UuY29u
bmVjdChnYWluTm9kZSk7CiAgICAgZ2Fpbk5vZGUuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9u
KTsKIAotICAgIC8vIFNldCB1cCBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHBhcmFtZXRlcnMgdGhh
dCBjb250cm9sIGhvdyB0aGUgYXV0b21hdGlvbiB0ZXN0IHZhbHVlcyBwcm9ncmVzcwotICAgIC8v
IGZvciBlYWNoIHRpbWUgaW50ZXJ2YWwuCisgICAgLy8gU2V0IHVwIGRlZmF1bHQgdmFsdWVzIGZv
ciB0aGUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgaG93IHRoZSBhdXRvbWF0aW9uCisgICAgLy8g
dGVzdCB2YWx1ZXMgcHJvZ3Jlc3MgZm9yIGVhY2ggdGltZSBpbnRlcnZhbC4KICAgICBzdGFydGlu
Z1ZhbHVlRGVsdGEgPSBpbml0aWFsVmFsdWUgLyBudW1iZXJPZlRlc3RzOwogICAgIHN0YXJ0RW5k
VmFsdWVDaGFuZ2UgPSBzdGFydGluZ1ZhbHVlRGVsdGEgLyAyOwogICAgIGRpc2NvbnRpbnVpdHlU
aHJlc2hvbGQgPSBzdGFydEVuZFZhbHVlQ2hhbmdlIC8gMjsKIAogICAgIC8vIFJ1biB0aGUgYXV0
b21hdGlvbiB0ZXN0cy4KLSAgICB0aW1lVmFsdWVJbmZvID0gZG9BdXRvbWF0aW9uKG51bWJlck9m
VGVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZUZ1bmN0aW9uLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uKTsKKyAgICB0aW1l
VmFsdWVJbmZvID0gZG9BdXRvbWF0aW9uKAorICAgICAgICBudW1iZXJPZlRlc3RzLCBpbml0aWFs
VmFsdWUsIHNldFZhbHVlRnVuY3Rpb24sIGF1dG9tYXRpb25GdW5jdGlvbik7CiAgICAgYnVmZmVy
U291cmNlLnN0YXJ0KDApOwotICAgICAgCi0gICAgY29udGV4dC5vbmNvbXBsZXRlID0gY2hlY2tS
ZXN1bHRGdW5jdGlvbih0ZXN0TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1heEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVmZXJlbmNlRnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBqdW1wVGhyZXNob2xkKTsKKworICAgIGNvbnRleHQub25jb21w
bGV0ZSA9IGNoZWNrUmVzdWx0RnVuY3Rpb24oCisgICAgICAgIHRhc2ssIHNob3VsZCwgdGVzdE5h
bWUsIG1heEVycm9yLCByZWZlcmVuY2VGdW5jdGlvbiwganVtcFRocmVzaG9sZCwKKyAgICAgICAg
ZXJyb3JNZXRyaWMgfHwgcmVsYXRpdmVFcnJvck1ldHJpYyk7CiAgICAgY29udGV4dC5zdGFydFJl
bmRlcmluZygpOwotfQorICB9CisKKyAgLy8gRXhwb3J0IGxvY2FsIHJlZmVyZW5jZXMgdG8gZ2xv
YmFsIHNjb3BlLiBBbGwgdGhlIG5ldyBvYmplY3RzIGluIHRoaXMgZmlsZQorICAvLyBtdXN0IGJl
IGV4cG9ydGVkIHRocm91Z2ggdGhpcyBpZiBpdCBpcyB0byBiZSB1c2VkIGluIHRoZSBhY3R1YWwg
dGVzdCBIVE1MCisgIC8vIHBhZ2UuCisgIGxldCBleHBvcnRzID0geworICAgICdzYW1wbGVSYXRl
JzogNDQxMDAsCisgICAgJ2dhaW5Ob2RlJzogbnVsbCwKKyAgICAndGltZUludGVydmFsJzogdGlt
ZUludGVydmFsSW50ZXJuYWwsCisKKyAgICAvLyBTb21lIHN1aXRhYmxlIHRpbWUgY29uc3RhbnQg
c28gdGhhdCB3ZSBjYW4gc2VlIGEgc2lnbmlmaWNhbnQgY2hhbmdlIG92ZXIKKyAgICAvLyBhIHRp
bWVJbnRlcnZhbC4gIFRoaXMgaXMgb25seSBuZWVkZWQgYnkgc2V0VGFyZ2V0QXRUaW1lKCkgd2hp
Y2ggbmVlZHMgYQorICAgIC8vIHRpbWUgY29uc3RhbnQuCisgICAgJ3RpbWVDb25zdGFudCc6IHRp
bWVJbnRlcnZhbEludGVybmFsIC8gMywKKworICAgICdyZW5kZXJMZW5ndGgnOiByZW5kZXJMZW5n
dGgsCisgICAgJ2NyZWF0ZUNvbnN0YW50QXJyYXknOiBjcmVhdGVDb25zdGFudEFycmF5LAorICAg
ICdnZXRTdGFydEVuZEZyYW1lcyc6IGdldFN0YXJ0RW5kRnJhbWVzLAorICAgICdjcmVhdGVMaW5l
YXJSYW1wQXJyYXknOiBjcmVhdGVMaW5lYXJSYW1wQXJyYXksCisgICAgJ2NyZWF0ZUV4cG9uZW50
aWFsUmFtcEFycmF5JzogY3JlYXRlRXhwb25lbnRpYWxSYW1wQXJyYXksCisgICAgJ2Rpc2NyZXRl
VGltZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSc6IGRpc2NyZXRlVGltZUNvbnN0YW50Rm9yU2FtcGxl
UmF0ZSwKKyAgICAnY3JlYXRlRXhwb25lbnRpYWxBcHByb2FjaEFycmF5JzogY3JlYXRlRXhwb25l
bnRpYWxBcHByb2FjaEFycmF5LAorICAgICdjcmVhdGVSZWZlcmVuY2VTaW5lQXJyYXknOiBjcmVh
dGVSZWZlcmVuY2VTaW5lQXJyYXksCisgICAgJ2NyZWF0ZVNpbmVXYXZlQXJyYXknOiBjcmVhdGVT
aW5lV2F2ZUFycmF5LAorICAgICdlbmRWYWx1ZURlbHRhJzogZW5kVmFsdWVEZWx0YSwKKyAgICAn
cmVsYXRpdmVFcnJvck1ldHJpYyc6IHJlbGF0aXZlRXJyb3JNZXRyaWMsCisgICAgJ2RpZmZlcmVu
Y2VFcnJvck1ldHJpYyc6IGRpZmZlcmVuY2VFcnJvck1ldHJpYywKKyAgICAndmFsdWVVcGRhdGUn
OiB2YWx1ZVVwZGF0ZSwKKyAgICAnY29tcGFyZVBhcnRpYWxTaWduYWxzJzogY29tcGFyZVBhcnRp
YWxTaWduYWxzLAorICAgICd2ZXJpZnlEaXNjb250aW51aXRpZXMnOiB2ZXJpZnlEaXNjb250aW51
aXRpZXMsCisgICAgJ2NvbXBhcmVTaWduYWxzJzogY29tcGFyZVNpZ25hbHMsCisgICAgJ2NoZWNr
UmVzdWx0RnVuY3Rpb24nOiBjaGVja1Jlc3VsdEZ1bmN0aW9uLAorICAgICdkb0F1dG9tYXRpb24n
OiBkb0F1dG9tYXRpb24sCisgICAgJ2NyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0JzogY3JlYXRlQXVk
aW9HcmFwaEFuZFRlc3QKKyAgfTsKKworICBmb3IgKGxldCByZWZlcmVuY2UgaW4gZXhwb3J0cykg
eworICAgIGdsb2JhbFtyZWZlcmVuY2VdID0gZXhwb3J0c1tyZWZlcmVuY2VdOworICB9CisKK30p
KHdpbmRvdyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvc2V0
LXBvc2l0aW9uLXZzLWN1cnZlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJj
ZXMvc2V0LXBvc2l0aW9uLXZzLWN1cnZlLXRlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTFmYzQzNDE1YjVj
YTRmOGJhOGZkNzI3NjY3M2VhMjBkYzA0M2YwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9zZXQtcG9zaXRpb24tdnMtY3VydmUtdGVzdC5qcwpAQCAt
MCwwICsxLDk2IEBACisvLyBUaGlzIGRlcGVuZHMgb24gYXVkaXQuanMgdG8gZGVmaW5lIHRoZSB8
c2hvdWxkfCBmdW5jdGlvbiB1c2VkIGhlcmVpbi4KKy8vCisvLyBUZXN0IHRoYXQgc2V0UG9zaXRp
b24gdGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGFscmVhZHkgYQorLy8gc2V0VmFsdWVDdXJ2
ZSBzY2hlZHVsZWQgZHVyaW5nIHRoZSBzYW1lIHRpbWUgcGVyaW9kLgorZnVuY3Rpb24gdGVzdFBv
c2l0aW9uU2V0dGVyVnNDdXJ2ZShzaG91bGQsIGNvbnRleHQsIG9wdGlvbnMpIHsKKyAgLy8gQ3Jl
YXRlIHRoZSBncmFwaCBjb25zaXN0aW5nIG9mIGEgc291cmNlIG5vZGUgYW5kIHRoZSBwYW5uZXIu
CisgIGxldCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQsIHtvZmZzZXQ6IDF9
KTsKKyAgbGV0IHBhbm5lciA9IG5ldyBQYW5uZXJOb2RlKGNvbnRleHQpOworICBzcmMuY29ubmVj
dChwYW5uZXIpLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgbGV0IGN1cnZlID0g
RmxvYXQzMkFycmF5LmZyb20oWy0xMCwgMTBdKTsKKworICAvLyBEZXRlcm1pbmUgaWYgd2UncmUg
dGVzdGluZyB0aGUgcGFubmVyIG9yIHRoZSBsaXN0ZW5lciBhbmQgc2V0IHRoZSBub2RlCisgIC8v
IGFwcHJvcHJpYXRlbHkuCisgIGxldCB0ZXN0Tm9kZSA9IG9wdGlvbnMubm9kZU5hbWUgPT09ICdw
YW5uZXInID8gcGFubmVyIDogY29udGV4dC5saXN0ZW5lcjsKKworICBsZXQgcHJlZml4ID0gb3B0
aW9ucy5ub2RlTmFtZSA9PT0gJ3Bhbm5lcicgPyAncGFubmVyLicgOiAnbGlzdGVuZXIuJzsKKwor
ICBsZXQgbWVzc2FnZSA9IHByZWZpeCArIG9wdGlvbnMucGFyYW1OYW1lICsgJy5zZXRWYWx1ZUN1
cnZlKC4uLiwgMCwgJyArCisgICAgICBvcHRpb25zLmN1cnZlRHVyYXRpb24gKyAnKSc7CisKKyAg
Ly8gSWYgdGhlIGNvb3JkaW5hdGUgbmFtZSBoYXMgJ3Bvc2l0aW9uJywgd2UncmUgdGVzdGluZyBz
ZXRQb3NpdGlvbjsKKyAgLy8gb3RoZXJ3aXNlIGFzc3VtZSB3ZSdyZSB0ZXN0aW5nIHNldE9yaWVu
dGF0aW9uLgorICBsZXQgbWV0aG9kTmFtZSA9CisgICAgICBvcHRpb25zLnBhcmFtTmFtZS5pbmNs
dWRlcygncG9zaXRpb24nKSA/ICdzZXRQb3NpdGlvbicgOiAnc2V0T3JpZW50YXRpb24nOworCisg
IC8vIFNhbml0eSBjaGVjayB0aGF0IHdlJ3JlIHRlc3RpbmcgdGhlIHJpZ2h0IG5vZGUuIChUaGUg
fHRlc3ROYW1lfCBwcmVmaXggaXMKKyAgLy8gdG8gbWFrZSBlYWNoIG1lc3NhZ2UgdW5pcXVlIGZv
ciB0ZXN0aGFybmVzcy4pCisgIGlmIChvcHRpb25zLm5vZGVOYW1lID09PSAncGFubmVyJykgewor
ICAgIHNob3VsZCgKKyAgICAgICAgdGVzdE5vZGUgaW5zdGFuY2VvZiBQYW5uZXJOb2RlLAorICAg
ICAgICBvcHRpb25zLnRlc3ROYW1lICsgJzogTm9kZSB1bmRlciB0ZXN0IGlzIGEgUGFubmVyTm9k
ZScpCisgICAgICAgIC5iZVRydWUoKTsKKyAgfSBlbHNlIHsKKyAgICBzaG91bGQoCisgICAgICAg
IHRlc3ROb2RlIGluc3RhbmNlb2YgQXVkaW9MaXN0ZW5lciwKKyAgICAgICAgb3B0aW9ucy50ZXN0
TmFtZSArICc6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyJykKKyAgICAgICAg
LmJlVHJ1ZSgpOworICB9CisKKyAgLy8gU2V0IHRoZSBjdXJ2ZSBhdXRvbWF0aW9uIG9uIHRoZSBz
cGVjaWZpZWQgYXhpcy4KKyAgc2hvdWxkKCgpID0+IHsKKyAgICB0ZXN0Tm9kZVtvcHRpb25zLnBh
cmFtTmFtZV0uc2V0VmFsdWVDdXJ2ZUF0VGltZSgKKyAgICAgICAgY3VydmUsIDAsIG9wdGlvbnMu
Y3VydmVEdXJhdGlvbik7CisgIH0sIG1lc3NhZ2UpLm5vdFRocm93KCk7CisKKyAgbGV0IHJlc3Vt
ZUNvbnRleHQgPSBjb250ZXh0LnJlc3VtZS5iaW5kKGNvbnRleHQpOworCisgIC8vIEdldCBjb3Jy
ZWN0IGFyZ3VtZW50IHN0cmluZyBmb3IgdGhlIHNldHRlciBmb3IgcHJpbnRpbmcgdGhlIG1lc3Nh
Z2UuCisgIGxldCBzZXR0ZXJBcmd1bWVudHM7CisgIGlmIChvcHRpb25zLm5vZGVOYW1lID09PSAn
cGFubmVyJykgeworICAgIHNldHRlckFyZ3VtZW50cyA9ICcoMSwxLDEpJzsKKyAgfSBlbHNlIHsK
KyAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ3NldFBvc2l0aW9uJykgeworICAgICAgc2V0dGVyQXJn
dW1lbnRzID0gJygxLDEsMSknOworICAgIH0gZWxzZSB7CisgICAgICBzZXR0ZXJBcmd1bWVudHMg
PSAnKDEsMSwxLDEsMSwxKSc7CisgICAgfQorICB9CisKKyAgbGV0IHNldHRlck1ldGhvZCA9ICgp
ID0+IHsKKyAgICAvLyBJdCdzIG9rIHRvIGdpdmUgZXh0cmEgYXJncy4KKyAgICB0ZXN0Tm9kZVtt
ZXRob2ROYW1lXSgxLCAxLCAxLCAxLCAxLCAxKTsKKyAgfTsKKworICBpZiAob3B0aW9ucy5zdXNw
ZW5kRnJhbWUpIHsKKyAgICAvLyBXZSdyZSB0ZXN0aW5nIHNldFBvc2l0aW9uIGFmdGVyIHRoZSBj
dXJ2ZSBoYXMgZW5kZWQgdG8gdmVyaWZ5IHRoYXQKKyAgICAvLyB3ZSBkb24ndCB0aHJvdyBhbiBl
cnJvci4gIFRodXMsIHN1c3BlbmQgdGhlIGNvbnRleHQgYW5kIGNhbGwKKyAgICAvLyBzZXRQb3Np
dGlvbi4KKyAgICBsZXQgc3VzcGVuZFRpbWUgPSBvcHRpb25zLnN1c3BlbmRGcmFtZSAvIGNvbnRl
eHQuc2FtcGxlUmF0ZTsKKyAgICBjb250ZXh0LnN1c3BlbmQoc3VzcGVuZFRpbWUpCisgICAgICAg
IC50aGVuKCgpID0+IHsKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIHNldHRlck1l
dGhvZCwKKyAgICAgICAgICAgICAgcHJlZml4ICsgbWV0aG9kTmFtZSArIHNldHRlckFyZ3VtZW50
cyArICcgZm9yICcgKworICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYXJhbU5hbWUgKyAnIGF0
IHRpbWUgJyArIHN1c3BlbmRUaW1lKQorICAgICAgICAgICAgICAubm90VGhyb3coKTsKKyAgICAg
ICAgfSkKKyAgICAgICAgLnRoZW4ocmVzdW1lQ29udGV4dCk7CisgIH0gZWxzZSB7CisgICAgLy8g
QmFzaWMgdGVzdCB3aGVyZSBzZXRQb3NpdGlvbiBpcyBjYWxsZWQgd2hlcmUgc2V0VmFsdWVDdXJ2
ZSBpcworICAgIC8vIGFscmVhZHkgYWN0aXZlLgorICAgIGNvbnRleHQuc3VzcGVuZCgwKQorICAg
ICAgICAudGhlbigoKSA9PiB7CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBzZXR0
ZXJNZXRob2QsCisgICAgICAgICAgICAgIHByZWZpeCArIG1ldGhvZE5hbWUgKyBzZXR0ZXJBcmd1
bWVudHMgKyAnIGZvciAnICsKKyAgICAgICAgICAgICAgICAgIG9wdGlvbnMucGFyYW1OYW1lKQor
ICAgICAgICAgICAgICAudGhyb3coRE9NRXhjZXB0aW9uLCAnTm90U3VwcG9ydGVkRXJyb3InKTsK
KyAgICAgICAgfSkKKyAgICAgICAgLnRoZW4ocmVzdW1lQ29udGV4dCk7CisgIH0KKworICBzcmMu
c3RhcnQoKTsKKyAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409157</attachid>
            <date>2020-09-18 11:52:29 -0700</date>
            <delta_ts>2020-09-18 12:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216706-20200918115228.patch</filename>
            <type>text/plain</type>
            <size>509489</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MjUxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzVjMTE3ZTY4YzE3NzAzZDFmNjNk
NjNmZGFjMzk5MWQyMWExZmQyMS4uZTc5N2ZkM2VkYjYzZDBiMjliZjUzOThhYTFlNzg1MmFjMjMy
M2MyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAyMC0wOS0xOCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBBdWRpb0NvbnRleHQgLyBBdWRpb0xp
c3RlbmVyIC8gQXVkaW9Ob2RlIC8gQXVkaW9QYXJhbSBsYXlvdXQgdGVzdHMgZnJvbSBCbGluawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2NzA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEltcG9ydCBBdWRp
b0NvbnRleHQgLyBBdWRpb0xpc3RlbmVyIC8gQXVkaW9Ob2RlIC8gQXVkaW9QYXJhbSBsYXlvdXQg
dGVzdHMgZnJvbSBCbGluay4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRp
b2NvbnRleHQtY2xvc2UtYmFzaWMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJh
dWRpby9BdWRpb0NvbnRleHQvYXVkaW9jb250ZXh0LWNsb3NlLWJhc2ljLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlzdGVuZXItc2hv
dWxkLW5vdC1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1
ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlzdGVuZXItc2hvdWxkLW5vdC1jcmFzaC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0xpc3RlbmVyL2F1ZGlvbGlzdGVuZXItYXV0
b21hdGlvbi1wb3NpdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1hdXRvbWF0aW9uLXBvc2l0aW9uLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQt
cG9zaXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb0xp
c3RlbmVyL2F1ZGlvbGlzdGVuZXItc2V0LXBvc2l0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvTm9kZS90YWlsLWNvbm5lY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtY29ubmVjdGlvbnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtcHJvY2Vzc2luZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvTm9kZS90YWlsLXByb2Nlc3Np
bmcuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFt
LWF1dG9tYXRpb24tY2xhbXBpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tYXV0b21hdGlvbi1jbGFtcGluZy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1o
b2xkLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
cGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJhdWRpby9B
dWRpb1BhcmFtL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC5odG1sLgorICAg
ICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jbGFtcC10aW1lLXRvLWN1cnJl
bnQtdGltZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFy
YW0vYXVkaW9wYXJhbS1jbGFtcC10aW1lLXRvLWN1cnJlbnQtdGltZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0taW5pdGlhbC1ldmVudC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJh
bS1pbml0aWFsLWV2ZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFy
YW0vYXVkaW9wYXJhbS1rLXJhdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tay1yYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1saW5lYXJSYW1wLXZhbHVlLWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVk
aW9wYXJhbS1saW5lYXJSYW1wLXZhbHVlLWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbmVnYXRpdmUtZXhwb25lbnRpYWxSYW1w
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLW5lZ2F0aXZlLWV4cG9uZW50aWFsUmFtcC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLW5vbWluYWwtcmFu
Z2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJh
bS1ub21pbmFsLXJhbmdlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UuaHRtbC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1Bh
cmFtL2F1ZGlvcGFyYW0tcHJvY2Vzc2luZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1wcm9jZXNzaW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zYW1wbGluZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1z
YW1wbGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tc2V0VGFyZ2V0LXRpbWVDb25zdGFudC0wLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldC10aW1lQ29uc3Rh
bnQtMC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFy
YW0tc2V0VGFyZ2V0QXRUaW1lLWNvbnRpbnVvdXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0QXRUaW1lLWNvbnRp
bnVvdXMuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3Bh
cmFtLXNldFRhcmdldEF0VGltZS1saW1pdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtbGltaXQuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRh
cmdldEF0VGltZS1zYW1wbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1
ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtc2FtcGxpbmcuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVl
Q3VydmUtY29weS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWNvcHkuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZHVyYXRpb24t
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tc2V0VmFsdWVDdXJ2ZS1kdXJhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1lbmQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFs
dWVDdXJ2ZS1lbmQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9h
dWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRU
aW1lLWludGVycG9sYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRp
by9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1pbnRlcnBvbGF0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS11
cGRhdGUtdmFsdWUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXVwZGF0ZS12YWx1ZS1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXZhbHVlLXNl
dHRlci1lcnJvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS12YWx1ZS1zZXR0ZXItZXJyb3IuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViYXVkaW8vQXVkaW9QYXJhbS9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vY2FuY2VsLXZhbHVl
cy1jcmFzaC05MTMyMTcuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vQXVkaW9QYXJh
bS92YWx1ZS1zZXR0ZXItd2FybmluZ3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJhdWRpby9BdWRpb1BhcmFtL3ZhbHVlLXNldHRlci13YXJuaW5ncy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL3dvcmtsZXQtd2FybmluZ3MtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhdWRpby9BdWRpb1BhcmFtL3dvcmtsZXQtd2FybmluZ3Mu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYXVkaW8vYXVkaW9wYXJhbS1leHBvbmVudGlhbFJh
bXBUb1ZhbHVlQXRUaW1lLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9wYXJhbS1saW5l
YXJSYW1wVG9WYWx1ZUF0VGltZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvcGFyYW0t
c2V0VmFsdWVBdFRpbWUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9w
YXJhbS10ZXN0aW5nLWxlZ2FjeS5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViYXVkaW8v
cmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcy4KKyAgICAgICAgKHJlbmRlckxlbmd0aCk6
CisgICAgICAgIChjcmVhdGVDb25zdGFudEJ1ZmZlcik6CisgICAgICAgIChjcmVhdGVDb25zdGFu
dEFycmF5KToKKyAgICAgICAgKGNyZWF0ZUxpbmVhclJhbXBBcnJheSk6CisgICAgICAgIChjcmVh
dGVFeHBvbmVudGlhbFJhbXBBcnJheSk6CisgICAgICAgIChkaXNjcmV0ZVRpbWVDb25zdGFudEZv
clNhbXBsZVJhdGUpOgorICAgICAgICAoY3JlYXRlRXhwb25lbnRpYWxBcHByb2FjaEFycmF5KToK
KyAgICAgICAgKGNyZWF0ZVNpbmVXYXZlQXJyYXkpOgorICAgICAgICAoZW5kVmFsdWVEZWx0YSk6
CisgICAgICAgICh2YWx1ZVVwZGF0ZSk6CisgICAgICAgIChjb21wYXJlUGFydGlhbFNpZ25hbHMp
OgorICAgICAgICAodmVyaWZ5RGlzY29udGludWl0aWVzKToKKyAgICAgICAgKGNvbXBhcmVTaWdu
YWxzKToKKyAgICAgICAgKGNoZWNrUmVzdWx0RnVuY3Rpb24pOgorICAgICAgICAoZG9BdXRvbWF0
aW9uKToKKyAgICAgICAgKGNyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0KToKKyAgICAgICAgKiB3ZWJh
dWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzOgorICAgICAgICAocmVuZGVyTGVu
Z3RoKToKKyAgICAgICAgKGNyZWF0ZUNvbnN0YW50QXJyYXkpOgorICAgICAgICAoZ2V0U3RhcnRF
bmRGcmFtZXMpOgorICAgICAgICAoY3JlYXRlTGluZWFyUmFtcEFycmF5KToKKyAgICAgICAgKGNy
ZWF0ZUV4cG9uZW50aWFsUmFtcEFycmF5KToKKyAgICAgICAgKGRpc2NyZXRlVGltZUNvbnN0YW50
Rm9yU2FtcGxlUmF0ZSk6CisgICAgICAgIChjcmVhdGVFeHBvbmVudGlhbEFwcHJvYWNoQXJyYXkp
OgorICAgICAgICAoY3JlYXRlUmVmZXJlbmNlU2luZUFycmF5KToKKyAgICAgICAgKGNyZWF0ZVNp
bmVXYXZlQXJyYXkpOgorICAgICAgICAoZW5kVmFsdWVEZWx0YSk6CisgICAgICAgIChyZWxhdGl2
ZUVycm9yTWV0cmljKToKKyAgICAgICAgKGRpZmZlcmVuY2VFcnJvck1ldHJpYyk6CisgICAgICAg
ICh2YWx1ZVVwZGF0ZSk6CisgICAgICAgIChjb21wYXJlUGFydGlhbFNpZ25hbHMpOgorICAgICAg
ICAodmVyaWZ5RGlzY29udGludWl0aWVzKToKKyAgICAgICAgKGNvbXBhcmVTaWduYWxzKToKKyAg
ICAgICAgKGNoZWNrUmVzdWx0RnVuY3Rpb24pOgorICAgICAgICAoZG9BdXRvbWF0aW9uKToKKyAg
ICAgICAgKGNyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNv
dXJjZXMvc2V0LXBvc2l0aW9uLXZzLWN1cnZlLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAodGVz
dFBvc2l0aW9uU2V0dGVyVnNDdXJ2ZSk6CisKIDIwMjAtMDktMTggIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEhhc2ggZGV2aWNlSWRzIGluIFdlYlByb2Nlc3Mg
aW5zdGVhZCBvZiBVSVByb2Nlc3MgdG8gYWxsb3cgYXVkaW8gb3V0cHV0IGRldmljZSBJRHMgaW4g
V2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYmQzN2UxY2FiMTE4OGE1NGY1M2VmODlh
OGEwMTZkMzcxMGQxMjkxNi4uZDlmZTI5MDU3ZmFkZTBjYzdlYzFmZWMwYzc1YmZiYTJhNzdiZGM3
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMzcsNiArMzM3LDcgQEAgd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2UvYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLW1vZHVsYXRpb24uaHRt
bCBbIFBhc3MKIAogIyBUaGlzIFdlYkF1ZGlvIHRlc3QgaXMgY3Jhc2hpbmcgaW4gZGVidWcgc2lu
Y2UgaXRzIGltcG9ydCBmcm9tIEJsaW5rLgogWyBEZWJ1ZyBdIHdlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1sIFsgQ3Jhc2ggXQorWyBE
ZWJ1ZyBdIHdlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXQtdGltZUNvbnN0
YW50LTAuaHRtbCBbIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzE3NjkyOSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5LXdpdGgtc2xvdy10ZXh0LXRyYWNrcy5odG1s
IFsgUGFzcyBGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0L2F1ZGlvY29udGV4dC1jbG9zZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb0NvbnRleHQvYXVkaW9jb250ZXh0LWNsb3NlLWJhc2ljLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mMzlhYTczMzkzNDc5NjFiZGY1YTBlNjc5YmQ5NTQ2ZmQwZDU0
MmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
L2F1ZGlvY29udGV4dC1jbG9zZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDkgQEAK
KworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgInRl
c3QiIAorUEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW3Rlc3RdIFRlc3QgdGhhdCBjbG9zaW5n
IGEgY29udGV4dCByZWxlYXNlcyB0aGUgYXVkaW8gSFcgY29udGV4dCAKK1BBU1MgICBjb250ZXh0
LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAxIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAg
Y29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMiBpcyBlcXVhbCB0byBjbG9zZWQuIAor
UEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDMgaXMgZXF1YWwgdG8gY2xv
c2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA0IGlzIGVxdWFs
IHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNSBp
cyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250
ZXh0IDYgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9z
ZWQgY29udGV4dCA3IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBm
b3IgY2xvc2VkIGNvbnRleHQgOCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQu
c3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDkgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBj
b250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAxMCBpcyBlcXVhbCB0byBjbG9zZWQuIAor
UEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDExIGlzIGVxdWFsIHRvIGNs
b3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMTIgaXMgZXF1
YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAx
MyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBj
b250ZXh0IDE0IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3Ig
Y2xvc2VkIGNvbnRleHQgMTUgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0
YXRlIGZvciBjbG9zZWQgY29udGV4dCAxNiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNv
bnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDE3IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQ
QVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMTggaXMgZXF1YWwgdG8gY2xv
c2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAxOSBpcyBlcXVh
bCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDIw
IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNv
bnRleHQgMjEgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBj
bG9zZWQgY29udGV4dCAyMiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3Rh
dGUgZm9yIGNsb3NlZCBjb250ZXh0IDIzIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29u
dGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMjQgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BB
U1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAyNSBpcyBlcXVhbCB0byBjbG9z
ZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDI2IGlzIGVxdWFs
IHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMjcg
aXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29u
dGV4dCAyOCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNs
b3NlZCBjb250ZXh0IDI5IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0
ZSBmb3IgY2xvc2VkIGNvbnRleHQgMzAgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250
ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAzMSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFT
UyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDMyIGlzIGVxdWFsIHRvIGNsb3Nl
ZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMzMgaXMgZXF1YWwg
dG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCAzNCBp
cyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250
ZXh0IDM1IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xv
c2VkIGNvbnRleHQgMzYgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRl
IGZvciBjbG9zZWQgY29udGV4dCAzNyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRl
eHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDM4IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNT
ICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgMzkgaXMgZXF1YWwgdG8gY2xvc2Vk
LiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA0MCBpcyBlcXVhbCB0
byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDQxIGlz
IGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRl
eHQgNDIgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9z
ZWQgY29udGV4dCA0MyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUg
Zm9yIGNsb3NlZCBjb250ZXh0IDQ0IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4
dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNDUgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1Mg
ICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA0NiBpcyBlcXVhbCB0byBjbG9zZWQu
IAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDQ3IGlzIGVxdWFsIHRv
IGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNDggaXMg
ZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4
dCA0OSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3Nl
ZCBjb250ZXh0IDUwIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBm
b3IgY2xvc2VkIGNvbnRleHQgNTEgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0
LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA1MiBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAg
IGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDUzIGlzIGVxdWFsIHRvIGNsb3NlZC4g
CitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNTQgaXMgZXF1YWwgdG8g
Y2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA1NSBpcyBl
cXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0
IDU2IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2Vk
IGNvbnRleHQgNTcgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZv
ciBjbG9zZWQgY29udGV4dCA1OCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQu
c3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDU5IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAg
Y29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNjAgaXMgZXF1YWwgdG8gY2xvc2VkLiAK
K1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA2MSBpcyBlcXVhbCB0byBj
bG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDYyIGlzIGVx
dWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQg
NjMgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQg
Y29udGV4dCA2NCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9y
IGNsb3NlZCBjb250ZXh0IDY1IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5z
dGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNjYgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBj
b250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA2NyBpcyBlcXVhbCB0byBjbG9zZWQuIAor
UEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDY4IGlzIGVxdWFsIHRvIGNs
b3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNjkgaXMgZXF1
YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA3
MCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBj
b250ZXh0IDcxIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3Ig
Y2xvc2VkIGNvbnRleHQgNzIgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0
YXRlIGZvciBjbG9zZWQgY29udGV4dCA3MyBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNv
bnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDc0IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQ
QVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgNzUgaXMgZXF1YWwgdG8gY2xv
c2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA3NiBpcyBlcXVh
bCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDc3
IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNv
bnRleHQgNzggaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBj
bG9zZWQgY29udGV4dCA3OSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3Rh
dGUgZm9yIGNsb3NlZCBjb250ZXh0IDgwIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29u
dGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgODEgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BB
U1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA4MiBpcyBlcXVhbCB0byBjbG9z
ZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDgzIGlzIGVxdWFs
IHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgODQg
aXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29u
dGV4dCA4NSBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNs
b3NlZCBjb250ZXh0IDg2IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0
ZSBmb3IgY2xvc2VkIGNvbnRleHQgODcgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250
ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA4OCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFT
UyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDg5IGlzIGVxdWFsIHRvIGNsb3Nl
ZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgOTAgaXMgZXF1YWwg
dG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA5MSBp
cyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250
ZXh0IDkyIGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xv
c2VkIGNvbnRleHQgOTMgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRl
IGZvciBjbG9zZWQgY29udGV4dCA5NCBpcyBlcXVhbCB0byBjbG9zZWQuIAorUEFTUyAgIGNvbnRl
eHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDk1IGlzIGVxdWFsIHRvIGNsb3NlZC4gCitQQVNT
ICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgOTYgaXMgZXF1YWwgdG8gY2xvc2Vk
LiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9zZWQgY29udGV4dCA5NyBpcyBlcXVhbCB0
byBjbG9zZWQuIAorUEFTUyAgIGNvbnRleHQuc3RhdGUgZm9yIGNsb3NlZCBjb250ZXh0IDk4IGlz
IGVxdWFsIHRvIGNsb3NlZC4gCitQQVNTICAgY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRl
eHQgOTkgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBjb250ZXh0LnN0YXRlIGZvciBjbG9z
ZWQgY29udGV4dCAxMDAgaXMgZXF1YWwgdG8gY2xvc2VkLiAKK1BBU1MgICBOdW1iZXIgb2YgY29u
dGV4dHMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgYW5kIGNsb3NlZCBpcyBlcXVhbCB0byAxMDAuIAor
UEFTUyA8IFt0ZXN0XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxMDEgYXNzZXJ0aW9u
cykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nl
c3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC9hdWRpb2NvbnRleHQtY2xvc2UtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtY2xvc2UtYmFzaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWVh
YzQ4MGM0OGY4OWI4YWZmYTA5M2E1ZjhiNWM3ZjQ3MTYwODJmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Db250ZXh0L2F1ZGlvY29udGV4dC1jbG9zZS1iYXNp
Yy5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFk
PgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3QgQXVkaW9Db250ZXh0LmNsb3NlKCkgY2xvc2VzIG1h
bnkgY29udGV4dHMKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1j
b2RlIj4KKyAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAg
ICAgbGV0IGNvbnRleHQgPSBudWxsOworCisgICAgICAvLyBUaGUgbnVtYmVyIG9mIGNvbnRleHRz
IHdlIHdhbnQgdG8gY3JlYXRlIGFuZCBjbG9zZS4KKyAgICAgIGxldCBNQVhfSVRFUkFUSU9OID0g
MTAwOworICAgICAgbGV0IGNvdW50ZXIgPSAwOworCisgICAgICBmdW5jdGlvbiBjcmVhdGVDb250
ZXh0QW5kQ2xvc2UodGFzaywgc2hvdWxkKSB7CisgICAgICAgIC8vIEJ5cGFzcyB0aGUgZmlyc3Qg
aXRlcmF0aW9uLgorICAgICAgICBpZiAoY29udGV4dCkgeworICAgICAgICAgIHNob3VsZChjb250
ZXh0LnN0YXRlLCAnY29udGV4dC5zdGF0ZSBmb3IgY2xvc2VkIGNvbnRleHQgJyArIGNvdW50ZXIp
CisgICAgICAgICAgICAgIC5iZUVxdWFsVG8oJ2Nsb3NlZCcpOworICAgICAgICAgIGNvbnRleHQg
PSBudWxsOworICAgICAgICB9CisgICAgICAgIC8vIENyZWF0ZSBuZXcgY29udGV4dCBhbmQgY2xv
c2UuCisgICAgICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CisgICAgICAgIGlmIChj
b3VudGVyKysgPCBNQVhfSVRFUkFUSU9OKSB7CisgICAgICAgICAgLy8gUmVjdXJzaXZlIHByb21p
c2UgcmVzb2x1dGlvbi4KKyAgICAgICAgICBjb250ZXh0LmNsb3NlKCkudGhlbigKKyAgICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3JlYXRlQ29udGV4dEFuZENsb3Nl
KHRhc2ssIHNob3VsZCk7CisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIG9uRmFpbHVyZShzaG91bGQpOworICAgICAgICAgICAgICAg
IHRhc2suZG9uZSgpOworICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICBjb250ZXh0LmNsb3NlKCkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIC8vIHxj
b3VudGVyfCBpcyBvbmUgbW9yZSB0aGFuIE1BWF9JVEVSQVRJT04gaWYgd2UKKyAgICAgICAgICAg
IC8vIHN1Y2NlZWRlZC4KKyAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICBjb3Vu
dGVyIC0gMSwKKyAgICAgICAgICAgICAgICAnTnVtYmVyIG9mIGNvbnRleHRzIHN1Y2Nlc3NmdWxs
eSBjcmVhdGVkIGFuZCBjbG9zZWQnKQorICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oTUFYX0lU
RVJBVElPTik7CisgICAgICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgICAgfQorCisgICAgICBmdW5jdGlvbiBvbkZhaWx1cmUoc2hvdWxkKSB7CisgICAg
ICAgIHNob3VsZChjb250ZXh0LnN0YXRlLCAnQ29udGV4dCAnICsgY291bnRlciArICdmYWlsZWQg
dG8gY2xvc2UnKQorICAgICAgICAgICAgLmJlRXF1YWxUbygnY2xvc2VkJyk7CisgICAgICB9CisK
KyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3Rl
c3QnLAorICAgICAgICAgICAgZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgJ1Rlc3QgdGhh
dCBjbG9zaW5nIGEgY29udGV4dCByZWxlYXNlcyB0aGUgYXVkaW8gSFcgY29udGV4dCcKKyAgICAg
ICAgICB9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAgICAg
Y3JlYXRlQ29udGV4dEFuZENsb3NlKHRhc2ssIHNob3VsZCk7CisgICAgICAgICAgfSk7CisKKyAg
ICAgIGF1ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0NvbnRleHQvYXVkaW9jb250ZXh0LWxp
c3RlbmVyLXNob3VsZC1ub3QtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0L2F1ZGlvY29udGV4dC1saXN0ZW5lci1zaG91bGQtbm90LWNyYXNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTA0ZjEzZThlNTIyZGE4MGJiZTk1YjM3Yjg3OWRlMTY3
N2VjYTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0L2F1ZGlvY29udGV4dC1saXN0ZW5lci1zaG91bGQtbm90LWNyYXNoLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwIEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BB
U1MgRXhlY3V0aW5nICJ0ZXN0IiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFt0ZXN0XSAg
CitQQVNTICAgY29udGV4dC5saXN0ZW5lciBpcyBBdWRpb0xpc3RlbmVyIGlzIHRydWUuIAorUEFT
UyAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoMCwgY29udGV4dCkgc2hvdWxkIG5vdCBjcmFz
aCBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW3Rlc3RdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5O
RVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlzdGVuZXItc2hv
dWxkLW5vdC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Db250ZXh0L2F1
ZGlvY29udGV4dC1saXN0ZW5lci1zaG91bGQtbm90LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZl
MGEzOTU5ZjYzMDE2OWYxNzkzMTNhOWMyZmI0MDJhYTllMWExYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC9hdWRpb2NvbnRleHQtbGlzdGVuZXIt
c2hvdWxkLW5vdC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIGF1ZGlvY29udGV4dC1saXN0ZW5l
ci1zaG91bGQtbm90LWNyYXNoLmh0bWwKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9h
dWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0i
bGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgYXVkaXQgPSBuZXcgQXVkaXQuY3JlYXRlVGFz
a1J1bm5lcigpOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Rlc3QnLCBmdW5jdGlvbih0YXNrLCBz
aG91bGQpIHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CisgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIgaW5zdGFuY2VvZiBBdWRp
b0xpc3RlbmVyLAorICAgICAgICAgICAgJ2NvbnRleHQubGlzdGVuZXIgaXMgQXVkaW9MaXN0ZW5l
cicpCisgICAgICAgICAgICAuYmVUcnVlKCk7CisgICAgICAgIHNob3VsZChmdW5jdGlvbigpIHsK
KyAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKDAsIGNvbnRleHQpOworICAgICAg
ICB9LCAnZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigwLCBjb250ZXh0KSBzaG91bGQgbm90IGNy
YXNoJykubm90VGhyb3coKTsKKyAgICAgICAgdGFzay5kb25lKCk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1h
dXRvbWF0aW9uLXBvc2l0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1
ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1hdXRvbWF0aW9uLXBvc2l0aW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jYTEyNDc2ZTIxMDBlMjlhNzk1YTgyMmFlMTU0MTgwOTc1YjQxMGJhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci9hdWRp
b2xpc3RlbmVyLWF1dG9tYXRpb24tcG9zaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAg
QEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcg
ImxpbmVhciIgCitQQVNTIEV4ZWN1dGluZyAiZXhwb25lbnRpYWwiIAorUEFTUyBFeGVjdXRpbmcg
ImludmVyc2UiIAorUEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW2xpbmVhcl0gIAorUEFTUyAg
IERpc3RhbmNlIG1vZGVsOiAibGluZWFyIiwgcm9sbG9mZjogMTogbGVmdCBjaGFubmVsIGVxdWFs
cyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFi
c29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIERpc3Rh
bmNlIG1vZGVsOiAibGluZWFyIiwgcm9sbG9mZjogMTogcmlnaHQgY2hhbm5lbCBlcXVhbHMgW2V4
cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbbGluZWFyXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtleHBv
bmVudGlhbF0gIAorUEFTUyAgIERpc3RhbmNlIG1vZGVsOiAiZXhwb25lbnRpYWwiLCByb2xsb2Zm
OiAxLjU6IGxlZnQgY2hhbm5lbCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1l
bnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJl
c2hvbGQiOjB9LiAKK1BBU1MgICBEaXN0YW5jZSBtb2RlbDogImV4cG9uZW50aWFsIiwgcm9sbG9m
ZjogMS41OiByaWdodCBjaGFubmVsIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uIAorUEFTUyA8IFtleHBvbmVudGlhbF0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbaW52ZXJzZV0gIAorUEFTUyAgIERpc3Rh
bmNlIG1vZGVsOiAiaW52ZXJzZSIsIHJvbGxvZmY6IDE6IGxlZnQgY2hhbm5lbCBlcXVhbHMgW2V4
cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBEaXN0YW5jZSBt
b2RlbDogImludmVyc2UiLCByb2xsb2ZmOiAxOiByaWdodCBjaGFubmVsIGVxdWFscyBbZXhwZWN0
ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtpbnZlcnNlXSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAzIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyL2F1ZGlvbGlzdGVuZXItYXV0
b21hdGlvbi1wb3NpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5l
ci9hdWRpb2xpc3RlbmVyLWF1dG9tYXRpb24tcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZWM3
MjBkOTY2YWE3ZjlmMTc5YTIwZWY2YTEyYWI5MGE2NzU2MzM3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci9hdWRpb2xpc3RlbmVyLWF1dG9tYXRp
b24tcG9zaXRpb24uaHRtbApAQCAtMCwwICsxLDE3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBBdXRvbWF0aW9uIG9mIEF1ZGlv
TGlzdGVuZXIKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3Njcmlw
dD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2Rl
Ij4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgwMDA7CisgICAgICAvLyBUaGVzZSB0ZXN0cyBh
cmUgcXVpdGUgc2xvdywgc28gZG9uJ3QgcnVuIGZvciBtYW55IGZyYW1lcy4gIDEwMjQgZnJhbWVz
CisgICAgICAvLyBzaG91bGQgYmUgZW5vdWdoIHRvIGRlbW9uc3RyYXRlIHRoYXQgYXV0b21hdGlv
bnMgYXJlIHdvcmtpbmcuCisgICAgICBsZXQgcmVuZGVyRnJhbWVzID0gMTAyNDsKKyAgICAgIGxl
dCByZW5kZXJEdXJhdGlvbiA9IHJlbmRlckZyYW1lcyAvIHNhbXBsZVJhdGU7CisKKyAgICAgIC8v
IEVuZCB0aW1lIG9mIHRoZSBhdXRvbWF0aW9uLiAgRmFpcmx5IGFyYml0cmFyeSwgYnV0IG11c3Qg
YmUgbGVzcyB0aGFuCisgICAgICAvLyB0aGUgcmVuZGVyIGR1cmF0aW9uIHNvIHRoYXQgd2UgY2Fu
IHZlcmlmeSB0aGF0IHRoZSBhdXRvbWF0aW9uIGRpZCBlbmQKKyAgICAgIC8vIGF0IHRoZSBjb3Jy
ZWN0IHRpbWUgYW5kIHZhbHVlLgorICAgICAgbGV0IGVuZFRpbWUgPSAwLjc1ICogcmVuZGVyRHVy
YXRpb247CisKKyAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKwor
ICAgICAgLy8gU3RhcnRpbmcgcG9zaXRpb24gZm9yIHRoZSBwYW5uZXIKKyAgICAgIGxldCBkZWZh
dWx0U3RhcnRQb3NpdGlvbiA9IHt4OiAwLCB5OiAwLCB6OiAwfTsKKworICAgICAgLy8gRW5kaW5n
IHBvc2l0aW9uIGZvciB0aGUgcGFubmVyCisgICAgICBsZXQgcGFubmVyRW5kUG9zaXRpb24gPSB7
eDogMTAwMCwgeTogMTAwMCwgejogMTAwMH07CisKKyAgICAgIC8vIEVuZGluZyBwb3NpdGlvbiBm
b3IgdGhlIGxpc3RlbmVyLiAgSXQgTVVTVCBiZSB0aGUgdGhlIG5lZ2F0aXZlIG9mIHRoZQorICAg
ICAgLy8gcGFubmVyRW5kUG9zaXRpb24hCisgICAgICBsZXQgbGlzdGVuZXJFbmRQb3NpdGlvbiA9
IHsKKyAgICAgICAgeDogLXBhbm5lckVuZFBvc2l0aW9uLngsCisgICAgICAgIHk6IC1wYW5uZXJF
bmRQb3NpdGlvbi55LAorICAgICAgICB6OiAtcGFubmVyRW5kUG9zaXRpb24uegorICAgICAgfTsK
KworCisgICAgICAvLyBUZXN0IHRoZSBsaW5lYXIsIGludmVyc2UsIGFuZCBleHBvbmVudGlhbCBk
aXN0YW5jZSBtb2RlbHMgd2hlbiB0aGUKKyAgICAgIC8vIEF1ZGlvTGlzdGVuZXIgaXMgbW92aW5n
IGluc3RlYWQgb2YgdGhlIHBhbm5lci4gIFdlIHRha2UgYWR2YW50YWdlIHRoYXQKKyAgICAgIC8v
IG1vdGlvbiBpcyByZWxhdGl2ZSBhbmQgY3JlYXRlIGEgcmVmZXJlbmNlIGJ5IG1vdmluZyB0aGUg
cGFubmVyIGluIG9uZQorICAgICAgLy8gZGlyZWN0aW9uLiAgVGhlIHJlc3VsdGluZyBvdXRwdXQg
aXMgdGhlIGV4cGVjdGVkIHJlc3VsdC4gIFRoZW4gd2UgcmVkbworICAgICAgLy8gdGhlIHRlc3Qs
IGJ1dCB0aGlzIHRpbWUgbW92ZSB0aGUgbGlzdGVuZXIgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlv
bi4KKyAgICAgIC8vIFRoZSBvdXRwdXQgb2YgdGhpcyB0ZXN0IGlzIGNvbXBhcmVkIGFnYWluc3Qg
dGhlIHBhbm5lciByZXN1bHQuICBUaGV5CisgICAgICAvLyBzaG91bGQgYmUgdGhlIHNhbWUuCisK
KyAgICAgIGF1ZGl0LmRlZmluZSgnbGluZWFyJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAg
ICBydW5UZXN0KHsKKyAgICAgICAgICBzaG91bGQ6IHNob3VsZCwKKyAgICAgICAgICBzdGFydFBv
c2l0aW9uOiBkZWZhdWx0U3RhcnRQb3NpdGlvbiwKKyAgICAgICAgICBlbmRQb3NpdGlvbjogcGFu
bmVyRW5kUG9zaXRpb24sCisgICAgICAgICAgZGlzdGFuY2VNb2RlbDoge21vZGVsOiAnbGluZWFy
Jywgcm9sbG9mZjogMX0KKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAg
ICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdleHBvbmVudGlhbCcsICh0YXNrLCBzaG91bGQp
ID0+IHsKKyAgICAgICAgcnVuVGVzdCh7CisgICAgICAgICAgc2hvdWxkOiBzaG91bGQsCisgICAg
ICAgICAgc3RhcnRQb3NpdGlvbjogZGVmYXVsdFN0YXJ0UG9zaXRpb24sCisgICAgICAgICAgZW5k
UG9zaXRpb246IHBhbm5lckVuZFBvc2l0aW9uLAorICAgICAgICAgIGRpc3RhbmNlTW9kZWw6IHtt
b2RlbDogJ2V4cG9uZW50aWFsJywgcm9sbG9mZjogMS41fQorICAgICAgICB9KS50aGVuKCgpID0+
IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2ludmVyc2Un
LCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3QoeworICAgICAgICAgIHNob3Vs
ZDogc2hvdWxkLAorICAgICAgICAgIHN0YXJ0UG9zaXRpb246IGRlZmF1bHRTdGFydFBvc2l0aW9u
LAorICAgICAgICAgIGVuZFBvc2l0aW9uOiBwYW5uZXJFbmRQb3NpdGlvbiwKKyAgICAgICAgICBk
aXN0YW5jZU1vZGVsOiB7bW9kZWw6ICdpbnZlcnNlJywgcm9sbG9mZjogMX0KKyAgICAgICAgfSku
dGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7
CisKKyAgICAgIGZ1bmN0aW9uIGNyZWF0ZUdyYXBoKCkgeworICAgICAgICBsZXQgY29udGV4dCA9
IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7Cisg
ICAgICAgIC8vIFN0ZXJlbyBzb3VyY2UgZm9yIHRoZSBwYW5uZXIuCisgICAgICAgIGxldCBzb3Vy
Y2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVy
ID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgcmVuZGVyRnJhbWVzLCBbMSwgMl0pOwor
CisgICAgICAgIGxldCBwYW5uZXIgPSBjb250ZXh0LmNyZWF0ZVBhbm5lcigpOworICAgICAgICBw
YW5uZXIucGFubmluZ01vZGVsID0gJ2VxdWFscG93ZXInOworCisgICAgICAgIHNvdXJjZS5jb25u
ZWN0KHBhbm5lcik7CisgICAgICAgIHBhbm5lci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24p
OworCisgICAgICAgIHJldHVybiB7Y29udGV4dDogY29udGV4dCwgc291cmNlOiBzb3VyY2UsIHBh
bm5lcjogcGFubmVyfTsKKyAgICAgIH0KKworICAgICAgLy8gUnVuIGEgbGlzdGVuZXIgdGVzdCB3
aXRoIHRoZSBnaXZlbiBvcHRpb25zLgorICAgICAgZnVuY3Rpb24gcnVuVGVzdChvcHRpb25zKSB7
CisgICAgICAgIGxldCByZWZSZXN1bHQ7CisKKyAgICAgICAgcmV0dXJuIHJ1blBhbm5lclRlc3Qo
b3B0aW9ucykKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlbmRlcmVkQnVmZmVyKSB7Cisg
ICAgICAgICAgICAgIHJlZlJlc3VsdCA9IHJlbmRlcmVkQnVmZmVyOworICAgICAgICAgICAgfSkK
KyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAvLyBNb3ZlIHRo
ZSBsaXN0ZW5lciBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLgorICAgICAgICAgICAgICBvcHRp
b25zLmVuZFBvc2l0aW9uID0gbGlzdGVuZXJFbmRQb3NpdGlvbjsKKyAgICAgICAgICAgICAgcmV0
dXJuIHJ1bkxpc3RlbmVyVGVzdChvcHRpb25zKS50aGVuKGZ1bmN0aW9uKHJlbmRlcmVkQnVmZmVy
KSB7CisgICAgICAgICAgICAgICAgY29tcGFyZVJlc3VsdHMocmVuZGVyZWRCdWZmZXIsIHJlZlJl
c3VsdCwgb3B0aW9ucyk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICB9CisKKyAgICAgIGZ1bmN0aW9uIHJ1blBhbm5lclRlc3Qob3B0aW9ucykgeworICAgICAgICBs
ZXQgZ3JhcGggPSBjcmVhdGVHcmFwaCgpOworCisgICAgICAgIHJldHVybiBydW5UZXN0Q29yZShn
cmFwaCwgb3B0aW9ucywgZ3JhcGgucGFubmVyKTsKKyAgICAgIH0KKworCisgICAgICBmdW5jdGlv
biBydW5MaXN0ZW5lclRlc3Qob3B0aW9ucykgeworICAgICAgICBsZXQgZ3JhcGggPSBjcmVhdGVH
cmFwaCgpOworCisgICAgICAgIHJldHVybiBydW5UZXN0Q29yZShncmFwaCwgb3B0aW9ucywgZ3Jh
cGguY29udGV4dC5saXN0ZW5lcik7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIHJ1blRlc3RD
b3JlKGdyYXBoLCBvcHRpb25zLCBhdWRpb09qYmVjdCkgeworICAgICAgICBsZXQge2NvbnRleHQs
IHNvdXJjZSwgcGFubmVyfSA9IGdyYXBoOworCisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIHBh
bm5lciB3aXRoIGtub3duIHZhbHVlcy4KKyAgICAgICAgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSBv
cHRpb25zLmRpc3RhbmNlTW9kZWwubW9kZWw7CisgICAgICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9y
ID0gb3B0aW9ucy5kaXN0YW5jZU1vZGVsLnJvbGxvZmY7CisgICAgICAgIHBhbm5lci5wYW5uaW5n
TW9kZWwgPSAnZXF1YWxwb3dlcic7CisKKyAgICAgICAgLy8gQXV0b21hdGUgdGhlIGxvY2F0aW9u
LiAgYXVkaW9PYmplY3QgbXVzdCBiZSBlaXRoZXIgYSBQYW5uZXJOb2RlIG9yCisgICAgICAgIC8v
IHRoZSBjb250ZXh0J3MgQXVkaW9MaXN0ZW5lci4KKworICAgICAgICBhdWRpb09qYmVjdC5wb3Np
dGlvblguc2V0VmFsdWVBdFRpbWUob3B0aW9ucy5zdGFydFBvc2l0aW9uLngsIDApOworICAgICAg
ICBhdWRpb09qYmVjdC5wb3NpdGlvblkuc2V0VmFsdWVBdFRpbWUob3B0aW9ucy5zdGFydFBvc2l0
aW9uLnksIDApOworICAgICAgICBhdWRpb09qYmVjdC5wb3NpdGlvblouc2V0VmFsdWVBdFRpbWUo
b3B0aW9ucy5zdGFydFBvc2l0aW9uLnosIDApOworCisgICAgICAgIGF1ZGlvT2piZWN0LnBvc2l0
aW9uWC5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgKKyAgICAgICAgICAgIG9wdGlvbnMuZW5kUG9z
aXRpb24ueCwgZW5kVGltZSk7CisgICAgICAgIGF1ZGlvT2piZWN0LnBvc2l0aW9uWS5saW5lYXJS
YW1wVG9WYWx1ZUF0VGltZSgKKyAgICAgICAgICAgIG9wdGlvbnMuZW5kUG9zaXRpb24ueSwgZW5k
VGltZSk7CisgICAgICAgIGF1ZGlvT2piZWN0LnBvc2l0aW9uWi5saW5lYXJSYW1wVG9WYWx1ZUF0
VGltZSgKKyAgICAgICAgICAgIG9wdGlvbnMuZW5kUG9zaXRpb24ueiwgZW5kVGltZSk7CisKKyAg
ICAgICAgLy8gU3RhcnQgdGhlIHNvdXJjZSwgcmVuZGVyIHRoZSBncmFwaCwgYW5kIHJldHVybiB0
aGUgcmVzdWx0aW5nIHByb21pc2UKKyAgICAgICAgLy8gZnJvbSByZW5kZXJpbmcuCisgICAgICAg
IHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5n
KCkudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAgICAgICAgICByZXR1cm4gcmVzdWx0
QnVmZmVyOworICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gY29tcGFyZVJl
c3VsdHMoYWN0dWFsUmVzdWx0LCBleHBlY3RlZFJlc3VsdCwgb3B0aW9ucykgeworICAgICAgICAv
LyBDb21wYXJlIHRoZSBvdXRwdXQgd2l0aCB0aGUgcmVmZXJlbmNlIG91dHB1dCBmcm9tIG1vdmlu
ZyB0aGUgc291cmNlCisgICAgICAgIC8vIGluIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24uCisKKyAg
ICAgICAgbGV0IGV4cGVjdGVkTGVmdCA9IGV4cGVjdGVkUmVzdWx0LmdldENoYW5uZWxEYXRhKDAp
OworICAgICAgICBsZXQgZXhwZWN0ZWRSaWdodCA9IGV4cGVjdGVkUmVzdWx0LmdldENoYW5uZWxE
YXRhKDEpOworCisgICAgICAgIGxldCBhY3R1YWxMZWZ0ID0gYWN0dWFsUmVzdWx0LmdldENoYW5u
ZWxEYXRhKDApOworICAgICAgICBsZXQgYWN0dWFsUmlnaHQgPSBhY3R1YWxSZXN1bHQuZ2V0Q2hh
bm5lbERhdGEoMSk7CisKKyAgICAgICAgbGV0IHByZWZpeCA9ICdEaXN0YW5jZSBtb2RlbDogIicg
KyBvcHRpb25zLmRpc3RhbmNlTW9kZWwubW9kZWwgKyAnIic7CisgICAgICAgIHByZWZpeCArPSAn
LCByb2xsb2ZmOiAnICsgb3B0aW9ucy5kaXN0YW5jZU1vZGVsLnJvbGxvZmY7CisgICAgICAgIG9w
dGlvbnMuc2hvdWxkKGFjdHVhbExlZnQsIHByZWZpeCArICc6IGxlZnQgY2hhbm5lbCcpCisgICAg
ICAgICAgICAuYmVDbG9zZVRvQXJyYXkoZXhwZWN0ZWRMZWZ0LCAwKTsKKyAgICAgICAgb3B0aW9u
cy5zaG91bGQoYWN0dWFsUmlnaHQsIHByZWZpeCArICc6IHJpZ2h0IGNoYW5uZWwnKQorICAgICAg
ICAgICAgLmJlQ2xvc2VUb0FycmF5KGV4cGVjdGVkUmlnaHQsIDApOworICAgICAgfQorICAgIDwv
c2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb0xpc3RlbmVyL2F1ZGlvbGlzdGVuZXItc2V0LXBvc2l0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQt
cG9zaXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwMDhjYmM2OTYzNTRjYjY0M2YzY2Zk
Y2MxMDUyY2Q2OWE0YmU0N2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9BdWRpb0xpc3RlbmVyL2F1ZGlvbGlzdGVuZXItc2V0LXBvc2l0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEwNCBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQ
QVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0UG9zaXRpb24gWCBlcnJvciIgCitQQVNTIEV4ZWN1
dGluZyAiTGlzdGVuZXIgc2V0UG9zaXRpb24gWCBubyBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAi
TGlzdGVuZXIgc2V0UG9zaXRpb24gWSBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIg
c2V0UG9zaXRpb24gWSBubyBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0UG9z
aXRpb24gWiBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0UG9zaXRpb24gWiBu
byBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2Fy
ZCBYIGVycm9yIiAKK1BBU1MgRXhlY3V0aW5nICJMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3
YXJkIFggbm8gZXJyb3IiIAorUEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldE9yaWVudGF0aW9u
IGZvcndhcmQgWSBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0T3JpZW50YXRp
b24gZm9yd2FyZCBZIG5vIGVycm9yIiAKK1BBU1MgRXhlY3V0aW5nICJMaXN0ZW5lciBzZXRPcmll
bnRhdGlvbiBmb3J3YXJkIFogZXJyb3IiIAorUEFTUyBFeGVjdXRpbmcgIkxpc3RlbmVyIHNldE9y
aWVudGF0aW9uIGZvcndhcmQgWiBubyBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIg
c2V0T3JpZW50YXRpb24gdXAgWCBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0
T3JpZW50YXRpb24gdXAgWCBubyBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0
T3JpZW50YXRpb24gdXAgWSBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0T3Jp
ZW50YXRpb24gdXAgWSBubyBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0T3Jp
ZW50YXRpb24gdXAgWiBlcnJvciIgCitQQVNTIEV4ZWN1dGluZyAiTGlzdGVuZXIgc2V0T3JpZW50
YXRpb24gdXAgWiBubyBlcnJvciIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbTGlzdGVu
ZXIgc2V0UG9zaXRpb24gWCBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldFBvc2l0aW9uIFgg
ZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFT
UyAgIGxpc3RlbmVyLnBvc2l0aW9uWC5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMTYpIGRpZCBu
b3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICBsaXN0ZW5lci5zZXRQb3NpdGlvbigxLDEs
MSkgZm9yIHBvc2l0aW9uWCB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3Zl
cmxhcHBpbmciLiAKK1BBU1MgPCBbTGlzdGVuZXIgc2V0UG9zaXRpb24gWCBlcnJvcl0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIg
c2V0UG9zaXRpb24gWCBubyBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldFBvc2l0aW9uIFgg
bm8gZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAor
UEFTUyAgIGxpc3RlbmVyLnBvc2l0aW9uWC5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMDA1KSBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldFBvc2l0aW9u
IFggbm8gZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykg
CitQQVNTID4gW0xpc3RlbmVyIHNldFBvc2l0aW9uIFkgZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5l
ciBzZXRQb3NpdGlvbiBZIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5l
ciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci5wb3NpdGlvblkuc2V0VmFsdWVDdXJ2ZSguLi4s
IDAsIDAuMDE2KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTICAgbGlzdGVuZXIu
c2V0UG9zaXRpb24oMSwxLDEpIGZvciBwb3NpdGlvblkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6
ICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldFBvc2l0aW9u
IFkgZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW0xpc3RlbmVyIHNldFBvc2l0aW9uIFkgbm8gZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5l
ciBzZXRQb3NpdGlvbiBZIG5vIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0
ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci5wb3NpdGlvblkuc2V0VmFsdWVDdXJ2ZSgu
Li4sIDAsIDAuMDAwNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyA8IFtMaXN0
ZW5lciBzZXRQb3NpdGlvbiBZIG5vIGVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRQb3NpdGlvbiBaIGVycm9yXSAg
CitQQVNTICAgTGlzdGVuZXIgc2V0UG9zaXRpb24gWiBlcnJvcjogTm9kZSB1bmRlciB0ZXN0IGlz
IGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIucG9zaXRpb25aLnNl
dFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxNikgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAor
UEFTUyAgIGxpc3RlbmVyLnNldFBvc2l0aW9uKDEsMSwxKSBmb3IgcG9zaXRpb25aIHRocmV3IE5v
dFN1cHBvcnRlZEVycm9yOiAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIuIAorUEFTUyA8IFtMaXN0
ZW5lciBzZXRQb3NpdGlvbiBaIGVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAz
IGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBzZXRQb3NpdGlvbiBaIG5vIGVycm9yXSAg
CitQQVNTICAgTGlzdGVuZXIgc2V0UG9zaXRpb24gWiBubyBlcnJvcjogTm9kZSB1bmRlciB0ZXN0
IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIucG9zaXRpb25a
LnNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAwMDUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9u
LiAKK1BBU1MgPCBbTGlzdGVuZXIgc2V0UG9zaXRpb24gWiBubyBlcnJvcl0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3Jp
ZW50YXRpb24gZm9yd2FyZCBYIGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50YXRp
b24gZm9yd2FyZCBYIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5lciBp
cyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci5mb3J3YXJkWC5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwg
MC4wMTYpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICBsaXN0ZW5lci5zZXRP
cmllbnRhdGlvbigxLDEsMSwxLDEsMSkgZm9yIGZvcndhcmRYIHRocmV3IE5vdFN1cHBvcnRlZEVy
cm9yOiAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIuIAorUEFTUyA8IFtMaXN0ZW5lciBzZXRPcmll
bnRhdGlvbiBmb3J3YXJkIFggZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMg
YXNzZXJ0aW9ucykgCitQQVNTID4gW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWCBu
byBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWCBubyBl
cnJvcjogTm9kZSB1bmRlciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNT
ICAgbGlzdGVuZXIuZm9yd2FyZFguc2V0VmFsdWVDdXJ2ZSguLi4sIDAsIDAuMDAwNSkgZGlkIG5v
dCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyA8IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBm
b3J3YXJkIFggbm8gZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0
aW9ucykgCitQQVNTID4gW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWSBlcnJvcl0g
IAorUEFTUyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWSBlcnJvcjogTm9kZSB1
bmRlciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIu
Zm9yd2FyZFkuc2V0VmFsdWVDdXJ2ZSguLi4sIDAsIDAuMDE2KSBkaWQgbm90IHRocm93IGFuIGV4
Y2VwdGlvbi4gCitQQVNTICAgbGlzdGVuZXIuc2V0T3JpZW50YXRpb24oMSwxLDEsMSwxLDEpIGZv
ciBmb3J3YXJkWSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3ZlcmxhcHBp
bmciLiAKK1BBU1MgPCBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBZIGVycm9yXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0
ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFkgbm8gZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5l
ciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFkgbm8gZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBh
biBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFTUyAgIGxpc3RlbmVyLmZvcndhcmRZLnNldFZh
bHVlQ3VydmUoLi4uLCAwLCAwLjAwMDUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BB
U1MgPCBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBZIG5vIGVycm9yXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5lciBz
ZXRPcmllbnRhdGlvbiBmb3J3YXJkIFogZXJyb3JdICAKK1BBU1MgICBMaXN0ZW5lciBzZXRPcmll
bnRhdGlvbiBmb3J3YXJkIFogZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3Rl
bmVyIGlzIHRydWUuIAorUEFTUyAgIGxpc3RlbmVyLmZvcndhcmRaLnNldFZhbHVlQ3VydmUoLi4u
LCAwLCAwLjAxNikgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyAgIGxpc3RlbmVy
LnNldE9yaWVudGF0aW9uKDEsMSwxLDEsMSwxKSBmb3IgZm9yd2FyZFogdGhyZXcgTm90U3VwcG9y
dGVkRXJyb3I6ICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW0xpc3RlbmVyIHNl
dE9yaWVudGF0aW9uIGZvcndhcmQgWiBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2Fy
ZCBaIG5vIGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBa
IG5vIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5lciBpcyB0cnVlLiAK
K1BBU1MgICBsaXN0ZW5lci5mb3J3YXJkWi5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMDA1KSBk
aWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9yaWVudGF0
aW9uIGZvcndhcmQgWiBubyBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBh
c3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWCBlcnJvcl0g
IAorUEFTUyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggZXJyb3I6IE5vZGUgdW5kZXIg
dGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFTUyAgIGxpc3RlbmVyLnVwWC5z
ZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMTYpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAK
K1BBU1MgICBsaXN0ZW5lci5zZXRPcmllbnRhdGlvbigxLDEsMSwxLDEsMSkgZm9yIHVwWCB0aHJl
dyBOb3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciLiAKK1BBU1MgPCBb
TGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWCBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbTGlzdGVuZXIgc2V0T3JpZW50YXRpb24g
dXAgWCBubyBlcnJvcl0gIAorUEFTUyAgIExpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggbm8g
ZXJyb3I6IE5vZGUgdW5kZXIgdGVzdCBpcyBhbiBBdWRpb0xJc3RlbmVyIGlzIHRydWUuIAorUEFT
UyAgIGxpc3RlbmVyLnVwWC5zZXRWYWx1ZUN1cnZlKC4uLiwgMCwgMC4wMDA1KSBkaWQgbm90IHRo
cm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFgg
bm8gZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFkgZXJyb3JdICAKK1BBU1MgICBMaXN0
ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBZIGVycm9yOiBOb2RlIHVuZGVyIHRlc3QgaXMgYW4gQXVk
aW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci51cFkuc2V0VmFsdWVDdXJ2ZSgu
Li4sIDAsIDAuMDE2KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCitQQVNTICAgbGlzdGVu
ZXIuc2V0T3JpZW50YXRpb24oMSwxLDEsMSwxLDEpIGZvciB1cFkgdGhyZXcgTm90U3VwcG9ydGVk
RXJyb3I6ICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIi4gCitQQVNTIDwgW0xpc3RlbmVyIHNldE9y
aWVudGF0aW9uIHVwIFkgZXJyb3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNz
ZXJ0aW9ucykgCitQQVNTID4gW0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFkgbm8gZXJyb3Jd
ICAKK1BBU1MgICBMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBZIG5vIGVycm9yOiBOb2RlIHVu
ZGVyIHRlc3QgaXMgYW4gQXVkaW9MSXN0ZW5lciBpcyB0cnVlLiAKK1BBU1MgICBsaXN0ZW5lci51
cFkuc2V0VmFsdWVDdXJ2ZSguLi4sIDAsIDAuMDAwNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRp
b24uIAorUEFTUyA8IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBZIG5vIGVycm9yXSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtMaXN0ZW5l
ciBzZXRPcmllbnRhdGlvbiB1cCBaIGVycm9yXSAgCitQQVNTICAgTGlzdGVuZXIgc2V0T3JpZW50
YXRpb24gdXAgWiBlcnJvcjogTm9kZSB1bmRlciB0ZXN0IGlzIGFuIEF1ZGlvTElzdGVuZXIgaXMg
dHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIudXBaLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxNikg
ZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyAgIGxpc3RlbmVyLnNldE9yaWVudGF0
aW9uKDEsMSwxLDEsMSwxKSBmb3IgdXBaIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRXZlbnRz
IGFyZSBvdmVybGFwcGluZyIuIAorUEFTUyA8IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBa
IGVycm9yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFT
UyA+IFtMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBaIG5vIGVycm9yXSAgCitQQVNTICAgTGlz
dGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWiBubyBlcnJvcjogTm9kZSB1bmRlciB0ZXN0IGlzIGFu
IEF1ZGlvTElzdGVuZXIgaXMgdHJ1ZS4gCitQQVNTICAgbGlzdGVuZXIudXBaLnNldFZhbHVlQ3Vy
dmUoLi4uLCAwLCAwLjAwMDUpIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgPCBb
TGlzdGVuZXIgc2V0T3JpZW50YXRpb24gdXAgWiBubyBlcnJvcl0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5J
U0hFRDogMTggdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQtcG9zaXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIvYXVkaW9saXN0ZW5lci1zZXQt
cG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2Q0M2JjMjIwYzcxOTc3NTJiN2FmMWUyYWFmYTQy
NDk3MTNlOTIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9M
aXN0ZW5lci9hdWRpb2xpc3RlbmVyLXNldC1wb3NpdGlvbi5odG1sCkBAIC0wLDAgKzEsMTY2IEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBU
ZXN0IEF1ZGlvTGlzdGVuZXIuc2V0UG9zaXRpb24gYW5kIEF1ZGlvTGlzdGVuZXIuc2V0T3JpZW50
YXRpb24gRXJyb3JzCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zZXQtcG9zaXRpb24tdnMtY3Vy
dmUtdGVzdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBp
ZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICAvLyBGYWlybHkgYXJiaXRyYXJ5IHJhdGUKKyAg
ICAgIGxldCBzYW1wbGVSYXRlID0gMTYwMDA7CisKKyAgICAgIC8vIEZvciB0aGUgdGVzdHMgd2Ug
bmVlZCB0byByZW5kZXIgZm9yIGF0IGxlYXN0IHR3byByZW5kZXIgcXVhbnRhLgorICAgICAgLy8g
T3RoZXJ3aXNlLCBwcmV0dHkgYXJiaXRyYXJ5LgorICAgICAgbGV0IHJlbmRlckZyYW1lcyA9IDI1
NjsKKyAgICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IHJlbmRlckZyYW1lcyAvIHNhbXBsZVJhdGU7
CisKKyAgICAgIC8vIFRoZSBjdXJ2ZSBkdXJhdGlvbiBmb3IgdGhlIHRlc3QuICBBbnl0aGluZyBs
ZXNzIHRoYW4gb25lIHJlbmRlciBxdWFudHVtCisgICAgICAvLyBpcyBmaW5lLiAgQXJiaXRyYXJp
bHkgY2hvb3NlIHNvbWV0aGluZyBzbWFsbC4KKyAgICAgIGxldCBjdXJ2ZUR1cmF0aW9uRnJhbWVz
ID0gODsKKyAgICAgIGxldCBjdXJ2ZUR1cmF0aW9uID0gY3VydmVEdXJhdGlvbkZyYW1lcyAvIHNh
bXBsZVJhdGU7CisKKyAgICAgIC8vIFdoZW4gdG8gY2FsbCBzZXRQb3NpdGlvbiwgYWZ0ZXIgdGhl
IHNldFZhbHVlQ3VydmUgaGFzIGVuZGVkLiAgQW55IHZhbHVlCisgICAgICAvLyBhZnRlciB0aGUg
ZW5kIG9mIHRoZSBmaXJzdCByZW5kZXIgcXVhbnR1bSBpcyBmaW5lLgorICAgICAgbGV0IHN1c3Bl
bmRGcmFtZSA9IDEyOTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5l
cigpOworCisgICAgICAvLyBBcnJheSBvZiB0ZXN0cyB0byBkby4gIEVhY2ggZWxlbWVudCBvZiB0
aGlzIGFycmF5IGlzIHVzZWQgdG8gY3JlYXRlIGEKKyAgICAgIC8vIHRhc2sgdG8gdGVzdCB0aGUg
ZW50cnkuCisgICAgICBsZXQgdGVzdHMgPSBbCisgICAgICAgIC8vIFRlc3QgfHNldFBvc2l0aW9u
fCBhZ2FpbnN0IHxwb3NpdGlvblh8LCB8cG9zaXRpb25ZfCwgYW5kIHxwb3NpdGlvblp8CisgICAg
ICAgIC8vIHNldFZhbHVlQ3VydmVzLiAgSW5jbHVkZSB0ZXN0IHdoZXJlIHRoZXJlJ3Mgb3Zlcmxh
cCBhbmQgd2hlcmUgdGhlcmUKKyAgICAgICAgLy8gaXNuJ3QuCisgICAgICAgIHsKKyAgICAgICAg
ICBuYW1lOiAnTGlzdGVuZXIgc2V0UG9zaXRpb24gWCBlcnJvcicsCisgICAgICAgICAgb3B0aW9u
czoge3BhcmFtTmFtZTogJ3Bvc2l0aW9uWCcsIGN1cnZlRHVyYXRpb246IHJlbmRlckR1cmF0aW9u
fQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldFBv
c2l0aW9uIFggbm8gZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgIHBh
cmFtTmFtZTogJ3Bvc2l0aW9uWCcsCisgICAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiBjdXJ2ZUR1
cmF0aW9uLAorICAgICAgICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUKKyAgICAgICAg
ICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0
UG9zaXRpb24gWSBlcnJvcicsCisgICAgICAgICAgb3B0aW9uczoge3BhcmFtTmFtZTogJ3Bvc2l0
aW9uWScsIGN1cnZlRHVyYXRpb246IHJlbmRlckR1cmF0aW9ufQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldFBvc2l0aW9uIFkgbm8gZXJyb3InLAor
ICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWScs
CisgICAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiBjdXJ2ZUR1cmF0aW9uLAorICAgICAgICAgICAg
c3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0UG9zaXRpb24gWiBlcnJvcicsCisg
ICAgICAgICAgb3B0aW9uczoge3BhcmFtTmFtZTogJ3Bvc2l0aW9uWicsIGN1cnZlRHVyYXRpb246
IHJlbmRlckR1cmF0aW9ufQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTog
J0xpc3RlbmVyIHNldFBvc2l0aW9uIFogbm8gZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHsK
KyAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWicsCisgICAgICAgICAgICBjdXJ2ZUR1
cmF0aW9uOiBjdXJ2ZUR1cmF0aW9uLAorICAgICAgICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5k
RnJhbWUKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIC8vIE5vdyBkbyB0aGUgc2Ft
ZSB3aXRoIHxzZXRPcmllbnRhdGlvbnwsIGZvciBmb3J3YXJkIGFuZCB1cCB2ZWN0b3JzLgorICAg
ICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQg
WCBlcnJvcicsCisgICAgICAgICAgb3B0aW9uczoge3BhcmFtTmFtZTogJ2ZvcndhcmRYJywgY3Vy
dmVEdXJhdGlvbjogcmVuZGVyRHVyYXRpb259CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBYIG5vIGVycm9yJywK
KyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICBwYXJhbU5hbWU6ICdmb3J3YXJkWCcs
CisgICAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiBjdXJ2ZUR1cmF0aW9uLAorICAgICAgICAgICAg
c3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICBuYW1lOiAnTGlzdGVuZXIgc2V0T3JpZW50YXRpb24gZm9yd2FyZCBZ
IGVycm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7cGFyYW1OYW1lOiAnZm9yd2FyZFknLCBjdXJ2
ZUR1cmF0aW9uOiByZW5kZXJEdXJhdGlvbn0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFkgbm8gZXJyb3InLAor
ICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgIHBhcmFtTmFtZTogJ2ZvcndhcmRZJywK
KyAgICAgICAgICAgIGN1cnZlRHVyYXRpb246IGN1cnZlRHVyYXRpb24sCisgICAgICAgICAgICBz
dXNwZW5kRnJhbWU6IHN1c3BlbmRGcmFtZQorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiBmb3J3YXJkIFog
ZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHtwYXJhbU5hbWU6ICdmb3J3YXJkWicsIGN1cnZl
RHVyYXRpb246IHJlbmRlckR1cmF0aW9ufQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgbmFtZTogJ0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIGZvcndhcmQgWiBubyBlcnJvcicsCisg
ICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgcGFyYW1OYW1lOiAnZm9yd2FyZFonLAor
ICAgICAgICAgICAgY3VydmVEdXJhdGlvbjogY3VydmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHN1
c3BlbmRGcmFtZTogc3VzcGVuZEZyYW1lCisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFggZXJyb3In
LAorICAgICAgICAgIG9wdGlvbnM6IHtwYXJhbU5hbWU6ICd1cFgnLCBjdXJ2ZUR1cmF0aW9uOiBy
ZW5kZXJEdXJhdGlvbn0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdM
aXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBYIG5vIGVycm9yJywKKyAgICAgICAgICBvcHRpb25z
OiB7CisgICAgICAgICAgICBwYXJhbU5hbWU6ICd1cFgnLAorICAgICAgICAgICAgY3VydmVEdXJh
dGlvbjogY3VydmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHN1c3BlbmRGcmFtZTogc3VzcGVuZEZy
YW1lCisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTog
J0xpc3RlbmVyIHNldE9yaWVudGF0aW9uIHVwIFkgZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6
IHtwYXJhbU5hbWU6ICd1cFknLCBjdXJ2ZUR1cmF0aW9uOiByZW5kZXJEdXJhdGlvbn0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlv
biB1cCBZIG5vIGVycm9yJywKKyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICBwYXJh
bU5hbWU6ICd1cFknLAorICAgICAgICAgICAgY3VydmVEdXJhdGlvbjogY3VydmVEdXJhdGlvbiwK
KyAgICAgICAgICAgIHN1c3BlbmRGcmFtZTogc3VzcGVuZEZyYW1lCisgICAgICAgICAgfQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgbmFtZTogJ0xpc3RlbmVyIHNldE9yaWVudGF0
aW9uIHVwIFogZXJyb3InLAorICAgICAgICAgIG9wdGlvbnM6IHtwYXJhbU5hbWU6ICd1cFonLCBj
dXJ2ZUR1cmF0aW9uOiByZW5kZXJEdXJhdGlvbn0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgIG5hbWU6ICdMaXN0ZW5lciBzZXRPcmllbnRhdGlvbiB1cCBaIG5vIGVycm9yJywKKyAg
ICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICBwYXJhbU5hbWU6ICd1cFonLAorICAgICAg
ICAgICAgY3VydmVEdXJhdGlvbjogY3VydmVEdXJhdGlvbiwKKyAgICAgICAgICAgIHN1c3BlbmRG
cmFtZTogc3VzcGVuZEZyYW1lCisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgXTsKKwor
ICAgICAgLy8gQ3JlYXRlIGFuIGF1ZGl0IHRlc3QgZm9yIGVhY2ggZW50cnkgaW4gfHRlc3RzfC4K
KyAgICAgIHRlc3RzLmZvckVhY2godGVzdCA9PiB7CisgICAgICAgIGF1ZGl0LmRlZmluZSh0ZXN0
Lm5hbWUsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBP
ZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAg
ICAgdGVzdFBvc2l0aW9uU2V0dGVyVnNDdXJ2ZSgKKyAgICAgICAgICAgICAgc2hvdWxkLCBjb250
ZXh0LAorICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKAorICAgICAgICAgICAgICAgICAge3Rl
c3ROYW1lOiB0ZXN0Lm5hbWUsIG5vZGVOYW1lOiAnbGlzdGVuZXInfSwgdGVzdC5vcHRpb25zKSkK
KyAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgICB9KTsKKyAg
ICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwt
Y29ubmVjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2Rl
L3RhaWwtY29ubmVjdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3YmRiMzA4YWEwMzQx
NjllMGQyNWExNjhmZjdmMmEwYjliMmJkODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1jb25uZWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNSBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4
ZWN1dGluZyAiUmVjb25uZWN0IGdyYXBoIHRvIER5bmFtaWNzQ29tcHJlc3NvciBiZWZvcmUgZW5k
IG9mIHRhaWwiIAorUEFTUyBFeGVjdXRpbmcgIlJlY29ubmVjdCBncmFwaCB0byBCaXF1YWQgYmVm
b3JlIGVuZCBvZiB0YWlsIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtSZWNvbm5lY3Qg
Z3JhcGggdG8gRHluYW1pY3NDb21wcmVzc29yIGJlZm9yZSBlbmQgb2YgdGFpbF0gIAorUEFTUyAg
IE9zY2lsbGF0b3Igc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS42ODku
IAorUEFTUyAgIE91dHB1dCBvZiBEeW5hbWljc0NvbXByZXNzb3JOb2RlIGlzIG5vdCBjb25zdGFu
dGx5IDAgKGNvbnRhaW5zIDE1OTAzIGRpZmZlcmVudCB2YWx1ZXMpLiAKK1BBU1MgPCBbUmVjb25u
ZWN0IGdyYXBoIHRvIER5bmFtaWNzQ29tcHJlc3NvciBiZWZvcmUgZW5kIG9mIHRhaWxdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4gW1JlY29ubmVj
dCBncmFwaCB0byBCaXF1YWQgYmVmb3JlIGVuZCBvZiB0YWlsXSAgCitQQVNTICAgT3NjaWxsYXRv
ciBzdGFydCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLjEyNjkxNjUwMzkwNjI1
LiAKK1BBU1MgICBPdXRwdXQgb2YgQmlxdWFkRmlsdGVyTm9kZSBpcyBub3QgY29uc3RhbnRseSAw
IChjb250YWlucyA4MTkxIGRpZmZlcmVudCB2YWx1ZXMpLiAKK1BBU1MgPCBbUmVjb25uZWN0IGdy
YXBoIHRvIEJpcXVhZCBiZWZvcmUgZW5kIG9mIHRhaWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6
IDIgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0F1ZGlvTm9kZS90YWlsLWNvbm5lY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb05vZGUvdGFpbC1jb25uZWN0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MGI4NmY3
ZGViYmMxZmQ4YWI3MzI4ZTJlMWNhOGU1ZGIwNDVhNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1jb25uZWN0aW9ucy5odG1sCkBAIC0wLDAg
KzEsMTMzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+
CisgICAgICBUZXN0IFJlY29ubmVjdGlvbiBvZiBUYWlsLVByb2Nlc3NpbmcgTm9kZXMKKyAgICA8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
CisgIDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVU
YXNrUnVubmVyKCk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAg
ICAgICB0ZXN0OiAnVGVzdCBDb21wcmVzc29yJywKKyAgICAgICAgICAgIGxhYmVsOiAnUmVjb25u
ZWN0IGdyYXBoIHRvIER5bmFtaWNzQ29tcHJlc3NvciBiZWZvcmUgZW5kIG9mIHRhaWwnCisgICAg
ICAgICAgfSwKKyAgICAgICAgICAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgICAgICAvLyBB
cmJpdHJhcnkgc2FtcGxlIHJhdGUKKyAgICAgICAgICAgIGNvbnN0IHNhbXBsZVJhdGUgPSAxNjAw
MDsKKworICAgICAgICAgICAgLy8gVGhlc2UgY29uc3RhbnRzIHRha2VuIGZyb20gZHlhbm1pY3Nf
Y29tcHJlc3Nfa2VybmVsLntjYyxofS4KKyAgICAgICAgICAgIGNvbnN0IHByZURlbGF5RnJhbWVz
ID0gMTAyNDsKKyAgICAgICAgICAgIGNvbnN0IG1ldGVyaW5nUmVsZWFzZVRpbWUgPSAwLjMyNTsK
KyAgICAgICAgICAgIGNvbnN0IHRhaWxUaW1lID0gNSAqIG1ldGVyaW5nUmVsZWFzZVRpbWU7Cisg
ICAgICAgICAgICBjb25zdCBsYXRlbmN5VGltZSA9IHByZURlbGF5RnJhbWVzIC8gc2FtcGxlUmF0
ZTsKKyAgICAgICAgICAgIGNvbnN0IHRhaWxQcm9jZXNzaW5nVGltZSA9IHRhaWxUaW1lICsgbGF0
ZW5jeVRpbWU7CisKKyAgICAgICAgICAgIC8vIFRoZSBEeW5hbWljc0NvbXByZXNzb3JOb2RlIGhh
cyBhIHRhaWwgKyBsYXRlbmN5IHRpbWUgb2YgYSBsaXR0bGUKKyAgICAgICAgICAgIC8vIG92ZXIg
MS42OCBzZWMsIHNvIG1ha2UgdGhlIGR1cmF0aW9uIGxvbmdlciB0aGFuIHRoYXQuCisgICAgICAg
ICAgICBjb25zdCByZW5kZXJEdXJhdGlvbiA9IDM7CisKKyAgICAgICAgICAgIGxldCBjb250ZXh0
ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoCisgICAgICAgICAgICAgICAgMSwgcmVuZGVyRHVy
YXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKworCisgICAgICAgICAgICBydW5UZXN0
KGNvbnRleHQsIHNob3VsZCwgeworICAgICAgICAgICAgICB0ZXN0Tm9kZU5hbWU6ICdEeW5hbWlj
c0NvbXByZXNzb3JOb2RlJywKKyAgICAgICAgICAgICAgbm9kZU9wdGlvbnM6IG51bGwsCisgICAg
ICAgICAgICAgIHN1c3BlbmRUaW1lOiAyLAorICAgICAgICAgICAgICB0YWlsUHJvY2Vzc2luZ1Rp
bWU6IHRhaWxQcm9jZXNzaW5nVGltZQorICAgICAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRv
bmUoKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7
CisgICAgICAgICAgICB0ZXN0OiAnVGVzdCBCaXF1YWQnLAorICAgICAgICAgICAgbGFiZWw6ICdS
ZWNvbm5lY3QgZ3JhcGggdG8gQmlxdWFkIGJlZm9yZSBlbmQgb2YgdGFpbCcKKyAgICAgICAgICB9
LAorICAgICAgICAgICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgICAgIGxldCByZW5kZXJE
dXJhdGlvbiA9IDE7CisgICAgICAgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDE2Mzg0OworCisgICAg
ICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KAorICAgICAgICAg
ICAgICAgIDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisKKyAg
ICAgICAgICAgIC8vIFRha2VuIGZyb20gQmlxdWFkRmlsdGVyL3RhaWwtdGltZS1sb3dwYXNzLmh0
bWwKKyAgICAgICAgICAgIGxldCBmaWx0ZXJPcHRpb25zID0geworICAgICAgICAgICAgICB0eXBl
OiAnbG93cGFzcycsCisgICAgICAgICAgICAgIFE6IDQwLAorICAgICAgICAgICAgICBmcmVxdWVu
Y3k6IHNhbXBsZVJhdGUgLyA0CisgICAgICAgICAgICB9OworICAgICAgICAgICAgbGV0IHRhaWxQ
cm9jZXNzaW5nVGltZSA9IDIwNzkuNCAvIGNvbnRleHQuc2FtcGxlUmF0ZTsKKworICAgICAgICAg
ICAgcnVuVGVzdChjb250ZXh0LCBzaG91bGQsIHsKKyAgICAgICAgICAgICAgdGVzdE5vZGVOYW1l
OiAnQmlxdWFkRmlsdGVyTm9kZScsCisgICAgICAgICAgICAgIG5vZGVPcHRpb25zOiBmaWx0ZXJP
cHRpb25zLAorICAgICAgICAgICAgICBzdXNwZW5kVGltZTogLjUsCisgICAgICAgICAgICAgIHRh
aWxQcm9jZXNzaW5nVGltZTogdGFpbFByb2Nlc3NpbmdUaW1lCisgICAgICAgICAgICB9KS50aGVu
KCgpID0+IHRhc2suZG9uZSgpKTsKKworICAgICAgICAgIH0pOworCisgICAgICAvLyBSdW4gYSB0
ZXN0IHVzaW5nIHRoZSBnaXZlbiB0ZXN0IG5vZGUgdGhhdCBoYXMgYSB0YWlsIHRpbWUuCisgICAg
ICAvLyB8b3B0aW9uc3wgaXMgYSBkaWN0aW9uYXJ5IHdpdGggdGhlIGZvbGxvd2luZyBtZW1iZXJz
OgorICAgICAgLy8gICB0ZXN0Tm9kZU5hbWU6ICBuYW1lIG9mIHRoZSBub2RlICh1c2VkIGFzIGEg
Y29uc3RydWN0b3IpCisgICAgICAvLyAgIG5vZGVPcHRpb3NuOiAgIGFueSBvcHRpb25zIG5lZWRl
ZCB0byBjcmVhdGUgdGhlIG5vZGUgd2l0aCB0aGUgcmlnaHQKKyAgICAgIC8vICAgICAgICAgICAg
ICAgICAgcHJvcGVydGllcy4KKyAgICAgIC8vICAgc3VzcGVuZFRpbWU6ICAgVGltZSBhdCB3aGlj
aCBvc2NpbGxhdG9yIHNob3VsZCBzdGFydC4KKyAgICAgIC8vICAgdGFpbFByb2Nlc3NpbmdUaW1l
OiAgTGVuZ3RoIG9mIHRoZSB0YWlsIG9mIHRoZSBub2RlLCBpbiBzZWMuCisgICAgICBmdW5jdGlv
biBydW5UZXN0KGNvbnRleHQsIHNob3VsZCwgb3B0aW9ucykgeworICAgICAgICAvLyBUaGlzIHRl
c3QgYmFzaWNhbGx5IHRha2VuIGZyb20gdGhlIHJlcHJvIGNhc2UgaW4gY3JidWcuY29tLzgyOTc2
NworICAgICAgICBsZXQgb3NjID0gbmV3IE9zY2lsbGF0b3JOb2RlKGNvbnRleHQpOworICAgICAg
ICBsZXQgZzAgPSBuZXcgR2Fpbk5vZGUoY29udGV4dCk7CisgICAgICAgIGxldCBnMSA9IG5ldyBH
YWluTm9kZShjb250ZXh0KTsKKyAgICAgICAgbGV0IGcyID0gbmV3IEdhaW5Ob2RlKGNvbnRleHQp
OworICAgICAgICBsZXQgZzMgPSBuZXcgR2Fpbk5vZGUoY29udGV4dCk7CisgICAgICAgIGxldCB0
ZXN0Tm9kZSA9CisgICAgICAgICAgICBuZXcgd2luZG93W29wdGlvbnMudGVzdE5vZGVOYW1lXShj
b250ZXh0LCBvcHRpb25zLm5vZGVPcHRpb25zKTsKKworICAgICAgICBvc2MuY29ubmVjdChnMCkK
KyAgICAgICAgICAgIC5jb25uZWN0KGcxKQorICAgICAgICAgICAgLmNvbm5lY3QodGVzdE5vZGUp
CisgICAgICAgICAgICAuY29ubmVjdChnMikKKyAgICAgICAgICAgIC5jb25uZWN0KGczKQorICAg
ICAgICAgICAgLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgLy8gRGlz
Y29ubmVjdCB0aGUgcmVzdCBvZiB0aGUgZ3JhcGggZnJvbSBnMC4gIFRoaXMgc2hvdWxkIHBsYWNl
IHRoZQorICAgICAgICAvLyB0ZXN0IG5vZGUgb24gdGhlIGludGVybmFsIHRhaWwgcHJvY2Vzc2lu
ZyBsaXN0LgorICAgICAgICBnMC5kaXNjb25uZWN0KCk7CisgICAgICAgIC8vIE5vdyByZWNvbm5l
Y3QgZzAgdG8gdGhlIGdyYXBoLi4gIFRoaXMgc2hvdWxkIHJlLWVuYWJsZSB0aGUgdGVzdCBub2Rl
CisgICAgICAgIC8vIG91dHB1dCBhbmQgcmVtb3ZlIGl0IGZyb20gdGhlIHRhaWwgbGlzdC4KKyAg
ICAgICAgZzAuY29ubmVjdChnMSk7CisKKyAgICAgICAgLy8gU3RhcnQgdGhlIHNvdXJjZSBhZnRl
ciB0aGUgdGFpbCB0aW1lIG9mIHRoZSB0ZXN0IG5vZGUuCisgICAgICAgIGNvbnRleHQuc3VzcGVu
ZChvcHRpb25zLnN1c3BlbmRUaW1lKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgICAvLyBTYW5pdHkgY2hlY2sgdGhhdCB3ZSBzdGFydCB0aGUgb3NjaWxsYXRvciBhZnRl
ciB0aGUgdGFpbAorICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nIHRpbWUuCisgICAgICAgICAg
ICAgIHNob3VsZChjb250ZXh0LmN1cnJlbnRUaW1lLCAnT3NjaWxsYXRvciBzdGFydCB0aW1lJykK
KyAgICAgICAgICAgICAgICAgIC5iZUdyZWF0ZXJUaGFuT3JFcXVhbFRvKG9wdGlvbnMudGFpbFBy
b2Nlc3NpbmdUaW1lKTsKKyAgICAgICAgICAgICAgb3NjLnN0YXJ0KCk7CisgICAgICAgICAgICB9
KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gY29udGV4dC5yZXN1bWUoKSk7CisKKyAgICAgICAg
cmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKHJlbmRlcmVkQnVmZmVyID0+IHsK
KyAgICAgICAgICAvLyBKdXN0IGNoZWNrIHRoYXQgdGhlIG91dHB1dCBpc24ndCBzaWxlbmNlLiAg
SWYgdGhpbmdzIGFyZSB3b3JraW5nCisgICAgICAgICAgLy8gYWZ0ZXIgcmVjb25uZWN0aW5nLCB0
aGVyZSBzaG91bGQgYmUgbm9uLXplcm8gb3V0cHV0LgorICAgICAgICAgIHNob3VsZCgKKyAgICAg
ICAgICAgICAgcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCksCisgICAgICAgICAgICAg
IGBPdXRwdXQgb2YgJHtvcHRpb25zLnRlc3ROb2RlTmFtZX1gKQorICAgICAgICAgICAgICAubm90
QmVDb25zdGFudFZhbHVlT2YoMCk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBhdWRp
dC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2RlL3RhaWwtcHJvY2Vzc2luZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1wcm9jZXNzaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YzlkODgwNWI0MDY4YjNlMjdjMWZlNjA4ZjMxNzhmNTljYzFl
MzBmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Ob2RlL3Rh
aWwtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitQQVNTICMgQVVE
SVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAid2F2ZXNoYXBlci10YWls
IiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFt3YXZlc2hhcGVyLXRhaWxdICAKK1BBU1Mg
ICBXYXZlU2hhcGVyIHRhaWwgZnJhbWUgKDI1NikgaXMgZ3JlYXRlciB0aGFuIDAuIAorUEFTUyAg
IFdhdmVTaGFwZXIgVGFpbCBvdXRwdXRbMDoyNTVdIGlzIGlkZW50aWNhbCB0byB0aGUgYXJyYXkg
W2V4cGVjdGVkIGFycmF5XS4gCitQQVNTICAgV2F2ZVNoYXBlciBvdXRwdXRbMDoxMjddIGlzIG5v
dCBjb25zdGFudGx5IDAgKGNvbnRhaW5zIDEyNyBkaWZmZXJlbnQgdmFsdWVzKS4gCitQQVNTICAg
V2F2ZVNoYXBlciBvdXRwdXRbMTI4OjI1NV0gaXMgbm90IGNvbnN0YW50bHkgMCAoY29udGFpbnMg
MTI4IGRpZmZlcmVudCB2YWx1ZXMpLiAKK1BBU1MgICBXYXZlU2hhcGVyIG91dHB1dFsyNTY6XSBj
b250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLiAKK1BBU1MgPCBbd2F2ZXNoYXBlci10YWlsXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1IGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElU
IFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1wcm9jZXNzaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb05vZGUvdGFpbC1wcm9jZXNzaW5nLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTFlNDdkYTA4YzM5ZjllMWNmYWUyZDNhZWJkMWJmY2QwZTkyNTlkYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvTm9kZS90YWlsLXByb2Nl
c3NpbmcuaHRtbApAQCAtMCwwICsxLDM4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
PGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBIYW5kbGluZyBvZiBUYWlsIFByb2Nlc3Np
bmcKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAg
PC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAg
ICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gRmFp
cmx5IGFyYml0cmFyeSBidXQgbXVzdCBiZSBhIHBvd2VyIG9mIHR3byB0byBlbGltaW5hdGUgcm91
bmRvZmYgd2hlbgorICAgICAgLy8gd2UgY29tcHV0ZSB0aW1lcyBmcm9tIHNhbXBsZSBmcmFtZXMK
KyAgICAgIGNvbnN0IHNhbXBsZVJhdGUgPSAzMjc2ODsKKworICAgICAgLy8gRmFpcmx5IGFyYml0
cmFyeSBkdXJhdGlvbgorICAgICAgY29uc3QgcmVuZGVyRHVyYXRpb24gPSAwLjI1OworICAgICAg
Y29uc3QgcmVuZGVyRnJhbWVzID0gcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlOworCisgICAg
ICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAnZ3JhaW4nLCBkZXNjcmlwdGlvbjog
J0FCU04gZ3JhaW4gaGFzIHRoZSBjb3JyZWN0IGR1cmF0aW9uJ30sCisgICAgICAgICAgKHRhc2ss
IHNob3VsZCkgPT4geworICAgICAgICAgICAgLy8gVGVzdCB0aGF0IHRoZSBncmFpbiBkdXJhdGlv
biBpcyB0aGUgcmVxdWVzdGVkIGR1cmF0aW9uLgorICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBu
ZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKyAgICAg
ICAgICAgIGxldCBtZXJnZXIgPSBuZXcgQ2hhbm5lbE1lcmdlck5vZGUoCisgICAgICAgICAgICAg
ICAgY29udGV4dCwge251bWJlck9mSW5wdXRzOiBjb250ZXh0LmRlc3RpbmF0aW9uLmNoYW5uZWxD
b3VudH0pOworICAgICAgICAgICAgbWVyZ2VyLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7
CisKKyAgICAgICAgICAgIC8vIE51bWJlciBvZiBmcmFtZXMgZm9yIHRoZSBncmFpbiB3ZSB3YW50
IHRvIHBsYXkuIChQcmV0dHkgbXVjaAorICAgICAgICAgICAgLy8gYXJiaXRyYXJ5LikKKyAgICAg
ICAgICAgIGxldCBncmFpbkZyYW1lcyA9IDEyODsKKworICAgICAgICAgICAgLy8gVGVzdCBzaWdu
YWwuICBKdXN0IGZpbGwgdGhlIGJ1ZmZlciB3aXRoIGFsbCBvbmVzLgorICAgICAgICAgICAgbGV0
IGJUZXN0ID0gbmV3IEF1ZGlvQnVmZmVyKAorICAgICAgICAgICAgICAgIHtsZW5ndGg6IGNvbnRl
eHQubGVuZ3RoLCBzYW1wbGVSYXRlOiBjb250ZXh0LnNhbXBsZVJhdGV9KTsKKyAgICAgICAgICAg
IGJUZXN0LmdldENoYW5uZWxEYXRhKDApLmZpbGwoMSk7CisgICAgICAgICAgICBsZXQgc1Rlc3Qg
PSBuZXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlKGNvbnRleHQsIHtidWZmZXI6IGJUZXN0fSk7CisK
KyAgICAgICAgICAgIC8vIFJlZmVyZW5jZSBzaWduYWwuIAorICAgICAgICAgICAgbGV0IGJSZWYg
PSBuZXcgQXVkaW9CdWZmZXIoCisgICAgICAgICAgICAgICAge2xlbmd0aDogY29udGV4dC5sZW5n
dGgsIHNhbXBsZVJhdGU6IGNvbnRleHQuc2FtcGxlUmF0ZX0pOworICAgICAgICAgICAgYlJlZi5n
ZXRDaGFubmVsRGF0YSgwKS5maWxsKDEsIDAsIGdyYWluRnJhbWVzKTsKKyAgICAgICAgICAgIGxl
dCBzUmVmID0gbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250ZXh0LCB7YnVmZmVyOiBiUmVm
fSk7CisKKyAgICAgICAgICAgIHNUZXN0LmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAgICAg
ICAgIHNSZWYuY29ubmVjdChtZXJnZXIsIDAsIDEpOworCisgICAgICAgICAgICBzVGVzdC5zdGFy
dCgwLCAwLCBncmFpbkZyYW1lcyAvIGNvbnRleHQuc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBz
UmVmLnN0YXJ0KCk7CisKKyAgICAgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAg
ICAgICAgICAgICAgIC50aGVuKHJlbmRlcmVkQnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgICAg
IGxldCBhY3R1YWwgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAg
ICAgICAgICAgIGxldCBleHBlY3RlZCA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDEp
OworCisgICAgICAgICAgICAgICAgICAvLyBUaGUgYWN0dWFsIGFuZCBleHBlY3RlZCBzaG91bGQg
YmUgdGhlIHNhbWUgYmVjYXVzZSB3ZSBnb3QKKyAgICAgICAgICAgICAgICAgIC8vIHJpZCBvZiB0
aGUgZ3JhaW4gaGFjayB0aGF0IGNhdXNlZCBhIGdyYWluIHRvIHBsYXkgZm9yIGFuCisgICAgICAg
ICAgICAgICAgICAvLyBleHRyYSA1MTIgZnJhbWVzLgorICAgICAgICAgICAgICAgICAgc2hvdWxk
KGFjdHVhbCwgJ1JlbmRlcmVkIEFCU04gZ3JhaW4nKQorICAgICAgICAgICAgICAgICAgICAgIC5i
ZUVxdWFsVG9BcnJheShleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAg
ICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1
ZGl0LmRlZmluZSgnaHJ0Zi1wYW5uZXItdGFpbCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgcnVuVGVzdCgnUGFubmVyTm9kZScsIHtwYW5uaW5nTW9kZWw6ICdIUlRGJywgZGlzdGFuY2VN
b2RlOiAnbGluZWFyJ30pCisgICAgICAgICAgICAudGhlbihyZW5kZXJlZEJ1ZmZlciA9PiB7Cisg
ICAgICAgICAgICAgIGxldCBwcmVmaXggPSAnSFJURiBQYW5uZXJOb2RlJzsKKyAgICAgICAgICAg
ICAgbGV0IG91dHB1dCA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAg
ICAgICAgICBsZXQgcmVzcG9uc2UgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsK
KyAgICAgICAgICAgICAgbGV0IGxhdGVuY3lGcmFtZSA9IGZpbmRMYXRlbmN5RnJhbWUocmVzcG9u
c2UpOworICAgICAgICAgICAgICBsZXQgdGFpbEZyYW1lID0gZmluZFRhaWxGcmFtZShyZXNwb25z
ZSk7CisKKyAgICAgICAgICAgICAgLy8gVGhlIEhSVEYgcGFubmVyIGhhcyBib3RoIGEgbGF0ZW5j
eSBjb21wb25lbnQgYW5kIGEgdGFpbAorICAgICAgICAgICAgICAvLyBjb21wb25lbnQuICBNYWtl
IHN1cmUgYm90aCBhcmUgbm9uLXplcm8uCisgICAgICAgICAgICAgIHNob3VsZChsYXRlbmN5RnJh
bWUsIGAke3ByZWZpeH0gbGF0ZW5jeSBmcmFtZSAoJHtsYXRlbmN5RnJhbWV9KWApCisgICAgICAg
ICAgICAgICAgICAuYmVHcmVhdGVyVGhhbigwKTsKKworICAgICAgICAgICAgICBzaG91bGQodGFp
bEZyYW1lLCBgJHtwcmVmaXh9IHRhaWwgZnJhbWUgKCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAg
ICAgICAgICAgLmJlR3JlYXRlclRoYW4oMCk7CisKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSBv
ZiB0aGUgbGF0ZW5jeSwgdGhlIG91dHB1dCBpcyB6ZXJvIGF0IHRoZSBiZWdpbm5pbmcuCisgICAg
ICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGlzIGlzIHRydWUuCisgICAgICAgICAgICAgIHNob3Vs
ZCgKKyAgICAgICAgICAgICAgICAgIG91dHB1dC5zbGljZSgwLCBsYXRlbmN5RnJhbWUpLAorICAg
ICAgICAgICAgICAgICAgYCR7cHJlZml4fSBMYXRlbmN5IG91dHB1dFswOmAgKyAobGF0ZW5jeUZy
YW1lIC0gMSkgKyAnXScpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMCk7
CisKKyAgICAgICAgICAgICAgLy8gVmVyaWZ5IHRoZSByZXN0IG9mIHRoZSBvdXRwdXQgbWF0Y2hl
cyB0aGUgZXhwZWN0ZWQgdmFsdWVzLiAgVGhlCisgICAgICAgICAgICAgIC8vIG91dHB1dCBzaG91
bGQgYmUgbm9uLXplcm8gZnJvbSBsYXRlbmN5RnJhbWUgdG8gdGFpbEZyYW1lIGFuZAorICAgICAg
ICAgICAgICAvLyB6ZXJvIGFmdGVyIHRhaWxGcmFtZS4KKyAgICAgICAgICAgICAgdmVyaWZ5T3V0
cHV0KHNob3VsZCwgb3V0cHV0LCB7CisgICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCisg
ICAgICAgICAgICAgICAgc3RhcnRGcmFtZTogbGF0ZW5jeUZyYW1lLAorICAgICAgICAgICAgICAg
IG5vblplcm9FbmRGcmFtZTogTWF0aC5taW4odGFpbEZyYW1lLCBvdXRwdXQubGVuZ3RoKSwKKyAg
ICAgICAgICAgICAgICB6ZXJvU3RhcnRGcmFtZTogcm91bmRVcCh0YWlsRnJhbWUpLAorICAgICAg
ICAgICAgICAgIHRhaWxGcmFtZTogdGFpbEZyYW1lLAorICAgICAgICAgICAgICAgIHJlZmVyZW5j
ZTogcmVzcG9uc2UKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KQorICAgICAgICAg
ICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgnYmlxdWFkLXRhaWwnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3Qo
J0JpcXVhZEZpbHRlck5vZGUnLCB7UTogMjAsIGZyZXF1ZW5jeTogMTAwfSkKKyAgICAgICAgICAg
IC50aGVuKHJlbmRlcmVkQnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IHByZWZpeCA9ICdC
aXF1YWRGaWx0ZXInCisgICAgICAgICAgICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgICAgIGxldCB0YWlsRnJhbWUgPSBm
aW5kVGFpbEZyYW1lKHJlc3BvbnNlKTsKKworICAgICAgICAgICAgICBzaG91bGQodGFpbEZyYW1l
LCBgJHtwcmVmaXh9IHRhaWwgZnJhbWUgKCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAgICAgICAg
ICAgLmJlR3JlYXRlclRoYW4oMCk7CisKKyAgICAgICAgICAgICAgLy8gVmVyaWZ5IGJpcXVhZCBv
dXRwdXQgd2hpY2ggc2hvdWxkIGJlIG5vbi16ZXJvIHVwIHRvIHRhaWxGcmFtZQorICAgICAgICAg
ICAgICAvLyBhbmQgemVybyBhZnRlcndhcmRzLiAgSG93ZXZlciwgdGhlIGFjdHVhbCBvdXRwdXQg
aXNuJ3QgYWZ0ZXIKKyAgICAgICAgICAgICAgLy8gdGFpbEZyYW1lIGJlY2F1c2UgdGhlIGludGVy
bmFsIGJpcXVhZCB0YWlsIHRpbWUgdXNlcyBhbgorICAgICAgICAgICAgICAvLyBhcHByb3hpbWF0
aW9uLiAgVGhhdCdzIHdoeSB6ZXJvU3RhcnRGcmFtZSBpcyBvbmUgcmVuZGVyIHF1YW50dW0KKyAg
ICAgICAgICAgICAgLy8gYWZ0ZXIgdGFpbEZyYW1lLgorICAgICAgICAgICAgICB2ZXJpZnlPdXRw
dXQoc2hvdWxkLCBvdXRwdXQsIHsKKyAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCwKKyAg
ICAgICAgICAgICAgICBzdGFydEZyYW1lOiAwLAorICAgICAgICAgICAgICAgIG5vblplcm9FbmRG
cmFtZToKKyAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4odGFpbEZyYW1lICsgUkVOREVSX1FV
QU5UVU1fRlJBTUVTLCBvdXRwdXQubGVuZ3RoKSwKKyAgICAgICAgICAgICAgICB6ZXJvU3RhcnRG
cmFtZTogUkVOREVSX1FVQU5UVU1fRlJBTUVTICsgcm91bmRVcCh0YWlsRnJhbWUpLAorICAgICAg
ICAgICAgICAgIHRhaWxGcmFtZTogdGFpbEZyYW1lLAorICAgICAgICAgICAgICAgIHJlZmVyZW5j
ZTogcmVzcG9uc2UKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KQorICAgICAgICAg
ICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRl
ZmluZSgnaWlyLXRhaWwnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3QoJ0lJ
UkZpbHRlck5vZGUnLCB7ZmVlZGZvcndhcmQ6IFsxXSwgZmVlZGJhY2s6IFsxLCAtLjk5XX0pCisg
ICAgICAgICAgICAudGhlbihyZW5kZXJlZEJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBw
cmVmaXggPSAnSUlSRmlsdGVyJzsKKyAgICAgICAgICAgICAgbGV0IG91dHB1dCA9IHJlbmRlcmVk
QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBy
ZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsKKyAgICAgICAgICAgICAgbGV0IHRhaWxG
cmFtZSA9IGZpbmRUYWlsRnJhbWUocmVzcG9uc2UpOworCisgICAgICAgICAgICAgIHNob3VsZCh0
YWlsRnJhbWUsIGAke3ByZWZpeH0gdGFpbCBmcmFtZSAoJHt0YWlsRnJhbWV9KWApCisgICAgICAg
ICAgICAgICAgICAuYmVHcmVhdGVyVGhhbigwKTsKKworICAgICAgICAgICAgICB2ZXJpZnlPdXRw
dXQoc2hvdWxkLCBvdXRwdXQsIHsKKyAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCwKKyAg
ICAgICAgICAgICAgICBzdGFydEZyYW1lOiAwLAorICAgICAgICAgICAgICAgIG5vblplcm9FbmRG
cmFtZToKKyAgICAgICAgICAgICAgICAgICAgTWF0aC5taW4odGFpbEZyYW1lICsgUkVOREVSX1FV
QU5UVU1fRlJBTUVTLCBvdXRwdXQubGVuZ3RoKSwKKyAgICAgICAgICAgICAgICB6ZXJvU3RhcnRG
cmFtZTogMiAqIFJFTkRFUl9RVUFOVFVNX0ZSQU1FUyArIHJvdW5kVXAodGFpbEZyYW1lKSwKKyAg
ICAgICAgICAgICAgICB0YWlsRnJhbWU6IHRhaWxGcmFtZSwKKyAgICAgICAgICAgICAgICByZWZl
cmVuY2U6IHJlc3BvbnNlCisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRp
dC5kZWZpbmUoJ2RlbGF5LXRhaWwnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIEZv
ciB0aGUgdGVzdCwgbWFrZSBzdXJlIHRoZSBkZWxheSBpcyBncmVhdGVyIHRoYW4gb25lIHJlbmRl
cgorICAgICAgICAvLyBxdWFudHVtLiAgSWYgaXQncyBsZXNzIHdlIHdvbid0IGJlIGFibGUgdG8g
dGVsbCBpZiB0YWlsIHByb2Nlc3NpbmcKKyAgICAgICAgLy8gd29ya2VkIGJlY2F1c2UgdGhlIGlu
cHV0IHNpZ25hbCBpcyBhbiBpbXB1bHNlLgorICAgICAgICBsZXQgZGVsYXlGcmFtZXMgPSBSRU5E
RVJfUVVBTlRVTV9GUkFNRVMgKyA2NDsKKyAgICAgICAgcnVuVGVzdCgnRGVsYXlOb2RlJywge2Rl
bGF5VGltZTogZGVsYXlGcmFtZXMgLyBzYW1wbGVSYXRlfSkKKyAgICAgICAgICAgIC50aGVuKHJl
bmRlcmVkQnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IHByZWZpeCA9ICdEZWxheSc7Cisg
ICAgICAgICAgICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgw
KTsKKyAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5l
bERhdGEoMSk7CisgICAgICAgICAgICAgIGxldCB0YWlsRnJhbWUgPSBmaW5kVGFpbEZyYW1lKHJl
c3BvbnNlKTsKKworICAgICAgICAgICAgICBzaG91bGQodGFpbEZyYW1lLCBgJHtwcmVmaXh9IHRh
aWwgZnJhbWUgKCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAgICAgICAgICAgLmJlR3JlYXRlclRo
YW4oMCk7CisKKyAgICAgICAgICAgICAgLy8gQXMgYSBkZWxheSBub2RlIHdpdGggZGVsYXkgdGlt
ZSBncmVhdGVyIHRoYW4gb25lIHJlbmRlcgorICAgICAgICAgICAgICAvLyBxdWFudHVtLCB0aGUg
Zmlyc3QgcmVuZGVyIHF1YW50dW0gbXVzdCBiZSAwLgorICAgICAgICAgICAgICBzaG91bGQoCisg
ICAgICAgICAgICAgICAgICBvdXRwdXQuc2xpY2UoMCwgUkVOREVSX1FVQU5UVU1fRlJBTUVTKSwK
KyAgICAgICAgICAgICAgICAgIGAke3ByZWZpeH0gb3V0cHV0WzA6YCArIChSRU5ERVJfUVVBTlRV
TV9GUkFNRVMgLSAxKSArICddJykKKyAgICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVP
ZigwKTsKKworICAgICAgICAgICAgICAvLyBUaGUgb3V0cHV0IG9mIHRoZSBkZWxheSBub2RlIHNo
b3VsZCBiZSBub256ZXJvIGluIHRoZSBzZWNvbmQKKyAgICAgICAgICAgICAgLy8gcmVuZGVyIHF1
YW50dW0gYW5kIHplcm8gZm9yZXZlciBhZnRlci4KKyAgICAgICAgICAgICAgdmVyaWZ5T3V0cHV0
KHNob3VsZCwgb3V0cHV0LCB7CisgICAgICAgICAgICAgICAgcHJlZml4OiBwcmVmaXgsCisgICAg
ICAgICAgICAgICAgc3RhcnRGcmFtZTogUkVOREVSX1FVQU5UVU1fRlJBTUVTLAorICAgICAgICAg
ICAgICAgIG5vblplcm9FbmRGcmFtZTogTWF0aC5taW4odGFpbEZyYW1lLCBvdXRwdXQubGVuZ3Ro
KSwKKyAgICAgICAgICAgICAgICB6ZXJvU3RhcnRGcmFtZTogcm91bmRVcCh0YWlsRnJhbWUpLAor
ICAgICAgICAgICAgICAgIHRhaWxGcmFtZTogdGFpbEZyYW1lLAorICAgICAgICAgICAgICAgIHJl
ZmVyZW5jZTogcmVzcG9uc2UKKyAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIH0pCisg
ICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAg
YXVkaXQuZGVmaW5lKCdjb252b2x2ZXItdGFpbCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgLy8gVGhlIGNvbnZvbHZlciByZXNwb25zZS4gIEl0IG5lZWRzIHRvIGJlIGxvbmdlciB0aGFu
IG9uZSByZW5kZXIKKyAgICAgICAgLy8gcXVhbnR1bSB0byBzaG93IHRoZSB0YWlsIHByb2Nlc3Np
bmcuCisgICAgICAgIGxldCByZXNwb25zZSA9IG5ldyBBdWRpb0J1ZmZlcigKKyAgICAgICAgICAg
IHtsZW5ndGg6IFJFTkRFUl9RVUFOVFVNX0ZSQU1FUyArIDY0LCBzYW1wbGVSYXRlOiBzYW1wbGVS
YXRlfSk7CisgICAgICAgIC8vIEZvciBzaW1wbGljaXR5LCBqdXN0IG1ha2UgdGhlIHJlc3BvbnNl
IGFsbCBvbmVzLgorICAgICAgICByZXNwb25zZS5nZXRDaGFubmVsRGF0YSgwKS5maWxsKDEpOwor
CisgICAgICAgIHJ1blRlc3QoJ0NvbnZvbHZlck5vZGUnLCB7ZGlzYWJsZU5vcm1hbGl6YXRpb246
IHRydWUsIGJ1ZmZlcjogcmVzcG9uc2V9KQorICAgICAgICAgICAgLnRoZW4ocmVuZGVyZWRCdWZm
ZXIgPT4geworICAgICAgICAgICAgICBsZXQgcHJlZml4ID0gJ0NvbnZvbHZlcic7CisgICAgICAg
ICAgICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAg
ICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEo
MSk7CisgICAgICAgICAgICAgIGxldCB0YWlsRnJhbWUgPSBmaW5kVGFpbEZyYW1lKHJlc3BvbnNl
KTsKKworICAgICAgICAgICAgICBzaG91bGQodGFpbEZyYW1lLCBgJHtwcmVmaXh9IHRhaWwgZnJh
bWUgKCR7dGFpbEZyYW1lfSlgKQorICAgICAgICAgICAgICAgICAgLmJlR3JlYXRlclRoYW4oMCk7
CisKKyAgICAgICAgICAgICAgdmVyaWZ5T3V0cHV0KHNob3VsZCwgb3V0cHV0LCB7CisgICAgICAg
ICAgICAgICAgcHJlZml4OiBwcmVmaXgsCisgICAgICAgICAgICAgICAgc3RhcnRGcmFtZTogMCwK
KyAgICAgICAgICAgICAgICBub25aZXJvRW5kRnJhbWU6CisgICAgICAgICAgICAgICAgICAgIE1h
dGgubWluKHRhaWxGcmFtZSArIFJFTkRFUl9RVUFOVFVNX0ZSQU1FUywgb3V0cHV0Lmxlbmd0aCks
CisgICAgICAgICAgICAgICAgemVyb1N0YXJ0RnJhbWU6IFJFTkRFUl9RVUFOVFVNX0ZSQU1FUyAr
IHJvdW5kVXAodGFpbEZyYW1lKSwKKyAgICAgICAgICAgICAgICB0YWlsRnJhbWU6IHRhaWxGcmFt
ZSwKKyAgICAgICAgICAgICAgICByZWZlcmVuY2U6IHJlc3BvbnNlCisgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsK
KyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2R5bmFtaWNzLWNvbXByZXNzb3ItdGFp
bCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgcnVuVGVzdCgnRHluYW1pY3NDb21wcmVz
c29yTm9kZScsIHt9KQorICAgICAgICAgICAgLnRoZW4ocmVuZGVyZWRCdWZmZXIgPT4geworICAg
ICAgICAgICAgICBsZXQgcHJlZml4ID0gJ0R5YW1pY3NDb21wcmVzc29yJzsKKyAgICAgICAgICAg
ICAgbGV0IG91dHB1dCA9IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAg
ICAgICAgICBsZXQgcmVzcG9uc2UgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsK
KyAgICAgICAgICAgICAgbGV0IHRhaWxGcmFtZSA9IGZpbmRUYWlsRnJhbWUocmVzcG9uc2UpOwor
CisgICAgICAgICAgICAgIHNob3VsZCh0YWlsRnJhbWUsIGAke3ByZWZpeH0gdGFpbCBmcmFtZSAo
JHt0YWlsRnJhbWV9KWApCisgICAgICAgICAgICAgICAgICAuYmVHcmVhdGVyVGhhbigwKTsKKwor
ICAgICAgICAgICAgICBsZXQgbGF0ZW5jeUZyYW1lID0gcm91bmREb3duKHRhaWxGcmFtZSAtIDEp
OworICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBvdXRwdXQuc2xpY2Uo
MCwgbGF0ZW5jeUZyYW1lKSwKKyAgICAgICAgICAgICAgICAgIGAke3ByZWZpeH0gb3V0cHV0WzA6
YCArIChsYXRlbmN5RnJhbWUgLSAxKSArICddJykKKyAgICAgICAgICAgICAgICAgIC5iZUNvbnN0
YW50VmFsdWVPZigwKTsKKworICAgICAgICAgICAgICB2ZXJpZnlPdXRwdXQoc2hvdWxkLCBvdXRw
dXQsIHsKKyAgICAgICAgICAgICAgICBwcmVmaXg6IHByZWZpeCwKKyAgICAgICAgICAgICAgICBz
dGFydEZyYW1lOiBsYXRlbmN5RnJhbWUsCisgICAgICAgICAgICAgICAgbm9uWmVyb0VuZEZyYW1l
OiBNYXRoLm1pbih0YWlsRnJhbWUsIG91dHB1dC5sZW5ndGgpLAorICAgICAgICAgICAgICAgIHpl
cm9TdGFydEZyYW1lOiByb3VuZFVwKHRhaWxGcmFtZSksCisgICAgICAgICAgICAgICAgdGFpbEZy
YW1lOiB0YWlsRnJhbWUsCisgICAgICAgICAgICAgICAgcmVmZXJlbmNlOiByZXNwb25zZQorICAg
ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+
IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3dhdmVzaGFw
ZXItdGFpbCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gRmFpcmx5IGFyYml0cmFy
eSBjdXJ2ZSBmb3IgdGhlIFdhdmVTaGFwZXIKKyAgICAgICAgbGV0IGN1cnZlID0gRmxvYXQzMkFy
cmF5LmZyb20oWy0xLCAtLjUsIDAsIDAuNSwgMV0pOworCisgICAgICAgIHJ1blRlc3QoJ1dhdmVT
aGFwZXJOb2RlJywge2N1cnZlOiBjdXJ2ZSwgb3ZlcnNhbXBsZTogJzJ4J30pCisgICAgICAgICAg
ICAudGhlbihyZW5kZXJlZEJ1ZmZlciA9PiB7CisgICAgICAgICAgICAgIGxldCBwcmVmaXggPSAn
V2F2ZVNoYXBlcic7CisgICAgICAgICAgICAgIGxldCBvdXRwdXQgPSByZW5kZXJlZEJ1ZmZlci5n
ZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlID0gcmVuZGVyZWRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisgICAgICAgICAgICAgIC8vIEZGVCByZXNhbXBsZXIg
aW50cm9kdWNlcyBzb21lIHZlcnkgc21hbGwgcm91bmQtb2ZmLiAgVXNlIGEKKyAgICAgICAgICAg
ICAgLy8gdGhyZXNob2xkIG9mIHplcm8gdG8gZmluZCB0aGUgdGFpbCBmcmFtZS4KKyAgICAgICAg
ICAgICAgbGV0IHRhaWxGcmFtZSA9IGZpbmRUYWlsRnJhbWUocmVzcG9uc2UsIDApOworCisgICAg
ICAgICAgICAgIHNob3VsZCh0YWlsRnJhbWUsIGAke3ByZWZpeH0gdGFpbCBmcmFtZSAoJHt0YWls
RnJhbWV9KWApCisgICAgICAgICAgICAgICAgICAuYmVHcmVhdGVyVGhhbigwKTsKKworICAgICAg
ICAgICAgICB2ZXJpZnlPdXRwdXQoc2hvdWxkLCBvdXRwdXQsIHsKKyAgICAgICAgICAgICAgICBw
cmVmaXg6IHByZWZpeCwKKyAgICAgICAgICAgICAgICBzdGFydEZyYW1lOiAwLAorICAgICAgICAg
ICAgICAgIG5vblplcm9FbmRGcmFtZTogTWF0aC5taW4odGFpbEZyYW1lLCBvdXRwdXQubGVuZ3Ro
KSwKKyAgICAgICAgICAgICAgICB6ZXJvU3RhcnRGcmFtZTogcm91bmRVcCh0YWlsRnJhbWUpLAor
ICAgICAgICAgICAgICAgIHRhaWxGcmFtZTogdGFpbEZyYW1lLAorICAgICAgICAgICAgICAgIHJl
ZmVyZW5jZTogcmVzcG9uc2UKKyAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1
ZGl0LnJ1bignd2F2ZXNoYXBlci10YWlsJyk7CisKKyAgICAgIGZ1bmN0aW9uIHJ1blRlc3Qobm9k
ZU5hbWUsIG5vZGVPcHRpb25zKSB7CisgICAgICAgIC8vIFR3by1jaGFubmVsIG91dHB1dC4gIENo
YW5uZWwgMCBpcyB0aGUgdGVzdCByZXN1bHQ7IGNoYW5uZWwgMSBpcyB0aGUKKyAgICAgICAgLy8g
aW1wdWxzZSByZXNwb25zZSB0aGF0IGlzIHVzZWQgdG8gZmlndXJlIG91dCB3aGVuIHRoZSB0YWls
IHNob3VsZAorICAgICAgICAvLyBzdGFydC4KKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKworICAgICAgICAv
LyBNZXJnZSBjaGFubmVscyBmb3IgdGhlIGRlc3RpbmF0aW9uLgorICAgICAgICBsZXQgbWVyZ2Vy
ID0gbmV3IENoYW5uZWxNZXJnZXJOb2RlKGNvbnRleHQsIHtudW1iZXJPZklucHV0czogMn0pOwor
ICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBs
ZXQgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0LCB7b2Zmc2V0OiAxfSk7CisK
KyAgICAgICAgLy8gSW1wdWxzZSBmb3IgdGVzdGluZy4gIFdlIHdhbnQgYSBmdWxsIGJ1ZmZlciBz
byBhcyBub3QgdG8gd29ycnkgYWJvdXQKKyAgICAgICAgLy8gdGhlIHNvdXJjZSBkaXNjb25uZWN0
aW5nIHByZW1hdHVyZWx5IGZyb20gdGhlIGZpbHRlci4KKyAgICAgICAgbGV0IGIgPSBuZXcgQXVk
aW9CdWZmZXIoCisgICAgICAgICAgICB7bGVuZ3RoOiBjb250ZXh0Lmxlbmd0aCwgc2FtcGxlUmF0
ZTogY29udGV4dC5zYW1wbGVSYXRlfSk7CisgICAgICAgIGIuZ2V0Q2hhbm5lbERhdGEoMClbMF0g
PSAxOworICAgICAgICBsZXQgaW1wdWxzZSA9IG5ldyBBdWRpb0J1ZmZlclNvdXJjZU5vZGUoY29u
dGV4dCwge2J1ZmZlcjogYn0pOworCisgICAgICAgIGxldCB0ZXN0Tm9kZSA9IG5ldyB3aW5kb3db
bm9kZU5hbWVdKGNvbnRleHQsIG5vZGVPcHRpb25zKTsKKyAgICAgICAgbGV0IHJlZk5vZGUgPSBu
ZXcgd2luZG93W25vZGVOYW1lXShjb250ZXh0LCBub2RlT3B0aW9ucyk7CisKKyAgICAgICAgc3Jj
LmNvbm5lY3QodGVzdE5vZGUpLmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAgICAgaW1wdWxz
ZS5jb25uZWN0KHJlZk5vZGUpLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKKworICAgICAgICBzcmMu
c3RhcnQoKTsKKyAgICAgICAgc3JjLnN0b3AoMSAvIGNvbnRleHQuc2FtcGxlUmF0ZSk7CisgICAg
ICAgIGltcHVsc2Uuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRl
cmluZygpOworICAgICAgfQorCisgICAgICAvLyBTdGFydGluZyBmcm9tIHRoZSBlbmQgZmluZCB0
aGUgZmlyc3QgZnJhbWUgdGhhdCBleGNlZWRzIG91ciB0aHJlc2hvbGQuCisgICAgICAvLyBUaGlz
IGFzc3VtZXMgdGhhdCBldmVyeXRoaW5nIGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkIGlzIGVxdWl2
YWxlbnQgdG8gMAorICAgICAgLy8gZm9yIG91ciBwdXJwb3Nlcy4KKyAgICAgIGZ1bmN0aW9uIGZp
bmRUYWlsRnJhbWUocmVzcG9uc2UsIHplcm9UaHJlc2hvbGQpIHsKKyAgICAgICAgLy8gQW55IHZh
bHVlIGJlbG93IHRoaXMgaXMgY29uc2lkZXJlZCB0byBiZSB6ZXJvIGZvciBvdXIgcHVycG9zZSBv
ZgorICAgICAgICAvLyBmaW5kaW5nIHRoZSBmaXJzdCBub24temVybyB2YWx1ZS4gIFNvbWV3aGF0
IGFyYml0cmFyeSwgYnV0IHRoZSB2YWx1ZQorICAgICAgICAvLyBoZXJlIGlzIHRoZSBzaXplIG9m
IHRoZSBMU0Igb2YgYSAxNi1iaXQgUENNIHNhbXBsZS4KKyAgICAgICAgbGV0IHRocmVzaG9sZCA9
IHplcm9UaHJlc2hvbGQgPT09IHVuZGVmaW5lZCA/IDEgLyAzMjc2OCA6IHplcm9UaHJlc2hvbGQ7
CisgICAgICAgIGxldCB0YWlsRnJhbWUgPSByZXNwb25zZS5sZW5ndGg7CisKKyAgICAgICAgZm9y
IChsZXQgayA9IHJlc3BvbnNlLmxlbmd0aCAtIDE7IGsgPj0gMDsgLS1rKSB7CisgICAgICAgICAg
aWYgKE1hdGguYWJzKHJlc3BvbnNlW2tdKSA+IHRocmVzaG9sZCkgeworICAgICAgICAgICAgdGFp
bEZyYW1lID0gayArIDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICByZXR1cm4gdGFpbEZyYW1lOworICAgICAgfQorCisgICAgICBmdW5jdGlv
biBmaW5kTGF0ZW5jeUZyYW1lKHJlc3BvbnNlKSB7CisgICAgICAgIGZvciAobGV0IGsgPSAwOyBr
IDwgcmVzcG9uc2UubGVuZ3RoOyArK2spIHsKKyAgICAgICAgICBpZiAocmVzcG9uc2Vba10gIT0g
MCkKKyAgICAgICAgICAgIHJldHVybiBrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJl
c3BvbnNlLmxlbmd0aDsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gdmVyaWZ5T3V0cHV0KHNo
b3VsZCwgb3V0cHV0LCBvcHRpb25zKSB7CisgICAgICAgIGxldCBwcmVmaXggPSBvcHRpb25zLnBy
ZWZpeCB8fCAnJzsKKyAgICAgICAgaWYgKG9wdGlvbnMudGFpbEZyYW1lICYmIG9wdGlvbnMucmVm
ZXJlbmNlKSB7CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBvdXRwdXQuc2xpY2Uo
MCwgb3B0aW9ucy50YWlsRnJhbWUpLAorICAgICAgICAgICAgICBgJHtwcmVmaXh9IFRhaWwgb3V0
cHV0WzA6YCArIChvcHRpb25zLnRhaWxGcmFtZSAtIDEpICsgJ10nKQorICAgICAgICAgICAgICAu
YmVFcXVhbFRvQXJyYXkob3B0aW9ucy5yZWZlcmVuY2Uuc2xpY2UoMCwgb3B0aW9ucy50YWlsRnJh
bWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IHxvdXRwdXR8IGlzIG5v
bi16ZXJvIGJldHdlZW4gfHN0YXJ0RnJhbWV8IGFuZAorICAgICAgICAvLyB8bm9uWmVyb0VuZEZy
YW1lfC4KKyAgICAgICAgZm9yIChsZXQgayA9IG9wdGlvbnMuc3RhcnRGcmFtZTsgayA8IG9wdGlv
bnMubm9uWmVyb0VuZEZyYW1lOworICAgICAgICAgICAgIGsgKz0gUkVOREVSX1FVQU5UVU1fRlJB
TUVTKSB7CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBvdXRwdXQuc2xpY2Uoaywg
ayArIFJFTkRFUl9RVUFOVFVNX0ZSQU1FUyksCisgICAgICAgICAgICAgIGAke3ByZWZpeH0gb3V0
cHV0W2AgKyBrICsgJzonICsgKGsgKyAxMjcpICsgJ10nKQorICAgICAgICAgICAgICAubm90QmVD
b25zdGFudFZhbHVlT2YoMCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBWZXJpZnkgfG91dHB1
dHwgaXMgemVybyBzdGFydGluZyBhdCBmcmFtZSB8emVyb1N0YXJ0RnJhbWV8LCBpbmNsdXNpdmUK
KyAgICAgICAgaWYgKG9wdGlvbnMuemVyb1N0YXJ0RnJhbWUgPCBvdXRwdXQubGVuZ3RoKSB7Cisg
ICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICBvdXRwdXQuc2xpY2Uob3B0aW9ucy56ZXJv
U3RhcnRGcmFtZSksCisgICAgICAgICAgICAgIGAke3ByZWZpeH0gb3V0cHV0W2AgKyBvcHRpb25z
Lnplcm9TdGFydEZyYW1lICsgJzpdJykKKyAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9m
KDApOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIHJvdW5kRG93bihmcmFt
ZSkgeworICAgICAgICByZXR1cm4gUkVOREVSX1FVQU5UVU1fRlJBTUVTICoKKyAgICAgICAgICAg
IE1hdGguZmxvb3IoZnJhbWUgLyBSRU5ERVJfUVVBTlRVTV9GUkFNRVMpOworICAgICAgfQorCisg
ICAgICBmdW5jdGlvbiByb3VuZFVwKGZyYW1lKSB7CisgICAgICAgIHJldHVybiBSRU5ERVJfUVVB
TlRVTV9GUkFNRVMgKiBNYXRoLmNlaWwoZnJhbWUgLyBSRU5ERVJfUVVBTlRVTV9GUkFNRVMpOwor
ICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tYXV0b21hdGlvbi1jbGFt
cGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tYXV0b21hdGlvbi1jbGFtcGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRlZDUw
NTE1MWRiZTU4YTA1YTI3MmYzOWNiNTE4ZmRiNDUzMTg0YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1hdXRvbWF0aW9uLWNsYW1w
aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJV
Tk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJjbGFtcCIgCitQQVNTIEF1ZGl0IHJlcG9y
dCAKK1BBU1MgPiBbY2xhbXBdICAKK1BBU1MgICBDbGFtcGVkIHNpZ25hbCBpbiBmcmFtZSByYW5n
ZSBbNTYxOCwgMTgzODJdIGVxdWFscyBbMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMC4u
Ll0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQi
OjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQWN0dWFsIENsYW1wIHN0YXJ0IGlz
IGxlc3MgdGhhbiBvciBlcXVhbCB0byA1NjE4LiAKK1BBU1MgICBBY3R1YWwgQ2xhbXAgZW5kIGlz
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxODM4Mi4gCitQQVNTIDwgW2NsYW1wXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sg
UlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tYXV0b21hdGlvbi1j
bGFtcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFt
LWF1dG9tYXRpb24tY2xhbXBpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2UyNDgxYmEwZDZjY2MyZjg2
MGZjYTJkYWQzZGY1OTJlMzdiMDVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWF1dG9tYXRpb24tY2xhbXBpbmcuaHRtbApAQCAt
MCwwICsxLDEyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRp
dGxlPgorICAgICAgVGVzdCBDbGFtcGluZyBvZiBBdXRvbWF0aW9ucworICAgIDwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5Pgor
ICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgLy8gU29tZSBhcmJpdHJh
cnkgc2FtcGxlIHJhdGUgZm9yIHRoZSBvZmZsaW5lIGNvbnRleHQuCisgICAgICBsZXQgc2FtcGxl
UmF0ZSA9IDQ4MDAwOworCisgICAgICAvLyBEdXJhdGlvbiBvZiB0ZXN0IChmYWlybHkgYXJiaXRy
YXJ5KS4KKyAgICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IDE7CisgICAgICBsZXQgcmVuZGVyRnJh
bWVzID0gcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlOworCisgICAgICBsZXQgYXVkaXQgPSBB
dWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnY2xhbXAnLCAo
dGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFRlc3QgY2xhbXBpbmcgb2YgYXV0b21hdGlv
bnMuICBNb3N0IEF1ZGlvUGFyYW0gbGltaXRzIGFyZSBlc3NlbnRpYWxseQorICAgICAgICAvLyB1
bmJvdW5kZWQsIHNvIGNsYW1waW5nIGRvZXNuJ3QgaGFwcGVuLiAgRm9yIG1vc3Qgb3RoZXIgQXVk
aW9QYXJhbXMsCisgICAgICAgIC8vIHRoZSBiZWhhdmlvciBpcyBzdWZmaWNpZW50bHkgY29tcGxp
Y2F0ZWQgd2l0aCBjb21wbGljYXRlZCBvdXRwdXRzCisgICAgICAgIC8vIHRoYXQgdGVzdGluZyB0
aGVtIGlzIGhhcmQuICBIb3dldmVyIHRoZSBvdXRwdXQgYmVoYXZpb3Igb2YgdGhlCisgICAgICAg
IC8vIGZyZXF1ZW5jeSBwYXJhbWV0ZXIgZm9yIGEgQmlxdWFkRmlsdGVyIGlzIHJlbGF0aXZlbHkg
c2ltcGxlLiAgVXNlCisgICAgICAgIC8vIHRoYXQgYXMgdGhlIHRlc3QuCisgICAgICAgIGxldCBj
b250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBzYW1wbGVS
YXRlKTsKKworICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQs
IDEsIDEpOworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgbGV0IGZpbHRl
ciA9IGNvbnRleHQuY3JlYXRlQmlxdWFkRmlsdGVyKCk7CisgICAgICAgIGZpbHRlci50eXBlID0g
J2xvd3Bhc3MnOworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGZpbHRlcik7CisgICAgICAgIGZp
bHRlci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIGxldCBWMCA9IDg4
MDsKKyAgICAgICAgbGV0IFQwID0gMDsKKyAgICAgICAgZmlsdGVyLmZyZXF1ZW5jeS5zZXRWYWx1
ZUF0VGltZShWMCwgVDApOworCisgICAgICAgIGxldCBWMSA9IC0xMDAwOworICAgICAgICBsZXQg
VDEgPSByZW5kZXJEdXJhdGlvbiAvIDQ7CisgICAgICAgIGZpbHRlci5mcmVxdWVuY3kubGluZWFy
UmFtcFRvVmFsdWVBdFRpbWUoVjEsIFQxKTsKKworICAgICAgICBsZXQgVjIgPSA4ODA7CisgICAg
ICAgIGxldCBUMiA9IHJlbmRlckR1cmF0aW9uIC8gMjsKKyAgICAgICAgZmlsdGVyLmZyZXF1ZW5j
eS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShWMiwgVDIpOworCisgICAgICAgIHNvdXJjZS5zdGFy
dCgpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRo
ZW4oZnVuY3Rpb24oYnVmZmVyKSB7CisgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBidWZmZXIu
Z2V0Q2hhbm5lbERhdGEoMCk7CisKKyAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgY3V0b2ZmIGZy
ZXF1ZW5jeSBvZiBhIGxvd3Bhc3MgZmlsdGVyIGlzIDAsIG5vdGhpbmcKKyAgICAgICAgICAgICAg
Ly8gZ2V0cyB0aHJvdWdoLiAgSGVuY2UgdGhlIG91dHB1dCBvZiB0aGUgZmlsdGVyIGJldHdlZW4g
dGhlCisgICAgICAgICAgICAgIC8vIGNsYW1waW5nIHBlcmlvZCBzaG91bGQgYmUgZXhhY3RseSB6
ZXJvLiBUaGlzIHRlc3RzIHBhc3NlcyBpZgorICAgICAgICAgICAgICAvLyB0aGUgb3V0cHV0IGlz
IDAgZHVyaW5nIHRoZSBleHBlY3RlZCByYW5nZS4KKyAgICAgICAgICAgICAgLy8KKyAgICAgICAg
ICAgICAgLy8gQ29tcHV0ZSB3aGVuIHRoZSBmcmVxdWVuY3kgdmFsdWUgb2YgdGhlIGJpcXVhZCBn
b2VzIHRvIDAuICBJbgorICAgICAgICAgICAgICAvLyBnZW5lcmFsLCB0ID0gKFQwKlYxIC1UMSpW
MCkvKFYxLVYwKSAodXNpbmcgdGhlIG5vdGF0aW9uIGZyb20KKyAgICAgICAgICAgICAgLy8gdGhl
IHNwZWMuKQorICAgICAgICAgICAgICBsZXQgY2xhbXBTdGFydFRpbWUgPSBzb2x2ZUxpbmVhclJh
bXAoMCwgVjAsIFQwLCBWMSwgVDEpOworICAgICAgICAgICAgICBsZXQgY2xhbXBFbmRUaW1lID0g
c29sdmVMaW5lYXJSYW1wKDAsIFYxLCBUMSwgVjIsIFQyKTsKKworICAgICAgICAgICAgICBsZXQg
Y2xhbXBTdGFydEZyYW1lID0gTWF0aC5jZWlsKGNsYW1wU3RhcnRUaW1lICogc2FtcGxlUmF0ZSk7
CisgICAgICAgICAgICAgIGxldCBjbGFtcEVuZEZyYW1lID0gTWF0aC5mbG9vcihjbGFtcEVuZFRp
bWUgKiBzYW1wbGVSYXRlKTsKKworICAgICAgICAgICAgICBsZXQgY2xhbXBlZFNpZ25hbCA9Cisg
ICAgICAgICAgICAgICAgICByZXN1bHQuc2xpY2UoY2xhbXBTdGFydEZyYW1lLCBjbGFtcEVuZEZy
YW1lICsgMSk7CisgICAgICAgICAgICAgIGxldCBleHBlY3RlZFNpZ25hbCA9IG5ldyBGbG9hdDMy
QXJyYXkoY2xhbXBlZFNpZ25hbC5sZW5ndGgpOworICAgICAgICAgICAgICBleHBlY3RlZFNpZ25h
bC5maWxsKDApOworCisgICAgICAgICAgICAgIC8vIE91dHB1dCBzaG91bGQgYmUgemVyby4KKyAg
ICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgY2xhbXBlZFNpZ25hbCwKKyAg
ICAgICAgICAgICAgICAgICdDbGFtcGVkIHNpZ25hbCBpbiBmcmFtZSByYW5nZSBbJyArIGNsYW1w
U3RhcnRGcmFtZSArICcsICcgKworICAgICAgICAgICAgICAgICAgICAgIGNsYW1wRW5kRnJhbWUg
KyAnXScpCisgICAgICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoZXhwZWN0ZWRTaWduYWws
IDApOworCisgICAgICAgICAgICAgIC8vIEZpbmQgdGhlIGFjdHVhbCBjbGFtcCByYW5nZSBiYXNl
ZCBvbiB0aGUgb3V0cHV0IHZhbHVlcy4KKyAgICAgICAgICAgICAgbGV0IGFjdHVhbENsYW1wU3Rh
cnQgPSByZXN1bHQuZmluZEluZGV4KHggPT4geCA9PT0gMCk7CisgICAgICAgICAgICAgIGxldCBh
Y3R1YWxDbGFtcEVuZCA9IGFjdHVhbENsYW1wU3RhcnQgKworICAgICAgICAgICAgICAgICAgcmVz
dWx0LnNsaWNlKGFjdHVhbENsYW1wU3RhcnQpLmZpbmRJbmRleCh4ID0+IHggIT0gMCk7CisKKyAg
ICAgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGV4cGVjdGVkIGNsYW1waW5nIHJhbmdlIGlz
IGEgc3Vic2V0IG9mIHRoZQorICAgICAgICAgICAgICAvLyBhY3R1YWwgcmFuZ2UuCisgICAgICAg
ICAgICAgIHNob3VsZChhY3R1YWxDbGFtcFN0YXJ0LCAnQWN0dWFsIENsYW1wIHN0YXJ0JykKKyAg
ICAgICAgICAgICAgICAgIC5iZUxlc3NUaGFuT3JFcXVhbFRvKGNsYW1wU3RhcnRGcmFtZSk7Cisg
ICAgICAgICAgICAgIHNob3VsZChhY3R1YWxDbGFtcEVuZCwgJ0FjdHVhbCBDbGFtcCBlbmQnKQor
ICAgICAgICAgICAgICAgICAgLmJlR3JlYXRlclRoYW5PckVxdWFsVG8oY2xhbXBFbmRGcmFtZSk7
CisKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7
CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisKKyAgICAgIGZ1bmN0aW9uIHNvbHZl
TGluZWFyUmFtcCh2LCB2MCwgdDAsIHYxLCB0MSkgeworICAgICAgICAvLyBTb2x2ZSB0aGUgbGlu
ZWFyIHJhbXAgZXF1YXRpb24gZm9yIHRoZSB0aW1lIHQgYXQgd2hpY2ggdGhlIHJhbXAKKyAgICAg
ICAgLy8gcmVhY2hlcyB0aGUgdmFsdWUgdi4gIFRoZSBsaW5lYXIgcmFtcCBlcXVhdGlvbiAoZnJv
bSB0aGUgc3BlYykgaXMKKyAgICAgICAgLy8KKyAgICAgICAgLy8gIHYodCkgPSB2MCArICh2MSAt
IHYwKSAqICh0IC0gdDApLyh0MSAtIHQwKQorICAgICAgICAvLworICAgICAgICAvLyBGaW5kIHQg
c3VjaCB0aGF0CisgICAgICAgIC8vCisgICAgICAgIC8vICAgdiA9IHYwICsgKHYxIC0gdjApICog
KHQgLSB0MCkvKHQxIC0gdDApCisgICAgICAgIC8vCisgICAgICAgIC8vIFRoZW4KKyAgICAgICAg
Ly8KKyAgICAgICAgLy8gICB0ID0gKHQwICogdjEgLSB0MSAqIHYwICsgKHQxIC0gdDApICogdikg
LyAodjEgLSB2MCkKKyAgICAgICAgLy8KKyAgICAgICAgcmV0dXJuICh0MCAqIHYxIC0gdDEgKiB2
MCArICh0MSAtIHQwKSAqIHYpIC8gKHYxIC0gdjApOworICAgICAgfQorICAgIDwvc2NyaXB0Pgor
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNjYzA3NjcyYTBjYjM3MmU3OTVkNTAwZGE3Y2JjODQ3NDZmOWNm
OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3OSBAQAor
CitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAibGlu
ZWFyIiAKK1BBU1MgRXhlY3V0aW5nICJleHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAic2V0
VGFyZ2V0IiAKK1BBU1MgRXhlY3V0aW5nICJzZXRWYWx1ZUN1cnZlIiAKK1BBU1MgRXhlY3V0aW5n
ICJzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZCIgCitQQVNTIEV4ZWN1dGluZyAiaW5pdGlhbCBzZXRU
YXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBMaW5lYXIiIAorUEFTUyBFeGVj
dXRpbmcgInBvc3QgY2FuY2VsOiBFeHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAicG9zdCBj
YW5jZWw6IFZhbHVlQ3VydmUiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBzZXRUYXJn
ZXQiIAorUEFTUyBFeGVjdXRpbmcgInBvc3QgY2FuY2VsOiBzZXRWYWx1ZSIgCitQQVNTIEV4ZWN1
dGluZyAiY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXQiIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBz
ZXRUYXJnZXQgbm93IiAKK1BBU1MgRXhlY3V0aW5nICJjYW5jZWwgZnV0dXJlIHNldFZhbHVlQ3Vy
dmUiIAorUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vdyIgCitQQVNTIEV4
ZWN1dGluZyAibGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXIiIAorUEFTUyBB
dWRpdCByZXBvcnQgCitQQVNTID4gW2xpbmVhcl0gQ2FuY2VsIGxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lIAorRkFJTCBYIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgw
LCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBkb2VzIG5vdCBlcXVhbCBbMCwwLjAwMjA4MzMzMzQ0MTk4
NzYzMzcsMC4wMDQxNjY2NjY4ODM5NzUyNjcsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMz
MzMzNzY3OTUwNTM1LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAu
MDE0NTgzMzMzMzk1NDIxNTA1LDAuMDE2NjY2NjY3NTM1OTAxMDcsMC4wMTg3NTAwMDA3NDUwNTgw
NiwwLjAyMDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY3MTYzMzcyMDQsMC4wMjUwMDAwMDAzNzI1
MjkwMywwLjAyNzA4MzMzMzU4MTY4NjAyLDAuMDI5MTY2NjY2NzkwODQzMDEsMC4wMzEyNS4uLl0g
d2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAs
InJlbGF0aXZlVGhyZXNob2xkIjowfS4KKwlJbmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJy
b3IJCVJlbEVycm9yCQlUZXN0IHRocmVzaG9sZAorCVs3MTVdCTkuOTAwMDg1MzMwMDA5NDYwNGUt
MQk5LjkwMDA4NDczMzk2MzAxMjdlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDIwNjE5NjU5
MDMzMDQyN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbODE2XQk5Ljg1NzE0MzE2MzY4MTAz
MDNlLTEJOS44NTcxNDI1Njc2MzQ1ODI1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA0Njg0
ODE5ODI5MDE4MTdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzg3OV0JOS44MzAzNTY4MzYz
MTg5Njk3ZS0xCTkuODMwMzU3NDMyMzY1NDE3NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4w
NjMzMjQyNjcyNDg3NzgyZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsxMjY0XQk5LjY2NjY2
NjM4ODUxMTY1NzdlLTEJOS42NjY2NjY5ODQ1NTgxMDU1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUt
OAk2LjE2NTk5NzUzMjYxNDQyNzllLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzEzNjhdCTku
NjIyNDQ5Mjc4ODMxNDgxOWUtMQk5LjYyMjQ0ODY4Mjc4NTAzNDJlLTEJNS45NjA0NjQ0Nzc1Mzkw
NjI1ZS04CTYuMTk0MzMyMzA5ODIzMTU4M2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwkuLi5h
bmQgMTE0MCBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45NjA0NjQ0Nzc1MzkwNjI1
ZS04IGF0IGluZGV4IG9mIDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4xNjcxODExOTkwNDUyNDU4
ZS03IGF0IGluZGV4IG9mIDExOTg5LgorCVsxMTk4OV0JNS4xMDY3MTc5NDQxNDUyMDI2ZS0xCTUu
MTA2NzE3MzQ4MDk4NzU0OWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJMS4xNjcxODExOTkwNDUy
NDU4ZS03CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorUEFTUyAgIENhbmNlbGxpbmcgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxp
bmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNh
bmNlbGxpbmcgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAu
NSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2Yg
MC4wMDAwODM5OTguIAorRkFJTCA8IFtsaW5lYXJdIDEgb3V0IG9mIDMgYXNzZXJ0aW9ucyB3ZXJl
IGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW2V4
cG9uZW50aWFsXSBDYW5jZWwgZXhwb25lbnRpYWxSYW1wQXRUaW1lIAorUEFTUyAgIGV4cG9uZW50
aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0
ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhy
ZXNob2xkIjo1Ljk2MDVlLTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgQ2FuY2Vs
bGluZyBleHBvbmVudGlhbFJhbXBUb1ZhbHVlKDAuMDAxLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250
YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjAzMzkzMjIyMDE5MDc2MzQ3NC4gCitQQVNTICAgRXhw
ZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZSgwLjAwMSwg
MC41KSBhdCB0aW1lIDAuMjUgaXMgMC4wMzM5MzIyMTY0NjU0NzMxNzUgd2l0aGluIGFuIGVycm9y
IG9mIDAuMDAwMDAxODY2NC4gCitQQVNTIDwgW2V4cG9uZW50aWFsXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXRUYXJnZXRdIENhbmNlbCBz
ZXRUYXJnZXRBdFRpbWUgCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAuMDEsIDAuMDUpIHVw
IHRvIHRpbWUgMC4yNSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lz
ZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQi
OjB9LiAKK1BBU1MgICBDYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjA1KSBh
dCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4wMDgyMjk3NTExMzk4Nzky
MjcuIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFRhcmdldEF0VGlt
ZSgwLCAwLjAxLCAwLjA1KSBhdCB0aW1lIDAuMjUgaXMgMC4wMDgyMjk3NDc0MTQ1ODg5Mjggd2l0
aGluIGFuIGVycm9yIG9mIDQuNTI2N2UtNy4gCitQQVNTIDwgW3NldFRhcmdldF0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbc2V0VmFsdWVDdXJ2
ZV0gQ2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWUgCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGlt
ZShbMSwwXSwgMC4wMSwgMC40OSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJy
YXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xk
IjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcgc2V0VmFsdWVD
dXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC40OSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUg
Zm9yIGNhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC40OSkgYXQg
dGltZSAwLjI1IGlzIDAuNTEwMjA0MDgxNjMyNjUzIHdpdGhpbiBhbiBlcnJvciBvZiA5LjUzNjhl
LTkuIAorUEFTUyA8IFtzZXRWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAzIGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZF0gQ2FuY2Vs
IHNldFZhbHVlQ3VydmVBdFRpbWUgYWZ0ZXIgdGhlIGVuZCAKK1BBU1MgICBzZXRWYWx1ZUN1cnZl
QXRUaW1lKFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5OTk5OTk5KSB1cCB0byB0aW1lIDAuMjUg
ZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9m
IHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAg
Q2FuY2VsbGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5
OTk5OTk5KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4gCitQQVNT
ICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSww
XSwgMC4wMSwgMC4xMTQ5OTk5OTk5OTk5OTk5OSkgYXQgdGltZSAwLjI1IGlzIDAgd2l0aGluIGFu
IGVycm9yIG9mIDAuIAorUEFTUyA8IFtzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZF0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKK1BBU1MgPiBbaW5pdGlhbCBzZXRU
YXJnZXRdIENhbmNlbCB3aXRoIGluaXRpYWwgc2V0VGFyZ2V0QXRUaW1lIAorUEFTUyAgIHNldFRh
cmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFT
UyAgIENhbmNlbGxpbmcgc2V0VGFyZ2V0QXRUaW1lKDAsIDAuMDEsIDAuMSkgYXQgdGltZSAwLjI1
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuMDkwNzE3ODQ0NjY1MDUwNS4gCitQQVNTICAg
RXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgc2V0VGFyZ2V0QXRUaW1lKDAsIDAuMDEsIDAu
MSkgYXQgdGltZSAwLjI1IGlzIDAuMDkwNzE3OTU2NDIzNzU5NDYgd2l0aGluIGFuIGVycm9yIG9m
IDAuMDAwMDAxMjMyLiAKK1BBU1MgPCBbaW5pdGlhbCBzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Bvc3QgY2FuY2VsOiBMaW5l
YXJdIExpbmVhclJhbXAgYWZ0ZXIgY2FuY2VsbGluZyAKK0ZBSUwgWCBQb3N0IGNhbmNlbGxhdGlv
biBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0
byB0aW1lIDAuMjUgZG9lcyBub3QgZXF1YWwgWzAsMC4wMDIwODMzMzM0NDE5ODc2MzM3LDAuMDA0
MTY2NjY2ODgzOTc1MjY3LDAuMDA2MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMzc2Nzk1MDUz
NSwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMzM5
NTQyMTUwNSwwLjAxNjY2NjY2NzUzNTkwMTA3LDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMz
MzM5NTQyMTUwNSwwLjAyMjkxNjY2NzE2MzM3MjA0LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcw
ODMzMzM1ODE2ODYwMiwwLjAyOTE2NjY2Njc5MDg0MzAxLDAuMDMxMjUuLi5dIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uCisJSW5kZXgJQWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJv
cgkJVGVzdCB0aHJlc2hvbGQKKwlbNzE1XQk5LjkwMDA4NTMzMDAwOTQ2MDRlLTEJOS45MDAwODQ3
MzM5NjMwMTI3ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjAyMDYxOTY1OTAzMzA0MjdlLTgJ
MC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzgxNl0JOS44NTcxNDMxNjM2ODEwMzAzZS0xCTkuODU3
MTQyNTY3NjM0NTgyNWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNDY4NDgxOTgyOTAxODE3
ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs4NzldCTkuODMwMzU2ODM2MzE4OTY5N2UtMQk5
LjgzMDM1NzQzMjM2NTQxNzVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDYzMzI0MjY3MjQ4
Nzc4MmUtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbMTI2NF0JOS42NjY2NjYzODg1MTE2NTc3
ZS0xCTkuNjY2NjY2OTg0NTU4MTA1NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xNjU5OTc1
MzI2MTQ0Mjc5ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsxMzY4XQk5LjYyMjQ0OTI3ODgz
MTQ4MTllLTEJOS42MjI0NDg2ODI3ODUwMzQyZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE5
NDMzMjMwOTgyMzE1ODNlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJLi4uYW5kIDExNDAgbW9y
ZSBlcnJvcnMuCisJTWF4IEFic0Vycm9yIG9mIDUuOTYwNDY0NDc3NTM5MDYyNWUtOCBhdCBpbmRl
eCBvZiA3MTUuCisJTWF4IFJlbEVycm9yIG9mIDEuMTY3MTgxMTk5MDQ1MjQ1OGUtNyBhdCBpbmRl
eCBvZiAxMTk4OS4KKwlbMTE5ODldCTUuMTA2NzE3OTQ0MTQ1MjAyNmUtMQk1LjEwNjcxNzM0ODA5
ODc1NDllLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTEuMTY3MTgxMTk5MDQ1MjQ1OGUtNwkwLjAw
MDAwMDAwMDAwMDAwMDBlKzAKKyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5
IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVl
IGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2
Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKK1BBU1MgICBQb3N0IGxpbmVh
clJhbXAoMiwgMC4zNzUpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13
aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9s
ZCI6MH0uIAorRkFJTCA8IFtwb3N0IGNhbmNlbDogTGluZWFyXSAxIG91dCBvZiA0IGFzc2VydGlv
bnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFT
UyA+IFtwb3N0IGNhbmNlbDogRXhwb25lbnRpYWxdIEV4cG9uZW50aWFsUmFtcCBhZnRlciBjYW5j
ZWxsaW5nIAorRkFJTCBYIFBvc3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6
IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGRvZXMgbm90IGVxdWFs
IFswLDAuMDAyMDgzMzMzNDQxOTg3NjMzNywwLjAwNDE2NjY2Njg4Mzk3NTI2NywwLjAwNjI1MDAw
MDA5MzEzMjI1NzUsMC4wMDgzMzMzMzM3Njc5NTA1MzUsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4w
MTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzMzOTU0MjE1MDUsMC4wMTY2NjY2Njc1MzU5MDEw
NywwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjcxNjMz
NzIwNCwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMzNTgxNjg2MDIsMC4wMjkxNjY2NjY3
OTA4NDMwMSwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJh
YnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVh
bAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzcxNV0J
OS45MDAwODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2MDQ2NDQ3NzUz
OTA2MjVlLTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs4
MTZdCTkuODU3MTQzMTYzNjgxMDMwM2UtMQk5Ljg1NzE0MjU2NzYzNDU4MjVlLTEJNS45NjA0NjQ0
Nzc1MzkwNjI1ZS04CTYuMDQ2ODQ4MTk4MjkwMTgxN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAK
KwlbODc5XQk5LjgzMDM1NjgzNjMxODk2OTdlLTEJOS44MzAzNTc0MzIzNjU0MTc1ZS0xCTUuOTYw
NDY0NDc3NTM5MDYyNWUtOAk2LjA2MzMyNDI2NzI0ODc3ODJlLTgJMC4wMDAwMDAwMDAwMDAwMDAw
ZSswCisJWzEyNjRdCTkuNjY2NjY2Mzg4NTExNjU3N2UtMQk5LjY2NjY2Njk4NDU1ODEwNTVlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTY1OTk3NTMyNjE0NDI3OWUtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKKwlbMTM2OF0JOS42MjI0NDkyNzg4MzE0ODE5ZS0xCTkuNjIyNDQ4NjgyNzg1MDM0
MmUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xOTQzMzIzMDk4MjMxNTgzZS04CTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAorCS4uLmFuZCAxMTQwIG1vcmUgZXJyb3JzLgorCU1heCBBYnNFcnJvciBv
ZiA1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTggYXQgaW5kZXggb2YgNzE1LgorCU1heCBSZWxFcnJvciBv
ZiAxLjE2NzE4MTE5OTA0NTI0NThlLTcgYXQgaW5kZXggb2YgMTE5ODkuCisJWzExOTg5XQk1LjEw
NjcxNzk0NDE0NTIwMjZlLTEJNS4xMDY3MTczNDgwOTg3NTQ5ZS0xCTUuOTYwNDY0NDc3NTM5MDYy
NWUtOAkxLjE2NzE4MTE5OTA0NTI0NThlLTcJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisgYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNh
bmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAw
LjUpIGF0IHRpbWUgMC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2
Njk2NzguIAorUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2Vs
IGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkg
YXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4w
MDAwODM5OTguIAorUEFTUyAgIFBvc3QgZXhwb25lbnRpYWxSYW1wKDIsIDAuMzc1KSBlcXVhbHMg
W2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNv
bHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwgPCBbcG9zdCBj
YW5jZWw6IEV4cG9uZW50aWFsXSAxIG91dCBvZiA0IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFz
c2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwb3N0IGNhbmNlbDog
VmFsdWVDdXJ2ZV0gIAorRkFJTCBYIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3VydmVBdFRpbWU6IGxp
bmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGRvZXMgbm90IGVxdWFsIFsw
LDAuMDAyMDgzMzMzNDQxOTg3NjMzNywwLjAwNDE2NjY2Njg4Mzk3NTI2NywwLjAwNjI1MDAwMDA5
MzEzMjI1NzUsMC4wMDgzMzMzMzM3Njc5NTA1MzUsMC4wMTA0MTY2NjY5NzcxMDc1MjUsMC4wMTI1
MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzMzOTU0MjE1MDUsMC4wMTY2NjY2Njc1MzU5MDEwNyww
LjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5MTY2NjcxNjMzNzIw
NCwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMzNTgxNjg2MDIsMC4wMjkxNjY2NjY3OTA4
NDMwMSwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNv
bHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVhbAkJ
CUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzcxNV0JOS45
MDAwODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2MDQ2NDQ3NzUzOTA2
MjVlLTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs4MTZd
CTkuODU3MTQzMTYzNjgxMDMwM2UtMQk5Ljg1NzE0MjU2NzYzNDU4MjVlLTEJNS45NjA0NjQ0Nzc1
MzkwNjI1ZS04CTYuMDQ2ODQ4MTk4MjkwMTgxN2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlb
ODc5XQk5LjgzMDM1NjgzNjMxODk2OTdlLTEJOS44MzAzNTc0MzIzNjU0MTc1ZS0xCTUuOTYwNDY0
NDc3NTM5MDYyNWUtOAk2LjA2MzMyNDI2NzI0ODc3ODJlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSsw
CisJWzEyNjRdCTkuNjY2NjY2Mzg4NTExNjU3N2UtMQk5LjY2NjY2Njk4NDU1ODEwNTVlLTEJNS45
NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTY1OTk3NTMyNjE0NDI3OWUtOAkwLjAwMDAwMDAwMDAwMDAw
MDBlKzAKKwlbMTM2OF0JOS42MjI0NDkyNzg4MzE0ODE5ZS0xCTkuNjIyNDQ4NjgyNzg1MDM0MmUt
MQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xOTQzMzIzMDk4MjMxNTgzZS04CTAuMDAwMDAwMDAw
MDAwMDAwMGUrMAorCS4uLmFuZCAxMTQwIG1vcmUgZXJyb3JzLgorCU1heCBBYnNFcnJvciBvZiA1
Ljk2MDQ2NDQ3NzUzOTA2MjVlLTggYXQgaW5kZXggb2YgNzE1LgorCU1heCBSZWxFcnJvciBvZiAx
LjE2NzE4MTE5OTA0NTI0NThlLTcgYXQgaW5kZXggb2YgMTE5ODkuCisJWzExOTg5XQk1LjEwNjcx
Nzk0NDE0NTIwMjZlLTEJNS4xMDY3MTczNDgwOTg3NTQ5ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUt
OAkxLjE2NzE4MTE5OTA0NTI0NThlLTcJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisgYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNl
bCBzZXRWYWx1ZUN1cnZlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUg
MC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAorUEFT
UyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFZhbHVlQ3Vy
dmVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuNTEw
MjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5OTguIAorUEFTUyAgIFBv
c3Qgc2V0VmFsdWVDdXJ2ZShbMC4xMjUsMl0sIDAuMzc1LCAwLjEyNSkgZXF1YWxzIFtleHBlY3Rl
ZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorRkFJTCA8IFtwb3N0
IGNhbmNlbDogVmFsdWVDdXJ2ZV0gMSBvdXQgb2YgNCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbcG9zdCBjYW5jZWw6
IHNldFRhcmdldF0gIAorRkFJTCBYIFBvc3QgY2FuY2VsIHNldFRhcmdldEF0VGltZTogbGluZWFy
UmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZG9lcyBub3QgZXF1YWwgWzAsMC4w
MDIwODMzMzM0NDE5ODc2MzM3LDAuMDA0MTY2NjY2ODgzOTc1MjY3LDAuMDA2MjUwMDAwMDkzMTMy
MjU3NSwwLjAwODMzMzMzMzc2Nzk1MDUzNSwwLjAxMDQxNjY2Njk3NzEwNzUyNSwwLjAxMjUwMDAw
MDE4NjI2NDUxNSwwLjAxNDU4MzMzMzM5NTQyMTUwNSwwLjAxNjY2NjY2NzUzNTkwMTA3LDAuMDE4
NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2NzE2MzM3MjA0LDAu
MDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzM1ODE2ODYwMiwwLjAyOTE2NjY2Njc5MDg0MzAx
LDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRl
VGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCisJSW5kZXgJQWN0dWFsCQkJRXhw
ZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hvbGQKKwlbNzE1XQk5LjkwMDA4
NTMzMDAwOTQ2MDRlLTEJOS45MDAwODQ3MzM5NjMwMTI3ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUt
OAk2LjAyMDYxOTY1OTAzMzA0MjdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzgxNl0JOS44
NTcxNDMxNjM2ODEwMzAzZS0xCTkuODU3MTQyNTY3NjM0NTgyNWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2
MjVlLTgJNi4wNDY4NDgxOTgyOTAxODE3ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVs4Nzld
CTkuODMwMzU2ODM2MzE4OTY5N2UtMQk5LjgzMDM1NzQzMjM2NTQxNzVlLTEJNS45NjA0NjQ0Nzc1
MzkwNjI1ZS04CTYuMDYzMzI0MjY3MjQ4Nzc4MmUtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlb
MTI2NF0JOS42NjY2NjYzODg1MTE2NTc3ZS0xCTkuNjY2NjY2OTg0NTU4MTA1NWUtMQk1Ljk2MDQ2
NDQ3NzUzOTA2MjVlLTgJNi4xNjU5OTc1MzI2MTQ0Mjc5ZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUr
MAorCVsxMzY4XQk5LjYyMjQ0OTI3ODgzMTQ4MTllLTEJOS42MjI0NDg2ODI3ODUwMzQyZS0xCTUu
OTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE5NDMzMjMwOTgyMzE1ODNlLTgJMC4wMDAwMDAwMDAwMDAw
MDAwZSswCisJLi4uYW5kIDExNDAgbW9yZSBlcnJvcnMuCisJTWF4IEFic0Vycm9yIG9mIDUuOTYw
NDY0NDc3NTM5MDYyNWUtOCBhdCBpbmRleCBvZiA3MTUuCisJTWF4IFJlbEVycm9yIG9mIDEuMTY3
MTgxMTk5MDQ1MjQ1OGUtNyBhdCBpbmRleCBvZiAxMTk4OS4KKwlbMTE5ODldCTUuMTA2NzE3OTQ0
MTQ1MjAyNmUtMQk1LjEwNjcxNzM0ODA5ODc1NDllLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTEu
MTY3MTgxMTk5MDQ1MjQ1OGUtNwkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKyBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNl
dFRhcmdldEF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29u
dGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBFeHBl
Y3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWU6IGxp
bmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3
OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwODM5OTguIAorUEFTUyAgIFBvc3Qgc2V0VGFyZ2V0
QXRUaW1lKDAuMTI1LCAwLjM3NSwgMC4xKSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODQw
MzcsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitGQUlMIDwgW3Bvc3QgY2FuY2VsOiBzZXRUYXJn
ZXRdIDEgb3V0IG9mIDQgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZV0gIAorRkFJ
TCBYIFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUp
IHVwIHRvIHRpbWUgMC4yNSBkb2VzIG5vdCBlcXVhbCBbMCwwLjAwMjA4MzMzMzQ0MTk4NzYzMzcs
MC4wMDQxNjY2NjY4ODM5NzUyNjcsMC4wMDYyNTAwMDAwOTMxMzIyNTc1LDAuMDA4MzMzMzMzNzY3
OTUwNTM1LDAuMDEwNDE2NjY2OTc3MTA3NTI1LDAuMDEyNTAwMDAwMTg2MjY0NTE1LDAuMDE0NTgz
MzMzMzk1NDIxNTA1LDAuMDE2NjY2NjY3NTM1OTAxMDcsMC4wMTg3NTAwMDA3NDUwNTgwNiwwLjAy
MDgzMzMzMzk1NDIxNTA1LDAuMDIyOTE2NjY3MTYzMzcyMDQsMC4wMjUwMDAwMDAzNzI1MjkwMyww
LjAyNzA4MzMzMzU4MTY4NjAyLDAuMDI5MTY2NjY2NzkwODQzMDEsMC4wMzEyNS4uLl0gd2l0aCBh
biBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0
aXZlVGhyZXNob2xkIjowfS4KKwlJbmRleAlBY3R1YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJl
bEVycm9yCQlUZXN0IHRocmVzaG9sZAorCVs3MTVdCTkuOTAwMDg1MzMwMDA5NDYwNGUtMQk5Ljkw
MDA4NDczMzk2MzAxMjdlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDIwNjE5NjU5MDMzMDQy
N2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwlbODE2XQk5Ljg1NzE0MzE2MzY4MTAzMDNlLTEJ
OS44NTcxNDI1Njc2MzQ1ODI1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA0Njg0ODE5ODI5
MDE4MTdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzg3OV0JOS44MzAzNTY4MzYzMTg5Njk3
ZS0xCTkuODMwMzU3NDMyMzY1NDE3NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNjMzMjQy
NjcyNDg3NzgyZS04CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsxMjY0XQk5LjY2NjY2NjM4ODUx
MTY1NzdlLTEJOS42NjY2NjY5ODQ1NTgxMDU1ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE2
NTk5NzUzMjYxNDQyNzllLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSswCisJWzEzNjhdCTkuNjIyNDQ5
Mjc4ODMxNDgxOWUtMQk5LjYyMjQ0ODY4Mjc4NTAzNDJlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04
CTYuMTk0MzMyMzA5ODIzMTU4M2UtOAkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKKwkuLi5hbmQgMTE0
MCBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgNS45NjA0NjQ0Nzc1MzkwNjI1ZS04IGF0
IGluZGV4IG9mIDcxNS4KKwlNYXggUmVsRXJyb3Igb2YgMS4xNjcxODExOTkwNDUyNDU4ZS03IGF0
IGluZGV4IG9mIDExOTg5LgorCVsxMTk4OV0JNS4xMDY3MTc5NDQxNDUyMDI2ZS0xCTUuMTA2NzE3
MzQ4MDk4NzU0OWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJMS4xNjcxODExOTkwNDUyNDU4ZS03
CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorUEFTUyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVBdFRpbWU6IGxpbmVh
clJhbXBUb1ZhbHVlKDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0
YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNl
bGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAu
NSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2Yg
MC4wMDAwODM5OTguIAorUEFTUyAgIFBvc3Qgc2V0VmFsdWVBdFRpbWUoMC4xMjUsIDAuMzc1KSBl
cXVhbHMgWzAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAu
MTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1LDAuMTI1Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwgPCBbcG9zdCBjYW5jZWw6IHNldFZhbHVlXSAxIG91dCBv
ZiA0IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyA+IFtjYW5jZWwgZnV0dXJlIHNldFRhcmdldF0gIAorUEFTUyAgIEFmdGVy
IGNhbmNlbGxpbmcgZnV0dXJlIHNldFRhcmdldCBldmVudCwgb3V0cHV0IGNvbnRhaW5zIG9ubHkg
dGhlIGNvbnN0YW50IDAuNS4gCitQQVNTIDwgW2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0XSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtjYW5jZWwg
c2V0VGFyZ2V0IG5vd10gIAorUEFTUyAgIEFmdGVyIGNhbmNlbGxpbmcgc2V0VGFyZ2V0IGV2ZW50
IHN0YXJ0aW5nIG5vdywgb3V0cHV0IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQ
QVNTIDwgW2NhbmNlbCBzZXRUYXJnZXQgbm93XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtjYW5jZWwgZnV0dXJlIHNldFZhbHVlQ3VydmVdICAK
K1BBU1MgICBBZnRlciBjYW5jZWxsaW5nIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlIGV2ZW50LCBvdXRw
dXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAKK1BBU1MgPCBbY2FuY2VsIGZ1dHVy
ZSBzZXRWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlv
bnMpIAorUEFTUyA+IFtjYW5jZWwgc2V0VmFsdWVDdXJ2ZSBub3ddICAKK1BBU1MgICBBZnRlciBj
YW5jZWxsaW5nIGN1cnJlbnQgc2V0VmFsdWVDdXJ2ZSBldmVudCBzdGFydGluZyBub3csIG91dHB1
dCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAorUEFTUyA8IFtjYW5jZWwgc2V0VmFs
dWVDdXJ2ZSBub3ddIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykg
CitQQVNTID4gW2xpbmVhciwgY2FuY2VsLCBsaW5lYXIsIGNhbmNlbCwgbGluZWFyXSBTY2hlZHVs
ZXMgMyBsaW5lYXIgcmFtcHMsIGNhbmNlbGxpbmcgMiBvZiB0aGVtLCBzbyB0aGF0IHdlIGVuZCB1
cCB3aXRoIDIgY2FuY2VsIGV2ZW50cyBuZXh0IHRvIGVhY2ggb3RoZXIgCitGQUlMIFggMXN0IGxp
bmVhclJhbXA6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGRvZXMg
bm90IGVxdWFsIFswLDAuMDAyMDgzMzMzNDQxOTg3NjMzNywwLjAwNDE2NjY2Njg4Mzk3NTI2Nyww
LjAwNjI1MDAwMDA5MzEzMjI1NzUsMC4wMDgzMzMzMzM3Njc5NTA1MzUsMC4wMTA0MTY2NjY5Nzcx
MDc1MjUsMC4wMTI1MDAwMDAxODYyNjQ1MTUsMC4wMTQ1ODMzMzMzOTU0MjE1MDUsMC4wMTY2NjY2
Njc1MzU5MDEwNywwLjAxODc1MDAwMDc0NTA1ODA2LDAuMDIwODMzMzMzOTU0MjE1MDUsMC4wMjI5
MTY2NjcxNjMzNzIwNCwwLjAyNTAwMDAwMDM3MjUyOTAzLDAuMDI3MDgzMzMzNTgxNjg2MDIsMC4w
MjkxNjY2NjY3OTA4NDMwMSwwLjAzMTI1Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFu
Y2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUlu
ZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlBYnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xk
CisJWzcxNV0JOS45MDAwODUzMzAwMDk0NjA0ZS0xCTkuOTAwMDg0NzMzOTYzMDEyN2UtMQk1Ljk2
MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wMjA2MTk2NTkwMzMwNDI3ZS04CTAuMDAwMDAwMDAwMDAwMDAw
MGUrMAorCVs4MTZdCTkuODU3MTQzMTYzNjgxMDMwM2UtMQk5Ljg1NzE0MjU2NzYzNDU4MjVlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDQ2ODQ4MTk4MjkwMTgxN2UtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKKwlbODc5XQk5LjgzMDM1NjgzNjMxODk2OTdlLTEJOS44MzAzNTc0MzIzNjU0MTc1
ZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjA2MzMyNDI2NzI0ODc3ODJlLTgJMC4wMDAwMDAw
MDAwMDAwMDAwZSswCisJWzEyNjRdCTkuNjY2NjY2Mzg4NTExNjU3N2UtMQk5LjY2NjY2Njk4NDU1
ODEwNTVlLTEJNS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMTY1OTk3NTMyNjE0NDI3OWUtOAkwLjAw
MDAwMDAwMDAwMDAwMDBlKzAKKwlbMTM2OF0JOS42MjI0NDkyNzg4MzE0ODE5ZS0xCTkuNjIyNDQ4
NjgyNzg1MDM0MmUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xOTQzMzIzMDk4MjMxNTgzZS04
CTAuMDAwMDAwMDAwMDAwMDAwMGUrMAorCS4uLmFuZCAxMTQwIG1vcmUgZXJyb3JzLgorCU1heCBB
YnNFcnJvciBvZiA1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTggYXQgaW5kZXggb2YgNzE1LgorCU1heCBS
ZWxFcnJvciBvZiAxLjE2NzE4MTE5OTA0NTI0NThlLTcgYXQgaW5kZXggb2YgMTE5ODkuCisJWzEx
OTg5XQk1LjEwNjcxNzk0NDE0NTIwMjZlLTEJNS4xMDY3MTczNDgwOTg3NTQ5ZS0xCTUuOTYwNDY0
NDc3NTM5MDYyNWUtOAkxLjE2NzE4MTE5OTA0NTI0NThlLTcJMC4wMDAwMDAwMDAwMDAwMDAwZSsw
CisgYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQ2FuY2VsbGlu
ZyAxc3QgbGluZWFyUmFtcDogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUg
Y29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKK1BBU1MgICBF
eHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyAxc3QgbGluZWFyUmFtcDogbGluZWFyUmFtcFRv
VmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBh
biBlcnJvciBvZiAwLiAKK1BBU1MgICAybmQgbGluZWFyUmFtcCgyLCAwLjUpIGVxdWFscyBbZXhw
ZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRl
VGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIENhbmNlbGxpbmcg
Mm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDEuMjU1MTAyMDM4MzgzNDgzOS4gCitQQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNh
bmNlbGxpbmcgMm5kIGxpbmVhclJhbXAoMiwgMC41KSBhdCB0aW1lIDAuMzc1IGlzIDEuMjU1MTAy
MDM4MzgzNDgzOSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4gCitQQVNTICAgM3JkIGxpbmVhclJhbXAo
MCwgMC41KSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xl
cmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAK
K0ZBSUwgPCBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIDEgb3V0IG9m
IDcgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlCitGQUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDcgb3V0IG9mIDE2IHRh
c2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWNh
bmNlbC1hbmQtaG9sZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLWNhbmNlbC1hbmQtaG9sZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxMTNlZWM2OWVmODkxZWIx
YWQ3ZmNiNmM1MmE0NmRhMTE1NDdiMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tY2FuY2VsLWFuZC1ob2xkLmh0bWwKQEAgLTAs
MCArMSw4MjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRs
ZT4KKyAgICAgIFRlc3QgQ2FuY2VsVmFsdWVzQW5kSG9sZEF0VGltZQorICAgIDwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5Pgor
ICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IHNhbXBsZVJhdGUg
PSA0ODAwMDsKKyAgICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IDAuNTsKKworICAgICAgbGV0IGF1
ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICAvLyBUaGUgZmlyc3QgZmV3
IHRhc2tzIHRlc3QgdGhlIGNhbmNlbGxhdGlvbiBvZiBlYWNoIHJlbGV2YW50IGF1dG9tYXRpb24K
KyAgICAgIC8vIGZ1bmN0aW9uLiAgRm9yIHRoZSB0ZXN0LCBhIHNpbXBsZSBsaW5lYXIgcmFtcCBm
cm9tIDAgdG8gMSBpcyB1c2VkIHRvCisgICAgICAvLyBzdGFydCB0aGluZ3Mgb2ZmLiAgVGhlbiB0
aGUgYXV0b21hdGlvbiB0byBiZSB0ZXN0ZWQgaXMgc2NoZWR1bGVkIGFuZAorICAgICAgLy8gY2Fu
Y2VsbGVkLgorCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAnbGluZWFy
JywgZGVzY3JpcHRpb246ICdDYW5jZWwgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnfSwKKyAgICAg
ICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hv
dWxkLCBsaW5lYXJSYW1wVGVzdCgnbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnKSwgeworICAgICAg
ICAgICAgICB2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LAorICAgICAgICAgICAgICBjdXJ2ZVRo
cmVzaG9sZDogMAorICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Cisg
ICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7bGFiZWw6ICdl
eHBvbmVudGlhbCcsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIGV4cG9uZW50aWFsUmFtcEF0VGltZSd9
LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgeworICAgICAgICAgICAgLy8gQ2Fu
Y2VsIGFuIGV4cG9uZW50aWFsIHJhbXAuICBUaGUgdGhyZXNob2xkcyBhcmUgZXhwZXJpbWVudGFs
bHkKKyAgICAgICAgICAgIC8vIGRldGVybWluZWQuCisgICAgICAgICAgICBjYW5jZWxUZXN0KHNo
b3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAgIC8v
IEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1
ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAs
IDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciByYW1wIHRvIHN0
YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1
ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAgICAvLyBBZnRlciB0aGUgbGluZWFyIHJh
bXAsIHNjaGVkdWxlIGFuIGV4cG9uZW50aWFsIHJhbXAgdG8gdGhlIGVuZC4KKyAgICAgICAgICAg
ICAgLy8gKFRoaXMgaXMgdGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBiZSBjYW5jZWxsZWQuKQorICAg
ICAgICAgICAgICBsZXQgdjEgPSAwLjAwMTsKKyAgICAgICAgICAgICAgbGV0IHQxID0gcmVuZGVy
RHVyYXRpb247CisKKyAgICAgICAgICAgICAgZ1swXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFs
dWVBdFRpbWUodjEsIHQxKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLmV4cG9uZW50aWFsUmFt
cFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKKworICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50
ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAgICB2MCAqIE1hdGgucG93KHYxIC8gdjAs
IChjYW5jZWxUaW1lIC0gdDApIC8gKHQxIC0gdDApKSk7CisgICAgICAgICAgICAgIHJldHVybiB7
CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKKyAg
ICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ2V4cG9uZW50aWFsUmFtcFRvVmFsdWUoJyArIHYx
ICsgJywgJyArIHQxICsgJyknLAorICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdleHBvbmVudGlh
bFJhbXBUb1ZhbHVlQXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sIHsK
KyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDEuODY2NGUtNiwKKyAgICAgICAgICAgICAg
Y3VydmVUaHJlc2hvbGQ6IDUuOTYwNWUtOAorICAgICAgICAgICAgfSkudGhlbih0YXNrLmRvbmUu
YmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAg
ICAgICB7bGFiZWw6ICdzZXRUYXJnZXQnLCBkZXNjcmlwdGlvbjogJ0NhbmNlbCBzZXRUYXJnZXRB
dFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAg
IC8vIENhbmNlbCBhIHNldFRhcmdldCBldmVudC4KKyAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hv
dWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAgICAgICAgICAgLy8g
SW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KKyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVl
QXRUaW1lKDAsIDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwg
MCk7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQgbGluZWFyIHJhbXAgdG8gc3Rh
cnQgdGhpbmdzIG9mZi4KKyAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVl
QXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1
ZUF0VGltZSh2MCwgdDApOworCisgICAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgdGhlIGxp
bmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFRhcmdldC4gIChUaGlzIGlzCisgICAgICAgICAgICAg
IC8vIHRoZSBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikKKyAgICAgICAgICAgICAgbGV0
IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IHQxID0gdDA7CisgICAgICAgICAgICAgIGxldCB0
aW1lQ29uc3RhbnQgPSAwLjA1OworCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRB
dFRpbWUodjEsIHQxLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0
VGFyZ2V0QXRUaW1lKHYxLCB0MSwgdGltZUNvbnN0YW50KTsKKworICAgICAgICAgICAgICBleHBl
Y3RlZENvbnN0YW50ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAgICB2MSArICh2MCAt
IHYxKSAqIE1hdGguZXhwKC0oY2FuY2VsVGltZSAtIHQwKSAvIHRpbWVDb25zdGFudCkpOworICAg
ICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4
cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01lc3NhZ2U6ICdzZXRUYXJnZXRB
dFRpbWUoJyArIHYxICsgJywgJyArIHQxICsgJywgJyArCisgICAgICAgICAgICAgICAgICAgIHRp
bWVDb25zdGFudCArICcpJywKKyAgICAgICAgICAgICAgICBzdW1tYXJ5OiAnc2V0VGFyZ2V0QXRU
aW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0sIHsKKyAgICAgICAgICAgICAg
dmFsdWVUaHJlc2hvbGQ6IDQuNTI2N2UtNywgIC8vIDEuMTMxN2UtNywKKyAgICAgICAgICAgICAg
Y3VydmVUaHJlc2hvbGQ6IDAKKyAgICAgICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFz
aykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoCisgICAgICAgICAge2xh
YmVsOiAnc2V0VmFsdWVDdXJ2ZScsIGRlc2NyaXB0aW9uOiAnQ2FuY2VsIHNldFZhbHVlQ3VydmVB
dFRpbWUnfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAg
IC8vIENhbmNlbCBhIHNldFZhbHVlQ3VydmUgZXZlbnQuCisgICAgICAgICAgICBjYW5jZWxUZXN0
KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7CisgICAgICAgICAgICAg
IC8vIEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRW
YWx1ZUF0VGltZSgwLCAwKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1l
KDAsIDApOworICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciByYW1wIHRv
IHN0YXJ0IHRoaW5ncyBvZmYuCisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9W
YWx1ZUF0VGltZSh2MCwgdDApOworICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRv
VmFsdWVBdFRpbWUodjAsIHQwKTsKKworICAgICAgICAgICAgICAvLyBBZnRlciB0aGUgbGluZWFy
IHJhbXAsIHNjaGVkdWxlIGEgc2V0VmFsdWVzQ3VydmUuIChUaGlzIGlzIHRoZQorICAgICAgICAg
ICAgICAvLyBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikKKyAgICAgICAgICAgICAgbGV0
IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gcmVuZGVyRHVyYXRpb24gLSB0
MDsKKworICAgICAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwgYSAyLXBvaW50IGN1cnZlIHNv
IHdlIGdldCBhIGxpbmVhciBpbnRlcnBvbGF0ZWQKKyAgICAgICAgICAgICAgLy8gcmVzdWx0Lgor
ICAgICAgICAgICAgICBsZXQgY3VydmUgPSBGbG9hdDMyQXJyYXkuZnJvbShbdjAsIDBdKTsKKwor
ICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAsIGR1
cmF0aW9uKTsKKyAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUoY3Vy
dmUsIHQwLCBkdXJhdGlvbik7CisKKyAgICAgICAgICAgICAgbGV0IGluZGV4ID0KKyAgICAgICAg
ICAgICAgICAgIE1hdGguZmxvb3IoKGN1cnZlLmxlbmd0aCAtIDEpIC8gZHVyYXRpb24gKiAoY2Fu
Y2VsVGltZSAtIHQwKSk7CisKKyAgICAgICAgICAgICAgbGV0IGN1cnZlUG9pbnRzUGVyRnJhbWUg
PQorICAgICAgICAgICAgICAgICAgKGN1cnZlLmxlbmd0aCAtIDEpIC8gZHVyYXRpb24gLyBzYW1w
bGVSYXRlOworICAgICAgICAgICAgICBsZXQgdmlydHVhbEluZGV4ID0KKyAgICAgICAgICAgICAg
ICAgIChjYW5jZWxUaW1lIC0gdDApICogc2FtcGxlUmF0ZSAqIGN1cnZlUG9pbnRzUGVyRnJhbWU7
CisKKyAgICAgICAgICAgICAgbGV0IGRlbHRhID0gdmlydHVhbEluZGV4IC0gaW5kZXg7CisgICAg
ICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPSBjdXJ2ZVswXSArIChjdXJ2ZVsxXSAtIGN1cnZl
WzBdKSAqIGRlbHRhOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGV4
cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgYXV0b01l
c3NhZ2U6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lKFsnICsgY3VydmUgKyAnXSwgJyArIHQwICsKKyAg
ICAgICAgICAgICAgICAgICAgJywgJyArIGR1cmF0aW9uICsgJyknLAorICAgICAgICAgICAgICAg
IHN1bW1hcnk6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lJywKKyAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDkuNTM2OGUtOSwKKyAg
ICAgICAgICAgICAgY3VydmVUaHJlc2hvbGQ6IDAKKyAgICAgICAgICAgIH0pLnRoZW4odGFzay5k
b25lLmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoCisg
ICAgICAgICAgeworICAgICAgICAgICAgbGFiZWw6ICdzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZCcs
CisgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lIGFm
dGVyIHRoZSBlbmQnCisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91
bGQpIHsKKyAgICAgICAgICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAs
IGNhbmNlbFRpbWUpIHsKKyAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4K
KyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICAg
ICAgICBnWzFdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgICAgIC8vIFNj
aGVkdWxlIGEgc2hvcnQgbGluZWFyIHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KKyAgICAgICAg
ICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAg
ICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOworCisgICAg
ICAgICAgICAgIC8vIEFmdGVyIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYSBzZXRWYWx1ZXND
dXJ2ZS4gKFRoaXMgaXMgdGhlCisgICAgICAgICAgICAgIC8vIGV2ZW50IHRoYXQgd2lsbCBiZSBj
YW5jZWxsZWQuKSAgTWFrZSBzdXJlIHRoZSBjdXJ2ZSBlbmRzIGJlZm9yZQorICAgICAgICAgICAg
ICAvLyB0aGUgY2FuY2VsbGF0aW9uIHRpbWUuCisgICAgICAgICAgICAgIGxldCB2MSA9IDA7Cisg
ICAgICAgICAgICAgIGxldCBkdXJhdGlvbiA9IGNhbmNlbFRpbWUgLSB0MCAtIDAuMTI1OworCisg
ICAgICAgICAgICAgIC8vIEZvciBzaW1wbGljaXR5LCBhIDItcG9pbnQgY3VydmUgc28gd2UgZ2V0
IGEgbGluZWFyIGludGVycG9sYXRlZAorICAgICAgICAgICAgICAvLyByZXN1bHQuCisgICAgICAg
ICAgICAgIGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFt2MCwgMF0pOworCisgICAgICAg
ICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24p
OworICAgICAgICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgdDAs
IGR1cmF0aW9uKTsKKworICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gY3VydmVbMV07
CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFu
dDogZXhwZWN0ZWRDb25zdGFudCwKKyAgICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ3NldFZh
bHVlQ3VydmVBdFRpbWUoWycgKyBjdXJ2ZSArICddLCAnICsgdDAgKworICAgICAgICAgICAgICAg
ICAgICAnLCAnICsgZHVyYXRpb24gKyAnKScsCisgICAgICAgICAgICAgICAgc3VtbWFyeTogJ3Nl
dFZhbHVlQ3VydmVBdFRpbWUnLAorICAgICAgICAgICAgICB9OworICAgICAgICAgICAgfSwgewor
ICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogMCwKKyAgICAgICAgICAgICAgY3VydmVUaHJl
c2hvbGQ6IDAKKyAgICAgICAgICAgIH0pLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAg
ICAgICAgIH0pOworCisgICAgICAvLyBTcGVjaWFsIGNhc2Ugd2hlcmUgd2Ugc2NoZWR1bGUgYSBz
ZXRUYXJnZXQgYW5kIHRoZXJlIGlzIG5vIGVhcmxpZXIKKyAgICAgIC8vIGF1dG9tYXRpb24gZXZl
bnQuICBUaGlzIHRlc3RzIHRoYXQgd2UgcGljayB1cCB0aGUgc3RhcnRpbmcgcG9pbnQKKyAgICAg
IC8vIGNvcnJlY3RseSBmcm9tIHRoZSBsYXN0IHNldHRpbmcgb2YgdGhlIEF1ZGlvUGFyYW0gdmFs
dWUgYXR0cmlidXRlLgorCisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAg
ICAgICAgICBsYWJlbDogJ2luaXRpYWwgc2V0VGFyZ2V0JywKKyAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiAnQ2FuY2VsIHdpdGggaW5pdGlhbCBzZXRUYXJnZXRBdFRpbWUnCisgICAgICAgICAgfSwK
KyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKyAgICAgICAgICAgIGNhbmNlbFRl
c3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKKyAgICAgICAgICAg
ICAgbGV0IHYxID0gMDsKKyAgICAgICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMTsKKyAg
ICAgICAgICAgICAgZ1swXS5nYWluLnZhbHVlID0gMTsKKyAgICAgICAgICAgICAgZ1swXS5nYWlu
LnNldFRhcmdldEF0VGltZSh2MSwgdDAsIHRpbWVDb25zdGFudCk7CisgICAgICAgICAgICAgIGdb
MV0uZ2Fpbi52YWx1ZSA9IDE7CisgICAgICAgICAgICAgIGdbMV0uZ2Fpbi5zZXRUYXJnZXRBdFRp
bWUodjEsIHQwLCB0aW1lQ29uc3RhbnQpOworCisgICAgICAgICAgICAgIGxldCBleHBlY3RlZENv
bnN0YW50ID0gTWF0aC5mcm91bmQoCisgICAgICAgICAgICAgICAgICB2MSArICh2MCAtIHYxKSAq
IE1hdGguZXhwKC0oY2FuY2VsVGltZSAtIHQwKSAvIHRpbWVDb25zdGFudCkpOworCisgICAgICAg
ICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDogZXhwZWN0
ZWRDb25zdGFudCwKKyAgICAgICAgICAgICAgICBhdXRvTWVzc2FnZTogJ3NldFRhcmdldEF0VGlt
ZSgnICsgdjEgKyAnLCAnICsgdDAgKyAnLCAnICsKKyAgICAgICAgICAgICAgICAgICAgdGltZUNv
bnN0YW50ICsgJyknLAorICAgICAgICAgICAgICAgIHN1bW1hcnk6ICdJbml0aWFsIHNldFRhcmdl
dEF0VGltZScsCisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9LCB7CisgICAgICAgICAg
ICAgIHZhbHVlVGhyZXNob2xkOiAxLjIzMjBlLTYsCisgICAgICAgICAgICAgIGN1cnZlVGhyZXNo
b2xkOiAwCisgICAgICAgICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAg
ICAgICB9KTsKKworICAgICAgLy8gVGVzdCBhdXRvbWF0aW9ucyBzY2hlZHVsZWQgYWZ0ZXIgdGhl
IGNhbGwgdG8gY2FuY2VsQW5kSG9sZEF0VGltZS4KKyAgICAgIC8vIFZlcnkgc2ltaWxhciB0byB0
aGUgYWJvdmUgdGVzdHMsIGJ1dCB3ZSBhbHNvIHNjaGVkdWxlIGFuIGV2ZW50IGFmdGVyCisgICAg
ICAvLyBjYW5jZWxBbmRIb2xkQXRUaW1lIGFuZCB2ZXJpZnkgdGhhdCBjdXJ2ZSBhZnRlciBjYW5j
ZWxsYXRpb24gaGFzCisgICAgICAvLyB0aGUgY29ycmVjdCB2YWx1ZXMuCisKKyAgICAgIGF1ZGl0
LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ3Bvc3QgY2FuY2VsOiBM
aW5lYXInLAorICAgICAgICAgICAgZGVzY3JpcHRpb246ICdMaW5lYXJSYW1wIGFmdGVyIGNhbmNl
bGxpbmcnCisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsK
KyAgICAgICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFz
IHRoZSBldmVudCB0byBiZQorICAgICAgICAgICAgLy8gY2FuY2VsbGVkLiBUaGVuIHNjaGVkdWxl
IGFub3RoZXIgbGluZWFyIHJhbXAgYWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBjYW5jZWxsYXRp
b24uCisgICAgICAgICAgICBjYW5jZWxUZXN0KAorICAgICAgICAgICAgICAgIHNob3VsZCwKKyAg
ICAgICAgICAgICAgICBsaW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWxsYXRpb24gbGluZWFyUmFt
cFRvVmFsdWVBdFRpbWUnKSwKKyAgICAgICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5
OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNh
bmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgICAgIC8vIFNjaGVk
dWxlIHRoZSBsaW5lYXIgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yIGdbMl0sCisg
ICAgICAgICAgICAgICAgICAvLyB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhw
ZWN0ZWRDb25zdGFudC4KKyAgICAgICAgICAgICAgICAgIGxldCB2MiA9IDI7CisgICAgICAgICAg
ICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7CisgICAgICAgICAgICAgICAgICBn
WzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAgICAgICAg
ICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1l
KTsKKyAgICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2
MiwgdDIpOworICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICAgICAg
Y29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
OiAnUG9zdCBsaW5lYXJSYW1wKCcgKyB2MiArICcsICcgKyB0MiArICcpJworICAgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVuKHRhc2su
ZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKAor
ICAgICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAncG9zdCBjYW5jZWw6IEV4cG9uZW50aWFs
JywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnRXhwb25lbnRpYWxSYW1wIGFmdGVyIGNhbmNl
bGxpbmcnCisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsK
KyAgICAgICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFz
IHRoZSBldmVudCB0byBiZQorICAgICAgICAgICAgLy8gY2FuY2VsbGVkLiBUaGVuIHNjaGVkdWxl
IGFuIGV4cG9uZW50aWFsIHJhbXAgYWZ0ZXIgdGhlCisgICAgICAgICAgICAvLyBjYW5jZWxsYXRp
b24uCisgICAgICAgICAgICBjYW5jZWxUZXN0KAorICAgICAgICAgICAgICAgIHNob3VsZCwKKyAg
ICAgICAgICAgICAgICBsaW5lYXJSYW1wVGVzdCgnUG9zdCBjYW5jZWwgZXhwb25lbnRpYWxSYW1w
VG9WYWx1ZUF0VGltZScpLAorICAgICAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4zOTk4
ZS01LCBjdXJ2ZVRocmVzaG9sZDogMH0sCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oZywgY2Fu
Y2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCkgeworICAgICAgICAgICAgICAgICAgLy8gU2NoZWR1
bGUgdGhlIGV4cG9uZW50aWFsIHJhbXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvcgorICAg
ICAgICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5
IGV4cGVjdGVkQ29uc3RhbnQuCisgICAgICAgICAgICAgICAgICBsZXQgdjIgPSAyOworICAgICAg
ICAgICAgICAgICAgbGV0IHQyID0gY2FuY2VsVGltZSArIDAuMTI1OworICAgICAgICAgICAgICAg
ICAgZ1swXS5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAg
ICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBj
YW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5leHBvbmVudGlhbFJhbXBU
b1ZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUsCisgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U6ICdQb3N0IGV4cG9uZW50aWFsUmFtcCgnICsgdjIgKyAnLCAnICsgdDIg
KyAnKScKKyAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAg
ICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICAgICAgfSk7CisKKyAg
ICAgIGF1ZGl0LmRlZmluZSgncG9zdCBjYW5jZWw6IFZhbHVlQ3VydmUnLCBmdW5jdGlvbih0YXNr
LCBzaG91bGQpIHsKKyAgICAgICAgLy8gUnVuIHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxpbmVh
clJhbXAgYXMgdGhlIGV2ZW50IHRvIGJlIGNhbmNlbGxlZC4KKyAgICAgICAgLy8gVGhlbiBzY2hl
ZHVsZSBhIHNldFZhbHVlQ3VydmUgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4KKyAgICAgICAgY2Fu
Y2VsVGVzdCgKKyAgICAgICAgICAgIHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2FuY2Vs
IHNldFZhbHVlQ3VydmVBdFRpbWUnKSwKKyAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogOC4z
OTk4ZS01LCBjdXJ2ZVRocmVzaG9sZDogMH0sCisgICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5j
ZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7CisgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRo
ZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IKKyAgICAgICAg
ICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5IGV4cGVjdGVk
Q29uc3RhbnQuCisgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKKyAg
ICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gMC4xMjU7CisgICAgICAgICAgICAgIGxldCBjdXJ2
ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFsuMTI1LCAyXSk7CisgICAgICAgICAgICAgIGdbMF0uZ2Fp
bi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MiwgZHVyYXRpb24pOworICAgICAgICAgICAg
ICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7
CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0Miwg
ZHVyYXRpb24pOworICAgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbnN0
YW50RW5kVGltZTogY2FuY2VsVGltZSwKKyAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBz
ZXRWYWx1ZUN1cnZlKFsnICsgY3VydmUgKyAnXSwgJyArIHQyICsgJywgJyArCisgICAgICAgICAg
ICAgICAgICAgIGR1cmF0aW9uICsgJyknLAorICAgICAgICAgICAgICAgIGVycm9yVGhyZXNob2xk
OiA4LjM5OThlLTUKKyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQu
ZGVmaW5lKCdwb3N0IGNhbmNlbDogc2V0VGFyZ2V0JywgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7
CisgICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRo
ZSBldmVudCB0byBiZSBjYW5jZWxsZWQuCisgICAgICAgIC8vIFRoZW4gc2NoZWR1bGUgYSBzZXRU
YXJnZXQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4KKyAgICAgICAgY2FuY2VsVGVzdCgKKyAgICAg
ICAgICAgIHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2FuY2VsIHNldFRhcmdldEF0VGlt
ZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNo
b2xkOiAwfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29u
c3RhbnQpIHsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGV4cG9uZW50aWFsIHJhbXAg
b24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvcgorICAgICAgICAgICAgICAvLyBnWzJdLCB1c2lu
ZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25zdGFudC4KKyAgICAgICAg
ICAgICAgbGV0IHYyID0gMC4xMjU7CisgICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUg
KyAwLjEyNTsKKyAgICAgICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMTsKKyAgICAgICAg
ICAgICAgZ1swXS5nYWluLnNldFRhcmdldEF0VGltZSh2MiwgdDIsIHRpbWVDb25zdGFudCk7Cisg
ICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShleHBlY3RlZENvbnN0YW50LCBj
YW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFRhcmdldEF0VGltZSh2Miwg
dDIsIHRpbWVDb25zdGFudCk7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAg
ICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lICsgMC4xMjUsCisgICAgICAgICAgICAgICAg
bWVzc2FnZTogJ1Bvc3Qgc2V0VGFyZ2V0QXRUaW1lKCcgKyB2MiArICcsICcgKyB0MiArICcsICcg
KworICAgICAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAgICAgICAgICAg
ICAgZXJyb3JUaHJlc2hvbGQ6IDguNDAzN2UtNQorICAgICAgICAgICAgICB9OworICAgICAgICAg
ICAgfSkKKyAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0p
OworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBzZXRWYWx1ZScsIGZ1bmN0aW9u
KHRhc2ssIHNob3VsZCkgeworICAgICAgICAvLyBSdW4gdGhlIGNhbmNlbCB0ZXN0IHVzaW5nIGEg
bGluZWFyUmFtcCBhcyB0aGUgZXZlbnQgdG8gYmUgY2FuY2VsbGVkLgorICAgICAgICAvLyBUaGVu
IHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCisgICAgICAgIGNh
bmNlbFRlc3QoCisgICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNl
bCBzZXRWYWx1ZUF0VGltZScpLAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThl
LTUsIGN1cnZlVGhyZXNob2xkOiAwfSwKKyAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRp
bWUsIGV4cGVjdGVkQ29uc3RhbnQpIHsKKyAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGV4
cG9uZW50aWFsIHJhbXAgb24gZ1swXSwgYW5kIGRvIHRoZSBzYW1lIGZvcgorICAgICAgICAgICAg
ICAvLyBnWzJdLCB1c2luZyB0aGUgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gYnkgZXhwZWN0ZWRDb25z
dGFudC4KKyAgICAgICAgICAgICAgbGV0IHYyID0gMC4xMjU7CisgICAgICAgICAgICAgIGxldCB0
MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKKyAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVl
QXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZShl
eHBlY3RlZENvbnN0YW50LCBjYW5jZWxUaW1lKTsKKyAgICAgICAgICAgICAgZ1syXS5nYWluLnNl
dFZhbHVlQXRUaW1lKHYyLCB0Mik7CisgICAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lICsgMC4xMjUsCisgICAgICAgICAgICAg
ICAgbWVzc2FnZTogJ1Bvc3Qgc2V0VmFsdWVBdFRpbWUoJyArIHYyICsgJywgJyArIHQyICsgJykn
CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4odGFz
ay5kb25lLmJpbmQodGFzaykpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnY2Fu
Y2VsIGZ1dHVyZSBzZXRUYXJnZXQnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0
IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVy
RHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0g
bmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29u
dGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgw
LjUsIDApOworICAgICAgICBzcmMub2Zmc2V0LnNldFRhcmdldEF0VGltZSgwLCAwLjc1ICogcmVu
ZGVyRHVyYXRpb24sIDAuMSk7CisgICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0
aGUgc2V0VGFyZ2V0LgorICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41
ICogcmVuZGVyRHVyYXRpb24pOworCisgICAgICAgIHNyYy5zdGFydCgpOworICAgICAgICBjb250
ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7CisgICAg
ICAgICAgICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAg
ICAgICAgIC8vIEJlY2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0
IHNob3VsZCBiZSBhCisgICAgICAgICAgICAgIC8vIGNvbnN0YW50LgorICAgICAgICAgICAgICBz
aG91bGQoYWN0dWFsLCAnQWZ0ZXIgY2FuY2VsbGluZyBmdXR1cmUgc2V0VGFyZ2V0IGV2ZW50LCBv
dXRwdXQnKQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7CisgICAg
ICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOworICAg
ICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnY2FuY2VsIHNldFRhcmdldCBub3cnLCAodGFz
aywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3
IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1w
bGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShjb250
ZXh0KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAg
ICAgc3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUsIDApOworICAgICAgICBzcmMub2Zmc2V0
LnNldFRhcmdldEF0VGltZSgwLCAwLjUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAgICAg
Ly8gTm93IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCisgICAgICAgIHNyYy5v
ZmZzZXQuY2FuY2VsQW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7CisKKyAgICAg
ICAgc3JjLnN0YXJ0KCk7CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAg
ICAgICAgLnRoZW4oYnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZl
ci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0VGFy
Z2V0IHdhcyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgICAgICAgICAg
Ly8gY29uc3RhbnQuCisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgIGFj
dHVhbCwKKyAgICAgICAgICAgICAgICAgICdBZnRlciBjYW5jZWxsaW5nIHNldFRhcmdldCBldmVu
dCBzdGFydGluZyBub3csIG91dHB1dCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZh
bHVlT2YoMC41KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUu
YmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgZnV0
dXJlIHNldFZhbHVlQ3VydmUnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGNvbnN0IGNv
bnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVy
YXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgY29uc3Qgc3JjID0gbmV3
IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0KTsKKyAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4
dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUs
IDApOworICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVlQ3VydmVBdFRpbWUoWy0xLCAxXSwgMC43
NSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOworICAgICAgICAvLyBOb3cgY2FuY2VsIHRoZSBlZmZl
Y3Qgb2YgdGhlIHNldFRhcmdldC4KKyAgICAgICAgc3JjLm9mZnNldC5jYW5jZWxBbmRIb2xkQXRU
aW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICBzcmMuc3RhcnQoKTsKKyAgICAg
ICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAgICAudGhlbihidWZmZXIgPT4g
eworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOwor
ICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJnZXQgd2FzIGNhbmNlbGxlZCwgdGhl
IG91dHB1dCBzaG91bGQgYmUgYQorICAgICAgICAgICAgICAvLyBjb25zdGFudC4KKyAgICAgICAg
ICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgYWN0dWFsLCAnQWZ0ZXIgY2FuY2VsbGlu
ZyBmdXR1cmUgc2V0VmFsdWVDdXJ2ZSBldmVudCwgb3V0cHV0JykKKyAgICAgICAgICAgICAgICAg
IC5iZUNvbnN0YW50VmFsdWVPZigwLjUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50
aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZp
bmUoJ2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vdycsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgx
LCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgICAgICBjb25z
dCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNvbnRleHQpOworICAgICAgICBzcmMuY29u
bmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBzcmMub2Zmc2V0LnNldFZhbHVl
QXRUaW1lKDAuNSwgMCk7CisgICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVDdXJ2ZUF0VGltZShb
LTEsIDFdLCAwLjUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKKyAgICAgICAgLy8gTm93IGNhbmNl
bCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCisgICAgICAgIHNyYy5vZmZzZXQuY2FuY2Vs
QW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7CisKKyAgICAgICAgc3JjLnN0YXJ0
KCk7CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4o
YnVmZmVyID0+IHsKKyAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVs
RGF0YSgwKTsKKyAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0VGFyZ2V0IHdhcyBjYW5j
ZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgICAgICAgICAgLy8gY29uc3RhbnQu
CisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgIGFjdHVhbCwKKyAgICAg
ICAgICAgICAgICAgICdBZnRlciBjYW5jZWxsaW5nIGN1cnJlbnQgc2V0VmFsdWVDdXJ2ZSBldmVu
dCBzdGFydGluZyBub3csIG91dHB1dCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZh
bHVlT2YoMC41KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbih0YXNrLmRvbmUu
YmluZCh0YXNrKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAgICB7
CisgICAgICAgICAgbGFiZWw6ICdsaW5lYXIsIGNhbmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVh
cicsCisgICAgICAgICAgZGVzY3JpcHRpb246ICdTY2hlZHVsZXMgMyBsaW5lYXIgcmFtcHMsIGNh
bmNlbGxpbmcgMiBvZiB0aGVtLCAnCisgICAgICAgICAgICArICdzbyB0aGF0IHdlIGVuZCB1cCB3
aXRoIDIgY2FuY2VsIGV2ZW50cyBuZXh0IHRvIGVhY2ggb3RoZXInCisgICAgICAgIH0sCisgICAg
ICAgICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgICBjYW5jZWxUZXN0MigKKyAgICAgICAg
ICAgIHNob3VsZCwKKyAgICAgICAgICAgIGxpbmVhclJhbXBUZXN0KCcxc3QgbGluZWFyUmFtcCcp
LAorICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiAwLCBjdXJ2ZVRocmVzaG9sZDogMH0sCisg
ICAgICAgICAgICAoZywgY2FuY2VsVGltZSwgZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZTIp
ID0+IHsKKyAgICAgICAgICAgICAgLy8gUmFtcCBmcm9tIGZpcnN0IGNhbmNlbCB0aW1lIHRvIHRo
ZSBlbmQgd2lsbCBiZSBjYW5jZWxsZWQgYXQKKyAgICAgICAgICAgICAgLy8gc2Vjb25kIGNhbmNl
bCB0aW1lLgorICAgICAgICAgICAgICBjb25zdCB2MSA9IGV4cGVjdGVkQ29uc3RhbnQ7CisgICAg
ICAgICAgICAgIGNvbnN0IHQxID0gY2FuY2VsVGltZTsKKyAgICAgICAgICAgICAgY29uc3QgdjIg
PSAyOworICAgICAgICAgICAgICBjb25zdCB0MiA9IHJlbmRlckR1cmF0aW9uOworICAgICAgICAg
ICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsKKyAgICAgICAg
ICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKHYxLCB0MSk7CisgICAgICAgICAgICAgIGdb
Ml0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOworCisgICAgICAgICAgICAg
IGNvbnN0IGV4cGVjdGVkQ29uc3RhbnQyID0KKyAgICAgICAgICAgICAgICBhdWRpb1BhcmFtTGlu
ZWFyUmFtcChjYW5jZWxUaW1lMiwgdjEsIHQxLCB2MiwgdDIpOworCisgICAgICAgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lLAorICAg
ICAgICAgICAgICAgIG1lc3NhZ2U6IGAybmQgbGluZWFyUmFtcCgke3YyfSwgJHt0Mn0pYCwKKyAg
ICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50MgorICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIChnLCBjYW5jZWxUaW1lMiwgZXhwZWN0ZWRDb25zdGFudDIp
ID0+IHsKKyAgICAgICAgICAgICAgLy8gUmFtcCBmcm9tIHNlY29uZCBjYW5jZWwgdGltZSB0byB0
aGUgZW5kLgorICAgICAgICAgICAgICBjb25zdCB2MyA9IDA7CisgICAgICAgICAgICAgIGNvbnN0
IHQzID0gcmVuZGVyRHVyYXRpb247CisgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1w
VG9WYWx1ZUF0VGltZSh2MywgdDMpOworICAgICAgICAgICAgICBnWzNdLmdhaW4uc2V0VmFsdWVB
dFRpbWUoZXhwZWN0ZWRDb25zdGFudDIsIGNhbmNlbFRpbWUyKTsKKyAgICAgICAgICAgICAgZ1sz
XS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYzLCB0Myk7CisgICAgICAgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICAgICAgY29uc3RhbnRFbmRUaW1lMjogY2FuY2VsVGltZTIsCisg
ICAgICAgICAgICAgICAgbWVzc2FnZTI6IGAzcmQgbGluZWFyUmFtcCgke3YzfSwgJHt0M30pYCwK
KyAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9
PiB0YXNrLmRvbmUoKSk7CisgICAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKworICAg
ICAgLy8gQ29tbW9uIGZ1bmN0aW9uIGZvciBkb2luZyBhIGxpbmVhclJhbXAgdGVzdC4gIFRoaXMg
anVzdCBkb2VzIGEgbGluZWFyCisgICAgICAvLyByYW1wIGZyb20gMCB0byB2MCBhdCBmcm9tIHRp
bWUgMCB0byB0MC4gIFRoZW4gYW5vdGhlciBsaW5lYXIgcmFtcCBpcworICAgICAgLy8gc2NoZWR1
bGVkIGZyb20gdjAgdG8gMCBmcm9tIHRpbWUgdDAgdG8gdDEuICBUaGlzIGlzIHRoZSByYW1wIHRo
YXQgaXMgdG8KKyAgICAgIC8vIGJlIGNhbmNlbGxlZC4KKyAgICAgIGZ1bmN0aW9uIGxpbmVhclJh
bXBUZXN0KG1lc3NhZ2UpIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2Fu
Y2VsVGltZSkgeworICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKKyAg
ICAgICAgICBnWzFdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgICAgZ1swXS5n
YWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisgICAgICAgICAgZ1sxXS5nYWlu
LmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7CisKKyAgICAgICAgICBsZXQgdjEgPSAw
OworICAgICAgICAgIGxldCB0MSA9IHJlbmRlckR1cmF0aW9uOworICAgICAgICAgIGdbMF0uZ2Fp
bi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEpOworICAgICAgICAgIGdbMV0uZ2Fpbi5s
aW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEpOworCisgICAgICAgICAgZXhwZWN0ZWRDb25z
dGFudCA9CisgICAgICAgICAgICAgIE1hdGguZnJvdW5kKHYwICsgKHYxIC0gdjApICogKGNhbmNl
bFRpbWUgLSB0MCkgLyAodDEgLSB0MCkpOworCisgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAg
ICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICBhdXRv
TWVzc2FnZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlICsgJzogbGluZWFyUmFtcFRvVmFsdWUo
JyArIHYxICsgJywgJyArIHQxICsgJyknLAorICAgICAgICAgICAgc3VtbWFyeTogbWVzc2FnZSwK
KyAgICAgICAgICB9OworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIFJ1biB0aGUgY2Fu
Y2VsbGF0aW9uIHRlc3QuIEEgc2V0IG9mIGF1dG9tYXRpb25zIGlzIGNyZWF0ZWQgYW5kCisgICAg
ICAvLyBjYW5jZWxlZC4KKyAgICAgIC8vCisgICAgICAvLyB8dGVzdGVyRnVuY3Rpb258IGlzIGEg
ZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGF1dG9tYXRpb24gdG8gYmUKKyAgICAgIC8vIHRl
c3RlZC4gIEl0IGlzIGdpdmVuIGFuIGFycmF5IG9mIDMgZ2FpbiBub2RlcywgdGhlIHZhbHVlIGFu
ZCB0aW1lIG9mIGFuCisgICAgICAvLyBpbml0aWFsIGxpbmVhciByYW1wLCBhbmQgdGhlIHRpbWUg
d2hlcmUgdGhlIGNhbmNlbGxhdGlvbiBzaG91bGQgb2NjdXIuCisgICAgICAvLyBUaGUgZnVuY3Rp
b24gbXVzdCBkbyB0aGUgYXV0b21hdGlvbnMgZm9yIHRoZSBmaXJzdCB0d28gZ2FpbiBub2Rlcy4g
IEl0CisgICAgICAvLyBtdXN0IHJldHVybiBhIGRpY3Rpb25hcnkgd2l0aCB8ZXhwZWN0ZWRDb25z
dGFudHwgYmVpbmcgdGhlIHZhbHVlIGF0IHRoZQorICAgICAgLy8gY2FuY2VsbGF0aW9uIHRpbWUs
IHxhdXRvTWVzc2FnZXwgZm9yIG1lc3NhZ2UgdG8gZGVzY3JpYmUgdGhlIHRlc3QsIGFuZAorICAg
ICAgLy8gfHN1bW1hcnl8IGZvciBnZW5lcmFsIHN1bW1hcnkgbWVzc2FnZSB0byBiZSBwcmludGVk
IGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAvLyB0ZXN0LgorICAgICAgLy8KKyAgICAgIC8vIHx0
aHJlc2hvbGRPcHRpb25zfCBpcyBhIHByb3BlcnR5IGJhZyB0aGF0IHNwZWNpZmllcyB0aGUgZXJy
b3IgdGhyZXNob2xkCisgICAgICAvLyB0byB1c2UuIHx0aHJlc2hvbGRPcHRpb25zLnZhbHVlVGhy
ZXNob2xkfCBpcyB0aGUgZXJyb3IgdGhyZXNob2xkIGZvcgorICAgICAgLy8gY29tcGFyaW5nIHRo
ZSBhY3R1YWwgY29uc3RhbnQgb3V0cHV0IGFmdGVyIGNhbmNlbGxpbmcgdG8gdGhlIGV4cGVjdGVk
CisgICAgICAvLyB2YWx1ZS4gIHx0aHJlc2hvbGRPcHRpb25zLmN1cnZlVGhyZXNob2xkfCBpcyB0
aGUgZXJyb3IgdGhyZXNob2xkIGZvcgorICAgICAgLy8gY29tcGFyaW5nIHRoZSBhY3R1YWwgYW5k
IGV4cGVjdGVkIGF1dG9tYXRpb24gY3VydmVzIGJlZm9yZSB0aGUKKyAgICAgIC8vIGNhbmNlbGF0
aW9uIHBvaW50LgorICAgICAgLy8KKyAgICAgIC8vIEZvciBjYW5jZWxsYXRpb24gdGVzdHMsIHxw
b3N0Q2FuY2VsVGVzdHwgaXMgYSBmdW5jdGlvbiB0aGF0IHNjaGVkdWxlcworICAgICAgLy8gc29t
ZSBhdXRvbWF0aW9uIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uICBJdCB0YWtlcyAzIGFyZ3VtZW50
czogYW4gYXJyYXkKKyAgICAgIC8vIG9mIHRoZSBnYWluIG5vZGVzLCB0aGUgY2FuY2VsbGF0aW9u
IHRpbWUsIGFuZCB0aGUgZXhwZWN0ZWQgdmFsdWUgYXQgdGhlCisgICAgICAvLyBjYW5jZWxsYXRp
b24gdGltZS4gIFRoaXMgZnVuY3Rpb24gbXVzdCByZXR1cm4gYSBkaWN0aW9uYXJ5IGNvbnNpc3Rp
bmcKKyAgICAgIC8vIG9mIHxjb25zdGFudEVuZHRpbWV8IGluZGljYXRpbmcgd2hlbiB0aGUgaGVs
ZCBjb25zdGFudCBmcm9tCisgICAgICAvLyBjYW5jZWxsYXRpb24gc3RvcHMgYmVpbmcgY29uc3Rh
bnQsIHxtZXNzYWdlfCBnaXZpbmcgYSBzdW1tYXJ5IG9mIHdoYXQKKyAgICAgIC8vIGF1dG9tYXRp
b24gaXMgYmVpbmcgdXNlZCwgYW5kIHxlcnJvclRocmVzaG9sZHwgdGhhdCBpcyB0aGUgZXJyb3IK
KyAgICAgIC8vIHRocmVzaG9sZCBiZXR3ZWVuIHRoZSBleHBlY3RlZCBjdXJ2ZSBhbmQgdGhlIGFj
dHVhbCBjdXJ2ZS4KKyAgICAgIC8vCisgICAgICBmdW5jdGlvbiBjYW5jZWxUZXN0KAorICAgICAg
ICAgIHNob3VsZCwgdGVzdGVyRnVuY3Rpb24sIHRocmVzaG9sZE9wdGlvbnMsIHBvc3RDYW5jZWxU
ZXN0KSB7CisgICAgICAgIC8vIENyZWF0ZSBhIGNvbnRleHQgd2l0aCB0aHJlZSBjaGFubmVscy4g
IENoYW5uZWwgMCBpcyB0aGUgdGVzdCBjaGFubmVsCisgICAgICAgIC8vIGNvbnRhaW5pbmcgdGhl
IGFjdHVhbCBvdXRwdXQgdGhhdCBpbmNsdWRlcyB0aGUgY2FuY2VsbGF0aW9uIG9mCisgICAgICAg
IC8vIGV2ZW50cy4gIENoYW5uZWwgMSBpcyB0aGUgZXhwZWN0ZWQgZGF0YSB1cHRvIHRoZSBjYW5j
ZWxsYXRpb24gc28gd2UKKyAgICAgICAgLy8gY2FuIHZlcmlmeSB0aGUgY2FuY2VsbGF0aW9uIHBy
b2R1Y2VkIHRoZSBjb3JyZWN0IHJlc3VsdC4gIENoYW5uZWwgMgorICAgICAgICAvLyBpcyBmb3Ig
dmVyaWZ5aW5nIGV2ZW50cyBpbnNlcnRlZCBhZnRlciB0aGUgY2FuY2VsbGF0aW9uIHNvIHdlIGNh
bgorICAgICAgICAvLyB2ZXJpZnkgdGhhdCBhdXRvbWF0aW9ucyBhcmUgY29ycmVjdGx5IGdlbmVy
YXRlZCBhZnRlciB0aGUKKyAgICAgICAgLy8gY2FuY2VsbGF0aW9uIHBvaW50LgorICAgICAgICBs
ZXQgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgzLCByZW5k
ZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworCisgICAgICAgIC8vIFRlc3Qg
c291cmNlIGlzIGEgY29uc3RhbnQgc2lnbmFsCisgICAgICAgIGxldCBzcmMgPSBjb250ZXh0LmNy
ZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzcmMuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRC
dWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNyYy5sb29wID0gdHJ1ZTsKKworICAgICAg
ICAvLyBXZSdsbCBkbyB0aGUgYXV0b21hdGlvbiB0ZXN0cyB3aXRoIHRocmVlIGdhaW4gbm9kZXMu
ICBPbmUgKGcwKSB3aWxsCisgICAgICAgIC8vIGhhdmUgY2FuY2VsQW5kSG9sZEF0VGltZSBhbmQg
dGhlIG90aGVyIChnMSkgd2lsbCBub3QuICBnMSBpcworICAgICAgICAvLyB1c2VkIGFzIHRoZSBl
eHBlY3RlZCByZXN1bHQgZm9yIHRoYXQgYXV0b21hdGlvbiB1cCB0byB0aGUKKyAgICAgICAgLy8g
Y2FuY2VsbGF0aW9uIHBvaW50LiAgVGhleSBzaG91bGQgYmUgdGhlIHNhbWUuICBUaGUgdGhpcmQg
bm9kZSAoZzIpIGlzCisgICAgICAgIC8vIHVzZWQgZm9yIHRlc3RpbmcgYXV0b21hdGlvbnMgaW5z
ZXJ0ZWQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbiBwb2ludCwKKyAgICAgICAgLy8gaWYgYW55LiAg
ZzIgaXMgdGhlIGV4cGVjdGVkIHJlc3VsdCBmcm9tIHRoZSBjYW5jZWxsYXRpb24gcG9pbnQgdG8g
dGhlCisgICAgICAgIC8vIGVuZCBvZiB0aGUgdGVzdC4KKworICAgICAgICBsZXQgZzAgPSBjb250
ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0IGcxID0gY29udGV4dC5jcmVhdGVHYWluKCk7
CisgICAgICAgIGxldCBnMiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgdjAg
PSAxOworICAgICAgICBsZXQgdDAgPSAwLjAxOworCisgICAgICAgIGxldCBjYW5jZWxUaW1lID0g
cmVuZGVyRHVyYXRpb24gLyAyOworCisgICAgICAgIC8vIFRlc3QgYXV0b21hdGlvbiBoZXJlLiAg
VGhlIHRlc3RlciBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZworICAgICAgICAv
LyB1cCB0aGUgZ2FpbiBub2RlcyB3aXRoIHRoZSBkZXNpcmVkIGF1dG9tYXRpb24gZm9yIHRlc3Rp
bmcuCisgICAgICAgIGF1dG9SZXN1bHQgPSB0ZXN0ZXJGdW5jdGlvbihbZzAsIGcxLCBnMl0sIHYw
LCB0MCwgY2FuY2VsVGltZSk7CisgICAgICAgIGxldCBleHBlY3RlZENvbnN0YW50ID0gYXV0b1Jl
c3VsdC5leHBlY3RlZENvbnN0YW50OworICAgICAgICBsZXQgYXV0b01lc3NhZ2UgPSBhdXRvUmVz
dWx0LmF1dG9NZXNzYWdlOworICAgICAgICBsZXQgc3VtbWFyeU1lc3NhZ2UgPSBhdXRvUmVzdWx0
LnN1bW1hcnk7CisKKyAgICAgICAgLy8gQ2FuY2VsIHNjaGVkdWxlZCBldmVudHMgc29tZXdoZXJl
IGluIHRoZSBtaWRkbGUgb2YgdGhlIHRlc3QKKyAgICAgICAgLy8gYXV0b21hdGlvbi4KKyAgICAg
ICAgZzAuZ2Fpbi5jYW5jZWxBbmRIb2xkQXRUaW1lKGNhbmNlbFRpbWUpOworCisgICAgICAgIGxl
dCBjb25zdGFudEVuZFRpbWU7CisgICAgICAgIGlmIChwb3N0Q2FuY2VsVGVzdCkgeworICAgICAg
ICAgIHBvc3RSZXN1bHQgPQorICAgICAgICAgICAgICBwb3N0Q2FuY2VsVGVzdChbZzAsIGcxLCBn
Ml0sIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3RhbnQpOworICAgICAgICAgIGNvbnN0YW50RW5k
VGltZSA9IHBvc3RSZXN1bHQuY29uc3RhbnRFbmRUaW1lOworICAgICAgICB9CisKKyAgICAgICAg
Ly8gQ29ubmVjdCBldmVyeXRoaW5nIHRvZ2V0aGVyICh3aXRoIGEgbWVyZ2VyIHRvIG1ha2UgYSB0
d28tY2hhbm5lbAorICAgICAgICAvLyByZXN1bHQpLiAgQ2hhbm5lbCAwIGlzIHRoZSB0ZXN0ICh3
aXRoIGNhbmNlbEFuZEhvbGRBdFRpbWUpIGFuZAorICAgICAgICAvLyBjaGFubmVsIDEgaXMgdGhl
IHJlZmVyZW5jZSAod2l0aG91dCBjYW5jZWxBbmRIb2xkQXRUaW1lKS4KKyAgICAgICAgLy8gQ2hh
bm5lbCAxIGlzIHVzZWQgdG8gdmVyaWZ5IHRoYXQgZXZlcnl0aGluZyB1cCB0byB0aGUgY2FuY2Vs
bGF0aW9uCisgICAgICAgIC8vIGhhcyB0aGUgY29ycmVjdCB2YWx1ZXMuCisgICAgICAgIHNyYy5j
b25uZWN0KGcwKTsKKyAgICAgICAgc3JjLmNvbm5lY3QoZzEpOworICAgICAgICBzcmMuY29ubmVj
dChnMik7CisgICAgICAgIGxldCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxNZXJnZXIo
Myk7CisgICAgICAgIGcwLmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAgICAgZzEuY29ubmVj
dChtZXJnZXIsIDAsIDEpOworICAgICAgICBnMi5jb25uZWN0KG1lcmdlciwgMCwgMik7CisgICAg
ICAgIG1lcmdlci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIC8vIEdv
IQorICAgICAgICBzcmMuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJl
bmRlcmluZygpLnRoZW4oZnVuY3Rpb24oYnVmZmVyKSB7CisgICAgICAgICAgbGV0IGFjdHVhbCA9
IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSBidWZm
ZXIuZ2V0Q2hhbm5lbERhdGEoMSk7CisKKyAgICAgICAgICAvLyBUaGUgYWN0dWFsIG91dHB1dCBz
aG91bGQgYmUgYSBjb25zdGFudCBmcm9tIHRoZSBjYW5jZWwgdGltZSB0byB0aGUKKyAgICAgICAg
ICAvLyBlbmQuICBXZSB1c2UgdGhlIGxhc3QgdmFsdWUgb2YgdGhlIGFjdHVhbCBvdXRwdXQgYXMg
dGhlIGNvbnN0YW50LAorICAgICAgICAgIC8vIGJ1dCB3ZSBhbHNvIHdhbnQgdG8gY29tcGFyZSB0
aGF0IHdpdGggd2hhdCB3ZSB0aG91Z2h0IGl0IHNob3VsZAorICAgICAgICAgIC8vIHJlYWxseSBi
ZS4KKworICAgICAgICAgIGxldCBjYW5jZWxGcmFtZSA9IE1hdGguY2VpbChjYW5jZWxUaW1lICog
c2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY3VydmVzIHVwIHRv
IHRoZSBjYW5jZWwgdGltZSBhcmUgImlkZW50aWNhbCIuICBUaGUKKyAgICAgICAgICAvLyBzaG91
bGQgYmUgYnV0IHJvdW5kLW9mZiBtYXkgbWFrZSB0aGVtIGRpZmZlciBzbGlnaHRseSBkdWUgdG8g
dGhlCisgICAgICAgICAgLy8gd2F5IGNhbmNlbGxpbmcgaXMgZG9uZS4KKyAgICAgICAgICBsZXQg
ZW5kRnJhbWUgPSBNYXRoLmZsb29yKGNhbmNlbFRpbWUgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAg
ICBzaG91bGQoCisgICAgICAgICAgICAgIGFjdHVhbC5zbGljZSgwLCBlbmRGcmFtZSksCisgICAg
ICAgICAgICAgIGF1dG9NZXNzYWdlICsgJyB1cCB0byB0aW1lICcgKyBjYW5jZWxUaW1lKQorICAg
ICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisgICAgICAgICAgICAgICAgICBleHBlY3RlZC5z
bGljZSgwLCBlbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6
IHRocmVzaG9sZE9wdGlvbnMuY3VydmVUaHJlc2hvbGR9KTsKKworICAgICAgICAgIC8vIFZlcmlm
eSB0aGUgb3V0cHV0IGFmdGVyIHRoZSBjYW5jZWxsYXRpb24gaXMgYSBjb25zdGFudC4KKyAgICAg
ICAgICBsZXQgYWN0dWFsVGFpbDsKKyAgICAgICAgICBsZXQgY29uc3RhbnRFbmRGcmFtZTsKKwor
ICAgICAgICAgIGlmIChwb3N0Q2FuY2VsVGVzdCkgeworICAgICAgICAgICAgY29uc3RhbnRFbmRG
cmFtZSA9IE1hdGguY2VpbChjb25zdGFudEVuZFRpbWUgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAg
ICAgIGFjdHVhbFRhaWwgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUsIGNvbnN0YW50RW5kRnJh
bWUpOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhY3R1YWxUYWlsID0gYWN0dWFs
LnNsaWNlKGNhbmNlbEZyYW1lKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBsZXQgYWN0dWFs
Q29uc3RhbnQgPSBhY3R1YWxbY2FuY2VsRnJhbWVdOworCisgICAgICAgICAgc2hvdWxkKAorICAg
ICAgICAgICAgICBhY3R1YWxUYWlsLAorICAgICAgICAgICAgICAnQ2FuY2VsbGluZyAnICsgYXV0
b01lc3NhZ2UgKyAnIGF0IHRpbWUgJyArIGNhbmNlbFRpbWUpCisgICAgICAgICAgICAgIC5iZUNv
bnN0YW50VmFsdWVPZihhY3R1YWxDb25zdGFudCk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhh
dCB0aGUgY29uc3RhbnQgaXMgdGhlIHZhbHVlIHdlIGV4cGVjdC4KKyAgICAgICAgICBzaG91bGQo
CisgICAgICAgICAgICAgIGFjdHVhbENvbnN0YW50LAorICAgICAgICAgICAgICAnRXhwZWN0ZWQg
dmFsdWUgZm9yIGNhbmNlbGxpbmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKworICAg
ICAgICAgICAgICAgICAgY2FuY2VsVGltZSkKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUbygKKyAg
ICAgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQsCisgICAgICAgICAgICAgICAgICB7dGhy
ZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLnZhbHVlVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAv
LyBWZXJpZnkgdGhlIGN1cnZlIGFmdGVyIHRoZSBjb25zdGFudEVuZFRpbWUgbWF0Y2hlcyBvdXIK
KyAgICAgICAgICAvLyBleHBlY3RhdGlvbnMuCisgICAgICAgICAgaWYgKHBvc3RDYW5jZWxUZXN0
KSB7CisgICAgICAgICAgICBsZXQgYzIgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMik7CisgICAg
ICAgICAgICBzaG91bGQoYWN0dWFsLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUpLCBwb3N0UmVzdWx0
Lm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAg
ICAgICAgICBjMi5zbGljZShjb25zdGFudEVuZEZyYW1lKSwKKyAgICAgICAgICAgICAgICAgICAg
e2Fic29sdXRlVGhyZXNob2xkOiBwb3N0UmVzdWx0LmVycm9yVGhyZXNob2xkIHx8IDB9KTsKKyAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICAvLyBTaW1pbGFyIHRvIGNh
bmNlbFRlc3QsIGJ1dCBkb2VzIDIgY2FuY2Vscy4KKyAgICAgIGZ1bmN0aW9uIGNhbmNlbFRlc3Qy
KAorICAgICAgICAgIHNob3VsZCwgdGVzdGVyRnVuY3Rpb24sIHRocmVzaG9sZE9wdGlvbnMsCisg
ICAgICAgICAgcG9zdENhbmNlbFRlc3QsIHBvc3RDYW5jZWxUZXN0MikgeworICAgICAgICAvLyBD
aGFubmVsIDA6IEFjdHVhbCBvdXRwdXQgdGhhdCBpbmNsdWRlcyB0aGUgY2FuY2VsbGF0aW9uIG9m
IGV2ZW50cy4KKyAgICAgICAgLy8gQ2hhbm5lbCAxOiBFeHBlY3RlZCBkYXRhIHVwIHRvIHRoZSBm
aXJzdCBjYW5jZWxsYXRpb24uCisgICAgICAgIC8vIENoYW5uZWwgMjogRXhwZWN0ZWQgZGF0YSBm
cm9tIDFzdCBjYW5jZWxsYXRpb24gdG8gMm5kIGNhbmNlbGxhdGlvbi4KKyAgICAgICAgLy8gQ2hh
bm5lbCAzOiBFeHBlY3RlZCBkYXRhIGZyb20gMm5kIGNhbmNlbGxhdGlvbiB0byB0aGUgZW5kLgor
ICAgICAgICBjb25zdCBjb250ZXh0ID0KKyAgICAgICAgICBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCg0LCByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworCisgICAgICAg
IGNvbnN0IHNyYyA9IGNvbnRleHQuY3JlYXRlQ29uc3RhbnRTb3VyY2UoKTsKKworICAgICAgICAv
LyBnMDogQWN0dWFsIGdhaW4gd2hpY2ggd2lsbCBoYXZlIGNhbmNlbEFuZEhvbGRBdFRpbWUgY2Fs
bGVkIG9uIGl0CisgICAgICAgIC8vIHR3aWNlLgorICAgICAgICAvLyBnMTogRXhwZWN0ZWQgZ2Fp
biBmcm9tIHN0YXJ0IHRvIHRoZSAxc3QgY2FuY2VsLgorICAgICAgICAvLyBnMjogRXhwZWN0ZWQg
Z2FpbiBmcm9tIDFzdCBjYW5jZWwgdG8gdGhlIDJuZCBjYW5jZWwuCisgICAgICAgIC8vIGczOiBF
eHBlY3RlZCBnYWluIGZyb20gdGhlIDJuZCBjYW5jZWwgdG8gdGhlIGVuZC4KKyAgICAgICAgY29u
c3QgZzAgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgY29uc3QgZzEgPSBjb250ZXh0
LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgY29uc3QgZzIgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsK
KyAgICAgICAgY29uc3QgZzMgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgY29uc3Qg
djAgPSAxOworICAgICAgICBjb25zdCB0MCA9IDAuMDE7CisKKyAgICAgICAgY29uc3QgY2FuY2Vs
VGltZTEgPSByZW5kZXJEdXJhdGlvbiAqIDAuNTsKKyAgICAgICAgY29uc3QgY2FuY2VsVGltZTIg
PSByZW5kZXJEdXJhdGlvbiAqIDAuNzU7CisKKyAgICAgICAgLy8gUnVuIHRlc3RlckZ1bmN0aW9u
IHRvIGdlbmVyYXRlIHRoZSAxc3QgcmFtcC4KKyAgICAgICAgY29uc3QgeworICAgICAgICAgIGV4
cGVjdGVkQ29uc3RhbnQsIGF1dG9NZXNzYWdlLCBzdW1tYXJ5TWVzc2FnZX0gPQorICAgICAgICAg
ICAgdGVzdGVyRnVuY3Rpb24oW2cwLCBnMSwgZzJdLCB2MCwgdDAsIGNhbmNlbFRpbWUxKTsKKwor
ICAgICAgICAvLyAxc3QgY2FuY2VsLCBjYW5jZWxsaW5nIHRoZSAxc3QgcmFtcC4KKyAgICAgICAg
ZzAuZ2Fpbi5jYW5jZWxBbmRIb2xkQXRUaW1lKGNhbmNlbFRpbWUxKTsKKworICAgICAgICAvLyBS
dW4gcG9zdENhbmNlbFRlc3QgdG8gZ2VuZXJhdGUgdGhlIDJuZCByYW1wLgorICAgICAgICBjb25z
dCB7CisgICAgICAgICAgY29uc3RhbnRFbmRUaW1lLCBtZXNzYWdlLCBlcnJvclRocmVzaG9sZCA9
IDAsIGV4cGVjdGVkQ29uc3RhbnQyfSA9CisgICAgICAgICAgICBwb3N0Q2FuY2VsVGVzdCgKKyAg
ICAgICAgICAgICAgW2cwLCBnMSwgZzJdLCBjYW5jZWxUaW1lMSwgZXhwZWN0ZWRDb25zdGFudCwg
Y2FuY2VsVGltZTIpOworCisgICAgICAgIC8vIDJuZCBjYW5jZWwsIGNhbmNlbGxpbmcgdGhlIDJu
ZCByYW1wLgorICAgICAgICBnMC5nYWluLmNhbmNlbEFuZEhvbGRBdFRpbWUoY2FuY2VsVGltZTIp
OworCisgICAgICAgIC8vIFJ1biBwb3N0Q2FuY2VsVGVzdDIgdG8gZ2VuZXJhdGUgdGhlIDNyZCBy
YW1wLgorICAgICAgICBjb25zdCB7Y29uc3RhbnRFbmRUaW1lMiwgbWVzc2FnZTJ9ID0KKyAgICAg
ICAgICBwb3N0Q2FuY2VsVGVzdDIoW2cwLCBnMSwgZzIsIGczXSwgY2FuY2VsVGltZTIsIGV4cGVj
dGVkQ29uc3RhbnQyKTsKKworICAgICAgICAvLyBDb25uZWN0IGV2ZXJ5dGhpbmcgdG9nZXRoZXIK
KyAgICAgICAgc3JjLmNvbm5lY3QoZzApOworICAgICAgICBzcmMuY29ubmVjdChnMSk7CisgICAg
ICAgIHNyYy5jb25uZWN0KGcyKTsKKyAgICAgICAgc3JjLmNvbm5lY3QoZzMpOworICAgICAgICBj
b25zdCBtZXJnZXIgPSBjb250ZXh0LmNyZWF0ZUNoYW5uZWxNZXJnZXIoNCk7CisgICAgICAgIGcw
LmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAgICAgZzEuY29ubmVjdChtZXJnZXIsIDAsIDEp
OworICAgICAgICBnMi5jb25uZWN0KG1lcmdlciwgMCwgMik7CisgICAgICAgIGczLmNvbm5lY3Qo
bWVyZ2VyLCAwLCAzKTsKKyAgICAgICAgbWVyZ2VyLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlv
bik7CisKKyAgICAgICAgLy8gR28hCisgICAgICAgIHNyYy5zdGFydCgpOworCisgICAgICAgIHJl
dHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbiAoYnVmZmVyKSB7Cisg
ICAgICAgICAgY29uc3QgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAg
ICAgIGNvbnN0IGV4cGVjdGVkMSA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgxKTsKKyAgICAgICAg
ICBjb25zdCBleHBlY3RlZDIgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMik7CisgICAgICAgICAg
Y29uc3QgZXhwZWN0ZWQzID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDMpOworCisgICAgICAgICAg
Y29uc3QgY2FuY2VsRnJhbWUxID0gTWF0aC5jZWlsKGNhbmNlbFRpbWUxICogc2FtcGxlUmF0ZSk7
CisgICAgICAgICAgY29uc3QgY2FuY2VsRnJhbWUyID0gTWF0aC5jZWlsKGNhbmNlbFRpbWUyICog
c2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICBjb25zdCBjb25zdGFudEVuZEZyYW1lMSA9IE1hdGgu
Y2VpbChjb25zdGFudEVuZFRpbWUgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBjb25zdCBjb25z
dGFudEVuZEZyYW1lMiA9IE1hdGguY2VpbChjb25zdGFudEVuZFRpbWUyICogc2FtcGxlUmF0ZSk7
CisKKyAgICAgICAgICBjb25zdCBhY3R1YWxUYWlsMSA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFt
ZTEsIGNvbnN0YW50RW5kRnJhbWUxKTsKKyAgICAgICAgICBjb25zdCBhY3R1YWxUYWlsMiA9IGFj
dHVhbC5zbGljZShjYW5jZWxGcmFtZTIsIGNvbnN0YW50RW5kRnJhbWUyKTsKKworICAgICAgICAg
IGNvbnN0IGFjdHVhbENvbnN0YW50MSA9IGFjdHVhbFtjYW5jZWxGcmFtZTFdOworICAgICAgICAg
IGNvbnN0IGFjdHVhbENvbnN0YW50MiA9IGFjdHVhbFtjYW5jZWxGcmFtZTJdOworCisgICAgICAg
ICAgLy8gVmVyaWZ5IGZpcnN0IHNlY3Rpb24gY3VydmUKKyAgICAgICAgICBzaG91bGQoCisgICAg
ICAgICAgICBhY3R1YWwuc2xpY2UoMCwgY2FuY2VsRnJhbWUxKSwKKyAgICAgICAgICAgIGF1dG9N
ZXNzYWdlICsgJyB1cCB0byB0aW1lICcgKyBjYW5jZWxUaW1lMSkKKyAgICAgICAgICAgIC5iZUNs
b3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgZXhwZWN0ZWQxLnNsaWNlKDAsIGNhbmNlbEZyYW1l
MSksCisgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy5j
dXJ2ZVRocmVzaG9sZH0pOworCisgICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgYSB2YWx1ZSB3YXMg
aGVsZCBhZnRlciAxc3QgY2FuY2VsCisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgYWN0
dWFsVGFpbDEsCisgICAgICAgICAgICAnQ2FuY2VsbGluZyAnICsgYXV0b01lc3NhZ2UgKyAnIGF0
IHRpbWUgJyArIGNhbmNlbFRpbWUxKQorICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFj
dHVhbENvbnN0YW50MSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBoZWxkIHZhbHVlIGFm
dGVyIDFzdCBjYW5jZWwgd2FzIGNvcnJlY3QKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAg
ICBhY3R1YWxDb25zdGFudDEsCisgICAgICAgICAgICAnRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNl
bGxpbmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKworICAgICAgICAgICAgY2FuY2Vs
VGltZTEpCisgICAgICAgICAgICAuYmVDbG9zZVRvKAorICAgICAgICAgICAgICBleHBlY3RlZENv
bnN0YW50LAorICAgICAgICAgICAgICB7dGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLnZhbHVl
VGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBWZXJpZnkgbWlkZGxlIHNlY3Rpb24gY3VydmUK
KyAgICAgICAgICBzaG91bGQoYWN0dWFsLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUxLCBjYW5jZWxG
cmFtZTIpLCBtZXNzYWdlKQorICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAg
ICAgICBleHBlY3RlZDIuc2xpY2UoY29uc3RhbnRFbmRGcmFtZTEsIGNhbmNlbEZyYW1lMiksCisg
ICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogZXJyb3JUaHJlc2hvbGR9KTsKKworICAg
ICAgICAgIC8vIFZlcmlmeSB0aGF0IGEgdmFsdWUgd2FzIGhlbGQgYWZ0ZXIgMm5kIGNhbmNlbAor
ICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgIGFjdHVhbFRhaWwyLAorICAgICAgICAgICAg
J0NhbmNlbGxpbmcgJyArIG1lc3NhZ2UgKyAnIGF0IHRpbWUgJyArIGNhbmNlbFRpbWUyKQorICAg
ICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKGFjdHVhbENvbnN0YW50Mik7CisKKyAgICAgICAg
ICAvLyBWZXJpZnkgdGhhdCBoZWxkIHZhbHVlIGFmdGVyIDJuZCBjYW5jZWwgd2FzIGNvcnJlY3QK
KyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICBhY3R1YWxDb25zdGFudDIsCisgICAgICAg
ICAgICAnRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgJyArIG1lc3NhZ2UgKyAnIGF0IHRp
bWUgJyArCisgICAgICAgICAgICBjYW5jZWxUaW1lMikKKyAgICAgICAgICAgIC5iZUNsb3NlVG8o
CisgICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQyLAorICAgICAgICAgICAgICB7dGhyZXNo
b2xkOiB0aHJlc2hvbGRPcHRpb25zLnZhbHVlVGhyZXNob2xkfSk7CisKKyAgICAgICAgICAvLyBW
ZXJpZnkgZW5kIHNlY3Rpb24gY3VydmUKKyAgICAgICAgICBzaG91bGQoYWN0dWFsLnNsaWNlKGNv
bnN0YW50RW5kRnJhbWUyKSwgbWVzc2FnZTIpCisgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXko
CisgICAgICAgICAgICAgIGV4cGVjdGVkMy5zbGljZShjb25zdGFudEVuZEZyYW1lMiksCisgICAg
ICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogZXJyb3JUaHJlc2hvbGQgfHwgMH0pOworICAg
ICAgICB9KTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWNsYW1w
LXRpbWUtdG8tY3VycmVudC10aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jbGFtcC10aW1lLXRvLWN1cnJlbnQtdGltZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTgwYmQzMmMwNDhjYmIwZWVhZTZmZGM0NTA0NTg5ZTUxZjk2OGJi
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVk
aW9wYXJhbS1jbGFtcC10aW1lLXRvLWN1cnJlbnQtdGltZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzMSBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1
dGluZyAic2V0VmFsdWUiIAorUEFTUyBFeGVjdXRpbmcgImxpbmVhciIgCitQQVNTIEV4ZWN1dGlu
ZyAiZXhwb25lbnRpYWwiIAorUEFTUyBFeGVjdXRpbmcgInNldFRhcmdldCIgCitQQVNTIEV4ZWN1
dGluZyAic2V0VmFsdWVDdXJ2ZSIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbc2V0VmFs
dWVdICAKK1BBU1MgICBzZXRWYWx1ZTogT3V0cHV0WzAtMTI3XSBjb250YWlucyBvbmx5IHRoZSBj
b25zdGFudCAwLiAKK1BBU1MgICBzZXRWYWx1ZTogT3V0cHV0WzEyOC0xMDIzXSBjb250YWlucyBv
bmx5IHRoZSBjb25zdGFudCAxLiAKK1BBU1MgPCBbc2V0VmFsdWVdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4gW2xpbmVhcl0gIAorUEFTUyAgIGxp
bmVhcjogT3V0cHV0WzAtMTI3XSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxLiAKK1BBU1Mg
ICBsaW5lYXI6IE91dHB1dFsxMjgtMTAyM10gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41
LiAKK1BBU1MgPCBbbGluZWFyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtleHBvbmVudGlhbF0gIAorUEFTUyAgIGV4cG9uZW50aWFsOiBPdXRw
dXRbMC0xMjddIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEuIAorUEFTUyAgIGV4cG9uZW50
aWFsOiBPdXRwdXRbMTI4LTEwMjNdIGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCitQ
QVNTIDwgW2V4cG9uZW50aWFsXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtzZXRUYXJnZXRdICAKK1BBU1MgICBzZXRUYXJnZXQ6IE91dHB1dFsw
LTEyN10gY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMS4gCitQQVNTICAgc2V0VGFyZ2V0OiBP
dXRwdXRbMTI4XSBpcyBlcXVhbCB0byAxLiAKK1BBU1MgICBPdXRwdXRbMTI5LTEwMjNdIGNvbnRh
aW5zIG9ubHkgcG9zaXRpdmUgdmFsdWVzIGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyA8IFtzZXRU
YXJnZXRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNT
ID4gW3NldFZhbHVlQ3VydmVdICAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlOiBPdXRwdXRbMC0xMjdd
IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDEuIAorUEFTUyAgIHNldFZhbHVlQ3VydmU6IE91
dHB1dFsxMjgtMTAyM10gaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTIDwgW3NldFZhbHVlQ3VydmVd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTICMgQVVE
SVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDUgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jbGFt
cC10aW1lLXRvLWN1cnJlbnQtdGltZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLWNsYW1wLXRpbWUtdG8tY3VycmVudC10aW1lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjg1ZjJjNDk0NWQ5YTRkMDY3MjZmZGViNzRjYmEwYzI0NDcyZDIwOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1jbGFtcC10
aW1lLXRvLWN1cnJlbnQtdGltZS5odG1sCkBAIC0wLDAgKzEsMjE1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IENsYW1waW5nIG9m
IEF1ZGlvUGFyYW0gVGltZQorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0
aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10
ZXN0LWNvZGUiPgorICAgICAgLy8gRmFpcmx5IGFyYml0cmFyeSBzYW1wbGUgcmF0ZSBhbmQgcmVu
ZGVyIGZyYW1lcy4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gMjQwMDA7CisgICAgICBsZXQgcmVu
ZGVyRnJhbWVzID0gMTAyNDsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1
bm5lcigpOworCisgICAgICBhdWRpdC5kZWZpbmUoJ3NldFZhbHVlJywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICBsZXQgc3VzcGVuZEZyYW1lID0gMTI4OworICAgICAgICBjcmVhdGVHcmFw
aCh7CisgICAgICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUsCisgICAgICAgICAgbWV0
aG9kOiAnc2V0VmFsdWVBdFRpbWUnLAorICAgICAgICAgIGluaXRpYWxHYWluOiAwLAorICAgICAg
ICAgIGFyZzA6IDEsCisgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1
bHRCdWZmZXIpIHsKKyAgICAgICAgICAgICAgLy8gSnVzdCB2ZXJpZnkgdGhhdCB0aGUgY29zaW5l
IHdhdmUgYWN0dWFsbHkgc3RhcnRlZCBhdAorICAgICAgICAgICAgICAvLyBzdXNwZW5kRnJhbWUu
CisgICAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXN1bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEo
MCk7CisKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgcmVzdWx0LnNs
aWNlKDAsIHN1c3BlbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICAnc2V0VmFsdWU6IE91dHB1
dFswLScgKyAoc3VzcGVuZEZyYW1lIC0gMSkgKyAnXScpCisgICAgICAgICAgICAgICAgICAuYmVD
b25zdGFudFZhbHVlT2YoMCk7CisgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5zbGljZShzdXNwZW5kRnJhbWUpLAorICAgICAgICAgICAgICAgICAgJ3NldFZh
bHVlOiBPdXRwdXRbJyArIHN1c3BlbmRGcmFtZSArICctJyArCisgICAgICAgICAgICAgICAgICAg
ICAgKHJlbmRlckZyYW1lcyAtIDEpICsgJ10nKQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3Rh
bnRWYWx1ZU9mKDEpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRh
c2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2xpbmVhcicsICh0
YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgbGV0IHN1c3BlbmRGcmFtZSA9IDEyODsKKyAgICAg
ICAgY3JlYXRlR3JhcGgoeworICAgICAgICAgIHN1c3BlbmRGcmFtZTogc3VzcGVuZEZyYW1lLAor
ICAgICAgICAgIG1ldGhvZDogJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJywKKyAgICAgICAgICBp
bml0aWFsR2FpbjogMSwKKyAgICAgICAgICBhcmcwOiAwLjUKKyAgICAgICAgfSkKKyAgICAgICAg
ICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgICAgICAvLyBKdXN0
IHZlcmlmeSB0aGF0IHRoZSBjb3NpbmUgd2F2ZSBhY3R1YWxseSBzdGFydGVkIGF0CisgICAgICAg
ICAgICAgIC8vIHN1c3BlbmRGcmFtZS4KKyAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3Vs
dEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKworICAgICAgICAgICAgICBzaG91bGQoCisgICAg
ICAgICAgICAgICAgICByZXN1bHQuc2xpY2UoMCwgc3VzcGVuZEZyYW1lKSwKKyAgICAgICAgICAg
ICAgICAgICdsaW5lYXI6IE91dHB1dFswLScgKyAoc3VzcGVuZEZyYW1lIC0gMSkgKyAnXScpCisg
ICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMSk7CisgICAgICAgICAgICAgIHNo
b3VsZCgKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC5zbGljZShzdXNwZW5kRnJhbWUpLAorICAg
ICAgICAgICAgICAgICAgJ2xpbmVhcjogT3V0cHV0WycgKyBzdXNwZW5kRnJhbWUgKyAnLScgKyAo
cmVuZGVyRnJhbWVzIC0gMSkgKworICAgICAgICAgICAgICAgICAgICAgICddJykKKyAgICAgICAg
ICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigwLjUpOworCisgICAgICAgICAgICB9KQorICAg
ICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1
ZGl0LmRlZmluZSgnZXhwb25lbnRpYWwnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxl
dCBzdXNwZW5kRnJhbWUgPSAxMjg7CisgICAgICAgIGNyZWF0ZUdyYXBoKHsKKyAgICAgICAgICBz
dXNwZW5kRnJhbWU6IHN1c3BlbmRGcmFtZSwKKyAgICAgICAgICBtZXRob2Q6ICdleHBvbmVudGlh
bFJhbXBUb1ZhbHVlQXRUaW1lJywKKyAgICAgICAgICBpbml0aWFsR2FpbjogMSwKKyAgICAgICAg
ICBhcmcwOiAwLjUKKyAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3Vs
dEJ1ZmZlcikgeworICAgICAgICAgICAgICAvLyBKdXN0IHZlcmlmeSB0aGF0IHRoZSBjb3NpbmUg
d2F2ZSBhY3R1YWxseSBzdGFydGVkIGF0CisgICAgICAgICAgICAgIC8vIHN1c3BlbmRGcmFtZS4K
KyAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgw
KTsKKworICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICByZXN1bHQuc2xp
Y2UoMCwgc3VzcGVuZEZyYW1lKSwKKyAgICAgICAgICAgICAgICAgICdleHBvbmVudGlhbDogT3V0
cHV0WzAtJyArIChzdXNwZW5kRnJhbWUgLSAxKSArICddJykKKyAgICAgICAgICAgICAgICAgIC5i
ZUNvbnN0YW50VmFsdWVPZigxKTsKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAg
ICAgICAgcmVzdWx0LnNsaWNlKHN1c3BlbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICAnZXhw
b25lbnRpYWw6IE91dHB1dFsnICsgc3VzcGVuZEZyYW1lICsgJy0nICsKKyAgICAgICAgICAgICAg
ICAgICAgICAocmVuZGVyRnJhbWVzIC0gMSkgKyAnXScpCisgICAgICAgICAgICAgICAgICAuYmVD
b25zdGFudFZhbHVlT2YoMC41KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigo
KSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdzZXRU
YXJnZXQnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCBzdXNwZW5kRnJhbWUgPSAx
Mjg7CisgICAgICAgIGNyZWF0ZUdyYXBoKHsKKyAgICAgICAgICBzdXNwZW5kRnJhbWU6IHN1c3Bl
bmRGcmFtZSwKKyAgICAgICAgICBtZXRob2Q6ICdzZXRUYXJnZXRBdFRpbWUnLAorICAgICAgICAg
IGluaXRpYWxHYWluOiAxLAorICAgICAgICAgIGFyZzA6IDAuNSwKKyAgICAgICAgICBtb3JlQXJn
czogMC4xCisgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRCdWZm
ZXIpIHsKKyAgICAgICAgICAgICAgLy8gSnVzdCB2ZXJpZnkgdGhhdCB0aGUgY29zaW5lIHdhdmUg
YWN0dWFsbHkgc3RhcnRlZCBhdAorICAgICAgICAgICAgICAvLyBzdXNwZW5kRnJhbWUuCisgICAg
ICAgICAgICAgIGxldCByZXN1bHQgPSByZXN1bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisK
KyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgcmVzdWx0LnNsaWNlKDAs
IHN1c3BlbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICAnc2V0VGFyZ2V0OiBPdXRwdXRbMC0n
ICsgKHN1c3BlbmRGcmFtZSAtIDEpICsgJ10nKQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3Rh
bnRWYWx1ZU9mKDEpOworICAgICAgICAgICAgICAvLyBGb3IgdGhlIHNhbXBsZXMgcGFzdCB0aGUg
c3VzcGVuZCB0aW1lLCB3ZSBvbmx5IGNhcmUgdGhhdCBmaXJzdAorICAgICAgICAgICAgICAvLyB2
YWx1ZSBpcyAxIGFuZCB0aGF0IHRoZSByZXN0IGFyZSBub3QgemVyby4KKyAgICAgICAgICAgICAg
c2hvdWxkKAorICAgICAgICAgICAgICAgICAgcmVzdWx0W3N1c3BlbmRGcmFtZV0sCisgICAgICAg
ICAgICAgICAgICAnc2V0VGFyZ2V0OiBPdXRwdXRbJyArIHN1c3BlbmRGcmFtZSArICddJykKKyAg
ICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oMSk7CisKKyAgICAgICAgICAgICAgbGV0IHBvc2l0
aXZlID0gcmVzdWx0LnNsaWNlKHN1c3BlbmRGcmFtZSArIDEpLmV2ZXJ5KHggPT4geCA+IDApOwor
ICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBwb3NpdGl2ZSwKKyAgICAg
ICAgICAgICAgICAgICdPdXRwdXRbJyArIChzdXNwZW5kRnJhbWUgKyAxKSArICctJyArIChyZW5k
ZXJGcmFtZXMgLSAxKSArCisgICAgICAgICAgICAgICAgICAgICAgJ10gY29udGFpbnMgb25seSBw
b3NpdGl2ZSB2YWx1ZXMnKQorICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyh0cnVlKTsKKyAg
ICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAg
ICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdzZXRWYWx1ZUN1cnZlJywgKHRhc2ssIHNob3Vs
ZCkgPT4geworICAgICAgICBsZXQgc3VzcGVuZEZyYW1lID0gMTI4OworICAgICAgICBjcmVhdGVH
cmFwaCh7CisgICAgICAgICAgc3VzcGVuZEZyYW1lOiBzdXNwZW5kRnJhbWUsCisgICAgICAgICAg
bWV0aG9kOiAnc2V0VmFsdWVDdXJ2ZUF0VGltZScsCisgICAgICAgICAgaW5pdGlhbEdhaW46IDEs
CisgICAgICAgICAgYXJnMDogRmxvYXQzMkFycmF5LmZyb20oWzIsIDNdKSwKKyAgICAgICAgICBt
b3JlQXJnczogMC4xCisgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1
bHRCdWZmZXIpIHsKKyAgICAgICAgICAgICAgLy8gSnVzdCB2ZXJpZnkgdGhhdCB0aGUgY29zaW5l
IHdhdmUgYWN0dWFsbHkgc3RhcnRlZCBhdAorICAgICAgICAgICAgICAvLyBzdXNwZW5kRnJhbWUu
CisgICAgICAgICAgICAgIGxldCByZXN1bHQgPSByZXN1bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEo
MCk7CisKKyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgcmVzdWx0LnNs
aWNlKDAsIHN1c3BlbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICAnc2V0VmFsdWVDdXJ2ZTog
T3V0cHV0WzAtJyArIChzdXNwZW5kRnJhbWUgLSAxKSArICddJykKKyAgICAgICAgICAgICAgICAg
IC5iZUNvbnN0YW50VmFsdWVPZigxKTsKKworICAgICAgICAgICAgICAvLyBUaGUgc2VsZWN0ZWQg
Y3VydmUgY29udGFpbnMgdmFsdWVzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAyLgorICAgICAg
ICAgICAgICAvLyBKdXN0IHZlcmlmeSB0aGF0IGFsbCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBv
ciBlcXVhbCB0byAyLgorICAgICAgICAgICAgICBsZXQgYmlnZ2VyVGhhbjIgPSByZXN1bHQuc2xp
Y2Uoc3VzcGVuZEZyYW1lKS5ldmVyeSh4ID0+IHggPj0gMik7CisgICAgICAgICAgICAgIHNob3Vs
ZCgKKyAgICAgICAgICAgICAgICAgIGJpZ2dlclRoYW4yLAorICAgICAgICAgICAgICAgICAgJ3Nl
dFZhbHVlQ3VydmU6IE91dHB1dFsnICsgc3VzcGVuZEZyYW1lICsgJy0nICsKKyAgICAgICAgICAg
ICAgICAgICAgICAocmVuZGVyRnJhbWVzIC0gMSkgKyAnXScpCisgICAgICAgICAgICAgICAgICAu
YmVFcXVhbFRvKHRydWUpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+
IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisKKyAgICAgIC8vIENyZWF0ZSB0aGUgdGVzdCBn
cmFwaCBjb25zaXN0aW5nIG9mIGEgY29uc3RhbnQgc291cmNlIGZvbGxvd2VkIGJ5IGEKKyAgICAg
IC8vIGdhaW4gbm9kZS4gIFRoZSBnYWluIG5vZGUgYXV0b21hdGlvbnMgd2lsbCBiZSB0ZXN0ZWQu
ICB8b3B0aW9uc3wKKyAgICAgIC8vIHNwZWNpZmllcyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIHRl
c3QgaW5jbHVkaW5nCisgICAgICAvLworICAgICAgLy8gICBzdXNwZW5kRnJhbWU6IHRpbWUgYXQg
d2hpY2ggd2Ugc2NoZWR1bGUgdGhlIGF1dG9tYXRpb24gY2FsbAorICAgICAgLy8gICBtZXRob2Q6
IHRoZSBuYW1lIG9mIGF1dG9tYXRpb24gbWV0aG9kIHRvIGJlIHRlc3RlZAorICAgICAgLy8gICBp
bml0aWFsR2FpbjogdGhlIGluaXRpYWwgZ2FpbiBhdCB0aW1lIDAgZm9yIHRoZSBnYWluIG5vZGUK
KyAgICAgIC8vICAgYXJnMDogdGhlIGZpcnN0IGFyZ3VtZW50IHRvIGJlIHN1cHBsaWVkIHRvIHRo
ZSBhdXRvbWF0aW9uIG1ldGhvZC4KKyAgICAgIC8vICAgbW9yZUFyZ3M6IEFuIGFycmF5IG9mIGFu
eSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBmb3IgdGhlIGF1dG9tYXRpb24KKyAgICAgIC8vICAgbWV0
aG9kLgorICAgICAgZnVuY3Rpb24gY3JlYXRlR3JhcGgob3B0aW9ucykgeworICAgICAgICBsZXQg
Y29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxl
UmF0ZSk7CisKKyAgICAgICAgbGV0IGNvc2luZVdhdmUgPSBuZXcgUGVyaW9kaWNXYXZlKGNvbnRl
eHQsIHtyZWFsOiBbMCwgMV19KTsKKworICAgICAgICBsZXQgc3JjID0gbmV3IE9zY2lsbGF0b3JO
b2RlKAorICAgICAgICAgICAgY29udGV4dCwge3BlcmlvZGljV2F2ZTogY29zaW5lV2F2ZSwgZnJl
cXVlbmN5OiAwfSk7CisKKyAgICAgICAgLy8gVGhlIGdhaW4gbm9kZSB3aG9zZSBhdXRvbWF0aW9u
cyB3ZSdyZSB0ZXN0aW5nLgorICAgICAgICBsZXQgZ2FpbiA9IG5ldyBHYWluTm9kZShjb250ZXh0
LCB7Z2FpbjogMH0pOworCisgICAgICAgIHNyYy5jb25uZWN0KGdhaW4pLmNvbm5lY3QoY29udGV4
dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKG9wdGlv
bnMuaW5pdGlhbEdhaW4sIDApOworCisgICAgICAgIC8vIFN1c3BlbmQgcmVuZGVyaW5nIHNvIHRo
YXQgd2UgY2FuIGNhbGwgdGhlIGF1dG9tYXRpb24gbWV0aG9kIGF0IHRoZQorICAgICAgICAvLyBy
aWdodCB0aW1lLiAgfHN0YXJ0VGltZXwgaXMgdGhlIHRpbWUgZm9yIHRoZSBhdXRvbWF0aW9uIG1l
dGhvZC4gSXQKKyAgICAgICAgLy8gbXVzdCBiZSBzb21lIHRpbWUgYmVmb3JlIHRoZSBzdXNwZW5k
IHRpbWUuCisgICAgICAgIGxldCBzdXNwZW5kRnJhbWUgPSBvcHRpb25zLnN1c3BlbmRGcmFtZTsK
KyAgICAgICAgbGV0IHN0YXJ0VGltZSA9IChzdXNwZW5kRnJhbWUgLyAyKSAvIGNvbnRleHQuc2Ft
cGxlUmF0ZTsKKyAgICAgICAgY29udGV4dC5zdXNwZW5kKHN1c3BlbmRGcmFtZSAvIGNvbnRleHQu
c2FtcGxlUmF0ZSkKKyAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAvLyBDYWxsIHRoZSBhcHByb3ByaWF0ZSBhdXRvbWF0aW9uIG1ldGhvZCB3aXRoIHRoZSBkZXNp
cmVkCisgICAgICAgICAgICAgIC8vIGF1dG9tYXRpb24gdmFsdWUsIHRpbWUsIGFuZCBhbnkgb3Ro
ZXIgYXJndW1lbnRzIG5lZWRlZC4KKyAgICAgICAgICAgICAgZ2Fpbi5nYWluW29wdGlvbnMubWV0
aG9kXSgKKyAgICAgICAgICAgICAgICAgIC4uLltvcHRpb25zLmFyZzAsIHN0YXJ0VGltZSwgb3B0
aW9ucy5tb3JlQXJnc10pOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKGNvbnRl
eHQucmVzdW1lLmJpbmQoY29udGV4dCkpOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSBzb3VyY2Ug
YW5kIGJlZ2luIHJlbmRlcmluZywgcmV0dXJuaW5nIHRoZSBwcm9taXNlIGZyb20KKyAgICAgICAg
Ly8gcmVuZGVyaW5nLgorICAgICAgICBzcmMuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29u
dGV4dC5zdGFydFJlbmRlcmluZygpOworICAgICAgfQorCisgICAgICBhdWRpdC5ydW4oKTsKKyAg
ICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWluaXRpYWwtZXZlbnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWluaXRpYWwtZXZl
bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4MGE5N2YzYWQyYWQyYjBmZDk3MjRmMGIxYWJm
NzgxODYwMWY3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0taW5pdGlhbC1ldmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
MSBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGlu
ZyAibGluZWFyLXJhbXAiIAorUEFTUyBFeGVjdXRpbmcgImV4cG9uZW50aWFsLXJhbXAiIAorUEFT
UyBFeGVjdXRpbmcgImRlbGF5ZWQtbGluZWFyLXJhbXAiIAorUEFTUyBFeGVjdXRpbmcgImRlbGF5
ZWQtZXhwb25lbnRpYWwtcmFtcCIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbbGluZWFy
LXJhbXBdICAKK1BBU1MgICBMaW5lYXIgcmFtcCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6Ni4wMDAz
ZS04LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFTUyA8IFtsaW5lYXItcmFtcF0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRp
YWwtcmFtcF0gIAorUEFTUyAgIEV4cG9uZW50aWFsIHJhbXAgZXF1YWxzIFtleHBlY3RlZCBhcnJh
eV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQi
OjAuMDAwMDAyMzg0MiwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbZXhwb25lbnRp
YWwtcmFtcF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BB
U1MgPiBbZGVsYXllZC1saW5lYXItcmFtcF0gIAorUEFTUyAgIERlbGF5ZWQgbGluZWFyIHJhbXAg
ZXF1YWxzIFswLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSww
LjUsMC41LDAuNSwwLjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFi
c29sdXRlVGhyZXNob2xkIjo5Ljg3OTY4ZS04LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAorUEFT
UyA8IFtkZWxheWVkLWxpbmVhci1yYW1wXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAx
IGFzc2VydGlvbnMpIAorUEFTUyA+IFtkZWxheWVkLWV4cG9uZW50aWFsLXJhbXBdICAKK1BBU1Mg
ICBEZWxheWVkIGV4cG9uZW50aWFsIHJhbXAgZXF1YWxzIFswLjUsMC41LDAuNSwwLjUsMC41LDAu
NSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUsMC41LDAuNSwwLjUuLi5dIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDAxMzk0OCwi
cmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgPCBbZGVsYXllZC1leHBvbmVudGlhbC1yYW1w
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyAjIEFV
RElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA0IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0taW5p
dGlhbC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3Bh
cmFtLWluaXRpYWwtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzczNzczZDJjNzAwOWQyN2ViYzk5
NmU1ODQzYjViYmVmN2YzZWZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWluaXRpYWwtZXZlbnQuaHRtbApAQCAtMCwwICsxLDE3
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAg
ICAgQXVkaW9QYXJhbSBJbml0aWFsIEV2ZW50cworICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVk
aW9wYXJhbS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8
c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgw
MDA7CisgICAgICAvLyBOdW1iZXIgb2YgZnJhbWVzIGluIGEgcmVuZGVyaW5nIHF1YW50dW0uCisg
ICAgICBsZXQgcXVhbnR1bUZyYW1lcyA9IDEyODsKKyAgICAgIC8vIFRlc3QgZG9lc24ndCBuZWVk
IHRvIHJ1biBmb3IgdmVyeSBsb25nLgorICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0gMC4yOwor
ICAgICAgbGV0IHJlbmRlckZyYW1lcyA9IHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZTsKKyAg
ICAgIGxldCBhdXRvbWF0aW9uRW5kVGltZSA9IDAuMTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVk
aXQuY3JlYXRlVGFza1J1bm5lcigpOworCisgICAgICAvLyBUaGUgZm9sbG93aW5nIHRlc3RzIHN0
YXJ0IGEgcmFtcCBhdXRvbWF0aW9uIHdpdGhvdXQgYW4gaW5pdGlhbCBldmVudC4KKyAgICAgIC8v
IFRoaXMgc2hvdWxkIGNhdXNlIGFuIGluaXRpYWwgZXZlbnQgdG8gYmUgYWRkZWQgaW1wbGljaXRs
eSB0byBnaXZlIGEKKyAgICAgIC8vIHN0YXJ0aW5nIHBvaW50LgorICAgICAgYXVkaXQuZGVmaW5l
KCdsaW5lYXItcmFtcCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgcnVuVGVzdCgnTGlu
ZWFyIHJhbXAnLCBzaG91bGQsIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb246IGZ1bmN0
aW9uKG5vZGUsIHZhbHVlLCB0aW1lKSB7CisgICAgICAgICAgICBub2RlLmdhaW4ubGluZWFyUmFt
cFRvVmFsdWVBdFRpbWUodmFsdWUsIHRpbWUpOworICAgICAgICAgIH0sCisgICAgICAgICAgcmVm
ZXJlbmNlRnVuY3Rpb246IGxpbmVhclJhbXAsCisgICAgICAgICAgLy8gRXhwZXJpbWVudGFsbHkg
ZGV0ZXJtaW5lZCB0aHJlc2hvbGQKKyAgICAgICAgICB0aHJlc2hvbGQ6IHthYnNvbHV0ZVRocmVz
aG9sZDogNi4wMDAzZS04fSwKKyAgICAgICAgICAvLyBUaGUgc3RhcnRpbmcgdmFsdWUgb2YgdGhl
IGdhaW4gbm9kZQorICAgICAgICAgIHYwOiAwLjUsCisgICAgICAgICAgLy8gVGhlIHRhcmdldCB2
YWx1ZSBvZiB0aGUgYXV0b21hdGlvbgorICAgICAgICAgIHYxOiAwLAorICAgICAgICB9KS50aGVu
KCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2V4
cG9uZW50aWFsLXJhbXAnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3QoJ0V4
cG9uZW50aWFsIHJhbXAnLCBzaG91bGQsIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb246
IGZ1bmN0aW9uKG5vZGUsIHZhbHVlLCB0aW1lKSB7CisgICAgICAgICAgICBub2RlLmdhaW4uZXhw
b25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2YWx1ZSwgdGltZSk7CisgICAgICAgICAgfSwKKyAg
ICAgICAgICByZWZlcmVuY2VGdW5jdGlvbjogZXhwb25lbnRpYWxSYW1wLAorICAgICAgICAgIHRo
cmVzaG9sZDoge2Fic29sdXRlVGhyZXNob2xkOiAyLjM4NDJlLTZ9LAorICAgICAgICAgIHYwOiAw
LjUsCisgICAgICAgICAgdjE6IDIsCisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkp
OworICAgICAgfSk7CisKKyAgICAgIC8vIFNhbWUgdGVzdHMgYXMgYWJvdmUsIGJ1dCB3ZSBkZWxh
eSB0aGUgY2FsbCB0byB0aGUgYXV0b21hdGlvbiBmdW5jdGlvbi4KKyAgICAgIC8vIFRoaXMgaXMg
dG8gdmVyaWZ5IHRoYXQgdGhlIHdlIHN0aWxsIGRvIHRoZSByaWdodCB0aGluZyBhZnRlciB0aGUK
KyAgICAgIC8vIGNvbnRleHQgaGFzIHN0YXJ0ZWQuCisgICAgICBhdWRpdC5kZWZpbmUoJ2RlbGF5
ZWQtbGluZWFyLXJhbXAnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRlc3QoJ0Rl
bGF5ZWQgbGluZWFyIHJhbXAnLCBzaG91bGQsIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rp
b246IGZ1bmN0aW9uKG5vZGUsIHZhbHVlLCB0aW1lKSB7CisgICAgICAgICAgICBub2RlLmdhaW4u
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodmFsdWUsIHRpbWUpOworICAgICAgICAgIH0sCisgICAg
ICAgICAgcmVmZXJlbmNlRnVuY3Rpb246IGxpbmVhclJhbXAsCisgICAgICAgICAgLy8gRXhwZXJp
bWVudGFsbHkgZGV0ZXJtaW5lZCB0aHJlc2hvbGQKKyAgICAgICAgICB0aHJlc2hvbGQ6IHthYnNv
bHV0ZVRocmVzaG9sZDogOS44Nzk2OGUtOH0sCisgICAgICAgICAgLy8gVGhlIHN0YXJ0aW5nIHZh
bHVlIG9mIHRoZSBnYWluIG5vZGUKKyAgICAgICAgICB2MDogMC41LAorICAgICAgICAgIC8vIFRo
ZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF1dG9tYXRpb24KKyAgICAgICAgICB2MTogMCwKKyAgICAg
ICAgICBkZWxheTogcXVhbnR1bUZyYW1lcyAvIHNhbXBsZVJhdGUKKyAgICAgICAgfSkudGhlbigo
KSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdkZWxh
eWVkLWV4cG9uZW50aWFsLXJhbXAnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRl
c3QoJ0RlbGF5ZWQgZXhwb25lbnRpYWwgcmFtcCcsIHNob3VsZCwgeworICAgICAgICAgIGF1dG9t
YXRpb25GdW5jdGlvbjogZnVuY3Rpb24obm9kZSwgdmFsdWUsIHRpbWUpIHsKKyAgICAgICAgICAg
IG5vZGUuZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHZhbHVlLCB0aW1lKTsKKyAg
ICAgICAgICB9LAorICAgICAgICAgIHJlZmVyZW5jZUZ1bmN0aW9uOiBleHBvbmVudGlhbFJhbXAs
CisgICAgICAgICAgLy8gRXhwZXJpbWVudGFsbHkgZGV0ZXJtaW5lZCB0aHJlc2hvbGQKKyAgICAg
ICAgICB0aHJlc2hvbGQ6IHthYnNvbHV0ZVRocmVzaG9sZDogMS4zOTQ4ZS01fSwKKyAgICAgICAg
ICAvLyBUaGUgc3RhcnRpbmcgdmFsdWUgb2YgdGhlIGdhaW4gbm9kZQorICAgICAgICAgIHYwOiAw
LjUsCisgICAgICAgICAgLy8gVGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXV0b21hdGlvbgorICAg
ICAgICAgIHYxOiAyLAorICAgICAgICAgIGRlbGF5OiBxdWFudHVtRnJhbWVzIC8gc2FtcGxlUmF0
ZQorICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAg
ICBhdWRpdC5ydW4oKTsKKworICAgICAgLy8gR2VuZXJhdGUgdGhlIGV4cGVjdGVkIHdhdmVmb3Jt
IGZvciBhIGxpbmVhciByYW1wIHN0YXJ0aW5nIGZyb20gdGhlCisgICAgICAvLyB2YWx1ZSB8djB8
LCByYW1waW5nIHRvIHx2MXwgYXQgdGltZSB8ZW5kVGltZXwuICBUaGUgdGltZSBvZiB8djB8IGlz
CisgICAgICAvLyBhc3N1bWVkIHRvIGJlIDAuICB8bkZyYW1lc3wgaXMgaG93IG1hbnkgZnJhbWVz
IHRvIGdlbmVyYXRlLgorICAgICAgZnVuY3Rpb24gbGluZWFyUmFtcCh2MCwgdjEsIHN0YXJ0VGlt
ZSwgZW5kVGltZSwgbkZyYW1lcykgeworICAgICAgICBsZXQgZXhwZWN0ZWQgPQorICAgICAgICAg
ICAgY3JlYXRlTGluZWFyUmFtcEFycmF5KHN0YXJ0VGltZSwgZW5kVGltZSwgdjAsIHYxLCBzYW1w
bGVSYXRlKTsKKyAgICAgICAgbGV0IHByZUZpbGxlciA9IG5ldyBBcnJheShNYXRoLmZsb29yKHN0
YXJ0VGltZSAqIHNhbXBsZVJhdGUpKTsKKyAgICAgICAgbGV0IHBvc3RGaWxsZXIgPSBuZXcgQXJy
YXkobkZyYW1lcyAtIE1hdGguY2VpbChlbmRUaW1lICogc2FtcGxlUmF0ZSkpOworICAgICAgICBw
cmVGaWxsZXIuZmlsbCh2MCk7CisgICAgICAgIHJldHVybiBwcmVGaWxsZXIuY29uY2F0KGV4cGVj
dGVkLmNvbmNhdChwb3N0RmlsbGVyLmZpbGwodjEpKSk7CisgICAgICB9CisKKyAgICAgIC8vIEdl
bmVyYXRlIHRoZSBleHBlY3RlZCB3YXZlZm9ybSBmb3IgYW4gZXhwb25lbnRpYWwgcmFtcCBzdGFy
dGluZyBmcm9tCisgICAgICAvLyB0aGUgdmFsdWUgfHYwfCwgcmFtcGluZyB0byB8djF8IGF0IHRp
bWUgfGVuZFRpbWV8LiAgVGhlIHRpbWUgb2YgfHYwfCBpcworICAgICAgLy8gYXNzdW1lZCB0byBi
ZSAwLiAgfG5GcmFtZXN8IGlzIGhvdyBtYW55IGZyYW1lcyB0byBnZW5lcmF0ZS4KKyAgICAgIGZ1
bmN0aW9uIGV4cG9uZW50aWFsUmFtcCh2MCwgdjEsIHN0YXJ0VGltZSwgZW5kVGltZSwgbkZyYW1l
cykgeworICAgICAgICBsZXQgZXhwZWN0ZWQgPQorICAgICAgICAgICAgY3JlYXRlRXhwb25lbnRp
YWxSYW1wQXJyYXkoc3RhcnRUaW1lLCBlbmRUaW1lLCB2MCwgdjEsIHNhbXBsZVJhdGUpOworICAg
ICAgICBsZXQgcHJlRmlsbGVyID0gbmV3IEFycmF5KE1hdGguZmxvb3Ioc3RhcnRUaW1lICogc2Ft
cGxlUmF0ZSkpOworICAgICAgICBwcmVGaWxsZXIuZmlsbCh2MCk7CisgICAgICAgIGxldCBwb3N0
RmlsbGVyID0gbmV3IEFycmF5KG5GcmFtZXMgLSBNYXRoLmNlaWwoZW5kVGltZSAqIHNhbXBsZVJh
dGUpKTsKKyAgICAgICAgcmV0dXJuIHByZUZpbGxlci5jb25jYXQoZXhwZWN0ZWQuY29uY2F0KHBv
c3RGaWxsZXIuZmlsbCh2MSkpKTsKKyAgICAgIH0KKworICAgICAgLy8gUnVuIGFuIGF1dG9tYXRp
b24gdGVzdC4gfG1lc3NhZ2V8IGlzIHRoZSBtZXNzYWdlIHRvIHVzZSBmb3IgcHJpbnRpbmcKKyAg
ICAgIC8vIHRoZSByZXN1bHRzLiB8b3B0aW9uc3wgaXMgYSBwcm9wZXJ0eSBiYWcgY29udGFpbmlu
ZyB0aGUgY29uZmlndXJhdGlvbgorICAgICAgLy8gb2YgdGhlIHRlc3QgaW5jbHVkaW5nIHRoZSBm
b2xsb3dpbmc6CisgICAgICAvLworICAgICAgLy8gYXV0b21hdGlvbkZ1bmN0aW9uIC0gYXV0b21h
dGlvbiBmdW5jdGlvbiB0byB1c2UsCisgICAgICAvLyByZWZlcmVuY2VGdW5jdGlvbiAgLSBmdW5j
dGlvbiBnZW5lcmF0aW5nIHRoZSBleHBlY3RlZCByZXN1bHQKKyAgICAgIC8vIHRocmVzaG9sZCAg
ICAgICAgICAtIGNvbXBhcmlzb24gdGhyZXNob2xkCisgICAgICAvLyB2MCAgICAgICAgICAgICAg
ICAgLSBzdGFydGluZyB2YWx1ZQorICAgICAgLy8gdjEgICAgICAgICAgICAgICAgIC0gZW5kIHZh
bHVlIGZvciBhdXRvbWF0aW9uCisgICAgICBmdW5jdGlvbiBydW5UZXN0KG1lc3NhZ2UsIHNob3Vs
ZCwgb3B0aW9ucykgeworICAgICAgICBsZXQgYXV0b21hdGlvbkZ1bmN0aW9uID0gb3B0aW9ucy5h
dXRvbWF0aW9uRnVuY3Rpb247CisgICAgICAgIGxldCByZWZlcmVuY2VGdW5jdGlvbiA9IG9wdGlv
bnMucmVmZXJlbmNlRnVuY3Rpb247CisgICAgICAgIGxldCB0aHJlc2hvbGQgPSBvcHRpb25zLnRo
cmVzaG9sZDsKKyAgICAgICAgbGV0IHYwID0gb3B0aW9ucy52MDsKKyAgICAgICAgbGV0IHYxID0g
b3B0aW9ucy52MTsKKyAgICAgICAgbGV0IGRlbGF5ID0gb3B0aW9ucy5kZWxheTsKKworICAgICAg
ICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywg
c2FtcGxlUmF0ZSk7CisKKyAgICAgICAgLy8gQSBjb25zdGFudCBzb3VyY2Ugb2YgYW1wbGl0dWRl
IDEuCisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwor
ICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwg
MSk7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKworICAgICAgICAvLyBBdXRvbWF0aW9u
IGlzIGFwcGxpZWQgdG8gYSBnYWluIG5vZGUuICBTZXQgdGhlIGluaXRpYWwgdmFsdWUgb2YgdGhl
CisgICAgICAgIC8vIGdhaW4gaW4gdGhlIGNvbnN0cnVjdG9yOyB1c2luZyB0aGUgdmFsdWUgc2V0
dGVyIGRvZXMgYW4gaW1wbGljaXQKKyAgICAgICAgLy8gc2V0VmFsdWVBdFRpbWUgd2hpY2ggc2V0
cyBhbiBpbml0aWFsIGV2ZW50LiAgVGhpcyBkZWZlYXRzIHRoZSBwdXJwb3NlCisgICAgICAgIC8v
IG9mIHRoZSB0ZXN0LgorICAgICAgICBsZXQgZ2FpbiA9IG5ldyBHYWluTm9kZShjb250ZXh0LCB7
Z2FpbjogdjB9KTsKKworICAgICAgICAvLyBEZWxheSBzdGFydCBvZiBhdXRvbWF0aW9uLCBpZiBy
ZXF1ZXN0ZWQKKyAgICAgICAgaWYgKGRlbGF5KSB7CisgICAgICAgICAgY29udGV4dC5zdXNwZW5k
KG9wdGlvbnMuZGVsYXkpLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhdXRvbWF0aW9u
RnVuY3Rpb24oZ2FpbiwgdjEsIGF1dG9tYXRpb25FbmRUaW1lKTsKKyAgICAgICAgICAgIGNvbnRl
eHQucmVzdW1lKCk7CisgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
YXV0b21hdGlvbkZ1bmN0aW9uKGdhaW4sIHYxLCBhdXRvbWF0aW9uRW5kVGltZSk7CisgICAgICAg
IH0KKworICAgICAgICBzb3VyY2UuY29ubmVjdChnYWluKTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0
KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIHNvdXJjZS5zdGFydCgpOworCisgICAg
ICAgIHJldHVybiBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbihyZXN1bHRC
dWZmZXIpIHsKKyAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzdWx0QnVmZmVyLmdldENoYW5uZWxE
YXRhKDApOworICAgICAgICAgIGxldCBleHBlY3RlZCA9IHJlZmVyZW5jZUZ1bmN0aW9uKAorICAg
ICAgICAgICAgICB2MCwgdjEsIGRlbGF5ID8gZGVsYXkgOiAwLCBhdXRvbWF0aW9uRW5kVGltZSwg
cmVuZGVyRnJhbWVzKTsKKyAgICAgICAgICBzaG91bGQocmVzdWx0LCBtZXNzYWdlKS5iZUNsb3Nl
VG9BcnJheShleHBlY3RlZCwgdGhyZXNob2xkKTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAg
PC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1rLXJhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWstcmF0ZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDc1OGZhMDAzYjY4OGFhYjg4OTJkZDg2NDQ4ZjNkMzFiNzU5YzZjMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJh
bS1rLXJhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKKworUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgInZhbGlkYXRlIiAKK1BBU1MgRXhl
Y3V0aW5nICJwbGF5YmFja3JhdGUrZGV0dW5lIiAKK1BBU1MgRXhlY3V0aW5nICJwYW5uZXItay1y
YXRlIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFt2YWxpZGF0ZV0gVmFsaWRhdGUgdGVz
dCBwYXJhbWV0ZXJzIAorUEFTUyAgIGV2ZW50VGltZSBpcyBsZXNzIHRoYW4gMC4wNDI2NjY2NjY2
NjY2NjY2NjUuIAorUEFTUyA8IFt2YWxpZGF0ZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbcGxheWJhY2tyYXRlK2RldHVuZV0gVGVzdCBrLXJh
dGUgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIEF1ZGlvUGFyYW1zIAorUEFTUyAgIEZpbmFsIG5vZGUu
ZGV0dW5lLnZhbHVlIGlzIGVxdWFsIHRvIDAuNzUuIAorUEFTUyAgIEZpbmFsIG5vZGUucGxheWJh
Y2tSYXRlLnZhbHVlIGlzIGVxdWFsIHRvIDAuNS4gCitQQVNTIDwgW3BsYXliYWNrcmF0ZStkZXR1
bmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4g
W3Bhbm5lci1rLXJhdGVdIFRlc3Qgay1yYXRlIFBhbm5lck5vZGUgYW5kIEF1ZGlvTGlzdGVuZXJO
b2RlIEF1ZGlvUGFyYW1zIAorUEFTUyAgIEZpbmFsIHBhbm5lci5vcmllbnRhdGlvblgudmFsdWUg
aXMgZXF1YWwgdG8gMi41LiAKK1BBU1MgICBGaW5hbCBwYW5uZXIub3JpZW50YXRpb25ZLnZhbHVl
IGlzIGVxdWFsIHRvIDIuNS4gCitQQVNTICAgRmluYWwgcGFubmVyLm9yaWVudGF0aW9uWi52YWx1
ZSBpcyBlcXVhbCB0byAyLjUuIAorUEFTUyAgIEZpbmFsIHBhbm5lci5wb3NpdGlvblgudmFsdWUg
aXMgZXF1YWwgdG8gMTEuIAorUEFTUyAgIEZpbmFsIHBhbm5lci5wb3NpdGlvblkudmFsdWUgaXMg
ZXF1YWwgdG8gMTEuIAorUEFTUyAgIEZpbmFsIHBhbm5lci5wb3NpdGlvbloudmFsdWUgaXMgZXF1
YWwgdG8gMTEuIAorUEFTUyAgIEZpbmFsIGNvbnRleHQubGlzdGVuZXIuZm9yd2FyZFgudmFsdWUg
aXMgZXF1YWwgdG8gMy4gCitQQVNTICAgRmluYWwgY29udGV4dC5saXN0ZW5lci5mb3J3YXJkWS52
YWx1ZSBpcyBlcXVhbCB0byAzLiAKK1BBU1MgICBGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLmZvcndh
cmRaLnZhbHVlIGlzIGVxdWFsIHRvIDMuIAorUEFTUyAgIEZpbmFsIGNvbnRleHQubGlzdGVuZXIu
cG9zaXRpb25YLnZhbHVlIGlzIGVxdWFsIHRvIDAuNS4gCitQQVNTICAgRmluYWwgY29udGV4dC5s
aXN0ZW5lci5wb3NpdGlvblkudmFsdWUgaXMgZXF1YWwgdG8gMC41LiAKK1BBU1MgICBGaW5hbCBj
b250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWi52YWx1ZSBpcyBlcXVhbCB0byAwLjUuIAorUEFTUyAg
IEZpbmFsIGNvbnRleHQubGlzdGVuZXIudXBYLnZhbHVlIGlzIGVxdWFsIHRvIDQuIAorUEFTUyAg
IEZpbmFsIGNvbnRleHQubGlzdGVuZXIudXBZLnZhbHVlIGlzIGVxdWFsIHRvIDQuIAorUEFTUyAg
IEZpbmFsIGNvbnRleHQubGlzdGVuZXIudXBaLnZhbHVlIGlzIGVxdWFsIHRvIDQuIAorUEFTUyA8
IFtwYW5uZXItay1yYXRlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxNSBhc3NlcnRp
b25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMyB0YXNrcyByYW4gc3Vj
Y2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJh
bS9hdWRpb3BhcmFtLWstcmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJh
bS9hdWRpb3BhcmFtLWstcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZGJkMTIxNTExNmI3NzZhZjYz
OTliNzdkNWExZDc1Mzg4MTZlNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tay1yYXRlLmh0bWwKQEAgLTAsMCArMSwxOTMgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRl
c3Qgay1yYXRlIEF1ZGlvUGFyYW1zCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVk
aXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRp
dC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5
b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAgbGV0
IHJlbmRlckxlbmd0aCA9IDIwNDg7CisgICAgICBsZXQgZXZlbnRFbmRUaW1lID0gMC4wMTU7CisK
KyAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKQorCisgICAgICBhdWRp
dC5kZWZpbmUoCisgICAgICAgICAge2xhYmVsOiAndmFsaWRhdGUnLCBkZXNjcmlwdGlvbjogJ1Zh
bGlkYXRlIHRlc3QgcGFyYW1ldGVycyd9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3Vs
ZCkgeworICAgICAgICAgICAgc2hvdWxkKGV2ZW50RW5kVGltZSwgJ2V2ZW50VGltZScpCisgICAg
ICAgICAgICAgICAgLmJlTGVzc1RoYW4ocmVuZGVyTGVuZ3RoIC8gc2FtcGxlUmF0ZSk7CisgICAg
ICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5l
KAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAncGxheWJhY2tyYXRlK2RldHVuZScs
CisgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Rlc3Qgay1yYXRlIEF1ZGlvQnVmZmVyU291cmNl
Tm9kZSBBdWRpb1BhcmFtcycKKyAgICAgICAgICB9LAorICAgICAgICAgIGZ1bmN0aW9uKHRhc2ss
IHNob3VsZCkgeworCisgICAgICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9D
b250ZXh0KDEsIHJlbmRlckxlbmd0aCwgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgICBsZXQgYnVm
ZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3RoLCAxKTsKKyAg
ICAgICAgICAgIGxldCBub2RlID0gbmV3IEF1ZGlvQnVmZmVyU291cmNlTm9kZShjb250ZXh0LCB7
YnVmZmVyOiBidWZmZXJ9KTsKKworICAgICAgICAgICAgbm9kZS5jb25uZWN0KGNvbnRleHQuZGVz
dGluYXRpb24pOworCisgICAgICAgICAgICAvLyBJbml0aWFsaXplIGRldHVuZSBhbmQgcGxheWJh
Y2tSYXRlIHRvIHNvbWUgbm9uLXplcm8gdmFsdWUKKyAgICAgICAgICAgIC8vIChiZWNhdXNlIHdl
J3JlIHVzaW5nIGV4cG9uZW50aWFsIHJhbXBzLiAgVGhlbiBhZGQgZXhwb25lbnRpYWwKKyAgICAg
ICAgICAgIC8vIHJhbXAgdG8gc29tZSBub24temVybyBlbmQgdmFsdWUuICBUaGUgYWN0dWFsIHZh
bHVlcyBkb24ndCBtYXR0ZXIKKyAgICAgICAgICAgIC8vIGFzIGxvbmcgYXMgdGhleSdyZSBzdHJp
Y3RseSBwb3NpdGl2ZS4KKyAgICAgICAgICAgIG5vZGUuZGV0dW5lLnNldFZhbHVlQXRUaW1lKDAu
MTI1LCAwKTsKKyAgICAgICAgICAgIG5vZGUucGxheWJhY2tSYXRlLnNldFZhbHVlQXRUaW1lKDEs
IDApOworCisgICAgICAgICAgICBub2RlLmRldHVuZS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lKDAuNzUsIDAuMDE1KTsKKyAgICAgICAgICAgIG5vZGUucGxheWJhY2tSYXRlLmV4cG9uZW50
aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC41LCAwLjAxNSk7CisKKyAgICAgICAgICAgIG5vZGUuc3Rh
cnQoKTsKKworICAgICAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAg
ICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAvLyBUaGUgZmluYWwg
dmFsdWVzIGZvciBlYWNoIGF0dHJpYnV0ZSBzaG91bGQgYmUgdGhlIGV4cGVjdGVkCisgICAgICAg
ICAgICAgICAgICAvLyBmaW5hbCB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgIHNob3VsZChub2Rl
LmRldHVuZS52YWx1ZSwgJ0ZpbmFsIG5vZGUuZGV0dW5lLnZhbHVlJykKKyAgICAgICAgICAgICAg
ICAgICAgICAuYmVFcXVhbFRvKDAuNzUpOworICAgICAgICAgICAgICAgICAgc2hvdWxkKAorICAg
ICAgICAgICAgICAgICAgICAgIG5vZGUucGxheWJhY2tSYXRlLnZhbHVlLCAnRmluYWwgbm9kZS5w
bGF5YmFja1JhdGUudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oMC41
KTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5i
aW5kKHRhc2spKTsKKyAgICAgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKAorICAgICAg
ICAgIHsKKyAgICAgICAgICAgIGxhYmVsOiAncGFubmVyLWstcmF0ZScsCisgICAgICAgICAgICBk
ZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAnVGVzdCBrLXJhdGUgUGFubmVyTm9kZSBhbmQg
QXVkaW9MaXN0ZW5lck5vZGUgQXVkaW9QYXJhbXMnCisgICAgICAgICAgfSwKKyAgICAgICAgICBm
dW5jdGlvbih0YXNrLCBzaG91bGQpIHsKKworICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJMZW5ndGgsIHNhbXBsZVJhdGUpOworICAgICAg
ICAgICAgbGV0IGJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIHJlbmRlckxl
bmd0aCwgMSk7CisgICAgICAgICAgICBsZXQgc291cmNlID0gbmV3IEF1ZGlvQnVmZmVyU291cmNl
Tm9kZShjb250ZXh0LCB7YnVmZmVyOiBidWZmZXJ9KTsKKworICAgICAgICAgICAgbGV0IHBhbm5l
ciA9IG5ldyBQYW5uZXJOb2RlKGNvbnRleHQsIHtwYW5uaW5nTW9kZWw6ICdIUlRGJ30pOworCisg
ICAgICAgICAgICBzb3VyY2UuY29ubmVjdChwYW5uZXIpLmNvbm5lY3QoY29udGV4dC5kZXN0aW5h
dGlvbik7CisKKyAgICAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGstcmF0ZSBwYXJhbWV0ZXJz
IHRvIHNvbWUgcG9zaXRpdmUgdmFsdWUuICBUaGVuCisgICAgICAgICAgICAvLyBhZGQgZXhwb25l
bnRpYWwgcmFtcCB0byBzb21lIG5vbi16ZXJvIGVuZCB2YWx1ZS4gIFRoZSBhY3R1YWwKKyAgICAg
ICAgICAgIC8vIHZhbHVlcyBkb24ndCBtYXR0ZXIgYXMgbG9uZyBhcyB0aGV5J3JlIHN0cmljdGx5
IHBvc2l0aXZlLgorICAgICAgICAgICAgcGFubmVyLm9yaWVudGF0aW9uWC5zZXRWYWx1ZUF0VGlt
ZSgxLCAwKTsKKyAgICAgICAgICAgIHBhbm5lci5vcmllbnRhdGlvblkuc2V0VmFsdWVBdFRpbWUo
MSwgMCk7CisgICAgICAgICAgICBwYW5uZXIub3JpZW50YXRpb25aLnNldFZhbHVlQXRUaW1lKDEs
IDApOworCisgICAgICAgICAgICBwYW5uZXIucG9zaXRpb25YLnNldFZhbHVlQXRUaW1lKDUsIDAp
OworICAgICAgICAgICAgcGFubmVyLnBvc2l0aW9uWS5zZXRWYWx1ZUF0VGltZSg1LCAwKTsKKyAg
ICAgICAgICAgIHBhbm5lci5wb3NpdGlvblouc2V0VmFsdWVBdFRpbWUoNSwgMCk7CisKKyAgICAg
ICAgICAgIGNvbnRleHQubGlzdGVuZXIuZm9yd2FyZFguc2V0VmFsdWVBdFRpbWUoMSwgMCk7Cisg
ICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLmZvcndhcmRZLnNldFZhbHVlQXRUaW1lKDEsIDAp
OworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5mb3J3YXJkWi5zZXRWYWx1ZUF0VGltZSgx
LCAwKTsKKworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5wb3NpdGlvblguc2V0VmFsdWVB
dFRpbWUoLjUsIDApOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5wb3NpdGlvblkuc2V0
VmFsdWVBdFRpbWUoLjUsIDApOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5wb3NpdGlv
blouc2V0VmFsdWVBdFRpbWUoLjUsIDApOworCisgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVy
LnVwWC5zZXRWYWx1ZUF0VGltZSgxLCAwKTsKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIu
dXBZLnNldFZhbHVlQXRUaW1lKDEsIDApOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci51
cFouc2V0VmFsdWVBdFRpbWUoMSwgMCk7CisKKyAgICAgICAgICAgIHBhbm5lci5vcmllbnRhdGlv
blguZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgyLjUsIDAuMDE1KTsKKyAgICAgICAgICAg
IHBhbm5lci5vcmllbnRhdGlvblkuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgyLjUsIDAu
MDE1KTsKKyAgICAgICAgICAgIHBhbm5lci5vcmllbnRhdGlvblouZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZUF0VGltZSgyLjUsIDAuMDE1KTsKKworICAgICAgICAgICAgcGFubmVyLnBvc2l0aW9uWC5l
eHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDExLCAwLjAxNSk7CisgICAgICAgICAgICBwYW5u
ZXIucG9zaXRpb25ZLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMTEsIDAuMDE1KTsKKyAg
ICAgICAgICAgIHBhbm5lci5wb3NpdGlvblouZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgx
MSwgMC4wMTUpOworCisgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLmZvcndhcmRYLmV4cG9u
ZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMywgMC4wMTUpOworICAgICAgICAgICAgY29udGV4dC5s
aXN0ZW5lci5mb3J3YXJkWS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDMsIDAuMDE1KTsK
KyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIuZm9yd2FyZFouZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZUF0VGltZSgzLCAwLjAxNSk7CisKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIucG9z
aXRpb25YLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC41LCAwLjAxNSk7CisgICAgICAg
ICAgICBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lKDAuNSwgMC4wMTUpOworICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5wb3NpdGlvblou
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgwLjUsIDAuMDE1KTsKKworICAgICAgICAgICAg
Y29udGV4dC5saXN0ZW5lci51cFguZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSg0LCAwLjAx
NSk7CisgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLnVwWS5leHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lKDQsIDAuMDE1KTsKKyAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIudXBaLmV4
cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoNCwgMC4wMTUpOworCisgICAgICAgICAgICBzb3Vy
Y2Uuc3RhcnQoKTsKKworICAgICAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAg
ICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAvLyBUaGUg
ZmluYWwgdmFsdWVzIGZvciBlYWNoIGF0dHJpYnV0ZSBzaG91bGQgYmUgdGhlIGV4cGVjdGVkCisg
ICAgICAgICAgICAgICAgICAvLyBmaW5hbCB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgIHNob3Vs
ZCgKKyAgICAgICAgICAgICAgICAgICAgICBwYW5uZXIub3JpZW50YXRpb25YLnZhbHVlLAorICAg
ICAgICAgICAgICAgICAgICAgICdGaW5hbCBwYW5uZXIub3JpZW50YXRpb25YLnZhbHVlJykKKyAg
ICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKDIuNSk7CisgICAgICAgICAgICAgICAgICBz
aG91bGQoCisgICAgICAgICAgICAgICAgICAgICAgcGFubmVyLm9yaWVudGF0aW9uWS52YWx1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAnRmluYWwgcGFubmVyLm9yaWVudGF0aW9uWS52YWx1ZScp
CisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygyLjUpOworICAgICAgICAgICAgICAg
ICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAgIHBhbm5lci5vcmllbnRhdGlvbloudmFs
dWUsCisgICAgICAgICAgICAgICAgICAgICAgJ0ZpbmFsIHBhbm5lci5vcmllbnRhdGlvbloudmFs
dWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oMi41KTsKKyAgICAgICAgICAg
ICAgICAgIHNob3VsZChwYW5uZXIucG9zaXRpb25YLnZhbHVlLCAnRmluYWwgcGFubmVyLnBvc2l0
aW9uWC52YWx1ZScpCisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygxMSk7CisgICAg
ICAgICAgICAgICAgICBzaG91bGQocGFubmVyLnBvc2l0aW9uWS52YWx1ZSwgJ0ZpbmFsIHBhbm5l
ci5wb3NpdGlvblkudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oMTEp
OworICAgICAgICAgICAgICAgICAgc2hvdWxkKHBhbm5lci5wb3NpdGlvbloudmFsdWUsICdGaW5h
bCBwYW5uZXIucG9zaXRpb25aLnZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVh
bFRvKDExKTsKKworICAgICAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRleHQubGlzdGVuZXIuZm9yd2FyZFgudmFsdWUsCisgICAgICAgICAgICAgICAgICAg
ICAgJ0ZpbmFsIGNvbnRleHQubGlzdGVuZXIuZm9yd2FyZFgudmFsdWUnKQorICAgICAgICAgICAg
ICAgICAgICAgIC5iZUVxdWFsVG8oMyk7CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAg
ICAgICAgICAgICAgICAgICAgY29udGV4dC5saXN0ZW5lci5mb3J3YXJkWS52YWx1ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAnRmluYWwgY29udGV4dC5saXN0ZW5lci5mb3J3YXJkWS52YWx1ZScp
CisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygzKTsKKyAgICAgICAgICAgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyLmZvcndhcmRa
LnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICdGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLmZv
cndhcmRaLnZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKDMpOworICAg
ICAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubGlz
dGVuZXIucG9zaXRpb25YLnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICdGaW5hbCBjb250
ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWC52YWx1ZScpCisgICAgICAgICAgICAgICAgICAgICAgLmJl
RXF1YWxUbygwLjUpOworICAgICAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRleHQubGlzdGVuZXIucG9zaXRpb25ZLnZhbHVlLAorICAgICAgICAgICAgICAg
ICAgICAgICdGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9uWS52YWx1ZScpCisgICAgICAg
ICAgICAgICAgICAgICAgLmJlRXF1YWxUbygwLjUpOworICAgICAgICAgICAgICAgICAgc2hvdWxk
KAorICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubGlzdGVuZXIucG9zaXRpb25aLnZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICdGaW5hbCBjb250ZXh0Lmxpc3RlbmVyLnBvc2l0aW9u
Wi52YWx1ZScpCisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbygwLjUpOworICAgICAg
ICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubGlzdGVu
ZXIudXBYLnZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICdGaW5hbCBjb250ZXh0Lmxpc3Rl
bmVyLnVwWC52YWx1ZScpCisgICAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyg0KTsKKyAg
ICAgICAgICAgICAgICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lmxp
c3RlbmVyLnVwWS52YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAnRmluYWwgY29udGV4dC5s
aXN0ZW5lci51cFkudmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oNCk7
CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICAgICAgY29udGV4
dC5saXN0ZW5lci51cFoudmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgJ0ZpbmFsIGNvbnRl
eHQubGlzdGVuZXIudXBaLnZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRv
KDQpOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLnRoZW4odGFzay5kb25l
LmJpbmQodGFzaykpOworICAgICAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLWxpbmVhclJhbXAtdmFsdWUtYXR0cmlidXRlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1s
aW5lYXJSYW1wLXZhbHVlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDM3OTlj
NjU1ZjJjMzgxYWE2ODkzYmU4YTVmOWQ2ZmUwMzRjYjFjZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1saW5lYXJSYW1wLXZhbHVl
LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3MiBAQAorCitQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAicHJvcGFnYXRlIiAKK1BBU1Mg
QXVkaXQgcmVwb3J0IAorUEFTUyA+IFtwcm9wYWdhdGVdICAKK1BBU1MgICBnYWluLmdhaW4udmFs
dWUgYXQgZnJhbWUgMTI3IGlzIGVxdWFsIHRvIDAuMDMxMDA1ODU5Mzc1LiAKK1BBU1MgICBnYWlu
LmdhaW4udmFsdWUgYXQgZnJhbWUgMjU1IGlzIGVxdWFsIHRvIDAuMDYyMjU1ODU5Mzc1LiAKK1BB
U1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMzgzIGlzIGVxdWFsIHRvIDAuMDkzNTA1ODU5
Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgNTExIGlzIGVxdWFsIHRvIDAu
MTI0NzU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgNjM5IGlzIGVx
dWFsIHRvIDAuMTU2MDA1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUg
NzY3IGlzIGVxdWFsIHRvIDAuMTg3MjU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUg
YXQgZnJhbWUgODk1IGlzIGVxdWFsIHRvIDAuMjE4NTA1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdh
aW4udmFsdWUgYXQgZnJhbWUgMTAyMyBpcyBlcXVhbCB0byAwLjI0OTc1NTg1OTM3NS4gCitQQVNT
ICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDExNTEgaXMgZXF1YWwgdG8gMC4yODEwMDU4NTkz
NzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAxMjc5IGlzIGVxdWFsIHRvIDAu
MzEyMjU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMTQwNyBpcyBl
cXVhbCB0byAwLjM0MzUwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1l
IDE1MzUgaXMgZXF1YWwgdG8gMC4zNzQ3NTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1
ZSBhdCBmcmFtZSAxNjYzIGlzIGVxdWFsIHRvIDAuNDA2MDA1ODU5Mzc1LiAKK1BBU1MgICBnYWlu
LmdhaW4udmFsdWUgYXQgZnJhbWUgMTc5MSBpcyBlcXVhbCB0byAwLjQzNzI1NTg1OTM3NS4gCitQ
QVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDE5MTkgaXMgZXF1YWwgdG8gMC40Njg1MDU4
NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAyMDQ3IGlzIGVxdWFsIHRv
IDAuNDk5NzU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMjE3NSBp
cyBlcXVhbCB0byAwLjUzMTAwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZy
YW1lIDIzMDMgaXMgZXF1YWwgdG8gMC41NjIyNTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52
YWx1ZSBhdCBmcmFtZSAyNDMxIGlzIGVxdWFsIHRvIDAuNTkzNTA1ODU5Mzc1LiAKK1BBU1MgICBn
YWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMjU1OSBpcyBlcXVhbCB0byAwLjYyNDc1NTg1OTM3NS4g
CitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDI2ODcgaXMgZXF1YWwgdG8gMC42NTYw
MDU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAyODE1IGlzIGVxdWFs
IHRvIDAuNjg3MjU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMjk0
MyBpcyBlcXVhbCB0byAwLjcxODUwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0
IGZyYW1lIDMwNzEgaXMgZXF1YWwgdG8gMC43NDk3NTU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fp
bi52YWx1ZSBhdCBmcmFtZSAzMTk5IGlzIGVxdWFsIHRvIDAuNzgxMDA1ODU5Mzc1LiAKK1BBU1Mg
ICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgMzMyNyBpcyBlcXVhbCB0byAwLjgxMjI1NTg1OTM3
NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDM0NTUgaXMgZXF1YWwgdG8gMC44
NDM1MDU4NTkzNzUuIAorUEFTUyAgIGdhaW4uZ2Fpbi52YWx1ZSBhdCBmcmFtZSAzNTgzIGlzIGVx
dWFsIHRvIDAuODc0NzU1ODU5Mzc1LiAKK1BBU1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUg
MzcxMSBpcyBlcXVhbCB0byAwLjkwNjAwNTg1OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVl
IGF0IGZyYW1lIDM4MzkgaXMgZXF1YWwgdG8gMC45MzcyNTU4NTkzNzUuIAorUEFTUyAgIGdhaW4u
Z2Fpbi52YWx1ZSBhdCBmcmFtZSAzOTY3IGlzIGVxdWFsIHRvIDAuOTY4NTA1ODU5Mzc1LiAKK1BB
U1MgICBnYWluLmdhaW4udmFsdWUgYXQgZnJhbWUgNDA5NSBpcyBlcXVhbCB0byAwLjk5OTc1NTg1
OTM3NS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQyMjMgaXMgZXF1YWwgdG8g
MS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQzNTEgaXMgZXF1YWwgdG8gMS4g
CitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQ0NzkgaXMgZXF1YWwgdG8gMS4gCitQ
QVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQ2MDcgaXMgZXF1YWwgdG8gMS4gCitQQVNT
ICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQ3MzUgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAg
Z2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDQ4NjMgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fp
bi5nYWluLnZhbHVlIGF0IGZyYW1lIDQ5OTEgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5n
YWluLnZhbHVlIGF0IGZyYW1lIDUxMTkgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWlu
LnZhbHVlIGF0IGZyYW1lIDUyNDcgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZh
bHVlIGF0IGZyYW1lIDUzNzUgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVl
IGF0IGZyYW1lIDU1MDMgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0
IGZyYW1lIDU2MzEgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZy
YW1lIDU3NTkgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1l
IDU4ODcgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDYw
MTUgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDYxNDMg
aXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDYyNzEgaXMg
ZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDYzOTkgaXMgZXF1
YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDY1MjcgaXMgZXF1YWwg
dG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDY2NTUgaXMgZXF1YWwgdG8g
MS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDY3ODMgaXMgZXF1YWwgdG8gMS4g
CitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDY5MTEgaXMgZXF1YWwgdG8gMS4gCitQ
QVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDcwMzkgaXMgZXF1YWwgdG8gMS4gCitQQVNT
ICAgZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDcxNjcgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAg
Z2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lIDcyOTUgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fp
bi5nYWluLnZhbHVlIGF0IGZyYW1lIDc0MjMgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5n
YWluLnZhbHVlIGF0IGZyYW1lIDc1NTEgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWlu
LnZhbHVlIGF0IGZyYW1lIDc2NzkgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZh
bHVlIGF0IGZyYW1lIDc4MDcgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVl
IGF0IGZyYW1lIDc5MzUgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgZ2Fpbi5nYWluLnZhbHVlIGF0
IGZyYW1lIDgwNjMgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgbGluZWFyUmFtcFRvVmFsdWUgcHJv
cGVybHkgc2V0IHRoZSBBdWRpb1BhcmFtIHZhbHVlIAorUEFTUyA8IFtwcm9wYWdhdGVdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDY0IGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRB
U0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbGluZWFyUmFt
cC12YWx1ZS1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0v
YXVkaW9wYXJhbS1saW5lYXJSYW1wLXZhbHVlLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MDE5YmFlYWZmYTJjMWQwYzM1NmRiMDAxMTJlZGUxYzY2NGIxODMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbGluZWFyUmFtcC12
YWx1ZS1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IGxpbmVhclJhbXBUb1ZhbHVl
IFVwZGF0ZXMgdGhlIFBhcmFtIFZhbHVlCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
YXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9h
dWRpdC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0i
bGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgcmVuZGVyUXVhbnR1bVNpemUgPSAxMjg7Cisg
ICAgICAvLyBTaG91bGQgYmUgYSBwb3dlciBvZiB0d28gdG8gZ2V0IHJpZCBvZiByb3VuZGluZyBl
cnJvcnMgd2hlbiBjb252ZXJ0aW5nCisgICAgICAvLyBiZXR3ZWVuIHRpbWUgYW5kIGZyYW1lLgor
ICAgICAgbGV0IHNhbXBsZVJhdGUgPSA4MTkyOworICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0g
MTsKKyAgICAgIC8vIEVuZCB0aW1lIG9mIHRoZSBsaW5lYXIgcmFtcCBhdXRvbWF0aW9uCisgICAg
ICBsZXQgcmFtcEVuZFRpbWUgPSByZW5kZXJEdXJhdGlvbiAvIDI7CisKKyAgICAgIGxldCBhdWRp
dCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgLy8gVGVzdCB0aGF0IGxpbmVh
clJhbXBUb1ZhbHVlIHByb3Blcmx5IHNldHMgdGhlIEF1ZGlvUGFyYW0gLnZhbHVlCisgICAgICAv
LyBhdHRyaWJ1dGUgd2hlbiB0aGUgbGluZWFyUmFtcCBhdXRvbWF0aW9uIGlzIHJ1bm5pbmcuCisg
ICAgICBhdWRpdC5kZWZpbmUoJ3Byb3BhZ2F0ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAg
ICAgbGV0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwg
cmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBD
cmVhdGUgYSBjb25zdGFudCBzb3VyY2UuCisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNy
ZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlQ29uc3Rh
bnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKwor
ICAgICAgICAvLyBUaGUgZ2FpbiBub2RlIHRvIGJlIGF1dG9tYXRlZCBmb3IgdGVzdGluZy4KKyAg
ICAgICAgbGV0IGdhaW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKworICAgICAgICBnYWluLmdh
aW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgIGdhaW4uZ2Fpbi5saW5lYXJSYW1wVG9W
YWx1ZUF0VGltZSgxLCByYW1wRW5kVGltZSk7CisKKyAgICAgICAgLy8gQ29ubmVjdCB1cCB0aGUg
Z3JhcGgKKyAgICAgICAgc291cmNlLmNvbm5lY3QoZ2Fpbik7CisgICAgICAgIGdhaW4uY29ubmVj
dChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICBsZXQgc3VjY2VzcyA9IHRydWU7CisK
KyAgICAgICAgLy8gVGhlIG51bWJlciBvZiByZW5kZXJpbmcgcXVhbnRhIHRoYXQgd2lsbCBiZSBw
cm9jZXNzZWQgaW4gdGhlIGNvbnRleHQuCisgICAgICAgIC8vIEF0IHRoZSBiZWdpbm5pbmcgb2Yg
ZWFjaCByZW5kZXJpbmcgcXVhbnR1bSAoZXhjZXB0IHRoZSBmaXJzdCksIHdlCisgICAgICAgIC8v
IHdpbGwgY2hlY2sgdGhhdCBnYWluLmdhaW4udmFsdWUgaGFzIHRoZSBleHBlY3RlZCB2YWx1ZS4K
KyAgICAgICAgbGV0IHJlbmRlckxvb3BzID0KKyAgICAgICAgICAgIE1hdGguZmxvb3IocmVuZGVy
RHVyYXRpb24gKiBzYW1wbGVSYXRlIC8gcmVuZGVyUXVhbnR1bVNpemUpOworCisgICAgICAgIGZv
ciAobGV0IGsgPSAxOyBrIDwgcmVuZGVyTG9vcHM7ICsraykgeworICAgICAgICAgIGxldCB0aW1l
ID0gayAqIHJlbmRlclF1YW50dW1TaXplIC8gc2FtcGxlUmF0ZTsKKyAgICAgICAgICBjb250ZXh0
LnN1c3BlbmQodGltZSkKKyAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgbGV0IGV4cGVjdGVkID0gMTsKKworICAgICAgICAgICAgICAgIGlmIChjb250ZXh0
LmN1cnJlbnRUaW1lIDw9IHJhbXBFbmRUaW1lKSB7CisgICAgICAgICAgICAgICAgICAvLyBUaGUg
ZXhwZWN0ZWQgdmFsdWUgb2YgdGhlIGdhaW4gaXMgdGhlIGxhc3QgY29tcHV0ZWQgdmFsdWUKKyAg
ICAgICAgICAgICAgICAgIC8vIGZyb20gdGhlIHByZXZpb3VzIHJlbmRlcmluZyBxdWFudHVtIGJl
Y2F1c2Ugc3VzcGVuZCgpIHN0b3BzCisgICAgICAgICAgICAgICAgICAvLyBhdCB0aGUgYmVnaW5u
aW5nIG9mIGEgcmVuZGVyaW5nIHF1YW50dW0sIHNvIHdlIGhhdmVuJ3QKKyAgICAgICAgICAgICAg
ICAgIC8vIGNvbXB1dGVkIHRoZSBuZXcgdmFsdWUgeWV0LgorICAgICAgICAgICAgICAgICAgZXhw
ZWN0ZWQgPQorICAgICAgICAgICAgICAgICAgICAgIChjb250ZXh0LmN1cnJlbnRUaW1lIC0gMSAv
IHNhbXBsZVJhdGUpIC8gcmFtcEVuZFRpbWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgbGV0IGZyYW1lID0gY29udGV4dC5jdXJyZW50VGltZSAqIHNhbXBsZVJhdGUgLSAx
OworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPQorICAgICAgICAgICAgICAgICAgICBzaG91bGQo
Z2Fpbi5nYWluLnZhbHVlLCAnZ2Fpbi5nYWluLnZhbHVlIGF0IGZyYW1lICcgKyBmcmFtZSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8oZXhwZWN0ZWQpOworICAgICAgICAgICAg
ICB9KQorICAgICAgICAgICAgICAudGhlbihjb250ZXh0LnJlc3VtZS5iaW5kKGNvbnRleHQpKTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIFJvY2sgYW5kIHJvbGwhCisgICAgICAgIHNvdXJjZS5z
dGFydCgpOworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAgICAgICAgICAgIC50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICBzaG91bGQoc3VjY2VzcywgJ2xp
bmVhclJhbXBUb1ZhbHVlJykKKyAgICAgICAgICAgICAgICAgIC5tZXNzYWdlKAorICAgICAgICAg
ICAgICAgICAgICAgICdwcm9wZXJseSBzZXQgdGhlIEF1ZGlvUGFyYW0gdmFsdWUnLAorICAgICAg
ICAgICAgICAgICAgICAgICdkaWQgbm90IHByb3Blcmx5IHNldCB0aGUgQXVkaW9QYXJhbSB2YWx1
ZScpOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgp
KTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJh
bS9hdWRpb3BhcmFtLW5lZ2F0aXZlLWV4cG9uZW50aWFsUmFtcC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbmVnYXRpdmUtZXhwb25lbnRp
YWxSYW1wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMGRhNmJhZmZiOGE0NGFmYmMwMGY3ZTMy
N2VlNzYwM2UwYzZiZTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
QXVkaW9QYXJhbS9hdWRpb3BhcmFtLW5lZ2F0aXZlLWV4cG9uZW50aWFsUmFtcC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0NiBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4g
CitQQVNTIEV4ZWN1dGluZyAiYm90aCBuZWdhdGl2ZSB2YWx1ZXMiIAorUEFTUyBFeGVjdXRpbmcg
Im5lZ2F0aXZlLWVuZCIgCitQQVNTIEV4ZWN1dGluZyAicG9zaXRpdmUtZW5kIiAKK1BBU1MgRXhl
Y3V0aW5nICJwcm9wYWdhdGUiIAorUEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW2JvdGggbmVn
YXRpdmUgdmFsdWVzXSAgCitGQUlMIFggTmVnYXRpdmUgZXhwb25lbnRpYWwgcmFtcCBmcm9tIC0x
IHRvIC0yIGV4cGVjdGVkIHRvIGJlIGVxdWFsIHRvIHRoZSBhcnJheSBbLTEsLTEuMDAwMTE1NTEz
ODAxNTc0NywtMS4wMDAyMzEwMjc2MDMxNDk0LC0xLjAwMDM0NjU0MTQwNDcyNDEsLTEuMDAwNDYy
MDU1MjA2Mjk4OCwtMS4wMDA1Nzc1NjkwMDc4NzM1LC0xLjAwMDY5MzIwMjAxODczNzgsLTEuMDAw
ODA4ODM1MDI5NjAyLC0xLjAwMDkyNDQ2ODA0MDQ2NjMsLTEuMDAxMDQwMTAxMDUxMzMwNiwtMS4w
MDExNTU3MzQwNjIxOTQ4LC0xLjAwMTI3MTM2NzA3MzA1OSwtMS4wMDEzODcwMDAwODM5MjMzLC0x
LjAwMTUwMjYzMzA5NDc4NzYsLTEuMDAxNjE4MjY2MTA1NjUxOSwtMS4wMDE3MzQwMTgzMjU4MDU3
Li4uXSBidXQgZGlmZmVycyBpbiA2MDAwIHBsYWNlczoKKwlJbmRleAlBY3R1YWwJCQlFeHBlY3Rl
ZAorCVswXQkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJLTEuMDAwMDAwMDAwMDAwMDAwMGUrMAorCVsx
XQkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJLTEuMDAwMTE1NTEzODAxNTc0N2UrMAorCVsyXQkxLjAw
MDAwMDAwMDAwMDAwMDBlKzAJLTEuMDAwMjMxMDI3NjAzMTQ5NGUrMAorCVszXQkxLjAwMDAwMDAw
MDAwMDAwMDBlKzAJLTEuMDAwMzQ2NTQxNDA0NzI0MWUrMAorCS4uLmFuZCA1OTk2IG1vcmUgZXJy
b3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbYm90aCBu
ZWdhdGl2ZSB2YWx1ZXNdIDEgb3V0IG9mIDEgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW25lZ2F0aXZlLWVuZF0gIAor
RkFJTCBYIEV4cG9uZW50aWFsIHJhbXAgZnJvbSAyIHRvIC0xOiBFeHBlY3RlZCAyIGZvciBhbGwg
dmFsdWVzIGJ1dCBmb3VuZCA2MDAwIHVuZXhwZWN0ZWQgdmFsdWVzOiAKKwlJbmRleAlBY3R1YWwK
KwlbMF0JMQorCVsxXQkxCisJWzJdCTEKKwlbM10JMQorCS4uLmFuZCA1OTk2IG1vcmUgZXJyb3Jz
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbbmVnYXRpdmUt
ZW5kXSAxIG91dCBvZiAxIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtwb3NpdGl2ZS1lbmRdICAKK0ZBSUwgWCBFeHBv
bmVudGlhbCByYW1wIGZyb20gLTEgdG8gMTogRXhwZWN0ZWQgLTEgZm9yIGFsbCB2YWx1ZXMgYnV0
IGZvdW5kIDYwMDAgdW5leHBlY3RlZCB2YWx1ZXM6IAorCUluZGV4CUFjdHVhbAorCVswXQkxCisJ
WzFdCTEKKwlbMl0JMQorCVszXQkxCisJLi4uYW5kIDU5OTYgbW9yZSBlcnJvcnMuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFtwb3NpdGl2ZS1lbmRdIDEgb3V0
IG9mIDEgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUg
Z290IGZhbHNlCitQQVNTID4gW3Byb3BhZ2F0ZV0gIAorRkFJTCBYIEV4cG9uZW50aWFsIHJhbXAg
ZnJvbSAtMSB0byAxIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGxpbmVhciByYW1wOiBFeHBlY3RlZCAt
MSBmb3IgYWxsIHZhbHVlcyBidXQgZm91bmQgMTUwMCB1bmV4cGVjdGVkIHZhbHVlczogCisJSW5k
ZXgJQWN0dWFsCisJWzBdCS0wLjk5Nzk5OTkwNjUzOTkxNworCVsxXQktMC45OTc5OTk5MDY1Mzk5
MTcKKwlbMl0JLTAuOTk3OTk5OTA2NTM5OTE3CisJWzNdCS0wLjk5Nzk5OTkwNjUzOTkxNworCS4u
LmFuZCAxNDk2IG1vcmUgZXJyb3JzLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK1BBU1MgICBFeHBvbmVudGlhbCByYW1wIGFmdGVyIGVuZCBvZiByYW1wIGNvbnRhaW5zIG9u
bHkgdGhlIGNvbnN0YW50IDEuIAorRkFJTCA8IFtwcm9wYWdhdGVdIDEgb3V0IG9mIDIgYXNzZXJ0
aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitG
QUlMICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDQgb3V0IG9mIDQgdGFza3Mgd2VyZSBm
YWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbmVnYXRpdmUtZXhw
b25lbnRpYWxSYW1wLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tbmVnYXRpdmUtZXhwb25lbnRpYWxSYW1wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmUzZTg5ZGZm
N2ZmZmU2NTM4MjkzODQzOTNmMGI0NGUwNGEwNDdhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1uZWdhdGl2ZS1leHBvbmVudGlh
bFJhbXAuaHRtbApAQCAtMCwwICsxLDE2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAg
PGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBOZWdhdGl2ZSBBdWRpb1BhcmFtLmV4cG9u
ZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9h
dWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1
ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJs
YXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gNDgwMDA7CisKKyAgICAg
IGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdib3RoIG5lZ2F0aXZlIHZhbHVlcycsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAg
bGV0IHJlbmRlckR1cmF0aW9uID0gMC4xMjU7CisKKyAgICAgICAgLy8gQ3JlYXRlIGNvbnRleHQg
d2l0aCB0d28gY2hhbm5lbHMuICBDaGFubmVsIDAgY29udGFpbnMgdGhlCisgICAgICAgIC8vIHBv
c2l0aXZlLXZhbHVlZCBleHBvbmVudGlhbCBhbmQgY2hhbm5lbCAxIGNvbnRhaW5zIHRoZQorICAg
ICAgICAvLyBuZWdhdGl2ZS12YWx1ZWQgZXhwb25lbnRpYWwuICBXZSdsbCBjb21wYXJlIHRoZSB0
d28gY2hhbm5lbHMgdG8KKyAgICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhleSdyZSB0aGUgc2FtZSwg
YXMgdGhleSBzaG91bGQgYmUuCisgICAgICAgIGxldCBjb250ZXh0ID0KKyAgICAgICAgICAgIG5l
dyBPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2Ft
cGxlUmF0ZSk7CisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJj
ZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4
dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKworICAgICAgICAvLyBHYWlu
IG5vZGUgZ3AgaXMgZm9yIHRoZSBwb3NpdGl2ZS12YWx1ZWQgZXhwb25lbnRpYWwgcmFtcCwgYW5k
IGduIGlzCisgICAgICAgIC8vIGZvciB0aGUgbmVnYXRpdmUtdmFsdWVkIGV4cG9uZW50aWFsIHJh
bXAuCisgICAgICAgIGxldCBncCA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQg
Z24gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgbGV0IG1lcmdlciA9IGNvbnRleHQu
Y3JlYXRlQ2hhbm5lbE1lcmdlcigyKTsKKworICAgICAgICBzb3VyY2UuY29ubmVjdChncCkuY29u
bmVjdChtZXJnZXIsIDAsIDApOworICAgICAgICBzb3VyY2UuY29ubmVjdChnbikuY29ubmVjdCht
ZXJnZXIsIDAsIDEpOworICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9u
KTsKKworICAgICAgICBncC5nYWluLnNldFZhbHVlQXRUaW1lKDEsIDApOworICAgICAgICBncC5n
YWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMiwgcmVuZGVyRHVyYXRpb24pOworCisg
ICAgICAgIGduLmdhaW4uc2V0VmFsdWVBdFRpbWUoLTEsIDApOworICAgICAgICBnbi5nYWluLmV4
cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoLTIsIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAg
ICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAg
ICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgICAgICAv
LyBWZXJpZnkgdGhhdCBjaGFubmVscyBoYXZlIHRoZSBzYW1lIHZhbHVlcywgZXhjZXB0IGZvciB0
aGUgc2lnbi4KKyAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkID0gcmVzdWx0QnVmZmVyLmdldENo
YW5uZWxEYXRhKDApOworICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gcmVzdWx0QnVmZmVyLmdl
dENoYW5uZWxEYXRhKDEpOworICAgICAgICAgICAgICBsZXQgaW52ZXJ0ZWQgPSBleHBlY3RlZC5t
YXAoc2FtcGxlID0+IC1zYW1wbGUpOworCisgICAgICAgICAgICAgIHNob3VsZChhY3R1YWwsICdO
ZWdhdGl2ZSBleHBvbmVudGlhbCByYW1wIGZyb20gLTEgdG8gLTInKQorICAgICAgICAgICAgICAg
ICAgLmJlRXF1YWxUb0FycmF5KGludmVydGVkKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCduZWdhdGl2ZS1lbmQnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFBvc2l0
aXZlIHN0YXJ0IHZhbHVlIGFuZCBuZWdhdGl2ZSBlbmQgdmFsdWUgc2hvdWxkIGp1c3QgZG8gbm90
aGluZy4KKyAgICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0gMC4xMjU7CisgICAgICAgIGxldCBj
b250ZXh0ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1
cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBzb3VyY2UgPSBj
b250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3Jl
YXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0g
dHJ1ZTsKKworICAgICAgICAvLyBHYWluIG5vZGUgZ3AgaXMgZm9yIHRoZSBwb3NpdGl2ZS12YWx1
ZWQgZXhwb25lbnRpYWwgcmFtcCwgYW5kIGduIGlzCisgICAgICAgIC8vIGZvciB0aGUgbmVnYXRp
dmUtdmFsdWVkIGV4cG9uZW50aWFsIHJhbXAuCisgICAgICAgIGxldCBnID0gY29udGV4dC5jcmVh
dGVHYWluKCk7CisKKyAgICAgICAgZy5nYWluLnNldFZhbHVlQXRUaW1lKDIsIDApOworICAgICAg
ICBnLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgtMSwgcmVuZGVyRHVyYXRpb24p
OworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGcpLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlv
bik7CisKKyAgICAgICAgc291cmNlLnN0YXJ0KCk7CisKKyAgICAgICAgY29udGV4dC5zdGFydFJl
bmRlcmluZygpCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgbGV0IGFjdHVhbCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsK
KworICAgICAgICAgICAgICBzaG91bGQoYWN0dWFsLCAnRXhwb25lbnRpYWwgcmFtcCBmcm9tIDIg
dG8gLTEnKQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDIpOworICAgICAg
ICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0p
OworCisgICAgICBhdWRpdC5kZWZpbmUoJ3Bvc2l0aXZlLWVuZCcsICh0YXNrLCBzaG91bGQpID0+
IHsKKyAgICAgICAgLy8gUG9zaXRpdmUgc3RhcnQgdmFsdWUgYW5kIG5lZ2F0aXZlIGVuZCB2YWx1
ZSBzaG91bGQganVzdCBkbyBub3RoaW5nLgorICAgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSAw
LjEyNTsKKyAgICAgICAgbGV0IGNvbnRleHQgPQorICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKyAg
ICAgICAgbGV0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAg
IHNvdXJjZS5idWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAg
ICAgICAgc291cmNlLmxvb3AgPSB0cnVlOworCisgICAgICAgIGxldCBnID0gY29udGV4dC5jcmVh
dGVHYWluKCk7CisKKyAgICAgICAgZy5nYWluLnNldFZhbHVlQXRUaW1lKC0xLCAwKTsKKyAgICAg
ICAgZy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMSwgcmVuZGVyRHVyYXRpb24p
OworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGcpLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlv
bik7CisgICAgICAgIHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5k
ZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAg
ICAgICAgICAgIGxldCBhY3R1YWwgPSByZXN1bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisK
KyAgICAgICAgICAgICAgc2hvdWxkKGFjdHVhbCwgJ0V4cG9uZW50aWFsIHJhbXAgZnJvbSAtMSB0
byAxJykKKyAgICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZigtMSk7CisgICAgICAg
ICAgICB9KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7
CisKKyAgICAgIGF1ZGl0LmRlZmluZSgncHJvcGFnYXRlJywgKHRhc2ssIHNob3VsZCkgPT4gewor
ICAgICAgICAvLyBUZXN0IHByb3BhZ2F0aW9uIG9mIHJhbXAgaWYgdGhlIGV4cG9uZW50aWFsIHJh
bXAgc3RhcnQgYW5kIGVuZCB2YWx1ZXMKKyAgICAgICAgLy8gaGF2ZSBvcHBvc2l0ZSBzaWduLgor
ICAgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSAwLjEyNTsKKyAgICAgICAgbGV0IGxpbmVhclJh
bXBFbmQgPSByZW5kZXJEdXJhdGlvbiAvIDQ7CisgICAgICAgIGxldCBleHBvbmVudGlhbFJhbXBF
bmQgPSByZW5kZXJEdXJhdGlvbiAvIDI7CisKKyAgICAgICAgbGV0IGNvbnRleHQgPQorICAgICAg
ICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVS
YXRlLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgbGV0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVm
ZmVyU291cmNlKCk7CisgICAgICAgIHNvdXJjZS5idWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZl
cihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAgc291cmNlLmxvb3AgPSB0cnVlOworCisgICAgICAg
IGxldCBnID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisKKyAgICAgICAgZy5nYWluLnNldFZhbHVl
QXRUaW1lKDIsIDApOworICAgICAgICBnLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoLTEs
IGxpbmVhclJhbXBFbmQpOworICAgICAgICBnLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0
VGltZSgxLCBleHBvbmVudGlhbFJhbXBFbmQpOworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGcp
LmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgICAgIHNvdXJjZS5zdGFydCgpOwor
CisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAgICAgLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSByZXN1bHRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisKKyAgICAgICAgICAgICAgLy8gU2luY2UgdGhlIHN0
YXJ0IHZhbHVlIG9mIHRoZSBleHBvbmVudGlhbCByYW1wIGlzIC0xIGFuZCB0aGUgZW5kCisgICAg
ICAgICAgICAgIC8vIHZhbHVlIGlzIDEsIHRoZSByYW1wIHNob3VsZCBqdXN0IHByb3BhZ2F0ZSAt
MSB0byB0aGUgZW5kIG9mCisgICAgICAgICAgICAgIC8vIHRoZSBleHBvbmVudGlhbCByYW1wLCBh
bmQgdGhlbiBwcm9wYWdhdGUgdGhlIGV4cG9uZW50aWFsIHJhbXAKKyAgICAgICAgICAgICAgLy8g
dmFsdWUgImZvcmV2ZXIiIGFmdGVyd2FyZHMuCisgICAgICAgICAgICAgIGNvbnN0IGxpbmVhckVu
ZEZyYW1lID0gTWF0aC5jZWlsKGxpbmVhclJhbXBFbmQgKiBzYW1wbGVSYXRlKTsKKyAgICAgICAg
ICAgICAgY29uc3QgZXhwb0VuZEZyYW1lID0gTWF0aC5jZWlsKGV4cG9uZW50aWFsUmFtcEVuZCAq
IHNhbXBsZVJhdGUpOworICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBh
Y3R1YWwuc2xpY2UobGluZWFyRW5kRnJhbWUsIGV4cG9FbmRGcmFtZSksCisgICAgICAgICAgICAg
ICAgICAnRXhwb25lbnRpYWwgcmFtcCBmcm9tIC0xIHRvIDEgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUg
bGluZWFyIHJhbXAnKQorICAgICAgICAgICAgICAgICAgLmJlQ29uc3RhbnRWYWx1ZU9mKC0xKTsK
KyAgICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICAgICAgYWN0dWFsLnNsaWNlKGV4
cG9FbmRGcmFtZSksCisgICAgICAgICAgICAgICAgICAnRXhwb25lbnRpYWwgcmFtcCBhZnRlciBl
bmQgb2YgcmFtcCcpCisgICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMSk7Cisg
ICAgICAgICAgICB9KQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAg
ICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlv
cGFyYW0tbm9taW5hbC1yYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
dWRpb1BhcmFtL2F1ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWYyZGUyMGFhY2ZjZjA5Y2U5YjMwM2JhYTZiMzM0YjNiMDY4YzUzNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1ub21pbmFs
LXJhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyOSBAQAorCitQQVNTICMgQVVESVQgVEFT
SyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAiaW5pdGlhbGl6ZSIgCitQQVNTIEV4
ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVHYWluIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNy
ZWF0ZURlbGF5IiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUJ1ZmZlclNvdXJjZSIg
CitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVTdGVyZW9QYW5uZXIiIAorUEFTUyBFeGVj
dXRpbmcgIk9mZmxpbmUgY3JlYXRlRHluYW1pY3NDb21wcmVzc29yIiAKK1BBU1MgRXhlY3V0aW5n
ICJPZmZsaW5lIGNyZWF0ZUJpcXVhZEZpbHRlciIgCitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBj
cmVhdGVPc2NpbGxhdG9yIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZVBhbm5lciIg
CitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVDb25zdGFudFNvdXJjZSIgCitQQVNTIEV4
ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVCdWZmZXIiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUg
Y3JlYXRlSUlSRmlsdGVyIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZVdhdmVTaGFw
ZXIiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlQ29udm9sdmVyIiAKK1BBU1MgRXhl
Y3V0aW5nICJPZmZsaW5lIGNyZWF0ZUFuYWx5c2VyIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5l
IGNyZWF0ZVNjcmlwdFByb2Nlc3NvciIgCitQQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVQ
ZXJpb2RpY1dhdmUiIAorUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlQ2hhbm5lbFNwbGl0
dGVyIiAKK1BBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUNoYW5uZWxNZXJnZXIiIAorUEFT
UyBFeGVjdXRpbmcgIk9ubGluZSBjcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UiIAorUEFTUyBFeGVj
dXRpbmcgIk9ubGluZSBjcmVhdGVNZWRpYVN0cmVhbURlc3RpbmF0aW9uIiAKK1BBU1MgRXhlY3V0
aW5nICJBdWRpb0xpc3RlbmVyIiAKK1BBU1MgRXhlY3V0aW5nICJ2ZXJpZnlUZXN0cyIgCitQQVNT
IEV4ZWN1dGluZyAiYXV0b21hdGlvbiIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BBU1MgPiBbaW5p
dGlhbGl6ZV0gIAorUEFTUyAgIENyZWF0ZSBvZmZsaW5lIGNvbnRleHQgZm9yIHRlc3RzIGRpZCBu
b3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgICBDcmVhdGUgb25saW5lIGNvbnRleHQgZm9y
IHRlc3RzIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgPCBbaW5pdGlhbGl6ZV0g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2Zm
bGluZSBjcmVhdGVHYWluXSAgCitQQVNTICAgR2Fpbk5vZGUuZ2Fpbi5taW5WYWx1ZSBpcyBlcXVh
bCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgR2Fpbk5vZGUuZ2Fpbi5tYXhW
YWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBHYWluTm9k
ZS5nYWluLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBHYWluTm9k
ZS5nYWluLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBH
YWluTm9kZS5nYWluLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBH
YWluTm9kZS5nYWluLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BB
U1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBHYWluTm9kZSBhcmUgY29y
cmVjdCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVHYWluXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCA3IGFzc2VydGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZURlbGF5XSAgCitQ
QVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAwLiAKK1BBU1Mg
ICBEZWxheU5vZGUuZGVsYXlUaW1lLm1heFZhbHVlIGlzIGVxdWFsIHRvIDEuNS4gCitQQVNTICAg
RGVsYXlOb2RlLmRlbGF5VGltZS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQ
QVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwg
dG8gdHJ1ZS4gCitQQVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZS5tYXhWYWx1ZSA9IDQyIGlzIG5v
dCBlcXVhbCB0byA0Mi4gCitQQVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZS5tYXhWYWx1ZSBpcyBy
ZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgU2V0IERlbGF5Tm9kZS5kZWxheVRp
bWUudmFsdWUgPSAtMSBpcyBlcXVhbCB0byAwLiAKK1BBU1MgICBTZXQgRGVsYXlOb2RlLmRlbGF5
VGltZS52YWx1ZSA9IDQgaXMgZXF1YWwgdG8gMS41LiAKK1BBU1MgICBEZWxheU5vZGUuZGVsYXlU
aW1lIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwg
dG8gdHJ1ZS4gCitQQVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgRGVs
YXlOb2RlIGFyZSBjb3JyZWN0IAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZURlbGF5XSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxMCBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2ZmbGluZSBj
cmVhdGVCdWZmZXJTb3VyY2VdICAKK1BBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJh
Y2tSYXRlLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BB
U1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tSYXRlLm1heFZhbHVlIGlzIGVxdWFs
IHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9k
ZS5wbGF5YmFja1JhdGUubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAg
IEF1ZGlvQnVmZmVyU291cmNlTm9kZS5wbGF5YmFja1JhdGUubWluVmFsdWUgaXMgcmVhZC1vbmx5
IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5wbGF5YmFj
a1JhdGUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvQnVm
ZmVyU291cmNlTm9kZS5wbGF5YmFja1JhdGUubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFs
IHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5kZXR1bmUubWluVmFsdWUg
aXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvQnVmZmVy
U291cmNlTm9kZS5kZXR1bmUubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2
ZSszOC4gCitQQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmRldHVuZS5taW5WYWx1ZSA9IDQy
IGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmRldHVu
ZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmRldHVuZS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4g
CitQQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmRldHVuZS5tYXhWYWx1ZSBpcyByZWFkLW9u
bHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFy
YW0ocykgb2YgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIGFyZSBjb3JyZWN0IAorUEFTUyA8IFtPZmZs
aW5lIGNyZWF0ZUJ1ZmZlclNvdXJjZV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMTMg
YXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlU3RlcmVvUGFubmVyXSAgCitQQVNT
ICAgU3RlcmVvUGFubmVyTm9kZS5wYW4ubWluVmFsdWUgaXMgZXF1YWwgdG8gLTEuIAorUEFTUyAg
IFN0ZXJlb1Bhbm5lck5vZGUucGFuLm1heFZhbHVlIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIFN0
ZXJlb1Bhbm5lck5vZGUucGFuLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BB
U1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwg
dG8gdHJ1ZS4gCitQQVNTICAgU3RlcmVvUGFubmVyTm9kZS5wYW4ubWF4VmFsdWUgPSA0MiBpcyBu
b3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIFN0ZXJlb1Bhbm5lck5vZGUucGFuLm1heFZhbHVlIGlz
IHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBTZXQgU3RlcmVvUGFubmVyTm9k
ZS5wYW4udmFsdWUgPSAtMyBpcyBlcXVhbCB0byAtMS4gCitQQVNTICAgU2V0IFN0ZXJlb1Bhbm5l
ck5vZGUucGFuLnZhbHVlID0gMyBpcyBlcXVhbCB0byAxLiAKK1BBU1MgICBTdGVyZW9QYW5uZXJO
b2RlLnBhbiB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVx
dWFsIHRvIHRydWUuIAorUEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9m
IFN0ZXJlb1Bhbm5lck5vZGUgYXJlIGNvcnJlY3QgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRlU3Rl
cmVvUGFubmVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxMCBhc3NlcnRpb25zKSAK
K1BBU1MgPiBbT2ZmbGluZSBjcmVhdGVEeW5hbWljc0NvbXByZXNzb3JdICAKK1BBU1MgICBEeW5h
bWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZC5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMTAwLiAK
K1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZC5tYXhWYWx1ZSBpcyBlcXVh
bCB0byAwLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZC5taW5WYWx1
ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9k
ZS50aHJlc2hvbGQubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFT
UyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLm1heFZhbHVlID0gNDIgaXMgbm90
IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZC5t
YXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgU2V0IER5bmFt
aWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLnZhbHVlID0gLTIwMSBpcyBlcXVhbCB0byAtMTAw
LiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQudmFsdWUgPSAx
IGlzIGVxdWFsIHRvIDAuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xk
IHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8g
dHJ1ZS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1pblZhbHVlIGlzIGVx
dWFsIHRvIDAuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZS5tYXhWYWx1ZSBp
cyBlcXVhbCB0byA0MC4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1pblZh
bHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JO
b2RlLmtuZWUubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0
byA0Mi4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1heFZhbHVlIGlzIHJl
YWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29y
Tm9kZS5rbmVlLnZhbHVlID0gLTEgaXMgZXF1YWwgdG8gMC4gCitQQVNTICAgU2V0IER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUua25lZS52YWx1ZSA9IDgxIGlzIGVxdWFsIHRvIDQwLiAKK1BBU1MgICBE
eW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUg
bm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNz
b3JOb2RlLnJhdGlvLm1pblZhbHVlIGlzIGVxdWFsIHRvIDEuIAorUEFTUyAgIER5bmFtaWNzQ29t
cHJlc3Nvck5vZGUucmF0aW8ubWF4VmFsdWUgaXMgZXF1YWwgdG8gMjAuIAorUEFTUyAgIER5bmFt
aWNzQ29tcHJlc3Nvck5vZGUucmF0aW8ubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmF0aW8ubWluVmFsdWUgaXMgcmVhZC1v
bmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmF0
aW8ubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIER5bmFtaWNzQ29t
cHJlc3Nvck5vZGUucmF0aW8ubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUu
IAorUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLnZhbHVlID0gMSBpcyBl
cXVhbCB0byAxLiAKK1BBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yYXRpby52YWx1
ZSA9IDQxIGlzIGVxdWFsIHRvIDIwLiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJh
dGlvIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwg
dG8gdHJ1ZS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRhY2subWluVmFsdWUg
aXMgZXF1YWwgdG8gMC4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRhY2subWF4
VmFsdWUgaXMgZXF1YWwgdG8gMS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRh
Y2subWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIER5bmFtaWNzQ29t
cHJlc3Nvck5vZGUuYXR0YWNrLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVl
LiAKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay5tYXhWYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRhY2su
bWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFNldCBEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay52YWx1ZSA9IC0xIGlzIGVxdWFsIHRvIDAuIAorUEFT
UyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay52YWx1ZSA9IDMgaXMgZXF1YWwg
dG8gMS4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRhY2sgd2FzIGNsaXBwZWQg
dG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1Mg
ICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJlbGVhc2UubWluVmFsdWUgaXMgZXF1YWwgdG8gMC4g
CitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yZWxlYXNlLm1heFZhbHVlIGlzIGVxdWFs
IHRvIDEuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS5taW5WYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5y
ZWxlYXNlLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBE
eW5hbWljc0NvbXByZXNzb3JOb2RlLnJlbGVhc2UubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwg
dG8gNDIuIAorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS5tYXhWYWx1ZSBp
cyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgU2V0IER5bmFtaWNzQ29tcHJl
c3Nvck5vZGUucmVsZWFzZS52YWx1ZSA9IC0xIGlzIGVxdWFsIHRvIDAuIAorUEFTUyAgIFNldCBE
eW5hbWljc0NvbXByZXNzb3JOb2RlLnJlbGVhc2UudmFsdWUgPSAzIGlzIGVxdWFsIHRvIDEuIAor
UEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZSB3YXMgY2xpcHBlZCB0byBsaWUg
d2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIE5vbWlu
YWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUgYXJl
IGNvcnJlY3QgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRlRHluYW1pY3NDb21wcmVzc29yXSBBbGwg
YXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0NiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2ZmbGlu
ZSBjcmVhdGVCaXF1YWRGaWx0ZXJdICAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5j
eS5taW5WYWx1ZSBpcyBlcXVhbCB0byAwLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1
ZW5jeS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAyNDAwMC4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9k
ZS5mcmVxdWVuY3kubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEJp
cXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5Lm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0
byB0cnVlLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5jeS5tYXhWYWx1ZSA9IDQy
IGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3ku
bWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFNldCBCaXF1
YWRGaWx0ZXJOb2RlLmZyZXF1ZW5jeS52YWx1ZSA9IC0xIGlzIGVxdWFsIHRvIDAuIAorUEFTUyAg
IFNldCBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5jeS52YWx1ZSA9IDQ4MDAxIGlzIGVxdWFsIHRv
IDI0MDAwLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5jeSB3YXMgY2xpcHBlZCB0
byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAg
IEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0xNTM2MDAuIAor
UEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLm1heFZhbHVlIGlzIGVxdWFsIHRvIDE1MzYw
MC4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUubWluVmFsdWUgPSA0MiBpcyBub3Qg
ZXF1YWwgdG8gNDIuIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLm1pblZhbHVlIGlz
IHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmRl
dHVuZS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQmlxdWFkRmls
dGVyTm9kZS5kZXR1bmUubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAor
UEFTUyAgIFNldCBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZS52YWx1ZSA9IC0zMDcyMDEgaXMgZXF1
YWwgdG8gLTE1MzYwMC4gCitQQVNTICAgU2V0IEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLnZhbHVl
ID0gMzA3MjAxIGlzIGVxdWFsIHRvIDE1MzYwMC4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5k
ZXR1bmUgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVh
bCB0byB0cnVlLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWluVmFsdWUgaXMgZXF1YWwg
dG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuUS5t
YXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBCaXF1
YWRGaWx0ZXJOb2RlLlEubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAg
IEJpcXVhZEZpbHRlck5vZGUuUS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5RLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFs
IHRvIDQyLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWF4VmFsdWUgaXMgcmVhZC1vbmx5
IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fpbi5taW5WYWx1
ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQmlxdWFkRmls
dGVyTm9kZS5nYWluLm1heFZhbHVlIGlzIGVxdWFsIHRvIDE1NDEuMjczNjgxNjQwNjI1LiAKK1BB
U1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdhaW4ubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8g
NDIuIAorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fpbi5taW5WYWx1ZSBpcyByZWFkLW9ubHkg
aXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluLm1heFZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdhaW4u
bWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFNldCBCaXF1
YWRGaWx0ZXJOb2RlLmdhaW4udmFsdWUgPSAzMDgzLjU0NzM2MzI4MTI1IGlzIGVxdWFsIHRvIDE1
NDEuMjczNjgxNjQwNjI1LiAKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdhaW4gd2FzIGNsaXBw
ZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKK1BB
U1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBCaXF1YWRGaWx0ZXJOb2Rl
IGFyZSBjb3JyZWN0IAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUJpcXVhZEZpbHRlcl0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMzMgYXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUg
Y3JlYXRlT3NjaWxsYXRvcl0gIAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS5taW5W
YWx1ZSBpcyBlcXVhbCB0byAtMjQwMDAuIAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5j
eS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAyNDAwMC4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZnJl
cXVlbmN5Lm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBPc2NpbGxh
dG9yTm9kZS5mcmVxdWVuY3kubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUu
IAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBl
cXVhbCB0byA0Mi4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVlbmN5Lm1heFZhbHVlIGlz
IHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBTZXQgT3NjaWxsYXRvck5vZGUu
ZnJlcXVlbmN5LnZhbHVlID0gLTQ4MDAxIGlzIGVxdWFsIHRvIC0yNDAwMC4gCitQQVNTICAgU2V0
IE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS52YWx1ZSA9IDQ4MDAxIGlzIGVxdWFsIHRvIDI0MDAw
LiAKK1BBU1MgICBPc2NpbGxhdG9yTm9kZS5mcmVxdWVuY3kgd2FzIGNsaXBwZWQgdG8gbGllIHdp
dGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBPc2NpbGxh
dG9yTm9kZS5kZXR1bmUubWluVmFsdWUgaXMgZXF1YWwgdG8gLTE1MzYwMC4gCitQQVNTICAgT3Nj
aWxsYXRvck5vZGUuZGV0dW5lLm1heFZhbHVlIGlzIGVxdWFsIHRvIDE1MzYwMC4gCitQQVNTICAg
T3NjaWxsYXRvck5vZGUuZGV0dW5lLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAK
K1BBU1MgICBPc2NpbGxhdG9yTm9kZS5kZXR1bmUubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVx
dWFsIHRvIHRydWUuIAorUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5tYXhWYWx1ZSA9IDQy
IGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZGV0dW5lLm1heFZh
bHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBTZXQgT3NjaWxsYXRv
ck5vZGUuZGV0dW5lLnZhbHVlID0gLTMwNzIwMSBpcyBlcXVhbCB0byAtMTUzNjAwLiAKK1BBU1Mg
ICBTZXQgT3NjaWxsYXRvck5vZGUuZGV0dW5lLnZhbHVlID0gMzA3MjAxIGlzIGVxdWFsIHRvIDE1
MzYwMC4gCitQQVNTICAgT3NjaWxsYXRvck5vZGUuZGV0dW5lIHdhcyBjbGlwcGVkIHRvIGxpZSB3
aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgTm9taW5h
bCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgT3NjaWxsYXRvck5vZGUgYXJlIGNvcnJlY3Qg
CitQQVNTIDwgW09mZmxpbmUgY3JlYXRlT3NjaWxsYXRvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMTkgYXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUgY3JlYXRlUGFubmVyXSAg
CitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblgubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAy
ODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25YLm1heFZhbHVl
IGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIFBhbm5lck5vZGUu
cG9zaXRpb25YLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBQYW5u
ZXJOb2RlLnBvc2l0aW9uWC5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4g
CitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblgubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwg
dG8gNDIuIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25YLm1heFZhbHVlIGlzIHJlYWQtb25s
eSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWS5taW5WYWx1
ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgUGFubmVyTm9k
ZS5wb3NpdGlvblkubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4g
CitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblkubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwg
dG8gNDIuIAorUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1pblZhbHVlIGlzIHJlYWQtb25s
eSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWS5tYXhWYWx1
ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblku
bWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5v
ZGUucG9zaXRpb25aLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4
LiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWi5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQw
MjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWi5taW5WYWx1
ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblou
bWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5v
ZGUucG9zaXRpb25aLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBQ
YW5uZXJOb2RlLnBvc2l0aW9uWi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblgubWluVmFsdWUgaXMgZXF1YWwgdG8g
LTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25Y
Lm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIFBh
bm5lck5vZGUub3JpZW50YXRpb25YLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAK
K1BBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblgubWF4VmFsdWUg
PSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25Y
Lm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBQYW5uZXJO
b2RlLm9yaWVudGF0aW9uWS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2
ZSszOC4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblkubWF4VmFsdWUgaXMgZXF1YWwg
dG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlv
blkubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIFBhbm5lck5vZGUu
b3JpZW50YXRpb25ZLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BB
U1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0
byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblkubWF4VmFsdWUgaXMgcmVhZC1v
bmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25aLm1p
blZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBQYW5u
ZXJOb2RlLm9yaWVudGF0aW9uWi5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4
ODZlKzM4LiAKK1BBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWi5taW5WYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvbloubWluVmFs
dWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIFBhbm5lck5vZGUub3Jp
ZW50YXRpb25aLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBQYW5u
ZXJOb2RlLm9yaWVudGF0aW9uWi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCitQQVNTICAgTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgUGFubmVyTm9k
ZSBhcmUgY29ycmVjdCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVQYW5uZXJdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDM3IGFzc2VydGlvbnMpIAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0
ZUNvbnN0YW50U291cmNlXSAgCitQQVNTICAgQ29uc3RhbnRTb3VyY2VOb2RlLm9mZnNldC5taW5W
YWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQ29uc3Rh
bnRTb3VyY2VOb2RlLm9mZnNldC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4
ODZlKzM4LiAKK1BBU1MgICBDb25zdGFudFNvdXJjZU5vZGUub2Zmc2V0Lm1pblZhbHVlID0gNDIg
aXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBDb25zdGFudFNvdXJjZU5vZGUub2Zmc2V0Lm1p
blZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBDb25zdGFudFNv
dXJjZU5vZGUub2Zmc2V0Lm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1Mg
ICBDb25zdGFudFNvdXJjZU5vZGUub2Zmc2V0Lm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVh
bCB0byB0cnVlLiAKK1BBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBD
b25zdGFudFNvdXJjZU5vZGUgYXJlIGNvcnJlY3QgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRlQ29u
c3RhbnRTb3VyY2VdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDcgYXNzZXJ0aW9ucykg
CitQQVNTID4gW09mZmxpbmUgY3JlYXRlQnVmZmVyXSAgCitQQVNTICAgQXVkaW9CdWZmZXIgaGFz
IG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUJ1ZmZl
cl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
T2ZmbGluZSBjcmVhdGVJSVJGaWx0ZXJdICAKK1BBU1MgICBJSVJGaWx0ZXJOb2RlIGhhcyBubyBB
dWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVJSVJGaWx0ZXJd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW09m
ZmxpbmUgY3JlYXRlV2F2ZVNoYXBlcl0gIAorUEFTUyAgIFdhdmVTaGFwZXJOb2RlIGhhcyBubyBB
dWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKK1BBU1MgPCBbT2ZmbGluZSBjcmVhdGVXYXZlU2hhcGVy
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtP
ZmZsaW5lIGNyZWF0ZUNvbnZvbHZlcl0gIAorUEFTUyAgIENvbnZvbHZlck5vZGUgaGFzIG5vIEF1
ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUNvbnZvbHZlcl0g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2Zm
bGluZSBjcmVhdGVBbmFseXNlcl0gIAorUEFTUyAgIEFuYWx5c2VyTm9kZSBoYXMgbm8gQXVkaW9Q
YXJhbXMgYXMgZXhwZWN0ZWQgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRlQW5hbHlzZXJdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW09mZmxpbmUg
Y3JlYXRlU2NyaXB0UHJvY2Vzc29yXSAgCitQQVNTICAgU2NyaXB0UHJvY2Vzc29yTm9kZSBoYXMg
bm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRlU2NyaXB0
UHJvY2Vzc29yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAor
UEFTUyA+IFtPZmZsaW5lIGNyZWF0ZVBlcmlvZGljV2F2ZV0gIAorUEFTUyAgIFBlcmlvZGljV2F2
ZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQgCitQQVNTIDwgW09mZmxpbmUgY3JlYXRl
UGVyaW9kaWNXYXZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMp
IAorUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZUNoYW5uZWxTcGxpdHRlcl0gIAorUEFTUyAgIENoYW5u
ZWxTcGxpdHRlck5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAorUEFTUyA8IFtP
ZmZsaW5lIGNyZWF0ZUNoYW5uZWxTcGxpdHRlcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbT2ZmbGluZSBjcmVhdGVDaGFubmVsTWVyZ2VyXSAg
CitQQVNTICAgQ2hhbm5lbE1lcmdlck5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVk
IAorUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUNoYW5uZWxNZXJnZXJdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW09ubGluZSBjcmVhdGVNZWRpYUVs
ZW1lbnRTb3VyY2VdICAKK1BBU1MgICBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUgaGFzIG5v
IEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAorUEFTUyA8IFtPbmxpbmUgY3JlYXRlTWVkaWFFbGVt
ZW50U291cmNlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAor
UEFTUyA+IFtPbmxpbmUgY3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbl0gIAorUEFTUyAgIE1l
ZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVj
dGVkIAorUEFTUyA8IFtPbmxpbmUgY3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbl0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbQXVkaW9MaXN0
ZW5lcl0gIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25YLm1pblZhbHVlIGlzIGVxdWFs
IHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0
aW9uWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1Mg
ICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWC5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0
Mi4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWluVmFsdWUgaXMgcmVhZC1vbmx5
IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25YLm1heFZh
bHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0
aW9uWC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVk
aW9MaXN0ZW5lci5wb3NpdGlvblkubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1
Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25ZLm1heFZhbHVlIGlzIGVx
dWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9z
aXRpb25ZLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xp
c3RlbmVyLnBvc2l0aW9uWS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4g
CitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblkubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1
YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25ZLm1heFZhbHVlIGlzIHJl
YWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9u
Wi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAg
QXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYz
ODUyODg2ZSszOC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWluVmFsdWUgPSA0
MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25aLm1p
blZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0xpc3Rl
bmVyLnBvc2l0aW9uWi5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAg
QXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRv
IHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgubWluVmFsdWUgaXMgZXF1YWwg
dG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2Fy
ZFgubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAg
QXVkaW9MaXN0ZW5lci5mb3J3YXJkWC5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4g
CitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWC5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWC5tYXhWYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWC5t
YXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0
ZW5lci5mb3J3YXJkWS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSsz
OC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAz
LjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRZLm1p
blZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLmZv
cndhcmRZLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBB
dWRpb0xpc3RlbmVyLmZvcndhcmRZLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAK
K1BBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRZLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBl
cXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRaLm1pblZhbHVlIGlz
IGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVy
LmZvcndhcmRaLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAor
UEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFoubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwg
dG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFoubWluVmFsdWUgaXMgcmVhZC1v
bmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFoubWF4
VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9y
d2FyZFoubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1
ZGlvTGlzdGVuZXIudXBYLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQw
MjgyMzQ2NjM4NTI4ODZlKzM4LiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5taW5WYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFgubWluVmFs
dWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIu
dXBYLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3Rl
bmVyLnVwWC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAg
QXVkaW9MaXN0ZW5lci51cFkubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4
NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMu
NDAyODIzNDY2Mzg1Mjg4NmUrMzguIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1pblZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWS5taW5W
YWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCitQQVNTICAgQXVkaW9MaXN0ZW5l
ci51cFkubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlz
dGVuZXIudXBZLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1Mg
ICBBdWRpb0xpc3RlbmVyLnVwWi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUy
ODg2ZSszOC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFoubWF4VmFsdWUgaXMgZXF1YWwgdG8g
My40MDI4MjM0NjYzODUyODg2ZSszOC4gCitQQVNTICAgQXVkaW9MaXN0ZW5lci51cFoubWluVmFs
dWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAorUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBaLm1p
blZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKK1BBU1MgICBBdWRpb0xpc3Rl
bmVyLnVwWi5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCitQQVNTICAgQXVkaW9M
aXN0ZW5lci51cFoubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAorUEFT
UyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIEF1ZGlvTGlzdGVuZXIgYXJl
IGNvcnJlY3QgCitQQVNTIDwgW0F1ZGlvTGlzdGVuZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDU1IGFzc2VydGlvbnMpIAorUEFTUyA+IFt2ZXJpZnlUZXN0c10gIAorUEFTUyAgIE51
bWJlciBvZiBub2RlcyBub3QgdGVzdGVkIDogMCAKK1BBU1MgPCBbdmVyaWZ5VGVzdHNdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW2F1dG9tYXRp
b25dICAKK1BBU1MgICBUZXN0IGF1dG9tYXRpb25zIChjaGVjayBjb25zb2xlIGxvZ3MpIGRpZCBu
b3QgdGhyb3cgYW4gZXhjZXB0aW9uLiAKK1BBU1MgPCBbYXV0b21hdGlvbl0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5F
UiBGSU5JU0hFRDogMjQgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1ub21pbmFsLXJhbmdlLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tbm9taW5hbC1y
YW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1YjI3NDk2ZDcxYjM4ZWUwMWU5MjM3M2UxYzM4Mjc5Nzhj
ZGVjNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFt
L2F1ZGlvcGFyYW0tbm9taW5hbC1yYW5nZS5odG1sCkBAIC0wLDAgKzEsNDk3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IEF1ZGlv
UGFyYW0gTm9taW5hbCBSYW5nZSBWYWx1ZXMKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlk
PSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIFNvbWUgYXJiaXRyYXJ5IHNhbXBsZSByYXRl
IGZvciB0aGUgb2ZmbGluZSBjb250ZXh0LgorICAgICAgbGV0IHNhbXBsZVJhdGUgPSA0ODAwMDsK
KworICAgICAgLy8gVGhlIGFjdHVhbCBjb250ZXh0cyB0byB1c2UuICBHZW5lcmFsbHkgdXNlIHRo
ZSBvZmZsaW5lIGNvbnRleHQgZm9yCisgICAgICAvLyB0ZXN0aW5nIGV4Y2VwdCBmb3IgdGhlIG1l
ZGlhIG5vZGVzIHdoaWNoIHJlcXVpcmUgYW4gQXVkaW9Db250ZXh0LgorICAgICAgbGV0IG9mZmxp
bmVDb250ZXh0OworICAgICAgbGV0IGF1ZGlvQ29udGV4dDsKKworICAgICAgLy8gVGhlIHNldCBv
ZiBhbGwgbWV0aG9kcyB0aGF0IHdlJ3ZlIHRlc3RlZCBmb3IgdmVyaWZ5aW5nIHRoYXQgd2UgdGVz
dGVkCisgICAgICAvLyBhbGwgb2YgdGhlIG5lY2Vzc2FyeSBvYmplY3RzLgorICAgICAgbGV0IHRl
c3RlZE1ldGhvZHMgPSBuZXcgU2V0KCk7CisKKyAgICAgIC8vIFRoZSBtb3N0IHBvc2l0aXZlIHNp
bmdsZSBmbG9hdCB2YWx1ZSAodGhlIHZhbHVlIGp1c3QgYmVmb3JlIGluZmluaXR5KS4KKyAgICAg
IC8vIEJlIGNhcmVmdWwgd2hlbiBjaGFuZ2luZyB0aGlzIHZhbHVlISAgSmF2YXNjcmlwdCBvbmx5
IHVzZXMgZG91YmxlCisgICAgICAvLyBmbG9hdHMsIHNvIHRoZSB2YWx1ZSBoZXJlIHNob3VsZCBi
ZSB0aGUgbWF4IHNpbmdsZS1mbG9hdCB2YWx1ZSwKKyAgICAgIC8vIGNvbnZlcnRlZCBkaXJlY3Rs
eSB0byBhIGRvdWJsZS1mbG9hdCB2YWx1ZS4gIFRoaXMgYWxzbyBkZXBlbmRzIG9uCisgICAgICAv
LyBKYXZhc2NyaXB0IHJlYWRpbmcgdGhpcyB2YWx1ZSBhbmQgcHJvZHVjaW5nIHRoZSBkZXNpcmVk
IGRvdWJsZS1mbG9hdAorICAgICAgLy8gdmFsdWUgY29ycmVjdGx5LgorICAgICAgbGV0IG1vc3RQ
b3NpdGl2ZUZsb2F0ID0gMy40MDI4MjM0NjYzODUyODg2ZTM4OworCisgICAgICBsZXQgYXVkaXQg
PSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIC8vIEFycmF5IGRlc2NyaWJpbmcg
dGhlIHRlc3RzIHRoYXQgc2hvdWxkIGJlIHJ1bi4gIHx0ZXN0T2ZmbGluZUNvbmZpZ3N8IGlzCisg
ICAgICAvLyBmb3IgdGVzdHMgdGhhdCBjYW4gdXNlIGFuIG9mZmxpbmUgY29udGV4dC4gfHRlc3RP
bmxpbmVDb25maWdzfCBpcyBmb3IKKyAgICAgIC8vIHRlc3RzIHRoYXQgbmVlZCB0byB1c2UgYW4g
b25saW5lIGNvbnRleHQuICBPZmZsaW5lIGNvbnRleHRzIGFyZQorICAgICAgLy8gcHJlZmVycmVk
IHdoZW4gcG9zc2libGUuCisgICAgICBsZXQgdGVzdE9mZmxpbmVDb25maWdzID0gWworICAgICAg
ICB7CisgICAgICAgICAgLy8gVGhlIG5hbWUgb2YgdGhlIG1ldGhvZCB0byBjcmVhdGUgdGhlIHBh
cnRpY3VsYXIgbm9kZSB0byBiZSB0ZXN0ZWQuCisgICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUdh
aW4nLAorCisgICAgICAgICAgLy8gQW55IGFyZ3MgdG8gcGFzcyB0byB0aGUgY3JlYXRvciBmdW5j
dGlvbi4KKyAgICAgICAgICBhcmdzOiBbXSwKKworICAgICAgICAgIC8vIFRoZSBtaW4vbWF4IGxp
bWl0cyBmb3IgZWFjaCBBdWRpb1BhcmFtIG9mIHRoZSBub2RlLiAgVGhpcyBpcyBhCisgICAgICAg
ICAgLy8gZGljdGlvbmFyeSB3aG9zZSBrZXlzIGFyZQorICAgICAgICAgIC8vIHRoZSBuYW1lcyBv
ZiBlYWNoIEF1ZGlvUGFyYW0gaW4gdGhlIG5vZGUuICBEb24ndCBkZWZpbmUgdGhpcyBpZiB0aGUK
KyAgICAgICAgICAvLyBub2RlIGRvZXNuJ3QgaGF2ZSBhbnkKKyAgICAgICAgICAvLyBBdWRpb1Bh
cmFtIGF0dHJpYnV0ZXMuCisgICAgICAgICAgbGltaXRzOiB7CisgICAgICAgICAgICBnYWluOiB7
CisgICAgICAgICAgICAgIC8vIFRoZSBleHBlY3RlZCBtaW4gYW5kIG1heCB2YWx1ZXMgZm9yIHRo
aXMgQXVkaW9QYXJhbS4KKyAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9h
dCwKKyAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0CisgICAgICAgICAg
ICB9CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgY3JlYXRv
cjogJ2NyZWF0ZURlbGF5JywKKyAgICAgICAgICAvLyBKdXN0IHNwZWNpZnkgYSBub24tZGVmYXVs
dCB2YWx1ZSBmb3IgdGhlIG1heGltdW0gZGVsYXkgc28gd2UgY2FuCisgICAgICAgICAgLy8gbWFr
ZSBzdXJlIHRoZSBsaW1pdHMgYXJlCisgICAgICAgICAgLy8gc2V0IGNvcnJlY3RseS4KKyAgICAg
ICAgICBhcmdzOiBbMS41XSwKKyAgICAgICAgICBsaW1pdHM6IHtkZWxheVRpbWU6IHttaW5WYWx1
ZTogMCwgbWF4VmFsdWU6IDEuNX19CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBj
cmVhdG9yOiAnY3JlYXRlQnVmZmVyU291cmNlJywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAg
ICAgICBsaW1pdHM6IHsKKyAgICAgICAgICAgIHBsYXliYWNrUmF0ZToKKyAgICAgICAgICAgICAg
ICB7bWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZs
b2F0fSwKKyAgICAgICAgICAgIGRldHVuZToge21pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQs
IG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdH0KKyAgICAgICAgICB9CisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlU3RlcmVvUGFubmVyJywKKyAgICAg
ICAgICBhcmdzOiBbXSwKKyAgICAgICAgICBsaW1pdHM6IHtwYW46IHttaW5WYWx1ZTogLTEsIG1h
eFZhbHVlOiAxfX0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdj
cmVhdGVEeW5hbWljc0NvbXByZXNzb3InLAorICAgICAgICAgIGFyZ3M6IFtdLAorICAgICAgICAg
IC8vIERvIG5vdCBzZXQgbGltaXRzIGZvciByZWR1Y3Rpb247ICBpdCdzIGN1cnJlbnRseSBhbiBB
dWRpb1BhcmFtIGJ1dAorICAgICAgICAgIC8vIHNob3VsZCBiZSBhIGZsb2F0LgorICAgICAgICAg
IC8vIFNvIGxldCB0aGUgdGVzdCBmYWlsIGZvciByZWR1Y3Rpb24uICBXaGVuIHJlZHVjdGlvbiBp
cyBjaGFuZ2VkLAorICAgICAgICAgIC8vIHRoaXMgdGVzdCB3aWxsIHRoZW4KKyAgICAgICAgICAv
LyBjb3JyZWN0bHkgcGFzcy4KKyAgICAgICAgICBsaW1pdHM6IHsKKyAgICAgICAgICAgIHRocmVz
aG9sZDoge21pblZhbHVlOiAtMTAwLCBtYXhWYWx1ZTogMH0sCisgICAgICAgICAgICBrbmVlOiB7
bWluVmFsdWU6IDAsIG1heFZhbHVlOiA0MH0sCisgICAgICAgICAgICByYXRpbzoge21pblZhbHVl
OiAxLCBtYXhWYWx1ZTogMjB9LAorICAgICAgICAgICAgYXR0YWNrOiB7bWluVmFsdWU6IDAsIG1h
eFZhbHVlOiAxfSwKKyAgICAgICAgICAgIHJlbGVhc2U6IHttaW5WYWx1ZTogMCwgbWF4VmFsdWU6
IDF9CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgY3JlYXRv
cjogJ2NyZWF0ZUJpcXVhZEZpbHRlcicsCisgICAgICAgICAgYXJnczogW10sCisgICAgICAgICAg
bGltaXRzOiB7CisgICAgICAgICAgICBnYWluOiB7CisgICAgICAgICAgICAgIG1pblZhbHVlOiAt
bW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICAgIC8vIFRoaXMgY29tcGxpY2F0ZWQgZXhw
cmVzc2lvbiBpcyB1c2VkIHRvIGdldCBhbGwgdGhlIGFyaXRobWV0aWMKKyAgICAgICAgICAgICAg
Ly8gdG8gcm91bmQgdG8gdGhlIGNvcnJlY3Qgc2luZ2xlLXByZWNpc2lvbiBmbG9hdCB2YWx1ZSBm
b3IgdGhlCisgICAgICAgICAgICAgIC8vIGRlc2lyZWQgbWF4LiAgVGhpcyBhbHNvIGFzc3VtZXMg
dGhhdCB0aGUgaW1wbGljYXRpb24gY29tcHV0ZXMKKyAgICAgICAgICAgICAgLy8gdGhlIGxpbWl0
IGFzIDQwICogbG9nMTBmKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkuCisgICAg
ICAgICAgICAgIG1heFZhbHVlOgorICAgICAgICAgICAgICAgICAgTWF0aC5mcm91bmQoNDAgKiBN
YXRoLmZyb3VuZChNYXRoLmxvZzEwKG1vc3RQb3NpdGl2ZUZsb2F0KSkpCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgUToge21pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsIG1heFZhbHVl
OiBtb3N0UG9zaXRpdmVGbG9hdH0sCisgICAgICAgICAgICBmcmVxdWVuY3k6IHttaW5WYWx1ZTog
MCwgbWF4VmFsdWU6IHNhbXBsZVJhdGUgLyAyfSwKKyAgICAgICAgICAgIGRldHVuZTogeworICAg
ICAgICAgICAgICBtaW5WYWx1ZTogLU1hdGguZnJvdW5kKDEyMDAgKiBNYXRoLmxvZzIobW9zdFBv
c2l0aXZlRmxvYXQpKSwKKyAgICAgICAgICAgICAgbWF4VmFsdWU6IE1hdGguZnJvdW5kKDEyMDAg
KiBNYXRoLmxvZzIobW9zdFBvc2l0aXZlRmxvYXQpKQorICAgICAgICAgICAgfQorICAgICAgICAg
IH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVPc2Np
bGxhdG9yJywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAgICAgICBsaW1pdHM6IHsKKyAgICAg
ICAgICAgIGZyZXF1ZW5jeToge21pblZhbHVlOiAtc2FtcGxlUmF0ZSAvIDIsIG1heFZhbHVlOiBz
YW1wbGVSYXRlIC8gMn0sCisgICAgICAgICAgICBkZXR1bmU6IHsKKyAgICAgICAgICAgICAgbWlu
VmFsdWU6IC1NYXRoLmZyb3VuZCgxMjAwICogTWF0aC5sb2cyKG1vc3RQb3NpdGl2ZUZsb2F0KSks
CisgICAgICAgICAgICAgIG1heFZhbHVlOiBNYXRoLmZyb3VuZCgxMjAwICogTWF0aC5sb2cyKG1v
c3RQb3NpdGl2ZUZsb2F0KSkKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlUGFubmVyJywKKyAgICAgICAg
ICBhcmdzOiBbXSwKKyAgICAgICAgICBsaW1pdHM6IHsKKyAgICAgICAgICAgIHBvc2l0aW9uWDog
eworICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAg
ICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICB9LAorICAgICAg
ICAgICAgcG9zaXRpb25ZOiB7CisgICAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZl
RmxvYXQsCisgICAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBwb3NpdGlvblo6IHsKKyAgICAgICAgICAgICAgbWluVmFs
dWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3Np
dGl2ZUZsb2F0LAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIG9yaWVudGF0aW9uWDogewor
ICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAg
ICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICB9LAorICAgICAgICAg
ICAgb3JpZW50YXRpb25ZOiB7CisgICAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZl
RmxvYXQsCisgICAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBvcmllbnRhdGlvblo6IHsKKyAgICAgICAgICAgICAgbWlu
VmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQ
b3NpdGl2ZUZsb2F0LAorICAgICAgICAgICAgfQorICAgICAgICAgIH0sCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlQ29uc3RhbnRTb3VyY2UnLAorICAg
ICAgICAgIGFyZ3M6IFtdLAorICAgICAgICAgIGxpbWl0czogeworICAgICAgICAgICAgb2Zmc2V0
OiB7bWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZs
b2F0fQorICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgLy8gVGhlc2Ugbm9kZXMgZG9u
J3QgaGF2ZSBBdWRpb1BhcmFtcywgYnV0IHdlIHdhbnQgdG8gdGVzdCB0aGVtIGFueXdheS4KKyAg
ICAgICAgLy8gQW55IGFyZ3VtZW50cyBmb3IgdGhlCisgICAgICAgIC8vIGNvbnN0cnVjdG9yIGFy
ZSBwcmV0dHkgbXVjaCBhcmJpdHJhcnk7IHRoZXkganVzdCBuZWVkIHRvIGJlIHZhbGlkLgorICAg
ICAgICB7CisgICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUJ1ZmZlcicsCisgICAgICAgICAgYXJn
czogWzEsIDEsIHNhbXBsZVJhdGVdLAorICAgICAgICB9LAorICAgICAgICB7Y3JlYXRvcjogJ2Ny
ZWF0ZUlJUkZpbHRlcicsIGFyZ3M6IFtbMSwgMl0sIFsxLCAuOV1dfSwKKyAgICAgICAgeworICAg
ICAgICAgIGNyZWF0b3I6ICdjcmVhdGVXYXZlU2hhcGVyJywKKyAgICAgICAgICBhcmdzOiBbXSwK
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVDb252b2x2
ZXInLAorICAgICAgICAgIGFyZ3M6IFtdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgY3JlYXRvcjogJ2NyZWF0ZUFuYWx5c2VyJywKKyAgICAgICAgICBhcmdzOiBbXSwKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVTY3JpcHRQcm9jZXNz
b3InLAorICAgICAgICAgIGFyZ3M6IFswXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgIGNyZWF0b3I6ICdjcmVhdGVQZXJpb2RpY1dhdmUnLAorICAgICAgICAgIGFyZ3M6IFtGbG9h
dDMyQXJyYXkuZnJvbShbMCwgMF0pLCBGbG9hdDMyQXJyYXkuZnJvbShbMSwgMF0pXSwKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVDaGFubmVsU3BsaXR0
ZXInLAorICAgICAgICAgIGFyZ3M6IFtdLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgY3JlYXRvcjogJ2NyZWF0ZUNoYW5uZWxNZXJnZXInLAorICAgICAgICAgIGFyZ3M6IFtdLAor
ICAgICAgICB9LAorICAgICAgXTsKKworICAgICAgbGV0IHRlc3RPbmxpbmVDb25maWdzID0gWwor
ICAgICAgICB7Y3JlYXRvcjogJ2NyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZScsIGFyZ3M6IFtuZXcg
QXVkaW8oKV19LAorICAgICAgICB7Y3JlYXRvcjogJ2NyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRp
b24nLCBhcmdzOiBbXX0KKyAgICAgICAgLy8gQ2FuJ3QgY3VycmVudGx5IHRlc3QgTWVkaWFTdHJl
YW1Tb3VyY2UgYmVjYXVzZSB3ZSdyZSB1c2luZyBhbiBvZmZsaW5lCisgICAgICAgIC8vIGNvbnRl
eHQuCisgICAgICBdOworCisgICAgICAvLyBDcmVhdGUgdGhlIGNvbnRleHRzIHNvIHdlIGNhbiB1
c2UgaXQgaW4gdGhlIGZvbGxvd2luZyB0ZXN0LgorICAgICAgYXVkaXQuZGVmaW5lKCdpbml0aWFs
aXplJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAvLyBKdXN0IGFueSBjb250ZXh0IHNv
IHRoYXQgd2UgY2FuIGNyZWF0ZSB0aGUgbm9kZXMuCisgICAgICAgIHNob3VsZCgoKSA9PiB7Cisg
ICAgICAgICAgb2ZmbGluZUNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxLCBz
YW1wbGVSYXRlKTsKKyAgICAgICAgfSwgJ0NyZWF0ZSBvZmZsaW5lIGNvbnRleHQgZm9yIHRlc3Rz
Jykubm90VGhyb3coKTsKKyAgICAgICAgc2hvdWxkKCgpID0+IHsKKyAgICAgICAgICBvbmxpbmVD
b250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOworICAgICAgICB9LCAnQ3JlYXRlIG9ubGluZSBj
b250ZXh0IGZvciB0ZXN0cycpLm5vdFRocm93KCk7CisgICAgICAgIHRhc2suZG9uZSgpOworICAg
ICAgfSk7CisKKyAgICAgIC8vIENyZWF0ZSBhIHRhc2sgZm9yIGVhY2ggZW50cnkgaW4gdGVzdE9m
ZmxpbmVDb25maWdzCisgICAgICBmb3IgKGxldCB0ZXN0IGluIHRlc3RPZmZsaW5lQ29uZmlncykg
eworICAgICAgICBsZXQgY29uZmlnID0gdGVzdE9mZmxpbmVDb25maWdzW3Rlc3RdCisgICAgICAg
IGF1ZGl0LmRlZmluZSgnT2ZmbGluZSAnICsgY29uZmlnLmNyZWF0b3IsIChmdW5jdGlvbihjKSB7
CisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAodGFzaywgc2hvdWxkKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgbGV0IG5vZGUgPSBvZmZsaW5lQ29udGV4dFtjLmNyZWF0b3Jd
KC4uLmMuYXJncyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdExpbWl0cyhzaG91bGQs
IGMuY3JlYXRvciwgbm9kZSwgYy5saW1pdHMpOworICAgICAgICAgICAgICAgICAgICAgICAgIHRh
c2suZG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgICAg
ICAgfSkoY29uZmlnKSk7CisgICAgICB9CisKKyAgICAgIGZvciAobGV0IHRlc3QgaW4gdGVzdE9u
bGluZUNvbmZpZ3MpIHsKKyAgICAgICAgbGV0IGNvbmZpZyA9IHRlc3RPbmxpbmVDb25maWdzW3Rl
c3RdCisgICAgICAgIGF1ZGl0LmRlZmluZSgnT25saW5lICcgKyBjb25maWcuY3JlYXRvciwgKGZ1
bmN0aW9uKGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0YXNrLCBzaG91bGQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm9kZSA9IG9ubGluZUNvbnRleHRb
Yy5jcmVhdG9yXSguLi5jLmFyZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RMaW1p
dHMoc2hvdWxkLCBjLmNyZWF0b3IsIG5vZGUsIGMubGltaXRzKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0pKGNvbmZpZykpOworICAgICAgfQorCisgICAgICAvLyBUZXN0IHRoZSBB
dWRpb0xpc3RlbmVyIHBhcmFtcyB0aGF0IHdlcmUgYWRkZWQgZm9yIHRoZSBhdXRvbWF0ZWQgUGFu
bmVyCisgICAgICBhdWRpdC5kZWZpbmUoJ0F1ZGlvTGlzdGVuZXInLCAodGFzaywgc2hvdWxkKSA9
PiB7CisgICAgICAgIHRlc3RMaW1pdHMoc2hvdWxkLCAnJywgb2ZmbGluZUNvbnRleHQubGlzdGVu
ZXIsIHsKKyAgICAgICAgICBwb3NpdGlvblg6IHsKKyAgICAgICAgICAgIG1pblZhbHVlOiAtbW9z
dFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQs
CisgICAgICAgICAgfSwKKyAgICAgICAgICBwb3NpdGlvblk6IHsKKyAgICAgICAgICAgIG1pblZh
bHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0
aXZlRmxvYXQsCisgICAgICAgICAgfSwKKyAgICAgICAgICBwb3NpdGlvblo6IHsKKyAgICAgICAg
ICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgICBtYXhWYWx1ZTog
bW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgfSwKKyAgICAgICAgICBmb3J3YXJkWDogewor
ICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICAgIG1h
eFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKKyAgICAgICAgICB9LAorICAgICAgICAgIGZvcndh
cmRZOiB7CisgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAg
ICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAorICAgICAgICAgIH0sCisgICAgICAg
ICAgZm9yd2FyZFo6IHsKKyAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQs
CisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAgfSwK
KyAgICAgICAgICB1cFg6IHsKKyAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxv
YXQsCisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAgICAg
fSwKKyAgICAgICAgICB1cFk6IHsKKyAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZl
RmxvYXQsCisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAgICAg
ICAgfSwKKyAgICAgICAgICB1cFo6IHsKKyAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0
aXZlRmxvYXQsCisgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCisgICAg
ICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgdGFzay5kb25lKCk7CisgICAgICB9KTsKKwor
ICAgICAgLy8gVmVyaWZ5IHRoYXQgd2UgaGF2ZSB0ZXN0ZWQgYWxsIHRoZSBjcmVhdGUgbWV0aG9k
cyBhdmFpbGFibGUgb24gdGhlCisgICAgICAvLyBjb250ZXh0LgorICAgICAgYXVkaXQuZGVmaW5l
KCd2ZXJpZnlUZXN0cycsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgbGV0IGFsbE5vZGVz
ID0gbmV3IFNldCgpOworICAgICAgICAvLyBDcmVhdGUgdGhlIHNldCBvZiBhbGwgImNyZWF0ZSIg
bWV0aG9kcyBmcm9tIHRoZSBjb250ZXh0LgorICAgICAgICBmb3IgKGxldCBtZXRob2QgaW4gb2Zm
bGluZUNvbnRleHQpIHsKKyAgICAgICAgICBpZiAodHlwZW9mIG9mZmxpbmVDb250ZXh0W21ldGhv
ZF0gPT09ICdmdW5jdGlvbicgJiYKKyAgICAgICAgICAgICAgbWV0aG9kLnN1YnN0cmluZygwLCA2
KSA9PT0gJ2NyZWF0ZScpIHsKKyAgICAgICAgICAgIGFsbE5vZGVzLmFkZChtZXRob2QpOworICAg
ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbXB1dGUgdGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiB0aGUgc2V0IG9mIGFsbCBjcmVhdGUgbWV0aG9kcyBvbiB0aGUKKyAgICAgICAgLy8g
Y29udGV4dCBhbmQgdGhlIHNldCBvZiB0ZXN0cyB0aGF0IHdlJ3ZlIHJ1bi4KKyAgICAgICAgbGV0
IGRpZmYgPSBuZXcgU2V0KFsuLi5hbGxOb2Rlc10uZmlsdGVyKHggPT4gIXRlc3RlZE1ldGhvZHMu
aGFzKHgpKSk7CisKKyAgICAgICAgLy8gQ2FuJ3QgY3VycmVudGx5IHRlc3QgYSBNZWRpYVN0cmVh
bVNvdXJjZU5vZGUsIHNvIHJlbW92ZSBpdCBmcm9tIHRoZQorICAgICAgICAvLyBkaWZmIHNldC4K
KyAgICAgICAgZGlmZi5kZWxldGUoJ2NyZWF0ZU1lZGlhU3RyZWFtU291cmNlJyk7CisKKyAgICAg
ICAgLy8gSXQncyBhIHRlc3QgZmFpbHVyZSBpZiB3ZSBkaWRuJ3QgdGVzdCBhbGwgb2YgdGhlIGNy
ZWF0ZSBtZXRob2RzIGluCisgICAgICAgIC8vIHRoZSBjb250ZXh0IChleGNlcHQgY3JlYXRlTWVk
aWFTdHJlYW1Tb3VyY2UsIG9mIGNvdXJzZSkuCisgICAgICAgIGxldCBvdXRwdXQgPSBbXTsKKyAg
ICAgICAgaWYgKGRpZmYuc2l6ZSkgeworICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGlmZikK
KyAgICAgICAgICAgIG91dHB1dC5wdXNoKCcgJyArIGl0ZW0uc3Vic3RyaW5nKDYpKTsKKyAgICAg
ICAgfQorCisgICAgICAgIHNob3VsZChvdXRwdXQubGVuZ3RoID09PSAwLCAnTnVtYmVyIG9mIG5v
ZGVzIG5vdCB0ZXN0ZWQnKQorICAgICAgICAgICAgLm1lc3NhZ2UoJzogMCcsICc6ICcgKyBvdXRw
dXQpOworCisgICAgICAgIHRhc2suZG9uZSgpOworICAgICAgfSk7CisKKyAgICAgIC8vIFNpbXBs
ZSB0ZXN0IG9mIGEgZmV3IGF1dG9tYXRpb24gbWV0aG9kcyB0byB2ZXJpZnkgd2UgZ2V0IHdhcm5p
bmdzLgorICAgICAgYXVkaXQuZGVmaW5lKCdhdXRvbWF0aW9uJywgKHRhc2ssIHNob3VsZCkgPT4g
eworICAgICAgICAvLyBKdXN0IHVzZSBhIERlbGF5Tm9kZSBmb3IgdGVzdGluZyBiZWNhdXNlIHRo
ZSBhdWRpbyBwYXJhbSBoYXMgZmluaXRlCisgICAgICAgIC8vIGxpbWl0cy4KKyAgICAgICAgc2hv
dWxkKCgpID0+IHsKKyAgICAgICAgICBsZXQgZCA9IG9mZmxpbmVDb250ZXh0LmNyZWF0ZURlbGF5
KCk7CisKKyAgICAgICAgICAvLyBUaGUgY29uc29sZSBvdXRwdXQgc2hvdWxkIGhhdmUgdGhlIHdh
cm5pbmdzIHRoYXQgd2UncmUgaW50ZXJlc3RlZAorICAgICAgICAgIC8vIGluLgorICAgICAgICAg
IGQuZGVsYXlUaW1lLnNldFZhbHVlQXRUaW1lKC0xLCAwKTsKKyAgICAgICAgICBkLmRlbGF5VGlt
ZS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgyLCAxKTsKKyAgICAgICAgICBkLmRlbGF5VGltZS5l
eHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDMsIDIpOworICAgICAgICAgIGQuZGVsYXlUaW1l
LnNldFRhcmdldEF0VGltZSgtMSwgMywgLjEpOworICAgICAgICAgIGQuZGVsYXlUaW1lLnNldFZh
bHVlQ3VydmVBdFRpbWUoCisgICAgICAgICAgICAgIEZsb2F0MzJBcnJheS5mcm9tKFsuMSwgLjIs
IDEuNSwgLTFdKSwgNCwgLjEpOworICAgICAgICB9LCAnVGVzdCBhdXRvbWF0aW9ucyAoY2hlY2sg
Y29uc29sZSBsb2dzKScpLm5vdFRocm93KCk7CisgICAgICAgIHRhc2suZG9uZSgpOworICAgICAg
fSk7CisKKyAgICAgIGF1ZGl0LnJ1bigpOworCisgICAgICAvLyBJcyB8b2JqZWN0fCBhbiBBdWRp
b1BhcmFtPyAgV2UgZGV0ZXJtaW5lIHRoaXMgYnkgY2hlY2tpbmcgdGhlCisgICAgICAvLyBjb25z
dHJ1Y3RvciBuYW1lLgorICAgICAgZnVuY3Rpb24gaXNBdWRpb1BhcmFtKG9iamVjdCkgeworICAg
ICAgICByZXR1cm4gb2JqZWN0ICYmIG9iamVjdC5jb25zdHJ1Y3Rvci5uYW1lID09PSAnQXVkaW9Q
YXJhbSc7CisgICAgICB9CisKKyAgICAgIC8vIERvZXMgfGxpbWl0T3B0aW9uc3wgZXhpc3QgYW5k
IGRvZXMgaXQgaGF2ZSB2YWxpZCB2YWx1ZXMgZm9yIHRoZQorICAgICAgLy8gZXhwZWN0ZWQgbWlu
IGFuZCBtYXggdmFsdWVzPworICAgICAgZnVuY3Rpb24gaGFzVmFsaWRMaW1pdHMobGltaXRPcHRp
b25zKSB7CisgICAgICAgIHJldHVybiBsaW1pdE9wdGlvbnMgJiYgKHR5cGVvZiBsaW1pdE9wdGlv
bnMubWluVmFsdWUgPT09ICdudW1iZXInKSAmJgorICAgICAgICAgICAgKHR5cGVvZiBsaW1pdE9w
dGlvbnMubWF4VmFsdWUgPT09ICdudW1iZXInKTsKKyAgICAgIH0KKworICAgICAgLy8gQ2hlY2sg
dGhlIG1pbiBhbmQgbWF4IHZhbHVlcyBmb3IgdGhlIEF1ZGlvUGFyYW0gYXR0cmlidXRlIG5hbWVk
CisgICAgICAvLyB8cGFyYW1OYW1lfCBmb3IgdGhlIHxub2RlfC4gVGhlIGV4cGVjdGVkIGxpbWl0
cyBpcyBnaXZlbiBieSB0aGUKKyAgICAgIC8vIGRpY3Rpb25hcnkgfGxpbWl0c3wuICBJZiBzb21l
IHRlc3QgZmFpbHMsIGFkZCB0aGUgbmFtZSBvZiB0aGUgZmFpbGVkCisgICAgICBmdW5jdGlvbiB2
YWxpZGF0ZUF1ZGlvUGFyYW1MaW1pdHMoc2hvdWxkLCBub2RlLCBwYXJhbU5hbWUsIGxpbWl0cykg
eworICAgICAgICBsZXQgbm9kZU5hbWUgPSBub2RlLmNvbnN0cnVjdG9yLm5hbWU7CisgICAgICAg
IGxldCBwYXJhbWV0ZXIgPSBub2RlW3BhcmFtTmFtZV07CisgICAgICAgIGxldCBwcmVmaXggPSBu
b2RlTmFtZSArICcuJyArIHBhcmFtTmFtZTsKKworICAgICAgICBsZXQgc3VjY2VzcyA9IHRydWU7
CisgICAgICAgIGlmIChoYXNWYWxpZExpbWl0cyhsaW1pdHNbcGFyYW1OYW1lXSkpIHsKKyAgICAg
ICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgbWluIGFuZCBtYXggdmFsdWVzIGZvciB0aGUgcGFyYW1l
dGVyIGFyZSBjb3JyZWN0LgorICAgICAgICAgIGxldCBpc0NvcnJlY3QgPSBzaG91bGQocGFyYW1l
dGVyLm1pblZhbHVlLCBwcmVmaXggKyAnLm1pblZhbHVlJykKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5iZUVxdWFsVG8obGltaXRzW3BhcmFtTmFtZV0ubWluVmFsdWUpOworICAgICAg
ICAgIGlzQ29ycmVjdCA9IHNob3VsZChwYXJhbWV0ZXIubWF4VmFsdWUsIHByZWZpeCArICcubWF4
VmFsdWUnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKGxpbWl0c1twYXJh
bU5hbWVdLm1heFZhbHVlKSAmJgorICAgICAgICAgICAgICBpc0NvcnJlY3Q7CisKKyAgICAgICAg
ICAvLyBWZXJpZnkgdGhhdCB0aGUgbWluIGFuZCBtYXggYXR0cmlidXRlcyBhcmUgcmVhZC1vbmx5
LiAgfHRlc3RWYWx1ZXwKKyAgICAgICAgICAvLyBNVVNUIGJlIGEgbnVtYmVyIHRoYXQgY2FuIGJl
IHJlcHJlc2VudGVkIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzCisgICAgICAgICAgLy8gYm90aCBh
IGRvdWJsZSBhbmQgc2luZ2xlIGZsb2F0LiAgQSBzbWFsbCBpbnRlZ2VyIHdvcmtzIG5pY2VseS4K
KyAgICAgICAgICBjb25zdCB0ZXN0VmFsdWUgPSA0MjsKKyAgICAgICAgICBwYXJhbWV0ZXIubWlu
VmFsdWUgPSB0ZXN0VmFsdWU7CisgICAgICAgICAgbGV0IGlzUmVhZE9ubHk7CisgICAgICAgICAg
aXNSZWFkT25seSA9CisgICAgICAgICAgICAgIHNob3VsZChwYXJhbWV0ZXIubWluVmFsdWUsIGAk
e3ByZWZpeH0ubWluVmFsdWUgPSAke3Rlc3RWYWx1ZX1gKQorICAgICAgICAgICAgICAgICAgLm5v
dEJlRXF1YWxUbyh0ZXN0VmFsdWUpOworCisgICAgICAgICAgc2hvdWxkKGlzUmVhZE9ubHksIHBy
ZWZpeCArICcubWluVmFsdWUgaXMgcmVhZC1vbmx5JykuYmVFcXVhbFRvKHRydWUpOworCisgICAg
ICAgICAgaXNDb3JyZWN0ID0gaXNSZWFkT25seSAmJiBpc0NvcnJlY3Q7CisKKyAgICAgICAgICBw
YXJhbWV0ZXIubWF4VmFsdWUgPSB0ZXN0VmFsdWU7CisgICAgICAgICAgaXNSZWFkT25seSA9Cisg
ICAgICAgICAgICAgIHNob3VsZChwYXJhbWV0ZXIubWF4VmFsdWUsIGAke3ByZWZpeH0ubWF4VmFs
dWUgPSAke3Rlc3RWYWx1ZX1gKQorICAgICAgICAgICAgICAgICAgLm5vdEJlRXF1YWxUbyh0ZXN0
VmFsdWUpOworICAgICAgICAgIHNob3VsZChpc1JlYWRPbmx5LCBwcmVmaXggKyAnLm1heFZhbHVl
IGlzIHJlYWQtb25seScpLmJlRXF1YWxUbyh0cnVlKTsKKworICAgICAgICAgIGlzQ29ycmVjdCA9
IGlzUmVhZE9ubHkgJiYgaXNDb3JyZWN0OworCisgICAgICAgICAgLy8gTm93IHRyeSB0byBzZXQg
dGhlIHBhcmFtZXRlciBvdXRzaWRlIHRoZSBub21pbmFsIHJhbmdlLgorICAgICAgICAgIGxldCBu
ZXdWYWx1ZSA9IDIgKiBsaW1pdHNbcGFyYW1OYW1lXS5taW5WYWx1ZSAtIDE7CisKKyAgICAgICAg
ICBsZXQgaXNDbGlwcGVkID0gdHJ1ZTsKKyAgICAgICAgICBsZXQgY2xpcHBpbmdUZXN0ZWQgPSBm
YWxzZTsKKyAgICAgICAgICAvLyBJZiB0aGUgbmV3IHZhbHVlIGlzIGJleW9uZCBmbG9hdCB0aGUg
bGFyZ2VzdCBzaW5nbGUtcHJlY2lzaW9uCisgICAgICAgICAgLy8gZmxvYXQsIHNraXAgdGhlIHRl
c3QgYmVjYXVzZSBDaHJvbWUgdGhyb3dzIGFuIGVycm9yLgorICAgICAgICAgIGlmIChuZXdWYWx1
ZSA+PSAtbW9zdFBvc2l0aXZlRmxvYXQpIHsKKyAgICAgICAgICAgIHBhcmFtZXRlci52YWx1ZSA9
IG5ld1ZhbHVlOworICAgICAgICAgICAgY2xpcHBpbmdUZXN0ZWQgPSB0cnVlOworICAgICAgICAg
ICAgaXNDbGlwcGVkID0KKyAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAg
ICAgIHBhcmFtZXRlci52YWx1ZSwgJ1NldCAnICsgcHJlZml4ICsgJy52YWx1ZSA9ICcgKyBuZXdW
YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyhwYXJhbWV0ZXIubWluVmFsdWUp
ICYmCisgICAgICAgICAgICAgICAgaXNDbGlwcGVkOworICAgICAgICAgIH0KKworICAgICAgICAg
IG5ld1ZhbHVlID0gMiAqIGxpbWl0c1twYXJhbU5hbWVdLm1heFZhbHVlICsgMTsKKworICAgICAg
ICAgIGlmIChuZXdWYWx1ZSA8PSBtb3N0UG9zaXRpdmVGbG9hdCkgeworICAgICAgICAgICAgcGFy
YW1ldGVyLnZhbHVlID0gbmV3VmFsdWU7CisgICAgICAgICAgICBjbGlwcGluZ1Rlc3RlZCA9IHRy
dWU7CisgICAgICAgICAgICBpc0NsaXBwZWQgPQorICAgICAgICAgICAgICAgIHNob3VsZCgKKyAg
ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlLCAnU2V0ICcgKyBwcmVmaXggKyAnLnZh
bHVlID0gJyArIG5ld1ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKHBhcmFt
ZXRlci5tYXhWYWx1ZSkgJiYKKyAgICAgICAgICAgICAgICBpc0NsaXBwZWQ7CisgICAgICAgICAg
fQorCisgICAgICAgICAgaWYgKGNsaXBwaW5nVGVzdGVkKSB7CisgICAgICAgICAgICBzaG91bGQo
CisgICAgICAgICAgICAgICAgaXNDbGlwcGVkLAorICAgICAgICAgICAgICAgIHByZWZpeCArICcg
d2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZScpCisgICAgICAgICAg
ICAgICAgLmJlRXF1YWxUbyh0cnVlKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpc0NvcnJl
Y3QgPSBpc0NvcnJlY3QgJiYgaXNDbGlwcGVkOworCisgICAgICAgICAgc3VjY2VzcyA9IGlzQ29y
cmVjdCAmJiBzdWNjZXNzOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIC8vIFRlc3QgY29u
ZmlnIGRpZG4ndCBzcGVjaWZ5IHZhbGlkIGxpbWl0cy4gIEZhaWwgdGhpcyB0ZXN0IQorICAgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgY2xpcHBpbmdUZXN0ZWQsCisgICAgICAgICAgICAg
ICdMaW1pdHMgZm9yICcgKyBub2RlTmFtZSArICcuJyArIHBhcmFtTmFtZSArCisgICAgICAgICAg
ICAgICAgICAnIHdlcmUgY29ycmVjdGx5IGRlZmluZWQnKQorICAgICAgICAgICAgICAuYmVFcXVh
bFRvKGZhbHNlKTsKKworICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgfQorCisg
ICAgICAgIHJldHVybiBzdWNjZXNzOworICAgICAgfQorCisgICAgICAvLyBUZXN0IGFsbCBvZiB0
aGUgQXVkaW9QYXJhbXMgZm9yIHxub2RlfCB1c2luZyB0aGUgZXhwZWN0ZWQgdmFsdWVzIGluCisg
ICAgICAvLyB8bGltaXRzfC4gfGNyZWF0b3JOYW1lfCBpcyB0aGUgbmFtZSBvZiB0aGUgbWV0aG9k
IHRvIGNyZWF0ZSB0aGUgbm9kZSwKKyAgICAgIC8vIGFuZCBpcyB1c2VkIHRvIGtlZXAgdHJha2Mg
b2Ygd2hpY2ggdGVzdHMgd2UndmUgcnVuLgorICAgICAgZnVuY3Rpb24gdGVzdExpbWl0cyhzaG91
bGQsIGNyZWF0b3JOYW1lLCBub2RlLCBsaW1pdHMpIHsKKyAgICAgICAgbGV0IG5vZGVOYW1lID0g
bm9kZS5jb25zdHJ1Y3Rvci5uYW1lOworICAgICAgICB0ZXN0ZWRNZXRob2RzLmFkZChjcmVhdG9y
TmFtZSk7CisKKyAgICAgICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworCisgICAgICAgIC8vIExpc3Qg
b2YgYWxsIG9mIHRoZSBBdWRpb1BhcmFtcyB0aGF0IHdlcmUgdGVzdGVkLgorICAgICAgICBsZXQg
YXVkaW9QYXJhbXMgPSBbXTsKKworICAgICAgICAvLyBMaXN0IG9mIEF1ZGlvUGFyYW1zIHRoYXQg
ZmFpbGVkIHRoZSB0ZXN0LgorICAgICAgICBsZXQgaW5jb3JyZWN0UGFyYW1zID0gW107CisKKyAg
ICAgICAgLy8gTG9vayB0aHJvdWdoIGFsbCBvZiB0aGUga2V5cyBmb3IgdGhlIG5vZGUgYW5kIGV4
dHJhY3QganVzdCB0aGUKKyAgICAgICAgLy8gQXVkaW9QYXJhbXMKKyAgICAgICAgT2JqZWN0Lmtl
eXMobm9kZS5fX3Byb3RvX18pLmZvckVhY2goZnVuY3Rpb24ocGFyYW1OYW1lKSB7CisgICAgICAg
ICAgaWYgKGlzQXVkaW9QYXJhbShub2RlW3BhcmFtTmFtZV0pKSB7CisgICAgICAgICAgICBhdWRp
b1BhcmFtcy5wdXNoKHBhcmFtTmFtZSk7CisgICAgICAgICAgICBsZXQgaXNWYWxpZCA9IHZhbGlk
YXRlQXVkaW9QYXJhbUxpbWl0cygKKyAgICAgICAgICAgICAgICBzaG91bGQsIG5vZGUsIHBhcmFt
TmFtZSwgbGltaXRzLCBpbmNvcnJlY3RQYXJhbXMpOworICAgICAgICAgICAgaWYgKCFpc1ZhbGlk
KQorICAgICAgICAgICAgICBpbmNvcnJlY3RQYXJhbXMucHVzaChwYXJhbU5hbWUpOworCisgICAg
ICAgICAgICBzdWNjZXNzID0gaXNWYWxpZCAmJiBzdWNjZXNzOworICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisKKyAgICAgICAgLy8gUHJpbnQgYW4gYXBwcm9wcmlhdGUgbWVzc2FnZSBkZXBlbmRp
bmcgb24gd2hldGhlciB0aGVyZSB3ZXJlCisgICAgICAgIC8vIEF1ZGlvUGFyYW1zIGRlZmluZWQg
b3Igbm90LgorICAgICAgICBpZiAoYXVkaW9QYXJhbXMubGVuZ3RoKSB7CisgICAgICAgICAgbGV0
IG1lc3NhZ2UgPQorICAgICAgICAgICAgICAnTm9taW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0o
cykgb2YgJyArIG5vZGUuY29uc3RydWN0b3IubmFtZTsKKyAgICAgICAgICBzaG91bGQoc3VjY2Vz
cywgbWVzc2FnZSkKKyAgICAgICAgICAgICAgLm1lc3NhZ2UoJ2FyZSBjb3JyZWN0JywgJ2FyZSBp
bmNvcnJlY3QgZm9yOiAnICsgK2luY29ycmVjdFBhcmFtcyk7CisgICAgICAgICAgcmV0dXJuIHN1
Y2Nlc3M7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgc2hvdWxkKCFsaW1pdHMsIG5vZGVO
YW1lKQorICAgICAgICAgICAgICAubWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgICdoYXMgbm8g
QXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQnLAorICAgICAgICAgICAgICAgICAgJ2hhcyBubyBBdWRp
b1BhcmFtcyBidXQgdGVzdCBleHBlY3RlZCAnICsgbGltaXRzKTsKKyAgICAgICAgfQorICAgICAg
fQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tcHJvY2Vzc2luZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tcHJvY2Vzc2lu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBkYWU4ODM2M2I0ODdlZmFlMzhmZTE0YzEzODE0
ZDFiNGM3Njg0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgwIEBA
CisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJC
aXF1YWRGaWx0ZXJOb2RlIiAKK1BBU1MgRXhlY3V0aW5nICJEZWxheU5vZGUiIAorUEFTUyBFeGVj
dXRpbmcgIkR5bmFtaWNzQ29tcHJlc3Nvck5vZGUiIAorUEFTUyBFeGVjdXRpbmcgIkdhaW5Ob2Rl
IiAKK1BBU1MgRXhlY3V0aW5nICJQYW5uZXJOb2RlIiAKK1BBU1MgRXhlY3V0aW5nICJTdGVyZW9Q
YW5uZXJOb2RlIiAKK1BBU1MgRXhlY3V0aW5nICJBdWRpb0xpc3RlbmVyIiAKK1BBU1MgQXVkaXQg
cmVwb3J0IAorUEFTUyA+IFtCaXF1YWRGaWx0ZXJOb2RlXSAgCitQQVNTICAgQmlxdWFkRmlsdGVy
Tm9kZS5RIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDEuIAorRkFJTCBYIEJpcXVh
ZEZpbHRlck5vZGUuUS52YWx1ZSBpcyBub3QgZXF1YWwgdG8gNS4gR290IDEuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5l
IHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuIAorRkFJTCBYIEJpcXVhZEZpbHRl
ck5vZGUuZGV0dW5lLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLjUuIEdvdCAwLiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1
ZW5jeSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAzNTAuIAorRkFJTCBYIEJpcXVh
ZEZpbHRlck5vZGUuZnJlcXVlbmN5LnZhbHVlIGlzIG5vdCBlcXVhbCB0byAxMDAuIEdvdCAzNTAu
IGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIEJpcXVhZEZpbHRl
ck5vZGUuZ2FpbiByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBC
aXF1YWRGaWx0ZXJOb2RlLmdhaW4udmFsdWUgaXMgbm90IGVxdWFsIHRvIDMuIEdvdCAwLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbQmlxdWFkRmlsdGVyTm9k
ZV0gNCBvdXQgb2YgOCBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbRGVsYXlOb2RlXSAgCitQQVNTICAgRGVsYXlOb2Rl
LmRlbGF5VGltZSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBE
ZWxheU5vZGUuZGVsYXlUaW1lLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLjUuIEdvdCAwLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgPCBbRGVsYXlOb2RlXSAxIG91
dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVl
IGdvdCBmYWxzZQorUEFTUyA+IFtEeW5hbWljc0NvbXByZXNzb3JOb2RlXSAgCitQQVNTICAgRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5hdHRhY2sgcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwg
dG8gMC4wMDMwMDAwMDAwMjYwNzcwMzIuIAorRkFJTCBYIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUu
YXR0YWNrLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLjUuIEdvdCAwLjAwMzAwMDAwMDAyNjA3NzAz
Mi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgRHluYW1pY3ND
b21wcmVzc29yTm9kZS5rbmVlIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDMwLiAK
K0ZBSUwgWCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUudmFsdWUgaXMgbm90IGVxdWFsIHRv
IDI1LiBHb3QgMzAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmF0aW8gcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1
YWwgdG8gMTIuIAorRkFJTCBYIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmF0aW8udmFsdWUgaXMg
bm90IGVxdWFsIHRvIDE1LiBHb3QgMTIuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBm
YWxzZQorUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZSByYW1wIGZpbmFsIHZh
bHVlIGlzIG5vdCBlcXVhbCB0byAwLjI1LiAKK0ZBSUwgWCBEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LnJlbGVhc2UudmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuNzUuIEdvdCAwLjI1LiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LnRocmVzaG9sZCByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAtMjQuIAorRkFJTCBY
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAt
MTAuIEdvdCAtMjQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8
IFtEeW5hbWljc0NvbXByZXNzb3JOb2RlXSA1IG91dCBvZiAxMCBhc3NlcnRpb25zIHdlcmUgZmFp
bGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbR2Fpbk5v
ZGVdICAKK1BBU1MgICBHYWluTm9kZS5nYWluIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFs
IHRvIDEuIAorRkFJTCBYIEdhaW5Ob2RlLmdhaW4udmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuNS4g
R290IDEuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFtHYWlu
Tm9kZV0gMSBvdXQgb2YgMiBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbUGFubmVyTm9kZV0gIAorUEFTUyAgIFBhbm5l
ck5vZGUucG9zaXRpb25YIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuIAorRkFJ
TCBYIFBhbm5lck5vZGUucG9zaXRpb25YLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLjUuIEdvdCAw
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBQYW5uZXJOb2Rl
LnBvc2l0aW9uWSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBQ
YW5uZXJOb2RlLnBvc2l0aW9uWS52YWx1ZSBpcyBub3QgZXF1YWwgdG8gMzAuIEdvdCAwLiBhc3Nl
cnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBQYW5uZXJOb2RlLnBvc2l0
aW9uWiByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBQYW5uZXJO
b2RlLnBvc2l0aW9uWi52YWx1ZSBpcyBub3QgZXF1YWwgdG8gMTUuIEdvdCAwLiBhc3NlcnRfdHJ1
ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9u
WCByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAxLiAKK0ZBSUwgWCBQYW5uZXJOb2Rl
Lm9yaWVudGF0aW9uWC52YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC41LiBHb3QgMS4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlv
blkgcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggUGFubmVyTm9k
ZS5vcmllbnRhdGlvblkudmFsdWUgaXMgbm90IGVxdWFsIHRvIDMwLiBHb3QgMC4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlv
blogcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggUGFubmVyTm9k
ZS5vcmllbnRhdGlvbloudmFsdWUgaXMgbm90IGVxdWFsIHRvIDE1LiBHb3QgMC4gYXNzZXJ0X3Ry
dWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgW1Bhbm5lck5vZGVdIDYgb3V0IG9m
IDEyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyA+IFtTdGVyZW9QYW5uZXJOb2RlXSAgCitQQVNTICAgU3RlcmVvUGFubmVy
Tm9kZS5wYW4gcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitGQUlMIFggU3Rl
cmVvUGFubmVyTm9kZS5wYW4udmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuNS4gR290IDAuIGFzc2Vy
dF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCA8IFtTdGVyZW9QYW5uZXJOb2Rl
XSAxIG91dCBvZiAyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtBdWRpb0xpc3RlbmVyXSAgCitQQVNTICAgQXVkaW9M
aXN0ZW5lci5wb3NpdGlvblggcmFtcCBmaW5hbCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gMC4gCitG
QUlMIFggQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgudmFsdWUgaXMgbm90IGVxdWFsIHRvIDEwMC4g
R290IDAuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIEF1ZGlv
TGlzdGVuZXIucG9zaXRpb25ZIHJhbXAgZmluYWwgdmFsdWUgaXMgbm90IGVxdWFsIHRvIDAuIAor
RkFJTCBYIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25ZLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAyMDAu
IEdvdCAwLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBBdWRp
b0xpc3RlbmVyLnBvc2l0aW9uWiByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAK
K0ZBSUwgWCBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWi52YWx1ZSBpcyBub3QgZXF1YWwgdG8gMzAw
LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQXVk
aW9MaXN0ZW5lci5mb3J3YXJkWCByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAK
K0ZBSUwgWCBBdWRpb0xpc3RlbmVyLmZvcndhcmRYLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAtMTAw
LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQXVk
aW9MaXN0ZW5lci5mb3J3YXJkWSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAK
K0ZBSUwgWCBBdWRpb0xpc3RlbmVyLmZvcndhcmRZLnZhbHVlIGlzIG5vdCBlcXVhbCB0byAtMjAw
LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgQXVk
aW9MaXN0ZW5lci5mb3J3YXJkWiByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAtMS4g
CitGQUlMIFggQXVkaW9MaXN0ZW5lci5mb3J3YXJkWi52YWx1ZSBpcyBub3QgZXF1YWwgdG8gLTMw
MC4gR290IC0xLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBB
dWRpb0xpc3RlbmVyLnVwWCByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZB
SUwgWCBBdWRpb0xpc3RlbmVyLnVwWC52YWx1ZSBpcyBub3QgZXF1YWwgdG8gOTkuIEdvdCAwLiBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBBdWRpb0xpc3RlbmVy
LnVwWSByYW1wIGZpbmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAxLiAKK0ZBSUwgWCBBdWRpb0xp
c3RlbmVyLnVwWS52YWx1ZSBpcyBub3QgZXF1YWwgdG8gNDIuIEdvdCAxLiBhc3NlcnRfdHJ1ZTog
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgICBBdWRpb0xpc3RlbmVyLnVwWiByYW1wIGZp
bmFsIHZhbHVlIGlzIG5vdCBlcXVhbCB0byAwLiAKK0ZBSUwgWCBBdWRpb0xpc3RlbmVyLnVwWi52
YWx1ZSBpcyBub3QgZXF1YWwgdG8gMTM3LiBHb3QgMC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitGQUlMIDwgW0F1ZGlvTGlzdGVuZXJdIDkgb3V0IG9mIDE4IGFzc2VydGlv
bnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA3IG91dCBvZiA3IHRhc2tzIHdlcmUgZmFp
bGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXByb2Nlc3NpbmcuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1wcm9jZXNzaW5n
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWU4YmRiODc5NDFkNmNiZTJiYTJmYmI5MjBmMTA0ODQzNzIzYTYw
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVk
aW9wYXJhbS1wcm9jZXNzaW5nLmh0bWwKQEAgLTAsMCArMSwzMDQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3QgUHJvY2Vzc2luZyBP
ZiBBdWRpb1BhcmFtcyBvZiBEaXNjb25uZWN0ZWQgQXVkaW9Ob2RlcworICAgIDwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4K
KyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIEFyYml0cmFyeSBz
YW1wbGUgcmF0ZS4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gODAwMDsKKworICAgICAgLy8gQXJi
aXRyYXJ5IG51bWJlciBvZiBmcmFtZXMgZm9yIHRoZSB0ZXN0LCBleGNlcHQgaXQgbXVzdCBiZSBn
cmVhdGVyIHRoYW4KKyAgICAgIC8vIHxhdXRvbWF0aW9uRW5kRnJhbWV8LgorICAgICAgbGV0IHJl
bmRlckZyYW1lcyA9IDEwMjQ7CisKKyAgICAgIC8vIFRoZSBsaW5lYXIgcmFtcCBhdXRvbWF0aW9u
IGVuZHMgYXQgdGhpcyBmcmFtZS4gQXJiaXRyYXJ5LCBleGNlcHQgaXQKKyAgICAgIC8vIG11c3Qg
YmUgc3RyaWN0bHkgbGVzcyB0aGFuIHRoZSByZW5kZXIgbGVuZ3RoLgorICAgICAgbGV0IGF1dG9t
YXRpb25FbmRGcmFtZSA9IDEyODsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFz
a1J1bm5lcigpOworCisgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgYSB0ZXN0IGZvciBldmVyeSBz
aW5nbGUgbm9kZSB3aGljaCBoYXMgYW4gQXVkaW9QYXJhbS4KKyAgICAgIC8vIFNvdXJjZSBub2Rl
cyBhcmUgbm90IGluY2x1ZGVkIGluIHRoaXMgYmVjYXVzZSB0aGUgQXVkaW9QYXJhbXMgZm9yIHRo
ZQorICAgICAgLy8gc291cmNlIG5vZGVzIG9ubHkgcHJvY2VzcyB3aGVuIHRoZSBub2RlIGhhcyBi
ZWVuIHN0YXJ0ZWQuCisKKyAgICAgIGF1ZGl0LmRlZmluZSgnQmlxdWFkRmlsdGVyTm9kZScsICh0
YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgbGV0IG5vZGVOYW1lID0gJ0JpcXVhZEZpbHRlck5v
ZGUnCisgICAgICAgIFByb21pc2UKKyAgICAgICAgICAgIC5hbGwoWworICAgICAgICAgICAgICB0
ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBu
b2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJhbU5hbWU6ICdRJywKKyAgICAgICAgICAgICAg
ICBpbml0aWFsVmFsdWU6IDIsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDUKKyAg
ICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgIHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxk
LCB7CisgICAgICAgICAgICAgICAgbm9kZU5hbWU6IG5vZGVOYW1lLAorICAgICAgICAgICAgICAg
IHBhcmFtTmFtZTogJ2RldHVuZScsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAxLAor
ICAgICAgICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAwLjUKKyAgICAgICAgICAgICAgfSksCisg
ICAgICAgICAgICAgIHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAg
ICAgbm9kZU5hbWU6IG5vZGVOYW1lLAorICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ2ZyZXF1
ZW5jeScsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAxMDAwLAorICAgICAgICAgICAg
ICAgIHJhbXBGaW5hbFZhbHVlOiAxMDAKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAg
IHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgbm9kZU5hbWU6
IG5vZGVOYW1lLAorICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ2dhaW4nLAorICAgICAgICAg
ICAgICAgIGluaXRpYWxWYWx1ZTogLTMsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6
IDMKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgLnRoZW4o
KCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnRGVs
YXlOb2RlJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9u
KHNob3VsZCwgeworICAgICAgICAgIG5vZGVOYW1lOiAnRGVsYXlOb2RlJywKKyAgICAgICAgICBw
YXJhbU5hbWU6ICdkZWxheVRpbWUnLAorICAgICAgICAgIGluaXRpYWxWYWx1ZTogMC4yNSwKKyAg
ICAgICAgICByYW1wRmluYWxWYWx1ZTogMC41CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5k
b25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnRHluYW1pY3NDb21wcmVz
c29yTm9kZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgbGV0IG5vZGVOYW1lID0gJ0R5
bmFtaWNzQ29tcHJlc3Nvck5vZGUnOworICAgICAgICBQcm9taXNlCisgICAgICAgICAgICAuYWxs
KFsKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAg
ICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFyYW1OYW1lOiAn
YXR0YWNrJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDAuMSwKKyAgICAgICAgICAg
ICAgICByYW1wRmluYWxWYWx1ZTogMC41CisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAg
ICB0ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1l
OiBub2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJhbU5hbWU6ICdrbmVlJywKKyAgICAgICAg
ICAgICAgICBpbml0aWFsVmFsdWU6IDAsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6
IDI1CisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9u
KHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAg
ICAgICAgICBwYXJhbU5hbWU6ICdyYXRpbycsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVl
OiAxLAorICAgICAgICAgICAgICAgIHJhbXBGaW5hbFZhbHVlOiAxNQorICAgICAgICAgICAgICB9
KSwKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAg
ICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisgICAgICAgICAgICAgICAgcGFyYW1OYW1lOiAn
cmVsZWFzZScsCisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAwLAorICAgICAgICAgICAg
ICAgIHJhbXBGaW5hbFZhbHVlOiAwLjc1CisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAg
ICB0ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1l
OiBub2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJhbU5hbWU6ICd0aHJlc2hvbGQnLAorICAg
ICAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogLTUwLAorICAgICAgICAgICAgICAgIHJhbXBGaW5h
bFZhbHVlOiAtMTAKKyAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIF0pCisgICAgICAgICAg
ICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdHYWluTm9kZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgdGVzdFBhcmFtQXV0
b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAgICBub2RlTmFtZTogJ0dhaW5Ob2RlJywKKyAgICAg
ICAgICBwYXJhbU5hbWU6ICdnYWluJywKKyAgICAgICAgICBpbml0aWFsVmFsdWU6IDEsCisgICAg
ICAgICAgcmFtcEZpbmFsVmFsdWU6IDAuNQorICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9u
ZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ1Bhbm5lck5vZGUnLCAodGFz
aywgc2hvdWxkKSA9PiB7CisgICAgICAgIGxldCBub2RlTmFtZSA9ICdQYW5uZXJOb2RlJzsKKyAg
ICAgICAgUHJvbWlzZQorICAgICAgICAgICAgLmFsbChbCisgICAgICAgICAgICAgIHRlc3RQYXJh
bUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgbm9kZU5hbWU6IG5vZGVOYW1l
LAorICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ3Bvc2l0aW9uWCcsCisgICAgICAgICAgICAg
ICAgaW5pdGlhbFZhbHVlOiAwLjEsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDAu
NQorICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihz
aG91bGQsIHsKKyAgICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZU5hbWUsCisgICAgICAgICAg
ICAgICAgcGFyYW1OYW1lOiAncG9zaXRpb25ZJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFs
dWU6IDIsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDMwCisgICAgICAgICAgICAg
IH0pLAorICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9uKHNob3VsZCwgeworICAgICAg
ICAgICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAgICAgICAgICBwYXJhbU5hbWU6
ICdwb3NpdGlvblonLAorICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogMSwKKyAgICAgICAg
ICAgICAgICByYW1wRmluYWxWYWx1ZTogMTUKKyAgICAgICAgICAgICAgfSksCisgICAgICAgICAg
ICAgIHRlc3RQYXJhbUF1dG9tYXRpb24oc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgbm9kZU5h
bWU6IG5vZGVOYW1lLAorICAgICAgICAgICAgICAgIHBhcmFtTmFtZTogJ29yaWVudGF0aW9uWCcs
CisgICAgICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAwLjEsCisgICAgICAgICAgICAgICAgcmFt
cEZpbmFsVmFsdWU6IDAuNQorICAgICAgICAgICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdFBh
cmFtQXV0b21hdGlvbihzaG91bGQsIHsKKyAgICAgICAgICAgICAgICBub2RlTmFtZTogbm9kZU5h
bWUsCisgICAgICAgICAgICAgICAgcGFyYW1OYW1lOiAnb3JpZW50YXRpb25ZJywKKyAgICAgICAg
ICAgICAgICBpbml0aWFsVmFsdWU6IDIsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6
IDMwCisgICAgICAgICAgICAgIH0pLAorICAgICAgICAgICAgICB0ZXN0UGFyYW1BdXRvbWF0aW9u
KHNob3VsZCwgeworICAgICAgICAgICAgICAgIG5vZGVOYW1lOiBub2RlTmFtZSwKKyAgICAgICAg
ICAgICAgICBwYXJhbU5hbWU6ICdvcmllbnRhdGlvblonLAorICAgICAgICAgICAgICAgIGluaXRp
YWxWYWx1ZTogMSwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogMTUKKyAgICAgICAg
ICAgICAgfSksCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGFzay5k
b25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgnU3RlcmVvUGFubmVyTm9k
ZScsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgdGVzdFBhcmFtQXV0b21hdGlvbihzaG91
bGQsIHsKKyAgICAgICAgICBub2RlTmFtZTogJ1N0ZXJlb1Bhbm5lck5vZGUnLAorICAgICAgICAg
IHBhcmFtTmFtZTogJ3BhbicsCisgICAgICAgICAgaW5pdGlhbFZhbHVlOiAxLAorICAgICAgICAg
IHJhbXBGaW5hbFZhbHVlOiAwLjUKKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7
CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdBdWRpb0xpc3RlbmVyJywgKHRhc2ss
IHNob3VsZCkgPT4geworICAgICAgICBQcm9taXNlCisgICAgICAgICAgICAuYWxsKFsKKyAgICAg
ICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCB7CisgICAgICAgICAgICAgICAgcGFy
YW1OYW1lOiAncG9zaXRpb25YJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDEsCisg
ICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDEwMAorICAgICAgICAgICAgICB9KSwKKyAg
ICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCB7CisgICAgICAgICAgICAgICAg
cGFyYW1OYW1lOiAncG9zaXRpb25ZJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6IDEs
CisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDIwMAorICAgICAgICAgICAgICB9KSwK
KyAgICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCB7CisgICAgICAgICAgICAg
ICAgcGFyYW1OYW1lOiAncG9zaXRpb25aJywKKyAgICAgICAgICAgICAgICBpbml0aWFsVmFsdWU6
IDEsCisgICAgICAgICAgICAgICAgcmFtcEZpbmFsVmFsdWU6IDMwMAorICAgICAgICAgICAgICB9
KSwKKyAgICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCB7CisgICAgICAgICAg
ICAgICAgcGFyYW1OYW1lOiAnZm9yd2FyZFgnLAorICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1
ZTogMSwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogLTEwMAorICAgICAgICAgICAg
ICB9KSwKKyAgICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCB7CisgICAgICAg
ICAgICAgICAgcGFyYW1OYW1lOiAnZm9yd2FyZFknLAorICAgICAgICAgICAgICAgIGluaXRpYWxW
YWx1ZTogMSwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogLTIwMAorICAgICAgICAg
ICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoc2hvdWxkLCB7CisgICAg
ICAgICAgICAgICAgcGFyYW1OYW1lOiAnZm9yd2FyZFonLAorICAgICAgICAgICAgICAgIGluaXRp
YWxWYWx1ZTogMSwKKyAgICAgICAgICAgICAgICByYW1wRmluYWxWYWx1ZTogLTMwMAorICAgICAg
ICAgICAgICB9KSwKKyAgICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoCisgICAgICAgICAg
ICAgICAgICBzaG91bGQsCisgICAgICAgICAgICAgICAgICB7cGFyYW1OYW1lOiAndXBYJywgaW5p
dGlhbFZhbHVlOiAxLCByYW1wRmluYWxWYWx1ZTogOTl9KSwKKyAgICAgICAgICAgICAgdGVzdEF1
ZGlvTGlzdGVuZXIoCisgICAgICAgICAgICAgICAgICBzaG91bGQsCisgICAgICAgICAgICAgICAg
ICB7cGFyYW1OYW1lOiAndXBZJywgaW5pdGlhbFZhbHVlOiAxLCByYW1wRmluYWxWYWx1ZTogNDJ9
KSwKKyAgICAgICAgICAgICAgdGVzdEF1ZGlvTGlzdGVuZXIoCisgICAgICAgICAgICAgICAgICBz
aG91bGQsCisgICAgICAgICAgICAgICAgICB7cGFyYW1OYW1lOiAndXBaJywgaW5pdGlhbFZhbHVl
OiAxLCByYW1wRmluYWxWYWx1ZTogMTM3fSksCisgICAgICAgICAgICBdKQorICAgICAgICAgICAg
LnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIC8vIFJ1biB0ZXN0
IG9mIGF1dG9tYXRpb24gcHJvY2Vzc2luZy4gfG9wdGlvbnN8IGlzIGEgZGljdGlvbmFyeSB0aGF0
CisgICAgICAvLyBkZXNjcmliZXMgdGhlIG5vZGUgdG8gdGVzdCwgdGhlIEF1ZGlvUGFyYW1zIHRv
IGJlIHRlc3RlZCBhbmQgdGhlIHZhbHVlcworICAgICAgLy8gZm9yIHRoZSBBdWRpb1BhcmFtLiAg
VGhlIG1lbWJlcnMgb2YgdGhlIGRpY3Rpb25hcnkgYXJlOgorICAgICAgLy8KKyAgICAgIC8vICAg
bm9kZU5hbWUgICAgICAgLSBuYW1lIG9mIHRoZSBub2RlIChjb25zdHJ1Y3RvciBuYW1lKQorICAg
ICAgLy8gICBwYXJhbU5hbWUgICAgICAtIG5hbWUgb2YgdGhlIEF1ZGlvUGFyYW0gdG8gYmUgdGVz
dGVkCisgICAgICAvLyAgIGluaXRpYWxWYWx1ZSAgIC0gc3RhcnRpbmcgdmFsdWUgZm9yIGxpbmVh
ciByYW1wCisgICAgICAvLyAgIHJhbXBGaW5hbFZhbHVlIC0gZmluYWxlIHZhbHVlIGZvciBsaW5l
YXIgcmFtcAorICAgICAgLy8KKyAgICAgIC8vIFRoZSB0ZXN0IGlzIGNvbnNpZGVyZWQgdG8gaGF2
ZSBzdWNjZWVkZWQgaWYgdGhlIHwudmFsdWV8IG9mIHRoZQorICAgICAgLy8gQXVkaW9QYXJhbSBp
cyB0aGUgZmluYWwgdmFsdWUuCisgICAgICAvLworICAgICAgLy8gQSBzaW1wbGUgZ3JhcGggaXMg
Y3JlYXRlZCBjb250YWluaW5nIHRoZSBub2RlIHRvIGJlIHRlc3RlZCwgY29ubmVjdGVkCisgICAg
ICAvLyB0byB0aGUgZGVzdGluYXRpb24uICBBIGxpbmVhciByYW1wIGF1dG9tYXRpb24gaXMgc2No
ZWR1bGVkIGZvciB0aGUKKyAgICAgIC8vIHNwZWNpZmllZCBBdWRpb1BhcmFtLCBzdGFydGluZyBh
bmQgZW5kaW5nIGF0IHRoZSB2YWx1ZXMgZ2l2ZW4uCisgICAgICAvLworICAgICAgLy8gUHJvY2Vz
c2luZyBpcyBzdGFydGVkIGFuZCBhZnRlciBzb21lIG51bWJlciBvZiBmcmFtZXMsIHRoZSB8LnZh
bHVlfCBvZgorICAgICAgLy8gdGhlIEF1ZGlvUGFyYW0gaXMgb2J0YWluZWQgYW5kIGNvbXBhcmVk
IGFnYWluc3QgdGhlIGZpbmFsIHZhbHVlLiAgVGhlc2UKKyAgICAgIC8vIHNob3VsZCBtYXRjaCBl
eGFjdGx5LgorICAgICAgZnVuY3Rpb24gdGVzdFBhcmFtQXV0b21hdGlvbihzaG91bGQsIG9wdGlv
bnMpIHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBy
ZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworCisgICAgICAgIC8vIENyZWF0ZSB0aGUgbm9kZSB0
byBiZSB0ZXN0ZWQKKyAgICAgICAgbGV0IG5vZGUgPSBuZXcgd2luZG93W29wdGlvbnMubm9kZU5h
bWVdKGNvbnRleHQpOworICAgICAgICBub2RlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7
CisKKyAgICAgICAgLy8gQSBsaW5lYXIgcmFtcCBzdGFydGluZyBhdCBmcmFtZSAwIHRvIGZyYW1l
IHxhdXRvbWF0aW9uRW5kRnJhbWV8IGlzCisgICAgICAgIC8vIHVzZWQgZm9yIHRoZSB0ZXN0LiAg
VGhpcyB2YWx1ZSBpcyBmYWlybHkgYXJiaXRyYXJ5LCBidXQgaXQgc2hvdWxkIGJlCisgICAgICAg
IC8vIGxlc3MgdGhhbiB0aGUgdG90YWwgcmVuZGVyIGZyYW1lcy4KKworICAgICAgICBub2RlW29w
dGlvbnMucGFyYW1OYW1lXS5zZXRWYWx1ZUF0VGltZShvcHRpb25zLmluaXRpYWxWYWx1ZSwgMCk7
CisgICAgICAgIG5vZGVbb3B0aW9ucy5wYXJhbU5hbWVdLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
KAorICAgICAgICAgICAgb3B0aW9ucy5yYW1wRmluYWxWYWx1ZSwgYXV0b21hdGlvbkVuZEZyYW1l
IC8gY29udGV4dC5zYW1wbGVSYXRlKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJl
bmRlcmluZygpLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgLy8gU2Fu
aXR5IGNoZWNrOiB0aGUgZ2l2ZW4gcmFtcCBmaW5hbCB2YWx1ZSBtdXN0IG5vdCBiZSB0aGUgZGVm
YXVsdAorICAgICAgICAgIC8vIHZhbHVlLCBvdGhlcndpc2Ugd2UgY2FuJ3QgZWFzaWx5IHRlbGwg
aWYgdGhlIGF1dG9tYXRpb24gd2FzCisgICAgICAgICAgLy8gYWN0dWFsbHkgcnVuLgorICAgICAg
ICAgIHNob3VsZCgKKyAgICAgICAgICAgICAgb3B0aW9ucy5yYW1wRmluYWxWYWx1ZSwKKyAgICAg
ICAgICAgICAgb3B0aW9ucy5ub2RlTmFtZSArICcuJyArIG9wdGlvbnMucGFyYW1OYW1lICsgJyBy
YW1wIGZpbmFsIHZhbHVlJykKKyAgICAgICAgICAgICAgLm5vdEJlRXF1YWxUbyhub2RlW29wdGlv
bnMucGFyYW1OYW1lXS5kZWZhdWx0VmFsdWUpOworCisgICAgICAgICAgLy8gVGhlIGFjdHVhbCBB
dWRpb1BhcmFtIHZhbHVlIHNob3VsZCBiZSB0aGUgcmFtcGUgZmluYWwgdmFsdWUuCisgICAgICAg
ICAgc2hvdWxkKAorICAgICAgICAgICAgICBub2RlW29wdGlvbnMucGFyYW1OYW1lXS52YWx1ZSwK
KyAgICAgICAgICAgICAgb3B0aW9ucy5ub2RlTmFtZSArICcuJyArIG9wdGlvbnMucGFyYW1OYW1l
ICsgJy52YWx1ZScpCisgICAgICAgICAgICAgIC5iZUVxdWFsVG8ob3B0aW9ucy5yYW1wRmluYWxW
YWx1ZSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiB0ZXN0QXVkaW9M
aXN0ZW5lcihzaG91bGQsIG9wdGlvbnMpIHsKKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2Zm
bGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworCisgICAgICAg
IC8vIENyZWF0ZSB0aGUgbm9kZSB0byBiZSB0ZXN0ZWQKKyAgICAgICAgbGV0IG5vZGUgPSBuZXcg
UGFubmVyTm9kZShjb250ZXh0KTsKKyAgICAgICAgbm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGlu
YXRpb24pOworCisgICAgICAgIC8vIEEgbGluZWFyIHJhbXAgc3RhcnRpbmcgYXQgZnJhbWUgMCB0
byBmcmFtZSB8YXV0b21hdGlvbkVuZEZyYW1lfCBpcworICAgICAgICAvLyB1c2VkIGZvciB0aGUg
dGVzdC4gIFRoaXMgdmFsdWUgaXMgZmFpcmx5IGFyYml0cmFyeSwgYnV0IGl0IHNob3VsZCBiZQor
ICAgICAgICAvLyBsZXNzIHRoYW4gdGhlIHRvdGFsIHJlbmRlciBmcmFtZXMuCisKKyAgICAgICAg
Y29udGV4dC5saXN0ZW5lcltvcHRpb25zLnBhcmFtTmFtZV0uc2V0VmFsdWVBdFRpbWUoCisgICAg
ICAgICAgICBvcHRpb25zLmluaXRpYWxWYWx1ZSwgMCk7CisgICAgICAgIGNvbnRleHQubGlzdGVu
ZXJbb3B0aW9ucy5wYXJhbU5hbWVdLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKAorICAgICAgICAg
ICAgb3B0aW9ucy5yYW1wRmluYWxWYWx1ZSwgYXV0b21hdGlvbkVuZEZyYW1lIC8gY29udGV4dC5z
YW1wbGVSYXRlKTsKKworICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAgICAgICAgLy8gU2FuaXR5IGNoZWNrOiB0
aGUgZ2l2ZW4gcmFtcCBmaW5hbCB2YWx1ZSBtdXN0IG5vdCBiZSB0aGUgZGVmYXVsdAorICAgICAg
ICAgIC8vIHZhbHVlLCBvdGhlcndpc2Ugd2UgY2FuJ3QgZWFzaWx5IHRlbGwgaWYgdGhlIGF1dG9t
YXRpb24gd2FzCisgICAgICAgICAgLy8gYWN0dWFsbHkgcnVuLgorICAgICAgICAgIHNob3VsZCgK
KyAgICAgICAgICAgICAgb3B0aW9ucy5yYW1wRmluYWxWYWx1ZSwKKyAgICAgICAgICAgICAgJ0F1
ZGlvTGlzdGVuZXIuJyArIG9wdGlvbnMucGFyYW1OYW1lICsgJyByYW1wIGZpbmFsIHZhbHVlJykK
KyAgICAgICAgICAgICAgLm5vdEJlRXF1YWxUbyhjb250ZXh0Lmxpc3RlbmVyW29wdGlvbnMucGFy
YW1OYW1lXS5kZWZhdWx0VmFsdWUpOworCisgICAgICAgICAgLy8gVGhlIGFjdHVhbCBBdWRpb1Bh
cmFtIHZhbHVlIHNob3VsZCBiZSB0aGUgcmFtcGUgZmluYWwgdmFsdWUuCisgICAgICAgICAgc2hv
dWxkKAorICAgICAgICAgICAgICBjb250ZXh0Lmxpc3RlbmVyW29wdGlvbnMucGFyYW1OYW1lXS52
YWx1ZSwKKyAgICAgICAgICAgICAgJ0F1ZGlvTGlzdGVuZXIuJyArIG9wdGlvbnMucGFyYW1OYW1l
ICsgJy52YWx1ZScpCisgICAgICAgICAgICAgIC5iZUVxdWFsVG8ob3B0aW9ucy5yYW1wRmluYWxW
YWx1ZSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8
L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNhbXBsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zYW1wbGluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTQzNmQ4MmFiMmRjZjA5NThhOWViNjIyZDhmOWYwOGM2N2VlNTcxYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9w
YXJhbS1zYW1wbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNSBAQAorCitQQVNTICMgQVVE
SVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAibGluZWFyUmFtcDp0YXNr
MCIgCitQQVNTIEV4ZWN1dGluZyAibGluZWFyUmFtcDpzaG9ydDp0YXNrMSIgCitQQVNTIEV4ZWN1
dGluZyAibGluZWFyUmFtcDpsb25nOnRhc2syIiAKK1BBU1MgRXhlY3V0aW5nICJleHBvbmVudGlh
bFJhbXA6dGFzazMiIAorUEFTUyBFeGVjdXRpbmcgImV4cG9uZW50aWFsUmFtcDpzaG9ydDp0YXNr
NCIgCitQQVNTIEV4ZWN1dGluZyAiZXhwb25lbnRpYWxSYW1wOmxvbmc6dGFzazUiIAorUEFTUyBB
dWRpdCByZXBvcnQgCitQQVNTID4gW2xpbmVhclJhbXA6dGFzazBdICAKK1BBU1MgICBsaW5lYXJS
YW1wOiBTYW1wbGUgMSBpcyAwLjk5Mjk2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAxLjIwMWUtOC4g
CitQQVNTICAgbGluZWFyUmFtcDogU2FtcGxlIDEyOCBpcyAwLjAwMDc4MTI0OTk5OTk5OTg0NDYg
d2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDE1MjYuIAorUEFTUyA8IFtsaW5lYXJSYW1wOnRhc2sw
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFts
aW5lYXJSYW1wOnNob3J0OnRhc2sxXSAgCitQQVNTICAgbGluZWFyUmFtcDpzaG9ydDogU2FtcGxl
IDEgaXMgMC44MiB3aXRoaW4gYW4gZXJyb3Igb2YgOC43MjNlLTkuIAorUEFTUyAgIGxpbmVhclJh
bXA6c2hvcnQ6IFNhbXBsZSA1IGlzIDAuMDIwMDAwMDAwMDAwMDAwMDE4IHdpdGhpbiBhbiBlcnJv
ciBvZiA5LjUzN2UtNy4gCitQQVNTIDwgW2xpbmVhclJhbXA6c2hvcnQ6dGFzazFdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4gW2xpbmVhclJhbXA6
bG9uZzp0YXNrMl0gIAorUEFTUyAgIGxpbmVhclJhbXA6bG9uZzogU2FtcGxlIDEgaXMgMC45OTU1
IHdpdGhpbiBhbiBlcnJvciBvZiAyLjgyN2UtOC4gCitQQVNTICAgbGluZWFyUmFtcDpsb25nOiBT
YW1wbGUgMjAwIGlzIDAuMDAwNDk5OTk5OTk5OTk5OTQ0OSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4w
MDAwNDY3NC4gCitQQVNTIDwgW2xpbmVhclJhbXA6bG9uZzp0YXNrMl0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMiBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxSYW1wOnRh
c2szXSAgCitQQVNTICAgZXhwb25lbnRpYWxSYW1wOiBTYW1wbGUgMSBpcyAwLjkyMjIzOTU2NTEw
NDQyMzUgd2l0aGluIGFuIGVycm9yIG9mIDIuNTA1ZS04LiAKK1BBU1MgICBleHBvbmVudGlhbFJh
bXA6IFNhbXBsZSAxMjggaXMgMC4wMDAwMTAwOTAzNTA0NDg0MTQ0NyB3aXRoaW4gYW4gZXJyb3Ig
b2YgMS40ODRlLTcuIAorUEFTUyA8IFtleHBvbmVudGlhbFJhbXA6dGFzazNdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9ucykgCitQQVNTID4gW2V4cG9uZW50aWFsUmFt
cDpzaG9ydDp0YXNrNF0gIAorUEFTUyAgIGV4cG9uZW50aWFsUmFtcDpzaG9ydDogU2FtcGxlIDEg
aXMgMC4xMjU4OTI1NDExNzk0MTY2NCB3aXRoaW4gYW4gZXJyb3Igb2YgNS4wMjdlLTguIAorUEFT
UyAgIGV4cG9uZW50aWFsUmFtcDpzaG9ydDogU2FtcGxlIDUgaXMgMC4wMDAwMTI1ODkyNTQxMTc5
NDE2NiB3aXRoaW4gYW4gZXJyb3Igb2YgMy44MjFlLTcuIAorUEFTUyA8IFtleHBvbmVudGlhbFJh
bXA6c2hvcnQ6dGFzazRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDIgYXNzZXJ0aW9u
cykgCitQQVNTID4gW2V4cG9uZW50aWFsUmFtcDpsb25nOnRhc2s1XSAgCitQQVNTICAgZXhwb25l
bnRpYWxSYW1wOmxvbmc6IFNhbXBsZSAxIGlzIDAuOTQ5NTEwOTk5MjAyMTk4MiB3aXRoaW4gYW4g
ZXJyb3Igb2YgOC4wMzVlLTkuIAorUEFTUyAgIGV4cG9uZW50aWFsUmFtcDpsb25nOiBTYW1wbGUg
MjAwIGlzIDAuMDAwMDEwMDU3NzMwNjMwMDE3Mzc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAw
MTMzNy4gCitQQVNTIDwgW2V4cG9uZW50aWFsUmFtcDpsb25nOnRhc2s1XSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IEZJTklTSEVEOiA2IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2FtcGxpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zYW1wbGluZy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA4YjMzZjQyMGU3OTA0MDVmMDZjOGMyYzVhODQ3NDUwOTgxOTIxYzEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0t
c2FtcGxpbmcuaHRtbApAQCAtMCwwICsxLDE3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBTYW1wbGluZyBvZiBMaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZQorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5n
LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlv
dXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gMTI4MDA7CisgICAgICBsZXQg
Y29udGV4dDsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOwor
CisgICAgICBmdW5jdGlvbiBydW5UZXN0KHNob3VsZCwgY29uZmlnKSB7CisgICAgICAgIC8vIENy
ZWF0ZSBhIHNob3J0IGNvbnRleHQgd2l0aCBhIGNvbnN0YW50IHNpZ25hbCBzb3VyY2UgY29ubmVj
dGVkIHRvIGEKKyAgICAgICAgLy8gZ2FpbiBub2RlIHRoYXQgd2lsbCBiZSBhdXRvbWF0ZWQuCisg
ICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAyNTYsIHNhbXBsZVJh
dGUpOworCisgICAgICAgIC8vIENyZWF0ZSBhIGNvbnN0YW50IHVuaXQgYW1wbGl0dWRlIHNvdXJj
ZS4KKyAgICAgICAgbGV0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7Cisg
ICAgICAgIGxldCBiID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAg
ICAgIHNvdXJjZS5idWZmZXIgPSBiOworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAg
ICAgICAgLy8gR2FpbiBub2RlIHRoYXQgaXMgdG8gYmUgYXV0b21hdGVkLgorICAgICAgICBsZXQg
Z2FpbiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBnYWluLmdhaW4udmFsdWUgPSAw
OworICAgICAgICBnYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoY29uZmlnLnN0YXJ0VmFsdWUsIGNv
bmZpZy5zdGFydFRpbWUpOworICAgICAgICBjb25maWcuYXV0b21hdGlvbkZ1bmN0aW9uKGdhaW4p
OworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5lY3Qo
Y29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc291cmNlLnN0YXJ0KCk7CisKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1
ZmZlcikgeworICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlIGF1dG9tYXRpb24gaGFzIHRoZSBj
b3JyZWN0IHNhbXBsaW5nLgorICAgICAgICAgIGxldCByZXN1bHREYXRhID0gcmVzdWx0QnVmZmVy
LmdldENoYW5uZWxEYXRhKDApOworCisgICAgICAgICAgLy8gVGhlIGF1dG9tYXRpb24gaGFzIHN0
YXJ0cyBhdCBjb25maWcuc3RhcnRUaW1lLCBzbyB0aGUgZnJhbWUganVzdAorICAgICAgICAgIC8v
IGFmdGVyIHRoaXMgc2hvdWxkIGhhdmUgdGhlIGF1dG9tYXRpb24gYXBwbGllZC4KKyAgICAgICAg
ICBsZXQgc3RhcnRGcmFtZSA9IE1hdGguY2VpbChjb25maWcuc3RhcnRUaW1lICogc2FtcGxlUmF0
ZSk7CisKKyAgICAgICAgICAvLyBUaGUgYXV0b21hdGlvbiBlbmRzIGF0IGNvbmZpZy5lbmRUaW1l
IHNvIHRoZSBmcmFtZSBqdXN0IGJlZm9yZSB0aGlzCisgICAgICAgICAgLy8gc2hvdWxkIGhhdmUg
dGhlIGF1dG9tYXRpb24gYXBwbGllZC4KKyAgICAgICAgICBsZXQgZW5kRnJhbWUgPSBNYXRoLmZs
b29yKGNvbmZpZy5lbmRUaW1lICogc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAvLyBVc2UgdGhl
IHRydWUgYXV0b21hdGlvbiB0byBmaW5kIHRoZSBleHBlY3RlZCB2YWx1ZXMuCisgICAgICAgICAg
bGV0IGV4cGVjdGVkU3RhcnQgPSBjb25maWcuZXhwZWN0ZWRGdW5jdGlvbihzdGFydEZyYW1lIC8g
c2FtcGxlUmF0ZSk7CisgICAgICAgICAgbGV0IGV4cGVjdGVkRW5kID0gY29uZmlnLmV4cGVjdGVk
RnVuY3Rpb24oZW5kRnJhbWUgLyBzYW1wbGVSYXRlKTsKKworICAgICAgICAgIHNob3VsZChyZXN1
bHREYXRhW3N0YXJ0RnJhbWVdLCBjb25maWcuZGVzYyArICc6IFNhbXBsZSAnICsgc3RhcnRGcmFt
ZSkKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUbygKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
U3RhcnQsIHt0aHJlc2hvbGQ6IGNvbmZpZy5zdGFydFZhbHVlVGhyZXNob2xkfSk7CisgICAgICAg
ICAgc2hvdWxkKHJlc3VsdERhdGFbZW5kRnJhbWVdLCBjb25maWcuZGVzYyArICc6IFNhbXBsZSAn
ICsgZW5kRnJhbWUpCisgICAgICAgICAgICAgIC5iZUNsb3NlVG8oZXhwZWN0ZWRFbmQsIHt0aHJl
c2hvbGQ6IGNvbmZpZy5lbmRWYWx1ZVRocmVzaG9sZH0pOworICAgICAgICB9KTsKKyAgICAgIH0K
KworICAgICAgZnVuY3Rpb24gZXhwZWN0ZWRMaW5lYXIodCkgeworICAgICAgICBsZXQgc2xvcGUg
PQorICAgICAgICAgICAgKHRoaXMuZW5kVmFsdWUgLSB0aGlzLnN0YXJ0VmFsdWUpIC8gKHRoaXMu
ZW5kVGltZSAtIHRoaXMuc3RhcnRUaW1lKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRWYWx1
ZSArIHNsb3BlICogKHQgLSB0aGlzLnN0YXJ0VGltZSk7CisgICAgICB9OworCisgICAgICBmdW5j
dGlvbiBleHBlY3RlZEV4cG9uZW50aWFsKHQpIHsKKyAgICAgICAgbGV0IHJhdGlvID0gdGhpcy5l
bmRWYWx1ZSAvIHRoaXMuc3RhcnRWYWx1ZTsKKyAgICAgICAgbGV0IGV4cG9uZW50ID0gKHQgLSB0
aGlzLnN0YXJ0VGltZSkgLyAodGhpcy5lbmRUaW1lIC0gdGhpcy5zdGFydFRpbWUpOworICAgICAg
ICByZXR1cm4gdGhpcy5zdGFydFZhbHVlICogTWF0aC5wb3cocmF0aW8sIGV4cG9uZW50KTsKKyAg
ICAgIH07CisKKyAgICAgIGZ1bmN0aW9uIGxpbmVhckF1dG9tYXRpb24oZykgeworICAgICAgICBn
LmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodGhpcy5lbmRWYWx1ZSwgdGhpcy5lbmRUaW1l
KTsKKyAgICAgIH0KKworICAgICAgZnVuY3Rpb24gZXhwb25lbnRpYWxBdXRvbWF0aW9uKGcpIHsK
KyAgICAgICAgZy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUodGhpcy5lbmRWYWx1
ZSwgdGhpcy5lbmRUaW1lKTsKKyAgICAgIH0KKworICAgICAgLy8gQmFzaWNhbGx5IHdhbnQgdG8g
dGVzdCB0aGF0IGlmIG5laXRoZXIgdGhlIHN0YXJ0IHRpbWUgbm9yIGVuZCB0aW1lIGlzCisgICAg
ICAvLyBvbiBhIGZyYW1lIGJvdW5kYXJ5IHRoYXQgd2Ugc2FtcGxlIHRoZSBhdXRvbWF0aW9uIGN1
cnZlIGNvcnJlY3RseS4gIFRoZQorICAgICAgLy8gc3RhcnQgdGltZXMgYW5kIGVuZCB0aW1lcyBh
cmUgbW9zdGx5IGFyYml0cmFyeSwgZXhjZXB0IHRoYXQgdGhleSBjYW5ub3QKKyAgICAgIC8vIGJl
IG9uIGEgZnJhbWUgYm91bmRhcnkuCisgICAgICBsZXQgdGVzdENvbmZpZ3MgPSBbCisgICAgICAg
IHsKKyAgICAgICAgICBkZXNjOiAnbGluZWFyUmFtcCcsCisgICAgICAgICAgc3RhcnRUaW1lOiAu
MSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgZW5kVGltZTogMTI4LjEgLyBzYW1wbGVSYXRlLAor
ICAgICAgICAgIHN0YXJ0VmFsdWU6IDEsCisgICAgICAgICAgZW5kVmFsdWU6IDAsCisgICAgICAg
ICAgc3RhcnRWYWx1ZVRocmVzaG9sZDogMS4yMDFlLTgsCisgICAgICAgICAgZW5kVmFsdWVUaHJl
c2hvbGQ6IDEuNTI2ZS01LAorICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbjogbGluZWFyQXV0
b21hdGlvbiwKKyAgICAgICAgICBleHBlY3RlZEZ1bmN0aW9uOiBleHBlY3RlZExpbmVhcgorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZGVzYzogJ2xpbmVhclJhbXA6c2hvcnQnLAor
ICAgICAgICAgIHN0YXJ0VGltZTogLjEgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGVuZFRpbWU6
IDUuMSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgc3RhcnRWYWx1ZTogMSwKKyAgICAgICAgICBl
bmRWYWx1ZTogMCwKKyAgICAgICAgICBzdGFydFZhbHVlVGhyZXNob2xkOiA4LjcyM2UtOSwKKyAg
ICAgICAgICBlbmRWYWx1ZVRocmVzaG9sZDogOS41MzdlLTcsCisgICAgICAgICAgYXV0b21hdGlv
bkZ1bmN0aW9uOiBsaW5lYXJBdXRvbWF0aW9uLAorICAgICAgICAgIGV4cGVjdGVkRnVuY3Rpb246
IGV4cGVjdGVkTGluZWFyCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBkZXNjOiAn
bGluZWFyUmFtcDpsb25nJywKKyAgICAgICAgICBzdGFydFRpbWU6IC4xIC8gc2FtcGxlUmF0ZSwK
KyAgICAgICAgICBlbmRUaW1lOiAyMDAuMSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgc3RhcnRW
YWx1ZTogMSwKKyAgICAgICAgICBlbmRWYWx1ZTogMCwKKyAgICAgICAgICBzdGFydFZhbHVlVGhy
ZXNob2xkOiAyLjgyN2UtOCwKKyAgICAgICAgICBlbmRWYWx1ZVRocmVzaG9sZDogNC42NzRlLTUs
CisgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uOiBsaW5lYXJBdXRvbWF0aW9uLAorICAgICAg
ICAgIGV4cGVjdGVkRnVuY3Rpb246IGV4cGVjdGVkTGluZWFyCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICBkZXNjOiAnZXhwb25lbnRpYWxSYW1wJywKKyAgICAgICAgICBzdGFydFRp
bWU6IC4xIC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBlbmRUaW1lOiAxMjguMSAvIHNhbXBsZVJh
dGUsCisgICAgICAgICAgc3RhcnRWYWx1ZTogMSwKKyAgICAgICAgICBlbmRWYWx1ZTogMWUtNSwK
KyAgICAgICAgICBzdGFydFZhbHVlVGhyZXNob2xkOiAyLjUwNWUtOCwKKyAgICAgICAgICBlbmRW
YWx1ZVRocmVzaG9sZDogMS40ODRlLTcsCisgICAgICAgICAgYXV0b21hdGlvbkZ1bmN0aW9uOiBl
eHBvbmVudGlhbEF1dG9tYXRpb24sCisgICAgICAgICAgZXhwZWN0ZWRGdW5jdGlvbjogZXhwZWN0
ZWRFeHBvbmVudGlhbAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgZGVzYzogJ2V4
cG9uZW50aWFsUmFtcDpzaG9ydCcsCisgICAgICAgICAgc3RhcnRUaW1lOiAuMSAvIHNhbXBsZVJh
dGUsCisgICAgICAgICAgZW5kVGltZTogNS4xIC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBzdGFy
dFZhbHVlOiAxLAorICAgICAgICAgIGVuZFZhbHVlOiAxZS01LAorICAgICAgICAgIHN0YXJ0VmFs
dWVUaHJlc2hvbGQ6IDUuMDI3ZS04LAorICAgICAgICAgIGVuZFZhbHVlVGhyZXNob2xkOiAzLjgy
MWUtNywKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb246IGV4cG9uZW50aWFsQXV0b21hdGlv
biwKKyAgICAgICAgICBleHBlY3RlZEZ1bmN0aW9uOiBleHBlY3RlZEV4cG9uZW50aWFsCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBkZXNjOiAnZXhwb25lbnRpYWxSYW1wOmxvbmcn
LAorICAgICAgICAgIHN0YXJ0VGltZTogLjEgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGVuZFRp
bWU6IDIwMC4xIC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBzdGFydFZhbHVlOiAxLAorICAgICAg
ICAgIGVuZFZhbHVlOiAxZS01LAorICAgICAgICAgIHN0YXJ0VmFsdWVUaHJlc2hvbGQ6IDguMDM1
ZS05LAorICAgICAgICAgIGVuZFZhbHVlVGhyZXNob2xkOiAxLjMzN2UtNiwKKyAgICAgICAgICBh
dXRvbWF0aW9uRnVuY3Rpb246IGV4cG9uZW50aWFsQXV0b21hdGlvbiwKKyAgICAgICAgICBleHBl
Y3RlZEZ1bmN0aW9uOiBleHBlY3RlZEV4cG9uZW50aWFsCisgICAgICAgIH0sCisgICAgICBdOwor
CisgICAgICBmdW5jdGlvbiBjcmVhdGVUYXNrRnVuY3Rpb24oY29uZmlnKSB7CisgICAgICAgIHJl
dHVybiAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgICAgcnVuVGVzdChzaG91bGQsIGNvbmZp
ZykudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgIH07CisgICAgICB9CisKKyAgICAg
IC8vIENyZWF0ZSBhbGwgb2YgdGhlIHRhc2tzIGZyb20gdGhlIHRlc3QgY29uZmlncworICAgICAg
Zm9yIChsZXQgayA9IDA7IGsgPCB0ZXN0Q29uZmlncy5sZW5ndGg7ICsraykgeworICAgICAgICBs
ZXQgY29uZmlnID0gdGVzdENvbmZpZ3Nba107CisgICAgICAgIGxldCB0YXNrTmFtZSA9IGNvbmZp
Zy5kZXNjICsgJzp0YXNrJyArIGs7CisgICAgICAgIGF1ZGl0LmRlZmluZSh0YXNrTmFtZSwgY3Jl
YXRlVGFza0Z1bmN0aW9uKGNvbmZpZykpOworICAgICAgfQorCisgICAgICBhdWRpdC5ydW4oKTsK
KyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldC10aW1lQ29uc3RhbnQt
MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFy
YW0tc2V0VGFyZ2V0LXRpbWVDb25zdGFudC0wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDY5
NzYzMzU5OGVjZDQ4MzY0MThjOTc3ZDM2M2EyZjExNzhkM2VmCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldC10aW1l
Q29uc3RhbnQtMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAidGltZWNvbnN0YW50LTAiIAor
UEFTUyBBdWRpdCByZXBvcnQgCitQQVNTID4gW3RpbWVjb25zdGFudC0wXSAgCitQQVNTICAgT3V0
cHV0IGZvciBmcmFtZSBbMTEsIDIxKSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLiAKK1BB
U1MgICBPdXRwdXQgZm9yIGZyYW1lIFsyMSwgMTAxKSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFu
dCAwLjUuIAorUEFTUyAgIE91dHB1dCBmb3IgZnJhbWUgWzEwMSwgMTI4KSBjb250YWlucyBvbmx5
IHRoZSBjb25zdGFudCAxLiAKK1BBU1MgPCBbdGltZWNvbnN0YW50LTBdIEFsbCBhc3NlcnRpb25z
IHBhc3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIg
RklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXQtdGltZUNvbnN0
YW50LTAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1z
ZXRUYXJnZXQtdGltZUNvbnN0YW50LTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGU2M2JkNmI3MmM1MWM2
YjE5ZDI2MTA4NzlhZTVmZTM3MjU5YzQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldC10aW1lQ29uc3RhbnQtMC5o
dG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDx0aXRsZT4KKyAgICAgIFRlc3Qgc2V0VGFyZ2V0QXRUaW1lIHdpdGggdGltZUNvbnN0YW50
PTAKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+Cisg
IDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+Cisg
ICAgICAvLyBGYWlybHkgYXJiaXRyYXJ5IHNhbXBsZSByYXRlIGFuZCBudW1iZXIgb2YgZnJhbWVz
LCBzbyBjaG9vc2UgYSBsb3cKKyAgICAgIC8vIHNhbXBsZSByYXRlLCBhbmQgc2hvcnQgcmVuZGVy
aW5nIGxlbmd0aC4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gODAwMDsKKyAgICAgIGxldCByZW5k
ZXJGcmFtZXMgPSAxMjg7CisKKyAgICAgIC8vIEFycmF5IHNwZWNpZnlpbmcgcGFyYW1ldGVycyBm
b3Igc2V0VGFyZ2V0QXRUaW1lLiAgfGZyYW1lfCBpcyB0aGUgZnJhbWUKKyAgICAgIC8vIChub3Qg
bmVjZXNzYXJpbHkgYW4gaW50ZWdlcikgYXQgd2hpY2ggc2V0VGFyZ2V0QXRUaW1lIHN0YXJ0cywg
YW5kCisgICAgICAvLyB8dmFsdWV8IGlzIHRoZSB0YXJnZXQgdmFsdWUuICBOb24taW50ZWdyYWwg
dmFsdWVzIGZvciB8ZnJhbWV8IHRlc3RzCisgICAgICAvLyB0aGF0IHdlIHN0YXJ0ZWQgdGhlIHNl
dFRhcmdldEF0VGltZSBhdCB0aGUgcmlnaHQgdGltZS4KKyAgICAgIGxldCB0YXJnZXRWYWx1ZUlu
Zm8gPSBbCisgICAgICAgIHtmcmFtZTogMTAuMSwgdmFsdWU6IDB9LCB7ZnJhbWU6IDIwLjMsIHZh
bHVlOiAwLjV9LAorICAgICAgICB7ZnJhbWU6IDEwMC41LCB2YWx1ZTogMX0KKyAgICAgIF07CisK
KyAgICAgIGxldCBhdWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVk
aXQuZGVmaW5lKCd0aW1lY29uc3RhbnQtMCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAg
bGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJGcmFtZXMsIHNh
bXBsZVJhdGUpOworCisgICAgICAgIC8vIFNpbXBsZSBjb25zdGFudCBzb3VyY2UgZm9yIHRlc3Rp
bmcuCisKKyAgICAgICAgbGV0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7
CisKKyAgICAgICAgLy8gV2UncmUgZ29pbmcgdG8gYXV0b21hdGUgdGhlIGdhaW4gbm9kZSB0byB0
ZXN0IHNldFRhcmdldEF0VGltZS4KKyAgICAgICAgbGV0IGdhaW4gPSBuZXcgR2Fpbk5vZGUoY29u
dGV4dCwge2dhaW46IDF9KTsKKworICAgICAgICBzcmMuY29ubmVjdChnYWluKS5jb25uZWN0KGNv
bnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwgdGFyZ2V0
VmFsdWVJbmZvLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgZ2Fpbi5nYWluLnNldFRhcmdldEF0
VGltZSgKKyAgICAgICAgICAgICAgdGFyZ2V0VmFsdWVJbmZvW2tdLnZhbHVlLAorICAgICAgICAg
ICAgICB0YXJnZXRWYWx1ZUluZm9ba10uZnJhbWUgLyBjb250ZXh0LnNhbXBsZVJhdGUsIDApOwor
ICAgICAgICB9CisKKyAgICAgICAgc3JjLnN0YXJ0KCk7CisKKyAgICAgICAgY29udGV4dC5zdGFy
dFJlbmRlcmluZygpCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsK
KyAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3VsdEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgw
KTsKKyAgICAgICAgICAgICAgbGV0IHN1Y2Nlc3MgPSB0cnVlOworCisgICAgICAgICAgICAgIC8v
IEJlY2F1c2UgdGhlIHRpbWUgY29uc3RhbnQgaXMgMCwgdGhlIGF1dG9tYXRpb24gc2hvdWxkIGlu
c3RhbnRseQorICAgICAgICAgICAgICAvLyBqdW1wIHRvIHRoZSB0YXJnZXQgdmFsdWUgYXQgdGhl
IHN0YXJ0IHRpbWUuICBWZXJpZnkgdGhhdCB0aGUKKyAgICAgICAgICAgICAgLy8gb3V0cHV0IGhh
cyB0aGUgZXhwZWN0ZWQgdmFsdWUuCisgICAgICAgICAgICAgIGZvciAobGV0IGsgPSAwOyBrIDwg
dGFyZ2V0VmFsdWVJbmZvLmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICAgICAgbGV0IHN0YXJ0
RnJhbWUgPSBNYXRoLmNlaWwodGFyZ2V0VmFsdWVJbmZvW2tdLmZyYW1lKTsKKyAgICAgICAgICAg
ICAgICBsZXQgZW5kRnJhbWUgPSBrIDwgdGFyZ2V0VmFsdWVJbmZvLmxlbmd0aCAtIDEgPworICAg
ICAgICAgICAgICAgICAgICBNYXRoLmNlaWwodGFyZ2V0VmFsdWVJbmZvW2sgKyAxXS5mcmFtZSkg
OgorICAgICAgICAgICAgICAgICAgICByZW5kZXJGcmFtZXM7CisgICAgICAgICAgICAgICAgbGV0
IHZhbHVlID0gdGFyZ2V0VmFsdWVJbmZvW2tdLnZhbHVlOworCisgICAgICAgICAgICAgICAgc2hv
dWxkKAorICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2xpY2Uoc3RhcnRGcmFtZSwgZW5kRnJh
bWUpLAorICAgICAgICAgICAgICAgICAgICAnT3V0cHV0IGZvciBmcmFtZSBbJyArIHN0YXJ0RnJh
bWUgKyAnLCAnICsgZW5kRnJhbWUgKyAnKScpCisgICAgICAgICAgICAgICAgICAgIC5iZUNvbnN0
YW50VmFsdWVPZih2YWx1ZSk7CisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfSkKKyAg
ICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBh
dWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0
VGltZS1jb250aW51b3VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtY29udGludW91cy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjJlYzc5MGVlN2M5YjgwNGJmZTc2ZGYxOGM1ZGZhN2U0MzNiMTg3NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJh
bS1zZXRUYXJnZXRBdFRpbWUtY29udGludW91cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3NyBA
QAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAi
bGluZWFyIHJhbXAgcmVwbGFjZSIgCitQQVNTIEV4ZWN1dGluZyAiZGVsYXllZCBsaW5lYXIgcmFt
cCIgCitQQVNTIEV4ZWN1dGluZyAiZXhwbyByYW1wIHJlcGxhY2UiIAorUEFTUyBFeGVjdXRpbmcg
ImRlbGF5ZWQgZXhwbyByYW1wIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtsaW5lYXIg
cmFtcCByZXBsYWNlXSAgCitQQVNTICAgTGluZWFyIHJhbXA6IEluaXRpYWwgcGFydCBlcXVhbHMg
WzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuLi5dIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6
MH0uIAorUEFTUyAgIExpbmVhciByYW1wOiBTZXRUYXJnZXQgcGFydCB3YXMgY29ycmVjdGx5IHJl
cGxhY2VkIGJ5IHRoZSByYW1wIAorRkFJTCBYIExpbmVhciByYW1wIGRvZXMgbm90IGVxdWFsIFsx
LDEuMDAwNDQwMTQwODQ1MDcwNSwxLjAwMDg4MDI4MTY5MDE0MDgsMS4wMDEzMjA0MjI1MzUyMTEz
LDEuMDAxNzYwNTYzMzgwMjgxNywxLjAwMjIwMDcwNDIyNTM1MiwxLjAwMjY0MDg0NTA3MDQyMjUs
MS4wMDMwODA5ODU5MTU0OTMsMS4wMDM1MjExMjY3NjA1NjM1LDEuMDAzOTYxMjY3NjA1NjMzOCwx
LjAwNDQwMTQwODQ1MDcwNDIsMS4wMDQ4NDE1NDkyOTU3NzQ3LDEuMDA1MjgxNjkwMTQwODQ1LDEu
MDA1NzIxODMwOTg1OTE1NSwxLjAwNjE2MTk3MTgzMDk4NiwxLjAwNjYwMjExMjY3NjA1NjMuLi5d
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LjAwMDAwMTI2NzY1LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCisJSW5kZXgJQWN0dWFsCQkJRXhw
ZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hvbGQKKwlbMF0JMC4wMDAwMDAw
MDAwMDAwMDAwZSswCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJ
MS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMjY3NjUwMDAwMDAwMDAwMWUtNgorCVsxXQk4LjgwMjgx
NjczNzQ0MzIwODdlLTQJMS4wMDA0NDAxNDA4NDUwNzA1ZSswCTkuOTk1NTk4NTkxNzEzMjYxN2Ut
MQk5Ljk5MTIwMTA1NjAzNzE4NzhlLTEJMS4yNjc2NTAwMDAwMDAwMDAxZS02CisJWzJdCTEuNzYw
NTYzMzQ3NDg4NjQxN2UtMwkxLjAwMDg4MDI4MTY5MDE0MDhlKzAJOS45OTExOTcxODM0MjY1MjEy
ZS0xCTkuOTgyNDA5ODUwODExMzcxMmUtMQkxLjI2NzY1MDAwMDAwMDAwMDFlLTYKKwlbM10JMi42
NDA4NDUwMjEyMzI5NjI2ZS0zCTEuMDAxMzIwNDIyNTM1MjExM2UrMAk5Ljk4Njc5NTc3NTEzOTc4
MjllLTEJOS45NzM2MjYzNzQxMTc2MjEyZS0xCTEuMjY3NjUwMDAwMDAwMDAwMWUtNgorCVs0XQkz
LjUyMTEyNjY5NDk3NzI4MzVlLTMJMS4wMDE3NjA1NjMzODAyODE3ZSswCTkuOTgyMzk0MzY2ODUz
MDQ0NmUtMQk5Ljk2NDg1MDYxNTc2ODk0NDNlLTEJMS4yNjc2NTAwMDAwMDAwMDAxZS02CisJLi4u
YW5kIDIyNjcgbW9yZSBlcnJvcnMuCisJTWF4IEFic0Vycm9yIG9mIDEuMDAwMDAwMDAwMDAwMDAw
MGUrMCBhdCBpbmRleCBvZiAwLgorCU1heCBSZWxFcnJvciBvZiAxLjAwMDAwMDAwMDAwMDAwMDBl
KzAgYXQgaW5kZXggb2YgMC4KKyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K1BBU1MgICBMaW5lYXIgcmFtcDogVGFpbCBwYXJ0IGVxdWFscyBbMiwyLDIsMiwyLDIsMiwyLDIs
MiwyLDIsMiwyLDIsMi4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitGQUlMIDwgW2xpbmVh
ciByYW1wIHJlcGxhY2VdIDEgb3V0IG9mIDQgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gW2RlbGF5ZWQgbGluZWFyIHJh
bXBdICAKK1BBU1MgICBEZWxheWVkIGxpbmVhciByYW1wOiBJbml0aWFsIHBhcnQgZXF1YWxzIFsx
LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLi4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0
b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9
LiAKK1BBU1MgICBEZWxheWVkIGxpbmVhciByYW1wOiBTZXRUYXJnZXQgcGFydCBlcXVhbHMgW2V4
cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0
ZVRocmVzaG9sZCI6My40MzYzMmUtNywicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwgWCBE
ZWxheWVkIGxpbmVhciByYW1wIGRvZXMgbm90IGVxdWFsIFswLjQ0OTMyODk2NDExNzIyMTU2LDAu
NDUwMTUwMjk0MTE1MDQwODcsMC40NTA5NzE2MjQxMTI4NjAxLDAuNDUxNzkyOTU0MTEwNjc5NCww
LjQ1MjYxNDI4NDEwODQ5ODYzLDAuNDUzNDM1NjE0MTA2MzE3OTQsMC40NTQyNTY5NDQxMDQxMzcy
LDAuNDU1MDc4Mjc0MTAxOTU2NDUsMC40NTU4OTk2MDQwOTk3NzU3NiwwLjQ1NjcyMDkzNDA5NzU5
NDk1LDAuNDU3NTQyMjY0MDk1NDE0MiwwLjQ1ODM2MzU5NDA5MzIzMzUsMC40NTkxODQ5MjQwOTEw
NTI3NywwLjQ2MDAwNjI1NDA4ODg3MiwwLjQ2MDgyNzU4NDA4NjY5MTMzLDAuNDYxNjQ4OTE0MDg0
NTEwNi4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjAuMDAwMDAxMDc5NzIsInJlbGF0aXZlVGhyZXNob2xkIjowfS4KKwlJbmRleAlBY3R1
YWwJCQlFeHBlY3RlZAkJQWJzRXJyb3IJCVJlbEVycm9yCQlUZXN0IHRocmVzaG9sZAorCVswXQkz
LjM4MDI4MTYyNzE3ODE5MjFlLTEJNC40OTMyODk2NDExNzIyMTU2ZS0xCTEuMTEzMDA4MDEzOTk0
MDIzNWUtMQkyLjQ3NzA0NDg4ODg4MzgxNjVlLTEJMS4wNzk3MTk5OTk5OTk5OTk5ZS02CisJWzFd
CTMuMzg5MDg0NjM3MTY1MDY5NmUtMQk0LjUwMTUwMjk0MTE1MDQwODdlLTEJMS4xMTI0MTgzMDM5
ODUzMzkxZS0xCTIuNDcxMjE1MzIxOTIzMjMzOGUtMQkxLjA3OTcxOTk5OTk5OTk5OTllLTYKKwlb
Ml0JMy4zOTc4ODczNDkxMjg3MjMxZS0xCTQuNTA5NzE2MjQxMTI4NjAxM2UtMQkxLjExMTgyODg5
MTk5OTg3ODFlLTEJMi40NjU0MDc2NDk5NTM2NzQwZS0xCTEuMDc5NzE5OTk5OTk5OTk5OWUtNgor
CVszXQkzLjQwNjY5MDA2MTA5MjM3NjdlLTEJNC41MTc5Mjk1NDExMDY3OTM4ZS0xCTEuMTExMjM5
NDgwMDE0NDE3MWUtMQkyLjQ1OTYyMTA5MzkxODU4MjJlLTEJMS4wNzk3MTk5OTk5OTk5OTk5ZS02
CisJWzRdCTMuNDE1NDkzMDcxMDc5MjU0MmUtMQk0LjUyNjE0Mjg0MTA4NDk4NjNlLTEJMS4xMTA2
NDk3NzAwMDU3MzIyZS0xCTIuNDUzODU0ODgwNDE2MjE4M2UtMQkxLjA3OTcxOTk5OTk5OTk5OTll
LTYKKwkuLi5hbmQgMTg4MyBtb3JlIGVycm9ycy4KKwlNYXggQWJzRXJyb3Igb2YgMS4xMTMwMDgw
MTM5OTQwMjM1ZS0xIGF0IGluZGV4IG9mIDAuCisJTWF4IFJlbEVycm9yIG9mIDIuNDc3MDQ0ODg4
ODgzODE2NWUtMSBhdCBpbmRleCBvZiAwLgorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyAgIERlbGF5ZWQgbGluZWFyIHJhbXA6IFRhaWwgcGFydCBlcXVhbHMgWzIs
MiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0u
IAorRkFJTCA8IFtkZWxheWVkIGxpbmVhciByYW1wXSAxIG91dCBvZiA0IGFzc2VydGlvbnMgd2Vy
ZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFtl
eHBvIHJhbXAgcmVwbGFjZV0gIAorUEFTUyAgIEV4cG9uZW50aWFsIHJhbXA6IEluaXRpYWwgcGFy
dCBlcXVhbHMgWzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuLi5dIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uIAorUEFTUyAgIEV4cG9uZW50aWFsIHJhbXA6IFNldFRhcmdldCBwYXJ0IHdh
cyBjb3JyZWN0bHkgcmVwbGFjZWQgYnkgdGhlIHJhbXAgCitGQUlMIFggRXhwb25lbnRpYWwgcmFt
cCBkb2VzIG5vdCBlcXVhbCBbMSwxLjAwMDMwNTE3NTc4MTI1LDEuMDAwNjEwMzUxNTYyNSwxLjAw
MDkxNTY0NjU1MzAzOTYsMS4wMDEyMjEwNjA3NTI4Njg3LDEuMDAxNTI2NTk0MTYxOTg3MywxLjAw
MTgzMjEyNzU3MTEwNiwxLjAwMjEzNzg5OTM5ODgwMzcsMS4wMDI0NDM2NzEyMjY1MDE1LDEuMDAy
NzQ5NTYyMjYzNDg4OCwxLjAwMzA1NTQ1MzMwMDQ3NiwxLjAwMzM2MTU4Mjc1NjA0MjUsMS4wMDM2
Njc3MTIyMTE2MDg5LDEuMDAzOTczOTYwODc2NDY0OCwxLjAwNDI4MDMyODc1MDYxMDQsMS4wMDQ1
ODY2OTY2MjQ3NTU5Li4uXSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNv
bHV0ZVRocmVzaG9sZCI6MC4wMDAwMTE0NDQxLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCisJSW5k
ZXgJQWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hvbGQK
KwlbMV0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAwMzA1MTc1NzgxMjUwMGUrMAkzLjA1MTc1
NzgxMjUwMDAwMDBlLTQJMy4wNTA4MjY3NzQwNTU3NjkyZS00CTEuMTQ0NDA5OTk5OTk5OTk5OWUt
NQorCVsyXQkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDA2MTAzNTE1NjI1MDAwZSswCTYuMTAz
NTE1NjI1MDAwMDAwMGUtNAk2LjA5OTc5MjYwNzA1MTM2MDVlLTQJMS4xNDQ0MDk5OTk5OTk5OTk5
ZS01CisJWzNdCTEuMDAwMDAwMDAwMDAwMDAwMGUrMAkxLjAwMDkxNTY0NjU1MzAzOTZlKzAJOS4x
NTY0NjU1MzAzOTU1MDc4ZS00CTkuMTQ4MDg5MTE0MTMxMjU0NWUtNAkxLjE0NDQwOTk5OTk5OTk5
OTllLTUKKwlbNF0JMS4wMDAwMDAwMDAwMDAwMDAwZSswCTEuMDAxMjIxMDYwNzUyODY4N2UrMAkx
LjIyMTA2MDc1Mjg2ODY1MjNlLTMJMS4yMTk1NzE1ODE4NzQ3MTEyZS0zCTEuMTQ0NDA5OTk5OTk5
OTk5OWUtNQorCVs1XQkxLjAwMDAwMDAwMDAwMDAwMDBlKzAJMS4wMDE1MjY1OTQxNjE5ODczZSsw
CTEuNTI2NTk0MTYxOTg3MzA0N2UtMwkxLjUyNDI2NzIyNDU0MTAxMThlLTMJMS4xNDQ0MDk5OTk5
OTk5OTk5ZS01CisJLi4uYW5kIDIyNjYgbW9yZSBlcnJvcnMuCisJTWF4IEFic0Vycm9yIG9mIDku
OTkzODk4ODY4NTYwNzkxMGUtMSBhdCBpbmRleCBvZiAyMjcxLgorCVsyMjcxXQkxLjAwMDAwMDAw
MDAwMDAwMDBlKzAJMS45OTkzODk4ODY4NTYwNzkxZSswCTkuOTkzODk4ODY4NTYwNzkxMGUtMQk0
Ljk5ODQ3NDI1MTcwMDY1MjBlLTEJMS4xNDQ0MDk5OTk5OTk5OTk5ZS01CisJTWF4IFJlbEVycm9y
IG9mIDQuOTk4NDc0MjUxNzAwNjUyMGUtMSBhdCBpbmRleCBvZiAyMjcxLgorCVsyMjcxXQkxLjAw
MDAwMDAwMDAwMDAwMDBlKzAJMS45OTkzODk4ODY4NTYwNzkxZSswCTkuOTkzODk4ODY4NTYwNzkx
MGUtMQk0Ljk5ODQ3NDI1MTcwMDY1MjBlLTEJMS4xNDQ0MDk5OTk5OTk5OTk5ZS01CisgYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgRXhwb25lbnRpYWwgcmFtcDog
VGFpbCBwYXJ0IGVxdWFscyBbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMi4uLl0gd2l0
aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJl
bGF0aXZlVGhyZXNob2xkIjowfS4gCitGQUlMIDwgW2V4cG8gcmFtcCByZXBsYWNlXSAxIG91dCBv
ZiA0IGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyA+IFtkZWxheWVkIGV4cG8gcmFtcF0gIAorUEFTUyAgIERlbGF5ZWQgZXhw
b25lbnRpYWwgcmFtcDogSW5pdGlhbCBwYXJ0IGVxdWFscyBbMSwxLDEsMSwxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMS4uLl0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1
dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCitQQVNTICAgRGVsYXllZCBl
eHBvbmVudGlhbCByYW1wOiBTZXRUYXJnZXQgcGFydCBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3
aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6My40
MzYzMmUtNywicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK0ZBSUwgWCBEZWxheWVkIGV4cG9uZW50
aWFsIHJhbXAgZG9lcyBub3QgZXF1YWwgWzAuNDQ5MzI4OTU4OTg4MTg5NywwLjQ0OTY4NDQ3MDg5
MTk1MjUsMC40NTAwNDAyMjEyMTQyOTQ0MywwLjQ1MDM5NjI5OTM2MjE4MjYsMC40NTA3NTI2NDU3
MzA5NzIzLDAuNDUxMTA5MjYwMzIwNjYzNDUsMC40NTE0NjYxNzI5MzM1Nzg1LDAuNDUxODIzMzUz
NzY3Mzk1LDAuNDUyMTgwODMyNjI0NDM1NCwwLjQ1MjUzODU3OTcwMjM3NzMsMC40NTI4OTY2MjQ4
MDM1NDMxLDAuNDUzMjU0OTM4MTI1NjEwMzUsMC40NTM2MTM1NDk0NzA5MDE1LDAuNDUzOTcyNDI5
MDM3MDk0MSwwLjQ1NDMzMTYwNjYyNjUxMDYsMC40NTQ2OTEwNTI0MzY4Mjg2Li4uXSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwMDQy
OTE1NCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LgorCUluZGV4CUFjdHVhbAkJCUV4cGVjdGVkCQlB
YnNFcnJvcgkJUmVsRXJyb3IJCVRlc3QgdGhyZXNob2xkCisJWzBdCTQuNTAyNjU5NDQwMDQwNTg4
NGUtMQk0LjQ5MzI4OTU4OTg4MTg5NzBlLTEJOS4zNjk4NTAxNTg2OTE0MDYzZS00CTIuMDg1Mjk4
NTI2MDA0MzQ5MmUtMwk0LjI5MTUzOTk5OTk5OTk5OTdlLTYKKwlbMV0JNC41MDI2NTk0NDAwNDA1
ODg0ZS0xCTQuNDk2ODQ0NzA4OTE5NTI1MWUtMQk1LjgxNDczMTEyMTA2MzIzMjRlLTQJMS4yOTMw
NjkxNDAxMzA1NjA4ZS0zCTQuMjkxNTM5OTk5OTk5OTk5N2UtNgorCVsyXQk0LjUwMjY1OTQ0MDA0
MDU4ODRlLTEJNC41MDA0MDIyMTIxNDI5NDQzZS0xCTIuMjU3MjI3ODk3NjQ0MDQzMGUtNAk1LjAx
NTYxMzY5NjgyMzgzMzJlLTQJNC4yOTE1Mzk5OTk5OTk5OTk3ZS02CisJWzNdCTQuNTAyNjU5NDQw
MDQwNTg4NGUtMQk0LjUwMzk2Mjk5MzYyMTgyNjJlLTEJMS4zMDM1NTM1ODEyMzc3OTMwZS00CTIu
ODk0MjM2ODgyMjM4NTcwMGUtNAk0LjI5MTUzOTk5OTk5OTk5OTdlLTYKKwlbNF0JNC41MDI2NTk0
NDAwNDA1ODg0ZS0xCTQuNTA3NTI2NDU3MzA5NzIyOWUtMQk0Ljg2NzAxNzI2OTEzNDUyMTVlLTQJ
MS4wNzk3NTM0NTU3NDMyOTg3ZS0zCTQuMjkxNTM5OTk5OTk5OTk5N2UtNgorCS4uLmFuZCAxODgz
IG1vcmUgZXJyb3JzLgorCU1heCBBYnNFcnJvciBvZiAxLjU0ODE1Mjg2Mzk3OTMzOTZlKzAgYXQg
aW5kZXggb2YgMTg4Ny4KKwlbMTg4N10JNC41MDI2NTk0NDAwNDA1ODg0ZS0xCTEuOTk4NDE4ODA3
OTgzMzk4NGUrMAkxLjU0ODE1Mjg2Mzk3OTMzOTZlKzAJNy43NDY4ODg5Nzk0MDA1NjEzZS0xCTQu
MjkxNTM5OTk5OTk5OTk5N2UtNgorCU1heCBSZWxFcnJvciBvZiA3Ljc0Njg4ODk3OTQwMDU2MTNl
LTEgYXQgaW5kZXggb2YgMTg4Ny4KKwlbMTg4N10JNC41MDI2NTk0NDAwNDA1ODg0ZS0xCTEuOTk4
NDE4ODA3OTgzMzk4NGUrMAkxLjU0ODE1Mjg2Mzk3OTMzOTZlKzAJNy43NDY4ODg5Nzk0MDA1NjEz
ZS0xCTQuMjkxNTM5OTk5OTk5OTk5N2UtNgorIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorUEFTUyAgIERlbGF5ZWQgZXhwb25lbnRpYWwgcmFtcDogVGFpbCBwYXJ0IGVxdWFs
cyBbMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMi4uLl0gd2l0aCBhbiBlbGVtZW50LXdp
c2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xk
IjowfS4gCitGQUlMIDwgW2RlbGF5ZWQgZXhwbyByYW1wXSAxIG91dCBvZiA0IGFzc2VydGlvbnMg
d2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA0IG91dCBvZiA0IHRhc2tzIHdlcmUgZmFpbGVk
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1j
b250aW51b3VzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFy
YW0tc2V0VGFyZ2V0QXRUaW1lLWNvbnRpbnVvdXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2MxZTlkODI0
OWJiMGJiMGM1YTVjYmQ4NzFmYTJkMjlhYzNjODMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1jb250
aW51b3VzLmh0bWwKQEAgLTAsMCArMSwyNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFNldFRhcmdldCBGb2xsb3dlZCBieSBMaW5lYXIg
b3IgRXhwb25lbnRpYWwgUmFtcCBJcyBDb250aW51b3VzCisgICAgPC90aXRsZT4KKyAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9hdWRpb3BhcmFtLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5Pgor
ICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgorICAgICAgbGV0IHNhbXBsZVJhdGUg
PSA0ODAwMDsKKyAgICAgIGxldCByZW5kZXJRdWFudHVtID0gMTI4OworICAgICAgLy8gVGVzdCBk
b2Vzbid0IG5lZWQgdG8gcnVuIGZvciB2ZXJ5IGxvbmcuCisgICAgICBsZXQgcmVuZGVyRHVyYXRp
b24gPSAwLjE7CisgICAgICAvLyBXaGVyZSB0aGUgcmFtcCBzaG91bGQgZW5kCisgICAgICBsZXQg
cmFtcEVuZFRpbWUgPSByZW5kZXJEdXJhdGlvbiAtIC4wNTsKKyAgICAgIGxldCByZW5kZXJGcmFt
ZXMgPSByZW5kZXJEdXJhdGlvbiAqIHNhbXBsZVJhdGU7CisgICAgICBsZXQgdGltZUNvbnN0YW50
ID0gMC4wMTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOwor
CisgICAgICAvLyBBbGwgb2YgdGhlIHRlc3RzIHN0YXJ0IGEgU2V0VGFyZ2V0QXRUaW1lIGFmdGVy
IG9uZSByZW5kZXJpbmcgcXVhbnR1bS4KKyAgICAgIC8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgaGFu
ZGxlIHZhcmlvdXMgY2FzZXMgd2hlcmUgYSBsaW5lYXIgb3IgZXhwb25lbnRpYWwKKyAgICAgIC8v
IHJhbXAgaXMgc2NoZWR1bGVkIGF0IG9yIGFmdGVyIFNldFRhcmdldEF0VGltZSBzdGFydHMuCisK
KyAgICAgIGF1ZGl0LmRlZmluZSgnbGluZWFyIHJhbXAgcmVwbGFjZScsICh0YXNrLCBzaG91bGQp
ID0+IHsKKyAgICAgICAgLy8gU2NoZWR1bGUgYSBsaW5lYXIgcmFtcCB0byBzdGFydCBhdCB0aGUg
c2FtZSB0aW1lIGFzIFNldFRhcmdldEF0VGltZS4KKyAgICAgICAgLy8gVGhpcyBlZmZlY3RpdmVs
eSByZXBsYWNlcyB0aGUgU2V0VGFyZ2V0QXRUaW1lIGFzIGlmIGl0IG5ldmVyIGV4aXN0ZWQuCisg
ICAgICAgIHJ1blRlc3Qoc2hvdWxkLCAnTGluZWFyIHJhbXAnLCB7CisgICAgICAgICAgYXV0b21h
dGlvbkZ1bmN0aW9uOiBmdW5jdGlvbihhdWRpb3BhcmFtLCBlbmRWYWx1ZSwgZW5kVGltZSkgewor
ICAgICAgICAgICAgYXVkaW9wYXJhbS5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZShlbmRWYWx1ZSwg
ZW5kVGltZSk7CisgICAgICAgICAgfSwKKyAgICAgICAgICByZWZlcmVuY2VGdW5jdGlvbjogbGlu
ZWFyUmVzdWx0LAorICAgICAgICAgIGF1dG9tYXRpb25UaW1lOiByZW5kZXJRdWFudHVtIC8gc2Ft
cGxlUmF0ZSwKKyAgICAgICAgICB0aHJlc2hvbGRTZXRUYXJnZXQ6IDAsCisgICAgICAgICAgdGhy
ZXNob2xkUmFtcDogMS4yNjc2NWUtNgorICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgp
KTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2RlbGF5ZWQgbGluZWFyIHJhbXAn
LCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFNjaGVkdWxlIGEgbGluZWFyIHJhbXAg
dG8gc3RhcnQgYWZ0ZXIgdGhlIFNldFRhcmdldEF0VGltZSBoYXMgYWxyZWFkeQorICAgICAgICAv
LyBzdGFydGVkIHJlbmRlcmluZy4gVGhpcyBpcyB0aGUgbWFpbiB0ZXN0IHRvIHZlcmlmeSB0aGF0
IHRoZSBsaW5lYXIKKyAgICAgICAgLy8gcmFtcCBpcyBjb250aW51b3VzIHdpdGggdGhlIFNldFRh
cmdldEF0VGltZSBjdXJ2ZS4KKyAgICAgICAgcnVuVGVzdChzaG91bGQsICdEZWxheWVkIGxpbmVh
ciByYW1wJywgeworICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbjogZnVuY3Rpb24oYXVkaW9w
YXJhbSwgZW5kVmFsdWUsIGVuZFRpbWUpIHsKKyAgICAgICAgICAgIGF1ZGlvcGFyYW0ubGluZWFy
UmFtcFRvVmFsdWVBdFRpbWUoZW5kVmFsdWUsIGVuZFRpbWUpOworICAgICAgICAgIH0sCisgICAg
ICAgICAgcmVmZXJlbmNlRnVuY3Rpb246IGxpbmVhclJlc3VsdCwKKyAgICAgICAgICBhdXRvbWF0
aW9uVGltZTogNCAqIHJlbmRlclF1YW50dW0gLyBzYW1wbGVSYXRlLAorICAgICAgICAgIHRocmVz
aG9sZFNldFRhcmdldDogMy40MzYzMmUtNywKKyAgICAgICAgICB0aHJlc2hvbGRSYW1wOiAxLjA3
OTcyZS02CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisK
KyAgICAgIGF1ZGl0LmRlZmluZSgnZXhwbyByYW1wIHJlcGxhY2UnLCAodGFzaywgc2hvdWxkKSA9
PiB7CisgICAgICAgIC8vIExpa2UgImxpbmVhciByYW1wIHJlcGxhY2UiLCBidXQgd2l0aCBhbiBl
eHBvbmVudGlhbCByYW1wIGluc3RlYWQuCisgICAgICAgIHJ1blRlc3Qoc2hvdWxkLCAnRXhwb25l
bnRpYWwgcmFtcCcsIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb246IGZ1bmN0aW9uKGF1
ZGlvcGFyYW0sIGVuZFZhbHVlLCBlbmRUaW1lKSB7CisgICAgICAgICAgICBhdWRpb3BhcmFtLmV4
cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZW5kVmFsdWUsIGVuZFRpbWUpOworICAgICAgICAg
IH0sCisgICAgICAgICAgcmVmZXJlbmNlRnVuY3Rpb246IGV4cG9uZW50aWFsUmVzdWx0LAorICAg
ICAgICAgIGF1dG9tYXRpb25UaW1lOiByZW5kZXJRdWFudHVtIC8gc2FtcGxlUmF0ZSwKKyAgICAg
ICAgICB0aHJlc2hvbGRTZXRUYXJnZXQ6IDAsCisgICAgICAgICAgdGhyZXNob2xkUmFtcDogMS4x
NDQ0MWUtNQorICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOwor
CisgICAgICBhdWRpdC5kZWZpbmUoJ2RlbGF5ZWQgZXhwbyByYW1wJywgKHRhc2ssIHNob3VsZCkg
PT4geworICAgICAgICAvLyBMaWtlICJkZWxheWVkIGxpbmVhciByYW1wIiwgYnV0IHdpdGggYW4g
ZXhwb25lbnRpYWwgcmFtcCBpbnN0ZWFkLgorICAgICAgICBydW5UZXN0KHNob3VsZCwgJ0RlbGF5
ZWQgZXhwb25lbnRpYWwgcmFtcCcsIHsKKyAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb246IGZ1
bmN0aW9uKGF1ZGlvcGFyYW0sIGVuZFZhbHVlLCBlbmRUaW1lKSB7CisgICAgICAgICAgICBhdWRp
b3BhcmFtLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZW5kVmFsdWUsIGVuZFRpbWUpOwor
ICAgICAgICAgIH0sCisgICAgICAgICAgcmVmZXJlbmNlRnVuY3Rpb246IGV4cG9uZW50aWFsUmVz
dWx0LAorICAgICAgICAgIGF1dG9tYXRpb25UaW1lOiA0ICogcmVuZGVyUXVhbnR1bSAvIHNhbXBs
ZVJhdGUsCisgICAgICAgICAgdGhyZXNob2xkU2V0VGFyZ2V0OiAzLjQzNjMyZS03LAorICAgICAg
ICAgIHRocmVzaG9sZFJhbXA6IDQuMjkxNTRlLTYKKyAgICAgICAgfSkudGhlbigoKSA9PiB0YXNr
LmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisKKyAgICAgIGZ1bmN0
aW9uIGNvbXB1dGVFeHBlY3RlZFJlc3VsdCgKKyAgICAgICAgICBhdXRvbWF0aW9uVGltZSwgdGlt
ZUNvbnN0YW50LCBlbmRWYWx1ZSwgZW5kVGltZSwgcmFtcEZ1bmN0aW9uKSB7CisgICAgICAgIC8v
IFRoZSByZXN1bHQgaXMgYSBjb25zdGFudCB2YWx1ZSBvZiAxIGZvciBvbmUgcmVuZGVyaW5nIHF1
YW50dW0sIHRoZW4gYQorICAgICAgICAvLyBTZXRUYXJnZXQgZXZlbnQgbGFzdGluZyB0byB8YXV0
b21hdGlvblRpbWV8LCBhdCB3aGljaCBwb2ludCBhIHJhbXAKKyAgICAgICAgLy8gc3RhcnRzIHdo
aWNoIGVuZHMgYXQgfGVuZFZhbHVlfCBhdCB8ZW5kVGltZXwuICBUaGVuIHRoZSByZXN0IG9mIGN1
cnZlCisgICAgICAgIC8vIHNob3VsZCBiZSBoZWxkIGNvbnN0YW50IGF0IHxlbmRWYWx1ZXwuCisg
ICAgICAgIGxldCBpbml0aWFsUGFydCA9IG5ldyBBcnJheShyZW5kZXJRdWFudHVtKTsKKyAgICAg
ICAgaW5pdGlhbFBhcnQuZmlsbCgxKTsKKworICAgICAgICAvLyBHZW5lcmF0ZSAxIGV4dHJhIGZy
YW1lIHNvIHRoYXQgd2Uga25vdyB3aGVyZSB0byBzdGFydCB0aGUgbGluZWFyCisgICAgICAgIC8v
IHJhbXAuICBUaGUgbGFzdCBzYW1wbGUgb2YgdGhlIGFycmF5IGlzIHdoZXJlIHRoZSByYW1wIHNo
b3VsZCBzdGFydAorICAgICAgICAvLyBmcm9tLgorICAgICAgICBsZXQgc2V0VGFyZ2V0UGFydCA9
IGNyZWF0ZUV4cG9uZW50aWFsQXBwcm9hY2hBcnJheSgKKyAgICAgICAgICAgIHJlbmRlclF1YW50
dW0gLyBzYW1wbGVSYXRlLCBhdXRvbWF0aW9uVGltZSArIDEgLyBzYW1wbGVSYXRlLCAxLCAwLAor
ICAgICAgICAgICAgc2FtcGxlUmF0ZSwgdGltZUNvbnN0YW50KTsKKyAgICAgICAgbGV0IHNldFRh
cmdldExlbmd0aCA9IHNldFRhcmdldFBhcnQubGVuZ3RoOworCisgICAgICAgIC8vIEdlbmVyYXRl
IHRoZSByYW1wIHN0YXJ0aW5nIGF0IHxhdXRvbWF0aW9uVGltZXwgd2l0aCBhIHZhbHVlIGZyb20g
bGFzdAorICAgICAgICAvLyB2YWx1ZSBvZiB0aGUgU2V0VGFyZ2V0IGN1cnZlIGFib3ZlLgorICAg
ICAgICBsZXQgcmFtcFBhcnQgPSByYW1wRnVuY3Rpb24oCisgICAgICAgICAgICBhdXRvbWF0aW9u
VGltZSwgZW5kVGltZSwgc2V0VGFyZ2V0UGFydFtzZXRUYXJnZXRMZW5ndGggLSAxXSwKKyAgICAg
ICAgICAgIGVuZFZhbHVlLCBzYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBGaW5hbGx5IGZpbmlz
aCBvdXQgdGhlIHJlc3Qgd2l0aCBhIGNvbnN0YW50IHZhbHVlIG9mIHxlbmRWYWx1ZXwsIGlmCisg
ICAgICAgIC8vIG5lZWRlZC4KKyAgICAgICAgbGV0IGZpbmFsUGFydCA9CisgICAgICAgICAgICBu
ZXcgQXJyYXkoTWF0aC5mbG9vcigocmVuZGVyRHVyYXRpb24gLSBlbmRUaW1lKSAqIHNhbXBsZVJh
dGUpKTsKKyAgICAgICAgZmluYWxQYXJ0LmZpbGwoZW5kVmFsdWUpOworCisgICAgICAgIC8vIFJl
dHVybiB0aGUgZm91ciBwYXJ0cyBzZXBhcmF0ZWx5IGZvciB0ZXN0aW5nLgorICAgICAgICByZXR1
cm4geworICAgICAgICAgIGluaXRpYWxQYXJ0OiBpbml0aWFsUGFydCwKKyAgICAgICAgICBzZXRU
YXJnZXRQYXJ0OiBzZXRUYXJnZXRQYXJ0LnNsaWNlKDAsIHNldFRhcmdldExlbmd0aCAtIDEpLAor
ICAgICAgICAgIHJhbXBQYXJ0OiByYW1wUGFydCwKKyAgICAgICAgICB0YWlsUGFydDogZmluYWxQ
YXJ0CisgICAgICAgIH07CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGxpbmVhclJlc3VsdChh
dXRvbWF0aW9uVGltZSwgdGltZUNvbnN0YW50LCBlbmRWYWx1ZSwgZW5kVGltZSkgeworICAgICAg
ICByZXR1cm4gY29tcHV0ZUV4cGVjdGVkUmVzdWx0KAorICAgICAgICAgICAgYXV0b21hdGlvblRp
bWUsIHRpbWVDb25zdGFudCwgZW5kVmFsdWUsIGVuZFRpbWUsCisgICAgICAgICAgICBjcmVhdGVM
aW5lYXJSYW1wQXJyYXkpOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBleHBvbmVudGlhbFJl
c3VsdCgKKyAgICAgICAgICBhdXRvbWF0aW9uVGltZSwgdGltZUNvbnN0YW50LCBlbmRWYWx1ZSwg
ZW5kVGltZSkgeworICAgICAgICByZXR1cm4gY29tcHV0ZUV4cGVjdGVkUmVzdWx0KAorICAgICAg
ICAgICAgYXV0b21hdGlvblRpbWUsIHRpbWVDb25zdGFudCwgZW5kVmFsdWUsIGVuZFRpbWUsCisg
ICAgICAgICAgICBjcmVhdGVFeHBvbmVudGlhbFJhbXBBcnJheSk7CisgICAgICB9CisKKyAgICAg
IC8vIFJ1biB0ZXN0IHRvIHZlcmlmeSB0aGF0IGEgU2V0VGFyZ2V0IGZvbGxvd2VkIGJ5IGEgcmFt
cCBwcm9kdWNlcyBhCisgICAgICAvLyBjb250aW51b3VzIGN1cnZlLiB8cHJlZml4fCBpcyBhIHN0
cmluZyB0byB1c2UgYXMgYSBwcmVmaXggZm9yIHRoZQorICAgICAgLy8gbWVzc2FnZXMuIHxvcHRp
b25zfCBpcyBhIGRpY3Rpb25hcnkgZGVzY3JpYmluZyBob3cgdGhlIHRlc3QgaXMgcnVuOgorICAg
ICAgLy8KKyAgICAgIC8vICAgfG9wdGlvbnMuYXV0b21hdGlvbkZ1bmN0aW9ufAorICAgICAgLy8g
ICAgIFRoZSBmdW5jdGlvbiB0byB1c2UgdG8gc3RhcnQgdGhlIGF1dG9tYXRpb24sIHdoaWNoIHNo
b3VsZCBiZSBhCisgICAgICAvLyAgICAgbGluZWFyIG9yIGV4cG9uZW50aWFsIHJhbXAgYXV0b21h
dGlvbi4gIFRoaXMgZnVuY3Rpb24gaGFzIHRocmVlCisgICAgICAvLyAgICAgYXJndW1lbnRzOgor
ICAgICAgLy8gICAgICAgYXVkaW9wYXJhbSAtIHRoZSBBdWRpb1BhcmFtIHRvIGJlIGF1dG9tYXRl
ZAorICAgICAgLy8gICAgICAgZW5kVmFsdWUgICAtIHRoZSBlbmQgdmFsdWUgb2YgdGhlIHJhbXAK
KyAgICAgIC8vICAgICAgIGVuZFRpbWUgICAgLSB0aGUgZW5kIHRpbWUgZm8gdGhlIHJhbXAuCisg
ICAgICAvLyAgIHxvcHRpb25zLnJlZmVyZW5jZUZ1bmN0aW9ufAorICAgICAgLy8gICAgIFRoZSBm
dW5jdGlvbiB0byBnZW5lcmF0ZWQgdGhlIGV4cGVjdGVkIHJlc3VsdC4gIFRoaXMgZnVuY3Rpb24g
aGFzCisgICAgICAvLyAgICAgZm91ciBhcmd1bWVudHM6CisgICAgICAvLyAgICAgICBhdXRvbWF0
aW9uVGltZSAtIHRoZSB2YWx1ZSBvZiAgfG9wdGlvbnMuYXV0b21hdGlvblRpbWV8CisgICAgICAv
LyAgICAgICB0aW1lQ29uc3RhbnQgICAtIHRpbWUgY29uc3RhbnQgdXNlZCBmb3IgU2V0VGFyZ2V0
QXRUaW1lCisgICAgICAvLyAgICAgICByYW1wRW5kVmFsdWUgICAtIGVuZCB2YWx1ZSBmb3IgdGhl
IHJhbXAgKHNhbWUgdmFsdWUgdXNlZCBmb3IKKyAgICAgIC8vICAgICAgIGF1dG9tYXRpb25GdW5j
dGlvbikgcmFtcEVuZFRpbWUgICAgLSBlbmQgdGltZSBmb3IgdGhlIHJhbXAgKHNhbWUKKyAgICAg
IC8vICAgICAgIHZhbHVlIHVzZWQgZm9yIGF1dG9tYXRpb25GdW5jdGlvbikKKyAgICAgIC8vICAg
fG9wdGlvbnMuYXV0b21hdGlvblRpbWV8CisgICAgICAvLyAgICAgVGltZSBhdCB3aGljaCB0aGUg
fGF1dG9tYXRpb25GdW5jdGlvbnwgaXMgY2FsbGVkIHRvIHN0YXJ0IHRoZQorICAgICAgLy8gICAg
IGF1dG9tYXRpb24uCisgICAgICAvLyAgIHxvcHRpb25zLnRocmVzaG9sZFNldFRhcmdldHwKKyAg
ICAgIC8vICAgICBUaHJlc2hvbGQgdG8gdXNlIGZvciB2ZXJpZnlpbmcgdGhhdCB0aGUgaW5pdGlh
bCAoaWYgYW55KQorICAgICAgLy8gICAgIFNldFRhcmdldEF0VGltZSBwb3J0aW9uIGhhZCB0aGUg
Y29ycmVjdCB2YWx1ZXMuCisgICAgICAvLyAgIHxvcHRpb25zLnRocmVzaG9sZFJhbXB8CisgICAg
ICAvLyAgICAgVGhyZXNob2xkIHRvIHVzZSBmb3IgdmVyaWZ5aW5nIHRoYXQgdGhlIHJhbXAgcG9y
dGlvbiBoYWQgdGhlCisgICAgICAvLyAgICAgY29ycmVjdCB2YWx1ZXMuCisgICAgICBmdW5jdGlv
biBydW5UZXN0KHNob3VsZCwgcHJlZml4LCBvcHRpb25zKSB7CisgICAgICAgIGxldCBhdXRvbWF0
aW9uRnVuY3Rpb24gPSBvcHRpb25zLmF1dG9tYXRpb25GdW5jdGlvbjsKKyAgICAgICAgbGV0IHJl
ZmVyZW5jZUZ1bmN0aW9uID0gb3B0aW9ucy5yZWZlcmVuY2VGdW5jdGlvbjsKKyAgICAgICAgbGV0
IGF1dG9tYXRpb25UaW1lID0gb3B0aW9ucy5hdXRvbWF0aW9uVGltZTsKKyAgICAgICAgbGV0IHRo
cmVzaG9sZFNldFRhcmdldCA9IG9wdGlvbnMudGhyZXNob2xkU2V0VGFyZ2V0IHx8IDA7CisgICAg
ICAgIGxldCB0aHJlc2hvbGRSYW1wID0gb3B0aW9ucy50aHJlc2hvbGRSYW1wIHx8IDA7CisKKyAg
ICAgICAgLy8gRW5kIHZhbHVlIGZvciB0aGUgcmFtcC4gIEZhaXJseSBhcmJpdHJhcnksIGJ1dCBz
aG91bGQgYmUgZGlzdGluY3RseQorICAgICAgICAvLyBkaWZmZXJlbnQgZnJvbSB0aGUgdGFyZ2V0
IHZhbHVlIGZvciBTZXRUYXJnZXRBdFRpbWUgYW5kIHRoZSBpbml0aWFsCisgICAgICAgIC8vIHZh
bHVlIG9mIGdhaW4uZ2Fpbi4KKyAgICAgICAgbGV0IHJhbXBFbmRWYWx1ZSA9IDI7CisgICAgICAg
IGxldCBjb250ZXh0ID0gbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRnJhbWVzLCBz
YW1wbGVSYXRlKTsKKworICAgICAgICAvLyBBIGNvbnN0YW50IHNvdXJjZSBvZiBhbXBsaXR1ZGUg
MS4KKyAgICAgICAgbGV0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7Cisg
ICAgICAgIHNvdXJjZS5idWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCAx
KTsKKyAgICAgICAgc291cmNlLmxvb3AgPSB0cnVlOworCisgICAgICAgIGxldCBnYWluID0gY29u
dGV4dC5jcmVhdGVHYWluKCk7CisKKyAgICAgICAgLy8gVGhlIFNldFRhcmdldCBzdGFydHMgYWZ0
ZXIgb25lIHJlbmRlcmluZyBxdWFudHVtLgorICAgICAgICBnYWluLmdhaW4uc2V0VGFyZ2V0QXRU
aW1lKAorICAgICAgICAgICAgMCwgcmVuZGVyUXVhbnR1bSAvIGNvbnRleHQuc2FtcGxlUmF0ZSwg
dGltZUNvbnN0YW50KTsKKworICAgICAgICAvLyBTY2hlZHVsZSB0aGUgcmFtcCBhdCB8YXV0b21h
dGlvblRpbWV8LiAgSWYgdGhpcyB0aW1lIGlzIHBhc3QgdGhlCisgICAgICAgIC8vIGZpcnN0IHJl
bmRlcmluZyBxdWFudHVtLCB0aGUgU2V0VGFyZ2V0IGV2ZW50IHdpbGwgcnVuIGZvciBhIGJpdAor
ICAgICAgICAvLyBiZWZvcmUgcnVubmluZyB0aGUgcmFtcC4gIE90aGVyd2lzZSwgdGhlIFNldFRh
cmdldCBzaG91bGQgYmUKKyAgICAgICAgLy8gY29tcGxldGVseSByZXBsYWNlZCBieSB0aGUgcmFt
cC4KKyAgICAgICAgY29udGV4dC5zdXNwZW5kKGF1dG9tYXRpb25UaW1lKS50aGVuKGZ1bmN0aW9u
KCkgeworICAgICAgICAgIGF1dG9tYXRpb25GdW5jdGlvbihnYWluLmdhaW4sIHJhbXBFbmRWYWx1
ZSwgcmFtcEVuZFRpbWUpOworICAgICAgICAgIGNvbnRleHQucmVzdW1lKCk7CisgICAgICAgIH0p
OworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5lY3Qo
Y29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc291cmNlLnN0YXJ0KCk7CisKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1
ZmZlcikgeworICAgICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTsKKyAgICAgICAgICBsZXQgcmVz
dWx0ID0gcmVzdWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgIGxldCBleHBl
Y3RlZCA9IHJlZmVyZW5jZUZ1bmN0aW9uKAorICAgICAgICAgICAgICBhdXRvbWF0aW9uVGltZSwg
dGltZUNvbnN0YW50LCByYW1wRW5kVmFsdWUsIHJhbXBFbmRUaW1lKTsKKworICAgICAgICAgIC8v
IFZlcmlmeSBlYWNoIHBhcnQgb2YgdGhlIGN1cnZlIHNlcGFyYXRlbHkuCisgICAgICAgICAgbGV0
IHN0YXJ0SW5kZXggPSAwOworICAgICAgICAgIGxldCBsZW5ndGggPSBleHBlY3RlZC5pbml0aWFs
UGFydC5sZW5ndGg7CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhhdCB0aGUgaW5pdGlhbCBwYXJ0
IG9mIHRoZSBjdXJ2ZSBpcyBjb25zdGFudC4KKyAgICAgICAgICBzaG91bGQocmVzdWx0LnNsaWNl
KDAsIGxlbmd0aCksIHByZWZpeCArICc6IEluaXRpYWwgcGFydCcpCisgICAgICAgICAgICAgIC5i
ZUNsb3NlVG9BcnJheShleHBlY3RlZC5pbml0aWFsUGFydCk7CisKKyAgICAgICAgICAvLyBWZXJp
ZnkgdGhlIFNldFRhcmdldCBwYXJ0IG9mIHRoZSBjdXJ2ZSwgaWYgdGhlIFNldFRhcmdldCBkaWQK
KyAgICAgICAgICAvLyBhY3R1YWxseSBydW4uCisgICAgICAgICAgc3RhcnRJbmRleCArPSBsZW5n
dGg7CisgICAgICAgICAgbGVuZ3RoID0gZXhwZWN0ZWQuc2V0VGFyZ2V0UGFydC5sZW5ndGg7Cisg
ICAgICAgICAgaWYgKGxlbmd0aCkgeworICAgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAg
ICAgIHJlc3VsdC5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgbGVuZ3RoKSwKKyAgICAg
ICAgICAgICAgICBwcmVmaXggKyAnOiBTZXRUYXJnZXQgcGFydCcpCisgICAgICAgICAgICAgICAg
LmJlQ2xvc2VUb0FycmF5KAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZC5zZXRUYXJnZXRQ
YXJ0LAorICAgICAgICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IHRocmVzaG9sZFNl
dFRhcmdldH0pOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzaG91bGQoIWxlbmd0
aCwgcHJlZml4ICsgJzogU2V0VGFyZ2V0IHBhcnQnKQorICAgICAgICAgICAgICAgIC5tZXNzYWdl
KAorICAgICAgICAgICAgICAgICAgICAnd2FzIGNvcnJlY3RseSByZXBsYWNlZCBieSB0aGUgcmFt
cCcsCisgICAgICAgICAgICAgICAgICAgICd3YXMgaW5jb3JyZWN0bHkgcmVwbGFjZWQgYnkgdGhl
IHJhbXAnKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICAvLyBWZXJpZnkgdGhlIHJhbXAgcGFy
dCBvZiB0aGUgY3VydmUKKyAgICAgICAgICBzdGFydEluZGV4ICs9IGxlbmd0aDsKKyAgICAgICAg
ICBsZW5ndGggPSBleHBlY3RlZC5yYW1wUGFydC5sZW5ndGg7CisgICAgICAgICAgc2hvdWxkKHJl
c3VsdC5zbGljZShzdGFydEluZGV4LCBzdGFydEluZGV4ICsgbGVuZ3RoKSwgcHJlZml4KQorICAg
ICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCisgICAgICAgICAgICAgICAgICBleHBlY3RlZC5y
YW1wUGFydCwge2Fic29sdXRlVGhyZXNob2xkOiB0aHJlc2hvbGRSYW1wfSk7CisKKyAgICAgICAg
ICAvLyBWZXJpZnkgdGhhdCB0aGUgZW5kIG9mIHRoZSBjdXJ2ZSBhZnRlciB0aGUgcmFtcCAoaWYg
YW55KSBpcyBhCisgICAgICAgICAgLy8gY29uc3RhbnQuCisgICAgICAgICAgc3RhcnRJbmRleCAr
PSBsZW5ndGg7CisgICAgICAgICAgc2hvdWxkKHJlc3VsdC5zbGljZShzdGFydEluZGV4KSwgcHJl
Zml4ICsgJzogVGFpbCBwYXJ0JykKKyAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KGV4cGVj
dGVkLnRhaWxQYXJ0KTsKKworICAgICAgICB9KTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1saW1pdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0QXRUaW1lLWxp
bWl0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OWY4MDJjODRjYzE3Y2ZlNTY0MDYyYTQ0MmUx
ZGE1NWRhZjAwMWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1saW1pdC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxOSBAQAorCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNT
IEV4ZWN1dGluZyAiYXBwcm9hY2ggMSIgCitQQVNTIEV4ZWN1dGluZyAiYXBwcm9hY2ggMCIgCitQ
QVNTIEV4ZWN1dGluZyAiY3JidWcuY29tLzgzNTI5NCIgCitQQVNTIEF1ZGl0IHJlcG9ydCAKK1BB
U1MgPiBbYXBwcm9hY2ggMV0gIAorUEFTUyAgIEluaXRpYWwgb3V0cHV0IG9mIDY2NCBzYW1wbGVz
IGZvciBzZXRUYXJnZXRBdFRpbWUoMSwgMCwgMC4wMDEpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXld
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LjAwMDAyNCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKK1BBU1MgICBUYWlsIG91dHB1dCBmb3Ig
c2V0VGFyZ2V0QXRUaW1lKDEsIDAsIDAuMDAxKSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MCwicmVs
YXRpdmVUaHJlc2hvbGQiOjkuODIzNGUtN30uIAorUEFTUyA8IFthcHByb2FjaCAxXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFthcHByb2FjaCAw
XSAgCitQQVNTICAgSW5pdGlhbCBvdXRwdXQgb2YgNDgwIHNhbXBsZXMgZm9yIHNldFRhcmdldEF0
VGltZSgwLCAwLCAwLjAwMSkgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjQuNzQ3ZS04LCJyZWxhdGl2
ZVRocmVzaG9sZCI6MH0uIAorUEFTUyAgIFRhaWwgb3V0cHV0IGZvciBzZXRUYXJnZXRBdFRpbWUo
MCwgMCwgMC4wMDEpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNl
IHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDAyMzMxLCJyZWxhdGl2ZVRo
cmVzaG9sZCI6MH0uIAorUEFTUyA8IFthcHByb2FjaCAwXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAyIGFzc2VydGlvbnMpIAorUEFTUyA+IFtjcmJ1Zy5jb20vODM1Mjk0XSAgCitQQVNT
ICAgT3V0cHV0IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRv
bGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjo5LjgxNzJlLTcsInJlbGF0aXZlVGhyZXNo
b2xkIjowfS4gCitQQVNTIDwgW2NyYnVnLmNvbS84MzUyOTRdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNI
RUQ6IDMgdGFza3MgcmFuIHN1Y2Nlc3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtbGltaXQuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRB
dFRpbWUtbGltaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hN2NhMDhhMjM0YTMyMTI5OWQ0OGRkYjhhZTY1
ZGYxMzkxNWVhNDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0VGltZS1saW1pdC5odG1sCkBAIC0wLDAgKzEs
MTkzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+Cisg
ICAgICBUZXN0IHNldFRhcmdldEF0VGltZSBBcHByb2FjaCB0byBMaW1pdAorICAgIDwvdGl0bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIGxldCBh
dWRpdCA9IEF1ZGl0LmNyZWF0ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdh
cHByb2FjaCAxJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBsZXQgc2FtcGxlUmF0ZSA9
IDQ4MDAwOworCisgICAgICAgIC8vIEEgcmVhbGx5IHNob3J0IHRpbWUgY29uc3RhbnQgc28gdGhh
dCBzZXRUYXJnZXRBdFRpbWUgYXBwcm9hY2hlcyB0aGUKKyAgICAgICAgLy8gbGltaXRpbmcgdmFs
dWUgd2VsbCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgdGVzdC4KKyAgICAgICAgbGV0IHRpbWVDb25z
dGFudCA9IDAuMDAxOworCisgICAgICAgIC8vIEZpbmQgdGhlIHRpbWUgd2hlcmUgc2V0VGFyZ2V0
QXRUaW1lIGlzIGNsb3NlIGVub3VnaCB0byB0aGUgbGltaXQuCisgICAgICAgIC8vIFNpbmNlIHdl
J3JlIGFwcHJvYWNoaW5nIDEsIHVzZSBhIHZhbHVlIG9mIGVwcyBzbWFsbGVyIHRoYW4KKyAgICAg
ICAgLy8ga1NldFRhcmdldFRocmVzaG9sZCAoMS41ZS02KSBpbiBBdWRpb1BhcmFtVGltZWxpbmUu
Y3BwLiAgVGhpcyBpcyB0bworICAgICAgICAvLyBhY2NvdW50IGZvciByb3VuZC1vZmYgaW4gdGhl
IGFjdHVhbCBpbXBsZW1lbnRhdGlvbiAod2hpY2ggdXNlcyBhCisgICAgICAgIC8vIGZpbHRlciBh
bmQgbm90IHRoZSBmb3JtdWxhLikKKyAgICAgICAgbGV0IGxpbWl0VGhyZXNob2xkID0gMWUtNjsK
KworICAgICAgICBydW5UZXN0KHNob3VsZCwgeworICAgICAgICAgIHNhbXBsZVJhdGU6IHNhbXBs
ZVJhdGUsCisgICAgICAgICAgdjA6IDAsCisgICAgICAgICAgdjE6IDEsCisgICAgICAgICAgdGlt
ZUNvbnN0YW50OiB0aW1lQ29uc3RhbnQsCisgICAgICAgICAgZXBzOiBsaW1pdFRocmVzaG9sZCwK
KyAgICAgICAgICAvLyBFeHBlcmltZW50YWxseSBkZXRlcm1pbmVkCisgICAgICAgICAgdGhyZXNo
b2xkOiAyLjRlLTUsCisgICAgICAgICAgdGFpbFRocmVzaG9sZDoge3JlbGF0aXZlVGhyZXNob2xk
OiA5LjgyMzRlLTd9CisgICAgICAgIH0pLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAg
fSkKKworICAgICAgYXVkaXQuZGVmaW5lKCdhcHByb2FjaCAwJywgKHRhc2ssIHNob3VsZCkgPT4g
eworICAgICAgICAvLyBVc2UgdGhlIGVxdWF0aW9uIGZvciBzZXRUYXJnZXRBdFRpbWUgdG8gZmln
dXJlIG91dCB3aGVuIHdlIGFyZSBjbG9zZQorICAgICAgICAvLyB0byAwOgorICAgICAgICAvLwor
ICAgICAgICAvLyAgIHYodCkgPSBleHAoLXQvdGF1KQorICAgICAgICAvLworICAgICAgICAvLyBT
byBmaW5kIHQgc3VjaCB0aGF0IGV4cCgtdC90YXUpIDw9IGVwcy4gIFRodXMgdCA+PSAtIHRhdSAq
IGxvZyhlcHMpLgorICAgICAgICAvLworICAgICAgICAvLyBGb3IgZXBzLCB1c2UgZXhwKC0xMCku
CisKKyAgICAgICAgbGV0IHNhbXBsZVJhdGUgPSA0ODAwMDsKKworICAgICAgICAvLyBBIHJlYWxs
eSBzaG9ydCB0aW1lIGNvbnN0YW50IHNvIHRoYXQgc2V0VGFyZ2V0QXRUaW1lIGFwcHJvYWNoZXMg
dGhlCisgICAgICAgIC8vIGxpbWl0aW5nIHZhbHVlIHdlbGwgYmVmb3JlIHRoZSBlbmQgb2YgdGhl
IHRlc3QuCisgICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAwLjAwMTsKKworICAgICAgICAvLyBG
aW5kIHRoZSB0aW1lIHdoZXJlIHNldFRhcmdldEF0VGltZSBpcyBjbG9zZSBlbm91Z2ggdG8gdGhl
IGxpbWl0LgorICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhcHByb2FjaGluZyAwLCB1c2UgYSB2YWx1
ZSBvZiBlcHMgc21hbGxlciB0aGFuCisgICAgICAgIC8vIGtTZXRUYXJnZXRaZXJvVGhyZXNob2xk
ICgxZS0yMCkgaW4gQXVkaW9QYXJhbVRpbWVsaW5lLmNwcC4gIFRoaXMgaXMKKyAgICAgICAgLy8g
dG8gYWNjb3VudCBmb3Igcm91bmQtb2ZmIGluIHRoZSBhY3R1YWwgaW1wbGVtZW50YXRpb24gKHdo
aWNoIHVzZXMgYQorICAgICAgICAvLyBmaWx0ZXIgYW5kIG5vdCB0aGUgZm9ybXVsYS4pCisgICAg
ICAgIGxldCBsaW1pdFRocmVzaG9sZCA9IE1hdGguZXhwKC0xMCk7CisKKyAgICAgICAgcnVuVGVz
dChzaG91bGQsIHsKKyAgICAgICAgICBzYW1wbGVSYXRlOiBzYW1wbGVSYXRlLAorICAgICAgICAg
IHYwOiAxLAorICAgICAgICAgIHYxOiAwLAorICAgICAgICAgIHRpbWVDb25zdGFudDogdGltZUNv
bnN0YW50LAorICAgICAgICAgIGVwczogbGltaXRUaHJlc2hvbGQsCisgICAgICAgICAgLy8gRXhw
ZXJpbWVudGFsbHkgZGV0ZXJtaW5lZAorICAgICAgICAgIHRocmVzaG9sZDogNC43NDcwZS04LAor
ICAgICAgICAgIHRhaWxUaHJlc2hvbGQ6IHthYnNvbHV0ZVRocmVzaG9sZDogMi4zMzEwZS01fQor
ICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBh
dWRpdC5kZWZpbmUoJ2NyYnVnLmNvbS84MzUyOTQnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAg
ICAgIGxldCBzYW1wbGVSYXRlID0gODAwMDsKKyAgICAgICAgbGV0IGR1cmF0aW9uID0gODsKKyAg
ICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCh7CisgICAgICAgICAg
bGVuZ3RoOiBkdXJhdGlvbiAqIHNhbXBsZVJhdGUsCisgICAgICAgICAgc2FtcGxlUmF0ZTogc2Ft
cGxlUmF0ZX0pOworCisgICAgICAgIGxldCBzcmMgPSBuZXcgQ29uc3RhbnRTb3VyY2VOb2RlKGNv
bnRleHQpOworICAgICAgICBsZXQgZ2FpbiA9IG5ldyBHYWluTm9kZShjb250ZXh0KTsKKworICAg
ICAgICBzcmMuY29ubmVjdChnYWluKS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisg
ICAgICAgIGxldCB0YXJnZXRWYWx1ZSA9IDAuODsKKyAgICAgICAgbGV0IHRhcmdldFN0YXJ0VGlt
ZSA9IDA7CisgICAgICAgIGxldCB0aW1lQ29uc3RhbnQgPSAyOworICAgICAgICBnYWluLmdhaW4u
c2V0VmFsdWVBdFRpbWUoMCwgMCk7CisgICAgICAgIGdhaW4uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUo
dGFyZ2V0VmFsdWUsIHRhcmdldFN0YXJ0VGltZSwgdGltZUNvbnN0YW50KTsKKyAgICAgICAgc3Jj
LnN0YXJ0KCk7CisKKyAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAg
LnRoZW4ocmVuZGVyZWRCdWZmZXIgPT4geworICAgICAgICAgICAgIC8vIFRoZSBvdXRwdXQgc2hv
dWxkIGJlIGEgc2ltcGxlIGV4cG9uZW50aWFsIGFwcHJvYWNoIHRvIDAuOAorICAgICAgICAgICAg
IC8vIHN0YXJ0aW5nIGF0IDAgYXQgdGltZSAwLjEuCisgICAgICAgICAgICAgbGV0IGFjdHVhbCA9
IHJlbmRlcmVkQnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgICAgIGxldCBleHBl
Y3RlZCA9IGNyZWF0ZUV4cG9uZW50aWFsQXBwcm9hY2hBcnJheSh0YXJnZXRTdGFydFRpbWUsCisg
ICAgICAgICAgICAgICBkdXJhdGlvbiwgMCwgdGFyZ2V0VmFsdWUsIGNvbnRleHQuc2FtcGxlUmF0
ZSwgdGltZUNvbnN0YW50KTsKKworICAgICAgICAgICAgIHNob3VsZChhY3R1YWwsICdPdXRwdXQn
KQorICAgICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoZXhwZWN0ZWQsIHthYnNvbHV0ZVRocmVz
aG9sZDogOS44MTcyZS03fSk7CisgICAgICAgICAgfSkKKyAgICAgICAgICAudGhlbigoKSA9PiB0
YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgZnVuY3Rpb24gZmluZExpbWl0VGltZSh2
MCwgdjEsIHRpbWVDb25zdGFudCwgZXBzKSB7CisgICAgICAgIC8vIEZpbmQgdGhlIHRpbWUgYXQg
d2hpY2ggdGhlIHNldFRhcmdldEF0VGltZSBpcyBjbG9zZSBlbm91Z2ggdG8gdGhlCisgICAgICAg
IC8vIHRhcmdldCB2YWx1ZSB8djF8IHdoZXJlIHdlIGNhbiBjb25zaWRlciB0aGUgY3VydmUgdG8g
aGF2ZSByZWFjaGVkIGl0cworICAgICAgICAvLyBsaW1pdGluZyB2YWx1ZS4KKyAgICAgICAgLy8K
KyAgICAgICAgLy8gSWYgdjEgPSAwLCB8ZXBzfCBpcyB0aGUgYWJzb2x1dGUgZXJyb3IgYmV0d2Vl
biB0aGUgYWN0dWFsIHZhbHVlIGFuZAorICAgICAgICAvLyB8djF8LiAgT3RoZXJ3aXNlLCB8ZXBz
fCBpcyB0aGUgcmVsYXRpdmUgZXJyb3IgYmV0d2VlbiB0aGUgYWN0dWFsCisgICAgICAgIC8vIHZh
bHVlIGFuZCB8djF8LgorICAgICAgICAvLworICAgICAgICAvLyBUaGUgY3VydmUgaXMKKyAgICAg
ICAgLy8KKyAgICAgICAgLy8gICB2KHQpID0gdjEgLSAodjEgLSB2MCkgKiBleHAoLXQvdGltZUNv
bnN0YW50KQorICAgICAgICAvLworICAgICAgICAvLyBJZiB2MSA9IDAsCisgICAgICAgIC8vCisg
ICAgICAgIC8vICAgdih0KSA9IHYwICogZXhwKC10L3RpbWVDb25zdGFudCkKKyAgICAgICAgLy8K
KyAgICAgICAgLy8gU29sdmUgdGhpcyBmb3Igd2hlbiB8dih0KXwgPD0gZXBzOgorICAgICAgICAv
LworICAgICAgICAvLyAgIHQgPj0gdGltZUNvbnN0YW50ICogbG9nKHYwL2VwcykKKyAgICAgICAg
Ly8KKyAgICAgICAgLy8gRm9yIHYxIG5vdCB6ZXJvLCB3ZSB3YW50IHx2KHQpIC0gdjF8L3x2MXwg
PD0gZXBzOgorICAgICAgICAvLworICAgICAgICAvLyAgIHQgPj0gdGltZUNvbnN0YW50ICogbG9n
KGFicyh2MS12MCkvZXBzL3YxKQorCisgICAgICAgIGlmICh2MSkKKyAgICAgICAgICByZXR1cm4g
dGltZUNvbnN0YW50ICogTWF0aC5sb2coTWF0aC5hYnModjEgLSB2MCkgLyBlcHMgLyB2MSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICByZXR1cm4gdGltZUNvbnN0YW50ICogTWF0aC5sb2codjAg
LyBlcHMpOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBydW5UZXN0KHNob3VsZCwgb3B0aW9u
cykgeworICAgICAgICBsZXQgcmVuZGVyTGVuZ3RoID0gMTsKKworICAgICAgICBsZXQgY29udGV4
dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KAorICAgICAgICAgICAgMSwgcmVuZGVyTGVuZ3Ro
ICogc2FtcGxlUmF0ZSwgb3B0aW9ucy5zYW1wbGVSYXRlKTsKKworICAgICAgICAvLyBBIGNvbnN0
YW50IHNvdXJjZQorICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3Vy
Y2UoKTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRl
eHQsIDEsIDEpOworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisKKyAgICAgICAgbGV0IGdh
aW4gPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRU
aW1lKG9wdGlvbnMudjAsIDApOworICAgICAgICBnYWluLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKG9w
dGlvbnMudjEsIDAsIG9wdGlvbnMudGltZUNvbnN0YW50KTsKKworICAgICAgICBzb3VyY2UuY29u
bmVjdChnYWluKTsKKyAgICAgICAgZ2Fpbi5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwor
CisgICAgICAgIHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0
UmVuZGVyaW5nKCkudGhlbihmdW5jdGlvbihyZXN1bHRCdWZmZXIpIHsKKyAgICAgICAgICBsZXQg
YWN0dWFsID0gcmVzdWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgICAgICAgIGxldCBl
eHBlY3RlZCA9IGNyZWF0ZUV4cG9uZW50aWFsQXBwcm9hY2hBcnJheSgKKyAgICAgICAgICAgICAg
MCwgcmVuZGVyTGVuZ3RoLCBvcHRpb25zLnYwLCBvcHRpb25zLnYxLCBvcHRpb25zLnNhbXBsZVJh
dGUsCisgICAgICAgICAgICAgIG9wdGlvbnMudGltZUNvbnN0YW50KTsKKworICAgICAgICAgIGxl
dCBtZXNzYWdlID0gJ3NldFRhcmdldEF0VGltZSgnICsgb3B0aW9ucy52MSArICcsIDAsICcgKwor
ICAgICAgICAgICAgICBvcHRpb25zLnRpbWVDb25zdGFudCArICcpJzsKKworICAgICAgICAgIC8v
IERldGVybWluZSB3aGVyZSB0aGUgdGFpbCBvZiB0aGUgY3VydmUgYmVnaW5zLiAgKFdoZXJlIHRo
ZSBjdXJ2ZSBoYXMKKyAgICAgICAgICAvLyBiYXNpY2FsbHkgcmVhY2hlZCB0aGUgbGltaXQgdmFs
dWUuKQorICAgICAgICAgIGxldCB0YWlsVGltZSA9IGZpbmRMaW1pdFRpbWUoCisgICAgICAgICAg
ICAgIG9wdGlvbnMudjAsIG9wdGlvbnMudjEsIG9wdGlvbnMudGltZUNvbnN0YW50LCBvcHRpb25z
LmVwcyk7CisgICAgICAgICAgbGV0IHRhaWxGcmFtZSA9IE1hdGguY2VpbCh0YWlsVGltZSAqIG9w
dGlvbnMuc2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgIGFj
dHVhbC5zbGljZSgwLCB0YWlsRnJhbWUpLAorICAgICAgICAgICAgICAnSW5pdGlhbCBvdXRwdXQg
b2YgJyArIHRhaWxGcmFtZSArICcgc2FtcGxlcyBmb3IgJyArIG1lc3NhZ2UpCisgICAgICAgICAg
ICAgIC5iZUNsb3NlVG9BcnJheSgKKyAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLnNsaWNlKDAs
IHRhaWxGcmFtZSksCisgICAgICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IG9wdGlv
bnMudGhyZXNob2xkfSk7CisKKyAgICAgICAgICBzaG91bGQoYWN0dWFsLnNsaWNlKHRhaWxGcmFt
ZSksICdUYWlsIG91dHB1dCBmb3IgJyArIG1lc3NhZ2UpCisgICAgICAgICAgICAgIC5iZUNsb3Nl
VG9BcnJheShleHBlY3RlZC5zbGljZSh0YWlsRnJhbWUpLCBvcHRpb25zLnRhaWxUaHJlc2hvbGQp
OworICAgICAgICB9KTsKKyAgICAgIH0KKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3Jp
cHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtc2FtcGxpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdl
dEF0VGltZS1zYW1wbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE1N2Y1NTUzOGYwNWUy
Y2E5NWRiYmM1NWFlZDVhYTExZGM1NGRmZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRUYXJnZXRBdFRpbWUtc2FtcGxpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgInNldFZhbHVlOzEyOC4xIiAKK1BBU1MgRXhlY3V0
aW5nICJzZXRWYWx1ZTswLjEiIAorUEFTUyBFeGVjdXRpbmcgInNldFZhbHVlOzAuMCIgCitQQVNT
IEV4ZWN1dGluZyAic2V0dGVyOzEyOC4xIiAKK1BBU1MgRXhlY3V0aW5nICJzZXR0ZXI7MC4xIiAK
K1BBU1MgRXhlY3V0aW5nICJzZXR0ZXI7MC4wIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+
IFtzZXRWYWx1ZTsxMjguMV0gIAorUEFTUyAgIEluaXRpYWxpemUgYnkgc2V0VmFsdWVBdFRpbWU6
IFRhcmdldCB2YWx1ZSBhdCBmcmFtZSAxMjkgaXMgOTEzOS4zMTE4NTI3MTIyNzIgd2l0aGluIGFu
IGVycm9yIG9mIDMuNjAyOWUtOC4gCitQQVNTIDwgW3NldFZhbHVlOzEyOC4xXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXRWYWx1ZTswLjFd
ICAKK1BBU1MgICBJbml0aWFsaXplIGJ5IHNldFZhbHVlQXRUaW1lOiBUYXJnZXQgdmFsdWUgYXQg
ZnJhbWUgMSBpcyA5MTM5LjMxMTg1MjcxMjI4MiB3aXRoaW4gYW4gZXJyb3Igb2YgMy42MDI5ZS04
LiAKK1BBU1MgPCBbc2V0VmFsdWU7MC4xXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAx
IGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXRWYWx1ZTswLjBdICAKK1BBU1MgICBJbml0aWFsaXpl
IGJ5IHNldFZhbHVlQXRUaW1lOiBUYXJnZXQgdmFsdWUgYXQgZnJhbWUgMCBpcyAxMDAwMCB3aXRo
aW4gYW4gZXJyb3Igb2YgMy42MDI5ZS04LiAKK1BBU1MgPCBbc2V0VmFsdWU7MC4wXSBBbGwgYXNz
ZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXR0ZXI7MTI4
LjFdICAKK1BBU1MgICBJbml0aWFsaXplIGJ5IHNldHRlcjogVGFyZ2V0IHZhbHVlIGF0IGZyYW1l
IDEyOSBpcyA5MTM5LjMxMTg1MjcxMjI3MiB3aXRoaW4gYW4gZXJyb3Igb2YgMy42MDI5ZS04LiAK
K1BBU1MgPCBbc2V0dGVyOzEyOC4xXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFz
c2VydGlvbnMpIAorUEFTUyA+IFtzZXR0ZXI7MC4xXSAgCitQQVNTICAgSW5pdGlhbGl6ZSBieSBz
ZXR0ZXI6IFRhcmdldCB2YWx1ZSBhdCBmcmFtZSAxIGlzIDkxMzkuMzExODUyNzEyMjgyIHdpdGhp
biBhbiBlcnJvciBvZiAzLjYwMjllLTguIAorUEFTUyA8IFtzZXR0ZXI7MC4xXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyA+IFtzZXR0ZXI7MC4wXSAg
CitQQVNTICAgSW5pdGlhbGl6ZSBieSBzZXR0ZXI6IFRhcmdldCB2YWx1ZSBhdCBmcmFtZSAwIGlz
IDEwMDAwIHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKK1BBU1MgPCBbc2V0dGVyOzAuMF0gQWxsIGFz
c2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJVCBUQVNL
IFJVTk5FUiBGSU5JU0hFRDogNiB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFRhcmdldEF0
VGltZS1zYW1wbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRp
b3BhcmFtLXNldFRhcmdldEF0VGltZS1zYW1wbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZjY1YWIx
ZWY5YTU1ODIzMDk4MWI3NzYyYjM1YTY0ZjgwNThlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VGFyZ2V0QXRUaW1lLXNh
bXBsaW5nLmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cisg
IDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3QgU2FtcGxpbmcgZm9yIFNldFRhcmdldEF0
VGltZQorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzIj48L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1j
b2RlIj4KKyAgICAgIC8vIFNvbWUgc2xvdyBzYW1wbGUgcmF0ZSwgYnV0IG90aGVyd2lzZSBhcmJp
dHJhcnkuCisgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDEyODAwOworCisgICAgICAvLyBUaW1lIGNv
bnN0YW50IGZvciBzZXRUYXJnZXRWYWx1ZS4gTWFrZSBpdCBzaG9ydCwgYnV0IGlzIG90aGVyd2lz
ZQorICAgICAgLy8gYXJiaXRyYXJ5LgorICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDEwIC8gc2Ft
cGxlUmF0ZTsKKworICAgICAgLy8gRGVmYXV0IGluaXRpYWwgZ2FpbiBmb3IgdGVzdC4gIEFyYml0
cmFyeSwgYnV0IHdlIHdhbnQgaXQgbGFyZ2Ugc28gdGhlCisgICAgICAvLyBjaGFuZ2VzIGxvb2sg
bGFyZ2UsIGV2ZW4gaWYgdGhlIHJlbGF0aXZlIGNoYW5nZSBpc24ndC4KKyAgICAgIGxldCBpbml0
aWFsR2FpbiA9IDEwMDAwOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVu
bmVyKCk7CisKKyAgICAgIC8vIFRlc3Qgc2FtcGxpbmcgb2Ygc2V0VGFyZ2V0QXRUaW1lIHRoYXQg
c3RhcnRzIGF0IHxzdGFydEZyYW1lfC4gIEEgZ2FpbgorICAgICAgLy8gbm9kZSBpcyB1c2VkIGZv
ciB0ZXN0aW5nLiAgfGluaXRpYWxpemVHYWluRnVuY3Rpb258IGluaXRpYWxpemVzIHRoZQorICAg
ICAgLy8gZ2FpbiB2YWx1ZS4KKyAgICAgIGZ1bmN0aW9uIGRvVGVzdCgKKyAgICAgICAgICBzaG91
bGQsIG1lc3NhZ2UsIHN0YXJ0RnJhbWUsIHRocmVzaG9sZCwgaW5pdGlhbGl6ZUdhaW5GdW5jdGlv
bikgeworICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDI1
Niwgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZl
clNvdXJjZSgpOworICAgICAgICBsZXQgYiA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKDEsIDEsIHNh
bXBsZVJhdGUpOworICAgICAgICBiLmdldENoYW5uZWxEYXRhKDApWzBdID0gMTsKKyAgICAgICAg
c291cmNlLmJ1ZmZlciA9IGI7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKworICAgICAg
ICBsZXQgZ2FpbiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICAvLyBJbml0aWFsaXpl
IHRoZSB2YWx1ZSBvZiB0aGUgZ2FpbiBub2RlIGFwcHJvcHJpYXRlbHkuCisgICAgICAgIGluaXRp
YWxpemVHYWluRnVuY3Rpb24oZ2Fpbik7CisgICAgICAgIGdhaW4uZ2Fpbi5zZXRUYXJnZXRBdFRp
bWUoMCwgc3RhcnRGcmFtZSAvIHNhbXBsZVJhdGUsIHRpbWVDb25zdGFudCk7CisKKyAgICAgICAg
c291cmNlLmNvbm5lY3QoZ2Fpbik7CisgICAgICAgIGdhaW4uY29ubmVjdChjb250ZXh0LmRlc3Rp
bmF0aW9uKTsKKworICAgICAgICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICByZXR1cm4gY29u
dGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4oZnVuY3Rpb24ocmVzdWx0QnVmZmVyKSB7CisgICAg
ICAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIHNhbXBsaW5nIG9mIHRoZSBzZXRUYXJnZXRBdFRpbWUg
YXV0b21hdGlvbiB3YXMgZG9uZQorICAgICAgICAgIC8vIGNvcnJlY3RseS4gV2UganVzdCBsb29r
IGF0IHRoZSBzYW1wbGUganVzdCBwYXN0IHRoZSBzdGFydCBvZiB0aGUKKyAgICAgICAgICAvLyBh
dXRvbWF0aW9uLgorICAgICAgICAgIGxldCByZXN1bHREYXRhID0gcmVzdWx0QnVmZmVyLmdldENo
YW5uZWxEYXRhKDApOworICAgICAgICAgIC8vIENvbXB1dGUgdGhlIHRydWUgcmVzdWx0IGF0IHRo
ZSBmcmFtZSBqdXN0IHBhc3Qgc3RhcnRGcmFtZSBhbmQKKyAgICAgICAgICAvLyB2ZXJpZnkgdGhh
dCB0aGUgYWN0dWFsIHJlbmRlcmVkIHJlc3VsdCBpcyB3aXRoaW4gfHRocmVzaG9sZHwgb2YgdGhl
CisgICAgICAgICAgLy8gZXhwZWN0ZWQgdmFsdWUuCisgICAgICAgICAgbGV0IGZyYW1lID0gTWF0
aC5jZWlsKHN0YXJ0RnJhbWUpOworICAgICAgICAgIGxldCB2ID0gMTAwMDAgKgorICAgICAgICAg
ICAgICBNYXRoLmV4cCgKKyAgICAgICAgICAgICAgICAgIC0oZnJhbWUgLyBzYW1wbGVSYXRlIC0g
c3RhcnRGcmFtZSAvIHNhbXBsZVJhdGUpIC8KKyAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFu
dCk7CisgICAgICAgICAgc2hvdWxkKAorICAgICAgICAgICAgICByZXN1bHREYXRhW2ZyYW1lXSwg
bWVzc2FnZSArICc6IFRhcmdldCB2YWx1ZSBhdCBmcmFtZSAnICsgZnJhbWUpCisgICAgICAgICAg
ICAgIC5iZUNsb3NlVG8odiwge3RocmVzaG9sZDogdGhyZXNob2xkfSk7CisgICAgICAgIH0pOwor
ICAgICAgfQorCisgICAgICBmdW5jdGlvbiBpbml0aWFsaXplR2FpbkJ5U2V0dGVyKGcpIHsKKyAg
ICAgICAgZy5nYWluLnZhbHVlID0gaW5pdGlhbEdhaW47CisgICAgICB9CisKKyAgICAgIGZ1bmN0
aW9uIGluaXRpYWxpemVHYWluQnlTZXRWYWx1ZShnKSB7CisgICAgICAgIGcuZ2Fpbi5zZXRWYWx1
ZUF0VGltZShpbml0aWFsR2FpbiwgMCk7CisgICAgICB9CisKKyAgICAgIGF1ZGl0LmRlZmluZSgn
c2V0VmFsdWU7MTI4LjEnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGRvVGVzdCgKKyAg
ICAgICAgICAgIHNob3VsZCwgJ0luaXRpYWxpemUgYnkgc2V0VmFsdWVBdFRpbWUnLCAxMjguMSwg
My42MDI5ZS04LAorICAgICAgICAgICAgaW5pdGlhbGl6ZUdhaW5CeVNldFZhbHVlKQorICAgICAg
ICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0
LmRlZmluZSgnc2V0VmFsdWU7MC4xJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBkb1Rl
c3QoCisgICAgICAgICAgICBzaG91bGQsICdJbml0aWFsaXplIGJ5IHNldFZhbHVlQXRUaW1lJywg
MC4xLCAzLjYwMjllLTgsCisgICAgICAgICAgICBpbml0aWFsaXplR2FpbkJ5U2V0VmFsdWUpCisg
ICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAg
YXVkaXQuZGVmaW5lKCdzZXRWYWx1ZTswLjAnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAg
IGRvVGVzdCgKKyAgICAgICAgICAgIHNob3VsZCwgJ0luaXRpYWxpemUgYnkgc2V0VmFsdWVBdFRp
bWUnLCAwLCAzLjYwMjllLTgsCisgICAgICAgICAgICBpbml0aWFsaXplR2FpbkJ5U2V0VmFsdWUp
CisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKCdzZXR0ZXI7MTI4LjEnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAg
ICAgIGRvVGVzdCgKKyAgICAgICAgICAgIHNob3VsZCwgJ0luaXRpYWxpemUgYnkgc2V0dGVyJywg
MTI4LjEsIDMuNjAyOWUtOCwKKyAgICAgICAgICAgIGluaXRpYWxpemVHYWluQnlTZXR0ZXIpCisg
ICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAg
YXVkaXQuZGVmaW5lKCdzZXR0ZXI7MC4xJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBk
b1Rlc3QoCisgICAgICAgICAgICBzaG91bGQsICdJbml0aWFsaXplIGJ5IHNldHRlcicsIDAuMSwg
My42MDI5ZS04LAorICAgICAgICAgICAgaW5pdGlhbGl6ZUdhaW5CeVNldHRlcikKKyAgICAgICAg
ICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5k
ZWZpbmUoJ3NldHRlcjswLjAnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIGRvVGVzdChz
aG91bGQsICdJbml0aWFsaXplIGJ5IHNldHRlcicsIDAsIDAsIGluaXRpYWxpemVHYWluQnlTZXR0
ZXIpCisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKwor
ICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRW
YWx1ZUN1cnZlLWNvcHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtY29weS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODA3MmY0YWU1YWVhMDkxNTAyNzQ3NGZlYTBmZjg3OWE5N2IyODBlMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1
ZUN1cnZlLWNvcHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNTICMgQVVESVQg
VEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAidGVzdC1jb3B5IiAKK1BBU1Mg
QXVkaXQgcmVwb3J0IAorUEFTUyA+IFt0ZXN0LWNvcHldICAKK1BBU1MgICBzZXRWYWx1ZUN1cnZl
IG91dHB1dCBpcyBpZGVudGljYWwgdG8gdGhlIGFycmF5IFtleHBlY3RlZCBhcnJheV0uIAorUEFT
UyA8IFt0ZXN0LWNvcHldIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9u
cykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFuIHN1Y2Nl
c3NmdWxseS4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0v
YXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWNvcHkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWNvcHkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yMTEyMWE4MTNhNjcxN2VkNmNkZjc2MDE4OWNjZjIzMDFlMzI5OTQyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVl
Q3VydmUtY29weS5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
CisgIDxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgIFRlc3Qgc2V0VmFsdWVDdXJ2ZUF0VGltZSBD
b3BpZXMgdGhlIEN1cnZlIERhdGEKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRp
dC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Bhbm5lci1mb3Jt
dWxhcy5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0i
bGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAg
bGV0IHJlbmRlckZyYW1lcyA9IDEwMjQ7CisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24gPSByZW5k
ZXJGcmFtZXMgLyBzYW1wbGVSYXRlOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVU
YXNrUnVubmVyKCk7CisKKyAgICAgIC8vIFRlc3QgdGhhdCBjaGFuZ2luZyB0aGUgY3VydmUgYXJy
YXkgdG8gc2V0VmFsdWVDdXJ2ZUF0VGltZSBkb2Vzbid0CisgICAgICAvLyBjaGFuZ2UgdGhlIGF1
dG9tYXRpb24gb3V0cHV0LgorICAgICAgYXVkaXQuZGVmaW5lKCd0ZXN0LWNvcHknLCAodGFzaywg
c2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFR3by1jaGFubmVsIGNvbnRleHQ7IGNoYW5uZWwgMCBp
cyB0aGUgdGVzdCByZXN1bHQsIGFuZCBjaGFubmVsIDEgaXMKKyAgICAgICAgLy8gdGhlIGV4cGVj
dGVkIHJlc3VsdC4KKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4
dCgyLCByZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworCisgICAgICAgIGxldCBzb3VyY2UgPSBj
b250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3Jl
YXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0g
dHJ1ZTsKKworICAgICAgICAvLyBDcmVhdGUgdHdvIGdhaW4gbm9kZXMuICBnYWluUmVmIGlzIHRo
ZSByZWZlcmVuY2Ugd2l0aCB0aGUgZXhwZWN0ZWQKKyAgICAgICAgLy8gYXV0b21hdGlvbiByZXN1
bHRzLiAgZ2FpblRlc3QgaXMgdGhlIHRlc3Qgd2hpY2ggd2lsbCBoYXZlIHRoZSBjdXJ2ZQorICAg
ICAgICAvLyBtb2RpZmllZC4KKyAgICAgICAgbGV0IGdhaW5UZXN0ID0gY29udGV4dC5jcmVhdGVH
YWluKCk7CisgICAgICAgIGxldCBnYWluUmVmID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisKKyAg
ICAgICAgbGV0IG1lcmdlciA9IGNvbnRleHQuY3JlYXRlQ2hhbm5lbE1lcmdlcigyKTsKKworICAg
ICAgICAvLyBUaGUgYWN0dWFsIGN1cnZlIGRhdGEgY2FuIGJlIGFueXRoaW5nLCBidXQgd2UgdXNl
IHRoaXMgZm9yCisgICAgICAgIC8vIHNpbXBsaWNpdHkuCisgICAgICAgIGxldCBjdXJ2ZURhdGEg
PSBbMSwgMF07CisgICAgICAgIGxldCBjdXJ2ZVJlZiA9IEZsb2F0MzJBcnJheS5mcm9tKGN1cnZl
RGF0YSk7CisgICAgICAgIGxldCBjdXJ2ZVRlc3QgPSBGbG9hdDMyQXJyYXkuZnJvbShjdXJ2ZURh
dGEpOworCisgICAgICAgIC8vIENyZWF0ZSB0aGUgZ3JhcGguCisgICAgICAgIHNvdXJjZS5jb25u
ZWN0KGdhaW5UZXN0KTsKKyAgICAgICAgc291cmNlLmNvbm5lY3QoZ2FpblJlZik7CisgICAgICAg
IGdhaW5UZXN0LmNvbm5lY3QobWVyZ2VyLCAwLCAwKTsKKyAgICAgICAgZ2FpblJlZi5jb25uZWN0
KG1lcmdlciwgMCwgMSk7CisgICAgICAgIG1lcmdlci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRp
b24pOworCisgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGdhaW5zLgorICAgICAgICBnYWluVGVz
dC5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOworICAgICAgICBnYWluUmVmLmdhaW4uc2V0VmFs
dWVBdFRpbWUoMCwgMCk7CisKKyAgICAgICAgLy8gU2V0IHVwIHRoZSB2YWx1ZSBjdXJ2ZS4gIEF0
IHRoaXMgcG9pbnQgY3VydmVUZXN0IGFuZCBjdXJ2ZVJlZiBhcmUgdGhlCisgICAgICAgIC8vIHNh
bWUuCisgICAgICAgIGdhaW5UZXN0LmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZVRlc3Qs
IDAsIHJlbmRlckR1cmF0aW9uKTsKKyAgICAgICAgZ2FpblJlZi5nYWluLnNldFZhbHVlQ3VydmVB
dFRpbWUoY3VydmVSZWYsIDAsIHJlbmRlckR1cmF0aW9uKTsKKworICAgICAgICAvLyBBZnRlciBy
ZW5kZXJpbmcgaGFzIHN0YXJ0ZWQsIG1vZGlmeSBjdXJ2ZVRlc3QuCisgICAgICAgIGNvbnRleHQu
c3VzcGVuZCgxMjggLyBzYW1wbGVSYXRlKQorICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgIC8vIENoYW5nZSB0aGUgdmFsdWVzIG9mIGN1cnZlIG5vdy4gIEFueSB0
cmFuc2Zvcm1hdGlvbiBpcyBvayBhcworICAgICAgICAgICAgICAvLyBsb25nIGFzIGN1cnZlVGVz
dCBjaGFuZ2VzLiAgV2UgZG8gdGhpcyB0byBtYWtlIGl0IHJlYWxseQorICAgICAgICAgICAgICAv
LyBvYnZpb3VzLgorICAgICAgICAgICAgICBmb3IgKGxldCBrID0gMDsgayA8IGN1cnZlVGVzdC5s
ZW5ndGg7ICsraykKKyAgICAgICAgICAgICAgICBjdXJ2ZVRlc3Rba10gPSAxMDAgKiBjdXJ2ZVRl
c3Rba10gKyAxOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKGNvbnRleHQucmVz
dW1lLmJpbmQoY29udGV4dCkpOworCisgICAgICAgIC8vIFN0YXJ0IHRoZSB0ZXN0IQorICAgICAg
ICBzb3VyY2Uuc3RhcnQoKTsKKworICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKKyAg
ICAgICAgICAgIC50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgICAgICBs
ZXQgdGVzdERhdGEgPSByZXN1bHRCdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgICAgICAg
ICAgIGxldCByZWZEYXRhID0gcmVzdWx0QnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOworCisgICAg
ICAgICAgICAgIC8vIFRoZSB0ZXN0IHJlc3VsdCBhbmQgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUg
aWRlbnRpY2FsIHNpbmNlCisgICAgICAgICAgICAgIC8vIGNoYW5naW5nIHRoZSBjdXJ2ZSBkYXRh
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBhdXRvbWF0aW9uLgorICAgICAgICAgICAgICBzaG91bGQo
dGVzdERhdGEsICdzZXRWYWx1ZUN1cnZlIG91dHB1dCcpLmJlRXF1YWxUb0FycmF5KHJlZkRhdGEp
OworICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsK
KyAgICAgIH0pOworCisgICAgICBhdWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9h
dWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZHVyYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZHVyYXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MTMwZTc4OTIyZWUyNDRmYTY4YTg1YTg1N2NkMWYx
ZTU4MTY1YmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1Bh
cmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1kdXJhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw5IEBACisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhl
Y3V0aW5nICJsb25nIGR1cmF0aW9uIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtsb25n
IGR1cmF0aW9uXSAgCitQQVNTICAgTWF4IGFtcGxpdHVkZSBvZiBzZXRWYWx1ZUN1cnZlKFswLDFd
LCAwLCAxODQ0Njc0NDA3MzcwOTU1MjAwMCkgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuMTI5
Mzc3MjYzMDA1NzMzN2UtMjEuIAorUEFTUyA8IFtsb25nIGR1cmF0aW9uXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVS
IEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1kdXJh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNl
dFZhbHVlQ3VydmUtZHVyYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNGExNzE4Y2I0MjZjY2ZkOGI1
ZTU3ZmUzMzQwZDljY2ZmMTcxYWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZHVyYXRpb24uaHRtbApA
QCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8
dGl0bGU+CisgICAgICBUZXN0IHNldFZhbHVlQ3VydmVBdFRpbWUgd2l0aCBIdWdlIER1cmF0aW9u
CisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMiPjwvc2NyaXB0
PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUi
PgorICAgICAgbGV0IHNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgIGxldCByZW5kZXJGcmFtZXMg
PSAxMDAwOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisK
KyAgICAgIGF1ZGl0LmRlZmluZSgnbG9uZyBkdXJhdGlvbicsICh0YXNrLCBzaG91bGQpID0+IHsK
KyAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGdlbmVyYXRlIGEgc21hbGwgbnVtYmVyIG9mIGZy
YW1lcyBmb3IgdGhpcyB0ZXN0LgorICAgICAgICBsZXQgY29udGV4dCA9IG5ldyBPZmZsaW5lQXVk
aW9Db250ZXh0KDEsIHJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBzcmMg
PSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworCisgICAgICAgIC8vIENvbnN0YW50IHNv
dXJjZSBvZiBhbXBsaXR1ZGUgMSwgbG9vcGluZy4KKyAgICAgICAgc3JjLmJ1ZmZlciA9IGNyZWF0
ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBzcmMubG9vcCA9IHRydWU7
CisKKyAgICAgICAgLy8gQXV0b21hdGUgdGhlIGdhaW4gd2l0aCBhIHNldFZhbHVlQ3VydmUgd2l0
aCBhIHZlcnkgbG9uZyBkdXJhdGlvbi4KKyAgICAgICAgLy8gVGhlIGR1cmF0aW9uIHNob3VsZCBw
cm9kdWNlIGEgZnJhbWUgbnVtYmVyIGdyZWF0ZXIgdGhhbiAyXjY0IChsYXJnZXIKKyAgICAgICAg
Ly8gdGhhbiB0aGUgbGFyZ2VzdCBzaXplX3QgdmFsdWUpLgorICAgICAgICBsZXQgZ2FpbiA9IGNv
bnRleHQuY3JlYXRlR2FpbigpOworICAgICAgICBsZXQgZHVyYXRpb24gPSBNYXRoLnBvdygyLCA2
NCk7CisgICAgICAgIGxldCBjdXJ2ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFswLCAxXSk7CisgICAg
ICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCAwLCBkdXJhdGlvbik7CisK
KyAgICAgICAgLy8gQ3JlYXRlIHRoZSBncmFwaCBhbmQgZ28hCisgICAgICAgIHNyYy5jb25uZWN0
KGdhaW4pOworICAgICAgICBnYWluLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAg
ICAgIHNyYy5zdGFydCgpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAg
ICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgIC8vIEZpbmQg
dGhlIG1heGltdW0gdmFsdWUgb2YgdGhlIGJ1ZmZlci4KKyAgICAgICAgICAgICAgbGV0IG1heCA9
IE1hdGgubWF4LmFwcGx5KG51bGwsIHJlc3VsdC5nZXRDaGFubmVsRGF0YSgwKSk7CisKKyAgICAg
ICAgICAgICAgLy8gVGhlIGF1dG9tYXRpb24gZG9lcyBsaW5lYXIgaW50ZXJwb2xhdGlvbiBiZXR3
ZWVuIDAgYW5kIDEgZnJvbQorICAgICAgICAgICAgICAvLyB0aW1lIDAgdG8gZHVyYXRpb24uIEhl
bmNlIHRoZSBtYXggdmFsdWUgb2YgdGhlIGludGVycG9sYXRpb24KKyAgICAgICAgICAgICAgLy8g
b2NjdXJzIGF0IHRoZSBlbmQgb2YgdGhlIHJlbmRlcmluZy4gIENvbXB1dGUgdGhpcyB2YWx1ZS4K
KworICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWRNYXggPSAocmVuZGVyRnJhbWVzIC8gc2FtcGxl
UmF0ZSkgKiAoMSAvIGR1cmF0aW9uKTsKKworICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9Cisg
ICAgICAgICAgICAgICAgICAnc2V0VmFsdWVDdXJ2ZShbJyArIGN1cnZlICsgJ10sIDAsICcgKyBk
dXJhdGlvbiArICcpJzsKKworICAgICAgICAgICAgICBzaG91bGQobWF4LCAnTWF4IGFtcGxpdHVk
ZSBvZiAnICsgbWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgIC5iZUxlc3NUaGFuT3JFcXVhbFRv
KGV4cGVjdGVkTWF4KTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigoKSA9PiB0
YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3Jp
cHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWVuZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1l
bmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNGRlODE3ZGE2YjgxYTRjMzEzZTZiZTFkODMz
NDZlODY0M2I5ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRp
b1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1lbmQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjkgQEAKKworUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVj
dXRpbmcgIjA6IGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lIiAKK1BBU1MgRXhlY3V0aW5nICIxOiBs
aW5lYXJSYW1wVG9WYWx1ZUF0VGltZSIgCitQQVNTIEV4ZWN1dGluZyAiMjogZXhwb25lbnRpYWxS
YW1wVG9WYWx1ZUF0VGltZSIgCitQQVNTIEV4ZWN1dGluZyAiMzogZXhwb25lbnRpYWxSYW1wVG9W
YWx1ZUF0VGltZSIgCitQQVNTIEV4ZWN1dGluZyAiNDogc2V0VGFyZ2V0QXRUaW1lIiAKK1BBU1Mg
RXhlY3V0aW5nICI1OiBzZXRUYXJnZXRBdFRpbWUiIAorUEFTUyBBdWRpdCByZXBvcnQgCitQQVNT
ID4gWzA6IGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lXSAgCitGQUlMIFggc2V0VmFsdWVDdXJ2ZSgu
Li4sIDAsIDAuMDEpLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKDIsIDAuMDIpOiB2YWx1ZSBhdCB0
aW1lIDAuMDEgaXMgbm90IGNsb3NlIHRvIDAuMyB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiAz
Ljk3MzdlLTggKFJlbEVycj0yLjMzMzMzMzMzMzMzMzMzMzUpLiBHb3QgMS4gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgWzA6IGxpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lXSAxIG91dCBvZiAxIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFsxOiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZV0g
IAorRkFJTCBYIHNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxMDAzOTA2MjUpLmxpbmVhclJhbXBU
b1ZhbHVlQXRUaW1lKDIsIDAuMDIpOiB2YWx1ZSBhdCB0aW1lIDAuMDEwMDc4MTI1IGlzIG5vdCBj
bG9zZSB0byAwLjMwNjY2NjY2NjY2NjY2Njggd2l0aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgMS44
MTQxZS04IChSZWxFcnI9Mi4yODYzNDUxMDg2OTU2NTA2KS4gR290IDEuMDA3ODEyNS4gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgWzE6IGxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lXSAxIG91dCBvZiAxIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA+IFsyOiBleHBvbmVudGlhbFJhbXBUb1Zh
bHVlQXRUaW1lXSAgCitGQUlMIFggc2V0VmFsdWVDdXJ2ZSguLi4sIDAsIDAuMDEpLmV4cG9uZW50
aWFsUmFtcFRvVmFsdWVBdFRpbWUoMiwgMC4wMik6IHZhbHVlIGF0IHRpbWUgMC4wMSBpcyBub3Qg
Y2xvc2UgdG8gMC4zIHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDMuOTczN2UtOCAoUmVsRXJy
PTIuMzMzMzMzMzMzMzMzMzMzNSkuIEdvdCAxLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK0ZBSUwgPCBbMjogZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZV0gMSBvdXQg
b2YgMSBhc3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKK1BBU1MgPiBbMzogZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZV0gIAorRkFJ
TCBYIHNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxMDAzOTA2MjUpLmV4cG9uZW50aWFsUmFtcFRv
VmFsdWVBdFRpbWUoMiwgMC4wMik6IHZhbHVlIGF0IHRpbWUgMC4wMTAwNzgxMjUgaXMgbm90IGNs
b3NlIHRvIDAuMzAyMjQwMjI4ODMxNTAzNjQgd2l0aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgNy44
Mjk0ZS04IChSZWxFcnI9Mi4zMDg2MjYzOTkxNTk3NjEpLiBHb3QgMS4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIDwgWzM6IGV4cG9uZW50aWFsUmFtcFRvVmFsdWVB
dFRpbWVdIDEgb3V0IG9mIDEgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTID4gWzQ6IHNldFRhcmdldEF0VGltZV0gIAorUEFT
UyAgIHNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxKS5zZXRUYXJnZXRBdFRpbWUoMiwgMC4wMiwg
MC4wMSk6IHZhbHVlIGF0IHRpbWUgMC4wMSBpcyAwLjMwMDAwMDAwMDAwMDAwMDA0IHdpdGhpbiBh
biBlcnJvciBvZiAxLjU4OTVlLTcuIAorUEFTUyA8IFs0OiBzZXRUYXJnZXRBdFRpbWVdIEFsbCBh
c3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gWzU6IHNldFRh
cmdldEF0VGltZV0gIAorRkFJTCBYIHNldFZhbHVlQ3VydmUoLi4uLCAwLCAwLjAxMDAzOTA2MjUp
LnNldFRhcmdldEF0VGltZSgyLCAwLjAyLCAwLjAxKTogdmFsdWUgYXQgdGltZSAwLjAxMDA3ODEy
NSBpcyBub3QgY2xvc2UgdG8gMC4zMDY2Mjc2NzE5MDA4MDA1NCB3aXRoaW4gYSByZWxhdGl2ZSBl
cnJvciBvZiAxLjMyNzhlLTcgKFJlbEVycj0wLjA0Mjk3NzEzODc1ODA5MzY5KS4gR290IDAuMzE5
ODA1NjUxOTAzMTUyNDcuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCA8IFs1OiBzZXRUYXJnZXRBdFRpbWVdIDEgb3V0IG9mIDEgYXNzZXJ0aW9ucyB3ZXJlIGZhaWxl
ZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMICMgQVVESVQgVEFT
SyBSVU5ORVIgRklOSVNIRUQ6IDUgb3V0IG9mIDYgdGFza3Mgd2VyZSBmYWlsZWQuIGFzc2VydF90
cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1lbmQuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlLWVu
ZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE5MWRiN2E0ZTQ5ZjJhN2M2NWQxZGZhYTM1NDVmNWEyMGQ0OTMz
NWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1lbmQuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBBdXRv
bWF0aW9uIEZvbGxvd2luZyBzZXRWYWx1ZUN1cnZlQXRUaW1lIEF1dG9tYXRpb25zCisgICAgPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9hdWRpby1wYXJhbS5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAg
PGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2Ft
cGxlUmF0ZSA9IDEyODAwOworICAgICAgLy8gU29tZSBzaG9ydCBkdXJhdGlvbiBiZWNhdXNlIHdl
IGRvbid0IG5lZWQgdG8gcnVuIHRoZSB0ZXN0IGZvciB2ZXJ5CisgICAgICAvLyBsb25nLgorICAg
ICAgbGV0IHRlc3REdXJhdGlvbkZyYW1lcyA9IDI1NjsKKyAgICAgIGxldCB0ZXN0RHVyYXRpb25T
ZWMgPSB0ZXN0RHVyYXRpb25GcmFtZXMgLyBzYW1wbGVSYXRlOworICAgICAgbGV0IGN1cnZlRHVy
YXRpb24gPSB0ZXN0RHVyYXRpb25TZWMgLyAyOworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5j
cmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIC8vIENvbmZpZ3VyYXRpb24gZm9yIGVhY2ggdGVz
dC4KKyAgICAgIC8vCisgICAgICAvLyBSZXF1aXJlZCBvcHRpb25zOgorICAgICAgLy8gICBhdXRv
bWF0aW9uIC0gTmFtZSBvZiBhdXRvbWF0aW9uIG1ldGhvZCB0byB0ZXN0CisgICAgICAvLyAgIHRp
bWUgICAgICAgLSBUaW1lIGZvciB0aGUgYXV0b21hdGlvbiBtZXRob2QuCisgICAgICAvLyBPcHRp
b25hbCBvcHRpb25zOgorICAgICAgLy8gICBleHRyYUR1cmF0aW9uIC0gZXh0cmEgdGltZSBmb3Ig
dGhlIGR1cmF0aW9uIG9mIHRoZSBzZXRWYWx1ZUN1cnZlCisgICAgICAvLyAgICAgICAgICAgICAg
ICAgICBkdXJhdGlvbi4gIERlZmF1bHQgaXMgMC4gVGhpcyBzaG91bGQgbm90IGJlIG9uIGEKKyAg
ICAgIC8vICAgICAgICAgICAgICAgICAgIHNhbXBsZSBmcmFtZSBib3VuZGFyeS4gVGhpcyBpcyBm
b3IgdGVzdGluZyB0aGF0CisgICAgICAvLyAgICAgICAgICAgICAgICAgICBjdXJ2ZXMgdGhhdCBk
b24ndCBlbmQgb24gYSBmcmFtZSBib3VuZGFyeSBhcmUgaGFuZGxlZAorICAgICAgLy8gICAgICAg
ICAgICAgICAgICAgY29ycmVjdGx5LgorICAgICAgLy8gICB0aHJlc2hvbGQgICAgIC0gRXJyb3Ig
dGhyZXNob2xkIGZvciB0aGUgdGVzdDsgZGVmYXVsdCBpcyAwLgorICAgICAgbGV0IHRlc3RDb25m
aWdzID0gWworICAgICAgICB7CisgICAgICAgICAgYXV0b21hdGlvbjogJ2xpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lJywKKyAgICAgICAgICB0aW1lOiB0ZXN0RHVyYXRpb25TZWMsCisgICAgICAgICAg
dGhyZXNob2xkOiAzLjk3MzdlLTgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGF1
dG9tYXRpb246ICdsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZScsCisgICAgICAgICAgdGltZTogdGVz
dER1cmF0aW9uU2VjLAorICAgICAgICAgIGV4dHJhRHVyYXRpb246IDAuNSAvIHNhbXBsZVJhdGUs
CisgICAgICAgICAgdGhyZXNob2xkOiAxLjgxNDFlLTgKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgIGF1dG9tYXRpb246ICdleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lJywKKyAg
ICAgICAgICB0aW1lOiB0ZXN0RHVyYXRpb25TZWMsCisgICAgICAgICAgdGhyZXNob2xkOiAzLjk3
MzdlLTgKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGF1dG9tYXRpb246ICdleHBv
bmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lJywKKyAgICAgICAgICB0aW1lOiB0ZXN0RHVyYXRpb25T
ZWMsCisgICAgICAgICAgZXh0cmFEdXJhdGlvbjogMC41IC8gc2FtcGxlUmF0ZSwKKyAgICAgICAg
ICB0aHJlc2hvbGQ6IDcuODI5NGUtOAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
YXV0b21hdGlvbjogJ3NldFRhcmdldEF0VGltZScsCisgICAgICAgICAgdGltZTogY3VydmVEdXJh
dGlvbiwKKyAgICAgICAgICB0aHJlc2hvbGQ6IDEuNTg5NWUtNworICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgYXV0b21hdGlvbjogJ3NldFRhcmdldEF0VGltZScsCisgICAgICAgICAg
dGltZTogY3VydmVEdXJhdGlvbiArIDAuNSAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgZXh0cmFE
dXJhdGlvbjogMC41IC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICB0aHJlc2hvbGQ6IDEuMzI3OGUt
NworICAgICAgICB9CisgICAgICBdOworCisgICAgICAvLyBEZWZpbmUgdGVzdHMgZnJvbSB0aGUg
Y29uZmlncworICAgICAgZm9yIChrIGluIHRlc3RDb25maWdzKSB7CisgICAgICAgIGF1ZGl0LmRl
ZmluZShrICsgJzogJyArIHRlc3RDb25maWdzW2tdLmF1dG9tYXRpb24sIChmdW5jdGlvbihjb25m
aWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh0YXNrLCBzaG91bGQpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICBydW5UZXN0KHNob3VsZCwgY29uZmlnKS50aGVuKCgp
ID0+IHRhc2suZG9uZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICAgICAgICAgIH0pKHRlc3RDb25maWdzW2tdKSk7CisgICAgICB9CisKKyAgICAgIGF1ZGl0LnJ1
bigpOworCisgICAgICBmdW5jdGlvbiBydW5UZXN0KHNob3VsZCwgb3B0aW9ucykgeworICAgICAg
ICAvLyBGb3IgdGhlIHRlc3QsIHVzZSBhIGdhaW4gbm9kZSB3aXRoIGEgY29uc3RhbnQgaW5wdXQg
dG8gdGVzdCB0aGUKKyAgICAgICAgLy8gYXV0b21hdGlvbnMuCisgICAgICAgIGxldCBjb250ZXh0
ID0KKyAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHRlc3REdXJhdGlvbkZy
YW1lcywgc2FtcGxlUmF0ZSk7CisgICAgICAgIGxldCBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1
ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZm
ZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5sb29wID0gdHJ1ZTsKKworICAgICAg
ICBsZXQgZ2FpbiA9IGNvbnRleHQuY3JlYXRlR2FpbigpOworCisgICAgICAgIC8vIEFueSB2YWxp
ZCBjdXJ2ZSBpcyBvay4gIFdlIG9ubHkgdXNlIHRoZSBsYXN0IHZhbHVlIGZvciB0ZXN0aW5nLgor
ICAgICAgICBsZXQgY3VydmUgPSBbMCwgMiwgMC4zXTsKKyAgICAgICAgbGV0IGFjdHVhbER1cmF0
aW9uID0gY3VydmVEdXJhdGlvbiArIChvcHRpb25zLmV4dHJhRHVyYXRpb24gfHwgMCk7CisgICAg
ICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKAorICAgICAgICAgICAgRmxvYXQzMkFy
cmF5LmZyb20oY3VydmUpLCAwLCBhY3R1YWxEdXJhdGlvbik7CisKKyAgICAgICAgLy8gUnVuIHRo
ZSBkZXNpcmVkIHRlc3QgYXV0b21hdGlvbi4gIFRoZSBleHRyYSBwYXJhbWV0ZXIgKDAuMDEpIGlz
IG9ubHkKKyAgICAgICAgLy8gdXNlZCBmb3Igc2V0VGFyZ2V0QXRUaW1lIHRlc3RzOyBpdCdzIGln
bm9yZWQgZm9yIG90aGVyIHRlc3RzLgorICAgICAgICBsZXQgYXV0b21hdGlvblZhbHVlID0gMjsK
KyAgICAgICAgZ2Fpbi5nYWluW29wdGlvbnMuYXV0b21hdGlvbl0oYXV0b21hdGlvblZhbHVlLCBv
cHRpb25zLnRpbWUsIDAuMDEpOworCisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOworICAg
ICAgICBnYWluLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisKKyAgICAgICAgc291cmNl
LnN0YXJ0KCk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgIGxldCByZXN1bHQgPSByZXN1bHRC
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisKKyAgICAgICAgICAvLyBPbmx5IG5lZWQgdG8gdmVy
aWZ5IHRoYXQgdGhlIHJhbXAgc3RhcnRlZCBhdCB0aGUgcmlnaHQKKyAgICAgICAgICAvLyB2YWx1
ZS4gRmlndXJlIHRoZSBuZWFyZXN0IHNhbXBsZSBmcmFtZSB0byB0aGUgZW5kIGN1cnZlLgorICAg
ICAgICAgIGxldCBjdXJ2ZUVuZEZyYW1lID0gTWF0aC5jZWlsKGFjdHVhbER1cmF0aW9uICogc2Ft
cGxlUmF0ZSk7CisKKyAgICAgICAgICBsZXQgZXhwZWN0ZWRSZXN1bHQgPSBjdXJ2ZVtjdXJ2ZS5s
ZW5ndGggLSAxXTsKKworICAgICAgICAgIC8vIERldGVybWluZSB0aGUgZXhwZWN0ZWQgdmFsdWUg
YWZ0ZXIgdGhlIGVuZCBvZiB0aGUgc2V0VmFsdWVDdXJ2ZQorICAgICAgICAgIC8vIGV2ZW50Lgor
ICAgICAgICAgIGlmIChvcHRpb25zLmF1dG9tYXRpb24gPT0gJ2xpbmVhclJhbXBUb1ZhbHVlQXRU
aW1lJykgeworICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSBhdWRpb1BhcmFtTGluZWFyUmFt
cCgKKyAgICAgICAgICAgICAgICBjdXJ2ZUVuZEZyYW1lIC8gc2FtcGxlUmF0ZSwgY3VydmVbY3Vy
dmUubGVuZ3RoIC0gMV0sCisgICAgICAgICAgICAgICAgYWN0dWFsRHVyYXRpb24sIGF1dG9tYXRp
b25WYWx1ZSwgdGVzdER1cmF0aW9uU2VjKTsKKyAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMu
YXV0b21hdGlvbiA9PSAnZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZScpIHsKKyAgICAgICAg
ICAgIGV4cGVjdGVkUmVzdWx0ID0gYXVkaW9QYXJhbUV4cG9uZW50aWFsUmFtcCgKKyAgICAgICAg
ICAgICAgICBjdXJ2ZUVuZEZyYW1lIC8gc2FtcGxlUmF0ZSwgY3VydmVbY3VydmUubGVuZ3RoIC0g
MV0sCisgICAgICAgICAgICAgICAgYWN0dWFsRHVyYXRpb24sIGF1dG9tYXRpb25WYWx1ZSwgdGVz
dER1cmF0aW9uU2VjKTsKKyAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuYXV0b21hdGlvbiA9
PSAnc2V0VGFyZ2V0QXRUaW1lJykgeworICAgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSBhdWRp
b1BhcmFtU2V0VGFyZ2V0KAorICAgICAgICAgICAgICAgIGN1cnZlRW5kRnJhbWUgLyBzYW1wbGVS
YXRlLCBjdXJ2ZVtjdXJ2ZS5sZW5ndGggLSAxXSwKKyAgICAgICAgICAgICAgICBhY3R1YWxEdXJh
dGlvbiwgYXV0b21hdGlvblZhbHVlLCAwLjAxKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBs
ZXQgbWVzc2FnZSA9ICdzZXRWYWx1ZUN1cnZlKC4uLiwgJyArIDAgKyAnLCAnICsgYWN0dWFsRHVy
YXRpb24gKworICAgICAgICAgICAgICAnKS4nICsgb3B0aW9ucy5hdXRvbWF0aW9uICsgJygyLCAn
ICsgdGVzdER1cmF0aW9uU2VjOworCisgICAgICAgICAgaWYgKG9wdGlvbnMuYXV0b21hdGlvbiA9
PSAnc2V0VGFyZ2V0QXRUaW1lJykKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gJywgMC4wMSc7Cisg
ICAgICAgICAgbWVzc2FnZSArPSAnKSc7CisKKyAgICAgICAgICBzaG91bGQoCisgICAgICAgICAg
ICAgIHJlc3VsdFtjdXJ2ZUVuZEZyYW1lXSwKKyAgICAgICAgICAgICAgbWVzc2FnZSArICc6IHZh
bHVlIGF0IHRpbWUgJyArIGN1cnZlRW5kRnJhbWUgLyBzYW1wbGVSYXRlKQorICAgICAgICAgICAg
ICAuYmVDbG9zZVRvKGV4cGVjdGVkUmVzdWx0LCB7dGhyZXNob2xkOiBvcHRpb25zLnRocmVzaG9s
ZCB8fCAwfSk7CisgICAgICAgIH0pOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiBsaW5lYXJS
YW1wVmFsdWUodCwgdDAsIHYwLCB0MSwgdjEpIHsKKyAgICAgICAgcmV0dXJuIHYwICsgKHYxIC0g
djApICogKHQgLSB0MCkgLyAodDEgLSB0MCk7CisgICAgICB9CisKKyAgICAgIGZ1bmN0aW9uIGV4
cG9uZW50aWFsUmFtcFZhbHVlKHQsIHQwLCB2MCwgdDEsIHYxKSB7CisgICAgICAgIHJldHVybiB2
MCAqIE1hdGgucG93KHYxIC8gdjAsICh0IC0gdDApIC8gKHQxIC0gdDApKTsKKyAgICAgIH0KKwor
ICAgICAgZnVuY3Rpb24gc2V0VGFyZ2V0VmFsdWUodCwgdDAsIHYwLCB2MSwgdGltZUNvbnN0YW50
KSB7CisgICAgICAgIHJldHVybiB2MSArICh2MCAtIHYxKSAqIE1hdGguZXhwKC0odCAtIHQwKSAv
IHRpbWVDb25zdGFudCkKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFt
LXNldFZhbHVlQ3VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYWZmOGFiMzU4ZGYxMDgxNmZkZTJhMDI1MzE3OTAzOTM4YzFj
MDFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9h
dWRpb3BhcmFtLXNldFZhbHVlQ3VydmUtZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0OCBAQAorQ09OU09MRSBXQVJOSU5HOiBsaW5lIDE0ODogRGVsYXkuZGVsYXlUaW1lLnNldFZh
bHVlQ3VydmVBdFRpbWUgdmFsdWUgNSBvdXRzaWRlIG5vbWluYWwgcmFuZ2UgWzAsIDFdOyB2YWx1
ZSB3aWxsIGJlIGNsYW1wZWQuCitUaGlzIGlzIGEgdGVzdGhhcm5lc3MuanMtYmFzZWQgdGVzdC4K
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELgorUEFTUyA+IFtzZXRWYWx1ZUN1cnZl
XSAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCAwLjAxMjUsIDAuMDEyNSkgZGlk
IG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAgc2V0VmFsdWVBdFRpbWUoMSwgMC4wMTg3
NTAwMDAwMDAwMDAwMDMpIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1
dGUgJ3NldFZhbHVlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IHNldFZhbHVlQXRUaW1lKDEsIDAu
MDE4NzUpIG92ZXJsYXBzIHNldFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjAxMjUsIDAuMDEyNSki
LgorUEFTUyAgIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKDEsIDAuMDE4NzUwMDAwMDAwMDAwMDAz
KSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkZhaWxlZCB0byBleGVjdXRlICdsaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZScgb24gJ0F1ZGlvUGFyYW0nOiBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgx
LCAwLjAxODc1KSBvdmVybGFwcyBzZXRWYWx1ZUN1cnZlQXRUaW1lKC4uLiwgMC4wMTI1LCAwLjAx
MjUpIi4KK1BBU1MgICBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDEsIDAuMDE4NzUwMDAw
MDAwMDAwMDAzKSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkZhaWxlZCB0byBleGVjdXRlICdl
eHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IGV4cG9uZW50aWFs
UmFtcFRvVmFsdWUoMSwgMC4wMTg3NSkgb3ZlcmxhcHMgc2V0VmFsdWVDdXJ2ZUF0VGltZSguLi4s
IDAuMDEyNSwgMC4wMTI1KSIuCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDEsIDAuMDE4NzUwMDAw
MDAwMDAwMDAzLCAxKSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkZhaWxlZCB0byBleGVjdXRl
ICdzZXRUYXJnZXRBdFRpbWUnIG9uICdBdWRpb1BhcmFtJzogc2V0VGFyZ2V0QXRUaW1lKDEsIDAu
MDE4NzUsIDEpIG92ZXJsYXBzIHNldFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjAxMjUsIDAuMDEy
NSkiLgorUEFTUyAgIHNldFZhbHVlQXRUaW1lKDEsIDAuMDI2MjUwMDAwMDAwMDAwMDAyKSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgPCBbc2V0VmFsdWVDdXJ2ZV0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgNiBhc3NlcnRpb25zKQorUEFTUyA+IFthdXRvbWF0aW9uc10g
CitQQVNTICAgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoMSwgMC4wMTI1KSBkaWQgbm90IHRocm93
IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDEsIDAu
MDI1KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUo
MSwgMC4wMzc1MDAwMDAwMDAwMDAwMDYsIDAuMSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24u
CitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShjdXJ2ZSwgMC4wNSwgMC4xKSBkaWQgbm90IHRo
cm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCAwLjAw
NjI1LCAwLjAxKSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkZhaWxlZCB0byBleGVjdXRlICdz
ZXRWYWx1ZUN1cnZlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IHNldFZhbHVlQ3VydmVBdFRpbWUo
Li4uLCAwLjAwNjI1LCAwLjAxKSBvdmVybGFwcyBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgxLCAw
LjAxMjUpIi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCAwLjAxODc1MDAwMDAw
MDAwMDAwMywgMC4wMSkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJGYWlsZWQgdG8gZXhlY3V0
ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24gJ0F1ZGlvUGFyYW0nOiBzZXRWYWx1ZUN1cnZlQXRU
aW1lKC4uLiwgMC4wMTg3NSwgMC4wMSkgb3ZlcmxhcHMgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZSgx
LCAwLjAyNSkiLgorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoY3VydmUsIDAuMDMxMjUsIDAu
MDEpIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVl
Q3VydmVBdFRpbWUnIG9uICdBdWRpb1BhcmFtJzogc2V0VmFsdWVDdXJ2ZUF0VGltZSguLi4sIDAu
MDMxMjUsIDAuMDEpIG92ZXJsYXBzIHNldFRhcmdldEF0VGltZSgxLCAwLjAzNzUwMDAwMDAwMDAw
MDAxLCAwLjEpIi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCAwLjA0Mzc1MDAw
MDAwMDAwMDAwNCwgMC4wMSkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJGYWlsZWQgdG8gZXhl
Y3V0ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24gJ0F1ZGlvUGFyYW0nOiBzZXRWYWx1ZUN1cnZl
QXRUaW1lKC4uLiwgMC4wNDM3NSwgMC4wMSkgb3ZlcmxhcHMgc2V0VmFsdWVDdXJ2ZUF0VGltZSgu
Li4sIDAuMDUsIDAuMSkiLgorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoW05hTiwgTmFOXSwg
MC4wNDM3NTAwMDAwMDAwMDAwMDQsIDAuMDEpIHRocmV3IFR5cGVFcnJvcjogIkZhaWxlZCB0byBl
eGVjdXRlICdzZXRWYWx1ZUN1cnZlQXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IFRoZSBwcm92aWRl
ZCBmbG9hdCB2YWx1ZSBpcyBub24tZmluaXRlLiIuCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGlt
ZShbMSwgSW5maW5pdHldLCAwLjA0Mzc1MDAwMDAwMDAwMDAwNCwgMC4wMSkgdGhyZXcgVHlwZUVy
cm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVlQ3VydmVBdFRpbWUnIG9uICdBdWRpb1Bh
cmFtJzogVGhlIHByb3ZpZGVkIGZsb2F0IHZhbHVlIGlzIG5vbi1maW5pdGUuIi4KK1BBU1MgICBk
ZWxheVRpbWUuc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwgNV0sIDAuMDQzNzUwMDAwMDAwMDAwMDA0
LCAwLjAxKSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBkZWxheVRpbWUuc2V0
VmFsdWVDdXJ2ZUF0VGltZShbMSwgNSwgSW5maW5pdHldLCAwLjA0Mzc1MDAwMDAwMDAwMDAwNCwg
MC4wMSkgdGhyZXcgVHlwZUVycm9yOiAiRmFpbGVkIHRvIGV4ZWN1dGUgJ3NldFZhbHVlQ3VydmVB
dFRpbWUnIG9uICdBdWRpb1BhcmFtJzogVGhlIHByb3ZpZGVkIGZsb2F0IHZhbHVlIGlzIG5vbi1m
aW5pdGUuIi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCAwLjAzMTQxNTkyNjUz
NTg5NzkzNCwgMC4wMSkgdGhyZXcgTm90U3VwcG9ydGVkRXJyb3I6ICJGYWlsZWQgdG8gZXhlY3V0
ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24gJ0F1ZGlvUGFyYW0nOiBzZXRWYWx1ZUN1cnZlQXRU
aW1lKC4uLiwgMC4wMzE0MTU5MjY1MzU4OTc5MywgMC4wMSkgb3ZlcmxhcHMgc2V0VGFyZ2V0QXRU
aW1lKDEsIDAuMDM3NTAwMDAwMDAwMDAwMDEsIDAuMSkiLgorUEFTUyA8IFthdXRvbWF0aW9uc10g
QWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMTMgYXNzZXJ0aW9ucykKK1BBU1MgPiBbY2F0
Y2gtZXhjZXB0aW9uXSAKK1BBU1MgICBIYW5kbGVkIHNldFZhbHVlQ3VydmUgZXhjZXB0aW9uIHNv
IG91dHB1dCBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAxLgorUEFTUyA8IFtjYXRjaC1leGNl
cHRpb25dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykKK1BBU1Mg
PiBbc3RhcnQtZW5kXSAKK1BBU1MgICBzZXRWYWx1ZUF0VGltZSgxLCAwKSBkaWQgbm90IHRocm93
IGFuIGV4Y2VwdGlvbi4KK1BBU1MgICBsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZSgwLCAwLjAwMjUp
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUo
Li4uLCAwLjAwMjUsIDAuMDAyNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAg
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgxLCAwLjAwNzUpIGRpZCBub3QgdGhyb3cgYW4g
ZXhjZXB0aW9uLgorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoLi4uLCAwLjAwNzUsIDAuMDAy
NSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGlt
ZSguLi4sIDAuMDEsIDAuMDAyNSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTICAg
c2V0VmFsdWVBdFRpbWUoMCwgMC4wMTI1KSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BB
U1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKC4uLiwgMC4wMTI1LCAwLjAwMjUpIGRpZCBub3QgdGhy
b3cgYW4gZXhjZXB0aW9uLgorUEFTUyAgIHNldFRhcmdldEF0VGltZSgxLCAwLjAxNTAwMDAwMDAw
MDAwMDAwMSwgMSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTIDwgW3N0YXJ0LWVu
ZF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgOSBhc3NlcnRpb25zKQorUEFTUyA+IFtj
dXJ2ZSBsZW5ndGhzXSAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFtdLCAwLCAwLjAxKSB0
aHJldyBJbnZhbGlkU3RhdGVFcnJvcjogIkZhaWxlZCB0byBleGVjdXRlICdzZXRWYWx1ZUN1cnZl
QXRUaW1lJyBvbiAnQXVkaW9QYXJhbSc6IFRoZSBjdXJ2ZSBsZW5ndGggcHJvdmlkZWQgKDApIGlz
IGxlc3MgdGhhbiB0aGUgbWluaW11bSBib3VuZCAoMikuIi4KK1BBU1MgICBzZXRWYWx1ZUN1cnZl
QXRUaW1lKFsxXSwgMCwgMC4wMSkgdGhyZXcgSW52YWxpZFN0YXRlRXJyb3I6ICJGYWlsZWQgdG8g
ZXhlY3V0ZSAnc2V0VmFsdWVDdXJ2ZUF0VGltZScgb24gJ0F1ZGlvUGFyYW0nOiBUaGUgY3VydmUg
bGVuZ3RoIHByb3ZpZGVkICgxKSBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gYm91bmQgKDIpLiIu
CitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwyXSwgMCwgMC4wMSkgZGlkIG5vdCB0aHJv
dyBhbiBleGNlcHRpb24uCitQQVNTIDwgW2N1cnZlIGxlbmd0aHNdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDMgYXNzZXJ0aW9ucykKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5J
U0hFRDogNSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LgorSGFybmVzczogdGhlIHRlc3QgcmFuIHRv
IGNvbXBsZXRpb24uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRUaW1lLWludGVycG9sYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS9hdWRpb3BhcmFtLXNldFZhbHVl
Q3VydmVBdFRpbWUtaW50ZXJwb2xhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc3Zjdl
ZjhkMDFlYmViNjk5ZjMzZjBiMGY3ODQ5MmNjN2JhMjFjYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRU
aW1lLWludGVycG9sYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNzUgQEAKKworUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorUEFTUyBFeGVjdXRpbmcgIjA6Y3VydmU9Mixk
dXJhdGlvbj0zMDAiIAorUEFTUyBFeGVjdXRpbmcgIjE6Y3VydmU9MyxkdXJhdGlvbj0zMDAiIAor
UEFTUyBFeGVjdXRpbmcgIjI6Y3VydmU9MTYsZHVyYXRpb249MzAwIiAKK1BBU1MgRXhlY3V0aW5n
ICIzOmN1cnZlPTEwMCxkdXJhdGlvbj0zMDAiIAorUEFTUyBFeGVjdXRpbmcgIjQ6Y3VydmU9Mixk
dXJhdGlvbj0wLjI1IiAKK1BBU1MgRXhlY3V0aW5nICI1OmN1cnZlPTIsZHVyYXRpb249MiIgCitQ
QVNTIEV4ZWN1dGluZyAiNjpjdXJ2ZT04LGR1cmF0aW9uPTIiIAorUEFTUyBFeGVjdXRpbmcgIjc6
Y3VydmU9MTAwMCxkdXJhdGlvbj0xMjgwMCIgCitQQVNTIEV4ZWN1dGluZyAiY3JidWctNDQxNDcx
IiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFswOmN1cnZlPTIsZHVyYXRpb249MzAwXSAg
CitQQVNTICAgTGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDExNzE4NzU6IENoZWNrOiBDdXJ2ZSBlbmQg
dGltZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNTICAgTGVuZ3RoIDIsIGR1cmF0
aW9uIDAuMDExNzE4NzU6IENoZWNrOiBGdWxsIGdhaW4gc3RhcnQgdGltZSBpcyBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gMS4gCitQQVNTICAgTGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDExNzE4NzU6IENo
ZWNrOiBGdWxsIGdhaW4gc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4w
MjE3MTg3NTAwMDAwMDAwMDIuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAyLCBkdXJhdGlvbiAwLjAx
MTcxODc1OiBTTlIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDE3MS4yMDYuIAorUEFTUyAg
IEN1cnZlIGxlbmd0aCAyLCBkdXJhdGlvbiAwLjAxMTcxODc1OiBNYXggZGlmZmVyZW5jZSBpcyBs
ZXNzIHRoYW4gb3IgZXF1YWwgdG8gNS45NjA1ZS04LiAKK1BBU1MgPCBbMDpjdXJ2ZT0yLGR1cmF0
aW9uPTMwMF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBhc3NlcnRpb25zKSAKK1BB
U1MgPiBbMTpjdXJ2ZT0zLGR1cmF0aW9uPTMwMF0gIAorUEFTUyAgIExlbmd0aCAzLCBkdXJhdGlv
biAwLjAxMTcxODc1OiBDaGVjazogQ3VydmUgZW5kIHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIDEuIAorUEFTUyAgIExlbmd0aCAzLCBkdXJhdGlvbiAwLjAxMTcxODc1OiBDaGVjazogRnVs
bCBnYWluIHN0YXJ0IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAorUEFTUyAgIExl
bmd0aCAzLCBkdXJhdGlvbiAwLjAxMTcxODc1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUg
aXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMDIxNzE4NzUwMDAwMDAwMDAyLiAKK1BBU1Mg
ICBDdXJ2ZSBsZW5ndGggMywgZHVyYXRpb24gMC4wMTE3MTg3NTogU05SIGlzIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byAxNzEuMjA2LiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGggMywgZHVyYXRpb24g
MC4wMTE3MTg3NTogTWF4IGRpZmZlcmVuY2UgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUuOTYw
NWUtOC4gCitQQVNTIDwgWzE6Y3VydmU9MyxkdXJhdGlvbj0zMDBdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9ucykgCitQQVNTID4gWzI6Y3VydmU9MTYsZHVyYXRpb249
MzAwXSAgCitQQVNTICAgTGVuZ3RoIDE2LCBkdXJhdGlvbiAwLjAxMTcxODc1OiBDaGVjazogQ3Vy
dmUgZW5kIHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAorUEFTUyAgIExlbmd0aCAx
NiwgZHVyYXRpb24gMC4wMTE3MTg3NTogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lIGlzIGxl
c3MgdGhhbiBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMTYsIGR1cmF0aW9uIDAuMDEx
NzE4NzU6IENoZWNrOiBGdWxsIGdhaW4gc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gMC4wMjE3MTg3NTAwMDAwMDAwMDIuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAxNiwgZHVy
YXRpb24gMC4wMTE3MTg3NTogU05SIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxNzAuODky
LiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGggMTYsIGR1cmF0aW9uIDAuMDExNzE4NzU6IE1heCBkaWZm
ZXJlbmNlIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byA1Ljk2MDVlLTguIAorUEFTUyA8IFsyOmN1
cnZlPTE2LGR1cmF0aW9uPTMwMF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBhc3Nl
cnRpb25zKSAKK1BBU1MgPiBbMzpjdXJ2ZT0xMDAsZHVyYXRpb249MzAwXSAgCitQQVNTICAgTGVu
Z3RoIDEwMCwgZHVyYXRpb24gMC4wMTE3MTg3NTogQ2hlY2s6IEN1cnZlIGVuZCB0aW1lIGlzIGxl
c3MgdGhhbiBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMTAwLCBkdXJhdGlvbiAwLjAx
MTcxODc1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFs
IHRvIDEuIAorUEFTUyAgIExlbmd0aCAxMDAsIGR1cmF0aW9uIDAuMDExNzE4NzU6IENoZWNrOiBG
dWxsIGdhaW4gc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4wMjE3MTg3
NTAwMDAwMDAwMDIuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAxMDAsIGR1cmF0aW9uIDAuMDExNzE4
NzU6IFNOUiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTY4LjcxMi4gCitQQVNTICAgQ3Vy
dmUgbGVuZ3RoIDEwMCwgZHVyYXRpb24gMC4wMTE3MTg3NTogTWF4IGRpZmZlcmVuY2UgaXMgbGVz
cyB0aGFuIG9yIGVxdWFsIHRvIDEuMTkyMWUtNy4gCitQQVNTIDwgWzM6Y3VydmU9MTAwLGR1cmF0
aW9uPTMwMF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBhc3NlcnRpb25zKSAKK1BB
U1MgPiBbNDpjdXJ2ZT0yLGR1cmF0aW9uPTAuMjVdICAKK1BBU1MgICBMZW5ndGggMiwgZHVyYXRp
b24gMC4wMDAwMDk3NjU2MjU6IENoZWNrOiBDdXJ2ZSBlbmQgdGltZSBpcyBsZXNzIHRoYW4gb3Ig
ZXF1YWwgdG8gMS4gCitQQVNTICAgTGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDA5NzY1NjI1OiBD
aGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAor
UEFTUyAgIExlbmd0aCAyLCBkdXJhdGlvbiAwLjAwMDAwOTc2NTYyNTogQ2hlY2s6IEZ1bGwgZ2Fp
biBzdGFydCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLjAxMDAwOTc2NTYyNS4g
CitQQVNTICAgQ3VydmUgbGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDA5NzY1NjI1OiBTTlIgaXMg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEwMDAwLiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGggMiwg
ZHVyYXRpb24gMC4wMDAwMDk3NjU2MjU6IE1heCBkaWZmZXJlbmNlIGlzIGxlc3MgdGhhbiBvciBl
cXVhbCB0byAwLiAKK1BBU1MgPCBbNDpjdXJ2ZT0yLGR1cmF0aW9uPTAuMjVdIEFsbCBhc3NlcnRp
b25zIHBhc3NlZC4gKHRvdGFsIDUgYXNzZXJ0aW9ucykgCitQQVNTID4gWzU6Y3VydmU9MixkdXJh
dGlvbj0yXSAgCitQQVNTICAgTGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDc4MTI1OiBDaGVjazog
Q3VydmUgZW5kIHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAorUEFTUyAgIExlbmd0
aCAyLCBkdXJhdGlvbiAwLjAwMDA3ODEyNTogQ2hlY2s6IEZ1bGwgZ2FpbiBzdGFydCB0aW1lIGlz
IGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMiwgZHVyYXRpb24gMC4w
MDAwNzgxMjU6IENoZWNrOiBGdWxsIGdhaW4gc3RhcnQgdGltZSBpcyBncmVhdGVyIHRoYW4gb3Ig
ZXF1YWwgdG8gMC4wMTAwNzgxMjUuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCAyLCBkdXJhdGlvbiAw
LjAwMDA3ODEyNTogU05SIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxMDAwMC4gCitQQVNT
ICAgQ3VydmUgbGVuZ3RoIDIsIGR1cmF0aW9uIDAuMDAwMDc4MTI1OiBNYXggZGlmZmVyZW5jZSBp
cyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4gCitQQVNTIDwgWzU6Y3VydmU9MixkdXJhdGlvbj0y
XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1IGFzc2VydGlvbnMpIAorUEFTUyA+IFs2
OmN1cnZlPTgsZHVyYXRpb249Ml0gIAorUEFTUyAgIExlbmd0aCA4LCBkdXJhdGlvbiAwLjAwMDA3
ODEyNTogQ2hlY2s6IEN1cnZlIGVuZCB0aW1lIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxLiAK
K1BBU1MgICBMZW5ndGggOCwgZHVyYXRpb24gMC4wMDAwNzgxMjU6IENoZWNrOiBGdWxsIGdhaW4g
c3RhcnQgdGltZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMS4gCitQQVNTICAgTGVuZ3RoIDgs
IGR1cmF0aW9uIDAuMDAwMDc4MTI1OiBDaGVjazogRnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIDAuMDEwMDc4MTI1LiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGgg
OCwgZHVyYXRpb24gMC4wMDAwNzgxMjU6IFNOUiBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8g
MTAwMDAuIAorUEFTUyAgIEN1cnZlIGxlbmd0aCA4LCBkdXJhdGlvbiAwLjAwMDA3ODEyNTogTWF4
IGRpZmZlcmVuY2UgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDAuIAorUEFTUyA8IFs2OmN1cnZl
PTgsZHVyYXRpb249Ml0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNSBhc3NlcnRpb25z
KSAKK1BBU1MgPiBbNzpjdXJ2ZT0xMDAwLGR1cmF0aW9uPTEyODAwXSAgCitQQVNTICAgTGVuZ3Ro
IDEwMDAsIGR1cmF0aW9uIDAuNTogQ2hlY2s6IEN1cnZlIGVuZCB0aW1lIGlzIGxlc3MgdGhhbiBv
ciBlcXVhbCB0byAxLiAKK1BBU1MgICBMZW5ndGggMTAwMCwgZHVyYXRpb24gMC41OiBDaGVjazog
RnVsbCBnYWluIHN0YXJ0IHRpbWUgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEuIAorUEFTUyAg
IExlbmd0aCAxMDAwLCBkdXJhdGlvbiAwLjU6IENoZWNrOiBGdWxsIGdhaW4gc3RhcnQgdGltZSBp
cyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC41MS4gCitQQVNTICAgQ3VydmUgbGVuZ3RoIDEw
MDAsIGR1cmF0aW9uIDAuNTogU05SIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxNTIuNzg0
LiAKK1BBU1MgICBDdXJ2ZSBsZW5ndGggMTAwMCwgZHVyYXRpb24gMC41OiBNYXggZGlmZmVyZW5j
ZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNS45NjA1ZS04LiAKK1BBU1MgPCBbNzpjdXJ2ZT0x
MDAwLGR1cmF0aW9uPTEyODAwXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1IGFzc2Vy
dGlvbnMpIAorUEFTUyA+IFtjcmJ1Zy00NDE0NzFdICAKK1BBU1MgICBDdXJ2ZSB2YWx1ZSBhdCB0
aW1lIDAuNyBpcyBlcXVhbCB0byAtMS4gCitQQVNTICAgQ3VydmUgdmFsdWUgYXQgdGltZSAwLjc5
OTk5OTk5OTk5OTk5OTkgaXMgMCB3aXRoaW4gYW4gZXJyb3Igb2YgNC40NDA4OTIwOTg1MDA2MjZl
LTE2LiAKK1BBU1MgICBDdXJ2ZSB2YWx1ZSBhdCB0aW1lIDAuODk5OTk5OTk5OTk5OTk5OSBpcyBl
cXVhbCB0byAxLiAKK1BBU1MgPCBbY3JidWctNDQxNDcxXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAzIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVE
OiA5IHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tc2V0VmFsdWVDdXJ2ZUF0VGltZS1pbnRlcnBv
bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0t
c2V0VmFsdWVDdXJ2ZUF0VGltZS1pbnRlcnBvbGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIyZjZj
ZmVhZTExNmExNzc0MWI0YTU1ZjY1M2EzZDNhMTM5ZGJhMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS1zZXRWYWx1ZUN1cnZlQXRU
aW1lLWludGVycG9sYXRpb24uaHRtbApAQCAtMCwwICsxLDMxNyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgVGVzdCBJbnRlcnBvbGF0aW9u
IGZvciBBdWRpb1BhcmFtLnNldFZhbHVlQ3VydmVBdFRpbWUKKyAgICA8L3RpdGxlPgorICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0IElu
dGVycG9sYXRpb24gZm9yIEF1ZGlvUGFyYW0uc2V0VmFsdWVDdXJ2ZUF0VGltZQorICAgIDwvdGl0
bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29k
ZSI+CisgICAgICAvLyBQbGF5IGEgY29uc3RhbnQgc2lnbmFsIHRocm91Z2ggYSBnYWluIG5vZGUg
dGhhdCBpcyBhdXRvbWF0ZWQgdXNpbmcKKyAgICAgIC8vIHNldFZhbHVlQ3VydmVBdFRpbWUgd2l0
aCBhIDItZWxlbWVudCBjdXJ2ZS4gIFRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKKyAgICAgIC8vIGxp
bmVhciBjaGFuZ2UuCisKKyAgICAgIC8vIENob29zZSBhIHNhbXBsZSByYXRlIHRoYXQgaXMgYSBt
dWx0aXBsZSBvZiAxMjgsIHRoZSByZW5kZXJpbmcgcXVhbnR1bQorICAgICAgLy8gc2l6ZS4gIFRo
aXMgbWFrZXMgdGhlIG1hdGggd29yayBvdXQgdG8gYmUgbmljZSBudW1iZXJzLgorICAgICAgbGV0
IHNhbXBsZVJhdGUgPSAyNTYwMDsKKyAgICAgIGxldCB0ZXN0RHVyYXRpb25TZWMgPSAxOworICAg
ICAgbGV0IHRlc3REdXJhdGlvbkZyYW1lcyA9IHRlc3REdXJhdGlvblNlYyAqIHNhbXBsZVJhdGU7
CisKKyAgICAgIC8vIFdoZXJlIHRoZSBjdXJ2ZSBzdGFydHMgYW5kIGl0cyBkdXJhdGlvbi4gIFRo
aXMgTVVTVCBiZSBsZXNzIHRoYW4gdGhlCisgICAgICAvLyB0b3RhbCByZW5kZXJpbmcgdGltZS4K
KyAgICAgIGxldCBjdXJ2ZVN0YXJ0VGltZSA9IDI1NiAvIHNhbXBsZVJhdGU7CisgICAgICBsZXQg
Y3VydmVEdXJhdGlvbiA9IDMwMCAvIHNhbXBsZVJhdGU7CisgICAgICA7CisgICAgICBsZXQgY3Vy
dmVWYWx1ZSA9IDAuNzU7CisKKyAgICAgIC8vIEF0IHRoaXMgdGltZSwgdGhlIGdhaW4gbm9kZSBn
b2VzIHRvIGdhaW4gMS4gIFRoaXMgaXMgdXNlZCB0byBtYWtlIHN1cmUKKyAgICAgIC8vIHRoZSB2
YWx1ZSBjdXJ2ZSBpcyBwcm9wYWdhdGVkIGNvcnJlY3RseSB1bnRpbCB0aGUgbmV4dCBldmVudC4K
KyAgICAgIGxldCBmdWxsR2FpblRpbWUgPSAwLjc1OworCisgICAgICAvLyBUaHJlc2hvbGRzIHVz
ZSB0byBkZXRlcm1pbmUgaWYgdGhlIHRlc3QgcGFzc2VzOyB0aGVzZSBhcmUKKyAgICAgIC8vIGV4
cGVyaW1lbnRhbGx5IGRldGVybWluZWQuICBUaGUgU05SIGJldHdlZW4gdGhlIGFjdHVhbCBhbmQg
ZXhwZWN0ZWQKKyAgICAgIC8vIHJlc3VsdCBzaG91bGQgYmUgYXQgbGVhc3QgfHNuclRocmVzaG9s
ZHwuICBUaGUgbWF4aW11bSBkaWZmZXJlbmNlCisgICAgICAvLyBiZXR3ZW4gdGhlbSBzaG91bGQg
bm90IGV4Y2VlZCB8bWF4RXJyb3JUaHJlc2hvbGR8LgorICAgICAgbGV0IHNuclRocmVzaG9sZCA9
IDEwMDAwOworICAgICAgbGV0IG1heEVycm9yVGhyZXNob2xkID0gMDsKKworICAgICAgbGV0IGNv
bnRleHQ7CisgICAgICBsZXQgYWN0dWFsUmVzdWx0OworICAgICAgbGV0IGV4cGVjdGVkUmVzdWx0
OworCisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAg
IC8vIEFycmF5IG9mIHRlc3QgY29uZmlncy4gIEVhY2ggY29uZmlnIG11c3Qgc3BlY2lmeSBjdXJ2
ZVN0YXJ0VGltZSwKKyAgICAgIC8vIGN1cnZlRHVyYXRpb24sIGN1cnZlTGVuZ3RoLCBmdWxsR2Fp
blRpbWUsIG1heEVycm9yVGhyZXNob2xkLCBhbmQKKyAgICAgIC8vIHNuclRocmVzaG9sZC4KKyAg
ICAgIGxldCB0ZXN0Q29uZmlncyA9IFsKKyAgICAgICAgeworICAgICAgICAgIC8vIFRoZSBtYWlu
IHRlc3QKKyAgICAgICAgICBjdXJ2ZVN0YXJ0VGltZTogMjU2IC8gc2FtcGxlUmF0ZSwKKyAgICAg
ICAgICBjdXJ2ZUR1cmF0aW9uOiAzMDAgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGN1cnZlTGVu
Z3RoOiAyLAorICAgICAgICAgIGZ1bGxHYWluVGltZTogMC43NSwKKyAgICAgICAgICBtYXhFcnJv
clRocmVzaG9sZDogNS45NjA1ZS04LAorICAgICAgICAgIHNuclRocmVzaG9sZDogMTcxLjIwNgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgLy8gSW5jcmVhc2UgdGhlIGN1cnZlIGxl
bmd0aAorICAgICAgICAgIGN1cnZlU3RhcnRUaW1lOiAyNTYgLyBzYW1wbGVSYXRlLAorICAgICAg
ICAgIGN1cnZlRHVyYXRpb246IDMwMCAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgY3VydmVMZW5n
dGg6IDMsCisgICAgICAgICAgZnVsbEdhaW5UaW1lOiAwLjc1LAorICAgICAgICAgIG1heEVycm9y
VGhyZXNob2xkOiA1Ljk2MDVlLTgsCisgICAgICAgICAgc25yVGhyZXNob2xkOiAxNzEuMjA2Cisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAvLyBJbmNyZWFzZSB0aGUgY3VydmUgbGVu
Z3RoCisgICAgICAgICAgY3VydmVTdGFydFRpbWU6IDI1NiAvIHNhbXBsZVJhdGUsCisgICAgICAg
ICAgY3VydmVEdXJhdGlvbjogMzAwIC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBjdXJ2ZUxlbmd0
aDogMTYsCisgICAgICAgICAgZnVsbEdhaW5UaW1lOiAwLjc1LAorICAgICAgICAgIG1heEVycm9y
VGhyZXNob2xkOiA1Ljk2MDVlLTgsCisgICAgICAgICAgc25yVGhyZXNob2xkOiAxNzAuODkyCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAvLyBJbmNyZWFzZSB0aGUgY3VydmUgbGVu
Z3RoCisgICAgICAgICAgY3VydmVTdGFydFRpbWU6IDI1NiAvIHNhbXBsZVJhdGUsCisgICAgICAg
ICAgY3VydmVEdXJhdGlvbjogMzAwIC8gc2FtcGxlUmF0ZSwKKyAgICAgICAgICBjdXJ2ZUxlbmd0
aDogMTAwLAorICAgICAgICAgIGZ1bGxHYWluVGltZTogMC43NSwKKyAgICAgICAgICBtYXhFcnJv
clRocmVzaG9sZDogMS4xOTIxZS03LAorICAgICAgICAgIHNuclRocmVzaG9sZDogMTY4LjcxMgor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgLy8gQ29ybmVyIGNhc2Ugd2l0aCBkdXJh
dGlvbiBsZXNzIHRoYW4gYSBmcmFtZSEKKyAgICAgICAgICBjdXJ2ZVN0YXJ0VGltZTogMjU2IC8g
c2FtcGxlUmF0ZSwKKyAgICAgICAgICBjdXJ2ZUR1cmF0aW9uOiAwLjI1IC8gc2FtcGxlUmF0ZSwK
KyAgICAgICAgICBjdXJ2ZUxlbmd0aDogMiwKKyAgICAgICAgICBmdWxsR2FpblRpbWU6IDAuNzUs
CisgICAgICAgICAgbWF4RXJyb3JUaHJlc2hvbGQ6IDAsCisgICAgICAgICAgc25yVGhyZXNob2xk
OiAxMDAwMAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgLy8gU2hvcnQgZHVyYXRp
b24gdGVzdAorICAgICAgICAgIGN1cnZlU3RhcnRUaW1lOiAyNTYgLyBzYW1wbGVSYXRlLAorICAg
ICAgICAgIGN1cnZlRHVyYXRpb246IDIgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGN1cnZlTGVu
Z3RoOiAyLAorICAgICAgICAgIGZ1bGxHYWluVGltZTogMC43NSwKKyAgICAgICAgICBtYXhFcnJv
clRocmVzaG9sZDogMCwKKyAgICAgICAgICBzbnJUaHJlc2hvbGQ6IDEwMDAwCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAvLyBTaG9ydCBkdXJhdGlvbiB0ZXN0IHdpdGggbWFueSBw
b2ludHMuCisgICAgICAgICAgY3VydmVTdGFydFRpbWU6IDI1NiAvIHNhbXBsZVJhdGUsCisgICAg
ICAgICAgY3VydmVEdXJhdGlvbjogMiAvIHNhbXBsZVJhdGUsCisgICAgICAgICAgY3VydmVMZW5n
dGg6IDgsCisgICAgICAgICAgZnVsbEdhaW5UaW1lOiAwLjc1LAorICAgICAgICAgIG1heEVycm9y
VGhyZXNob2xkOiAwLAorICAgICAgICAgIHNuclRocmVzaG9sZDogMTAwMDAKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgIC8vIExvbmcgZHVyYXRpb24sIGJpZyBjdXJ2ZQorICAgICAg
ICAgIGN1cnZlU3RhcnRUaW1lOiAyNTYgLyBzYW1wbGVSYXRlLAorICAgICAgICAgIGN1cnZlRHVy
YXRpb246IC41LAorICAgICAgICAgIGN1cnZlTGVuZ3RoOiAxMDAwLAorICAgICAgICAgIGZ1bGxH
YWluVGltZTogMC43NSwKKyAgICAgICAgICBtYXhFcnJvclRocmVzaG9sZDogNS45NjA1ZS04LAor
ICAgICAgICAgIHNuclRocmVzaG9sZDogMTUyLjc4NAorICAgICAgICB9CisgICAgICBdOworCisg
ICAgICAvLyBDcmVhdGVzIGEgZnVuY3Rpb24gYmFzZWQgb24gdGhlIHRlc3QgY29uZmlnIHRoYXQg
aXMgc3VpdGFibGUgZm9yIHVzZSBieQorICAgICAgLy8gZGVmaW5lVGFzaygpLgorICAgICAgZnVu
Y3Rpb24gY3JlYXRlVGFza0Z1bmN0aW9uKGNvbmZpZykgeworICAgICAgICByZXR1cm4gZnVuY3Rp
b24odGFzaywgc2hvdWxkKSB7CisgICAgICAgICAgcnVuVGVzdChzaG91bGQsIGNvbmZpZykudGhl
bigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICAgIH07CisgICAgICB9CisKKyAgICAgIC8vIERl
ZmluZSBhIHRhc2sgZm9yIGVhY2ggY29uZmlnLCBpbiB0aGUgb3JkZXIgbGlzdGVkIGluIHRlc3RD
b25maWdzLgorICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCB0ZXN0Q29uZmlncy5sZW5ndGg7ICsr
aykgeworICAgICAgICBsZXQgY29uZmlnID0gdGVzdENvbmZpZ3Nba107CisgICAgICAgIGxldCBu
YW1lID0gayArICc6Y3VydmU9JyArIGNvbmZpZy5jdXJ2ZUxlbmd0aCArCisgICAgICAgICAgICAn
LGR1cmF0aW9uPScgKyAoY29uZmlnLmN1cnZlRHVyYXRpb24gKiBzYW1wbGVSYXRlKTsKKyAgICAg
ICAgYXVkaXQuZGVmaW5lKG5hbWUsIGNyZWF0ZVRhc2tGdW5jdGlvbihjb25maWcpKTsKKyAgICAg
IH0KKworICAgICAgLy8gU2ltcGxlIHRlc3QgZnJvbSBjcmJ1Zy5jb20vNDQxNDcxLiAgTWFrZXMg
c3VyZSB0aGUgZW5kIHBvaW50cyBhbmQgdGhlCisgICAgICAvLyBtaWRkbGUgcG9pbnQgYXJlIGlu
dGVycG9sYXRlZCBjb3JyZWN0bHkuCisgICAgICBhdWRpdC5kZWZpbmUoJ2NyYnVnLTQ0MTQ3MScs
ICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gQW55IHNhbXBsZSByYXRlIHNob3VsZCB3
b3JrOyB3ZSBwaWNrIHNvbWV0aGluZyBzbWFsbCBzdWNoIHRoYXQgdGhlCisgICAgICAgIC8vIHRp
bWUgZW5kIHBvaW50cyBhcmUgb24gYSBzYW1wbGluZyBwb2ludC4KKyAgICAgICAgbGV0IGNvbnRl
eHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCA1MDAwLCA1MDAwKQorCisgICAgICAgICAg
ICAvLyBBIGNvbnN0YW50IHNvdXJjZQorICAgICAgICAgICAgbGV0IHNvdXJjZSA9IGNvbnRleHQu
Y3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgICAgIHNvdXJjZS5idWZmZXIgPSBjcmVhdGVDb25z
dGFudEJ1ZmZlcihjb250ZXh0LCAxLCAxKTsKKyAgICAgICAgc291cmNlLmxvb3AgPSB0cnVlOwor
CisgICAgICAgIGxldCBnYWluID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisKKyAgICAgICAgbGV0
IHN0YXJ0VGltZSA9IDAuNzsKKyAgICAgICAgbGV0IGR1cmF0aW9uID0gMC4yOworCisgICAgICAg
IC8vIENyZWF0ZSB0aGUgY3VydmUuICBUaGUgaW50ZXJwb2xhdGVkIHJlc3VsdCBzaG91bGQgYmUg
anVzdCBhIHN0cmFpZ2h0CisgICAgICAgIC8vIGxpbmUgZnJvbSAtMSB0byAxIGZyb20gdGltZSBz
dGFydFRpbWUgdG8gc3RhcnRUaW1lICsgZHVyYXRpb24uCisKKyAgICAgICAgbGV0IGMgPSBuZXcg
RmxvYXQzMkFycmF5KDMpOworICAgICAgICBjWzBdID0gLTE7CisgICAgICAgIGNbMV0gPSAwOwor
ICAgICAgICBjWzJdID0gMTsKKyAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUo
Yywgc3RhcnRUaW1lLCBkdXJhdGlvbik7CisgICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOwor
ICAgICAgICBnYWluLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgICAgIHNvdXJj
ZS5zdGFydCgpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQorICAgICAgICAg
ICAgLnRoZW4oZnVuY3Rpb24ocmVuZGVyZWRCdWZmZXIpIHsKKyAgICAgICAgICAgICAgbGV0IGRh
dGEgPSByZW5kZXJlZEJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICAgICAgICAgICAgbGV0
IGVuZFRpbWUgPSBzdGFydFRpbWUgKyBkdXJhdGlvbjsKKyAgICAgICAgICAgICAgbGV0IG1pZFBv
aW50ID0gKHN0YXJ0VGltZSArIGVuZFRpbWUpIC8gMjsKKworICAgICAgICAgICAgICBzaG91bGQo
CisgICAgICAgICAgICAgICAgICBkYXRhW3RpbWVUb1NhbXBsZUZyYW1lKHN0YXJ0VGltZSwgY29u
dGV4dC5zYW1wbGVSYXRlKV0sCisgICAgICAgICAgICAgICAgICAnQ3VydmUgdmFsdWUgYXQgdGlt
ZSAnICsgc3RhcnRUaW1lKQorICAgICAgICAgICAgICAgICAgLmJlRXF1YWxUbyhjWzBdKTsKKyAg
ICAgICAgICAgICAgLy8gRHVlIHRvIHJvdW5kLW9mZiwgdGhlIHZhbHVlIGF0IHRoZSBtaWRwb2lu
dCBpcyBub3QgZXhhY3RseSB6ZXJvCisgICAgICAgICAgICAgIC8vIG9uIGFybTY0LiAgU2VlIGNy
YnVnLmNvbS81NTg1NjMuICBUaGUgY3VycmVudCB2YWx1ZSBpcworICAgICAgICAgICAgICAvLyBl
eHBlcmltZW50YWxseSBkZXRlcm1pbmVkLgorICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAg
ICAgICAgICAgICBkYXRhW3RpbWVUb1NhbXBsZUZyYW1lKG1pZFBvaW50LCBjb250ZXh0LnNhbXBs
ZVJhdGUpXSwKKyAgICAgICAgICAgICAgICAgICdDdXJ2ZSB2YWx1ZSBhdCB0aW1lICcgKyBtaWRQ
b2ludCkKKyAgICAgICAgICAgICAgICAgIC5iZUNsb3NlVG8oMCwge3RocmVzaG9sZDogTWF0aC5w
b3coMiwgLTUxKX0pOworICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgICBk
YXRhW3RpbWVUb1NhbXBsZUZyYW1lKGVuZFRpbWUsIGNvbnRleHQuc2FtcGxlUmF0ZSldLAorICAg
ICAgICAgICAgICAgICAgJ0N1cnZlIHZhbHVlIGF0IHRpbWUgJyArIGVuZFRpbWUpCisgICAgICAg
ICAgICAgICAgICAuYmVFcXVhbFRvKGNbMl0pOworICAgICAgICAgICAgfSkKKyAgICAgICAgICAg
IC50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOworCisgICAgICBmdW5jdGlvbiBy
dW5UZXN0KHNob3VsZCwgY29uZmlnKSB7CisgICAgICAgIGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dCgxLCB0ZXN0RHVyYXRpb25GcmFtZXMsIHNhbXBsZVJhdGUpOworCisgICAgICAg
IC8vIEEgY29uc3RhbnQgYXVkaW8gc291cmNlIG9mIHZhbHVlIDEuCisgICAgICAgIGxldCBzb3Vy
Y2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgICAgICBzb3VyY2UuYnVmZmVy
ID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgMSk7CisgICAgICAgIHNvdXJjZS5s
b29wID0gdHJ1ZTsKKworICAgICAgICAvLyBUaGUgdmFsdWUgY3VydmUgZm9yIHRlc3RpbmcuICBK
dXN0IHRvIG1ha2UgdGhpbmdzIGVhc3kgZm9yIHRlc3RpbmcsCisgICAgICAgIC8vIG1ha2UgdGhl
IGN1cnZlIGEgc2ltcGxlIHJhbXAgdXAgdG8gY3VydmVWYWx1ZS4KKyAgICAgICAgLy8gVE9ETyhy
dG95KTogTWF5YmUgYWxsb3cgbW9yZSBjb21wbGljYXRlZCBjdXJ2ZXM/CisgICAgICAgIGxldCBj
dXJ2ZSA9IG5ldyBGbG9hdDMyQXJyYXkoY29uZmlnLmN1cnZlTGVuZ3RoKTsKKyAgICAgICAgZm9y
IChsZXQgayA9IDA7IGsgPCBjb25maWcuY3VydmVMZW5ndGg7ICsraykgeworICAgICAgICAgIGN1
cnZlW2tdID0gY3VydmVWYWx1ZSAvIChjb25maWcuY3VydmVMZW5ndGggLSAxKSAqIGs7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBBIGdhaW4gbm9kZSB0aGF0IGlzIHRvIGJlIGF1dG9tYXRlZCB1
c2luZyBzZXRWYWx1ZUN1cnZlQXRUaW1lLgorICAgICAgICBsZXQgZ2FpbiA9IGNvbnRleHQuY3Jl
YXRlR2FpbigpOworICAgICAgICBnYWluLmdhaW4udmFsdWUgPSAwOworICAgICAgICBnYWluLmdh
aW4uc2V0VmFsdWVDdXJ2ZUF0VGltZSgKKyAgICAgICAgICAgIGN1cnZlLCBjb25maWcuY3VydmVT
dGFydFRpbWUsIGNvbmZpZy5jdXJ2ZUR1cmF0aW9uKTsKKyAgICAgICAgLy8gVGhpcyBpcyB0byB2
ZXJpZnkgdGhhdCBzZXRWYWx1ZUN1cnZlQXRUaW1lIGVuZHMgYXBwcm9wcmlhdGVseS4KKyAgICAg
ICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDEsIGNvbmZpZy5mdWxsR2FpblRpbWUpOworCisg
ICAgICAgIHNvdXJjZS5jb25uZWN0KGdhaW4pOworICAgICAgICBnYWluLmNvbm5lY3QoY29udGV4
dC5kZXN0aW5hdGlvbik7CisgICAgICAgIHNvdXJjZS5zdGFydCgpOworCisgICAgICAgIC8vIFNv
bWUgY29uc2lzdGVuY3kgY2hlY2tzIG9uIHRoZSB0ZXN0IHBhcmFtZXRlcnMKKyAgICAgICAgbGV0
IHByZWZpeCA9ICdMZW5ndGggJyArIGNvbmZpZy5jdXJ2ZUxlbmd0aCArICcsIGR1cmF0aW9uICcg
KworICAgICAgICAgICAgY29uZmlnLmN1cnZlRHVyYXRpb247CisgICAgICAgIHNob3VsZCgKKyAg
ICAgICAgICAgIGNvbmZpZy5jdXJ2ZVN0YXJ0VGltZSArIGNvbmZpZy5jdXJ2ZUR1cmF0aW9uLAor
ICAgICAgICAgICAgcHJlZml4ICsgJzogQ2hlY2s6IEN1cnZlIGVuZCB0aW1lJykKKyAgICAgICAg
ICAgIC5iZUxlc3NUaGFuT3JFcXVhbFRvKHRlc3REdXJhdGlvblNlYyk7CisgICAgICAgIHNob3Vs
ZChjb25maWcuZnVsbEdhaW5UaW1lLCBwcmVmaXggKyAnOiBDaGVjazogRnVsbCBnYWluIHN0YXJ0
IHRpbWUnKQorICAgICAgICAgICAgLmJlTGVzc1RoYW5PckVxdWFsVG8odGVzdER1cmF0aW9uU2Vj
KTsKKyAgICAgICAgc2hvdWxkKGNvbmZpZy5mdWxsR2FpblRpbWUsIHByZWZpeCArICc6IENoZWNr
OiBGdWxsIGdhaW4gc3RhcnQgdGltZScpCisgICAgICAgICAgICAuYmVHcmVhdGVyVGhhbk9yRXF1
YWxUbygKKyAgICAgICAgICAgICAgICBjb25maWcuY3VydmVTdGFydFRpbWUgKyBjb25maWcuY3Vy
dmVEdXJhdGlvbik7CisKKyAgICAgICAgLy8gUm9jayBhbmQgcm9sbCEKKyAgICAgICAgcmV0dXJu
IGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGNoZWNrUmVzdWx0KHNob3VsZCwgY29uZmln
KSk7CisgICAgICB9CisKKyAgICAgIC8vIFJldHVybiBhIGZ1bmN0aW9uIHRvIGNoZWNrIHRoYXQg
dGhlIHJlbmRlcmVkIHJlc3VsdCBtYXRjaGVzIHRoZQorICAgICAgLy8gZXhwZWN0ZWQgcmVzdWx0
LgorICAgICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQoc2hvdWxkLCBjb25maWcpIHsKKyAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uKHJlbmRlcmVkQnVmZmVyKSB7CisgICAgICAgICAgbGV0IHN1Y2Nlc3Mg
PSB0cnVlOworCisgICAgICAgICAgYWN0dWFsUmVzdWx0ID0gcmVuZGVyZWRCdWZmZXIuZ2V0Q2hh
bm5lbERhdGEoMCk7CisgICAgICAgICAgZXhwZWN0ZWRSZXN1bHQgPSBjb21wdXRlRXhwZWN0ZWRS
ZXN1bHQoY29uZmlnKTsKKworICAgICAgICAgIC8vIENvbXB1dGUgdGhlIFNOUiBhbmQgbWF4IGFi
c29sdXRlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWN0dWFsIGFuZAorICAgICAgICAgIC8vIGV4
cGVjdGVkIHJlc3VsdC4KKyAgICAgICAgICBsZXQgU05SID0gMTAgKiBNYXRoLmxvZzEwKGNvbXB1
dGVTTlIoYWN0dWFsUmVzdWx0LCBleHBlY3RlZFJlc3VsdCkpOworICAgICAgICAgIGxldCBtYXhE
aWZmID0gLTE7CisgICAgICAgICAgbGV0IHBvc24gPSAtMTsKKworICAgICAgICAgIGZvciAobGV0
IGsgPSAwOyBrIDwgYWN0dWFsUmVzdWx0Lmxlbmd0aDsgKytrKSB7CisgICAgICAgICAgICBsZXQg
ZGlmZiA9IE1hdGguYWJzKGFjdHVhbFJlc3VsdFtrXSAtIGV4cGVjdGVkUmVzdWx0W2tdKTsKKyAg
ICAgICAgICAgIGlmIChtYXhEaWZmIDwgZGlmZikgeworICAgICAgICAgICAgICBtYXhEaWZmID0g
ZGlmZjsKKyAgICAgICAgICAgICAgcG9zbiA9IGs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
fQorCisgICAgICAgICAgbGV0IHByZWZpeCA9ICdDdXJ2ZSBsZW5ndGggJyArIGNvbmZpZy5jdXJ2
ZUxlbmd0aCArICcsIGR1cmF0aW9uICcgKworICAgICAgICAgICAgICBjb25maWcuY3VydmVEdXJh
dGlvbjsKKyAgICAgICAgICBzaG91bGQoU05SLCBwcmVmaXggKyAnOiBTTlInKQorICAgICAgICAg
ICAgICAuYmVHcmVhdGVyVGhhbk9yRXF1YWxUbyhjb25maWcuc25yVGhyZXNob2xkKTsKKworICAg
ICAgICAgIHNob3VsZChtYXhEaWZmLCBwcmVmaXggKyAnOiBNYXggZGlmZmVyZW5jZScpCisgICAg
ICAgICAgICAgIC5iZUxlc3NUaGFuT3JFcXVhbFRvKGNvbmZpZy5tYXhFcnJvclRocmVzaG9sZCk7
CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLy8gQ29tcHV0ZSB0aGUgZXhwZWN0ZWQgcmVz
dWx0IGJhc2VkIG9uIHRoZSBjb25maWcgc2V0dGluZ3MuCisgICAgICBmdW5jdGlvbiBjb21wdXRl
RXhwZWN0ZWRSZXN1bHQoY29uZmlnKSB7CisgICAgICAgIC8vIFRoZSBhdXRvbWF0aW9uIGN1cnZl
IHN0YXJ0cyBhdCB8Y3VydmVTdGFydFRpbWV8IGFuZCBoYXMgZHVyYXRpb24KKyAgICAgICAgLy8g
fGN1cnZlRHVyYXRpb258LiAgU28sIHRoZSBvdXRwdXQgc2hvdWxkIGJlIHplcm8gdW50aWwgY3Vy
dmVTdGFydFRpbWUsCisgICAgICAgIC8vIGxpbmVhcmx5IHJhbXAgdXAgZnJvbSB0aGVyZSB0byB8
Y3VydmVWYWx1ZXwsIGFuZCB0aGVuIGJlIGNvbnN0YW50IDEKKyAgICAgICAgLy8gZnJvbSB0aGVu
IHRvIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KKworICAgICAgICBsZXQgZXhwZWN0ZWQgPSBuZXcg
RmxvYXQzMkFycmF5KHRlc3REdXJhdGlvbkZyYW1lcyk7CisKKyAgICAgICAgbGV0IGN1cnZlU3Rh
cnRGcmFtZSA9IGNvbmZpZy5jdXJ2ZVN0YXJ0VGltZSAqIHNhbXBsZVJhdGU7CisgICAgICAgIGxl
dCBjdXJ2ZUVuZEZyYW1lID0KKyAgICAgICAgICAgIChjb25maWcuY3VydmVTdGFydFRpbWUgKyBj
b25maWcuY3VydmVEdXJhdGlvbikgKiBzYW1wbGVSYXRlOworICAgICAgICBsZXQgZnVsbEdhaW5G
cmFtZSA9IGNvbmZpZy5mdWxsR2FpblRpbWUgKiBzYW1wbGVSYXRlOworCisgICAgICAgIGxldCBr
OworCisgICAgICAgIC8vIFplcm8gb3V0IHRoZSBzdGFydC4KKyAgICAgICAgZm9yIChrID0gMDsg
ayA8IGN1cnZlU3RhcnRGcmFtZTsgKytrKQorICAgICAgICAgIGV4cGVjdGVkW2tdID0gMDsKKwor
ICAgICAgICAvLyBMaW5lYXJseSByYW1wIG5vdy4gIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBhY3R1
YWwgY3VydmUgdXNlZCBpcyBhCisgICAgICAgIC8vIGxpbmVhciByYW1wLCBldmVuIGlmIHRoZXJl
IGFyZSBtYW55IGN1cnZlIHBvaW50cy4KKyAgICAgICAgbGV0IHN0ZXBTaXplID0gY3VydmVWYWx1
ZSAvIChjb25maWcuY3VydmVEdXJhdGlvbiAqIHNhbXBsZVJhdGUpOworICAgICAgICBmb3IgKDsg
ayA8IGN1cnZlRW5kRnJhbWU7ICsraykKKyAgICAgICAgICBleHBlY3RlZFtrXSA9IHN0ZXBTaXpl
ICogKGsgLSBjdXJ2ZVN0YXJ0RnJhbWUpOworCisgICAgICAgIC8vIEhvbGQgaXQgY29uc3RhbnQg
dW50aWwgdGhlIG5leHQgZXZlbnQKKyAgICAgICAgZm9yICg7IGsgPCBmdWxsR2FpbkZyYW1lOyAr
K2spCisgICAgICAgICAgZXhwZWN0ZWRba10gPSBjdXJ2ZVZhbHVlOworCisgICAgICAgIC8vIEFt
cGxpdHVkZSBpcyBvbmUgZm9yIHRoZSByZXN0IG9mIHRoZSB0ZXN0LgorICAgICAgICBmb3IgKDsg
ayA8IHRlc3REdXJhdGlvbkZyYW1lczsgKytrKQorICAgICAgICAgIGV4cGVjdGVkW2tdID0gMTsK
KworICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7CisgICAgICB9CisKKyAgICAgIGF1ZGl0LnJ1bigp
OworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tdXBkYXRlLXZhbHVlLWF0dHJpYnV0
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFy
YW0tdXBkYXRlLXZhbHVlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk5YzZh
NTdkNTU5OWQ5ZmI3YTU5MWIwMDk0YTcxOTI3ZWNmOTlhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS11cGRhdGUtdmFsdWUtYXR0
cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwMSBAQAorCitQQVNTICMgQVVESVQgVEFT
SyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAibGluZWFyIiAKK1BBU1MgRXhlY3V0
aW5nICJleHBvbmVudGlhbCIgCitQQVNTIEV4ZWN1dGluZyAic2V0VGFyZ2V0IiAKK1BBU1MgRXhl
Y3V0aW5nICJzZXRWYWx1ZUN1cnZlIiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFtsaW5l
YXJdICAKK1BBU1MgICBJbml0aWFsaXplIGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5Mzc1KSB3aXRo
IHNldFZhbHVlQXRUaW1lKDAuMjUsIDApIAorUEFTUyAgIGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5
Mzc1KSBhdCBmcmFtZSAxMjcgaXMgNi44NDgwNDY4NzUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAw
MDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjU1
IGlzIDEzLjQ5ODA0Njg3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDExNjUuIAorUEFTUyAg
IGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAzODMgaXMgMjAuMTQ4MDQ2ODc1
IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFyUmFtcCgxMDAs
IDAuMDU4NTkzNzUpIGF0IGZyYW1lIDUxMSBpcyAyNi43OTgwNDY4NzUgd2l0aGluIGFuIGVycm9y
IG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQg
ZnJhbWUgNjM5IGlzIDMzLjQ0ODA0Njg3NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDExNjUu
IAorUEFTUyAgIGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA3NjcgaXMgNDAu
MDk4MDQ2ODc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTE2NS4gCitQQVNTICAgbGluZWFy
UmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDg5NSBpcyA0Ni43NDgwNDY4NzUgd2l0aGlu
IGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgMTAyMyBpcyA1My4zOTgwNDY4NzUgd2l0aGluIGFuIGVycm9yIG9mIDAu
MDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUg
MTE1MSBpcyA2MC4wNDgwNDY4NzUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BB
U1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTI3OSBpcyA2Ni42OTgw
NDY4NzUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1w
KDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTQwNyBpcyA3My4zNDgwNDY4NzUgd2l0aGluIGFu
IGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3
NSkgYXQgZnJhbWUgMTUzNSBpcyA3OS45OTgwNDY4NzUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAw
MDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTY2
MyBpcyA4Ni42NDgwNDY4NzUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1Mg
ICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTc5MSBpcyA5My4yOTgwNDY4
NzUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEw
MCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTkxOSBpcyA5OS45NDgwNDY4NzUgd2l0aGluIGFuIGVy
cm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkg
YXQgZnJhbWUgMjA0NyBpcyAxMDAgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BB
U1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjE3NSBpcyAxMDAgd2l0
aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4w
NTg1OTM3NSkgYXQgZnJhbWUgMjMwMyBpcyAxMDAgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAx
MTY1LiAKK1BBU1MgICBsaW5lYXJSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjQzMSBp
cyAxMDAgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAxMTY1LiAKK1BBU1MgICBHYWluIC52YWx1
ZSBhdHRyaWJ1dGUgZm9yIGxpbmVhclJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBjb3JyZWN0bHkgdXBk
YXRlZCBkdXJpbmcgYXV0b21hdGlvbiAKK1BBU1MgPCBbbGluZWFyXSBBbGwgYXNzZXJ0aW9ucyBw
YXNzZWQuICh0b3RhbCAyMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBbZXhwb25lbnRpYWxdICAKK1BB
U1MgICBJbml0aWFsaXplIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIHdpdGggc2V0
VmFsdWVBdFRpbWUoMC4yNSwgMCkgCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgMTI3IGlzIG5vdCBjbG9zZSB0byAwLjM3MTU4MjY1NjQ0OTcwNTEgd2l0
aGluIGEgcmVsYXRpdmUgZXJyb3Igb2YgNy40NjAxZS03IChSZWxFcnI9MC4wMDMxMjU3MDIyODE4
NDM0Mjc3KS4gR290IDAuMzcyNzQ0MTEzMjA2ODYzNC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQg
ZnJhbWUgMjU1IGlzIG5vdCBjbG9zZSB0byAwLjU1NDAyMDgzOTgwOTgyNDMgd2l0aGluIGEgcmVs
YXRpdmUgZXJyb3Igb2YgNy40NjAxZS03IChSZWxFcnI9MC4wMDMxMjU1NDM3NTkyNzgwODIpLiBH
b3QgMC41NTU3NTI0NTYxODgyMDE5LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAzODMg
aXMgbm90IGNsb3NlIHRvIDAuODI2MDMxODAxMDQzMjQ0NSB3aXRoaW4gYSByZWxhdGl2ZSBlcnJv
ciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNDg2OTc1MDY3NTk2OSkuIEdvdCAwLjgyODYx
MzA0MjgzMTQyMDkuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBY
IGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDUxMSBpcyBub3QgY2xv
c2UgdG8gMS4yMzE1OTM2Mjg0NDM1ODk1IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYw
MWUtNyAoUmVsRXJyPTAuMDAzMTI1NjE0NDA4NzQ3OTQ4KS4gR290IDEuMjM1NDQzMTE1MjM0Mzc1
LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlh
bFJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA2MzkgaXMgbm90IGNsb3NlIHRvIDEuODM2
Mjc2NTk4MTk3NzQ1OCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVy
cj0wLjAwMzEyNTU1NDk4NTYwNTk2OTcpLiBHb3QgMS44NDIwMTU5ODE2NzQxOTQzLiBhc3NlcnRf
dHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAoMTAw
LCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA3NjcgaXMgbm90IGNsb3NlIHRvIDIuNzM3ODQ0NDIxNDE4
MzY2IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUtNyAoUmVsRXJyPTAuMDAzMTI1
NTg0OTc0NDAxMTY0KS4gR290IDIuNzQ2NDAxNzg2ODA0MTk5LiBhc3NlcnRfdHJ1ZTogZXhwZWN0
ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1
KSBhdCBmcmFtZSA4OTUgaXMgbm90IGNsb3NlIHRvIDQuMDgyMDYwNDQ5NTI1MTg1IHdpdGhpbiBh
IHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUtNyAoUmVsRXJyPTAuMDAzMTI1NjUwOTc0MTY2MzQx
NikuIEdvdCA0LjA5NDgxOTU0NTc0NTg1LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK0ZBSUwgWCBleHBvbmVudGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAx
MDIzIGlzIG5vdCBjbG9zZSB0byA2LjA4NjI1NDM0Nzg0MzkyNCB3aXRoaW4gYSByZWxhdGl2ZSBl
cnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNjE0NzQxODE1NDU2MDYpLiBHb3QgNi4x
MDUyODA4NzYxNTk2NjguIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJ
TCBYIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDExNTEgaXMgbm90
IGNsb3NlIHRvIDkuMDc0NDU5NDQxNDIxOTc1IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcu
NDYwMWUtNyAoUmVsRXJyPTAuMDAzMTI1Njc1NTUyMDcxMTE2OCkuIEdvdCA5LjEwMjgyMzI1NzQ0
NjI4OS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25l
bnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTI3OSBpcyBub3QgY2xvc2UgdG8g
MTMuNTI5ODAxNjU1OTUzNDI0IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUtNyAo
UmVsRXJyPTAuMDAzMTI1NjUxNjMzNDg2MDkzKS4gR290IDEzLjU3MjA5MTEwMjYwMDA5OC4gYXNz
ZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1w
KDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTQwNyBpcyBub3QgY2xvc2UgdG8gMjAuMTcyNjEw
MTczNzY0MjQ4IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUtNyAoUmVsRXJyPTAu
MDAzMTI0OTc2NjE4MjY5MTAzNykuIEdvdCAyMC4yMzU2NDkxMDg4ODY3Mi4gYXNzZXJ0X3RydWU6
IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitGQUlMIFggZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4w
NTg1OTM3NSkgYXQgZnJhbWUgMTUzNSBpcyBub3QgY2xvc2UgdG8gMzAuMDc2ODc4NTUwODA5ODM0
IHdpdGhpbiBhIHJlbGF0aXZlIGVycm9yIG9mIDcuNDYwMWUtNyAoUmVsRXJyPTAuMDAzMTI1NDE0
NzczMTM0NDE2NykuIEdvdCAzMC4xNzA4ODEyNzEzNjIzMDUuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBYIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUp
IGF0IGZyYW1lIDE2NjMgaXMgbm90IGNsb3NlIHRvIDQ0Ljg0MzkwNTQ1MjM4ODAxNSB3aXRoaW4g
YSByZWxhdGl2ZSBlcnJvciBvZiA3LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNTUyMDc1MjkyMTA4
OCkuIEdvdCA0NC45ODQwNjYwMDk1MjE0ODQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdv
dCBmYWxzZQorRkFJTCBYIGV4cG9uZW50aWFsUmFtcCgxMDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1l
IDE3OTEgaXMgbm90IGNsb3NlIHRvIDY2Ljg2MTE4ODgzMDY2NjQ0IHdpdGhpbiBhIHJlbGF0aXZl
IGVycm9yIG9mIDcuNDYwMWUtNyAoUmVsRXJyPTAuMDAzMTI1NDQ2NjkxODM0NjY5KS4gR290IDY3
LjA3MDE1OTkxMjEwOTM4LiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgWCBleHBvbmVudGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAxOTE5IGlzIG5v
dCBjbG9zZSB0byA5OS42ODg0MzA5NDE3Nzg1OCB3aXRoaW4gYSByZWxhdGl2ZSBlcnJvciBvZiA3
LjQ2MDFlLTcgKFJlbEVycj0wLjAwMzEyNDk2OTI1NTgyMjQyOCkuIEdvdCA5OS45OTk5NTQyMjM2
MzI4MS4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTICAgZXhwb25l
bnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjA0NyBpcyAxMDAgd2l0aGluIGFu
IGVycm9yIG9mIDcuNDYwMWUtNy4gCitQQVNTICAgZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgMjE3NSBpcyAxMDAgd2l0aGluIGFuIGVycm9yIG9mIDcuNDYwMWUtNy4g
CitQQVNTICAgZXhwb25lbnRpYWxSYW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjMwMyBp
cyAxMDAgd2l0aGluIGFuIGVycm9yIG9mIDcuNDYwMWUtNy4gCitQQVNTICAgZXhwb25lbnRpYWxS
YW1wKDEwMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjQzMSBpcyAxMDAgd2l0aGluIGFuIGVycm9y
IG9mIDcuNDYwMWUtNy4gCitQQVNTICAgR2FpbiAudmFsdWUgYXR0cmlidXRlIGZvciBleHBvbmVu
dGlhbFJhbXAoMTAwLCAwLjA1ODU5Mzc1KSBjb3JyZWN0bHkgdXBkYXRlZCBkdXJpbmcgYXV0b21h
dGlvbiAKK0ZBSUwgPCBbZXhwb25lbnRpYWxdIDE1IG91dCBvZiAyMSBhc3NlcnRpb25zIHdlcmUg
ZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgPiBbc2V0
VGFyZ2V0XSAgCitQQVNTICAgSW5pdGlhbGl6ZSBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSB3
aXRoIHNldFZhbHVlQXRUaW1lKDAuMjUsIDApIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAw
LCAwLjEpIGF0IGZyYW1lIDEyNyBpcyAwLjI0MDQ5NjAzMjc2ODIxMzggd2l0aGluIGFuIGVycm9y
IG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQg
ZnJhbWUgMjU1IGlzIDAuMjMxMjgyNzc0NDM2NTgxNiB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAw
MDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAzODMg
aXMgMC4yMjI0MjI0NzA0ODg4ODgwNSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAK
K1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSA1MTEgaXMgMC4yMTM5
MDE1OTk0NTUwMjM2OCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBz
ZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSA2MzkgaXMgMC4yMDU3MDcxNTc4NjQy
NjQ0NCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRB
dFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSA3NjcgaXMgMC4xOTc4MjY2NDA0MDEwMjY2OCB3aXRo
aW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwg
MCwgMC4xKSBhdCBmcmFtZSA4OTUgaXMgMC4xOTAyNDgwMjA4MjA4NDM0NyB3aXRoaW4gYW4gZXJy
b3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBh
dCBmcmFtZSAxMDIzIGlzIDAuMTgyOTU5NzMzNTk3NDM4NDUgd2l0aGluIGFuIGVycm9yIG9mIDAu
MDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUg
MTE1MSBpcyAwLjE3NTk1MDY1NjI3Mjg4ODkyIHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMjI1
OTkuIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAwLCAwLjEpIGF0IGZyYW1lIDEyNzkgaXMg
MC4xNjkyMTAwOTI0ODM5NDM5NSB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BB
U1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAxNDA3IGlzIDAuMTYyNzI3
NzU1NjM4NTkzNyB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBzZXRU
YXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAxNTM1IGlzIDAuMTU2NDkzNzUzMjE3OTc5
ODEgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRU
aW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgMTY2MyBpcyAwLjE1MDQ5ODU3MTY3OTY4OTk3IHdpdGhp
biBhbiBlcnJvciBvZiAwLjAwMDAwMjI1OTkuIAorUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAw
LCAwLjEpIGF0IGZyYW1lIDE3OTEgaXMgMC4xNDQ3MzMwNjE5MzkzOTgyOCB3aXRoaW4gYW4gZXJy
b3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBh
dCBmcmFtZSAxOTE5IGlzIDAuMTM5MTg4NDI1NDA4Njk1MiB3aXRoaW4gYW4gZXJyb3Igb2YgMC4w
MDAwMDIyNTk5LiAKK1BBU1MgICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAy
MDQ3IGlzIDAuMTMzODU2MjAwNTY3Nzk5OTUgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5
OS4gCitQQVNTICAgc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgMjE3NSBpcyAw
LjEyODcyODI1MDA1MjY2NCB3aXRoaW4gYW4gZXJyb3Igb2YgMC4wMDAwMDIyNTk5LiAKK1BBU1Mg
ICBzZXRUYXJnZXRBdFRpbWUoMCwgMCwgMC4xKSBhdCBmcmFtZSAyMzAzIGlzIDAuMTIzNzk2NzQ4
MjM2NzYwMDcgd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDAyMjU5OS4gCitQQVNTICAgc2V0VGFy
Z2V0QXRUaW1lKDAsIDAsIDAuMSkgYXQgZnJhbWUgMjQzMSBpcyAwLjExOTA1NDE2OTI4ODYwNTE3
IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMjI1OTkuIAorUEFTUyAgIEdhaW4gLnZhbHVlIGF0
dHJpYnV0ZSBmb3Igc2V0VGFyZ2V0QXRUaW1lKDAsIDAsIDAuMSkgY29ycmVjdGx5IHVwZGF0ZWQg
ZHVyaW5nIGF1dG9tYXRpb24gCitQQVNTIDwgW3NldFRhcmdldF0gQWxsIGFzc2VydGlvbnMgcGFz
c2VkLiAodG90YWwgMjEgYXNzZXJ0aW9ucykgCitQQVNTID4gW3NldFZhbHVlQ3VydmVdICAKK1BB
U1MgICBJbml0aWFsaXplIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5
Mzc1KSB3aXRoIHNldFZhbHVlQXRUaW1lKDAuMjUsIDApIAorUEFTUyAgIHNldFZhbHVlQ3VydmVB
dFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAxMjcgaXMgMS4wNjYxNDU4
MzMzMzMzMzMzIHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZhbHVl
Q3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAyNTUgaXMgMS4x
MzI4MTI1IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZhbHVlQ3Vy
dmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAzODMgaXMgMS4xOTk0
NzkxNjY2NjY2NjY3IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZh
bHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA1MTEgaXMg
MS4yNjYxNDU4MzMzMzMzMzMzIHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAg
IHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA2
MzkgaXMgMS4zMzI4MTI1IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNl
dFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSA3Njcg
aXMgMS4zOTk0NzkxNjY2NjY2NjY2IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFT
UyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFt
ZSA4OTUgaXMgMS40NjYxNDU4MzMzMzMzMzMzIHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTgu
IAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBh
dCBmcmFtZSAxMDIzIGlzIDEuNjY0MDYyNSB3aXRoaW4gYW4gZXJyb3Igb2YgNy45NTc3ZS04LiAK
K1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgYXQg
ZnJhbWUgMTE1MSBpcyAxLjk5NzM5NTgzMzMzMzMzMzUgd2l0aGluIGFuIGVycm9yIG9mIDcuOTU3
N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwxLjUsNF0sIDAsIDAuMDU4NTkz
NzUpIGF0IGZyYW1lIDEyNzkgaXMgMi4zMzA3MjkxNjY2NjY2NjY1IHdpdGhpbiBhbiBlcnJvciBv
ZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWzEsMS41LDRdLCAwLCAw
LjA1ODU5Mzc1KSBhdCBmcmFtZSAxNDA3IGlzIDIuNjY0MDYyNSB3aXRoaW4gYW4gZXJyb3Igb2Yg
Ny45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4w
NTg1OTM3NSkgYXQgZnJhbWUgMTUzNSBpcyAyLjk5NzM5NTgzMzMzMzMzMyB3aXRoaW4gYW4gZXJy
b3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwg
MCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMTY2MyBpcyAzLjMzMDcyOTE2NjY2NjY2NjUgd2l0aGlu
IGFuIGVycm9yIG9mIDcuOTU3N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwx
LjUsNF0sIDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDE3OTEgaXMgMy42NjQwNjI0OTk5OTk5OTk2
IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRp
bWUoWzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAxOTE5IGlzIDMuOTk3Mzk1ODMz
MzMzMzMzNSB3aXRoaW4gYW4gZXJyb3Igb2YgNy45NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1
cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1OTM3NSkgYXQgZnJhbWUgMjA0NyBpcyA0IHdp
dGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUo
WzEsMS41LDRdLCAwLCAwLjA1ODU5Mzc1KSBhdCBmcmFtZSAyMTc1IGlzIDQgd2l0aGluIGFuIGVy
cm9yIG9mIDcuOTU3N2UtOC4gCitQQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwxLjUsNF0s
IDAsIDAuMDU4NTkzNzUpIGF0IGZyYW1lIDIzMDMgaXMgNCB3aXRoaW4gYW4gZXJyb3Igb2YgNy45
NTc3ZS04LiAKK1BBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDEuNSw0XSwgMCwgMC4wNTg1
OTM3NSkgYXQgZnJhbWUgMjQzMSBpcyA0IHdpdGhpbiBhbiBlcnJvciBvZiA3Ljk1NzdlLTguIAor
UEFTUyAgIEdhaW4gLnZhbHVlIGF0dHJpYnV0ZSBmb3Igc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwx
LjUsNF0sIDAsIDAuMDU4NTkzNzUpIGNvcnJlY3RseSB1cGRhdGVkIGR1cmluZyBhdXRvbWF0aW9u
IAorUEFTUyA8IFtzZXRWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAy
MSBhc3NlcnRpb25zKSAKK0ZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQg
b2YgNCB0YXNrcyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9w
YXJhbS11cGRhdGUtdmFsdWUtYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9B
dWRpb1BhcmFtL2F1ZGlvcGFyYW0tdXBkYXRlLXZhbHVlLWF0dHJpYnV0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM1ZWM5ZDllYTg4YTU4ODljNjAwMDliZGZjN2IwZDdkMDFiNzExMTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tdXBkYXRl
LXZhbHVlLWF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMTgyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBVcGRhdGluZyBvZiBWYWx1ZSBB
dHRyaWJ1dGUgZnJvbSBUaW1lbGluZQorICAgIDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1
ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVk
aXQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaW8tcGFy
YW0uanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgaWQ9Imxh
eW91dC10ZXN0LWNvZGUiPgorICAgICAgLy8gVGhpcyBzaG91bGQgYmUgYSBwb3dlciBvZiB0d28g
c28gdGhhdCBhbGwgdGltZSBjb21wdXRhdGlvbnMgaGF2ZSBubworICAgICAgLy8gcm91bmQtb2Zm
IGVycm9ycy4KKyAgICAgIGxldCBzYW1wbGVSYXRlID0gMzI3Njg7CisgICAgICBsZXQgcmVuZGVy
UXVhbnR1bVNpemUgPSAxMjg7CisgICAgICAvLyBIb3cgbWFueSB0ZXN0cyB0byBydW4uCisgICAg
ICBsZXQgcmVuZGVyTG9vcHMgPSAyMDsKKyAgICAgIGxldCByZW5kZXJGcmFtZXMgPSByZW5kZXJM
b29wcyAqIHJlbmRlclF1YW50dW1TaXplOworICAgICAgbGV0IHJlbmRlckR1cmF0aW9uID0gcmVu
ZGVyRnJhbWVzIC8gc2FtcGxlUmF0ZTsKKworICAgICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRl
VGFza1J1bm5lcigpOworCisgICAgICBhdWRpdC5kZWZpbmUoJ2xpbmVhcicsICh0YXNrLCBzaG91
bGQpID0+IHsKKyAgICAgICAgLy8gVGVzdCB0aGUgdmFsdWUgYXR0cmlidXRlIGZyb20gYSBsaW5l
YXJSYW1wIGV2ZW50CisgICAgICAgIHJ1blRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAs
IHYxLCB0MSkgeworICAgICAgICAgIGcuZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MSwg
dDEpOworICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBleHBlY3RlZFZhbHVlOiBmdW5j
dGlvbih0ZXN0VGltZSkgeworICAgICAgICAgICAgICByZXR1cm4gYXVkaW9QYXJhbUxpbmVhclJh
bXAodGVzdFRpbWUsIHYwLCB0MCwgdjEsIHQxKTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICBtZXNzYWdlOiAnbGluZWFyUmFtcCgnICsgdjEgKyAnLCAnICsgdDEgKyAnKScsCisgICAgICAg
ICAgICBlcnJvclRocmVzaG9sZDogMS4xNjUwZS02CisgICAgICAgICAgfTsKKyAgICAgICAgfSku
dGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5l
KCdleHBvbmVudGlhbCcsICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgLy8gVGVzdCB0aGUg
dmFsdWUgYXR0cmlidXRlIGZyb20gYW4gZXhwb25lbnRpYWxSYW1wIGV2ZW50CisgICAgICAgIHJ1
blRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIHYxLCB0MSkgeworICAgICAgICAgIGcu
Z2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYxLCB0MSk7CisgICAgICAgICAgcmV0
dXJuIHsKKyAgICAgICAgICAgIGV4cGVjdGVkVmFsdWU6IGZ1bmN0aW9uKHRlc3RUaW1lKSB7Cisg
ICAgICAgICAgICAgIHJldHVybiBhdWRpb1BhcmFtRXhwb25lbnRpYWxSYW1wKHRlc3RUaW1lLCB2
MCwgdDAsIHYxLCB0MSk7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbWVzc2FnZTogJ2V4
cG9uZW50aWFsUmFtcCgnICsgdjEgKyAnLCAnICsgdDEgKyAnKScsCisgICAgICAgICAgICBlcnJv
clRocmVzaG9sZDogNy40NjAxZS03CisgICAgICAgICAgfTsKKyAgICAgICAgfSkudGhlbigoKSA9
PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdzZXRUYXJn
ZXQnLCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIC8vIFRlc3QgdGhlIHZhbHVlIGF0dHJp
YnV0ZSBmcm9tIGEgc2V0VGFyZ2V0QXRUaW1lIGV2ZW50CisgICAgICAgIHJ1blRlc3Qoc2hvdWxk
LCBmdW5jdGlvbihnLCB2MCwgdDAsIHYxLCB0MSkgeworICAgICAgICAgIGxldCB0aW1lQ29uc3Rh
bnQgPSAwLjE7CisgICAgICAgICAgbGV0IHZGaW5hbCA9IDA7CisgICAgICAgICAgZy5nYWluLnNl
dFRhcmdldEF0VGltZSh2RmluYWwsIHQwLCB0aW1lQ29uc3RhbnQpOworICAgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICBleHBlY3RlZFZhbHVlOiBmdW5jdGlvbih0ZXN0VGltZSkgeworICAg
ICAgICAgICAgICByZXR1cm4gYXVkaW9QYXJhbVNldFRhcmdldCgKKyAgICAgICAgICAgICAgICAg
IHRlc3RUaW1lLCB2MCwgdDAsIHZGaW5hbCwgdGltZUNvbnN0YW50KTsKKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICBtZXNzYWdlOiAnc2V0VGFyZ2V0QXRUaW1lKCcgKyB2RmluYWwgKyAnLCAn
ICsgdDAgKyAnLCAnICsKKyAgICAgICAgICAgICAgICB0aW1lQ29uc3RhbnQgKyAnKScsCisgICAg
ICAgICAgICBlcnJvclRocmVzaG9sZDogMi4yNTk5ZS02CisgICAgICAgICAgfTsKKyAgICAgICAg
fSkudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKCdzZXRWYWx1ZUN1cnZlJywgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICAvLyBUZXN0
IHRoZSB2YWx1ZSBhdHRyaWJ1dGUgZnJvbSBhIHNldFZhbHVlQ3VydmUgZXZlbnQKKyAgICAgICAg
cnVuVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgdjEsIHQxKSB7CisgICAgICAgICAg
bGV0IGN1cnZlID0gWzEsIDEuNSwgNF07CisgICAgICAgICAgbGV0IGR1cmF0aW9uID0gdDEgLSB0
MDsKKyAgICAgICAgICBnLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0VGltZShGbG9hdDMyQXJyYXkuZnJv
bShjdXJ2ZSksIHQwLCBkdXJhdGlvbik7CisgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
IGV4cGVjdGVkVmFsdWU6IGZ1bmN0aW9uKHRlc3RUaW1lKSB7CisgICAgICAgICAgICAgIHJldHVy
biBhdWRpb1BhcmFtU2V0VmFsdWVDdXJ2ZSh0ZXN0VGltZSwgY3VydmUsIHQwLCBkdXJhdGlvbik7
CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbWVzc2FnZTogJ3NldFZhbHVlQ3VydmVBdFRp
bWUoWycgKyBjdXJ2ZSArICddLCAnICsgdDAgKyAnLCAnICsKKyAgICAgICAgICAgICAgICBkdXJh
dGlvbiArICcpJywKKyAgICAgICAgICAgIGVycm9yVGhyZXNob2xkOiA3Ljk1NzdlLTgKKyAgICAg
ICAgICB9OworICAgICAgICB9KS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAgIH0pOwor
CisgICAgICBhdWRpdC5ydW4oKTsKKworICAgICAgLy8gVGVzdCB0aGF0IHRoZSAudmFsdWUgZ2V0
dGVyIGhhcyB0aGUgY29ycmVjdCB2YWx1ZSB3aGVuIGEgdGltZWxpbmUgaXMKKyAgICAgIC8vIHJ1
bm5pbmcuIFRoZSB8dGVzdEZ1bmN0aW9ufCBpcyB0aGUgdW5kZXJseWluZyB0ZXN0IHRvIGJlIHJ1
bi4KKyAgICAgIGZ1bmN0aW9uIHJ1blRlc3Qoc2hvdWxkLCB0ZXN0RnVuY3Rpb24pIHsKKyAgICAg
ICAgLy8gQ3JlYXRlIGEgc2ltcGxlIGdyYXBoIGNvbnNpc3Rpbmcgb2YgYSBjb25zdGFudCBzb3Vy
Y2UgYW5kIGEgZ2FpbiBub2RlCisgICAgICAgIC8vIHdoZXJlIHRoZSBhdXRvbWF0aW9ucyBhcmUg
cnVuLiAgQSBzZXRWYWx1ZUF0VGltZSBldmVudCBzdGFydHMgdGhpbmdzCisgICAgICAgIC8vIG9m
Zi4KKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5k
ZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgICAgICBsZXQgc291cmNlID0gY29udGV4dC5jcmVh
dGVCdWZmZXJTb3VyY2UoKTsKKyAgICAgICAgc291cmNlLmJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50
QnVmZmVyKGNvbnRleHQsIDEsIDEpOworICAgICAgICBzb3VyY2UubG9vcCA9IHRydWU7CisgICAg
ICAgIGxldCBnYWluID0gY29udGV4dC5jcmVhdGVHYWluKCk7CisKKyAgICAgICAgc291cmNlLmNv
bm5lY3QoZ2Fpbik7CisgICAgICAgIGdhaW4uY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsK
KworICAgICAgICAvLyBTdGFydCB0aGUgdGltZWxpbmUgd2l0aCBzZXRWYWx1ZUF0VGltZSh2MCwg
dDApLgorICAgICAgICBsZXQgdjAgPSAwLjI1OworICAgICAgICBsZXQgdDAgPSAwOworICAgICAg
ICAvLyBFbmQgdmFsdWUgYW5kIHRpbWUsIGZvciB0aG9zZSB0aGF0IG5lZWQgaXQuICBUaGUgZW5k
IHRpbWUgaXMgbGVzcworICAgICAgICAvLyB0aGFuIHRoZSByZW5kZXJpbmcgZHVyYXRpb24gc28g
d2UgY2FuIHRlc3QgdGhhdCB0aGUgZmluYWwgdmFsdWVzIG9mCisgICAgICAgIC8vIHRoZSBhdXRv
bWF0aW9uIChpZiBhbnkpIGFyZSBhbHNvIGNvcnJlY3QuCisgICAgICAgIGxldCB2MSA9IDEwMDsK
KyAgICAgICAgbGV0IHQxID0gcmVuZGVyRHVyYXRpb24gLSA1ICogcmVuZGVyUXVhbnR1bVNpemUg
LyBzYW1wbGVSYXRlOworCisgICAgICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MCwgdDAp
OworCisgICAgICAgIC8vIFJ1biB0aGUgZGVzaXJlZCBhdXRvbWF0aW9uIHRlc3QuICBUaGUgdGVz
dCBmdW5jdGlvbiByZXR1cm5zIGEKKyAgICAgICAgLy8gZGljdGlvbmFyeSBjb25zaXN0aW5nIG9m
IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKKyAgICAgICAgLy8KKyAgICAgICAgLy8gfG1lc3Nh
Z2V8ICAgICAgICBhbiBpbmZvcm1hdGl2ZSBtZXNzYWdlIGFib3V0IHRoZSBhdXRvbWF0aW9uIGJl
aW5nCisgICAgICAgIC8vIHRlc3RlZC4gfGVycm9yVGhyZXNob2xkfCBlcnJvciB0aHJlc2hvbGQg
dG8gZGV0ZXJtaW5lIGlmIHRoZSB0ZXN0CisgICAgICAgIC8vIHBhc3NlcyBvciBub3QuIHxleHBl
Y3RlZFZhbHVlfCAgYSBmdW5jdGlvbiB0aGF0IGNvbXB1dGUgdGhlIGV4cGVjdGVkCisgICAgICAg
IC8vIHZhbHVlIGF0IHRpbWUgfHR8LgorICAgICAgICBsZXQgdGVzdCA9IHRlc3RGdW5jdGlvbihn
YWluLCB2MCwgdDAsIHYxLCB0MSk7CisKKyAgICAgICAgLy8gUHJpbnQgYW4gaW5mb3JtYXRpdmUg
bWVzc2FnZSBhYm91dCB0aGUgdGVzdCBiZWluZyBydW4uCisgICAgICAgIC8vIHRlc3RQYXNzZWQo
IkluaXRpYWxpemUgIiArIHRlc3QubWVzc2FnZSArICIgd2l0aCBzZXRWYWx1ZUF0VGltZSgiICsK
KyAgICAgICAgLy8gdjAgKyAiLCAiICsgdDAgKyAiKS4iKTsKKyAgICAgICAgc2hvdWxkKHRydWUs
ICdJbml0aWFsaXplJykKKyAgICAgICAgICAgIC5tZXNzYWdlKAorICAgICAgICAgICAgICAgIHRl
c3QubWVzc2FnZSArICcgd2l0aCBzZXRWYWx1ZUF0VGltZSgnICsgdjAgKyAnLCAnICsgdDAgKyAn
KScsCisgICAgICAgICAgICAgICAgJycpOworCisgICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTsK
KworICAgICAgICAvLyBNYXggcmVsYXRpdmUgZXJyb3IgZm91bmQgZm9yIHRoaXMgdGVzdC4gVGhp
cyBpcyBwcmludGVkIGlmIHRoZSB0ZXN0CisgICAgICAgIC8vIGZhaWxzIHNvIHRoYXQgc2V0dGlu
ZyB0aGUgdGhyZXNob2xkcyBpcyBlYXNpZXIuCisgICAgICAgIGxldCBtYXhFcnJvciA9IDA7CisK
KyAgICAgICAgLy8gRm9yIGV2ZXJ5IHJlbmRlcmluZyBxdWFudHVtIChleGNlcHQgdGhlIGZpcnN0
KSwgc3VzcGVuZCB0aGUgY29udGV4dAorICAgICAgICAvLyBzbyB0aGUgd2UgY2FuIGluc3BlY3Qg
dGhlIHZhbHVlIGF0dHJpYnV0ZSBhbmQgY29tcGFyZSBpdCB3aXRoIHRoZQorICAgICAgICAvLyBl
eHBlY3RlZCB2YWx1ZS4KKyAgICAgICAgZm9yIChsZXQgayA9IDE7IGsgPCByZW5kZXJMb29wczsg
KytrKSB7CisgICAgICAgICAgbGV0IHRpbWUgPSBrICogcmVuZGVyUXVhbnR1bVNpemUgLyBzYW1w
bGVSYXRlOworICAgICAgICAgIGNvbnRleHQuc3VzcGVuZCh0aW1lKQorICAgICAgICAgICAgICAu
dGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGUgY29udGV4dCBpcyBzdXBz
ZW5kZWQgYXQgdGltZSB8dGltZXwsIHdoaWNoIGlzIGp1c3QgYmVmb3JlCisgICAgICAgICAgICAg
ICAgLy8gdGhlIHJlbmRlcmluZyBxdWFudHVtIHN0YXJ0cy4gIFRodXMsIHRoZSB2YWx1ZSBvZiB0
aGUKKyAgICAgICAgICAgICAgICAvLyBhdHRyaWJ1dGUgaXMgYWN0dWFsbHkgMSBmcmFtZSBiZWZv
cmUgdGhlIGN1cnJlbnQgY29udGV4dAorICAgICAgICAgICAgICAgIC8vIHRpbWUuCisgICAgICAg
ICAgICAgICAgbGV0IHNhbXBsZVRpbWUgPSBjb250ZXh0LmN1cnJlbnRUaW1lIC0gMSAvIHNhbXBs
ZVJhdGU7CisKKyAgICAgICAgICAgICAgICAvLyBDb21wdXRlIHRoZSBtYXggcmVsYXRpdmUgZXJy
b3IKKyAgICAgICAgICAgICAgICBsZXQgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkVmFsdWUoc2Ft
cGxlVGltZSk7CisgICAgICAgICAgICAgICAgbGV0IHJlbEVycm9yID0KKyAgICAgICAgICAgICAg
ICAgICAgTWF0aC5hYnMoZXhwZWN0ZWQgLSBnYWluLmdhaW4udmFsdWUpIC8gTWF0aC5hYnMoZXhw
ZWN0ZWQpOworICAgICAgICAgICAgICAgIG1heEVycm9yID0gTWF0aC5tYXgocmVsRXJyb3IsIG1h
eEVycm9yKTsKKworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPQorICAgICAgICAgICAgICAgICAg
ICBzaG91bGQoCisgICAgICAgICAgICAgICAgICAgICAgICBnYWluLmdhaW4udmFsdWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0Lm1lc3NhZ2UgKyAnIGF0IGZyYW1lICcgKyAoc2FtcGxl
UmF0ZSAqIHNhbXBsZVRpbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgLmJlQ2xvc2VUbygK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCwge3RocmVzaG9sZDogdGVzdC5l
cnJvclRocmVzaG9sZCB8fCAwfSk7CisgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgIC50
aGVuKGNvbnRleHQucmVzdW1lLmJpbmQoY29udGV4dCkpOworICAgICAgICB9CisKKyAgICAgICAg
c291cmNlLnN0YXJ0KCk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuc3RhcnRSZW5kZXJpbmco
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdEJ1ZmZlcikgeworICAgICAgICAgIC8vIEp1c3QgcHJpbnQg
YSBmaW5hbCBwYXNzIChvciBmYWlsKSBtZXNzYWdlLgorICAgICAgICAgIHNob3VsZChzdWNjZXNz
LCAnR2FpbiAudmFsdWUgYXR0cmlidXRlIGZvciAnICsgdGVzdC5tZXNzYWdlKQorICAgICAgICAg
ICAgICAubWVzc2FnZSgKKyAgICAgICAgICAgICAgICAgICdjb3JyZWN0bHkgdXBkYXRlZCBkdXJp
bmcgYXV0b21hdGlvbicsCisgICAgICAgICAgICAgICAgICAnbm90IGNvcnJlY3RseSB1cGRhdGVk
IGR1cmluZyBhdXRvbWF0aW9uOyBtYXggZXJyb3IgPSAnICsKKyAgICAgICAgICAgICAgICAgICAg
ICBtYXhFcnJvcik7CisgICAgICAgIH0pOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFt
L2F1ZGlvcGFyYW0tdmFsdWUtc2V0dGVyLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS12YWx1ZS1zZXR0ZXItZXJyb3ItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVhN2ZlNGQ0YTBkNTY3YTdhOTVlYWY5ZDVmYzEwY2RkZTgyZDMy
ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2F1
ZGlvcGFyYW0tdmFsdWUtc2V0dGVyLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CisKK1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJU
ZXN0IHZhbHVlIHNldHRlciB3aXRoIHNldFZhbHVlQ3VydmVBdFRpbWUiIAorUEFTUyBBdWRpdCBy
ZXBvcnQgCitQQVNTID4gW1Rlc3QgdmFsdWUgc2V0dGVyIHdpdGggc2V0VmFsdWVDdXJ2ZUF0VGlt
ZV0gIAorUEFTUyAgIHNldFZhbHVlQ3VydmVBdFRpbWUoWy4uLl0sIDAuMDIzNDM3NSwgMC4wMzEy
NSkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIAorUEFTUyAgIFVzaW5nIHZhbHVlIHNldHRl
ciBhdCB0aW1lIDAuMDE1NjI1IGJlZm9yZSBjdXJ2ZSBzdGFydHMgZGlkIG5vdCB0aHJvdyBhbiBl
eGNlcHRpb24uIAorUEFTUyAgIFVzaW5nIHZhbHVlIHNldHRlciBhdCB0aW1lIDAuMDM5MDYyNSBp
biB0aGUgbWlkZGxlIG9mIHRoZSBjdXJ2ZSB0aHJldyBOb3RTdXBwb3J0ZWRFcnJvcjogIkV2ZW50
cyBhcmUgb3ZlcmxhcHBpbmciLiAKK1BBU1MgPCBbVGVzdCB2YWx1ZSBzZXR0ZXIgd2l0aCBzZXRW
YWx1ZUN1cnZlQXRUaW1lXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlv
bnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNj
ZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFt
L2F1ZGlvcGFyYW0tdmFsdWUtc2V0dGVyLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9BdWRpb1BhcmFtL2F1ZGlvcGFyYW0tdmFsdWUtc2V0dGVyLWVycm9yLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTUxZTBiZjUyM2EwM2M0MjMxN2RmZTE2NTNmYjhhMTE5ZmYxYTllNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vYXVkaW9wYXJhbS12YWx1ZS1z
ZXR0ZXItZXJyb3IuaHRtbApAQCAtMCwwICsxLDg5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBBdWRpb1BhcmFtIFZhbHVlIFNldHRlciBF
cnJvciBUZXN0cyAKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5q
cyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0
LXRlc3QtY29kZSI+CisgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDE2Mzg0OworICAgICAgLy8gTnVt
YmVyIG9mIGZyYW1lcyBpbiBhIHJlbmRlcmluZyBxdWFudHVtLgorICAgICAgLy8gVGVzdCBkb2Vz
bid0IG5lZWQgdG8gcnVuIGZvciB2ZXJ5IGxvbmcuCisgICAgICBsZXQgcmVuZGVyRHVyYXRpb24g
PSAwLjI7CisgICAgICBsZXQgcmVuZGVyRnJhbWVzID0gcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVS
YXRlOworICAgICAgbGV0IGF1dG9tYXRpb25FbmRUaW1lID0gMC4xOworCisgICAgICBsZXQgYXVk
aXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIGF1ZGl0LmRlZmluZSgKKyAg
ICAgICAgICAnVGVzdCB2YWx1ZSBzZXR0ZXIgd2l0aCBzZXRWYWx1ZUN1cnZlQXRUaW1lJywgKHRh
c2ssIHNob3VsZCkgPT4geworICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcgT2ZmbGluZUF1
ZGlvQ29udGV4dCgKKyAgICAgICAgICAgICAgICB7bGVuZ3RoOiByZW5kZXJGcmFtZXMsIHNhbXBs
ZVJhdGU6IHNhbXBsZVJhdGV9KTsKKworICAgICAgICAgICAgbGV0IHNyYyA9IG5ldyBDb25zdGFu
dFNvdXJjZU5vZGUoY29udGV4dCk7CisgICAgICAgICAgICBsZXQgZ2FpbiA9IG5ldyBHYWluTm9k
ZShjb250ZXh0KTsKKworICAgICAgICAgICAgc3JjLmNvbm5lY3QoZ2FpbikuY29ubmVjdChjb250
ZXh0LmRlc3RpbmF0aW9uKTsKKworICAgICAgICAgICAgbGV0IHJlbmRlcl9xdWFudHVtX2R1cmF0
aW9uID0KKyAgICAgICAgICAgICAgICBSRU5ERVJfUVVBTlRVTV9GUkFNRVMgLyBjb250ZXh0LnNh
bXBsZVJhdGU7CisKKyAgICAgICAgICAgIC8vIFN0YXJ0IGFuZCBkdXJhdGlvbiBvZiB0aGUgY3Vy
dmUgYXV0b21hdGlvbi4gIFRoZXNlIGFyZSBmYWlybHkKKyAgICAgICAgICAgIC8vIGFyYml0cmFy
eSwgYnV0IHRoZSBzdGFydCBzaG91bGQgYmUgYXQgbGVhc3QgMiByZW5kZXIgcXVhbnRhIGZyb20K
KyAgICAgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgdG8gYWxsb3cgdGltZSBmb3IgdGVzdGluZyB0
aGUgdmFsdWUgc2V0dGVyIGJlZm9yZQorICAgICAgICAgICAgLy8gdGhlIGN1cnZlIHN0YXJ0cy4g
IFRoZSBkdXJhdGlvbiBzaG91bGQgYmUgYXQgbGVhc3QgMiByZW5kZXIKKyAgICAgICAgICAgIC8v
IHF1YW50YSB0byBhbGxvdyB1cyB0byBhcHBseSB0aGUgdmFsdWUgc2V0dGVyIGluIHRoZSBtaWRk
bGUKKyAgICAgICAgICAgIC8vIChzb21ld2hlcmUpIG9mIHRoZSBjdXJ2ZS4KKyAgICAgICAgICAg
IGxldCBjdXJ2ZVN0YXJ0VGltZSA9IDMgKiByZW5kZXJfcXVhbnR1bV9kdXJhdGlvbjsKKyAgICAg
ICAgICAgIGxldCBjdXJ2ZUR1cmF0aW9uID0gNCAqIHJlbmRlcl9xdWFudHVtX2R1cmF0aW9uOwor
CisgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAgICAgKCkgPT4geworICAgICAgICAg
ICAgICAgICAgZ2Fpbi5nYWluLnNldFZhbHVlQ3VydmVBdFRpbWUoCisgICAgICAgICAgICAgICAg
ICAgICAgWy0yLCAxXSwgY3VydmVTdGFydFRpbWUsIGN1cnZlRHVyYXRpb24pOworICAgICAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICAgICAgYHNldFZhbHVlQ3VydmVBdFRpbWUoWy4uLl0sICR7
Y3VydmVTdGFydFRpbWV9LCAkeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJ2ZUR1cmF0aW9uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KWApCisg
ICAgICAgICAgICAgICAgLm5vdFRocm93KCk7CisKKyAgICAgICAgICAgIC8vIEFwcGx5aW5nIHRo
ZSB2YWx1ZSBzZXR0ZXIgb3V0c2lkZSB0aGUgY3VydmUgYXV0b21hdGlvbiBzaG91bGQgbm90Cisg
ICAgICAgICAgICAvLyB0aHJvdy4gIFRoZSBnYWluIHZhbHVlIGlzIGFyYml0cmFyeS4KKyAgICAg
ICAgICAgIGNvbnRleHQuc3VzcGVuZChjdXJ2ZVN0YXJ0VGltZSAtIHJlbmRlcl9xdWFudHVtX2R1
cmF0aW9uKQorICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgICAgICAgICAgICAoKSA9PiBnYWluLmdhaW4udmFsdWUgPSBN
YXRoLlBJLAorICAgICAgICAgICAgICAgICAgICAgICdVc2luZyB2YWx1ZSBzZXR0ZXIgYXQgdGlt
ZSAnICsgY29udGV4dC5jdXJyZW50VGltZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICcg
YmVmb3JlIGN1cnZlIHN0YXJ0cycpCisgICAgICAgICAgICAgICAgICAgICAgLm5vdFRocm93KCk7
CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAudGhlbigoKSA9PiBjb250ZXh0
LnJlc3VtZSgpKTsKKworICAgICAgICAgICAgLy8gQXBwbHlpbmcgdGhlIHZhbHVlIHNldHRlciBp
bnNpZGUgdGhlIGN1cnZlIGF1dG9tYXRpb24gc2hvdWxkIG5vdAorICAgICAgICAgICAgLy8gdGhy
b3cuICBUaGUgZ2FpbiB2YWx1ZSBpcyBhcmJpdHJhcnkuCisgICAgICAgICAgICBjb250ZXh0LnN1
c3BlbmQoY3VydmVTdGFydFRpbWUgKyBjdXJ2ZUR1cmF0aW9uIC8gMikKKyAgICAgICAgICAgICAg
ICAudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICBzaG91bGQoCisgICAgICAgICAgICAg
ICAgICAgICAgKCkgPT4gZ2Fpbi5nYWluLnZhbHVlID0gMCwKKyAgICAgICAgICAgICAgICAgICAg
ICAnVXNpbmcgdmFsdWUgc2V0dGVyIGF0IHRpbWUgJyArIGNvbnRleHQuY3VycmVudFRpbWUgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAnIGluIHRoZSBtaWRkbGUgb2YgdGhlIGN1cnZlJykK
KyAgICAgICAgICAgICAgICAgICAgICAudGhyb3coRE9NRXhjZXB0aW9uLCAnTm90U3VwcG9ydGVk
RXJyb3InKTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC50aGVuKCgpID0+
IGNvbnRleHQucmVzdW1lKCkpOworCisgICAgICAgICAgICBzcmMuc3RhcnQoKTsKKworICAgICAg
ICAgICAgLy8gRG9uJ3QgY2FyZSBhYm91dCB0aGUgYWN0dWFsIG91dHB1dC4KKyAgICAgICAgICAg
IGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKCgpID0+IHRhc2suZG9uZSgpKTsKKyAgICAg
ICAgICB9KTsKKworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vY2Fu
Y2VsLXZhbHVlcy1jcmFzaC05MTMyMTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vQXVkaW9QYXJhbS9jYW5jZWwtdmFsdWVzLWNyYXNoLTkxMzIxNy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTJlMTQ4MzI2NGQ2MDgxNmJmOTA1OTM5MmZhOTQ3YjRjZDdlNjI1YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vY2FuY2VsLXZhbHVl
cy1jcmFzaC05MTMyMTctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTICMgQVVE
SVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCitQQVNTIEV4ZWN1dGluZyAiY3Jhc2giIAorUEFTUyBB
dWRpdCByZXBvcnQgCitQQVNTID4gW2NyYXNoXSAgCitQQVNTIDwgW2NyYXNoXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAwIGFzc2VydGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVO
TkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2NhbmNlbC12YWx1ZXMtY3Jhc2gtOTEzMjE3
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL2NhbmNlbC12YWx1ZXMtY3Jh
c2gtOTEzMjE3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVjNWY1YWM4OTlmMDg0NmM3MjY3MWRkMjk5ZmFm
YzE5OTgwYjJmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0vY2FuY2VsLXZhbHVlcy1jcmFzaC05MTMyMTcuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICBUZXN0
IGlmIGNhbmNlbGluZyBldmVudHMgYWZ0ZXIgc2V0VGFyZ2V0QXRUaW1lIGNyYXNoZXMKKyAgICA8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgor
ICA8Ym9keT4KKyAgICA8c2NyaXB0IGlkPSJsYXlvdXQtdGVzdC1jb2RlIj4KKyAgICAgIC8vIEFy
Yml0cmFyeSBwYXJhbWV0ZXJzIGZvciB0aGUgb2ZmbGluZSBjb250ZXh0LgorICAgICAgY29uc3Qg
c2FtcGxlUmF0ZSA9IDQ4MDAwOworICAgICAgY29uc3QgcmVuZGVyRHVyYXRpb24gPSAxOworICAg
ICAgY29uc3QgY2hhbm5lbHMgPSAyOworICAgICAgY29uc3QgcmVuZGVyRnJhbWVzID0gcmVuZGVy
RHVyYXRpb24gKiBzYW1wbGVSYXRlOworCisgICAgICBjb25zdCBhdWRpdCA9IEF1ZGl0LmNyZWF0
ZVRhc2tSdW5uZXIoKTsKKworICAgICAgYXVkaXQuZGVmaW5lKCdjcmFzaCcsICh0YXNrLCBzaG91
bGQpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4dCA9CisgICAgICAgICAgICBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dChjaGFubmVscywgcmVuZGVyRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICAg
ICAgY29uc3Qgc291cmNlID0gY29udGV4dC5jcmVhdGVDb25zdGFudFNvdXJjZSgpOworICAgICAg
ICBjb25zdCBhbmFseXNlciA9IGNvbnRleHQuY3JlYXRlQW5hbHlzZXIoKTsKKyAgICAgICAgc291
cmNlLmNvbm5lY3QoYW5hbHlzZXIpOworCisgICAgICAgIC8vIFNjaGVkdWxpbmcgdGhlIGZvbGxv
d2luZyBhdCBhbiBlYXJsaWVyIHRpbWUgdGhhbiBhYm92ZSBjYXVzZXMgdGhlCisgICAgICAgIC8v
IHBhZ2UgdG8gY3Jhc2ggaW4gNzMuMC4zNjM4LjAuIFNlZSBjcmJ1Zy5jb20vOTEzMjE3LgorICAg
ICAgICBzb3VyY2Uub2Zmc2V0LnNldFZhbHVlQXRUaW1lKDEsIGNvbnRleHQuY3VycmVudFRpbWUp
OworICAgICAgICBzb3VyY2Uub2Zmc2V0LnNldFRhcmdldEF0VGltZSgwLCBjb250ZXh0LmN1cnJl
bnRUaW1lICsgMiwgMC4wMDAwMSk7CisgICAgICAgIHNvdXJjZS5vZmZzZXQuY2FuY2VsQW5kSG9s
ZEF0VGltZShjb250ZXh0LmN1cnJlbnRUaW1lICsgMS45OTk5OSk7CisKKyAgICAgICAgc291cmNl
LnN0YXJ0KGNvbnRleHQuY3VycmVudFRpbWUpOworCisgICAgICAgIGNvbnRleHQuc3RhcnRSZW5k
ZXJpbmcoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAvLyBTaG91bGQgZmluaXNoIHdpdGhvdXQg
YSBjcmFzaC4KKyAgICAgICAgICB0YXNrLmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgICB9KTsK
KworICAgICAgYXVkaXQucnVuKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vdmFsdWUtc2V0dGVy
LXdhcm5pbmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0v
dmFsdWUtc2V0dGVyLXdhcm5pbmdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjc3MDI5MTA4
NzMyNDEwMTVjNDEzMDc1YWVkMzFiZTVlZTdlMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS92YWx1ZS1zZXR0ZXItd2FybmluZ3MtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzcgQEAKK0NPTlNPTEUgTUVTU0FHRTogW2F1ZGl0LmpzXSB0aGlzIHRl
c3QgcmVxdWlyZXMgdGhlIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCB0aGUgZXhwZWN0ZWQgcmVz
dWx0IHdoZW4gaXQgcnVucyB3aXRoIHJ1bl93ZWJfdGVzdHMucHkuCitDT05TT0xFIE1FU1NBR0U6
IFRlc3Q6IHRlc3QtMAorQ09OU09MRSBNRVNTQUdFOiBUZXN0OiB0ZXN0LTEKK0NPTlNPTEUgTUVT
U0FHRTogVGVzdDogdGVzdC0yCitDT05TT0xFIE1FU1NBR0U6IFRlc3Q6IHRlc3QtMworQ09OU09M
RSBNRVNTQUdFOiBUZXN0OiB0ZXN0LTQKK0NPTlNPTEUgTUVTU0FHRTogVGVzdDogdGVzdC01CisK
K1BBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKK1BBU1MgRXhlY3V0aW5nICJ0ZXN0
LTAiIAorUEFTUyBFeGVjdXRpbmcgInRlc3QtMSIgCitQQVNTIEV4ZWN1dGluZyAidGVzdC0yIiAK
K1BBU1MgRXhlY3V0aW5nICJ0ZXN0LTMiIAorUEFTUyBFeGVjdXRpbmcgInRlc3QtNCIgCitQQVNT
IEV4ZWN1dGluZyAidGVzdC01IiAKK1BBU1MgQXVkaXQgcmVwb3J0IAorUEFTUyA+IFt0ZXN0LTBd
ICAKK1BBU1MgICB0ZXN0LTAgOiByZW5kZXJlZCBzdWNjZXNzZnVsbHkgCitQQVNTIDwgW3Rlc3Qt
MF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKK1BBU1MgPiBb
dGVzdC0xXSAgCitQQVNTICAgdGVzdC0xIDogcmVuZGVyZWQgc3VjY2Vzc2Z1bGx5IAorUEFTUyA8
IFt0ZXN0LTFdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCitQ
QVNTID4gW3Rlc3QtMl0gIAorUEFTUyAgIHRlc3QtMiA6IHJlbmRlcmVkIHN1Y2Nlc3NmdWxseSAK
K1BBU1MgPCBbdGVzdC0yXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlv
bnMpIAorUEFTUyA+IFt0ZXN0LTNdICAKK1BBU1MgICB0ZXN0LTMgOiByZW5kZXJlZCBzdWNjZXNz
ZnVsbHkgCitQQVNTIDwgW3Rlc3QtM10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBh
c3NlcnRpb25zKSAKK1BBU1MgPiBbdGVzdC00XSAgCitQQVNTICAgdGVzdC00IDogcmVuZGVyZWQg
c3VjY2Vzc2Z1bGx5IAorUEFTUyA8IFt0ZXN0LTRdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRv
dGFsIDEgYXNzZXJ0aW9ucykgCitQQVNTID4gW3Rlc3QtNV0gIAorUEFTUyAgIFZhbHVlIHNldHRl
ciBvdmVybGFwcyBzZXRWYWx1ZUN1cnZlIHRocmV3IE5vdFN1cHBvcnRlZEVycm9yOiAiRXZlbnRz
IGFyZSBvdmVybGFwcGluZyIuIAorUEFTUyAgIHRlc3QtNSA6IHJlbmRlcmVkIHN1Y2Nlc3NmdWxs
eSAKK1BBU1MgPCBbdGVzdC01XSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAyIGFzc2Vy
dGlvbnMpIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiA2IHRhc2tzIHJhbiBz
dWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1Bh
cmFtL3ZhbHVlLXNldHRlci13YXJuaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9QYXJhbS92YWx1ZS1zZXR0ZXItd2FybmluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjJkODY5MjE1
ZGUyYTdhZGE4NTkxMWNlYTI1OWMxYTYwN2Q5NWI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS92YWx1ZS1zZXR0ZXItd2FybmluZ3MuaHRtbApAQCAt
MCwwICsxLDE2NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRp
dGxlPgorICAgICAgVGVzdCBXYXJuaW5nIE1lc3NhZ2VzIGZvciBWYWx1ZSBTZXR0ZXIgYXJlIFBy
b2R1Y2VkCisgICAgPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYXVkaXQtdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+
CisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKHtyZXF1aXJlUmVzdWx0
RmlsZTogdHJ1ZX0pOworCisgICAgICBhdWRpdC5kZWZpbmUoe2xhYmVsOiAndGVzdC0wJ30sICh0
YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgcnVuVGVzdCgKKyAgICAgICAgICAgIHRhc2subGFi
ZWwsIHNob3VsZCwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6ICdz
ZXRWYWx1ZUF0VGltZScsIGFyZ3M6IFswLCAwXX0sCisgICAgICAgICAgICAgIHttZXRob2ROYW1l
OiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbMSwgMC4yXX0sCisgICAgICAgICAgICAgIHttZXRo
b2ROYW1lOiAnbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnLCBhcmdzOiBbOTksIDAuN119LAorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgLy8gTm8gb3ZlcmxhcCwg
c28gbm8gd2FybmluZworICAgICAgICAgICAgICB7dGltZTogMC4xLCB2YWx1ZTogLTF9LAorICAg
ICAgICAgICAgICAvLyBPdmVybGFwcyBzZXRWYWx1ZSB0byBsaW5lYXJSYW1wCisgICAgICAgICAg
ICAgIHt0aW1lOiAwLjUsIHZhbHVlOiA5OX0sCisgICAgICAgICAgICAgIC8vIFBhc3QgZW5kIG9m
IGxpbmVhclJhbXAsIHNvIG5vIHdhcm5pbmcKKyAgICAgICAgICAgICAge3RpbWU6IDAuOSwgdmFs
dWU6IDUwfQorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIC50aGVuKCgpID0+IHRhc2suZG9u
ZSgpKTsKKyAgICAgIH0pOworCisgICAgICBhdWRpdC5kZWZpbmUoe2xhYmVsOiAndGVzdC0xJ30s
ICh0YXNrLCBzaG91bGQpID0+IHsKKyAgICAgICAgcnVuVGVzdCgKKyAgICAgICAgICAgIHRhc2su
bGFiZWwsIHNob3VsZCwKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6
ICdzZXRWYWx1ZUF0VGltZScsIGFyZ3M6IFswLCAwXX0sCisgICAgICAgICAgICAgIHttZXRob2RO
YW1lOiAnbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnLCBhcmdzOiBbMSwgMC4yMV19LAorICAgICAg
ICAgICAgICB7bWV0aG9kTmFtZTogJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJywgYXJnczogWzk5
LCAwLjcxXX0sCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAv
LyBPdmVybGFwcyBzZXRWYWx1ZSB0byBsaW5lYXJSYW1wCisgICAgICAgICAgICAgIHt0aW1lOiAw
LjEsIHZhbHVlOiAtMX0sCisgICAgICAgICAgICAgIC8vIE92ZXJsYXBzIGxpbmVhclJhbXAgdG8g
bGluZWFyUmFtcAorICAgICAgICAgICAgICB7dGltZTogMC41LCB2YWx1ZTogOTl9LAorICAgICAg
ICAgICAgICAvLyBQYXN0IGVuZCBvZiBsaW5lYXJSYW1wLCBzbyBubyB3YXJuaW5nCisgICAgICAg
ICAgICAgIHt0aW1lOiAwLjksIHZhbHVlOiA1MH0KKyAgICAgICAgICAgIF0pCisgICAgICAgICAg
ICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVkaXQuZGVm
aW5lKHtsYWJlbDogJ3Rlc3QtMid9LCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAgIHJ1blRl
c3QoCisgICAgICAgICAgICB0YXNrLmxhYmVsLCBzaG91bGQsCisgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgIHttZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbMCwgMF19LAor
ICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1lJywgYXJn
czogWzEsIDAuMjJdfSwKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6ICdzZXRWYWx1ZUF0VGlt
ZScsIGFyZ3M6IFs5OSwgMC43Ml19LAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIFsKKyAg
ICAgICAgICAgICAgLy8gT3ZlcmxhcHMgc2V0VmFsdWUgdG8gbGluZWFyUmFtcAorICAgICAgICAg
ICAgICB7dGltZTogMC4xLCB2YWx1ZTogLTF9LAorICAgICAgICAgICAgICAvLyBCZXR3ZWVuIGVu
ZCBvZiBsaW5lYXJSYW1wIGFuZCBzdGFydCBvZiBzZXRWYWx1ZSwgc28gbm8gd2FybmluZy4KKyAg
ICAgICAgICAgICAge3RpbWU6IDAuNSwgdmFsdWU6IDk5fSwKKyAgICAgICAgICAgIF0pCisgICAg
ICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAgICAgYXVk
aXQuZGVmaW5lKHtsYWJlbDogJ3Rlc3QtMyd9LCAodGFzaywgc2hvdWxkKSA9PiB7CisgICAgICAg
IHJ1blRlc3QoCisgICAgICAgICAgICB0YXNrLmxhYmVsLCBzaG91bGQsCisgICAgICAgICAgICBb
CisgICAgICAgICAgICAgIHttZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdzOiBbMCwg
MF19LAorICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ2xpbmVhclJhbXBUb1ZhbHVlQXRUaW1l
JywgYXJnczogWzEsIDAuMjNdfSwKKyAgICAgICAgICAgICAge21ldGhvZE5hbWU6ICdzZXRWYWx1
ZUF0VGltZScsIGFyZ3M6IFs5OSwgMC43M119LAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
IFsKKyAgICAgICAgICAgICAgLy8gT3ZlcmxhcHMgc2V0VmFsdWUgdG8gbGluZWFyUmFtcAorICAg
ICAgICAgICAgICB7dGltZTogMC4xLCB2YWx1ZTogLTF9LAorICAgICAgICAgICAgICAvLyBCZXR3
ZWVuIGVuZCBvZiBsaW5lYXJSYW1wIGFuZCBzdGFydCBvZiBzZXRWYWx1ZSwgc28gbm8gd2Fybmlu
Zy4KKyAgICAgICAgICAgICAge3RpbWU6IDAuNSwgdmFsdWU6IDk5fSwKKyAgICAgICAgICAgIF0p
CisgICAgICAgICAgICAudGhlbigoKSA9PiB0YXNrLmRvbmUoKSk7CisgICAgICB9KTsKKworICAg
ICAgYXVkaXQuZGVmaW5lKHtsYWJlbDogJ3Rlc3QtNCd9LCAodGFzaywgc2hvdWxkKSA9PiB7Cisg
ICAgICAgIHJ1blRlc3QoCisgICAgICAgICAgICB0YXNrLmxhYmVsLCBzaG91bGQsCisgICAgICAg
ICAgICBbCisgICAgICAgICAgICAgIHttZXRob2ROYW1lOiAnc2V0VmFsdWVBdFRpbWUnLCBhcmdz
OiBbMCwgMF19LAorICAgICAgICAgICAgICB7bWV0aG9kTmFtZTogJ3NldFRhcmdldEF0VGltZScs
IGFyZ3M6IFsxLCAwLjI0LCAuMV19LAorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIFsKKyAg
ICAgICAgICAgICAgLy8gTm8gb3ZlcmxhcC4KKyAgICAgICAgICAgICAge3RpbWU6IDAuMSwgdmFs
dWU6IC0xfSwKKyAgICAgICAgICAgICAgLy8gT3ZlcmxhcHMgc2V0VGFyZ2V0CisgICAgICAgICAg
ICAgIHt0aW1lOiAwLjUsIHZhbHVlOiA5OX0sCisgICAgICAgICAgICBdKQorICAgICAgICAgICAg
LnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LmRlZmlu
ZSh7bGFiZWw6ICd0ZXN0LTUnfSwgKHRhc2ssIHNob3VsZCkgPT4geworICAgICAgICBydW5UZXN0
KAorICAgICAgICAgICAgdGFzay5sYWJlbCwgc2hvdWxkLAorICAgICAgICAgICAgWworICAgICAg
ICAgICAgICB7bWV0aG9kTmFtZTogJ3NldFZhbHVlQXRUaW1lJywgYXJnczogWzAsIDBdfSwKKyAg
ICAgICAgICAgICAge21ldGhvZE5hbWU6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lJywgYXJnczogW1sx
LCAyLCAzXSwgMC4yNSwgLjVdfSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgIC8vIE5vIG92ZXJsYXAuCisgICAgICAgICAgICAgIHt0aW1lOiAwLjEsIHZhbHVl
OiAtMX0sCisgICAgICAgICAgICAgIC8vIE92ZXJsYXBzIHNldFZhbHVlQ3VydmUKKyAgICAgICAg
ICAgICAge3RpbWU6IDAuNSwgdmFsdWU6IDk5LCBzaG91bGRUaHJvdzogdHJ1ZX0sCisgICAgICAg
ICAgICAgIC8vIFBhc3QgZW5kIG9mIHNldFZhbHVlQ3VydmUsIHNvIG5vIHdhcm5pbmcKKyAgICAg
ICAgICAgICAge3RpbWU6IC45LCB2YWx1ZTogNTB9CisgICAgICAgICAgICBdKQorICAgICAgICAg
ICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOworICAgICAgfSk7CisKKyAgICAgIGF1ZGl0LnJ1
bigpOworCisgICAgICAvLyBSdW4gdGVzdCB3aXRoIGF1dG9tYXRpb25zIGdpdmVuIGluIHxhdXRv
bWF0aW9uTGlzdHwgYW5kIHdpdGggdmFsdWUKKyAgICAgIC8vIHNldHRlcnMgZ2l2ZW4gaW4gfHZh
bHVlU2V0dGVyTGlzdHwuCisgICAgICBmdW5jdGlvbiBydW5UZXN0KHRhc2tMYWJlbCwgc2hvdWxk
LCBhdXRvbWF0aW9uTGlzdCwgdmFsdWVTZXR0ZXJMaXN0KSB7CisgICAgICAgIC8vIFRoaXMgbG9n
IG1lc3NhZ2UgaXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc2VlIHdoZXJlIHRoZSB3YXJuaW5ncwor
ICAgICAgICAvLyBtZXNzYWdlcyBjb21lIGZyb20gaW4gdGhlIGxvZ3MuCisgICAgICAgIGNvbnNv
bGUubG9nKCdUZXN0OiAnICsgdGFza0xhYmVsKTsKKworICAgICAgICAvLyBGYWlybHkgYXJiaXRy
YXJ5IGR1cmF0aW9uIGFuZCBzYW1wbGUgcmF0ZS4KKyAgICAgICAgbGV0IGNvbnRleHQgPSBuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCA0ODAwMCwgNDgwMDApOworCisgICAgICAgIC8vIEZvciBz
aW1wbGljaXR5LCBqdXN0IGRvIHRoZSBhdXRvbWF0aW9ucyBvbiBhIENvbnN0YW50U291cmNlTm9k
ZS4KKyAgICAgICAgbGV0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7Cisg
ICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworCisgICAgICAgIC8vIFNl
dCB1cCBhdXRvbWF0aW9ucy4KKyAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBhdXRvbWF0aW9uTGlz
dCkgeworICAgICAgICAgIHNyYy5vZmZzZXRbaXRlbS5tZXRob2ROYW1lXSguLi5pdGVtLmFyZ3Mp
OworICAgICAgICB9CisKKyAgICAgICAgLy8gU3VzcGVuZCB0aGUgY29udGV4dCBhdCB0aGUgc3Bl
Y2lmaWVkIHRpbWVzIGFuZCBkaXJlY3RseSBzZXQgdGhlCisgICAgICAgIC8vIHZhbHVlLgorICAg
ICAgICBmb3IgKGxldCBpdGVtIG9mIHZhbHVlU2V0dGVyTGlzdCkgeworICAgICAgICAgIGNvbnRl
eHQuc3VzcGVuZChpdGVtLnRpbWUpCisgICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAoaXRlbS5zaG91bGRUaHJvdyA9PT0gdHJ1ZSkgeworICAgICAgICAgICAg
ICAgICAgc2hvdWxkKCgpID0+IHNyYy5vZmZzZXQudmFsdWUgPSBpdGVtLnZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAnVmFsdWUgc2V0dGVyIG92ZXJsYXBzIHNldFZhbHVlQ3VydmUnKQorICAg
ICAgICAgICAgICAgICAgICAudGhyb3coRE9NRXhjZXB0aW9uLCAnTm90U3VwcG9ydGVkRXJyb3In
KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgc3JjLm9mZnNl
dC52YWx1ZSA9IGl0ZW0udmFsdWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9
KQorICAgICAgICAgICAgICAudGhlbigoKSA9PiBjb250ZXh0LnJlc3VtZSgpKTsKKyAgICAgICAg
fQorCisgICAgICAgIHNyYy5zdGFydCgpOworCisgICAgICAgIHJldHVybiBjb250ZXh0LnN0YXJ0
UmVuZGVyaW5nKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgc2hvdWxkKHRydWUsIHRhc2tMYWJl
bCkubWVzc2FnZSgnOiByZW5kZXJlZCBzdWNjZXNzZnVsbHknLCAnRkFJTEVEJyk7CisgICAgICAg
IH0pOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL3dvcmtsZXQtd2FybmluZ3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVkaW9QYXJhbS93b3JrbGV0LXdhcm5p
bmdzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjc5YWY1NzAzMDc1ZTE4OTk3ZTIzNzVkYWU2
NDdmM2M1YzZiYjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vQXVk
aW9QYXJhbS93b3JrbGV0LXdhcm5pbmdzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKKwor
UEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAorRkFJTCBFeGVjdXRpbmcgIkF1ZGlv
V29ya2xldCBBdWRpb1BhcmFtIiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdjb250ZXh0LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUnKSIKK1BBU1MgQXVkaXQg
cmVwb3J0IAorUEFTUyA+IFtBdWRpb1dvcmtsZXQgQXVkaW9QYXJhbV0gR2VuZXJhdGUgd2Fybmlu
Z3MgaWYgb3V0c2lkZSBub21pbmFsIHJhbmdlIAorUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIEZJ
TklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL3dvcmtsZXQtd2FybmluZ3MuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0vd29ya2xldC13YXJuaW5ncy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ5NGI0NzVjNWE3NmIzMDZkYmRjMDRkNTg3YWVlZWUyNWQ5MjVhMDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9BdWRpb1BhcmFtL3dvcmtsZXQtd2FybmluZ3MuaHRt
bApAQCAtMCwwICsxLDU4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAg
ICA8dGl0bGU+CisgICAgICBUZXN0IEF1ZGlvV29ya2xldCBBdWRpb1BhcmFtIFdhcm5pbmcgTWVz
c2FnZXMKKyAgICA8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hdWRpdC11dGlsLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2F1ZGl0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3dvcmtsZXQtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBpZD0ibGF5b3V0LXRlc3QtY29kZSI+
CisgICAgICBsZXQgYXVkaXQgPSBBdWRpdC5jcmVhdGVUYXNrUnVubmVyKCk7CisKKyAgICAgIGF1
ZGl0LmRlZmluZSgKKyAgICAgICAgICB7CisgICAgICAgICAgICBsYWJlbDogJ0F1ZGlvV29ya2xl
dCBBdWRpb1BhcmFtJywKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgd2Fybmlu
Z3MgaWYgb3V0c2lkZSBub21pbmFsIHJhbmdlJworICAgICAgICAgIH0sCisgICAgICAgICAgKHRh
c2ssIHNob3VsZCkgPT4geworICAgICAgICAgICAgLy8gQW55IHJlYXNvbmFibGUgc2FtcGxlIHJh
dGUgd2lsbCB3b3JrCisgICAgICAgICAgICBsZXQgc2FtcGxlUmF0ZSA9IDE2MDAwOworICAgICAg
ICAgICAgbGV0IHJlbmRlclRpbWUgPSAxOworICAgICAgICAgICAgbGV0IHJlbmRlckxlbmd0aCA9
IHJlbmRlclRpbWUgKiBzYW1wbGVSYXRlOworICAgICAgICAgICAgbGV0IGNvbnRleHQgPQorICAg
ICAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckxlbmd0aCwgc2Ft
cGxlUmF0ZSk7CisgICAgICAgICAgICBjb250ZXh0LmF1ZGlvV29ya2xldC5hZGRNb2R1bGUoTm9p
c2VHZW5Xb3JrbGV0VXJsKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgbGV0IG5vaXNlR2Vu
ZXJhdG9yID0KKyAgICAgICAgICAgICAgICAgIG5ldyBBdWRpb1dvcmtsZXROb2RlKGNvbnRleHQs
ICdub2lzZS1nZW5lcmF0b3InKTsKKyAgICAgICAgICAgICAgbm9pc2VHZW5lcmF0b3IuY29ubmVj
dChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKyAgICAgICAgICAgICAgbGV0IHBhcmFtID0gbm9pc2VH
ZW5lcmF0b3IucGFyYW1ldGVycy5nZXQoJ2FtcGxpdHVkZScpOworICAgICAgICAgICAgICAvLyBT
ZXQgdGhlIHZhbHVlIGluc2lkZSB0aGUgbm9taW5hbCByYW5nZTsgbm8gd2FybmluZyBzaG91bGQg
YmUKKyAgICAgICAgICAgICAgLy8gZ2VuZXJhdGVkLgorICAgICAgICAgICAgICBwYXJhbS52YWx1
ZSA9IC4xOworICAgICAgICAgICAgICAvLyBTZXQgdGhlIHZhbHVlIG91dHNpZGUgdGhlIG5vbWlu
YWwgcmFuZ2UgdG8gZ2VuZXJhdGUgYQorICAgICAgICAgICAgICAvLyB3YXJuaW5nLgorICAgICAg
ICAgICAgICBwYXJhbS52YWx1ZSA9IDk5OworCisgICAgICAgICAgICAgIC8vIFNldCB1cCBhdXRv
bWF0aW9uIG91dHNpZGUgdGhlIG5vbWluYWwgcmFuZ2UgdG8gZ2VuZXJhdGUgYQorICAgICAgICAg
ICAgICAvLyB3YXJuaW5nLgorICAgICAgICAgICAgICBwYXJhbS5zZXRWYWx1ZUF0VGltZSgtMSwg
cmVuZGVyVGltZSAvIDQpOworICAgICAgICAgICAgICBwYXJhbS5saW5lYXJSYW1wVG9WYWx1ZUF0
VGltZSg1LCByZW5kZXJUaW1lKTsKKworICAgICAgICAgICAgICAvLyBSZW5kZXI7IHdlIGRvbid0
IGNhcmUgd2hhdCB0aGUgZ2VuZXJhdGVkIHJlc3VsdCBpcy4KKyAgICAgICAgICAgICAgY29udGV4
dC5zdGFydFJlbmRlcmluZygpCisgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIHNob3VsZCh0cnVlLCAnUmVuZGVyaW5nIHN1Y2NlZWRlZCcpLmJlVHJ1
ZSgpOworICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+
IHRhc2suZG9uZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgIH0pOworCisgICAgICBh
dWRpdC5ydW4oKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWViZWE5MDBkOGIz
MjRiNWM2NGY4YmFiNGY4NDkyMmM1YTAwMTU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY2FuY2Vs
LWFuZC1ob2xkLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi0K
LVBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBTVEFSVEVELiAKLVBBU1MgRXhlY3V0aW5nICJsaW5l
YXIiIAotUEFTUyBFeGVjdXRpbmcgImV4cG9uZW50aWFsIiAKLVBBU1MgRXhlY3V0aW5nICJzZXRU
YXJnZXQiIAotUEFTUyBFeGVjdXRpbmcgInNldFZhbHVlQ3VydmUiIAotUEFTUyBFeGVjdXRpbmcg
InNldFZhbHVlQ3VydmUgYWZ0ZXIgZW5kIiAKLVBBU1MgRXhlY3V0aW5nICJpbml0aWFsIHNldFRh
cmdldCIgCi1QQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IExpbmVhciIgCi1QQVNTIEV4ZWN1
dGluZyAicG9zdCBjYW5jZWw6IEV4cG9uZW50aWFsIiAKLVBBU1MgRXhlY3V0aW5nICJwb3N0IGNh
bmNlbDogVmFsdWVDdXJ2ZSIgCi1QQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IHNldFRhcmdl
dCIgCi1QQVNTIEV4ZWN1dGluZyAicG9zdCBjYW5jZWw6IHNldFZhbHVlIiAKLVBBU1MgRXhlY3V0
aW5nICJjYW5jZWwgZnV0dXJlIHNldFRhcmdldCIgCi1QQVNTIEV4ZWN1dGluZyAiY2FuY2VsIHNl
dFRhcmdldCBub3ciIAotUEFTUyBFeGVjdXRpbmcgImNhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2
ZSIgCi1QQVNTIEV4ZWN1dGluZyAiY2FuY2VsIHNldFZhbHVlQ3VydmUgbm93IiAKLVBBU1MgRXhl
Y3V0aW5nICJsaW5lYXIsIGNhbmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVhciIgCi1QQVNTIEF1
ZGl0IHJlcG9ydCAKLVBBU1MgPiBbbGluZWFyXSBDYW5jZWwgbGluZWFyUmFtcFRvVmFsdWVBdFRp
bWUgCi1QQVNTICAgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAs
IDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxl
bWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwi
cmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBBU1MgICBDYW5jZWxsaW5nIGxpbmVhclJhbXBUb1Zh
bHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250YWlu
cyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAotUEFTUyAgIEV4cGVjdGVk
IHZhbHVlIGZvciBjYW5jZWxsaW5nIGxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1w
VG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGlu
IGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKLVBBU1MgPCBbbGluZWFyXSBBbGwgYXNzZXJ0aW9u
cyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAotUEFTUyA+IFtleHBvbmVudGlhbF0gQ2Fu
Y2VsIGV4cG9uZW50aWFsUmFtcEF0VGltZSAKLVBBU1MgICBleHBvbmVudGlhbFJhbXBUb1ZhbHVl
KDAuMDAxLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRo
IGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6NS45NjA1
ZS04LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyAgIENhbmNlbGxpbmcgZXhwb25lbnRp
YWxSYW1wVG9WYWx1ZSgwLjAwMSwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC4wMzM5MzIyMjAxOTA3NjM0NzQuIAotUEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZv
ciBjYW5jZWxsaW5nIGV4cG9uZW50aWFsUmFtcFRvVmFsdWUoMC4wMDEsIDAuNSkgYXQgdGltZSAw
LjI1IGlzIDAuMDMzOTMyMjE2NDY1NDczMTc1IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDAwMTg2
NjQuIAotUEFTUyA8IFtleHBvbmVudGlhbF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MyBhc3NlcnRpb25zKSAKLVBBU1MgPiBbc2V0VGFyZ2V0XSBDYW5jZWwgc2V0VGFyZ2V0QXRUaW1l
IAotUEFTUyAgIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjA1KSB1cCB0byB0aW1lIDAuMjUg
ZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9m
IHsiYWJzb2x1dGVUaHJlc2hvbGQiOjQuNTI2N2UtNywicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAK
LVBBU1MgICBDYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjA1KSBhdCB0aW1l
IDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4wMDgyMjk3NTExMzk4NzkyMjcuIAot
UEFTUyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgwLCAw
LjAxLCAwLjA1KSBhdCB0aW1lIDAuMjUgaXMgMC4wMDgyMjk3NDc0MTQ1ODg5Mjggd2l0aGluIGFu
IGVycm9yIG9mIDQuNTI2N2UtNy4gCi1QQVNTIDwgW3NldFRhcmdldF0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKLVBBU1MgPiBbc2V0VmFsdWVDdXJ2ZV0gQ2Fu
Y2VsIHNldFZhbHVlQ3VydmVBdFRpbWUgCi1QQVNTICAgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSww
XSwgMC4wMSwgMC40OSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdp
dGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJy
ZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyAgIENhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0
VGltZShbMSwwXSwgMC4wMSwgMC40OSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNv
bnN0YW50IDAuNTEwMjA0MDc2NzY2OTY3OC4gCi1QQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNh
bmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4wMSwgMC40OSkgYXQgdGltZSAw
LjI1IGlzIDAuNTEwMjA0MDgxNjMyNjUzIHdpdGhpbiBhbiBlcnJvciBvZiA5LjUzNjhlLTkuIAot
UEFTUyA8IFtzZXRWYWx1ZUN1cnZlXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFz
c2VydGlvbnMpIAotUEFTUyA+IFtzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZF0gQ2FuY2VsIHNldFZh
bHVlQ3VydmVBdFRpbWUgYWZ0ZXIgdGhlIGVuZCAKLVBBU1MgICBzZXRWYWx1ZUN1cnZlQXRUaW1l
KFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5OTk5OTk5KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxz
IFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJz
b2x1dGVUaHJlc2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2Vs
bGluZyBzZXRWYWx1ZUN1cnZlQXRUaW1lKFsxLDBdLCAwLjAxLCAwLjExNDk5OTk5OTk5OTk5OTk5
KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC4gCi1QQVNTICAgRXhw
ZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgc2V0VmFsdWVDdXJ2ZUF0VGltZShbMSwwXSwgMC4w
MSwgMC4xMTQ5OTk5OTk5OTk5OTk5OSkgYXQgdGltZSAwLjI1IGlzIDAgd2l0aGluIGFuIGVycm9y
IG9mIDAuIAotUEFTUyA8IFtzZXRWYWx1ZUN1cnZlIGFmdGVyIGVuZF0gQWxsIGFzc2VydGlvbnMg
cGFzc2VkLiAodG90YWwgMyBhc3NlcnRpb25zKSAKLVBBU1MgPiBbaW5pdGlhbCBzZXRUYXJnZXRd
IENhbmNlbCB3aXRoIGluaXRpYWwgc2V0VGFyZ2V0QXRUaW1lIAotUEFTUyAgIHNldFRhcmdldEF0
VGltZSgwLCAwLjAxLCAwLjEpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgWzEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwxLDEsMSwxLDEuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7
ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDAwMTIzMiwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAK
LVBBU1MgICBDYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgwLCAwLjAxLCAwLjEpIGF0IHRpbWUg
MC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjA5MDcxNzg0NDY2NTA1MDUuIAotUEFT
UyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIHNldFRhcmdldEF0VGltZSgwLCAwLjAx
LCAwLjEpIGF0IHRpbWUgMC4yNSBpcyAwLjA5MDcxNzk1NjQyMzc1OTQ2IHdpdGhpbiBhbiBlcnJv
ciBvZiAwLjAwMDAwMTIzMi4gCi1QQVNTIDwgW2luaXRpYWwgc2V0VGFyZ2V0XSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCAzIGFzc2VydGlvbnMpIAotUEFTUyA+IFtwb3N0IGNhbmNlbDog
TGluZWFyXSBMaW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcgCi1QQVNTICAgUG9zdCBjYW5jZWxs
YXRpb24gbGluZWFyUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkg
dXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13
aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRp
dmVUaHJlc2hvbGQiOjB9LiAKLVBBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUg
MC4yNSBjb250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAotUEFT
UyAgIEV4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIFBvc3QgY2FuY2VsbGF0aW9uIGxpbmVh
clJhbXBUb1ZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4y
NSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAK
LVBBU1MgICBQb3N0IGxpbmVhclJhbXAoMiwgMC4zNzUpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXld
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyA8IFtwb3N0IGNhbmNlbDogTGluZWFyXSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA0IGFzc2VydGlvbnMpIAotUEFTUyA+IFtwb3N0
IGNhbmNlbDogRXhwb25lbnRpYWxdIEV4cG9uZW50aWFsUmFtcCBhZnRlciBjYW5jZWxsaW5nIAot
UEFTUyAgIFBvc3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJh
bXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXld
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBBU1MgICBDYW5jZWxsaW5nIFBv
c3QgY2FuY2VsIGV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVl
KDAsIDAuNSkgYXQgdGltZSAwLjI1IGNvbnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNTEwMjA0
MDc2NzY2OTY3OC4gCi1QQVNTICAgRXhwZWN0ZWQgdmFsdWUgZm9yIGNhbmNlbGxpbmcgUG9zdCBj
YW5jZWwgZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwg
MC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5Njc4IHdpdGhpbiBhbiBlcnJvciBv
ZiAwLjAwMDA4Mzk5OC4gCi1QQVNTICAgUG9zdCBleHBvbmVudGlhbFJhbXAoMiwgMC4zNzUpIGVx
dWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7
ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyA8IFtw
b3N0IGNhbmNlbDogRXhwb25lbnRpYWxdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQg
YXNzZXJ0aW9ucykgCi1QQVNTID4gW3Bvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlXSAgCi1QQVNTICAg
UG9zdCBjYW5jZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41
KSB1cCB0byB0aW1lIDAuMjUgZXF1YWxzIFtleHBlY3RlZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50
LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJlc2hvbGQiOjAuMDAwMDgzOTk4LCJyZWxh
dGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyAgIENhbmNlbGxpbmcgUG9zdCBjYW5jZWwgc2V0VmFs
dWVDdXJ2ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29u
dGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKLVBBU1MgICBFeHBl
Y3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1l
OiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2
Njk2Nzggd2l0aGluIGFuIGVycm9yIG9mIDAuMDAwMDgzOTk4LiAKLVBBU1MgICBQb3N0IHNldFZh
bHVlQ3VydmUoWzAuMTI1LDJdLCAwLjM3NSwgMC4xMjUpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXld
IHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjow
LjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9LiAKLVBBU1MgPCBbcG9zdCBjYW5jZWw6
IFZhbHVlQ3VydmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykg
Ci1QQVNTID4gW3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXRdICAKLVBBU1MgICBQb3N0IGNhbmNlbCBz
ZXRUYXJnZXRBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAuNSkgdXAgdG8gdGltZSAwLjI1
IGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBv
ZiB7ImFic29sdXRlVGhyZXNob2xkIjowLjAwMDA4Mzk5OCwicmVsYXRpdmVUaHJlc2hvbGQiOjB9
LiAKLVBBU1MgICBDYW5jZWxsaW5nIFBvc3QgY2FuY2VsIHNldFRhcmdldEF0VGltZTogbGluZWFy
UmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgY29udGFpbnMgb25seSB0aGUgY29uc3Rh
bnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2Vs
bGluZyBQb3N0IGNhbmNlbCBzZXRUYXJnZXRBdFRpbWU6IGxpbmVhclJhbXBUb1ZhbHVlKDAsIDAu
NSkgYXQgdGltZSAwLjI1IGlzIDAuNTEwMjA0MDc2NzY2OTY3OCB3aXRoaW4gYW4gZXJyb3Igb2Yg
MC4wMDAwODM5OTguIAotUEFTUyAgIFBvc3Qgc2V0VGFyZ2V0QXRUaW1lKDAuMTI1LCAwLjM3NSwg
MC4xKSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFuIGVsZW1lbnQtd2lzZSB0b2xlcmFu
Y2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODQwMzcsInJlbGF0aXZlVGhyZXNob2xk
IjowfS4gCi1QQVNTIDwgW3Bvc3QgY2FuY2VsOiBzZXRUYXJnZXRdIEFsbCBhc3NlcnRpb25zIHBh
c3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9ucykgCi1QQVNTID4gW3Bvc3QgY2FuY2VsOiBzZXRWYWx1
ZV0gIAotUEFTUyAgIFBvc3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lOiBsaW5lYXJSYW1wVG9WYWx1
ZSgwLCAwLjUpIHVwIHRvIHRpbWUgMC4yNSBlcXVhbHMgW2V4cGVjdGVkIGFycmF5XSB3aXRoIGFu
IGVsZW1lbnQtd2lzZSB0b2xlcmFuY2Ugb2YgeyJhYnNvbHV0ZVRocmVzaG9sZCI6MC4wMDAwODM5
OTgsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2VsbGluZyBQb3N0IGNhbmNl
bCBzZXRWYWx1ZUF0VGltZTogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUg
Y29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41MTAyMDQwNzY3NjY5Njc4LiAKLVBBU1MgICBF
eHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2VsbGluZyBQb3N0IGNhbmNlbCBzZXRWYWx1ZUF0VGltZTog
bGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSBhdCB0aW1lIDAuMjUgaXMgMC41MTAyMDQwNzY3NjY5
Njc4IHdpdGhpbiBhbiBlcnJvciBvZiAwLjAwMDA4Mzk5OC4gCi1QQVNTICAgUG9zdCBzZXRWYWx1
ZUF0VGltZSgwLjEyNSwgMC4zNzUpIGVxdWFscyBbMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4x
MjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUsMC4xMjUs
MC4xMjUsMC4xMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBvZiB7ImFic29s
dXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotUEFTUyA8IFtwb3N0IGNh
bmNlbDogc2V0VmFsdWVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDQgYXNzZXJ0aW9u
cykgCi1QQVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0XSAgCi1QQVNTICAgQWZ0ZXIgY2Fu
Y2VsbGluZyBmdXR1cmUgc2V0VGFyZ2V0IGV2ZW50LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUg
Y29uc3RhbnQgMC41LiAKLVBBU1MgPCBbY2FuY2VsIGZ1dHVyZSBzZXRUYXJnZXRdIEFsbCBhc3Nl
cnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCi1QQVNTID4gW2NhbmNlbCBzZXRU
YXJnZXQgbm93XSAgCi1QQVNTICAgQWZ0ZXIgY2FuY2VsbGluZyBzZXRUYXJnZXQgZXZlbnQgc3Rh
cnRpbmcgbm93LCBvdXRwdXQgY29udGFpbnMgb25seSB0aGUgY29uc3RhbnQgMC41LiAKLVBBU1Mg
PCBbY2FuY2VsIHNldFRhcmdldCBub3ddIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEg
YXNzZXJ0aW9ucykgCi1QQVNTID4gW2NhbmNlbCBmdXR1cmUgc2V0VmFsdWVDdXJ2ZV0gIAotUEFT
UyAgIEFmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQsIG91dHB1dCBj
b250YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUuIAotUEFTUyA8IFtjYW5jZWwgZnV0dXJlIHNl
dFZhbHVlQ3VydmVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykg
Ci1QQVNTID4gW2NhbmNlbCBzZXRWYWx1ZUN1cnZlIG5vd10gIAotUEFTUyAgIEFmdGVyIGNhbmNl
bGxpbmcgY3VycmVudCBzZXRWYWx1ZUN1cnZlIGV2ZW50IHN0YXJ0aW5nIG5vdywgb3V0cHV0IGNv
bnRhaW5zIG9ubHkgdGhlIGNvbnN0YW50IDAuNS4gCi1QQVNTIDwgW2NhbmNlbCBzZXRWYWx1ZUN1
cnZlIG5vd10gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBB
U1MgPiBbbGluZWFyLCBjYW5jZWwsIGxpbmVhciwgY2FuY2VsLCBsaW5lYXJdIFNjaGVkdWxlcyAz
IGxpbmVhciByYW1wcywgY2FuY2VsbGluZyAyIG9mIHRoZW0sIHNvIHRoYXQgd2UgZW5kIHVwIHdp
dGggMiBjYW5jZWwgZXZlbnRzIG5leHQgdG8gZWFjaCBvdGhlciAKLUZBSUwgWCAxc3QgbGluZWFy
UmFtcDogbGluZWFyUmFtcFRvVmFsdWUoMCwgMC41KSB1cCB0byB0aW1lIDAuMjUgZG9lcyBub3Qg
ZXF1YWwgWzAsMC4wMDIwODMzMzM0NDE5ODc2MzM3LDAuMDA0MTY2NjY2ODgzOTc1MjY3LDAuMDA2
MjUwMDAwMDkzMTMyMjU3NSwwLjAwODMzMzMzMzc2Nzk1MDUzNSwwLjAxMDQxNjY2Njk3NzEwNzUy
NSwwLjAxMjUwMDAwMDE4NjI2NDUxNSwwLjAxNDU4MzMzMzM5NTQyMTUwNSwwLjAxNjY2NjY2NzUz
NTkwMTA3LDAuMDE4NzUwMDAwNzQ1MDU4MDYsMC4wMjA4MzMzMzM5NTQyMTUwNSwwLjAyMjkxNjY2
NzE2MzM3MjA0LDAuMDI1MDAwMDAwMzcyNTI5MDMsMC4wMjcwODMzMzM1ODE2ODYwMiwwLjAyOTE2
NjY2Njc5MDg0MzAxLDAuMDMxMjUuLi5dIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5jZSBv
ZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uCi0JSW5kZXgJ
QWN0dWFsCQkJRXhwZWN0ZWQJCUFic0Vycm9yCQlSZWxFcnJvcgkJVGVzdCB0aHJlc2hvbGQKLQlb
NzE1XQk5LjkwMDA4NTMzMDAwOTQ2MDRlLTEJOS45MDAwODQ3MzM5NjMwMTI3ZS0xCTUuOTYwNDY0
NDc3NTM5MDYyNWUtOAk2LjAyMDYxOTY1OTAzMzA0MjdlLTgJMC4wMDAwMDAwMDAwMDAwMDAwZSsw
Ci0JWzgxNl0JOS44NTcxNDMxNjM2ODEwMzAzZS0xCTkuODU3MTQyNTY3NjM0NTgyNWUtMQk1Ljk2
MDQ2NDQ3NzUzOTA2MjVlLTgJNi4wNDY4NDgxOTgyOTAxODE3ZS04CTAuMDAwMDAwMDAwMDAwMDAw
MGUrMAotCVs4NzldCTkuODMwMzU2ODM2MzE4OTY5N2UtMQk5LjgzMDM1NzQzMjM2NTQxNzVlLTEJ
NS45NjA0NjQ0Nzc1MzkwNjI1ZS04CTYuMDYzMzI0MjY3MjQ4Nzc4MmUtOAkwLjAwMDAwMDAwMDAw
MDAwMDBlKzAKLQlbMTI2NF0JOS42NjY2NjYzODg1MTE2NTc3ZS0xCTkuNjY2NjY2OTg0NTU4MTA1
NWUtMQk1Ljk2MDQ2NDQ3NzUzOTA2MjVlLTgJNi4xNjU5OTc1MzI2MTQ0Mjc5ZS04CTAuMDAwMDAw
MDAwMDAwMDAwMGUrMAotCVsxMzY4XQk5LjYyMjQ0OTI3ODgzMTQ4MTllLTEJOS42MjI0NDg2ODI3
ODUwMzQyZS0xCTUuOTYwNDY0NDc3NTM5MDYyNWUtOAk2LjE5NDMzMjMwOTgyMzE1ODNlLTgJMC4w
MDAwMDAwMDAwMDAwMDAwZSswCi0JLi4uYW5kIDExNDAgbW9yZSBlcnJvcnMuCi0JTWF4IEFic0Vy
cm9yIG9mIDUuOTYwNDY0NDc3NTM5MDYyNWUtOCBhdCBpbmRleCBvZiA3MTUuCi0JTWF4IFJlbEVy
cm9yIG9mIDEuMTY3MTgxMTk5MDQ1MjQ1OGUtNyBhdCBpbmRleCBvZiAxMTk4OS4KLQlbMTE5ODld
CTUuMTA2NzE3OTQ0MTQ1MjAyNmUtMQk1LjEwNjcxNzM0ODA5ODc1NDllLTEJNS45NjA0NjQ0Nzc1
MzkwNjI1ZS04CTEuMTY3MTgxMTk5MDQ1MjQ1OGUtNwkwLjAwMDAwMDAwMDAwMDAwMDBlKzAKLSBh
c3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLVBBU1MgICBDYW5jZWxsaW5nIDFz
dCBsaW5lYXJSYW1wOiBsaW5lYXJSYW1wVG9WYWx1ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBjb250
YWlucyBvbmx5IHRoZSBjb25zdGFudCAwLjUxMDIwNDA3Njc2Njk2NzguIAotUEFTUyAgIEV4cGVj
dGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nIDFzdCBsaW5lYXJSYW1wOiBsaW5lYXJSYW1wVG9WYWx1
ZSgwLCAwLjUpIGF0IHRpbWUgMC4yNSBpcyAwLjUxMDIwNDA3Njc2Njk2Nzggd2l0aGluIGFuIGVy
cm9yIG9mIDAuIAotUEFTUyAgIDJuZCBsaW5lYXJSYW1wKDIsIDAuNSkgZXF1YWxzIFtleHBlY3Rl
ZCBhcnJheV0gd2l0aCBhbiBlbGVtZW50LXdpc2UgdG9sZXJhbmNlIG9mIHsiYWJzb2x1dGVUaHJl
c2hvbGQiOjAsInJlbGF0aXZlVGhyZXNob2xkIjowfS4gCi1QQVNTICAgQ2FuY2VsbGluZyAybmQg
bGluZWFyUmFtcCgyLCAwLjUpIGF0IHRpbWUgMC4zNzUgY29udGFpbnMgb25seSB0aGUgY29uc3Rh
bnQgMS4yNTUxMDIwMzgzODM0ODM5LiAKLVBBU1MgICBFeHBlY3RlZCB2YWx1ZSBmb3IgY2FuY2Vs
bGluZyAybmQgbGluZWFyUmFtcCgyLCAwLjUpIGF0IHRpbWUgMC4zNzUgaXMgMS4yNTUxMDIwMzgz
ODM0ODM5IHdpdGhpbiBhbiBlcnJvciBvZiAwLiAKLVBBU1MgICAzcmQgbGluZWFyUmFtcCgwLCAw
LjUpIGVxdWFscyBbZXhwZWN0ZWQgYXJyYXldIHdpdGggYW4gZWxlbWVudC13aXNlIHRvbGVyYW5j
ZSBvZiB7ImFic29sdXRlVGhyZXNob2xkIjowLCJyZWxhdGl2ZVRocmVzaG9sZCI6MH0uIAotRkFJ
TCA8IFtsaW5lYXIsIGNhbmNlbCwgbGluZWFyLCBjYW5jZWwsIGxpbmVhcl0gMSBvdXQgb2YgNyBh
c3NlcnRpb25zIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKLUZBSUwgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSBvdXQgb2YgMTYgdGFza3Mg
d2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jYW5jZWwtYW5kLWhvbGQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE2YTBmZjEzMGRjYjg1ZGJmZTU4Y2Y2
ZDkxMTljMmI2OTg2MzhiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNhbmNlbC1hbmQtaG9sZC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsODIzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci0gIDxoZWFkPgotICAgIDx0aXRsZT4KLSAgICAgIFRlc3QgQ2FuY2VsVmFsdWVzQW5kSG9s
ZEF0VGltZQotICAgIDwvdGl0bGU+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXBhcmFtLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaXQuanMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0g
IDxib2R5PgotICAgIDxzY3JpcHQgaWQ9ImxheW91dC10ZXN0LWNvZGUiPgotICAgICAgbGV0IHNh
bXBsZVJhdGUgPSA0ODAwMDsKLSAgICAgIGxldCByZW5kZXJEdXJhdGlvbiA9IDAuNTsKLQotICAg
ICAgbGV0IGF1ZGl0ID0gQXVkaXQuY3JlYXRlVGFza1J1bm5lcigpOwotCi0gICAgICAvLyBUaGUg
Zmlyc3QgZmV3IHRhc2tzIHRlc3QgdGhlIGNhbmNlbGxhdGlvbiBvZiBlYWNoIHJlbGV2YW50IGF1
dG9tYXRpb24KLSAgICAgIC8vIGZ1bmN0aW9uLiAgRm9yIHRoZSB0ZXN0LCBhIHNpbXBsZSBsaW5l
YXIgcmFtcCBmcm9tIDAgdG8gMSBpcyB1c2VkIHRvCi0gICAgICAvLyBzdGFydCB0aGluZ3Mgb2Zm
LiAgVGhlbiB0aGUgYXV0b21hdGlvbiB0byBiZSB0ZXN0ZWQgaXMgc2NoZWR1bGVkIGFuZAotICAg
ICAgLy8gY2FuY2VsbGVkLgotCi0gICAgICBhdWRpdC5kZWZpbmUoCi0gICAgICAgICAge2xhYmVs
OiAnbGluZWFyJywgZGVzY3JpcHRpb246ICdDYW5jZWwgbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUn
fSwKLSAgICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKLSAgICAgICAgICAgIGNhbmNl
bFRlc3Qoc2hvdWxkLCBsaW5lYXJSYW1wVGVzdCgnbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnKSwg
ewotICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogOC4zOTk4ZS01LAotICAgICAgICAgICAg
ICBjdXJ2ZVRocmVzaG9sZDogOC4zOTk4ZS01Ci0gICAgICAgICAgICB9KS50aGVuKHRhc2suZG9u
ZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgYXVkaXQuZGVmaW5lKAotICAg
ICAgICAgIHtsYWJlbDogJ2V4cG9uZW50aWFsJywgZGVzY3JpcHRpb246ICdDYW5jZWwgZXhwb25l
bnRpYWxSYW1wQXRUaW1lJ30sCi0gICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7Ci0g
ICAgICAgICAgICAvLyBDYW5jZWwgYW4gZXhwb25lbnRpYWwgcmFtcC4gIFRoZSB0aHJlc2hvbGRz
IGFyZSBleHBlcmltZW50YWxseQotICAgICAgICAgICAgLy8gZGV0ZXJtaW5lZC4KLSAgICAgICAg
ICAgIGNhbmNlbFRlc3Qoc2hvdWxkLCBmdW5jdGlvbihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsK
LSAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB2YWx1ZXMgdG8gMC4KLSAgICAgICAgICAgICAg
Z1swXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOwotICAgICAgICAgICAgICBnWzFdLmdhaW4u
c2V0VmFsdWVBdFRpbWUoMCwgMCk7Ci0gICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGEgc2hvcnQg
bGluZWFyIHJhbXAgdG8gc3RhcnQgdGhpbmdzIG9mZi4KLSAgICAgICAgICAgICAgZ1swXS5nYWlu
LmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7Ci0gICAgICAgICAgICAgIGdbMV0uZ2Fp
bi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOwotCi0gICAgICAgICAgICAgIC8vIEFm
dGVyIHRoZSBsaW5lYXIgcmFtcCwgc2NoZWR1bGUgYW4gZXhwb25lbnRpYWwgcmFtcCB0byB0aGUg
ZW5kLgotICAgICAgICAgICAgICAvLyAoVGhpcyBpcyB0aGUgZXZlbnQgdGhhdCB3aWxsIGJlIGJl
IGNhbmNlbGxlZC4pCi0gICAgICAgICAgICAgIGxldCB2MSA9IDAuMDAxOwotICAgICAgICAgICAg
ICBsZXQgdDEgPSByZW5kZXJEdXJhdGlvbjsKLQotICAgICAgICAgICAgICBnWzBdLmdhaW4uZXhw
b25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEpOwotICAgICAgICAgICAgICBnWzFdLmdh
aW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSh2MSwgdDEpOwotCi0gICAgICAgICAgICAg
IGV4cGVjdGVkQ29uc3RhbnQgPSBNYXRoLmZyb3VuZCgKLSAgICAgICAgICAgICAgICAgIHYwICog
TWF0aC5wb3codjEgLyB2MCwgKGNhbmNlbFRpbWUgLSB0MCkgLyAodDEgLSB0MCkpKTsKLSAgICAg
ICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBl
Y3RlZENvbnN0YW50LAotICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnZXhwb25lbnRpYWxS
YW1wVG9WYWx1ZSgnICsgdjEgKyAnLCAnICsgdDEgKyAnKScsCi0gICAgICAgICAgICAgICAgc3Vt
bWFyeTogJ2V4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUnLAotICAgICAgICAgICAgICB9Owot
ICAgICAgICAgICAgfSwgewotICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogMS44NjY0ZS02
LAotICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogNS45NjA1ZS04Ci0gICAgICAgICAgICB9
KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgYXVk
aXQuZGVmaW5lKAotICAgICAgICAgIHtsYWJlbDogJ3NldFRhcmdldCcsIGRlc2NyaXB0aW9uOiAn
Q2FuY2VsIHNldFRhcmdldEF0VGltZSd9LAotICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3Vs
ZCkgewotICAgICAgICAgICAgLy8gQ2FuY2VsIGEgc2V0VGFyZ2V0IGV2ZW50LgotICAgICAgICAg
ICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2FuY2VsVGltZSkgewot
ICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgotICAgICAgICAgICAgICBn
WzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7Ci0gICAgICAgICAgICAgIGdbMV0uZ2Fpbi5z
ZXRWYWx1ZUF0VGltZSgwLCAwKTsKLSAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSBzaG9ydCBs
aW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgotICAgICAgICAgICAgICBnWzBdLmdhaW4u
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKLSAgICAgICAgICAgICAgZ1sxXS5nYWlu
LmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7Ci0KLSAgICAgICAgICAgICAgLy8gQXQg
dGhlIGVuZCBvZiB0aGUgbGluZWFyIHJhbXAsIHNjaGVkdWxlIGEgc2V0VGFyZ2V0LiAgKFRoaXMg
aXMKLSAgICAgICAgICAgICAgLy8gdGhlIGV2ZW50IHRoYXQgd2lsbCBiZSBjYW5jZWxsZWQuKQot
ICAgICAgICAgICAgICBsZXQgdjEgPSAwOwotICAgICAgICAgICAgICBsZXQgdDEgPSB0MDsKLSAg
ICAgICAgICAgICAgbGV0IHRpbWVDb25zdGFudCA9IDAuMDU7Ci0KLSAgICAgICAgICAgICAgZ1sw
XS5nYWluLnNldFRhcmdldEF0VGltZSh2MSwgdDEsIHRpbWVDb25zdGFudCk7Ci0gICAgICAgICAg
ICAgIGdbMV0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQxLCB0aW1lQ29uc3RhbnQpOwotCi0g
ICAgICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQgPSBNYXRoLmZyb3VuZCgKLSAgICAgICAgICAg
ICAgICAgIHYxICsgKHYwIC0gdjEpICogTWF0aC5leHAoLShjYW5jZWxUaW1lIC0gdDApIC8gdGlt
ZUNvbnN0YW50KSk7Ci0gICAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAgICAgZXhw
ZWN0ZWRDb25zdGFudDogZXhwZWN0ZWRDb25zdGFudCwKLSAgICAgICAgICAgICAgICBhdXRvTWVz
c2FnZTogJ3NldFRhcmdldEF0VGltZSgnICsgdjEgKyAnLCAnICsgdDEgKyAnLCAnICsKLSAgICAg
ICAgICAgICAgICAgICAgdGltZUNvbnN0YW50ICsgJyknLAotICAgICAgICAgICAgICAgIHN1bW1h
cnk6ICdzZXRUYXJnZXRBdFRpbWUnLAotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSwg
ewotICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogNC41MjY3ZS03LCAgLy8gMS4xMzE3ZS03
LAotICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogNC41MjY3ZS03Ci0gICAgICAgICAgICB9
KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgYXVk
aXQuZGVmaW5lKAotICAgICAgICAgIHtsYWJlbDogJ3NldFZhbHVlQ3VydmUnLCBkZXNjcmlwdGlv
bjogJ0NhbmNlbCBzZXRWYWx1ZUN1cnZlQXRUaW1lJ30sCi0gICAgICAgICAgZnVuY3Rpb24odGFz
aywgc2hvdWxkKSB7Ci0gICAgICAgICAgICAvLyBDYW5jZWwgYSBzZXRWYWx1ZUN1cnZlIGV2ZW50
LgotICAgICAgICAgICAgY2FuY2VsVGVzdChzaG91bGQsIGZ1bmN0aW9uKGcsIHYwLCB0MCwgY2Fu
Y2VsVGltZSkgewotICAgICAgICAgICAgICAvLyBJbml0aWFsaXplIHZhbHVlcyB0byAwLgotICAg
ICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVBdFRpbWUoMCwgMCk7Ci0gICAgICAgICAgICAg
IGdbMV0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLCAwKTsKLSAgICAgICAgICAgICAgLy8gU2NoZWR1
bGUgYSBzaG9ydCBsaW5lYXIgcmFtcCB0byBzdGFydCB0aGluZ3Mgb2ZmLgotICAgICAgICAgICAg
ICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjAsIHQwKTsKLSAgICAgICAgICAg
ICAgZ1sxXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYwLCB0MCk7Ci0KLSAgICAgICAg
ICAgICAgLy8gQWZ0ZXIgdGhlIGxpbmVhciByYW1wLCBzY2hlZHVsZSBhIHNldFZhbHVlc0N1cnZl
LiAoVGhpcyBpcyB0aGUKLSAgICAgICAgICAgICAgLy8gZXZlbnQgdGhhdCB3aWxsIGJlIGNhbmNl
bGxlZC4pCi0gICAgICAgICAgICAgIGxldCB2MSA9IDA7Ci0gICAgICAgICAgICAgIGxldCBkdXJh
dGlvbiA9IHJlbmRlckR1cmF0aW9uIC0gdDA7Ci0KLSAgICAgICAgICAgICAgLy8gRm9yIHNpbXBs
aWNpdHksIGEgMi1wb2ludCBjdXJ2ZSBzbyB3ZSBnZXQgYSBsaW5lYXIgaW50ZXJwb2xhdGVkCi0g
ICAgICAgICAgICAgIC8vIHJlc3VsdC4KLSAgICAgICAgICAgICAgbGV0IGN1cnZlID0gRmxvYXQz
MkFycmF5LmZyb20oW3YwLCAwXSk7Ci0KLSAgICAgICAgICAgICAgZ1swXS5nYWluLnNldFZhbHVl
Q3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7Ci0gICAgICAgICAgICAgIGdbMV0uZ2Fp
bi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MCwgZHVyYXRpb24pOwotCi0gICAgICAgICAg
ICAgIGxldCBpbmRleCA9Ci0gICAgICAgICAgICAgICAgICBNYXRoLmZsb29yKChjdXJ2ZS5sZW5n
dGggLSAxKSAvIGR1cmF0aW9uICogKGNhbmNlbFRpbWUgLSB0MCkpOwotCi0gICAgICAgICAgICAg
IGxldCBjdXJ2ZVBvaW50c1BlckZyYW1lID0KLSAgICAgICAgICAgICAgICAgIChjdXJ2ZS5sZW5n
dGggLSAxKSAvIGR1cmF0aW9uIC8gc2FtcGxlUmF0ZTsKLSAgICAgICAgICAgICAgbGV0IHZpcnR1
YWxJbmRleCA9Ci0gICAgICAgICAgICAgICAgICAoY2FuY2VsVGltZSAtIHQwKSAqIHNhbXBsZVJh
dGUgKiBjdXJ2ZVBvaW50c1BlckZyYW1lOwotCi0gICAgICAgICAgICAgIGxldCBkZWx0YSA9IHZp
cnR1YWxJbmRleCAtIGluZGV4OwotICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50ID0gY3Vy
dmVbMF0gKyAoY3VydmVbMV0gLSBjdXJ2ZVswXSkgKiBkZWx0YTsKLSAgICAgICAgICAgICAgcmV0
dXJuIHsKLSAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50
LAotICAgICAgICAgICAgICAgIGF1dG9NZXNzYWdlOiAnc2V0VmFsdWVDdXJ2ZUF0VGltZShbJyAr
IGN1cnZlICsgJ10sICcgKyB0MCArCi0gICAgICAgICAgICAgICAgICAgICcsICcgKyBkdXJhdGlv
biArICcpJywKLSAgICAgICAgICAgICAgICBzdW1tYXJ5OiAnc2V0VmFsdWVDdXJ2ZUF0VGltZScs
Ci0gICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICAgIHZhbHVl
VGhyZXNob2xkOiA5LjUzNjhlLTksCi0gICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAwCi0g
ICAgICAgICAgICB9KS50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsK
LQotICAgICAgYXVkaXQuZGVmaW5lKAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGxhYmVsOiAn
c2V0VmFsdWVDdXJ2ZSBhZnRlciBlbmQnLAotICAgICAgICAgICAgZGVzY3JpcHRpb246ICdDYW5j
ZWwgc2V0VmFsdWVDdXJ2ZUF0VGltZSBhZnRlciB0aGUgZW5kJwotICAgICAgICAgIH0sCi0gICAg
ICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7Ci0gICAgICAgICAgICBjYW5jZWxUZXN0KHNo
b3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBjYW5jZWxUaW1lKSB7Ci0gICAgICAgICAgICAgIC8v
IEluaXRpYWxpemUgdmFsdWVzIHRvIDAuCi0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRWYWx1
ZUF0VGltZSgwLCAwKTsKLSAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAs
IDApOwotICAgICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHNob3J0IGxpbmVhciByYW1wIHRvIHN0
YXJ0IHRoaW5ncyBvZmYuCi0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1
ZUF0VGltZSh2MCwgdDApOwotICAgICAgICAgICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFs
dWVBdFRpbWUodjAsIHQwKTsKLQotICAgICAgICAgICAgICAvLyBBZnRlciB0aGUgbGluZWFyIHJh
bXAsIHNjaGVkdWxlIGEgc2V0VmFsdWVzQ3VydmUuIChUaGlzIGlzIHRoZQotICAgICAgICAgICAg
ICAvLyBldmVudCB0aGF0IHdpbGwgYmUgY2FuY2VsbGVkLikgIE1ha2Ugc3VyZSB0aGUgY3VydmUg
ZW5kcyBiZWZvcmUKLSAgICAgICAgICAgICAgLy8gdGhlIGNhbmNlbGxhdGlvbiB0aW1lLgotICAg
ICAgICAgICAgICBsZXQgdjEgPSAwOwotICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSBjYW5j
ZWxUaW1lIC0gdDAgLSAwLjEyNTsKLQotICAgICAgICAgICAgICAvLyBGb3Igc2ltcGxpY2l0eSwg
YSAyLXBvaW50IGN1cnZlIHNvIHdlIGdldCBhIGxpbmVhciBpbnRlcnBvbGF0ZWQKLSAgICAgICAg
ICAgICAgLy8gcmVzdWx0LgotICAgICAgICAgICAgICBsZXQgY3VydmUgPSBGbG9hdDMyQXJyYXku
ZnJvbShbdjAsIDBdKTsKLQotICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVDdXJ2ZUF0
VGltZShjdXJ2ZSwgdDAsIGR1cmF0aW9uKTsKLSAgICAgICAgICAgICAgZ1sxXS5nYWluLnNldFZh
bHVlQ3VydmVBdFRpbWUoY3VydmUsIHQwLCBkdXJhdGlvbik7Ci0KLSAgICAgICAgICAgICAgZXhw
ZWN0ZWRDb25zdGFudCA9IGN1cnZlWzFdOwotICAgICAgICAgICAgICByZXR1cm4gewotICAgICAg
ICAgICAgICAgIGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCi0gICAgICAgICAg
ICAgICAgYXV0b01lc3NhZ2U6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lKFsnICsgY3VydmUgKyAnXSwg
JyArIHQwICsKLSAgICAgICAgICAgICAgICAgICAgJywgJyArIGR1cmF0aW9uICsgJyknLAotICAg
ICAgICAgICAgICAgIHN1bW1hcnk6ICdzZXRWYWx1ZUN1cnZlQXRUaW1lJywKLSAgICAgICAgICAg
ICAgfTsKLSAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAgdmFsdWVUaHJlc2hvbGQ6IDAs
Ci0gICAgICAgICAgICAgIGN1cnZlVGhyZXNob2xkOiAwCi0gICAgICAgICAgICB9KS50aGVuKHRh
c2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgLy8gU3BlY2lhbCBj
YXNlIHdoZXJlIHdlIHNjaGVkdWxlIGEgc2V0VGFyZ2V0IGFuZCB0aGVyZSBpcyBubyBlYXJsaWVy
Ci0gICAgICAvLyBhdXRvbWF0aW9uIGV2ZW50LiAgVGhpcyB0ZXN0cyB0aGF0IHdlIHBpY2sgdXAg
dGhlIHN0YXJ0aW5nIHBvaW50Ci0gICAgICAvLyBjb3JyZWN0bHkgZnJvbSB0aGUgbGFzdCBzZXR0
aW5nIG9mIHRoZSBBdWRpb1BhcmFtIHZhbHVlIGF0dHJpYnV0ZS4KLQotCi0gICAgICBhdWRpdC5k
ZWZpbmUoCi0gICAgICAgICAgewotICAgICAgICAgICAgbGFiZWw6ICdpbml0aWFsIHNldFRhcmdl
dCcsCi0gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0NhbmNlbCB3aXRoIGluaXRpYWwgc2V0VGFy
Z2V0QXRUaW1lJwotICAgICAgICAgIH0sCi0gICAgICAgICAgZnVuY3Rpb24odGFzaywgc2hvdWxk
KSB7Ci0gICAgICAgICAgICBjYW5jZWxUZXN0KHNob3VsZCwgZnVuY3Rpb24oZywgdjAsIHQwLCBj
YW5jZWxUaW1lKSB7Ci0gICAgICAgICAgICAgIGxldCB2MSA9IDA7Ci0gICAgICAgICAgICAgIGxl
dCB0aW1lQ29uc3RhbnQgPSAwLjE7Ci0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi52YWx1ZSA9IDE7
Ci0gICAgICAgICAgICAgIGdbMF0uZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodjEsIHQwLCB0aW1lQ29u
c3RhbnQpOwotICAgICAgICAgICAgICBnWzFdLmdhaW4udmFsdWUgPSAxOwotICAgICAgICAgICAg
ICBnWzFdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYxLCB0MCwgdGltZUNvbnN0YW50KTsKLQotICAg
ICAgICAgICAgICBsZXQgZXhwZWN0ZWRDb25zdGFudCA9IE1hdGguZnJvdW5kKAotICAgICAgICAg
ICAgICAgICAgdjEgKyAodjAgLSB2MSkgKiBNYXRoLmV4cCgtKGNhbmNlbFRpbWUgLSB0MCkgLyB0
aW1lQ29uc3RhbnQpKTsKLQotICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAg
IGV4cGVjdGVkQ29uc3RhbnQ6IGV4cGVjdGVkQ29uc3RhbnQsCi0gICAgICAgICAgICAgICAgYXV0
b01lc3NhZ2U6ICdzZXRUYXJnZXRBdFRpbWUoJyArIHYxICsgJywgJyArIHQwICsgJywgJyArCi0g
ICAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudCArICcpJywKLSAgICAgICAgICAgICAgICBz
dW1tYXJ5OiAnSW5pdGlhbCBzZXRUYXJnZXRBdFRpbWUnLAotICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgfSwgewotICAgICAgICAgICAgICB2YWx1ZVRocmVzaG9sZDogMS4yMzIwZS02LAot
ICAgICAgICAgICAgICBjdXJ2ZVRocmVzaG9sZDogMS4yMzIwZS02Ci0gICAgICAgICAgICB9KS50
aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgICAgICB9KTsKLQotICAgICAgLy8gVGVz
dCBhdXRvbWF0aW9ucyBzY2hlZHVsZWQgYWZ0ZXIgdGhlIGNhbGwgdG8gY2FuY2VsQW5kSG9sZEF0
VGltZS4KLSAgICAgIC8vIFZlcnkgc2ltaWxhciB0byB0aGUgYWJvdmUgdGVzdHMsIGJ1dCB3ZSBh
bHNvIHNjaGVkdWxlIGFuIGV2ZW50IGFmdGVyCi0gICAgICAvLyBjYW5jZWxBbmRIb2xkQXRUaW1l
IGFuZCB2ZXJpZnkgdGhhdCBjdXJ2ZSBhZnRlciBjYW5jZWxsYXRpb24gaGFzCi0gICAgICAvLyB0
aGUgY29ycmVjdCB2YWx1ZXMuCi0KLSAgICAgIGF1ZGl0LmRlZmluZSgKLSAgICAgICAgICB7Ci0g
ICAgICAgICAgICBsYWJlbDogJ3Bvc3QgY2FuY2VsOiBMaW5lYXInLAotICAgICAgICAgICAgZGVz
Y3JpcHRpb246ICdMaW5lYXJSYW1wIGFmdGVyIGNhbmNlbGxpbmcnCi0gICAgICAgICAgfSwKLSAg
ICAgICAgICBmdW5jdGlvbih0YXNrLCBzaG91bGQpIHsKLSAgICAgICAgICAgIC8vIFJ1biB0aGUg
Y2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBiZQotICAgICAg
ICAgICAgLy8gY2FuY2VsbGVkLiBUaGVuIHNjaGVkdWxlIGFub3RoZXIgbGluZWFyIHJhbXAgYWZ0
ZXIgdGhlCi0gICAgICAgICAgICAvLyBjYW5jZWxsYXRpb24uCi0gICAgICAgICAgICBjYW5jZWxU
ZXN0KAotICAgICAgICAgICAgICAgIHNob3VsZCwKLSAgICAgICAgICAgICAgICBsaW5lYXJSYW1w
VGVzdCgnUG9zdCBjYW5jZWxsYXRpb24gbGluZWFyUmFtcFRvVmFsdWVBdFRpbWUnKSwKLSAgICAg
ICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDgu
Mzk5OGUtNX0sCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGltZSwgZXhwZWN0
ZWRDb25zdGFudCkgewotICAgICAgICAgICAgICAgICAgLy8gU2NoZWR1bGUgdGhlIGxpbmVhciBy
YW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IgZ1syXSwKLSAgICAgICAgICAgICAgICAg
IC8vIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0YW50Lgot
ICAgICAgICAgICAgICAgICAgbGV0IHYyID0gMjsKLSAgICAgICAgICAgICAgICAgIGxldCB0MiA9
IGNhbmNlbFRpbWUgKyAwLjEyNTsKLSAgICAgICAgICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJS
YW1wVG9WYWx1ZUF0VGltZSh2MiwgdDIpOwotICAgICAgICAgICAgICAgICAgZ1syXS5nYWluLnNl
dFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUpOwotICAgICAgICAgICAg
ICAgICAgZ1syXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7Ci0gICAgICAg
ICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6
IGNhbmNlbFRpbWUsCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IGxpbmVhclJh
bXAoJyArIHYyICsgJywgJyArIHQyICsgJyknCi0gICAgICAgICAgICAgICAgICB9OwotICAgICAg
ICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykp
OwotICAgICAgICAgIH0pOwotCi0gICAgICBhdWRpdC5kZWZpbmUoCi0gICAgICAgICAgewotICAg
ICAgICAgICAgbGFiZWw6ICdwb3N0IGNhbmNlbDogRXhwb25lbnRpYWwnLAotICAgICAgICAgICAg
ZGVzY3JpcHRpb246ICdFeHBvbmVudGlhbFJhbXAgYWZ0ZXIgY2FuY2VsbGluZycKLSAgICAgICAg
ICB9LAotICAgICAgICAgIGZ1bmN0aW9uKHRhc2ssIHNob3VsZCkgewotICAgICAgICAgICAgLy8g
UnVuIHRoZSBjYW5jZWwgdGVzdCB1c2luZyBhIGxpbmVhclJhbXAgYXMgdGhlIGV2ZW50IHRvIGJl
Ci0gICAgICAgICAgICAvLyBjYW5jZWxsZWQuIFRoZW4gc2NoZWR1bGUgYW4gZXhwb25lbnRpYWwg
cmFtcCBhZnRlciB0aGUKLSAgICAgICAgICAgIC8vIGNhbmNlbGxhdGlvbi4KLSAgICAgICAgICAg
IGNhbmNlbFRlc3QoCi0gICAgICAgICAgICAgICAgc2hvdWxkLAotICAgICAgICAgICAgICAgIGxp
bmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lJyks
Ci0gICAgICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNo
b2xkOiA4LjM5OThlLTV9LAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGcsIGNhbmNlbFRpbWUs
IGV4cGVjdGVkQ29uc3RhbnQpIHsKLSAgICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBl
eHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IKLSAgICAgICAgICAg
ICAgICAgIC8vIGdbMl0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3Rl
ZENvbnN0YW50LgotICAgICAgICAgICAgICAgICAgbGV0IHYyID0gMjsKLSAgICAgICAgICAgICAg
ICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKLSAgICAgICAgICAgICAgICAgIGdbMF0u
Z2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKHYyLCB0Mik7Ci0gICAgICAgICAgICAg
ICAgICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGlt
ZSk7Ci0gICAgICAgICAgICAgICAgICBnWzJdLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0
VGltZSh2MiwgdDIpOwotICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICAg
ICAgICAgY29uc3RhbnRFbmRUaW1lOiBjYW5jZWxUaW1lLAotICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlOiAnUG9zdCBleHBvbmVudGlhbFJhbXAoJyArIHYyICsgJywgJyArIHQyICsgJyknCi0g
ICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAg
LnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOwotICAgICAgICAgIH0pOwotCi0gICAgICBhdWRp
dC5kZWZpbmUoJ3Bvc3QgY2FuY2VsOiBWYWx1ZUN1cnZlJywgZnVuY3Rpb24odGFzaywgc2hvdWxk
KSB7Ci0gICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFz
IHRoZSBldmVudCB0byBiZSBjYW5jZWxsZWQuCi0gICAgICAgIC8vIFRoZW4gc2NoZWR1bGUgYSBz
ZXRWYWx1ZUN1cnZlIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24uCi0gICAgICAgIGNhbmNlbFRlc3Qo
Ci0gICAgICAgICAgICBzaG91bGQsIGxpbmVhclJhbXBUZXN0KCdQb3N0IGNhbmNlbCBzZXRWYWx1
ZUN1cnZlQXRUaW1lJyksCi0gICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6IDguMzk5OGUtNSwg
Y3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNX0sCi0gICAgICAgICAgICBmdW5jdGlvbihnLCBjYW5j
ZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7Ci0gICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRo
ZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBmb3IKLSAgICAgICAg
ICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVuIGJ5IGV4cGVjdGVk
Q29uc3RhbnQuCi0gICAgICAgICAgICAgIGxldCB0MiA9IGNhbmNlbFRpbWUgKyAwLjEyNTsKLSAg
ICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gMC4xMjU7Ci0gICAgICAgICAgICAgIGxldCBjdXJ2
ZSA9IEZsb2F0MzJBcnJheS5mcm9tKFsuMTI1LCAyXSk7Ci0gICAgICAgICAgICAgIGdbMF0uZ2Fp
bi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0MiwgZHVyYXRpb24pOwotICAgICAgICAgICAg
ICBnWzJdLmdhaW4uc2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7
Ci0gICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUN1cnZlQXRUaW1lKGN1cnZlLCB0Miwg
ZHVyYXRpb24pOwotICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIGNvbnN0
YW50RW5kVGltZTogY2FuY2VsVGltZSwKLSAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUG9zdCBz
ZXRWYWx1ZUN1cnZlKFsnICsgY3VydmUgKyAnXSwgJyArIHQyICsgJywgJyArCi0gICAgICAgICAg
ICAgICAgICAgIGR1cmF0aW9uICsgJyknLAotICAgICAgICAgICAgICAgIGVycm9yVGhyZXNob2xk
OiA4LjM5OThlLTUKLSAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pCi0gICAgICAgICAg
ICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0gICAgICB9KTsKLQotICAgICAgYXVkaXQu
ZGVmaW5lKCdwb3N0IGNhbmNlbDogc2V0VGFyZ2V0JywgZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7
Ci0gICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3QgdXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRo
ZSBldmVudCB0byBiZSBjYW5jZWxsZWQuCi0gICAgICAgIC8vIFRoZW4gc2NoZWR1bGUgYSBzZXRU
YXJnZXQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4KLSAgICAgICAgY2FuY2VsVGVzdCgKLSAgICAg
ICAgICAgIHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ1Bvc3QgY2FuY2VsIHNldFRhcmdldEF0VGlt
ZScpLAotICAgICAgICAgICAge3ZhbHVlVGhyZXNob2xkOiA4LjM5OThlLTUsIGN1cnZlVGhyZXNo
b2xkOiA4LjM5OThlLTV9LAotICAgICAgICAgICAgZnVuY3Rpb24oZywgY2FuY2VsVGltZSwgZXhw
ZWN0ZWRDb25zdGFudCkgewotICAgICAgICAgICAgICAvLyBTY2hlZHVsZSB0aGUgZXhwb25lbnRp
YWwgcmFtcCBvbiBnWzBdLCBhbmQgZG8gdGhlIHNhbWUgZm9yCi0gICAgICAgICAgICAgIC8vIGdb
Ml0sIHVzaW5nIHRoZSBzdGFydGluZyBwb2ludCBnaXZlbiBieSBleHBlY3RlZENvbnN0YW50Lgot
ICAgICAgICAgICAgICBsZXQgdjIgPSAwLjEyNTsKLSAgICAgICAgICAgICAgbGV0IHQyID0gY2Fu
Y2VsVGltZSArIDAuMTI1OwotICAgICAgICAgICAgICBsZXQgdGltZUNvbnN0YW50ID0gMC4xOwot
ICAgICAgICAgICAgICBnWzBdLmdhaW4uc2V0VGFyZ2V0QXRUaW1lKHYyLCB0MiwgdGltZUNvbnN0
YW50KTsKLSAgICAgICAgICAgICAgZ1syXS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29u
c3RhbnQsIGNhbmNlbFRpbWUpOwotICAgICAgICAgICAgICBnWzJdLmdhaW4uc2V0VGFyZ2V0QXRU
aW1lKHYyLCB0MiwgdGltZUNvbnN0YW50KTsKLSAgICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAg
ICAgICAgICAgICBjb25zdGFudEVuZFRpbWU6IGNhbmNlbFRpbWUgKyAwLjEyNSwKLSAgICAgICAg
ICAgICAgICBtZXNzYWdlOiAnUG9zdCBzZXRUYXJnZXRBdFRpbWUoJyArIHYyICsgJywgJyArIHQy
ICsgJywgJyArCi0gICAgICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudCArICcpJywKLSAgICAg
ICAgICAgICAgICBlcnJvclRocmVzaG9sZDogOC40MDM3ZS01Ci0gICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICB9KQotICAgICAgICAgICAgLnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOwot
ICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRlZmluZSgncG9zdCBjYW5jZWw6IHNldFZhbHVlJywg
ZnVuY3Rpb24odGFzaywgc2hvdWxkKSB7Ci0gICAgICAgIC8vIFJ1biB0aGUgY2FuY2VsIHRlc3Qg
dXNpbmcgYSBsaW5lYXJSYW1wIGFzIHRoZSBldmVudCB0byBiZSBjYW5jZWxsZWQuCi0gICAgICAg
IC8vIFRoZW4gc2NoZWR1bGUgYSBzZXRUYXJnZXQgYWZ0ZXIgdGhlIGNhbmNlbGxhdGlvbi4KLSAg
ICAgICAgY2FuY2VsVGVzdCgKLSAgICAgICAgICAgIHNob3VsZCwgbGluZWFyUmFtcFRlc3QoJ1Bv
c3QgY2FuY2VsIHNldFZhbHVlQXRUaW1lJyksCi0gICAgICAgICAgICB7dmFsdWVUaHJlc2hvbGQ6
IDguMzk5OGUtNSwgY3VydmVUaHJlc2hvbGQ6IDguMzk5OGUtNX0sCi0gICAgICAgICAgICBmdW5j
dGlvbihnLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KSB7Ci0gICAgICAgICAgICAgIC8v
IFNjaGVkdWxlIHRoZSBleHBvbmVudGlhbCByYW1wIG9uIGdbMF0sIGFuZCBkbyB0aGUgc2FtZSBm
b3IKLSAgICAgICAgICAgICAgLy8gZ1syXSwgdXNpbmcgdGhlIHN0YXJ0aW5nIHBvaW50IGdpdmVu
IGJ5IGV4cGVjdGVkQ29uc3RhbnQuCi0gICAgICAgICAgICAgIGxldCB2MiA9IDAuMTI1OwotICAg
ICAgICAgICAgICBsZXQgdDIgPSBjYW5jZWxUaW1lICsgMC4xMjU7Ci0gICAgICAgICAgICAgIGdb
MF0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MiwgdDIpOwotICAgICAgICAgICAgICBnWzJdLmdhaW4u
c2V0VmFsdWVBdFRpbWUoZXhwZWN0ZWRDb25zdGFudCwgY2FuY2VsVGltZSk7Ci0gICAgICAgICAg
ICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MiwgdDIpOwotICAgICAgICAgICAgICByZXR1
cm4gewotICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTogY2FuY2VsVGltZSArIDAuMTI1
LAotICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdQb3N0IHNldFZhbHVlQXRUaW1lKCcgKyB2MiAr
ICcsICcgKyB0MiArICcpJwotICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSkKLSAgICAg
ICAgICAgIC50aGVuKHRhc2suZG9uZS5iaW5kKHRhc2spKTsKLSAgICAgIH0pOwotCi0gICAgICBh
dWRpdC5kZWZpbmUoJ2NhbmNlbCBmdXR1cmUgc2V0VGFyZ2V0JywgKHRhc2ssIHNob3VsZCkgPT4g
ewotICAgICAgICBjb25zdCBjb250ZXh0ID0KLSAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9D
b250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Ci0gICAg
ICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7Ci0gICAgICAg
IHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwotCi0gICAgICAgIHNyYy5vZmZzZXQu
c2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKLSAgICAgICAgc3JjLm9mZnNldC5zZXRUYXJnZXRBdFRp
bWUoMCwgMC43NSAqIHJlbmRlckR1cmF0aW9uLCAwLjEpOwotICAgICAgICAvLyBOb3cgY2FuY2Vs
IHRoZSBlZmZlY3Qgb2YgdGhlIHNldFRhcmdldC4KLSAgICAgICAgc3JjLm9mZnNldC5jYW5jZWxB
bmRIb2xkQXRUaW1lKDAuNSAqIHJlbmRlckR1cmF0aW9uKTsKLQotICAgICAgICBzcmMuc3RhcnQo
KTsKLSAgICAgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpCi0gICAgICAgICAgICAudGhlbihi
dWZmZXIgPT4gewotICAgICAgICAgICAgICBsZXQgYWN0dWFsID0gYnVmZmVyLmdldENoYW5uZWxE
YXRhKDApOwotICAgICAgICAgICAgICAvLyBCZWNhdXNlIHRoZSBzZXRUYXJnZXQgd2FzIGNhbmNl
bGxlZCwgdGhlIG91dHB1dCBzaG91bGQgYmUgYQotICAgICAgICAgICAgICAvLyBjb25zdGFudC4K
LSAgICAgICAgICAgICAgc2hvdWxkKGFjdHVhbCwgJ0FmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNl
dFRhcmdldCBldmVudCwgb3V0cHV0JykKLSAgICAgICAgICAgICAgICAgIC5iZUNvbnN0YW50VmFs
dWVPZigwLjUpOwotICAgICAgICAgICAgfSkKLSAgICAgICAgICAgIC50aGVuKHRhc2suZG9uZS5i
aW5kKHRhc2spKTsKLSAgICAgIH0pOwotCi0gICAgICBhdWRpdC5kZWZpbmUoJ2NhbmNlbCBzZXRU
YXJnZXQgbm93JywgKHRhc2ssIHNob3VsZCkgPT4gewotICAgICAgICBjb25zdCBjb250ZXh0ID0K
LSAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckR1cmF0aW9uICog
c2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Ci0gICAgICAgIGNvbnN0IHNyYyA9IG5ldyBDb25zdGFu
dFNvdXJjZU5vZGUoY29udGV4dCk7Ci0gICAgICAgIHNyYy5jb25uZWN0KGNvbnRleHQuZGVzdGlu
YXRpb24pOwotCi0gICAgICAgIHNyYy5vZmZzZXQuc2V0VmFsdWVBdFRpbWUoMC41LCAwKTsKLSAg
ICAgICAgc3JjLm9mZnNldC5zZXRUYXJnZXRBdFRpbWUoMCwgMC41ICogcmVuZGVyRHVyYXRpb24s
IDAuMSk7Ci0gICAgICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0
LgotICAgICAgICBzcmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVy
YXRpb24pOwotCi0gICAgICAgIHNyYy5zdGFydCgpOwotICAgICAgICBjb250ZXh0LnN0YXJ0UmVu
ZGVyaW5nKCkKLSAgICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7Ci0gICAgICAgICAgICAgIGxl
dCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICAgICAgICAgIC8vIEJl
Y2F1c2UgdGhlIHNldFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBh
Ci0gICAgICAgICAgICAgIC8vIGNvbnN0YW50LgotICAgICAgICAgICAgICBzaG91bGQoCi0gICAg
ICAgICAgICAgICAgICBhY3R1YWwsCi0gICAgICAgICAgICAgICAgICAnQWZ0ZXIgY2FuY2VsbGlu
ZyBzZXRUYXJnZXQgZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQnKQotICAgICAgICAgICAgICAg
ICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7Ci0gICAgICAgICAgICB9KQotICAgICAgICAgICAg
LnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOwotICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRl
ZmluZSgnY2FuY2VsIGZ1dHVyZSBzZXRWYWx1ZUN1cnZlJywgKHRhc2ssIHNob3VsZCkgPT4gewot
ICAgICAgICBjb25zdCBjb250ZXh0ID0KLSAgICAgICAgICAgIG5ldyBPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIHJlbmRlckR1cmF0aW9uICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7Ci0gICAgICAg
IGNvbnN0IHNyYyA9IG5ldyBDb25zdGFudFNvdXJjZU5vZGUoY29udGV4dCk7Ci0gICAgICAgIHNy
Yy5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwotCi0gICAgICAgIHNyYy5vZmZzZXQuc2V0
VmFsdWVBdFRpbWUoMC41LCAwKTsKLSAgICAgICAgc3JjLm9mZnNldC5zZXRWYWx1ZUN1cnZlQXRU
aW1lKFstMSwgMV0sIDAuNzUgKiByZW5kZXJEdXJhdGlvbiwgMC4xKTsKLSAgICAgICAgLy8gTm93
IGNhbmNlbCB0aGUgZWZmZWN0IG9mIHRoZSBzZXRUYXJnZXQuCi0gICAgICAgIHNyYy5vZmZzZXQu
Y2FuY2VsQW5kSG9sZEF0VGltZSgwLjUgKiByZW5kZXJEdXJhdGlvbik7Ci0KLSAgICAgICAgc3Jj
LnN0YXJ0KCk7Ci0gICAgICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKQotICAgICAgICAgICAg
LnRoZW4oYnVmZmVyID0+IHsKLSAgICAgICAgICAgICAgbGV0IGFjdHVhbCA9IGJ1ZmZlci5nZXRD
aGFubmVsRGF0YSgwKTsKLSAgICAgICAgICAgICAgLy8gQmVjYXVzZSB0aGUgc2V0VGFyZ2V0IHdh
cyBjYW5jZWxsZWQsIHRoZSBvdXRwdXQgc2hvdWxkIGJlIGEKLSAgICAgICAgICAgICAgLy8gY29u
c3RhbnQuCi0gICAgICAgICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgICAgICAgIGFjdHVhbCwg
J0FmdGVyIGNhbmNlbGxpbmcgZnV0dXJlIHNldFZhbHVlQ3VydmUgZXZlbnQsIG91dHB1dCcpCi0g
ICAgICAgICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoMC41KTsKLSAgICAgICAgICAgIH0p
Ci0gICAgICAgICAgICAudGhlbih0YXNrLmRvbmUuYmluZCh0YXNrKSk7Ci0gICAgICB9KTsKLQot
ICAgICAgYXVkaXQuZGVmaW5lKCdjYW5jZWwgc2V0VmFsdWVDdXJ2ZSBub3cnLCAodGFzaywgc2hv
dWxkKSA9PiB7Ci0gICAgICAgIGNvbnN0IGNvbnRleHQgPQotICAgICAgICAgICAgbmV3IE9mZmxp
bmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRl
KTsKLSAgICAgICAgY29uc3Qgc3JjID0gbmV3IENvbnN0YW50U291cmNlTm9kZShjb250ZXh0KTsK
LSAgICAgICAgc3JjLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7Ci0KLSAgICAgICAgc3Jj
Lm9mZnNldC5zZXRWYWx1ZUF0VGltZSgwLjUsIDApOwotICAgICAgICBzcmMub2Zmc2V0LnNldFZh
bHVlQ3VydmVBdFRpbWUoWy0xLCAxXSwgMC41ICogcmVuZGVyRHVyYXRpb24sIDAuMSk7Ci0gICAg
ICAgIC8vIE5vdyBjYW5jZWwgdGhlIGVmZmVjdCBvZiB0aGUgc2V0VGFyZ2V0LgotICAgICAgICBz
cmMub2Zmc2V0LmNhbmNlbEFuZEhvbGRBdFRpbWUoMC41ICogcmVuZGVyRHVyYXRpb24pOwotCi0g
ICAgICAgIHNyYy5zdGFydCgpOwotICAgICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCkKLSAg
ICAgICAgICAgIC50aGVuKGJ1ZmZlciA9PiB7Ci0gICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBi
dWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICAgICAgICAgIC8vIEJlY2F1c2UgdGhlIHNl
dFRhcmdldCB3YXMgY2FuY2VsbGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBhCi0gICAgICAgICAg
ICAgIC8vIGNvbnN0YW50LgotICAgICAgICAgICAgICBzaG91bGQoCi0gICAgICAgICAgICAgICAg
ICBhY3R1YWwsCi0gICAgICAgICAgICAgICAgICAnQWZ0ZXIgY2FuY2VsbGluZyBjdXJyZW50IHNl
dFZhbHVlQ3VydmUgZXZlbnQgc3RhcnRpbmcgbm93LCBvdXRwdXQnKQotICAgICAgICAgICAgICAg
ICAgLmJlQ29uc3RhbnRWYWx1ZU9mKDAuNSk7Ci0gICAgICAgICAgICB9KQotICAgICAgICAgICAg
LnRoZW4odGFzay5kb25lLmJpbmQodGFzaykpOwotICAgICAgfSk7Ci0KLSAgICAgIGF1ZGl0LmRl
ZmluZSgKLSAgICAgICAgewotICAgICAgICAgIGxhYmVsOiAnbGluZWFyLCBjYW5jZWwsIGxpbmVh
ciwgY2FuY2VsLCBsaW5lYXInLAotICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2NoZWR1bGVzIDMg
bGluZWFyIHJhbXBzLCBjYW5jZWxsaW5nIDIgb2YgdGhlbSwgJwotICAgICAgICAgICAgKyAnc28g
dGhhdCB3ZSBlbmQgdXAgd2l0aCAyIGNhbmNlbCBldmVudHMgbmV4dCB0byBlYWNoIG90aGVyJwot
ICAgICAgICB9LAotICAgICAgICAodGFzaywgc2hvdWxkKSA9PiB7Ci0gICAgICAgICAgY2FuY2Vs
VGVzdDIoCi0gICAgICAgICAgICBzaG91bGQsCi0gICAgICAgICAgICBsaW5lYXJSYW1wVGVzdCgn
MXN0IGxpbmVhclJhbXAnKSwKLSAgICAgICAgICAgIHt2YWx1ZVRocmVzaG9sZDogMCwgY3VydmVU
aHJlc2hvbGQ6IDB9LAotICAgICAgICAgICAgKGcsIGNhbmNlbFRpbWUsIGV4cGVjdGVkQ29uc3Rh
bnQsIGNhbmNlbFRpbWUyKSA9PiB7Ci0gICAgICAgICAgICAgIC8vIFJhbXAgZnJvbSBmaXJzdCBj
YW5jZWwgdGltZSB0byB0aGUgZW5kIHdpbGwgYmUgY2FuY2VsbGVkIGF0Ci0gICAgICAgICAgICAg
IC8vIHNlY29uZCBjYW5jZWwgdGltZS4KLSAgICAgICAgICAgICAgY29uc3QgdjEgPSBleHBlY3Rl
ZENvbnN0YW50OwotICAgICAgICAgICAgICBjb25zdCB0MSA9IGNhbmNlbFRpbWU7Ci0gICAgICAg
ICAgICAgIGNvbnN0IHYyID0gMjsKLSAgICAgICAgICAgICAgY29uc3QgdDIgPSByZW5kZXJEdXJh
dGlvbjsKLSAgICAgICAgICAgICAgZ1swXS5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKHYy
LCB0Mik7Ci0gICAgICAgICAgICAgIGdbMl0uZ2Fpbi5zZXRWYWx1ZUF0VGltZSh2MSwgdDEpOwot
ICAgICAgICAgICAgICBnWzJdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjIsIHQyKTsK
LQotICAgICAgICAgICAgICBjb25zdCBleHBlY3RlZENvbnN0YW50MiA9Ci0gICAgICAgICAgICAg
ICAgYXVkaW9QYXJhbUxpbmVhclJhbXAoY2FuY2VsVGltZTIsIHYxLCB0MSwgdjIsIHQyKTsKLQot
ICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTog
Y2FuY2VsVGltZSwKLSAgICAgICAgICAgICAgICBtZXNzYWdlOiBgMm5kIGxpbmVhclJhbXAoJHt2
Mn0sICR7dDJ9KWAsCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRDb25zdGFudDIKLSAgICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAoZywgY2FuY2VsVGltZTIsIGV4
cGVjdGVkQ29uc3RhbnQyKSA9PiB7Ci0gICAgICAgICAgICAgIC8vIFJhbXAgZnJvbSBzZWNvbmQg
Y2FuY2VsIHRpbWUgdG8gdGhlIGVuZC4KLSAgICAgICAgICAgICAgY29uc3QgdjMgPSAwOwotICAg
ICAgICAgICAgICBjb25zdCB0MyA9IHJlbmRlckR1cmF0aW9uOwotICAgICAgICAgICAgICBnWzBd
LmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjMsIHQzKTsKLSAgICAgICAgICAgICAgZ1sz
XS5nYWluLnNldFZhbHVlQXRUaW1lKGV4cGVjdGVkQ29uc3RhbnQyLCBjYW5jZWxUaW1lMik7Ci0g
ICAgICAgICAgICAgIGdbM10uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MywgdDMpOwot
ICAgICAgICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgICAgIGNvbnN0YW50RW5kVGltZTI6
IGNhbmNlbFRpbWUyLAotICAgICAgICAgICAgICAgIG1lc3NhZ2UyOiBgM3JkIGxpbmVhclJhbXAo
JHt2M30sICR7dDN9KWAsCi0gICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9KQotICAgICAg
ICAgICAgLnRoZW4oKCkgPT4gdGFzay5kb25lKCkpOwotICAgICAgICB9KTsKLQotICAgICAgYXVk
aXQucnVuKCk7Ci0KLSAgICAgIC8vIENvbW1vbiBmdW5jdGlvbiBmb3IgZG9pbmcgYSBsaW5lYXJS
YW1wIHRlc3QuICBUaGlzIGp1c3QgZG9lcyBhIGxpbmVhcgotICAgICAgLy8gcmFtcCBmcm9tIDAg
dG8gdjAgYXQgZnJvbSB0aW1lIDAgdG8gdDAuICBUaGVuIGFub3RoZXIgbGluZWFyIHJhbXAgaXMK
LSAgICAgIC8vIHNjaGVkdWxlZCBmcm9tIHYwIHRvIDAgZnJvbSB0aW1lIHQwIHRvIHQxLiAgVGhp
cyBpcyB0aGUgcmFtcCB0aGF0IGlzIHRvCi0gICAgICAvLyBiZSBjYW5jZWxsZWQuCi0gICAgICBm
dW5jdGlvbiBsaW5lYXJSYW1wVGVzdChtZXNzYWdlKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlv
bihnLCB2MCwgdDAsIGNhbmNlbFRpbWUpIHsKLSAgICAgICAgICBnWzBdLmdhaW4uc2V0VmFsdWVB
dFRpbWUoMCwgMCk7Ci0gICAgICAgICAgZ1sxXS5nYWluLnNldFZhbHVlQXRUaW1lKDAsIDApOwot
ICAgICAgICAgIGdbMF0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOwotICAg
ICAgICAgIGdbMV0uZ2Fpbi5saW5lYXJSYW1wVG9WYWx1ZUF0VGltZSh2MCwgdDApOwotCi0gICAg
ICAgICAgbGV0IHYxID0gMDsKLSAgICAgICAgICBsZXQgdDEgPSByZW5kZXJEdXJhdGlvbjsKLSAg
ICAgICAgICBnWzBdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKLSAgICAg
ICAgICBnWzFdLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUodjEsIHQxKTsKLQotICAgICAg
ICAgIGV4cGVjdGVkQ29uc3RhbnQgPQotICAgICAgICAgICAgICBNYXRoLmZyb3VuZCh2MCArICh2
MSAtIHYwKSAqIChjYW5jZWxUaW1lIC0gdDApIC8gKHQxIC0gdDApKTsKLQotICAgICAgICAgIHJl
dHVybiB7Ci0gICAgICAgICAgICBleHBlY3RlZENvbnN0YW50OiBleHBlY3RlZENvbnN0YW50LAot
ICAgICAgICAgICAgYXV0b01lc3NhZ2U6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSArICc6IGxp
bmVhclJhbXBUb1ZhbHVlKCcgKyB2MSArICcsICcgKyB0MSArICcpJywKLSAgICAgICAgICAgIHN1
bW1hcnk6IG1lc3NhZ2UsCi0gICAgICAgICAgfTsKLSAgICAgICAgfQotICAgICAgfQotCi0gICAg
ICAvLyBSdW4gdGhlIGNhbmNlbGxhdGlvbiB0ZXN0LiBBIHNldCBvZiBhdXRvbWF0aW9ucyBpcyBj
cmVhdGVkIGFuZAotICAgICAgLy8gY2FuY2VsZWQuCi0gICAgICAvLwotICAgICAgLy8gfHRlc3Rl
ckZ1bmN0aW9ufCBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSBhdXRvbWF0aW9uIHRv
IGJlCi0gICAgICAvLyB0ZXN0ZWQuICBJdCBpcyBnaXZlbiBhbiBhcnJheSBvZiAzIGdhaW4gbm9k
ZXMsIHRoZSB2YWx1ZSBhbmQgdGltZSBvZiBhbgotICAgICAgLy8gaW5pdGlhbCBsaW5lYXIgcmFt
cCwgYW5kIHRoZSB0aW1lIHdoZXJlIHRoZSBjYW5jZWxsYXRpb24gc2hvdWxkIG9jY3VyLgotICAg
ICAgLy8gVGhlIGZ1bmN0aW9uIG11c3QgZG8gdGhlIGF1dG9tYXRpb25zIGZvciB0aGUgZmlyc3Qg
dHdvIGdhaW4gbm9kZXMuICBJdAotICAgICAgLy8gbXVzdCByZXR1cm4gYSBkaWN0aW9uYXJ5IHdp
dGggfGV4cGVjdGVkQ29uc3RhbnR8IGJlaW5nIHRoZSB2YWx1ZSBhdCB0aGUKLSAgICAgIC8vIGNh
bmNlbGxhdGlvbiB0aW1lLCB8YXV0b01lc3NhZ2V8IGZvciBtZXNzYWdlIHRvIGRlc2NyaWJlIHRo
ZSB0ZXN0LCBhbmQKLSAgICAgIC8vIHxzdW1tYXJ5fCBmb3IgZ2VuZXJhbCBzdW1tYXJ5IG1lc3Nh
Z2UgdG8gYmUgcHJpbnRlZCBhdCB0aGUgZW5kIG9mIHRoZQotICAgICAgLy8gdGVzdC4KLSAgICAg
IC8vCi0gICAgICAvLyB8dGhyZXNob2xkT3B0aW9uc3wgaXMgYSBwcm9wZXJ0eSBiYWcgdGhhdCBz
cGVjaWZpZXMgdGhlIGVycm9yIHRocmVzaG9sZAotICAgICAgLy8gdG8gdXNlLiB8dGhyZXNob2xk
T3B0aW9ucy52YWx1ZVRocmVzaG9sZHwgaXMgdGhlIGVycm9yIHRocmVzaG9sZCBmb3IKLSAgICAg
IC8vIGNvbXBhcmluZyB0aGUgYWN0dWFsIGNvbnN0YW50IG91dHB1dCBhZnRlciBjYW5jZWxsaW5n
IHRvIHRoZSBleHBlY3RlZAotICAgICAgLy8gdmFsdWUuICB8dGhyZXNob2xkT3B0aW9ucy5jdXJ2
ZVRocmVzaG9sZHwgaXMgdGhlIGVycm9yIHRocmVzaG9sZCBmb3IKLSAgICAgIC8vIGNvbXBhcmlu
ZyB0aGUgYWN0dWFsIGFuZCBleHBlY3RlZCBhdXRvbWF0aW9uIGN1cnZlcyBiZWZvcmUgdGhlCi0g
ICAgICAvLyBjYW5jZWxhdGlvbiBwb2ludC4KLSAgICAgIC8vCi0gICAgICAvLyBGb3IgY2FuY2Vs
bGF0aW9uIHRlc3RzLCB8cG9zdENhbmNlbFRlc3R8IGlzIGEgZnVuY3Rpb24gdGhhdCBzY2hlZHVs
ZXMKLSAgICAgIC8vIHNvbWUgYXV0b21hdGlvbiBhZnRlciB0aGUgY2FuY2VsbGF0aW9uLiAgSXQg
dGFrZXMgMyBhcmd1bWVudHM6IGFuIGFycmF5Ci0gICAgICAvLyBvZiB0aGUgZ2FpbiBub2Rlcywg
dGhlIGNhbmNlbGxhdGlvbiB0aW1lLCBhbmQgdGhlIGV4cGVjdGVkIHZhbHVlIGF0IHRoZQotICAg
ICAgLy8gY2FuY2VsbGF0aW9uIHRpbWUuICBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIGEgZGlj
dGlvbmFyeSBjb25zaXN0aW5nCi0gICAgICAvLyBvZiB8Y29uc3RhbnRFbmR0aW1lfCBpbmRpY2F0
aW5nIHdoZW4gdGhlIGhlbGQgY29uc3RhbnQgZnJvbQotICAgICAgLy8gY2FuY2VsbGF0aW9uIHN0
b3BzIGJlaW5nIGNvbnN0YW50LCB8bWVzc2FnZXwgZ2l2aW5nIGEgc3VtbWFyeSBvZiB3aGF0Ci0g
ICAgICAvLyBhdXRvbWF0aW9uIGlzIGJlaW5nIHVzZWQsIGFuZCB8ZXJyb3JUaHJlc2hvbGR8IHRo
YXQgaXMgdGhlIGVycm9yCi0gICAgICAvLyB0aHJlc2hvbGQgYmV0d2VlbiB0aGUgZXhwZWN0ZWQg
Y3VydmUgYW5kIHRoZSBhY3R1YWwgY3VydmUuCi0gICAgICAvLwotICAgICAgZnVuY3Rpb24gY2Fu
Y2VsVGVzdCgKLSAgICAgICAgICBzaG91bGQsIHRlc3RlckZ1bmN0aW9uLCB0aHJlc2hvbGRPcHRp
b25zLCBwb3N0Q2FuY2VsVGVzdCkgewotICAgICAgICAvLyBDcmVhdGUgYSBjb250ZXh0IHdpdGgg
dGhyZWUgY2hhbm5lbHMuICBDaGFubmVsIDAgaXMgdGhlIHRlc3QgY2hhbm5lbAotICAgICAgICAv
LyBjb250YWluaW5nIHRoZSBhY3R1YWwgb3V0cHV0IHRoYXQgaW5jbHVkZXMgdGhlIGNhbmNlbGxh
dGlvbiBvZgotICAgICAgICAvLyBldmVudHMuICBDaGFubmVsIDEgaXMgdGhlIGV4cGVjdGVkIGRh
dGEgdXB0byB0aGUgY2FuY2VsbGF0aW9uIHNvIHdlCi0gICAgICAgIC8vIGNhbiB2ZXJpZnkgdGhl
IGNhbmNlbGxhdGlvbiBwcm9kdWNlZCB0aGUgY29ycmVjdCByZXN1bHQuICBDaGFubmVsIDIKLSAg
ICAgICAgLy8gaXMgZm9yIHZlcmlmeWluZyBldmVudHMgaW5zZXJ0ZWQgYWZ0ZXIgdGhlIGNhbmNl
bGxhdGlvbiBzbyB3ZSBjYW4KLSAgICAgICAgLy8gdmVyaWZ5IHRoYXQgYXV0b21hdGlvbnMgYXJl
IGNvcnJlY3RseSBnZW5lcmF0ZWQgYWZ0ZXIgdGhlCi0gICAgICAgIC8vIGNhbmNlbGxhdGlvbiBw
b2ludC4KLSAgICAgICAgbGV0IGNvbnRleHQgPQotICAgICAgICAgICAgbmV3IE9mZmxpbmVBdWRp
b0NvbnRleHQoMywgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKLQot
ICAgICAgICAvLyBUZXN0IHNvdXJjZSBpcyBhIGNvbnN0YW50IHNpZ25hbAotICAgICAgICBsZXQg
c3JjID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKLSAgICAgICAgc3JjLmJ1ZmZlciA9
IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIDEpOwotICAgICAgICBzcmMubG9vcCA9
IHRydWU7Ci0KLSAgICAgICAgLy8gV2UnbGwgZG8gdGhlIGF1dG9tYXRpb24gdGVzdHMgd2l0aCB0
aHJlZSBnYWluIG5vZGVzLiAgT25lIChnMCkgd2lsbAotICAgICAgICAvLyBoYXZlIGNhbmNlbEFu
ZEhvbGRBdFRpbWUgYW5kIHRoZSBvdGhlciAoZzEpIHdpbGwgbm90LiAgZzEgaXMKLSAgICAgICAg
Ly8gdXNlZCBhcyB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvciB0aGF0IGF1dG9tYXRpb24gdXAgdG8g
dGhlCi0gICAgICAgIC8vIGNhbmNlbGxhdGlvbiBwb2ludC4gIFRoZXkgc2hvdWxkIGJlIHRoZSBz
YW1lLiAgVGhlIHRoaXJkIG5vZGUgKGcyKSBpcwotICAgICAgICAvLyB1c2VkIGZvciB0ZXN0aW5n
IGF1dG9tYXRpb25zIGluc2VydGVkIGFmdGVyIHRoZSBjYW5jZWxsYXRpb24gcG9pbnQsCi0gICAg
ICAgIC8vIGlmIGFueS4gIGcyIGlzIHRoZSBleHBlY3RlZCByZXN1bHQgZnJvbSB0aGUgY2FuY2Vs
bGF0aW9uIHBvaW50IHRvIHRoZQotICAgICAgICAvLyBlbmQgb2YgdGhlIHRlc3QuCi0KLSAgICAg
ICAgbGV0IGcwID0gY29udGV4dC5jcmVhdGVHYWluKCk7Ci0gICAgICAgIGxldCBnMSA9IGNvbnRl
eHQuY3JlYXRlR2FpbigpOwotICAgICAgICBsZXQgZzIgPSBjb250ZXh0LmNyZWF0ZUdhaW4oKTsK
LSAgICAgICAgbGV0IHYwID0gMTsKLSAgICAgICAgbGV0IHQwID0gMC4wMTsKLQotICAgICAgICBs
ZXQgY2FuY2VsVGltZSA9IHJlbmRlckR1cmF0aW9uIC8gMjsKLQotICAgICAgICAvLyBUZXN0IGF1
dG9tYXRpb24gaGVyZS4gIFRoZSB0ZXN0ZXIgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHNl
dHRpbmcKLSAgICAgICAgLy8gdXAgdGhlIGdhaW4gbm9kZXMgd2l0aCB0aGUgZGVzaXJlZCBhdXRv
bWF0aW9uIGZvciB0ZXN0aW5nLgotICAgICAgICBhdXRvUmVzdWx0ID0gdGVzdGVyRnVuY3Rpb24o
W2cwLCBnMSwgZzJdLCB2MCwgdDAsIGNhbmNlbFRpbWUpOwotICAgICAgICBsZXQgZXhwZWN0ZWRD
b25zdGFudCA9IGF1dG9SZXN1bHQuZXhwZWN0ZWRDb25zdGFudDsKLSAgICAgICAgbGV0IGF1dG9N
ZXNzYWdlID0gYXV0b1Jlc3VsdC5hdXRvTWVzc2FnZTsKLSAgICAgICAgbGV0IHN1bW1hcnlNZXNz
YWdlID0gYXV0b1Jlc3VsdC5zdW1tYXJ5OwotCi0gICAgICAgIC8vIENhbmNlbCBzY2hlZHVsZWQg
ZXZlbnRzIHNvbWV3aGVyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSB0ZXN0Ci0gICAgICAgIC8vIGF1
dG9tYXRpb24uCi0gICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShjYW5jZWxUaW1l
KTsKLQotICAgICAgICBsZXQgY29uc3RhbnRFbmRUaW1lOwotICAgICAgICBpZiAocG9zdENhbmNl
bFRlc3QpIHsKLSAgICAgICAgICBwb3N0UmVzdWx0ID0KLSAgICAgICAgICAgICAgcG9zdENhbmNl
bFRlc3QoW2cwLCBnMSwgZzJdLCBjYW5jZWxUaW1lLCBleHBlY3RlZENvbnN0YW50KTsKLSAgICAg
ICAgICBjb25zdGFudEVuZFRpbWUgPSBwb3N0UmVzdWx0LmNvbnN0YW50RW5kVGltZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIENvbm5lY3QgZXZlcnl0aGluZyB0b2dldGhlciAod2l0aCBhIG1l
cmdlciB0byBtYWtlIGEgdHdvLWNoYW5uZWwKLSAgICAgICAgLy8gcmVzdWx0KS4gIENoYW5uZWwg
MCBpcyB0aGUgdGVzdCAod2l0aCBjYW5jZWxBbmRIb2xkQXRUaW1lKSBhbmQKLSAgICAgICAgLy8g
Y2hhbm5lbCAxIGlzIHRoZSByZWZlcmVuY2UgKHdpdGhvdXQgY2FuY2VsQW5kSG9sZEF0VGltZSku
Ci0gICAgICAgIC8vIENoYW5uZWwgMSBpcyB1c2VkIHRvIHZlcmlmeSB0aGF0IGV2ZXJ5dGhpbmcg
dXAgdG8gdGhlIGNhbmNlbGxhdGlvbgotICAgICAgICAvLyBoYXMgdGhlIGNvcnJlY3QgdmFsdWVz
LgotICAgICAgICBzcmMuY29ubmVjdChnMCk7Ci0gICAgICAgIHNyYy5jb25uZWN0KGcxKTsKLSAg
ICAgICAgc3JjLmNvbm5lY3QoZzIpOwotICAgICAgICBsZXQgbWVyZ2VyID0gY29udGV4dC5jcmVh
dGVDaGFubmVsTWVyZ2VyKDMpOwotICAgICAgICBnMC5jb25uZWN0KG1lcmdlciwgMCwgMCk7Ci0g
ICAgICAgIGcxLmNvbm5lY3QobWVyZ2VyLCAwLCAxKTsKLSAgICAgICAgZzIuY29ubmVjdChtZXJn
ZXIsIDAsIDIpOwotICAgICAgICBtZXJnZXIuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsK
LQotICAgICAgICAvLyBHbyEKLSAgICAgICAgc3JjLnN0YXJ0KCk7Ci0KLSAgICAgICAgcmV0dXJu
IGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKS50aGVuKGZ1bmN0aW9uKGJ1ZmZlcikgewotICAgICAg
ICAgIGxldCBhY3R1YWwgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci0gICAgICAgICAgbGV0
IGV4cGVjdGVkID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDEpOwotCi0gICAgICAgICAgLy8gVGhl
IGFjdHVhbCBvdXRwdXQgc2hvdWxkIGJlIGEgY29uc3RhbnQgZnJvbSB0aGUgY2FuY2VsIHRpbWUg
dG8gdGhlCi0gICAgICAgICAgLy8gZW5kLiAgV2UgdXNlIHRoZSBsYXN0IHZhbHVlIG9mIHRoZSBh
Y3R1YWwgb3V0cHV0IGFzIHRoZSBjb25zdGFudCwKLSAgICAgICAgICAvLyBidXQgd2UgYWxzbyB3
YW50IHRvIGNvbXBhcmUgdGhhdCB3aXRoIHdoYXQgd2UgdGhvdWdodCBpdCBzaG91bGQKLSAgICAg
ICAgICAvLyByZWFsbHkgYmUuCi0KLSAgICAgICAgICBsZXQgY2FuY2VsRnJhbWUgPSBNYXRoLmNl
aWwoY2FuY2VsVGltZSAqIHNhbXBsZVJhdGUpOwotCi0gICAgICAgICAgLy8gVmVyaWZ5IHRoYXQg
dGhlIGN1cnZlcyB1cCB0byB0aGUgY2FuY2VsIHRpbWUgYXJlICJpZGVudGljYWwiLiAgVGhlCi0g
ICAgICAgICAgLy8gc2hvdWxkIGJlIGJ1dCByb3VuZC1vZmYgbWF5IG1ha2UgdGhlbSBkaWZmZXIg
c2xpZ2h0bHkgZHVlIHRvIHRoZQotICAgICAgICAgIC8vIHdheSBjYW5jZWxsaW5nIGlzIGRvbmUu
Ci0gICAgICAgICAgbGV0IGVuZEZyYW1lID0gTWF0aC5mbG9vcihjYW5jZWxUaW1lICogc2FtcGxl
UmF0ZSk7Ci0gICAgICAgICAgc2hvdWxkKAotICAgICAgICAgICAgICBhY3R1YWwuc2xpY2UoMCwg
ZW5kRnJhbWUpLAotICAgICAgICAgICAgICBhdXRvTWVzc2FnZSArICcgdXAgdG8gdGltZSAnICsg
Y2FuY2VsVGltZSkKLSAgICAgICAgICAgICAgLmJlQ2xvc2VUb0FycmF5KAotICAgICAgICAgICAg
ICAgICAgZXhwZWN0ZWQuc2xpY2UoMCwgZW5kRnJhbWUpLAotICAgICAgICAgICAgICAgICAge2Fi
c29sdXRlVGhyZXNob2xkOiB0aHJlc2hvbGRPcHRpb25zLmN1cnZlVGhyZXNob2xkfSk7Ci0KLSAg
ICAgICAgICAvLyBWZXJpZnkgdGhlIG91dHB1dCBhZnRlciB0aGUgY2FuY2VsbGF0aW9uIGlzIGEg
Y29uc3RhbnQuCi0gICAgICAgICAgbGV0IGFjdHVhbFRhaWw7Ci0gICAgICAgICAgbGV0IGNvbnN0
YW50RW5kRnJhbWU7Ci0KLSAgICAgICAgICBpZiAocG9zdENhbmNlbFRlc3QpIHsKLSAgICAgICAg
ICAgIGNvbnN0YW50RW5kRnJhbWUgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1lICogc2FtcGxl
UmF0ZSk7Ci0gICAgICAgICAgICBhY3R1YWxUYWlsID0gYWN0dWFsLnNsaWNlKGNhbmNlbEZyYW1l
LCBjb25zdGFudEVuZEZyYW1lKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYWN0
dWFsVGFpbCA9IGFjdHVhbC5zbGljZShjYW5jZWxGcmFtZSk7Ci0gICAgICAgICAgfQotCi0gICAg
ICAgICAgbGV0IGFjdHVhbENvbnN0YW50ID0gYWN0dWFsW2NhbmNlbEZyYW1lXTsKLQotICAgICAg
ICAgIHNob3VsZCgKLSAgICAgICAgICAgICAgYWN0dWFsVGFpbCwKLSAgICAgICAgICAgICAgJ0Nh
bmNlbGxpbmcgJyArIGF1dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKyBjYW5jZWxUaW1lKQotICAg
ICAgICAgICAgICAuYmVDb25zdGFudFZhbHVlT2YoYWN0dWFsQ29uc3RhbnQpOwotCi0gICAgICAg
ICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGNvbnN0YW50IGlzIHRoZSB2YWx1ZSB3ZSBleHBlY3QuCi0g
ICAgICAgICAgc2hvdWxkKAotICAgICAgICAgICAgICBhY3R1YWxDb25zdGFudCwKLSAgICAgICAg
ICAgICAgJ0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBhdXRvTWVzc2FnZSArICcg
YXQgdGltZSAnICsKLSAgICAgICAgICAgICAgICAgIGNhbmNlbFRpbWUpCi0gICAgICAgICAgICAg
IC5iZUNsb3NlVG8oCi0gICAgICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50LAotICAgICAg
ICAgICAgICAgICAge3RocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZH0p
OwotCi0gICAgICAgICAgLy8gVmVyaWZ5IHRoZSBjdXJ2ZSBhZnRlciB0aGUgY29uc3RhbnRFbmRU
aW1lIG1hdGNoZXMgb3VyCi0gICAgICAgICAgLy8gZXhwZWN0YXRpb25zLgotICAgICAgICAgIGlm
IChwb3N0Q2FuY2VsVGVzdCkgewotICAgICAgICAgICAgbGV0IGMyID0gYnVmZmVyLmdldENoYW5u
ZWxEYXRhKDIpOwotICAgICAgICAgICAgc2hvdWxkKGFjdHVhbC5zbGljZShjb25zdGFudEVuZEZy
YW1lKSwgcG9zdFJlc3VsdC5tZXNzYWdlKQotICAgICAgICAgICAgICAgIC5iZUNsb3NlVG9BcnJh
eSgKLSAgICAgICAgICAgICAgICAgICAgYzIuc2xpY2UoY29uc3RhbnRFbmRGcmFtZSksCi0gICAg
ICAgICAgICAgICAgICAgIHthYnNvbHV0ZVRocmVzaG9sZDogcG9zdFJlc3VsdC5lcnJvclRocmVz
aG9sZCB8fCAwfSk7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgIH0KLQotICAgICAg
Ly8gU2ltaWxhciB0byBjYW5jZWxUZXN0LCBidXQgZG9lcyAyIGNhbmNlbHMuCi0gICAgICBmdW5j
dGlvbiBjYW5jZWxUZXN0MigKLSAgICAgICAgICBzaG91bGQsIHRlc3RlckZ1bmN0aW9uLCB0aHJl
c2hvbGRPcHRpb25zLAotICAgICAgICAgIHBvc3RDYW5jZWxUZXN0LCBwb3N0Q2FuY2VsVGVzdDIp
IHsKLSAgICAgICAgLy8gQ2hhbm5lbCAwOiBBY3R1YWwgb3V0cHV0IHRoYXQgaW5jbHVkZXMgdGhl
IGNhbmNlbGxhdGlvbiBvZiBldmVudHMuCi0gICAgICAgIC8vIENoYW5uZWwgMTogRXhwZWN0ZWQg
ZGF0YSB1cCB0byB0aGUgZmlyc3QgY2FuY2VsbGF0aW9uLgotICAgICAgICAvLyBDaGFubmVsIDI6
IEV4cGVjdGVkIGRhdGEgZnJvbSAxc3QgY2FuY2VsbGF0aW9uIHRvIDJuZCBjYW5jZWxsYXRpb24u
Ci0gICAgICAgIC8vIENoYW5uZWwgMzogRXhwZWN0ZWQgZGF0YSBmcm9tIDJuZCBjYW5jZWxsYXRp
b24gdG8gdGhlIGVuZC4KLSAgICAgICAgY29uc3QgY29udGV4dCA9Ci0gICAgICAgICAgbmV3IE9m
ZmxpbmVBdWRpb0NvbnRleHQoNCwgcmVuZGVyRHVyYXRpb24gKiBzYW1wbGVSYXRlLCBzYW1wbGVS
YXRlKTsKLQotICAgICAgICBjb25zdCBzcmMgPSBjb250ZXh0LmNyZWF0ZUNvbnN0YW50U291cmNl
KCk7Ci0KLSAgICAgICAgLy8gZzA6IEFjdHVhbCBnYWluIHdoaWNoIHdpbGwgaGF2ZSBjYW5jZWxB
bmRIb2xkQXRUaW1lIGNhbGxlZCBvbiBpdAotICAgICAgICAvLyB0d2ljZS4KLSAgICAgICAgLy8g
ZzE6IEV4cGVjdGVkIGdhaW4gZnJvbSBzdGFydCB0byB0aGUgMXN0IGNhbmNlbC4KLSAgICAgICAg
Ly8gZzI6IEV4cGVjdGVkIGdhaW4gZnJvbSAxc3QgY2FuY2VsIHRvIHRoZSAybmQgY2FuY2VsLgot
ICAgICAgICAvLyBnMzogRXhwZWN0ZWQgZ2FpbiBmcm9tIHRoZSAybmQgY2FuY2VsIHRvIHRoZSBl
bmQuCi0gICAgICAgIGNvbnN0IGcwID0gY29udGV4dC5jcmVhdGVHYWluKCk7Ci0gICAgICAgIGNv
bnN0IGcxID0gY29udGV4dC5jcmVhdGVHYWluKCk7Ci0gICAgICAgIGNvbnN0IGcyID0gY29udGV4
dC5jcmVhdGVHYWluKCk7Ci0gICAgICAgIGNvbnN0IGczID0gY29udGV4dC5jcmVhdGVHYWluKCk7
Ci0gICAgICAgIGNvbnN0IHYwID0gMTsKLSAgICAgICAgY29uc3QgdDAgPSAwLjAxOwotCi0gICAg
ICAgIGNvbnN0IGNhbmNlbFRpbWUxID0gcmVuZGVyRHVyYXRpb24gKiAwLjU7Ci0gICAgICAgIGNv
bnN0IGNhbmNlbFRpbWUyID0gcmVuZGVyRHVyYXRpb24gKiAwLjc1OwotCi0gICAgICAgIC8vIFJ1
biB0ZXN0ZXJGdW5jdGlvbiB0byBnZW5lcmF0ZSB0aGUgMXN0IHJhbXAuCi0gICAgICAgIGNvbnN0
IHsKLSAgICAgICAgICBleHBlY3RlZENvbnN0YW50LCBhdXRvTWVzc2FnZSwgc3VtbWFyeU1lc3Nh
Z2V9ID0KLSAgICAgICAgICAgIHRlc3RlckZ1bmN0aW9uKFtnMCwgZzEsIGcyXSwgdjAsIHQwLCBj
YW5jZWxUaW1lMSk7Ci0KLSAgICAgICAgLy8gMXN0IGNhbmNlbCwgY2FuY2VsbGluZyB0aGUgMXN0
IHJhbXAuCi0gICAgICAgIGcwLmdhaW4uY2FuY2VsQW5kSG9sZEF0VGltZShjYW5jZWxUaW1lMSk7
Ci0KLSAgICAgICAgLy8gUnVuIHBvc3RDYW5jZWxUZXN0IHRvIGdlbmVyYXRlIHRoZSAybmQgcmFt
cC4KLSAgICAgICAgY29uc3QgewotICAgICAgICAgIGNvbnN0YW50RW5kVGltZSwgbWVzc2FnZSwg
ZXJyb3JUaHJlc2hvbGQgPSAwLCBleHBlY3RlZENvbnN0YW50Mn0gPQotICAgICAgICAgICAgcG9z
dENhbmNlbFRlc3QoCi0gICAgICAgICAgICAgIFtnMCwgZzEsIGcyXSwgY2FuY2VsVGltZTEsIGV4
cGVjdGVkQ29uc3RhbnQsIGNhbmNlbFRpbWUyKTsKLQotICAgICAgICAvLyAybmQgY2FuY2VsLCBj
YW5jZWxsaW5nIHRoZSAybmQgcmFtcC4KLSAgICAgICAgZzAuZ2Fpbi5jYW5jZWxBbmRIb2xkQXRU
aW1lKGNhbmNlbFRpbWUyKTsKLQotICAgICAgICAvLyBSdW4gcG9zdENhbmNlbFRlc3QyIHRvIGdl
bmVyYXRlIHRoZSAzcmQgcmFtcC4KLSAgICAgICAgY29uc3Qge2NvbnN0YW50RW5kVGltZTIsIG1l
c3NhZ2UyfSA9Ci0gICAgICAgICAgcG9zdENhbmNlbFRlc3QyKFtnMCwgZzEsIGcyLCBnM10sIGNh
bmNlbFRpbWUyLCBleHBlY3RlZENvbnN0YW50Mik7Ci0KLSAgICAgICAgLy8gQ29ubmVjdCBldmVy
eXRoaW5nIHRvZ2V0aGVyCi0gICAgICAgIHNyYy5jb25uZWN0KGcwKTsKLSAgICAgICAgc3JjLmNv
bm5lY3QoZzEpOwotICAgICAgICBzcmMuY29ubmVjdChnMik7Ci0gICAgICAgIHNyYy5jb25uZWN0
KGczKTsKLSAgICAgICAgY29uc3QgbWVyZ2VyID0gY29udGV4dC5jcmVhdGVDaGFubmVsTWVyZ2Vy
KDQpOwotICAgICAgICBnMC5jb25uZWN0KG1lcmdlciwgMCwgMCk7Ci0gICAgICAgIGcxLmNvbm5l
Y3QobWVyZ2VyLCAwLCAxKTsKLSAgICAgICAgZzIuY29ubmVjdChtZXJnZXIsIDAsIDIpOwotICAg
ICAgICBnMy5jb25uZWN0KG1lcmdlciwgMCwgMyk7Ci0gICAgICAgIG1lcmdlci5jb25uZWN0KGNv
bnRleHQuZGVzdGluYXRpb24pOwotCi0gICAgICAgIC8vIEdvIQotICAgICAgICBzcmMuc3RhcnQo
KTsKLQotICAgICAgICByZXR1cm4gY29udGV4dC5zdGFydFJlbmRlcmluZygpLnRoZW4oZnVuY3Rp
b24gKGJ1ZmZlcikgewotICAgICAgICAgIGNvbnN0IGFjdHVhbCA9IGJ1ZmZlci5nZXRDaGFubmVs
RGF0YSgwKTsKLSAgICAgICAgICBjb25zdCBleHBlY3RlZDEgPSBidWZmZXIuZ2V0Q2hhbm5lbERh
dGEoMSk7Ci0gICAgICAgICAgY29uc3QgZXhwZWN0ZWQyID0gYnVmZmVyLmdldENoYW5uZWxEYXRh
KDIpOwotICAgICAgICAgIGNvbnN0IGV4cGVjdGVkMyA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgz
KTsKLQotICAgICAgICAgIGNvbnN0IGNhbmNlbEZyYW1lMSA9IE1hdGguY2VpbChjYW5jZWxUaW1l
MSAqIHNhbXBsZVJhdGUpOwotICAgICAgICAgIGNvbnN0IGNhbmNlbEZyYW1lMiA9IE1hdGguY2Vp
bChjYW5jZWxUaW1lMiAqIHNhbXBsZVJhdGUpOwotCi0gICAgICAgICAgY29uc3QgY29uc3RhbnRF
bmRGcmFtZTEgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1lICogc2FtcGxlUmF0ZSk7Ci0gICAg
ICAgICAgY29uc3QgY29uc3RhbnRFbmRGcmFtZTIgPSBNYXRoLmNlaWwoY29uc3RhbnRFbmRUaW1l
MiAqIHNhbXBsZVJhdGUpOwotCi0gICAgICAgICAgY29uc3QgYWN0dWFsVGFpbDEgPSBhY3R1YWwu
c2xpY2UoY2FuY2VsRnJhbWUxLCBjb25zdGFudEVuZEZyYW1lMSk7Ci0gICAgICAgICAgY29uc3Qg
YWN0dWFsVGFpbDIgPSBhY3R1YWwuc2xpY2UoY2FuY2VsRnJhbWUyLCBjb25zdGFudEVuZEZyYW1l
Mik7Ci0KLSAgICAgICAgICBjb25zdCBhY3R1YWxDb25zdGFudDEgPSBhY3R1YWxbY2FuY2VsRnJh
bWUxXTsKLSAgICAgICAgICBjb25zdCBhY3R1YWxDb25zdGFudDIgPSBhY3R1YWxbY2FuY2VsRnJh
bWUyXTsKLQotICAgICAgICAgIC8vIFZlcmlmeSBmaXJzdCBzZWN0aW9uIGN1cnZlCi0gICAgICAg
ICAgc2hvdWxkKAotICAgICAgICAgICAgYWN0dWFsLnNsaWNlKDAsIGNhbmNlbEZyYW1lMSksCi0g
ICAgICAgICAgICBhdXRvTWVzc2FnZSArICcgdXAgdG8gdGltZSAnICsgY2FuY2VsVGltZTEpCi0g
ICAgICAgICAgICAuYmVDbG9zZVRvQXJyYXkoCi0gICAgICAgICAgICAgIGV4cGVjdGVkMS5zbGlj
ZSgwLCBjYW5jZWxGcmFtZTEpLAotICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IHRo
cmVzaG9sZE9wdGlvbnMuY3VydmVUaHJlc2hvbGR9KTsKLQotICAgICAgICAgIC8vIFZlcmlmeSB0
aGF0IGEgdmFsdWUgd2FzIGhlbGQgYWZ0ZXIgMXN0IGNhbmNlbAotICAgICAgICAgIHNob3VsZCgK
LSAgICAgICAgICAgIGFjdHVhbFRhaWwxLAotICAgICAgICAgICAgJ0NhbmNlbGxpbmcgJyArIGF1
dG9NZXNzYWdlICsgJyBhdCB0aW1lICcgKyBjYW5jZWxUaW1lMSkKLSAgICAgICAgICAgIC5iZUNv
bnN0YW50VmFsdWVPZihhY3R1YWxDb25zdGFudDEpOwotCi0gICAgICAgICAgLy8gVmVyaWZ5IHRo
YXQgaGVsZCB2YWx1ZSBhZnRlciAxc3QgY2FuY2VsIHdhcyBjb3JyZWN0Ci0gICAgICAgICAgc2hv
dWxkKAotICAgICAgICAgICAgYWN0dWFsQ29uc3RhbnQxLAotICAgICAgICAgICAgJ0V4cGVjdGVk
IHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBhdXRvTWVzc2FnZSArICcgYXQgdGltZSAnICsKLSAg
ICAgICAgICAgIGNhbmNlbFRpbWUxKQotICAgICAgICAgICAgLmJlQ2xvc2VUbygKLSAgICAgICAg
ICAgICAgZXhwZWN0ZWRDb25zdGFudCwKLSAgICAgICAgICAgICAge3RocmVzaG9sZDogdGhyZXNo
b2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZH0pOwotCi0gICAgICAgICAgLy8gVmVyaWZ5IG1pZGRs
ZSBzZWN0aW9uIGN1cnZlCi0gICAgICAgICAgc2hvdWxkKGFjdHVhbC5zbGljZShjb25zdGFudEVu
ZEZyYW1lMSwgY2FuY2VsRnJhbWUyKSwgbWVzc2FnZSkKLSAgICAgICAgICAgIC5iZUNsb3NlVG9B
cnJheSgKLSAgICAgICAgICAgICAgZXhwZWN0ZWQyLnNsaWNlKGNvbnN0YW50RW5kRnJhbWUxLCBj
YW5jZWxGcmFtZTIpLAotICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IGVycm9yVGhy
ZXNob2xkfSk7Ci0KLSAgICAgICAgICAvLyBWZXJpZnkgdGhhdCBhIHZhbHVlIHdhcyBoZWxkIGFm
dGVyIDJuZCBjYW5jZWwKLSAgICAgICAgICBzaG91bGQoCi0gICAgICAgICAgICBhY3R1YWxUYWls
MiwKLSAgICAgICAgICAgICdDYW5jZWxsaW5nICcgKyBtZXNzYWdlICsgJyBhdCB0aW1lICcgKyBj
YW5jZWxUaW1lMikKLSAgICAgICAgICAgIC5iZUNvbnN0YW50VmFsdWVPZihhY3R1YWxDb25zdGFu
dDIpOwotCi0gICAgICAgICAgLy8gVmVyaWZ5IHRoYXQgaGVsZCB2YWx1ZSBhZnRlciAybmQgY2Fu
Y2VsIHdhcyBjb3JyZWN0Ci0gICAgICAgICAgc2hvdWxkKAotICAgICAgICAgICAgYWN0dWFsQ29u
c3RhbnQyLAotICAgICAgICAgICAgJ0V4cGVjdGVkIHZhbHVlIGZvciBjYW5jZWxsaW5nICcgKyBt
ZXNzYWdlICsgJyBhdCB0aW1lICcgKwotICAgICAgICAgICAgY2FuY2VsVGltZTIpCi0gICAgICAg
ICAgICAuYmVDbG9zZVRvKAotICAgICAgICAgICAgICBleHBlY3RlZENvbnN0YW50MiwKLSAgICAg
ICAgICAgICAge3RocmVzaG9sZDogdGhyZXNob2xkT3B0aW9ucy52YWx1ZVRocmVzaG9sZH0pOwot
Ci0gICAgICAgICAgLy8gVmVyaWZ5IGVuZCBzZWN0aW9uIGN1cnZlCi0gICAgICAgICAgc2hvdWxk
KGFjdHVhbC5zbGljZShjb25zdGFudEVuZEZyYW1lMiksIG1lc3NhZ2UyKQotICAgICAgICAgICAg
LmJlQ2xvc2VUb0FycmF5KAotICAgICAgICAgICAgICBleHBlY3RlZDMuc2xpY2UoY29uc3RhbnRF
bmRGcmFtZTIpLAotICAgICAgICAgICAgICB7YWJzb2x1dGVUaHJlc2hvbGQ6IGVycm9yVGhyZXNo
b2xkIHx8IDB9KTsKLSAgICAgICAgfSk7Ci0gICAgICB9Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0t
ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9wYXJhbS1leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lLmh0bWwKaW5kZXggOTY1ZThj
MjA1MjU5NGQzNGExOGQ1NjlhN2ZhZDIxZjlhOTkyOWZjMC4uODE3OTQwZTUyMTZmZDVlMTIzYTli
MWM3ZmRhN2MxNGM5MTViZGMzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVk
aW9wYXJhbS1leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lLmh0bWwK
QEAgLTIsNyArMiw3IEBACiA8aHRtbD4KICAgPGhlYWQ+CiAgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KICAgPC9oZWFk
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWxpbmVhclJh
bXBUb1ZhbHVlQXRUaW1lLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lLmh0bWwKaW5kZXggMDZlNjgxNmNiOWNjZTU3MmM0Zjc2ZDQ0
M2U2N2I5ZDA4YTdhMTJlZi4uYjkwYjk4MDU3ZjhmNTE0YmRkYzNlMjk1ODBjMzgwYjIzNjc4ZGY0
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1saW5lYXJSYW1w
VG9WYWx1ZUF0VGltZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0t
bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgogPC9oZWFkPgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFt
LW5vbWluYWwtcmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9w
YXJhbS1ub21pbmFsLXJhbmdlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWYyZGUyMGFhY2ZjZjA5Y2U5YjMwM2JhYTZiMzM0YjNiMDY4YzUzNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb3BhcmFtLW5vbWluYWwtcmFuZ2UtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMzI5ICswLDAgQEAKLQotUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAotUEFT
UyBFeGVjdXRpbmcgImluaXRpYWxpemUiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRl
R2FpbiIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVEZWxheSIgCi1QQVNTIEV4ZWN1
dGluZyAiT2ZmbGluZSBjcmVhdGVCdWZmZXJTb3VyY2UiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxp
bmUgY3JlYXRlU3RlcmVvUGFubmVyIiAKLVBBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUR5
bmFtaWNzQ29tcHJlc3NvciIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVCaXF1YWRG
aWx0ZXIiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlT3NjaWxsYXRvciIgCi1QQVNT
IEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVQYW5uZXIiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxp
bmUgY3JlYXRlQ29uc3RhbnRTb3VyY2UiIAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRl
QnVmZmVyIiAKLVBBU1MgRXhlY3V0aW5nICJPZmZsaW5lIGNyZWF0ZUlJUkZpbHRlciIgCi1QQVNT
IEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVXYXZlU2hhcGVyIiAKLVBBU1MgRXhlY3V0aW5nICJP
ZmZsaW5lIGNyZWF0ZUNvbnZvbHZlciIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVB
bmFseXNlciIgCi1QQVNTIEV4ZWN1dGluZyAiT2ZmbGluZSBjcmVhdGVTY3JpcHRQcm9jZXNzb3Ii
IAotUEFTUyBFeGVjdXRpbmcgIk9mZmxpbmUgY3JlYXRlUGVyaW9kaWNXYXZlIiAKLVBBU1MgRXhl
Y3V0aW5nICJPZmZsaW5lIGNyZWF0ZUNoYW5uZWxTcGxpdHRlciIgCi1QQVNTIEV4ZWN1dGluZyAi
T2ZmbGluZSBjcmVhdGVDaGFubmVsTWVyZ2VyIiAKLVBBU1MgRXhlY3V0aW5nICJPbmxpbmUgY3Jl
YXRlTWVkaWFFbGVtZW50U291cmNlIiAKLVBBU1MgRXhlY3V0aW5nICJPbmxpbmUgY3JlYXRlTWVk
aWFTdHJlYW1EZXN0aW5hdGlvbiIgCi1QQVNTIEV4ZWN1dGluZyAiQXVkaW9MaXN0ZW5lciIgCi1Q
QVNTIEV4ZWN1dGluZyAidmVyaWZ5VGVzdHMiIAotUEFTUyBFeGVjdXRpbmcgImF1dG9tYXRpb24i
IAotUEFTUyBBdWRpdCByZXBvcnQgCi1QQVNTID4gW2luaXRpYWxpemVdICAKLVBBU1MgICBDcmVh
dGUgb2ZmbGluZSBjb250ZXh0IGZvciB0ZXN0cyBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4g
Ci1QQVNTICAgQ3JlYXRlIG9ubGluZSBjb250ZXh0IGZvciB0ZXN0cyBkaWQgbm90IHRocm93IGFu
IGV4Y2VwdGlvbi4gCi1QQVNTIDwgW2luaXRpYWxpemVdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDIgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlR2Fpbl0gIAotUEFT
UyAgIEdhaW5Ob2RlLmdhaW4ubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4
NmUrMzguIAotUEFTUyAgIEdhaW5Ob2RlLmdhaW4ubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4
MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgR2Fpbk5vZGUuZ2Fpbi5taW5WYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgR2Fpbk5vZGUuZ2Fpbi5taW5WYWx1ZSBpcyByZWFk
LW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgR2Fpbk5vZGUuZ2Fpbi5tYXhWYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgR2Fpbk5vZGUuZ2Fpbi5tYXhWYWx1ZSBp
cyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgTm9taW5hbCByYW5nZXMgZm9y
IEF1ZGlvUGFyYW0ocykgb2YgR2Fpbk5vZGUgYXJlIGNvcnJlY3QgCi1QQVNTIDwgW09mZmxpbmUg
Y3JlYXRlR2Fpbl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgNyBhc3NlcnRpb25zKSAK
LVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVEZWxheV0gIAotUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRp
bWUubWluVmFsdWUgaXMgZXF1YWwgdG8gMC4gCi1QQVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZS5t
YXhWYWx1ZSBpcyBlcXVhbCB0byAxLjUuIAotUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRpbWUubWlu
VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIERlbGF5Tm9kZS5kZWxheVRp
bWUubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIERlbGF5
Tm9kZS5kZWxheVRpbWUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAg
IERlbGF5Tm9kZS5kZWxheVRpbWUubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRy
dWUuIAotUEFTUyAgIFNldCBEZWxheU5vZGUuZGVsYXlUaW1lLnZhbHVlID0gLTEgaXMgZXF1YWwg
dG8gMC4gCi1QQVNTICAgU2V0IERlbGF5Tm9kZS5kZWxheVRpbWUudmFsdWUgPSA0IGlzIGVxdWFs
IHRvIDEuNS4gCi1QQVNTICAgRGVsYXlOb2RlLmRlbGF5VGltZSB3YXMgY2xpcHBlZCB0byBsaWUg
d2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIE5vbWlu
YWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIERlbGF5Tm9kZSBhcmUgY29ycmVjdCAKLVBB
U1MgPCBbT2ZmbGluZSBjcmVhdGVEZWxheV0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwg
MTAgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlQnVmZmVyU291cmNlXSAgCi1Q
QVNTICAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlLnBsYXliYWNrUmF0ZS5taW5WYWx1ZSBpcyBlcXVh
bCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLnBsYXliYWNrUmF0ZS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tSYXRlLm1pblZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUu
cGxheWJhY2tSYXRlLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBB
U1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tSYXRlLm1heFZhbHVlID0gNDIgaXMg
bm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUucGxheWJhY2tS
YXRlLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRp
b0J1ZmZlclNvdXJjZU5vZGUuZGV0dW5lLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2
NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRpb0J1ZmZlclNvdXJjZU5vZGUuZGV0dW5lLm1heFZh
bHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvQnVm
ZmVyU291cmNlTm9kZS5kZXR1bmUubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAot
UEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5kZXR1bmUubWluVmFsdWUgaXMgcmVhZC1vbmx5
IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvQnVmZmVyU291cmNlTm9kZS5kZXR1bmUu
bWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvQnVmZmVyU291
cmNlTm9kZS5kZXR1bmUubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAot
UEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIEF1ZGlvQnVmZmVyU291
cmNlTm9kZSBhcmUgY29ycmVjdCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVCdWZmZXJTb3VyY2Vd
IEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEzIGFzc2VydGlvbnMpIAotUEFTUyA+IFtP
ZmZsaW5lIGNyZWF0ZVN0ZXJlb1Bhbm5lcl0gIAotUEFTUyAgIFN0ZXJlb1Bhbm5lck5vZGUucGFu
Lm1pblZhbHVlIGlzIGVxdWFsIHRvIC0xLiAKLVBBU1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5t
YXhWYWx1ZSBpcyBlcXVhbCB0byAxLiAKLVBBU1MgICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5taW5W
YWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgU3RlcmVvUGFubmVyTm9kZS5w
YW4ubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFN0ZXJl
b1Bhbm5lck5vZGUucGFuLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1Mg
ICBTdGVyZW9QYW5uZXJOb2RlLnBhbi5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8g
dHJ1ZS4gCi1QQVNTICAgU2V0IFN0ZXJlb1Bhbm5lck5vZGUucGFuLnZhbHVlID0gLTMgaXMgZXF1
YWwgdG8gLTEuIAotUEFTUyAgIFNldCBTdGVyZW9QYW5uZXJOb2RlLnBhbi52YWx1ZSA9IDMgaXMg
ZXF1YWwgdG8gMS4gCi1QQVNTICAgU3RlcmVvUGFubmVyTm9kZS5wYW4gd2FzIGNsaXBwZWQgdG8g
bGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBO
b21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiBTdGVyZW9QYW5uZXJOb2RlIGFyZSBj
b3JyZWN0IAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVN0ZXJlb1Bhbm5lcl0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMTAgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRl
RHluYW1pY3NDb21wcmVzc29yXSAgCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJl
c2hvbGQubWluVmFsdWUgaXMgZXF1YWwgdG8gLTEwMC4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVz
c29yTm9kZS50aHJlc2hvbGQubWF4VmFsdWUgaXMgZXF1YWwgdG8gMC4gCi1QQVNTICAgRHluYW1p
Y3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8g
NDIuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUudGhyZXNob2xkLm1pblZhbHVlIGlz
IHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JO
b2RlLnRocmVzaG9sZC5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAg
RHluYW1pY3NDb21wcmVzc29yTm9kZS50aHJlc2hvbGQubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlz
IGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVz
aG9sZC52YWx1ZSA9IC0yMDEgaXMgZXF1YWwgdG8gLTEwMC4gCi1QQVNTICAgU2V0IER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUudGhyZXNob2xkLnZhbHVlID0gMSBpcyBlcXVhbCB0byAwLiAKLVBBU1Mg
ICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnRocmVzaG9sZCB3YXMgY2xpcHBlZCB0byBsaWUgd2l0
aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUua25lZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAwLiAKLVBBU1MgICBEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmtuZWUubWF4VmFsdWUgaXMgZXF1YWwgdG8gNDAuIAotUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0
byA0Mi4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5rbmVlLm1pblZhbHVlIGlzIHJl
YWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2Rl
LmtuZWUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUua25lZS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCi1QQVNTICAgU2V0IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUua25lZS52YWx1ZSA9IC0xIGlz
IGVxdWFsIHRvIDAuIAotUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmtuZWUudmFs
dWUgPSA4MSBpcyBlcXVhbCB0byA0MC4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5r
bmVlIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwg
dG8gdHJ1ZS4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yYXRpby5taW5WYWx1ZSBp
cyBlcXVhbCB0byAxLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1heFZh
bHVlIGlzIGVxdWFsIHRvIDIwLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlv
Lm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXBy
ZXNzb3JOb2RlLnJhdGlvLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAK
LVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1heFZhbHVlID0gNDIgaXMgbm90
IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJhdGlvLm1heFZh
bHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgRHluYW1pY3ND
b21wcmVzc29yTm9kZS5yYXRpby52YWx1ZSA9IDEgaXMgZXF1YWwgdG8gMS4gCi1QQVNTICAgU2V0
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmF0aW8udmFsdWUgPSA0MSBpcyBlcXVhbCB0byAyMC4g
Ci1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5yYXRpbyB3YXMgY2xpcHBlZCB0byBsaWUg
d2l0aGluIHRoZSBub21pbmFsIHJhbmdlIGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIER5bmFt
aWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1pblZhbHVlIGlzIGVxdWFsIHRvIDAuIAotUEFTUyAg
IER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1heFZhbHVlIGlzIGVxdWFsIHRvIDEuIAot
UEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1pblZhbHVlID0gNDIgaXMgbm90
IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmF0dGFjay5taW5W
YWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgRHluYW1pY3NDb21w
cmVzc29yTm9kZS5hdHRhY2subWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFT
UyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuYXR0YWNrLm1heFZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS5hdHRh
Y2sudmFsdWUgPSAtMSBpcyBlcXVhbCB0byAwLiAKLVBBU1MgICBTZXQgRHluYW1pY3NDb21wcmVz
c29yTm9kZS5hdHRhY2sudmFsdWUgPSAzIGlzIGVxdWFsIHRvIDEuIAotUEFTUyAgIER5bmFtaWNz
Q29tcHJlc3Nvck5vZGUuYXR0YWNrIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWlu
YWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5yZWxlYXNlLm1pblZhbHVlIGlzIGVxdWFsIHRvIDAuIAotUEFTUyAgIER5bmFtaWNzQ29tcHJl
c3Nvck5vZGUucmVsZWFzZS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAxLiAKLVBBU1MgICBEeW5hbWlj
c0NvbXByZXNzb3JOb2RlLnJlbGVhc2UubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAotUEFTUyAgIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUucmVsZWFzZS5taW5WYWx1ZSBpcyByZWFk
LW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgRHluYW1pY3NDb21wcmVzc29yTm9kZS5y
ZWxlYXNlLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBEeW5hbWlj
c0NvbXByZXNzb3JOb2RlLnJlbGVhc2UubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRv
IHRydWUuIAotUEFTUyAgIFNldCBEeW5hbWljc0NvbXByZXNzb3JOb2RlLnJlbGVhc2UudmFsdWUg
PSAtMSBpcyBlcXVhbCB0byAwLiAKLVBBU1MgICBTZXQgRHluYW1pY3NDb21wcmVzc29yTm9kZS5y
ZWxlYXNlLnZhbHVlID0gMyBpcyBlcXVhbCB0byAxLiAKLVBBU1MgICBEeW5hbWljc0NvbXByZXNz
b3JOb2RlLnJlbGVhc2Ugd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5hbCByYW5n
ZSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJh
bShzKSBvZiBEeW5hbWljc0NvbXByZXNzb3JOb2RlIGFyZSBjb3JyZWN0IAotUEFTUyA8IFtPZmZs
aW5lIGNyZWF0ZUR5bmFtaWNzQ29tcHJlc3Nvcl0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90
YWwgNDYgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlQmlxdWFkRmlsdGVyXSAg
Ci1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kubWluVmFsdWUgaXMgZXF1YWwgdG8g
MC4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3kubWF4VmFsdWUgaXMgZXF1YWwg
dG8gMjQwMDAuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5Lm1pblZhbHVlID0g
NDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmZyZXF1ZW5j
eS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQmlxdWFk
RmlsdGVyTm9kZS5mcmVxdWVuY3kubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAot
UEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZnJlcXVlbmN5Lm1heFZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5mcmVxdWVuY3ku
dmFsdWUgPSAtMSBpcyBlcXVhbCB0byAwLiAKLVBBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5m
cmVxdWVuY3kudmFsdWUgPSA0ODAwMSBpcyBlcXVhbCB0byAyNDAwMC4gCi1QQVNTICAgQmlxdWFk
RmlsdGVyTm9kZS5mcmVxdWVuY3kgd2FzIGNsaXBwZWQgdG8gbGllIHdpdGhpbiB0aGUgbm9taW5h
bCByYW5nZSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLmRldHVu
ZS5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMTUzNjAwLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2Rl
LmRldHVuZS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAxNTM2MDAuIAotUEFTUyAgIEJpcXVhZEZpbHRl
ck5vZGUuZGV0dW5lLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBC
aXF1YWRGaWx0ZXJOb2RlLmRldHVuZS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8g
dHJ1ZS4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5kZXR1bmUubWF4VmFsdWUgPSA0MiBpcyBu
b3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lLm1heFZhbHVl
IGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgQmlxdWFkRmlsdGVy
Tm9kZS5kZXR1bmUudmFsdWUgPSAtMzA3MjAxIGlzIGVxdWFsIHRvIC0xNTM2MDAuIAotUEFTUyAg
IFNldCBCaXF1YWRGaWx0ZXJOb2RlLmRldHVuZS52YWx1ZSA9IDMwNzIwMSBpcyBlcXVhbCB0byAx
NTM2MDAuIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZGV0dW5lIHdhcyBjbGlwcGVkIHRvIGxp
ZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQmlx
dWFkRmlsdGVyTm9kZS5RLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40
MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5RLm1pblZhbHVl
ID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBCaXF1YWRGaWx0ZXJOb2RlLlEubWlu
VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEJpcXVhZEZpbHRl
ck5vZGUuUS5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQmlxdWFk
RmlsdGVyTm9kZS5RLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBB
U1MgICBCaXF1YWRGaWx0ZXJOb2RlLmdhaW4ubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIz
NDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fpbi5tYXhWYWx1ZSBp
cyBlcXVhbCB0byAxNTQxLjI3MzY4MTY0MDYyNS4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5n
YWluLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBCaXF1YWRGaWx0
ZXJOb2RlLmdhaW4ubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFT
UyAgIEJpcXVhZEZpbHRlck5vZGUuZ2Fpbi5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0
Mi4gCi1QQVNTICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluLm1heFZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBTZXQgQmlxdWFkRmlsdGVyTm9kZS5nYWluLnZhbHVl
ID0gMzA4My41NDczNjMyODEyNSBpcyBlcXVhbCB0byAxNTQxLjI3MzY4MTY0MDYyNS4gCi1QQVNT
ICAgQmlxdWFkRmlsdGVyTm9kZS5nYWluIHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5v
bWluYWwgcmFuZ2UgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgTm9taW5hbCByYW5nZXMgZm9y
IEF1ZGlvUGFyYW0ocykgb2YgQmlxdWFkRmlsdGVyTm9kZSBhcmUgY29ycmVjdCAKLVBBU1MgPCBb
T2ZmbGluZSBjcmVhdGVCaXF1YWRGaWx0ZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDMzIGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZU9zY2lsbGF0b3JdICAKLVBB
U1MgICBPc2NpbGxhdG9yTm9kZS5mcmVxdWVuY3kubWluVmFsdWUgaXMgZXF1YWwgdG8gLTI0MDAw
LiAKLVBBU1MgICBPc2NpbGxhdG9yTm9kZS5mcmVxdWVuY3kubWF4VmFsdWUgaXMgZXF1YWwgdG8g
MjQwMDAuIAotUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS5taW5WYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgT3NjaWxsYXRvck5vZGUuZnJlcXVlbmN5Lm1pblZh
bHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBPc2NpbGxhdG9yTm9k
ZS5mcmVxdWVuY3kubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIE9z
Y2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8g
dHJ1ZS4gCi1QQVNTICAgU2V0IE9zY2lsbGF0b3JOb2RlLmZyZXF1ZW5jeS52YWx1ZSA9IC00ODAw
MSBpcyBlcXVhbCB0byAtMjQwMDAuIAotUEFTUyAgIFNldCBPc2NpbGxhdG9yTm9kZS5mcmVxdWVu
Y3kudmFsdWUgPSA0ODAwMSBpcyBlcXVhbCB0byAyNDAwMC4gCi1QQVNTICAgT3NjaWxsYXRvck5v
ZGUuZnJlcXVlbmN5IHdhcyBjbGlwcGVkIHRvIGxpZSB3aXRoaW4gdGhlIG5vbWluYWwgcmFuZ2Ug
aXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgT3NjaWxsYXRvck5vZGUuZGV0dW5lLm1pblZhbHVl
IGlzIGVxdWFsIHRvIC0xNTM2MDAuIAotUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5tYXhW
YWx1ZSBpcyBlcXVhbCB0byAxNTM2MDAuIAotUEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5t
aW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgT3NjaWxsYXRvck5vZGUu
ZGV0dW5lLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBP
c2NpbGxhdG9yTm9kZS5kZXR1bmUubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAot
UEFTUyAgIE9zY2lsbGF0b3JOb2RlLmRldHVuZS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1
YWwgdG8gdHJ1ZS4gCi1QQVNTICAgU2V0IE9zY2lsbGF0b3JOb2RlLmRldHVuZS52YWx1ZSA9IC0z
MDcyMDEgaXMgZXF1YWwgdG8gLTE1MzYwMC4gCi1QQVNTICAgU2V0IE9zY2lsbGF0b3JOb2RlLmRl
dHVuZS52YWx1ZSA9IDMwNzIwMSBpcyBlcXVhbCB0byAxNTM2MDAuIAotUEFTUyAgIE9zY2lsbGF0
b3JOb2RlLmRldHVuZSB3YXMgY2xpcHBlZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdl
IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIE5vbWluYWwgcmFuZ2VzIGZvciBBdWRpb1BhcmFt
KHMpIG9mIE9zY2lsbGF0b3JOb2RlIGFyZSBjb3JyZWN0IAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0
ZU9zY2lsbGF0b3JdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDE5IGFzc2VydGlvbnMp
IAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZVBhbm5lcl0gIAotUEFTUyAgIFBhbm5lck5vZGUucG9z
aXRpb25YLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBB
U1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2
NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWC5taW5WYWx1ZSA9IDQy
IGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblgubWluVmFs
dWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFBhbm5lck5vZGUucG9z
aXRpb25YLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBQYW5uZXJO
b2RlLnBvc2l0aW9uWC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1Q
QVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblkubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIz
NDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1heFZhbHVlIGlz
IGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIFBhbm5lck5vZGUucG9z
aXRpb25ZLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBQYW5uZXJO
b2RlLnBvc2l0aW9uWS5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1Q
QVNTICAgUGFubmVyTm9kZS5wb3NpdGlvblkubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8g
NDIuIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25ZLm1heFZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWi5taW5WYWx1ZSBp
cyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgUGFubmVyTm9kZS5w
b3NpdGlvbloubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1Q
QVNTICAgUGFubmVyTm9kZS5wb3NpdGlvbloubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8g
NDIuIAotUEFTUyAgIFBhbm5lck5vZGUucG9zaXRpb25aLm1pblZhbHVlIGlzIHJlYWQtb25seSBp
cyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBQYW5uZXJOb2RlLnBvc2l0aW9uWi5tYXhWYWx1ZSA9
IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5wb3NpdGlvbloubWF4
VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIFBhbm5lck5vZGUu
b3JpZW50YXRpb25YLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4
LiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5tYXhWYWx1ZSBpcyBlcXVhbCB0byAz
LjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5t
aW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmll
bnRhdGlvblgubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAg
IFBhbm5lck5vZGUub3JpZW50YXRpb25YLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQy
LiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkg
aXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvblkubWluVmFs
dWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIFBhbm5lck5v
ZGUub3JpZW50YXRpb25ZLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUr
MzguIAotUEFTUyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25ZLm1pblZhbHVlID0gNDIgaXMgbm90
IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWS5taW5WYWx1ZSBp
cyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRh
dGlvblkubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIFBhbm5lck5v
ZGUub3JpZW50YXRpb25ZLm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAK
LVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40
MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvbloubWF4
VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgUGFubmVy
Tm9kZS5vcmllbnRhdGlvbloubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFT
UyAgIFBhbm5lck5vZGUub3JpZW50YXRpb25aLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVh
bCB0byB0cnVlLiAKLVBBU1MgICBQYW5uZXJOb2RlLm9yaWVudGF0aW9uWi5tYXhWYWx1ZSA9IDQy
IGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgUGFubmVyTm9kZS5vcmllbnRhdGlvbloubWF4
VmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIE5vbWluYWwgcmFu
Z2VzIGZvciBBdWRpb1BhcmFtKHMpIG9mIFBhbm5lck5vZGUgYXJlIGNvcnJlY3QgCi1QQVNTIDwg
W09mZmxpbmUgY3JlYXRlUGFubmVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAzNyBh
c3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVDb25zdGFudFNvdXJjZV0gIAotUEFT
UyAgIENvbnN0YW50U291cmNlTm9kZS5vZmZzZXQubWluVmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAy
ODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIENvbnN0YW50U291cmNlTm9kZS5vZmZzZXQubWF4
VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQ29uc3Rh
bnRTb3VyY2VOb2RlLm9mZnNldC5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1Q
QVNTICAgQ29uc3RhbnRTb3VyY2VOb2RlLm9mZnNldC5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQ29uc3RhbnRTb3VyY2VOb2RlLm9mZnNldC5tYXhWYWx1
ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQ29uc3RhbnRTb3VyY2VOb2RlLm9m
ZnNldC5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgTm9t
aW5hbCByYW5nZXMgZm9yIEF1ZGlvUGFyYW0ocykgb2YgQ29uc3RhbnRTb3VyY2VOb2RlIGFyZSBj
b3JyZWN0IAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZUNvbnN0YW50U291cmNlXSBBbGwgYXNzZXJ0
aW9ucyBwYXNzZWQuICh0b3RhbCA3IGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0
ZUJ1ZmZlcl0gIAotUEFTUyAgIEF1ZGlvQnVmZmVyIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBl
Y3RlZCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVCdWZmZXJdIEFsbCBhc3NlcnRpb25zIHBhc3Nl
ZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlSUlSRmlsdGVy
XSAgCi1QQVNTICAgSUlSRmlsdGVyTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQg
Ci1QQVNTIDwgW09mZmxpbmUgY3JlYXRlSUlSRmlsdGVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQu
ICh0b3RhbCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZVdhdmVTaGFwZXJd
ICAKLVBBU1MgICBXYXZlU2hhcGVyTm9kZSBoYXMgbm8gQXVkaW9QYXJhbXMgYXMgZXhwZWN0ZWQg
Ci1QQVNTIDwgW09mZmxpbmUgY3JlYXRlV2F2ZVNoYXBlcl0gQWxsIGFzc2VydGlvbnMgcGFzc2Vk
LiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVDb252b2x2ZXJd
ICAKLVBBU1MgICBDb252b2x2ZXJOb2RlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAK
LVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVDb252b2x2ZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4g
KHRvdGFsIDEgYXNzZXJ0aW9ucykgCi1QQVNTID4gW09mZmxpbmUgY3JlYXRlQW5hbHlzZXJdICAK
LVBBU1MgICBBbmFseXNlck5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVjdGVkIAotUEFT
UyA8IFtPZmZsaW5lIGNyZWF0ZUFuYWx5c2VyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFtPZmZsaW5lIGNyZWF0ZVNjcmlwdFByb2Nlc3Nvcl0g
IAotUEFTUyAgIFNjcmlwdFByb2Nlc3Nvck5vZGUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFzIGV4cGVj
dGVkIAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVNjcmlwdFByb2Nlc3Nvcl0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVhdGVQ
ZXJpb2RpY1dhdmVdICAKLVBBU1MgICBQZXJpb2RpY1dhdmUgaGFzIG5vIEF1ZGlvUGFyYW1zIGFz
IGV4cGVjdGVkIAotUEFTUyA8IFtPZmZsaW5lIGNyZWF0ZVBlcmlvZGljV2F2ZV0gQWxsIGFzc2Vy
dGlvbnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT2ZmbGluZSBjcmVh
dGVDaGFubmVsU3BsaXR0ZXJdICAKLVBBU1MgICBDaGFubmVsU3BsaXR0ZXJOb2RlIGhhcyBubyBB
dWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVhdGVDaGFubmVsU3Bs
aXR0ZXJdIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNzZXJ0aW9ucykgCi1QQVNT
ID4gW09mZmxpbmUgY3JlYXRlQ2hhbm5lbE1lcmdlcl0gIAotUEFTUyAgIENoYW5uZWxNZXJnZXJO
b2RlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKLVBBU1MgPCBbT2ZmbGluZSBjcmVh
dGVDaGFubmVsTWVyZ2VyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxIGFzc2VydGlv
bnMpIAotUEFTUyA+IFtPbmxpbmUgY3JlYXRlTWVkaWFFbGVtZW50U291cmNlXSAgCi1QQVNTICAg
TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3Rl
ZCAKLVBBU1MgPCBbT25saW5lIGNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZV0gQWxsIGFzc2VydGlv
bnMgcGFzc2VkLiAodG90YWwgMSBhc3NlcnRpb25zKSAKLVBBU1MgPiBbT25saW5lIGNyZWF0ZU1l
ZGlhU3RyZWFtRGVzdGluYXRpb25dICAKLVBBU1MgICBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRp
b25Ob2RlIGhhcyBubyBBdWRpb1BhcmFtcyBhcyBleHBlY3RlZCAKLVBBU1MgPCBbT25saW5lIGNy
ZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb25dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFs
IDEgYXNzZXJ0aW9ucykgCi1QQVNTID4gW0F1ZGlvTGlzdGVuZXJdICAKLVBBU1MgICBBdWRpb0xp
c3RlbmVyLnBvc2l0aW9uWC5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2
ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWF4VmFsdWUgaXMgZXF1YWwg
dG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlv
blgubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVu
ZXIucG9zaXRpb25YLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBB
U1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWC5tYXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0
byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblgubWF4VmFsdWUgaXMgcmVhZC1v
bmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25ZLm1p
blZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRp
b0xpc3RlbmVyLnBvc2l0aW9uWS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4
ODZlKzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWS5taW5WYWx1ZSA9IDQyIGlz
IG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvblkubWluVmFs
dWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIu
cG9zaXRpb25ZLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRp
b0xpc3RlbmVyLnBvc2l0aW9uWS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1
ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWluVmFsdWUgaXMgZXF1YWwgdG8g
LTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25a
Lm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1
ZGlvTGlzdGVuZXIucG9zaXRpb25aLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAK
LVBBU1MgICBBdWRpb0xpc3RlbmVyLnBvc2l0aW9uWi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5wb3NpdGlvbloubWF4VmFsdWUg
PSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIucG9zaXRpb25a
Lm1heFZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRpb0xp
c3RlbmVyLmZvcndhcmRYLm1pblZhbHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZl
KzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRYLm1heFZhbHVlIGlzIGVxdWFsIHRv
IDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgu
bWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIu
Zm9yd2FyZFgubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAg
IEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgubWF4VmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFgubWF4VmFsdWUgaXMgcmVhZC1vbmx5IGlz
IGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIuZm9yd2FyZFkubWluVmFsdWUg
aXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlvTGlzdGVu
ZXIuZm9yd2FyZFkubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4g
Ci1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVh
bCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5taW5WYWx1ZSBpcyByZWFk
LW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWS5t
YXhWYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5m
b3J3YXJkWS5tYXhWYWx1ZSBpcyByZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAg
QXVkaW9MaXN0ZW5lci5mb3J3YXJkWi5taW5WYWx1ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYz
ODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci5mb3J3YXJkWi5tYXhWYWx1ZSBpcyBl
cXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZv
cndhcmRaLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0xp
c3RlbmVyLmZvcndhcmRaLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAK
LVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRaLm1heFZhbHVlID0gNDIgaXMgbm90IGVxdWFs
IHRvIDQyLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLmZvcndhcmRaLm1heFZhbHVlIGlzIHJlYWQt
b25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5taW5WYWx1
ZSBpcyBlcXVhbCB0byAtMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1QQVNTICAgQXVkaW9MaXN0
ZW5lci51cFgubWF4VmFsdWUgaXMgZXF1YWwgdG8gMy40MDI4MjM0NjYzODUyODg2ZSszOC4gCi1Q
QVNTICAgQXVkaW9MaXN0ZW5lci51cFgubWluVmFsdWUgPSA0MiBpcyBub3QgZXF1YWwgdG8gNDIu
IAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBYLm1pblZhbHVlIGlzIHJlYWQtb25seSBpcyBlcXVh
bCB0byB0cnVlLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWC5tYXhWYWx1ZSA9IDQyIGlzIG5v
dCBlcXVhbCB0byA0Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFgubWF4VmFsdWUgaXMgcmVh
ZC1vbmx5IGlzIGVxdWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1pblZh
bHVlIGlzIGVxdWFsIHRvIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAKLVBBU1MgICBBdWRpb0xp
c3RlbmVyLnVwWS5tYXhWYWx1ZSBpcyBlcXVhbCB0byAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LiAK
LVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWS5taW5WYWx1ZSA9IDQyIGlzIG5vdCBlcXVhbCB0byA0
Mi4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFkubWluVmFsdWUgaXMgcmVhZC1vbmx5IGlzIGVx
dWFsIHRvIHRydWUuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBZLm1heFZhbHVlID0gNDIgaXMg
bm90IGVxdWFsIHRvIDQyLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWS5tYXhWYWx1ZSBpcyBy
ZWFkLW9ubHkgaXMgZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFoubWlu
VmFsdWUgaXMgZXF1YWwgdG8gLTMuNDAyODIzNDY2Mzg1Mjg4NmUrMzguIAotUEFTUyAgIEF1ZGlv
TGlzdGVuZXIudXBaLm1heFZhbHVlIGlzIGVxdWFsIHRvIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgu
IAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBaLm1pblZhbHVlID0gNDIgaXMgbm90IGVxdWFsIHRv
IDQyLiAKLVBBU1MgICBBdWRpb0xpc3RlbmVyLnVwWi5taW5WYWx1ZSBpcyByZWFkLW9ubHkgaXMg
ZXF1YWwgdG8gdHJ1ZS4gCi1QQVNTICAgQXVkaW9MaXN0ZW5lci51cFoubWF4VmFsdWUgPSA0MiBp
cyBub3QgZXF1YWwgdG8gNDIuIAotUEFTUyAgIEF1ZGlvTGlzdGVuZXIudXBaLm1heFZhbHVlIGlz
IHJlYWQtb25seSBpcyBlcXVhbCB0byB0cnVlLiAKLVBBU1MgICBOb21pbmFsIHJhbmdlcyBmb3Ig
QXVkaW9QYXJhbShzKSBvZiBBdWRpb0xpc3RlbmVyIGFyZSBjb3JyZWN0IAotUEFTUyA8IFtBdWRp
b0xpc3RlbmVyXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCA1NSBhc3NlcnRpb25zKSAK
LVBBU1MgPiBbdmVyaWZ5VGVzdHNdICAKLVBBU1MgICBOdW1iZXIgb2Ygbm9kZXMgbm90IHRlc3Rl
ZCA6IDAgCi1QQVNTIDwgW3ZlcmlmeVRlc3RzXSBBbGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3Rh
bCAxIGFzc2VydGlvbnMpIAotUEFTUyA+IFthdXRvbWF0aW9uXSAgCi1QQVNTICAgVGVzdCBhdXRv
bWF0aW9ucyAoY2hlY2sgY29uc29sZSBsb2dzKSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4g
Ci1QQVNTIDwgW2F1dG9tYXRpb25dIEFsbCBhc3NlcnRpb25zIHBhc3NlZC4gKHRvdGFsIDEgYXNz
ZXJ0aW9ucykgCi1QQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDI0IHRhc2tzIHJh
biBzdWNjZXNzZnVsbHkuIAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b3BhcmFtLW5vbWluYWwtcmFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFy
YW0tbm9taW5hbC1yYW5nZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzQw
OWMzODExYjgwNDY0ZGJlYWFlNWE4OTA2MWM0NWQ4ZmVhOThhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFy
YW0tbm9taW5hbC1yYW5nZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDk3ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDx0aXRsZT4KLSAgICAgIFRlc3Qg
QXVkaW9QYXJhbSBOb21pbmFsIFJhbmdlIFZhbHVlcwotICAgIDwvdGl0bGU+Ci0gICAgPHNjcmlw
dCBzcmM9Ii4uL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1
ZGl0LXV0aWwuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYXVkaXQu
anMiPjwvc2NyaXB0PgotICA8L2hlYWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQgaWQ9ImxheW91
dC10ZXN0LWNvZGUiPgotICAgICAgLy8gU29tZSBhcmJpdHJhcnkgc2FtcGxlIHJhdGUgZm9yIHRo
ZSBvZmZsaW5lIGNvbnRleHQuCi0gICAgICBsZXQgc2FtcGxlUmF0ZSA9IDQ4MDAwOwotCi0gICAg
ICAvLyBUaGUgYWN0dWFsIGNvbnRleHRzIHRvIHVzZS4gIEdlbmVyYWxseSB1c2UgdGhlIG9mZmxp
bmUgY29udGV4dCBmb3IKLSAgICAgIC8vIHRlc3RpbmcgZXhjZXB0IGZvciB0aGUgbWVkaWEgbm9k
ZXMgd2hpY2ggcmVxdWlyZSBhbiBBdWRpb0NvbnRleHQuCi0gICAgICBsZXQgb2ZmbGluZUNvbnRl
eHQ7Ci0gICAgICBsZXQgYXVkaW9Db250ZXh0OwotCi0gICAgICAvLyBUaGUgc2V0IG9mIGFsbCBt
ZXRob2RzIHRoYXQgd2UndmUgdGVzdGVkIGZvciB2ZXJpZnlpbmcgdGhhdCB3ZSB0ZXN0ZWQKLSAg
ICAgIC8vIGFsbCBvZiB0aGUgbmVjZXNzYXJ5IG9iamVjdHMuCi0gICAgICBsZXQgdGVzdGVkTWV0
aG9kcyA9IG5ldyBTZXQoKTsKLQotICAgICAgLy8gVGhlIG1vc3QgcG9zaXRpdmUgc2luZ2xlIGZs
b2F0IHZhbHVlICh0aGUgdmFsdWUganVzdCBiZWZvcmUgaW5maW5pdHkpLgotICAgICAgLy8gQmUg
Y2FyZWZ1bCB3aGVuIGNoYW5naW5nIHRoaXMgdmFsdWUhICBKYXZhc2NyaXB0IG9ubHkgdXNlcyBk
b3VibGUKLSAgICAgIC8vIGZsb2F0cywgc28gdGhlIHZhbHVlIGhlcmUgc2hvdWxkIGJlIHRoZSBt
YXggc2luZ2xlLWZsb2F0IHZhbHVlLAotICAgICAgLy8gY29udmVydGVkIGRpcmVjdGx5IHRvIGEg
ZG91YmxlLWZsb2F0IHZhbHVlLiAgVGhpcyBhbHNvIGRlcGVuZHMgb24KLSAgICAgIC8vIEphdmFz
Y3JpcHQgcmVhZGluZyB0aGlzIHZhbHVlIGFuZCBwcm9kdWNpbmcgdGhlIGRlc2lyZWQgZG91Ymxl
LWZsb2F0Ci0gICAgICAvLyB2YWx1ZSBjb3JyZWN0bHkuCi0gICAgICBsZXQgbW9zdFBvc2l0aXZl
RmxvYXQgPSAzLjQwMjgyMzQ2NjM4NTI4ODZlMzg7Ci0KLSAgICAgIGxldCBhdWRpdCA9IEF1ZGl0
LmNyZWF0ZVRhc2tSdW5uZXIoKTsKLQotICAgICAgLy8gQXJyYXkgZGVzY3JpYmluZyB0aGUgdGVz
dHMgdGhhdCBzaG91bGQgYmUgcnVuLiAgfHRlc3RPZmZsaW5lQ29uZmlnc3wgaXMKLSAgICAgIC8v
IGZvciB0ZXN0cyB0aGF0IGNhbiB1c2UgYW4gb2ZmbGluZSBjb250ZXh0LiB8dGVzdE9ubGluZUNv
bmZpZ3N8IGlzIGZvcgotICAgICAgLy8gdGVzdHMgdGhhdCBuZWVkIHRvIHVzZSBhbiBvbmxpbmUg
Y29udGV4dC4gIE9mZmxpbmUgY29udGV4dHMgYXJlCi0gICAgICAvLyBwcmVmZXJyZWQgd2hlbiBw
b3NzaWJsZS4KLSAgICAgIGxldCB0ZXN0T2ZmbGluZUNvbmZpZ3MgPSBbCi0gICAgICAgIHsKLSAg
ICAgICAgICAvLyBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kIHRvIGNyZWF0ZSB0aGUgcGFydGljdWxh
ciBub2RlIHRvIGJlIHRlc3RlZC4KLSAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlR2FpbicsCi0K
LSAgICAgICAgICAvLyBBbnkgYXJncyB0byBwYXNzIHRvIHRoZSBjcmVhdG9yIGZ1bmN0aW9uLgot
ICAgICAgICAgIGFyZ3M6IFtdLAotCi0gICAgICAgICAgLy8gVGhlIG1pbi9tYXggbGltaXRzIGZv
ciBlYWNoIEF1ZGlvUGFyYW0gb2YgdGhlIG5vZGUuICBUaGlzIGlzIGEKLSAgICAgICAgICAvLyBk
aWN0aW9uYXJ5IHdob3NlIGtleXMgYXJlCi0gICAgICAgICAgLy8gdGhlIG5hbWVzIG9mIGVhY2gg
QXVkaW9QYXJhbSBpbiB0aGUgbm9kZS4gIERvbid0IGRlZmluZSB0aGlzIGlmIHRoZQotICAgICAg
ICAgIC8vIG5vZGUgZG9lc24ndCBoYXZlIGFueQotICAgICAgICAgIC8vIEF1ZGlvUGFyYW0gYXR0
cmlidXRlcy4KLSAgICAgICAgICBsaW1pdHM6IHsKLSAgICAgICAgICAgIGdhaW46IHsKLSAgICAg
ICAgICAgICAgLy8gVGhlIGV4cGVjdGVkIG1pbiBhbmQgbWF4IHZhbHVlcyBmb3IgdGhpcyBBdWRp
b1BhcmFtLgotICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAotICAg
ICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVhdG9yOiAnY3Jl
YXRlRGVsYXknLAotICAgICAgICAgIC8vIEp1c3Qgc3BlY2lmeSBhIG5vbi1kZWZhdWx0IHZhbHVl
IGZvciB0aGUgbWF4aW11bSBkZWxheSBzbyB3ZSBjYW4KLSAgICAgICAgICAvLyBtYWtlIHN1cmUg
dGhlIGxpbWl0cyBhcmUKLSAgICAgICAgICAvLyBzZXQgY29ycmVjdGx5LgotICAgICAgICAgIGFy
Z3M6IFsxLjVdLAotICAgICAgICAgIGxpbWl0czoge2RlbGF5VGltZToge21pblZhbHVlOiAwLCBt
YXhWYWx1ZTogMS41fX0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgIGNyZWF0b3I6
ICdjcmVhdGVCdWZmZXJTb3VyY2UnLAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAgICAgIGxp
bWl0czogewotICAgICAgICAgICAgcGxheWJhY2tSYXRlOgotICAgICAgICAgICAgICAgIHttaW5W
YWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LCBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXR9LAot
ICAgICAgICAgICAgZGV0dW5lOiB7bWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwgbWF4VmFs
dWU6IG1vc3RQb3NpdGl2ZUZsb2F0fQotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVTdGVyZW9QYW5uZXInLAotICAgICAgICAgIGFy
Z3M6IFtdLAotICAgICAgICAgIGxpbWl0czoge3Bhbjoge21pblZhbHVlOiAtMSwgbWF4VmFsdWU6
IDF9fQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUR5
bmFtaWNzQ29tcHJlc3NvcicsCi0gICAgICAgICAgYXJnczogW10sCi0gICAgICAgICAgLy8gRG8g
bm90IHNldCBsaW1pdHMgZm9yIHJlZHVjdGlvbjsgIGl0J3MgY3VycmVudGx5IGFuIEF1ZGlvUGFy
YW0gYnV0Ci0gICAgICAgICAgLy8gc2hvdWxkIGJlIGEgZmxvYXQuCi0gICAgICAgICAgLy8gU28g
bGV0IHRoZSB0ZXN0IGZhaWwgZm9yIHJlZHVjdGlvbi4gIFdoZW4gcmVkdWN0aW9uIGlzIGNoYW5n
ZWQsCi0gICAgICAgICAgLy8gdGhpcyB0ZXN0IHdpbGwgdGhlbgotICAgICAgICAgIC8vIGNvcnJl
Y3RseSBwYXNzLgotICAgICAgICAgIGxpbWl0czogewotICAgICAgICAgICAgdGhyZXNob2xkOiB7
bWluVmFsdWU6IC0xMDAsIG1heFZhbHVlOiAwfSwKLSAgICAgICAgICAgIGtuZWU6IHttaW5WYWx1
ZTogMCwgbWF4VmFsdWU6IDQwfSwKLSAgICAgICAgICAgIHJhdGlvOiB7bWluVmFsdWU6IDEsIG1h
eFZhbHVlOiAyMH0sCi0gICAgICAgICAgICBhdHRhY2s6IHttaW5WYWx1ZTogMCwgbWF4VmFsdWU6
IDF9LAotICAgICAgICAgICAgcmVsZWFzZToge21pblZhbHVlOiAwLCBtYXhWYWx1ZTogMX0KLSAg
ICAgICAgICB9Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVhdG9yOiAnY3Jl
YXRlQmlxdWFkRmlsdGVyJywKLSAgICAgICAgICBhcmdzOiBbXSwKLSAgICAgICAgICBsaW1pdHM6
IHsKLSAgICAgICAgICAgIGdhaW46IHsKLSAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9z
aXRpdmVGbG9hdCwKLSAgICAgICAgICAgICAgLy8gVGhpcyBjb21wbGljYXRlZCBleHByZXNzaW9u
IGlzIHVzZWQgdG8gZ2V0IGFsbCB0aGUgYXJpdGhtZXRpYwotICAgICAgICAgICAgICAvLyB0byBy
b3VuZCB0byB0aGUgY29ycmVjdCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHZhbHVlIGZvciB0aGUK
LSAgICAgICAgICAgICAgLy8gZGVzaXJlZCBtYXguICBUaGlzIGFsc28gYXNzdW1lcyB0aGF0IHRo
ZSBpbXBsaWNhdGlvbiBjb21wdXRlcwotICAgICAgICAgICAgICAvLyB0aGUgbGltaXQgYXMgNDAg
KiBsb2cxMGYoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKS4KLSAgICAgICAgICAg
ICAgbWF4VmFsdWU6Ci0gICAgICAgICAgICAgICAgICBNYXRoLmZyb3VuZCg0MCAqIE1hdGguZnJv
dW5kKE1hdGgubG9nMTAobW9zdFBvc2l0aXZlRmxvYXQpKSkKLSAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICBROiB7bWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwgbWF4VmFsdWU6IG1vc3RQ
b3NpdGl2ZUZsb2F0fSwKLSAgICAgICAgICAgIGZyZXF1ZW5jeToge21pblZhbHVlOiAwLCBtYXhW
YWx1ZTogc2FtcGxlUmF0ZSAvIDJ9LAotICAgICAgICAgICAgZGV0dW5lOiB7Ci0gICAgICAgICAg
ICAgIG1pblZhbHVlOiAtTWF0aC5mcm91bmQoMTIwMCAqIE1hdGgubG9nMihtb3N0UG9zaXRpdmVG
bG9hdCkpLAotICAgICAgICAgICAgICBtYXhWYWx1ZTogTWF0aC5mcm91bmQoMTIwMCAqIE1hdGgu
bG9nMihtb3N0UG9zaXRpdmVGbG9hdCkpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZU9zY2lsbGF0b3In
LAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAgICAgIGxpbWl0czogewotICAgICAgICAgICAg
ZnJlcXVlbmN5OiB7bWluVmFsdWU6IC1zYW1wbGVSYXRlIC8gMiwgbWF4VmFsdWU6IHNhbXBsZVJh
dGUgLyAyfSwKLSAgICAgICAgICAgIGRldHVuZTogewotICAgICAgICAgICAgICBtaW5WYWx1ZTog
LU1hdGguZnJvdW5kKDEyMDAgKiBNYXRoLmxvZzIobW9zdFBvc2l0aXZlRmxvYXQpKSwKLSAgICAg
ICAgICAgICAgbWF4VmFsdWU6IE1hdGguZnJvdW5kKDEyMDAgKiBNYXRoLmxvZzIobW9zdFBvc2l0
aXZlRmxvYXQpKQotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVQYW5uZXInLAotICAgICAgICAgIGFyZ3M6
IFtdLAotICAgICAgICAgIGxpbWl0czogewotICAgICAgICAgICAgcG9zaXRpb25YOiB7Ci0gICAg
ICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICAgIG1h
eFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBw
b3NpdGlvblk6IHsKLSAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwK
LSAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIHBvc2l0aW9uWjogewotICAgICAgICAgICAgICBtaW5WYWx1ZTogLW1v
c3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxv
YXQsCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgb3JpZW50YXRpb25YOiB7Ci0gICAgICAg
ICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICAgIG1heFZh
bHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBvcmll
bnRhdGlvblk6IHsKLSAgICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwK
LSAgICAgICAgICAgICAgbWF4VmFsdWU6IG1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgIG9yaWVudGF0aW9uWjogewotICAgICAgICAgICAgICBtaW5WYWx1ZTog
LW1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAgICBtYXhWYWx1ZTogbW9zdFBvc2l0aXZl
RmxvYXQsCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgIGNyZWF0b3I6ICdjcmVhdGVDb25zdGFudFNvdXJjZScsCi0gICAgICAgICAg
YXJnczogW10sCi0gICAgICAgICAgbGltaXRzOiB7Ci0gICAgICAgICAgICBvZmZzZXQ6IHttaW5W
YWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LCBtYXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXR9Ci0g
ICAgICAgICAgfQotICAgICAgICB9LAotICAgICAgICAvLyBUaGVzZSBub2RlcyBkb24ndCBoYXZl
IEF1ZGlvUGFyYW1zLCBidXQgd2Ugd2FudCB0byB0ZXN0IHRoZW0gYW55d2F5LgotICAgICAgICAv
LyBBbnkgYXJndW1lbnRzIGZvciB0aGUKLSAgICAgICAgLy8gY29uc3RydWN0b3IgYXJlIHByZXR0
eSBtdWNoIGFyYml0cmFyeTsgdGhleSBqdXN0IG5lZWQgdG8gYmUgdmFsaWQuCi0gICAgICAgIHsK
LSAgICAgICAgICBjcmVhdG9yOiAnY3JlYXRlQnVmZmVyJywKLSAgICAgICAgICBhcmdzOiBbMSwg
MSwgc2FtcGxlUmF0ZV0sCi0gICAgICAgIH0sCi0gICAgICAgIHtjcmVhdG9yOiAnY3JlYXRlSUlS
RmlsdGVyJywgYXJnczogW1sxLCAyXSwgWzEsIC45XV19LAotICAgICAgICB7Ci0gICAgICAgICAg
Y3JlYXRvcjogJ2NyZWF0ZVdhdmVTaGFwZXInLAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUNvbnZvbHZlcicsCi0g
ICAgICAgICAgYXJnczogW10sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVh
dG9yOiAnY3JlYXRlQW5hbHlzZXInLAotICAgICAgICAgIGFyZ3M6IFtdLAotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZVNjcmlwdFByb2Nlc3NvcicsCi0g
ICAgICAgICAgYXJnczogWzBdLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgY3Jl
YXRvcjogJ2NyZWF0ZVBlcmlvZGljV2F2ZScsCi0gICAgICAgICAgYXJnczogW0Zsb2F0MzJBcnJh
eS5mcm9tKFswLCAwXSksIEZsb2F0MzJBcnJheS5mcm9tKFsxLCAwXSldLAotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgY3JlYXRvcjogJ2NyZWF0ZUNoYW5uZWxTcGxpdHRlcicsCi0g
ICAgICAgICAgYXJnczogW10sCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICBjcmVh
dG9yOiAnY3JlYXRlQ2hhbm5lbE1lcmdlcicsCi0gICAgICAgICAgYXJnczogW10sCi0gICAgICAg
IH0sCi0gICAgICBdOwotCi0gICAgICBsZXQgdGVzdE9ubGluZUNvbmZpZ3MgPSBbCi0gICAgICAg
IHtjcmVhdG9yOiAnY3JlYXRlTWVkaWFFbGVtZW50U291cmNlJywgYXJnczogW25ldyBBdWRpbygp
XX0sCi0gICAgICAgIHtjcmVhdG9yOiAnY3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbicsIGFy
Z3M6IFtdfQotICAgICAgICAvLyBDYW4ndCBjdXJyZW50bHkgdGVzdCBNZWRpYVN0cmVhbVNvdXJj
ZSBiZWNhdXNlIHdlJ3JlIHVzaW5nIGFuIG9mZmxpbmUKLSAgICAgICAgLy8gY29udGV4dC4KLSAg
ICAgIF07Ci0KLSAgICAgIC8vIENyZWF0ZSB0aGUgY29udGV4dHMgc28gd2UgY2FuIHVzZSBpdCBp
biB0aGUgZm9sbG93aW5nIHRlc3QuCi0gICAgICBhdWRpdC5kZWZpbmUoJ2luaXRpYWxpemUnLCAo
dGFzaywgc2hvdWxkKSA9PiB7Ci0gICAgICAgIC8vIEp1c3QgYW55IGNvbnRleHQgc28gdGhhdCB3
ZSBjYW4gY3JlYXRlIHRoZSBub2Rlcy4KLSAgICAgICAgc2hvdWxkKCgpID0+IHsKLSAgICAgICAg
ICBvZmZsaW5lQ29udGV4dCA9IG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEsIHNhbXBsZVJh
dGUpOwotICAgICAgICB9LCAnQ3JlYXRlIG9mZmxpbmUgY29udGV4dCBmb3IgdGVzdHMnKS5ub3RU
aHJvdygpOwotICAgICAgICBzaG91bGQoKCkgPT4gewotICAgICAgICAgIG9ubGluZUNvbnRleHQg
PSBuZXcgQXVkaW9Db250ZXh0KCk7Ci0gICAgICAgIH0sICdDcmVhdGUgb25saW5lIGNvbnRleHQg
Zm9yIHRlc3RzJykubm90VGhyb3coKTsKLSAgICAgICAgdGFzay5kb25lKCk7Ci0gICAgICB9KTsK
LQotICAgICAgLy8gQ3JlYXRlIGEgdGFzayBmb3IgZWFjaCBlbnRyeSBpbiB0ZXN0T2ZmbGluZUNv
bmZpZ3MKLSAgICAgIGZvciAobGV0IHRlc3QgaW4gdGVzdE9mZmxpbmVDb25maWdzKSB7Ci0gICAg
ICAgIGxldCBjb25maWcgPSB0ZXN0T2ZmbGluZUNvbmZpZ3NbdGVzdF0KLSAgICAgICAgYXVkaXQu
ZGVmaW5lKCdPZmZsaW5lICcgKyBjb25maWcuY3JlYXRvciwgKGZ1bmN0aW9uKGMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICh0YXNrLCBzaG91bGQpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBsZXQgbm9kZSA9IG9mZmxpbmVDb250ZXh0W2MuY3JlYXRvcl0oLi4uYy5h
cmdzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0TGltaXRzKHNob3VsZCwgYy5jcmVh
dG9yLCBub2RlLCBjLmxpbWl0cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdGFzay5kb25l
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgICAgICB9KShj
b25maWcpKTsKLSAgICAgIH0KLQotICAgICAgZm9yIChsZXQgdGVzdCBpbiB0ZXN0T25saW5lQ29u
ZmlncykgewotICAgICAgICBsZXQgY29uZmlnID0gdGVzdE9ubGluZUNvbmZpZ3NbdGVzdF0KLSAg
ICAgICAgYXVkaXQuZGVmaW5lKCdPbmxpbmUgJyArIGNvbmZpZy5jcmVhdG9yLCAoZnVuY3Rpb24o
YykgewotICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHRhc2ssIHNob3VsZCkgPT4gewot
ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub2RlID0gb25saW5lQ29udGV4dFtjLmNyZWF0
b3JdKC4uLmMuYXJncyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdGVzdExpbWl0cyhzaG91
bGQsIGMuY3JlYXRvciwgbm9kZSwgYy5saW1pdHMpOwotICAgICAgICAgICAgICAgICAgICAgICAg
IHRhc2suZG9uZSgpOwotICAgICAgICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAg
ICAgICAgfSkoY29uZmlnKSk7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFRlc3QgdGhlIEF1ZGlvTGlz
dGVuZXIgcGFyYW1zIHRoYXQgd2VyZSBhZGRlZCBmb3IgdGhlIGF1dG9tYXRlZCBQYW5uZXIKLSAg
ICAgIGF1ZGl0LmRlZmluZSgnQXVkaW9MaXN0ZW5lcicsICh0YXNrLCBzaG91bGQpID0+IHsKLSAg
ICAgICAgdGVzdExpbWl0cyhzaG91bGQsICcnLCBvZmZsaW5lQ29udGV4dC5saXN0ZW5lciwgewot
ICAgICAgICAgIHBvc2l0aW9uWDogewotICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRp
dmVGbG9hdCwKLSAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAg
ICAgICB9LAotICAgICAgICAgIHBvc2l0aW9uWTogewotICAgICAgICAgICAgbWluVmFsdWU6IC1t
b3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9h
dCwKLSAgICAgICAgICB9LAotICAgICAgICAgIHBvc2l0aW9uWjogewotICAgICAgICAgICAgbWlu
VmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9z
aXRpdmVGbG9hdCwKLSAgICAgICAgICB9LAotICAgICAgICAgIGZvcndhcmRYOiB7Ci0gICAgICAg
ICAgICBtaW5WYWx1ZTogLW1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgICAgbWF4VmFsdWU6
IG1vc3RQb3NpdGl2ZUZsb2F0LAotICAgICAgICAgIH0sCi0gICAgICAgICAgZm9yd2FyZFk6IHsK
LSAgICAgICAgICAgIG1pblZhbHVlOiAtbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgICBt
YXhWYWx1ZTogbW9zdFBvc2l0aXZlRmxvYXQsCi0gICAgICAgICAgfSwKLSAgICAgICAgICBmb3J3
YXJkWjogewotICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAg
ICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICB9LAotICAgICAg
ICAgIHVwWDogewotICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwKLSAg
ICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICB9LAotICAg
ICAgICAgIHVwWTogewotICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9hdCwK
LSAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICB9LAot
ICAgICAgICAgIHVwWjogewotICAgICAgICAgICAgbWluVmFsdWU6IC1tb3N0UG9zaXRpdmVGbG9h
dCwKLSAgICAgICAgICAgIG1heFZhbHVlOiBtb3N0UG9zaXRpdmVGbG9hdCwKLSAgICAgICAgICB9
Ci0gICAgICAgIH0pOwotICAgICAgICB0YXNrLmRvbmUoKTsKLSAgICAgIH0pOwotCi0gICAgICAv
LyBWZXJpZnkgdGhhdCB3ZSBoYXZlIHRlc3RlZCBhbGwgdGhlIGNyZWF0ZSBtZXRob2RzIGF2YWls
YWJsZSBvbiB0aGUKLSAgICAgIC8vIGNvbnRleHQuCi0gICAgICBhdWRpdC5kZWZpbmUoJ3Zlcmlm
eVRlc3RzJywgKHRhc2ssIHNob3VsZCkgPT4gewotICAgICAgICBsZXQgYWxsTm9kZXMgPSBuZXcg
U2V0KCk7Ci0gICAgICAgIC8vIENyZWF0ZSB0aGUgc2V0IG9mIGFsbCAiY3JlYXRlIiBtZXRob2Rz
IGZyb20gdGhlIGNvbnRleHQuCi0gICAgICAgIGZvciAobGV0IG1ldGhvZCBpbiBvZmZsaW5lQ29u
dGV4dCkgewotICAgICAgICAgIGlmICh0eXBlb2Ygb2ZmbGluZUNvbnRleHRbbWV0aG9kXSA9PT0g
J2Z1bmN0aW9uJyAmJgotICAgICAgICAgICAgICBtZXRob2Quc3Vic3RyaW5nKDAsIDYpID09PSAn
Y3JlYXRlJykgewotICAgICAgICAgICAgYWxsTm9kZXMuYWRkKG1ldGhvZCk7Ci0gICAgICAgICAg
fQotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQ29tcHV0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVu
IHRoZSBzZXQgb2YgYWxsIGNyZWF0ZSBtZXRob2RzIG9uIHRoZQotICAgICAgICAvLyBjb250ZXh0
IGFuZCB0aGUgc2V0IG9mIHRlc3RzIHRoYXQgd2UndmUgcnVuLgotICAgICAgICBsZXQgZGlmZiA9
IG5ldyBTZXQoWy4uLmFsbE5vZGVzXS5maWx0ZXIoeCA9PiAhdGVzdGVkTWV0aG9kcy5oYXMoeCkp
KTsKLQotICAgICAgICAvLyBDYW4ndCBjdXJyZW50bHkgdGVzdCBhIE1lZGlhU3RyZWFtU291cmNl
Tm9kZSwgc28gcmVtb3ZlIGl0IGZyb20gdGhlCi0gICAgICAgIC8vIGRpZmYgc2V0LgotICAgICAg
ICBkaWZmLmRlbGV0ZSgnY3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UnKTsKLQotICAgICAgICAvLyBJ
dCdzIGEgdGVzdCBmYWlsdXJlIGlmIHdlIGRpZG4ndCB0ZXN0IGFsbCBvZiB0aGUgY3JlYXRlIG1l
dGhvZHMgaW4KLSAgICAgICAgLy8gdGhlIGNvbnRleHQgKGV4Y2VwdCBjcmVhdGVNZWRpYVN0cmVh
bVNvdXJjZSwgb2YgY291cnNlKS4KLSAgICAgICAgbGV0IG91dHB1dCA9IFtdOwotICAgICAgICBp
ZiAoZGlmZi5zaXplKSB7Ci0gICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBkaWZmKQotICAgICAg
ICAgICAgb3V0cHV0LnB1c2goJyAnICsgaXRlbS5zdWJzdHJpbmcoNikpOwotICAgICAgICB9Ci0K
LSAgICAgICAgc2hvdWxkKG91dHB1dC5sZW5ndGggPT09IDAsICdOdW1iZXIgb2Ygbm9kZXMgbm90
IHRlc3RlZCcpCi0gICAgICAgICAgICAubWVzc2FnZSgnOiAwJywgJzogJyArIG91dHB1dCk7Ci0K
LSAgICAgICAgdGFzay5kb25lKCk7Ci0gICAgICB9KTsKLQotICAgICAgLy8gU2ltcGxlIHRlc3Qg
b2YgYSBmZXcgYXV0b21hdGlvbiBtZXRob2RzIHRvIHZlcmlmeSB3ZSBnZXQgd2FybmluZ3MuCi0g
ICAgICBhdWRpdC5kZWZpbmUoJ2F1dG9tYXRpb24nLCAodGFzaywgc2hvdWxkKSA9PiB7Ci0gICAg
ICAgIC8vIEp1c3QgdXNlIGEgRGVsYXlOb2RlIGZvciB0ZXN0aW5nIGJlY2F1c2UgdGhlIGF1ZGlv
IHBhcmFtIGhhcyBmaW5pdGUKLSAgICAgICAgLy8gbGltaXRzLgotICAgICAgICBzaG91bGQoKCkg
PT4gewotICAgICAgICAgIGxldCBkID0gb2ZmbGluZUNvbnRleHQuY3JlYXRlRGVsYXkoKTsKLQot
ICAgICAgICAgIC8vIFRoZSBjb25zb2xlIG91dHB1dCBzaG91bGQgaGF2ZSB0aGUgd2FybmluZ3Mg
dGhhdCB3ZSdyZSBpbnRlcmVzdGVkCi0gICAgICAgICAgLy8gaW4uCi0gICAgICAgICAgZC5kZWxh
eVRpbWUuc2V0VmFsdWVBdFRpbWUoLTEsIDApOwotICAgICAgICAgIGQuZGVsYXlUaW1lLmxpbmVh
clJhbXBUb1ZhbHVlQXRUaW1lKDIsIDEpOwotICAgICAgICAgIGQuZGVsYXlUaW1lLmV4cG9uZW50
aWFsUmFtcFRvVmFsdWVBdFRpbWUoMywgMik7Ci0gICAgICAgICAgZC5kZWxheVRpbWUuc2V0VGFy
Z2V0QXRUaW1lKC0xLCAzLCAuMSk7Ci0gICAgICAgICAgZC5kZWxheVRpbWUuc2V0VmFsdWVDdXJ2
ZUF0VGltZSgKLSAgICAgICAgICAgICAgRmxvYXQzMkFycmF5LmZyb20oWy4xLCAuMiwgMS41LCAt
MV0pLCA0LCAuMSk7Ci0gICAgICAgIH0sICdUZXN0IGF1dG9tYXRpb25zIChjaGVjayBjb25zb2xl
IGxvZ3MpJykubm90VGhyb3coKTsKLSAgICAgICAgdGFzay5kb25lKCk7Ci0gICAgICB9KTsKLQot
ICAgICAgYXVkaXQucnVuKCk7Ci0KLSAgICAgIC8vIElzIHxvYmplY3R8IGFuIEF1ZGlvUGFyYW0/
ICBXZSBkZXRlcm1pbmUgdGhpcyBieSBjaGVja2luZyB0aGUKLSAgICAgIC8vIGNvbnN0cnVjdG9y
IG5hbWUuCi0gICAgICBmdW5jdGlvbiBpc0F1ZGlvUGFyYW0ob2JqZWN0KSB7Ci0gICAgICAgIHJl
dHVybiBvYmplY3QgJiYgb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdBdWRpb1BhcmFtJzsK
LSAgICAgIH0KLQotICAgICAgLy8gRG9lcyB8bGltaXRPcHRpb25zfCBleGlzdCBhbmQgZG9lcyBp
dCBoYXZlIHZhbGlkIHZhbHVlcyBmb3IgdGhlCi0gICAgICAvLyBleHBlY3RlZCBtaW4gYW5kIG1h
eCB2YWx1ZXM/Ci0gICAgICBmdW5jdGlvbiBoYXNWYWxpZExpbWl0cyhsaW1pdE9wdGlvbnMpIHsK
LSAgICAgICAgcmV0dXJuIGxpbWl0T3B0aW9ucyAmJiAodHlwZW9mIGxpbWl0T3B0aW9ucy5taW5W
YWx1ZSA9PT0gJ251bWJlcicpICYmCi0gICAgICAgICAgICAodHlwZW9mIGxpbWl0T3B0aW9ucy5t
YXhWYWx1ZSA9PT0gJ251bWJlcicpOwotICAgICAgfQotCi0gICAgICAvLyBDaGVjayB0aGUgbWlu
IGFuZCBtYXggdmFsdWVzIGZvciB0aGUgQXVkaW9QYXJhbSBhdHRyaWJ1dGUgbmFtZWQKLSAgICAg
IC8vIHxwYXJhbU5hbWV8IGZvciB0aGUgfG5vZGV8LiBUaGUgZXhwZWN0ZWQgbGltaXRzIGlzIGdp
dmVuIGJ5IHRoZQotICAgICAgLy8gZGljdGlvbmFyeSB8bGltaXRzfC4gIElmIHNvbWUgdGVzdCBm
YWlscywgYWRkIHRoZSBuYW1lIG9mIHRoZSBmYWlsZWQKLSAgICAgIGZ1bmN0aW9uIHZhbGlkYXRl
QXVkaW9QYXJhbUxpbWl0cyhzaG91bGQsIG5vZGUsIHBhcmFtTmFtZSwgbGltaXRzKSB7Ci0gICAg
ICAgIGxldCBub2RlTmFtZSA9IG5vZGUuY29uc3RydWN0b3IubmFtZTsKLSAgICAgICAgbGV0IHBh
cmFtZXRlciA9IG5vZGVbcGFyYW1OYW1lXTsKLSAgICAgICAgbGV0IHByZWZpeCA9IG5vZGVOYW1l
ICsgJy4nICsgcGFyYW1OYW1lOwotCi0gICAgICAgIGxldCBzdWNjZXNzID0gdHJ1ZTsKLSAgICAg
ICAgaWYgKGhhc1ZhbGlkTGltaXRzKGxpbWl0c1twYXJhbU5hbWVdKSkgewotICAgICAgICAgIC8v
IFZlcmlmeSB0aGF0IHRoZSBtaW4gYW5kIG1heCB2YWx1ZXMgZm9yIHRoZSBwYXJhbWV0ZXIgYXJl
IGNvcnJlY3QuCi0gICAgICAgICAgbGV0IGlzQ29ycmVjdCA9IHNob3VsZChwYXJhbWV0ZXIubWlu
VmFsdWUsIHByZWZpeCArICcubWluVmFsdWUnKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLmJlRXF1YWxUbyhsaW1pdHNbcGFyYW1OYW1lXS5taW5WYWx1ZSk7Ci0gICAgICAgICAgaXND
b3JyZWN0ID0gc2hvdWxkKHBhcmFtZXRlci5tYXhWYWx1ZSwgcHJlZml4ICsgJy5tYXhWYWx1ZScp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8obGltaXRzW3BhcmFtTmFtZV0u
bWF4VmFsdWUpICYmCi0gICAgICAgICAgICAgIGlzQ29ycmVjdDsKLQotICAgICAgICAgIC8vIFZl
cmlmeSB0aGF0IHRoZSBtaW4gYW5kIG1heCBhdHRyaWJ1dGVzIGFyZSByZWFkLW9ubHkuICB8dGVz
dFZhbHVlfAotICAgICAgICAgIC8vIE1VU1QgYmUgYSBudW1iZXIgdGhhdCBjYW4gYmUgcmVwcmVz
ZW50ZWQgZXhhY3RseSB0aGUgc2FtZSB3YXkgYXMKLSAgICAgICAgICAvLyBib3RoIGEgZG91Ymxl
IGFuZCBzaW5nbGUgZmxvYXQuICBBIHNtYWxsIGludGVnZXIgd29ya3MgbmljZWx5LgotICAgICAg
ICAgIGNvbnN0IHRlc3RWYWx1ZSA9IDQyOwotICAgICAgICAgIHBhcmFtZXRlci5taW5WYWx1ZSA9
IHRlc3RWYWx1ZTsKLSAgICAgICAgICBsZXQgaXNSZWFkT25seTsKLSAgICAgICAgICBpc1JlYWRP
bmx5ID0KLSAgICAgICAgICAgICAgc2hvdWxkKHBhcmFtZXRlci5taW5WYWx1ZSwgYCR7cHJlZml4
fS5taW5WYWx1ZSA9ICR7dGVzdFZhbHVlfWApCi0gICAgICAgICAgICAgICAgICAubm90QmVFcXVh
bFRvKHRlc3RWYWx1ZSk7Ci0KLSAgICAgICAgICBzaG91bGQoaXNSZWFkT25seSwgcHJlZml4ICsg
Jy5taW5WYWx1ZSBpcyByZWFkLW9ubHknKS5iZUVxdWFsVG8odHJ1ZSk7Ci0KLSAgICAgICAgICBp
c0NvcnJlY3QgPSBpc1JlYWRPbmx5ICYmIGlzQ29ycmVjdDsKLQotICAgICAgICAgIHBhcmFtZXRl
ci5tYXhWYWx1ZSA9IHRlc3RWYWx1ZTsKLSAgICAgICAgICBpc1JlYWRPbmx5ID0KLSAgICAgICAg
ICAgICAgc2hvdWxkKHBhcmFtZXRlci5tYXhWYWx1ZSwgYCR7cHJlZml4fS5tYXhWYWx1ZSA9ICR7
dGVzdFZhbHVlfWApCi0gICAgICAgICAgICAgICAgICAubm90QmVFcXVhbFRvKHRlc3RWYWx1ZSk7
Ci0gICAgICAgICAgc2hvdWxkKGlzUmVhZE9ubHksIHByZWZpeCArICcubWF4VmFsdWUgaXMgcmVh
ZC1vbmx5JykuYmVFcXVhbFRvKHRydWUpOwotCi0gICAgICAgICAgaXNDb3JyZWN0ID0gaXNSZWFk
T25seSAmJiBpc0NvcnJlY3Q7Ci0KLSAgICAgICAgICAvLyBOb3cgdHJ5IHRvIHNldCB0aGUgcGFy
YW1ldGVyIG91dHNpZGUgdGhlIG5vbWluYWwgcmFuZ2UuCi0gICAgICAgICAgbGV0IG5ld1ZhbHVl
ID0gMiAqIGxpbWl0c1twYXJhbU5hbWVdLm1pblZhbHVlIC0gMTsKLQotICAgICAgICAgIGxldCBp
c0NsaXBwZWQgPSB0cnVlOwotICAgICAgICAgIGxldCBjbGlwcGluZ1Rlc3RlZCA9IGZhbHNlOwot
ICAgICAgICAgIC8vIElmIHRoZSBuZXcgdmFsdWUgaXMgYmV5b25kIGZsb2F0IHRoZSBsYXJnZXN0
IHNpbmdsZS1wcmVjaXNpb24KLSAgICAgICAgICAvLyBmbG9hdCwgc2tpcCB0aGUgdGVzdCBiZWNh
dXNlIENocm9tZSB0aHJvd3MgYW4gZXJyb3IuCi0gICAgICAgICAgaWYgKG5ld1ZhbHVlID49IC1t
b3N0UG9zaXRpdmVGbG9hdCkgewotICAgICAgICAgICAgcGFyYW1ldGVyLnZhbHVlID0gbmV3VmFs
dWU7Ci0gICAgICAgICAgICBjbGlwcGluZ1Rlc3RlZCA9IHRydWU7Ci0gICAgICAgICAgICBpc0Ns
aXBwZWQgPQotICAgICAgICAgICAgICAgIHNob3VsZCgKLSAgICAgICAgICAgICAgICAgICAgcGFy
YW1ldGVyLnZhbHVlLCAnU2V0ICcgKyBwcmVmaXggKyAnLnZhbHVlID0gJyArIG5ld1ZhbHVlKQot
ICAgICAgICAgICAgICAgICAgICAuYmVFcXVhbFRvKHBhcmFtZXRlci5taW5WYWx1ZSkgJiYKLSAg
ICAgICAgICAgICAgICBpc0NsaXBwZWQ7Ci0gICAgICAgICAgfQotCi0gICAgICAgICAgbmV3VmFs
dWUgPSAyICogbGltaXRzW3BhcmFtTmFtZV0ubWF4VmFsdWUgKyAxOwotCi0gICAgICAgICAgaWYg
KG5ld1ZhbHVlIDw9IG1vc3RQb3NpdGl2ZUZsb2F0KSB7Ci0gICAgICAgICAgICBwYXJhbWV0ZXIu
dmFsdWUgPSBuZXdWYWx1ZTsKLSAgICAgICAgICAgIGNsaXBwaW5nVGVzdGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIGlzQ2xpcHBlZCA9Ci0gICAgICAgICAgICAgICAgc2hvdWxkKAotICAgICAgICAg
ICAgICAgICAgICBwYXJhbWV0ZXIudmFsdWUsICdTZXQgJyArIHByZWZpeCArICcudmFsdWUgPSAn
ICsgbmV3VmFsdWUpCi0gICAgICAgICAgICAgICAgICAgIC5iZUVxdWFsVG8ocGFyYW1ldGVyLm1h
eFZhbHVlKSAmJgotICAgICAgICAgICAgICAgIGlzQ2xpcHBlZDsKLSAgICAgICAgICB9Ci0KLSAg
ICAgICAgICBpZiAoY2xpcHBpbmdUZXN0ZWQpIHsKLSAgICAgICAgICAgIHNob3VsZCgKLSAgICAg
ICAgICAgICAgICBpc0NsaXBwZWQsCi0gICAgICAgICAgICAgICAgcHJlZml4ICsgJyB3YXMgY2xp
cHBlZCB0byBsaWUgd2l0aGluIHRoZSBub21pbmFsIHJhbmdlJykKLSAgICAgICAgICAgICAgICAu
YmVFcXVhbFRvKHRydWUpOwotICAgICAgICAgIH0KLQotICAgICAgICAgIGlzQ29ycmVjdCA9IGlz
Q29ycmVjdCAmJiBpc0NsaXBwZWQ7Ci0KLSAgICAgICAgICBzdWNjZXNzID0gaXNDb3JyZWN0ICYm
IHN1Y2Nlc3M7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgLy8gVGVzdCBjb25maWcgZGlk
bid0IHNwZWNpZnkgdmFsaWQgbGltaXRzLiAgRmFpbCB0aGlzIHRlc3QhCi0gICAgICAgICAgc2hv
dWxkKAotICAgICAgICAgICAgICBjbGlwcGluZ1Rlc3RlZCwKLSAgICAgICAgICAgICAgJ0xpbWl0
cyBmb3IgJyArIG5vZGVOYW1lICsgJy4nICsgcGFyYW1OYW1lICsKLSAgICAgICAgICAgICAgICAg
ICcgd2VyZSBjb3JyZWN0bHkgZGVmaW5lZCcpCi0gICAgICAgICAgICAgIC5iZUVxdWFsVG8oZmFs
c2UpOwotCi0gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIHN1Y2Nlc3M7Ci0gICAgICB9Ci0KLSAgICAgIC8vIFRlc3QgYWxsIG9mIHRoZSBBdWRp
b1BhcmFtcyBmb3IgfG5vZGV8IHVzaW5nIHRoZSBleHBlY3RlZCB2YWx1ZXMgaW4KLSAgICAgIC8v
IHxsaW1pdHN8LiB8Y3JlYXRvck5hbWV8IGlzIHRoZSBuYW1lIG9mIHRoZSBtZXRob2QgdG8gY3Jl
YXRlIHRoZSBub2RlLAotICAgICAgLy8gYW5kIGlzIHVzZWQgdG8ga2VlcCB0cmFrYyBvZiB3aGlj
aCB0ZXN0cyB3ZSd2ZSBydW4uCi0gICAgICBmdW5jdGlvbiB0ZXN0TGltaXRzKHNob3VsZCwgY3Jl
YXRvck5hbWUsIG5vZGUsIGxpbWl0cykgewotICAgICAgICBsZXQgbm9kZU5hbWUgPSBub2RlLmNv
bnN0cnVjdG9yLm5hbWU7Ci0gICAgICAgIHRlc3RlZE1ldGhvZHMuYWRkKGNyZWF0b3JOYW1lKTsK
LQotICAgICAgICBsZXQgc3VjY2VzcyA9IHRydWU7Ci0KLSAgICAgICAgLy8gTGlzdCBvZiBhbGwg
b2YgdGhlIEF1ZGlvUGFyYW1zIHRoYXQgd2VyZSB0ZXN0ZWQuCi0gICAgICAgIGxldCBhdWRpb1Bh
cmFtcyA9IFtdOwotCi0gICAgICAgIC8vIExpc3Qgb2YgQXVkaW9QYXJhbXMgdGhhdCBmYWlsZWQg
dGhlIHRlc3QuCi0gICAgICAgIGxldCBpbmNvcnJlY3RQYXJhbXMgPSBbXTsKLQotICAgICAgICAv
LyBMb29rIHRocm91Z2ggYWxsIG9mIHRoZSBrZXlzIGZvciB0aGUgbm9kZSBhbmQgZXh0cmFjdCBq
dXN0IHRoZQotICAgICAgICAvLyBBdWRpb1BhcmFtcwotICAgICAgICBPYmplY3Qua2V5cyhub2Rl
Ll9fcHJvdG9fXykuZm9yRWFjaChmdW5jdGlvbihwYXJhbU5hbWUpIHsKLSAgICAgICAgICBpZiAo
aXNBdWRpb1BhcmFtKG5vZGVbcGFyYW1OYW1lXSkpIHsKLSAgICAgICAgICAgIGF1ZGlvUGFyYW1z
LnB1c2gocGFyYW1OYW1lKTsKLSAgICAgICAgICAgIGxldCBpc1ZhbGlkID0gdmFsaWRhdGVBdWRp
b1BhcmFtTGltaXRzKAotICAgICAgICAgICAgICAgIHNob3VsZCwgbm9kZSwgcGFyYW1OYW1lLCBs
aW1pdHMsIGluY29ycmVjdFBhcmFtcyk7Ci0gICAgICAgICAgICBpZiAoIWlzVmFsaWQpCi0gICAg
ICAgICAgICAgIGluY29ycmVjdFBhcmFtcy5wdXNoKHBhcmFtTmFtZSk7Ci0KLSAgICAgICAgICAg
IHN1Y2Nlc3MgPSBpc1ZhbGlkICYmIHN1Y2Nlc3M7Ci0gICAgICAgICAgfQotICAgICAgICB9KTsK
LQotICAgICAgICAvLyBQcmludCBhbiBhcHByb3ByaWF0ZSBtZXNzYWdlIGRlcGVuZGluZyBvbiB3
aGV0aGVyIHRoZXJlIHdlcmUKLSAgICAgICAgLy8gQXVkaW9QYXJhbXMgZGVmaW5lZCBvciBub3Qu
Ci0gICAgICAgIGlmIChhdWRpb1BhcmFtcy5sZW5ndGgpIHsKLSAgICAgICAgICBsZXQgbWVzc2Fn
ZSA9Ci0gICAgICAgICAgICAgICdOb21pbmFsIHJhbmdlcyBmb3IgQXVkaW9QYXJhbShzKSBvZiAn
ICsgbm9kZS5jb25zdHJ1Y3Rvci5uYW1lOwotICAgICAgICAgIHNob3VsZChzdWNjZXNzLCBtZXNz
YWdlKQotICAgICAgICAgICAgICAubWVzc2FnZSgnYXJlIGNvcnJlY3QnLCAnYXJlIGluY29ycmVj
dCBmb3I6ICcgKyAraW5jb3JyZWN0UGFyYW1zKTsKLSAgICAgICAgICByZXR1cm4gc3VjY2VzczsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBzaG91bGQoIWxpbWl0cywgbm9kZU5hbWUpCi0g
ICAgICAgICAgICAgIC5tZXNzYWdlKAotICAgICAgICAgICAgICAgICAgJ2hhcyBubyBBdWRpb1Bh
cmFtcyBhcyBleHBlY3RlZCcsCi0gICAgICAgICAgICAgICAgICAnaGFzIG5vIEF1ZGlvUGFyYW1z
IGJ1dCB0ZXN0IGV4cGVjdGVkICcgKyBsaW1pdHMpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
PC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVBdFRpbWUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvcGFyYW0tc2V0VmFsdWVBdFRpbWUuaHRtbAppbmRleCBlNWRlZDMzZDQ1ZjU1OThk
NjFkNDUyOGY4MjAzMTY3ZDEzODNiOTUzLi5iMDc0ZjMxZDBiYzc0NGUwYTU0YjFhZDA4ZDY1M2Qz
YzAzNGM1YTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXNl
dFZhbHVlQXRUaW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1z
ZXRWYWx1ZUF0VGltZS5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy1sZWdhY3kuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFt
LXRlc3RpbmctbGVnYWN5LmpzIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlv
cGFyYW0tdGVzdGluZy1sZWdhY3kuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjgwN2ExZTdlNWY3MzNlN2U4Njhl
NmYyM2EzYzhlMGJiYmY1OGI0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmctbGVnYWN5LmpzCkBAIC0wLDAgKzEsNDQw
IEBACit2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwOworCisvLyBJbmZvcm1hdGlvbiBhYm91dCB0aGUg
c3RhcnRpbmcvZW5kaW5nIHRpbWVzIGFuZCBzdGFydGluZy9lbmRpbmcgdmFsdWVzIGZvciBlYWNo
IHRpbWUgaW50ZXJ2YWwuCit2YXIgdGltZVZhbHVlSW5mbzsKKworLy8gVGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiBzdGFydGluZyB2YWx1ZXMgYmV0d2VlbiBlYWNoIHRpbWUgaW50ZXJ2YWwuCit2YXIg
c3RhcnRpbmdWYWx1ZURlbHRhOworICAgICAgCisvLyBGb3IgYW55IGF1dG9tYXRpb24gZnVuY3Rp
b24gdGhhdCBoYXMgYW4gZW5kIG9yIHRhcmdldCB2YWx1ZSwgdGhlIGVuZCB2YWx1ZSBpcyBiYXNl
ZCB0aGUgc3RhcnRpbmcKKy8vIHZhbHVlIG9mIHRoZSB0aW1lIGludGVydmFsLiAgVGhlIHN0YXJ0
aW5nIHZhbHVlIHdpbGwgYmUgaW5jcmVhc2VkIG9yIGRlY3JlYXNlZCBieQorLy8gfHN0YXJ0RW5k
VmFsdWVDaGFuZ2V8LiBXZSBjaG9vc2UgaGFsZiBvZiB8c3RhcnRpbmdWYWx1ZURlbHRhfCBzbyB0
aGF0IHRoZSBlbmRpbmcgdmFsdWUgd2lsbCBiZQorLy8gZGlzdGluY3QgZnJvbSB0aGUgc3RhcnRp
bmcgdmFsdWUgZm9yIG5leHQgdGltZSBpbnRlcnZhbC4gIFRoaXMgYWxsb3dzIHVzIHRvIGRldGVj
dCB3aGVyZSB0aGUgcmFtcAorLy8gYmVnaW5zIGFuZCBlbmRzLgordmFyIHN0YXJ0RW5kVmFsdWVD
aGFuZ2U7CisKKy8vIERlZmF1bHQgdGhyZXNob2xkIHRvIHVzZSBmb3IgZGV0ZWN0aW5nIGRpc2Nv
bnRpbnVpdGllcyB0aGF0IHNob3VsZCBhcHBlYXIgYXQgZWFjaCB0aW1lIGludGVydmFsLgordmFy
IGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQ7CisKKy8vIFRpbWUgaW50ZXJ2YWwgYmV0d2VlbiB2YWx1
ZSBjaGFuZ2VzLiAgSXQgaXMgYmVzdCBpZiAxIC8gbnVtYmVyT2ZUZXN0cyBpcyBub3QgY2xvc2Ug
dG8gdGltZUludGVydmFsLgordmFyIHRpbWVJbnRlcnZhbCA9IC4wMzsKKworLy8gU29tZSBzdWl0
YWJsZSB0aW1lIGNvbnN0YW50IHNvIHRoYXQgd2UgY2FuIHNlZSBhIHNpZ25pZmljYW50IGNoYW5n
ZSBvdmVyIGEgdGltZUludGVydmFsLiAgVGhpcyBpcworLy8gb25seSBuZWVkZWQgYnkgc2V0VGFy
Z2V0QXRUaW1lKCkgd2hpY2ggbmVlZHMgYSB0aW1lIGNvbnN0YW50LgordmFyIHRpbWVDb25zdGFu
dCA9IHRpbWVJbnRlcnZhbCAvIDM7CisKK3ZhciBnYWluTm9kZTsKKwordmFyIGNvbnRleHQ7CisK
Ky8vIE1ha2Ugc3VyZSB3ZSByZW5kZXIgbG9uZyBlbm91Z2ggdG8gY2FwdHVyZSBhbGwgb2Ygb3Vy
IHRlc3QgZGF0YS4KK2Z1bmN0aW9uIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKQoreworICAg
IHJldHVybiB0aW1lVG9TYW1wbGVGcmFtZSgobnVtYmVyT2ZUZXN0cyArIDEpICogdGltZUludGVy
dmFsLCBzYW1wbGVSYXRlKTsKK30KKworLy8gQ3JlYXRlIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhl
IHNhbWUgY29uc3RhbnQgdmFsdWUuCitmdW5jdGlvbiBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250
ZXh0LCBjb25zdGFudCwgbGVuZ3RoKSB7CisgICAgdmFyIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRl
QnVmZmVyKDEsIGxlbmd0aCwgY29udGV4dC5zYW1wbGVSYXRlKTsKKyAgICB2YXIgbiA9IGJ1ZmZl
ci5sZW5ndGg7CisgICAgdmFyIGRhdGEgPSBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisKKyAg
ICBmb3IgKHZhciBrID0gMDsgayA8IG47ICsraykgeworICAgICAgICBkYXRhW2tdID0gY29uc3Rh
bnQ7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKworLy8gQ3JlYXRlIGEgY29uc3Rh
bnQgcmVmZXJlbmNlIHNpZ25hbCB3aXRoIHRoZSBnaXZlbiB8dmFsdWV8LiAgQmFzaWNhbGx5IHRo
ZSBzYW1lIGFzCisvLyB8Y3JlYXRlQ29uc3RhbnRCdWZmZXJ8LCBidXQgd2l0aCB0aGUgcGFyYW1l
dGVycyB0byBtYXRjaCB0aGUgb3RoZXIgY3JlYXRlIGZ1bmN0aW9ucy4gIFRoZQorLy8gfGVuZFZh
bHVlfCBpcyBpZ25vcmVkLgorZnVuY3Rpb24gY3JlYXRlQ29uc3RhbnRBcnJheShzdGFydFRpbWUs
IGVuZFRpbWUsIHZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkKK3sKKyAgICB2YXIgc3RhcnRG
cmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKHN0YXJ0VGltZSwgc2FtcGxlUmF0ZSk7CisgICAgdmFy
IGVuZEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoZW5kVGltZSwgc2FtcGxlUmF0ZSk7CisgICAg
dmFyIGxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFtZTsKKworICAgIHZhciBidWZmZXIgPSBj
cmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCB2YWx1ZSwgbGVuZ3RoKTsKKworICAgIHJldHVy
biBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Cit9CisKKy8vIENyZWF0ZSBhIGxpbmVhciByYW1w
IHN0YXJ0aW5nIGF0IHxzdGFydFZhbHVlfCBhbmQgZW5kaW5nIGF0IHxlbmRWYWx1ZXwuICBUaGUg
cmFtcCBzdGFydHMgYXQgdGltZQorLy8gfHN0YXJ0VGltZXwgYW5kIGVuZHMgYXQgfGVuZFRpbWV8
LiAgKFRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGFyZSBvbmx5IHVzZWQgdG8gY29tcHV0ZSBob3cg
bWFueQorLy8gc2FtcGxlcyB0byByZXR1cm4uKQorZnVuY3Rpb24gY3JlYXRlTGluZWFyUmFtcEFy
cmF5KHN0YXJ0VGltZSwgZW5kVGltZSwgc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIHNhbXBsZVJhdGUp
Cit7CisgICAgdmFyIHN0YXJ0RnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShzdGFydFRpbWUsIHNh
bXBsZVJhdGUpOworICAgIHZhciBlbmRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKGVuZFRpbWUs
IHNhbXBsZVJhdGUpOworICAgIHZhciBsZW5ndGggPSBlbmRGcmFtZSAtIHN0YXJ0RnJhbWU7Cisg
ICAgdmFyIGFycmF5ID0gbmV3IEFycmF5KGxlbmd0aCk7CisKKyAgICB2YXIgc3RlcCA9IChlbmRW
YWx1ZSAtIHN0YXJ0VmFsdWUpIC8gbGVuZ3RoOworCisgICAgZm9yIChrID0gMDsgayA8IGxlbmd0
aDsgKytrKSB7CisgICAgICAgIGFycmF5W2tdID0gc3RhcnRWYWx1ZSArIGsgKiBzdGVwOworICAg
IH0KKworICAgIHJldHVybiBhcnJheTsKK30KKworLy8gQ3JlYXRlIGFuIGV4cG9uZW50aWFsIHJh
bXAgc3RhcnRpbmcgYXQgfHN0YXJ0VmFsdWV8IGFuZCBlbmRpbmcgYXQgfGVuZFZhbHVlfC4gIFRo
ZSByYW1wIHN0YXJ0cyBhdAorLy8gdGltZSB8c3RhcnRUaW1lfCBhbmQgZW5kcyBhdCB8ZW5kVGlt
ZXwuICAoVGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMgYXJlIG9ubHkgdXNlZCB0byBjb21wdXRlIGhv
dworLy8gbWFueSBzYW1wbGVzIHRvIHJldHVybi4pCitmdW5jdGlvbiBjcmVhdGVFeHBvbmVudGlh
bFJhbXBBcnJheShzdGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0VmFsdWUsIGVuZFZhbHVlLCBzYW1w
bGVSYXRlKQoreworICAgIHZhciBzdGFydEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRU
aW1lLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgZW5kRnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShl
bmRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgbGVuZ3RoID0gZW5kRnJhbWUgLSBzdGFydEZy
YW1lOworICAgIHZhciBhcnJheSA9IG5ldyBBcnJheShsZW5ndGgpOworCisgICAgdmFyIG11bHRp
cGxpZXIgPSBNYXRoLnBvdyhlbmRWYWx1ZSAvIHN0YXJ0VmFsdWUsIDEgLyBsZW5ndGgpOworICAg
IAorICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKKyAgICAgICAgYXJyYXlb
a10gPSBzdGFydFZhbHVlICogTWF0aC5wb3cobXVsdGlwbGllciwgayk7CisgICAgfQorCisgICAg
cmV0dXJuIGFycmF5OworfQorCitmdW5jdGlvbiBkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBs
ZVJhdGUodGltZUNvbnN0YW50LCBzYW1wbGVSYXRlKQoreworICAgIHJldHVybiAxIC0gTWF0aC5l
eHAoLTEgLyAoc2FtcGxlUmF0ZSAqIHRpbWVDb25zdGFudCkpOworfQorCisvLyBDcmVhdGUgYSBz
aWduYWwgdGhhdCBzdGFydHMgYXQgfHN0YXJ0VmFsdWV8IGFuZCBleHBvbmVudGlhbGx5IGFwcHJv
YWNoZXMgdGhlIHRhcmdldCB2YWx1ZSBvZgorLy8gfHRhcmdldFZhbHVlfCwgdXNpbmcgYSB0aW1l
IGNvbnN0YW50IG9mIHx0aW1lQ29uc3RhbnR8LiAgVGhlIHJhbXAgc3RhcnRzIGF0IHRpbWUgfHN0
YXJ0VGltZXwgYW5kCisvLyBlbmRzIGF0IHxlbmRUaW1lfC4gIChUaGUgc3RhcnQgYW5kIGVuZCB0
aW1lcyBhcmUgb25seSB1c2VkIHRvIGNvbXB1dGUgaG93IG1hbnkgc2FtcGxlcyB0bworLy8gcmV0
dXJuLikKK2Z1bmN0aW9uIGNyZWF0ZUV4cG9uZW50aWFsQXBwcm9hY2hBcnJheShzdGFydFRpbWUs
IGVuZFRpbWUsIHN0YXJ0VmFsdWUsIHRhcmdldFZhbHVlLCBzYW1wbGVSYXRlLCB0aW1lQ29uc3Rh
bnQpCit7CisgICAgdmFyIHN0YXJ0RnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShzdGFydFRpbWUs
IHNhbXBsZVJhdGUpOworICAgIHZhciBlbmRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKGVuZFRp
bWUsIHNhbXBsZVJhdGUpOworICAgIHZhciBsZW5ndGggPSBlbmRGcmFtZSAtIHN0YXJ0RnJhbWU7
CisgICAgdmFyIGFycmF5ID0gbmV3IEFycmF5KGxlbmd0aCk7CisgICAgdmFyIGMgPSBkaXNjcmV0
ZVRpbWVDb25zdGFudEZvclNhbXBsZVJhdGUodGltZUNvbnN0YW50LCBzYW1wbGVSYXRlKTsKKwor
ICAgIHZhciB2YWx1ZSA9IHN0YXJ0VmFsdWU7CisgICAgCisgICAgZm9yICh2YXIgayA9IDA7IGsg
PCBsZW5ndGg7ICsraykgeworICAgICAgICBhcnJheVtrXSA9IHZhbHVlOworICAgICAgICB2YWx1
ZSArPSAodGFyZ2V0VmFsdWUgLSB2YWx1ZSkgKiBjOworICAgIH0KKworICAgIHJldHVybiBhcnJh
eTsKK30KKworLy8gQ3JlYXRlIGEgc2luZSB3YXZlIG9mIHRoZSBnaXZlbiBmcmVxdWVuY3kgYW5k
IGFtcGxpdHVkZS4gIFRoZSBzaW5lIHdhdmUgaXMgb2Zmc2V0IGJ5IGhhbGYgdGhlCisvLyBhbXBs
aXR1ZGUgc28gdGhhdCByZXN1bHQgaXMgYWx3YXlzIHBvc2l0aXZlLgorZnVuY3Rpb24gY3JlYXRl
U2luZVdhdmVBcnJheShkdXJhdGlvblNlY29uZHMsIGZyZXFIeiwgYW1wbGl0dWRlLCBzYW1wbGVS
YXRlKQoreworICAgIHZhciBsZW5ndGggPSB0aW1lVG9TYW1wbGVGcmFtZShkdXJhdGlvblNlY29u
ZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBzaWduYWwgPSBuZXcgRmxvYXQzMkFycmF5KGxlbmd0
aCk7CisgICAgdmFyIG9tZWdhID0gMiAqIE1hdGguUEkgKiBmcmVxSHogLyBzYW1wbGVSYXRlOwor
ICAgIHZhciBoYWxmQW1wbGl0dWRlID0gYW1wbGl0dWRlIC8gMjsKKyAgICAKKyAgICBmb3IgKHZh
ciBrID0gMDsgayA8IGxlbmd0aDsgKytrKSB7CisgICAgICAgIHNpZ25hbFtrXSA9IGhhbGZBbXBs
aXR1ZGUgKyBoYWxmQW1wbGl0dWRlICogTWF0aC5zaW4ob21lZ2EgKiBrKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gc2lnbmFsOworfQorCisvLyBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0
aGUgc3RhcnRpbmcgdmFsdWUgYW5kIHRoZSBlbmRpbmcgdmFsdWUgZm9yIHRpbWUgaW50ZXJ2YWwK
Ky8vIHx0aW1lSW50ZXJ2YWxJbmRleHwuICBXZSBhbHRlcm5hdGUgYmV0d2VlbiBhbiBlbmQgdmFs
dWUgdGhhdCBpcyBhYm92ZSBvciBiZWxvdyB0aGUgc3RhcnRpbmcKKy8vIHZhbHVlLgorZnVuY3Rp
b24gZW5kVmFsdWVEZWx0YSh0aW1lSW50ZXJ2YWxJbmRleCkKK3sKKyAgICBpZiAodGltZUludGVy
dmFsSW5kZXggJiAxKSB7CisgICAgICAgIHJldHVybiAtc3RhcnRFbmRWYWx1ZUNoYW5nZTsKKyAg
ICB9IGVsc2UgeworICAgICAgICByZXR1cm4gc3RhcnRFbmRWYWx1ZUNoYW5nZTsKKyAgICB9Cit9
CisKKy8vIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBzdGFydGluZyB2YWx1ZSBh
dCB8dGltZUludGVydmFsSW5kZXh8IGFuZCB0aGUgc3RhcnRpbmcgdmFsdWUgYXQKKy8vIHRoZSBu
ZXh0IHRpbWUgaW50ZXJ2YWwuICBTaW5jZSB3ZSBzdGFydGVkIGF0IGEgbGFyZ2UgaW5pdGlhbCB2
YWx1ZSwgd2UgZGVjcmVhc2UgdGhlIHZhbHVlIGF0IGVhY2gKKy8vIHRpbWUgaW50ZXJ2YWwuCitm
dW5jdGlvbiB2YWx1ZVVwZGF0ZSh0aW1lSW50ZXJ2YWxJbmRleCkKK3sKKyAgICByZXR1cm4gLXN0
YXJ0aW5nVmFsdWVEZWx0YTsKK30KKworLy8gQ29tcGFyZSBhIHNlY3Rpb24gb2YgdGhlIHJlbmRl
cmVkIGRhdGEgYWdhaW5zdCBvdXIgZXhwZWN0ZWQgc2lnbmFsLgorZnVuY3Rpb24gY29tcGFyZVBh
cnRpYWxTaWduYWxzKHJlbmRlcmVkLCBleHBlY3RlZEZ1bmN0aW9uLCBzdGFydFRpbWUsIGVuZFRp
bWUsIHZhbHVlSW5mbywgc2FtcGxlUmF0ZSkKK3sKKyAgICB2YXIgc3RhcnRTYW1wbGUgPSB0aW1l
VG9TYW1wbGVGcmFtZShzdGFydFRpbWUsIHNhbXBsZVJhdGUpOworICAgIHZhciBleHBlY3RlZCA9
IGV4cGVjdGVkRnVuY3Rpb24oc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZUluZm8uc3RhcnRWYWx1
ZSwgdmFsdWVJbmZvLmVuZFZhbHVlLCBzYW1wbGVSYXRlLCB0aW1lQ29uc3RhbnQpOworCisgICAg
dmFyIG4gPSBleHBlY3RlZC5sZW5ndGg7CisgICAgdmFyIG1heEVycm9yID0gLTE7CisgICAgdmFy
IG1heEVycm9ySW5kZXggPSAtMTsKKyAgICAKKyAgICBmb3IgKHZhciBrID0gMDsgayA8IG47ICsr
aykgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGFzcyB0aGVzZSB0ZXN0cyBiZWNh
dXNlIGEgTmFOIGhhcyBiZWVuIGdlbmVyYXRlZCBpbiBlaXRoZXIgdGhlCisgICAgICAgIC8vIHJl
bmRlcmVkIGRhdGEgb3IgdGhlIHJlZmVyZW5jZSBkYXRhLgorICAgICAgICBpZiAoIWlzVmFsaWRO
dW1iZXIocmVuZGVyZWRbc3RhcnRTYW1wbGUgKyBrXSkpIHsKKyAgICAgICAgICAgIG1heEVycm9y
ID0gSW5maW5pdHk7CisgICAgICAgICAgICBtYXhFcnJvckluZGV4ID0gc3RhcnRTYW1wbGUgKyBr
OworICAgICAgICAgICAgdGVzdEZhaWxlZCgiTmFOIG9yIGluZmluaXR5IGZvciByZW5kZXJlZCBk
YXRhIGF0ICIgKyBtYXhFcnJvckluZGV4KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgICAgIGlmICghaXNWYWxpZE51bWJlcihleHBlY3RlZFtrXSkpIHsKKyAgICAgICAgICAg
IG1heEVycm9yID0gSW5maW5pdHk7CisgICAgICAgICAgICBtYXhFcnJvckluZGV4ID0gc3RhcnRT
YW1wbGUgKyBrOworICAgICAgICAgICAgdGVzdEZhaWxlZCgiTmFuIG9yIGluZmluaXR5IGZvciBy
ZWZlcmVuY2UgZGF0YSBhdCAiICsgbWF4RXJyb3JJbmRleCk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgICAgICB2YXIgZXJyb3IgPSBNYXRoLmFicyhyZW5kZXJlZFtzdGFydFNh
bXBsZSArIGtdIC0gZXhwZWN0ZWRba10pOworICAgICAgICBpZiAoZXJyb3IgPiBtYXhFcnJvcikg
eworICAgICAgICAgICAgbWF4RXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgIG1heEVycm9ySW5k
ZXggPSBrOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHttYXhFcnJvciA6IG1heEVy
cm9yLCBpbmRleCA6IG1heEVycm9ySW5kZXh9OworfQorCisvLyBGaW5kIHRoZSBkaXNjb250aW51
aXRpZXMgaW4gdGhlIGRhdGEgYW5kIGNvbXBhcmUgdGhlIGxvY2F0aW9ucyBvZiB0aGUgZGlzY29u
dGludWl0aWVzIHdpdGggdGhlCisvLyB0aW1lcyB0aGF0IGRlZmluZSB0aGUgdGltZSBpbnRlcnZh
bHMuIFRoZXJlIGlzIGEgZGlzY29udGludWl0eSBpZiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCisv
LyBzdWNjZXNzaXZlIHNhbXBsZXMgZXhjZWVkcyB0aGUgdGhyZXNob2xkLgorZnVuY3Rpb24gdmVy
aWZ5RGlzY29udGludWl0aWVzKHZhbHVlcywgdGltZXMsIHRocmVzaG9sZCkKK3sKKyAgICB2YXIg
biA9IHZhbHVlcy5sZW5ndGg7CisgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOworICAgIHZhciBiYWRM
b2NhdGlvbnMgPSAwOworICAgIHZhciBicmVha3MgPSBbXTsKKworICAgIC8vIEZpbmQgZGlzY29u
dGludWl0aWVzLgorICAgIGZvciAodmFyIGsgPSAxOyBrIDwgbjsgKytrKSB7CisgICAgICAgIGlm
IChNYXRoLmFicyh2YWx1ZXNba10gLSB2YWx1ZXNbayAtIDFdKSA+IHRocmVzaG9sZCkgeworICAg
ICAgICAgICAgYnJlYWtzLnB1c2goayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgdGVz
dENvdW50OworCisgICAgLy8gSWYgdGhlcmUgYXJlIG51bWJlck9mVGVzdHMgaW50ZXJ2YWxzLCB0
aGVyZSBhcmUgb25seSBudW1iZXJPZlRlc3RzIC0gMSBpbnRlcm5hbCBpbnRlcnZhbAorICAgIC8v
IGJvdW5kYXJpZXMuIEhlbmNlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaXNjb250aW51dGllcyB3
ZSBleHBlY3QgdG8gZmluZCBpcyBudW1iZXJPZlRlc3RzIC0KKyAgICAvLyAxLiBJZiB3ZSBmaW5k
IG1vcmUgdGhhbiB0aGF0LCB3ZSBoYXZlIG5vIHJlZmVyZW5jZSB0byBjb21wYXJlIGFnYWluc3Qu
IFdlIGFsc28gYXNzdW1lIHRoYXQKKyAgICAvLyB0aGUgYWN0dWFsIGRpc2NvbnRpbnVpdGllcyBh
cmUgY2xvc2UgdG8gdGhlIGV4cGVjdGVkIG9uZXMuCisgICAgLy8KKyAgICAvLyBUaGlzIGlzIGp1
c3QgYSBzYW5pdHkgY2hlY2sgd2hlbiBzb21ldGhpbmcgZ29lcyByZWFsbHkgd3JvbmcuICBGb3Ig
ZXhhbXBsZSwgaWYgdGhlIHRocmVzaG9sZAorICAgIC8vIGlzIHRvbyBsb3csIGV2ZXJ5IHNhbXBs
ZSBmcmFtZSBsb29rcyBsaWtlIGEgZGlzY29udGludWl0eS4KKyAgICBpZiAoYnJlYWtzLmxlbmd0
aCA+PSBudW1iZXJPZlRlc3RzKSB7CisgICAgICAgIHRlc3RDb3VudCA9IG51bWJlck9mVGVzdHMg
LSAxOworICAgICAgICB0ZXN0RmFpbGVkKCJGb3VuZCBtb3JlIGRpc2NvbnRpbnVpdGllcyAoIiAr
IGJyZWFrcy5sZW5ndGggKyAiKSB0aGFuIGV4cGVjdGVkLiAgT25seSBjb21wYXJpbmcgZmlyc3Qg
IiArIHRlc3RDb3VudCArICJkaXNjb250aW51aXRpZXMuIik7CisgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0Q291bnQgPSBicmVha3MubGVuZ3RoOwor
ICAgIH0KKyAgICAKKyAgICAvLyBDb21wYXJlIHRoZSBsb2NhdGlvbiBvZiBlYWNoIGRpc2NvbnRp
bnVpdHkgd2l0aCB0aGUgZW5kIHRpbWUgb2YgZWFjaCBpbnRlcnZhbC4gKFRoZXJlIGlzIG5vCisg
ICAgLy8gZGlzY29udGludWl0eSBhdCB0aGUgc3RhcnQgb2YgdGhlIHNpZ25hbC4pCisgICAgZm9y
ICh2YXIgayA9IDA7IGsgPCB0ZXN0Q291bnQ7ICsraykgeworICAgICAgICB2YXIgZXhwZWN0ZWRT
YW1wbGVGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKHRpbWVzW2sgKyAxXSwgc2FtcGxlUmF0ZSk7
CisgICAgICAgIGlmIChicmVha3Nba10gIT0gZXhwZWN0ZWRTYW1wbGVGcmFtZSkgeworICAgICAg
ICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICAgICAgKytiYWRMb2NhdGlvbnM7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJFeHBlY3RlZCBkaXNjb250aW51aXR5IGF0ICIgKyBleHBlY3Rl
ZFNhbXBsZUZyYW1lICsgIiBidXQgZ290ICIgKyBicmVha3Nba10pOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKGJhZExvY2F0aW9ucykgeworICAgICAgICB0ZXN0RmFpbGVkKGJhZExvY2F0
aW9ucyArICIgZGlzY29udGludWl0aWVzIGF0IGluY29ycmVjdCBsb2NhdGlvbnMiKTsKKyAgICAg
ICAgc3VjY2VzcyA9IGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChicmVha3MubGVu
Z3RoID09IG51bWJlck9mVGVzdHMgLSAxKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJBbGwg
IiArIG51bWJlck9mVGVzdHMgKyAiIHRlc3RzIHN0YXJ0ZWQgYW5kIGVuZGVkIGF0IHRoZSBjb3Jy
ZWN0IHRpbWUuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJG
b3VuZCAiICsgYnJlYWtzLmxlbmd0aCArICIgZGlzY29udGludWl0aWVzIGJ1dCBleHBlY3RlZCAi
ICsgKG51bWJlck9mVGVzdHMgLSAxKSk7CisgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CisKKy8vIENvbXBh
cmUgdGhlIHJlbmRlcmVkIGRhdGEgd2l0aCB0aGUgZXhwZWN0ZWQgZGF0YS4KKy8vCisvLyB0ZXN0
TmFtZSAtIHN0cmluZyBkZXNjcmliaW5nIHRoZSB0ZXN0CisvLworLy8gbWF4RXJyb3IgLSBtYXhp
bXVtIGFsbG93ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUg
ZXhwZWN0ZWQgZGF0YQorLy8KKy8vIHJlbmRlcmVyZERhdGEgLSBhcnJheSBjb250YWluaW5nIHRo
ZSByZW5kZXJlZCAoYWN0dWFsKSBkYXRhCisvLworLy8gZXhwZWN0ZWRGdW5jdGlvbiAtIGZ1bmN0
aW9uIHRvIGNvbXB1dGUgdGhlIGV4cGVjdGVkIGRhdGEKKy8vCisvLyB0aW1lVmFsdWVJbmZvIC0g
YXJyYXkgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhcnQgYW5kIGVuZCB0aW1l
cyBhbmQgdGhlIHN0YXJ0IGFuZCBlbmQKKy8vIHZhbHVlcyBvZiBlYWNoIGludGVydmFsLgorLy8K
Ky8vIGJyZWFrVGhyZXNob2xkIC0gdGhyZXNob2xkIHRvIHVzZSBmb3IgZGV0ZXJtaW5pbmcgZGlz
Y29udGludWl0aWVzLgorZnVuY3Rpb24gY29tcGFyZVNpZ25hbHModGVzdE5hbWUsIG1heEVycm9y
LCByZW5kZXJlZERhdGEsIGV4cGVjdGVkRnVuY3Rpb24sIHRpbWVWYWx1ZUluZm8sIGJyZWFrVGhy
ZXNob2xkKQoreworICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAgICB2YXIgZmFpbGVkVGVzdENv
dW50ID0gMDsKKyAgICB2YXIgdGltZXMgPSB0aW1lVmFsdWVJbmZvLnRpbWVzOworICAgIHZhciB2
YWx1ZXMgPSB0aW1lVmFsdWVJbmZvLnZhbHVlczsKKyAgICB2YXIgbiA9IHZhbHVlcy5sZW5ndGg7
CisKKyAgICBzdWNjZXNzID0gdmVyaWZ5RGlzY29udGludWl0aWVzKHJlbmRlcmVkRGF0YSwgdGlt
ZXMsIGJyZWFrVGhyZXNob2xkKTsKKworICAgIGZvciAodmFyIGsgPSAwOyBrIDwgbjsgKytrKSB7
CisgICAgICAgIHZhciByZXN1bHQgPSBjb21wYXJlUGFydGlhbFNpZ25hbHMocmVuZGVyZWREYXRh
LCBleHBlY3RlZEZ1bmN0aW9uLCB0aW1lc1trXSwgdGltZXNbayArIDFdLCB2YWx1ZXNba10sIHNh
bXBsZVJhdGUpOworCisgICAgICAgIGlmIChyZXN1bHQubWF4RXJyb3IgPiBtYXhFcnJvcikgewor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSW5jb3JyZWN0IHZhbHVlIGZvciB0ZXN0ICIgKyBrICsg
Ii4gTWF4IGVycm9yID0gIiArIHJlc3VsdC5tYXhFcnJvciArICIgYXQgb2Zmc2V0ICIgKyAocmVz
dWx0LmluZGV4ICsgdGltZVRvU2FtcGxlRnJhbWUodGltZXNba10sIHNhbXBsZVJhdGUpKSk7Cisg
ICAgICAgICAgICArK2ZhaWxlZFRlc3RDb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
IChmYWlsZWRUZXN0Q291bnQpIHsKKyAgICAgICAgdGVzdEZhaWxlZChmYWlsZWRUZXN0Q291bnQg
KyAiIHRlc3RzIGZhaWxlZCBvdXQgb2YgIiArIG4pOworICAgICAgICBzdWNjZXNzID0gZmFsc2U7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiQWxsICIgKyBuICsgIiB0ZXN0cyBw
YXNzZWQgd2l0aGluIGFuIGFjY2VwdGFibGUgdG9sZXJhbmNlLiIpOworICAgIH0KKyAgICAgIAor
ICAgIGlmIChzdWNjZXNzKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkF1ZGlvUGFyYW0gIiArIHRl
c3ROYW1lICsgIiB0ZXN0IHBhc3NlZC4iKTsKKyAgICB9IGVsc2UgeworICAgICAgICB0ZXN0RmFp
bGVkKCJBdWRpb1BhcmFtICIgKyB0ZXN0TmFtZSArICIgdGVzdCBmYWlsZWQuIik7CisgICAgfQor
fQorCisvLyBDcmVhdGUgYSBmdW5jdGlvbiB0byB0ZXN0IHRoZSByZW5kZXJlZCBkYXRhIHdpdGgg
dGhlIHJlZmVyZW5jZSBkYXRhLgorLy8KKy8vIHRlc3ROYW1lIC0gc3RyaW5nIGRlc2NyaWJpbmcg
dGhlIHRlc3QKKy8vCisvLyBlcnJvciAtIG1heCBhbGxvd2VkIGVycm9yIGJldHdlZW4gcmVuZGVy
ZWQgZGF0YSBhbmQgdGhlIHJlZmVyZW5jZSBkYXRhLgorLy8KKy8vIHJlZmVyZW5jZUZ1bmN0aW9u
IC0gZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIHJlZmVyZW5jZSBkYXRhIHRvIGJlIGNvbXBh
cmVkIHdpdGggdGhlIHJlbmRlcmVkCisvLyBkYXRhLgorLy8KKy8vIGp1bXBUaHJlc2hvbGQgLSBv
cHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBzcGVjaWZpZXMgdGhlIHRocmVzaG9sZCB0byB1c2UgZm9y
IGRldGVjdGluZworLy8gZGlzY29udGludWl0aWVzLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVs
dHMgdG8gZGlzY29udGludWl0eVRocmVzaG9sZC4KKy8vCitmdW5jdGlvbiBjaGVja1Jlc3VsdEZ1
bmN0aW9uKHRlc3ROYW1lLCBlcnJvciwgcmVmZXJlbmNlRnVuY3Rpb24sIGp1bXBUaHJlc2hvbGQp
Cit7CisgICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBidWZmZXIgPSBl
dmVudC5yZW5kZXJlZEJ1ZmZlcjsKKyAgICAgICAgcmVuZGVyZWREYXRhID0gYnVmZmVyLmdldENo
YW5uZWxEYXRhKDApOworCisgICAgICAgIHZhciB0aHJlc2hvbGQ7CisKKyAgICAgICAgaWYgKCFq
dW1wVGhyZXNob2xkKSB7CisgICAgICAgICAgICB0aHJlc2hvbGQgPSBkaXNjb250aW51aXR5VGhy
ZXNob2xkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyZXNob2xkID0ganVtcFRo
cmVzaG9sZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY29tcGFyZVNpZ25hbHModGVz
dE5hbWUsIGVycm9yLCByZW5kZXJlZERhdGEsIHJlZmVyZW5jZUZ1bmN0aW9uLCB0aW1lVmFsdWVJ
bmZvLCB0aHJlc2hvbGQpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30KKwor
Ly8gUnVuIGFsbCB0aGUgYXV0b21hdGlvbiB0ZXN0cy4KKy8vCisvLyBudW1iZXJPZlRlc3RzIC0g
bnVtYmVyIG9mIHRlc3RzICh0aW1lIGludGVydmFscykgdG8gcnVuLgorLy8KKy8vIGluaXRpYWxW
YWx1ZSAtIFRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBmaXJzdCB0aW1lIGludGVydmFsLgorLy8K
Ky8vIHNldFZhbHVlRnVuY3Rpb24gLSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIHNwZWNpZmllZCB2
YWx1ZSBhdCB0aGUgc3RhcnQgb2YgYSB0aW1lIGludGVydmFsLgorLy8KKy8vIGF1dG9tYXRpb25G
dW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgZW5kIHZhbHVlIGZvciB0aGUgdGltZSBp
bnRlcnZhbC4gIEl0IHNwZWNpZmllcyBob3cKKy8vIHRoZSB2YWx1ZSBhcHByb2FjaGVzIHRoZSBl
bmQgdmFsdWUuCisvLworLy8gQW4gb2JqZWN0IGlzIHJldHVybmVkIGNvbnRhaW5pbmcgYW4gYXJy
YXkgb2Ygc3RhcnQgdGltZXMgZm9yIGVhY2ggdGltZSBpbnRlcnZhbCwgYW5kIGFuIGFycmF5Cisv
LyBnaXZpbmcgdGhlIHN0YXJ0IGFuZCBlbmQgdmFsdWVzIGZvciB0aGUgaW50ZXJ2YWwuCitmdW5j
dGlvbiBkb0F1dG9tYXRpb24obnVtYmVyT2ZUZXN0cywgaW5pdGlhbFZhbHVlLCBzZXRWYWx1ZUZ1
bmN0aW9uLCBhdXRvbWF0aW9uRnVuY3Rpb24pCit7CisgICAgdmFyIHRpbWVJbmZvID0gWzBdOwor
ICAgIHZhciB2YWx1ZUluZm8gPSBbXTsKKyAgICB2YXIgdmFsdWUgPSBpbml0aWFsVmFsdWU7Cisg
ICAgCisgICAgZm9yICh2YXIgayA9IDA7IGsgPCBudW1iZXJPZlRlc3RzOyArK2spIHsKKyAgICAg
ICAgdmFyIHN0YXJ0VGltZSA9IGsgKiB0aW1lSW50ZXJ2YWw7CisgICAgICAgIHZhciBlbmRUaW1l
ID0gKGsgKyAxKSAqIHRpbWVJbnRlcnZhbDsKKyAgICAgICAgdmFyIGVuZFZhbHVlID0gdmFsdWUg
KyBlbmRWYWx1ZURlbHRhKGspOworCisgICAgICAgIC8vIFNldCB0aGUgdmFsdWUgYXQgdGhlIHN0
YXJ0IG9mIHRoZSB0aW1lIGludGVydmFsLgorICAgICAgICBzZXRWYWx1ZUZ1bmN0aW9uKHZhbHVl
LCBzdGFydFRpbWUpOworCisgICAgICAgIC8vIFNwZWNpZnkgdGhlIGVuZCBvciB0YXJnZXQgdmFs
dWUsIGFuZCBob3cgd2Ugc2hvdWxkIGFwcHJvYWNoIGl0LgorICAgICAgICBhdXRvbWF0aW9uRnVu
Y3Rpb24oZW5kVmFsdWUsIHN0YXJ0VGltZSwgZW5kVGltZSk7CisKKyAgICAgICAgLy8gS2VlcCB0
cmFjayBvZiB0aGUgc3RhcnQgdGltZXMsIGFuZCB0aGUgc3RhcnQgYW5kIGVuZCB2YWx1ZXMgZm9y
IGVhY2ggdGltZSBpbnRlcnZhbC4KKyAgICAgICAgdGltZUluZm8ucHVzaChlbmRUaW1lKTsKKyAg
ICAgICAgdmFsdWVJbmZvLnB1c2goe3N0YXJ0VmFsdWU6IHZhbHVlLCBlbmRWYWx1ZSA6IGVuZFZh
bHVlfSk7CisKKyAgICAgICAgdmFsdWUgKz0gdmFsdWVVcGRhdGUoayk7CisgICAgfQorCisgICAg
cmV0dXJuIHt0aW1lcyA6IHRpbWVJbmZvLCB2YWx1ZXMgOiB2YWx1ZUluZm99OworfQorCisvLyBD
cmVhdGUgdGhlIGF1ZGlvIGdyYXBoIGZvciB0aGUgdGVzdCBhbmQgdGhlbiBydW4gdGhlIHRlc3Qu
CisvLworLy8gbnVtYmVyT2ZUZXN0cyAtIG51bWJlciBvZiB0aW1lIGludGVydmFscyAodGVzdHMp
IHRvIHJ1bi4KKy8vCisvLyBpbml0aWFsVmFsdWUgLSB0aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUg
Z2FpbiBhdCB0aW1lIDAuCisvLworLy8gc2V0VmFsdWVGdW5jdGlvbiAtIGZ1bmN0aW9uIHRvIHNl
dCB0aGUgdmFsdWUgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHRpbWUgaW50ZXJ2YWwuCisvLwor
Ly8gYXV0b21hdGlvbkZ1bmN0aW9uIC0gdGhlIEF1ZGlvUGFyYW1UaW1lbGluZSBhdXRvbWF0aW9u
IGZ1bmN0aW9uCisvLworLy8gdGVzdE5hbWUgLSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgdGVzdCB0
aGF0IGlzIGJlaW5nIHJ1bi4KKy8vCisvLyBtYXhFcnJvciAtIG1heGltdW0gYWxsb3dlZCBlcnJv
ciBiZXR3ZWVuIHRoZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUgcmVmZXJlbmNlIGRhdGEKKy8vCisv
LyByZWZlcmVuY2VGdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSByZWZlcmVu
Y2UgZGF0YSB0byBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoZQorLy8gcmVuZGVyZWQgZGF0YS4KKy8v
CisvLyBqdW1wVGhyZXNob2xkIC0gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHRo
ZSB0aHJlc2hvbGQgdG8gdXNlIGZvciBkZXRlY3RpbmcKKy8vIGRpc2NvbnRpbnVpdGllcy4gIElm
IG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQuCisvLwor
ZnVuY3Rpb24gY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QobnVtYmVyT2ZUZXN0cywgaW5pdGlhbFZh
bHVlLCBzZXRWYWx1ZUZ1bmN0aW9uLCBhdXRvbWF0aW9uRnVuY3Rpb24sIHRlc3ROYW1lLCBtYXhF
cnJvciwgcmVmZXJlbmNlRnVuY3Rpb24sIGp1bXBUaHJlc2hvbGQpCit7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0Lgor
ICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5n
dGgobnVtYmVyT2ZUZXN0cyksIHNhbXBsZVJhdGUpOworICAgIHZhciBjb25zdGFudEJ1ZmZlciA9
IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIDEsIHJlbmRlckxlbmd0aChudW1iZXJPZlRl
c3RzKSk7CisKKyAgICAvLyBXZSB1c2UgYW4gQXVkaW9HYWluTm9kZSBoZXJlIHNpbXBseSBhcyBh
IGNvbnZlbmllbnQgd2F5IHRvIHRlc3QgdGhlIEF1ZGlvUGFyYW0KKyAgICAvLyBhdXRvbWF0aW9u
LCBzaW5jZSBpdCdzIGVhc3kgdG8gcGFzcyBhIGNvbnN0YW50IHZhbHVlIHRocm91Z2ggdGhlIG5v
ZGUsIGF1dG9tYXRlIHRoZQorICAgIC8vIC5nYWluIGF0dHJpYnV0ZSBhbmQgb2JzZXJ2ZSB0aGUg
cmVzdWx0aW5nIHZhbHVlcy4KKworICAgIGdhaW5Ob2RlID0gY29udGV4dC5jcmVhdGVHYWluKCk7
CisKKyAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsK
KyAgICBidWZmZXJTb3VyY2UuYnVmZmVyID0gY29uc3RhbnRCdWZmZXI7CisgICAgYnVmZmVyU291
cmNlLmNvbm5lY3QoZ2Fpbk5vZGUpOworICAgIGdhaW5Ob2RlLmNvbm5lY3QoY29udGV4dC5kZXN0
aW5hdGlvbik7CisKKyAgICAvLyBTZXQgdXAgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBwYXJhbWV0
ZXJzIHRoYXQgY29udHJvbCBob3cgdGhlIGF1dG9tYXRpb24gdGVzdCB2YWx1ZXMgcHJvZ3Jlc3MK
KyAgICAvLyBmb3IgZWFjaCB0aW1lIGludGVydmFsLgorICAgIHN0YXJ0aW5nVmFsdWVEZWx0YSA9
IGluaXRpYWxWYWx1ZSAvIG51bWJlck9mVGVzdHM7CisgICAgc3RhcnRFbmRWYWx1ZUNoYW5nZSA9
IHN0YXJ0aW5nVmFsdWVEZWx0YSAvIDI7CisgICAgZGlzY29udGludWl0eVRocmVzaG9sZCA9IHN0
YXJ0RW5kVmFsdWVDaGFuZ2UgLyAyOworCisgICAgLy8gUnVuIHRoZSBhdXRvbWF0aW9uIHRlc3Rz
LgorICAgIHRpbWVWYWx1ZUluZm8gPSBkb0F1dG9tYXRpb24obnVtYmVyT2ZUZXN0cywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldFZhbHVlRnVuY3Rpb24sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvbWF0aW9uRnVuY3Rpb24pOworICAgIGJ1ZmZlclNvdXJjZS5zdGFy
dCgwKTsKKyAgICAgIAorICAgIGNvbnRleHQub25jb21wbGV0ZSA9IGNoZWNrUmVzdWx0RnVuY3Rp
b24odGVzdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXhFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlZmVyZW5jZUZ1bmN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAganVtcFRocmVzaG9sZCk7CisgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpOwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0t
dGVzdGluZy5qcyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRl
c3RpbmcuanMKaW5kZXggNjgwN2ExZTdlNWY3MzNlN2U4NjhlNmYyM2EzYzhlMGJiYmY1OGI0Zi4u
YmM5MGRkYmVmODI4NTEwMjEzZDk1Y2Y0MDY4M2UyMzIzN2U1NjYzMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcworKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzCkBAIC0x
LDQ0MCArMSw1NTQgQEAKLXZhciBzYW1wbGVSYXRlID0gNDQxMDA7CisoZnVuY3Rpb24oZ2xvYmFs
KSB7CiAKLS8vIEluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGFydGluZy9lbmRpbmcgdGltZXMgYW5k
IHN0YXJ0aW5nL2VuZGluZyB2YWx1ZXMgZm9yIGVhY2ggdGltZSBpbnRlcnZhbC4KLXZhciB0aW1l
VmFsdWVJbmZvOworICAvLyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhcnRpbmcvZW5kaW5nIHRp
bWVzIGFuZCBzdGFydGluZy9lbmRpbmcgdmFsdWVzIGZvcgorICAvLyBlYWNoIHRpbWUgaW50ZXJ2
YWwuCisgIGxldCB0aW1lVmFsdWVJbmZvOwogCi0vLyBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHN0
YXJ0aW5nIHZhbHVlcyBiZXR3ZWVuIGVhY2ggdGltZSBpbnRlcnZhbC4KLXZhciBzdGFydGluZ1Zh
bHVlRGVsdGE7Ci0gICAgICAKLS8vIEZvciBhbnkgYXV0b21hdGlvbiBmdW5jdGlvbiB0aGF0IGhh
cyBhbiBlbmQgb3IgdGFyZ2V0IHZhbHVlLCB0aGUgZW5kIHZhbHVlIGlzIGJhc2VkIHRoZSBzdGFy
dGluZwotLy8gdmFsdWUgb2YgdGhlIHRpbWUgaW50ZXJ2YWwuICBUaGUgc3RhcnRpbmcgdmFsdWUg
d2lsbCBiZSBpbmNyZWFzZWQgb3IgZGVjcmVhc2VkIGJ5Ci0vLyB8c3RhcnRFbmRWYWx1ZUNoYW5n
ZXwuIFdlIGNob29zZSBoYWxmIG9mIHxzdGFydGluZ1ZhbHVlRGVsdGF8IHNvIHRoYXQgdGhlIGVu
ZGluZyB2YWx1ZSB3aWxsIGJlCi0vLyBkaXN0aW5jdCBmcm9tIHRoZSBzdGFydGluZyB2YWx1ZSBm
b3IgbmV4dCB0aW1lIGludGVydmFsLiAgVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZWN0IHdoZXJlIHRo
ZSByYW1wCi0vLyBiZWdpbnMgYW5kIGVuZHMuCi12YXIgc3RhcnRFbmRWYWx1ZUNoYW5nZTsKKyAg
Ly8gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdGFydGluZyB2YWx1ZXMgYmV0d2VlbiBlYWNoIHRp
bWUgaW50ZXJ2YWwuCisgIGxldCBzdGFydGluZ1ZhbHVlRGVsdGE7CiAKLS8vIERlZmF1bHQgdGhy
ZXNob2xkIHRvIHVzZSBmb3IgZGV0ZWN0aW5nIGRpc2NvbnRpbnVpdGllcyB0aGF0IHNob3VsZCBh
cHBlYXIgYXQgZWFjaCB0aW1lIGludGVydmFsLgotdmFyIGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQ7
CisgIC8vIEZvciBhbnkgYXV0b21hdGlvbiBmdW5jdGlvbiB0aGF0IGhhcyBhbiBlbmQgb3IgdGFy
Z2V0IHZhbHVlLCB0aGUgZW5kIHZhbHVlCisgIC8vIGlzIGJhc2VkIHRoZSBzdGFydGluZyB2YWx1
ZSBvZiB0aGUgdGltZSBpbnRlcnZhbC4gIFRoZSBzdGFydGluZyB2YWx1ZSB3aWxsCisgIC8vIGJl
IGluY3JlYXNlZCBvciBkZWNyZWFzZWQgYnkgfHN0YXJ0RW5kVmFsdWVDaGFuZ2V8LiBXZSBjaG9v
c2UgaGFsZiBvZgorICAvLyB8c3RhcnRpbmdWYWx1ZURlbHRhfCBzbyB0aGF0IHRoZSBlbmRpbmcg
dmFsdWUgd2lsbCBiZSBkaXN0aW5jdCBmcm9tIHRoZQorICAvLyBzdGFydGluZyB2YWx1ZSBmb3Ig
bmV4dCB0aW1lIGludGVydmFsLiAgVGhpcyBhbGxvd3MgdXMgdG8gZGV0ZWN0IHdoZXJlIHRoZQor
ICAvLyByYW1wIGJlZ2lucyBhbmQgZW5kcy4KKyAgbGV0IHN0YXJ0RW5kVmFsdWVDaGFuZ2U7CiAK
LS8vIFRpbWUgaW50ZXJ2YWwgYmV0d2VlbiB2YWx1ZSBjaGFuZ2VzLiAgSXQgaXMgYmVzdCBpZiAx
IC8gbnVtYmVyT2ZUZXN0cyBpcyBub3QgY2xvc2UgdG8gdGltZUludGVydmFsLgotdmFyIHRpbWVJ
bnRlcnZhbCA9IC4wMzsKKyAgLy8gRGVmYXVsdCB0aHJlc2hvbGQgdG8gdXNlIGZvciBkZXRlY3Rp
bmcgZGlzY29udGludWl0aWVzIHRoYXQgc2hvdWxkIGFwcGVhcgorICAvLyBhdCBlYWNoIHRpbWUg
aW50ZXJ2YWwuCisgIGxldCBkaXNjb250aW51aXR5VGhyZXNob2xkOwogCi0vLyBTb21lIHN1aXRh
YmxlIHRpbWUgY29uc3RhbnQgc28gdGhhdCB3ZSBjYW4gc2VlIGEgc2lnbmlmaWNhbnQgY2hhbmdl
IG92ZXIgYSB0aW1lSW50ZXJ2YWwuICBUaGlzIGlzCi0vLyBvbmx5IG5lZWRlZCBieSBzZXRUYXJn
ZXRBdFRpbWUoKSB3aGljaCBuZWVkcyBhIHRpbWUgY29uc3RhbnQuCi12YXIgdGltZUNvbnN0YW50
ID0gdGltZUludGVydmFsIC8gMzsKKyAgLy8gVGltZSBpbnRlcnZhbCBiZXR3ZWVuIHZhbHVlIGNo
YW5nZXMuICBJdCBpcyBiZXN0IGlmIDEgLyBudW1iZXJPZlRlc3RzIGlzCisgIC8vIG5vdCBjbG9z
ZSB0byB0aW1lSW50ZXJ2YWwuCisgIGxldCB0aW1lSW50ZXJ2YWxJbnRlcm5hbCA9IC4wMzsKIAot
dmFyIGdhaW5Ob2RlOworICBsZXQgY29udGV4dDsKIAotdmFyIGNvbnRleHQ7Ci0KLS8vIE1ha2Ug
c3VyZSB3ZSByZW5kZXIgbG9uZyBlbm91Z2ggdG8gY2FwdHVyZSBhbGwgb2Ygb3VyIHRlc3QgZGF0
YS4KLWZ1bmN0aW9uIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKQoteworICAvLyBNYWtlIHN1
cmUgd2UgcmVuZGVyIGxvbmcgZW5vdWdoIHRvIGNhcHR1cmUgYWxsIG9mIG91ciB0ZXN0IGRhdGEu
CisgIGZ1bmN0aW9uIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSB7CiAgICAgcmV0dXJuIHRp
bWVUb1NhbXBsZUZyYW1lKChudW1iZXJPZlRlc3RzICsgMSkgKiB0aW1lSW50ZXJ2YWwsIHNhbXBs
ZVJhdGUpOwotfQotCi0vLyBDcmVhdGUgYSBidWZmZXIgY29udGFpbmluZyB0aGUgc2FtZSBjb25z
dGFudCB2YWx1ZS4KLWZ1bmN0aW9uIGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIGNvbnN0
YW50LCBsZW5ndGgpIHsKLSAgICB2YXIgYnVmZmVyID0gY29udGV4dC5jcmVhdGVCdWZmZXIoMSwg
bGVuZ3RoLCBjb250ZXh0LnNhbXBsZVJhdGUpOwotICAgIHZhciBuID0gYnVmZmVyLmxlbmd0aDsK
LSAgICB2YXIgZGF0YSA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKLQotICAgIGZvciAodmFy
IGsgPSAwOyBrIDwgbjsgKytrKSB7Ci0gICAgICAgIGRhdGFba10gPSBjb25zdGFudDsKLSAgICB9
CisgIH0KIAotICAgIHJldHVybiBidWZmZXI7Ci19CisgIC8vIENyZWF0ZSBhIGNvbnN0YW50IHJl
ZmVyZW5jZSBzaWduYWwgd2l0aCB0aGUgZ2l2ZW4gfHZhbHVlfC4gIEJhc2ljYWxseSB0aGUKKyAg
Ly8gc2FtZSBhcyB8Y3JlYXRlQ29uc3RhbnRCdWZmZXJ8LCBidXQgd2l0aCB0aGUgcGFyYW1ldGVy
cyB0byBtYXRjaCB0aGUgb3RoZXIKKyAgLy8gY3JlYXRlIGZ1bmN0aW9ucy4gIFRoZSB8ZW5kVmFs
dWV8IGlzIGlnbm9yZWQuCisgIGZ1bmN0aW9uIGNyZWF0ZUNvbnN0YW50QXJyYXkoCisgICAgICBz
dGFydFRpbWUsIGVuZFRpbWUsIHZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkgeworICAgIGxl
dCBzdGFydEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVSYXRlKTsK
KyAgICBsZXQgZW5kRnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShlbmRUaW1lLCBzYW1wbGVSYXRl
KTsKKyAgICBsZXQgbGVuZ3RoID0gZW5kRnJhbWUgLSBzdGFydEZyYW1lOwogCi0vLyBDcmVhdGUg
YSBjb25zdGFudCByZWZlcmVuY2Ugc2lnbmFsIHdpdGggdGhlIGdpdmVuIHx2YWx1ZXwuICBCYXNp
Y2FsbHkgdGhlIHNhbWUgYXMKLS8vIHxjcmVhdGVDb25zdGFudEJ1ZmZlcnwsIGJ1dCB3aXRoIHRo
ZSBwYXJhbWV0ZXJzIHRvIG1hdGNoIHRoZSBvdGhlciBjcmVhdGUgZnVuY3Rpb25zLiAgVGhlCi0v
LyB8ZW5kVmFsdWV8IGlzIGlnbm9yZWQuCi1mdW5jdGlvbiBjcmVhdGVDb25zdGFudEFycmF5KHN0
YXJ0VGltZSwgZW5kVGltZSwgdmFsdWUsIGVuZFZhbHVlLCBzYW1wbGVSYXRlKQotewotICAgIHZh
ciBzdGFydEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVSYXRlKTsK
LSAgICB2YXIgZW5kRnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFtZShlbmRUaW1lLCBzYW1wbGVSYXRl
KTsKLSAgICB2YXIgbGVuZ3RoID0gZW5kRnJhbWUgLSBzdGFydEZyYW1lOwotCi0gICAgdmFyIGJ1
ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIHZhbHVlLCBsZW5ndGgpOworICAg
IGxldCBidWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBsZW5ndGgsIHZhbHVl
KTsKIAogICAgIHJldHVybiBidWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7Ci19Ci0KLS8vIENyZWF0
ZSBhIGxpbmVhciByYW1wIHN0YXJ0aW5nIGF0IHxzdGFydFZhbHVlfCBhbmQgZW5kaW5nIGF0IHxl
bmRWYWx1ZXwuICBUaGUgcmFtcCBzdGFydHMgYXQgdGltZQotLy8gfHN0YXJ0VGltZXwgYW5kIGVu
ZHMgYXQgfGVuZFRpbWV8LiAgKFRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGFyZSBvbmx5IHVzZWQg
dG8gY29tcHV0ZSBob3cgbWFueQotLy8gc2FtcGxlcyB0byByZXR1cm4uKQotZnVuY3Rpb24gY3Jl
YXRlTGluZWFyUmFtcEFycmF5KHN0YXJ0VGltZSwgZW5kVGltZSwgc3RhcnRWYWx1ZSwgZW5kVmFs
dWUsIHNhbXBsZVJhdGUpCi17Ci0gICAgdmFyIHN0YXJ0RnJhbWUgPSB0aW1lVG9TYW1wbGVGcmFt
ZShzdGFydFRpbWUsIHNhbXBsZVJhdGUpOwotICAgIHZhciBlbmRGcmFtZSA9IHRpbWVUb1NhbXBs
ZUZyYW1lKGVuZFRpbWUsIHNhbXBsZVJhdGUpOwotICAgIHZhciBsZW5ndGggPSBlbmRGcmFtZSAt
IHN0YXJ0RnJhbWU7Ci0gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5KGxlbmd0aCk7Ci0KLSAgICB2
YXIgc3RlcCA9IChlbmRWYWx1ZSAtIHN0YXJ0VmFsdWUpIC8gbGVuZ3RoOwotCisgIH0KKworICBm
dW5jdGlvbiBnZXRTdGFydEVuZEZyYW1lcyhzdGFydFRpbWUsIGVuZFRpbWUsIHNhbXBsZVJhdGUp
IHsKKyAgICAvLyBTdGFydCBmcmFtZSBpcyB0aGUgY2VpbGluZyBvZiB0aGUgc3RhcnQgdGltZSBi
ZWNhdXNlIHRoZSByYW1wIHN0YXJ0cyBhdAorICAgIC8vIG9yIGFmdGVyIHRoZSBzYW1wbGUgZnJh
bWUuICBFbmQgZnJhbWUgaXMgdGhlIGNlaWxpbmcgYmVjYXVzZSBpdCdzIHRoZQorICAgIC8vIGV4
Y2x1c2l2ZSBlbmRpbmcgZnJhbWUgb2YgdGhlIGF1dG9tYXRpb24uCisgICAgbGV0IHN0YXJ0RnJh
bWUgPSBNYXRoLmNlaWwoc3RhcnRUaW1lICogc2FtcGxlUmF0ZSk7CisgICAgbGV0IGVuZEZyYW1l
ID0gTWF0aC5jZWlsKGVuZFRpbWUgKiBzYW1wbGVSYXRlKTsKKworICAgIHJldHVybiB7c3RhcnRG
cmFtZTogc3RhcnRGcmFtZSwgZW5kRnJhbWU6IGVuZEZyYW1lfTsKKyAgfQorCisgIC8vIENyZWF0
ZSBhIGxpbmVhciByYW1wIHN0YXJ0aW5nIGF0IHxzdGFydFZhbHVlfCBhbmQgZW5kaW5nIGF0IHxl
bmRWYWx1ZXwuIFRoZQorICAvLyByYW1wIHN0YXJ0cyBhdCB0aW1lIHxzdGFydFRpbWV8IGFuZCBl
bmRzIGF0IHxlbmRUaW1lfC4gIChUaGUgc3RhcnQgYW5kIGVuZAorICAvLyB0aW1lcyBhcmUgb25s
eSB1c2VkIHRvIGNvbXB1dGUgaG93IG1hbnkgc2FtcGxlcyB0byByZXR1cm4uKQorICBmdW5jdGlv
biBjcmVhdGVMaW5lYXJSYW1wQXJyYXkoCisgICAgICBzdGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0
VmFsdWUsIGVuZFZhbHVlLCBzYW1wbGVSYXRlKSB7CisgICAgbGV0IGZyYW1lSW5mbyA9IGdldFN0
YXJ0RW5kRnJhbWVzKHN0YXJ0VGltZSwgZW5kVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgbGV0IHN0
YXJ0RnJhbWUgPSBmcmFtZUluZm8uc3RhcnRGcmFtZTsKKyAgICBsZXQgZW5kRnJhbWUgPSBmcmFt
ZUluZm8uZW5kRnJhbWU7CisgICAgbGV0IGxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFtZTsK
KyAgICBsZXQgYXJyYXkgPSBuZXcgQXJyYXkobGVuZ3RoKTsKKworICAgIGxldCBzdGVwID0gTWF0
aC5mcm91bmQoCisgICAgICAgIChlbmRWYWx1ZSAtIHN0YXJ0VmFsdWUpIC8gKGVuZFRpbWUgLSBz
dGFydFRpbWUpIC8gc2FtcGxlUmF0ZSk7CisgICAgbGV0IHN0YXJ0ID0gTWF0aC5mcm91bmQoCisg
ICAgICAgIHN0YXJ0VmFsdWUgKworICAgICAgICAoZW5kVmFsdWUgLSBzdGFydFZhbHVlKSAqIChz
dGFydEZyYW1lIC8gc2FtcGxlUmF0ZSAtIHN0YXJ0VGltZSkgLworICAgICAgICAgICAgKGVuZFRp
bWUgLSBzdGFydFRpbWUpKTsKKworICAgIGxldCBzbG9wZSA9IChlbmRWYWx1ZSAtIHN0YXJ0VmFs
dWUpIC8gKGVuZFRpbWUgLSBzdGFydFRpbWUpOworCisgICAgLy8gdih0KSA9IHYwICsgKHYxIC0g
djApKih0LXQwKS8odDEtdDApCiAgICAgZm9yIChrID0gMDsgayA8IGxlbmd0aDsgKytrKSB7Ci0g
ICAgICAgIGFycmF5W2tdID0gc3RhcnRWYWx1ZSArIGsgKiBzdGVwOworICAgICAgLy8gYXJyYXlb
a10gPSBNYXRoLmZyb3VuZChzdGFydCArIGsgKiBzdGVwKTsKKyAgICAgIGxldCB0ID0gKHN0YXJ0
RnJhbWUgKyBrKSAvIHNhbXBsZVJhdGU7CisgICAgICBhcnJheVtrXSA9IHN0YXJ0VmFsdWUgKyBz
bG9wZSAqICh0IC0gc3RhcnRUaW1lKTsKICAgICB9CiAKICAgICByZXR1cm4gYXJyYXk7Ci19Ci0K
LS8vIENyZWF0ZSBhbiBleHBvbmVudGlhbCByYW1wIHN0YXJ0aW5nIGF0IHxzdGFydFZhbHVlfCBh
bmQgZW5kaW5nIGF0IHxlbmRWYWx1ZXwuICBUaGUgcmFtcCBzdGFydHMgYXQKLS8vIHRpbWUgfHN0
YXJ0VGltZXwgYW5kIGVuZHMgYXQgfGVuZFRpbWV8LiAgKFRoZSBzdGFydCBhbmQgZW5kIHRpbWVz
IGFyZSBvbmx5IHVzZWQgdG8gY29tcHV0ZSBob3cKLS8vIG1hbnkgc2FtcGxlcyB0byByZXR1cm4u
KQotZnVuY3Rpb24gY3JlYXRlRXhwb25lbnRpYWxSYW1wQXJyYXkoc3RhcnRUaW1lLCBlbmRUaW1l
LCBzdGFydFZhbHVlLCBlbmRWYWx1ZSwgc2FtcGxlUmF0ZSkKLXsKLSAgICB2YXIgc3RhcnRGcmFt
ZSA9IHRpbWVUb1NhbXBsZUZyYW1lKHN0YXJ0VGltZSwgc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIGVu
ZEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoZW5kVGltZSwgc2FtcGxlUmF0ZSk7Ci0gICAgdmFy
IGxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFtZTsKLSAgICB2YXIgYXJyYXkgPSBuZXcgQXJy
YXkobGVuZ3RoKTsKLQotICAgIHZhciBtdWx0aXBsaWVyID0gTWF0aC5wb3coZW5kVmFsdWUgLyBz
dGFydFZhbHVlLCAxIC8gbGVuZ3RoKTsKLSAgICAKLSAgICBmb3IgKHZhciBrID0gMDsgayA8IGxl
bmd0aDsgKytrKSB7Ci0gICAgICAgIGFycmF5W2tdID0gc3RhcnRWYWx1ZSAqIE1hdGgucG93KG11
bHRpcGxpZXIsIGspOworICB9CisKKyAgLy8gQ3JlYXRlIGFuIGV4cG9uZW50aWFsIHJhbXAgc3Rh
cnRpbmcgYXQgfHN0YXJ0VmFsdWV8IGFuZCBlbmRpbmcgYXQKKyAgLy8gfGVuZFZhbHVlfC4gVGhl
IHJhbXAgc3RhcnRzIGF0IHRpbWUgfHN0YXJ0VGltZXwgYW5kIGVuZHMgYXQgfGVuZFRpbWV8Lgor
ICAvLyAoVGhlIHN0YXJ0IGFuZCBlbmQgdGltZXMgYXJlIG9ubHkgdXNlZCB0byBjb21wdXRlIGhv
dyBtYW55IHNhbXBsZXMgdG8KKyAgLy8gcmV0dXJuLikKKyAgZnVuY3Rpb24gY3JlYXRlRXhwb25l
bnRpYWxSYW1wQXJyYXkoCisgICAgICBzdGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0VmFsdWUsIGVu
ZFZhbHVlLCBzYW1wbGVSYXRlKSB7CisgICAgbGV0IGRlbHRhVGltZSA9IGVuZFRpbWUgLSBzdGFy
dFRpbWU7CisKKyAgICBsZXQgZnJhbWVJbmZvID0gZ2V0U3RhcnRFbmRGcmFtZXMoc3RhcnRUaW1l
LCBlbmRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICBsZXQgc3RhcnRGcmFtZSA9IGZyYW1lSW5mby5z
dGFydEZyYW1lOworICAgIGxldCBlbmRGcmFtZSA9IGZyYW1lSW5mby5lbmRGcmFtZTsKKyAgICBs
ZXQgbGVuZ3RoID0gZW5kRnJhbWUgLSBzdGFydEZyYW1lOworICAgIGxldCBhcnJheSA9IG5ldyBB
cnJheShsZW5ndGgpOworCisgICAgbGV0IHJhdGlvID0gZW5kVmFsdWUgLyBzdGFydFZhbHVlOwor
CisgICAgLy8gdih0KSA9IHYwKih2MS92MCleKCh0LXQwKS8odDEtdDApKQorICAgIGZvciAobGV0
IGsgPSAwOyBrIDwgbGVuZ3RoOyArK2spIHsKKyAgICAgIGxldCB0ID0gTWF0aC5mcm91bmQoKHN0
YXJ0RnJhbWUgKyBrKSAvIHNhbXBsZVJhdGUpOworICAgICAgYXJyYXlba10gPSBNYXRoLmZyb3Vu
ZCgKKyAgICAgICAgICBzdGFydFZhbHVlICogTWF0aC5wb3cocmF0aW8sICh0IC0gc3RhcnRUaW1l
KSAvIGRlbHRhVGltZSkpOwogICAgIH0KIAogICAgIHJldHVybiBhcnJheTsKLX0KKyAgfQogCi1m
dW5jdGlvbiBkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBsZVJhdGUodGltZUNvbnN0YW50LCBz
YW1wbGVSYXRlKQoteworICBmdW5jdGlvbiBkaXNjcmV0ZVRpbWVDb25zdGFudEZvclNhbXBsZVJh
dGUodGltZUNvbnN0YW50LCBzYW1wbGVSYXRlKSB7CiAgICAgcmV0dXJuIDEgLSBNYXRoLmV4cCgt
MSAvIChzYW1wbGVSYXRlICogdGltZUNvbnN0YW50KSk7Ci19Ci0KLS8vIENyZWF0ZSBhIHNpZ25h
bCB0aGF0IHN0YXJ0cyBhdCB8c3RhcnRWYWx1ZXwgYW5kIGV4cG9uZW50aWFsbHkgYXBwcm9hY2hl
cyB0aGUgdGFyZ2V0IHZhbHVlIG9mCi0vLyB8dGFyZ2V0VmFsdWV8LCB1c2luZyBhIHRpbWUgY29u
c3RhbnQgb2YgfHRpbWVDb25zdGFudHwuICBUaGUgcmFtcCBzdGFydHMgYXQgdGltZSB8c3RhcnRU
aW1lfCBhbmQKLS8vIGVuZHMgYXQgfGVuZFRpbWV8LiAgKFRoZSBzdGFydCBhbmQgZW5kIHRpbWVz
IGFyZSBvbmx5IHVzZWQgdG8gY29tcHV0ZSBob3cgbWFueSBzYW1wbGVzIHRvCi0vLyByZXR1cm4u
KQotZnVuY3Rpb24gY3JlYXRlRXhwb25lbnRpYWxBcHByb2FjaEFycmF5KHN0YXJ0VGltZSwgZW5k
VGltZSwgc3RhcnRWYWx1ZSwgdGFyZ2V0VmFsdWUsIHNhbXBsZVJhdGUsIHRpbWVDb25zdGFudCkK
LXsKLSAgICB2YXIgc3RhcnRGcmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKHN0YXJ0VGltZSwgc2Ft
cGxlUmF0ZSk7Ci0gICAgdmFyIGVuZEZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUoZW5kVGltZSwg
c2FtcGxlUmF0ZSk7Ci0gICAgdmFyIGxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFtZTsKLSAg
ICB2YXIgYXJyYXkgPSBuZXcgQXJyYXkobGVuZ3RoKTsKLSAgICB2YXIgYyA9IGRpc2NyZXRlVGlt
ZUNvbnN0YW50Rm9yU2FtcGxlUmF0ZSh0aW1lQ29uc3RhbnQsIHNhbXBsZVJhdGUpOwotCi0gICAg
dmFyIHZhbHVlID0gc3RhcnRWYWx1ZTsKLSAgICAKLSAgICBmb3IgKHZhciBrID0gMDsgayA8IGxl
bmd0aDsgKytrKSB7Ci0gICAgICAgIGFycmF5W2tdID0gdmFsdWU7Ci0gICAgICAgIHZhbHVlICs9
ICh0YXJnZXRWYWx1ZSAtIHZhbHVlKSAqIGM7CisgIH0KKworICAvLyBDcmVhdGUgYSBzaWduYWwg
dGhhdCBzdGFydHMgYXQgfHN0YXJ0VmFsdWV8IGFuZCBleHBvbmVudGlhbGx5IGFwcHJvYWNoZXMK
KyAgLy8gdGhlIHRhcmdldCB2YWx1ZSBvZiB8dGFyZ2V0VmFsdWV8LCB1c2luZyBhIHRpbWUgY29u
c3RhbnQgb2YgfHRpbWVDb25zdGFudHwuCisgIC8vIFRoZSByYW1wIHN0YXJ0cyBhdCB0aW1lIHxz
dGFydFRpbWV8IGFuZCBlbmRzIGF0IHxlbmRUaW1lfC4gIChUaGUgc3RhcnQgYW5kCisgIC8vIGVu
ZCB0aW1lcyBhcmUgb25seSB1c2VkIHRvIGNvbXB1dGUgaG93IG1hbnkgc2FtcGxlcyB0byByZXR1
cm4uKQorICBmdW5jdGlvbiBjcmVhdGVFeHBvbmVudGlhbEFwcHJvYWNoQXJyYXkoCisgICAgICBz
dGFydFRpbWUsIGVuZFRpbWUsIHN0YXJ0VmFsdWUsIHRhcmdldFZhbHVlLCBzYW1wbGVSYXRlLCB0
aW1lQ29uc3RhbnQpIHsKKyAgICBsZXQgc3RhcnRGcmFtZUZsb2F0ID0gc3RhcnRUaW1lICogc2Ft
cGxlUmF0ZTsKKyAgICBsZXQgZnJhbWVJbmZvID0gZ2V0U3RhcnRFbmRGcmFtZXMoc3RhcnRUaW1l
LCBlbmRUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICBsZXQgc3RhcnRGcmFtZSA9IGZyYW1lSW5mby5z
dGFydEZyYW1lOworICAgIGxldCBlbmRGcmFtZSA9IGZyYW1lSW5mby5lbmRGcmFtZTsKKyAgICBs
ZXQgbGVuZ3RoID0gTWF0aC5mbG9vcihlbmRGcmFtZSAtIHN0YXJ0RnJhbWUpOworICAgIGxldCBh
cnJheSA9IG5ldyBBcnJheShsZW5ndGgpOworICAgIGxldCBjID0gZGlzY3JldGVUaW1lQ29uc3Rh
bnRGb3JTYW1wbGVSYXRlKHRpbWVDb25zdGFudCwgc2FtcGxlUmF0ZSk7CisKKyAgICBsZXQgZGVs
dGEgPSBzdGFydFZhbHVlIC0gdGFyZ2V0VmFsdWU7CisKKyAgICAvLyB2KHQpID0gdjEgKyAodjAg
LSB2MSkgKiBleHAoLSh0LXQwKS90YXUpCisgICAgZm9yIChsZXQgayA9IDA7IGsgPCBsZW5ndGg7
ICsraykgeworICAgICAgbGV0IHQgPSAoc3RhcnRGcmFtZSArIGspIC8gc2FtcGxlUmF0ZTsKKyAg
ICAgIGxldCB2YWx1ZSA9CisgICAgICAgICAgdGFyZ2V0VmFsdWUgKyBkZWx0YSAqIE1hdGguZXhw
KC0odCAtIHN0YXJ0VGltZSkgLyB0aW1lQ29uc3RhbnQpOworICAgICAgYXJyYXlba10gPSB2YWx1
ZTsKKyAgICB9CisKKyAgICByZXR1cm4gYXJyYXk7CisgIH0KKworICAvLyBDcmVhdGUgYSBzaW5l
IHdhdmUgb2YgdGhlIHNwZWNpZmllZCBkdXJhdGlvbi4KKyAgZnVuY3Rpb24gY3JlYXRlUmVmZXJl
bmNlU2luZUFycmF5KAorICAgICAgc3RhcnRUaW1lLCBlbmRUaW1lLCBzdGFydFZhbHVlLCBlbmRW
YWx1ZSwgc2FtcGxlUmF0ZSkgeworICAgIC8vIElnbm9yZSB8c3RhcnRWYWx1ZXwgYW5kIHxlbmRW
YWx1ZXwgZm9yIHRoZSBzaW5lIHdhdmUuCisgICAgbGV0IGN1cnZlID0gY3JlYXRlU2luZVdhdmVB
cnJheSgKKyAgICAgICAgZW5kVGltZSAtIHN0YXJ0VGltZSwgZnJlcUh6LCBzaW5lQW1wbGl0dWRl
LCBzYW1wbGVSYXRlKTsKKyAgICAvLyBTYW1wbGUgdGhlIGN1cnZlIGFwcHJvcHJpYXRlbHkuCisg
ICAgbGV0IGZyYW1lSW5mbyA9IGdldFN0YXJ0RW5kRnJhbWVzKHN0YXJ0VGltZSwgZW5kVGltZSwg
c2FtcGxlUmF0ZSk7CisgICAgbGV0IHN0YXJ0RnJhbWUgPSBmcmFtZUluZm8uc3RhcnRGcmFtZTsK
KyAgICBsZXQgZW5kRnJhbWUgPSBmcmFtZUluZm8uZW5kRnJhbWU7CisgICAgbGV0IGxlbmd0aCA9
IE1hdGguZmxvb3IoZW5kRnJhbWUgLSBzdGFydEZyYW1lKTsKKyAgICBsZXQgYXJyYXkgPSBuZXcg
QXJyYXkobGVuZ3RoKTsKKworICAgIC8vIHYodCkgPSBsaW5lYXJseSBpbnRlcnBvbGF0ZSBiZXR3
ZWVuIFZba10gYW5kIFZbayArIDFdIHdoZXJlIGsgPQorICAgIC8vIGZsb29yKChOLTEpL2R1cmF0
aW9uKih0IC0gdDApKQorICAgIGxldCBmID0gKGxlbmd0aCAtIDEpIC8gKGVuZFRpbWUgLSBzdGFy
dFRpbWUpOworCisgICAgZm9yIChsZXQgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgeworICAgICAg
bGV0IHQgPSAoc3RhcnRGcmFtZSArIGspIC8gc2FtcGxlUmF0ZTsKKyAgICAgIGxldCBpbmRleEZs
b2F0ID0gZiAqICh0IC0gc3RhcnRUaW1lKTsKKyAgICAgIGxldCBpbmRleCA9IE1hdGguZmxvb3Io
aW5kZXhGbG9hdCk7CisgICAgICBpZiAoaW5kZXggKyAxIDwgbGVuZ3RoKSB7CisgICAgICAgIGxl
dCB2MCA9IGN1cnZlW2luZGV4XTsKKyAgICAgICAgbGV0IHYxID0gY3VydmVbaW5kZXggKyAxXTsK
KyAgICAgICAgYXJyYXlba10gPSB2MCArICh2MSAtIHYwKSAqIChpbmRleEZsb2F0IC0gaW5kZXgp
OworICAgICAgfSBlbHNlIHsKKyAgICAgICAgYXJyYXlba10gPSBjdXJ2ZVtsZW5ndGggLSAxXTsK
KyAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gYXJyYXk7Ci19Ci0KLS8vIENyZWF0ZSBhIHNp
bmUgd2F2ZSBvZiB0aGUgZ2l2ZW4gZnJlcXVlbmN5IGFuZCBhbXBsaXR1ZGUuICBUaGUgc2luZSB3
YXZlIGlzIG9mZnNldCBieSBoYWxmIHRoZQotLy8gYW1wbGl0dWRlIHNvIHRoYXQgcmVzdWx0IGlz
IGFsd2F5cyBwb3NpdGl2ZS4KLWZ1bmN0aW9uIGNyZWF0ZVNpbmVXYXZlQXJyYXkoZHVyYXRpb25T
ZWNvbmRzLCBmcmVxSHosIGFtcGxpdHVkZSwgc2FtcGxlUmF0ZSkKLXsKLSAgICB2YXIgbGVuZ3Ro
ID0gdGltZVRvU2FtcGxlRnJhbWUoZHVyYXRpb25TZWNvbmRzLCBzYW1wbGVSYXRlKTsKLSAgICB2
YXIgc2lnbmFsID0gbmV3IEZsb2F0MzJBcnJheShsZW5ndGgpOwotICAgIHZhciBvbWVnYSA9IDIg
KiBNYXRoLlBJICogZnJlcUh6IC8gc2FtcGxlUmF0ZTsKLSAgICB2YXIgaGFsZkFtcGxpdHVkZSA9
IGFtcGxpdHVkZSAvIDI7Ci0gICAgCi0gICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW5ndGg7ICsr
aykgewotICAgICAgICBzaWduYWxba10gPSBoYWxmQW1wbGl0dWRlICsgaGFsZkFtcGxpdHVkZSAq
IE1hdGguc2luKG9tZWdhICogayk7CisgIH0KKworICAvLyBDcmVhdGUgYSBzaW5lIHdhdmUgb2Yg
dGhlIGdpdmVuIGZyZXF1ZW5jeSBhbmQgYW1wbGl0dWRlLiAgVGhlIHNpbmUgd2F2ZSBpcworICAv
LyBvZmZzZXQgYnkgaGFsZiB0aGUgYW1wbGl0dWRlIHNvIHRoYXQgcmVzdWx0IGlzIGFsd2F5cyBw
b3NpdGl2ZS4KKyAgZnVuY3Rpb24gY3JlYXRlU2luZVdhdmVBcnJheShkdXJhdGlvblNlY29uZHMs
IGZyZXFIeiwgYW1wbGl0dWRlLCBzYW1wbGVSYXRlKSB7CisgICAgbGV0IGxlbmd0aCA9IHRpbWVU
b1NhbXBsZUZyYW1lKGR1cmF0aW9uU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgbGV0IHNpZ25h
bCA9IG5ldyBGbG9hdDMyQXJyYXkobGVuZ3RoKTsKKyAgICBsZXQgb21lZ2EgPSAyICogTWF0aC5Q
SSAqIGZyZXFIeiAvIHNhbXBsZVJhdGU7CisgICAgbGV0IGhhbGZBbXBsaXR1ZGUgPSBhbXBsaXR1
ZGUgLyAyOworCisgICAgZm9yIChsZXQgayA9IDA7IGsgPCBsZW5ndGg7ICsraykgeworICAgICAg
c2lnbmFsW2tdID0gaGFsZkFtcGxpdHVkZSArIGhhbGZBbXBsaXR1ZGUgKiBNYXRoLnNpbihvbWVn
YSAqIGspOwogICAgIH0KIAogICAgIHJldHVybiBzaWduYWw7Ci19CisgIH0KIAotLy8gUmV0dXJu
IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHN0YXJ0aW5nIHZhbHVlIGFuZCB0aGUgZW5kaW5n
IHZhbHVlIGZvciB0aW1lIGludGVydmFsCi0vLyB8dGltZUludGVydmFsSW5kZXh8LiAgV2UgYWx0
ZXJuYXRlIGJldHdlZW4gYW4gZW5kIHZhbHVlIHRoYXQgaXMgYWJvdmUgb3IgYmVsb3cgdGhlIHN0
YXJ0aW5nCi0vLyB2YWx1ZS4KLWZ1bmN0aW9uIGVuZFZhbHVlRGVsdGEodGltZUludGVydmFsSW5k
ZXgpCi17CisgIC8vIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBzdGFydGluZyB2
YWx1ZSBhbmQgdGhlIGVuZGluZyB2YWx1ZSBmb3IKKyAgLy8gdGltZSBpbnRlcnZhbCB8dGltZUlu
dGVydmFsSW5kZXh8LiAgV2UgYWx0ZXJuYXRlIGJldHdlZW4gYW4gZW5kIHZhbHVlIHRoYXQKKyAg
Ly8gaXMgYWJvdmUgb3IgYmVsb3cgdGhlIHN0YXJ0aW5nIHZhbHVlLgorICBmdW5jdGlvbiBlbmRW
YWx1ZURlbHRhKHRpbWVJbnRlcnZhbEluZGV4KSB7CiAgICAgaWYgKHRpbWVJbnRlcnZhbEluZGV4
ICYgMSkgewotICAgICAgICByZXR1cm4gLXN0YXJ0RW5kVmFsdWVDaGFuZ2U7CisgICAgICByZXR1
cm4gLXN0YXJ0RW5kVmFsdWVDaGFuZ2U7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcmV0dXJuIHN0
YXJ0RW5kVmFsdWVDaGFuZ2U7CisgICAgICByZXR1cm4gc3RhcnRFbmRWYWx1ZUNoYW5nZTsKICAg
ICB9Ci19Ci0KLS8vIFJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBzdGFydGluZyB2
YWx1ZSBhdCB8dGltZUludGVydmFsSW5kZXh8IGFuZCB0aGUgc3RhcnRpbmcgdmFsdWUgYXQKLS8v
IHRoZSBuZXh0IHRpbWUgaW50ZXJ2YWwuICBTaW5jZSB3ZSBzdGFydGVkIGF0IGEgbGFyZ2UgaW5p
dGlhbCB2YWx1ZSwgd2UgZGVjcmVhc2UgdGhlIHZhbHVlIGF0IGVhY2gKLS8vIHRpbWUgaW50ZXJ2
YWwuCi1mdW5jdGlvbiB2YWx1ZVVwZGF0ZSh0aW1lSW50ZXJ2YWxJbmRleCkKLXsKKyAgfQorCisg
IC8vIFJlbGF0aXZlIGVycm9yIG1ldHJpYworICBmdW5jdGlvbiByZWxhdGl2ZUVycm9yTWV0cmlj
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAgICByZXR1cm4gKGFjdHVhbCAtIGV4cGVjdGVkKSAvIE1h
dGguYWJzKGV4cGVjdGVkKTsKKyAgfQorCisgIC8vIERpZmZlcmVuY2UgbWV0cmljCisgIGZ1bmN0
aW9uIGRpZmZlcmVuY2VFcnJvck1ldHJpYyhhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgcmV0dXJu
IGFjdHVhbCAtIGV4cGVjdGVkOworICB9CisKKyAgLy8gUmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJl
dHdlZW4gdGhlIHN0YXJ0aW5nIHZhbHVlIGF0IHx0aW1lSW50ZXJ2YWxJbmRleHwgYW5kCisgIC8v
IHRoZSBzdGFydGluZyB2YWx1ZSBhdCB0aGUgbmV4dCB0aW1lIGludGVydmFsLiAgU2luY2Ugd2Ug
c3RhcnRlZCBhdCBhIGxhcmdlCisgIC8vIGluaXRpYWwgdmFsdWUsIHdlIGRlY3JlYXNlIHRoZSB2
YWx1ZSBhdCBlYWNoIHRpbWUgaW50ZXJ2YWwuCisgIGZ1bmN0aW9uIHZhbHVlVXBkYXRlKHRpbWVJ
bnRlcnZhbEluZGV4KSB7CiAgICAgcmV0dXJuIC1zdGFydGluZ1ZhbHVlRGVsdGE7Ci19Ci0KLS8v
IENvbXBhcmUgYSBzZWN0aW9uIG9mIHRoZSByZW5kZXJlZCBkYXRhIGFnYWluc3Qgb3VyIGV4cGVj
dGVkIHNpZ25hbC4KLWZ1bmN0aW9uIGNvbXBhcmVQYXJ0aWFsU2lnbmFscyhyZW5kZXJlZCwgZXhw
ZWN0ZWRGdW5jdGlvbiwgc3RhcnRUaW1lLCBlbmRUaW1lLCB2YWx1ZUluZm8sIHNhbXBsZVJhdGUp
Ci17Ci0gICAgdmFyIHN0YXJ0U2FtcGxlID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBz
YW1wbGVSYXRlKTsKLSAgICB2YXIgZXhwZWN0ZWQgPSBleHBlY3RlZEZ1bmN0aW9uKHN0YXJ0VGlt
ZSwgZW5kVGltZSwgdmFsdWVJbmZvLnN0YXJ0VmFsdWUsIHZhbHVlSW5mby5lbmRWYWx1ZSwgc2Ft
cGxlUmF0ZSwgdGltZUNvbnN0YW50KTsKLQotICAgIHZhciBuID0gZXhwZWN0ZWQubGVuZ3RoOwot
ICAgIHZhciBtYXhFcnJvciA9IC0xOwotICAgIHZhciBtYXhFcnJvckluZGV4ID0gLTE7Ci0gICAg
Ci0gICAgZm9yICh2YXIgayA9IDA7IGsgPCBuOyArK2spIHsKLSAgICAgICAgLy8gTWFrZSBzdXJl
IHdlIGRvbid0IHBhc3MgdGhlc2UgdGVzdHMgYmVjYXVzZSBhIE5hTiBoYXMgYmVlbiBnZW5lcmF0
ZWQgaW4gZWl0aGVyIHRoZQotICAgICAgICAvLyByZW5kZXJlZCBkYXRhIG9yIHRoZSByZWZlcmVu
Y2UgZGF0YS4KLSAgICAgICAgaWYgKCFpc1ZhbGlkTnVtYmVyKHJlbmRlcmVkW3N0YXJ0U2FtcGxl
ICsga10pKSB7Ci0gICAgICAgICAgICBtYXhFcnJvciA9IEluZmluaXR5OwotICAgICAgICAgICAg
bWF4RXJyb3JJbmRleCA9IHN0YXJ0U2FtcGxlICsgazsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ik5hTiBvciBpbmZpbml0eSBmb3IgcmVuZGVyZWQgZGF0YSBhdCAiICsgbWF4RXJyb3JJbmRleCk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWlzVmFsaWROdW1i
ZXIoZXhwZWN0ZWRba10pKSB7Ci0gICAgICAgICAgICBtYXhFcnJvciA9IEluZmluaXR5OwotICAg
ICAgICAgICAgbWF4RXJyb3JJbmRleCA9IHN0YXJ0U2FtcGxlICsgazsKLSAgICAgICAgICAgIHRl
c3RGYWlsZWQoIk5hbiBvciBpbmZpbml0eSBmb3IgcmVmZXJlbmNlIGRhdGEgYXQgIiArIG1heEVy
cm9ySW5kZXgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGVy
cm9yID0gTWF0aC5hYnMocmVuZGVyZWRbc3RhcnRTYW1wbGUgKyBrXSAtIGV4cGVjdGVkW2tdKTsK
LSAgICAgICAgaWYgKGVycm9yID4gbWF4RXJyb3IpIHsKLSAgICAgICAgICAgIG1heEVycm9yID0g
ZXJyb3I7Ci0gICAgICAgICAgICBtYXhFcnJvckluZGV4ID0gazsKLSAgICAgICAgfQorICB9CisK
KyAgLy8gQ29tcGFyZSBhIHNlY3Rpb24gb2YgdGhlIHJlbmRlcmVkIGRhdGEgYWdhaW5zdCBvdXIg
ZXhwZWN0ZWQgc2lnbmFsLgorICBmdW5jdGlvbiBjb21wYXJlUGFydGlhbFNpZ25hbHMoCisgICAg
ICBzaG91bGQsIHJlbmRlcmVkLCBleHBlY3RlZEZ1bmN0aW9uLCBzdGFydFRpbWUsIGVuZFRpbWUs
IHZhbHVlSW5mbywKKyAgICAgIHNhbXBsZVJhdGUsIGVycm9yTWV0cmljKSB7CisgICAgbGV0IHN0
YXJ0U2FtcGxlID0gdGltZVRvU2FtcGxlRnJhbWUoc3RhcnRUaW1lLCBzYW1wbGVSYXRlKTsKKyAg
ICBsZXQgZXhwZWN0ZWQgPSBleHBlY3RlZEZ1bmN0aW9uKAorICAgICAgICBzdGFydFRpbWUsIGVu
ZFRpbWUsIHZhbHVlSW5mby5zdGFydFZhbHVlLCB2YWx1ZUluZm8uZW5kVmFsdWUsCisgICAgICAg
IHNhbXBsZVJhdGUsIHRpbWVDb25zdGFudCk7CisKKyAgICBsZXQgbiA9IGV4cGVjdGVkLmxlbmd0
aDsKKyAgICBsZXQgbWF4RXJyb3IgPSAtMTsKKyAgICBsZXQgbWF4RXJyb3JJbmRleCA9IC0xOwor
CisgICAgZm9yIChsZXQgayA9IDA7IGsgPCBuOyArK2spIHsKKyAgICAgIC8vIE1ha2Ugc3VyZSB3
ZSBkb24ndCBwYXNzIHRoZXNlIHRlc3RzIGJlY2F1c2UgYSBOYU4gaGFzIGJlZW4gZ2VuZXJhdGVk
IGluCisgICAgICAvLyBlaXRoZXIgdGhlCisgICAgICAvLyByZW5kZXJlZCBkYXRhIG9yIHRoZSBy
ZWZlcmVuY2UgZGF0YS4KKyAgICAgIGlmICghaXNWYWxpZE51bWJlcihyZW5kZXJlZFtzdGFydFNh
bXBsZSArIGtdKSkgeworICAgICAgICBtYXhFcnJvciA9IEluZmluaXR5OworICAgICAgICBtYXhF
cnJvckluZGV4ID0gc3RhcnRTYW1wbGUgKyBrOworICAgICAgICBzaG91bGQoCisgICAgICAgICAg
ICBpc1ZhbGlkTnVtYmVyKHJlbmRlcmVkW3N0YXJ0U2FtcGxlICsga10pLAorICAgICAgICAgICAg
J05hTiBvciBpbmZpbml0eSBmb3IgcmVuZGVyZWQgZGF0YSBhdCAnICsgbWF4RXJyb3JJbmRleCkK
KyAgICAgICAgICAgIC5iZVRydWUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBp
ZiAoIWlzVmFsaWROdW1iZXIoZXhwZWN0ZWRba10pKSB7CisgICAgICAgIG1heEVycm9yID0gSW5m
aW5pdHk7CisgICAgICAgIG1heEVycm9ySW5kZXggPSBzdGFydFNhbXBsZSArIGs7CisgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgIGlzVmFsaWROdW1iZXIoZXhwZWN0ZWRba10pLAorICAgICAg
ICAgICAgJ05hTiBvciBpbmZpbml0eSBmb3IgcmVuZGVyZWQgZGF0YSBhdCAnICsgbWF4RXJyb3JJ
bmRleCkKKyAgICAgICAgICAgIC5iZVRydWUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisg
ICAgICBsZXQgZXJyb3IgPSBNYXRoLmFicyhlcnJvck1ldHJpYyhyZW5kZXJlZFtzdGFydFNhbXBs
ZSArIGtdLCBleHBlY3RlZFtrXSkpOworICAgICAgaWYgKGVycm9yID4gbWF4RXJyb3IpIHsKKyAg
ICAgICAgbWF4RXJyb3IgPSBlcnJvcjsKKyAgICAgICAgbWF4RXJyb3JJbmRleCA9IGs7CisgICAg
ICB9CiAgICAgfQogCi0gICAgcmV0dXJuIHttYXhFcnJvciA6IG1heEVycm9yLCBpbmRleCA6IG1h
eEVycm9ySW5kZXh9OwotfQorICAgIHJldHVybiB7bWF4RXJyb3I6IG1heEVycm9yLCBpbmRleDog
bWF4RXJyb3JJbmRleCwgZXhwZWN0ZWQ6IGV4cGVjdGVkfTsKKyAgfQogCi0vLyBGaW5kIHRoZSBk
aXNjb250aW51aXRpZXMgaW4gdGhlIGRhdGEgYW5kIGNvbXBhcmUgdGhlIGxvY2F0aW9ucyBvZiB0
aGUgZGlzY29udGludWl0aWVzIHdpdGggdGhlCi0vLyB0aW1lcyB0aGF0IGRlZmluZSB0aGUgdGlt
ZSBpbnRlcnZhbHMuIFRoZXJlIGlzIGEgZGlzY29udGludWl0eSBpZiB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuCi0vLyBzdWNjZXNzaXZlIHNhbXBsZXMgZXhjZWVkcyB0aGUgdGhyZXNob2xkLgotZnVu
Y3Rpb24gdmVyaWZ5RGlzY29udGludWl0aWVzKHZhbHVlcywgdGltZXMsIHRocmVzaG9sZCkKLXsK
LSAgICB2YXIgbiA9IHZhbHVlcy5sZW5ndGg7Ci0gICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAg
IHZhciBiYWRMb2NhdGlvbnMgPSAwOwotICAgIHZhciBicmVha3MgPSBbXTsKKyAgLy8gRmluZCB0
aGUgZGlzY29udGludWl0aWVzIGluIHRoZSBkYXRhIGFuZCBjb21wYXJlIHRoZSBsb2NhdGlvbnMg
b2YgdGhlCisgIC8vIGRpc2NvbnRpbnVpdGllcyB3aXRoIHRoZSB0aW1lcyB0aGF0IGRlZmluZSB0
aGUgdGltZSBpbnRlcnZhbHMuIFRoZXJlIGlzIGEKKyAgLy8gZGlzY29udGludWl0eSBpZiB0aGUg
ZGlmZmVyZW5jZSBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc2FtcGxlcyBleGNlZWRzIHRoZQorICAvLyB0
aHJlc2hvbGQuCisgIGZ1bmN0aW9uIHZlcmlmeURpc2NvbnRpbnVpdGllcyhzaG91bGQsIHZhbHVl
cywgdGltZXMsIHRocmVzaG9sZCkgeworICAgIGxldCBuID0gdmFsdWVzLmxlbmd0aDsKKyAgICBs
ZXQgc3VjY2VzcyA9IHRydWU7CisgICAgbGV0IGJhZExvY2F0aW9ucyA9IDA7CisgICAgbGV0IGJy
ZWFrcyA9IFtdOwogCiAgICAgLy8gRmluZCBkaXNjb250aW51aXRpZXMuCi0gICAgZm9yICh2YXIg
ayA9IDE7IGsgPCBuOyArK2spIHsKLSAgICAgICAgaWYgKE1hdGguYWJzKHZhbHVlc1trXSAtIHZh
bHVlc1trIC0gMV0pID4gdGhyZXNob2xkKSB7Ci0gICAgICAgICAgICBicmVha3MucHVzaChrKTsK
LSAgICAgICAgfQorICAgIGZvciAobGV0IGsgPSAxOyBrIDwgbjsgKytrKSB7CisgICAgICBpZiAo
TWF0aC5hYnModmFsdWVzW2tdIC0gdmFsdWVzW2sgLSAxXSkgPiB0aHJlc2hvbGQpIHsKKyAgICAg
ICAgYnJlYWtzLnB1c2goayk7CisgICAgICB9CiAgICAgfQogCi0gICAgdmFyIHRlc3RDb3VudDsK
KyAgICBsZXQgdGVzdENvdW50OwogCi0gICAgLy8gSWYgdGhlcmUgYXJlIG51bWJlck9mVGVzdHMg
aW50ZXJ2YWxzLCB0aGVyZSBhcmUgb25seSBudW1iZXJPZlRlc3RzIC0gMSBpbnRlcm5hbCBpbnRl
cnZhbAotICAgIC8vIGJvdW5kYXJpZXMuIEhlbmNlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaXNj
b250aW51dGllcyB3ZSBleHBlY3QgdG8gZmluZCBpcyBudW1iZXJPZlRlc3RzIC0KLSAgICAvLyAx
LiBJZiB3ZSBmaW5kIG1vcmUgdGhhbiB0aGF0LCB3ZSBoYXZlIG5vIHJlZmVyZW5jZSB0byBjb21w
YXJlIGFnYWluc3QuIFdlIGFsc28gYXNzdW1lIHRoYXQKLSAgICAvLyB0aGUgYWN0dWFsIGRpc2Nv
bnRpbnVpdGllcyBhcmUgY2xvc2UgdG8gdGhlIGV4cGVjdGVkIG9uZXMuCisgICAgLy8gSWYgdGhl
cmUgYXJlIG51bWJlck9mVGVzdHMgaW50ZXJ2YWxzLCB0aGVyZSBhcmUgb25seSBudW1iZXJPZlRl
c3RzIC0gMQorICAgIC8vIGludGVybmFsIGludGVydmFsIGJvdW5kYXJpZXMuIEhlbmNlIHRoZSBt
YXhpbXVtIG51bWJlciBvZiBkaXNjb250aW51dGllcworICAgIC8vIHdlIGV4cGVjdCB0byBmaW5k
IGlzIG51bWJlck9mVGVzdHMgLSAxLiBJZiB3ZSBmaW5kIG1vcmUgdGhhbiB0aGF0LCB3ZQorICAg
IC8vIGhhdmUgbm8gcmVmZXJlbmNlIHRvIGNvbXBhcmUgYWdhaW5zdC4gV2UgYWxzbyBhc3N1bWUg
dGhhdCB0aGUgYWN0dWFsCisgICAgLy8gZGlzY29udGludWl0aWVzIGFyZSBjbG9zZSB0byB0aGUg
ZXhwZWN0ZWQgb25lcy4KICAgICAvLwotICAgIC8vIFRoaXMgaXMganVzdCBhIHNhbml0eSBjaGVj
ayB3aGVuIHNvbWV0aGluZyBnb2VzIHJlYWxseSB3cm9uZy4gIEZvciBleGFtcGxlLCBpZiB0aGUg
dGhyZXNob2xkCi0gICAgLy8gaXMgdG9vIGxvdywgZXZlcnkgc2FtcGxlIGZyYW1lIGxvb2tzIGxp
a2UgYSBkaXNjb250aW51aXR5LgorICAgIC8vIFRoaXMgaXMganVzdCBhIHNhbml0eSBjaGVjayB3
aGVuIHNvbWV0aGluZyBnb2VzIHJlYWxseSB3cm9uZy4gIEZvcgorICAgIC8vIGV4YW1wbGUsIGlm
IHRoZSB0aHJlc2hvbGQgaXMgdG9vIGxvdywgZXZlcnkgc2FtcGxlIGZyYW1lIGxvb2tzIGxpa2Ug
YQorICAgIC8vIGRpc2NvbnRpbnVpdHkuCiAgICAgaWYgKGJyZWFrcy5sZW5ndGggPj0gbnVtYmVy
T2ZUZXN0cykgewotICAgICAgICB0ZXN0Q291bnQgPSBudW1iZXJPZlRlc3RzIC0gMTsKLSAgICAg
ICAgdGVzdEZhaWxlZCgiRm91bmQgbW9yZSBkaXNjb250aW51aXRpZXMgKCIgKyBicmVha3MubGVu
Z3RoICsgIikgdGhhbiBleHBlY3RlZC4gIE9ubHkgY29tcGFyaW5nIGZpcnN0ICIgKyB0ZXN0Q291
bnQgKyAiZGlzY29udGludWl0aWVzLiIpOwotICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAg
ICB0ZXN0Q291bnQgPSBudW1iZXJPZlRlc3RzIC0gMTsKKyAgICAgIHNob3VsZChicmVha3MubGVu
Z3RoLCAnTnVtYmVyIG9mIGRpc2NvbnRpbnVpdGllcycpCisgICAgICAgICAgLmJlTGVzc1RoYW4o
bnVtYmVyT2ZUZXN0cyk7CisgICAgICBzdWNjZXNzID0gZmFsc2U7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgdGVzdENvdW50ID0gYnJlYWtzLmxlbmd0aDsKKyAgICAgIHRlc3RDb3VudCA9IGJyZWFr
cy5sZW5ndGg7CiAgICAgfQotICAgIAotICAgIC8vIENvbXBhcmUgdGhlIGxvY2F0aW9uIG9mIGVh
Y2ggZGlzY29udGludWl0eSB3aXRoIHRoZSBlbmQgdGltZSBvZiBlYWNoIGludGVydmFsLiAoVGhl
cmUgaXMgbm8KLSAgICAvLyBkaXNjb250aW51aXR5IGF0IHRoZSBzdGFydCBvZiB0aGUgc2lnbmFs
LikKLSAgICBmb3IgKHZhciBrID0gMDsgayA8IHRlc3RDb3VudDsgKytrKSB7Ci0gICAgICAgIHZh
ciBleHBlY3RlZFNhbXBsZUZyYW1lID0gdGltZVRvU2FtcGxlRnJhbWUodGltZXNbayArIDFdLCBz
YW1wbGVSYXRlKTsKLSAgICAgICAgaWYgKGJyZWFrc1trXSAhPSBleHBlY3RlZFNhbXBsZUZyYW1l
KSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICArK2JhZExvY2F0
aW9uczsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkV4cGVjdGVkIGRpc2NvbnRpbnVpdHkgYXQg
IiArIGV4cGVjdGVkU2FtcGxlRnJhbWUgKyAiIGJ1dCBnb3QgIiArIGJyZWFrc1trXSk7Ci0gICAg
ICAgIH0KKworICAgIC8vIENvbXBhcmUgdGhlIGxvY2F0aW9uIG9mIGVhY2ggZGlzY29udGludWl0
eSB3aXRoIHRoZSBlbmQgdGltZSBvZiBlYWNoCisgICAgLy8gaW50ZXJ2YWwuIChUaGVyZSBpcyBu
byBkaXNjb250aW51aXR5IGF0IHRoZSBzdGFydCBvZiB0aGUgc2lnbmFsLikKKyAgICBmb3IgKGxl
dCBrID0gMDsgayA8IHRlc3RDb3VudDsgKytrKSB7CisgICAgICBsZXQgZXhwZWN0ZWRTYW1wbGVG
cmFtZSA9IHRpbWVUb1NhbXBsZUZyYW1lKHRpbWVzW2sgKyAxXSwgc2FtcGxlUmF0ZSk7CisgICAg
ICBpZiAoYnJlYWtzW2tdICE9IGV4cGVjdGVkU2FtcGxlRnJhbWUpIHsKKyAgICAgICAgc3VjY2Vz
cyA9IGZhbHNlOworICAgICAgICArK2JhZExvY2F0aW9uczsKKyAgICAgICAgc2hvdWxkKGJyZWFr
c1trXSwgJ0Rpc2NvbnRpbnVpdHkgYXQgaW5kZXgnKQorICAgICAgICAgICAgLmJlRXF1YWxUbyhl
eHBlY3RlZFNhbXBsZUZyYW1lKTsKKyAgICAgIH0KICAgICB9CiAKICAgICBpZiAoYmFkTG9jYXRp
b25zKSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoYmFkTG9jYXRpb25zICsgIiBkaXNjb250aW51aXRp
ZXMgYXQgaW5jb3JyZWN0IGxvY2F0aW9ucyIpOwotICAgICAgICBzdWNjZXNzID0gZmFsc2U7Cisg
ICAgICBzaG91bGQoYmFkTG9jYXRpb25zLCAnTnVtYmVyIG9mIGRpc2NvbnRpbnVpdGVzIGF0IGlu
Y29ycmVjdCBsb2NhdGlvbnMnKQorICAgICAgICAgIC5iZUVxdWFsVG8oMCk7CisgICAgICBzdWNj
ZXNzID0gZmFsc2U7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGJyZWFrcy5sZW5ndGggPT0g
bnVtYmVyT2ZUZXN0cyAtIDEpIHsKLSAgICAgICAgICAgIHRlc3RQYXNzZWQoIkFsbCAiICsgbnVt
YmVyT2ZUZXN0cyArICIgdGVzdHMgc3RhcnRlZCBhbmQgZW5kZWQgYXQgdGhlIGNvcnJlY3QgdGlt
ZS4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRlc3RGYWlsZWQoIkZvdW5kICIg
KyBicmVha3MubGVuZ3RoICsgIiBkaXNjb250aW51aXRpZXMgYnV0IGV4cGVjdGVkICIgKyAobnVt
YmVyT2ZUZXN0cyAtIDEpKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAg
fQorICAgICAgc2hvdWxkKAorICAgICAgICAgIGJyZWFrcy5sZW5ndGggKyAxLAorICAgICAgICAg
ICdOdW1iZXIgb2YgdGVzdHMgc3RhcnRlZCBhbmQgZW5kZWQgYXQgdGhlIGNvcnJlY3QgdGltZScp
CisgICAgICAgICAgLmJlRXF1YWxUbyhudW1iZXJPZlRlc3RzKTsKICAgICB9Ci0gICAgCisKICAg
ICByZXR1cm4gc3VjY2VzczsKLX0KLQotLy8gQ29tcGFyZSB0aGUgcmVuZGVyZWQgZGF0YSB3aXRo
IHRoZSBleHBlY3RlZCBkYXRhLgotLy8KLS8vIHRlc3ROYW1lIC0gc3RyaW5nIGRlc2NyaWJpbmcg
dGhlIHRlc3QKLS8vCi0vLyBtYXhFcnJvciAtIG1heGltdW0gYWxsb3dlZCBkaWZmZXJlbmNlIGJl
dHdlZW4gdGhlIHJlbmRlcmVkIGRhdGEgYW5kIHRoZSBleHBlY3RlZCBkYXRhCi0vLwotLy8gcmVu
ZGVyZXJkRGF0YSAtIGFycmF5IGNvbnRhaW5pbmcgdGhlIHJlbmRlcmVkIChhY3R1YWwpIGRhdGEK
LS8vCi0vLyBleHBlY3RlZEZ1bmN0aW9uIC0gZnVuY3Rpb24gdG8gY29tcHV0ZSB0aGUgZXhwZWN0
ZWQgZGF0YQotLy8KLS8vIHRpbWVWYWx1ZUluZm8gLSBhcnJheSBjb250YWluaW5nIGluZm9ybWF0
aW9uIGFib3V0IHRoZSBzdGFydCBhbmQgZW5kIHRpbWVzIGFuZCB0aGUgc3RhcnQgYW5kIGVuZAot
Ly8gdmFsdWVzIG9mIGVhY2ggaW50ZXJ2YWwuCi0vLwotLy8gYnJlYWtUaHJlc2hvbGQgLSB0aHJl
c2hvbGQgdG8gdXNlIGZvciBkZXRlcm1pbmluZyBkaXNjb250aW51aXRpZXMuCi1mdW5jdGlvbiBj
b21wYXJlU2lnbmFscyh0ZXN0TmFtZSwgbWF4RXJyb3IsIHJlbmRlcmVkRGF0YSwgZXhwZWN0ZWRG
dW5jdGlvbiwgdGltZVZhbHVlSW5mbywgYnJlYWtUaHJlc2hvbGQpCi17Ci0gICAgdmFyIHN1Y2Nl
c3MgPSB0cnVlOwotICAgIHZhciBmYWlsZWRUZXN0Q291bnQgPSAwOwotICAgIHZhciB0aW1lcyA9
IHRpbWVWYWx1ZUluZm8udGltZXM7Ci0gICAgdmFyIHZhbHVlcyA9IHRpbWVWYWx1ZUluZm8udmFs
dWVzOwotICAgIHZhciBuID0gdmFsdWVzLmxlbmd0aDsKLQotICAgIHN1Y2Nlc3MgPSB2ZXJpZnlE
aXNjb250aW51aXRpZXMocmVuZGVyZWREYXRhLCB0aW1lcywgYnJlYWtUaHJlc2hvbGQpOwotCi0g
ICAgZm9yICh2YXIgayA9IDA7IGsgPCBuOyArK2spIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IGNv
bXBhcmVQYXJ0aWFsU2lnbmFscyhyZW5kZXJlZERhdGEsIGV4cGVjdGVkRnVuY3Rpb24sIHRpbWVz
W2tdLCB0aW1lc1trICsgMV0sIHZhbHVlc1trXSwgc2FtcGxlUmF0ZSk7Ci0KLSAgICAgICAgaWYg
KHJlc3VsdC5tYXhFcnJvciA+IG1heEVycm9yKSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJJ
bmNvcnJlY3QgdmFsdWUgZm9yIHRlc3QgIiArIGsgKyAiLiBNYXggZXJyb3IgPSAiICsgcmVzdWx0
Lm1heEVycm9yICsgIiBhdCBvZmZzZXQgIiArIChyZXN1bHQuaW5kZXggKyB0aW1lVG9TYW1wbGVG
cmFtZSh0aW1lc1trXSwgc2FtcGxlUmF0ZSkpKTsKLSAgICAgICAgICAgICsrZmFpbGVkVGVzdENv
dW50OwotICAgICAgICB9CisgIH0KKworICAvLyBDb21wYXJlIHRoZSByZW5kZXJlZCBkYXRhIHdp
dGggdGhlIGV4cGVjdGVkIGRhdGEuCisgIC8vCisgIC8vIHRlc3ROYW1lIC0gc3RyaW5nIGRlc2Ny
aWJpbmcgdGhlIHRlc3QKKyAgLy8KKyAgLy8gbWF4RXJyb3IgLSBtYXhpbXVtIGFsbG93ZWQgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHRoZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUKKyAgLy8gZXhwZWN0ZWQg
ZGF0YQorICAvLworICAvLyByZW5kZXJlcmREYXRhIC0gYXJyYXkgY29udGFpbmluZyB0aGUgcmVu
ZGVyZWQgKGFjdHVhbCkgZGF0YQorICAvLworICAvLyBleHBlY3RlZEZ1bmN0aW9uIC0gZnVuY3Rp
b24gdG8gY29tcHV0ZSB0aGUgZXhwZWN0ZWQgZGF0YQorICAvLworICAvLyB0aW1lVmFsdWVJbmZv
IC0gYXJyYXkgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhcnQgYW5kIGVuZCB0
aW1lcworICAvLyBhbmQgdGhlIHN0YXJ0IGFuZCBlbmQgdmFsdWVzIG9mIGVhY2ggaW50ZXJ2YWwu
CisgIC8vCisgIC8vIGJyZWFrVGhyZXNob2xkIC0gdGhyZXNob2xkIHRvIHVzZSBmb3IgZGV0ZXJt
aW5pbmcgZGlzY29udGludWl0aWVzLgorICBmdW5jdGlvbiBjb21wYXJlU2lnbmFscygKKyAgICAg
IHNob3VsZCwgdGVzdE5hbWUsIG1heEVycm9yLCByZW5kZXJlZERhdGEsIGV4cGVjdGVkRnVuY3Rp
b24sIHRpbWVWYWx1ZUluZm8sCisgICAgICBicmVha1RocmVzaG9sZCwgZXJyb3JNZXRyaWMpIHsK
KyAgICBsZXQgc3VjY2VzcyA9IHRydWU7CisgICAgbGV0IGZhaWxlZFRlc3RDb3VudCA9IDA7Cisg
ICAgbGV0IHRpbWVzID0gdGltZVZhbHVlSW5mby50aW1lczsKKyAgICBsZXQgdmFsdWVzID0gdGlt
ZVZhbHVlSW5mby52YWx1ZXM7CisgICAgbGV0IG4gPSB2YWx1ZXMubGVuZ3RoOworICAgIGxldCBl
eHBlY3RlZFNpZ25hbCA9IFtdOworCisgICAgc3VjY2VzcyA9CisgICAgICAgIHZlcmlmeURpc2Nv
bnRpbnVpdGllcyhzaG91bGQsIHJlbmRlcmVkRGF0YSwgdGltZXMsIGJyZWFrVGhyZXNob2xkKTsK
KworICAgIGZvciAobGV0IGsgPSAwOyBrIDwgbjsgKytrKSB7CisgICAgICBsZXQgcmVzdWx0ID0g
Y29tcGFyZVBhcnRpYWxTaWduYWxzKAorICAgICAgICAgIHNob3VsZCwgcmVuZGVyZWREYXRhLCBl
eHBlY3RlZEZ1bmN0aW9uLCB0aW1lc1trXSwgdGltZXNbayArIDFdLAorICAgICAgICAgIHZhbHVl
c1trXSwgc2FtcGxlUmF0ZSwgZXJyb3JNZXRyaWMpOworCisgICAgICBleHBlY3RlZFNpZ25hbCA9
CisgICAgICAgICAgZXhwZWN0ZWRTaWduYWwuY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKHJlc3VsdC5leHBlY3RlZCkpOworCisgICAgICBzaG91bGQoCisgICAgICAgICAgcmVzdWx0
Lm1heEVycm9yLAorICAgICAgICAgICdNYXggZXJyb3IgZm9yIHRlc3QgJyArIGsgKyAnIGF0IG9m
ZnNldCAnICsKKyAgICAgICAgICAgICAgKHJlc3VsdC5pbmRleCArIHRpbWVUb1NhbXBsZUZyYW1l
KHRpbWVzW2tdLCBzYW1wbGVSYXRlKSkpCisgICAgICAgICAgLmJlTGVzc1RoYW5PckVxdWFsVG8o
bWF4RXJyb3IpOwogICAgIH0KIAotICAgIGlmIChmYWlsZWRUZXN0Q291bnQpIHsKLSAgICAgICAg
dGVzdEZhaWxlZChmYWlsZWRUZXN0Q291bnQgKyAiIHRlc3RzIGZhaWxlZCBvdXQgb2YgIiArIG4p
OwotICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdFBh
c3NlZCgiQWxsICIgKyBuICsgIiB0ZXN0cyBwYXNzZWQgd2l0aGluIGFuIGFjY2VwdGFibGUgdG9s
ZXJhbmNlLiIpOwotICAgIH0KLSAgICAgIAotICAgIGlmIChzdWNjZXNzKSB7Ci0gICAgICAgIHRl
c3RQYXNzZWQoIkF1ZGlvUGFyYW0gIiArIHRlc3ROYW1lICsgIiB0ZXN0IHBhc3NlZC4iKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVkKCJBdWRpb1BhcmFtICIgKyB0ZXN0TmFtZSAr
ICIgdGVzdCBmYWlsZWQuIik7Ci0gICAgfQotfQotCi0vLyBDcmVhdGUgYSBmdW5jdGlvbiB0byB0
ZXN0IHRoZSByZW5kZXJlZCBkYXRhIHdpdGggdGhlIHJlZmVyZW5jZSBkYXRhLgotLy8KLS8vIHRl
c3ROYW1lIC0gc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHRlc3QKLS8vCi0vLyBlcnJvciAtIG1heCBh
bGxvd2VkIGVycm9yIGJldHdlZW4gcmVuZGVyZWQgZGF0YSBhbmQgdGhlIHJlZmVyZW5jZSBkYXRh
LgotLy8KLS8vIHJlZmVyZW5jZUZ1bmN0aW9uIC0gZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhl
IHJlZmVyZW5jZSBkYXRhIHRvIGJlIGNvbXBhcmVkIHdpdGggdGhlIHJlbmRlcmVkCi0vLyBkYXRh
LgotLy8KLS8vIGp1bXBUaHJlc2hvbGQgLSBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBzcGVjaWZp
ZXMgdGhlIHRocmVzaG9sZCB0byB1c2UgZm9yIGRldGVjdGluZwotLy8gZGlzY29udGludWl0aWVz
LiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gZGlzY29udGludWl0eVRocmVzaG9sZC4K
LS8vCi1mdW5jdGlvbiBjaGVja1Jlc3VsdEZ1bmN0aW9uKHRlc3ROYW1lLCBlcnJvciwgcmVmZXJl
bmNlRnVuY3Rpb24sIGp1bXBUaHJlc2hvbGQpCi17CisgICAgc2hvdWxkKAorICAgICAgICBmYWls
ZWRUZXN0Q291bnQsCisgICAgICAgICdOdW1iZXIgb2YgZmFpbGVkIHRlc3RzIHdpdGggYW4gYWNj
ZXB0YWJsZSByZWxhdGl2ZSB0b2xlcmFuY2Ugb2YgJyArCisgICAgICAgICAgICBtYXhFcnJvcikK
KyAgICAgICAgLmJlRXF1YWxUbygwKTsKKyAgfQorCisgIC8vIENyZWF0ZSBhIGZ1bmN0aW9uIHRv
IHRlc3QgdGhlIHJlbmRlcmVkIGRhdGEgd2l0aCB0aGUgcmVmZXJlbmNlIGRhdGEuCisgIC8vCisg
IC8vIHRlc3ROYW1lIC0gc3RyaW5nIGRlc2NyaWJpbmcgdGhlIHRlc3QKKyAgLy8KKyAgLy8gZXJy
b3IgLSBtYXggYWxsb3dlZCBlcnJvciBiZXR3ZWVuIHJlbmRlcmVkIGRhdGEgYW5kIHRoZSByZWZl
cmVuY2UgZGF0YS4KKyAgLy8KKyAgLy8gcmVmZXJlbmNlRnVuY3Rpb24gLSBmdW5jdGlvbiB0aGF0
IGdlbmVyYXRlcyB0aGUgcmVmZXJlbmNlIGRhdGEgdG8gYmUKKyAgLy8gY29tcGFyZWQgd2l0aCB0
aGUgcmVuZGVyZWQgZGF0YS4KKyAgLy8KKyAgLy8ganVtcFRocmVzaG9sZCAtIG9wdGlvbmFsIHBh
cmFtZXRlciB0aGF0IHNwZWNpZmllcyB0aGUgdGhyZXNob2xkIHRvIHVzZSBmb3IKKyAgLy8gZGV0
ZWN0aW5nIGRpc2NvbnRpbnVpdGllcy4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvCisg
IC8vIGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQuCisgIC8vCisgIGZ1bmN0aW9uIGNoZWNrUmVzdWx0
RnVuY3Rpb24oCisgICAgICB0YXNrLCBzaG91bGQsIHRlc3ROYW1lLCBlcnJvciwgcmVmZXJlbmNl
RnVuY3Rpb24sIGp1bXBUaHJlc2hvbGQsCisgICAgICBlcnJvck1ldHJpYykgewogICAgIHJldHVy
biBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgYnVmZmVyID0gZXZlbnQucmVuZGVyZWRC
dWZmZXI7Ci0gICAgICAgIHJlbmRlcmVkRGF0YSA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsK
KyAgICAgIGxldCBidWZmZXIgPSBldmVudC5yZW5kZXJlZEJ1ZmZlcjsKKyAgICAgIHJlbmRlcmVk
RGF0YSA9IGJ1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKIAotICAgICAgICB2YXIgdGhyZXNob2xk
OworICAgICAgbGV0IHRocmVzaG9sZDsKIAotICAgICAgICBpZiAoIWp1bXBUaHJlc2hvbGQpIHsK
LSAgICAgICAgICAgIHRocmVzaG9sZCA9IGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQ7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICB0aHJlc2hvbGQgPSBqdW1wVGhyZXNob2xkOwotICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICBjb21wYXJlU2lnbmFscyh0ZXN0TmFtZSwgZXJyb3IsIHJl
bmRlcmVkRGF0YSwgcmVmZXJlbmNlRnVuY3Rpb24sIHRpbWVWYWx1ZUluZm8sIHRocmVzaG9sZCk7
CisgICAgICBpZiAoIWp1bXBUaHJlc2hvbGQpIHsKKyAgICAgICAgdGhyZXNob2xkID0gZGlzY29u
dGludWl0eVRocmVzaG9sZDsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHRocmVzaG9sZCA9IGp1
bXBUaHJlc2hvbGQ7CisgICAgICB9CiAKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQot
fQotCi0vLyBSdW4gYWxsIHRoZSBhdXRvbWF0aW9uIHRlc3RzLgotLy8KLS8vIG51bWJlck9mVGVz
dHMgLSBudW1iZXIgb2YgdGVzdHMgKHRpbWUgaW50ZXJ2YWxzKSB0byBydW4uCi0vLwotLy8gaW5p
dGlhbFZhbHVlIC0gVGhlIGluaXRpYWwgdmFsdWUgb2YgdGhlIGZpcnN0IHRpbWUgaW50ZXJ2YWwu
Ci0vLwotLy8gc2V0VmFsdWVGdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgc2V0cyB0aGUgc3BlY2lm
aWVkIHZhbHVlIGF0IHRoZSBzdGFydCBvZiBhIHRpbWUgaW50ZXJ2YWwuCi0vLwotLy8gYXV0b21h
dGlvbkZ1bmN0aW9uIC0gZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBlbmQgdmFsdWUgZm9yIHRoZSB0
aW1lIGludGVydmFsLiAgSXQgc3BlY2lmaWVzIGhvdwotLy8gdGhlIHZhbHVlIGFwcHJvYWNoZXMg
dGhlIGVuZCB2YWx1ZS4KLS8vCi0vLyBBbiBvYmplY3QgaXMgcmV0dXJuZWQgY29udGFpbmluZyBh
biBhcnJheSBvZiBzdGFydCB0aW1lcyBmb3IgZWFjaCB0aW1lIGludGVydmFsLCBhbmQgYW4gYXJy
YXkKLS8vIGdpdmluZyB0aGUgc3RhcnQgYW5kIGVuZCB2YWx1ZXMgZm9yIHRoZSBpbnRlcnZhbC4K
LWZ1bmN0aW9uIGRvQXV0b21hdGlvbihudW1iZXJPZlRlc3RzLCBpbml0aWFsVmFsdWUsIHNldFZh
bHVlRnVuY3Rpb24sIGF1dG9tYXRpb25GdW5jdGlvbikKLXsKLSAgICB2YXIgdGltZUluZm8gPSBb
MF07Ci0gICAgdmFyIHZhbHVlSW5mbyA9IFtdOwotICAgIHZhciB2YWx1ZSA9IGluaXRpYWxWYWx1
ZTsKLSAgICAKLSAgICBmb3IgKHZhciBrID0gMDsgayA8IG51bWJlck9mVGVzdHM7ICsraykgewot
ICAgICAgICB2YXIgc3RhcnRUaW1lID0gayAqIHRpbWVJbnRlcnZhbDsKLSAgICAgICAgdmFyIGVu
ZFRpbWUgPSAoayArIDEpICogdGltZUludGVydmFsOwotICAgICAgICB2YXIgZW5kVmFsdWUgPSB2
YWx1ZSArIGVuZFZhbHVlRGVsdGEoayk7Ci0KLSAgICAgICAgLy8gU2V0IHRoZSB2YWx1ZSBhdCB0
aGUgc3RhcnQgb2YgdGhlIHRpbWUgaW50ZXJ2YWwuCi0gICAgICAgIHNldFZhbHVlRnVuY3Rpb24o
dmFsdWUsIHN0YXJ0VGltZSk7Ci0KLSAgICAgICAgLy8gU3BlY2lmeSB0aGUgZW5kIG9yIHRhcmdl
dCB2YWx1ZSwgYW5kIGhvdyB3ZSBzaG91bGQgYXBwcm9hY2ggaXQuCi0gICAgICAgIGF1dG9tYXRp
b25GdW5jdGlvbihlbmRWYWx1ZSwgc3RhcnRUaW1lLCBlbmRUaW1lKTsKLQotICAgICAgICAvLyBL
ZWVwIHRyYWNrIG9mIHRoZSBzdGFydCB0aW1lcywgYW5kIHRoZSBzdGFydCBhbmQgZW5kIHZhbHVl
cyBmb3IgZWFjaCB0aW1lIGludGVydmFsLgotICAgICAgICB0aW1lSW5mby5wdXNoKGVuZFRpbWUp
OwotICAgICAgICB2YWx1ZUluZm8ucHVzaCh7c3RhcnRWYWx1ZTogdmFsdWUsIGVuZFZhbHVlIDog
ZW5kVmFsdWV9KTsKLQotICAgICAgICB2YWx1ZSArPSB2YWx1ZVVwZGF0ZShrKTsKKyAgICAgIGNv
bXBhcmVTaWduYWxzKAorICAgICAgICAgIHNob3VsZCwgdGVzdE5hbWUsIGVycm9yLCByZW5kZXJl
ZERhdGEsIHJlZmVyZW5jZUZ1bmN0aW9uLAorICAgICAgICAgIHRpbWVWYWx1ZUluZm8sIHRocmVz
aG9sZCwgZXJyb3JNZXRyaWMpOworICAgICAgdGFzay5kb25lKCk7CiAgICAgfQotCi0gICAgcmV0
dXJuIHt0aW1lcyA6IHRpbWVJbmZvLCB2YWx1ZXMgOiB2YWx1ZUluZm99OwotfQotCi0vLyBDcmVh
dGUgdGhlIGF1ZGlvIGdyYXBoIGZvciB0aGUgdGVzdCBhbmQgdGhlbiBydW4gdGhlIHRlc3QuCi0v
LwotLy8gbnVtYmVyT2ZUZXN0cyAtIG51bWJlciBvZiB0aW1lIGludGVydmFscyAodGVzdHMpIHRv
IHJ1bi4KLS8vCi0vLyBpbml0aWFsVmFsdWUgLSB0aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGUgZ2Fp
biBhdCB0aW1lIDAuCi0vLwotLy8gc2V0VmFsdWVGdW5jdGlvbiAtIGZ1bmN0aW9uIHRvIHNldCB0
aGUgdmFsdWUgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHRpbWUgaW50ZXJ2YWwuCi0vLwotLy8g
YXV0b21hdGlvbkZ1bmN0aW9uIC0gdGhlIEF1ZGlvUGFyYW1UaW1lbGluZSBhdXRvbWF0aW9uIGZ1
bmN0aW9uCi0vLwotLy8gdGVzdE5hbWUgLSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgdGVzdCB0aGF0
IGlzIGJlaW5nIHJ1bi4KLS8vCi0vLyBtYXhFcnJvciAtIG1heGltdW0gYWxsb3dlZCBlcnJvciBi
ZXR3ZWVuIHRoZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUgcmVmZXJlbmNlIGRhdGEKLS8vCi0vLyBy
ZWZlcmVuY2VGdW5jdGlvbiAtIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSByZWZlcmVuY2Ug
ZGF0YSB0byBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoZQotLy8gcmVuZGVyZWQgZGF0YS4KLS8vCi0v
LyBqdW1wVGhyZXNob2xkIC0gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHRoZSB0
aHJlc2hvbGQgdG8gdXNlIGZvciBkZXRlY3RpbmcKLS8vIGRpc2NvbnRpbnVpdGllcy4gIElmIG5v
dCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQuCi0vLwotZnVu
Y3Rpb24gY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QobnVtYmVyT2ZUZXN0cywgaW5pdGlhbFZhbHVl
LCBzZXRWYWx1ZUZ1bmN0aW9uLCBhdXRvbWF0aW9uRnVuY3Rpb24sIHRlc3ROYW1lLCBtYXhFcnJv
ciwgcmVmZXJlbmNlRnVuY3Rpb24sIGp1bXBUaHJlc2hvbGQpCi17Ci0gICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgfQorCisgIC8vIFJ1biBhbGwgdGhlIGF1dG9t
YXRpb24gdGVzdHMuCisgIC8vCisgIC8vIG51bWJlck9mVGVzdHMgLSBudW1iZXIgb2YgdGVzdHMg
KHRpbWUgaW50ZXJ2YWxzKSB0byBydW4uCisgIC8vCisgIC8vIGluaXRpYWxWYWx1ZSAtIFRoZSBp
bml0aWFsIHZhbHVlIG9mIHRoZSBmaXJzdCB0aW1lIGludGVydmFsLgorICAvLworICAvLyBzZXRW
YWx1ZUZ1bmN0aW9uIC0gZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBzcGVjaWZpZWQgdmFsdWUgYXQg
dGhlIHN0YXJ0IG9mIGEKKyAgLy8gdGltZSBpbnRlcnZhbC4KKyAgLy8KKyAgLy8gYXV0b21hdGlv
bkZ1bmN0aW9uIC0gZnVuY3Rpb24gdGhhdCBzZXRzIHRoZSBlbmQgdmFsdWUgZm9yIHRoZSB0aW1l
CisgIC8vIGludGVydmFsLiBJdCBzcGVjaWZpZXMgaG93IHRoZSB2YWx1ZSBhcHByb2FjaGVzIHRo
ZSBlbmQgdmFsdWUuCisgIC8vCisgIC8vIEFuIG9iamVjdCBpcyByZXR1cm5lZCBjb250YWluaW5n
IGFuIGFycmF5IG9mIHN0YXJ0IHRpbWVzIGZvciBlYWNoIHRpbWUKKyAgLy8gaW50ZXJ2YWwsIGFu
ZCBhbiBhcnJheSBnaXZpbmcgdGhlIHN0YXJ0IGFuZCBlbmQgdmFsdWVzIGZvciB0aGUgaW50ZXJ2
YWwuCisgIGZ1bmN0aW9uIGRvQXV0b21hdGlvbigKKyAgICAgIG51bWJlck9mVGVzdHMsIGluaXRp
YWxWYWx1ZSwgc2V0VmFsdWVGdW5jdGlvbiwgYXV0b21hdGlvbkZ1bmN0aW9uKSB7CisgICAgbGV0
IHRpbWVJbmZvID0gWzBdOworICAgIGxldCB2YWx1ZUluZm8gPSBbXTsKKyAgICBsZXQgdmFsdWUg
PSBpbml0aWFsVmFsdWU7CisKKyAgICBmb3IgKGxldCBrID0gMDsgayA8IG51bWJlck9mVGVzdHM7
ICsraykgeworICAgICAgbGV0IHN0YXJ0VGltZSA9IGsgKiB0aW1lSW50ZXJ2YWw7CisgICAgICBs
ZXQgZW5kVGltZSA9IChrICsgMSkgKiB0aW1lSW50ZXJ2YWw7CisgICAgICBsZXQgZW5kVmFsdWUg
PSB2YWx1ZSArIGVuZFZhbHVlRGVsdGEoayk7CisKKyAgICAgIC8vIFNldCB0aGUgdmFsdWUgYXQg
dGhlIHN0YXJ0IG9mIHRoZSB0aW1lIGludGVydmFsLgorICAgICAgc2V0VmFsdWVGdW5jdGlvbih2
YWx1ZSwgc3RhcnRUaW1lKTsKKworICAgICAgLy8gU3BlY2lmeSB0aGUgZW5kIG9yIHRhcmdldCB2
YWx1ZSwgYW5kIGhvdyB3ZSBzaG91bGQgYXBwcm9hY2ggaXQuCisgICAgICBhdXRvbWF0aW9uRnVu
Y3Rpb24oZW5kVmFsdWUsIHN0YXJ0VGltZSwgZW5kVGltZSk7CisKKyAgICAgIC8vIEtlZXAgdHJh
Y2sgb2YgdGhlIHN0YXJ0IHRpbWVzLCBhbmQgdGhlIHN0YXJ0IGFuZCBlbmQgdmFsdWVzIGZvciBl
YWNoCisgICAgICAvLyB0aW1lIGludGVydmFsLgorICAgICAgdGltZUluZm8ucHVzaChlbmRUaW1l
KTsKKyAgICAgIHZhbHVlSW5mby5wdXNoKHtzdGFydFZhbHVlOiB2YWx1ZSwgZW5kVmFsdWU6IGVu
ZFZhbHVlfSk7CisKKyAgICAgIHZhbHVlICs9IHZhbHVlVXBkYXRlKGspOwogICAgIH0KIAotICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQorICAgIHJldHVybiB7dGltZXM6IHRpbWVJ
bmZvLCB2YWx1ZXM6IHZhbHVlSW5mb307CisgIH0KKworICAvLyBDcmVhdGUgdGhlIGF1ZGlvIGdy
YXBoIGZvciB0aGUgdGVzdCBhbmQgdGhlbiBydW4gdGhlIHRlc3QuCisgIC8vCisgIC8vIG51bWJl
ck9mVGVzdHMgLSBudW1iZXIgb2YgdGltZSBpbnRlcnZhbHMgKHRlc3RzKSB0byBydW4uCisgIC8v
CisgIC8vIGluaXRpYWxWYWx1ZSAtIHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoZSBnYWluIGF0IHRp
bWUgMC4KKyAgLy8KKyAgLy8gc2V0VmFsdWVGdW5jdGlvbiAtIGZ1bmN0aW9uIHRvIHNldCB0aGUg
dmFsdWUgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHRpbWUKKyAgLy8gaW50ZXJ2YWwuCisgIC8v
CisgIC8vIGF1dG9tYXRpb25GdW5jdGlvbiAtIHRoZSBBdWRpb1BhcmFtVGltZWxpbmUgYXV0b21h
dGlvbiBmdW5jdGlvbgorICAvLworICAvLyB0ZXN0TmFtZSAtIHN0cmluZyBpbmRpY2F0aW5nIHRo
ZSB0ZXN0IHRoYXQgaXMgYmVpbmcgcnVuLgorICAvLworICAvLyBtYXhFcnJvciAtIG1heGltdW0g
YWxsb3dlZCBlcnJvciBiZXR3ZWVuIHRoZSByZW5kZXJlZCBkYXRhIGFuZCB0aGUKKyAgLy8gcmVm
ZXJlbmNlIGRhdGEKKyAgLy8KKyAgLy8gcmVmZXJlbmNlRnVuY3Rpb24gLSBmdW5jdGlvbiB0aGF0
IGdlbmVyYXRlcyB0aGUgcmVmZXJlbmNlIGRhdGEgdG8gYmUKKyAgLy8gY29tcGFyZWQgYWdhaW5z
dCB0aGUgcmVuZGVyZWQgZGF0YS4KKyAgLy8KKyAgLy8ganVtcFRocmVzaG9sZCAtIG9wdGlvbmFs
IHBhcmFtZXRlciB0aGF0IHNwZWNpZmllcyB0aGUgdGhyZXNob2xkIHRvIHVzZSBmb3IKKyAgLy8g
ZGV0ZWN0aW5nIGRpc2NvbnRpbnVpdGllcy4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRv
CisgIC8vIGRpc2NvbnRpbnVpdHlUaHJlc2hvbGQuCisgIC8vCisgIGZ1bmN0aW9uIGNyZWF0ZUF1
ZGlvR3JhcGhBbmRUZXN0KAorICAgICAgdGFzaywgc2hvdWxkLCBudW1iZXJPZlRlc3RzLCBpbml0
aWFsVmFsdWUsIHNldFZhbHVlRnVuY3Rpb24sCisgICAgICBhdXRvbWF0aW9uRnVuY3Rpb24sIHRl
c3ROYW1lLCBtYXhFcnJvciwgcmVmZXJlbmNlRnVuY3Rpb24sIGp1bXBUaHJlc2hvbGQsCisgICAg
ICBlcnJvck1ldHJpYykgewogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0g
ICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0
aChudW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7Ci0gICAgdmFyIGNvbnN0YW50QnVmZmVyID0g
Y3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVz
dHMpKTsKKyAgICBjb250ZXh0ID0KKyAgICAgICAgbmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoMiwg
cmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMpLCBzYW1wbGVSYXRlKTsKKyAgICBsZXQgY29uc3Rh
bnRCdWZmZXIgPQorICAgICAgICBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCByZW5kZXJM
ZW5ndGgobnVtYmVyT2ZUZXN0cyksIDEpOwogCi0gICAgLy8gV2UgdXNlIGFuIEF1ZGlvR2Fpbk5v
ZGUgaGVyZSBzaW1wbHkgYXMgYSBjb252ZW5pZW50IHdheSB0byB0ZXN0IHRoZSBBdWRpb1BhcmFt
Ci0gICAgLy8gYXV0b21hdGlvbiwgc2luY2UgaXQncyBlYXN5IHRvIHBhc3MgYSBjb25zdGFudCB2
YWx1ZSB0aHJvdWdoIHRoZSBub2RlLCBhdXRvbWF0ZSB0aGUKLSAgICAvLyAuZ2FpbiBhdHRyaWJ1
dGUgYW5kIG9ic2VydmUgdGhlIHJlc3VsdGluZyB2YWx1ZXMuCisgICAgLy8gV2UgdXNlIGFuIEF1
ZGlvR2Fpbk5vZGUgaGVyZSBzaW1wbHkgYXMgYSBjb252ZW5pZW50IHdheSB0byB0ZXN0IHRoZQor
ICAgIC8vIEF1ZGlvUGFyYW0gYXV0b21hdGlvbiwgc2luY2UgaXQncyBlYXN5IHRvIHBhc3MgYSBj
b25zdGFudCB2YWx1ZSB0aHJvdWdoCisgICAgLy8gdGhlIG5vZGUsIGF1dG9tYXRlIHRoZSAuZ2Fp
biBhdHRyaWJ1dGUgYW5kIG9ic2VydmUgdGhlIHJlc3VsdGluZyB2YWx1ZXMuCiAKICAgICBnYWlu
Tm9kZSA9IGNvbnRleHQuY3JlYXRlR2FpbigpOwogCi0gICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNv
bnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgbGV0IGJ1ZmZlclNvdXJjZSA9IGNvbnRl
eHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CiAgICAgYnVmZmVyU291cmNlLmJ1ZmZlciA9IGNvbnN0
YW50QnVmZmVyOwogICAgIGJ1ZmZlclNvdXJjZS5jb25uZWN0KGdhaW5Ob2RlKTsKICAgICBnYWlu
Tm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwogCi0gICAgLy8gU2V0IHVwIGRlZmF1
bHQgdmFsdWVzIGZvciB0aGUgcGFyYW1ldGVycyB0aGF0IGNvbnRyb2wgaG93IHRoZSBhdXRvbWF0
aW9uIHRlc3QgdmFsdWVzIHByb2dyZXNzCi0gICAgLy8gZm9yIGVhY2ggdGltZSBpbnRlcnZhbC4K
KyAgICAvLyBTZXQgdXAgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBwYXJhbWV0ZXJzIHRoYXQgY29u
dHJvbCBob3cgdGhlIGF1dG9tYXRpb24KKyAgICAvLyB0ZXN0IHZhbHVlcyBwcm9ncmVzcyBmb3Ig
ZWFjaCB0aW1lIGludGVydmFsLgogICAgIHN0YXJ0aW5nVmFsdWVEZWx0YSA9IGluaXRpYWxWYWx1
ZSAvIG51bWJlck9mVGVzdHM7CiAgICAgc3RhcnRFbmRWYWx1ZUNoYW5nZSA9IHN0YXJ0aW5nVmFs
dWVEZWx0YSAvIDI7CiAgICAgZGlzY29udGludWl0eVRocmVzaG9sZCA9IHN0YXJ0RW5kVmFsdWVD
aGFuZ2UgLyAyOwogCiAgICAgLy8gUnVuIHRoZSBhdXRvbWF0aW9uIHRlc3RzLgotICAgIHRpbWVW
YWx1ZUluZm8gPSBkb0F1dG9tYXRpb24obnVtYmVyT2ZUZXN0cywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluaXRpYWxWYWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldFZhbHVlRnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvbWF0aW9uRnVuY3Rpb24pOworICAgIHRpbWVWYWx1ZUluZm8gPSBkb0F1dG9tYXRpb24o
CisgICAgICAgIG51bWJlck9mVGVzdHMsIGluaXRpYWxWYWx1ZSwgc2V0VmFsdWVGdW5jdGlvbiwg
YXV0b21hdGlvbkZ1bmN0aW9uKTsKICAgICBidWZmZXJTb3VyY2Uuc3RhcnQoMCk7Ci0gICAgICAK
LSAgICBjb250ZXh0Lm9uY29tcGxldGUgPSBjaGVja1Jlc3VsdEZ1bmN0aW9uKHRlc3ROYW1lLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4RXJyb3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VGdW5j
dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBU
aHJlc2hvbGQpOworCisgICAgY29udGV4dC5vbmNvbXBsZXRlID0gY2hlY2tSZXN1bHRGdW5jdGlv
bigKKyAgICAgICAgdGFzaywgc2hvdWxkLCB0ZXN0TmFtZSwgbWF4RXJyb3IsIHJlZmVyZW5jZUZ1
bmN0aW9uLCBqdW1wVGhyZXNob2xkLAorICAgICAgICBlcnJvck1ldHJpYyB8fCByZWxhdGl2ZUVy
cm9yTWV0cmljKTsKICAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCk7Ci19CisgIH0KKworICAv
LyBFeHBvcnQgbG9jYWwgcmVmZXJlbmNlcyB0byBnbG9iYWwgc2NvcGUuIEFsbCB0aGUgbmV3IG9i
amVjdHMgaW4gdGhpcyBmaWxlCisgIC8vIG11c3QgYmUgZXhwb3J0ZWQgdGhyb3VnaCB0aGlzIGlm
IGl0IGlzIHRvIGJlIHVzZWQgaW4gdGhlIGFjdHVhbCB0ZXN0IEhUTUwKKyAgLy8gcGFnZS4KKyAg
bGV0IGV4cG9ydHMgPSB7CisgICAgJ3NhbXBsZVJhdGUnOiA0NDEwMCwKKyAgICAnZ2Fpbk5vZGUn
OiBudWxsLAorICAgICd0aW1lSW50ZXJ2YWwnOiB0aW1lSW50ZXJ2YWxJbnRlcm5hbCwKKworICAg
IC8vIFNvbWUgc3VpdGFibGUgdGltZSBjb25zdGFudCBzbyB0aGF0IHdlIGNhbiBzZWUgYSBzaWdu
aWZpY2FudCBjaGFuZ2Ugb3ZlcgorICAgIC8vIGEgdGltZUludGVydmFsLiAgVGhpcyBpcyBvbmx5
IG5lZWRlZCBieSBzZXRUYXJnZXRBdFRpbWUoKSB3aGljaCBuZWVkcyBhCisgICAgLy8gdGltZSBj
b25zdGFudC4KKyAgICAndGltZUNvbnN0YW50JzogdGltZUludGVydmFsSW50ZXJuYWwgLyAzLAor
CisgICAgJ3JlbmRlckxlbmd0aCc6IHJlbmRlckxlbmd0aCwKKyAgICAnY3JlYXRlQ29uc3RhbnRB
cnJheSc6IGNyZWF0ZUNvbnN0YW50QXJyYXksCisgICAgJ2dldFN0YXJ0RW5kRnJhbWVzJzogZ2V0
U3RhcnRFbmRGcmFtZXMsCisgICAgJ2NyZWF0ZUxpbmVhclJhbXBBcnJheSc6IGNyZWF0ZUxpbmVh
clJhbXBBcnJheSwKKyAgICAnY3JlYXRlRXhwb25lbnRpYWxSYW1wQXJyYXknOiBjcmVhdGVFeHBv
bmVudGlhbFJhbXBBcnJheSwKKyAgICAnZGlzY3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRl
JzogZGlzY3JldGVUaW1lQ29uc3RhbnRGb3JTYW1wbGVSYXRlLAorICAgICdjcmVhdGVFeHBvbmVu
dGlhbEFwcHJvYWNoQXJyYXknOiBjcmVhdGVFeHBvbmVudGlhbEFwcHJvYWNoQXJyYXksCisgICAg
J2NyZWF0ZVJlZmVyZW5jZVNpbmVBcnJheSc6IGNyZWF0ZVJlZmVyZW5jZVNpbmVBcnJheSwKKyAg
ICAnY3JlYXRlU2luZVdhdmVBcnJheSc6IGNyZWF0ZVNpbmVXYXZlQXJyYXksCisgICAgJ2VuZFZh
bHVlRGVsdGEnOiBlbmRWYWx1ZURlbHRhLAorICAgICdyZWxhdGl2ZUVycm9yTWV0cmljJzogcmVs
YXRpdmVFcnJvck1ldHJpYywKKyAgICAnZGlmZmVyZW5jZUVycm9yTWV0cmljJzogZGlmZmVyZW5j
ZUVycm9yTWV0cmljLAorICAgICd2YWx1ZVVwZGF0ZSc6IHZhbHVlVXBkYXRlLAorICAgICdjb21w
YXJlUGFydGlhbFNpZ25hbHMnOiBjb21wYXJlUGFydGlhbFNpZ25hbHMsCisgICAgJ3ZlcmlmeURp
c2NvbnRpbnVpdGllcyc6IHZlcmlmeURpc2NvbnRpbnVpdGllcywKKyAgICAnY29tcGFyZVNpZ25h
bHMnOiBjb21wYXJlU2lnbmFscywKKyAgICAnY2hlY2tSZXN1bHRGdW5jdGlvbic6IGNoZWNrUmVz
dWx0RnVuY3Rpb24sCisgICAgJ2RvQXV0b21hdGlvbic6IGRvQXV0b21hdGlvbiwKKyAgICAnY3Jl
YXRlQXVkaW9HcmFwaEFuZFRlc3QnOiBjcmVhdGVBdWRpb0dyYXBoQW5kVGVzdAorICB9OworCisg
IGZvciAobGV0IHJlZmVyZW5jZSBpbiBleHBvcnRzKSB7CisgICAgZ2xvYmFsW3JlZmVyZW5jZV0g
PSBleHBvcnRzW3JlZmVyZW5jZV07CisgIH0KKworfSkod2luZG93KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9zZXQtcG9zaXRpb24tdnMtY3VydmUtdGVzdC5q
cyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9zZXQtcG9zaXRpb24tdnMtY3VydmUt
dGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMWZjNDM0MTViNWNhNGY4YmE4ZmQ3Mjc2NjczZWEyMGRjMDQz
ZjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL3Nl
dC1wb3NpdGlvbi12cy1jdXJ2ZS10ZXN0LmpzCkBAIC0wLDAgKzEsOTYgQEAKKy8vIFRoaXMgZGVw
ZW5kcyBvbiBhdWRpdC5qcyB0byBkZWZpbmUgdGhlIHxzaG91bGR8IGZ1bmN0aW9uIHVzZWQgaGVy
ZWluLgorLy8KKy8vIFRlc3QgdGhhdCBzZXRQb3NpdGlvbiB0aHJvd3MgYW4gZXJyb3IgaWYgdGhl
cmUgaXMgYWxyZWFkeSBhCisvLyBzZXRWYWx1ZUN1cnZlIHNjaGVkdWxlZCBkdXJpbmcgdGhlIHNh
bWUgdGltZSBwZXJpb2QuCitmdW5jdGlvbiB0ZXN0UG9zaXRpb25TZXR0ZXJWc0N1cnZlKHNob3Vs
ZCwgY29udGV4dCwgb3B0aW9ucykgeworICAvLyBDcmVhdGUgdGhlIGdyYXBoIGNvbnNpc3Rpbmcg
b2YgYSBzb3VyY2Ugbm9kZSBhbmQgdGhlIHBhbm5lci4KKyAgbGV0IHNyYyA9IG5ldyBDb25zdGFu
dFNvdXJjZU5vZGUoY29udGV4dCwge29mZnNldDogMX0pOworICBsZXQgcGFubmVyID0gbmV3IFBh
bm5lck5vZGUoY29udGV4dCk7CisgIHNyYy5jb25uZWN0KHBhbm5lcikuY29ubmVjdChjb250ZXh0
LmRlc3RpbmF0aW9uKTsKKworICBsZXQgY3VydmUgPSBGbG9hdDMyQXJyYXkuZnJvbShbLTEwLCAx
MF0pOworCisgIC8vIERldGVybWluZSBpZiB3ZSdyZSB0ZXN0aW5nIHRoZSBwYW5uZXIgb3IgdGhl
IGxpc3RlbmVyIGFuZCBzZXQgdGhlIG5vZGUKKyAgLy8gYXBwcm9wcmlhdGVseS4KKyAgbGV0IHRl
c3ROb2RlID0gb3B0aW9ucy5ub2RlTmFtZSA9PT0gJ3Bhbm5lcicgPyBwYW5uZXIgOiBjb250ZXh0
Lmxpc3RlbmVyOworCisgIGxldCBwcmVmaXggPSBvcHRpb25zLm5vZGVOYW1lID09PSAncGFubmVy
JyA/ICdwYW5uZXIuJyA6ICdsaXN0ZW5lci4nOworCisgIGxldCBtZXNzYWdlID0gcHJlZml4ICsg
b3B0aW9ucy5wYXJhbU5hbWUgKyAnLnNldFZhbHVlQ3VydmUoLi4uLCAwLCAnICsKKyAgICAgIG9w
dGlvbnMuY3VydmVEdXJhdGlvbiArICcpJzsKKworICAvLyBJZiB0aGUgY29vcmRpbmF0ZSBuYW1l
IGhhcyAncG9zaXRpb24nLCB3ZSdyZSB0ZXN0aW5nIHNldFBvc2l0aW9uOworICAvLyBvdGhlcndp
c2UgYXNzdW1lIHdlJ3JlIHRlc3Rpbmcgc2V0T3JpZW50YXRpb24uCisgIGxldCBtZXRob2ROYW1l
ID0KKyAgICAgIG9wdGlvbnMucGFyYW1OYW1lLmluY2x1ZGVzKCdwb3NpdGlvbicpID8gJ3NldFBv
c2l0aW9uJyA6ICdzZXRPcmllbnRhdGlvbic7CisKKyAgLy8gU2FuaXR5IGNoZWNrIHRoYXQgd2Un
cmUgdGVzdGluZyB0aGUgcmlnaHQgbm9kZS4gKFRoZSB8dGVzdE5hbWV8IHByZWZpeCBpcworICAv
LyB0byBtYWtlIGVhY2ggbWVzc2FnZSB1bmlxdWUgZm9yIHRlc3RoYXJuZXNzLikKKyAgaWYgKG9w
dGlvbnMubm9kZU5hbWUgPT09ICdwYW5uZXInKSB7CisgICAgc2hvdWxkKAorICAgICAgICB0ZXN0
Tm9kZSBpbnN0YW5jZW9mIFBhbm5lck5vZGUsCisgICAgICAgIG9wdGlvbnMudGVzdE5hbWUgKyAn
OiBOb2RlIHVuZGVyIHRlc3QgaXMgYSBQYW5uZXJOb2RlJykKKyAgICAgICAgLmJlVHJ1ZSgpOwor
ICB9IGVsc2UgeworICAgIHNob3VsZCgKKyAgICAgICAgdGVzdE5vZGUgaW5zdGFuY2VvZiBBdWRp
b0xpc3RlbmVyLAorICAgICAgICBvcHRpb25zLnRlc3ROYW1lICsgJzogTm9kZSB1bmRlciB0ZXN0
IGlzIGFuIEF1ZGlvTElzdGVuZXInKQorICAgICAgICAuYmVUcnVlKCk7CisgIH0KKworICAvLyBT
ZXQgdGhlIGN1cnZlIGF1dG9tYXRpb24gb24gdGhlIHNwZWNpZmllZCBheGlzLgorICBzaG91bGQo
KCkgPT4geworICAgIHRlc3ROb2RlW29wdGlvbnMucGFyYW1OYW1lXS5zZXRWYWx1ZUN1cnZlQXRU
aW1lKAorICAgICAgICBjdXJ2ZSwgMCwgb3B0aW9ucy5jdXJ2ZUR1cmF0aW9uKTsKKyAgfSwgbWVz
c2FnZSkubm90VGhyb3coKTsKKworICBsZXQgcmVzdW1lQ29udGV4dCA9IGNvbnRleHQucmVzdW1l
LmJpbmQoY29udGV4dCk7CisKKyAgLy8gR2V0IGNvcnJlY3QgYXJndW1lbnQgc3RyaW5nIGZvciB0
aGUgc2V0dGVyIGZvciBwcmludGluZyB0aGUgbWVzc2FnZS4KKyAgbGV0IHNldHRlckFyZ3VtZW50
czsKKyAgaWYgKG9wdGlvbnMubm9kZU5hbWUgPT09ICdwYW5uZXInKSB7CisgICAgc2V0dGVyQXJn
dW1lbnRzID0gJygxLDEsMSknOworICB9IGVsc2UgeworICAgIGlmIChtZXRob2ROYW1lID09PSAn
c2V0UG9zaXRpb24nKSB7CisgICAgICBzZXR0ZXJBcmd1bWVudHMgPSAnKDEsMSwxKSc7CisgICAg
fSBlbHNlIHsKKyAgICAgIHNldHRlckFyZ3VtZW50cyA9ICcoMSwxLDEsMSwxLDEpJzsKKyAgICB9
CisgIH0KKworICBsZXQgc2V0dGVyTWV0aG9kID0gKCkgPT4geworICAgIC8vIEl0J3Mgb2sgdG8g
Z2l2ZSBleHRyYSBhcmdzLgorICAgIHRlc3ROb2RlW21ldGhvZE5hbWVdKDEsIDEsIDEsIDEsIDEs
IDEpOworICB9OworCisgIGlmIChvcHRpb25zLnN1c3BlbmRGcmFtZSkgeworICAgIC8vIFdlJ3Jl
IHRlc3Rpbmcgc2V0UG9zaXRpb24gYWZ0ZXIgdGhlIGN1cnZlIGhhcyBlbmRlZCB0byB2ZXJpZnkg
dGhhdAorICAgIC8vIHdlIGRvbid0IHRocm93IGFuIGVycm9yLiAgVGh1cywgc3VzcGVuZCB0aGUg
Y29udGV4dCBhbmQgY2FsbAorICAgIC8vIHNldFBvc2l0aW9uLgorICAgIGxldCBzdXNwZW5kVGlt
ZSA9IG9wdGlvbnMuc3VzcGVuZEZyYW1lIC8gY29udGV4dC5zYW1wbGVSYXRlOworICAgIGNvbnRl
eHQuc3VzcGVuZChzdXNwZW5kVGltZSkKKyAgICAgICAgLnRoZW4oKCkgPT4geworICAgICAgICAg
IHNob3VsZCgKKyAgICAgICAgICAgICAgc2V0dGVyTWV0aG9kLAorICAgICAgICAgICAgICBwcmVm
aXggKyBtZXRob2ROYW1lICsgc2V0dGVyQXJndW1lbnRzICsgJyBmb3IgJyArCisgICAgICAgICAg
ICAgICAgICBvcHRpb25zLnBhcmFtTmFtZSArICcgYXQgdGltZSAnICsgc3VzcGVuZFRpbWUpCisg
ICAgICAgICAgICAgIC5ub3RUaHJvdygpOworICAgICAgICB9KQorICAgICAgICAudGhlbihyZXN1
bWVDb250ZXh0KTsKKyAgfSBlbHNlIHsKKyAgICAvLyBCYXNpYyB0ZXN0IHdoZXJlIHNldFBvc2l0
aW9uIGlzIGNhbGxlZCB3aGVyZSBzZXRWYWx1ZUN1cnZlIGlzCisgICAgLy8gYWxyZWFkeSBhY3Rp
dmUuCisgICAgY29udGV4dC5zdXNwZW5kKDApCisgICAgICAgIC50aGVuKCgpID0+IHsKKyAgICAg
ICAgICBzaG91bGQoCisgICAgICAgICAgICAgIHNldHRlck1ldGhvZCwKKyAgICAgICAgICAgICAg
cHJlZml4ICsgbWV0aG9kTmFtZSArIHNldHRlckFyZ3VtZW50cyArICcgZm9yICcgKworICAgICAg
ICAgICAgICAgICAgb3B0aW9ucy5wYXJhbU5hbWUpCisgICAgICAgICAgICAgIC50aHJvdyhET01F
eGNlcHRpb24sICdOb3RTdXBwb3J0ZWRFcnJvcicpOworICAgICAgICB9KQorICAgICAgICAudGhl
bihyZXN1bWVDb250ZXh0KTsKKyAgfQorCisgIHNyYy5zdGFydCgpOworICByZXR1cm4gY29udGV4
dC5zdGFydFJlbmRlcmluZygpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>